diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 000000000..6340ce34a --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,4 @@ +[build] +# https://github.com/rust-lang/rust/pull/124129 +# https://github.com/dtolnay/linkme/pull/88 +rustflags = ["-Z", "linker-features=-lld"] diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..1562ab5b3 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,28 @@ +# this is loosely based on `docker init`'s rust template. + +**/.DS_Store +**/.classpath +**/.dockerignore +# **/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/charts +**/docker-compose* +**/compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/secrets.dev.yaml +**/values.dev.yaml +/bin +/target +LICENSE +README.md diff --git a/.env b/.env new file mode 100644 index 000000000..52113a893 --- /dev/null +++ b/.env @@ -0,0 +1,10 @@ +AMQP_URI=amqp://localhost:5672 +ARITHMETIC_CIRCUIT_SIZE=16..23 +BYTE_PACKING_CIRCUIT_SIZE=9..21 +CPU_CIRCUIT_SIZE=12..25 +KECCAK_CIRCUIT_SIZE=14..20 +KECCAK_SPONGE_CIRCUIT_SIZE=9..15 +LOGIC_CIRCUIT_SIZE=12..18 +MEMORY_CIRCUIT_SIZE=17..28 +MEMORY_BEFORE_CIRCUIT_SIZE=7..23 +MEMORY_AFTER_CIRCUIT_SIZE=7..27 diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b0c2d81e6..9c7403044 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,2 +1,2 @@ -* @muursh @Nashtare @cpubot -/evm_arithmetization/ @wborgeaud @muursh @Nashtare @cpubot +* @muursh @Nashtare +/evm_arithmetization/ @wborgeaud @muursh @Nashtare diff --git a/.github/labeler.yml b/.github/labeler.yml index 4c1141a73..4805743d5 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -18,6 +18,11 @@ - changed-files: - any-glob-to-any-file: proof_gen/** +# Add 'crate: zero_bin' label to any changes within 'zero_bin' folder. +'crate: zero_bin': +- changed-files: + - any-glob-to-any-file: zero_bin/** + # Add 'specs' label to any changes within 'docs' folder. 'specs': - changed-files: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 07f039d25..da2a3d615 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,7 @@ name: Continuous Integration on: push: - branches: [main] + branches: [develop, main] pull_request: branches: - "**" @@ -15,7 +15,7 @@ concurrency: cancel-in-progress: true env: - CARGO_TERM_COLOR: always + CARGO_TERM_COLOR: always jobs: test_mpt_trie: @@ -33,7 +33,7 @@ jobs: - name: Set up rust cache uses: Swatinem/rust-cache@v2 with: - cache-on-failure: true + cache-on-failure: true - name: Test in mpt_trie subdirectory run: cargo test --manifest-path mpt_trie/Cargo.toml @@ -58,7 +58,7 @@ jobs: - name: Set up rust cache uses: Swatinem/rust-cache@v2 with: - cache-on-failure: true + cache-on-failure: true - name: Test in trace_decoder subdirectory run: cargo test --manifest-path trace_decoder/Cargo.toml @@ -83,7 +83,7 @@ jobs: - name: Set up rust cache uses: Swatinem/rust-cache@v2 with: - cache-on-failure: true + cache-on-failure: true - name: Test in proof_gen subdirectory run: cargo test --manifest-path proof_gen/Cargo.toml @@ -108,7 +108,7 @@ jobs: - name: Set up rust cache uses: Swatinem/rust-cache@v2 with: - cache-on-failure: true + cache-on-failure: true - name: Test in evm_arithmetization subdirectory run: cargo test --manifest-path evm_arithmetization/Cargo.toml @@ -118,8 +118,105 @@ jobs: CARGO_INCREMENTAL: 1 RUST_BACKTRACE: 1 + test_zero_bin: + name: Test zero_bin + runs-on: ubuntu-latest + timeout-minutes: 30 + if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" + steps: + - name: Checkout sources + uses: actions/checkout@v4 + + - name: Install nightly toolchain + uses: dtolnay/rust-toolchain@nightly + + - name: Set up rust cache + uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + + - name: Test in zero_bin subdirectory + run: | + cargo test --manifest-path zero_bin/common/Cargo.toml + cargo test --manifest-path zero_bin/leader/Cargo.toml + cargo test --manifest-path zero_bin/ops/Cargo.toml + cargo test --manifest-path zero_bin/prover/Cargo.toml + cargo test --manifest-path zero_bin/rpc/Cargo.toml + cargo test --manifest-path zero_bin/verifier/Cargo.toml + cargo test --manifest-path zero_bin/worker/Cargo.toml + + env: + RUSTFLAGS: -Copt-level=3 -Cdebug-assertions -Coverflow-checks=y -Cdebuginfo=0 + RUST_LOG: 1 + CARGO_INCREMENTAL: 1 + RUST_BACKTRACE: 1 + + test_zk_evm_proc_macro: + name: Test zk_evm_proc_macro + runs-on: ubuntu-latest + timeout-minutes: 30 + if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" + steps: + - name: Checkout sources + uses: actions/checkout@v4 + + - name: Install nightly toolchain + uses: dtolnay/rust-toolchain@nightly + + - name: Set up rust cache + uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + + - name: Test in proc_macro subdirectory + run: cargo test --manifest-path proc_macro/Cargo.toml + env: + RUSTFLAGS: -Copt-level=3 -Cdebug-assertions -Coverflow-checks=y -Cdebuginfo=0 + RUST_LOG: 1 + CARGO_INCREMENTAL: 1 + RUST_BACKTRACE: 1 + + simple_proof_regular: + name: Execute bash script to generate and verify a proof for a small block. + runs-on: zero-ci + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Run the script + run: | + pushd zero_bin/tools + ./prove_stdio.sh artifacts/witness_b19240705.json + + simple_proof_witness_only: + name: Execute bash script to generate the proof witness for a small block. + runs-on: zero-ci + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Run the script + run: | + pushd zero_bin/tools + ./prove_stdio.sh artifacts/witness_b19240705.json test_only + + multi_blocks_proof_regular: + name: Execute bash script to generate and verify a proof for multiple blocks using parallel proving. + runs-on: zero-ci + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Run the script + run: | + pushd zero_bin/tools + ./prove_stdio.sh artifacts/witness_b2_b7.json + lints: - name: Formatting and Clippy + name: Rustdoc, Formatting and Clippy runs-on: ubuntu-latest timeout-minutes: 10 if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" @@ -130,15 +227,18 @@ jobs: - name: Install nightly toolchain uses: dtolnay/rust-toolchain@nightly with: - components: rustfmt, clippy + components: rustfmt, clippy - name: Set up rust cache uses: Swatinem/rust-cache@v2 with: - cache-on-failure: true + cache-on-failure: true - name: Run cargo fmt run: cargo fmt --all --check - name: Run cargo clippy run: cargo clippy --all-features --all-targets -- -D warnings -A incomplete-features + + - name: Rustdoc + run: cargo doc --all diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml new file mode 100644 index 000000000..c907bbf39 --- /dev/null +++ b/.github/workflows/docker_build.yml @@ -0,0 +1,26 @@ +name: Docker Build & Run + +on: + push: + branches: [develop, main] + pull_request: + branches: + - "**" + workflow_dispatch: + branches: + - "**" + +jobs: + docker: + name: Regression test docker images + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - run: | + docker build --progress=plain --build-arg=PROFILE=dev --tag scratch . + docker run --rm --init --entrypoint leader scratch --help + docker run --rm --init --entrypoint worker scratch --help + docker run --rm --init --entrypoint rpc scratch --help + docker run --rm --init --entrypoint verifier scratch --help diff --git a/.github/workflows/docker_build_push.yml b/.github/workflows/docker_build_push.yml new file mode 100644 index 000000000..0c64efecd --- /dev/null +++ b/.github/workflows/docker_build_push.yml @@ -0,0 +1,55 @@ +name: Docker Build & Push + +on: + push: + branches: [develop, main] + release: + types: [created] + +env: + REGISTRY: ghcr.io + +jobs: + docker: + name: Build and push leader and worker docker images to GitHub Container Registry + runs-on: ubuntu-latest + permissions: + packages: write + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) + id: meta + uses: docker/metadata-action@v5 + with: + images: | + name=${{ env.REGISTRY }}/${{ github.repository }} + tags: | + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + + - name: Push to GitHub Container Registry + uses: docker/build-push-action@v3 + with: + push: true + # platforms: linux/amd64,linux/arm64 + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/jerigon.yml b/.github/workflows/jerigon.yml new file mode 100644 index 000000000..273eff91e --- /dev/null +++ b/.github/workflows/jerigon.yml @@ -0,0 +1,85 @@ +name: Jerigon Integration + +on: + push: + branches: [develop, main] + pull_request: + branches: + - "**" + workflow_dispatch: + branches: + - "**" + + +env: + CARGO_TERM_COLOR: always + REGISTRY: ghcr.io + +jobs: + test_jerigon_input_proving: + name: Test proof generation with jerigon input + runs-on: zero-ci + timeout-minutes: 40 + if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" + steps: + - name: Checkout sources + uses: actions/checkout@v4 + + - name: Checkout test-jerigon-network sources + uses: actions/checkout@v4 + with: + repository: 0xPolygonZero/jerigon-test-network + path: test-jerigon-network + + - name: Install nightly toolchain + uses: dtolnay/rust-toolchain@nightly + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up rust cache + uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + + - name: Run jerigon test network with docker compose + run: | + cd test-jerigon-network + docker-compose -f docker-compose.yml up -d + docker logs -f smart-contracts + echo "Jerigon network is up and running, ready for testing" + + - name: Rpc test with curl + run: | + curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc": "2.0", "method": "eth_blockNumber", "params": [], "id":83}' localhost:8545 + env: + RUST_LOG: info + + - name: Run prove blocks in test_only mode + run: | + cd zero_bin/tools + OUTPUT_TO_TERMINAL=true ./prove_rpc.sh 0x2 0x3 http://localhost:8546 jerigon true 0 0 test_only + echo "Proving blocks in test_only mode finished" + + + - name: Run prove blocks in real mode + run: | + cd zero_bin/tools + rm -rf proofs/* circuits/* ./proofs.json test.out verify.out leader.out + OUTPUT_TO_TERMINAL=true RUN_VERIFICATION=true ./prove_rpc.sh 0x4 0x5 http://localhost:8546 jerigon true + echo "Proving blocks in real mode finished" + + - name: Shut down network + run: | + cd test-jerigon-network + docker-compose -f docker-compose.yml down -v + + + diff --git a/.github/workflows/pr_checking.yml b/.github/workflows/pr_checking.yml new file mode 100644 index 000000000..497a17208 --- /dev/null +++ b/.github/workflows/pr_checking.yml @@ -0,0 +1,56 @@ +name: PR check + +on: + pull_request: + types: [opened, reopened, synchronize] + +permissions: + pull-requests: write + +jobs: + pr_check: + name: Validate PR + runs-on: ubuntu-latest + steps: + - name: Set up keywords + id: setup_keywords + run: echo "RESTRICTED_KEYWORDS=$(echo '${{ secrets.RESTRICTED_KEYWORDS }}' | jq -r '.[]' | tr '\n' ' ')" >> $GITHUB_ENV + + - name: Check for spam PR + id: check + run: | + # Initialize variables to track spam presence + title_is_spam=false + description_is_spam=false + + # Check title for spam + for keyword in $RESTRICTED_KEYWORDS; do + if echo "${{ github.event.pull_request.title }}" | grep -i -q "$keyword"; then + title_is_spam=true + break + fi + done + + # Check description for spam + for keyword in $RESTRICTED_KEYWORDS; do + if echo "${{ github.event.pull_request.body }}" | grep -i -q "$keyword"; then + description_is_spam=true + break + fi + done + + # Set the output based on the presence of spam + if [ "$title_is_spam" = true ] || [ "$description_is_spam" = true ]; then + echo "is_spam=true" >> $GITHUB_ENV + else + echo "is_spam=false" >> $GITHUB_ENV + fi + + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Close PR if spam are found and author is not a contributor or member + if: ${{ env.is_spam == 'true' && github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR' }} + run: gh pr close ${{ github.event.pull_request.number }} --comment "Spam detected" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 9e58bc287..3d1dc8c49 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ -Cargo.lock /**/target /target **/*.rs.bk *.iml .idea/ .vscode + diff --git a/CHANGELOG.md b/CHANGELOG.md index ca08f80a7..c022899b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,8 +8,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.4.0] - 2024-06-12 + ### Changed +- Some cleanup ([#190](https://github.com/0xPolygonZero/zk_evm/pull/190)) +- Silence jumpdest analysis logs ([#193](https://github.com/0xPolygonZero/zk_evm/pull/193)) +- Charge call value gas prior to call ([#199](https://github.com/0xPolygonZero/zk_evm/pull/199)) +- refactor: fix todos ([#162](https://github.com/0xPolygonZero/zk_evm/pull/162)) +- Remove print call in trace_decoder ([#208](https://github.com/0xPolygonZero/zk_evm/pull/208)) +- Update CODEOWNERS ([#224](https://github.com/0xPolygonZero/zk_evm/pull/224)) +- Fix access lists pointers check ([#217](https://github.com/0xPolygonZero/zk_evm/pull/217)) - Add a few QoL useability functions to the interface ([#169](https://github.com/0xPolygonZero/zk_evm/pull/169)) +- Amortize `sha2` compression loop ([#231](https://github.com/0xPolygonZero/zk_evm/pull/231)) +- ci: add cargo audit job ([#236](https://github.com/0xPolygonZero/zk_evm/pull/236)) +- fix: Revert interpreter stack display ([#238](https://github.com/0xPolygonZero/zk_evm/pull/238)) +- Fix clippy `doc_lazy_continuation` ([#247](https://github.com/0xPolygonZero/zk_evm/pull/247)) +- perf: Improve `blake2` precompile ([#239](https://github.com/0xPolygonZero/zk_evm/pull/239)) +- fix: rustdoc and tests ([#255](https://github.com/0xPolygonZero/zk_evm/pull/255)) +- Native trace processing support ([#246](https://github.com/0xPolygonZero/zk_evm/pull/246)) +- Added `Clone` to a few error types in `mpt_trie` ([#259](https://github.com/0xPolygonZero/zk_evm/pull/259)) +- cleanup: remove outdated segment ([#262](https://github.com/0xPolygonZero/zk_evm/pull/262)) +- fix: add G2 subgroup check for `ECPAIRING` ([#268](https://github.com/0xPolygonZero/zk_evm/pull/268)) +- add partial trie builder ([#258](https://github.com/0xPolygonZero/zk_evm/pull/258)) ## [0.3.1] - 2024-04-22 diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 000000000..4c1f122b0 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,5795 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "const-random", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "alloy" +version = "0.1.1" +source = "git+https://github.com/alloy-rs/alloy?tag=v0.1.1#f04a704ac5be9cb21b4b1f6c35f925607f1aa939" +dependencies = [ + "alloy-consensus", + "alloy-core", + "alloy-json-rpc", + "alloy-provider", + "alloy-rpc-client", + "alloy-rpc-types", + "alloy-transport", + "alloy-transport-http", + "reqwest", +] + +[[package]] +name = "alloy-chains" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1752d7d62e2665da650a36d84abbf239f812534475d51f072a49a533513b7cdd" +dependencies = [ + "num_enum", + "strum", +] + +[[package]] +name = "alloy-consensus" +version = "0.1.1" +source = "git+https://github.com/alloy-rs/alloy?tag=v0.1.1#f04a704ac5be9cb21b4b1f6c35f925607f1aa939" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "serde", +] + +[[package]] +name = "alloy-core" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5af3faff14c12c8b11037e0a093dd157c3702becb8435577a2408534d0758315" +dependencies = [ + "alloy-primitives", + "alloy-rlp", +] + +[[package]] +name = "alloy-eips" +version = "0.1.1" +source = "git+https://github.com/alloy-rs/alloy?tag=v0.1.1#f04a704ac5be9cb21b4b1f6c35f925607f1aa939" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "once_cell", + "serde", + "sha2", +] + +[[package]] +name = "alloy-json-rpc" +version = "0.1.1" +source = "git+https://github.com/alloy-rs/alloy?tag=v0.1.1#f04a704ac5be9cb21b4b1f6c35f925607f1aa939" +dependencies = [ + "alloy-primitives", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "alloy-network" +version = "0.1.1" +source = "git+https://github.com/alloy-rs/alloy?tag=v0.1.1#f04a704ac5be9cb21b4b1f6c35f925607f1aa939" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-serde", + "alloy-signer", + "alloy-sol-types", + "async-trait", + "auto_impl", + "futures-utils-wasm", + "thiserror", +] + +[[package]] +name = "alloy-primitives" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f783611babedbbe90db3478c120fb5f5daacceffc210b39adc0af4fe0da70bad" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more", + "hex-literal", + "itoa", + "k256", + "keccak-asm", + "proptest", + "rand", + "ruint", + "serde", + "tiny-keccak", +] + +[[package]] +name = "alloy-provider" +version = "0.1.1" +source = "git+https://github.com/alloy-rs/alloy?tag=v0.1.1#f04a704ac5be9cb21b4b1f6c35f925607f1aa939" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-primitives", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-rpc-types-trace", + "alloy-transport", + "alloy-transport-http", + "async-stream", + "async-trait", + "auto_impl", + "dashmap", + "futures", + "futures-utils-wasm", + "lru", + "pin-project", + "reqwest", + "serde", + "serde_json", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "alloy-rlp" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a43b18702501396fa9bcdeecd533bc85fac75150d308fc0f6800a01e6234a003" +dependencies = [ + "alloy-rlp-derive", + "arrayvec", + "bytes", +] + +[[package]] +name = "alloy-rlp-derive" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d83524c1f6162fcb5b0decf775498a125066c86dda6066ed609531b0e912f85a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "alloy-rpc-client" +version = "0.1.1" +source = "git+https://github.com/alloy-rs/alloy?tag=v0.1.1#f04a704ac5be9cb21b4b1f6c35f925607f1aa939" +dependencies = [ + "alloy-json-rpc", + "alloy-transport", + "alloy-transport-http", + "futures", + "pin-project", + "reqwest", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-rpc-types" +version = "0.1.1" +source = "git+https://github.com/alloy-rs/alloy?tag=v0.1.1#f04a704ac5be9cb21b4b1f6c35f925607f1aa939" +dependencies = [ + "alloy-rpc-types-eth", + "alloy-rpc-types-trace", + "alloy-serde", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "0.1.1" +source = "git+https://github.com/alloy-rs/alloy?tag=v0.1.1#f04a704ac5be9cb21b4b1f6c35f925607f1aa939" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "alloy-sol-types", + "itertools 0.13.0", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "alloy-rpc-types-trace" +version = "0.1.1" +source = "git+https://github.com/alloy-rs/alloy?tag=v0.1.1#f04a704ac5be9cb21b4b1f6c35f925607f1aa939" +dependencies = [ + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-serde", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-serde" +version = "0.1.1" +source = "git+https://github.com/alloy-rs/alloy?tag=v0.1.1#f04a704ac5be9cb21b4b1f6c35f925607f1aa939" +dependencies = [ + "alloy-primitives", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-signer" +version = "0.1.1" +source = "git+https://github.com/alloy-rs/alloy?tag=v0.1.1#f04a704ac5be9cb21b4b1f6c35f925607f1aa939" +dependencies = [ + "alloy-primitives", + "async-trait", + "auto_impl", + "elliptic-curve", + "k256", + "thiserror", +] + +[[package]] +name = "alloy-sol-macro" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bad41a7c19498e3f6079f7744656328699f8ea3e783bdd10d85788cd439f572" +dependencies = [ + "alloy-sol-macro-expander", + "alloy-sol-macro-input", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd9899da7d011b4fe4c406a524ed3e3f963797dbc93b45479d60341d3a27b252" +dependencies = [ + "alloy-sol-macro-input", + "const-hex", + "heck 0.5.0", + "indexmap 2.2.6", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.68", + "syn-solidity", + "tiny-keccak", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32d595768fdc61331a132b6f65db41afae41b9b97d36c21eb1b955c422a7e60" +dependencies = [ + "const-hex", + "dunce", + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.68", + "syn-solidity", +] + +[[package]] +name = "alloy-sol-types" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a49042c6d3b66a9fe6b2b5a8bf0d39fc2ae1ee0310a2a26ffedd79fb097878dd" +dependencies = [ + "alloy-primitives", + "alloy-sol-macro", + "const-hex", +] + +[[package]] +name = "alloy-transport" +version = "0.1.1" +source = "git+https://github.com/alloy-rs/alloy?tag=v0.1.1#f04a704ac5be9cb21b4b1f6c35f925607f1aa939" +dependencies = [ + "alloy-json-rpc", + "base64", + "futures-util", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror", + "tokio", + "tower", + "url", +] + +[[package]] +name = "alloy-transport-http" +version = "0.1.1" +source = "git+https://github.com/alloy-rs/alloy?tag=v0.1.1#f04a704ac5be9cb21b4b1f6c35f925607f1aa939" +dependencies = [ + "alloy-json-rpc", + "alloy-transport", + "reqwest", + "serde_json", + "tower", + "tracing", + "url", +] + +[[package]] +name = "amq-protocol" +version = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f051d4d77904272e9be7e292607378dc9900d15b8d314bfd3ed4b82fdd84f125" +dependencies = [ + "amq-protocol-tcp", + "amq-protocol-types", + "amq-protocol-uri", + "cookie-factory", + "nom", + "serde", +] + +[[package]] +name = "amq-protocol-tcp" +version = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e3d51dd36e67d757c9ba80a7b2a2a2a69254c1dbe4d8c631824ec7f5b69f60e" +dependencies = [ + "amq-protocol-uri", + "tcp-stream", + "tracing", +] + +[[package]] +name = "amq-protocol-types" +version = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0acdd47054ced8b9bc89ee0dbb42ccc8028de48d8658b24de4c255a226c9bfec" +dependencies = [ + "cookie-factory", + "nom", + "serde", + "serde_json", +] + +[[package]] +name = "amq-protocol-uri" +version = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f17881b7575dab3e71403f28a3e50b71f0d1bd026829abca3c48664522ce0df0" +dependencies = [ + "amq-protocol-types", + "percent-encoding", + "url", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "anstream" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" + +[[package]] +name = "anstyle-parse" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +dependencies = [ + "backtrace", +] + +[[package]] +name = "ark-ff" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" +dependencies = [ + "ark-ff-asm 0.3.0", + "ark-ff-macros 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.3.3", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.4.0", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" +dependencies = [ + "num-bigint", + "num-traits", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-serialize" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" +dependencies = [ + "ark-std 0.3.0", + "digest 0.9.0", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-std" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "asn1-rs" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ad1373757efa0f70ec53939aabc7152e1591cb485208052993070ac8d2429d" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7378575ff571966e99a744addeff0bff98b8ada0dedf1956d59e634db95eaac1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "async-channel" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand 2.1.0", + "futures-lite 2.3.0", + "slab", +] + +[[package]] +name = "async-global-executor" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" +dependencies = [ + "async-channel", + "async-executor", + "async-io 2.3.3", + "async-lock 3.4.0", + "blocking", + "futures-lite 2.3.0", + "once_cell", +] + +[[package]] +name = "async-global-executor-trait" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33dd14c5a15affd2abcff50d84efd4009ada28a860f01c14f9d654f3e81b3f75" +dependencies = [ + "async-global-executor", + "async-trait", + "executor-trait", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.27", + "slab", + "socket2 0.4.10", + "waker-fn", +] + +[[package]] +name = "async-io" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964" +dependencies = [ + "async-lock 3.4.0", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite 2.3.0", + "parking", + "polling 3.7.2", + "rustix 0.38.34", + "slab", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener 2.5.3", +] + +[[package]] +name = "async-lock" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +dependencies = [ + "event-listener 5.3.1", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-reactor-trait" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6012d170ad00de56c9ee354aef2e358359deb1ec504254e0e5a3774771de0e" +dependencies = [ + "async-io 1.13.0", + "async-trait", + "futures-core", + "reactor-trait", +] + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "aws-lc-rs" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8a47f2fb521b70c11ce7369a6c5fa4bd6af7e5d62ec06303875bafe7c6ba245" +dependencies = [ + "aws-lc-sys", + "mirai-annotations", + "paste", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2927c7af777b460b7ccd95f8b67acd7b4c04ec8896bf0c8e80ba30523cffc057" +dependencies = [ + "bindgen", + "cc", + "cmake", + "dunce", + "fs_extra", + "libc", + "paste", +] + +[[package]] +name = "axum" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" +dependencies = [ + "async-trait", + "axum-core", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "tokio", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-core" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper 0.1.2", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "backoff" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "futures-core", + "getrandom", + "instant", + "pin-project-lite", + "rand", + "tokio", +] + +[[package]] +name = "backtrace" +version = "0.3.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bindgen" +version = "0.69.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" +dependencies = [ + "bitflags 2.6.0", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "lazy_static", + "lazycell", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.68", + "which", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blocking" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +dependencies = [ + "async-channel", + "async-task", + "futures-io", + "futures-lite 2.3.0", + "piper", +] + +[[package]] +name = "blst" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62dc83a094a71d43eeadd254b1ec2d24cb6a0bb6cadce00df51f0db594711a32" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +dependencies = [ + "serde", +] + +[[package]] +name = "c-kzg" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" +dependencies = [ + "blst", + "cc", + "glob", + "hex", + "libc", + "serde", +] + +[[package]] +name = "camino" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.23", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74b6a57f98764a267ff415d50a25e6e166f3831a5071af4995296ea97d210490" +dependencies = [ + "jobserver", + "libc", + "once_cell", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets 0.52.5", +] + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "4.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "clap_lex" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" + +[[package]] +name = "cmake" +version = "0.1.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" +dependencies = [ + "cc", +] + +[[package]] +name = "cms" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b77c319abfd5219629c45c34c89ba945ed3c5e49fcde9d16b6c3885f118a730" +dependencies = [ + "const-oid", + "der", + "spki", + "x509-cert", +] + +[[package]] +name = "cobs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" + +[[package]] +name = "colorchoice" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" + +[[package]] +name = "compat" +version = "0.1.0" +dependencies = [ + "alloy", + "primitive-types 0.12.2", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "const-hex" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-random" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom", + "once_cell", + "tiny-keccak", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "cookie-factory" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9885fa71e26b8ab7855e2ec7cae6e9b380edff76cd052e07c683a0319d51b3a2" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap", + "criterion-plot", + "is-terminal", + "itertools 0.10.5", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools 0.10.5", +] + +[[package]] +name = "critical-section" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" + +[[package]] +name = "crossbeam" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-skiplist" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df29de440c58ca2cc6e587ec3d22347551a32435fbde9d2bff64e78a9ffa151b" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[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", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "darling" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.68", +] + +[[package]] +name = "darling_macro" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "der_derive", + "flagset", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "9.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "der_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fe87ce4529967e0ba1dcf8450bab64d97dfd5010a6256187ffe2e43e6f0e049" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version 0.4.0", + "syn 2.0.68", +] + +[[package]] +name = "des" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdd80ce8ce993de27e9f063a444a4d53ce8e8db4c1f00cc03af5ad5a9867a1e" +dependencies = [ + "cipher", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "enum-as-inner" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "enumn" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[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.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "env_logger" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "humantime", + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "eth_trie" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3aeb0284b473041df2419a28e3cdf0c64a78d2b9511af4b6e40bad3964b172" +dependencies = [ + "ethereum-types", + "hashbrown 0.14.5", + "keccak-hash 0.10.0", + "log", + "parking_lot", + "rlp", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash 0.8.0", + "impl-rlp", + "impl-serde", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash 0.8.0", + "impl-rlp", + "impl-serde", + "primitive-types 0.12.2", + "uint", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "event-listener" +version = "5.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +dependencies = [ + "event-listener 5.3.1", + "pin-project-lite", +] + +[[package]] +name = "evm_arithmetization" +version = "0.2.0" +dependencies = [ + "anyhow", + "bytes", + "criterion", + "env_logger 0.11.3", + "ethereum-types", + "hashbrown 0.14.5", + "hex", + "hex-literal", + "itertools 0.13.0", + "keccak-hash 0.10.0", + "log", + "mpt_trie", + "num", + "num-bigint", + "once_cell", + "pest", + "pest_derive", + "plonky2", + "plonky2_maybe_rayon 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "plonky2_util", + "rand", + "rand_chacha", + "ripemd", + "rlp", + "rlp-derive", + "serde", + "serde-big-array", + "serde_json", + "sha2", + "starky", + "static_assertions", + "tiny-keccak", + "zk_evm_proc_macro", +] + +[[package]] +name = "executor-trait" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a1052dd43212a7777ec6a69b117da52f5e52f07aec47d00c1a2b33b85d06b08" +dependencies = [ + "async-trait", +] + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fastrlp" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core", + "subtle", +] + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "static_assertions", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "flagset" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb3aa5e95cf9aabc17f060cfa0ced7b83f042390760ca53bf09df9968acaa1" + +[[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", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-lite" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +dependencies = [ + "fastrand 2.1.0", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "futures-utils-wasm" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", + "rayon", + "serde", +] + +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version 0.4.0", + "serde", + "spin", + "stable_deref_trait", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4fe55fb7a772d59a5ff1dfbff4fe0258d19b89fec4b233e75d35d5d2316badc" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2 0.5.7", + "tokio", + "tower", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[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.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-num-traits" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "951641f13f873bff03d4bf19ae8bec531935ac0ac2cc775f84d7edfdcfed3f17" +dependencies = [ + "integer-sqrt", + "num-traits", + "uint", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding", + "generic-array", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "integer-sqrt" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" +dependencies = [ + "num-traits", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "is-terminal" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jemalloc-sys" +version = "0.5.4+5.3.0-patched" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac6c1946e1cea1788cbfde01c993b52a10e2da07f4bac608228d1bed20bfebf2" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "jemallocator" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0de374a9f8e63150e6f5e8a60cc14c668226d7a347d8aee1a45766e3c4dd3bc" +dependencies = [ + "jemalloc-sys", + "libc", +] + +[[package]] +name = "jobserver" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2", +] + +[[package]] +name = "keccak-asm" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a3633291834c4fbebf8673acbc1b04ec9d151418ff9b8e26dcd79129928758" +dependencies = [ + "digest 0.10.7", + "sha3-asm", +] + +[[package]] +name = "keccak-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce2bd4c29270e724d3eaadf7bdc8700af4221fc0ed771b855eadcd1b98d52851" +dependencies = [ + "primitive-types 0.10.1", + "tiny-keccak", +] + +[[package]] +name = "keccak-hash" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b286e6b663fb926e1eeb68528e69cb70ed46c6d65871a21b2215ae8154c6d3c" +dependencies = [ + "primitive-types 0.12.2", + "tiny-keccak", +] + +[[package]] +name = "lapin" +version = "2.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fae02c316a8a5922ce7518afa6b6c00e9a099f8e59587567e3331efdd11b8ceb" +dependencies = [ + "amq-protocol", + "async-global-executor-trait", + "async-reactor-trait", + "async-trait", + "executor-trait", + "flume", + "futures-core", + "futures-io", + "parking_lot", + "pinky-swear", + "reactor-trait", + "serde", + "tracing", + "waker-fn", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "leader" +version = "0.1.0" +dependencies = [ + "alloy", + "anyhow", + "axum", + "cargo_metadata", + "clap", + "dotenvy", + "futures", + "ops", + "paladin-core", + "proof_gen", + "prover", + "rpc", + "serde", + "serde_json", + "serde_path_to_error", + "tokio", + "toml", + "tracing", + "tracing-subscriber", + "zero_bin_common", +] + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libloading" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e310b3a6b5907f99202fcdb4960ff45b93735d7c7d96b760fcff8db2dc0e103d" +dependencies = [ + "cfg-if", + "windows-targets 0.52.5", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "linkme" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb76662d78edc9f9bf56360d6919bdacc8b7761227727e5082f128eeb90bbf5" +dependencies = [ + "linkme-impl", +] + +[[package]] +name = "linkme-impl" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dccda732e04fa3baf2e17cf835bfe2601c7c2edafd64417c627dabae3a8cda" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", + "serde", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "lru" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" +dependencies = [ + "hashbrown 0.14.5", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "mirai-annotations" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" + +[[package]] +name = "mpt_trie" +version = "0.3.0" +dependencies = [ + "bytes", + "enum-as-inner", + "eth_trie", + "ethereum-types", + "hex", + "impl-codec", + "impl-num-traits", + "impl-rlp", + "impl-serde", + "keccak-hash 0.10.0", + "log", + "num-traits", + "parking_lot", + "pretty_env_logger", + "rand", + "rlp", + "rlp-derive", + "serde", + "serde_json", + "thiserror", + "uint", +] + +[[package]] +name = "native-tls" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", + "rand", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.9", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "object" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" +dependencies = [ + "memchr", +] + +[[package]] +name = "oid-registry" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c958dd45046245b9c3c2547369bb634eb461670b2e7e0de552905801a648d1d" +dependencies = [ + "asn1-rs", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + +[[package]] +name = "openssl" +version = "0.10.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "ops" +version = "0.1.0" +dependencies = [ + "evm_arithmetization", + "keccak-hash 0.10.0", + "paladin-core", + "proof_gen", + "serde", + "trace_decoder", + "tracing", + "zero_bin_common", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "p12-keystore" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df7b60d0b2dcace322e6e8c4499c4c8bdf331c1bae046a54be5e4191c3610286" +dependencies = [ + "cbc", + "cms", + "der", + "des", + "hex", + "hmac", + "pkcs12", + "pkcs5", + "rand", + "rc2", + "sha1", + "sha2", + "thiserror", + "x509-parser", +] + +[[package]] +name = "paladin-core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5af1955eaab1506a43d046628c218b7b3915539554838feb85ed31f54aace2f2" +dependencies = [ + "anyhow", + "async-trait", + "backoff", + "bytes", + "ciborium", + "clap", + "crossbeam", + "crossbeam-skiplist", + "dashmap", + "dotenvy", + "futures", + "lapin", + "linkme", + "paladin-opkind-derive", + "pin-project", + "postcard", + "serde", + "thiserror", + "tokio", + "tokio-executor-trait", + "tokio-reactor-trait", + "tokio-util", + "tracing", + "tracing-subscriber", + "uuid", +] + +[[package]] +name = "paladin-opkind-derive" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af25dcb10b7c0ce99abee8694e2e79e4787d7f778b9339dc5a50ba6fc45e5cc9" +dependencies = [ + "quote", + "syn 2.0.68", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "parking" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.5", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "pest_meta" +version = "2.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f" +dependencies = [ + "once_cell", + "pest", + "sha2", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pinky-swear" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cfae3ead413ca051a681152bd266438d3bfa301c9bdf836939a14c721bb2a21" +dependencies = [ + "doc-comment", + "flume", + "parking_lot", + "tracing", +] + +[[package]] +name = "piper" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391" +dependencies = [ + "atomic-waker", + "fastrand 2.1.0", + "futures-io", +] + +[[package]] +name = "pkcs12" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "695b3df3d3cc1015f12d70235e35b6b79befc5fa7a9b95b951eab1dd07c9efc2" +dependencies = [ + "cms", + "const-oid", + "der", + "digest 0.10.7", + "spki", + "x509-cert", + "zeroize", +] + +[[package]] +name = "pkcs5" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e847e2c91a18bfa887dd028ec33f2fe6f25db77db3619024764914affe8b69a6" +dependencies = [ + "aes", + "cbc", + "der", + "pbkdf2", + "scrypt", + "sha2", + "spki", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "plonky2" +version = "0.2.2" +source = "git+https://github.com/0xPolygonZero/plonky2.git?rev=dc77c77f2b06500e16ad4d7f1c2b057903602eed#dc77c77f2b06500e16ad4d7f1c2b057903602eed" +dependencies = [ + "ahash", + "anyhow", + "getrandom", + "hashbrown 0.14.5", + "itertools 0.11.0", + "keccak-hash 0.8.0", + "log", + "num", + "plonky2_field", + "plonky2_maybe_rayon 0.2.0 (git+https://github.com/0xPolygonZero/plonky2.git?rev=dc77c77f2b06500e16ad4d7f1c2b057903602eed)", + "plonky2_util", + "rand", + "rand_chacha", + "serde", + "static_assertions", + "unroll", + "web-time", +] + +[[package]] +name = "plonky2_field" +version = "0.2.2" +source = "git+https://github.com/0xPolygonZero/plonky2.git?rev=dc77c77f2b06500e16ad4d7f1c2b057903602eed#dc77c77f2b06500e16ad4d7f1c2b057903602eed" +dependencies = [ + "anyhow", + "itertools 0.11.0", + "num", + "plonky2_util", + "rand", + "serde", + "static_assertions", + "unroll", +] + +[[package]] +name = "plonky2_maybe_rayon" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92ff44a90aaca13e10e7ddf8fab815ba1b404c3f7c3ca82aaf11c46beabaa923" +dependencies = [ + "rayon", +] + +[[package]] +name = "plonky2_maybe_rayon" +version = "0.2.0" +source = "git+https://github.com/0xPolygonZero/plonky2.git?rev=dc77c77f2b06500e16ad4d7f1c2b057903602eed#dc77c77f2b06500e16ad4d7f1c2b057903602eed" +dependencies = [ + "rayon", +] + +[[package]] +name = "plonky2_util" +version = "0.2.0" +source = "git+https://github.com/0xPolygonZero/plonky2.git?rev=dc77c77f2b06500e16ad4d7f1c2b057903602eed#dc77c77f2b06500e16ad4d7f1c2b057903602eed" + +[[package]] +name = "plotters" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7" + +[[package]] +name = "plotters-svg" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81b30686a7d9c3e010b84284bdd26a29f2138574f52f5eb6f794fc0ad924e705" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + +[[package]] +name = "polling" +version = "3.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi 0.4.0", + "pin-project-lite", + "rustix 0.38.34", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "postcard" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" +dependencies = [ + "cobs", + "embedded-io", + "heapless", + "serde", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "pretty_env_logger" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c" +dependencies = [ + "env_logger 0.10.2", + "log", +] + +[[package]] +name = "prettyplease" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +dependencies = [ + "proc-macro2", + "syn 2.0.68", +] + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash 0.7.0", + "uint", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash 0.8.0", + "impl-codec", + "impl-rlp", + "impl-serde", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proof_gen" +version = "0.2.0" +dependencies = [ + "evm_arithmetization", + "hashbrown 0.14.5", + "log", + "paste", + "plonky2", + "serde", +] + +[[package]] +name = "proptest" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.6.0", + "lazy_static", + "num-traits", + "rand", + "rand_chacha", + "rand_xorshift", + "regex-syntax 0.8.4", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "prover" +version = "0.1.0" +dependencies = [ + "alloy", + "anyhow", + "evm_arithmetization", + "futures", + "num-traits", + "ops", + "paladin-core", + "plonky2", + "proof_gen", + "ruint", + "serde", + "serde_json", + "tokio", + "trace_decoder", + "tracing", + "zero_bin_common", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rc2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62c64daa8e9438b84aaae55010a93f396f8e60e3911590fcba770d04643fc1dd" +dependencies = [ + "cipher", +] + +[[package]] +name = "reactor-trait" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "438a4293e4d097556730f4711998189416232f009c137389e0f961d2bc0ddc58" +dependencies = [ + "async-trait", + "futures-core", + "futures-io", +] + +[[package]] +name = "redox_syscall" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "regex" +version = "1.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "reqwest" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +dependencies = [ + "base64", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-tls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rpc" +version = "0.1.0" +dependencies = [ + "alloy", + "anyhow", + "clap", + "compat", + "evm_arithmetization", + "futures", + "lru", + "mpt_trie", + "primitive-types 0.12.2", + "prover", + "serde", + "serde_json", + "tokio", + "tower", + "trace_decoder", + "tracing-subscriber", + "url", + "zero_bin_common", +] + +[[package]] +name = "ruint" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +dependencies = [ + "alloy-rlp", + "ark-ff 0.3.0", + "ark-ff 0.4.2", + "bytes", + "fastrlp", + "num-bigint", + "num-traits", + "parity-scale-codec", + "primitive-types 0.12.2", + "proptest", + "rand", + "rlp", + "ruint-macro", + "serde", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[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" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.23", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + +[[package]] +name = "rustix" +version = "0.37.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys 0.4.14", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.23.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05cff451f60db80f490f3c182b77c35260baace73209e9cdbbe526bfe3a4d402" +dependencies = [ + "aws-lc-rs", + "log", + "once_cell", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-connector" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "727a826801254b6cfcd2508a0508c01b7c1bca21d3673e84d86da084781b83d5" +dependencies = [ + "log", + "rustls", + "rustls-native-certs", + "rustls-pki-types", + "rustls-webpki", +] + +[[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", + "rustls-pki-types", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +dependencies = [ + "base64", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" + +[[package]] +name = "rustls-webpki" +version = "0.102.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e" +dependencies = [ + "aws-lc-rs", + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" +dependencies = [ + "pbkdf2", + "salsa20", + "sha2", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.203" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "serde_json" +version = "1.0.120" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "079f3a42cd87588d924ed95b533f8d30a483388c4e400ab736a7058e34f16169" +dependencies = [ + "base64", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.2.6", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc03aad67c1d26b7de277d51c86892e7d9a0110a2fe44bf6b26cc569fba302d6" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3-asm" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9b57fd861253bff08bb1919e995f90ba8f4889de2726091c8876f3a4e823b40" +dependencies = [ + "cc", + "cfg-if", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[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", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "smt_trie" +version = "0.1.0" +dependencies = [ + "ethereum-types", + "hex-literal", + "plonky2", + "rand", + "serde", +] + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[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.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "starky" +version = "0.4.0" +source = "git+https://github.com/0xPolygonZero/plonky2.git?rev=dc77c77f2b06500e16ad4d7f1c2b057903602eed#dc77c77f2b06500e16ad4d7f1c2b057903602eed" +dependencies = [ + "ahash", + "anyhow", + "hashbrown 0.14.5", + "itertools 0.11.0", + "log", + "num-bigint", + "plonky2", + "plonky2_maybe_rayon 0.2.0 (git+https://github.com/0xPolygonZero/plonky2.git?rev=dc77c77f2b06500e16ad4d7f1c2b057903602eed)", + "plonky2_util", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.68", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn-solidity" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d71e19bca02c807c9faa67b5a47673ff231b6e7449b251695188522f1dc44b2" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tcp-stream" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "495b0abdce3dc1f8fd27240651c9e68890c14e9d9c61527b1ce44d8a5a7bd3d5" +dependencies = [ + "cfg-if", + "p12-keystore", + "rustls-connector", + "rustls-pemfile", +] + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand 2.1.0", + "rustix 0.38.34", + "windows-sys 0.52.0", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "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.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "tinyvec" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c55115c6fbe2d2bef26eb09ad74bde02d8255476fc0c7b515ef09fbb35742d82" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.7", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-executor-trait" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "802ccf58e108fe16561f35348fabe15ff38218968f033d587e399a84937533cc" +dependencies = [ + "async-trait", + "executor-trait", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-reactor-trait" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9481a72f36bd9cbb8d6dd349227c4783e234e4332cfe806225bc929c4b92486" +dependencies = [ + "async-trait", + "futures-core", + "futures-io", + "reactor-trait", + "tokio", + "tokio-stream", +] + +[[package]] +name = "tokio-stream" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.14", +] + +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.13", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "trace_decoder" +version = "0.4.0" +dependencies = [ + "ciborium", + "criterion", + "enum-as-inner", + "enumn", + "ethereum-types", + "evm_arithmetization", + "hex", + "keccak-hash 0.10.0", + "log", + "mpt_trie", + "pretty_env_logger", + "rlp", + "serde", + "serde_json", + "serde_with", + "thiserror", +] + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "trybuild" +version = "1.0.96" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33a5f13f11071020bb12de7a16b925d2d58636175c20c11dc5f96cb64bb6c9b3" +dependencies = [ + "glob", + "serde", + "serde_derive", + "serde_json", + "termcolor", + "toml", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unroll" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ad948c1cb799b1a70f836077721a92a35ac177d4daddf4c20a633786d4cf618" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de17fd2f7da591098415cff336e12965a28061ddace43b59cb3c430179c9439" +dependencies = [ + "getrandom", + "rand", + "serde", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "verifier" +version = "0.1.0" +dependencies = [ + "anyhow", + "clap", + "dotenvy", + "proof_gen", + "serde_json", + "serde_path_to_error", + "tracing", + "tracing-subscriber", + "zero_bin_common", +] + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "waker-fn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.68", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[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 0.38.34", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "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.5", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "worker" +version = "0.1.0" +dependencies = [ + "anyhow", + "clap", + "dotenvy", + "jemallocator", + "ops", + "paladin-core", + "tokio", + "tracing-subscriber", + "zero_bin_common", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "x509-cert" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94" +dependencies = [ + "const-oid", + "der", + "spki", +] + +[[package]] +name = "x509-parser" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" +dependencies = [ + "asn1-rs", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "zero_bin_common" +version = "0.1.0" +dependencies = [ + "alloy", + "anyhow", + "async-stream", + "clap", + "evm_arithmetization", + "futures", + "plonky2", + "proof_gen", + "serde", + "serde_json", + "thiserror", + "tokio", + "trace_decoder", + "tracing", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + +[[package]] +name = "zk_evm_proc_macro" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", + "trybuild", +] diff --git a/Cargo.toml b/Cargo.toml index 767178329..ad5b36493 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,25 +1,116 @@ [workspace] -members = ["mpt_trie", "proof_gen", "trace_decoder", "evm_arithmetization"] +members = [ + "compat", + "evm_arithmetization", + "mpt_trie", + "proc_macro", + "proof_gen", + "smt_trie", + "trace_decoder", + "zero_bin/common", + "zero_bin/leader", + "zero_bin/ops", + "zero_bin/prover", + "zero_bin/rpc", + "zero_bin/verifier", + "zero_bin/worker", +] resolver = "2" +[workspace.package] +edition = "2021" +license = "MIT OR Apache-2.0" +repository = "https://github.com/0xPolygonZero/zk_evm" +homepage = "https://github.com/0xPolygonZero/zk_evm" +keywords = ["cryptography", "STARK", "plonky2", "ethereum", "zk"] +categories = ["cryptography::cryptocurrencies"] + [workspace.dependencies] -bytes = "1.5.0" +alloy = { git = "https://github.com/alloy-rs/alloy", tag = 'v0.1.1', default-features = false, features = [ + "consensus", + "reqwest", + "json-rpc", + "rlp", + "rpc", + "rpc-client", + "rpc-types-eth", + "rpc-types-trace", + "providers", + "transports", + "transport-http", + "rpc-types-debug", +] } +anyhow = "1.0.86" +async-stream = "0.3.5" +axum = "0.7.5" +bytes = "1.6.0" +ciborium = "0.2.2" +ciborium-io = "0.2.2" +clap = { version = "4.5.7", features = ["derive", "env"] } +compat = { path = "compat" } +__compat_primitive_types = { version = "0.12.2", package = "primitive-types" } +criterion = "0.5.1" +dotenvy = "0.15.7" enum-as-inner = "0.6.0" -env_logger = "0.10.0" +enumn = "0.1.13" +env_logger = "0.11.3" ethereum-types = "0.14.1" +eth_trie = "0.4.0" +evm_arithmetization = { path = "evm_arithmetization", version = "0.2.0" } +futures = "0.3.30" +hashbrown = "0.14.5" hex = "0.4.3" hex-literal = "0.4.1" +impl-codec = "0.6.0" +impl-num-traits = "0.1.2" +impl-rlp = "0.3.0" +impl-serde = "0.4.0" +itertools = "0.13.0" keccak-hash = "0.10.0" -log = "0.4.20" -num = "0.4.1" +log = "0.4.21" +mpt_trie = { path = "mpt_trie", version = "0.3.0" } +num = "0.4.3" +num-bigint = "0.4.5" +num-traits = "0.2.19" +once_cell = "1.19.0" +paladin-core = "0.4.2" +parking_lot = "0.12.3" +paste = "1.0.15" +pest = "2.7.10" +pest_derive = "2.7.10" +pretty_env_logger = "0.5.0" +proof_gen = { path = "proof_gen", version = "0.2.0" } rand = "0.8.5" +rand_chacha = "0.3.1" +ripemd = "0.1.3" rlp = "0.5.2" rlp-derive = "0.1.0" -serde = "1.0.166" -serde_json = "1.0.96" +ruint = "1.12.3" +serde = "1.0.203" serde-big-array = "0.5.1" -thiserror = "1.0.49" -hashbrown = "0.14.0" +serde_json = "1.0.118" +serde_path_to_error = "0.1.16" +serde_with = "3.8.1" +smt_trie = { path = "smt_trie", version = "0.1.0" } +sha2 = "0.10.8" +static_assertions = "1.1.0" +thiserror = "1.0.61" +tiny-keccak = "2.0.2" +tokio = { version = "1.38.0", features = ["full"] } +toml = "0.8.14" +tower = "0.4" +trace_decoder = { path = "trace_decoder", version = "0.4.0" } +tracing = "0.1" +tracing-subscriber = { version = "0.3", features = ["env-filter"] } +uint = "0.9.5" +url = "2.5.2" +lru = "0.12.3" + +# zero-bin related dependencies +ops = { path = "zero_bin/ops" } +prover = { path = "zero_bin/prover" } +rpc = { path = "zero_bin/rpc" } +zero_bin_common = { path = "zero_bin/common" } # plonky2-related dependencies plonky2 = { git = "https://github.com/0xPolygonZero/plonky2.git", rev = "dc77c77f2b06500e16ad4d7f1c2b057903602eed" } @@ -27,10 +118,9 @@ plonky2_maybe_rayon = "0.2.0" plonky2_util = { git = "https://github.com/0xPolygonZero/plonky2.git", rev = "dc77c77f2b06500e16ad4d7f1c2b057903602eed" } starky = { git = "https://github.com/0xPolygonZero/plonky2.git", rev = "dc77c77f2b06500e16ad4d7f1c2b057903602eed" } - -[workspace.package] -edition = "2021" -license = "MIT OR Apache-2.0" -repository = "https://github.com/0xPolygonZero/zk_evm" -homepage = "https://github.com/0xPolygonZero/zk_evm" -keywords = ["cryptography", "STARK", "plonky2", "ethereum", "zk"] +# proc macro related dependencies +proc-macro2 = "1.0" +quote = "1.0" +syn = "2.0" +trybuild = "1.0" +zk_evm_proc_macro = { path = "proc_macro" } diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..18158356f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,100 @@ +# syntax=docker/dockerfile:1 +# This is loosely based on `docker init`'s rust template. +# For a completely clean build, run something like this: +# ``` +# docker build --build-arg=PROFILE=dev --no-cache +# ``` + +############# +# Build stage +############# +# - `/src` is the repo directory. +# - `/artifacts` is $CARGO_TARGET_DIR. +# - `/output` is where the binaries go. + +ARG BUILD_BASE=rustlang/rust:nightly-bullseye-slim +FROM ${BUILD_BASE} AS build + +# Install build dependencies. +RUN apt-get update && apt-get install -y \ + # for jemalloc + libjemalloc-dev \ + libjemalloc2 \ + make \ + # for openssl + libssl-dev \ + pkg-config \ + # clean the image + && rm -rf /var/lib/apt/lists/* + +ARG PROFILE=release +# forward the docker argument so that the script below can read it +ENV PROFILE=${PROFILE} + +# Build the application. +RUN \ + # mount the repository so we don't have to COPY it in + --mount=type=bind,source=.,target=/src \ + # cache artifacts and the cargo registry to speed up subsequent builds + --mount=type=cache,target=/artifacts \ + --mount=type=cache,target=/usr/local/cargo/registry/ \ + # run the build + <): https://github.com/0xPolygonZero/zk_evm/issues/314 find a better place for this +edition.workspace = true +license.workspace = true +repository.workspace = true +homepage.workspace = true +keywords.workspace = true +categories.workspace = true + +[dependencies] +alloy = {workspace = true } +__compat_primitive_types = { workspace = true } diff --git a/compat/src/lib.rs b/compat/src/lib.rs new file mode 100644 index 000000000..e83eb6eaf --- /dev/null +++ b/compat/src/lib.rs @@ -0,0 +1,69 @@ +/// A trait to convert between alloy and ethereum types. +pub trait Compat { + /// Convert the type to another type + fn compat(self) -> Out; +} + +impl Compat<__compat_primitive_types::H160> for alloy::primitives::Address { + fn compat(self) -> __compat_primitive_types::H160 { + let alloy::primitives::Address(alloy::primitives::FixedBytes(arr)) = self; + __compat_primitive_types::H160(arr) + } +} + +impl Compat<__compat_primitive_types::H256> for alloy::primitives::B256 { + fn compat(self) -> __compat_primitive_types::H256 { + let alloy::primitives::FixedBytes(arr) = self; + __compat_primitive_types::H256(arr) + } +} + +impl Compat<[__compat_primitive_types::U256; 8]> for alloy::primitives::Bloom { + fn compat(self) -> [__compat_primitive_types::U256; 8] { + let alloy::primitives::Bloom(alloy::primitives::FixedBytes(src)) = self; + // have u8 * 256 + // want U256 * 8 + // (no unsafe, no unstable) + let mut chunks = src.chunks_exact(32); + let dst = core::array::from_fn(|_ix| { + // This is a bit spicy because we're going from an uninterpeted array of bytes + // to wide integers, but we trust this `From` impl to do the right thing + __compat_primitive_types::U256::from( + <[u8; 32]>::try_from(chunks.next().unwrap()).unwrap(), + ) + }); + assert_eq!(chunks.len(), 0); + dst + } +} + +impl Compat<__compat_primitive_types::U256> for alloy::primitives::U256 { + fn compat(self) -> __compat_primitive_types::U256 { + __compat_primitive_types::U256(self.into_limbs()) + } +} + +impl Compat>> for Vec { + fn compat(self) -> Vec> { + self.into_iter().map(|x| x.to_vec()).collect() + } +} + +impl Compat for __compat_primitive_types::H160 { + fn compat(self) -> alloy::primitives::Address { + let __compat_primitive_types::H160(arr) = self; + alloy::primitives::Address(alloy::primitives::FixedBytes(arr)) + } +} + +impl Compat for __compat_primitive_types::H256 { + fn compat(self) -> alloy::primitives::StorageKey { + let __compat_primitive_types::H256(arr) = self; + alloy::primitives::FixedBytes(arr) + } +} + +#[test] +fn bloom() { + let _did_not_panic = alloy::primitives::Bloom::ZERO.compat(); +} diff --git a/docs/arithmetization/tables/cpu.tex b/docs/arithmetization/tables/cpu.tex index 7bca5a9f5..c7bfc1d82 100644 --- a/docs/arithmetization/tables/cpu.tex +++ b/docs/arithmetization/tables/cpu.tex @@ -37,7 +37,7 @@ \subsubsection{CPU columns} \paragraph*{Operation flags:} Boolean flags. During CPU cycles phase, each row executes a single instruction, which sets one and only one operation flag. No flag is set during padding. The decoding constraints ensure that the flag set corresponds to the opcode being read. -There isn't a 1-to-1 correspondance between instructions and flags. For efficiency, the same flag can be set by different, unrelated instructions (e.g. \texttt{eq\_iszero}, which represents +There isn't a 1-to-1 correspondence between instructions and flags. For efficiency, the same flag can be set by different, unrelated instructions (e.g. \texttt{eq\_iszero}, which represents the \texttt{EQ} and the \texttt{ISZERO} instructions). When there is a need to differentiate them in constraints, we filter them with their respective opcode: since the first bit of \texttt{EQ}'s opcode (resp. \texttt{ISZERO}'s opcode) is 0 (resp. 1), we can filter a constraint for an EQ instruction with \texttt{eq\_iszero * (1 - opcode\_bits[0])} (resp. \texttt{eq\_iszero * opcode\_bits[0]}). diff --git a/docs/arithmetization/tables/memory.tex b/docs/arithmetization/tables/memory.tex index d39e99b23..d6f3267c3 100644 --- a/docs/arithmetization/tables/memory.tex +++ b/docs/arithmetization/tables/memory.tex @@ -48,7 +48,7 @@ \subsection{Memory} \subsubsection{Virtual memory} -In the EVM, each contract call has its own address space. Within that address space, there are separate segments for code, main memory, stack memory, calldata, and returndata. Thus each address actually has three compoments: +In the EVM, each contract call has its own address space. Within that address space, there are separate segments for code, main memory, stack memory, calldata, and returndata. Thus each address actually has three components: \begin{enumerate} \item an execution context, representing a contract call, \item a segment ID, used to separate code, main memory, and so forth, and so on diff --git a/evm_arithmetization/Cargo.toml b/evm_arithmetization/Cargo.toml index 0a3894be1..969d2c852 100644 --- a/evm_arithmetization/Cargo.toml +++ b/evm_arithmetization/Cargo.toml @@ -1,8 +1,11 @@ [package] name = "evm_arithmetization" description = "Implementation of STARKs for the Ethereum Virtual Machine" -version = "0.1.3" -authors = ["Daniel Lubarov ", "William Borgeaud "] +version = "0.2.0" +authors = [ + "Daniel Lubarov ", + "William Borgeaud ", +] readme = "README.md" categories = ["cryptography"] edition.workspace = true @@ -12,46 +15,44 @@ homepage.workspace = true keywords.workspace = true [dependencies] -anyhow = "1.0.40" +anyhow = { workspace = true } bytes = { workspace = true } env_logger = { workspace = true } ethereum-types = { workspace = true } hex = { workspace = true, optional = true } hex-literal = { workspace = true } -itertools = "0.11.0" +itertools = { workspace = true } keccak-hash = { workspace = true } log = { workspace = true } plonky2_maybe_rayon = { workspace = true } num = { workspace = true } -num-bigint = "0.4.3" -once_cell = "1.13.0" -pest = "2.1.3" -pest_derive = "2.1.0" +num-bigint = { workspace = true } +once_cell = { workspace = true } +pest = { workspace = true } +pest_derive = { workspace = true } plonky2 = { workspace = true } plonky2_util = { workspace = true } starky = { workspace = true } rand = { workspace = true } -rand_chacha = "0.3.1" +rand_chacha = { workspace = true } rlp = { workspace = true } rlp-derive = { workspace = true } serde = { workspace = true, features = ["derive"] } -static_assertions = "1.1.0" +static_assertions = { workspace = true } hashbrown = { workspace = true } -tiny-keccak = "2.0.2" +tiny-keccak = { workspace = true } serde_json = { workspace = true } serde-big-array = { workspace = true } # Local dependencies -mpt_trie = { version = "0.2.1", path = "../mpt_trie" } - -[target.'cfg(not(target_env = "msvc"))'.dependencies] -jemallocator = "0.5.0" +mpt_trie = { workspace = true } +zk_evm_proc_macro = { workspace = true } [dev-dependencies] -criterion = "0.5.1" +criterion = { workspace = true } hex = { workspace = true } -ripemd = "0.1.3" -sha2 = "0.10.6" +ripemd = { workspace = true } +sha2 = { workspace = true } [features] default = ["parallel"] @@ -59,7 +60,7 @@ asmtools = ["hex"] parallel = [ "plonky2/parallel", "plonky2_maybe_rayon/parallel", - "starky/parallel" + "starky/parallel", ] [[bin]] @@ -70,6 +71,11 @@ required-features = ["asmtools"] name = "stack_manipulation" harness = false +[[bench]] +name = "fibonacci_25m_gas" +harness = false + + # Display math equations properly in documentation [package.metadata.docs.rs] rustdoc-args = ["--html-in-header", ".cargo/katex-header.html"] diff --git a/evm_arithmetization/benches/fibonacci_25m_gas.rs b/evm_arithmetization/benches/fibonacci_25m_gas.rs new file mode 100644 index 000000000..14d448c0f --- /dev/null +++ b/evm_arithmetization/benches/fibonacci_25m_gas.rs @@ -0,0 +1,184 @@ +//! Benchmarks the CPU execution of a transaction calling a simple Fibonacci +//! contract, iterating over and over until reaching the 25M gas limit. +//! +//! Total number of user instructions: 7_136_858. +//! Total number of loops: 2_378_952. + +use std::collections::HashMap; +use std::str::FromStr; + +use criterion::{criterion_group, criterion_main, BatchSize, BenchmarkId, Criterion}; +use env_logger::{try_init_from_env, Env, DEFAULT_FILTER_ENV}; +use ethereum_types::{Address, H256, U256}; +use evm_arithmetization::cpu::kernel::aggregator::KERNEL; +use evm_arithmetization::cpu::kernel::opcodes::{get_opcode, get_push_opcode}; +use evm_arithmetization::generation::mpt::{AccountRlp, LegacyReceiptRlp}; +use evm_arithmetization::generation::{GenerationInputs, TrieInputs}; +use evm_arithmetization::proof::{BlockHashes, BlockMetadata, TrieRoots}; +use evm_arithmetization::prover::testing::simulate_execution; +use evm_arithmetization::Node; +use hex_literal::hex; +use keccak_hash::keccak; +use mpt_trie::nibbles::Nibbles; +use mpt_trie::partial_trie::{HashedPartialTrie, PartialTrie}; +use plonky2::field::goldilocks_field::GoldilocksField; + +type F = GoldilocksField; + +fn criterion_benchmark(c: &mut Criterion) { + let inputs = prepare_setup().unwrap(); + + // Dummy call to preinitialize the kernel. + let _ = KERNEL.hash(); + + let mut group = c.benchmark_group("fibonacci_25m_gas"); + group.sample_size(10); + group.bench_function(BenchmarkId::from_parameter(8), |b| { + b.iter_batched( + || inputs.clone(), + |inp| simulate_execution::(inp).unwrap(), + BatchSize::LargeInput, + ) + }); + + // Last run to print the number of CPU cycles. + init_logger(); + simulate_execution::(inputs).unwrap(); +} + +fn prepare_setup() -> anyhow::Result { + let sender = hex!("8943545177806ED17B9F23F0a21ee5948eCaa776"); + let to = hex!("159271B89fea49aF29DFaf8b4eCE7D042D5d6f07"); + + let sender_state_key = keccak(sender); + let to_state_key = keccak(to); + + let sender_nibbles = Nibbles::from_bytes_be(sender_state_key.as_bytes()).unwrap(); + let to_nibbles = Nibbles::from_bytes_be(to_state_key.as_bytes()).unwrap(); + + let push1 = get_push_opcode(1); + let push4 = get_push_opcode(4); + let add = get_opcode("ADD"); + let swap1 = get_opcode("SWAP1"); + let dup2 = get_opcode("DUP2"); + let jump = get_opcode("JUMP"); + let jumpdest = get_opcode("JUMPDEST"); + let code = [ + push1, 1, push1, 1, jumpdest, dup2, add, swap1, push4, 0, 0, 0, 4, jump, + ]; + let code_hash = keccak(code); + + let empty_trie_root = HashedPartialTrie::from(Node::Empty).hash(); + + let sender_account_before = AccountRlp { + nonce: 169.into(), + balance: U256::from_dec_str("999999999998417410153631615")?, + storage_root: empty_trie_root, + code_hash: keccak(vec![]), + }; + let to_account_before = AccountRlp { + nonce: 1.into(), + balance: 0.into(), + storage_root: empty_trie_root, + code_hash, + }; + + let mut state_trie_before = HashedPartialTrie::from(Node::Empty); + state_trie_before.insert(sender_nibbles, rlp::encode(&sender_account_before).to_vec())?; + state_trie_before.insert(to_nibbles, rlp::encode(&to_account_before).to_vec())?; + + let tries_before = TrieInputs { + state_trie: state_trie_before, + transactions_trie: Node::Empty.into(), + receipts_trie: Node::Empty.into(), + storage_tries: vec![ + (sender_state_key, Node::Empty.into()), + (to_state_key, Node::Empty.into()), + ], + }; + + let gas_used = U256::from(0x17d7840_u32); + + let txn = hex!("f86981a9843b9aca1084017d784094159271b89fea49af29dfaf8b4ece7d042d5d6f0780808360306ba00cdea08ac2e8075188b289d779fa84bf86020c2b162bbee11d2785b5225b0ccca00ea9a76f4641955a74ae8c1589914fc7d6c5bfe5940454a89daf5b12d6f06617"); + let value = U256::zero(); + + let block_metadata = BlockMetadata { + block_beneficiary: Address::from(sender), + block_difficulty: 0x0.into(), + block_number: 0x176.into(), + block_chain_id: 0x301824.into(), + block_timestamp: 0x664e63af.into(), + block_gaslimit: 0x1c9c380.into(), + block_gas_used: gas_used, + block_bloom: [0.into(); 8], + block_base_fee: 0x11.into(), + block_random: H256(hex!( + "388bd2892c01ab13e22f713316cc2b5d3c3d963e1426c25a80c7878a1815f889" + )), + }; + + let mut contract_code = HashMap::new(); + contract_code.insert(keccak(vec![]), vec![]); + contract_code.insert(code_hash, code.to_vec()); + + let sender_account_after = AccountRlp { + balance: sender_account_before.balance - value - gas_used * block_metadata.block_base_fee, + nonce: sender_account_before.nonce + 1, + ..sender_account_before + }; + let to_account_after = to_account_before; + + let mut expected_state_trie_after = HashedPartialTrie::from(Node::Empty); + expected_state_trie_after + .insert(sender_nibbles, rlp::encode(&sender_account_after).to_vec())?; + expected_state_trie_after.insert(to_nibbles, rlp::encode(&to_account_after).to_vec())?; + + let receipt_0 = LegacyReceiptRlp { + status: false, + cum_gas_used: gas_used, + bloom: vec![0; 256].into(), + logs: vec![], + }; + let mut receipts_trie = HashedPartialTrie::from(Node::Empty); + receipts_trie.insert( + Nibbles::from_str("0x80").unwrap(), + rlp::encode(&receipt_0).to_vec(), + )?; + let transactions_trie: HashedPartialTrie = Node::Leaf { + nibbles: Nibbles::from_str("0x80").unwrap(), + value: txn.to_vec(), + } + .into(); + + let trie_roots_after = TrieRoots { + state_root: expected_state_trie_after.hash(), + transactions_root: transactions_trie.hash(), + receipts_root: receipts_trie.hash(), + }; + + Ok(GenerationInputs { + signed_txns: vec![txn.to_vec()], + withdrawals: vec![], + tries: tries_before, + trie_roots_after, + contract_code, + checkpoint_state_trie_root: H256(hex!( + "fe07ff6d1ab215df17884b89112ccf2373597285a56c5902150313ad1a53ee57" + )), + block_metadata, + txn_number_before: 0.into(), + gas_used_before: 0.into(), + gas_used_after: gas_used, + block_hashes: BlockHashes { + prev_hashes: vec![H256::default(); 256], + cur_hash: H256::default(), + }, + }) +} + +fn init_logger() { + let _ = try_init_from_env(Env::default().filter_or(DEFAULT_FILTER_ENV, "info")); +} + +criterion_group!(benches, criterion_benchmark); +criterion_main!(benches); diff --git a/evm_arithmetization/src/arithmetic/shift.rs b/evm_arithmetization/src/arithmetic/shift.rs index eba9fb884..d96002bbf 100644 --- a/evm_arithmetization/src/arithmetic/shift.rs +++ b/evm_arithmetization/src/arithmetic/shift.rs @@ -94,7 +94,7 @@ fn eval_packed_shl( } /// Evaluates the constraints for an SHR opcode. -/// The logic is tha same as the one for DIV. The only difference is that +/// The logic is the same as the one for DIV. The only difference is that /// the inputs are in `INPUT_REGISTER_1` and `INPUT_REGISTER_2` instead of /// `INPUT_REGISTER_0` and `INPUT_REGISTER_1`. fn eval_packed_shr( diff --git a/evm_arithmetization/src/byte_packing/byte_packing_stark.rs b/evm_arithmetization/src/byte_packing/byte_packing_stark.rs index 47491d8a9..d894cbfba 100644 --- a/evm_arithmetization/src/byte_packing/byte_packing_stark.rs +++ b/evm_arithmetization/src/byte_packing/byte_packing_stark.rs @@ -9,9 +9,9 @@ //! //! The length of a sequence can be retrieved for CTLs as: //! -//! sequence_length = \sum_{i=0}^31 b[i] * (i + 1) +//! `sequence_length = \sum_{i=0}^31 b[i] * (i + 1)` //! -//! where b[i] is the `i`-th byte flag. +//! where `b[i]` is the `i`-th byte flag. //! //! Because of the discrepancy in endianness between the different tables, the //! byte sequences are actually written in the trace in reverse order from the diff --git a/evm_arithmetization/src/cpu/columns/mod.rs b/evm_arithmetization/src/cpu/columns/mod.rs index d4abd71d9..661c4d18f 100644 --- a/evm_arithmetization/src/cpu/columns/mod.rs +++ b/evm_arithmetization/src/cpu/columns/mod.rs @@ -4,12 +4,13 @@ use core::mem::{size_of, transmute}; use core::ops::{Index, IndexMut}; use plonky2::field::types::Field; +use zk_evm_proc_macro::Columns; use crate::cpu::columns::general::CpuGeneralColumnsView; use crate::cpu::columns::ops::OpsColumnsView; use crate::cpu::membus::NUM_GP_CHANNELS; use crate::memory; -use crate::util::{indices_arr, transmute_no_compile_time_size_checks}; +use crate::util::indices_arr; mod general; /// Cpu operation flags. @@ -54,7 +55,7 @@ pub(crate) struct PartialMemoryChannelView { } #[repr(C)] -#[derive(Clone, Copy, Eq, PartialEq, Debug)] +#[derive(Columns, Clone, Copy, Eq, PartialEq, Debug)] pub(crate) struct CpuColumnsView { /// If CPU cycle: Current context. pub context: T, @@ -98,70 +99,6 @@ pub(crate) struct CpuColumnsView { /// `u8` is guaranteed to have a `size_of` of 1. pub(crate) const NUM_CPU_COLUMNS: usize = size_of::>(); -impl Default for CpuColumnsView { - fn default() -> Self { - Self::from([F::ZERO; NUM_CPU_COLUMNS]) - } -} - -impl From<[T; NUM_CPU_COLUMNS]> for CpuColumnsView { - fn from(value: [T; NUM_CPU_COLUMNS]) -> Self { - unsafe { transmute_no_compile_time_size_checks(value) } - } -} - -impl From> for [T; NUM_CPU_COLUMNS] { - fn from(value: CpuColumnsView) -> Self { - unsafe { transmute_no_compile_time_size_checks(value) } - } -} - -impl Borrow> for [T; NUM_CPU_COLUMNS] { - fn borrow(&self) -> &CpuColumnsView { - unsafe { transmute(self) } - } -} - -impl BorrowMut> for [T; NUM_CPU_COLUMNS] { - fn borrow_mut(&mut self) -> &mut CpuColumnsView { - unsafe { transmute(self) } - } -} - -impl Borrow<[T; NUM_CPU_COLUMNS]> for CpuColumnsView { - fn borrow(&self) -> &[T; NUM_CPU_COLUMNS] { - unsafe { transmute(self) } - } -} - -impl BorrowMut<[T; NUM_CPU_COLUMNS]> for CpuColumnsView { - fn borrow_mut(&mut self) -> &mut [T; NUM_CPU_COLUMNS] { - unsafe { transmute(self) } - } -} - -impl Index for CpuColumnsView -where - [T]: Index, -{ - type Output = <[T] as Index>::Output; - - fn index(&self, index: I) -> &Self::Output { - let arr: &[T; NUM_CPU_COLUMNS] = self.borrow(); - <[T] as Index>::index(arr, index) - } -} - -impl IndexMut for CpuColumnsView -where - [T]: IndexMut, -{ - fn index_mut(&mut self, index: I) -> &mut Self::Output { - let arr: &mut [T; NUM_CPU_COLUMNS] = self.borrow_mut(); - <[T] as IndexMut>::index_mut(arr, index) - } -} - const fn make_col_map() -> CpuColumnsView { let indices_arr = indices_arr::(); unsafe { transmute::<[usize; NUM_CPU_COLUMNS], CpuColumnsView>(indices_arr) } diff --git a/evm_arithmetization/src/cpu/columns/ops.rs b/evm_arithmetization/src/cpu/columns/ops.rs index c15d65722..9963215f6 100644 --- a/evm_arithmetization/src/cpu/columns/ops.rs +++ b/evm_arithmetization/src/cpu/columns/ops.rs @@ -2,11 +2,11 @@ use core::borrow::{Borrow, BorrowMut}; use core::mem::{size_of, transmute}; use core::ops::{Deref, DerefMut}; -use crate::util::transmute_no_compile_time_size_checks; +use zk_evm_proc_macro::{Columns, DerefColumns}; /// Structure representing the flags for the various opcodes. #[repr(C)] -#[derive(Clone, Copy, Eq, PartialEq, Debug)] +#[derive(Columns, DerefColumns, Clone, Copy, Eq, PartialEq, Debug)] pub(crate) struct OpsColumnsView { /// Combines ADD, MUL, SUB, DIV, MOD, LT, GT and BYTE flags. pub binary_op: T, @@ -50,40 +50,3 @@ pub(crate) struct OpsColumnsView { /// Number of columns in Cpu Stark. /// `u8` is guaranteed to have a `size_of` of 1. pub(crate) const NUM_OPS_COLUMNS: usize = size_of::>(); - -impl From<[T; NUM_OPS_COLUMNS]> for OpsColumnsView { - fn from(value: [T; NUM_OPS_COLUMNS]) -> Self { - unsafe { transmute_no_compile_time_size_checks(value) } - } -} - -impl From> for [T; NUM_OPS_COLUMNS] { - fn from(value: OpsColumnsView) -> Self { - unsafe { transmute_no_compile_time_size_checks(value) } - } -} - -impl Borrow> for [T; NUM_OPS_COLUMNS] { - fn borrow(&self) -> &OpsColumnsView { - unsafe { transmute(self) } - } -} - -impl BorrowMut> for [T; NUM_OPS_COLUMNS] { - fn borrow_mut(&mut self) -> &mut OpsColumnsView { - unsafe { transmute(self) } - } -} - -impl Deref for OpsColumnsView { - type Target = [T; NUM_OPS_COLUMNS]; - fn deref(&self) -> &Self::Target { - unsafe { transmute(self) } - } -} - -impl DerefMut for OpsColumnsView { - fn deref_mut(&mut self) -> &mut Self::Target { - unsafe { transmute(self) } - } -} diff --git a/evm_arithmetization/src/cpu/decode.rs b/evm_arithmetization/src/cpu/decode.rs index 540a4d66d..b54a0c397 100644 --- a/evm_arithmetization/src/cpu/decode.rs +++ b/evm_arithmetization/src/cpu/decode.rs @@ -148,9 +148,16 @@ pub(crate) fn eval_packed_generic( .sum() }; + // Manually check that the fp254 operations are kernel-only instructions. + yield_constr.constraint((kernel_mode - P::ONES) * lv.op.fp254_op); + + // Manually check that SUBMOD is a kernel-only instruction. SUBMOD is + // differentiated by its second bit set to 1. + yield_constr.constraint(lv.op.ternary_op * lv.opcode_bits[1] * (kernel_mode - P::ONES)); + // Manually check lv.op.m_op_constr let opcode = opcode_high_bits(8); - yield_constr.constraint((P::ONES - kernel_mode) * lv.op.m_op_general); + yield_constr.constraint((kernel_mode - P::ONES) * lv.op.m_op_general); let m_op_constr = (opcode - P::Scalar::from_canonical_usize(0xfb_usize)) * (opcode - P::Scalar::from_canonical_usize(0xfc_usize)) @@ -161,7 +168,7 @@ pub(crate) fn eval_packed_generic( // KECCAK_GENERAL is a kernel-only instruction, but not JUMPDEST. // JUMPDEST is differentiated from KECCAK_GENERAL by its second bit set to 1. yield_constr.constraint( - (P::ONES - kernel_mode) * lv.op.jumpdest_keccak_general * (P::ONES - lv.opcode_bits[1]), + (kernel_mode - P::ONES) * lv.op.jumpdest_keccak_general * (P::ONES - lv.opcode_bits[1]), ); // Check the JUMPDEST and KERNEL_GENERAL opcodes. @@ -190,7 +197,7 @@ pub(crate) fn eval_packed_generic( // Manually check lv.op.m_op_32bytes. // Both are kernel-only. - yield_constr.constraint((P::ONES - kernel_mode) * lv.op.m_op_32bytes); + yield_constr.constraint((kernel_mode - P::ONES) * lv.op.m_op_32bytes); // Check the MSTORE_32BYTES and MLOAD-32BYTES opcodes. let opcode_high_three = opcode_high_bits(3); @@ -206,7 +213,7 @@ pub(crate) fn eval_packed_generic( * lv.op.push_prover_input; yield_constr.constraint(push_prover_input_constr); let prover_input_constr = - lv.op.push_prover_input * (lv.opcode_bits[5] - P::ONES) * (P::ONES - kernel_mode); + lv.op.push_prover_input * (lv.opcode_bits[5] - P::ONES) * (kernel_mode - P::ONES); yield_constr.constraint(prover_input_constr); } @@ -304,15 +311,23 @@ pub(crate) fn eval_ext_circuit, const D: usize>( yield_constr.constraint(builder, constr); } + // Manually check that the fp254 operations are kernel-only instructions. + let constr = builder.mul_sub_extension(kernel_mode, lv.op.fp254_op, lv.op.fp254_op); + yield_constr.constraint(builder, constr); + + // Manually check that SUBMOD is a kernel-only instruction. SUBMOD is + // differentiated by its second bit set to 1. + let submod_op = builder.mul_extension(lv.op.ternary_op, lv.opcode_bits[1]); + let constr = builder.mul_sub_extension(kernel_mode, submod_op, submod_op); + yield_constr.constraint(builder, constr); + // Manually check lv.op.m_op_constr let opcode = opcode_high_bits_circuit(builder, lv, 8); let mload_opcode = builder.constant_extension(F::Extension::from_canonical_usize(0xfb_usize)); let mstore_opcode = builder.constant_extension(F::Extension::from_canonical_usize(0xfc_usize)); - let one_extension = builder.constant_extension(F::Extension::ONE); - let is_not_kernel_mode = builder.sub_extension(one_extension, kernel_mode); - let constr = builder.mul_extension(is_not_kernel_mode, lv.op.m_op_general); + let constr = builder.mul_sub_extension(kernel_mode, lv.op.m_op_general, lv.op.m_op_general); yield_constr.constraint(builder, constr); let mload_constr = builder.sub_extension(opcode, mload_opcode); @@ -334,7 +349,8 @@ pub(crate) fn eval_ext_circuit, const D: usize>( let mut kernel_general_filter = builder.sub_extension(one, lv.opcode_bits[1]); kernel_general_filter = builder.mul_extension(lv.op.jumpdest_keccak_general, kernel_general_filter); - let constr = builder.mul_extension(is_not_kernel_mode, kernel_general_filter); + let constr = + builder.mul_sub_extension(kernel_mode, kernel_general_filter, kernel_general_filter); yield_constr.constraint(builder, constr); // Check the JUMPDEST and KERNEL_GENERAL opcodes. @@ -375,7 +391,7 @@ pub(crate) fn eval_ext_circuit, const D: usize>( // Manually check lv.op.m_op_32bytes. // Both are kernel-only. - let constr = builder.mul_extension(is_not_kernel_mode, lv.op.m_op_32bytes); + let constr = builder.mul_sub_extension(kernel_mode, lv.op.m_op_32bytes, lv.op.m_op_32bytes); yield_constr.constraint(builder, constr); // Check the MSTORE_32BYTES and MLOAD-32BYTES opcodes. @@ -407,6 +423,6 @@ pub(crate) fn eval_ext_circuit, const D: usize>( lv.opcode_bits[5], lv.op.push_prover_input, ); - let constr = builder.mul_extension(prover_input_filter, is_not_kernel_mode); + let constr = builder.mul_sub_extension(kernel_mode, prover_input_filter, prover_input_filter); yield_constr.constraint(builder, constr); } diff --git a/evm_arithmetization/src/cpu/jumps.rs b/evm_arithmetization/src/cpu/jumps.rs index b6706035d..2a8df148a 100644 --- a/evm_arithmetization/src/cpu/jumps.rs +++ b/evm_arithmetization/src/cpu/jumps.rs @@ -101,7 +101,7 @@ pub(crate) fn eval_packed_jump_jumpi( let empty_stack_filter = filter * (lv.general.stack().stack_inv_aux - P::ONES); yield_constr.constraint_transition(empty_stack_filter * channel.used); - // If `JUMP`, re-use the `JUMPI` logic, but setting the second input (the + // If `JUMP`, reuse the `JUMPI` logic, but setting the second input (the // predicate) to be 1. In other words, we implement `JUMP(dst)` as // `JUMPI(dst, cond=1)`. yield_constr.constraint(is_jump * (cond[0] - P::ONES)); @@ -236,7 +236,7 @@ pub(crate) fn eval_ext_circuit_jump_jumpi, const D: yield_constr.constraint_transition(builder, constr); } - // If `JUMP`, re-use the `JUMPI` logic, but setting the second input (the + // If `JUMP`, reuse the `JUMPI` logic, but setting the second input (the // predicate) to be 1. In other words, we implement `JUMP(dst)` as // `JUMPI(dst, cond=1)`. { diff --git a/evm_arithmetization/src/cpu/kernel/aggregator.rs b/evm_arithmetization/src/cpu/kernel/aggregator.rs index 637655255..b6b6b293c 100644 --- a/evm_arithmetization/src/cpu/kernel/aggregator.rs +++ b/evm_arithmetization/src/cpu/kernel/aggregator.rs @@ -64,7 +64,10 @@ pub(crate) fn combined_kernel() -> Kernel { include_str!("asm/curve/bn254/curve_arithmetic/msm.asm"), include_str!("asm/curve/bn254/curve_arithmetic/pairing.asm"), include_str!("asm/curve/bn254/curve_arithmetic/precomputation.asm"), - include_str!("asm/curve/bn254/curve_arithmetic/twisted_curve.asm"), + include_str!("asm/curve/bn254/curve_arithmetic/twisted_curve_add.asm"), + include_str!("asm/curve/bn254/curve_arithmetic/twisted_curve_checks.asm"), + include_str!("asm/curve/bn254/curve_arithmetic/twisted_curve_endomorphism.asm"), + include_str!("asm/curve/bn254/curve_arithmetic/twisted_curve_mul.asm"), include_str!("asm/curve/bn254/field_arithmetic/degree_6_mul.asm"), include_str!("asm/curve/bn254/field_arithmetic/degree_12_mul.asm"), include_str!("asm/curve/bn254/field_arithmetic/frobenius.asm"), diff --git a/evm_arithmetization/src/cpu/kernel/asm/core/access_lists.asm b/evm_arithmetization/src/cpu/kernel/asm/core/access_lists.asm index 941ff5d85..552cbc7d8 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/core/access_lists.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/core/access_lists.asm @@ -18,7 +18,7 @@ global init_access_lists: PUSH 0 %mstore_global_metadata(@GLOBAL_METADATA_ACCESS_LIST_RLP_LEN) PUSH 0 %mstore_global_metadata(@GLOBAL_METADATA_ACCESS_LIST_RLP_START) - // Store @U256_MAX at the beggining of the segment + // Store @U256_MAX at the beginning of the segment PUSH @SEGMENT_ACCESSED_ADDRESSES // ctx == virt == 0 DUP1 PUSH @U256_MAX @@ -35,7 +35,7 @@ global init_access_lists: // stack: (empty) // Initialize SEGMENT_ACCESSED_STORAGE_KEYS - // Store @U256_MAX at the beggining of the segment + // Store @U256_MAX at the beginning of the segment PUSH @SEGMENT_ACCESSED_STORAGE_KEYS // ctx == virt == 0 DUP1 PUSH @U256_MAX @@ -71,7 +71,7 @@ global init_access_lists: // Multiply the value at the top of the stack, denoted by ptr/2, by 2 // and abort if ptr/2 >= mem[@GLOBAL_METADATA_ACCESSED_ADDRESSES_LEN]/2 -// In this way 2*ptr/2 must be pointing to the begining of a node. +// In this way 2*ptr/2 must be pointing to the beginning of a node. %macro get_valid_addr_ptr // stack: ptr/2 DUP1 @@ -176,7 +176,7 @@ insert_new_address: /// Otherwise it guesses the node before the address (pred) /// such that (pred)->(next)->(next_next), where the (next) node /// stores the address. It writes the link (pred)->(next_next) -/// and (next) is marked as deleted by writting U256_MAX in its +/// and (next) is marked as deleted by writing U256_MAX in its /// next node pointer. global remove_accessed_addresses: // stack: addr, retdest diff --git a/evm_arithmetization/src/cpu/kernel/asm/core/call.asm b/evm_arithmetization/src/cpu/kernel/asm/core/call.asm index b5b893547..c6f91459e 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/core/call.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/core/call.asm @@ -386,7 +386,7 @@ call_too_deep: SET_CONTEXT %checkpoint // Checkpoint %increment_call_depth - // Perform jumpdest analyis + // Perform jumpdest analysis %mload_context_metadata(@CTX_METADATA_CODE_SIZE) GET_CONTEXT // stack: ctx, code_size, retdest diff --git a/evm_arithmetization/src/cpu/kernel/asm/core/terminate.asm b/evm_arithmetization/src/cpu/kernel/asm/core/terminate.asm index a21dfa98c..f77020838 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/core/terminate.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/core/terminate.asm @@ -110,9 +110,36 @@ global sys_selfdestruct: %add_eth sys_selfdestruct_journal_add: + // stack: address, recipient, balance, kexit_info + DUP3 ISZERO + + // If balance is 0, we didn't perform any transfer. Hence, the recipient + // may not exist, and we need to verify this before adding a new journal entry. + + // stack: balance=0, address, recipient, balance, kexit_info + %jumpi(skip_journal_entry_if_nonexistent) + +sys_selfdestruct_journal_add_after_check: // stack: address, recipient, balance, kexit_info %journal_add_account_destroyed + %jump(sys_selfdestruct_exit) + +skip_journal_entry_if_nonexistent: + // stack: address, recipient, balance, kexit_info + DUP2 %is_non_existent + + // If the account doesn't exist, there is no need to add a journal entry. + // stack: recipient_is_non_existent, address, recipient, balance, kexit_info + %jumpi(skip_journal_entry) + + // stack: address, recipient, balance, kexit_info + %jump(sys_selfdestruct_journal_add_after_check) + +skip_journal_entry: + // stack: address, recipient, balance, kexit_info + %pop3 +sys_selfdestruct_exit: // stack: kexit_info %leftover_gas // stack: leftover_gas diff --git a/evm_arithmetization/src/cpu/kernel/asm/core/transfer.asm b/evm_arithmetization/src/cpu/kernel/asm/core/transfer.asm index 0517cf3a8..986c4f991 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/core/transfer.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/core/transfer.asm @@ -65,6 +65,9 @@ global deduct_eth_insufficient_balance: global add_eth: // stack: addr, amount, retdest DUP1 %insert_touched_addresses + // stack: addr, amount, retdest + DUP2 ISZERO %jumpi(add_eth_zero_amount) + // stack: addr, amount, retdest DUP1 %mpt_read_state_trie // stack: account_ptr, addr, amount, retdest DUP1 ISZERO %jumpi(add_eth_new_account) // If the account pointer is null, we need to create the account. @@ -84,7 +87,6 @@ global add_eth_new_account: // stack: null_account_ptr, addr, amount, retdest POP // stack: addr, amount, retdest - DUP2 ISZERO %jumpi(add_eth_new_account_zero) DUP1 %journal_add_account_created %get_trie_data_size // pointer to new account we're about to create // stack: new_account_ptr, addr, amount, retdest @@ -100,7 +102,7 @@ global add_eth_new_account: // stack: key, new_account_ptr, retdest %jump(mpt_insert_state_trie) -add_eth_new_account_zero: +add_eth_zero_amount: // stack: addr, amount, retdest %pop2 JUMP diff --git a/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/curve_add.asm b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/curve_add.asm index a43c4047d..98ded41f7 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/curve_add.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/curve_add.asm @@ -10,12 +10,12 @@ global bn_add: %bn_check // stack: isValid(x0, y0), x0, y0, x1, y1, retdest DUP5 - // stack: x1, isValid(x0, y0), x0, y0, x1, y1, retdest + // stack: y1, isValid(x0, y0), x0, y0, x1, y1, retdest DUP5 // stack: x1, y1, isValid(x0, y0), x0, y0, x1, y1, retdest %bn_check // stack: isValid(x1, y1), isValid(x0, y0), x0, y0, x1, y1, retdest - AND + MUL // Cheaper than AND // stack: isValid(x1, y1) & isValid(x0, y0), x0, y0, x1, y1, retdest %jumpi(bn_add_valid_points) // stack: x0, y0, x1, y1, retdest diff --git a/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/pairing.asm b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/pairing.asm index 735d001aa..4517f7cb7 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/pairing.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/pairing.asm @@ -68,9 +68,16 @@ bn254_input_check: // stack: inp_j', inp_j, j, k, inp %load_fp254_4 // stack: Q_j, inp_j, j, k, inp + %dup_bn_g2 + // stack: Q_j, Q_j, inp_j, j, k, inp %bn_check_twisted - // stack: valid?, inp_j, j, k, inp ISZERO + // stack: valid_1?, Q_j, inp_j, j, k, inp + %stack (b, Q: 4) -> (Q, b) + %bn_check_twisted_subgroup + ISZERO + // stack: valid_2?, valid_1?, inp_j, j, k, inp + ADD // Cheaper than OR %jumpi(bn_pairing_invalid_input) // stack: inp_j, j, k, inp POP diff --git a/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/twisted_curve_add.asm b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/twisted_curve_add.asm new file mode 100644 index 000000000..b4ff7a3eb --- /dev/null +++ b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/twisted_curve_add.asm @@ -0,0 +1,197 @@ +// Elliptic curve addition on the twist of BN254 curve. +// Assumption: (X0,Y0) is a valid point. +// Uses the standard affine addition formula. +global bn_twisted_add: + // stack: X0: 2, Y0: 2, X1: 2, Y1: 2, retdest + + // Check if the first point is the identity. + %dup_fp254_2_2 + // stack: Y0, X0, Y0, X1, Y1, retdest + %dup_fp254_2_2 + // stack: X0, Y0, X0, Y0, X1, Y1, retdest + %bn_check_twisted_ident + // stack: (X0,Y0)==(0,0), X0, Y0, X1, Y1, retdest + %jumpi(bn_twisted_add_fst_zero) + // stack: X0, Y0, X1, Y1, retdest + + // Check if the second point is the identity. + %dup_fp254_2_6 + // stack: Y1, X0, Y0, X1, Y1, retdest + %dup_fp254_2_6 + // stack: X1, Y1, X0, Y0, X1, Y1, retdest + %bn_check_twisted_ident + // stack: (X1,Y1)==(0,0), X0, Y0, X1, Y1, retdest + %jumpi(bn_twisted_add_snd_zero) + // stack: X0, Y0, X1, Y1, retdest + + // Check if both points have the same X-coordinate. + %dup_fp254_2_4 + // stack: X1, X0, Y0, X1, Y1, retdest + %dup_fp254_2_2 + // stack: X0, X1, X0, Y0, X1, Y1, retdest + %eq_fp254_2 + // stack: X0 == X1, X0, Y0, X1, Y1, retdest + %jumpi(bn_twisted_add_equal_first_coord) + // stack: X0, Y0, X1, Y1, retdest + + // Otherwise, we can use the standard formula. + // Compute lambda = (Y0 - Y1)/(X0 - X1) + %dup_fp254_2_6 + // stack: Y1, X0, Y0, X1, Y1, retdest + %dup_fp254_2_4 + // stack: Y0, Y1, X0, Y0, X1, Y1, retdest + %sub_fp254_2 + // stack: Y0 - Y1, X0, Y0, X1, Y1, retdest + %dup_fp254_2_6 + // stack: X1, Y0 - Y1, X0, Y0, X1, Y1, retdest + %dup_fp254_2_4 + // stack: X0, X1, Y0 - Y1, X0, Y0, X1, Y1, retdest + %sub_fp254_2 + // stack: X0 - X1, Y0 - Y1, X0, Y0, X1, Y1, retdest + %divr_fp254_2 + // stack: lambda, X0, Y0, X1, Y1, retdest + %jump(bn_twisted_add_valid_points_with_lambda) + +// BN254 twisted elliptic curve addition. +// Assumption: (X0,Y0) == (0,0) +bn_twisted_add_fst_zero: + // stack: X0: 2, Y0: 2, X1: 2, Y1: 2, retdest + // Just return (X1, Y1) + %stack (X0: 2, Y0: 2, X1: 2, Y1: 2, retdest) -> (retdest, X1, Y1) + JUMP + +// BN254 twisted elliptic curve addition. +// Assumption: (X1,Y1) == (0,0) +bn_twisted_add_snd_zero: + // stack: X0: 2, Y0: 2, X1: 2, Y1: 2, retdest + + // Just return (X0,Y0) + %stack (X0: 2, Y0: 2, X1: 2, Y1: 2, retdest) -> (retdest, X0, Y0) + JUMP + +// BN254 twisted elliptic curve addition. +// Assumption: lambda = (Y0 - Y1)/(X0 - X1) +bn_twisted_add_valid_points_with_lambda: + // stack: lambda: 2, X0: 2, Y0: 2, X1: 2, Y1: 2, retdest + + // Compute X2 = lambda^2 - X1 - X0 + %dup_fp254_2_2 + // stack: X0, lambda, X0, Y0, X1, Y1, retdest + %dup_fp254_2_8 + // stack: X1, X0, lambda, X0, Y0, X1, Y1, retdest + %dup_fp254_2_4 + // stack: lambda, X1, X0, lambda, X0, Y0, X1, Y1, retdest + %dup_fp254_2_0 + // stack: lambda, lambda, X1, X0, lambda, X0, Y0, X1, Y1, retdest + %mul_fp254_2 + // stack: lambda^2, X1, X0, lambda, X0, Y0, X1, Y1, retdest + %sub_fp254_2 + // stack: lambda^2 - X1, X0, lambda, X0, Y0, X1, Y1, retdest + %sub_fp254_2 + // stack: X2, lambda, X0, Y0, X1, Y1, retdest + + // Compute Y2 = lambda*(X1 - X2) - Y1 + %dup_fp254_2_0 + // stack: X2, X2, lambda, X0, Y0, X1, Y1, retdest + %dup_fp254_2_10 + // stack: X1, X2, X2, lambda, X0, Y0, X1, Y1, retdest + %sub_fp254_2 + // stack: X1 - X2, X2, lambda, X0, Y0, X1, Y1, retdest + %dup_fp254_2_4 + // stack: lambda, X1 - X2, X2, lambda, X0, Y0, X1, Y1, retdest + %mul_fp254_2 + // stack: lambda * (X1 - X2), X2, lambda, X0, Y0, X1, Y1, retdest + %dup_fp254_2_12 + // stack: Y1, lambda * (X1 - X2), X2, lambda, X0, Y0, X1, Y1, retdest + %stack (Y1: 2, T: 2) -> (T, Y1) + // stack: lambda * (X1 - X2), Y1, X2, lambda, X0, Y0, X1, Y1, retdest + %sub_fp254_2 + // stack: Y2, X2, lambda, X0, Y0, X1, Y1, retdest + + // Return X2, Y2 + %stack (Y2: 2, X2: 2, lambda: 2, X0: 2, Y0: 2, X1: 2, Y1: 2, retdest) -> (retdest, X2, Y2) + JUMP + +// BN254 twisted elliptic curve addition. +// Assumption: (X0,Y0) and (X1,Y1) are valid points and X0 == X1 +bn_twisted_add_equal_first_coord: + // stack: X0, Y0, X1, Y1, retdest with X0 == X1 + + // Check if the points are equal + %dup_fp254_2_2 + // stack: Y0, X0, Y0, X1, Y1, retdest + %dup_fp254_2_8 + // stack: Y1, Y0, X0, Y0, X1, Y1, retdest + %eq_fp254_2 + // stack: Y1 == Y0, X0, Y0, X1, Y1, retdest + %jumpi(bn_twisted_add_equal_points) + // stack: X0, Y0, X1, Y1, retdest + + // Otherwise, one is the negation of the other so we can return the identity. + %stack (garbage: 8, retdest) -> (retdest, 0, 0, 0, 0) + // stack: retdest, X=0, Y=0 + JUMP + + +// BN254 twisted elliptic curve addition. +// Assumption: X0 == X1 and Y0 == Y1 +// Standard doubling formula. +bn_twisted_add_equal_points: + // stack: X0, Y0, X1, Y1, retdest + + // Compute lambda = 3/2 * X0^2 / Y0 + %dup_fp254_2_0 + // stack: X0, X0, Y0, X1, Y1, retdest + %dup_fp254_2_0 + // stack: X0, X0, X0, Y0, X1, Y1, retdest + %mul_fp254_2 + // stack: X0^2, X0, Y0, X1, Y1, retdest + PUSH 0X183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea5 // 3/2 in the base field + // stack: 3/2, X0^2, X0, Y0, X1, Y1, retdest + %scale_fp254_2 + // stack: 3/2 * X0^2, X0, Y0, X1, Y1, retdest + %dup_fp254_2_4 + // stack: Y0, 3/2 * X0^2, X0, Y0, X1, Y1, retdest + %divr_fp254_2 + // stack: lambda, X0, Y0, X1, Y1, retdest + %jump(bn_twisted_add_valid_points_with_lambda) + +// BN254 twisted elliptic curve doubling. +// Assumption: (X0,Y0) is a valid point. +// Standard doubling formula. +global bn_twisted_double: + // stack: X, Y, retdest + %dup_bn_g2 + // stack: X, Y, X, Y, retdest + %bn_check_twisted_ident + // stack: (X,Y)==(0,0), X, Y, retdest + %jumpi(ec_twisted_double_retself) + %dup_bn_g2 + // stack: X, Y, X, Y, retdest + %jump(bn_twisted_add_equal_points) + +// Convenience macro to call bn_twisted_add and return where we left off. +%macro bn_twisted_add + %stack (X0: 2, Y0: 2, X1: 2, Y1: 2) -> (X0, Y0, X1, Y1, %%after) + %jump(bn_twisted_add) +%%after: +%endmacro + +%macro bn_twisted_sub + // stack: X0: 2, Y0: 2, X1: 2, Y1: 2 + %swap_fp254_2_4 + // stack: Y1, Y0, X1, X0 + PUSH 0 PUSH 0 + %sub_fp254_2 + // stack: -Y1, Y0, X1, X0 + %stack (Y1: 2, Y0: 2, X1: 2, X0: 2) -> (X0, Y0, X1, Y1, %%after) + %jump(bn_twisted_add) +%%after: +%endmacro + +// Convenience macro to call bn_twisted_double and return where we left off. +%macro bn_twisted_double + %stack (X: 2, Y: 2) -> (X, Y, %%after) + %jump(bn_twisted_double) +%%after: +%endmacro diff --git a/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/twisted_curve.asm b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/twisted_curve_checks.asm similarity index 65% rename from evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/twisted_curve.asm rename to evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/twisted_curve_checks.asm index 859c45fe3..bbd7d06cf 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/twisted_curve.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/twisted_curve_checks.asm @@ -92,3 +92,52 @@ MUL // Cheaper than AND MUL // Cheaper than AND %endmacro + +/// The `ECPAIRING` precompile requires checking that G2 +/// inputs are on the correct prime-order subgroup. +/// This macro performs this check, based on the algorithm +/// detailed in . +%macro bn_check_twisted_subgroup + // stack: Q = (X, Y) + %dup_bn_g2 + // stack: Q, Q + %bn_twisted_mul_by_z + // stack: zQ, Q + %dup_bn_g2 + // stack: zQ, zQ, Q + %swap_bn_g2_2 + // stack: Q, zQ, zQ + %bn_twisted_add + // stack: [z+1]Q, zQ + %swap_bn_g2 + // stack: zQ, [z+1]Q + %bn_endomorphism + // stack: phi(zQ), [z+1]Q + %dup_bn_g2 + // stack: phi(zQ), phi(zQ), [z+1]Q + %bn_endomorphism + // stack: phi^2(zQ), phi(zQ), [z+1]Q + %dup_bn_g2 + // stack: phi^2(zQ), phi^2(zQ), phi(zQ), [z+1]Q + %bn_endomorphism + // stack: phi^3(zQ), phi^2(zQ), phi(zQ), [z+1]Q + %bn_twisted_double + // stack: phi^3([2z]Q), phi^2(zQ), phi(zQ), [z+1]Q + %bn_twisted_sub + // stack: phi^3([2z]Q) - phi^2(zQ), phi(zQ), [z+1]Q + %bn_twisted_sub + // stack: phi^3([2z]Q) - phi^2(zQ) - phi(zQ), [z+1]Q + %bn_twisted_sub + // stack: phi^3([2z]Q) - phi^2(zQ) - phi(zQ) - [z+1]Q + %bn_check_twisted_ident + // stack: is_ident +%endmacro + +// Return [(u256::MAX, u256::MAX), (u256::MAX, u256::MAX)] which is used to indicate the input was invalid. +%macro bn_twisted_invalid_input + // stack: retdest + PUSH @U256_MAX + // stack: u256::MAX, retdest + %stack (max, retdest) -> (retdest, max, max, max, max) + JUMP +%endmacro \ No newline at end of file diff --git a/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/twisted_curve_endomorphism.asm b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/twisted_curve_endomorphism.asm new file mode 100644 index 000000000..dfe819ef8 --- /dev/null +++ b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/twisted_curve_endomorphism.asm @@ -0,0 +1,28 @@ +// Implementation of the BN254 twist endomorphism. + +/// Frobenius map over BN254 quadratic extension. +%macro frob_fp254_2 + // stack: X = (x, x_) + %conj_fp254_2 + // stack: frob(X) +%endmacro + +%macro bn_endomorphism + // stack: X: 2, Y: 2 + %frob_fp254_2 + // stack: X', Y + %swap_fp254_2 + // stack: Y, X' + %frob_fp254_2 + // stack: Y', X' + PUSH @BN_ENDO_Y_COORD_IM + PUSH @BN_ENDO_Y_COORD_RE + %mul_fp254_2 + // stack: φ_y.Y', X' + %swap_fp254_2 + // stack: X', φ_y.Y' + PUSH @BN_ENDO_X_COORD_IM + PUSH @BN_ENDO_X_COORD_RE + %mul_fp254_2 + // stack: φ_x.X', φ_y.Y' +%endmacro diff --git a/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/twisted_curve_mul.asm b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/twisted_curve_mul.asm new file mode 100644 index 000000000..01586b069 --- /dev/null +++ b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/curve_arithmetic/twisted_curve_mul.asm @@ -0,0 +1,84 @@ +// BN254 elliptic curve scalar multiplication on the twist. +// Uses the naive algorithm. +global bn_twisted_mul: + // stack: X: 2, Y: 2, s, retdest + %dup_bn_g2 + // stack: X, Y, X, Y, s, retdest + %bn_check_twisted_ident + // stack: (X,Y)==(0,0), X, Y, s, retdest + %jumpi(ret_zero_ec_twisted_mul) + // stack: X, Y, s, retdest + %dup_bn_g2 + // stack: X, Y, X, Y, s, retdest + %bn_check_twisted + // stack: isValid(X, Y), X, Y, s, retdest + %jumpi(bn_twisted_mul_valid_point) + // stack: X, Y, s, retdest + %pop5 + %bn_twisted_invalid_input + +bn_twisted_mul_valid_point: + // stack: X, Y, s, retdest + DUP5 + %num_bits + // stack: n, X, Y, s, retdest + %stack (n, X: 2, Y: 2, s, retdest) -> (X, Y, s, n, retdest) + %rep 4 + PUSH 0 // identity point + %endrep +bn_twisted_mul_loop: + // stack: X', Y', X, Y, s, n, retdest + DUP10 + ISZERO + %jumpi(bn_twisted_mul_end) + // stack: X1, Y1, X, Y, s, n, retdest + %bn_twisted_double + // stack: X2, Y2, X, Y, s, n, retdest + DUP9 + // stack: s, X2, Y2, X, Y, s, n, retdest + PUSH 1 DUP12 SUB + // stack: n - 1, s, X2, Y2, X, Y, s, n, retdest + SHR + // stack: s >> n - 1, X2, Y2, X, Y, s, n, retdest + PUSH 1 + AND + // stack: nth_bit, X2, Y2, X, Y, s, n, retdest + %jumpi(bn_twisted_mul_add_base) + // stack: X2, Y2, X, Y, s, n, retdest + SWAP9 + %decrement + SWAP9 + // stack: X2, Y2, X, Y, s, n-1, retdest + %jump(bn_twisted_mul_loop) + +bn_twisted_mul_add_base: + // stack: X2, Y2, X, Y, s, n, retdest + %dup_fp254_2_6 + // stack: Y, X2, Y2, X, Y, s, n, retdest + %dup_fp254_2_6 + // stack: X, Y, X2, Y2, X, Y, s, n, retdest + %bn_twisted_add + // stack: X3, Y3, X, Y, s, n, retdest + SWAP9 + %decrement + SWAP9 + // stack: X3, Y3, X, Y, s, n-1, retdest + %jump(bn_twisted_mul_loop) + +bn_twisted_mul_end: + %stack (AX: 2, AY: 2, X: 2, Y: 2, s, n, retdest) -> (retdest, AX, AY) + JUMP + +// Convenience macro to call bn_twisted_mul and return where we left off. +%macro bn_twisted_mul + %stack (X: 2, Y: 2, s) -> (X, Y, s, %%after) + %jump(bn_twisted_mul) +%%after: +%endmacro + +// Convenience macro to call bn_twisted_mul_by_z and return where we left off. +%macro bn_twisted_mul_by_z + %stack (X: 2, Y: 2) -> (X, Y, 0x44e992b44a6909f1, %%after) + %jump(bn_twisted_mul) +%%after: +%endmacro diff --git a/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/field_arithmetic/inverse.asm b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/field_arithmetic/inverse.asm index 7c7729057..1c07a15dc 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/field_arithmetic/inverse.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/field_arithmetic/inverse.asm @@ -24,6 +24,41 @@ %endmacro +// Returns reverse order division Y/X, modulo N, in Fp2. +%macro divr_fp254_2 + // stack: X, Y + %inv_fp254_2 + // stack: X^-1, Y + %mul_fp254_2 +%endmacro + +// The inverse of an element X in BN254 quadratic extension field +// is just X'/||X||^2 since ||X||^2 = XX', where X' = conj(X). +%macro inv_fp254_2 + // stack: X = (x, x_) + %dup_fp254_2_0 + // stack: x, x_, x, x_ + DUP1 + // stack: x, x, x_, x, x_ + MULFP254 + // stack: x^2, x_, x, x_ + SWAP1 + // stack: x_, x^2, x, x_ + DUP1 + // stack: x_, x_, x^2, x, x_ + MULFP254 + // stack: x_^2, x^2, x, x_ + ADDFP254 + // stack: ||X||^2, x, x_ + %inv_fp254 + // stack: inv, x, x_ + %scale_fp254_2 + // stack: X/||X||^2 + %conj_fp254_2 + // stack: Y = 1/X +%endmacro + + global inv_fp254_12: // stack: inp, out, retdest %prover_inv_fp254_12 diff --git a/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/field_arithmetic/util.asm b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/field_arithmetic/util.asm index 897404dbf..b77cace48 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/field_arithmetic/util.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/curve/bn254/field_arithmetic/util.asm @@ -111,6 +111,20 @@ // stack: z, z_ %endmacro +%macro sub_fp254_2 + // stack: x, x_, y, y_ + SWAP3 + // stack: y_, x_, y, x + SWAP1 + // stack: x_, y_, y, x + SUBFP254 + // stack: z_, y, x + SWAP2 + // stack: x, y, z_ + SUBFP254 + // stack: z, z_ +%endmacro + /// Given z = x + iy: Fp254_2, return complex conjugate z': Fp254_2 /// where input is represented z.re, z.im and output as z'.im, z'.re /// cost: 9; note this returns y, x for the output x + yi @@ -364,6 +378,108 @@ // stack: %endmacro +// cost: 2 +%macro dup_fp254_2_0 + // stack: f: 2 + DUP2 + DUP2 + // stack: f: 2, f: 2 +%endmacro + +// cost: 2 +%macro dup_fp254_2_2 + // stack: X: 2, f: 2 + DUP4 + DUP4 + // stack: f: 2, X: 2, f: 2 +%endmacro + +// cost: 2 +%macro dup_fp254_2_4 + // stack: X: 4, f: 2 + DUP6 + DUP6 + // stack: f: 2, X: 4, f: 2 +%endmacro + +// cost: 2 +%macro dup_fp254_2_6 + // stack: X: 6, f: 2 + DUP8 + DUP8 + // stack: f: 2, X: 6, f: 2 +%endmacro + +// cost: 2 +%macro dup_fp254_2_7 + // stack: X: 7, f: 2 + DUP9 + DUP9 + // stack: f: 2, X: 7, f: 2 +%endmacro + +// cost: 2 +%macro dup_fp254_2_8 + // stack: X: 8, f: 2 + DUP10 + DUP10 + // stack: f: 2, X: 8, f: 2 +%endmacro + +// cost: 2 +%macro dup_fp254_2_10 + // stack: X: 10, f: 2 + DUP12 + DUP12 + // stack: f: 2, X: 10, f: 2 +%endmacro + +// cost: 2 +%macro dup_fp254_2_12 + // stack: X: 12, f: 2 + DUP14 + DUP14 + // stack: f: 2, X: 12, f: 2 +%endmacro + +// cost: 4 +%macro dup_bn_g2 + // stack: X: 2, Y: 2 + %dup_fp254_2_2 + %dup_fp254_2_2 + // stack: X: 2, Y: 2, X: 2, Y: 2 +%endmacro + +%macro swap_bn_g2 + // stack: P: 4, Q: 4 + %stack (P: 4, Q: 4) -> (Q, P) + // stack: Q: 4, P: 4 +%endmacro + +%macro swap_bn_g2_2 + // stack: P: 4, T: 4, Q: 4 + %stack (P: 4, T: 4, Q: 4) -> (Q, T, P) + // stack: Q: 4, T: 4, P: 4 +%endmacro + +%macro swap_fp254_2 + // stack: X: 2, Y: 2 + %stack (x, x_, y, y_) -> (y, y_, x, x_) + // stack: Y: 2, X: 2 +%endmacro + +%macro swap_fp254_2_2 + // stack: X: 2, T: 2, Y: 2 + %stack (x, x_, t, t_, y, y_) -> (y, y_, t, t_, x, x_) + // stack: Y: 2, T: 2, X: 2 +%endmacro + +%macro swap_fp254_2_4 + // stack: X: 2, T: 4, Y: 2 + %stack (x, x_, t0, t1, t2, t3, y, y_) -> (y, y_, t0, t1, t2, t3, x, x_) + // stack: Y: 2, T: 4, X: 2 +%endmacro + // cost: 6 %macro dup_fp254_6_0 // stack: f: 6 @@ -374,7 +490,7 @@ DUP6 DUP6 // stack: f: 6, f: 6 -%endmacro +%endmacro // cost: 6 %macro dup_fp254_6_2 @@ -386,7 +502,7 @@ DUP8 DUP8 // stack: f: 6, X: 2, f: 6 -%endmacro +%endmacro // cost: 6 %macro dup_fp254_6_6 diff --git a/evm_arithmetization/src/cpu/kernel/asm/curve/common.asm b/evm_arithmetization/src/cpu/kernel/asm/curve/common.asm index 50f174fac..2899a652a 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/curve/common.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/curve/common.asm @@ -10,10 +10,19 @@ global ret_zero_ec_mul: // stack: retdest, 0, 0 JUMP +global ret_zero_ec_twisted_mul: + // stack: X: 2, Y: 2, s, retdest + %stack (garbage: 5, retdest) -> (retdest, 0, 0, 0, 0) + JUMP + global ec_double_retself: %stack (x, y, retdest) -> (retdest, x, y) JUMP +global ec_twisted_double_retself: + %stack (X: 2, Y: 2, retdest) -> (retdest, X, Y) + JUMP + // Check if (x,y)==(0,0) %macro ec_isidentity // stack: x, y diff --git a/evm_arithmetization/src/cpu/kernel/asm/curve/secp256k1/ecrecover.asm b/evm_arithmetization/src/cpu/kernel/asm/curve/secp256k1/ecrecover.asm index c11031004..63faacdeb 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/curve/secp256k1/ecrecover.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/curve/secp256k1/ecrecover.asm @@ -175,6 +175,10 @@ pubkey_to_addr: PUSH @SECP_SCALAR %endmacro +%macro secp_scalar_half + PUSH @SECP_SCALAR_HALF +%endmacro + // Return u256::MAX which is used to indicate the input was invalid. %macro ecrecover_invalid_input // stack: retdest diff --git a/evm_arithmetization/src/cpu/kernel/asm/memory/core.asm b/evm_arithmetization/src/cpu/kernel/asm/memory/core.asm index 070e474f6..9e18bc3e3 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/memory/core.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/memory/core.asm @@ -444,31 +444,3 @@ // stack: offset, value %mstore_kernel_u32(@SEGMENT_KERNEL_GENERAL) %endmacro - -// Load a single value from kernel general 2 memory. -%macro mload_kernel_general_2 - // stack: offset - %mload_kernel(@SEGMENT_KERNEL_GENERAL_2) - // stack: value -%endmacro - -// Load a single value from kernel general memory. -%macro mload_kernel_general_2(offset) - PUSH $offset - %mload_kernel(@SEGMENT_KERNEL_GENERAL_2) - // stack: value -%endmacro - -%macro mstore_kernel_general_2 - // stack: offset, value - %mstore_kernel(@SEGMENT_KERNEL_GENERAL_2) - // stack: (empty) -%endmacro - -%macro mstore_kernel_general_2(offset) - // stack: value - PUSH $offset - // stack: offset, value - %mstore_kernel_general_2 - // stack: (empty) -%endmacro diff --git a/evm_arithmetization/src/cpu/kernel/asm/memory/memset.asm b/evm_arithmetization/src/cpu/kernel/asm/memory/memset.asm index 792aeabc6..2cd50e85a 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/memory/memset.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/memory/memset.asm @@ -32,13 +32,12 @@ memset_finish: %jumpi(memset_bytes_empty) // stack: DST, final_count, retdest - DUP2 PUSH 0 - DUP3 - // stack: DST, 0, final_count, DST, final_count, retdest + SWAP1 + // stack: DST, 0, final_count, retdest %mstore_unpacking - // stack: DST, final_count, retdest - %pop3 + // stack: DST', retdest + POP // stack: retdest JUMP diff --git a/evm_arithmetization/src/cpu/kernel/asm/mpt/read.asm b/evm_arithmetization/src/cpu/kernel/asm/mpt/read.asm index 4a57dd4db..eaad20641 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/mpt/read.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/mpt/read.asm @@ -106,7 +106,7 @@ global mpt_read_extension_not_found: // Not found; return 0. %stack (key_part, future_nibbles, key, node_payload_ptr, retdest) -> (retdest, 0) JUMP -mpt_read_extension_found: +global mpt_read_extension_found: // stack: key_part, future_nibbles, key, node_payload_ptr, retdest DUP2 %mul_const(4) SHL // key_part_shifted = (key_part << (future_nibbles * 4)) // stack: key_part_shifted, future_nibbles, key, node_payload_ptr, retdest @@ -142,7 +142,7 @@ global mpt_read_leaf_not_found: // Not found; return 0. %stack (node_payload_ptr, retdest) -> (retdest, 0) JUMP -mpt_read_leaf_found: +global mpt_read_leaf_found: // stack: node_payload_ptr, retdest %add_const(2) // The value pointer is located after num_nibbles and the key. // stack: value_ptr_ptr, retdest diff --git a/evm_arithmetization/src/cpu/kernel/asm/rlp/num_bytes.asm b/evm_arithmetization/src/cpu/kernel/asm/rlp/num_bytes.asm index de0a7ca96..b1f441fe3 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/rlp/num_bytes.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/rlp/num_bytes.asm @@ -3,13 +3,9 @@ global num_bytes: // stack: x, retdest DUP1 ISZERO %jumpi(return_1) - // Non-deterministically guess the number of bits - PROVER_INPUT(num_bits) - %stack(num_bits, x) -> (num_bits, 1, x, num_bits) - SUB - SHR - // stack: 1, num_bits - %assert_eq_const(1) + // stack: x, retdest + %num_bits + // stack: num_bits, retdest // convert number of bits to number of bytes %add_const(7) %shr_const(3) @@ -28,3 +24,15 @@ return_1: %jump(num_bytes) %%after: %endmacro + +%macro num_bits + // Non-deterministically guess the number of bits + // stack: x + PROVER_INPUT(num_bits) + %stack (num_bits, x) -> (num_bits, x, num_bits) + %decrement + SHR + // stack: 1, num_bits + %assert_eq_const(1) + // stack: num_bits +%endmacro diff --git a/evm_arithmetization/src/cpu/kernel/asm/transactions/common_decoding.asm b/evm_arithmetization/src/cpu/kernel/asm/transactions/common_decoding.asm index 223e0a62e..d89293998 100644 --- a/evm_arithmetization/src/cpu/kernel/asm/transactions/common_decoding.asm +++ b/evm_arithmetization/src/cpu/kernel/asm/transactions/common_decoding.asm @@ -153,6 +153,14 @@ // stack: rlp_addr %decode_rlp_scalar %stack (rlp_addr, s) -> (s, rlp_addr) + + // EIP-2: Check that s is within valid range. + DUP1 + %secp_scalar_half + // stack: ceil(N/2), s, s, rlp_addr + %assert_gt + + // stack: s, rlp_addr %mstore_txn_field(@TXN_FIELD_S) // stack: rlp_addr %endmacro diff --git a/evm_arithmetization/src/cpu/kernel/constants/mod.rs b/evm_arithmetization/src/cpu/kernel/constants/mod.rs index 834bfc7f1..610b28dc9 100644 --- a/evm_arithmetization/src/cpu/kernel/constants/mod.rs +++ b/evm_arithmetization/src/cpu/kernel/constants/mod.rs @@ -100,7 +100,7 @@ const MISC_CONSTANTS: [(&str, [u8; 32]); 5] = [ // *Note*: Changing this will break some tests. ( "ENCODED_EMPTY_NODE_ADDR", - hex!("0000000000000000000000000000000000000000000000000000000c00000000"), + hex!("0000000000000000000000000000000000000000000000000000000b00000000"), ), // 0x10000 = 2^16 bytes, much larger than any RLP blob the EVM could possibly create. ( @@ -112,14 +112,14 @@ const MISC_CONSTANTS: [(&str, [u8; 32]); 5] = [ // *Note*: Changing this will break some tests. ( "INITIAL_TXN_RLP_ADDR", - hex!("0000000000000000000000000000000000000000000000000000000c00000001"), + hex!("0000000000000000000000000000000000000000000000000000000b00000001"), ), // Address where the final registers start. It is the offset 6 within the // SEGMENT_REGISTERS_STATES. // *Note*: Changing this will break some tests. ( "FINAL_REGISTERS_ADDR", - hex!("0000000000000000000000000000000000000000000000000000002200000006"), + hex!("0000000000000000000000000000000000000000000000000000002100000006"), ), ]; @@ -136,7 +136,7 @@ const HASH_CONSTANTS: [(&str, [u8; 32]); 2] = [ ), ]; -const EC_CONSTANTS: [(&str, [u8; 32]); 20] = [ +const EC_CONSTANTS: [(&str, [u8; 32]); 25] = [ ( "U256_MAX", hex!("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), @@ -153,6 +153,22 @@ const EC_CONSTANTS: [(&str, [u8; 32]); 20] = [ "BN_TWISTED_IM", hex!("009713b03af0fed4cd2cafadeed8fdf4a74fa084e52d1852e4a2bd0685c315d2"), ), + ( + "BN_ENDO_X_COORD_RE", + hex!("2fb347984f7911f74c0bec3cf559b143b78cc310c2c3330c99e39557176f553d"), + ), + ( + "BN_ENDO_X_COORD_IM", + hex!("16c9e55061ebae204ba4cc8bd75a079432ae2a1d0b7c9dce1665d51c640fcba2"), + ), + ( + "BN_ENDO_Y_COORD_RE", + hex!("063cf305489af5dcdc5ec698b6e2f9b9dbaae0eda9c95998dc54014671a0135a"), + ), + ( + "BN_ENDO_Y_COORD_IM", + hex!("07c03cbcac41049a0704b5a7ec796f2b21807dc98fa25bd282d37f632623b0e3"), + ), ( "BN_SCALAR", hex!("30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001"), @@ -195,6 +211,11 @@ const EC_CONSTANTS: [(&str, [u8; 32]); 20] = [ "SECP_SCALAR", hex!("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"), ), + ( + "SECP_SCALAR_HALF", + // Corresponds to `ceil(SECP_SCALAR / 2)`. + hex!("7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a1"), + ), ( "SECP_GLV_BETA", hex!("7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"), diff --git a/evm_arithmetization/src/cpu/kernel/tests/bn254.rs b/evm_arithmetization/src/cpu/kernel/tests/bn254.rs index f6fe90553..ec0b30326 100644 --- a/evm_arithmetization/src/cpu/kernel/tests/bn254.rs +++ b/evm_arithmetization/src/cpu/kernel/tests/bn254.rs @@ -1,15 +1,18 @@ use anyhow::Result; +use env_logger::{try_init_from_env, Env, DEFAULT_FILTER_ENV}; use ethereum_types::U256; +use hex_literal::hex; use plonky2::field::goldilocks_field::GoldilocksField as F; use rand::Rng; use super::{run_interpreter_with_memory, InterpreterMemoryInitialization}; -use crate::cpu::kernel::interpreter::Interpreter; +use crate::cpu::kernel::aggregator::KERNEL; +use crate::cpu::kernel::interpreter::{self, Interpreter}; use crate::curve_pairings::{ bn_final_exponent, bn_miller_loop, gen_bn_fp12_sparse, Curve, CyclicGroup, }; use crate::extension_tower::{FieldExt, Fp12, Fp2, Fp6, Stack, BN254}; -use crate::memory::segments::Segment::BnPairing; +use crate::memory::segments::Segment::{self, BnPairing}; fn run_bn_mul_fp6(f: Fp6, g: Fp6, label: &str) -> Fp6 { let mut stack = f.to_stack(); @@ -250,3 +253,94 @@ fn test_bn_pairing() -> Result<()> { assert_eq!(interpreter.stack()[0], U256::one()); Ok(()) } + +fn run_bn_g2_op(p: Curve>, q: Curve>, label: &str) -> Curve> { + let mut stack = p.to_stack(); + if label == "bn_twisted_add" { + stack.extend(&q.to_stack()); + } + stack.push(U256::from(0xdeadbeefu32)); + let setup = InterpreterMemoryInitialization { + label: label.to_string(), + stack, + segment: BnPairing, + memory: vec![], + }; + let interpreter = run_interpreter_with_memory::(setup).unwrap(); + let output: Vec = interpreter.stack().iter().rev().cloned().collect(); + Curve::>::from_stack(&output) +} + +#[test] +fn test_bn_g2_ops() -> Result<()> { + let mut rng = rand::thread_rng(); + let p: Curve> = rng.gen::>>(); + let q: Curve> = rng.gen::>>(); + + let output_add: Curve> = run_bn_g2_op(p, q, "bn_twisted_add"); + let output_double: Curve> = run_bn_g2_op(p, p, "bn_twisted_double"); + + assert_eq!(output_add, p + q); + assert_eq!(output_double, p + p); + + let unit = Curve::>::unit(); + let output_add_unit: Curve> = run_bn_g2_op(unit, unit, "bn_twisted_add"); + let output_double_unit: Curve> = run_bn_g2_op(unit, unit, "bn_twisted_double"); + + assert_eq!(unit, output_add_unit); + assert_eq!(unit, output_double_unit); + + let output_add_with_unit_left: Curve> = run_bn_g2_op(unit, p, "bn_twisted_add"); + let output_add_with_unit_right: Curve> = run_bn_g2_op(p, unit, "bn_twisted_add"); + + assert_eq!(p, output_add_with_unit_left); + assert_eq!(p, output_add_with_unit_right); + + Ok(()) +} + +/// Test cases taken from . +const ECPAIRING_PRECOMPILE_INVALID_INPUTS: [[u8; 192]; 4] = [ + // invalid_g1_point + hex!("30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000010000000000000000000000000000000000000000000000000000000000000000198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa"), + // invalid_g2_point + hex!("000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000ffffffffffffffffffff"), + // invalid_g2_subgroup + hex!("000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4500000000000000000000000000000000000000000000000000000000000000020833e47a2eaa8bbe12d33b2da1a4fa8d763f5c567fe0da6c5c9da2e246f2096f28dc125bf7443bc1826c69fe4c7bf30c26ec60882350e784c4848c822726eb43"), + // invalid_g2_subgroup + hex!("111f95e1632a3624dd29bbc012e6462b7836eb9c80e281b9381e103aebe632372b38b76d492b3af692eb99d03cd8dcfd8a8c3a6e4a161037c42f542af5564c41198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c21a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a8305b993046905746641a19b500ebbbd30cf0068a845bfbee9de55b8fe57d1dee8243ef33537f73ef4ace4279d86344d93a5dc8c20c69045865c0fa3b924933879"), +]; + +#[test] +fn test_ecpairing_precompile_invalid_input() -> Result<()> { + init_logger(); + + let pairing_label = KERNEL.global_labels["bn254_pairing"]; + let mut stack = vec![1.into(), 0.into(), 100.into(), U256::from(0xdeadbeefu32)]; // k, inp, out, retdest + stack.reverse(); + + for bytes in ECPAIRING_PRECOMPILE_INVALID_INPUTS.iter() { + let mut interpreter: Interpreter = Interpreter::new(pairing_label, stack.clone(), None); + let preloaded_memory = vec![ + U256::from_big_endian(&bytes[0..32]), // Px + U256::from_big_endian(&bytes[32..64]), // Py + U256::from_big_endian(&bytes[64..96]), // Qx_re + U256::from_big_endian(&bytes[96..128]), // Qx_im + U256::from_big_endian(&bytes[128..160]), // Qy_re + U256::from_big_endian(&bytes[160..192]), // Qy_im + ]; + interpreter.set_memory_segment(Segment::BnPairing, preloaded_memory); + interpreter.run().unwrap(); + + let mut post_stack = interpreter.stack(); + assert!(post_stack.len() == 1); + + assert_eq!(post_stack[0], U256::MAX); // invalid inputs + } + + Ok(()) +} + +fn init_logger() { + let _ = try_init_from_env(Env::default().filter_or(DEFAULT_FILTER_ENV, "debug")); +} diff --git a/evm_arithmetization/src/cpu/kernel/tests/transaction_parsing/parse_type_0_txn.rs b/evm_arithmetization/src/cpu/kernel/tests/transaction_parsing/parse_type_0_txn.rs index 107a5b971..ca236b269 100644 --- a/evm_arithmetization/src/cpu/kernel/tests/transaction_parsing/parse_type_0_txn.rs +++ b/evm_arithmetization/src/cpu/kernel/tests/transaction_parsing/parse_type_0_txn.rs @@ -68,3 +68,22 @@ fn process_type_0_txn() -> Result<()> { Ok(()) } + +#[test] +fn process_type_0_txn_invalid_sig() -> Result<()> { + let process_type_0_txn = KERNEL.global_labels["process_type_0_txn"]; + let process_normalized_txn = KERNEL.global_labels["process_normalized_txn"]; + + let retaddr = 0xDEADBEEFu32.into(); + let mut interpreter: Interpreter = Interpreter::new(process_type_0_txn, vec![retaddr], None); + + // Same transaction as `process_type_0_txn()`, with the exception that the `s` + // component in the signature is flipped (i.e. `s' = N - s`, where `N` is the + // order of the SECP256k1 prime subgroup). + interpreter.extend_memory_segment_bytes(Segment::RlpRaw, hex!("f861050a8255f0940000000000000000000000000000000000000000648242421ca07c5c61ed975ebd286f6b027b8c504842e50a47d318e1e801719dd744fe93e6c6a0e184aee64a822ab1e8a00d0faa36e0c408f99e2ca41c87ec8b557e9be8f0949f").to_vec()); + + let result = interpreter.run(); + assert!(result.is_err()); + + Ok(()) +} diff --git a/evm_arithmetization/src/extension_tower.rs b/evm_arithmetization/src/extension_tower.rs index 3f51235f9..ea178f305 100644 --- a/evm_arithmetization/src/extension_tower.rs +++ b/evm_arithmetization/src/extension_tower.rs @@ -341,7 +341,7 @@ impl Fp2 { /// z -> z^p /// since p == 3 mod 4 and hence /// i^p = i^(4k) * i^3 = 1*(-i) = -i - fn conj(self) -> Self { + pub(crate) fn conj(self) -> Self { Fp2 { re: self.re, im: -self.im, diff --git a/evm_arithmetization/src/fixed_recursive_verifier.rs b/evm_arithmetization/src/fixed_recursive_verifier.rs index 59035b909..9d39646dd 100644 --- a/evm_arithmetization/src/fixed_recursive_verifier.rs +++ b/evm_arithmetization/src/fixed_recursive_verifier.rs @@ -1563,6 +1563,7 @@ where timing: &mut TimingTree, abort_signal: Option>, ) -> anyhow::Result>> { + println!("Entering prove all segments"); let mut it_segment_data = SegmentDataIterator { inputs: &generation_inputs, partial_next_data: None, diff --git a/evm_arithmetization/src/generation/prover_input.rs b/evm_arithmetization/src/generation/prover_input.rs index b2bd49d75..0641b8bde 100644 --- a/evm_arithmetization/src/generation/prover_input.rs +++ b/evm_arithmetization/src/generation/prover_input.rs @@ -320,7 +320,7 @@ impl GenerationState { /// Returns a non-jumpdest proof for the address on the top of the stack. A /// non-jumpdest proof is the closest address to the address on the top of - /// the stack, if the closses address is >= 32, or zero otherwise. + /// the stack, if the closest address is >= 32, or zero otherwise. fn run_next_non_jumpdest_proof(&mut self) -> Result { let code = self.get_current_code()?; let address = u256_to_usize(stack_peek(self, 0)?)?; @@ -471,7 +471,7 @@ impl GenerationState { pub(crate) fn get_addresses_access_list(&self) -> Result { // `GlobalMetadata::AccessedAddressesLen` stores the value of the next available // virtual address in the segment. In order to get the length we need - // to substract `Segment::AccessedAddresses` as usize. + // to subtract `Segment::AccessedAddresses` as usize. let acc_addr_len = u256_to_usize(self.get_global_metadata(GlobalMetadata::AccessedAddressesLen))? - Segment::AccessedAddresses as usize; @@ -493,7 +493,7 @@ impl GenerationState { pub(crate) fn get_storage_keys_access_list(&self) -> Result { // GlobalMetadata::AccessedStorageKeysLen stores the value of the next available // virtual address in the segment. In order to get the length we need - // to substract Segment::AccessedStorageKeys as usize + // to subtract Segment::AccessedStorageKeys as usize let acc_storage_len = u256_to_usize( self.memory.get_with_init(MemoryAddress::new( 0, diff --git a/evm_arithmetization/src/keccak_sponge/columns.rs b/evm_arithmetization/src/keccak_sponge/columns.rs index 44c707bf2..ce35c0867 100644 --- a/evm_arithmetization/src/keccak_sponge/columns.rs +++ b/evm_arithmetization/src/keccak_sponge/columns.rs @@ -2,7 +2,9 @@ use core::borrow::{Borrow, BorrowMut}; use core::mem::{size_of, transmute}; use core::ops::Range; -use crate::util::{indices_arr, transmute_no_compile_time_size_checks}; +use zk_evm_proc_macro::Columns; + +use crate::util::indices_arr; /// Total number of sponge bytes: number of rate bytes + number of capacity /// bytes. @@ -27,7 +29,7 @@ pub(crate) const KECCAK_DIGEST_U32S: usize = KECCAK_DIGEST_BYTES / 4; /// A view of `KeccakSpongeStark`'s columns. #[repr(C)] -#[derive(Eq, PartialEq, Debug)] +#[derive(Columns, Eq, PartialEq, Debug)] pub(crate) struct KeccakSpongeColumnsView { /// 1 if this row represents a full input block, i.e. one in which each byte /// is an input byte, not a padding byte; 0 otherwise. @@ -113,48 +115,6 @@ pub(crate) const fn get_single_block_bytes_value(i: usize) -> usize { get_block_bytes_range().start + i } -impl From<[T; NUM_KECCAK_SPONGE_COLUMNS]> for KeccakSpongeColumnsView { - fn from(value: [T; NUM_KECCAK_SPONGE_COLUMNS]) -> Self { - unsafe { transmute_no_compile_time_size_checks(value) } - } -} - -impl From> for [T; NUM_KECCAK_SPONGE_COLUMNS] { - fn from(value: KeccakSpongeColumnsView) -> Self { - unsafe { transmute_no_compile_time_size_checks(value) } - } -} - -impl Borrow> for [T; NUM_KECCAK_SPONGE_COLUMNS] { - fn borrow(&self) -> &KeccakSpongeColumnsView { - unsafe { transmute(self) } - } -} - -impl BorrowMut> for [T; NUM_KECCAK_SPONGE_COLUMNS] { - fn borrow_mut(&mut self) -> &mut KeccakSpongeColumnsView { - unsafe { transmute(self) } - } -} - -impl Borrow<[T; NUM_KECCAK_SPONGE_COLUMNS]> for KeccakSpongeColumnsView { - fn borrow(&self) -> &[T; NUM_KECCAK_SPONGE_COLUMNS] { - unsafe { transmute(self) } - } -} - -impl BorrowMut<[T; NUM_KECCAK_SPONGE_COLUMNS]> for KeccakSpongeColumnsView { - fn borrow_mut(&mut self) -> &mut [T; NUM_KECCAK_SPONGE_COLUMNS] { - unsafe { transmute(self) } - } -} - -impl Default for KeccakSpongeColumnsView { - fn default() -> Self { - [T::default(); NUM_KECCAK_SPONGE_COLUMNS].into() - } -} - const fn make_col_map() -> KeccakSpongeColumnsView { let indices_arr = indices_arr::(); unsafe { diff --git a/evm_arithmetization/src/lib.rs b/evm_arithmetization/src/lib.rs index 5b2a81c4e..0f323b5d8 100644 --- a/evm_arithmetization/src/lib.rs +++ b/evm_arithmetization/src/lib.rs @@ -212,15 +212,8 @@ pub mod curve_pairings; pub mod extension_tower; pub mod util; -// Set up Jemalloc -#[cfg(not(target_env = "msvc"))] -use jemallocator::Jemalloc; use mpt_trie::partial_trie::HashedPartialTrie; -#[cfg(not(target_env = "msvc"))] -#[global_allocator] -static GLOBAL: Jemalloc = Jemalloc; - // Public definitions and re-exports pub type Node = mpt_trie::partial_trie::Node; diff --git a/evm_arithmetization/src/logic.rs b/evm_arithmetization/src/logic.rs index be389450c..eae7c972b 100644 --- a/evm_arithmetization/src/logic.rs +++ b/evm_arithmetization/src/logic.rs @@ -1,3 +1,4 @@ +use core::borrow::Borrow; use core::marker::PhantomData; use ethereum_types::U256; @@ -17,7 +18,7 @@ use starky::stark::Stark; use starky::util::trace_rows_to_poly_values; use crate::all_stark::EvmStarkFrame; -use crate::logic::columns::NUM_COLUMNS; +use crate::logic::columns::{LogicColumnsView, LOGIC_COL_MAP, NUM_COLUMNS}; use crate::util::{limb_from_bits_le, limb_from_bits_le_recursive}; /// Total number of bits per input/output. @@ -31,37 +32,50 @@ const PACKED_LEN: usize = VAL_BITS.div_ceil(PACKED_LIMB_BITS); /// `LogicStark` columns. pub(crate) mod columns { - use core::cmp::min; - use core::ops::Range; - - use super::{PACKED_LEN, PACKED_LIMB_BITS, VAL_BITS}; - - /// 1 if this is an AND operation, 0 otherwise. - pub(crate) const IS_AND: usize = 0; - /// 1 if this is an OR operation, 0 otherwise. - pub(crate) const IS_OR: usize = IS_AND + 1; - /// 1 if this is a XOR operation, 0 otherwise. - pub(crate) const IS_XOR: usize = IS_OR + 1; - /// First input, decomposed into bits. - pub(crate) const INPUT0: Range = (IS_XOR + 1)..(IS_XOR + 1) + VAL_BITS; - /// Second input, decomposed into bits. - pub(crate) const INPUT1: Range = INPUT0.end..INPUT0.end + VAL_BITS; - /// The result is packed in limbs of `PACKED_LIMB_BITS` bits. - pub(crate) const RESULT: Range = INPUT1.end..INPUT1.end + PACKED_LEN; - - /// Returns the column range for each 32 bit chunk in the input. - pub(crate) fn limb_bit_cols_for_input( - input_bits: Range, - ) -> impl Iterator> { - (0..PACKED_LEN).map(move |i| { - let start = input_bits.start + i * PACKED_LIMB_BITS; - let end = min(start + PACKED_LIMB_BITS, input_bits.end); - start..end - }) + use core::mem::transmute; + + use zk_evm_proc_macro::{Columns, DerefColumns}; + + use super::{PACKED_LEN, VAL_BITS}; + use crate::util::indices_arr; + + /// Flag columns for the operation to perform. + #[repr(C)] + #[derive(DerefColumns, Clone, Copy, Debug, Eq, PartialEq)] + pub(crate) struct OpsColumnsView { + /// 1 if this is an AND operation, 0 otherwise. + pub is_and: T, + /// 1 if this is an OR operation, 0 otherwise. + pub is_or: T, + /// 1 if this is a XOR operation, 0 otherwise. + pub is_xor: T, } - /// Number of columns in `LogicStark`. - pub(crate) const NUM_COLUMNS: usize = RESULT.end; + /// Columns for the `LogicStark`. + #[repr(C)] + #[derive(Columns, Clone, Copy, Debug, Eq, PartialEq)] + pub(crate) struct LogicColumnsView { + /// The operation to perform. + pub op: OpsColumnsView, + /// First input, decomposed into bits. + pub input0: [T; VAL_BITS], + /// Second input, decomposed into bits. + pub input1: [T; VAL_BITS], + /// The result is packed in limbs of `PACKED_LIMB_BITS` bits. + pub result: [T; PACKED_LEN], + } + + /// Total number of columns in `LogicStark`. + /// `u8` is guaranteed to have a `size_of` of 1. + pub(crate) const NUM_COLUMNS: usize = core::mem::size_of::>(); + + /// Mapping between [0..NUM_COLUMNS-1] and the logic columns. + pub(crate) const LOGIC_COL_MAP: LogicColumnsView = make_col_map(); + + const fn make_col_map() -> LogicColumnsView { + let indices_arr = indices_arr::(); + unsafe { transmute::<[usize; NUM_COLUMNS], LogicColumnsView>(indices_arr) } + } } /// Creates the vector of `Columns` corresponding to the opcode, the two inputs @@ -72,23 +86,29 @@ pub(crate) fn ctl_data() -> Vec> { // will enforce that the reconstructed opcode value from the // opcode bits matches. let mut res = vec![Column::linear_combination([ - (columns::IS_AND, F::from_canonical_u8(0x16)), - (columns::IS_OR, F::from_canonical_u8(0x17)), - (columns::IS_XOR, F::from_canonical_u8(0x18)), + (LOGIC_COL_MAP.op.is_and, F::from_canonical_u8(0x16)), + (LOGIC_COL_MAP.op.is_or, F::from_canonical_u8(0x17)), + (LOGIC_COL_MAP.op.is_xor, F::from_canonical_u8(0x18)), ])]; - res.extend(columns::limb_bit_cols_for_input(columns::INPUT0).map(Column::le_bits)); - res.extend(columns::limb_bit_cols_for_input(columns::INPUT1).map(Column::le_bits)); - res.extend(columns::RESULT.map(Column::single)); + res.extend( + LOGIC_COL_MAP + .input0 + .chunks(PACKED_LIMB_BITS) + .map(Column::le_bits), + ); + res.extend( + LOGIC_COL_MAP + .input1 + .chunks(PACKED_LIMB_BITS) + .map(Column::le_bits), + ); + res.extend(LOGIC_COL_MAP.result.map(Column::single)); res } /// CTL filter for logic operations. pub(crate) fn ctl_filter() -> Filter { - Filter::new_simple(Column::sum([ - columns::IS_AND, - columns::IS_OR, - columns::IS_XOR, - ])) + Filter::new_simple(Column::sum(*LOGIC_COL_MAP.op)) } /// Structure representing the Logic STARK, which computes all logic operations. @@ -150,18 +170,18 @@ impl Operation { } = self; let mut row = [F::ZERO; NUM_COLUMNS]; row[match operator { - Op::And => columns::IS_AND, - Op::Or => columns::IS_OR, - Op::Xor => columns::IS_XOR, + Op::And => LOGIC_COL_MAP.op.is_and, + Op::Or => LOGIC_COL_MAP.op.is_or, + Op::Xor => LOGIC_COL_MAP.op.is_xor, }] = F::ONE; for i in 0..256 { - row[columns::INPUT0.start + i] = F::from_bool(input0.bit(i)); - row[columns::INPUT1.start + i] = F::from_bool(input1.bit(i)); + row[LOGIC_COL_MAP.input0[i]] = F::from_bool(input0.bit(i)); + row[LOGIC_COL_MAP.input1[i]] = F::from_bool(input1.bit(i)); } let result_limbs: &[u64] = result.as_ref(); for (i, &limb) in result_limbs.iter().enumerate() { - row[columns::RESULT.start + 2 * i] = F::from_canonical_u32(limb as u32); - row[columns::RESULT.start + 2 * i + 1] = F::from_canonical_u32((limb >> 32) as u32); + row[LOGIC_COL_MAP.result[2 * i]] = F::from_canonical_u32(limb as u32); + row[LOGIC_COL_MAP.result[2 * i + 1]] = F::from_canonical_u32((limb >> 32) as u32); } row } @@ -232,11 +252,12 @@ impl, const D: usize> Stark for LogicStark, P: PackedField, { - let lv = vars.get_local_values(); + let lv: &[P; NUM_COLUMNS] = vars.get_local_values().try_into().unwrap(); + let lv: &LogicColumnsView

= lv.borrow(); - let is_and = lv[columns::IS_AND]; - let is_or = lv[columns::IS_OR]; - let is_xor = lv[columns::IS_XOR]; + let is_and = lv.op.is_and; + let is_or = lv.op.is_or; + let is_xor = lv.op.is_xor; // Flags must be boolean. for &flag in &[is_and, is_or, is_xor] { @@ -255,31 +276,27 @@ impl, const D: usize> Stark for LogicStark, const D: usize> Stark for LogicStark, ) { - let lv = vars.get_local_values(); + let lv: &[ExtensionTarget; NUM_COLUMNS] = vars.get_local_values().try_into().unwrap(); + let lv: &LogicColumnsView> = lv.borrow(); - let is_and = lv[columns::IS_AND]; - let is_or = lv[columns::IS_OR]; - let is_xor = lv[columns::IS_XOR]; + let is_and = lv.op.is_and; + let is_or = lv.op.is_or; + let is_xor = lv.op.is_xor; // Flags must be boolean. for &flag in &[is_and, is_or, is_xor] { @@ -317,28 +335,25 @@ impl, const D: usize> Stark for LogicStark, const D: usize> Stark for LogicStark, const D: usize> Stark for LogicStark(stark) } + + #[test] + fn test_generate_eval_consistency() { + const D: usize = 2; + type C = PoseidonGoldilocksConfig; + type F = >::F; + type S = LogicStark; + + let mut rng = ChaCha8Rng::seed_from_u64(0x6feb51b7ec230f25); + const N_ITERS: usize = 1000; + + for _ in 0..N_ITERS { + for op in [Op::And, Op::Or, Op::Xor] { + // Generate a trace row from an operation on random values. + let operation = Operation::new(op, U256(rng.gen()), U256(rng.gen())); + let expected = operation.result; + let row = operation.into_row::(); + let lv = EvmStarkFrame::from_values(&row, &[F::ZERO; NUM_COLUMNS], &[]); + + let stark = S::default(); + let mut constraint_consumer = ConstraintConsumer::new( + vec![GoldilocksField(2), GoldilocksField(3), GoldilocksField(5)], + F::ONE, + F::ONE, + F::ONE, + ); + + // Evaluate constraints. + stark.eval_packed_generic(&lv, &mut constraint_consumer); + for acc in constraint_consumer.accumulators() { + assert_eq!(acc, F::ZERO); + } + + // Split each expected U256 limb into two. + let expected_limbs = expected.as_ref().iter().flat_map(|&limb| { + [ + F::from_canonical_u32(limb as u32), + F::from_canonical_u32((limb >> 32) as u32), + ] + }); + + // Check that the result limbs match the expected limbs. + assert!(expected_limbs + .zip_eq(&row[LOGIC_COL_MAP.result[0]..]) + .all(|(x, &y)| x == y)); + } + } + } } diff --git a/evm_arithmetization/src/memory/segments.rs b/evm_arithmetization/src/memory/segments.rs index ae6b96a24..f25a73c2f 100644 --- a/evm_arithmetization/src/memory/segments.rs +++ b/evm_arithmetization/src/memory/segments.rs @@ -29,59 +29,57 @@ pub(crate) enum Segment { /// In general, calling a helper function can result in this memory being /// clobbered. KernelGeneral = 7 << SEGMENT_SCALING_FACTOR, - /// Another segment for general purpose kernel use. - KernelGeneral2 = 8 << SEGMENT_SCALING_FACTOR, /// Segment to hold account code for opcodes like `CODESIZE, CODECOPY,...`. - KernelAccountCode = 9 << SEGMENT_SCALING_FACTOR, + KernelAccountCode = 8 << SEGMENT_SCALING_FACTOR, /// Contains normalized transaction fields; see `NormalizedTxnField`. - TxnFields = 10 << SEGMENT_SCALING_FACTOR, + TxnFields = 9 << SEGMENT_SCALING_FACTOR, /// Contains the data field of a transaction. - TxnData = 11 << SEGMENT_SCALING_FACTOR, + TxnData = 10 << SEGMENT_SCALING_FACTOR, /// A buffer used to hold raw RLP data. - RlpRaw = 12 << SEGMENT_SCALING_FACTOR, + RlpRaw = 11 << SEGMENT_SCALING_FACTOR, /// Contains all trie data. It is owned by the kernel, so it only lives on /// context 0. - TrieData = 13 << SEGMENT_SCALING_FACTOR, - ShiftTable = 14 << SEGMENT_SCALING_FACTOR, - JumpdestBits = 15 << SEGMENT_SCALING_FACTOR, - EcdsaTable = 16 << SEGMENT_SCALING_FACTOR, - BnWnafA = 17 << SEGMENT_SCALING_FACTOR, - BnWnafB = 18 << SEGMENT_SCALING_FACTOR, - BnTableQ = 19 << SEGMENT_SCALING_FACTOR, - BnPairing = 20 << SEGMENT_SCALING_FACTOR, + TrieData = 12 << SEGMENT_SCALING_FACTOR, + ShiftTable = 13 << SEGMENT_SCALING_FACTOR, + JumpdestBits = 14 << SEGMENT_SCALING_FACTOR, + EcdsaTable = 15 << SEGMENT_SCALING_FACTOR, + BnWnafA = 16 << SEGMENT_SCALING_FACTOR, + BnWnafB = 17 << SEGMENT_SCALING_FACTOR, + BnTableQ = 18 << SEGMENT_SCALING_FACTOR, + BnPairing = 19 << SEGMENT_SCALING_FACTOR, /// List of addresses that have been accessed in the current transaction. - AccessedAddresses = 21 << SEGMENT_SCALING_FACTOR, + AccessedAddresses = 20 << SEGMENT_SCALING_FACTOR, /// List of storage keys that have been accessed in the current transaction. - AccessedStorageKeys = 22 << SEGMENT_SCALING_FACTOR, + AccessedStorageKeys = 21 << SEGMENT_SCALING_FACTOR, /// List of addresses that have called SELFDESTRUCT in the current /// transaction. - SelfDestructList = 23 << SEGMENT_SCALING_FACTOR, + SelfDestructList = 22 << SEGMENT_SCALING_FACTOR, /// Contains the bloom filter of a transaction. - TxnBloom = 24 << SEGMENT_SCALING_FACTOR, + TxnBloom = 23 << SEGMENT_SCALING_FACTOR, /// Contains the bloom filter present in the block header. - GlobalBlockBloom = 25 << SEGMENT_SCALING_FACTOR, + GlobalBlockBloom = 24 << SEGMENT_SCALING_FACTOR, /// List of log pointers pointing to the LogsData segment. - Logs = 26 << SEGMENT_SCALING_FACTOR, - LogsData = 27 << SEGMENT_SCALING_FACTOR, + Logs = 25 << SEGMENT_SCALING_FACTOR, + LogsData = 26 << SEGMENT_SCALING_FACTOR, /// Journal of state changes. List of pointers to `JournalData`. Length in /// `GlobalMetadata`. - Journal = 28 << SEGMENT_SCALING_FACTOR, - JournalData = 29 << SEGMENT_SCALING_FACTOR, - JournalCheckpoints = 30 << SEGMENT_SCALING_FACTOR, + Journal = 27 << SEGMENT_SCALING_FACTOR, + JournalData = 28 << SEGMENT_SCALING_FACTOR, + JournalCheckpoints = 29 << SEGMENT_SCALING_FACTOR, /// List of addresses that have been touched in the current transaction. - TouchedAddresses = 31 << SEGMENT_SCALING_FACTOR, + TouchedAddresses = 30 << SEGMENT_SCALING_FACTOR, /// List of checkpoints for the current context. Length in /// `ContextMetadata`. - ContextCheckpoints = 32 << SEGMENT_SCALING_FACTOR, + ContextCheckpoints = 31 << SEGMENT_SCALING_FACTOR, /// List of 256 previous block hashes. - BlockHashes = 33 << SEGMENT_SCALING_FACTOR, + BlockHashes = 32 << SEGMENT_SCALING_FACTOR, /// Segment storing the registers before/after the current execution, /// as well as `exit_kernel` for the `registers_before`, in that order. - RegistersStates = 34 << SEGMENT_SCALING_FACTOR, + RegistersStates = 33 << SEGMENT_SCALING_FACTOR, } impl Segment { - pub(crate) const COUNT: usize = 35; + pub(crate) const COUNT: usize = 34; /// Unscales this segment by `SEGMENT_SCALING_FACTOR`. pub(crate) const fn unscale(&self) -> usize { @@ -98,7 +96,6 @@ impl Segment { Self::GlobalMetadata, Self::ContextMetadata, Self::KernelGeneral, - Self::KernelGeneral2, Self::KernelAccountCode, Self::TxnFields, Self::TxnData, @@ -139,7 +136,6 @@ impl Segment { Segment::GlobalMetadata => "SEGMENT_GLOBAL_METADATA", Segment::ContextMetadata => "SEGMENT_CONTEXT_METADATA", Segment::KernelGeneral => "SEGMENT_KERNEL_GENERAL", - Segment::KernelGeneral2 => "SEGMENT_KERNEL_GENERAL_2", Segment::KernelAccountCode => "SEGMENT_KERNEL_ACCOUNT_CODE", Segment::TxnFields => "SEGMENT_NORMALIZED_TXN", Segment::TxnData => "SEGMENT_TXN_DATA", @@ -179,7 +175,6 @@ impl Segment { Segment::GlobalMetadata => 256, Segment::ContextMetadata => 256, Segment::KernelGeneral => 256, - Segment::KernelGeneral2 => 256, Segment::KernelAccountCode => 8, Segment::TxnFields => 256, Segment::TxnData => 8, diff --git a/evm_arithmetization/src/proof.rs b/evm_arithmetization/src/proof.rs index f946b63cf..d43f1071d 100644 --- a/evm_arithmetization/src/proof.rs +++ b/evm_arithmetization/src/proof.rs @@ -739,7 +739,7 @@ impl PublicValuesTarget { } } - /// Returns the public values in `pv0` or `pv1` depening on `condition`. + /// Returns the public values in `pv0` or `pv1` depending on `condition`. pub(crate) fn select, const D: usize>( builder: &mut CircuitBuilder, condition: BoolTarget, diff --git a/evm_arithmetization/src/prover.rs b/evm_arithmetization/src/prover.rs index a660d88bf..6ab08896f 100644 --- a/evm_arithmetization/src/prover.rs +++ b/evm_arithmetization/src/prover.rs @@ -600,7 +600,7 @@ pub(crate) fn generate_next_segment( segment_data.registers_after = updated_registers; Some((segment_data, partial_segment_data)) } else { - None + panic!("Segment generation failed"); } } diff --git a/evm_arithmetization/src/util.rs b/evm_arithmetization/src/util.rs index 6a35ad3e9..d0c353d70 100644 --- a/evm_arithmetization/src/util.rs +++ b/evm_arithmetization/src/util.rs @@ -147,14 +147,6 @@ pub(crate) const fn indices_arr() -> [usize; N] { indices_arr } -pub(crate) unsafe fn transmute_no_compile_time_size_checks(value: T) -> U { - debug_assert_eq!(size_of::(), size_of::()); - // Need ManuallyDrop so that `value` is not dropped by this function. - let value = ManuallyDrop::new(value); - // Copy the bit pattern. The original value is no longer safe to use. - transmute_copy(&value) -} - pub(crate) fn addmod(x: U256, y: U256, m: U256) -> U256 { if m.is_zero() { return m; diff --git a/mpt_trie/Cargo.toml b/mpt_trie/Cargo.toml index b4ef7ded2..46a14df26 100644 --- a/mpt_trie/Cargo.toml +++ b/mpt_trie/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "mpt_trie" description = "Types and utility functions for building/working with partial Ethereum tries." -version = "0.2.1" +version = "0.3.0" authors = ["Polygon Zero "] readme = "README.md" edition.workspace = true @@ -19,29 +19,28 @@ enum-as-inner = { workspace = true } ethereum-types = { workspace = true } hex = { workspace = true } keccak-hash = { workspace = true } -parking_lot = { version = "0.12.1", features = ["serde"] } +parking_lot = { workspace = true, features = ["serde"] } thiserror = { workspace = true } log = { workspace = true } -num = { workspace = true, optional = true } -num-traits = "0.2.15" -uint = "0.9.5" +num-traits = { workspace = true } +uint = { workspace = true } rlp = { workspace = true } serde = { workspace = true, features = ["derive", "rc"] } -impl-rlp = "0.3.0" -impl-codec = "0.6.0" -impl-serde = "0.4.0" -impl-num-traits = "0.1.2" +impl-rlp = { workspace = true } +impl-codec = { workspace = true } +impl-serde = { workspace = true } +impl-num-traits = { workspace = true } [dev-dependencies] -eth_trie = "0.4.0" -pretty_env_logger = "0.5.0" +eth_trie = { workspace = true } +pretty_env_logger = { workspace = true } rand = { workspace = true } rlp-derive = { workspace = true } serde_json = { workspace = true } [features] default = ["trie_debug"] -trie_debug = ["num"] +trie_debug = [] [lib] doc-scrape-examples = true diff --git a/mpt_trie/src/builder.rs b/mpt_trie/src/builder.rs new file mode 100644 index 000000000..1e0e06bd3 --- /dev/null +++ b/mpt_trie/src/builder.rs @@ -0,0 +1,182 @@ +//! A builder for constructing a partial trie from a collection of proofs. + +use std::collections::HashMap; +use std::sync::Arc; + +use ethereum_types::H256; +use keccak_hash::keccak; +use rlp::{Prototype, Rlp}; + +use super::{ + nibbles::Nibbles, + partial_trie::{Node, PartialTrie, WrappedNode}, +}; + +/// The hash of an empty trie. +const EMPTY_TRIE_HASH: H256 = H256([ + 0x56, 0xe8, 0x1f, 0x17, 0x1b, 0xcc, 0x55, 0xa6, 0xff, 0x83, 0x45, 0xe6, 0x92, 0xc0, 0xf8, 0x6e, + 0x5b, 0x48, 0xe0, 0x1b, 0x99, 0x6c, 0xad, 0xc0, 0x01, 0x62, 0x2f, 0xb5, 0xe3, 0x63, 0xb4, 0x21, +]); + +#[derive(Debug)] +/// A builder for constructing a partial trie from a collection of nodes. +pub struct PartialTrieBuilder { + root: H256, + nodes: HashMap>, + _marker: std::marker::PhantomData, +} + +impl PartialTrieBuilder { + /// Creates a new `PartialTrieBuilder` with the given root and nodes. + pub fn new(root: H256, nodes: HashMap>) -> Self { + PartialTrieBuilder { + root, + nodes, + _marker: std::marker::PhantomData, + } + } + + /// Inserts a proof into the builder. + /// + /// The proof is a collection of nodes that are used to construct the + /// partial trie. + pub fn insert_proof(&mut self, proof: Vec>) { + for node in proof { + self.nodes.insert(keccak(&node), node.to_vec()); + } + } + + /// Inserts variants of extension and leaf nodes into the builder. + pub fn insert_short_node_variants_from_proof(&mut self, proof: Vec>) { + for node in proof { + let rlp = Rlp::new(&node); + match rlp.prototype().expect("rlp data is valid") { + Prototype::List(2) => { + self.insert_short_node_variants(rlp.as_list().expect("valid list")) + } + Prototype::List(17) => { + for i in 0..16 { + if let Ok(entry) = rlp.at(i) { + if let Prototype::List(2) = entry.prototype().expect("valid list") { + self.insert_short_node_variants( + entry.as_list().expect("valid list"), + ) + } + } + } + } + _ => continue, + } + } + } + + /// Builds the partial trie from the nodes and root. + pub fn build(self) -> T { + construct_partial_trie(self.root, &self.nodes) + } + + fn insert_short_node_variants(&mut self, bytes: Vec>) { + let is_leaf = is_leaf_node(&bytes); + let mut nibbles = Nibbles::from_bytes_be(&bytes[0][..]).unwrap(); + while !nibbles.is_empty() { + nibbles.pop_next_nibble_front(); + let node = rlp::encode_list::, _>(&[ + nibbles.to_hex_prefix_encoding(is_leaf).to_vec(), + bytes[1].clone(), + ]); + self.nodes.entry(keccak(&node)).or_insert(node.to_vec()); + } + } +} + +/// Constructs a partial trie from a root hash and a collection of nodes. +fn construct_partial_trie(hash: H256, nodes: &HashMap>) -> T { + let bytes = match nodes.get(&hash) { + Some(value) => rlp::decode_list::>(value), + None if [H256::zero(), EMPTY_TRIE_HASH].contains(&hash) => return T::default(), + None => return T::new(Node::Hash(hash)), + }; + + decode_node(bytes, nodes) +} + +fn decode_node(bytes: Vec>, nodes: &HashMap>) -> T { + let node = match bytes.len() { + 17 => parse_branch_node(bytes, nodes), + 2 if is_extension_node(&bytes) => parse_extension_node(bytes, nodes), + 2 if is_leaf_node(&bytes) => parse_leaf_node(bytes), + _ => unreachable!(), + }; + + T::new(node) +} + +/// Returns true if the node is an extension node. +fn is_extension_node(bytes: &[Vec]) -> bool { + (bytes[0][0] >> 4 == 0) | (bytes[0][0] >> 4 == 1) +} + +/// Returns true if the node is a leaf node. +fn is_leaf_node(bytes: &[Vec]) -> bool { + (bytes[0][0] >> 4 == 2) | (bytes[0][0] >> 4 == 3) +} + +/// Parses a branch node from the given bytes. +fn parse_branch_node( + bytes: Vec>, + nodes: &HashMap>, +) -> Node { + let children = (0..16) + .map(|i| { + let child = match bytes[i].is_empty() { + true => T::default(), + false => parse_child_node(&bytes[i], nodes), + }; + Arc::new(Box::new(child)) + }) + .collect::>>(); + + Node::::Branch { + children: children.try_into().unwrap(), + value: bytes[16].clone(), + } +} + +/// Parses an extension node from the given bytes. +fn parse_extension_node( + bytes: Vec>, + nodes: &HashMap>, +) -> Node { + let mut encoded_path = Nibbles::from_bytes_be(&bytes[0][..]).unwrap(); + + if encoded_path.pop_next_nibble_front() == 0 { + encoded_path.pop_next_nibble_front(); + } + + Node::Extension { + nibbles: encoded_path, + child: Arc::new(Box::new(parse_child_node(&bytes[1], nodes))), + } +} + +/// Parses a leaf node from the given bytes. +fn parse_leaf_node(bytes: Vec>) -> Node { + let mut encoded_path = Nibbles::from_bytes_be(&bytes[0][..]).unwrap(); + + if encoded_path.pop_next_nibble_front() == 2 { + encoded_path.pop_next_nibble_front(); + } + + Node::Leaf { + nibbles: encoded_path, + value: bytes[1].clone(), + } +} + +/// Parses a child node from the given bytes. +fn parse_child_node(bytes: &[u8], nodes: &HashMap>) -> T { + match bytes.len() { + x if x < 32 => decode_node(rlp::decode_list::>(bytes), nodes), + _ => construct_partial_trie(H256::from_slice(bytes), nodes), + } +} diff --git a/mpt_trie/src/debug_tools/common.rs b/mpt_trie/src/debug_tools/common.rs deleted file mode 100644 index cb38d5c47..000000000 --- a/mpt_trie/src/debug_tools/common.rs +++ /dev/null @@ -1,32 +0,0 @@ -//! Common utilities for the debugging tools. -use crate::{ - nibbles::Nibbles, - partial_trie::{Node, PartialTrie}, -}; - -/// Get the key piece from the given node if applicable. -/// -/// Note that there is no specific [`Nibble`] associated with a branch like -/// there are [`Nibbles`] with [Extension][`Node::Extension`] and -/// [Leaf][`Node::Leaf`] nodes, and the only way to get the `Nibble` -/// "associated" with a branch is to look at the next `Nibble` in the current -/// key as we traverse down it. -pub(super) fn get_key_piece_from_node_pulling_from_key_for_branches( - n: &Node, - curr_key: &Nibbles, -) -> Nibbles { - match n { - Node::Empty | Node::Hash(_) => Nibbles::default(), - Node::Branch { .. } => curr_key.get_next_nibbles(1), - Node::Extension { nibbles, child: _ } | Node::Leaf { nibbles, value: _ } => *nibbles, - } -} - -/// Get the key piece from the given node if applicable. Note that -/// [branch][`Node::Branch`]s have no [`Nibble`] directly associated with them. -pub(super) fn get_key_piece_from_node(n: &Node) -> Nibbles { - match n { - Node::Empty | Node::Hash(_) | Node::Branch { .. } => Nibbles::default(), - Node::Extension { nibbles, child: _ } | Node::Leaf { nibbles, value: _ } => *nibbles, - } -} diff --git a/mpt_trie/src/debug_tools/diff.rs b/mpt_trie/src/debug_tools/diff.rs index 6ceec00a1..c6a8458db 100644 --- a/mpt_trie/src/debug_tools/diff.rs +++ b/mpt_trie/src/debug_tools/diff.rs @@ -30,7 +30,6 @@ use std::{fmt::Display, ops::Deref}; use ethereum_types::H256; -use super::common::get_key_piece_from_node; use crate::utils::{get_segment_from_node_and_key_piece, TriePath}; use crate::{ nibbles::Nibbles, @@ -38,6 +37,15 @@ use crate::{ utils::TrieNodeType, }; +/// Get the key piece from the given node if applicable. Note that +/// [branch][`Node::Branch`]s have no [`Nibble`] directly associated with them. +fn get_key_piece_from_node(n: &Node) -> Nibbles { + match n { + Node::Empty | Node::Hash(_) | Node::Branch { .. } => Nibbles::default(), + Node::Extension { nibbles, child: _ } | Node::Leaf { nibbles, value: _ } => *nibbles, + } +} + #[derive(Debug, Eq, PartialEq)] /// The difference between two Tries, represented as the highest /// point of a structural divergence. diff --git a/mpt_trie/src/debug_tools/mod.rs b/mpt_trie/src/debug_tools/mod.rs index 8e25c6ae2..32a4fc985 100644 --- a/mpt_trie/src/debug_tools/mod.rs +++ b/mpt_trie/src/debug_tools/mod.rs @@ -1,7 +1,6 @@ //! Additional methods that may be useful when diagnosing tries from this //! library. -pub mod common; pub mod diff; pub mod query; pub mod stats; diff --git a/mpt_trie/src/debug_tools/query.rs b/mpt_trie/src/debug_tools/query.rs index c531dd4e8..753900262 100644 --- a/mpt_trie/src/debug_tools/query.rs +++ b/mpt_trie/src/debug_tools/query.rs @@ -5,13 +5,30 @@ use std::fmt::{self, Display}; use ethereum_types::H256; -use super::common::get_key_piece_from_node_pulling_from_key_for_branches; use crate::{ nibbles::Nibbles, partial_trie::{Node, PartialTrie, WrappedNode}, utils::{get_segment_from_node_and_key_piece, TriePath, TrieSegment}, }; +/// Get the key piece from the given node if applicable. +/// +/// Note that there is no specific [`Nibble`](crate::nibbles::Nibble) associated +/// with a branch like there are [`Nibbles`] with [Extension][`Node::Extension`] +/// and [Leaf][`Node::Leaf`] nodes, and the only way to get the `Nibble` +/// "associated" with a branch is to look at the next `Nibble` in the current +/// key as we traverse down it. +fn get_key_piece_from_node_pulling_from_key_for_branches( + n: &Node, + curr_key: &Nibbles, +) -> Nibbles { + match n { + Node::Empty | Node::Hash(_) => Nibbles::default(), + Node::Branch { .. } => curr_key.get_next_nibbles(1), + Node::Extension { nibbles, child: _ } | Node::Leaf { nibbles, value: _ } => *nibbles, + } +} + /// Params controlling how much information is reported in the query output. /// /// By default, the node type along with its key piece is printed out per node diff --git a/mpt_trie/src/lib.rs b/mpt_trie/src/lib.rs index dc44cf80d..c4dfabfa5 100644 --- a/mpt_trie/src/lib.rs +++ b/mpt_trie/src/lib.rs @@ -16,6 +16,7 @@ #![deny(missing_debug_implementations)] #![deny(missing_docs)] +pub mod builder; pub mod nibbles; pub mod partial_trie; pub mod special_query; diff --git a/mpt_trie/src/nibbles.rs b/mpt_trie/src/nibbles.rs index e388cb78e..a417dca4e 100644 --- a/mpt_trie/src/nibbles.rs +++ b/mpt_trie/src/nibbles.rs @@ -72,7 +72,7 @@ pub trait ToNibbles { } } -#[derive(Debug, Error)] +#[derive(Clone, Debug, Error)] /// Errors encountered when converting from `Bytes` to `Nibbles`. pub enum BytesToNibblesError { #[error("Tried constructing `Nibbles` from a zero byte slice")] @@ -97,7 +97,7 @@ pub enum FromHexPrefixError { } /// Error type for conversion. -#[derive(Debug, Error)] +#[derive(Clone, Debug, Error)] pub enum NibblesToTypeError { #[error("Overflow encountered when converting to U256: {0}")] /// Overflow encountered. diff --git a/mpt_trie/src/partial_trie.rs b/mpt_trie/src/partial_trie.rs index a593f57c8..27027eeae 100644 --- a/mpt_trie/src/partial_trie.rs +++ b/mpt_trie/src/partial_trie.rs @@ -44,15 +44,7 @@ impl From> for WrappedNode { /// A trait for any types that are Tries. pub trait PartialTrie: - Clone - + Debug - + Default - + Deref> - + DerefMut> - + Eq - + PartialEq - + TrieNodeIntern - + Sized + Clone + Debug + Default + DerefMut> + Eq + TrieNodeIntern { /// Creates a new partial trie from a node. fn new(n: Node) -> Self; @@ -115,7 +107,7 @@ pub trait PartialTrie: } /// Part of the trait that is not really part of the public interface but -/// implementor of other node types still need to implement. +/// implementer of other node types still need to implement. pub trait TrieNodeIntern { /// Returns the hash of the rlp encoding of self. fn hash_intern(&self) -> EncodedNode; diff --git a/mpt_trie/src/trie_hashing.rs b/mpt_trie/src/trie_hashing.rs index 9502ebe1c..60890aae2 100644 --- a/mpt_trie/src/trie_hashing.rs +++ b/mpt_trie/src/trie_hashing.rs @@ -121,6 +121,7 @@ mod tests { const NUM_INSERTS_FOR_ETH_TRIE_CRATE_MASSIVE_TEST: usize = 1000; const NODES_PER_BRANCH_FOR_HASH_REPLACEMENT_TEST: usize = 200; + #[allow(dead_code)] #[derive(Copy, Clone, Debug)] struct U256Rlpable(U256); diff --git a/mpt_trie/src/trie_ops.rs b/mpt_trie/src/trie_ops.rs index 2f0e794d7..5f94fc942 100644 --- a/mpt_trie/src/trie_ops.rs +++ b/mpt_trie/src/trie_ops.rs @@ -1,5 +1,5 @@ //! Defines various operations for -//! [`PartialTrie`][crate::partial_trie::PartialTrie]. +//! [`PartialTrie`]. use std::{fmt::Display, mem::size_of}; @@ -19,7 +19,7 @@ use crate::{ pub type TrieOpResult = Result; /// An error type for trie operation. -#[derive(Debug, Error)] +#[derive(Clone, Debug, Error)] pub enum TrieOpError { /// An error that occurs when a hash node is found during an insert /// operation. diff --git a/mpt_trie/src/utils.rs b/mpt_trie/src/utils.rs index c38c78a94..5d530878e 100644 --- a/mpt_trie/src/utils.rs +++ b/mpt_trie/src/utils.rs @@ -97,7 +97,7 @@ pub enum TrieSegment { /// Extension node along with the key piece of the node. Extension(Nibbles), - /// Leaf node along wth the key piece of the node. + /// Leaf node along with the key piece of the node. Leaf(Nibbles), } diff --git a/proc_macro/Cargo.toml b/proc_macro/Cargo.toml new file mode 100644 index 000000000..d2deca37f --- /dev/null +++ b/proc_macro/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "zk_evm_proc_macro" +version = "0.1.0" +publish = false +edition.workspace = true +license.workspace = true +repository.workspace = true + +[lib] +proc-macro = true + +[[test]] +name = "tests" +path = "tests/compiletest.rs" + +[dependencies] +proc-macro2 = { workspace = true } +quote = { workspace = true } +syn = { workspace = true } + +[dev-dependencies] +trybuild = { workspace = true } diff --git a/proc_macro/src/common.rs b/proc_macro/src/common.rs new file mode 100644 index 000000000..b8c96ed92 --- /dev/null +++ b/proc_macro/src/common.rs @@ -0,0 +1,41 @@ +use syn::punctuated::Punctuated; +use syn::{token, Attribute, Meta}; + +/// Prefixes an error message and generates a `syn::Error` from the message. +macro_rules! span_err { + ($ast:expr, $msg:literal $(,)?) => { + ::syn::Error::new_spanned($ast, ::core::concat!("zk_evm_proc_macro error: ", $msg)) + }; +} +pub(crate) use span_err; + +/// Checks the condition and returns early with a prefixed error message if +/// false. +macro_rules! ensure { + ($cond:expr, $ast:expr, $msg:literal $(,)?) => { + if !$cond { + return Err($crate::common::span_err!($ast, $msg)); + } + }; +} +pub(crate) use ensure; + +/// Parses the `Meta` of a `repr` attribute and returns true if one of the +/// elements is "C". +fn is_meta_c(outer: &Meta) -> bool { + if let Meta::List(inner) = outer { + let parsed: Punctuated = inner + .parse_args_with(Punctuated::parse_terminated) + .unwrap_or_default(); + parsed.iter().any(|meta| meta.path().is_ident("C")) + } else { + false + } +} + +/// Returns true if `#[repr(C)]` is contained in the attributes. +pub(crate) fn is_repr_c<'a>(attrs: impl IntoIterator) -> bool { + attrs + .into_iter() + .any(|attr| attr.path().is_ident("repr") && is_meta_c(&attr.meta)) +} diff --git a/proc_macro/src/impls/columns.rs b/proc_macro/src/impls/columns.rs new file mode 100644 index 000000000..f4f42a1d8 --- /dev/null +++ b/proc_macro/src/impls/columns.rs @@ -0,0 +1,133 @@ +use quote::quote; +use syn::{Data, DeriveInput, Result}; + +use crate::common::{ensure, is_repr_c}; + +/// Implements `Borrow`, `BorrowMut`, `From`, `Index`, `IndexMut`, and +/// `Default`. +pub(crate) fn try_derive(ast: DeriveInput) -> Result { + let is_struct = matches!(ast.data, Data::Struct(_)); + ensure!(is_struct, &ast, "expected `struct`"); + + // Check that the struct is `#[repr(C)]`. + let repr_c = is_repr_c(&ast.attrs); + ensure!(repr_c, &ast, "column struct must be `#[repr(C)]`"); + + // The name of the struct. + let name = &ast.ident; + + // SAFETY: `u8` is guaranteed to have a `size_of` of 1. + // https://doc.rust-lang.org/reference/type-layout.html#primitive-data-layout + let num_columns = quote!(::core::mem::size_of::<#name>()); + + // SAFETY: A struct generic over T has the same layout as an array [T; N] if: + // - The struct is `#[repr(C)]`. + // - Every field is one of T, [T; M], or a type with the same layout as [T; M], + // - The total number of elements of type T is N. + // https://doc.rust-lang.org/reference/type-layout.html#reprc-structs + // https://doc.rust-lang.org/reference/type-layout.html#array-layout + Ok(quote! { + impl ::core::borrow::Borrow<#name> for [T; #num_columns] + where + T: ::core::marker::Copy, + { + fn borrow(&self) -> &#name { + unsafe { ::core::mem::transmute(self) } + } + } + + impl ::core::borrow::BorrowMut<#name> for [T; #num_columns] + where + T: ::core::marker::Copy, + { + fn borrow_mut(&mut self) -> &mut #name { + unsafe { ::core::mem::transmute(self) } + } + } + + impl ::core::borrow::Borrow<[T; #num_columns]> for #name + where + T: ::core::marker::Copy, + { + fn borrow(&self) -> &[T; #num_columns] { + unsafe { ::core::mem::transmute(self) } + } + } + + impl ::core::borrow::BorrowMut<[T; #num_columns]> for #name + where + T: ::core::marker::Copy, + { + fn borrow_mut(&mut self) -> &mut [T; #num_columns] { + unsafe { ::core::mem::transmute(self) } + } + } + + impl From<[T; #num_columns]> for #name + where + T: ::core::marker::Copy, + { + fn from(value: [T; #num_columns]) -> Self { + debug_assert_eq!( + ::core::mem::size_of::<#name>(), + ::core::mem::size_of::<[T; #num_columns]>() + ); + // Need ManuallyDrop so that `value` is not dropped by this function. + let value = ::core::mem::ManuallyDrop::new(value); + // Copy the bit pattern. The original value is no longer safe to use. + unsafe { ::core::mem::transmute_copy(&value) } + } + } + + impl From<#name> for [T; #num_columns] + where + T: ::core::marker::Copy, + { + fn from(value: #name) -> Self { + debug_assert_eq!( + ::core::mem::size_of::<#name>(), + ::core::mem::size_of::<[T; #num_columns]>() + ); + // Need ManuallyDrop so that `value` is not dropped by this function. + let value = ::core::mem::ManuallyDrop::new(value); + // Copy the bit pattern. The original value is no longer safe to use. + unsafe { ::core::mem::transmute_copy(&value) } + } + } + + impl ::core::ops::Index for #name + where + T: ::core::marker::Copy, + [T]: ::core::ops::Index, + { + type Output = <[T] as ::core::ops::Index>::Output; + + fn index(&self, index: I) -> &>::Output { + let arr = ::core::borrow::Borrow::<[T; #num_columns]>::borrow(self); + <[T] as ::core::ops::Index>::index(arr, index) + } + } + + impl ::core::ops::IndexMut for #name + where + T: ::core::marker::Copy, + [T]: ::core::ops::IndexMut, + { + fn index_mut(&mut self, index: I) -> &mut >::Output { + let arr = ::core::borrow::BorrowMut::<[T; #num_columns]>::borrow_mut(self); + <[T] as ::core::ops::IndexMut>::index_mut(arr, index) + } + } + + impl ::core::default::Default for #name + where + T: ::core::marker::Copy + ::core::default::Default, + { + fn default() -> Self { + ::core::convert::Into::::into( + [::default(); #num_columns] + ) + } + } + }) +} diff --git a/proc_macro/src/impls/deref_columns.rs b/proc_macro/src/impls/deref_columns.rs new file mode 100644 index 000000000..534ab09c2 --- /dev/null +++ b/proc_macro/src/impls/deref_columns.rs @@ -0,0 +1,43 @@ +use quote::quote; +use syn::{Data, DeriveInput, Result}; + +use crate::common::{ensure, is_repr_c}; + +/// Implements `Deref` and `DerefMut`. +pub(crate) fn try_derive(ast: DeriveInput) -> Result { + let is_struct = matches!(ast.data, Data::Struct(_)); + ensure!(is_struct, &ast, "expected `struct`"); + + // Check that the struct is `#[repr(C)]`. + let repr_c = is_repr_c(&ast.attrs); + ensure!(repr_c, &ast, "column struct must be `#[repr(C)]`"); + + // The name of the struct. + let name = &ast.ident; + + // SAFETY: `u8` is guaranteed to have a `size_of` of 1. + // https://doc.rust-lang.org/reference/type-layout.html#primitive-data-layout + let num_columns = quote!(::core::mem::size_of::<#name>()); + + // SAFETY: A struct generic over T has the same layout as an array [T; N] if: + // - The struct is `#[repr(C)]`. + // - Every field is one of T, [T; M], or a type with the same layout as [T; M], + // - The total number of elements of type T is N. + // https://doc.rust-lang.org/reference/type-layout.html#reprc-structs + // https://doc.rust-lang.org/reference/type-layout.html#array-layout + Ok(quote! { + impl ::core::ops::Deref for #name { + type Target = [T; #num_columns]; + + fn deref(&self) -> &::Target { + unsafe { ::core::mem::transmute(self) } + } + } + + impl ::core::ops::DerefMut for #name { + fn deref_mut(&mut self) -> &mut ::Target { + unsafe { ::core::mem::transmute(self) } + } + } + }) +} diff --git a/proc_macro/src/impls/mod.rs b/proc_macro/src/impls/mod.rs new file mode 100644 index 000000000..2e0de48ac --- /dev/null +++ b/proc_macro/src/impls/mod.rs @@ -0,0 +1,2 @@ +pub(crate) mod columns; +pub(crate) mod deref_columns; diff --git a/proc_macro/src/lib.rs b/proc_macro/src/lib.rs new file mode 100644 index 000000000..d0a9d8225 --- /dev/null +++ b/proc_macro/src/lib.rs @@ -0,0 +1,47 @@ +//! This library provides two convenient derive macros for interpreting arrays +//! of field elements as structs representing an AIR. +//! +//! Deriving [`Columns`] on a struct `Struct` implements the following +//! conversion traits between `Struct` and arrays `[T; N]` where `N` is the +//! number of fields in the struct: [`Borrow`], [`BorrowMut`], and [`From`]. +//! Additionally, the traits [`Index`], [`IndexMut`], and [`Default`] are +//! implemented for `Struct`. +//! +//! Deriving [`DerefColumns`] for a struct generic over `T` implements [`Deref`] +//! and [`DerefMut`] with target `[T; N]` where `N` is the number of fields in +//! the struct. +//! +//! These implementations employ unsafe code and place a burden on the user to +//! ensure their safe usage. Please see the respective macro implementations to +//! understand the conditions that should be upheld by any struct deriving +//! [`Columns`] or [`DerefColumns`]. In short, the struct must be `#[repr(C)]` +//! and all fields must be one of `T`, `[T; M]`, or a type with the same layout +//! as `[T; M]`. +//! +//! [`Borrow`]: ::core::borrow::Borrow +//! [`BorrowMut`]: ::core::borrow::BorrowMut +//! [`Index`]: ::core::ops::Index +//! [`IndexMut`]: ::core::ops::IndexMut +//! [`Deref`]: ::core::ops::Deref +//! [`DerefMut`]: ::core::ops::DerefMut + +pub(crate) mod common; +mod impls; + +use impls::{columns, deref_columns}; + +#[proc_macro_derive(Columns)] +pub fn derive_columns(input: proc_macro::TokenStream) -> proc_macro::TokenStream { + let ast = syn::parse_macro_input!(input as syn::DeriveInput); + columns::try_derive(ast) + .unwrap_or_else(syn::Error::into_compile_error) + .into() +} + +#[proc_macro_derive(DerefColumns)] +pub fn derive_deref_columns(input: proc_macro::TokenStream) -> proc_macro::TokenStream { + let ast = syn::parse_macro_input!(input as syn::DeriveInput); + deref_columns::try_derive(ast) + .unwrap_or_else(syn::Error::into_compile_error) + .into() +} diff --git a/proc_macro/tests/compile/mod.rs b/proc_macro/tests/compile/mod.rs new file mode 100644 index 000000000..838146ec9 --- /dev/null +++ b/proc_macro/tests/compile/mod.rs @@ -0,0 +1,26 @@ +mod test_impls; + +use zk_evm_proc_macro::{Columns, DerefColumns}; + +#[repr(C)] +pub struct NestedColumns { + x: T, + y: [T; 3], +} + +#[repr(C)] +#[derive(DerefColumns)] +pub struct OpColumns { + is_op_a: T, + is_op_b: T, + is_op_c: T, +} + +#[repr(C)] +#[derive(Columns)] +pub struct AllColumns { + a: T, + b: [T; 4], + c: [NestedColumns; 5], + op: OpColumns, +} diff --git a/proc_macro/tests/compile/test_impls.rs b/proc_macro/tests/compile/test_impls.rs new file mode 100644 index 000000000..69e0c28db --- /dev/null +++ b/proc_macro/tests/compile/test_impls.rs @@ -0,0 +1,34 @@ +use core::borrow::{Borrow, BorrowMut}; +use core::ops::{Deref, DerefMut, Index, IndexMut}; + +use super::*; + +const NUM_OP_COLUMNS: usize = core::mem::size_of::>(); + +#[allow(unused)] +trait TestDerefColumns: Deref + DerefMut {} +impl TestDerefColumns for OpColumns {} + +const NUM_COLUMNS: usize = core::mem::size_of::>(); + +#[allow(unused)] +trait TestColumns: + Borrow<[T; NUM_COLUMNS]> + + BorrowMut<[T; NUM_COLUMNS]> + + From<[T; NUM_COLUMNS]> + + Index>::Output> + + IndexMut + + Default +where + [T]: Index + IndexMut, + [T; NUM_COLUMNS]: Borrow, + [T; NUM_COLUMNS]: BorrowMut, + [T; NUM_COLUMNS]: From, +{ +} +impl TestColumns for AllColumns +where + T: Copy + Default, + [T]: Index + IndexMut, +{ +} diff --git a/proc_macro/tests/compile_fail/not_repr_c.rs b/proc_macro/tests/compile_fail/not_repr_c.rs new file mode 100644 index 000000000..c3d8ed11b --- /dev/null +++ b/proc_macro/tests/compile_fail/not_repr_c.rs @@ -0,0 +1,9 @@ +use zk_evm_proc_macro::Columns; + +#[derive(Columns)] +struct Columns { + a: T, + b: [T; 3], +} + +fn main() {} diff --git a/proc_macro/tests/compile_fail/not_repr_c.stderr b/proc_macro/tests/compile_fail/not_repr_c.stderr new file mode 100644 index 000000000..71e4cc26b --- /dev/null +++ b/proc_macro/tests/compile_fail/not_repr_c.stderr @@ -0,0 +1,8 @@ +error: zk_evm_proc_macro error: column struct must be `#[repr(C)]` + --> tests/compile_fail/not_repr_c.rs:4:1 + | +4 | / struct Columns { +5 | | a: T, +6 | | b: [T; 3], +7 | | } + | |_^ diff --git a/proc_macro/tests/compile_fail/not_repr_c_deref.rs b/proc_macro/tests/compile_fail/not_repr_c_deref.rs new file mode 100644 index 000000000..cac29f0df --- /dev/null +++ b/proc_macro/tests/compile_fail/not_repr_c_deref.rs @@ -0,0 +1,9 @@ +use zk_evm_proc_macro::DerefColumns; + +#[derive(DerefColumns)] +struct Columns { + a: T, + b: [T; 3], +} + +fn main() {} diff --git a/proc_macro/tests/compile_fail/not_repr_c_deref.stderr b/proc_macro/tests/compile_fail/not_repr_c_deref.stderr new file mode 100644 index 000000000..26ed6ba0f --- /dev/null +++ b/proc_macro/tests/compile_fail/not_repr_c_deref.stderr @@ -0,0 +1,8 @@ +error: zk_evm_proc_macro error: column struct must be `#[repr(C)]` + --> tests/compile_fail/not_repr_c_deref.rs:4:1 + | +4 | / struct Columns { +5 | | a: T, +6 | | b: [T; 3], +7 | | } + | |_^ diff --git a/proc_macro/tests/compile_fail/not_struct.rs b/proc_macro/tests/compile_fail/not_struct.rs new file mode 100644 index 000000000..42be545a4 --- /dev/null +++ b/proc_macro/tests/compile_fail/not_struct.rs @@ -0,0 +1,10 @@ +use zk_evm_proc_macro::Columns; + +#[repr(C)] +#[derive(Columns)] +enum Maybe { + Nothing, + Just(T), +} + +fn main() {} diff --git a/proc_macro/tests/compile_fail/not_struct.stderr b/proc_macro/tests/compile_fail/not_struct.stderr new file mode 100644 index 000000000..b7a18ddd7 --- /dev/null +++ b/proc_macro/tests/compile_fail/not_struct.stderr @@ -0,0 +1,10 @@ +error: zk_evm_proc_macro error: expected `struct` + --> tests/compile_fail/not_struct.rs:3:1 + | +3 | / #[repr(C)] +4 | | #[derive(Columns)] +5 | | enum Maybe { +6 | | Nothing, +7 | | Just(T), +8 | | } + | |_^ diff --git a/proc_macro/tests/compile_fail/not_struct_deref.rs b/proc_macro/tests/compile_fail/not_struct_deref.rs new file mode 100644 index 000000000..be429e6b2 --- /dev/null +++ b/proc_macro/tests/compile_fail/not_struct_deref.rs @@ -0,0 +1,10 @@ +use zk_evm_proc_macro::DerefColumns; + +#[repr(C)] +#[derive(DerefColumns)] +enum Maybe { + Nothing, + Just(T), +} + +fn main() {} diff --git a/proc_macro/tests/compile_fail/not_struct_deref.stderr b/proc_macro/tests/compile_fail/not_struct_deref.stderr new file mode 100644 index 000000000..0337c2102 --- /dev/null +++ b/proc_macro/tests/compile_fail/not_struct_deref.stderr @@ -0,0 +1,10 @@ +error: zk_evm_proc_macro error: expected `struct` + --> tests/compile_fail/not_struct_deref.rs:3:1 + | +3 | / #[repr(C)] +4 | | #[derive(DerefColumns)] +5 | | enum Maybe { +6 | | Nothing, +7 | | Just(T), +8 | | } + | |_^ diff --git a/proc_macro/tests/compiletest.rs b/proc_macro/tests/compiletest.rs new file mode 100644 index 000000000..1e9d73b78 --- /dev/null +++ b/proc_macro/tests/compiletest.rs @@ -0,0 +1,14 @@ +mod compile; + +/// The `compile_fail` tests in `tests/compile_fail/` are inherently fragile, +/// as small changes in output from rustc or from the trybuild crate may cause +/// them to fail. To regenerate the `*.stderr` files, run: +/// `TRYBUILD=overwrite cargo test -p zk_evm_proc_macro -- test_compile_fail`. +/// Then, check the git diff to ensure that the new `*.stderr` files are what +/// you would expect (most importantly, make sure they actually contain errors). +#[cfg_attr(miri, ignore = "incompatible with miri")] +#[test] +fn test_compile_fail() { + let t = trybuild::TestCases::new(); + t.compile_fail("tests/compile_fail/*.rs"); +} diff --git a/proof_gen/Cargo.toml b/proof_gen/Cargo.toml index 044dd3e72..732115077 100644 --- a/proof_gen/Cargo.toml +++ b/proof_gen/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "proof_gen" description = "Generates block proofs from zero proof IR." -version = "0.1.3" +version = "0.2.0" authors = ["Polygon Zero "] edition.workspace = true license.workspace = true @@ -10,12 +10,11 @@ homepage.workspace = true keywords.workspace = true [dependencies] -ethereum-types = { workspace = true } log = { workspace = true } -paste = "1.0.14" +paste = { workspace = true } plonky2 = { workspace = true } serde = { workspace = true } hashbrown = { workspace = true } # Local dependencies -evm_arithmetization = { version = "0.1.3", path = "../evm_arithmetization" } +evm_arithmetization = { workspace = true } diff --git a/smt_trie/Cargo.toml b/smt_trie/Cargo.toml new file mode 100644 index 000000000..f3008c5f7 --- /dev/null +++ b/smt_trie/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "smt_trie" +description = "Types and utility functions for building/working with Polygon Hermez Sparse Merkle Trees." +version = "0.1.0" +authors = ["William Borgeaud "] +readme = "README.md" +categories = ["cryptography"] +edition.workspace = true +license.workspace = true +repository.workspace = true +homepage.workspace = true +keywords.workspace = true + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +ethereum-types = { workspace = true } +hex-literal = { workspace = true } +plonky2 = { workspace = true } +rand = { workspace = true } +serde = { workspace = true, features = ["derive", "rc"] } diff --git a/smt_trie/README.md b/smt_trie/README.md new file mode 100644 index 000000000..54707f9fe --- /dev/null +++ b/smt_trie/README.md @@ -0,0 +1,2 @@ +Types and functions to work with the Hermez/Polygon zkEVM sparse Merkle tree (SMT) format. +See https://github.com/0xPolygonHermez/zkevm-commonjs for reference implementation. diff --git a/smt_trie/src/bits.rs b/smt_trie/src/bits.rs new file mode 100644 index 000000000..4d2d2ed91 --- /dev/null +++ b/smt_trie/src/bits.rs @@ -0,0 +1,103 @@ +use std::ops::Add; + +use ethereum_types::{BigEndianHash, H256, U256}; +use serde::{Deserialize, Serialize}; + +pub type Bit = bool; + +#[derive( + Copy, Clone, Deserialize, Default, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, Debug, +)] +pub struct Bits { + /// The number of bits in this sequence. + pub count: usize, + /// A packed encoding of these bits. Only the first (least significant) + /// `count` bits are used. The rest are unused and should be zero. + pub packed: U256, +} + +impl From for Bits { + fn from(packed: U256) -> Self { + Bits { count: 256, packed } + } +} + +impl From for Bits { + fn from(packed: H256) -> Self { + Bits { + count: 256, + packed: packed.into_uint(), + } + } +} + +impl Add for Bits { + type Output = Self; + + fn add(self, rhs: Self) -> Self::Output { + assert!(self.count + rhs.count <= 256, "Overflow"); + Self { + count: self.count + rhs.count, + packed: self.packed * (U256::one() << rhs.count) + rhs.packed, + } + } +} + +impl Bits { + pub fn empty() -> Self { + Bits { + count: 0, + packed: U256::zero(), + } + } + + pub fn is_empty(&self) -> bool { + self.count == 0 + } + + pub fn pop_next_bit(&mut self) -> Bit { + assert!(!self.is_empty(), "Cannot pop from empty bits"); + let b = !(self.packed & U256::one()).is_zero(); + self.packed >>= 1; + self.count -= 1; + b + } + + pub fn get_bit(&self, i: usize) -> Bit { + assert!(i < self.count, "Index out of bounds"); + !(self.packed & (U256::one() << (self.count - 1 - i))).is_zero() + } + + pub fn push_bit(&mut self, bit: Bit) { + self.packed = self.packed * 2 + U256::from(bit as u64); + self.count += 1; + } + + pub fn add_bit(&self, bit: Bit) -> Self { + let mut x = *self; + x.push_bit(bit); + x + } + + pub fn common_prefix(&self, k: &Bits) -> (Self, Option<(Bit, Bit)>) { + let mut a = *self; + let mut b = *k; + while a.count > b.count { + a.pop_next_bit(); + } + while a.count < b.count { + b.pop_next_bit(); + } + if a == b { + return (a, None); + } + let mut a_bit = a.pop_next_bit(); + let mut b_bit = b.pop_next_bit(); + while a != b { + a_bit = a.pop_next_bit(); + b_bit = b.pop_next_bit(); + } + assert_ne!(a_bit, b_bit, "Sanity check."); + (a, Some((a_bit, b_bit))) + } +} diff --git a/smt_trie/src/code.rs b/smt_trie/src/code.rs new file mode 100644 index 000000000..dd6b142b9 --- /dev/null +++ b/smt_trie/src/code.rs @@ -0,0 +1,85 @@ +/// Functions to hash contract bytecode using Poseidon. +/// See `hashContractBytecode()` in https://github.com/0xPolygonHermez/zkevm-commonjs/blob/main/src/smt-utils.js for reference implementation. +use ethereum_types::U256; +use plonky2::field::types::Field; +use plonky2::hash::poseidon::{self, Poseidon}; + +use crate::smt::{HashOut, F}; +use crate::utils::hashout2u; + +pub fn hash_contract_bytecode(mut code: Vec) -> HashOut { + poseidon_pad_byte_vec(&mut code); + + poseidon_hash_padded_byte_vec(code) +} + +pub fn poseidon_hash_padded_byte_vec(bytes: Vec) -> HashOut { + let mut capacity = [F::ZERO; poseidon::SPONGE_CAPACITY]; + let mut arr = [F::ZERO; poseidon::SPONGE_WIDTH]; + for blocks in bytes.chunks_exact(poseidon::SPONGE_RATE * 7) { + arr[..poseidon::SPONGE_RATE].copy_from_slice( + &blocks + .chunks_exact(7) + .map(|block| { + let mut bytes = [0u8; poseidon::SPONGE_RATE]; + bytes[..7].copy_from_slice(block); + F::from_canonical_u64(u64::from_le_bytes(bytes)) + }) + .collect::>(), + ); + arr[poseidon::SPONGE_RATE..poseidon::SPONGE_WIDTH].copy_from_slice(&capacity); + capacity = F::poseidon(arr)[0..poseidon::SPONGE_CAPACITY] + .try_into() + .unwrap(); + } + HashOut { elements: capacity } +} + +pub fn poseidon_pad_byte_vec(bytes: &mut Vec) { + bytes.push(0x01); + while bytes.len() % 56 != 0 { + bytes.push(0x00); + } + *bytes.last_mut().unwrap() |= 0x80; +} + +pub fn hash_bytecode_u256(code: Vec) -> U256 { + hashout2u(hash_contract_bytecode(code)) +} + +#[cfg(test)] +mod tests { + use hex_literal::hex; + + use super::*; + + #[test] + fn test_empty_code() { + assert_eq!( + hash_contract_bytecode(vec![]).elements, + [ + 10052403398432742521, + 15195891732843337299, + 2019258788108304834, + 4300613462594703212, + ] + .map(F::from_canonical_u64) + ); + } + + #[test] + fn test_some_code() { + let code = hex!("60806040526004361061003f5760003560e01c80632b68b9c6146100445780633fa4f2451461005b5780635cfb28e714610086578063718da7ee14610090575b600080fd5b34801561005057600080fd5b506100596100b9565b005b34801561006757600080fd5b506100706100f2565b60405161007d9190610195565b60405180910390f35b61008e6100f8565b005b34801561009c57600080fd5b506100b760048036038101906100b29190610159565b610101565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60015481565b34600181905550565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081359050610153816101f1565b92915050565b60006020828403121561016f5761016e6101ec565b5b600061017d84828501610144565b91505092915050565b61018f816101e2565b82525050565b60006020820190506101aa6000830184610186565b92915050565b60006101bb826101c2565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600080fd5b6101fa816101b0565b811461020557600080fd5b5056fea26469706673582212207ae6e5d5feddef608b24cca98990c37cf78f8b377163a7c4951a429d90d6120464736f6c63430008070033"); + + assert_eq!( + hash_contract_bytecode(code.to_vec()).elements, + [ + 13311281292453978464, + 8384462470517067887, + 14733964407220681187, + 13541155386998871195 + ] + .map(F::from_canonical_u64) + ); + } +} diff --git a/smt_trie/src/db.rs b/smt_trie/src/db.rs new file mode 100644 index 000000000..f71fad29a --- /dev/null +++ b/smt_trie/src/db.rs @@ -0,0 +1,23 @@ +use std::collections::HashMap; + +use crate::smt::{Key, Node}; + +pub trait Db: Default { + fn get_node(&self, key: &Key) -> Option<&Node>; + fn set_node(&mut self, key: Key, value: Node); +} + +#[derive(Debug, Clone, Default)] +pub struct MemoryDb { + pub db: HashMap, +} + +impl Db for MemoryDb { + fn get_node(&self, key: &Key) -> Option<&Node> { + self.db.get(key) + } + + fn set_node(&mut self, key: Key, value: Node) { + self.db.insert(key, value); + } +} diff --git a/smt_trie/src/keys.rs b/smt_trie/src/keys.rs new file mode 100644 index 000000000..1f122adbb --- /dev/null +++ b/smt_trie/src/keys.rs @@ -0,0 +1,99 @@ +#![allow(clippy::needless_range_loop)] + +/// This module contains functions to generate keys for the SMT. +/// See https://github.com/0xPolygonHermez/zkevm-commonjs/blob/main/src/smt-utils.js for reference implementation. +use ethereum_types::{Address, U256}; +use plonky2::{field::types::Field, hash::poseidon::Poseidon}; + +use crate::smt::{Key, F}; + +const HASH_ZEROS: [u64; 4] = [ + 4330397376401421145, + 14124799381142128323, + 8742572140681234676, + 14345658006221440202, +]; + +const SMT_KEY_BALANCE: u64 = 0; +const SMT_KEY_NONCE: u64 = 1; +const SMT_KEY_CODE: u64 = 2; +const SMT_KEY_STORAGE: u64 = 3; +const SMT_KEY_LENGTH: u64 = 4; + +pub fn key_balance(addr: Address) -> Key { + let mut arr = [F::ZERO; 12]; + for i in 0..5 { + arr[i] = F::from_canonical_u32(u32::from_be_bytes( + addr.0[16 - 4 * i..16 - 4 * i + 4].try_into().unwrap(), + )); + } + + arr[6] = F::from_canonical_u64(SMT_KEY_BALANCE); + arr[8..12].copy_from_slice(&HASH_ZEROS.map(F::from_canonical_u64)); + + Key(F::poseidon(arr)[0..4].try_into().unwrap()) +} + +pub fn key_nonce(addr: Address) -> Key { + let mut arr = [F::ZERO; 12]; + for i in 0..5 { + arr[i] = F::from_canonical_u32(u32::from_be_bytes( + addr.0[16 - 4 * i..16 - 4 * i + 4].try_into().unwrap(), + )); + } + + arr[6] = F::from_canonical_u64(SMT_KEY_NONCE); + arr[8..12].copy_from_slice(&HASH_ZEROS.map(F::from_canonical_u64)); + + Key(F::poseidon(arr)[0..4].try_into().unwrap()) +} + +pub fn key_code(addr: Address) -> Key { + let mut arr = [F::ZERO; 12]; + for i in 0..5 { + arr[i] = F::from_canonical_u32(u32::from_be_bytes( + addr.0[16 - 4 * i..16 - 4 * i + 4].try_into().unwrap(), + )); + } + + arr[6] = F::from_canonical_u64(SMT_KEY_CODE); + arr[8..12].copy_from_slice(&HASH_ZEROS.map(F::from_canonical_u64)); + + Key(F::poseidon(arr)[0..4].try_into().unwrap()) +} + +pub fn key_storage(addr: Address, slot: U256) -> Key { + let mut arr = [F::ZERO; 12]; + for i in 0..5 { + arr[i] = F::from_canonical_u32(u32::from_be_bytes( + addr.0[16 - 4 * i..16 - 4 * i + 4].try_into().unwrap(), + )); + } + + arr[6] = F::from_canonical_u64(SMT_KEY_STORAGE); + let capacity: [F; 4] = { + let mut arr = [F::ZERO; 12]; + for i in 0..4 { + arr[2 * i] = F::from_canonical_u32(slot.0[i] as u32); + arr[2 * i + 1] = F::from_canonical_u32((slot.0[i] >> 32) as u32); + } + F::poseidon(arr)[0..4].try_into().unwrap() + }; + arr[8..12].copy_from_slice(&capacity); + + Key(F::poseidon(arr)[0..4].try_into().unwrap()) +} + +pub fn key_code_length(addr: Address) -> Key { + let mut arr = [F::ZERO; 12]; + for i in 0..5 { + arr[i] = F::from_canonical_u32(u32::from_be_bytes( + addr.0[16 - 4 * i..16 - 4 * i + 4].try_into().unwrap(), + )); + } + + arr[6] = F::from_canonical_u64(SMT_KEY_LENGTH); + arr[8..12].copy_from_slice(&HASH_ZEROS.map(F::from_canonical_u64)); + + Key(F::poseidon(arr)[0..4].try_into().unwrap()) +} diff --git a/smt_trie/src/lib.rs b/smt_trie/src/lib.rs new file mode 100644 index 000000000..11315f12c --- /dev/null +++ b/smt_trie/src/lib.rs @@ -0,0 +1,8 @@ +pub mod bits; +pub mod code; +pub mod db; +pub mod keys; +pub mod smt; +#[cfg(test)] +mod smt_test; +pub mod utils; diff --git a/smt_trie/src/smt.rs b/smt_trie/src/smt.rs new file mode 100644 index 000000000..356c8c3e9 --- /dev/null +++ b/smt_trie/src/smt.rs @@ -0,0 +1,535 @@ +#![allow(clippy::needless_range_loop)] + +use std::borrow::Borrow; +use std::collections::{HashMap, HashSet}; + +use ethereum_types::U256; +use plonky2::field::goldilocks_field::GoldilocksField; +use plonky2::field::types::{Field, PrimeField64}; +use plonky2::hash::poseidon::{Poseidon, PoseidonHash}; +use plonky2::plonk::config::Hasher; + +use crate::bits::Bits; +use crate::db::Db; +use crate::utils::{ + f2limbs, get_unique_sibling, hash0, hash_key_hash, hashout2u, key2u, limbs2f, u2h, u2k, +}; + +pub(crate) const HASH_TYPE: u8 = 0; +pub(crate) const INTERNAL_TYPE: u8 = 1; +pub(crate) const LEAF_TYPE: u8 = 2; + +pub type F = GoldilocksField; +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub struct Key(pub [F; 4]); +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub struct Node(pub [F; 12]); +pub type Hash = PoseidonHash; +pub type HashOut = >::Hash; + +impl Key { + pub fn split(&self) -> Bits { + let mut bits = Bits::empty(); + let mut arr: [_; 4] = std::array::from_fn(|i| self.0[i].to_canonical_u64()); + for _ in 0..64 { + for j in 0..4 { + bits.push_bit(arr[j] & 1 == 1); + arr[j] >>= 1; + } + } + bits + } + + pub fn join(bits: Bits, rem_key: Self) -> Self { + let mut n = [0; 4]; + let mut accs = [0; 4]; + for i in 0..bits.count { + if bits.get_bit(i) { + accs[i % 4] |= 1 << n[i % 4]; + } + n[i % 4] += 1; + } + let key = std::array::from_fn(|i| { + F::from_canonical_u64((rem_key.0[i].to_canonical_u64() << n[i]) | accs[i]) + }); + Key(key) + } + + fn remove_key_bits(&self, nbits: usize) -> Self { + let full_levels = nbits / 4; + let mut auxk = self.0.map(|x| x.to_canonical_u64()); + for i in 0..4 { + let mut n = full_levels; + if full_levels * 4 + i < nbits { + n += 1; + } + auxk[i] >>= n; + } + Key(auxk.map(F::from_canonical_u64)) + } +} + +impl Node { + pub fn is_one_siblings(&self) -> bool { + self.0[8].is_one() + } +} + +/// Sparse Merkle tree (SMT). +/// Represented as a map from keys to leaves and a map from keys to internal +/// nodes. Leaves hold either a value node, representing an account in the state +/// SMT or a value in the storage SMT, or a hash node, representing a hash of a +/// subtree. Internal nodes hold the hashes of their children. +/// The root is the hash of the root internal node. +/// Leaves are hashed using a prefix of 0, internal nodes using a prefix of 1. +#[derive(Debug, Clone, PartialEq, Eq, Default)] +pub struct Smt { + pub db: D, + pub kv_store: HashMap, + pub root: HashOut, +} + +impl Smt { + /// Returns `Poseidon(x, [0,0,0,0])` and save it in DB. + pub fn hash0(&mut self, x: [F; 8]) -> [F; 4] { + let h = hash0(x); + let a = std::array::from_fn(|i| if i < 8 { x[i] } else { F::ZERO }); + self.db.set_node(Key(h), Node(a)); + h + } + + /// Returns `Poseidon(key || h, [1,0,0,0])` and save it in DB. + pub fn hash_key_hash(&mut self, k: Key, h: [F; 4]) -> [F; 4] { + let a: [_; 8] = std::array::from_fn(|i| if i < 4 { k.0[i] } else { h[i - 4] }); + let a = std::array::from_fn(|i| match i { + j if j < 8 => a[i], + 8 => F::ONE, + _ => F::ZERO, + }); + let h = hash_key_hash(k, h); + self.db.set_node(Key(h), Node(a)); + h + } + + /// Returns the value associated with the key if it is in the SMT, otherwise + /// returns 0. + pub fn get(&self, key: Key) -> U256 { + let keys = key.split(); + let mut level = 0; + let mut acc_key = Bits::empty(); + let mut r = Key(self.root.elements); + + while !r.0.iter().all(F::is_zero) { + let sibling = self.db.get_node(&r).unwrap(); + if sibling.is_one_siblings() { + let found_val_a: [F; 8] = self + .db + .get_node(&Key(sibling.0[4..8].try_into().unwrap())) + .unwrap() + .0[0..8] + .try_into() + .unwrap(); + let found_rem_key = Key(sibling.0[0..4].try_into().unwrap()); + let found_val = limbs2f(found_val_a); + let found_key = Key::join(acc_key, found_rem_key); + return if found_key == key { + assert_eq!( + found_val, + self.kv_store.get(&key).copied().unwrap_or_default() + ); + found_val + } else { + assert!(self + .kv_store + .get(&key) + .copied() + .unwrap_or_default() + .is_zero()); + U256::zero() + }; + } else { + let b = keys.get_bit(level as usize); + r = Key(sibling.0[b as usize * 4..(b as usize + 1) * 4] + .try_into() + .unwrap()); + acc_key.push_bit(b); + level += 1; + } + } + unreachable!() + } + + /// Set the value associated with the key in the SMT. + /// If the value is 0 and the key is in the SMT, the key is removed from the + /// SMT. Reference implementation in https://github.com/0xPolygonHermez/zkevm-commonjs/blob/main/src/smt.js. + pub fn set(&mut self, key: Key, value: U256) { + if value.is_zero() { + self.kv_store.remove(&key); + } else { + self.kv_store.insert(key, value); + } + let mut r = Key(self.root.elements); + let mut new_root = self.root; + let keys = key.split(); + let mut level = 0isize; + let mut acc_key = Bits::empty(); + let mut found_key = None; + let mut found_rem_key = None; + let mut found_old_val_h = None; + let mut siblings = vec![]; + + while !r.0.iter().all(F::is_zero) { + let sibling = self.db.get_node(&r).unwrap(); + siblings.push(*sibling); + if sibling.is_one_siblings() { + found_old_val_h = Some(sibling.0[4..8].try_into().unwrap()); + let found_val_a: [F; 8] = + self.db.get_node(&Key(found_old_val_h.unwrap())).unwrap().0[0..8] + .try_into() + .unwrap(); + found_rem_key = Some(Key(sibling.0[0..4].try_into().unwrap())); + let _found_val = limbs2f(found_val_a); + found_key = Some(Key::join(acc_key, found_rem_key.unwrap())); + break; + } else { + let b = keys.get_bit(level as usize); + r = Key(sibling.0[b as usize * 4..(b as usize + 1) * 4] + .try_into() + .unwrap()); + acc_key.push_bit(b); + level += 1; + } + } + + level -= 1; + if !acc_key.is_empty() { + acc_key.pop_next_bit(); + } + + if value.is_zero() { + if let Some(found_key) = found_key { + if key == found_key { + if level >= 0 { + let i = (keys.get_bit(level as usize) as usize) * 4; + siblings[level as usize].0[i..i + 4].copy_from_slice(&[F::ZERO; 4]); + let mut u_key = get_unique_sibling(siblings[level as usize]); + + if u_key >= 0 { + let k = siblings[level as usize].0 + [u_key as usize * 4..u_key as usize * 4 + 4] + .try_into() + .unwrap(); + siblings[(level + 1) as usize] = *self.db.get_node(&Key(k)).unwrap(); + if siblings[(level + 1) as usize].is_one_siblings() { + let val_h = + siblings[(level + 1) as usize].0[4..8].try_into().unwrap(); + let val_a = self.db.get_node(&Key(val_h)).unwrap().0[0..8] + .try_into() + .unwrap(); + let r_key = + siblings[(level + 1) as usize].0[0..4].try_into().unwrap(); + + let _val = limbs2f(val_a); + + assert!(u_key == 0 || u_key == 1); + let ins_key = Key::join(acc_key.add_bit(u_key != 0), Key(r_key)); + while (u_key >= 0) && (level >= 0) { + level -= 1; + if level >= 0 { + u_key = get_unique_sibling(siblings[level as usize]); + } + } + + let old_key = ins_key.remove_key_bits((level + 1) as usize); + let old_leaf_hash = self.hash_key_hash(old_key, val_h); + + if level >= 0 { + let b = keys.get_bit(level as usize) as usize * 4; + siblings[level as usize].0[b..b + 4] + .copy_from_slice(&old_leaf_hash); + } else { + new_root = HashOut { + elements: old_leaf_hash, + }; + } + } + } else { + panic!() + } + } else { + new_root = HashOut { + elements: [F::ZERO; 4], + }; + } + } + } + } else if let Some(found_key) = found_key { + if key == found_key { + let new_val_h = self.hash0(f2limbs(value)); + let new_leaf_hash = self.hash_key_hash(found_rem_key.unwrap(), new_val_h); + if level >= 0 { + let i = (keys.get_bit(level as usize) as usize) * 4; + siblings[level as usize].0[i..i + 4].copy_from_slice(&new_leaf_hash); + } else { + new_root = HashOut { + elements: new_leaf_hash, + }; + } + } else { + let mut node = [F::ZERO; 8]; + let mut level2 = level + 1; + let found_keys = found_key.split(); + while keys.get_bit(level2 as usize) == found_keys.get_bit(level2 as usize) { + level2 += 1; + } + let old_key = found_key.remove_key_bits(level2 as usize + 1); + let old_leaf_hash = self.hash_key_hash(old_key, found_old_val_h.unwrap()); + + let new_key = key.remove_key_bits(level2 as usize + 1); + let new_val_h = self.hash0(f2limbs(value)); + let new_leaf_hash = self.hash_key_hash(new_key, new_val_h); + + let b = keys.get_bit(level2 as usize) as usize * 4; + let bb = found_keys.get_bit(level2 as usize) as usize * 4; + node[b..b + 4].copy_from_slice(&new_leaf_hash); + node[bb..bb + 4].copy_from_slice(&old_leaf_hash); + + let mut r2 = self.hash0(node); + level2 -= 1; + + while level2 != level { + node = [F::ZERO; 8]; + let b = keys.get_bit(level2 as usize) as usize * 4; + node[b..b + 4].copy_from_slice(&r2); + + r2 = self.hash0(node); + level2 -= 1; + } + + if level >= 0 { + let b = keys.get_bit(level as usize) as usize * 4; + siblings[level as usize].0[b..b + 4].copy_from_slice(&r2); + } else { + new_root = HashOut { elements: r2 }; + } + } + } else { + let new_key = key.remove_key_bits((level + 1) as usize); + let new_val_h = self.hash0(f2limbs(value)); + let new_leaf_hash = self.hash_key_hash(new_key, new_val_h); + + if level >= 0 { + let b = keys.get_bit(level as usize) as usize * 4; + siblings[level as usize].0[b..b + 4].copy_from_slice(&new_leaf_hash); + } else { + new_root = HashOut { + elements: new_leaf_hash, + }; + } + } + siblings.truncate((level + 1) as usize); + + while level >= 0 { + new_root = F::poseidon(siblings[level as usize].0)[0..4] + .try_into() + .unwrap(); + self.db + .set_node(Key(new_root.elements), siblings[level as usize]); + level -= 1; + if level >= 0 { + let b = keys.get_bit(level as usize) as usize * 4; + siblings[level as usize].0[b..b + 4].copy_from_slice(&new_root.elements); + } + } + self.root = new_root; + } + + /// Delete the key in the SMT. + pub fn delete(&mut self, key: Key) { + self.kv_store.remove(&key); + self.set(key, U256::zero()); + } + + /// Set the key to the hash in the SMT. + /// Needs to be called before any call to `set` to avoid issues. + pub fn set_hash(&mut self, key: Bits, hash: HashOut) { + let mut r = Key(self.root.elements); + let mut new_root = self.root; + let mut level = 0isize; + let mut siblings = vec![]; + + for _ in 0..key.count { + let sibling = self.db.get_node(&r).unwrap_or(&Node([F::ZERO; 12])); + siblings.push(*sibling); + if sibling.is_one_siblings() { + panic!("Hit a leaf node."); + } else { + let b = key.get_bit(level as usize); + r = Key(sibling.0[b as usize * 4..(b as usize + 1) * 4] + .try_into() + .unwrap()); + level += 1; + } + } + level -= 1; + assert_eq!( + r, + Key([F::ZERO; 4]), + "Tried to insert a hash node in a non-empty node." + ); + + if level >= 0 { + let b = key.get_bit(level as usize) as usize * 4; + siblings[level as usize].0[b..b + 4].copy_from_slice(&hash.elements); + } else { + new_root = hash; + } + siblings.truncate((level + 1) as usize); + + while level >= 0 { + new_root = F::poseidon(siblings[level as usize].0)[0..4] + .try_into() + .unwrap(); + self.db + .set_node(Key(new_root.elements), siblings[level as usize]); + level -= 1; + if level >= 0 { + let b = key.get_bit(level as usize) as usize * 4; + siblings[level as usize].0[b..b + 4].copy_from_slice(&new_root.elements); + } + } + self.root = new_root; + } + + /// Serialize and prune the SMT into a vector of U256. + /// Starts with a [0, 0] for convenience, that way `ptr=0` is a canonical + /// empty node. Therefore the root of the SMT is at `ptr=2`. + /// `keys` is a list of keys whose prefixes will not be hashed-out in the + /// serialization. + /// Serialization rules: + /// ```pseudocode + /// serialize( HashNode { h } ) = [HASH_TYPE, h] + /// serialize( InternalNode { left, right } ) = [INTERNAL_TYPE, serialize(left).ptr, serialize(right).ptr] + /// serialize( LeafNode { rem_key, value } ) = [LEAF_TYPE, rem_key, value] + /// ``` + pub fn serialize_and_prune, I: IntoIterator>( + &self, + keys: I, + ) -> Vec { + let mut v = vec![U256::zero(); 2]; // For empty hash node. + let key = Key(self.root.elements); + + let mut keys_to_include = HashSet::new(); + for key in keys.into_iter() { + let mut bits = key.borrow().split(); + loop { + keys_to_include.insert(bits); + if bits.is_empty() { + break; + } + bits.pop_next_bit(); + } + } + + serialize(self, key, &mut v, Bits::empty(), &keys_to_include); + if v.len() == 2 { + v.extend([U256::zero(); 2]); + } + v + } + + pub fn serialize(&self) -> Vec { + // Include all keys. + self.serialize_and_prune(self.kv_store.keys()) + } +} + +fn serialize( + smt: &Smt, + key: Key, + v: &mut Vec, + cur_bits: Bits, + keys_to_include: &HashSet, +) -> usize { + if key.0.iter().all(F::is_zero) { + return 0; // `ptr=0` is an empty node. + } + + if !keys_to_include.contains(&cur_bits) || smt.db.get_node(&key).is_none() { + let index = v.len(); + v.push(HASH_TYPE.into()); + v.push(key2u(key)); + index + } else if let Some(node) = smt.db.get_node(&key) { + if node.0.iter().all(F::is_zero) { + panic!("wtf?"); + } + + if node.is_one_siblings() { + let val_h = node.0[4..8].try_into().unwrap(); + let val_a = smt.db.get_node(&Key(val_h)).unwrap().0[0..8] + .try_into() + .unwrap(); + let rem_key = Key(node.0[0..4].try_into().unwrap()); + let val = limbs2f(val_a); + let index = v.len(); + v.push(LEAF_TYPE.into()); + v.push(key2u(rem_key)); + v.push(val); + index + } else { + let key_left = Key(node.0[0..4].try_into().unwrap()); + let key_right = Key(node.0[4..8].try_into().unwrap()); + let index = v.len(); + v.push(INTERNAL_TYPE.into()); + v.push(U256::zero()); + v.push(U256::zero()); + let i_left = + serialize(smt, key_left, v, cur_bits.add_bit(false), keys_to_include).into(); + v[index + 1] = i_left; + let i_right = + serialize(smt, key_right, v, cur_bits.add_bit(true), keys_to_include).into(); + v[index + 2] = i_right; + index + } + } else { + unreachable!() + } +} + +/// Hash a serialized state SMT, i.e., one where leaves hold accounts. +pub fn hash_serialize(v: &[U256]) -> HashOut { + _hash_serialize(v, 2) +} + +pub fn hash_serialize_u256(v: &[U256]) -> U256 { + hashout2u(hash_serialize(v)) +} + +fn _hash_serialize(v: &[U256], ptr: usize) -> HashOut { + assert!(v[ptr] <= u8::MAX.into()); + match v[ptr].as_u64() as u8 { + HASH_TYPE => u2h(v[ptr + 1]), + + INTERNAL_TYPE => { + let mut node = Node([F::ZERO; 12]); + for b in 0..2 { + let child_index = v[ptr + 1 + b]; + let child_hash = _hash_serialize(v, child_index.as_usize()); + node.0[b * 4..(b + 1) * 4].copy_from_slice(&child_hash.elements); + } + F::poseidon(node.0)[0..4].try_into().unwrap() + } + LEAF_TYPE => { + let rem_key = u2k(v[ptr + 1]); + let value = f2limbs(v[ptr + 2]); + let value_h = hash0(value); + let mut node = Node([F::ZERO; 12]); + node.0[8] = F::ONE; + node.0[0..4].copy_from_slice(&rem_key.0); + node.0[4..8].copy_from_slice(&value_h); + F::poseidon(node.0)[0..4].try_into().unwrap() + } + _ => panic!("Should not happen"), + } +} diff --git a/smt_trie/src/smt_test.rs b/smt_trie/src/smt_test.rs new file mode 100644 index 000000000..c086e17dc --- /dev/null +++ b/smt_trie/src/smt_test.rs @@ -0,0 +1,409 @@ +use ethereum_types::U256; +use plonky2::field::types::{Field, Sample}; +use plonky2::hash::hash_types::HashOut; +use rand::seq::SliceRandom; +use rand::{random, thread_rng, Rng}; + +use crate::bits::Bits; +use crate::db::Db; +use crate::smt::HASH_TYPE; +use crate::utils::hashout2u; +use crate::{ + db::MemoryDb, + smt::{hash_serialize, Key, Smt, F}, +}; + +#[test] +fn test_add_and_rem() { + let mut smt = Smt::::default(); + + let k = Key(F::rand_array()); + let v = U256(thread_rng().gen()); + smt.set(k, v); + assert_eq!(v, smt.get(k)); + + smt.set(k, U256::zero()); + assert_eq!(smt.root.elements, [F::ZERO; 4]); + + let ser = smt.serialize(); + assert_eq!(hash_serialize(&ser), smt.root); +} + +#[test] +fn test_add_and_rem_hermez() { + let mut smt = Smt::::default(); + + let k = Key([F::ONE, F::ZERO, F::ZERO, F::ZERO]); + let v = U256::from(2); + smt.set(k, v); + assert_eq!(v, smt.get(k)); + assert_eq!( + smt.root.elements, + [ + 16483217357039062949, + 6830539605347455377, + 6826288191577443203, + 8219762152026661456 + ] + .map(F::from_canonical_u64) + ); + + smt.set(k, U256::zero()); + assert_eq!(smt.root.elements, [F::ZERO; 4]); + + let ser = smt.serialize(); + assert_eq!(hash_serialize(&ser), smt.root); +} + +#[test] +fn test_update_element_1() { + let mut smt = Smt::::default(); + + let k = Key(F::rand_array()); + let v1 = U256(thread_rng().gen()); + let v2 = U256(thread_rng().gen()); + smt.set(k, v1); + let root = smt.root; + smt.set(k, v2); + smt.set(k, v1); + assert_eq!(smt.root, root); + + let ser = smt.serialize(); + assert_eq!(hash_serialize(&ser), smt.root); +} + +#[test] +fn test_add_shared_element_2() { + let mut smt = Smt::::default(); + + let k1 = Key(F::rand_array()); + let k2 = Key(F::rand_array()); + assert_ne!(k1, k2, "Unlucky"); + let v1 = U256(thread_rng().gen()); + let v2 = U256(thread_rng().gen()); + smt.set(k1, v1); + smt.set(k2, v2); + smt.set(k1, U256::zero()); + smt.set(k2, U256::zero()); + assert_eq!(smt.root.elements, [F::ZERO; 4]); + + let ser = smt.serialize(); + assert_eq!(hash_serialize(&ser), smt.root); +} + +#[test] +fn test_add_shared_element_3() { + let mut smt = Smt::::default(); + + let k1 = Key(F::rand_array()); + let k2 = Key(F::rand_array()); + let k3 = Key(F::rand_array()); + let v1 = U256(thread_rng().gen()); + let v2 = U256(thread_rng().gen()); + let v3 = U256(thread_rng().gen()); + smt.set(k1, v1); + smt.set(k2, v2); + smt.set(k3, v3); + smt.set(k1, U256::zero()); + smt.set(k2, U256::zero()); + smt.set(k3, U256::zero()); + assert_eq!(smt.root.elements, [F::ZERO; 4]); + + let ser = smt.serialize(); + assert_eq!(hash_serialize(&ser), smt.root); +} + +#[test] +fn test_add_remove_128() { + let mut smt = Smt::::default(); + + let kvs = (0..128) + .map(|_| { + let k = Key(F::rand_array()); + let v = U256(thread_rng().gen()); + smt.set(k, v); + (k, v) + }) + .collect::>(); + for &(k, v) in &kvs { + smt.set(k, v); + } + for &(k, _) in &kvs { + smt.set(k, U256::zero()); + } + assert_eq!(smt.root.elements, [F::ZERO; 4]); + + let ser = smt.serialize(); + assert_eq!(hash_serialize(&ser), smt.root); +} + +#[test] +fn test_should_read_random() { + let mut smt = Smt::::default(); + + let kvs = (0..128) + .map(|_| { + let k = Key(F::rand_array()); + let v = U256(thread_rng().gen()); + smt.set(k, v); + (k, v) + }) + .collect::>(); + for &(k, v) in &kvs { + smt.set(k, v); + } + for &(k, v) in &kvs { + assert_eq!(smt.get(k), v); + } + + let ser = smt.serialize(); + assert_eq!(hash_serialize(&ser), smt.root); +} + +#[test] +fn test_add_element_similar_key() { + let mut smt = Smt::::default(); + + let k1 = Key([F::ZERO; 4]); + let k2 = Key([F::from_canonical_u16(15), F::ZERO, F::ZERO, F::ZERO]); + let k3 = Key([F::from_canonical_u16(31), F::ZERO, F::ZERO, F::ZERO]); + let v1 = U256::from(2); + let v2 = U256::from(3); + smt.set(k1, v1); + smt.set(k2, v1); + smt.set(k3, v2); + + let expected_root = [ + 442750481621001142, + 12174547650106208885, + 10730437371575329832, + 4693848817100050981, + ] + .map(F::from_canonical_u64); + assert_eq!(smt.root.elements, expected_root); + + let ser = smt.serialize(); + assert_eq!(hash_serialize(&ser), smt.root); +} + +#[test] +fn test_leaf_one_level_depth() { + let mut smt = Smt::::default(); + + let k0 = Key([ + 15508201873038097485, + 13226964191399612151, + 16289586894263066011, + 5039894867879804772, + ] + .map(F::from_canonical_u64)); + let k1 = Key([ + 844617937539064431, + 8280782215217712600, + 776954566881514913, + 1946423943169448778, + ] + .map(F::from_canonical_u64)); + let k2 = Key([ + 15434611863279822111, + 11975487827769517766, + 15368078704174133449, + 1970673199824226969, + ] + .map(F::from_canonical_u64)); + let k3 = Key([ + 4947646911082557289, + 4015479196169929139, + 8997983193975654297, + 9607383237755583623, + ] + .map(F::from_canonical_u64)); + let k4 = Key([ + 15508201873038097485, + 13226964191399612151, + 16289586894263066011, + 5039894867879804772, + ] + .map(F::from_canonical_u64)); + + let v0 = U256::from_dec_str( + "8163644824788514136399898658176031121905718480550577527648513153802600646339", + ) + .unwrap(); + let v1 = U256::from_dec_str( + "115792089237316195423570985008687907853269984665640564039457584007913129639934", + ) + .unwrap(); + let v2 = U256::from_dec_str( + "115792089237316195423570985008687907853269984665640564039457584007913129639935", + ) + .unwrap(); + let v3 = U256::from_dec_str("7943875943875408").unwrap(); + let v4 = U256::from_dec_str( + "35179347944617143021579132182092200136526168785636368258055676929581544372820", + ) + .unwrap(); + + smt.set(k0, v0); + smt.set(k1, v1); + smt.set(k2, v2); + smt.set(k3, v3); + smt.set(k4, v4); + + let expected_root = [ + 13590506365193044307, + 13215874698458506886, + 4743455437729219665, + 1933616419393621600, + ] + .map(F::from_canonical_u64); + assert_eq!(smt.root.elements, expected_root); + + let ser = smt.serialize(); + assert_eq!(hash_serialize(&ser), smt.root); +} + +#[test] +fn test_no_write_0() { + let mut smt = Smt::::default(); + + let k1 = Key(F::rand_array()); + let k2 = Key(F::rand_array()); + let v = U256(thread_rng().gen()); + smt.set(k1, v); + let root = smt.root; + smt.set(k2, U256::zero()); + assert_eq!(smt.root, root); + + let ser = smt.serialize(); + assert_eq!(hash_serialize(&ser), smt.root); +} + +#[test] +fn test_set_hash_first_level() { + let mut smt = Smt::::default(); + + let kvs = (0..128) + .map(|_| { + let k = Key(F::rand_array()); + let v = U256(random()); + smt.set(k, v); + (k, v) + }) + .collect::>(); + for &(k, v) in &kvs { + smt.set(k, v); + } + + let first_level = smt.db.get_node(&Key(smt.root.elements)).unwrap(); + let mut hash_smt = Smt::::default(); + let zero = Bits { + count: 1, + packed: U256::zero(), + }; + let one = Bits { + count: 1, + packed: U256::one(), + }; + hash_smt.set_hash( + zero, + HashOut { + elements: first_level.0[0..4].try_into().unwrap(), + }, + ); + hash_smt.set_hash( + one, + HashOut { + elements: first_level.0[4..8].try_into().unwrap(), + }, + ); + + assert_eq!(smt.root, hash_smt.root); + + let ser = hash_smt.serialize(); + assert_eq!(hash_serialize(&ser), hash_smt.root); +} + +#[test] +fn test_set_hash_order() { + let mut smt = Smt::::default(); + + let level = 4; + + let mut khs = (1..1 << level) + .map(|i| { + let k = Bits { + count: level, + packed: i.into(), + }; + let hash = HashOut { + elements: F::rand_array(), + }; + (k, hash) + }) + .collect::>(); + for &(k, v) in &khs { + smt.set_hash(k, v); + } + let key = loop { + // Forgive my laziness + let key = Key(F::rand_array()); + let keys = key.split(); + if (0..level).all(|i| !keys.get_bit(i)) { + break key; + } + }; + let val = U256(random()); + smt.set(key, val); + + let mut second_smt = Smt::::default(); + khs.shuffle(&mut thread_rng()); + for (k, v) in khs { + second_smt.set_hash(k, v); + } + second_smt.set(key, val); + + assert_eq!(smt.root, second_smt.root); + + let ser = second_smt.serialize(); + assert_eq!(hash_serialize(&ser), second_smt.root); +} + +#[test] +fn test_serialize_and_prune() { + let mut smt = Smt::::default(); + + for _ in 0..128 { + let k = Key(F::rand_array()); + let v = U256(random()); + smt.set(k, v); + } + + let ser = smt.serialize(); + assert_eq!(hash_serialize(&ser), smt.root); + + let subset = { + let r: u128 = random(); + smt.kv_store + .keys() + .enumerate() + .filter_map(|(i, k)| if r & (1 << i) != 0 { Some(*k) } else { None }) + .collect::>() + }; + + let pruned_ser = smt.serialize_and_prune(subset); + assert_eq!(hash_serialize(&pruned_ser), smt.root); + assert!(pruned_ser.len() <= ser.len()); + + let trivial_ser = smt.serialize_and_prune::>(vec![]); + assert_eq!( + trivial_ser, + vec![ + U256::zero(), + U256::zero(), + HASH_TYPE.into(), + hashout2u(smt.root) + ] + ); + assert_eq!(hash_serialize(&trivial_ser), smt.root); +} diff --git a/smt_trie/src/utils.rs b/smt_trie/src/utils.rs new file mode 100644 index 000000000..267b6b8e9 --- /dev/null +++ b/smt_trie/src/utils.rs @@ -0,0 +1,89 @@ +use ethereum_types::U256; +use plonky2::field::types::{Field, PrimeField64}; +use plonky2::hash::poseidon::Poseidon; + +use crate::smt::{HashOut, Key, Node, F}; + +/// Returns `Poseidon(x, [0,0,0,0])`. +pub(crate) fn hash0(x: [F; 8]) -> [F; 4] { + F::poseidon(std::array::from_fn(|i| if i < 8 { x[i] } else { F::ZERO }))[0..4] + .try_into() + .unwrap() +} + +/// Returns `Poseidon(x, [1,0,0,0])`. +pub(crate) fn hash1(x: [F; 8]) -> [F; 4] { + F::poseidon(std::array::from_fn(|i| match i { + j if j < 8 => x[i], + 8 => F::ONE, + _ => F::ZERO, + }))[0..4] + .try_into() + .unwrap() +} + +/// Returns `Poseidon(key || h, [1,0,0,0])`. +pub(crate) fn hash_key_hash(k: Key, h: [F; 4]) -> [F; 4] { + hash1(std::array::from_fn( + |i| if i < 4 { k.0[i] } else { h[i - 4] }, + )) +} + +/// Split a U256 into 8 32-bit limbs in little-endian order. +pub(crate) fn f2limbs(x: U256) -> [F; 8] { + std::array::from_fn(|i| F::from_canonical_u32((x >> (32 * i)).low_u32())) +} + +/// Pack 8 32-bit limbs in little-endian order into a U256. +pub(crate) fn limbs2f(limbs: [F; 8]) -> U256 { + limbs + .into_iter() + .enumerate() + .fold(U256::zero(), |acc, (i, x)| { + acc + (U256::from(x.to_canonical_u64()) << (i * 32)) + }) +} + +/// Convert a `HashOut` to a `U256`. +pub fn hashout2u(h: HashOut) -> U256 { + key2u(Key(h.elements)) +} + +/// Convert a `Key` to a `U256`. +pub fn key2u(key: Key) -> U256 { + U256(key.0.map(|x| x.to_canonical_u64())) +} + +/// Convert a `U256` to a `Hashout`. +pub(crate) fn u2h(x: U256) -> HashOut { + HashOut { + elements: x.0.map(F::from_canonical_u64), + } +} + +/// Convert a `U256` to a `Key`. +pub(crate) fn u2k(x: U256) -> Key { + Key(x.0.map(F::from_canonical_u64)) +} + +/// Given a node, return the index of the unique non-zero sibling, or -1 if +/// there is no such sibling. +pub(crate) fn get_unique_sibling(node: Node) -> isize { + let mut nfound = 0; + let mut fnd = 0; + for i in (0..12).step_by(4) { + if !(node.0[i].is_zero() + && node.0[i + 1].is_zero() + && node.0[i + 2].is_zero() + && node.0[i + 3].is_zero()) + { + nfound += 1; + fnd = i as isize / 4; + } + } + if nfound == 1 { + fnd + } else { + -1 + } +} diff --git a/trace_decoder/Cargo.toml b/trace_decoder/Cargo.toml index 08ebdcf48..0155e8126 100644 --- a/trace_decoder/Cargo.toml +++ b/trace_decoder/Cargo.toml @@ -2,7 +2,7 @@ name = "trace_decoder" description = "Processes trace payloads into Intermediate Representation (IR) format." authors = ["Polygon Zero "] -version = "0.3.1" +version = "0.4.0" edition.workspace = true license.workspace = true repository.workspace = true @@ -10,25 +10,27 @@ homepage.workspace = true keywords.workspace = true [dependencies] -bytes = { workspace = true } -ciborium = "0.2.1" -ciborium-io = "0.2.1" +ciborium = { workspace = true } enum-as-inner = { workspace = true } -enumn = "0.1.12" +enumn = { workspace = true } ethereum-types = { workspace = true } hex = { workspace = true } -hex-literal = { workspace = true } keccak-hash = { workspace = true } log = { workspace = true } rlp = { workspace = true } -rlp-derive = { workspace = true } serde = { workspace = true } -serde_with = "3.4.0" +serde_with = { workspace = true } thiserror = { workspace = true } # Local dependencies -mpt_trie = { version = "0.2.1", path = "../mpt_trie" } -evm_arithmetization = { version = "0.1.3", path = "../evm_arithmetization" } +mpt_trie = { workspace = true } +evm_arithmetization = { workspace = true } [dev-dependencies] -pretty_env_logger = "0.5.0" +criterion = { workspace = true } +pretty_env_logger = { workspace = true } +serde_json = { workspace = true } + +[[bench]] +name = "block_processing" +harness = false diff --git a/trace_decoder/README.md b/trace_decoder/README.md index 948caa603..6c996a310 100644 --- a/trace_decoder/README.md +++ b/trace_decoder/README.md @@ -6,7 +6,7 @@ A flexible protocol that clients (eg. full nodes) can use to easily generate blo Temporary [high-level overview](docs/usage_seq_diagrams.md). The specification itself is in the repo [here](trace_decoder/src/trace_protocol.rs). -Because processing the incoming proof protocol payload is not a resource bottleneck, the design is not worrying too much about performance. Instead, the core focus is flexibility in clients creating their own implementation, where the protocol supports multiple ways to provide different pieces of data. For example, there are multiple different formats available to provide the trie pre-images in, and the implementor can choose whichever is closest to its own internal data structures. +Because processing the incoming proof protocol payload is not a resource bottleneck, the design is not worrying too much about performance. Instead, the core focus is flexibility in clients creating their own implementation, where the protocol supports multiple ways to provide different pieces of data. For example, there are multiple different formats available to provide the trie pre-images in, and the implementer can choose whichever is closest to its own internal data structures. TODO diff --git a/trace_decoder/benches/block_input.json b/trace_decoder/benches/block_input.json new file mode 100644 index 000000000..7656ff8ea --- /dev/null +++ b/trace_decoder/benches/block_input.json @@ -0,0 +1,9671 @@ +{ + "block_trace": { + "trie_pre_images": { + "combined": { + "compact": "0x01031e85b5f886ade8ee9e7e210f16a27adb24026e002d434ca4735a1ec145800b6a034eb6be299b29fbe703de9dce22db954687352bd16a7b91d8d554972e78cf95f20360fc6b8d1e9fe8eb75743177dcfec441ad3b6e2fdccf19a494858110a566d2da03924724e99479ddc7044698f36ffcee35143b1694ada322c93fa9e76487eb8eb50390af61f6f8c569a4820b206ca03eb0655a1cc5bc22fce5cddd68b51702165c2c033298c49c7c0db336da97d18bec56d3c86b302ec811d71fff171be56dc047488c0370dead8dbffe125a389ca1fc77248ae23fe5dc62f3586d006a5a86338bd38e9103e4ee3d1df854f70c5ea61aaf229661f1717656fae9a07018c66d7b2717c6ff25039486ff07dc731ae56bc80b3a44782495e86be48c2044c914f1a75bb6e4d472de0323a2e6e875b2a7b3bdfc3aba5d876d1848f9adcb8fe65eb559c15e2600470364037b6bb302deb13b92121e3d1da58d066f58a48d2f70d95dd6fd78a6ea95d7559303f1e3a9fe72df63a6333c76859b5b2ad0739dab7b10188e2549211336888324c4032988eff038159d0a4bbd1465a867f6cfb18391f698c10635aba88310897d727703613da70a775b9f8290961f5d6bedad2cb015cab9d07570bb0b6fdaf161fa609103fb3efad208e94081d6182a28eae9b6a4d19b438531e8aabb9a578bce1eaf887703b4988003c114b79243e8dce94544c0943e25a81834a7515a680250643f9ec6ca033744baf997b39aee100b681a9cfbaeb0d259eb2e82f131a6d51b821f9e1bcec503472178627356468437164bbd8feeb8e4caf6e62b3f653283ce836da1cb794cb303a5ae0995b6ccf02259b690a8d9eacb0d0b0f76063406ac8e96410b67c4ffe62e03cdb0358913eeb17a08719462a3ce4e03b9a743407cc3b539d7b89a682fc3dd030311725a5db9ba15799e6c8c68dcf95a1b3c89b410261b646115a6a90dfef06894039b3c47410275741437d40e25bb3ed533ffbc35e94afb79882cf10e87e1b75db9031421668d71829ab39ffd2152b67d722eacf9da3e37f391f48e0d70933b8815200387f0657b333570ae3807b4365dae3cf275296d57fa26600b5b66d342cccafe7e03b7d7244813a0d16f857fd33c7624179e6088d7df4c49e9eeeda4f37fdfec763f031f884a29218bf687aecb90e8653f8fe0df251430b16e3e1a49379cbd449d045f05581e03a9d63ae035921552ebedcfa9a32511745453671b6d69d334a1a3a92f90040103034cabb0f198faa08f46a121034601299852bf2cc5644d692f74ae34511b573c05581e03e09a0be45a13fc64423123cf7cb7788201236236a0df5e9753667bd38004020330d48c7f9098573d652f0b71ed5f14a03f057dca4576bdf5c516b12aa17947c60605581d020058aacc8c38c9be04629c9b8d5b8c454691cc24039caa108f956dff07011bffffffffffffffff05581d02a2f364303cd585e0fcba15200031f63f5a2ebbf241fee0b24ff932470c13483d78704da649e48002190408036fa51610d9c1abfcff2aceba861aed60f4a1cb556339788bb63318fb7a8676a403ce93449ece3693777d4eedcbbc5b7dfb829fd11f776e839644dbe49a5de05a9e03f5134fff1d2a2726560cd3f8d31b12eb936f9159b41ef5b29c87b7499665be0305581e03cebe7a31e446fa7340d6c96dc309b9f3ceac38e935dac5b54b334f58400c02470eb7f466e2ec0005581e0394858e455d35438cea42ce144bb53ec4ffdd9024ceb2d2a5f8459081900c02470170586922500002197c570357ea99245997ba77b0379d07d536b644260eb03f4894ad74903385d92b7a32520346b8729d2f5cab6a9e03f0cd93449e4ad5e6f65d17a28a04fa2ac55baff2f16303fd59c1f1c6a13e5f313f56a17c30d9e13f6b9c47641e465c8739285cbb9f3c15034e079b27a365268d75a3bda5a154cbea23a130e64125b7e631b8d8e29010526e03590af9ecfac8053af358001fc9b455f263169dbec5848ac49a5d3344dcfa223a033e4e7171067c7ca2af331a3d8187995edbfbb6a94fd0a9208d0728323ed5695503a0c8d2478a9190eed1ef97ecad66f59f1a6dcb84508a628329a15e73cf0890030219ffff03243ed71cfc684ade7e69f5056520527f57435ae87d7bef96d79367dfae9d7a9d03cf5732c719db4b3b5d5ef1adde7d6a34e9891c729c1869812182acad0d6baa0b0320c5607871c64f6acbc28715487eb864d5304d825c1115f8cdef322a8bfe209703808d899411a2a9088a7653daa3b9d677b8d4cd1736db3b1c3270f882921c37d103e48c1f9cc6f8a95b33aadb8b89c7f73bc44ad48ce01684becb5a8280fcbe4e550348f7b5312bdb14fa9cd4e892b507ff3b86b61193bc91378f9a63244b0ad21ff603b609aa73896ce04552f7341a0025b393d2d83fd066d96e9e48468c408c069b6803831ce83b03f5b11299a7e726dbead5e04a97a85052b30562c792e7df0516594503eab7b533fc73a8e4db63c5cd032a60921e6a0e1030b1298b2fb7a0286524360f03510c4ea8435c95e1060505ddbf897b212c0a8b4daa95f82e18de4071d4557d760219ffff030ab17e41d6f0ab3ce3e784a06adae2f1fbb2ccd4eedeca7a1c9cc73d9997573403790807c1440c022f86fb98c25dc96039e41e36ac28c5f2ac7ab5297dc257c4320370b3e2d8088fd845bb3d9d10188d6cf0984fa3db2d8b2765064f85c542b5283b03565a74c4f0a45daccf254767a3e91ae2e8e9e796ea71183c3efafe7278c850d6030eb1baf5834e81c4a523edb9ef6835019ef93680f8dcfe96d10f1027a53ae6e103fb76deff0a08c69d8d4a91484bb0b3d93585a9f76a08231407afc173c15073610219ffff036754613966fe104a3b650dc9bce37c8924a699ddf1a2e783bf9d104a0282b3c3038d084bfeee8e62b07c2af056b955f1d8e58400a36edd053f76893eb19c31b141030527e28313c117c4e7093f0c62407e89b585e27ab531e143a8497082037f7849031665f90c92c0c4bd65c6eeff1423ec894261122cfe72fb89ebb933aa847d479203d2de41b36e6a0f33ffed200d12bdb4dae9cd8a2b893dd46d5cf35373fdf700d103eb9a914f19e7413397696791bff86ea708bd09388a0b0b2dd8464a8d0764baa1033fdf681b8338b4d0a448b527fd913bda9b8a6bbbb2074bc5158c60da26157c10037d02d6bb05b2d7ff137ed6460377e5479eff09fc3a07a110a565614ea6ebc49f031d3f1a35d6e2990d605ecb32c9be56f757a250b0de86b045537ec0f3f551aa94033e905eb39150d2c3e13f82dd50315e6963ea5715ede6b6c034656e7761e4b334034be60eb3e1a42e4a1004225ad50a49f495cf121ea395629e03409efb58936c690364878963d94584b72da4bb2402244ef93c3334f53274ec3d442f6d9bf2c3ecf503fd7a4e8d54f1125b2a68a4596ac5f7fe28bbd50a42054c6fd797539f88c97d2e0374b2fe9f92b0d537ec85fd26b63236d6924975190e904c9a5a7cb2ef25f59f3f03a990aa32e138bf4747e362a3267b9f3d4c98330404acb61fbc4b24863106c83e03ef5a806a2542ca6b4b6d3cc14d44b6c27760347d498d6010a972dd10c83e6830030c8913966342e000846fe1fb8f5fde6ecd1d2f3a5225609042e4d9a4600f88f803d4c6c007d3dfabec09a47d1c4071d338ab27dc91a64f0de08b16217799fe2b25034be2e5a804b8299e60f9dd89b7ef7451c990b7cc876fa5be1a26253c2cfdc735039e69820b13a15860083d6161b9fe61d6c69936dfde5b46325d8b2b30860be25e03ccd7f27c6a8db2235dba3d4aa3091817e2c207c68831661097ab9fc1fe0c0d0603337faafff181f60a02f7fe90f77b4254311f1aded0302ed14708dcb1e18aef0103ef31c970b9c95ae4b61b14cef795e12f28351a047c0a429ad6fcb1fa4c112a7503770642e582c41b457f7e22a898a8fd0a79976c334ea42b75c67f98bffcfefe7403a5501bb38823cd469131b4fd88d8b484da41a0812d089bc723a3fab7467998c603db9ca38fbb2f9d2a446a876e02b1907ae38bbc9872ef9777b9badd6d15307fdb036115064a071d2a531fbc05258436ce5a2147f5689979bdbb8af70929e08426fe04582d363d3d373d3d3d363d73391a04311e0bfc913ef6fa784773307c826104f05af43d82803e903d91602b57fd5bf303bfb222979b04faa57444c85cfe07a39b805cf26a06de239cf66147d4e9954ccc03d2922e24c8728b2d7704751e21b82b1f6ae92fbc4387d6f11eb9fa9c54fa349203bfc195dd7b92776da1b90744f6ee002dc476457a4ce17e26dc01439d76cd630d03883e00c73abf3120649fceb756168d50666a39a649855c13264f023205b7490f038aca54b07a0e7d8eb038690e4d68012a21cd4ef6a9b56acbb98e9ca0c9af3c7b034870e1bde49990ac658f8d67a9599fd3993f99314bc306de9372441bfd653f96036f93c5c776ac47f54511b86a050070978894bb204fea1d415fec611d7dec2f0a03d0fc494195f745b520d7a6689ac9fc9ee3e3a14dfbb06f3c338b5d840c73670303f9e6e2371ba63283efe14496c8154a61d7827625a1d199404d79158a58b4ce2800582003207e3389c5eecd4bbbd8d690b1a24612a16fe6885caaf69a3572c656758250581865ce9cbb7ef61cacd0c785eacdfe17649d1c5bcba676a858005820036669f7d3707a97c456cc8de7e62866f98837b8c9ae819f7e0675000e982990581865ce9cf780b1d1fc227bd3b68231fd8df82f883a9b014add0058200315894c301e2f5e791a76302672ce43f3516cb02999746530399295b989f9e049060000000000000001005820033e6d1d9d1ab0137807d2ca664516d583f9a637c04a29a5cc27158cdee2eca0581d020000000065ce9e83e6b9f6b9cc3dac911976008b131c2ca634d576c500582003a6df611b7645dee2e4bd804046b6b0eea7c8b0b9810d1a4731ff1170ae2860581d020000000065cea2a33055bc8db0a3998500bef8bc0980f03f47f8a3d4036cbe1c33ed69355316b7b922ab8a739cbc61c351359dd678bd2cec31c641e16300582003ae5ceb91bdd234ea91725c9a72e14ae2e2ef33b18e38ca679f55fb5afe0960581d020000000065ce9cdfeaeb42b770e662e653f0de9f4c6f1677102517b70058200310867ac7595d75836c6ee8ed7be54caaf19ee674a3b17e5bd636bd87367940581865ce9bfbc76cc21247b2dfa447f8e59951ce0a5ecf65830903994abf74e016fbb71d169f70bd03979c3d3ec0ca254226682d3d849959b4881c0058200394d33d09b273b939d6adb4cef17fae7c0f52cdc4af1e1ac75a1a711b91e92041010219d55f0317590994954356e6f15531b3db3cbedbafa6c6ce8ae43b2e828b45e6b6da7202037673a3a88dd053a55614ab3a2a95faa9b2fe74ef17da629694ca74a3d093164b03e6b36900e43b6027759acd4d25abf55455d2fc7e0367daf440276b1ef045b12303544ddf1b067432340e682858ed388009bc2e3d115fb62c4f6841438ed223b1e0034ea26d7ebf4ef2d8a6fe3ae06f842c40e10eb8a07534bf80f3d1a4aff4a639a303341541e498d452861a7dfecabb991375c09f73c07a87325ecd6e7c6e29bc9e9503013ea9676da47401b621edc45023433b8d1c1f11a2bcd91a6bc481da7b0160cb0219ffff03fd1c85689a57cd8eaeb059aedc4f3d4d139b8b04505bdd680d130f7e5aa21bce0312ba9fc8bec096b09fbc21a3fba085e770b793c1ad97b86b97275fd0b5491eb5037cdb7903bb6f52a13ffdee633474c32df9c16a472a216860e7fa9d2a19b4c1ca03b2abea5be3dffc48e01fece0b96ca4e81114e8daf64a47482fc82ead8efbb66e031457fa8d09bb8b716bd898a6979d1278fe17b86b5efe9407c2d3277d29853c3a03673a3afac880ea64338a3ab37be24fe95884ee985745d0b4fbe4c4e0d94afdfd037e44af8ce21a0db67b9b440467e2f1bf299e0c51414afe44d38055f8fd7c45a6039ce02bc84903da0561cd5e874754100e9269fa8c0a73f1a65aa8cdff50450575037cc6c3d3a07562def153996e404bbf4180e7828306e78fee5708f1b033ee72bd035b600877130270ebf07fdd225256a4d1c6d01c11cf1f36704a011215689a61f503dbb738bf57eebec7853927ea7f2e8d37fff70b6f3b0b253a67963a91b496a5d403aceb422ca8919aac10420ea5ab52307b12c0150990b056e9f92337b38505f67100582003ecd8c453f065e3125c6f8698a51ec5fab2e6f4a18b9e6cccc9214e9d034450581865cd29270c9d1a86bb304518d6718895dfcd006186e936bf005820034e4c0d7620f7d0b43224b9c810b2b6c4940ce0a53d5913ed32c85a80c0fe6041020058200314201c5d0f5c51892daed5ec5cfeeb9837a5c1a74dfa34898c55d380fbece0410203552aac22557c33913f3159d23c3ed454e6f0bff0c1138564f9a412a6d3377f4c0058200307cf9254e43f559f1b762faf9abb1c0d58bf74dd16b3f49a460bd66462c980581d020000000065cea15fa4ce7241b42df0d12b0fd44b674d9cbda4bc993c03b636a663f5c914b4aedce057ce3aa619e4eb99cbb976c245d42846abb0a7bcbf014109036a67d78b98590d805eb4a7a630b63615a262da20d7bc8d52fac94c157b95a60c00582003f0a6e0f1c1aa0fcdea0064d0c930a59e65828f6f0aa15ee3eab835779a0780581d020000000065cea183883b3dbeb71c19d6618461216fc5371f7a3a8f3a03ad3efe04e6cfe8c4c06c312a8bc6013b9cafcecb04879873e453aa0355c32fe303769036952362797f3cc8776eb0bc277d94b2ecbbe1c5e142f282166ecfc642e80219da6703b8286156fef25187ed85a413de48f6433abaf3ce708a020c40552242cf23eb0e03cf2678e71d2977f1240f6895481f0e8b06ea1298a71ebedb94b711b8d3abfe5c03cf846439d8b0048fc0f82ded1cb22c55b69f07db78262bb09d2ae4cb1f81d1bf03b6486be3530be9d42aa1c3d9cfe9e5b71f124348734ca0e4742a5d6ba3916a700219ffff036221997b8a7158291b6f89eafcdb725c27c25902133230b73a4e859d2d20955303f56f8461672e664706cb972a863161fde38c1b3358cb6fa66af454d349ebde5600582003b0333f67fa73714a15b105084d27caa8dba8790f4b4778cb96e21374f3be20490500000000000000000058200369e17be2e36ea1353e601b3686963ef29d7877742f34b83c2031fd16a4fd80581d020000000065ceb76705d88452ba2d7fb39462a3b5380793455169e00b005820036805f99ac8641c7ad420b878c4f1f75943bdfd48d4e2d0c4e4fa45aee37e40581865ce9cbb47b799c0f4240a84b2301606dd90acfa55f35354005820031107379139cdd0bc721fb834825f6a7498eccf4ee89e7c08c1e0354bf95070410300582003acb68abd7ea709b9c17eaf149746aac736fdfe034e2a9de095677f052a88a0581865ce9c1f84d680856334b33e0e5b038e5459eb80d18aaf7500582003e5e073ad452952941693e211bc81a7b0d41b28e557dd1e66da3e24b5a2cda0581d020000000065ceabc723d96859eeda1a911628070b071120639b769cc000581f029867f299fd13cbb91b74c679cfeb59946119269b2a71e7ebaa7808478c7b581865cd37aff8857fc8efb51a4f6fad1217602bd8a3bf596ad300581f026d10f4b7b401ce7e9efce032cc12c7defd8463d828023214f477ad46d769411902191400005820031ef0f30bef0ff3ce4b2309df1b304e8d00ca8c5801d7325c7cbfd1840f7a80581d020000000065ceee6fc602bbe267bb6d68efbc394e54d7b6faf035569502197ee20333cbc5a9ab37837d510a987b9d63274d7ec795c0c91c4ffc2c53dbf263c24f7f039cea487584e1a7cbe40d955a76050e0b8adc66b8f25b34bc469e7a7240adc356038efe3b782b3f8b78f789360618bf6f6aab4d72a4c5a620510a26d184cb5f0bdc03d716e12285e9492a38e32f1c147ad4bd1da0ccc7b8293956a2fb8c50581f35590319dfae67fc5c499859ebd160a7ed7f09cfcb3da194674dc674f8722250c226af00582003e56fa2de0055fdd3925fca8cdac6e0cf38572304153924491e1dbf5dbfff40490300000000000000030396bdea5cad1c6ae5ee3b446e5bdd82d74a2144c3603052904ea78a16b29e8ee0005820030924b6e1c000be21e14a160df969e4221f78a18af2472cec898c396e748680581d020000000065cea2a33055bc8db0a3998500bef8bc0980f03f47f8a3d40058200368f631c9e1c0340f68927c1d2aa41a129ba38ae8c6b110b6988d8a43aab890581d020000000065cf073b356ba80b538f83556dd49c8506fc16d6db0f24a600582003f4a28f93885c1bc95bee6fb8ad3e42133b1dff36da66f9fe4330f547bc03f0581d020000000065ce538f2797ea5cb0f027b85fe6d1cdb06c43e8d16c2664005820037e5f1bb98fba074b3f0cf4d75b369b43fb0db7f4471809cec6aebecfca0740581d020000000065cec9f7aee394a8e28be8b27d9a08e80c9a8ad6d72e52a600582003428265b62f719ff0d4fb1f738207adb86ac515f4d6a4e7a8fadcbd03e6bfe0581d020000000065cf3ccfd28a55f90d4676fa32d2abc4173fd81d7a2a6df8005820037968cb4f0eec12b57346e1b9198d0826ef5036147934104942c574bcb941f0581865ce9cc7ab4ce2a08cbea809692218dd7841f681b80069a900582003ec655cb41401fbf7f33466ec84a6b961f2706904e85c0078d1b7fe586e9e50490a000000000000000a0058200391a36d8b1a2d281f801521ffadfb4ffcbc29af86ea3621f269930b31fbb720581d020000000065cf5b833499543d5c9a4a3e16394b25bbee91e810e7ee0f0219dcbc03adc6890954c2e58c4cd31c88e2584f01984e80a330772d1a2a40e2ad60432c7a0362d67b8b1d42af2b4bebe39458e3feff52cccccad785cd11b59a9818521ad5e0037f4993647315e8c3e99b5fc9420058a7c2f9d66606010d38817fc202503d248303b266369f85c096daa1d0d982e66dcc9bec995c53dfc390f006da4d713b8f5dc303f6ee956b4ee388c411abd19389123e4dac96c29c8847dfd4c61f81ef29510a40005820038aaebcb3a8ab11cccbaef15a8a101a56dd9849627e81fa8873fda1c7b20cc04101005820038bb0f1002b6671537fffe72186a33e3df218f351faaf62c710c76875973be04102005820035725c991ec2f53fd7146dfbe4641eabf8db773a852276ffb26dd24a53c9520581865cb659b738025f325e6ab76686cc15df07291062907092c00582003914077b20a94f76b561b4326a692a2c7147e0fc5c19cbfdf5736e2e25fc62041010058200384469096bc1b441bd2d179993be252a9c05952728ac7ee0492c199a7fd9740490500000000000000050058200300167d0474008623cb911d842fc0d09d2ec3e7a08244cb1a3a969e98131c40581d020000000065cbb44375f7e47437580104bb1b6cc6cc4d9a325b23f14800582003d7f6803df911c63676ce797e077380dd71e533675f4e88999c4fc25dddf690581d020000000065cec3d31db2f40042d20e485032a652672f334ffe404e6100582003dfab5e4f6ce1943be60b6b2fad24cb586aeb701ebebfa215f7382f96508a50581d020000000065cec9d3aee394a8e28be8b27d9a08e80c9a8ad6d72e52a60058200339443ff17244ec3f0435d725d2be653347d4ebfafacc42bd31ace62b4a367049050000000000000005005820037a9c6741c4bf63c336d4565b8d0465c5d97ff0a2fb6ddabc40ad4cdecc8490410103132fee91ccc21334d18d3a23e368c4b2bed0112c833be491d559d8c0a397595e0058200338559972d8fba61f1ead3daba18b8034ba00eedc8d6bdbb653cd72c3029830581865cce0371005dce4211c7293b42453e711e5bcf4b7865da10219afde0390c1a485054b4451bad05a561203b847ab192738204a5d783ea6c517313885ce03377403cded75373c1d5eaecc2f6a26e5452086e91d756f0fc968308b629c116e0328462cff75ffb3370edbcd449adda3f0ea15962f765863922c077ffe016ad2be0219ffff03b52933b0e989ec80afe64ed0f90c7e1162dc6302c84721cf1c4dca92ba06364c0322f9a65d9715d7501a6dbaf3235f9d1fa508b2acbf41f8d4c8c29d445e8d7fe603ac1722825af0008897a08379bd1a2cfc30e311a9bbd16464a987950c593d80670311fe0a74eb7f3d524ba33fee36329ed510da6dcaccf9688650c5d0f86977aa8903c520e9108130081ea4fd42d4c7f52bc70b3aedb1cdaf532dc36ede3bca7116d103dc63ac667fc274abcaf1e2cccca1b7f58ac748d8cbc2a8d47748ca4506223d1f03987ef615513f088ec2eae55b7f4690a90f0a0a915d27500b8ffe245fc7f24cf003fedbad5dab84e68c06ddc9158d1f64c7be3814f3317fbec718b67d0c8c4ed406035da18c1f5c6ba57c6704e6aca5fe4952dd191f71faa4c59f76eabe639891aa7003fb4b8e2d0097f99e7946168b62323b3e2244c78d3b2cbe5f685ad3525d27d5b2030f7d910fd24fb60fec104fe51f1b23bb9d531e21ada81a9af7ced0cd24641a140307f1b7cd573f88ebf5af63364425a596cb14bd3e147f7a85f2fefd3f16b186830366ed08039519fb52189bd7088275e61a9caab76dc85ccdf985ff4a547463381b039e8a2291c99b468919270340dea9d99cc894d4f460d72996db9b03a918c57f6203336b0b9a7080668de6f9ef4d7ca5934ab9b420ed03fd42eb10ff4006dfdfcbc500582003abf8395e4d4c5597ea6bdc82b78c2c89d6625c6716039ddc75d0f568650aa0581d020000000065ceae5bf0b7b9aebde850472655c3d8a8462048ed81daec0058200393f885c53dd5fc9da3e922f74a274d4d5daae862c3e007e62fe0494c7a11a0581865cc8703a40557d86a6eec7aadc18a34561fdf37790f4a1b005820030a76e5f704b26d3c9ce6e309c9ea6fb34e06ed8c6690eb4fe0a131ec9b0180581d020000000065cf5b2368509acec5ebb895340d526e73254614a7999c50039abfb8edfa38b1ce7b6db828821bf278978472cb80f746b66a865b652c44d4dd005820037effda75305de95eb9f775ba59591ab4ecf612e180592c43c79cee231ab250490a000000000000000a0385ebae1185cba3d546b1e3fc29190981dd1c960935ba6c2a98c55d30d12811fc02199a5f036e366bbe87ac708fd1802f00eb0a4d2d2f86bd01f295d218ba25e0cfd3ee114903cb34dd80d9468d34a812080561bedb21c873093746776146883d82f539fc674703648218b669a91fa2752adeb80033b4f5c652af31d9f41abf13982d41a61b2aaa034d0f92b597516e73caee0d5d8c59eaa45dd6836f5e428419f201d5a4a65db8c6032220a2f31644e3cbfc0c1ed7c960d64a59498f3532331de0d6c03e7ec2a52ac80219ffff0390567d09e948ebafe0b543f64c56007d220a200eb2ccbf914c88b153074d174403530574140190fab331a834ce66a87779951c879779f75cf28026c8ce4b9595d7038e5bf6ed97632980635e98d1f8a837f8e706bbd358f022a13b733a711ae597e9039e2bd7d2e54c0a78a28de19a877e123a70a1a9c2a01395f48f85925b970530b903d621fab7016f1e5ca5c57da598f82f55a065fe09fbf558816b8bd57bc63ace02032296e61f24f3f203147f8eb048bcfeb9698f70819736a046e37f0098e63e8a1203ee028e811ca442fb8b1e2a9624bad8d85ed25d55fb23d2d194f0a8bbbc5af05403712702ad5b63fde58837710151151edcf7f2a76b3f5bbc76661facebbce108cc03edadebe95a4703e4a216a4ffa8ce5f5cb0e21370bae63edf3ded62dc9bee25170319cbf0e20ff6a35bcfbd5dde1bd4809c436556fe074399ca4242d0b4917c46d603aca6dcd16597006ff906bff1db8307e9a8858960a547b3470a4744737febb14f00582003d22113b37e13adca95f91701a795cc1de4770ad6463146861c41ef630c2e30581d020000000065ceab7f3ee1c068fc9653489a5d03ab925047efeeb4bc2600582003de4e17aff35bade0cc33fb2d26620989a966d1d766b78df0f23e18fd6a72c0581d020000000065ced4834a2c786651229175407d3a2d405d1998bcf40614005820036fe327cc90deb64f44caed35edf9a794da7c686dd9eccc93f6f81e5cd48480581d020000000065ce9f8be0bf1ba48d5d57eba4cea3d3e2d4960c82f87cb9005820034cfacb04be65af1ed19f0bb5deaca2c9e83b521e4c04b21eb195e27aa9a430581d020000000065ced6ff23d96859eeda1a911628070b071120639b769cc0034e58fb552068274b8c928c95b127e74a0ffa41974496b6d91cf8ed46b877b02800582003c08591ec5f96f3de240b109512b3be49ea79eaa1fe846991bbd4313a707910581d020000000065ceabd37bb3bc9893e0a7dfc9f634e7d90397d9cce95813005820036ac9fe4427ab5b3baef6615fc1720cdb2eaa95dca68a62086038b0f754a1a0581d020000000065cea663c1cb4efb797b953a7ea303e8f9110cc7c9b232a400581f02b15eca1dc78d12c17ff61650a9a6283737986151f7e6052169e9d33d13df4903000000000000000300581f029a5ce7cfe099a4b0b999ec26708051321ea00fee0359398c903c958f91cb41010219100400582003f479e3feee40d8f67a1262ac0aad43ece8b1b48b82389cba989434c43f3f60581d020000000065ce82332797ea5cb0f027b85fe6d1cdb06c43e8d16c2664005820034438c5c7efd6c4ae57859c0d420ea1a59e716d1c4c1337fe5e3f1e4423bd8041090219bcdc03e8c648ec756aa93309199b617244b533b4d28d6b20082a9d1c08ba2353a89221036421f4a92eb8cb85e475b273485b3aae4c0440c0ce80336aa0d5d2d66f9a265a0364a35dea9a5d4a1f6039a9fcb9676a5bc8a2ca0ff4a9abdb0d30f866609409eb033938ec524043946b8edb16e9d7de998af8c5912d5c024dd8d61cf89e87777a910219ffff03e9ac9116082e6eca2f23d2bcb086f5ac74100dc053a87acb13fd698df2d4e2b503c93c0f9aa5fba930c9053e7fe8858a2a600371534614ffd77d795992d50fa3ba00582003791732b012e1d205ae3dd00c78091fd444538aa500fcd034fe8801cb7fafe0581d020000000065cea6db4cb939550280914c2378bb91229145b44284e8740322d3341b26469762d3b667b6acb6c4ea392ba638a1c4de4d13f30486de93941d03cffec59101e1ef27df5f61602108b583e4a40843cc50cadb4dc5c380ab34cb22031cda50bea0a955c6b91220c6478b1cbdc13a2f3c54380138b967dc1de5d41fd100582003e3f884e3069e0099154086976936dd3df0a7cd71da9ba1d20d3c82a0a89ed0581d020000000065ceaa17a67c8970f1a1d98257a2e32fbecf307bbec388c003ae4ecd730fc7ce3f4c283ee7bfc3ac2969803eeab6e8b5fe6e0ec61d696f042a03d4479a9726125f246b0ef4db756d0b11965846ebbf57558a99940e1d6c2098cc03eab39e59796721ec865c6dcdfb170b97b93c3cea5bdc94492992ce40c1673b2100582003b0bde62a531e24faaaeb0c2e29ffdfeac5f548c2d5b8e9c0e146b6bb5b8bb0581d020000000065ceee6fc602bbe267bb6d68efbc394e54d7b6faf03556950058200386d13db89e58fd2b8c2f057200cb478ff288b67ab1f8c6fbae1ea58f770260410100582003aba143bf552d678fad4f1070dfcf1d6bb5b93f83a492718a3ef6738f55f2b04909000000000000000100582003d6367b2962eb255e06e0baef204dc03da99905b097c1cb83aa315b4deb83c0581d020000000065cec57731b47c9b70f6ed771457b99ed92585938e2c43cf0219fbd6035819f60865cf5f96d7a8162ebc4fd5b6a2b5844cb8dcc78dc55f82b1637ebdbd03aa19a692d75175216f33ab0b55d4417974e8904a32bc33eebbbf89564074d01203e3ff70c71b3397f11175a3b08f31d74456a66894976e0a8d4b36a31ae5798b1503c452b83a35a27fb66f9c657de9896374bb01a5863a9346f0a39f942d2dbab0bd03d8189a9da9aa297fc4b9997993d44adb6e91e8781f8614dc2d3b728a7131c18b00582003f74fa218313d4010ad27c53dd13f2facef0be96363ff89bee7f79b161b5660581d020000000065ceb76705d88452ba2d7fb39462a3b5380793455169e00b03c6d31301b6b9bb703d03cee5a3978b320df5e5b6ce26bdd02f64f5c48eff471b03adb71783fc605c801a9b84cdfdde4962b1d9ad01e6e1130668ba2733dac6470a005820037a5d3d6bafab8e3af0187ade11572eb64abaceb0aa07d7f27e55683b530a80490200000000000000000058200362a8794c95588da67ce3ed4f46f92e4ec0c96a0c0ae6720ef51ce31fa17290410103d16081c314518de0ff95005f5052ddb5aec0f6a4ae635267d69ebe6ae46bc5d400582003398ac739475d414c8e9ff4204c503debdbbdceab3dd418d12b66f599606de041010058200392d6ca3c815a950e7c3e8018ac162ffcd168a92dd8b3b65cfa003bfd1a0370410100582003f391bc2331448702237210d64470ae8da65f24fd01e2334df43d6af54779c0581d020000000065cea64ba8d6b42a88bd1aeb61e6b7dce475c964bd72eb1800581f02733c92731439f3a4d7eb5f835ae7b35182b3181c8d5efa4cce005d4ccf25410100581f022d1c5d3e14bca292c2e2cd7af2d9e2de8938bd8a7d63fe27b8e71186ba634901000000000000000100581f02495e25e09309ac02d1b1027048f2fc209b9880ea4b0dfb06328126f929ac581d020000000065cf49e3be13ceec920aff758e5a4012076648986e913b5202184a005820030050213ff04d28544bc592e1fd677150333b83546d63c1de42605ce32909e0581d020000000065cef38bcfbc8a1e9bc10343c452072ae1de9afcc468b71a0219733f03fa82ed857db257f6e03a02a314d23586ff9eec5c47feb68de38344855d4d8aa903c39e3ef57eb723e7629a73d23cb71485709c46f841d4693b95607d996ecb4d1b03115d86a6bb3c9bdb3a00c6af55eaf463ade75bf3873773be4914567378776afb00582003d155b702e8e1a28d7eb8ee383c15d3586add2ffc06d9762d1b2bd4ce51df30581d020000000065cefdf33504d2221b9a148d1ee14fab1668757899ce43e1005820037be7f0cb6f52eae5e160f66c664bab356b361eeec9cbfac773b54d5ba3c7d0581d020000000065ce9f4ff3cb88465f7ff4cb5b509a4fde91d8132c5c1ebd005820030ba77bde91789cf427ae6b10cc541fe34ca7bad5515f32fdb25ece8ab18370581d020000000065cec877fa019d5245d3ec6b6375ded5c8b83d528dcaae8703afd2d60eca4e8ca82ada40f0c23b9e71bdbec73616f2e0b7b114cc9632cfa333030f63f34f6f84c17de0702ecc1f19535229bfbabf17b5353129a400285a872de600582003ff57d603bfa59512061c9ab85814f7ca9b0a75aeb3ce35b1eb327513929120581d020000000065cee8f3715827b032ee079b013437acd7bf52dae797de77005820037568f07b515f3f768c5eb38eeec1fcb9d58b20ee2b8d1d8738a53e90bf5d60581d020000000065cede6786ad68874399b09a2428162e323f65b566f662e3039973fc60244539e4504b6fb4f78d6f123300d6a705dbb71bd1bcd5d7218a5ed9005820035caa8d66994b90ee3250703861fff57f0bc19d23e3f44c5f8ee24b23e39880581d020000000065ceabc723d96859eeda1a911628070b071120639b769cc002197e0b03800bd02bf1cd24f5fae3be73f6e07f66f1bd9a029affad50c0f1839b71ccd6690383b76c340abe0ffde5f24e991df712d0d8c41ab3cf4329757d15f8369b71916603a5cae6334e1355ee98bdba848f6ab6f43f0dcf1df01f85cc104c098214cfa2c503b8b69982dcc027e7513d56fba1c9323d33b6b69820da65275de827ba55adebda0219ffff034b1eae21443f24d2e1c411bf56b7765e062e2cbf83ed295ecf038dc95ee870e503e75f959deca307f7fe6dfbceaf0fb7d0a3db44de72e061fc830074e36e4a8c9a03deab301829fdefababee9f1102abb76ee2fd49de11e4de15a0afe24bf303dc45034b42e6399996a82da66c9242a03d6ef2dbae190334a80c57a7dfd4b1c9d5e92e03a9956b9a1428cbd59662f9c3f9e4539b5c18a0f722ba3efdb45f8efb27a8aef2033b7cad84cd5d515eaafcd9bc8bd36b499b497f778b104e5d69a6202f7ab44282032056817c44329f9a30dd4b950f13a3a0222f822c7ec43e613b70e4e19171b2560362fb47083763c2df6485479ea616a48cdc0e9b68a30e5eb72dfbd4ba59374bd103247ed6fd010b18126032ad11188928fff60f1dd93a53ce456beefe7ca2ca3bc5031ecb991d19b97103c58aa5c8801a887951541350e808859a57286caf47030a51039fdec83dbf3ca7e6ac0f5aa4a2ecd68154bca9c4b339c623a2afc0eedb828915030a755e839e00fc124e7f1faa9ad86dc45420ae9d999a431965b7d69cc7364f83032f60cbdd4e4758c3129a370e5efe9547335fb1770e474cb727a1b6388ce0a8500058200343f61985ab18b17d46ad48041075aab0ff38831f14dc0db9a1cc5ab380e940581d020000000065ceb3eff578a30eff86dc218afad6378c0159179aa474c003370310cb98bc429cb69bc9f3513215423b7315e3be60d9526e6b5dd9da1a334b005820038e66efec9530102f945667b2407b3d146557a8347c3a1bf7707cf08843a640410103948390ada0c83dd06a5135986d645457c05dbd4ab0e251858f2a32486c16067600581f0310a50873accc24c08fbfb600916ddbcc7a39cbc0c7241dc2069f01151440410200581f0339a07242d79802c2fdf047d071f7f2beb4d6def36a4b05fd7c595f59ab30581865ce9adbc3f8a62be827f4b535096545f6d43cdfba4493e30219404001410c00582003ddf01f20f5c269f83492a694fb8f6f6561f481e8226a4a994b8df757e6969041020385a644c0893e231dd2571f9118af4cda7b1bf51d2a3c49059abfd4d71330805c00582003f28cefe73e50dea0853948d5c7e09e10fca70f5c2bafe65f702030213c58e0581865ce9cf740dee5cfc1a4be17504624052d185de7e013a1f2033dda54a98a6f03876b4d1c9efd896e88873929ecab7254e4e03cf5376eb7fe8d0361ab228c77e459f65540c7d5691e181ec49c33e4267dc5009c35af8d8006668f0219d33d0304b9a1fa7304e48523262d62537da903b76efee6fd73e8350b5cb3f0d337ef1a03b3076d5584f1b537fe1c5fc5641e17e47c7a2c159e46350a8ab57639af2716b70325986f55ba4853302b8b65ba3a77104d5959a5376748d5d040987e1ca395411b0219ffff005820036e9797872e424bfb03fe309c70ab1ca031855e4dd3528bed8765870f43c3b0581d020000000065ceb4bb31d26cc38abf94be280162f75b2be3a9023128230058200343572bac90a0c6605b7cc1e84de22fac62e1ccad29d7be8da2925ad0b171904901000000000000000200582003a0561f055b365b3babd2cf5f3786eb0f367327e6763a98263aba7a2b143ef0410100581f02b0d40d1e6cb55458363bbf15035cc539ed756e88fb748a4994f51b94d739410200581f0254659433b6e9efb94501cf3ad78ca6977a5ddba89cf344d37dd57c9e8495581865ce9af3eca345b5c749b8a9299b154fb036020e13394eb70218a003d6fb5dfc73c2dc7341c423aae29bc24caba3f638c884471e72f89aac26e5f68503217a4c49dcd01cefa30ce44496b42dc5bd449f3a822f8e36ac7ce5779aab23680310f54540be5c194ed10c13f6ae9af0cb3fe01fd0a36453212269590034766fd0005820036758c248ac4e94c2d18ae6495fe7863f0f0e932859e5a125cc0567ca2a440049050000000000000005038cdb3f9e9b79a2e71e3a38c858cc027102551e07fe09480cf78eca84fe8cf145030f70b2c1fd7ce77b65b6362f0aea18d634189d07e977127b1e0859dc7969cdcc005820034ce9de9e6512a10c054628081a20058822d4fa5c3ae1090c162732b2044bf0581d020000000065cea38709e4ed8fa452dbfafbc0f6fd1b9330da589e2aff021976b700581f037f6f858b9af6c31f39e20bca4eadeade24895f3b52621cd0b1727736f9a0581d020000000065ce9f135f053607682dd0c44868e9215e79bb0917d07d9000581f03d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6042115d020601410e00582003c4b8ef0ec8520a4d66117bc025128c7404c63dad4428c7970fc1a823d51220581d020000000065ced5439177530f4e09186db84523cc7e074a41fe958344005820039865a07774ded7d5b83e81ee70518a12c63e8b75fcb03941fa51752d65a6a0410103dac50380f34c74280f46c31d18d60c0e08fd590647b78ff25a02c633be2cd6df00582003e610b5c9e9d7249ce493281e661c825f71d2cc268f7eeae41b37198a7e1ea0581d020000000065cf03cf64eb6a5a1e4b00fc7640194d43e89f9d92345c4000582003ec1706dbff884237f26723c0d5db31b9d3a81e4b7a2d38b0aca93a81846f104919000000000000000000582003815b8fc9a27c9521a3a1d6b31793c44a2193b90bd14804ea5fea541404af90581d020000000065ceb0fbc6cf0a45ad27d4c3dfd1d3ce00f44ded58c7a3e9005820034a51d648fc5bbc7990dc390df0f7eb17ab34a699ad9ed2425cbb15dd011090581d020000000065cea00398e8c7da764cfbcbcabc54171acd0af5f6e6ba26021951ad03251f5f8b7423788a6abd6b4e011e711de457301061988628e328cf02338d497d035401cf5b65833ae399e248278a04a96f1630f7e16fbcd86df2095fda7041ba0e0345a9ef8ec59a0964866cc0a2bf3b1d9bc0b447c99462377965b0099a8b47cd1b0338402e9e8bb148ebc05e92642f09516f7a24088d6102088f9ca22ad18f2eb01c0343b73214e032aa18f4513ca1773fe274f9a0ed0fd05516fe2b190ce33d5a0bac03d7262f7ddc0a0926da4307424051561a6082362ca61151d00ca4ed7ce89c1593035df19d1267c1f96506e1d7e285e28adcd6ea61fa09357b046dfd8edf9a006f3003286497030d72ff92768d488a60f076ff3db36d594ef06d4a48bd272c5af07ad003c31d70f0777fcf575982c662a68513a5a6af9f7c1087757402ca77e94c0f7cbe032ea8c4b9939c07c179184eee4229ae6b1ea541169600fe622536fb9dc2e6bfc703e8ac42321bbd2c3e81e260f79a92a17a56bece9f625ad33e0f0b2da24270b282005820037a42874c50adc5d8fb8186e8346ee249c34ef92cc3156fa2977f2cc358b500581865cbd58ba42900e8641c6a8159cb7c66346b67bf19923ac300582003614c543624fbefda7d7b580b8650c4fc5ef89c8efe11b385ba4e60b226c840581d020000000065ce8a072797ea5cb0f027b85fe6d1cdb06c43e8d16c266400582003bc8e9fabf09e4dd7d2e934e3d6b266ae6d1d913044cefc4f72b18f0a2a9a00581865ccebb39b43a664d2432c6d1f38287ce0515935f182ddf500582003a5ae0cb87bc5544c8b5bde56e89867c75d8b590bcd396a2d855eed2d1cc8e049020000000000000002005820039da64892628296511379a8867b58bd4f5cc1bb4c9701f6f4c99670b0907a10490300000000000000030058200364f8295e0ae89d8e69362b705c8922c2527369b9c561ef8f739d34fd18bdb0581d020000000065ceae975572fc084df6d7126215ac7547b4d3571de538570058200318b0bb13dbf973a4ea5ca921c60daf592d20ff5230c5091b05e54daea7b4804101031d425591a25542afe0ca30faf8581d8212b5703509408090c7017deeb3845f7d0315940d9be7e1bbe712b3cc2f6cff04b69a5991bcc7003a9aef3520c238f8f9c500582003af57205b3503e121e87049aa011cbb50ea6bd2fa146d9bb7137dc3dc20e790581d020000000065cc9cf35c6add67116a5c56e74b24c0d1845c452fe1997d0219bce6031fc6110a5218c1c780284e611766f187def5c27e9106d16390c12da229e3f826033da300eb84eda70a3593af414fe24503e5399c773109492a5e65b011a83d8a640058200318cc11482725b805545b2721bc334b4a978712befe5bcb71151049153f09b0581d020000000065ceabc723d96859eeda1a911628070b071120639b769cc000582003fbc6980f8ac14cd2d8da5cfe61d9e1990a3206ddc8a36370aa21857cbf1850581865ce9a1b3df772d9c8849b7d52909d6b4f1a9bcbb8240222005820030c074491e2641f8ad4fb07728cf97cf944a2dc157d66b5150f3d10ee7d9710410200582003df7f876b001b4751dc4192ba32a8ff5e6ddd4c63a6577dfd8a6dd991dc4f90494b000000000000000a00582003227d1c5043d2e5822e04e05b097bcc485811d7fc133971f4c7cfe30ae522f0581865cd47e77f33dd98659f9968a2d77c64a6a38add3c49f014005820032eb5fc0d2ecfaa953189a58bd98d378d57c80c98877913471064750a0dcbe0581d020000000065cf3ccfd28a55f90d4676fa32d2abc4173fd81d7a2a6df80219b82a0219ffff03e193a32f8beb01ad6b262469a534abd501ff84be1d46fe65a7aba2578e327630039ee66b61f379dbf4e94ee3020acddb1efd9546d14e33b30803ca5dd88e3047590325859284e6b806d4b36dc5d7f99fa19ca6a873dcff75d575bb47095ddb7694d803e0975ff24689fd91522a7e230c0a0acc4b7807daeb2bc8fce326ec13fa8b9eed005820030cca2c7ada24e048b263504dbc8f55a34dc27d73ed26bad58a151e2b257640581d020000000065cec79374024a987fbecd2ba9a53881d10bd5a78bea1539005820038284ac9ccff9abf9ef552cf5eba7a501b21a19e7a681c7064f7f14b18d2cb0581d020000000065cf1c6b07fa7b97df2cf29814fb09154c30b0cc474098ac03b5153f5202433d193bcefaf387f48f3687c8c6cfa312e71f67f40f835289b7e5032fa059bf4fe71295e7f765872e40c1da282029c83d8d05c7a00d03c829433e6c03c9c92fde2c8fdfec3193870aed63ea8d10cb2a1bd7403eb6b109daa9ace5028200582003600210ed11acca250fcdab92a1bfe2f74eada9c70c314e22ef3af64a47ecd0581d020000000065cc56f7c900600a8bb3de6635b25a3a76da1571a2008b8300582003c3edf8571e9214fb32847e79b0ee444b71f41f1e8b228aa0d50e646bdb87a0581d020000000065ce9fa3f3cb88465f7ff4cb5b509a4fde91d8132c5c1ebd0058200398f50a6dee1c52c822d0242e89138e92556ad32396f56a3598f6c622d2bcd0581d020000000065ce9f4ff3cb88465f7ff4cb5b509a4fde91d8132c5c1ebd005820037c458bc682d89e4379f22dbc384298dc6a1ae3d54b79a9d3b894c7c719c9704901000000000000000102196f0b038d71b8c44f29b5997e5b1978a0eaa93f5f7095260b880dad315451222be7956b00582003a0187943a5dd8efa3f0b277ecd870f65a7630c484de314989fa7b5f4f1aa204101005820036d3d0ca5b226e76b1d5acfa67136cad6fde32107c2bd1f80a50ff1ee4ad150581865ce9a03546e499a395f38e3b3e51aed454c00f0c4caa63203bf6a555fe2a194a0bb470cd9148ad07e3e548c6d685581612ca40e7bb7d5a2fd0058200384b392ab052e2a9b2ccace331250f815f6c94750d8346a413dfbbc50d46740410100582003cb44fb37a0dbde26c4af0aea3569eeb1d25720a0707f5e7ae3224a67bab0f0581d020000000065cf1f0bf879d5962f30bb7d636b8a1a83a8f84789ea638b03e866f03eb79d08c84fa032b699e2a8269f9fc06c58df74b533a632a52f3065e401410c00582003ff6ed7eb8e70519111f526a81772530f28628695ee6c3495de9cdfe82e8e5041010219e20f036ba2804e21287362bd59ec403627dcab2af54ed9bb3037565d704433c4e8ea4403a534e0c401262f026adfc3c421ddf7073ce482b23419f6a3239dc1ff59dbad8e039db5b0460ccfca847395c725dc74209f287270584192b301c77cd250078fadf40331963ebce2f5bdbea6058a40678a023237e16f2652ef79ab5d5ad4df68f570fa034f867abf9519aacd194c0c65a99443e01f3280e61b7da9ade164ff422a01dff7038e7f293054245e0e89792261493abfa338cd8a57c0c7d27652e780dd20b95bd4039d68c018909fe9cad0620166e56db06f25bfc905385899990935c13ed21be7e203f01056bd6f3d86a2ec22b97537cd45278f8ce75c2eb46e6f6ee31d1999b91839039851039e681eef2119c932fd1eb1bd03f8d01c79c194ef577b2691abc7c9887f03e652eaf99a3dd42676e1020e1674c6058f760bc43b0628c6064db29c88a922d90219ffff0309bef983f81c9a63841efae9d971893adbad137f55de3a9a5e377c387e9d470c039bcae6cffc41fa71f30f44892e527cf6c6bdc8b032a85489aafbde9d3c84b5fa031603bb6964b736c314d551177d87e88833a320e1914a153714fed94b81077845036febb5d591725f36ef17a0dcb4ebce1dd70c219f433ba1ebaf621ce7122ea7da03744363d56dc7a93cbdbf884c980dc4e36241d31248c4d8876b3e252cb8f9c82b0307bc1ebb6af8b994e6fa47598b1cfe406ac0b7f117479167a5c7c556c426c9c903f3e2380cb98538ded25b6e6b9e59c3eefc032edf9f8eff501ac0c05c7e04859103cb3e2443d3444ad3cdc9ab30809024f5e3fc52c5aebac950e8ad3e94c1bb0cac0348605afcb9cba08b0db990d055556a7473b6d324e6a65348840aa31a89a08f5103d77b57b015098cdec664c8928eadb63106191a04fa09ed9b3f836af02346298403fe2c16b0e7886ed56d57f576043236025d7e4821209fb983ddb827ce9fdb98a703589e7af739f1e8d01d51b14278ae5733fc681d8c8d2670a9286189b770f1a31603aa55e4f2d62c4161b4152aae9ab44804a49dbd2ec834c63c1c56fb3b871c582d0142005a00582003332a46fcdd464dd370ca6acad86423db96fc3b8df12229487d8315ef555da04905000000000000000500582003bc20d996b8ca99e14e5b1c7024b47a392dd8381f745ec85e2608a14e1332b0410103ba50295e34ff4f1aef8eb28e4865aeefe52baa7b242f7353b59e44a31a7436570058200308eaf733703a8dbb4de6e4729c340b92e06644b297b1a5295cb4d4c61427b0581d020000000065cf5d87b90de27386f4172d078a3710ac1dfe2e130490ca00582003b190f3acaa6f39c6702cd5290689b5b770953d384bfa3c68c4117c34ca7b804903000000000000000003962595a27c5ee34b9c7213f05650f504ade4341abe6de255c1fa63b76f45c58000582003967b8255c3dd10967edd7623681c149e219b268fe165e3eb31bc112c5fc96049030000000000000003005820037c87007cb0fc4e9a72990c9b91a805446c2b6df0f61a4f1314e43d34fec040581d020000000065cec79374024a987fbecd2ba9a53881d10bd5a78bea1539021962bb03517513bd8254bf316199bf4b050e97cdb5aedd105b7693f9d5ea2c3f4d91244f032dbb230c0968979ebb764bb957dfe97cbc15b42831e6c85087686aafd74d423c033e264d0f132622407e738589e9f6bcb15cb9a083fcdb0c931e8add0d6f9038cd0219ffff032ef2d7658f9ebd3bff628f42ac52b0112ec04517b167e8247f7f12388f2eb29d03aea9efb72104675e23f2c306c2e9823b248642bee88e78e0ef79ce1ac4a312ac03ece1f87382a269b81c66d1d0d63009773a6756244ae3d58b360d43e090490b7b0382bb404f1c181951265e2c961563891598ab4b5e01506c29dd224d7318b7c706037c82fb0409bedeee744089976f96360c6af9518b49896c1357cf7016ed627aea03dcd04db58f53360a86d4c27d905d191e4cde6106c8f619d61ae4450b7b62c43b034ef9595136ba2227ea920594b9f4d02e4d8537a361026ce39f7ea69796a40e7b03f2222ee2a45575d8624c3079d79a7ae9b98cb2f500a6d7b794f8bd04298f6d6f031cf22a1dc498881865ee5ca57b852ce75607383a90fb1672fae7b8bb71015d5a03471e5252f88209007e5a27f63902c8b9b4e99d5e972e0d70b871c443d2bf8bdb033cbf8d1433509a38e5bbe81ef9f48ad8e71271f6ac72644cbf5e1378ce141693036704d340873076e989aec2a340665390ec899010bbda6fe5295a7e3594e1821d00582003c39999f0a2ad885d78e32d20e3bf9a75714caec7064f51d11febfdeba9b1e0581d020000000065cf073b356ba80b538f83556dd49c8506fc16d6db0f24a6005820038aa79aba5a373e2f41bb711cd323447eae51a370e5cb477c94e2e8a3dbea50581d020000000065cebc9b12b9002fc7c73f284dcc77e20c35a3cfd1e320d1005820032d102de8a50b6c8dcc38b97826a1e066f1a0bf8b98f3f5ecb72aabedf13760581d020000000065ceaabf8aed25a73b98030725e923d3db570f8e72c3c51b0058200392fdc2b29524a9edd3a029ef3d88143b3e842174efe1755895a3c3f5c55a80581d020000000065ce9dff7a685c2bf6e8488b24ffd597c3906be4d81fcba903550b17e66e6363b62b4a8b8d5ddad81857ae696d898463cf9af15f9629b8b93700582003a88621d7d7c4e216e14d9877bc1f47b6e242f421f29c72aa670c8c7ab7d400581d020000000065cec79374024a987fbecd2ba9a53881d10bd5a78bea15390058200345ca0bd0adf6cac3022c336d28722317be6b4cf83308b4211e18ee42644d60581d020000000065ceb94733bfefc3c26b06d2f8eec3682ce0aa4433cb96cd00582003e71f280751deebf836b625f4963fcfb1e6194bb076315045e0e2db41d44080581d020000000065ce9febb036713179e0607f96c4a756927a8822fd19fdff035dc85493fef8ce859d7cac1defa81acdd5c6b79a3ecf4022053e2c28fcd55aab0058200322f3cfd5b008853006f97c03e899792f2c98eb7776fd06e3bec78761659bf041010058200381e3e9ee73da3f0d3f50b2dfdfdcc94443df51613955ce1013961a49bf75504902000000000000000002197f0f03740f96cd67074f9d2c1190e6dc36a2864773dc524f8fbf73070b1e48b1c1b7700399f587346ea4bc792bfc3eef00e302ae08f97ae5f6c908e392e82b09b99607ce034f5354853b70423a5dd31395a04cf4e1c7b05bffe1a03d8c86ec4d1b6950e2c40219ffff039dc9d49f23c249c4a033a1c57a2bcb21356d600f7fdd930788f577cff33f96c703c7e158cacf73f7faafa62812f53ec77ee16649dbe4a42b3ed1431ff9bca1c811005820037b1f52980428fe3cafb0c086ce1c16733a02ee561e208792c8969eef01f630581d020000000065cea96345d037c82ba5826489469c8ed1987470b72109aa00582003d5dd727f738ced6fd2303885464cb7484ef5ae4f2e95075c3ba6f3a612aa50581865ce84affaf64fa8bac82409b7f19a860ffd0b6539b08b630360c5611554bc9e589b338a01151a43e9c8c6a3e059cca1112b9307507f9b29aa0058200387ecd9c980db03f0aceab6b55705121fd5b99bb1e25e0693b1dfa8b46af420581865cd6ec3e25a35ef97bf68a27c7b6c51b0cfb3c840e3474d0391a0f55887dd9f37e4cbecf7c70d0ccd260a9cbc8ce6184d440849f48d7480ab03a8902a45106cdfc8003500e279084512c82c3757ec41a3b36dd7ee47be1117e3005820031a582b786dc101aec8d28e42b7aa4c18cb1a63aa1e56b4cb28dd89f5f67870581d020000000065ce7cab2797ea5cb0f027b85fe6d1cdb06c43e8d16c266403b462ae8612f70a289efdbff0e35efce3f33c55aeaff3dd2be1602f88ef09a97d00581f020c440de7cf4ec92d6c4ed2e8d66300e5461376979a1976d924f685297595410100581f02695113d9e1bdf4aff90a499bc455bb97a9d01a87a0e91a33ea9da31083d1490e000000000000000f0219060003b62bee5f91db8eafb04f2d9a64d4ad5bc76b791ac7f99029b351a5541b0092a3032e18d517d14bf29be092bed50201737f468c68a60bbddd49ec41aa98ddad684f0058200372c9aaba1adef7254acc41272a49a973dcfcf017ddb1015c9e4f7a0c42f840410100582003fde3366f73e923adb1afde32a4eae19451739a2b7ef12d7b0e0700dad926b0581865cc9fcf75dbd0951349a1fefc52160f5f5470117ada9025036878688fe3b05f70aba69ae99d58f45157f721eba2a04fb9dbcbb0248f415cd50219d7ff03c96b08f1f43f5111ac6ccfdd111c855543b24d271b046ada80ddb44bbd0739dd036fd1fdfdc36ae7f274fe7f1e4748a4192a79889e3170d64df3540ca8960d5d6c03a8a26fdd0f4df4f6f78a8bb0da21a8a9348e9e44d8967cc70475ca3bc410b13c039147276e20564d0bb0540aa4b3ffb507ae46c0402b19689f796e9f953038455f0315a75c0b20095982364172a40ada204083fc119dfa9caa5c6da08af76837aded03d82992b24c62f5e56da084c6c45d2253686498f73a5a1ef9a5e043cd44a3635b033dd20371debf006754e3513e7f6b57d22e05250e188a4cf8422f7d19b3607b9403aa9d4d29a45037c1b9481f2344a9eeb3eac32f65dfd71e939a4a5b98e47db8ff0384fd2055ce0d97c4732dd9df8d2ebb37c86042df939c7b46c89f83dbeb6752cb03594792e78e84535f9ed850dc3ef55cfbebc485a500867e41845a421568ad1aa603c5a13311b9c5f5d1c7a33911252586f57bbdadc72b7e342647c5bda5305d70070058200301fbe9223bd590a299cca621f1894f2dfba973b2f61723e52cd4488f300c204101033c44df9f04d9cb4811ccad13f0a19b1baa92e19f4023676759fadeb8c3f44347005820037ecef9ebfd155da911627938215d3068f41b59b700d336c0e86a2f9d3d9050581d020000000065cea5df1a11f316bafb95e7ce3f4ae2cbce2a9b96ade7dc037779607f9823093ca012c8cff1eac2f05c16d9ca9c56e448cea62d8280360f0200581f023b299819cccba2d6c1f60d75ec3cfc4d16ac29b93485594875dc6db7821f4905000000000000000102191002005820032257c6f9ad6d4f86b7ab979e5beba7b13eaf508b5ee87ba7a670063ba750c0490a000000000000000a005820039ab83f2e8e20c162bd9a3b3a71a20c386f767825dec8319e5ddf5f2d950190581d020000000065cea3e7b74e5e06f50fa9e4ef645efdad9d996d33cc2d9d0058200345fd150fd42676acba2299e52d76feef51912107444deb2faeafd51faabee0581d020000000065ce9fbb1e86fa0e17eb94c2d7e4d390bc33383d329a332002192cc703bcb317ae31746c18d4a8e93d0d55cb6d8e95a274def7f97b0fea9d832af535f5032b54f31a7b58ad00c26f07e6a0ba61c624618488e6bea50aef9ff8528a2aa9e60219ffff0219ffff05581e030954b20e33bb27251766c18abb61137daa78eabb0f5625dc0c8c6c0a300701182d05581e031355719cf0796bbce1a48796672c7f8d2d29e1bcab8e3c1bdf4c0f62b00c0246da2b0aec153e037e09bdb1eb5804979e571dc91cfd30abf55f173750b76c1172b4392b83b7de440359c8ed38f46df4a4a6938d240923945ba793513b22ceee2668c262f6f7161bd90373e819e5184655850bd08675a1dbacbcf1821afcccd1178375e159e5e015e19e05581e034a28b0371d84e94077ab3a7de33881e8ca40e54242adfe5cdc242161300c01420bc0030c514a5fe36c834b6128fb011e628d3149298a96aa35d8481c3e3f56ab55597703e7060058ff55118de60a0c457f49c286c154bdc15f34e7b88299c12fb20494490379586c717a834e00bbf49242178874b161afd54ac63fed2ecc27a75f0263094d05581e038a727610c6a75421dbd0d945a215402bf524e3bb1a184ee0f3e57477e007011bffffffffffffffff05581e0365d0e60f4c7ac5d31be6bfccecbfe4adddb6f9a19d4fd3ee5faf875d10040105581e03c0b1aafe059d96bd8d427600636d29d226efce817a413bd652ca800ca004010219f7190219ffff0352905380224450fed5a4eafadad11faf1e52713e0a8e221c738b4a25aaa8ae9603a9295f4d3baf679c0b5e32162495d9dc5306d8323b16d41cef67781ca2969e2d032f676582c421e1a25868bdba5bf1594c7b4e678a0d92e2ec54b69f7a463de1d503cc91dfde672d848aa00959baadedad903d5b3f1c1de043fdece2819591c048d00312d209092bc0feed5884cfb7e8fcec57e5c755036024eb5319fc63b23afff8fd0362e09c8043b03ea5b610650fe8df7fcd388c34394962466e002867db5ec9b61703347984ca500517605d083242a26d6d16a87f770dec22240880fbe5a79421a319036b2b5ff51eabe68638860dd961dd664f9a1c26552b363a3cbc4a164d10b2f61f03083a310727a63da345580249152085654bf02fa5abff336a206dcb564befd90d039a36b35713c70a0589015f7e8489c130d01eb88735b548df2fab4a184c0ccf570219ffff03bb4a532a3431f36f92e3e767fe520ca5178afea94e3c72a0a616e4925641a4d50342708d2e6d382b063e3385b0558478a89cce198ad362ac91395e544a6baca76503e98aa639d0cced283b5e2fb862c540157b20bffa275ee3eefce845ceff4463c30365e67c57d8fb1da5627e44b65afa3c4dd8b7af9e2e25ef5e5fda8148d661cc4803f78070baf74f831f161f1667f3b45681425b49f4af94d3f32acb69b3f43ef248031c393acc088eda694f686abaca2ab7c6b50da464b08dc1eaa1f2ef47e151a23c0359c73ba6fd3377b6bd75ea86dd64025f01c596dfa3abfd5a85056683976a2bb803a3ff249082d8c86b885ae7af086f3b4bc24f6ca445411978b31537c192e898ba03440d7ea16d721212935bf9beb6a12cc7ed63577cc48c865d89f479fb0753b2d205581d024e4195c5ac38d50bd7bd3b55d73a37b7d5f3841ad724c0356ea852fa0c1a00053569491fc062215cb950b52a05581d025e2f3cacbb23cd95e2dcca333c649f7121d3f2a621a818192aa52536040105581d02ad139c4c8f4dc070055be215f6b803bc60785bdce0e20cf9782217900c024701c7aac180ef780219019005581e034197bd1e342ef77b0ef747206ca12e3cde6663b0a0d51030aa1bbf3d000c044744b9cfe6ed3a0005581e0326360e288a8c419a5c56d9ab73446054b33fc2e2aad4381419936d62000c0146fd09e8aa2e0003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e039c6bf230a5a8d796b2d819b84e96158879395ffa69820c699f543257c007011bffffffffffffffff03dc0b5da1a580aa415e6076256baabaff3541725b085c5347a84848b516ba4a5005581e031f74124b03001545d6f393bdad9de34156fa835f44bb5631a3300ae6200c0147030f88627b388603f74627f62750419f1923c9c1ed238d1686d821a651b7036f86607018d120cb6c05581e0395cbaccf769142cdcc0d843400c89a3bce37e2ec94feea239dd68216c00c0247019be2a63109a305581e03add5a9a9a12b4f841af6c70d1c3476198f078b13c0636ebbba23f71a10040105581e0320e7a1ebbc46c63a857c1c4ff2c4ad45abedf3c12e0b3b5877f94b29e00c0e46e276d48c90000219d4ee03d192d2e93dcee672e249f76768d5527efca60f723dfe72f3a2a78d402ce6307703c579ae0141174ae442a2051a752ed767ff9305b648c209cbb1557293c39ae1b703f1e7ab8d49084fcdc285396fbc5138bd62198a28a189beb4fd876ce7e3598081038ededee1e159a1df4dd2b654fe66210fa14356709ef30e9c37dde5f15223fc9603c47c83d0cb2e05b8febcbc50bcb161b2fb713d3d93402e0b5ae1a1857d1423970348be9c9b075945114a42984036d510840d848150105ea8b5b2ff9c8e98d5aaa6038e5540f7c4b939bbaf8383016914ac85c9b642aa9954762b40586504aac2c0ef03357baa2fa4fb01c2e40535c053e2e0ea60c475252708eca2f4df9284a3cc99db0367a50a3b38d89e90c5d5e78e905a03959472598378893ae278dfe0b11bbc599603abb122974bda9b477b21e542f09cbfdb7eb70ac31093f6e8e55c56196b7b255603e90962e163aace9cc84d270010c847041ba23f2bd62f45b0ce1f40f1cc04c3810219ffff03445ff7cbd581c19bd37b321707d675761f67c5814a25113626e6f4adbf6b500b0353d93119634a2eca7c33493f7636b25358e3ac07f5710ec417fb4e461226e2c503e935f9859e5b0e1564deaac9ff97167f790585e911823a1a5f0f0cd0e15a96a90302dee7f7aa25d4918a0076c801768f7a4a6d7b868c5a133fbaaea180a311707603b1c8bdaffd7058117ba529bbfb1f4996e960bc56b7874779a06c7e77dd3fcb7d03699b2d81958bbc1e9cd390dbf57fa62169dde238449d00b0fd78873fe719958d03e5e19460b3da816bdfa6c13f9c45b9a22b9eb06345322682cad34725df53ff4c0380437e67366b0d3d1ef6abd4684787659846ccef3b2fc8b14a61327ef49c76e0033f806c9b47de7e2b596dd931ac8b75aa1d769b32c1ea92b1bbc76a31c5b6d05f031f0e70bb9a5cafac3943e6b6aaa526101594771dc7152173bfdde0a15eabd33b031631a62d7eec7686f2802f9e9c75a3c631e82c4394348ba2900825a3a7b11c9f03b88f46501236d9c9d649c727785f5c31622fb249563763622790182ca21aa12e031433408c5a932901b14ae66c3d8d6cdb88ce77cd9281747a8017645d6db95b63038f35bec2909a04ceddf61249b3b2c30384a1e0f674a75f8af4ba10d95157511e03d7ff48361c5ee96ed93bd82e0b88b3a995bb07c2d00173b114f88b58bb0a62cf0219ffff03100975597885736285ae42f749835fe4112e87d5bfae11df46deac900c51ddbb03ecbd10c7e18ee7693778ba3813641554b67d3a8701bdb13d48c8b73afb13f7d10303058f34381743b12a66b3ce1dea3faa81b11d2d96885871f39832104f5c4aad03fe7a9bc248f3ab7bfc410a36b2796a5f84631a4bb5da087146130c01ee27285403cc4467b2d7153014b25ebed3a086536284ca5faae4234a989caa6c242cfd73410219ffff03fd02c408886f3cce6fd58ed8e0e4b34937ea2cf8d22be7163678a214e208ace803032bf0b2068f92b1eb3394868ddc01660ee899b13edfb69b1074c9745d5a0c56037709072e7856edc7e14547ed9ffcc3a2701ca9a5995ddf5f3e580b5b7a5c5868034041c1f32b97ff9e064485266b787f228dc8e92d5997b899fe367f02c45830f9031443c0caf940e333824fa1b0b7f6224c80da9990e6e89429f6351b2b25eb54cb03e1227ff5cd784deb00d61b5514f413bf937e84b64b9d8fba3cc1bd9cfcadc2e3039aa8b1a50db8312bc76ed778be14ad3cff7b4fba308626af231f3edfa1722af103dd2042ec5d00440a389de728bfea2573ffa2282fedccc3700c94a477d96a883403c118ad8f1dc9dca2547864f51bc1779d4eab8076d3622ce248b76465eabd815403697178d7ba3256f2491372460142b43de8572cc63b7fe421f0061874cf447e420370a893cf9c21301237a95e6f9c45b76cfce4ec570a8036e3e8b43ae98222e40c03d19d5f22a3cb3609496c54c754ff34f7b0f54c1132a4ca41ff6d2bd8d5467f6203004975e9e5fae230fe504447f1a45fe087ee9ba49140ecd1c2e1e8496c95082703e99e80ac31a7964193ced599b18c35e11933f2638e7d5b5a40aa0d2a62bac35003784a36cf890faa0ddced89e9d5c95276ec24401a104aac441a79939c88def7ad03d3f085cc9c8252d7c319d91d6f8bd9f252b0b1728015ffe5eb7bc6b4fca371f1034864fbf20fb2f471efdc0c459cf778332a42953c9574451dd15efad564d4614b0326bbbc747bd6afb491641763aa05171faae45a2f935e4b99838938a150c0926203d1b6d6db119622d42c2d0ee0339c01df10e61642cf3f063ed4abd7841aa7289603141530e3ea5126ad840a5f62d2e8028d8e5d9adfe574eaa2b355a143fbd9077205581e0389370739fe49c8ef48cca74a7a4530a80c6a073b451486a8377d272ed0040203eb2f6e84f0629cc362fda4c236afe9020cbe0f12d3bd6151e5f23656c24135bc04592ca56080604052600436106103855760003560e01c80638ea5220f116101d1578063bbc0c74211610102578063dd62ed3e116100a0578063f2fde38b1161006f578063f2fde38b14610a4c578063f637434214610a6c578063f8b45b0514610a82578063ff935af614610a9857600080fd5b8063dd62ed3e146109c5578063e2f4560514610a0b578063e884f26014610a21578063f11a24d314610a3657600080fd5b8063c876d0b9116100dc578063c876d0b91461095f578063c8c8ebe414610979578063d257b34f1461098f578063d85ba063146109af57600080fd5b8063bbc0c74214610900578063c02466681461091f578063c18bc1951461093f57600080fd5b8063a0d82dc51161016f578063a4d15b6411610149578063a4d15b6414610870578063a9059cbb14610891578063aacebbe3146108b1578063b62496f5146108d157600080fd5b8063a0d82dc51461081a578063a265777814610830578063a457c2d71461085057600080fd5b806395d89b41116101ab57806395d89b41146107b95780639a7a23d6146107ce5780639c3b4fdc146107ee5780639fccce321461080457600080fd5b80638ea5220f146107635780639213691314610783578063924de9b71461079957600080fd5b806349bd5a5e116102b6578063715018a6116102545780637bce5a04116102235780637bce5a04146106fa5780638095d564146107105780638a8c523c146107305780638da5cb5b1461074557600080fd5b8063715018a614610690578063751039fc146106a55780637571336a146106ba57806375f0a874146106da57600080fd5b8063541a43cf11610290578063541a43cf1461060e5780636a486a8e146106245780636ddd17131461063a57806370a082311461065a57600080fd5b806349bd5a5e146105875780634a62bb65146105bb5780634fbee193146105d557600080fd5b80631f3fed8f116103235780632bf3d42d116102fd5780632bf3d42d146105155780632d5a5d341461052b578063313ce5671461054b578063395093511461056757600080fd5b80631f3fed8f146104bf578063203e727e146104d557806323b872dd146104f557600080fd5b80631694505e1161035f5780631694505e1461041c57806318160ddd146104685780631816467f146104875780631a8145bb146104a957600080fd5b806306fdde0314610391578063095ea7b3146103bc57806310d5de53146103ec57600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610ab8565b6040516103b391906127e3565b60405180910390f35b3480156103c857600080fd5b506103dc6103d7366004612849565b610b4a565b60405190151581526020016103b3565b3480156103f857600080fd5b506103dc610407366004612875565b601f6020526000908152604090205460ff1681565b34801561042857600080fd5b506104507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016103b3565b34801561047457600080fd5b506002545b6040519081526020016103b3565b34801561049357600080fd5b506104a76104a2366004612875565b610b61565b005b3480156104b557600080fd5b50610479601b5481565b3480156104cb57600080fd5b50610479601a5481565b3480156104e157600080fd5b506104a76104f0366004612892565b610bf1565b34801561050157600080fd5b506103dc6105103660046128ab565b610cce565b34801561052157600080fd5b5061047960195481565b34801561053757600080fd5b506104a76105463660046128fc565b610d37565b34801561055757600080fd5b50604051601281526020016103b3565b34801561057357600080fd5b506103dc610582366004612849565b610d8c565b34801561059357600080fd5b506104507f0000000000000000000000007eec7a4e6ab3cce23ccc41b8601282716b9eadf481565b3480156105c757600080fd5b50600b546103dc9060ff1681565b3480156105e157600080fd5b506103dc6105f0366004612875565b6001600160a01b03166000908152601e602052604090205460ff1690565b34801561061a57600080fd5b5061047960185481565b34801561063057600080fd5b5061047960145481565b34801561064657600080fd5b50600b546103dc9062010000900460ff1681565b34801561066657600080fd5b50610479610675366004612875565b6001600160a01b031660009081526020819052604090205490565b34801561069c57600080fd5b506104a7610dc2565b3480156106b157600080fd5b506103dc610e36565b3480156106c657600080fd5b506104a76106d53660046128fc565b610e73565b3480156106e657600080fd5b50600654610450906001600160a01b031681565b34801561070657600080fd5b5061047960115481565b34801561071c57600080fd5b506104a761072b366004612931565b610ec8565b34801561073c57600080fd5b506104a7610f70565b34801561075157600080fd5b506005546001600160a01b0316610450565b34801561076f57600080fd5b50600754610450906001600160a01b031681565b34801561078f57600080fd5b5061047960155481565b3480156107a557600080fd5b506104a76107b436600461295d565b610fb1565b3480156107c557600080fd5b506103a6610ff7565b3480156107da57600080fd5b506104a76107e93660046128fc565b611006565b3480156107fa57600080fd5b5061047960135481565b34801561081057600080fd5b50610479601c5481565b34801561082657600080fd5b5061047960175481565b34801561083c57600080fd5b506104a761084b36600461295d565b6110e5565b34801561085c57600080fd5b506103dc61086b366004612849565b61112d565b34801561087c57600080fd5b50600b546103dc906301000000900460ff1681565b34801561089d57600080fd5b506103dc6108ac366004612849565b61117c565b3480156108bd57600080fd5b506104a76108cc366004612875565b611189565b3480156108dd57600080fd5b506103dc6108ec366004612875565b602080526000908152604090205460ff1681565b34801561090c57600080fd5b50600b546103dc90610100900460ff1681565b34801561092b57600080fd5b506104a761093a3660046128fc565b611210565b34801561094b57600080fd5b506104a761095a366004612892565b611299565b34801561096b57600080fd5b50600f546103dc9060ff1681565b34801561098557600080fd5b5061047960085481565b34801561099b57600080fd5b506103dc6109aa366004612892565b61136a565b3480156109bb57600080fd5b5061047960105481565b3480156109d157600080fd5b506104796109e0366004612978565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610a1757600080fd5b5061047960095481565b348015610a2d57600080fd5b506103dc6114c1565b348015610a4257600080fd5b5061047960125481565b348015610a5857600080fd5b506104a7610a67366004612875565b6114fe565b348015610a7857600080fd5b5061047960165481565b348015610a8e57600080fd5b50610479600a5481565b348015610aa457600080fd5b506104a7610ab33660046129b1565b6115e9565b606060038054610ac7906129ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610af3906129ec565b8015610b405780601f10610b1557610100808354040283529160200191610b40565b820191906000526020600020905b815481529060010190602001808311610b2357829003601f168201915b5050505050905090565b6000610b57338484611703565b5060015b92915050565b6005546001600160a01b03163314610b945760405162461bcd60e51b8152600401610b8b90612a26565b60405180910390fd5b6007546040516001600160a01b03918216918316907f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74390600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610c1b5760405162461bcd60e51b8152600401610b8b90612a26565b670de0b6b3a76400006103e8610c3060025490565b610c3b906005612a71565b610c459190612a88565b610c4f9190612a88565b811015610cb65760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e352560881b6064820152608401610b8b565b610cc881670de0b6b3a7640000612a71565b60085550565b6000610cdb848484611828565b610d2d8433610d2885604051806060016040528060288152602001612c23602891396001600160a01b038a16600090815260016020908152604080832033845290915290205491906121bb565b611703565b5060019392505050565b6005546001600160a01b03163314610d615760405162461bcd60e51b8152600401610b8b90612a26565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610b57918590610d28908661169d565b6005546001600160a01b03163314610dec5760405162461bcd60e51b8152600401610b8b90612a26565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546000906001600160a01b03163314610e635760405162461bcd60e51b8152600401610b8b90612a26565b50600b805460ff19169055600190565b6005546001600160a01b03163314610e9d5760405162461bcd60e51b8152600401610b8b90612a26565b6001600160a01b03919091166000908152601f60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ef25760405162461bcd60e51b8152600401610b8b90612a26565b60118390556012829055601381905580610f0c8385612aaa565b610f169190612aaa565b601081905560321015610f6b5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420353025206f72206c6573730000006044820152606401610b8b565b505050565b6005546001600160a01b03163314610f9a5760405162461bcd60e51b8152600401610b8b90612a26565b600b805462ffff0019166201010017905543601d55565b6005546001600160a01b03163314610fdb5760405162461bcd60e51b8152600401610b8b90612a26565b600b8054911515620100000262ff000019909216919091179055565b606060048054610ac7906129ec565b6005546001600160a01b031633146110305760405162461bcd60e51b8152600401610b8b90612a26565b7f0000000000000000000000007eec7a4e6ab3cce23ccc41b8601282716b9eadf46001600160a01b0316826001600160a01b0316036110d75760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610b8b565b6110e182826121f5565b5050565b6005546001600160a01b0316331461110f5760405162461bcd60e51b8152600401610b8b90612a26565b600b805491151563010000000263ff00000019909216919091179055565b6000610b573384610d2885604051806060016040528060258152602001612c4b602591393360009081526001602090815260408083206001600160a01b038d16845290915290205491906121bb565b6000610b57338484611828565b6005546001600160a01b031633146111b35760405162461bcd60e51b8152600401610b8b90612a26565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461123a5760405162461bcd60e51b8152600401610b8b90612a26565b6001600160a01b0382166000818152601e6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146112c35760405162461bcd60e51b8152600401610b8b90612a26565b670de0b6b3a76400006103e86112d860025490565b6112e390600f612a71565b6112ed9190612a88565b6112f79190612a88565b8110156113525760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263312e352560e01b6064820152608401610b8b565b61136481670de0b6b3a7640000612a71565b600a5550565b6005546000906001600160a01b031633146113975760405162461bcd60e51b8152600401610b8b90612a26565b620186a06113a460025490565b6113af906001612a71565b6113b99190612a88565b8210156114265760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610b8b565b6103e861143260025490565b61143d906005612a71565b6114479190612a88565b8211156114b35760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610b8b565b50600981905560015b919050565b6005546000906001600160a01b031633146114ee5760405162461bcd60e51b8152600401610b8b90612a26565b50600f805460ff19169055600190565b6005546001600160a01b031633146115285760405162461bcd60e51b8152600401610b8b90612a26565b6001600160a01b03811661158d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b8b565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146116135760405162461bcd60e51b8152600401610b8b90612a26565b60158590556016849055601783905560188290556019819055826116378587612aaa565b6116419190612aaa565b6014819055606310156116965760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420393925206f72206c6573730000006044820152606401610b8b565b5050505050565b6000806116aa8385612aaa565b9050838110156116fc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b8b565b9392505050565b6001600160a01b0383166117655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b8b565b6001600160a01b0382166117c65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b8b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661184e5760405162461bcd60e51b8152600401610b8b90612abd565b6001600160a01b0382166118745760405162461bcd60e51b8152600401610b8b90612b02565b6001600160a01b0382166000908152600e602052604090205460ff161580156118b657506001600160a01b0383166000908152600e602052604090205460ff16155b61191c5760405162461bcd60e51b815260206004820152603160248201527f596f752068617665206265656e20626c61636b6c69737465642066726f6d207460448201527072616e73666572696e6720746f6b656e7360781b6064820152608401610b8b565b8060000361193057610f6b83836000612248565b600b5460ff1615611deb576005546001600160a01b0384811691161480159061196757506005546001600160a01b03838116911614155b801561197b57506001600160a01b03821615155b801561199257506001600160a01b03821661dead14155b80156119a85750600554600160a01b900460ff16155b15611deb57600b54610100900460ff16611a40576001600160a01b0383166000908152601e602052604090205460ff16806119fb57506001600160a01b0382166000908152601e602052604090205460ff165b611a405760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610b8b565b600f5460ff1615611b87576005546001600160a01b03838116911614801590611a9b57507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b031614155b8015611ad957507f0000000000000000000000007eec7a4e6ab3cce23ccc41b8601282716b9eadf46001600160a01b0316826001600160a01b031614155b15611b8757326000908152600c60205260409020544311611b745760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610b8b565b326000908152600c602052604090204390555b6001600160a01b038316600090815260208052604090205460ff168015611bc757506001600160a01b0382166000908152601f602052604090205460ff16155b15611cab57600854811115611c3c5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610b8b565b600a546001600160a01b038316600090815260208190526040902054611c629083612aaa565b1115611ca65760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610b8b565b611deb565b6001600160a01b038216600090815260208052604090205460ff168015611ceb57506001600160a01b0383166000908152601f602052604090205460ff16155b15611d6157600854811115611ca65760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610b8b565b6001600160a01b0382166000908152601f602052604090205460ff16611deb57600a546001600160a01b038316600090815260208190526040902054611da79083612aaa565b1115611deb5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610b8b565b601d54611df9906000612aaa565b4311158015611e3a57507f0000000000000000000000007eec7a4e6ab3cce23ccc41b8601282716b9eadf46001600160a01b0316826001600160a01b031614155b8015611e6357506001600160a01b038216737a250d5630b4cf539739df2c5dacb4c659f2488d14155b15611e89576001600160a01b0382166000908152600e60205260409020805460ff191690555b3060009081526020819052604090205460095481108015908190611eb55750600b5462010000900460ff165b8015611ecb5750600554600160a01b900460ff16155b8015611eef57506001600160a01b038516600090815260208052604090205460ff16155b8015611f1457506001600160a01b0385166000908152601e602052604090205460ff16155b8015611f3957506001600160a01b0384166000908152601e602052604090205460ff16155b15611f67576005805460ff60a01b1916600160a01b179055611f59612351565b6005805460ff60a01b191690555b6005546001600160a01b0386166000908152601e602052604090205460ff600160a01b909204821615911680611fb557506001600160a01b0385166000908152601e602052604090205460ff165b15611fbe575060005b600081156121a7576001600160a01b038616600090815260208052604090205460ff168015611fef57506000601454115b156120ad57612014606461200e601454886124ef90919063ffffffff16565b90612571565b9050601454601654826120279190612a71565b6120319190612a88565b601b60008282546120429190612aaa565b90915550506014546017546120579083612a71565b6120619190612a88565b601c60008282546120729190612aaa565b90915550506014546015546120879083612a71565b6120919190612a88565b601a60008282546120a29190612aaa565b909155506121899050565b6001600160a01b038716600090815260208052604090205460ff1680156120d657506000601054115b15612189576120f5606461200e601054886124ef90919063ffffffff16565b9050601054601254826121089190612a71565b6121129190612a88565b601b60008282546121239190612aaa565b90915550506010546013546121389083612a71565b6121429190612a88565b601c60008282546121539190612aaa565b90915550506010546011546121689083612a71565b6121729190612a88565b601a60008282546121839190612aaa565b90915550505b801561219a5761219a873083612248565b6121a48186612b45565b94505b6121b2878787612248565b50505050505050565b600081848411156121df5760405162461bcd60e51b8152600401610b8b91906127e3565b5060006121ec8486612b45565b95945050505050565b6001600160a01b0382166000818152602080526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b03831661226e5760405162461bcd60e51b8152600401610b8b90612abd565b6001600160a01b0382166122945760405162461bcd60e51b8152600401610b8b90612b02565b6122d181604051806060016040528060268152602001612bfd602691396001600160a01b03861660009081526020819052604090205491906121bb565b6001600160a01b038085166000908152602081905260408082209390935590841681522054612300908261169d565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161181b565b3060009081526020819052604081205490506000601c54601a54601b546123789190612aaa565b6123829190612aaa565b90506000821580612391575081155b1561239b57505050565b6009546123a9906014612a71565b8311156123c1576009546123be906014612a71565b92505b6000600283601b54866123d49190612a71565b6123de9190612a88565b6123e89190612a88565b905060006123f685836125b3565b905047612402826125f5565b600061240e47836125b3565b9050600061242b8761200e601c54856124ef90919063ffffffff16565b6000601b819055601a819055601c8190556007546040519293506001600160a01b031691839181818185875af1925050503d8060008114612488576040519150601f19603f3d011682016040523d82523d6000602084013e61248d565b606091505b50506006546040519197506001600160a01b0316904790600081818185875af1925050503d80600081146124dd576040519150601f19603f3d011682016040523d82523d6000602084013e6124e2565b606091505b5050505050505050505050565b60008260000361250157506000610b5b565b600061250d8385612a71565b90508261251a8583612a88565b146116fc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b8b565b60006116fc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127b5565b60006116fc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121bb565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061262a5761262a612b58565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126cc9190612b6e565b816001815181106126df576126df612b58565b60200260200101906001600160a01b031690816001600160a01b03168152505061272a307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611703565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061277f908590600090869030904290600401612b8b565b600060405180830381600087803b15801561279957600080fd5b505af11580156127ad573d6000803e3d6000fd5b505050505050565b600081836127d65760405162461bcd60e51b8152600401610b8b91906127e3565b5060006121ec8486612a88565b600060208083528351808285015260005b81811015612810578581018301518582016040015282016127f4565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461284657600080fd5b50565b6000806040838503121561285c57600080fd5b823561286781612831565b946020939093013593505050565b60006020828403121561288757600080fd5b81356116fc81612831565b6000602082840312156128a457600080fd5b5035919050565b6000806000606084860312156128c057600080fd5b83356128cb81612831565b925060208401356128db81612831565b929592945050506040919091013590565b803580151581146114bc57600080fd5b6000806040838503121561290f57600080fd5b823561291a81612831565b9150612928602084016128ec565b90509250929050565b60008060006060848603121561294657600080fd5b505081359360208301359350604090920135919050565b60006020828403121561296f57600080fd5b6116fc826128ec565b6000806040838503121561298b57600080fd5b823561299681612831565b915060208301356129a681612831565b809150509250929050565b600080600080600060a086880312156129c957600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600181811c90821680612a0057607f821691505b602082108103612a2057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610b5b57610b5b612a5b565b600082612aa557634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610b5b57610b5b612a5b565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610b5b57610b5b612a5b565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612b8057600080fd5b81516116fc81612831565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612bdb5784516001600160a01b031683529383019391830191600101612bb6565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203f7eeeff9eea23b542b09d7e03f09e6b00060faa4a36837c25de55e6cee14ff864736f6c6343000811003303d35264046698e48d7f5b13a73fe09ff0fa5bfdc0425cbb8418a8ef2c6a7efc8003a5de00ea2a39fc3c368bdab31fa4c8488be50e179fb9fcbd331e1db8ce78e0640058200313e649533ae6988f68b40f2f52e177a3501457bffef75fed2e61e27b61ab104a10589b6c870d032e5b7e0332f9d4469267c1ea2e74a73e0f58d79c1d21f51324146547cfb83b770f33481b00582003cb8f184c1978382fcc97f84d6d48209c5d3720dfdf8e505ae364ac51a680f04a0f5db7403902fe1352c2037c811e3380c2b5cdf77778d5f6c445cbf430535ad4ac3eaa977776086e13075003c93626e56997c70dc7476e6247cb4989ad03769c4c6a983775ec0722ffaa9c5900581f029920b7a05cb74f750bb91ff5fea51f493e705f2711a37acb29acb2b683c54a3cad1bb83629700dfa2e00581f02b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9440101010002182200582003c6fa98d5f23ec8a23874a953dc9d15cbb7d70da3b2146ac687cb8dfbb8e6705820fffffffffffffffffffffffffffffffffffffffffff3dfbe3aa5aa82a110ed7903e9b22d1e9e727d3aa6994f4dbe7d0405f8522074cb4e05636bbde08d4c13fe4d03bd6e6bb8a2a44655143db94dda585a31ee3498298f42137c377773c6e974b1ab03a7bd4531397e189a61e418a4bac853f1c5408f59a18a4deade551cb034802074038482311ebe3358c020cff55698a9e5d13b0741345162c94456b67c6623f8f4a3039343ed1085308021aa1e6a0148095ed413ed06c714abfd874caf8ffb40d94c980219cfdf03f8bd8e7769d793cafd6a394f00551aae700f8a516c8471359971f7fa444406aa00582003ed7161a18e6bfca6aef3dc173195c90b0ff0d4abcc3e33b492755cd120a3504a0238ea42ed1d97a6ede203bcbf802df32db450041fa373a55dcadbe5d1a90fce115c5754db1582030c07f10058200363b3bad55e3721299b4b3f3cf2ee0c1fd6f1c17f60f0408809c66d34eb33105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820033eb1d903bbac6c012364ffbc48abfa0c7eb4f5f8f042158d67dfdd00e7e5304a1b1e21e4bd6adccb344700582003b56651fd5acd3d80ae47a74d85aea7bbad7ad4651f324395a36201f33a01f05820fffffffffffffffffffffffffffffffffffffffffffef82c82f07a258de39a2100582003424094593633428acb37b58957abbdca37036ece7108790f9fafaaed2849c05820fffffffffffffffffffffffffffffffffffffffffffff870be152696ecec565c00581f02c0e59269531a76a0ffa20a27bc0cd331aec0a351b3432c7a7d8e58fe4c084a0880c44b9c86e0a8e58500581f0280a91f82564358db7dc24e11ee75fab4856f5dba739df1bfafff172dbb104a0e7dfab5c8a7b33f35a202182403038bc5b361c1f3d023d17ebac70c6a1dc6c79eaec205dab39ed5f03d594e23110326aea503194794aca832841b58a781e5e6323362542131c6ea71a4f030f408d20058200366a76dff492c34c387787c40237b42d43e87a369e526c5a38af40e0545a6704c0338a47459b659a7452f9ac7005820035a3f4184114bc0fcfe6065c92951be15882457a693892407c736a286ed50a04a3a48f741cd4905ac25a000582003f2f989a56404bc1f6b91dd7f8cbedd6f8055dfc7c74e7bc988945620f3fbc05820ffffffffffffffffffffffffffffffffffffffffffffc2ff69a42b74edee3a6c0058200389f160d6b3fa22b71a83bceadb6ac60d1f8490e61e836483546f46a96a61904a0894a3f3e57ae366f54d03a1f2bd89226ced4aa1cb92968abffb61e33922a10e5d13c882447d4c12f93c38005820032c4a75daf8a68d2bc48bc2a01d51a7630f1b73b01cbc46fbcc4fccc86117005820ffffffffffffffffffffffffffffffffffffffffffffe41524663f4e29f55f2e032b01dd6bee87e1a366069eb0e9547d70d53d972d812d1ebfe8bbc9e22f06751e0219ffff0364ec4c3a83be3ea528abfd49eff8cb931da7d6341b086cdf6cc4b13259bb85e2033ffeda23f4171b08aa605572c3f2b4174977ddfa4d6e53a0c6244d71aa6c297003e1bd5ad26fed3f46109937e285b6ac6b203d44b18343b00eba01f010dab46c6d0364c8b9c5bb3c2f1baa93002a9ac23cc99fd8191caab20dd082f424daccb43fa50320574b70e029c46ce41a8c3999c412a96b8d52b189bc5583ab7b92e523f7943903ec1e77f703e57aac66c41a07ce7b962a5bb6dea30e333353ed0c164ca85afbc80349f647f7e298a5b033ab54f556f09132abbd5a97ac3382cd9bba099c37f2705f03b8a53c59c52183cbfd3041cc53540e66130fd0ebe5f1445de0e5b1f02d900a7903c29c5f6b749ee212b76b25517d3fb39054df1077172ac66179080373678b9db000581f0252ea20cb2413501bb98a649f55e74bedc994ce588a2e29772be48be57b944a039992648a23c8a0000000581f02fb4b077c139702e7562a25a820ae3a23e1bc2e3313f93c9e1eeb33b096bb4b14b4b1e74a70f569a65d370219120000582003f624e2c913bd97674695a85fb78531751e3118e68e8afe2fa6d266b7b1a1d04c033b279ac4516e4ce13c4d4a005820034e60f448467ad78f0d96337eb14659b090a0e43b5570cd1cbf6b08ddf36580440113882002193ab40383f137c07baf3b6029423d2ff7c55410c221781fa9a3584bbb31cd16d6bed6b403116d4e4155e484a7e04da8deca3734969c3769eb41df4f7febd5f421660de2b603e1091acf0225be24dda3995acf776f5d7582961281da026d0ac95cbcfe0fe8b80330f62feabf86af5f58f467aefac3ca33159aa82e627822c1a35ca147831acfe603f95ef98229c130325ae1e44c9a2427ab79587300bda0e1901cafd3f30634455403eaa0b1b32d6430b924db987f8d813c2e0cf8bae032727dfbfa390750203de12c035c1f43b55177c69b61b28bf40353f99e0bde092a67083442088a08de7b1af0190219ffff039cbf51fc9ff7d2ffc857a3be1873920882d7bc989b1f435a51dad09e4669c4f803196f5e94ae04ae03abfa75ea5544bf67acc2c34dcf2e58f34fc537acdcab6cf6039d2979e63b7a24f0c0db94e1c4bce639d9c3902a9653eec55f9cc277631d1f0003c63778cabc32e6350eb853213469af7bb4e4dad11597cf5ce50522fc8ba5be4f03899be9c8cb08b4f538a11ac297cd1a3a635e8ff7d044564aefbafac448b0d2b20058200326be27212b9d1f825e7d9a938c303fd94b6214a4c55118c15e0022d710c2905820ffffffffffffffffffffffffffffffffffffffffffff878140e1cd16a92e4a0f03bd340b4c0f0c330856df2bb98599afe17118c7183d741d55bc32f157270ca2c700581f0227947db38e41f5e9de61671744b4c3c079207df6b9970183f80fe24e928f4a0ae32e1e5f8c5a5382db00581f026c42779855929112d50ad9337a925cf09fd2dbe3775d700710bd8b6ef5a25820fffffffffffffffffffffffffffffffffffffffffffff6b00759efa192448fa00219108003a195391788f648195198a0a5ef13b0a286f1b93b8233f62a6aa3bdf5fa8112ad0369cb87041059a7e90efe67b59448793c96e8fb8358c1bd429c5653eea925080e03c97b244470698d9c31c405f3d9eba2ec9fc10cc62745a2d102bbc7d7bf2fa254036c56c2fccafad45072e76e191d50062604208a69f80dc02d0e9e0a944540750d005820030703a01b10365bc5abf3183a09811a0543b6b54120e9b6590d246326055c504a03242a8038247a931ac30058200362cdfd67cff3e34c3c1d94271f6e0e5c546364006a7486a264060614e980b05820ffffffffffffffffffffffffffffffffffffffffffff97b38d3942ff777e626203da0aa0b7dfe049a2886141f2a24fbc6eace94891d9206cbed78745ab0dfc11a30219bfe303f02e33b5e311e74aaa7e77f15fc07f4e57a4c2cd50871fb451725f550f10c597037a4af93e24a8295a4f1b6fd905f1c9fc90e5846dcc0a2ce8a6bd283f5fca464d034d5b9509c419ee3e82bfe4ac241aee580738f7ca9e07996c0cd151802457efb403a8f272c079d8764d20f1b69ab269c35b1607837d1140909b23f9c97bfa53704f036f366bc2c20c27c2b869114cd2f9619d9318016587e63da6ffab5d590c33c0aa031b0aef54c958d07a98654b9880c8e6395335bd8d61609cc87afdcf3a823e20520058200353d6d53661106a4d48d2b11355ca6b4399f1d5b0a2b38b2e3db95eb5d1d8d05820fffffffffffffffffffffffffffffffffffffffffffe21461c29efe037b7942403226d137cd0807b609961aab45f7816f449cb67ae9d943a54ed827eb318f2ab89035edfcec5f242be7a89afc74894dedc5269382edfdc8af2742a86729e07de887303251cf6fffc6674f79d7df6bab3bd907ccad40236ec03ab0ade23aba5b5962e9d0382d2221a5e06b40a032b2bffaafe44f02abdddc557066321a7494117df2ea28a039ce524774d7f2878c3245b9d6d16177a6e7f4a4426b8f5c380bb56dd668668c500582003b7181682175691db1e2fcddb58901f86dab03436b18882084b300eeb86e240491472c410305e3b56a000582003a9d3978c0cd01a085ec4352686bb1b189eddad6455ed2aaaa2a36468615c405820ffffffffffffffffffffffffffffffffffffffffffffe6951d6c2ed54ef6baff00582003ee5e63dc50499082570fda04141f433fc369acdc619bdd32f80647db6a3f104a366fba1cba4890cebcdb005820034b02c539fca365daa4d37bea0bbc07a09cf70b2359dbb88781c07d638c313049ac600b5154aaeb73da0347c301abf2bd4559ab7d474289c46d585a811caa3c77f07af8c89f379c741c6c0219b7c703cfd84fdfd2798f5308c416b06a1fdb352eac8689d2ae55af0ec4e61816f26acb00582003e8cfccb1e3658e3519e8b0af34fa593aa58c3531462bcbf601554e907ff5305820ffffffffffffffffffffffffffffffffffffffffffffdf0042b4fe18cbbde58003e50eac7271d7393626e20dbb55a0b1410ddb908c38b888994c5768d1c8687e36036d0fcb675744d51577b4fcaff4e6bd9ee27165b37e3d5b3017419e7bb46278a800581f02a77a8e250e5a361f6cb71a361f796e8f10449fd00239dbe84f1e1529ddfa5820ffffffffffffffffffffffffffffffffffffffffffffe139e8cf497576cfd67300581f029be5736be79a133ff74243beebc4b91f96f5b3eb029dc7a63d33a10328a45820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219040200582003e32ef5b1780de163c1108dd6ed668ba677ba59c10ac550f069637a6cfe7e705820ffffffffffffffffffffffffffffffffffffffffffffa3312be10152d9677b0e0325702c8274988389ab5eb86e2bcf4f289ca956a16be27be038e31f587c74446900582003952a8dadc1306839809896f6b61480825b4387b46d393ab5fcc5a706edd0905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003ce18c58d14faa452a1c1d3d2f9af151df517d735e2913171144511e9301a805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003346ae9972beaea6af219179d2a2ed130c89916bc235c545ef31e42b4f4fc805820ffffffffffffffffffffffffffffffffffffffffffffe307c2308cb444a6cdf20320d6ef149b09104e5397f16309653bb998c45915fb2d1fce849dfdcf3f80610100582003599be448a7e64319c711df342194eb29a40db4a039d2a3534fc370688956e05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200313b8da8f3f2278a2335ed32c1e5072f2806b721c1bcb2bc402076e47d8e510496c6b935b8bbd4504b00219eff603b682d771c72f556af3ae5e5579284360a2a2a5a53f39e1ac1d46892645d5145f039e4e3187b3d3856292b4ba648279722a09e134604e13874cbc55364fea38d1e403e85aecbbfa740041e55ec9423371809757cb36ac7521d6080d9091625cafdfd403874688ff6a51f2a98442ef936ce80fc6e452e0e04e18ae09ba7229b19b289dfe0219ffff03716b3f19f42642479ef24b35454223a1178fc424b6daf5824d25728ed2584a0303f121910a3a7fdb456b49536f146ad3d1a0d2c550736733ce966ece49f47ff2b903a0ddb5e9795a93de0540e19bcd04b6e3a546c30123e66955404539ae28d84a7d03593b7835770db0f8886e1252ae3d5cd472da40ef5ebe69d30e57a4a565debc2d0360775703d16517214e1b0d24071237fe00a0eaba0a50df2d0521a22faa33310f03df41469cefa415ef914a38b0660d2ee2e491fe57ed1656736510b9feadbba699038455f97cbe41cb48e05a58cb4e5cf2599711e220a4dbe2335e244dd76dd9079603759820b46ad9c836836359626cefa04dd784e123a00c063ac4d9d8664e93d608032f66dfc68492b66f080ae3cec66b7b0153e662e0b57aad4cf0fe231cfffedd73038b1ad84dbd7fdf07566daf6b0ec7a1317a24dbaea9cfe76876d22d0147a777b603e0aa3b717010304e0cfb18d84d854e0a7b81d1663ab419741b338fd66f93388d00582003af81b18a06cf7c831a87a9a53391cdcb217ab5f10a832c4a518149b8c6caf05820ffffffffffffffffffffffffffffffffffffffffffffba31b41f8bf4efeb1d2400582003a802f8a8f6a25adf2ca052008aeac04f44bd5d3bcf7550e867168b1451bf305820ffffffffffffffffffffffffffffffffffffffffffffc5821e6a20e4249be59100582003fcb086da6b71d5204c651a391de8b158af789b3ca94d8d993bac8d66893ff05820ffffffffffffffffffffffffffffffffffffffffffffc7a39aaa93cdd0394f18031262603ac3d03c4ef603897ac7c28d75bea69f4d54b1117f60a11c136587430b034fbe244031420374eb86a3b4ae5619cf5177c654b684eb75754503b86832342e0058200327b13f0c0f73c52926fb7aba1851a60c678189ec8f2caeaca875abbd0640504c033b213d90453cc9cd9bdfca030a67445a18699f63c3c231ada41e03bc152aa5ba0e5214be2379ea24fa57334803c0ed5070d644c1c4afb6780d035d3d89c91acb10ab607ca52ec4d61515c188b303a9c871daf818e5409c598abacd589fe31733d2b9b7aa7f023f977a32e4c88e180058200384204891e9f06f7abb86ae6f88e495bc11932522a8e8d4ab0a43e48fad77504145038c121552ad89c7520f5694be146419337d8014272ccdcf7939cfafe68391312d00582003ecbbc15d78446d1d8be33190bdf83113202a27e6de9a3c5c4f8e54d0de49704a014d69e2709c9b32a99200582003455aae41c02da86e828d1b1636266e8769106fc280bd2f2b0919763e662bf05820fffffffffffffffffffffffffffffffffffffffffffdc15c7ed03c4a81c1423903630bcb0194edba0443aaf195f9b5ed0596f1a5575472838866562a8b55b54faf0219ff7f0367e54e5decf6e084e87af1a98a883b1806fb2eeb3e860c1770635cc14d96cd08034dae3f74df120db4d68c3e5fd79f1f81d1bb1f5747cc2df36d2b9e59a4a08921033333be770a2c2e091a6a1e6b6ad6b93264483c84298d21ff5e3a358e620f86cc00582003c529ec8681e10ba98c53477ca9f2163a9e9f18ebf8050dad2d9b54aecd96f04961d573eedaabea1d19033f3bfb5d486fc8c1da832bb031d27723ee2556c8967431581d289ced790eb22600582003150cc52f44d4b26a39b490b718ff721f8b80e2d10f57519129b39336a434d05820fffffffffffffffffffffffffffffffffffffffffffdece61ddc748d5ff41531005820039d85352ade28fe37229c1a871be8320a592b50cb332e1f7bb15ccac6ee2cc04a0216dd1d89a040cd666e03f2701160d56932b9a1a23f73d343bb1934a113a2a1131b4b6ad1e5c58e91662a03f83dbdab94d21954f49368bfe5e8bd0c2d09e37b5300263f2c198f0119346a3b00582003dad4c15853437c5d65e0795a82b555edb4da24a174b3d4d9093d545e573dd04401d8a0bc036ec1bb268d7e172d5e70ace29d538b9066d644376d471496dc720ea997ef3edd014109038665186d84c9ac592b47e0c0c46e38cdd518157f994919dc87dc4fa899a59b980219fde90385b6f39e985f8a8c20cf5bd94ac3a9ca4cce3169056894daeebd836fbfbf9d7103ae8576eaa767c4ba17b50e084a58beac702dc717f3579b3b6ba74df1c7ae4d8700582003a96dca4d44c0d12e4a36ab0011073103ef8605660f3e5669b0fb378cc4e5504a021e19e0c9bab2427b0f00582003febfd415cfedd8173dba85e0c95e59abd01ff6bf218fd99ff0f55080973dd04a11b4c229b1efc1bf0b490368f8aac0dc462374d19505d561d677ffe053474714bd54b0bf5cb9eebfdb2bb800581f024999f9a99b98d3eea730175ac76bba9b2e16261dedb69adac8dc2daca6545820ffffffffffffffffffffffffffffffffffffffffffffa756f678f321a69786cb00581f02b3352dad06b8f8d2da19a5f15c9c85e91a3897bff982b3bf6595638c7bed4a14d1404d31f26a03616e00581f02343d65157fadcad5821ee87114c97860bc2b48fa0f12d08a31727faae9c947cb19840e23d5a60219422000582003995b759f2693df781ca90a1d9809b1d2260d870373098e6d95f7063795c1704a2abf844a262b119712c303e6ecc05a6e106d62b27930062b827d6573d748319ccd1c25dbef61cb12f51cdd03bfddb6a3187a7a354c111562a1c04e77be913d6b732680fe4f7d934fb64c7185034e172008bfaa11394c00fda3b0d6364231d2f312636bad8e8e41a2fab2f56c73005820030d204504b568dd60689b1382a0780adb9488792769af973604424a1b3506205820fffffffffffffffffffffffffffffffffffffffffffeff0cd3cc5470f8a5412b005820033837d038503614990e456764afc4abf34947e606f3f50993b43a79d16dabc05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820037a3c9797d64d9e122b6fee48014dc6c18af8043a3bf3fd134dd6a52462e2e05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03734f95aa15fdbcbd7a9ae9a55bc6d37e5c57d12a5b2e90a7020fe339baec536d00582003fd8917f95729e9342ffd81bb9e3778c9640ce1bfb388553d86428c94a36e604a2962639a4fa3257b03750219fbfc03b2f992031edc7152bab9291c5bea60ec9d05dbb51c2c9140f640674a635353c50219ffff0392ea0a65c50013da8647ecc0cb7a1e0532a82441baad8db379d589677c0f5f1303ef8045becd32b0cab3a45f0b9a8e47d8982dfd85917b7dda16a435ff7c12ce30036fd8f2a584cd2a4efec708d9caa15e3d9078edb65fafa58d5a508d4e2b9abbc3031bb75655d5b1e6f55a806b14cbc00e659dd608af9016619f60abf6d5d729469403d91ee47032996c6a7954b108784543c6afc8242c59ac8b9377d0607986619ba403d7bb283cc21e1913303bc6212547e63205b4b0e3154a80d93b8f93410298e6e203b858e12d9da560fe1045ea78a2688f1177697a5b4471efb4fcd8802d3ba7b5fc03412e3d7c939b736e2689896f8a80d995a46f29824acd3a28cd72609d8258657d03f5661ca75b7c7ee0570423243931288f2862241ce3744a2336acfa4589062d570398d5e69f1fb6b9c7003cf8dac3a7bb33f860e2dc0b780644bbf49963d492959403cc46f42ab25ee17d9bdb334820ec0a7c142f8c56aa07c4d350237461e4b60d14005820030ce5edf42a09bf60be339d6388effca33b4fff95fae8970a3fa6d7d4d917d05820ffffffffffffffffffffffffffffffffffffffffffffea72a05f41b8d4342a7803ec05015ba0909564adc79895303eccdbdf3049662bdc3e792142b9699948884c03076daf2bb9756b131fac01409492724b41d7ba1af338c6c65796a84869246c1f0058200305be5b5c3bcf760e374cdaa95531c2ef678ef1f66e5653722531d85719a7e04a032d26d12e980b60000003d0f1f04a5be97b88f554f951680c34b8dbf59eb1880140e32358cbb22d6898480325c515a9679c9adf02b7cf5655969d5030615bc142b98482e66e1b4906f827c003565cb71373c00ee0f5eaff55527f18dd039c7e44269392208a6394a406c48044037d132b7f79cd95ed72e5f7bb33c41c60e88c31b231d079a842ff1d7c69776bb303dc648501e7b4cf343235d4fe92ea3c35569e871d8324d094385d586fd7b536cb03ea3ddba54b8be029209985a7f08ecb26fd5b154b6cfcd04b74191075192d75af039443aef827e603d40c65a68056ed1c51fcc8ec63241a9f7f1b4a6d79f7af620c00581f0264e2ab896a63344c79e797119a0e3f235bc58fe67ba7394d6962cf0f3f9e4a0defa295e89db42081c900581f026217f3d810655888e91d686c698639f66d58a187bb0cb6c9ab31a6457abb410100581f028f1dc0aef5b2adbe5e98ad7f4216d96dea9267719a377287af5cf03a5d024ad3c21bcecceda101a4ce021940090219ffdf03c2812b9754c79e25707faab28b59167482468ef9b194cac6838336cdafe61dc10390c93a600aa354b5f3f24a05debcda96b2439cef7e969b997fb86486da2bc1c500582003c8de6c5b6c89c722a7000d3a45b7e0e0d52a3b38a2dbb1a74521661c0653a04a505d4dfd24581fba88f00305a69309431090bdc83d88a56d174c1b61d6711d04e655c168060e8d06bfc85903340dbbb9895a8665638d06ee0ec68bbf9291781fb79d1df4d3c7e12cad88e98503e621e5704d1b8adda95beaceac83d81cc79caaadc0d12341f2fbadba2f0d387a03b9eda390bd09e53da63bf5e40423eec95328d6372425b795754a1e7506ef410b030648a1f4b7240092f10d7513a3f5448a37c680c1dba1cce8ed48525f2fd3d38f03716c3f6fb469a991e3d82be0a6d47555343aa147e4097fb138afbc05f1cf25a9005820039d08fe7dc0510d2af58dd3ab57a354d891a12546d4825b27427250752ac0b04a071992b3bb2a77ef25e80330745caf4dc43cdef3b2a96b71f336a22c6ab6c443ccba3581be8aa64f968645005820037d7e40aaa451ed1b5cbfbf37eff602b74aaecf659e565b1acee30f1da90e405820fffffffffffffffffffffffffffffffffffffffffffff1307216d86104f74a4d00582003ba0a6a5e55bb50a605c35b2b1c01c4ceaac072d55f3771ee7d82083c5a88e05820ffffffffffffffffffffffffffffffffffffffffffff4c01685d04452bce10d303733f09c0544a340db36c653c5b1a63006a887ddca98f5d6c1904e8011dd699f2030084121c9b7148a86e8d65a3f0cef0bebf54d37e038b5278c3532ba77acc8e0e02197fdd03425d8c214bbf44df68bd4fadebf72b98ed77e2ad4251df9be1de345442cc612d03853a504309c65e1f3bf2123f522430a9fa6d7bb56c6d8bf29aa8db5012e9a55a0346b044b8394185d2922750288a48970b5dbfed8063955737c59c8d41ae890ef303db240bb05acfc47da4a758b8e55dcaf5f4306ca86ab3937ebc2c415f370813930219ffff03496945d2db41ca7aa98f42a47ee97fba26d3988cb0d0cfd52a06d55e6b36c56503024624dabf0268de970a6eeab7b242f7edcc242fa5982ff4559a3f2ec5a17ed603e46ad41b712075f71ec725bb053599e8d1156082fd9ab967cd705dd5730fff5800582003443f24e38c66b008d18e550bbbf0a8a2098623f881f15c8a3c576ef4a23dc04b03b8c23a4d6ac71ca5e94b035bd56100f89dc2b90fb4a76df257b37297f86cc640154d911be208a7d96705f900582003763e4b395edb46c181bd35d5b8f921299985b22609678faa9215f80aaf91805820ffffffffffffffffffffffffffffffffffffffffffffe2969d4ca775dc1162c903c730f0154993860218f0ece4a2404d86d9ac1b4fddee77446313d16446b30b0b034503087de05de721dbedccbf9d6f89af3039995896641f08809e6d8c1bb988670058200389ce5804f96a93433a7cd4b6b6afa94581607284b8f11edf8d2a25ad6954305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820031b3f383d3f87409a745488431f3539b775985dd998aff6fb68cd913c2797304add47b1acf63f3d4ba57600582003f7f1259e3115507938a9b4dd8e0da36e6aff3de927ecc43466bdbea192505044b2212de2033540da4aea2390d7bbf6342c6f15535f5541138f08f608dcfb183d3d591ecba403514c3800c8dbd5b9cc5a8afcacd7f5efb8010f275f180a36d3da303b8b1c34be03cdf732337fcb4889fb9f04e31298f98529850fbff1559cda101009c376b3cd9603b9942e157c0d2e2af21c6f4670162c4207993b56b04238599cadf70281d1afd90219f7bb03c4b8a466d9f2680ec972fdf4e681b9c433501081226357828f5d5c45b1e825220058200306e32dbb08a2116ae9e0c67fc03052141c06fc74f27fb8a2d0e7497eb7c6604a05ccf6d4b8217076b4c200582003d01cfe93cbbb767fad8c056e812ca49cc5a3ede82f74e82efa6e9b541ca7705820ffffffffffffffffffffffffffffffffffffffffffff8a6b5ed0cd856ceee3d1031338d447ef093ca3b3041bb7d83fd2e4a7eb9e452360ff835bccb21e2d346e3e00582003e79cc257fce05a25fdea0e2bea6084a24b4cceb9d5359c6c016e699fee65c04a08f4894318d0e08312e6035180b40c08c4d310a8a164084331bbe753127cf50c2fd699656ad75f7ae10828037ece169a398d9affdf4b9601b1c27c1c0a08230b37b70d9bee58984cd45c642800581f02c2dd9d4324662478cbbc2424d03625128b07ef1e6049067b16d572c9a7b15820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02d86a94d46d963a663a8c909d6eb2419a182deb48c64fb6881d68c041e86a4a188dca7ee6018b55b42302188800582003cdf674feb21f72b192fd7349c8fb5ad24bdcfeefabbd05c4fdd75b4593b2304a0413dcd7399a6576539303f3ab56ef85c98afa7a342f5805830a44bf3e3fba749df81a932ce788ea4f493c03405e0075650259205d2a864b6c9267904765cdcc5d6cfe5bc5d27da4d51d3ab600582003e25fb298a3d0b5b02a440c91c6a756f7338f32daa987774cbb31bc992fde805820ffffffffffffffffffffffffffffffffffffffffffffeb67d023c527fb7bd7ca03e85cf59e1309a0b17838309b36f3357658f699a376f7da2fa5338bf41e0a6e0e021977f603a549916ea8c4c07e752108c4aa2af0903072b9612c10b674bd8a2acd52ecc10003a31c0dfbfca47e7e6a98d7494635bc94f22ede6476b5825e198539c3de2fd62d0319335100af5c4d6a10561705d35c327f8e4f60edd77401cbc0361a7f9711afad033b3f4ee2f815b29324dc36cfadef192e61774a290d8bf9ca417a07d314b58e760337e3db30a03dc197b291503ab06697b84db725d0e5bffe4862b82ab451b38d9103d8902f8c3c0b884217b92cc15bf7d9365c93735dc71a0bc20eda6f1f49b81be703811be88530bcd1fc143216a6f6f220e8551bc36701dcaae056ef092bfba60cc10340c9f1e10ddf9ac2431288dd3365deb3df6c8fd3b8af9072f8dea717f7e5dbb803b5ce2282a22b4c5ea599a3dbb8bb4ee61bfb494cc168f8eff5e13bb962c1ddd5038e2a3c00d5d1a25d88bbf4b1fd32df4be2f0108c191998d58f3f25add8ea1814030484f54beb554c4027b3b0e172ae4104a34b515a75621ab742e508d5be6f7a5403c8e9f2c00b52850fa55636d0197c359ca68beb973c064e77264843137f33e8a40219ffff03a7c1fff649ba70843748e9d8b4e6d45dca26be466e8257978b193a64b6ff5c270303823617dac83ff10c8a44cf8174f3b08ec1ab2804ef87e9312aeed5ad5bdd52005820036fd5399cc0b22f2f8b1afa6789490f7859754dd629935808337609174e1fc04a1540c20d2aae2732e8cb00581f0203263c1ffcfb2fd5b67d7f0a1d9164c3f73f06788fbe0b28a627e596d1c84a31750c2933d01fb9280200581f0260e80e667f1621ffc347853f1d937a9a1d8b4c75d6cf4485d7f1bdb3ad6f5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02185003b076c0de3ffa2691a40ce055484a2de14d9a48f8a925afa48f593c7b1bac4f78033ba2cc8068220d079e8d99c99f7209460f3534c3bcc7c9e35911fb082fe1f0aa0058200390dcf48eeb63b3d7ae7f307eeb5fb6452a04fd40fdd5bed4ed7416b74d27205820fffffffffffffffffffffffffffffffffffffffffffff1b2635e1a2217313802005820032f084e1abe8a882ce569ae4f352953ff0049bc3faad1459019aa7a9666542044012580fb035345e7b63768eb10bb82cd5213dde8736c46183beab4231586d9a8a2fcb3501803c5f5ccd858afb4f65543fb5baaaa30eb540d06e3bfaf8d5f70fbc6e576aff2e200582003b05038b60890ffa111b9d02e4e5dcf638595cb3188c12713174acaa3a39ac05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03b9214777a4806cc12fcab456ff01ce5dde9fbb76ee114d6d97098861524e05eb0058200358ddb36d3cb8aaf548cfe40b14c9367357ababba43e048526ae054eabe59b04af2116a9fa884c31d53900219eebf03d1949863dbad42e1441d8034f2b70ea242df3eca645777b8ed5b7f261358ecc603d16c65005984ece1de4401dc5d545ba8aa5d906dcc5a4e80f1344e15f0ae838d03ac5a3dc5e079b234c96b13c7e6ed2d85b0be83df0d94ee69d5635faba1e151d903ed0a8f3cd8a48db19861b14a001867f3f8097d57805bd0060404cbba3dfdc2cd03ea60963ee8fef6a0df12874efe56fd86b925a191d0f517b414920ce17b810389036c3656c96f394d7de25610fffc19ebcb44ad64cad9a64ee2f1633b41d4a79e4b03448753eb6316f7571f49487925f50b8b234885d57293fd50812aac6c7fefc6dc03f5786ae900a92a3d75e83359272996ba2d0d19292fa0da0e1705aca37f333a5a03b3195d4419309b2a08f426a28d8a8cc406222afbaa34d18bd06d277b9e47217903971e6b0b0fd5f9781e79fded52ce90d6295fb2de60364d4961720933042d17c2034c69c5d826dec6f3656f5046c947dac4578ccd1c9d715c33ef35ff8d23ea29b903710d0bb700cb369b9e7206689fca6017b95a64ef376b5def1cb063cd717c533e00582003d63dcafe3d696aa9756b788b5c98ad7f18d254aa4a49955d605619d16fc0f0410103f189361f6827996e948965d9b205d124d8caaa7f55cfaed6e5a7b63d799bccec03223f254311f7d99acec5597d90197cc8d71c28f6be3654576546e892aa4cf879014105005820037fe5bdb9fdb1a7118c5b9c46d9f8110e692a4bca76141f4537a64409b35970440125811700582003407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f044012580fb005820036a9974be1fa6ae2a1cec30cbf6ce3d08144a8695c0ab51b0f1d72729933d504a068131e309d86355f81500581f027816383bee25102c1bb87f1bcca6f4e9d32aabc6011d48da8ec7e6bcbc904a0ff7c2e53cacbf82ae5400581f02dae87f355b8c4dbbb912149935c83fe8ab4acf374b45a955090b5ec6027b4a71b4dba629685ec498dd021990000324853a7ff8a328e23afd89b5646f3147be46edddd34f8245ef39e1fb9461d50c03db7d8958027916542f026657f7cc9df7c82eec5ccf3399071c6ef829a6315f3e0141040329e52f4b3bfcb651f291376400c5f103f3aa735db598f37337d2a57d8ddcbe86005820037a8d5c675c1de850db04ae2ab124114c6d99e527e8e6c0f9bfa0c43ebdb1404a01d40ecc79fc0bc1a41a0058200329559932b8f2e8b18eacdcd09264cc275aa4d50f13e31437dc8ad8e02164d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200340a87c4f87ccaae2f4e79b139c04a5db93db52e7b5e3287d113934d38bffb05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219f3bf0339ab70a87a4fe7212c4cdb1e5394907c60148edda8793617cbdcc686c963f1fc00581f02f06e16460f47d35e50992e6f475d351a92e60ba733cd4ad87d350ab852d34a157badaa2510f908f37a00581f0240171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af4a69e10de76676d080000000581f0208daa3cfbd1166bd9375a5362a13c470a157dcce6fef50a5d39649da746a5820ffffffffffffffffffffffffffffffffffffffffffff4212bd6548f28e26770d00581f02f51a70848e7c8201258e553b80302df97e8304b2d2a3ac4524f98c63232e4a0ebb62d4c831b3aa1c6100581f020f2f749f047079e2e7dd25fb9caa40f7d699d5a7c612224e4ae24620e0fd4a2fec7abca24172fcf4d700581f026cebf3e7d4214c754a0d2c2e59aec25c0381b7d42bc95360e9a9c675e66c5820fffffffffffffffffffffffffffffffffffffffffffd1d33ca69106fb25ea3930219c862005820030570d0cf7d2d6e2119b895872ea63830b2a0832012b7f7ba788be505b60fd04402c87eb50380d6024068444eefe06f05b25fa56d7e1f9cef0bf60a7ef8e43196786e0e62c801410b005820034da39a190f7596b03001411c1336b24159fce3635ffcd773929b629f7249904a0ba2cdde5d51b9fa254603f9131f99a9f13604969e113fe6a6fd49607cbf27f5a09acffdb2ce2d473bbc6a03c4be16e025d43150d28d99c33114c92cde5270a00bae4bc0dcd53aa586a3a49d03e865753fd51ac293ae7ebe9959d35874debbbe9f9e9e43344511fe7819823da30310a85a7fd4f7685586003a12bf7353dc025101672944765027e7cbadd33fd483005820031d98c7eb0f89858cf4f7e11eb9a240690368a03f6449c555204df6ee177aa05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff039be0b1b548e028facf07a1ecdb29e012d86b7428ce3e0f7cde7bdfd5d46ed51a021932ff0335907f4f3cc7bca3506f6dbdb98a05b0200efb115b9159695906bed49d960fc90219ffff036cb02b370afa8bac391627b244b68f66b95f7cc036ad90113818021b59ce00ef034f7a576e5904bb09e15112ec1e320f2e00177bd776cba274697b21f91744c6e003b2e75ba6d03b67895dfb5dfdcb0e116ce786d0309a5433d75a102e24bec046800389fceb7185afbc640dd03af03825f24a5c38c1482b03041597de9873102eab23005820030bdfd5ed50c3f872807a20fdf9f6fdbed8ec915ce30eec6fa3a433a6a4657049019068f0d311ed1dd9033bfaed98a2d1c45f63a27532332db1c93f795ef50dc895deb69a1b073b6529970313e056d88deb863f22e0b991eac9b3e91247383b115fa5f78019093fe04bffcf033bf9815c99f1694c0fb368f69e6953ad144d8a6b8e919b75f2f26b34540cf93500582003476e4e618254bc61351bb47cd8f4fc57f49249e2193cfa5eaf843d5586fa805820fffffffffffffffffffffffffffffffffffffffffffffad57abe5b2f1a155aee00582003eaf7087d8f7222135b07696ef1f79fb8414c0e1f03804cc0962ee94bd496d05820fffffffffffffffffffffffffffffffffffffffffffff8a81fac746581fce67a00582003e487de3a7ce6d91e1aae0d8d32ee2609447fbc1290d2ca082193846ccb8f404a039c87b4fc9f79e200e10395cb2579eba33fd0c2cefe7e680459f47ab2d98abb9c9f0a701afaadc0e5c3f200582003c4afae13dbcaf2ffdb52c4c752a06c823d5d1911a8914bfd386ebc3b8e2eb05820ffffffffffffffffffffffffffffffffffffffffffffefc74705dd4dd7eab3ac005820031c00149d415d4d1aca9150a0fa5dcb67b25c3d3c248ab34d2cf60e6e93eb304a033c6e6b9fd0a9998ec30219fe6f03926fe22fab9fef6cd3926f4f702faa039226c7dc7c9337a99efd78bfe08e7de403b4890be0890a3f925a92858b185a0a799bd3f0d074e42c70d591380feffc818c039035131af4b34c7a008799d331a6562349b96b007202a1b671d230d64974694603a7965c051a1687095d5dfa7b8a81e0cca4895ad08bf34ed2369434ae81f81ab10338a76219d3808b96968d466c8e30efba90ef2fee9a328a58f0865fc12d60da3b005820033e749ce40c64129d16f7022aa179c45e2a54b12d4012771cf77109229729204a0d15610e916ef78d072200581f0218f0b1c6418f719f53aafc5263070c356da832559652b2e1abe27cba4ece4a01ed8a857acdf203d83700581f02c0e6177ed1be854b2a136f9aece9c4f9a42abc904af3fa3fcdb6051998834a09d5b2ca1a0f890eba13021904400058200353c8713af4150eec04580b94074b10e7850dd4a861ec59c0c4a5068035ddf04a2f51d833c63b23032fbe0320f4cf98fc97503f93dbf3ac7a1b213fe8396140330ab41f28cd7c46772d9df000582003b4a6a85dca689ff42a13e160e4e2b019e3c5aae6f875cef9f6287e250c32005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820038e0710a0d1b2e95c38ecd72129acdf53d166d443430908c37218e04a667aa05820ffffffffffffffffffffffffffffffffffffffffffff79d07d7c7d42d565e57c033dda9a0aac791cb15acdeac7e7eba6bea2e78ba2e786c7815f743f0bdc1445b1035989728815e72dc7a8185fec886c1dd71d9ac2c6799393cae3efac8c385b1037036bd9d309e7a80d275f7c7bcc710895041cb6e69b52d7758bf7f892f877b9411d0395d6ecf35fd80e1f982d816ce1fb5eeb1cb14a6fec320a4b977366867ab4b80f00582003932dc446c34d719f6fc75c9ac079a7c89922c9dee0a326363ec1d5b54069304ae6698eed038692a4f3300058200316da96d0ca98dd82fe9ad2b01206139ee123c299a085eb28bf314b23bf14d043a101f203068b1bca96d1134baa1a954780caf72959e8ae49e2562f4edfcfde72fc364e4503ca4fefc82c4a32117c738f13e71953cf3620fc8701de1274535c4eefc08805a70141090396588221dc57b55bc1e02c2a7696de732f53d4224d29c3dd4ce7769238f1e75b0219ffff0351f8d1b2722f5b73ea46cade10e1e61ad2aa79b6916c4ac5ca3199a4c61dfff6033c80fa9bcd338f9b6518f9c9a56b7b774db210abfc59d221d2f846e9563cbccf03082885fb74ac9c00ef36696e6ffc0505ed9b25cf6b5d67d79f75f856f12ec53e03050e70e660eb8ed44baf8927592f7f5f4f5ac39440d324a9f1b30da86a54c12b0387a23ee8b083d0feeea899bbb4e13ece805a42c244d2d0a338e221ab9339b59603068c6cc400a690c2c850e644e82982f770cb43dad5045c16b2b083cd368b21cc03cda2dd572c3f2c92c2acb541382e7f0f6e795c38748385c5a2f34c5200a4a7eb03c768d04db545b6ae8e67ac6dc0fb37f599acd3831f53dd3b7cb4f9f3104f005003bc8a18d2d196816d811adf48dbb1598156ff2110b65dfd735a356fbbc7b5e16d0219ffff03b7f035514126705966161627f2ed507d0a4da14e0738babdf73d60e2410333f103856add2f3b64df524df0e7167c36a1a39758642e058e551693e3d05bc94074630312ddfe60a9b075d9df268c24692d64cb66fef958fb0a640d90fd6f1e31a4249c03f367442f5ac3f14ed29330e28c97e2ff87448ef24ad28830b3a22ce36b2f059d0332dd99f19b99584b2bf7a185da6b2a2d35e93f329c105698deed40f183aed8a003554d7ad1891a59b326541ba3b51370ad0e16279eae83149eb2b617e9a1e2b28303749bb630a07143d14bb07b7592bed46d18764329b5ace14fdbe498e246eebdee03105eca696d9072ef86f4b2d627cbfbdbccb8f5359b8f731d75d430d015b4e23b030e61ddd3fc8183a6788400ce11233a631385c5226d2f3a7b72a3ae0a1edb827103575277a2c83281d0cd2bf9504fc8861d98d5ba5af26676f840a2b2c0f61b0ea4039d9e261d27532b4c7bb9c0e8330c989d6e7d34236288132b75f76cda05c34832005820037c7f46e45c7266f18ca36d38148d48e7137a5fcafbf38efe6f30d2e33f85004a0138fc158bf5a4161b05033837682c2d041fb0becae78fe60556d1e3390dd3970560c6a3ba061ebbbaae3f03c5df7c7525c7579c28f881de7f19429e05ec4c6096faa3f6836efee450630f5303c57e271aa5bda2f638ff10563670845d233e40d8c19b495517f5f3d680afc98400582003ecb36ee9af0525e03b25321ac2729605c1c64ab16333eec74ea6a72f268ad05820fffffffffffffffffffffffffffffffffffffffffffd1d043811354b80fa0c3d0058200351e16141d0207292f5dcaab40bb46cfc63db153ca5661d7dd188bc13f536b05820ffffffffffffffffffffffffffffffffffffffffffff252456af51a3ccd1167f005820031a5127382ed0eae8bc201c9859bbf9dc9024545048191de27907063bf4cbd04a4acdeab5214e3308d20503bfd85822aeb518b27fc1f3a3304b8dd265ea0be3aa68d64cf841ff7460ae109e03327b9568099b897247164c734b651bc537f1a45c3e40542d0d6bbe4ea51c2ff300582003acdd1e15acf2248040ac4e53eebfb0b8dd18cdc1d14f2b767780a9c084f4805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200355573e75a6e643385493e0733257e8121f877f245827bffbd1e2dc08639a704a10be72f3e6b6ea711d7800582003c6ff62a7da846a714bdb3dc9f37bce1d0d220483c9d48427b86b6f385f1000430dde7e03c189c521f3e42c6c902da87bbca45a409ea7e104fa01117246c30488e736ee9e0219efdb039f0913696b696a47c9d8bca88385b8222cef157c3feb87f51bffb5a72cd97e4e03554674a9178b422085876066c042902091fc2348f6c677371799d915fcd563db03afdd37546b86bd4a6edcb74c8b1c45eb9edc909de11fae86502f849a8a7a4fba032c6e253710c06710c0cd2810b41926b93f3c5569eaac99365f61f62598d29d550219ffff0312282d9ffc68af8936749c6a7860ea07c149532dd924c8da12ce0b9fe78df4540058200360c710f4bab7cd588ca702b2cad4d9c0dc0fa9156e740972a6f5799cf2a7304b011e2080289f14b06c344703c34098396d926705fff84e199794f0426e1efab7f9f68f530ef8148a73543b330058200350261cf2be660e792c2e11e37286128b3ff47f40a4bd5c2febb26ef14f6400410100581f02301e3554a8d1f76715639ed0fa6583f4f8209344002bd08fbd17f249eb664a5d1b1cbb10d8a6345a4100581f027076b9cddfbefedf5719dfac5d20ae2e208f8772dc40c508f0825afc67fb5820ffffffffffffffffffffffffffffffffffffffffffff85ff6326a53a3d0e02b90219030003a490d0ea20c3b9de53fce33c2cbb347c194e1249bfc5fbbcd6413eae0503f0c8034636cc8fbe77b3e15fb4516c50ef9a401c66552e79730fcf58584573788ed02700582003aa0aa7763a2a84bf9f08e460c34906adc2915bc345ec69208b98c0f5b354005820ffffffffffffffffffffffffffffffffffffffffffff9b3cd6ee76e929ce07b500582003f4b79fef71ce12cc3d49e6af41de1c50967937b0f77b2f5d36655de46415804a4381c664cc5cee329c6b035031d03d4ece960c8f91bb6c84a9fa1530707bca59c4253576d78feea876f9b800582003caa8f6d5042d526da4eb3f94b3b028aea98dd8d1e793b216984ffbd880e4a04a1143f2bc456e290d97ac0058200390d901fcedf23c16645081a73060b38c90d674ad8ec9d2c94593720b132c505820fffffffffffffffffffffffffffffffffffffffffffffdb754cf14f65f1ed3460219fe7a03ba2d10b60676a72209423eacd168c9f8b75062c0a0971e60d6ea8fe57fa8645103ddbd76553d98090d21249500a667e50ce4de881fb44a00f3db0628cf9a49f84703033e17a419e72fd22f034530719e4b01b82806d0e4ade0967ef09de04aeb6fa803456a7eac4c72759a37eab3e96b4183dc2b70c79e24b874aa8cf5c54e2240f2a803f171c9cf0a6e2b1d8c9fc7345ad45b5e67e360bd1bfa274e3b90482935e0efb703c861bbaa898b5f0c6ef599426f4bba0ff06f795cadfbbb8c3a7aa11c736a2fe70396cd1ebd46d359a02e94f0d1b11be81c2a27e00f0320b18b75482816f6c5ff030342b108f42b1408f432a3ac53a31faf33ca81b218a64b06285c8acbc984bf007a03e590ca92e13ba2e749d1506bdc36b59817ca77e6f6e81016fa776b084449e362035f56b3237a2879b871cb466b8f4716e8dcd30e2a735eacd7cc123e6672f2fef40058200382157641f4e93a50d467eefd4125f3face7f50a12832561111d03ccea248305820ffffffffffffffffffffffffffffffffffffffffffffd79505e1dbbed343e3fa03094be12f8475532fa545b92310ac8a8552d507883549f3c2cf0382f0c316330403e5619305928501201de8c0b9681ec5367d473d1b64eaa61a4269f6cf76fa93850340065f3128646ca26fce0015b5e7c44caf824e2129a169ed9aae12c96484bb900058200383f049f4187f2285b01e0b6eef3251749fbcb333d3d92202ecedc35fb2a0204a03d133466e72433959d20058200395438f6cdad21ebe19b361c0a7fc21c9661f32c05f0fe2653cc9baf4dec1804a0177e937989c080710a900582003b91d1d7c341718f9817c73ddcc77c57f24cc023b6ef3c5eb5aadb2e43cfd205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03b798a83aca44be0aa50c8c92a062787465684474a9177217df752ceb5ab2c48103f6048e9d040d6a717f64b48f21576819f6e25c0ca9eb0e499c12ac052b65c9250326fd3091a72f974248ff1eeb2b5ca1b06e7e7a1d159680a9aa7f80f802439be3037198e3d32e63371a6fbaac74bd9fdcb0a8e650cc0c4dac7ae75b431235fc799a0370b3acc6d682c19128bed68ac62d00d1fd195d700067870528933046343481fd037372061d841f52e34905693d5db69056a85c47d8f2f99dd2a6eec59afaa0e8a903f7a257d0e5bcdb5248471147e61e3b5e8117bbf289e78f59365e97d5aa93e299005820031228faa59b9a2cdaf1d0ea8667d3948b0cc0c5dd671fd080a90f845ae703804a04a568cf8efc6e1b4dcc0219fffe0302b505ce68e4caed537d3777124acb8e9735776d5d8c0754ed58f3389eccdba303b00738ebdb302cd2d99e28495ec0fff4a0fbe5afb2fc2f7fe815970b9b49b43a0325c96487af03af0256070aa85f7ea9a75f0f5b522914b3090b47d51de3deae580355c4db9cfdad45dd142422dd8ccd13cca91cf56dd08e04675e17f0294e30fbea0219ffff03f678aebaac806420b09b1d81d91c495d3e4189bacbfc1dd818e6bd4899e031ce03bc678eb2d69a4ae59b8a08882db86f34ab81964d7fbaec573a8028247a601c2703e3020eeb3800a3036730f08a65e09f4840f13f249abbe362920edcb99183f085030d2b508172b9b5fd349a062ec1937b92727cab45c3bb4d91e886a6b25793c58a035c6c4d17c7382b6fafe4ba06e2de78be3a1144c9398a5bf612a395496072971300582003b713e12d133536266050ceed51a8d3699a9c48f7ebac3a2aa490d9e4aaeb9044013bc32003e0808d1b613b12d96b09fed2707f6e59dfa2a2282625fb51256407d6c5914c42031ce46ea9e6c11850d1675ff0da8859b2cc972fa5a5eb0233f4ce85ee37ff847303c0b18fb969ed7c4a02d581cf10711bf5398db3f9aee155af01b35f01addb042a005820035b48edf746e0c97c318b9332370be06e47544ef414ff63b7b604e03cbee5205820ffffffffffffffffffffffffffffffffffffffffffffe25a95b4f7ca407fffff00582003a660ba19171706fce9f165caada02c19ef16865b8f9f512f40d6af3a2383304a26872b05690dc4c3df1e03ce6109afe97a903410e7e811cb290faac6a23d542d408a582fa4a60c73cb7bb20058200352644887cda81db963865bc25dc216455a78387b7171ccbc0f9b824660d7b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003156304d316789033a238a3be2bf333cd079ddf345f9ee61d499036292449005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200344b02282e03c919a5dc22b0e9a823c004c09f1171045ee80d0a1cf52e2a370440125811a00582003a3b8dbff8c8b48afd1e21bb951e2c188278e451458ddc0636b019eb4bd4b604101030a8e490535eb21d1be75fd40e5c0c897726d921b1efe7bf19fbfb1cf223453460219dbd70334513b7d897aadd7dfa4a53ec787ce5a8947bf6b8d413c05d4b567b2dd537a57032c43e64aed28689415db10170a8cc516c501c8cc82eaa4bc89449287726292c5032844e110feccc5d7dc1a238ebff4893e456b104fa254c8f770f1df7915c42fe303c0286ce3ac4e863a97a70da51c96f502b4a4639aa3e191f32a15497ae07e5478005820038920db678ffab44e931d39842eb81d3e8d550e7a6b2d58c64727ae289245904a16dcc87569945a7d10bb0058200375df211bb8cd702ff56a19be778de36eb7d39ae10828975af13518c84ebf905820fffffffffffffffffffffffffffffffffffffffffffffac71a8dd4719162146b005820038f56fce465a9e1a861d1a2658ac1f4fb79a23306e550e5fb513dd32c06baa04b010265954f82ea6ece087700582003974fadee3cabf664849aa83453c2e9951ae458bea1fb599fc12b32b5fdeb205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02829356ac25720447ce0aa326f57127b9f8f384524cd0f1ede7c89d1abbed4a03dc86c9fab14aed659e00581f027918e1c019abd6ebf517a25af864e8db2ed3f13c92fbece93a746ace709f5820fffffffffffffffffffffffffffffffffffffffffffffa88326f9ca799f5967202191008005820031d2c66b1971bef705d99206e740c628f4d72a867bf4dbf2ee9f714a989a5904a19b4375e2c48c2a207e900582003ec6e8ccdb6991ed2bae5956f653362deb499fca825eae62a1fcbba483527305820ffffffffffffffffffffffffffffffffffffffffffff7a31bdb8ea9a41fbdf5403827ba7bbd67af8985a1fdc9b08f093d04ac74c16e61badee978c528cb0c9b51300582003a4c5cd56d47a06938beb5387fc51547ceaacec08e2dd5f95aefd7197aeec805820ffffffffffffffffffffffffffffffffffffffffffff5bab8007dc8563ec2b8103a7759ef1f65b45bf820895c8afd25ed0a91427316c8bc7b90ba5e0a67edfc3dd036c9a9d684168ee4d5c0077f6c4b1de8aaaf965d80ef5246d31d929d7b2ad90e30219f3e9035ec027f58c82ab2957cee22a12fc439b36f914d31f814412c8bde158211093ab03b31677e1635340758c8596e3236a2c129a85a14059939bd5b4d8884ec8b80c2b03a9a3875cedd7a66d52f0b54dd54a55129ea87f6346bdbffdd67dde7727b6dfcb03cec51a8c7915fdb232e0db05eea9d6c3b06553088e4b98632bf1902fdf37dd19031a9e8e4c0ee706fbd2637b0727779738ae241ada480823549cba0e661c8e504b033d7e83e205aa761a71a85e005d180fde7b1a72a87dea821416a5341b0d5734d603bf8b98428b0790bc5785f543ca3f54c30bf666291c03b553c07b61d3b532211100582003fc8e3537f4ec1ce295c86fbff85929b89f4d7444de772130ce5bca9a437fe04602c1be74b47303a957b1576a0fb3c9ad172ac0fbd69b69ed948cc09270662d7122faa01669fbfa03a685145b6b0c23811c6bb54292150c6efd0260774252a835812cc2d43e30c2ef03f932b1d71c09a5f7b65c1106837bc7deb29448b84c913c6cd15f471a9b9760f703bc10fb288eaf65eb1aaacf235909193216224f295115eee22bc43c1ab4a35ba60361c4aea80c6fb26f0b9e790ccdbc2543e4a6b5edc78ed4b87544a6f1bca1167d03999b49a15fca0598afa9f7bb367e7746670af9a04ae0499bb5a0244b221ef8f10058200358b976086745cdb7016510b05d7e65d2674c620bce00d2adc8e88d0a97df605820ffffffffffffffffffffffffffffffffffffffffffff1d31df1b5e4ab9e2fca90372d49ad7b0eac93d35d51b1231f560a61f460a93131538ee33089fee4d20a00f03227d3d39186298c9bfcaa41e83ecb02f14b6ef4ae27d8df530f83070362e45e0034eb2eadc2651f410f8a84cb65a487198ff4726eb99a63bd46163d2df2d10edb20219ddfb0219ffff03d6ade5a64eb5cfd89de7f54e5390724b53df57f668e8e0461c4faa40b735d73b03a49dfb0687ef1d8b27337e6074cbea9286d0887b6d8a5034427cba26c596154d034f00a3d27277c2225e3d0ad4e39811bdc5e817b14ad341344e9eb1e1711de34303f47ea75be752a13fd4c6fc4c35a917f3d71a29ec1d783c37d6cce2f487f4d53003fa068901e8b18d39c3e71154ca22fb14095c1a315f6f43faeb33ac612b4c79a40383b8773d32c6348abbc66b44430976537897125f3e1b6811af3b253a0023959e03708e146c275ab95371b9f3b49f7a14b3fb482f9934e5f2e0b169ccfe92ab599400582003ba3da6db014923c2667d67df4b511b16921ead3dc8063683f5e8c3966578a04942df7ef487ff30421b034cce8f0752da6d462c65c600eb594f1bef88e7ed59f5c884b9776aef73d3db0a033a74d622fbd504b9c30e11a52827503f70f7ea17629bec0e2d962713f65a76e10058200356bc87f6054904523298bd7178eee0774188251a494151180ca143b9dcf1f04a1935c5f491575a93939800582003489bee88c8d3f4854c0d070daa3c0710c29761ad6e0c6a0ea01700170bdde044052549b700582003022c229d7701eeabc0c9f708f7814e0b957f1a223608c4a91f7bfdb4571c804a204ae3cd0f5ab8bd3853005820032b5a7727f7ffd8f7b91f64997adfa6d37adf3f3c300acc3f1ca0fbed3662104a654fd00616c2be9d4aa10371899176f8f59215b854b8e5d2214c5ac9d0e71789ef7edf6b4277f2526d8cad039c99f96e06cf8cf4923541ce6a562122673f76b2921859404bafbdd80b0b153900582003cb0d3f4571ad6cb04c994794e3983016f65d0542a4d6ed2225bea8b959a700496463cff461b58b0d70005820033fb99ed52146c72ae2aede2fc13302c8a47996d073f2355e53a0a773c019d05820fffffffffffffffffffffffffffffffffffffffffffffe27d2ea756f92d743c100582003ce4320abfd6013f6aefa1f747a6f9323dabe5a2fb7378c2676fc7b154ba1304a72914d95924daf7075450219f7a703ddd06ba038dfb022aee303c8ce6918e3b0ad8c870ea74764239d05a8884a2f8c03a61915884714a456bcc121030aff7a45ad285e1fadfdad1ddf82b7366962100903a680ad45de8ea4eccf1891bf405742056c2db5c7a35fb8524c88451aad8a3745036eb4d4f97c36d0c7b5b6bc9b87d11a83e3521c2df14f9666098898178832095003980e6ded6839e5f6c7b1c5db3b02176861b5c50707e38ba32c745e234f472a6903182244bf9bcbde89a4d94e36c6a7b3582e2bbb691eb1da10cb2b3cbaa0f3832803815d6f08849f06aaab3af7557a6d11a914007711e60d86b4ca6a5469c15f77a603bdfe34ad3bedcdb157f67afc150e763ff6f4b2260e9e3d1db85b8549c85600170058200381ac85231b13f90ec8bfd6d84ab3a9562f9e9ee67e6cffea200f7d461a3ed05820ffffffffffffffffffffffffffffffffffffffffffffefe2110f4c62102856db03045ebae982a365fe51e32d35c43d5292aaca35b88d07d15980a8cf0b88e2891303d4ffd49dd6cb88b192a1ac481658d955025b4f42ee3422de4598c7e8b215ed8a0321046f1ff729c9e9fc9b80b445d9f2d34340ad8af581e89396f4cf1b40c9396403e1f1620c1039c05879b180a9f7243174abf3b558d9d93ab2bff898ac6d2553b70379a01f41166c7723bbd3fbaa6f20d76c9c0daf4c0ab8436ee91ec0732c86484100582003c2261366b8d6fbba3e660b7b2b276e3934819dbdf1cbfa57c9c7a5709d9d505820ffffffffffffffffffffffffffffffffffffffffffff78b724bc294063e5612003db854e9ab0cd7394bcbcbc8705341a98f4deb32ead9c6390596b36226147ddd803ee5a86096850a1add9e5e945eb47a084e084119ee3639b3c763d86a7131b7cd200582003970799357e7647841f6bbe5e119b1a495c86d537a3e04c4a6f46b8b2e8f7705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219f69f032d6bc01e1509916f6f4bc0990524ea6e329aad9ca4dae2c1aaa6c8b524ad9c410219ffff03636706137e443c6d10332e38b6121756da621ddf759757813685f501e1add1cb03c1f19c6b970909f1b1ae06d386e33234ba81e225b380e4fc9aab193c08f9a9f700582003bc623ec53419dbac5b62d20e4e4c39bfc53a4df9f32ca11305d2b440643a3049a2a15d09519be1ed7e00581f02fc9940f14f6a015bac76da6af20adf28f5dc95681dd86804aba23a8c22e34a08577fdce7ccd48fdae600581f026939044d8fd7626cdacee98d54257e937976afc8583bf5588c75aa2889765820ffffffffffffffffffffffffffffffffffffffffffffab56e4a89bcc1bfffc1700581f022d3a557171ff4f6daf8471749d61e40953007f0fd8f5090c9f2fe989f3bb4a0167381d2fdcc2bb1a8a02191088005820039796430fdb9a80e379dea54f343192b603bacfd78a4383d6c05cd958aadf8049c977602b6a6e02d0ab03d7fad172446388f648e14c95d2e39d7f8025d6d796ee10988ab53304d75dd53e03615edb43cb746fe2829d3cb666677476ca09c606d6497d6c67662bc862cf646a0058200332d9bcfbe2505c6111af2286332be47651f46b48ec0f0264b25f66300ffcb04a0dbe7504a93fa09043f600582003b105a30fe0407a814d7c167a4b293217fb8dcf3580e6ef183b08cdb3c84c005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03f704193bb25ba789f2d7ef7ae2948c7e787f6252c6ea857348839aa496c8f23b03f72163341241213debefbdadc6b9f2e13b4355c374cd372e0967e135f24c647c03784ea74d5c3a8c264b89086030451ebb3fa11ec7c9043681bec2964f11286c7f0058200322bacfd4d733d6c1f68ba621c520601bfbd34c23175e5bc3b3bae2f844a3a04a0729ed482b0a8e7b9dd203e6ff71b65ddbc99ed4fa3be2b5901231fc02fa45dbe16a4f05ec06d617f6d3ef02193fff0304c69fc39f68e7460c555145ce0133866d9a08e0258ba55960c44160c7e63cd503838b9b0e5f44067d75ddbec9e51ee1a3e696a2611e9e5724d94f554f1c871e20033d8bfd57c8bfabf8cfb754bd2dc05a514119da765544692be69440bc56d52a2c03d784fda1cce027342bf2ec118feff195827af690d641039782de66fde640f1080371eb50cc00265c63475b3fa0a0c4af207f59a42de5aa319abe6ec85f3bb3774f036622e3b6299c317a3188803a6f502dedda64257907e9fc5744899fb7cb27fae503766bd79e4f43ebb05383fcf0f2a33e458cb146f06939bd5f64d85e819666fbd8005820034b5ec91f965fd50047d6e7ec061202eec8b72ecc9a4842275bc4ada6811a704101034b36ed0a68b3243a551e3cbe6f4e1ebca7a04b8bd878d88e4928dd82a6afc219005820039da70bc4d4c1080fecdc804521bde064b2b4c4c38be598ba8c3bab976a89a04a0138b89c0fdb8815c45203d1f513fca315bffe762fb1e7a4e083a9f4a1312f1b391b6073d0d9dc5de2daa900582003763e2fe956d89b0351845a02f24db2a01a6a40b205273146d1116d341dbbb04a03e776c2459584b8951600581f0291873d00af7baccb7219944f31efd99f7470da6525867565da5b0c8669024a0b1c96ab676c746a756200581f0323df7e152c416ab8f68df14f4f096ac66984420ba5269ad0b4c7d21d70304b1a784379d99db42000000000581f03b7cff44649c6232bd25875735c298f2bc5168f341844f0057e0523dd08204b1280065f5a4a292abb24ed0219800402190408036c6c1bd90ec5053fce367b7cf61e4577fbb2660f5fd9ef849a3da39d4a260d54038b6bef1b6c31f6a140f68e0262e14fd088e85d0eaf4eb87cd319f28cd6af5935005820036428ac2347a9afdf5946f6dec733f62e85167ec7bd59696b5c21ea7be34c004a08a93e8db3c05e2e8f090219af8f03b98d34b3dd13017230557b5a45e96bce5dc6240103afda5ff27b17ca4a2e757b039d2d1b8ad7b91f33db690ec6fef89409780aa636c0d22ff287fd1bc4b139498803627861c219b4ba5d4e3e0e3939ec791a90397e27b37dbbd261d448524e041f9403770c30a4112a879f1cd68c2cf1180c917e35d4d4a984c54bf013b72c01b66c3d036bef1d793cde2dcfaeec918011cb68548f1575be86fb4268d9b96ebf03034baa005820036fd243b98ce553478345b372e97a91f46b6a84cf0e6ca8da22cca8ef53a6304a0152f751f29ce444900c0371f96603533699563473df5eb2ca21a14af1af69e994d06e82c91012129dec79032073ad425f699a0b4820e4ece5b9486964ccfe38aded0cd149def95a6da1b334032395e05910c026ecded9f4ec40b8781c4fa593b6632d5c889c8642fee1cac97003dd12515e3b2c23c5391d3f4f4e10ae29e13d4906aada7c65fef8a9cb0a4e02b200582003ba53cdd683311dd37013e0b1ec0ddf35e34f082dae2608b53240ba97ecef004a0410510a4b8c472edd8e00581f022c04e730c565e912b063a5acdce0bfe87337bcbf773f61e36981fdb074ad4a03ee4c74d0b784ddafc700581f02d871658cc9e7eeaec2e12e25ee392a9f2b5b93170e832bf70d62454fe42c4a03921dec4cfa616d275b020900582003f1cbe47aa6869137a73ce95c04a4057959516d4a0fda5ecea084686e6b6a104a0fcea43b152fd2b62a8c039218cb594e0a1ec350f471803c3fb358c849f086386295f09ff815175ec2f45103782e2c4f53a700f54881fb65d4c39bfe3ba48aa9e3b4d3ecfc6a5c6422a932bb02193d370311a5a795678a2e233d1472d19e36d64ac13c376cc14e83d1c7f384074773470f03bb553bfd3ae9aeecb68184793e41db28d9db6a94caca7de70610ea32ca1d814300582003e39145d5e482966d868c3977362b10dd20af0d7a2cfe2770b867fe6c4388804a0d9f1dbff2ba03ccdb2c0389a00a2a421956dedba3765580a6a57657436112aa0f8e21270e86c29c6474b300582003f16450f1aad48895e9822bb97e82e9d9157a7ad94bb1da08e0188de36718d04ad4f0c87b70bf2ad0089a0333e634a7b781c12362762c28f7744137bde131f15a2bbc74408bc15c220b39e5039e6f1ba04e0529c82bd664a8f43a373a26d40e166e1547e177d74778707eaaed03de0ffc9bc080126f396b2d18c4de8505c1e046acf0f4c70c59c02613ceb2a499005820030a690a44a62d03510d047dbf9e5fc6e97111e5d6b4c9ce90d58c11b09b93b05820ffffffffffffffffffffffffffffffffffffffffffffcc5be855eac770fd82c800581f025e6b259e1f30e2c914983da17c8896c5e2a8fbb7592f2fdb6546a0cfe9fe4a16b9dc2b063147a73dd600581f02e3362f8aaec1f138bf9f370f2f16f5bb77bdf2d49ad8526ae5832d5b86d75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f033f614c967638d7d66f9d2a5f877eecc89077cf68f22283ae063dafc3d2004a016de556c2c0c4f65bed00581f03be1c18ba6e7259823cd85519b1cd8ef3943ad3f81cb913eddc8a8747e5004101021908200219840100582003f36d0eda3ada0bd97de5390cf4b32bfdfab4886e1462c904bd780cd56d66704a174099f867877925bb9e030798a5ae5869f3d7b508bb5df803967231d21ec0d28ff8c71b8ef8bc31878d8a03844ea3f278948e3848742cda6ff7900ef844ffcd1818747e2f4107475db26cce031768e9ad93439bf62d743fe9b80b4198236a4605e33dc4a96312888746eb055802197f77037b2770b14c2db0c030ed58e3ebede703edd3abece057602ebc4231c9a4c006800219ffff03ec1e31eaea01a433451599e820a90ce63e72a7685b13fc9862b439516ec07f57030ae2902a8f5318b8a092f6bfaa4a23e125fd26dac7c16fb28adb9af3c7ecf1e3030cda039cddc838707e5b23c65ceb58e81db8b2ce5819310c4bef80c3d5988a9603e7519d66a998fa95ff6e7f32e4808d274f957bf41273e1ba336b354e9137c952037ee3652e376a93ad73e9e68bce6318f6dfc9e5befca95e8597fb6c200a2c2acb0058200314d41ee47f8d8b53af7080583b1d0c1b495b3b934929d43bd4a2c28e74c780500de0b6b3a763934bfaa02e97d566ae6e036999d917e22c8c9ba14f450e656700e510c64ef7db77db76451d772dca702f6b03d8fb3f0adefb91fe4b171bffbef6d1fb6622adb85e61fcb577d8172c0c8fdc2c03f84735908ebebc38f3fcf13603c398be796df8cd877783f78d882a83d1f782f400581f02328062f2a515756babab12654c0a697cfd5b27f8bac10423d6851a4f28565820fffffffffffffffffffffffffffffffffffffffffff8cc02afc5ed1a2f44e33800581f0215ea96b6c2d4f3477e6c6a791f12c0ba456d11adb930edb4f7bee08711a24a0b5192e5edb93c8f85ac0219048003af5cada4f5e670b96963a4afb56c0e47fa348731acf335aed9ce823f715fe1d2035ddf8dd1e56253aed7c07ad649375a927df56fa324e213556db9a1292f3a6571005820035f45c613c9dd9770958b68315801f54e3b97f6408ddcc64b483939caa847a04a1da61a50045f6922a70103af4a61b50e6f67d83f9944e4c957392bc57598d18edd5f06fb5dc0bce19e1178039c962ae4ae0356d3c76f0589403ef8dab6deee55bf4889aecedf150e7081162c037d9edca61ff1d4ef1a881e06a706ec7688a2eb5b4fdf243212358524106c33cc03bae4c09f38423d32c647124e09171bfe34c22aba494fba01afa202554d74317b0219eecf034f35b6d57181f433ad75a50e453ca333e883fdacaeec90adc47b60239abfe7a103615c017cd5d7bed9dd3059e6c79ff4e5b1367b2434a1a4582ab97be30d85582203d8e547bc09b8781b2536705775583fe27e550405df8e883082f63de2f2fe790403b43f51f3b7db362fed5cb211cd12075f380cde9ae74df6cb0452fa13040d21cd03e4903ee403039ec2113ca48ee7aa805a6e7f9fe63cddd5db3e57b79d05a9486e03fa93a8f84051d916647be6238eeee1b1df6ae56ae9e63227d20bcb4d15d41f9103c4bb2dbcf37ecb005599f6a5c6512351bb04799b16f503844657f4d88bd67af3031b4855351c8f370d7062ccda3a2eb1cf6d1f6cb95d81b62282598238b19ab4b100582003cd24f0223ee961adb9ef87786946f23b87b819570f71751318f3187ffdb0805820ffffffffffffffffffffffffffffffffffffffffffffc20c9c601a3acd74cca9039efdf64eddc85856eb10f42adb433a4b9c951867042a93cb5e362efb88d0e7a2014200df0307f1cfc5b4e0bfe10d98d2103cb0265da128056c022c16d97b0597e4a729ba88030b3cd205446d54439e04e5eb078f8e7d7915e7941cc3268bc5b572f400f11b58031d8ca3b0d3f414034921234cada3098a76758d78a0ef70d4b34b0482da20568800582003d2d6dfa7daed0b177571358485e41e9e223963bdd18b7449b7d4476667c2b041010058200359c6436c5ebbe8db6a2df1c6efcaf301a22adac42664cdd067eead03a5bf304a18192b909130af72306203a654111b0d2f79bf46ecb64f400a7da263ea9b10c73e0eeef4a3e97e4b0725fa0219c9e403ccf77ff1ab12106b0914c7a1e1b860fbe6ee73fd99840322e61214a4ab52b9450219ffff03305ff119a23fd6b148839a3c0a1b1bafc1ef04f7a583cef3cea36cf39b2295e10377376736f896f16ef1fb04c366d355ed478386e2c46d35cbc43bd5f1adbab12d033cbc133090942004be2ee2987097acf301d04f3fd97b476af9fbee9be48da869036fed908b82b294e39b4efc61be80b8ccd87b9f4cd6c8b2f2b47457a53f7c232000581f021bd7abd419332b4727586828d897fd4eb94a39fdf70e7e6aa95ddde9d4775820ffffffffffffffffffffffffffffffffffffffffffffed7793cbb213687cbf4e00581f02335cd54d10ff3d35cd2642c2fbc705a9be476873d9821fc042696998f84d4a0bd48adf1e232a1d588902192402031760ed0fcca4d1d1bc7949f583337ee424300c0a555da6d9de7cdf00cc8b43c100582003d774b3c3cf12101a7d6f1a3214106f34c29552be76d4e9549fecc4828cfb70410103392f598aac8cfeb24cb15a97d14877fe16523a6d153bcef5ed69631e10e6a58103343f8b3e438563fcf4bcc52306a6a7e4f5eadf438a22bbfc48240d6d5588d85503f27bd673daedf0b4a9ec01dfbfe072c44d9f09c0ebb2cc4877ad39845886316000581f027b070abb1d4e8df40494c45b33ad32116dff1619189106dc347d3443e24f5820fffffffffffffffffffffffffffffffffffffffffffec448628db0628102445500581f023500694ec4f8ccc614744172525d88ed5a9da663ae42e42d4d21350fb4ae5820ffffffffffffffffffffffffffffffffffffffffffef74d5d3d7fd6f6bffffff00581f02fbe63cbe496903a09bf20ed1e4091e3707f0e06227bb4acf21344073586c5820fffffffffffffffffffffffffffffffffffffffffffe19c87690fba21b211cb90219090403a24fbd0f5037f24ee5c5d54636d5814243dda084822788de741b2706a1b8753603c7456b68956e51a125cc51f18d9b66b5ab8a85c03543e1c70c4d0591978a75b503a3a88b0f8dd123e731edacb20f67b94a39e155869a321f3bcaaf33c69f99a54300582003b2d69f9c293673dce68dd4f68d790433e87d63bd276a92e43b048f8951b6704af869beb843b7d53aaf320058200335400a807e8ee2ff583daf8b48d2213b4c7112c4e6054d6305859afb3142104a017431d16415fa06d76903dfa5fddd23f6dbd454a46a76227d476a3a766b3104cad285a8cfed53a931cffa0219f7bd0344879470859e8c94244a7c5016d1aade1912fca9530dc4b48d03203f916213500333aeeeabc6205d4e97b4a0ae1a927c8cb59a83741908e52d8c298d7dcb36687503a1e460e8bba2afa8583e5a2a6bfda400ff1d1000929f37642c70ae7eb4105c5903fb56a3e562ae431c6a124d287d9d39a8e5175614487c45ac385df0401313bb89037d66d7375f42df51d0c325a53985d095c54cb0d11dae07df0749b5e48c2335270306ae77f02a1b4104908f2fa96415dfa73afed4cac5dd827319134571d793eff303ac9d70696ba75d9beb48874f0e7412c94b70bb32dc3654b036f7fe64532c9f03005820034c56b8b9c1fc8a3efdc60ad4d26d01c114d7fe1a75f269f843fe3ef9807e305820ffffffffffffffffffffffffffffffffffffffffffffee8137b4a062241e241d005820037f63c67b93c25b2372ab0730f4a9ae16f6b8850a478c69c08299483e0ee9004a030167584cedd12b0ad3005820039f6a48d846dbb7180cdd5d6a28d4986cc787a56580cf68fdfacbc7eafa21704a02a4d57ca6d31783ea0603828c5dbd9b8447b4e8b537eb7cfdc5a00a7c2cddec2af40ea5bf5e8a289690c8005820036f72c5784fd30948d3e64f1aaaa5b30cd92d618ab3292f1ac92a05b0f026504a07972e4d1a9a2238bf0500582003f988d2d021bdc5eb35819289df09be64bb1fb9c4b1490f52f7c6bd70cc79405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03e46485f5076966ffacd53f5207e11e4d5611dbd648065e193f0e573997d9d858005820031972f7225a9daad47c299fa9bf8aac08585d6eca69a7ad568ead55c23688705820ffffffffffffffffffffffffffffffffffffffffffff9fddab6f86f319de970b02198aee032ada5d352b58a161dcfd2deaeb24a1eed6e3c8a2e5fb0dc148a2f3a2c57496db03e54e4f8d12e51746e722d70ef6d909ba0253ddbd49e2867ac9934d9d02b6fc2b036f354ea14f0272e37c4dd307670879f2d7db57eb71e7f0f1827f6a84ae5bd8360397471ededc6627f798af11d1322bade58015bfbee73f1cdb4fe5c22e0b9dfe35039dd25346bbaeb4aee26d31c5254b17d99155b38d5db79263c5f0a8eb76185db00219ffff0219ffff05581e0391602a356a4b8c06fb78d96c4b8ad1687bbd7b4b892649566dbdab5fe00f01481ac6eb522911a195192ca503339231b703544f01a34094c3da1ff2d5196e61ce5d13dfe2868200dbc99e7d7103899f039614f7bea608bc57954406a7319f35af042b64ec9609e4ad7f03b60d1305581e03e3ed224452b7df5deeb0b97739dc4a78e3a331070dfcdf0dcc338f000007011bffffffffffffffff05581e03e161e23c3c13f08516832022fd0f45ec11be5f535b193b53fc342414d00c04470173a4a53659c005581e03a5b1a4343d0612bb3b5a493dc7b2d8fd9bd5d52fb70fc1990970df29900c0a470360247f50382d05581e03e4cbcdb0339ba9bf0f130d4ee46b0b375884b999ca7dcda353b333c5500c03464ff8e5ecad2805581e038772c588656035c6057e7aff253fa997434b22345a3a8e53cdb4bbc9d00c024701fd800d4cb5f803cd994f47a28ef4c65353de2a87a406ae7e97622b181a1d848e5df98cd896991e03bc5d709ab899641d83bbffcc886b0bd8c2f92cc54fd9405bfb6bc5e7aee3234405581e0331f69abccf4adf3edb322eda73a18c089707e639893d904200e9de9da008472386f26fc1000003007934a484f94fdf45570d7b4cb196326e71d3464d9c3622e368525019af467702197f7b033ff2a61600e1d95440414e37b37af2108473a4addfb13d805d5301f30927ac6803689be3377acdf0e0a4e540f95cd565b876884da0662e7b5646af08d362cd0ef80337d66fe3cb722ada2840c202272df877c9a87d517fc68c37b069ba3e24a56fa5031ada42f3034ce77b61b1485eaef94d1c0555e8fdac24ef141ab34342f701770403d557efa2385394da27ac7f28ed50e8553a7b2af18893b25a47d14607b4897c5f0391e5cb0af6d46329a85ba7b2f0ebe208e2313a589cc84a6f8c0059cae7559b9f0301d435bafbbd336acfbe796cce0dfbb1496f715cc1a4cbcea43a75335e9ba45603c2c399d539cc1593922f87dbf5f86521f769584cb297cc0f2f90a4e569b1d9e4034a8048aacd8125f4eb5b5541589e61909c207e33f246441e47ebac8cc22fa37303f5d6b42b18d7b812f3c2ca15052e6d6b1b1d48372d437614846efae4e7dc2867034cfd9e6c30c23ebd71a0b7f470be6244e37748f8ff8e7cedd4e26c5e41f4b606035a882433b43f6ba2ba3d0cfac780bb42003840f6258e3787de65a8cad2f3763803b2222503e1a7313037c26e1641bb910453531b2d6222d70624976908bc1fbebc0219ffff03770b4155a41a224271a80127e9effa7bb0598206dd8a9d6819e35230dc0997d5037f77d0a39c225432182c4c73b7c8cf20be437fa46892261e4b096bf34ff466c8036de05dd06f8b394e5e0887bdb17af52c9af1f1d6f046427fb2f6127c768b5f2d03f4fe9940dae5b1bdbed6f1cecb882d49bc1e5dc2fb0ffb28d4f8feb4f90c712803a95bd4c0af5b23130bf2ecf20995e43beb9e233cf1714d1642f92fe69043722803a95e62bfa1ad9c62606cc355a70eb2f743b6b071de680b0c4ffc6b09b570ef3703a22dd1485bdb72b650371ce58d11515637c62ece94d0571bf6609881be47e39c03a904192111e40f0c49137ef042df3f8676cde90d777307f618978b0bc061fb7203eecaab45cfd7f8e4282af8da7c1dea6ee3ba8e585cd756ba730b86428e6cdc15033b4e3f869fd451f4cd27a19aea9855acba5e2d92ec48257a037235e93d06321d03e730fbc04ace3f422afc18b5d35829739a4b3e99aaa6a748156989620e3b5613031be403f9cbe8be1205d4a382b21d3741c6954a6d2acd03dc7a5261cfa3b38e9703706037072c954555fe9a6092244db4cb02dc42f179b4ab4c49661142eac7c30303609db664115fea8d2fcf45084ce1e08a8d447333a102f4d024c4252da75be0700219ffff0369351fe91a94a97169602fc9f52e9622caba1c8ac4b064b6ea023dcbb21b1a470396bc5b07030c42049e4a03677be560388492713be0733b8fb3c8e79de5982b4803909c3c0e7b4b131410f9c272136e916ef0567cf1a694eb619b67f4e466df4f3703a6234deb0560cdc1a0c621df002b9f9d5415d0a865ac959d6aa462b2a82cae1c0219ffff03f5cb5f39deefc6cde836a871ed61dcb988ffbb89fbc7a9f257954acb11eb8ff603c70f70c374638ea783b9fb5bd7daf31a495783c5ad5c603bb0c7517af07174950219ffff0384808e27280abecdb0ac5ec2994d8dd32e2f3bf7f32f79d286403a263eeb85cf0334516df3660a5866660fc032648213d48c3e22534a725b8c7220e86475157ee603106df3cd2a62932ebb1b964c1c14b5b433695cc4f24f11e1b0f785af832560f3033b7a38a6859ad3b601dd3f4a11589cfdcaf7203cd8d66b9a68e729f445233dec033d8fc3f8ff01baf2e6e7d95bafe4819e55b082ecf2be8cbd8564274ae5e457e803b126076b6e832b26a3e974a1e51bdb5410a41303393d474b7880473c3cf83f2f03ba3f9a1c87743b02e6c73d1870fa11545fc4461a84d5a7904f6767fce223802f031e06b60503cf87813729068285338c25f6ee709096c1fad9d64c0806272691a703e5aa30debfbd406211ed902fc9a59d96ffa31dccb92facb62f57b91e61b4ef370314e6b684b2e5278c0807f541b390e141a67d85d44c88caeac5ecc1e0a6f0219e03cfd5ea9e33b1653a4363d4a1fa0372534abed2bb5e8530ba7e7bc7a199415fb503023fa776a7b790fc244e8081bed61db5100ab3ec98cdffa138057267bde27abb03b373e8af7db2de6e9b83fb8db7f15f077f0d20e430c2b3289b6b73cf7af8d90e035703db6f9bb5879cfb92cbd10c8b3ad79958f30ad4278394318cab87bc31892503e149341f968083818e6277f455429fda156e66e20c1e8f8ca391ec3620c2262003bb5096b83661476c8680086d7515a1c92d5daff44aee272a28417b03affea00003f124cb3d2a161be678e70a8a865efdf9c0d9159283cbeffa2fe76d88b4a8bf4703e81c4c48c2e1320b6c2b1662e99fb765e633973fdd87a5332ca23fa667c490c303bad0e9fd1c1e83d73e501c3053e76d6cf5ca5214a6a7c85a0ef4261394b344c303193ddc40c5808586e764d1814401937e2c7857c130d82f1a1c22554709eadbbc03bb5e9849fd273d57c67b28b8158996f98764c2ee7704b64e8a84e11024d308400317787b2a3e13c20c5fc934cb4cb853339f4ca97f1817644a04e194be5973c6ef039bee3211a5c36c18450a6df2391ef11aa0361bd06074a755b8c540eeac3bac2503f4c79a369ba8d04d0e8412862699fce92850d37c2e9d8e63404d064e46bb4ef5030e8f872959b31e77194e561d0573de243b316fe99432206ff34504cb73906f6a05581e035f26dcc313c89661ba2eff4db562c398ae005ec96e9047c81ad00414400c04471e99b621ed68e805581e0357b5476290beaf09b3cb04019cff0c2f5cc44cd293707325faa90255d00c1856423bd003f5d6e5e489eb270e7c3fbc5f75130646aa3b9cdc6079e1c8abf15c38d2b5f90604590ebe608060405234801561001057600080fd5b50600436106100625760003560e01c80631688f0b9146100675780632500510e1461017657806353e5d9351461024357806361b69abd146102c6578063addacc0f146103cb578063d18af54d1461044e575b600080fd5b61014a6004803603606081101561007d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156100ba57600080fd5b8201836020820111156100cc57600080fd5b803590602001918460018302840111640100000000831117156100ee57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919050505061057d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102176004803603606081101561018c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156101c957600080fd5b8201836020820111156101db57600080fd5b803590602001918460018302840111640100000000831117156101fd57600080fd5b909192939192939080359060200190929190505050610624565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61024b610751565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028b578082015181840152602081019050610270565b50505050905090810190601f1680156102b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61039f600480360360408110156102dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561031957600080fd5b82018360208201111561032b57600080fd5b8035906020019184600183028401116401000000008311171561034d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061077c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103d3610861565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104135780820151818401526020810190506103f8565b50505050905090810190601f1680156104405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105516004803603608081101561046457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156104a157600080fd5b8201836020820111156104b357600080fd5b803590602001918460018302840111640100000000831117156104d557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061088c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600061058a848484610a3b565b90506000835111156105b25760008060008551602087016000865af114156105b157600080fd5b5b7f4f51faf6c4561ff95f067657e43439f0f856d97c04d9ec9070a6199ad418e2358185604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a19392505050565b60006106758585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505084610a3b565b905080604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107165780820151818401526020810190506106fb565b50505050905090810190601f1680156107435780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60606040518060200161076390610bde565b6020820181038252601f19601f82011660405250905090565b60008260405161078b90610bde565b808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f0801580156107c7573d6000803e3d6000fd5b5090506000825111156107f05760008060008451602086016000865af114156107ef57600080fd5b5b7f4f51faf6c4561ff95f067657e43439f0f856d97c04d9ec9070a6199ad418e2358184604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a192915050565b60606040518060200161087390610beb565b6020820181038252601f19601f82011660405250905090565b6000808383604051602001808381526020018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040528051906020012060001c90506108e786868361057d565b9150600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a32578273ffffffffffffffffffffffffffffffffffffffff16631e52b518838888886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156109ca5780820151818401526020810190506109af565b50505050905090810190601f1680156109f75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610a1957600080fd5b505af1158015610a2d573d6000803e3d6000fd5b505050505b50949350505050565b6000808380519060200120836040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050600060405180602001610a8890610bde565b6020820181038252601f19601f820116604052508673ffffffffffffffffffffffffffffffffffffffff166040516020018083805190602001908083835b60208310610ae95780518252602082019150602081019050602083039250610ac6565b6001836020036101000a038019825116818451168082178552505050505050905001828152602001925050506040516020818303038152906040529050818151826020016000f59250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f437265617465322063616c6c206661696c65640000000000000000000000000081525060200191505060405180910390fd5b50509392505050565b6101e680610bf883390190565b60ab80610dde8339019056fe608060405234801561001057600080fd5b506040516101e63803806101e68339818101604052602081101561003357600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156100ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806101c46022913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060ab806101196000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c63430007060033496e76616c69642073696e676c65746f6e20616464726573732070726f7669646564608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c63430007060033a26469706673582212200c75fe2196b9f752c82794253f2ebce0d821afef5997e1d5a35ec316ce592f6664736f6c634300070600330605581e0341a25ed4abfb50731c60e07f2c0842840de777076f1c867a017c6189e0071a0002af83190ebe05581e034472f2e85fd808ec59299c77fa586cd1f880d329b2be882ab1da25be30040105581e03dbc52de9ce4a4a3e13152fb01fa00303aaf0f54e222da011cfcc1cc7400c01460fb75043000005581e03f97d65377ed3cccb1184c2e010babb4cb136b016475a56b56531b2ead00c04462f46bd6e90a005581e03efd327599f1b2af2739bff67405766c48705c75ed132bead75816075700c06470260ecda708d7005581e0310f235a22d70de280fa2aa4ca5ec5772e9c976f9c91d30873680c9cae00c0147141063b776400005581e038ada1e18e0871678b6dbf5500040488e612ba3b3357f53334feb2ad4c0040105581e03e8004ff025a7cf0cd5ea2efca355494a084e7abd0f20ce8879efa2f3500c03463525b828e18805581e034b60004c8c5386484ac389c5e972762e0784e303edc3192414971a54e00c044715ee1951b7dce802195fbd0377c037a9138487c51badae8751d69397a4e37e9f5f033a90e2d692df9af19b90037398ef180028f8859eb04417f11b7c045aeecc202d9780e5a41b2f6e00f9fbec0317edfeba4e2bb1d40f5ad53fb19efbecbf913f8a543b7ea5dc84f7f1951ad9b3032106dfcbceb017375b9d38a3ed79ef677999c2f6a2f5c5689203650d53df2a9703139ec54ac3d5ba432ff832bc2c4adfc625649fdcec4365a763c43acea5cfec5b03ccfa2af3c571692243d41eb50930019a7b7dae915c240bba2a2f9487faffd02503dd5ac6640b9fbc88f921ad8fb882f19ca6fcb1d109f6062fbb3c2492d28884bf0378f8d35eec42cb902839e7f7685047d700e446436ff3b0d1219cf939f82197a7037a16a67223b76a837543b9c131ab1ee9b12130dcb3f922bca4615c5c41297bd1034cad73c51ddd167eea81ef585476da8555f280758d76ddf0316f7d509ef47c1c032b1718ffc6e6af278edf21727111fbb5076eebf615f5334d8b510c5ed753ce35031cbea1370d958582ce5bf2fbf6c6c1418cb3fc2e3ddc1b24bc382f638e90be3103b82b654d6a7d01ed058e5c00dab82300c13e53157a3ea42abc22d2a7a03ebcb703f6a19e373b8c2a68d2e25d1a74ea6e0e25f8ae056a20d980af217a41df41acb103904d22dab980b24cd39ac090e7de73895baa9d3d5b631d5c708845b6eda611080219ffff03557bcf177b826017f9b061fc15926de67ae8ca6b4f05d9c0b45832c59bc3dd2803e206dfecd17c0ecf07d573d32241579d611d3a73de943decd87a4bf088eefc8303ee3d0358b7227c31754be0f83231ed1036c210c48a7a0b2442af376834707c54030551f0da6a053648ecfe85aabd6bf933130fd35378eed89e167bfb97db38668903f241ca016fab44acbf1b3148e5ebc8256614b847a3f6ad58afba6d4f00cf4bbe033f709cdadc46ea6fa3948303deada3ce860174e6e4ddc5b2d904f62c99a7883d03f860b45581296ce3b4cf650ad67b2806539d36af870a93b4562963493f0932a203d6a4203da43ca171e855281649a55aee72f9e5a246d54d99145cba3c3f12125f037e1a91ee687ce5b88f8f2046fc589fa2458a173e6bb33c97f2d1fdd1fe852b1b034a3f14e7b88bc18781289c2335f9d0370e5cbe982523195ab50f18e84ff793fe0219ffff03d72b6906a46638fef41a6b100eab1b5d75982566b308f2e826e87a589ffe44b903828480ad399d15ccc99420018dd3527d5937b42ce415c5ece379933649155219039ff37d31337413f820940ec9337c13653a2d8dd342332708407c32548afd337b0219ffff03df4bb1e17ced04882156e0ca48543a7094a703a58811964870e21e0fe0a43cf90390fe47f8be7e6de46e5f73b650348992d0c8159b489b294e839916bf2edc0c930324e9d9e22605d46e14793cc4489891f026ccd02e20b42eae0dab0fb731a884040393f65685b8baa13fb91198ac1500047afe06841e8e39fa469066c1866132645d038f61673d4feca15dded91f2540309a960f4e8f7649145d91f15bb6ea66806d0803186abdfcc76a9481a9aa3218e5eac3e865345a3fd4395471c3c154ec113e7c98031dbde480f5358f1718acd1e2eca54d252fd6955685d1db236e1f6081603924260364326638843dc3e9f49f2fb4f21fd43a559ad077a0ad4a549095979ca36643cf03aa786ca1ee6e6e02712e6ef71f3c6495c8f175a4e3d8c5dd21bbd7f9238e0dd803be51b7376a47ff89c57b5bad153233c640da46e52705af69a22d57d3579a075d0349921dbc7f380b18296552211d449fa6d8b2a4515b0035c3fbec6374414e76d9034e184a8efebd9204d366f59a8bad2e958bd0d945aec5138f2bd9da9fd7b0eb0c03e90964b19b3bc1a061cca243bb1a6c62e366cc9a6fea3a4b8608f2be431653ab03be36e77b8d6aa79b8c813e81b1def7d6ea15fc6d8819f785863805a383b3696103547c5f9a980e7ec008a65280a480d51b222a710efb373b3549ef04b5dc71ffdd03b71a39f4e91ebc2b08ba84c45ef70e81d3ad5945747a5d8ee66619cd099213a403b02e35d5479a5634b456b89d941c3ca53edefd304e0069d2e2992e20115dddb203036d50440a8983dc61ec5c789527a9f900433b7d621c1f977b92e468363caab003244e4a5a81f6075691de977d422d922f1b6e73d7d9f23debbd89573c32a37a22034e480928921ec62a9e270dcc3d2a0f4a52d4a14b604006d5cd4a9b693b20c5be0398534f644ae0776b7d7804145b25069f45e445dcb00d173d285864d408c8418a0361882325bc8714be50498f0633028945721c9782bd6a084ee3190aad11f11d0a03321412febcab311dedbb8c3ffd4ccf5a57f3ff611cc5d848f128de34dead0c7b03fe3f65d856821e6a81832d147dd1fed495b6a39795f40f7a12f7946c6c69621a03dac515747799682bcb17fca64b40f106a593238068f9c9cfab3ff7502cdda1f3036c886462bab4cf245cbd657ecfabd5c53959605e9a3416be669aff29219dd50403b0a53cf12a60327d8f8a9941fa43f46e0d62b7e67c472a8263eeb1ff8f9fa74405581d0240e50109938f2a825da8906e1837bb4a1889885d1088c9e09a36adc70c18714708799ac83ee66d05581d02717509112ae0e2dd76b5c0786bbc0c357be6fd1d899367efcd4219b30401020a036e10c7437574e7948ddcc2ee4d5c1ca84e3a0cbc0e7bbde451cbb5f2d1a58c7b03c04bdafab66d864ff6860b05cd4f7a3beadbfb96ad7550b0ed084dac5f51fa4f03a0afa234f63bcd30f4fed8d30d306e249af4a2445f74646d7471cafa078fcd22030ac6cc25f75561bb85f488b4b221d2dea7f956e4e888c4afc6ab90a4778f23b405581e03f3a4280e5f5991ce1f086f762b1724c5b15ba32b8bdec81444d9df75200c04472700e81b3eff0c03272590ad305744e92b19ba090269d41dc66a94cb0b6ac00b65ca94ec159f1082031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e03b3de1185240f40f6d3fc65b952fb047682d09b03f045ec3d2517a8135007011bffffffffffffffff0219f2a103310dd296079ee0c5ef458feed6a3c3254677dec2f70a80a3231302f431bddbcf037392371fc90e2e5abc8a997787413b424986dd9a145a15e5f6cb0fba62c74d8103c2ef12151bb377049c61386cd14a969c1f535d5547fef822c8050208ba6d2438034ba9ea42070fc35f797413fa539c79a78e0bc17f006d6af2451f4efe0954e96e0219ffff03043e0b0ed104a5a245804af40aa72fdb178825ca6a83d11512ad7183b76eedad038432fce2a0bcc6c5724f467bdef781995e26e7783e27b16bc26dddc335365cb803bd6b17c3ff738ebbad6a9141a916cf46569706704d6aa8081d9d6624d5b985e80219ffff03cac7ad54c54a3471d64c0f0a746078d8dbcbff29cd4f2eeeea707f768f554363039cb5408afddd1a4bddb811d7f1bcbf99181500b73a1a0a3fff84a82d1c53799e033056b175367f68dc2db9e59b909ffbc0d066001de75567e3ab76ab8b27aad78403aa41fc985d67ed013be187bc5f635e1ada7f54b7ff1a04d2a6c5a0b1f7a199420387fe659cc84270ed43062e8a1cd51b175d6b3860c1bd886fb6663a4eceacb06a038245b476952c1a222ddd184d313ef571afbdfcd4e9f3d35493617a981b815274032008bc3311be960a4acd5f5de1f165e00b4b5850618189835b00af9d17676ec9032f28ab54b24047d9cef8ad2530305acff86ffec32152f9ffa9c6f25e34208f460380777e015e6c7610217084f203b7daa12a3f9c63efaf4c52d14ef4e982185c0703105f6522c0cab287e799a9db8a9e0884c9adaa5d5f31b69f929bd832ab297af00306d08b3b4a8411c7401eea2d56045fe266b2d365436d6a356c44fee0b3e10d6e0219ffff039c6d175a2c8b6b13e7233b097cacf93de2b7e4ae8522f977a3c6f59e27ac3a770372f5f994762000b584a703cd529140484991d38315ea43f80a3ddedb9806ee0903b341464dddee7df4e3625b504bc49b801fd2859c662deb8d7ba7c10aae1e7c000384f424e4b907fd137f7e125d4ed6cfd0d9d6d84b4a05b3b490573983bd809be7031b37f3ea8b89fb54782ec4aa9388128d3c76833a9dfe9fbe5858141ce3ea2ca1036895be601d0baea3563f89e1f0ac3c6bb594ecaa2da130e7ffc835da2388ba130219ffff030bed9579c0f74a8c506172248d25685146a513f11ed92b6ee22a6c035bbeb70703ae83660850b9af46c5d8735a5d68a4aabc0e5bd4335e4b30110a6a371cd1b567031fffd50fbca2766f3f05b38888053ba97e7cb6c462ac5067a588046a06f263420349e35ead85f72ffb5bc2d82f39f99039df650278cdc419bd8db75d0b1aec0ab603749fab902b25823c457d25e4653bc24339f25c706f3d9feee1bcd36041ae3cd803039ffde417d3dec19733ef11a2b298674fbca5f65fe3a3329ffbff696f4aadff03814c33eb68da0b93688da427566946732bc43592457cf7d846e3b54a6627aa260387a7c2832705e367b23e57b72a6abb8e1e953cf1e328e5db4df980e87111afc503f317ad32d27c7d2bb0d25645a3399aa0e307a1e83a74d62ba296155fa72344d30324dc2fdc1a1b03b84ba4dc93fd6a25690c96ce87365074b9a6080ec2d25cc27803e2432c7ca41664ff87bcca241ec57ae00a718d1886860b9415344cd1eddac97c0338300cd982e8e468efe81b12c20cdc0a16350e788cc8254dacb341722fed924003a2c9d057b24d7468a00cbf0578dc217404831cc0de198aacb14d67216d2b9cd6033412ca8392e81384ae06b9cd705f3fa6470dea87712f4cfe5fb1549c2fdfb4bb039098a4f015149d17095fe30e1f9b79de750f05b5e948b1bb6afed12aaa9a0f4d0344351873d1361e7c0c001734ad7c6f3b3bd184f9f32b2d216599322d47e75d56039967a955f44ab7d593bc2c30f8dc9f9a40ebe5f73ff211afd081504449241f1a03a57b066ed25f94f9bcd1015f0babc95679f64149cf2307b90b67d4962f3721d003f42542b9ccff98dc537cc8de1d2a2c515e6dcb677d397c938631d8ed3aa74d79039cd64fe3a3f5d16f6494145682a670fc0a16c395d4d309a45bb3a65ffeb6079c039493d4ccf867f06c956da8feed866d30a6dd8292483636dedc95a49e5d1d14c5032a2c4d57f840100e7f777ffe092bd1813578e299cc6fa6f90f0d2198f153093805581e039cbd212917712266ce7aa605aabeb5ceff665eeb1b20946a171e9e078004185d032583ea944c0bfd06ef4933af0c74afbc6e9bd643216d343088b10ddc4ba4d30705581e035e8c947a297a34c82f134bdb089fcea9dce59a281b3ddeed12780fbb20040105581e0357914e3d24147672246432b22c38d6cf98e5c340debee7f9f92376dbe00c084695b8c21aa45805581e03f086272653a53332081c6aaa954ac7776e5d95e2330b6c6ca2386a1df00c024734269c0b602c8003c646be9843fc5fe858dfc498c09b8994b0095e203e5e0bc13d02bda1eeb4ef65032c1aa897c203a243f44353887c94f97249d0c24f4c29e23b056ed3d6fa41e43f0377e59555609719214a906f03bf10ceba5a34eb566130ea355b113967875fca0f021996e403d9e7f94146dfae5ebd1b50be28e00c010ec90e74c0a97585e0ea9f9f50dee9c0036d99afffb45f64d472f9c4b3eb5e8ee0ed58063601987c384cef5ac9d3c7152503ab42f0e13b560cef0c1a9adda29f3e6f39ca21ea93180a00ee61e1a6329e6be303e6f174fe7fb84cfb624c7c9816ff0b56ee13a788c0c3526671c43a8c7c39cd11038c144d30c4926b5e771cb8cbbcaa21c542d9e3a541840ab5c4e61b01f55c051403a6531d6128e1efd9d306f32d02b3c243356cd9b7c847c00cb5a137055e2674f803df6a6452d358d69fbbf9a63f3894b2fab11c7bc9ffc0ae531a5b151b560e73330383d76157e1d7f0b90ef274cc67aa7ec923829d2b51c976c0c2903dc65935a4e0037b2bb8e62d3241b112b4df9696e333b32dc0b29ef2f77b4416874f01db11f0700219ffff038b1a194b96770d3f6233e786d70307c5bef404dcde6eb6c0a9b3263679228def03c642316c38f215e99a3c3f8e81341a32ae5f7178bf21aa3d4bc5425e4061a428037d9515fc173e699f11e9bb78741ed96e290ec93d7487fd7a83c6a6ee369f8ee10347e5943d629fab8120a95c8274942734b3cb81b7b0b4d248a7e9d402ec1b2c5403a816ab7b0c41735b1cec80416293fb176a5473ab4b1f6168021d0e31c2abdfe603fb188b5f0c6242bc9974ea38f7e32a0d91c529585ed44e1b18c616195b10bb1303725676acc7662491aeab52ed2db56cfdab637acbd71addc7e3b5af09aa55778a03f30ebb4a5a93b83191acbd0271923aa2e2717ee0fec2232c3a5302774c628fdc03f986c67b6896e38f0aa26b34a2d58f78f47033c9b0e07877c58800f41fcc808803f7a5439dfa6443dff0bbdba05403eedb3d2bf69056c347c9b85d25c0b85493d703da6a3a2f3f2f079f530a4e17904ab536d9af7dbac7d77173a2e7181b1d68f9a2031c446303669174801ea9a145b7525d71d0b3a6ef564c4929ea924bce34d7047e033d78fe80c3ceba7a5682b7490386eff8980d05c18f3e153f22f5cf4589b36d950219ffff039d2f9d3da8e8286d487635d87763bec2272c42481c1db91ac4716f557da7750803dd3563f959d6ce4c7a9d17c630c1eff453c2ec69635acca2378bd6d3c6c1885b03ecbd5d284677f3a40a418fedbb99865fc7347ae6ef4b12e71b455c4effdd2fc903a691492eb8fc1e9e3da21fecd69c534466a689545824e5ae92ccbb6ced97ca180219ffff03117b836b5f5a78f0a828f0bdfa2862d3b2c51f5e242764a1711570d8e766fc97039277007b1b946ada193e877f280de8871be9f7d6455630eae67eb0b35fdca4f0030bab59cb6fa7927c915c995f5a9218539c01f3cf7086628727d502d98abebb3703202b910f9d70bf170d3a644b346b09b168a0f701ff661f1395985a56a02666af03224985ddec08f7fe55c5722dc3dc06198a60ec34e28bf213f4b536e9925804d80331872d2eda35e20f9975725ae0566ad2a762b3da13d788920f94214852c7abf603511a33485618decd851984427656767d8b77b8811e38006ffb04de769e106c60034e0f66829dc1ac69c88eb0ee4910b78b32320c0957e95868c72a904f9e79bf2c037fe58fd8880cf5ae8dde061b8f781eb8f3eba2c8058a3738d5133fc999926edd0308c902c3345cc33324ea902af154bd5382a617bab6a9415a59ebd864cc5fc491034cc763ac435db86c4f98bf398b3fefefef32a4710658af10a9a3e34f1803cac303f5d1a98dbb229a891eca277c3c65c840ded3831bcc27832ecbe0a776fcf5b5bc03f75d722c46b074e36d0be1b89d87a707c8c4a5b26110d9559bbc53ae5db331fa030fb2cc656092c218e99be15243b754745725abd9103e5d4484ce80208b47dcc9034a87c70fa25242348952bd8092295d30dc206e13f62146e7a5c418d5f99e049603b5f82920595ce4bce87b9571948922dc8929813a6eb583d08c707cdfe870123e035ac6138ef21c1b5292d0f5e2f56cc8a1cc7dca58664c0f6b9ac1ebc425cdca47035b0e1af3d6b55a20f4e0381e2bdf653008f4402634c999be4146d2a1b69d4281033fb6bd53f3363cab3a97aa616f8372851a741b2530192910e23e1588944d9de703a3314e443a01adc69e7c77a35918eeb1e0b2a498d039552b0cb33d8833264053036258089542f3d7d0cda85707fd1e1cab34598391ae22b4db8be82aa2f167634c032cdb7680e050499733de55814ef990956cc8053bd473b4e533fbd22d59dab0f003d3c89ce9e6b228579bcdfa29da17d6779780dd05d3ff575cc91cae0cb8510f8c03fe123a0e6d3725621a1f99d068a27c6c4613c012333895aab871f08608c075350321a36b1394a46fbcdde85787e04c3698a59d8fbaef44b722d6d9916a997b15c403ee3253c4db34ada6b76ae3fc0a8f452c54ca146285203e974998fb748aebce3203ca369474917dfe4551052f64de76c3e2807ee29e25ff0411e1356530c8046daf0383c552d2d7bbfeb6532f77a2564e440db00e0254e84db103e0e77161356b0f8203d504aadacebda025d99dfc460550ce9bed9eb420e88d9db50c79813090e4a36403d098b7db0b76b6986bbe45f4cce5962362a09a6f32435d543d5463e2e0c6a8100365ec0bbd07b23e4c2f002a86502884fac1caa1d2e0afc689977b6f8f9256214d03a343918170f74434e6aa812d9663f86719b5d55ff1f4013bb0150d3e1ceaaf65030807112e1925f6ff94a020c827dec26590eb1fed08cb395e14ee362b26cf52480307205d4a7475192ff842385b2109aeffcbc01364c745f2fe3405831e56630e5603b231aafbf64afc2fd661264ef3f71c0682b39d8b61b43b1bd82b1439f2a89e90035bd7df2b885c8c8f65adc40bef83bc36701803b02b4071152da64d1652391a83038b2028508cc0bb00a0269a173b3be11c89a02769b8038c7a027d58e58daa5e7003d54bc8f42adbd76c99a110ad70c854f49c1d4d4bd6fa7e60ebab4a60e911844203e86e6f6b2c0942c68be727dabad1ec559751099185fb1f02cfc366a631372d9705581e03e3d6bc31d4a00c889ffb52f500d48d6d77aba2058566016377613d4830040203ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e03325f15937cae940796f08309ed98196efafcc4dcd45889e003c248b44007011bffffffffffffffff0355022c77c99e25098a8603cd355a2752ca6362b27eed18cd8b8564ecbe10bac801410e03b2d7bb34d0c93464dac2199d4632d334aa1e2c07be8dcb6f67f99dffad3c2b990389a53946a719efce09326f7aacf560549c34c565661b4c23e91a409081d86ebf05581e032b396aed0fc04d6bdcec07340cbec83e0817d05cef4e377a1064d28a10040205581e039da63201863fa235e3ce4513b0a8f7aa1875f7e05b664dd8b73d8d14300c014714b82c5054800004592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032032e2bc0c0ff22609eac8f10e1c8736f3e780dcb85055451e7ac674e2667ce4b570058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630480dac94808eaa9c6b0058210376f925486c6d0430e1ee8e5bdb91b87fe802bea0b6a1bea169a2d14165fbaf60480dac94808eaa988300582103e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af052035268e78d0d5c3ea82b3cafef04e091a6ac0058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b582058520f54bd0aa69f8bcb61490410e78098d8244ed9accd08d840c7fb3fee1a88005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8515a781123ac02e6e7ab6187bf33ba3f328800582002fe96ef326382e94af93b2b75d262461c23147e67cc40616085d85852c5cca75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219804400582103f6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70410100582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5db700000000000065ce6dc1d7b015f800000000000002e290ebd6d9a4aa0058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f54b18c8c017c8730c46f65d1151d7fdeb447670d520218480219b45505581e0348df8ce6f0973a93aad05319639a856757a7f3bc1644cf18acfd2fea800701192c1d03b4b098d141f2425db6c48e9b20fcb368e4b9f65fea344ef7fce58c09f537a32c021927760372469d0c5a79159ea86ea954894ae3497ee98a1d3556b97527994e111c9f50db0370ec90087a319578b693be3767a3d7f28637098c3a7265c9f93380d4b0840f78031bf1a4b012d1d7daba2f2824485fbe22ec8832399d15a7850f11f83ab1fd402f03c2fbac31c189a37f23e77611a36323758e18d7f16e9e338e07f76be067a9c8a40382f6e54d39cf20330a33349dafa33fddb731bd9b094ef4e5e62e05bb36be8eaf03cd0fb570e88d6313e02d1039aaabd9b4a67686dc3fac29293d0bd46bebe9cc1c03d7d9f8e6a2591cb6c972d7641d3c14a24c7ff7a9cd3e5c05c84ef68be0c3133003ab870669beb665564ad594e4eb1fd7612a0c8b0d03f3dc9c863af8b5fff82f610219ffff03d585b266c9c07e068172a0e420cbf02aba1cef120e262bac7c8c860e4624123e0219ffff036a7640b32755ab14df2a0c038a8f694affe34680e85242d9eff81ce15efadef103d97484da0d9541eefba33541e7d90d2d047dedbbd2340f4a697c25c102172a7e0314c0d26e5037a35b669de1c595b0b1391f0835f1d0682b2ee89fee6f7f241ef10358114cf8f3f9c25cdb5f6fb7780dbb19a0875ddb55665724b4b1d166d93b1b0903aff3599eb1851642a158706e4c3e9329ac95e6834d5bbfe548ccc1ac51db666003b3d0d4a694c21a1a2210cf4d97880aa8c94925ecd901921317c510071a06c0d6035681ee8045d1d5d5d843461b8935fe75357c1913dd00a618778167796b874ab103840b0512c22204e918f105c38cc44a731da398657f9bf45729ffe4bc7ea01bc70219ffff033ad165c9c95080e45b6260284b9a6463349973ea002064ea32a70b898efb5d870219ffff03a965d046c68791c64512620dd76c6fa9aebd27487f9e3857b1373da7fa005b2803cbcbc352f92cbc97be63086f893620b3bc1feda08256d384ee4086ce41d4575a0380a50f6a97b2fb91b5bbded6de6d5139bf2e3718d797d483fb0174d8df6737810387f27219c81cdba212b3b973ec3d5b9d28c61e5e03066b52e0f7c881ad59c9ef038504cbf24c8a7b5aabe9eb5437d9b6ebc95f0c788a9744cf3c6725d52999840803399fbd2ce4cb89b6b0526d5a87cead0af24156dbc7e673d3018d21c55114c46003eacb2dc5ce8d57d055e6378edc878a626e2b1e3a0f206367dd07b912a9c47bf503285b47896a9d8d4d4d8b8a0bd8cbbb78c2af6eabe71f90cacbd930d180d84e2a03df92fb70bb2e512c94485ff8cc53dddd9fb51bb19158a3a29ee04b57290a8ef10372df7bbddbaa66659c9047a4c09dd9a3210c02d0d242ea4ad273f52f0fa2a534033ed5d36d2825c32a6a47aa7d940ab945072d0f05c0aeebd0abec099cae34b89c033ed4fd75447bce6d7bb4832a7b69d6d273e7eb0b0ed3d849e69c9a3004510da50330bfadd5225ee95093a1176de0d1b53515929ff897a4cf03e371c3d6e4c005c9030eeaa13ed7272a052bbd5d53d7c6953f439c69ca0151d9d63bb133c77c990f6403482dd6304b705c1fc0445ef149a530b851d202a7f80e61c9995c7c096a969c7c03900d49b12609883534a72f451d4eea51bf077ad947b3e76b1a0160659b71ad3703e6970a007df1ff9d647caf7bceceaf4ccc23105eaecf83e02eea58642f8c7ea603d66644c7c00d92437ed33b0f84a813999734588f9721e3b840adc714f9a97812039adefcec589c9501754b346e226108ec809c092e86e866e4f96ddc3f21f2b34503a075fe766ce95ee249c954869c6262f5c70a84717a3b8302fe7443e5f273882303a2bdd34cd191219ed72f44efe0d8b9147672b9a118c612095347d069eae07bda031c1a565b862244adc40f0062ed2edfd4c77af766a1096f2b9e36112258d18ac90304a37c16aeb58ccaf4ca4c197fb4b87cd1b40d0fcddd9ee2804a245d27707cda03cc6966d13ec54e3b66f8d24114e8e7c30a5ed1753b92a4e5c543cd88230e287b03c088d949d2fabf4fc65b1a8f2408eba838082d82711aaf51f9da182aa44e9412031bb1ce186ad6c35594eb5f46656460b58153b208bc6bc106b2ad9fb0139a870203670529554c6a614b879c8669fc31af5449e4971f27ed7be09f224b4f84d3066b03473082bfd9e33aba1e1012748da3e7f67bd19e7ef8d04824e3857fc23a46750d05581e03d7551805b43ecbd09700f873112b8bd1aaf38616168876c3bec48d5f000c16480128aeb61a649bb205581e037dc84d3abce14e19bdfe80bf440b86f1856676648a3ba833187b60bdb00c11471e87433e2f529705581e03dac04dd8819eca0b6d6d15e9614d9eab878999ef5434fbb2af17fad1400c1844480297e01232bc6e6205581e03502a3252e11927c0d36825e87a1349c904a7d1b0540020b212910bee900c0446418d334bb9f805581e0398766edcc9b273ba1d444f4f68623323d8d8ce4a6ab7968940494e16300c0147aab2fbaa08080005581e035aa06ed40dc64d16cbd73e432d58d85a6610d0f1c29a7e35b61ec533200c094722990f7c789a00034f62499145f8b67634fec15d5dfa7ff376118f20e3775e6a3fc42f69dab276c305581e038de5c87563c4d53c28f9f3ff8665821e6032bb4ba524e360d503f40500040203aaa1bbf696b4aa5dd9426cd34480298fe23d4a8491991e9f9192b0485540790b021999b503ed6c22966b7c3307aa77347a6cd890c20f040714fceef7c86fa4392e0da04da3036dfabdc0b6538ace5e645a71bc40870f5a17a215ec6b979af7f5e6963da6eeab03d536ff5ba1aa315bc347b2cf76d9cb37e47fbf9df5af5a80982477156a140ed303f8f6acdf6830dbf831b142a4a5543e0078be2bf43d0de919b970342603aadda00330e2325e7936073e73dd8a2960507deb7d2da907cf2284d280e5920dd66ab0d6030d728de1cd8b5abe21560695efd9601fb2de6243b5e7d93b775150d2be497e1d039525d96ae4c66b5937790f7d84d8ee37c889f2775757e33ac3af27d5402cdbaf0219ffff03f7846b98909a57c9221a890e30d1c48f64609660b1e302ba282805a89d723f3903aba1db865a52d18c122d325ba09dfbe7592f2ca3f415cb8a5737e9a37ba590ea03049cf6c0f2e42ac073938f4a003bfc77b8add4df45d7d0700981f6062edf58df0328e7688d46fc079f007e9c4f16c6836785618dcf50a06bc6bf71a0e51ccbd7630219ffff031765176d8065576399a36370e09c48759224581a34c5f16b1955ebcd05bc81cc034605b22ec627f949740795808f51700e02354e5dfe910e59b21c2b5171130a00037cab3b4b1ce769135b4e9c27a756ed74a5e77e9b93f022e73f23f428db80bea003398d68574528eb20349b1a68c1099ff13a9a1e3664316b837f863a4cf1f676c6030fa22b04f9c3bcc6df6d2a97942782dccbeb755b9e4a29cbc9320493e04b1af00367cd304f6a0107ad466b6550e2a7ef0c0e6611824c374ec06eb403d8978bb43e032d7f1b3b69913ac1cd2360b3ecbd04e6d187e0b2edbf269122fbc3d6d75bf9f30316cce2331afaa0814c3434b7aa532bd81b00a5b5ef67fcb6b98396d566dab37103b2ee208c3b3f9a78dd3cfacae54e755c836df69a86ec419163cb3321eeef49950219ffff03ed39e412d07e2d041ed0a948c6bc24f8132c2606f7d8f6f8278ce9977e073c79037c69f368464b00868dd27a37cef7cf4a77e8740787bd3fb9d1a909283c23eca103b64597c069079488640807b938ce6568a0d14dd46b00d09e45f1b4a12352fdfd0347a2d02978598695a9e440543350a3f388b67587bd7dc0cc529f40966c5c7eeb030ffda69ded55181130ff5ec9f6579095d47b1dd4af82cd28733f3ad6e1400b4503624dcd03a8f795438ed0b27f47b3e686f61072372b878867b8127aa546a0b87303edc9f4ce25d228dc1ec44b8843ae34867313cd4fb4f1e49ae61f1c8af4bfb05a0350e1dc79f2147530833adf8f20b003efdb0538755a134ec55e357387fc6027d403e3aa7d6dae8d1d58089f0245a606c2efddfabbb80c5c528d15cd5f9b1d377f3f03887d46a357eb46e8f9b48e000071c13413ccf8c90d28e54953bbbfc9c89e8b5b0398f9799ebe596fad22c8369ea119ed61a99e933267a67c7f7d6366e154edc49403de7068a497423d763b8a523364f9b6ca3c775b4a435ac433dbf5bbf5ea9d631f03a923c79042b70ca40919c0722b0b7f0abce2252665ba6ffcdf4191c4559ade59039eac2e69a39d4c744f462d3400d7a0a0c6fc05e765e715dc4404a59968bc0588039660cb2bb9f2fc05530fe3e949c5f62452c23bb0e6adb084a8275dc9ef04829403b2b871cfbffee922fdeb87f3e9a06600cb76a627699d61e9292b037d87a9fd2e03dca321f692ddf353746c242dfb8668f19bc68da3eaf9cff712be53d06034f4a5035b3fbf975d5cd49986b78cd4702140a6b9965bae92ae0d89250cc8a9011f952303394002109f642a793bdc36402ac84142978437d798e24aa7e2e5c5240cfd0e750320e526397db3a7b26a2099a9bfe33adbf74d4d3486c15305fb848e231af2083203c764813e9001d162d1cd81ee7b303ab007b9532a3c4f9d6094a25fce9f26ac6f03122345a7a07131e5b29e95732cbed16843cd8f8dae64f86fdeb0e25c52cb27950306fc3b609d9fa91425547f2e573fd2213032bc6dbb1c130a5c194a6f940011f3035f472336890d031ea8b9d13df4b9eddcf4c6f8505ebbb66cff065c016dc0c09c03e79c9d1cc21ade07a90a01302f0ae1c2d6767d5fd40e4f666b5e74698f5f78450384e2c3df1994e9b7cb67e295a367f5efea7a0c9dd08bd22bf31abb742325579b03187df8e0774133b0a633da1c264c12dd4f054fce311d856fff741f67d20bffbb03ed45029fca09c940cf353a94c32b9ae3a9fc151d9cc83ccf3e87b6f62acc9d8c03ceb245dd6a0d55630caaf3513fa7df8fd05bb7c49b110403015f5dae553563d703110f4ef4dceb95a924636072d7f66a5f63e65e12b59f17b588d26f37e3f4e864037b213abf52dd5f47ee5732392e18e79bef61aaad74732ab8e354c57b8fb48ccb0370128f3c692c0913a6bfa75e2c58473bd94712fbdbfd09527e41d61e313216720373adf73c4b66792047aecb6036dd89e4d537a6778c3bb031b84d634af8eb6e9403a801042c575249127a0a36896cf72a84f7ac19bc206ffec11a73a884d728a20705581e03eb60baa7bc7cb8c0a78f398e7fcaad70bb6d6c0320b315ca9d3f3554d0040105581e03bfbf59d9ad44bada8053ee270c5d96a6375af735e03a1627ee62c254d00c0146491aed58d8000320ba413478ba6de83609fa654c9b93e17c7d595eea1f3753c8834d4dfe381df205581e0388e40e0d22a19f5fe359e9619901283c0d67a9676ffee049eceb4ce5a00c0744d09dc30005581e039687fda2a8153b506b441b8bd019596109ad75f04bc4a074a47a0113000c01459502f9000003197506d6551b948e13201746f78ba7bec7c6404eb9804b477e6203f31a4b9e660605581e037337fe1b1a27e0d357ceca376e89d7581720046c56bcf9ade5eed8ff9007011bffffffffffffffff05581e035cdf7126f2763afed23c761855e5887f1acb3847bac3988938a101fa900c04465bd991136c0005581e032890e4f9a5b785c5d33389ae309f21ef9b456eefc6266e9f400a37d7000c0647010792520e500005581e03667a44dd0a57f582dd90a8fa70c6d4af738ac0317e432fc20b7ddedff00c01471651d541e193c005581e0331c6968c58144ec9d204a21c25fc8a04813095f9a554669687f15813b00c183848258fd94df784dc6303954014709539c9e0f6bc3dcc35c4a6cfbb26df86bf7a32ff7ae9e588daf311f005581e034fa4ada663c3ff4c3e9aa958e3030f7092dd97ffb0b0a53787980a5db004182305581e0379a8ba132eacf855aa5bae054a2ced6ba6cea777d38668ee6f9dfb75a00c0147132336d702e6000219b5ff0219ffff035f8c15da65132754b859888dafdf8dda2d6c341503427a51ff018b093c8553e703927eb35c27d1956a9ae8e436330e5b6a4b9fb38d9494d6b6a444efa53ad49f6e034c5bedd11e87c9e2b1e24bcc9d76ef012833a8a81cc68a6c4f32ba79e32b9b4d03e7c413d4b5b3f2cabc34eb38d337e70842ffecf0fe881ada92da4ab315a64d87039b4c5f364eb8f3359093c242a58a8287c4edf147cd086ae1f5d17b8906854630030747055309105384ab13c265e353637f8a96758eb1ed909f843cbb8f132ba03403fe763878181c2ae3c15962405e05400cda9f03e1f1d9b927c9db9c2c97fd3ead0331e6646dacd5c0a3808c54f4ccf832811c4cdba5d3e3fd75eb58fe480fc9800803d57c73c964a3489e09eec720975cf49e1dd037ca534926259091fde5daa6a17203126ab9bdc9a3738315d49e59af504d6edee8656868924bf6dfdeb8f29d33aabb0219ffff03a586a95e60f0308398c8ea653e7531319c14339ac11e23046a3100c39b0fed7803a063c3220a14f607b2349e6ed5ba800534a09ff96066834f5d5d7b262965241303214f72756230942656dd9ce46800099a6f435fc08e0052e9b5c985cb4d5da214035f4f2ba7f75a0acb1dec09186844c48e23e1c4584c5a243001179bb4ad88a73003684bfc651511f94c07bde9b44a80b77c4ec69d105114c8fb4f497a65312983ed031b75a1c69c76a08b82162e2382225493d800d6526a208005482d80a4db870ab1033eaa17eb0a7cddb6cc3a18762cbe0c6cc1b478bdea8ebd356a373a92ad4b37f90219ffff03bc74090c4e3d4bd6b98d435695c06c354cb37ed488436ceb19179f7a75a2c3ea0366d4ba1ffc140bf34f7ff78c0dbe7cf2b9715725d45f75d9c9e9356d468930090388e94d24f165083366d261bc5614b478a9c2abebf4d09f393e78b5df040c7589038a920f5d2df1fd90dc56afb3954efb19378eb2576ae595582910b95c792349fb034a91cc7740ae3cdd0668f480a77fe270a9ea5c054381504f95c89c3e039c035b0219ffff0368d497df1f682ffdd3ed4f4a82e250271ac7ae096bead2a17a6207929c610482032479a848475f822582422a97702ae252f39b10b48d669bcc4bc8abdd8b205043036606ddc5a70f0fcfe956030a35ae91a6b003259bfa774a6a2b018a1b8a270c5a03e9f9e21290bfcc332e2c940e6ac9a99dc5e940085314ce91ae5ba4fcbcdca80403681320aa56c59dbc6d76dd24f979fd8e6431d4a555579b03fbd8f4debb14d4940329a98aafd5b252a5cb6edf169e6da01f3131b73a61241b0e5a9974023f20bce303064373a92fbaa74c494b9bb3c09ed235d90ee175fbb2fce2f07cb0d7e6517e3d03e9dcebfbf76992b81a6b596f81f8280c7007539757190f61b4bf7691846952c1038c3e0ea786a08d9d4ff010c17dd80831350bdd04109bd2e5641b1102d0d201d703ce018171a52ff434a6fd849ca812ad5fb12ea24ab5d00e3e92fe4517243c13e1035cfc9421e276d124a62c46c72f2feb99d7f616fa25acd16cf597b7dc531a66ca0312e5a34c61ed89765cb41e1af31f58a2387b45d3d40976446390a53f4c2eb652030a63f2ca64bf32f0a365a1728cda44264fbeefe86d9be4eb6059406b8dfb7c1003d9b3278e5c61faaf09b6914d8626dfe663a88b8b4486219f0e784205c9962a5003078468a40a017c769b325c488872cb5be8a5716d891d0e9d05676b95034a4d7c03f58b271b1ab544c0329216099bc2ea100431a4fb64920eedebe971caa0a74804038931a7b3f1f35ac1e5d35d3c5fc3771bb9f91d77a26cb1d31f8b2f118c75d69003dacbd8664c534de3efc89b9f4320ab03ef2546fc335d79396b02922d12845476033de8ca51e8f5722f83aee0eaca24e08137c8fb72a174e3de4d64e3b828601541032b8de6bd8adf2f22f570b158e9e5a68342d21614eb496e3abfb1d39d4fa0c1a303af3f7c4a5d228f3bf81538c09d60e1ca847c8ff863da885a4d320566d898009d0331e6f9f849baa8f4d97907719237c7e1c465807efb84710d9ea1bfd1360a093903068210e24a700477fa40e242b1287c7405c7332aefcaf77e92fb87b63a104700030bfaac2d323eb6898db67737c27769c6cc5898346fff8f67f60009412c5acc6a03ae56aaf99e2b4171979478eb1f9a0caafe2e98292c6c1526b63910397217cd20031196de1dcd4a9e9ac5e1bf6ae9db3bda7ac39f41a31f90ea9aa985a5e0e23bab0338a3648fe43d0759c2545fbac374ab550f6155703a37f1216014f02c11614ccd05581e0333617c4920d035c85869829581a0a3a3dd9dadf122daad9c47fc2edf400c074771c0d792eca0cb05581e03154df0016effd23a529fe9dba19a32aa7838f956bbc8c9334f0666a5d0040405581e032b3ff3ba56b5c3d896d23ff067c9e26cad3f115e9283dce09e19a270c0040305581e03f158e6cd12159a3cf47403a789dc6c9e7e8c9a09b6da1e03f8e0979e400c0346afca8172ffa0038211f446ac23f136adb55c95b8eba937b16b12d9d32ee30eaca4059191e0207503da31270adeab5b50d0101caa8dd4e2326fae6a43562501680271f83f8fb34787037a3670f78c75958f13f8579474b348612a80af61fa9b61b2c81c415523f170590605581e035e4e75fffbb329e4ba7f1b98156fd87b98d7f9b60be56ac357673ff22007011bffffffffffffffff05581e033cc8f8c15d49a17ea4ffc954f9927f2ea565c8ca347927a41b994e7110040104595ca7608060405260043610610087575f3560e01c806375713a081161005757806375713a08146101215780638024c73a146101345780638129fc1c14610148578063e634edd31461015c578063fa461e331461016f575f80fd5b80630162e2d0146100925780631a12d67c146100a7578063547d00a2146100d45780636e20b1071461010e575f80fd5b3661008e57005b5f80fd5b6100a56100a03660046150df565b61018e565b005b6100ba6100b5366004615263565b61027b565b604080519283526020830191909152015b60405180910390f35b3480156100df575f80fd5b506100f36100ee366004615306565b6103db565b604080519384526020840192909252908201526060016100cb565b6100ba61011c366004615388565b610ac5565b6100a561012f36600461547b565b610bfb565b34801561013f575f80fd5b506100a56113a3565b348015610153575f80fd5b506100a561149c565b6100f361016a36600461552b565b6115c4565b34801561017a575f80fd5b506100a56101893660046155a8565b611c20565b81158061019a57508142145b6101bf5760405162461bcd60e51b81526004016101b690615620565b60405180910390fd5b5f898960028181106101d3576101d361564f565b90506020020135111561026157888860028181106101f3576101f361564f565b905060200201353410156102195760405162461bcd60e51b81526004016101b690615663565b416108fc8a8a60028181106102305761023061564f565b9050602002013590811502906040515f60405180830381858888f1935050505015801561025f573d5f803e3d5ffd5b505b61027089898989898887611f17565b505050505050505050565b5f8083158061028957508342145b6102a55760405162461bcd60e51b81526004016101b690615620565b8b156102f7578b3410156102cb5760405162461bcd60e51b81526004016101b690615663565b60405141908d156108fc02908e905f818181858888f193505050501580156102f5573d5f803e3d5ffd5b505b5f6040518061012001604052808b815260200189151581526020018e81526020018f60028151811061032b5761032b61564f565b60200260200101516001600160a01b031681526020015f6001600160a01b031681526020018881526020018a81526020018781526020018581525090506103728e826124f8565b9094509250508b158061038557508b8310155b6103a15760405162461bcd60e51b81526004016101b69061569a565b8a15806103ae57508a8311155b6103ca5760405162461bcd60e51b81526004016101b6906156c9565b509b509b9950505050505050505050565b5f805f80845f815181106103f1576103f161564f565b60209081029190910101516040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561043f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046391906156f6565b90505f8a6064148061047357508a155b61049e575f8a1161049857610493606461048d848e613429565b9061345a565b6104a0565b896104a0565b815b90505f81116104e05760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f42414c414e434560a01b60448201526064016101b6565b866001815181106104f3576104f361564f565b60200260200101516001600160a01b03167368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316036106c4575f6040518061012001604052808d5f14801561054257505f8d115b61054c575f61054e565b8c5b81526020015f151581526020015f8152602001896002815181106105745761057461564f565b60200260200101516001600160a01b03168152602001895f8151811061059c5761059c61564f565b60200260200101516001600160a01b031681526020015f81526020018381526020015f81526020018b81525090505f60026001600160401b038111156105e4576105e461517b565b60405190808252806020026020018201604052801561060d578160200160208202803683370190505b509050875f815181106106225761062261564f565b6020026020010151815f8151811061063c5761063c61564f565b60200260200101906001600160a01b031690816001600160a01b0316815250508760018151811061066f5761066f61564f565b60200260200101518160018151811061068a5761068a61564f565b60200260200101906001600160a01b031690816001600160a01b0316815250506106b481836124f8565b9198509096509450610ab6915050565b8a1580156106d157505f8a115b15610745575f6106fd8b888a6001815181106106ef576106ef61564f565b60200260200101518c61346c565b905082815f815181106107125761071261564f565b602002602001015111156107265782610741565b805f815181106107385761073861564f565b60200260200101515b9150505b855f815181106107575761075761564f565b60200260200101516001600160a01b03166370a08231886002815181106107805761078061564f565b60200260200101516040518263ffffffff1660e01b81526004016107b391906001600160a01b0391909116815260200190565b602060405180830381865afa1580156107ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f291906156f6565b9450865f815181106108065761080661564f565b60200260200101516001600160a01b031663199f7260875f8151811061082e5761082e61564f565b6020026020010151338a60028151811061084a5761084a61564f565b6020026020010151856040518563ffffffff1660e01b8152600401610872949392919061570d565b5f604051808303815f87803b158015610889575f80fd5b505af115801561089b573d5f803e3d5ffd5b5050505084865f815181106108b2576108b261564f565b60200260200101516001600160a01b03166370a08231896002815181106108db576108db61564f565b60200260200101516040518263ffffffff1660e01b815260040161090e91906001600160a01b0391909116815260200190565b602060405180830381865afa158015610929573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094d91906156f6565b610957919061574b565b6040516370a0823160e01b81523060048201529095505f905f80516020615c52833981519152906370a0823190602401602060405180830381865afa1580156109a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c691906156f6565b90506109ed87308a6001815181106109e0576109e061564f565b60200260200101516135e0565b506040516370a0823160e01b81523060048201525f9082905f80516020615c52833981519152906370a0823190602401602060405180830381865afa158015610a38573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5c91906156f6565b610a66919061574b565b90505f8111610aac5760405162461bcd60e51b81526020600482015260126024820152711393c81513d2d15394c8149150d15255915160721b60448201526064016101b6565b9194509092508390505b50505b96509650969350505050565b5f80831580610ad357508342145b610aef5760405162461bcd60e51b81526004016101b690615620565b8a15610b41578a341015610b155760405162461bcd60e51b81526004016101b690615663565b60405141908c156108fc02908d905f818181858888f19350505050158015610b3f573d5f803e3d5ffd5b505b5f6040518061012001604052808b815260200189151581526020018d81526020018e600281518110610b7557610b7561564f565b60200260200101516001600160a01b031681526020015f6001600160a01b031681526020018881526020018a8152602001878152602001858152509050610bbc8d826124f8565b9094509250508a1580610bcf57508a8310155b610beb5760405162461bcd60e51b81526004016101b69061569a565b509a509a98505050505050505050565b5f82600481518110610c0f57610c0f61564f565b6020026020010151118015610c3e575081600481518110610c3257610c3261564f565b60200260200101514214155b15610c97576040516001600160a01b038a1681527ff2e7574263ab25e854ccac210f6060de1cb000d665c40e21b3bcb80f2b4511bc9060200160405180910390a160405162461bcd60e51b81526004016101b690615620565b5f5f80516020615c528339815191526001600160a01b038a1614610cbc576003610cbf565b60025b60ff166001600160401b03811115610cd957610cd961517b565b604051908082528060200260200182016040528015610d02578160200160208202803683370190505b50905089815f81518110610d1857610d1861564f565b60200260200101906001600160a01b031690816001600160a01b0316815250508881600181518110610d4c57610d4c61564f565b60200260200101906001600160a01b031690816001600160a01b0316815250508051600303610db7575f80516020615c5283398151915281600281518110610d9657610d9661564f565b60200260200101906001600160a01b031690816001600160a01b0316815250505b6040516370a0823160e01b81523360048201525f906001600160a01b038c16906370a0823190602401602060405180830381865afa158015610dfb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1f91906156f6565b90506001600160a01b0389167368b3465833fb72a70ecdf485e0e4c7bd8665fc45036110c3575f6040518061012001604052805f87600581518110610e6657610e6661564f565b602002602001015111610e79575f610e95565b86600581518110610e8c57610e8c61564f565b60200260200101515b81526020015f151581526020015f81526020018a6001600160a01b03168152602001876001600160a01b0316815260200186600181518110610ed957610ed961564f565b602002602001015181526020015f8a11610f4a57865f81518110610eff57610eff61564f565b6020026020010151606414610f44576064875f81518110610f2257610f2261564f565b602002602001015185610f35919061575e565b610f3f9190615789565b610f4c565b83610f4c565b895b815260200186600281518110610f6457610f6461564f565b602090810291909101810151825201859052604080516002808252606082019092529192505f91908160200160208202803683370190505090508c815f81518110610fb157610fb161564f565b60200260200101906001600160a01b031690816001600160a01b0316815250508b81600181518110610fe557610fe561564f565b60200260200101906001600160a01b031690816001600160a01b0316815250505f61101082846124f8565b509150507f522881958b3c4a6fc0840ad3b7fb947b881edc28c004245a62541647422ade978160405161104591815260200190565b60405180910390a15f8911801561105b57508881105b156110785760405162461bcd60e51b81526004016101b69061569a565b86516007036110bb57866006815181106110945761109461564f565b60200260200101518111156110bb5760405162461bcd60e51b81526004016101b6906156c9565b505050611396565b5f808811611177575f871161112f57845f815181106110e4576110e461564f565b6020026020010151606414611129576064855f815181106111075761110761564f565b60200260200101518361111a919061575e565b6111249190615789565b611179565b81611179565b61112461115888858d8960038151811061114b5761114b61564f565b602002602001015161346c565b5f815181106111695761116961564f565b602002602001015183613837565b875b9050856001600160a01b031663199f7260845f8151811061119c5761119c61564f565b6020026020010151338c856040518563ffffffff1660e01b81526004016111c6949392919061570d565b5f604051808303815f87803b1580156111dd575f80fd5b505af11580156111ef573d5f803e3d5ffd5b505050506111fe83308c6135e0565b506040516370a0823160e01b81523060048201525f905f80516020615c52833981519152906370a0823190602401602060405180830381865afa158015611247573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061126b91906156f6565b90505f8811801561127b57508781105b156112985760405162461bcd60e51b81526004016101b69061569a565b85516007036112db57856006815181106112b4576112b461564f565b60200260200101518111156112db5760405162461bcd60e51b81526004016101b6906156c9565b801561133b57604051632e1a7d4d60e01b8152600481018290525f80516020615c5283398151915290632e1a7d4d906024015f604051808303815f87803b158015611324575f80fd5b505af1158015611336573d5f803e3d5ffd5b505050505b6113608186886002815181106113535761135361564f565b602002602001015161384c565b6040518181527f522881958b3c4a6fc0840ad3b7fb947b881edc28c004245a62541647422ade979060200160405180910390a150505b5050505050505050505050565b5f546001600160a01b031633146113e25760405162461bcd60e51b8152602060048201526003602482015262486d6d60e81b60448201526064016101b6565b5f6001541161142c5760405162461bcd60e51b8152602060048201526016602482015275139bc81199595cc810dd5c9c995b9d1b1e4813ddd95960521b60448201526064016101b6565b60015447101561147e5760405162461bcd60e51b815260206004820181905260248201527f4e6f7420456e6f7567682042616c616e636520546f20436f766572204665657360448201526064016101b6565b5f54600154611496916001600160a01b0316906138fd565b5f600155565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f811580156114e05750825b90505f826001600160401b031660011480156114fb5750303b155b905081158015611509575080155b156115275760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561155157845460ff60401b1916600160401b1785555b5f80546001600160a01b0319167337aab97476ba8dc785476611006fd5dda4eed66b17905583156115bd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b5050505050565b5f80806001600160a01b0386167368b3465833fb72a70ecdf485e0e4c7bd8665fc4503611730576040805160028082526060820183525f9260208301908036833701905050905089815f8151811061161e5761161e61564f565b60200260200101906001600160a01b031690816001600160a01b03168152505088816001815181106116525761165261564f565b60200260200101906001600160a01b031690816001600160a01b0316815250505f604051806101200160405280875f815181106116915761169161564f565b602002602001015181526020016001151581526020015f81526020018a6001600160a01b031681526020015f6001600160a01b03168152602001876001815181106116de576116de61564f565b60200260200101518152602001348152602001876002815181106117045761170461564f565b6020026020010151815260200188815250905061172182826124f8565b90965094509250610ab9915050565b5f61174c611740876103e86157a8565b61048d346103e8613429565b90505f5f80516020615c528339815191526001600160a01b038b1614611773576003611776565b60025b60ff166001600160401b038111156117905761179061517b565b6040519080825280602002602001820160405280156117b9578160200160208202803683370190505b5090505f80516020615c52833981519152815f815181106117dc576117dc61564f565b6001600160a01b0392831660209182029290920101528b9082908c165f80516020615c5283398151915214611812576002611815565b60015b60ff16815181106118285761182861564f565b6001600160a01b0392831660209182029290920101528a165f80516020615c52833981519152146118885789816001815181106118675761186761564f565b60200260200101906001600160a01b031690816001600160a01b0316815250505b5f80875f8151811061189c5761189c61564f565b6020026020010151111561193a575f6118cf885f815181106118c0576118c061564f565b6020026020010151848c6139c7565b905083815f815181106118e4576118e461564f565b602002602001015111156118f85783611913565b805f8151811061190a5761190a61564f565b60200260200101515b945083815f815181106119285761192861564f565b6020026020010151111591505061193e565b8293505b61194984838b613b23565b60018351611957919061574b565b815181106119675761196761564f565b602002602001015194505f80516020615c528339815191526001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004015f604051808303818588803b1580156119b7575f80fd5b505af11580156119c9573d5f803e3d5ffd5b50505050505f80516020615c528339815191526001600160a01b031663a9059cbb611a288b855f81518110611a0057611a0061564f565b602002602001015186600181518110611a1b57611a1b61564f565b6020026020010151613c59565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018790526044016020604051808303815f875af1158015611a72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9691906157bb565b611aa257611aa26157d6565b6040516370a0823160e01b81523360048201525f906001600160a01b038e16906370a0823190602401602060405180830381865afa158015611ae6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b0a91906156f6565b90508115611b4b575f611b37895f81518110611b2857611b2861564f565b6020026020010151858d6139c7565b9050611b458185338e614100565b50611b58565b611b5683338c6135e0565b505b6040516370a0823160e01b815233600482015281906001600160a01b038f16906370a0823190602401602060405180830381865afa158015611b9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bc091906156f6565b611bca919061574b565b96505f8711611c105760405162461bcd60e51b81526020600482015260126024820152711393c81513d2d15394c8149150d15255915160721b60448201526064016101b6565b5050505096509650969350505050565b5f841380611c2d57505f83135b611c35575f80fd5b5f80808080611c46868801886157ea565b9550955095505094509450611cbb8585336001600160a01b031663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c92573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cb6919061585f565b614290565b6001600160a01b0316336001600160a01b031614611d0b5760405162461bcd60e51b815260206004820152600d60248201526c46616b652063616c6c6261636b60981b60448201526064016101b6565b5f805f8b13611d2f57866001600160a01b0316866001600160a01b0316108a611d46565b856001600160a01b0316876001600160a01b0316108b5b91509150828111611396578115611e33575f5f80516020615c528339815191526001600160a01b03891614611d7b5787611d8a565b5f80516020615c528339815191525b90506001600160a01b038616301480611db857505f80516020615c528339815191526001600160a01b038916145b15611dce57611dc981873385614354565b611e2d565b60405162ccfb9360e51b81526001600160a01b0386169063199f726090611dff9084908a903390889060040161570d565b5f604051808303815f87803b158015611e16575f80fd5b505af1158015611e28573d5f803e3d5ffd5b505050505b50611396565b5f5f80516020615c528339815191526001600160a01b03881614611e575786611e66565b5f80516020615c528339815191525b90506001600160a01b038616301480611e9457505f80516020615c528339815191526001600160a01b038816145b15611eaa57611ea581873385614354565b611f09565b60405162ccfb9360e51b81526001600160a01b0386169063199f726090611edb9084908a903390889060040161570d565b5f604051808303815f87803b158015611ef2575f80fd5b505af1158015611f04573d5f803e3d5ffd5b505050505b505050505050505050505050565b5f611f5f611f27836103e86157a8565b61048d6103e8611f598c8c6002818110611f4357611f4361564f565b905060200201353461448390919063ffffffff16565b90613429565b90505f8686611f6f60018261574b565b818110611f7e57611f7e61564f565b9050602002016020810190611f939190615881565b6040516370a0823160e01b81523360048201529091505f906001600160a01b038316906370a0823190602401602060405180830381865afa158015611fda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ffe91906156f6565b90505f808b8b5f8181106120145761201461564f565b905060200201351161204357604080516001808252818301909252906020808301908036833701905050612099565b6120998b8b5f8181106120585761205861564f565b905060200201358a8a808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152508c92506139c7915050565b90505f808c8c5f8181106120af576120af61564f565b905060200201351180156120dc575084825f815181106120d1576120d161564f565b602002602001015111155b6120e65784612101565b815f815181106120f8576120f861564f565b60200260200101515b90505f80516020615c528339815191526001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015612149575f80fd5b505af115801561215b573d5f803e3d5ffd5b50505050505f80516020615c528339815191526001600160a01b031663a9059cbb6121d48a8d8d5f8181106121925761219261564f565b90506020020160208101906121a79190615881565b8e8e60018181106121ba576121ba61564f565b90506020020160208101906121cf9190615881565b613c59565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af115801561221e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061224291906157bb565b61224e5761224e6157d6565b5f8c8c5f8181106122615761226161564f565b9050602002013511801561228e575084825f815181106122835761228361564f565b602002602001015111155b156122d8576122d3828b8b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152503392508d91506141009050565b612336565b6123178a8a808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152503392508c91506135e09050565b825f815181106123295761232961564f565b6020026020010181815250505b6040516370a0823160e01b81523360048201526123a99084906001600160a01b038716906370a08231906024015b602060405180830381865afa15801561237f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123a391906156f6565b90614483565b92505f8c8c60018181106123bf576123bf61564f565b905060200201351115612405578b8b60018181106123df576123df61564f565b905060200201358310156124055760405162461bcd60e51b81526004016101b69061569a565b60048b10612446578b8b60038181106124205761242061564f565b905060200201358311156124465760405162461bcd60e51b81526004016101b6906156c9565b61245181878961384c565b7f9f849d23f4955d98202378ea318f2b0c7533695d3c9fb2a3931f0f919fa8c42081845f8f8f5f8181106124875761248761564f565b90506020020135116124b257845f815181106124a5576124a561564f565b60200260200101516124cc565b8e8e5f8181106124c4576124c461564f565b905060200201355b6040805193845260208401929092529082015260600160405180910390a1505050505050505050505050565b5f805f806040518061010001604052808760018151811061251b5761251b61564f565b60200260200101516001600160a01b03168152602001875f815181106125435761254361564f565b60200260200101516001600160a01b03168152602001336001600160a01b03168152602001306001600160a01b0316815260200186608001516001600160a01b031681526020018660c0015181526020015f81526020016001151581525090505f47905085602001511561271757866001815181106125c4576125c461564f565b60200260200101516001600160a01b03165f80516020615c528339815191526001600160a01b03160361262e576126248661010001516103e861260791906157a8565b61048d6103e8611f598a604001513461448390919063ffffffff16565b60a083015261294c565b6126925f80516020615c52833981519152886001815181106126525761265261564f565b602002602001015161268d8961010001516103e861267091906157a8565b61048d6103e8611f598d604001513461448390919063ffffffff16565b61449c565b866001815181106126a5576126a561564f565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156126f3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061262491906156f6565b865f815181106127295761272961564f565b60209081029190910101516001600160a01b031682528651879060019081106127545761275461564f565b6020908102919091018101516001600160a01b0316908301523060408301523360608301525f60e0830181905287518891906127925761279261564f565b60209081029190910101516040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156127e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061280491906156f6565b60c08301528551158015906128525750866001815181106128275761282761564f565b60200260200101516001600160a01b03165f80516020615c528339815191526001600160a01b031614155b1561294c576040805160028082526060820183525f926020830190803683370190505090508760018151811061288a5761288a61564f565b6020026020010151815f815181106128a4576128a461564f565b60200260200101906001600160a01b031690816001600160a01b0316815250505f80516020615c52833981519152816001815181106128e5576128e561564f565b60200260200101906001600160a01b031690816001600160a01b0316815250505f612928885f015183737a250d5630b4cf539739df2c5dacb4c659f2488d6139c7565b9050805f8151811061293c5761293c61564f565b6020908102919091010151885250505b85515f9015612adf575f87606001516001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015612996573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129ba91906158b2565b50505050509150505f6129cc82614577565b90506001600160801b036001600160a01b03821611612a60575f6129f96001600160a01b0383168061575e565b905085602001516001600160a01b0316865f01516001600160a01b031610612a3c57612a37600160c01b8760a001516001600160801b031683614892565b612a58565b612a58818760a001516001600160801b0316600160c01b614892565b935050612adc565b5f612a796001600160a01b03831680600160401b614892565b905085602001516001600160a01b0316865f01516001600160a01b031610612abc57612ab7600160801b8760a001516001600160801b031683614892565b612ad8565b612ad8818760a001516001600160801b0316600160801b614892565b9350505b50505b86515f9015801590612af2575087518210155b15612d5357602084015160408086015190516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015612b45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b6991906156f6565b90505f8089606001516001600160a01b031663128acb08876040015188602001516001600160a01b0316895f01516001600160a01b031610612bad8e5f015161493c565b612bb69061594a565b8a602001516001600160a01b03168b5f01516001600160a01b031610612bfa57612bf5600173fffd8963efd1fc6a506488495d951d5263988d26615964565b612c0a565b612c0a6401000276a3600161598b565b8b604051602001612c1b91906159ab565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401612c4a959493929190615a64565b60408051808303815f875af1158015612c65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c899190615a9e565b9150915085602001516001600160a01b0316865f01516001600160a01b031610612cbc5780612cb78361594a565b612cc6565b81612cc68261594a565b60208801516040808a015190516370a0823160e01b81526001600160a01b039182166004820152929a50612d08935086929116906370a0823190602401612364565b92505f8311612d495760405162461bcd60e51b815260206004820152600d60248201526c1b9bc81d1bdad95b9cc81bdd5d609a1b60448201526064016101b6565b8297505050612f7b565b602084015160408086015190516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015612da1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dc591906156f6565b606089015160408601516020870151875160a08901519495505f9485946001600160a01b039081169463128acb089490939082169116109081612e2657612e21600173fffd8963efd1fc6a506488495d951d5263988d26615964565b612e36565b612e366401000276a3600161598b565b8b604051602001612e4791906159ab565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401612e76959493929190615a64565b60408051808303815f875af1158015612e91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eb59190615a9e565b9150915085602001516001600160a01b0316865f01516001600160a01b031610612ee85780612ee38361594a565b612ef2565b81612ef28261594a565b60208801516040808a015190516370a0823160e01b81526001600160a01b039182166004820152929a50612f34935086929116906370a0823190602401612364565b92505f8311612f755760405162461bcd60e51b815260206004820152600d60248201526c1b9bc81d1bdad95b9cc81bdd5d609a1b60448201526064016101b6565b82975050505b87602001516132015783602001516001600160a01b03165f80516020615c528339815191526001600160a01b0316146130405760208401516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015612ff6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061301a91906156f6565b9050801561303e5761303e85602001515f80516020615c528339815191528361449c565b505b6040516370a0823160e01b81523060048201525f905f80516020615c52833981519152906370a0823190602401602060405180830381865afa158015613088573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130ac91906156f6565b9050801561310e57604051632e1a7d4d60e01b8152600481018290525f80516020615c5283398151915290632e1a7d4d906024015f604051808303815f87803b1580156130f7575f80fd5b505af1158015613109573d5f803e3d5ffd5b505050505b613122818a61010001518b60e0015161384c565b8096506131b78a5f8151811061313a5761313a61564f565b60209081029190910101516040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613188573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131ac91906156f6565b60c087015190614483565b60408051828152602081018a90529081018890529098507f9f849d23f4955d98202378ea318f2b0c7533695d3c9fb2a3931f0f919fa8c4209060600160405180910390a1506133de565b83516001600160a01b03165f80516020615c52833981519152146132ac5783516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015613264573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061328891906156f6565b905080156132aa5784516132aa905f80516020615c528339815191528361449c565b505b6040516370a0823160e01b81523060048201525f905f80516020615c52833981519152906370a0823190602401602060405180830381865afa1580156132f4573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061331891906156f6565b9050801561337a57604051632e1a7d4d60e01b8152600481018290525f80516020615c5283398151915290632e1a7d4d906024015f604051808303815f87803b158015613363575f80fd5b505af1158015613375573d5f803e3d5ffd5b505050505b613384478561574b565b60408051828152602081018a90529081018890529098507f9f849d23f4955d98202378ea318f2b0c7533695d3c9fb2a3931f0f919fa8c4209060600160405180910390a16133dc888a61010001518b60e0015161384c565b505b5f871161341e5760405162461bcd60e51b815260206004820152600e60248201526d1b9bc81b5bdb995e481cdc195b9d60921b60448201526064016101b6565b505050509250925092565b5f82158061344c5750818361343e828261575e565b925061344a9083615789565b145b613454575f80fd5b92915050565b5f6134658284615789565b9392505050565b60606002845110156134905760405162461bcd60e51b81526004016101b690615ac0565b83516001600160401b038111156134a9576134a961517b565b6040519080825280602002602001820160405280156134d2578160200160208202803683370190505b5090508481600183516134e5919061574b565b815181106134f5576134f561564f565b6020026020010181815250505f60018551613510919061574b565b90505b80156135d7575f806135628761352a60018661574b565b8151811061353a5761353a61564f565b60200260200101518885815181106135545761355461564f565b6020026020010151886149a9565b9150915061359a84848151811061357b5761357b61564f565b602002602001015183838987600114613594575f614a6e565b89614a6e565b846135a660018661574b565b815181106135b6576135b661564f565b602002602001018181525050505080806135cf90615ae6565b915050613513565b50949350505050565b5f805b600185516135f1919061574b565b81101561382f575f8086838151811061360c5761360c61564f565b60200260200101518784600161362291906157a8565b815181106136325761363261564f565b6020026020010151915091505f6136498383614baf565b5090505f613658878585613c59565b90505f805f836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015613699573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136bd9190615b11565b506001600160701b031691506001600160701b031691505f80866001600160a01b0316896001600160a01b0316146136f65782846136f9565b83835b6040516370a0823160e01b81526001600160a01b038981166004830152929450909250613734918491908c16906370a0823190602401612364565b94506137428583838f614bdf565b9a50505050505f80846001600160a01b0316876001600160a01b03161461376a57885f61376d565b5f895b915091505f60028d51613780919061574b565b891061378c578b6137ad565b6137ad8b888f61379d8d60026157a8565b81518110611a1b57611a1b61564f565b604080515f8152602081019182905263022c0d9f60e01b9091529091506001600160a01b0386169063022c0d9f906137ee9086908690869060248101615b5d565b5f604051808303815f87803b158015613805575f80fd5b505af1158015613817573d5f803e3d5ffd5b50506001909a0199506135e398505050505050505050565b509392505050565b5f8183106138455781613465565b5090919050565b5f61385d6103e861048d8686613429565b90505f61387f61387883600154614cfe90919063ffffffff16565b4790614483565b905080156138aa57600a8110156138a05761389a8282614cfe565b506138aa565b6138aa33826138fd565b6001546138b79083614cfe565b600155604080518381523360208201529081018490527f72015ace03712f361249380657b3d40777dd8f8a686664cab48afd9dbbe4499f906060016115b4565b50505050565b604080515f808252602082019092526001600160a01b0384169083906040516139269190615b93565b5f6040518083038185875af1925050503d805f8114613960576040519150601f19603f3d011682016040523d82523d5f602084013e613965565b606091505b50509050806139c25760405162461bcd60e51b815260206004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201526213115160ea1b60648201526084016101b6565b505050565b60606002835110156139eb5760405162461bcd60e51b81526004016101b690615ac0565b82516001600160401b03811115613a0457613a0461517b565b604051908082528060200260200182016040528015613a2d578160200160208202803683370190505b509050838160018351613a40919061574b565b81518110613a5057613a5061564f565b6020026020010181815250505f60018451613a6b919061574b565b90505b801561382f575f80613abd86613a8560018661574b565b81518110613a9557613a9561564f565b6020026020010151878581518110613aaf57613aaf61564f565b6020026020010151876149a9565b91509150613ae6848481518110613ad657613ad661564f565b6020026020010151838388614d17565b84613af260018661574b565b81518110613b0257613b0261564f565b60200260200101818152505050508080613b1b90615ae6565b915050613a6e565b6060600283511015613b475760405162461bcd60e51b81526004016101b690615ac0565b82516001600160401b03811115613b6057613b6061517b565b604051908082528060200260200182016040528015613b89578160200160208202803683370190505b50905083815f81518110613b9f57613b9f61564f565b6020026020010181815250505f5b60018451613bbb919061574b565b81101561382f575f80613bff868481518110613bd957613bd961564f565b602002602001015187856001613bef91906157a8565b81518110613aaf57613aaf61564f565b91509150613c28848481518110613c1857613c1861564f565b6020026020010151838388614bdf565b84613c348560016157a8565b81518110613c4457613c4461564f565b60209081029190910101525050600101613bad565b5f805f613c668585614baf565b90925090506001600160a01b038616737a250d5630b4cf539739df2c5dacb4c659f2488d03613d4957735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8282604051602001613cb7929190615bae565b60405160208183030381529060405280519060200120604051602001613d2a9291906001600160f81b0319815260609290921b6001600160601b031916600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b604051602081830303815290604052805190602001205f1c92506140f7565b6001600160a01b0386167368b3465833fb72a70ecdf485e0e4c7bd8665fc4503613dbc57731f98431c8ad98523631ae4a59f267346ea31f9848282604051602001613d95929190615bae565b60405160208183030381529060405280519060200120604051602001613d2a929190615bd0565b6001600160a01b03861673d9e1ce17f2641f24ae83637ab66a2cca9c378b9f03613e7b5773c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8282604051602001613e08929190615bae565b60405160208183030381529060405280519060200120604051602001613d2a9291906001600160f81b0319815260609290921b6001600160601b031916600183015260158201527fe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303603582015260550190565b6001600160a01b03861673eff92a263d31888d860bd50809a8d171709b7b1c03613f3a57731097053fd2ea711dad45caccc45eff7548fcb3628282604051602001613ec7929190615bae565b60405160208183030381529060405280519060200120604051602001613d2a9291906001600160f81b0319815260609290921b6001600160601b031916600183015260158201527f57224589c67f3f30a6b0d7a1b54cf3153ab84563bc609ef41dfb34f8b2974d2d603582015260550190565b6001600160a01b0386167303f7724180aa6b939894b5ca4314783b0b36b32903613ff95773115934131916c8b277dd010ee02de363c09d037c8282604051602001613f86929190615bae565b60405160208183030381529060405280519060200120604051602001613d2a9291906001600160f81b0319815260609290921b6001600160601b031916600183015260158201527f65d1a3b1e46c6e4f1be1ad5f99ef14dc488ae0549dc97db9b30afe2241ce1c7a603582015260550190565b6001600160a01b038616730c17e776cd218252adfca8d4e761d3fe757e9778036140b8577335113a300ca0d7621374890abfeac30e88f214b18282604051602001614045929190615bae565b60405160208183030381529060405280519060200120604051602001613d2a9291906001600160f81b0319815260609290921b6001600160601b031916600183015260158201527f49d9acd3e20042617be7e378294c731749bc579b09dfd560cd3357445ce0b9e9603582015260550190565b60405162461bcd60e51b8152602060048201526014602482015273149bdd5d195c881b9bdd081cdd5c1c1bdc9d195960621b60448201526064016101b6565b50509392505050565b5f5b60018451614110919061574b565b8110156115bd575f8085838151811061412b5761412b61564f565b60200260200101518684600161414191906157a8565b815181106141515761415161564f565b6020026020010151915091505f6141688383614baf565b5090505f886141788660016157a8565b815181106141885761418861564f565b602002602001015190505f80836001600160a01b0316866001600160a01b0316146141b457825f6141b7565b5f835b915091505f60028b516141ca919061574b565b88106141d657896141e7565b6141e789878d61379d8c60026157a8565b90506141f4898888613c59565b6001600160a01b031663022c0d9f8484845f6040519080825280601f01601f191660200182016040528015614230576020820181803683370190505b506040518563ffffffff1660e01b81526004016142509493929190615b5d565b5f604051808303815f87803b158015614267575f80fd5b505af1158015614279573d5f803e3d5ffd5b505060019099019850614102975050505050505050565b5f826001600160a01b0316846001600160a01b031611156142af579192915b826001600160a01b0316846001600160a01b0316106142cc575f80fd5b604080516001600160a01b03808716602083015285169181019190915262ffffff83166060820152731f98431c8ad98523631ae4a59f267346ea31f9849060800160405160208183030381529060405280519060200120604051602001614334929190615bd0565b60408051601f198184030181529190528051602090910120949350505050565b804710614457576001600160a01b0384165f80516020615c5283398151915203614457575f80516020615c528339815191526001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b1580156143be575f80fd5b505af11580156143d0573d5f803e3d5ffd5b505060405163a9059cbb60e01b81526001600160a01b0386166004820152602481018590525f80516020615c52833981519152935063a9059cbb925060440190506020604051808303815f875af115801561442d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061445191906157bb565b506138f7565b306001600160a01b0384160361447757614472848383614e47565b6138f7565b6138f784848484614f56565b5f8261448f838261574b565b9150811115613454575f80fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f815181106144cf576144cf61564f565b60200260200101906001600160a01b031690816001600160a01b03168152505082816001815181106145035761450361564f565b60200260200101906001600160a01b031690816001600160a01b0316815250506145588430614552737a250d5630b4cf539739df2c5dacb4c659f2488d855f81518110611a0057611a0061564f565b85614354565b6115bd8130737a250d5630b4cf539739df2c5dacb4c659f2488d6135e0565b5f805f8360020b1261458c578260020b614593565b8260020b5f035b9050620d89e88111156145b9576040516333a3bdff60e21b815260040160405180910390fd5b5f816001165f036145ce57600160801b6145e0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615614614576ffff97272373d413259a46990580e213a0260801c5b6004821615614633576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615614652576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615614671576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615614690576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156146af576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156146ce576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156146ee576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561470e576ff987a7253ac413176f2b074cf7815e540260801c5b61040082161561472e576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561474e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561476e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561478e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156147ae576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156147ce576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156147ef576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561480f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561482e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561484b576b048a170391f7dc42444e8fa20260801c5b5f8460020b131561486a57805f198161486657614866615775565b0490505b64010000000081061561487e576001614880565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f036148c6575f84116148bb575f80fd5b508290049050613465565b8084116148d1575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f6001600160ff1b038211156149a55760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016101b6565b5090565b5f805f6149b68686614baf565b5090505f806149c6868989613c59565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015614a01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614a259190615b11565b506001600160701b031691506001600160701b03169150826001600160a01b0316886001600160a01b031614614a5c578082614a5f565b81815b90999098509650505050505050565b5f808611614abe5760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016101b6565b5f85118015614acc57505f84115b614ae85760405162461bcd60e51b81526004016101b690615c21565b5f614af9612710611f59888a613429565b90507310ed43c718714eb63d5aa57b78b54704e256024e6001600160a01b0385161480614b42575073eff92a263d31888d860bd50809a8d171709b7b1c6001600160a01b038516145b15614b80575f614b61614b57856126f761574b565b611f59888b614483565b9050614b786001614b728385615789565b90614cfe565b925050614ba5565b5f614b90614b57856126f261574b565b9050614ba16001614b728385615789565b9250505b5095945050505050565b5f80826001600160a01b0316846001600160a01b031610614bd1578284614bd4565b83835b909590945092505050565b5f808511614c2f5760405162461bcd60e51b815260206004820152601960248201527f494e53554646494349454e545f494e5055545f414d4f554e540000000000000060448201526064016101b6565b5f84118015614c3d57505f83115b614c595760405162461bcd60e51b81526004016101b690615c21565b5f7310ed43c718714eb63d5aa57b78b54704e256024e6001600160a01b0384161480614ca1575073eff92a263d31888d860bd50809a8d171709b7b1c6001600160a01b038416145b15614cb957614cb2866126f7613429565b9050614cc8565b614cc5866126f2613429565b90505b5f614cd38286613429565b90505f614ce683614b7289612710613429565b9050614cf28183615789565b98975050505050505050565b5f82614d0a83826157a8565b9150811015613454575f80fd5b5f808511614d675760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016101b6565b5f84118015614d7557505f83115b614d915760405162461bcd60e51b81526004016101b690615c21565b5f614da2612710611f598789613429565b90507310ed43c718714eb63d5aa57b78b54704e256024e6001600160a01b0384161480614deb575073eff92a263d31888d860bd50809a8d171709b7b1c6001600160a01b038416145b15614e1a575f614e016126f7611f59878a614483565b9050614e126001614b728385615789565b9250506135d7565b5f614e2b6126f2611f59878a614483565b9050614e3c6001614b728385615789565b979650505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691614ea29190615b93565b5f604051808303815f865af19150503d805f8114614edb576040519150601f19603f3d011682016040523d82523d5f602084013e614ee0565b606091505b5091509150818015614f0a575080511580614f0a575080806020019051810190614f0a91906157bb565b6115bd5760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c45440060448201526064016101b6565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291515f92839290881691614fb99190615b93565b5f604051808303815f865af19150503d805f8114614ff2576040519150601f19603f3d011682016040523d82523d5f602084013e614ff7565b606091505b509150915081801561502157508051158061502157508080602001905181019061502191906157bb565b6150795760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f46416044820152631253115160e21b60648201526084016101b6565b505050505050565b5f8083601f840112615091575f80fd5b5081356001600160401b038111156150a7575f80fd5b6020830191508360208260051b85010111156150c1575f80fd5b9250929050565b6001600160a01b03811681146150dc575f80fd5b50565b5f805f805f805f805f60e08a8c0312156150f7575f80fd5b89356001600160401b038082111561510d575f80fd5b6151198d838e01615081565b909b50995060208c0135915080821115615131575f80fd5b5061513e8c828d01615081565b90985096505060408a0135615152816150c8565b989b979a5095989497966060860135965060808601359560a0810135955060c001359350915050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156151b7576151b761517b565b604052919050565b5f6001600160401b038211156151d7576151d761517b565b5060051b60200190565b5f82601f8301126151f0575f80fd5b81356020615205615200836151bf565b61518f565b8083825260208201915060208460051b870101935086841115615226575f80fd5b602086015b8481101561524b57803561523e816150c8565b835291830191830161522b565b509695505050505050565b80151581146150dc575f80fd5b5f805f805f805f805f805f6101608c8e03121561527e575f80fd5b8b356001600160401b03811115615293575f80fd5b61529f8e828f016151e1565b9b505060208c0135995060408c0135985060608c0135975060808c0135965060a08c0135955060c08c01356152d381615256565b8095505060e08c013593506101008c013592506101208c013591506101408c013590509295989b509295989b9093969950565b5f805f805f8060c0878903121561531b575f80fd5b8635955060208701359450604087013593506060870135925060808701356001600160401b038082111561534d575f80fd5b6153598a838b016151e1565b935060a089013591508082111561536e575f80fd5b5061537b89828a016151e1565b9150509295509295509295565b5f805f805f805f805f806101408b8d0312156153a2575f80fd5b8a356001600160401b038111156153b7575f80fd5b6153c38d828e016151e1565b9a505060208b0135985060408b0135975060608b0135965060808b0135955060a08b01356153f081615256565b999c989b5096999598949794965050505060c08301359260e08101359261010082013592506101209091013590565b5f82601f83011261542e575f80fd5b8135602061543e615200836151bf565b8083825260208201915060208460051b87010193508684111561545f575f80fd5b602086015b8481101561524b5780358352918301918301615464565b5f805f805f805f805f6101208a8c031215615494575f80fd5b893561549f816150c8565b985060208a01356154af816150c8565b975060408a01356154bf816150c8565b965060608a01356154cf816150c8565b955060808a0135945060a08a0135935060c08a01356154ed816150c8565b925060e08a01356001600160401b03811115615507575f80fd5b6155138c828d0161541f565b9250506101008a013590509295985092959850929598565b5f805f805f8060c08789031215615540575f80fd5b863561554b816150c8565b9550602087013561555b816150c8565b9450604087013561556b816150c8565b9350606087013561557b816150c8565b92506080870135915060a08701356001600160401b0381111561559c575f80fd5b61537b89828a0161541f565b5f805f80606085870312156155bb575f80fd5b843593506020850135925060408501356001600160401b03808211156155df575f80fd5b818701915087601f8301126155f2575f80fd5b813581811115615600575f80fd5b886020828501011115615611575f80fd5b95989497505060200194505050565b60208082526015908201527410da185a5b8814994b5bdc99c819195d1958dd1959605a1b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b6020808252601c908201527f4e6f7420656e6f7567682045544820666f72206d696e65722074697000000000604082015260600190565b602080825260159082015274139bdd08195b9bdd59da081d1bdad95b9cc81bdd5d605a1b604082015260600190565b602080825260139082015272151bdbc81b585b9e481d1bdad95b9cc81bdd5d606a1b604082015260600190565b5f60208284031215615706575f80fd5b5051919050565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561345457613454615737565b808202811582820484141761345457613454615737565b634e487b7160e01b5f52601260045260245ffd5b5f826157a357634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561345457613454615737565b5f602082840312156157cb575f80fd5b815161346581615256565b634e487b7160e01b5f52600160045260245ffd5b5f805f805f8060c087890312156157ff575f80fd5b863561580a816150c8565b9550602087013561581a816150c8565b9450604087013561582a816150c8565b9350606087013561583a816150c8565b9250608087013561584a816150c8565b8092505060a087013590509295509295509295565b5f6020828403121561586f575f80fd5b815162ffffff81168114613465575f80fd5b5f60208284031215615891575f80fd5b8135613465816150c8565b805161ffff811681146158ad575f80fd5b919050565b5f805f805f805f60e0888a0312156158c8575f80fd5b87516158d3816150c8565b8097505060208801518060020b81146158ea575f80fd5b95506158f86040890161589c565b94506159066060890161589c565b93506159146080890161589c565b925060a088015160ff81168114615929575f80fd5b60c089015190925061593a81615256565b8091505092959891949750929550565b5f600160ff1b820161595e5761595e615737565b505f0390565b6001600160a01b0382811682821603908082111561598457615984615737565b5092915050565b6001600160a01b0381811683821601908082111561598457615984615737565b5f6101008201905060018060a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401525060a083015160a083015260c083015160c083015260e0830151151560e083015292915050565b5f5b83811015615a31578181015183820152602001615a19565b50505f910152565b5f8151808452615a50816020860160208601615a17565b601f01601f19169290920160200192915050565b6001600160a01b0386811682528515156020830152604082018590528316606082015260a0608082018190525f90614e3c90830184615a39565b5f8060408385031215615aaf575f80fd5b505080516020909101519092909150565b6020808252600c908201526b0929cac82989288bea082a8960a31b604082015260600190565b5f81615af457615af4615737565b505f190190565b80516001600160701b03811681146158ad575f80fd5b5f805f60608486031215615b23575f80fd5b615b2c84615afb565b9250615b3a60208501615afb565b9150604084015163ffffffff81168114615b52575f80fd5b809150509250925092565b84815283602082015260018060a01b0383166040820152608060608201525f615b896080830184615a39565b9695505050505050565b5f8251615ba4818460208701615a17565b9190910192915050565b6001600160601b0319606093841b811682529190921b16601482015260280190565b6001600160f81b0319815260609290921b6001600160601b031916600183015260158201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54603582015260550190565b602080825260169082015275494e53554646494349454e545f4c495155494449545960501b60408201526060019056fe000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2a2646970667358221220743c8892851ac9b13e466532e3ac230413800df85301b7404b7ea95484eb2c4a64736f6c634300081700330605581e03ae88d60ce5722ba4d45bad2212f1c19dbc045e025144e80b926be7b3400701195ca705581e035f517349c69668843e7b5ebd815ad1205dadeede0831b55f80a5552820040103f693203bcd1962bbac5a3c4d08f7db978e02899ebd2f3a41f5be1702dd265e3f0219fd4d036cf48af9ce5bbf5d3c4d8679a22d6dc4ce50f2460e589be9b4eef3c3b296ac09034c387cc134b025bc72580db4a32e6f93eb6cff1f632cc031116863918672ea6d03aec6040e90b5e1939362f47cfe1b75fc6afc77ed285efbf31d37f66c8c73c8390366dd5a8943fa2e34afdd38a7e29f9b5a260c6aa866bef41848cc9e846278fd0803ec8dcfeb7af17e68816e778c606f011814c881a7ca0420db53979a560445b66003e8658b485991901a3388ac76de1a80ab3c3fe1cef9b781995ceb1e554138717103f274ba96d638a0f12fb0ece331da8b8bfbebde904e8c235ac7a6587a1e8ce1d60219ffff03f1da45c57c01d4f8bc8bd6c9bc6393e84372cfe0f58d59c4d89d45eb6384462203346b8a0a99c4ba441015c58299e81089a9b802b1255390b29c412ca1a12bb86503c55cc21f1e0b7ed64a4d3242270c11fd47d3f4a1cfde25e9687aed1f3d3fb7ad03eb45196994cb6827f64c63e12ae4c35fa30847adc8dac3dfd0d17444cb7e27460219ffff033ea37b4bc18ff0c8c1d4c6eba7ac89a5659ece6afa749617199d93dac0e57f8b031167476f34c04d2d2a1d063e633a9b976d734c6ce3b9aa78f54d772292cb7880036668221048b112a7543000f8295428ea4c6019668dbafa097054fbd35cf538ce03942446c6cf3bb9d492e6fe0d48eb500f03e6347f5da3842de17263cf1786166003d56e88c6f6a7ca937626c16d6bb9df0f72b871c9872a1f86cf5cc744565bfc3b030d933a399cb276af17886a28cbbae9d28561cbc70caf5e03adef1cf434ba86ea039a000be218cedb9969136343f1e44601265cb20405b17750c42ffed19838f9700219ffff03a64a81d3e8076793adbdde632b9cd08e2d2b95bb5437647bfdef19269e43fc090333a7b3302f50d54770faf295b6c57cf0bdb4d1591195bca8e112c7f92f5c5be00315ea6c468cf8ea2604a57e8cb858037d02f81b02b58107107a0d4e24a11ee2d503af4925fd407fc69ba0b55eb6c3b27097dc9f99aa72eaa91b6f260ed8b4ccd9f903d798365319165a607f8391d30750aed14c16bdbd54217c2eb272e0011cb3c3a8034470d70e1a9f2a34078454b6ed0a60322dff81f416debb9d2bce3670c3af3780037d3f45d2408ee5db41b8162c77f065493c8167fa65be17ae135061563972b23b03d3eb80c1e6265efef454f3f9b9027e2aefa4b9130ebb1a59049074edcc48c0470335fc19afa883221014c079e8b8899b3b4510f9a4a33e603e2ba364d8f876d6f6039d9e0815e7aa1c821dbc24df22a3d87bcfd9443665247f16fd049bbd7f3dccb003e14564c8fdf3d602409d81645474036d1c32db72c3f6511d59deef6999da30fc0360721194d1d8d17a2a57ac42ce4da0d5d53850b8f20203ab36f90bef368cf8ad032ae9cfebd82f64416c68ea511e9e3930e41e4acf59dd60b045a23582dadba5f5034c9cb494c236e235c75a013850bf7f5aa643cd27cddaa83a41ba6b020d79844303952d76f775466aed688daf2660e2d75038dfb7dfc9253fdd68e672e9622e7e2a0379d1ebfedae33ade957b61320de7adf3536102ecf3041a4d4aa0e1cca3408cfb03edfa0082a9b558eb803ef3a07a291a0d42038879d01ad3139c35071e56ea419b0383735cc7bd26a85899f9cc005eb9ce04920d264cc5aca0cc9cb4151aaf6b15b0038520fc6c1b3c50300655ff6197437aeafe7883c78d33bdf28396e9aa211c961e0339cc7ae7bda3fa178465e3d2614cf8a76a0871d3cabbfab3207fc8c4bb1fc7bd03749dfadd4ff3ba00e6d344b87ec71e1676be429bc3658f75734f43e7b26f3d000304ca9b428a6f0def5fea8e2bf7e02429655da0442330f8831148437af927c38103f6cab76e86836cb52ee3f89de0a7324b4e1624906fc9df5dbdfa54f0b8b6bf7703a788ec84712acc687ae7eb00f91bc8cd0476ceea20b84bf7f6ffcfb1be73002b03f7da96752f84f7b8f75489dcf10d51f9843fd150e241ab2b3e44aab76f3f1a6703e85ef1428d7b8bb9c788ec777a6bf62fbf0303f5e45a72027950debdf9e6a110039c88fc5bd7b91881f33f8dadb9f935fa0bee736d42a16abceced4751814f59ef0317425684d0ca2f12eb156b5e8e72f4ccdd2d549f13126dd97580fba89414a498036783fe080d086bf6e7f98a4583b219d18d2033affd13c77dc5a112e2df6e526a03c86b98b9881255449c7216803ad11bcfc2cfa883f308884cf7ae60b9741c8f6303126a59129b064a4504c265058c6d66ea1010e90703d62b1539ed302e4d7af4b203ba9650456f494a43465b9a15e160e8e1e41571a375ef3f4645d8cfa45b0636dd03c51dccc5a6b931e5f7a44848fb8610e21d8c56cd1ef7cb43119ef1d76e4d7b5b03a4d29f2edd9e8a3c90e9490cfb4c9a3f98887742fda4ed20139830872c4d2196030a56765c4a5caf3f9bc76c8f4b55346439d86a9ec7c06f43a0cae76427be6359036f7cdeff039697c939315f4953f5e4dbf814fdccfbd34dea9b43887b7cc357e30307c951a2b40f3ed56ec0ef154975dd37d7e0e45ddd941e27559b314514988d81037481693a2cad1e419529c9c8af909ed582d28f5d60110d0b4ac53bd687c7737103ed0c44cbd2c953955f7451875b0ef0a42e939eacb2db00192321597f0e4be5a305581e03ca60a5b28b77a015e3c4795cf990e38ee17fa6b872fc58199a38389d800c01470577fd68d80fb605581e03489a9660f620d1bf0753e6d2fe4e0f36b3c46b1f91e509607bb91baf40040105581e03a940bf699a83031fa2bf7c200cf9daa0a4e2d00a1b53778bfe93477a1004020399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe908034889f1613ff5cf193b4527f25ab27aa9e8ab3441d00bc95497ea246b8102deb605581e030de7e149461bc61531278a9ab154289effc3aee4181aa8f34e0d5d806007011bffffffffffffffff0366b710d7d9ed045b14e5ec351767888e0f3fc6267aea99732667bfee184908e005581e0343616430ae5862ed3ba5c7f1943dc93b39318710f743ce6016100400c0040305581d0263765caf59fb76cbd137dfa7e08cafe82ca3de0a7305b2be9c0077a40c014705664c8a1f671c05581d0262515e8100a772352fef987c47eeb528e4fbf9e494c538caa284eb4f04010219120005581e03c943fcc1a790c71f5747bf1f5c8fe7cd8875de4f616e9332d86e9abf300c0147018b27ad0ce70005581e03589293023a5f7089303acbfc727dfba990dde32be031d5e7fee60e50600c024708d456bdb06fd005581e033a7d97e856f3b35e12d68a97a0c20d768e5c7123b322ba7dcddca273f00402021979b60376928ecf5ff12bc180dd1ff7b688307b0c5123f0dae7159fc2a3acbe76f9c0c3036383189efe1300e20d96ab5414b0c31d1d193dfaab4086964e0650328c5aacdd0387731288fed814325eab829a669215ec22528228ad4d51776b917f99fb778937039af0c902d4652f4f2df7dd817c4752eafbcfa69b6efa485614cb865ffc4f189c03726b941c6a4ce3c4fe412b946165c668519b3262c808bab2dad5f58f29e047e30219ffff0325b82c1f5dedbcf9d953d400ebfa7af857f97306a7b5081403aaf74e6c0ac2a403345e939ad4150b45bf8f4d7a06ac7faeba8048efdbe3da18865cd5bd45b3f979037514eaa7899bc3c57d5c361f24370baa0b3f0186a07e62f4a041071efcfe429603c0bdbaacf6f39c71b30a9d86e4a5651370ecb4cde99b4793625a665e4be1829e0347620909f21420eace2f80e776d9a3a54920c02cd4c008d8904c8b3120f366e6036657fef4f388c6048c44cf50479e80d456a5541847956ca65e90c9f14880acea0219ffff03c1c0747c50e7e18e44b4dae8ace0096e0ae493377a55d75790f6577d252e054c0319f322888bfd86e2849acce837691fa30f232690338752521d2a1259275159ca0345779a3729b65b67e1df9340ab3ed1ced4742d1056042f79090dfdbd095bb258030e2ad031288cc520df3beeed1671e10cedd77737bb89d9e23de14725ef76b9aa0219ffff0339ef2ac5b6c6a082be1fd37c066a54caf5133760fe53ce7c8c5e628a0eacb73703afdb547f91fcad842dd6e1dbfa35b101d349c383415369bc4518105f7b8184af03485744a8b4b6b1e34cb5ac8583a3ce08715b3b85ebe87ff0c420501dda79435903048168bdfd4f4c378f989c0e34e4b53ace0aaad2d53172bf95df0bada42eb8720322bf43831d6ba2d2a25c676b6c32ba014e140e9edea759155476067fd9c34c0d0219ffff036b6a2f7795df6c48f66c9e1b87034c33fb8d83dd73782edbd20c2a3985d681ea03ac5b1be4cb060d8f276a61dbec63bf25c66ae3cfe089051a6dfafee93f8c7288033a4aba233ac7fb9234c75885674eb9e3c035ed496592a2c71e862ae3bcbada0903ee3769e4716c5b286b28aaf0cd03bfed5dd37019a84d7abb70e56640273f6033031fa3da1eca5e1f4563cd7d27908c894ad667e2cf4a7325f65fee56246d7adbab0377b43168884772e3c2d4787a4239c28efc922f46f821c29b94cee70df0ed676f036e7a4bbf14a95fecc1b194a6a75bcdbdefe93bf4c53c457fdab6ef2457cc69fc034e8f76a3549950481c4e7e0a8a6b174e1494cd04ccd551b5c3d0b4cd493258ea032c4fe0b29e284544ab59f90b930403ab2fbaeb08e97649532290205e41bdb8ac039aa67781723cfb66a3492174a6642a77055da8dcdce7a56f7252277947a63e3703a7327ebf1750d91bd196437d5b7b686392464b11640f929ae048a1fb002fcb3d03122d289c2db4e482a93b6cd58917f9ada379dd2300f19a3a8d7428375f46d94d03dc42a35b25cc291210eebb1d7a4c8aae3be0bf09a68e775cd87fd6969f1b18ec03f10c9f10aaf39a900fab50dae56edd06feb454a3dc6c557e8e09da7a05d41d7903277317a5ae45e126c812cb2041d41c8f2d5afbb95e33ca53a4c89f5c903926e9031ef1c1ecaf9f8f2a7bc9307bad0522e13e952954848910ab1ec5ebbf1ee6b31d039f08c3aaaa7720c1b1ca8a97577639dd5c816fb5c334b7e1fcaf4fa15c5e6a5103eeff0a019b1865adca7e777f7693a00bd1c1688ab6f5a5f4df8fcd7e701cf196038cd695c0ca029ab21a08dd53192b7672615251e2cf6eb3a348fd12615fd342be0386dd09baf7d1214ed54e4689dda531d9590c3a2b80a6e58fe9ee4127be463ccc03c73e83d8928db7578da671f30755e8d85cd8973b1309cab1ed87b1d70d5a1a490394081d80206e4924daafaf4997f1a3b5da70522d4a1735e06078537bde92383b039a788e5d79b66ce9cd499e6cd4732807ecead55eb530b8c1d98d35bb71a767ec03710bf2792227fa8c1568dc1fc3fc669adccc556a8d3cc5bc2bc873a9e6ba956203ed03adda32d65876c6cdc4375c5b8015770add59cd1a28a355caa51b602fc68a03b91fb2c0e3557566f819e14942e9da57f9ee2e668ce1f95c8b4fb70e14c0c0f70307657a2babcb0a16cae6a850567fd43aad3783944cae500bc48cf2cb9d77288103f4c833d2f72805a963103f874fd6ee54c030de52bbde8e9574e726c9dca907de03dc997695a8f3175ac6a44e864403bab26a8517c7c7a5984e13d986695ad49aca039a34faaa9b7d43da6343a361d365e358b353392f11f6fc56271ed98ca15aae9c03d8f8ba74cf9dffe6970c3681ada255dc15e1ac59c35d8628327ab2ea906ec982031a5dbcb31e639599ef125bd429f4e41ba600383fd7ce050f8eb536a9703ae9b003eb84505422dd15680cf20fa51255fc6b2126ee599b5098f90c0bc3b3c3253e7e03740e28ae907203315d63cec9587708359b265a3f50f3071376ae6c875894f01e039ea955d7fb38b7162db6edcd5ceecca501361d5a018af19de6b1461a8f237b4a03607546698458b8bf24eaad0e799c8f4bb15f79933b1c0b3567fd43d265f1c23203f3d3e18ef9346405933fa92905949e0542000d5a4d8fbe65ce603c971d17adfc03b965962d90442381ac5ccbb76fc39f6fafbac99cbdbe211971d14ab89c64a8dc0387ad44e5c67d170d9e7b7c005c9b5cfeded590429723a7859af5782763c1530f03322dd4409cae0923d813d77e2dda2bd5bb505f253e8d665f769a0f13876c98b203941a28b98d7e7eb2c9d4860a46b4a1f0e3d8d7f5b8e7d66380aaa00245738eb20605581e03b5c4d7fd5e0996c55234d4272878372ded5f20d84265ff03134fc1662007011bffffffffffffffff05581e030adea9fdc9209b0e3fd6b794d1544a3b2a801a17804e278677867c91200c0146fede0be7d6d003f054da2dbe7d51d8013339e70cd25b33f3ce816fcb22b91a4c26e39c41adfd1d05581e03631168879f4bba89237544c8d32b4423305bc8c2b888fc4628758f7ae00c0446e3ac18a2421805581e03c69a34e22f0413d626dd4675e93d432fd80a43d2912d15d6bbe45452b008472c20c49ff04cfa05581e03ea9278f60f17cb7588629b1ca5ec4425cfc073f0980e2f78db2895dd000c1a0008d2294a02d2786eaa0f856b72f10219f0410219ffff032ea7b82c7eb0e847d98ba00b9bbf36a17a63b9d57a699a5c55687ee78f66e2dd03231a75790d096b77ccde4f0d6e1d7931ed10a7f0b6fac40ea6fa605c32b7b519035404ef6cb626258f1549baf36196b6c428662bf2715a864fc84992e90697d9e203511d718a1b3057b6750d77992537625250538e539123406e640da236e69d2c8503946b81d5aa8adafc1a33defeb18bdbbbf23cb5a830828f9ab29fd25190232482030ff56dc41893766cdd18171a4e279b27f606f0cd81d0c06946eeb038d03acdc103d481af5b316531b928934b59e913e317faf2137a3e621152b11b163d7ddd42cc03273e502fe128b8420d60e49d8a4d675a331656f1fcd911e5c3dfe98355d7a61e03393f47755d5deabb149667ff2a724535c409810e20473e917d43f5dfe604166903c16b30c492a516af4a9ed9b1dc7dbb5a7d848b8a5486a311769a5d03ce995db50219ffff03717a065a76fdc6f1694df218a39bd91f799be238d9173678f955bd27d3d54e8903100b576d36add48db4c77dbaaec22dea025cb9e5f916328c0620dda421fa416103dbdb43ec2e6f826a3513da472cf6408e48b1a990ad1e324ae224cb3562d970860219ffff03d6feb56c471c116c927aff9268b344329c5302a5f623f85f34123053ee691cca03a4bbaf42a1961d530701ba3eb9d98b1014021e18512804f722846c9715304e0003333339515a1a00efc2d56f6a5476dafc4acd723e2d32cd115ef287b9c02d3743037de14cf34f71ed1d4c48f9b3d8c47b0fdc0102953615ced2a94ab91eb24f78110321050683e473ed6807dadbc2fae5206d9dbe6bfff1e7ccd962bbec58d41833bb03f69281fcc4c8e88f22d70e54f7b08a4f512e75a1d7e3d8ffd94263ccc1da7f2a0382f853731079b3b0a02e6277467eeb8dbd9335cd92853a5086fb486665b21028038d798814c3686b39e8515b0c1c5bf94a791a8083d5d1c5b1923967da7b0045c703f1977d1da12c392b835f4dd27ae153addce9d063aa076049d7fc939e7e8a6235032fb0519aa2959bb5ca847dc6e3c4be496e035f736f0c6ed3323a011b1b70aa0403dfe33642ca81bae30628160c1f02a00f723c667eca2b39c254e6457f17bfcb0403c4b8ecae38871613dfdf4b191174fd9767fe0de7dff4046c85b5333451090fc4033db7b7897d1c77cbf36624c533cdd6ebb8db4d3deb4e9811f89ee9d09ea18fff03a270a1cda4209690f77c06683f13dea055519de012833af4cf814b912bc3283603f008cd2c44ed87c2a7a51e7a7443798f35bc76cb33de80a4934a59709f1e5e8a03e8a1e190f28c151f65f112153cccb24f0b6741f4e57109b57d3b54d4446a0f0303323f951279b8d25057db8b5dca674fe6baec994dfceea83aa8ebb188e64efd7e0387131dc049f520497af2976c3f3cc5efac66050dc1b0f638bedfc9af1aa08e49030661a14837ee570b1d6eec51d20bb027016a8489cd39b0d222f025ddedd7831803518e99260b1f33ee6226d25314f24a619caf267c88a78f06d52a18ac5175965e05581e03901c0fa14ab497cc12ce3642f873595797729fc5d39bb79551dabbe2a00c02467709bdfe1f5804591c366080604052600436106100e85760003560e01c80635c975abb1161008a578063933f0f3c11610059578063933f0f3c146102bf578063b771ed9f146102df578063d9972b96146102ff578063f157fac21461031f57600080fd5b80635c975abb1461021a5780636646a436146102565780637b103999146102765780638456cb59146102aa57600080fd5b80633f81a192116100c65780633f81a1921461013757806344ba1fca14610189578063452d98c7146101cb5780634fd49efd146101ed57600080fd5b8063049639fb146100ed57806313e3b57c146101025780633f4ba83a14610122575b600080fd5b6101006100fb36600461176d565b61033f565b005b34801561010e57600080fd5b5061010061011d36600461188c565b610c38565b34801561012e57600080fd5b50610100610d3b565b34801561014357600080fd5b5061015f73ffffffffffffffffffffffffffffffffffffffff81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561019557600080fd5b506101bd7ff66b632ae3b479ef109dee46eb319414289a8426a08b64d81aad232941f9d22a81565b604051908152602001610180565b3480156101d757600080fd5b506101e0610d73565b60405161018091906118a9565b3480156101f957600080fd5b5060025461015f9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561022657600080fd5b5060025474010000000000000000000000000000000000000000900460ff165b6040519015158152602001610180565b34801561026257600080fd5b506101006102713660046118ed565b610d84565b34801561028257600080fd5b5061015f7f000000000000000000000000de6d4872c0c8167fb4f405c7854fd2fed7edca2181565b3480156102b657600080fd5b50610100610dc0565b3480156102cb57600080fd5b506101006102da3660046118ed565b610df6565b3480156102eb57600080fd5b506102466102fa36600461194b565b610e2e565b34801561030b57600080fd5b5061024661031a3660046118ed565b610f1a565b34801561032b57600080fd5b5061024661033a366004611975565b610fd0565b6002600154036103965760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026001556103a3610fdd565b6103af8660ff16610fd0565b6103fb5760405162461bcd60e51b815260206004820152601a60248201527f535741505045525f534f555243455f4e4f545f414c4c4f574544000000000000604482015260640161038d565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036104765760405162461bcd60e51b815260206004820152601360248201527f535741505045525f53414d455f544f4b454e5300000000000000000000000000604482015260640161038d565b73ffffffffffffffffffffffffffffffffffffffff85166104d95760405162461bcd60e51b815260206004820152601560248201527f535741505045525f544f4b454e5f494e5f5a45524f0000000000000000000000604482015260640161038d565b73ffffffffffffffffffffffffffffffffffffffff841661053c5760405162461bcd60e51b815260206004820152601660248201527f535741505045525f544f4b454e5f4f55545f5a45524f00000000000000000000604482015260640161038d565b6000831161058c5760405162461bcd60e51b815260206004820152601660248201527f535741505045525f414d4f554e545f494e5f5a45524f00000000000000000000604482015260640161038d565b600082116105dc5760405162461bcd60e51b815260206004820152601b60248201527f535741505045525f4d494e5f414d4f554e545f4f55545f5a45524f0000000000604482015260640161038d565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff8716036107305783341461065e5760405162461bcd60e51b815260206004820152601860248201527f535741505045525f554e45585045435445445f56414c55450000000000000000604482015260640161038d565b6002546106819073ffffffffffffffffffffffffffffffffffffffff1685611048565b600254604080516000815260208101918290527f109b3c830000000000000000000000000000000000000000000000000000000090915273ffffffffffffffffffffffffffffffffffffffff9091169063109b3c83906106e6908790602481016119f2565b6020604051808303816000875af1158015610705573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107299190611a13565b905061091a565b341561077e5760405162461bcd60e51b815260206004820152601560248201527f535741505045525f56414c55455f47545f5a45524f0000000000000000000000604482015260640161038d565b6002546040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9182166024820152859188169063dd62ed3e90604401602060405180830381865afa1580156107f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108199190611a13565b10156108675760405162461bcd60e51b815260206004820152601560248201527f535741505045525f4241445f414c4c4f57414e43450000000000000000000000604482015260640161038d565b60025473ffffffffffffffffffffffffffffffffffffffff16635af547e687338760006040519080825280601f01601f1916602001820160405280156108b4576020820181803683370190505b506040518563ffffffff1660e01b81526004016108d49493929190611a2c565b6020604051808303816000875af11580156108f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109179190611a13565b90505b60008061092688611173565b9050600061093388611173565b90508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109c057839250858310156109bb5760405162461bcd60e51b815260206004820152601b60248201527f535741505045525f575241505f4d494e5f414d4f554e545f4f55540000000000604482015260640161038d565b610a69565b6002546040517f37e0ac0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906337e0ac0290610a23908d90869086908a906001908e908e90600401611a75565b6020604051808303816000875af1158015610a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a669190611a13565b92505b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff8a1614610aa25783610b4a565b600254604080516000815260208101918290527fb413148e0000000000000000000000000000000000000000000000000000000090915273ffffffffffffffffffffffffffffffffffffffff9091169063b413148e90610b07908790602481016119f2565b6020604051808303816000875af1158015610b26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4a9190611a13565b60025490915073ffffffffffffffffffffffffffffffffffffffff16639003afee8a833360006040519080825280601f01601f191660200182016040528015610b9a576020820181803683370190505b506040518563ffffffff1660e01b8152600401610bba9493929190611b0c565b6020604051808303816000875af1158015610bd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfd9190611a13565b506040517f68f46c45a243a0e9065a97649faf9a5afe1692f2679e650c2f853b9cd734cc0e90600090a1505060018055505050505050505050565b610c66336000357fffffffff000000000000000000000000000000000000000000000000000000001661123d565b60025473ffffffffffffffffffffffffffffffffffffffff1615610ccc5760405162461bcd60e51b815260206004820152601760248201527f534d4152545f5641554c545f414c52454144595f534554000000000000000000604482015260640161038d565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f6a7abc646862eeb16d8760c0c56dff37a2d2c6b012a3419910005e57e503a08790600090a250565b610d69336000357fffffffff000000000000000000000000000000000000000000000000000000001661123d565b610d71611293565b565b6060610d7f6003611310565b905090565b610db2336000357fffffffff000000000000000000000000000000000000000000000000000000001661123d565b610dbc828261131d565b5050565b610dee336000357fffffffff000000000000000000000000000000000000000000000000000000001661123d565b610d716113ca565b610e24336000357fffffffff000000000000000000000000000000000000000000000000000000001661123d565b610dbc8282611439565b6000610e5e336000357fffffffff000000000000000000000000000000000000000000000000000000001661123d565b60ff831115610eaf5760405162461bcd60e51b815260206004820152601960248201527f535741505045525f494e56414c49445f534f555243455f494400000000000000604482015260640161038d565b81610ec457610ebf6003846114e1565b610ecf565b610ecf6003846114ed565b90508015610f1457827fe5859e75f917b81be842c32c040715d360bde2ea905972baa6eee35dc322980483604051610f0b911515815260200190565b60405180910390a25b92915050565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081527f50c7a3d1a23c7ff4a61d37c3f2c4aeb36cf60b43ee893723db201d3eb941cbad602052604081205460ff1680610fc9575073ffffffffffffffffffffffffffffffffffffffff83166000908152602081815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290205460ff165b9392505050565b6000610f146003836114f9565b60025474010000000000000000000000000000000000000000900460ff1615610d715760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161038d565b804710156110985760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161038d565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146110f2576040519150601f19603f3d011682016040523d82523d6000602084013e6110f7565b606091505b505090508061116e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161038d565b505050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff8316146111ac5781610f14565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317fcb39b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611219573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f149190611b4b565b6112478282610f1a565b610dbc5760405162461bcd60e51b815260206004820152601760248201527f415554485f53454e4445525f4e4f545f414c4c4f574544000000000000000000604482015260640161038d565b61129b611511565b600280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60606000610fc98361157b565b73ffffffffffffffffffffffffffffffffffffffff82166000818152602081815260408083207fffffffff0000000000000000000000000000000000000000000000000000000086168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527fa2e97b9eea8d1168700e334304edd057dff89c0384ca6f920c73cc3e48c8e52391015b60405180910390a25050565b6113d2610fdd565b600280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112e63390565b73ffffffffffffffffffffffffffffffffffffffff82166000818152602081815260408083207fffffffff0000000000000000000000000000000000000000000000000000000086168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055519182527f7f06c1c34ad47198873da9dcde2e40904035d41b23da3a9132df674a75022df791016113be565b6000610fc983836115d7565b6000610fc983836116ca565b60008181526001830160205260408120541515610fc9565b60025474010000000000000000000000000000000000000000900460ff16610d715760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161038d565b6060816000018054806020026020016040519081016040528092919081815260200182805480156115cb57602002820191906000526020600020905b8154815260200190600101908083116115b7575b50505050509050919050565b600081815260018301602052604081205480156116c05760006115fb600183611b68565b855490915060009061160f90600190611b68565b905081811461167457600086600001828154811061162f5761162f611ba2565b906000526020600020015490508087600001848154811061165257611652611ba2565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061168557611685611bd1565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610f14565b6000915050610f14565b600081815260018301602052604081205461171157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610f14565b506000610f14565b73ffffffffffffffffffffffffffffffffffffffff8116811461173b57600080fd5b50565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060008060008060c0878903121561178657600080fd5b863560ff8116811461179757600080fd5b955060208701356117a781611719565b945060408701356117b781611719565b9350606087013592506080870135915060a087013567ffffffffffffffff808211156117e257600080fd5b818901915089601f8301126117f657600080fd5b8135818111156118085761180861173e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561184e5761184e61173e565b816040528281528c602084870101111561186757600080fd5b8260208601602083013760006020848301015280955050505050509295509295509295565b60006020828403121561189e57600080fd5b8135610fc981611719565b6020808252825182820181905260009190848201906040850190845b818110156118e1578351835292840192918401916001016118c5565b50909695505050505050565b6000806040838503121561190057600080fd5b823561190b81611719565b915060208301357fffffffff000000000000000000000000000000000000000000000000000000008116811461194057600080fd5b809150509250929050565b6000806040838503121561195e57600080fd5b823591506020830135801515811461194057600080fd5b60006020828403121561198757600080fd5b5035919050565b6000815180845260005b818110156119b457602081850181015186830182015201611998565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b828152604060208201526000611a0b604083018461198e565b949350505050565b600060208284031215611a2557600080fd5b5051919050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152611a6b608083018461198e565b9695505050505050565b60ff8816815273ffffffffffffffffffffffffffffffffffffffff87811660208301528616604082015260608101859052600060028510611adf577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8460808301528360a083015260e060c0830152611aff60e083018461198e565b9998505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835285602084015280851660408401525060806060830152611a6b608083018461198e565b600060208284031215611b5d57600080fd5b8151610fc981611719565b81810381811115610f14577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea264697066735822122068ebc7aa223c90a7a767f1063ed35ca5729a9ddde779d68fca67123ad685a58564736f6c6343000811003300582103f1d267ea1a86dfdb3c46b45b174495d9d2a0eb5937172d25a0ddb440647b77504104036fdcd4b730d4960804c4378eb012809ae0dfdff9b67d081e4b8476303dbe40e5005820025787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace54a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a0058200263af39dc22328c2ab2e49e74e974b3eb5fadbc7f6129248bae71ae9c1420a9410102190801005821034c91d413c4ef766eab65ebd316d868243c36c1806b1aa2bfe781875fb6d4fe20410100582103fa36a96705b372710b35cae194afb3f917a5a7f3fba509bbb8fbf7d824364d70410100582103e6c71a0ee090eb834a2d6e5b4f5bd023298f3ed0de2df5aff70d287b5ecce870410100582103e1f6f36060f166f063fb01d63adab80297f56b5a444cab19384c535141dbd8b041020058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6041010342d87473e3f47151a3f49ad622d4d85f0c3b30582edf233b6bff19b1642c4b9600582103cfa2818bb6f3d6894203d8e64ad2d716e9df4967869f5e3c335387a897f77080410102195eb605581e0311853640c2f2d8cb7a9a9c677a486849bff636710e676e05d70f2384f00701191c36035f50b8d3049ae90f2b2f6be903701ffbf7e82fb26dcfc488fb0962446534930805581e031be7d2676ccf9b94450e09201ab4f76fbab4610f19ecd2e4a26fc1f790040105581e0320941673f3dc3cc186b1741aac04f620d375797fd715eef99d7d98ab40040103faa2ca4ccef65e2f295b56cb4fb43474ec93f0d1e6088ea9438e76533442dff505581e03f8513467a90908253c93c0d9a12dfb922b674c29885319bc4e5495dd000c04481708fd254b721df005581e03b5ad993cc59916b5f14aa467118106bc84a9361983212224b4020836b00c03475fd6fd8d53df6205581e03c6400e7a71f732f9477e33de56accb4d108fd62fc845cf91deb5e971b00c024702cda8d7137e00021961bb035ecd709e374d02f3c64018a5d2e520369e1cdbb1dd93b14c79b646374f1dd6c003fd5fcb9a4ee2cfa1a4574cb835a5fd2d3399bfa0065ff282d011000ea35aaadf0302d4ad04308a26d162a8fc962fa82c6574540bd8e0c183383145b23a6a4368220358046133f71fde67d33b7c197563bfba845c316cf005ac20430c5c3d1b63263d03d061acfe73be0bc6e5a0c21b07e9220670f6dc3ea5754a7111c5ed37b0422d4203331b407e37f40b9df900956ef8cbcf6a090abaa5befc92479ea3fda818f0e1b1032e45e9f72f890390feb4c1a62bbd92a85e00d23365ca49f6f83a1ed2bf0d3174037748b395bb187a0d8e14698e1339a156676c9528ecc8a56c44a0ccdb4be78b6303e386f240fc7ad90078b912c9326df2f4ac37ef0f4b3036c2a5338221c228b97f03662eb857d492043439e3c18e595fc50b2b7ece66a7267d8756bb1056cde6a4c0034dce94c7187bf641de256c961bbaeb2274b166246429006e521d04f3a41e8c13030f1b6274dcdfb82e210c96ae346191a0eef97b0c4f7efb7e29c7606b412a1f6f0219ffff03391e7d8c2555c3d734a31b4073cba0c866184b2344dc3a3aa9e46c4df2ea96e103e28a3d0eb62425146ebf2dce9a29a05aef188bfe35325853e3ec279dd2f18d0d0319c2c9cd5ced6b468c32ca009573830b85eda0646c89094d0eb421b0e977b2f803773c456b8486019687c7f3273378c564f9b46130bdcc9e370492d6f8c46ceb2e03490f2844eeb3c401020b18540f3cce69146ac151fd541d6bfc8dc4b6af9618500389e8ea4d326aa712c0fb299d33937109d2e58bd19b2f99559c25a75ce1cdd9e1033848d5a01e1c27d00bcc2b893a7b86251dce55535ea191adacbe1f6d665eb7090365556c5e2724d5e759222668c6837036ea77b1d01c358dd5415d02bf12d768070321ad069189f393fa8021ba6a4de3e9695f1c6f51f01e5be1dc8459dff7e7ee7203e87c58d5e1ca63dcca35c540f5ac939e528c0c0c678c436877f2990dcd52552d03288b82b5a402b80544bba80ba835154ba1af09087c48dd3c1896064145741050038ddb0aed2755e3e6d6be43ef55d84482d999ef839a54b08c7b3fd9855f3ddd9b0219ffff03b11391a638f1fc0c056f0660665e2f8147ab58372177709cc7dc0c1f29aa32f8039e0791685fb025d9b6c2538473eb2e33325ada5eaf68bb14eb402f57c451fedf0219ffff03418b638447289c8a10687001fbfdfc8d82f95af6ee3ba6ac43ff6226664004be035f97233d2709a0defae9e89cc49b957b9cbb0ec92094df45b5973b6f56de0c5d03e4844532192f29c5a0c333a465113b583b3192d047f3d35a55aa9658994026b103b2f67f1248369064fe8eaf3ad0d968d2f4a15cec034f6f958e76c90e7cabbe330309b2ac708d6c191cc19e2a72032d59b7456f88d7ba04eb6e4a040b31fc6457060365c1ad2df91775043d64bc099c668446719358222dd7ea9e1c8a8483bc2665a403123f9e0321b01fa0869c35c10b45addff86ed2919f6aabf4d91a9cab99bb56fd03670c2417c151965c107fbe5de58b62bd796f96414ec4f655207d131f0250196d03aaed08a371179a25735494b3b0f3ad1291489e6b2ee23e1af967cd20769e695303de8b1582e1205561f0c393d36e0ca6f3c9959170c4c29adba7bcbd70c686f41b03f4a747571d021dafc1430fe38ce33ae2c644b321844a752457e8c6c78713f0a603a615f3432967d47717e4da784ce13f9c3c8a39278acb01d0dec37277364fc5e703896f86f163182aed02fec2a2ec76ceedf665fa6a667b7bdb5152d94f77ea356e03cfda7caa12e4d820be5ddc065fdf24a05b79551d71d38ae54add99286aeab9f10348d35b6ceee561847e9d21b345c788bcd7ad3378b213b6ddecbfcd74b87a496103cba0440500078cde810d011a04acb3d5f2414e975f8a7f79d8fba7bbbde0cb67036b551eb5331553dde7cd2a4f9efa6de290a4afc13697f4986f6e321161504304034d5c0d26ec75f81f9187bb43f4a9714c656fea8719cc01f235606d2200e64c7103aa707974bf4a98b1cb537bcc3643460694f6a157464b6223a57c4b5a95f82f10037f37a8d8132ec3e570e4bb0373b173946aea7a44f83a3e6f82cc74e0194b6d9a039cb95e9cd2ce3265f2b78cba0aec2f696e4fc62f0731be1480958868966d5ba403ac2dd8383c98d49b8ec35096316fc618824ca84bb5ec42fd7e8d52519fd960be03b6961f0392c4b0ebbef0bb9944cbe2f75f1fbd82e90d655a6369b39439143df603e57c8b13c697a1e3760002099de3eb2c314ee3d3e58d3beee1663b3a143710200313f6f86f0f49c4cf9ed084c9c97a6f4b6e3ab42fad00ce8f2ad1eba01f059ead03bd78a8c661df6ad23a9bb9d3d605da130b47a20a89037faf6be75e36bbdd2bca03e70d57d71a46953459958061db803a3dbc0a6b0f8d1c43305550f930bfc47ca8039afdd0083efec871e94e11bc582ee5842ce66b4fc4087ab057dac69c4c4453d905581e03ff6ea49ccf6590ca3e11e73cdc0329028f16ad94abcc1f572763c719c00c014701012c6a53e9c805581e032f896b11374ba464df3e57888ec58abde07155c16a04d7e5b3296cc4a0040405581e03e9ceba9d91037ad444fb89dc14e3fee28770e183ea7a457bac669be5600c19293a480eb86b16c3047e80032716cf138588811522344a196b6d5656e3bda6d1a0ecc401f8f7c1aafc7eb1020364b05d4e5ed99921c294933956a08fb0f1163d0b5c4bdfabb48481dea11dde2b03fe1edc57716a4ebd4a940af791e69b87b7f6a9f775b6a80bc0867ad2c7a2a1a3021901d503f9af30b0dc987e9ca067f39df21a7549cfae523daca29660f2e8b15790601d5f03d6e5b25262e2e822e8d16f314ba63fbd743562809d7f89105d7c9360d4f36750032e725037a86614f36837dee05f15b66a60fd1470bf262c3f8e362bed0dae34b20376293fd11557d21519faeab9ce43ad785041f42bdd7a3eef50d0efdc165ec73c0219ffff036a16057c90afdc8846e448c4235e7407b7a195b9a745238f78800295869f6a25033980e55b9a4a5eb66c2e222f2163f6fb33b036c53ccd26683306f9cff136af2603b3f1927de4a87bc4fdd1ba1e8706a16470031daa4fd72607d1cf0fce1d8dc8f60334b2f1b63bbee667e53fdb2b181b2c21258a200dc7bff02e85cb36d9a7f2fd20035d656db7c220cb81d11a35d812df0e116116e05745a898199953546b22d7af970219ffff0398442a5f9a8ded573d49cf43c30f1702144f5b4a61d71f1c7cdde3283bd889e0037f409c579436c2511f6ff3209d682d997be369b6af3ac7fc0d73a0082f94fe0403037d81650c2b3824f6d753018d9c1ec6c0f092f022d5624637f53aa261b42b7e03e741ae335d2fd000d3e6b30ff368c593508e260aae08644598aad953196fca8e03ebce25be7a98190125e4d07f0ad4fe152534e10eedadf46ba3068f20e89ba65203a88b83d6ad66824b0fc4d9da566df84322dc8209f8a857846273a4b661c2e47a03b3f4e0af330495f63b7ac660de605a329e89df62fa3c8e5074f0be4b80d3091403648461b42a3a59dca0baec1ed2bb2f6fda1389d1f40edb4d011394c3dad0a450035082930994b588f16703f39e10886a0fd8ce003019a74acd186af65339e181910219ffff03fd0048a68c54ada5c0e9f2ef187bc68638bffe7eb647e6a2c2bc965e8caf3cd60320156cf774180c6d29e3540963410d8800b94ecc2fac3f16a805d9e581234c56035edb2f60aac0af7b571bb25b80e2a98ff1c65f26b8d6271b7e1098ee571f6abc0219ffff03871429daf3690cfcac841d76f2f1dcc9ba76f76e15f7a182c41e88de6bda67db03ba3148d6d9029bfaffb277b8af36016cbcf308f1d35a4d72640f8f2224aa478e03d1eab5065511b162ba935f8244b0a6cad3516ea832150488d32238a00d6c127d03be8b415e8fe2e120433c6a6ccc799068b6adfbbc8270d71cd6c1388b9581008b0355b1b12d57d9fb94b0e173617ef8737ae1da2fe25c019428f14f732252fbf37f03da86a7ab11d896eab4aacf22b34a183d3be0d8548b7aecb352066e0c8a746d2603565958d45966acce580ad8c8dff9e3a8daa03f6655715f083a1694c1257ee1f5030c3bf669d9f8d317abe829278f0bcb521dd5d48aa34baab3230b10e49052b82b03dc002143c1edbeed4fb6872e2503f05d04f32c6a5e210a266a0b50b95142f9a50342d5725198417d4d10747aecf078e42f66089613f7a60ea8e35a4e6bd2c700c8039712fe90049f5a739586f0b112065003cc16b976e076effcb3bd2ea40c131bb5037c1660307fef33ce149fa402a154f6611f4a76753999c80c144f4cf1841bd450030ef338cb45313023e5e730775ad7a2eb2049223830e09e175b3193765ceb192f0306a85854e090ad4e079b7a363d8298c3c548c518465317c46876fac41c6cb25c03a7b142d340f1822e5a331996d8f43f9cbf021a45ee13aea7a528c189d3168e6e037f7a6efe13f493f6a07cc7b94a78241a8c721a81440516253753b47c590450c4035d1fa1f8cf3852d40c48f4654c11b687e44fbfd3a4122893e9724d641a0dc5140395458c8a988bd8d64dff91d476a32aaefc69669434f9fd656ddc146127eac99f038f0f35d4526a1ce4b9d7a22d0b02c071baaa52c7b4107fa5620bdcc9c4656e5d03d870fe41e3b683a6d23a5b69c1cfbd8f928364d9506210c56031636f7496a5ba03e39d40c66e799a8cf24bc859e6508be7ce0be16d2dbc80cbc639c7fefe6151fc03d46b50c1c4357f602a112d28e247e0c799f6b430ca4379a266e639ce79d14dba04592063608060405234801561001057600080fd5b50600436106101cf5760003560e01c806370a0823111610104578063a9059cbb116100a2578063e4997dc511610071578063e4997dc5146103b8578063f2fde38b146103cb578063f3bdc228146103de578063fe72423f146103f1576101cf565b8063a9059cbb1461036c578063d543dbeb1461037f578063dd62ed3e14610392578063deb76965146103a5576101cf565b806395d89b41116100de57806395d89b41146103245780639ae407e81461032c578063a24835d114610346578063a457c2d714610359576101cf565b806370a0823114610301578063715018a6146103145780638da5cb5b1461031c576101cf565b8063325eaac1116101715780633ecea6b21161014b5780633ecea6b2146102a557806340c10f19146102ba5780634838d165146102cd578063617d7ec2146102e0576101cf565b8063325eaac11461027757806336e8c9b31461027f5780633950935114610292576101cf565b806318160ddd116101ad57806318160ddd1461022757806323b872dd1461023c5780632c0c74aa1461024f578063313ce56714610262576101cf565b806306fdde03146101d4578063095ea7b3146101f25780630ecb93c014610212575b600080fd5b6101dc610404565b6040516101e991906118e1565b60405180910390f35b6102056102003660046117e0565b610496565b6040516101e991906118d6565b6102256102203660046116db565b6104b3565b005b61022f610549565b6040516101e99190611df0565b61020561024a366004611727565b61054f565b61022561025d366004611762565b6105e8565b61026a610724565b6040516101e99190611e31565b61022f610729565b61022561028d366004611823565b61072f565b6102056102a03660046117e0565b610763565b6102ad6107b2565b6040516101e991906118a9565b6102256102c83660046117e0565b6107c1565b6102056102db3660046116db565b61081d565b6102f36102ee366004611823565b610832565b6040516101e9929190611df9565b61022f61030f3660046116db565b610860565b61022561087f565b6102ad6108f8565b6101dc610907565b610334610916565b6040516101e996959493929190611e07565b6102256103543660046117e0565b610a3b565b6102056103673660046117e0565b610a93565b61020561037a3660046117e0565b610b0e565b61022561038d366004611823565b610b22565b61022f6103a03660046116f5565b610b56565b6102256103b336600461183b565b610b81565b6102256103c63660046116db565b610d87565b6102256103d93660046116db565b610e06565b6102256103ec3660046116db565b610eb6565b6102256103ff366004611809565b610f9d565b60606004805461041390611fc1565b80601f016020809104026020016040519081016040528092919081815260200182805461043f90611fc1565b801561048c5780601f106104615761010080835404028352916020019161048c565b820191906000526020600020905b81548152906001019060200180831161046f57829003601f168201915b5050505050905090565b60006104aa6104a3610fdf565b8484610fe3565b50600192915050565b336104bc6108f8565b6001600160a01b0316146104eb5760405162461bcd60e51b81526004016104e290611b73565b60405180910390fd5b6001600160a01b03811660009081526006602052604090819020805460ff19166001179055517f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc9061053e9083906118a9565b60405180910390a150565b60035490565b600061055c848484611097565b6001600160a01b03841660009081526002602052604081208161057d610fdf565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156105c05760405162461bcd60e51b81526004016104e290611b2b565b6105db856105cc610fdf565b6105d68685611faa565b610fe3565b60019150505b9392505050565b336105f16108f8565b6001600160a01b0316146106175760405162461bcd60e51b81526004016104e290611b73565b8281146106365760405162461bcd60e51b81526004016104e290611d00565b600b80546001600160a01b0319166001600160a01b038716179055821561071d5761066360096000611628565b60005b8381101561071b5760098054600101808255600082815291908390811061069d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508585838181106106cd57634e487b7160e01b600052603260045260246000fd5b60200291909101358255508383838181106106f857634e487b7160e01b600052603260045260246000fd5b90506020020135816001018190555050808061071390611ffc565b915050610666565b505b5050505050565b601290565b600a5481565b336107386108f8565b6001600160a01b03161461075e5760405162461bcd60e51b81526004016104e290611b73565b600d55565b60006104aa610770610fdf565b84846002600061077e610fdf565b6001600160a01b03908116825260208083019390935260409182016000908120918b16815292529020546105d69190611e3f565b600b546001600160a01b031681565b336107ca6108f8565b6001600160a01b0316146107f05760405162461bcd60e51b81526004016104e290611b73565b610819826107fc610724565b61080a9060ff16600a611ebd565b6108149084611f8b565b6112a5565b5050565b60066020526000908152604090205460ff1681565b6009818154811061084257600080fd5b60009182526020909120600490910201805460019091015490915082565b6001600160a01b0381166000908152600160205260409020545b919050565b336108886108f8565b6001600160a01b0316146108ae5760405162461bcd60e51b81526004016104e290611b73565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b60606005805461041390611fc1565b6000806000806000806000600a541115610a2057600a5460005b600954811015610a1d5760006009828154811061095d57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201905080600001548361097d9190611e3f565b9250824211610a0a57610991826001611e3f565b8154600183015485906002850160006109a8610fdf565b6001600160a01b03168152602081019190915260400160009081205460ff169060038701906109d5610fdf565b6001600160a01b03166001600160a01b0316815260200190815260200160002054985098509850985098509850505050610a33565b5080610a1581611ffc565b915050610930565b50505b5060009450849350839250829150819050805b909192939495565b33610a446108f8565b6001600160a01b031614610a6a5760405162461bcd60e51b81526004016104e290611b73565b61081982610a76610724565b610a849060ff16600a611ebd565b610a8e9084611f8b565b611359565b60008060026000610aa2610fdf565b6001600160a01b0390811682526020808301939093526040918201600090812091881681529252902054905082811015610aee5760405162461bcd60e51b81526004016104e290611d74565b610b04610af9610fdf565b856105d68685611faa565b5060019392505050565b60006104aa610b1b610fdf565b8484611097565b33610b2b6108f8565b6001600160a01b031614610b515760405162461bcd60e51b81526004016104e290611b73565b600c55565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b33610b8a6108f8565b6001600160a01b031614610bb05760405162461bcd60e51b81526004016104e290611b73565b6009548610610bd15760405162461bcd60e51b81526004016104e290611abe565b60008411610bf15760405162461bcd60e51b81526004016104e290611bdf565b60098681548110610c1257634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201600001548514610c5e578460098781548110610c4c57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600490910201555b60098681548110610c7f57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201600101548414610ccf578360098781548110610cb957634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201600101819055505b60005b82811015610d7e578160098881548110610cfc57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600402016002016000868685818110610d2f57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610d4491906116db565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610d7681611ffc565b915050610cd2565b50505050505050565b33610d906108f8565b6001600160a01b031614610db65760405162461bcd60e51b81526004016104e290611b73565b6001600160a01b03811660009081526006602052604090819020805460ff19169055517fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c9061053e9083906118a9565b33610e0f6108f8565b6001600160a01b031614610e355760405162461bcd60e51b81526004016104e290611b73565b6001600160a01b038116610e5b5760405162461bcd60e51b81526004016104e290611a36565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b33610ebf6108f8565b6001600160a01b031614610ee55760405162461bcd60e51b81526004016104e290611b73565b6001600160a01b03811660009081526006602052604090205460ff16610f1d5760405162461bcd60e51b81526004016104e290611d2e565b6000610f2882610860565b6001600160a01b0383166000908152600160205260408120819055600380549293508392909190610f5a908490611faa565b90915550506040517f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c690610f9190849084906118bd565b60405180910390a15050565b33610fa66108f8565b6001600160a01b031614610fcc5760405162461bcd60e51b81526004016104e290611b73565b6008805460ff1916911515919091179055565b3390565b6001600160a01b0383166110095760405162461bcd60e51b81526004016104e290611cbc565b6001600160a01b03821661102f5760405162461bcd60e51b81526004016104e290611a7c565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061108a908590611df0565b60405180910390a3505050565b6001600160a01b0383166110bd5760405162461bcd60e51b81526004016104e290611c77565b6001600160a01b0382166110e35760405162461bcd60e51b81526004016104e29061196b565b60085460ff166111d4576110f56108f8565b6001600160a01b0316836001600160a01b03161415801561112f57506111196108f8565b6001600160a01b0316826001600160a01b031614155b15611174576064600c54611141610549565b61114b9190611f8b565b6111559190611e57565b8111156111745760405162461bcd60e51b81526004016104e290611ba8565b6001600160a01b03831660009081526006602052604090205460ff16156111ad5760405162461bcd60e51b81526004016104e290611c0a565b6111b8838383611433565b6001600160a01b03821660009081526007602052604090204290555b6001600160a01b0383166000908152600160205260409020548181101561120d5760405162461bcd60e51b81526004016104e290611ae5565b6112178282611faa565b6001600160a01b03808616600090815260016020526040808220939093559085168152908120805484929061124d908490611e3f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112979190611df0565b60405180910390a350505050565b6001600160a01b0382166112cb5760405162461bcd60e51b81526004016104e290611db9565b80600360008282546112dd9190611e3f565b90915550506001600160a01b0382166000908152600160205260408120805483929061130a908490611e3f565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061134d908590611df0565b60405180910390a35050565b6001600160a01b03821661137f5760405162461bcd60e51b81526004016104e290611c36565b6001600160a01b038216600090815260016020526040902054818110156113b85760405162461bcd60e51b81526004016104e2906119f4565b6113c28282611faa565b6001600160a01b038416600090815260016020526040812091909155600380548492906113f0908490611faa565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061108a908690611df0565b600b546001600160a01b0316158061144b5750600954155b1561145557611623565b600a541580156114735750600b546001600160a01b03848116911614155b801561148c5750600b546001600160a01b038381169116145b80156114985750600081115b156114a25742600a555b600b546001600160a01b0384811691161480156114cd5750600b546001600160a01b03838116911614155b156116235760006114dc610916565b50505050509050600081111561162157600060096114fb600184611faa565b8154811061151957634e487b7160e01b600052603260045260246000fd5b600091825260208083206001600160a01b03881684526002600490930201918201905260409091205490915060ff166115645760405162461bcd60e51b81526004016104e290611934565b60018101546001600160a01b0385166000908152600383016020526040812054909111156115b9576001600160a01b038516600090815260038301602052604090205460018301546115b69190611faa565b90505b808411156115d95760405162461bcd60e51b81526004016104e2906119ae565b6001600160a01b03851660009081526003830160205260409020546115ff908590611e3f565b6001600160a01b03861660009081526003909301602052604090922091909155505b505b505050565b5080546000825560040290600052602060002090810190611649919061164c565b50565b5b80821115611667576000808255600182015560040161164d565b5090565b80356001600160a01b038116811461087a57600080fd5b60008083601f840112611693578182fd5b50813567ffffffffffffffff8111156116aa578182fd5b60208301915083602080830285010111156116c457600080fd5b9250929050565b8035801515811461087a57600080fd5b6000602082840312156116ec578081fd5b6105e18261166b565b60008060408385031215611707578081fd5b6117108361166b565b915061171e6020840161166b565b90509250929050565b60008060006060848603121561173b578081fd5b6117448461166b565b92506117526020850161166b565b9150604084013590509250925092565b600080600080600060608688031215611779578081fd5b6117828661166b565b9450602086013567ffffffffffffffff8082111561179e578283fd5b6117aa89838a01611682565b909650945060408801359150808211156117c2578283fd5b506117cf88828901611682565b969995985093965092949392505050565b600080604083850312156117f2578182fd5b6117fb8361166b565b946020939093013593505050565b60006020828403121561181a578081fd5b6105e1826116cb565b600060208284031215611834578081fd5b5035919050565b60008060008060008060a08789031215611853578081fd5b863595506020870135945060408701359350606087013567ffffffffffffffff81111561187e578182fd5b61188a89828a01611682565b909450925061189d9050608088016116cb565b90509295509295509295565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602080835283518082850152825b8181101561190d578581018301518582016040015282016118f1565b8181111561191e5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601e908201527f544745202d204275796572206973206e6f742077686974656c69737465640000604082015260600190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f544745202d20416d6f756e7420657863656564732077686974656c697374206d6040820152656178696d756d60d01b606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252600d908201526c092dcecc2d8d2c840d2dcc8caf609b1b604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601c908201527f4f766572666c6f77206d6178207472616e7366657220616d6f756e7400000000604082015260600190565b602080825260119082015270092dcecc2d8d2c840c2dadeeadce89ac2f607b1b604082015260600190565b602080825260129082015271213630b1b5b634b9ba32b21039b2b63632b960711b604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b602080825260149082015273496e76616c69642077686974656c69737428732960601b604082015260600190565b60208082526026908201527f546869732075736572206973206e6f742061206d656d626572206f6620626c6160408201526518dadb1a5cdd60d21b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b918252602082015260400190565b9586526020860194909452604085019290925260608401521515608083015260a082015260c00190565b60ff91909116815260200190565b60008219821115611e5257611e52612017565b500190565b600082611e7257634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611e895750611eb4565b818704821115611e9b57611e9b612017565b80861615611ea857918102915b9490941c938002611e7a565b94509492505050565b60006105e16000198484600082611ed6575060016105e1565b81611ee3575060006105e1565b8160018114611ef95760028114611f0357611f30565b60019150506105e1565b60ff841115611f1457611f14612017565b6001841b915084821115611f2a57611f2a612017565b506105e1565b5060208310610133831016604e8410600b8410161715611f63575081810a83811115611f5e57611f5e612017565b6105e1565b611f708484846001611e77565b808604821115611f8257611f82612017565b02949350505050565b6000816000190483118215151615611fa557611fa5612017565b500290565b600082821015611fbc57611fbc612017565b500390565b600281046001821680611fd557607f821691505b60208210811415611ff657634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561201057612010612017565b5060010190565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220e2da6f3f724e6e149c0a275778c54f5fafce2fb3de76c1e5018cba8a7846abf764736f6c63430008000033030927f7b5104f73ec895caa963070f7d67667ca8757120b6945409190ec8e97710396a73766ef509dc9082832aabc39b8846123a2a80a8f700e42f143ff2b3ed3010398fabab89701c09ff0fa406234d3e3615b0eab6bf7b6495e990468ae1c64bf6e03e92c8ba9359f0287a2b8eeb70cbd02148da12120248f5203ae642473537acb4c0377a170ec8fcdeb3fffb9713f8503ee0798abf9a0ccc847af7a41fadf88ff0cae037ddcd3fa7acc5830483096b38fda4e6d92fb59fa30b3a71e9e1611d4c1470112037e1efab0e411d4697f8ae15f016d478dd75c2d8c20ead8303eaa31fac406d92f03b6cf924a4ec6937c1472c28a0a6aefb8ab0606b1a69a0918369b8e2fea2e87170366efbb176faada8558582aa75e28e3ddfc2f0e32e35ca709f56aabd95ec9f2f8030bdf38ccad4e69b5f0c79730444d98986c55214e2238f83d09bbfd2e867df8ab030fb6aa2b4cb2c46522753a421c7748403db0d284196835df7c28c94c082d773f03020a829914aaf97c915f89f9a8b9219888b611db1dad7ff94a5b2d1047f8c3230395b41be29ad7440c53952dd350a879e71e54dc6333cdc7ed75701bb439fe43a9035b4aec7a02e251e83801d3b7d6ebf063d30fcbbd225be22115cd890f1647bdbe00582003491382208e518329a724680209e9be897e2312b48ec64539961666d834ff205820fffffffffffffffffffffffffffffffffffffffffffff847a7f69d0c12b0ffff00582003f42c2e3a97edbca9efddba58491730b025c917c1c95aa3e9e734997cbb38e04a029a436cabb9152f0000031ed7a9e884f8fad0b80611c0510fe6187d5268dadd6432c26d3fc870f5e14e73005820030908b42e075a0a3eb3db757bea4e0942284eefc5b04f06f04330005125ee304938ccf432b3edeb968700582003be7fdaeeba19cc14353e9c672a6ff3cc4a0f947f530c7ca780541249b46e004a0543ff273e7dab970000037f7911ea6e2e825f17f24274dda033991516fed587c497fa1968615e3643a26903e50ec8113e771ab005cb0e3cceda3cd7a81d34b4148ae5377ac9d710cf14d63403beed5ce962968dac0b8a923f42e772003737ef8541872a41a8cbf43e5bd3a554030ae686333a697412031dce5f10874fe9f455f7ff34a5d12e24a933af187f156301410903028f2496001a0649064d8c4d57de554cec6e2b4ca415a309e3e7ce71661ed66a0058200328532d4f026a4f3612317085d938f21f597816d97c64bcb8b0360025350ad04a077e8ffaee3a23f3000000581f028d7beef1ec7a7ae2d4a1544d9fa601b5b5219982365cfd17e56019703bba4b038a283226e492917354c900581f02fce0a3e402a6f14f84ea4da3ebbe3d2ad3015d785ab71d44a709778fac8c4bce9616fec6ccfdd66800000218480219bf7c03b8b8f22ebc55425b0aa967fb339e5f0def0af05200b83104d56a38921b66207e031e8b16c52bcd8bd5cab167228204a27fe3c427a54030299a31d3cb0f88393980038bfa0d2a8eeefaa812a6adb65ffa92c0b7c89483af0960f9ac3f8c8136ddb204031f7c4ee84dbb2b20167b2d6eceeb8f095a4a5849d9c636d2b00c4b4c9a4cd00903cfc58b73102b50444e092bd30d18542c882d40de2d9cc06744d0920cfc0fc9df00582003c973f6e238d627b2338cd4af64f6e2f2b1373cb89de72e114fd02022ab91504bce93e2cb102c4be527000003353dc597bdf81048b9d35eb1fbcf3e29e72c2d84a279c9883927235d6623bedd03a2dcc5b52068320852de927ccdf8e0fd66912ec0ff2530d848f25c7908db38b900582003199bb5a3d31a8c5c101c213a13498a3c0102df2e6288d26061eea18f3ea7d04a0246e8b161aeb1ddcf2103599307fdb41704005c032820294678c0e8fdb08fcf50017e8e008dc2180077a603ee33b528d1a6b46d60e598577853f77c0d9771682d8135d38bf473e428e6b18e01410803bf47737c288aae6c71f8c2b7b1e575e5423b2ee6eb444bc4d5507c76f485f0ce0369dfad812973c6c3f8d99a88b21b2c0638e288ce5484095d8ae91b9c9d77ead800582003c8a51d67b7bc6f6fe940c681b0f98c4f3af0d5da7bbbb46d5023c3eaa664005820fffffffffffffffffffffffffffffffffffffffffffffe026ccb6b55a01fffff03673a04f82679abacd3554a5c9c2934307a5fb1d153748e51d031826435afb8ae00581f02b330217cc53b194597246cff2d196cd79fc477866dd95dc597a291b267b14a0c4a0e32f0259fb8000000581f0248bdc55696d9636caa1106f6d1e795edc6e7161a980443692a0b8739b0d44b01957bf62c7e67b6c2c0c40219020102193f3b03eab4aabdb16a1cd65b0270e4d2f0aab2c7dc69c905c79f81c597ee7f66938ce503f80c3b61b63e222d76744935ae3add72d03feddeee624830bad6ae8d9fd89e7c03c592836be80b6f574a6f8006a4910bdb311e87a282094d94caf9616d8c95ed2f0344fbf41db767dcb9a8de24ea110e15d802d5b7a9ca23653975d0a7dbd28c74b90377036a440e99a396510accce4bf5ba652df2e70c45c48f3cdb525da188868ca70347e45efd4e10ef97ed648c6196fcf27c98c5281a3f648f7e221672b01e82849a03dc73afb585478fc2acd1b5e506799af39ef97e496da08011965a3b9cd9bcf47103c14a59029e587e6510ecaa1131f7d1d810f18ec654c66b104032d89375acf1c80219ffff0389c56dd6e15c9f1fa8e4b6ef360c50297029763f4e1d67f98f7b8bf2a1cc337903d471c474b570489bcc0b07daadadb90a68739a40425cfb0bc0634b8ed1438cba03c18e39ddf08ec4f4897a105fc6d6cd2b869ca65bea5580fad3432f8262c5db6703f06ed72bcd83011c4dd002c62cae6460e8c743269fd3a4c90a8acbe8819d75b803cf2dd6219a1ce5386d7c50a80418d0791a17d0e3e9fd6f05472332d11ea875d503abbd2a116b857e1a9b6b4b5c6fb5006404cd71d2d587c282c1c2d83d7ae27e70035b39ee8a021c075f798923a18b5127e83491646955235eb4e14e45717a3b28ea0391f0a222c22cc33e1aa8b7f192f5ef1786711926859ae88aaa4c7851c5ee477c0358706be849a8852a1703979cc75ec9ba0114484690e00ceb34c1fc227b74726203eb899e39a926bd9f5e487827c8f203bddd73710f73ace87ce7b7bde7ef1eb1230058200340d5821991f56824e17b35bb5f31910b00fd429facf3b3e6c86e0410b78aa05820fffffffffffffffffffffffffffffffffffffffffffffcb694a1b9625a1ed33a005820031548d6287eb37d3b00c23acd6bc11a4c60f2cc0c018ac8214ec9efcc8a38e04a14ea38837706c6ba000003b87bd062fd1387a2d29078e2f16152e9b0ca383fd5d6298e39008f43ce4ac48c03c19702dfa10927d40b9f338685ecf8cf64355a62a17af9d4d1c8f9698147b9ee033acb2f1c8415655ab13263eb70bd3c02412ae1d2e98d7d159457842a03c82a46005820032ac93621815e6ca287e516483f89f18452faa13d864ba74e37f44d29d6f4e0491c371b819a55e793a1005820037a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3041010219fb3f039b714ba050db7a9d2c069c1afc58bef07ef7b4547325588f0bb321ffeb93f6fb0325b01dc1e8d644a4f1eccb75c05ffda27d63309b09e898aa29cfe1b648c8f4df031376e828fe36c924dd1d93e7f8a43eae956d71ced2dddcca91de93d7fd0bf8bf037dbb6027902ddec44d7b575e661cbd95dd4a4f27e91df4f7658abd8893b1658a0359be4e7f9cb6f6c17210669806f60ed43bf23c6c1b9f7223252a2227e2090167037d31602c3a3df49bf045fa59bc7df7d63ded0e14980ba6c1ac20a6d024532ecf0338b014a9c79d5342031a0ea274f8ee419110f3ae20a7a203a16cb70af9dafac1037659025653e82d8d5408bd2a1242aadaba046e583eccc972da54d7306f98be960398e565d2ef920b39e0b6e8372b2f3ec7cb8c5fd2250f1af8c5fb63470f2e041703524f01bd3f95ecee42a9c302025843954e9da7dcbd6ec3aae1790506b1b670fa034a09cc1a4ae0fb34c395ba4c4a43a3c50f3c8721e0b9bacb33b69797a490598b03bfbcf54ee05e864d5d0eed3ba8d3347810e16db1cbb22bfa653cf38fb201ff7d0219ffff0219ffff05581d02c99511d7c589be9bf4aa04476f05dce095aa4cadff30408dd040f107070119206303f6e1273e7a2757aae6bc42f33113455d52736a1faeffc865244f06deed9872400605581d0203ad165b2b07c1360e0482283d68d78513a521f4f3baf477fba8afd207011bffffffffffffffff05581d02285e3b7c896a86ad2bbabe24c6c9e2b822d902a81185244690243ddf040102190460036b2f2f8af152e6b413bb080bbd872a73dfc2a34667aadbc4dd64423cf97f97dc03c86d5bd282bcc86a6983743fb3777be6962eccc7adf738eb4572033b4273d59f03e9c8de58c10c738ac3b92346e8f198856c56054a5308fc01c410f7959b55426f05581e0301c34489ce0a8d4733a6576c9aeb596e97ec6fe7619276dede8972ad20040105581e03494d74c94864ebf5e936fc5f5e377686becb35fbd32e56e3c7e69998300c01473faf15a3336600033e02580f4859b97edcb3a40f4b16dfc91c74583a6b8882561c0f64fc69daa1ff039cf4100dc54b4bd5e52ecde8ef8a513d1b824d836da0dc1cce7f34b3b722b7de039a8221a6457daed39645df92ce5a202121ac0622669767e464c77de0b0b034b805581e03d4d7827a2ed3e6a1179b4f83bc55ee532ce7b5518131bafd9da4a5807007011bffffffffffffffff0219bf0a037ff864d68080ebea98de769510224a0d6fc9e6ac2be0a964b50032572a28a63f0219ffff0312cdb70e65dbda98a31244649c0aa8d8919da651110ee1f65e2fe8615af5344e0347699c8ba5783ccab151bf39bba0addc88e44be3228edbcaa272e039bc66c54c03260c617939e2aca41653e9080f98feab6405bda29dfcf725920d2fef9d1fdd9203009f8887abaacdb6471be5eb42eaaa6687bb50fbbf4091e2ca09d6448aa223ff034b9da8036a534e41883993d5af9eb081e713cc8fbc65c361d8fa05e41ade6fe003f84f1cfe12dbec517e476a7508c9fe566df34e2a2f3b9eda56aa63c8656b03ff0369111c426e6bb4767359bd7aa240eb80838561f5dbdc1c6e9028071df5a13a5603337027796a9c7d547bcab2f01e66f5583a329fb6126afa24630ae34ab7a9e62003d99653723bc8528b87078e370f9abaa9bb16f43c0a95f87c9c90f40264b6220c03e8d49b5ad617408ac1801f50e1dd1023cf265f456cc6f1071591e6ad3737522f03092e024f5c6fc03c9b72a84f16c3658a5a2ae454cc969007adc14de7fe7d04e0037fa69772d6638ad83d13b36c255cfd4c5eb883be71105aa492c8dbd8cda223b30325aaa60049365a063dfaee606d2f4467e944f5f05fcea0824a4eb3a7a05f86ae0219ffff033c88cb2ea14381c813b9f1da31e40545808987dcbbb96f569ff6d066efc879cc037187c4bbdb46ed84cdde3329de8d7bfb566ff36e0c158a35f49aacc0442df80c0328683202566e8a62f9b1bed679fb1d5009553a901c428806cc24acdf59ac3a09036b75e3da7e5af3f74f86d5319d21e78a5f497ae00199a2b182f4dc9c32c7dab20340f1bde5c62ee09fb18c3c005b800a37283d947153c297ccd125e06b763b79950375512a389e0541db86b89fd228248207b60e8c9c17b9365d2f91d1890024d16203974f960b6319597445b4bd8caef6f499961d0e8d8c09cc51a7529654e7704bc303b1f02ee5baede289627522575714078f57998bb5caefd819ce076630be52ff500329ef0ff0ca2271d77cd406aa709d82035367f6a99f9a6f243cf96d7ed6478ee70307746785f9e5de327fa3cfbf5ccf1955256980e3bfb409c0e9823f8e98710a4803fbe316baa253f83c692268ba902594ae98929b58b0b913613e33f90467d7bc6703a70d7834fd0d4604ddeb5bd2794675d497f49ab797489e33d3ff0f993f0b486a03f5858fedac312a0cf846ae97b1a3b174dc06a929214ea04d83ed59dfc0e1b787031532e0aaa9b36309f94bf82758f57faeee6cf0db160fc7bbb48ab683d1e24c1a0219ffff03f0e2dd6f30fb045a51dfe4feab138b9221098e967a048d0ed3c47d50cf23f7ff0393c4f5e4d2edecbab2f779d229677c3659a6c4c65bb917e4f72ea559a0fc91be03c99c4819fb7927867c8d2fcd9a26b2e453ea33594f0d900a0e5765b5659b4096032121d20e8470db9ec73bf098d2a7bfd718472a0186ee3f300746dd17f37622b7036a98bc493d950f6a2abca9a97716c0e56c57e27a17e66b8180c3ba772441c41c0312b7213501dc1d7be519aa84dfae1e1f3f85f459cbedb1c29a276eae2cb292a7031c410cca9d5c8d0e4c39e153697ca20ba95e9cf95f4f9c6b1f1b40e6d6539fb4039e5a50555b7ddf8ec790fd03c15807154ae7c93f62bb209bbc760d4f4597b57b03a5672280370a5a9918dc6b0b849766d21d40fd4b7b6dca5c6edef5d914b7cd5703ee470edf1e979fa48bc6c9c3170df6f350cc5355a453299a2257a83a8ddc069a03ab5e05c46be2e89045ce4f9f91c0a43718ce46ed209c943d00ccbcb283eaf32a037f154f360b2833b563db5b7b7962f76b63f4a2436751c46cdf10cd3174174fcf0347b6a548fd3c15fbab116fddc973746a6ebc9eab94e6592847992ca87bf800d40396e27d7cab5f2ec3c096c1b9d262a2c1818a63b3fb15e2b015ef0bbe4af0d947037f840e27884879a2272830f424cee5161b7d1f8679b8302d725c2835c63d6078031f558adc370d8137c2988967508db21da71381b11d30582732ec19164d212cb203a2b630dd025c80a3ba0f400f81022f2aa7ab23bc0a25b7b4a4f5cf1175c1d8e203c53528dbe597de3a656b107499ebf94e5026d6d0b56b77287ddbe7c411da965c0459048b6080604052600436106100295760003560e01c80634776e4731461002b578063e354733514610069575b005b34801561003757600080fd5b506100406100f6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100296004803603604081101561007f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691908101906040810160208201356401000000008111156100b757600080fd5b8201836020820111156100c957600080fd5b803590602001918460018302840111640100000000831117156100eb57600080fd5b50909250905061011a565b7f000000000000000000000000881d40237659c251811cec9c364ef91dc08d300c81565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000881d40237659c251811cec9c364ef91dc08d300c16146101be57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f464f5242494444454e0000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff831661024057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f414441505445525f4e4f545f50524f5649444544000000000000000000000000604482015290519081900360640190fd5b6102b58383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f414441505445525f44454c454741544543414c4c5f4641494c45440000000000602082015291506102bb9050565b50505050565b6060600060608573ffffffffffffffffffffffffffffffffffffffff16856040518082805190602001908083835b6020831061032657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016102e9565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610386576040519150601f19603f3d011682016040523d82523d6000602084013e61038b565b606091505b5091509150811561039f57915061044e9050565b8051156103af5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156104135781810151838201526020016103fb565b50505050905090810190601f1680156104405780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b939250505056fea2646970667358221220fcb8f4f30203340a84fb3281a8f6f11931d3bba7bfc927a40ff42c9624d5f0ba64736f6c634300060c00330605581e03c6ca57527b6a2a753f5d37373afdd0e49e11b8b27c922a5d3ca1aaa7d0070119048b05581e033b79fcf57ec5571d15bc7aaf3f58bdb89e0d069ba4583504b1c0c8f4200c1818471e762eae56e0b905581e034c398765268df59dcc3c8794c187c37a5c0988df57b0fc43be6b6dbfa00402031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e037a74209e7b467a59efe04f0fc97880c35522b599b490d97d0791ff152007011bffffffffffffffff05581e038f679e25f4fd711a223c42a05201d01bfa0492b19d904386c242238f40040303337c29fd9976d67b66b28034c1414c04861ce13b19a267c6e01d66f2cdb6bfba03689fcb5f93a1656c679c711f5834a4545c5bd0eec4f9fb3d06be74d47a644aac05581e0394fac235b8cb0d7369c192b738a48dcab89a51dc7ddae26ff0fdedc7d007011bffffffffffffffff0326b33a98c0531434b0173d5e2d0ddcca2ca39a29b601a537d7ed3b8a282501a20318e7060ebebce8f584c5d3884f3c2c502a014acf2e34978d9da74b90d80ac1ea05581e03a90fbf9d4e6f02dd53857678d0d6e1a48caa75ba18bacf95a9ceca89d0040105581e03de2f98f27dfb0f01af59b807b54304e203e57f00902ec5d0602d8f8cd0040102195b6b037a540d4a2d56d07ff91ff0d8614bfc160147876b3604bbe3ef1e21216b53038d035729e9210be60143eae7cced73b789d85481dc56b6bd235ea33482dc7f61f78703171bb0dc7997e83eadf61835c063a5208497c092967639afb146d9b011f3206903cb772734158e8dc3eebc0668a7ae901ebb4b3e6ad28f4147959e862f4085121003cb70eb840bea53613d0ee7b7bc3bd8fa5953c12d36a5d94df71de25fde832958038f91face4f1ff68b181443b44bc50e49d1ef769624020466af548c38ec0147030219ffff03b4187fa725b276ec847e66f1dd3e7826243463e8225aa29b9f3ddf807b9fd61f03b675b7e5b432cbf3c3b10a7886c5697b82b33200cea3a23790d9ce5688c8cfc303c45a33176868ce83a2a995d48698ee78c38a70bbfb3242627d8808698400e2240347704789795e4f5c580ab7c45c3b22f6eb5d37347910dbea17abe8a6a510d8c203b976c31ad14c8f504d4be5be78ab8bc35ca6f6687035a3a6fcb20631a65894f20332b74b2f6fe7bca7c85d198e33e0f4b2be46ddc2ef1f8c8d078f3d96f51a7c9e03edd70ce4d15b5aa42ed764ec8c15b908220f44c4c41a3c602928d5a98d92352b030ca19fac8eca456694c3edad8d0a1728620ddfa98dad4a63e0c682716cfdf41303388d7ae7eeabea7178c28cdd2e65852b1d0011a95637f562d4ce6dabfc7f37b5032d424a807d273dbdd7b9b6beb5742cee2150adec22fa4a7b0d298f3622be721f03ab9dcae2b378eef886932dd3b4fd0eba5d9aeda056d1458ee3cbf296e4e480c5030e62dd8232f31fc9dbbef523a1372b8297bffadb3a22f40336853e8b10b7a6fb0343d2c8174f470d6bc9268709444cec570e740ec74928256493d54d2632da5ea20219ffff037c743a978c9fd2dd55314d780182727a8e4e0ec6a9950f7c37a18f03c5a94ec8031a369054110b397619e664d0aa03b0009955410dcdfb272b0fc00a36c671873303f5693b46d804601592e97136cb505d9ccb5cf1f03ba285e37c849827c852bce203c3950a4fff6d66cdcd1af6e186ddecb7115ce75ba93f24ba69859f044b8ffdb403738021804ced9a34626e8009c74649be8c47c995f059156804649a7da7b424c90392274887e34848c052a774de2ec371d85f13ff185ba861653ad26a958eb25f1603e3f88ddcfcef6cc76ae15cd97a0abe2f121e9d98fcc6bb257f12a9b1551706e10374591417d5e7367ddd60fbfd7b205655b2de81a7a3d853cfa63164a5face1b3203ff9fb7aa1f5abc5988f3bee80bc85417bb201298f603feba7ec63fd6ce3ee80e037f9e212ba535bb36998cb10b78ff8a10fe5c4b04515c7c00e885936f1fc94d750219ffff03a10272ad85ad6d88c447f8d9ad6f47b6c29d3b02fe155a966bca8399c7aa32b50300a693cf72724249c1d5b391616798bbd6cfc58b902abe2f3da10c3f71557d6203df7f0e1c3d696a7ae351f77a7f725049a37148deca9f67081e37227a61db118d03fc2ac7655159e7a65c805d562b9692d1b50b4e60778559468386503a2b82f3da030c4d7f85d505e5fb50f5e0ae30995ba8eeb89475cccd1d9429314d56b24f73c3034fce70c6b4130234d900ac2d3da000e218aed9576940d42a04051fadac01885703777ef9350ac2b8ccb1855eeee404cd2d24f72b6d1e6f459a4ca0b80eebd60cf1031e9b713fd97b8c5340991b2da5287146f556fb315c61511daf5a754ce058848a03197bbcc21b2dc5d6b4a32ff36a66bf659b62ffabd9cf98a0c7b08473799d3813039a2c80b9e77f62a4338210a8ef9a618beb133f7f70fb7c075553c60e637c505703651504323b270d2699f5a2cb8550c86628d52ac0f3c31df21e6395625f32d537032dfe7e8ab472fcbfb6864fb7571d12ebba67d1bcc06d79e89c32232689ef138203d2a0e4339ab36c3b14349991974ac88a77ef1baeb32f0cfaf26c14f20d38661a03b399922cebb112cc2bd3fac1f39a3cdbc148636db075cd74e71ab20861bce89a0358c6b3693909727343702186406cce7986d645b340021592b1a51aef1e0a915f035ff0aa43bf827a2e8853c6731960d123decb94e41e2588b2537b7e2acdbdb8e2031699f53c3b9da066fce69c0f60467dc3275336a284dea58e1cbb0493270654330343a4148a6d5cf5e402c0f836521215f66be902c9aab471d05c2a42357d86ce480364b0704c49fa70a0c3a894307e592ade9f0c105bbb8678a2c8f55b122b2da9f603d497687144b47679aef369107695cc149d19e4c16953bb536dbf79f658e4d9e703a8577e3dc772ae25ee555e2c3525c46b38fbf2313f38ff78895847d7b3a13bed0327ecca2c00137cc6056d745be48d3fec90dbe907bc1240641c4045e3cedbcb2b03737443fd80f61be03a44f64103cbdb6b944564c0a206f713631eb7c5884fee1103bcd8d47c57e72a47c4934e65220a3dbc972383882be8517c4f18fc498f3e405803ebbb6839070f87a566af6bb7b8d38b4c9e43bf5ead66cfe842dcefff240b319503392191735668a91355699d34dfe0558b9357d46ca7438959de771368c31e188803e25f96a819ab0445529dd166402d6605ed764ff23a735a04cf87417525ecb6fe039eb9787f730a2f456757363edfe73dc6450c3fdf584c836b38746e84b61be27403129dc0b1c006c71a870174495c941875174ef04a0d5c47973c14335f1f7a9bfe0333428ac51db156da9c42725bbf16e5e47d635561a8e18621484c548fa9d561e6034f107eaeb85ed0377c0fdd67a906c2a7e000443f1300519ceec5f7d9f3ad4ff303fc9c10fd51301a3ac43a3c3f44736c4dd7f9f6b0570521e32bf0bd700ba4df4905581d0251291e1a8e8dcdb8f67324e63c170d3b6999df3b48d247d962350a1b0c01468422e348cc4f05581d02d137d52f88d0a75ab34ce9705da4c2f3820e59609a39c8d2f64f797a040105581d0265f6faee3ac28c758e0d91eab26533e5ed18997f6d11fd645b27091c0c184248022140f3cd146da50219088103e191a3dce49ba17ca3fa7421b89e2fb98ebb1806afca837ab1e9ed02a79ce3ed03025da212483b605bc19370642aac69b666f4fdb80e1f6659bdaec9c0bf834390031d27d0b01b3d5d35b8de988b40ee84cfd1815229df32691e1f274f45b16fec8c05581e03fba0cb717e3ce551c00197e729ef28a7056b0970ffbc492a6f5e9417600c014703706b0c482c0003f1b574431f3838d9cdff6e701afd5a058652dab5ae5523288a83d5fad7696139035d1e21f700a49be24991d5b20b17b5bd6c9f9a8827fdcdd22ee081f8bbd1bb9005581e0398ae75f3ed21b9e32380ea72249e5b6fc025675c156fcc5aa79fdf87c007011bffffffffffffffff05581e03a5783ce755052621264cf1c2daeaa924521bcc6c8eb774dd44e6350e80040103f2a99b9e85f9d2f783a0858a785970417c5b06a3d57a1052f14ea9952a10353401410905581e0358ae1c51e459e531f17578797c4602032a73fb4a4f7532c0ceeb94cb8004040376f19a77ac6cc3373cb1fe87631a127f02d70bf8db5fa1b321f14ac1ab6a89510219be1e03dc258e2182c9b641a8fe6b6c803b3fbe6d3722d438d6f7fce89f218c67e99223036944db60bca821b8c86f2b17dc5f463f29659b69a76aa111001c6015251408270398e579055d674ce03324431ff77034f29d17df5dcad0d7f23f1b586ec4c0f665030e3f229d255ca18075a8a7b35ebe92d33060408a11e7ba5078f7ba976fb915360219ffff03c7a07b709cfc1e2e0686b538673f8b11905aadfd14fec5ce7647a8079f4c7d7d0385a48a536acd714715f968203a43e197870ebddd91ea0b8c9f995638a6bb0db503987f8b3b5acd7ae24dd20dce4b73f3fadffa86b394894aa307a3d63c311a98000219ffff038af01672cc7f1c36106de4196565821e109127572a6278f1c1733c577bff0e680356b951de1b8a7c1f806ef07700bce0ee634c762f9cf523a7d85f657bc4646c920317078daf75d5541341e344b1d71cf36b08afa1114b71ad8b0e3e3569460e89b0039572e226457d10b4fa47eff0c91b27fb559074dc0d6224abe10aac670cb6c79103ff737d5067ef280fcb116b754703082f69a1d1106ee7478f3c6c3e8efd6cb7f7038795f5446f47d3113c2603fdb7476028163b080f04c9b974a3c021884526a44903acae49ec9ae7b81724dec9aa245658fa61c1b9f4d8c68bbff0d435381d52454d03092784af9831cc3fc52f41570d4f4b18b789e14fd26ce8f36941c61761a143d803e7ca487169fd56556368d29e3e0d455997d622e955abcfade9082ec89779f637034193d5a7566498f10aa05744f24f024c5d5e068382473001b5f420b7d4b2633403b41463c456311a184bc4aa2fab4ab2443b309221f4f8d6dd559bbed5b53337620381518d319e0489ca25d38d872985ac842c9f17b5aa81f636e842da2ba7118f0f038667f1c110a684d09c30a40dd7582e26714ef2fa34d0d5c9fcaf398ac0e1c9a00219ffff0219ffff03d1e1f3292c38e84f1fbf7d2c76e3ad8ded07b7110e64f12a2055bfa577d1ba87033d29d30fc9f6f99aa631992fb3c0cdd635d4f3e8211df250db9a757f5e226189033a057af3b7cb12da20a9a8a00a07e95e18197c452319d2f6d0a4baa081e7419803a3ac2d961f6a344afaa39b1b0af2014f66df1b058d6e30d8db5a5e2bf9ff7c9703cac478077822133ec7877ed234f6e28302b8721186bc8f71da7a395cc96137a9034153c017f32856d317ca42f0c5553ee86ace89ea5475c4618411e92da20b46740329965387e59a100afeb966292b453827bd08e104cc6ed7be2778caea4e425caa03669f4ea97c78136d24fdfce3cd003d88c414850fe59247a8f95f5cb032b5653e03207a2d0d30f85a2f6685eedd493934f0d730056b9d484272ef1c1889858402d203704753de3f440fb8b3383d7f95300ae1c5f1f8179a95851a9cd1c4dc1649331f034e52da2558110afce56c90a0f91a64db509bd685436107dde77453fbda21101203b7cfc6b463a475aa355ea2262261342f2f37289ef80bc70537e58958c32a2bef030d52d18ec6acb05eca77fb9dade0217b7b302e3eddb07e474ba3b87de0fcd5cb03118855dde6226f6b07a9468ebd5855cf2fd653dc7765a50cc6bb9ed7d2d12b450335ec0cec17bf81540cf39b194a5d7d1b09f5c72a8c1c944f966e982b94f548d80389656b6f1c656f3d1bea6bf961ca13d4cb0b4486417877b45b63b0ab3b11227303403c99289b756f0641719c261d031beec56a7548f4688878f40868ce3a0f227f035780da0781a715308bd153f55d9b4748133021beb99019b61afa4662eb462fcf030d031e90a312121c29cfabfcc8d50a101f132f394a60a317f327facdc315c4ac0358fb9b7b69aed98a890ad1d2917c50a7bbca23fd62293e2bb4cf19713ad4bb8d03ba79af697a7d174d0b182249ec80d5f6e067ff4f90804bb3501c55294738421d034fa0bb07f56af2b297a819cea5ae5429321348dd8d61181d84eee883c56df42c0314c694225ca48bc6c644ae097b61fd2768ce69b20c15f81649ee8917d6f3b3c403d67f9fb764b8c7b9d89d61e188e39a142e09166af298dd266854d553cc324ca603361a945249525bcf5894fd3c6722403a520a6ebc0550d946a22f189b07f216c203721e0bbe7c77f117e381ebd9fa4dd669461e2f676d06becdbdbe7e05a1203e4503102bb3e5781e68f3d20019638a0f5c9b77fc07cdb2a7e3966a05b43e0c7b8f0f0305d1c11d0ec47291fecba3edb00c84f614e53c77bdebb23360291c82144c58480309ee4dba0d8e12fa9c411640fed941776e5406ff7a6387b68bc51dcfafa4501e036b39e45dd447a8be34dfabea673346853dbaf160722a02423678e9d358d0abc0034400c97f89b12ba1fd970b25cc8b424f4dd381a78771036d988a13f6f6c696bd038e291b7ce42e1340f425d23d3cb6036a3cc650fbb7d60d1e82981eb87fac576b03e5b8c787e7dabb492d6f77054e7fb49fde8e4dd1ef456d2bb3b86787a8d0f22f036d2fffabebf554180c9b01679118ac23b99edcd45c74a692ed5a76cfa5bcb1c803f3fdd67e44d8741987a2043c55a7c85585c558f5887860a7f7804e30b710c59e03bdd2ffb7411c3b5343cc68b4f59486b4c6dade7c2a15f360775327fcff4a1500039b8e92387928f13e9a2634c27406b1809ab28b80e7e9d264c63104ce60d409c90301176c93914ec3f505a8117cfb634055c93d6b38162500301361be8c75888a5803a0042c44ca95ad2ea3d35c6328c89429569c133d98895b0e0da5c6b8920b751903b09db93d78fc14a565aa6404f27cb4c69073ea29ddcad94d401eff15fe07a4ee03f81f7b9faf7b9e198d7902be0151b758f020edc75b6097cec20e2cb6879865c205581e03667d0f45bb6a7cc2877a1b1dbfdbf2718fea29e6bb1fc4a312e0a585600c054701ce322e77cb0005581e03bfc2d735ffce4371cc2e2681a06c3c72690c219e9de314765ba257f800040105581e037e751cae2d3781e55205c1bc53bd83ee171c200e99ae9696b085041ed00c0d4802259c9ec7285e8505581e034fab886d0c0449d76a0479dc6fe10eccf84bc94e57a3759f5b488c55400c0147b3087e71d6a00003389032124ea29b08f178a2f96feefa156bad89c2b95c9c58b38724b0265ecad405581e03300ecb9d5757c10a502b52a020e3edb09dbc508c773eebe3d3c09c98500c03464243673bdef803bc103abb09503965d3ad44c79cbbad3ef21e1cf0c46984c98cd80ec0034ff1210355029e4b88ec2041772963572af4005ca631016a0c3fc13ee89ca6393f5ba73b05581e039414b73fb7fe6e1b5884c6cdd528f899c0431e9600db35a7dd2d44d06007011bffffffffffffffff038bac75fc7e3b3eb19772958b1888d5d4c2e9b7429235fa3b61f74108e3700af3036b250b27b538e5863a92aa3e769935dfadda4fa82b6cc3567683ce2911e9729505581e03422bd2db7989be2212ddb1afb92c4ca7d263bc14f43f2b36377b6192e00c03476298274288a83805581e03195b9054b9fa768ee5fbfb4af941c1a0b2e0360806da44a3659f3901d00c0147323cc414c5e55805581e0317a5be3ae264faf7c69eee49bf376242c18e89c2fdc6d41335f53c9ce00c190355470b818a456bb0150219afe70303d9748c035dd08b89769926f2e58b650e54290d73665ae5a9a8c51e6a6800330329a0517bfebb8b99be94c1bcc597d24196fe710da5cd2c40c8971778f18d39fe0311bb899f2d38bb145a11377dadc618072ac50624e9a03b0a576ee91904e25eea0219ffff0366f5b76696401320cae4dfcff12e4eaa4de656f0b4154ffa964651ad735c056e0219ffff0319d610f78a5877cac90c859a0664ee32627d4e3e3afb8b36ce536388f1e90a3b0219ffff03c08814da227c0b675341e505daa0d89e9bb37ae927204422320080c23b35a7fe0362adeeb3ebb60d023fa739826b2194db9002f28aa8c50e0746d869fad943e9ec03da60843fff8e397702283c9df6cf28f1bbf633b9e6e27514a7fa44807958fd9c031951939f1134aa12cf6025e8793348ce1d20b8683fc804b981171aa0bc7c989903de9afe7a3196983319e325f0b4605d6e4d890363436af4c0ed214fe7030412b30372237ee3f4ee47415a293c6c744a51d982af3848e5c21a9b6e5c3ded9c299cb203cc9c05557b923d7d70f56d9501bcd404641c40196a7e4c6dd8b4181eb125daf9038a374fcccaa9a081a930a450a426d4269906cc42fad4e29a54491872ec3d120c0338e8a0d1c6ce57275abf5b75f1fc83a4a17d03147fd76ee9e7be73d5f3ee6c3d03c0df3bc662d9c8a21b86d0c28500a904ae4161534efa0b8610bcb6b95b79a31f03960e2e3130ce05e91a4766cd4bdbe3231238514f86829e4c77ffadee7294b9640301a5400000f38cdb038cba45c0e73c2fafb3c50b21dd11b78c62233b1c1e55600300a613f69686cbb9af86ed7627b3c900077106b83d089ed6eb6212c798db652203199145b1777cca840435f4bb62d8077c8139a236dd3d959219c3910d49d8df4a0325d2df3516410cc2041b48120ccd62c0d64911e2eef0295435f9641aac4921c2034a29a82db1b07d46cbf4671b5b8ceb3e8e370f1023bf68b068c6c2d73b1de43b03c5de8b83e47be710fbe267b8ef29021ee8799be17a29deed7a1759c8d3fe7d7f03bf9cd47f7196a21653a3c812a4243c8854ce0cd3827b1b6a47e73a99c75b370f03ef0091c725857eede6e80ae5e97698be0b04701c2b8e1564d4acff2a77875c7803f261da90179668fe58421f7d2fafe2b3e5878c12129715659e0dfc80758f715d0358c9b6481e84be500416d4b6ec31070af58985b14a4d5be34440a1093fd72a1a03c840b79be7170bb2eee49d91810197493c5433a7d8c37c03c20f740a2916908605581e03a1688bd7015923308dfd46c807c0ad7a9a7462b9d6e934b903a44d34500c014801603fe59989421e05581e03c2a2ad46097c6beb8a70165cc676ee73dbffd676af5d3f4a2ad2bfad300c034701fe64003ae4b805581e03933ea1f2bef750409b429e227faa0fb22990b754fe8299ccbec8b8c1400c04477ee1b2e04a073e0374068a648b72489cdd64bf919c88be380567168f546e9ced0d343501f9ac914e030dcfcd83b04f0899cc1c4d6ff65a170701d8a079e3f0760070c546e62e0722e605581e03bc6cf87f40fce1c6aa85a5d01c4e185f676b96bd716dbf0f34ce56ab7008470dc2a0aa01340005581e0373842cd70c7c997484bfb6a1b2ccf2d352fa0ae3f2d9fa095c523deb400c0346ba6b66e7cbb00219f025037746c7ba17f83bcb50a6e6cfcf3de5d4d2f1e89611c0b0b59ca66aab71fbf40b0326d2b7ce51ddc0eaff6a9fea6affc1f9f727291e087c6ec15ff41559d867c8cb030a94f338c8c38572b2e8c1f6d93756e0a56b49422b134e4b2dfb089d5ef883400395c15dd2f6ca64cd8ccd0a31717938ceda76ad79f6c381f64e89120c781851a90314ea3348c1bf98745610d834711c3d86f4a76cea667dcdc20f472d9ed01dfe6303d09d61d322ab286cb3438c67eb02748b785dc2315625d1fc74afb29b407c13a003155bea19bd155c2fc414c4d5e48a2de5723372c90dd05a548c026b10d7d70d03030c08f7645e4bd677e6eae1499d8eff00c820b1c57629e9a5c700ad1aad27cf42036117421d2e57fa96893700b1770762ed77fe8bb9ebd7e88ca6f49de648c8acfd038d64b032716fbeea03b0674baa94c7e79ba2b32dcea94d1e4a40cf47313d5ee80219ffff038e353071b00ecf9e9d2f306d342762cbc358158723d8777efe2166c8864a615403ce8f71c4eb162c08a96f04c05f1d9a44445c6c588e7d61098edcb045104b087d03941e72a7f28a4476064551893c4ba83f520346708066b464c2b114a770b85f0503df1438964dc6fad98d6a140da3349371995e4aaa4e0ef2dc071ab0bda351bc220397a9b35fd18df5edfd310c64c5bac6bf0c33f880b6c7c2152441d98d6984f8480219ffff039c5286504044dd0ef5f13a4fc11c0aba3f01cac3d61f34e49b360db5dfbcae4403687743c8dbc43a82eb13021511a56675947a1b051193b3a4ba139d1b9ba1fc0c03265f53914c3f5b6b3c8499e757481e033d30b8594f067050507305b58c4afe0303435c3edd28525848b4f8fe502e1344b680ccb17625f97615e6abf6720f5394d2032a153a696a7aaf9067dab648561bec90bcac61020de63622e27e197710f4d0540321514ea0a2b04c0ce05adddd845c939222852c1bd8a69903644419a45f241135038c9a594cdfa00d08ff5179cc52df484fcbb86f1268dfe201a04ed82c66f34b5e038a1cd81a78e92dd05d30fd7de2bbcb088210c5231f0542f1477ab1f1aa2d0e5f03274cf7b067b166c6b7371ceb4aed596464d52a2aa07e8a3bf9c8ec416b3858de03f5703e1fd6b48206bf11a19bf66c1c91085368dde490024571ca44c5390a79d403dc0887cc2feb7a5dc1013b5daaa45b6a2950e716aa9c5e165467645892b2a3b503b231d4e649ba9edee79e40f5b5045abad8ebcec9428fefa1b83b1377393481c5035bfecacef4aab74762a36ced1db9a288573366bf34cc2a32c4cfa33a52534abd034e106936ff1bbda6d8a3fd20216d118a57b9d17b4b427e09e3d30d8549280fd303574527d35966fd86d35b12edf76f24ac4c0da40fc3a26b774cbeea416a63bba50219ffff03c7a81035e4a696903336163abf592589bf9f873fe1d0fea14d2841eca52e47c303438d9e7225e32f4a578856f2e5698c2f80092eef1a60a87c1737d82cb9accba6038e14d5276b84f84f006950a6faa52c8a8f83a854fcbab9726ddbb6bfb84af26103026af2e25ebc2dc75455a27e56ef08d35c2c1cc99f49c72c12c60b46e86c2dcf03453ed7a4fb7e8ff77d3b3f3e46e520da311cb300dcbc8f92d2e4a50983a7e61a03e84dfd835afff2195b55e97af132a1aad80f5147feccc5d0ff9e9641ce461a2c03b8f0ca62d7a342e365a4a24bf99fcb06d99dc18ffd7ca50021537ce3fd0b2ae4035f85ca1692a7c3c0a9dbc83cccf37d933b825b95abf8fcd9a0c1dad542cf274003c289e815832de7455ea3c81b9f3e718ef1e7afe734514cedf13978cde224e12c0388213123981c2860d9f7f4ff861a9dc69cde332d47a209947ec8f4a46100c0060310a754537b58e679c78500d1592d911bd9e2771fa7abc8be95031825907d421b03d17aaa49c96b5130f459559e227ddfde94b4795ef94cb17b59fd7f62fd0f8f0f032a39a58ba4416f0e85af0a938f8ec14e6db07e91aa0ce34a599360b325a252db03aa6f239b536eacf53863f332e1e1d24efe2818f2cc08d2efd2d023d82ec987b703a69f2f9012c9993e33fe2d8146d64c40923541f56eb5a29456eb932a9a37338b03a75dbc16096df3dc58289a17da41e573b764ad223d576629a639930270b5744203f868925383b9b5a78739303903d62df4f5355e08e57a637f5106dcf6d0601059039512b68a012a077c1f614ceb051ba30975d62513f80aeb6e24f13af8bf98e58403194a1f07aa8005fefc2256341839ec59ce60b77e592ecdc49184c221c1fcb64003e09e54ebac51956233e492436b113e94e0ac3e7c4cce949eff395efaceefae6e0302b6a139d09423a337707d2b709851fb0047fe1c801881ced0f20b4a709dc18803e165b79b7e4e40fe404058ef936b82492a31517059197b0a915bef62560709cf03ad23018837ec770603624863ee42e793c7a191f84ef7b33c884d9479c1136f6303e2ffb336a3ab56faed33938fe1a3f9eca2917f73d1fdf89e36bbc6fb471d4d6703c81f1e478d449c3211233429d5784ce41f31ab7d867e3366051d6ba965f662ee032f96a166e8e309a4a21300f5122272a5825a1a855861d488279f54005810ab46033407c08ee465188221f4684904fc883b0dfeb5725ff2dac1a026d794bd993a20031eca6726aa6ca9541fa860da58d0a596dfa2f47000e8d47a5ae683c294ed3ee203d38a4174e0517231c904dca5075996398132b52750bbace66cf54a5cbe507c5f03e9d57166e2116f75e27a4d971b688e7d62bdc7279738ebf7195f46785f81bd2503056c8318e249dc7332380850a3b93d8f3fba8dfc2bb4f1c02184132a020ed6c005581e0344b6321d10b6aaae3415ab8b4943d8f3f0a02c8827d4141e08c0f18240040305581e0377e67c1cf1c87a7b77f951930a298e681d1ecf20cd674fa05aee09a1c00c0346369892c2c1b005581e035426413b416ee23b64979b4eb065140edccaf8eac32c7afceeb4ec72e0040203dadb2f2758fba2879e0bec30e12d9cdbaf2bfe2040f4ebf9c679e84b174fa6de03ab6749d8d11b0d8dab5dd73ef205e102ac983fca88ee03e460173501b952e12705581e0386ebb9d7d423cd14ea46a3cafd174d3813bc5b445c4c0a50c2e9a43bc00c08465c862743e8d80313facd7632e3d89e52ae75e1fd20a9162c1a56aec1f8fd0eaccf746113a92dd905581d02b19380b8c9c8db0a234d94befa4f912982eeddf7f0f3b439231790210c05471fc54dba388028030342e4b3d2ee7cef6b38af3d90029b5b51d3ce04d926235cdbb48539c1dab080038c7e629f85618a9920f3fdd67600b16f80e097faf089f666395582142a424fc605581d022efdeb6e65b7e9f662c673e0789529349cebadab99023253633260b40f0147296efb61b168001bffffffffffffffff02184105581e03c3b439e02a1500ca8ef105f4d9b323ae9fccd6ca37ccbf8f3bcd97dcd0040505581e032f2d2c25608851f412f5232861d3df5d8630e63af75afc4dbc9b8a9fd00c024705c504f71d800005581e03f18f397abe03944f8cec3c75364529dd9d106ded96e661433b3154ad800847071afd498d000005581e031eb0b0b79fed0f9be28249697e6b3c7cc2753447772c21540799a04bb0040f05581e030d9188fab2738fb95f487be714a26ffde0f837634ceed61db4219d64400c0247029c7a85e8f0000219ff3b031df9b94b2f39d25e1616672e415a6a27a1c1140cc8b757b4164b76d82b538a9f039c9db1dbdf03b86ffa737e2350c174b90273b89430b8e2192c6d2b4124e2798903f013ec785b29787c01cc5732a71b06a599d5628cc0d4bd2aa076bf91654898930361127abb58b8644f9718d6e8f04462a991508774c5055a9d34fedb7f219a658c0374db6767395412f062456e2ceb60f89ac4ff0141744ab27cead69362bbb1e81203f709de7b79c3b619f0f8898a50c0b63b369309624774b753b0017770f9443adc0219ffff03b805a2f59e31ec0d1b7418360a36e6d6079dfcf2e27b14d25e52f6a441a9c6150337d65150118bb7620f6fc8389a921dd66c1011dfc6e4050dda6e757be8ad10780384371a18b90c671f05acd5fbfbd4be386b165aff961f45297eee4ecea1857b6c03a1325512befabffba2c3d4d2aa9eaa2712de6232f86ef2c4548c546eed394132030077a4158e2ac7812a62ee883fa4451411f4a6ab98b9ffa6b2cdc2bb3eedb5db0219ffff031361f8a828613c10b17fe9ca0aa9379a31958cca0e62b27dd1f0b184fbe578ee03ed0f2dbb181aaa9bfc03d987bc9f0ffb4650fed5932f31eb3ba75cc3c097df0703206dc19e9f29a636aeae2b8a676c975dd2c5f2fe3e90d90e4c00af771bac235d0219ffff039f2f47fe7bcc9ba3c71bcaa5eb22330c477b5a23f30626f55d189d0af839de00039a040c4a6e7ae385465f078c8e32cbf6a351c06bf49e75970daaa9a0604cab85035ff7642ea879c4c128f26d49d8afba65ab7bc16bffdcf0bba263dc98e72a3bd003f1ec7db4ecb90ac97768d955b1ef44e06bfd40a285a57e9dfaa9f9f43fea09c80392caa1f24994cce645fd0d8fd896ae993a55a7ca2673ec4767d1400c5bd95509037ef74c270c0a77f918c1065961d6e32201c4d944d3a26800bbbe1d452216bfd60399b048882883a0862544160a0e15a805d38b51cf1c3db48bd8642a2878d2eea90388bd8c4e02ff095692a841e94e36e14dcd3f078a4ec5b4985cd974cdba3a1c9903b875662d5241f1c8e3e02e73b393b5b0377400d1b878b991d8b174ce62943546030f738a02c7fb1194fb26033ca14ba535d063f5083b8fb60af0a229b26769dd530358980f7f3a6aedf1bd0d4a584b7067140edee877e6cc894404324d05665937c6038637ae0af27df3d3a4e9e6212eaafc026474b83d823e4c99830be15ac102b790039da7a13569b26c3252d6c25229d6abf49e6182164a1ad616ef3f9a2573f57eef034faba2658211d08aaaf7ae3f50fd230f57844ca3525c8357dc8dfd3bf7005fea037141651a267e8ca566341a329b9a99428aa8d6dfabb20c1a3c159646235843a903ff620ee6126d8ed15e8b89fb64fc5f500301bd103e41c506874da3e9fe65160f033939522b2aa52bc85836f42a54f9fa8ad693aa6ce06472f98f0b4ce1ba82f1a303c6f0fb2ea5a60c0665dc4707df515371128a29b5b4358c656eaf9330a90fdd19031bcd5a096a9bbad22abe5bb99cef4f84c2643f6307726a79f29e2a05c6198081034f0156b961b997b081c918e375815eaa8514486fde96d1509d496fa1290553a9038dd025160cf38d6551d272d76ba3745be6915609efdbf08f8b30ebacc57d432f034e9d08e7d139cbbc5bcc642416ecd4ecf5ee3a21fcccbe6059c8808dba6c491a034763672dc343ae997ebd386de638a27b1b523b0b59468ed7000b03ec9618911f03e62ec2c5799f216c854f04e3824a1b4e055308dd395a4f40db7300b3e29849ef034092c8a5fb6487e931a5679ab058788c99bdb84fb49fdbf8cd5dc131e8a2f19f031fc09808178a80141b792a6263da8ec0525c369c31052f23dbf390b8b60fa2b105581e03773a9be9767526097e825be27bf718792b02ce2cbef4ed58b84ec10cc0031bffffffffffffffff03259f1577a03137eff15ee55b2e512f20d102c68de99f76d13fb64a9e841aa1d90369cfa1689af134916d2de7cfce49ddb0f10a95a86693609dd6c19614f3e506a803a7e48f0d73eaf7c47528d6ab59ffae7b4aec13c5eb888b7359f014521767c84803f4894f5d93a9fad81ddc3c915bba04e8b24b153184b4a38622d4e353288b537905581e03ec3fd825fb28374f196fe27a83357e41e9bfbfaea7be0ea67291ca33a007011bffffffffffffffff031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0372842efee2939ffaa7aef72fae83c7336cf1c5ab190a2a58e8f1b17d9007011bffffffffffffffff05581e039d6894d40617beffd8cdb78211f2cb673c27e5d6df2b837dc34c410a50040103562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e0371fee78d7ee4d78773b86bae61c89492bc80c3ce2fa2e2ea780dbc9af007011bffffffffffffffff03d10ec96bd824042aa5ded71bfa00ea2929d5ced42970ecad0e90f27d766b834e05581e03009af7de254c6a2d57dee3a27a9438f5138edce2c64247c27648a027d00c0347d1254fb913d58004590f5b6080604052600436106100c55760003560e01c806370a082311161007f57806395d89b411161005957806395d89b411461023c578063a9059cbb1461026a578063d5ba16481461028a578063dd62ed3e146102aa57600080fd5b806370a08231146101bd578063715018a6146101f35780638da5cb5b1461020a57600080fd5b80624038e3146100d157806306fdde0314610107578063095ea7b31461013e57806318160ddd1461015e57806323b872dd14610181578063313ce567146101a157600080fd5b366100cc57005b600080fd5b3480156100dd57600080fd5b506007546100f290600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b34801561011357600080fd5b506040805180820190915260058152644d6f6e6b6560d81b60208201525b6040516100fe9190610c56565b34801561014a57600080fd5b506100f2610159366004610cc0565b6102f0565b34801561016a57600080fd5b50610173610307565b6040519081526020016100fe565b34801561018d57600080fd5b506100f261019c366004610cea565b610328565b3480156101ad57600080fd5b50604051600981526020016100fe565b3480156101c957600080fd5b506101736101d8366004610d26565b6001600160a01b031660009081526001602052604090205490565b3480156101ff57600080fd5b50610208610391565b005b34801561021657600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016100fe565b34801561024857600080fd5b506040805180820190915260058152644d4f4e4b4560d81b6020820152610131565b34801561027657600080fd5b506100f2610285366004610cc0565b61043a565b34801561029657600080fd5b50600754610224906001600160a01b031681565b3480156102b657600080fd5b506101736102c5366004610d41565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006102fd338484610447565b5060015b92915050565b60006103156009600a610e6e565b6103239063041cdb40610e7d565b905090565b600061033584848461056b565b610387843361038285604051806060016040528060288152602001610efe602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610a6c565b610447565b5060019392505050565b6000546001600160a01b031633146103f05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006102fd33848461056b565b6001600160a01b0383166104a95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103e7565b6001600160a01b03821661050a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103e7565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166105cf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103e7565b6001600160a01b0382166106315760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103e7565b600081116106935760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103e7565b600080546001600160a01b038581169116148015906106c057506000546001600160a01b03848116911614155b156108d0576001600160a01b03841660009081526003602052604090205460ff1615801561070757506001600160a01b03831660009081526003602052604090205460ff16155b156108c857600754600160a01b900460ff1615801561073357506005546001600160a01b038481169116145b1561075a57600780546001600160a81b0319166001600160a01b03861617600160a01b1790555b600754600160a01b900460ff161561085b5760075460009081906001600160a01b039081169087160361078b575060015b3060009081526004602052604090205460ff161515816107cb57806107b15760006107ce565b6107c660016107c08782610aa6565b90610b2f565b6107ce565b60005b6001600160a01b0388166000908152600160205260409020549093506107f49086610b71565b6001600160a01b03881660009081526001602052604090205561083961081a8685610b71565b6001600160a01b03881660009081526001602052604090205490610bb3565b6001600160a01b038716600090815260016020526040902055506108c3915050565b600754600160a01b900460ff166108c35760405162461bcd60e51b815260206004820152602660248201527f45524332303a2050616972206e6f74206372656174656420666f722074686973604482015265103a37b5b2b760d11b60648201526084016103e7565b6108d4565b5060016108d4565b5060015b8015610a19576000806108ef6000546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561092857506001600160a01b03851660009081526003602052604090205460ff165b801561094157506007546001600160a01b038781169116145b156109895730600090815260046020526040902054600192506109679060ff1683610e9c565b306000908152600460205260409020805460ff191660ff929092169190911790555b61099282610c12565b6001600160a01b0387166000908152600160205260409020549091506109b89085610b71565b6001600160a01b0387166000908152600160205260409020556109fd6109de8583610bb3565b6001600160a01b03871660009081526001602052604090205490610bb3565b6001600160a01b03861660009081526001602052604090205550505b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a5e91815260200190565b60405180910390a350505050565b60008184841115610a905760405162461bcd60e51b81526004016103e79190610c56565b506000610a9d8486610eb5565b95945050505050565b600082600003610ab857506000610301565b6000610ac48385610e7d565b905082610ad18583610ec8565b14610b285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103e7565b9392505050565b6000610b2883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c28565b6000610b2883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a6c565b600080610bc08385610eea565b905083811015610b285760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103e7565b600081610c20576000610301565b505060065490565b60008183610c495760405162461bcd60e51b81526004016103e79190610c56565b506000610a9d8486610ec8565b600060208083528351808285015260005b81811015610c8357858101830151858201604001528201610c67565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610cbb57600080fd5b919050565b60008060408385031215610cd357600080fd5b610cdc83610ca4565b946020939093013593505050565b600080600060608486031215610cff57600080fd5b610d0884610ca4565b9250610d1660208501610ca4565b9150604084013590509250925092565b600060208284031215610d3857600080fd5b610b2882610ca4565b60008060408385031215610d5457600080fd5b610d5d83610ca4565b9150610d6b60208401610ca4565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610dc5578160001904821115610dab57610dab610d74565b80851615610db857918102915b93841c9390800290610d8f565b509250929050565b600082610ddc57506001610301565b81610de957506000610301565b8160018114610dff5760028114610e0957610e25565b6001915050610301565b60ff841115610e1a57610e1a610d74565b50506001821b610301565b5060208310610133831016604e8410600b8410161715610e48575081810a610301565b610e528383610d8a565b8060001904821115610e6657610e66610d74565b029392505050565b6000610b2860ff841683610dcd565b6000816000190483118215151615610e9757610e97610d74565b500290565b60ff818116838216019081111561030157610301610d74565b8181038181111561030157610301610d74565b600082610ee557634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561030157610301610d7456fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220311540535f50d450a3000be044337d5f821493fd0b11f257e9fde1b0e012d72164736f6c634300081000330058210336b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00546ce8ac745c5607f9511421816218a0509a1741790058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563054c19d89537c287986ce689e4596a14cb6509ddd8a00582103b8c29ca3a59c7c5fa8e0cd7d9d62eeca9511eaa799ca978203d4c87b814e21e047079fee14fcdecc0058210370543c84582c6cd12daa7ecd4a78d418c88b82abe16e461e0406482f2fb1f9f04718729081300d2c005821034cb17cbcafff355fd16e22bb3ebfc551727f20353f6f5186018bd246b01a01e04701f997e0dd52150328171dcc947b20914ae239668904f40053d83a282372bb8f56a5f9f3aed643b101410800582103435bb1fe251ab2cf0ead8b1e177b07d53d9df6a7d87109de8a016483b8b0ba0047020ecd6687f5310058200266a37ba1d32a700962d31da7f53b1cd4a08bb9e5f2846a09e002966b9e3f594101005820025015f4842bc517f6e2a93d4dffe68390f71ecb7d78444c07bf2e39d12e0cc047c3767ed376a6ce005820026cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6885501357ee5ead0c0b3c709865b705aeab1e3aff9365b021870005821030b0c5f3f8c250d4cfc1c1b9667cc951e9a31b6f2ce03d9a73ac0abda9d7e01d04703306010757beb03f2de41819938dcfea4006a02810231ab54969ea1cfa5326533891dea2447ea6602198df505581e03ff20c1e1cf78dc751814d7016d567eb7ae1c8f276e4dfef31815e3f2e00701190f5b05581e0379655f93215bc4d041063ce2fd741309422b574277f1ac33951ddca550040102199deb0325649c8c98b54e657052e65b4c82c5e1473dc93e36b9e4cfa9df3e9c4a503b7e038831882a18ad63e865f53d50ae6f3c2fc2cc2c4cd143a0cde1d5d86e9b71655a03c0c107e73bb5f8cd48060b6fe1c39d4c3ee4be3d9bb107f83cec418f11deae6a03f2ab306cbe8d0629fe402083f60de8b9b2952e4a93bdf237370d3467bc843879030a0529098336036cabbc0f34a37bfef31c0e65ca7df2da5f86385044b8f559050219ffff03e232762577bf09aea15ad505ba75862c283fde93faf559f7cac3453ba931c2ab03578d321b2d2afb3f80dc9fb6f5d6f28965843d4ff3fa4b5ba67ade9240c3fb190398a8dc5e3b6d754b19e8790afe6d8e442bd90ab0370099f0d0c597bb310fd1750219ffff0349ac6286254cfc60362738ba5131f9ad52cc6f0adbdbb4f3094f9f2111a8da89039cb8ef54bd2d0ec2bc2170239e3d0cac3a749d82b1760f4f3f7618803892889d037835b80e0553f6debea707f8217f2b9a255c07f3da25a66d7f3c89934e2d8480030f51008e6951c9b289ad92b75a5e9a71e0c60aab70edddcba07886041361bcf703e9ca07f2bd5ebf10efac47a84b6d66c35f929bfd6aa2c7568daa209d523a2293031068c8de2c2dd8040da1324b423445723d43a89f322c7dfd6ef967c58d87efab03a12b817c32325f26740925b7c702f7bea70e48bb06def37f32e8b0b4c0e005b80309ee3aae890984b0a9ec40b0403415ed95e87355ab2aba7a2a557577daf227fb032196250886b1c52a1e8792f3329f5c76f4754dee6e681a28565a8c7887111bbc0362ff7c5f1c950ebbd9fe8538a23ba6fb7dffb3a9f01904f53598e9d4ad326e33035d35db60163dda4bf628dbdfdc10b0e5873e47d88a7f48e976dde9e2419a339e0386285d5cce9cf101a669f5046b5079af02c0d7cc9314367ef648e819e9c71cfb034c1b6d632dfac74befc56f6a95b6918b96cf4551003df4a5d1f08f77bb1e6df10219ffff0349d1aa86da80d8cb2aadbc2ac944e9eebf61a9fed292e8b229e403749437972503616d1b363eb0ab6028379ebfaf089ba573c741b2f1cd70447a3a90f1ef36276b03c42d164ceb19121a35df4406728c58923cd161c2cad6d13713c10a75f4f8b1900322802333cb6e70ecb73bef17f2fb95ebd8f9737f3b6cf05e1c2d2cb8712de2f7030e4316755e2abc87d0adf56784180dc82debf5217f9a8eb424e7c800c19ee55c0219ffff03a5a12537189ed62757f06793e993bfb7259de429554acc855d1f430de16cd139034ef049a6aa500a542756e108ca3fe738c25e9afa840a09c90448df6d56b8366103cd9dd9d0abc7cd6d12bdc0e375c111950215f556897d94425f309a55235a42410366c6085134c567b71328128c94d1aaae1000bb2c144502488a539477d33facf7030f17686bb8f8d3ece874bce930bf5fd0b3915c584bc484de828e4d2bc2ebf17f03cc2740597ef15c778d449f7952ee5c7a9c76a8d85f57ea88f233a61a71a2574e03cad35523018247c743dcc9a2e0209b7b7174902fe21819131f0281768e1cfe88032988c48bba9fffacb0411a38585e4e220f4bcbda9dce63341c64823a8b932d7d035e6b379ef049c9303444e82a4ddc4550e736c6e393bbc96cc12ba6daa8009a8c03bb1df3c200e57821b89057c0e086c5523300eadbcf58dae2d666bb30d00b5f9203d2919e59f82bfc615f816b0ff1b7c26faf4bafe55b2cea975055aa52a39b428703415b1cb10818333c46bf493279aa6e0ee6d26ffec0d683016298794441fc230703cab9e55a966a82dde098897b82d31c201d0841d1ec2c216a18e5614bc59959670392274868d3093b26eedefbc28534caf168277a2fd2ca5bbb8b3230e3263af637033cbca7dc741599de58f45365210d24dcacee3672691ff55070683d6d82868eca036df938c8bdc78c273a3d6268a2adf994a71c5314faf2d09bed87ade38eda5c8703c08a435a518576b020d513225dd01fa62dbdd880b2a603e3637a8ee38ea47ce103c0a8551ee7b0c5ba2be4e30016c80bdd255fc810c66b7c0644203197a2c77462035ddb4990fc755ebc3027bce061e8f126f1c287ab77a52e2d476d30495d7baa4d03443cb64f4af43b692ed612266f6105fd1e1b5578d833dae75ac66f66c7c8260f03a19dc6869747c2bf036328e09b16fed180c763111d200fb11c6f117c38e52bb70372fae32cd26d19d33bb02e8a7009866f966e57deb0657a14986dcedb55bbe90b03ee01befeffee9831146fecdcfc2007163c361d8f966535780f37730bf414843703750ab87256584a502887a5d64ecc5d25ab0df4420ba960e60307fa20f4d01a19037c12cdad472bf1834fc2e1bf28e7d618b5e0b8715770c507e018c5b92d6e665b03094273130bb420e7168c3cd17e15156f040f4744d4fe1ae2a84f3687564630990369986439c205ff7aaa080c3c7ec26a6d4d0fadf57dd97c258722f62568d7645403447adc2ccd4cfb879117f67626714cb892a666a205990056b9f0473756c80a4505581e03d9467383d054755211c85f61ed2bcf85e44899e97252cbc4e1fff03900040105581d03d53395800c1c834ee16c4e2ce5871a878752bc8d8e3a72a144d44910040404591d8f608060405234801561001057600080fd5b50600436106101a35760003560e01c806379ba5097116100ee578063a457c2d711610097578063dd62ed3e11610071578063dd62ed3e1461038b578063e30c3978146103d1578063f2fde38b146103ef578063fca3b5aa1461040257600080fd5b8063a457c2d714610352578063a9059cbb14610365578063d505accf1461037857600080fd5b806384b0196e116100c857806384b0196e146103115780638da5cb5b1461032c57806395d89b411461034a57600080fd5b806379ba5097146102e357806379cc6790146102eb5780637ecebe00146102fe57600080fd5b80633644e5151161015057806342966c681161012a57806342966c681461029257806370a08231146102a5578063715018a6146102db57600080fd5b80633644e51514610262578063395093511461026a57806340c10f191461027d57600080fd5b806318160ddd1161018157806318160ddd1461022e57806323b872dd14610240578063313ce5671461025357600080fd5b806306fdde03146101a857806307546172146101c6578063095ea7b31461020b575b600080fd5b6101b0610415565b6040516101bd9190611a61565b60405180910390f35b600b546101e69073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bd565b61021e610219366004611aa4565b6104a7565b60405190151581526020016101bd565b6004545b6040519081526020016101bd565b61021e61024e366004611ace565b6104c1565b604051601281526020016101bd565b6102326104e5565b61021e610278366004611aa4565b6104f4565b61029061028b366004611aa4565b610540565b005b6102906102a0366004611b0a565b61059f565b6102326102b3366004611b23565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b6102906105ac565b6102906105e6565b6102906102f9366004611aa4565b61069d565b61023261030c366004611b23565b6106b2565b6103196106dd565b6040516101bd9796959493929190611b3e565b60005473ffffffffffffffffffffffffffffffffffffffff166101e6565b6101b0610782565b61021e610360366004611aa4565b610791565b61021e610373366004611aa4565b610862565b610290610386366004611bfd565b610870565b610232610399366004611c70565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260036020908152604080832093909416825291909152205490565b60015473ffffffffffffffffffffffffffffffffffffffff166101e6565b6102906103fd366004611b23565b610a2f565b610290610410366004611b23565b610adf565b60606005805461042490611ca3565b80601f016020809104026020016040519081016040528092919081815260200182805461045090611ca3565b801561049d5780601f106104725761010080835404028352916020019161049d565b820191906000526020600020905b81548152906001019060200180831161048057829003601f168201915b5050505050905090565b6000336104b5818585610b76565b60019150505b92915050565b6000336104cf858285610d2a565b6104da858585610e01565b506001949350505050565b60006104ef611077565b905090565b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906104b5908290869061053b908790611cf0565b610b76565b600b5473ffffffffffffffffffffffffffffffffffffffff163314610591576040517f9cdc2ed500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61059b82826111af565b5050565b6105a933826112a4565b50565b6105b4611462565b6040517f185b73b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154339073ffffffffffffffffffffffffffffffffffffffff168114610694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6105a9816114e5565b6106a8823383610d2a565b61059b82826112a4565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600960205260408120546104bb565b6000606080828080836107117f55534465000000000000000000000000000000000000000000000000000000046007611516565b61073c7f31000000000000000000000000000000000000000000000000000000000000016008611516565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b60606006805461042490611ca3565b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161068b565b6104da8286868403610b76565b6000336104b5818585610e01565b834211156108da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161068b565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886109098c6115c1565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610971826115f6565b905060006109818287878761163e565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161068b565b610a238a8a8a610b76565b50505050505050505050565b610a37611462565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610a9a60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610ae7611462565b600b5460405173ffffffffffffffffffffffffffffffffffffffff918216918316907f1cf2de25c5bf439ac0287061c3a0fa69b3b02867d0ccfd2ded34e42577050b7390600090a3600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8316610c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161068b565b73ffffffffffffffffffffffffffffffffffffffff8216610cbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161068b565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600360209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610dfb5781811015610dee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161068b565b610dfb8484848403610b76565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610ea4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161068b565b73ffffffffffffffffffffffffffffffffffffffff8216610f47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161068b565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602052604090205481811015610ffd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161068b565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526002602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061106a9086815260200190565b60405180910390a3610dfb565b60003073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000004c9edd5852cd905f086c759e8383e09bff1e68b3161480156110dd57507f000000000000000000000000000000000000000000000000000000000000000146145b1561110757507f74fbd8ad78eb7732edc209f83d2dc23f7472a05cdbfd5dfc0f210dad2f967cb390565b6104ef604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f01c5070cf4f26b1dca38a8754c64483958f5dd08799ad2d72067b3ff2985b82c918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b73ffffffffffffffffffffffffffffffffffffffff821661122c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161068b565b806004600082825461123e9190611cf0565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152600260209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161068b565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902054818110156113fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161068b565b73ffffffffffffffffffffffffffffffffffffffff831660008181526002602090815260408083208686039055600480548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610d1d565b60005473ffffffffffffffffffffffffffffffffffffffff1633146114e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161068b565b565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556105a981611666565b606060ff831461153057611529836116db565b90506104bb565b81805461153c90611ca3565b80601f016020809104026020016040519081016040528092919081815260200182805461156890611ca3565b80156115b55780601f1061158a576101008083540402835291602001916115b5565b820191906000526020600020905b81548152906001019060200180831161159857829003601f168201915b505050505090506104bb565b73ffffffffffffffffffffffffffffffffffffffff811660009081526009602052604090208054600181018255905b50919050565b60006104bb611603611077565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b600080600061164f8787878761171a565b9150915061165c81611809565b5095945050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060006116e8836119bc565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156117515750600090506003611800565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156117a5573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166117f957600060019250925050611800565b9150600090505b94509492505050565b600081600481111561181d5761181d611d2a565b036118255750565b600181600481111561183957611839611d2a565b036118a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161068b565b60028160048111156118b4576118b4611d2a565b0361191b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161068b565b600381600481111561192f5761192f611d2a565b036105a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015260840161068b565b600060ff8216601f8111156104bb576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815180845260005b81811015611a2357602081850181015186830182015201611a07565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000611a7460208301846119fd565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a9f57600080fd5b919050565b60008060408385031215611ab757600080fd5b611ac083611a7b565b946020939093013593505050565b600080600060608486031215611ae357600080fd5b611aec84611a7b565b9250611afa60208501611a7b565b9150604084013590509250925092565b600060208284031215611b1c57600080fd5b5035919050565b600060208284031215611b3557600080fd5b611a7482611a7b565b7fff00000000000000000000000000000000000000000000000000000000000000881681526000602060e081840152611b7a60e084018a6119fd565b8381036040850152611b8c818a6119fd565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015611beb57835183529284019291840191600101611bcf565b50909c9b505050505050505050505050565b600080600080600080600060e0888a031215611c1857600080fd5b611c2188611a7b565b9650611c2f60208901611a7b565b95506040880135945060608801359350608088013560ff81168114611c5357600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215611c8357600080fd5b611c8c83611a7b565b9150611c9a60208401611a7b565b90509250929050565b600181811c90821680611cb757607f821691505b6020821081036115f0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b808201808211156104bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea2646970667358221220afa44d852ecaed4dfafcf5ea763e88ad6cd0b21c77b25987ad5227b426c30fce64736f6c6343000813003303b03c9d72225869eae74e2ee6f3d9c2344e55ba013dd75eaab7c6448036f9f17d0322d3cef57339578d69245c2ecec29a9090ec2224aec52afc681f28dfa3d9956303ddf1d3595f748492621f40002b205e0da4ef411b0d0b46172c4f81901ec48df003028cf5b0073cfc9551738770f3f297f09f6ce717d170846cbbb20a5fa31b26840330a0e762171907c7f3d35b2c0a5bf94d80217e8755548d5220400d7c0be12f82030d4f0eb76b565454387c259c9b2bf0fcf57803c82b892413eadc222c7792111903dc67727dbf94d2bc26d0c96892394b3ba0ada6a9f0e9e213aff240c60299eca9005820038a6d4d3118e28f538cf8a279a3a80e16a134a32d512f08e7206531780692d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003ad7eaf1ea027e9da49eabedc8310bbc384a9b3e8ed7bfdc7a920a2f2c164005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003ecc1d49ddf284d11f972ff73171876a05e2b4f50ad13b6afe411d5a7f5f8004906c142c2f154a76ae7005820033d46b04fc41794f7504477603bfe6a7d5bf9e808cea9e9da0abae1e009d7005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820030b8aeb4fb23b52fb8147ca7e3ed6893a9bb8ba2f9a6f17939a92129def09d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003c2a022b9e8be765dda8b122a6fe3ed6523fbbd0aed06e234d9d7b24fc47d80490124329b7916435fb3005820039e314245c8b9d88f13e30175d95654242b100bc5fa9161be68825b5c414e605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0388a3981c5bdc612d7cc99f6ce689cc68c6317689680fe77235851d47c9a86bb500581f023728d9889aa3a9f4006193b9ebaf49e11d42a58067372fdc4203cd7e4d37490565ea24c52317de5d00581f02b9044ed953d7fc905c351998d6d70e816cdab924b39b9a5201af10fa707c490102a6daf73cc1241000581f02586783e3c325241f1c32664cea3f22eece7f50d757d8d4813eee46fc50d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02c7d05f935d2c39be98566f03c09708f7674c36b75fc32264f9f404d33cda49022582f31773ba8bc7021912500219fee603373829ddc1330bf06ee7939a98ba33970757f4bd103915e8b10d37bbc2fcfd9803761b00df880bd3f2efa803b10c5ce2314af49c1baefca0652dd5b33c777547640364c567739bc488b2149a8f91d30c3879bc04c13d7f79ccf0696ffc0910418b3303c784edb3319f0af114ffc35de80f48fdb89c7c093bee1fbc2ac5db14d38c3b1c035d73836c6a9183d1a90b194b088121f978dd4a21f6a25e03cfe95da2d4b8b50f00582003e4cb9c17a5b7a6935f8dcf48954a878cf84dea06cf3869210ac134e7c2a7404910361382b22d455b50005820030584ba995bbe84c9dbb7a46eafe1af2e4733d7bb23f40c9e819463b97fda30493635c9adc5dea00000005820030ce9c886bef3dcd80897dc5213db6d3ab69bc00706ccc8ef79041c0fd8952048a3b83cf44b08b1ba0058200348313bc9f798b768d869dbefaf85ed5a55d8e62fcca74e10ad4854634501c04898ed149012a47a9600582003d5958930842e11abf7034154dd2e35d9c6503f0adde5515a1f36f9945d4d605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820034692e90564d80c5a54a77337fd2256a6f6d6b0908cfbdfbe0c65d379d4a9a0481e819242e6016a160219bc21036569342e2c4b256757a8b2f997b4094fe70e3111592a649ec44b39b9ef9c5c4f03ead467c2312acd707839a18da69b8c10f9b6bd1b7221355a2980335d3d7ed1690339bb56bd13c484fe8746488643f561d5560dc62f4cdb4c619de0fedcf2cc6fb7034cdfec5fedcabfc6f6c2fd4182749e3e0466bfbd727b98800e58e90e5b6f531e03d49f873967c7d27aa61005f2899120c62f38ab7a4adbc205ed1b48065304b9d503a3540db79cb74721a9314c578890152e72dbee5c6804b06609c789bd041b5a6d032d3b1f7c8bcd5194e22f56f9dcf36ec8d198cafa92adf36c214991156d8d2f1903117d86f840a0c7be6bc87b0d7cb33f43b757a3d0614a1e2a9d21598807acbe3b035f3df8ab7c80d7871e9bd0f521f353129ea0198cfe1eea007792aad265fa0eae0219ffff034e187740870c660e1dd9492d5d623798b27422ec0ae5fae1d2be2b2f6fb70d9903ddd241a40fac8aff89e2c1d505b02baf9336804909a28d5b4dd7cea62384d61a03094f7f02318617311cc43234b5e4cc641e6d93d1afc3863b738fb5bd05fb75bb0359cbc0bca51d877ede040fe572e9d316eb43d7099ae4836fdef5a594262b41940058200313fb41d60c3770b97696898ae0c12851e612b9388a11e923c876b37d6ed060490a00e147bac13de9b000582003401b72769f0e31497ef312756306de3e339781277cd8343ed987fc732d1aa04a11a8e5f110ab7ede000003c93ad0fc154477d0c41dffdb66485617b433045a39ab3947a5344bab71dbc34800582003a04849381fa189cfff551e3a3772f82c107347c74c1b38f38b4fc89d432f005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038ae6bf9f950ee605371d066977d657c699befa500fb20e4f5589748a8f31b4f6005820037bb5e1c5bb8624abf66502d9cef9380c4aee5a8cb80b772911f6681838708049171b02fa4cd0083ea100582003da939134f15ef8441ed61d812e1f36b850ac5bc6586ee729a8fbd32d4d8b20490392f0b920f47c81c50219946a03b34b79a2f71de733cf1ef9d88bb7d20ed3762e9d9a584edf4a8b7b2611f2ce6903fb0a3e4ce50332af1da2bd43ee3633638993ccac020122e1dc5d7df19c680b2f03378edf95ed31d91097a576d2d511036d71e453cbc88b33f482197183a2548ab40316f5864cbb4d177cc76008ef2083cccab1835c013af6583fed7e09b6c169545403a7903e14d0efeb6e37e74221dfc1f49dc033e528ae5360332a297e8391ca59be0394e0684824e44829db610a59543b8e91c4360f8561df4af514ba3eb6d488eb8900582003f12ed84df46937c3e9ef6037fa2cf196ed5771043a6fa45f25e4c1d87781104902afa7302dff8150aa03f0542c8ce72e7aeb3edf0e0631d2d87687e5abb5e1b3447ea90ce1974edca28000582003c4605657fc3564291d1afed044729772eefc92ee619cc034ede478e83591a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003eddd0a8bbcf643962fd989e9f7f3992c0cad50bcede400fa602e544955b1e0490fb0566a0409bbee1600582003559fabda34aea9e268c324ecdcc06fc975569b9372d4524c5c7de2d8b56ff05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200389f345c3fb35cc49edb3111ae2464a7f4017fcc7d76bf7019897b85b7cd4a0480b75637ad51cb1b400582003ec268c56aeb7238b87c6b324ff02c0a6ecf43f4eae8ac9e285b82f04b62af04101005820037e6875a9cf560df13b438edd127a90a878a5214535e8c20efadbd26411ff30499259f7eeb178d8d6a2036113f5da30422677bfab2f7cebef070ce8687a013a73761b8299e3d6c7051bd803267d28cd198b83a4dcc63b48e4eab7bc7b678d739339953809c6c1c296ad29940219c7f8034e7e3789023249c4b1303947d2a6b47ea920e81af6a8e1e78b70fc128cf12c710359230036daa6f3a8fad4d99ed39a6546664523c651161d5b8802b5944d2de5f103b2278e053ba0a30b03ab1832b2c5d85aa0769abdcc66352f36904064b804759603ebb65d12b3ebaef4e1f29f55a848152ca23535899e886044b18b619e2c76928003c6313faeeeecaedd6b51c6985b0ddcb72e3d490bf22e0e3e98afc6eb3a01d57003dfe429766d5b6b5b0ddbc34064f4c731c1d19f50220d8134623b53d0367a1031034e0b5457aad8838a6e45be8be3dcddeada5fc4819d1f05ed6ca550d3dd2c787c03452edbf0ff9f3606d18b568fcedafb79a00fdd6d210e678a871f331db40dbcae0219ffff03e8ffb3100f1806f4020933cee548fa3bc89834c3a2ca467fab92786d08c1f8b403d1c164f45c84bd73ab61f67e8b5b3fc64ab4e8c5b3028ee0c76e6b16a5bd22b2032b8771cb2098f82d722d33c3e702000a2f99227a9de10bcb9c9a91963e66da8003bbf949d8aff3af30fbb279ba931059f0ae28300837028d61acc5a73cd579f30703e0f6bfe466a20e8dadb7c7c976adb40f4324563591b77ee3ed4cbb03c7f36b8a00582003cad2e5387709abd695f98ac525b359fcb1a75af162884fca2f9ded105a5f905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003697184fee9793b7aa49a417a5de963bbf5c82278a841e37a3bb76bf6c846104a010f46284db5bef4c00003ed4679ae8b483985556627f94a3e3e85c448020a6fec28ee3e32b5facb399e99036e02ce359495449232ebb66f7879e956382b3a5bebcf1a27a7f72f816926769000582003f03165ba8428646369f00297b8538a6542cdf6f418c5dde634bb4f0ecdf8c0490ad3ea7e265ef4ac68031cc9648aadc7b1da6d11526eccef9479d01812b1e1e4fde486b7f41801b9c1fe030c2db95d899a2ae2d4f9f634923da3054634eed602f46b3ce23ac07dedd927f1005820037ce104c79738cd0fe53b14dd11873d8c2e85614dd20fd999525ef6ab6a17604807b688a1df3512d600582003c13057b8a6d14db44744c93c03043eb4474aaab45ed8560b8ebdc7a36bad105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003c34efcbaad4f0b757bef069ce8a49e22cfc22cfc6301942d409a957c9e92f0484dedae4657a27004005820033abeb64290ab23c3a630e5fb9c6dc4f7c3722d1835ab4904ac4b5d9cd029e0499259f7eeb178d8d6a20219ebe60307f8dbb2e3209f4401d4c474be9cfb8f92bab1659ef76194ead76f9b05d3dbd303e46d52906bd82eef8918b59e7f9fcd90a479980f49030f7efdc0fe8de670576303bdafb70e08d928be2861c64268eb94a86878bf6cfdc70a7b488e1f63bd30672a03a988574df1b3d458b81c778e4c03ec610f942fbdf2d7c05d6386d8203193ec550347b921e1fd0e6e05c7dd661cf4be490ba8888680453cd24c1c484ccb9d71bdf603f6b1210d83710632a9c044447a520320940924ce22c1bcf604df8d3b4b3014ba03e413c2177a9275d07f9c52533a0005ed0beb03d641b4ea1ffbff8c6547da0a0303d5c961112488fad4e0db1e6bd9b18d1600f0007bec0a4dc3f3b360e7e592343e03ddca86d57a88b156430071a4d2c9ca4eec4b73f4f9ac96e2c32e15be16b2e567030b3af11dfc1a72ad195a8d38df33ea86a10facebfb4319372932d07c71ab90e9038abcee63ff5e5d97a273458eeb923a200306b99406db9dbf0c4e92488c4bafa203efa40c2eee429f2eb63b518e6bd054cb3b7a4a4425723c097e6fb525f547dfd30219ffff039c9cee31b2f5ae08f35a79720437a5808924b4155de719418b1004c25c9773b403f2572eb4f749d322281e42b9f2370a07962d4e97d55902e2243723adfe576d5a00582003acd2ca35fa3a3ef16c3a324740cba6dbd63e6c67c834e60bafa9797f676f805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038c18e42b161ff6f9fdc63be131826253af227ac72f975fe26f1015716fe0a34f005820035bc706e8b667ef6ca59b634a84cb5282d5e107fcd967f565bfef4554b3e2f05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003ea9d16f6805b08e0cead872df091ac93d89de774bfe2557c245e10e84739004722da249d3f2000005820032e4ec615e6918f82f6b477a1b4dcb0eff4c7be4d31dc5f1d33b59703f6f7904906ad93fe3036f0b24700581f02758e68d8c8519d0d4e0f0043e2f855678a582065276ca8100a78c164a2084b01cc76a1d196687abf042a00581f0264aee8039fffd01f3488db353bad809e2abcab7d98da8883ada0828e125e4ad3c5d9600b59bef400000219420000582003102830002c4ef403f814b595f84af380eda8c01c5599fccbaaac36677a8870490f26c6c645fe4edc9202197c380335ac03f177bc5d3d8b78bf7e455f2a1c7a57775fefaaaac720e7663d310798bb03437272842a9bb1f9d16d8bca1ba16bad21c4de16317f80a6186bfdf5f364c92803b24a821484481ca0e1f837f576aafd3e13c9fe68fe632152d15976ae61fd8b3403e45d3e58e8d458fdfcb3b36c08eebc0ee09ff33883081a7ad8e8c86dc4a73b85031c6655fc0244356ed97c31f130ed7219abe3cfb20c08aec6d8291dfb61e20ee703d56e7572bb308044cce6fa437c215e6868202a1a550a19ec6eb3a42ac6e47c5c035dba0e8f8c195d6165143ea6fc2e1cd233abe90a9d7545b71f5a241d3c6695ae0058200338d85a25218ccf18bf42adad9504356c796bba802711ace31d795afb2e17b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820035edb935f57a10bb17e4ab84813a2ef432fa85eadc497adbdf108e98991b1904917b37c2bfbcba0760500582003529f961eff48243eff68e07e13ffe4434ad8f26dd505aa36387db2a16176d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003dd763e113012cd84af7d58690a512d6f34ee98328771b7b10fa9453a21aca0480de0b6b3a7640000037a33d609ea1a6fafa79349c36bfbedfd42e0d8a7c48a3aa6226be1d6ada310f703ace21458937204983630ee665b51d980d7569ca1fd5a69f9f31ba87fad63052a03019fb6cd06e4cea6c4a063d2bce935c96375fdabb99e0924b77b5933f859d4d103b76876583b3dc0ab3ee77b8d916013f162a0be25bb90ff95f729f2c35c3bd32f021992dc03c51312c4bcd784fd4ed64833700bf9f7ec1e237a001814b474cc97cdbe36c8b303dac2df456fb60365bebf7fcbf5fd2c494480b193313e5c71253d962cfd4bcc96030bef9166e30f70924d18eeab92755574d49e8c428fe46a9a657c2c3156b2e77303a81e6271e095d7228e27b640ea7aea024e148fb69b32b9def69f4608db9e2c8c0329cc082ee6addc0390498100fc8304c690abe7bf6fcd7e7764efd1474b36b253030b65aff32b85dde632bd8d35cae2320348ccc957da98fad2c8171b716a4d6e3003720baf69511accac64a0c6e7f9dc03e173be2aba14eb47572cca5f600c48685c0219ffff03f371b7071fa3583c845d832b7d44fd513cfc7705b5ba44b87e34d8045a47cfe4031a46ec92a5ece84d4ab7abbb5590e671e08f8fd57efaa08189ca19a6bd6839fb038b88951895b1c5719a140a2569ca59a294b90181ca45c61797bbd0963d2ac19d036bf8674941eac67ef389237c4c1541c12ecb02913932edf0d244faae7d7cd6b9034e5e4dde5afbe802c42c7d03759f597bda8e53aaa942fd6009ae061f01acb23203c7f4c5239c210fbb18e6964da375ff4b95407bd483c94049b89658045ad93f7803956bfa619f4acb164ed250aa72af84dd0b12525703dea3b6b36690d74b768f6f03f6426b7090772e67ddf9b6aa1646c9b048a3422d5162802fd9859e7256906bd10345dcfcde0be95917c2d1811f80e1d65dcc08f3294d3cd7964ae3e2043622ccae005820031fdd54faf40547a8da6ec1d325901dadb22d297bba49d9a14146cd7df5af005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0366cc0f898923621aa4192988e8f9ca2bfc586f54261817b1fdb01be9fa4b2d77037ecdb1a706af1690328462d95d3054c811cb76cbb1187de7011f29ad4f6028fc00581f0264f0cac3cf00a9002847cba1e80fb105ea09313da774b802e0e5b494ed315820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f024854518ca936863b30ce4d5e74b7e55caea19a36004b45f1ed4cb7dc840c480de0b6b3a764000000581f021db06cdd046d498e5658cf5675232ece515067287c7f30f3183a41235fc05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0212b8ff2d000cfd8a539ea939de37a1b4fa04e3bd30eca05d5467f7cd9c8d490565ea24c52317de5d02183900582003cdbbd49574bf1b97a0eff1ca4d10c77f6d5a35b9c484025050c5eff2048ba04902372b80046cf6400000582003171b2d33e71b86b8a0d25012fef89226a3e44944162133143a19674f6cb6404722da8937e3159b005820032fb59315ade1dff58119bac72b03d7a277b42bbf9c17142a1c60c9a4c4f2504904e29046adbaba180400582003b3e8c438e2dbcb1de333db008d003fafce5a70bc0bb9c3d2d1c771f160f3605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219a3b203603eb5d4116f6d753de8868353d060a0c1de562dbefb804f131e3058206d1b5100582003baf4c82361d897ba83c2f81bbbf6335b32d9ce7f51c964fb709425a9b0ac40490157b2ce9a3904cd7d00582003c8223f7a431d5a4bdccc9fa7450964b2a5d1df420db37d9a203d21004981305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003a75b386655a98a27ec2130e65edfe5e57fee5cb6de559b05b0b7dbdfa409005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003a154d5bbb2e7b411ec9e65dc8de0c54843c60b2548c4f43570432e1b2af7b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0364a08d8eb8b478a5ffa7aa94405ef75483c56a63df8429ccc5d979be229c334a005820032d409e11d728936d2f17c9e23ab8faed169f140443504bd01b7351f21770404a56cfc676b26bcf443a1903ad347258372519194d4489c646576f949e2c03c4ab011cceb5f04a79787333bf01410a00582003d23ed758654046eef6a4f4ab43542ee88e2babfdccd4b4b8e79766872ea2305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200346ca9e7860161d5b8d8d4262d8919862c3df5aa4c9f597ee25002cff41fc9049364a1e16042259b12c02195bd8038f1c200bfa4a10f1017fc5106dc7fddf643eeb037ccc6f715917761dfbe87b9003747d452e8719420ec0e06a7f7288741abae05d5d808de06e4c2e65e125f8a9d203cdf2abd65bb623677777cf45b2f6403144c97959f2649b816f2d76b928a7480a034426d802e4c46563a921c03175e53e605430966d4e7eb237b160095b36d27d5803dccd58f738d86ec8ad211304e793feae1bde494b170c55cc2b1bb69be4bf209e0219ffff0219ffff05581d03b5747a5f77b009914aeef855b2bf6d38bb65531aee20b0b40db813000701191d8f0219011005581d023e39b213dc6754a7fa756b53d78d6206d655b5854631c3180722de960c014713d2fafdd8c0000219010805581e03a2f38103676d86358502d9d06ed540ea5965d3411dd092f5ac973628e00c02474b579fad39d0ea03f76c5fefc30cdc6f03c142945eb51275ae4a5ff61f8fa096c61c15f42ff0a98e05581e03cbc2adb2be3044b73bb32693cc7bed1feb1f75da048a119b72417fc420040205581e037482c14c2a475c7ba6536eac80837e573d38bd03e5c44d525c8bc45b500c014701acc09859a29503aad8180b0919d8112d8cf4775542f72d3012837c54a859022de33a473e136b5505581e03401e8afe9e191242c1481f874eda2c53e20f4112d51e8918c6775bae9004184a05581e03bc65f88eae9787e5bfa0852f47312ef2fdf7571621ce95f78b4f285bc004010219ff610396572c73794a510a68c749435cc3c09370c1ced83843c3d2e88b7260f671317303fc2b32a3804d02429c74f18b5155d00312a2d671ae0049b1a0475ddad8262e9503c1213547b4d56b34a0c3d9781fd29f748216106214cdeeead0a232116992a420035fff540214e728fa042144a5978766f7d65c197135aaa6123f938edd714773e4033e2033d896d6c705fbc0bb9636d92cc4d006915a84ba1f3023b60d2b8ee9452e030cd45c3d5a37c8e54d8ea57b847eaef1dcf6d645388f198bb6af907136f992e60317aa714867a3843d5ed292eabafd6119ffb195501e5015699b2561244f952e9c031c8aa748f4990912d5d413abec94854fb0ebc0c425885936e326a129605510f5032fea3d6f90199e19804f5d28ac9f3f4ca94c7c749b8b1e64c6aed69249c7d75f0219ffff03525f6ee402526da73a533f749d3967af3168e584e5fedb810f640e1c9b4e413203cb25c00117984812e2944959efc514a17f5a25cd55c48daeb41272aef309a64103f617c94078372f631e6dc5868daed00f3a44814cb543ec2bc066b026f0761ac903a78b0ed5638d16275f0fb136216a4bfac93a0423e813a6c12773e551b6dcceab0219ffff03883e3db2bd03f3324a881d35f5a60cd9f261fb24d1d759472f270089170c02e9032112a5a9a02dbc95b500ff3538aea40360a0f119499398e69d5389b309e30aa903eb0d64124929e5e560b8846b0c0e8cd0a39496872107fb9401368dbbae9d2fd303358ac86d853492c27355b48e73e7d4fb049d67b079bb9d64d991748e35f148650360ce887d58a3d6d117729d64c92ba6ddeb297be6b2a26942cf5fda8ffc204717034204d4ae27c7ab94d233690cc4bd5024b2ebbd081a53f8ca71a7e3cdfdb3a8c2030eef36f180b2aec03b2c5e57b778e7a11e1f7c2c44dfa12f4b81dbe5c93ab0a203d309b0fb02527160c21ce45069df299d98a49ddf868b18edc01575b4ab0f72120343aed4a2e9126a0b0bde8b279d4c999ea839eb853654aa79f20251f55950be1d031eec3b8d4afc5ba0b0cb262d956d1c347e5dba30f8666f6842dfd9a8da38093803c1b2e4a9ddc3db3920569ba6c876a7619f3c5072445abb2098bbe0ada228575b0219ffff034a3201998243a359c00d0be62ad98dbd467141024a23598ea8a6eafbf6dd7e89035232e6cbc630b86ed8c29ac1d1990350619844edbb06d56b9bff9ce77343a09c03d94bd5a789fcd4fde848d6cd0d26e4bd88bb1fc843e15f9a0bb8afe9058a0863035701e57a6b13849dee38a9dc90154042f8ed48cdc4217730403c3daa4755c392033c38de4139d17bcd35a212bb2dceeb22de3770a3149077637f6eb9f48df2fcf603f8c693f76308996cdeb5877b08e06c840e1b3afb8e28dcd878f724ed17c9860403f7249ad40cadad8218c88ba17a28e2f254ad445a72bfec2d6a27369e2416888f031128cb10df99de429c464da9ec685e71726ee2c98897b7d35ea833c630bd0291038602c42a6eb89b96c3943d8386a47a40f85227586a55bc7d0311f033ab18d8b703c7721cf8725bb7694c7f4f87b270d9948e710cd0c068d25fad9bb8c819606443030f0208c4be5f441c7d7c17e8747bb1d656190f1637d3a79a7c58726d37c5bbce03e69a1f723e216943520194c276a7aab6bfcd00c953d27c05cbca81a01a3f45bd0371de1d75a46a587fd7ae7c677f0e170c9fb56a9644e752bb07fbfb7d37632d0003028d3808e21e436ed5bb25d765cc68ca26383868e1e610dafd98354c5eebbeb503b9c24575b902b7a1b323dfb84f2da5d4d2ab017d3fa87e88b0e397e682f2eaab035a610d0e19d22e26b145216997ee32caeee2335fd721b2964721c39fe4841029035daae91211412bfc280b3f4d48fdd5faa628d1cacf294392d00849a799952f74037cf7d6436d2651a72cb0b574b5155fab9d611f194bb3cb9603f6fa8b54e29ef403437a9d9377d490cbeefd3edefd79a5e6f0df889109e1a6b840463ad255f7c07103c9ec5253d50b188710b3e5267ff836d873ada7f8fdb5fc030d91e563a1f7fe18039938e4d264d7a3a64930629a4faa07792888c88c1dcb401aa31cd1ce33655ea303ea8f02766fdd2f5457b999a389e5299a8d4dd9fc876b4eac762ba0ac3add33a1038513e5b7b09ca959c7f2d334d9c25042e0c7aaeacfe5f491bad6af5149d7dce80344fc2217b7162965a1094ad30c70dde6669af2e97950c3354874c09bed790cc203d7d9bf6f78f4224000898b4e1fa242e207e8de10ac3c35761ad99aa664682b7a030808dd86581a29d5c8877bc22aa1445d2929c6448f9c23a33ab121db804b538703b17fc3180cceb77921a86b51ce34552543dbf68a06946a919faa2ba8165a23b103b5fdf3413973f69966d1f401cc92ce9ff8fa910e27bc063b32714e3e6ac0e2aa032dc34f5a9aac356c2e14f09c5b3c42902cfe1ef82b15e0c519b2c9102e148fb4036cd516e291b2a56cb99a2c037e2d852d4e057f42bbc22dfcc9e582c6add6217503971b87b4f2b66b50d88aca3a18d51b2533fa4a1b2c220d791732b7adf26dde1703904bce4a4167b1422d441c19b40464e2d15106096f1e26f29b8de18f515888a405581e03a5f77bf96528f5de53f6df64f7b8a67539bbde543950fa574396eac8300c01480e274ee833c87c9803e83ff2514c2a394745df0a76cf5b56e8de34c622b36c567afa853170e4d763b1033d00b71dad4b80f85cfdb7ebf378006c2d2024a2a09ecc9a30ebc3d16c70306605581e03f09aa603784f65604ce122895050ff39358918e66782becc1545cede300c0646b39a9407e51f030a8739951265102f26781f440ee3b36246792c3080a8c23842f9691f7067889f05581e034597ed302bc521116e9fdda25efeb2bd04b402d3f1cdf55a1ae21987200c19026e4817c6cd678b43816305581e03af349c9bb7cc3a08be5bd11d23aa8f8535982c1f52efe620504a586b100c01472fbf2df463900005581e0388a945741f1a6784a0497f791295a8e02eb22585178087815f8812da800c0446fc7804963560033296abdc86ab6701ab4248ca6a7e963f3ca57408401289e92ca0b2de7ea566b303141c2b37fe01772c2a2c456af8289ccad99aa097b588a8ce3dc04b4ec3012305021959b70313fa0bcc5b36e7c96533fb35965a4267bf7f0387dd5de5c702e0ef04dba581fb0331e7877e44958779b419d0e02384b3f650f4f6da728d1161db6d3551d404f5990399519848c866c263ba8d6685df75d2c38caaf790f0cd0fab00f8c887157cc6f803f6b2a907cb825d7cf3d80e7853a5fede4ca353cc32c44f7ae287e2af51cf995d03c7dd3f32645c05cd900bad0cb20b8a31e9118133c06c2326ade1f8c179a45423038e4fabd00e4e2712a9d17f38eedd8a8fde849a54745e6fb71fb5d1e9d7d1b7910219ffff03d4963fb40f485230fa10e06b008ab67392f9ae5019841a0e80d49a38bdd223ee0219ffff03c7aa97e26e5b3fbed20e8dc3da55783503d23e149d4d9bf09e47599792f9e0a70345104e40015d028b35b0b93235f8eda45802d7931b2024c6c87cee38192e076b035e3d27f1b40b30ca4036a2cf485ccd2818851bac574c2a35f07a472fa47cf51a03cb0119d8ba842cd044b8da542a90a40eccfaae2579b59a2906f42f111ec14ba003912ad7fbb8e23933deb5c3083728bd0386011028ed45273e625e0788b84324410333d3bda5af42fda48821f53b212ec2c375b0acaab51bfe288f22093adb9acbd003dfaf7f653d58d4094efdbb724d70e9e355653a8f3e5b9c32283b582342a58755033bca6c5d426b40dfb5b243009e51c30c1535186d83d6facd72fcff94603f75bd03f1251ff86a6fc52884635fd4687da0ef70f8d0c1fcdd9bcaf83c01b4035871050219ffff03f95d94585276d5f7579c727b5deb2ec63c45d2ed98a1eb10f9e970d6afafba6f03252944d8948915fa1a2cb7d71b44278bbd92944d12e705ee76292db00fdd1bc40388aa8543d7dad06783137dccd76fc5a90740876e3cfee5f8fa26032172dc669403f6734ac08dc67a957211f93746b999e6f5323f5289b397122f391e977da8ef960303253a7855e7725a427528211e1e3f0b53839d19d6e3b29c9d063ce2333142dc033002195480147ecc489f4429e093c23d3a5aae68c39747650bb8a30b1e7562eb0219ffff03ed2a549b13e76a54e3fa8570adfbecaadc82020ba52800bb9031436a23cc48410396715c3b727c6c0f62b91d0d0bcfcd18906a1722f4f2f32615d8c54a13c9b18c0392e02d5e80ccb3ab411830e693f54a783f314070b30d6dafc91bea546ac0f6f4032609b6672cce825a3a209bf0c45e061be5433518da38296fa7c4d700291f5c510349856f9bd9942cd7f86529806c272ee68d3732a7902791083fc164806c8e3dd3034e904d8720132a4a291fa014e2ed01554b826226dd9a6bf4d6500bb0f2700fc403e040210c9ffeaa6001dec1c61b1a7e50dda45aa8c127c20fff9f5129e239e0d2033945e907d4d963b0d3ca6c1ac9ea0990cf2ac577ed6fe373a003e7f1700b5f7c037651f48b4fb59abc4abbf9eb696837a957cbbce5ac5d7625d390b1300d903bb8038bfbb1bc206bf84bf71f3a68ed97896caa43e032a50fe828c6d66ee8374eb66f03dbc756926bd64f8cfb9b4e7dc5ec272364f2237c32a1f76758c7d2bbd090953203fc946f3d0de5e5eca268ccc28fc95d5464d532dfe50aaceabb38891fc5514834034d893e3d1bde26910634c7524273e1d3e464d320793a47ccdc723acc2856921503ce311d8240c6ce757f029b8f66d4f0486706f119d357a7b96ebb5a70bdcd650403e2804b3070ff7523fba6969128453669f553ea093abf98ab5b4dcf57e22b1db5032e6aadae54e5ce532e1706c30876d2bc64678099fd95e07630643a40d0b222fb039c47a2aabdc1977e06e2260c76fd070926803271f150dd561eea1e2eec061b1a03e0c9c66a798ed329f4b3eedc858d6e546c7f04474273e4ef762c35f72e4ecf3b03db1af69130c7ae9b67fb7a957e549dfe64c108d2f141a59b38349b621b506dc5036a2dda52e56b6d05e53cb307b0ae76abc9faa45eb5c42d31ab57ec2b49cfcf820393f5a3f0ce464bc89a4de65f6d1f039ca1e83242f4d7741c64cbeaedd0fe43e4039969e23371de4ab12a70720952b8cdb928350c7c85d981041c3b23e966364712033f6956d1ab458d9fd93954750e493533735d945452641d942e3527d4cc4775f0039f0779382bd70a3fcbb5e0c40999438b9c6c635cd796ddcef03eb9549afbc02c03c3850fcd3f94ea0ccce2c1aa617cd2a65dc6014222fdb052204c0b47ea3a383c03a64c13c3600c5b2c58c87a9968bb990337720f6dbdb23b34b78fe2b2a4b9187203d011086af8537ea52d039342977ba91078529cbdc344b70a812f703cc5dee34803f9420ebb78319332fa68e067aee1785de2b0833a90b7af5a576fb6a3c061e8b503be2803f8132bff0918455fc39f53d4b270cbc118c01fd42745ac078c6b0fb8710386070974ac7c5a73cbe2b7a5290eb1091638114598b9e6cfdac024c666a496e505581e030c81110d4e35d6fb018aba177c3653cddc9dee6e3ea429bb903d29c3000c044726f6cacd1c1000036323facbd138a622438d89b33aa04129d285e2592cc756b3d5154215ba59b41703fb5aa22427e811f565b75d20740df9f316ba4016b70d974689caf0e5829ccc6803aea7d4252f6245f301e540cfbee27d3a88de543af8e49c5c62405d5499fab7e503956513881b3295eec998a3570be8cc71a1a4cd23de2bcca87b72259936e04ba305581e0376f7be430bf9f1dc0a0efa404f4381a8451a9a49b23a0cf8368ebdd1300f014716aaafb2b772121bffffffffffffffff05581e03852bea8b5aba88a2d070b07872baaddfbc136ce2ea197ed369ceee24d00c014706fa93c2c78efc05581e03d72d7482150c9eec4ff49d21a3bc08dc8520feade2883934a006d44fa00c05476610fa1c0dddfd03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e037af8820196e0b8cbedd50129a4781e55675d31e89706431bdc376ea04007011bffffffffffffffff05581d02db4017ec41fb3511f66051eaa923b758eed5639ef485b35a3a94ac1e041205581d02e7e7de125680445b0dc5ffac7525c4bcfffdfe5a66f81b2d0ca28b0d0c1956c3481c477d2922c351680219042003fa5375208718800adcdc255c832b6ab01bb30aab475fc4087ce2d6b3e32f7af00395fb75b8c154fc2d338da6b4fcd6c90cce70a57befac467de3a04c1a1b8ce1200219f5ba03165c844738a33a87af12b91375424a94bf9e32ed1d3060673ca0989d95cf5bf003ff9092fb591c2b478a7a2b968b174fbd819578ad8c2d5dee26073bbff13a3a6f03dba9782748706343c6aa82e2069050686620e389364a889257e33120af953699035c3ab8fe2464fab5f37418ffd734010c0eabdd052abf2585554e5cbf784aca8c03d62ead1e5f424c375a8d44463c6ccf97476dd72e84624fce52d73216c5c4b95e03fd956fe488ff5d7e5c7d8ecbc753c2899a20e20556874f01021bae7ee968742003cb1fb3b1df1d22e52cd739f2ad121c634f13b7273541831fb52e419bb1a06681031013f289cab5dc8acc489f1fe6467d34f1a5ec6fbbbf7c8598165a81207a981d03a3da542ccecbc9f34398e747c893c1d00d279b62ed8c84a9e2d63e7b0ebc9e42032d9da525ed6112f699f5e1e764fb02e8dad2e4727b50ea948c19369d456397bc0306bddfcd241002341a7accec600fbc5eb8e926650171338f916a23ab9173f244033edd24c53099811a9337eaad803bb1acf3fc0c795a5c7bcd6e4db0c8a82da45103897c7284b3411d31f49828183f9bec9fe9514191cf0188c1b6cc8b64f4d1ce2b039262c4569c106bae8377d4db8c683bcb2bb6288ec8c12cd4c284e5b4d2f77fd103daa6ede4cd925473db10f71aa2b17e40645e68c56dbf7e686ac447c98f62b2b40219ffff03afdeca82795fe9da37ebc11de943716bb9a72048068fb555265f7413accca7dc032d481e3b716d2820b6b895de2b146a3d47188bb8ab914f3ac282f3b4f831bdf203e73ff4f1c32d00b1280bc39fb4d57b50a9d1554697ce3a838e5d8d3277eff50403d6968e83c4f94a46b6d4c8c28384ccbc606134579d94edc5aa916fbbc4c903d10340eab7b9745c749b4ba4cec58d01a8bdfcfde3d10f49f546637403dfc7c0eea50333b17ea243d81e85f62a194cf66970d2f5c563b154a7740a783bafee49e6c78503dd6e61c884704d05cbb497df4db4214a75dbc754224ffa8c38c8d468e93f41f4037418b120a0f291d0467ac12243176a825ee4f876e5e2571f5f678077f1da10950219ffff03dd1c92f2a3502843ed230045a4dd0db83b073953ee43296cdd343acbd24c725e030e8dfcbefbfbfe0b2a7e3a3553ae01cb9b997142120aac907942b6bc086250160219ffff03b606b22cd2705a3029a07a9740b63ff4be7b809346a99a5a6cb3d8aa8984e9af0372288b759d24aa179f36ba384aa2c6d62bce13bc0afeed42e80a0aff68e773d203a9a60d418a06919fa6c706d3b0bb50db7e891a7294a33b1c41b1f4b70116477a032bdc04fd18d70c5a59441b4f7c6372d638c0a951dc707f33a9dad6103dad66f403508082d9f252ca7a917ea267c78d724c687fc6d98fe111c2a22dfde6a60b0708039997d27fd567fed68b7c511425fb479cb3aed22d4f7fda1af88bde110362bc3b039a22bdcbde19ec71c25d7e6f3f62ef23a84691142a17058c84ba30dc6483b7ea03869fe5cbcd465b81b5f33b50f50e4819f828436240f6ad9bca8be7c787a1b5bd03e8322b9e4fcf3b03de64ed469c3a297e91d6351d53a23b302b892a38ddc65fae0350581f41dde3738d65a3df5c5736497ccbe95cbd413820171099f53357bf0d2b036b84f059cf5e0cb93bdea60fd5ea2a6d85f7fd1fd5f644dad4aa49a219823c23036a83567f054712b75dedd19efa699d7d70105a5fc036ed8648fe9c3f25ba5d5a0387e5b7d7155132e52348fd40dadae92b6496ba7ca4aeed4eb36f3bc7e236075e03d96a7ac2f5344d2810472bd22743a952bebed9950150c4df1d9491503f27884c03d9ddc08d831fbe50c9e61df99bdd4168e64019318c41c0b30034735711b6a7fd031b1a22d0c6db270033430c42a14d49cf74257eb00d3cb34ee2b590709cc29a55032c76000d0084f7b929b6ff232ccfa201b1fafda0ce6c73c64b62cf8ca7cdd467031395934522d95b987aa71658750dbae07582f0afb3c659320596e7170f277d5e03520f3efe0fb5511ee26936456d77f78a310d2ff081cad9a4c76a0980012f434705581e0392cc922ed717b9720e2bb764de5035e98092927eac421ed966a30ceef0040203667a6bfd77b5d09afa8037f3b5b6fff9cc1f2b347b7fdf86a81ff512affc60e205581e036440a5f9e6f888d1802172a16ddbf671f9afa916a1ff9f5946b3bab6c0040205581e0357768442fc59da05780cec4f2bf468408c72bc84bb6f33a7a43b8ab430040405581e035cff9f51064192ad3746f8afa61db251e9f84fa9a048788c6f081a00000c0347294408beffd00005581d029827eb953a8c78a844fa03f121fbd47b8fc8efef616afc8b421e8a810c182f47a2ce7b3d9a816805581d024567423a23b185aba03aa3e096f31162576ddcc0d130bcb97d5e6b2f04040219040202192a2c03f6052231a6e6ded2bfcae3e163340b15a9b53bd51d20258c620c849e1f8218ee03cb7033576373272a00d0c666010a48d9923cec756052aeb0d5b9ece327f5100803b835287e6d6392c3608cd215ab6d342162464079f4cacf42eccd1c376011547a0339dd28c34d6048d3a60c7a459c33b3c6b14ea57ad0c4be6c528908f9bc93782e0302445b550e75197a39c4bca1c12c000c0fb57a80bb275ebd81bcf1e0baf900360219ffff03456d14bf7c56d49b33f79135bfdab9f193197a410add9e0b942e29e6e67aa44c03f6f8a2a91f81cef4f9c604308bd3e1c91efff080e5e1e385355ae549f40dd82403b65a443fa2790a1219e6707d9d8d9f2b7deb94d460396e28ee668e4fb5ccef6b030158613e684528b67fdd96fbba2f56cee58bc739fab65d9efb41f49ed4557ac103fe6896f033637167b536dbec4c00de81204e3465e0e63eb0313cc436daf7772403fa6aa91b4cd0bd45837e2fe0e068070b07f95faae1b5e8ec50a9ed6b74da16f7033c61dd92b322e2db8bacdc27def72586e04d9e0153bb4da325764b6f802368ff035d16afb64a493627a936d5b5f1afc448763982fe7c7994122bb8aec9bea31c8d039a8e9faf01c8903a3ffc3a6e2960999c4510f303d51966e7209433df2cb6b0ac03470031af850a40f38f8d327f0637dcaf3a85d778f32e771e613e33c63611db770219ffff0329611481b7cba3fdcb60f1dd442586584f2ba50a865f7066cc207eae7e38b6020372fa88c82a068ac8ef2b63faed18fe5137869322597aea0b936f447c8fb387df0371f30630b5aee95885bbea44b5c04606d39245cafa71a0851dec3a5e47aed6b003a5e7f356e175d0d6bebfe5cd4c5e6627a2e02c74d5a867c66238f08b5c79613a0333a74ec85e9142b7a5f95f92d06cde4430f0b59b94ca37cb012a7b54c094d07a033cfe6b9d1868e57a5d3e89d96c94dff4b548f40469c7e4db39634c1120a35cc503c9873715fb7d9e4c85e1a1c57871ffecba7d93f130c404da3ae7357f5513e0a903583e5c4ced61b94d807d28fef7704c1e997cd51be3e4011d24ac8a2d30b6df1303d72f0c704ef0c40d2910d38554ab8766620b2fef630501edfe1af536aca807cb034f99a5952a7c59c5d7cf009dbdc3028dad405a7e310033146ba1bda55ef651f803404d3ffa434a8fbe4f5182a313d00fda7e954552c26fe156d90c7c374e6bc3fa031a576bcab608ab8c2b4a0cfca673330ce916ed8fe0e8bbaf0ff2f6ebb4bc865d0219ffff03cd243a28f96e0c0d000bd195e7d9c79da5615b689333cb99ba24bc07f043e52903255f93f27eb792354db251cdbc97505654183349e00734d042623f2774ff22a303e12cab2b71048f43ada0b23b57f1211a6ba3f676c27d9f7792e9d48ca88947d00320e7d9496c71b324622c37e159735c65296e3e5619511be45546c4a4ac6c05d00219ffff03ca08f510180c6432e1e87f23fb8041fd13d3a485abbcf0f36a55195d91bf907c03f86523013f69003d269ae7ecf978d38c33bb411fb9f3035993100c1c948167dc03e7aee6dffdefcfb4031cc63c690b684f0f5ca367a4e26efd1a11597a18a84d8503952170164413bc8087d374d7f87717e17ccc52be91a0c5dda6991a9ea05aeb6d036addee380719e3584698dfc276382e0c7013d74e7fe7467840253f0d613066d4038f19262e95e8e8046832764e701ff37fbc0c61eada4baa106d370eff83a5cdfa03fc6d33425d25f461ee7bedb216c2a7c23ec211ed3441fdfbd55a0c7aceeb3bc303f9714873b0bc313242b40ff1da2d566312ec83b684ff8666bccc115651577ab603ec104b463aabd017a45a9119dfd4721fc5f6979551a8c46f5e0c11baa3dedfd80399de08aee8b16b1af34e3411a2468a9576cfd8ed434a4ea599a380be19e8adb203c5cef7d071679ffcc73a8dd3b39f6d483d0d029fbc65ad4a4153564b5f3e73000389282b3bdfa56dfad4d83044e8ade6b6aeb9b119ae9fb3e1e09baabdc16f42cd0367ae40af9bf6d301c2d2128514408e1c35ec53deeaf816638cb28e06000fd1050359d196dbd0b76705c0ef6051120dfd4a2c4f1ca0e09a3c7fe195faca27f51bca03b4e6831d23b886cc811ff2828feceae0321f790f6392e4f38553e8cb550bb84f039990867deec97dda4a9a9e46dd60163ade30876db43fdd36ab904f0ed2c904430304b7e4300acd7191d0c927c61f8450ea12a926468e3f7d4295f83973de1929bc05581e03672219bf1f3da3f35edbba6d596152581180b206498a1fde1aa4c43f700c01470240da772e6a0003f33a6ef00434f2439025d811e2d71c1473cc3f2912b8143b8dd2a5268aef2f7905581d020786b6f05e76b88837ab4ef53a458c4cfd668cd4303c3c1e10ffd0bf0c024701d09f22f2709005581d022195acf8d5f6a41ed95be6a173c3af730309082b3ee31c6e5c316a4f040105581d02b88c5ed88f05b3425dd03b9e0bd39f3ce12fd7570d1d882cd0271bf70c0246ece89c9d76880219850005581e03e3fec94b08f897d092010922d1eb393a0de580e5daa00c3f7b9ee8c950040103562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03e77999d540746f9a789772ffa6bfd90b9ecca36074b37193709b371e6007011bffffffffffffffff05581e03189ad1eb8fec909197676313fcc0af21bc762db9c7e850ce5d4d576620084831782ecc4932800005581e03ad731f44739a0ecdb16be144c5528dc8632809d368596b59612ca3cc100c0a46c99cd9e1b5280302141f3f62124d453ad9d94381e329f30a1ab8fdae94b643c5719f610c7d767805581e03fb38cce8073b2757a1fe59e10aa954469dee268ba61845b3c14ddd6d600c0547340164bfba449805581e03aedfc772af60988e21878111719c9477b2021203a17b59a3c536c834e004040219d7b50348604d6421e0c0c3b78047cdd44f746bb708f1b5d8cfa6aae6cb360a4c969c0103cc02f72b117a51869d151aea59d8df763f4b52509bd815cb370f08c9b07108fa0305c03da83360e4127920d7523aec6b7fd6e8902ed65f76b70162c9733f57f5e403a32a592bf8f04c31f603c813e2250244c1d49be9f527e089e0029e33ce7b1a7b03f71e2eb45e72d48c0bfb37f9ed15cedb4ddcdbf70aff094b04bdecfc90446f2b03226e323741523cee77ee5c4e3bcfa86a6b9428c59ec4a946cd82b9793c6d96a503fc50a1d293dbda50331a26640fa46a2f3e3ca7653a0af98c2d2136083af201d703d6e71341f10554cc82d94599850da55ceb871bda4712297266a31c81d63774f7033e0948e813cd3d0d6eab4b21f22503bf10de7996564177af507da953a3a3501403b70da822ffb144f6e3054fe39c0ee73502863ca0fb26ae2ef91171c2fed943d5035e1e72078914229a09365f67af0aab63b47a940e95af4a1545cf9c32ad1c21880350d84013c5260db894c63d0e794d73ad22bfe78cb4d080ba06ec71d44647ac7e0219ffff030384deb494fb6da2bb1e99668d311cdbf703f49f5ca61a5158a5d84366f7ef7a03273d05873e623b5e01a8ced19b71c4c20263b18bb3da0587e3af0d8635992011039bc8864a17c9e137d4f4f9672825789dd658c28a2cd3f945b07ee1389e62ca8a03b8602cdf8030e752f5abec5a48e36b962c0ebf89168da08bc5e480cfe6e3db5b03d5ca5282eb111c8e552cd73fc2608f77820fb1a6d3caf2fa768d063bd68c5dc203c87addc510123f1f6a95a0f47f86db5536f556b2224e43ba746857eaaa63e17d03a8ec7e588041aeb5de334a392377a9aa2a1a5b46870e2383cac1fac07c45d60b0341e4e836ae28871940deae74bfb962269225691cfdf52cd06240cea9a465679c0355276b08e90afec5c11b31b11bbe4ed14a5318f626cf1d15d188658c138aaa4f036ccf8cf3f4721f17975f45909425a46677f0fa4e1926ff7237485533b6911ab603092e22bd5acfbb496e77e13dbc2aa3af039cd83d8aabfc42a148b07b6a4e5c9603bd2568db9e364292799cd70692a1e01cf42c30183451e8fe2297e5d150f29e3403b43ead98fcee4db267afc333c923c12240e64678c74638f5a18a5c606d8aac4b0219ffff03c7b74a59d5430a5c0674d637a64feda3fd950bd54679bff64908957b977530f2030af331203879787a70abc17266dd38a2c9e06b054bfc10c51a461a7bb14c889e03c34bfc48f66299dd8d221d9ac260e0201af141c94061110d1615e12dabe920c303fe5eb99d2d6a3970a6fb71a7258998df05d9e95f29bfb0d40b578d96f5bf78ff03a70f0752f4ec448cf4cdc293653370f01a3b8aecf46b0b37d11e45d1ec6c6bf7032c32a7ce261efae012971cd6d18a8479ea1ad3f54343b1b1bf26b17b51d4f4e40219ffff0305d03106512f9a8e747cc99970293d6c35764e291f82cdc6b765d61b14fd5f71039965b7c580484c9eef6dd538c5cca2bfff735164e262de3a76abef5921ce18ca034a4b4c88dccd3ec49e3fb2fc6d7a6fab104ab7702baae6e63a3a8733840c3fdd0344d20eef25828b672f4ee369b28688820363dc392e009d420ec181de288c5558037326e97e9e0ea4667ec8c3230c687eb732198cdef415b0839147acbe4129b42303843563be96bbf77b9a48dd8dcbd896ab2c370e1610272d0514a5f094bc2bd7c0034ff1466b7d340111b3041e9befa1c5bf337b7c2c5325434a94dc59d9d11665300329be6ac82a01d4084fcdfa13ee1a500e3fa8aa061c5b4d7904426e529371182c05581e03bd206b248681173b72bd90d901169b9a2c7ee48a9c59114c7db95c892004030373e85d54d751b76c3dece73eb729bedba62d37a95478dbd810e432b7b3acb9cd0333a6a3f85636bdbc5185bfec3104f6934f65d11c2c3cb43a82c6645b76f458bf03ae1af30a21312b72edcb045f5268155e027b81270fe04dc2921f94bb804705b70321754bf7895b8714445d33ee8983b68a6ba8fdd6d4e100c0d35d03c09ec29a0d05581e0334435c7481afc5c32870dbd4b7f7e546674332d4c0b4c484984a8af57007011bffffffffffffffff05581e03befca32bad3d6c68c1604f6d52a12225a8309a6313f25091942b11aa700403036835ad911684370d09a793c9c00b2f91466e38080ef88e08f96630b941ef2cdf05581e03546d05b0fccc920d21c5632bc13fdec3fd0cb2e2bb121dc826f21f3db0040304592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032032e2bc0c0ff22609eac8f10e1c8736f3e780dcb85055451e7ac674e2667ce4b5703858ad2440eda5dbbb06d6dfa46b040b9c521db36ad62b55e91bbe2efac45b26500582103764e72564e636e76c4723d44b5dd2fdb509322f005766119d8c207883363c020491097b7d0bb92db24aa0058210376f925486c6d0430e1ee8e5bdb91b87fe802bea0b6a1bea169a2d14165fbaf604a068fa3874b71867cf9f200582002ef8d64819cdb93c02cfe387cd39b87ee7be4ed4b02355ff30614178efd25dd4101005820021540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af4e358c74834d6139b8b3832d64e224021940080058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2005821039d38253413d41618fb5e7a7be7f922ad4f8e8dd423300bee6a5e85acfa03f8604909a46104f84f26a29a00582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5820857c0a38aa6d879824a02ff538fd38dfd478e6ad8b88ed72155961cb387a00e8005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a853123c93044b064d88588d5b7e196d6443f8112802184400582103f6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70410100582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5ddb00000000000435bb58a42e89cf3a00000014b4b1e74a70f569a65d370058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f54b8a87405d9a4f2f866319b77004e88dff66c0d920218480219bc5d05581d03dd9b6e5b0790a4ddd9d193b471d76542b6be6e89d4418a9150c5e4e00701192c1d05581d0397d20354a0a473d98123b3055d31a3505cc5d2a2e38b3ef47c8f89200c0146ac69941452990219800201410b03e7060058ff55118de60a0c457f49c286c154bdc15f34e7b88299c12fb20494490379586c717a834e00bbf49242178874b161afd54ac63fed2ecc27a75f0263094d05581e03a351584fc5052dd2285874f5aeba030e86f206b28ee060479c2fd9144007011bffffffffffffffff02191bf803938dcc153ba8be3771d28ac095735d5b9cfc3ebc3fc59c0d805a556cc1b1f533036ac9dd816077cea6a5dbce81e6b29cde589ab61b73bef6069af6c3891262a5b403f2e80d62d230fc2025f710770ce259092bc69ee9be18014af30b3d0878b0698803eb7a645cd897085252426b14b5d07eeb5a34bacdcdfb19a61cf83febadf7a69d03112b5f165e49f225f98c5e06b0c80c8ae8e1303b74e75d48a3a9b442932810a0033e90c82b925614a91142e5bde96ea837ecfcc416a8de8982053a1d1e05c0e13303f3af08ee7b8e4a5f81157010053be6b6246817d86abcd54573af2248e6da10d403e744dde63f813cdffa85f8e52edb1c6e54e47410cbcbda2d4aa90528e9ec8737032609d77285f575662de63831c9975ee1c727ec4b85efb2a932c33fa609853bd90331a47762b278ed6c1b2d81d1b2564a9c83dfa09aab1e9aa2ec176beb16c4caeb033004c5af5eb67e930d82129b3fcde0b2d3ecfaa84a73364728d4d2be655f9d5c033dfe38006612634413a75ea65141d0c82187771793db22760386576975bd43f4032d8296bf38d9b4a86c195601a5fbf3af42ff69c86800a43b52cdc69b46fafa4b0219ffff03b4ec16947a0d4667edb56fe0312eaf9721596b068cb5dd42ffba3f7105aa5111039649e1a0814824192cb9baac4da377124d2d0e07c0791238886a49a37af7b41003e90745d6cbd99022c8112244637831c524f6ea25a4f43784acfc215d9d8f164f03c539e301db81bf2d1b1281ec6d2ec6a51916eac9e90f43f664234106b7cd1806035941009ad3c74adba601bf82c24645dee29ea7a164992a2033209f5993ce3c140354abebdf726e279ddc23611f4295a0bf1d6489dc7b522c5b0b5aaa1aebfbbfe2035c238384a99ebf5a4f5a13063b77c942494929907c5db0f01f75a2945fd692550377f960998a6040eac2d19c5cc1cb36174a7db99bd86784761dfdc42382538551036726ed93c8f61d297e2c2b4e73c0a877a3f51417d2ae6a749b6baccabf7daff1036574ce8d6c93da97dd9e355a1eec076f99f523d89ed4f4e7351e29dcd3fabbc303a680cd7f141c7ee28bbccbfc61f55f8e71995e702f5755107da8de17a008db1d03ec7d2d489678eacde237d97b369ddf71bde089f10f48105ea909ec3a87f14f5903a8f707c57dcd2c36ad552b49b7ee66088e3b26c3a2f7e5727b04d044ed5d20ae03de67e6f10845c7252bbbbaf66195bbdd334b7a210616085165dfbb23cb4fd7490219ffff0317d45c21eb06fb68939bd180fd745818a4f5130df88e8e2d05465340254121f9039d16e87d62cf882eaa422bd5e4641207cb92ff59fbf41c422add6efb2483198d032556a2195a66ba9369aca107938fc27309b70eb1fdd6ad920ed1158f4ac6a8de03268bebc8057d960e941573a5a24b1a50d6ada31d4c272d784414770786ff9f5d032a48b4a9a37e1444b17e22f86824be5801ab4592f88c9afc7c7a98f4408492ad03b0ed0e1bcca046cc8f8998f0a29cf852933cca111aeb96b8291983132476c1d403574105ad076b4c7c55d1b0ae88f30973caf7b3dc936af463ec5e6c8b6a09e26e035b9ff8a3d09b9a2c94972436a85c75c190642843d260598a41383430a9ecdc1b038231cead6e538a1ef3ac8e151f8bcd870861de2e5937429c349acde219df4c31039f94291777455e9ffde9a81219b1ff73ab20927a8afd2a5c9099a6cfe6784eee030d947cf59f54139928bf91611b3f883a187c289b8695e37d4178b1110d95da1c035f3e29b828e258c75ece6a4aba7d9246e5b87c2a92f5cfe7aec3c43d911919a503ae0788d3b5e852a5c32fe7ab92d7b09321efddef68d7a2073ea29f5eb1adc458034a068a50cfc375e8d63d5c685a7eda7f74bfb24049ede7628b4668e91fa0a81903578f4516f232924e805ac56d016be6d5ee0393cf51f5268e16c82d154d799d740219ffff03c0355fbec974912d7e4a5e0707506bf63cfaf06b748818818a7fffb1d026a7cf0330968fef5c6f4e2f598cab4ceddff4e94161e666398448ca67410161ce93f93b0309e44c707b1f9ae7bd313a08b49bf80d1b3fedad8abc2fa97d24462330701b94030843f1aa29544ab76757e7348b48f9018c9bbd7e6884b1ca90d2acbbe921804403c0a1470118d077d1ef8242ce071e89178f953b1e0fea18f7f57f0372aa821cd103634e5b59e2c5bea79674633c824c9d69d6378f2c059a92aa744b6df50a6768e503f3ff05afb3751916aaeb1ac4667ebc71b62da7a5fda2938af2261ab385b1afeb0219ffff0334b23041a33ca5eee6301d5b169db4ba9132f20194707f9fd7a6513778f30c6c035bf96df20c01e5ab7e4444746418fa0876e7289801846ba2cefd2b37846ffd800368760a235a66983887d8883b7c77c5916bfdd2b19e5b98758c0e6228e73089e00318ef9b97bddd6b7fd7a4093eb0d786055f5954f92db569666c175495b3af0b9e03adb4f413ccabc165ae79da8baac3eef46ad5c16616f74a3a265e307c06fb3e8903afc3a35b1d7a9b85cf42c3214aee0dd3c53b3b0fb6813252261d351ce91505bf03451829a9c85a716692b57d96483476a9d1a8789e465d8a0eef01c26d11817a5c03ca4193aa817ba9f324a7a85d6e179e2508789b04f69395803c20fc359dcb7c010346cf04c3f4a060cce16905ced683afed91fe6a87e6037d34d07415107b99b34e03c0a751b24c0e05e188e221a89234b4ca2f0f6a26a4c533fae6a252cd9941058a037217acd0465de2c72eb44f8ac198dc4e9d608fe571a37e314c9c21b0b3b04e3403a05029d851b7ecc2b3aedca4ddc88233ed51e56a856aa67701a775a676d15bba032513df6b344b72052d149b15e3ae062300676bba59261f77bd8de08fa384e9a003b79d8627618e036c77bf5070e110d23568d038ae0064f72ded986979da71ccf50339303cb23eba9118945890765105cdac2cb493baf75c40971db37e501bce02e8034d0b11008b079ccaf11355bb43ae60a7d89cc0908ea31aca9c2aff2216e3695203905b83df347647f8ffb26f59e64c9f7d6053e68002436394723ca847e973ff9d03af024e332306fce984407b29789061ab6d66199f605d95e859ac7368c0afdf0503ddad5c21a198ed62da2764a492588ded6bec369a78574fb75c8165a2912e58dc0387972d3d38ae35a9809e2f98a778780c405e1f78c2abe7df3f7509aed11e9a100378546dd15eb5c2bb3a53a498d8bb2350be2388de88edae4af052463fc6b7769503eb26b8ab2ebd4b788eb9209e8a8416e99fed08985272304e327e33d094725af00352fba80a49a440d7dd04788519745538f891c77e33b2c514fceda4aa46843fd903bd7c8135777c95984facc347d332b208344d75914da2ad1a49174b81b68e5f6903a73bcc5a40407cbf1c836bc60c902cea46d50e32a5ee97b7aabab1bff1f2ad5f0339d03c2778d48a0319f9954d802db272993c6757f3771f42fb44045b49fefe7f0357fae8721cf976673dd35defb95b12e2c571520db7640de4fe02699731982f9503f6e03013963de27bc7c411db310b40b6d7d815724333ab725b1cb0adae59cbb6030a8c04c2d34252728e22b7cd84bc2287f058a2c9f489e40fb9a93d11aec482c00308b98ac8eb06d3d518e7f60794ee47512f82aa468675efbd1e6356dce8f45bc903553810f3c6785f3ff843caea758e875e37dcd0366a4bc3eb275a9ca1c61675b705581e03970d81044a547b23b0edd20ae6be6c9d4b28f23b3b7b702817cbf39d10040205581e03bfe0896caa5671c373eb401c4fc52f1b713ca65de8369bc7ab08ec10200c034701144f8210225005581e03cc854106e6263843215e9b054e46e62d3ce1140bd591bd5d353d0ce7700c014751fa737aae760005581d02dd01b4d2f9435c60072d5484831aee35b5281f8d6904ba6d169ed6a9040205581d020bc619dba1d63de05f570b401c87ef6aa8acb999ef7232651cf497990c0847331b4923c80a39031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581d027bdd59d5e098cde8f0483047c4d781501ac134a7480b50fef98a556a07011bffffffffffffffff0218a105581e03ac617c5fc0bfece62fd45bbe7c6a6b6643fb412e5f9645302459c284700c0147034c5abb833e5d05581e0307573d2a408d8238d25024688039914fc3afdc1cfb6dbcc87f97fb6c700c0147012134f8dccb2205581e034dae63ce3e4021cf12deb96b28f836b54ddd803129c07ad13ad4c2422004020392de005ab366cd0744a0542ad83aa5885ad3c128a42adaf9b5b8cc86f788cf3a05581e03e08045d233ef28bad7b0f98635407c38b589dd26e730e43003d44341900c024722a8e231ae16b90219570f032c4ac73cdce0ebedd4ac24fb44ede26505130e98e0338cbda7592ba0922c4a3903edae039a9895cf7e029926d3268dcc5ddc5e2c5f42c3added19d18c86c2dbbfb0355af4948e0a49967a2d4fe4eef42b6b98b2852ae51c4647de6ab169eba254e0203c66ea786b3f8b4dabd868c9c925f947c1eb64e1c26d4b9ef9a2b3cb221f1590203c38eaafbabf0341340a3c7af7d368cccf13cc33a8345ce7f5992891a235dff8b036180d6e53e143d681177467267214f24ea8c1b92e9d48612c98f4a36a73791600219ffff03229694f51ee5df61f78d06509c6ff561842ecd6707d9ed2ae0cb94b2b9a7b30803d71bc448c725af9aae4cb368df3d7d8278aee657e2d649b421dfbd205634795c0348c14fca6a193f1e35f30be323a3c7e93d7269ca9f9b0c386d2c22a04afb366903545217efbcd70c53713a60e89c635489b97ba638dba3ea31b195fba5b4d54f4003a77f0c23eacc761b19752b9c448e9edc867ac3d92980778072c6569b5b9344cb033d66af62ae687327324b2b334ebb00df8bcf7b9e3c1b1a3c97a9c1b93333810c03726b1beb359d55a4be7c8f6c1a16710c065f645740fac72e6a1d81e10f56d38203086e91748c1bf61e8392a6af1c346048a2a06808268537e0fc26d44c4bb9279e0219ffff03f0991487aac29ed0d3faa3f85cba0a53a3e6f603b4378a74da3382fbc72682760219ffff03371be2870b1b15cd18815cee5f559dc850490a83fa0604991c8ce90d73e845760348f9c75b1c66d1f7e1346d71149e2ad8329e9ecf2ec557866a380d46052968ca03e5cf2f402f2bf2d3d43aeeb32ffb7b44915174739e7bd0a1d3115b36f8f808ad038e7c5cff9504349fc5a755a52109b5a8cf51df5bf9dbb489852732c694909ad403610942a803d5a86a1ae77016ab80e05394715cfea3d7add5afba864521fe2be80342ca29147fd9f8a1a647d5756cc203e2438bf379d103b59b3b43246ceea3805d039a2350d09c849f7b798ffe6b8a286332bcc1cd511db526485b4996bba7c575ef039354d34b5b1bcb73e2b631ad597c346255c6841d84cc1e420306ecde7e78a14a035e3258a66075a60ef9b8b9f3d9b3e1e196df10ad0c6781860e9f8d7ea656ecb50331e6a0e368162942e58eb22fe8a871a67be240040784a78ee2614a9d628995c003ead438c50fe86afb8be2310ae78b1fdfbb224ebf924ef47f50a4a5162f1c174403b34a208903983f394f689cbc5a2d86040dbfc1408bd22fefab07b884155982d1031da496d1e8432a22c5eac03ed07afbecc0d4b5a10591955f3ff49279a451074103b069955624b4f19f2e3927a8bfd6ea37a7fc502a85c5ed0bc7fd2d3db13c8a9d03a9abec7c2ca294ca1a1dfe581cae04a5d48dd71028f085e19437935f7b455c11035f68082270ffc12d4676901a9b3c96b0b1c2b20f3ac391eb05aa2b61a81d4c8803ec7d4da680a10392cb614dea066060f6904025eefba1dbe8ec678b3447d85ff303a6162c00940a39bff26905e11c291378a9c57fa9b54f6ec030a16fe915c313fd03ed609393f17ec2ab5f6be7a861890188d8a56d9f99562b3a0cef13720971958e03d4fe2bab87c42a95b50a3f2560b1aedaec2559ef031ed2581117abefb721277503b531df1124bb4970b85deb690520ec3957faae292c1e827e42311f52f037fd1a0362ae3d46f0630562920f2bd7d5f589c562b86bba61a872709d25c89b33329aff0303447adcbf0c8e881cb9d0d46b10fd030ba7cd0e107db736a143006286ffe70e038b0d0f1cb23e5ac048a3b3de65347fac729c2a3ee37118f57b24b02f08942e8403ecf07b7dbeada6d270389afe2fb45bc1bb428a0d7f86fdbe18a7d9441400a58003a80c8f85378f0077ebf410062d796de91d261e7e0f9f1084a502d49f467a52c8039f822e27972f8eb7a800ab6789e3ab513a595d6f09bc9de391716ebead1951d403a01fc2b3e8beadce99105a460e3c85071133f75f88e3324b3dcd0a034e3d9ddd0360ca8bd82380d05949770dd0b963a05a1b056338cbc7e85fdc585f2d90b6c9720340be48012b69ce67755d22743366694e1df0bfb364aba86a8f582f4759db13420377b5e468d5462a6a9a796013561a9b01dc605b989c66b9e9b02db0d2973d113d03d00d16131f198a868b2ffc4a981dc665c630203cf55ac6ac48f8fb521910562303ac598682a3522069300dd8730861b86f3c507bbb316877fcc8d14c7a5aa2368803fa52fc5d52fc2d876b4a7f759b3c4778cff387a3796db5394ccb57c6d6abe37d03994a4d6ad4ce8e7038b62c52794163d0080a265113dce9621334f038aee69cc305581e031789bfa0daa96c1398231378330d2d946d193871be70d179284e07dfc004030376da858bea2650be06a39709c3b9b9b2583242dc94c1ff3d76dfb561357beca304590b4260806040523661001357610011610017565b005b6100115b61001f6102a1565b73ffffffffffffffffffffffffffffffffffffffff1633036102975760607fffffffff00000000000000000000000000000000000000000000000000000000600035167fc9a6301a000000000000000000000000000000000000000000000000000000008101610098576100916102e1565b915061028f565b7fb0e10d7a000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016100e957610091610338565b7f70d7c690000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160161013a5761009161037e565b7f07ae5bc0000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160161018b576100916103af565b7fa39f25e5000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016101dc576100916103fc565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b815160208301f35b61029f610410565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b60606102eb610420565b60006102fa36600481846108d7565b810190610307919061092a565b90506103248160405180602001604052806000815250600061042b565b505060408051602081019091526000815290565b606060008061034a36600481846108d7565b8101906103579190610974565b915091506103678282600161042b565b604051806020016040528060008152509250505090565b6060610388610420565b600061039736600481846108d7565b8101906103a4919061092a565b905061032481610457565b60606103b9610420565b60006103c36102a1565b6040805173ffffffffffffffffffffffffffffffffffffffff831660208201529192500160405160208183030381529060405291505090565b6060610406610420565b60006103c36104bb565b61029f61041b6104bb565b6104ca565b341561029f57600080fd5b610434836104ee565b6000825111806104415750805b1561045257610450838361053b565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104806102a1565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16104b881610567565b50565b60006104c5610673565b905090565b3660008037600080366000845af43d6000803e8080156104e9573d6000f35b3d6000fd5b6104f78161069b565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606105608383604051806060016040528060278152602001610ae660279139610766565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811661060a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610286565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102c5565b73ffffffffffffffffffffffffffffffffffffffff81163b61073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610286565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61062d565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516107909190610a78565b600060405180830381855af49150503d80600081146107cb576040519150601f19603f3d011682016040523d82523d6000602084013e6107d0565b606091505b50915091506107e1868383876107eb565b9695505050505050565b6060831561088157825160000361087a5773ffffffffffffffffffffffffffffffffffffffff85163b61087a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610286565b508161088b565b61088b8383610893565b949350505050565b8151156108a35781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102869190610a94565b600080858511156108e757600080fd5b838611156108f457600080fd5b5050820193919092039150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461092557600080fd5b919050565b60006020828403121561093c57600080fd5b61056082610901565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561098757600080fd5b61099083610901565b9150602083013567ffffffffffffffff808211156109ad57600080fd5b818501915085601f8301126109c157600080fd5b8135818111156109d3576109d3610945565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610a1957610a19610945565b81604052828152886020848701011115610a3257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610a6f578181015183820152602001610a57565b50506000910152565b60008251610a8a818460208701610a54565b9190910192915050565b6020815260008251806020840152610ab3816040850160208701610a54565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200b5100b6056e5ffc17e66039dcd723596f9fe3a99358830e95788eba2919cc0364736f6c6343000814003300582103d666a967f1b5763176446d3409571f7cb8edab8b6ab2f94d0fe0f2e1159717b0410103413bddc52086da7efb11d63a3cc1113ef53174278abe05f7403051c318d84c7f005821033a75adebaebd1f1a36cdfc7d3e94049d5921900a35ee2036b31622503817f210410203475b1452071748e04c02c632ced9ff86fb68f8e8d8f0f75a38a35c0891d0becb00582002df0bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d48154c26016f1166be7b6c5611aab104122e0f6c2ace200582002b6f8c6b4b3cdd240e92747067d3de37ae7421a53b3f55e9c398c5e5fa33f6e544e59e778a0fb77fbb305637435c62faed9aed40f00582002e2034297215a4957f8f53ee39665cc5887e316270929bf36f8f4833ad3520c410202192104005821036be4f155c5ef2ebd3772b228f2f00681e4ed5826cdb3b1943cc11ad15ad1d28058198735049f496727f824cc0f2b174d826f5c40819200000000000058200258a69b21ff19a81c29d7b79633e0a1432feb6ab6e8c10dd5c2eaecd09cb7704101005820023bd43f6fa0917128eb5082023cec0f39003bc0c80b6fbbb97c2a0c5cd381ba543dc5fcb0ad5835c6059112e51a75b57dba668eb800582002b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d549d624df2a423cc3f0425827fdddfe053d9a0fdf30218230371995540e52a579e2354e5c2c502fb357e082304d3de4e3b42734ffeafe4480a03d2f4805fb4a49c18dc267a7312e11272e160c440a9926646c76a06db56c8979c03a7ba0fa00f9c349dd26de0a61b4f68cd67253daafa0702a1c035e39fe99b339f00582103d496b6ea53501270295e97577b0f8938357c11fb3fd3987e150d7ce0471234e0410103c68d436587a72549b11b9b6dc6165a47d1a884b341a19585d615a952b220224e02191ffe05581e033215b4c13b9b3db5694a434ac83fdbf44b1e1921e0d10c1f996a64f8f00701190b42034b236b131629b79b4808e42db7cc9bc251d6090e6c570c7661692a4f34b2370f01410205581e0348d12eff8e98633699167b4c0d64db80d2f401dff2b410e2c4faac722008470e35fa931a000005581e030ada2c31580c0fb77f08b2c1aac5eaf0c01379cb2648ff32219510e7d00c034719e01f6d4ae80005581e03c7f6c318105e3f7de789e797832f87b0f792a9df0e39217c57a604a5500c01471c67c6980be40005581e037f7824d2880e20207ab43f1890885d68a19a99a8d0f36aef3019c0cb900c024701508356912000021998ab032e76881fe2afacfdd346bfbdef00850f7d222e836d887af6aec4df695ffcc62d0325a35547ff585c54a06a0749b91603869aeffe19d06ab0b898032ea1a1b95cf003ea86bb763b2a72ca425c1708ee4030d340bd78d6ba4ed370658dc35a051eb2880219ffff03362a48f57f4b44626befdb227cecf73338cd19e626f7fc8529567b4e391f0e3403aa9a1352ba3da7922c587a69c6aa13013544369a2f28e7ab31cf8cdc84dbdfc503c71410a85d98d2b9e7a87d9b7f507ee9ec6ed36a5afe2407be5933e49c0c3a7b0219ffff0323996670ac9f74133027ccef53209222822ad6ef88bfe5a53cbdc62c5c5d989803e43695b1b6f10fe7e3571c3f5cb3a8bbe3e2fba636c1651f533be06fd4d4ad4103b18bcca28f2fc26913bee9d4cbc48b54d5cacbc4ced4d489cbf9528eabc562f403632ca2000b0732001774dac220da83e35cfb0e0ffd98cd36af8256b604e2b55a0219ffff033997ab8d22cbab89a5fb6087e6fc17aed78928fe80862cda6e52ddf851105cd0034e5715988efa557fbc5da50b8d208766482a94305ac91a61e24d7e972c78d556038a6f4dd9e0081d958d4b5dfeadba7bd79461ae8fc786cc65e949147f4dec19230386b6b8ae885d0bb37afc4fc21a4590394e4568e4202ccc562860256f5b66f0aa0330b56839471eb15ae01fb09502edbbbe4f2a5028ce5e8dacf0493fefb3f3cb1c03509ca58e3557ebf64607ca3e912355fca08266d87e39549f322cbfbfb91bf3170329eadeb93a49a8d293a27cb1e701a90c0146360ca87e9ef66a9b4ee4f6e058f2038f4deb3b45ef4e2371503fe303762acbcb02c7e040dd365f7a3c8cc903a0bde00380f79830d95ae2b97d1d74960899868f6a9172d71cb58b06ee4ea87150c5c6a903d0db67423ea77ca26c4da18e53fcf906cddf2e202a2f3337c764d74abf954f4503485ce792cb154731bd2fe85ad3eb39eee5a42f8a6c3f799b247610877bc2bf2c036fdedc9a4e6542b297f643d40e1f8d3fc7ecd0acd76a301d535624be09c73c16032047df4c4ee99ebec69509cdcf6715099da3e914f98765f85806f02bb8bc608603f94a62b4e0032116e590236c1060e35e3fb1ea069bb7b93845705a4703520a9003e61cdd5c52bb1ad03e48a60f91c838a61f1f28992dd86ba62e3d8ed764cba2a303683d6ae4c5f4ea0ad2bd303f8a10c7fc23594c0b42fd59db7f2faf8f097703f2030383a2bac7b5768fb9d8f04a3bcd3e261ee051fcecc9ca619c935743264f854c03c587d7766ef0e160cead13076ddb2f2150cd88a57263044ff8fd47605d5f0300038f3bf79b0daea35d3da7ddc792b248509606829619b855d99c65c514d734c26203d5825d18107566298076f89ca50e69ab4e653cad812d6fbf5a2664f463aa385303f5a0145aadf5fc9ee75dc9dd92fc457f310af30fc6ba8d8c31b042917fcf905603a098bc246bc584db769e8bc45f402415baa096f4e3a026eacace92ddb40e965d0303b7733615cc3ed33f51c510e6bdd8a96daf93ecb09a1bd5c48cf014c960463503a54677776d661e6b03cf4be001b36e54cbdf7ed09b2492a1edc10b77ef02403d03de081aaeaff3c79dde3556d00651be216ec0db8f5b14ad1b1cd5c4be956479eb036434ee081ac1aa88235c2444c1d27944284876c443092f47c13906cc7ef7feb7035b98c146866364e71e69d8dadce89622cada18aa006d11faba54df789114289b031f26be8b36adcfaad4d42a594d4eba10ed887ffe27e0516e6e603b9326228edd036bea6ecfe28e9e02f8fce9137e121d30a831946c3e95c5625ae350485edacbc703071d29f46a7cd76904bd9f4c2939da2e5e5ff15fbe4aa42632fee848b0d5be0d03bbb6f175467680ca51ae9506cdd9f4f43c923528c567738b698e97db96b181ba03901af358ea0b8ef5af5892268b43cfc045c13f3ed8a5b1d0cf4385a5d6390a5703f15d126393f024d5e887b5e5b435fd36b3ab6f60b25cdde88b287158a9f144eb0358f3ddd97898091605105c23a96e10b86748075aafce6da8aa75fdc02fd095a4037f7133b600e716422483d7eaddcdde3a1bb0897616216de64294bbb707a3209f03fa2155cf91f94c44e0d2394cd40165791170dcf0b01fa19dd73d94e43b3da3ba05581e03eb6d363516d4cf596945bb18a1a1e5fb178defa464ca8f3480d7424dd0040205581e03cc3826645c304d8d03391c3ba3ac042990fc5685aa17d9c4dd101490400c181c4792ee3c0835f1f805581e035e363475c352c464cd64481678709dd07eed3e8150127ce6c967ec1c600c0142138505581d02aa24c8173cf945abd9c9b70eb7889b17cb9428a5e2e07adf40426f480c181b475a606bb1a4ce8405581d021546f780e19931135278e20d9a2e749d77f7f64a5415ad70a32c20a1040205581d0234d2b9eefb0250af543030185078f911df4cdb1780f681e7f2c156000c1822480185cd90dcdc72f50219404203fae366435bc18a98d9be329c4014ff2354effffcfb93e9a9921a9171dd92599b05581e038370fdfbe26702f59b443ca7e591986c913e1c1137a69a3f58a8ac11800c0146ef82c92daa0005581e03952a7f1e6ef3869ddcb7acf832152fee7a70fe5ed69327ec9774559be00c02470b3b4e03bca60003438e3792f3843acf0eb4c4f75dedd465a75b84cd8cf7bb65d2c477df5e29ef37039e4ebe5d50847b4ed24adc17b8947256ec444d63ced1518deee891dd60a62e3903c1d8e8af347650a5fe1bb31b8cbe0ff5cf63a7750271c7bd0a7772fb6fcf3e400310693c9023d0010f27c16d9a4838d7865640808dd75df95915802fbd1f22e06305581e038d72a759bb1967413c48adf3c05252ee175ba322ae6b45a463d98da7a00c0346faa15961fa800219df1f0342bd84e78f98862546592c3aedd377fb5ff48846d8945547eaeb8354233fe18d0343c52dc60bce8d753cc1e9141ad5bd35c4f2da6d75a1a324a1e2ca44718353330219ffff0366cf612e39e856f4076b46345665b2d9657d14d9209635bdef2b2ceadc84bb63032239dda63f123deff268737389ea64e40d045dd8748fb4f28ded528a0c49d4b6032b1e88937af8aa12c6c211bc4d9bb49016c92db400be7723e1e50b5f28c9f61103f97fc89ce6cfbfca298471a912ce4725a0573ea5fce313cdeb14993a9d0ed3d60219ffff037dbd5e97ce717962fa4bd55672692a39b9637d91fa8a4bf24e88d03a23ffdb6a036a191100e4dce353ca0c2f137b48470efa536692fe2f36033ed7c792c1fde5c5031c58abb034f1549cbad228d74bf37eb52c7552b754f7592bdf40b622dcf1ea4603b8c8105d72a4b4a083ca78e7996ae7bc7391e9c1f819f9b5a9157eb2f01cd09d0329d8a247926ffc46002ec1214625dd679a8130bf5a705815e054ffc26da3615b0306a89d1f95e5fb33cf047008440e282220ece6a799f4cfc8806b9b39ffb03ae80322ba0b6b7695dee7d9541b3a9eebc4a08d35157ea43241c2455c1c5f5cee3de60344e11a9d185ba2b0589c2d608cfd5cd3a7578d5834733c97bc567f4545b0732603043bb7789d641ea4c1f72bccefc0aa55a432318e1e7630aaf532db23ec92783703a0159e1daf986582e39e39fd3cdbd94000e2b758ebd739b23333b1d40e21247d0219ffff03e33175de82f1e21799fae5b67c30ee1c7fc4a09a8f8cb4e975a235e565d73b9d035935d473700584e6ebb0489bae4e9e013ef207de941140f04ecf9ec97bd2c264030cfddd619d9f0a018cd6c867d1499e71bfe40ba26b37ee76884c41287c92481503961e97c1fc1ad180d78d6b01f281c4c8a6ab272f5b6586f56ba12bef46e26beb0313d21ab312abfb1b404c8bcf51ba99acb1d13a157c7e825d86016a01b1bc0ecc037b6fc4e4ba603689bb271ba64ce57cea50a13b2f574a640840dbb1c24c21e72903f070a9c02c49fda39f2dc846a85b921081234a68e1a878d1fefc6a8c15db22270363f642842188b87f2dfd3a389fcc96f937d53001e834c503ad793aff8014c64b0394854fe28d598f962e306899d2cc1918870979e5a24da845486df910f28a06d30303bf4a32a8310dd5be311f862dcc2f5e007d8638f71ba8313f0e1c80779b747103887a44de995c8bd0253295929f373683a079c71d6bf81c8b33809f90cdd7fa3703e3aa61d2ca18eb2a3848f9da1a7c2e76468b2ad3696427ed09b5a472021eb2a6036edf61b9d759f0c50b3318e0c4376d85e5fbf8b5c389977398dc1bf8f43567b90391922fe3337b0e5d9bb6fc577da3e0b1ba4dedb9a07b24b8a5e6edb72e1def5b035802d69ec802a210934b0a6e41df0e805cc4b1117191f81ff1f438db11ab192903863e86528dc4d01100c0e610913d8da3020848a20f3a140f60d0d0d7f4ea223503ef45ca53bce65d1a69633b7e2e428537050dc3284d3aa633b30a5c3853ce6e5103c574749653fe7db7657693c14bcb55efa2720c42d12c0abc3629b2da3c00314e03c1b37404d0d81755a5b6a55fd8abae47169317fad4359c8279b24e77ecfcddf6033109ad7bf44fe4d974369d45d7131195e747933fd39c963bdb5399362ca85312030d02c39d55a23f170d1e9811db17d20286f1bd8f97084da192f2538d0af0c83203b6510f39277d66fe60af6bafd79b33d22e44c3c44636fbe7ca0e5b94d88b4819033ef3a47376ace8d2de74e00e08c89f612fe28f1c6999bd8beede86c8d43e63b205581e031116d1bb677aa9b57ac6b522ff4c8dbc6f14e1dfb0eea6b9a86e2e33000c0146c276a11f073605581e031c0a706979cab522eab383ee95b5e220de2fa45f899b45ace47147cab00c03474a5cf0fb8b3db905581e0346b3d6aa6b5b5b0b8a87394054d596540d7ca028b3ff07d125575c3fc0040105581e037f5f7b1d80f62252737a9883e46a91d6d190fff41162d5d7d8a36de0900c0246071594e9e86805581e03fc75874e6c10f0d6f592aba6d5dbcb44f1ff196bbee6a1d8f9f91f4690040105581e036dcdc70516c131b72191351f65e6b3c50f39f7e2d9503bf2da6a72ffb00c11462a424117d10003701554a6408d6a92df02879e84472819ed042e24ad349fa36a39be230fd6f29a05581e03943b987c7f2d1711f8220c2c8686a9dfd0615606b0efa4a076d17e9e90084706e2335787f00005581e033cc934ad6e509353c83ba714b52e1f4906c1d56997c6af3e318f4889e00c024701975cd86518000219ccbc03a5dd0e0359eac0174bfad86230ab8b8f2a75bd7969c323d527710d1a8b00d6790355e04112ad39ae009505b094ce063f5dbf95a29b08e17b766489a4e6a8e5e2010314838527de28de584ffdd73fbca547be4db847f785347aac2d24685451fbe4250336f703072b5182c1ec3e05b9ed68ea395649a08e0d34193efd1fbc4f0d4b3dc903d428fd3d7e7cb41461a65780537147226eb5f29dde8f0433976200bcd790bff2030fc3202949d87d43d557d3bcd834f4159c81430aee7aa991b14c2dc302cc6108030da613d2791b5796fd0529017bdc114e2ccc5583bb7d3348a31aec7e3e717187039fb3f0f54e142b121e9341b752d1db8cf7ab8c2953d56a50c83b5ff8b61cefa90219ffff035eb465d2d65a4a0ca60594ab76cc8fa88ed407ab6e791f97c46e061c8024ff5d03e5c15fb8be055b545ffbd48c9930965f466bfee7017bd17b6b215f682213909c030571327714004f9c788f58b7123c4be990aa0a894819ff01175e9a9f07c49e5c038b677484e0eccd762adc2c82d8b51364d6e3b2a329f92f53071b75fba04a477303e35c2eb50533731f818b31523474b09229b676e821289ea4e1aadae97891c4c40351d97f8c347a17512fb53d5c47e3149e5c184c735d7c4c398ea44feb5e22fc74039f6b62059c22a3f57b5768ef6fb40a1729e9881a7fa0e0d4dd898228858f51d8036b7241f5317c00781074e312614aaed9d897b4576e7e60681e47601f34b80c940219ffff030c277199f2a46786105b0e83011c33e7e2887f090909465b214f10332afbad62035c1a942c0328b4abf4a1e41bb728c3a9db26fb3df00b57ec654449d340e0f40c0304709be7f17cbd3d1fb816d13adcc3aebe1f162b001863c614dcacbc9b6ed06303140b9fa74f2123331435dbdc7114024994aa0c4d7b373f285735c134a1bd0e150377238382ff733c606d3a48da6e72371602796d7a9a109dffc41c506c2fa14e8d03688065ff758c892406eec53f430e33ef2622fb82c5af20ce1a0a16e8b63b80c003724731d41524c02e074f2ae46fecf76834e3852e78ed9dd8db30ae02fdf879f603ea180758b92a6a936c945a9c11f6832a7cd4ffbb80b910eb8943a118a4597e000219ffff031600599e14807f37aa77f1b14d591fc3672ce3c6fe298c856068e4ac4c122b9203f86c263582205b8ec7dd658af56b50b6af30f680dbf0dc3bb3e3d501e216131d0219ffff038759fca3d280b03f68c20ebfae07c1d29b6151aa9cc9f4c61c0cd4b28dab171a035a5dfe56004f64da72c35ddfc16202671ff8a55933850ca2a33b3ff671de2d7b03d896ee9f789bf488fc1fdd118b9cf8abae6c47ccfa478117d732239e1f6f895d03f63a44ccbae4cd4cc440f9d89d8e0acf8ecac396d64f14f82a59296b3cc08e3503f320ca44b1b3c5c5c6a31f45f3ba831cbdc02207a20b1bfb07039caaaf2c10e303620aad2a65126b2da91148f3a46df2d6578acf60ddea8acfb53d8168c9dfb14d031c6b039ab6c23404b20217b2b64c4c96bc830421d69618f3bde5c79521115b5b03516f7a0a5fa5c291fc5b3e73b4500f21c6607e80aaba0ed46c423f3bb7ed40930398068b18a1bf9c77b8e70a4f0cc018cc906fd3a43cc050d430d072114b352570030bbea60b8f8bf72e6d66f282b7c66840ed9562f5aea541ab0d1a2fa1da621d26035d8daf0aaaa8e8c4c7bd843e00942e3f76955c21b7f4cfd2ce1b0a70aafb40b6039931544d838ca3dd59a462198f03c0399edb540633123f8b14feaa86f27a421203b45b3b90b3a504431ebade2d655de1e2f10487c5943b08c227602bcef133ebfc036d6865d5226f898e97bcfaa85c5f3e4509c7e2727509ba07bbdbe69aaec619b1036a5782de857d32e6fe5ed5fa41df6e3ffb47aeba3930e037f95836ce57d8484e0366a47f4d3022e4360ac71c04292ca4d2f8ed1c56a6799b64ae995736494abbff032ab182eb078bcf7982e4327ef2c984d80ccb2d96820eafa131d5a9826c71898b03e4af4c927d65a496cb7b71987155bef594b2a9f73a71963cac615e49bd60c74e03ce754ee2f8df82cf6fba00f58786bfbc2958d37c5c088af70a4da01a8499524603108f9f63c0065444ead270c260ef985eb63a93c6a0f00129cc8b8738766147fb05581e0300bf94c3aec64d6ee6c23cd35452058b620387b9d71df91b7541051f80040105581e03430ea657a7c8bb23f6af8a3926bd7163eda4a0dd8bdaf3870b187f7b100c0146204529bbd198034b662d1282637c9f33c7de4f07022a727ef0939e10649a8c544c171bf4015ea7031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e032ce89c086aa6623cab0f8afc3dc3438aa16ebd8375274cee8f56fd2a9007011bffffffffffffffff05581e03c2f3540735872ad983e5c896e261e04b36796da9a51f7f33516e4fd2a00c04471bd1e07d6514dd0393799c904e1a77bedcf95df611d5df72626b14a408182e4abac9c744e8f7721805581e03d7d8121383f3cd6f88117c600338b72ce5225766f0551ece9fe4b02aa0040203affe208456e818f69a73122832d6db3a7b93175f3bf83dd7f080d11743c81ea90352b50106208b0dce3c80d2e9f04f9a259d491f21002b96e6e8bd8b57becf942605581e032d52458571bb19ac8ca36d59c7e1f2438b8a41dad84a65251b622bbeb007011bffffffffffffffff03f382c8168b98e6b4c04cd32207a92fdbb73f75586c5bc69b405d232d2fc594e305581e03be80fcc3c50d7b3733d9c2bb2294b13706954dd7fd0e517040ae0390a0040105581d029114ccb14f7d5562ca9204f7cc982b2bedcbb471b361b3d35b0db2820c183f471462872bbaab5105581d02fd496e01b88606f51dacb6a3039bb894c7fedbb0bc507b3310aecc4e040102191008021967bb039fda5c34cca249070f4d0bcdea885679da67a2f43e25020a2713c1fa135bd7c003b14f8cc735f63704c6e61e45b62ae75a4bffb89d6fc140071a97e2d761be6b3303b3cfc03363860699943c349ea06ca688dde24fe758f02f88743292b656fae7e703d49d5c1584a1a1786f552097e2238b51369b747a096449f98bb03e2388c2fe36038175965e6e2ea069290b31c9647b0a0bdca545f2a108de2e2df2b0d579223d7f03f07954177ab91deff2b344531bb691de9c8462ec26834cdd47d3831f18687c0b0219ffff03ef8a8d5794e2246866c93c7d428517a80f7b1a132d330e8e3e20e30618054f64037d2e2889d70ef64cc9be08caa69a7a900b5524a77021f4ca093bbd2210588d8603e05dd144ce8d69e89c65149f518bdb75cede7bc5833f850a1abb92bf593b6e5f039858db4d5efe77ed8d38690e0f635df8d9b9661195338a2eb42ced8ebfbccbc50393040e9fad8f79466e951757b2edf487c973af5480c6662c36a79d50bb829f07037c70069be490f7cdbab69916c457625b2b6371ea2baeaf0f6b00a99c9c273b04036aa0c6f803619c5d1821b3f02b61e5377d992176a237b062ec8eb002d6fe450d030cf31c4bded2aacca45c44aa5dd488a38ff1c7a6fec7f1a07e18a947e228060a0318490c95fd6aaea88e846dc8ab9981485659d2175de6115bf8d0bee0e82f837d036dfadb8d32a39c0bc3b6adc83351ba5956f6a45816391d8f057ea088ad0e43b003e7cb2679f9610da918062a526570f64bb3e9baa14bd4e9ecec88d31501753eec0219ffff036b62f5687cc15b44e95dae336c7b52714ee138e5e96f1e504e74f47f0e5ee80e034c7068c15aa911e2309365ef4d4fede31721ab9b91fc271b1ae8317522355a9a03d043c97a8391509c57672efe5a458cc0963ac22ee38b60bbdc9d23806a4240db03744fe2b3416a6c9c815bb607f7ad7c152308bf54a9d36efd32bf932cab5198c70378e57c4b817cf8026e42a410c16781f0b98359a5df816a1306d4206fa270abc803324b4646655640b11929110505eebca456f5af358faa4fd9bae723995b5dcc600329307f66b33592e007fb70b70309c038e4a7fe92cd357298efc15373e12df0c0037e87708324524393dcab91f895375080755acafacab18b36ddef4f939129ac250219ffff03221077ae1cfd4b6ac9ce58b6cbb5e090ec5e80aeae2648d072b36c2ff9e551e70355123ce0497b353668d977e15cff8661cb4f89e1a797303f93b538cd9578053c0331506b8d8e07a0c8b99edae02621a8d193f6d9680b34c3103a40697f67a66fa503861e73546e254964298e4d4a82a26d5dd666f03f263deefbd2c5fd41b13e3d9503ab14bbd44e2c16af7487ee55d40221166f9d83291cba1d4b405c6ed75718b65a035507daddb126a143756d823eee11fc70db46550370e414fdd251ca039dadf9ca03923b46c672897e3df1ab6d4818cb2d76396ab983b0f896a6715392055fa095c2034d0bafc760bdece7e0122e865a9cfd94d3d2a157210bc2a743699e29e53ecdb303d0c31d313b22261ba1b410fb6806c4104ece577b1755aa32d43debd4a9600d32031065485126c820de50c84dd45aa30008a26aced9ae6344175ee4e2218043c6dd0340eae69e83f9034c062b86e2887ffa38df72bf0309842901a4caddbb2133591e035ed805f1d230d215258b59f73797ff8b267992d9b5393a43c6a2e0cc909a65c8034275c6914ceb45f0fae864e7302b35f6b0e1b6f819c9c62e682a89c7ae92a91103e85a7a14590c4a8155bbf229f9cecff463a8dea70e4b611edd4f22be234a1d17035b2fbab60a91f111488339de30dce549131d74e30a8285a80cd0b3a042a0f0d50219ffff03705a4df036d8b3f74b6ebee70d52d151d4ce58abc8365f38947fe8e544cee0650344556d833d945f9bce9f9e0c36f63d2ba8fe26b307da8d91942fce1992163f0c03347fb1221894792fec0a6ad8842b5f22dd1773031a6d662ee23bd13d79d6937c03c5d34400c561586cc62c9a43bb1f903c8615724ab3f86913ed36a9b2601038f003e3229cf5ffd475f9c708f88283f8ec5eb38dd26da1c116af67b8ab411d2f5b1b0392f64309ec6f99a7edb929c89b276a2f8892306b9bc5a367776425005d956b8803009f4161bb84296fcc0d8b5ce18aa03c455535c32e106e38d99c1a599cd7a4500368b225221bc7a341ed5b63712277ea030f680518047508aa47712bb7292d460303b187acbf9e111f6cc6540151e577ccd9dafdecaf8539ade77bdd83d215a890d403625db1a1a681d4664afb93b6989dfec72d0e5a862c367b236027d1d7138e6c9c03ce5105f2240cc1c57c310e9425303e0f0e6c3938a1b0a68ca9b5767479e3eb3703c048357eb8e47b95dc725702e81360fb9e553e5a4ce0396ee4336b32848f205703d6cc2149f231eaafc39b8da757a63349d271e183078d9f0ecb198bbb138fb1cc032deb4613ac29940630df78d4cc867cd0425d7ee627535e86dd86637496b3564b03697eac6ef7eab2a3ada818afcc8b800a034ff3561efb176677d720240283e1c603567d95e59284891dc6a3d78f0d58f7b971c95f7e0da44c5e5ee25bc238d462aa03f5aa4f380eb1bf8f42b6d5a619bd544968c4c29d770b28473531c8ff879c81e903f572be0d42015148488632de0118c676680c39da9125faf29ea6e9af0b3f523103c613397bb8399f717a40c155a02a2934311779e1c0d1134fd433b1b8e3d6145203f7bff8e1fe357c97ada943391e67d7d4fb64ba4a2c92c73bd9c5503acdcc48df03bbfd77ca46a834a75c0eeb284844e1f83dfde32c8d8e7ec421d1bbccb056c02c0399c9d8e1e8eac4e496197ee1a3dbcf60377215f7bcc79972e270d4bd190a0f28036de33d62f063a79cedc59fb338a0a1a26098a9b3c4410a0c23c9c71ec0b9ef760370656fe5d527ff01b40ce4bb400be75661432bd507e11101980743ed862422af039abe3f19e0c1c670097d98b645ae2d0c21c03469e9f1debf2bfeae46446dde9903ba486284d10ee9603feef5411c1603d1b1b3c78a72f4188f107960af33a07ed00324609c74969f45e849f24d4e4f7558bde1a084aa96a60319ba90a44ca4ea985b0394b45943c4a24c8ec72fa9d2379af58d397ff63a0d1cae239b3f3f58585f89d005581e036bfc9f865b2c11cd0ac860a8036112d20359dafa383d5280d9175ad4500c09478efe15c46bfd4805581e0330044b6be58043e2e4fac343e25ca04c5f04e1dda9f725fbfe330428d00c014706a724a5a5510005581e034b73d81fc1966536ea53d77b17f9fd08975c92977d57ccab8bc2b4b5100c18194701a566b3607140030273dbc9821188eeceaa4697fade8846f643c7581f54bc34b59a21ea20faa27f05581e03a5a35888d57cd2dfe66b0ec0dac570a3215dee91dd0f139a8cbbeb7e8008471c6bf52634000005581e03427e4a5431f4fb0015e3e203e89169c769a16f9de519fb81c403ad2840084708406b70183c000368dc4fca858172c783ca0a0480f8874e489dfcaf17f2b3cbfb1bb792e8ccbb730219d2130397633ec344ffc6d510dd2e6c966f303c007205d607a57bb0709193840bf46fb3031c6b16f132e2b0e4b6afa267e1358a3e495d755a4f127567ca35cc2ff7b83b9003ef76e2ebf5686f79910cd9d6bfdca7faf9d12af3cf4574a1da2cf9163e25aa830219ffff0368d588d9d56778f37f8e261d20f4f00af57ed0eead585176c93aa75f8e49b3b703e1b2fbb05d7d724ed22190de032a4dcd742227ab3a8a1bf8e0981a8209ee7f0803ce62786666a1702247ff1335ea6926eea34538d502bfef053c2163392c9f7dde0379bb894cd665ab5e62da82533dc8f44fc1a4756091efcbe0ec14115c64c320fd037ee4b2183cf348e2de92510c940c9286c356d6466c65129374bfe95a51a53f9403fa96e9719ff205e43fdb4dc89a8c3ff001027e847035215bbb1e7c2c267d42cf03cb68bebe03d9b3a46c4f073b72e33f94f7578fd6163258dac930e23ce0e5d8d803ac3a0671359ad3b0f6176b9d7b9d2e6d20040b218c41c43b208b42090bda5bf80336e235d0c7a64b850e2767266625e4d5c2a131326e221373bcc089a9093861ac0370c093e066db1066a87d604c40ffeb0b051d96cb803c537810f5ce2f6b96e74b0339b8ec57828cfa1891f6850aed8f183fb0ecb6509eb17cb7519a7e81365d0745032fede543c77c7033e171de7022a6de0baa67398728ca0f4c2a45d720dd7a71a8035b52d3cf0a39f89aa102f2e41aa9dc7d58c13cb47b5eebd8157c37528a93a4ff03800aad19176e3f3c33b10e894d46729c00b2a6341e6f2a372914042d1090e8ec0219ffff0358599cafd0ca6a27136ab2da9bab17f57d8ea4b6b7085be91e1a6efa9a0f4cda03e41e5498d86cebd6be7960ca43a676858415d4efd26248df6ae121e5a968fb6f03916860cdf2685ca64e853d1ae045374c0bc7a0312c6128bea1b590fad5e24056039982ea9b11d67b2b9d97d31bcfb9e290376636d320a8a1ef827177185fca89400219ffff0378304805bdf17e66839a4c61964a8957971c93ed581267edfb7e28bad0df1721035ee4ceef865a59588e4f6d696423ca874e253e274799f9a40807047b9a4c787f0370a091c8cc150d12aed9c384d9bbd7f381c626fdef9fce761a154be33a568302031ea449eb736e74af987f0a52ca700b1a6bfed1b164ca682dda0fd91dd2db82c203dfea544de8b74db0015636278f234121d6a818334ea6c9722a70090658411acb035320d99d401701985e01e184309817f77620834b7b9fb96e74e0518d5aa899b603ef208c27023c1d02639cef809e1a4a539046ab60eb2fa24baaae4f529ac9521e03fd3612d52e8cbaef5fa2ad329f2aee1c17b1fe853d4f63e979ada622a7564a05038addb3676be74ca4cf181e4cb4a5db59ab123c42aca13d5851fdf9c4331df65703c32d1cb8a46971d4ff9134100c6cd8ffacbc71811484377da9da75f1f14ba59903e96576fe1d68ccd0de84061402f970c06e5ec0e58e5144012c1b59bf66ce96180301284616f270b4b4fd99a31b40037ff0c14522c0883ba5fc14aeafbd60e36f7203db3623d734eb29d81e5d11d5ad34e9701d7cd984271a912e4232f0dff4d61345034e5a1fbdf3ad76f20822c34d324360f5f85db136da2c47517ddab4414158d61003b51652137be243f28e962b0d90cedff6c3270490e57d5fe7da30ca0addaa686a03247b8c90142b34cb54aca2a7bf917b94f9a80cecab20aa052f99e0a152fc113b0395305bf0ab0df9e592b73ba28b896a4291b31677f1f6f6c4529cc40c5d22a59e035b658465ebfee1b0fc603e847a447b44acd7fb32d6b905716f0910bd7a147de803eec28468e33bd549905c9536a3cf603a52df09021711c6fca93f45741b80e59c0309545dbff5065db83674dadbb06bcedda6d056d63cf99d6746733d7584f0052403b6e3db0e1038d95ba6c1fd665e38089fe50e95f5d9bce17c4f68edf84d7662b3037ab4db41b0872a02898a9fcc34fbe5002377aa857faad5d2a2aaa927e407f4ec036b7137f819a8c5f8f8a546083d3ee68890fa4e852502e4b0e9181712fdea3ce503697e674bb1cc39bedd94635398c546d25b6e4723a84b8f57f99aedf0cb490f6805581e0398fc9f35bc5f6072cc9eec47e3c3faa791a0ae21eaa123470ceb210cb00c034620d21924478805581e0385d94d53f659e5466dd23951a8774c13ec4222982139cd821299fcb2200c06472c5e0fdec2d20b05581e036153dce9bb23cce691dbd098e770ee33368267d13fb344cfe739dba2400c01476435d65bf32ecb05581d02cab273fbcd52db1f4e35e713e3ca51b7ab34eb7c5065fa71fdcfc1c40c0746a1bf389661c8031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581d02b35a71804fd9abd0cdae38897af4b49b5748342da9616a69314155e307011bffffffffffffffff05581d02e28d98c25bef2c454507d3ca55a07da1142c2d7d994ac5633d76ab140c1904e8480fc4aa0365b8bda605581d02db211404c806d5cfc763c6b9df44c1e9cc15e68884a1497a78b4bc590c024701fbcc82c21fb80218aa05581e03e05e2838878878e16c54f0813a1248fd7b587d8ed49646a179345e99400c0142138003991ca67df4d83f657425423494e051b564951a97ed9c9c53f677ffb1a7e0036605581e0377d8c8a9aedc46a53230bfd718fe59b085ff680c70652c9303a6bb93500c05470528775c66980005581e03a82be07b0ec957af3f54cf02526ffe91cb7532427336841e014b8f81d00401034289c496e4c3fe8396dd265756990041cc4e34248949663fb37a62b4a9c15b320334703aa7f3576b34dfc0059ed000073015428d78d8ef7191f62066e6f963cbe305581e034f2f030f3e0cd351033f2083880607190ff337c5414caba2319f05ee8007011bffffffffffffffff02195db80349b1c7ad66b269a1a6b58adf729cec4ea4f62552d956c0ef8d6113e0381ef5b40385fe2b4ed2f207267ae22b0f5c69e347b7356718e417d5fbcc3d8c16ca4061bf034232e32af52897298b9d4911b4f569c444cf3c36bb8d2426220cc9f645386cc50219ffff03c2f340bb0a33472f2557413ddc47ab8e491e754802ebccd40715c932e382c2c203af64a605903bb52a2182e4b84a15ba082353ce9a501997ba6edf49048f3705e603fb377bb8dcf495d28ae965f6713ef28916b9ccc170b2b5573fe1cca585bc632a0219ffff03490e56e6aea27b9838afeecb05272d78191989c241d08ab97c0250b41d0de93f034d9b35c7ab8b27e7780f18d7bc9f6de5caa615d1834fc69342894d814cf114b403c2f6d45ef691dcb071c2d5907edf6235ee064592fdb71fd8d476e45d8fff71e40327e12ea5b2e970f4572b173d054bfb92481cc72f763d536a4e8c00c863d2fe4b03f09b4a9265b93e66473990e1dc85ceebf360fbf07c0ee4a795404315c939fcdc03c80a6fa0e3ac123854a8d93aee0b1f4e22587be7fef35696584f2039f12c7b7503d9519ca1f067185106e098601736e3bade01ab72f84efc1bd39618cea33e205103f325c24b8826843e13ecb96752174c032537863e69405c9a0ab81922e10a8dbd03ff0da2002c5450bac23a55a2f2eddaf20a48be01b8f1af2c88452cd6d325c2c403779a054362845ad11d44f9e93855f39caad26decaa4ec9fc4bae0520542affa80334109b4730df055a6ae4d24e58d180ca3344736340b870f9b7a5f7fe1a24a36c03c30ff41eecb207d5a3481cc86a499431ae83ea5cd0a96ed46200126b4a6c3e9605581e03c3dfdcd38f82ad925ec706720cefda7e4b5c0d16f5076c7227933274a00c02471e6ac67af0f40005581e03323049ab748a5be441024446dad16f08dc911971b5bd820bd64e96c1000c084654a8dccf120805581e03e3992fab6c6c26e424179ad574594e5ad6fd32c61998e89aa1cab58b500c014661dc93c7200003676601a32b9fb64405c075c60fab53d0ec2fab595f9901923301e5c0cdef6a7805581e03c297e98c65149b18dbd161bbc51d694d5f6154fa2372428b919b7333700c014713d2fafdd8c00003ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e036662897af4be2ef441dc30083ff14b652b9318858a13eaf6d72364c08007011bffffffffffffffff05581e03c9f64dd084f2cf018c7ccf96c7b607095933df4eb16c29c4cdb18298700c187e476aa50ff9eb2d2505581e03a918622f89121de0e6f2905aaecc341b3ba70795599d4f6b0174a584300c024702235de209efb003c76eeb2dd86a6667299a1a795fb66a365714690a84ef64d65d5aae0b0d3fd5e703b7f3c1608b68dff38ee143d3698c1c2bf3b889e5b8f3d705852d124fc852560905581e03cec4395d685a2e8c08607b621b4330650ba0f08de8423bd4c1f8e9bdb007011bffffffffffffffff03fab2ecde6e284f7a9c5814b2b23054da8081fde26489f81e377b0b913c515f6c0219556f03d6ec37cac84f23bfe101156de963cebc358e3b60cd1a0ac6c8f56b91e635882a0374b5fbd445676811c70064d82d8f4fa9d247aa0a00ba70dd43de62aabf35c9fd0346b97e46d0bf79e0632b4fb67afa50818bd643cb89d81bff1c8bb76c1348ba5c03a685a9714fda16adabe1295633e5f1c3200cc6ec3976cc391f16e50711d8940703299550319d671e67c7575a627b5db4a87d2f259b7f03468ee494825bb4b7bf410314b63763a1d0ed7fbf6dd2ae29f3292d6fefc39f308063eec4cc25f33af7108b0219ffff03105260d6a607e89b00e7b6bc1f89fc44b3c470a0f5448e9ce1eb2e9cd0debc7103225e0937fbc970b560db23bf3becb8688f97afb02891bb095db8e5576c5e7178032994c64ef806e5a93554535ef21dc29ec81394502164079d4c5aea0b4b76b7b8035a27f2f2eeb9cad2e472cf65a49427f2fe7de8c2b201581e3db5c37dd0f7203803b5581f9f7fdd8a1a6348cafc912723ebfd9cbf856a32a0e8f37f8bdc353128110344b527cc5a54b9826635cc08454c8fef8a6ea3e568e38b5f6b97775596ea6ced03c10a7f1a484f40b05fedbe0fc990fd4f3dbe7b5e6d03dd19b991417e623630b40344c1623ad9f937a940b0e45a650a9508328bdb2585ad830680b22231a81d638b034d9e48094fe8c2f4355ea340c3e44be017666c8213f1a642684c8d4e51604bb2034e694b0687b829fd178251bbada889dbd4a4c32abbef252f59e0f766ad665ca8037f7db64033d79b4d7468ff99d5a5b310e45dac76fc2f80a19e07be45964994ba034dc175d1daf6b546dcdfebf69280304d29887767ba9e18f46d22f325239764730371d97c0c20c5e0cdd93e78afc3681ee182f0c260f11d511aa0129976bc717ccb0303add23e7fbb0fafa770a9754ad7b50bb1cfcd7b349bace672f4b28f4ff4f29203835dccb1d1ebdf5b8a67b29328d7a34d98e8122e3eb17cb24809690bfde122860219ffff039b4954e1740cd0d17bb6ed25848d2f0a1e2f2eebb7aea2863bca70b493b4ceaf03b38e139d42dc6f5f54d0457e7608e8036536ee6dcfdbae02cfec277eb766aea8031e7219788a4b8c10d1529d5e872a58fb86405b7db4a6c6f3fe3a180f4307ec6e037311da79eab2f6334f1c3f114890da743b3ea2b3fae696d062f1c2d79ba2cc3d037940c0978e235307f5e4a7a1b2b9d219b6e73a56d5f1f531f3464176b25fa2460363e7a971f8a90f79dd219b9f611f2c6c16c72317e29931841f40f804043313e303ce6a60b816622d0342eeda5d72ea9006b35fcf955df61f1c52cb38cbdab46015037552d0742c6db32457810f1a572d028521de892ec437903272379b85589252df032aafe640aa07478ad4ea2a67f91f665340c85cc32edd2b1c71b67d9a51bd2b9403e5e995fdb43932c4dc65f0e2c59964ba4cffd83c86d9ff3e0ef31378f2ea922703ae352d4e73ae1ae615eebdafd5007b33c8f7b249d8b4ac99eff5d7aad224b8c00219ffff03be4303482eb6214a5e558e70f7805ba7b038872273256dedf32c1c4edc44364c03ee5216510d21d520adad8e2231c3a11771c1c05ca08484d58180982011e56e4903ef1ed80aaad6b7ffe39891a8a17a262ca43ff365f5593645077b9326355c052e03689978dd990cfca289d12c1d35cfae421ac783816caf12132a3018509fcc44390320ebe64b8181102834d174093797b851ab1a7965489b0ce6c61dde95b751e14003f955e9b152fedfa8a6d65e1b4ee08728c28cc73a2ed238b7ba62193f4ee5b3fa033f78172f08e19fedd51a6091d7a5270524bbc62646cc51cee4bbe22eeccabb4703634d5e5019dd87135adae518de0b93d0252e623878ca336b5c4c3f5a67f4273003e67d4b894611bd805b8dfc658b39900a43b93f73e3d5a80988df1dc3f6880ab303a694965110b138fb1486106ee51ca34981052921a1aeb01a75b0e6dbee99e5cf039604b72694b2f0d5d709453787f801dc8cbe62a8ac02f106af754049bd23d67c03549dd030f1823fbc85121e1b246cef4a44a836daeeb535dd2ee44b4443103d91034e4589982cb965539a2fe1d5f60812e73646594cbe9064e2ef7cc1144a1ab4e8030f536dfc8caddcaa6a7e9066e0f5086e0b14554232d44d4737a4c4ecada61392032e36019eaaea8ca5593dd413da4ee12c78f343beb37316cd7a1ebdd6e62772300395f5d4ac8b4f2ab7ca46206d86dce66e284b9f695a19456aee02ef9737044e10034e0ca65698ac673ed487e09b563f34a3d6d189aad9560bb9d0bfc6e03f9ec3e403fcd24462352294c5ad9a2d4905b332f6b18c14f0bbb78105551020638a59d27c0378c1861e274b4bf17544fd66fdbd9776bb99f42ababf7826c5408874212fd9a60387fa03ff4f6e387b4397b5b98f0a60048c9552b253cb4787bbd1d8944d7a4899033de6d9e13e37148b9269b3932ddeb178fe860e7299e7c2ce1113252c24d1a57403244b8f9281709ec93b53a3cbdd816a11f19dc3b28a340fa5a481c127f3d3c637037509e95869abd1a54c567082d23acfee6457cddd67fdd59e7c42d75c064e94fd0368f49dfcc67706dca16bf25a3449f6b1090ca2bc9c213cc44e3cd1309881bec603369cbeb3dad541aff0d208165728542c2706b5dea1a51eb21835bb18e64dc5ac0380bcf97f76da122e5e04205646b06e517112e8a7497d680549ab35d377c1a64203e48939c05286f057e76310db22a82458b84203d63cdb36c336f3e3dabfaa42c605581e0374046aefccb565e412938d2b70ef7a6dc4b66a7364cda7c746b55057300c0f461fe8f3174fe805581e03d9faa287f38d2bc2d6f60e44416364e2ab214cd2297d9d89a2f10351500c014745315f95ec98000391ef78beae5e552f2b97c035f68c735ad44a7f359215cd67b9c9df6b0a2974bb05581e037aef4884300926094ad2831dc06192b3df52545511af4afd5123f4f5e00c0247016a1260e831800346597311684148b31da75e7cf23f913ff004d46d8fbb1aa76b7957d63a96713f05581e03c6664a5439d37f7c91c1179017df5da5f88588a0bd50ba41e7d67164f00c01460e04a7f7e86005581e03b3780bff78da6352510165edd5f9d7cf06c35e37ae7cfbbdaefabdb9c00c18484901422a5a3d5252672003bf9efc98159a93f0f538ccfd0a0a5b74f3b5673b97dccbaab1e538b7f2dec02503817e038f274d76eb7b30a60918b9233305a6cfd342d730eec4450ec27ddfa89505581e03597761480473364b412620c794a41fa0af9c044769aed0f198556a0b2007011bffffffffffffffff03647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d03dc84f6bdabfd8e0029ffb57c9a8af83159aed3e46bf1d69ece56bf3dffcd906805581e03f32a2f938bce4f8d8dbff8a97dbef9755424dc33b658c5c409da1f24e007011bffffffffffffffff02198e9e037cf492d565d5ac17f6f481ecca91c2c03aac15539e112db89f7c154485f86ae703a51f806390babb793f5724ffa0f3234a431a4a0635229f95e6e72bd73e7f420803e708c23ec7b384456f13f4b2f191ed3824536c66459a023f6f17f1aa90df58ec0219ffff03f20499fa31b2f35bc7263037ef64f4f44c8839a724f1ab023beee2d7dd7ceee20369317d14bb9908522644a291d074f9afc00dc130f9a70dbc9f9f87d5fd5092750354724df36c58757262127d2314563c631f98eec57503dfb20b33aa9992a736d803802193c04940786cea0986e4b0782d14783888861b768afaebec0ec49181615e03eef743ff59494ff8fc6243c9b4eea81c59dc31e08f023a6d5ac0f33aa94820be036cce943925c21089c361aabd03f4b2a0afb9745465b3ca98e6095961e33ee722039e6f90ed3ba7e41b0114bd3548399ae9980779cc142fc543f47f6c39f529641b034e6ecb2e02991130305070b0c9201f0ab89693a1ea718ea6f3a4cbfdcf2c7ce3034c630d8a385118b4bdad82764dffb43bcc6fc7435a9564695445178d71ef101f03427002ee46abf993a2bd274aa92cbc70c2c859d5885b6c743142b96f549837fd03681fd42f552a1a477873dc780a9e44822decec492fc12f8978817e309721b2cc03ed06606d88bc873b86747a7cb500f0e9256ee61f3d91656128a4995b75f3da9303e8109a0d56282275b8fc0f555a6d2ee75e848f765ab510d7be0c6f21bb86b884030aef2d645430201dedf31a2c4b27174188447bd0f87688dc8ff900426409c9490219ffff03342f543e9ac5ef87fb3b160dfa16734f188b18356d4433a3ff47dc48e0732ea503a821265288f1a79e5c8183008fa5564c9cc57ef4ab3cbf35cfce3ef3f77fdb1e032c3a178bd148876b9475cd9343cc6433b193fcfaa06f70a550a3e483bd1bde7c03f10900a1a558bd38cc287f25f31753c8a18a15f070be1962f67b4f733b29dad803f5994a6ffa1ac337d3c6c84a84a02d6f8da4b77c9625a0b268b551de8b96d9480219ffff0325c6ac02e164723f4dbf156be1d16c4576b9798a65646be4af95e4f8036224ea03038a5efd9f9175acd25a6da405642e94cda3258199ee3da6925208e23d93825c0331bfde5533fdcca6e6ead5e93e40eb986d80908eb564a47738167d3efc784562034fc6202809a5d1f8ac20296038ebed80d048ad53eab0d55187c59e3f89a6ab3a0390af00d3392f154670f5639bd505481e9b2624e79e88ce0bcc15906120fe59a80219ffff0219ffff03c252c4a1138a087d6e63755d3c4323e3fb5713c6933aae38bc1998989f5def430300968db27e9470440a0a9e539adfa30589026d5d15384bca742c78b2338562d1033da81d6e7d371d0b54ac240bfd62e959b61e45fdbba9c8e88bbdf2065eeb0275030286f06830a29595b7cf82ca58fb3e1f93dc91fa95a5348e2f78ec9e7827fd080374d7dc4ef110f0eaf843f6020cd97b0a0913244955946a8414798e7aa8d3ed75037b88357488305654d693a6f93514e116224362a62c08630abe037319025184c703f177b5fbe173e783c4af3f1cefc9583294ad7d1847baadd351b92892d2ce01f80387acccd2bd6cdbb420adf138be0083fac18b75209d6af41eb972a4cb8d622bec03dd25ca4049ec14e8f2b65979dd4199eaaa71884a7256d3b82f1659b08edf7c34038a46123e86cd7bffda7369c8e23e92fc8b26b8863f064d146770916388eb566e03453e193ee9211796610089655620dc2256668c89d219632bdf6ec3c4bf9cf62203567fc321290528f31df59a99e3b4b511d771053cecdf10496c1d4022e27a40f3036766abf522c81a0c6e73b90f21a8c02b830ae41bb6b5031f678525b48160cf20030471e108336e2e7b0ea2de725a8863120943de27905ba6a5a56387eade83530903037c5a914bdfded083152d28c5e60e3618bad5214480fb76ce786729b65b65d903f228d273e6d9526a503ba405338d2b8c2650f9d01e69d7eb92401eb20564c32a038a6159318eb3792156578ac8182f2a9a5eb4c5db2734a7fdfadd443fc0c7eeac03f6e1273e7a2757aae6bc42f33113455d52736a1faeffc865244f06deed9872400605581e0345794f4122f42b2afcabaeee76f15df75f7f7423aad969d43e36a80fc007011bffffffffffffffff03655aef308c4345dbd6555f073de9b5944952da23d91d8d42d82ecb28c2625a3403084fd42e5039a922b45d2df42dfdef430fea3226a39d57f13bf24b474d451b6a0392252777229791f83bccb3bf93a14ca08a3c4936348dc36407a9d23e820293130605581e0379201799a5e14aadc8b975d24d8e630e73da90bc3cdf6aa09db077ed2007011bffffffffffffffff05581d02b3953eaef014f7ce43e8b75efcf3208ec763601501e15b3e61ea9e190c1904994717e66bae00c9aa05581d0211cb4546f71c78ee32738040890d316673c4d3a90c89952aea5a164a0c0341010219028005581e035e47d7615440ec59adc6c015d3a5ff2f4084eb3646ffc69bda019065c00c0247054628a91b9e460338e4657a311092f9e7c673cefad896d1011b5d18cfbccfe93877e0a09fcd7c2a03ecc1e84dabdc32b661765c0f5f63c5a9b7b536fc3ebda39d8fef7780c2c7c248031659de68e6a279da28599e113109376d848bf72a54b56d945750294b8c97e773030657e508cc6d404d8cc89513d451fab06b3288013a5753906560d9cbed22571f05581e0376b96a75738952f715c1634039b61106cb3632bcbcdcfdd0f54832582007011bffffffffffffffff03ee9dbf44b6e832b983c476d033f112da0ef330f788ecfab040e8c6f81b58cbd602193d4f03d8a013502c9f8108c0a6d97c8d781f6d8297d0c629b35852a430579f4a3d160e03838b3885092fb8896e93f851eab3419e623e614fa51e0ae78efa132f6210eaad031adcec6221f97c0309a190556e9c212f0c6403d795576aee44227c427ded3bb4031769316ea7a4c168839f92f9c30bdc7d3b83cc9a6eba2f25ef1519d2cecf63300219ffff03fe5b703a45e284d91e743556c26394b68083611195547caf501f4dd6b52a979d03b166576b29a537de0f574cad67d5b2d193668d55de9c18d4b4463d729ccebf2b036135ca357a9e90fbbdb693b52535a5a88ec42b197187631cbc5cec39ed1316d103439937182b798ec8f1b41bb2cc6ff9ce6d4b63c3001d495271db1b8b3842a70c03e07185a3bb23885597d8ebce4d5aa12b91b4d9ca34b56f57cdf54f4f6e43d5ad032740e886f4f92ce5489d8adb4c27d49c9cc6acb8b24cfb20e90c1f3b7d94d690031112e2445afe6969ed76b794bff5910c01997393c13b695fd87c16d5a1f3196a03796bf3e4fbba5b7661d3bf696144f4846f6cf752fa9bbebcf04ee3860966eec1031c1b49185f8c149dfacd06ab815d91d53e809a3fcc1183120d922eec47e6cf5203f6ea7f156aeba7c16bd23484b664b523b222d09eeb099515d5ee9418e595ea60035a9fa1e74d11d654e3c696fdadb87f827b5a351942e54a54fdb2e5ed8f8a035003eecc7b87de9218a60c14d307868e0729883c5485f30241deb8415c2aafb6df2d036189c87a5fc2c3d30920f68d94a5fd7eaad1e0e4a397b953eabe7f597a64a87f036735c615fb1de0baaad28fa2285a25970a4cf4be14ecd6dab3d667701263fb1c0358ee0ce7bb932eed68745b11d59519259d136a09fc4c043a6e393e8a2218c9cb0219ffff03d2e52bc3570112c1e669cf892df5b253cd436495dd5ad9d0ae7a3f56d61ccb3d036b439d2f59207922e621c36ae2e1a3e38b5305d9ef9dba4066f7f8f3ab9aa54403abf840b2052932abf122155a6c95c4b98d25d71ea09ce29b436ef824307a21d4035812218d1ae7aba43cc1bd486a9adbe225160578fa6a0e6cd52d9f87bdce794003ca94fe42eaf3de79e95a0909501509bb39f0f82f9def88b161f1b5a04ff14e1c03f04832a5e8dbd115d78c45f47b634b9425723ef5eadb34d8ca586b3b515b2a0e03ff1353e13fe44d8bb63e640e4bb5e8a3c3f1a0110cddd2cb669c11ac812560c203f0873ce29bb514bc6b6ef5bef468f08cfcbbd71f86b4f1541baf2bd31533cd4d03dc778a205f957e5e63dbf7c8e6e067a579c5374df1b8ecd66b2eaec85761f15603f66d08728b2f912b4f4fac0a1bc1ebbe15d4096827625c097a11b6152e2c40460219ffff0380a3d07853d1d639a40d38136ee3def0d82721a829253e6acc6dd2d50801711403046788620b77cce6bf763c58abbb5843dfe05412114624def78157bb331e4f21032cf5cf2aecf0003189ae1018a44a002db54247b668158a10ffcf3190b03623cd0358308afaf5392b1f38c9244f4e8749369d350dd412f6b689136cc99a22acb3d70310aef873e982383531adc41316ce0f7c2b4f60ba2c4a5f4de814001a30285513030489cd32bbb7bd924e3913d7adbede074aa642fb9f0d93e396abb20eb6be0a4303cb85b88968a6e89ed8f9965e2344c774aff62fe3e816b3bd0d6a96ac56f65e6803e129104c89bfd1d659af0575be71658b540316cbbfc46536a6ea154f1fbaf7890345acb29d42d585187bd83bc01fee8de90d53be4c438599808e8416e76a533e8503483626960410bd00142bc5c2fd81678562f572d77a061d59f157ea034497967a036c542f948f0840c1e7f9d90ac57b68c9c70f208b8b81c5aa56c70e1a3298d82003d36ccdeb9e918aaed58e75997322df2b75ac455c77fff868d4f524d9e396762d03ee3387676da4b07b6a685f1be01e0a3eae6cd7b837d1886d2f994068c7ae902d0304babf9b061e0825b119441c9297afdf5ab146fa915c032af710e063c2a2a05a0219ffff036adbbf1d7e4fa4807181a83eda6f4cb6087e3831e5d83cc736d6f1cc76f081640312c55a3225d50ec09623970ec736bcdd8dd9edd1512314348b6407ee0302ba78032f4e3cca859713e128ff0b5361088f670ee18b1961f5dbfaba35359e719f14130357eaeae7064587bf08b1991c0b894473c82e9d285c681a3abf3781f06bdaf0ca032c4e7f1441de49fca1b8ef9f252e0d5036d23e67fca9e22e5f3be2181f585a210326703bf49ece0c6922cc1e2e079dbcd2479b3bda7ca8a9765141cbe09a095488036541955789732509f91bf681694a16f37183a751870dd029be26d30ff3c7c8e203b4e162775688f4aee6ea9ed7941370fd43161fa2d015c0428d6a6430f10e9820032fb81ea700309adc49ee803a379b926de59aaa7c7bcce906434ababc15135634037fdfa23f74a04173cf7dca3916ea6e3a9497fb7963a8d42e2796c7331b16d50903fe67252461d3febd45eb506219d11c68c2d1cb7c6c5d2fb206cac0fc3e46838a03eeb5ccae27c8e4935bd201855e30e51aa583f7bd2c2d2573b48f4902420fff5403007f0696e3a1c7a7f8e1f365e833b37f50747904457343c9206794cac87d838f03c2bd3cd0b4e17b3ac57b05f5f58ce3cba77ee6b10b998e0bf9b04a7dfb7f7a5603dff13dae5987ee5685186a25e539f0e9dd57368286099cdaca27ad138e19c45a0378f43a9c3b229544d36c303c01f5aa7971c36710b0c5b7bb4dc249a42436f4c70328ce69fef2e48c356f3900d124c4c62a88461bc0c962fb03b604db6ede2546a5034ecb3c0221d936895fa2799a316de3b82ff7efca3db000d163b3053ba7a5294603b82b63b714cfbb3034a5c4e50aa898adafe7f7051519a9cc1cb560fb02d02c7203c53090cb8a16f470d986797463169bd031099e0472d1e93fa4612589598a7f380394920193c20ebc178fc433b8bdce860c6472b164168ed3fb69ac9c1c9d72383f0340b659f414a701173fd7db22a99da8b006a038140f48c61c219c1df2fe657c45037f6bbc9ab52eab2474afd68903aafdad2dc04301f9598ed97eef94b7f196c7bd03213d3d7a021d5bbcd71d9945ee688930076c4047923ac2ea5542d5cb0e72198c05581e034f568091c916a98962f5ec47acc1e401c150a0d23449e39b05597e852008481769d737c7aae400036a8094e1a9eb00ba29ddc3f52b7d47cb24fb3fb8672c08c4d1084bce23947fed05581e037aba468d62fb7e172e5d2465a6a824c073837906c89b44a35fdd9d90d00c0546141459a7af1805581e036df62e22d87fb68f8a0c921b58d5054aa0264fca1b8a300f30189ca3d00c0547482e5e463a894905581e036343932222b26bf02ca0e4ff0622fbfe78faf5bbeeb61e3fa03d235b800c0247021026ce79644805581e0358c354b04f0c91a2fd53b3639c9de0a55b83715f664a95a427b0884a700c0346406bc21089700307151359304755b7a2aedeacf997ea37b42a0a806f0c0b2d06160965e469a0660219ac1903ccba23093a4151cb7da71788bc56d92e9c5e4697148baeb759c4a80b909ead6903cf4644dc4afa1efe1eb33101587b8c8502d54fa7d4a54462d17762a14d09cfe10387ba56216e8ca934bf513ed27183cc6624390625abd1cdb1530dc743862383c203f4225d2f9018f4078525b16af19578627bf669814b645152214ac3dfc9f117bc038ce98dc420c0dbe6cf50fac9baa57e7871c70bedb1857f4501482136a680e83a034a5a088db8e2583ca5d838efbfa9ea65d96feb75b8d2cbaab64033619837300603957c4748472c8015893b681e395bf5a1c1b371f4ca641e3ae9451aa8b2f5eb5003019cfc4d8f663eca2e330b1898707203870277993dac32cdfcc5d9e3aa863b9603500767f9b3feb6e20467844738b7c0019714c84c337cd29a6af64735dfe7f90a03f73aa6b979fd0e7f1bfa830c285f13a018dc58e93afbf5725fdaadbc882746f40219ffff03d34d0e6eee40ae8b181fc043433d02f5216833d17da02e3bc0df71aef3558f8403b783a562f457878bc52f61d5ae5c5133966d31d9e31a81903668c273b303687003e598349391e54c7a2e4bafa91bbd4dda44255efb30fc8f49d7471aad24e0a2df035153fec71372a6321d810f296473b8f20c4ebf60f03a83f466304cc1d96a035d03af46496dbc632c824caf52ffb07b2cf2fac47789fd9150552aad5a7f692aee8103b4a7edb656f60ff5d6b31caef363ea012ddfe57828deced53fcf9889fef2a25d03b6ffea610d70b7b9187429e5f6b345971725ee8247d61bfe15c3338ac640999f03ce03d2416e7fdf05487ef241802d52daf88142ba33af1a1102d9194026c9a44f032a8dfa4dc676d6af1eb25e2e32f377b3da0941b13c137b22c6d4279d3627df8503ff7f34c8561c7db188914e7b48bd7bab4a1bd08d5b167da7deb00e3079218c67031a3c390be39e8383afb5344176d6435e38d6e30087cb38bb71afc0b28b73234b03850137e7893d02b5ad389dcd95c889582bb1bd114482c84e896d65e2a98157c703dc60f1f6a5c0940e6980ad537df3fd35c797c38926956734d5e2d5e7f80505720219ffff03850c7cb7ef547c124781cf2344bd28bbcdbe24d77ae0e48382aec5feb282b788037ab368941e96ab6b32918bb3cadd061752a2a945dc27b0525f791cecb4d875d10219ffff03bdffb2f510675bb96fa688af6e43900e7bbcda03f10174d47d5056f3090c567703b0654b2880302974fbf3a798533f60606c2f35cc407949bd24a3c0487e4b45790326d084b2a302c438455ebec95e0da589b8cb880017b7dbd822d69a8a8246411303aa7492db57c54a4c57d4ac60c230c0bea00ccfc94a4c359f105ae5f6f2d9c68f03cf88c348c728151516ff08578776db9ea70e54e6fe26b40cee8303336a9be989035fdeab543c28b3f39777ff72f56ba8a579abcd9d5e90a0648e7beb34ffbf55010368262e5f95628eea342a4c41d285e7742b4ff4f0166a8ad86813577f71efd9de03b0935f98268ce804efd8a81c6630a55a1446b0301b40a81ed16932e2f06ce27703d9392c5d103fe32d60615381af0bee08308c212dda228d73fd5a3c3fedd7d074039c9df4dff007e8efd59882cc787342799795bf3496e9e1a23fcb9a8734da238f03c3fe3cf28a31e456607568fcd5bd679756caecc39e93878ef3f427c9ac8e64110313125665eca92e5ef5675eb223fc190495118b6d613cb75a14d0f081bc3df96e0383247cdbcc7302adfef350e3ebfc6f1f96f1978b6e833907fbd180e7b5267890030d0b473b4339e77278da56dfac6ae32367c1126ea736a6855868e8e427586f96036d1b64d81500ef9866c89c49b27e809cd1202051e6896f2ae11479a4fd014ae503000d772a8aab1695645c887169afb95673b728314d7738ace8cbb87d6497a137039adcd0ef22a6668823f411df91592db667e857b939f803be51804d184e4b09460325ef136f12a43c24f4c937b791a59ba2bf25795b96f8ec5d80f8e2cafa055a8603418884172e499d129d60e032c90bd278e3e357800f00ecf4e4c9fa8d7699ea71038c736a7c5f2a6eea6db3758fb3598c3c018e724209703b0b9423bfbce5114f730369ba7adf1c12099bbf8785113fc5515782700e93c081abfc4379fc8a79ec585a0341b9ac1bd74b25f7e3bdcb54720d83742a64a811646dd782c30f1cdcc69a2e1603f172524e5bcde20af9103fe34326a37b1b491b82d2f58c59c29bf6e5ae47236d03c1b71f207892a4ccfe632983b6de6eb3539b0740606ba686297642759430d43b03292aa0a88f56bbfa1e767c0dacec7aee7058ecf065920be866b2fd3b127b0180038ae034828b77ae6ac98a25c05dc9e0fbd92f747ccf390e280f8ee954d30e7ab003a4e83b477b2c2078e32c8fdffd61ec8342d4db8cfbefc8c0bfc864939044f3ea0399bbc4c2a65eaf53e47ef86a9f02bc45ca7f010cde31e40c6b4b2b89f17440a5031f6d668f09587779abfcce11eca209384feee2ceffa8a3385329f1867f51c0940332650e6a2f2d86813e1b37ef8c1baf0f7ed9b3f337f951a717ab709d9eeb42af0339708e67cdab82437a6bbff700c254939767b4785a3f85f7f37ddaf667fded84038d457fc3a90b96fccc0dc73782d6932738adaee0fd83690c207cb81fc65ea5e20325bd4a0e74aacb570ccad83982cbec0f92250a2fdff4d2f1bc174904c88bfbb205581e03856db4a92ce6b9d19c95653d713156f466a91de726e28a848e79b522e00c014722b4da8ecf90000368fc8090b8397150aaff49d7fbd6b519efd7ddd1a51c8a1839bcb9b88792af500459089e60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e4b32c109fd08ccf9742c7e09ffa8cda2bad608f5379698a7c1f93a339aee46b64736f6c634300081000330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56304101005821036501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e94354054259204ddd2ba29bd9b1b9a5c9b093f73d7eacf37005821032df0bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d481054eb803eb3f501998126bf37bb823646ed3d59d072005821035b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d054fdf1ee0098168eaa61bf87db68c39c85151a4e9e00582002a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a8254798576400f7d662961ba15c6b3f3d813447a26a600582002f97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c7441ad274800219800400582103787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae05819100000000000000004000000000000cf080000000000005208021903b405581d02f7415984a5db98c35ba88f13289410ffce6327e5b685ee16439096b4070119089e05581d0289ca5486aab3334ed5268a73d708ae04af48cdb6dbd3ae9ac83c8eeb0c01474510da4bf6809a05581d02a52190aa22da090006cb04d47fcf2d83068e59703f6028c6d7fe6fa604010219404805581e03e3226842298a28c0d606c35b89aa87c50c9ec7a1df348de775c27ec8e0040305581e03dbd609cc82ff282b0f34156d6ed82bc1db1958ae6cfd18808ebcafa760040103becc4c95ccf7da8da14b539d6814cc8615ab7008cc6dd705b8b014a7c998923405581e03220b4899855d013c913a922e07659ca07f23b1b926730ad4a91060f4300c02460746a528800005581e032897d4f92d1306c5fed147a272e467fbe1d561a5328bc922ac27b900500401033b57af4634be4d260980a25edb0def5301745e300e3630a628bc34229211dcff0384ceab2815549325e2b253adef130295632182b93d5a1470c196d0bcbaaa8cd4021957ab03c1c3eb13dc575779d2b691941dfefeda79eeb85546a6daab290e6eb5203f8249034bf9dce24e899a4580edd26fa1b9d0bb18e6ccca58ef9af15d601ba86c0d16880332106e4527641bb8cf4ab7d801aacbb2ae497f4a2dc07d09782ebe79246cd0200219ffff0328b4e4b59ac4b6c2c92517ba63d7e20c173f1ca4d5633132b4c41014b50c43ba03c4c796170aa4e8dfcb86544abdec7cc75cdccf5362d279e3a487b152a512a96703be1faa43f1db52141d20dff808688fa6e55a6c64cc696f37f6d856f6341283a7039b7bf298671910fa321a810f92e7e9f04f4010b89cc39c6d5caaadfcf1a76d59035f6aa907c86c3b24b8b46e1a623bcaf79c64b4fde857c3d8b81a7e291a062c140317ed20aea4e84edf789c082075c0b73c6a99b6765ae3385d4c8f7e347f143a9003c7e0b958649349e3f1f9a7a4a752a0841eb194c6000b50b6f586cfa80191e87a03af0b21b0f19f4fbc21eaeb105355967d33e4267753e069f5c3bf47e91f37ed3703e56cf46f03c3ef2c7a7a5d75ca1b5cc998d6af7fef37b7428c1d97a3c3bb86b503a80fc8e540b9e6bd37512e5dfb56f3ad46025fec423892ca69edcf6cdb3042a00219ffff0219ffff035393b3d849a60d719d6962a3cd5e7413f99f0e0ef2d21b41859a676db7d8beb303dd5b118820a1efaa616475cd10a1944c3ef4de4d12883563c549d7ff87613dee033c4e5dc064ab843552bb785266dc2acbc962d46eb2639f82d26d4c04ab09c47a03313fbbe9912e88c6aa937ee1125e3c7953530d786ed526d3b0ed21c78d10d5a8038e79ff450deccad5ab22b31941c1fe4ef23a6e58b76d1a107095ae5d2898c29003cb608618cbef0c57b154c947388464d49eff2e7e40f3f17f6e4dc7628ff5b50e03f0cd8ed95655cea9d14e93b5c351ad458d78d31108c082333d16c6164d53621d03a6ee262f27eb64254b7dee9f34fac4ff7503c779633b86a73e133009ae1978a603953fd63f87e585be7f777d14981bf067c66e5cd32502ac9ce61778187cf03ebc0219ffff03582d49435bafd330f7f65bb598ffbe73d66130036d3c76fa1a7fe5b1a44cef27038f27c71cd6a937e2c20b8a0c3a6456b4dd4f38ee3a823662512a6ade225a9ea80385350234f90a7bdbc2017c1c08c50ea13351dd5167dcd14d51c46174531dacb003e58d46eb61426091bf58a74efda568b7f9aaa558b3be008dc5d098f21e828efa03f803f8d3e8e33d97d6d60473a3cb2ad935c81bed091feaa165025032fa9155410366dd53effaf8abf5a42bdd1aab67154a42a07f01ad1f497de1e36d5a4703c3ed0395a8aff9639b93fe489997c8995f21705190e07900dc8e508b1dd87efb65221703299d93abcdeaeaa4e0156ceaec7ba0095a925a2bdb97f662140423e6c172289503f28ae60e9ce01c70327a995b2db6dc10ef2496936113b0e7573713e7634cc64f03c6054357667f15372fdc828fab5e26c3ecc0e896aae4a49fc808879512056e5f03daaa093688a9fd445d09d9b7cfc6972264086d4d3352346c6d3a57a77a45edda03f3b255847d51af704e727bd6e0ddae447612f1c6694245e5ae9648b3558b650c03230eff9ca5d2c9c6c9f9f1cf41d2816ad9a5b284733c7c932806be9a133adfa003690ffbbfde933dd43fad67d3653e30ab1b463a50960123ec1d3d8eaf969ef92b03b1616c898cda16e10f57fe9af974b88a38a88fe24e5c7bd055984efeb6b88857037c4d9caa5c186d571afae3bc9b18f2600b8783de2b04207548cf049a1acb805d0387543021d3421c13fdc7e7b99e41bf8b4a7c003312e1e5905a1735a94e6054b603ce2c4e9d69d00e0b393a521850c914b12fc6d1335752db8096cc9fce27245a83031138e8a168083be0326ca3676473dcbbb6c86a61c71c52780a11e41e91f41fa9031919fed59a423f0db28ac9e3a3e7222551383390fba04392fd4ef9eb331bd22f0326db87b70098f49fa141a02f9301a3d8968b25b01bf614a0951859e570113ec90317e86c83968081b65e93b96c4d70eeebe7cb7b6483592566f04a42b382d2410c0361a148de95a361e1c71a39b92bb34c38ca442b2bf1213e83c5ac9ebdfb57462603175c875393163f3af90a32377a3fdc68aa44f010d089c503c2f231a5ce1dec2d03c236cf0889dbd181e3aaadf4309187bfff4447d001df025be4ebd20db67729580395664bdd4097bb1f31e3bf59e88338957aca44f73cc4d4627fe9b01f9427db8b030d078cb95216dc9a20a8a191bf19ae912261ec45715165bad9d7bbde5c17a18d0330c4a005bfb6511bf46ac5b87d568388ce3fccfef85c361383c4cccb3f922aef03574d3ff52c140116a5b3c64e247f16fe608866138235600729670e45c5b4a06803463001b811ef960917db1cb93edcbd3e0ef83393e64c1a689c4581528de7ce1903c1c8919f1f3b2d79fdbb547c27c212a8962205302a1c13a485f68da504a2e1d203165f61c384d4d06c62620d0dafa24d93b5fb41b680667880c7ae638d18439fd10380d6bd1a0019680acccc5a383a44216fa5bab02543428e7b913dfaced7eb015d0340215eabcc1f63b8d54105a240a9af705f30e999dffdac2ee41047c0b1f5d61903598e9f2cc05abcec6281ac7f4df803f9eb297529721713d0ae7e90cd6ed5bc9d036fa9520dfbc854933d8e2395692a0552146ff8e9dce5f2fe62a12154bd152de203a13061e82cec1d7ad57794c5265c0d89476a5aa59636ab85ec781b476834a167034cd20e163674111144cc4f0dc784edba8f56d611907d1e32383df067b356de6603955f6d8baa1f1ea8ec82589e54c4ebd59d4c72b8a3e7a9924e742da550bc5d2b03d4f52669243ea0a9678914c1b638029416754e96412519ab7d2f7cafaf3f2406038b207b788e60f642b557362a541bffad68140ff7d3ce609a2c8d4e49497975f7031bd1e3c7b5e2fe36b96f834549683b4dbd4dc9c35c8086501ec04c7ef7721cf0036c012d6612c314c62e78c443068f6ae32f189d00244f6ee9938f03f58d79dc3803c7c7a06c6797c6a1b53f693a0b92d696fc993946d62835122c22282bfd59041205581e0391a44fbac6503cecbb999a06685c78785761f9fa00fce73a70473797100846befe6f67200005581e03c7f638d455045a64747e26a86b98343979e288393f3f10df9fc3675a200c18d5480122ab6498cb39a405581e03a6af0e128487680067121570e35e9214e563d84fb20f015d7f4d68eb70040305581e037085377ad24c74dcee47d4598b7e085b9c6d7d2ba050c28e7bc8a6ba500c01470432bab45ee39005581e0382adf3e5408f376a6c5f7e83cd958ce64923a00e53e76689107c9d45500c014201b003647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d038fb4c3c27f6921c644ddfc9424975b91b4588247ca2a1dec3696da65a397bbf505581e03c10860216aa683d2d2cd071d162c30aef17bc848a67d7d0ebfcd5a8ad007011bffffffffffffffff05581e03a86ffa3ee8852705d6d52bcb0ac8ab2a25dd0c969f758a4e80a75ae5f0084703e15f4595e8d405581e03674bc38733af72cd82080001f7abb805463877671fa37f8655b22705b00c02473985b62394be00037a0cff2e55a2d091626821dd251927540c36950b5dcb98de7f07a34298cd595b0219fa460219ffff032358bd142e67e65c861db8fe3abf47717ce1bf56129855f565bb6654e5d3c9be0219ffff031aaf2998b0e4ded29fb78b303e23228ba3ba970a2f54c0e263cbfb63782845e203a78c38ac20aa158b5281a8ba871408afe3febde0abafca04545d9a7ab835bf9703be9b1a09d154a10c96b07e75a722b5cb9b6ea0cab7665bb68f0170e9779abeef0219ffff03bbd62c8e8808ca96721b38295f14aee6aa154b87be546ecc05ab0bdda7549418035b82ed47a5fc386ec393526a73e241942c3d98302585dd2a2d1349124a104b0403941bd3a806a93392b2af0dc3b542f8748661d8fd8d0814ea6539684d0aef445f03dcc6b510bbacb7853bee8f122a4ec9b2b4b4455e69f988c7a8864fcf4d1b56c70378beeb249e834d9a86bb16018281cb7b44331f87afa95ca73ccdfe21b85caf030309a00a39052ab548fb5c40dd36db03621a4cf1c097bbb59d90bdec9b86219fc003e73c03f069bac4be2006aacba6ea452796985745d60c487519917f1ccbd1bfea033a774412ef69c1f39992c75074152efffc22e8a8a05d463ebd21005c1d2b63e20360d6a949db43836e9901b79689e76b7e80e62de39c59d9e98691e1e9612ef6cd03a6aba74f0eba5de9e59e47e0e20de2562921b3a1d2a13e7fbede61d549fc7b4d034fbcb8a8ed039eaad3ca891fca64740a99c95c2eb5f30f53db0e84fddf0a19f80373843b302a0d04a241585c71305beb435c83eed79be0a8f5bb6f7781cfece24b03d598abd0e76ee10b03877a411ff083575aef3d91c2277de4e346976b1ad763180311c82761cf10b29bbab5e119634c6780924d9e403c27203ed0ed697326948df403a21c1f1f4fb5501f87c876c238dc746c3143a5e5425238c650365f151e2737b803069e903b6a224cf18825d4ae41be00db63dad56158eed29b43a5422f191d3c8003ffe9c2729d397d460255b0a3454949aaacd69c7d0ec76b7fd625c2151a44511b037b3d4f1c6637b04dfc49b4192ded24f16b87da245de732ad42733333e8e3f74d03c9ddadbdbfa70eb71b35631bff27b972fdb7b3734e5b64371663b1e22af43aac03e35a106564a14802bb8713834379917062d8e237e8a35bcfc794fcc0d47d0a2a03cffd27af151cf7c27e14921f52944c59237392f50a0c8fbec31d5e8091d7b28e038b39e6666bf7a2110d5011a4d28baec7ed69992e4fc771deab8d1d6197d00aa403f9a636a6d5f073d94bfa8134a7fa990d72785a449acc410b3fc3513300fdb34e037dda2660084f785dad845fa7e0fbee21285c88b5724f8743ccc2cf3cb9346f1e03747f6579cf764adac9daef01c52a43d0eefafccf05e522ffc521b213f3d1c9a6035482b35b09304ca27c74bbd7bf778cc3ea2a93047c5ae5209c3abc932497e86b03467f727c11f60f8da223f4b097e39e19c87c945491b8e5d1e18efc985dca5dce03b12422516521ba056925cf6916c9885aeb7553cfc1d5d279cd66d9f35887a04d0314bdeac2f250fe7e724eb7f38f1c56736636e0554d515a328e09e7490d389a160319502f6dc5a0e56864c4dd61d315d7e1ac3b227ba611ae0f99bdc155425b25100355309daf372d082dda64128e5e0b3d89b8bf68de602afd750e96b951a718d63105581e03e0fda4c862848c04e863512af0919d98b3f387d6058ffdec854c3722000c09464677e76c6c1805581e032133bda3508832321bad82552060d8ba9327ce17e58e2ad2c19d6e5fb0040105581e0355490778205e9add1b5dccf27467166aae366639c4066babb333d3e6400c03450f9f78bf0005581e03eee25e66f552bb9a233309f4a34990a613334667d2e5186d7ddebc25c00c182a46c9705b2beb0605581e03b4734c46912e81e0bbbcb2f896d6afa2a19d5b423a59cb1bdac403a8700c1830482c43807fb7df9ec805581e03ccd6ae2c8c0fd913d1f627fd501950006b66ec498a39fe30626c68c2900c0d483803a7c61d10836103647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d0322679df9dceab6a5c6bee317257f4cb639aef73d56ab452f05c7f19c8f69268a05581e0323c08118b7eca31075152464e78907d29a64d7b8cf33b94182d6b03ac007011bffffffffffffffff05581e03f967fabb3ab392db139c4fa23350b2d167c1dc18b1c5b9b1eaa8f982600c0346deb99822365804590526608060405234801561001057600080fd5b50600436106100575760003560e01c8063715018a61461005c5780638da5cb5b146100665780639b2ea4bd1461008f578063bf40fac1146100a2578063f2fde38b146100b5575b600080fd5b6100646100c8565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006461009d3660046103d3565b610107565b6100736100b0366004610421565b6101ca565b6100646100c336600461045e565b6101f9565b6000546001600160a01b031633146100fb5760405162461bcd60e51b81526004016100f290610480565b60405180910390fd5b6101056000610294565b565b6000546001600160a01b031633146101315760405162461bcd60e51b81526004016100f290610480565b600061013c836102e4565b6000818152600160205260409081902080546001600160a01b038681166001600160a01b03198316179092559151929350169061017a9085906104b5565b604080519182900382206001600160a01b03808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000600160006101d9846102e4565b81526020810191909152604001600020546001600160a01b031692915050565b6000546001600160a01b031633146102235760405162461bcd60e51b81526004016100f290610480565b6001600160a01b0381166102885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016100f2565b61029181610294565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016102f791906104b5565b604051602081830303815290604052805190602001209050919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261033b57600080fd5b813567ffffffffffffffff8082111561035657610356610314565b604051601f8301601f19908116603f0116810190828211818310171561037e5761037e610314565b8160405283815286602085880101111561039757600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146103ce57600080fd5b919050565b600080604083850312156103e657600080fd5b823567ffffffffffffffff8111156103fd57600080fd5b6104098582860161032a565b925050610418602084016103b7565b90509250929050565b60006020828403121561043357600080fd5b813567ffffffffffffffff81111561044a57600080fd5b6104568482850161032a565b949350505050565b60006020828403121561047057600080fd5b610479826103b7565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000825160005b818110156104d657602081860181015185830152016104bc565b818111156104e5576000828501525b50919091019291505056fea2646970667358221220303bbeaf3d63537991209d0df6db34ba752b1152b02fc0b5442784b442d936eb64736f6c63430008090033005820037a99a57dfad317fe20fd7571cccd03f75ac796400c31b7873513eef3b06110546667961f5e9c98a76a48767522150889703ed77d00582003c66b10bbc312583ad31e7a050abff2d6a89af301a993655b4f4f4beb50822054d3f0bd982d72e28cccc69e0a9da439e9d587b3bd0219011001410c00582002d80626553a7bbc30767c3c8cc97c9f5377137b3ac9ac34e79f529530a9c0225495fc37a27a2f68e3a647cdc081f0a89bb47c301200582002bbf71bb38364cdb781b19d46a1fcee4b17b733f20a9b073b4215f0b1b058c9542f6afe2e3fea041b892a6e240fd1a0e5b51e8376005820020decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563544e59e778a0fb77fbb305637435c62faed9aed40f00582002e65a4c5380a641e23551a0fc4a2fac4cd9fc7720afd8b5d4fd3c4ddd7114c654676a795fe6e43c17c668de16730c3f690feb712000582002e268bd8e62829225d2b56f71eed5be63aa1a566c037340ecac3e16b14bc11854d1328c9167e0693b689b5aa5a024379d4e4378580219c2c000582103c92a979829a33809b6dd27b7acbc4dc63a861eb0f9e13288e143b6aded964840542f44bd2a54ac3fb20cd7783cf94334069641dac90058200244665d0ac1981dbf5cb7735da0437aa38311e17622d656e71be332b336bab1544200000000000000000000000000000000000007005820020be2e0c4fbef116c9a387622c7923af8bf7e4e35e78d623c30b1b8d5b8c32d5431abe1c466c2a8b95fd84258dd1471472979b650021908040058210337915946d18d53d6cc0c8b96ccfcd31c66de0ca22eb9fa0d42649d4eb85862a0545dd48ef85b99e3e3d711ca8b41cbc07da1677f3e005821035b1ad615517c5fc6a512a7af2414dcccaa01287abb860b15c17991f9d83c381054399ca67660b79f7aa8a7efd5bef9836a4c19cacf00582103e2d748aabbf02c489dc2999c737beaf9c21e6f5f0687faf341b81fca390d7df054f7576237087f808eb39531ca490b4f8efd4a0c690058210340e70a588557bfb2bddc37eb2d4a1b904f2674cc3724204dc4c4ac8b783fccc0544692363048d0f32a2de7816860d48fff0c61b24b005821038ebdcfa84dc21ae1f0f97104c0916e3c2b6e667931a0d8d1fb70bc2afab671d05478cf48880e9e1b3ab209779c0d8a76f611e53e81005821034faa1c4cc20b73ca9d6cfca084843631ccaf205ccd80c8fc1b602d9b60020e80543c3a81e81dc49a522a592e7622a7e711c06bf354005821032317db4c0b8609ca9dcea495369b9dcdb86a32f49e761a38266e2a6677cd14305489e9d387555af0cde22cb98833bae40d640ad7fa005821037d3ad4ff773a93babb576d2542fe7faea947b0e3b9cc099b5cfec5514b746ed05409b276f9ecb83fb6a37970e655863b04143dc43100582103335211957123dd4406ed5baa0bb880784b321625ef3775987388985d6686e33054291dc3819b863e19b0a9b9809f8025d2eb4aae930219befe05581e034c4490a01a15ea1e455bb74e7aff7ce99ff066ca5d56f2c04f1b098c50070119052605581e0395f1895bfedf6cab20947708cb348f414a36ab8ae5abdc1d3c20f333100c0c4801efa904abbb30d4033282e8d185fb89d64b861a9f4553f3a62dc093ecc4a8a49263d06f6ff54b400e0219fe5a03ae4fadf58bca4ffbd4e230f47a352566197cdb2e544f40c834279f6aeb416d40039031d81c7a5dd41a7d691d7fb0a0ea01c9debb3540b0b65072e1fcc8899b19e60339146491f3531ba861d77bc1d53c05d7a4153c05bc572a4178fa179f6a5498190318c90a43ac3da453d7a71f1b8e2c241a4c0a247b3098a08c0d4e4d0e65c6f919039cb14b017dbd0ce52d566eef8f348a627243d678d413f698f952249750d4fb520219ffff03dcb7e0daa51c955d91e8c9770f6043f5dca5363d6123e171bc3ffd4db6d1197f03873a7e05b771b28dcc7fb2b33aa11eaf9349fc2be003cbbe247d8de0ead49cb4039f4cc7b2c371c84c49fff135086b8d94135bace04256e3adfbf96d4113541adb0219ffff03f3f8ae9b2690234cec9eab66b46ec824633970262391f482c7e3c8058d249588031d408b2027dc64815f8efaa673ba3f69326d3361782551dac5d650ea616801780338e32492920983d5f9e2d37c378434f726c271987f13b2060831bea9598940a303a645744f804a656b4957bcba64fb258618b464204c97571c885147a5c02eb903036f7ba5a5b138f7bcadae928da3fa630ac9dfb81ceab7fe52b40da6612c220ac803c01a6a6f72ee5702e5c04b9044dcd11da2b005cc1c8c67286d52c9c7a9e73841037462b21ec2a1474a0f25583e6b65d451d7a1c7c86796ecc03739371b7628ba94032d82bd8804146cf62633672fe656e2e65f8a9f520e405c353a0a68b4d5bef15603a4fdc8a9d45571a9a3d411a02cd31fe67b24337fe51a4d90a8ceae4a31ceadc70219ffff03813ce62c53419a179e64b5cbe511a58fc3ee2884adc9f5f2eb44f0858c65e70a03e779997a79a330d5d73e5f23149fbde7358d34fa58b91638c201dfb79991321f036d5d626d2954bf37c3987e62e79d50838460c990fe738da62f0c1361b87992fa036241e2a04fceca815b1aabb383d444f23e240bf3d56daa253721da05de22d92203f8ce79c40e55b71423504c3d3b76af440781f938c7c0cd69211bf1d0415ad2e10376e0b118596957a7e0629a0a8bc61a32c449d176529d97bd02ba78bec7fb40b003be5ef309b794b08e59726c0f292775c7271462afd4cb409c024b88cfb7c43e4003efb795665a96e8ab90b2e7a795f421567d69204291eff31a4a010c96c12e393603976a6af25116a9f1891c9c79d4532d8690e4d2b915c1d0dec768acd0a72b5a8c03c766b3dacec83b07096fbc12a3ee410ac18ae276c028f94af6f292172aee1e3c03cd508ddae49bf2dd9064c2a3f8f07d156e35161a4eb4403893684d6a5450f99303cf11589523c081d280af7559cc3c76ef10e5e66e09b2352c28d5558aeabc7af4030e72edc63bbe9d7bc781ecaff5ae23d1d0b420ebdd442490b2e9782588de1833034b329da808ecd5068ce4f8cf6e10ddd66c632bdab050a17640e631399957c5d10320542cce32d5b951bf2654cb713bae29060d7a31607763aca792b8c425c20445037e878cc6e23dedf0feef11108f6c36031e03ff779989ea54bddac083691d600c0316d1128643b3e88dffa8dcdb221d99766245191026d5f3b15465f9c3e4d0a5b5033c76fdd6754f204334c793f08bd479aadea37ad7a9d4e979042275fff772aa110323e75c1ff9703816419d261c43c7cb488327170365fef76ba2a92a3ed365de47039d2ddb290fa7e237cc2456f188da3bf6cc56ced6a9d53a801c3dcf591527daf9034a020f9de09208c94547eb1a5b119fce19af13c6c8e40f133deb74a7647b12160346488d5d57206bfff42d0cafa4fb3a335fdaa6653a364839e8959546cb2878fd03f56632395f74fb268b14af986f5e4cc0ff55296d608969e190c951affdefae0f03abfd7047fe2e3d81ad49176acd62968f98abd46157815303c2e37d58783dec450370d9e9ba79a23f010b6b02a18501ff14c9607b1a1cb62d58a9d3e3123c47d79f03ea64f0da0c8c7c3aae8be130082c1e6822dba019dea740e9cc57415d417a129c03c0447b05467eea491aa9f746cfea845acae40ddcb77a5419ae74c67902e03b4905581e03f210aacb78e118fe13e2e12ae8a0fadf1bf3698013b67f57448d2c0ba00c01470b15350abf595d05581e03896e145456d33e0b7e7372d1abf74f8fdff67295f8b85f6346bf0364f0040105581e032cfcc1a85b71808549a4ba48fa4e1d539c720e57c34702b7b7b1fa0dd008475ee9a6b3baac0003a6a4fa20192b2d978b088b07086f2a29d81dc7f2e97cf8bd67a6e5347b3a83c103fbd3ce9b2ff686aca29a62ab139db03c391bdae1999ec4088f57c3428270dc5901420024039b0ddd148d4d598df530c91e088a11cf703a0dd26a10a62475f1e63abbb3c754030232106f18271e4ce377beec6655e37552eb860b169f6ef7dde2a82ad31b34cc030736f848937e870bdd44e505f00a3aaf4fd2cda53d22e0d56f42720773be0b4105581e033c2571bb89fa1730b575b44af67a2afced83f8dfeaf400c00fa929d780040102196ced0325bad09a9106b472f439c608f9e3df9aab376709d054d37ac3c76b573d125a92036306707eba3327800fd0ddb0fcfa8856055f4f731cf27640c3c0f9adab56abab0219ffff0391fbd8b90d5747aff38c09898ebce4cf2db14ec11326ef888a242b36257c9f970336c80973b873c1b9cc02dce6162cef8872bcc768919d1ec60ff1858a3d1c1782037af58f981f5d2a1f7b4158b2249f17541e48ef20a3b406d514f6b0a853035e3603a6265df016b00b9769520102ee712c3bbbbd3451cc881627e55950cc4f7f109303c9c6d6de4505983afb0596e896927d56441988d72abdcde2bcbb536496e31abe03e5fef91b4ef35cb569605b65efb20f3819f802b93676848e6ef4d14a6d7e7fc903109d1389ee14d82fb098e55baf22cf7826796ceb0f89712d595a9a6be861395303a2123469fbdfb933dc50baffb96a455911c2268bb179db35bf3c8cb268f09b51030a1ef180076f74a3b6eb062a649102ea6720e7389cff74ecd81e9915ddc167440372624dfb2baa30ebb979cd2b8314bc7424a40c62f27c08dcb806faa666b5f3a103032aec11bb9d2d2bdf3a884518b667521bce1b2764c31170e06b6708a83b8b2c037476f45d2d70976477f71b1a88e2b969798ad9ee22925a58d2f2c5c8621147ae030c0ef3aec9f5f19fb8ad02335fdf2598b1984edb0512d62ac346d8dd3a8c85610383ec5a93882575eba75888fbaf4135ca25a0031631dbc9635ce4ca737567ccdb03e3896828de3b252f9889586fc4745d2d6f816ced54167496f8b7d46ce30d04e30219ffff03848d4cc5e16a2a97e2d1f4816bccbe8f06db9aa485f5181564dcf486ffde05390305a4ae8bc725bde85bdaf0a63a0a05f947ee7a00031ac6a5ee2d24a9bb82a96e03c6d16ea1c5cff949864eb833bf182c8cf6ff118d8273c5a1c0e761bad6d2af6403f88c7d3e9cf3ebcaa0caab1dcf20cc0e2408147fc7325e2a631a9036411a112703dc90d3fe34d141a54b4182418526ec8dc9994f699ebee1d1132d7e7972d95bb2030835a3d14c7edcd984b3b1ef87af59205899ed0063e2cbd77a9c4b89db55257c0219ffff03f4dd45bf2b09a86bd52331a234ac29aeaba2af714f66994efcf4a0e5fab1e8ca03838a002bd2ba69dc06a62856cdfb5279a802e456bb6717a386ae64b35f4b944703773c530ce229658ede32bc30c64214b32a89419e86fc8af2b7b484ee006e64b80219ffff0338b49f59af4798b916f278cec9e9c0165b554a78e8de092d854dc5d9d535816003f077a47865d2fa92de5517943a1f64b7a9ba43e46d522b66e0a37ccdc05e47ac032e2300dbeba1581b03b8130ceca8b0a0fc2227b45717b03683ce097aa73ab1f4036b6bd0473c5db6f1d90d4da3710fbf5c7a8dbba80ab985f5c76462bd24cf53cc03ff6774d723cff24d2f603753aec7cc6c98def9be91d4a44983c8f143b27b251603c142f23f4f315691fb2c91584b0a7a802fd798ae8a97ce295ae65db44e26e4a90314a83cbc2e58fffe82fbad19430e62fad6eabe1b191c8d0166b258c1a711bc6303b7276150e76ee2c6ca031ed9170d66bf8a1d714d9b75650cddf4afa5c53431570368a187f9f74a3ed6f871c37b5b4c17835f797fec0e41cfea992d72b4085fa2b203c52ee4f6c655ee87b4330ee870d311c26617ff4fd4c8e408f273b28d54ad5a4103696c313275c089f0c818e1630fec99a7dec1a5052601c701b653a8fc8d7f315b038e9583e6cd847363653ba552a4bb0aab9d8e056b0a33a02129a099d37b9c5e14039b461d9a6fbabc1636132bb56faef1323aa8af64ef7ec9fb5cd47a1f9cb171f1037038a8553add042e74100e39ee3d7bf530c99b697802dfd3fb36292a581c70e903f3463e2e074957788af9dd6a00464e60d82dfe271afd1594eb6b80cd4205fbab03e2ba5403afc40aac31a869a638af4c6ce0408d7b072aa16a6c19922b216ddb3403fa9db84fd3bbe73cc0e0a9c3ba29eb804c8e08c79919a01c5cb96bf4be4f446205581e03682bd7c5fb476c1ad8d80575deb067e9334290c80ecf787d2e66ef6f700c19021148021cefc48f05f98a034e1e4d09d5070f5a35fb5855f0b2cadd0d01d075d6f7df203a435e467333dc5b0306be91d2cc6de99e8cf5ca925a23e986860418abf69adefcec8287b2899e4652031797680a4946915c1a5903ef64b43f5ab69cd067c3db4c2264b923f0acfefb2505581e03a786402cba57f3aa1ca65f02d1924c14250fec6f8aabad750c4ead35800c0348014cf3b01d576c0005581e03c15c7ccf6ba615f9892c3d456d928dc3b5b6aeaad34c85e95206e96350040305581e0318380bf25ab0a074f15ef9ffa87ca8f6e77dd57e393a773e150f5d88000c01470120ca06b24fc00219ca9a0328661d6a0e185b88f261e2d07a85eea7e17b5593cf2bb63bea8a087836253f750323faeb763cb0b6faee6155598e54756afec4a03225377e31986479dfb13d8cc703e2cf60d36fb25a2d2fdd3553f504c30449cc572d74f224fe661eb0560100c89803e5d28f3fa7920f85e7e91a8a061709891c2de0520ecbb721e2e7420978bae94903a5248e1bfc11293079fc1c1c7698cb37337ef52f4db1b857c9f0ca4b9217202a03fb1f47894afff52f1d3270a3080ebfc9a70bd4205ecf5d9088982587b184958003e374ee91fcca81a1663a8d3f1d10639a2f624d38aa8d23eea86cfa15b2d78d890397d9825dde2657709eeafa9dec5a1b0cb9f3481d67491dd112b48e47e743334d03b5f605772b2aec3791b78ceb3f0684cc52b65d998589396db78920fdc429ecf303edadbf079cf0800ee68f7813862a1d59d128168eb2ac6694f1c34706000fde4803bef0097ca1acf7e8cc8e6a458a13f76281721c0a8cd3bc944ba07d72aea0cd1c034f91f8aac51176347fb70866de2d7d575f7e4dd4c137c0fb3c21ec38e579efa30219ffff030dd2088da879ec446621d94c7ca5e9cbddf282ed6701fdde58bc6c9635711e0103c93d32b379f982e0a3c452a1f01f28b7077862e99032bc422a4fb45f6151214d03bfd453018e89cc3df15347b5f7886be8ecabb215244f6ff61929abcdb7d6c8240389917ac384e7e0103316d047c0e11e092970536bc3fe32e5f946febcbe90d5db03bbe312e2f14243346c37400cd13ea762b0ff29db801e5d345125e2a1b9febce703ecc024922da44ede083fea018922d3f958bc28e7e3d9785364b51a6998eaaaf3036f70405854b47b02985d1b9acef1e12085576acf46f2dc7fb7a2e83ab9c60baf03925bb21e1cd81b232c8ede310f1ee4548ee547353a44632b368ac3cd47c15cbd038291d25c9a243977b5e4837b89529c31d0650dcf2c689b16f665eea7e963b5eb03352ca931a90d564d02fddf3be696a57d0819562ae53e68f8d48755370ee279ca03ea3b87ca2cba6c1bc987d306d68c23818a31217778148ade2a026ae250cdabc7032cf887c4ae263e9900a5ddb59d811caf5c30b3b5dbd513c35563024de9e71b60032b0db20ecbafbbd9a84da04f28681ebbad00dc0d62437d78c72953a6c9c59af70219ffff03eae79aba83eba9d7ec1f1045611d8a29921951a04c2add5e64581dee95dd46400383dbbf5c068aac5afc26559d88e54bda309f785853dd26e7d39847614075397e03bd22946f9b8b7cbd7f314d02cad4a428658c3c37ed99aa67c6702eb5f0989c16034eccf1457d9565999d590d8e4c44de32fc2e7edbb6182c665d771cfcfbb45df1035626a6a1776ce9307c9e413fc620001152f233c52a615b5bec2704a72e5c682b03f4c7deca70707d194805aaa3a76c9227c664d192dae051f087fa9bd503370c3903c253b927efaefb686be904c8bfee737499270a01b959caefc2a6f3ded871235d03aa88f8466db6be1be85e079f6801dfe25fcf82fbaee339fb315413fab29a49b0034f7a68629fea9bcb6105d8848f4332435563e6001a6ddd680acd85d8f07abacd03803ff1e779b899f4c4606c19933a559fdc4f345fde0b5d989e12c809198f542603a038a3637517bbad38ad5f040ab1a85ec813c1aad363b643e53babafd2dc32390340864fa2517a44339b93a1ebe157815c650dfddf02a6030082af1f5e5c09019403313cc95b4d70ff657f04a1fcc2268ae4f72535a2a97f0a26da1efbf81a0e8c5f0219ffff0382d39bf02c890b672f5cdb175dfc35e044ad840d43db62cfb547f2f17917cdbb03f55e2da6f045c4082e7fc802368d175185b54c036c3fa1a796413903dc2fd9ca038b34d4ffe03fee1892ec124d6d5eb717f63f17c2c8d4f3b9f23344bbb8717f6403fdcf26902ec64955c71513190812958a8e767610b22f42a7ce4608fe3f8e01b8034b84d9bc5e0c0006dd90f4516b3db41a8425c7408df967af2638e44ad6ebf876035831263d8574ec9a03f8bdb9c086a937a2274d5a63832b9bf4f0d13a55fb58f60219ffff034b9e85d484ddfea45ae0eb293e086a0bb411e1e97006fb25654baa0238a3a5e003a125aa0413d5793e2226e8281b82b50ee91cfd5a0d2bafa3fa08ce3a4173f6d80330ce771fad1d64de8eb8bbb9863dd7fcb86883a2b860c3c6be6cede60d8ca5ca03ab53d9a0f3f58c74c3323ed86c244d88fc5109efa9ffea373075c5da4158805d039f0eae827d1dbba3281910c52a5f66260a0aeb70c9f8c822f9004132c09d3d9a0371ab2a6b999ef7c83a9e6fe7db94df0e33b1b89c4ea30550304ed84134063cec0349f6f1e73e13adb06efb8a701696f1a606ffc5cb225db3c60ca9728d7c08d6ab03f8928b00082ae5cd0db791d2f5021d55db6bccd176244565ba8602bf8e48403703e30fc1ce40c6eb189e67dd2cf4fb427b913ee830217a1ad12a7b5bd1037dda6703d8651ec9c078ea282c8f00b5d6f06f53127ea6d7f8a310f9a7df066abb39ee4103aa8b6ad7e4ffe5a1303422dd7fe4cfa16a3df7692572bd57b025dede6e6ee6af0379b35abdab25bd46e4a68c173c51aa254d56af91cc21b570c7e75aabe540e46e0387a9930b3f3fe1e95848f689812af8df098a87b477827f67f785ded8c85da9e1034a4305801c20c67effe92ab95aabe7db39b5fb363f0b4f864cb584164aaa0359032fd2e1c113009ab49d66565f4b3806b8372e711a693f510f1dcb4b7050a9ac660328c4f5ff2b00e00f72c595e5166a1c6044bd71135b337610e1aec576fa22455a032665c1adf8f5cba7bdca783ed9c2a9a72b07b146fd5db6009e609c034f6bdac30339494ff11d027657d55e111de3a52ba781fb904b71af0ac386e43d95818373f903b29711f613eaa5cb3e5f13c516b5a2a3ddea7fa95bc88e6ee5777b8c03a54f24039b7bc2d2f8182e0de1490741d5b4af81dd0baeb895884c5cb38bab72e861b58b039ef4bbee8de6a4c9b0e27016088edcbd4e8003027453773619e311c42eb3b4b5039ff68d1acca8c579884fd11ee727262bb249eba0b22b97dee7e33ba7da7cf4cb0319bc710b333d73edbaf709f4fa861a5df4e61bac0519e977415c4538db5d42d3035d5e545643c2edf37cc204c789abace61ff2646e5c1c8763fc7c961677569c4405581e03fcc62ed4d6ef70eb5ff93e14cc939c4b50c886913776afbb2701b6c3400c01471c18feaa07757e05581e037effe6a22942f5ae2c9c715de0c71ffd07bd50b565529325c341f2b1200c0146105ced2fbb600330d48c7f9098573d652f0b71ed5f14a03f057dca4576bdf5c516b12aa17947c60605581e03a7cf50f773ef24caec0f205043a13888fe172f1fb5629e7d43a13d866007011bffffffffffffffff05581e03f318b7a561acc80c697e28dadbebbfd6ce06780017962098f97d6e7be00c064612c7651fd1c003672996b2ac8dc079bad0c8cca360280593122a60b743ef062dd5823ed30ea9c505581e03db7b95e87b4e98c88cb278d408cff723acd1da8466ca73fa0a0079d8900c01420bb80319ad13e8668987316fb3c7972816af302eb9b94c1845633d5d5f3dcd0d123d660336bca8e3820b77595de7d8c61e691cf3aade8ecf748bc35592766d053506751f030d4aa59d79447e4b31f2d1deb0f18d7fc97e5a3e42a54c5241571a574c6ad6d3039e69102a410e56f5732bfb8ffd49966230f2717c475ae252f17fdf369f9d970305581e039b8aca5ea587b46deec68f5495d5fb456246721206ca87b8123aa4854007011bffffffffffffffff05581e03986a112bfdf61aa2cc12ee9c634341ad2944d8290088b66e55b03e99800c0146666b869e09f005581d02d80d6f7f860f35f1134be571f35ce283832efa60775ba457e9adfb840c0c48034dd519da2f4d0005581d02f9e9630533604c2cf557cd593d8fc8a3e3f194c791245205399c65bf0c014607b8bb6f24000219800102195bdd030f93e227d9e9140f30541706f85ea3508240c7728debcde43cefd6b9399410d30382c8e09673c226d18d40f2cad06e9b12938155304b96eaa474da012b1f663c8b03a7e569ca313fd0dfe5a1c29c4ce85daebc7247ef6c8d33d33ef705e05320018303242404e590b181cf6d94bcc35552d3d751a4ab51623d35e7c9bb4973a8fe670003416af859d1505fe7da9ceeb62f9bd5999f0e6740ab1ebe6b044baa5eb894fabf03321dd14e0271a01fd587bf30c352c9a032a32caf74dd85a4995f876a91cb63f503d87afb4493e01eed3552d147f9748c219bbf5778381ff4d20f40c0a0a19f6fe7030f7eecbf744ab89b83f8f615934e3f502b32cb3c57f3c225fd58a947c0b92d72033ffd03045d5a812052ce9220047eedb5fd006e9466b6571dfea66dd45cceff9d03a1ffc041048a43e653a369deab4c34c8d024b413d5e721efae0cfdcf3f10cf8203aece8ae8ce90f5fd4b39df10017847984c2681007bd746a5e2882fec8442dd7703f66abf4b0af63d4a48b5449c2bea20f6bc91970d211f62c63636f1e38607c972030a227b555bd8e0952dafd6116e963a24c563ea0e3451bf26d5ad28a1eba286750304d9d0f6592c918cbdab3861cd9f82fe3b0fb59a78b363e8c04d72ae8a5691750219ffff03d0d6742cb0efff2087993567fceb9786cf3d03bdb89331ff25714020344da9fb034f97a810ea5ad603f08c34320ef4fd9145d0aba2aa4f44a5dd52571b1601cb92033c0663d7fb7a636cf85b6fad6c531cdcc4d25170a7b2d1bf7727f8cafcf208c103c37c432dde5a5e7e745dd8bf55b68ff6cf23477a79d2fb3979be7e7ab632085b03f1bb73cb7b20e86b5d979e45786f2a34490953ba2633bbdfefa96088728d6979038c776d157202486eec4453d6308c3619cef7d86e801fdf525f1eeff684547986030c3b7da26aa0b00fac2dbe83b5719abdc61a575b3584b8098e8ec72e6503278b03e79659808afbb19b7b44a9bf771bf8b2179f6194509797a1218c86402bea76da0219ffff032832038730247c9bc892df92599967d1c2eb3b6d0054cecd0758967d6a68567c033ae1121855cd9432fcb76e9fde8c26d13c01464e239e0970ac71e39a54a081a903a38ebbead018f5ac780a26094190adc17f351874d4cab17a2e000c97d392b1eb0219ffff0317f55306d64e0089e9b5a85d19ee339c28ac76bb1dbd6985d0468458bf2d43d30308870a0456e360a474a1e7452331fb7948c178ffad7762bd758991376dd8321103e5e3d8f0887167101a0c29bb39d297ef4e8a2fcffa0138d436acb6b820b1f9e303c0f43babc954da74d7b9d2ae9e319a6fff7b6f2cc1939fa9da2e82f4cadbaf6003f4f3b26af10a7bfdaf8d85a8d3269404685b460a73accc2712664d6d72114ca3036873172b22e4d658e2dbdf8d20ab59f5b0198890ce0c533f5e42117dbf8e4ca90384ad74b5d8facb335153cff4e8d0d7272cca692326e68b8d05d495ddf9e39ed603c712c07ca8b5cde87e24cff46ddd859e000a064786992ec9b16dd5b86b72655b033fb8c01bec4b6772fb70bcad08b8d04bad700890a6f317c25d4c12d2f617409d038e9508843e02c79785e2648923d365028ea5444442953786f600b85785350cfc036eff1ee2270be9ed8fe362c059fd1fd9297c7d01df56fbc02d6484371202b91c0308dbbc358cf245193f5305c93a8f83e00fe32571f224277ac5e343df4889358a033441a28459bf0013dbfbb4c5c214e74e8b0d1b86afe3de245a7a1e595ff1e37403e542980b7f270452307b50aff7a4d9c8ee1e5c276f6cac9ed4df387976663f0c034172ed73b7a7a27043f5e062ba6dbc5a35309102618c6ae15d44597d30bf10df037c3a4eab9d456c26b064d8b4e6d08ae634a2b3bbf63263dfaab23c64bf5d286b03687e6e35800243f1baccc4ba3fdb20db9c2cb04b084841e85bac22b5896953b30399e90224c3b9875e1eae96326be2e1c872aa504df1441c17f72aa9e1f44426fa030b7abe521910079e29bf9d9f83237e00984b384285022543cedb0e39c9b7cfb303b0405957391500a1110a46c8e03f989f9a23c4f53d2529ba99d8eeda2226cde80605581e036232a4b2c000e413815191de8fccda98af457eff63c2600b72ed0a0fc007011bffffffffffffffff03e295e682e5744251d18a6362e3a8d465ecf9dcea51f73862d7e938417580087d05581e038124e028a2ec62e96b1f643712aaf66181fc821e48c686139d65054510040103d9261fb94cb0fbfb4c7d34fa677191dedd09666afb6d959a3372cc31ce9d9d3b0307be01e7e7206fe31ecee91ad75dada65ad6ba433ae647a1b9330469f7c6677c03709eb5dda2147c4fb819a20da7a29219edf23b78b89a76895cb5bb987352df3005581d032f6a14d47f357f19a62e3e2160aca86b583990740487a7e157a2f21007011bffffffffffffffff05581d036310c82aa4c01a7e12a10f8111a0560e72b700555479031b86c357d008490313b2c583b060642602183005581d026d18b5ed74eadb7c5c5b22834769445678c0c8168fddeb16e6bbfb5804020219080105581e03c1f7e420eb4d9b12912b3884e45c9eac000f2f675b8cc9b77035855ab00c0147053b45e0d7b72805581e03f271f1cb20bc5b0b74aa8551a2db46f5a669e9e60f67340a472e20c1a00c0f473102fe5908807903446effc83a5c062fae4e244e10567ba2c9e28bc62c186116096de7ae79e49380034ebf60e22debe940f4a31bb59a7ad1f0d31d3aed30fb722e3599371bb31a292d05581e03e10b65d9d50ad3f2ef4b13bbc70e944c69c79a6b2289cb43fd833fdf6007011bffffffffffffffff05581e03ea1c35e4e0ebc8269e07da4b4fb389ab368d2c66ca177aeedb19006aa0040103f84f6b78229db0a19049b65c43edd3ab6d9b24db4bb032cc39bfaca38813c1f00219e7c903ab5fcdef21d3531717e4af06222309d853f272b031b582b46c4891657bc3b3470377be149c6cce11097aef33e0d37a10582fc0546c61d329a3b064ce9996faf3a80388cd992890214477889afa32f75d926e8bc483d184bb083b48f6e761338a7d35034676dffbe915bb0b1e9d983cac9c7fa2005f0ee5a5c026c86677119e5c4ba26503439e5b1aa4f06cfea59c620425f5e4fb5a0e693499bb34e142d6891090e6487f0393a1d5d95e3394d2f476497829c8a9c628ab1c83739b35b1a3bb9ced47024ace03e16795f26625288efc9af9bb552dd39b3936faf0026e1d16cc6d07d48f79916c0219ffff0326b3bd33e43516e810a40673e30fb13be60b4015cf25d45392289b74fc18d8c603d257346de7c40f1bacad051b0ccadeb62a9c2d8d119b7c8246484e43c64382e90346d913c1f86039d0f403d03d424df8f01c1da9d28ba14cd193e8c119fc893e7303de53b7911ff31b907b2f08ee4a2a041b3254db846bb61434b75ae5f704ae8f71032fc9f608f937ff27143dcef73469531d80b5582ff1df82b3524ae50b0bdc1a3403cb41dd1659a48535648cba0603b3b0b459632fc9da02e2c24e90973d2348fb9a039e822d1458af4827b43622bb993ef4954234ab065224f077d274173d29424b0903087f7d205ddaa855d2ca99df723c6688271bd4855bc22d1355b05f93d875aeea03fad1415b8a40d0dc1c1646c36240f26814d0427f5e0804b452e25e86fcac659c03d971ca66e7fe60c16c0658eb69774417bdb2b2cc4f61a610a3a79dcf0a9982c8030281aba66f9c9a0a3c05b8b04dddf277a26d950d92da019aebaf0ad97f8dec9f03324bbe10e64289008d179200a1d5f4f1b061aa0a57a32d21f41441304e3eecad034eb15986d3b63e0cbb96249c3b9d78ea587504c4a89ff18867cd736ecd48a7350219ffff0398bb2a3bb00cc47bae6eca14c6b243c663698a7f23a864a777a9eb60d9e51d9a032daed366a2829e3194812581164712ec7c39ae6299b00e44f749953cb06705c803b87268a782a8c17f94696f0d7d42b44f5ddb6c6b99b420dcfdc84fd6b6b105e703a0bd3fb593cdfe8ae3a351006103b9d1a4c7711c432877d55a92b6eb9f15896703b23501d940e9366375ae83439dda5a84a3d75fd218c1ebdead66f7377d6cb0d4036fba59cef598e7587e56bff58fc40f8108b996c874e3ffb56d52e471b7aa4bb003896a9d11e78099fe5e55c16d41989f2eeb247ca8e2f83d136e998567242a62910219ffff03a6eb7ecec629ba55db44d283e944b270941e5a9e6a4e73504fff5458d445bea90391f772041639bc0211b5883e8ea8a996df1761417e00536e6f486e938c82152d03bc28aa4dca8b8f7942900054ab7674a9e50fa36de9725dcf0d65faa5158301490370e5a120f53f1e5ef9f60b78762a506f1eaacebe620b0d4f133c65e1f8bf3738033401964d568b527b02cba3a12c8f54f9ed1f6a094e0048a0f533c7eb4d38d7c8032bab2fc4abd20e65d3363fe3d7c119dc9f041f5b03d6c63f49072229f747ecc205581e031515bb260b4cd846f798f65b5bf1a4c5cd7b591fc4e3e1256186fb61800c0246065dd083700005581e038eb6e00c0eb41256e61ac11ec4a66a3a3f2ef5c7e98215e619dbc9bb40040105581e03f1ce1b9a7770cf1680dec471a4d1432cdc1ed9363a36d645e9fbba80000c02422ee003717d2ef80f1200b09bfd17580f030897b9c7d4ff16e8f5465c31138fb0a1181c05581e03631b738126a092ad8b71e55d6673dd0409b1c9d696a07b6aabc022cc500c014701f521af45700005581e03b34c731704890f89f961e2d356ce7e3708b29918d84383c3d32ad8ada00c189e4807f2bbae07eea29f037021baab314e964c96989298ef2a84cae1a40590b2a09f490845843aa33532d005581e03a47fab20bcf6ebaa11a0e6eb4b3f8510f630cf65ef36f8c72a24fcd8e00c01470812034118520003647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d038ed16de5de69c10f86dd2ae0c5b9c450eee1f5498192586dc6887b858a6fb43905581e03175bd0819351aedac752bf4aa6e8bbe1620eb45693889016431b987dd007011bffffffffffffffff0391618b586a61f40a3483005f6c051e4e3ac3b36df898e7f94044d16cd861bdbc0219fe2503866f7a9bd7ea8916c41ac8d486d4de8c1d30c5a833b4ed2a0dcb357a06ede1ae03302aecd68a652282edee744fabcb5260accaa675d6b50dfd32fe0c96302ece03032f87ecaa86948c9d8dd68b20dbdb7be306ec38c4d154e5f73babb4c12f9d8abf032b6e43101c288726900dcc1b2865dfda56c2c16a3ae3d90e2e76bdfc9bac5fda0352725d85804858c0bbaeddafc62b819452a0402c43724cc5b423999d4dfded7a032f0a95760154073248dcb1f4a531a5b566e69496bd59878e3e01beb3982ba35403c6d8937ae3a3dea9af6601f73ae5430d8ed84ae0d2ad5cdcc1174949f1d7b2ea037826659b37650813971ec8148f2670fad38eaa74772f9cea459b4a619bcf7a4703669ad5e10ab91ab382fcad9d50fc17af92df90ad097e87ecce9ba686edb7f5050219ffff033055ff6943b34f3aa9257ebfe03f6f8e477e3ec0eacfd2023d40d6784c6f94c103fa391a946f6b7c88ab26e8a2f1a822f0022ae77ab4289903c201852708c459fa03186fbe12eaa96c9501da1ddc5b5c034c90bc26acae1354ab383be98ca9bdce7803cc1c270066731b7757ad2ebf4e41a97b752bb38ad6eb6c89cd25443e1e0e109c03894acedde595981e0f09f469d7e81c947d5dcf2040d5aef0ac1d4012b4add2010378d7619ee1d7f3d3c80c9ff5743fee398cb5993edc0f927fe3b849c3eda694ba03d4da678ac7a163b1cb17bc79d543a08805650129cda526a7a2190a4527a4ad5603e385db95616059ae6cb768f45fe4c3d0fc784e8ea11758cc8bc029b86d6b5d5e03c3ed2ece3a59beffcb7c4db158ff059ae4761a84405eee1a7fef167787c7848903f7afe78006126b6c181ebeebe1d33e8dfe62f371a87abe910b226edaf9707893037f8e79f9b2ae6cd3a315a9f998d77d269fa2568e9c58fe1ca85d5e40f1ed4d6a0330be166604de4433aaf205dab8c3bca42d2931936cc2b468044f69f0365c5a6503cd3a3dfb00bebf969ec64d1109dd0d3ab83fc956932ee7f61992e24c0468f9680362b0e2946a7d1161e23f02e62dc432357cd1f7bd60de8d5d275ecf51aaa1944303c44a667e0b4c05009b01ea5603850589ad564938f3df5da661bebbfb46623d8a0219ffff0395eda485318180940c87e80b095e40bbc4995ce64bbf45f7ccba572d76228130033175a9a473bf5fd4064144038db1bbc6cbae3ffe7e9ee1ff733bc0d1ce3d8f7b033a0472eba43df050925f1ff6cceb1d5074d25e77f9756346ac4b675f9163608a03170f13bcb5d569e7374bd647aac46b0520c28c1d76c49ca6c99323833ecf3d5703e1e97561c79120c534b10b3b45bd81f74d1b0ae62a29d3d33bc98f66b91832d9034f452a379d466ee2abe28b157585ca87cb008e11bd5b4ea491d4a3b9309e606a039150e3d74a29a11ef715b933fda1ae611bfe7c841053803ec563c6370ac33272037b3545bab1d3161201193c8b5be68fd5c370904259f21003bfd8adcb0d62186b037deb607c0611a3c59fd76d298c94f4d4257e73024915cd50ba45569fd3a48cda03aff2b980ca8632d86e7e8d079e9c83fde230fc5abfe6d05297bd9b30488e5f1a0382f090c25b51d4f235cf7e83f7400317d9f9423f90764bcb891624cb8cbb3eeb0302e8176c525a258d9aaa59da8107affe5275a28e8c7b3705664da0a25be48f680395be64e8ae568e532c0e816b539a1221a7b7b05ec806c1afba9f17b1dca19076035119790aa890f1f3532d5739ebe55c3bac091826962830285005b19e8fe45ca903a20ac6195be271e0223546146983a998d44ede7bb4cb77e28616aafcff29ae940219ffff03820498262b2b2f2a1110c2658dc4d342b7034a78c850b4f7fdff7ee13f11166903c4b875850c4e5b5df6d2fda02788fd32bc30757a28b5025f718390432f7d18de031ee50258fab36cb11c7141d869902f0c9c11acd9ab9ba9c139626a7a5b24c65f030134b2d0b5dacaaa7547f1c14cce9a639a8591e392a75a9207c55c5fa3b0380403f9777ec0b87003f2003ad2c19a862f2dca93dbb0d58c16a4e47c19ac0a3a9f860312434c953008352fe724434206d8b18aae7bc696ccd8311fea130b7caaf7ec1703e2549f11eea52f07b82f9f0c2d4d7a4906d5cd6324941f2d852a03e5da30e503031b2410403f271b081659bcd5c5f236e4c4faab010514e957abc280f1d837163703673a559d6c372344d8cb8514e20276987445b35d4404087a98b2d95d74733196033e82fe0d4be0d64929d4988aa67e8628f7d31402df685540a223ee07692426240386b29102d8d0fef3c6ecff6163b42b98177c56b6260e898c1ef8e2eb33ca799603690c1d8c9ac68e36ab7107ec67d8f232d0a7007d95c7ac608d9d1281793e8d7a034b5d5b07d4b74b2961be8eeae8d074dbef44ffd1168dcc4a21080972b263550803f3413e2b25b309d1f87722ee75b351e44be93e1720e2d922a56d59437ef28d9b03c41e49d3cfb1ca73769d9b5457bb3842bd028e4763bfdad45a88020af0c9e88503c39deeb2ea94cbe08c816ab5bae12c1f9790be2a52b162607f615e766855e8b103f5858fddca7763ad608aec979d3f4edd2b0f630e9bc7d0a5585789ff0a26deb403de4ec0ba3db659770d90673df4bc7b33e2860b981574b65f8822f55e87d3c8c003bbe4c51122dc81273e46420d71e3bf7aa57fbd71bdb8b1e14ac5be4538a9ff6503d3f3d860843af22ac6414268c369d965a06d567f556c7bfefa3f98bd7348223e037603117e5e95c3cdfad2e98a2b6e01289859df0f4f3a9b3bef44873ef713be930399580ef30f69927858a4da4a7cbb670ae92342c40aadca3b9ae29d2309262e9403a2e28ff2271de3d49b00099ed21f7f9f06553554fed900fb31bde984375a75b5030fc1a6577c01ae7382e5d108cd9e78a9f16dee4c6c4cb3309003a625513a464603f80422a06e10612eb43725c2a94f32f08c07948a3a0e84da155ba51406eff9ac033ba872a073cebbc9bcc12d604bdee92240fe902a6a3bca88af5449103a7a4e9305581d0258efff8c7afa9507a9696e4045e7c618d9351b66fa66bceb8512e3750c034736adc5ec9ad90405581d02294c204a5df404ff94319980d074ad62a0224d9311525785803f324f040103ac899fcbb131629802b64f846c50401443530a6e237b2fe9688faa10180445620219908005581e03ada2eb1403a4e4243f5a4f9e293257a189d1aefe3893b37a6ea924b8d004010304f7aded25bf3904cbd0914deeca2e1cbf2e8f951cccd27a274f6cebf994451b05581e038745f812848a726bd16abfc9d2c87e46a89e67585703dd53fcde5fcae00c01410105581e038d380bf2f08fe9340c8a13ea1dd74e3897963caa656ed954dfd5cd1330040105581e03ac9205a448b6b76fb5739ad71b1639d3cde1d670c27c1c4e59070c5550084901158e460913d0000005581e039b38e2a5c21326283b582e5e793497d1c162e850fc48d5794f24c953400c014707a86493512050036dedac1db1c68a256674c3911f83cc49c455bc5bf4ef93764c3c8647cd9c7840037fbfeb2393cd73b1e2d562650df775083991238f7eaeb7dace79f660b4308de103e5ef183ebbb6bb5ce1dee872312818125e54e9c9a66e8d7d8461667d1f9253600219e9b303fd95406ac90b4b96ab336e6886be1a19cf767e7ff601ffaa6222e061dcb8b4df03630fbb09712bc4fde6ff64ccdbba2660423421f482d08efda2de4ba0f1404a8d03c1e5043502c68cf6067dd9ec36336ceeabaa926e7f5ccd717a633cd32a38febe03fe807a56b927341ed81c5e783557d9404ac1654a545e426e0e570b9793412b71031e136feb4a94ae8bc0f74eba4db17e0f2d62b0905d44246d79fe2798e6ab893a0374bf613d6a5ae643a7223e1e1552f80109bca66925ab3ed8016d8c7cac0c8ee50328c3517954564df37878707bb8d4d5ef7bd3b3dfe0813b2c3e7b6d8c84b46c56034d17e7aa9a44e1d62be49e83aaaedd83f2f98b931211440f01ef4daaa25b7e81036c333872d77ae3d5efb87d62bdf007eaefb5ecf6c8eca181122ea7dac2e38c8703c931959e6b532917dcad3cd102168a050f2294b378c0877457dd039bb5cd63c4034ef4d4cba47d07417a1f3648cbb06626f7ffb8478b141019d16944c574e8b76f03c8ae3dbed9c2b67da399e46dec1917a38e6a0ec6f1690ca614614f1743f8e7a30219ffff032f1edbcd35e7b5ae68dc5b68d2072afa3d8e4f0dcb8b8c05b31108057408207b038fdc3ac28964ed515356c54bf9c14fecb435ec8562c045acb25925cecc089fca03a34931324d4bc6a6a50bcc82240b08f7d5b9808d02799f4762246349de3c05cc032dcd48d3751515528030ef09d5aaf10dda1a477781979c46f47c61013536d6a303e32942dab2e546384b60fa3b9d6e94dc9d9534df9b51b9e61b85d93859a5795b03c0dea63df2db5d29ab6aee4ebd38bc8b9307dc3bd5c28fed6540f43e100a47de031d63a917300d1c39f98485398609b96daeec40a607eec5a0bb782255fe3d97dc03652990e73831184ab68ae9b70452a854b09cc9de20be6f9ce11da3f57ff416670219ffff03b7740f5d7e3d19ca8da9b293e4adc84fa750cafc2ec4a04c87e5feaab6eb2bd90219ffff034ae7a0d5696e2d8a44557fcfda96f7c36225ba2595d8fdec598e0c2089fe20c0034a4d5a98e25e8e06f8ab457f871bb8e6c25bd557588e333ecfaaac3161eaa17103bf2230b17384c5b01bfb65a0af39400c4f904f33e0c25d4526340dde4ddf946f03ce0f5407e0ff68d90ab1e3c0c5f67ebe353e39122d58bb20115c34716d788e3f037288008a4fc2cc62e40d2c9266e08cefbfa6be936ef5641b90b46b2ea1fa39740219ffff0333337e0bce9fd0b735c928ef811faf05785d0a789ce58382cb587a645666a6820373000b8a0f21a49d93c9f8466a3668f69683ab5e0cf5631611e81bc9f7c7254203ce2a28b92becbb2da172fab4fe17e63bbfdcef823bdcac0b897131e3ce9fae2203a0a452e0734002cfa24e1a199e1333bca6c1304a640c08e5eff0f8fc3f4b662a037e080202316f8106feb4c1982b3119c96e01d26f5344cba934500a721132b5ea035c99610906cf063607c5fa08afc9a311a83fcab1d356936e40f4d083c67c3104037ece001af6626b48e63a0f5d1edb4f64d7ea556694c1151c25b9d3ceea8a042803200ac4ba9942caa7672b854a6fed8c68d78be544954693f41e07843d20a0c15f03015691670fc2b3701d14032f4684309dfe884a4d66ba00f308aeb376dae72427039f9a7672ecc60221d0990719405f4bd27b8f7ef942d6931320d9504d374adec60312185470f3595417f23298f843d79ba076831c0a5b4dae7960fac3dd6df412df030b0d8835b8b0ce4116bc2e10d117ea45d4475e20074b58a1dd45ef09c9c42ae1031ce666fbc8783369b38c0683bf985fa985c42cd137ab3e59e83dd031bc7442f403bf45a8d7fe20cf7941e1901672366956c4564eb709724f3d415043e7e7eb04160331a13ecebfe5ed3cd1ec9a15c7408a2b03a31878dfbc8b8c25f8649d13302cf003179c3e011ac2a70c096401408048add7c0886d5d924b6eb6320d30594d45bdae039534233bca18cab9150d0a948f800e28515bf2884b32f3b37c20d00958236b87038c8e854e4633a366f2c8eb24ed9991acdffa121de7dabcd86814d416b33962b503ec2007a19109629e5f991eafc2eeeb7e2fc3d93aded579983926544fb4d18e61037ae934870effa5e850a4b0b23b9425000da969943fbcb93116e07c896f32b79f034d18003077f3dcb3e8e91a537e06e98734a2e3d3e2a7125d9b6394368b56b1b203d3b6f56cedf6585971ca2ff6b25c419e4ec6a59af83199bb4dcc717ae082617b033d9d99ddefe17e7f63c90f410f8a12de8b58b9c4fbf4b32ab85c2dfbdf492aaf03e851149b00a5195a28745c0d38989fac3513e8dd0fea05eecf7b44919d38577103ada9be67c1b86bfca5a17032a84b34552e01cf59fd8feb4fe64e9ca628336c0203ed8b2c38eee3b4e316a16bca755f127006498095cce82269df5aa40db6942cf30351ce73a5a8fda7140ff3ac10d68a25a531f4e8c87c619ca04e7142409ad6aa6c035710f057f209e749c2bb7912755ef30d8e53576d22b52e77a4f45c11dd3bcc0b035ae5e16831ab867ea99df3a68dcbd748944f32c789c15a46a40a8586ce991d3f031b7f57ef85d8492ea3037d9e4686c5330908fcd8d79722ee9e3d6630fe47bbd603b82afc9d0b639a4ef2b99b1a52415a6775ede83a113cd5593ccd07ca97010d5903663d78bd6271b402f4063676d76e5656af8ce4be3422cbf261e050698e24c65903cacb771f02cc9fcb1e71cd8dc7f982f4440d73588da134c92daabba306bc4c4b0374af27ce45edb9540c5f204902f949190a5f18424f3e5ced87c4f9eb6741a33a05581e035c637e90bb0741ac2bf2f307846d95c0cace82cd30fe34a772aa2ed210040205581e0332cbcfbbf0cdfa848301b1096fecf24d895d928fb5330a8047e0aaef100c014719e720390eb00003d4c8f422a0d239a4d256cb420c431beeaf695f05f221f27438b0f425882bb2fc05581e03356b216a321f36554bb54548b9a2b82cbfe830e69a3e08ce13caa79e200c01470252f4b991f67b0399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe908032b54231c5a530dbcf6ee9c3188a7ca52b2df64934257d811c1919fea7001f57c05581e036e4a2ccb719645bf5962c36cf80c7815c3e09f79bbc9752389868759b007011bffffffffffffffff05581e03a7540d86caf2e4f16ba191761cf4715b91cce5602f12caf2c9e7e27630040203e526e11c90ec60dacabcd1b9354cc30c6f69fe67d1e6cbb826fcdaa6eb13d1a30458de6080806040526004361015601257600080fd5b600090813560e01c630202470814602857600080fd5b34606357817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112606357602090605d6067565b15158152f35b5080fd5b483a03640277cf2a0048106000146085576064604648029102111590565b64183cd7f100481015609b57489060011b111590565b606460414802910211159056fea2646970667358221220fe767365ecbf40522ecd1de1cb05111223125fde69ba80a98aa04be6f0c80f4b64736f6c634300081300330605581e03320056436aab89597c493c1be26628c166f83651d68fce29c70d0ccd30070118de05581e033b9b9c81060c9bbe24c52fd15935609feaf0dc95eae6a1e158f379c2700c0a4654122a8c920002195f9d03d97a2efc1fc72dac8e4c3f2a12763cdf05738782d722fec0d439ae0e537cc285036df1bece023c4c445bdb2db06476554e77b64d32aef1af7f62d74dfb34b0f7ed03b1219ab4472363d09d5d66e63ed2718c749029f3b52f49f2355aa4d37190a75503a251533e14219a2c1dc16c488cd8d0946d62734a966191133ff4455586faea7f0317e679343e3a81d8c48bfab7fdb41100a3db6e5c92a559b9be8e9e8df10b5db70354b7b1b05c8960adb95af7ab8d8259f327c36be17a6380239b23febaa0016a9f03142d79be922238d8c82b3994302e2f45fa325f5f035f921a174162f7bd315a7103eaf2ebd980367a5f7dd5641a88c3216898102aa53268e8009e08a9bac751d1650382893dbed2d02f9cdaecd4ad4e2af8efc928ac7854ccf626972794e062ab7b6603b0f7bca17d4f661452fdfaefc1b50555e1a46e179fee6907df1c0008d130461b0219ffff034aa226800aa78a33c9836066ccbba550bf8da0eeca9854e59c8c0134e6414426037802baa7f7124bc84da9b180c254620d7d445975920fcd3aad51cbb67a10cd4d031518d7c19a0b8e40c686a85bd14a66293e81674b26c3b083e65904eaf5614fa003f722a57618454fc74409c5f5a10cdfb339adf5ad9ab0c56f8400b5631bab89640219ffff0350626d7f65118c87c294680e71b42c3bf064e631958057812acf7f8aa4750aae03ee1cbe1d3739ca874547bc4feb78799a6963bc4a2f7b91747a2ed8fdb7995f220378c6258f45f30c0b47066bc5541de74073e292c3a0c1df214f5dfb2ec403a9de03a2d5c32b237a7922491f7076916e02691ca29a0e4922f3c2c50e6d5560c43f8b03d67749543a13e4f9b700728430bc2262f736e1551545f8ab547a54dafb331157036681a0cb7d69151a2ab42e1ef7021d97773201d85502b8b6c6eb1376c4ef4ce903cae46bd6c19284cb69d4a0d2638622190af2dc087c2bfa9e5f59f1bc35516e710300e8641c59b62e3230026cd56c7a2fc3d0626164d08b8f823171b868a325ec83038c28db78a6470e4dc40049978c54aa007e71c615cd485dc41758eb5066607b64039dc5102600b9792507590eda132c035687fc17f0af5832923bc9d23e12f21f7203d3853b977cc8d18833b7ca74b94486aa537e0f18bcccc808f73061397f676b020219ffff036999f1b4c08ea041cd18c4c113cc2bf0da43b3bca6ecebd3653b39679c02a82203c35a2183a942ed1fee408e6d5a0b8fdf7e2a4532bc6d9a540a7bd0462fb97d5c03c3d6d15fc96f73466076f4cdd53c8591b1fb0f1b1d90aed51b18ed93dd25225a0219ffff036c1656fa3573103a67b55d2e01839a5b21b4395b05ba86c133407b97b4a10d01036563e09f65d45501892876ebbe0c39ef5a8b29d9208799d7e6e04bb4897c1bcb031ff500b18ef3c07715f78824498a3c0737dc44bb995946f82b41a629159f1b6f0319bdabb5dea19cff6fde5587cd28bcd72ee5e4170ba24070f6a6002fdf731fa503f16b14175705ddb439a255c2c2803be1b25fdb87ae95216bcb7a610e9a9063360324394503bc7bab04c3ae1141256777ecfc42465d006ce4c09bf8ae3a0505fdec03fa0c79c692ca546e2bca4050d15dfb6fed2451e19ace6c8a45c256307152122403e9a87d7f00d36247214bac5ac23668bad58d0e703689a626311795ea662a8f0903d4d1eb3aa092873dfb631e9c717f85690d1cfe18f4f95b815fa1a034745b82fb0331f798882485ca8f70026b07efdfdfbc8a321ac2fef536a2e3d7a13fb2874cf603b222d031faf18b2125cfb48cd5b35bb5b07396f645d123f4e6d29ef8c3b364e80324bbfed77e3bf4d94330e8e7afd5f2f8415bef1985dcc285df500f1fdc7ca2ff03e086a416aadd0a8d09b64ca24c33e87d4d07333e253fbc463ff028cfb487522e03c2325117f7d97c51e0e576ade65b194144bc9fee81c7ca2aedf39025403da57503c317298ff11976832308eb7d2d5e20a0d218468b62c503ab7d787c117925cdc403727540e192d1abdee75c4d04dcfe05141d896d4df59d1d3434b4e62d232930e903fc3f397b6c9586e93d73efe0120c7a6f97f23be88d6e8dd9c56e27bca9993dd20373f5e2c15353050277b3d28c14c3eaff37b6c52c7a598724ba1cd5029695f9d703a08979fc8d59e672f084440f9e2752b06bb7594dc4e52e2c043aa90f8ab19666039145679165c3a2ec4db63d803f3ae1f0195c02062cac214cca96e9e450af3aab05581e037a53550dc399a156d54347ef50def8f425931c331dd2b8e53442208bd0040205581e03480a7c8dda2f8d183a8e975e60aba0e1d6bb1ca841027528c06d0f21300c0146b5e620f78d4005581e0346dc4933acd0fe8c0d3469bdbbd7522c52de9cc1c803e0a5f70e312690040305581e0342a72fd9151705b181ebc17546587d9113d29b35e7b87d6e75d5bfd2200c044702801a77a2f94405581e03d51b7fdff2fbaff38b64ad1a59df11a34c66dc0a2c648297d12c9e56100c02470119782e133fb005581e037c48cf7dabeaebd595de1ae697978a8fd4ab361157ccd3094d19998f40040105581e03e00c26999ded424d15fa5b92552e0638e325d168d234595c98c3c721000c014703328b944c400003ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e03e31911ffeab5320719c6d1778f576f6042a38712df31403962d169452007011bffffffffffffffff04590855608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100ce578063aad0ae5b146100df578063c4d66de8146100f2578063f2fde38b1461010557600080fd5b80630a5ea4661461008257806312ec8dcc14610097578063715018a6146100c6575b600080fd5b6100956100903660046106f7565b610118565b005b6065546100aa906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b610095610198565b6033546001600160a01b03166100aa565b6100956100ed3660046106d5565b6101ce565b6100956101003660046106d5565b610244565b6100956101133660046106d5565b610321565b6065546001600160a01b031633146101775760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e417070726f76653a2041636365737320726573747269637465640060448201526064015b60405180910390fd5b8015610192576101926001600160a01b0385168484846103bc565b50505050565b6033546001600160a01b031633146101c25760405162461bcd60e51b815260040161016e9061079f565b6101cc6000610416565b565b6033546001600160a01b031633146101f85760405162461bcd60e51b815260040161016e9061079f565b606580546001600160a01b0319166001600160a01b03831690811790915560405181907ff213750e75b7d8975215501c91778a99d0e1d7e30453ea61619aba02b5e0d17d90600090a350565b600054610100900460ff1661025f5760005460ff1615610263565b303b155b6102c65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161016e565b600054610100900460ff161580156102e8576000805461ffff19166101011790555b6102f0610468565b606580546001600160a01b0319166001600160a01b038416179055801561031d576000805461ff00191690555b5050565b6033546001600160a01b0316331461034b5760405162461bcd60e51b815260040161016e9061079f565b6001600160a01b0381166103b05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161016e565b6103b981610416565b50565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261019290859061049f565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661048f5760405162461bcd60e51b815260040161016e906107d4565b610497610626565b6101cc61064d565b6104b1826001600160a01b031661067d565b6104fd5760405162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015260640161016e565b600080836001600160a01b0316836040516105189190610764565b6000604051808303816000865af19150503d8060008114610555576040519150601f19603f3d011682016040523d82523d6000602084013e61055a565b606091505b5091509150816105ac5760405162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015260640161016e565b80511561019257808060200190518101906105c79190610742565b6101925760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161016e565b600054610100900460ff166101cc5760405162461bcd60e51b815260040161016e906107d4565b600054610100900460ff166106745760405162461bcd60e51b815260040161016e906107d4565b6101cc33610416565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906106b157508115155b949350505050565b80356001600160a01b03811681146106d057600080fd5b919050565b6000602082840312156106e757600080fd5b6106f0826106b9565b9392505050565b6000806000806080858703121561070d57600080fd5b610716856106b9565b9350610724602086016106b9565b9250610732604086016106b9565b9396929550929360600135925050565b60006020828403121561075457600080fd5b815180151581146106f057600080fd5b6000825160005b81811015610785576020818601810151858301520161076b565b81811115610794576000828501525b509190910192915050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea26469706673582212204145507bfa15500c0eee86c57c125e8500315ccc134912cdaa0914a0badb3f8d64736f6c634300080600330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630410100582002a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a8254e1c7db7575babf0d3369835678ec9b7f15c0886b00582002f97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c75470cbb871e8f30fc8ce23609e9e0ea87b6b222f58021980040219010405581e0364d11e8e3a1420889b55b40236f26171452fc5c2039b36c2ff7eebd1e0070119085505581e03c041a125d5bebf793e4fe76765079b1a6f58561779843267210dab21b00c044656385853200005581e0311f5442609a3d1c9d8b6fcd4116925086103aaa59609edf9372c61ebb00c014622f186d1abe60338d318867d6777429ae9d27eeb574a09ece60292650356363e87b497663cf7db05581e03a72e70a896c5e7e3fd73fc037f9e385a2ff1fcd346c335e8e608f124400c186d471f71d628f1f38803eea6e015c5abaf705debdb853983b714b38e22667b85ff6e05a2db41df0504dc01410f0219effd03a6843d794191119540d18dd93aa3f26f19ee6736289b1728bdb6fc94c6d01aef03f05b8be49c774ea5112ae2b06f09779a49dc595dcd4f90ee6c608aaee100ff3c03acec0c85618661dfc8a7474ffd8eed9c8015ffebd298a260dcd5646f746ac8f30375c93313558d212b012ba9de45416de8a868081a9b692dbe734dac81924addd40328fdc911f176342e62c4f6f5c116a9e9409782b874c181e4deb1363e3ef504f2035f71f76b8ff24905310063097922eb65d32443d0a72bafb3644e7c09a75d73d80375251b39dcf86fbedeb4f16acfa9a96fab03f908a387e2965a90759e8ffa218103b5d8a37ef68dac3b8812669b09392960fc92c87540cd6d61616a7e5e419e495b03dcfdd8ddac2f3c79a632c51a37e9ecf139707623464f7c4cfacb2751ed93e7e60368406e0b3ffe2c3b5a929555b32adfe58f3b85bafc33604e6997cb906673bb7803037103a8515f11e5164f6121e4b98403db352e195fe7d848c812690013d4c18c035c52f86143284b4ffb948c26902cfa5ac33408c4d653b07c7c9356fb4f91c2a903e7148db0ce78e416bd6927721e3beaa5e4c707f3eed4ab9b85d0718bf2c753a30219ffff0301e0be63422704e86ba6fb223b9469bed5dd9cbee7a85ef6eb07fbec1b3409cd034617a132fd46b0746a642477af55f04d508bf633624ff3a24f92026c42ce5ef703ea8a32a0892cc9162a190dc9557003262a033d6cecd61792656fddb656611905032d815036f3b9c8a7899fc31cabb7d2a30ab09240bb7716a89923847d4692b2e8038170d98859c3e5afaf9382d4ad20f0f0667e474944a816c579830bacd8ed136303fbb43df4eb9fd44f41e741253bb9f1cc03fc4337741529cbef6a90092571c01d035bcf85d3ff03edf81b1367adbc9cb9180d04c08712d7882900e508738fc3089b03e4dbf27791ed2eb9580d54e0c9966a86a290abaeb665c4e3ac7408a07c75f0b003fe736eaf793ce468af4bbb253c8c6309905baf6a0a385b7b1ffba78e72c632dd031eb5bba110765533307bc7844d2549f6aad55d2bdc4d01d704c819627c57bcc40321d1d474b26b89b2aef4d29af2209a8aedefd68060da4fa7134c42cbdcb5c8060385d0fb46317e8decc4c8a9b9396a2cc67b8d8d84951c8ca09916c2651be388080219ffff035900025946d281922a2a3144a22dad27408351e8d3cc81ef80e261b7ad787b1103a2292f68140e7c3e05ad69789a1cfc012c8e96e9000c9abfaf77f18218173f720219ffff03c547f3b7322cb0f339293875eefab9289e3fdc6b65df529e7ca8f260089035ab037cb793d1f8b60a5e79c99dfb02d1be522790865b2f311ff7d849fec694bbaee003e68124f6a0aa87e0626570b8dbf8cc788d597da7a3015f30cf4a994bf2b3014503b2ec0ea9e834ac3bde8399c7010e57b1276d282b391f7a5f94574f03e7fcca5003f5e5eaf56537b9a1c9ba10dda594124a4fada3bde005d0f2518ae920ba242c3e033610e99454175eebc06d9548250d9619ed3c31a3982174a89464308c80f470e703d92232a1be23509197c762fc3ddc4e116af2b00d2b58fffac62b9a29722b2bbc035e57f4a18cdc0cdc9050ef666bd8bf5a9dda8b424f2ce269db25583552f5887503ed30653ee2bd696803b2a21b7e07f6671e2825f92cabf0c323e2b8800a6f6a420330781fb4d23a515ee6a38e59391560c763b25ec2040dbc63c459c825e92adf9003d5332d790e7937fcfa28c47e626c35c5594bfd3c4779fab8dd13dce84df8332b0392e2aa41cf643d17f37d8202d3eb83ff75e1db59d3ada655c82cc7805b8bd30103b9efa5e20f7e1a9a60929484a18df30abd3917cb0d9c135bfbe105a5d7a5fb1a036ea03d65bd60231b619c5df593150df4284652fb43f387d063b256132c77b15c03c015a7f01aad54fbfbd345ad91da2b32762089784eb35a43683c62df0c1eaed003211c2d2d7a4db6067e7022760e965089d6375989ed02932fd54d3a7da6e4d568033607eb31e47ea02266772513d26151c49f13096199524e7bc6b37dd9dc02cca60378256d66fa84c1f365b019029d6961ad3cf3353de8d65af8ca0c6a8eaba1632a03c1d53c88659f31fc6efa086eef55476e129aefc3b4d5785de2de6dcd5bbce742035cd7d30038830d6c2930bb4acfca5da9cab1be58dfac2a41164531426058d2fa03d71d60c3f14f830744577537262015913c1356acadf6e0129182af005417777f03086ddb841b7e22f0877f38e99c58c82cd7a6c09d78e1e5d0d7efa62663721bf50306ac41a740bfcbe7fcc3ebc5f7a98a73504a0192a132080c574601474c446d0f0393cd522200b809d4829fb374c63778a208688b58f3ed6a648af90574baf7e0a403beed8cd54630425e0cd14f370b78045040292869ff15e25cb938f0ccac327a97033c436cb940740323d90adcf8bdbf6e2c83b08210b7441268fd3e76dbb4d094f603c3e0d2e18484e20ac29d8cb3633eece1fa72447bb4e984300085be54e56b3561038b96469d4f91712c40f75a364147f789fbc43f1d307f13253464dd2035b6127b03e92a97c380b8226ab1df1801b60e26e65759da560e8d4e787de65a16ee2e487603b28ba7539618fab65acd3477e421c415d392e3d7dc2aeccfe844f13cc018daef035e690fe9645aab0e0ecab8464326ad3657c6bc6413da356e6bb01d1e4d7ab1bb03176ef2210a99e4203452bac78f16f22d9076562032fa8071086a5b5912ada3b503f0cee94eed9ca88fa934195cadceed0af6f26e87ee7b15f5be281d5cdb3d58d503387e81a01588282c881703723197db41120ed84ffc440c62b74c7f8e082a9302030bfed35992366446b13f347e292ca279dbf8a5550bda037647882c68b953d5bd035aa97881ee905257a956d410c90e8362a6d7394ca85a6e3f0e61a2a560d323f3030d5ab9ef1fd8271ddb3ce482d7ce11a6c0acdd35d9edd6f2710e24e8d4d711d20370cc2b9a5e427d9eb8fccbe39c75ec5a1219c12f413c418dc91459a208b6049b03e3146e2f97a7b9bdac4a220bcf5965107ac9b6a6d6fd757326837e4ce1604d0403a819ad7b3f087eda9a584ddad9b24b79dfe3b20f39a3d67a61036cadea86cff10308ccaf2b1f5846a9ea3c10b675f65247fce1ab609ba3f2fa9708fe0b0804834d05581e0345c64b47b6c59c88597e328ed0ad76469b2acfe756e2401b97d37f3590040105581e0346e4cee090a0a1b0a7af9911a211de8229c74b3ff32ef0f8308945e920040105581d02ec028a78beaa86d3c70bca3d2d646c0b7077c57332979c956dfe0c5d040105581d028e9abb1538278f13c625753917b75ec83bf5f7c358656717a8f639d30404045956e560806040526004361061031e5760003560e01c80637bce5a04116101ab578063a9059cbb116100f7578063c747279b11610095578063dd62ed3e1161006f578063dd62ed3e14610bd7578063e2f4560514610c14578063f2fde38b14610c3f578063fbc03bc814610c6857610325565b8063c747279b14610b46578063d257b34f14610b6f578063d85ba06314610bac57610325565b8063b62496f5116100d1578063b62496f514610a8c578063bae14e1d14610ac9578063bbc0c74214610af2578063c024666814610b1d57610325565b8063a9059cbb146109e9578063a90eab8c14610a26578063af5b0f3714610a4f57610325565b806395d89b41116101645780639fccce321161013e5780639fccce321461092b578063a0d82dc514610956578063a44edb2b14610981578063a457c2d7146109ac57610325565b806395d89b41146108ac5780639a7a23d6146108d75780639c3b4fdc1461090057610325565b80637bce5a04146107c2578063881dce60146107ed5780638a8c523c146108165780638da5cb5b1461082d5780639213691314610858578063924de9b71461088357610325565b80634a4b43cc1161026a57806366ca9b83116102235780636ddd1713116101fd5780636ddd17131461071857806370a0823114610743578063715018a614610780578063751039fc1461079757610325565b806366ca9b831461069b57806368092bd9146106c45780636a486a8e146106ed57610325565b80634a4b43cc1461058b5780634a62bb65146105b45780634fbee193146105df57806351c4b8991461061c5780635d8d17bc1461064757806361c7ddac1461067257610325565b80631f3fed8f116102d7578063313ce567116102b1578063313ce567146104cd57806337c2810f146104f8578063395093511461052357806349bd5a5e1461056057610325565b80631f3fed8f1461043c578063203e727e1461046757806323b872dd1461049057610325565b806302dbd8f81461032a57806306fdde0314610353578063095ea7b31461037e5780631694505e146103bb57806318126dce146103e657806318160ddd1461041157610325565b3661032557005b600080fd5b34801561033657600080fd5b50610351600480360381019061034c9190613ee9565b610c91565b005b34801561035f57600080fd5b50610368610d7b565b6040516103759190613fc2565b60405180910390f35b34801561038a57600080fd5b506103a560048036038101906103a09190614042565b610e0d565b6040516103b2919061409d565b60405180910390f35b3480156103c757600080fd5b506103d0610e2b565b6040516103dd9190614117565b60405180910390f35b3480156103f257600080fd5b506103fb610e4f565b6040516104089190614141565b60405180910390f35b34801561041d57600080fd5b50610426610e55565b6040516104339190614141565b60405180910390f35b34801561044857600080fd5b50610451610e5f565b60405161045e9190614141565b60405180910390f35b34801561047357600080fd5b5061048e6004803603810190610489919061415c565b610e65565b005b34801561049c57600080fd5b506104b760048036038101906104b29190614189565b610f74565b6040516104c4919061409d565b60405180910390f35b3480156104d957600080fd5b506104e261106c565b6040516104ef91906141f8565b60405180910390f35b34801561050457600080fd5b5061050d611075565b60405161051a9190614222565b60405180910390f35b34801561052f57600080fd5b5061054a60048036038101906105459190614042565b61109b565b604051610557919061409d565b60405180910390f35b34801561056c57600080fd5b50610575611147565b6040516105829190614222565b60405180910390f35b34801561059757600080fd5b506105b260048036038101906105ad9190614269565b61116d565b005b3480156105c057600080fd5b506105c9611244565b6040516105d6919061409d565b60405180910390f35b3480156105eb57600080fd5b50610606600480360381019061060191906142a9565b611257565b604051610613919061409d565b60405180910390f35b34801561062857600080fd5b506106316112ad565b60405161063e9190614222565b60405180910390f35b34801561065357600080fd5b5061065c6112d3565b6040516106699190614222565b60405180910390f35b34801561067e57600080fd5b50610699600480360381019061069491906142a9565b6112f9565b005b3480156106a757600080fd5b506106c260048036038101906106bd9190613ee9565b611435565b005b3480156106d057600080fd5b506106eb60048036038101906106e69190614269565b61151f565b005b3480156106f957600080fd5b506107026115f6565b60405161070f9190614141565b60405180910390f35b34801561072457600080fd5b5061072d6115fc565b60405161073a919061409d565b60405180910390f35b34801561074f57600080fd5b5061076a600480360381019061076591906142a9565b61160f565b6040516107779190614141565b60405180910390f35b34801561078c57600080fd5b50610795611657565b005b3480156107a357600080fd5b506107ac6116df565b6040516107b9919061409d565b60405180910390f35b3480156107ce57600080fd5b506107d761177f565b6040516107e49190614141565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f919061415c565b611785565b005b34801561082257600080fd5b5061082b611849565b005b34801561083957600080fd5b506108426118fd565b60405161084f9190614222565b60405180910390f35b34801561086457600080fd5b5061086d611927565b60405161087a9190614141565b60405180910390f35b34801561088f57600080fd5b506108aa60048036038101906108a591906142d6565b61192d565b005b3480156108b857600080fd5b506108c16119c6565b6040516108ce9190613fc2565b60405180910390f35b3480156108e357600080fd5b506108fe60048036038101906108f99190614269565b611a58565b005b34801561090c57600080fd5b50610915611b73565b6040516109229190614141565b60405180910390f35b34801561093757600080fd5b50610940611b79565b60405161094d9190614141565b60405180910390f35b34801561096257600080fd5b5061096b611b7f565b6040516109789190614141565b60405180910390f35b34801561098d57600080fd5b50610996611b85565b6040516109a39190614141565b60405180910390f35b3480156109b857600080fd5b506109d360048036038101906109ce9190614042565b611b8b565b6040516109e0919061409d565b60405180910390f35b3480156109f557600080fd5b50610a106004803603810190610a0b9190614042565b611c76565b604051610a1d919061409d565b60405180910390f35b348015610a3257600080fd5b50610a4d6004803603810190610a489190614365565b611c94565b005b348015610a5b57600080fd5b50610a766004803603810190610a7191906142a9565b611f1f565b604051610a83919061409d565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae91906142a9565b611f3f565b604051610ac0919061409d565b60405180910390f35b348015610ad557600080fd5b50610af06004803603810190610aeb91906142a9565b611f5f565b005b348015610afe57600080fd5b50610b0761208f565b604051610b14919061409d565b60405180910390f35b348015610b2957600080fd5b50610b446004803603810190610b3f9190614269565b6120a2565b005b348015610b5257600080fd5b50610b6d6004803603810190610b6891906142a9565b6121c7565b005b348015610b7b57600080fd5b50610b966004803603810190610b91919061415c565b612303565b604051610ba3919061409d565b60405180910390f35b348015610bb857600080fd5b50610bc1612458565b604051610bce9190614141565b60405180910390f35b348015610be357600080fd5b50610bfe6004803603810190610bf991906143b8565b61245e565b604051610c0b9190614141565b60405180910390f35b348015610c2057600080fd5b50610c296124e5565b604051610c369190614141565b60405180910390f35b348015610c4b57600080fd5b50610c666004803603810190610c6191906142a9565b6124eb565b005b348015610c7457600080fd5b50610c8f6004803603810190610c8a919061415c565b6125e3565b005b610c996126f2565b73ffffffffffffffffffffffffffffffffffffffff16610cb76118fd565b73ffffffffffffffffffffffffffffffffffffffff1614610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0490614444565b60405180910390fd5b8160128190555080601381905550601354601254610d2b9190614493565b60118190555060416011541115610d77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6e90614535565b60405180910390fd5b5050565b606060038054610d8a90614584565b80601f0160208091040260200160405190810160405280929190818152602001828054610db690614584565b8015610e035780601f10610dd857610100808354040283529160200191610e03565b820191906000526020600020905b815481529060010190602001808311610de657829003601f168201915b5050505050905090565b6000610e21610e1a6126f2565b84846126fa565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600a5481565b6000600254905090565b60145481565b610e6d6126f2565b73ffffffffffffffffffffffffffffffffffffffff16610e8b6118fd565b73ffffffffffffffffffffffffffffffffffffffff1614610ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed890614444565b60405180910390fd5b670de0b6b3a76400006103e86001610ef7610e55565b610f0191906145b6565b610f0b919061463f565b610f15919061463f565b811015610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e906146bc565b60405180910390fd5b670de0b6b3a764000081610f6b91906145b6565b600a8190555050565b6000610f818484846128c5565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fcc6126f2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561104c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110439061474e565b60405180910390fd5b611060856110586126f2565b8584036126fa565b60019150509392505050565b60006012905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061113d6110a86126f2565b8484600160006110b66126f2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111389190614493565b6126fa565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111756126f2565b73ffffffffffffffffffffffffffffffffffffffff166111936118fd565b73ffffffffffffffffffffffffffffffffffffffff16146111e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e090614444565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d60009054906101000a900460ff1681565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113016126f2565b73ffffffffffffffffffffffffffffffffffffffff1661131f6118fd565b73ffffffffffffffffffffffffffffffffffffffff1614611375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136c90614444565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f289c3152b70354fcb8a4a75636b3d191f6c0078d36ca92dbf7481e34ddc29d1060405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61143d6126f2565b73ffffffffffffffffffffffffffffffffffffffff1661145b6118fd565b73ffffffffffffffffffffffffffffffffffffffff16146114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a890614444565b60405180910390fd5b81600f8190555080601081905550601054600f546114cf9190614493565b600e819055506041600e54111561151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290614535565b60405180910390fd5b5050565b6115276126f2565b73ffffffffffffffffffffffffffffffffffffffff166115456118fd565b73ffffffffffffffffffffffffffffffffffffffff161461159b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159290614444565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60115481565b600d60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61165f6126f2565b73ffffffffffffffffffffffffffffffffffffffff1661167d6118fd565b73ffffffffffffffffffffffffffffffffffffffff16146116d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ca90614444565b60405180910390fd5b6116dd600061365d565b565b60006116e96126f2565b73ffffffffffffffffffffffffffffffffffffffff166117076118fd565b73ffffffffffffffffffffffffffffffffffffffff161461175d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175490614444565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b600f5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117c66126f2565b73ffffffffffffffffffffffffffffffffffffffff16146117e657600080fd5b6117ef3061160f565b81111580156117fe5750600081115b61183d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611834906147ba565b60405180910390fd5b61184681613723565b50565b6118516126f2565b73ffffffffffffffffffffffffffffffffffffffff1661186f6118fd565b73ffffffffffffffffffffffffffffffffffffffff16146118c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bc90614444565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b6119356126f2565b73ffffffffffffffffffffffffffffffffffffffff166119536118fd565b73ffffffffffffffffffffffffffffffffffffffff16146119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090614444565b60405180910390fd5b80600d60026101000a81548160ff02191690831515021790555050565b6060600480546119d590614584565b80601f0160208091040260200160405190810160405280929190818152602001828054611a0190614584565b8015611a4e5780601f10611a2357610100808354040283529160200191611a4e565b820191906000526020600020905b815481529060010190602001808311611a3157829003601f168201915b5050505050905090565b611a606126f2565b73ffffffffffffffffffffffffffffffffffffffff16611a7e6118fd565b73ffffffffffffffffffffffffffffffffffffffff1614611ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acb90614444565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5c9061484c565b60405180910390fd5b611b6f8282613960565b5050565b60105481565b60155481565b60135481565b600c5481565b60008060016000611b9a6126f2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4e906148de565b60405180910390fd5b611c6b611c626126f2565b858584036126fa565b600191505092915050565b6000611c8a611c836126f2565b84846128c5565b6001905092915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001611d4795949392919061490d565b60405160208183030381529060405280519060200120905060007f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e67000000000000000000000000000000000000815250805190602001206000604051602001611dd393929190614960565b60405160208183030381529060405280519060200120905060008282604051602001611e00929190614a0f565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051611e3d9493929190614a46565b6020604051602081039080840390855afa158015611e5f573d6000803e3d6000fd5b505050602060405103519050611e736118fd565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed790614ad7565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff02191690831515021790555050505050505050565b60186020528060005260406000206000915054906101000a900460ff1681565b60196020528060005260406000206000915054906101000a900460ff1681565b611f676126f2565b73ffffffffffffffffffffffffffffffffffffffff16611f856118fd565b73ffffffffffffffffffffffffffffffffffffffff1614611fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd290614444565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561204b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204290614b43565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60019054906101000a900460ff1681565b6120aa6126f2565b73ffffffffffffffffffffffffffffffffffffffff166120c86118fd565b73ffffffffffffffffffffffffffffffffffffffff161461211e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211590614444565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516121bb919061409d565b60405180910390a25050565b6121cf6126f2565b73ffffffffffffffffffffffffffffffffffffffff166121ed6118fd565b73ffffffffffffffffffffffffffffffffffffffff1614612243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223a90614444565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f93a2412ba5733faf91c97297b26c1ad4eeb4160f7b1f07d09256d71571174cef60405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061230d6126f2565b73ffffffffffffffffffffffffffffffffffffffff1661232b6118fd565b73ffffffffffffffffffffffffffffffffffffffff1614612381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237890614444565b60405180910390fd5b620186a0600161238f610e55565b61239991906145b6565b6123a3919061463f565b8210156123e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123dc90614bd5565b60405180910390fd5b6103e860056123f2610e55565b6123fc91906145b6565b612406919061463f565b821115612448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243f90614c67565b60405180910390fd5b81600b8190555060019050919050565b600e5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6124f36126f2565b73ffffffffffffffffffffffffffffffffffffffff166125116118fd565b73ffffffffffffffffffffffffffffffffffffffff1614612567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255e90614444565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156125d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ce90614cf9565b60405180910390fd5b6125e08161365d565b50565b6125eb6126f2565b73ffffffffffffffffffffffffffffffffffffffff166126096118fd565b73ffffffffffffffffffffffffffffffffffffffff161461265f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265690614444565b60405180910390fd5b670de0b6b3a76400006103e86005612675610e55565b61267f91906145b6565b612689919061463f565b612693919061463f565b8110156126d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cc90614d65565b60405180910390fd5b670de0b6b3a7640000816126e991906145b6565b600c8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561276a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276190614df7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d190614e89565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516128b89190614141565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292c90614f1b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299c90614fad565b60405180910390fd5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2990615019565b60405180910390fd5b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab690615085565b60405180910390fd5b6000811415612ad957612ad483836000613a01565b613658565b600d60009054906101000a900460ff1615612fd457612af66118fd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612b645750612b346118fd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b9d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612bd7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612bf05750600760149054906101000a900460ff16155b15612fd357600d60019054906101000a900460ff16612cea57601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612caa5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce0906150f1565b60405180910390fd5b5b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612d8d5750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e3457600a54811115612dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dce90615183565b60405180910390fd5b600c54612de38361160f565b82612dee9190614493565b1115612e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e26906151ef565b60405180910390fd5b612fd2565b601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ed75750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f2657600a54811115612f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1890615281565b60405180910390fd5b612fd1565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612fd057600c54612f838361160f565b82612f8e9190614493565b1115612fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc6906151ef565b60405180910390fd5b5b5b5b5b5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156130cb5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639015d371306040518263ffffffff1660e01b81526004016130899190614222565b602060405180830381865afa1580156130a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130ca91906152b6565b5b156131e6576000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a20527fc8585600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c54600a54600b546040518763ffffffff1660e01b815260040161315f969594939291906152e3565b6020604051808303816000875af115801561317e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a291906152b6565b9050806131e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131db90615390565b60405180910390fd5b505b60006131f13061160f565b90506000600b5482101590508080156132165750600d60029054906101000a900460ff165b801561322f5750600760149054906101000a900460ff16155b80156132855750601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156132db5750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156133315750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613375576001600760146101000a81548160ff021916908315150217905550613359613c82565b6000600760146101000a81548160ff0219169083151502179055505b6000600760149054906101000a900460ff16159050601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061342b5750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561343557600090505b6000811561364857601960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561349857506000601154115b15613532576134c560646134b760115488613e6290919063ffffffff16565b613e7890919063ffffffff16565b9050601154601354826134d891906145b6565b6134e2919061463f565b601560008282546134f39190614493565b925050819055506011546012548261350b91906145b6565b613515919061463f565b601460008282546135269190614493565b92505081905550613624565b601960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561358d57506000600e54115b15613623576135ba60646135ac600e5488613e6290919063ffffffff16565b613e7890919063ffffffff16565b9050600e54601054826135cd91906145b6565b6135d7919061463f565b601560008282546135e89190614493565b92505081905550600e54600f548261360091906145b6565b61360a919061463f565b6014600082825461361b9190614493565b925050819055505b5b600081111561363957613638873083613a01565b5b808561364591906153b0565b94505b613653878787613a01565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600267ffffffffffffffff8111156137405761373f6153e4565b5b60405190808252806020026020018201604052801561376e5781602001602082028036833780820191505090505b509050308160008151811061378657613785615413565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561382b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061384f9190615457565b8160018151811061386357613862615413565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506138c8307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846126fa565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161392a95949392919061557d565b600060405180830381600087803b15801561394457600080fd5b505af1158015613958573d6000803e3d6000fd5b505050505050565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a6890614f1b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ad890614fad565b60405180910390fd5b613aec838383613e8e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b6990615649565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613c059190614493565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613c699190614141565b60405180910390a3613c7c848484613e93565b50505050565b6000613c8d3061160f565b90506000601554601454613ca19190614493565b9050600080831415613cb557505050613e60565b6014600b54613cc491906145b6565b831115613cdd576014600b54613cda91906145b6565b92505b6000479050613ceb84613723565b6000613d008247613e9890919063ffffffff16565b90506000613d2b85613d1d60155485613e6290919063ffffffff16565b613e7890919063ffffffff16565b905060006014819055506000601581905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051613d839061569a565b60006040518083038185875af1925050503d8060008114613dc0576040519150601f19603f3d011682016040523d82523d6000602084013e613dc5565b606091505b505080945050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613e119061569a565b60006040518083038185875af1925050503d8060008114613e4e576040519150601f19603f3d011682016040523d82523d6000602084013e613e53565b606091505b5050809450505050505050505b565b60008183613e7091906145b6565b905092915050565b60008183613e86919061463f565b905092915050565b505050565b505050565b60008183613ea691906153b0565b905092915050565b600080fd5b6000819050919050565b613ec681613eb3565b8114613ed157600080fd5b50565b600081359050613ee381613ebd565b92915050565b60008060408385031215613f0057613eff613eae565b5b6000613f0e85828601613ed4565b9250506020613f1f85828601613ed4565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613f63578082015181840152602081019050613f48565b83811115613f72576000848401525b50505050565b6000601f19601f8301169050919050565b6000613f9482613f29565b613f9e8185613f34565b9350613fae818560208601613f45565b613fb781613f78565b840191505092915050565b60006020820190508181036000830152613fdc8184613f89565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061400f82613fe4565b9050919050565b61401f81614004565b811461402a57600080fd5b50565b60008135905061403c81614016565b92915050565b6000806040838503121561405957614058613eae565b5b60006140678582860161402d565b925050602061407885828601613ed4565b9150509250929050565b60008115159050919050565b61409781614082565b82525050565b60006020820190506140b2600083018461408e565b92915050565b6000819050919050565b60006140dd6140d86140d384613fe4565b6140b8565b613fe4565b9050919050565b60006140ef826140c2565b9050919050565b6000614101826140e4565b9050919050565b614111816140f6565b82525050565b600060208201905061412c6000830184614108565b92915050565b61413b81613eb3565b82525050565b60006020820190506141566000830184614132565b92915050565b60006020828403121561417257614171613eae565b5b600061418084828501613ed4565b91505092915050565b6000806000606084860312156141a2576141a1613eae565b5b60006141b08682870161402d565b93505060206141c18682870161402d565b92505060406141d286828701613ed4565b9150509250925092565b600060ff82169050919050565b6141f2816141dc565b82525050565b600060208201905061420d60008301846141e9565b92915050565b61421c81614004565b82525050565b60006020820190506142376000830184614213565b92915050565b61424681614082565b811461425157600080fd5b50565b6000813590506142638161423d565b92915050565b600080604083850312156142805761427f613eae565b5b600061428e8582860161402d565b925050602061429f85828601614254565b9150509250929050565b6000602082840312156142bf576142be613eae565b5b60006142cd8482850161402d565b91505092915050565b6000602082840312156142ec576142eb613eae565b5b60006142fa84828501614254565b91505092915050565b61430c816141dc565b811461431757600080fd5b50565b60008135905061432981614303565b92915050565b6000819050919050565b6143428161432f565b811461434d57600080fd5b50565b60008135905061435f81614339565b92915050565b60008060006060848603121561437e5761437d613eae565b5b600061438c8682870161431a565b935050602061439d86828701614350565b92505060406143ae86828701614350565b9150509250925092565b600080604083850312156143cf576143ce613eae565b5b60006143dd8582860161402d565b92505060206143ee8582860161402d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061442e602083613f34565b9150614439826143f8565b602082019050919050565b6000602082019050818103600083015261445d81614421565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061449e82613eb3565b91506144a983613eb3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156144de576144dd614464565b5b828201905092915050565b7f4d757374206b656570206665657320617420363525206f72206c657373000000600082015250565b600061451f601d83613f34565b915061452a826144e9565b602082019050919050565b6000602082019050818103600083015261454e81614512565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061459c57607f821691505b602082108114156145b0576145af614555565b5b50919050565b60006145c182613eb3565b91506145cc83613eb3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561460557614604614464565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061464a82613eb3565b915061465583613eb3565b92508261466557614664614610565b5b828204905092915050565b7f43616e6e6f7420736574206d617854206c6f776572207468616e20302e312500600082015250565b60006146a6601f83613f34565b91506146b182614670565b602082019050919050565b600060208201905081810360008301526146d581614699565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000614738602883613f34565b9150614743826146dc565b604082019050919050565b600060208201905081810360008301526147678161472b565b9050919050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b60006147a4600c83613f34565b91506147af8261476e565b602082019050919050565b600060208201905081810360008301526147d381614797565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614836603983613f34565b9150614841826147da565b604082019050919050565b6000602082019050818103600083015261486581614829565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006148c8602583613f34565b91506148d38261486c565b604082019050919050565b600060208201905081810360008301526148f7816148bb565b9050919050565b6149078161432f565b82525050565b600060a08201905061492260008301886148fe565b61492f60208301876148fe565b61493c60408301866148fe565b6149496060830185614132565b6149566080830184614213565b9695505050505050565b600060608201905061497560008301866148fe565b61498260208301856148fe565b61498f6040830184614132565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006149d8600283614997565b91506149e3826149a2565b600282019050919050565b6000819050919050565b614a09614a048261432f565b6149ee565b82525050565b6000614a1a826149cb565b9150614a2682856149f8565b602082019150614a3682846149f8565b6020820191508190509392505050565b6000608082019050614a5b60008301876148fe565b614a6860208301866141e9565b614a7560408301856148fe565b614a8260608301846148fe565b95945050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b6000614ac1601183613f34565b9150614acc82614a8b565b602082019050919050565b60006020820190508181036000830152614af081614ab4565b9050919050565b7f496e76616c696420616e746920647261696e6572000000000000000000000000600082015250565b6000614b2d601483613f34565b9150614b3882614af7565b602082019050919050565b60006020820190508181036000830152614b5c81614b20565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614bbf603583613f34565b9150614bca82614b63565b604082019050919050565b60006020820190508181036000830152614bee81614bb2565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000614c51603483613f34565b9150614c5c82614bf5565b604082019050919050565b60006020820190508181036000830152614c8081614c44565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614ce3602683613f34565b9150614cee82614c87565b604082019050919050565b60006020820190508181036000830152614d1281614cd6565b9050919050565b7f43616e6e6f7420736574206d617857206c6f776572207468616e20302e352500600082015250565b6000614d4f601f83613f34565b9150614d5a82614d19565b602082019050919050565b60006020820190508181036000830152614d7e81614d42565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614de1602483613f34565b9150614dec82614d85565b604082019050919050565b60006020820190508181036000830152614e1081614dd4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614e73602283613f34565b9150614e7e82614e17565b604082019050919050565b60006020820190508181036000830152614ea281614e66565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614f05602583613f34565b9150614f1082614ea9565b604082019050919050565b60006020820190508181036000830152614f3481614ef8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614f97602383613f34565b9150614fa282614f3b565b604082019050919050565b60006020820190508181036000830152614fc681614f8a565b9050919050565b7f5b66726f6d5d20626c61636b206c697374000000000000000000000000000000600082015250565b6000615003601183613f34565b915061500e82614fcd565b602082019050919050565b6000602082019050818103600083015261503281614ff6565b9050919050565b7f5b746f5d20626c61636b206c6973740000000000000000000000000000000000600082015250565b600061506f600f83613f34565b915061507a82615039565b602082019050919050565b6000602082019050818103600083015261509e81615062565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006150db601683613f34565b91506150e6826150a5565b602082019050919050565b6000602082019050818103600083015261510a816150ce565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178542e000000000000000000000000000000000000000000000000000000602082015250565b600061516d602583613f34565b915061517882615111565b604082019050919050565b6000602082019050818103600083015261519c81615160565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006151d9601383613f34565b91506151e4826151a3565b602082019050919050565b60006020820190508181036000830152615208816151cc565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d6178542e0000000000000000000000000000000000000000000000000000602082015250565b600061526b602683613f34565b91506152768261520f565b604082019050919050565b6000602082019050818103600083015261529a8161525e565b9050919050565b6000815190506152b08161423d565b92915050565b6000602082840312156152cc576152cb613eae565b5b60006152da848285016152a1565b91505092915050565b600060c0820190506152f86000830189614213565b6153056020830188614213565b6153126040830187614213565b61531f6060830186614132565b61532c6080830185614132565b61533960a0830184614132565b979650505050505050565b7f416e746920447261696e657220456e61626c6564000000000000000000000000600082015250565b600061537a601483613f34565b915061538582615344565b602082019050919050565b600060208201905081810360008301526153a98161536d565b9050919050565b60006153bb82613eb3565b91506153c683613eb3565b9250828210156153d9576153d8614464565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061545181614016565b92915050565b60006020828403121561546d5761546c613eae565b5b600061547b84828501615442565b91505092915050565b6000819050919050565b60006154a96154a461549f84615484565b6140b8565b613eb3565b9050919050565b6154b98161548e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6154f481614004565b82525050565b600061550683836154eb565b60208301905092915050565b6000602082019050919050565b600061552a826154bf565b61553481856154ca565b935061553f836154db565b8060005b8381101561557057815161555788826154fa565b975061556283615512565b925050600181019050615543565b5085935050505092915050565b600060a0820190506155926000830188614132565b61559f60208301876154b0565b81810360408301526155b1818661551f565b90506155c06060830185614213565b6155cd6080830184614132565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000615633602683613f34565b915061563e826155d7565b604082019050919050565b6000602082019050818103600083015261566281615626565b9050919050565b600081905092915050565b50565b6000615684600083615669565b915061568f82615674565b600082019050919050565b60006156a582615677565b915081905091905056fea264697066735822122079574d1d237da4826c0d10ce1cfe4d5aab65878e1dce05a70c6da37638678a5d64736f6c634300080a0033031db9f7391fff936647dde7160bf4a365ec8d42d5db99da66fd16da40100d92c800582003811769b41057f0b8eb06830d9996d8b36ea78706fd8cfd12a1560e07903ee04a19b59110c89c33bd8638005820035b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db904a69e10de76676d080000000582003cd4f3e88338150417c94a51ed428fc55755bf757404b153d67496e931564104a0cd5044a02a7940245b603e1dea9cb12f20316f67fce35f8d040089927d103134799da1c1f45e4e07981530058200320b060ff746e90ca077fae3c1a5f5e2a3bd04e79cbefb1cd48d9610cacd3304a0e7a7b61ec3f7f4a5ad8005820036a63a2574f644678d657e04f15067a82f93bd8960321d47355d86e28408e805820fffffffffffffffffffffffffffffffffffffffffffb1ce579c345f9f1636c6602192ea003f77aebcbe8452b63e594b328fe3dbf7ada1d1ef72335d3c11479d682a0fddfcf032a88c0381f7d09c626bec5927cf8a61490094f121039e0381c335611fb8ca18f01410b005820035d8dbe30703c4006e0023b1a588cd0bf25f1e1d582470eeaa52a5b53f708505820fffffffffffffffffffffffffffffffffffffffffffdb75b73a326f55382c2b900582003ad0a29cbd586bb990c127da3c1327b07c0bbeccb9fef0cc445550f3d24e0604a15f7c1fa4f68ea74224800582003909f85c098403c5a5566fab5d23bf88267bacc4bde82d359813c671ad3a4404a043c33c193756440a1fb005820034cb0eddc331cab9c1e87a4250055aeace1c7279fc14aad52dd842a2a4062b05820ffffffffffffffffffffffffffffffffffffffffffff3a98419452d587fffc1703454efe092789dcd6762dedf70ede9cdb2adfe6fae2a57f1e6e02666d528b0b0f021989140301df4e0211288484c0bca742326eeb47152ecf1599ad485723d3681eca33f48b03fa3a46eb5ac07887da08cb0379926ffa5c537c29118eb98942bcd197a884609203a4e454157d1db46fb7bac1cbe431e2ccaeee25fbc0e28ec9f9e91cfb9204cf5b03b1d8b241dbc019ff52030d9fbcacf5e3a181b896ea91f98aaf4e7d6b837efcec03211ca425a0f9ad7421b4f1148ae0c3085579de975744cd60afb1b8d9c34ae3eb03ec2255f1a34419d1b54b74ce68cd674b884ea10b1115b381bced8ad648c4a26c03ea4f462ecb3e0e9bc2646d183fab7d5e2cc0c8d53d8551ffca7958192a75a9090336b279631ab28538f9c3bf28466bf59f64bd2d276b44cd275c790105905ab9d8034795038837df540a1455da049d335a24df09848be10526abcb58f3e25fcae000032d5213fc499b7b078de127ebab9a1640ca75a674cdb62e8f744a0a3bf3b8629b03b8eb06dc602debef1967ba0f4d2f69d7ff58012bf3aeecf6d6f7b6341e0fc75b0219ffff037f1ee416f9f490eb3c60b83fff37f0e9413a18c46a49aa6d2a2e43e187b124bd03bb5fcd0e29f944808439941681948bfda4dfa87aa398d0ab06a25347a36e883303360d9bcc1a96e3a7497cab0be76e6c7ee802e6842b2135f050e3360d44b8c3b603f7144674e4b28232d64bfd672295654cdeda7aa82153c2d38d6b8ad13ba4af3d032d7796101a2ddfbdd3e4ca46ee546febb51b068825238ecc76111a0c2b7881ee03d70af3a4dc0b687c3b0d26e4d558d087b5be624ec540b0ff2c54f461bec7ba2503d816fff99da1cd6483098d8ac3fd36330b91be0c1c1d67f52ca408b4dfecf3900358f555044d4cf37fb89f665ee0147535c0ee57b19b316a4cb38e8b0ad3f6575703a640248c27e859605efaf7b73445e25c412ff3dea03d50b2794483f664f9cd4f035353519f293e033007cf28c85ef34121b0162b8e14866f3b96918ee2adfaeca90381683488b818f5521b17c680310e0f564a93b46cc1e8f8fcac9a6587bab595480058200395892004816dfdb4ec7c690e1c2939629491c24077aabab040ad7b9e3e52204a15568902539faf18505300581f02b5486046d502410fc0995dd9c76bd858b25087db2b3a97389856a3aadf915820ffffffffffffffffffffffffffffffffffffffffffff95473080287ac8d0000000581f0247dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67241020219010403435e25d16fa47dcf966c6c81fce6ad0f8939ed18098ac220437423e3a3f9ead5031163f40aba784acd21eb6c042ba06806f5a361c2ef14c1df2a3ebb3fb2d0c66700582003fac1d080b65b920217ff5f3cc7fef1ded9f1aa75fbb7ad9624933fd758c6805820ffffffffffffffffffffffffffffffffffffffffffffad4eabcfdd5f8ff40555021988c20334f37edf96f4f3225d6bf461990dfbe71aa1ac4b080f4052e02365477f55dfb003d8c00acafafd874b5665d99134e63a3890ab94b62869d366ecfb362395af4bbc03b97105b63a2c38b9a138ec2a511732f120b02ab08aab98c7a16ee897959b0b2b03001222788b2003dfbd18ae1b26093f3c73cbbd2a64ea20edbf91a88a90d683c00219ffff03e599620a4b7fbf683960577d8b1fb8293f76461dd338497e3fe2a5f81d9d53700355e9b2c8afb87b5aa09ea944d1c05125114727481369e24d799fc27f351f318f038d217146a60c44d49162052f8efc70ae52a83a7c1fd5d4b922e1b002cac321ad0374e93804d61b4aa56875423642b4bf6ba1fdb7483becff43939721efad6b1bab0058200307d4dd8f290d5764b42dd9b01753e38d5865557628adec10457681065b63204a0b183f9a475edb8f92b30058200372d6651d10f00e108a24601d4d36ce618c3d1ec2161c0a18e2b2555613aaa05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200367773aa836dd3c353b835bb26d5bcb3793a5a7ac30563513b26ce032c134604b0422c8b6a9ea74d391000000581f023b7380399bdfbbdc913dd9087bb13ba8a21023ec875ba0f9e163ac16dedf4a05cc480a608aff4669e500581f03ba4d7de4c646d3bcdc4f1cf6aabc3c5b0dc3cdbb5597c5563dad6ff44d905820ffffffffffffffffffffffffffffffffffffffffffff73681f16af14d606c3a000581f03d9bf3b935b0aabb1b186a72448c99f4fe80df6ba8dae118f9460c447f3d041010219480000581f0246ceda83e9b06ea27cfe68b0f4be9ecb336627304aa0a6e9956d5334e9054b01056075c2c1da6e02a81402191005005820034d67008207b00700893b9614816103bfce6d012a84078b50f60cca2b9891705820fffffffffffffffffffffffffffffffffffffffffffed4ac7909244c64eb4a9403e1cfa47e08b78f15be8872fe1f3d56201846d7b3846256b0d16ab21a0f50088b039dab680f42eb5314e22be773982e1be995c82e0f2b60d73e5773c64e3439ece202194cd403dad38f1373dc714c2b02afc302d7fe6c0b8ac9b8b9d04e2ca3dbdd71cc8fd7e403459fdf213adc0d9be5df85a9093aa03232d23ecb99c154d51b0dd042f1fa6d25032956c88d689c6655de50e8ab85a91f0287727003fc63491e3c70f8a9b7ba66a0032addb09c2029de08e1a9e5f58787bb816c173718d80c7434979dd417c56583760311a76d194eac58b1956b6d67f2da2e73f827a086fe51f790a791e995427e70b803d915f65cfd24330df00fd3eb895d4f8246bc4761d6dd14ebedf5ef7eb303b70303b65f4796b0b9a3ee24944fb4152a9ecdb4ac711ab092b784a80e21b0339cd69803e760b9ff222e1655e9531875719d5aa8b99a4034808b5fe5d94d66835b4b623803619d85c3caf0fe36823f0a2f8104831705e26b08603ace51e7118b14784444170328bc5a4b55179cc140e77e8adef1c165d4066e25f886e8eb818bd939c051e66b03ea208a57f33418952b7ab68da19ebbe65dcdaea04dd5dc82bd5963259cc5237b0219ffff03f83f54dbf3b7fba73c8e87ee881ebebdbf67a413eb45104c10d2e9ce0b538b4203c6a41b8bc2077478f1d1385bd2481eb78683cbc5ca1773a367c6a789515b57a003b644af3d561d2281a77e827fa729a1ff4e9250cd5400fb0bf54202933d4020f90369b828f7a36fd2dc3ae5c2b63394318ba44051a8da3031d6e59507b4139e26c503eac3ff6412f2998765b093b1879066e64dd9f466322471e421c2ad56862f908203edd0baf3e87c7687f81417582edb9c35ac1f932965a0f4cc148faf2ef093eb2103976dc8bccd4726b5b5f723d20b7ce2dea50ebd75deb218f3d9e339e0e21968a1031f8cc8d26fe3e72b3546f53b2cd098fecd7c7655a965f1b0791a314fcc5543ae03dd7368ebfa6226cf191723f9d8022603dd806ec1ff971a6de24de394f2d9e26803f51393f92208852c4c77c7ecd61407ec0f06cf9fa0d2e64bc5e99cc8f46a830e03fa102e087518d36468164cb6e97c1373ec8b9cea4f5e0c16ec455c1c6ae8b95c03aded254ba54b384c80c671b6043d57ebd389085586d9784d8d5b018da0c1a7bd0058200332bd3569de184d55259cc050081526c6fe4fbf0348dd0c06a3e8369515f3b04b01af16f04cb02ebfd9a091036900e0629b1b52ff8f05beedcf9dc1448b936f57ed333c8c2b054fc16195683e005820031c6eb99e1a34584a91c68b0de7246146d3c8b774665eab762f5bc83655e4c05820fffffffffffffffffffffffffffffffffffffffffffea299521dfaab1cc00000036b22bdf428986bf6133871b3319dcdd789580b3c468a375ac99dc7f52082090800582003b6a3d95d3f1223dfbccdf4cc05e8874b1ddec953d06c6f9b5f1b0df0603c005820fffffffffffffffffffffffffffffffffffffffffffece94539f5b4a9a6fffff005820037e708470ad5f3aedd3114061b2b08e7caea32546d7a99c8a2db72c3486ffb05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003d2c9271fa8cb07754d89a15ffcd931a6c1cb73c464c142f7cf4f37922d2fe05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003e600cb35805894a85110e65689e3ba9b195ba7709428ec63ffd5caf5d576c04a1ba99ec850fd028b4aee02197c2903c6e5782c18ff87c523728be61516d4e38c4bda1d8f51c108322c44c408f5ac42037542dd5f319ccd5ebc9e5f82ee96b190a292cc39821999f00cc06667d417091103f1e51fc41ce8cf6d3f89004be04565e2546b56f5b4bdafe190c96c366861774203a507faf3c67557376186d6f84e3a72d7c0cf1c77bfceacd0f1d0981b80de83670219ffff038df7ad751aad8de65335d7638835f579f5f59064dc54842e51d3bbb346ffa8bc03ac83e20eaf5ed2763db88dfc19c7479f89f6436d6ec91a1d9a904ed4dd9c42b303848dfdcc5c70e8debb1d6eb2f593075667da037f0f564a2488960c9d966cdb80033484698eae6f9b057da475ebd6ce3df96122468ea017ad18a6fe7a978f0c56f3036da5bcdb135620a03b83fdce1bdffeb4eea769a16e739e817573f47e04be5e0e0058200396cd0365f1df7d70f905d73bb0867ba26d4f42e7ce18ad3cc34e1c317f4c304a6a64c9797ebe4a162349030b6f39067b15d231644b4d723dbfac08f61f61e537c4b307f3ad2fab6517afdf0058200366e213836bfffb58376a92dec65893727c0d519887051b4f7d5fd3e20fbbc04b0136cbfbae02eda0e9876b0058200345fe6292432b5ab5afd5ac5d53c203f098f0d077f3cb0397fb64247abc8a905820fffffffffffffffffffffffffffffffffffffffffffe4a5ebeea250274123fd7005820030b98f8da71974ef7e8cf419eacd83345ba0b15face50fe428d61300c3939504a05eed2d028e4c1a0dac00058200362a0cfa9502d08a7bb741d5ce4cd6eda04c66977736f14eee4e0049bceec404a1946399cdcaa8a7b8e290058200303f991d7fd31b57deaeb1fc463bc27ba175caabc46098889c2e66d8c3e92d04a0ba94b850bee1819b07e00582003448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec47504a1f412c85c95119055c490219f91800582003e4847eefa84474a2dbfe75dcc8585247a9a0a99fab77b1378a49ae4dc545804813c7ede529800a7200582003a9e4090df1fc7f13d9aeff57b55b9bf2666be25bcfc4a43edddb36818033105820fffffffffffffffffffffffffffffffffffffffffffb541c948af7d11a7e5dbe00581f02647b5d9561bce0467ac955359ceeab73111cd114f1669b85878d8ab981404abaa20d912cb91743efdf00581f025e79765a9332f379f02f8b317caa0c2bc4e91343a24ba7c1c2d32cab0cc25820fffffffffffffffffffffffffffffffffffffffffffb6c2ef3d877d526f14c0000581f022e41292b0bb2390a25ecd55910e09f8d69e4e9c1716efa48f9dc68639e574b2934c47be6795eb1558687020b00582003b616c45de1e48afed1fc5a8e3e065323e7b0392fe84861863293689aa9dff04afce172659cbeaa6dfb6100582003ef5a87e55566d059945f903310f2fc5b406acd27503a4abbd6255932f529e04a032528898819fe9ce712005820039e8ec95833ad6bfd163afb58c88fff08bd9c380b3a352224c4e3481009afa04a98a205040df9fd5f8ed400582003b71486142301c83ecc28128e9be65592864b4dd10b3372b771c93bc017e6f04b015dcedefdb623a00800000058200357c961bbf3e4b4e0d12f34721eb64ad2fe49b021ae44b5475fd826aeba94b04a4639ded653c253b758dd0219e5130381dabc2e59d4b97298660958d761f0ecbeb58764bf197e844dbc4a85d01ac8c40361c2be984729e00d12a255cf1ba7fd0c61bc7f94543789ec5c3c2e17d7b242fc0346d6153fa0f3233b262b397b84ac02b5f0b6dbd13d3a30d507dd66da77c0e2b8037ccd655b15cbe92d9968176bd4235b7f29359a93941d85cf672f4067a33c16f00337518e2d42def063356587bbd5e59113e5ebf54b269b7f008e0e3fd498555f02036e3a4d6d8c0579b3005c9c2043d23b40025bcbd2060c317f069b0a651999e46803b05adc50782ed79a5626bf64e50e664c35947f4056569f391f683da712614c2703c7c424224b13250ed8e96e480f11293445b2ddcfdf19340093090aa3b0e0dab60304ed4e01e9f50a7c8eba92f47875b126de977de9b56d5cf0515faab0245d73a10219ffff03bc9778aa9a1806319d7a0f088ad1802ddee6c3a3ff64c08d473988947fa394fd03ef88c7e27284435f8cd696cf24a10888301aca52ce839285145df7f3a9ee45380350fdf5a567d7bf3385070ea54f0aee0624b7ad607f496923dcf93f10906c4d6603ea0a588636251c09ab642a26dfe6d8eb09d3d21e6606b73fc05b9e704d53a6cf03f8b91e3b3233380eb331745832505d45f1b5b3cdecaa95573ea1999fc8d6aa63030dfd8d27a07936d621204c1d4dee5eff820e6b6e13775df5d91f8316d9ddd7900381fb60dbec347e647c67e9e13ca1a427736b85c6ba5187e07be0c6f8a85f569203c14c8d77467790f744ef2ad76299bed694c9b72c9a155052d5ee017537e750ec037ad1bda35d5a3e23a1247fd2424b70f0af6531755f042c53cebfa29a97f9dda803d2a81e9bb249a7dbd09d35c39f1d5aed0434e779b4dbebd6dc0d20ae56f15392005820031d37e06e1f54eed8121cb8dbeebeead06e56cdac4d4597a9e0a69c68eb78104a3ca31873825f73979c0600582003c8b73e2f088f36afea6ef7d29e61c127f3e02462bc4f618d8ec2d24e8246804a1af410b6d98006580d7803568652752a4fd882da388f7f617a114b7fd43cb1cacdbd4f9ad014b299fd67e00058200320e8a0a60628e1b0aaf32a6f7f0c5e9ffe5f5a6114c4458e8694cf5542a2d04b07a239b0637baf7ca79ab400582003bd1e5fa3c3f3cb600ee866a05d7af6252142ad0e42453c1c7ab140f8d8b2f04b01e6e50985765c443642d70219052c03d05b3ef8a931c404db18b068a438737d293c1f6a38e3d8afd2fa76af5585736903188a6481a0f4540b4026b2a1cc08e1d5c0362aef4758a74658bd5b26a1c5f8bd03413724f72c9293bf1850acc05023d2a772b477199811babbb6c1f7c1d7ddabc10364cefb582ce7f2b85dacf9ae77c673cd053dab2d0390c010f3376a22bdd1a4d003d1262ccf822507ed036372a5ccc490303c9c6761ae3d78a9ec144802b8f8c787031a9b7754df8e72f2c3fe22572e0f3c4002db4b0caa5c9b1c80d004329cc5402b0219ffff03e899e67afc4ef6004ebe504bb68c1007bd1198d2fca84d7968d78056ca9b277a038e5a7aeb3fc37af322c493cf0151503d330d88f960d6f38fc6351f1b4412975b03127d08644a72fee517c8cdf73608adc4a66ed159d62480e9df16f9331c21282a03424e907858a36ce04907b32c757d2b814fe2cbefc7083f515f9716cd33af22c903b22f96553e3f48b21220511b60298de2c8c0c7887c88ea32d771c1d802f3441a036afcb9e36e42bd555ce54c4e636e73c02deeb743337185438aa01f55c87b82a0037b3f0e3e81767795113ca448a7b836ccf1ccbaf78521b0fb28e0bbec527b4df003a662b2b18720e83dfa1740be2764e5fe4c1666a4b06958449ddbc9d72ad7c2f203eae473d45b8926b25f08bacf9b5f28097943d82f2877246ce274465bff77e7cc03dffa9709edadf8f4c1e67a42f508afd3254f9cdf338ea8dd3bf4cdca2465797203ded3673dd0df0f80fcada7071ea5466932213ff52b724107f035e1ae4d628d6003d351ff29686a6d84f3f5799f8ebbae3e3e69e4128e016bea48b5a536b773063003b9dc6a120046101b0cd0737b67b2fa140f3375bfd07e1ce816f35af9ba58161f00581f0208e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802410300581f02df244570a3dceabece829b87e2c37f8fc607298cb1ef031abdcd6bd8daff5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02fb05ea7f280825e1bd3afbc62076cb59e17f8b00a3ea32fb3c59aaba7e1d5820ffffffffffffffffffffffffffffffffffffffffffff9b9aa0af82558c90710c0218260058200365cafd8d8e7cb42df65dc2b32061dd8bdd22c91485218b2524969d1939f8405820ffffffffffffffffffffffffffffffffffffffffffffd430ee7428734c2321ee03aab21352644b6ae040511a58110f54bb77b3224a43c7b29e1f03ba85a3a68b36005820030115f7800dc5416a034cb9befd7203b1c94ed332fa8136d4992aeed03c14504802346e5535d4736c00582003cfd7e67060c91c9f8c903513a1848764da13dffb8e1749556d2f7b1e56fc505820ffffffffffffffffffffffffffffffffffffffffffff41d314ebd8d66736881b00582003c14ea887a60c2b18f13cd46f93643bacd5e7539192d85905c701729d9210d0491dd0c885f9a0d8000000582003ec4488426f9a032446294970ba7fd08587575bd5a1ed7fe5bcbb2472bad9605820fffffffffffffffffffffffffffffffffffffffffffde4b6f1a85cdf83a8c27b03fb459159b4abebd9689f84d909a4b01ebae0859284de628c234f276a5619454202199e1a039498bac6f2da7f1387a516af180607731223e6c384ad2ef5ca6501226332ae41031bcc683dbce73e8b52a85584382bc95c84f772774623d376a8111ebf0139d3b20219ffff0328c80376835f284998891532e97b16bd0d87bab0586db3ec8a8d290ecec8a180030d110e6f6c5b499fc02d50924432b76a6e6d31f430089a60adff2c870f6a1822032bd2856d68812af4f526d2fe931d197cc60382255b6992f4a6fb2d039def92b803727237dcd796e5f26431c58b131488981e2798a1b7d0a0cb834c7edf1d69b28f0337747ffc699395332fde9aed9eb277d2eaaf5a1922ba20e698ab2bb183334116036971f5c948dcee153b4413469e0cf80f78baec9a990ec3cc9e9866fca95c69dd039dc00ffd0d52e1c85dc25bd806c05af049416d140de22bba7a074c89dc4f1059038135aea1a399f79758a1eeb8cf2880168939fc2ff2ab9e4045662ec1a3fe435d03e72ccd51e73b9adfbef1e9345f953979204a7b027ef80b2b26e8e952e1f4712003656ced6d7a65e131b7ac4d3ecff102866dee47603f868d6653682da4dc37e2bf030c63fb98207dd81f40e7fcfc3254cad0ede0fb4d74e13fb57496d5fe6aead5c700582002b84cbe2b7b9503db03172526445e08f2902965491eec03fb67e21fdee91e474c033b15c0d4ed568d7348732703c1f9162a66f97d9ac98d2f4b8004e9d3f3ebb683fade4d0a06a3eeca336d32e8005820035cdd43faf73a771c3c243d087d8b4559e6d2a84d6df1a1296b87aab71379104a156d41456feaec82c3ec005820039e726224d5459162a3b3a5f196b32a01997a6bc7dc01ba72aa136d424ad4604a10227f0a97ac471931c100582003b7acdd493ee8eaed59e6619a32dca1f840fd3f4745aeba83eb5859901be0b04b0aa872a1037d4337904c2800582003d712ff83cb61b8c695f81e43b8b8edc337cea08b68f042403e6cc09f8207b05820ffffffffffffffffffffffffffffffffffffffffffff01e3dea1707c72000000034139993bebc4863ddf828467cf1a03a5c835bdf198b4a3cc1454c6118b58ebc6021996410312f657ecb9078b6774321c45da440a0810b58238a77354148e01ab65ae53bc2c0300fc8cb6faed515ecf871190ede61fab7e7d30fd3f9528f6368ba005aee9f51003af71283df7dd3fd667777e3e98ded62befd060983fb1360ad38dc730a31a476b0219ffff03a7a08b8ffac60a8bb0ad24855648abf22cf2dfb48848752252a6cb64f1ff1b4e03b317d99cb02772051c1b5865cb9e6d4201ca6f875d3f83c42f13aa8b71cb377903920961e9cb1c6862404862e2429bdee8e187e4d7edeee6c9a24aa8ff5e436cce037b183b173f0643ab318ca68dfde681f4c626c443efab449ead3cfceb0efc137b039439ffc65fc2b0cccf107c69245abc8f00430a63f2dab6860f3db8b6155c28c703cb8ccf26707e3bf1da00ac16b39dec6dfba30266f72790edef174809bebf4c8300582003cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054cab8a2efb490a0cf915ca01e540261f3f09a43fe005820039637a1c8e3e058fe1eb29e19395f857fb7edc0b9edca65651f6e8a5b507e504a1ac20030e33a2d76100b00582003a94fc3b2d1b4603d85df9e75c5b9e38eb42e0c4afa0c1eaddff53fb2eb11a04a0b701a4bd527845f033b02198140031fb6a8d2dbcfe05b5dc0569d7499e5446745cce8b1466d22527b6b0fd7cb3b2a038c08da466f0cda288827b7293018789baa6ba7a35551f7d1e6e79c1ba1bf86f5034bed8ce32cdc7e9dd22d9e5c7b4d548207b096bed6cd89b393361856710abe120390f676c0d21d188f0f26554c5534fc4b6ba0d60f2632691b41cd425453240aa9038812e4729184f8cd6957ad27318142c78107c3c1c9b44b74daa9bf60d383540d00582002ebd81d8e5bf3f7eb8bd6cc2619a3f429845f9969f4a91b4fd13916807281e654ffffffffffffffffffffffffffffffffffffffff0362b9f5300bcdc48590a6013b16dcfbce240cb0a2479e860cf34058b13e022cb503fb892fe2bd7848bed7a81e5d736308e2d57d8125233f0d83436c8d2b4906b6d3038431d0279d90a1335f475eb815bea4877144f9a36dc33773486af66f1c48c7140219ffff0315c9bb06d4da1b1b53a8b359163b1cde1654e2a947c6a951d230d906b57c6698034e6ae428bc1d3050467fa0445c8732e20a1e899ff5f8a25f504058e55d6dd237037a033329daacff4f080c0cc6ba13e83a082b9f3e71dd94362df9f762809e11a60330c13295b47eb8ef4c5f6f2e78f2792e0ce703245df55255d4c0082920f4815103707d0decf86d443d0e67146e2d31c59410eb2dc416b3261e7485418b8cd5601403b77c7c6ffa6607b1b19b4c3463ce74527689556791c228e7ea328565abbd57bf03b42d98ab8bfb5d6e18992d13363c68743486d356d3188048abca9f2cf4ee03db0341855767a0bd1ed82d7e70673187ab3b63825ec5aca41e7e16fa3e0a7052962103d780e6151710d1dc295307666918ed579dca8184c090f33a3d42097239a7f70d03ca7d10128d01fcf3c66ece621e658a1f738136370e31e09daf2497c903ac7303030cce171cab0bc0f78fb296417264b9a3d07f7c53bda8ca6b5f728f42d7730b3000582003ee1465359f5cecd3aaabc0f05eb0249c73fd3684b738a7c86e84a5cb42ad904a6045be936562915693a3005820033b6c3529c33ce731a40e8dbbaead6cb57924014ff99c2c1df00234b57d87904a158cbebe6092c158b23e00582003b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0410500582003a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34440410403d9259c7e256264e4ec4a4de25c933516a9a1e503ba4e15cad14b752875990d1900582003194564bc121ba43e1165a2aa8af1c3475db0ba066d4c4d4e7940dd8c4b16b04a38c7db9712ca63e9b784005820032a67b43547d65458c12e065162fec1def32f1b11768d8c5c76573201c2e1b04a2110de0727dd1decdc9300582003a35dfa95dcf66a56df556f23c8e546cff6efdcaac31883e0bc31620ed5d1004a469353a74a635f7e89030219cd9103ed582bfbfd6cf00585931adc434306c527f1e5730a90cc828546c5c8f1105b3803adb02a87879564cf2fca76f60dda010d9a78d99731450b08db183a1c7db8734903d339551a1436e10dc24fc7f5f02a72c0868b77dc641fe06b2d64c1ae5b3e5e66031dddd54d5702b58e341ea9c94213fc140b4d65f628c93ae7794d9488d9da9af20219ffff03106dceffe7cc07c13597e27f08eb5d86c57c9736ed3ed55e89835abfd3a602ba039996d0a621851b7aeb9df6088c47e35c16bfadfc909a0260e5f75e4dbbcc259f035e9dae4e77b7c6f429171e5b0181c5f62d61b9a8e2261b2b6b81d8567dc459fb03c1c88046939a400305a052212b90f8bfa1e9f804055dae1b824d05c96fbc834803e057e6aef77b08b40efac9967a17e57792fa0b0212605e2f280dc5f7504a991b0387e5f365c51a5688f0fc27428cdedf48cf47b1e026ff1a96cfa366a316a518ec00581f029af002c7189c39d96507e9bbbbf0bdd36f8c97c2d0b19b08338408e28a744a54b40b1f852bda00000000581f027bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a84b084595161401484a00000002190420005820030b9535d7358bcd99eba3d602c5cea6b0d695ebc1e6600b4d8f68f496a5c4505820ffffffffffffffffffffffffffffffffffffffffffff9b9335cc6fc08c41bcdd0058200350ea45b6b8fbcc4b4ad3d195cec9137b67489797e703d239f57868120d17f04585224e892203f27af84fa3e63d77caa9e7ff96074b867d621db2623c1a894b9214c451348dfb0058200321439f89308353a82e8e924627f83011b0c097d2b33a8eeb59acfdb51f01d04b027a5fb27ad688a1c1d26e02192a6000582003deef35e4c7511b9d63569461872f3d00c6c5682bc246c0d965a9e71f5cc1b04b01143e4a7c3d7b7428279b00582003ab53212d19192d377d7b1fb07e3113d4c17201f2b8e6ffaae2b9f7e3aa65805820ffffffffffffffffffffffffffffffffffffffffffff91c787b0c1c98ce7ffff00582003e71a997b0e0de3231256483582cc503809768c8e10cf03341009c710114a305820ffffffffffffffffffffffffffffffffffffffffffff4c0d81f0c35372826db50314410afc259c30abb8db9b75a70052560de2912c8e463c3e4def2879d331059600582003d97e795d518c6e05514eba9c7c1eb30d8c58a390e5708e288018a330fa11b04a5d97e5be3579d7fe36ab005820038b70e7c8e1fd479522fd3ba66666958c80cbf35cf86da865164c712c246be04ab1f76f52d0420d47cca002198e220388dd5fa53e173839161b169d95312bd35313c808706da70fcfb76fda6306e9360384339b22ba8186994cd97b61967f27275d0c95c3777861380b92a2d9966ae7f803b8add2fbf8556e145b1de6d2c4deeebb5a607f28f850863613fd5b3a7b2152e4034397d42d2ad957d28b170ec9add0f4e939076e98450dfeb71d7dabf0693fc84b03e34e1757c369e8525552d9f76ee5ac64e69eab4d43aa94ebc3b73ad0eefc50ed035224a5fb91f3f0888e6a8dbf21ff903cfd0b507cb6efff107514108eb99ada5b00582003f98c2d678f883ff2cfe2a1b01defd00363f755634ccb6aed27e5d488d1e7a04b010f85dee99d3594ca5c5d00582003061dc39b79391a3cd228c774d9bf7f31f51a3da4882051999a5f6f62a115404b013da314e52156f66a000000581f02297018ada53308534eca4cb4afea859bb702370e14199fb5ce1d558a675c5820ffffffffffffffffffffffffffffffffffffffffffffe27023ac32e2f5be0f0800581f027b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec4a3e56b9386c28bef8da5b02192001005820039324a991448ca61be8cba29c31936335d432d3662331310fe14899226f87e05820fffffffffffffffffffffffffffffffffffffffffffd26ef36655d4041c6e0e100582003b80d8b6b9e08b16759558870d7466810c329fc494e7eaa9bbc843e0c67dd905820ffffffffffffffffffffffffffffffffffffffffffffc078f7a85c1f1c7ffffb00582003bf6ddab958cc96ad9300f6f6a65ef10eeada2737af03040c41c5e00f9da1004a0934792b500c50411e0d0058200363d68be7633f27ab66ae6ecc7fa4760456972203876faff74651a908855d405820fffffffffffffffffffffffffffffffffffffffffffe62de96537cdbdae156d202195a4a0320dc57a004bc95d003d1c92eab0ad9bd7c10ed0f2c84944936d52bde3b38357b0219ffff00582003241b140041199e226a02ca70527372deea2bd19220309bd4da6a240886a3305820ffffffffffffffffffffffffffffffffffffffffffffcc04129e05256e202f6800582003034bb64097d5f1d21b8515b6da2e03b683aea6336ca356c278977b0533a0f0432149ac005820033987bf486cbf3a813e5df1aff4c3ba2b1f6177f9b83e6a278f6aae6dca2e30410403ca257a30593eb3c6715391d1e1387cb541e4b5fabc5b13671b53f2438ad5357300582003854b9e94be5a8a2cad63c7c3872aed9365bdcbce133435c8c611dbf379ebc04a032b4202deb618cc74a30336a6b1b59c9c148dd807f35bebe5fdf97aec4f0ddb3712b4290d3f65ab78558a00582003cc15dcf6c4628e60f28619e5d2b31d1fca3fd06a249aee0fb22bb1a51851104a051b0f9fed75fff3ff62034610516b7faf72bef0690302691d8453f3b35411150052bc5d6d4d5869221d950219a3350314b82cc96a3bfd2ae6b48b9b4bead05420040c95b6371fe25df2e057b3bdeae2031c72a433415358904d84ba3cc37581eaf1e0652aa59ab7bf401fb3c3c183ef6703e9b011b032ebc1299b7fdb35309563937ee1e458bad5beb2e6b94dd355dd89c6030e32c7b338624e625680569d39087e3cfb11cc7dc4f48d7e18af3d3dda872b4b03053d119588491f0b7b71a00e3d3a420f9e7cc803b1cc39f3e94ac52118980a0c03cb7b2fd5d32059998fca70d851af71bed4106bfa450454ff65338f55882cc32100582003f2b9ae5abd0a31f677b198137f728fab9aeb2ac2d45d429db2bbb796343f504b01ce49acc964d95a5f57d6005820036990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50430101000317a791be28c0f4707e242f51ec5060633d8a8d8195dccf317bdc37a6999398f10219884003a4593f007e99ab138327e088c3d818a26ec34ff3b10840209dee2bef8558148103c83bc88cc75c938302c83aa8e6ee4b7771dacf2f83df7321fc8b2e2d87ea588603e4cd9b85808cb12e83e322e8740bd6d724d1ceacb55ee7d672ea4e74f02506fc039fedf917832b6817d626db87c94cebb4d6137c94841cb0f646a7ecb5d243ff0a03b9bf84066a4147a60580d83c109ebeb0cae28cfc54bd21f8e7f49af17861345203ce1644961f632c0b58e2245e42a43414af4e8316c988a869e824d62a38994b680317e956d270cab12d4acc4fd6c865530e10afdea4a877f19517afbd39707153d3005820035a32fac62e2d884623eafc62ee4e1d1fdb0332f5649f150e408ec6a18bc5505820ffffffffffffffffffffffffffffffffffffffffffffcb0f790c4cc497bfffff0058200304034f9c84fdb78429eabe4411e7ec6dcb87ce337ee7aa7c5a0fefb16a56104a1a117906f81b25943d4500582003966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c704b084595161401484a000000005820038fd85708d59e999657f13a305b5975f4380994f9e30a7826e7cfdf73674be05820fffffffffffffffffffffffffffffffffffffffffff9cbd02f70ff09c87fffff0058200380f3bebbc70ccbd76c773352ce20298ed7c7fab6a00dde1be5c7a472d97af05820fffffffffffffffffffffffffffffffffffffffffffeecb6dbd98f317b7fffff02190c4a0219ffff03bdb0633cf9b1185f6dd1696b6e1e956d5bbea8c3f37490ae5ff2e72d58eb76cc03350e77d32f969a7b8027df4ed4fd07767fa14a10cca63aff575d4bd9bb54b96003f00fedd00721757d5dcfd340988c9cd5974d47a9780ba9ef0a3a9209aedb7cc703e2f642dc91d05966339c62ad58b6855f5fe26e8a8f27de6eb6514d62f3ed5a0e03e3d38f1076790b0b8f790920b97a2ccdb6a60a3772f1d35d55da1e9cf049df5c03d68de6ca347fda8547ebffbfe97281bb81add8e95d58962e1ae8c338bb4d33bd03cdaf50d5062146ebe9db7e6c2408471f78db4a8b7af689ed32fad3b7782001220361796786a49a21516eb1bbbe6b5cd66c31f107db30c626604daad145cce3f8be03a6d60ee133e478f23991ddc77a144f21b7c7e4bca8abcb9a51767028d5e669cf0342d12ad2c92a14a5b95f93d7ec5d05e9f206b91bda928150b6bee8ebe85708c303f6c4a4e2ee874064bdc96f7f14e78c1f4c6366d37d5991f519adb2659693ca6903e891704d7f6b5aef2f596df8a3d876c78326257ccdd634791dfb69a37b99a41800582003cca5f65a21b2c94ad5f94583559a968487ae6886dd35898c992f5cd310b4005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f023eff8804f56f2f08e312e5d9f4ae7555574ef2e75574b894f2216e3f00f15820fffffffffffffffffffffffffffffffffffffffffff9cbd399bdf53ffa1bffff00581f025b25fbcedd8475eae1ec60e92609620528208dbc3477a7b8ba9d262ea82d438ecd8402190180035b2b4f4f295d507b6bd04c1acbadbe57140b68d7d9b82412b7b8911f75200fdf00582003727733de28f904cd32d182d0b10d0e914cc54289edd1ebd0b93e108de497305820fffffffffffffffffffffffffffffffffffffffffffecc9acfcaa8aeef5b002203b8304dfda9a8ec4b6b981c1da152ddf92ef34c9307c0dff5b94dfbd0cb8c608f0219c5020370c89647a59f3d538b1d0176049a189eee86b6b8192fe6615db51770cb35b46b031d3bfb9448e43528db908bc856af56f5a22795b9a18d225e9380039e68f52474037575b7a5c9f8b6c005a04a37392a51a174558f9027a0163b97977eb3e78736bc0219ffff03fccaee35856538021964e7f4bbaef9cd2a898ead7cd37e01d99f19c7ab409b62031b6983ba40cbabc2c2dbf8d47f19422d2c429cfb1436058611bf883eba70e83a03556436ff787a2b360efdd152188308a9d980d11c62d7d83dbe4aae043a2683570382352f440e80136b3c7717afc9b98ac9705265b4e33a01b1c36a21720391203a0390a924c305352a69d0473d5358c2f1b66d6d883990bacd9f389901bb894bef63032062773de1e53c8345e1dab219a950aa5967111a2bf388c419f640106be9976a03f0a29ca8241d87eb8e7fae16d93fb79634a15565f9f29dbaf28fa96609da257e0058200300f3ac26aeaa5e4df31218331a2b674f9461e6a3f6e7e0596293c4be81c8a04a43c5d809e06e763aa1d6005820032222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f05401b464bc83f09e13c0ab218692ad09f971d8860800582003c2f0ecdbfa0b34f7f18953a72700b6fe55ed9770df4c04ffd1565b4dd780005820ffffffffffffffffffffffffffffffffffffffffffffe44ad919211d6c07e1f1005820039e7c0fc2cf2a4219bd79880c4dc8c75acd9af1433b66c8332983b4877837705820ffffffffffffffffffffffffffffffffffffffffffffc483d215cc0dfc8c4f2900582003e503c0da91356bf78fafd17a73fdcceb9f59bfd5064ca96eee26af6a51c5804a4825237b90a6b7d4aef702192a2c0399667037ec0f905d78b756bcb5e90eca9fc9a68c7dbbc1f30e237a2400f96f8d031c2213ca4b7bf8dfae0793c8a0e9ccf0911f3487018440d1998e9b1f27b61c5803663bf4ee04b2410737cb08be2f569db35df5f9da19e6142c6f8e861fbc7739e9039fb996115f0dd235c85a122dddf0db11f02d63bd18880df504f9a86b7292bdcc033a9ed366f8dc14164a83747d2209f262cdf8cdbcc11a56581550d1ecead33ae303b8220e4ccde6584bed2270b9079a753745f7e414fbf12d75d421aa11adfe4fb703129c4196d6dd4ad1353e651d1a4635835811bf86686f4583f32c57df0a372be903e6bdbfd2718a39cb1b48ca9daa3e741dba67362f09e426b08e5153084283c1e503b11d3c0d3a94cc0a13e0787bbf5aa8cbc00941f29ecaa3e5ace796f7ab217f4b0219ffff0219ffff05581d026526d0cdecee66a5e220cd7eb584ad3dbef0ac6a20b9ebe35c2aabf707011956e50219109005581e03ca61555fee0920a01e81cf546354653c0df9336a0341db687973836be0040105581e03549e1596a389eeb3cf2debcdf13f7f3f5d290afb97788e4e5695af9d500c0346b88e39af8ce805581e031b1e100f3701c8fcca100508f220eab120e6fa466af26a09b62a4179200c01465e74292c820003da5318183ff65b8e5c69df1df9b7e173f427a363ad808b4a5c96dd0e1137e4a403d286a284f0c2f5018a54e8def8efda5e9fa4337e9aee8adacf99ba4eae0ee2d1038ca4d48d33be6f817dde2fa3593a2abbdc3ace054cc16184fc02dd3bc9a441e40305e82bb28f96ad6a81969d8b8e69746ec5d8b1fbb2e81cf9070af6be89e6ef070354901c2ed18bf6bfaf83c9c14766f9fbc928f78a9a2df47afa228feb0246f1b003a467400b18e5c4a98809dcda4111156d3aa26d392c78525cb5143fad9e68cfaa031e1a73cb869de337c26f807dd424a84779290ac27195165f32ad2c78b490f7720219fbf603245c38ef9d333938a24848c4d46fd5a0ef601da8c36106c65e2a811d2a496ae8037089e9dbe5aa3272f142f409d65591362a479521fa43058fe7e1af4a50d4b8130308035f96a941d697a43d8fbe20c6d6e137891b7982dbf4bea2024199044fae070219ffff0332f05ccfc9f53d6e1285549849a88769e878ed667698b35ca54469807b77a11403069ee3838b0e13ec549221f39a2db5f93304947af99c48f59bcd0913030040cd035cee6e7c2e82a9990d9146af714f1b218879fc2b23f746cb7c8b37519c10ec570373b650c99d5c462dc7a126f19cf3847d1c455bfa411ba207fa61a320e6aeeca90374cb941f0ef4b71f73c1f086e568616db2e0adcc05dd65b5743b3bfc41fb769503a4ef1b387cf18f0674bf48692bd9abc90226ccca66ee49f9997697efcac5175f03a54f145ad6ce810b06115ac2660ac809f0482f89358d1c3f291c3ce3e6daac0003aec6f734be604e2be7f106e456d62f86a80244a22727557b8a9b22c36edcbb4c0219ffff0334fdb1d5b0e8d912920043b81c1522d5acfacfc18d85433c11dfe71e082745b6030f9fb271ca73ed1938ab407e68a9fd1021cdcbac61cac1f8c8d65a83f0a5a70e0342d2c34fdde3f6bf396721bcc2f65723683663d0a5fac69bff500fcd855d81860219ffff03a5c9d7b05bc29725367f77340b7fdcd37884774a32546bb9436ff2803ddd524c03f5d43115b1efcef03c9b0ef9ccc876fcc3166b78257f09b0e11d6dd4477484230219ffff03cbe33bf69ca62e9fb6209a11355cb24cc0cd96f5d1568d5915a76ea006be801d0306a277dcb6baf32f055b7ac83f58a64418e169280922339c891389e98ddaaa1d03c3bf927359e6900811116570be6849bec92b550a2a5cd10bd82ba61503d578be03572f4ca48cfea098a7304035f2151bc1160dc844212ed0ed2eee57ff15af5473032b8a432994e4c1d16a797ce4985e0ca1cd80781e4a9c7a71ffc8dbef237a25440316f5c9977eee17a85275a3c153b9b3d27eeecacbc7824459a5b9fa1ff40ea60d03a402f2de26781145f07d55ffa7eb38ed78aa5418bd48f2fa58d15bb7edb2320003d56d72efe890b213efaaee99f039d3dcab2f7dfa3d2729ede9a7ec13f074a22d038eff9fced92bc25ffa528ae226781c6f5415d71679f3f6e0438d6a9aa4cb0d9e033954ba22be6367d54c6ac41afcc7ea9c3d7caf4964c8f4d6a03c7d1f7ddf1b0303cdafa7d14f768295c06882eb5fdd64b7e668b9585822d8f56b0f2c998714c00703239b247ea9123ecc681e5b547fed6ddb9c1ad2e821144e208ad6ff4ae4073adc0340d131bd14eb62592e3ec2d1e967d3946c2b8fa107fa4cecafd43562a82a806e0321d32297cffdca9c8d63f5523b653b9d9e7e3f76b2524504bf98efa3f541fca0035405ca31d3dc206cfef7353e6731d921b11c0279aed37543ef7ce6907e8846c30314542e2f208c0cecbd6b39d3b2cf00b3b9c1c3950bba8e86d9e4fdd4f3af0c7b03b5a1549476e8885fc52f841e4acf35e7e3067efd52181df0f5d2bbb434d16a3c03044a24359205b52f1c89cf0a62e86fd31c71b0d2656d8976a260d093cf588de30389ad6e304ae69d1f67efbd52f0c31754c074a662060bf112f26a7bc3f6cdc89c03461284a7e14c03c7b74c00ac27c152b5699cc5a04c3bd7a9b34a50a99afa79290375fb21e7c1c48b0b9d9a4296e152c50888b0e5edf4e9eb1452ae44a1ac7c68dc03e36c8c44b225cabfddc623942a84bd2c265428f896aa11536d61366431d3ddaa034297009ed976d7076b613b4c9fb2da3e58d4a76dc4c209ddcd7055f086aa0fbf03d3c2117d4de9845c704ad49a1cb71f568467193c7376a17a363df10c46156f75036e323afcfb399d77d6b3a635aeffdf3806fb140001b8582e9f786972e75dd24c03ae0fdc4e7e571665a8c7fad9bb1c40f7c3319d4e31331dc71ffbc7d40c96f5f00345a586ff6f067746c4a5a0769e9800fc105543011fdfdb5e36582a1c5bb9a096039140558b42d53beaa8afeb0ae4f4e83b7d0d677d60c05f0261a3d6b4ca14c46d03bb3d7125420e5d4ca52100e36a5f2671a1e898f81bfb1a3ac42a9709a11e58380358660f4316bbad816575bd1c411e9b2b7c2fbe6bafb4909352fd8574d716260503b05c081e1f853f94d5d01324186e5f209faecf86052a933835f38661509f42d503c1f527f6dd86351ab43c90fa3acac8254309b01e554169efa72299cc1dadbadc05581e03e897c19ce0a8c658900cff4d3b16c5b7cdf4e3f703da7044abd88d9ad00c014709b3913323a60005581e03432747be473e4e25b2700ac6182a4dbab0c258b71c3e4637cf254204c00c183247783fc3f8d9f46905581e033a0aaa296e38c540cd29b82b0a0b4da70776ced24e5919e2c4363626900c0246065dd0836ffc0312f5d6ec7fadc3811c663f2d9ea24f233de8900a5a8636a9e23606b23f2390ed05581e03dbe37b64e3f993ac1f91bbf0c52b79bc53eed54bb02dc8f2dabcdc17b00c01472bf3582ad7900005581e030e5d8464b487786edf3a98c03426df19b3bd117b4fd762697a2e7ff650040205581e03bae7e7b413dfcae95f8960be0b107016d23ae5625141a52294abab67d0040505581e03fa26623139d985635f16b7c18755b1d0bfcc716c4e48c978ff9ba9bc3008477706352f9afd6705581e0365201fd850ee0880e401f74d792a68d9014f14b46953344fa58ed115f00c03469f54c787672803495fe6d970f945e4867f698d665b2dc0e48c37e31a83b1daf8e2b8de5a9dd539034aa1d095135e9eeeffe4eb63e9daa0eb9c0148fc1d9efddf22412cab243f4e4e0141020219ff87032cc2591c03136f3a6751a57fe52049c370044eb40e8286ad7b6c975633d8e2110359dd33d960ebda14897589aad2c5d3e5ce015f9525b5bec1d7d00145b8e9ca6c03f154c37cefaf6bf361a376dd66c5914a9c394073980a33987bbc122303edb1090355ed91d56c3387a775cc58e96727a6be27f0cf95315d1b4dad15e9c0ebdb372e03368389a859bab738f875f0a971b195fa9ceba264f821e8d3fb212ea28dbeadf9035bc8f053c847e38da3336cbaea8fb1c4edcf906b282ce5b5860219e5e4da67a20219ffff0309379f2ced0e12d1955f68abad774aafdee0ef87427fd2090e841e7dd6df61c6035423e727f2228de4148fa9495fa6816f4a1b31f4f3aaae494e5232a46995a4c803ce607c222e5aea9e897baf8cc0d6ad4a05d6dd1b34120f06b675a9d8d28668a4033db5a91bd43811d6390af668056b99fb1ea07deff79f7b48660d973c307c3b3803871c051d0e31ffcbc5a61a81298eb077604c3e990fe25d8cabf2bd6463cf07fd037d1225ba67876b3f5a24c50372468dfdccd46d2c4cf164c1c5613c25af772bdb0219ffff035bdfd3e665b0078a7d8eed327f901ef569fcca4ff35676193a5d4224e1e27e23039b02a62ee1d2553d658bf4d3856c7c89203f6e3119cdaec6394756d6dda9e3170219ffff036f0510525b24c2952c78fae6db47f9fb97ae19f59a496a9ebb05d678d1ae965503bf45465959c9bc9a28392cb3f50a5a6e7bb7c79a02317893b385d751f46da20e036e08b73cb66f81051d8828ffc372d5305b10d6060f6997d6708f934654e7115e039cf14db546c0f6a39d565f027bc6fd80169f7733b725d10657dae806d2ccd26b037ad9fd4acb9ea0b82e195cab3e5938544d9f2f65277c92ea9b96d65b10c2b57603cf1c278cd5a7867f373f9b4180fe8ea86ce7432d6048463abb37930d67e874e6034dcf39676ddda49afadd1a0f65520993f531c6e11a117b35f7539384708e0d060383a8d333568626d3fe98d033a6d4ace0323e5ae7b6e6206b16d1e3d53e89b4a60308fa7c9df60113a331da62bac1c83b3642d6bfa09e4fa33c31e88346ee8b1f2603e8fdb65d40736876a20eba3ba6ad4662a5a92f8fa9008d279c4112df015b758403a2bcccb46a9551393e95adaf29512c82d546b8bee2c5e0a9532d30b38719ed5503a112f2971e0485b78b492e8be2e34e0067bdf3cb6ec6dd26b265839d3989803503178231af8503c0be04a2ecd884c14de47c1cebbaa2a726cfac8fc34bcdee4b0e03e299a0763ff2a506232b607767aec3ea5907922c4254cab5ec291e2c700ad54c0333a35cc4c6f1efc411d755b04e3a5f0a469f1b13a070a948a6b65fa1450a6530031b34d38244fe12acafccf48536c02c459c1a817d10c6a8608dcaaea680f25c8103d1ac58d26708ff27b99cd63b888029319315574173cd1ba5e419ba77035caa4d036639f73b1328a3dcfcf3fe448216580a1d3ab2ba1c585548bbc205eea41687d60338e360ad58294fb9101dea38de676e5e1d2ce828612bdc0108b1e27681e823e803af52ea2824084006bdee2132499cef24ab7317280fb1a9210caf356dcb14997b032bad0cf5fdcadcb122f8aacb128fe879a4117f7e39a7c9d31c8f5d282aa9cfb003671290937b21b551e37beb907bffcc4c257aa5eb7c57de48cf90ee79d9a61079031cb3928a0b2c527913246cd3d4b080e45920f14f7d792a81ac299bd6d781532d03d67f870e8fc5a5b3b4d156e1b7805c89b09f2c1e1b8f5f398e48e909446cdc42034d462b0418e8558713a799a322ba8a3896e150b0df8cb63428e000b5fbc0347c034ada6e2868d5714383904f1309c053f5095f785f1272700ea2715e858adccf490314256dae17239625be8edffad3b4877e1fc56a50db8791b7f57d29e1a974bf3003df91c1a3e2ca589339adf5d678809f218844eef1542eef0eb43bf8ca2ac069e5038162e07d6b734597fc0294914b8dfd4ae7bf2a1106cb63548c7bfbbd5f8283ef03eeb03db5927875c5318f5abb78dde4d5660a5423a5228a34e9a1e36fbd024c4d0325a667c2a47c457dc88526a020e101aabf75ef1cb5d7afa80541ac460c5cecb1039fd4b5c88861a0d14a13621949a82a10de089c680d77e63cc30719368bd8b14b0358080022fa29f91db5acd9e49afdc18c2c6801cee69ec424e2de132b4bce3b59032d45c3fd8774ac90ec885630f4a7c7872f25dcf9ef5e4749466d2ef3a8ef880d038739cb4283f5e4e8d16be2f1f2f60b0fa84d239dafe3e4bb614d66252cacd01a05581e03e094b31af8e45820fbd33f3b3270164a361fd2f3f05325f5a1037ac1300c0247029c7a85e8f00004592cb26080604052600436101561001257600080fd5b60003560e01c806301ffc9a714610257578063020c89621461025257806306fdde031461024d578063081812fc14610248578063095ea7b31461024357806309beb0c01461023e57806313b7b24c1461023957806318160ddd1461023457806323b872dd1461022f5780633192c6cf1461022a57806342842e0e146102255780634da7b73c146102205780634f2a5fac1461021b578063525a330e146102165780636352211e146102115780636c0360eb1461020c5780636d325d311461020757806370a0823114610202578063715018a6146101fd57806386a4fd73146101f85780638da5cb5b146101f3578063950c4606146101ee57806395d89b41146101e9578063a22cb465146101e4578063ac1a96ec146101df578063af426bb8146101da578063b27b38f1146101d5578063b88d4fde146101d0578063be8ca6a0146101cb578063c87b56dd146101c6578063cbf1468e146101c1578063cd27a036146101bc578063e9645003146101b7578063e985e9c5146101b2578063f2fde38b146101ad5763f77d22ff146101a857600080fd5b611aa7565b611999565b61192f565b611867565b61175f565b611738565b611512565b61144d565b6112ff565b611205565b6111a9565b611188565b61109c565b610feb565b610ebd565b610e96565b610db0565b610d3e565b610cc6565b610bbd565b610b8d565b61098b565b61092f565b6108e4565b6107b1565b610789565b610762565b61074b565b6106fc565b6106d0565b610690565b6105ac565b61056c565b610469565b6103bd565b61028b565b7fffffffff0000000000000000000000000000000000000000000000000000000081160361028657565b600080fd5b346102865760206003193601126102865760207fffffffff000000000000000000000000000000000000000000000000000000006004356102cb8161025c565b167f80ac58cd000000000000000000000000000000000000000000000000000000008114908115610333575b8115610309575b506040519015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014386102fe565b7f5b5e139f00000000000000000000000000000000000000000000000000000000811491506102f7565b9181601f840112156102865782359167ffffffffffffffff8311610286576020808501948460051b01011161028657565b6020600319820112610286576004359067ffffffffffffffff8211610286576103b99160040161035d565b9091565b34610286576103cb3661038e565b906103d4611ac5565b60005b8281106103e057005b806103f86103f26103fd9386866126b0565b3561281c565b612672565b6103d7565b600091031261028657565b60005b8381106104205750506000910152565b8181015183820152602001610410565b90601f19601f60209361044e8151809281875287808801910161040d565b0116010190565b906020610466928181520190610430565b90565b346102865760008060031936011261056957604051908060035461048c816109bb565b8085529160019180831690811561052157506001146104c6575b6104c2856104b681870382610a8e565b60405191829182610455565b0390f35b9250600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8284106105095750505081016020016104b6826104c26104a6565b805460208587018101919091529093019281016104ee565b8695506104c2969350602092506104b69491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010192936104a6565b80fd5b3461028657602060031936011261028657602061058a600435611cbb565b6001600160a01b0360405191168152f35b6001600160a01b0381160361028657565b34610286576040600319360112610286576004356105c98161059b565b6001600160a01b03602435816105de82611b94565b51168092841614610666578133036105fc575b6105fa92612190565b005b81600052600860205261063761063361062c336040600020906001600160a01b0316600052602052604060002090565b5460ff1690565b1590565b156105f15760046040517fcfb3b942000000000000000000000000000000000000000000000000000000008152fd5b60046040517f943f7b8c000000000000000000000000000000000000000000000000000000008152fd5b3461028657600080600319360112610569576106aa611ac5565b80808080478181156106c7575b3390f1156106c25780f35b612250565b506108fc6106b7565b3461028657602060031936011261028657600435600052600d6020526020604060002054604051908152f35b346102865760006003193601126102865760206001546002549003604051908152f35b6003196060910112610286576004356107378161059b565b906024356107448161059b565b9060443590565b34610286576105fa61075c3661071f565b91611d92565b346102865760006003193601126102865760206001600160a01b0360095416604051908152f35b34610286576105fa61079a3661071f565b90604051926107a884610a72565b60008452611d0d565b34610286576020806003193601126102865767ffffffffffffffff6004358181116102865736602382011215610286578060040135918211610286576024903682848301011161028657610803611ac5565b61081783610812600b546109bb565b6127ab565b600093601f8411600114610858575092829360009361084b575b5050506000198260011b9260031b1c191617600b55600080f35b0101359050388080610831565b91601f1984169461088b600b6000527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db990565b9381905b8782106108ca57505084600196106108ae575b50505050811b01600b55005b60001960f88660031b161c1992010135169055388080806108a2565b80600184978683959689010135815501960192019061088f565b34610286576108f23661038e565b6108fa611ac5565b60005b81811061090657005b8061091561092a9284866126b0565b3581600052600d602052604060002055612672565b6108fd565b34610286576020600319360112610286576001600160a01b036004356109548161059b565b61095c611ac5565b167fffffffffffffffffffffffff00000000000000000000000000000000000000006009541617600955600080f35b346102865760206003193601126102865760206001600160a01b036109b1600435611b94565b5116604051908152f35b90600182811c92168015610a04575b60208310146109d557565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f16916109ca565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff8111610a5157604052565b610a0e565b6060810190811067ffffffffffffffff821117610a5157604052565b6020810190811067ffffffffffffffff821117610a5157604052565b90601f601f19910116810190811067ffffffffffffffff821117610a5157604052565b60405190600082600b5491610ac5836109bb565b80835292600190818116908115610b4d5750600114610aee575b50610aec92500383610a8e565b565b600b600090815291507f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db95b848310610b325750610aec935050810160200138610adf565b81935090816020925483858a01015201910190918592610b19565b60209350610aec9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138610adf565b34610286576000600319360112610286576104c2610ba9610ab1565b604051918291602083526020830190610430565b3461028657602060031936011261028657600435610bfc610bf5610be9600c546001600160a01b031690565b6001600160a01b031690565b3314612b9d565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526004810182905290602082602481305afa9182156106c257600092610c92575b50610c7490610c5b6001600160a01b0384161515612c17565b610c648161281c565b600052600d602052604060002090565b54604080516001600160a01b03939093168352602083019190915290f35b610c74919250610cb89060203d8111610cbf575b610cb08183610a8e565b810190612c02565b9190610c42565b503d610ca6565b34610286576020600319360112610286576001600160a01b03600435610ceb8161059b565b168015610d14576000526006602052602067ffffffffffffffff60406000205416604051908152f35b60046040517f8f4eb604000000000000000000000000000000000000000000000000000000008152fd5b346102865760008060031936011261056957610d58611ac5565b806001600160a01b0381547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b3461028657604060031936011261028657600435610dcd8161059b565b6001600160a01b03600954163303610dec576105fa90602435906123ad565b60a46040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f6f6e6c794d61726b6574706c616365207c204d50207c20606d73672e73656e6460448201527f657260204973204e6f7420546865204d61726b6574706c61636520436f6e747260648201527f61637400000000000000000000000000000000000000000000000000000000006084820152fd5b346102865760006003193601126102865760206001600160a01b0360005416604051908152f35b3461028657602080600319360112610286576001600160a01b03600435610ee38161059b565b610eeb611ac5565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529116908281602481855afa9081156106c2576000928492610f88928591610fbe575b50610f45811515612afd565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481019190915293849283919082906044820190565b03925af180156106c257610f9857005b816105fa92903d10610fb7575b610faf8183610a8e565b810190612b88565b503d610fa5565b610fde9150843d8611610fe4575b610fd68183610a8e565b810190612aee565b38610f39565b503d610fcc565b346102865760008060031936011261056957604051908060045461100e816109bb565b808552916001918083169081156105215750600114611037576104c2856104b681870382610a8e565b9250600483527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b82841061107a5750505081016020016104b6826104c26104a6565b8054602085870181019190915290930192810161105f565b8015150361028657565b34610286576040600319360112610286576004356110b98161059b565b6024356110c581611092565b6001600160a01b0382169133831461115e57611101903360005260086020526040600020906001600160a01b0316600052602052604060002090565b901515907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b60046040517fb06307db000000000000000000000000000000000000000000000000000000008152fd5b34610286576020600319360112610286576111a1611ac5565b600435600a55005b34610286576020600319360112610286576001600160a01b036004356111ce8161059b565b6111d6611ac5565b167fffffffffffffffffffffffff0000000000000000000000000000000000000000600c541617600c55600080f35b34610286576040806003193601126102865767ffffffffffffffff906004358281116102865761123990369060040161035d565b926024359081116102865761125290369060040161035d565b61125d939193611ac5565b60005b81811061126957005b806112786112979284886126b0565b356112848289886126b0565b35600052600d6020528460002055612672565b611260565b67ffffffffffffffff8111610a5157601f01601f191660200190565b81601f82011215610286578035906112cf8261129c565b926112dd6040519485610a8e565b8284526020838301011161028657816000926020809301838601378301015290565b346102865760806003193601126102865760043561131c8161059b565b6024356113288161059b565b6064359167ffffffffffffffff83116102865761134c6105fa9336906004016112b8565b9160443591611d0d565b67ffffffffffffffff8111610a515760051b60200190565b81601f820112156102865780359161138583611356565b926113936040519485610a8e565b808452602092838086019260051b820101928311610286578301905b8282106113bd575050505090565b813581529083019083016113af565b9080601f83011215610286578135906113e482611356565b926113f26040519485610a8e565b828452602092838086019160051b8301019280841161028657848301915b8483106114205750505050505090565b823567ffffffffffffffff8111610286578691611442848480948901016112b8565b815201920191611410565b346102865760606003193601126102865767ffffffffffffffff600435818111610286573660238201121561028657806004013561148a81611356565b916114986040519384610a8e565b81835260209160248385019160051b8301019136831161028657602401905b8282106114f9578585602435828111610286576114d890369060040161136e565b604435928311610286576114f36105fa9336906004016113cc565b916126c5565b83809183356115078161059b565b8152019101906114b7565b346102865760206003193601126102865760043561152f81611d69565b1561170e5761153c610ab1565b8051600090156116f45750600091807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000081818110156116e6575b50506d04ee2d6d415b85acef8100000000808310156116d7575b50662386f26fc10000808310156116c8575b506305f5e100808310156116b9575b50612710808310156116aa575b50606482101561169a575b600a80921015611690575b6001908160216115e0828801611c8a565b96870101905b61164d575b505050506104b66116109161163f6116166104c2956040519586946020860190611c73565b90611c73565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000815260050190565b03601f198101835282610a8e565b600019849101917f30313233343536373839616263646566000000000000000000000000000000008282061a83530491821561168b579190826115e6565b6115eb565b92600101926115cf565b92906064600291049101926115c4565b600491949204910192386115b9565b600891949204910192386115ac565b6010919492049101923861159d565b6020919492049101923861158b565b604095500491503880611571565b6040516104c29350915061170782610a72565b81526104b6565b60046040517fa14c4b50000000000000000000000000000000000000000000000000000000008152fd5b346102865760006003193601126102865760206001600160a01b03600c5416604051908152f35b34610286576060600319360112610286576004803561177d8161059b565b6024359161178a8361059b565b60443567ffffffffffffffff8111610286576117a9903690830161035d565b6117b4939193611ac5565b6001600160a01b0360009216915b8181106117cb57005b6117d68183876126b0565b3590833b1561028657604080517f23b872dd000000000000000000000000000000000000000000000000000000008152308782019081526001600160a01b038a1660208201529182019390935260009083908190606001038183885af19182156106c2576118499261184e575b50612672565b6117c2565b8061185b61186192610a3d565b80610402565b38611843565b34610286576040600319360112610286576004356118848161059b565b60243590611890611ac5565b81151580611925575b156118c7576001600160a01b036118c491600080809581948294165af16118be61225c565b50612a63565b80f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f496e76616c696420416d6f756e740000000000000000000000000000000000006044820152fd5b5047821115611899565b3461028657604060031936011261028657602060ff61198d6004356119538161059b565b6001600160a01b03602435916119688361059b565b16600052600884526040600020906001600160a01b0316600052602052604060002090565b54166040519015158152f35b34610286576020600319360112610286576004356119b68161059b565b6119be611ac5565b6001600160a01b038091168015611a23576000918254827fffffffffffffffffffffffff00000000000000000000000000000000000000008216178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b34610286576000600319360112610286576020600a54604051908152f35b6001600160a01b03600054163303611ad957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b60405190611b4482610a56565b60006040838281528260208201520152565b90604051611b6381610a56565b604060ff8294546001600160a01b038116845267ffffffffffffffff8160a01c16602085015260e01c161515910152565b611b9c611b37565b508060019081548110611bd4575b60046040517fdf2d9b42000000000000000000000000000000000000000000000000000000008152fd5b611beb611bf0916000526005602052604060002090565b611b56565b611c006106336040830151151590565b15611baa576001600160a01b03611c1e82516001600160a01b031690565b16611c6d575090815b611c315780611baa565b6000190190611c4d611beb836000526005602052604060002090565b611c61610be982516001600160a01b031690565b611c6d57509081611c27565b91505090565b90611c866020928281519485920161040d565b0190565b90611c948261129c565b611ca16040519182610a8e565b828152601f19611cb1829461129c565b0190602036910137565b611cc481611d69565b15611ce35760005260076020526001600160a01b036040600020541690565b60046040517fcf4700e4000000000000000000000000000000000000000000000000000000008152fd5b929190611d1b828286611d92565b803b611d28575b50505050565b611d319361228c565b15611d3f5738808080611d22565b60046040517fd1a57ed6000000000000000000000000000000000000000000000000000000008152fd5b60015481109081611d78575090565b9050600052600560205260ff60406000205460e01c161590565b611d9b83611b94565b90611dad82516001600160a01b031690565b6001600160a01b03828116939181168490036121015783331480156120bf575b80156120ab575b1561208157841693841561205757611f4590611df0848861212b565b611e69611e10856001600160a01b03166000526006602052604060002090565b611e36611e25825467ffffffffffffffff1690565b6000190167ffffffffffffffff1690565b67ffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000825416179055565b611eae611e89826001600160a01b03166000526006602052604060002090565b611e36611e9e825467ffffffffffffffff1690565b60010167ffffffffffffffff1690565b611efa611ec5886000526005602052604060002090565b9182906001600160a01b03167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b80547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff164260a01b7bffffffffffffffff000000000000000000000000000000000000000016179055565b6001850190611f5e826000526005602052604060002090565b91611f73610be984546001600160a01b031690565b15611fa4575b505050507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b60015403611fb3575b80611f79565b602061200391611ff461204f9585906001600160a01b03167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b015167ffffffffffffffff1690565b7fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff7bffffffffffffffff000000000000000000000000000000000000000083549260a01b169116179055565b388080611fad565b60046040517fea553b34000000000000000000000000000000000000000000000000000000008152fd5b60046040517f59c896be000000000000000000000000000000000000000000000000000000008152fd5b50336120b9610be988611cbb565b14611dd4565b506120fc61062c336120e4866001600160a01b03166000526008602052604060002090565b906001600160a01b0316600052602052604060002090565b611dcd565b60046040517fa1148100000000000000000000000000000000000000000000000000000000008152fd5b906001600160a01b036000918383526007602052604083207fffffffffffffffffffffffff00000000000000000000000000000000000000008154169055167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258280a4565b9190918260005260076020526121d8816040600020906001600160a01b03167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b6001600160a01b0380911691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4565b9081602091031261028657516104668161025c565b909261046694936080936001600160a01b03809216845216602083015260408201528160608201520190610430565b6040513d6000823e3d90fd5b3d15612287573d9061226d8261129c565b9161227b6040519384610a8e565b82523d6000602084013e565b606090565b926020916122d69360006001600160a01b036040518097819682957f150b7a02000000000000000000000000000000000000000000000000000000009b8c85523360048601612221565b0393165af16000918161234e575b50612328576122f161225c565b805190816123235760046040517fd1a57ed6000000000000000000000000000000000000000000000000000000008152fd5b602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000161490565b61237091925060203d8111612377575b6123688183610a8e565b81019061220c565b90386122e4565b503d61235e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600154600254900382810180911161266d57600a541061260f5760018054926001600160a01b0383169283156125e55781156125bb5761255f906124fc67ffffffffffffffff916124b583861661243e61241a846001600160a01b03166000526006602052604060002090565b611e3683612430835467ffffffffffffffff1690565b0167ffffffffffffffff1690565b61247561245e846001600160a01b03166000526006602052604060002090565b91612430835467ffffffffffffffff9060401c1690565b7fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff6fffffffffffffffff000000000000000083549260401b169116179055565b6124c9886000526005602052604060002090565b906001600160a01b03167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b4216612512866000526005602052604060002090565b907fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff7bffffffffffffffff000000000000000000000000000000000000000083549260a01b169116179055565b830181805b612576575b50505050610aec90600155565b156125ae575b6000828086019585837fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4612564565b80841061257c5780612569565b60046040517fb562e8dd000000000000000000000000000000000000000000000000000000008152fd5b60046040517f2e076300000000000000000000000000000000000000000000000000000000008152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d503a204d617820537570706c792052656163686564000000000000000000006044820152fd5b61237e565b600019811461266d5760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b91908110156126c05760051b0190565b612681565b90916126cf611ac5565b600091825b8151811015612790576001600160a01b036126ef8284612797565b511684806126fd8489612797565b516127088588612797565b51938451916020809601915af161271d61225c565b5015612732575061272d90612672565b6126d4565b606490604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601660248201527f692068617665206661696c6564207520616e616b696e000000000000000000006044820152fd5b5050505050565b80518210156126c05760209160051b010190565b601f81116127b7575050565b600090600b82527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9906020601f850160051c83019410612812575b601f0160051c01915b82811061280757505050565b8181556001016127fb565b90925082906127f2565b600061282782611b94565b80516001600160a01b031661283c818561212b565b61290961285c826001600160a01b03166000526006602052604060002090565b6128a9612874611e25835467ffffffffffffffff1690565b829067ffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000825416179055565b80546128c19060801c67ffffffffffffffff16611e9e565b7fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff77ffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b612995612920856000526005602052604060002090565b80547fffffff0000000000000000000000000000000000000000000000000000000000166001600160a01b038416177bffffffffffffffff00000000000000000000000000000000000000004260a01b16177c0100000000000000000000000000000000000000000000000000000000179055565b60018401916129ae836000526005602052604060002090565b6001600160a01b0393846129c983546001600160a01b031690565b1615612a0c575b505050167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a4610aec612a0760025460010190565b600255565b60015403612a1b575b806129d0565b6120036020612a5c93611ff48685906001600160a01b03167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b3880612a15565b15612a6a57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f556e61626c6520746f2057697468647261772c20526563697069656e74204d6160448201527f79204861766520526576657274656400000000000000000000000000000000006064820152fd5b90816020910312610286575190565b15612b0457565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f302045524332302042616c616e63652041742060546f6b656e4164647265737360448201527f60000000000000000000000000000000000000000000000000000000000000006064820152fd5b90816020910312610286575161046681611092565b15612ba457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4d503a2053656e646572204973204e6f74204c697665204d696e7400000000006044820152fd5b9081602091031261028657516104668161059b565b15612c1e57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d503a20496e76616c696420526563697069656e7400000000000000000000006044820152fdfea2646970667358221220bc6138f1668ebf36ef672407089649b6e480bca8832dd8c42455e0773fdf320d64736f6c63430008130033039d72a9d39b37ad1fe9a581fc8ffa046f92bd708221b31d01aabb2024ebf529dc03950ecba75d4099110afdfadd9858ebc613ed2ff152b445207a9b7d08d58fd0a703a40c2882bad7bbf8e412a7b4ef36cfa251db344b82cfd99032fb4b970db48cf803450ba61dda99308f9eca2f58bc1e3fbabe6e6fd7a0b0b92cbbf8a4901c37c5d9005820036e75ab814490d5c0664f4b7b5578d54ec062bbb3cf60f9d9f06ffe7e6c12a04907000000000000000600582003a9867f299fd13cbb91b74c679cfeb59946119269b2a71e7ebaa7808478c7b0581865cc34230f541d23b9fc40f864c90f7f90992d89bcf0a61d00582003b312fc72597e1ad185649d04d379774117dfb6c01724f4fb869609ba3bb1a0581865ce70ff60526fa1107c2ffbc9b6f1bf824da0b23637c2ec0219a802033740f82be3d3c725e7d0be547ce852922643dd107703b6fbb33dafee89c468a80319f7a1a2a1695f6e886086bde026777670e453b580c001791c3d8e1d7ba4a31e0341ec7aad43d78abdd31e25d39ffc0dbf39a59f6261436103d750a05e5ec9f38b037894dfbd9ddc74ad54e80b4d30438e87e2eb483699e938dc79aa2d306db255a103fc091619e563aec4d66278d5753e50ad589226bdbb67a4ad24bd0780fa5383930315082505c5ce8feea98829699bd65b77e5fc3cece3a5bd433b33381f4c46abed03bb62363483e60498ca0975036a0eb4afc715a755d140ce5e71ef2d99316c43dd030b5b8039f08b94aba6795362b1099833942a230dc596a0f9a6b6e98ab922cecb03bb1e2beecaa11ead64fae12eb10a9be587f86b6fc26f615206e4e69b21d6c40403a08aed5a075c01a4b44ed1f4404e18a465fa7d15a293cdccb2d46a4f7eb3997b034ba6f4bea68e5732f616341ac3868ad2d48c2314f391fd22a117f82394622ef4036ce68e429ce9c972f6f8bfea8787cc76b814a4d9f48c936517de80446391c6a9005820029552335ef33151cedbb2d36d8445cd8aa79ebf18571a78da9a142807ceb9a1581865c268230cabab448ff897edef2013c6f7da320e83e9f2c303e913ad7e63c6b97d317455488a860f601d10c95ae423f9a223376ed64aa24b6e0364cfa150636ddbd97b4100a465f16c6f8d2941c6a2a7a5e2a65df4ff437a02fe0219ffff03dc908d2c82ef1915179c741f6e93d31030c5b2e27931f5a9a7d9c32d5e0f3a2f0307fee7b34c28ba0202f1ac16dd12809743564f2caceec325ec760b05bd6bb0db00582003fbd1ff4ed0970ef76aa2675380124794010cccfc92d514e4f11238c77dcaf04101005820034842989b9e6280cb6d6baf3445d30e23869c4228f30603ec487d8f63c27b804905000000000000000600582003a8e262554cfefe780ac18d167440bd87171673ffe11200e7ae9f890af0e890581865ce48730cabab448ff897edef2013c6f7da320e83e9f2c303a4ed0caf84d56ffa9e8db7a32da45991caf8b60c392ba1951d0d71c95b7cf60d00582003d87e146c969713aaed3ee8515b8f6f8164a47804c01d82be0a820df684e450581865cb2797aa3c0faa24e67ebe9b73fe3efaf9d06f9ba576220219098c03ceef3fb2895d3bb3034d9d1bb48491f73d4e1e5882932660a7b5c95851972cfe03d46796a4513e9bcfbd1db0a4f7b8a94658afc826e0295f79a31db734c30957ca01410703293cd74937e28e3739b745be632df439dea0ce7006bfeef10a470c6e443661e200582003389a159ccc39ca0115e19e720709df39aab272b74cbf44e30ae04def09a5d04902000000000000000100581f02a44af728ab6b5cae416206cb5ee6c6a6b3bc60c539ae9883f5ab3c868276410400581f027d1afeacff00f4a877d707487e491916281b82689c26a16eaf20be738c6d410300581f02d9ed57ee12b582c880660a5a0385d994a43abf0d85f804b9c1d4f603afb9581865c41feb0d9ba6d10d90a25198655f2c7ea2c8b05e25a9eb0219052003f42733982c953e87475076db5beba8fa2e03ea61d003278dad63b11384d8630002190203039425d573572ba84a3b455e0afa9fd054df9968a0e23b6e5a43b3501cab63fa6d030d965714f050cc5f0d8f97f646e1b4060bc8d6924ac16215aa4a58deacdd2fc303b0f6f66209dd5725e09678705152ae3e4f67cc3c6dbafca6085b8889d0e1483703b2b2f7bf9b71e9979678e5a9cb3fb41ff7802a1aaf923defbbe7833fba6da11d03ed78c43542e4a22cbd447109dc208afe1c1e036adcff08269323a275d79c389c033d1157a6d3567b8a65b3baee50954494166f0a61fb4236f0b7433f0140ca4ab10329501012577322b8c1bda63142e6469707a8f0ce31ce2e8e139d24765c941dcc0351705f6093ac9642ca53dca2b25207d2083b8df63cb956e63e48319c3a1a0c5c03eb2622b1001359756e1aadef15c9948a6217f68c9b457c77163f8c12a804d17d031d715ac5f027c057653b2f14a3b940656bc48427d8dd45629f135537cb1ce4e600582003bd7f0e06477fa9e691994cc784b4ae21c8eec575a40fedfbf416665807baf0581865cea43b3ac76173b7d14016b74447570fe1d3543ba9402a005820038f578567403f4641d268370c3fb7f381acb7ad4a68b2269a72ba3bca67d650581865cf54cf484585fe5b976c2afac0f2c912447059ef41bf7800582003c1cffd117a0146919ba1c136e732132c8f9cba4aa9f7425789e8934d389170581865ce6de746627fa7a19b251e858260a73ac8b505c82339b3021944020219ffff032ec2df3e99de114eb46972669bd4761efb37ddac3e3ac19ddc3dd488e19a2a8603f2c9f8bb54c8e8df19caef11543ff14e5132f5a4d65ab2fc6a1844bb5827ce12034541514c74bde42d1c0416e92e527c17c2e8c53b76746150201e68b88fc13f7703e4f2ca4a0911c175e9eb33342a7b9c66e753b83e225002f6adafc1484fe439550349d98f60bf9b953baae898046f910b0e3022ccfcd1e4d514075b570f93384c0003d7ed493b12fee3d614a7786a6fb9a5db62c31efeeeac62b1803f4361cfb2d081036f1ca60bd4efe951975044ed1776dfaaf833c087b7dbeb8166958932e84a588e005820031c1ee956bc192d7294ae407707f85e9b92d108275a9ad5b61f0f5ea1862f10581865ce83cb2604a43186019749a41e2b74daea1e31d9578f8b005820030ad54654faf71ba49ef73b13ae2af12f113ed3ffe8628038dc65ad518db6104906000000000000000600582003f4cdf7f86b5f53bfb5cf794d904c5b64a2971fb3e03f7ff60481d9744ebb00581865cc39572604a43186019749a41e2b74daea1e31d9578f8b00582003ed4a5ef3aaf51489a33efc3d6182febeca1727e9ffffeb27546fb0e51d85b0581865cf54cf09564716e12eb2ca51f64d07d76aa88b7cdc02830219100d034abdf3d40e08fcdf39f653b62c1d4a7d4285136d1e266ea1d0e27f491966c47a030ea6f329d9d6178aa3ad232679d8d3909dab3be43661ce5d99c2fc2d630517f303f805b0868c79cbc1022cf3594507a17048f8906fa50e101ff1b7f3cd4161cd7003244c73478ba6752036d397f73e56d1038c669d5b63200cc9ee499753a416cd8f0366b9d50a1cbc91a45610d08539d0d3b288435c6cabc0c7f782ca032ec999d5fc03c270601191535d10f96539982c12586b599fc47acf211e3a7131f80cb0fb6c2c035eb4e99bba60b80da73835a6e0d7ce3a6f1d0e67a9ec28da66dad27678d207df034996926a5e80e62e54feee4898c6bdad2f342c0906875449b42c093aff21f9580398a2fe49d0827359e25ebb8db4323ca7dcd190792eaba2789176859fca312b98032878d1d633975218441153ab7bb0e5fdc16f94dc85cbcc74c9b8a9e8e485197303cc162cebef154e77b46f365329db48769cf8a858c6dd0ae8e8187814674d92600219ffff036d9a7fca3f1c55bd5c66142c0a128a18fd2f00b98ac447c6fbdd3a87a587684f00582003e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf604206ed00582003f2b881e683fb64eabe481f8da3622a59c7e3540b06ec682d9700fbe4a4e810581865a60f3b67580561ba59d3d59dfc854c9399d63e93c08d250058200361a5cd67ddc2bc47c909727c40da94df7ee369bee20f1c08715fc01ce25b4049020000000000000000005820034aee53e2bb6a6a04f5975c367f991e4f030fd201c1d578928a160be92d645041010058200394a415ace90c6315d06bd90288417f5985cad482194da5aa3c17566caa2130581865c945571d3a9a01d1476a1eea9e230cb5ae4ed3ccf0c04100582003e610b5c9e9d7249ce493281e661c825f71d2cc268f7eeae41b37198a7e1ea0581865c3bd57f0bf37131965a517511f45d05b836b3b479ac98c0218eb039b9d52f131e32b7c94603cbb78375c12cf5141227a7fadde03d41ff9c6ec4d1303658643f7c5e356d15caed5cda58300706877cce26df95b78cd24407bc0c766a803b56e846f83ac15c14cd7d2fe7cc1a2448fc40098a80aeb18f96cfb1bf23e9aa4039dfab02565ff9e9def0432043d1c13060f8ccf434bfb925f101d43d4447703b2034d011cbd527a6211d84c150a9e958fa3c6394c955de8281919415fadab0abe5403d4bf9fac34eb8b35cf78ecaad23e283b1b672f16c5bfea134de7e82f1e778e440367d1b1e5b87fcf756a65c1dd4c141781b4e6561ca2151b73b48f238093d98176037431f6f80705d171e2d4ba867ab842f53bcdb659c707fd2eb0524630911dd1a8032abe0e6ed87477e086b0764e5de2bccbacf4c5ba80d815999d2f01a20483c3c203a3b7b3abeb2e8a10568ef166886f4baab7147177594a7413b9a9fed2664d6fba03898a66d2960f7438115599dee473b5adbd053a20e5a7470308bb98700cdcec7d035b905303b96afb5431bc26193d005d287b7a509fb76a9a259aa3a1756df69a5c03aa0ac98496f34e699622259fb26f39ae530e0d1e015bcd850a92f7ce572ca2a603aaf04c18245c53a08cb2d77e5cf84dd694e71a2b03f8944821284afb294a16470219ffff0308ae5cc2bb299849b0c9eac1f329be637e753ca615e311675efb1ce973ac96580350f61dac6ae23825c69b6852bebf2c84f863d0d2e4e598323d3a479941bfab4603f142a1afd852826bde926865a3143a3fe0bf314d1a91d28810b8f9ee7683a76103d64295ea356004400d3d939e1ce706ff918a4c49e46747ff4790ec647a13382003f1ef3341dfc1740ed806f61aa2d882b511beb8aa4e693a6e0d5dcee52f39e3fd039bef11905ae95d646d17ae04eccde49539067ef38f3f4a3a019dcc009fb1aaa10058200302768ef2be5d037ee08f388b7abd1c0a851fd4ba9b4d42810495a88ec74130581865cd1c1fcfb098c1d44eb12f93f9aaece5d6054e2a2240ab005820035826590119ec174de4c6abd4f9106f6d071a16414930d647a16df1cb686e8041010058200310932eccdd1d35b9bc832dd4424f09406d38353850781d618ba256f794c6e049050000000000000005039cb6ed7288dd19c519f2446e5d6574a5fb99ce8bb3783e1b95a0682a0030e34a0333ecc0518e90fa55fa730c1a502437b167af9c55cd6108255b0f739f57997a3502194823038215aaf35041b33a766f9d48078506e59e8505d8fd5065e65298b801a3e72bc401410003fc9982a6757df4838e064c78b3d2aadce14e27f4eea9fd0b7f99893ea21ae88803765b1ddcbb3b9ec0fbc46ce4c2b02a5a918d17ddb1c872243e584a3651f68970032ae5825fae85e027d62223ceb62c0f054c4fae9d01c79395892b2c425272ad340309e0a19dc100f95fb62ebeb07bdd660f99a67fcab4f92304f8ec6141a5b75c46038f98191cd135e4f79fff7fafd15474134ed9092018449e0e93a166ce66431ca3038ced636e7c505c04c19e168cda6b55e9cfdc12552b89f87745fe0d8c430a36d6032662f30b19f35d5bdd9467aa2951e178252cfb5620630654f7961f7ad5f73fd303678fd2b1248fe6ecf470cd91cf4a7b5ccb05a3ef0c594920ec82e7de2454790103d202c27a4df74862b4d8b243f0108e9d52ab2942ed53beaa4af161243b2ca56103b3a1ab177d56dd7497c7f89ac61540674e73facc73a742adfb53d552254ecd970219ffff035c309a044c6e3727a5f4629ab81d0e553315379d475fdc50dff0eb93c40db1820058200372a01b2bc527be209ff3d4c75f7c9c12c2403be817c6c50c35df172b971b40581865ce01c3fbbc953b46ae6ae37392999707f996a868d40f20005820039e9ae2922d4a8d96a08e4d81099920814bc9db907f144072007826d02cec904101005820031909cf7a80903301c0458d18d0cda77010b788d8483779d7cd7f30b1c95dc0581865cf544b484585fe5b976c2afac0f2c912447059ef41bf7800582003f7101eeb218470270afe65d85dac892e63205b0bb146d4a38e798c2b1b9240581865ce495741b68202dc64904e09d2e4f0a94879c741f27db200582003a758dad6c51c3aed5d47d553f1521749aa235cf79f13914a44311e3634cad0490100000000000000010058200357a575e676a4021e80ff104e6801e9036b92406517d1b019711a526d9a0ff0581865c3d3b33a7f1c9d4c0ca70e62db0c4f10e9d265498e8af0005820035b01199caffee6e52d2109d9b6cbb6038649e8e21ce62f9ca8857b70a1f8d0581865ce9dc347d8404fcd1c52e6642c7ed374fab052b381ccc1021942ab0349b2bb0d83987d7978a2c37fe0a3ed3180887ce9ef8cac38f32041f1ccd8023403f84363cc4746ef1e0ed2f59d5389e5968ac587d3a388716104d85dcea4f4074903cbcbcccecd867fb500e3f7e6ce71b7fb2fbc182e862f1fff26e68d9f6dabe404035570b0d455a1b2ee35ffc13eb9f0092415379cea7ec69b6568d96430448dadb203e0048dbd2c0018c4ca7d7a9a13909ded1602c750eb92dd697aa4170be9d51b63005820022d7b2f810a3adeddc677670e8563970bfbdbb12ccb687596a47a37ccac1dbb581865cd50c30cabab448ff897edef2013c6f7da320e83e9f2c3036dbb4de627f4bdc48101a7fd123b2708d1e559e01359c08b6d8f0bb2824afa760319c657d4706e61a28ddbf7ce5dca229ed94d14db2e299d75f832abedf6e1d01b03c6864bdfd6702f7665e9228ad2d27a0e5906c38d8481317a1e5f6574ca775408032bf515c4e271a6b1ed48edce60c2a87c9ddcbae9c22f677c961d080050a18f1a0378bf581313fa04fecfb8cacec776e2f00bc91f2ae260db8f45bce89f7467125303ef4f5f3135ec18ac808fb67e6cffea6a257e55550fe7bae25798604bf4ac1770034dccbfbee4cc144ddd5facb1b5a82a93e84a35202b6493568d113314d1042792039e7d86ffa6e34b84f3031a13cdb27b6b0bedcdc2c5a28ac88a09c54cd83fc5ca0219ffff0219ffff05581e0319365ae0d6c52af7a3c6478b1d0d2f113ab3cdb7f1322393b4178bac300701192cb2039c84f24f04c2dd7733b049a18a30f59db89e48db37a063ebaf1a3b8b24cac06505581e03e1d5704fae828dd980d9eef266004e5f57406c0a135c1f8cbcb6af55b0040105581e03cfb9f4f9df1810018fa996d90839ae05402c30317a9c70488f974abaf0040105581e031779624ed868138ddf65bf1d1e31597b4a18dae200316025e8487907100c01470188315bba711803864b43b67ed29d39972f0dec4bdda5ceb9962b9218f68c0c67bec87738ef6b220219674d0341ecd303d5ef5328beeb9dcf689c9cc3cd8dfe9da7c0bce2ef6a90af3be2221503facc62762cc61b78956311454def5d28000481b5128def062e1776bc0f2272f803062528825b7af8e501cea3fd04ab05ba804f96af514b85513c86dd7055f98e00034f5bbd3e2e3440b3e6faef60fd6006dc3ef29b252bbfba1b7c99d7ea0642b0500394670ce13086c1e54ae3dd6b6fa08121a4856155d3f549676d1995a78f905406035cdd8c0a04d972a227a2888454e7bdbeba174b3d89b053a1175fca0ea9e0276b035f2542b31a35d7c54b42a2a665431f98b7a7b242a409b1fe857153dc9cbaada503f37cfbb9ac242d5d724bdd54c3fa62574d2df5ddc43a41b7280811499dca5fd703a7be7610f90cb7cbed9f2e678cf87541291d3bb937d12b135dd0bbaa6ad8df5603fd293e83be8345a3b6b3db56563ee1e94c024cc3ae927264850d09d5ae95297d03701a6f91f8d3b95380a2b2ab8da3d5ced181f7ec228d21d7c912923241ffe9920357167085fcc8a373dfe060b0ea2b0271ad559d68de8b61ded239accb7cc3f00603aef387f323680be79cd17ad3e132d85cc316da9b43cafcbed0d1c26f85f063ae0219ffff034d27890310138c65441572531885c9aac883e40e99944d883302aeeb8e4d543b03a310148a4c13734436a0fffe7a2698fa24b728f38a31f486d843965c6e1926a503693d8071f6e2ad378252719dd9957d5790fa93847cae8762052eceb64a697aec03747bec870283290d7a50404595e84429ea25317521a6eaf83f051b9e82b9157a0219ffff037e5b1ee6c4a87c8afe6737e289a3dd83603d8de6ec493d76f3bb0431c6f43f990369df2d4b22b9a5a1c5100903136378d042df0567f4f8b76dce28bf11b930e52703c75c6085ea369dd8f5e6fbaa437f9c645835937b53498fd4ecb8fe58e1e84c2103b327df584e624a20b631695e3dff2df10fce76037eaa96bc85a1dfa9fa1ecf0c0219ffff03e6928bf242dd0e32d7c5423fd20db9261c28386143f436ffa7f21817a3e40bbf0354423cb5d4123056edfb3564241850fb1b6f06bf2e7026830809aeb26145fccd033cd82feda9fdefdd9a54589d3b74c37dbceef1d27c3f5b285e7dd50aa2a37807031b3b2c67ccdaba74ff62ba1e7a1c5545c67e32c93c8e0ad04dce619fdb37258f03b4241428bac76c4f9b62341aa4cd740c19f2cc384afd57f3f36ddd84a1cd67820219ffff03b0366dd71aded37aedb89029a4918a03054da0cee512fee5ecce03eba5be38ae03bc563de71425707984a1d67faa6ea0660684c20c6f5aff2a1eb99af1e44956a103a562f3e009a62b56f4f82d6624c0b88028f801e101592ae205e79cb4dec0057a031792f2fe26e1daa8bd22fc7a968553dcb6a793abc91176d5c81b60db3534aa4903942003e39abae45ad654005fad37c7fddf1f72edb9f416ebe27fea7afda9170203f0d84cb453c724bba493890fbec4cbb893fe4c651f9f78a0ddcf09329a2abc37032838d85f94022215fe7baab70fa7eea0a861c4f5490c47fde04cd59708512e1e03df74911d89d0e52815b85bd63d31a825b6d430a0c58af7d4d2a3c2581032de6703d867748404dcab72331bb742d28957196a53d55986a295db6755d2602262a20c03146ccce75ec2d5454a8ef043ad482ca733b7c5c6ce5dd51c5745de9341acfb17033a2a49ceb28ee0a201cdbda315a803fe5333e1f8c908b8ea350e5b22ee3f8e9e03b2152ab3f03531c7ebf8284ce53bc49556bebe9df296286f73a5c8ecebff3083033f628d560efc68a8d06d2b6652de3dd48dc21b5c84c586719b8a714ba7282732032e92a4ec1a2be534f947f984b229f74d779a4b054a4cb1cfc5e9aee16961f73e03ab9825dfbef0f1de1a8d47c7a79be321ff4337e29e9d0e179fc6a07e1e635bdb03ea2e88375b54daa31b4b8c51a805548458ee6f3a98f892e5e1f6f32519d0fdcb03c5e25b22fcfe5fbe44e875cf8f1523a5e42c351bf4c2ab36ca94140659de5cb00377dbca265cea3d9f66d43ac16ce66bf559de9ef4ba80f2bf147a6d430475df370317840d73b452df51a1bced33edecc2427146133f294c1a79830f009563cf8f4d030154c9326457c76032780089f1cb55ec17356850a599efe246e584e4e6ef27bf037f2471d7452a517e995810da9116bd0e172daaf956a44a523fa844607224606103ed9fa6ca9d8b61a4493e47f9e1c89b56bf8f9affd70da042480f065ed240fae503fa00d686810ee91ff36880ec9945835645366736227ca6040edb826f8e42a01903da75a6ca8d91a13f4d3127447b1e2c695a52e7f6b2a373b60c1a8afd32faf2e405581e03aa231629e9a0f12b3125f26bc4a43c942e8321640de63b6f5fcb59b7400c0147080ebbe659bfd903e37ed4af6163f332f7821b589a4bf34fb0d0752073776df81f8ed2a1fbfde15605581e033758f2d9277f657352bb6f51cae040073ec1737436c1ef0e04762306d00c1347b96ab00a132dbf05581e03a3e3ccdd0cd2ea26eb1dfe6cc95ecaffedaf79040f981c9049fcd600e00c1a000f651048b508db75c1ac410605581e03aa499bd06d9339a4530e72cea8612d1f5817cbc384284b507a0d7eb5a00c014566342c75c705581e03b1ff079f7d4a216a727cc758722b9b4722e6593edd7e971583a42ad8b00c0141070395e3f2b2fa8dc0eac3c7317a3a537757530967e06d5b6c6de690e0bb047a776c034314104750370ee8a693e9f24627faccb463528e35c994acee5c9d03e400542d0219bb5903742ded10746f8463f86ad3faf9413e6f2d822d443bab8ea15f12fa9caba8466c037f7b99b3e02bcffd6164b83e892ab0c9157f13a8c8caa47234ab0479d5152444038cc9cbfe92bc0ac1ad442a924773c79be62c472e7b36bdd25df461923098b4e1036bc6702afab4c48b017d04a7484038fa6ba3452ceadf5c99fcf4f3044dc960520219ffff03e170a8c3812479132d9160e8a9beb38c739481f1e74d7315115a0622d9919eff036455c153ccf7d544b337ccbe4aa4e665735cdf978c5ed3f5c0dbf12fdb21ad050362909e65878cdf5070f620514514c822b66b16060be7d2d4ff562c206a0250f103027039946543011f0f7af88ed44e4a77b31ba9a3023873332be9d3f8d7d3fe4a03e122b75dc4b43bd89ff57ef8be0bb551254c1a43aaab0d33a7ba7e7f36f42bc603e6d386f6e238b2e2f28ad7cf006d95365c8eeedf569b253b06883fb52ea83b010366ef1b3273bd0690a86d5c6ffe8bfd940e559b4cc31bde02cd23bec89a00fd800331424c065822f4bbc89908590d4496b8cff6d0491c101d18c46d5bcebabfd40103fd3ae8fd568b6baefcd174a7a4e11c0b6b5116ec1bd9d17bde98b0de081bf54e03dbacf29a8d12430782201fc3d71533badfd7a2511f87ae905bd0b3f4a3e31c4d0219ffff039f88a6ef63a591bbc0784649124a9b1f0c46abce9327140b70c7e2cf0487868803e87e23620e477c39ff3f96eaf031a69db380aa1e66bc806d58c6d18357628fb7037ba7bf70b98e8f3b4579c3a1424b74e89b4709911f5d746cb8f4a58c0721a21b03931984fc08ef210195e046fb92fc5e6ac26b5e13ad5411044c399b43b8c53e64032716556cfef41e85feeca5bb7e74f0996ca416489a6e0196a980ac6ed8188f0103dd113bb3971ea9c43476fbea4289c41dd141f511449318b625e9a3885091899903a62eb5c0c569ceef186ca20ce56f6e5fbd3a7e584e89b66a36972a8c0a936bdc03ecf4e3bbc57d72e9eec48829a9d8bc80a9f5f7837bfae5e0ea79007d3df08c74030f30711e7212227dece471a13411d5b5d7cc47554620a64847ef94d1d0620c8c03ec11adbedbcc882be5f0bc2cd7022ce9dd2110feb56b63909977e59f00b0e63203f7dc092c56d32da0287bdf704a3127917f6c2ddbf365acadf3de2c6998e994e10315a2c22120766cd3dafd4ee87241db12cbe8355d835d69eb648a16ff19d67830035c47c622d2162ec7eb585ed590087fa2701b4f14aa1bcce004fc650832f1ed8d031e053a1c8def856ad5d0e1fd9d7323642caf7a9a3a7aae647a00634af33afcd90219ffff0383a08bbb7bb643583a3ee3ef6bcbe201886fae6c8d464e25341fb6442a8136ef039009dc9fc3c6109db2c1750f7af3d8b0bd99eb89451f3a9c71ac1a4c9d034406031a7ec5180c8b9de19f955f98115b23b04d065183f9fffc8a20bb462a813f096403a909013e1f41a837bc681678bed369bf2b6024adee1e177e7c6295dc90d4f2ca035d44fd910e95b27e82b6d0dad57d969cdab765ff7823b0e798de069394c09dde038da32d4540de42e2dce31904adcd7a5b66fb98a84c13c1c7ba0247d8522f2d7a03993142d4994ebf8b49a00e622c51ef7862de07f471da7c8bea9d7d9057e7bea3035d3f257c754f422b659336ab211d64aa1c2321bd0ffb3b85fee736cd7add08c5033a3e45fe7edd87714bbc598e6efa2634ad26806790ce32ccd922cd6fdc7a1c5a033ad416df0b38d4c05308b2bad3904bf500056d0956a53a07cce1733616290d9605581e0338c2c2297f3459d6626a27c49f9173cbc8afabb5a7d27bab709a44bba0040303be4f0c8feffba0492f4f0247349a5a7538ede720baea56a2bfba2c28565bc06b05581e03cb23d8ca486569014ca7dece94b72d35c659272e2dcb0fd0375ce422f0040205581e03e7c935df4ce61a636b45c466ab93047601c55273a6e0d97e80cfe2ac00040105581d021dad97e22b8db540ce8c3fdd5cf341aaf3831b65693df2461c0847890c1a008463764a03eecb8a18e2ae73e2e605581d02e5a8d042cbeb5e1868ea8d4a6b81e812f48559e43320a02039911a510c01464438a067940005581d02f330a7f3d877bbd2320e7f50e059367363a2e59242c67e1eddf5df9904060219015005581e03303b49698eb318a1bd8ed59bc0e5961a1cfef2bc4408364bb8b896c6300c034754e74042fb9014031eb514e0b20e4e889e3983feb66dfec009ead9ecedf04d33fb8ce573cba727f7032c2eb1b0dc731b6dbd1ffe97a8916554f1aa3078f34685c2287b23dd1f572b5b036f85b7bf10fd7eeba3c5decaca23ec9d0a81bf92a1f8a742dfd778993ef9299f0605581e0343c742e4d10bcc241630a2c813d20d8c1a2ab3e372c21b788103de091007011bffffffffffffffff036107776948a40dd0c7557d1a66472923d1a64903e60b55e4216193396641dc4a0219c5eb03e4062285caf93cef41de954cfed6e9a1ad1028edb5a101f122443f3cc10d0d8b03deb4189cd714e5dcaa6f77c18285535b71f5923af986d4b319e590db2a3ec7a203092f6f281b3d6af0164e78e1159a1f46ad89d2aab5e5af230867446d48f6341803d02a54d4beb8065e1acf31a742ba05f8e99fcfc1ced9b3d70c60c2fa22145be103521b23ea10c4897c5d5f6bd2c179d0dbc901c670d53eaf0164cc18ac1a77235d03e5d75893936c939c2f301a6e5af02399b3389f897447144e33199d1e0a958176034249eea43249abedb074e666503ab9e18c31df077e9f9a259128bad0a1550b8703308b4438b99e5f23a37b60887d92ebaea777c81f69b230762187ef656fa99d9a0331a44ad4f3b7fac8d69f3cf99625a5932c9cc12b980b875957cf1c2e3d3ca21103286dabda9b3bfa4e165ff72fd58d091059be7a18d03ecd9dac978b55c9724b8c030eefb4aeddc5bcc718bcc2d1774a95300a6824de2d7cf84290e02c3177bea86f03bc02916c58af7564f5b3d8146a369e0740e5533dd20237371ad550f40924fa0903db057b2609c8d6baaaa5be2745e8e32ca80db35aac491bbcbee2f5c6075e8b32037c7dc8e2f53026ed58c35660631a660a07c7d27bb7f25abb041c89b14a5a50920219ffff034602111e437e6cbfcfa873d55b889f7222c2c7c5958795499fed2f17fd5f22f103214b810cab4c96d74c0d406774169d8fb8128e82ef2048126b5eb47933e9594f03b3766cd5d4881812d7c573f36acc328e5d86990a9977cd8551d1a29f11a7c6bf032c14a28c0f2cc099cc279863a9b9bb485aa3fa4738e2aeb7ccee2b793206772c037c7c6c3f5e31e1c17f84b628779656de7c428c1cc5dbbf3e8f586ffd520f33c103e17762250490b5ecde529e6e84ffe8a7580b6dccbcd5e83847d3777368f99780037a016125510156a9011730462f009f25a91d784df5e1b8f105d220c7494d209903aa47f28f4cece90106728bdde101f22b57a1b5406c9ec47313c2b1bc63f4c2e503a9ee59de2b2c670eed63aefbc2ff021b48f2f46cd862c5afdc315f249885613003f9e1da7a701883b9c9d33dc82b3ead31894e5f6bef74b5ecd8b1f1b19472b4f40380a4ffdddd8d56c1e2d60873066d95fdafb605167daa98c148dd37b7c8e36f9a03ccfb1ef85a1964ee6d610d0c19d3c9c6d02e6ff4298ff480f16afc676951ad00037f914b5a26add8301a6ad37b643a9ee81eb0bb8abcd99a442c4b1595a3b913540219ffff030be4bed0ca2240a7469b607e36cf0d933f0afebcfc03181e7e22a99026da620803b4b413d4b3275d33d995fa0f3ba78690e80319d1f3a11eea7009ceefaf2c36f7038b4913ed80032e926c670e48374661d92a005f77003fb97b01655427f3d49d70038a72886ee9fd7ed642a3217272a0dcf6cdbc840d1bd3370f2d11a9781748143c03b4e112b28417e508d0549640e160d44567695ae79f3c2ad7a6b0ca72d962303b036f86571f820e3148d27f9f92f01df284c63257dae318595df020f4771bead57b0369a08727de17fcd9b68ca29155a5319e90c2d94abe875dcec7f6c0a1dccf4d9903c2457d83e13b05b3da4750071b1be81b28b4a12c3bb4bebaeb213b505020310a0364fc35e37f6dafe5e63af3ec80b80c02f32b02913e3a0d6a1f52e15cbc981d7e037642fc509da5bcfb5008cfe06d712e265a0a93602debebe4406b9fae6f918db103e6d66a6f565f5390bde340a6dc637f186d38639d8d7289d3f80cf2ca6fee07c203eb60a97dd921d4d06da98c574634607be956c4634548cd1a272ec89c1e0a4c18039a1e66a9ed3ecef681736644487c3c628af0b622dbd3211613a9ace904368fbe03bf796fb3ddcaa20032f230d2d8422f89ee52390692cb8200f11870930972a75403d7e5f7a18ee407cf040823e8f72670f6dce609b483aea4c60ada35cc731ffb9003d35851c37552fd5b5bc00bbd0aa42c7d79ae65f1eb5a790805b5767f589f6d6e03dbed6166b26b3e48c958cb13e7f309d727d08750c1dad71dd50d802d7c1de6740389bfec3bfad482323429d484d7b448925795133cc4609cdfc3a8130a9a1371610345ca9dbfaf966a2948ee57ff2d0768ff0d34865ab2309472afa57b30c41c0d1d03e78108cca60cdc1c48286fc4e49ebe49007aabd4e2e9adce00cb35809fb4870b05581e0321b34f07e1cf804c93c649f347219be9441db073143962267fdd16ced00401032de5008d37ef21ca9a9b759fecc559fb637540a847953139d81427709e8ea33803e572a21a1dbedef30ea9cfc9eedeb1974899cb5976e890a0f4a088e96708fffd0315ff1933d37254a9d3ae47dc2b2ee740ed62143687b239edd10bb815514f5d3d05581e03fbbcb9ed898675d639b0c88de5c44accd4f191ff0266da72f0c044e3d00c181c477a373a7a4aafc7034617412c97f4a2e1b7063cdb232f6c819776c0d5add4eee476abffff337c9bc805581e039eb14dc9ee138bbd7c65c8f9c24e708d9cc73ac50396fc748408ad8460084738d7ea4c68000003e4a7d6050d216a7ecfed4f8662bfecfa3b74173514739ba865fe545b04d34583021986e303da3e38733c49eaf9d5cab7100e65ddad8ae667a99773e1ff7547bebe59ee98e1030f800c1890e70c3cb86aa6612e2dca5f2ff9cd08466b37b2ab31f0418196c726034176be64c4a7f3f17eb1924e73099451dc7c602c31e521aa0a7d8f50407cdae7036bd4baa26e47aeb8fc8ba69d90d7fb2dd29dade9dd598dce8090f29e860c6b020362ebfd78fd17c3424e6aa30beed9ac2cd2a23987a34514993a4cf7dc36b97c9203448f15a9f7ce2347b9e54eb2a365cfc26e3e9dca698ed7b68c55fb19c5a7c1d30219ffff0346caf42251503786ababd7a42912ce43b63d6bbc3eba0157d2f7af6bd99208fe0321e4e2ac5a2d1f4c7abee0f6e4d08a8d76bab0a9502cc83ec1bc7e6bc22d7ba403a5f906d5ae98c6c59c02d34247937414f8e93ec61e53f7b2bb2c342b2eac7c8203431ffebd086fc69f064d25cdff8702a217fd0ee99a938e3c084b7df76445313d0390e5537a2f849fe53f8e29cd80c69f6aec947b580e01395d2ddfaf9073a80293030c943cc3f94a0c01d20dc25a8b1c39efcecfc8c32264427739dbd082818618dc0219ffff033e59a59cf1f15accbb6bc4af692e44adf934a2978e761cf6851c1722a0ae69b703dabf6cd87fc8ebe57044e7b9d99308067c417382c94e9d578714e7a3ae150ec503c40d7c41c129f1c87bda5300c292d503eadfd0c3168d976e524fc182970675be0377d26fc365989e1d1fca1c910f330ce52bfdb1ff72e102a8f5c230baf2dcba9103d8d9f4ca6f163cca0d7067a5d95b3957f5a010918a1f92948b816cb006acb8c10219ffff0337df586e345f932c8954641a50c8213c91fa324610632e279f30badbbef79909031f3e3eb37eca5f42074289069aca80b547078cb17dc7ffeda7e1d32c9b8cdfa603c7b1147dc282eef7b4c206f054c506a8ff4927bd678fc4eba8bf81a1ca59570003449307220da1dfbeffaefde0e9bde0b825b0c52e81b252428782ed0726b5c6bc0351a48fb78f4a04ab47b0c189fdab897013c089909e2f7b165919b425777f1fc6037cbcf31e2794a91d35640dcc8f63723b743dba8c0dc24ca649f7e6df6b156940034406137d459b1a7de3052b277bf91708ece8b8c6fb0baa57222c770f4c4488ff03237b03885eb0f627e9d3084eb52aa1d79b58b7be94d2349f9e0f99546a6fc74f037b7d23ee55d84e7d8fcc05dc0aa31dba9a9665a97ed78d87c54d996ec23a3b6a0219ffff03dad0258aa87a8a26ea46cc806016bc2351798d8668661f9a6093193acb5c74af03945ceed065d5612ba73419fbc997bf08ecb032c6474fdac688cfa28a2a41c80103f214df6a8e7e33446c61637ef201baf05475b29751f614791c9d88caa9068da003150da78f0dcda48e7498cc22a0d19d46a27bd8a1db7f1606f80ba56ede0e1d5203775e07ec8fdb18c8d48b18bf234f4f71dfeb412ebd059634abb161a517441bda03697ff2051be472cbe411b46fed59a99d72f541bbe0fbe520a4743dd261e484020385c3db4e59cc8b6e787efb374dc9913465a9e42a71fd495ff0889375354ebd540353a63c9af80786f5674df4f529a35c3ebe5942d16e4b7bcb45c773b441cbb79403cfebe4f461238e3f03fc8d417d1479ee2e23896a38a86f310f9f25a18036d24f0394023bbc2ae3fbdbfb8f2c011abec65911f7a24736be195205c118c268ec7406033e179bb6523289d19c28ccfd0cee4e1f0cdb659639db53c3aa1a7e466b15dce9039c66a3d577aaa6fd59258512d0f586a07d3b3da9cfb7d6c5c9a5ade09d7e3736035a75bce4b85456a339492d400c9bef82c2f85368a78a64e0f089a7c92899e71f03fce0dfad1154603c48dfaa7cc4c45eaf0f9061b6b7556568e8d7b94bd0adb67003c8c7b592571f3d68f27ebd03f4eb940ecb9041963798b5c4ceee8d196aae484d036c80a1b526add31b14799e88ac16b09cf9adc3ac825af89be941213cdf9e3b430351f743bde33986c3194acd51dcaaca4c890ee1d50b5c2e4d90ee405a6c15b20c03eb13518dca1df7ad1dea70835dda8d1e70498ad712e80861703bb3952cb9cf1b03994c1b496e189680bc41c11a0d572d751a149e948865f9e622bf4ee80cd1f84103bdc135a7c231abbdc2a54f11e3753ffd83ae534af6d9fa62579e90c2eaf802d903b318c117208cb1e5c4bdd94e34127bbff84d44f984ba76ec7e81f2a1a770d2c60367395b8a707894001cd805122dcd672652ae675a528d04f7cd667548b057d73c03449212037a0596b5d619529426262ebf65abb856b37c1663f46a2fa7f88aade603445e07c673882359093cd2c9d9441fe64659c7e4a270da80a4ba540252f8928e03f498a961cc3bc2f0451fa8f7b77f14f1c39940fa638735b949d646af7e7a4bee037eeb82196825e97b7f35a42c0f25921660a2c9861532c2a5400ac358ebd4df9a032bf7460e5715ebb054dbd4659c7b270cb5af019d890cf534aab898b03e9eb7e905581e033551bec3551d3c96071b3f7aae21b4f3e1a7fc3f2d1a19855fb98fc7b00c014703271c1612ac3003b4ef21cdcea117aa900c6912ab3501a3828b2fd8df8647d75b3dc0648c4dbb74045938346080604052600436106101235760003560e01c806392467776116100a0578063c137878411610064578063c137878414610488578063c6044c46146104b1578063e6bd0aa4146104da578063f23a6e6114610503578063fc0f392d146105405761016d565b806392467776146103a3578063a0b7967b146103cc578063abe3219c146103f7578063ad3ad70914610422578063bc197c811461044b5761016d565b806334f94047116100e757806334f94047146102ae57806339125215146102d75780635a953d0a14610300578063736c0d5b146103295780637df73e27146103665761016d565b806301ffc9a7146101b75780630dcd7a6c146101f4578063150b7a021461021d578063158ef93e1461025a5780632da03409146102855761016d565b3661016d57600034111561016b577f6e89d517057028190560dd200cf6bf792842861353d1173761dfa362e1c133f03334604051610162929190611c6a565b60405180910390a15b005b60003411156101b5577f6e89d517057028190560dd200cf6bf792842861353d1173761dfa362e1c133f033346000366040516101ac9493929190611cf3565b60405180910390a15b005b3480156101c357600080fd5b506101de60048036038101906101d99190611d9f565b610557565b6040516101eb9190611de7565b60405180910390f35b34801561020057600080fd5b5061021b60048036038101906102169190611ebf565b6105d1565b005b34801561022957600080fd5b50610244600480360381019061023f919061208f565b610679565b6040516102519190612121565b60405180910390f35b34801561026657600080fd5b5061026f61068d565b60405161027c9190611de7565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a7919061217a565b61069e565b005b3480156102ba57600080fd5b506102d560048036038101906102d09190612210565b61075b565b005b3480156102e357600080fd5b506102fe60048036038101906102f99190612284565b61081e565b005b34801561030c57600080fd5b5061032760048036038101906103229190612353565b6109b6565b005b34801561033557600080fd5b50610350600480360381019061034b91906123a6565b610a76565b60405161035d9190611de7565b60405180910390f35b34801561037257600080fd5b5061038d600480360381019061038891906123a6565b610a96565b60405161039a9190611de7565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c591906123ff565b610aeb565b005b3480156103d857600080fd5b506103e1610ba8565b6040516103ee919061243f565b60405180910390f35b34801561040357600080fd5b5061040c610c18565b6040516104199190611de7565b60405180910390f35b34801561042e57600080fd5b50610449600480360381019061044491906124b0565b610c2b565b005b34801561045757600080fd5b50610472600480360381019061046d919061258c565b610e3d565b60405161047f9190612121565b60405180910390f35b34801561049457600080fd5b506104af60048036038101906104aa91906123ff565b610e55565b005b3480156104bd57600080fd5b506104d860048036038101906104d39190612668565b610f12565b005b3480156104e657600080fd5b5061050160048036038101906104fc9190612353565b611104565b005b34801561050f57600080fd5b5061052a600480360381019061052591906126b5565b6111c4565b6040516105379190612121565b60405180910390f35b34801561054c57600080fd5b506105556111da565b005b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105ca57506105c982611275565b5b9050919050565b6105da33610a96565b610619576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610610906127ac565b60405180910390fd5b60006106236112df565b888888888860405160200161063d969594939291906128af565b60405160208183030381529060405280519060200120905061066388828585898961131c565b5061066f8689896114e0565b5050505050505050565b600063150b7a0260e01b9050949350505050565b60018054906101000a900460ff1681565b6106a733610a96565b6106e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dd906127ac565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff16633ef13367836040518263ffffffff1660e01b8152600401610724919061291b565b600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b50505050505050565b61076433610a96565b6107a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079a906127ac565b60405180910390fd5b60008490508073ffffffffffffffffffffffffffffffffffffffff1663c6a2dd248585856040518463ffffffff1660e01b81526004016107e5939291906129a8565b600060405180830381600087803b1580156107ff57600080fd5b505af1158015610813573d6000803e3d6000fd5b505050505050505050565b61082733610a96565b610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085d906127ac565b60405180910390fd5b6000610870611616565b89898989898960405160200161088c9796959493929190612a0a565b60405160208183030381529060405280519060200120905060006108b48a8386868a8a61131c565b905060008a73ffffffffffffffffffffffffffffffffffffffff168a8a8a6040516108e0929190612a74565b60006040518083038185875af1925050503d806000811461091d576040519150601f19603f3d011682016040523d82523d6000602084013e610922565b606091505b5050905080610966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095d90612ad9565b60405180910390fd5b7f59bed9ab5d78073465dd642a9e3e76dfdb7d53bcae9d09df7d0b8f5234d5a8063383858e8e8e8e6040516109a19796959493929190612b12565b60405180910390a15050505050505050505050565b6109bf33610a96565b6109fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f5906127ac565b60405180910390fd5b60008390508073ffffffffffffffffffffffffffffffffffffffff1663159e44d784846040518363ffffffff1660e01b8152600401610a3e929190612b7c565b600060405180830381600087803b158015610a5857600080fd5b505af1158015610a6c573d6000803e3d6000fd5b5050505050505050565b60006020528060005260406000206000915054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610af433610a96565b610b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2a906127ac565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff16638acc01be836040518263ffffffff1660e01b8152600401610b719190611de7565b600060405180830381600087803b158015610b8b57600080fd5b505af1158015610b9f573d6000803e3d6000fd5b50505050505050565b6000806000905060005b600a811015610c045781600282600a8110610bd057610bcf612ba5565b5b01541115610bf157600281600a8110610bec57610beb612ba5565b5b015491505b8080610bfc90612c03565b915050610bb2565b50600181610c129190612c4c565b91505090565b600160009054906101000a900460ff1681565b610c3433610a96565b610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a906127ac565b60405180910390fd5b6000888890501415610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb190612cee565b60405180910390fd5b858590508888905014610d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf990612d5a565b60405180910390fd5b6101008888905010610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4090612dc6565b60405180910390fd5b6000610d53611653565b898989898989604051602001610d6f9796959493929190612f0a565b604051602081830303815290604052805190602001209050600160009054906101000a900460ff1615610dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dce90612fad565b60405180910390fd5b6000610de860008386868a8a61131c565b9050610df68a8a8a8a611690565b7fe4c9047a729726b729cf4fa62c95ef9a434bbaf206a7ea0c7c77515db1584022338284604051610e2993929190612fcd565b60405180910390a150505050505050505050565b600063bc197c8160e01b905098975050505050505050565b610e5e33610a96565b610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e94906127ac565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c59f9f19836040518263ffffffff1660e01b8152600401610edb9190611de7565b600060405180830381600087803b158015610ef557600080fd5b505af1158015610f09573d6000803e3d6000fd5b50505050505050565b60018054906101000a900460ff1615610f60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5790613050565b60405180910390fd5b60038282905014610fa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9d906130bc565b60405180910390fd5b60005b828290508160ff1610156110e557600073ffffffffffffffffffffffffffffffffffffffff1683838360ff16818110610fe557610fe4612ba5565b5b9050602002016020810190610ffa91906123a6565b73ffffffffffffffffffffffffffffffffffffffff161415611051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104890613128565b60405180910390fd5b600160008085858560ff1681811061106c5761106b612ba5565b5b905060200201602081019061108191906123a6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110dd90613155565b915050610fa9565b5060018060016101000a81548160ff0219169083151502179055505050565b61110d33610a96565b61114c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611143906127ac565b60405180910390fd5b60008390508073ffffffffffffffffffffffffffffffffffffffff16638972c17c84846040518363ffffffff1660e01b815260040161118c929190612b7c565b600060405180830381600087803b1580156111a657600080fd5b505af11580156111ba573d6000803e3d6000fd5b5050505050505050565b600063f23a6e6160e01b90509695505050505050565b6111e333610a96565b611222576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611219906127ac565b60405180910390fd5b60018060006101000a81548160ff0219169083151502179055507f0909e8f76a4fd3e970f2eaef56c0ee6dfaf8b87c5b8d3f56ffce78e825a911573360405161126b919061291b565b60405180910390a1565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60606040518060400160405280600581526020017f4552433230000000000000000000000000000000000000000000000000000000815250905090565b60008061136d8787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061187c565b9050600160009054906101000a900460ff161580611390575061138f88610a96565b5b6113cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c6906131cb565b60405180910390fd5b42841015611412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140990613237565b60405180910390fd5b61141b836119bb565b61142481610a96565b611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145a90613128565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c9906132a3565b60405180910390fd5b809150509695505050505050565b6000808473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401611512929190612b7c565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161156091906132ff565b6000604051808303816000865af19150503d806000811461159d576040519150601f19603f3d011682016040523d82523d6000602084013e6115a2565b606091505b50915091508180156115d057506000815114806115cf5750808060200190518101906115ce919061332b565b5b5b61160f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611606906133ca565b60405180910390fd5b5050505050565b60606040518060400160405280600581526020017f4554484552000000000000000000000000000000000000000000000000000000815250905090565b60606040518060400160405280600b81526020017f45544845522d4261746368000000000000000000000000000000000000000000815250905090565b60005b84849050811015611875578282828181106116b1576116b0612ba5565b5b905060200201354710156116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190613436565b60405180910390fd5b600085858381811061170f5761170e612ba5565b5b905060200201602081019061172491906123a6565b73ffffffffffffffffffffffffffffffffffffffff1684848481811061174d5761174c612ba5565b5b9050602002013560405161176090613479565b60006040518083038185875af1925050503d806000811461179d576040519150601f19603f3d011682016040523d82523d6000602084013e6117a2565b606091505b50509050806117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dd906134da565b60405180910390fd5b7fc42fa155158786a1dd6ccc3a785f35845467353c3cc700e0e31a79f90e22227d3387878581811061181b5761181a612ba5565b5b905060200201602081019061183091906123a6565b86868681811061184357611842612ba5565b5b90506020020135604051611859939291906134fa565b60405180910390a150808061186d90612c03565b915050611693565b5050505050565b600060418251146118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b99061357d565b60405180910390fd5b6000806000602085015192506040850151915060ff6041860151169050601b8160ff1610156118fb57601b816118f8919061359d565b90505b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c1115611961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195890613646565b60405180910390fd5b600186828585604051600081526020016040526040516119849493929190613675565b6020604051602081039080840390855afa1580156119a6573d6000803e3d6000fd5b50505060206040510351935050505092915050565b6119c433610a96565b611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa906127ac565b60405180910390fd5b6000806002600a806020026040519081016040528092919082600a8015611a3f576020028201915b815481526020019060010190808311611a2b575b5050505050905060005b600a811015611af957838282600a8110611a6657611a65612ba5565b5b60200201511415611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa390613706565b60405180910390fd5b8183600a8110611abf57611abe612ba5565b5b60200201518282600a8110611ad757611ad6612ba5565b5b60200201511015611ae6578092505b8080611af190612c03565b915050611a49565b508082600a8110611b0d57611b0c612ba5565b5b60200201518311611b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4a90613772565b60405180910390fd5b6127108183600a8110611b6957611b68612ba5565b5b6020020151611b789190612c4c565b831115611bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb1906137de565b60405180910390fd5b82600283600a8110611bcf57611bce612ba5565b5b0181905550505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c0482611bd9565b9050919050565b611c1481611bf9565b82525050565b6000819050919050565b611c2d81611c1a565b82525050565b600082825260208201905092915050565b50565b6000611c54600083611c33565b9150611c5f82611c44565b600082019050919050565b6000606082019050611c7f6000830185611c0b565b611c8c6020830184611c24565b8181036040830152611c9d81611c47565b90509392505050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000611cd28385611c33565b9350611cdf838584611ca6565b611ce883611cb5565b840190509392505050565b6000606082019050611d086000830187611c0b565b611d156020830186611c24565b8181036040830152611d28818486611cc6565b905095945050505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611d7c81611d47565b8114611d8757600080fd5b50565b600081359050611d9981611d73565b92915050565b600060208284031215611db557611db4611d3d565b5b6000611dc384828501611d8a565b91505092915050565b60008115159050919050565b611de181611dcc565b82525050565b6000602082019050611dfc6000830184611dd8565b92915050565b611e0b81611bf9565b8114611e1657600080fd5b50565b600081359050611e2881611e02565b92915050565b611e3781611c1a565b8114611e4257600080fd5b50565b600081359050611e5481611e2e565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611e7f57611e7e611e5a565b5b8235905067ffffffffffffffff811115611e9c57611e9b611e5f565b5b602083019150836001820283011115611eb857611eb7611e64565b5b9250929050565b600080600080600080600060c0888a031215611ede57611edd611d3d565b5b6000611eec8a828b01611e19565b9750506020611efd8a828b01611e45565b9650506040611f0e8a828b01611e19565b9550506060611f1f8a828b01611e45565b9450506080611f308a828b01611e45565b93505060a088013567ffffffffffffffff811115611f5157611f50611d42565b5b611f5d8a828b01611e69565b925092505092959891949750929550565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611fab82611cb5565b810181811067ffffffffffffffff82111715611fca57611fc9611f73565b5b80604052505050565b6000611fdd611d33565b9050611fe98282611fa2565b919050565b600067ffffffffffffffff82111561200957612008611f73565b5b61201282611cb5565b9050602081019050919050565b600061203261202d84611fee565b611fd3565b90508281526020810184848401111561204e5761204d611f6e565b5b612059848285611ca6565b509392505050565b600082601f83011261207657612075611e5a565b5b813561208684826020860161201f565b91505092915050565b600080600080608085870312156120a9576120a8611d3d565b5b60006120b787828801611e19565b94505060206120c887828801611e19565b93505060406120d987828801611e45565b925050606085013567ffffffffffffffff8111156120fa576120f9611d42565b5b61210687828801612061565b91505092959194509250565b61211b81611d47565b82525050565b60006020820190506121366000830184612112565b92915050565b600061214782611bd9565b9050919050565b6121578161213c565b811461216257600080fd5b50565b6000813590506121748161214e565b92915050565b6000806040838503121561219157612190611d3d565b5b600061219f85828601612165565b92505060206121b085828601611e19565b9150509250929050565b60008083601f8401126121d0576121cf611e5a565b5b8235905067ffffffffffffffff8111156121ed576121ec611e5f565b5b60208301915083602082028301111561220957612208611e64565b5b9250929050565b6000806000806060858703121561222a57612229611d3d565b5b600061223887828801612165565b945050602061224987828801611e19565b935050604085013567ffffffffffffffff81111561226a57612269611d42565b5b612276878288016121ba565b925092505092959194509250565b60008060008060008060008060c0898b0312156122a4576122a3611d3d565b5b60006122b28b828c01611e19565b98505060206122c38b828c01611e45565b975050604089013567ffffffffffffffff8111156122e4576122e3611d42565b5b6122f08b828c01611e69565b965096505060606123038b828c01611e45565b94505060806123148b828c01611e45565b93505060a089013567ffffffffffffffff81111561233557612334611d42565b5b6123418b828c01611e69565b92509250509295985092959890939650565b60008060006060848603121561236c5761236b611d3d565b5b600061237a86828701612165565b935050602061238b86828701611e19565b925050604061239c86828701611e45565b9150509250925092565b6000602082840312156123bc576123bb611d3d565b5b60006123ca84828501611e19565b91505092915050565b6123dc81611dcc565b81146123e757600080fd5b50565b6000813590506123f9816123d3565b92915050565b6000806040838503121561241657612415611d3d565b5b600061242485828601611e19565b9250506020612435858286016123ea565b9150509250929050565b60006020820190506124546000830184611c24565b92915050565b60008083601f8401126124705761246f611e5a565b5b8235905067ffffffffffffffff81111561248d5761248c611e5f565b5b6020830191508360208202830111156124a9576124a8611e64565b5b9250929050565b60008060008060008060008060a0898b0312156124d0576124cf611d3d565b5b600089013567ffffffffffffffff8111156124ee576124ed611d42565b5b6124fa8b828c0161245a565b9850985050602089013567ffffffffffffffff81111561251d5761251c611d42565b5b6125298b828c016121ba565b9650965050604061253c8b828c01611e45565b945050606061254d8b828c01611e45565b935050608089013567ffffffffffffffff81111561256e5761256d611d42565b5b61257a8b828c01611e69565b92509250509295985092959890939650565b60008060008060008060008060a0898b0312156125ac576125ab611d3d565b5b60006125ba8b828c01611e19565b98505060206125cb8b828c01611e19565b975050604089013567ffffffffffffffff8111156125ec576125eb611d42565b5b6125f88b828c016121ba565b9650965050606089013567ffffffffffffffff81111561261b5761261a611d42565b5b6126278b828c016121ba565b9450945050608089013567ffffffffffffffff81111561264a57612649611d42565b5b6126568b828c01611e69565b92509250509295985092959890939650565b6000806020838503121561267f5761267e611d3d565b5b600083013567ffffffffffffffff81111561269d5761269c611d42565b5b6126a98582860161245a565b92509250509250929050565b60008060008060008060a087890312156126d2576126d1611d3d565b5b60006126e089828a01611e19565b96505060206126f189828a01611e19565b955050604061270289828a01611e45565b945050606061271389828a01611e45565b935050608087013567ffffffffffffffff81111561273457612733611d42565b5b61274089828a01611e69565b92509250509295509295509295565b600082825260208201905092915050565b7f4e6f6e2d7369676e657220696e206f6e6c795369676e6572206d6574686f6400600082015250565b6000612796601f8361274f565b91506127a182612760565b602082019050919050565b600060208201905081810360008301526127c581612789565b9050919050565b600081519050919050565b600081905092915050565b60005b838110156128005780820151818401526020810190506127e5565b8381111561280f576000848401525b50505050565b6000612820826127cc565b61282a81856127d7565b935061283a8185602086016127e2565b80840191505092915050565b60008160601b9050919050565b600061285e82612846565b9050919050565b600061287082612853565b9050919050565b61288861288382611bf9565b612865565b82525050565b6000819050919050565b6128a96128a482611c1a565b61288e565b82525050565b60006128bb8289612815565b91506128c78288612877565b6014820191506128d78287612898565b6020820191506128e78286612877565b6014820191506128f78285612898565b6020820191506129078284612898565b602082019150819050979650505050505050565b60006020820190506129306000830184611c0b565b92915050565b600082825260208201905092915050565b600080fd5b60006129588385612936565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561298b5761298a612947565b5b60208302925061299c838584611ca6565b82840190509392505050565b60006040820190506129bd6000830186611c0b565b81810360208301526129d081848661294c565b9050949350505050565b600081905092915050565b60006129f183856129da565b93506129fe838584611ca6565b82840190509392505050565b6000612a16828a612815565b9150612a228289612877565b601482019150612a328288612898565b602082019150612a438286886129e5565b9150612a4f8285612898565b602082019150612a5f8284612898565b60208201915081905098975050505050505050565b6000612a818284866129e5565b91508190509392505050565b7f43616c6c20657865637574696f6e206661696c65640000000000000000000000600082015250565b6000612ac360158361274f565b9150612ace82612a8d565b602082019050919050565b60006020820190508181036000830152612af281612ab6565b9050919050565b6000819050919050565b612b0c81612af9565b82525050565b600060c082019050612b27600083018a611c0b565b612b346020830189611c0b565b612b416040830188612b03565b612b4e6060830187611c0b565b612b5b6080830186611c24565b81810360a0830152612b6e818486611cc6565b905098975050505050505050565b6000604082019050612b916000830185611c0b565b612b9e6020830184611c24565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c0e82611c1a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c4157612c40612bd4565b5b600182019050919050565b6000612c5782611c1a565b9150612c6283611c1a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c9757612c96612bd4565b5b828201905092915050565b7f4e6f7420656e6f75676820726563697069656e74730000000000000000000000600082015250565b6000612cd860158361274f565b9150612ce382612ca2565b602082019050919050565b60006020820190508181036000830152612d0781612ccb565b9050919050565b7f556e657175616c20726563697069656e747320616e642076616c756573000000600082015250565b6000612d44601d8361274f565b9150612d4f82612d0e565b602082019050919050565b60006020820190508181036000830152612d7381612d37565b9050919050565b7f546f6f206d616e7920726563697069656e74732c206d61782032353500000000600082015250565b6000612db0601c8361274f565b9150612dbb82612d7a565b602082019050919050565b60006020820190508181036000830152612ddf81612da3565b9050919050565b600081905092915050565b6000819050919050565b612e0481611bf9565b82525050565b6000612e168383612dfb565b60208301905092915050565b6000612e316020840184611e19565b905092915050565b6000602082019050919050565b6000612e528385612de6565b9350612e5d82612df1565b8060005b85811015612e9657612e738284612e22565b612e7d8882612e0a565b9750612e8883612e39565b925050600181019050612e61565b5085925050509392505050565b600081905092915050565b6000612eba8385612ea3565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115612eed57612eec612947565b5b602083029250612efe838584611ca6565b82840190509392505050565b6000612f16828a612815565b9150612f2382888a612e46565b9150612f30828688612eae565b9150612f3c8285612898565b602082019150612f4c8284612898565b60208201915081905098975050505050505050565b7f426174636820696e2073616665206d6f64650000000000000000000000000000600082015250565b6000612f9760128361274f565b9150612fa282612f61565b602082019050919050565b60006020820190508181036000830152612fc681612f8a565b9050919050565b6000606082019050612fe26000830186611c0b565b612fef6020830185611c0b565b612ffc6040830184612b03565b949350505050565b7f436f6e747261637420616c726561647920696e697469616c697a656400000000600082015250565b600061303a601c8361274f565b915061304582613004565b602082019050919050565b600060208201905081810360008301526130698161302d565b9050919050565b7f496e76616c6964206e756d626572206f66207369676e65727300000000000000600082015250565b60006130a660198361274f565b91506130b182613070565b602082019050919050565b600060208201905081810360008301526130d581613099565b9050919050565b7f496e76616c6964207369676e6572000000000000000000000000000000000000600082015250565b6000613112600e8361274f565b915061311d826130dc565b602082019050919050565b6000602082019050818103600083015261314181613105565b9050919050565b600060ff82169050919050565b600061316082613148565b915060ff82141561317457613173612bd4565b5b600182019050919050565b7f45787465726e616c207472616e7366657220696e2073616665206d6f64650000600082015250565b60006131b5601e8361274f565b91506131c08261317f565b602082019050919050565b600060208201905081810360008301526131e4816131a8565b9050919050565b7f5472616e73616374696f6e206578706972656400000000000000000000000000600082015250565b600061322160138361274f565b915061322c826131eb565b602082019050919050565b6000602082019050818103600083015261325081613214565b9050919050565b7f5369676e6572732063616e6e6f7420626520657175616c000000000000000000600082015250565b600061328d60178361274f565b915061329882613257565b602082019050919050565b600060208201905081810360008301526132bc81613280565b9050919050565b600081519050919050565b60006132d9826132c3565b6132e381856129da565b93506132f38185602086016127e2565b80840191505092915050565b600061330b82846132ce565b915081905092915050565b600081519050613325816123d3565b92915050565b60006020828403121561334157613340611d3d565b5b600061334f84828501613316565b91505092915050565b7f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260008201527f616e73666572206661696c656400000000000000000000000000000000000000602082015250565b60006133b4602d8361274f565b91506133bf82613358565b604082019050919050565b600060208201905081810360008301526133e3816133a7565b9050919050565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b600061342060128361274f565b915061342b826133ea565b602082019050919050565b6000602082019050818103600083015261344f81613413565b9050919050565b60006134636000836129da565b915061346e82611c44565b600082019050919050565b600061348482613456565b9150819050919050565b7f43616c6c206661696c6564000000000000000000000000000000000000000000600082015250565b60006134c4600b8361274f565b91506134cf8261348e565b602082019050919050565b600060208201905081810360008301526134f3816134b7565b9050919050565b600060608201905061350f6000830186611c0b565b61351c6020830185611c0b565b6135296040830184611c24565b949350505050565b7f496e76616c6964207369676e6174757265202d2077726f6e67206c656e677468600082015250565b600061356760208361274f565b915061357282613531565b602082019050919050565b600060208201905081810360008301526135968161355a565b9050919050565b60006135a882613148565b91506135b383613148565b92508260ff038211156135c9576135c8612bd4565b5b828201905092915050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b600061363060228361274f565b915061363b826135d4565b604082019050919050565b6000602082019050818103600083015261365f81613623565b9050919050565b61366f81613148565b82525050565b600060808201905061368a6000830187612b03565b6136976020830186613666565b6136a46040830185612b03565b6136b16060830184612b03565b95945050505050565b7f53657175656e636520494420616c726561647920757365640000000000000000600082015250565b60006136f060188361274f565b91506136fb826136ba565b602082019050919050565b6000602082019050818103600083015261371f816136e3565b9050919050565b7f53657175656e63652049442062656c6f772077696e646f770000000000000000600082015250565b600061375c60188361274f565b915061376782613726565b602082019050919050565b6000602082019050818103600083015261378b8161374f565b9050919050565b7f53657175656e63652049442061626f7665206d6178696d756d00000000000000600082015250565b60006137c860198361274f565b91506137d382613792565b602082019050919050565b600060208201905081810360008301526137f7816137bb565b905091905056fea2646970667358221220178603fdb348c356f71796769d40c84f783182ebdc2185f66f6cef39bb6b4c9464736f6c634300080a0033005821032e4b243a9d27155f1098c28d9bb6f0a8f774548c3508bb301a1f2c674c19b91041010058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6042010000582103ee196508b5dc15202b84beda0e3edd13f94b45631d96d32a86a6a32339696c104101005821039f2917114c31099d1b9a39b6b9cd595edd75c391110acf48f0eacdc9ca4ca22041010219588005581e037c6f1d201ee2bc4d23b2eddf43c87406252da7e6da95b4bd1ed53b7290070119383405581e03c98cb02eeca3793d4ae9c03a81c3dea6de85abb2ce8a4ca2a1c9598ba00c0147012353a721f90e05581e0347b2ae48781a930d402596b57adf61ea9c86371c00567e52a4286dfc00040303e68dc96a233a5d68bf9bf3dd0f898f313b07120079e6194099e2a642c487be5d030859eaafcbc6d873f6d9b9d35a762360a9e22068fe488e2aef3d0d06917ba68c05581e03397d5c7083888716cfe50b32e20af96509d3e73b1761256428a0e8a0500c014501da753ede021949da0219ffff03b7c9423292fc923f70dca7be3345ccab4ba6acde83cc08da4e05bb7a8234bcc603fe39373a25a29886ac524cd128c463c1ade3ac0101adcfd7337649e0a1fb8247037f141705b3e440a96ad5d807205df78975e9c49abac639fc21a47b2e7bfac9bc03fbb2ca01ecd1bf6e0067d185cbb8a4828e0a3a1cad8d37416b86167dd1dd34b603b6c6b4c353cc767b6b6cdd3ce92aa0249fac3e4a59e36984ba787f5f6af2865103d2188226afce653880ba76791127a627db6f978f1408260518e65a375a33def10219ffff034fe447b8a96be780df19567b54abe58072222f8f55126b5cac743582aca91ab403512828c69255128d09697daf9dd66a62779781cf3b0cf32263c26d31a388f39a038eaa5beb6f38e3bbed7b3922d340f8ca17c87bfbbd6beb1c10797f90ae47455303b5a2dffd45484f31f9d273e05f2e763663688740544546b70e87a339a60d9de4036f406cd73282af4974e33b9b224787a65b0b00a5d1643a3e277902afc35a9f960315d3db6ec2ced47f08de990a7582d5c86e6c0a618d00fa1e25295a567ff6c5a303dc8c36a31db65b8b84a5241c32017455922fc1ec34101dfa46e8eaab605af31403bd9877a29be24639e18b5dc46e09f07b6170bd57aaf7585f9bf6da7b7ee171dc032fafae565cce99609408eb00b267e740a0db2cd25802ce3dfacdf1d3c51b92000355ff1a9e45b5a7cce712d3115b7dcfa05c400704bfdf6a4037c989638c43986303e4f2fda356ac8e503db237fdf79258eb72d04c30615bfed441c239a383dc731e03915ceec4310b5b3f77ae9ade4852649229d71ee51a5a2f2995345f3f23bf89b20345a566e82e9188349967d010548331b7c8eebee1391523f60e6e44d084fb9f7603dc156edb5f631c2f50b0ac7bf1c86793f02b6ecd5b2c37604a2c2ca00452db1e035bbac5e6c44ad550453b5fc4502c83baec0eab4371415c7bdcf01971b861d2ee0219ffff033854c3e40c88ed2a796c8c7f137abfac2e3f354bb273da393c00711befed79ba03648b44034606ed836c37829ba9de488e0b818595dfe9fb19e5c75b9bc7508788036ef96f492ccb8eba972aeab559c84481869a315691caaccc764e91c6da21efed03f83021ea3e135f5e48be580780a6feb98c55b84bca2679e0c2ee95075453a86703d80bb807defbadb9aa84762db1ab216b704d322f289c8134b1a79add8f38b02703f56ccf56625b6d9f6969f1cc0c0d4d0e2935d1004b956cd08a25995132bcf31f0347ac5ca5767aff963e718f4dea3ee42cfb270868c245e99966eb1c260e6174850336090ad793e4bd7cac9c687c68e0b110b48a881901eea1b2f7021918ddb0af1f03958458c3eb1569119dd884bdcd5b53a542df2e1ad9256554083d695c1cf62cee03136514423e78b03a1f45e9b79c97f311c8dca2dc7f2872e4dcdfc2a5d5f8f6bd0398d1be65d05048e680ce97e0102f0089e58cf8e6a08c165de30c67bc7afe6baa032eefecbc2cb9c09822c494b5a3af7f1effb2f212c26b4590e30db8990594cbf303351f371d8760106a0d3b789394057c592d6bb4e2806f319f29b4c200a7bb26e603a1ec67a344e8c5a7e41017763a2e75c687e7f470dc4d692dfc841aae54ac21350335f5a27730378d8d8c0187f58ac6a4fea5094fc08a7fe2713cbf0b399de0380305581e03d9a772a36e08bc4e0314daa98f5b711c1a76cb8ab76e9ad591ee0d71f00408030b354dd0630734938ad33f27aa60cfd877837a5511981ac85921b8f832f9d18205581e036952c5c97e2b0dc303295d74e56c5e01db68b2885f037ff46af08123f00c0546d3826963ea880332db330c34fd06862f74601d43e652da619bb2b56c8c3d886ae29369464ed1a301410f05581e03d5965e769fbb12d7b9025c693465521d2382ce46df7df49df1bf64b5b00c014602b829e34c00037d5d39345915e5e222b576c91f79ddbe78f78cd0d8eeff1ab4741990ab460e1a03f0b332bc44312957c41e1c20a16725fe869fe75441fd6ffd6bd0e13f2703d1ea0388f6c90814631203ebcd879b9b2a01f894d317d77528d0a411dcdc9664a288fb05581e039d5514ba8b2fc867e83f5cf854e3073a1523967c90d8a6dbd48a9b450007011bffffffffffffffff03b7e5c27a2dbf866578006e08397cba291ee535c13bae7c15c185b4704485ee0a05581d0257bd7d66c92ac23acac0585c2b126359cbc45af3d83e0547d9d551160c02475160b83e4c76b505581d02f213183e1e80890f2b1f0a18f193d88a5626f2811c21128cfe579989040105581d02cdbdecf6d5343e913bbed2ccf5b4191ab683b58fcd095c0104ac4b4a0c0347011bcbe660a8a005581d02dd30a3cf2adcb20ebb5a4ec99b892f85bee5208e81fbd8c891c94ee10c024709c23efa3c5cfb0219241405581e0357bdd989823438515cd899cb4f0c52c02182eb5ab849b0f804afe7e0c00c02460e176f9800000219b3d60380352af427f8f7ee72f5a45abb51818212e3763e1da13a0a52993626a19fb43003504defff9d36dee7cc2b6270c5a950a2870b5f5a24401bd10b0ca920e610db050333b99a204f28541603e24a5ad1c8cb44ad657a335116cfdb1d4e0469279fa8c4037af6318f16a3dd4d89dfd36b27e080b90aaf631a6443e3620d7e56e924c0943103f2e882011beba9a6615cf535e0de61e2d3d7e1eac58516ebaeeb28d68933f106036d9d5afaf0576cee7e531df96efa32503aa97927918ae42377b477c2437c7a7e03f6aefa9ea833a8a899cb009875770991cc8e87ed4c4f33b0b4546c24d77a38940320d629bf89581eb4175b59eef504a8eff26f1735c4c807ba8835aaad8c18a2190374871133bb4e8c8f111ae3a41efc91c55c4bd9b3cc72d83be36e8b2470ae05930377b3f16cb83da7618757f4a7d28dfe36a85da00f57019c6a36838788850fa960037bd1e9748430ff91b5c594bb6164ec321a0bd9d8a44168467492d6d54e8dd65f039666e4b2bf14d29d385957453e5e9339089d9888f25dabbdebadc1562e8e040303bb929999ca6449570e0cc313b5848e2b75ddc77f745dcb86232440007ffc86ff0385470d09eeba3d6fe1c3113cf6b920517000a9823394725d6347ab314016651f03beba9b909c806947bfa2fa10a0617f55c786247dc6dd201e1099ad2f92d5fd430219ffff03509dfd0a120dab8a8b2042fefb974d2f5500513ce09599cfee4d307d5582996c032e22dcedfde80a39a1d0d48ea776b775c8ee7a1f8963f9138199eed4bf5eaee50390ab3e9a22a17fed937a7931b72ac82104ed91017c5f0c5d61b760c0eccb3e5303f1a4dc570a66ffe07c23a3aa84605a4a6f644990057f9521786b86861ad5ea3e0365f32652581fb1743cfaa9d016e111927cb0c1500700612b204335da4e10795e031821b5826150ad0bb799132ed06fcde3716ce0eae86e1191e1fec3c7a52969010383f0e56842b3ee79e2f72302eb0e01b6174fafc6f2c8ba577d2cb0e0fb07076803253970c92e02f87505f6773c4b374d1daaca64831b4df9049e5dad2e52849ac203f9c0460336104b63d03691725a22511f53ee7051f13e36e5a182bd7c9fdb29b203853fe6416bc04508bbd1f206ccc468be011f6ff66d24f6687bb2af2aa202d1c303a0f5fca8b8a316775c085b55eba72f4f2e9cc54de1d9e6b8d1c8286c8cf184ac0219ffff0377d9f3b1a079cf9a9c8f0974d6f95477b0e4ada757f210a56850111aacc0bee103c7dd91ba260fe296e53540a2d33655a1b697342267171d41e19c6bd2984fa530035b9fb11eef5204dd20eb9ac385036e3f4940315ea0c04d776161170762ae81ae03712369adf0e27b70ae20b158085a3c0313ba11abd0e2f02fb9bdf8477c838c89038852550378ba31a2491697fd12adf46e1c86c389627d0b069b20431f704bb2d7039927679bfdd8351a732a812030aae5721f563a686bb5e63fb6e499efbc7f16320318968fa89f75728e9245f63a82b6dc083ad2c9fc8adf5f6f8f41db4a343b615b03f6b2f58c0f8ba3c48277d44fa2af67fd5be17ec3eb6b53e1fd0e9862f39fdb990358cb82925c7a7abeaffa546e9b434576075e11351561a65ea3a4e7165f9de895033e82fee3612ab09494099e727d2c07489e45d10a0a82ebc77f29b1070cb217390342c3cd02c783514c878650b77b0e21938fa3044d541ebc8d43f2e062f84cf3a503607c1cc3b26a5e6bd87d8588508e2f9909bd04a3de3c2acd012dcf5680a5cf66037d54f7e33cf22cc87e8388e3f5913f8d7c577b588c46aca51bb9858a8823bd8a0326f191aee69af9ccedf519f877df9627372eaf1831b594f0f004092a3ea3d11a03f764885d39ccaeca81e820f3b095519cfcd233be8ea0609343a54829fc242a1a0219ffff03335f1db39115083dc0d84bea9e4251ec067c111a050f57a5b036236c8bfc233c0219ffff0323183f419b6b42954a83cb512d06626a18f0c8f1891db202839316b5e72cf45b030e9d0fbe45b7df07afec37ed786c594abc8a2ebcc7d1de94ee9b38460523e32703966bfb263e3a107867aa9263f9a2f7896135cff0dded6dcdaff05b4dd41f824a03d7e90b9ba20b3ef54bc3e2ba0bec1ab0fd8c44a92a8c6e5878d7f089c39d2dd603dc8e0e63e4ba8db52ef19be4118ae3b5d79edcdf07cbbd576890b17b337669f8033ab9747a647cf1cb1791dde3e76e061e9b75aa5c2bdc4b0b8813f0c531b7caaa03349dcc1b679733d14b3866d94534866117ef730c83ef8ee901aee5935597b451032e0a2a64b86af2d8ee3305b8a3faed1d1b50492a3260b7be0a5d8d7d54167ce503da7df3bb43c049a511d43aea819a897e238b85e88414b38c826cffaba482c0b403e273d6cfa3970a50d3275fc0696a5a73545e331de99840a867d5917790bc9629034b36c4c59893d9cf72256e5ab043a8306701c9cbf68e5a87077c08d891e0f086033e2ae15793095709448ce99147506624c8741dcc0bda7d5087e118c0801ed1c00361c4796dc0cbc42178818bbe198f3b8d3d6af7d86bd0401a524f444da33acd0603a42fb62ae3e077d7e429f5e91516d62966f36d538fd52ff0316b28b49a014a0303200f75308df2e79456624d00edd17e898ce838c3633646335966834f15ab7a27030b63a3cc61e9a7eec5e193dfc6345cfb0566eb9c2748a6a7597e35337eee54d603141babe44832e00c5529393ac7d68db6445a2d9955bb68d15476724c50a3e11005581e03cca80699a7953aa1fe46b43a46e7ad77ff0f6efdc5fe15ab81ed5b3680040205581e03d889b98824d42e3cc2810d4857c7da973afd65d530593c44dbaf32b6d00c0146a2ccaf6a300003ba7d66ee1c41956bd4e023e968312dafc13b3370aa8544f5f5b47ade8dcb89c603abce5a4ac315b9f2068549938568f007018dc7fef293ebab6cb4f4a5931cf29a03be993f55ff1355cf430ea346f1dbf702587921351001a9c5a8274970b6d02fbc05581e031a171e03d122a1b84976252fd81a45b37d0c5ae1260bed8f696d2065c00c0547059d006abec00005581e035993aa12d70dd2e6cedcc8c9cde8cc6c4b4e1dea189f77394f6b14199004010312cd6863653999b13c1c86eb01d40f0d2d3fa79874e8c432448610c87ae4af45030b95af39e8aaa900efc4a5cb2c826930b92f383c18d909be32a6a11365e358df05581d02958b18279209fe67171755576da28322f7ffdef5c7b3bc30df1e895b07011bffffffffffffffff05581d022f5b2e6f650ac101a9e23f6340ddd9f04a287c1691e5d303f5a69bc3084751b660cdd5800005581d0220fd62e4b58d69d3bfba83dbad10c5c712a6564700ab152c45d66331040305581d02bd09e4e79897b140eb80b07c56332665db141e64fd013177962ca65f0c1a00018c5d490906b447cdac45a7700219260105581e038289a5b1fcd77f5b21bd78e305aa5bd61f0821ecad65585cc8a7bf4f000c03470156848bf840c80374dca646708867f3bc110973edbc002bb3a28408435d3f13c46671da0120e57f02195eba034c435c5fa04b7530ed7ee1dac56da865f36bf96d9882fb18adf1c1a5630923060346224e02499f36b719a9c801b802abe795a485d7b6f2d2c99763971ac648e0280301fcddc209fe54fd1210278e587feea94e4fb3daca7523c2713a8ea76a9750db0219ffff0391dc529c7df2296b15640f59869d3c6390b11fdb89987173180dfce1b88609d003d6ef442d56bbe1c39ce5324c1f237a7d9cc7516441a7e22d26952444ee6bd0990323f83b529c3f68f5945bd0ada73e43ceea377d12543fe67c30a7806d08ea27bf039809c4fd4ec18d428fbbeac0004ed3886e74112189c38209a64a75b4385a5ede03d7e457f87d6cd3e8627c491695c4a0a3f1d18843fa32137483c4af58bdf1ef5203f903c5e5bcfac08d43e5be09c0f101fb726854a098291011e65323791bf89bb10327a0185528759d5d19576a51d3a924ece09cb18d60922d9ebeb95011b36c528d033a491acae41c4fdb98267fa464a92c8285848def104d6ef7d01bfbbdca51a3530327bceeefdb806b0ec421aca9103f042e54d0d97fa8e65e02c7e29220dc31878903341ced57fc9c21cb6ea474056e501cdf87606299f1d92bfcd2670a29c0b627cb0397d06c4191c82f2d12c9ac88f1397f2d8a64893ced544e4ad9f7109c85c2042103e00558578f8197bbce7475626ea2c0b79bb6c20fc08378915ce1ad1f2fe760e0039bacc75a4c5c17c38611dedc25cbd733ffe62f3bb759c68bb3e36d066efe5a460219ffff0351182e505223a904f2a600bdf175e8a6b8576a16c1cf1aa688af44208a9394fa03362f8a89f7bdcd220a28ea74d31b45d10aa85c14b7de685a1cc4af8d630fc36603faa4e69aac840cce5b6651913b6316a33ae3da607dfa174b54ba6299e883f44903a2c161c448c31535239cbb049f379967ec10f03a1c882b8390288d7dddbe023603f533a793c3e6ce864616fe93fb1579d834de8ec66c3e2d91b4a695d4cba9b5ae030043c2779c2b9f16b35db18d07d98a2a6cc4ba67e8d757803681b3d0de5f7cb1031ad7c9b7e8211a071ec8d1817756507e66f09b36856d2ebda148f465000232e103d2fa2d3ccc3bdc63d1cab49da0368b8a8a2a4d5ea2ef7d74b1d30de92802e50c0352bdb90a94d01e88cf5354a16b1add9aed021932133641cd341ee055d5a65bd203bb6b8731cb27c928f02810b1e221feb0ea67f0ce0c29050e826230f7dceda2c603bae8b4a68996e750bb2b4f26f53e87580752351b63de74c634de09150f976ada03152a92b3d6c5526399caebb4198f7892122560598bf40a2abda75202d49b76520219ffff03a47a0f6450c02cbecfc7134ca63c379667b301efb50088b6747cdef523c2c91c0365936666ac6c9177fe8d36dbe29f8268950ff6d139920dbeb549d1cbdb4c14450347de1eb9c182f0e09da6c33a75d8c2a5c71ed87af5bdfd37698dd6088e20754c034a4898876065271c714f8e3d23ab98330266496cde96e54b7215fbf0cda06aa4039fd9e6e1c4d7a81acbfbf9c39190fb4207dedff277a11de1986cce9e427b64ec03cc6a0e458d66be83b49710026ba6cfd632025334406f97e9f760f342f8ef466e03734f428728dd754867f49136ca0dd552a8e78423b98663c37f551f6d7f8b35b9039b324c32af40b463a0432843f8724b813b0c9f3b4872816b7fe4de61a08f506803af6b7e650baceac87e550448e7941799bf1f1932194378d276d8738e1909c8ca03d3d4787d71ee5e809c67ddcfb1b514e9f00ed8351cf4a34add5f05fbd8677f410372d76d181079f1d83e172bba0ba0d007688830b6d0c0cc71bec9e95221df3a1a036e3beffe135568c5492a12a27ac8baf56aa05ed660f3ef4b56a155ed096268bb03b96a133013a63b83e9f6634132fe90cff176166fe6403bfbb2745b8acf60a9ab0388f08bf06723cc8db7f4ad6473b08db6c99a78530c1da9398beb6728fad0973f03316f3371f005acfa801663e6b92219b41bc52dbbabe626b34c2b9b3bbd1a622403db42597d0c1ae7bca8c268496721938943f2e99930008baf84326d42d1925a350328a4d10e7ef98dcc0a6b58ccb11d82d5a6dffd9bb779132fc787c49e99ef74820363a23f732d0d26ae485541b2229f9d9264a25c6c53650d5e58c747e04fdcb1ce0323e90cef95210d35173c6052d28ddf6d45088e0f0d299a8c7d54e17905b1bd3c03b1cd12535adf5e347463d234eb77a0ee265f1ccf87a2d929a3856435c341654b03b9a7c34dbf5eea4ef10cbb6766de81410902ea8d80e40dd38e081d4f1fd5e2b103cea050606be186ee26885edfb73d73678c8cea5a476163bc93260b61177aa36b0300a275dab4bc4f4f856e244e007fab38e84c8d32bd6fd6e889441834debd74ea03b32c58ff716d9ecbeaec5ab5a8662df09c8c6a8f504a813a507bf947c7cae1c103813bbf1fb59a11308a8f72abb54eafa25b40249fba4eb804128b1e690fd5e36f03ea385f693443d772c8914d84ebf8f59eb1742e11a041c474f41ad7b937de44bc036bb80966dd2bde32dd7c1d6e7f341dc27b074ca891a7706f5c86845cbfde5241032cca30cbc60f74d3235c973b37137ca2a344abcef2ae14bb9e64ccbe9e8bde03034b4a3367dacdc71f536b4ece8f5b414e5abd84b2a730c438d2fdf21adccd07a903ac5b69843a2d52a55eef9c8dafd44f82e57ed014cdbeb36e81e7ecb1ef10945103163fe3569718a8a06950fce66c24ff9ebb27cc935ae46bfe11d6b1e39ea176f303ab2a088ca7c1b919d0eaf4ebc4b60a6c9984922cb0af6b666b89c3159f4d82a20355203d66645a7eea1be96b5d0fbad59da5af2808ba1576c1cb8e9e34d01326f503f5523d116569f9e0b0ea731892e9895aad6cba93a6b43331cc3f098b301085cc039db6c6da3fad09e9b67393b57d90d2ed43d2548260cb060c7eed9691580bb95f03ece80ca2a9dbbb5f42f11a16afa6e49c155a602ca3e3991a30ce6bd27d1b023a0337f906efa917cf7ced493af0833c2de888e791ff0fda102670c18863dd47799503014ba27d20cf94de5226f43bbd99a92c3c4795a543ad59e6d6074ab318078d04038fd1b0de203bea35524504e0afc5a728ecbf11c5ece161a595fbd17c3130233005581e030023db1a19996f11ac8f7cfb1e4c031568a2eebcf6d4f801ed97f161100c014707c13a961c605805581d02dd7e3f5a4dec5e8f6412fab075fb3bd6184b8cd181bcd1672f94dfe80c034724f53c96fe8c4a05581d023fa2596c9157ba93ea652d30a62365bba6276b4dd6c3a50b8a3550b80c19013d477fd11c8589b9ff0218c005581e03bcbb476649f27bebf5e9524259aa1266e7d8f0fd22b998205d7686f9b00c1902d54767f9b0cf66eb4705581e0332aab72668602756cd9563fe4e5d4853668b177a113ccc8dfde65a2cf00c0847017fd653a0458205581e03ae8599661ba0fbbf36747a3fc6de80c8339bb5cbf7e7731cfcac30e450040103492907cf6531e1ea51969300a9c905c829ca7f17bfbe5d7afc10e1edaaed3a69033723e22891c12b78bf6d327d749578a4dadd833875f16dc35b19eba0f170e4a303337c29fd9976d67b66b28034c1414c04861ce13b19a267c6e01d66f2cdb6bfba03e9baece0471a9fe966a8468362e2baf26f481bdceeef8951916ebb4f35afd39f05581e030431f95fcc79461dee8ed91b9011d32eeec0abbe25279be593a9868c6007011bffffffffffffffff05581e032b64ebf1a76bfc72aefd4d118401571ddfe0ab2c36ab3ebb6a0e0de1000c02476256a27be2a55005581e03d1e1b015481ae8c76743ba0c28a222ada610250b2ee79182e9386ad2400c024705bb05e8d7d278037940c5f9dd9b8732f22ba557a6a8d1be6058914543eea2e4a1e935b0c3415e0403b429028355d2a4404bfe53f694fc33b1926a8a05c79f1f9d13ea990e348d6de805581e0395a4ba42c758b3c7714d6a4439a5acac1dcae5b82b457c66aed2fb4d5007011bffffffffffffffff05581e03dd96cfadd3ab3d2d7a8f2b8a9f6a136f55b81108358b419ec797dacdd00c0447011a16b2e7953b0219ff370219ffff0368aac66507e5f0bf56e8cb926fd1fba04475a94c306400898bdcd740b1645a730219ffff03fc9b8fc800d8c72143cac7feecc0476c5d41a5c01a3a79a94130c00520b070a20390e9ed99862ba5b45b0091456666e7c554db9d5398b94c5bd39aa61d8967582b03b208b1ce0c6a468e61862d7f77e46df9f7fef19a18b06f2befaa2dcac1c61cec03a717e695ab3eae00882b5091c28ed23b93563adae68a4dfdd5a792dcc9fe47f103d0dee986c6467aa1e9e294a4fb94804d94477511635a716de10f9298307b0d2103654c6a433cbd9326b8fbbc6e9730e3a25e515818a72d728c619359c6b64ef8fc0398a772ca2547f45787a49c68aae27ad97bf2ec7b44d1a431d6b56df1cd4aae5803092632995f4644c6dce5221e8bf47b6eb42ed19c870af8c2dc9cfb69921cd359038c77f4d0ff2c61991ffdd8e01d5208df1ff18f872da8af8d3af02267e3cd2d0e0219ffff039e5200d751ba9d1f52709d4aaef84a7f7409ceff5ceeec239b77cfc0f417435303cb7b6e402d19ed0489b1c21fe29e414dad9fac5f89b01ace9b41bbb5d58858e503a35ea55ce9217e7748ff50936f2bfa510dcb2ff7ba0be211a99165d4da413a4703a58d0352922b26086336ac861d72b14909835956fc35073ad429c111d9d9e69003a4d027cfcd19d5ad4e449320b67b3b082e2989f9cecbb1441ecbd2a955cf553403f23aa58d9e02d713681573edf1d116186e555805a2d13bbf9fdfa7f5b2e27c18038bd53ac1be9fc3403c4957eac3ac8254f33b8328a496fdfe9d66ef3fdf90a1fc03e350c793d25b4e78f615b9b1de017cd6d344f164df89e4408a2c168eb1822de103dcdb62bd1767198711936bce6ee3a040711f54351c0d99c7efbfa6c75510304403e1e54347f25918e74b82280bf71959116f4da2992b3e0c448e4766352a23f07e0354a26eb28f8cafc67adfeb2443a65261801643b650621beba805a61be09969780219ffff039dd72a0d6795acce09234679d366ce9fa205da82e8f484f96f0274ba2a580b3a033b9194a4047adca9340a2dc25e43c8b7752ec5c4b7afef91a9caeec03dd69b45030a7fe29c5fbaacd1885e6cb208b2335d29146c2c80bc17b58ceaee7385a052660302216ee5925837a256f0712758186ccae0dc40147c2e593265a419597a253ab303436e1af61bc593904b1dc68547af66c4d1bb11c15930d2e53fb871c7eece81060391a6470fc14cde5deecb6e4366398ba8364c09a816e86fe91fcce270850fcb270393d4e95d85f039f2d96da00cf23124916fc2b2505f7b5775fe431dd09438f6fc03a7986129dc32061b07129d7a68b6657ce576b16bed6cdc370e0c1a4d27ae0fc103b4924926d0fff5e5aaa2c1b3356766dfbb3b3f436eeab29a34907ace3a02f8b60303a6930e4f2ab52f5094bd41bde734635af80b787b7550f518aba8b5aa05f3530386fa4901e5ca7e8c24bb7a4d16a3103a4d25ce8515061053b48c930c2ed47572039304f27cf2ce737d769807c5e98f3891bb64308fafcf63c49deb00bed1de9a0003c51d59ac54a69ccd0951f5004bd46dada85badfac59a7a46807c01e448d5a2d803a24237aef35d28b94745ffa4d0ae7195b6ada27a8df89eb23b9f5fcb37d2d995035a4bef5881e4128850a2a1bf08e3df9ae2f43cc756f801a2e8840179fa841fe503c086376f28f96f5879b88f58f4d52add6a364f20a493539612018064326ba478037bb5d0f1040e9a5a25d895156959695fa1ff35cc1dfe6da9ba0fd004fb9ef0c603bff50d9c1a4d167f65568b2c4c03011b33480c5cf1ace6dfca938d3c388daf6703af6df2e9eb3dcf30732365a901e0230b429b8bf114881aefddc85857c8f6d66403bc31d080d6d37b7e736b1cb7cf51d0854e40bdf8f4f068ebc3a8838327247cf0036a31aeea3bf416581365e3b4327bedee8e30ae2a50eb38ffb40039426746f440033a3cd1db0c06fdbeed65739f0ecab67141a04ff7183ca713a98a2d0c124ce539031a014a1a29faae74d8cf7778abcf45369f4ad59ad6de17796f148332f251663d0359bdcdfc7c66526585dfa614e5101a7176cbcbf49b40aae28ea62688d113e62d034d126ddd15a29a98915cc5db662e1f2ac6d6dc94fc6c8e3c48a201dd664f4d810305feb4cbb9c5109b9d623ba41ffb4f67c922f166fa2ece6065af717c581d97b003918288ca138733d12d615b402edd6a7becf19e0760ee95e9421400c55cd0dedd03840c70bb48aa70378e1ee53135f9dce11e0b5ade264a873bd560ce3c724396740391852c1a92042f7ca297dbb18f8ecdeec463758ab8c730aed083559683bb4127037bd2980b2fa301ad9ecdd455c43bfae34e77a0ce64b382e21071d22188ee11a805581e0330cf8ab9338e447b93f1fe54655f1fad6c79276398816f44c63d6fc0f00c02460b58e380783805581e03ad1fdfc083a4b8f05d37327b24756c541339dd18967d474a99934505b0040105581e03663b734a510398458ced2820f5b04726f6184b4368163708ba4d66bf800c0246015aeaebb400032c92d181755232b754b1d81a26390157390294b7a2cb0e2c5d3b4fac0a67c85f05581e03eb6353469262146236fab3c5dfad73926e2df281ceb73a7540ca99ff500c014504a817c80005581e037677bc2c6be96342a0c293bb033f13af985e63052b01b418a7829c8d800418720313f8cd1114901c4b5ef07e5c9be1523a8bec3b28beb219f66fcb60751d58b5b205581e0311f5f7f93661a38dc9e9b180166d0b7e6635d97a12f18df5b255a5e6a00c01467bd213784e0003409bc10bbdb1ad82209a193edf365444989bfa6281cc09a3ff9b5e5285dd2e56038b4cf4a70dab1f2e83ae84aa8e8c3aae5ad15c089f1ffb78978bd89908a4dc5704590930608060405234801561001057600080fd5b50600436106100365760003560e01c806330e6ae311461003b5780636f7929f214610050575b600080fd5b61004e6100493660046105df565b610063565b005b61004e61005e3660046105df565b610351565b6000826001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561009e57600080fd5b505afa1580156100b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d691906106b5565b9050600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561011457600080fd5b505afa158015610128573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014c91906106f5565b506001600160701b031691506001600160701b031691506000848060200190518101906101799190610745565b905060008311801561018b5750600082115b6101b05760405162461bcd60e51b81526004016101a79061075e565b60405180910390fd5b6000811180156101c1575061271081105b6101dd5760405162461bcd60e51b81526004016101a7906107a3565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908616906370a082319060240160206040518083038186803b15801561022257600080fd5b505afa158015610236573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025a9190610745565b905060006102688583610806565b9050600061027884612710610806565b610282908361081d565b90506000816102938861271061081d565b61029d919061083c565b6102a7878461081d565b6102b19190610854565b90506001600160a01b038a1663022c0d9f6000838e825b6040519080825280601f01601f1916602001820160405280156102f2576020820181803683370190505b506040518563ffffffff1660e01b815260040161031294939291906108c3565b600060405180830381600087803b15801561032c57600080fd5b505af1158015610340573d6000803e3d6000fd5b505050505050505050505050505050565b6000826001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561038c57600080fd5b505afa1580156103a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c491906106b5565b9050600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561040257600080fd5b505afa158015610416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043a91906106f5565b506001600160701b031691506001600160701b031691506000848060200190518101906104679190610745565b90506000821180156104795750600083115b6104955760405162461bcd60e51b81526004016101a79061075e565b6000811180156104a6575061271081105b6104c25760405162461bcd60e51b81526004016101a7906107a3565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908616906370a082319060240160206040518083038186803b15801561050757600080fd5b505afa15801561051b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053f9190610745565b9050600061054d8483610806565b9050600061055d84612710610806565b610567908361081d565b90506000816105788761271061081d565b610582919061083c565b61058c888461081d565b6105969190610854565b90506001600160a01b038a1663022c0d9f8260008e816102c8565b6001600160a01b03811681146105c657600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156105f457600080fd5b83356105ff816105b1565b9250602084013561060f816105b1565b9150604084013567ffffffffffffffff8082111561062c57600080fd5b818601915086601f83011261064057600080fd5b813581811115610652576106526105c9565b604051601f8201601f19908116603f0116810190838211818310171561067a5761067a6105c9565b8160405282815289602084870101111561069357600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156106c757600080fd5b81516106d2816105b1565b9392505050565b80516001600160701b03811681146106f057600080fd5b919050565b60008060006060848603121561070a57600080fd5b610713846106d9565b9250610721602085016106d9565b9150604084015163ffffffff8116811461073a57600080fd5b809150509250925092565b60006020828403121561075757600080fd5b5051919050565b60208082526025908201527f446e79466565416461707465723a20494e53554646494349454e545f4c495155604082015264494449545960d81b606082015260800190565b6020808252602d908201527f446e79466565416461707465723a20444e594645455f4d5553545f424554574560408201526c0454e5f305f544f5f313030303609c1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600082821015610818576108186107f0565b500390565b6000816000190483118215151615610837576108376107f0565b500290565b6000821982111561084f5761084f6107f0565b500190565b60008261087157634e487b7160e01b600052601260045260246000fd5b500490565b6000815180845260005b8181101561089c57602081850181015186830182015201610880565b818111156108ae576000602083870101525b50601f01601f19169290920160200192915050565b84815283602082015260018060a01b03831660408201526080606082015260006108f06080830184610876565b969550505050505056fea264697066735822122089edfbf4dc52df9d7623981fc95497dcd3c8b65f708eeb7a8d5757f10010e55264736f6c634300080900330605581e0312143b180cc4e3950a0265751bbaebf861b5f058686ea4243954919450070119093003647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d035485a952b56c097ad744f45a0246568a89b2ab61847068f77b88c559436aac0b05581e038135667d192a3cd46c1a49f23b44590cb262cba725a64827c7395b7d9007011bffffffffffffffff0219f7e303aac85541be75f986b0bcee7b1dd3f15f83a10ea36189e18aaa8062c16e034fd30382e5c91b78eb2cfb09a1e6f43094e6c97c40a710cc1b12a5496b805da792649d034d708d4ddc2f783be5f30b6bab2708101fa1ba1904a48f475a58b6d33ff4af290346e2b5db40b57594417150d4ebbcaa47681142463ccf5187d8626c7950843ea7030f39ae22813770a350c4499bcf6a5c0f681af794c93d2812e9ff49b3c594fb02031bebf510d36b05d073be12177fa600b7762f73c411fba26c12149badfe5b90bf0219ffff03ee355ed8620d71ca741034ccf487b8daace58280a100bdb99426cbad3b26982503f58940a0620e9ee0686f69d8451dc38e96dc2c4d445c9cca443eabffc4ce4eee038cf56d3ffba0ec028c733149da188588f90f134c535a3629aef035114db714e803188a9857dfc7fd7aa7410698aa3fd3f3c3f5ace3a0096c22318fc8f1ca1db6b60370de0430814522e1b54e9222f5f6759db2368693aed19bc7a62706e65bb347ae03cb767e09ed30f1a2758b15e7f1b590aa4fd3a859d1031f63c1ceffd3f7e8a1ef03dced03296cd7b24f275e463994911fd1cd924d83889a588dbc85616a5497805103103ce477795f79adc3e2fa56ff56fa1d4613571ce7e7ae95a23c8146339bb8d603884c9f6813183b6ea35aaae5ca158be5030c1558dfa76ce94f7df36611038c3d0219ffff0385d1fe78ee2771dbdbeb296834ee142662f47d9a5c325d8aed71d5c576a7e33c0320341154b4fc70baedfd57a57f11f788b51384e2d9bfa00c0dba1e9a5d73da650379ea43ae9c1fef92f7807d7705c4d3172d5e5d482420536c1990e588b0b7e95c0355d2dc70fa004029e04fed42282b30fc91ae5d4049ea216d061886b92b19e8a603e99c88cb4019e2855dab7d52f4220869e815c0ae1c4da29cf205c7640ae274f403824143b41d10a4e074123518aa92c4c421fa761c91145a8dff4025db0db3f85203c359d4396f34d6afb9fbc7a57e63dbb2dda0795ffc40318ab964fb844e8ba25d032d77d3ba106cab5ec2f5c0d36b1aaab16d545c86af09c2136292b2b7eca8a41903892dbe9c6bd349deae9db0b2f5a9403e2ef7c1360900d227d78bf20317e0abe20384fcf854982d46741912768aa02939dd4412e46315339d6f2e51bb69d87a14a8036c59747634121a5d2694e74cf8d023bee67ba3d003dcb78b14f43322f6f581b60359d4da54f98410c6f6d2fe3618c5125780b755a9527911da82a5a6933568d724032160badf26653954562c328eaea6a7e43f7a6c34ebef46c85e0f4c9ef206bb5b03816f55fb620c0ceeb01d59db0f40d3fb20e6ff04247200d7a4a9bac0cee8e14b0219ffff036c9253384366784c6527a7eb5018ec09685ae28073e2747329f08bf834f6a9ca03a322589144b991254b371d170a476bd798baae4a4cf56f04355019d1082b9031035b6296cf1e1ebe07c36aa8a7b4eabac63d4c03f03ade37233964bb8dcdf1ea3a0357fc6afe2b1042ee2326fb7e5a3167fc663034f2f98ffaa1fbde4adb5af7b34203c43fb366f14143d9777b6c2aba5dba5abc3ddbd17e660daa8059bf52a6c76ee40330f44d6f0e907a35de11fe425aa94c84701ad2fd7cca2bc8cfa4c6a322b280cf032a611230c2878c5c665659d0f212e519c5c6bb883a53819837e0f5601bbeebc503cc023d1c141bdca5717edd648798d3f377427735a71da20994b33ba3c80bc17b03d6593713b9b19422f6928f441f74d1535ea67eda5b631963efb8b2ccb16a2792037dcea9a15f287cce547b3153f484d8f4ffdcf6c987feea4cc0ce4d2a291bc8f70325c259fd7aa23b043e96bf94960acca65ba2a75a2a14c5339714c834750d3cca03d327f472b8447cd0e9bf8a0a27b691b106659dfc82618bf2540461b39568e6af03515d24a3b928de02159e2a3d8e7616cc93ee7af4c1f8272b79d1b6034939db0b03def69534c49c416774754afa01fe432c3c5048b5a98ae1138d11c4870d1bdf22037817b5bfa69bfaa066bb6ba9f33416f45e544be1fbaedb3816177e9f92e85bcd032bf95ea35fe07124c43d758631d15aed8ebb7271603d5466524736626770630403f87bf1d9ba9149dfafdaee95a40ebdb10239d93176be719c30fecb997c6ab75e05581e034005c3015343c149ba30603c456d8a87b2c4022fa45eeb7bc7c1421ea00c014603ad6573715005581e03c162924e8865c864e5c1e21a8bb7c888b5617c64973b4c7d09db78d150040203f43ae884674b9cfa71fffce57a9fae10f510dfc468bd703e8084ffe159f419d501410d05581e03834f3476b371e3b4b271ce22d5605135abf8aadb5d85e2ebe642dc94d0040405581e03e5dfe494fe7d655d9faa42ed474313b1f82d06a60d176c41b19fa740f0040205581e03ea58a0ac8fe652f461828e63f22af1970624050a83f9a1068c545866a00c014648c27395000005581e03afe85268e458fa72a6be2b7ca0ee0735dfd55e727edcef669fe48bce40040305581e034edcf32333f6a4e46fa7a654d48662f92acc5a3072c7dcd75ea59620b00c024616993e01741005581e03895f2e8e2fbb0a9e4a84d5a9b3c1d3fad693f059bffbf9e2acf8e43fb0040405581d03885641e54c2a638a545f02d9a386a82a444511650f25fb3ce4785ad00402045911a5608060405234801561001057600080fd5b50600436106101425760003560e01c806349bd5a5e116100b85780638da5cb5b1161007c5780638da5cb5b1461026b57806395d89b4114610273578063a457c2d71461027b578063a9059cbb1461028e578063dd62ed3e146102a1578063f2fde38b146102b457610142565b806349bd5a5e1461022b57806370a0823114610240578063715018a614610253578063860a32ec1461025b57806389f9a1d31461026357610142565b806323b872dd1161010a57806323b872dd146101b5578063313ce567146101c857806339509351146101dd5780633aa633aa146101f0578063404e51291461020557806342966c681461021857610142565b806306fdde0314610147578063095ea7b31461016557806316c021291461018557806318160ddd146101985780631ab99e12146101ad575b600080fd5b61014f6102c7565b60405161015c9190610d31565b60405180910390f35b610178610173366004610c90565b610359565b60405161015c9190610d26565b610178610193366004610bd9565b610376565b6101a061038b565b60405161015c91906110d8565b6101a0610391565b6101786101c3366004610c2c565b610397565b6101d0610430565b60405161015c91906110e1565b6101786101eb366004610c90565b610435565b6102036101fe366004610cb9565b610489565b005b610203610213366004610c67565b610503565b610203610226366004610cfa565b61056d565b61023361057a565b60405161015c9190610d12565b6101a061024e366004610bd9565b610589565b6102036105a8565b6101786105f3565b6101a06105fc565b610233610602565b61014f610611565b610178610289366004610c90565b610620565b61017861029c366004610c90565b610699565b6101a06102af366004610bfa565b6106ad565b6102036102c2366004610bd9565b6106d8565b6060600480546102d69061111e565b80601f01602080910402602001604051908101604052809291908181526020018280546103029061111e565b801561034f5780601f106103245761010080835404028352916020019161034f565b820191906000526020600020905b81548152906001019060200180831161033257829003601f168201915b5050505050905090565b600061036d610366610746565b848461074a565b50600192915050565b600a6020526000908152604090205460ff1681565b60035490565b60085481565b60006103a48484846107fe565b6001600160a01b0384166000908152600260205260408120816103c5610746565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156104115760405162461bcd60e51b815260040161040890610ef7565b60405180910390fd5b6104258561041d610746565b85840361074a565b506001949350505050565b601290565b600061036d610442610746565b848460026000610450610746565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461048491906110ef565b61074a565b610491610746565b6001600160a01b03166104a2610602565b6001600160a01b0316146104c85760405162461bcd60e51b815260040161040890610f3f565b6006805460ff191694151594909417909355600980546001600160a01b0319166001600160a01b039390931692909217909155600755600855565b61050b610746565b6001600160a01b031661051c610602565b6001600160a01b0316146105425760405162461bcd60e51b815260040161040890610f3f565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6105773382610928565b50565b6009546001600160a01b031681565b6001600160a01b0381166000908152600160205260409020545b919050565b6105b0610746565b6001600160a01b03166105c1610602565b6001600160a01b0316146105e75760405162461bcd60e51b815260040161040890610f3f565b6105f16000610a1a565b565b60065460ff1681565b60075481565b6000546001600160a01b031690565b6060600580546102d69061111e565b6000806002600061062f610746565b6001600160a01b039081168252602080830193909352604091820160009081209188168152925290205490508281101561067b5760405162461bcd60e51b81526004016104089061106e565b61068f610686610746565b8585840361074a565b5060019392505050565b600061036d6106a6610746565b84846107fe565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6106e0610746565b6001600160a01b03166106f1610602565b6001600160a01b0316146107175760405162461bcd60e51b815260040161040890610f3f565b6001600160a01b03811661073d5760405162461bcd60e51b815260040161040890610e09565b61057781610a1a565b3390565b6001600160a01b0383166107705760405162461bcd60e51b81526004016104089061102a565b6001600160a01b0382166107965760405162461bcd60e51b815260040161040890610e4f565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107f19085906110d8565b60405180910390a3505050565b6001600160a01b0383166108245760405162461bcd60e51b815260040161040890610fe5565b6001600160a01b03821661084a5760405162461bcd60e51b815260040161040890610d84565b610855838383610a6a565b6001600160a01b0383166000908152600160205260409020548181101561088e5760405162461bcd60e51b815260040161040890610e91565b6001600160a01b038085166000908152600160205260408082208585039055918516815290812080548492906108c59084906110ef565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161090f91906110d8565b60405180910390a3610922848484610a15565b50505050565b6001600160a01b03821661094e5760405162461bcd60e51b815260040161040890610f74565b61095a82600083610a6a565b6001600160a01b038216600090815260016020526040902054818110156109935760405162461bcd60e51b815260040161040890610dc7565b6001600160a01b03831660009081526001602052604081208383039055600380548492906109c2908490611107565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a059086906110d8565b60405180910390a3610a15836000845b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000908152600a602052604090205460ff16158015610aac57506001600160a01b0383166000908152600a602052604090205460ff16155b610ac85760405162461bcd60e51b8152600401610408906110b3565b6009546001600160a01b0316610b3857610ae0610602565b6001600160a01b0316836001600160a01b03161480610b175750610b02610602565b6001600160a01b0316826001600160a01b0316145b610b335760405162461bcd60e51b815260040161040890610fb5565b610a15565b60065460ff168015610b5757506009546001600160a01b038481169116145b15610a155760075481610b6984610589565b610b7391906110ef565b11158015610b96575060085481610b8984610589565b610b9391906110ef565b10155b610a155760405162461bcd60e51b815260040161040890610ed7565b80356001600160a01b03811681146105a357600080fd5b803580151581146105a357600080fd5b600060208284031215610bea578081fd5b610bf382610bb2565b9392505050565b60008060408385031215610c0c578081fd5b610c1583610bb2565b9150610c2360208401610bb2565b90509250929050565b600080600060608486031215610c40578081fd5b610c4984610bb2565b9250610c5760208501610bb2565b9150604084013590509250925092565b60008060408385031215610c79578182fd5b610c8283610bb2565b9150610c2360208401610bc9565b60008060408385031215610ca2578182fd5b610cab83610bb2565b946020939093013593505050565b60008060008060808587031215610cce578081fd5b610cd785610bc9565b9350610ce560208601610bb2565b93969395505050506040820135916060013590565b600060208284031215610d0b578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610d5d57858101830151858201604001528201610d41565b81811115610d6e5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b602080825260069082015265119bdc989a5960d21b604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b6020808252601690820152751d1c98591a5b99c81a5cc81b9bdd081cdd185c9d195960521b604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252600b908201526a109b1858dadb1a5cdd195960aa1b604082015260600190565b90815260200190565b60ff91909116815260200190565b6000821982111561110257611102611159565b500190565b60008282101561111957611119611159565b500390565b60028104600182168061113257607f821691505b6020821081141561115357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220e905ad1a7e419ed6c4450c15a3249a7a816cdd698384f84c43e47d9cc66a804364736f6c6343000800003303682a2c764d91cfa33be17e8bc337fded997ca391d79b83af879538f037f9a2cd0331d172422c6c3ba286d4cb40435bddb8b4faf20cc6d1d9a5f42d76e8cd73989403b1a809b8ea6c4014886ad4334a867d3036af9f70dda6a2a3367adcd595f0fb7603a1340e070f619ca9b099742c2247016ef6f75b18932a7d4c37664d56a86c9e10038c0f083f5d7e5483db76f00e20daa8b8bbfbd42373101d036a831da02b360c3e03c2296ffa553ea860e6a90dd53f9c7b78c939e4d5d963feab608dd8e9b49e97b7035202ca5764553474a287e776c9deeb46a31c2ec0453eb0c096f9b1f7e445c4cc03efcb1035ca585071f1417a423fa052a0269b00a4c39453e992a04899213a33bf03e89a825e740808ca79b2bcc7649ece74994b061f091d7b666086684d25eccc3b03efd10371a732afd0107372f83b26025b4c1ba4577a470cd7bce5e254414168610302693da95d543115ad0c2302351e45f3bdd18302ddb4edcf561cb55069cacec003cfb2b29de490a148ce508b84c833fffd0257c1fbfcf530c163bcc64d58b21ad6037d198c315a2e832f9b3accd34389d9775342fb1b4dc1fa1713a3dd2558b551da00581f0319dfd96646d45011c5209a565e0cbf8aeaa176844cc883eab923241658f04c023300bef3d0de86fac27927021907020340a6efe01e16f34593c10c92a2bba4132ffb1f3a2a3b26c03c57271957b1bb310352e0039460ed524d9ce9175dd0546263c3beb2d7c17e94493506a78e0cc2204103096e79d59a7ac7fc7acc6d9b3b803507444a4b460683b1c27a8f7b9d44381a81036e7ef554cd07e0074b43955929d0b351043fa89c57614a3a756a82a3b9ba032003645d8bcdec2f6c2c53343ca9a73ece263472cf2a79759e2759540df2ae90760603da62b8faf689b4681a2a165c4dea34ca7ddecf64f30395436a3af6f89421546b031d4afc1be53ac5849c188ba8ba2f12685805ab8ee7010e3162ac25cd0896f2e4031db31bf7688f15756d178d6d9a954cf4e62e8b77963ffa83151b4a0e6623bed103e20304bd08bcfde6c9651b0209805beef77afd2986b7fbb60c240f2a85e37fb1031cd55a4beadaac045d98eb81ce0e7a73715feb8ddde28452f03cd90f8a022d2f033964b1df53692108b196cbeb541a740f72b1afdced1af957b57406b9e3389b8e039b524827cee52a2390e71b775757c64306604740e29992470ad69c9f9cc8323e0219ffff038b2cfbb2a06eba05163e97527bdbcbbbf7204c01736642dba1486b804733380003cc3426b7a06f764e2ba5a42b9ab54895276846ee0f02479ee3658ea771627dad03bf78c5a55de507687ae1cb4db007b86bc77ddb7b2ca50854331d772d81f95ae503541eebcf97aca82f9a3a08eeac96a3889dd98926d8170cd06ea23979e11d90050392befa2ca8189882e63888929a4add94d1804c24919315478f14168416ff3fe003a9fa2e454e5aac2d14a130a42904e3fa83605bd5b0fef009ddf9bd61e8693e1b036ae0106df9a29c1a7650431fcfd77da3908e00878c586a61eebe0d00b0d2166903d0348e4ddb6de38286997fcf5e02dbcc513e6aed33ee0980f925dfce793f868e03d4e6be18ab5397a7a7136df432881f6db9d68be14cc430638e421b106a66b5bd03bd6ef2b54a8b0a4fb0649585282089969b2b3d19aff1ba7d18a7e7c3bf15ea300219ffff0357c8007e95bcbec0d7bf2f4666a44c9a40fcf18410418332a4cdff742997dbf6033c559f64165d9662e994cd7d6742acf3ca1bedf31d2f9989c2f2a7f4571c3efb0313495a327e7ff827958b5c164fab326305f4bd8d7864f2da8904655cf9b54fdb032f06e1b45dd1cae79a5e9e095289cdd45a75135b27ca178dacd3659707c870ed03c5986f1abc725de33efcb5ee7423ac3a49ed84d212c7338fb380f27f0a65f16803586b0ae2b1b32a1da7ea69a870e6652cd4525ea380550b4546837abe33ebfe25037ecea5c822296a4d55d84ca487a61ed6f28c7ceb9580e6eb6471e145ba0000f003b7f9b7cd0b4d14e61cb20f700306f8a8a366925569afdab30e2157fe1b590dca0354d14d85f686bc2a6af287be50e165a7fd1e4c523190ab0581af324fb92b297b03027aef43b5d8faabcb3138207fdeebc276bd27928bb607002f2d04e3bb52f9840312801b6ff424e931aa8fd7c26f1e9a0ff3ddb20e90367e30647a4a91acfce86e03da15c602f88654ed64a18bcbcc08cdc3c2137980f5a82bc69577ae1036cca710033a9f721b8fc36c600f8e9168e4f552129422bb9ae71b5d2f45662a91ff30e26f032f7e0d8e7c338273379df306617b0f51f320e28ca290156c0506b58607b95afd0219ffff034b29cf827ee4d614bd8914806d725180960f279046c9d9f0ca57e289d52acc4d0307425c3e7a2f7b7f27012bcab61ae6471400765215c708d2fd7cea49d124335b03ddf5804b9204410e970281f3cfe5c83e5dc04b3be1fbd52fa0bb8a476264b7ac03620c940db4f1f235ad46bcbad471cf42f1da2bdadab4a66b01486bcc9cd67007033ec4df7473b3e598f0be3899ef8b48eed89f418762ffce2932a0e1fb40155c0c032ab84bbb60cc0b801cc13e042b0a41d1e6cf94918a57a3ce84b228307abff4ec03ca42ccaee0e5ad9cfd2b3237801deb7bab632af9d210269743cdb40530a06d47039d597c2830b1f091718be3a59de8131ec1d5acb911dff16f6fb48af338dfedc80300de1e589af677e88da0af5b08277f7fdf5d644dbc50d93de6014f809e3200310370cb681d5bed4e6dfa207258cde185cb198846196faee0fe727d707a0917f47f03a51da9f39596d71db79753d81e33b8aabbfadb4b724d837fb1f0af3d9574ff15030733e5b6b3f8b80ceccb6c3ad1fc47cc3816fcab882facb41ad62cf35fa07f4a039ff89476db8d944f6b8bb8aa812f7000df306d6eee71f707e53765fe55c607cb03952673f55f211f227635cfd7914ff185f62ea081921d99f15526f06e679766c003d112789b81e2b37580f42e62e4281c64161da48dd0a80270e49ab5b0d8154735035f56cec50c6cde76d77caa66225e4decd603a142b414fa6375eb691f35ec27930341b68c055ac76afc746a1f790ed5bc686934d4f1d8fabed4abc443edc4cf0a030377f4c7db523dcb4acd566fd4772c4a13303ad874aae871d6b287354fc94d51350313d0efd91ed4487951126d9e3ab1a7673031c53ac87ed202e3d2b10a93678f60035bb9d5462b228693377bbc8a2de4a2f5dda9a253eef9788f0e5277b39f9b482603241f26cc2f2240a0286d5488693265492f5889174dd54da613387790de303d52037be8d5f9ef203a3456bde79ce2e3007722e22b464574120ef964f47b5177b096030d62141cdfd204e7228e53e803eb315cef851ce1372983522e05b0fdc7c968a703365d1dfe200574fe51c59cccd0bb6bacba3d53da918c520a28dbc5b88a2ac0fc00581f0369cf766ad04f0918d1f8afedbd312adccc9dad17c553fb051713ff9a20d05819b88e282822ab5ed106947c1c60af583c1741a38e858de0000000581f03fbd82d365c85468cf298cd7b569a20f9c8f134f3a9d947960639a38033404c0239ac90d3f4dd869678000000581f03af9e4f388770e28d2667a5c414eb6ee414979cca87340b9372c9f9b717f05820fffffffffffffffffffffffffffffffffffffffffd6d7e0b9a02fec4e68491e900581f03396c477160341d4432c5eb0b7bbf3e17f864b0e5188cf07fe9bddfcec4f04b2ac10d94432fe73450cfd100581f0368ce3b10eaf720e9151c49392e8521d68f8d4b646c3470be8e0a057f7c805820fffffffffffffffffffffffffffffffffffffffe00900dfe77833906918f0cf800581f0319d5999a0daf4aa46da44618e6c63fd54afb614e90b31afa493601e3d5a04b3c7a6d917daaea0000000000581f0323783bd635983e5cdd8e924d73a126417246a5ff49a71929433f650325604b2c3e63dc18bbdd7160975200581f030e1bba063b3b00c866ea0fd2f1331beaec4719c690560e435c9dee88ddb05820fffffffffffffffffffffffffffffffffffffffffd7286fe2fd39ab129ffffff0219f54203d5b30b66bf6832b6ec0debe38b5e60003cb7430cba6679cad82e62091d0f3dd0039a5d1574841b0487b823433fd210c35c9bdb5a2d38700de1248887f8e16cba3803747f556d9e56e4254cefa9d46107abbc9c417cc95394e89da29aeb6c78e0d2d2037d281b85bb521a564fcadd93eec4df7a82fb30062a4943e40ff7f3d5288fc5460312d8eb1be7cd99ac1fa257efb829ff23ec0f945323024770a8056d308fbc247003e8f95342a08a7cbae1e646f4d842b3713a34dc44fcd39f298ae7c19441abf60f0335c9fd3c38967b65109d5d03ab301d25c4bc80edcd26135905fb109b98a5e0470351a93c50416d0c2dcfd3fa5f9932881be363a383d4733cc0ad073c22766605f9035453a84397030aa058e325475941389d9ccb9515690891209396db5159eb0eed03e3357d26e921c682008f4a3643de0463432e94e7b2e051c24e66bff0fe65dea802197fff032e7a6576b1cbf1ae29a9d1fb2f11f808de8a7ef4b36895fc6052203368f351730361ded8530c54e67130edb054176a7a7a99466a13570a88f03d967e197c0fe8ed03e5713238eab2c8da1e391109dde1cb710df0bef3dfc885f09a6369a484ab9b38034b572bbc52c316b39ecdcb6abc6be3e11af4ffd56b4b3939b0e94986e39577180346b9033456d41aa998e618a8249697c8c6856e14f7162d67902dcacc2fcf0851036b1cc75e59caafd96ee557f37ba4a4f27bca938f31f2613dfa790517d13e0732034d73d278acc07b334c0aee2913510ba29334ac991ad4daf1a302485e753dbc1b03fd71fd93a5df320d52af01339dd41de25b3dea6542d2183121cc830fdb1c669f039f9992764c8273aa77b193d7f2d77827a2dd3c5f9c60d69eba533905f967225c03f6c5978994172f431d0c6805376ff877fefc818ce8778b0544cd29e50ae6f4670343b5bd0352d412274fad661840ef9cd5418a6f371a26a700d00b2ee26d3aee380219ffff0219ffff034a07ff0ef5801fef16454a0d5939dbc6bcadc6bf15aec1e443070273184704910328575e1f7fadef3e53e1209cf8ef0ebe40f36b3f5355c9e38b8b766ebfea141603abbec653e0bec530c688589e9394d403414e317ab6a01718143c709c04c2425d03a6a7a2db2c57c034274345d751a4c3acfca25be163cc1ebebf991fe9adc8cc6b03816459cde8fe4d4632f8150b24e03e944755798b075a607bd67c1182cf9ffb9203fdbd379b8455c54402c4c6ca4e9a9ff26250fa76bb8e8397857ea2bf3ee7e47f03c8f8a6e41b5a53c1d7a2c5d6c2d9bd7a2f30544ded876c06f8c38d80d3f1818d03a6c42156e30446d18aeb52e499ff63b09165884ec58a5682200da716118b4ef603768af42a746cebfea5c0bca7067bffdb47aad0f84403baed54fb757831017d510392afa8244589d5bb9a9213ba0ffb5e1ef4bac321ba1f0b8bf55ce9619951c8c303b98150a86d4594e5ec7b12cb50b45187eec18c08561e4c8b8af28118a672a4a10350d71bbcb77c4334c7aad84c5c882bfb306c14b1710acebf2d88aa516589664503ae399f3778467a80985ae23c9d3c49ed8acc71150974d52adb0237e852d1368703095d7f30f20f17cb179da6e2497c5f518cfef25ae7505bac1086586d80b258280395fa126135b1b955bcbd5b3a6a135d8cded365237e0166b245d30f3467881af803607ec5e7eb7f42f4627c3711ddf1bfe2fa10aaa93e06dcdff8290d7d7c7f698a03ade806d7b91fa7ca0ea19b4fb4240ccdd073986be3ba7ce99367caca2a9dbac1033849fe22123b924b558cbf33a7a10c40bad5fc432ed6d526add416e8076331bf036bdb6b71bf4d759f8d2d91d94598053dc5a424fbaf8aefd3f96c666498f7e981038168a0b41d8871f05116156d5a28f9701159e21f909bf6d56f465282723d907000581f03e7df3e7b4dfe5e37df4f52fb8c14dfd8a871f593411a7bd26e085a0aa7b05820ffffffffffffffffffffffffffffffffffffffff610cb66bfd5dddb08dcbffff00581f03d795ab21b2da728da84848f238119239430d6ea298903bc12a29af4eed104ba400d15ca4d0262cfb000002192400037ee3e28495885537afce900ec7d137ee779de17cb11aaa4fadb664361376f1b7030c8d74257fe6a03a1428d1482def18c999c1b7b6e8933f82f41707b1238da78403ad95a37f2aab6ed56ecb960ecca0ea9e65616ba0c4d36426b43efa81fa5f6b6103370f60d82ab72e469f204afb8ceed5f0adcdc41d9e9807f5ad19d1e83c5bcbdd0351f1ceda674d428d0e226b1344b1af33b8491bc3e01c03daccc4dd4ec51d6595032008ae3ad99557cc19cf2bffb498aa76d8300defc65c6b504aa89c30a542afef03c53f7438b03fc727dd6aefbfe1978a30be904b537d9babc6af10bda188ae8b9d03453fae65725d2e68783790d3e68da059e8716a34013a608aaf27326d09723d13031eb114bc21579ff9f77470f7d42edefe19857fed4d5f920f42101a01a178c9d503553612e4654eea3af2b3ce56a8712137f229162d568aab7dbd4be3df272c2fcd039eaca5da5e7d584e1fae8d0537479892048af4b1bf0ff811a632d0cd5f2eb8b903b0611c29896b093d2d18cc68e1316146e2c60bf7794e3664a65bc50e824d115500581f0245aa04334747092f16a579f16e4ffd1fff89cf49167062e239d32ab652074c0464adf47eb5b953aa3829510219ffff0219ffff039634cd353aec2709a2c12a35d73f5f322d524966ede1a9a12f325a35b5fb745103a37c3d9579148afc62f725ed475846ac58a93d3fd877bf729db16ebc11c0601103deaab704c9ea99af3b99ba60c9b785343fc4c6c859ec1825cfd51b8150a9342f034e793c65f6a313df3ba1fe8e6472943f7481954def30964bb0acd22f7234eb3703a465905d97b9faf69c19526fa32b0006afbbedb66970ef4cbb419cf6e1700a7403aad40e2afd29b9b4cb111ed0fcf657269aa2526f50b2bfdc151a013ef68f2e7703eeab86ae2b569bf35b4338ed584c19dc364af7647126870e03365509b7658ea203f42ea01bf448640f8d303e10c99a07217706c703f6a1518e05eb9091310cdd1f03ac8154d3bee373aedee5409ea8067745d36bba91ffdf204cbfd5a0567e47ca14031e639a15a20041c0ed16a15e8f0a64777db260bf0bb99c052f06ff81215c5b2403f29cb26c8d4cf9109c52dcbc5a7827d1fe4bbd7a5a6f7e26dc8c7f008013c05d03cd5cc0fe53435886495d5f86b7396d3c87b3d59b367848aa823f73d9d35e02f903d822cecdcc1fc17a539030bd29556fed0fd2d25c4435799b1a3fa2bda913af2800581f02776550e53df6feb2c6b222c45b5900797c053c19cb2e3156733b91ad84db5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff030b8d7558f8b024fdae3150b1361aaef9b8a8bb0e15eb3f1678b784cd4ffd5a4e03b06a6b676d6e58afc82aa47faaac1f17fdaee5cd91b18d0ddbc22b8f78fd762803a66c54cea586fed8fbc1e206ca6c5d6f3c3d72ad6635b14827b09a0afb539bfe035271cbc92361d2e07fe5cd288b8d0dd64821dc229ad3f99567872fd5fec36bdf00581f0393394dbfa9f0a648060ac944237d237f5f992cf7eef847ac59cd5c1458204b03e9c8072d5e4821e5292000581f030171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af054a43fe16908251ee70ef74718545e4fe6c5ccec9f02181803dd8edfe132d7fc12930db83c99e5f96a915be37746ead0f20ab3e8513d922daa03faa17911ec565b0308a9041c2fc8d8c49b926244eb8516215b4864795b01f2ed031f70524d833c6c50ad81635a08a473a501f11899a1110c418e27ae0c68fefa65037b5426a57a2b1f1c0b67e7f46668be223e3c17dc4a77f16c26b5fc9f22e8686403d7395ad48302da1ea9b38cec684ec53ba714fdf83db9f4f790ec1fb57ecd439303df08415dfca9ff979559035e6040b416cb3df849e6ad5b95908302e45f5f852a03c23e90f28bc6582b738684a5b0dc8eeab8681fb1bc7a0d80f1471e875585885f03e00004b5b65fddcbd074a7ffdbd694b421bb68bac5ad69eddad4c617112eaa3a0343483f386ed4f7b4397e7e18b9b7fe30b83ddd67a0a3ecec72ad86aab44f3efe034f783249dd6418137523e27f6145b2cc88a76691404afb205bf8316aa83233380219ffff03968d6d549ef725b5d4fceddbaf6da7ecc7ab936c1005c44bfda4ff3de39f585503ff25fd4c70523cd1cb5f586f3b8f5a41a13a2643ccc944515fa0ac20f3595133035c226c6141ce072f34e1133181b854c28c21d7dc7b109e81f010e7b36e7a549103d01705c5a410b15eb9a66210181c44f8694716cc8571fcd580cf14175cc6477a03ecebba472770d254b077688a252b7ba9ab26bdea6c02f7aab10deb6c4c47340e03133f47d352add2d08c78c8263888a64d92d656d898c6292da7ce919a2fb13dbc0396ae1dbc2fcbcdc38487818455c463b7688e6f07a0462b0997d52add702984d803ee036828600e2d78bd3b166309c46ab91e0ffd4feac4fb513edce1adeb40958e0397ba9dc5b2b3b8fb06cd77e1317c85ddaa51ee69ca11563a4d255c00edd1cdb603c011eafa03def31b42f7f636bf0492462afefe011f243197b142a8a3675ea9a7038ed5ce5f17a3c3c0c7a54ea0251dc10852193b0fcf20e03df9d94c5f09a0371103e8fc1b41cd579b031b88b077efff8a500df93d1e15bcfcc4c6c0de6d26f3983c034c794d89633f916f62b4987bf1c8d861721c80733521fd783cb3a3562969c07a03a03f651f395df4ed94b2e4c031a313fd3178bb17f40ef320a0c38be40065be0f0219ffff0305b82bce886f9057bf8c44fb1e2b473f9c7dd0fa2bab1eb851e295bb0f4920140219ffff0303b946b87a8ac583757cbf0483f90f99b35b16227a0f8f06e93e285adfbe4ef0035f1455e4e0282c438ebf70e844a6a4751880ccf59167da16cddb60423c403c6203f44f8093ccd631e10414c3e9d1b1ed1071cb0f00236fa015d382b716cdd890e703bce9fcb342dc82ea1d0293ff8bc97fe147b0a6851d7926dea3c2185fddd3d2ce038ec0e0557457cd9b26aa6f6ea1e109c354ed73312bd8ae76306649be156799e2031887182a8aff9e0b3c5a15c808b45de4702d3b09d7ab502f9e59208b9d0ecbdb0307fb24c55eec626c859afef47ac754fc12dc0e84a282224eb0759f811a872287038f5513588d8d103ee4d38f6eb7ebfbc7c312a6bf884bd9c918fe3b1f35829a2003c749929d194311260d1bd2f2aefeb609888460d442633d1c6bdad07a1383b283035db7b6b054dfe73ac9ef2167b5142b5bad253d4f6896329b7ed9798e304c9bc303b9d62c363dab10b8f50fe317b86a45415a36caba0e30f6cf4bd3bdda7cdb6be40320b61638e8a7f9e03e72b6d821ca8ff4ee1b5d63006cc73901afb0043d54c29a03e901f3dc2c1e78969ef07bf779a2624525172869c1f6253d9d54bd7289c5bee9038f5ed5a980f51494e1327d00d16b597950914bd36648daff9be681a0d0280a1803d824e1456873411e199168c004768b7a869770bd77e7d869f0c481136aded650037c865773e97befd9079556c340431ebb0433906ff4dfcbd65a7207ee5096666d03d613bc4121ed41215c92bf90d37464ee89460b62c018408b5d9ea581b152ec3103b802cbbcf316d864ed3f96c71580c167b2f116b37461820dfec36624a793531303839b8deb20f28ae752ca152f40201bfc59137d98d0d315723aab708fab5cfb8c037ba97722a212d85a0b9fe9f3333bb9c10cc1b90d4ff57cc49fcfc825ec65f5c3037e8a37e5070be0bd848c505f16f929e372da082f4de39c75414959571f7749c903cba230c7517ad852db7554acaa3f643bdab2b548a25a60b579077e2a229543e600581f0340240cd5e4c0deccdfb378dd8793f0e598e524c3887314d2a8e83208cdf05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0378e922336001bbaa5cf0f9155351917766b7b0d38032ab4c7bfa62c26cc04b139a900aa7d250d75b000000581f032eedea02d95865f0c193181aae5ae5af6c12fa57d6ab5060b4803f28fd804b1b819adcd79d7e95277b850219104503a89bb4873807c6e49332e52600c3df6aca01b637b4d3baa5ea1aaaaa3ba63a6a031bdf9a2e61a8eeaeac713dd10727a94d8365f0435269d719bc6206955dc9a8d70349ef11e829724b7039d4ead835bd917e7f83e6adc421912b8d79455f66fe124203c6c28137a064edee4a789912b3c2d18946cd0ce383ef319cf1be89803da19b130330fe989b2510364787932e89aef9178f81aeb0cecce14583823886aa803ac40803c29e533b5e64ed5810f15a967da573c6d032385f675deaf872002956b223bee0032f9fba6009e6e3863f04de60b369b646ecf59f54b6116bb08485a15da7d2b70103ab99f1970eaeb5a591d6e119cd38f2cdf161f21ba36aa3803e98ccf6fbffef78034124251d3f2e90f7193923146677a84b7ae3409102f90c44782099bc7d52d7ef03aef6be2a32d75bb6d565caa6f93688dcee30e9b6d1ca1ccb02eac5c38bb3006d0331dee8f3fbe3593ca26a881d85262f5bef725630338f3898c868cd9ee8e94297031f5a4802af34bf3b17e0ffb9d28b3e6b8e7dd167bf3b216b7b907c6b3d7407380219dfff031da2067f100fe797a15cc17fecda8c6e063e55b3d906fbfbd453a0c70f5a0590032b4120e3e216c79888cdc72e0a312d12720c32b51b419ff41aef0fbf541485a9035775f02e36868d6d3c559e258ca7b83d86586a3ad5be3f8aefbfb54ad87753b203d94f7eb177e7e9a56701f1cf7e0d763f6f3da7809930c0b34602bf14c6afa7c703bce2273058eaf0c22201b5b24fd900b9043365dd2c011f47e1a8c7ab252e891303a612d39d3b1ea2b8fef04b35b9d76b2678875c8913538bdf0cfac287da1990a5038659244649a31ce22a59ef209572bd0e37fbac375a1897927dcd70156ec6ff2f03194e43cc6d962e753e2b383d3a9e0ceebd66e9dd0238c4d780bbf081bc2a1e6303c4bed2c347ba893ec0ae9700354ce1be0f8417f95262e38e108909ff59df69b903559d285ae1118b7406a17cacc2f8cc778471cc3ba41abd816ffb35cc46b7728f0219ffff03f53b44f4b35213c765f03d53c5793101307964f91d60906c845c14a22e3623fc033465c1a6383040509f7984f0528cad575673ec52b1393c9385aada72e49fb24803c8fd61f5127294e1fcdadb88cce52d57d1a2edba1171ac48e2b74ac6cce68bbd032c009bf3d34c0492787420ae861e46e8b3a7f07546955bfd83acd739e585312a03cbf25dbadfcc72779a089e33598728ab55152d4bb93c639d5781519446865de703bcbbdf428cbab30635a8b9a6db593249a4848346aa83dd94524278be7048cc65030325aec11e938470a03ba0326dad8459f5cb4b6269e13cb62a5f084ec542d6dd03a8b78d5f3f27addbc315162e8567561f3311ee625167f67d5fb4d082c660febe031aa3925557643991c0c18d58144556ee91c789e9ea9db490291a6fe604359e5403650050bf6544e746b5a174ee55f208822bbd1faf581f751232164261ba2b06ca037b48558dee3e493466e84ff447ccabad84c6f6eb3d02e380e61d29fdc432ce910332f0ced7cd2c0e4c7f2c9bdf94a4221d98dc84c509a7bfa7f24bd5f28ac41ac503b74218eab38a510f3f6b2a12e9ee79c60fa626da8eb795ff86d711b734905aa5037fde028aa2fc348b15f88a130ae21fac1bbb62457d1c6efccdeb170225b25480037f3047b67b909f0335330901a994a1098f6c4027986f3e8716dcf49b404669e40349d968d8efdc79609b649da56193ddfa854c34fd783aecc873da864430c6fecf035acfa97ad815b823993f26be0e85fff711c0219bb76481786f834ca84b2021bb031b82e70a30452942e81b1b4c3489f4018219cc1eb0d0e145a783820ead0972db031d8ef70a9580612bdec53d2d906f61802b076fed8b65e8918a69ea0bb6df6ece03e876edda1176f4ca565fcb50c5ee71a346794335b6705442f88ecf427867605903cbfaebc6486eba72abf56c3341ae86008a790b60039801460bcddcc8237a96e303b55e0fd8e31e0b2023bee38224d840464eb54abcae189d8455c5e27cdc0189b303ed92c4bf038abb632f851b6e7a88c0a50fb5c1ebf32523750c34c25e376fa72503bdb4d98fb8e2ef43c2f48953c689cffe30953669eb0c25d03294a4addbb144cd033f1596847104532824684c61555213a8601746d42c7f825bca7fef97d01ecc6a0328467c1ad70395568fbc27e5a0e617e7482f6bcc5cf0634a1a4fe49217d13ad900581f031178debdca7048002d2c6fdb683ea8838b7997e47cf50af223497112c6a04ad8aa2483ed6526a10000039638b29a11bf164fad82f163fda2653b2785c2b10ab2e22590e7133ea558cb0b00581f03b7d887128c1233c1820651ab2af818eb84084080a613c39d63ae2b02e5405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f038053bcd3a17261c2eacb3bb55d5d599b7fd1b9fbfe7ca87dffb47e7703d04ac1733082d60ec943bec500581f03a8226b7095107a0feaaebc6156eb753f03c80bd2b5fb83c5a52bf28003205820ffffffffffffffffffffffffffffffffffffffffffd40f329d2e9c9e7936e3e60219614803ff6cbc9df7911eedd46cca74521018a03cf81a3999806b2bd79b0375e6305d4503225ff6929bd0068d3ef0a33bd6176b6e04c14e9e3487ffa01b115465c47710d203eb8ffdeffda7204684cf80d3cd1875e2f7297d03ac43cb24186494f32e5a06be0219ffff0333c8da2df428e751277bdfe5ee556789a0ccf93c53a14872680d6f4304c4cb44030f31154f9f1defbf5da1b4370697c6af99084a9bccc394e77246258e8521f5d203209a2c71264e8363387a001c13b826175e071a5e1952d5d157eec86517e405f80385e07f27da2f4c565b9e20d7ebb512dc6abaeae099a015f3f5f32cbd1cc2358103f289ebd45af09b7f3096d139c0ebe4f9cd1787a0feb1aae4874c7a93c3eebbe403760e9705520bf397532cc78a150e867246b4b77335eb54d9e9be52c30b6997730219ffff03401ff3bebbba0736328a6e54c2d87195f3f6bdca74939e209a3195f1cbf7bccc03d7f8ab6140496f9c955ad682f018a7504f644d8b884dc0e1b9d9d7f1522aaad203c812b8614d2769cc46fa6373f5d388ed5c49dec2dc0a8e0e855ff70a4372c86e0219ffff0219ffff05581d03b212be555d2bd364a5806a102f2f0e45c6a159463d8d85767fbf4f8007011911a5020c01410805581e0395261d73a9b3ec48fbadbeef418d87a5e384df5dabdc5754584d2e59200848029140851372800003f5e9c7c74c61ce282a13d57282052003a9118d086b78375987d3dc5f90ffbe8d01410e0219fee5036a5aa197394cc8b15281db2b4328b70739238bbabee79fef4e9f66309d8c929103f811585c9c5ebdf6b62ceb5bae4ac367fe534fd76a667ba6cad99765064e02f5039fccb42245b307d24640a7def6a216b1d6bc5c20faaa728c3f796a337070063a0301edc54995d98d0fc26796ad5c8956133e8ec07f56666080bda55dbd23ce47e40373f6151867d83bd2d883664025ab87303856953e450445cf73d82364bf55c9ce03fd5dbd8623db25e185b5b5c37425745e46aec08be011d895f8a2c707dcd1e7f503d9f146ffdc8ef5e3bbbbbf76033a4377aea4bfe9f84439f6999809e2b462bef6030f0111eb5fe2fe6b874a72b01191259f4da4a6c6875d1df7605cadd13e22b7bc03d634a0f7873d3e31587921f96e00e36eee82bfc9a26ab8526dd22a7353f5c2ba030e49aad2906e4c83dc5587012fd3b46b1bb0dcd0aa902f2b799780c9dbee1c8e0334f7fbb5e808d9ed7506a3cd8c7432600ad445e40ac804876f7e78599d8511d90321738408ff4beda5e89ec6e5bedba431d01048643b4251c07b289fa403c4ec63038bebba221a1fb458c365430411ce783b8ffe0ea0f33a35fdf2c31baf5ba6f43a0324b97b81972dc3abe77df16f45bcfb8af43cc01fa81c4e4c0be142e099fc949e036dfe50edc3609018ddb36b59c00b519b94b9c71aa89e164840430fe4490f0b820219ffff03b1f0bceb6779b19b6592a04371aaea304b2373ac4859f56250f1fd2025348add0219ffff03014c1043910bb8fb360583e974a8668b6ab10269fcc21933be274ff6e81f3d9f03a46975d7136d93ed7c68a01c66f57097fe7a90b1a7716eba02c425e9130ffc5203dd6e587ae2f9d1aa91ce0e0acb5e6348b3ec905d16458998d68bd63921c1ba900309bab507256f5115defc393cd6f48966e15f7da7049ba9c865b7dd7ddfb83728036465e9a5be100d237b0c44ee82ddca4d88eb923bb7b7d50250a3eb908918c9b003fd9924fbbf250a5372da2b16047cbe0666a07a16e5e7119ae6706d55fe5e54810394208e384f7b51dff02ee333ef44db7bd39730e1a184d4e58a2b219b23ad1e360358ccd60346481b82910024546073a5600cb5424bbb257dc918be3789d8af4b7f0310e5523f22a0c367e21f6444d42e1c27bb555408713d92ab352fcc1d8a618e0b031c51378426bc63512498cced5aa6e709e83b29c1aea619e447dea6f336d4a5dd033a8ed8d17cd31dfb4c7fcece7667ec0680ac319c6aefeab46e2277acfa5722f603ce6912c183b87885ef421a640471e90aad80bc023146affdb35619775df7e0410219ffff03c7154ac35b7e31ce7d8754ddc0497bf5fc78785b278f5a3071b7d155ae9ab9d60219ffff031beb564da0951e69ce5e3ce9190cb57bb6cd6e12936d46ec7a284c7d86766c3b032e3b7bececd2b8fbb4442711ce4385a424930fb0b61dfaa7a0359b415b3f435503b2f36459666bc9b8aacc24f78ab709c8e5cd7e40ffc59fe3ed0d1d59672e070e03c2f3c9db830645792279f9de243cabaa6ff033704372996d42a63ae02357c9c603cae2570170ffde15e09cc4ebc0b2081ef8afe4459845c2ca588cbd7e16d348df039646e69f9763eb05511e741dd60db48c7bacd7c99538d0ba915c2946321fc78403d143ba730ed0d040cbc823783382a0a771423762a27912983410d66514ceb49a03eae8c105f000c72d7e76fa936fd8dae8369ec7cd0128eff8a4a843a377f55cb10322949fabfbaa0caeceec1b00b3e1d52d5de6fd972953062dafbef304dd9924c10317c87862b391794d0a38447d7a06a2d31948265a1b860d6b7d0dde2e2f18b74203b4a01a0124f15a4cc8176c6979446a872da40a1d2ec0c006e0b214b603a1ec3a0364fcdbe71682415d0291fed45336befa6d9467e3ce37e80f0b70120bdfe5f14e03704601894f4bf9fb33ff0da62e8612cd61932af7a9204c8df07486934c0d906e035a7e0be4b7df23366765b892449b552c00b1acff97ad2a4bca00f93f6099276c035f3f7a9b9b30b421723e534b40fef02ce1ef8d80de6c06955b45d39786e3a5d50369ca4ebdce631ee05b976bf06cdbcff8694ff4fca3db3de025a13a5f277fffd405581d028a812b4e16b27170af43e12c071171542014eaeb99338cd01ef714b00c0148010818f2655c4d8f05581d023b4dc5c036657b654248e824dd7bf11485681b27337d60ec833995dd0c02470ba893dad6b76405581d023ee1f6d7f7d4ad9aa1b5963defa3d0bdd698e7e57e94c876c3dc2d700c014705ed9155a17a000459532e608060405234801561001057600080fd5b50600436106102ff5760003560e01c80636c0360eb1161019c57806395d89b41116100ee578063c87b56dd11610097578063e8a3d48511610071578063e8a3d485146106b0578063e985e9c5146106b8578063f2fde38b1461070157600080fd5b8063c87b56dd14610682578063cb743ba814610695578063d5abeb01146106a857600080fd5b8063ad2f852a116100c8578063ad2f852a14610649578063b88d4fde14610667578063c6ab67a31461067a57600080fd5b806395d89b411461061b578063a22cb46514610623578063a48301141461063657600080fd5b80637a05bc82116101505780638da5cb5b1161012a5780638da5cb5b146105d7578063911f456b146105f5578063938e3d7b1461060857600080fd5b80637a05bc82146105835780637bc2be7614610596578063840e15d4146105a957600080fd5b806370a082311161018157806370a0823114610560578063715018a61461057357806379ba50971461057b57600080fd5b80636c0360eb146105455780636f8b44b01461054d57600080fd5b806342260b5d11610255578063511aa644116102095780636352211e116101e35780636352211e1461050c57806364869dad1461051f57806366251b691461053257600080fd5b8063511aa644146104d357806355f804b3146104e657806360c308b6146104f957600080fd5b806344dae42c1161023a57806344dae42c1461049a578063481a48ec146104ad57806348a4c101146104c057600080fd5b806342260b5d1461045957806342842e0e1461048757600080fd5b806318160ddd116102b757806323b872dd1161029157806323b872dd146103f45780632a55205a146104075780633680620d1461044657600080fd5b806318160ddd146103a15780631b73593c146103d957806323452b9c146103ec57600080fd5b8063081812fc116102e8578063081812fc14610341578063095ea7b314610379578063099b6bfa1461038e57600080fd5b806301ffc9a71461030457806306fdde031461032c575b600080fd5b610317610312366004613c43565b610714565b60405190151581526020015b60405180910390f35b6103346107bc565b6040516103239190613cce565b61035461034f366004613ce1565b61084e565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610323565b61038c610387366004613d1c565b6108b8565b005b61038c61039c366004613ce1565b6108d1565b600254600154037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604051908152602001610323565b61038c6103e7366004613d48565b610984565b61038c610a1d565b61038c610402366004613da7565b610a83565b61041a610415366004613de8565b610abb565b6040805173ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915201610323565b61038c610454366004613e0a565b610b24565b600f547401000000000000000000000000000000000000000090046bffffffffffffffffffffffff166103cb565b61038c610495366004613da7565b610b87565b61038c6104a8366004613e61565b610bb9565b61038c6104bb366004613f07565b610d2a565b61038c6104ce366004613fd3565b610f7a565b61038c6104e1366004614119565b61101a565b61038c6104f4366004614206565b61107f565b61038c610507366004614248565b611113565b61035461051a366004613ce1565b611125565b61038c61052d366004613d1c565b611130565b61038c61054036600461427e565b611208565b61033461126d565b61038c61055b366004613ce1565b61127c565b6103cb61056e3660046142ac565b6112fe565b61038c611380565b61038c611394565b61038c6105913660046142c9565b61144e565b61038c6105a436600461431e565b6114b3565b6105bc6105b73660046142ac565b611518565b60408051938452602084019290925290820152606001610323565b60095473ffffffffffffffffffffffffffffffffffffffff16610354565b61038c610603366004614391565b611585565b61038c610616366004614206565b612320565b610334612367565b61038c6106313660046143cd565b612376565b61038c610644366004613de8565b61238a565b600f5473ffffffffffffffffffffffffffffffffffffffff16610354565b61038c6106753660046143fb565b6123c8565b600e546103cb565b610334610690366004613ce1565b612402565b61038c6106a3366004613fd3565b612527565b600b546103cb565b610334612594565b6103176106c636600461427e565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260086020908152604080832093909416825291909152205460ff1690565b61038c61070f3660046142ac565b6125a3565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1890fe8e0000000000000000000000000000000000000000000000000000000014806107a757507fffffffff0000000000000000000000000000000000000000000000000000000082167f9c15441500000000000000000000000000000000000000000000000000000000145b806107b657506107b68261266b565b92915050565b6060600380546107cb906144dd565b80601f01602080910402602001604051908101604052809291908181526020018280546107f7906144dd565b80156108445780601f1061081957610100808354040283529160200191610844565b820191906000526020600020905b81548152906001019060200180831161082757829003601f168201915b5050505050905090565b60006108598261270d565b61088f576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009081526007602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b816108c28161275b565b6108cc8383612860565b505050565b6108d9612975565b60006109066001547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b111561093e576040517fe03264af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e80549082905560408051828152602081018490527f7c22004198bf87da0f0dab623c72e66ca1200f4454aa3b9ca30f436275428b7c91015b60405180910390a15050565b61098c612975565b61099582612a05565b6040517f01308e6500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906301308e65906109e79084906004016145ce565b600060405180830381600087803b158015610a0157600080fd5b505af1158015610a15573d6000803e3d6000fd5b505050505050565b610a25612a69565b600a80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200160405180910390a1565b8273ffffffffffffffffffffffffffffffffffffffff81163314610aaa57610aaa3361275b565b610ab5848484612aba565b50505050565b600f8054600091829161271090610af8907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff168661460b565b610b029190614622565b905473ffffffffffffffffffffffffffffffffffffffff169590945092505050565b610b2c612975565b610b3582612a05565b6040517febb4a55f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063ebb4a55f906109e790849060040161481a565b8273ffffffffffffffffffffffffffffffffffffffff81163314610bae57610bae3361275b565b610ab5848484612d70565b610bc1612975565b6000610bd060208301836142ac565b73ffffffffffffffffffffffffffffffffffffffff1603610c1d576040517f1cc0baef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612710610c306040830160208401614847565b6bffffffffffffffffffffffff161115610c9c57610c546040820160208301614847565b6040517f3cadbafb0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff90911660048201526024015b60405180910390fd5b80600f610ca98282614864565b507ff21fccf4d64d86d532c4e4eb86c007b6ad57a460c27d724188625e755ec6cf6d9050610cda60208301836142ac565b610cea6040840160208501614847565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526bffffffffffffffffffffffff9091166020830152015b60405180910390a150565b600054610100900460ff1615808015610d4a5750600054600160ff909116105b80610d645750303b158015610d64575060005460ff166001145b610df0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610c93565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610e4e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610ec188888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a9150899081908401838280828437600092019190915250612d8b92505050565b610ec9612e44565b610ed1612ee3565b610edb8484612f99565b610ee482613109565b6040517fd7aca75208b9be5ffc04c6a01922020ffd62b55e68e502e317f5344960279af890600090a18015610f7057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b610f82612975565b610f8b83612a05565b6040517f8e7d1e4300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528215156024830152841690638e7d1e43906044015b600060405180830381600087803b158015610ffd57600080fd5b505af1158015611011573d6000803e3d6000fd5b50505050505050565b611022612975565b61102b83612a05565b6040517f4d38017800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634d38017890610fe390859085906004016148c9565b611087612975565b600c6110948284836149a3565b50600254600154037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff011561110f577f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c6001806110f060015490565b6110fa9190614abd565b60408051928352602083019190915201610978565b5050565b61111b612a69565b61110f8282612f99565b60006107b682613180565b611138613246565b61114133612a05565b600b54816111706001547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b61117a9190614ad0565b11156111f457806111ac6001547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6111b69190614ad0565b600b546040517fe12d231400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610c93565b6111fe82826132b9565b61110f6001601055565b611210612975565b61121982612a05565b6040517f12738db800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528316906312738db8906024016109e7565b60606112776132da565b905090565b611284612975565b67ffffffffffffffff8111156112c9576040517fb43e913700000000000000000000000000000000000000000000000000000000815260048101829052602401610c93565b600b8190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c90602001610d1f565b600073ffffffffffffffffffffffffffffffffffffffff821661134d576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526006602052604090205467ffffffffffffffff1690565b611388612a69565b6113926000613109565b565b600a5473ffffffffffffffffffffffffffffffffffffffff163381146113e6576040517fd6eb09ce00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200160405180910390a161144b81613109565b50565b611456612975565b61145f83612a05565b6040517fb957d0cb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063b957d0cb90610fe39085908590600401614ae3565b6114bb612975565b6114c483612a05565b6040517ffd9ab22a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063fd9ab22a90610fe39085908590600401614bc8565b73ffffffffffffffffffffffffffffffffffffffff811660009081526006602052604080822054901c67ffffffffffffffff1690806115786001547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600b549395909450915050565b61158d612a69565b8035156115ff576040517f6f8b44b0000000000000000000000000000000000000000000000000000000008152813560048201523090636f8b44b090602401600060405180830381600087803b1580156115e657600080fd5b505af11580156115fa573d6000803e3d6000fd5b505050505b61160c6020820182614bf3565b15905061167657306355f804b36116266020840184614bf3565b6040518363ffffffff1660e01b8152600401611643929190614ae3565b600060405180830381600087803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b505050505b6116836040820182614bf3565b1590506116ed573063938e3d7b61169d6040840184614bf3565b6040518363ffffffff1660e01b81526004016116ba929190614ae3565b600060405180830381600087803b1580156116d457600080fd5b505af11580156116e8573d6000803e3d6000fd5b505050505b61170d61170060e0830160c08401614c58565b65ffffffffffff16151590565b61172061170060c0840160a08501614c58565b176001036117925730631b73593c61173e60808401606085016142ac565b836080016040518363ffffffff1660e01b815260040161175f929190614c73565b600060405180830381600087803b15801561177957600080fd5b505af115801561178d573d6000803e3d6000fd5b505050505b6117a0610140820182614bf3565b15905061181c5730637a05bc826117bd60808401606085016142ac565b6117cb610140850185614bf3565b6040518463ffffffff1660e01b81526004016117e993929190614c9d565b600060405180830381600087803b15801561180357600080fd5b505af1158015611817573d6000803e3d6000fd5b505050505b600061182c610160830183614cd6565b35146118a65730633680620d61184860808401606085016142ac565b611856610160850185614cd6565b6040518363ffffffff1660e01b8152600401611873929190614d14565b600060405180830381600087803b15801561188d57600080fd5b505af11580156118a1573d6000803e3d6000fd5b505050505b60006118ba6101a0830161018084016142ac565b73ffffffffffffffffffffffffffffffffffffffff161461198357306366251b696118eb60808401606085016142ac565b6118fd6101a0850161018086016142ac565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604401600060405180830381600087803b15801561196a57600080fd5b505af115801561197e573d6000803e3d6000fd5b505050505b6101a0810135156119fd576040517f099b6bfa0000000000000000000000000000000000000000000000000000000081526101a08201356004820152309063099b6bfa90602401600060405180830381600087803b1580156119e457600080fd5b505af11580156119f8573d6000803e3d6000fd5b505050505b6000611a0d6101c0830183614d43565b90501115611b115760005b611a266101c0830183614d43565b9050811015611b0f57306348a4c101611a4560808501606086016142ac565b611a536101c0860186614d43565b85818110611a6357611a63614dab565b9050602002016020810190611a7891906142ac565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260016044820152606401600060405180830381600087803b158015611aec57600080fd5b505af1158015611b00573d6000803e3d6000fd5b50505050806001019050611a18565b505b6000611b216101e0830183614d43565b90501115611c255760005b611b3a6101e0830183614d43565b9050811015611c2357306348a4c101611b5960808501606086016142ac565b611b676101e0860186614d43565b85818110611b7757611b77614dab565b9050602002016020810190611b8c91906142ac565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260006044820152606401600060405180830381600087803b158015611c0057600080fd5b505af1158015611c14573d6000803e3d6000fd5b50505050806001019050611b2c565b505b6000611c35610200830183614d43565b90501115611d395760005b611c4e610200830183614d43565b9050811015611d37573063cb743ba8611c6d60808501606086016142ac565b611c7b610200860186614d43565b85818110611c8b57611c8b614dab565b9050602002016020810190611ca091906142ac565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260016044820152606401600060405180830381600087803b158015611d1457600080fd5b505af1158015611d28573d6000803e3d6000fd5b50505050806001019050611c40565b505b6000611d49610220830183614d43565b90501115611e4d5760005b611d62610220830183614d43565b9050811015611e4b573063cb743ba8611d8160808501606086016142ac565b611d8f610220860186614d43565b85818110611d9f57611d9f614dab565b9050602002016020810190611db491906142ac565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260006044820152606401600060405180830381600087803b158015611e2857600080fd5b505af1158015611e3c573d6000803e3d6000fd5b50505050806001019050611d54565b505b6000611e5d610260830183614dda565b90501115611fa157611e73610240820182614d43565b9050611e83610260830183614dda565b905014611ebc576040517fb81aa63900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b611ecd610260830183614dda565b9050811015611f9f5730637bc2be76611eec60808501606086016142ac565b611efa610240860186614d43565b85818110611f0a57611f0a614dab565b9050602002016020810190611f1f91906142ac565b611f2d610260870187614dda565b86818110611f3d57611f3d614dab565b905061010002016040518463ffffffff1660e01b8152600401611f6293929190614e42565b600060405180830381600087803b158015611f7c57600080fd5b505af1158015611f90573d6000803e3d6000fd5b50505050806001019050611ebf565b505b6000611fb1610280830183614d43565b905011156120bc5760005b611fca610280830183614d43565b90508110156120ba576040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915230637bc2be7661202a60808601606087016142ac565b612038610280870187614d43565b8681811061204857612048614dab565b905060200201602081019061205d91906142ac565b846040518463ffffffff1660e01b815260040161207c93929190614e75565b600060405180830381600087803b15801561209657600080fd5b505af11580156120aa573d6000803e3d6000fd5b5050505081600101915050611fbc565b505b60006120cc6102c0830183614f38565b9050111561220f576120e26102a0820182614d43565b90506120f26102c0830183614f38565b90501461212b576040517f74ef6df700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b61213c6102c0830183614f38565b905081101561220d573063511aa64461215b60808501606086016142ac565b6121696102a0860186614d43565b8581811061217957612179614dab565b905060200201602081019061218e91906142ac565b61219c6102c0870187614f38565b868181106121ac576121ac614dab565b905060e002016040518463ffffffff1660e01b81526004016121d093929190614f9f565b600060405180830381600087803b1580156121ea57600080fd5b505af11580156121fe573d6000803e3d6000fd5b5050505080600101905061212e565b505b600061221f6102e0830183614d43565b9050111561144b5760005b6122386102e0830183614d43565b905081101561110f576040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091523063511aa64461229060808601606087016142ac565b61229e6102e0870187614d43565b868181106122ae576122ae614dab565b90506020020160208101906122c391906142ac565b846040518463ffffffff1660e01b81526004016122e293929190615068565b600060405180830381600087803b1580156122fc57600080fd5b505af1158015612310573d6000803e3d6000fd5b505050508160010191505061222a565b612328612975565b600d6123358284836149a3565b507f905d981207a7d0b6c62cc46ab0be2a076d0298e4a86d0ab79882dbd01ac373788282604051610978929190614ae3565b6060600480546107cb906144dd565b816123808161275b565b6108cc83836132e9565b612392612975565b60408051838152602081018390527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c9101610978565b8373ffffffffffffffffffffffffffffffffffffffff811633146123ef576123ef3361275b565b6123fb85858585613380565b5050505050565b606061240d8261270d565b612443576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061244d6132da565b9050805160000361246e575050604080516020810190915260008152919050565b6040805180820190915260018082527f2f000000000000000000000000000000000000000000000000000000000000006020909201829052825183916124b391614abd565b815181106124c3576124c3614dab565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016146124f55792915050565b806124ff846133ea565b604051602001612510929190615104565b604051602081830303815290604052915050919050565b61252f612975565b61253883612a05565b6040517f7f2a5cca00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528215156024830152841690637f2a5cca90604401610fe3565b6060600d80546107cb906144dd565b6125ab612a69565b73ffffffffffffffffffffffffffffffffffffffff81166125f8576040517f7448fbae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da90602001610d1f565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a0000000000000000000000000000000000000000000000000000000014806126fe57507f49064906000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806107b657506107b68261344c565b600081600111158015612721575060015482105b80156107b65750506000908152600560205260409020547c0100000000000000000000000000000000000000000000000000000000161590565b6daaeb6d7670e522a718067333cd4e3b1561144b576040517fc617113400000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa1580156127ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128129190615133565b61144b576040517fede71dcc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610c93565b600061286b82611125565b90503373ffffffffffffffffffffffffffffffffffffffff8216146128f45773ffffffffffffffffffffffffffffffffffffffff8116600090815260086020908152604080832033845290915290205460ff166128f4576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526007602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b3033146129cb61299a60095473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161490565b17600003611392576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526042602052604090205460ff16151560011461144b576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095473ffffffffffffffffffffffffffffffffffffffff163314611392576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612ac582613180565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612b2c576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260076020526040902080543380821473ffffffffffffffffffffffffffffffffffffffff881690911417612bc95773ffffffffffffffffffffffffffffffffffffffff8616600090815260086020908152604080832033845290915290205460ff16612bc9576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516612c16576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015612c2157600082555b73ffffffffffffffffffffffffffffffffffffffff86811660009081526006602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055918716808252919020805460010190554260a01b177c0200000000000000000000000000000000000000000000000000000000176000858152600560205260408120919091557c020000000000000000000000000000000000000000000000000000000084169003612d1057600184016000818152600560205260408120549003612d0e576001548114612d0e5760008181526005602052604090208490555b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610a15565b6108cc838383604051806020016040528060008152506123c8565b600054610100900460ff16612e22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c93565b6003612e2e8382615150565b506004612e3b8282615150565b50600180555050565b600054610100900460ff16612edb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c93565b61139261352d565b600054610100900460ff16612f7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c93565b611392733cc6cdda760b79bafa08df41ecfa224f810dceb660016135c4565b6043548160005b828110156130285760006042600060438481548110612fc157612fc1614dab565b60009182526020808320919091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101612fa0565b5060005b818110156130bc5760016042600087878581811061304c5761304c614dab565b905060200201602081019061306191906142ac565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905560010161302c565b506130c960438585613b78565b507fbbd3b69c138de4d317d0bc4290282c4e1cbd1e58b579a5b4f114b598c237454d84846040516130fb92919061526a565b60405180910390a150505050565b6009805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081806001116132145760015481101561321457600081815260056020526040812054907c010000000000000000000000000000000000000000000000000000000082169003613212575b8060000361320b57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016000818152600560205260409020546131cc565b9392505050565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002601054036132b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c93565b6002601055565b61110f828260405180602001604052806000815250613834565b6001601055565b6060600c80546107cb906144dd565b33600081815260086020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61338b848484610a83565b73ffffffffffffffffffffffffffffffffffffffff83163b15610ab5576133b4848484846138c0565b610ab5576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a90048061340457508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806134df57507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806107b65750507fffffffff00000000000000000000000000000000000000000000000000000000167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b600054610100900460ff166132d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c93565b600054610100900460ff1661365b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c93565b6daaeb6d7670e522a718067333cd4e3b1561110f576040517fc3c5a5470000000000000000000000000000000000000000000000000000000081523060048201526daaeb6d7670e522a718067333cd4e9063c3c5a547906024016020604051808303816000875af11580156136d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136f89190615133565b61110f578015613768576040517f7d3e3dbe00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044016109e7565b73ffffffffffffffffffffffffffffffffffffffff8216156137ea576040517fa0af290300000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff831660248201526daaeb6d7670e522a718067333cd4e9063a0af2903906044016109e7565b6040517f4420e4860000000000000000000000000000000000000000000000000000000081523060048201526daaeb6d7670e522a718067333cd4e90634420e486906024016109e7565b61383e8383613a3a565b73ffffffffffffffffffffffffffffffffffffffff83163b156108cc576001548281035b61387560008683806001019450866138c0565b6138ab576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106138625781600154146123fb57600080fd5b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061391b9033908990889088906004016152c5565b6020604051808303816000875af1925050508015613974575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261397191810190615304565b60015b6139eb573d8080156139a2576040519150601f19603f3d011682016040523d82523d6000602084013e6139a7565b606091505b5080516000036139e3576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490505b949350505050565b6001546000829003613a78576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660008181526006602090815260408083208054680100000000000000018802019055848352600590915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b818114613b3457808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613afc565b5081600003613b6f576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015550505050565b828054828255906000526020600020908101928215613bf0579160200282015b82811115613bf05781547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff843516178255602090920191600190910190613b98565b50613bfc929150613c00565b5090565b5b80821115613bfc5760008155600101613c01565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461144b57600080fd5b600060208284031215613c5557600080fd5b813561320b81613c15565b60005b83811015613c7b578181015183820152602001613c63565b50506000910152565b60008151808452613c9c816020860160208601613c60565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061320b6020830184613c84565b600060208284031215613cf357600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461144b57600080fd5b60008060408385031215613d2f57600080fd5b8235613d3a81613cfa565b946020939093013593505050565b60008082840360e0811215613d5c57600080fd5b8335613d6781613cfa565b925060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215613d9957600080fd5b506020830190509250929050565b600080600060608486031215613dbc57600080fd5b8335613dc781613cfa565b92506020840135613dd781613cfa565b929592945050506040919091013590565b60008060408385031215613dfb57600080fd5b50508035926020909101359150565b60008060408385031215613e1d57600080fd5b8235613e2881613cfa565b9150602083013567ffffffffffffffff811115613e4457600080fd5b830160608186031215613e5657600080fd5b809150509250929050565b600060408284031215613e7357600080fd5b50919050565b60008083601f840112613e8b57600080fd5b50813567ffffffffffffffff811115613ea357600080fd5b602083019150836020828501011115613ebb57600080fd5b9250929050565b60008083601f840112613ed457600080fd5b50813567ffffffffffffffff811115613eec57600080fd5b6020830191508360208260051b8501011115613ebb57600080fd5b60008060008060008060006080888a031215613f2257600080fd5b873567ffffffffffffffff80821115613f3a57600080fd5b613f468b838c01613e79565b909950975060208a0135915080821115613f5f57600080fd5b613f6b8b838c01613e79565b909750955060408a0135915080821115613f8457600080fd5b50613f918a828b01613ec2565b9094509250506060880135613fa581613cfa565b8091505092959891949750929550565b801515811461144b57600080fd5b8035613fce81613fb5565b919050565b600080600060608486031215613fe857600080fd5b8335613ff381613cfa565b9250602084013561400381613cfa565b9150604084013561401381613fb5565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156140705761407061401e565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156140bd576140bd61401e565b604052919050565b803569ffffffffffffffffffff81168114613fce57600080fd5b803562ffffff81168114613fce57600080fd5b803564ffffffffff81168114613fce57600080fd5b803561ffff81168114613fce57600080fd5b600080600083850361012081121561413057600080fd5b843561413b81613cfa565b9350602085013561414b81613cfa565b925060e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08201121561417d57600080fd5b5061418661404d565b614192604086016140c5565b81526141a0606086016140df565b60208201526141b1608086016140f2565b60408201526141c260a086016140f2565b60608201526141d360c086016140f2565b60808201526141e460e08601614107565b60a08201526141f66101008601614107565b60c0820152809150509250925092565b6000806020838503121561421957600080fd5b823567ffffffffffffffff81111561423057600080fd5b61423c85828601613e79565b90969095509350505050565b6000806020838503121561425b57600080fd5b823567ffffffffffffffff81111561427257600080fd5b61423c85828601613ec2565b6000806040838503121561429157600080fd5b823561429c81613cfa565b91506020830135613e5681613cfa565b6000602082840312156142be57600080fd5b813561320b81613cfa565b6000806000604084860312156142de57600080fd5b83356142e981613cfa565b9250602084013567ffffffffffffffff81111561430557600080fd5b61431186828701613e79565b9497909650939450505050565b600080600083850361014081121561433557600080fd5b843561434081613cfa565b9350602085013561435081613cfa565b92506101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08201121561438357600080fd5b506040840190509250925092565b6000602082840312156143a357600080fd5b813567ffffffffffffffff8111156143ba57600080fd5b8201610300818503121561320b57600080fd5b600080604083850312156143e057600080fd5b82356143eb81613cfa565b91506020830135613e5681613fb5565b6000806000806080858703121561441157600080fd5b843561441c81613cfa565b935060208581013561442d81613cfa565b935060408601359250606086013567ffffffffffffffff8082111561445157600080fd5b818801915088601f83011261446557600080fd5b8135818111156144775761447761401e565b6144a7847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614076565b915080825289848285010111156144bd57600080fd5b808484018584013760008482840101525080935050505092959194509250565b600181811c908216806144f157607f821691505b602082108103613e73577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b803565ffffffffffff81168114613fce57600080fd5b69ffffffffffffffffffff614554826140c5565b1682526145636020820161452a565b65ffffffffffff80821660208501528061457f6040850161452a565b166040850152505061459360608201614107565b61ffff8082166060850152806145ab60808501614107565b166080850152505060a08101356145c181613fb5565b80151560a0840152505050565b60c081016107b68284614540565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820281158282048414176107b6576107b66145dc565b600082614658577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126146db57600080fd5b830160208101925035905067ffffffffffffffff8111156146fb57600080fd5b803603821315613ebb57600080fd5b600060608301823584526020808401357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe185360301811261474a57600080fd5b8401818101903567ffffffffffffffff81111561476657600080fd5b8060051b80360383131561477957600080fd5b6060848901529381905260809387018401938290880160005b838110156147ea577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a88030182526147cb83866146a6565b6147d689828461465d565b985050509185019190850190600101614792565b5050505050506147fd60408401846146a6565b858303604087015261481083828461465d565b9695505050505050565b60208152600061320b602083018461470a565b6bffffffffffffffffffffffff8116811461144b57600080fd5b60006020828403121561485957600080fd5b813561320b8161482d565b813561486f81613cfa565b73ffffffffffffffffffffffffffffffffffffffff811690507fffffffffffffffffffffffff0000000000000000000000000000000000000000818184541617835560208401356148bf8161482d565b60a01b1617905550565b73ffffffffffffffffffffffffffffffffffffffff83168152610100810161320b602083018469ffffffffffffffffffff815116825262ffffff6020820151166020830152604081015164ffffffffff8082166040850152806060840151166060850152806080840151166080850152505060a081015161ffff80821660a08501528060c08401511660c085015250505050565b601f8211156108cc57600081815260208120601f850160051c810160208610156149845750805b601f850160051c820191505b81811015610a1557828155600101614990565b67ffffffffffffffff8311156149bb576149bb61401e565b6149cf836149c983546144dd565b8361495d565b6000601f841160018114614a2157600085156149eb5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556123fb565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015614a705786850135825560209485019460019092019101614a50565b5086821015614aab577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b818103818111156107b6576107b66145dc565b808201808211156107b6576107b66145dc565b602081526000613a3260208301848661465d565b803563ffffffff81168114613fce57600080fd5b69ffffffffffffffffffff614b1f826140c5565b16825261ffff614b3160208301614107565b166020830152614b436040820161452a565b65ffffffffffff808216604085015280614b5f6060850161452a565b1660608501525050608081013560ff81168114614b7b57600080fd5b60ff166080830152614b8f60a08201614af7565b63ffffffff1660a0830152614ba660c08201614107565b61ffff1660c0830152614bbb60e08201613fc3565b80151560e0840152505050565b73ffffffffffffffffffffffffffffffffffffffff83168152610120810161320b6020830184614b0b565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614c2857600080fd5b83018035915067ffffffffffffffff821115614c4357600080fd5b602001915036819003821315613ebb57600080fd5b600060208284031215614c6a57600080fd5b61320b8261452a565b73ffffffffffffffffffffffffffffffffffffffff8316815260e0810161320b6020830184614540565b73ffffffffffffffffffffffffffffffffffffffff84168152604060208201526000614ccd60408301848661465d565b95945050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614d0a57600080fd5b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000613a32604083018461470a565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614d7857600080fd5b83018035915067ffffffffffffffff821115614d9357600080fd5b6020019150600581901b3603821315613ebb57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614e0f57600080fd5b83018035915067ffffffffffffffff821115614e2a57600080fd5b6020019150600881901b3603821315613ebb57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8481168252831660208201526101408101613a326040830184614b0b565b60006101408201905073ffffffffffffffffffffffffffffffffffffffff808616835280851660208401525069ffffffffffffffffffff835116604083015261ffff602084015116606083015265ffffffffffff60408401511660808301526060830151614eed60a084018265ffffffffffff169052565b50608083015160ff811660c08401525060a083015163ffffffff811660e08401525060c083015161ffff81166101008401525060e08301518015156101208401525b50949350505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614f6d57600080fd5b83018035915067ffffffffffffffff821115614f8857600080fd5b602001915060e081023603821315613ebb57600080fd5b73ffffffffffffffffffffffffffffffffffffffff848116825283166020820152610120810169ffffffffffffffffffff614fd9846140c5565b16604083015262ffffff614fef602085016140df565b166060830152615001604084016140f2565b64ffffffffff80821660808501528061501c606087016140f2565b1660a08501528061502f608087016140f2565b1660c0850152505061504360a08401614107565b61ffff1660e083015261505860c08401614107565b61ffff8116610100840152614f2f565b73ffffffffffffffffffffffffffffffffffffffff8481168252831660208201526101208101613a32604083018469ffffffffffffffffffff815116825262ffffff6020820151166020830152604081015164ffffffffff8082166040850152806060840151166060850152806080840151166080850152505060a081015161ffff80821660a08501528060c08401511660c085015250505050565b60008351615116818460208801613c60565b83519083019061512a818360208801613c60565b01949350505050565b60006020828403121561514557600080fd5b815161320b81613fb5565b815167ffffffffffffffff81111561516a5761516a61401e565b61517e8161517884546144dd565b8461495d565b602080601f8311600181146151d1576000841561519b5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610a15565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561521e578886015182559484019460019091019084016151ff565b508582101561525a57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60208082528181018390526000908460408401835b868110156152ba57823561529281613cfa565b73ffffffffffffffffffffffffffffffffffffffff168252918301919083019060010161527f565b509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526148106080830184613c84565b60006020828403121561531657600080fd5b815161320b81613c1556fea164736f6c6343000811000a00582103b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672041010058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630410100582103e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0508924d42d98026c656545c3c1fb3ad31c0058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6041010219084605581d024f0dd2e53dd5a0dca0ebc68e5059c24e060960d0cad0a59285cbaeca070119532e0219704005581e03dd9ec8b59c8b9b0c8d4e2eed5f60f64aa21198decd4c90ce71e25bd79008470120159271200005581e0358c4520614c51f846d242f2d4510a4290dd5168e21260216b960d035000c01470181b06257bef405581e036bd5b5af6cdcc14183664cc1c32b6b2dc80150ba2df52d4fe25b7407c00c0246420a17875bc803f30da9f2e136091624c6b0403907518fa71af77dd1521a55bb37508b2514a5c1030bd0ff826bc0f2c4200d18ae493eca4866780afa892d1b2115c40958a5514da005581e03761a38f00056495dacdec8cd6f4c217f46d3a1f700f3fc1e59edebc930040105581e034c3a9602614db658f413f389a8334bdd14141845f64bd7780965cb35d00c0146b97dcf4d4c0005581e03f491eccbc61aaa5ea9d1565ecad57cf3d27775d20e928e50c656316660040205581e037d322a1f1acba42c146ad011c8c9b9684a45bf1a2c7d5421c75f1e25400c05461938a65d5f0002192eeb031a389bae744d5039f02176b575004376c9597cd6d4be85bda59493a365f7e2b5033e98a8504a7482ad6bb644701a8c560f154f7972fc750d604a7319281336426d0351c2f06cb92007365ce57fca7574e78226289a4bf737d787821d0687fce6e25a03823558c0960e5895ebcef55a2fc01f02ba88a51e7c8c7306acdd8f304cec0c7d0336ca7fad42b4c3011eab876767b163d7062ea67eb30f5a925216b70d5051407f0387f8bbe01026c90128fa59c537d87a2528857e6830288a20f4a212f7d864a4ee0219ffff03ad796a2ca9896c06c7c087b62d02c187dd36281758c7ce31b17790ac7da8d1c903591a963cdb58df809b8d6009d979d71a98385ee02bf8fe1e728999adba11c6d5036dbf77c5ec129305cc700d7b751f5ae6b1fdcb63966fcf8a25c341a80ffa62ce03788184014e215d792347973ea9af85337313d5ecfe3179e0f8574c380ca8d98b038d736af8d7446afe92a92e04b2c41e151734bcc4a5905351ac6ea4c0a48df0bf03b71b67c3b70a6c0ffde0dcc633fe193eb502bc7b0c8a1eef2bf552e525aab898037aa10fef1dc2016c95b7f6c38eabd4d117dd5d400ad282cbd43697fe551e3b400388189412ed7d8f32e8b2daae96b92bdc62d0e5c7f3dafb062930a44bcbb37c7f03bbbeee5df992e230666c25f7dbf708074814733f1dbbf47f57d54c2098fe786903066298fe597c7b2a12d3ca54d7ae06732b700b26996f44787bcab06a1cb6daa30386934972dfdf7d32496f69e905f2aefb85b502a90d8b7f25c2e310eda70c1eec036e78b6455eb1991da236a1a2d6d55f7f0c59719358b15d5f5075144ced861ced03b3a74d85e0613e7eaccd139c7a4b4715a9eb256834e2275b1ad8e1ddff58e3a003ba8950c62036f8da11fdd27330857b697759d1d844bff129fd08dfe92b39567303ac09f33040fb830cb6431a0ca93b70fede97d7b85e7c4fb3b4a075cd142ebe440219ffff03db9271ff66d944f8caffda25dcd46ffcc4882fec79f77a96b5d4c3257c18de3c037a8e4562a93c34d8484a990dd32026817a0e161358425cf9ef57065204020b65036300d77c10d088115e633b1be6b55c7cc754ed2ae441f8cddf22ff5962ec7148036f63e4528887dee28807c93409d0732f9cbed0aab08e67a987bcf5336311ed200329f9ff1bfdd95bf098ba68a319c4343e02af7da01ceed6dba5545eb108606e5a034f6384e4530cf667587c9741c9596c9e96e4747542268d386d02bde1bd83d1cc037a62df2827a9461bcd55baf9e80632d8695b2649d910f925a42784677c5ccc9803f51d466827bced2c3d04269021b000790bb5b5dd3a1b59701053381bd478be39038855d2c23aa7a33cca0fdb79e04d0f6e2db6265b56712e1d175cbcaed34fa0e40396a0934d2d6db5448b6d58dd06f421501241f9de5556d03adcd13209e3556c9e0370221d0fea86cbcd45bd305ef99579afd0ebc203298a57ca5c7bbcee6b6a5bd9039cf15e1a1b26733b257ca52b9252bc3f965b9c62d81bfa362e5f09126f65fe150357272e22e2c90eeb180e0764463af90eea118920d1735fa39d5c3444702e8d190219ffff0377d9f084086d48772ddb912956904841e0e45a42a32694f8a48c40eff86ecc52033ead32efc14079df5e0ce565d37c9f609c656c754d583e889a731e1d9a93653c0365fd840c18c75c365ee58f5f9d7eb59cc57dcf7c5f4fa04adb5e8c6cf9fd4548032fd54ad00d5b2772f443c31052468233d6f8b50c669085e3c82122872640438d03169ad8814a4adcb003285d92c1d8e20e5edf921426f68fdcb817c9ea0c36319a036a212235f7a02a9692c5d3f3aa3299cdafa1a4011aac103cfcb1c4c867a2e07d03ee77de0608aea51f97d9459c33d45025309e2ac5fef06a762f10c134823ce3d403811e7ae4e90945200fa01e5c989dd0c4c01cc0172596d6b5c5d192936d582e8a035c5f499060c4cffcc4944e6cde917eed565a32eaed68299ee6a8c60bb402fbe203be99349368bc7d4ae744139c080c41726ff0d462905a48056c70eb802869f75203c0c47f26fef33854fcd88cde101f6bbc1f8eae564e2e08fbc4069387f0e8f3890399f88b5cf17b1b51d5893b58dcc8a7147b6ce62d6895c9339ed91fd4a465624e0387ecc8fb20ffb0061fb4274b0f612f85ed3f22cd6966b92a37cb68ea96c7ddfa03b8eab55cbf56c46e2db97294919b71f199f51e3f85e71c5ae1490fedf1db50f3034c451501704165dbea683c747fc14fee88f7761463603ef9fcd97f54edd77aa203b44e338c6b6348fb551ed02e7e6f46d102ceb7fd8735f0de9ab560e5d68d906b037ba1c6b4ece1922ba2e723e897920b8b6f55ad8d256296dd343667b10b5d57e903ad66cede9bc5c3d79a0799ff6c62f421efa8c145216a3d3da1b32144e4b87e5603b2ca7181bda5baddbf61e5fb05b3671f4dd09ccbd7efd9666f588332f9dd76dc034fe66ae11faa737fd729519c67fe6ca49c27100cd62ca846e53e2d36a9ef9bea032d1876c3638c261085455978a1ca655a8ffe43883007d90e9603e83637f7dca103bad23f877f92f81924ccf01288a7899c41b23146cd77a7d14e354b89733eaa0005581e03614defb4d06ec20c6291e16f038398d94a41bac18263bca67a71b003500c0448023f52f208ef4a4403b649c4f5101ec2873cb4c992f2db63d60e376497a0787d4a9cc1ad31cc45560a03975a404673e8efae0091049cb2e1eff03eba59d25edc80aa8eb3464ccda66ea505581e03982b3628338f4ba689ef308055c64cca6805a28382ed496c12a51688500c0146c9fd5b8ee40003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e0324e78024719ba6817d244e227d807b6b493aaedf71147f11e5d8c6f63007011bffffffffffffffff03b7d43352b73a736432efad8ec584a23ae142522a0bbf506332c4f1ee52b76cc70605581e03ec85009bc71a3d5632a81d8241568a2addff0b66fc43fe42976a9d4ef007011bffffffffffffffff05581e030160449808eaaf832727d3c4e414b0b7791ae30f808dc2b440c857d1a00403031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03252398a1640b1b793ea074c121c402211addb92f8092a6d2aa6021c2e007011bffffffffffffffff03a849370f7dadd194b3dd6316250cffb35a2b1036953847712d434fa09f0a76680397e4c2810a8acdad5b4d94c38f619c7f0832fdb31945db79ee5e348c05d2f98b0219ebc503ea6686e54b23041c09b8437469fa3885ce730f079d33362d81946bcd3b2c04cc03422152b6041d24e2b0906d06c2e0bac21587f78bed3879fbffd5267b5ec9f46a03d9cb3b973f585199352068155680f62c36935a2ad548d5f68fd59d85b6d1482d0377eac92121a52e90bb9d36c7732807abdfd10bf05eceba4c1cf6bdc8e64fdcd10219ffff0309f781880b10f785fa3a21934451e66a68b480a8af89a43c985ad00820e9a695037cb410e4cb0d3b3b1e4263d06ba17c15a395d13162eadd4e852436446163243603192478c1fc52fe214573dd76844cdaf991cf530a487a498010c4f95c7e23c31403dd1b33643334cc3ea710e24a891a65eeb9b76860ab1b3f5fc879ca20b0ee9f3e034c9e7b3a244575b3d267489283689899c38dce2e441070a0519228998db154d003b5955bdd7943dbd3249d9571e542f5d8dafdf5ed2926c9e95958f140de7cf5c0031d952185375b859b03b50fed88bc72629c20a47eb0c6bade5cb8f198f8d00f47037b6bcea6589feb57e7c1576535f4f5451a30ab11e05c638e59cf3db2187bbb5703a8e939c56517fab3ff0be8df8de09db6de7113ff29d9939e931550615de0701403079ce3bd89991242b38062e3874f82355d23b38d1c292094d5404f4ba04c878003bc450547e07977252a4616aa6eb19dab0ee2c552c3c4160f2070d24349a50696035242bef60fa1d8719d59595e870417bfaf0f72c168af86efdf449cde97c450bb0365fdd62d1b7f9718bfcff588e446b83532207c87228745944790ff13ff074a4e03830480de07096653fbc30301ec41cfc28c061d511af80ed9915c016f9ec265920219ffff039149c32906b11155a2449fc4b5b22fcd1483168891e33e2453039efe81e77dcb03909108faf73533fea439a8ea0eab3d24157c591a5ab008d9ad2482f96ff213e6035d8d9c2f0c2a35ccc295571ffc8b41f6343027eb14277e5dae423eea20de2cf9037db6936827a9c87b1c82f1c2a212c1cea23e2b1f3c4c31017894aa5a95c07d4c03772d7f12c365ef89e768ddcf9722c68570b058e55fc5023b86d430644c66272803b0c09491e9085597724051fe88c04ddbdc370f9fb7d5816f98302a15680ef60b0219ffff037dac2e4e4628bc1957b5b29cb9d430ef4902aa8cdff124b0f8a7783f9322cbb003ae271efe445f3ce197c0df21489eb9c2403cdb1b11e3d314cd951c6e9e05de130373d22b20c5b32531c4017b5c12cb475ed20759e2eaf0d630e9d762a8a21b612103c8b6f1d75e6f170f9fbacb5e0244f666f34e97784008029739ae4cff34c1983903e330497113f40f88ec727b0172681f54908f279f8216945c53301f8fae3b328b03321385e1f1ea3a91193664296ab0c2a7726161caa3c17935451affb41ba0082603237f5a40ff7e1ee40bef7da4fba7b1e3230ccc53f73020e69302fcc7c3c8e4dd03d6d79a52bfa9e2860f7d4a91481e44d96dc75cb7df947c907b75a093aad924c40355c026da44189039ff37a9059ca37debc6d28d8e5b42aa0dab8d34972827306e031ef2d665c68ca84d5a820c0f710fa400da526766519397bb94b2f380941c863803046503e6eeff5783f9777b9358da9ba323cd4ff81fdc6643ee1e08d2fb670b7703be557815f053fbe78aa85d01d491931c88857543708c4d5f3c891d2b97be300a03a9a5d0887a89c15d4a5a84c06ffbd20f4884a5aa0ea12fbc5f81aa34d483ad3e03f510f2761a4b66a099ece71fc7aa964cb582d6fcf0b05c3da89500f2f9217a0103cb10066b34d715dd0a592a01140f9d9057182c345f586a5b08a38d2c5ff3152803cba20b3d59202e6f6970e5357655a4278db6c1e660d000f4877b8e1628f0fcf803e0b0f040e8da83b5615a1af52a61a1f027894cf1af4e6e1d96551b70efc4148203d0687bc8613a2d711c0ad42e7a9c6557bfe6c1368fdf0ab50146d5bf6e14c28f032a7288ff242ca88d49a148bba9b6187bfef0fb803e261448a5c06edfd186f23303c5279d77dba88af8ff64b7d81239b9c83711aaaaa387ade5c4b5cab5ac5f81870308a9d957d7afdd2c0cf51fef328ebd7fd85954035ff683f6eb17dae11251a3a805581e03118795a4239e89625569180fda375b348d8b1c80499f4b24b93035df500c14470f1237d19eb40005581e03e16873b4fe3b025d325e6b3d2598d2e841f325536bbed64d9754a058000c181a4653d9b24a4b3003165422731849561e547b7d17201d3c5e9b7425a818ed569a47b6a96cec601c2f05581e03ca4caed82493bf939c4a3077def4b0ff8e269449b9790dbaccca58b0a00c0246b8a09ee3b00005581e0385a4666ec7089abe5405555969caee57ac6162017804b622a323d5e2d00c144705ad083e4b020003b746c83d18d46f19062b1d49649cb49a280cf1806d666c2dea5827330f3e5b7704592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032032e2bc0c0ff22609eac8f10e1c8736f3e780dcb85055451e7ac674e2667ce4b570058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56304a02fea58ead8998a2bfd00058210376f925486c6d0430e1ee8e5bdb91b87fe802bea0b6a1bea169a2d14165fbaf604a02fea58ead8998a2bbe800582103e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af04d11d2de895f2adf329160dd1e6c0058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5820dd0f5c1552859c2867a055ad8b2b4ff31a1b3eb6705806bef5ad064591a8ef6f005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a85357f5e89f3eb34dd8c56d6d829857c7b873e32402184400582103f6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70410100582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5ddb0000000000004017c68ab06486fb00000023fab32d75beb14c590a120058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f547c978e7d9ee04669efbae39eafc71bf2ab5aba280218480219b45505581e031bdf97edf56f849a7e5c8fd93f23d1938fc79bf27eeeadd4cc777087100701192c1d05581e03064da61955d78d05d41cb270cf87c60780b81be7aa80404c6a41034cc0040a0219127d03f729e02ccb52da54291aa2ac613ca15d0f4b2b48ae5b0644bd6b6501314ce165035d455553107707eeeeb35769764cb3168c66bdb7d572314c3205afe9da67a6b0036db199d5827511c3bd96e528a0f201e05439adf730192e6d78d9f774df1fcfb903406353a0338dcacbbeb69cfb518bfd21cd0bb9e879c82bb2c369b93cd7048b220333be833c82d3cc8e8966f9e99de5a4f98a63f6cb78f9c96eb98a4da78fa9a5e503965a638e81f97d1b7083d26bcc4854b28c80169d2e2c49b122f89502a7d09fda034877954c20c64812ae7b1f9b965ae7e1284f9a401ef7905b3239fea1203f03a203354604bde03374ce07e96c25ccc46e33bbfedf4a1f2bbfffe92d226c6d4d4b00034b7dcf615617bfd33a11512006b6dab6ce2115cbf91ecf8da3aed62b53fb9bf60219ffff0352ef48d79f1c5d80fb4a50f651363038005624737804fb37f88c19903ab20a240219ffff03760869cadf83edf4a8954a3c2f5aab79a360cd287231e33fb85250bac281071e031a3d1bb505164e0ccd9921a7418da1ac41de9f4638ab0acf3d5d21959a05d0770347533340b54a085a269206137e57ee27a2f77c3a7aaffdcd2c6f2a4d03e5ea3d0358a328daadd2c1bf838bfbdc1a99376e6c51cc600c7ab01676118704c71608f303d0be6a88a2db887369217606e5ca3588a33b5718c4755184545e19f8f610b08d039c7de23215807fbdb4d1bdaf46f070a08c60470b084236ccd9b1a0512d83d34d0311733d18e7f329a2b49020efee2b61974bc2658d4e2ea8ff441f466dcc7e62e203f654c6b8268b870ed020574ea004860a8035a79a0f6226ba0fffdb6baa17cfb103003d1b59ef6de18234479c2f44171627d83425fe0bbe9e506e2c8e1b4bb551ef03d868adb5da311cf9914f99de90737b6d1462237db4b620367f03a70d4496174b03793b619e19e05b7e39778aa14bbebfee1f47eb879e754e7ac3b498fbe3b76f440365c72395da27598b58d65ab2b09c2f54039172b58fb27a19a657df5fef83903a03044ab4e257842eb4b2b221b9934101a031aed7053c0f3a897808fd6725e4f2070318edbd6b5f86212f56bcdbe835d824fa4386942041b77539e0592ab74721ac550219ffff03e0dde60c18315283735753a5765c03e9727ec47ef7485d8c58bc1111165ed2fa030f0e36638910a4211f0edc0b90fd4d73e05d5ee10423075942371de0364ef39803415f53c2b708ae22ab66c2a8603639c830126cde553eab32b045c56bdec13163035b315f076ba06f067154e737c81503c1f73d7601627515560e239eeabc77a73803b9e5211e77f8b7c1bd46cb7a9a9a4c7466eeabe39f53a3ae826c8082b411ce320358158983d8dec5fb4fde37efeaab3aca0e196d26ca4edead0b9b5ffc020e5dcc03555db2a22bff354acf1623062fa3b4ca6495952c159b59daa26300aba7a719b10219ffff038e06194af9687c543b82d0622817a695634e6dc1c7bb183c149e5dc525f6b42a0334ea124b7d7a1d71dffe4c78d5f0031ce5df0ca2bf185bf1ac849ab1d1e1b6f2039106a1fbbc428968a1cea01197e3101f2dc2b17c593dee1fbe7847a6cc9a6c2903c3429eb0cb7afc8814319bad7f844188c7fe488d817f099e8bd1b5bf910587bd036d36904d052c6cce69f3f0edc353ee7937c9cc83e1bbb47d9f84d1b8845bd59403f51b2d97b112160ec571c4bf5c755673e4be28e43ed8d3dd6446031a9c791f99031975818d51188da251ae76289d6687806e9d3e1e8395cf2a17a06e6d0cb8c034035890a03998cb45dd6399de1b8b1808df9ad4a73510cb346d3bce1df6feab202f03093edd1da2d5c239b5d417c7e5c14f56398ae70850b5b00f8d8e85302720fe3a03bc2b58e9d7f01e0b90da66859762667cf0200589a8dfb24911c36e5834bae641034c49661047484458d2e2080a4814f3955c48d96b138803d611b4b1a6795e7aae03e41ca0da3d5fc01076eb2e41098f49040dec8d2e77979bf127cb128e00ea0eb903eca7c9dbb70820ef5a817c5e994f7f2b9ebbe93c689b54be9998e88d6481bcec03aeb08f2611fad4086e55ffb7a52dc63f768f120bd54ca22abcffd743ffb5b35103cf7417dfd3c9f6f1afc8efaf28cd8955e13881cf25d0c7bcd502f7d0d1813a03034be648a6e802319de9fcd26afe36b99dbadca575e29e31124377f7098dd23494031938150012ef8043fd8af7f276fe42b5e8efddc45609a2fcbd7c055b87c7fdda0333f244cc79610a60334c057f56253d2f25f0e073725e5a9636dab1c5b5eff0b90316a98b8fadecaca8ce3f3ebd65e6a49052c2392842e2ba28921c9ece4e5fc171035dd06d0c72b470e97e70ab88d9ed20aaab48c61dee8f8a65dfefc8c5a0d1465203cd6293b9f3a605c4ac1ae3a18aeef293d6bbdc7e85f11f0a3d13cc8425671bec03272fcd8f20989403f954e79cd6dfb00038b549c536f21c8ad9e7072b9f9a8e4203f502f293109bd1a464457b78958185c0e75249f46e075443403f265082b1949b03f0d8694cf22e8abf29c0af96a479867ca0aa9aff092901cacf2afcd2e44416f103fccfee60f3ebd90f84ba550c26b5b7623a4d02461a7b728242dbabeae219183703d34b6ac172037cfb9eb84b9c553db8ad7acd3a561b3d9f72a6f21f21c8d0658a03de37529b3805fad118ca94c107605d73bc617e3e36be916bac82a54fcc752d3803b1c64329ca5cf17b8acb1301b92d5f6986290fca8ed97ede7490453a649fdd5a03601b010ca47cb37775be34112720a4747d60c04f8a4efefad046228fd9088266036bf7ec123e12251df6bb62c7f3709174ddc12734d901800df2a0220ce6ccb09903d94f93cc2c98342552a7cf9da5de8363c3495276187e600bd2214445b45c986f0351f476988a52fc2036715d4cb7a7f6e6f5b8ecd908fa4dabd056053fdbbebbff036a69457617f052f6c314ad58a1252584471cc3517731dba788489c37340a40bc035091d67560d58bd83a44b8aabab38b9b40fb5c0012660c25b3527c94f3aa377803ea1ea0042e429abe6da9c8648a2dcab87616916a3dd3c8382e4c83c1d71abd6303c0634c4a536f79fcd978c194df4aaa42f87984d024166bdba901cf9b92b7ea950375c9f7d5df4f9539366c19f6e775493167ac73f3c5e5fab00f724f858f1f6ccc034929d1d974390625fe05c7f30a33838fa253170113565890731cdc441a1fd5ef030f222b018413a0a7e333cb13a95411abefa1c6c05fde6305196968191610c63f03deb28ef6156678bdbcd2c2e32a8c79394f54cf8fdee7794ef025d24d90fb251d0364820756fd2f652c8e947d5b620fe8c7e8dff48fea511ea960c493359c848df30338e45c0f9a2af4a4cc7e27f89b95dd275104c872949660e70b93243d4a61a82203ae3d96227824904653b8db0fd750af90dca608d6cad7fb4b940258e2f57f4a5a05581e0387b4cfb8c83a905655f240502e70e3b2909fda2bdce2ed19c3880dec300c0147458cee871a2550030209703c1fbfb02c28ddd6cbc7a824c55779233cc4c61b9e7dbc31215833a17f05581e03093d0b36ee014057365084f2a3ff25ce125846452c2397664f935587a00409045903416080604052600436106100435760003560e01c80633ccfd60b1461005c578063893d20e814610066578063b60d428814610091578063d5e3af451461009b57610052565b36610052576100506100c6565b005b61005a6100c6565b005b61006461014d565b005b34801561007257600080fd5b5061007b610248565b60405161008891906102bc565b60405180910390f35b6100996100c6565b005b3480156100a757600080fd5b506100b0610270565b6040516100bd91906102f0565b60405180910390f35b6601c6bf52634000341015610107576040517f18d5fb8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b343373ffffffffffffffffffffffffffffffffffffffff167f5af8184bef8e4b45eb9f6ed7734d04da38ced226495548f46e0c8ff8d7d9a52460405160405180910390a3565b7f00000000000000000000000076f0aaa64b0e4d6e4a783d4842bf4ceed50c032773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101d2576040517f96baec8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610218573d6000803e3d6000fd5b50477f430648de173157e069201c943adb2d4e340e7cf5b27b1b09c9cb852f03d63b5660405160405180910390a2565b60007f00000000000000000000000076f0aaa64b0e4d6e4a783d4842bf4ceed50c0327905090565b6601c6bf5263400081565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102a68261027b565b9050919050565b6102b68161029b565b82525050565b60006020820190506102d160008301846102ad565b92915050565b6000819050919050565b6102ea816102d7565b82525050565b600060208201905061030560008301846102e1565b9291505056fea2646970667358221220d384a7ecee5ca568b41492c8e169cde9a87abe68249e56625b211f299d4c310264736f6c634300081300330605581d02b950ab18a89e8300729bb53f0938e0ca38b1cfdcde0e6bbe82ddbffa0f0147d362ef4c22c00019034105581d0253943dbf37aa908598bda9f17283c219485cf3cf7431adb112039c8b04020307be01e7e7206fe31ecee91ad75dada65ad6ba433ae647a1b9330469f7c6677c03709eb5dda2147c4fb819a20da7a29219edf23b78b89a76895cb5bb987352df3005581d02a3a8e5e1d02de499b16be70659fdaa3a81cb719e85f5b659939dd8e107011bffffffffffffffff02185105581e032d59f452336630b31eab975a84c40a010972f1dcc135615791c90ed9f00c0e4715b47357e83c000336518780e68cf08045d3ca17941b2125c9db0de629348357111f2712be514cd905581e038d133ccd7ac7c0f63242fd7e2f36d16210a3ae080e7167889f713e94e00c0347287bbee6443fed05581e0329386a04129d5ba38fecb53820100a7b595185f4974f04d045f31e5b300c024701c0b2f3537bc803fdda922db3b9b498a9b3bec76cd9ed4b36abad2b7b8033b8b87e2bf3b1eb2e8d02195dc503c96fdaffcda6da8390b07af446251a49db065aeafd85701a9174140aebc76279037fda936b8498b4db1f0cee95e8b9fd8cfb8dbaa9b8be4766970e9561bc22fc08033d8c352e618c5267db45660dc9df2e697e7a27ab5d629b938cd72059478c843703e181bdb1e145c599ec670fb8909f05813743897039600440a3375ff4a8016dc103a1022f9b276ab910ddf6fc0353513c88eb2d6e69a656854faee6c8f5eec9502e03572308c78ec77c939a448f659d7666c97a903b15e39a7487920b4b0796fcad4a032638dd0d459327755b3d5d374c775d42000e5ab607074de28ca825ea1ba490ec0351c22894dd2b12dd594bb1cfd77215f14840b51a7436a2174ea874320dde0f070219ffff031272545e0cebc5151309583fc9aca0994f6ab310729164428c59b0c537411c7b03b5e65ab14419be567bb1b87a849640fc310b8e8498851695d04a1a099b26b341031e8e3e452236994c0915f3e6244c15738937587fae7bc7deefb93df2d4064d99036269e60cd15a69f6c0638bbe55f33590df4adbbcfcb709f66779c43844770b720219ffff03566cd4f1b5dbd8204a7335d1c62ed56884b2f612ff6091da34327260552dd0dd0219ffff037f3ac350f2a424d03cd97502f87617a85de9c2e81d7c5a6dbb85e801899159c603effe67b2069e6746e4e5647aec547b2727a238968b12799ea2308683ba621a060300e32a7265f3dd254b1863ad462b2e34a4f50dbf9db04cfdf45e475ea3b6f650034b3bf06c556d2b6d70277c242dfc4e4fa1a121267bb0b1c9c44de50b7827a6e503ac39b3b18087c905247a5cd8d1691707b7321284cc2f415047f00abea9e4af6503e259c2ab569c24af5bdac2c74e1f15c38dd04bb7cf9019fbbd1776bd635ffbd203127b652a88c233bd49ff6d9073cdc9aa59faa5703e40793d43c1ad2f92e737e50388927e8bca908ec26b252d00cacaccb33eb6ccd9d1ecff467f13379a78f4394703d4794a74aca5d14b9ca11c1ea523cb665b6c0e8ea9fd0b15bae56061251a1ebd03d6eed844c9fde171ea61983d19dd50b2e36a42de8febf69385f84ecd6f33f5be0354cb44159ce8a66e5b1b7212ebcb5ec1dd528ddc061a459d9b88937fbc1b4fa405581d023641145b1f90923e5a07ac8d368eaac61c4c16d707562a585adc54190c024737f16bda9f826a045923c06040608081526004908136101561001557600080fd5b600090813560e01c80630d58b1db1461126c578063137c29fe146110755780632a2d80d114610db75780632b67b57014610bde57806330f28b7a14610ade5780633644e51514610a9d57806336c7851614610a285780633ff9dcb1146109a85780634fe02b441461093f57806365d9723c146107ac57806387517c451461067a578063927da105146105c3578063cc53287f146104a3578063edd9444b1461033a5763fe8ec1a7146100c657600080fd5b346103365760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103365767ffffffffffffffff833581811161033257610114903690860161164b565b60243582811161032e5761012b903690870161161a565b6101336114e6565b9160843585811161032a5761014b9036908a016115c1565b98909560a43590811161032657610164913691016115c1565b969095815190610173826113ff565b606b82527f5065726d697442617463685769746e6573735472616e7366657246726f6d285460208301527f6f6b656e5065726d697373696f6e735b5d207065726d69747465642c61646472838301527f657373207370656e6465722c75696e74323536206e6f6e63652c75696e74323560608301527f3620646561646c696e652c000000000000000000000000000000000000000000608083015282519a8b9181610222602085018096611f93565b918237018a8152039961025b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09b8c8101835282611437565b5190209085515161026b81611ebb565b908a5b8181106102f95750506102f6999a6102ed9183516102a081610294602082018095611f66565b03848101835282611437565b519020602089810151858b015195519182019687526040820192909252336060820152608081019190915260a081019390935260643560c08401528260e081015b03908101835282611437565b51902093611cf7565b80f35b8061031161030b610321938c5161175e565b51612054565b61031b828661175e565b52611f0a565b61026e565b8880fd5b8780fd5b8480fd5b8380fd5b5080fd5b5091346103365760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103365767ffffffffffffffff9080358281116103325761038b903690830161164b565b60243583811161032e576103a2903690840161161a565b9390926103ad6114e6565b9160643590811161049f576103c4913691016115c1565b949093835151976103d489611ebb565b98885b81811061047d5750506102f697988151610425816103f9602082018095611f66565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611437565b5190206020860151828701519083519260208401947ffcf35f5ac6a2c28868dc44c302166470266239195f02b0ee408334829333b7668652840152336060840152608083015260a082015260a081526102ed8161141b565b808b61031b8261049461030b61049a968d5161175e565b9261175e565b6103d7565b8680fd5b5082346105bf57602090817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103325780359067ffffffffffffffff821161032e576104f49136910161161a565b929091845b848110610504578580f35b8061051a610515600193888861196c565b61197c565b61052f84610529848a8a61196c565b0161197c565b3389528385528589209173ffffffffffffffffffffffffffffffffffffffff80911692838b528652868a20911690818a5285528589207fffffffffffffffffffffffff000000000000000000000000000000000000000081541690558551918252848201527f89b1add15eff56b3dfe299ad94e01f2b52fbcb80ae1a3baea6ae8c04cb2b98a4853392a2016104f9565b8280fd5b50346103365760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033657610676816105ff6114a0565b936106086114c3565b6106106114e6565b73ffffffffffffffffffffffffffffffffffffffff968716835260016020908152848420928816845291825283832090871683528152919020549251938316845260a083901c65ffffffffffff169084015260d09190911c604083015281906060820190565b0390f35b50346103365760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610336576106b26114a0565b906106bb6114c3565b916106c46114e6565b65ffffffffffff926064358481169081810361032a5779ffffffffffff0000000000000000000000000000000000000000947fda9fa7c1b00402c17d0161b249b1ab8bbec047c5a52207b9c112deffd817036b94338a5260016020527fffffffffffff0000000000000000000000000000000000000000000000000000858b209873ffffffffffffffffffffffffffffffffffffffff809416998a8d5260205283878d209b169a8b8d52602052868c209486156000146107a457504216925b8454921697889360a01b16911617179055815193845260208401523392a480f35b905092610783565b5082346105bf5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105bf576107e56114a0565b906107ee6114c3565b9265ffffffffffff604435818116939084810361032a57338852602091600183528489209673ffffffffffffffffffffffffffffffffffffffff80911697888b528452858a20981697888a5283528489205460d01c93848711156109175761ffff9085840316116108f05750907f55eb90d810e1700b35a8e7e25395ff7f2b2259abd7415ca2284dfb1c246418f393929133895260018252838920878a528252838920888a5282528389209079ffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffff000000000000000000000000000000000000000000000000000083549260d01b16911617905582519485528401523392a480f35b84517f24d35a26000000000000000000000000000000000000000000000000000000008152fd5b5084517f756688fe000000000000000000000000000000000000000000000000000000008152fd5b503461033657807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610336578060209273ffffffffffffffffffffffffffffffffffffffff61098f6114a0565b1681528084528181206024358252845220549051908152f35b5082346105bf57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105bf577f3704902f963766a4e561bbaab6e6cdc1b1dd12f6e9e99648da8843b3f46b918d90359160243533855284602052818520848652602052818520818154179055815193845260208401523392a280f35b8234610a9a5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610a9a57610a606114a0565b610a686114c3565b610a706114e6565b6064359173ffffffffffffffffffffffffffffffffffffffff8316830361032e576102f6936117a1565b80fd5b503461033657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033657602090610ad7611b1e565b9051908152f35b508290346105bf576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105bf57610b1a3661152a565b90807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c36011261033257610b4c611478565b9160e43567ffffffffffffffff8111610bda576102f694610b6f913691016115c1565b939092610b7c8351612054565b6020840151828501519083519260208401947f939c21a48a8dbe3a9a2404a1d46691e4d39f6583d6ec6b35714604c986d801068652840152336060840152608083015260a082015260a08152610bd18161141b565b51902091611c25565b8580fd5b509134610336576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033657610c186114a0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360160c08112610332576080855191610c51836113e3565b1261033257845190610c6282611398565b73ffffffffffffffffffffffffffffffffffffffff91602435838116810361049f578152604435838116810361049f57602082015265ffffffffffff606435818116810361032a5788830152608435908116810361049f576060820152815260a435938285168503610bda576020820194855260c4359087830182815260e43567ffffffffffffffff811161032657610cfe90369084016115c1565b929093804211610d88575050918591610d786102f6999a610d7e95610d238851611fbe565b90898c511690519083519260208401947ff3841cd1ff0085026a6327b620b67997ce40f282c88a8e905a7a5626e310f3d086528401526060830152608082015260808152610d70816113ff565b519020611bd9565b916120c7565b519251169161199d565b602492508a51917fcd21db4f000000000000000000000000000000000000000000000000000000008352820152fd5b5091346103365760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc93818536011261033257610df36114a0565b9260249081359267ffffffffffffffff9788851161032a578590853603011261049f578051978589018981108282111761104a578252848301358181116103265785019036602383011215610326578382013591610e50836115ef565b90610e5d85519283611437565b838252602093878584019160071b83010191368311611046578801905b828210610fe9575050508a526044610e93868801611509565b96838c01978852013594838b0191868352604435908111610fe557610ebb90369087016115c1565b959096804211610fba575050508998995151610ed681611ebb565b908b5b818110610f9757505092889492610d7892610f6497958351610f02816103f98682018095611f66565b5190209073ffffffffffffffffffffffffffffffffffffffff9a8b8b51169151928551948501957faf1b0d30d2cab0380e68f0689007e3254993c596f2fdd0aaa7f4d04f794408638752850152830152608082015260808152610d70816113ff565b51169082515192845b848110610f78578580f35b80610f918585610f8b600195875161175e565b5161199d565b01610f6d565b80610311610fac8e9f9e93610fb2945161175e565b51611fbe565b9b9a9b610ed9565b8551917fcd21db4f000000000000000000000000000000000000000000000000000000008352820152fd5b8a80fd5b6080823603126110465785608091885161100281611398565b61100b85611509565b8152611018838601611509565b838201526110278a8601611607565b8a8201528d611037818701611607565b90820152815201910190610e7a565b8c80fd5b84896041867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b5082346105bf576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105bf576110b03661152a565b91807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c360112610332576110e2611478565b67ffffffffffffffff93906101043585811161049f5761110590369086016115c1565b90936101243596871161032a57611125610bd1966102f6983691016115c1565b969095825190611134826113ff565b606482527f5065726d69745769746e6573735472616e7366657246726f6d28546f6b656e5060208301527f65726d697373696f6e73207065726d69747465642c6164647265737320737065848301527f6e6465722c75696e74323536206e6f6e63652c75696e7432353620646561646c60608301527f696e652c0000000000000000000000000000000000000000000000000000000060808301528351948591816111e3602085018096611f93565b918237018b8152039361121c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095868101835282611437565b5190209261122a8651612054565b6020878101518589015195519182019687526040820192909252336060820152608081019190915260a081019390935260e43560c08401528260e081016102e1565b5082346105bf576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033257813567ffffffffffffffff92838211610bda5736602383011215610bda5781013592831161032e576024906007368386831b8401011161049f57865b8581106112e5578780f35b80821b83019060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc83360301126103265761139288876001946060835161132c81611398565b611368608461133c8d8601611509565b9485845261134c60448201611509565b809785015261135d60648201611509565b809885015201611509565b918291015273ffffffffffffffffffffffffffffffffffffffff80808093169516931691166117a1565b016112da565b6080810190811067ffffffffffffffff8211176113b457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176113b457604052565b60a0810190811067ffffffffffffffff8211176113b457604052565b60c0810190811067ffffffffffffffff8211176113b457604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176113b457604052565b60c4359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b600080fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b6044359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc01906080821261149b576040805190611563826113e3565b8082941261149b57805181810181811067ffffffffffffffff8211176113b457825260043573ffffffffffffffffffffffffffffffffffffffff8116810361149b578152602435602082015282526044356020830152606435910152565b9181601f8401121561149b5782359167ffffffffffffffff831161149b576020838186019501011161149b57565b67ffffffffffffffff81116113b45760051b60200190565b359065ffffffffffff8216820361149b57565b9181601f8401121561149b5782359167ffffffffffffffff831161149b576020808501948460061b01011161149b57565b91909160608184031261149b576040805191611666836113e3565b8294813567ffffffffffffffff9081811161149b57830182601f8201121561149b578035611693816115ef565b926116a087519485611437565b818452602094858086019360061b8501019381851161149b579086899897969594939201925b8484106116e3575050505050855280820135908501520135910152565b90919293949596978483031261149b578851908982019082821085831117611730578a928992845261171487611509565b81528287013583820152815201930191908897969594936116c6565b602460007f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b80518210156117725760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b92919273ffffffffffffffffffffffffffffffffffffffff604060008284168152600160205282828220961695868252602052818120338252602052209485549565ffffffffffff8760a01c16804211611884575082871696838803611812575b5050611810955016926118b5565b565b878484161160001461184f57602488604051907ff96fb0710000000000000000000000000000000000000000000000000000000082526004820152fd5b7fffffffffffffffffffffffff000000000000000000000000000000000000000084846118109a031691161790553880611802565b602490604051907fd81b2f2e0000000000000000000000000000000000000000000000000000000082526004820152fd5b9060006064926020958295604051947f23b872dd0000000000000000000000000000000000000000000000000000000086526004860152602485015260448401525af13d15601f3d116001600051141617161561190e57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152fd5b91908110156117725760061b0190565b3573ffffffffffffffffffffffffffffffffffffffff8116810361149b5790565b9065ffffffffffff908160608401511673ffffffffffffffffffffffffffffffffffffffff908185511694826020820151169280866040809401511695169560009187835260016020528383208984526020528383209916988983526020528282209184835460d01c03611af5579185611ace94927fc6a377bfc4eb120024a8ac08eef205be16b817020812c73223e81d1bdb9708ec98979694508715600014611ad35779ffffffffffff00000000000000000000000000000000000000009042165b60a01b167fffffffffffff00000000000000000000000000000000000000000000000000006001860160d01b1617179055519384938491604091949373ffffffffffffffffffffffffffffffffffffffff606085019616845265ffffffffffff809216602085015216910152565b0390a4565b5079ffffffffffff000000000000000000000000000000000000000087611a60565b600484517f756688fe000000000000000000000000000000000000000000000000000000008152fd5b467f000000000000000000000000000000000000000000000000000000000000000103611b69577f866a5aba21966af95d6c7ab78eb2b2fc913915c28be3b9aa07cc04ff903e3f2890565b60405160208101907f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86682527f9ac997416e8ff9d2ff6bebeb7149f65cdae5e32e2b90440b566bb3044041d36a604082015246606082015230608082015260808152611bd3816113ff565b51902090565b611be1611b1e565b906040519060208201927f190100000000000000000000000000000000000000000000000000000000000084526022830152604282015260428152611bd381611398565b9192909360a435936040840151804211611cc65750602084510151808611611c955750918591610d78611c6594611c60602088015186611e47565b611bd9565b73ffffffffffffffffffffffffffffffffffffffff809151511692608435918216820361149b57611810936118b5565b602490604051907f3728b83d0000000000000000000000000000000000000000000000000000000082526004820152fd5b602490604051907fcd21db4f0000000000000000000000000000000000000000000000000000000082526004820152fd5b959093958051519560409283830151804211611e175750848803611dee57611d2e918691610d7860209b611c608d88015186611e47565b60005b868110611d42575050505050505050565b611d4d81835161175e565b5188611d5a83878a61196c565b01359089810151808311611dbe575091818888886001968596611d84575b50505050505001611d31565b611db395611dad9273ffffffffffffffffffffffffffffffffffffffff6105159351169561196c565b916118b5565b803888888883611d78565b6024908651907f3728b83d0000000000000000000000000000000000000000000000000000000082526004820152fd5b600484517fff633a38000000000000000000000000000000000000000000000000000000008152fd5b6024908551907fcd21db4f0000000000000000000000000000000000000000000000000000000082526004820152fd5b9073ffffffffffffffffffffffffffffffffffffffff600160ff83161b9216600052600060205260406000209060081c6000526020526040600020818154188091551615611e9157565b60046040517f756688fe000000000000000000000000000000000000000000000000000000008152fd5b90611ec5826115ef565b611ed26040519182611437565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611f0082946115ef565b0190602036910137565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611f375760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b805160208092019160005b828110611f7f575050505090565b835185529381019392810192600101611f71565b9081519160005b838110611fab575050016000815290565b8060208092840101518185015201611f9a565b60405160208101917f65626cad6cb96493bf6f5ebea28756c966f023ab9e8a83a7101849d5573b3678835273ffffffffffffffffffffffffffffffffffffffff8082511660408401526020820151166060830152606065ffffffffffff9182604082015116608085015201511660a082015260a0815260c0810181811067ffffffffffffffff8211176113b45760405251902090565b6040516020808201927f618358ac3db8dc274f0cd8829da7e234bd48cd73c4a740aede1adec9846d06a1845273ffffffffffffffffffffffffffffffffffffffff81511660408401520151606082015260608152611bd381611398565b919082604091031261149b576020823592013590565b6000843b61222e5750604182036121ac576120e4828201826120b1565b939092604010156117725760209360009360ff6040608095013560f81c5b60405194855216868401526040830152606082015282805260015afa156121a05773ffffffffffffffffffffffffffffffffffffffff806000511691821561217657160361214c57565b60046040517f815e1d64000000000000000000000000000000000000000000000000000000008152fd5b60046040517f8baa579f000000000000000000000000000000000000000000000000000000008152fd5b6040513d6000823e3d90fd5b60408203612204576121c0918101906120b1565b91601b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84169360ff1c019060ff8211611f375760209360009360ff608094612102565b60046040517f4be6321b000000000000000000000000000000000000000000000000000000008152fd5b929391601f928173ffffffffffffffffffffffffffffffffffffffff60646020957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604051988997889687947f1626ba7e000000000000000000000000000000000000000000000000000000009e8f8752600487015260406024870152816044870152868601378b85828601015201168101030192165afa9081156123a857829161232a575b507fffffffff000000000000000000000000000000000000000000000000000000009150160361230057565b60046040517fb0669cbc000000000000000000000000000000000000000000000000000000008152fd5b90506020813d82116123a0575b8161234460209383611437565b810103126103365751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610a9a57507fffffffff0000000000000000000000000000000000000000000000000000000090386122d4565b3d9150612337565b6040513d84823e3d90fdfea164736f6c6343000811000a03ec8da284b0ee0d2f26652620f8a16d132bd1993d2d9b84c83441028dbdc4087803b17373f0513cab74314f88f3fdcaa1774730f6eaa76c5a7f639b392ec6319ee403edbd9813b369ababee27b1625288142658fd502d9526f4ba513af2d237006ffa03254f5f56b69147d207638ba2929cbc243d0f4081e5976982430d4aa74cf033de03dd9da7fb73c474638242dd273cb3d2da45cf67127f9b252b6c76aba61d347211034e062d576cce29fd28a334577b127947e484fd54875a1559f4d27d4bb4e66699037782340f82bcfb763b42bdd030306f8678dafc885d327d3978ade5d1cdb9e8ad033cad38bcd2807172974c4562e33e77aa6de95c1ff98659a6d999664e54b4f122035d39ee07a078e1187ba144b17e0c727b142e5e14d00449e786f97bb7fbe710ac033f4624f2eb74dd3023d03424185c328a4d9b176d9ba99e374c4bd7ddb978dfa70365743f1ad8e1fb5186873323d7458eb44714edc3c456426bd42a3a8d99fc55c50365734f9c116dbeb237f632080dbeccb7db6c7da39bbd52665149f4cce836618d036d8f809b3610ea871c40bdba9b6286739dfc004528b89deb8c90bb4a607c096003c15450cb31961cb586a21904fd2180509b5a44bb1b64309941a1ccc9fe72c96203e774873aa03246c5ba824032049d3b2992ca103a618d41aebafa61b5a3847934038d2ad66b01bb32e67006dde570e5c93239fd52e8b441406bbdb48608122304180319557b40dc97fc26e8dc1ed502611952840334cc767e55c3b4099c3ab97e0f80038f1653a5732c60f8075d6b4b4947a37cf95eb9ca7e86ac4e75e59ac7e80c09160346ac26c2f613198993ec9e47ebc78b61fa79239057c3f6051cba9bb8116c49ea0303fe732a2c1d66f9152731edb17143c15c9449e5524e44333f600e8405685dc50379b1ad70522492778d24262651a69a9594e4101eeca0819526daceae866e5d83038b9e17e377c38932d593d2be16d73378607a6bd626d9e7af1ed5452ef3e65831030764633d12f369fbf90a78e884fb6738f805daf08ed90a997143e2acae974ec8032a239f47abb815099c7dbc557dba02a3e37598db5dfa8d86f6009c3eae985a1503fb95df6d3477ea67064a663d5178f78cf69bb314b5a224577820d22a3e63d42103f1326e7a3fce812b206ca19ae2e0e37e1ba29e24d85a6957d234794b7b8592c2039a857fd6beec1907bc1e135f23fc175f04833dbca189b98c0760601aa4eb2b4703fc0f11b1afc10b3a1d8480026d79558ff4dce5a8db8823ec442837c5db0cfe8503eea6200caac22d134cde0f205ab152fffdbf3a7646696970ba507345a3599103034cb6e5a7f7cf84907146f31e961c97c41c46668db477827eb3357c3e28c249630355f662b4e95ce8c7afe2a99133ccb4fdbda13adc493012e679e5360844c1ed9d03fc0f8963305c1e5ba245e90c04a2763e63c1ae353ba4e5061e519d0343c515ae033d9a2a5a3545bf975c7252be70adbe0459739121ee8808997d021c5fef7bfed00369f495f7a2e113b9ff270d876ac4fbb26fffd7b690ff5f0e14061e0bb30f8414031c10b1f94ae9e4a9eea16d73b54c1da7af7428ec139fba6f98087bcd40aff0ae03dfb065b8e273277e3a333305448b92d473e1a30313bdf095e5f928c2223f4dc103332c6a2d886bcf92ffe5985bf2693e7f574242520349ec2af70d36f48f5ab3a80375bdc5c6b4278e0353200ecb3cb0c0cf3f1765fa5ef74e31e13e493c1730360703adca88f8e727a3ae04e2ee7331446cd9b17ba4024b15eb3337606194b848b6f203a7cf13dc002663f5ef6a67c42ae9bbcdc9e57023ed1d124cf3b9f0364195c91b032bd78e0a7d63416d53cc9fe9f4ff25d7f7e8796cd84e70bb1f36eebf6975c86e00581e022f8d52d39e185aa7609422421cab43ab1a97bee930740579aebd72cc17581b01000065aac0daffffffffffffffffffffffffffffffffffffffff00581e021be54f52345d8d434cef36c691bed35a35b8daf721efc0fcc68407acc5581b0100006469284dffffffffffffffffffffffffffffffffffffffff00581e025d7c4f0dd5e622cbd0ad0f108653ea803f7213d88deb8fd1729e6c4551581b010000656cf121ffffffffffffffffffffffffffffffffffffffff00581e02123a3d2f6679db174f0e8f20128e50dea7de394b90073583b1f4a213b1581b010000647e725dffffffffffffffffffffffffffffffffffffffff00581e02334e713ee8790ed8c1b51c63ef90381dac819163a52cdb9b7666184571581b01000064d07b1effffffffffffffffffffffffffffffffffffffff00581e02900d5ef8590b65c24dd29035e0e734872307891f71a90a749e8a6d3001581b02000065f6891cffffffffffffffffffffffffffffffffffffffff021928990359b51afcf5ef0afab0325986204a961ee07191ad8597a190913f7e758b52d98f034af2c8edff3c61fcbd307308b43a0c0b1ec4d9676637e40b3a1b1d87eecb543903c04f4317d40f16d1a8577d7f42fab53823b18f1a61b3b9d90598e1e31ebb509a03c467775d0987e1dde8ec575d15973188b5f2d615cf54a4b91e61060ab6021ca1030425143130d24ac22e08968173ba5d9a8c6b74952c280f1a7ae3a513b4f3e1c0033dec4d20af68aed7bf6e99e93a145312ccb87d5737f9672fbccd34b2a0d3514503913d48f5b9227d83226b5054c15999675820761705ba4378ad031afcd6fd1be40376d902a6faffd375f4450085346f51aa716207a4ce4569fccf3fc160a6e5e8e3033556d323c6ad647cf35cab66560d502d3111ebacdc225b7eccbc103af2abd9020219ffff032d93b68cfea5b6aafa3016a7023f8495ea2cb95a35e7ef2e8c5d6bed2cf59979036a4f540e846ccaeaa61015d2e03474ca5ebe36d7d558bf3580280d4295ada6120384c0c966d82169dbb9eeb6ee826792be8064f1f63caca28f765e36c3ea44d3840398d636a9efda9bd98f4a3708132184c8c7489fed99ac353934ecac6b5b933674035bd1bb52a7893ce9bf39e2358e32ded39863ef1d2cb0d437ce105a496a499e3b03467363287815a49baa451cbd81b2b3ae54ccaeab33ef66f69b707ce9e712995c03ec26f344e9a4457ccf644fd5cf08a773231fd669cc55bc0cdbfd048d8766b7af03096555324a9c28ccf062e94c6e61dd69b532b0bb6b5fd22441ae679caf960d2d0219ffff03963b49404eba4c05bd6d7b7a709ad8fad90cf7768c35fa3569a28f539624e85b0380a05cb37f034895ca44472fbc836d7d8e5f1dbafe386a980933dccc5ea0b6b203cd58ca5f621e8eb4882dcf7c94560257bdaa94335ffac74309f0ee97c07631f70219ffff0219ffff03f1bd5fb8e8071f22c39d058bf031d3cd02e0be19d7609386c5d0a6581f6f76a803b6b93dbdef0bbb26908852529fee742860987a9c30700818c445f146604cd738038dc7eedd353e26adf5a63d0524d4f9845f80583f98376416c29f6015b45c7672032d13b70bb8feb48db756423e97808311dbbe395e90266ece5a9139ce8b446bd5036bf37e66ae2bea686938a8ed8a5ba33d5872477e7fda377fa807d1c8240fe1de03fca02b73057ed5e45fbc1522942ef8d76889f957c4ceeab892886e70e617c1b00324b4e2350745999cd6823e22ea5231f27543ad56ff6caeb57cdd3f552202d47a03f81ca93421861082956f17f4f3fe1c76d30d4981da387886679886beba87b8ad03faf94b898f45590ced636bd828e639aaf231199aa4fb0e988b5600e9f86e868003ba70425fde0dcca4c5ed9dab779b1845fbf23b19d537ee201a10c4df1864fde2030e12bc452551674310bbf8a979b7a8a309bab1f6382a855406a7ec48a8c40d070308b006aae6cdc587cf7e1f37bd2113206abeed054cde6d9b7a58fa7005626b28030ff4f84f1673c02b83e397fe15b98b178e7e76bc2a6b4b5ce42ab432a93d607a03ddfc51276910dfd8f83ef96708e9e4bed3fbb6b8ebb2fceac86fc21bf10eeb9903b56402e78b9f25041524ce20601898ec44997f724f82b48dc640b6d57c6d77760310d7dc1b69b33da9cb19c7fcc6a44b4791ed437331cc17c8ceb407695b1c88ef03eb08af8260bddd745e055948b32803eed655bb648f002c3bac378e08fe55c9790376b91fbe1fb7538f9553ce839bceed1a30c58feddbf0de7e9928a582b3983e4d03bb503809be7d23b0bfed42fbbb13cf25b516848bba55ddcd9d6043f8ab9111a6039483e0766ce2b254e79d2726779beced14734bb7cb7c5078a55566109f1a349f0327939fd4d1dd4467547ee6c3c8b51bcecf973412df4526b5e977e038b43227bf03fa4586f7f20643bd35e2e45c01c1744b61472fdc5d90a3c40ac129b4f2f19d7f039cd5741fd8919465940fe1a4d17b916c1ed145afec5ab2eeea19a3fc51fa49d70396bbeb2a8481ff292c7cf63084b14ea19600754d9f53a79f25a53c9194f6e0d103839535eadf023f217d3a08f3dd3c1f84e39c01f33b49f644252c6d973738dfe803fa90c250a0792974d4cbdd14bac547a04699a14f2162e85f27318f8ff4358cde00581e02692c1f864e63717ea7632405cb0a9831ed3f16c44986560d510ff7b944581b01000065d3fb14ffffffffffffffffffffffffffffffffffffffff00581e02140d57a44cb670b7bd9b7c37e2d88504a4ba271100b0da3a0cbb594caa581b0100006466c61effffffffffffffffffffffffffffffffffffffff00581e02d8ecca82a04003ef69b79963c8f28d09c5253d1689565b53dc66c48e2d581b010000652dbb36ffffffffffffffffffffffffffffffffffffffff00581e02e72d1a4e3defbc9793444646f7db0aef1fcda8c142528a005e96c6facd581b01000065daa0b1ffffffffffffffffffffffffffffffffffffffff03a4b85c490d54e0ca34fa88fec11d6b79b1652d3b941e82d20fbfd26cd99e7fb90219441a03b1328098c9fe3817c1d5fcc8440d3e0ed509b213a64872281e36dfb8875ba09d03ccd5f4b930141261e5e9546fcdb388e34cad5d9383e42449069557ed165ac963035ad88ee5bd76e5317debff730ea9d50236d77cb5bb58748dbc9476d3a8394a690219ffff038611b46214bd7f0b6a4fcf728b7fc6bc3064a70209805ed6488a50f406fc5f9403b612c9de5a132f8272d065a73bceb269e8e52280898467cadfe37fe2b77108a703cf44ee67dccf0560f18c761a16a804e4e0c53f4132861460da30cb06b0b067e80389bcff02e8947e7371f6af78f11b261fbd55017ff7359a8fd13f6e82530956740375ad6f8f7842d318d4b20242191786ebddb5051da32a1490b31b214f502781350399c0bd90674cdd6feaf69bb285e09b909b60bb4253fb99b3ede31c9b321c353403922d7f339d4dba058ba08b35b4cbfdcd05fd508f9911290a300b4edb80d9a23403dd534ca9f86bb2fb089fd38b36ad2fd5d6971353090124604d66d4a92712b58d03f5503c8a640b56925c58a9b4371b39709c91b2f6a1c43b062b17f70c93de100503bc4512a39c9c0f4c3b066e91f3d9fea006c3378e32f0b51ddeab4bed07c28dc10332b0bb79dd667365039d496b5d473298b965823f1a2ceb1ee8273c716f2827aa0219ffff032e50196bf15f04674243ef82fcf84e87be28b50b426ec1563f6bef716e34ba7a030a09dc265e3b256e9003096b84188cb633a98bea0220a9d571d5732bc58ba2fb03ac44cf8ec6c8c8eb72cc96a891d609052be55e47b59df41d0bef863368141a7c0300121503dc3cbf5bb995ac9a93e4379cfdec983dfc7ea57aff842d94c47d5830030f0b231ebe383ebcc1443e3e71475cf864357bf9464f08b2c87e61e2d955aaae0314fd39f5fcc05611179df374613a1f57f04a92b6bd7ba55735e82f2ac31b823a03c3b147b6b7ec8f6ee498a11c1e36300483cc6990c789fe55f0134846b049e64e037459daa8370d3fc2b04c20d00bdb0ae1ffff9620e9bc2a93fb14390ecbf9f9190219ffff03a2fc8b01f32978566eb9189ca18c1e1dbc477ef290779a75023dfe6c06c5624a034531750c075dd5dad0efbcc0c2fed94eb4b4c6de2c2710d7ec1a5297165b18df0328dd843174fb0572f5774eb0137e7b9c10199dffd62bd11c6b36508920fa7e8d03fb5ee0403910a0ac233bdb4108c1231b2bc198b6527f3e5b24d12377498d493303f618fe17c376756b28b0f865f5a0286480a114a3fbc4ed15577468866201030f0323998aaf6f9b5af933c70551ee5e9deb7650ec16508b62663dc65ab116b724860331733960e08e395459f0d137150e2521254888ca7a3aa92056d28677c2b5d7c90340238e961914fd355bfab372274c1917d1fb527d2ca89e93890c10f408a24733035b3d0f2306dccb14e34b7c4f5fe093d61985e2c48679d2e9281543f3a8469fe6033d8d9c22deae05536c3ac7f070c925e163d31e1bcf1a0a99a18765042b88e28703f9d9d7d9d3c0c4b57f25b47b77cf338b3b8951b99fa0d21f279055e6dca5415603bd136c14483180576fa1a1e2d78e7658cccd557c66c96198cf6e8e11a77ed8540219ffff037a4ed2b8a0a478d6bea274c861d5dc95f2268c6c906f0a1eedf61d831328b5cd03e5c57b73b9452b2347ac4fb641f2605e80f6e3e57d7fa5469468355e568754f303abc55c9b6196a731cc911c26d653089026541f85be06c38ecaca2cdba51ebafe033f5f6838989d82433599b0b422817ba54891b6308384b6265e3eec4f063b21cf031bc23c953710908b3a352da239a126741ec801b13a082846d4377790239e9c84036124988da013911d6d8c9a3675d40fc41ea3bd98bf258be36dbdee85ec298d9b03aa3c0370d475593479f61de138e492ea34b9b0ade9854b40a36e1614700ddbe3036344bb7dc9945ea56b5f19c2d342dc45c7046bfc1c58910ab498d48546689d6a037a3446af209181e6cdbeb3e8bfb5281d5cf93dbf07868e520f79f7776cda4776030f00a8ecab5ea4ed8cab6ecceb87e721edb028192427bca16fa16c2a5b5115de03e037cc0b6ecdb08cf94131603c001decf58dc0575316c434bb0f1f638880972a032bdb069023a515890089ce2f063b4c40fd7e7fa396e8a4e5ffa692b1be2c813c035134e8d19a7abb464fe9ef50f7bbbbdbf47feee3cc7c00e571e8bf0f6c92269703a2b906aa3ae9e3cdbca2f4ce7476c1243ba57120c075507cffa957feefd9bb6d034a8a3932b157e15a796e5216b19129878f45d92083ca8c880d68248d7a7f13c6032f23e4156e792a11ef84f6799bcf00c006d760bc504fc129bd75c1f902e1e57501410100581e032a5311beea9f2bba5f1de381a5a15ea2f730ff906bbc376bb11ecdc8d0581b01000065629142ffffffffffffffffffffffffffffffffffffffff00581e036c05b31e8d8e0e701721fe193a199ea13dae9f8a0011a83f43ae3327d0581b01000065ed3686ffffffffffffffffffffffffffffffffffffffff02192100021901100384e325693ff0733f119e478c184b506b895de04ac7deb098902fbf2dc09458cc03ae25dbb5beeb8bd4af28bcab677455658511deb7d6fedc2293581a04dca6342e03f05d9748d9f66437c67bf1c37df787704362bd3443013ae5e8b44c7b693b8f0d039ac866b5c069d119b92d7acd3e16ea6266f49c56102cc91a12b640ec98b0c40b03a5e702677830fe26e5e19eb6350b05bd2fe9369ea6fa4adc4b48549f7a1b2ac50391145c2587e6146deeaa706fc990ac30c290c8571c6aca5a64fe3d6b6080d17903ebceae438fef174e8ba6fc0e4852d64e440899020230d9cc144925ada99a11ca033c151840d74ad935134ed5da53e1cc7959263a933096d385ce8e71d3d454d341038a9a3cd945b46af2a381f0d545397e7faaaa3c53960113b4de6763c328c7ace1035cded507285be2f0729a5851a8fc07e39301168139f25433ef0ba5de27cffb9b03dfdf6b79dae3166f067e9ecb942517973a93ca1bd8e441145c393cc4d92d359a030f1d50b014d4b93da05d41beae986072d0e2078504440ed3af25bc235d7d901003076b88cb9f3a6068e820e5f665cfe95007dd0ccca8c4c3de763cbb4173bb60ec0379abb6c11708936f24f36c310f0af497c248a8db849abec6f3f3b0e1a9aa8aec032c31904168291f7b959eadf62a98787fbf4ad52c60da448bbf88863bde7a34120219ffff032093fb7888b890afee531c1646afe29d94b0e3372cb0ae4d2c880485db97ccf80300ba9c7e06cdd7606347bd34339d21f2ba800cc4c8213138bd9d7e4d1ba56cb9032ae360b8620681500d766d5460cd40a0e4e47151d5dbd4e50417da265ca0515603e827ddeb20886fc3a5bc55ecca6c27d573ff6c762d99e62b2756af4275c2b4f903653e5f362bff353b0ad003066ab93c9791b287984f9dc9c2fe5c609683e06f4f03eddc8b69d38502315e31f3e978883d1fa77d74c4bca58eb2920f143bf3be772d03ec6b44cd8cfd80584f2519955a0a69348c5c2249fcf7a651d54916e32a85721f03f445e1cd713378b8e3c6314fbe6d5919dd32b7a259dea7ac94dc50718cd21ea803b77f2ba559991e7e2eb8d0cf5017900b93dd7b8a2de3849823db1eacdef965e40219ffff0375af4f56351b890146de813fb69d82afe136384d0c0fb3d769f457f99a05603c0381a5831512c0a9eb4c58b3e145e3f339432aa74f222cce06bd678761c6c6eedb031a0f68e73dcb241fa1b793e99699fdaeda49526c3fccdd0a40ea06b9bbb006cf0308d4b4c495618d409ec07738b9c048cd4c91bd15f596987875d951f416867e5c03cb2607dd8409a3640930be1ee8da9d61da62895e644432b1bcdb33851c62330503c387aa2aa5c779b285b7bb80372ce345a82f5c973239052ef8b2bef3be3b5cd0031eb422b7f5484a4e5a2603412eb00308919476eefe0d6e88bf14015ee90c6bac038dfde89182d7bb0ed962abc1bd0d6f0c901e38928505e84902995c5ab0ac3b10032c65f593abd5bc96e2df8476c113102caa1c4b652344eb4ffdcc63ee9ea47ba4037900dc14d8cca8d44ef5608a24e31f1e82aa7aef9520e22fe619815c7e22436303c9b1e5d1c9f57f2635919c22ae2417d067906ce4c2e214d24829f82aaef1c7b803ac673394004128cf2d85ea78a5ccffad2b513c322a5166d65e13c3ee08422f3a0219ffff035ac1e8acd3c06d7cc161a6305f6ad42747d051d79236facc8f834c941c36b00e03c090b5a9fc8d713205c773e0362dead544553fb28f02169c28ed209c50b6171b03f9a9bcccc4b7451e804d2b5046461e669ad1d3da4642a12db8013090ae7064c2031b712c2b88474ffdd72ae58d0281efe9058d9d3f9681e05306436a0362ce328f034af0530d0be127eb80eb099575be73cb8f8ed75d2a2ae13951f44aa9fc7885f903de955198029f09671e509f2caf8c6606acf7222a499ef81ed3ed7863925b50fc03f150414391a2aeb118c4a7da5c120ed13d8ff0a6e5e87e40627afd192dd98c2103ca378c9796cbc06100550e8c2f13e54a1d664f327fba2c64465603d44b0fae9303bfa13d808a39b36b88faa4ebcac803d297bbbc4a527222bed90bf91ff909e2ac03425ee6c6491f8ffd9b89ec984c30ff590403368c0200cf94fccb31353c464040030d2fb0692a38807e50941a93a7a5fdd2dfa8000c9a840e3f394c4099cf94580e03f4b95234f1b10ac5689f0a70f79fd24c93070fc990cbf705bd54f61714d07b130219ffff03880eeade935edfb6f727aaed19dc6a11629644f1858a1753a433a0c273694b6b03a5f5fa9f0b3500d9cf0b4b4b55414de24f20f287cf47c2a3fb02f4053155b814038865ed7d58ede65fe6fd80e9e24f32738779191ca0987dcf1eab02e5cd3975f103cf8869771a2287bd3e930bd45dbb41e5e350cd3137fb6bbbebf869e261ee4539031fe84d16a156c0b2d04845ea9286bdaca322e103a2c31efdf1a65ba30b7d6e7a03e4d1858a60d24059f03df79a5342ed9448c32669ce0a867d5bf5186e001ab19a03520a268233e8b57263d70bceb0b9b94e2f6560778008b489845a839d4ce5f2d5036e8579189ec2493f1b7cc9fa377f24cb62f688dab23c8c20ba76317f6adc6324030b7abb91a108ed2840f22602084403f5b3339fd2a10bd63f0b1f8cb889389a4703a26e2d8abca586aededbd05588174f9a17fc48cfd5887027794bf62887433b17032f5a6aa335176ac767b67f69e2eb7cb618bad978cc9fa9c8289696f4f0e0a98203f07a3bfacdf13c337d529fab5544f6615ae6920d66cb29e318b680a4e8879635037f3c0d042ab8c7495a9ed00d712b2307eac83537b53f1c14f5201045c876ba7e03179ea9a7f23251e73fd51885fb821c4356ce914ca6fb09d92496504b33483faf03f6dfffdfb091275d17ffeefc948a41581b6a6dd405130ffe6e430f40aee20d6a03486249feaf56005de213168ce4731b5e3c327cdc86c2cbef319f03e932a0379b03e1c5eda50e84d1ae955b884458f2e3201a6273d4e2984ba354ac4fe687c45fdd034bc7fab592d33e8d99f014071614a0ed324b035f899b6b71df5f8a9752da2ce303e88447e5ec1b9a35f3cfa28eec17cf3f19874ea65aa73d8f783d9dbd7344c70c039bda6c00ae45975a277263d1fcf3c7947cdaa8a442d0426463ed52c72da1390903662e4a2212fe969f1183388f2aa98376dfac5971e8c71c9aec4230be61317654033296cd329dcedf9e10a4f7b293281590eb81973f834ca8072ea428b5ecd5aca60393507e61dbc782bc48bd35087eab9ec5ff8c679dc027b036797399d3bb4090b303ea9d7282ea089cce6394ec25d50ee6cc7a57015e2e204af2a4b55a2c6048c73303c2c15daf9dcea0de07dc4fcda6058254fda0b3c8dba0f05878db2ca058eece280329334af2638529b82d2b0d6a2da5030f2d3f8645c5594f293993c29319a69a1f030047d305da3e35451deb0c1d16e202dc1c0342f118219b364ae7c6162e71022803044b0a7a6afd15516a3075b1c9c21f4c076263ca95237f2690bca2ae4fccd57703fba8fab9b66a8b4d930cc83595b1844ab91aa80353fbf46cffc6801acc1d04fc0349e0eff3a324352ce15eb9420b004743a981f87986175a43de4a32066061c93003ef8ab5e16660f9c916e34a3bfde1f3d0f219eaddc70e156fd9eeae3b0417e07003b5ed483d4672681a98c1893aebb01619491bdd09dedc60941beb8932fa997f5c0362be6b0eac07505ffff61ac56f3de4c9c065e3bde96fc4d41faae3cbca1e845303d6644410bd83f5074167e1545f53168bf51468d7b2a4a42cf8f34b6404e0f0ef03a81022c5472f6de425b95f65a04d2f5689528b5a1c2092bd04feb47375bd18ac039cf7013ad08994b629326962d75d36026248e1bd0506a7b8d6d20f9d44bdcee7039bc00b5d38c6d46d947ad7c7621256db97fd1b2b4650c3966118ebc647c6c59803feedee91409acddd0a13926ecd6560bb61e303bfebfc010c33d3aaf5d6cadec2032036603dc9a30b03a7941d7069b1fd551fd12091bf799b3304dcd097c28661ad03838dbbf0f2bf14d889a96b7f44501d94dbc34f0ec69e8b68d6e274e55495593103a864571306a73d1e8f4c716f18e59ad95db1e67982583f077098cc95478caa9f03f999db216466ae36fd444cfa9ab50368ddd397264eb6975ac1645a2a6f2e3b4300581e021f4a680394f75bbec9700ada4a6bebdcf29a32b4bfb99b4fc59fde70f9581b010000659f4de7ffffffffffffffffffffffffffffffffffffffff03ab6793bd94d6d803574166bff572bfcddfaccd3a2605b415c7e2ec3f89f797a001410000581e027aea65b8d2eef0c57467ee768fec7cdff339b4250d0cb10419f4150065581b01000065a63cf1ffffffffffffffffffffffffffffffffffffffff00581e02df5e3b53513328a711d5512b4b92e4d903b4e361d53ecd210707f42800581b0100006473f6ddffffffffffffffffffffffffffffffffffffffff03497eaa996c55ac4897052580422da7a2e1a78f262c257b6b4cedbbd09c312d3f00581e02e4af43dcc6874221e91ed1ce00669182cf4670995f102c98e0c1b0acff581b010000642b9021ffffffffffffffffffffffffffffffffffffffff02191b1103c23df204edfaf7ae174fb98e0bb126d6c2f422fbae6168c130cf5287cfbd6174038945b2c8f06a828e24551d29cac3bc14e6552c3b905d091c14a6810cff9ff4d00219ffff032141b621f04a1d2ff077495825a5046a5604ca8fa2a4988c9d932c8d680b6d71032c26e8be17688b8816ab35b546ab7ba3576a65efbb653c5e15afcb6a5a583cf00306e0d0c4d551c98a12bbeacd63101f9313561946b5a4e0629cc986921d46e1b6034123762f861a124252ec622f89a0cde73f48befc627aea60ae274757e9051bc0039fb2986a72a3db47e8efbb4bd9fa338be63bdfa5d896c7a8a1f0551aaca4db1303e75a9fa528e937a28554716520fe7f712f72cd8d0b074a3044c3442191303a400393eb895e71aa442bfd2bc0f9a67d8589216e4861df85bfa9c66eb0744d2e231903370e8025a571255378a55118957ea62f122be82bb1f74cbf7fe9446ad79fdb180373cec3ddaf54e6525878585cad188f50e0878497af2c5403f19763b12ba7a8c003e3e896566b507f5bafe1443282383d0f53b914b2ddd4899e02efa648994689ee03aa7cefc1aef61addf6effa5e11e7345abb6e17e7f58861b0c0b9261cf1912d6803218a551bd4553d5909bd75422b440748fa68c23afed2fd4cbba924a4ed65ed720219ffff030e75b7f6608fe2a3f47e45f033c8d454c01983902f27ae78733ab1457b382675037699d69a8477a2f7a346e7de68ec17a13ba52c989b7d6730e50502a3957f28ed0219ffff0346192f806cbe176e30c4c70194585aff781c75a5e956de91681241621787f75903a974a09f3e2b66e5f900235f47e025ce5990ce558bd33f3775392f3ce57a5c7a0219ffff03d3b4f6e0829a924b73f7fbbc3663e80db75810c2099ba25de2435d3391ee2c2f03ec6d13fd6c65fe9b3779757a3e19202e6915ba937fa451c16d4606a5693a8eaa0323eeec8c8b56dcc798aae23ca87d67fc942e1ffd298c2b09ced2fa25e732f9e603d5449872dbf21d2982caa7fbea45dba776bc5c4c51cc31c5bce096b04334132603d3e3c661f2cbe512e60040710017046394c44c5d475f5b413f33a5fa44939aa0031efc24f37c8ac9ea25882c5d0624beccb3ca86b1ad5513cdb2bc9131839113f103a95bf4d664654de6f73ef66a685ebfea4a41f06ee10ffe0e4fdd0bb79da19faf03421b3b34770694fb31945c87ddc3efd5ad6674ebd68ce7ec0161d74aba2cf57403cac8400f8f6564179eefe0134fd385a28426d6e735ef24f136b1def280a8e802035315a1cbb1ed24f4bd6af44af957da657967123816e79f70b8ed4c6c66ce38ae0326a52bd09159d4cf309e51b0b9dcafc2b31ab58f9c8e310ab4369fb3ff99ed27039918d9169525e2e2fb2cddbd3fc9a256d7c041f51cb29fbfcc7bd24be6e95fd603499432a7ffd5d1e0153fcd61000f7c3839b1f4a12121a522e6c83a2496538e5903cdff9e7f8846df80c057edcc41c8c609448d0f1b36d542b9b55ae66e0a4288c2030bc64a1b4db234924bd4f7f8a9f783f0585439b62437f71204f2274ca9a52ec603b668633c82d4259b8040ee448b48a754efddd571c8bf1cc8397e878a462963f703b960e9d1b4a2cb6c3abba55a20583d08e5fbdc5ba71b82968c382d1f31252cf103f38fdf8348581a32e46b1b18ca62ef8f7d85ff0021bb96858e006125675e2a710352fb78d0c04ecfbec5d5d670ca550447135b3409dd24ed84709f2bf961037624032b1fce89f8ff89582aea6763b72aa47a1eada1a292daf9ad2468ab64cb2017da0341750b9dfa81baad1fcbfd3cf10b07892aa20c3b6aead028475c2dd0cd2b09a0033ee77af6f265ed638f2171ab7772cef3b2c13c885b6af39e90dfaa3419cb36ac03dab0ed90d2ad84dc0b43d21a7a01eb08df06948cc86538a1e7dde6a71afa42df03e2d5dcd6e1aee01159a6b68562f906ee4f8bf1fa132156bdaf95b0ff13ec7547038fcc7c3d27141d35bc0a21e277c5fde01f38fc4b1f8eee56571ac5396424616703f88cdf6a1db48e2e4540c1c4e626d8b809d19c3fcdb850db934f6e78d9c40192030308fe85f27446fb26fab2d10dd02db3cae88e0f18b63c34a8191816549ba9e403b68b203eba1efe6dc40482bb94404b3f74abd3257009076505c895ce0140ecc7037e4bf9f9da20f839bbb7026438cd10b033994c905ae919c4c72556b4bffeddac0327eb35d85e9c742f918a1bd7dcc40de9b57f715e36d836e437f8faa7237044fc00581e027085134f08edb2a39e2f6e969513d60e9d44b996b7557eaad75df69eba41010336f5ee99a195bb7e9dc0be2c422924034415141223e10b56a517821eb8584f9101410300581e02234435bdaa5d631b6d75fcbe5c8f03082cce73e6f24d65668c480e9b14581b01000064749cf2ffffffffffffffffffffffffffffffffffffffff00581e029eda0ed2346f6ed41e0e2bbb57eedfa372a977da354fcc70c81bc6136a581b01000065922cc9ffffffffffffffffffffffffffffffffffffffff0333f4eb1308b9c9add2b63ce8c391bafe7584be3d5fd22e5c98503be52bc26c5f0219610303f24695ae218872ee586256ca4af15328de51035cb2c865e50680455af3288e0603344320fe15e64cada3dcdeddcda1a1f460a5febfe355c722663529d0a4c731be03375401b263c13f2b4c7921b4d128995dafe55d9a0e380a02aa65fa51afc140350356b38b7bb09e2fc69d5a704e3a687cad14b0be3f29b7717028499d641cba35de0359a37cf7c01061a429ad3e17ee0897d04db5475b3af8bd31512eb50580dc910503f4e5dfa646ec6c2e1b67d9d1208b77697cf84e5d7717fc6a113ac38a6b2a00d703850d632fd1197d7e939fb1078fc82705cf45159a2fb3692540fb95762a8dfdfe03a20fb9f5242d6f7047a9896776e22907e37af4c0a4710267852d1b4b552f73e703bcbfd15eb48cb9646ff3e7a0b892a3dde0580ff8b519cec5a6f7dfffd36baf8203d5fedf9c4d3996c59e5471b8cc7c9fc6ef4187cbab789a4416c418fb3b9460de0219ffff035c8a724d78a76c0ceeecb1ab6eecf2411d224019ce59cb6418cee62b59ff6ea20348804709dc732b31abe0d2b2a4aa4d5cb3e00ab94d9157932afefac678310fe803641a86deb71dbc3c69c7692caa171466b364a5822ee13c6aec07106c6cff554e034957ce1fb0423285c8f95685fccbd20b8fac21f0d2fbe5aba28aae4f182276b703e864a0f371a546c0d249432a87dd09aed1d977f8eeea26d9aba192e00a615edd0219ffff03b3f55bd7e5febafdaa674f15161522ba51f1a9eb5a198fba329bed60936554120393cb7ab49c2da8b4014a991601a589848649b1ede6f252900e6bfc39b6ea7960037efd0db2a8eb1315c0b40815c1e7bfc436cf0db0f3723d786e52cc65e7d3a3880378123ffea74935ca813f263141e7e2ced9dee2c894f2e3ebe8a12ef94b94fe230349ea97b6066924356a620b689562eb268531d3b541722fe6d5a6513a514738f10219ffff03551b5a5ca82fddca85433d42f93e5fc1e11711b654b2e82a88befdc2183e2f5703736c5c7de8a17c1463f9e31d6699f2a4e6cacdf98c5921db907f6c468fe9398403b2e4f80bdf00f8a58a1d04a2d801d6c0fa8bfdb98b04f8d27f006e999969241a033f97d02d87ce2cbdb2d8fa73ea63f3a1cea1af192a2e00991a884f55b6f749ca0383627a99fb44378a12940516eaac503717d83b6c9ded49ef08fd533ba7a6fcc803dcfb858cc086b64f84314b33c2c05d98b7291d2780032a97c32d086c0e2ed35b03b93c921f89e972235e4c3453194be232ea095370f26295a0bd803fc40a22856e033d68b2b5176f0c4df39795b304fbf352ac8d85ffed5f0655aeb68ac0557bfffe03735f593ce61e273fa7ef7a784bfb80b684367ae1fc7dc292707bdbb612c9dcfc03a2368e036897a4954e4d10344888ca4f9f56cc433122548a28c9d9ea0b56f8e4038561d1f3baa9817dc6baf4124cc2f3824fbfea7ec0b7e42bf617efb6911627520219ffff039ab34bea433c7d2aa0885582645d4252b8bb374521f444d541ee7ddba174d07703fd45b76ee86ca45c91fa6c7dd243d165eed7c719e5357943a00d0c414de90b3d032a14ed73fb46bffd886686d3691a73162e76cefa1ffc45ac43233f38a41cbb8b03264260ad32a1d83344de25c899ffe23f60bc8adadfd18fdda2c20deec8d4d17503db8879ae687ab2abf5051219d361afe86688b9e253555fec760332eab631997103f8ce3dd801dfb8c12377b9d73317bfb34daac8bdcf993c8a38aed0bd1d89912e036885de429fc2ad7b6d9271f938e67fffa73cf57c04a1e17cf3ba7877b3b229d303c9f6ee5ae69c53f6b12257ff30b0952403e7c7515fe37cdb75ec18057e62b507039bfbb48ee3a5d7bb4a106ee803738d349520ae8102e47beb05b4ff97cef5941803ad8019c788449838ad7ba1800486c00f60629ace299b6a9d4f5722c2b90129ca03d67c5ed3f07e7fdf926ab83c949dfd003b6650adce11de9c5acb9f5531b1ce7403403589b739b8cc290e4f6ef8a87b3af90a37e15b8b8bb0e40534234abc2db36303f04749ab20fb2468aa92bc6207c49ddcbc2db73949afaa93347f1af6e7b4839a03354878fd85f2665bf0b17beb2046c3ed2f7e4a76966e1eb0cf808c0e213dae7f03e837e2cf86c03ac7d4ad992a051cb6717840fd64223ea9dc39df108a8963c9aa033fafc9312862f6af4b9976fe4766378164480c45ce6dbf4f85a9a8d690242ea003a336f166d4049dbc2e303acdd0511b03f00604ad61b6cc556ad878f1a905e099030c1d6d438c1578abfd3facf8e7781af25902b72840628fd5279a217b168d6762035698a6bbb07b346db7ec17f55eb511b7a3d309a5bb879eea0ffb141f638bfe4d036bfd7f26ad753f25a2a6929b0c62f8c0df2f10f80c6b924da01e5b8c681b6149037f9553c2558d7aef4852742d88bab990b6fcbba4f2e78ac605d7e24a81dfa2c903a24b370382f3234dc7e319638cabfa0fc767a6adcb81e1cf0b039636e20663ae03dedac7928e2696447b6507f769104a8a8e911b92dde6638573c656caed2df1d5030064cf6b87f3d16336a846f34b16a63c34b6afce2503f93749da07cb2c703bf2032d096d30de8f6b544ce923a2584dce143ce40aef9a4ceda2ddfec169aa53569003164d6b885350ace802747a3c7ba486775d56a18f72f9575e5707c9515a79294f0322261124ec20feb2fcea0fa42cb75cff5b513305e87ca6ad1ca836fe948146310347489adc016104a77d744547dd297def33feb268f716c29c0b2eed20dacd271103345ce9c46d777127513dd42b3916faf50a22cf17e03f151479d9447ff326ac8b0392b041976737b055dbf2a10891421a730317248ec14523fe8c6874ba66c3dbf6038f610d320e4ac915dc0c4b9ed4dc12633eef189f941189e41f5f61f1f05e60af0388300313a224957c4d0745e7e26b75f070a93d1cf9482442143d39e3c9ab6b4603a4ce011fe32c6c7a1a84a1977b0a46707535136352f8c656141bb261de76b81d0359c2812b14f192d0c37efaf9249f58131c7c8373db911b988a0deeeeb3682ac00333c3c41d917d1116cf8ff025586e7f9e2b77cc89bec5323367297324459c0dee036f92697c8dddcfe65baab6455c82801d1a0a90cd7b4eb83bc4b6a4187c7626c6036ed9cb149b1b835e77d8a8b5798bdda9f258c71ffd1522d4f87398c3b9b446a103418cfd131b8e4d2a01c41dc7d43111196d2d97beb1d7961818b4bfa66fb5965b030831e3be06db4c86173154710c2160d45d7c43a8ad6e22c2b92585311c16d1cc00581e037634e6fd932dd2f2ad7de104c3d7b4ba9c3b98345c40e22dcff455bc20581b01000065f56ce0ffffffffffffffffffffffffffffffffffffffff00581e035ca0ea0d8b17a075c09f71c24231dc97248580692a05262e179c8f1640581b01000064e0dcc8ffffffffffffffffffffffffffffffffffffffff0219400400581e027f0cdcbbb7d1d2338e1c8ec78e0b2850476890ba1112d43502218c80df581b01000064d25cddffffffffffffffffffffffffffffffffffffffff00581e02d5fffc6d05c667e8172044ca8c7c5fc62c547bb6bff4eff5c7a3c39e32581b01000063fd9a05ffffffffffffffffffffffffffffffffffffffff00581e029e71fa808bcd8928cbca981be03a511749e87f447df69d82bfa1f14afb581b0100006401aaa9ffffffffffffffffffffffffffffffffffffffff02190826030083230e500d82b9675cc617ac877ecaf1e188b4015372538979fea7247d3d66039b01bcf17977d1779d7c2ebb8349b38c355aff6dad9018c577b1feda2b14411d033f0591ed936be68d65187ab857d64abcd0b1daad1f896192c72b221ccb0ca2fc03482283f326a08e85f97efa36f80a971983fd1204544d70d73571318837a29d1a03449d0e8a5a68d79d62e64275f251f5b28983b50354c14a4eeee1ebc76a6019d30219ffff03ad22c7d4632fc26d8cb47d778860448e8e3be1dd96e8d86452d7c762b18d91f403a75092a1459cd084513c2ec2dda20f9c014fe28968cdf0f7174b06dcabb04cbf0322dd36f5eda47862d60c55c3a2901f477abd7cfe5b2d66d50d6a657c03822ce60357b63c9b764ee2464358018d186cde7bc29c0cd81b613794390b49a2eb08cfe20219ffff03ccbc1b4913eb2161071b395579323da599a5bcba4457dd5a09ad01ad8899aca5036b60a2bb1cf9ccc7eb1f0feda139bf047d69f3d2861fdfc1d2ccac12e05ee2fd038798f968b902e263b265a8e7f4fdf8ac75bc97865d946f96d12c5084700667af0306c0c84d256a77544b11819a3c0dc79d5e90c5d25eab32522fbfb46b53fd3ae8032026b8b133e6351a52d731410dc6ef7cbf7ee01854942bc3f4d02cbdbd1e75a30354ad028a1be23069a639d77609277aad648d13e8815eeada9bd821656137a22c030c9ee41ab07314f8d029940149641db7e9d63b241db36f35a7d0a7e450a2022503a03bc3d91cc0878f66bc494522f8059a192b0d4584c37fcc795e602abccf242e0219ffff0309fc5cfd883735df56f0e584bc9b2a4c6608551cc352497faa7ba30df934bcdc031083a397b53688eec6e26cf522b73ff4df2b2b589f950d0cfaf91b443f20eb6b03c6b97c152c244ddb8f71a62d382e2243a77e426a1176a029d7d804a1efac4d5c0300db4b842e26347c6ffade82f4e0437121db65a320d164d102b5800caa3b90ea03c4b078bce46b714873d9ef2dca4a13fa7c716ce2105a92f6d233ab3312c3740f037f631ba2601fbd01dfa359d8b4b4b20b8900a40593293f82469a4904cf38c2890219ffff033c88d967e52208e9966713163abc4a3cb5c73869cb8169efeb452d56edf6b8680340d3c533de225b643ee192b0f04ae3977c3cf1d312decfbe0ebd32f5b29123ee03784c7c6f1526faa5bbad4026ce17edd46d4edbe3b374beb5befcb2e5b45ddf540219ffff05581d026e13bdcaff61b95238167ef377e01ba97f832b3f9c149aad1d9f6a2107011923c00219040803762f4d64d12bd066ef9778fdf43d2f954ff3d0d19d4e8a4eb4cfe8502a3da5c405581e03e92b1b9d463e39ca71cee60f93759b43f1d5d03f24a42d2585613b4060040205581e0332e44cf6d1f68b044b2ce38fa8cb417312144083cf9255bdb528a2ebb00c01464ed6ee996c4005581e038cc546a5f821a264843e2f2938bf7a6a1b0361a4fd317b4b111c9c82600c0146f67c5d32fc0005581e0347273e644bef8df4443d7b050873d59a5c100b3b414731459fd4cd63600c0247030550cf498b3005581e03127bf4cbc6981d18f901c9fef6b8f3615e16582752bd62c75765670100040303a51a3de7eb3a9ff3d703dae5eb395c88fe5be1ae5d6e2665509776726a5ae0620314da3c1ba100a110dafee68c76b700e909bd5515871b1c4d1c14a0ec41559e770219d4a7030a2ba54ea3981017e1d317d188a158394f64da677f7eeb059e5223473b4fa38003f0ec852ff07c592ced34aa80d7444137a5a27668daf4e615c8d8e4fe823c96f5038ab8c479fb4bf2de02d74dceb5af05f767e6af1b97189c00b05a6820834790750376b99db2aecd9da213b77fc37b6b6183a98852965bb0c4821b5ae3b99d48d90a030ae8df14bf39876c0c44953b114502231c4b15333b677bd12b5b97364292c67e037cf9dcd073a21a812b4e8aa91bce2a65452fbfa4cb3a4d997a473ceafdb22c1a03a0c17c5711791868707ef04b0c724819433d41a2aabcd338a936bbb5b143a99503b6cacc2033e0b948f6be264bc27e61402c6f38ec95b82a21033d9603022b217203ed522b74e8484371b78cee6de4ddab6337d302125b9b773bf30b98c6e30f735c03855b1f17320188703528348a7bc010769b5a08365958d36cb3970d3d524520c803c75eae1d25b97b064f718f7fb786ee5de514c08d2488bb5d4ba06ef282a78b150331e22229a72ada15cf09579d04cd57d226cb64fbb57a701e30df040251b39a860315eb6048c05108f12598e76d70156a9418b1c714d1f639b7bf0ed4c6683624a903b45e54b4fb5b36dde0418c1f3b40abab5eed2ba39823bd70e5b43ecd75f077e40325385d6b19bc8a471039becf42f64df8c09031469a627c75d64f28bfc81df90d0219ffff0333e5662f211c8851cdf4fef05bff52fa57786fbfde087a63aa53450355fad767036474a9b6fa8e8eab271f567c1eaa679fba71138d25df234d61227e5e05635705035516fff9743a6d07977432f6ff2551cf7359d22022ebc001cd0cb04bd8041480032373834edbd3db135a28cb1e5a212650ad07c57ea3f3906afb6e2a3858b8106e0339a942acfb1c2254b3e27906a610369c258e6fd4936333c87294330266b366cd038c07369869a3aaec52e0d35956c4c6c262f66f384f84c5a1de4d27edd5ed3246035c9fe3c75f777d2c038de5126fbfca76c94339f11ed2bf151d1fdf0a97c258460219ffff0389e88b702e848bb3d8c175d73d252568fd72f93f29162a84f3906c7ca2442655039f99c25633c0a30c6bef95b77a30c4d8f2c8f1b39422d9b04796356d1d458631038508b65bcb5a57fc9da19dd99115d053544031ff84de2037c15f03d7222b792003ed0e2e06d4df41a29e32aa0ffd8eb7d10ca12f3fca3330313ea410ffa2c3b36203a7f6190b09735d5361a49abb25f7cc39cb2acf15919b84e080e8f0f48dd393b9037504cb766c92ef7b942293acfbeb7eeb0123dbec968d685673194c65f1c2b27203e48995ce4d2d64f30a7255ab7ac97d1ad11af6d21edc8524050776243ea8ba2603af4b9bf369d82ef480f029c16678086183f452bb33b140529978a9b4ef7a0d980393b4ab1b8d04466c6114a033d1f3145f449e441ad2d8d8e1d54a2f9c60016f5903293e6590527503fec5748bc043cae60f766b6354c6d3acef090abd1984a4792803c7d44625174245851b4b36fa457640ed547cbce93cebb4958cb0fb0c51c82d93035238e6648504c3f55f54b2dbdf0ea9d88cc4e5b022c48e32e21cd2e1763e5a8703bc69a45cabbf142c833444c521917d8cbbf3c276f74aa3cfcf484fdacc4a2cc9039c8622ef5302c1899488d3352c0713ce042a5f7742f35fe5dfc0364cf74b2cf103c432f7896d8a3b6eca6452bea9a8c87919adc55cb711d2df52c458bbf9db3a260219ffff0219ffff0219ffff03eb025dc14890e21facec55a0646fffe24640700aaefd21dbe2e1d3e37b8b749803e1251e48bc02029351c3a4bbb70fd9c409bd048d43bc535289f33546d06b129d03ddd8428d929d9618f8d154869f4740b75984b5fb78fe6e1f52d3fe8f53b00fd2035e2de31a0a32e270c71da01f38f57977a6aca6d4a97755c336e2986a055d2960031c66ff4df6a0b4670a11e782d025a655e9219da9c17597d408bb38bff757189d03e06b0c4e9534335670e3a714e8a318a75ab966bac0ae0c83cb524a39da84aa3303254fff437efe3a3dddb42a1d5b656163ceac6e781d2a3ba87a2edb615a710a120380513bd7a24c6aac4d446d330a74c9a4f805856cd8b811382333c543e419736b037d71dd60c79cd990364523619fffe84e0c4d3aa8610e9a0ffd3d4acb5efbb74503a50f82bb56f31018c7c569bc3cef203aebc38d999137968d61fd5f8a4d7a571a030593f24dac1eb54a4583020c413cec6b6ee6083e44532f83c1fa7aaeec7061790315e46f4a513b713bf4e80f755aac1bdac779d22ed015b43c8054bd06e0df7b2d033db204d10bd5517ccf121c72a178fb11c105f839c00d3789917e49aceabf6d7503001f8416d4452c2679627df5473c18f16fc3036999b7d548e6a434f8083bd40c030cb21192e1e17c303e0bcf59ea40033d39edd3e75f8a857aa1ac1fbc6330667e03841fc891e13d62ee7586cb069e89df6e8e6d233785c9ad80ceac1c1cbd131264031802bc1c5882af3f32f14dd22565b92158f406b83a93f12e4588a61e5d9280be033ac197f01f2f80da5c1618ff35f33190af6c96d986d6751531b33413a63cc9a70317f2cfc0e99b741f9b4a5d2375b0239cf15cfc8c7c091904ad37c001e6de8e6f035d41fe822eea3df7efc3d19a95297f8f7b780c90244a54522c23544b415341fb03d918af99c9c1a3f319ef8aec791abbc1787f3e2ce13aa497ba51efaa6c9b180203e9f5b0675cb850a23f0e32bfde4f134036dc8d880df4e06bf0085a934df78dc703c1f3e43638eb69782b24ba677c5befae3f328f00c28343074b10b4461602989e05581e038fb1fb8a90724281e45eeb0181cbc48fd528c732f589fdce009acc9b100c01470f6bd00e365c2805581e0346b1de170bf032b1c3cc57c61c814a52ad8754c455c0b593053f9e2e100c014701459c7c0faef105581e036bb5e54c80e56999bf956538f1bcbab33dfb6480664ba6d1e9de5a6a80040105581d020a3f9ab2fc3e8da08c20784c7e62b224464974bbd7f93ea2b26fb2b0040205581d02d95cb7e6a6c067c1744fdea98c4ca1a46026833cc59f586d3fcd398c0c182c48039cdb01ff94f4d1021824039be6bc48a8ff69b0830425db7f800426afd3b8936b9777142c81b3fd53ea7f7c05581e031da55ac66f15498c3b1a63bfa6cbc30ea2957b8f9262ca9e0e8c5e20300c0247020f81c5f8400005581e0384ed308210f7d82c3ed9ef939baf50555f454b69b9473a4c122def36b004010219d53803a526e3db8096f6b90f81a5bf952c750c2c79241dab56d32f92603171c137af9003283210a6caa3bac6ffa87a9fbd5ac17dc9865926b5f44dfbc9c69a8dade14c49034ddf451b718739dc8a9062dc6462b4fdca9c57964db73cc0f69afd701a9e4ec903c359df8f4f6f46199cf9e44b77471b97b3897b9f68efba3bdfbf139022713d5f03359c1a8e60ffefe939a0fc86bf0f9bb74c06c5151c53b5fd3acce056beed995e037bfae5c55ee500bc467212268c7df5c6e811fa6ad4b3c95aa511dfd8c0c9d87003fd0400dd6b85e210e42a040cb71e24c0911e1469575f766f663315bc0e93551d03485954f865355dccba035f91f852bf2c289ad7e3801a3743db13c0feaa37022c03a338cc1bed1c793c2d07e4f7283c9fe2132d6706bbf50f5f4a37bf15cee71c12034118c4ff4105cb12a272d9a77cffff9ca8354d8efea85d21a2719b0f5071d4810219ffff03216ee6d90d107e0c564bdf8452e358131036b102e330400f99476adb2eb5e1ac03677ff1c7513e03acbb7301b01872f9b6764ca1530e6be2689eaf1421f68cb98c03d5563ccd8c100555cdde610ecdd03784c9fb005742b612d97b4e44035e2c8d5403587dbd2ea31fbc3fb8bc0c5ddc3efe0445c08973d2df571f82f8c8d58b432d420397a340a21fe9a6cc084c44eaf4b9419b1efeaf52dda7aed2237fdfea8631138e0350cba2fa8e5c50d3b6c7e82f31cbc568295f580e52993e672d173e70421bd5ec0353fc4a4eea694b882f88f596e918a2ed83cfde13cd11cdcbffebf03f5053195e03a1e507d67673eb2123838713105b28faa357599d5196c63fdf0f854fe2c3a97803d012afa005decb59ca5e181392337f636aea815ea12718d144def0a3feb98eb90219ffff031435312d861de381633b09d9fa7d947eabc043638f95d4c202a253d108628b2f034a30391525e6c2bec82e8080b754e475ab1be0c148e218340b1ad90e77947c8203c88ca449636a2735e10197955145df9fd0d0f4c31f433fe282d4446d0817728a03394ba8a609cdb61b3b7b5bdaf76ca6c03eedb7343a53162e30c80a5b2c0c114f037fcb3ac38f643e13c75515723f82e0ff08e8f69cd17fa4b263d82fa5feb40002034df52276ab204d42b53657d9b4ce2698655d22590c0f8b71b4e110f3c6a0dfef03908cc75a351a300f05747fe9106e162235cab292756ad9e1c28e0e96e89bc286030ff72d0067d2442c3bca468a2dc892cb29b43b752ef72e3075d68f2ca34202900351baae8566ca3337a98a6a7e35a978e7f8ad1ed58248988e3139e38d138980b40219ffff030d0820da13ab78c2a74e43d38d5cd81957600ac84c29a58e7eee0c01d93caf6703f65e74b779c29e262cb31ac9fa86430beae39d8492ffc7d52efdcbe819955f2b03b15af5357c7f1bd3b026c562024cdeb73cc46cc878333912c17d9ffdca31c4ca03f6d3199000cdbf0408342baf3a1449420f613764aed0573d869451e5d45d8349039341ee6f5de299e10d92e8ee16c9b25f78d826504647e72627c1c1c6da8f53a00399159f3ff062a828b8379707a3b752c486911c343e7b6ed1e3d8ed63324f0183038d0551f12411faa4af425052bd9f85936b39784bf10cfb05f1611ed4705a895703dfefb13a5063bf01582ec8841fc2bd334d5e4d1d7e2ca542381f35e9e33e071803133d1530b9aef5ec592beea0ce1aa8d5b33326dd2f335f41722318e504e53c0b03b1db09a1a712cb59fc2981ee3a98cf40fd2b40b48e554d210fc95a8793e6436c0219ffff03e532e10de561720583c061ea63cbbd01d3dbcd2d593ee38f8bd6b3fae46b4cbf03b198a8e1943878f634fcbce369b12baf2b10555f602f9b55179734f64208fd7b03b51c0636b4ab45387997c86847615dc06bdeea1b4ba529e91e9d4a6e057bcc7903bdb0a1a5efc1bcf9b75eebda3692eb78c406c7528672bc9e6c251827f5d6a2740345bb3f4d19c47dad805faf83d69ef70c4f535e8770177f5f27fe3224dbf1d30903cfc495f8273652ee38e3f5b8dfe2d72112920b6ade2764d902d51c1156d7ef49033ddcb9d16a9eb3cb3cf73d02d9241e2641c06761368a9ecdd6ee3b378f5b1e1203522e723b85785e20af30f6cced34161ce3cdcb8b4a93108c4d96dad14fe87ab403d2e413eebb558e1e0fa841d01f029fc1288a004580942713da4848be4428ddc6037881eca797a360b28b3ed9dc472858db9c6d5e31102533fc387d8c0aeaa25fb2037e9d2ab7b06362993bbc64a922e081ed2ff29a4cfd6814f24385b9ba5a3f98ba0373f6d3878c852e0f5b6b7a164957ec496fdfd4169e2bdf69db3a4cc5cef5fdae034e4a6c890fba8f3aad2ca9add3c5ed719c8c03f988b57e5107b30cc24d157332036aa2df310805d860ec1ea586ea579103b4f0e7c5d5a1d3857a313897b0396aaa0375687b22f268c08f0f06be060c978f5a5ef4899fa399148e9ab78008fcf85bc9037b65e8a11239c81b5d81b96e58c68d7e886dc6ce7bbb9f954bc49065ae403a7303cf9448177ef2b7f6df2547105b87b64b92a12d2d683c2979e45f79fb66aae58b03e9db96991dd1fd984679f32d91c360b0075a37930d7cbd5192629f44ac1f9464033790c4ac9f947b333732633367dcaa87b1c33ae8545be178636ef0ac5f4890c803a1f89adb21535376427ae62263706994a2ca79a781843070ef43a80a6bdef06c0309b57af2cbb0254c83f6d2c6b0fcc15d32fddc4180eb9a7e9686c3537aa538480379d8cbe18f6f6e72e535e07329548a7f5ff88e80d9b91a0ce485a7475d4b1e6e0377e8fd144138e35cdc78821becffdd52c5e8829ee693287a0cf56a2386c1203603820838eca98f449fe00f49a48314d0232e2da163cac5f54828eadb66b717cfe003409c2f046b0f0e6d0382a3409df58ac51b135facd1be6e0cb59d2b6948fdecaa0315d670c0871716401e75ff5f713763e30cb0fe6e105f6039067efdcbc1cb01110379a0291eb917485b621da4f1f13ce0152f2c9af68e899172f6d400b9f6f2405903b76932995202dc8fb72c1b03ce8c0f97d3991218221cc7d465dfe550b5e3f7e905581e035fbc664b74ed9c5bdf08c062467d11aeaedece64b2dce8c2935bbc72200c014630d16ae9b80003647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d03c2346ac652d2e6bf85ede3ffb775fabeded1c49631500fcd18cb268b991c108205581e03936eda4217f47f3c6ef9f676c6415ef1ae8d1ab2b9973e6819a081e1c007011bffffffffffffffff05581e03c347059daac1c79cdc18293d79346c4871f22b794663a1faf0198a889008470abdd91f6e940004590b8260606040523615610097576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610099578063095ea7b31461013257806318160ddd1461018957806323b872dd146101af578063313ce5671461022557806370a082311461025157806395d89b411461029b578063a9059cbb14610334578063dd62ed3e1461038b575bfe5b34156100a157fe5b6100a96103f4565b60405180806020018281038252838181518152602001915080519060200190808383600083146100f8575b8051825260208311156100f8576020820191506020810190506020830392506100d4565b505050905090810190601f1680156101245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561013a57fe5b61016f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061042e565b604051808215151515815260200191505060405180910390f35b341561019157fe5b610199610521565b6040518082815260200191505060405180910390f35b34156101b757fe5b61020b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610527565b604051808215151515815260200191505060405180910390f35b341561022d57fe5b610235610857565b604051808260ff1660ff16815260200191505060405180910390f35b341561025957fe5b610285600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061085c565b6040518082815260200191505060405180910390f35b34156102a357fe5b6102ab6108a6565b60405180806020018281038252838181518152602001915080519060200190808383600083146102fa575b8051825260208311156102fa576020820191506020810190506020830392506102d6565b505050905090810190601f1680156103265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561033c57fe5b610371600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108e0565b604051808215151515815260200191505060405180910390f35b341561039357fe5b6103de600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ace565b6040518082815260200191505060405180910390f35b604060405190810160405280601181526020017f30782050726f746f636f6c20546f6b656e00000000000000000000000000000081525081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190505b92915050565b60035481565b60006000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082600060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156105f95750828110155b80156106855750600060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483600060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110155b156108455782600060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555082600060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156107d75782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36001915061084f565b6000915061084f565b5b509392505050565b601281565b6000600060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b604060405190810160405280600381526020017f5a5258000000000000000000000000000000000000000000000000000000000081525081565b600081600060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156109b15750600060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110155b15610abe5781600060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050610ac8565b60009050610ac8565b5b92915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b929150505600a165627a7a72305820d31ec12b6fe4e3204b5bdd3a3cafc924f0101471e7aa3e9460b81496e9067ec70029036610f98d7dffb30cf9691496f8b753803ec6873fc94a6a10af8d539238ef72140369bf32340352c4ec64524bda353a19fb17d42afc670af87aa8c1a8a45af06bf503ee167f29bda6447a8b77b6b93e45a5e0a4ea150d1710dc639789f242a7c1de180351438b75bd79de0cf2a1bf07def7bc6fa7c1e92170ba51183e62ec7bb2260fbf0312c130e8115d5ee4e8e90842fb804bc988d97cf2a46704f489a631fb94571079039d4da6e76b61a0a3342c902c88f340104b5a47e963fe9c5966ed6354d4177fa703b00c57790346f9dac8f0627c32d35e369a96d324db28b15a90b5f5c669e4a8b803c40c5dc6b40ef86e0ff0da71faaf6c3e9fc7fa6da7a7bce410c3acc0ffe3bbad030a0ddd7eed2c7c2c7961dca16b69ef649d8dd3b7f15e0a3179119c91524670ee03147694af3205b4fae6f3f581bf6e4d435be5f917929ac3f52cc2d31ab90de448033d25505de0ad00f34d6a59c6e3abf6eb5b34363d480210881adb367349546fb003cd8473978d7b88e6a23c01cc675033639d2fe9dca9a25078ffe70b66a86305dc032889531404756b6fde910edd13fe7ee29f86b00c790262d6a2ec1098d61b29b703ea395652f2498dc32eb2120e09f8a4f082f15539a391d4564fc1609bc442d228037a9c3e3e08081da39bb092ab3aa673264c3b4bf651940905ef5f1d3340fdb75f03757083d0da0e07041ead8fccece7f07bf177c3172180166a2e5c645a698890570347b13ee25b0acf39c2fd93f6b5728024e38cfb315fc4a28db00bad38858b33bf03d76b40dc0f2bb44a1c6856cc4454d909bcd796952e75091e595e1ee2bb35a73d03469563aec0dbfb6079f612c889581a4a008db081ce9f1b7c8164625902d1df27038de7a711e6567c3e11a4fe720dcce715c15788a9b43b586ebacdca6c5b91f54b03c4207a0d283584394d96c7c3adbb287e11083899273dd556cf5bd376ed03327b03b7f257cde7f45a2753bf76a580f8601a5d19e972bb187568a7524be16d75a60203579537c037684c6e21c5a36c7f4a2b9a0396493c2c2be068bba4bf70355a3e0f0367f317ddbcbc5d7ead330dd1885fb0734ada8d4479aec917144b243de6c5ef1103a0ce93fbdef4f33a0578d71ec633e75d5c5cf03e8387a88c8f835f4e895864dd0314a3459858bf74f900562827808f9726254cfeadb76661a9e5c789b4e223343a03ccc5b3daf9274b4027cffc44120ad67f72d504119399ae3d8c7ccb24ecd402e5033eb312b56f3a1b5c06b301faf253e44e1277f94f98697b91a3adebda024f29ba0304714ae9a0cf616d8b230f9d9adfafff383b67b3e98fdce0cce625e4b02b08b503eeb6a2cac16c1e0c3dcdd56d60619e99d39e85ae24bc1ff4f7213a4fb75ca70f0332cece6d7f54e3033705dec9858e02f3f7d97174bd9f9e64248397c8b86caa980379a741dee53f58c8de62db955d661b4b8279295ee6eb476af5375e6f7ea5723303f08b09d573140e1025a091a466dae9bd73dced50b50b741881b65c55679d1c51032dd3c167cad133faccee442ecc805e1a0b9275844371afbcc000554a5899659a03b23f2f20de28cdd7ea523a1b7bd84b9a66cd718685ff4b538f01c49600d5233c00581e025e10313c07d7093eab0bec79b88347c9b48e59b11d022e9b9badc79dfc49194a6879beea00480000581e02c2c9c709c3ae327e52767ffba45d22cfbf732e9b6a9f1eb8224a8d0162491670043110562e00000219100400581f03fb5e723b87dc41abb10c39123418dd1ceb4bae770baf44c1be5466abaea047016c9925ff600000581f031bc0877676921c77bfb680457ef2ebb20763db655ec013b2eadb5ee9f21045b7efab5c0002181b00581f02e278f064cf9d09497a273944b18ba61ac74b66955ea838601610e1e0ae0b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03e0af78643697ff500ce47ec2739bff25af8a937d84f68c078c7cd7a7170f98640355683208388b169a173629203536be5e3ff12bf54ab181a8fa805b7d921db2e303b1e10bf65e61dd8b3c0d0126cf47a13bbe72cc9bd43feb182e83f3007d584c5703cde2621cdd65ff2a5bdd2a8998da403d08111a3f2a8c9ecd0070bd1afd2b352603ea33852867e6475d27b3139a9ce77dc53b70b2254b200a192112cb73d4ca0f9a0324ff80b7a8651df2fe8e9ad1745fddcf9fd707120db79e56ae0719572f853e87030b73ebdbd0b924510f8f8612a2a773688db2480ec49f6de9b2d51b8657ff0b36034c65b117381988eaefedb3bb9b76f02f396b58e17b9e97c3970ebda0f04151150340a1f668daf3e252db85e181d929509c691f880c8f45a5587781cd97abbe41f803d357b6082daeaabfce9b07524c7c5df1e9b42ff32825b2dc4816ebb80109a966039284ac76c6a39fa00de14fe3a898587981184862b455bac0f359783e304de15c0303d7256783a591ac707bf9cd273164fd32c9fd1c3a47019b9bbba80a161928400219ffff037e9c8e82e130ba67bad9e6399e57af6fd8a1c85f1bbcd08d71776d5a132ac8e3038df4fb9b8d918781b9c60901014e9461cecd18752a4d8f8de6954b77506b32830345227abdaaf80fc9daf7c307deaa08bb102796e6c4076843c6e5072943aa42780219ffff037c9eb3b4cf9c95b2040bdc783fc43a202c534a1e15ba61fa69f04af73d0c1d140219ffff03039048c2f0f7d17a08bc777366e912aa9411fd79246df7e4a88fe226ddf3c09903f36914ed8bd1944e00b164bd7256755e6c54bbf341271d5559d0a9e4c16c9eb50300d2f6c689f881f4145065271f7e6a8438be46f35e05c07bd34c1b04e5a86793039a7842dccdc235c1c5e80124dafe2eebe66dd6037927e90d2625f3b8f2e34e7f037fea9003c5601e31532578e78a01edb4cf6edd03b21c8bff6ed45c473e9bf7370346c42b0b23bc8997f293c81a5276f4c68c665bb3b188066baf53943ba260d3e103bd72e46bdb3e6ebfc725745849d561275c87b210e1f436853265566af4053b35031d7bf552be8889c82e03bd96272fbc74bb28543e7c31122c9b003b738dac10dd0307749c58e27800af28701051cc89608f1c7729fa7817e7446ab889cd48f3721603f3a3df0da49d9a4ccbcb05f0f6c2597ad3a4530d6f3a18adcd67d86d05cc872103e4daafc1e722b9c513e89bfda38bb70281c95db3563d593ee845596a1c3c0aa4038a4b9f87dee927703b90d7df47cff1260694d9bb52845cf4f3a5aadca9fcc94503e3b1b530130f21517a1216512c3a84ce0356f98000e2b66a0257ae006dbf18b403509020ae3aa1f49a0e836b6d5c0ea2a15d5eb54a48d3c7ccc09084b4af211c76038ec17668d0899a74020ed5e8b1cb35fc4eac4260ea07d465f0ffbd480b0bc36c03eec0b192a6125111dfe4271b2c30e8fe8b506e888d2c7b3f9d9880ccc2015ec503e002498b1b2a074359d6c18a2fce2999c0ec91aae71c68cd251e7238e47ebc9b03722b7e0ab166077be00e2017632aa8b230c666fd440d3196a764a8475699df3f030279466a5c8dff25ad9a2389cae7c1f9acd907ef1289a25413afeaf0eea0e7190391ed42d69775cd791315ce3b4f5e1a60b572861f2c487f3167e2b094bc8dd40d03238a94751622a8a60ca164c04751ac218bfd7ba2a14b55ab087ff48cb1ee190d03064e7ccc2dfc24ad661d85c6617651c88546e92a93aa7f97f73f8a35e67126cd03c9c2dfd4963ca6fad4d04a86d21eb7f790e15be156fd67d86524a439022c4964033bcf0c1065d25241d269fc2e56a51d4fa9dc61274a2e85fd78ea831b7adb09a203a1a86b810f609a00edc4760b207d9b32ea7e6861813ef98f1817117eabaae5c5036f7cf8355fe34836c63af34240ad20d4be3e9cba5014ef63d2d20e0e842b59c600581f0340c9dff7316d9b0947698534877acae543f3db9ae015a9ac33ebca353fb0481ce97998d7ea200000581f0354597183f68408bf8ac3707686d108a0ff891eed5789efdd931a8649a5f05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f03048544a0234e1bc426fd75fce604703aa856725da073b1a4f82e57cb7b90490e620dfe463ea4000000581f035160117f2c6369d93210690af887fd2eeb9bb801e8476b19bc7ae0242ee049096529bb5e8b499c0000581f03aabc1d1bf8a2eab5a436a8762f6e9ff1e3d1adf9f1f5295de3132dff0790491038a1e4598d3ccc000219151203b64d4d8c4c488debf2d95a7196a2fa15563bdc195d8f033dbfd4d2b48997cc690354cba76324530fe06fbcab1b56316a32c2a83624975afccdf4747660b2fed3330307a382c904405eba3a40eb23cdc01e6a4cea8002119c80509ea260fa1b1915fb037786a57403bc32a96500698ff64cccac49a82985fda31865852fd4b3b9c3685f0364ed75d566cd578a9a71592ae22fecba230697c61f42e3a251931d2d04fa726703f73f917372184169975300f1b5cc8c0c2f2c5cc46cbcf65a2cd24a131df5e56d03da9cad7e2f41ce64927f4c484ef00a336fab5d572572141a237cf1f393d7215b03a0ba2de6fec9807c5e78db05648b49e8448d37802f6f7c12c799a2459bf2baca00581f0268dcead256163d4e672e5c51bf642d6c037d2db66ed18a288a54d0edd4a44a025a5b17da6b03f32aa4037e9ee57c46b1ff95020a79b6e7be145ff7f41b3d185c9fefab4cd4969e97ed020385e50b8c137fe1ba6556448334ddd08da0f73f143302dc8e323f09c78b905b570347640ca407a7cf077f618f256ba7ef7deefe5821102c248be1f3581b68501fa70219ffff03b29c841ce634b1020ffb09122892ed3ebb4c7c30974e471beaae62f9519b0b210300a17fa8c3c28ef331586271ed4fcccd8c1091dfe0c40b4b66b502907d9e8f4203eaf797a10100fb586736e17e0d7831e6492e614c1ec551e656a31ee316aa8fc6033fb19cc828b29ea24b46755d4d0c2253c6d0212677f5994d2b44a5d5c93680230219ffff034e9db9c329fcba2590bcff66c49a8f7b0e0c040955da85ca5021d0861d54e76d03e4bfdd7d3c2b1ad0c46b3c747bc8e290e4defd9e24d0735c1bc0ecd5d95be15d03dcd8bd27477798ecf5a68189ce12dcaf72556436af21d28dd70f98875b8b4627030e313981ace09fa725fa84b8407258bf3dcffe017d5bd85d096bd7e6963a18a80219ffff03658840685f57de2b1181cf4339baa04732710ca6fe13c294d9b2a756ed8645e403b93aed68802aa78b597c11a135c65d7e600fe053b08a8d5acb072f41a215b58203204be770d820d05f6cea4666cf4096b5f9417c530e36c7109d698635ff764706039d6ff0460ebdcd1a52d1dcb5ed972b3e0bc2a2942b748369e1ebcc98003326f103109e6389c0f9f7cc7d5c4959a761a0dc51de01f2dfc68455450d663cee806b450346ecdc204c73a1e95d3f2d195566c87305eb6a01cc1bc8fb17d5819e648abee903372a0a4c69fe07f75d40bc3ac3cb49e0d71dec780c1078f346be17a0363a45bb0219ffff05581e030d7545d6a27f2b2679a1146ed57d4910f978c0c690b9ea18cd8dd8dd100701190b8205581e037e72bcaf6ee74e0d3fe034bdf2af6d1bb97888f8c1ec842cfe082474500c014704fa9e0acfa60002194078036edee30607b80b48cca9aa3e2fb9045c05edd2ba700064fc8e312258599550dc0306618063709639ef574f082a2405bb8090ba94b26809178d8ffe76e14cbd1292035bfb212c637a2fe6dc0727882e9daa917b3afeb8d71731afe6ae6ae6e210b2640307c194b2f58bb93117a81e834ecb85343203dc05c066d92ba53850706ac12347038f15125464a453206c3c89516162ffec4584431500e12e0d146487b48369f253031120c997d41266e33ec6b280857f4cdf565ad3b863576a9b2eb164efcce2e7e90219ffff03c414978664a153db01490775f5a40aef3d7b410992b242a5ebd8232c433294550302a69b60cd57790c7dbe730deadf4e932c03d66fdcfc2031774aae343a61f43503b654a909c8c7d8c3526959ad4938fab321ef14644f91fa8fdb1b34d2d5a7325b03950936797a270880137144b827694c6137c8fc725173281b17ca1ede7e696c770382f700892a493285cbe282aac4ecd12ae46e41f61b587b835e9e11514e8f765a03409b4c1d15da8358d557dd115bd9fc17347c4e16dcd8156da05eeba438455bec03a5dc1db0df7fa78a76c16db61c7e844c6050a5310bbf91b9a0d8df4b3600fa4703551683456c0a9d658b616cdaf699ebc3130ac79054bd053f19b37eedfda6995b033a7b82bfff2cbe849fc77fad346b64c6482e5f7efeb20ecd2979f3d2639219af036b2b82910fbb90ff6b9a06f92c3f938c959d0c8069d1d9401c537c0a99bd51a103ad5e7963ad03922afe33f01db53ecd93011536bfbb7fa46526304adbe287b12803a441ae388a1e5db7cd237f601c32be97f6f8a92f961262302ccc7ea997ed4012037b73a00e7f1a466545d416904bd17b54f8935dc731e2e0aa74a06a8881fb27ba0219ffff03916ce42899da116c824da0101a08c09de1a3f35eb944f99a281562c76b49dd0a03eb2b01e9e5f5b05cc3c2e310d08d3fe8487424be186753ce62b0fb2d7f2f5d7c03cc0d1dc063c05f32adc95d0b2ed0f37d8cbe4ef488fb727cd1a56f4d74839f2703a07bf7fc04e70ac875ed52351d2d91500133058b1908f08ba0eca7e5d2ce0d06030b1ad1552d9d802e731246ceac0b1c5d78e22715ca3c74a4359c864e134739440219ffff03a9f479a945a5ebd5c023291d0f061674793687e319abcf9183d6b307be4e5fb10360cef272868d7d29290af7b6b2c5ae53b0980ad0b78520f7f47e251238040eea03ecd99b8ff43a53d51ae38f005e04c6bae6aa623c406735b326dc986d855a26bf03d5ad134cec243def01f111443ef0a33f2db447957b110627409ea4dfc9a8620a03ce6837d0bd376288be8dd997df4568a17b935e7b3a38d7aeba393162a1ea95cd03d6328a08ee938edabfb680a98c6e8813a86539a0ed18525ec2c1b5d527825faa03814408e292c924ad042c859def1974eeebfdebb7bb8d8ffebd9ff707b86b96ea03a0a73e667ec6187ff40c3cbd3775b2ad4ef180017243aea7bc35a4d8d23630c20219ffff03f933f2b08cc7164334d2c22f3e6e46fda59faf1521b57831c636f2cabf35b2360359c4e2cfda76b8080c48612b45abf8222c609e0d84c72c0e657a120e68ea6e9e0388c350651b27691825fec0573ae772ed6f38c5b73d43cbc61ce9bdc7987c8f2d0395f0d3af3f46db1a11fe873f4c536ae78a1a7cf8e30f0b9a8e5ee3ab0c1fdf1003be8ad968c7fce92e6ee22a8aad89be6eccb1a9294be60566419c3bb0bd6198c703296ff942b426b6b4069d48c9c9a5633ed8c621d2152b026bbe3d2653f27c19d903dccb0799fd12f3d7d57e415ded9d51fec3d63b8bc6eb8677fa90ffcb24541a8403e8698492c33dc9df4b9625ddecc448293b30ac6360233dad750e1cc1808416bc036e57d8a53cb4099cb74787f3559bd60d4bcf398155d3736b40841b3e0f200f1003ef0d0a876d2cd06cbb1f6c4b8f2fc0e60e73e2e05828a11c7b56e8cf6f54d59203c81111563ae2be53a8734dce7f3d9a8830ce8f26d4363095a8811b47a16f22960360ed39b4dc56c6defd33cc20ff6ccc6fe468a90dcb043da6c6d701cb9d9f466903c248adddca27df7c7dce40be5b2c607bd0bca81426c9150e4b67ec6652e154eb033b794247ebcd10666f1f51bcc224bacf02a5a259a3199e99f2cedebae8451a66039facf29d75280327a07f6ae72b566d1cca575554683e3a25db22317e2f5303df03070f85787e4022b77bb5fb0cff5cbef12c07ce1f0acfca7081975f046379d37f03a05192193167e77b2f4661ec5b52613c6e06e4820c6aebb2da29567f441b4e810391fae93505a2e5f20b2f37b56cd2ad1824218c30818e81e4dfc8d62c1578602105581e03a82e3876df42156252732c2b5cd04db40239feab766aa0c96e2e56b00004080459567e608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f000000000000000000000000000000000000000000000000000000000000000a8f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f00000000000000000000000000000000000000000000000000000000000001f461309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb488d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f00000000000000000000000000000000000000000000000000000000000001f462ffffff16620f42406141a9565b90506000611a2f867f00000000000000000000000000000000000000000000000000000000000001f462ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb488b8b613b86565b8715611aab57611aab7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f0000000000000000000000000000000000005e8b2285f864419ac400be90719681565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98481565b7f000000000000000000000000000000000000000000000000000000000000000a81565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b7f00000000000000000000000000000000000000000000000000000000000001f481565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f56401614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb481693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f0000000000000000000000000000000000005e8b2285f864419ac400be90719661513b565b9450614bba60058c8b8d8b8b87898b60017f0000000000000000000000000000000000005e8b2285f864419ac400be90719661513b565b93508415614bee57614bee60068d7f000000000000000000000000000000000000000000000000000000000000000a615325565b8315614c2057614c2060068c7f000000000000000000000000000000000000000000000000000000000000000a615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a031634334af3f7e87499b4d08614f4f07e6f623e68e868095285f5f995d6e146fa03f94d5416d74191d2f066921728819fb9707461a3bf2b5fb0910a6a803101ac4403775201f9a49f0d0b169ffd323460ffefe3940b63c5867bd9181549185ce319ce0320e8d7f412b0dea7039aca695868014319251e8f525c6ba3d24d1ba5cfdc734103b1acacef2c01fc6667175dfee184b5ef140dab8a7126e006e85dc6056dbfa0a3033b0d3141dde9fb2446e169f44bccb30582b83e86e4cd8e1767a73b0bfd9c15d103694963e198853e9b89611a5791445b57bba0853b99d680eed83c039da14af2e8037cf252978037dc4375a62014f7b1ee0ca1b525f19f5260bb38e45f258d75582203f01b18a91545d05d679e844166c642f6d63e079b9352992d3f9570ef613bfb1703dc0782bb3c69a69c1fa00c9242fcfe580d4678e39dc6a28cc8803f02929431c60357efed7de2c3aba45da365b7f9ad1f823d36554ad1f2a4aed34adb34f992a04e00581f02a270d34a878c930c200816f97e27739de97d856508c62f1a70c0f0a87c0951688f5974132c86bc481ef98d07a14a5f8900581f0271f66e770122af4ae0917a75a1962bc3f3f49fd956b7a5f53e1863453893510709abc1a6a92c71b4e7efc399776848ab0379e19c3fa9583e916e40800a0ccefef0dc40897e9111288a2b736b680c960c6d0358f170543ffc5ea8f40b4ae819c9efa998c463c930e44008f7d1fe6d0b66d0020352b6d995882095f8cba2eaa59cfb69198787ebb942a8648ac796f6274e1345ac03906f2bda69c8de0111075e12679f774b4d9a5145ff236a3ee69f5c25dcc3557b00581f0207d2aed1c22e4caee8114f1030a54d68b5bb045decda87a967692d2ae8f65820fffffffffffffffffffffffffffffeed5add836963bbba34c25d5a88e6c6041800581f032ae9de3a703a4e67beb7417ca9d3e1c00ea360d1727270ebb63174542ed04e1710a1db042381984d4765a565050361dcfc1abce5d6cf760509ec06dbd3dec7993b11f938b577ee6ff55e37328b4800581f03cd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630581f010002d302d300390300b5000000000000493ebecb896d7f208b3ad675fd830219401803327b976b1572c48c02513a7cb173f70929c22fd3df8a549010c032dce344ee9e03156c78843aaac3d8789341050009e1cea234e8a944d719d61e6945138131451b0219f2e90341bb6784445ae448061f4074227c36db2f4309728c2a7c8caea0255e34bf17a003cdca53cd3155364f82d30d15fe5cd393e78a7e9774078d64504574110dc5979003cef02552dbcc930fd7f669c2f05dbf40e2023d385757f9e29c441d7c2362b493038657513dc50fd7ae2e3fdeb9d87b26fbc8c0c8ce1d6cfb810b1d675907a56643036d34a470a9d9897bb29b09fa25dc62a77d543ba6ef5909f99ba778d9a8aad834030b9baad32c748da552e750f1ff60bb6eda2bb75a411e12d02ed2103687df9ebf03b10db331e6d3a3474b010ff2229e0a33f4da26ca8c5670465b9aba1e334df849035787e2d165a6e28f4225ec36bad43c2a982d5d4202f2396b58d1262c9bd952c80370f12b24ff9108c050d38585cb486aa73b57a2dc402ca4295cb39e15c706989503becb88bacef6e02c0dec513855e249afb1c269e88369b10820183b06004caa780377bc66d0273749dde78c7ed0679093c73e6d3b15c76738286896ffd07012da2b03ebf7c4cab076d7f9610338eef8d9ab43786b6c93aa90499cbcda202703a4e2d7030dd1a29fec4ee83750ef886338e51a56975e02b60091581198a88c4fd55ccd6c039f60cb554f3b1c27b60d06479750d7c1b340f7d986198da4008be46e1a899ef50375ebb37491a474370661589b3f1060c3b1413d4c55f0746b2929c32363e837a20219ffff034f2adfcd707ddbce1d8f165b1b5ca56d5babefbeb9fe43256917138e44cff7410312f413368848a89a2707bf6ecf16d950ad266096f51f386048b5be90b98133e903ef4d9337a1d6b47953e1dbe98d995f53521ec0d06ffc2506dd14fbf67940c0940314d824e47a309e2fc9355d92506072580a6be59c9d88595e1d69cd095f29d8c20319272179761c0d9d5376b9452b4ef87634da1b7cd9e7f36f8501dd8f74cdc59b0343095e5efde708c6954217d62dcc8e9dba46c98a0cef8580fc059981c6cbb6a30219ffff038d07bb5460a2d4cfebeab407759c11ca98ef8486daf9f8f7a1c5a1ac32f26264031f556bc50209010d33f15815953f93c03d5e0a314c4066f5a3ff3a9faa4f4a0103986408d969dd495d7dc50ea95a080e2b0304e1ceb92b7daa0f6e16e68b2c02210359347b6b1085a8cc180a141e611d75a9cf3125d7e92b6a15038caf51fca14a420311087a4dad7cbc58efc6dbded99f79fd09cf790de00bc7fc37f0bce4de938f40038faaadc01aba8ef8bd31e8012d9539846b97e104119d27ef81b90ecb87c872d30350fbd47b370708c3eb0c36662cdc1b00563ec2848dbafb5f60d2dafe393add4303196fc24869b7404a73ef35a5a1e107a8511121cd328787f801dd1d70ee5f78cc00581f026f67741fb5c97fd4e6e38587aed89a4c5f99bee0295dfbcb0e7c15a7126b5820fffffffffffffffffffffffffffffef29b5a3f7d0e6bb297400b624e55488c1300581f0288770561c9648fc9f8d1de14d5a8a199731c9909ba6210c8da890fb23de8514358671f5b11d21267650b627b9fa57ec700581f02038109903912d00002891821f81f0a003742e7d185c60385589efd6527eb51bbd881ba23f711227efd1b4228521fcfce00581f030d8531f14ffa0edd1b45a359742384f2590e0f5b52314fc8a83c6fc5386051315636a20608c5d3ddfe83c952f198010000581f037fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0520e7fde79142b3849b76393af078983dd459e02190110034a61fd180e182b77c38735a82ef8c961455d08b6ed71f227bab71a02e91fbd2503b42f3c240583fcb19dd91a1768a044010367990ed09a4084d1c2aba564bca95001410800581f024e822ad8405b6f4ecf0e8b15d647cb42e09803d2e97a698b7d9870fdc44c52033401fcc8a02ed0b99c7a0ae488497a1d0703a627bdf904d65b61931928965f7c96dfd0eb3d931f5b058806e208b46f67221000581f02810f14e8c3d6e05584679faf9ffd115180b163d5f56815227280ae2a67bf5820ffffffffffffffffffffffffffffffffffffff8b1c82d67baa165f845dd94ffe00581f0296b1232df14614e5c12968ea51a5d83ac39ac0e2000def3a7dfd1b98d383511d2d29a9f6f630d5c4d7617d82a289d7e6034f5034a4be179c1d3f7b9f98500cf9316a0de5f5ec59d19b4c0e9d557765d12f0219fbed031af80ecde62b090244fb8546f49d6ee943877014d8e60d4fdfdbd01e8372ca8503c5dc88dca8aa00cef0a061103455c268445a656e9716565f1106a483c1c86920035b4aa6861888c7882340eac66bd2161f8ab980bd513b4f83a4ab75716fd3278c0320838fa3dd2d2ad4af6209c9001b996e28924a4e97d9104f393db259ab20cbce03ed6d0812118930b8e817dd702060337dbe986d319c03d4225dfea6635dd71ecf035eb3869785773f55ea19450b848d5aa508bb944107977849706bc8af8a668d6603e4e90e3a63c56d464f416cff31a060281dd14745d5b08dd1e0257fd5cd1649c40354567f635c2f888a42ba09b6fe953f543e96c006e085afa4203c9cbabca9603303b69333338407f17201412b5b0841ccf84be7bee8206fd34eaf95f6eb073b243703bfa1916d1a111cff9a0f47da2537413a9f9f24bf4537f48e415896e169fac4ba0219ffff037e77974a88aea117a0efd87ab22afbf45913cececcaa2628d7b9d47c445b62bd030a1db762a18fba04212950e391cf1221ab422f3c3dbc3706a5bbace0498edec10396ccf86533069a2a535f421fa675743a7c6dfbaafc02ad4f58c66fcc265ce197036be2fc41b2d688a2fbbba0d508797a19cab6ed3bb53abd83abf3cac5916abeb6034c09ba1612d2dd2888804ee7ded58df4932159de749d38c36fbb40a2e07ff08e03063cf61a7a19575be5a5e823d17389e1396df68863c8fda27a5654a02289678803ea4e463cc2e6cad6b7ddf5a7a835ed196438aa0b99cea6ca4f85d6b97e72368603651aeacc56ef4ab748273e96d99d0839f02785826f60edd130fa32921a349bdd0395c15dbfe1c8526ae6ed883b4264c71c2a721c84f3ec9059dcde25d20cd63eaf037070071701c3f7112bae73fcd4d68acf211e6ad2beb76d427fd39c44ed64877703a50a66ee3de07effed90ab4d531b75397776aa8c1b8fa8f6b5b6141aa0d8676203489fbc00f75c5df876d7a82019d58cd14c2381dd0c554485161850fa7602b5400336259ec773e6a48bb11231959d955fc7abf8402e693c4372f8e7c8abfef74e0f0311db8bede3e18594eed69fea5746d73a7729b08374136f1829f7f92c14763335036402fb6664c9bf8a50186e2a194520698207d41fb89b9fed0941fb00dea139e10219ffff03a72ff6a927f4ff34f97853de447d5f4454e80ef5a34f27d2cb92fe679e426b0603e9b55b17bc231105c893706299f7910eb9b931242c9f6dbb6581d01d9e84a9f503847d97a4ed0f9718e27eac9597bbf853ddf71c625696cedcd85e0dce13cde87b039a62718f25237bf9d241eb232a7e9364ff7b8e9231ab58db66a98cded847bccb0326c428a935b08b9df274759f76ce2b0482860a48058fb425b37b78ddf6895c1b0364839b8ddb590900f75799798017db2af8e39be440aab9d3f11a67f7961f58b303cd73a0d8c07ce7ca71e9774fde6773e88beaf4b07c6f6d74c4640ef7bb046b4f03ff26cd2176f5ee25bb674dc643fa7c75af1d909dd503f4e5bbf14f2e1e0e0add033240fb83385b99deefa07a3bc04176f91690eb06c3298c32e4414cb28d9386420323dcf0c249a3212d3a1b336f40c30cff3ed12143222ca78a2375c5ad120968ad03b414005ddcc93a982d320ec77448b34788554119cdf9be1b065b383f6f1238c703b16bc97f82d2a53106b2376d56d3050fc72716d6e5567a1593bf17d110cb8df70389e228a8e29f5b4da165a0371d31384c616b49e8cb5401bb7bb822e1a38dc4920383a8eac32215075035042fc743bd5a86e74180c7a548434d31cf6b81d4bb8560036d9761003e4445fed1a52578b0c5cb43fbc762c1ed07dbcecfb6fd0c5b9cedb403213fbe1c5867724e1b5727747f7b3a5a56b44ac9a6d0657d14ef4b4269670b7d00581f021cbd3f4ff6b2e1ffdc9724674a9dbd7424f3307c61703c94c0f4aa8277f94e0595e10268dc42533fdfb1e31a3500581f02304180e4199135efbe7733fed16c32a46c6fc22b64bd08e6915d78f7997d4e0177bd23edfc737f455439d9adc003568e6bc54e453f0f0a559d2974684c09678b677667c2dd102da4f7b4601cef2603e94470e6364aa93956f48eaf977686657b0d3c541367c1fb8c4ddc3fcbfbc1bb00581f03cfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b04866272911b059e9b600581f03e2898c2da6141ef1728d6a6d3c435e4437a98398c1be7a27025ec8c0ce004d0ef3077d434c0b6377b8c4cf480219148000581f023ae9a21ea4d07d15120a8a6f81b993753a000cef837befbb7c68a148311b5820fffffffffffffffffffffffffffff7ec2a7e9cc6fe18fa4f653882291d4108f50396576604990d6331227986c73ee2b9e2897cc478fffc06a6ff26357cf9c84bdb03de7d0f3505fd7f78967b4cdab85ff93e50cc03020d16de4b463cb361a31f826b00581f023c0c993e7c49514d47779dd63c54669ea03f430c64f9b05e50d712bab3c45820ffffffffffffffffffffffffffffffffffffffa06f4a6417f9d31db0bb8f022f00581f02b043595506c12c0e78b27989e21617b71e63b7e3a55d2f5e472c10973ba05820fffffffffffffffffffffffffffffe24bbc04bfe0c60f8493c54a5dc197e17e50399bf7948bcbfada507c1baf5ec90a15c2d2d4dd58465b2d6f0c32b87e616a905035fbad3d94611fb9aa471cc1231276dc2ecbb572be679fee8c1066e91e8a84d6300581f0234b85b242cefc5dac60a1dd953b1881f44db9e4e8ab3150f0799b32b44b25101013be52bbd8522223bd05058d2c72e0900581f020774babe33ae54966706c76740c86f170435a4f1ec938b624dacd13d408a519649e7be9f42bb8878c04107149b0bfdfa0219f7ed032057154664724ddd7708b90eb1af82fb2e6d47cede620e5309932a5dafa131d803a88537c09b6a0b5239c181e0e1bcc0293bc715cf8e50e6e5f8b86ef37e5fd1b803982fe9565483650de8f25e27a38f3e38ff99e4aee463925fde9fe5b94471fc2f034876db6d2483180db6e3003d481fe268cb0f2cba25e144a7133477d8a6fcfda503fd9c75a601a65a6e4a7cf6f1857d04af262fdb35e0cc24f5c24f76ab10e999a603040221df123d1a896a43c3d025444a9b9fb2e0fb379399e00d6266cb1765c15a03c9e705425e96c7af46b8d3e1485a422a1d11a4208a33207ae2210e1323546d100324b18f38242e1ef385a4c40d0a8ae94ef45bf8aef8b09626cc6ad3c46c8ea7270341d86af9cb9e55d85aeda4708ea5c72c7f1fcf70ccda606d88dfcfdd8a1ea9b803063d01afb83eb940728b27d8023be7063a79c61d91f3ded7e93e523eec50928e0355f33fa389534e5c30f6d1f137170126adddb67022c5f52345374b8ad5b9d59703c71e0b0351f9408ad3100637501448d609f81c42babfdd8c2b40362b66ba36710219ffff03dd9fc4c8863c0f71d2141e2035b2130ab728073a5b10429c1d5f12e5ef9a2e940348f620255fc13af930aab21e7bc53c224c5123968e96cb72d0025145bd190f9103933cf31bb9f0cc80ed96d4ab25654d879b7e03571ec0b6924853f911b77ad12203df6ba173b798bc104e89c612ae2bae57c5121f375f7bde13ca8b2c8ad4bb22d9038656efd75d12e939bfa1b0f8b560e036da4aaa1e4e18ab7a81dfd3e42c43c2ec031352acc8156083d288bdf1ae3cdd676352925885fefc3e8357ff6f1d716dda4803a7f9a66789383cb5bd78acd32ec1e150d47abf7b1dabbc4aee105ca1a7a165be03771ea5faccae9069931ed6cd5fda85948e2ec489ef5f3b621710f0f3d85e15c103d341c649c4366f1d5b1293e083fcb0384c070a7e9a07d673648c0762962862e703f856e280bc099a56587becd1339975fcc319031695be9f08118435914cdc27c603b5faf8bf174be2ec132661f08a0664d19cb1bbae3ab69542d41a40ddde5352bd0309c09df08d190154cf9d0803b7230815be8d1fe0552a429bac863de8611814d3037f6a098ba78deb27e0e8e3e7903875c9056f617f5c695a8486871f19f98119d400581f0207a4ec6c5c28665131640ffa84926e0ace27570afab248f8c15cbf229e2d5820fffffffffffffffffffffffffffffe1e75d0947fb4ae306f5147ea67b38d8ced0394ee3e003a9c41ce77dedae2bd6fc0c2083858ffa708e35254452ff5f28d6e48036b7b63f9817f31dbee9a852759a41fdc69a9cfa779f98b192e29f869910d8e970350c3ad7f06b687601eb72b54851ef9fd3a61180e0a335a94d6efd34e4e722bc600581f0214a316424a65ee1cc2cac6333a589c5b71cf1291b2c85025eb39a2c97b435820ffffffffffffffffffffffffffffffd54c4f7c8432c054b6516447d540bdfbc900581f02e4f5b8634c00c4b684f425f427f4e3105a7a435b85d690dd96c0715f6bb54d67534969d3bfb3150614cf9cde00581f0283ca3d3ef68e03615301483f3a5e619a56c87af63e1023d6216767bc27115820fffffffffffffffffffffffffffffffffffff359389c60a0d9b8dea3c0283d1600581f0258dfd7ff564a85b62fa11d867992f07ecdc8dccabed021e37861f06a43515820fffffffffffffffffffffffffffffdcd1958864d507ba10aaef5d30cdb0ce41303397a11b5ce2330e4ed167750a4545d6d523d1b7312efba1e91fffa4de4cb954c00581f023be2e1951dbadd3468fb5d5c8407f62ab18103c8e7ec6a116524bd3f9a6c5820fffffffffffffffffffffffffffffce5aa83186accce08eb5985d3ae04b419ee03aaff3b175d1f92adc3ccb5287e4e32b458247c6e27829140fecc2aca04bc17f3032a56fd8149de2f94fdcfc5b65030def24546087711b0a6ebf4766956a94ef81c0320ccdf63b359569ebcfd0a59782c1881c69ecd306b23dc5668d65ebbb393f8c403edac7c8bd2777987e9be58b52bdce1551549aa51fe7f250f42f1a172f9899fa000581f0337fbe85ffccd90a955153fa2054d1f2d72999fc3a961f8ca21187f4fb9905204a8adf2ef2b2c164194aed35d087542fcf900581f034507d586979bec0bfe77864feb7a81fe1b84f1a7a44c9f02d95f6c28bf105820fffffffffffffffffffffffffffffdf042caf79f0ac44ac5ee44be8aafa0629100581e02748c526dc96145113197d472bfddfc33edc8a4959e57156030b2d1a30958209edefef5bfe7dd3fbe55df63637833fe9ef0c7ed078f2e97095dbfdf7da9ffbd00581e02cb6b5095bfed1797135c69be933c8c53931683aadb1ba383cf68ab5daf5820ffffffffffffffffffffffffffffffdfcca261af7b4896be032dfcfaf36c232002191010021906010219fffd0332c6fff90b4622298fbaa8d9e62e2c8891ebbd178d55dfbf0adc5753db5ad8b003e576388dce6c061fbf5f74418b572e8b24f0dd7d7d1385e15c5b071a7477f2b6031db44d14e1534a0f213911faae60c345e793b4798ea361dc7f121545f056e15203df02cf8a548d0087949e0cdb68cb228cbc74802fab3727f65146525d96fbbd39037791eeff71796858b5e5fb4259af6f975a61ae7965990f91570281b76bfd2efd0219ffff03c2994e5ee6d6f85614633c1119aec038d515c2b0435e5f773dfb51a27a6830760219ffff03ef1cf1ee66ab60f90778298a0e5f088ed9532f5aba46ae4ce8f762d82012c1000331312907868defcab5eedd1652bc52095e52a03015a1df1fdba2c768fac7c54b03e15fff322efe70200e116f24ca3bc7aff206383c521513210fef8b0520799fbc032a7fe95736ffa03bfc915ede74e005dd1868640c7674fb8aefb5d7ac265d5af2038d2c56de412d782497c5e6817f706ae283b33db166b248d43fe0cba6d6bf23f2030f769d55db08f6bf921d46ba11886e39eb5983294f22f2454eaa33edd515490e03ca7dd38fbc37df3cb71ba2e5d9c7c91539e70c51fe6970bd9d5db4716bfe3dc40219ffff05581e033e8ac06c4bfdb2157482e7a0a264c20bfd39bd733cb3bf258faf72c4b0070119567e05581e035cc3326b15d4214027feba1d57c66e93819dfb9230fb9164794fa0d730040703b118731ad716c6e8af4d155f5c808fb6dc606d84914e7538713b1fc0f91df89805581e03f8426f382a41d09c9d0763379a4a28c2fdbbf448ec3b2323e29e14c5400404033d060472145459f111fdcd47ad128a07a8a4be7d018e0c07f2ef0e1a4c2e89620365f2b060d60d8738e0ee34086ad609cdcb0b23e62c3a0c3d79a9b1ea4b1f4403031f667e6a796099f0d6530a3cdc55500b1f711c4910315aadd09fe9bf32d3d69e05581e031b791e75585ef506d27454c49c394e3f3315e93e149a124a53714d486007011bffffffffffffffff05581e039313397e5cec9598415ccd0f40eab2419de3d1f535ddb7b6610157d0c00c034701cd36bf697c0005581e033ab6fcfe51a9a320ba7905f5943c4c6588b5357d4b7f421ae4cd1e04d00c014501e7561a3802199e0f03964704a77d5cb79c17e67dddabeb1f5650211c6a52002d3248abe0b73c5d899403a60a6b06626594cc7da626190ceb733a79bdef5e64d7a9398524d768893fc58b0323f031cb5430a3e2d2ab00e0efbfa109973ecda3c93485fd69e674920abed42c03db6ebeec478b97df4cb2759c53d74b0cdb60cd7b57e3d3c830e5528686d813500366a567b526571672eb965ca3aa3b0c26022a6821987e1066e35b0fb85e83f81603530584040baec3bbb4ed54d4bb528775d4036b287972a5312d8e30d96f982bc80319b0b13ce1942e30f8dd93611b7ad8747815834a092f794bc195514435c9c28103ec205affeef476cffb983a9f99f000fdb042ea6912abffdfb87c4ccc46a95ec1032ed9ec2a8744149f79f0e83c6b0058b689524cb8970800ff90488b63c8148cbe03dd0c46c58992cd7f97f08be41944aead22f8ef7bf56ee56ccd9c93c339a6e88a033f67131837f75d3ae5fcce04e4530e3d208534e1d913d80ca6c82523aace552003ebd7b671f9966366b95faebd9583080e3853714806354e925d9c865089ad18a903821f099ab3e2580075466c07b32adb61523ac87c2a1e0c698950fe29a56dc75f0219ffff03fedb15e07fcd7e40157d85bc0eb8a632758daae9d9bf7c4437fd72d01ab5185e03e0d015d100e0b4c824f318fb9b1756698bb58a1a3bf7677de3e939d6cecd688003f732de639f1b3e1c9546452ad23f18b21cc9acbc30e11de2fb35f1d9c45d96ef030e2c8f2c0c06160ae1ee11a3a7a8122bae67e4d3e439ceb43adcfcb44fd2995903b0749fafcf1039b74c63797566500edc021b81e0c0aa5a50895f1a950e2a53df03e74f2b30abb7dd94b0b8fcf5d6e1cf417df7fed1340100e473184135dbe815b703674e64475653156b3edc7320e66ab7f80ad9e727b72412761f7265d5204666b00219ffff03c9dfc11cd2e6efdc2e92c215f9198b46fc36bbbb59249b404815b2d540174d89035978ab0d397b1ab6c3290bb7c987c9f8e7b68cb3f20f67507f1d855273001fbe03510d2626870670418f3fd9bc7d74b6703ce282e7f69cffd534dcabda3fb46fc8032f1ebbf5e2ca6a343558e94b48dd38c133473a8857ad43756952fdc8435fc9ff03ec0fbe8cf165500d780b8a391956e11599742f1f34e57af0ea7db306822f565b03881923f27bcc9a11ae0f68373818dcfb46ce99b55869bd5e6f150ac1ad99422803c2432e7e1d6837ee86dab0d38514ebd5b542bd53369f9c0bd699d0ef4858e17403a170e881a1039e7f3224ca68eff47ec46bf5bfc499e8598b2b9242674507e5cc03c59814216c064e59becba2cb80993c3a1226943beab705bd9efdb64e70beffd203693cfddbc4ba0da755b22735f169480839ba51b4936d0f9eacea012d9fb579150219ffff03e994c50faf8c41aca5b84ab0193e0177ec09c1570b69dad962b6c118e21a5246035902d9d71f6136f26bf778c2149d75201eb453e9f9a4bf6b0b73042ff808ca53039b44e5144b2cd0f2a18b90b47979cae287b32834f5d973863dd57d15e462c2a3030b8d58570e18845ea81c8feec4a9469787bf565a44b82ba48833a70e797677b90383aa48c4a59380875b75d5d9971b78c3476254bc483dc917e08b5f2ada6b4d8d03e10bdbd941bd6cd757b2ca2031a66b85663abb9c957293b4eb4a4c161ba66ad203260b85cfdecd38d025c313223234208e9968d20d763395127d5f2d74895077ff03911ae12ceb72821e20ba2c658760f9589b97fa1991cfddab51519798a3119e22039407702118d31bb4fe873220a50444fe93ec20fc1eb60e6d80814854207cc05e03f72b3ee3ef3514871c547916b473de24bdf2910a7455c3b29c9e053e192106cc03b522c47dba4c80b817f7c0f674ace558a8466feddd7be4a0653085c0ce0dcfc8039619dae8ee0e2f649c249d56f47f1d49b4fd34c059b33282753222f575c8a4da03fa4c2374aae445bdfbc42f5b753046f9b8f2f16ff18cb9d84bf16dce5a72f627038e6ccd2c50116de754ecbffc2a4d9406551490fd0e33d7f5ddbd23801092139a03a3805c336821ddb4912302fd87064f7df14cec5182b7d81808617701e1f3cefe038410a07a06c614a44e454e027db2651870e0d4e25275fb7a5f46988b9042d70d03090e1d9097d6f9bdf142a7a1ba5c2e87bedfb3b64d64e255364205ac5cc74d9603876f13acdf5e95f8250199f051aed737a0e9fe8f2458b3a6a9ac1142ad848b29030cd7483370edf6ced5f70b6f7bc0f796ab0ef4731ed1225f88afca1705af8a74035202df33ad08684ff60f10fd4258cd9cf0dfc78281cacae33d8f9f26208577e9034ab5c0b2334f3c448fe786ea5030fb2d2cea701ff2dbb788a17ed982cbacad9a01410103cf5d35b8e0dbe786cbab2c3cf85025aa29d81dfb8642be2a666b7a1db2535e070395047f6332753a3b18dd027f17f9f884e71ed647cd874059819c095790c995d603c91d8af5789caf0a84429a5e5fcd03dd78c9586f4ec57ac2411df9f78d20958903a7e48f0d73eaf7c47528d6ab59ffae7b4aec13c5eb888b7359f014521767c84803f4894f5d93a9fad81ddc3c915bba04e8b24b153184b4a38622d4e353288b537905581e031a11e1c40f32da7c58eed6eeaee54437ba5df1bcd0558071e4ffe06f0007011bffffffffffffffff03204412494e9b7539db7329e28db7065da41a4628724cc962f1395dbd03bac61403e7f409c43308b03f48eb9b895667986346e5fff5a0c98585da9bfdc61919460505581e0347c72fcffa775e67a53532e9704b15c94ca96e92f75fdbcf0be4195640040203dedb515adf42e73162f0b8082f4031d1fb7ef75b2063d7057f67cd5db940ac3c0219652f03510c022b57224d3f1e8854f0624f90a2695b20c1f0824b6b649d8a10352740f90323da14df448a80d197300e51051fbc1ac7a12ad1b1b583150929c87687cc4b70030ac793af51c9eacbd2ebdbcd1cfc822400426b02caec036212dc218265b4872403689e9ed1be7afb14ef50a5377f30f21f42a04c95b233034e1e5398881489b38d030ccea2ab7db99d29468227df536313a601a970aec7b3f4034ee71327afa33b5d038c4475f8f25f530375b242f2b191b9376f564ad74aad04c75648dd0f4a05248303caa541272e1de15595402fba11da2a36cd04ca2f2eb018fadf3ab61154fb41080390bd185b96aff6e8db30e335b86af44e0efaf35918429e3d2ec344475cfc51b8038be57e7f397586731a4de31f4ed8af5c45eb2b64e8180794af201afbf887392803d808ef2219a2a391a61650344ada0edefb96874a37e1d289c01093717390295103ee94cfc20f5549ed8eb70557cba94cb6a402944d6211be47af6d9c3dc82f15a003d9626a44f4b85b0089c98d363e665d83ff92ace236a3ce19b24a4810e0098ddb0219ffff03bcf69529a44afe3025dc177ca09a053fcc0103d71059bb360be287927428268b035e87c4beb3bb5c1ad23b28e9e77d92e127c2db8f4f4dd64a69cb056665173fbf0307c4ff169d03814a9f2e3c29a671ae53f970bd8f6d9c1b3bf853216612b2357103be0dc9adf9dc9c4da76f051d562e0a20498a878a8fb5a0039ccd5d1c2d75523d038ace2b8178535086016cb10ac417158bac8ffc2cefb4abc393c1d5e30539ecd70316a7bd83f3e6e62d379c68e398c73aeb0d8e969591009ce60a3a0730726e901903c472977bbcebc35cc4f09057b4c4617e30cba98d7eb3e9d7d5af6535683390b70323a55c5d4455ce2c82432bd8f58bf58d062fd1abe760ea3e17cf576136511ef603997ed6dd85e3cbaef2a0ef2d14b136605aa406fc1530b870de5e3ab7ae2f245f0219ffff038cc5f54b23012360ffbe89c1fb6ab5aebae168937976aed0d5785867e47da37003726068f76d79c5d843e0ca421d20eedd4e7e89f270f7fd3110f6d71db9264f65037e72243df832c3326fbd81c56ae3b6cf819e2ef9f2d7a58a6113bda7b0cfd38803af40807413964a6a5d9ac8a9593355c327db7213824cff48fee8da31a3b1dcb5033f7a0289309629be31379eef8daa09362d864480b55c42e2e24c90bbfdd8d52d03b66fbb1b59ba67cf461af3abdcf366163b3e913b322996bbe9c351d87e106b1f0349f8a30acb0fe48c7bc875aa3f4d4bd5e8ecb4324359adf834076d475e8390d903d7cb065a298d26ececaf803dfe7ba01b72905378cbf66cdf1ba660bb9cf690910219ffff038cd6931c3dc2cea832a277d380bdb48642fee3080cf3cdd012ee9dfb70ca65e2032dc36f09358ddb03b78fdbfdaf22edd0c09a4f9d39503d824325b223371b193603f745fabc77184f85bdade026f675deabb237ea0f5cf3a0ee5388f3d0535164520343ce485a5be35d5201ba2ae96c5b0e1639cfc65c466bec9b6b024c11a2f598cb0376caeaaf8f77726319890a9ff81bcd1a62d46f49e5c84c65c35c21c34a9b232603eae3c059c0a85fe2f4f787771c96b71c70a8e245fc23c48ef2a3f8535f5120d103fa0101ef07a944326baa07805c5fb23d2197ac84fc924e8ffdb2a85a5b28b6e90392535524e5c93a80dc18049d323cb4c1ac366f04bf561c96f4b62a16f58761d803ea368cdbd23a51de6dc6bd3141adc2cfdb6109fdf6b7c7e8e40e00121c97d9fc0372ca106d9d5ac652c301a6a48b058802e68a1f0a6e0edb3f7545a8787741d7a603ed15922027a149acf690e74138720fadd5c0d0aa14e7b957077188dd45f6a162039aa1e367384a52904595797702b806a324805e4df7d66cff8ce02469f96286ee033d7808e6869b9a301a10a006d9fa2d90683b3be5bb5206a2a96ef1fe7e40e960036c03a07a00bcae0ee46b941d6b28c5e23dbd1eba168a069cd17af6c361f7357e03f765bde41b98acbc0df3c6d1f7a390509ebfc2e3fe644bbcd97552ef0c19964503d7ac427d1f3260c436a64f8928ba59642d426bb92a2dc410e09d7f81b55b3c90035297d656979be008c67dbcfc32ba308925c164c95a38fc0b65633fe541189d5403bf2f93007d3dd088e13fbf9dfa571dfc4149302d0da5b340024ed23acdafdf4b033ccf3ee466c34dbfb10166fa4081a4e90f60ac03ea0feeae341e17093464082a0303dd132f019f68e84f50c21b90dd9ef5e373318feeb48d51b5585689f72f8189030ba4d81b8ea6702f37ec64840e1f84fefaab8110a9c7df43409ab35c8ffcfa3c032c975d1a6b731396e8dda9d03ff35c42117f47b0ada338037bb331cf2105248b03eb049146747457082986265387e208be665dc8c3e6c02bdada5b425a4a6c964b0357ccfecb8668879008d4f13f037ce97924ce8cdac140ef766d2157b662127fce0344bbe69455670543d0162156e18ec7f8b1d39377e415d45e17da992ce762327f03fd66b2bc72bf7b44fb505371af181b4e96af2fd15316662f3d7725eb880db3940376f349b32e26279b6e955980fccff5eec6f42bc12e1af21adae847865ad0939f0309232fd4f15118b6efa7a11aa911ae55f460d2ed0c727b76436f55c88b3cbd1805581e03947b746769e0f549a984b07e6f079e3871ab248083252720d52aed4470040305581e03012d6b7c47a7d4f124037395f763f0ee321817f86744d9c191f5c10a000c0947014e29039064f805581d0233507b25e5b24bbca50435654e1a020afb7a7a0e11edc994389931dd0c044637076a69def005581d02c2a47b7f2eaf887f40a0c7e80828057aeb4ee1907b8d6352ec52810a0c0c479b7e9937b654910219102005581e03bacfc3123a60ee30883032b9eaf7b7f5cdbeb55f8f5b3f8d3cd71e27300c0247012f7bdc49880003ab55547d18176d92693a5d5a857001b3a5800f94745fadd26ad56f1cdb7a4e9303425a2ab8e33885d05293ef50b0293081ed194fd725d73e85771fc4993c963d430219337403b74df6ffaa54c711460c3dc40ddea2339ca015a929529f5adad30d9ed216f56d03fef2a7d39e9b2da817dbb4bd1d814f6dc9b12155b50c6d40bf63f8caad8bce830344fba1ec0e7323b12e06b7eadc04d30276e687ed4340a43343ed17ea5083dd5c03057b6e53acdf7dea11532c324c412d038a9782cb4b2c94cf6a0e30eda76ea56d0391a1d7df8bbd462588f719a0fac61c9b1ac73cc9805244935fe33081c7ea1f25035bb5426473116f4e80b780da10190bd5ad23aea639638efc4f5734ec3275b9c80332d26fb9a3541dcbc55ea8b6a2bfcf45977b258b6ad80105ae8ee539181f1b3b03f21d1e76d1db4a95e330787f3154fd93b4ca0d077d5aefc957baf73a8b348a100219ffff0326e01994da9c592e6c1b0703a0ed827f131c5fe849823ce20313ea9366d4c74203dd4ec3a55bb7c7b049c7e26f576df884ede78cedba2fcc3c4a93205e5425ffa3038650f9577b52a8eb635ec8fa258bfb13ea1014f4206f2a76995dd18899de126d03c9b1d252e096756be8a340491a6b0f482cdebf4a99fc1e804ca5e1bbbbb8a8d203a43695db0e7d4880830070fea1fd0474fbc3d0976ddd67bf37349401eeafab1d0344c655628d61d17b57bfb1426f1e0ba8b307f3bca891c210856cdf741cc5cdd103d84669a022c74925ddef8b72acc1c85ab16ca65221ba873d0ce350a64db72e400345af6e60a78fb4932da4a0ac8da34c9670eb544b518bf00dc662f7f1d64e181703966ffd70f23e213246b63a83b88db7d3f0a9d2cc23abeac92c2ee8b93d9bab890219ffff0380c6d713d5b3960364309e9400a55b7b351911776480e2d9b37e43c2459d479003dda1d4578a4162fce7df90b7e4f76f9618342636b2dd57cffef8dad6c6e65b9b038b33a04c657cd0d53ac8f27c28a774e3df1568b40bdacbabaf0e80e1228916fc037ea740408134a7267d8c502b1b26fbdb2f4c7a922c05eb8bfc853ea01c6b0f0103321c61f24548c1d73406947d11929ab9299fbb0909cda38d5c5c052f598e07370219ffff03466e3dda31eaa7f2157f3fdcf021d8c41657af5fb167c498b8d76f9ea24523c503a7867a88dde654f3633779833049749acc86112588f15b6398af1de30bf7575403b4d7b7de0bce1ddcfaadc39a82e0f30adef4725f83c31cb871eb194b7d72c0cb039be771f36c9eb55aa8e5d9ede50f505adb1811241a90306b7098fa881f819d5a0364e924b3c45c269c2824103e65b59c8101390219fd52cca0d3ef1e5c2ed6cb02038961a2a9599100c5b83a8cad85ff1d4bb766692a7b8ef814c582af312a1ddf9803dc64f0165246e8d1e1cab196c2094575668e37ca0221ae8736644ff8acc6f690034054857e288cf8ccdd0a0248b64842b13d0f3e1c722ad59355e7f577006d3295036974e83db84659d1f05bb4ec6c8a8d9d8ce4fbed83ee4bca12b0ac2673363ddd030676f53f720ac3e934bacbc5677706633484e6a62a708e16aea1f44f2e9cb7a703e9796b882997280ec391b781355c746e475689b3602a966d3cd4bac6d71d2487038ebc1551856a3b5c4784c98678a24982660138e333268b8d669c0a70765737eb037cb516e2b50935a3563809da112d4bfd7fb5eba7c0d20bad5110548711e5c01403f695ce8d3c5e7b0ce0cc95b8def4333d150c0ce11ccaa5a4404546652363cd4903909d467f7b95d1af0eb8c6ea2b3585c1f02c0e9a51ed7b7b68a20f46165e936b03906bbb2b1faec3648628647c192b916deb17feb435158c52286a51b2b3659d9a036abaafa75e054e92a577450e10606cdba9e7d4c8bc6cfea7b0fb86a7ef06adc303169e0d0e7ff88688d591692323046cdd21b24666cc56e2ffeeb10352204e576b03e6a2c9c2ff6f78032cfdf0d457ee7b5de8d3755671f440cf6adcebeb27af308f036416fd4a99f584734beb46381b852c330c665762afd768e25bbca835f6c882a303211475688ae5b10caa62d77c03062cf479b4c3ce2beb03c7aec6134de7d0ef1a0374d5e60147b6631a12f9d89e41193a92a208dd8cad082a875d3d38f1282b89cb039214bbec70bd1ca5a93575bfe15b6838cfc0a1094556a704d9657d1dd57c2b0503c991ff1f06ae1141dbb4e2e739c475679f2435c6984edde913d73a583b526a38036eda10f776e2f5e1733752b342d4b163ef8433003c1e7778654d23d043dea3c1030aea2bdcffba184ff75ff42c67b5dc640554b296b1f57e1db2b175600478be120359460cfdd78f0734257d3dc2c2a333b6e425457b34dcfb41fe761026f4c8f92f032dc88695791c9872a6daef05e009b2eefd18fabe9f8e68ad4c78f2f3ce7fbf5b05581e03ba96d473f11d8649e4bb6f3da1f4e30d30dbcd772c2e97056c7d38a88004010322b96688a14c7fe0c463aa5389c407765dd864a8150f2f6e95014cb404f7f12d05581e03e6e555a9f21997005f995e8feac6860eab1e83de57be4b706cc262d580040104592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c634300051000320358a935273193af0ee3e5c11d6127e1c0815f0057fc7b57f565f1eb97d25efc770351665f6a97670bbd79a175d9bab83b709f0c616fcfa698a6cf6221c7b44a8f940341d97935754a65a714fc12e4ed3d03240c78af8de47450bcba2f1aca1d15fe5e03cb5d9a80ce2ae8223a4cdfb1b9f57b6b97b603dac00a4459a7cdbd96584a266b03444273bb27aa3ae97c57e2ca95585a4bccac21533b4926d6f5b8f791a362a0d60058200238e9689977d526f580531775c606e5a07c1ff4f40a9ee98e4cca4fe145a2f4410200582002cd6db730126ca067009f9be5f81de8cb22de86a27612ad202a19a6f4efc43b4101005820021540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5402c49b04d2274171424a76bd0b77b22c35763e5002194600031303fef5606c07ca61686e48c7a2fe49c3ba6ae99a5c908cc7f8a498a530b321005820026cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68854c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2005820022bc362fd460acceae129f927809523cf34d3bdbbacc39d81667b61a38764f24101021901400058210382063b448b14f2d2bc3c3b5b3a760d4362819bd599a181bbf6647c7e0460c380410100582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5820e6d9241f0ba2cb36020e90ae5e918d2fbbf3d04835ea3aa4e72a90a18e769130005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a85002a5954483e9139011a1e1ce9706405c00582002abe0af27a1a9d3d887c8a3cd6f40ea873feae1218aab1d6146e1a7c157aaba4103005820022495234844fd100f54ebd009c4a46011329bcd6e771ba63e2ecf056c236cfc41010058200236d8d25e1d96fef1c3a6dab4a9618b0be6be1d9f3441acdd7cc885dba2d31241010219854400582002081fa398a315e3766c7b68e23a76e143aed202796ac389c31ce1c8b8fbcd004101005820022c16b3039d96f2b0386062c960b59875e9362b971d2584080688ae285369374101005820026966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c74101021980210349b25f76985235d3ef8eed6d42853364a44e31ac5d710c186df652f480e9e9740058200251e39cff708212beb6f47c8e9b4df78c1a8a16f33524c3b0a584b145a4fc7f410100582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5d3f0000000000257e0112c4dbd45a8e00000000000000022fcb301981720058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f54576e2bed8f7b46d34016198911cdf9886f78bea700582002607400cb784f460aef4a54c98d9bb12ffdbf1e7dc893fdef424c41662237db467a5d8be8a60100582002b486d1a7fe98ce0e3c186acc1235383ff015dc24764ba99c568775949a9adc4701d2aa21f3b65500582002cc9a8271d90b478f35f03b33ae29e8307f923b28d44e496bf61fe82958205d4101021961490219fd7705581e03b0c228bbd4bf16a887b5278bff551c7ca616dceab47b240f44ccd501600701192c1d05581e0397bba54b1badc8d3e3564b2a8521abd8d51ef278e72c88e951e55db9300c01470c020bef1bcc0003f6144983115b8f1c3055fb137d9455126912352f5a9ae8734d780b0ff60da79c05581e03fdecee983b295aa8d9b72936810d1f1834e2e67b2f375b5a436ac20bd004010219b60703a9896a7f7ee5925fea46a00ee30713840ae4166e6ce17eeef2cc93a2bfa4c3db03bad4261bff5225b91df0d5ed378e1e4d6d89eb6ecaa4ad0a0d89c3e9eec32bcf03b0fe9b400195632259ad86163ebeab8d453b9eccf6b8be396bcf2106caada1eb0362424d43b62cded9a2838b742dd8638964e05fd148fb7135c890d55effcd9aca03497d82ab2f1be690e482ff4a91e224cf2302fa8191014188691a18ef9815e54203457716b7b65be415cb088ec8fb2d753f81a7e64618016b4d9e44a8614b5316690219ffff03ef4c8f388dcf039b75b0800b27b8e6a831897afa292026ab357673a24090ad4f03ac5aa3b46d6ca4fc8904a3a1c3b28475662f1e4f019ce41deb1467b96ffe8fc70219ffff03abd512b240e245d0139540666279c22ec2c529ddf6ee9ac8c1c1572dadf458e90345534f84825a06c74ea4fd861875e457efd6d72214c63f944a3c09f54c7fc43103e7a97df0db532a389f12b597ac50c50c9c5f5201a8bc044d0126366787383cb2039165fc8c81e232c502bf5fe8ac9241f53af72094a151da8f6c8770443c5e8770037dc732e140e84c11a104322f444c5e612d7baeaee27a986d96533add7a16745803cae7d698bced278007d12a5f02f7fbfcc1cca3d22154878898c1901407143bd80365090b0376ed8dcce2ace2b35104568f383bbeefbb86d31545c8239cf03dc54b038a25f10d6bccdda95a4c44a3600da07dedcbdeff5acbda15ff63fc2a090cb0e5030000c9680bbfe6d98d3491f2668e9f78376a63f3dd388ccafac3ab932edd40910306ffafd3e5f9588c0855ca2872428d102aeecfef1dfe84d2e0bf66ac18f5a01e0219ffff036be70b414894962bd659d0fd26d84d330098cf304e76ce02ec47417f4d7b2d4f033e91af4e90d307e3629b548b86b6c59e7afc413e7d61ca347615949e599cecea0219ffff03c67e741228631f3960e0d52378b107c2d4dd37bf4ae719758595059000e6704603b2adfed052b53d703f363517e71352ba119fbd28cf2173f568742fb134ce756b03bf11e166a7734a847a6fad563417b3f07fa504a74f7c2b24ad997dea004b7bb803d2c51fc0dce56fd49e8acc5127a2488f52097acbeda8b7a37a7b3608f6d9028b036e6a013e7892f0245e99accdfacbbe0940df40a120452897439d42ba14a54960033c95d3c54770bfda396ed17ac9641672a07f8e7d38c5b7d70a17fed4949f9e6603fc596f4fa5e064776880a59b1faa79575a18c8bc964698242b2c907f00cdbf7203ee96a0bfcafd96cafb3972bf047eee2e3079922f0228cdfffe8f1cccce27e59c0344d3b70bf5fe202230db53d1e6fa6bad9ea3e574e4c86d6ecb71c22184679998037c6db9a960cf298dbc63a325d8a9f0297b219d663c3f3afed1b4070d2ef5691003381b1b97c2a81247da14cc3cbe3ad2a7e1e41c51c1fdb01634a71c1ea44dc8490353ec794b3aa9910e28489290f048ab10a6a6492cd5c979003c0655dffbe32cca0331d21e1b4a3d8bd856fb6fecf2fb671b02031d25dbb4306766c4a22ec86b98fe03ef7794e3e5e18bf04c5c487d3c627b00bfa7f31d54d3cfe56172a3573456385003c002fc051802fbad1b9520e8cc0272cdbf24aa21804acf75578855d3a717560903ce483227758843859a61b826b04d840763e83cfdaf08dc19ba37ee7fef015b5b037277fa0e1872a9ba7b4c36097397cd02e7d21a8da5b88fc98162c5ff2385e3c00384fb1cc9c907d53681720914dbe2c6c7395a4f4b261055e4703a93b18b5695bc03b2bbce7458817a60e45a74a4bb1021f6ecb3d770a28ef724c104bd70cb1f541a0334675b3aebaacb9638d0d4ff16a4cca815505fa22a96292248214d946dbac8e5030673f716599aed5894bafdb608afd01b5a2d3409cd9979cbe0a6d24093118a4303a69b2f9556b94bf527dd1ac16a89aa0716f6703e9948b10ddac94efbbf0fe44a03b3586dafd22424d9ed73bdbf5a8a46e103ec48c472ea851426a248b4a51d321403513f1f123d3f26996666165ff2f8ce31667261b88523eff9ae10b4f121060b1d033b1ef9138194f652fde7e0bb45db5e5c510437c9052bb1fdb366f7b77bba842403a8128f0cdeccdc1fd639f0ea64bf8c6c860dabf4887073a3faaabb21f97f0e1003e0939692dd7f00ee7b91890c31964c9404f572173a3496c38d4070c59b821665030e2d87c9121059d1b7ec087c664ae5f07e9a03c077808b712c327d65870424390384cfe0c4bf10fed6863b65beb234a7f11ac17dc8823157bb14b0eda59cbc278c0348a18b231f194b3701fb4703e30886f4abc7ae9b7ed4a67c67aa1733c7427c3503ea730d37874089bacb33d239caa4dd3e2b27ad95bdfe80a1d50a8f5dbf798e870332001b83dc49af6fd9830a5cdd9721077be4e7c7a1e1a08903ca42749a16a2cd03a366b63e95ab501442625e02f045df40951a15a852e40a4a64125911ebeec5f703389b644b9f451616e617196461dd75e07285ab906e513b1444363438303e14a50354d6dc4095bc5b7b7a163204b8393de85dba259443562ce84ef533440145f7ca03b73a606966aa3f65083be79b259b110221971f65c039e491bcb1350fc6b361e903621a6d3fa5233de2af8b299c4c7fde81133a68f20dd69e062c38d751abb1cca603abdbef88bb9d43f82d06ca54bb2ff32f164f170630bf26872465ce4f4a57262d03ed0723831a82fecb220c88d2d3661a66c265744f08a0ce3f0b1abd79ea5a0e22034d825ff0fb8559e634328268d67551538c8c8d4ca24b88e6b7fe5508cc87121505581e03b9ca6d0152d2481d2bc9abe5372c375c9dcf2ab091ec6d8087286c32a00c014625ff7a60000003b13dbf39ed52ec6de836f26e17b6129b1b8f91f36da9db8a1ec84caa61ab012b05581e0360b08da78e000991e4aad69f05eaedb111bfd14ab05cc79490e4748cc004010459084c60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106d6565b610118565b61005b6100933660046106f1565b61015f565b3480156100a457600080fd5b506100ad6101d0565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106d6565b61020b565b3480156100f557600080fd5b506100ad610235565b610106610292565b610116610111610331565b61033b565b565b61012061035f565b6001600160a01b0316336001600160a01b031614156101575761015481604051806020016040528060008152506000610392565b50565b6101546100fe565b61016761035f565b6001600160a01b0316336001600160a01b031614156101c8576101c38383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610392915050565b505050565b6101c36100fe565b60006101da61035f565b6001600160a01b0316336001600160a01b03161415610200576101fb610331565b905090565b6102086100fe565b90565b61021361035f565b6001600160a01b0316336001600160a01b0316141561015757610154816103bd565b600061023f61035f565b6001600160a01b0316336001600160a01b03161415610200576101fb61035f565b606061028583836040518060600160405280602781526020016107f060279139610411565b9392505050565b3b151590565b61029a61035f565b6001600160a01b0316336001600160a01b031614156101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101fb6104e5565b3660008037600080366000845af43d6000803e80801561035a573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039b8361050d565b6000825111806103a85750805b156101c3576103b78383610260565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e661035f565b604080516001600160a01b03928316815291841660208301520160405180910390a16101548161054d565b6060833b6104705760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610328565b600080856001600160a01b03168560405161048b91906107a0565b600060405180830381855af49150503d80600081146104c6576040519150601f19603f3d011682016040523d82523d6000602084013e6104cb565b606091505b50915091506104db8282866105f6565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610383565b6105168161062f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105b25760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610328565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60608315610605575081610285565b8251156106155782518084602001fd5b8160405162461bcd60e51b815260040161032891906107bc565b803b6106935760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610328565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105d5565b80356001600160a01b03811681146106d157600080fd5b919050565b6000602082840312156106e857600080fd5b610285826106ba565b60008060006040848603121561070657600080fd5b61070f846106ba565b9250602084013567ffffffffffffffff8082111561072c57600080fd5b818601915086601f83011261074057600080fd5b81358181111561074f57600080fd5b87602082850101111561076157600080fd5b6020830194508093505050509250925092565b60005b8381101561078f578181015183820152602001610777565b838111156103b75750506000910152565b600082516107b2818460208701610774565b9190910192915050565b60208152600082518060208401526107db816040850160208701610774565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204c42c8a05d38921bf3b9c46c2d6959383ec3cf89d820f0f9ee530ce0a4c93bba64736f6c6343000809003300582002f2e83562edc1e0d3c284ba0d80edcb8224974714d5234fd53ea183c222b6c5418100582002f626419e63485cf3328d50bbeb185f26ee0268d64ae57a63cefc325cb204ef5820110f4e64677bc4f926894c2d4bb3d7db3b82d284ca17cdc0f22fb045cb316ffc00582002823146f43c0ca156c1df80692187cd9dddd2173f54beb5a5f0fb26433179c554bb08beeaed39cbd6d9bdb24f2627092984ae55a1005820022698119f18a221e39c23d2b432ef2436fa13b50834cdb30eaba559d384c31d546aba10c9bb6a39445d990fb7a720fa53025bd7dc02192604005820024846563ec9c4af339442784b6c67aae8fc291739c7f3a3d854e6ab46208452418100582003c4e0f48a6907d69698b5c070beb490d00fb52fb0a5fc2aa2adb0a9dcc9341058203997b8b9caae2c98cda6ef4be06da3d7e79a53666ad0a66ee7a2f60a6dfbf39100582003f0fd96cb946701cb58ac22ddf316eb81a7ed7dc3dcf6d5ba56200f6e27224054bbdbe7f5ac524078ac72c1d4d39cd9b40cb4b9ad02189000582002aeca83f0e542a16c3351ffbb38fead2cb9d308c2af43a5da3674e1f4b1432d418100582002eea7aef1e127c10503415cd8a9a7895efb01cad6f56f2c7bee5040ba088fc0418102190192005820022622839309fdfc42306ac82fdc64b9141283d9d7e75ac3f5eada849686ecac58204f091db27c42b1bd8a4fca97c3135fc14323dcf3e84c3a90c44050b312f5f9a60058200237a976fa961f5921fd19f2b03c925c725d77b20ce8f790c19709c03de4d8145475b6dee2c525c7fb00e28d1aafbca6279ddccf2e005820020decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563410100582003a6bf6d857c73256c651bed328b272ec30a54c4f192d86957c8d45c3a9ab9a0582041da96edc3735373b17c393eda197b82b339703e9cdee9b1eab0fd17bedeb18b005820038f9650d2beaefe9563b7950e7badbee56eabb7c39c14373ac57b8329a25f705820549c40ecd4e8586a8a16faa9a36db9857fea7b1f0ff3e3d5de9d3b49c93420bc0219204002190a0500582002cc9fbf65ed14e5ee547459db09155f8ace2404ba56048de3fcf93635bb6396582013b063da16a63dba01914beb8f73f03d75a794a854a7df93513ac73a1472b60d005820022e9271a576830e8ec4c05a207a9f2c03cf726a7e6d5d2cc822194176fc41255820988d5e9e4f87f7dc9a981ea5b8c8a9e90378532dbd0965a0553cafe8393c74b3005820024a83ed9988f79f6038d4c7a7dadbad8af32f4ad6df893e0e5807a1b1944ff9418100582002590bae4ca8fa45abdcb622a6696c8c69481d58839628c3dfc5748fa1d1b33d54f995d1022269c2e0ecaacd15d73e3a621fd69a3e0219203200582002a1d2b21e5566a78cdb756a3467ced83ad9603c55edb9a82f222285fd09cacb5451a887f3c12295a69f57d0f41b276bfebc91aafc0058200211fd1dcac6ac944d73a98bdeaf1b2517b771a8ca73534e43b6f5a6dc42bbe3582013b063da16a63dba01914beb8f73f03d75a794a854a7df93513ac73a1472b60d00582002da158ba27f9252712a74ff6a55c5d531f69609f1f6e7f17c4443a8e2089be44101021300581f02a088470d8cde786283d2a6651f411612d489dc2f104bcac4f3d73b55420e5820d749a100bed7add0dfd7bf27e57446e1596b91fb23e4a83d8e6dfc3047fc407a00581f02ec2e06e8be499e15c443658862643ef3e888b06389b86e48f68fe444078258203643d0a86b0ad4db0bc78298454a5c37507b13b1fb7636bfa3a9c97cea8c05200219012001410800582003791de9ac7a2b87f8750c025133df9265180f10d033e60ac4dd2e52870857f0582096e6b549108cc21f84722da0209d4acf8fc6a110fdd811ef645ba2f8ac2d0c3e00582003f0bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d4810544e59e778a0fb77fbb305637435c62faed9aed40f021920040058200236df8e94541e0f40eb32864a46c86131436a5a2988b0053822f95b4dd5952d5820fc15d64a5cc0069d9d1f7d40c651cbe30bc400d6c17fae77068cb248bfb6216900582002711cb34e486949bbe27e4fd0e124798cf0c6ae75faacb89e1700488d3776775820ec7473c8d893bd5bf565fce55c507e01ef068421c26343be2a151dbe9a3ea7ef02183500582002b70fbab570a923d09c5fdd8bdc458db3bff7cf3956602fb21c857eac2516d55820b97a17806f9f98ce997d24fd428ed403697aab40d41ef862ccc2bc4ec2ccfef700582002dad4a19f6a338e1ae3df7e3b2bcf167f0e37d367c3936c9a0cad510fdb6dee418100582003722b54f936f8ac520eb57f419d525e4f676f5cf4e5580cf49fd47b2073e5805820d749a100bed7add0dfd7bf27e57446e1596b91fb23e4a83d8e6dfc3047fc407a005820030849d18623e90bc41fca1f410680a98d7ae0edd50781e65403a3dd9b07d070582057a49a8131d3e8376c88bfe8eacc73efb1aac6570b08c2dee823a7e26f0d911c021960000219088800582002f8128887470c10c223ba19b17a6e516f23c299eb40856322bcc674edec55615820110f4e64677bc4f926894c2d4bb3d7db3b82d284ca17cdc0f22fb045cb316ffc00581f023980ffbfe9b7b32a7e446e258d8e5184d47dd68a9913ee4e649c5c64ed7b58208a856d85acf30ad29cfd276f7cb673f301bb27a8ebea25a04333e58d3de2a41600581f0214758b9cdd1aff478490d6bc409578ee405e47843f4448bb96a9d304fe7441810219020200582003152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d00041020219041000582002b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d54f7576237087f808eb39531ca490b4f8efd4a0c690058200392ef00602effab0ede3ee9d6d8d77d10c3622e25d879f313871fac5f3dfa305820c911351c19276dc0e0eaeaf9d483217d92af29774d229516a59436b9b23f3d71005820037e04e141d2bf2df38b3940e4705f4a710070ddb1cbac6a941ee614a1247dc05820b97a17806f9f98ce997d24fd428ed403697aab40d41ef862ccc2bc4ec2ccfef70219300000582003ddf77218e41a64a625ef8497f14578411cfe95edb31366f63eb5390b38344054306d1c4482b629a684a54b121f6f57dbe617740b005820032aff6b35506139aa327282535d3015ebfb8bca8f919c3da6282328e9bcc6404181021980100058200269bcec862e8a1f999769acb82888070c9aa05c46ce852b91a01d6f60aa777c418100582002916742a82287e54af38543c9d639aa639f5691964312cc45c81f3c363fc5fa41810219c52600582002a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a82542f44bd2a54ac3fb20cd7783cf94334069641dac90058200268eed29f3926691d218fa2dcfdafc2be5d5b464f1d912fa139484853c03f5958204746eb676b6e66bcaa147373cc190cc509be0956415925e7bee37f071154929300582002db9eed47489b9137e006c4814b48993c05632bd3af397364818ae87005932f58208a856d85acf30ad29cfd276f7cb673f301bb27a8ebea25a04333e58d3de2a41600582002d071a5f515fd86d4b991eb24580ccf842ab7f7c41e88c89cd10ca55c6102a5418102194094005820026355a15cf598b785f29826915aeda3a1831b38cc20387a871c0f247dfa09c341810058200289fef14ae8866909d01b6e1228a652d8bd21604352da5d3c18a5bd974ea050582096e6b549108cc21f84722da0209d4acf8fc6a110fdd811ef645ba2f8ac2d0c3e021821005820024739a11a48c5a3aa17fbe926abe648a8f699a70902f397b49b61bef48074005820ec7473c8d893bd5bf565fce55c507e01ef068421c26343be2a151dbe9a3ea7ef00582002fb39c6afff32c63d8ed56ef772538b4280135b9aef53d4acd821687c21c34441810058200264cef2d6fd047e7abe6ee702cca7130747a9c87d83878e49d6d1c927d8016458203997b8b9caae2c98cda6ef4be06da3d7e79a53666ad0a66ee7a2f60a6dfbf391005820029bcf33088e7837abfdc7e7aa51caaf29d4f26b7c004134909c0a0dd48c71f758200662f404c8c35fa16d1259e25b693a892fe37e8339954c822fead18bc8703f6f0058200221d96668888f3bac149fdb118eba5ffaad605625a8c12f886b21368e8ac56e582041da96edc3735373b17c393eda197b82b339703e9cdee9b1eab0fd17bedeb18b0058200285b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c5478cf48880e9e1b3ab209779c0d8a76f611e53e810219ad80005820038db1a1c229d210eef9e139d52cd9329dc2e768c7d11a19442bd91e3cde757054d4fa4b67b69c3fcf3dbf15db5d80202040bc72fc00582003e8cb63da97745eec297635738c08aab54078d9df2c21f603d50cc774cccb405820b58b220ad52b5f4daa750dbd1c3e9336780afea53e9977720cd5ddf139602d040219040800582002837b0e52f94116abce08dc8674c64aeb3a9ea35d16d59eff9d3a1b91bfa2e858206e787f330d507bb46dd299b353201b46b209c62ce64c14c8f79299282ec17db300582002f7f1091086d8739709cc2449a9ed380603355d6d157772f14a694bdd03181d5820a64517c545b6365b3c641d7f5b5d426e09252301d2c381ee2ad2b2537807d58d00582002a9db4cdbea0a37c207bbb83e20f828cd4441c49891101dc94fd20dc8efc349410200582003bfa09deccde0aa3188904c10482a2c5bd23038dbeadc0594afb02ce5e9b6305820c911351c19276dc0e0eaeaf9d483217d92af29774d229516a59436b9b23f3d7100582003a123a222aef9307e80b00b284e5b77fa2270cf1c6a2d3da7a830c689118bb041810219204002191982005820024648f9c2cdc9ada278987e1e7d7a67d1eb98c4b1bdb6f73880e1233a8cd183418100582002aa5b2955ced4b46a7c9f250652bf538536b32ac43b94aab7e80010675d7266549436b6f211f50f5d5a17521e4725e27518dafa6100582002f7eaaa4375b81572f49afe88e9f359f6d81096a910b3d19d5a3673f6e1746c582057a49a8131d3e8376c88bfe8eacc73efb1aac6570b08c2dee823a7e26f0d911c00582002d85a953b7b8f20ea0a874360bb60c2ff625e64bde3ce0f9f9791b1f9e1d4f9418100582002adbaa08498a3fbcb364d77c0a623659a838a188dfe484e3f8f3d5a1d6b9c5954c828de4e817e1705cc539267d5f28be8dbef28de021988540058200204c3e2ece609573142ff45683651ad48262bb5668cc19f9d708869945d7f944181005820026e832454299e9fabb89e0e5fffdc046d4e14431bc1bf607ffb2e8a1ddecf7b410a00582003233922a9ccbc845126e1243382abae1518c5aa51e21cebb56d9308a295fdd0418100582003ccf234b5e30aa434f990825149226ac37db0cc68cea3215a5c657180bec09058203643d0a86b0ad4db0bc78298454a5c37507b13b1fb7636bfa3a9c97cea8c05200219082000582002d61c7d41e22761ebdb774c63528ffe8259fc305761aa9fdacb817bbe2eb61858204746eb676b6e66bcaa147373cc190cc509be0956415925e7bee37f07115492930058200268da4d692a9d937fcc7351262ad2033df00546524e8c498e5b5784ff1dd6cf5820631938e45991dcb6f2c09398f92dd65452cc7b4c51d2543b19fcb2dfc80d13210219044d00582002eb65f44015bd47480a205915b7e59588c2b28639e930206ec283db0c226d4f5820549c40ecd4e8586a8a16faa9a36db9857fea7b1f0ff3e3d5de9d3b49c93420bc00582002d0dd045e4e46c5686123dcbae49187301f120abd4655463224da2ee478c0b15820a64517c545b6365b3c641d7f5b5d426e09252301d2c381ee2ad2b2537807d58d00582002e48e8fe40d5fa8997dd2c59bef5cbd5a08820883c6111fa16790f8a663ef7441810219240100582002d7bfed24bcc2ec2eaf564325105ecf3e1cd203f63aa986b78ba256617d2f6d5820988d5e9e4f87f7dc9a981ea5b8c8a9e90378532dbd0965a0553cafe8393c74b300582002aa866e36ad97a230edc8630aef69253aec602efd45fd5caa8d12f56344002a5820631938e45991dcb6f2c09398f92dd65452cc7b4c51d2543b19fcb2dfc80d1321005820023e168ef2c5eb08d978eb90fa4689909bfe126befa744fa21d2af4c9c66b12a58200662f404c8c35fa16d1259e25b693a892fe37e8339954c822fead18bc8703f6f00582002d3443dd1f27bb24fa40ae08a1b0eb7306e340fb1420c66e24dc22e1b75907e58206e787f330d507bb46dd299b353201b46b209c62ce64c14c8f79299282ec17db30058200228cbc1a62f97eda0c9ab243d66eb51cb45163d76377b288e4c8ac1fa22039f418100582002aadd8191bad05e9fa3b9de2a0b28bed4c298dad18ea00d99f269c29f7fa4bc5418214ccf63060d579524a69ee1b97404594fc831005820033cf009c38d8161cd4857250eb706963c779ebfe09df837ba5e3e8d7960ff70418100582003e3a47c9e5c3a3d34fcc23b6657b3267f313d7483d06dcfe671c34010bf092058204f091db27c42b1bd8a4fca97c3135fc14323dcf3e84c3a90c44050b312f5f9a602190820021988ba0219ffff05581e03471eaae685daa0a6f7c8a5ab9cdcd28157dd8624b3c7e3598f9ad7b680070119084c05581e0375003a3838796fa14a2b3991bb27d67517b706bf385d2ef754915c28b00c0147059b73df5d538805581e0392395056ffb340fd67a53221a7f6539e888c3d77f7f006dd781584ea200c024705f5a5f443180005581e038069aed3488d02dcda2745fa2a3cfaa31e449e7a11ba8875603a7df0f0040105581e03178b21406d4847a1afad4c0464a60352c07f84397f95f8b7345959b9400c054701b01b54afdc8903845ffa9307e44b834ffdccccbceb7c571238e416323a16ff4983663e2618bcd30334193c07a12f1090b169f381cdb0afea364eebd3be992e458dc4b7264ba3155805581e03d3acc69e5abec6f409e7002d43e87976b69b550b063b52e24284f4e2a007011bffffffffffffffff021935dd03a7c092671d6b4be96da58c550ff7b0e0e518900499bc58d4b8960f68ded92896034de28cb934396d018cf44094e1550d1b9d99c21f68c27bffe4a4ac337dbbb0d80219ffff030e1fb1140d1cefc2294b1783b5dee89964a4e568761a2bf87cb5663e72a805c70219ffff03046bee075fa16d005bd4df2050106dbb360bcf695543074426ac295479a3907903cface16b5308b12947b02bb4cfc91c7fc797bfbcca7cc4205a8615eea64bfc96031a77213b7ebeae31b24ad1b345a614b69b6bfec3320deff7014c1fd78c2d9ecf03221ab8d7618c26d35b7fa5aee2d8163b62b7fb0d664686e919ba3a2c4410091a03484ad0736a74cc2bd5686a8baa8f5dfd14e242537a17e85d7a2f4d6f25543c630351de9ccf61662160f1a020fac6d71b850aa5bb3f0d347b9c214c408206238ae60219ffff03e07875526b98225aa058cfe5dd1037ea69161b9b6b43297c26dc02bc3e2d737903b375265e5979fb4f35b372bafcd96fad927cdd2f6261f6b3473899a16d7f5b16039482332f11236bec07554089e3cf57e74dc7863b1a5362e5df9d7dc28884cbbf03457b1b5df6cc28a3a0209345c46076e3bdf3100818b9114e85ddffae0132e801031b52459048bfe5f5ac6463b8e0f854be8e168c68aca60b84e264c2cb79abf572037b3530587aff046299d9ed403afe8d1ad5660edadd459e29b3281c82d7e8feef036c0f2689ec6a998e10d8d0781126431a4478a19f6660dcb2d0b96211b584f3b50398a7aeaf3ce8c887c8ef58bed5d18c56ff45dab753a5bef50a3236dcf9f1caa003368d0b8025404a83e059697dc794c60c9f516f26d32b4466035ea7d8ddb0bc41030534eed5d08d70652cd7a45771218c47118f0020eb961b231ad1651e73db3fe00387362076b84401f9348028a48a9422543616e1b5eb731d9b7953f689463d0529032f0fb36db5b4e525867c2d0c5fc502bb1441fae27bbfde3c829e17aa821968a5035580cc226a771b70ddc4186a051ed219f63bdb63d27f70aa74dd0e54b14eb9190340017cc8fdb13fa3b933113c036423085fb6fcaebc96797adacdc769d28a4e0e0308d3761de941298ed2ebf7b87ade44c183139d6f73739405776277e336bb8a02037d4ed48ff6c21befce3944ed559d345361255c1b563ea1ac692242f8f128df6303b37c0c550b191eb62b49678f335e71829e864c82b2704a4d4fbfa04359d6161903b32a111a3b261ecb0587f31f931193076d5fbd83d7549dc35fc906088eb45a3103534545c6aba15615a14ab7ec75c1a70c985aee3c663b8c99310e34c7385902dc0322f0d01b31f908bc49f9fb7184154408f4b4a6807c652811d24f0f13c8d27e17036e535b87ab9996a9f8ada4ce446afadeb3322ec8dc79d1364cf5db5d7d1ecf7c03402d808d8816fe6a820fbbf03d3cfa0f37f08fd033b70879f32690dc4a808d9005581e0321d73038ac5e9d356d77b974473bd923ef95b565a8b4411dcd447c0640040203a77777b95577fda28a6e77141d4c9a102077e0491ce4e5aa46afce6471bd9179039ed0fe0112070e9ccf63b98ca11474b0b9c58eeb3f2ab9216f77f5cf79d7049404595187608060405234801561001057600080fd5b506004361061028a5760003560e01c80638e0566de1161015c578063c1075329116100ce578063e76d516811610087578063e76d516814610b7e578063eb45716314610b86578063eb5dcd6c14610bb8578063f2fde38b14610be6578063fbffd2c114610c0c578063feaf968c14610c325761028a565b8063c1075329146109a6578063c9807539146109d2578063d09dc33914610ae0578063dc7f012414610ae8578063e4902f8214610af0578063e5fe457714610b2d5761028a565b80639e3ceeab116101205780639e3ceeab146108b5578063a118f249146108db578063b121e14714610901578063b5ab58dc14610927578063b633620c14610944578063bd824706146109615761028a565b80638e0566de1461073157806398e5b12a14610761578063996e8298146107855780639a6fc8f51461078d5780639c849b30146107f75761028a565b80636b14daf81161020057806381411834116101b9578063814118341461064457806381ff70481461069c5780638205bf6a146106d55780638823da6c146106dd5780638ac28d5a146107035780638da5cb5b146107295761028a565b80636b14daf81461053857806370da2f671461060057806370efdf2d146106085780637284e4161461062c57806379ba5097146106345780638038e4a11461063c5761028a565b8063313ce56711610252578063313ce567146103ae5780634fb17470146103cc57806350d25bcd146103fa57806354fd4d5014610402578063585aa7de1461040a578063668a0f02146105305761028a565b80630a7569831461028f5780630eafb25b14610299578063181f5a77146102d157806322adbc781461034e578063299372681461036d575b600080fd5b610297610c3a565b005b6102bf600480360360208110156102af57600080fd5b50356001600160a01b0316610cc8565b60408051918252519081900360200190f35b6102d9610df7565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103135781810151838201526020016102fb565b50505050905090810190601f1680156103405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610356610e17565b6040805160179290920b8252519081900360200190f35b610375610e3b565b6040805163ffffffff96871681529486166020860152928516848401529084166060840152909216608082015290519081900360a00190f35b6103b6610e9c565b6040805160ff9092168252519081900360200190f35b610297600480360360408110156103e257600080fd5b506001600160a01b0381358116916020013516610ec0565b6102bf611148565b6102bf6111d5565b610297600480360360a081101561042057600080fd5b810190602081018135600160201b81111561043a57600080fd5b82018360208201111561044c57600080fd5b803590602001918460208302840111600160201b8311171561046d57600080fd5b919390929091602081019035600160201b81111561048a57600080fd5b82018360208201111561049c57600080fd5b803590602001918460208302840111600160201b831117156104bd57600080fd5b9193909260ff833516926001600160401b03602082013516929190606081019060400135600160201b8111156104f257600080fd5b82018360208201111561050457600080fd5b803590602001918460018302840111600160201b8311171561052557600080fd5b5090925090506111da565b6102bf611978565b6105ec6004803603604081101561054e57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561057857600080fd5b82018360208201111561058a57600080fd5b803590602001918460018302840111600160201b831117156105ab57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611a00945050505050565b604080519115158252519081900360200190f35b610356611a28565b610610611a4c565b604080516001600160a01b039092168252519081900360200190f35b6102d9611a5b565b610297611ae3565b610297611b92565b61064c611c21565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610688578181015183820152602001610670565b505050509050019250505060405180910390f35b6106a4611c83565b6040805163ffffffff94851681529290931660208301526001600160801b0319168183015290519081900360600190f35b6102bf611ca3565b610297600480360360208110156106f357600080fd5b50356001600160a01b0316611d2b565b6102976004803603602081101561071957600080fd5b50356001600160a01b0316611df2565b610610611e69565b610739611e78565b604080516001600160a01b03909316835263ffffffff90911660208301528051918290030190f35b610769611eab565b604080516001600160501b039092168252519081900360200190f35b61061061207e565b6107b3600480360360208110156107a357600080fd5b50356001600160501b031661208d565b60405180866001600160501b03168152602001858152602001848152602001838152602001826001600160501b031681526020019550505050505060405180910390f35b6102976004803603604081101561080d57600080fd5b810190602081018135600160201b81111561082757600080fd5b82018360208201111561083957600080fd5b803590602001918460208302840111600160201b8311171561085a57600080fd5b919390929091602081019035600160201b81111561087757600080fd5b82018360208201111561088957600080fd5b803590602001918460208302840111600160201b831117156108aa57600080fd5b50909250905061212e565b610297600480360360208110156108cb57600080fd5b50356001600160a01b0316612331565b610297600480360360208110156108f157600080fd5b50356001600160a01b03166123f5565b6102976004803603602081101561091757600080fd5b50356001600160a01b031661244b565b6102bf6004803603602081101561093d57600080fd5b503561252c565b6102bf6004803603602081101561095a57600080fd5b50356125b5565b610297600480360360a081101561097757600080fd5b5063ffffffff81358116916020810135821691604082013581169160608101358216916080909101351661263e565b610297600480360360408110156109bc57600080fd5b506001600160a01b03813516906020013561276d565b610297600480360360808110156109e857600080fd5b810190602081018135600160201b811115610a0257600080fd5b820183602082011115610a1457600080fd5b803590602001918460018302840111600160201b83111715610a3557600080fd5b919390929091602081019035600160201b811115610a5257600080fd5b820183602082011115610a6457600080fd5b803590602001918460208302840111600160201b83111715610a8557600080fd5b919390929091602081019035600160201b811115610aa257600080fd5b820183602082011115610ab457600080fd5b803590602001918460208302840111600160201b83111715610ad557600080fd5b919350915035612a30565b6102bf61377e565b6105ec61380f565b610b1660048036036020811015610b0657600080fd5b50356001600160a01b0316613818565b6040805161ffff9092168252519081900360200190f35b610b356138c5565b604080516001600160801b0319909616865263ffffffff909416602086015260ff9092168484015260170b60608401526001600160401b03166080830152519081900360a00190f35b610610613975565b61029760048036036040811015610b9c57600080fd5b5080356001600160a01b0316906020013563ffffffff16613984565b61029760048036036040811015610bce57600080fd5b506001600160a01b0381358116916020013516613ab5565b61029760048036036020811015610bfc57600080fd5b50356001600160a01b0316613bf8565b61029760048036036020811015610c2257600080fd5b50356001600160a01b0316613c96565b6107b3613cec565b6000546001600160a01b03163314610c87576040805162461bcd60e51b81526020600482015260166024820152600080516020615132833981519152604482015290519081900360640190fd5b60315460ff1615610cc6576031805460ff191690556040517f3be8a977a014527b50ae38adda80b56911c267328965c98ddc385d248f53963890600090a15b565b6001600160a01b03811660009081526028602090815260408083208151808301909252805460ff808216845285948401916101009004166002811115610d0a57fe5b6002811115610d1557fe5b9052509050600081602001516002811115610d2c57fe5b1415610d3c576000915050610df2565b6040805160a08101825260025463ffffffff8082168352600160201b820481166020840152600160401b8204811693830193909352600160601b8104831660608301819052600160801b90910490921660808201528251909160009160019060059060ff16601f8110610dab57fe5b601091828204019190066002029054906101000a900461ffff160361ffff1602633b9aca0002905060016009846000015160ff16601f8110610de957fe5b01540301925050505b919050565b60606040518060600160405280602881526020016150e660289139905090565b7f000000000000000000000000000000000000000000000000000000000000000181565b6040805160a08101825260025463ffffffff808216808452600160201b8304821660208501819052600160401b84048316958501869052600160601b8404831660608601819052600160801b90940490921660809094018490529490939290565b7f000000000000000000000000000000000000000000000000000000000000000881565b6000546001600160a01b03163314610f0d576040805162461bcd60e51b81526020600482015260166024820152600080516020615132833981519152604482015290519081900360640190fd5b6003546001600160a01b03908116908316811415610f2b5750611144565b604080516370a0823160e01b815230600482015290516001600160a01b038516916370a08231916024808301926020929190829003018186803b158015610f7157600080fd5b505afa158015610f85573d6000803e3d6000fd5b505050506040513d6020811015610f9b57600080fd5b50610fa69050613d8b565b6000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610ff557600080fd5b505afa158015611009573d6000803e3d6000fd5b505050506040513d602081101561101f57600080fd5b50516040805163a9059cbb60e01b81526001600160a01b0386811660048301526024820184905291519293509084169163a9059cbb916044808201926020929091908290030181600087803b15801561107757600080fd5b505af115801561108b573d6000803e3d6000fd5b505050506040513d60208110156110a157600080fd5b50516110f4576040805162461bcd60e51b815260206004820152601f60248201527f7472616e736665722072656d61696e696e672066756e6473206661696c656400604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0386811691821790925560405190918416907f4966a50c93f855342ccf6c5c0d358b85b91335b2acedc7da0932f691f351711a90600090a350505b5050565b600061118b336000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0092505050565b6111c8576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6111d0614114565b905090565b600481565b868560ff8616601f831115611229576040805162461bcd60e51b815260206004820152601060248201526f746f6f206d616e79207369676e65727360801b604482015290519081900360640190fd5b6000811161127e576040805162461bcd60e51b815260206004820152601a60248201527f7468726573686f6c64206d75737420626520706f736974697665000000000000604482015290519081900360640190fd5b8183146112bc5760405162461bcd60e51b815260040180806020018281038252602481526020018061510e6024913960400191505060405180910390fd5b806003028311611313576040805162461bcd60e51b815260206004820181905260248201527f6661756c74792d6f7261636c65207468726573686f6c6420746f6f2068696768604482015290519081900360640190fd5b6000546001600160a01b03163314611360576040805162461bcd60e51b81526020600482015260166024820152600080516020615132833981519152604482015290519081900360640190fd5b6029541561145d57602980546000198101916000918390811061137f57fe5b6000918252602082200154602a80546001600160a01b03909216935090849081106113a657fe5b6000918252602090912001546001600160a01b031690506113c68161413d565b6001600160a01b03808316600090815260286020526040808220805461ffff199081169091559284168252902080549091169055602980548061140557fe5b600082815260209020810160001990810180546001600160a01b0319169055019055602a80548061143257fe5b600082815260209020810160001990810180546001600160a01b031916905501905550611360915050565b60005b8a8110156117b9576000602860008e8e8581811061147a57fe5b602090810292909201356001600160a01b031683525081019190915260400160002054610100900460ff1660028111156114b057fe5b14611502576040805162461bcd60e51b815260206004820152601760248201527f7265706561746564207369676e65722061646472657373000000000000000000604482015290519081900360640190fd5b6040805180820190915260ff8216815260016020820152602860008e8e8581811061152957fe5b602090810292909201356001600160a01b0316835250818101929092526040016000208251815460ff191660ff90911617808255918301519091829061ff00191661010083600281111561157957fe5b02179055506000915060079050818c8c8581811061159357fe5b6001600160a01b0360209182029390930135831684528301939093526040909101600020541691909114159050611605576040805162461bcd60e51b81526020600482015260116024820152701c185e5959481b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b6000602860008c8c8581811061161757fe5b602090810292909201356001600160a01b031683525081019190915260400160002054610100900460ff16600281111561164d57fe5b1461169f576040805162461bcd60e51b815260206004820152601c60248201527f7265706561746564207472616e736d6974746572206164647265737300000000604482015290519081900360640190fd5b6040805180820190915260ff8216815260026020820152602860008c8c858181106116c657fe5b602090810292909201356001600160a01b0316835250818101929092526040016000208251815460ff191660ff90911617808255918301519091829061ff00191661010083600281111561171657fe5b021790555090505060298c8c8381811061172c57fe5b835460018101855560009485526020948590200180546001600160a01b0319166001600160a01b039590920293909301359390931692909217905550602a8a8a8381811061177657fe5b835460018181018655600095865260209586902090910180546001600160a01b0319166001600160a01b0396909302949094013594909416179091555001611460565b50602b805460ff8916600160a81b0260ff60a81b19909116179055602d80544363ffffffff908116600160201b90810267ffffffff0000000019841617808316600101831663ffffffff1990911617938490559091048116911661182530828f8f8f8f8f8f8f8f614325565b602b60000160006101000a8154816001600160801b03021916908360801c02179055506000602b60000160106101000a81548164ffffffffff021916908364ffffffffff1602179055507f25d719d88a4512dd76c7442b910a83360845505894eb444ef299409e180f8fb982828f8f8f8f8f8f8f8f604051808b63ffffffff1681526020018a6001600160401b0316815260200180602001806020018760ff168152602001866001600160401b031681526020018060200184810384528c8c82818152602001925060200280828437600083820152601f01601f191690910185810384528a8152602090810191508b908b0280828437600083820152601f01601f191690910185810383528681526020019050868680828437600083820152604051601f909101601f19169092018290039f50909d5050505050505050505050505050a150505050505050505050505050565b60006119bb336000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0092505050565b6119f8576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6111d0614427565b6000611a0c838361443a565b80611a1f57506001600160a01b03831632145b90505b92915050565b7f00000000000000000000ffffffffffffffffffffffffffffffffffffffffffff81565b602f546001600160a01b031690565b6060611a9e336000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0092505050565b611adb576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6111d061446a565b6001546001600160a01b03163314611b3b576040805162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015290519081900360640190fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6000546001600160a01b03163314611bdf576040805162461bcd60e51b81526020600482015260166024820152600080516020615132833981519152604482015290519081900360640190fd5b60315460ff16610cc6576031805460ff191660011790556040517faebf329500988c6488a0074e5a0a9ff304561fc5c6fc877aeb1d59c8282c348090600090a1565b6060602a805480602002602001604051908101604052809291908181526020018280548015611c7957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c5b575b5050505050905090565b602d54602b5463ffffffff80831692600160201b9004169060801b909192565b6000611ce6336000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0092505050565b611d23576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6111d06144f7565b6000546001600160a01b03163314611d78576040805162461bcd60e51b81526020600482015260166024820152600080516020615132833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526032602052604090205460ff1615611def576001600160a01b038116600081815260326020908152604091829020805460ff19169055815192835290517f3d68a6fce901d20453d1a7aa06bf3950302a735948037deb182a8db66df2a0d19281900390910190a15b50565b6001600160a01b03818116600090815260076020526040902054163314611e60576040805162461bcd60e51b815260206004820152601760248201527f4f6e6c792070617965652063616e207769746864726177000000000000000000604482015290519081900360640190fd5b611def8161413d565b6000546001600160a01b031681565b60408051808201909152602e546001600160a01b038116808352600160a01b90910463ffffffff16602090920182905291565b600080546001600160a01b0316331480611f6e5750602f5460408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b0390951694636b14daf894929360009391929190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015611f4157600080fd5b505afa158015611f55573d6000803e3d6000fd5b505050506040513d6020811015611f6b57600080fd5b50515b611fbf576040805162461bcd60e51b815260206004820152601d60248201527f4f6e6c79206f776e6572267265717565737465722063616e2063616c6c000000604482015290519081900360640190fd5b6040805160808082018352602b549081901b6001600160801b031916808352600160801b820464ffffffffff8116602080860191909152600160a81b840460ff90811686880152600160b01b90940463ffffffff9081166060808801919091528751948552600884901c909116918401919091529216818501529251919233927f3ea16a923ff4b1df6526e854c9e3a995c43385d70e73359e10623c74f0b52037929181900390910190a2806060015160010163ffffffff1691505090565b6004546001600160a01b031690565b60008060008060006120d6336000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0092505050565b612113576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b61211c86614529565b939a9299509097509550909350915050565b6000546001600160a01b0316331461217b576040805162461bcd60e51b81526020600482015260166024820152600080516020615132833981519152604482015290519081900360640190fd5b8281146121cf576040805162461bcd60e51b815260206004820181905260248201527f7472616e736d6974746572732e73697a6520213d207061796565732e73697a65604482015290519081900360640190fd5b60005b8381101561232a5760008585838181106121e857fe5b905060200201356001600160a01b03169050600084848481811061220857fe5b6001600160a01b0385811660009081526007602090815260409091205492029390930135831693509091169050801580806122545750826001600160a01b0316826001600160a01b0316145b612299576040805162461bcd60e51b81526020600482015260116024820152701c185e595948185b1c9958591e481cd95d607a1b604482015290519081900360640190fd5b6001600160a01b03848116600090815260076020526040902080546001600160a01b0319168583169081179091559083161461231a57826001600160a01b0316826001600160a01b0316856001600160a01b03167f78af32efdcad432315431e9b03d27e6cd98fb79c405fdc5af7c1714d9c0f75b360405160405180910390a45b5050600190920191506121d29050565b5050505050565b6000546001600160a01b0316331461237e576040805162461bcd60e51b81526020600482015260166024820152600080516020615132833981519152604482015290519081900360640190fd5b602f546001600160a01b03908116908216811461114457602f80546001600160a01b0319166001600160a01b03848116918217909255604080519284168352602083019190915280517f27b89aede8b560578baaa25ee5ce3852c5eecad1e114b941bbd89e1eb4bae6349281900390910190a15050565b6000546001600160a01b03163314612442576040805162461bcd60e51b81526020600482015260166024820152600080516020615132833981519152604482015290519081900360640190fd5b611def8161464d565b6001600160a01b038181166000908152600860205260409020541633146124b9576040805162461bcd60e51b815260206004820152601f60248201527f6f6e6c792070726f706f736564207061796565732063616e2061636365707400604482015290519081900360640190fd5b6001600160a01b0381811660008181526007602090815260408083208054336001600160a01b031980831682179093556008909452828520805490921690915590519416939092849290917f78af32efdcad432315431e9b03d27e6cd98fb79c405fdc5af7c1714d9c0f75b39190a45050565b600061256f336000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0092505050565b6125ac576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b611a22826146c8565b60006125f8336000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0092505050565b612635576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b611a22826146fe565b6004546000546001600160a01b0391821691163314806126ff575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b1580156126d257600080fd5b505afa1580156126e6573d6000803e3d6000fd5b505050506040513d60208110156126fc57600080fd5b50515b612750576040805162461bcd60e51b815260206004820181905260248201527f4f6e6c79206f776e65722662696c6c696e6741646d696e2063616e2063616c6c604482015290519081900360640190fd5b612758613d8b565b612765868686868661473d565b505050505050565b6000546001600160a01b031633148061282e57506004805460408051630d629b5f60e31b8152339381018481526024820192835236604483018190526001600160a01b0390941694636b14daf8949093600093919291606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b15801561280157600080fd5b505afa158015612815573d6000803e3d6000fd5b505050506040513d602081101561282b57600080fd5b50515b61287f576040805162461bcd60e51b815260206004820181905260248201527f4f6e6c79206f776e65722662696c6c696e6741646d696e2063616e2063616c6c604482015290519081900360640190fd5b6000612889614826565b600354604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156128da57600080fd5b505afa1580156128ee573d6000803e3d6000fd5b505050506040513d602081101561290457600080fd5b5051905081811015612954576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6003546001600160a01b031663a9059cbb85612972858503876149da565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156129b857600080fd5b505af11580156129cc573d6000803e3d6000fd5b505050506040513d60208110156129e257600080fd5b5051612a2a576040805162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742066756e647360701b604482015290519081900360640190fd5b50505050565b60005a9050612a438888888888886149f1565b3614612a96576040805162461bcd60e51b815260206004820152601960248201527f7472616e736d6974206d65737361676520746f6f206c6f6e6700000000000000604482015290519081900360640190fd5b612a9e614f7b565b6040805160808082018352602b549081901b6001600160801b0319168252600160801b810464ffffffffff166020830152600160a81b810460ff1692820192909252600160b01b90910463ffffffff166060808301919091529082526000908a908a90811015612b0d57600080fd5b813591602081013591810190606081016040820135600160201b811115612b3357600080fd5b820183602082011115612b4557600080fd5b803590602001918460208302840111600160201b83111715612b6657600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060408801525050506080840182905283515190925060589190911b906001600160801b0319808316911614612c0d576040805162461bcd60e51b81526020600482015260156024820152740c6dedcccd2ce88d2cecae6e840dad2e6dac2e8c6d605b1b604482015290519081900360640190fd5b608083015183516020015164ffffffffff808316911610612c64576040805162461bcd60e51b815260206004820152600c60248201526b1cdd185b19481c995c1bdc9d60a21b604482015290519081900360640190fd5b83516040015160ff168911612cb8576040805162461bcd60e51b81526020600482015260156024820152746e6f7420656e6f756768207369676e61747572657360581b604482015290519081900360640190fd5b601f891115612d04576040805162461bcd60e51b8152602060048201526013602482015272746f6f206d616e79207369676e61747572657360681b604482015290519081900360640190fd5b868914612d58576040805162461bcd60e51b815260206004820152601e60248201527f7369676e617475726573206f7574206f6620726567697374726174696f6e0000604482015290519081900360640190fd5b601f8460400151511115612db3576040805162461bcd60e51b815260206004820152601e60248201527f6e756d206f62736572766174696f6e73206f7574206f6620626f756e64730000604482015290519081900360640190fd5b83600001516040015160020260ff1684604001515111612e1a576040805162461bcd60e51b815260206004820152601e60248201527f746f6f206665772076616c75657320746f207472757374206d656469616e0000604482015290519081900360640190fd5b886001600160401b0381118015612e3057600080fd5b506040519080825280601f01601f191660200182016040528015612e5b576020820181803683370190505b50606085015260005b60ff81168a1115612eb457868160ff1660208110612e7e57fe5b1a60f81b85606001518260ff1681518110612e9557fe5b60200101906001600160f81b031916908160001a905350600101612e64565b508360400151516001600160401b0381118015612ed057600080fd5b506040519080825280601f01601f191660200182016040528015612efb576020820181803683370190505b506020850152612f09614faf565b60005b8560400151518160ff161015612ff7576000858260ff1660208110612f2d57fe5b1a90508281601f8110612f3c57fe5b602002015115612f93576040805162461bcd60e51b815260206004820152601760248201527f6f6273657276657220696e646578207265706561746564000000000000000000604482015290519081900360640190fd5b6001838260ff16601f8110612fa457fe5b91151560209283029190910152869060ff8416908110612fc057fe5b1a60f81b87602001518360ff1681518110612fd757fe5b60200101906001600160f81b031916908160001a90535050600101612f0c565b503360009081526028602090815260408083208151808301909252805460ff8082168452929391929184019161010090910416600281111561303557fe5b600281111561304057fe5b905250905060028160200151600281111561305757fe5b14801561308b5750602a816000015160ff168154811061307357fe5b6000918252602090912001546001600160a01b031633145b6130dc576040805162461bcd60e51b815260206004820152601860248201527f756e617574686f72697a6564207472616e736d69747465720000000000000000604482015290519081900360640190fd5b5050835164ffffffffff90911660209091015250506040516000908a908a90808383808284376040519201829003909120945061311d9350614faf92505050565b613125614fce565b60005b898110156133155760006001858760600151848151811061314557fe5b60209101015160f81c601b018e8e8681811061315d57fe5b905060200201358d8d8781811061317057fe5b9050602002013560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156131cb573d6000803e3d6000fd5b505060408051601f198101516001600160a01b03811660009081526028602090815290849020838501909452835460ff8082168552929650929450840191610100900416600281111561321a57fe5b600281111561322557fe5b905250925060018360200151600281111561323c57fe5b1461328e576040805162461bcd60e51b815260206004820152601e60248201527f61646472657373206e6f7420617574686f72697a656420746f207369676e0000604482015290519081900360640190fd5b8251849060ff16601f811061329f57fe5b6020020151156132ed576040805162461bcd60e51b81526020600482015260146024820152736e6f6e2d756e69717565207369676e617475726560601b604482015290519081900360640190fd5b600184846000015160ff16601f811061330257fe5b9115156020909202015250600101613128565b5050505060005b6001826040015151038110156133c65760008260400151826001018151811061334157fe5b602002602001015160170b8360400151838151811061335c57fe5b602002602001015160170b13159050806133bd576040805162461bcd60e51b815260206004820152601760248201527f6f62736572766174696f6e73206e6f7420736f72746564000000000000000000604482015290519081900360640190fd5b5060010161331c565b506040810151805160009190600281049081106133df57fe5b602002602001015190508060170b7f000000000000000000000000000000000000000000000000000000000000000160170b1315801561344557507f00000000000000000000ffffffffffffffffffffffffffffffffffffffffffff60170b8160170b13155b613496576040805162461bcd60e51b815260206004820152601e60248201527f6d656469616e206973206f7574206f66206d696e2d6d61782072616e67650000604482015290519081900360640190fd5b81516060908101805163ffffffff60019091018116909152604080518082018252601785810b8083526001600160401b0342811660208086019182528a5189015188166000908152602c8252878120965187549351909416600160c01b029390950b6001600160c01b039081166001600160c01b03199093169290921790911691909117909355875186015184890151848a01516080808c015188519586523386890181905291860181905260a0988601898152845199870199909952835194909916997ff6a97944f31ea060dfde0566e4167c1a1082551e64b60ecb14d599a9d023d451998c999298949793969095909492939185019260c086019289820192909102908190849084905b838110156135ba5781810151838201526020016135a2565b50505050905001838103825285818151815260200191508051906020019080838360005b838110156135f65781810151838201526020016135de565b50505050905090810190601f1680156136235780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a281516060015160408051428152905160009263ffffffff16917f0109fc6f55cf40689f02fbaad7af7fe7bbac8a3d2186600afc7d3e10cac60271919081900360200190a381600001516060015163ffffffff168160170b7f0559884fd3a460db3073b7fc896cc77986f16e378210ded43186175bf646fc5f426040518082815260200191505060405180910390a36136d88260000151606001518260170b614a09565b5080518051602b8054602084015160408501516060909501516001600160801b031990921660809490941c9390931764ffffffffff60801b1916600160801b64ffffffffff909416939093029290921760ff60a81b1916600160a81b60ff909416939093029290921763ffffffff60b01b1916600160b01b63ffffffff9283160217909155821061376557fe5b613773828260200151614b0f565b505050505050505050565b600354604080516370a0823160e01b8152306004820152905160009283926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b1580156137ce57600080fd5b505afa1580156137e2573d6000803e3d6000fd5b505050506040513d60208110156137f857600080fd5b505190506000613806614826565b90910391505090565b60315460ff1681565b6001600160a01b03811660009081526028602090815260408083208151808301909252805460ff80821684528594840191610100900416600281111561385a57fe5b600281111561386557fe5b905250905060008160200151600281111561387c57fe5b141561388c576000915050610df2565b60016005826000015160ff16601f81106138a257fe5b601091828204019190066002029054906101000a900461ffff1603915050919050565b600080808080333214613916576040805162461bcd60e51b81526020600482015260146024820152734f6e6c792063616c6c61626c6520627920454f4160601b604482015290519081900360640190fd5b5050602b5463ffffffff600160b01b820481166000908152602c6020526040902054608083901b96600160801b909304600881901c909216955064ffffffffff9091169350601781900b9250600160c01b90046001600160401b031690565b6003546001600160a01b031690565b6000546001600160a01b031633146139d1576040805162461bcd60e51b81526020600482015260166024820152600080516020615132833981519152604482015290519081900360640190fd5b60408051808201909152602e546001600160a01b03808216808452600160a01b90920463ffffffff1660208401528416141580613a1e57508163ffffffff16816020015163ffffffff1614155b15613ab0576040805180820182526001600160a01b0385811680835263ffffffff8681166020948501819052602e80546001600160a01b031916841763ffffffff60a01b1916600160a01b8302179055865187860151875193168352948201528451919493909216927fb04e3a37abe9c0fcdfebdeae019a8e2b12ddf53f5d55ffb0caccc1bedaca1541928290030190a35b505050565b6001600160a01b03828116600090815260076020526040902054163314613b23576040805162461bcd60e51b815260206004820152601d60248201527f6f6e6c792063757272656e742070617965652063616e20757064617465000000604482015290519081900360640190fd5b336001600160a01b0382161415613b81576040805162461bcd60e51b815260206004820152601760248201527f63616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015290519081900360640190fd5b6001600160a01b03808316600090815260086020526040902080548383166001600160a01b031982168117909255909116908114613ab0576040516001600160a01b038084169133918616907f84f7c7c80bb8ed2279b4aab5f61cd05e6374073d38f46d7f32de8c30e9e3836790600090a4505050565b6000546001600160a01b03163314613c45576040805162461bcd60e51b81526020600482015260166024820152600080516020615132833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000546001600160a01b03163314613ce3576040805162461bcd60e51b81526020600482015260166024820152600080516020615132833981519152604482015290519081900360640190fd5b611def81614d37565b6000806000806000613d35336000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0092505050565b613d72576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b613d7a614dae565b945094509450945094509091929394565b6040805160a08101825260025463ffffffff8082168352600160201b820481166020840152600160401b8204811683850152600160601b820481166060840152600160801b90910416608082015260035482516103e081019384905291926001600160a01b0390911691600091600590601f908285855b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411613e02575050604080516103e0810191829052959650600095945060099350601f9250905082845b815481526020019060010190808311613e5c57505050505090506000602a805480602002602001604051908101604052809291908181526020018280548015613ece57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613eb0575b5050505050905060005b81518110156140f857600060018483601f8110613ef157fe5b6020020151039050600060018684601f8110613f0957fe5b60200201510361ffff169050600082896060015163ffffffff168302633b9aca000201905060008111156140ed57600060076000878781518110613f4957fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b03169050886001600160a01b031663a9059cbb82846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015613fde57600080fd5b505af1158015613ff2573d6000803e3d6000fd5b505050506040513d602081101561400857600080fd5b5051614050576040805162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742066756e647360701b604482015290519081900360640190fd5b60018886601f811061405e57fe5b61ffff909216602092909202015260018786601f811061407a57fe5b602002018181525050886001600160a01b0316816001600160a01b03168787815181106140a357fe5b60200260200101516001600160a01b03167fd0b1dac935d85bd54cf0a33b0d41d39f8cf53a968465fc7ea2377526b8ac712c856040518082815260200191505060405180910390a4505b505050600101613ed8565b50614106600584601f614fe5565b50612765600983601f61507b565b602b54600160b01b900463ffffffff166000908152602c6020526040902054601790810b900b90565b6001600160a01b03811660009081526028602090815260408083208151808301909252805460ff8082168452929391929184019161010090910416600281111561418357fe5b600281111561418e57fe5b9052509050600061419e83610cc8565b90508015613ab0576001600160a01b03808416600090815260076020908152604080832054600354825163a9059cbb60e01b8152918616600483018190526024830188905292519295169363a9059cbb9360448084019491939192918390030190829087803b15801561421057600080fd5b505af1158015614224573d6000803e3d6000fd5b505050506040513d602081101561423a57600080fd5b5051614282576040805162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742066756e647360701b604482015290519081900360640190fd5b60016005846000015160ff16601f811061429857fe5b601091828204019190066002026101000a81548161ffff021916908361ffff16021790555060016009846000015160ff16601f81106142d357fe5b01556003546040805184815290516001600160a01b039283169284811692908816917fd0b1dac935d85bd54cf0a33b0d41d39f8cf53a968465fc7ea2377526b8ac712c9181900360200190a450505050565b60008a8a8a8a8a8a8a8a8a8a604051602001808b6001600160a01b031681526020018a6001600160401b0316815260200180602001806020018760ff168152602001866001600160401b031681526020018060200184810384528c8c82818152602001925060200280828437600083820152601f01601f191690910185810384528a8152602090810191508b908b0280828437600083820152601f01601f191690910185810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509d50505050505050505050505050506040516020818303038152906040528051906020012090509a9950505050505050505050565b602b54600160b01b900463ffffffff1690565b6001600160a01b03821660009081526032602052604081205460ff1680611a1f57505060315460ff161592915050565b60308054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015611c795780601f106144cb57610100808354040283529160200191611c79565b820191906000526020600020905b8154815290600101906020018083116144d957509395945050505050565b602b54600160b01b900463ffffffff166000908152602c6020526040902054600160c01b90046001600160401b031690565b600080600080600063ffffffff866001600160501b031611156040518060400160405280600f81526020016e139bc819185d18481c1c995cd95b9d608a1b815250906145f35760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156145b85781810151838201526020016145a0565b50505050905090810190601f1680156145e55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505063ffffffff83166000908152602c6020908152604091829020825180840190935254601781810b810b810b808552600160c01b9092046001600160401b031693909201839052949594900b939092508291508490565b6001600160a01b03811660009081526032602052604090205460ff16611def576001600160a01b038116600081815260326020908152604091829020805460ff19166001179055815192835290517f87286ad1f399c8e82bf0c4ef4fcdc570ea2e1e92176e5c848b6413545b885db49281900390910190a150565b600063ffffffff8211156146de57506000610df2565b5063ffffffff166000908152602c6020526040902054601790810b900b90565b600063ffffffff82111561471457506000610df2565b5063ffffffff166000908152602c6020526040902054600160c01b90046001600160401b031690565b6040805160a0808201835263ffffffff88811680845288821660208086018290528984168688018190528985166060808901829052958a1660809889018190526002805463ffffffff1916871767ffffffff000000001916600160201b8702176bffffffff00000000000000001916600160401b85021763ffffffff60601b1916600160601b84021763ffffffff60801b1916600160801b830217905589519586529285019390935283880152928201529283015291517fd0d9486a2c673e2a4b57fc82e4c8a556b3e2b82dd5db07e2c04a920ca0f469b6929181900390910190a15050505050565b604080516103e0810191829052600091829190600590601f908285855b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116148435790505050505050905060005b601f8110156148b35760018282601f811061489c57fe5b60200201510361ffff169290920191600101614885565b506040805160a08101825260025463ffffffff8082168352600160201b82048116602080850191909152600160401b8304821684860152600160601b8304821660608501819052600160801b9093049091166080840152602a805485518184028101840190965280865296909202633b9aca000295929360009390929183018282801561496957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161494b575b5050604080516103e0810191829052949550600094935060099250601f915082845b81548152602001906001019080831161498b575050505050905060005b82518110156149d25760018282601f81106149bf57fe5b60200201510395909501946001016149a8565b505050505090565b6000818310156149eb575081611a22565b50919050565b602083810286019082020160e4019695505050505050565b60408051808201909152602e546001600160a01b038116808352600160a01b90910463ffffffff166020830152614a405750611144565b600019830163ffffffff8181166000818152602c60209081526040918290205486820151875184516024810196909652601792830b90920b604486018190528a8716606487015260848087018b90528551808803909101815260a4909601909452918401805163beed9b5160e01b6001600160e01b039091161790529193614acb9391169190614e09565b61232a576040805162461bcd60e51b815260206004820152601060248201526f696e73756666696369656e742067617360801b604482015290519081900360640190fd5b3360009081526028602090815260408083208151808301909252805460ff80821684529293919291840191610100909104166002811115614b4c57fe5b6002811115614b5757fe5b9052506040805160a08101825260025463ffffffff8082168352600160201b820481166020840152600160401b8204811683850152600160601b820481166060840152600160801b90910416608082015281516103e081019283905292935091614c0b91859190600590601f90826000855b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411614bc95790505050505050614e45565b614c1990600590601f614fe5565b50600282602001516002811115614c2c57fe5b14614c7e576040805162461bcd60e51b815260206004820181905260248201527f73656e7420627920756e64657369676e61746564207472616e736d6974746572604482015290519081900360640190fd5b6000614ca5633b9aca003a04836020015163ffffffff16846000015163ffffffff16614eba565b90506010360260005a90506000614cc48863ffffffff16858585614ee0565b6001600160801b031690506000620f4240866040015163ffffffff16830281614ce957fe5b049050856080015163ffffffff16633b9aca0002816009896000015160ff16601f8110614d1257fe5b015401016009886000015160ff16601f8110614d2a57fe5b0155505050505050505050565b6004546001600160a01b03908116908216811461114457600480546001600160a01b0319166001600160a01b03848116918217909255604080519284168352602083019190915280517f793cb73064f3c8cde7e187ae515511e6e56d1ee89bf08b82fa60fb70f8d489129281900390910190a15050565b602b54600160b01b900463ffffffff166000818152602c6020908152604091829020825180840190935254601781810b810b810b808552600160c01b9092046001600160401b031693909201839052929392900b9181908490565b60005a6113888110614e3d5761138881039050846040820482031115614e3d576000808451602086016000888af150600191505b509392505050565b614e4d614faf565b60005b8351811015614eb2576000848281518110614e6757fe5b016020015160f81c9050614e8c8482601f8110614e8057fe5b60200201516001614f63565b848260ff16601f8110614e9b57fe5b61ffff909216602092909202015250600101614e50565b509092915050565b60008383811015614ecd57600285850304015b614ed781846149da565b95945050505050565b600081851015614f37576040805162461bcd60e51b815260206004820181905260248201527f6761734c6566742063616e6e6f742065786365656420696e697469616c476173604482015290519081900360640190fd5b818503830161179301633b9aca00858202026001600160801b038110614f5957fe5b9695505050505050565b6000611a1f8261ffff168461ffff160161ffff6149da565b6040518060a00160405280614f8e6150a9565b81526060602082018190526040820181905280820152600060809091015290565b604051806103e00160405280601f906020820280368337509192915050565b604080518082019091526000808252602082015290565b60028301918390821561506b5791602002820160005b8382111561503b57835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302614ffb565b80156150695782816101000a81549061ffff021916905560020160208160010104928301926001030261503b565b505b506150779291506150d0565b5090565b82601f810192821561506b579160200282015b8281111561506b57825182559160200191906001019061508e565b60408051608081018252600080825260208201819052918101829052606081019190915290565b5b8082111561507757600081556001016150d156fe416363657373436f6e74726f6c6c65644f6666636861696e41676772656761746f7220342e302e306f7261636c6520616464726573736573206f7574206f6620726567697374726174696f6e4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000a26469706673582212202938f61342c36109a44868dd1c9a82c61c0c3b90ed86f8f0bd641bc4b1a217ee64736f6c634300070600330343693cf7cb9a2efe6935486251a4bc0e33cfa2cb65ada0d270886e950e04e57e0395216e338ef4e412edf6ed5c62f125227ac8555693a3666a9574a8bd7db7e42600582003de35293bb3c9bc9dd6571ec82ee53a34c187f0c31cf9f06e6aaa3fe1ed6570581c65c8a82b000000000000000000000000000000000000003aa93b272403aedaa556c601bad81f7ea7f85307be037c6ad0b525d54f813a08891ca0456d4503c3dcf58c3595eaab13a7c8f6886ceb44424ace351ca9eb70fedf48b6ba4e21c300582003b86bbbc8cf3c82c276bac4617ace316667fb0754d984b5482aa4887e4b2dd0581c64dfdac70000000000000000000000000000000000000026a242e41000582003a15abe1aa746c8e63018bbb0ed17d5ff398372c2a0675ec055fd3898220890581c65419d27000000000000000000000000000000000000002a84070e3b0395430d08e8df9f623a5913662d6b39bfcfbc8455c5964f7f25876d3a67ea086c035a22d127660418612c8b6df76de07a621e88a9ebf6becc47a95168d835df17d103a4c9d3675129c210d9e6d0265ba2391850dba9da0830c1b6736a3219b38f6bfd033fa033eafda84d4aa66f68a2c3a408a9ba88112474289880af33e70a051b8f3901410803061608a7082d8c3016cbef254cd75f62cd1a04589ca02661b24b181d43ffbb1c00581f024e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f58182e0e0a000169a40347ddec946856fa8055ac2202f633de3300581f020a4a0291b09f6643634a39b46a65c8c84ac75d1d754811fb5b736e6551b2581c64b3f6d7000000000000000000000000000000000000002cf893d94000581f02ca6c0b7515c1387ba6c0944d7828f7b40f2149256c8a98188d5335fd7b23581c659dbf1b0000000000000000000000000000000000000036baa7e1eb00581f0237d6422cb341df0193f27c2c6b696a0e89a0fb4191b3e64465fc77cc016c581c64e54b0300000000000000000000000000000000000000260cfa7da002190c50039d14bb691c66bd4db512acdb2eb7c8173599e90e035d11ca07051f56ccf56473037972976ed058756511e3e52f346fb8e8bab437c5554379d0a58835ac29e3124f03273141e590613e9ed437ae687fb6ad3be75fd7160054575de89b3e7727b77c320219fdbf038cbebc1f19a426a7bed26c843680ef971809d7992990ff4b259ef4135442f3c803e0b79c414f8e5596d03f8eb160e4bf347b075c24a8fa4ffbcc1243ff1de924df039e13cd222604a3297d59c955205a89fbe4fcfb12f14747297a0f72dc65fb0ddc03a40b79d23e92bc9a4fd15c6808bf07c98da1cfb9f13ce28f6ef59fad0bf9dfb203005f564c9456a2f9b7e5f973be89016bf2e7d357871abdbb6a606682354cfe810383b66f2a9fa0895c347ae2b9499ef4de13976e3d3a62eb18085389ea6c94345c0302aac3698434f423f813ba49416653995c23121165fb3ffd0336abcfbb1403dc036342bdae9b71f520fba89d45329fe6904c5cef6178e627c0d8b9a5d55f90ab5503f9b963243e296be68e929b174277507f18a9087c1afdaa7a3e4b3c231cc36c5403eb39fd24103313d057db2e9c5473f2e2aa3be4e7dfab7c409b1acefc6943bebf0358718bdae52c7649f32241ee195ba2aef58fac43bd3d6814eda60dcd29477f310316899d6544144ad710ff018811d4dd8362fff87c9de86e4ec6242e0417f576bf03f8fc66916ba8d20b997fb9dd1facb22d975460402fbf34875b25c6c12265276f03edc56b40366a80072abe8ee32f66d580f443da9bd0f39411cf028c09fec819a30219ffff03748a2e5d2c012206146dd822a660c07eb450fc8dee1dd7358b45eb455960d7050340d4dfc3b25c43b9e0ef1058c9b3cdeadcaa0ea899babb4457aeee1f2a2832ad03416815b9a42907d32f9a5f5026a809659a4f6bf84f4614d6f56a21fd4e66f5c803545bb0158e49ce6e46ecee9d94d7564fd6ffedc3d1a808db41f0fb2938220e0f03c7ccc4ab7bab02c092b42efd879f6518e33472ef3da7afaf113999f7fd87ae7803d118d1926537f1f8668bc06a9d8ae7eb6d4e8b80d49a7cc25512cd4d347ea3840388aae65e11802c5ef42de66373546bb78f8cc758c2f0f9db57e57d4a2522e4d7036aee37e088276154545ba4e8c2504fd02dfc17674d0566503bd9b3c1230cddcf038fdd3124d7ebb00b05ccd65b54f53765aec25a17429d5fdedfdf43678786d6f603f4fa04eb74df7b2ac175a2bb985addc5fb7022684139d5954cc19434230f9e7b03336e2cc92f8ebd23dd5ed5e10c5c7f6bed793effb49228ac6f1756b37d1f966c033ed176846d270aa18db9096fe4f9b9137fdc05b8d21834dfe2f03be57bcf877003e54730b6cb9d92678b38703de1b231fdd71ac3d04cce4d9da29160ed896744cf039ad1eb128fb96529323b2ee92b19e51e34f2b69a9a839fa3ac0f108d7991e3f50219ffff05581e034886b1a70ae77c25b681703f9ae09f52c32b850d7546182843fcc186b0070119518705581e03f62614976d284e7e721af792a75f5ea334ff31e55246bbb85e194a3d600c034703c8dc2c1bfa56033d7e485194480f49838c4bc949d56e6b0063abe0c261ee98cec86247293b44ae05581e0353592cf104ebe09e3a87f9974467a39d07deb3e57538b8ff3d2cf6bb20040305581e03781773c8c03163e3a3620539f67e736adadee52cfdae5c0467ea8bd5500c0246f332c07943980315f2adb176e17ebfd73c507d85e6c1bff295f733e4a4618fbf47a15b73148a650360dd50876647af16ff77e424f71c5b94a330919fcaf2932e738a9e2c4efa4a5805581e03eb4c1b4e2917d5266b8abf3a66f530a55533cdca0e5ce72dcf09962f0007011bffffffffffffffff03eaa4b82641084a8d979c7a16e41d7c94ecc521c0121d302caa2be37e316f5f8905581e03a114801e33acefa30b651b7aadb5a0ced4bfb0bc3717d8d97d3ae9dc8004050219aee7030064c2473f837b51f03e3bb73742ee8495b2d872794f0f0e97805c545b9ba90c03985ffb315bd6621b3de584d9d43da813f32aa1d20b84ba854490c7756c3e7f2a0385e3969563cc49ef32d8a9f99b326e672917cd323b3d1320bf3253a774d04ab00219ffff03bfd12f7061737e5aa0822bd2b277f3d565e7ccaab8a82b6b0e2ffca1c28587bc03a034747455346d841fd964f8020ed49d7a9e767efb109b17d03458b4da3b4b9103ea55b68186cc47ae35ba4621991f4eee0a21209e3e886ef0c4718293b32c66fc03b5ab5e796895f01364c2f99f652e484912893e92bfb8eb3c51b979745849c049039a17e41d2aacc3ff521057d031aba81924fc1c4f91cbe97278aaf5c203737db60219ffff03b907d40c8ccea7c3b65e52ddca76797485f7dcbd03db9b3b0053cd7f8344810403d5ae6c2dd85463cddce53d9e9c3c867d3e4af170250a42f9796848e433f3186d03fab1a64e9a916bc92a1b5afed23961ef91d9f4546743ce91ae5b9a5a38647da4038e7fcd6653dcc9ef5039beb67086c5b5217762fbcf1d625a086dc5e3b98e549a03c6c8b2f51867c3e9917ebd25e05dbd7140dca55642ca89375ef00f459fd29bf603f52a41aff20014c17762293ef5fb4b75eaf5a7ccbb2a6a4f5786a58466f8067e03bd9ecbd03c439f6aac4f1ea01eea84735a356d1c16c17b2fe534290dc7c1e1e803e675b0bfe2ee9cac5260b13ffa99e920cf2c5ec0b24de5baff94464db8faf4da038873aa261acaaf4cd0be6f10f61c1f66dc0c81da0be4e131f90cf74fad5f871803d22eb5b8cab403ac1fe2f48777109ba6448283834c780f858ea080902ecb3d8203899abde16baa07d5277e04b369278f78c35d233eb4348f4f7d6c15d8bf2bdd2f0358ce9781d3f117b69794a03f29285e34074874dd2cd1069060be72151b6489f603fc804c9f076adc6ff4b442ec92c8f6032eb5cda460cabd9112ded304a5f98ace0384250e1f26f90e37d241c0bd81d35d141acf42859802c2131244d9202d623b5b037f40eb25a8dca93609b98c13b0dc29840503eff16ae5d501324a7ebd1a7029320219ffff035c36f934ff1d8a66c0e03f7d2f25b3131e10922f586db2b3593f544ad6d1785503491174b9ad95a39b09703ed7a71d7000959e2089b2144bbc63d1c68b69ec5d0403237ef0d7f69640b95413379a0825f9fe7c9ea25a19574524e5f733f533b9fe7c03ae9d27f6faa8d400908d029f92ae204a3b7ade26fc49bfde1e9aa1bbcaec16c203882c35aa27e618dcc44500cdec6ede2a04a93747b4289b851c7226f9ee529d7c03e66aed45eb91f0312a0ada3dbf3954b417ae41e0610f54f8b1d9e698e78ee2f8033a8690d3d437ada962bf40b48d97b4f490e3f94e807037e986f7d4eda0092d450381f8ddada23c7357c24648b6ecb3a29f4a02681e1a2daba20e7ae4bc99ea4fdc03adae8edeb1c448a96008101590a2ca96c3c5d8dce2544ee769cca9df963cec7e03bac15be24553d97db1b11e7f020068f6150f1212dd39f8e20f80eb830ca9197503f142768a86b0d79d04255ee7fa07c0865f1e2f18b62daf23d7a7fd838cdc89710313f542f2fc654b2edb35b853cd405cf19bc799dfb3279a41bef37f316a2332f603c9f4b3c5a03f72df1a59ab755c833470f304cc2f844bece2d0b2782d075237de030bf5d20432b1c990b8b96c9d919a9bee0f7ff5056f5a0fbcf75f925f0f7755ac0306b90b96cabe405e0351720def33ce8b3947e59395ca8089c900c3b9c8ba35f10363dbf63af9e7b75db45eabe1318019ce85ec1d5b3026b62c42d28f9e9cb3bc99032e3e13fd10a781345546a95688a26c0d3f767abf6452828dcc43a4cd14b3e7350343e38d177514733aedc3ccaa030aab2f356d3b062225e1dde4d61c0cf564d6c8035b3346aec180979d01fbfc24912d15d7f141ac53e81ac63a77a727459310fe29034ac87693640c249da2264443c782600e43c8ad58a249352c610ec6842155b8da031410f25c9a915f6d2aac3599200046a1b309da0e4db492e399086954222ddcbc03dee653838a31dd2e03a678e5b396f8f5670091fe50900a1f0f8c210c31f76c990368d5cdd249ce43e0b56ec2807ddaa95b42b5f4e368bcc5b48688692fd7225bc903e70aca67b7d3edd426b03aa9ad96e3be982d9a1c947e59c4e4a071cdf428f01e039cdd527bc7b4779e5d60ff8aee0727c202d813f9c4837cea5e328e6e9fb5bbc70316fc1b780ce60e7c3b0313fff194c2293fb8c694302328f6f76eacf39ac483d30359f4111374c39184ce835f1992ac60a65ed8c36bd2e6fcffb98a377ae13d1bbe03999ce791a88938af76a2be6697cb2b7dc42d15e09d5ac4421d285cbf429da13603a4fe496d9e57c8ce303159235f7072d47e73c732a1ab00bd12e80c83295165c40331ba02c56a65908f9e4650d0c5ff3ba188f3e0b0a6743435b508562a556e04f6030011e480a7a40b8a2a66cc5c71ac2d3325e5d324e8958dc296d68aa34e51330b033841e4ac570304002351ce7a8f1c6caeb75da88c9ef1eb9468687c0eadb32c0203e391a065a06abe4ec4ecccafb78841ec2f229f489ebd6958ea93a1ac44f13fa505581e035450d5bcb9ad2ae24b889f1943a404c2cbfd7486d4ede817879d7ff4400c02471798d8f1b6ec0005581e03e0744cf005255d27d7c024e3b59b6bd144a96bf37baed82dbe1eef27900c014634c02d65a000031e8304f1e7881bd20ba9ce1b8274ddf6e5514fa5286c08694d27211f5afbe58505581d0254297ba7ff1e0600415ef0d73511553555156cc197f971255beda7c60c03474f32e83d29232905581d038462f2950406f0979444b98b55a149bb93d437af302b4c7a1cd6eb600c0447015738255e5fa6045917c2608060405234801561001057600080fd5b50600436106101585760003560e01c806379cc6790116100c3578063a9059cbb1161007c578063a9059cbb1461042b578063aa271e1a14610457578063d505accf1461047d578063dd62ed3e146104ce578063e3056a34146104fc578063f2fde38b1461050457610158565b806379cc6790146103775780637ecebe00146103a357806395d89b41146103c9578063983b2d56146103d157806398650275146103f7578063a457c2d7146103ff57610158565b8063313ce56711610115578063313ce567146102b657806339509351146102d457806340c10f191461030057806342966c681461032c57806370a082311461034957806379ba50971461036f57610158565b806306fdde031461015d578063095ea7b3146101da5780630c340a241461021a57806318160ddd1461023e57806323b872dd146102585780633092afd51461028e575b600080fd5b61016561052a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019f578181015183820152602001610187565b50505050905090810190601f1680156101cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610206600480360360408110156101f057600080fd5b506001600160a01b0381351690602001356105c0565b604080519115158252519081900360200190f35b6102226105dd565b604080516001600160a01b039092168252519081900360200190f35b6102466105ec565b60408051918252519081900360200190f35b6102066004803603606081101561026e57600080fd5b506001600160a01b038135811691602081013590911690604001356105f2565b6102b4600480360360208110156102a457600080fd5b50356001600160a01b0316610679565b005b6102be6106dd565b6040805160ff9092168252519081900360200190f35b610206600480360360408110156102ea57600080fd5b506001600160a01b0381351690602001356106e6565b6102b46004803603604081101561031657600080fd5b506001600160a01b038135169060200135610734565b6102b46004803603602081101561034257600080fd5b5035610793565b6102466004803603602081101561035f57600080fd5b50356001600160a01b03166107a4565b6102b46107bf565b6102b46004803603604081101561038d57600080fd5b506001600160a01b0381351690602001356108ce565b610246600480360360208110156103b957600080fd5b50356001600160a01b0316610928565b61016561093a565b6102b4600480360360208110156103e757600080fd5b50356001600160a01b031661099b565b6102b46109fc565b6102066004803603604081101561041557600080fd5b506001600160a01b038135169060200135610a07565b6102066004803603604081101561044157600080fd5b506001600160a01b038135169060200135610a6f565b6102066004803603602081101561046d57600080fd5b50356001600160a01b0316610a83565b6102b4600480360360e081101561049357600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610aa1565b610246600480360360408110156104e457600080fd5b506001600160a01b0381358116916020013516610c95565b610222610cc0565b6102b46004803603602081101561051a57600080fd5b50356001600160a01b0316610ccf565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105b65780601f1061058b576101008083540402835291602001916105b6565b820191906000526020600020905b81548152906001019060200180831161059957829003601f168201915b5050505050905090565b60006105d46105cd610e50565b8484610e54565b50600192915050565b6000546001600160a01b031681565b60045490565b60006105ff848484610f40565b61066f8461060b610e50565b61066a856040518060600160405280602881526020016116b2602891396001600160a01b038a16600090815260036020526040812090610649610e50565b6001600160a01b03168152602081019190915260400160002054919061109d565b610e54565b5060019392505050565b6000546001600160a01b031633146106d1576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6106da81611134565b50565b60075460ff1690565b60006105d46106f3610e50565b8461066a8560036000610704610e50565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610def565b61073d33610a83565b610785576040805162461bcd60e51b815260206004820152601460248201527313db9b1e481b5a5b9d195c8818d85b8818d85b1b60621b604482015290519081900360640190fd5b61078f828261117d565b5050565b6106da61079e610e50565b8261126f565b6001600160a01b031660009081526002602052604090205490565b6001546001600160a01b0316158015906107e357506001546001600160a01b031633145b610834576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b60008054600180546001600160a01b038082166001600160a01b03198086168217808855931690935560405193811694929391169184917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f9190a36001546040516001600160a01b03918216918316907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000610905826040518060600160405280602481526020016116da602491396108fe866108f9610e50565b610c95565b919061109d565b905061091983610913610e50565b83610e54565b610923838361126f565b505050565b600a6020526000908152604090205481565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105b65780601f1061058b576101008083540402835291602001916105b6565b6000546001600160a01b031633146109f3576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6106da8161136b565b610a0533611134565b565b60006105d4610a14610e50565b8461066a856040518060600160405280602581526020016117686025913960036000610a3e610e50565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061109d565b60006105d4610a7c610e50565b8484610f40565b6001600160a01b031660009081526009602052604090205460ff1690565b6008546001600160a01b038089166000818152600a602081815260408084205481517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981850152808301879052968e166060880152608087018d905260a0870181905260c08088018d90528251808903909101815260e08801835280519084012061190160f01b6101008901526101028801989098526101228088019890985281518088039098018852610142909601905285519581019590952092909152909252610b6e906001610def565b6001600160a01b0389166000908152600a602090815260408083209390935582519081018690528083018590526001600160f81b031960f888901b16606082015282516041818303018152606190910190925290610bcd9083906113b7565b9050806001600160a01b0316896001600160a01b031614610c2b576040805162461bcd60e51b815260206004820152601360248201527211d4950e881a5b9d985b1a59081c195c9b5a5d606a1b604482015290519081900360640190fd5b851580610c385750854211155b610c7f576040805162461bcd60e51b815260206004820152601360248201527211d4950e88195e1c1a5c9959081c195c9b5a5d606a1b604482015290519081900360640190fd5b610c8a898989610e54565b505050505050505050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6001546001600160a01b031681565b6000546001600160a01b03163314610d27576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610d79576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082820183811015610e49576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b6001600160a01b038316610e995760405162461bcd60e51b81526004018080602001828103825260248152602001806117446024913960400191505060405180910390fd5b6001600160a01b038216610ede5760405162461bcd60e51b81526004018080602001828103825260228152602001806116266022913960400191505060405180910390fd5b6001600160a01b03808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610f855760405162461bcd60e51b815260040180806020018281038252602581526020018061171f6025913960400191505060405180910390fd5b6001600160a01b038216610fca5760405162461bcd60e51b81526004018080602001828103825260238152602001806115e16023913960400191505060405180910390fd5b610fd5838383610923565b61101281604051806060016040528060268152602001611648602691396001600160a01b038616600090815260026020526040902054919061109d565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546110419082610def565b6001600160a01b0380841660008181526002602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561112c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110f15781810151838201526020016110d9565b50505050905090810190601f16801561111e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038116600081815260096020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b6001600160a01b0382166111d8576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6111e460008383610923565b6004546111f19082610def565b6004556001600160a01b0382166000908152600260205260409020546112179082610def565b6001600160a01b03831660008181526002602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b0382166112b45760405162461bcd60e51b81526004018080602001828103825260218152602001806116fe6021913960400191505060405180910390fd5b6112c082600083610923565b6112fd81604051806060016040528060228152602001611604602291396001600160a01b038516600090815260026020526040902054919061109d565b6001600160a01b038316600090815260026020526040902055600454611323908261159e565b6004556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038116600081815260096020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b6000815160411461140f576040805162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156114805760405162461bcd60e51b815260040180806020018281038252602281526020018061166e6022913960400191505060405180910390fd5b8060ff16601b148061149557508060ff16601c145b6114d05760405162461bcd60e51b81526004018080602001828103825260228152602001806116906022913960400191505060405180910390fd5b600060018783868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561152c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611594576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9695505050505050565b6000610e4983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061109d56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c756545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122028978c229b51c3a9489101e8096301e85866fa63b6ccbd95d247e376d1f5407664736f6c634300070400330364ca21853d42e267800092931dc8679f6e9ac3c1fa6f2397dc3615ca0f13630703885b4282c8a112f433678a5c1a4db683b0184a19609b2b2e90b966b005457dcf03b4e458730283aef28d090830cd3c61278b5052aba0d2b1b9dae2433eeffd9b8203a4040618f3f4335cf348e028bb2a44d819d7608160216a74b4da587b964fec8e0316ef69336624df1aa4a0e3ab11f6feec5991cf9dc2ee5f94f421d564e3d047da03b405f7dd1c1dbc5073e19e0d017cf15ea9b86fdf4185f3cff3f5f42113e8506003ea03f1ebf939d9dec6e2bd07692f9935ba57879ce00c063263ae85ce3c31f31d0386e2776d145647c099fc79814293cff6fd6b834e5a8368962841b9b9661f171703a274b03786c131faeec6050a5b037fbe202bf4a992a8308df06aa1f66f87174803fa0f1775b9ecd49cdff37761fa2631c09dc6e392175783f86d893a3ce63eeb24031c6c6b2f158e307e3c4d407f0cc070127d49e2d1bf81b7912d0fa2c12f588d4c032aa4a8d0f606386fae4752afd5cbc50f260cd55842148bcd76da0cbc4279fad603a9204f3af2d285dd9afc2c7b365e4578b4a30dea13e1e54a137a34a87935fbfb030b0d314f64bcbbb09f5552d8637ed50df840e852939b3207844406c1e286677603900cd514320cf101bed55b59a88aa9841e5d940a088fe61cd3830375872951ba03ec803e2d7cf1c15841065ef41e42fe49e3a2c5dc5ff6f5e1bace0e8e605c638003b15c87c60b80076dcb3713c16ca7274171477ddcee694ab747839ba8bc2672440339f6b9994a232d179e4ef9bd2b24e4bccf628ae4ef7b2c15047fa915e83aad7803255403ab6e73457e095a9a79431ae8f8862d9b623668efcdd22acf8bc310633c037c02a345e3d61c533141be970f2410660893a1b514f4bfaa568302c3f85a5d8e03403be4c8a6665532aa1f8eebc602ea4dc74b516f326259e7204dba314a91f65b03d3058d3e7bb56bf2f987de1804ce92c6b9ee2b53bb2acd9207933df1d7c85d2b03f957dba5b8ffa86a8f8bb9d1626da12c169fcb9c42e9fa5e47a308b6034105b4039b6e07e5a7f95eb82f4ab80310e611de51111c982d4e7eb14266da3c70e6d3fe03b356dfe688601d59dd52d6c42e6563ae57520da2cd56c1d9f7ec79ebd20ce3ef0344d8d87065e7c31f39bcd61a5385e43821c91a7c336e6e5c8acd7cec658869a7035b1ef866701bb6972f3821a8383f4450fb6fba5e3e36dbda98568010bfc96eb4033bef9c51f4002e0ae25a97a73b83e713bd1f7dc1b22f8bfa3e752a9d8df4aad40374fde556618fa14401bdcf93519a5818626c6fa0915fda1fea4e9ff7dcd92ba00303a6e5d64de21c8c42958ce104d12757e1cef47fdc2b6fdb889f04aab409ec94033cc9f1b815160aaee4de988b59973907644b1616464e74e90947dc5c422b508603dd5a710294c25a14b943f3de115928117e9501639369faebf031627f322c4e1d036be993e9cf449e354c2a5603c69d3005b09a7467ac9dc0aff73fd3c541c940ed035a08fc4359c21e1cdd54244c1a3ec3a81b36eb1d6493381672e486f22b7d07a8034819779869861c12adcfcef8cb8e29f7ba3c8ce94c532fe77c5db45259286d3700581f02f690c27e9381342a9d67917c88dddf573735205375abf7dfe0d17606f0da5820fffffffffffffffffffffffffffffffffffffffffffffc63740d5298d76e3ffc0339623ccc24c3e3c82406b318c8b6451c33ab799dcc4f70defda085e6911ae429035086022c505a8f10e8cade859993cf75edb465811b1eed79251e8e81bf93dfdc03e479dd127544ec55a243395877999ea30816a017261dfe2901a6e7ffe116624703374317c80e801642a95d8998adb4395dfe199539fdb14cc875bd02d52919adab00581f036bc261a822043f35258872cda85a3323e48f40cc39e3d80606c429fee8804822b1c8c1227a000000581f0385addbf4fdc71f72eda0fe50170e4169a815882582d087da445a7ffea6b0490b574b92c2a228f000021906000314b16e0df7d2d857a53396bc31be00dce14e48430d76cf19b5167c50fe5558c30366d7b40afa80ba92068dddc3d60b7a9b6faa9646afc446489a46ea3606991e39038d4fe60b9883be8f1f480dbb7f1bb8a97e4d3b713ba3ca00b9b41baa4c5ce37d032ce1d432f04067928e7c985bda03aaf743f9fbdf6eef04ee4b280f6890ac921d03f9ce08663fcff1f0ae18c8a72efd1ee7940563ca39af08678f4fed8c1f767e4703cba13a016a94e7ba824c471471834a385fe7694f97522c64bb6b8a3dbcce52e603d589361978da110d1477f13f3c3d4db62496fc32c81beabb479bb56a96f4a1a80219ffff0219ffff0350d72981b6f2af3f3c154241901238d1cae7bdfbc333d5b611e322c8730efa680371ebb90332fbafb8d4c8ac5b5c914dc3acd5a2a42c32cec27a9e52d68a79a18b03934005c543972c9e847ce58c419099ee20d19661a34323041340bdd30e899a3d0363dda838855e22ee5bcdb8702b006ec287c710828c2d639c18368e384a7fcdb5039d680c3b44dad074bd8140ce3ecb1c873031390470b0795018f0aadeb61daece03254495ba5f5d0cf7531ae60602ee63f50eeec4ef872e76f987203a96f1d7d47203ed13241326031aad0701a1089acc0e2b9f52b6996eb442d020917afd32d5d9aa03fbac33fbd7a6757e7aa596bf11baf0ff0c21d1a2ec101f807af241c3d8398bd2038556aea34109812319e9913aebbace5d025256dcf2a3aa5aede7123acbe1cb6903b2671cda0a8bb1daa9348a533f04a0060395ac6b2b1df3b3f8409131e3f1dc8d0301d42074428c7bdb44e7b075665087cb7dc4a2bd375ba2a4946ad27f995a41a503603ff28cbbd6ece51196a7b4908d304368d81dedc678bb2a70909c14af71098e031027a2a326ef0f40eb48b4a8a2f4e86657ab5b4fca801ab4dbe22324c6e548cb0351f7cc4db92f850a283b6214e21ffa2b5c8da481958b6a6014d1104892a9ac08032f58d69ed25be123e0e0a73383b38aca3465f3edf0cd4e80a368b61a804af4c403eae7e0a24cc997a228f32462b8b6e347576e906bf423797e00f51635e57a2cb2033772a27c1a272b2f0fbe1381c68db2ea68dd9bca762b44375a5ffb736b5ae58f03f86d901319fce5ce033434a0e5049efb7d9a77e6b0d346f81f8105cef9433124030ba383e762a97fb2d2dd578780d29bcd746cec0ed7b951a16fdb35aef2f7b17403c98d0005c31161e08a9ebcce1e6c8fe2eef3bb481a2200a640a137084b18bfd603dcac0b21cee353d3ab7d092bea3bf672cd5761bcaa90a81e286ab053736fd24303c63a26831da75f81bc6c7f007fcfe47bb6e023c79ea624c54a8a8926095445e000581f03d743cd6542d6b2aee345bce586c63ed3a03859c0784749008ca2d373be30490cc0a4335ce20f6c0000581e028806956f39819fa9ad347b604df09a1820a3de31f3ef0e8092b96f368b5820ffffffffffffffffffffffffffffffffffffffffffff67c36b2dac7a118ea59600581e025e1f127f92b49f09bd42bc7670efad2d86cc961da542e5e1ba85ed712f4b03b4faf54207df709cd48a02181800581f03de93d439d635604ddbe56032687cd57b01d176e5e8fe37fabd83910412305820ffffffffffffffffffffffffffffffffffffffffffffff9bd4b29ef6a099f19c0219101203b3a31c5660641b1296cf7858bcc084cb14fc022d6579a3a917244186db40d62603ecfaf0c94c00be2a2e411690d36bd02d8ddbb3aba6a4c3026a48740b2ec8de7c039d195d51a1f1ba98da36b03b7fb28962f5b6421914915306320068dd525e373b03228bb4cdcd6e0072bebc902dcab44b79571b028b74ca37bcbac61ab3bd584fee03f60362bcfef4614ab14cd09f9d6147a9ed27078b0c437b7d65ee7498ce8b195b03c41431bb85cca98a60179ce5182f9d3bccaa292fcf00030a98eda99cf990761e0314ea89d618b99102db6df31cad1ece85f9953638917c8691c7f47fa1d3c3f63203156861a880cfa2fd055ddc505de6c53324d4f474bbdef3a346683a42c0ea88b100581f02a3b7c8ff0b49ac78b7603f80afa7f73e8d5668951e98bc964d885623f7b84a03289b287991f1dd680003d88e2e5a029e0e53422c7a169dbbf891d2c5726023e0ee08860057824bbe94c3036f3c7b98607467d6424a62767bb331794730c46acc74ec379edbf7047162a058031cf68114076ab9ba00cc8e59e51f675be407409afc39e23ea05ae8354b0cec7c0219ffff031765cd200ca806df0fbce985393c3f0b2a993bb9e8e21d2c2510c19165f0c267032f90af612b0fb00391f674c62b484a514605d822ef7f2b2ea6a4fa1e78608871032a1f323770e0e68a06f8f8f249cdfdd434ec7481b50ee6ac6e436b500ee0f46803a23c9c1b18fbef4f006e4c8ae502e03a010cd76032d081b1a31f66e407eb40980334ba635d9c7ed399b2096e5985a86ae81a827ed744e6dc3d02dd96b15f2ae353031f172e6635fbc32f8e923bf067eaf334c353c5a4bd62c97cf601970af542d82e03cfa1b5a1dc9619a59211cc8e5c5bb95493e3751a77d6e4e57931dbeafe29edc703f1aec0632246a0546a836d087e565475c4e7b1cd3c2c2fbac6229971a9e234f80219ffff0219ffff0219ffff05581d03dd8951587da7621a3af0de91955c9b4cb25e578bdd85010b098eece007011917c2021901040219024803721e8fbae1c6cdea2dfd920940be6fbc0c66784a10f1f12b6baa9688cee4debb03add0bee5aea5da1c2a2e4fab66669fd535a4fd3f6a7a9e1b646ddb5db4dfb0b603c709a62d228670f1635db80595f2a60148855c6e88b2da10cc8acc603461726e01410605581e03172b77eba15ca88329fb4d4bd6e83c5d6bb5166948d4077ab30c0f891008477367a02ed71000021997960219ffff03567e4dc1582033b14ba13f78df12ca4b3f69019da99fd101e174c1e887d84dbe03629a53e3643497b4ea773383ed7809d4d6f23753decaf9f6e2c9b353b8d15a1b03f68cdaa1f919596a7350e110b4641d31a1693851fb8b65e6e705a76873f6c6b9031aabfbe0638741c48022de41d3b7b41e9b4a3815783865c15f1e4a53f2c6155a03a2d488f98c7297f57f9700cafcdbad3d6a79a5a8dafcb65ff3085e4b86a8b09a0308356d81b5984baf49c45a864b7768c9c496c7ae4987057201d3bf73f8c2ca9c030c1e25161a206cf913447dd55f4e68c3caba03ffdcadaa6e084254ee2420df690219ffff03d281fa3bd99632449e9b6fd27405203b0119044ed36fee967a56c54088948a28034ad16ce6a01776075d9d5597be5d1e526c8cec4272180d4bf496c9b101efe85f03f52b87c3cb1bd900f5c9029f1513c87f6d9ebba015b07b196287d3f9ee53304f03ccb7fd04af4d0371fc3567f8b0b8996ffedd932f5ec8b4de74b9cbeb50461bce037498062589d9e310164c64150d9380465f2efbc0f906d01bfbaece8d43cd0fb903c95fe66caf8721968697c614952ceacf4d0471a79ff12bac84213d09473b00e6037ce9d5c43ae3916421685b815b2f57e09b28ceefdd9ea03370429fad08a35c650219ffff0391530e904a98b01bf821c4548d33b470dd8a018848d74b4d1d30d5964af7dc9f036db2fc05fb9ad446b5d4f61ad6ee1286187ab741206cac0c1b69ee9aae6e47ca038fb18004e52273139c6c75b9ef2708df5bf91526345c3c7ee541226af1672ffe03f411c7cc123b01c80be6dec5432e00d1250a2f8b6eaf756f7dd22098362b3fa903a6c42b404b3d53a0e526faa866818bbe1b997db5f5222467e81cb46180065b4903182aa44622a2085e85fb174ec98f73644c09e88edada11242de976c2055860eb031754d073e23e5e9d4c61d067e2371034aa010f8fc259dbe9f3bd12f7bf7070ef038d619cd22070bb381d5e856cf1c105bd08e5aba01d86dee786f8aec9c82e968503daa5b0c29d1758a51c9b5d8338ee6b7ff2956181a7cdaa056af2025bd57f5bad03d70bc8f0009804fee8a7de6eb363d2d32165d971807c9d6091bb120ca692ac330360acc07254c4a7f869ac2e9bc35371bfeafb03b7eb201fd62a427a4eabf7f66803fa808bfc3b6f51da107f4c177c83b5293a551e04f480d57bdcfca9f9e0c5f83f034a38827e4437336927112ffa4c1620b271916f889c4b8f72abc186464ce0ee2203127557f978ae5128c158034ebe6530649434c57f802bccfb799a816284e990e003b2cd3463876ab4bd1351fc5d3c204e9a0d43cc1310ef6a6c1113367d93fe3c2e0370ecb7c23f26448202216742fbb8915da995aa374411ad6dcd721c9a89793d3e035f3181e568bc02eda7b953a6b8503063c02242b453318e2bfa5cce2e12dd533303a209dc7d490b9b8c840e5939fd2c7024392db4899c79ed6d27aac80c41c9dfe10364dc504062f635e59c040c4ba8f473459b9c26e8adda7dd80667832b2a6349fd03d16478dd3bed42b51bb2adf6195cfd7625b4d91200a270c5ef022e9b7cce86a0035e02ac374d2e3868f088e48d3f68d216a72325ffcac81d18c4978bf2bcd7966c033af4b48ad23453af535e6d32f1af227a303453d1cf46ed7b7b4cff21716fd9d703adb8facf550d3fa68ee8bbc9153022409f31d8c1b93c6a7853c363f6608d662b034f334fc3b2cd1ae518cf09d37f8b53f8258c7839179641b60308f2a519482eb4033fa8fa54c406fcd22f42cce1236b8dd50af59e54e99e070c237152cc16bf7eda03cd87432a0d24feeca5f407f02d2ff0cb774f123ec0efcf764dd1cfd95f292f3605581e03ee2153434dded69662b9efcc602a40fecec25e98d7d774b1c3fa062840040104590a7760806040526004361061003f5760003560e01c80633e10842714610044578063578e9dc5146100605780639a8a05921461008b578063affed0e0146100b6575b600080fd5b61005e60048036038101906100599190610574565b6100e1565b005b34801561006c57600080fd5b50610075610401565b604051610082919061064f565b60405180910390f35b34801561009757600080fd5b506100a0610425565b6040516100ad9190610679565b60405180910390f35b3480156100c257600080fd5b506100cb61043f565b6040516100d89190610679565b60405180910390f35b60018060009054906101000a900467ffffffffffffffff1661010391906106c3565b600160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036101ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b19061075e565b60405180910390fd5b8134146101fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f3906107ca565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516102809061081b565b60006040518083038185875af1925050503d80600081146102bd576040519150601f19603f3d011682016040523d82523d6000602084013e6102c2565b606091505b5050905080610306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102fd9061087c565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16319050828111801561035c57508483610359919061089c565b81145b61039b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103929061093e565b60405180910390fd5b7fa870bebc9a9c76c706271fe3202670ae02938c915007460c9f34d87f3d134bc489600060149054906101000a900467ffffffffffffffff168a338b8b8b8b6040516103ee9897969594939291906109c9565b60405180910390a1505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060149054906101000a900467ffffffffffffffff1681565b600160009054906101000a900467ffffffffffffffff1681565b600080fd5b600080fd5b6000819050919050565b61047681610463565b811461048157600080fd5b50565b6000813590506104938161046d565b92915050565b600067ffffffffffffffff82169050919050565b6104b681610499565b81146104c157600080fd5b50565b6000813590506104d3816104ad565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126104fe576104fd6104d9565b5b8235905067ffffffffffffffff81111561051b5761051a6104de565b5b602083019150836001820283011115610537576105366104e3565b5b9250929050565b6000819050919050565b6105518161053e565b811461055c57600080fd5b50565b60008135905061056e81610548565b92915050565b60008060008060008060a0878903121561059157610590610459565b5b600061059f89828a01610484565b96505060206105b089828a016104c4565b955050604087013567ffffffffffffffff8111156105d1576105d061045e565b5b6105dd89828a016104e8565b945094505060606105f089828a0161055f565b925050608061060189828a0161055f565b9150509295509295509295565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006106398261060e565b9050919050565b6106498161062e565b82525050565b60006020820190506106646000830184610640565b92915050565b61067381610499565b82525050565b600060208201905061068e600083018461066a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006106ce82610499565b91506106d983610499565b92508267ffffffffffffffff038211156106f6576106f5610694565b5b828201905092915050565b600082825260208201905092915050565b7f496e76616c6964436f6c64000000000000000000000000000000000000000000600082015250565b6000610748600b83610701565b915061075382610712565b602082019050919050565b600060208201905081810360008301526107778161073b565b9050919050565b7f56616c7565457272000000000000000000000000000000000000000000000000600082015250565b60006107b4600883610701565b91506107bf8261077e565b602082019050919050565b600060208201905081810360008301526107e3816107a7565b9050919050565b600081905092915050565b50565b60006108056000836107ea565b9150610810826107f5565b600082019050919050565b6000610826826107f8565b9150819050919050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b6000610866601483610701565b915061087182610830565b602082019050919050565b6000602082019050818103600083015261089581610859565b9050919050565b60006108a78261053e565b91506108b28361053e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156108e7576108e6610694565b5b828201905092915050565b7f556e657870656374000000000000000000000000000000000000000000000000600082015250565b6000610928600883610701565b9150610933826108f2565b602082019050919050565b600060208201905081810360008301526109578161091b565b9050919050565b61096781610463565b82525050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006109998385610701565b93506109a683858461096d565b6109af8361097c565b840190509392505050565b6109c38161053e565b82525050565b600060e0820190506109de600083018b61095e565b6109eb602083018a61066a565b6109f8604083018961066a565b610a056060830188610640565b8181036080830152610a1881868861098d565b9050610a2760a08301856109ba565b610a3460c08301846109ba565b999850505050505050505056fea2646970667358221220552b95b7b1cc096dcd90a10bf77a3a80edf0e9009e2a8d665de3918d30fbf56b64736f6c634300080d00330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56305501171c3ca2488401e51332c518e99c13b561fca20f0058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60420aa80219080405581e03bd93cd2de5abf50cbf07808cd47a4940d81304722cfd09bf90349423900701190a770373554a6930891617d79daf56b9e65f70666069391ed64c66e96d718d80ac69cd05581e030335fa2f0e5fa33ecf8dbbf56f1b652b2398f6551a179d0a00f33302e00c02460313e61e300005581e0393cc8e47803c538ca238a774f1a13c0e4f297958f6ae6e9434b70e01f00c04470ba8e2470373e003442448aba2636dcae5f0c753411c036c3af0408f2a3972a889893afc28456e6505581e039e82c9f1c67075387b5b451f84adc1eea9a6a8a84e64e29d296c7dbb30040205581e03e6b61f6fafa2b65730868a8e1b064a3701e7eff66a78deb4684c4350e00c0347280596529f16fb05581e037c6290a1935ca86c4e0750d730ffb4b5cafdad3eb80a5307137232e0500c044801d3474fde37198402191f8d03a91085ebb9e284bd9b259f4595be30aa527aa7368f133c9fddddf3ec8219e27803fc30b1f2aa8aa1aed34dbc46f68e87dbd3e513c77cca649aca6a38e8e557d59d03535462445feaa61715bf122c11a325cd96f63aed5904144041d665bd635090030219ffff0307d1df58b799ea62455fd3099ce8519e4e9be7eef0c852415a23db3d190c2f4d034fbca867544ea85be0b3d69ff30af0a6bfa2eb8ceb89ccede01c83eb50983bd2035d1da94aab459ba4217bc248eee4ddb338693a88c68552c77e7dd2e43ab60f5a03d34ba3e3a6bb5e7b3fc9894d3c93a31e9acabbd8e0ae9257f9b0738fb3235ee703d4cfa9cfcf33b372cea5822c7f577dc9a5776758eb832b3a9adb9d8cdd464ae403c18e63b2e5afa58992c8cd60929c85a874b56e7045d8232c20d297b967a68d0d0219ffff03f4eaa5fe113f7e9f197687f29c50c486b24c8f84ff110d206eabcca217705d030301551240a9f4c14c57f29076b7c59621dfd2db0f64ecb81f44340becf73b721703c15964be73610d7dfa7d8d48045c1968aedc77aa1bcfca672ba6a30bd0ec9dea034e906f1d217347d26007262e9d3dea4a93841e2f83ffb8de0a466196accf1b30033df74f96c62a657e6072a30552baa04e2bb583cd0565b69113da8fb15576758d033fc78afb0ce3969f5aa584f1aca083501376ac7a17493758e6f28dfe1596dfdc0395d63e3a0e3f5c757626904bdb4092ae7cba3e65ea32aec4dc17374eeb323c2a03d96397bf4ca312aaaea05a85e6148b21c99b0ef3b5b5d60d1546ec3830c1c63f0378e604284196c90050c9a0f64c6f9645ab6f27be728dfc150d5d14c2607ba1a30301bd0bfc771936446491626c76b1afc217d6717ec24fe1af4a6757f61970c697030188c252561034b5c6e0d68df9399a6e331849c7a9490e58d447ccdeb78ed0ba03de2bcbfc1f7f98373de9b9bdb542a5eff12d7144e259867cf8ce152f87e6b3c003ea1d0f6d4e9b2fafacffa8b782eaaa84287e830e81281cac71f896eeb55b7a2d05581e03b430c0dfe0d55434c2bee9c59ada665d07770c5049125498916fffa7c004050378011a17fa1b29849391e4dcb6f0bccedf7f799616ba8016b5a1273fcbd8066f03cd509f1d4b35017439d14cf5f56aab76cf79deaacebbf2f53323b30cf57d189e030cd86dcffb3bc00af0e81f19df95135d63301c3499a38be68eec3a6570af549705581e039382595e217a14613350c81285a54f870d805d11b240b63511eaf11c200c0247051adc4440c33e03d040c584db776a36423a8bcbfabd62151bd8fe8c868f7ddefbe36573f137e94505581e0321511e4373939e6a92f721bc24c9baaf3588a3c9c5ff99554b0b5346b00c02468840af823ea805581e030f1a3d4ab9cd99b9b664a44f3d5bc229df49b27fd39e022ad5aa8cca700c1911a049014332835010cec04d0219e4e803e8cf874aa332f98ef9bb6ba62a5a731ba254132915d6afd09761d6b5119e3f1f03080849aba69ec6f81a447b583554d548d9ca286025073e688800d66b9135fd2303c7890077ab33d5af5b26cb8d106067dd913497b2c413c66b13212be3d44d92b103faf9cc4908a5353147a810e6df4a0804f84246a977b2f9f8a7e32cbb3166ae2d03d56e34d280105153cc08d8562b3053aab5f0c213956942704da0f2ba0e9c0a0703f875d25df9e6d38af279be048fbb9d99d6bf129cdeaa84c21e493c5c0908c08103e69fc504dc8061ae7ac36ee877f2e56f44d736d1aa37aec3f2e52b1850f78532031494d0cc0251ab2f90714849d70565a906594e66624e14451954e895d84176cd0380b5447df32b7b5dc1063a6628051685c0fc8df4f542d1565def1e11437239ea0381f424a0f71ea6f487924510ea77176e6b37c149b475bb93e01c00505256e1980219ffff03a47e95a9d544781b5262632964b42961766eb763f8a0d5ac878beef02e01b1bf0364b05b1dfc671d2e3ab09f24f1100789d648829fc24fc0ce1ae08436cd2d77ca038a860e2c5a884fc26bae554fba955a4cff6dd93cc77b625838aa41d7199b9cd703ef3a2963d5304dd64c1176f5535e4439167c4d81b9fbc5a2dc2eb4af36ee2906039d4b2a1ba271fc387a860a321debaeb2eec5e0ac316d56f32bce6becc927f6c9035de35529c7059c7d32db57d887c397da78d10f74a0fb959977226f3d6b000d4f03f49b4499b2aa4c025cdc3b3f7c7e286a20091c1e91dfff9e311416a5aebfe03703876370f405d7d7b7cdf214458b346b49e197499b2717ba3fdf2933ef6c1751760327c800b9f42107e26af3674a8e5899e72f1bb57ac17cf4f61562b7fcf0d1b18d03fcfe6eeea096ed2251cee8ca85578bd8f26a32690a582a5f5a3a8f80bf0d057003b3dd30cb15b9012d552fd7d907bb9c9d09052a1bbd8a4b4ab9c282c6005eea72039923ca86370523a204caac67ed7afe2439c6202b75a8d890c88f2f9ba546a36d0219ffff03459912dc5636927c7928cf580fe3636b7ea1e0bef351560f88f0168a6994e31a0311604f846abc183c803d7a9a6ee797dbbef2f4edc43e6f9a75507d794e917e8e03bcbcc6af3e9f95eb418122fbc83cf08af917c819ef7b6f7404fcfeb5f98c27eb037628907db510268fc7b3a7c3e32275a65308694c6331df9cc421ca0e4f7ecc59032f386d37b4ff858ba3a2157aa17a0b3d793a092de913c1f354243b74617ea0ff038416a78509bf1985a885bbcf61f7c4cbbda40401dd1758ab4c7ea74377f93df803dd0cc0de20598a51adbd85f410d7aa3a323898453c6877c6165e3a3c6913df6603effda12e706063b60b167c4f1f2a151e793b9452a714795b46f40508977f9b910219ffff03ef50741f9cefca1d1c62ed384b1178589ab4d672e53dabd1d9fff467d7aaa38403fe32ad7ffe6a0cde475363506649851d0604c42fc923f8c6b6db9c5b19e20861034b56a0b957eaef5bc067b0058fd571615b9b23de833cdf142d68703f82c44d83032bfbf6e9b33f67cb956390249b63210acb40f77df05d06364aa2ab2e7c829bb6037d206c851734960d570601fe7f9c38261d7d98461e51d6354f59ff78ceeb50fa03de17c9042b8356202aad6bed9de04878384646c4eb3c65a2935a9fce92730e120333c9e6919f7ddbd57273bb87dde8c7bae5808c3c5b428e1475e107f75d48803a03d315e84d51fce700892dd875caced3677ec5c97e3e6fcdf8c19afbb1838e856903c2fe7c5a7500bc858f79a20d66866f0e09be648b6d6299aadc2d50501a0dafbd037a455513f58cf0cd1408bfbfe6eb599ee3f43dbd56a9de84390827b42c98ea7f03819ab8a750f6ea8128e95fe32e66fbb54261167eccddb1f5437ada58525a54e40396032e836b689c92ae4c41cc46d555af1fa5a3f4cff83503de28819fba50a5b505581e0312aa2ef4601de9499b285ebe094e294774f771da92b5328cb2972caf300c1835472e5eaf01e8e2d9037b00482ab5e9149a7890ee90ff900da1843283585c0f720e95738ba18f3d255003f5e40f693e08f1f697d42f9b6c93df6122817d4663781ec7c747556ec9865b9d034f5a5f6706dc853cb3ae2279729e0d7e24dda128a77358144e4c0fd3e5d60e980605581e031840129cffaa09260521f63865a4feca87b28e0ed4669cc7e47c1d464007011bffffffffffffffff0338b8a281ff3e79f54830177d5bc787e83e6b4b7e4c7fd210e44b2927fb7e1d75038c7ee005d0d6dd02e63ff3fa83eb70aff7de173e03474979f545744da90e388405581e033910155d30bb245fcc3d3ba0862d870427ca1557fd697221bc4235df40040305581e03bc979ff347596a4327117549ff0b33ad64a2e04a43e7f87ec8ad2c0a000c09460da475abf000030dde3b3bf3b83eca9d234e86e0f51d0394242c9bd07e87aa878315ef6f164ffa02194d7c03403b7f25d85d0125860f5502317890bdddf85c053f05771e9290894e1272e4cd033a1e658cdec91d724a4a297a2d4916fb98971707bd315f4f924fdd845d6f279c039a86e58420a923c5a61381b87c04a975984076541ba160a0e17e971e4739b84b0371742363be3e4d67635cf69291a8ab73c9095f3ffe0c6659960c6fafde155b8303ff11aa9550f8bcacf8186a217c040ce23e3015bfcb7314422218789e6f43cb130338363d6629eac7e53fea04f6cb77435ee892e220aef84281627b8534d5dafd460219ffff039682be312c1f75475bf6aad519ed73172306201a93996a1ba2d78938f4990a5f039ac3a4351ffc7d6e01dbdf1778f1fe185f61d47297dc6085cddb31cb61db170203fe31d4a8db2fa0722551fc949848be5216838fa9dcdacd1e8c245c69ec2187b30397199c62bfd360174e3170f8a7f70e77ad017162b4528fe6331d3df3c0ac9fd4033402307701ae2ecdbc5deeb2213db2a3d61a99d33ca962180d2fb68b0a17fb770341474fa4c3f8ebd32cb247a889d8062c74455efe9362c4cb6277e47b94d9035503fce2364cf2b26af50e64aeebdb4fcc09fa30499464fc69df2a7583fc8148962f03abe37f1c3ec6fc5b1f4a04e0eec0fcd4661121d57aa127e8e2ec2f96a1c1c56103c6e1b5b50067a2a758a55af570fe40c752cc75a920126723285b85832a6ef75b0387b266cd0cdff3f212131e2c576ea5a8fa64d1cb5889bae82db8bc346ec7fdad036209d364cc6d6af4155c3d80ceff92d0c33fb30c5a47511fbef336b7799f72e603f06bd646e96ec26da533e3a7b733a81b589528c648711a6cb6fcc00ff107238d039b6bd9baf3dddf6466ea3d9b86a65b7cdbc1bf3e0af5f1ccd12dbef4f0abfe3b03a1a9c1e539a082f837628a660582dc7869ab5aaa27d264a75661e84d91d61d8703bea353b3c384c3f8ef962161ba9b9c6624fb96e24388db829df4fc995bbebe530219ffff03c2d18c5f7e37d398275898be1b1d09a9ca5abf98cee2a80d0dfb5b8059570f7003b6a3b4a982019fb639303515edf3bf7ba2e567dafea1cc6dc240aa2fe7e9f5b60364fad4a6fb9cd1a9f5d3de9adca51c12fc06f5aaaac800e2d1e9894c1d34962503429b4c2f65e353c923aafb3a526277334c0fb224ec9f3b5f8e6bbdc5e1622cd9030afcfeb0a1b23e412e3d4b3b78a06c185942e4257028a2006618525345c875c60357110506792b20796357f0bded2c9ff6119d66c756d0aa8c482ca9192720e15203c6ce5e4b57e54037de3fb58a800740e677dbe29ebd2549c6c78fe3f7580e08e20326f24707cb420aa315a96e38b58a9bf04643cd52d8879207fe08b9d0e2055dbb03e850073aaa56d594f8c3e1ba0494fcbe309babd1cc320704d1307ef7f345e73903a6f5b2cb46ec9a30fdb65ee63c4383602a3f21d3482b59cb9df2d7c4b5cd79bf03280ca41de8c9144295e14379effc6069622617b84306d92914fdf2b42a8f0dea036fee5ecd5e2de138eb65b04c598a8aa26268f58e4875cb328f9f88b93d61b9f403e00eabc05376ceac648acf1e5f1748fd146921273130c1c95b4194a1871589cf03342aabcfbda0b2a33e4f7b698d299b231e0fe88c5f18c9acff5b03f7fa3f88560219ffff0314a1deaa9dd7f009c6c1ad1d2f4800e120091f939cc2c3547146173577d09dce03dd3a00dd8b6c9258d24658d53e742382f35ac5790b5c52002cfcd9dee95b936003f3a679030e7ebdecd0b15d9b679fd051137538a7c61f5992ea456b42349915d50397b8d6ea9d0c96d697a233c3935e2999f6ffb99954abd0d96f465cf83570455703080e1376a349437c97091a97e4c40c9e60ccca9ceceb496fee1ded950ce90b41034ff26b3984ead710bbb76af2ba6290237b6851bcb7f861d7d3db3f98dfcf5656036acee606eedc63286fb056b9c69c55d44bd4539208b0e57147a7f2ed5db29ff1035b9453da6b947367a5e0009f9afe267027b8584ad05e3d59ad7027ecb8df378103ec18adf1533a018f0dffcda944c3105a3371d23e8e4a7312a706da4eee1df1ad03a919a94754b0026cfaf32819bb158138bf5fb80449c158f47f0e4c110bb78f7203d2ac78f923d23d644dd59a6559a8784f5e0428755e13dff0c8df777ad3f121630326c01b2461bc11d99e119badf66ec8c895604736866a16f0797461a6b344af050308e52c63f0cefdff48be28668a4186de779e27549ebdc35ed997a1c2da284a8503b42bd389a9c629a8c3eda48aa6a75df0d32f257a1e3c1bfc544cc4fd99f816cb03169dfe0417fe6b4683b469d6fe92d4737f400b36831de841cc08afd270eb6de905581e0396c171543a2e50f8ecc2b75b2caacf31bb3dffec0910b3d724219b4e100418ba05581e034aad3d30319081b36e8c9254d47e84e71e341eef7abcd3c2dcc73f30a0040204595f5d608060405234801561000f575f80fd5b5060043610610388575f3560e01c8063718522aa116101df578063b4a0f56f11610109578063d7d87a2b116100a9578063f0294f4b11610079578063f0294f4b146109f1578063f90e8ac314610a04578063fd2eab6914610a2a578063fe4b84df14610a3d575f80fd5b8063d7d87a2b14610970578063e3faf50414610983578063e4650e8e14610996578063e985e9c5146109a9575f80fd5b8063c87b56dd116100e4578063c87b56dd14610924578063cb97397c14610937578063cec32ca51461094a578063d5adf4891461095d575f80fd5b8063b4a0f56f146108eb578063b88d4fde146108fe578063c5b2486914610911575f80fd5b80638abf92c91161017f57806395d89b411161014f57806395d89b4114610897578063a22cb4651461089f578063ae3a4253146108b2578063af44422c146108d8575f80fd5b80638abf92c9146107fc5780638c59fb73146108335780638f40f3781461085957806393251fba14610884575f80fd5b80637a1b2490116101ba5780637a1b249014610787578063844b71a31461079a57806384b0196e146107a2578063865a2f0f146107bd575f80fd5b8063718522aa1461068c57806372215bea146106e0578063724ef5011461074b575f80fd5b80632c1e9006116102c057806340ef10b81161026057806363a74d601161023057806363a74d601461064057806368b16b3f14610653578063691aa51a1461066657806370a0823114610679575f80fd5b806340ef10b8146105f457806342842e0e1461060757806342966c681461061a5780636352211e1461062d575f80fd5b806332ac730f1161029b57806332ac730f146105645780633695f6071461057757806339fa3f48146105985780633b60d097146105ab575f80fd5b80632c1e9006146104d45780632d4f2b01146104e7578063322178211461051d575f80fd5b8063095f0c701161032b57806323b872dd1161030657806323b872dd1461048857806324ee18851461049b578063274fae7c146104ae5780632855aa4e146104c1575f80fd5b8063095f0c701461044f578063140e6a0914610462578063200776bc14610475575f80fd5b806306fdde031161036657806306fdde0314610401578063081812fc14610416578063090d18b314610429578063095ea7b31461043c575f80fd5b806301ffc9a71461038c57806305d8d4f2146103b457806306fa1d50146103c9575b5f80fd5b61039f61039a366004615065565b610a50565b60405190151581526020015b60405180910390f35b6103c76103c23660046150a1565b610a60565b005b6103dc6103d736600461511e565b610ab2565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103ab565b610409610aed565b6040516103ab9190615207565b6103dc610424366004615219565b610b7d565b6103c76104373660046150a1565b610baf565b6103c761044a366004615230565b610bfc565b6103c761045d3660046150a1565b610da6565b6103c761047036600461525a565b610df3565b61039f6104833660046150a1565b610e7d565b6103c7610496366004615295565b610ee3565b6103c76104a9366004615230565b610eee565b6103c76104bc366004615219565b610f6a565b6103c76104cf3660046152d3565b611042565b6103c76104e2366004615219565b611077565b6103dc6104f5366004615219565b5f908152616a0f602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b61053061052b36600461533f565b61108b565b6040805193845273ffffffffffffffffffffffffffffffffffffffff909216602084015261ffff16908201526060016103ab565b61039f6105723660046150a1565b6111bc565b61058a6105853660046153d7565b61121e565b6040519081526020016103ab565b6103c76105a6366004615452565b611242565b6105be6105b936600461548e565b611278565b6040805173ffffffffffffffffffffffffffffffffffffffff9094168452602084019290925261ffff16908201526060016103ab565b6103c76106023660046150a1565b61139b565b6103c7610615366004615295565b6113e8565b6103c7610628366004615219565b611402565b6103dc61063b366004615219565b611484565b6103c761064e3660046154ba565b61150f565b6103c7610661366004615230565b611596565b6103c76106743660046150a1565b611725565b61058a6106873660046154ff565b611772565b61069f61069a3660046154ff565b61183e565b6040516103ab949392919093845273ffffffffffffffffffffffffffffffffffffffff92831660208501529116604083015261ffff16606082015260800190565b6040805173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f811682527f000000000000000000000000762340b8a40cdd5bfc3edd94265899fda345d0e3166020820152016103ab565b6103dc610759366004615219565b5f908152612f77602052604090205462010000900473ffffffffffffffffffffffffffffffffffffffff1690565b6103c761079536600461551a565b611928565b6103c7611acd565b6107aa611b70565b6040516103ab9796959493929190615592565b6107d06107cb366004615230565b611c10565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016103ab565b61082061080a366004615219565b5f908152612f77602052604090205461ffff1690565b60405161ffff90911681526020016103ab565b7f000000000000000000000000e81771b732e623ae1b7e09f72c09f8c300378b206103dc565b61086c610867366004615652565b611c82565b6040805192835261ffff9091166020830152016103ab565b6103c7610892366004615230565b611d55565b610409611e7c565b6103c76108ad366004615691565b611e8b565b7f000000000000000000000000da95fd26d92fe4b4730c3367a8b13cc5ca0906d36103dc565b6103c76108e63660046156c1565b611e9d565b6104096108f9366004615219565b611ec6565b6103c761090c3660046157c7565b611ef6565b6103c761091f366004615842565b611f08565b610409610932366004615219565b611f90565b6103dc61094536600461587d565b611f9b565b6105306109583660046158cb565b612026565b61058a61096b36600461590e565b61213e565b6103c761097e36600461596d565b612256565b61086c61099136600461548e565b6122a3565b61058a6109a4366004615997565b612340565b61039f6109b736600461548e565b73ffffffffffffffffffffffffffffffffffffffff9182165f908152606a6020908152604080832093909416825291909152205460ff1690565b61039f6109ff3660046150a1565b6123d6565b7f00000000000000000000000037669abc021355f8b271fe60d67765e1fbe27ada6103dc565b6103c7610a383660046150a1565b61241f565b6103c7610a4b366004615219565b612551565b5f610a5a82612708565b92915050565b81610a6d816109ff612712565b610aa3576040517fb730a3eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610aad8383612720565b505050565b5f80610abc612712565b90505f610ad089838a5f8b60028b8b6127f6565b9050610ae089838a8a8a8661287c565b9998505050505050505050565b606060658054610afc90615a3c565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2890615a3c565b8015610b735780601f10610b4a57610100808354040283529160200191610b73565b820191905f5260205f20905b815481529060010190602001808311610b5657829003601f168201915b5050505050905090565b5f610b8782612dad565b505f9081526069602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b81610bbc816109ff612712565b610bf2576040517fb730a3eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610aad8383612e37565b5f610c0682611484565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610ce7612712565b73ffffffffffffffffffffffffffffffffffffffff161480610d105750610d10816109b7612712565b610d9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610cbf565b610aad8383612f70565b81610db3816109ff612712565b610de9576040517fb730a3eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610aad838361300f565b8281610dfe82612dad565b6113888161ffff161115610e42576040517f9a5b7c1b0000000000000000000000000000000000000000000000000000000081526113886004820152602401610cbf565b610e548282610e4f612712565b613060565b610e7685610e60612712565b868660405180602001604052805f815250613137565b5050505050565b5f610e8883836123d6565b80610edc5750610edc838360015b5f928352609760209081526040808520858052825280852073ffffffffffffffffffffffffffffffffffffffff9094168552929052912054600160ff9092161c16151590565b9392505050565b610aad83838361320b565b5f805f610efa8461323d565b6040805173ffffffffffffffffffffffffffffffffffffffff8085168252602082018a9052918101839052939650919450925033919087169085907fa7e3741a0b4c9ccc7effed91a2572c1274703b3c573e2079b5963171de00b107906060015b60405180910390a45050505050565b5f818152616a0f602052604090205473ffffffffffffffffffffffffffffffffffffffff16610f97612712565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611013576040517f1a065e4200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610cbf565b5f61101d83611484565b905061102a81838561335f565b61103483826123d6565b610aad57610aad838261300f565b5f61104b612712565b90505f61105f8783885f8960018a8a6127f6565b905061106e8783888885613137565b50505050505050565b61108881611083612712565b612720565b50565b73ffffffffffffffffffffffffffffffffffffffff8086165f90815261623f60209081526040808320938816835292815282822086835290529081205463ffffffff16908082156111b1575f838152612f77602052604090205462010000900473ffffffffffffffffffffffffffffffffffffffff16915081611113575f92505f91506111b1565b5073ffffffffffffffffffffffffffffffffffffffff8781165f81815261623f602090815260408083208b86168085529083528184208b85528352928190205481519384529183018a9052938816828501526060820187905261ffff64010000000090910416608082018190529251339186917f04224969448af01888ee9b82ab14d1cf761cc9aacf7a51195e63d512a7a8149b9181900360a00190a45b955095509592505050565b5f8281526067602052604081205473ffffffffffffffffffffffffffffffffffffffff1615610a5a57505f91825261335f6020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b5f61122b8787878761213e565b9050611238818484613661565b9695505050505050565b5f61124b612712565b90505f61125e88838989895f8a8a6127f6565b905061126e8883898989866136a3565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8082165f90815261604b602090815260408083208685168452909152812054909116908082156113945773ffffffffffffffffffffffffffffffffffffffff83165f90815261604c602052604081205463ffffffff74010000000000000000000000000000000000000000909104169250611329835f9081526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611390575073ffffffffffffffffffffffffffffffffffffffff82165f90815261604c60205260409020547801000000000000000000000000000000000000000000000000900461ffff16611394565b5f91505b9250925092565b816113a881610483612712565b6113de576040517f9925908400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610aad8383613842565b610aad83838360405180602001604052805f815250611ef6565b8061140b612712565b73ffffffffffffffffffffffffffffffffffffffff1661142a82611484565b73ffffffffffffffffffffffffffffffffffffffff1614611477576040517f92c311b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114808261396a565b5050565b5f8181526067602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610a5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610cbf565b838161151a82612dad565b6113888161ffff16111561155e576040517f9a5b7c1b0000000000000000000000000000000000000000000000000000000081526113886004820152602401610cbf565b61156b8282610e4f612712565b61158e86611577612712565b87878760405180602001604052805f8152506136a3565b505050505050565b6115a76115a1612712565b82613973565b6115dd576040517f62272c1f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f818152616a0f602052604090205473ffffffffffffffffffffffffffffffffffffffff80841691160361163d576040517fdef5088a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61164681611484565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116aa576040517ffd461d2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f818152616a0f602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905183927fca67ac802f4ee7e410b499c4141b330c34c3cb8c16186c36ab8e8e1dee87c00191a35050565b81611732816109ff612712565b611768576040517fb730a3eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610aad8383613a30565b5f73ffffffffffffffffffffffffffffffffffffffff8216611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610cbf565b5073ffffffffffffffffffffffffffffffffffffffff165f9081526068602052604090205490565b73ffffffffffffffffffffffffffffffffffffffff81165f90815261604c60205260408120805463ffffffff7401000000000000000000000000000000000000000090910416919081908190816118b6865f9081526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff161461191c578054600182015473ffffffffffffffffffffffffffffffffffffffff80831696501693507801000000000000000000000000000000000000000000000000900461ffff169150611920565b5f94505b509193509193565b82611935816109ff612712565b61196b576040517fb730a3eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8290036119a5576040517fd50d239000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b82811015610e76575f8484838181106119c2576119c2615aba565b90506040020160200160208101906119da9190615ae7565b60028111156119eb576119eb615a8d565b03611a2157611a1c85858584818110611a0657611a06615aba565b61108392602060409092020190810191506154ff565b611ac5565b6001848483818110611a3557611a35615aba565b9050604002016020016020810190611a4d9190615ae7565b6002811115611a5e57611a5e615a8d565b03611a9457611a1c85858584818110611a7957611a79615aba565b611a8f92602060409092020190810191506154ff565b61300f565b611ac585858584818110611aaa57611aaa615aba565b611ac092602060409092020190810191506154ff565b613a30565b6001016119a7565b333014611b06576040517feab5a03f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe836018060045f375f80825f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c5af490503d5f803e808015611b6c573d5ff35b3d5ffd5b5f6060805f805f6060611ba27f576f726c64730000000000000000000000000000000000000000000000000006613a82565b611bcb7f3100000000000000000000000000000000000000000000000000000000000001613a82565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b5f805f611c1c8461323d565b6040805188815260208101839052929650909450919250339173ffffffffffffffffffffffffffffffffffffffff88169184917fa89bd13a0c7d13b451ac594826a0ae0852a3cee796872087c3fe4ef607271203910160405180910390a4509250929050565b73ffffffffffffffffffffffffffffffffffffffff8082165f90815261623f60209081526040808320938716835292815282822085835290529081205463ffffffff16908115801590611cf757505f8281526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1615155b15611d49575073ffffffffffffffffffffffffffffffffffffffff8281165f90815261623f60209081526040808320938816835292815282822086835290522054640100000000900461ffff16611d4d565b5f91505b935093915050565b5f611d5e612712565b73ffffffffffffffffffffffffffffffffffffffff8082165f90815261623f60209081526040808320938816835292815282822086835290529081205491925063ffffffff90911690819003611de0576040517f693ab87c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8281165f81815261623f6020908152604080832094891680845294825280832088845282529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000169055905186815284917f0e2d557782991164095499aab37a3d8177adfb1f97fce0a12f8d7b49466336b3910160405180910390a450505050565b606060668054610afc90615a3c565b611480611e96612712565b8383613abf565b610aad7f000000000000000000000000da95fd26d92fe4b4730c3367a8b13cc5ca0906d3613beb565b6060611ef17f000000000000000000000000da95fd26d92fe4b4730c3367a8b13cc5ca0906d3613c05565b919050565b611f028484848461320b565b50505050565b82611f1581610483612712565b611f4b576040517f9925908400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f829003611f85576040517ff12c846f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f02848484613661565b6060610a5a82613cc8565b5f8483611fa782612dad565b6113888161ffff161115611feb576040517f9a5b7c1b0000000000000000000000000000000000000000000000000000000081526113886004820152602401610cbf565b611ff88282610e4f612712565b61201b87612004612712565b88888860405180602001604052805f81525061287c565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8085165f908152615e576020908152604080832093871683529290529081205463ffffffff1690808215612134575f838152612f77602052604090205462010000900473ffffffffffffffffffffffffffffffffffffffff169150816120a6575f92505f9150612134565b5073ffffffffffffffffffffffffffffffffffffffff8681165f818152615e5760209081526040808320948a1680845294825291829020548251948552908401889052908301869052640100000000900461ffff166060830181905291339085907e516abd10b395e6c97f8299bd4a334d6b6e95b4be5c2b31f1ae4cd5bae072499060800160405180910390a45b9450945094915050565b616627805463ffffffff808216600101167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000090911681179091557f000000000000000000000000000000000000000000000000000000000098968081106121f3576040517f0143c8d30000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000009896806004820152602401610cbf565b6121fe818686613cd3565b61223d8184848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613cf192505050565b61224e612248612712565b82613d43565b949350505050565b81612263816109ff612712565b612299576040517fb730a3eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610aad8383613d5c565b73ffffffffffffffffffffffffffffffffffffffff8181165f908152615e5760209081526040808320868516845282528083205463ffffffff16808452606790925282205490921615612335575073ffffffffffffffffffffffffffffffffffffffff8281165f908152615e576020908152604080832093871683529290522054640100000000900461ffff16612339565b5f91505b9250929050565b5f61234d5f89898961213e565b90505f5b8281101561238c576123848285858481811061236f5761236f615aba565b9050602002016020810190611ac091906154ff565b600101612351565b505f5b848110156123ca576123c2828787848181106123ad576123ad615aba565b9050602002016020810190611a8f91906154ff565b60010161238f565b50979650505050505050565b5f8173ffffffffffffffffffffffffffffffffffffffff166123f784611484565b73ffffffffffffffffffffffffffffffffffffffff161480610edc5750610edc83835f610e96565b8161242c81610483612712565b612462576040517f9925908400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83815261335f6020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020805460ff166124cc576040517f090daa9100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f84815261335f6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551909186917f49e43845376b004b5c6ea76194d6de04333118e0f6c9c068f657d3a32cc5b33a9190a350505050565b5f54600290610100900460ff1615801561257157505f5460ff8083169116105b6125fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610cbf565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055604080518082018252600681527f576f726c647300000000000000000000000000000000000000000000000000006020808301919091528251808401909352600583527f574f524c440000000000000000000000000000000000000000000000000000009083015261269e91613e17565b6126a782613ec6565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b5f610a5a82613fc4565b5f61271b613fce565b905090565b5f828152609760209081526040808320838052825280832073ffffffffffffffffffffffffffffffffffffffff85168452909152812054900361278f576040517f74f8519400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f828152609760209081526040808320838052825280832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832083905551909184917f15b346905c3358a4c6206e8d53796ff94c13e1acfeb566d58ba34274033fe78a9190a35050565b606061280189612dad565b6113888561ffff161115612845576040517f9a5b7c1b0000000000000000000000000000000000000000000000000000000081526113886004820152602401610cbf565b5f82900361285d5761285889868a613060565b612870565b61286d8989898989898989614091565b90505b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8086165f90815261604b60209081526040808320888516845290915290205416801580159061298c57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561291b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061293f9190615b05565b73ffffffffffffffffffffffffffffffffffffffff16148061298c57508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612a545761299a8761422f565b73ffffffffffffffffffffffffffffffffffffffff82165f90815261604c6020526040902080547fffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000063ffffffff93909316929092027fffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff1691909117780100000000000000000000000000000000000000000000000061ffff871602179055612d39565b73ffffffffffffffffffffffffffffffffffffffff811615612ae55773ffffffffffffffffffffffffffffffffffffffff81165f90815261604c6020526040902080547fffffffffffff000000000000000000000000000000000000000000000000000016815560010180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b612b247f000000000000000000000000e81771b732e623ae1b7e09f72c09f8c300378b2073ffffffffffffffffffffffffffffffffffffffff1661427c565b6040517fc4d66de800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529192509082169063c4d66de8906024015f604051808303815f87803b158015612b8e575f80fd5b505af1158015612ba0573d5f803e3d5ffd5b5050505073ffffffffffffffffffffffffffffffffffffffff8681165f90815261604b602090815260408083208985168085529083529281902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016948616949094179093558251608081019093529082528101612c1f8961422f565b63ffffffff908116825261ffff87811660208085019190915273ffffffffffffffffffffffffffffffffffffffff8b81166040958601528681165f90815261604c83528590208651815493880151968801519083167fffffffffffffffff00000000000000000000000000000000000000000000000090941693909317740100000000000000000000000000000000000000009690951695909502939093177fffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff1678010000000000000000000000000000000000000000000000009190921602178255606090920151600190910180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919092161790555b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16887fd6ac66cf5ef5678b17b10f8b48c2765185f4f2b139842894bc5e7fce2aff9d2e848887604051612d9b93929190615b20565b60405180910390a49695505050505050565b5f8181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff16611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610cbf565b73ffffffffffffffffffffffffffffffffffffffff8116612e84576040517f1d7b9e2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f828152612f77602052604090205473ffffffffffffffffffffffffffffffffffffffff808316620100009092041603612eea576040517f2acbabd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f828152612f77602052604080822080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff8616908102919091179091559051909184917f815a7b07588e7ea8e1215949a7ff4e6b7ad525fd783567ad41ca1093dde1c1219190a35050565b5f81815260696020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190612fc982611484565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b61301a82825f61430c565b60405173ffffffffffffffffffffffffffffffffffffffff82169083907f1f0f31fb98449c6c6d9042af0dad644b67c406b4bc9996b2581c77c0108cba48905f90a35050565b5f83815261335f6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166130c9576040517f090daa9100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f838152612f77602052604090205461ffff1661ffff168261ffff161015610aad575f838152612f77602052604090205461ffff166040517f55320e0000000000000000000000000000000000000000000000000000000000815261ffff9091166004820152602401610cbf565b604051806040016040528061314b8761422f565b63ffffffff908116825261ffff80861660209384015273ffffffffffffffffffffffffffffffffffffffff8089165f818152615e5786526040808220938b1680835293875290819020875181549890970151909416640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000090971695909416949094179490941790555187907fea85788422f4b4e71907159b221a46645cb0e9c8ade05637904689e1c15e093190610f5b9087908790615b61565b6040517fd7e493c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f90815261604c60205260408120805463ffffffff7401000000000000000000000000000000000000000090910416919081906132a4845f908152612f77602052604090205473ffffffffffffffffffffffffffffffffffffffff620100009091041690565b925073ffffffffffffffffffffffffffffffffffffffff831661332c57835f036132fa576040517fef05ec8700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f895e1a5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8054612710907801000000000000000000000000000000000000000000000000900461ffff168602049150509193909250565b8273ffffffffffffffffffffffffffffffffffffffff1661337f82611484565b73ffffffffffffffffffffffffffffffffffffffff1614613422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610cbf565b73ffffffffffffffffffffffffffffffffffffffff82166134c4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610cbf565b8273ffffffffffffffffffffffffffffffffffffffff166134e482611484565b73ffffffffffffffffffffffffffffffffffffffff1614613587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610cbf565b5f81815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526068855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4610aad83838360016143c8565b5f5b81811015611f025761369b8484848481811061368157613681615aba565b905060200201602081019061369691906154ff565b613842565b600101613663565b73ffffffffffffffffffffffffffffffffffffffff8086165f90815261623f6020908152604080832093881683529281528282208683529052205463ffffffff168015613753578473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16827f0e2d557782991164095499aab37a3d8177adfb1f97fce0a12f8d7b49466336b38760405161374a91815260200190565b60405180910390a45b60405180604001604052806137678961422f565b63ffffffff908116825261ffff80871660209384015273ffffffffffffffffffffffffffffffffffffffff808b165f81815261623f86526040808220938d168083529387528082208c8352875290819020875181549890970151909416640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000090971695909416949094179490941790555189907fcc129567ae9a8e3c55e1ad3156090375e3c062bbbfdb78098a15bdf158a73b2b9061383190899089908990615b7d565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff811661388f576040517f1d7a89cf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f82815261335f6020908152604080832073ffffffffffffffffffffffffffffffffffffffff851684529091529020805460ff16156138fa576040517fdbd1a8d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405173ffffffffffffffffffffffffffffffffffffffff83169084907f1f2c9050d0cb7496cc1729c2ab051bafda1ebc461ce72e3505e2c3ffe18678bc905f90a3505050565b611088816143d4565b5f8061397e83611484565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806139eb575073ffffffffffffffffffffffffffffffffffffffff8082165f908152606a602090815260408083209388168352929052205460ff165b8061224e57508373ffffffffffffffffffffffffffffffffffffffff16613a1184610b7d565b73ffffffffffffffffffffffffffffffffffffffff1614949350505050565b613a3c8282600161430c565b60405173ffffffffffffffffffffffffffffffffffffffff82169083907f7ff28266011814b6ef705d4afbdc5acdcfc98bc4121ff51fa9e8b38dfdc7c4b9905f90a35050565b60605f613a8e836143dd565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613b54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610cbf565b73ffffffffffffffffffffffffffffffffffffffff8381165f818152606a602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b365f80375f80365f845af43d5f803e808015611b6c573d5ff35b6040515f903090613c40907f844b71a30000000000000000000000000000000000000000000000000000000090849036908790602001615b9f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052613c7891615c09565b5f60405180830381855afa9150503d805f8114613cb0576040519150601f19603f3d011682016040523d82523d5f602084013e613cb5565b606091505b505090503d5f803e808015611b6c573d5ff35b6060610a5a82611ec6565b61ffff821615613ce757613ce78383613d5c565b610aad8382612e37565b80515f03613d2b576040517f446150f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f828152612b8f60205260409020610aad8282615c68565b611480828260405180602001604052805f81525061441d565b6113888161ffff161115613da0576040517f9027b87e0000000000000000000000000000000000000000000000000000000081526113886004820152602401610cbf565b5f828152612f77602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff8516908117909155915191825283917f7fe5681e1690fe17cf4e6eb3ab89d245aefd82ebcbdb10922d9a19c92a64df31910160405180910390a25050565b5f54610100900460ff16613ead576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610cbf565b6065613eb98382615c68565b506066610aad8282615c68565b7f00000000000000000000000000000000000000000000000000000000009896808110613f41576040517f0143c8d30000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000009896806004820152602401610cbf565b6166275463ffffffff1615613f82576040517ff9df0dd900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613f8b8161422f565b61662780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905550565b5f610a5a826144bf565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f1681148061405e57507f000000000000000000000000762340b8a40cdd5bfc3edd94265899fda345d0e373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1561408e57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90565b90565b60605f8080806140a386880188615d80565b9298509296509450909250905060018460018111156140c4576140c4615a8d565b146140fb576040517fa5d981a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61410483421190565b1561413b576040517f58c8ca2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6141484262015180615dfc565b8311156141915761415c4262015180615dfc565b6040517f730a2276000000000000000000000000000000000000000000000000000000008152600401610cbf91815260200190565b5f7f71ad9c201ccd16fb90391f250c879758fe5ba86fc78ced782fdf1b540a1784418e8e8e8e8e8e8c805190602001208b6040516020016141da99989796959493929190615e34565b60405160208183030381529060405280519060200120905061421e7f00000000000000000000000037669abc021355f8b271fe60d67765e1fbe27ada828585614514565b505050505098975050505050505050565b5f63ffffffff821115614278576040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526020600482015260248101839052604401610cbf565b5090565b5f763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c175f526e5af43d82803e903d91602b57fd5bf38260781b17602052603760095ff0905073ffffffffffffffffffffffffffffffffffffffff8116611ef1576040517fc2f868f400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f838152609760209081526040808320838052825280832073ffffffffffffffffffffffffffffffffffffffff8616845290915290205460ff82161c60011615614382576040517fbdf15e9000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f928352609760209081526040808520858052825280852073ffffffffffffffffffffffffffffffffffffffff90941685529290529120600160ff9092169190911b9055565b611f028484848461458f565b611088816145e5565b5f60ff8216601f811115610a5a576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61442783836145ee565b6144335f848484614819565b610aad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610cbf565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f49064906000000000000000000000000000000000000000000000000000000001480610a5a5750610a5a826149f3565b5f61452861452185614ad5565b8484614b1c565b90508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e76576040517f3d20eda800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416156145e0575f828152616a0f6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b611f02565b61108881614b46565b73ffffffffffffffffffffffffffffffffffffffff821661466b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610cbf565b5f8181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff16156146f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610cbf565b5f8181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1615614781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610cbf565b73ffffffffffffffffffffffffffffffffffffffff82165f81815260686020908152604080832080546001019055848352606790915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a46114805f838360016143c8565b5f73ffffffffffffffffffffffffffffffffffffffff84163b156149eb578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261485b612712565b8786866040518563ffffffff1660e01b815260040161487d9493929190615ece565b6020604051808303815f875af19250505080156148d5575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526148d291810190615f0c565b60015b6149a0573d808015614902576040519150601f19603f3d011682016040523d82523d5f602084013e614907565b606091505b5080515f03614998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610cbf565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a020000000000000000000000000000000000000000000000000000000014905061224e565b50600161224e565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd000000000000000000000000000000000000000000000000000000001480614a8557507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b80610a5a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610a5a565b5f610a5a614ae1614b83565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f80614b2b878787614cb6565b925092509250614b3b8282614d01565b509095945050505050565b5f818152612f776020526040902080547fffffffffffffffffffff0000000000000000000000000000000000000000000016905561108881614e04565b5f3073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb716148015614be857507f000000000000000000000000000000000000000000000000000000000000000146145b15614c1257507f65a32430f43688a48cf6678cba9deed6cc89cee7ff625d87df1ea1c1b773cbe890565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f62c3779c5abe1883445356f07c79aef0dd2efed8082847ba5f6041a0ef8877b6828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b5f80807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416601b60ff86901c01614cf088828985614e24565b945094509450505093509350939050565b5f826003811115614d1457614d14615a8d565b03614d1d575050565b6001826003811115614d3157614d31615a8d565b03614d68576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002826003811115614d7c57614d7c615a8d565b03614db6576040517ffce698f700000000000000000000000000000000000000000000000000000000815260048101829052602401610cbf565b6003826003811115614dca57614dca615a8d565b03611480576040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260048101829052602401610cbf565b5f818152612b8f60205260408120614e1b91614ff2565b61108881614f13565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115614e5d57505f91506003905082612134565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015614eae573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116614f0457505f925060019150829050612134565b975f9750879650945050505050565b5f614f1d82611484565b9050614f2882611484565b5f83815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff85168085526068845282852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558785526067909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4611480815f8460016143c8565b508054614ffe90615a3c565b5f825580601f1061500d575050565b601f0160209004905f5260205f209081019061108891905b80821115614278575f8155600101615025565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611088575f80fd5b5f60208284031215615075575f80fd5b8135610edc81615038565b73ffffffffffffffffffffffffffffffffffffffff81168114611088575f80fd5b5f80604083850312156150b2575f80fd5b8235915060208301356150c481615080565b809150509250929050565b803561ffff81168114611ef1575f80fd5b5f8083601f8401126150f0575f80fd5b50813567ffffffffffffffff811115615107575f80fd5b602083019150836020828501011115612339575f80fd5b5f805f805f8060a08789031215615133575f80fd5b86359550602087013561514581615080565b9450615153604088016150cf565b9350606087013561516381615080565b9250608087013567ffffffffffffffff81111561517e575f80fd5b61518a89828a016150e0565b979a9699509497509295939492505050565b5f5b838110156151b657818101518382015260200161519e565b50505f910152565b5f81518084526151d581602086016020860161519c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f610edc60208301846151be565b5f60208284031215615229575f80fd5b5035919050565b5f8060408385031215615241575f80fd5b823561524c81615080565b946020939093013593505050565b5f805f6060848603121561526c575f80fd5b83359250602084013561527e81615080565b915061528c604085016150cf565b90509250925092565b5f805f606084860312156152a7575f80fd5b83356152b281615080565b925060208401356152c281615080565b929592945050506040919091013590565b5f805f805f608086880312156152e7575f80fd5b8535945060208601356152f981615080565b9350615307604087016150cf565b9250606086013567ffffffffffffffff811115615322575f80fd5b61532e888289016150e0565b969995985093965092949392505050565b5f805f805f60a08688031215615353575f80fd5b853561535e81615080565b9450602086013561536e81615080565b935060408601359250606086013561538581615080565b949793965091946080013592915050565b5f8083601f8401126153a6575f80fd5b50813567ffffffffffffffff8111156153bd575f80fd5b6020830191508360208260051b8501011115612339575f80fd5b5f805f805f80608087890312156153ec575f80fd5b6153f5876150cf565b9550602087013561540581615080565b9450604087013567ffffffffffffffff80821115615421575f80fd5b61542d8a838b016150e0565b90965094506060890135915080821115615445575f80fd5b5061518a89828a01615396565b5f805f805f8060a08789031215615467575f80fd5b86359550602087013561547981615080565b945060408701359350615163606088016150cf565b5f806040838503121561549f575f80fd5b82356154aa81615080565b915060208301356150c481615080565b5f805f80608085870312156154cd575f80fd5b8435935060208501356154df81615080565b9250604085013591506154f4606086016150cf565b905092959194509250565b5f6020828403121561550f575f80fd5b8135610edc81615080565b5f805f6040848603121561552c575f80fd5b83359250602084013567ffffffffffffffff8082111561554a575f80fd5b818601915086601f83011261555d575f80fd5b81358181111561556b575f80fd5b8760208260061b850101111561557f575f80fd5b6020830194508093505050509250925092565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e060208401526155ce60e084018a6151be565b83810360408501526155e0818a6151be565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b8181101561564057835183529284019291840191600101615624565b50909c9b505050505050505050505050565b5f805f60608486031215615664575f80fd5b833561566f81615080565b925060208401359150604084013561568681615080565b809150509250925092565b5f80604083850312156156a2575f80fd5b82356156ad81615080565b9150602083013580151581146150c4575f80fd5b5f805f604084860312156156d3575f80fd5b83359250602084013567ffffffffffffffff8111156156f0575f80fd5b6156fc868287016150e0565b9497909650939450505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f67ffffffffffffffff8084111561575057615750615709565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561579657615796615709565b816040528093508581528686860111156157ae575f80fd5b858560208301375f602087830101525050509392505050565b5f805f80608085870312156157da575f80fd5b84356157e581615080565b935060208501356157f581615080565b925060408501359150606085013567ffffffffffffffff811115615817575f80fd5b8501601f81018713615827575f80fd5b61583687823560208401615736565b91505092959194509250565b5f805f60408486031215615854575f80fd5b83359250602084013567ffffffffffffffff811115615871575f80fd5b6156fc86828701615396565b5f805f8060808587031215615890575f80fd5b8435935060208501356158a281615080565b92506158b0604086016150cf565b915060608501356158c081615080565b939692955090935050565b5f805f80608085870312156158de575f80fd5b84356158e981615080565b935060208501356158f981615080565b93969395505050506040820135916060013590565b5f805f8060608587031215615921575f80fd5b61592a856150cf565b9350602085013561593a81615080565b9250604085013567ffffffffffffffff811115615955575f80fd5b615961878288016150e0565b95989497509550505050565b5f806040838503121561597e575f80fd5b8235915061598e602084016150cf565b90509250929050565b5f805f805f805f6080888a0312156159ad575f80fd5b87356159b881615080565b9650602088013567ffffffffffffffff808211156159d4575f80fd5b6159e08b838c016150e0565b909850965060408a01359150808211156159f8575f80fd5b615a048b838c01615396565b909650945060608a0135915080821115615a1c575f80fd5b50615a298a828b01615396565b989b979a50959850939692959293505050565b600181811c90821680615a5057607f821691505b602082108103615a87577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215615af7575f80fd5b813560038110610edc575f80fd5b5f60208284031215615b15575f80fd5b8151610edc81615080565b73ffffffffffffffffffffffffffffffffffffffff8416815261ffff83166020820152606060408201525f615b5860608301846151be565b95945050505050565b61ffff83168152604060208201525f61224e60408301846151be565b83815261ffff83166020820152606060408201525f615b5860608301846151be565b7fffffffff00000000000000000000000000000000000000000000000000000000851681528284600483013760609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166004919092019081019190915260180192915050565b5f8251615c1a81846020870161519c565b9190910192915050565b601f821115610aad57805f5260205f20601f840160051c81016020851015615c495750805b601f840160051c820191505b81811015610e76575f8155600101615c55565b815167ffffffffffffffff811115615c8257615c82615709565b615c9681615c908454615a3c565b84615c24565b602080601f831160018114615ce8575f8415615cb25750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561158e565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015615d3457888601518255948401946001909101908401615d15565b5085821015615d7057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b5f805f805f60a08688031215615d94575f80fd5b853560028110615da2575f80fd5b9450602086013567ffffffffffffffff811115615dbd575f80fd5b8601601f81018813615dcd575f80fd5b615ddc88823560208401615736565b959895975050505060408401359360608101359360809091013592509050565b80820180821115610a5a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8981526020810189905273ffffffffffffffffffffffffffffffffffffffff8881166040830152871660608201526080810186905261ffff851660a0820152610120810160038510615ead577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b8460c08301528360e0830152826101008301529a9950505050505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261123860808301846151be565b5f60208284031215615f1c575f80fd5b8151610edc8161503856fea26469706673582212201170f8e4cbe2595579ea1cbbebef2fcb8f636233dc52d624f84485c94eace32864736f6c6343000817003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341ff05581e030135208d77b58b1a1337d070b12ab42107f9cf07a27cd9e3acf789af600701195f5d03f6cda7d4efadabae3b1e8b9500e7f751c7c69ad57639f70aa209a1df31bb2c6f05581e0309a8438026c2540d820c2f0fc56b7293244058cac58fe4d3c2dd579440040205581e030db3d97e721825dcc849aa35a20cc7497133c23146dede0f73ed3384e00c0147108e9623a35b5d0313275c30225b152398673f4178ac9bd92e427f2f8ea01e721ab442269c73d51c037c165fe655a0746c4defed02d8130829d55921c7c475b7bb3a2f9e842119405a03f992a0e86176eb40c42b06b2fd474567d512e1ccc937a78ed7ecbf6dae73647f05581e039767a461ee963b4d1847cf5f6729717c7acfb6d721323dc1b5defc2b100c0346a8001e73252802197d53038ffc103b1bb17e1ec37e0a78a73dcd4549a41f5aa271a683617b2eb01fce7ae303f1ff75fa3b346dc896a55ea1c50091f09450d84f6211901b2631a54362eb545d035335d679bcaecba4cc075a95008f990e61176c54af64c18987f199a1e572beca037b9f550b18fb1b7e87f8d81886924e85a4d15f4152f739a97d4e5f9f1632abc503def56ac7f643afba93ed564796a082ff3fdf795d37c203530c120b68ebcabee20376352427a5897cf58161cb2fe81026275f36f138c70db2e53171a564892a7cc4033362b791bc58b25780b65c64899069a448e0e2e34cdff793cd810f5001b2077a032ac60f8e48a41842a3c1ad399012f97861728d01abc0e4cdfd6a089bfe0e9c700219ffff0370dc3e9b7f7f654ab7f5a3ab7929f9f16c6365f03ed60ccde602da923e340ecf032008ca89f2e491723e549708930d4920cf4131378f3f0e83e0de98fcf0c1116403908ffb469ff03a25fa21375bdfb673161177e653dff766a20879f5019c77526b03dc03d03d285884c0c1b02f3b29d7f9a846d46de9ffe5fe34a98dbabba924e4b9038db9d9186941b58f869feb89566c8ff6f59f1e2f1bf117f1bd743d65103d6d1e034c7497bd200cae30990672b985850eaeffc0379774e825e31e51d17df86fe6f703578b32257de46d5d6962e9a6dcc3114a96ba0101e73d1feb1ddb53b1c7594c8b0219ffff032ed4e3c4dd2d97730ed00fe441fddac05be06721b11408fdbf42271e3aed106b030022adfc06c5765253f188a5d6b4c5a8b6f680a3ac17200e1f959335f09ac37d0383fb8733cf15983c0b40aaaef6c1d6510820e70e1228a0424318ca4f7b763b1103113b8d21cb7b1fd0f8cd632bda9f4652637b126385dfa967ec1a6e2316bea3d40317059ed7fc7a2fe028f3b59ce79b7f8e0ab4078116b219ba144613912791ac8603784ed947244726781afd57085236d5986754fea5f730c986aa511459023713ee0351951a5ae2ca9b488f36da4ad0d09d3404c0995337d31e1de1c56565c5c153ab03517473570f72e6536c351eae8658b199bd42f896e3bb0517486f7f0eee6921ea037867f00e5b76ee294d8fdd01208eeecb35f4562159881caecf0a9efe72167b6203ac2fceb5e91a3df6ea26f242b08f636e92ea9c8e177931095d767ec61dd5443203415b12653da55625fb6974b229feab1992b256eb3006d2d08a1b594d8901e3e10339d8173612ed25556e00f19247f3e3c88e1ea5862b5c5683af065df633593c39036812577836cf3d32b9bb5469cf87ec55a8cc17726e21ba8cb293803b437b137b03334ee1b89ef9d411c0db98e8cacf24225ef744b42f76b8ae631f091d93c31cf0039e7dba5dd708dbdaa1c3a3120a08f58fd93f2d2897ca55fcce7a6ceba78afc0703d04fdc7896a31a995b130eee50b961f36a84a7d0cccadcbaf1ae0c12a312afaf03f31d4312e46a12bb3889b23b948b4e8e89e80ce6746d6a47568e41224eb9532d05581e03add0291c2bf4fd705d9a6287fca68d3c26a091c1a82be64a30d4ce92d00c014710d9c11913960005581e0327b3c2e23464b898e458e8e892986acfb4f1ee3a0b0dd9b5173ac4c0200c034733af7769f813300379e7f887fca92c76bc2e7d8b5cb184aa1894f52dd8b4a80fbb5b8f0721724e0403a9852573e65c6d2a296f677d38743658dcee84b64f8b88032486086ed1ebe5cb05581e03d163a92674e70cc5b739de3df9aa906d92d0edcf5d2e54c681938e32f0040105581e03adc135330d16def99132ed914893dab39071563712f5b444e079ad68800c0147031b441368e6e005581d02b7b7e187944590c7538fc0c2c1d728c1c1e2bfa55bffcb24f808d3590c01468f3ed38d580005581d02ad1f1cdd0616551efedc55f5138debf43ebb583d482532f01e8ee3240c18b04803c8d4b0804d198003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581d02c47673776cf51dbeddd9e7590af161f9196ba06c666f4c9829b6ebe407011bffffffffffffffff05581d02399b56d269bb5e795cccde4461a29ed265855431dce68c04c64fa0120c07466b680b9f087102190a2405581e03ce312e599e05ffd105673eadea2788339d3508e6d18b6f5e9a520107e00401037a6fef7e804c0dee8f4ca3cfa51b354243aee91bf7b4f6bdfb522eba0db1d1aa01410605581e03545713881db4dc77273041b34b645584daad6851a487f94bb677c581d00c014721d2e870e8c400021947f903ff2018954632935d99b0cd6cf02dc3174365114bca8349d8ed8c946416b984e503c8b52a9af32f626d30c3afab2113055881896b7bd1acf2f3d9169eeb14fd5451036f1fbb22cbe332308484f5d1ae36c3096d71563dbbe7f56b00200e907741709c0354954ace76c7b15d82428061a1e2e19beb005b0a998e4b079adc6095777e17f503fe78c7dad421a64ed50cfb1ef5cf0b52d0551005d2818899a203afe4cceccaed03c630443e5d128a18d5cf69bf0b9fa892dd8f97dc32ea7d4ce1de89fcee97720f0219ffff038a35cb5e4ee846fa364a7c47532b080a9238b0ed729f6c44e7a2736daf840c92034c0fde2284a30e0c4ed018bcbd9cd0cd36249a0fc96974782c1d876054485b7b0311bdf3610a7a3cf18b32d2af8a49704d6a9ea5ed7259dde4ccf9eba7e9dee10403c83db247e5e21607f9f1ac06b85acf5171e7f2adad6706d1759b0143c3b88191035232d8ea0fc65a25321fd64c3fb7caaf606c4323200e8069a20a23cae4bb0418038b809831f95018d6aa894d71e35836d00c0ca32ddf69c83c9530e6e01d3508a103ded9fed9599fd9f788f5ede66c9b61a3be723a504d4b6213b1b80968e8d82c4d03f5670ac370a30a985a6d2c1c5baa776d8f607e6e4cd210f2bc0ac477c25a298f03a0b57a3552d9afebdf1867851c98139e5e83cb3344fbb35533a3e8ef6ea7673303c117f68238238626a7d43a4dec776c597dfcb7b0fe700ec9d5a087af9667a14b03a3ac43b9cb44c2b7d53babb40ed12a4c3a24da20f8dfde0a1fd35a718bd682750219ffff03bcdeb91c1fa6987bf411199b8a58730d4f15b6a5fd01a3ac2c79358a7f2c4d2603d6a4752344f281d0e199ebc8153dad08dd56d82ce83d5deb2d911a7a4252570d03f19d423a8ca6d4a99bf0d9924b196e8ddde3c7d6a2f3b1957c73f4b968fde0d503039be96b1d51e8d8cfc79ee6fdc71183f4253e26659d0661f94ebc32e2c5cfa40337047295363e8ab216a8db95d2f29d59e7f24d2b61953ac974db8c70a0a4f527035e3160585d394685d8e8e65f5f904c0212cdf33a80b9f6ac231404d042a97d49031d29b01cf37a82524b0ac5fe8264585bcc865b07161e80d20cea55ff275d100f03aec8ce491b08b123434af095567b7ab9d16d5e427f8a9e24967e66b58dddaae203e807bb6b4bcdbac356316e65c7ec59f8f9f624ae800ac91078e6f06f22ce60e303ed06b5ef92a1400fd1d6bef74f6d7c32ab88327c86c2d7587deb2b6b084ac4a90219ffff0359387104aaade62581530d00d123f062e7c1f538d78a10ae4d1aa4eb5d5bbb1d0219ffff039eba5bbeee5836e1dd2fece58d67783b877473aab44318f385cb74f888e6d14303dbcfebd9f4a53c14cf73bff42f444a56e647cbfdbc6e0e768ddbf98820c4458e0307d2a054be9de681a217ecac645771699aa5033bd075ca3decfb09d3ed2b6fc403ba864cb4486defede51fbfec1abc4f63bfa58cb260ec6f3b006f8c5696a951b0034b49b00ec41387a92465a09b892f657861be1c2c51ff6c3b7d1a793566c6b56f03ac1f8a37e7a08c8bce4f69e980b56dfe364c2cb0c14248203d8dc575ca7a89ba033067e4e4dcfead2186f34cbd88ded6d19cea6ca680f3f0548a9076e4bddd59b103e90ae0adfe135ca296c1ca491934af784230471f674f68c8b93a4a3d007203c303e2a6fd5be84e32ac14ef71cf5f534d7debba1d382f6c8d04ed3f732f0089b53e0326f05c4188af22e2c50622dd99b237c337e38ba9c66b5151a22f65f9832ff0ad031f8c0b004cc996bab6c26ec32c6b41aef51a71d62c393b0649b1cd1e4b328087031bc706fad86e5a9b7e9faeaf43f785b10b7835d33748498200cc3eb5d8ed37a103d3ec102d7d35e088f95ebbd6a39bb2e233b0bca8f30ccebfbcc9c762fab16d1103dd0987270a04a71bdc518cb36333e85b2b1482f711479033f8cea3a30430cf3e032ee1c01cd99849750a84e511c7b51720c9a75d924feb182928d600e56dbf5f36036f6fd820a2e4d9638b340c3ab042c36caa0608818daf5c548714b3273ca04acb03fd7218ffccb1684598f9fc2c082794ac4ceeff78bf85416d11c1e2842da5c79303dca7b903ce048856cafb91a34aac19dd3af434bf988b610ccc4ee7b2d2cecddd03a8b88ea218cf1c99d365d27ca7f00e88e9b531b1036b0549bd3adc25adaf839b0399899ebecbda4ee525dd24a6348062913f164d1e91338ce968951bdd4b3e6ef80354414563f1f6b2cbe30f277111f192ff67d51c84b5efa116a916a72848e0973a03f5bda483dccdacfb3c5785851bc2f5bd243e13e23c112c7e6ccca50a986ef4b003350e5c3aa9f68686856bbdcc43ff55a960678406e94cd773047def014fedee7a03ddb78712a0da82e8484731c9c5e4e6826b6c576a04d8c8def8a62d3e9f76682703e14f4c7b5134cf85498597d430228c8aabcc86f4fcc2c5f5caaafb209c7dbd5f05581d027d0c11d8eec4b7fe2f2b771d574211ab6c96958b9236de274100f2fa0c19243e490113e98001ae45db0a05581d02da68e2cb25039d07ea6b5f3f579025cce2b8181deab87745d497279c0c154705d1651784460005581d023a1c9f512120edbf3f98c8eb523e7e5f7f5b1580447fad631d16e75704010219302005581e034e4b9fde7ded5913662c777964d8a9e3841ececa9878e3c6d5350ffe70040405581e039ed5ab524684cfdfbcf023bfb9682d0ad09bbc4a6056152ccaa2eb40f00c03470412343f844649032632c7db7e3c67cf07b283cee1ba4ea42b45448cc4c2eff8d41669f14048bda205581e03850cac4f9375f1bce1544e0dde3b7ccbda423e986d9f797d3aef46ca300c0147065d1b04236e78031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03528df97815a43b22ee3a18d90a8108b0e63e19d34cd08d94a916e568c007011bffffffffffffffff05581e031bb6dbafa984f56c8ebea269014700f726e2aebdcb6727c3297ca3e6e00c0147106fbc5b14e00005581e03a8383c08e0056571c8af7195d2ec0f7dd142a5441b6ced7d81a40442e004010219caa6032ddc3b6fe871dfc3ace68ef91c98f27e0ad6ba70caeec16b5b99b3adc95f6c4d03935145643090bc4252d5d438ca817884cd8d8bfec76a40fe3891c2f3f57e6bac03d07749794720af668a3cbed9b4ff9c73274bb73cd189cd217f78cc309fb67f9803f4844155ee76d57f7704e783acba9ff6417850a72019e77492ed33492b7fc13303584558a35cb52fae6cd1234240d58ef992ff81a5e9394c06b68a5b445047fa250347abbd4c27a8f6f2a56c1108b1537c6880a66bc35cf0dda6988028d1e32ef0d703fed8f7e2f6c0bcc332a5e5ea73a4395426be08c7c71938514e76b519dd1383e103a9097c84526c7ce2b095bc82b347fa0a66044dac6182a594c389f70b9de3579a03fabe8ebe5450fec79b264b6775139225380c3513c91f0f870ba9ca7f6276ce6d039678d4a8f24cf7d91c8a5cdc1767dfcf7ef7f8c763714232556efd84a82f459703b9b12a19f8a180aad1db471d6160f7ac0e336dad72d8a6dcfae5f9ade8ff202a0219ffff03246abbb21869207700b7ffb246a6c6afa35c682977b132146454cec6920c5bcd03ff845318c1b36b60cc9915da0468539ae532f4264eb3fe791560184a82f509ae03123f80d3f2e9f982d83bb18b994c70c917c13d58986db2d21ae317e326ab80db03aec8512d6606d4d0224340bcbeb59bf66fdd94b23ef3b1b842fef2a3cdd47f270398bb4b6533979af5901f7e0c71f8228a4f4121b5670e9e22e05e1dcd0e75d61303c6864bcd26eb69d3a8d81adfde6cef59caf27b7262802dc7572308c9f07857c403c79b00e13ec69feb6f1f85ba0fc7d157cabb772ac4111577123d6a50a5ad5a7a03baa18f935f356a731078cec0d559044a24c0ef562ee019147ab78e6f85b1784803dd20916466b1808ccdf7a51b13de75fbe23f70810a11a0f9e472c2475ecbbb450219ffff035532eda34cee6bf35fca2c23c1daf7be345e37f1cf867176a100d1206841f6da035114fd8c29091600a0208c652ee8bfb67126ccd8d63a06e7d701748c223c6554038d6a3231f31d263bdaba11aa88ea9695fbb01a577d5678954cb8d4a1c284b2b803407c2c909f26ae66d575fa09f2d25376f78ce807059fa02ae4ca7160ee1a236403bd4577b3dad7d24fc8cb2fc573b91fac8b553f26266cd38afb0b321a94dcf94a039f95b7310821e7f5f2cc384a4d8f4f17491e5e6e3438aba1dfd00a7d309424b0035032a9047081f19e40a2f3560b794fc169f73ab2b76278f78efc8ec50b0e1bb303547f48ab8b0b83bae9dd2f49bd27689def030239ac0fc70232dc0c1ef9bb393e0219ffff03b4fd389cb726ac7a11520176155d1beed47a347fad5f66962bbffa03ff087ce303d277cfa0d6c9d5ec6088cfa9907a957ed66e1a7b8c3888775045e9a67d159bd903e5df9a7121df888e49764bac897f8e48ee20b4ae7a225b689686add46cdb3231034dd66f3fc992abac9805aa4111573d04b23a93c4035bbe37bb0e6e4ddea065400383d2d75cd1359be9b6743ee953e329bb06f623089c772f21dc7dbda0fb0188d503038ea8c942b4b7d8bc526cc8f7cd22604f16d55b7559c35c95d3b4efd925659703c2d94b3706441e3042db2948c870900839dd7965486095bf5eaee6acaf2bd6290219ffff033e8e72364dd76b4e8af200c5b999d3ec4d97553be144b081ffd02ac3ca6a09f1035408727f3e1b8fd76fa9df21086c659eee0824f2b965dfb9baea4a92814a48690395b80891e741eccc61a63c1a526af4efa1db544d1951d2f9b6556f5428b5352d03514cade3be89dad1a5a95bafd572c4acc71c231e89a97822d7578041b620cc0d03e203164c009e2aa29236325a128bdf00f366f0bbf7e9b7005b34d503dbadc70703580256782571f075f7a92574d0bd693a14711c21f2974a9c7a9ec4079ff54cfe032321965bc0a14dad4fd6152a87e155e8dce1860877060ef3ecd578dd41e8de07032b2f526a1aa003bf882a9a0903553a43b67806ce3c77f8c036d6524cffb1dde303de297e57468b79fab1552bbb6306910c43d9f071537a6548034efbeea71937240374f4c631962977a2a76b9826a19b5cb9ba6eb7019fc279c7d3c9c4fa21d7747803a850b704e0faddde9ce103f522c157eeb92429219a082306a44ff8396d08e476032865d2518f607a456c34a528e8af4f59b133a6bd40271b56b9f2ee2c430074bc032c8ae30111852413f5f3a6afde6ccc49969ef4596bcf4dc2869f60118284927e032ecf636f2ac60c3d684edda8d5dce013e24ebd50ec0b199a128993bec2ddcdcc03f412e7e9f32e5e72f0051c11289da0ef97cca94a98ef3c8d9f697e890778bd7903c703583b1c87a28119c8316d6b56b05e103dbf290375117c0ebf314eef2f8349032f2bd8fee87dd5833b1697f652eb557d9e0d32c7bdc33220df28c3b006c3f93f035cb6d2d16f9e1b9db2221a81994fc697f3923ca8f303c498442eec6937d8a59b039f5ad2b5ec85f2f0168df9996808b721f5e200444aefa45e83eb0f3e15eb3f6303daa1d24958a7c4fd00a465d13e0fc8dda56440a34e604fb3be5b5fba9409738603b10152be3bdce6de83e2843935f94055162c23c0a99e4fe2a1bff6a7ad257a0b03946c987b03064c486fecff21a16a9a4f7f90eb73ad82544556804f0d44ad6a9603577eee0846af69bb3f09bb0c3ccde7f08e19f21017dac94d4904819627fca72b03d17cde6d0b9bcd286d75eb637fe590e8bd3fc713c5561babc95690639c744c7e03b1e96cbce9551c664d6e0c491737d49f72d21fcffc079ea456a18138585e427703e92c0bc1e85691d1dbf734b692743f9b21267d58637c016e8f89826d7c123f50038f46d1ca925f96a51df1600c433995f34be6cefe63829595551e51fb636f078d0392deb3fbf8401692b773d4bcc6ef6b35bfc119aad329af0a60445aeef63c8d07039306c6e2e1f8dfcb50a1210f53d6f28af7c69c9ce9c18a206abbeef1c60fc66803843d8c4a5c61f40b1cf5a946ef943546d260cbe612b26159ff6d86e484eb4679038eb55dc1fbf453f47dfeabba5380b37fd41ed3dd508659b5521b729734c3ad1c033c9cd1e659fc8206270614e32d54ce449e63fac40b9095fe36d0bd31c510b6a6039b8d86891c7187c0c85fa953a0e42e9b93d7b0ffd343cd7ab0b3740a0807647e03ce2470f1ca5238cc43ea1ae13235d669267d435500750aff03fa3fc636a3839905581e03b2f96aac12804d156f25ea2d5a222cade1c9f0cc73b49792a98be830300c024702ce80355f6001030c844b3e84c95827e936b5bcfa8013375dd7468bf42deb73633f857eab6036df03dd86569efd83a8a3c806525f5f9db414c8e9891e89e6101e5ff508e398b2664705581e032bdcd2d5a365008c3c0ed4cbb4d9dacadfa01e4a64356c9e67347af1900c0c4703f24d19f28a0805581d02e09065da3bb4025f484098f0d191dd22c3ed6d27ed74975d839c3fe7084202c7045951756080604052600436106102b25760003560e01c806375f0a87411610175578063a9059cbb116100dc578063c9567bf911610095578063dd62ed3e1161006f578063dd62ed3e14610ac3578063e2f4560514610b00578063e4a1b95f14610b2b578063f2fde38b14610b56576102b9565b8063c9567bf914610a44578063d257b34f14610a5b578063d85ba06314610a98576102b9565b8063a9059cbb14610934578063bae14e1d14610971578063bbc0c7421461099a578063c0246668146109c5578063c3f70b52146109ee578063c816841b14610a19576102b9565b806395d89b411161012e57806395d89b411461080e5780639c3b4fdc146108395780639fccce3214610864578063a0d82dc51461088f578063a457c2d7146108ba578063a72905a2146108f7576102b9565b806375f0a874146106fc5780638da5cb5b146107275780638ea5220f146107525780638f3fa8601461077d578063924de9b7146107a8578063953e0463146107d1576102b9565b80634a62bb65116102195780636ddd1713116101d25780636ddd1713146105fe57806370a0823114610629578063715018a614610666578063735de9f71461067d578063751039fc146106a85780637571336a146106d3576102b9565b80634a62bb65146104f05780634fbee1931461051b5780636323d7cb1461055857806366ca9b831461058157806368092bd9146105aa5780636a486a8e146105d3576102b9565b806323b872dd1161026b57806323b872dd146103ce57806324887e801461040b5780632d99d32e14610434578063313ce5671461045d57806335b5fb631461048857806339509351146104b3576102b9565b806302dbd8f8146102be5780630517d13d146102e757806306fdde0314610310578063095ea7b31461033b57806318160ddd146103785780631f7ea8da146103a3576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102e560048036038101906102e09190613999565b610b7f565b005b3480156102f357600080fd5b5061030e600480360381019061030991906139d9565b610c69565b005b34801561031c57600080fd5b50610325610d78565b6040516103329190613a9f565b60405180910390f35b34801561034757600080fd5b50610362600480360381019061035d9190613b1f565b610e0a565b60405161036f9190613b7a565b60405180910390f35b34801561038457600080fd5b5061038d610e28565b60405161039a9190613ba4565b60405180910390f35b3480156103af57600080fd5b506103b8610e32565b6040516103c59190613ba4565b60405180910390f35b3480156103da57600080fd5b506103f560048036038101906103f09190613bbf565b610e38565b6040516104029190613b7a565b60405180910390f35b34801561041757600080fd5b50610432600480360381019061042d91906139d9565b610f30565b005b34801561044057600080fd5b5061045b60048036038101906104569190613c3e565b61103f565b005b34801561046957600080fd5b506104726111a7565b60405161047f9190613c9a565b60405180910390f35b34801561049457600080fd5b5061049d6111b0565b6040516104aa9190613ba4565b60405180910390f35b3480156104bf57600080fd5b506104da60048036038101906104d59190613b1f565b6111b6565b6040516104e79190613b7a565b60405180910390f35b3480156104fc57600080fd5b50610505611262565b6040516105129190613b7a565b60405180910390f35b34801561052757600080fd5b50610542600480360381019061053d9190613cb5565b611275565b60405161054f9190613b7a565b60405180910390f35b34801561056457600080fd5b5061057f600480360381019061057a9190613d44565b611295565b005b34801561058d57600080fd5b506105a860048036038101906105a39190613999565b611520565b005b3480156105b657600080fd5b506105d160048036038101906105cc9190613c3e565b61160a565b005b3480156105df57600080fd5b506105e86116e1565b6040516105f59190613ba4565b60405180910390f35b34801561060a57600080fd5b506106136116e7565b6040516106209190613b7a565b60405180910390f35b34801561063557600080fd5b50610650600480360381019061064b9190613cb5565b6116fa565b60405161065d9190613ba4565b60405180910390f35b34801561067257600080fd5b5061067b611743565b005b34801561068957600080fd5b506106926117cb565b60405161069f9190613df6565b60405180910390f35b3480156106b457600080fd5b506106bd6117ef565b6040516106ca9190613b7a565b60405180910390f35b3480156106df57600080fd5b506106fa60048036038101906106f59190613c3e565b61188f565b005b34801561070857600080fd5b50610711611966565b60405161071e9190613e20565b60405180910390f35b34801561073357600080fd5b5061073c61198c565b6040516107499190613e20565b60405180910390f35b34801561075e57600080fd5b506107676119b6565b6040516107749190613e20565b60405180910390f35b34801561078957600080fd5b506107926119dc565b60405161079f9190613ba4565b60405180910390f35b3480156107b457600080fd5b506107cf60048036038101906107ca9190613e3b565b6119e2565b005b3480156107dd57600080fd5b506107f860048036038101906107f39190613cb5565b611a7b565b6040516108059190613b7a565b60405180910390f35b34801561081a57600080fd5b50610823611a9b565b6040516108309190613a9f565b60405180910390f35b34801561084557600080fd5b5061084e611b2d565b60405161085b9190613ba4565b60405180910390f35b34801561087057600080fd5b50610879611b33565b6040516108869190613ba4565b60405180910390f35b34801561089b57600080fd5b506108a4611b39565b6040516108b19190613ba4565b60405180910390f35b3480156108c657600080fd5b506108e160048036038101906108dc9190613b1f565b611b3f565b6040516108ee9190613b7a565b60405180910390f35b34801561090357600080fd5b5061091e60048036038101906109199190613cb5565b611c2a565b60405161092b9190613b7a565b60405180910390f35b34801561094057600080fd5b5061095b60048036038101906109569190613b1f565b611c4a565b6040516109689190613b7a565b60405180910390f35b34801561097d57600080fd5b5061099860048036038101906109939190613cb5565b611c68565b005b3480156109a657600080fd5b506109af611d98565b6040516109bc9190613b7a565b60405180910390f35b3480156109d157600080fd5b506109ec60048036038101906109e79190613c3e565b611dab565b005b3480156109fa57600080fd5b50610a03611e82565b604051610a109190613ba4565b60405180910390f35b348015610a2557600080fd5b50610a2e611e88565b604051610a3b9190613e20565b60405180910390f35b348015610a5057600080fd5b50610a59611eae565b005b348015610a6757600080fd5b50610a826004803603810190610a7d91906139d9565b611f62565b604051610a8f9190613b7a565b60405180910390f35b348015610aa457600080fd5b50610aad6120b7565b604051610aba9190613ba4565b60405180910390f35b348015610acf57600080fd5b50610aea6004803603810190610ae59190613e68565b6120bd565b604051610af79190613ba4565b60405180910390f35b348015610b0c57600080fd5b50610b15612144565b604051610b229190613ba4565b60405180910390f35b348015610b3757600080fd5b50610b4061214a565b604051610b4d9190613ba4565b60405180910390f35b348015610b6257600080fd5b50610b7d6004803603810190610b789190613cb5565b612150565b005b610b87612248565b73ffffffffffffffffffffffffffffffffffffffff16610ba561198c565b73ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290613ef4565b60405180910390fd5b8160108190555080601181905550601154601054610c199190613f43565b600f819055506019600f541115610c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5c90613fe5565b60405180910390fd5b5050565b610c71612248565b73ffffffffffffffffffffffffffffffffffffffff16610c8f61198c565b73ffffffffffffffffffffffffffffffffffffffff1614610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc90613ef4565b60405180910390fd5b670de0b6b3a76400006103e86001610cfb610e28565b610d059190614005565b610d0f919061408e565b610d19919061408e565b811015610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5290614131565b60405180910390fd5b670de0b6b3a764000081610d6f9190614005565b60098190555050565b606060008054610d8790614180565b80601f0160208091040260200160405190810160405280929190818152602001828054610db390614180565b8015610e005780601f10610dd557610100808354040283529160200191610e00565b820191906000526020600020905b815481529060010190602001808311610de357829003601f168201915b5050505050905090565b6000610e1e610e17612248565b8484612250565b6001905092915050565b6000600254905090565b60125481565b6000610e4584848461241b565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e90612248565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0790614224565b60405180910390fd5b610f2485610f1c612248565b858403612250565b60019150509392505050565b610f38612248565b73ffffffffffffffffffffffffffffffffffffffff16610f5661198c565b73ffffffffffffffffffffffffffffffffffffffff1614610fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa390613ef4565b60405180910390fd5b670de0b6b3a76400006103e86005610fc2610e28565b610fcc9190614005565b610fd6919061408e565b610fe0919061408e565b811015611022576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611019906142b6565b60405180910390fd5b670de0b6b3a7640000816110369190614005565b600b8190555050565b611047612248565b73ffffffffffffffffffffffffffffffffffffffff1661106561198c565b73ffffffffffffffffffffffffffffffffffffffff16146110bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b290613ef4565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114390614348565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b60105481565b60006112586111c3612248565b8484600460006111d1612248565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112539190613f43565b612250565b6001905092915050565b600860169054906101000a900460ff1681565b60166020528060005260406000206000915054906101000a900460ff1681565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001611348959493929190614377565b60405160208183030381529060405280519060200120905060007f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e670000000000000000000000000000000000008152508051906020012060006040516020016113d4939291906143ca565b60405160208183030381529060405280519060200120905060008282604051602001611401929190614479565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161143e94939291906144b0565b6020604051602081039080840390855afa158015611460573d6000803e3d6000fd5b50505060206040510351905061147461198c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890614541565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555050505050505050565b611528612248565b73ffffffffffffffffffffffffffffffffffffffff1661154661198c565b73ffffffffffffffffffffffffffffffffffffffff161461159c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159390613ef4565b60405180910390fd5b81600d8190555080600e81905550600e54600d546115ba9190613f43565b600c819055506019600c541115611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd90613fe5565b60405180910390fd5b5050565b611612612248565b73ffffffffffffffffffffffffffffffffffffffff1661163061198c565b73ffffffffffffffffffffffffffffffffffffffff1614611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d90613ef4565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b600860159054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61174b612248565b73ffffffffffffffffffffffffffffffffffffffff1661176961198c565b73ffffffffffffffffffffffffffffffffffffffff16146117bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b690613ef4565b60405180910390fd5b6117c960006131ab565b565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60006117f9612248565b73ffffffffffffffffffffffffffffffffffffffff1661181761198c565b73ffffffffffffffffffffffffffffffffffffffff161461186d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186490613ef4565b60405180910390fd5b6000600860166101000a81548160ff0219169083151502179055506001905090565b611897612248565b73ffffffffffffffffffffffffffffffffffffffff166118b561198c565b73ffffffffffffffffffffffffffffffffffffffff161461190b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190290613ef4565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6119ea612248565b73ffffffffffffffffffffffffffffffffffffffff16611a0861198c565b73ffffffffffffffffffffffffffffffffffffffff1614611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5590613ef4565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b60176020528060005260406000206000915054906101000a900460ff1681565b606060018054611aaa90614180565b80601f0160208091040260200160405190810160405280929190818152602001828054611ad690614180565b8015611b235780601f10611af857610100808354040283529160200191611b23565b820191906000526020600020905b815481529060010190602001808311611b0657829003601f168201915b5050505050905090565b600e5481565b60135481565b60115481565b60008060046000611b4e612248565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c02906145d3565b60405180910390fd5b611c1f611c16612248565b85858403612250565b600191505092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b6000611c5e611c57612248565b848461241b565b6001905092915050565b611c70612248565b73ffffffffffffffffffffffffffffffffffffffff16611c8e61198c565b73ffffffffffffffffffffffffffffffffffffffff1614611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb90613ef4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4b9061463f565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860149054906101000a900460ff1681565b611db3612248565b73ffffffffffffffffffffffffffffffffffffffff16611dd161198c565b73ffffffffffffffffffffffffffffffffffffffff1614611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e90613ef4565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60095481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611eb6612248565b73ffffffffffffffffffffffffffffffffffffffff16611ed461198c565b73ffffffffffffffffffffffffffffffffffffffff1614611f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2190613ef4565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff021916908315150217905550565b6000611f6c612248565b73ffffffffffffffffffffffffffffffffffffffff16611f8a61198c565b73ffffffffffffffffffffffffffffffffffffffff1614611fe0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd790613ef4565b60405180910390fd5b620186a06001611fee610e28565b611ff89190614005565b612002919061408e565b821015612044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203b906146d1565b60405180910390fd5b6103e86005612051610e28565b61205b9190614005565b612065919061408e565b8211156120a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209e90614763565b60405180910390fd5b81600a8190555060019050919050565b600c5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b600d5481565b612158612248565b73ffffffffffffffffffffffffffffffffffffffff1661217661198c565b73ffffffffffffffffffffffffffffffffffffffff16146121cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c390613ef4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561223c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612233906147f5565b60405180910390fd5b612245816131ab565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b790614887565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232790614919565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161240e9190613ba4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561248b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612482906149ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f290614a3d565b60405180910390fd5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257f90614aa9565b60405180910390fd5b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260c90614b15565b60405180910390fd5b600081141561262f5761262a83836000613271565b6131a6565b600860169054906101000a900460ff1615612b285761264c61198c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156126ba575061268a61198c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126f35750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561272d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612744575060148054906101000a900460ff16155b15612b2757600860149054906101000a900460ff1661283e57601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127fe5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61283d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283490614b81565b60405180910390fd5b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128e15750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129885760095481111561292b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292290614c13565b60405180910390fd5b600b54612937836116fa565b826129429190613f43565b1115612983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297a90614c7f565b60405180910390fd5b612b26565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a2b5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a7a57600954811115612a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6c90614d11565b60405180910390fd5b612b25565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b2457600b54612ad7836116fa565b82612ae29190613f43565b1115612b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1a90614c7f565b60405180910390fd5b5b5b5b5b5b600073ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015612c1f5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639015d371306040518263ffffffff1660e01b8152600401612bdd9190613e20565b602060405180830381865afa158015612bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1e9190614d46565b5b15612d3a576000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a20527fc8585600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b54600954600a546040518763ffffffff1660e01b8152600401612cb396959493929190614d73565b6020604051808303816000875af1158015612cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cf69190614d46565b905080612d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2f90614e20565b60405180910390fd5b505b6000612d45306116fa565b90506000600a548210159050808015612d6a5750600860159054906101000a900460ff165b8015612d81575060148054906101000a900460ff16155b8015612dd75750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e2d5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e835750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ec55760016014806101000a81548160ff021916908315150217905550612eaa6134f5565b60006014806101000a81548160ff0219169083151502179055505b600060148054906101000a900460ff16159050601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f795750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612f8357600090505b6000811561319657601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612fe657506000600f54115b15613080576130136064613005600f54886136d590919063ffffffff16565b6136eb90919063ffffffff16565b9050600f54601154826130269190614005565b613030919061408e565b601360008282546130419190613f43565b92505081905550600f54601054826130599190614005565b613063919061408e565b601260008282546130749190613f43565b92505081905550613172565b601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156130db57506000600c54115b156131715761310860646130fa600c54886136d590919063ffffffff16565b6136eb90919063ffffffff16565b9050600c54600e548261311b9190614005565b613125919061408e565b601360008282546131369190613f43565b92505081905550600c54600d548261314e9190614005565b613158919061408e565b601260008282546131699190613f43565b925050819055505b5b600081111561318757613186873083613271565b5b80856131939190614e40565b94505b6131a1878787613271565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156132e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132d8906149ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161334890614a3d565b60405180910390fd5b61335c838383613701565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156133e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133da90614ee6565b60405180910390fd5b818103600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134789190613f43565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134dc9190613ba4565b60405180910390a36134ef848484613706565b50505050565b6000613500306116fa565b905060006013546012546135149190613f43565b9050600080831415613528575050506136d3565b6014600a546135379190614005565b831115613550576014600a5461354d9190614005565b92505b600047905061355e8461370b565b6000613573824761394890919063ffffffff16565b9050600061359e85613590601354856136d590919063ffffffff16565b6136eb90919063ffffffff16565b905060006012819055506000601381905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516135f690614f37565b60006040518083038185875af1925050503d8060008114613633576040519150601f19603f3d011682016040523d82523d6000602084013e613638565b606091505b505080945050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161368490614f37565b60006040518083038185875af1925050503d80600081146136c1576040519150601f19603f3d011682016040523d82523d6000602084013e6136c6565b606091505b5050809450505050505050505b565b600081836136e39190614005565b905092915050565b600081836136f9919061408e565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561372857613727614f4c565b5b6040519080825280602002602001820160405280156137565781602001602082028036833780820191505090505b509050308160008151811061376e5761376d614f7b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613813573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138379190614fbf565b8160018151811061384b5761384a614f7b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506138b0307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84612250565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016139129594939291906150e5565b600060405180830381600087803b15801561392c57600080fd5b505af1158015613940573d6000803e3d6000fd5b505050505050565b600081836139569190614e40565b905092915050565b600080fd5b6000819050919050565b61397681613963565b811461398157600080fd5b50565b6000813590506139938161396d565b92915050565b600080604083850312156139b0576139af61395e565b5b60006139be85828601613984565b92505060206139cf85828601613984565b9150509250929050565b6000602082840312156139ef576139ee61395e565b5b60006139fd84828501613984565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613a40578082015181840152602081019050613a25565b83811115613a4f576000848401525b50505050565b6000601f19601f8301169050919050565b6000613a7182613a06565b613a7b8185613a11565b9350613a8b818560208601613a22565b613a9481613a55565b840191505092915050565b60006020820190508181036000830152613ab98184613a66565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613aec82613ac1565b9050919050565b613afc81613ae1565b8114613b0757600080fd5b50565b600081359050613b1981613af3565b92915050565b60008060408385031215613b3657613b3561395e565b5b6000613b4485828601613b0a565b9250506020613b5585828601613984565b9150509250929050565b60008115159050919050565b613b7481613b5f565b82525050565b6000602082019050613b8f6000830184613b6b565b92915050565b613b9e81613963565b82525050565b6000602082019050613bb96000830184613b95565b92915050565b600080600060608486031215613bd857613bd761395e565b5b6000613be686828701613b0a565b9350506020613bf786828701613b0a565b9250506040613c0886828701613984565b9150509250925092565b613c1b81613b5f565b8114613c2657600080fd5b50565b600081359050613c3881613c12565b92915050565b60008060408385031215613c5557613c5461395e565b5b6000613c6385828601613b0a565b9250506020613c7485828601613c29565b9150509250929050565b600060ff82169050919050565b613c9481613c7e565b82525050565b6000602082019050613caf6000830184613c8b565b92915050565b600060208284031215613ccb57613cca61395e565b5b6000613cd984828501613b0a565b91505092915050565b613ceb81613c7e565b8114613cf657600080fd5b50565b600081359050613d0881613ce2565b92915050565b6000819050919050565b613d2181613d0e565b8114613d2c57600080fd5b50565b600081359050613d3e81613d18565b92915050565b600080600060608486031215613d5d57613d5c61395e565b5b6000613d6b86828701613cf9565b9350506020613d7c86828701613d2f565b9250506040613d8d86828701613d2f565b9150509250925092565b6000819050919050565b6000613dbc613db7613db284613ac1565b613d97565b613ac1565b9050919050565b6000613dce82613da1565b9050919050565b6000613de082613dc3565b9050919050565b613df081613dd5565b82525050565b6000602082019050613e0b6000830184613de7565b92915050565b613e1a81613ae1565b82525050565b6000602082019050613e356000830184613e11565b92915050565b600060208284031215613e5157613e5061395e565b5b6000613e5f84828501613c29565b91505092915050565b60008060408385031215613e7f57613e7e61395e565b5b6000613e8d85828601613b0a565b9250506020613e9e85828601613b0a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ede602083613a11565b9150613ee982613ea8565b602082019050919050565b60006020820190508181036000830152613f0d81613ed1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f4e82613963565b9150613f5983613963565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f8e57613f8d613f14565b5b828201905092915050565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b6000613fcf601d83613a11565b9150613fda82613f99565b602082019050919050565b60006020820190508181036000830152613ffe81613fc2565b9050919050565b600061401082613963565b915061401b83613963565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561405457614053613f14565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061409982613963565b91506140a483613963565b9250826140b4576140b361405f565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b600061411b602983613a11565b9150614126826140bf565b604082019050919050565b6000602082019050818103600083015261414a8161410e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061419857607f821691505b602082108114156141ac576141ab614151565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061420e602883613a11565b9150614219826141b2565b604082019050919050565b6000602082019050818103600083015261423d81614201565b9050919050565b7f43616e6e6f7420736574206d617857616c6c657453697a65206c6f776572207460008201527f68616e20302e3525000000000000000000000000000000000000000000000000602082015250565b60006142a0602883613a11565b91506142ab82614244565b604082019050919050565b600060208201905081810360008301526142cf81614293565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f616d6d5061697273000000000000000000000000000000000000000000000000602082015250565b6000614332602883613a11565b915061433d826142d6565b604082019050919050565b6000602082019050818103600083015261436181614325565b9050919050565b61437181613d0e565b82525050565b600060a08201905061438c6000830188614368565b6143996020830187614368565b6143a66040830186614368565b6143b36060830185613b95565b6143c06080830184613e11565b9695505050505050565b60006060820190506143df6000830186614368565b6143ec6020830185614368565b6143f96040830184613b95565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000614442600283614401565b915061444d8261440c565b600282019050919050565b6000819050919050565b61447361446e82613d0e565b614458565b82525050565b600061448482614435565b91506144908285614462565b6020820191506144a08284614462565b6020820191508190509392505050565b60006080820190506144c56000830187614368565b6144d26020830186613c8b565b6144df6040830185614368565b6144ec6060830184614368565b95945050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b600061452b601183613a11565b9150614536826144f5565b602082019050919050565b6000602082019050818103600083015261455a8161451e565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006145bd602583613a11565b91506145c882614561565b604082019050919050565b600060208201905081810360008301526145ec816145b0565b9050919050565b7f496e76616c696420616e74692d647261696e6572000000000000000000000000600082015250565b6000614629601483613a11565b9150614634826145f3565b602082019050919050565b600060208201905081810360008301526146588161461c565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006146bb603583613a11565b91506146c68261465f565b604082019050919050565b600060208201905081810360008301526146ea816146ae565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b600061474d603483613a11565b9150614758826146f1565b604082019050919050565b6000602082019050818103600083015261477c81614740565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006147df602683613a11565b91506147ea82614783565b604082019050919050565b6000602082019050818103600083015261480e816147d2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614871602483613a11565b915061487c82614815565b604082019050919050565b600060208201905081810360008301526148a081614864565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614903602283613a11565b915061490e826148a7565b604082019050919050565b60006020820190508181036000830152614932816148f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614995602583613a11565b91506149a082614939565b604082019050919050565b600060208201905081810360008301526149c481614988565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614a27602383613a11565b9150614a32826149cb565b604082019050919050565b60006020820190508181036000830152614a5681614a1a565b9050919050565b7f5b66726f6d5d20626c61636b206c697374000000000000000000000000000000600082015250565b6000614a93601183613a11565b9150614a9e82614a5d565b602082019050919050565b60006020820190508181036000830152614ac281614a86565b9050919050565b7f5b746f5d20626c61636b206c6973740000000000000000000000000000000000600082015250565b6000614aff600f83613a11565b9150614b0a82614ac9565b602082019050919050565b60006020820190508181036000830152614b2e81614af2565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614b6b601683613a11565b9150614b7682614b35565b602082019050919050565b60006020820190508181036000830152614b9a81614b5e565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e2e0000000000000000000000000000000000602082015250565b6000614bfd602f83613a11565b9150614c0882614ba1565b604082019050919050565b60006020820190508181036000830152614c2c81614bf0565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000614c69601383613a11565b9150614c7482614c33565b602082019050919050565b60006020820190508181036000830152614c9881614c5c565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e2e00000000000000000000000000000000602082015250565b6000614cfb603083613a11565b9150614d0682614c9f565b604082019050919050565b60006020820190508181036000830152614d2a81614cee565b9050919050565b600081519050614d4081613c12565b92915050565b600060208284031215614d5c57614d5b61395e565b5b6000614d6a84828501614d31565b91505092915050565b600060c082019050614d886000830189613e11565b614d956020830188613e11565b614da26040830187613e11565b614daf6060830186613b95565b614dbc6080830185613b95565b614dc960a0830184613b95565b979650505050505050565b7f416e746920447261696e657220456e61626c6564000000000000000000000000600082015250565b6000614e0a601483613a11565b9150614e1582614dd4565b602082019050919050565b60006020820190508181036000830152614e3981614dfd565b9050919050565b6000614e4b82613963565b9150614e5683613963565b925082821015614e6957614e68613f14565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614ed0602683613a11565b9150614edb82614e74565b604082019050919050565b60006020820190508181036000830152614eff81614ec3565b9050919050565b600081905092915050565b50565b6000614f21600083614f06565b9150614f2c82614f11565b600082019050919050565b6000614f4282614f14565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614fb981613af3565b92915050565b600060208284031215614fd557614fd461395e565b5b6000614fe384828501614faa565b91505092915050565b6000819050919050565b600061501161500c61500784614fec565b613d97565b613963565b9050919050565b61502181614ff6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61505c81613ae1565b82525050565b600061506e8383615053565b60208301905092915050565b6000602082019050919050565b600061509282615027565b61509c8185615032565b93506150a783615043565b8060005b838110156150d85781516150bf8882615062565b97506150ca8361507a565b9250506001810190506150ab565b5085935050505092915050565b600060a0820190506150fa6000830188613b95565b6151076020830187615018565b81810360408301526151198186615087565b90506151286060830185613e11565b6151356080830184613b95565b969550505050505056fea264697066735822122082abb4f4da2018c8c3a6f45de88c5646b3dc3d9b12ac13da0197ec502035222564736f6c634300080a00330348258ec6c34d04734ae1a0e423d84f79a269e7d5652032cf81551ece79ac276200582003680893704b0adf762516cc371fb3a724c5f4aa69357f0eeb0595053fb816205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200396cb6d92eb028c46419767645c47b2eb05cf4242524357eb33f380f4eccf80494059bb1c2861ef087a00582003eed651255037edb10adba80e265fed2fdbbb06662e527c947d8afd9126cce05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f022f24514f52c7f94a57ac9e73066421ed6efe76d26bf8141fa0333c92c4b74a487fdb909ccaf4f2012a00581f031da1460914451da893e11afc31b2a8ab7bef620f3cbb3380b074222473904352c78e00581f037a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db904b011349242670ce848000000219080100581f028fca5dc7a1cb2fc3ac62ba3db3b08143e879cfe61da25ac67686ea1ffb264a0185e627fcf8bb383cc200581f0296ed34a1cb17b60baf4e6c6530d7892c82381977e89944b5a39170e591ec49e6ee0fc39354a591150219212103300409d61113776bea6fd11dc71e24059cc2915ecd2bbb64380ae8aa4392e0a000582003c1de49f736615cc82f3201d795682915a1ecaf7c2df2c2e91698f124531ba04a01f3ad510a55127aebed0359c1513ceadf2b2e31960879125bc619020fb83dc4a2ae2137cf8c54ea9f2386014301bc8000582003da6180d1b05195c9c32bd54a5fc569df0340c0a0a5173b15e9d69e1a55f0904a065a4da25d3016c000000335e3b1b41ce9af02e3a3321f32d63ad1c958e284e98d2bc391077f41dd14103802196ea6039ef64548e55aa28b0ad36c1823782e7753d026505020d55674faba73b9c4c68103f4015c95bae10fb871a75f5358eb62064cdc32ebfa4decb12089731492f0e0d1034cddae9c36976563c6e72eafbf11e729366ba848a1c9943dfea50cb05525846d039952b2ca25a032266ecd522a03c5af76a50773bf116e7474ff0fe631097515240385e8d486efb07ec71d091b65f8d965e4d45ad842723b944ac913d34e1df2577200582003a23326a755e4629da09965ebdec5a2b42d6d0f329d9f0761ec4425f8a403404a0bda1e0a8ee5bc8c328b005820039c29be83f4c9b6795ae54a1d578b4abdf3f20a119a212dfaed5786fe4051d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200308226246bbac252c74b3e1413f7dbb4ea1e38248ddfdcef0e2683e3ca7ef405820fffffffffffffffffffffffffffffffffffffffffffff3f146efa6501640537000582003575470f4c6e76d06df41543732941415b073bbd58ff438ca75d3a2ba0f86a04991427b3a2dee5c4c7d00582003b187f4cdaf0dc3126f4e7b3ce79f1f258409b1223dc747d1844eac875408105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820030e9d8d9a78e1488e79b2bc05e001c5528f5d5c98fdc0452dc66f70f5627ee05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003224329a4e311c806079edaa12f179a71b52eec54357edf90d7919fb4f26ab05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003de0e8449c7a2178fc9c31a96679c22a4f39fbab8fe330be6a5e381729878304a01a7b0ef0a8cb280858b00582003c93864fd4c63fd79bef64e02bb1e99a04b135892bcc95835d58d262efd98705820fffffffffffffffffffffffffffffffffffffffffffff3dba739c0ab22c9d3b900582003727d5f250615027721d0ad90d3ab2d6dcfbcf2b695c1997779f02bbca67c105820fffffffffffffffffffffffffffffffffffffffffffffe54f4f8b0bb0ed9af5900582003e6d8edfc559ffb056b42b40970ee03f01fcee7103523790de5e83552f914b05820fffffffffffffffffffffffffffffffffffffffffffff6a60a1aaa90efa8890002195d3f037d54d3ca85ad80a63ad4b74a2e944a47ff8ffaf62958f90f8af7806d7a3be33a039b6dfeecc087125085e4cb925f98a8437fe54f3c85edf5d09789fbd5bfa03973031bdace5e624c3c231ff162f553f1adb6ef280f3609f3a8b456c7378c0b8a0acd03b17cb04e369028a9509c15ad3615ca44a6904d8ed0a77b92b1c928333422c1e903b42fc2a3cb6a7b706563d97dd537b87412227ac923c4a5e613ada15a1807e352033fdf08236760f9cde1fe256afe95f184d9e6e4dce9277127c0ce8618ddc9e5a903661b95ff6a767a5ec7286ae2dd4fe85e448675c06c0aca56f69cdbc25c76a39b0327f1d3d0f33597da2e3919febec72df046191d6737362efe290da4d7bc5bcfb30219ffff034da9d3d50bf890b8e1c39d5b3aa638a898146e8e59ef47b5498ed18b46f4d5e903b271c62f1af6d5899962e5ba1abaacb334af90c49533c281bce7f2d86b8e52c0033e498eee54834c418df8a5f4c98389d96038f5dfde6de6220edfcdb9e93ff5f7032342751221b430eb5e3823067b48bccc3934b32b4fe784e58024771e9e616a91038c5c4934133b23cead2518963845991cc08e155fdae04799b70a60226c6fc71603c204998f24ac2adfa4035897c911bc0d23b468698c03b6bf0aa1b902980e55f900582003505e564c37e08ff32d21e7e1a751f7ec6d0d4f27448d70afc61a3e5c645b204a033522b31a8986ee453f0058200397e579f76743d9e718184d38b5b005b1ba324617fc46f5e731580507b48090410103e65d89fc532c5eaa6c067f2ec17ab894139ae83ec82bdb6aee784407ede9085e00582003ff01e12e2ce7367812a5ac6ce8f7540242b3bc30558ded4adf7be32e79b8705820fffffffffffffffffffffffffffffffffffffffffffffe4eae42a4e760e50f59039cd05c61823f92470325c04bb91f226b0d97dab307c7bdb6d595bd6efa7c6ff100582003cfac6ea70845ef83767b5873f1849292ba0298838f85034b368f53034c7590493de85c0b6a61ccd996021939220342cb10927982a5a9143d5881aec8a8c6bd569fb984b35cdc1bd678a40636856f03d23e66837d9108a6185d78915b16616bf342d9f9ac94d7a1afaefe949b464b8e034f66e33d4c63deb973bbf86397ba5fc2a541df51fb99b49578ed2bc7c1a2fa4d03742c1006c4ce729a909d6e7a193f0a1f25278519b1bbc80e984878cb247e7df90381328012898b438f1bd5eeb75c1a73136599cf578593389591e46455da833e1a032f600155a46c351265ce1c5d784570371121b22bcb67541f4b6e6eefb83620b1032c99bbbb033388f3ac564795de961e7f2a2cc12ddd81caa023203e74ac075b4f0364ce4848da5a51aba05a1b6c87ec272abb30b4119bb844cf6b216093fb1e69ef035bbf273e241642384e18266788cf657c6d5aba45c9fa025cba3f392a1f7eb9ae03970004f71526877ce0377e837ab1f498bdb6637402b91668503aca19d7be441703f8e655ab07e87562ca42068ea767593d647b5bdc65f0862b40bd3ffaeb3bcbd0038e82d6b3ca1e399a4eff35d306d8e18f8ebb72090407c2a8d544a92c2b9dbfd30219ffff03fac669042cffa10af2bb66a381b76d56a2fcf50d316c65fd865a5ac0218ffdd103091ca90f036736ac455a053d149ffd0458bb55ea10d0a113be0b9d4198d3aa67033d237f6a6da04c6f25440e41a67f7863ba11fb1ab5d91f3ed01cab2a5f3238250315484b1b959fdadd8a1263cf32bd6eabd8c57831b3c0eb1f2dd4c0c9b0e948a0030627ca590d71cd422f5ae766ca89761f8e1bc853987c2b730104dbfd98e71a3503f387af8f96fca5dbef6fcba652b2723e644f1846981f60ccdf07e1f96932cb010375bb7a425eea76af001341e7b6ab946075601a90892714f4c147b9c1efbde6510058200379179bd551eb2bccb55efabb5edf63657aba24c00a9000a4b62ac33f5361304a0343fbea855a89e7b30103f41a1a3cb3e8ff92121618129b4fd3715a58c4912a037751680a046c277003c1032695555599777168a715d79b0907a33caa59e075a184e3be90983ff5736fef080058200390a32b86677b3e6b4a34876411dc5d8cb208022a8b34a5e182f81c4af0b0e05820ffffffffffffffffffffffffffffffffffffffffffffef3f2248f2a5203733e9005820038002ce1881007fbbd79f6454e6da5179ce47ddf17b05d46a9bab26c719a1604a0fa53875cbcee871142400582003d025880935f5f98a9de41d922c7254d4f8ea14bdc39c4458191080f911de005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03bed236212a07677efb78352d714c422f87d3ca9c11afc61104c8a250b674525400582003a07679a1d976a64202d095d6dca562a53ca302989296f427c498fe96a21ef04a011cb155179c6c151e1600582003d0174eb315dbdfd77b19232f9fff2133bf28f10e82a8895d48142348acaa605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02b411bb10494706fc74fa1af80778664571e184d6a2cd3ffc326fdf8696b84979475976b836cd167800581f028ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09049fe36f5d32137e6b684021940800372ad33d5bf7c906cd84ea841656a3bdf938323987099fa9251378168b9da7d8703ad32b272da1c38496a4a3779140631f6035f44851fe7e0fe587f0f20f47fafbb0219fb5e0303c6436e5ec670f7bbf35c9bdcf18e3617b0f9b5a7661bab11cb36e303229b60031e04c2d2cbcfffd8ffc9272f3b0dd3c9a73ec3857010de799244a3d02ed2a7ae0364f7a0b3b4ba97f3854f3a66541b1ff0b2fb35d025d0c58e9e5634015fb79d0b033ca9d772f190ef4207437066b71810eeb067a82fce09213dec913d3abe5e6a3400582003ddb1a8d7cfa1f2fa862331aff4ce984e8ea2580680baa47e176df21206bdd049a2ac15bd1afe03ed0503600687628e0c784ea34c4a90ed7cdce7ee23a6564208b155d7786bc8f3736676033002a8603d30c738f059b804f22b251b33bea3ef3d2186bed940458acab503630058200334fc01c3b452ee14a87e6cd7a57793a4c2ee6e7ec86f05e9e6880e67a342505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200387df848eb464382e51abee087054d7cd0ff1aa331113bb39e563967f77afa04a041890d693ec3baa517700582003572cb4a04ee6ec399709c5b229b027f38a2d1572e23fc0db4df46d78be83f04a15ee646a8f3b46e9fa1800582003931e25a7b933788ecabfd29227eb14dd59c1aa28a19a1c35baa6ed17534b80490fc2fce52faf6653090058200355374a43d9cc7d50568f5e2000b642dc21b3db53106ccbdefd4d4e633659e049201509e55795be8c1e021981f6036f072ab4d0193accb179e6ed905586df862dd5e0b8b6b26ecc16864228a3fc7e039669f22c9af30275ef654d2ba96561188cc3500450cdfe09cbf98e6f1a75872b00582003540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af04b011349242670ce8480000000582003c346318cc167091b153acd5d4fff9ef36cb10853930374973ececaa66c11704990a552d7c87793e1a90058200319c58d802ca098cb9fd8cad674f5cc1c795a709e3eabee4223d69d3cda72b049370d8080adb63b66df005820035c3f7b5e43bdc465a988c5be44e95e1166979d6838a68110e2681fc7af09005820ffffffffffffffffffffffffffffffffffffffffffffff4ff0505dfc659767bf00582003245d48a1485dcc30d7274ce8044351dfddce6a07d696e7782f64855703f5c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820038000ef35154b243d530240705fa9c69fab61e7ae88126eda884b9fe94ba130492c1ed4d89e61fe885d00582003fc591e337068e3b93dfb1efa52303efa782d81c29962b408e83054426b63d05820fffffffffffffffffffffffffffffffffffffffffffff8a7aa9e3ce4c9f62659005820033c1ca1bcd9328a42248d7b73b97201a9bbcadef3a7f06d82747996dce900c04a014834d71b73f3ec318102198cf203e867fd385d7ca1afdb84eaeaca430da6599dae25562301a6f6fa074bcc9620fd0219ffff00582003b2eaf155502b4be2c699f10edc740c4561ddd1d3a6dbfd34615f4aeba3b0e05820ffffffffffffffffffffffffffffffffffffffffffffdbf77cd4ce621273f9a00379cfe253e4012e898c800507e5a8d8af6d46d2e4f3655b99e35773f25562487900582003010104630453f79831d3070b24584db0f9206b59d6b3f14e910ac9b889b8904922835f6b200e43fbf6039f3023618f8a7e25e4fadf5cf9ff9c659a8d480bf95fb5e0c237578bb6a304070058200388b74c9711a9db5e9526312fc64784b4d9c78821ba11a489a3e17191f674705820fffffffffffffffffffffffffffffffffffffffffffffa21810d9e3c79c379f500582003264c3d5ff4d3e7536b2b824d104f4bf7fa54a3642a33e067f53e3b92918cd04a1b3b7e6a92afca6b908d0305466471c8c26c4c6b4f277b0d2501d5e595133145096090a72dc1618cc4f26d00582003a2d88587530a5da26e140388d72e7c26d2c7691656a6e173996e45689436d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02199ea4036c9f15e022636a23e0f0b8ddb7a4d6d6af97c47cbc01283ff151f13beb449c5f0383033e61599591d1f300b17ebc6f7920bc3a677151e9b628bcf2a1e5a366191d0322d30ce5c10e724f8ad2a56e7b48ea012c869dffcdd94c8ae93509152656b1d3031ab10b97ae1bc7ccf48e3e5ab6a804d6eae1f97d51c547f22b5f77b7a72fc4e5039f60b83ee6a11e72d62c7f3b6679ed29ccbdfd512c1f79f36eccf3ceb7a113cf03a7f3aec05905c9ccae3072d20c9a4d2b818c9c8338fc648942cef8851b96dcb203aa6207c025824bf5af2cf7472fe89c7d62064dea8af350791c1539d40d2f921903823fb4593c79905c7768786a97d35608fc0b905c1c615312f33ec94edb1493b50316b3a7677722fd93bacd1232ba43520e24ea596c6ac0c0c20ad0e96ab255d30803cd25e9505e145bb2ca303734b3ae0b2b217cc584e0eaec5b8455aeede9f61bbe033893c838b2db863a69e322b286f3d39661aff288ebabecc58eb3b3d160b0d68c0367cd564098a3b43f9021451a52b9f9f4a16627e57165582c2df9d4143585d98b032b9538172617afbb8911051a7dc3917829cd46d089428a1ab6100296f48b15d603b4acbc976008f3fe7774d948f5ce4ea4b44225dcb13086193d36392a3f18494a036ffebd9a552d21fe8e104b564325c356fae16a83b7bdd3943b63c29b1bdebaba0219ffff03886b7307754cff6ad8474dbe0d8147bd89832524d1bf4bc486a835583f5606ed03dded850080f238e23eb12595f7be5dd9cd3cfe753ec07271d5f04bdaa587f91903daefcd8f7e955112a1beb4028b7bd65dff5c82966f95e22cdea78ff66359ba5203c13205bf3f83e74351d97c3c91b18fec46c539d13e32eff5c83e97cf4fe82f5a031a312d2d79c0dd81f5a426aa965c8f363ace96b25d7f81f6931a413abd3275ce036c8d0df297e0a43dbb0ed9ab6cb7950824cf6f810cfd8ab1054e92d3480badb403d2291daaa078a1ba2e9291e036bd39cec8b55b0deef38c86611a1d05dc8a7d6203bc78f28a38640af8bb7286c185a69dc67aa5459231d9c893c5ad1f0ff3d6a51d036d8db80155ab0244862f07599844ddb35acd1fd5e9ba4f47c24bfc756a65592d03f7d59bf5195f5b439b7ebd93c7d15e3cf0f80af2a92581f41a98c7093f6198510369749841c37788f04791c998c57b8de684651ff09a8d1e28948a6809b270e8fa00582003342144b34d105d7ffa8e30fdbc08181d4d665ff5705e565e95deb976ea10604a0636d8398fdd7366ac9d005820036b778d847cdeea23de803aa85a554051f284f72eb3b8cb0ba449632e929e70495770678f26f94e8223031ff6368e060be62c4d9adb2e28521f28bc225879e4d37c4cf6ce4b9d5bc7f2f100582003ffc696979d1102b517d082b90d766229990ba41218656df4cf26580d0811c04a01883445aecee03b8e240346398c61a0b80b354dd2683dc5003a5c8dbd4a607f04cf9ae91b5570a8ac582e00582003aea0492ed1b60f48e99e1bd8c3d0690f9db4a7202f70fbeb0030da10361c905820ffffffffffffffffffffffffffffffffffffffffffffa3174093c1d115475cff00582003742f8577ba07064966d9bc31ee604bac53c3a226701b898ca271d055c10720499f33efb1073614717d02196923032ade44691c83d7980077c8bd840cf5ebf42dee98d848343bf9546048693d21d20325e0cfee69eba02812dca7df9f46316d4bec42a14f38214b2d3d7fa718d104c703c7de75faa11f1b3d583437c56ed3ce647608c7ed5aee6fba4e437e66ff9892e5039167ab59c86f0172f7908021d014a87369c8b17b9d07a47adbe6147ac01ae9830219ffff0363ef3da32c12a6fa99b3dd75c33881c01fef605fea5ab5df5200b9d73d3184e003c5ba58fa61d4aef07089ae0c1469eb7c0d00fa18ec5f0bb38642f8b04576694203ea7f0aa228179cc8f225cc1c71f411fc22730b6839b437ea6231bec60083264003ff3b01f3b610fd9e95d084631832cfbe5c1b63c41041f12c054e9bc5b0af36bb031bcdb6b061dac9efc3b50b667177b7466882c11507ef631204022a695326a95003dd4e57f18a19b1839059d6660d58779d0bf263f980a48dd7de7485bedb8bb4ce03475c35193312a626f70600e832581d106d5b581b89848fbdae711c05b1719ffa0388d0a50bc62727f8eba2eed09c67079ef86137cb7ca4ab6a2d30e0c292c5e88903febb83677caec1aacd3818357429bbd23423be91d1f02fba5ef2361525ca664d03e19d81cabd02033eae7f21f12b0ffa26b9d3357d166ba69527c704a80db6f76c03d5902029b359048d39927af6fcf1f5028a6b2c7cf9cdda2df3bc05efcb90b95900582003aa79365ce1d2eb95c3b04455f5c5482a9b8cfcd8194207a9ff5e0e9856c8f04a0199dd1adc784a80173b0359a905ca6b1d3a41d03a18c87101c633353fb963b2587d3e204b120087b264dd01410103118122b17c74e3c4f196ae4753fc8fc93761a290996e4a3375fbe942380f1dad00582003a26c8d609530e303309644e4eaf27fca34e6f93d7997a0a4474a3754f484c04a43a80f29d95698ae000000582003f8cc9aac89ac535a25242834d4d28ecccff56c249492aeff7839241e5247705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0276541410ff37e692575e714740201fee7687f536473da5390ee61e44d0614a053e7d9e30bd19ae538300581f02a94e1e0d9572fa22dab0f9cdbab0e2407762e8e020c4f49965c4e7599ebf4a1a784379d99db42000000219802000582003890138b37e5c0d92d96d0a0530c89cf5ba12daf3003dcdefe7e23740dc86c05820ffffffffffffffffffffffffffffffffffffffffffffdf3f5d1b0f6be28cb9dc005820034b87e8c7c4ca2656aada8b6f26c6eceb6fa10d26a50e0744c33fdbf32f27d04ae4d78ba467d6cec688c50058200303a9da810d429bde0d9325db92383c678c40912afc60cc8948d3d60ab0c44058207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219fa49037d0c8bd0c67e279ac51f6afd84d8e0a782d97542d49ee4aa1b47d47ad7a56d1203bdb3dbb1c3fde36f336e778273387f934776d76a19b75d31b7956e3bc94ddd2603615ba1406741fc5d451439b0a1ae7ec9e3e672418f203f96af88df055bd757dc031d798d94a2c6be45ff01603642123bbad0d7cbe85b8939ddd623a19c4df507410219ffff0366e8aa3490d0b8846beb0a2f99c1789f00cfb195c4cb0d9e145e1a07d032c3af038b233a641c50d810c28158939b9b790d584fe9441e65600fd5ab6ebbadf1b5070381aa24c5c6b01451a9f222df3d6ecaeb9d7eee273d4bd9999762939560ed6a8f03a222c6cc9d072b09866b48e7af83c736aff8096d30ce84fa475b00a2a8de8b4d03ae0cb5f5138e3a325f201b45d74aefcbeb48adb6895d253c4bef93134e74126b034146519d5f97c81f03219817ccb4651029c30fde0b3891dcc818b97d8c3fdae103d86e7bcc79428c80352a25e3bf405d36df2bb5534b2eee1e4086010094cd534703b8cfc0173195b6521049edc3bb98345dc8a9088841a0983dd024f1528f2daced03fb6b0728f44df30db4133b135a3d99f5585d58206e4cd0029df3ec9eb7cfaad80317a0a80d907df7edaf423d7e364ff8b28d0a891b385568bcbc0c8d10bd2c527803922f6821d04c792144079911a899846a817d8ee4d97939863d3082eaa8e103a70353fe109af6c2a9cd9514e72d26b41355ed203a2a7e16739d0ead3d0069eb659a00582003c47ac508c55139d2ed102847186262aaa18d29fd6c5302fc885481e833fa005820ffffffffffffffffffffffffffffffffffffffffffffea9c44ea8dec613d06f903bc8bb75023e1b10ac8d1653080fb13887ab121c9d9c49f1da540c3e909114b9d0058200340ef50fe166fb6783421d21427ee11dd7fe95cae8bf324d1d519ff64b4db5049553f92b0e6aae466d200582003b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0410300581f03b9b4cc76836c637dae1bf83136aca979e8ec28101083e5e3d9828a5876a04a06871bdfe0031fd47a3f00581f03a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444049a979f9376b7a99cf0202184401410a005820036f162c1c15a51a0535b0e15046fb62638c772774f6cc560fede478c92765704a034a63037f1570d6b3dd00582003922dc0b4a68666f487a813f756177d184a3467e37d96950c036708db2eebf05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820032aafe9a019838c8af0db454514079b32190b233e88e524df55e7176615ce705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03738ce82acf782ca1cc4ca130786fba0613fdd5c4399a4af4624ca1c87ddb7d890219aba50363b4497e4fafa89e28c2b0d87fd2d532a5085ae21c11c4e266a197e29084fd8503ac1986625edd37b0e103872e520f605263fb838185ed7e4b7f76cd67ac71385303ec85baa712eeacbd2ad956f174d848d13de18bd64aa05fcb37019d6f7c9169e803a35f45681d05851e2408c0f5786cda57eecc033f55e7a075d8685201a3ae51520219ffff03195257d22aeda2989a257cab7c777a996a19f2f04b598255202e3eef683f76db03a87849f9fa45ca1b7d14c0719034a9e6a76327362fe2293ef92185c1d7673eee030b460fd00d00d6fde8ec7287dffb4ed57457fdebd9f57bd291d72514d57e86240390d4c8a5dae16737babf764328550e82297a94fa12939d4e7bce2be5d408907c039432b23f739c377ff860d5529180b1295664a4de03451305f35cb22e49e556b903a36db2677e172f5851bef8d2d9e99708f4c2be0252bfb5e450bc963dcbd297aa005820038ac09916498f8e861aafe3d5623090ed1836e54db1cb4e590131c75ed5a3d05820ffffffffffffffffffffffffffffffffffffffffffffea9d93e8b11b2681c8100058200395a29f82762599f19ef7aa1674a2360a0da04ffab9907890dd315a4f63c0804a0e46302bb97497f725a400582003a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a804a0a968163f0a57b40000003041767c5c0c32479d1708b904640447783d060775383045a94b4343c8f0917f900582003bf8bf201c360b900c6032b60ea6db15a7b9f7de0043a5d7e76c996b64537905820fffffffffffffffffffffffffffffffffffffffffffffa0af702af8d8f3bdc8a037ec0a3541ab8b9d1985e9d9d00f5b5035aca3f6f8297c6bf5042d2e1c947a00003160ceadf26cf5e5d6c19963c96c995c2c07a517ea3c4f2829265ea20f11cda71005820037977a384862de2f1f6635be2b0b36441e6795e873e207332fa7dd30f52ccd045fb8506adc6039111a7613bef2eff6ddb39e1b354cb3e4ce69584d1486bc20d084c9c1479a2330323a58d0be9ef1ce60de27a6db653566a1978e6b33dacb4512e5171e9777e52680219dae503ed67b967468976c7fa065aee147a36f32e2a5d11441cd0d2178ca5c5e763353d038bd88e1f1f5703fd7d11018aaece1d4972e63fb48c5be76c1d196cbffd934bba039009565a802416a3f001dd1818a8a636ee253691b67f6094e6aa350ec26496b703d99d8494e36c95176d8709332ba6589c2531b35c383bac02c789657c70aec4ba0325c10fc1a79522e4766992cf99d4e8fafef49ca5068a35cd7de990d382a3fd9d03b3558d5730a438e17a67afdf4fdd7a6d0581913311941aa15d8c0acbeebf30550325b7aa32beec451d926fcecf995f0cdd65562c764ae9bcbfa58ae12a7bb59639031d050ad655dbc2c8a68fcda01a749f5393291a0004522a2f75c2c4fea056533f00582003d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec054aeff36b089c9b2ec05558baf67df508c5b6865c000582003cced9731d5e5bebe7f671faaf283820f09cee1f3bfbb1fcbf09d3dd3444da04a36172d78d0fcbc64492103c9779934b7e439c3f8d68adc25b92bb5466a25bf75892a30c145f5eddb5e302902190c4403a8a7ce1139f554f5172b9351c072a020e7fbe6081fbcb254ebd11af68b36d7b50219ffff03e9d9e7214f218d5a9a3fdb40547cc09a42af77abed818c12c6f99d17a036a7b403cc6fac14f6979a88b540b259c7ec95d0b1af2277d97b04c875a128270b3b2575039a2c9f369552193f1658a21e4303ec46f5f36cf7b4289a1f0f292c7d13a28eb4038fcecc3f8a9f4b3829836cf61f32a89e0b010ab68fb57fc4c5e43f3e6eda5df703f2a723a9ab6ea22204e57788076a49b8ac2d93a79ef222da0c95a474e1b8168403020dbd69a2c91034b3eb4b5990e23a8ff31a93c2e3b818eff50f0f5f4237b82703236a5e1b2fe61d6f5237638baf9b0399788c4c8be2d8601d0e3462a317d9b61e0371f5d5300ff646e364437aa69d9abee9f34189e022075f3133ff0dc5df8bcabf01410100582003b72f7b2e34195e1b5508efbf9c3ae68122bfcab36473861dbf6932f679b4505820ffffffffffffffffffffffffffffffffffffffffffffff8183163242f8e4607300582003705beb65a8c407b1d5e0c0dde51ef493795faedb18c1f16eb82610c01176f05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003f295261e6f5c79acd6cb33312c39ca0bc9643ba49a31e689a4e628604022c04a043c33c193756480000000582003daac7a37f44993a3e43d4ef8f47e702b67a3052ded2ca4e6663bfa2755f5a04943e31e69c833d77b3f005820033336fe3fb3cf87756edb8d17590019d833486d9d814db4537c8822bd8c6ec05820fffffffffffffffffffffffffffffffffffffffffffffebabd45ed5cc83fffff03e6842f1c8eef7400c81617929273b2ddd9789152a5c13d23ee7e1560b03a8c5100581f025759a96bd42a7c0ce5a8b009614b179dd5f5a7e32c9e3c2b79f37bbddaca4a043c763766da5175decf00581f02990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5410200581f020fd28d7fe37eaba2a6749ff1caf4919a2fb2111d15f1964c0dfc51540ee65820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02192050005820031ab58715d8782229a8cffdf809f463b6f4c676a9a98a08b16a9441376fc8404976720b6c40d574e803033e2079ae6a9b501ff501471bdda442ac08c1466075ffe585633cc7e4318ed48200582003638a5b63644cf58b04599aacc952001e3b7a34ede4f5a695e8507600c272104a025f920258d4682f7f590219ed97032ad7b1ab822b62a77a1e0b88ae8a553e40dae400ae5989ce16183fa7378bcf9c0350da209bed2ccb56b4d4925ffafbdd6c4a20cdf074cd88e7b4bba20ef1602991036c47bcdd6d32549a52a38ae4b90e62121411625c686b97ce71bca876eef0153a03ef092b2f4638742219b9b21dd101c63907c8b8deaac30043dac2da8591b54700035bcb011331b0fbbf901d01a5dacc5e7799df9f96a15e02bca5b3d0de1d35496b03f5c9e9f34ad20418baebe494a9171e02c61b23f9b3a7f116fc7e899010ea0f8803b87701786084d94f886c91e86062fbbbc9bfce0c15e1ec4ee7f6a84f4370a59e0058200306386dc533fe617c27d0eed97328329a075762e66e78939593c161ca959cc049564ff1bfb21d4891a7005820038cb1c69d08655768c6d6f5c68428920a6479bb299704b32c6ffcc164a9cae04b01fdf36304315b59c29e5603237bee51204c6914bdfbffbffcbce7c9651ddf2e4746bd8626310ca0e6bddff000582003966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7041050058200324785c33e17d425bdae3bc2f489151a86cad5244a622af0f33b2e8f65db8304a0203626b78ebadbbda2b0058200330d3f5bbe342cbf8f130e0879f0bf9abc53347fb000248f35fb3f46dac78305820ffffffffffffffffffffffffffffffffffffffffffffde1c9b723ccbd00461000058200332b85482b361f5416a5720bfbac6d0ea3eb59e3f75319bd28fc8dedede4d304959a3117dd0998d46b00058200399f2d1db85d366c9d1e9580a9c34156209196b9a40bb8147edc0c038151ec04a124b927b27f93ec4fc76021919e30219ffff03b0e8c02bdcdf8b3f94cc6576ee7b458239b1027f1782de80bafaf0cbe0836af1035d01a3c85e3f8f7a708c62708b91255b74b1ab0f82fff2da8b51db8da2870ded0383612e3646288b149ba7b1f68df9c5b4107ca934a5c003e570078fa65bf53c0e03be465ca8b95eac6fe5f3a47c0d2871011261a70d44c302c50527c5abeda30d6603c9366e6abff864d71fbd4f17fd6fcdd43eb11f82b9c6a266c13761cc4ef700d700582003d5b9032620977fd6a6bbf3af7545b82c471ca80bc5a5b5ce02f1d1fa2b491049357169053330d61a8b00582003ab22272455b3522acb190567bf594ea9353fc502feb06645681bd8c21e2a804a04073789fda628b24eec03b50a90e469725a3d801ef1a4efd9c182ab89b1cf8689333ac61b7ed5cd0a04b800582003dd504b31b77b86ce6f2dd0a2b9bd28cbfd349caec8a5bb03f214a625cdd9605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003531dae9611235290ba75b3c188050b137de42dc53dd80185bb1fc5e85fe3a05820ffffffffffffffffffffffffffffffffffffffffffffc35ad36cb6aad1652d7a005820035c488535369ebc6652997da2fe367cab131223389b19b996c10fc913ff5a805820fffffffffffffffffffffffffffffffffffffffffffffea0ce494095ac9db114005820037a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30560101261dd1387287d5730232f6f74d49f9e8337b36050219b15900582003463820985792a08c20cf5e7701fc7e31b437be29f619603f60e388719e55804311033d00582003ba5bd528cfa97b8c1fad4fe9456850b10b92f12e11b9a102f7e64d821612204a07a7e9cde9479bcb0a6e039004a2854685a055c9f7db2b28cdce7866e01929f705e6f99644f93bad42136e005820031021d49b0f8dc8ea203826007e209f5ee3869ad1004f4ff6a6fae16d710f304a0ae7bb19f2120d1a707e0058200367d9448a6c210719363bf0261c4aa8e3945d1f9e3adc84bbbc5dbf7cf772e05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff039948594cf36df0b9be87d52cd2e5c173891f08d4f64178fddc230a3c159e0f1f021914d8031784d08224585dd8f542af5bcddf5c4959d8004586c3871b6a670cfaf65ffa60005820038ad0606d12e93a7172d9364c1de556f54497d22c4389561f822ccfb8924ea049ee5066f777a57fcaad00582003ed0beca6fff209da53e3abe5c096b6618b8e039804becf2a4e6ca3fbbfccb04a0180d452a6eb81d29f0500581f02222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f54315ed60258702f8d159b98df4c0dbeb1d7d776df00581f022f5b81eb2a32e98232265c618493d983d3e14ab3505bb9ac416061def48a5820ffffffffffffffffffffffffffffffffffffffffffffff6f76ba7451d9dd9e22021400582003451337fb21454d09d6b07536264bc5de12446a86504d9f685ed7a3cf65fe10495f3ee0c371cbb6d2c700582003dae687d8c9f871bbd15236f4c1eb2dca2ed20bdfd3b4ce27b29b78b4cd0180496986b9e29c76fa900a00582003ea4d81733d595cf6624bfb645f52323c91ed6218bdd18c591db4b8a7c160f04a0337fe5feaf2d1807dcd00582003951d5f49fc1b1d45b27855023c42862f5d2915a2ee184fb6f3435979f551d04a0dedbee26bc597ca33b20058200368b44683eb5bcc23b8455dd2a75d7b851b58a2bd80fd1e0ed4da8e46f755005820fffffffffffffffffffffffffffffffffffffffffffff9a5b25da2cfe93fffff021956b40353f00de84f1cbac9aefc842f94058db95363b919b8cc82e9761414aa9c3ec24600582003c17532d63598353db24670664dc4dd26bf0ea3c61bfc3256c0fc9b4d5982804a0ae7bb19f2120d1a707e005820039e522d4660994560073f8d2e15543ea7dfa4e10ed48b97e13dcbb6c3711b5049d8494f5ff781fadb4a032f84c6bcc70e07057c99b1f9534792f6958a59aa34da5c61e974655eb49bd12c00582003df6dedf5162ac91dba547ff370b69ded4b720edb30f9ed2e1222064e2fd3105820ffffffffffffffffffffffffffffffffffffffffffffffcde053a3e9208b097f031fe1d2e6b2ba0f806b4f398833b9bcf47334541104b4f3da02d063239acdcbb600582003273a8cf798825ca688aaca19da5b532b7118e73ac1c67cf53d7ea3b2e9fe605820fffffffffffffffffffffffffffffffffffffffffffffe994f5d258eb36d7d9300582003fbf4b3e40f0dcd462d131d1605442e0fa5dadb6ed4fe8a7d4da4bf9cfd72f04a01a932fcf09b2d2162ef03669cfcbbcfbeda1491b5e64addb7c8deb9a5d64af613e7b9b79339a6916061ee00582003f2b60c1cfa17569c6400184c0fa65da3f766a7cb189341d0c6dd2a2a2e09904a04b64955f3cb8ff9ae390058200388d241fe553b6801ab40af62c13175ead0b99dfd4388583ebf87dc206853a04a0aae931a68549ccf8608021956d703bf4cab70fdaeafe441d361207af46efb8a6ade04a2f9f29c0e86a6851e35ec1c03dfcf8fd01fcf5323b91946d22edd9c6cc67e1c49376991cc7611cf8c48b12cb5032258df187dbd27ef8197856b07eff34581c6fbec880b0c2d1a99289ecfda789e03a80703dc98c03d22a3bc0f2ccf1a8387e0152eb31826e7bb6ef2b215cf0a09d80399cfd888d65ec5e4dd399c6a457ac8b5d57da9abcf775b44be2b7954b44c952503093544d4e8d8e006995ac5eaf8b09803e7c70575d4c9df78183a072024274ed803ab1470d5070b5b037644ea2343ef3aa658b41c307369c431d3f90e82129ca7530219ffff0219ffff05581d020d8e8af9702214d3ee61be05a1003d93b7061092283212b34f6edd3f07011951750219401005581e03f755b51e679762d5ecc9ebc5535cd6cf884b45bbb6f1f89fee36999160040105581e03d6eaa5ab8fc3304cf66b32f0136162740dd23875ddfee7bc6c683e819004030371a59d1a2bcccf2655d5720ddb8e9f68a14eaa28f39af2364b7a41b8aeea49d4034af83eadbd4be579e8ac5ea1c16b5d6f3d9db5f15f7858f3f7d2e84a0e5e02a403f9e15ff28c2c6d2765adf286f6e5acda9b3a17a42c417dc397e7f69c5df71c8703a1e38fb43a7e690e751eaa1fb05f84513d9fd9b7ded2b0118dd68aa5dcb3d50f034468e0c3d2545de7bc5c18b402bd31bc5aa668ae344cb08ea923c38ea7181cc502196bf703165b47a7704ed364b270b30f8645dc0c2a9d816a10ae882a188121cbb5ac84cd035f5644e4c8de289201dda9cbe954500ddbebbbfd53bcd26ff8bcbf1ce1ee003603d7fc4eeae5c49fb6e7b7ca9fd46ee8e5bb232aabd926c73e1d1261a5c368e5da031cf93eb263e0eac26688508f59628fdc06f531c977d75737449849a2b833cd1403d81d3d3cb40036e08345ac908f49b75e8cceee7c95de0433576c7a1b2dea864c032e0afab232ca11d4da312893b122020169e38083892fee2e599f9e572d2fe2640315837f8021fd09b469e9f169c2456b35d872de923698f87714b16aa137c7b5a2033de6f08f8f4defb5aa028c6747345408b3c596c6ad6564ce209c49accde230bc0396dc27e4355218db789bb1073920b18fb9f551d844851cc9c3bccc464726e356037ed103ab3e6a4106cf980edb54f05aa91bee6318714b25eb6e5b2531178c13030365af6ce50dd61a648936bd914ba6931cf807c405e94083cb8ed89bf6da92ccb3038f3ca2200e6dffe6571fe01fdea5c93d2049966d5c3f8244cdf036f476631fc6039a9191ab9fa316296bc7b3817e9db76cec0a968f5efb27d8501f2be137f4929b0219ffff0370222c8f3b120f88c7f99b2dfaf5a8a4264587820afe5df0a7330f81a01652850219ffff03a4fe8f9ee57930cfd7cb2e0dfcec97d0be6f76ecc1f20a4c87c9332d663c0724035cce638c8a08e03c25b2633920e59b988593b3be50f763e5d1fe6f93c13cd9ff0373b545d2923a40f22c6718c1f92badc16f3e5f12c784ae35ba7b81ca5557d79b0219ffff03bb6e14e78ebce82edef6f1d5aa3f47b9b47672ad4cf071bbbfcac88f38c7dd7703013cd30c74cd8b910c524bd9b7d4fd40627b3c3de37b43ffad1625d5f1a5991e03ad92db3996413577065fbfeb91fcdca4733d0ff36fc7fe3a4cca9fa75fa933a40361fc5f85b07bf8a6eea47ece6802d101eee361b7f16d66cb6424c00a7611ef11038d552aa2caf42ab6bfc91e90af235acb1dc318f9be11eb852c7d8f80c5aac1580352782b473b5a49f726517fb8113c2390ff40e7af22589cb9a88f7dd36dfde92003e5deb72881a60fde78c13f1db431b90e2d1d9b2d4c13104b6eb5b8e3c33aac3f038c71cbb5ffa9e6b14afe400c3b14e7d14a2abcec888094ab56e7f28db6a33060039a877252c8c634f3d0988d98675e225ac0682fc56ef9a804527ee861c1d233830354347e4e56ae449b912c014ee986985b25eb841c5275c1dad7eff50d36fd8d7f03f8d6b35a0e1e9747ccc6088f50480ecaeaaef477b179f7b06c2893c23e7670a103ba18fe9a3cbf836be3e3b7eb93dde3579a96ad444167fc85e93722877d5cad6b034c286def66141f5f3f0341a07c07eebd014bacfb74b493f384d13f55db43a45603ba359c39ea47a02774bd30b6b9f2364b94b615e437a58234aa9dc18a630e2c1803b21cad0944cb4ad155df1c915c0f6160531ca2caba6b059882ca700243cdd02d030682e7cfa191fd0cfd9094c1f0746e2dd5c453049f942bd7be34a4aa3a6d87ea03281e8209543853f5233aae816a2f0ca2971f7c7bf286087c212212ef7050dd200344cb43eb040f6bb9366d188cf03a4089fc67685fb0a21751714497bd73cbc75c0394182d536d35321e950e879e2db9b11dfc2be98f6413509f48bdf755643f02c20330710ed8865ea34277918db03c03061fc8c36fad0ba82d100ccea110e9050b7d03dd9145e92ccba8b9661369a9b1565dc280c42864fb6bb8452d9bc424a400ba8b03fc0df88e7bb8421474848f1d7dce565591cb8ffd480d6b9d9443bab5c15b7792036ac476b0e1c217dc3165f1b96f246f2d93086997ccce71736907f9b688a79ce103e29efc27709676352c5bfb038e4a281bab93f6e3f8f31d793e26aa190ceb6a940373232902e463627007d26ef95f82a89a5764abbb403d2138de36c5cfe0ec2966035136e61b44eacb676bc37c816bb61e0ec9db6eae1c9e8640af7dbb09212eb71d03fcacbbf22751ca8bbd826d4361ccab97c94eaaa3ccac9d73d88fc66d1c52c10a034a1c1f5ba0db5532ca495ad1e1c62978ceb6ad5806c56f1c4ac2dd1b71fc408103ac18153c61f4fa8b6c15721ebe1986a1a848a2511fcc5ea39f712d5f2c24d4cb0329749a5eb29d6f7d94d7f7e1b5100be4acd7c14dfbc530bda1183e8658064532032c79d45b6a3256e1f1d0df4838040480338fe8dfb7cdee479b9421410bb216e80342a65bad0dd3f28abd13b08b7bae357095473e26e82d8a634d39fe0081ecd9650376c4fd5ed2342753b99500a668c5665714c7485c589bc4b0d8674b72e82cc7c703d00884c86b4047ad08123d53dedc4235fa6384fc75d4c782a551242002bc703403dd3df3577954f2cd63b4820e001f2268a1dff4beeceb19d60f742d39487045da03e95846b69e93230cfbe31f52c3e4c36cdeb9c1c44ec42ba2d90f90cb6bb69e8503c6a0f0927ef5f51a6bd332ac3990712c92e3630dc224a759308b1211a601be2503fcccca6d79e6c6abe4ad12f30780b3fe928f1fb9f0865a2da48d8ac6757d96640316987445b80a689f6fbd71ec6dfc0051339995d1641fa36fa3806bafaae300c9031143a3949b0468be1b2f0117e7f8ab582e0d2ca27a731f996cd0ddb1805aaa95032d6929386c03b9689f2b6d118e5cac5ed4b82da344c5b87b42771c121f9d2bb7031f0af4c10c3015e7d9f4386b9bcaba7c05504767065398ec55ac1ba1988802e70380e69116e5c93d71c40cf99c792480033287e779a657933afaecde3a844d0c240301c5c0bbc9aae9f6bbd7a5efee1587106ed8bf0605384e23d1cb0c2caa57084d05581e0368a9de0d779945b2aca7cc59dd5d154e3075bd9830064c132025fda150040505581e0351f127599e972af578c5a1b79f4cc37955d997c672d568679b941575a0040204591dc6608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a257806395d89b411161007157806395d89b41146102a6578063a457c2d7146102c4578063a9059cbb146102f4578063dd62ed3e14610324578063f2fde38b146103545761010b565b806370a0823114610232578063715018a61461026257806379cc67901461026c5780638da5cb5b146102885761010b565b8063313ce567116100de578063313ce567146101ac57806339509351146101ca57806340c10f19146101fa57806342966c68146102165761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e57806323b872dd1461017c575b600080fd5b610118610370565b6040516101259190611367565b60405180910390f35b61014860048036038101906101439190611422565b610402565b604051610155919061147d565b60405180910390f35b610166610425565b60405161017391906114a7565b60405180910390f35b610196600480360381019061019191906114c2565b61042f565b6040516101a3919061147d565b60405180910390f35b6101b461045e565b6040516101c19190611531565b60405180910390f35b6101e460048036038101906101df9190611422565b610467565b6040516101f1919061147d565b60405180910390f35b610214600480360381019061020f9190611422565b610511565b005b610230600480360381019061022b919061154c565b61059b565b005b61024c60048036038101906102479190611579565b6105af565b60405161025991906114a7565b60405180910390f35b61026a6105f7565b005b61028660048036038101906102819190611422565b61067f565b005b61029061069f565b60405161029d91906115b5565b60405180910390f35b6102ae6106c9565b6040516102bb9190611367565b60405180910390f35b6102de60048036038101906102d99190611422565b61075b565b6040516102eb919061147d565b60405180910390f35b61030e60048036038101906103099190611422565b610845565b60405161031b919061147d565b60405180910390f35b61033e600480360381019061033991906115d0565b610868565b60405161034b91906114a7565b60405180910390f35b61036e60048036038101906103699190611579565b6108ef565b005b60606003805461037f9061163f565b80601f01602080910402602001604051908101604052809291908181526020018280546103ab9061163f565b80156103f85780601f106103cd576101008083540402835291602001916103f8565b820191906000526020600020905b8154815290600101906020018083116103db57829003601f168201915b5050505050905090565b60008061040d6109e7565b905061041a8185856109ef565b600191505092915050565b6000600254905090565b60008061043a6109e7565b9050610447858285610bba565b610452858585610c46565b60019150509392505050565b60006008905090565b6000806104726109e7565b9050610506818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461050191906116a0565b6109ef565b600191505092915050565b6105196109e7565b73ffffffffffffffffffffffffffffffffffffffff1661053761069f565b73ffffffffffffffffffffffffffffffffffffffff161461058d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058490611742565b60405180910390fd5b6105978282610ec7565b5050565b6105ac6105a66109e7565b82611027565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105ff6109e7565b73ffffffffffffffffffffffffffffffffffffffff1661061d61069f565b73ffffffffffffffffffffffffffffffffffffffff1614610673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066a90611742565b60405180910390fd5b61067d60006111fe565b565b6106918261068b6109e7565b83610bba565b61069b8282611027565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546106d89061163f565b80601f01602080910402602001604051908101604052809291908181526020018280546107049061163f565b80156107515780601f1061072657610100808354040283529160200191610751565b820191906000526020600020905b81548152906001019060200180831161073457829003601f168201915b5050505050905090565b6000806107666109e7565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508381101561082c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610823906117d4565b60405180910390fd5b61083982868684036109ef565b60019250505092915050565b6000806108506109e7565b905061085d818585610c46565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6108f76109e7565b73ffffffffffffffffffffffffffffffffffffffff1661091561069f565b73ffffffffffffffffffffffffffffffffffffffff161461096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290611742565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d290611866565b60405180910390fd5b6109e4816111fe565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a56906118f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac69061198a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610bad91906114a7565b60405180910390a3505050565b6000610bc68484610868565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c405781811015610c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c29906119f6565b60405180910390fd5b610c3f84848484036109ef565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cad90611a88565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1d90611b1a565b60405180910390fd5b610d318383836112c4565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dae90611bac565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e4a91906116a0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eae91906114a7565b60405180910390a3610ec18484846112c9565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2e90611c18565b60405180910390fd5b610f43600083836112c4565b8060026000828254610f5591906116a0565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610faa91906116a0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161100f91906114a7565b60405180910390a3611023600083836112c9565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90611caa565b60405180910390fd5b6110a3826000836112c4565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112090611d3c565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546111809190611d5c565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111e591906114a7565b60405180910390a36111f9836000846112c9565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156113085780820151818401526020810190506112ed565b83811115611317576000848401525b50505050565b6000601f19601f8301169050919050565b6000611339826112ce565b61134381856112d9565b93506113538185602086016112ea565b61135c8161131d565b840191505092915050565b60006020820190508181036000830152611381818461132e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113b98261138e565b9050919050565b6113c9816113ae565b81146113d457600080fd5b50565b6000813590506113e6816113c0565b92915050565b6000819050919050565b6113ff816113ec565b811461140a57600080fd5b50565b60008135905061141c816113f6565b92915050565b6000806040838503121561143957611438611389565b5b6000611447858286016113d7565b92505060206114588582860161140d565b9150509250929050565b60008115159050919050565b61147781611462565b82525050565b6000602082019050611492600083018461146e565b92915050565b6114a1816113ec565b82525050565b60006020820190506114bc6000830184611498565b92915050565b6000806000606084860312156114db576114da611389565b5b60006114e9868287016113d7565b93505060206114fa868287016113d7565b925050604061150b8682870161140d565b9150509250925092565b600060ff82169050919050565b61152b81611515565b82525050565b60006020820190506115466000830184611522565b92915050565b60006020828403121561156257611561611389565b5b60006115708482850161140d565b91505092915050565b60006020828403121561158f5761158e611389565b5b600061159d848285016113d7565b91505092915050565b6115af816113ae565b82525050565b60006020820190506115ca60008301846115a6565b92915050565b600080604083850312156115e7576115e6611389565b5b60006115f5858286016113d7565b9250506020611606858286016113d7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061165757607f821691505b6020821081141561166b5761166a611610565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006116ab826113ec565b91506116b6836113ec565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156116eb576116ea611671565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061172c6020836112d9565b9150611737826116f6565b602082019050919050565b6000602082019050818103600083015261175b8161171f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006117be6025836112d9565b91506117c982611762565b604082019050919050565b600060208201905081810360008301526117ed816117b1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006118506026836112d9565b915061185b826117f4565b604082019050919050565b6000602082019050818103600083015261187f81611843565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006118e26024836112d9565b91506118ed82611886565b604082019050919050565b60006020820190508181036000830152611911816118d5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006119746022836112d9565b915061197f82611918565b604082019050919050565b600060208201905081810360008301526119a381611967565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006119e0601d836112d9565b91506119eb826119aa565b602082019050919050565b60006020820190508181036000830152611a0f816119d3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611a726025836112d9565b9150611a7d82611a16565b604082019050919050565b60006020820190508181036000830152611aa181611a65565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611b046023836112d9565b9150611b0f82611aa8565b604082019050919050565b60006020820190508181036000830152611b3381611af7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611b966026836112d9565b9150611ba182611b3a565b604082019050919050565b60006020820190508181036000830152611bc581611b89565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611c02601f836112d9565b9150611c0d82611bcc565b602082019050919050565b60006020820190508181036000830152611c3181611bf5565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611c946021836112d9565b9150611c9f82611c38565b604082019050919050565b60006020820190508181036000830152611cc381611c87565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d266022836112d9565b9150611d3182611cca565b604082019050919050565b60006020820190508181036000830152611d5581611d19565b9050919050565b6000611d67826113ec565b9150611d72836113ec565b925082821015611d8557611d84611671565b5b82820390509291505056fea2646970667358221220d3a8be12481b9394a3e0bf7771d6646ea88c8adecd6aaed04c84dc1ef835917d64736f6c634300080a00330375feb2a5737949e6be0f13a78de422fb5807ab732991316719ffd0a22fba7d0a03ed58a3024412e6734d636e5bacbb216fec9ca0ef0610f4067d676f3250e7cd6a035992a82e0608783cdd012f23142c42ba9f463923e1c87db921e7f695916ab42b03fa91e6281a53ffcd0b578f55e0b92add0be62e3e683ed9f6696f4a627216960803ffcd6483fad58755f9b78d37e1c99c20dbb0ae786c7891c69c160096457104cf03952b9582d3a68bf27619399a04b24531cba163c144596963b7f0146657b18968032197ed54a8cda4b02f867c825bf3c140dace9f6f2b7dcdab33964b52a4df869203952efecf3e16c3df0aaacc50bcdb75b1d191f3809cc572bdd6dbb5eb1e3d554103ed7e3712ed1b542b117e37cfab48fb959d971c75f623f23e42f7dacc881e924b0328398fcf7157b0f1afd12b00deb11f9bd5d805ef5b17f86927b5d0740f30ca80032d7782b47f57350f39754f5071898913a8f57bd2d08437ef7cde53a0380acf2201410f03c15142e39d3efb369550b079af7e44a7f29522a2df1271ae9d81c09a4571f623033f6487240ce735537128fd866142a80f9d3b21ea289b3849e6d1add04a9df194033a27cafb85c457da1708ed85264626e3895d1df93f035bad357a7a65e512fbce00581f02de70842624960171925cb60f53ae1f3fd322e1bc1cd0bbe1d0cebe027dc85820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02ae1a0e5b2d43d1551fbf77d6cb8a997c9f5385ed160e74700eae025394185820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02fd937f464dae5a31114c80aea89d46edd303649bdc3927ba552091b44dc95820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03a9b22c2ae7ddf97dc1aa89389da4a6bce31e1de507f6f4d3a47f640012af9ed40219e10403bad5294f3591f694aa1c02c1e5f4b3636ded9f8d6a942a076af9665f1eb8be0903c95d8426377ba0af1122bac86745b4cf3a8fd1396db84a7f230da5c0ebc0be38037398438d20437a14199c7b5c062df7beef8d397ecb047a77d9a765d57acc93ec039547e0e53f51c6377c9975056d00f22f2465ce42d12e11874af328c5f974d9080219ffff035e9925872d2f2ca10ff0961770ee7117897869c73bbc47f9e17aa47df358afba03c83acd24c5848e382cede28f60ed60d45e4e0360f88b66add49b8c026d81b684035ad5f040b180b17353296884ed4d071d0f6c2522be3185c71284051b1d5e073a03c0e7e466ecfb0ed7ac339f85019fbf6a5aab79a9f84e1b7c0a45738b66342da60375a253577ff7ffbff5d375e3588ac2bf39199f81db56dc43d87ca055a042bfc103ef6840dce19094e872690e60cbf16a1bb7e401f5c959f6e289b761d6c801467b031d263ffeb68ff11c6a6a37797d4081b56c668ffa134d8619dd962c4e6ec3b1b203046144ef95bd518e776297140c867b508acc93504a3722d19eb2edb7794bbd07030d572b4cacecf09d9a923943cc6c585fb11056daa67b87214c20fca47aba5fbe03dc80897f7f87e3df2bc099da8cd3c7693417286e064f873fe67c65ec03d0e89903bb0fd886fc3911a5c59c8aeb1f5719fb873ae6695c61e1a85e446b5477b4f24d03b39c4f372c1a58d7d150beda71306dfa6cab3daf6cef120e0f02c56782d6d1aa037fac1cbdadca1513120c8bb00796d4455e1255ad96803847580c812d71f3c6e303cc454df3df9b7bca637eb4fcb94d7ab6ab59c53267f68d7103a966c080e9ddb2039c239a30c4ed136dd6deb7f41d24fa0583d6827ec5959b5c3e79063051416e770219ffff036946b1eafd274c7f347e89e17262ca4d30b5c1495f79dab8ca5a0050a6546cf403f62e3b0b153f70813b6f96535b26a8a9420e68e6e2e82dd68bf96163775ab09703dc42979d2c19efdaa049012f9ba27e24f32917ba61fb6c4bb7e303e683db3b010313c6dfb87f2a4d685d356830879e8297e78ab98e0248c0a8ffefa072ac6d001803aff40181ff0ee7847d4f5e468a43e84b7c32f56ac6805f30d7f9e922b383754f037e19f77e1e0e071c2b2281cc89e4c20ccf304e2a9a4a2975aade5f2129639f2c035939ee209fd024ea6b5340fad9b1d50b313faa4a8b8f3321ac8fcfe52e8680bc0341e26fecc13e65bc21a0dede921bcdaa908dfbb48eba15c02f0a9019652ea8fb03a2fd5ed5a31f33345a34ed6df7b239db0becb3b1d13e2addbb371016508caff403e72f6d86ac5805ea045881a3ff82268bf7d84d75bb2a6cf9ceeaac0d134cb52d031e25d4de7418a7b2ff028f5372ed04fe602269fd220eb6eb81dc8f52eeffaa6103f1ef6228bc57ae7cca75a4301f076c6903ac82a43803ca418b09a9bec40f9d38030bbd2ff0f01f4b50c7f1fd2419208b80dcc475a726ecb3902a3aac03be9b6d9d03bd3d22a62a93b5866c943cc85105533126c9e5793d103f2258216fb0917989b103cb8ebe64b2ba75b6e0f517e458feb109c3ff5df146e5533bab611572c1f20bff03baec072db5fc17d244b37677db25a20b1638fc408c7d73655286265159f701cc03fa13fe2c785ea31b0a5f36945472e1b5bb41daeb47db8297fbe49aebf81f16cf030d791a498e6e34ec1681d1f8f4b844373160d75fad9106ed0adad7a58ff5641e039040a700fc7776afba596cc0fb90dafbbded5cb8259ebe21c910cec46ba0d30d033c7427c81b7a9c62868b71d8c1609709415f658eb64fc69f32077ec9846f4329038a0e2613e0241f32b84aedf8bfc92cb4c21b71d14c87f366887edaa560c7140203e75977e77c308c957c4cc925934afb742c53a39f05a01daeebd287f136530520038484c32af032593befc000228e1b8bfcedbe1366d5a29c1f1ebf6726e410f75b038e37ad194895422756156a6418be2615e41e7a96081ba9a491a863680675d56600581f020db25c6bf6b1f78079a0b574cc06ae9b920f58a4cc06b6a620ae89db965a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02db45676d56bd8219f43ee210ea052476cb708c773d6f480108b9978552cf4453d2fec900581f03aba8ee8ff9a69c93937a99b6dc0e761938a7f966c78fda90847dd26b9440428bfb00581f03cb160975219a04eebfda6581dbd97ce6cc995d7c09d909b4b5dacac8cb205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f03cc745c73dae895292370abc9d7a92c92e40d01e9f5cd62f1d9df8433d1a0470de52e5ead9a76021826036ff97871bdd43471df569ca2f06a5e2dac5193fef9ba26cb98d0516a2eec141f00581f02a59bcca2ea2cb072f9f8f27c9537ab71438998f75c556234a65c254109ba45e91e5697640219ec40030e2d7646199bd72a32c0c69a9b8c450a0412e5330cc62fda36f1880f69dc791e03983dc111a4acc62730624617c97fced7d237d6ed40d926885b7f42e35bb5eb7d0367679c1acefd368fe93adf58546f2299d7d8b67e7717869865eff8e804f7244f03e7c44ba44378c9b1825ae2e8907049104bcf684cff151990bba366439e4a735703de978752a749c30f6b5c96edb476c00593f8a77bcf44973ee301d3ecc8c00239035455a352e2562ae243d246c6bf6708f4e16d3b0e202dfa0d1d45fbe2a8011dd20219ffff038118fa8ea816e2d307aee2ba8662317bb0d69a4ab7590eb1fb4eddc6b7c2e7f30219ffff03ff2db1bb8a1e73cf9a40b8c2428d0fb195e205d60ed76cdeea7a60cf8fa5690a0369ec457e0e96e606ea44d262da081a56f260db6a855b1c53f8e9fe7ec7aceaf2036be7166c605abc3567f371a373b9f7e9bf8952cf7890e7685dd9aa383172096d03401d1fa7e7be92f2e231811c337edd9d35af39c993eb9259266ff01ff7794e780311b04ca622b01531269380425ccb70f7b080f3f4fd10c57630df5807f651fd9303f170a5dfd12906ca5fd6ca6bd81f1d10c944ef7dde77f5d24f7427c1d7f125ae03fccf60faea8b7b448ec9efe42df69d75f631b41a4e29f87d55496525848810d5037a5c3f690ce99afa8ecc68de464779e7c661dc2d25e6f1a3fbdf22e43d3215f90367dd7610a7d8b3c20e0146a879b64b9ec847a3d8ad016284d06b5814393932060357e3a94df0c09e374487d19fc28a2fc9a08095f305063dd4b23b4f96d1452298032a5ff851e37c31a5b3364cded0e85e78e83fb575db85a5022c3771777e6b577103ece1e94079020586e6a50acdfd59eb06d873030d3621d39eb2d3b72cfe379d2b0219ffff05581e03ab7d332e2fabf441ce44adf6a8bd5480c395b68c3cb7cdd789a58c8e800701191dc605581e03a358e04abdcc55d4b8d797b409115d70a3d79b7904a3f8a5cfe73b57b004020330ea6045bd179fcd3bbfc77a276590581214af77246f4e048e1f60342be7bb39031bc502837ed877693893d856c47e7f32d88efb50877b4f730cbcdf901a3c61bf03c5057faa486456a08600e89ff799f6ed31e2fa58f97609985b792fde62f5e12105581e0370db2cc61d9dedc11b82a82ba57c50d880536f87296e776b6a08e1fb5004010219ad750219ffff03eca39daac46de2cf99df900c60b83663a700f50b89ec5b58e24b57647a34f73c0219ffff039302e10bd4561897c260f62e2129123f3f867bc7178bf5f4ea7c9f59a5a6ae57032f3e4e613e89098c72056b688bb7248f1d38881fba2c73124162a9d75104962d03a04e8583217ad705301d4f7a9e337ee49ebffeab52f26dc9da3d6a0e83fa63aa03a61654e878ac245477b638fe5c9f27fb6c5e22658dcc37766ec39cd570a8111803dde1b915400eefc785b94fbb0c5f69c75fcd9dd489d4603effa7d4b186e921cd031770cd0b3fd6cf156db4758cb50bec2cd8ea0f39a6ff5afeba6e841f95f3d320039e6a4757f3f4f5056ea52d51c9ea07b4c4446855c9a470c2021543bd7acba74c03b7ab560cf80f890a8e345c92b10ec78b5b83079bbc386a403d0241e66a6bc32f030c1b5da640eefc459d47c4d86d12207029b73bf92577889f075dc24127366ac40219ffff03fe57619df20bbf90e69b3f211639f9de72dff5c8de747138184337382da49cad03d94ae5381c0c549f0b01a63ab0dda4ff1a4462401e5c217e5d87e375efc4b92c0219ffff03e48748fedddf38aa724775b0ff41009cb559c32cbb605caf682b1b733007a5f303e7d52b8ce09ff2174536ceaf297b65afad587660781b7efb30f57b68a450e09303b0c192896602e32f4a2b620ba339a4d3dc4f5efe5682a40d13432242ac398fb103cc898860bda3b22d48760397f2dc70544b51028a6b6b07e5e40a3a23277770d503985c0b2f26813657bc20ffb43a9eb988dba7ba2c344fa6f4a770ab8505a445c603f1f36bb18460437da09ef89e63c583c3d82bb0563c6f8d3ff1786d9be5d4b301031fd642954b7e6e0e958784083e0efbb981967bca508be16d56fa934957ee57d403eb0bcc41fc14afa5e85ea1b70594c5042694ee0c5aaf95c30ccb59a6b6665f25039e87f2c00ceaa3a57219192c94e673f9cbc9bb7b79d59e199098953fdc70f4200316b196716fc4405782e1ff6f639ce598c3b051c2202264ba3749d34410bd0ea303e1c86430a31af5d3fa5901aa77a3dacbc4ee060490fc872e23ce8d1b53be3a6d0375cbb60a032d9e75d7303399c4ff53b9c4e9ff29c447a83c101f61815232cad70382da0bcad29d73ba00fa5be73bba69c953f60cbe92f5a666a3142c03de8f378e034c6b5645ee5b5a16b4bb80d7618bcdb724900591c90a864a5b1c8d1819c26b25031dee2c3287f4d415f793a41813fa78bb95b29a3bec531c0a11c579531dc02f10039bfad165c26e3269ef5d82b1069c345a19086ddf1ee1b8d411752b604e032b6d03ade5922f2c58788bc50baba7476536a038131ba94210d7f3901fb3913f96a7cf036d4e2df9c82302ba81ef19c9b0e07d749c66bd7e07f099dd55616e75631c45200336a77247cf55d3cac22003b3593dd2f7df0909eaa56d8d3be9dd18d1c5db6b5103fbc8c9a6862b705168421d87307bbebb65e12f45337913313e8b464d3ba69a0a03a83b76c7b70a75a91e2348db84b492ab8183ecaff719fdba8399edf72bed02fe03a12b4f78d4e3e588ae7a00e8b09e25992ce0382878483c2a1bbc064ab6d3fd9e038c34464ef2f9fbbab7916d7a341c04bdfc11f156bb17828397aa19399601532a03d10cbb12d1ab89043082086e37b37ed2eb51fa7d31bea107f465b3d7b29c9008033ed5302798fe3174e6f917306015a2f5d619c2265358be1489a3ef3e7b0cb461030066bac7610c4bbebecd1d189c5896f86ebf4255ef970ac8797cce379520ff7e038954159aac71713ed7b4c07875e16558254813610500afb1efe2f52c5b26f134030f7098fde144fe7a697f26c798268c642ae1e4b89c82c4066f32fe105e191c8e0342870f91dcfee67cd7affb67c71975f33fcd50cb1f2d7917e597e9207cd4d26e031886d3c0126777ea544d5262869ef0699d3c1a6d46b8330d6e07b228bae7fbc10356d65ee3541b71bdf6a26749ac0c05c9be844b0c652346fcb966e169084ff0c4039299d990e4d76490a2c6059a6a115e03222f1d3543f12a8bac48f2d7fcfb25a40329581ce0546767dd9e7e298278f7831c41136bfbaf87c74db9506179856b37700399fada9b95d9e18f3f67cc573f6e92bfffa9f74e24dd9bd4619cc40b96118827035f85799e6e8e7c9a9f49cca5642f91a364454a2c7c6cc484af7585f47afda14e031ebe4e1ba66838d5ecfee52382cf193430ec84e1c34d33959db7e839802157fc0373ad6f415c80e1880bd5ad09ad7c04f31ddd40d5c8ef3ab694c762edd0ffaa180384e37ffaa7ac93f4a74d72e8d6cebb02af43152e58f130e61a2feca99f6920cf03ce0b5201a86a398cbc2458c3dda4e09438198971eaff5cbebedf462a163c79c60320204a13ffffed0129788b0b5998221d70dcee3b3108abfbb66455763b31ac71033b5aa40a116e3de48cff9c7b1a26f96010074ad6ec8e7e30b38c3f09b5c259360334f217341040167695be77ba59a48298f6a2eb16d600df96d6da784eeae90c3a03c0b952dbfa702af3b3cb6a65792a769200c1f6e3b0d4fb604f692ec8d6b6cb73033eed4f9dac4203addd508063a0799ec489f4c11b874a70587b11b8eb11406d2b031c197a50a6b88426413480dcbc80d5500644c38e6d1355f2047a459c219b3f44038a1bb422949ab106d7fa3cccc2483317ef1443c49e403275931d257cfb81f73303b335af13313d4c13c59cab11547bf81ccafae3ab42a7936b6c81e13e3bf0e68103318e060ac15c3ac9dd42ab1ff91f47099eff1a1dda217c74463fa532ce510df30399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe90803a3c24d3ef03cd9a7fd1aa50e9aebe4fe34ab888ea46b48eb2e9f9dfb015b170e05581e030872efca8892edc365279a4eed9a8bcd6fa375cc87a089606ce80cf0d007011bffffffffffffffff0315a90c382a9f294ff49324d5c378a97903f91b940c5403a37e2b8cb3dc07c0da036f411282d97d2a8a36f9abb4778481916304a718a1f3a087d83e4643f435f95405581e0345601d8e64d135127dce8e82e6f07c0fba05b878670ce93716422326700c04480c28d2bfdd2d241e05581d02498a6a8b28ed49dfce323f84df79d6a6ede860791170499bce96910f0c01460c5f6d96680005581d02851ecc329a52c6306f385ae95ea8e475219eff65495918d0f70816850c01464a49cb29c3e0021881039d8c17875f03e4f0222799c2b1409283d953cb5997ca534dd672f6d0a507cbc405581e033e9b36c0caa3b2dc56fc220958652ad975f08db5835d18a3fc3d7f1fa00848482273d2ff264c0005581e03a2e46c9241bec9f471bf416b9b7f6c62f1e7d22170e2a140ac102e0af00c0447072e1db73afc0005581e03888d993b615688afc83b14de9a3c5db8d3408016a6c8eb4b38b0d563b004010370d264dbf4e3bd611d98c81747aa94069626ff65262633fc9a32d2182e4a9f5f03083faa4dc0850daa81701d107b24f6e3c6a3627cf08c2a7f6ab77a165a8629e40219bbdc032ea00c2797051e5d5634a5d279c305a8f0d77990977c5d5bd4c2fd8fc731474e03faf302799ab90a944d7e953be27d2b5cbfc2843f2ec0915007af02d7a8f25ffb0219ffff0342e72b56a784b6672cd3a6cab56a7e9662c78920b5c549681a3e6d5f3ab6b204032c6ca49f3ae510f58f686093da3e2c4df121867a6e72984423290a7c2d5bd55a03cd9d8f2afd02448c4a6c9da8f396fd14252b10ab6075aaed439b804dba871e1a03ff8a86c82c52d3477d839dcdf2bba96c63b3969fc39c4016016b6b6cc8c706110219ffff0317a3bec26b653e2354a853fe5c4576782b8e3e6493200143d95a517880652a5903b5870b56950ecb3663044d4012a7f50a5d9eb08e42b4c28d1598b66f91d2a65f0219ffff031e5ddc3e51db6a0b7d47bec1bcc30f05d3be3bd5b0c62b357480c980f60072400345580762e2ce658e13fc2240e66fb02c908eca3d8582d8632ebe27339be9d30f03cdce044812afc752c23e7a19076bed795a6eb5e4e9803fef4756439f481ac102034f76698ebac1933266fe7bd84033eac556034f7b504d27a6cae8cd12571fb6a1037c99229c2df5e75532f7a683eca220c478035c9d8389e513599abe0dfe8946e503b5feac910e37d9aca416d7b76e02eeacb460b9992e8311990d3d2f595c3d7bfa035a0cd6b63593678bb9d046d3efa54d12356bf17f8ff6861e7fbad32c505a377e03b7661200934ce3c86a0ae79d6f7827272a7c3fc2980cb2926c3d4b1d3481ff6703c2d3734b34f96b52d6df1796282d3a496bb3f188f6da3ce5100e25f33a41fdbb03af7e7b2c2489dbda85d780ea923e7c01011df3577b7dd137fa9f1e82daa4bd7f03753dd046338b3836787b2f052af6a41fe6dcab557048f97fb3c259593bb449a90393c1aaf93de1ab28b8ce9f4b03fdd08443f12694adc0ed82e0626c51c61409a203117c707413f7b9a016bdd2e21a647fc9eb10620d14fffd3bb5856ad1e5e3e3bc03b05299033cc824fdbdeeca1149d62b33980ad53be87c8edbe825d3a301fa03a103e86749ac5db9a509bb985f853332500cef536151f1c1890c85517a9794054f57034af2fc7c73bbf77766e15e7dd17e95433ce7995dcc80ea68e638e040a538996103e579c0e64809d527fdea7c8eaba3af011c6568324476fdd8a8913285685c94c703c8fcaa203e42a22e66bd1b39b8fd16d77e3462e36d9d8f743ce44513e0f7f9dd03fb0012baece51e327b810357157cbaa8c7ce2b2caa125ded3068eacc025b2591032301110e8d6054f57ed707dc5adb9fc04dab355cf63b3787666c32fddf6fb8170356ba0c579848b409fd16475e83ae976af5ba1004bfc1a981a27d18ceb43afbcf034de57cb226e5184853e0f047d4f74e2170de565fb1de4bf0071b6e41b39eb91f03faea9ca7f1336a90fb7a5cecef60bec03010096e8309d0bc85f4f9ad9e1e551b03fb61fc93a3e015570b71555c9b4f39a04ca59b490630f4428f1e28e9a1ac757e032e196ffc52b0c01feb05c9da43c1bcf4324ddcf46920a0def63751647d7beec203513f811127b1cc6a394c0453aececff98cd5b0552706df1b2f846d0b61afa6c3035d94b3cbe0e36cedb2a5a9eac2d6918baef4176d94f902a7186a08436edb75b90358134f90ee6b166e0c7dfce22c35f22e615f7b7783e3b2f2930b02067ab060a40346fcaf77d120f2d0c2a50a50ef7a13e0e2787b9e9e1fdbfe864b23920398a674032944154ce72a1ae0df40b7111bc4307e38b8a728ff9071c65cdf50d98c49401905581e0397efa28724f4ac925abd1fd9ef2b06147380f266d106cef0bf386114400c0446cd1b1c4c75c00358cf992d411b727d4d4054a8e34f077066133885f952b2b98af3ea1d360543f404591361600080358060e01c63e1c7392a8114610151576383197ef0811461015657633b50d421811461017c5763fa461e3381146101a4576323a69e7581146102415763c89e436181146102de57631944799f811461033c57631626ba7e8114610498578160f81c6002811461008057600381146100c357600481146100eb5761014b565b61008933610607565b60001936018060018637848582878873a88800cd213da5ae406ce248380802bd53b476475af115156100bd573d85863e3d85fd5b5061014b565b6100cc33610607565b6100e66001600360ff8660e81c1660ff8760f01c16610894565b61014b565b6100f433610607565b61ffff8360e81c16600360028083028201875b8481101561014557833560f01c80838b37898a828c8d305af1151561012e573d8a8b3e3d8afd5b83850194508083019250505b600181019050610107565b50505050505b506105cf565b6105cf565b6101753373ad7149152a65e6ec97add7b1b1f917dcafcf9b21146105d7565b33ff6105cf565b61018533610607565b60043561019e84600660ff8460f01c168460f81c610894565b506105cf565b6101ad32610607565b60843560a43560ff8260d81c16600181146101d7576101d2604661462760d31b6105e8565b61021f565b6102058360e01c8360981c66ffffffffffffff60681b8660681b16176001600160a01b038660381c166106f4565b3314151561021e5761021d604661462760d31b6105e8565b5b5b5061023a600160b360ff8460881c1660ff8560901c16610894565b50506105cf565b61024a32610607565b60843560a43560ff8260d81c16600281146102745761026f604661462760d31b6105e8565b6102bc565b6102a28360e01c8360981c66ffffffffffffff60681b8660681b16176001600160a01b038660381c16610789565b331415156102bb576102ba604661462760d31b6105e8565b5b5b506102d7600160b360ff8460881c1660ff8560901c16610894565b50506105cf565b6102fd3373ad7149152a65e6ec97add7b1b1f917dcafcf9b21146105d7565b60171936018060188537838482868660401c6001600160a01b03165af490503d84853e8060008114610331573d85f3610335565b3d85fd5b50506105cf565b73a88800cd213da5ae406ce248380802bd53b47647803314151561036b5761036a604661232360d41b6105e8565b5b60043580301415156103815761038081610607565b5b5061038b32610607565b60443560248101358060f81c600181146103c557600281146103e65760038114610425576103c060466202313960d01b6105e8565b610426565b6103e160016027850160ff8560e81c1660ff8660f01c16610894565b610426565b600019600484013501806025850189378788828a73eefba1e63905ef1d7acba5a8513c70307c1ce4415af4151561041f573d88893e3d88fd5b50610426565b5b505063a9059cbb60e01b855281600452601b1981013560245260208560448788603b198601355af160008114610488573d60008114610481576001875114151561047c5761047b60466202313760d01b6105e8565b5b610482565b5b50610490565b3d86873e3d86fd5b5050506105cf565b600435604051604435604181146104b65760408114610535576105c4565b60a435861a60208301526040606460408401377f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a1606083015110156105305782825260208660808460015afa5073ad7149152a65e6ec97add7b1b1f917dcafcf9b218651141561052f57630b135d3f60e11b8252602082f35b5b6105c4565b6084358060ff1c601b0160208401526020606460408501376001600160ff1b03811690508060608401527f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a18110156105c25783835260208760808560015afa5073ad7149152a65e6ec97add7b1b1f917dcafcf9b21875114156105c157630b135d3f60e11b8352602083f35b5b505b50848152602081f350505b505050611360565b8015156105e45760006000fd5b5b50565b62461bcd60e51b600052600160e51b60205280604052816000fd5b5050565b73d267fda7ecbe322e64bf807de06e8e2284b72da98114730ff82acd0cd11bff58729e7dc9cdcdbe1fcf7a7482141773c47eff2d0b444001dfc2121aaf9b6d6db76af010821473c252ceec3ad24c47657638c323d96249a9f1b42a8314171773ad67d3a4fe6040ccb8ae703a443202ec6b9e4a0f821473d66570edcdade24edda902b28f2172e9ef8395dd83141772d2f4eb459bd4f7b175fd0cec578229bfa3bde7831430841473ad7149152a65e6ec97add7b1b1f917dcafcf9b2185141717171715156106f05762461bcd60e51b600052600160e51b60205261231360d41b60405260466000fd5b5b50565b600080818484106001811461070e57859250849150610715565b8492508591505b50818352806020525050836040526060812060ff60f81b82527307e610c722b66148d8c6b92967c99cd1ba8c7e6160621b60015280601552507fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54603552605581206001600160a01b031690505b9392505050565b60008081848410600181146107a3578592508491506107aa565b8492508591505b50818352806020525050836040526060812060ff60f81b82527341ff9aa7e16b8b1a8a8dc4f0efacd93d02d071c960601b60015280601552507f6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2603552605581206001600160a01b031690505b9392505050565b600063a9059cbb60e01b8152826004528360245260208160448384865af160008114610884573d6000811461087d57600183511415156108785762461bcd60e51b8352600160e51b6020526201189b60d11b604052604683fd5b61087e565b5b5061088c565b3d82833e3d82fd5b50505b505050565b806014028301356000805b600115611356578185821015156108b65750611356565b600f8460ec1c16600081146109135760018114610a545760028114610d1d5760038114610e0a5760048114610f1d5760058114610f9757600681146111b757600781146112215761090e60466202313560d01b6105e8565b611348565b600060018660e81c166001811461093157600081146109395761094c565b30915061094c565b601460ff8860d81c16028a013560601c91505b50600460048760e81c1614600181146109c85763022c0d9f60e01b6000526fffffffffffffffffffffffffffffffff8760581c16600452600060245281604452608060645260006084526000600060a460006000601460ff8d60e01c16028f013560601c5af115156109c3573d600060003e3d6000fd5b610a2d565b63022c0d9f60e01b60005260006004526fffffffffffffffffffffffffffffffff8760581c1660245281604452608060645260006084526000600060a460006000601460ff8d60e01c16028f013560601c5af11515610a2c573d600060003e3d6000fd5b5b505086600184011015610a4f57601584019350601582876014028a0101013594505b611348565b600160ff1b6fffffffffffffffffffffffffffffffff8660581c16600160ff1b0301600060018760e81c1660018114610a945760008114610a9c57610aaf565b309150610aaf565b601460ff8960d81c16028b013560601c91505b50630251596160e31b6000528060045250600460048760e81c161460018114610adf5760008114610af657610b18565b6001602452816044526401000276a4606452610b18565b60006024528160445273fffd8963efd1fc6a506488495d951d5263988d256064525b5060a0608452600060c4602d60158a6014028d01018237600260028960e81c161460018114610b4e5760008114610b6757610b78565b6000198b016000198b0160081b1760f01b60f152610b78565b6000198b018a60081b1760f01b60f1525b5060f39050602f9150600260028960e81c161460018114610ba05760008114610c3857610c50565b60ff8960d81c16151515610bd857601460ff8a60d81c16028c8337601460ff8a60d81c160282019150601460ff8a60d81c1602830192505b89600160ff8b60d81c16011015610c3357601460001960ff8b60d81c168c0301026014600160ff8c60d81c1601028d018337601460001960ff8b60d81c168c03010282019150601460001960ff8b60d81c168c030102830192505b610c50565b60148a028c833760148a028201915060148a02830192505b50604119896014028c0136030160428a6014028d0101823750604119886014028b01360382010160a4526040600060828a6014028d01360384010160006000601460ff8d60e01c16028f013560601c5af11515610cb2573d600060003e3d6000fd5b508915610d11576000600460048860e81c161460018114610cd7576000519150610cdd565b60205191505b50801515610cf657610cf56046618c4d60d21b6105e8565b5b81811115610d0f57610d0e6046618c4d60d21b6105e8565b5b505b50505061135656611348565b83600060018760e81c1660018114610d3c5760008114610d4457610d57565b309150610d57565b601460ff8960d81c16028b013560601c91505b5063a9059cbb60e01b60005280600452506fffffffffffffffffffffffffffffffff8660581c1660245260206000604460006000601460ff8c60e01c16028e013560601c5af160008114610dd8573d60008114610dd1576001600051141515610dcc57610dcb60466201189b60d11b6105e8565b5b610dd2565b5b50610de3565b3d600060003e3d6000fd5b5087600185011015610e0457601585019450601581886014028b0101013595505b50611348565b83600060018760e81c1660018114610e295760008114610e3157610e44565b309150610e44565b601460ff8960d81c16028b013560601c91505b5063022c0d9f60e01b6000526001600160a01b036020878a6014028d0101013560381c166004526001600160a01b03602d878a6014028d01010135166024526fffffffffffffffffffffffffffffffff8760581c16604452602086896014028c0101013560d81c6fffffffffffffffffffffff00000000008860281b161760645280608452506000600060a460006000601460ff8c60e01c16028e013560601c5af11515610ef7573d600060003e3d6000fd5b87600185011015610f1757604d85019450604d81886014028b0101013595505b50611348565b6000198560f01c01600385886014028b010101600037600060006000198760f01c016000600073a88800cd213da5ae406ce248380802bd53b476475af11515610f6b573d600060003e3d6000fd5b86600184011015610f92578460f01c8401600281019450600281886014028b010101359550505b611348565b6000600860088760e41c161415610ffb57601b85886014028b0101013560801c9050632e1a7d4d60e01b600052806004526020600060246000600073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af11515610ffa573d600060003e3d6000fd5b5b600f8660e01c1660018114611030576002811461104057600381146110505761102b60466201191960d11b6105e8565b61105c565b630b68372160e31b60005261105c565b635320bf6b60e11b60005261105c565b630f7c084960e21b6000525b50600f8660cc1c16600452600f8660c81c16602452601b85886014028b0101013560801c6044526fffffffffffffffffffffffffffffffff601b86896014028c0101013516606452600060006084600084601460ff8c60d81c16028e013560601c5af115156110d0573d600060003e3d6000fd5b50600460048660e41c16141561113a57630d0e30db60e41b60005260206000600460006fffffffffffffffffffffffffffffffff601b898c6014028f010101351673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af11515611139573d600060003e3d6000fd5b5b60018560e41c16151561118b5761118a6fffffffffffffffffffffffffffffffff601b86896014028c0101013516601460ff8860d01c16028a013560601c6001600160a01b038860281c1661081e565b5b866001840110156111b2578460f01c8401600281019450600281886014028b010101359550505b611348565b63095ea7b360e01b6000526001600160a01b038560401c1660045260001960245260006000604460006000601460ff8b60e01c16028d013560601c5af1508660018401101561121c578460f01c8401600281019450600281886014028b010101359550505b611348565b600080600260028860e81c16146001811461125457600081146112775761124f60466202323360d01b6105e8565b611296565b737f39c581f595b53c5cb19bd0b3f8da6c935e2ca0925063ea598cb09150611296565b73ae7ab96520de3a18e5e111b5eaab095312d7fe84925063de0e9a3e91505b508060e01b600052506bffffffffffffffffffffffff8660801c1660045260006000602460006000737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05af115156112e6573d600060003e3d6000fd5b60018660e81c16151561131f5761131e6bffffffffffffffffffffffff8760201c16601460ff8960e01c16028b013560601c8361081e565b5b5086600184011015611347578460f01c8401600281019450600281886014028b010101359550505b5b50505b60018101905061089f565b5050505b50505050565b0605581e0324913205deadacf8539f39a4df1c95c0286f18710ca29ad47e0cf38a900f014308f1d6191361034103516106235b06f8f185414a14767d2fdbde4ef0ebe4668c8e07fa294c07680335810db24ceb31609b83309d8f8a58a0dedd934a2a43dd02e3c44809a901e627036892ab6e903d46049666948d8b2dfe52ee9b155458fd993095de34f9e10974da05581e035ab7009a73e6497a24820c4ee3f98677cee385df67ed3e63ca34adb84007011bffffffffffffffff038cdf06d3e59669f2dc7db91dd730e3b70c4a9585d8deb8e614e5479d104b852e036f34849bda7658cb61b7744575f44f5070b276b437371273c41df4cf3697ab7005581e037dbafd922eb47a9e29b9db54897eaed52da45a12fcce4f211fd25ffe700c114705aa5959ba94e203e0f4fb72e4e54c1a1eda1c868b35bcb4b4adaac38773dabf1cd22344d7108ead03fb9c211127631aae7b07e220afda7015a3c1a0a90dfee37938cc31b133f3c4ca05581e03b0fd6ea5d7448cb197ee6ebf9c710c9cd3d07b2b83df2da49d4b09ee600c01470363325b9168a202194fed03f69313e4b740c1e952527c53ae8266c21cb87dd1f5f7f9bc75cf1531989043eb0354d2b2985955a9166f5d4c112115a3ac6eea4f2ad9bfcae4b79939658aa217f60348442dc25872a9387fc8661013e33d2c999f500acf5b515e8e55eb8a2d4778ef0342fec66c666dfbc9fddef43588dcbc402b87809837c100c4b8da4fc6ccc5852e0391139497eef8e7f9c98aded280e2fd70b59147cd2d268896122bf209031e058203d07c289d9c201d925a8491bc3408e36e70a27bb39b8a72489d61f6137e8d2adc0397a9cbffb0e830965e49a06a2e2115b9432bc05f864a5a82baaf1a453683caaa03148a14463bdddc85660fa7f11320cd5f02d6dc7d7c97b1699604b3c474785d2603c5b4652a72f889452dbdd839083f140e6a1ff5aaef96add8261110d63ba6cdea03807ce3e91fd07d841f996d50c5dbe7286a26dfef90b572d18a3f53d945888a6003304f2dc73fb6515d937e2a198c5cdee6ded2c39f3d8b443f2b215b6d973313d403e85c95c47e657f7b9ee6fa6ad28959292829fa5ee2eabef73737e2518568a93a0219ffff03c927f912a8cd4cfd07362781e084fd779cd4ebc2bf95beb21fbf782d9823774c0219ffff03ca0ca0e829e6b1c82c18e4337d7d332fdc60476c8f58ce70f16be04a5691ceb703e5d1be36f42927a24e5c830f1be70e843ff4b557ca5e503983deaf3543525fd90387beb5de18419f40c7072d558d6c7984183cbf0de09cb19310a30d231e111ebd0219ffff036409fa9a8d4ace197a9cf5d8a7b5cf0960843a89f5871e98c67b96b4424f808f037fc461b49cec4e38a44240d249935e00c8fbc2458c0e1b5577926542b7d522fe0219ffff0325fd6d7a3e596a0d7d1ffefec1017efd19c06c89273d4c2f34a0f777e42cce03030441a503950396ccc3a1dc6c88435b708ba6892cd9b50128fa2a8a067ee5c39e03ff303a0ec4f7b54b593067420a332a268e72ef2e0ce54c867509a493fa922bf4032abb789d2345e4e2fabccb62cdc1ab0406afcf70525138734fe5d7764d3b4839033e79a25156e5f72cfd54cc876c194532e600bca93da5120b31f3da2f9722da5a03af8d233bf18b76fbda36ed1d708e16b192512e6c0b3d05bbebda975c08c47d3a0372c747f4b05ceafc8bc38207d9fc056a036975edd5b2776a901b1945f5403a67036e8e8c12b2ec3347985cae2385d159889c39a2e5fca4fe708d3cfa71cba9290403b5af39431fe10d380e643a97f6e3ce44fdc8c5a7c631aa386b9926cccd0e51ff033eeecf9cd8c368d55fc6ca862d1a5b593f7bd37966f1420886316a3abb80bae803fb7b276d79564e3ef5eb7bef8562057a17a5dd0a5612311f21475ed410aba9af0317ac780e92af202c39bc29a138df6c3745927e8e2cf84870a6b82b4a7254c01e03e9ca765cebd5deea011d550cebc02fc34ddc90c815cb0629fe2e3e202a5f8fb30382402231a7c52396d3b3218b0b503b58d8011ace595075caa1eecf27597ee36a037644bc5d005b4c6738a409fec7ad7c15b8ffb541d94116e9b314bc26c9c3a45003baf1c60364e7ed37194ebbed43b611e9ef2eb633fd28079478d293cf579a9ecf034ec10bf5334998bdef2132b3cd2294c2201ba8bce30be528b2ce1d323f34b34403f2ef5987ee0f55206c7839b3d6def15c037b69094536004a2359febd013c1ea903f68b4510bc0691179a3acd858789f861b7cc68892e2f75bf381f6204d08cff1d03c760204b3e368fca058f227b7f56c9feddbec74d7bd646392b202d28944f839203e0a81ba8bfd7b7f1fe728823586194ccdb10578302510ad8605c51afd3c1803103ab67edc4ed1d0abe1be6143ba5f65df686becce17b82c2c59a8043f5e4a5118603b9dcfd609945b3d230c1aa79bc9166d13c86fcc8bbef3c95ffab223bd67d97ff038592734e0a524e5774205e48ad62197648cf6903d7fdc3acffa1dc7d1cf5971f03c0167e2657ef6f4ea8974e28581daf8d79ee350f9e9f65a2e91c3428f8b475c0038421020fd93e9a06767800f4b84c555c15ebbd24486ad98912e896c1b7c5c6a405581d022902f53a3c4dea0ad79807eed9d797687ca9af6daa156158cde13ff60c014705def62bd8b73c05581d024be8346e07ee99b05d1711fe7c6535ee2bc7b8ac21c4ac9aadd4d91204060219101003c3bac6a5dac3f533a279790d174236b4c030a59b6ae80923dc992614c62f180505581e03b3cd5984f58965249ed9a186834c29575088852ceab7ac9e4e6ef82cb00c1448011d5715dfca58db033980451255e493e58008161f3645447b7f50756ea57a9af29b3dae54da936f0d03f33895e8f2096a21d8e1db9c5646927c073c0503c2416c514818e1db66a7560005581e03fbb9af2f5c6324302f664e4a083f2fb7330b8ac5acc48962c3e72179d00f014702f10fc5dfc0001bffffffffffffffff05581e03b703258cad642cbd66e382ba54a368c7d3ea536448ce583abd1e5e63600c084740a7b8d287bfac05581e034a09bee7fcc19ad5c204b4423689afbf8d6e4c02d8a5fc6c182bdbadf00c014713bf22a07f680005581e032fd0b7e7fd4f1d15131ef26188441aed2445e218cfcd7cc36558e67d20084722ba09a80bb02b03747c80beee4e7b2dcbdaaa96702d6db3e1c8e3eda815258c1ab2214a4bffe2eb03f4e8cb7fb0ba4e6750e2510b88eb1aad106d2ffff0ee9c426048035e6373fdbe05581e03f00d3d3df46701d5c737479f541bb935d534cb82c8d536a672aa0de2c0040102193f7903a3347a8482f7f0f424d54a87d826ae51a6dce6329fac533d3199e683e2051aee0311e4e9db6e619feb1c2442a406fecf0b1ca0baa88822b156e54a644f02c2216d03f2765a0025a364cab0dc702aa3b79bf1194b760842ed44c00722cf35d55ca6260386f94e7b5e7c4fc944a036fc4df3bfa92ecfa656f1262f7f4764c204e5e887e8038bd8e3924665609280c52014f1f8174883409229826d3290ffe52bed6bb2834f0395685ae93a01c2464720805487faff3fb696911ae070ab6f04f03a346533e9840374ab90ce2acb013679bb26273a5b0049dd6318b5a8bee660ce19fa0bc9440ebf03614528378b6edd6a8d270ea029ced3104907f457424e25605813d7e7a9fdc0f0038d60b8d7c908fac966ce3423475db170007ada24a7e906d0365d0b1031b62aab0219ffff0344ef942ce5f010c5356cc5cd9c6ab019a4d784ab796f3ff64de612a8fd25c42d03d8933bd7abf4cf8013fc8a1866f4c9232470774384e1ca644695344867537e1103f332a873ef2fada52a2421ac651875b2388169cfffa4cc04484dc8eb88f3535403a49a70b07512e9d90bb266eea9988fc8fc50dabf9f3570b4403af33bda3fb26603841313db37649d4f9fdc8376c2eea6ad148bf6a8432ff36afbfcb2f2ef4398da030c93d0a041d8a3dbd4a1ac908064cf41ba49965464e0b1054b420b0ea4a29460030f1f2eced641f01b514da595e0aad7ac96c8b74ec81449084ff986fe66d0c72203619ff3f4f7be9d40b9662fa92a4d2b975a508569256513dc79f7d5e07244c125037bfb3d82f7ab70616f71e7f42854a5376c6d24fd612de38f4e878be1bde66c620219ffff032a48ed5a04487850f0f2a605ab681048f507ea6eecf43874bac27b9b75f17ce103d493ada7e73b5f5209e2355e8de5e387d1d4cb388af7663237fbbb1ebaee8614034b4d34db26d449faf1eb581c396f581c119a727fdcb3708b498e0f99967df6a703304ae1a198a2fea7cd1591332f0f1228a14237ed91948f9765bc64dcc56a58f90219ffff037347bb03feb039fa0b5613d5a005208bc86c79de38fa017ce67cfb78129d8dfb03e62c9388ff770d446945c43eee5afe0fa7e856d590bbcb72912bb1eece8f874203ed771ca6fcecefe9396f547e9908957446e80c99cc370e45b9796bdc727e91d7035154cd6d56b51761dfa1bb0658ec406e4823bee9fcfb5ab04b951d2a42862656034b699d4195d3f16107f9798feeb476300eb536ebcab74cab0b31f5f7c122f7640319c077332776661f53171437e0b6675fd25b1787592082c9cfe4d7f9c245b5a7030f942b227f99bc2f097647315750f3de7295fb96a68be715163426bc5566cfb103dbb62bf193f0a670adef45b0c60f4cd10a69679efbbdf4f45ddb6725c014f9d203c9fc1b3a07cb269a7507974cc6a61e8f7318bcca51019733281874b5c4c6589303a6880c32dda9361e94e6a639d5f97c7632ca42c681baea487dfdfb7ecb61474d03eb787cfcc102ff3384c59a93909dd627d9f952699126d736f5ae477f95974dd603ff8a382d154c18da497783b5d6729d4babd8000dce489706265815362b50ac40036998e88fdf0ad84cfc141998ffc4e7a70f9b3af7a6348640b128dc1bba2e4cd403b624121a50cde4f63c19821731609ae92b8a85d3e47c8226f25ff99465c40831031890373c1ae97435fcd716c50243fcb51be80068a4475a92779ad1437b68647803d60be4f73967d369321bac5e1525d7348b0bdb193592bd9a73de52a1a88d9146037b647bf755973cc7480979e5604f4f4288748a244159ea5995eb0483c3fa417203313e9cf157e11bdefea0ffcf1cf2e2e3c32073b06ec421d488f48c53b689124f033236c1f2f079329fafc9f127bf61c42799a733e9574048ed50afbff5eeb3bc9d0375301414a908c4ceaa28505c9c35f0e6e15069b4fa8032bc95928fa0c42ababd037e9f08dbb8619ce7207eb632bac1607bcb036e50acc8cedc22f54230d5c41315034443469b2ba1abba08dc79f4507d17f928e0de987f7d2de829777da945e431d803f440d37feb675263f26e5ed16276f4f650f1f11b650d19c8fc56046e570ef36703ef0d19d77763d82c33cbbbd3e9af2a02b329c05189e2d655018984d8a2dad1f5035cffceaa3801fa5112bfb18511ad1d9db9f2fa384f24b22a052116dd501b6b950340b38f76cb675a22178230671bc86f7b94b1069c9aae8336857bb2631231139f03990441b7fee18b8b573d37d5912359c3654d9cd0c7dc7e0b2fecc4527036086c03fa44da0d029aa2d8c8c38b36260ec0955e88f2a5ed0ddccd53c22ad9e02415aa0347d220709dc7aecff00410944aa81971d404b4ef226960a3d4679af246ddd0dd03184be8947ad7703c60f1a2492796201eef95945485bd55ca457fc43bc26f65c703f61d1362bf628b28bc99d72d6d17e621535870d599ccade1be1cbd18cf2473b803404e120e5f227fe77ae5c5c8ff44b13b0497fecf8da30359c5d5cc745caa4ab40382f9cbc37a1c7426c2904d2a0d76f8744282f67d6fac29c4e00a89eedf4c234e03a0bfebaa870fd4f5b89b6a4d331e65d823e22b5358798ca3b7f9d5acc980659003763dd97978191786f8af428bf698b284d2c1b83aaf35647f2cf85bdb38903f9d03863a8935ebc0ed3df551d8cbcb251e2bb9047dc75ea10469f0556dd345f2414803b340de9b85284c50d7b9c66132d52d118ba0385bb59a0e61b654ddde87391e5b03f9ee03f4c232a11d9d657ccca3ea10a1ff108ba0bfac4ac507a4a9cb7b2507f7032dcc670af5e53fab55084baee078228115a59cb757610400cbff555eed6b684c036e1d4087aaa6fa4b71d55d6aa13c12c4a9c74121ca1b071a6e42daf25e26979305581e033dd111dac1f221ab108e218b6f06dd4bbf953dff2c2e33151d86f4710008474e4cd14c92dc0005581e03975edac470e4d4de42e74ba65172f6ec0401088d5546ce2f9d1b6ea1f0040205581e03e0b12e497aaecf99bacaece58fdeb8bc8cf1b3a83a8bf600ed3108b9000c04464928b200ac2003ac681437c503202975b8a5dfa5867aaaf2876af9ea2f404c63483345a2bb59d405581d024ff1a645479513eaf6a6c1fdf32df2b8b27c987abd91d268f802f1f00c15471e6a880d5b570005581d023abbcbe30ad6bdafefd3425b5cf4cccfa59a4d9cc342ef0f90fe06570c054711e2c09c2c84b00219300003905982d3bc98b3ad75d5ca7a92446cc8923fae39a2352245000f9d3e9dc0f3ee03bbd13d463ce2111713bb0d6ad117b0ba991bc32336d501e872703c4ad6bc3c9005581e03a66845cdd6f1d634435b309a8162bf0c1fda9684c2fd951769c28e025007011bffffffffffffffff05581e03b0b7d078ab60a3992b51ff496637f25c7ed9928cb923785bcf0384e450040605581e03df84651d54d97e99cbd631451c72d91d739891a4d7717e371bb5057a30040503ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e03c257dc4065bf889913709092f63c4edf8e9d90dba63aaf58c482da9ed007011bffffffffffffffff0399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe90803b75e4321d4e85a3176e5d5361fb08ba5eaff05317439a73d63006548e086461b05581e034e80297d57a581d47de56072659fde49308599ed7ec4c0a9772154d15007011bffffffffffffffff0389d17096cf6ae634e1697d37ef7b96c81a0c053a194021987046090cb90715e205581e03a66a0322e0958002cdb75247618be12b623ec638b8eae0b8e3f6675e400c01470274da894db8b002193bf70219ffff0325ca7131db96d5baffb1b09503c74d4c44325688f327b0915cdfa28a2669d6180219ffff033d5eb0efa438ccf34e7089dff7a839b6ae13dc36a1c3f50bb38d263a352049c40337f5d17fbe75b8693a8081242de7cce24508bf038d91d842f1324c74b03d1b1003f794e7d26a5bef0ebb5b06d4d4afa0586b28cdec74836026d976c363b0318b9a03dbddc081097ad85ce88c67e3ce3b01390567515c432e0997e8858fe063ac62ec03ab276779a4e8da1bc17f480565bf68d5ec9c36fc0a7d2bf27b41d004fb1a29c5037f44a1f677cd678a60b10afa23d78178643918be2b12aea1263c6d69d36cde5903b41cd60e7114359e2919fe49ba9415ed4bf5916a4cded0ee65cfa305a0a9cf1a037ef39287504314cbdc779481de26317ddf6553371404b1cc4b5388597255ab460219ffff033071aece1273c49986cd5a45e67d1922d39b8f485a1ada4095cd326887ed317e0326f4dfd844e172723d7932f3c4b637f2ae66b490dde51102aca5cdadb8faa9ce03421bf960853be5c89bc835c564bc8e646abec23c9c2324398a2e8a2abec1db5203d73d26547cbc82724d5a3f5a055e57bdd973262efc7a4e03a931988150e2b20703e6480baa51cce23b78d08701123051517320cc02ba2126dfc011b29b924422af03a7e015a22b85d9d25436014621fe1c7deb47e04510257b9548a19f297f8559f80383313d04f8b0b2177e58c1d5f1dbe10159dab0aef42581d281caf75b56c6b156038a23474d509688f346c5ebf7fd73cc20ac5c288a4320789bbda4d0f4125395b9036d4b4059e3fa80202bb107faa89668fc3e32df4d9872bfdca153adb3118efb8a0356f334bbfaf8bb168434ab6c71e18c494bd9104bfc8c1404e8422df7002167af038ad4112de812169c561bcfc43e7d3b2dd863ea1335ac56334a67e04de0159c5003f4b2c4eae8a8c1514246ddad58f6fe9a2d9afa6cb0ebe0002d0cc4e41eb4338303391c326fe909bab80c01f1dd5cb6f258dab0bd88a72c8815e1e574c0f68f26f803104bbe18d0d47f5448b8aab236203be25a923b54014f727e32dff87f3436540703adf1d9ac8468b31d555b5569029fdfc873ad279d1afa89d5bb906a6fa5daf2ce033257a348f7f38c5474571db69b54d9181476662a2fa5066c2dba1d057087a92d0359a5790c270ef4aaa5e08eb31ddc913656bce2a769930f291f0a512eeb2afd86037b573d7694ffec80dfd6da0ed82fcaed76c59de8079f676b47cc234544db594e03f3fa4771e75e28aba72d95ab8e618a34430cc79f778e2e7e3e18609827596876037eb3a62f9be15b9a3a76ff27043f1aaa7f0c09f3eefb888f04c18eb906397e0a03ecc120de43c57ffd9f0c746fa316bf51125a4c3cd832a3a307466956de3fb4660334297c44c95104a832eaf1bb4414e31f53f27b72069d52db95940c8767f957380349f8eb54792979cf02ee58500ada5fb55527ddac6c64469ad8822f88ab23e699030e541437bd09090455ceb4cca99d7304b575ea4db000d9c7ab7277ec1adac93503b3bc7681ca667e785c58efcae38c1a24f79d240b8cd220dc07bfe735ca038f4e04582d363d3d373d3d3d363d730532fd6e1109756be1503dabe7194b70df0257a75af43d82803e903d91602b57fd5bf300582103f0c7b8e0b0b9e116cc88bd11c6b4f779037295015a685cba800ffb11788de4d0410100582002fe536ed0a07311b4e3f96e0aa01a5ec518d0e444cd525e8dd84594686a2380410100582002c4d426fb4a842435727b8d98008ac8229b3684ff50dbf4dfae3d92d96c2970582039697a626e39616641426f4c71732f6d657461646174612e6a736f6e0000000000582002d9c4bb0aa589b7164b673d15d32be6d6b20c937e9d79260d8fe9abbf9bcd7d54cda72070e455bb31c7690a170224ce43623d0b6f00582002bdc663ec730592847089e8eca343996676720d6810ead30ad6cbfe3902fa6841090219115003d12659f30376534bc46f18219dd57daae8786d736a0af4432b0f900014a575ae03a9135d35884f5507f4e9cda30aa395badd49a8517df51afe950f621313301d6803b0486ab64efd8dd804dc0372608df97674bd0cf07ab2e521f0b1f11eb0875551005821036410b1b78f0f3d8896d7a415f7f3cb448deb34014d04dc315a61a822e9cb9e405820516d566331434a43704467635864726b6b6d62736467766e4e506a777659704b0058200235a006b3aa3e55160fc1e8a82c96344365b9a3901fe60b3b38ebeb6c385eb84101005820029dc4a6c3e51f9ffdb266fa9522e31a68de35296ede0c3aabc78141549684195820516d525235766d64446a564d413671377145637255617a66676659364b664e690058200210e9200cfc8de42d63162b096669c72b7ab0cfb64e580988476832b596c14158206d77526b725a3239414c687936702f6d657461646174612e6a736f6e0000000000582002be4f155c5ef2ebd3772b228f2f00681e4ed5826cdb3b1943cc11ad15ad1d28550aa8f97058f9b863e4d54ee86ae374d31ebab5e70d032eb1bf41cfd02a3dfe23e3c6ac1e1a6f9ec5f87cd5ce85f654636e60def7bfd5005820026933c7266d9c35d95097c4c042cc918eff96932a828987e86209187751768a410100582002ee4d7f2d9914a279d72ec59743d6ee62ebf7a2941193b592af9ba88af3735e54a8f97058f9b863e4d54ee86ae374d31ebab5e70d02194c6a038037f6572d5c4c2155da0ef022802c5dc0c880ecb87ab5a20082afb4d32eaf2a037a2c6556891b9dbad2da383353c81e0805ddf3ef53e1b9729e8e44827992dab703935872950c8e6dd5fcaba253f963a797656f3542c0ea3e65aecfd50f4a1995ce033e30354647765c549ad4d25646778af5e1d9ea8fcf3e7d636f7c674cbe92204d03d18bca79871ffe6e25f930c8edad3e274a932e951246a05841c75606ab11470a03b3e516292ab531e3bb73386bf515f2b934c857a116e0815f755f3369ba2fe13403012dd41f95900efea8ee0c3e473bcbb63f3100cac2c3d43b2d4c9060629e873200582002df8d3880afcf5fb6be21cc8568115b6c2418e674264dba742dc5045f33a18c5820516d5564366f784d484d3468773863775861447171456f724d67396645557a4a00582002972b0067a2f0cb037626d388e27e5475b2068defc509d3f1c7559ed5bc5c8754cda72070e455bb31c7690a170224ce43623d0b6f0058200269ba153de8dd2aeebdc943481969091e2574e1ef132c7d92adb76f2db5ab5e5820516d54453131634253314b63535775745979686a46643171366e4b4c657943480219824003b7a0d6dccdf2f64c0c00f016369e1e0e1dcef4701e91ea33c6921aff16ea25bb0219ffff05581e03268a7f6ea5eabda6bc609b8a67b421bba608e83a6cebf77701468c09900701182d05581e03ed24c635f06e25a7d654152e91f79bc906c79c85b5d102a8dea033a32004010333dfe39f79895e45853b7bc574f35855148490696f3220119658ffbe781f8eee05581e038caf142427da3e6d64b03ba8449247acd968a21d411e1fe891b6b9bec00c014647b72980570005581e03a78a61b84b8d83993fb525a2de31e76104cb37cda605fec958e90f0410040305581e039881dc46f26498031f38b33ac43378a6da99cd61f57347d231a4dccbb0040303f1b574431f3838d9cdff6e701afd5a058652dab5ae5523288a83d5fad7696139035d1e21f700a49be24991d5b20b17b5bd6c9f9a8827fdcdd22ee081f8bbd1bb9005581e035f85fea13a36be8071cf973d87e536ab8058a109b8d7e3af8d0d74f79007011bffffffffffffffff021999a2032eb5219ece7f720b87009985105a0fc7b2332edc385887875cb19f4622911b5c0340591e54a45a75f6095d5fd06d3d8b9d5fbc2d44411cc915cd8a434041172c6b03480667bbb6ddada557b6ec8eaff9e17a5c8147156bb9d63dea6a01429daf1fcc03a21d6e11959771a205a0e87852131d8f25fdd78b1601aa57810d6971e940e9dd03aae3e1f945e1eb8bf9ee619717e6effcc71fc2c51efe277661626208ad4226ba03d360b275f86f1ce56037157fee9e02f9855ba16bcd04e9f832fd995691a8681d035534fe0d7c0c01e88a3059062c7fa4a6fd4a7ab807089e36873be5b45032458103555e1d3c5c3825d3101577b83620b4bc8d0989cec9e4233b258d880fc7a91b590219ffff032e2e0efc417f4a9a591276df63e0666cb4ecc7027b9384dd75864ae82db846720390b65f7fb5176ae21fb5318a3f85d6c25e3f83f09b66e63e4caf2c24b787b70103c0809731c6e5a7a74662a6ab4dde0f82cbb166c531921fba742e66891ca4d8870382abbdb52c5462defa36be2c79814ef92dc48153f60935526e74dceabf57fdfe03fdbef9dd8d11ea78715975eb32aa11af56a96c8a4cde694a76f795609a88a0780347e79f25e4545af616186fde742f8741abc191d3111f2c0dde83d0e800da035603564d9bdeb61bba268edb7d02fdbdc6a385a311f8654bdccaaca34750d0e46363032236538e344ca5f00f1c5b9a4aeed30105a19da65ce5b1a1015e0071806b18d90391f61d390fe9feb0cc9b80c304d9538d603382d0e7da1b5bf8a9d0ffa7d8a01a03127dfc5f975091fd53f4cd995a4b2fed06e096bb0fba3d0312602db516f4eb2203897b3a885f16f9ce6a3b993ca770bfba77d5a3d38bada7f245a0d8993fc435e7038d3d8845a4fe9d75c557d342818e19df8e0d2707f9108c0c7f117fa9cf8d0ba10219ffff03247d3a2824cb058274d864adecd90f5c50273e9c72a4d4c6a9543a68922e9d18034e22121f76d1d4f613860a104ee5949efe2545ace98775f09b2d9814aa75aecd03fadf87211102a3487ed3dac8c0f332ae1d8177669047ca851b2da13280a1d6fc03162493cd234fd748430ecdc35abcf56494d92de0e737dd5ddaef32aa8d8382fd0219ffff035f0f97a23b495b82d196dfde68a5de13af4e1b2fc8b1e46a735021166e373fbb03367632c211d8691f57703e97251f33be35a7bb3042200cc2aa2fa8b0c04b169403249cd46e65c65a56805f6b3cd02dc3959a13c83a892a2442ba396b98b3a542bc03bc7f3a6d09179d6215dd71e0f7a5577e4e0ed2a2afae2a648bf07ad8673742cb0219ffff033f1b5b4fa012bfb726a92aef9647e146ef481bcb8c1cd4b6a11ba48b26a6f31a038b75494c2cde5a19116147f3d2ae1e91405c6382448a428d7630d5dd62a22f4c032b9c3bab585f9b899eeaa6e2199ba64231c6ede6e94212c0ea98449a6994f0c103edc54a04ef17e93d21bb2e561cb3ed3984f753b42861ac288eeea3600be09e760385456f6c903f799c390d38a89e9e815dd727ac65b82eda8ffae2754040af6f9503daf627ed9ebe31c0807c4536a35199be18273a428207b9695473dcf1500e7888031a863cea8a0a405f99f4d4811180a0db4d8e159022585c2919abc37cb2bfd84b033618f862eb16fd07b998606c411990a58411b5a2aa53daf924668469a6a8a52003e141fa8a1cdfc1eb405c4cb2887f9882851280324415602f434ac581f3006f2203b849b5314f6176b601975007f3e50074fc243c4a3a4d1a9a8a23808407a855ac037ee898cc5c45574b2072c6d80e948469d41284219cc6613c59338847c444fc3f0314b815cde7d79144c1c3a3e21925d881d18fdc9aee2a5960587cda08ebbcdcb303b84fa23fd866ece9e19c38a97fd8384f8f09d1e42fd43a3220883bd8e2d4d0f103cacc665f110b6292b481990d5f6b7da1958b69eb4c5ffcd587f2bf9e57564fd603c257583b4cb810a3f9570f5f5334c535d325ce1475cddf8bccf2f1b12d1b41f9032d6e3e12a7e928f21805661135ccb68e91f120698a5e02cb12d0961fd180f9f8031e069d1152a93770c9892423f8f890973591e52ddb7f9005d52e56b2f276259603c9335ac730afe3be1ac0630eab924659b4eba56a6855578f2c0af9718e70434103c617b3c9169dfe137b894d745fc26d9de111d0dda886f4f22f9987f162d96f6803febeb3c7b0272b86d85713785032b73e7501ffaa686bc1cc4485a39d9a6a029103f27dec072a853e02c885dbba0869701e8ac24832d8f70e8df64df18dcaff3d80033ec3656b409c03704eda69070307a6e26ac90442465741ea7b8aba16937bbbfa0365178f3b88c43576d8eaf1ffd7a5a9a10c77176d747a1d31ed1429643d30670d033e820ad858cd85cb2dbaee7b94be1cf8b44a80d2832bc26f70637a2c67e5a01405581e03a180428a41bebb5aababd87600e79cc8be349df630f70b713e77e3ddc0040405581e035fb93db21906bd525cf6c9b9fab809344d54c43fab10cbba1b778b3d30040105581e0399e996f75b34594aff047806d95623d8ba4042d519cd58c906ddb3cc5004020373a1402abb1d30d4be48e3af0b354f764beecc273a9c9327b9c096e7a64c9fe003cceb8845a36e5fdb54e26c228082d121f49625f02674695beec0fa52bc7a0dcb05581e03dab7db86afce3b55eeb43b750cec34ab2873ec99d7bf01ea35dec959600c0a47f523226980800005581e039ecd8970aafec93927482d711d0ff98fafe1ddd19c2322efb9a8f2af00040105581e03bb6e96fa5e9a5feef26623fdd7de5289ddac734b120e8abb32cd5485e00402021992d9038720977dba10ff68c69e213dae095b1d2852417702c5ab5a16e5c15dabbf74a903efe294a51abb312ce08694fd599990f1d2eb7150f475b849382689c76403a211036e66026576af1ed08b725e2026144d611c92ce5d028e6e672319e8526270f20503a64149bf3f66492f632930be0ad051d0bd39bf9a774c4cbb6fd7794794f1f3760386fc388ca204abd66c837e593b580c89a3641621e7507a74bce024ec895ba2f503501de85ffb97c9da2aca65318efb74ea0ebad63c54b18aa807a8ac1ce19bd7d003bc3f5bd5db717343201e3d8a479f3bdc8807b86b96e3b57379d6badbd35f874f0219ffff0353dcb83be1c83e383f92ec9212a4747270439e794db2e6da4a1fc7c1b91ccf9c03e99e642987cea1e5831a2a9cc8480f09824f400715e91a3b0135d9ca2c3b61c7030f9ece3eee5b3adc60b65327a5711d722bb5097941310442e7fbc43a5802191703246e7da3e9396aba919e9a8c5f29d81c12469927e993de42c97607f7b5e9012e03e4c38d7b49c31f7d416dd43ca016e7edb561c3ce17c088f0d4bd0dc7ccd2e9fe03caeb39b0929018d1c2fc334cce406d6d0af144c34ffab47f065870c7abbb6dfa039bc800b67375af8b7f6958e9c7d08d56b9dd38d2d59aff79084c5479b2f2be7e030d0640b94fe929354cd686066eb176a4de1559ec9f1f74640df855707f6ebd4203da518891691bc96e610dc0b95c0b42ad3f4f9dc797a66cb07842650694f5813c0219ffff031790001941f51d1918f8f7431c41dd9f3b73cdf1c33e608efb35531cf0f417ff038e69de69049d38030468b08c7cb13482f8c3ac800ca48582387a6598ea685f3c03c528e0aa10d877a50fcf5e8fe3391353c4ea098730ad3467480f3a69f9ccfafc0349d0c95b1045705c0d20981f114b280dd4a83bb78d5833b08b4700f93c92caa90378d98113c4e6a60b3d2b1f93567b9baeb6b1e5bac8b17bfeb94ac3232aff562603b260b8f5ed0940293a6f8d83d9809990a28f4e849f86fc237b23c35ae78a9535033e975a94b8dd7c6b6d79ecfd08fbbd647cb0faeb5bfb0e018d13188bacc7838903ec688c1ffa8792d5aad4b867e8f124b90e909e5d8a4b30de0eace7e76c4f839b03879c5f21d7a570d6733e09588787de052e0d4eabf988e307e5d220558676512903c82d8bea8ffd7e0c27586a8d41db13fb008711b8cab138d11a2f12a41ed8611d039d0a35acc777d500879ddab1341b7815530a63b02dca79b469285f3f49fea06d037320d46184e3b697ff3c1e4eb0f7d02600b0ec1f5663ee0fec9f1fabfd89f3a405581e032e30accd58806e943c91918daffbff13596b3f12853e3dfc45c187fd60040105581e03d349261232d881fd5ffb940fb129e311097219d2cc20e71df545ab7dc00403035c68d46a5a2cc9dd9b80b048a4976c3469942618c35622df4a38d253f8d57a690322ad4c2a832906ff17a819ab729a6b73f12d756fbbed1a391c347305fe4ed38405581e03334216d581297e761aec7c6bb067c42112b94926c9db87d15dba7ee0800847073f5e8357800003dc32f9d5f5b18831e892c5e55495aacc58ed545444956a41fcdd44ac1884c62003adf7a1d54bf6a4558fee7d96b90d933826855048b82389275014943a03cad034014100033b0f6b5ecb95498fee3b3c406fbdcf2a8a431824978efcae8e868148ea80d00905581e037ee6351d8642f0abe935e1ee03f9f478b54e422d8e7b06a8fb33b1de40040303933c22aee40847b215c5f381511ae8eb93f9a7193469e35120838a793586e1e302198dee03f0f3b416dfa5c0aaba5b32757cfba2d7c3517ace4d9c2b5fc5033619f8a178f1032f2c4c3a772a8707732413fee5ab5ff473ebad1c518b2337deecc8121bb518a203958bab9fdb3da5f89e89c55a5eae481915f599500c5464b2801c498ee1301fa90338adc8151cc09768c9d035ae451511ee3c1e4a3fd2e29d643e8353977922528a033549940434f30e84f0162e4cc5a11b72a57158a276b9b7bfe424b1ab403230940376e58379c7cc902dcdfe58a0a7b28f14a9ee2bf6c5bd3f6f9d92c44d384f324c035a5653c2fbf092a24fe2775de98a0979f84b4703e71062ca4ef828262646213703d075c65114d3a5f8954c2ad11fe65ef6ffcb7bcdb6d524fe6883d3bbb2825d5f03cccf16f22df7ef9e90d9a6db80fde46f287b201c26bfe62b8d4d5e684e2e1d5503f73ef51d897acc5a9591835d76ee346e6111c80c989e3e20de125a76c115ee57036171ca920b337fd5969beb8ec3427fa9b21983028ba1f0ba8cf0dec4f8c1d04703edf3044d1ed8b504c9436b91c4e7f3ecc95aec97a58a183f13beeb20240967dc0219ffff03133f809c9a1f537c7eb28f4d9be99512f131f33928bf6b99fb1a3e12f0be7c5303938f0bfc4160ed441a5f5f9476d11d6a741de7e3295879c1cf0a9671a8f7304503bb9772c80320a08ac4c6ddd8a6a28404a1553a9299a6d6c105a27c56987634bc034342e42e19491023bcf5436a120fe4bd0c9ec30044a20a1bceb9f0e2f5f7c072035489dbe54314c113e0b19b1d8b9169a5cd530435200999661583dd28cc6385b9037bb22c69aa678cadf6f6b28b76795a842e7dcb93bd6a345521a19eb5d07482e203468d58038018560a73d284056961f9c306d2c0f46f5006e70629ceb95d03b7b203dc2ce80b94b433cab7f3ff9ee3ed7beb5e757735dd57cf89a4195881bb1e9627034acc5942c56b744353795e904c856ad6fbaf609940e2a8a10f5da5471af3a54f03651e11bdc5f66dd30f05a6a689d87300d771b715d6bca2856defff6a401648960219ffff034c5a09b57c3d2cae16742821f0d6832514b7b57510ed180dc1aa6c986bf534af0219ffff0345139e28f85b10d1a39f962f4f5746d5f8875aa4f50c811467e633dfbfa0932a031a3d9a9f5d9ff2e9248bfae781fd6b06f6eb2ca713d7eac1953d22db1dc605bb03ddcad262dfba676986779997657f0626a9e81848b56abc2af57c50f28fe071ed03e239f26409abd8e86d3b5d1b4ed5a5f1a88fbbc95892b98bc4f253f9883e891a0357e55909ee2ef00e609e9e164e281585756be057253cec9a2ee9ca2cb6c1a608035d42044449caaa94f2fb3eb8a281593fd5e5cd6edc6541a0d8380b672dfe0fcb036f883b58fc673cefad69a3ddff391d23936a1e723ee40469ff173e704f1d2f0c038db6475da0c94334a989d0e712ef524a3b1757d19551e551ba9d996379cd78890323e960089a03714f8e8ac971b5a73020f7875da687a4adb9b09d9df318619be8035d04a13ca48f967db629dab64173f36f6571abf72b9b5041e55910897da8c43903df05cf2c813df28f1a37fc5c42be98c692f21723407718543fd8680d5a2fddc5037d681022b753a16391797f4e88d47e4b7d7620b9e98d874ffaa9a1438597fd0f0345313b674038c7a861904cd25b39cb364f3a78266af252570c0e6b779aa412940388076775ffd3c9409062f2bb7682f32a8546871255d31694a9f5ceaa24e540c803f90423820da71fb7b035596972bb880d02c34f9de09af595340c4443f76edfb30304d18054f5b9187a62594b5f31dfe8d226efe6bab024e8b814011ad53b3d44cb033a10292c734d6cc7f627694cdcc71f704605a07774209dcd5770795ef9df8cd203e06ceddbfb4c4f4e72b46cbf70bac4f71ac7238bbf41018e25147be214d1ffd20301261a728a8c6495f1cf224aba030247546a150560fe6186a72658ecc1c9f52303617af9ac9a634370e3bf439697d0a73e6c00ee9c51499bdeb564ce11d7766b0f03a7ddec9c65cdda9ae93b28005c78d3bc6e4be97aa2ab7deb6b2f644dc82d0ac803f243d14904cc768f96dd18781c83e297d3a25237bb4a74a3e04199fd3434cf1303913802e1b2dc46a526c0791d3f6ec05a326295a106c7f0a70ea8db4282583dea03392956352cf015176a840cce596172ee6dc26cf39b78c6ca8b918ab74d2e57b703abea7b1587f75680583a551ec8ada683e62ce90fa874cfeee2c0a2b87e1323a303e65cc306d886bf3a739453b85ee7b899939c4842b8569d3445c4239f9a12fdca03be439600f47bb72aa32045bd927cb957a7d50c42a3c9b895f20f200b81e0dbb2039ed4a6eb086db5b13160e0ab117fe92c068eaa773238c231c975612415f9f32d03f1b574431f3838d9cdff6e701afd5a058652dab5ae5523288a83d5fad7696139035d1e21f700a49be24991d5b20b17b5bd6c9f9a8827fdcdd22ee081f8bbd1bb9005581e034e63e5b4e29ea7c31b162fc4eca944261f05c81eada86853ca7c9bbb5007011bffffffffffffffff05581e030e144d1ea92376b9399a1a8f7211adcdebae0c96d1b909ad6a8cc262000c014706464dd75ebc0005581e034e742cb932adfd8d6c03ebebb16cdbd9e1ddf8663a2ac0d952b8735b70040103363b8efd2f47028f81c1a8db3ba775b68a0d5b287832f82ba9885c33821e20c005581e03cd5b8fb853d6626f27e7e3cb504a2d81ef9b84e94621ef7aca142eb3e004030368ff0b333b584f43e1c4945c3d3a0bd1e33bcba1e14b3ff2cbe20e30f2f895f60459567e608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000c88f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000271061309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f000000000000000000000000e3dbc4f88eaa632ddf9708732e2832eeaa6688ab8d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000271062ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000271062ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28b8b613b86565b8715611aab57611aab7f000000000000000000000000e3dbc4f88eaa632ddf9708732e2832eeaa6688ab8b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f000000000000000000000000e3dbc4f88eaa632ddf9708732e2832eeaa6688ab908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f00000000000000000000000000000000000762d10ef955d55b7d038c7a7231cc81565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f000000000000000000000000e3dbc4f88eaa632ddf9708732e2832eeaa6688ab9087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98481565b7f00000000000000000000000000000000000000000000000000000000000000c881565b7f000000000000000000000000e3dbc4f88eaa632ddf9708732e2832eeaa6688ab81565b7f000000000000000000000000000000000000000000000000000000000000271081565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f000000000000000000000000befdaf0d0e12e72a71484d72425ff741174462d81614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000e3dbc4f88eaa632ddf9708732e2832eeaa6688ab16939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f00000000000000000000000000000000000762d10ef955d55b7d038c7a7231cc61513b565b9450614bba60058c8b8d8b8b87898b60017f00000000000000000000000000000000000762d10ef955d55b7d038c7a7231cc61513b565b93508415614bee57614bee60068d7f00000000000000000000000000000000000000000000000000000000000000c8615325565b8315614c2057614c2060068c7f00000000000000000000000000000000000000000000000000000000000000c8615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a039d309b7d5f381e9dbc1dda463120895691b478d053c0074cac2e708d8f6444ad03f6614d2ed1ab7a17d0c1d6f81640675f5468b9af46b1650911824b1733bd5eb3005820028da5ab86f7e27c2b01a6b891a0373a9c19edcecce97457a37199503e5e8fa7490166330e18bb0e863103ce790bf118b2e67e3e99a047d26df8dae9efe8899c44044767156e079a8e7c3103bc3b9b37d338e381c9b560d0c1ee11c2d78fa13b2c6a1286903040ea72b7e0b200582003decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630581f0100000100010000003bd6000000000000000226a3d5ffe41398b440bc34bc00582003682cee8275b413d1cd013b599a78110a2adcadda30a941d7da1c610f7ef2a05820fffffffffffffffffffffffffffffffffeca563a7aa5bee4b5653e7ff7f489cc005820038da6893e6e7af090fc451bd4264d6f9cf854e1384b60fc9dce6ce2d97860205056416f9923f21a8689bc5a9b23aab297021920810360ec0ac2c163feb608510b97448f77a732b2cff26fa6dfc77b3dde9a73c34f9e03362ee51a5459fc0000dc6880a62721c14b01ccba45b168d959910b82e14c895a0387d01b4762fc13544e9c2b11a2f6ebd436a69b6f9f9bc24053fbe3a2fc0c172803244f1822835042ed0af94d4e001131809d67f30bea2b1f5302772bccbd3aa2f500582002009e6536391b03b84f3a16e2d9030e09db18eaa9bffceef4f27fe2328b74da4f0572b77eccc9c841e2a78a2c644ca50219df480303f7ce9733c4164702bf4342273591d69d49673c1f5a991a8611a626513768b7033bd871d9f85f8d9a77e49b6e6bca062380f4e2ea6c70f58f17fcf08660d9e8a703b1ac3280ab320d63800df4ff88b50d846fd07cd3fe2fe0f89ff76b981fffaa33030c1b9396a7c03a5876b433b0ff9de09e0ef2435f243fd4bc236037ae2ae61eb303a11de60ed49672db0f0c6f5ab9bdf2b3775789ef0dde51f14937cb736d5d93d9033a37459f070238021a7f8a5eb22ffef49bda765935ac02b024fb8f1b1b4237a7005820026012da065642a69f60b464b88ba3b860b261de21839c7f3731e5a63359cdc15820ffffffffffffffffffffffffffffffffff1fd020a500331de3d549450725a48e038c0f7f5e9ba0793f4f30b14b0173ac7df5b2eaa80e5814f5c5c8539709a3fce7005820023aea90d8852645d486c2d3281f3ccf3f4c96e05ae1c8d817cef9db4072bd48502ee6a5489edc1bee0602d0ac84d35cce03b734ea899bfe380166cf9aaf031055a326a78a1c0583c76eacbdb88522c26ffc0141030058200235acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b4963116f7e327336394a033e7eb90f7934a464dfe5253241642024ef0697429a7c660aa92652cea6c1cd0503c01cd1704ea553b0d5b8bbeb9c8ea8fb1444997e62721d900f8356a17c9281620325df5b79209d3f26662d78e145744d98ecece10477d950500d021c2be907f1e10219af2c03f8b1efc292f5e561307fd44b289657e875e85ef32fa006f0b1499013155542ba030620d13987a2e194d6ade63cf0106c5f678be9b623ae4c77f7b67b2f0cb826bd00582003e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf605018dbb27ef70f5501b80e6f8a75ca73f100582003f577547894b3d6e09b70efe0535f7e21ec3eb77ae0db944ca9fb4fd76917205011a4cc1c04b768bf44e9fa91a9985161021100582002f2e8160d11659b266399b5a250bb2a45285b5477f8b5fc0c0fd9df3732be375820ffffffffffffffffffffffffffffffffff680b61f1aed9d6fb26be4176592d68005820021353ef009017d3089bbbf6efa08046c9b46ccf6d5ac51388e387c5987dfd1f58200165cde97b00000000000000000000e3bcebf2aac5b65c93490000004b2d0120005820028c1400eadcdf14eea6dabbc09721a07fc0a579b287141a63a99f365f1bc41c5014a97d26b03547d477298f545f080db40058200228315ea43075ba76ac2bbb038dbc324f26681849d6174783fe47039cd83ce058180f7134018418f96700000000000000000f7134018418f96700582002d1f7e48b550dcc9ba5665d4d8b4af8fd9b90f3b8c794624220dbc8394c82d84f65b731bc6a00a925886321b2de87d300582002c8c8d978c813da02aca553ebbb59617f885bcb0de29ae11a9cffd0a84028f84fa13386841e066f74e405ae2b87f1a2005820022ad6a8c5959b0beb9253f7894282c7a2d28cd15f14c0dad6bc6724ee78d18c4f6a19a81f158210563b5ab04fc1917a00582002b88533a7c62ef98324457f138311782276e1412b921473145f88d880404d64482128b138b7bdd99e021974ae0307fc1c6be3d37ad096b16ea1b1dad5e87b14b20fa5922e0264e5e195e70f29c203b5d8eebce1a90dcb29e8d86761e022af824bbc6f935388f085d868a79d88945503cfa17641b9ec47d5306f9ce6536e6b822182f13a5a7572de794912b21cdf7ced00582003b79fd87150e12d6c98ec3a48d347ae03364c06f0574cee8e01161170d2fe90500160c5a70351cc14bfa57b57580c95dc00582003a0f4808f7f0c52440675894727c9e66265266cd1e1f5015f8b745ca2de5f30560800000040000040002082c13300502126288e13020002191002033f5b59e3e5b3d8bbbfc2cacf5f854241f22718425212dd1dc915daba67abfc4e005820030fab288735963648f7a27a02d18ffe056a8396518819d2520bf75923272cb04f016a5b2b2d1507ddf5c1b4aa2aa21d005820037a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3058200100000000000000000001761e5aaf5fee24fd81bd000000a39e406865cf5dc30219c00000582002d1d532da86f9b3d96e2b90e87a2ec379c6f75451be7869fc8fc3d41b63512e50402663a7c424da317b92f6342cd7189203b97dd37f4dd6935555d78207eb4ad3a6a7c9501898e4ecb61730a37fee8486b500582002e7fbb3bebd440c0c2ff19914ba00e84a475b07ddab286402cb2dc26d69198b5004075d4713aac3e28166ddf4365223e8034132fef57deec1a6187d020d66b85cfd78e3cd1d8c2a72d2ba74f0954bf0f6d903408245695c70dcd508a99752282ec628ec35e99ce42c237da69f84b352fa00f603105dd1b911e7f7868a685508f7ca423bfefb7b6d0620a72f557a7c96290859a001410d005820027cb99e5e28782ba616e847310c12fbcc7725f65502e9acb0f1bc1d9badca685820ffffffffffffffffffffffffffffffffffe8bc4ad8cf9be56cd387feb63b3ac50219759e0219ffff05581e030b12602896e86744111ab577c554a98983ac90aec4395b8630d92e4990070119567e05581e038eb2afb3817a8c5af175ff76e7a75c6b2fe6f018bdb4dcb244ad369b100c0346c67dafbf14380386d1cee19a8b5bbb5bd9d4e97f2cbe64747da207682f1dbbc36d5dbf459c48fe037eb6fe15bd6a77523adf1425fe53f8b68b07af7bea1e0b4eac6b9539e3fffe4f0219ce7e034083234263ca28b1739658573d00a0eb6e74b197fc86cb031185cb7b8e0b6c3103545d8fe0521a6bea06f76a8c1b7c45c949b89588f840d76a7df6d37a0ecab70203b2782d70dbb8b73515be0789c8450f1cd4500a974b2988fa4a93662c36b99b1903af37adb1e0caeefb9c8783b5081c0c93d327e580a7ad41858a53f2e3aea9b7fd03a27479c7d0d2febd509edc3377d14a5600bda7ccb04112fff86bc4d3aa21dc300370f53f9b3f5552ccffb02cd4ddb5e54e2da716f46f16863a99e5907d0933480b03883d615f941051e6f40e3edd719ded4110c8909fc00958ea9e1c7dd0933e99360337c25f09c3e7b44630dab41d740adf6dc575be9d8cbd1e93731be64d7f934d140380ab5b4b5267da42798268fb8d8ce5c5f5179050c60e2efee485f76fd00ade4303fb9858f67cfa74711bab42e5fb4160a03904e0f7826629fbbb34d1e7fe23d11403d7b39aab6082e461f208a771125ff2188d05448ecafdd01726e3e9181c02ed4f0306678760298b546ccff0d41959ab15699847a5ccf80a0b317f097e6fa92770f2038f0aab2e805f3d15b07a5628f0e2e6105ad1a78b7e9f562a28e96dc7d42de193031deecdd2463e9f42c7ef2dcfece6701353fa4c9d8b808e2cc0e12329a00ac03203dd484b4c1d2bf1f7c568ffb175e4b67e84816bd4d0ee80f52727a8f8a8f593ff0219ffff0360605de7a6c0a6c2fd86af9cadbf8cb9ea94fb1ff413be04459755199d9285db0302c07220631c821464cb0e242b4e3abbdc9b5d03d5530c3898cec79dc706f133030bc1a1d2871a35c985591eb85e006cf5b6124fce7dd50c11bedf3f2eea2f29610399a0e50e811231a0567124ac8c4a3c671e6cd103e9434b1a1479c5059acaaa300356f8fd3aef3b08739502d3a897671f51f595999811dc9558ab47c6de937d1c5703629d74bfd2e10ead3159a493fbe7e2d81e28173912d320067ea1b8b3010220ac03ef4e024741430e7211cfa8ba3e302d3150bd716d442854f3ef16268486c9b6220219ffff038742c7edba25c1ab037e704356b5df8f8e458bbb485419a25aeac8cedff61621035f2e825fa0ad32d852f42068bb3f1f1f87408046a1800cb6ad0d6e757cd044640219ffff038b9133f69a25c58c052a490d10b4d8ad954f6d2367fe4514ffd40e06431cd8ba030fb4c710c120e07e62e8846e2075e0ace35f9a365ecd7383d2eab7333945b4a40304e0d76946e8200653e0c58c5f94f53b957eb9a9a52d6eb5198aae680a294fb4036e87da5f77fbbf0e1dff99acdd6750e7110d2f55bf29e01b81c2a93e28af22d103847a666ea4e9471f995b2fb32fb09ed003fb60c52fca05bbebf6f03861b3a8390374160123f6d67883544597be1da64ccdc66f5a6619217d46c0d59a72887e403803d859a4f8e7414889594ba31e298aa332863a05cc8197bb8253c7772400ab50cf03c3f6164aa1da18228c900197adaf6a4d02b433df814ba93e56b4a79d13f2d16c034216a47e78b9f838426ac11c603e0b51bfa7a0745a89500878c5d12a89325cb80314e4594e83728b26ba075e060e645b0c8449d745a2b50982b81d9206a2355c020300bf807b99a16fefe977799b75c93eb8a72c0385e7371828b7f20ec07c9e4bab035574315e800a3e3691c38684a009679aaba545de644ddca959c1b3663a8deb7803bb75a0060deb4cd238b2f030cdb19dab04cddadb41870e0a85e01a84f9e8a5d603da2f943790b3ce726af2fcf17c5712fd7bae4c2f740756efb98576ab9e90583f03296489e96b7067c4cf9da3024fdf45b28cfa5a74c378046162535cb3ff24501c036683844ed67e62e76e34b96f271f81488168fe3b05f87361bf10b122fb54ad71031a698fc334f7e1dadd70d31efe31b08682f937e7e66bd29e22af6970a2987ff803ed3983a8f0d6bbe0f669b2eae8810027ecd6a3410bc73ec8e00ea160857363d505581e035d44b5adb7d687dfbe241a934a78cc9951ff221ee10788ca7622db3600040103976f3b2351583109b7e389ae06e035ede830c5c57b3665f5b42162e92a4e582303e7fd2fe1af35a8a72ad54a3b20bcfa765334372c692703a5128d2bc1dfbc744b05581e03650171b406e792e60d241cee02de6d23a986eac37c38896887c45232300847df5e8ebfa3660005581e034bc8e6067baa4f25e30f4547698012193ec414cd9b48f12feff12c2d70040c05581e035849c922f255d9176c4f2f337a106ad2a21acefb5dda3251f6a3e406200c0b48039bc139992e7594030ad42ce8157b25977ba4b30d7b799f4babb42893f89cec4b1f1a9364479b9c5a0219416e03c935e115a58da7510ffb6e3439872cf9953c4ffb5f289d177bac5c87ae0460cb03a057f92c8e4456dccf34396b46fa41da8ad83757e018af50310ff26f4cbe344303cd4f6c7032a6bede6720ae01edad45ad887002570400b5c4ab4b6824f813b29f03b7d996e3193e93ce0c17bec4b1252cb1ec546ca338b9be3a9a3569ad23e5046803f2c863351acdef969e4ca11be46188e9557ff225827b8c1d5edf0b9b7f794e8603597df7569d4057af2bcf18f1b65f01a9d179dedfe534261497a5d40c3926f93a03e1a586c2556053d6ddd429ef86199b05bf254ae54fd140713d0af9d57dfafcf4030fce42dd1a144a3bf570fbac21d98c48cccfaa4514dbe45ea47687fe75ae9d7603daf2912c6a3c13aee39a10ba7ec85cc24edea0e01c0f45df3aae8c1af2dd26390369733632b4ece3ce79cc9aebf1f0097bc675ce447372175e627e7d30b7b3f8900219ffff03e68d06b644b33dd920e292585f4d5947b3f5a7da1168753b6a1768048bb26bae03e952d0795a371510308d212a3ea229c507d4b545c58398b81671ce0f93ef8a5403dd37134a56dbbb13a60f8857a65b925f0203fe513f9cfb4a7aeb910236062e2d03b12da9f296e712ea026b0b9f0ed41db32a1c7e07a8cab48488f311121a6741d803c94896cb067fc76065f5f8f60da1e772d20743eb14bd64d566895873a15032d1032159d55eeaba2583aeda73e34656ee5e393d7b0ac54369cba1c4db799fedd7bb03cad998f1ae37830146ce4ac4545b53fb35227eb3cdb71b4fb999210182a8be9303c45c2f2f75efb2a3039af9d18c3c05fc694bdecfd4f34ba10fd756cc5b52716603cb46b54c6f77e6a97be3a20b7e2d575d36bb429f1a4208122eccc9208b982a86039d5e590d6b3ef1eccfcdecd9160a5c7386cb7e9960c77ef45cc0ce87041bf741036cb99a654f17789a38ed14e833d6f4835fb68a1795f800654b11eda2f115aa010327543a0f87a268f595ab1b9a90c819b9c8069249033b3df433fb91c897ca2cd2033c37aef2f11e5d4ee9c2e37777d359e3215a6e4f476721d589b394ab5cb08bde03597953af86371a74c3e99041b7b70c9fef3496ea8aa083568509aae989b1c1bb03c23717e991690b0366012c996eec857905f7e5c224fe52a59f7d2484a24be6110219ffff03249efda8d204e86a91e52f603842bdb712fdb7e8033a1f880a10816bb95ea73d035ec0b705efb1f4af755502f3685c7fd74e3f45ef2e355bddfe61e29ae9876df603613c673c93e03667f1e0793cf31299e97cfa48cc2dc3cf027afe2a939d8c91f70386c7c05fdb513353887aad6cb9f8167cf4a2d682bb155cc64f4bc3c00b9585320365be754425575ed47b94b0de5c6c841f1bed55707ae7467da903adfaa8e93c93035e4849a7b2447d2b9ff7b7d58ef2dacde61cca8c24abba8656815c645a6de4fd0219ffff037488e5a73a08399617cd98d683538e9bb80dd8914d3715679cf386ee6c59bfb1038702533230df835336eccf96776d691d2497cb17dbd3c75e4d98c3f099d4a59d03099acd64d9dbd9b7285edf5b65db0eb06444352b1c3c688d51240cd899c8f7ca03f4ad3b9f8347199c87ddbea50a9425c57f62359772a5bb9ce363fb3f6485c2c0030c6b8786db1181fb994f9341a0f6b12ad6742a4c2c58b14c7fdcf0507f450c450385ac24e5cefe857ee9b2e2faef0b0bd25c88af6c2a8858d656481a1b02855a4703348099ebacd29718f3603c2c97d5c0fe060215fe9109c9795b9c5a559a37e7b503a8e85941eef3b0f5e5e7e2944dd7ef7b88bcb9894871545e71c65fdfe68f78b1037005b4d9e1b3502a447fa2070ecb1d51f7701a6dcd5205816d2726e2933fa68103f0ffda20934729636008ac8ce805b2ba0d37691d3ff59fdaf74f54ef237e7f41034b034d78fcdd4b3edb7d4f63ff43ec12285c86fbf60bc8e52dade8526c8de0b603f5d6e9282dd52443165f68b967e3bbb9084732cf4b8ac955a528f3b9e7467c5b03d729e5ecdd4ff40cc3584b87589f634d9f483e55059b67a4bd4e926cb596d657030b6d2eb302f883eb5e4c467cd1f91e35fc052a08dfc8c40925a1605e51b5c86203c0641b0b803bfd0cced6ec53b0393558336c105f7efb92703028db028e2ffee7034144d939bd9c5ed5d8d936e907a380bd20b94b229b2d72597f8d1967f38b3e5d03e20850545c46ba1d934d98446daca3ef4ad3cb91dea3538d44b011d3bd9a837703fb34f9438a6014397bfe5ab19eb6e91d4e6866ee174a3d4a6463500cc54f8fef03b24addf6414fe0303c71582e53e3ca2f349182abb906e0153b708a4c567a3f78035aea59f9960f351848fe62663e3a86f3ce8cc44ee7749943f480919709133fe703c026913919d1c31e3c996c139239c482ac9c73b72025c39b2cae60fd643ed16803ef39879e9f99a335d32e947fb139e45ba5fa2f21501ce3c2dc31c7442ec7ed3b0375e883e288763aa702a4ca3a862040485ffe80052196757d8608e6a5b0ef0741038087ca721d470d2fb5ff5691e192593a005a47b512bff164535ae595bbca8f0503258e71b741ccd1ed61c6fd2916a61dd49afcda0094e8d43265496da854e2cbbe03ed1fcee17f25df8afc1d49f195075ce575044466e93387d9318ab6ffedf8714a034c9d738d3a47612f07e0849c6fa6ecdcdf0f469d900274bd1593f6e1c8d04943039f018016cc41424ebf64e971fd48cfedd9560db1cd689dcb76ce6a125506581e034bf3c7d59cf90c823a7da4e2aa96f0e8720c81dd5514e589565ce8527f728f0303005da9b1e234dc4e3723d0baa030476c95ab0c1063f3934e2319ed65cabeb43003171951b91f73ed855b200c1b08e92f06bc9221b9358f537a272a3743fbaaa5cc0347f613aebd8891670034ac640241a1a6065172330341b1ed692e6517a1a51c64031e3429d67de20917b54a7b49c2cd1ec58432907f7f595535911b88d7f3fc9dc10319c38aa5823299e92dd84157f38f3df7fad78da9fc37828d604af6c61f89e79603b0d762b289047e8e2be7c7a2f55b5afc4b578195d08b26aa752b7a32c9c91fb503b552ff623f6f40f46c8df53160db14416b2db1a22ecf82e0689b41697f706d1e05581e038880207e15c1db401a40cd5c432f951dd960f3a6cd498f0787ac103b800c054703e8ebc53799a405581e03a9625480587fc17ec16bafeec5af1c8fd5fad3f50415766234bd7b4510040105581e03c184e616befdccec033e60d4d86b2d83b21564670405107fa9e3e764400c0146559cd06c08000313871fda7b8a62211843af03fde6bd58f061a44539ed9d28018575ef77f755d105581e036e3b9809fef2fc5ce8c28eeb965ffa46b19f7da78393a817001577bf100848016fd357079f937b05581e03300dc297ff6feb311e00484f16bb3477fdf2574b68f0df5d52a0a77c200c024756cfa48001ce3b03c376d6e95d8dc264dcd64f267a135c3e195d5a999600bf5e944163106fe92d570219591c0219ffff038b6583158282b131bd13acd097e608c8e9cfe5df870ed1ecbfa27addcbde15520219ffff035956f74a06f6347fa1cbd24208aa65b78387a64a4e322977e435b40ee02f2f2603b09a9a4d908512c287ae361c0294ac892ef9920a1ebc4261fa28096e56f4d23e03eb3819547dcaea06b9049af8c373ae2c3c4200f3b7a8f0559af87d2ed18f2a5203c1c2273860454c1768ca1958f2f6f1d4cc26e76068eddcde18ff4a907203806b03f7b54c0c358be022482d405056f989e00eebc52df855cd21c20b7e4e46f6a4a703e40c2b09e3ade1ba926b9684b09a8d6e74d46efd0e3c99027aec0b96737eafc8034c3f6db86813f2f0c3efad5cc8e60f2782e89067a471f6afb46a55a890ba3a36039f6bf2246736eb8bfd70d393e2c967d92bc69102c408d609e8ffd62e56f6338a0378c760c515af28ded3545c8755e2beede659072664f957106d5fc2a336d2fceb0219ffff0219ffff03089dfd4d6736ddc5a604528bf8f625c013d134acf7281d3af2ae400640d8e061034ae1cc25d6c41e21c0dedaedb93e3e9f8b2f631f83ad621e1ea28b33bb70cf9903b0bf80313b266816b0e67fd2a4e8fe4ef2ed3dd739fe4ee169e4699949d18467036a98ab7eb502f25e00b5dd4f487143f49b985341958beb1a8f4b30f892f9220403b36e4efd0147049466690364b6d6e866fd1ccf2f8edc55569b04a04782cae40c03a0190a1c9bebbec45ad2c616acc8f1ca6c4c2813d8da8e54b7edd15cba4d091203d1d14ee4e75f52d0997784481b188ead5231341934c60ce9a149e9caa79f71bc03306115dd04feca06ff7907b231f03f29528150d4e7cbb084c3e02a798cadf1530361e7e62f32857c8840ab0011ff2491655633fe969ccca08b036b582645f9fa100309d8be83c99f0552a6e1507f4d647bc3b648d40f8db34ee40c58023b3d3ebb4a0331527439f49597b9b224e14f2ac4a4770c624695385d7f64adcccaecfc3852b0032adfce3e256fae1daeef4cd7bf335ebd62742a6c6973f6634cbcae1690288d9403b5b142d33fea984633ecb1ea82f75eb858c3c98eb473d6a7a84be3f43bec47d003e6013d2f72a40efb439c13b336f37ab5654cfeb447076f49e36a9dab13c8fc14037605a5f952be10e97b633a9607c26b3b96078104e477cf8cde892be61ff93fbf037f9296241ff665596fd8138d3484007fc348b16c8e31c823ad973ccd4191855303981d29fcf9adba2747d87e3f1732081e0e48a4836cb4579c932b0bb5ef55130a03a359141b4742127b14b61461eb3d96d192555e217cb77ff0df29439d36bee76603c546f40cfc81f37eb59e13920e5c6237ea217f180fafe0aa45fdc5f5bf32e9890363981c544ecce677f83990a81ff8061418f84338fb8e30e3c4c3d41100012b7f0384cb848d1580a46a58937626bf56a73d127a75fc7197d3a063d880bd40f98b73034a9240a365565f8f7148b57e30aa20ce5caf4e5356c6b0af6a8c05a1a57ae226035c667f30be98243b88dd1bf9c5d26e77561d7d00118230960afb719675353c4903b1a7352b2f5411075efa8561ef0db6135fc70efbe03875b31c07a24decae4faf03ae1af30a21312b72edcb045f5268155e027b81270fe04dc2921f94bb804705b70321754bf7895b8714445d33ee8983b68a6ba8fdd6d4e100c0d35d03c09ec29a0d05581e03289f70f72b62a4b6a7b740b570f6e9fbd3d8d85b0d1b19b4db83ac2d0007011bffffffffffffffff03b61098e5166791285ccb4545fbe4bc29507715b64fb891fa3bab0bab20be2d5705581e03c456b8dcb5c1c109796bc5f7ec896c7d0b0c256197592eadf8ad978b9004010387ba7b2fc9d36775437342253750bacd2eecbeddfa3e4c717566a2693404d67201410703fca74b97ba9f99c9a5f1d24e62a2aa77f449048d1d74cc59293dd784331029ba03c45ca6cb8cf5ca1280be0faf9f479674de2a3c3c92905cf2e7e80bb8021538a105581e037a66612ed74027c8513f633b91366791c97ef77af38f950ecc797675800c0246d844c1f022e00459089e60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e4b32c109fd08ccf9742c7e09ffa8cda2bad608f5379698a7c1f93a339aee46b64736f6c6343000810003303b776dfd41e78ca7f740a00d423ac1452ebe96bd9a00d75c1faa2a8e64c1e803803103d7ab05a7f5d89f3fe7dbe229d08a98f6558a4507caf31dee75c3b98f7d3c703ffef0fc4d73c38535f9e1a48686768681a90ca18a7300ecf1909fc9abe35913803e04d41f196e53480b6e0759cf00ce5a255095ef8c762da5eec827e121fcaa6f3030c7a22cff5ddd98be69faa18ac59f6313cbc76d828c7d8c21d05310d6c09a4da03887bd58116dbc1140a65cee80c9bed1fddef036fa53d3eb74a1c35a5c58c5ad5035bc620f5b2539ed7aa3aa7f201a40bcd75eb7b685edee59d248ef4c2a103d35f03cb74d29bbb46c6c9f4c8dc5841373563e6b2a69c203a6ece119992af1f0cac0203dd659280c2eab0f28c4e9d2244b0fa7ea596fa505ceff3ed77536ee672c7754103e2f5d0f1f780a3bea4c2997276b22c06d96d68222ac3bb5188b3f48418946e700361b2076bf93d3581d3ab9940708e5b51d3cf22fb16d75df50f09a6e4d161da1203ec4312fb18a6f47eee0d12c1901a731ae7bc8306b98e301bca836dc8cec822a30373692ee58ccf70a8e57972031ffe54f4fd4e77fcbb70a8e9979b68027bd4f606034202f22bd803f04d8e1c855148baa5751d58548dfc1724ccf88d55b0a55fe23703b4182116be17e3aa31c6c83ade7d498956f67dbe8df2deaf42192c2247a9d714033104fd64618c4d64d5ebd97b4038aaa99a43730718ac536177dc73e3f7fd92c003bfb86c7850ee7ff04bef68575ee18f3d257686fd3a507d157dee7d5262ae2cfb03a63848753a037f887ba5456ebff86b9d8bd449be4f3d21b50327ee71031f2ba003d3f922df2d295328a5592d589f859f56f4b191e76205c07a070c247fc52d768f039e4d3519ca6bbf0da8ab54a3b2276a4bc1f6d6c2bbe65dec495c58af60b0501a03d920cdffeaffdc84298e14ee0dc1b0fbdbdbe708384b797d1a6a68490c3a467903bc6cfbc2f1f869fc4d5b0028fd043c4d53707c93d13f6642fe7b2c4066afd2a9030766e2723cf153d9d33b25be72664efa9af5c15874f0229ddc2bb02cae1e3d39030a6c355344dd5a02dc2338f47d769cfaf899b4677f8cae2aa14e4860b956ea3603dd32094868b0b6965b1e2e89a457cb40c11ef39020a72ab93fd31161756dc76203fd0b2c5cf6a8541a32c1adce0d7025974f60c19edeab2e6323ee445c977ea6e303fb41b3b2795b0f375d49f7e6d62f34a3212ff94bcabff32982ed364ab68d43f303a80e6a3d02384719eb7d1a513ddfa0f09d21d0c79162aff76e5cea40cfd2f364030c4aeef571312e3596d7d2d4ccd42b4bcff8fd66a4dae777e728a49e684463930306f4f911aa63eebd49966818a0be436e76260d2afb79f4962c672e6108ceae0c03f47e08ab0c5f16824ba845dc744cf99c5bad8e19701f22cd027ab405eb05eefd0371d76ad2ec9a9335bb5ed29a7690e45e93a8a795bf202c8519dd6905348d81e60360b4749023071bb2f660777fdce4560dcf860f6f06864d094bd469ef4e4ead8801410d03cdb45dabce48954cee4c6822d876ae87b5ce93c36c8124ce4157da550894bb1303fdd76adc0de4cb310c9fc2c7ae6d5e5432f59a517fd30d48fa4a41e7c9e578bc00581e02df5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d48154eb803eb3f501998126bf37bb823646ed3d59d07200581e02ab40c5ee046b58de13c072fe1aed84721795935904da9446546b3b06e958207eb7e6b30a27cc783149dc8e2d840a5354c129d3718e094d26acea6accb209320219880000581f03f49a358267a92870325127d17a8aaf27cb41559ff9538e5d629e99d3e460582011704d4c5e1af8178a0c9e10af13fe4f549877036f079cca9c6aff23b57ea19400581f030c268d57d5abd19bc0fabe4386ff05164e443e267901ee1b0f3af8cd89e05820bbc0276cf88777b13e585765c076bd7f0c7a916541170a5d752aed07038efaa5021910110219ffff03b6ebc8b0995ac7e1f9a0ab4a480ae329e7d750b8e0914f2e015a62cf3a5d671a03d0f4f8a1a7b36bc668169697998df012628bbed6c968a98c8dfbe1524a71cea10219ffff035938260213b3a8a8d0e79f3c7387cf5f02826058a5fb1178b5d213a06b267f7c030c8e9e034112120254d3fee66ab1e1a7037113742d8e8dda709cec2d29a7c39e038c6e1d5ec5593afcca207c8823e980ebc19c416df7d77bbcb1fa3356a3c3f1cd03311215bf5d2d86d46994b96846f89be7ecacf1081a26532e9fbdf0ac3e0c8f610317227c13ba3a0ea599737ce9c69ec273188c993619ab3f619fe35f973612963403d7f1e0fab74e95e7550808ed8b2daaab00c4737d3dcb919f30927726568cfe1f03bf3bfe795e974c635e4cd82bf986888257fd2dad2ba8a0a36b8911c42c441929035b47b0683caf882f98ac959e2636824f3117f309b29b1f76e6f9c04a7dfc508c03deae8bee296a7fe351332be94b7691d252c9d1fee7ba76885e1b31641498f6ab03113383ea9a2e62d518b280195ac6bd05bbc8be789a1f0420bb98678b4ea14aa30350a483415a83fce740a85753638652636dbdd74f56c897c41c600ad512fb4a8d03a99b91a468a36708e394250cc759377a90e5f69a3b7f33bcd317bd52e4b411b2034bdcf2945c3cc5ddca82325cb54672a08bfc1dc9b97b0f486b61466f7331e5bb0219ffff03736e8c306f567fd77c93578a8c229786e28103f5c581ce133d1e2c8abbd82c2203e1e08a2fa7e1340e2aa9036a755e15722108d0fd9b2a8e106cd294cf962f83ab03a58dd5358dcda89bc5b9ba3fd21c64c1878f57b6b129aac8728c6c11b99bf2fe0383b548124b84f2b7f8c905404ebbc380d53bde8ac0e546352e83afabd4ff2457030fd1ee597b2012072535770ded049632c1d7f532c87b2154bd1254c487b8827a031e030962ba3d97e820f06670b997cf99e2620e0f972e5d3f2d27595daf9131a303b8f0db626c8b83cbc8f2e5f852faf5d7e9aa559daf55ffa1a094f865c84546e903637849a9a91053a24969f0a1ada065a4469fce19dc94adea0aae2807748f992503374afee314734af1a8cf10a70081a147f7019e4f8e8f356b9ba5b67b6dfdc36803a2eb506e33f47656390cf283c0cd78a39656594e94a4aedb2d20feb4cc91324603dbc106c02b244daac1b3cd6ab647f3fdb78a62427a09c6700986df73e17b58a703dd82a27967ac0819ea833f6dab13d596ea97a646ffdc5c469679a521b984798d03559a199720f4e7b4e687ccc8bea3b433c49f1f565bac0b142c1987c40aee709403f459d953e36d7be97ed052256d12f7666353782c8ed38870d31aab82758ad4ec032d8d69750493532ba1c615e31c7e09a4dc57c869248b2172e393a8c0dba3e281033484c1fec0639d7ea85e0cb3edf974002bc2bbcf4a64d8f856a2dbcbc4fbf57903020b61ec8ebc0f60be22d6a5dbfd808944acbcb3c6d8df4bce9f1933a506cde50334206c7c74fd703ea8f50afaf42b655b23249b281e73c1ae3e7d337044c11c1e0384bbd5f15f8581d19dcbf951a7983986fa6ab62bc9ea44439cdba5e2a721e40100581f03eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d054bc9d741501a20f962756c95bf906b4abffadcf8f00581f03ad6d83608a5206d39e3aa45f8b333595a17803480f76d5183ab3f8af22f05820b38665720c33830ae08891afc8b9fc71fd446506c14ab2b798fed0cea91384e500581f037ac073608fd2e0b856801b3c35d164f1dcb0530366d9d8036f12ea887b30582055f6da738b9692d5215107ec5ec59e3d70345ddd4809ed007ff3eb595494b6cc0219140100581f02a30385ae3c6798de8a54a541c1e4837af63db3dcdf35d9ff5e4cd7f4b13b582064b0d6872900ca969b8278b4ce1b003fe28cc890a92374f3a4378da9ccd90f5500581f0228ebde0119bebc4fb5193cc55c239de625425d450982a41daf44a2b96ae95820d83912b3658564d5770289d585d25f215ce442b92e4ee472c126169eb4b6c58f037ad427c1ef742d10a53c3016c97b8e04dd9b54bbe0dd6236df72e59d37ed0505037b7e6280438cdfe3ad2bf31d0186985b100ba9a5f0a1d262439dd14440ca67f403b8a532cee2ed5ae414bbe360073ff1fca034c9687409ce77c6e1c0c4d533d88803532eb7280dc1d2297f8243c55900f74e604cefbbd63b639cfb295d16e8dfe43100581f023ef6223b937cc9624edfcd6791478b153c3e34b1be0e03e7fc54d0b35eb1582030fc1aa23b35f30d1df6831835b795449060d80ed74966448f857020ba652d280357597a386c323bf378b9c966d43e5e840a6490056816250a1ba1a7c546973e1f03abf0659eb6dae79055b7b3c1c4b92a5b44b1f8a91cbcc8186ebd591f2ed7b77d03e7025c3c2906e95ca0debe017ecb020bc0999e6ac97450cdea4a617fe75269ab00581f024d9e450b79179ccc8f8d24c55c44c2e486ff7ce337982ddc9ed9142daa7f5820990a20fdc416977e78d37420a19f0578bcb5aada0c576df3446f031a5256bbd800581f020c7d144bca17fe2ae449e34c56d02a287069d3d82ce21f275fa1023b82055820cb3df6532285e4a0d2b4b464cf44a168015da9bc1c3a1c0b11693eee8991d0960347badcae697fa7b1c63cb5babdddab7332faad70bf2b47038185de05e08051e40219ffff03df5bf662160d9f4e8e1a31945e4a616350b2dd2691e6db17dcd5fa18a065da5803691d110bf200cc4428556dd5000d49a6b72ee525c7464767a4561f7a910b838203f765975b67127087b074441878a928f3474c1f5de861fcd56dbd5cf633228c0c03b60dd07faadd58bcd631d74a1ab302bd8cecc85c5c48eaf0e74e8ef89c9be6bc0219ffff032248b0e82b3b2dadc0501b4c55d945fd3050f61daa4c1ad30257c206cb590721032b14c805c093bad0f674e072cb78db1c132dd537892148847c43dcefb9303836039f5d67eb7a1a995f59f0952590bbf8a706779f663736b33b43a7f44ae13e34040316249be9393d25718f0c0e9b24aa12263a2296561b49dc8f2f5297b1819a7e5703c73881f0932348a84a5f703ec0837394620c5ed4e45492996a2b06d2b6eb8dc703633e45f092ae846ebaf7230dcbb6ec3d7946d22aa4114b38a0a45d42d669f63d00581f0251785dc29990bfb06ebedb5d6c1e8a29c4b87405eea65fb9400998ca0c735820c8fb697d4a2bc4d82ded63d30ab9550e722624a8b5754ce9228b765a04f200760388c135b4ecde1590121f233e7871d55f848cc7e8ab5b7f1b838aa0654a847a63039a0447f8ee6988d8f87f33b2e44824f190191a9129937361a28a30b6af0a8c7a00581f02a5cfd2d2bfe6021ab2248fa74f16373bdb3d1164e5312a89d7aca926d5e458205eee2a1463c1d656b4762311afc4bb3387feb1f346e7ea2325ee6ccf084372cb03135ab09066b9eec3adb319ae8f549430499728ec316c28e4e4afdd0ccab2b1eb03e17f9aafe3e89189c2e4c97318187ae536a9fdf684bfd5a1f5af059dd4fa822303fd58066b0e5b0fc80ec4be3f37dd4268e698af47e8f2fa4eeb3004e09e28ec3100581f02165dbd419a98687ad2ba49ad6b7b0094294da8b9eba18efd1a6e9ae563ae5820177a0152d9abf48626275b8451259b6eb5de3ad62157ccee682c09aeb3d9cfea00581f02fcdf277b7e302c5b5f20581f17042e29cecf6e6db85f9a137d59816a468b58200cb65c5cbd265754e9faaf38ac60026155750331c0add47d5d4511a305c6c11200581f03f7bf3c9c091a962c876f0fab286c412cbb73d5d83625707afaa83427e9005820fad83b07794dc9ded32071de5d2b8260cc737f8a3e1d4c0d78054620637b8f3300581f037c4f97d0cbc06e0df21760d3e886bd0c087e397a3c207534e5cad89affc0582036d41070e354bf0a4bac0943cbf6ab3346abe83d3d729e830e73da1a1f6d73fc021904400219db7b039b0bdc0d9924109e9a66cde8ef457e6cd279b62c40108a5eeb0301c97ffabc93038a519d0f7c1e6e225790b8509af0c29e658a5ac3d9d06dfda84525685fefec3703374a7f0cfb4f4076f97b05bd63cb8f27cc90f08e80e27767942af8f852ba332b03409b9cf4b7ee7cf47153d493f866a2e0e414fb79ed83774948ee543638ec9fc903a5771e15c5fd4e4c8282fe984735face493ab91794d82d0e8a99934748746e14035022afe13b3ea59064e454b5964169fc2381887960ae351cf5ad05da61050b010343e9f306848b4cb38ca5d59643d790be3ff92c0486c61a432b8993a20a5be3a803182f7055fd41fcca8043149c7ffda98b4344d431bc995b18d6c25c9fd6983e020399abd80607a20fc2f652b60e523a68d6c9ef6107831448425ce8a7128a2a439803d9dab2c640c44fe65c147a77396800dbf71b1466b154dc8a35aa1641447a1a6603478f66e64e1518790a142ea80d9390bf8d18208abaf194b69fdd20b3d707f30203f720a8db6bec6ff9f8513bd45b4740d29ae1178dd446986e2c2c513f66bdeeb00366ee60f79607d3d92cdf5405e7fc1a814926a737a79ab233907f01e430f63d2703cb778ea3bf580eb3f05d7f60e8c0a3251d389c7e5a8c40ffa0d05be74628ef6603dc1765a9dc94f1dee3ed9c73adf2e88a97717c921f9a1a00c891d38ac0321e04034619d06393a50dc9408cdf9cfaab6c4220218f34715bdc0f95c7e6e9dbdce10a00581f0214f0cf4f000fb9b25eba6c13e4d428815f07103aa03ad6a131b589bce86a58206afdb8c1c9dd8e17dbc02c98f7fc7667fc1858fa03eb410cf4d267855335163b035d30afa4f7c9d9f80fef85528a3f0919a425664fbeb43333418576ccd7f30f5e033df5ea67cffde1dd008be4f63935c3a4eb237ba136feac95b09ef50ad3d0898a03bc6c2df723e46e011a148c70f31c4e5fd4964e0d13f80f9ee3719c373bdc8e8f03899b8414a2d940f5d5ff2395476a2f4727dad188575de7d11334eb1c16b511ee036098bf7b5c49a4811d634fba224bdec2e90d6a82ad62514660549a8732b196b300581f037dc0bee4d7c9a54996d158e8c7b6db414ec96dc4ad26c94980835cd23d505820aee355c1077bfa629f0581a4840ac5fd16ca8b88e4ccb6b425669c23f3028df300581f0396fe7b1416b6cafe8685d42d7b0f7e02ac31d68eb103ddcb6d07dad9bb305820180e6c010b1cc33ba48c8ee23fd035967067401c8430abccd086e0750723c8ab02190220035c636124f1d41b41ccc029be69f0664e456450f39d39a38f7dc9635f35947661037513f3bd53279e1ba98b062f16359511a05906718f8042b9d61996057b09effa035a321940810496bc4cdce356f07fc42c99b758dbf1b1899a36d20111d7fe726903f2f1dbac6da7e6f9d4b3d44ea387bbffeeeaba7c7cf56625f8e1729efa3c29eb00581f025ff16b052de3a987c859efa029d546130b306ec41261d48a651f5e9b315d5820162cb0cce904fe2f81ea45f278905ff7727bed75a00e55148b851dd4dab1510403bdde46e244aacaa06fc98b786771e7a761983835d6e469dcc2b6ee0bc3a906650219ffff0219ffff036d3a9cff8236573490d39100d39401e6f4698f0eea18005b5140dac8ccfd9fb703f4e0a0bff5160d1c2cdd56f0425b2154ab02c2c7b75d22ee22f52b8a3e9c8628031b60a85e59733d99b48070346679b35046a957636e70e1b0ecbeecfd98df1b66034d250a6afe7289de0fae2097fbf37988ef18d55f55eae93506198aee3e38a7480318cd1e728edee48ffefc449503c6f88609bbf969da0d958c34efea131cdf35a603022a08bf0d7e90dbf218718b0eab9a3225b79f0d78674ff12e37703bf0e9bbb903a779b1216cc2c4be46788e6fc4688893f3efc113f5806022001e01cfa72e85fc035ab199f31ecc11fe3c28ab3ad73ff682eafb5230b745655e6537c3e93a5aab6b033fbe38c4477f607e69c4a52a95308961838b6f6234c4e2eb63a6333fd1f6ddfd03fea908177e4669575bc7c59027eec63e9e6cbde7b70aa8efee93b8b0bec507060344f22cf3effdfb9965100ccbf258e89940aadd8ebc0a06c3893b6465f813a239031b547d4d1a670bf46855260e0c147a8a7f08c7ff52681349ff20f6ac2c2202dc0348d9b7f3d8a403d10688c0fba8993008ae66ec13554c7f40e35d2f20a59bc4d503ba7a18bd45d00262720986ce690d5dbab2c042ed984bc7ddd6a23c2f43c6ec890343ea96185acfebb13e21fe8396ee6889c4fc5da467dc57995c830563d0ed2da303f3efb08e85b97739d1d31b5f94a2e12001258f77448d6aa49623e240619582a50363ce7768ca9b2b129f169784d85671b6856513b7b91e8ca37a011c7f58449ec103a5ba3b29b3d103471975b854d3b11cd72748255b659999f25e7fcdcc78ace5f503b7e829c2e342e4a686b079812bb97872ac7d26b88d24186a2d1be9219e4f636d00581f02302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe3999143084302404a039f3ff5b2f013c088965c907510ad1c737697528c4aeb83638142f61c40394482039c68cbc0aad46388be4d6faee5b3db347b221583e03b6942ccc3f26e9cadd7ee00581f02be73ef3438c7c5bab0dea3e9f8c69db24604a23665fa5e76a15b4c0157cb5820a2044b876005a964b55c13daaae729b88c940ca1637544f6adc1888c4307ff9f036a5c28cb8eec73bc692070f3546d286f7981faa13483a7b553fcdd7a858d2e6503bf439d84d35df1530074254321311030526cbcbe7862123aa428ef35cd6e63aa03f92fad0b1871555ee793088eadc58197cba86c525f0c72a0885a1c5daf90890100581f02704be1cc1ce42c53ab5b8351a400aa9eb6ea5c5b02e35daf030b64dfb6c6582025b8c7ae770fd21bff4d508d8c4cc672538e5fd0fd4ebf7b245037130a8e2b2300581f02ac8f0078adc631172559c8bb225abd085bd0803cc548f550d183f05e900f5820ae085441dade8c22d3ea56694b52c2b1f68b7959efa6f01c82d3fa2f462531a903b7c01a8b43f34ff0b1842cc06f73104cbf2c1bb009a6c1ac46bc4d51ee172dcb00581f02bde326b353adc196f893509976a4d7b106c18b7cc162a1b7817b0ba2354958206f6074888eec8a1f5a1a22dd86c5db0163ff2fd5935db99da17d3ba0864b3fb402197ff70387c15eb8c46537d09d5c5a88378114e2e381408fe130ed6246930aac455b0621032213c034105ca9931324bb3e4612cc4910fcbec91cef65b484f7073feeecd465030badcccacf27d51ac09748d58b27f0f2835fef8e5fc0833014d180647e2ef7e9037c3daf26b31f15c5014c879523b330059e3be42dd7b96db7607c002d1a8b712b0219ffff0219ffff03458b92a6f98dcac579733d4ed17b268c5719fdf63d7c7deb89ae946583f1369a039efce7272f080568f9701cd85816443a76e83511149fea23e3bddd46740706a4031ff5301b9a9f25ac0c6d0c7f1e52e2ed0e398dc2cf6f17c7ae37daf471ce28d303ab64a8f0f15dd0b491276328cafd0b34543a1867d9219f39bab873202e5efe3f03b33fa1d83306f74d64d01eb0e4811acaf3ec7883f0e32ca3d40cf4809ff1308c03acb64437aaf6b1fb8943f27fb13d9ca3bcd4f5bf538cb5f319e0b72aff9264ef032adc6c2a33075d997b1c0e1ab1d435e28a7ba35f55b024bf0de93306552f74b6036cd1dd0f63a97792ee48289481b0dd77d89a58864fbcedd77b3063fb6dc36487033a176db87c5ceb8ff9d6d907f105b2f5db8600abda999156cd59cdd776c737f303851dbeadec851922e3be205feb6b603eba085fbdd217a35866937f34f07d56130387f8d5764ccb943a41871c5a82bb830219113a5e3b94f8a68d4be6545e296f0c0349b01ffad42739479111767fda97cf7b35e310fea3a62d07082bb472a9ad4dd203df93c81ea12d540622b03bf05ae62489986fda09aff5abb3c975dcd31295b88d03910e85e5997baf45b16126ebf03a056a8b59c57c1f886e5869a7b2355cd22b81034653c4a8c426d6486e5d7246f8431c3a4afff37d9dcb0dfa5a3f76849a129a25033bc063e2fb8d3b8ddf84d93d04367e9bf5be167fed8fe424ee79a486127693de0349fb85556c9b25628b67a1cb7bdc39e4b65dcd3ce4d9ec9c0cc2cb99f145445a0337aad8389c5007c45565c3cccdf7109cb650bc10fdaf4d6c4fac6dc96899a73a03e5c9e199dd0a2ec001d07f54c84455a287f32f962212204938fad48a6f76941b030415a8923f4cc67e0a5ef2be54b58f5ec884f193f2f3c945806ae3cb05e82b7703d27500b356b57d1898a182263f1de7b704ee0460a79c9fcd9d7119612999a9d3036d56180e9efdd8052468c21f7dd8028b00b53ad1fe897cf78bdbef90a46ab43903a9fbc3e7b0d20d8f40bb9215c19475403a20b1d445e80781a3f8aea2777ffa72032a37fad48b12993860c81c76c34d203c65399f70eaec39da9021c4b4b0a4309503a27426451a1fb6949c3bc9f53e1e3b6c19ce13a4861974ac7ea8ed7e56175d2903050b6840b60053e36b2ff3b5280f6dc38e0812611c3d50fce031a7a7ca52a149034164855f13106a9bd002227d37352b32e83f1880a7d088f9c883e01100c5c08703f16767f0aca19634e2251539ea2d87ab84b49e9c2aa62fb8045ff94ad03459f6030e38c6284f5006d1be09b74cfc0b35b79a91dd20413b73792baa4cbcde5efc8d0374a63ec95c40841f7f6a5f52bee5a97620590c8432823a95c696796c862eb50300581f027cfd2a380c21f5f336c7dad548421fb49d52e008038a0190d6fee271ea7d58209966680b17dcba63299fe29efd4ad48fefbca813be4c41a9c8ff9013451d3e0403c8bca638cc540392cdc219aba3068886a16cf13b4ba5abeac627c431069f0d3600581f02688840b58245cc40c76e03ca996fcfa7fbf3366ca5b2f3c6841e1eebf5875820ddc47862770268d3c782a6b9d8f209b93e137bb5fdf2cc808635903eea559a46033160f18f128158332313174d9d2d1607041a0e84bad163857376f49935485e2003abfb533e99c822b41358b4959d9bcf09a7ca37a5f030fc1f3f0a22e329ac51dc00581f023b36a98ba3467160d768ffc82ba6dc4d70cb9542d46e6889bcf6b5e0e93658209bfd1875f130083e688865ac7c4970f545e160b2588f9ecedb281ea30ba5296603da391532225b8eacfd89ccc1837eeca5587eaeb057feb8ad96e60ff6ea7ac41b031a65fb271afc7fd282bfe35c474bdb0f32cf512250b4ea7281b04f0f534ae1ba03bc4bd44b5af371371dbbb1711122377352e1d7d4cd104c402cab100af3c1138500581e039363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c70546774bcbd5cecef1336b5300fb5186a12ddd8b36700581e03893631588834649f6539032e316148d925484af20a5a2c937e52404990582010e54a996f40f3a9082bfbde554715d497114b9269574bbb179cc919ed0a916a021201420074036ae7a6a93f0f5c81fa8bfc512842995bf9350b47359529864f72a292ae06a07b0304f19cb6a3b6224d55ddb32263ec9cd8fe1a0ab4829193d642948805c7fdb1460370b6ddf953b4256c1855267a3cd7eb23d3632a596d9f022b155b8f0ea8ba4e1100581f02f1f553cd1e55bee217a679f6cfb5c148af80b1c62db7e7bfa70be995a19f582072b7c80649acb879582f59d0913fe68e5995c656c86b781bf3158e20ab2ac12103502d71da694f98b00eff787f61a4c832957cb2633531c48377bc2dd74a33863003ad168dbc18b35a4cc52f2a73e29b1d6f12bafa5fe5736d2be7b21cc0969f1c6c0219ffff0219ffff0219ffff03d2e9eecb0ee7791ebf88642a18c12cf75991cdcc443bb401ca6f578e4bd5133c03788e9204f888c56a20c44b9ce41bef31545827075ca98cb4364cada00994cf4a03f6af4de4735c4620aa94f782cf5f076311fa328b0647ff546d3620c2f33a03d603101c547b9195d91d347b513cc206fe6475b8a2169c6114c56a106d6b6817f5f1038e1866ff29a4de959e7da0ac12734ac03c7bf3870b5ae3241bb7aafe54d94c8903bf7d11debc69d01bc7961470566bfcb1e6bc7f232fdf1d1ff4b832110b6d60f20389ed789ee484578f5b1b84e2a9386babea22df4207518eb76b2b7aa4e020243203eb42f4489095271b2227d08e9c25f6a936d33a589571b519df7467dc348c89e603184157afc9be68ddd3603891eee20d93a3d3fee076630e0f51c615d1d6ef11490351a20c3ae1f51b3084452bf204d5b4cc4059c5077fb48194fec8c2ed77be1c570333381291229d14184165270036dd78d571615c893969ac0700efbc82d605434503d4ffb7214bbdd883676e437f091d9c11c29c82fcc5612d878d27ae738c8c4e2c03b482fc99467c7a148c5a28e5ac7096f15b55491a84db0408515ed1b3532587d800581e02d25ea53cab5eb4dd1d83e94f8e137bc2ec22c972136bd0c3a73f7529985820edbc235d04ab93e00b12bf33f3bc7359a528f43f609bbbb700d4487bb28bdf8c00581e02469c189e6e57cc72e8aa8c012f8bdd33581b05aef6c08972b30cdbc72c5820f9bdfc6f650817be268cd0fe4cf5bc7a73217ec4d5bec08ae85f6dece544edf90219810001410800581f02b36f34ff333c2e1539f1df7386358dd080d8040eddddcedf7612f76b7cbc5820575333f7844da375d1e327aabad2356ca1ea3a2bbfb6f786b2ff80f30129694203d0d9ef51313896fed905eabde68a48ea6fb8bd802d6304811c4c7698250de2860339c4f73220fa0cb4bb12bef65c00b74def32cbf632e2012a3e2d32357b2371b2037d9c1ad2ce235e31be1eac1888047eb5479328b3b837634ea4fb67447a98bc8e00581f0291316c59097f1e426c58b3506d7e0a53c37ac328c892262be01fefa8be65582077c3e87cd309b33a5aad4f8ddd25182e8d5fcf2dc254e0b4c7fd8117c8dc244100581f020efa7f0fba00c993c610ddc6cb781aee2c0c1f13e5ecd15272d39a15a3e25820bd27020c26ca2f1643f17698354f46d4b76767aac027ffea7c958c09c755584700581f0232b3c3cc4ab0aed097f67b5b163eb67887cf158e698809728110d6d7f7cd58203387cd6f675118eb325817238cfdaa6e027b8ba069a35448f5f3a5d89f35f07403812021b809aa91d49dc60e269c6df6c9367c4ca27d2e79960bb01740742fa83e03aafcc713f7390fadc2c6e35fbf7f0ebf42a32b3e937ab8e15385e47b43889fc60219fff103dd445f8ab3fd571f47a2d7b9afa3e6f87681053c0c7d15887d292d467d002b6e0342c9af7584fb17a2f12d657d2377ffb88161f58ad9ebab726c9b0da11a644ca40342ee63fb81a4adbde94e8c4a829b8d66d0adf331a53768e2d760c62a301d9563034729462a0ac5f1030a6c5b624120197eaad94b0e18770e1df594be3f9923b2740395615e7529748f93d220be8df109499b5752d80893e9042ef2cafad8ff5b82be0336145d2bca17dc8edeef1622d33591e444c798b4f222ee3e913e14e7b859f65403fba2fdbff939572e5811df09374fb7196525565015e78e20d269a798d1da32e8036cca3d8ac2204ecab9e87503bd645dfe62e087f8d92f06f19b06f8d14272b113039b92b295a3cf7fcbd9a0cf1707151979f7082962e50d0416ead62095ecf562c7033cc8b1e0807b39339a017c503d5f0404d1a1e5af5a22a1eaf9a7f29b0f9de6be0394cfa9f7b394f19e523fd2e7bb2c259e01e09ec5d6ba7270001a0c9f9c254ccb03df367299fdf84dee821291aa70b72d84a07762005733fdeebe285850646ea0ce0219ffff03f383f1301987111d370b7a4d58ff4187cef80fcfa6d24dde595aa2729c53369e037f8ff4a59652e3fa354ad20752d3277aabeb7711abe2eff9d890dacd7e91824c0350677af9acbea9a94e2ddf1e64f00ee38750ee920bf1d59006a5d24e10a8ca8003d0f9c2e5b7288130ef1541267348daf772bed9a1c87dfa019e48e19177d5466f03ca98b2c29b4e7a2328ca81b0d7987c4a39114e5b2e29836e33188a5a5f219afc03beec35496cf2ad01430725550fd84aff389eaa557e704c87988a9d1f3624633e03ef3489c32c65da18f3986d943ab51907f21b69b0cb8702bc9e637b4a9a4229c0031d9737c7202b9bb6187dc5feda9553a574cba73d8b7a7dee2090bd4cf2f8c2640219ffff03a6f578224270ae4704eda4f94e920effa200ef2cd5b485d4e62bbcf25a8999030375a6aea7e068a4c0b64207e61e0941297ae9891a182a57689d584e0aab7a3d4603a34f31046862e8c6b9e0636d708b2bf7d3d9d77e444ce027fd0de8f06ce7928500581f02332c09d93caa4fc794d2d8e83e3a80251c598a01dac63cf87460906f30d7582094e2c1206c5150d28ba4ca486b9f922fcaf0b2d3857f6a1eec9325525ed0849f0314c4c7d3210765736b3b06aa1cc8aabfb4203c4df6cf33189d1c6db582f16fd600581f0218321c0ae46e3871bae5231e77865276d2eca182a0c7be9837a0e644e7eb5820935cc6dd5e44f186383b6a782cad3d7f611cd0da0f06540969c1815c0025851a03e0333ecea16ca8a46acc326fdefa033c0e8a0bb30c0629c2ffcbc57afe32cb4b00581f03420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c22097753054987e300fdfb06093859358522a79098848c3385200581f030bded6991b6b16977780e2c0830ba9a913652047cd150abd0c7d65936ee05820b0aece74bb0b68075c3b9edebc4b0765a312d90e792f057387ea1d8dfb267e6e02192008036c77d38537c1b2fa15768c2121d6c959edcf774dbcb7b8ce89f2b79aedd11309030f836352270fc832bc3854e1d6dee2af6144c51d78bb5d387c82e310e4af7b2f034fe102c665f24bf7f3b30773f40d861b78a7b0618250f6c5781addab634df70403bd2087d96b29c79134b3999b15c773cc914f89941cf7b2766a78a0de276228ff00581f02518e32f94a4baf1a773519ba4d3192debf3121c9733e1ee6c21695c69e0d582054fef7d6dfe9fde947f7ac5f29dbcd95ba2d5ce640e1dd34710098bb5b3e027f021923f703ac3d19f27d5d9f3a65258c421142285be6ff34b6fb13d255648b7cd4bafb0437032f88cc0459258107d7145cd461b2cb663f421f8de63d4bab6b0cede5750f227103fc828281be2160d0cb002b82d4f442d83ecc741decfd1d9112539a41b80d217d03989ccfcbf2ad0cd71d09cbe1cafc6d62d16369cda1a23c33f54baa7a4f9a60d203f8fe1f0c22978860245a95d9bba6fd113ff09035a9836ba33903279de4e74679030d2833aa1debf28585f92fd13b588849a30a794ef4c9f13a0a4762f0fff647a20316e22e836b26b6fbff96d9659bda40b54a79af5af2731a9c2d196c5cc560169003465795b816b17bb922f44884b13e0f399333b60263b58ed4759c944b2c60032503daa5306a3629b9777ab1b36c6c665b5642533c97b7d8edd11d81609c921e05de03601ea34158a83b3033df5d90abc992f5dddf9e2eceff58ccf8fdf98339cf90f60391fbb6ca76b5fd4c7419c51ad937576bd5d2eb7c731bdb6e4637379f393986c00375f715d28ff1e4fdf86c91fc9294600df96757c180b3bbecc9cab3a1932fbf2a031c1ff97b4dcc74f52fb5d181a980e3c8a659868ee550acc16b31f185b6a0b88d03a80cf208e875c9d4c16608ea3d02e9c891a842d14554d14a634f84b1c676f5fe0219ffff033dd6682e3eba65f2c777056c80e8c8107aaaa82331c8292635f35689acd89156033c197821c33ab37e0d31b43bf9d722ee498cd9df902b923d80ffcd118e719e0203c8606ba2be0db6afbc20dc06366729ab904b8da0f58510ad75aa315a459d5e3c0331c98c71326afd71aac8971f10f42290fe16c7d7af12ae4806dbc1736b7cc48703bdbe0215fd98960f957b4321ba58b5394badd12773ab60d5f5556343072d275203f4b37ffc04961d78750138594075707900c136b15679769753267a589872d97003a2de80f3ae7e8afd449358021fed4d581bd46f657195435d64527ba8656c5aea03c46a627cac32918c79da29459d5b7aeb8cbacca8c999609048122939d72c6341035be1fe2698789f8d25c8e0fb176f0cda6d9374fe4cd3954aea6a2767e6dbca660361df175b3e324f6df1bf7c47aedad47e63841eb0de7b61f226cbae3038df0f7f03f098ee3a601800fe1e2432e2d508f30c18d21449ff1dc4ff900ba69c665bafe3037e39e92367b78edd713ad35049db6efa4ceeffd88d6c438df019c1b660749623038c1b06a2f08bf5fff10a51f12e22ea25e6bdbad5c5efd2448d9aaae0371c6ef80219ffff03b3aaba3737c98eae94f8ab98ac0c4f96e9c812ef8531fda362883c6552a3c9c7031d5265c2486da2c97ec2dd64daa6d9b15cc85868fce3a3ed55e2ac140b182b9f032136b6a82334c40c21ea55f60661b1c336354f4e37f2a5a8bdfbab2385a982fb032ee991353b410cb250492b2a3f9a25a72a26635606bdf2a231e5dc4092c00ab60387942c594c95823c834bd4f09f1117eddab0d40a201c982b7f2cb252d3c0492203101d53da5b84f181f2893c970d6045f19602396cb7eba3013e47081b565df90903ca3617c4a15c8b7148eda7cf480f0bdfa5f79f192cdd9e88501d6f1f0aac9680031be799694559aac84f79819d9e81bb4b7b22bc2b971b00ea097f69ee755874d0032481848e037ff7236353c2af4eb730fc0af55349faac4c5b818c95940596ee67034322df65082ea737c152f05c51dde487880c87062e26d662142614dec07505ec0316e81628802212817223f2447dc793eed0357d9af3a7374ec5ab00c64c7f361703b2a409f08d99f9f4da9c2cd928f1c66c11a174308d08dfec4145343746ef0c71030700c8ad205794ad6b1b7257b59ed5c50596a504cbcf55df145b2ce71de09a82035d6db9e676f648014b7eb1736f25ab9efaba8e6b655a6953943c8c897c764bcb03d6a88f1b5cc1702097797c5acc16c2af912084faa14ccb27eb32b388581e4c9503496bbb994ba9be0440cae21c6baa9aea18ba0c90aaed5e28731ff6d1447b932103e8f992a411fe044bb9633c6cd1c65d77cfdafc36be5718f2eff44836ece57f540396625adb586cbd209881d5a1946c53470f46d038de32ff97a66d670be39c8d8e038481bb26a8ede81e86c7cfb894056778705cdaa6ca3a0d463baed473aee7d28300581f027981fe416904a37d5fddc5884bdf9d39c2b98dafc3fc329c9c7c84570d155820cbb857b0ad02ad3d5b889fc30af25600e9b45c3c6ced27e4ecd01fd1cf8295bb00581f02cb8ece8cd1863bcd6082d65c5b0d25665b1ce17980f0da43c0ed545f98b44398968000581f0270f12df07e54b32bb107de0b8deb762993de1885c095289a1362e7314a6e582002b678d175bfcc7a117c3a2e6fb21870cb31ccd6d06265256197c505262f319200581f02dd267c7fb9d56de9993ea46179807348abae5d4cd01685f71237acb7c9b65820402bcb47a9c60c40bade148119f8fa405b033c6f0f08c147057d3ff3c4cec28000581f025749cdd8ec0e81b5b9a4865e207a0b1e80f4ce7e8d953ed8a0b78bc1e55b5820b93083863fc460475106ecddccf55247afd3df9c80ea535e366630e8ab95effd03a327d87b46763b01582c8dcaf0562bf5d48625577ceea6442a53a1dd1bae4f7c03710bac086da25e41dcbd27921c6d457a98464e497bf4d62b8012ae165b533f4403958437a668534ce9851c221c20386ec58935228359daf1ed01c11c30e3282cc103f13b96f21b31ccf4a372e92f70f9f34ebbbf8fa9174c1903de770303bce5067900581f02e7bc56a09754a5ec704954e45c8b41599ce5dd924861cc476b71d13d8c215820de67a299b67c8ee7abb5bf8cb01fc4b880293e697afe01a1b0dd8bcf48f6e0f20394df18ac1c964d8db89485877d30d2a03f3cd6e0eaf0f2e03ae578ef3a8f77e900581f0278e2db311af00875ccdad8578fcbb862e901988d01ef2ab16bf4b24e9e7b5820a7f9b373ba52fb5086baa96728b8bc8cfc0f61487efb7ee01d36b6212200bdd503e2d458862c75cbcb4546e8248f2514d160804d709a1ada0438c849c787838e280219dfff03806ea6596274d234e82030012dd9889137070ff247f32e77cb382dd36841b1de036777e629ea68024a7b34e252c6b1aabae0004c749f0d80c4311464b9344a44e00354dd3686bb1c8db19ee8954ae451b5bdd18b790bb467fb89009db3ce14c74ed303538250fa694abae8ee58ee59d46f55aca94c111b6839a9e3fa0e1092dd03433703867961a1965e226d661bb2dd3e3b41dd46dfdf2e7dc92d4ba0cb7c4f3c7ecb5103310e932acf2772cde36cad309c4af73ffc8f34435c3a9b79e64cdf6b93e3876503b0ab4e2932e7fab1df68c0cbae8a607f0de732447ee2e5355428e6aeadbb63c6035a853d2eba1547bac3255f40e0797ddfa68d4d846b734a47df29ff377e8f7f0203c19726ee11f0b8f932bf96697c61a99fb8bdc0be4af491ed47b6a596736040ce033434605f47ac96659214daec0a0e008644e7eeb1ca49affd5d72e29df992f0dc036b53806a63d5d6c6d641567e385616f45bbe822ebb6937a618c51a83ab95f6b50219ffff03cc6b73ef0f1a8dd9c2fcec57d18f86e4ec60139bb2b7f2fd72d907453f216df4033c9c15c772299688dff4925875437d572a2d52970871f7189a26a3b22545eada0219ffff03ed2a0fa0bf2a6d0933e5f409ee8dfa39bfc969faffca50b297461f2bed214ce603d57032410cde6bade4cc5d39181f0befca7f742fb749508498c11ef0f42c559503ad970260d1066b556259b9aa6cc3452ea8db81ec7aae89cf18e1b141151ef754032988a2c03142ff180972565e5dda41e780d3321fa7e3724cc602ea4dad712c5803af98f499f07b4d7166640f66b9726917bf2b9da8628e90d69ab80c47f8987a65030fc22dd361850b4cff66b27fec5184f6f6e321a5b4c8c4ae6cc02cbf74dae7700310182cef198fbf5c8be8ddf2ccaf37ba1754a3ad8ad62a74641af057c1833b2f033c22c47ceb087ec33aaba8bfc57ef868973625afe22f895b8fe8517ccdc688f903511f7edbd1a8bbc81971bc2cd98570398d0734072a6a4995ddfa67e6f1d4f1f40315b30b643d7c746a386ba7b17e089d12eda04f094778424e455ccbd868f500a5031564b1d13660e5147702ff7eb685a5f6e50d66ff3ae1e068c8fbefa8b82be90b00581f024fe7e3423b2f121e5723ec0e8b691e2d675ead6c081c34dd9031df3d83b85820b92170428fc8a4d044593c5642137c0585d00b33ced1cc82ea05aba0879f11f3031be47ad0886cc704c1b1e1ee9b94e456a061d48b0b61446b09df969eb18826dd03c402f37f6a7508efa31e0df2c2f3e3ab3da2ea5c32435427339f1393280318bb032015bd3ea2bc947063b32f344e62dedf0c394bc3a31d1649a138b2543b8f148b033ca3f80714aa06ba282e0ba54126ea0cf34d44eef7b934784781e41258c1dd7e03807a981aea2b23900ffaca6044c77ee1504838298c61602aa77768954cda99ac0372cf08cc39c145db0663ac92019126cb9f73f22d8b361fcd153074a53eaf20da03cb9f49d983c68f9ef6028f3dbbf80f1773832bf72b237758d1b43d361d83a62900581f0374680b7f993ced799d5ac909428e226dc5b572d2459df16ad0efc343f7a05820c30dedbc666e723c475a75755ca4660852c58fd6b648144abcb73b97415929b300581f034fdf621ef3e6a7118cf6e165baf6d3a3be6db1c45b8de10914ad281431a05820c4bf7ea0a6e196ae77cd199c589071afcd94f5c5e92a7c37a38ae7208dbec68a00581f03d9a0de2204fe3d13eb527c130f04f5ea226ad85f08d427cb299443abc80058208de06963079c02b22d0296053e505f5735589ba61188f22e03a3a442dc89a2120219014203e3cdd6e623ef4a4d33bd3e9febded6e3cea3d83c07cc74d86a85a47d67704209033fd6b206de3ce426069a5dc22d28da6f82e7b75551bdecf59fd0d62fc277780903c63044c02c5def1aefc07308a39d26a68cff1612053e8c4a16977d7307c1da9f03ca09e4dc5fba96945aa8713a663f7e26eb7e13a0dcfaa953be6f6a08660583560372e4d22e6d0a51560e500df3981883feea8a0cdea73eb3fc3b0e7d7ddd4ce5710219ffe70336ba4d62a51ad2a5f9e0951173697a7dfe674a0764aee51d66dbb99416a6d49e03e6ced7ea7f029ce96387a24d3b6f9a76e876586006097a5af9d8ed3c9405663503b98d3fbc786b4fea987fb60bf7da2549f488e209460dd0ae3c4cdc092d3bb3ea03bfc8c2f88d426a4381bd179898873b6778962cafd3d2ccc19be2cd1ac73f0124034d1de09f64e930ffe7eaa45072bb7e1548121f1fbe675a5f525d6fd3b06d3bd4035d6d39af30a6573db0441d1e0ad77c69099df3290ab8ef93282fb6c75de3b84e034adb1daff0f0d8d2802e974e95e272a7943242414fd88c78dbe382d408de51a503639b67e76bf04b18c1702cc4d24a8615239eae642a1a44f0b22f53c809c63d31034285665fb38fbb6dc18625f836a3030407cbfc4f0114a99a0c289ac2f2a1dae303a1805414dc5d4b6897339a4d45662358afe5091f941013c8b9225987f81ff7bf0364fbf101a6b7b812b400ba4091ff54b4164705e665eda04371865c53185f53ca03c7da486e045b57375d124f8c76f1a35e8c96201dcd6f23c9bd04f3fab39966eb0301a1b923cc646f95aa6c507cd001393b3a2c308d3427453d64805bcde42b224303b1ab91a48630ffb5a831dfec0fc9faf7bc018d46849a42c02545eaf9119a98ea0219ffff037aaa03c45ff3941c60c8b10503f50961cfbba17f074e90abf33bf72054985bfd03eba8b468fa62c266ec457487b095362eea2db0c5f0155884f69f91968a82afb903653a7f16b5d95e517bc0f2cc869af9ff1cb97b3c4982c1e9d1e6d67547753c0c035d7a17f148b390465c35d28af9b2e2463a0948ef2d5ca11823ca9b72f704687d03a969052a9d3bd75fd48ab6bcd6876d2d3711ac59957d5ce26cdb956aa3201b4a0347a48bff3ea95046bff44794dcaa4d6552281811e9fcc12cf7f1f7d80cb57408035cb4d578680a2ecdf5e32af0405b2bdecd801fbfd90acb28c41041005689bbf303e1c35ca193cd93a803ed5bf27e43f6e0dc198e5e204dae9026ce8856cd0f30250219ffff0219ffff05581e03e0f9b8f4a113806f4398a7723a7cb71a4034ea331066a14f2862602500070119089e0219e31703dad0b2dc1eb1e80cfba99dc9f0bec673da476be2863c2f509e62e3dc9ce38f8103830182819d10925b5fcc078479b699550d9f1162cb8eabafe353fe96d92cc4ee0316f678351389403b40114c5e874064ba5e26f8e01544f5f5ca849ce26d9ffea10219ffff0335498ef99963859bdee54743ef78d7c092551a7b1b84fde02d7c92966ae9f3ee038b2bfc221cb9f8116607985c8f7ee3d63a74e994d845800df425fe0d101a8a18036bbfd3845024a075ea8fdcc5688d27b54a2add44ddf8197bb0ad0acd8aec96c503c6d2696e3a53bf07e93ae62fe86a10461c773d134c8fd639cc7e65b3e580a15f03556de8587e114499a09e70a52b2486d4e1b0e4b141aba412c3a13cca7711534e03b87d4fac2ca540bb62c452c11ebac750333d564b59e00dd1465718e141d1b3a8034fc213457fc71aa3f5fb495f4a3943135cb8adfd47aae508af6de2d1cbf97f0503f6496fbe44031aa85777cf4625ab5cc8c90081e2493765488374a2db2687e0ce038c22fa7a3866b16e6b30dc498a515457f5f8b1fd2fa8d1618cdb63c2f8dc89be03d9a0629f8e3ba1c6deb2247374a27f534325dce28adf6e59e43bc4e7afa55877036d76f09a241e1b5f6613be6231745300d080d5cc8ae009dd6a688fd72f79162803f05ca4660ae138111391ef0bb2b442c5b57d167348de80c985060de116634794038970137249cb00c94675c36d661a4fbfaff2fef5dae648ab62fee407121f9ef203ef91d0d4b544ee3c6f0b52266d5946db91782e6d436ec55037763c3cbfc336110219ffff03de79e66cf417935afdaf1c27a81b551dbc56ec670cfe08b28ce83b718ad6d9a8035344c6bf535803950847c7466a0b5cb81c06683938173309c9f6ebec46c420b103123a5c24c1074fe66ad30cd1db841c0e6e2b86fd60d1e540bacb6810bcc6c1b0036e7bdbd63539434e7dd325b6bc2eb9ec2462d39ff8bf0b4137f59ceecf20ac3903fe4bdaf513532e11bca4cff40eb72b7afe3a1c27e09c7bdd0f431946bd2429030343c69c0c7e00509c83d38be1e98de999c1a5a8a4063ada6ca46011aeaa72c02d0219ffff03bce05a67a258f971455d5aeb22417664cbae22af0e82039bf75825603155dc25030397f3499ed8d268f2ab18a16352151012a6d5fcf7e09ec1f9a5c38bb7fa4bf303c604c899cef823454e2595196aacde7be33c419f882e5572031aca9bc5f764d703b8a1145f54d43f87a9b9ec64ae49ccf882cc1a0351ab54a6a64a6b1432d1066903d2678ce1949ee997f9ba25a0d7abc9b94e3ea1c9340eaffc14c3a8498901c1e603b9508c65e2ea112991e207ca992712e0bf9c50b4c7ef22fe8e443dfd7ffcb26b034d8d090b1765785b0f211b3f7cc8f67c16b66b2d1e2f63c9cdc51c07be9d02e60316093e7f4a630346f6f2ed20bf96d8713ba71d13b9cdb81a6f8156bb528a9f6303b57b1aa06523aac52c2d8b9a604ff46d07035345850c6c36060dd0df4b1d3b2203d619ca50e1789a52275f531c1b11944d72c86290ff412c70050824320a07c01203a3d018ac1f5ca972e54fd119367e9a655e70504895f5c790241a4e876284d8b8030326cad11bd580ace0e7f7b696d1bf65d0b82b27f1b252294c02730262fd92d8031de297b62347c5f7050cf29706a8b90c5bf01c282382e759da5dae83821bb0f1033dd23aaca10a2ec98c1847a65d26ae1dd850bab672da23b0e28060670ffd1f2103d2c9b41b1b249d2c147890209ed1f3fa44025b83b9580b7aa6c26311d2ec2b72035f26b5468376877daa246e1579252b56c26fdda8d4eb5aa3f65c4eb5e0c4bad2032e26b93c8c5184fa6f4916a31a7a2a93158b879505baf7d7b2c035ab48612bef03d54284f54f2b1c350e50831c1797224b0eb30bb6b07abe73d73e1a031f9b5d540304bc4880a4b537ed30adbe45b7e05a0186a0e96f492cb3392e45d923d5ef0de70381e012d213d916527c5845be5595218bd35b2746c514c4981407708d90980d2603c5c1388994e59852c8d2a132583cafc6ad3a963071dcf6ae9c1d8ed8152e46b5038c22d9cf7d6f9930e88e592765bc7247d90831dec8ccbaab6696217e33510ade03a9a99b19f5924d11cf595f2e1f4e5504cbddbc095e6ce4cb3eacbb88a9e8af4e03b86adf10584c97650a3e3c4cdd95fadc886e8d5bacb12ec58f48420b1f88544c0330994836094e8fcaf75536680089e3686cd482546b527307500c947d5f51864503680fb9d6a20a13dc24bf6130d3f28717fa3d9d1521b9197a715a1a2073892a32035f400b38b2554a5d2ab8e616dc5ada02ac682bf92bf310f99fba466cf02d3a50034d2e2b9a2868b76139a215f6bc6895dcf560be4bed4e6f49e5e0ea243e97b05803f04225e9b235bf9406c27a77ddd7f614a788814bd2817d25ead05c79b0262bb9037ffc44092964095e8a113cd89587f61676f2c8083a36dcc6e2eb305d622c60d60331365b53787016f7a0e32bd85db05ce6a27c2379f5eeae241b98d6acffe8982a03688135e45542150be42c09c9c181709439df4572c3cbbd6314f302d479b66261035584192afc3430d1df37064b4a2a4c18c9ea8b25c9fc0ff6f01dc47d23a6c53703e6b41a07c6f1ac8cb89c45ace9121367db87538ca61d132883ca6a9959bfd21505581e03ea8af6c947afdc912431a49f696ebb63ce03f76150b146dfdb02a8e0300c04470140e0088c437305581e03d2b43e8c1ba25d94fca5e54fef50c0ccb836151dcc3d594dde54ea8fa00c0146b861654850d805581e0350965cd2d35483b2e8cc19a44c91dd3609eaee150f5a3012292a70af000c044702bda450a0730003801ce611f17ac8ab73a3c302b9dd7755d4b6f8796bbc29ad39cc3bb6012a356a035cef6be7f49f85d439e569f2515149494ed15d6525bc52f403bc23fa696dcf7801410405581e03cf9d5b435e66579e1ba8735c3f4c62e55de411a1b3fd8b26259fd5c1000403037f43a5d5b817d89897fe2e7a6c472113380a056ed8047109562503f82fb02b8c03e192cd70fe8a1989edf303bed644fab192d21e4ed3cf1ee4552ef7c327f178f805581e03c84913217495b8cdd4ea2cabe8df9291d7fa544a991ddc250cc0bd33100402031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e030dc04c044166d1bcb1c0e0d6c5e3974748cfa77e6e27145d3ff733cf9007011bffffffffffffffff04592ed2608060405234801561001057600080fd5b50600436106101735760003560e01c80637a952c11116100de578063b57388d311610097578063e46a636811610071578063e46a636814610338578063f2fde38b14610366578063fcca559214610379578063fd3eb81f1461039157600080fd5b8063b57388d3146102ff578063bcbc5fc614610312578063cf4c8a7b1461032557600080fd5b80637a952c11146102935780638129fc1c146102a65780638a51d8b4146102ae5780638da5cb5b146102b757806395f645bc146102c8578063b3bd9ac4146102dd57600080fd5b8063429ec49c11610130578063429ec49c1461021f5780634679b366146102325780634866e2e01461024557806354bbb9141461025857806368fe7d2314610278578063715018a61461028b57600080fd5b806319045a25146101785780631a47931b146101a8578063254ff981146101bd5780632cd00d53146101d05780633231a7f0146101e5578063404a698614610208575b600080fd5b61018b6101863660046125f1565b6103a4565b6040516001600160a01b0390911681526020015b60405180910390f35b6101bb6101b636600461263d565b6104b5565b005b6101bb6101cb3660046126bc565b61098d565b6101d8610a06565b60405161019f91906126fe565b6101f86101f33660046125f1565b610bf4565b604051901515815260200161019f565b610210610c20565b60405161019f939291906127f0565b6101bb61022d3660046126bc565b610d17565b6101bb610240366004612818565b610d55565b6101f86102533660046126bc565b61112b565b61026b6102663660046126bc565b61115b565b60405161019f91906128bc565b6101f8610286366004612906565b611288565b6101bb611370565b6101bb6102a13660046126bc565b611384565b6101bb611582565b609e54156101f8565b6033546001600160a01b031661018b565b6102d06116a2565b60405161019f9190612936565b6102f06102eb36600461295f565b61177b565b60405161019f93929190612a10565b6101f861030d366004612906565b611840565b6101f86103203660046126bc565b6118bb565b609c5461018b906001600160a01b031681565b6101f861034636600461295f565b805160208183018101805160a38252928201919093012091525460ff1681565b6101bb610374366004612906565b611902565b610381611978565b60405161019f9493929190612a49565b6101bb61039f366004612906565b611af5565b6000806000806103e986868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b8092505050565b92509250925060006001888386866040516000815260200160405260405161042d949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561044f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166104aa5760405162461bcd60e51b815260206004820152601060248201526f1958dc9958dbdd995c8819985a5b195960821b60448201526064015b60405180910390fd5b979650505050505050565b6104bd611c09565b8061050a5760405162461bcd60e51b815260206004820152601960248201527f6261746368207075626c6963206b657920697320656d7074790000000000000060448201526064016104a1565b8083106105655760405162461bcd60e51b815260206004820152602360248201527f7468726573686f6c64206d757374206c657373207468616e20747373206d656d6044820152623132b960e91b60648201526084016104a1565b60005b818110156106cd5760006105d384848481811061058757610587612a7a565b90506020028101906105999190612a90565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c6392505050565b609c5460405163522c209d60e11b81526001600160a01b03808416600483015292935091169063a458413a90602401602060405180830381600087803b15801561061c57600080fd5b505af1158015610630573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106549190612ad7565b6106ba5760405162461bcd60e51b815260206004820152603160248201527f6261746368207075626c6963206b657973206861732061206e6f6465202c636160448201527037103737ba1031329037b832b930ba37b960791b60648201526084016104a1565b50806106c581612b0f565b915050610568565b50609e54156108295760005b609e5481101561081c5760a160a0609e83815481106106fa576106fa612a7a565b906000526020600020016040516107119190612b65565b90815260405190819003602001812061072991612b65565b90815260200160405180910390206000905560a0609e828154811061075057610750612a7a565b906000526020600020016040516107679190612b65565b9081526020016040518091039020600061078191906123ab565b60a2609e828154811061079657610796612a7a565b906000526020600020016040516107ad9190612b65565b908152604051908190036020019020805460ff19169055609e805460a39190839081106107dc576107dc612a7a565b906000526020600020016040516107f39190612b65565b908152604051908190036020019020805460ff191690558061081481612b0f565b9150506106d9565b50610829609e60006123e5565b60005b8181101561093757609e83838381811061084857610848612a7a565b905060200281019061085a9190612a90565b82546001810184556000938452602090932061087893019190612403565b50600160a384848481811061088f5761088f612a7a565b90506020028101906108a19190612a90565b6040516108af929190612bd7565b908152604051908190036020019020805491151560ff19909216919091179055600060a28484848181106108e5576108e5612a7a565b90506020028101906108f79190612a90565b604051610905929190612bd7565b908152604051908190036020019020805491151560ff199092169190911790558061092f81612b0f565b91505061082c565b50609b839055609a547ffa26843b7ced045dd12994ee0e73c6f0904c3a4608bce58ae304d606035b079e9061096d906001612be7565b8484846040516109809493929190612c28565b60405180910390a1505050565b609c546001600160a01b031633146109b75760405162461bcd60e51b81526004016104a190612cd6565b6001609f83836040516109cb929190612bd7565b908152602001604051809103902060010160146101000a81548160ff021916908360018111156109fd576109fd612884565b02179055505050565b60606000805b609d54811015610a9a576000609f609d8381548110610a2d57610a2d612a7a565b90600052602060002001604051610a449190612b65565b908152602001604051809103902060010160149054906101000a900460ff166001811115610a7457610a74612884565b1415610a885781610a8481612b0f565b9250505b80610a9281612b0f565b915050610a0c565b5060008167ffffffffffffffff811115610ab657610ab6612949565b604051908082528060200260200182016040528015610adf578160200160208202803683370190505b5090506000805b609d54811015610beb576000609f609d8381548110610b0757610b07612a7a565b90600052602060002001604051610b1e9190612b65565b908152602001604051809103902060010160149054906101000a900460ff166001811115610b4e57610b4e612884565b1415610bd957609f609d8281548110610b6957610b69612a7a565b90600052602060002001604051610b809190612b65565b9081526040519081900360200190206001015483516001600160a01b0390911690849084908110610bb357610bb3612a7a565b6001600160a01b039092166020928302919091019091015281610bd581612b0f565b9250505b80610be381612b0f565b915050610ae6565b50909392505050565b6098546000906001600160a01b0316610c0e8585856103a4565b6001600160a01b031614949350505050565b6000806060609a546001610c349190612be7565b609b54609e80805480602002602001604051908101604052809291908181526020016000905b82821015610d06578382906000526020600020018054610c7990612b2a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ca590612b2a565b8015610cf25780601f10610cc757610100808354040283529160200191610cf2565b820191906000526020600020905b815481529060010190602001808311610cd557829003601f168201915b505050505081526020019060010190610c5a565b505050509050925092509250909192565b609c546001600160a01b03163314610d415760405162461bcd60e51b81526004016104a190612cd6565b6000609f83836040516109cb929190612bd7565b60a38484604051610d67929190612bd7565b9081526040519081900360200190205460ff16610dd75760405162461bcd60e51b815260206004820152602860248201527f796f7572207075626c6963206b6579206973206e6f7420696e20496e416374696044820152673b32a6b2b6b132b960c11b60648201526084016104a1565b610e1684848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c6392505050565b6001600160a01b0316336001600160a01b031614610e6d5760405162461bcd60e51b81526020600482015260146024820152730e0eac4d8d2c640d6caf240dcdee840dac2e8c6d60631b60448201526064016104a1565b60408114610ebd5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642067726f75705075626c69634b6579206c656e67746800000060448201526064016104a1565b60a28484604051610ecf929190612bd7565b9081526040519081900360200190205460ff16610f1b57600160a28585604051610efa929190612bd7565b908152604051908190036020019020805491151560ff199092169190911790555b61100360a08585604051610f30929190612bd7565b90815260200160405180910390208054610f4990612b2a565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7590612b2a565b8015610fc25780601f10610f9757610100808354040283529160200191610fc2565b820191906000526020600020905b815481529060010190602001808311610fa557829003601f168201915b505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611cc292505050565b6110f157600160a1838360405161101b929190612bd7565b908152602001604051809103902060008282546110389190612be7565b909155505060405160a0906110509086908690612bd7565b9081526020016040518091039020805461106990612b2a565b1590506110c157600160a160a08686604051611086929190612bd7565b90815260405190819003602001812061109e91612b65565b908152602001604051809103902060008282546110bb9190612d1b565b90915550505b818160a086866040516110d5929190612bd7565b9081526040519081900360200190206110ef929091612403565b505b609e5460405160a1906111079085908590612bd7565b90815260200160405180910390205410611125576111258282611d54565b50505050565b600060a3838360405161113f929190612bd7565b9081526040519081900360200190205460ff1690505b92915050565b61117c60408051606080820183528152600060208201819052909182015290565b609f838360405161118e929190612bd7565b90815260200160405180910390206040518060600160405290816000820180546111b790612b2a565b80601f01602080910402602001604051908101604052809291908181526020018280546111e390612b2a565b80156112305780601f1061120557610100808354040283529160200191611230565b820191906000526020600020905b81548152906001019060200180831161121357829003601f168201915b50505091835250506001828101546001600160a01b0381166020840152604090920191600160a01b900460ff169081111561126d5761126d612884565b600181111561127e5761127e612884565b9052509392505050565b6000805b609d54811015611367576000609f609d83815481106112ad576112ad612a7a565b906000526020600020016040516112c49190612b65565b908152602001604051809103902060010160149054906101000a900460ff1660018111156112f4576112f4612884565b141561135557609f609d828154811061130f5761130f612a7a565b906000526020600020016040516113269190612b65565b908152604051908190036020019020600101546001600160a01b03848116911614156113555750600192915050565b8061135f81612b0f565b91505061128c565b50600092915050565b611378611c09565b611382600061226e565b565b61138c611c09565b60995461139a906001612be7565b609d54116114275760405162461bcd60e51b815260206004820152604e60248201527f54737347726f75704d616e616765722072656d6f76654d656d6265723a20616360448201527f74697665206d656d62657273206d757374206d6f7265207468616e207468726560648201526d73686f6c6420706c7573206f6e6560901b608482015260a4016104a1565b60005b609d5481101561153e57611519609d828154811061144a5761144a612a7a565b90600052602060002001805461145f90612b2a565b80601f016020809104026020016040519081016040528092919081815260200182805461148b90612b2a565b80156114d85780601f106114ad576101008083540402835291602001916114d8565b820191906000526020600020905b8154815290600101906020018083116114bb57829003601f168201915b505050505084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611cc292505050565b1561152c57611527816122c0565b61153e565b8061153681612b0f565b91505061142a565b50609f8282604051611551929190612bd7565b908152604051908190036020019020600061156c82826123ab565b5060010180546001600160a81b03191690555050565b600054610100900460ff16158080156115a25750600054600160ff909116105b806115bc5750303b1580156115bc575060005460ff166001145b61161f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104a1565b6000805460ff191660011790558015611642576000805461ff0019166101001790555b61164a612351565b6000609a8190556099819055609b55801561169f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6060609d805480602002602001604051908101604052809291908181526020016000905b828210156117725783829060005260206000200180546116e590612b2a565b80601f016020809104026020016040519081016040528092919081815260200182805461171190612b2a565b801561175e5780601f106117335761010080835404028352916020019161175e565b820191906000526020600020905b81548152906001019060200180831161174157829003601f168201915b5050505050815260200190600101906116c6565b50505050905090565b8051602081830181018051609f825292820191909301209152805481906117a190612b2a565b80601f01602080910402602001604051908101604052809291908181526020018280546117cd90612b2a565b801561181a5780601f106117ef5761010080835404028352916020019161181a565b820191906000526020600020905b8154815290600101906020018083116117fd57829003601f168201915b505050600190930154919250506001600160a01b0381169060ff600160a01b9091041683565b6000805b609d5481101561136757609f609d828154811061186357611863612a7a565b9060005260206000200160405161187a9190612b65565b908152604051908190036020019020600101546001600160a01b03848116911614156118a95750600192915050565b806118b381612b0f565b915050611844565b600080609f84846040516118d0929190612bd7565b90815260405190819003602001902080546118ea90612b2a565b905011156118fa57506001611155565b506000611155565b61190a611c09565b6001600160a01b03811661196f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a1565b61169f8161226e565b600080606080609a546099546097609d81805461199490612b2a565b80601f01602080910402602001604051908101604052809291908181526020018280546119c090612b2a565b8015611a0d5780601f106119e257610100808354040283529160200191611a0d565b820191906000526020600020905b8154815290600101906020018083116119f057829003601f168201915b5050505050915080805480602002602001604051908101604052809291908181526020016000905b82821015611ae1578382906000526020600020018054611a5490612b2a565b80601f0160208091040260200160405190810160405280929190818152602001828054611a8090612b2a565b8015611acd5780601f10611aa257610100808354040283529160200191611acd565b820191906000526020600020905b815481529060010190602001808311611ab057829003601f168201915b505050505081526020019060010190611a35565b505050509050935093509350935090919293565b611afd611c09565b6001600160a01b038116611b5e5760405162461bcd60e51b815260206004820152602260248201527f706172616d205f6164647265737320697320746865207a65726f206164647265604482015261737360f01b60648201526084016104a1565b609c80546001600160a01b0319166001600160a01b0392909216919091179055565b60008060008351604114611bd65760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e677468000000000000000060448201526064016104a1565b50505060208101516040820151606083015160001a601b811015611c0257611bff601b82612d32565b90505b9193909250565b6033546001600160a01b031633146113825760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a1565b60008151604014611cb65760405162461bcd60e51b815260206004820152601f60248201527f7075626c6963206b6579206c656e677468206d7573742036342062797465730060448201526064016104a1565b50805160209091012090565b60008151835114611cd557506000611155565b60005b8351811015611d4a57828181518110611cf357611cf3612a7a565b602001015160f81c60f81b6001600160f81b031916848281518110611d1a57611d1a612a7a565b01602001516001600160f81b03191614611d38576000915050611155565b80611d4281612b0f565b915050611cd8565b5060019392505050565b609d5415611de15760005b609d54811015611dd457609f609d8281548110611d7e57611d7e612a7a565b90600052602060002001604051611d959190612b65565b9081526040519081900360200190206000611db082826123ab565b5060010180546001600160a81b031916905580611dcc81612b0f565b915050611d5f565b50611de1609d60006123e5565b60005b609e5481101561219b57609d609e8281548110611e0357611e03612a7a565b600091825260208083208454600181018655948452922091018054919092019190611e2d90612b2a565b611e38929190612487565b506040518060600160405280609e8381548110611e5757611e57612a7a565b906000526020600020018054611e6c90612b2a565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9890612b2a565b8015611ee55780601f10611eba57610100808354040283529160200191611ee5565b820191906000526020600020905b815481529060010190602001808311611ec857829003601f168201915b50505050508152602001611f9d609e8481548110611f0557611f05612a7a565b906000526020600020018054611f1a90612b2a565b80601f0160208091040260200160405190810160405280929190818152602001828054611f4690612b2a565b8015611f935780601f10611f6857610100808354040283529160200191611f93565b820191906000526020600020905b815481529060010190602001808311611f7657829003601f168201915b5050505050611c63565b6001600160a01b031681526020016000815250609f609e8381548110611fc557611fc5612a7a565b90600052602060002001604051611fdc9190612b65565b90815260200160405180910390206000820151816000019080519060200190612006929190612502565b506020820151600180830180546001600160a01b039093166001600160a01b031984168117825560408601519391926001600160a81b03199092161790600160a01b90849081111561205a5761205a612884565b021790555090505060a160a0609e838154811061207957612079612a7a565b906000526020600020016040516120909190612b65565b9081526040519081900360200181206120a891612b65565b90815260200160405180910390206000905560a0609e82815481106120cf576120cf612a7a565b906000526020600020016040516120e69190612b65565b9081526020016040518091039020600061210091906123ab565b60a2609e828154811061211557612115612a7a565b9060005260206000200160405161212c9190612b65565b908152604051908190036020019020805460ff19169055609e805460a391908390811061215b5761215b612a7a565b906000526020600020016040516121729190612b65565b908152604051908190036020019020805460ff191690558061219381612b0f565b915050611de4565b506121a8609e60006123e5565b6121b460978383612403565b506121f482828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c6392505050565b609880546001600160a01b0319166001600160a01b0392909216919091179055609b54609955609a54612228906001612be7565b609a8190556040517f61c7922e50ad7ea3d35879a4a819ae97eb09b665f2113451d7ada7cb2b689b66916122629185908590609d90612d57565b60405180910390a15050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b609d80546122d090600190612d1b565b815481106122e0576122e0612a7a565b90600052602060002001609d82815481106122fd576122fd612a7a565b9060005260206000200190805461231390612b2a565b61231e929190612487565b50609d80548061233057612330612e3b565b60019003818190600052602060002001600061234c91906123ab565b905550565b600054610100900460ff166123785760405162461bcd60e51b81526004016104a190612e51565b611382600054610100900460ff166123a25760405162461bcd60e51b81526004016104a190612e51565b6113823361226e565b5080546123b790612b2a565b6000825580601f106123c7575050565b601f01602090049060005260206000209081019061169f9190612576565b508054600082559060005260206000209081019061169f919061258b565b82805461240f90612b2a565b90600052602060002090601f0160209004810192826124315760008555612477565b82601f1061244a5782800160ff19823516178555612477565b82800160010185558215612477579182015b8281111561247757823582559160200191906001019061245c565b50612483929150612576565b5090565b82805461249390612b2a565b90600052602060002090601f0160209004810192826124b55760008555612477565b82601f106124c65780548555612477565b8280016001018555821561247757600052602060002091601f016020900482015b828111156124775782548255916001019190600101906124e7565b82805461250e90612b2a565b90600052602060002090601f0160209004810192826125305760008555612477565b82601f1061254957805160ff1916838001178555612477565b82800160010185558215612477579182015b8281111561247757825182559160200191906001019061255b565b5b808211156124835760008155600101612577565b8082111561248357600061259f82826123ab565b5060010161258b565b60008083601f8401126125ba57600080fd5b50813567ffffffffffffffff8111156125d257600080fd5b6020830191508360208285010111156125ea57600080fd5b9250929050565b60008060006040848603121561260657600080fd5b83359250602084013567ffffffffffffffff81111561262457600080fd5b612630868287016125a8565b9497909650939450505050565b60008060006040848603121561265257600080fd5b83359250602084013567ffffffffffffffff8082111561267157600080fd5b818601915086601f83011261268557600080fd5b81358181111561269457600080fd5b8760208260051b85010111156126a957600080fd5b6020830194508093505050509250925092565b600080602083850312156126cf57600080fd5b823567ffffffffffffffff8111156126e657600080fd5b6126f2858286016125a8565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b8181101561273f5783516001600160a01b03168352928401929184019160010161271a565b50909695505050505050565b6000815180845260005b8181101561277157602081850181015186830182015201612755565b81811115612783576000602083870101525b50601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b848110156127e357601f198684030189526127d183835161274b565b988401989250908301906001016127b5565b5090979650505050505050565b83815282602082015260606040820152600061280f6060830184612798565b95945050505050565b6000806000806040858703121561282e57600080fd5b843567ffffffffffffffff8082111561284657600080fd5b612852888389016125a8565b9096509450602087013591508082111561286b57600080fd5b50612878878288016125a8565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b600281106128b857634e487b7160e01b600052602160045260246000fd5b9052565b6020815260008251606060208401526128d8608084018261274b565b905060018060a01b03602085015116604084015260408401516128fe606085018261289a565b509392505050565b60006020828403121561291857600080fd5b81356001600160a01b038116811461292f57600080fd5b9392505050565b60208152600061292f6020830184612798565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561297157600080fd5b813567ffffffffffffffff8082111561298957600080fd5b818401915084601f83011261299d57600080fd5b8135818111156129af576129af612949565b604051601f8201601f19908116603f011681019083821181831017156129d7576129d7612949565b816040528281528760208487010111156129f057600080fd5b826020860160208301376000928101602001929092525095945050505050565b606081526000612a23606083018661274b565b6001600160a01b03851660208401529050612a41604083018461289a565b949350505050565b848152836020820152608060408201526000612a68608083018561274b565b82810360608401526104aa8185612798565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112612aa757600080fd5b83018035915067ffffffffffffffff821115612ac257600080fd5b6020019150368190038213156125ea57600080fd5b600060208284031215612ae957600080fd5b8151801515811461292f57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612b2357612b23612af9565b5060010190565b600181811c90821680612b3e57607f821691505b60208210811415612b5f57634e487b7160e01b600052602260045260246000fd5b50919050565b6000808354612b7381612b2a565b60018281168015612b8b5760018114612b9c57612bcb565b60ff19841687528287019450612bcb565b8760005260208060002060005b85811015612bc25781548a820152908401908201612ba9565b50505082870194505b50929695505050505050565b8183823760009101908152919050565b60008219821115612bfa57612bfa612af9565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006060820186835260208681850152606060408501528185835260808501905060808660051b86010192508660005b87811015612cc757868503607f190183528135368a9003601e19018112612c7e57600080fd5b8901803567ffffffffffffffff811115612c9757600080fd5b8036038b1315612ca657600080fd5b612cb38782888501612bff565b965050509183019190830190600101612c58565b50929998505050505050505050565b60208082526025908201527f636f6e74726163742063616c6c206973206e6f74207374616b696e6720736c616040820152647368696e6760d81b606082015260800190565b600082821015612d2d57612d2d612af9565b500390565b600060ff821660ff84168060ff03821115612d4f57612d4f612af9565b019392505050565b84815260006020606081840152612d72606084018688612bff565b83810360408501528085548083528383019150838160051b8401016000888152858120815b84811015612e2957601f19878503018652828254612db481612b2a565b80875260018281168015612dcf5760018114612de357612e12565b60ff198416898e0152604089019450612e12565b8688528c8820885b84811015612e0a5781548f828d01015283820191508e81019050612deb565b8a018e019550505b50988b019892965050509190910190600101612d97565b50919c9b505050505050505050505050565b634e487b7160e01b600052603160045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220c1fe39da9086ceea54804947accada4e29bc357d3134d4217f775e30b95f259364736f6c6343000809003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341ff05581e03155d93d80c5849dbbf837a00944307d2704852eb7151b4d4cf40c466800701192ed205581e0337d975027cd721863f88d653042dd2af787adba71958637bd45c2da7800c01472e4bfe2e583800030e62de2dddc71899cd76cc8a346bddd976bd46bf14f175ef8eb831bc52f2a7e70219bf7703ed876ac586353119eae584d36e5edfb1ed353a90ffc05e6e7a8a34e96f74578503765f76ee170a09b35f4e2edaad54922b2ff3d6c5a0a5ef8192fedaa1a1d8203003b87e2ef6f1403e6e03b1008bb4dd13608124cec73e55047a1c09568957c3f2fe037d26933816215200369a65e29324ce423f20adc2e593ef8c1e60d2ab46fbb753034c1d7d7c70ff8e4948fedd6d84882471ad5a787035a0bceed24a0de1ec4fcb5003b716a59754b79003cac7831abffcf6d7fe37f03ec91787e2c3e9ff20b18bbd3d030b5eb5bf1a90f061494b5fb98e556be1ee39c78c0a12998f599854e94f1e17b60396a6725ac30ba375d7a418b7217b85e6a8520a6e74fb71637dc56e5d31e9ec5003338bcb15553021f1cce97203b8bcd6e89d6e939b6cc9ee84944287b20f7be7f5038099fc89d4b53388eec0dba5c5133d9298dda7e676ba73c5008cce97b7fcc19c0219ffff03eb2e8f18505adf192155f498b8f5c962b1477b1e034b4c5830e4740186ae8f0c03c8af1b4f9c4508deb4a81e217138444ace75f1e8265f76af39967e841f80c4d203b12bf3c86628352dc265426163510d8ff4e7c3b29fd040f1691fc58415c3579e03875e69aee5f33092ab3fa74b5566ff9488bf0019100fe3e5f9b20585ca5974150219ffff0219ffff03243cca71e0173891c23e962f7fa98bf6d77b7536b0ba1713a094ffde6238bfac03cb7409167b2b8810a8810688b318d735dbd12bf7ebca2e2caaff58adfd68ef61033e6b92f096a056391804a7eb1d35fb90ff1711a0704966b975b4fefec9876496039782b79f98d3f9cdb08e3158deacc2ec3249b15faf2057fe1a048e9f49134e9603bf3827c111e503650dfb8b56e884132108399edcb75c433d353e8645a37d462a03cc4d5223b843af12ddc517798334711ef5e6757f6ab88836cd9c2ebbd738308103c7fad6db8216e79dfa7a17e36525019946bb8b39d613254e4b35be5c0b300707030b26e8775ec228e66f2b26150186da4c71fdbfa7e0ac9ebb0dd702502fdaea2003fae8dab9c18a9c7b841537b15fda780c967ee039fa0ab09011e261ff2f3f991d03eaaf3b3e633939cd905ca662a0dec58813f7475ee30685d4ff825cf3ba99e2ed0219ffff03e7d1720a0d170025f80d5fa3172077a630b8b794168187b7c9bc7fc8118c902d03dee9227e13f3b7e3bcbdf6001dbb4956698732e039934d81ffd820bac1ebfac4038f05094655eb5336b7c1ab05e6826bc23f04d4f5ee914d2a3247d6e22be72cd2039205731f472a9fcdbb41774c32292b392744a610c7804fd068443064ff2dfc8b034051b5db866226f5bab9121daa5c82ae4ec0664dc4c0c8d8c94cb8b7446a9c5a035d1769d46715e8c1a11d96c2f2d55f1f4b77256fc1d5a6aa8cc5665765ad21d103c75b65047445f62b1757abce460bdfe69d974766dfc57ee38244c287ed33387a03a4279d1e983eef72310821a2ec3fc8dde96c42a490faf8e44039fb3c4ae3ae9303268afec04ed5c9b5d7cd30cfe651fae5b73869acd721a6eb787d14226ac85a8c035997e9298b51878ca6e086ecd974d1b6ea002ddfca8555a316a326012361b3ad05581e037f31bb463c8d9f8f64b55ae53f3e96f4bf054ea85439bef6766d985f800c0247023828b77d97d005581e037cedf62fa9ea730056caab2d015877374fffcd35c430eca63c95570bc00c0144a82862900383e525207005f114198aab0950311e2d8c83b682fe1871b025eaecdfc2e3398605581e03630813f8165bdf901c96008b5a62942f4065f5033ae2d654dde93d0f700c18a048204fd016ff9624de03b38c59cb7714e4a803b5c941b618c74b6950781a30cbdfeb681676f9b1ab222c05581e03758b1f25591bc5be265e116acbbe6908431645d888e28b3c784864c900040105581e03802a9b599626980977ec93d3698471a0b9a8abd257400edf83978462d00c014743554af6f49aad03c84b0e5fc45f011ba550847ba6d2ca6db31990b545990a6c08a6e7d85f3770e405581e033adec2ed7b39c6fc302bf6b51f1d3eca7f5b184602bf70c1e6b62a2cd00401021960fd03cb740debe61a5a58861711af093272af27c43f755b78b0d3edf87c0383c7793903a84c30fc92b6f6e5b76f3095d27a653190a2ce76d0cd683f5e3ec20380e2d9a803304db9bb2bd099606cdbd490f9fb13215bb3d83068360258e2dff82e48ec42fb03f2f98d6bc9ad431b795582bba851341beec255b533c655bfc159a79eaa871dd103e0e056db1e556df73bdfd7862e4de189b42b25bde60a48d13f0d5fc2909bc59a03287fa65353054d65fdcaa80a840a8c8a4471ff8b52ae18cd66920ae069918154032c297b43aea6f5af425bf101b6b2c617002cf580c1ce453d20e9974b0ace0fdd03b0e8ce0b64f0859e0d49274e4f3dcf4ab76479c71c48fabd9e5556dac0ad19540366505a8278d6c75a231489a56830e044c3dabf0dcd547602a7016e2e22897c2903a317a64d83d3e2290fd55c6e9f6efd86ee5c7c0ecd2e66446792a1da751b5d320348760dcfe67b68a8206b723ed80d12bb0fcb337796f0f7c7ad43a1ac0468d6550219ffff037706b9054d9e8cd8df5bde5ceae88cb2ade7906575346633cb70326a94d096a3034b76bd3f6f87970d78870e2a69aaaa0dc5494d23930a44ec963a4c38a7b5cfc8037f3b0367eb5223dba662bb338a2a56c6c8577a0e4e1bec14be4ae4c4dcd8c4ee03d01cec992a95919d33728c6abd9bdf04f0e045911a634b77c4b7ca5ea7b8c98a0378af307179dc2df15c769a398bb4fe2deee4cd5f520dedb2442e4e97f09530ca03429bdafbf1a46208f071435b8c4ea5c70a0f5ef8494cdca5eb1c2a3ac952f5b803d9593e74c0bd632e2f83144048fefa3f9f3f1ae3016a4ffc02177dcc111e246003957b16a840bc3db23535b3f5a3af6b86cc971d6c6e398e315f594db59778812c035a17e66dab3bc708ed6eb42b8cd0d8d5b7959fc38df7ba45b571a0a22d7e7f7403e7faad141f30d19c522fe1ca03beaf43761fae70b81d48201326ee473f35bf6f03d2e239b93670f8a455e6e8fa8985e8b7e73e033271f7a5721b7e23958b7e6dd0039d5cf0edf31f92a8359277752a041c986ea5ad68e052e6e5645819f8703450d8036a05b07094a1baac75bf2ab780b36cb33478a1d27737d617399091d0fc9d5ef30318932f2aae8e897b729edb3782c483b6e313d9e7bc4065f311fdfc2277fc1ebb0332c434d40e8556523fe7e51c6fe1a16b9f049b2368e386fde1c46afcad19af550219ffff03c0b5411e75e796196323fb5922fbe3220eed3054192fd8c86594a42cb579a1bc030e5f070b87fe5debc76db3f537d3d06d872049057eedb2c94d3af657306bbc75032a83d6c03fc5eee441420dc960b5d36e1762c5a379d2c231d173d92eff32404503d665f919e7dbfd0803eb13dfa8d8bf8197c8459b49afa584635b908710d465da031eea2a23a3334ac5773c59ee275fb2a67f0f70c162db412643fda98d26fe939c035ed59d8913d78efcd156b9fde8539bdca53546f40dc5790a724217053801dd7b0308d6a8d5dd8d3488589c8df664c2773dfc5c974a91bfb3a8d1cd9de63f0dc308039d846cd582cca98ebe78c3f091de78821df3a1606b84a72da6dd87067af1470803abb9e0bf9212c33f748d85d1c1cebf732e5f893b25674b157bb1f973941b5135033642ae958b1114b6ad376c50b43220d975efea8bce7b220eb5559c37958b8d4c031c31c5c6a5255b132a326d4593943e763b7856c39dc0ac5c25bc6ade4a46fd190398510e742e35e18fddca1bdbed6702a646e1ecb8fdbb95107685e8dacde6e96303eef0ccffa60cfa5c00bdc0698e5c94cbce465a0f99178adab8e6e949d5fb068203cee1c7adeb0924e64a32f3b0cce6d09bd050bd202880f8fef0701c0d840a712c0219ffff03394e2740ed01b4bdebc63ba6e2c382d3bf9a105ef51b2b26180c877a616e82e303e3839b3ff2eb133cdc941df4039d5db8e0258563123f9dae1400124f1897a31f03e27628545b2aa6f8bff11939ad5511eb284548be5b6b2a436743e07dffe440d403a887b30f8a70d26d8c5bbfea1aa29bb6935d4e5d1bc28fe6ae7447a7f601f07c0377152a5dd8d72fd8242b9f220db416780c6367e6cd2951b0fab090d6d812f2a003424367594befcb0b00b03bcd1c8e56065b6ef450c70c6cdfafefe5c21cda0188036be56de5b09b9c320ac334010ff70ae383843afa147f117a10631f79a22032e403a2e755fd11ecc4d018272c8a32eec99657a86f88387aafd89df2f556b4a5d9be03caf679e0cc81cb37b9a26c6927af9f916bc9665772f5c8ae0782dddb1c4d91f403cf64c03eb61eed40c0b8a859b615385218f532eb2d67a02ad326d78c019887fc03e31c309851872bf8392dfa01ef7c9ca7a25d4e925a5331f7340fb01292661bd0032a919497741061f615ce11eeff56d39009989dc1d4d0f8071a54a54a7804edaa031b70e29a00c3d8b88b5eae10c175061dcd06752c3ece9f391ab8302b4c455acc0365de252bb5bd0052991b494afa87358c27f9310e9f3f0fd79e766434586ae5ed030cdc8e624306f50c795a7271db2c004e7f1a55dd106445e935463f7959a4fced033109bdefbe6b8e08958bf66d1ef62ec1eb868d96a0321a334a670bbaabea4ac0030f6d3123261a4041bb78109078e936096acf2955fefd7c552b7d080e8468f924030ff3902ecc01d5cc02cc771f52751aea7e0c6cb27eed522e49bb60c52e5f312203d1eace5588df7b94d9b96239ef11db5d5434d32925bba855dcd9fb869ffde4c805581e038ba1c4694e50832a816051a8ebbbed2ba4f30726a50c1f1c284f3bb2900c014711c73acf0f540003f0ac16e462a39d384f7e1980707551dcedb89515cde810ade37501dd74688db803012e505f05c8d971e026763d5dc5737ae349e7bb66ee692b80e103295b90609905581e03ce4557aa1043dce60686df9871bb2762aaebe5d7384b361825432ccac007011bffffffffffffffff05581e03c124eccd64d7bcbbcdfdff77e785f3b7decbca54cdaec77b04d3342e30040805581e0352d66ff581da60b0e19c0ee8964a4b0a1d769619abc740ae4712c9ebb0040105581d02cde9a4355b4e09e4a07bf83d05bdc6feb21eb2feb61a36581d0a34b0040305581d02f4245bd0fd711823017db28e4e4e0791735c067384bb2b11c468b775040305581d02583969bccadfdc5c6626f98e76f464714421f943abf08febc13a959c0c19482e4851c031f8a552f6c00219580005581e036989f3a247a0ac1290a041641c513c47a893b24938e7ec0c6cc96afad00402038e09a52c16051fd39ec67babc36f43879c48a96461cbf1c164e73a2312a2ddd50219d1c1039f4da71e8e9b5e85ed2954da029b0f5f61146959c8ce3bbb5b585331cf9cd91503d3f7d9ad855e5399b6aafe79993b563ba09b299b2ac8dbe5e242d35ad916cddd039a5b64836096ee4bfe1282f41c908488816ab54d1bcb31a5890f12c29f9a88eb03a8a01fc7d85b4e1a16c2cb234f9e3d3e46147216cb34f5f796d8521a566c090203430edb5fb52ac0c5d378a1083a52ed1eb80b134a4ff76d48e78f00072044948c03ea4ab2594298d9808d5eaaeed955c1be58f9c70fad02d432b375f791453bf5d6031c29be6d2034fd3ed1f78ae6cf21c5cd77ee7ee6b57a163bc68ac189d4597fe20346b1943ff1db833d6c47f9cfd4c005ce2e396bc4321a462a449514b1e03e50ae0395e852f7946460766b9b4dc8bc36b446cb27c76509dcf248db9c771cc0de8d1503e9ec038d75e050619f505a4e29f0d4daf8c791e68962dcabc498283aaaa5de41039b0f1ea4a931fb252c89bd07778b5450c106e3bb1e3074b2bd4f2a717402f79f03b6bd6de4d65ced0106db12c2d46a8f6959fefed95f7ec285870c9fbd121a678303919248968588d2ad99fb3ef4fea3e74c07c8ed999e14751974b58b41f0429f850219ffff0304de5922d1b6e0c47d1a27ec1b22818995ce274cf644da486d9619b214091e03034069f67f640a7c56d5c816622df8eb3083f8bda192432e43fbfa85fa76db469503e53b48701020e21380dea6933d2c93457d866967752c3266a3940fa36ec4acf8032b03cfb7be5051d6b329661f5dc5ea70d46478b88eee7b0347582b3a9f927ebe0219ffff034a8e57074868b74cb180208beeeaf20fcfeab2c832f3ee94289cb0e78759fc5903ace37c26e5bf50f4a0829b23fa7eceffeb1957afa098b072d7aceda0469b11d8032587e012b276fc9496fdbe7cc712696e31eefea5c5a87e9e0a39a335deb9a87b038726628ebc783a8ef466cda507752c0fc75b6e77b6742bef37104aae93ef06c9037b7d40c88e5471ef8bebdad657599ad76bda4f89ac357b22034685ea275b915c0332c5caa63bedbcd56fdc744fbd3c0a8f34a79269ecebd22da67936520f398d2d0381cbec55a925228f054b1bcdc3b3dda5a80cf638fcb114c89f19734f81777481030a22a170b3bd2c5b033501cdc1ae79360fd33a227e2474f87e6208a5de76be11038fc6e088ef606a121c5dcc644392223e370292b6c406e1a2490caf6649236cd1033cdc10486ee452f041280b5327675393b197cee6ccd7361a86d93d5a8979027e0219ffff032b4a13dcb3d2f04c58b1a906dea7dd7da7735cafb96660de073f1c7b37c197b4030fa3f99f557a5ec30b26f867e71658d18d88a2f6d81a275bf45db9a6884f1262037bf82fd5f5b483fa42d49b07bb1691ea5b1d59e77f49be15299cfb3ee63f0de603a8ebffa7ca024d542d53116d3a8b402885e2c370e2f0da25a9532819e1b59672036eaba570c41400cc6ea250d4a00ad41c46f3bf9cc52bd01abcbf7d76345a498e03380c7b6af2007edeb3163fe5b06d8b3b5f13e2b156f21b87623256c923f1bbb903fad2ff8794eb1aea7b52585e8175ecfd0f7cdd81039a4842fc72cd64faa98d6103088db17a4ddbab99c7095432b09afc2f91a308debcc7074e8a44f62f80f9c4d0036d2368b15b2a6dc0f73af7023e1ed21b2872e2b78bc5a3578a91400e302086b30354583f790e2b7dbdb917534a5880f4db2de4d995b50d2650c075d3568a955d520366757f267f1da32f455745bfd1868c1b9552c52b60a42556f880651f6152df2d03c5327a9e33aa530e55bd13328d132009b658f4693863aead8549e3179729bcb603ce21d0b2e18157060266bbfa0e62245483b2cf6ea5ed5ee41993a6c07196498a03094e476f84d3b039e3472564540ed65f127c191e33223ad3b01d1494ce3a79470327e1754af7cff208d9e84fad7f4b5b1461e7a8adcb5184366efc6a4b881ef9f8033c045e1ffa0a32485489ae5d6ed8d606085429d1c84f2a4b82b7c0a63bfbf36b032910373b9f960ca3fc88e5b27c06c80d581a16489cdb1d742c246459b89966370311f15c87684ea8b101a8306fc2ce4854404d977418dfe1061159ab48799e51da03c533ab084e8481f2b182022aa8f380041942f0430bf57696a509a83bbe0ed67803fc17c816e96293a176ad57c76ec19cf04ad363274abe3944737c72d24e08a36103888469704d32b45c6b38c6a85157f97d1911fa73f28caae326c16a18f80526cf0347a2aff17ca7a22735543b882cc721d850702bafc636a165c52366448a1ef36303ddeebde71f7d85ca68d0a34e108806e7f8e04712ee6ccc6a75344a165b0085d803858608b6b1465dd882916588e56971c8cbf23e913daaf7453aa44f167ea1d6d60329d0b4b1dda3490de5d872b715f3c2575965766367a3c60b2fdd4b8aecbc6c2c036a8c44125fb7735fee2e3b2c34ed4d031dcb4df85d51fccaef126f7393d5708b03303e34c99b3de0b23e4ae6ba3839ea2b7c79f4d4d1f54ddc9038f161f4348ed4030f741247f4789b4ec453ddcbbcd5d40830b1557e71b871732e97ce4a92e18dd603041268d02dcda93e5c51a226b1b385d879f916cb5d74e76648963853fd3cfae903f49f78ce8eade25e697558087e4b162b78d30949d8a9dcde3f6feafbd8d20ea803aaf2742dd04ca8c81018d5e3f1f966e3fcb0fb2f6308884d70a5f2b7fb38516403529a7ec596013bb6166a2be107651cb8680e45b760551476ce6d1777dd57213203d91db667459692bed814eeb33f6cdc3f22c116a577d6ac608f0a314271086b7c03563b45ed99186fd3114060af139305ec6420367612d622c6f6bc5d73dcf66d66037256259698bc3b00337d49e6cd971b6734c0410d15d29f35fbfaaffa4331b77f03aedde0a1e2640eea64b4fb44326cf21d3a450303403d0ff7c520c75e0b7b955a034d06ff3e2c1be64153addc9193a2937b920544f7c310ac4651ebaa056598c8c603fd7a28b5c7ee951a8d11145f20d351c921477f430e994c2eb410b6da8174ed2203979b05b456dd8ca9cf0d48a403c6e97e972710772875064c75893a59045a961a03cc51f2662e47ac26308e1d5858fca3f7a28fc3f6dce017d2e9019f76927ed74e0345b68a0d4c42a6477529b56f2e991a3e94d19bfbd7d374b85cec99c1891638c105581e03b38c692ac61d11d9462368184b1909d7b13df9e25e00e2be81a9b480f007011bffffffffffffffff030b02ff198c7dd59c3dd11b23e00370ac66d385cf48c95085c0c5aaecb3f4e62903c1ead0725739fad09d5b8055aeeec788fa278ebdb421722a66164f264518997703ff499536dc70e2760d2616175d3ed4def1b2ce0afafd9fb5f0c0613bacc9646101410a031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e038b971ec21d650c1db3169eaa3f6fba64b38bea4f7fe7ffd55a71763a4007011bffffffffffffffff05581e03ea4f957c81db82f2d6d7da64a96c785f0d93938504a87de8a0eb4c83f00c0147033f59f597441203de5abdf6d40c899c4983e2d1548bbb67259c7132cb91150e3ee46ae0d318917a0353aca33ad6209183ad795f20c371e8261c422f1e20722ab1b9f1c5a5342c503903b0c2ff64fc945bdcf6d931d702b9222f474de91f3ac84e2f743ae7b53e569e240352c85458f3bc64605e5fe642b576febb0414e856e24a7a30ab0a53cbe14f165b05581e032cf84f416d77b8684597d8169b2943b497f30ca5c7c1cf1437f05122a00c0447029c7a85e8f00002195db70219ffff03f3e93156f6a7eb8aba4184f61dd07db199b9554464952a12b62add0ba061792a03341e458c64f6e540f68581bbc39f4e58138d9cd239eef191b605ba6601ccaa810343a73aa97ba59df4e39bb47530cf55c9c2561ace6e21c6affcb9daeda182817e038bdac14bf494dd0054fa7a4b32fe6531c1a6314000d2a53354950dda90f5e625036e9f36aab29abedaeb19763d912c5c35c4d2d265f041aa105894ebd6e6f68bf5038796bcc43349328b69e7f828c5786d4338200cf43e523d2c41febd553405aa200219ffff0323ab50139c60d360b06a5433c2645cf8bc8d5eeb1e853854ab723c70674896df03dc01fa0345f8f904407da67e6db3704cdb4b15d4176feb1c3c31841fde56ce67031c5c4f9cd6dda4fcf91e490e479ddb7e2b8be057c77c842fc4539422b9a6b3670219ffff034d1a9da0542c6e493f3c5606a5612344441d95b5b0661fc15d9929e771c693f403f8a26fd69c11b22b4b71ff729afa6981f86c1202ea9a8aca4dd8d971563fbb9603153b5213f68d34dfe657c6f228e11f230707f637e0e6539e37450bc6d739ca89033c3b4cd84b2469edda96e9c0a0e9110eb87959a13abd226ff19d8134653034fc03f6f0b8b9d7def1d86ca9e09428b2fb0a73127b6907b2a5bd2522c2349869a63c037909f4b64e401c0fafa9b7e4d2d298ea674dd543bb1409cf3023432a39abaf9d030963083247669c4b26d7b74fda432912d6609867087cea0721870f5a80cc26c303a0961abf484228c97e34445a2fc3d95fb7819fe713969cb13fcb93b5f2f679b80398590ab9bb2a1c8707ccb79cdfbe73561f2f5760680a254299617cd35157dc1b03b79beec1b79165b640a2180dfc60b4d541169dd8bfd0d55603fcadca14947b7703597ad01d6582bcd312d5056962ba871c347c24bb4df86eb217a413e5eb828c010335a57e652e805249469856decb25de62c041c966bc412bca4769820eb2208fbc037ca824ce9ceda03f3a6e732010bc7df3acccdd7ded7e6488a2571919b5eb9ffc03d0955b589b70a492cc8b748800d35d62c76a5638f9f98d1f386a89f76c629fa80370cbaff7a40be77afddb15114e6d7acb87a1f611adef55fc2f1f64d7e3d60fdb03e0cc03877aad0160a2ca295d28b4c944d1608a0ebc3047c068267f5609fcb43003bc8386adab5291deb5dddecbbad6d3036af4c0cb90704a277a238d8b8b5d4d88030d67650f2ea79859fad0f9d64384012da21378d77cee069e65a513abf221c2ec0334c19711b7bf64965af771aedb98738aef5d5c7394cefec0e07684e6570de0b3032ef745a2eae525ad255377c6b4af87aaf1e20d968f573895b652e34c1bd34d9e03f81c20d6e7a22e07845ffe15618d00138083eee7c8e8b7914979c8c20e8552da03b96f2f87c82c73491c419cbb6e5fc1005bf2b6bc9b3c04a11c4a56b8cfaa81f8035a07b02dc99f15ce5c0284d619f8479c2d09190aa2b747780c2104d966e17b3903b6f7b45876a0407cb66ce45890be0fe32d0a54842ba7e60dcf19409e498be80a03b7654266e68efce67a8171d0d92f42df154f9ca6bbdcca0c91d4a4df4c18ca500313874cbf5c44d9f9eca7eaf7d2baf1c48c9491d781c57bb078400b28804089e505581e0380829ffdeae6265458ee643e5a3da29275458233e15397455babc9f5500c01470172bb222e38c005581d0267e811ba743eec4bbc36766bea62ea2d0ef85c6703e459b18d321a3c040205581d0293b3cf67f32b899d5713c33fdfde903b37934e5f5b1623d45efd35be0403045908c4608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101c6565b6040516100c39190610701565b60405180910390f35b6100df6100da366004610772565b610258565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f36600461079c565b61026e565b604051601281526020016100c3565b6100df610131366004610772565b61031d565b6100f36101443660046107d8565b6001600160a01b031660009081526020819052604090205490565b6100b6610359565b6100df610175366004610772565b610368565b6100df610188366004610772565b610401565b6100f361019b3660046107fa565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101d59061082d565b80601f01602080910402602001604051908101604052809291908181526020018280546102019061082d565b801561024e5780601f106102235761010080835404028352916020019161024e565b820191906000526020600020905b81548152906001019060200180831161023157829003601f168201915b5050505050905090565b600061026533848461040e565b50600192915050565b600061027b848484610532565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103055760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610312853385840361040e565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610265918590610354908690610868565b61040e565b6060600480546101d59061082d565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156103ea5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016102fc565b6103f7338585840361040e565b5060019392505050565b6000610265338484610532565b6001600160a01b0383166104705760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016102fc565b6001600160a01b0382166104d15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016102fc565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166105965760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016102fc565b6001600160a01b0382166105f85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016102fc565b6001600160a01b038316600090815260208190526040902054818110156106705760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016102fc565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106a7908490610868565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106f391815260200190565b60405180910390a350505050565b600060208083528351808285015260005b8181101561072e57858101830151858201604001528201610712565b81811115610740576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461076d57600080fd5b919050565b6000806040838503121561078557600080fd5b61078e83610756565b946020939093013593505050565b6000806000606084860312156107b157600080fd5b6107ba84610756565b92506107c860208501610756565b9150604084013590509250925092565b6000602082840312156107ea57600080fd5b6107f382610756565b9392505050565b6000806040838503121561080d57600080fd5b61081683610756565b915061082460208401610756565b90509250929050565b600181811c9082168061084157607f821691505b6020821081141561086257634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561088957634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220cfdf7962771b464cfb4317bcdc9e6575e9a265eea32707c82bf64d0c77ad8da464736f6c634300080a0033035e3e72ec1b9b2d778fb90b44437df23bf611bb647a4aece25095fd330d5d82120324805029ef73562a5666d44db6c0cb875a9f2d170d38377558884d5e37c5bb1103b8ef92f8a89b7274620bccf4c9631fb9bce5086f779b7ff9ed0c9bcc0caef33c03a15f6e5ecb190f3bb6b28c1d85ec77e58ca876fe1c74e033613f93ebe6f532e603ecbd2b75ac420f6039139af11aed688886971d234b1734619e47b7f777da160c03e35a7fed645274b302361c0bcab6663fc44f949c587e834e93508dbe47e008c903476e6ed4dd2b5e9773e6a46d68b51eeaa8cf6f1d50966a04cba52eac1b14a98c0383a1210dbae97a4dd6862d088faa8b32c3e52797e0e21a77cc23ed6be1f5c07f0329eccf5e7837404ed1c0b26d1a5cfbb21129d20331a9fcf74614f973aa433ae9033ab06eb7e880f566aaeae7742d3b8263edc6d5e1869071597457776c16ec39f003105dd99161e7d5462d47dd502f52d8e2b1506b343ea54d6f86751d4b289e5a1a031c4aa84aba5752333fd866747fd95e275702f46da1bd1ff18b3725d95e912e4103711cf7d8f66c8aab029c9e58ada90e3095506102a9529b25465993c1b4ac7b7a03717575a822baec6b8e5e3d968139b25282aabdb26abe1ed1261869eeafef10e803c55686570cae577463110fcad2427dfaef501067526b4235f949f98650df23c303175e7b8528c67d7a2e9bad2e66e98c34c132e4184d7769568e23050a501675cb038767f6e0375ff6104401dee8172035d1093905a816ddc6648d1e3cfc4b6a6a7f0361b5f81debe8d862875d67a5dec6e6a67931eb3324ea00fba7ebe7eee104a15003af59e2e39f087a97ab21dfe266a8e24001252b697765e0792cf0ed31b162d85e03c0d412f4027c6de65954c08de584ae08d6f5969e33ea2459d63c305d9c1a98140306e6390e477a684b7b5d634c7e9941185de771b5ce174a02da1829c606a5549e0322f0a051ac04b16c143710c6201d642716b7a80d13674b08b1a019c0858f557403dd6e5d2df5bce486fd6403117d5d100e35d5a35869b8b64a2edde858576871a8037dd2c9562550590140e6164699aaa3d7b2ca5cedefdc0c0d18c34c33d879819803657b525cb053cfade179c93f2a9fa1a8248a5a7802f0e0f1ef13a5bb4e8da26003155cbcc9e90b57f99caa277c4fb879182038905bf090a2fb99c065ca13e224ea03d1c77c1dbec2a2cf94b890acd0e25a1b576d995875e0b63c273f2dd01c503b16038dcf90bce465b41abfae02b62a16059d9c53b8a12879e315b9f09fe38c37e2df03a35d199082d6fdba6d3ca99d21bc7b4df23a3a4a7da1f4f836e3ebee8198355f0354edb71b79f92970111f521c0529c4ff22dc43dc72a480c27a794b2cd82851e50374926ebd2fc21419667036aee10fde0d25aa3bd549743e4ad569aa06d66eb8fb00581f03b35cbcfa98d8ed502f5cd801ce46389b4b86532b2ae2f87e693c355b2f804568c61714000312d753dbdfdb265fd44a706d91c56ee3f35aeef39efb9fa0ef84ac02617c77a700581f030d5e58d96eec390e181616f50e4fd882affae4d0fb532189848cd35be150485a549d038b04800000581f03e662030a780754b10817124014621dcc80502578bc348bde469df96d4e40480de0b6b3a764000000581f03057053f38257d348510a237e4d37315f442885ebf41ac7e96364a16fd8a0414402193244030de09278e283d05819455467d8810ff0c6343e6b6abff10f8dc65a06ed9562de03338576ae47ee51bc644e6cf6c600f9992df5c3f3c80a458a0be61a03de4cac6200581f02b7c5feba64bf1fd70ba2c97d495cd0c7e8459b55cf467697ec0193061064496eb271550533a8000003b3e833264b1c6728ee5abb69f9d34435631fbdd3f856fe08daf9d79a8d250742034aaabc03669660e13e7fdee88fc569dcfc49151eb1f6d8b63d06369132612d3e03685360afcb76ef076b807e0aea04b1c49e66047dcba69c172439f1afcab82bbd0347dad6d5a613ea93a23c6da964fce2c8452a2c1a6aa61d50bad793d735a5906403413d2ae66a6d9b8ac4d0752f75fe55d92ae103a2821f0ce90bf7d88c4c3cf7380325581cd6b5bce376a66de34bffb1aae8e72e820e55818847ea369d28acded5060358667fadb6c5591183949d2778be558c397cb3c83730d2b8876e92dc4c4473a60336aae19b5cc3b99301e98fe72169dd5c0ee0afb15d999a2204a3f7e1a9c3883c0219ffff0219ffff034ec0b562fbc169e68a392a39d642d7c716bbea910496bc13b2878d6dc904d45d037e83210fc1f8c484c0fcbc38ec7b7b29cbbbd2da6094192fb09c4598ac39485d037232707daeb07b2c2e920e94d86113fcc58eb749ab458d2e48689cad46cfb835031720ddc08b53035f1522460e8e0ed1092d415d3e96fc617e06817d4ca7bc5a63033d7275e9b245010038f9221ddd15a6fd3069a5564259376e9f5ec5c839b201fd0382b8044dd32f157e1badc8145d8f3586008d8bb515bc5168ea2a76a5dcfb49e8036bce40e5ca2356419d213596f8e7ba642991a815b8b1623a4f7cc362ce26749803296fa328ea651ea6bab8daede6a679cad9b0df1cde5aca392934f3200ebbed1003f8742c833f034ef93326ac50be9bf9607dcfc2ebbf5d78a9ee6934f1938c805c03a22c11412a07322924be219669c9915d034853c87134aa39d058763d6c474f3203bf478ced020f5726f0d67db9bf0cda7dc5c6c022a9cd1e290f8d3f47f3888494030fecc919f47592cc7b3a2dae19d398115b9fc43914cb4e081babff28c2befa690219ffff031535ad48e7b9d618dfec4e34274a4621d467a7c22762e2bcd7e60ca16541af110359ec9a51a30ac5fe7cbfe845323d466bef55c78a6aae47910514945613e4a6e3039bd1b696a37f2a9d387f7b86deb4ab9a8b732f3eb3fb190a582b7a1e50856de70388040ec91a2ed4550edc095b78955a20e23eb31aa2805330d4c299e96b88ef5603f9de0bf7d9edd9a31bd73fa3156fbd27fffa0ebe30f2ce4280caba6325ae160b036bfaf57ba365453dd358f9636d8b1ccd059a6d239d82b188bff52eded246609a0373ea8d251ff49e58310f758eec563e898c44d5c62308ceec6196bd91608b9a8e0357510a77239d316c98d8a5deb644469b093a695a51016b5437c1914f4626c6ae0337128890c2f4bd18d86da99f1b786526d470cda45ed0fc65380364adf365a704032196d9babae5955af31bc899313ef644c31286016d2e6f2b966bda163f12d39103473a236df7ed3adbc21bae634e297fda2e9d7f81c632787978cde6be3d8e3e0d032248842a0f8a4f19d92596c0e73cd043acde11fdc0b4e856165d0fefca1d56eb03af481d6bfb36979fef4a73f0bd4d0561deeb07e9b2f9cc720016059421692f1c03955c798494b13065f48b284979694b4369043ec518265c135918648658fa44620372f5ab7d1198442e1ba7a1b176d599a5f5a1ae56d6b2b88031e5806c95aca3e503224f9939a18fc6381cb42261ca82d0302f18b541aca8a2aca1796e7b5dffbed003fe3ed0824a4ac9a894cc589e0bf1e931e631dc342a2954fc8046676769c7656403ee9d4c96d2d1e7a278700a766783905dbba3fbd8df2eff53c958066c3fa937d10334cf7e84b8765784868af2e02db239fb75fb5021681f422c2e68bf663c53bd650308854acfcee7b8195d88fbf8886b47d46386b490f58fe3256a22fb70bab0d0b4035039d45db49db9c5bf18c4368a7069ef9eb66db6ad6d2489d8d65cbfa7351e2a03023e482a82adbd28136c02614340ae3e32485bf9d98ee1400721c0b9193997a7032794ec2bd4047a0820041610c26a90014fb46cc2b116e2b51379302f438653d2030ced3a324e5441b7f7de3b71f9acdb187119dfb9e859567d461a0a058e447c960300c30f63919b203134175f5bfebcdf1afd29a83290746cdb7df5bea1918d5db203c6b48eff9b2af2ea23ceafe34f040ea15250aed8112e5bf9e867510d3b7873020306264da88bfce97af6b4752aad799b0eb1ae13af0d29326a9ff3d2e1354eb17703aea136733eaa033acb83cd0683676bcddbf0ef63c44dfe284fe740be80bad5d8032e7ce1fcf5bd676b7e43e842e9053f57efd68957d914e2c495db9513f23697ae00581f026bd929a1fa461bf9bda2305366eddf49a25e0764a749a9d70b4adcb36d5948ba73d02b1528fafa03a2ab7117ba57ba6837f0b88e0f813187c6651f0e278514a6736ed0f8fdf20205036622394c041557a89c217ccaa7acf8f61117c507f215f05fa34463b48aa1c0a8036d9ad2e5aa21bc97682e560cad5271443cffec2a0d66dffdefd595de524540bd03bff992349a0c144278c838a766aa5b1835d917dcbef2201326aad3a3acfb7b29014108038af0d3311a0d3b703b6c7c5049e17307410248944539c47d65c9bee88867556000581f03d45d6f019762d6d20e8c39fc8794b56caf1ac7b06c26be3d4322515047f05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f03e07b18d0eee79a69f765ed770d2c6b565711d06fdda4057718970d67578049b1c647ed061f7260000219280003d39207ab02a3a3aaa3930d23e897a90d0fc9c8be79e8d63af313f45cbe9334d20354a526e48893c975e58ba32a6d2c3f833e4646369163606bca15875aec735b010219ffff03ae37a22f0d0ba3827fd6fc0a937f9e9d6e2a19ca0c41ef3c8ed83fc037340c6f034fc62b3a092ee5f76843f64ff907d7f392d355eedc5f2820c3be830a5970000f0219ffff03ce77108a709cb19a080c13d4ab07ff23c869d21da8d69ed6d62ec118442fd439039e1447ef92c3340c33593e78a09e7885bbe1bfbcdffafbe067e7ef0040a0409703b5a87e4b294698e0b9f32d8b8fe5f5a10ff68b67821dd69631454a4ebe6e4d60034dc3b023ec44bb20c115ac118a41eac8a3a02a77ed73fe8c15442ed4b930c2ad03ff6a6277a11338a06593fac6be16849cee9e0e963c748bbf4bd266395693227003b8b7578328b6e38c27151a835d86370294f237daf852ed3972636560c4557a51033cabbcf8330484bf5b272506ac4e279f1b10b43fe9b0a9cd9a2e9fd6706485bc0381cf7e3bf1f99050ad2cc16b4e26ceb7a1064a469ed971191660fcf9c75f65ba0219ffff03901cf7d3fb60a8f38f3ddc45bb44cd0c17704d9d1e83e45871d91ba39a5a0f6103406731532256663a55ebd273dd74b40e2b7a5e5afc7fe731ed8ddacb4bfd8cc5030ed5cdb44b2b930f0a964919824a9cd1d4995d15dd679797927660ea5ebcd9d70219ffff05581d02bd0bf74c1dacfd68e8c8b97177d07d52362a09807ff09d911f34f0a707011908c4021980480219206f03b4289707b901d17c2d3ab7510ed4cb992d2d331b7a108ea4884e0360a1309e2a0219ffff039f7bd2d575b2b8de669b6a96f644e73fb91b9ebe1f45ef11feacc889a9322f9203140dad2070179f7706ced08ae70e7dd437c85661729eaf19213964e0335eb512037b9122b92eec0bb9ab4a132c9e86dbc054e3d38da30c7b21755a75bc3f2768a903f6fae0b6f7cf5206a18c70e1fe9e4883662f63d481780f36ed433a8b49e42a5d0322614a70e4a38dbddbdfddd6e34b737ba59f7e941eabbd0ec44a8e4995f71ff503ec92ecb5faafe3347515deefaf759fc9cd04ae927f3c199e539889c1b2b5f5df0372ff0e589c37c8abffa81062b3ed8027a3451af6cb5bdbe2eff321bf564d94dc0349ead19488db5ce1933d53dccc821d874091f2daf7a2e4d1c2f588840512a6f6035d8df32ef33c856f69b1c031993bab1c2593672dfd4858b32d17776b1ddd45240219ffff035d2e531e2d40f00e8d078daec1e874ab28345b22ca9f20b8081fd059db315d2c035fa2dfd57e4e3504dd60a72daf1e624e3bc36bd42131bc89b3ae8f2df72dec510393040d006d7412f219db27633a7ae1e5acb10cd19d0140ba480618f540f49067039325cfc26cd1c8f4236d6435bfd4f7d35e5d925a9175b51525f777b9ddd7d4b5035d03eb0fc841629379e72273ac5bcb087bddcbd7b56a2041462c5e7f4d9d962803fd4777ba56e9e4bce31f5e9e56d08a162dbfddbb2a8dd016cd82c1196c35100a03c7db2b32b7a965ca0c0f28ec08a7fceed840ea10fa81e0d461e8e4fe18de0ebe03b7a35df4f3ced31db5ba68f92c29a3a66a719fb9c84ce484dd0d47cc138d5eac036978d120d64f37779f11ef9b3aec3cfa9f33fc9c351b425f1aee4dfaa61420bb03ec2b78a28bd0b2da8a2888b438f18d75ffb01da0e184bc3f20dbe681666176fd0300885d1096c4e97579a1c56202083f94c0c3b25a1a3fef49bb4b2af726ccd88f03a647ef3b88a3b111359a2cc7a61db134c426027e8345a25be46dc505ea0caba803081566c7a5165f418ca685be81f73df6a8c39022e9a71193c4fd7f7eb1e45c7803506f9bdef65976474f6069f22e0e7d194000f8fe4732ab56c8847f8d33f1bb900219ffff0303d2eb3bfc733fe5edb55a2ef7b15d9a4c290fa3b96b4da6e913e8f2ab17f62703955a26b3f9f708442a29eba7566c4fb24d6950b7b823faf534f39ddf3ba79c5e037d41a39aded04ee3b7f9cea327fb839007f2b76b8ebe19d0d85ff7406f9b491403267f0f2e6bf3917c50039581704fcc7f57e65cf34b5a026b09d30fa9a134097503018a7a4a8a1c357ab7ec986c0cc00e599125f0a8eff9529da38a816c4b97295d032b81e808ec637b21ae921cd85928d4f7d22d2b788bd4ac6f92e9a91e194b6a7303a959e48113356037d189a874c3c60a881a7b73c7680f01dcf9620560ac128e1d03e0eca2186350dc56737026d7fdbaafc77d0acb885299200c4bceb20887b5765903cdc47c7fb20e135c8e3c4f9d75481ce5045d90fab947e880041ef14624fed9ee037e08b3d32024e975bc2cf4117dee746e735b8dd5912b16dfe3da8a0c30a06128038ee5dd24326d72c5bc9beb39456c0dc142d739927bfd63c8c9e946a03047b26903c7ac22c0756016cd674ae6aa4f815849af29fba90653c96c6a39e7196caf5083039465564c183baea51bd6aee0919bd87795c3b8328b91c1ad1b826adfc987df16036eec159be5b7d537978e183d0a8076753cf5f1c2667f031a89c9ff421d77617f0392fc680f2de15b722325acded389cba3fbd7fd120e625e9205c40df79525f99e03a238309304a6188a7cf152d36da751e8c9ca5679b5cfd2ee0b1b74b49089af2a0305dcec2daffb875aa462dcec294f9b6ab6b7f7d588c5356273e6a9c4e74c5f4a037b98b07c7e9b6656ca2bb226342f5c4a58f7bdccbda2e0c3c50b6a0c434db2ee031e0173c4d5ae0dba7bedb63340c9d5c671304f42f4b832ac097c7de1ac48410103be3b6d7931f66e0c60707a54126c5b4abf3e71ab410805d02148dbae60eaba17035b41691a7d7a55ff059f24019d7f49a1e982e9848907cd37b4a161ebf24dd1f503f2644443f550e439bff3816fb42407a073259a64044f2e1832de79f66072387d0375d0348c9eb5e4170af43c34502a9c237903c46525c8fc87dd1f47e0b4ccf69103b79dab1f126a66bc1ba64c360d325be657044ec048e822da8826efe0413e38420326051d139839f5ad58a37c5a9204a3f25e5622c3d624fbeeaf0dce1b53d31eb60359d4ed494c17bb5c058c293ef6d6b4c7d60c566674e540b210af05c744886cc103599498a53775cfb02f4dc109fdd7fed69245cc57605377d640552c9b6e5d4db0037ced86d02c03bc47826334aac5f2755aa83d395d22aad875d0db3048d6f898b603897e5bdf04335a4309a2ab5f869da2fc515e5c54b131bc3b166ce8e05b85563203c4f52a71cab1ed2593f6008cb2a21c9d8729baed69a112da034fc6e71b2865e503eb4ceba81cf955dd91d749c9c3efb07de887a55b0fb14406315a38e39fbe49ac05581d026e617119ae2f44d5058f0ec7b9ef6d6b48c9bc074e49de467c04012e0c0447022f8d92235e7805581d02b87b8dcf4acb3bf725280e814a415c4ad266b58d9052d98d6f878c2d0c181b46d3314ea18bcd03905982d3bc98b3ad75d5ca7a92446cc8923fae39a2352245000f9d3e9dc0f3ee03bbd13d463ce2111713bb0d6ad117b0ba991bc32336d501e872703c4ad6bc3c9005581d02bb84cc940a293f979860f44f85a83d4dc6c805984d83001b67de946707011bffffffffffffffff0459567e608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000bf5495efe5db9ce00f80364c8b423567e58d211081565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000018f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000006461309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f000000000000000000000000bf5495efe5db9ce00f80364c8b423567e58d21108d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000006462ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000006462ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f000000000000000000000000bf5495efe5db9ce00f80364c8b423567e58d21108b8b613b86565b8715611aab57611aab7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f000000000000000000000000bf5495efe5db9ce00f80364c8b423567e58d2110908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f000000000000000000000000000000000000097451ff859c3282305ffa26a9c581565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f000000000000000000000000bf5495efe5db9ce00f80364c8b423567e58d21109087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98481565b7f000000000000000000000000000000000000000000000000000000000000000181565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b7f000000000000000000000000000000000000000000000000000000000000006481565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f000000000000000000000000be80225f09645f172b079394312220637c440a631614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000bf5495efe5db9ce00f80364c8b423567e58d21101693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f000000000000000000000000000000000000097451ff859c3282305ffa26a9c561513b565b9450614bba60058c8b8d8b8b87898b60017f000000000000000000000000000000000000097451ff859c3282305ffa26a9c561513b565b93508415614bee57614bee60068d7f0000000000000000000000000000000000000000000000000000000000000001615325565b8315614c2057614c2060068c7f0000000000000000000000000000000000000000000000000000000000000001615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a035499145c3f3f45d2c3c51f476dfb9c3b768a2f58f8d44fd501f6fca0b41fabe203057cccd51854f7c77f4b70dff814d16c6d5f63f5d813dad57679d037f69c34b9005820027db89f5b0f9b180036a9b1c9a15dfa4b3e93e8448554efdbb0d54f3ecb45b5581e01000000000000000000000000000000000000000000000000000000000000582002968f845b8b00f98fa2c733982ae524d91d311e483300b89e6c21b579fe29604e0523583f4ff8fe30a6bb2cfef47100582002dd40eae5d9d36413549683514227f4233c921c4ac6b1ad58e4fc9044646eff420284005820020decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563581f0100000100010000000028000000000000000100866658bb2377cc04650c2302190324030eafdc2534224f8175102b630c81802c05f09622af54b2458f7b10a2b4f13bdd0322e89a129afe003ba789eac4f6cec369397fac62eed3f87f6805c1622a97213703d4df289476e4795805046801b8110c2a98ee2ad704bf6482603e8c53670047ee00582103fe4985a46e5278d517ed7061a799897ee525ebaca43ef909cdf87fd7fe91e820581802c6391bbbf19828000000000000000002c6391bbbf19828005821033e6e02433e37295571ec064d6be5a207e3bafaa8b33e38a1f2e66a1b352d59f05820010000000000000000000000000000000000000000000000000000000000000000582002497882cf9008f7f796a89e5514a7b55bd96eab88ecb66aee4fb0a6fd34811c460100000000000058200235acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b4a0188e1002864bd04f125031909f2ae2413161fb662388196c1cbc41bbe8c393a927d97330e6b4fde4756160219240103b3ec1f4676cd885bcad261914a011d17500ae78c93a9e41a283a7c8e08b5ca9c035fc2c342089704e84abc87461c9975ad1264491b30761076e5d4c57c272ebc6d00582003e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf604f02f5332dac4ac660aaa94b1a6768e7005820034c1ca1121a3e555ca0a1faf7c14316d750d8952d15f31852b993508e2c04804e04163edfa646cbc80770e44f394e0219020100582002adbec51f158f0b86e2f19d735ac100c300963ba2028007c834545dabeafccb58200165b180af0000000000000000000d2a8a07d5a0f16feab70dfffffffffddab80058200284fdc86dd8b7375065a4eb6436156645dc2b94ee1da368de6ad2b15ed2e39158200100000000000000000000000000000000000000000000000000000000000000021990020058210319be35404a30252b4d52fdd353b354d591bbcf99a65ca7b2f873e4542c970f605819bbff7394a9fc3d342f00000000000000bbff7394a9fc3d342f0351b1fdd9b1e132002f4281f149af75aeb949ea96c079c1c6204c1046177fb53003872861e3009d1d253e7c47441f3034c9b0628e1767d2b811704db14fe4a963e801410400582002ca0f4808f7f0c52440675894727c9e66265266cd1e1f5015f8b745ca2de5f35820306000000000000000000000000000000000000000000000000000000000000000582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35820010000000000000000000d3df0d53d4c3d8a0c55c20000000213bf1c65cf5a0300582002176a08a852d13bd5ad0c05391edd70e645f931ca27b8574faa2f6165bd912c4e0441be3ba6ede532f619ac8e63e60058200235fc8112f36d19ba79540c9fc009cce2c8b9850d2abeeb60c7e355a84fdd674e03fa68c4cf0c7563088ebcb198a80219024a0219ffff05581d026f79db21fc1f44ebca5f5e9f845737c3b03202548a38450a867ea7e3070119567e0219138005581e03e8d1c278dcd8efb7c35ec5f0660fc67f18e8ebdca0fac5970a3905e9500c0246063e61e2ea0005581e0324eaad68723c09b17ec58054cec86d3f3fb83b2923063ea23a015e5ad0040105581e03d7fbeecd42179e006f8f16c207fc402568e645fa597b61b7484c53aac00c034703943883318fcf038a911b3b15171df4a6ef037816f2e34be9c36ab3725745dbe0596bd127fb87e90605581e0378f4e7f63809b17bbe05a0ac83a6f7245e5c1d3097b1400eeabad7ac4007011bffffffffffffffff03d8554dd9d09d0ff68a73b1167ddf5cc9c8e1c01b14fe6d91765f10d54fbe4f1903e33a5d3eeee59794d97187e01493ad6c5940b2aa759a9c8b3be611c3b1f3179c05581e035a5d7af77f3a29ad83ea35a2cac4dc4fefc6430e9f29629457125c1a800c024805aa86966168fcd005581e03a67084a0aa937d38ce58dda786a7331cd46654736303ccce0384bd1d500c014704d75f3fdaa0000219ace903a774ed474d3f6bebcb1cd2472e0cd3e1f28518fdd7a7a133ae5eaddebaf1f48d03d4bf413ccf1d531eec2109d718b398889610a865c5e9c149d08a24151cd877ca03752c38aa8cfa434ea13546eab0afab534cb83874178c22a37494f3fb32f059d503a76f9ebcb6fccfed6b5e6750b213b141d5dd1475b5f1be2b2e7b74f89481676f031ef27a8a1bf40d5036f4be4df9a4c16ffc6adf2e78a742bf67d508bbd8b0fa5c03c1ce05dd9be130d17ad2e1004de5ea2df7bfc55a0886a21d2ad438f8e613e193034bd39dcef4a4e8cd92345cfe6f3dc269822016f84bddd0f2d1ad1ef48ba4bac3032cc2930987d6896f64f58929ffe5cc6291a1d05d6bb54cd13e9634ca61242801039e1a601aa5ff4b2ad074fdb52966181fa7817357ef6a3de6497559278745b6b6035251e280a59355b77afec220e0858eed61fb3dd14261c1db5677d57a26da56a00343812cde9e684fa8c776785f06b561cbbad5b873b230bdd9684283a6a58e19200397cccea34bf51488fa42e564ab19d095e804d250b9669e4fb1c5dd0f4520c9950219ffff0219ffff03fe8f4949e04d68ffc09a045da037712b7af51f1910f0b7d1e6a22d30f2a5bc8b03edd6a70b3f96b6a860b9f08d9d976e0274a85862f19e289f1da9a107de3f3b90034f1028a3d0fb28aedf8d69a53408ce3d8af8c8afc3c394079c2c8175611595bf037c15ba545f7b94c71d1455a7207a203b0f09440c7274501ce3e5eb32864d78940219ffff0219ffff037f96d1b29b7462fd7fac85cad6c745cb4f0d734227095b5110d3b2203b31a1e8038ef23c9ce7ff178a1953fde20fc9392e09bd5f9f18edc5878ba297ca14fc397d03a56eca8a9166fc95d9dae5db63bd7b71be8ec99d3ffb7c5d6d2fde86a56b5799030ae6782205929996898dbfac8dfde002c638b403ecb30c49167d95a5b2e9f2390369c2050060b360ea03e33a5b14e4f7e55cb20ef426340d77075ca90d68c8f74e03e900c4a3438d4950b331765eebd85a6a0ee9b672bcfcfcd06ff38809de49fe1b038310799064d387377e20ef34b2be55430179658a213f0fec0af9fcecf2afd84d037b38801220cadfc2a9c628721278ceeb6916713f5723eaf005cc44ad8f52693d032ad938491fa1f0ac9b87ffa252b78a4e3085d1730e5dbd6f93506e9dfcc6527603474875c6855fa244f8b13862bc7f0d26fb4105f5aac7e5aa997b0123ebceca6b037867fe1808c750f6805e171762135945a63a459238465c3afbd5cc583f66d90a03549dca9647ad3f180871539aa9804d8fff9575ed012d35d1a21f54cad65fb4f10367abc104c25d740e1172977441cc0b90dbfe3e5ebddfca9f8d514c6d4cf19247035f4824d6744da11cd27d1f297b5d6e90d2473386d8d3c56c5153e7853609240503d2215719f51b57e4f4f3e82d63121667ec2a18333687f78e4c37412696d45d2b03a21454150cf8906a0ffc0ea012f287a93bc49a7f804fc329333698b85247c09203b5f6c211f3b4ffdbf418bb3a625b30c70372c1df378727c4ff863aa857aad48d03a9bd2d1ca147eed58fd3a14650fc5164ec53eed084ce24c7cb1f1f02c14c873503868a1fd45403e19eef4901fc073339ce9240b14d2771ca7f2ac364de017a465903d4d5fe6adadbea1d49bcf053e579bafc4a828245f5bed47c226ec6312a3da50903114f12271e420d0b30f6ad8a7d0b2940ab542ab8155ba9260cb6e27ee094765403b824f9e3765fe9e6845c24fad12b9368c5d797aaf4e39405d83b513563ce0503033fcfbc60d2274a97259efc79855c7971489dfffe6cbc8c0a402a1967f74ab31b0380357c369f2ecb729f74b1765dad9c7216893fb94eb856a8256df7efa96361760319bae717a58937ec14423459880fc35e772420f36f944890535faa944bb3e3e805581e037309131978378999558eeea3c0c54bb688ea0a54f3ec15c45e5df9a4c00c0146061c3fd9660904590845608060405234801561001057600080fd5b50600436106100995760003560e01c806306fdde031461009e578063095ea7b3146100bc57806318160ddd146100df57806323b872dd146100f1578063313ce56714610104578063395093511461011357806370a082311461012657806395d89b411461014f578063a457c2d714610157578063a9059cbb1461016a578063dd62ed3e1461017d575b600080fd5b6100a6610190565b6040516100b3919061075d565b60405180910390f35b6100cf6100ca366004610734565b610222565b60405190151581526020016100b3565b6002545b6040519081526020016100b3565b6100cf6100ff3660046106f9565b61023a565b604051601281526020016100b3565b6100cf610121366004610734565b61025e565b6100e36101343660046106a6565b6001600160a01b031660009081526020819052604090205490565b6100a6610280565b6100cf610165366004610734565b61028f565b6100cf610178366004610734565b61030f565b6100e361018b3660046106c7565b61031d565b60606003805461019f906107d4565b80601f01602080910402602001604051908101604052809291908181526020018280546101cb906107d4565b80156102185780601f106101ed57610100808354040283529160200191610218565b820191906000526020600020905b8154815290600101906020018083116101fb57829003601f168201915b5050505050905090565b600033610230818585610348565b5060019392505050565b60003361024885828561046c565b6102538585856104e6565b506001949350505050565b600033610230818585610271838361031d565b61027b91906107b0565b610348565b60606004805461019f906107d4565b6000338161029d828661031d565b9050838110156103025760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102538286868403610348565b6000336102308185856104e6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103aa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016102f9565b6001600160a01b03821661040b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016102f9565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610478848461031d565b905060001981146104e057818110156104d35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016102f9565b6104e08484848403610348565b50505050565b6001600160a01b03831661054a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016102f9565b6001600160a01b0382166105ac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016102f9565b6001600160a01b038316600090815260208190526040902054818110156106245760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016102f9565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104e0565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b7578081fd5b6106c08261068a565b9392505050565b600080604083850312156106d9578081fd5b6106e28361068a565b91506106f06020840161068a565b90509250929050565b60008060006060848603121561070d578081fd5b6107168461068a565b92506107246020850161068a565b9150604084013590509250925092565b60008060408385031215610746578182fd5b61074f8361068a565b946020939093013593505050565b6000602080835283518082850152825b818110156107895785810183015185820160400152820161076d565b8181111561079a5783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156107cf57634e487b7160e01b81526011600452602481fd5b500190565b600181811c908216806107e857607f821691505b6020821081141561080957634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212204fc41ae70a57ca4d5029e30866fb66134499dd834694b9cb45243c01710c48ec64736f6c634300080400330319f15fc15c683de8919444eb27852a020cb611c8b7620b4ca3d36c8c907ec94d0369d422a40dc24645c65ef3e691c45db91311300c87382b53d23f433d3a120cdd03384e598d9938845214d15786fd245cd5970a38184f7dcc9f443883caf91592e503e155f0f0ef0e71f01e3e15ce48af5cff4778966bae97d7a539aa16a6656c7bb7038104b4504adf8e3846dd7c4afb07aa7bb84215b365668d57ab8642db88355db303200190831564ec9a73b1716969f382a25db11b5c529ad76da39299a1e20e5e270352a8cea655a6c5dd2352f087958db8a5c601ce09e8f3be180cdd1ab601a2c0fc0339073bfe78b7e90ac582df4578670c1a3581ed0a7409697b821299d5a345b7e00366659c68251c2858e8005e321e5666c4d1934a8f0f6a062747c7ff211cd09ec403d01b460ca9eb496816f02b9d58c92204085a355ae2ad935fa55bc24c03525a7d0376fa4090ab35419b5f85c466ca1a68eaba560a07bc49d512664e77befd14e4c50385fd8671100230dff60f9a900c1a9715c666a2d843092f2373971fd131752f610376ab3680aca0e7bef61f7ef6ca95fe05ecdd2fc21e8d0f112756c76b7eb720c003abfaf8416df536966bbe7029f29cd3075fb7b1af3b4c23367e121e34b589bf5903b07760b102f23a6dd9d90a660d10a63c847464e556e7925cdab68a9915dbf461036d72d8641ca402115154959a2da86619ab8d2d02b1276ecda2b5bcbbb0c8c7f60374645c2316904af16d1fcd53c5852e2b98a223a037680f4aa60ea4aaac63e9750364297e8ccc000fb4563508f9593ad51317c5bc5d03668db63555a7e47f8da98403afba997e9e2279d59c5c637eb1e976ab546898e304821341283bd03498bb10f80370b7c27c309db4b484cd2664997c65dc75a09c2dfcf50f369220c6082cb0ef09031733b804ec240bc171e68347cb2f653b9cc8b30e8b080de68264b3690d4f4cd60319808bf46ab1e8b86bfb98ed45551d19f9138c9ddbee5afbd77d7383e4c180e903d13465ff273950fee23092e322383afd26c9cf0945ca0ee4a826aeb4303798f1037dc2069e90cd296b121919623212753d6e2b95e318d2d242031f4033794a68b403c9c153cb306305f9cc09b00469eef0b9b747d16225c2e6686b3a45b581f1883a03223a794f6b9695df5c6ec863103eabeab030b4821092a761f8a4fe4ca6c1b62a00582003e80468ba676b512e339f82bcf1ae4fe1ef03c03055b60489f755535e8321104906470c3e771e3c000000581f02ce64e42731cc403444882f8369974c1f1875d438f25f7a8270b85554c60e4a01e504fc4abaeb29e3ae00581f02b5433ee5916a7ea5e3090a4a5e680e44d46ea53bd659a01da78ec55fc7fd4981e5e7e7ae9e10200000581f0296fc5e0eb2316269e8181181759860433cf6c9eb1b34444d6affc670181e4a043dbf8cf85a66a40000033e1efa03a14a74644b41cb2f0e79fc47e5417128cc1b114304534dc712fbfb5e00581f028b86084114d8dd6c24eb795bd835333ac7f9409944165897984812a10ea15820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03a01c026174269db51f6dbaa0ea31b44d8d1bd63d5986cdc290e0026908de72c9021914c30354b9cca9f140b3bc9449490cbdf4140552461a9bf95d3d21b3ae6df943d5d9630219ffff03e765292bd463645071f5f550fd7d4d6f38ba6ab8b9cc78ea824269cc8a1afc8903730802650f35074fefc4f5e5c8690ed912f6ceeb1b10be649a9616147c8eb21303b989ab01486eedb9824420017ae9289d4c0414e2b5a543b881b05a85dc46ad270358a35c7e960b11f4a8b94c3c785084d70325a7909794843cfb812ba093887511031e8285a32f3d126ffaa941110c5539289ebdb3047b92d3dc30ae60a7e44a8560030a46d516357bf9e180eb58be4b6a4dfd139639a8b783d4df1b44ddc4bbac6ac8037a45501192ed2672934cf6210cf03fde1709d5331b491462a85b2d67c725a444039cd468c62c0672d6d81f1c6fda007ef2b793d8e516da1c41aa7b022429cbf228030a40321ed8d3609f1343e3774ae81c416730db8c339144d88e3152ae5d3e58ab0219ffff03a0f2b2747a4697136e77e7ee94dd44ce5ed95cbfa6936237927331a66486a73003043b290702d9e3423d88bbaa69a7f6b573fe4fb208b76a415ea555070cbc863103329618f1429231dc5bb51c633837ab993e53438cf015c4d4fb5ab0ada928232c03d01c5976ab42e790bf546a9caccd882a3e745846c48d0508cc36843459277586038b6c57015c290ff148732693e4c9b7faba47692e5695e21cd04a33ca71201b4f03789bc23bb5641982de7421ff02e6d8154c0356e961e4adae0a0cfd9b4001a66f0342439cc1a0b5130af697539c756a41425f1fd4f5abd88dc175744c6e3060bfff03d85df21fb4f9345c0a2249d0a152c160f6e672e419864b32a5ec84413eefda1a03b5c6b531963468bf5b7b6c1db130d2d1370ddf5dd7e466e055b84f31bf08e30a0312ecf69b1735e2e41b3c1dfb81c8031cd5ecd3088637e7e564faf2cb92a169d903ee5f3712525be214308789606bc14ad9f6e63e1d42f2a3b6e1e84960de18502d038bb1255b29ea10934abd69a27c211518eb61ab5e17f27d98ba94d69c7f10fc1100581f027eb58755f54d60406e2e22342f9eee73d793548dee67169d8d7c3ab517e24a02df477bfb00c6d6c7ac0364ad0f4f711269f4dc3361d8b05511d82887fd1bef527846d999ddae910bf7d801410200581f02f1932904feca10029a6061cf82f29d1487aed315dd44cd02c8befbfbe746490acded09f2c1b3eeec00581f0216b4a60b8e60b996259fc0864cca4a8ef918a5c4c1ea5cf5a5c06c9529425820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02101979276e2897e46b3235864fd611bba95c5ad518f254ab0df0df812a564968279a14efd5a380000219a40503a8bc22e378e5b9119cc87b5d3d810cfae810c2cdf00b5309ea275aa0dd8dc27c03451e3858d9d675d407e3289c07f84a772da8e81f36c510fa38c02dc10ee7ae7b03dea05511decb7c64db7103ac1bec6e10b0ccb270519f2e597ee0834cf58c7f5703440c94f80fdb5a8f406efeed4ede660db2dd23b6f402c2ba926b8e1edaf284a303e9cceacc6f8f8dcaa6a0a7ec4d752260308ddd3371f7bcae08defde6168aa4e30394d9b5b817c6304415f70d74b86f6a14d22090b12fc4d3c885e0c59a5dda4df903e3af0af5e59a391296c5b1cafd40ce92a2f0d9434551911e1bff64dbec51afcd03131a1edca07d33270290f68e24935d0e7b9152bda3fe2320a804490e7cb6b9cb03c238ae57574e43e39de9028ed177469447587d081acefa0b2cd5a9e377c93045030403e7cc4eeb3638b7f7a0a73c414aa3a6fa29e741b163fe0f393a33cf52b05b032658d177c833ef6370b383b4ed62508706ae46721e864c0b6871e00bc7bab4b000582003e49c8dc6c0b7ee3163ff4caf159cfc1e64ad6eacd733af3124dc69434e79b0491201bc77db40ca400003319d603d7df5547845166c53a76eb8ecda95fd80eee3c7349705800e8aa6324c03c9da616ca1d17292ab65635565122c4dfbdfee6720f8f0276a074540a50c5e3303f14d94e17424c3084ffb1988a1265e72f3fc2667af2d6411b09e2bdc8e60ed670219ffff03c6fc3e65d054259875424aa6f4a1c4f3750bfcd72e5d78f3c4cb596ccb64e6b2030fc897c894321dec207df65448147513d25c7124b916ede25ac7732f26e933ec0347d1363d7373cd5351d3cc38d95b5b5b3787f803bcb31e3a26a66f49dc1727c403f5dfea1eadb0f542141678f19ba4a136120811dddeb9610f1a18e405545c0eed034855745d6e5310a29acdfb8b63f863121094b29278916040fd765ccdce5b48f70219ffff03c0234b02f815a64ab26207eea4f95b6c6fbe81c880c882596125254961bdb13b031171afeec68e1f3a3676c8c25bf0abd2c4d889a64002f946512fb2fe187202f9036bf281a2997754de94c5f7ec6a4f245a50171008c9b24f9002b43d3d8bd592a203da166dbfedd4f5c216b8524ee58e12d3aa503f8516b9352d0764cffa6fb6c73e0398e4eadebe512542ce27409a5870912245ee493b4dede4e2c86880c4d0d7880d0219ffff05581e0349923403de6f29e3187186b3ed5f7675164cf0ac600ac0065e68fb8540070119084505581e0397807cdb097fa319022b998f9109a4bbc68d51c182a5ec3636e6ce89c0040105581e033f9c4bd4408f0e690ab39766101907ea6fc239f11793f6415089f60870084702da2b6cf70c00031304497949ba64644cc4e95ec93c2d358aba8b604abf7278828e5cbf27908b990219cf0403df3717325a94393db9cfac95a32f643dd014f46c6fce2c8bea473f6f1f1f39f1037584c2be36034fd28a1bf0a99abd1ba3ba2512254cbe91794d4ef4afe8cd2e3a0336fb89f4ee5ec244aa882d5a56c00c39150deb03613b77c77119edfb03f48a0b0386d2ad791785b62a3406cd92289d7b3117c2dd29bfbe9e070b5ff40cf3ce233b0309f4629d5df5d6f5152ce63cb0f8b3e0d0f346347294cbdad963e83472feaaa303973f2394f00edaa0229709ea91f230b59ecb7f08db5c62b6878f2d5c808b7e2103fdfbb99a19da54ccfe0eb7eaf28cd7159bb55afde3b9caedfd317cfd8793a78c03a4c8c80ad9d1c33be0c00630b00d3be0d7c2bcc99faefda29e7583e58efb4d1b03c90e45740c4ca7a93308bf3fd5bf172199697dfd04e9d522407ff5020a6ef6a303f86a0269edb6c3642a4ca28cad717a328847bd0899a79476d2c6a6127ed02dac0313d6815e88ef4c5ef8fac4aedd7f8cbcc3984af6facf60eb4dd7477ce693952603b32c7698bbd49e48a3eec9b2ef0e3671fffe2b4de8ae75f0d3bd1e904343b64f0219ffff03400b86b04671104d4e0e0d7f554f268c496a3417f096d884d76b457c5ee0ad8303ee32c25c30a4132d73cc1c4b5919d7cc55687a045d98be24586af029b31727fb03a11beab5ccba7dcec61409fd912437a3c9fc267a73300d1122eecf622f435b3e037611124168d3efd32e8377a6ea19fdd29400f2063a70525571fd155093daa5c403a798ca9cb58d63fcd74985e5a6a6314c046c18a1e87aa0ea6644d6b348b8e51e03eaa91ebec80dc0a8cd6f1869f51bf2db9c2421d30462ed60839815bfc6e20b9203021b0a7391ea1227d99a668ac4928e0957e786cb26568f3bd01f7c544ddfb9c8036d597a5592688e53497af71bd448f697092deab5076d36f498928f375a2b0121032e69220b994ccb6a096b11bbf41cc94c05f0132d6b51e229904a7541da88ea2403986ab8d785a2197ff7e1cee2926030e527e832d934cba08bd8f8d65f19bdfc9f03952897f2c1dd5ee0384b256450d4fd556a03172b6afa512f53503505d05cc5f603ba95baa5b0a413ea0a0f06d57eb61504a8329987fe3b0def1a20cbf5de62d11d0219ffff030bb7d71f08aef2f87be0b2684695c098ddb5ebac17b62c947b30e4014823809a031ee919fac9e59b22f5652b7b0e46e8820e6b910235d8a1d58bc8c0cd56cab3dd03e0f21024db6d4ef0e3042eced5940555f1585779991c91588774d91544f6c0a20219ffff035174373b837c07d9126641435ff711d82fd9692126f7ff567fc84a58a07a343b0308bafa0ff1141dc52e83f79292a6d85b62ae5e36499a5e86056154f9ee8da83103c73741390481b40aac7edd0af4a2bcee02dd26a12bd5c969654068956bb8343903258ef4a6052f827ebabad8d2d20dddff4af6eec7e7a3dc021a8adb4cfd24652f03cf8fe1ac2ac99f5188c3bac021ddd9a1bff12796db4685b39004fdd8eb21354c03dd0b741501b50c7b4419270a9c6d5e6d606f037a9af97059657d60af6dcc38cd037a33745c02f7dcc58903bd6901ffcf4823f5a03cb79dbd48011da555bbc8fbaf0347b579efbe3fb39eb10b6c03ade7bbad3fbf3ee9007fc996249f664dc17890f9036e571bdb884f9ef1869c9e1752efb61532f9b635bef9168cedf1817b63b2ee0d03f7a8e302b8572b23121d99c015287c77e8ffbcd5bc4e81a79585d4d97d2f86e103d497686792e7ed355c1b86ebb9c1eaa415374fbaeac2663e4fccb774e9cbbdca03f664b6d84bb42bcd0be5d6f7a3bfb5ff005d5897e4d027d64c4c620406cb0e2803f14d2d1394242227c3b03b44158a66061c7b282dcd85e32725adb86c7132211403ce779b1205c5b07fb540e19071dbc2a63e3776cd8ffdc4550f9bf01d656a5ddf034530d05f24682fdc325cb1813799ed21ce65f9871c66f8d12f3deed39306a39403bb2d2e2e66c0accb8b4eb5ca51a1495c0df4a85a43031a98cd1f8940c74402560377859cb536b169ad6fb333e3ce595cfa3bd627d86d515c86c0a3e0478fbd8f2b0389069b82b1fba0e7d14f06cbbd55fe66bdf474b3ba8bf6e29fd561ac1752d8090382f0589974a84997f773f6a1fab888011444934bc32848597cc675d2b4f16deb031ffba828c63229980b755b45243d0e1f0aa77a2b7e3e6c72aa67f03d89b0ba020380de0d84ac470695826ab60e9dc9b83619d2c36cafe5f4acd3e67de3f1f66ba703098fc143d3306450bd1f0d87ca8d6ba973d9c9f8f60c344f6f42beb6cc96e19703e95a9bac386a42fba842e0e381b38a5d1f79dc80b054e0fdc4cceb27d195a96e034be549b57375abd703fd5b9553b21e78e83be1d5769eae9067cb91fdaec4fcad0339ece54b243c75224c8365d3e88b7f1ca96641cecc07597ec739a69a21d40d2403e88f71faf4ae7ed6f83ec804b952abe44ec9d8e856dee0b9cf111c79c63f848a05581e038592273f6c9d222f974501e980ad1f8c3eb3a7b8507ab7b6056ea7f3100c024701da82e386ce6805581e03070d4f05e082764b4481d8be6bf183b8feb6875ecef87614dab05018f00c181847e09b42c7928dda05581e03ac7030e668ae98e939a57a1dcec97c5611c16d10e7820d319f5416b5b00c0547228a7c246f160005581e034bb20658bc678359125d7d974e7351706bae464079252a89f31487cf800c194540490287c75cabf998dbec039ac03376d758727fcbfdc6ec1b82f03d1560d8ef536d04db1d8171e6716abccc05581e033c6d486a048572bda317d1310c98ed5d1f211a46d8240dc08c8ff2f390040103bf92b8f9ddc65799bf212a1bafce667c6ba644af94741138c70d820258bb41a003038fae7fb0a4cb76f4b171fc439f009e9802fcf76f4fd166e60837e5c6780a510356d94bfb8f494075d4b13d3b62f8a8ca8bde3275cb8214783766ea9a3b2f270b05581e03085f69668f8c35afc27a30826477f8a4e7c2356fcef3111cd8323050900c014649624a2bb1000219eb74033d618dac7036a540823d7eeff784c6149513fdb33c4c414b27b96a147d743d47036e44a01ddfdc199f136f5bf256762fe113507ca32ad2f1640400579d547a090f03b98237dc2d85a943d4f34e0f5199f6eeca9d701631afa8e0816c7f2c5c1792c803267b44326f5f0705ab14fd34e5403d7756451b084b212f6b4dcc3d7807010e33038a3f72ed9f06cf4a8154173cc5e522fc1bb30281b54c5520362abc79b551dccf03dc8427d3b76656e3d7227cbdb95ffa145a08f3b776c186261b4c000788ea628103db9555efc2d115aee15ae3dee5162c0c07c14f29715f8afffebd16b5ef08823f03fda20171a2a04ece97f605042092e857728c3a27344eb859d43344c148c1362c0219ffff03f7848d2fa3c1446f89c6de3dbef7b6a6a4030c4c2933a52a848188e42813438203df5009bd8422e114b5386991c48da45820d711ee21be1af92eaa1728c0af7d040383df166856432966ea9466376d4d7e9ab3622d1e726bb14716abbf6ac73d2ba7032ae9de70a5d97ccd10210f3b084d638fee74dd75fd569d97af575f5d0f82080f037c904aa65fa8e1e226b50bc49af19afd7739d2cff7b537e141912b3ff0d563dc032ce66b634561fded7f7c4bb94aa882443a258da0781c86bdd516aac365cf03c00370a6d57eaf39fe84eeb4eb058a2dca7c4c876808bc099bddcb29bc25965ddb2003950244dd4607601aeff0945061ef9470ec9cbed8b117c059d1f05a66650cea7703ef240be345f39e5f8bbb1deafee57e45abb183720aeb5927c3b33fafab142e1803124cc7e289d9e8844ee0ece9ac3d39b4b62d538e81ff9e4c4b1bd36c9dd6b3d503a4cbf4719bcc70f0286530ef88f610df475f80cdbbd7d1c7b79176ffd294e10103f0f28ae2217ed0b9783764c008090a818dc07f22d3de3eb19285c26dd48e13520306cd0a5518f0b079351d7caf13ea21c35708255fe8e0799bbad605cadbd5c5ec0343a644a628e4e7d486c41a2dde5ee7da7cc2969ae22f6565c964a660567eb7ff0219ffff03461b989d3038ec9d6f65f445b8728d2340d37fd619cf8f7c327f0b40950c0cd20393ad4fdb15095a07dfb14fb8fcbaa9fa7ad889cf423e75bb6dca3c33f0cec05e0219ffff03aa8a9c909fe4bc28d43316dfaaa6f301fd77d19aca2df33b734cea7af2be2af803f4b26e72d55b6fbbb05a9a529626eebf2f7256b2f50c1696a4f68115dc4d2b4f03cc6f24062f4e61991a560fa45141c0435cc9b3c0a988dba2e49b57d590a60d3503678d11c888f5fbeca28c3024c0e207e67dcd1d8cadd725de5270a4d04ed7639303a426658bc1f26338e3f5d6e5589aa8a3e3e5cf9e527501e6e07425029c28b114034644af39df434f929020cb35392450a0e19447214a47318b76e08a0a0c960f8c03ec5943e7a40aa56aa321aca785c9cf63673f9f02cc11899cc7953970ba9217fe03c8938416ac6e8661648c2946b7e287ec6a70ccf6d1048f73156f253cf926109c0334732c5d8d0719c0f88f5b4cf72a0680cde352316455db624006e107a0e2b385033764ff082cd5dd6ee1f79da6399ebee9eb787d4a45bac0fc92669a7d87d095b60322ea61431b3cbabf4ee7bfcb55caead525a730afeba4d286c483e4e96f681d8203e05eea6fb18a73aaebd773b0463a625ecff9397aae3d220e27ae56b2e694a2b1030b3b486725a803845be3d33ba96589859ede98acef2b32e29812e4b2d1a0ec69034546d7aedb03ffd2fa616b8d5122fa1eedaba6be1aac7ff750d3d9b10734accc05581e03ebed4d28ffaff6f9dcde30d94563bf4a46c7ab8d35983cc87ce7866a60040103dcefb7a9bcf6b2759d713db58f800b587dc738819f796b500d34210fdd0c59c701410205581e034fca63929f079970d7e10a9c9e448cbfab596a0a62a025ddfd72ef1d3004010376dfe63c96fe974853d79e7a2e584e29e3995b88b4ef21613c868daadcad58f303ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e032de770cf1f94aa36fd938501b4decc8f91d8541d9c49a6d607cf2cd40007011bffffffffffffffff05581e039b677e262eb8b3e755e3773c7b24117524824b2ad9e8ae8f92e631e6d0040105581e039b1f782c7d2a60303ae47bed9fe04ab48b7625e3b1cf3797b4dd508720040105581e03f7ae09909893150a360ca381add1dddd74664886ef040ce2f5dfeb90d00c03473dc097369618b005581e03d2e7d9dbe53beea25514a2a6d995e105c489c282ae2e5ee622bd5d0fb00c02470298d5ef4a799003905982d3bc98b3ad75d5ca7a92446cc8923fae39a2352245000f9d3e9dc0f3ee03bbd13d463ce2111713bb0d6ad117b0ba991bc32336d501e872703c4ad6bc3c9005581e031450eae382ea8fea79dfec0d35aff656f8f2a5ab5bde75727bc253cac007011bffffffffffffffff021927e7039cb22fda78a2dd154627f01516e266f245e4bb4b921c6b9b5c0ad77377344602036f20e1297c12e7d6ee2d84b2a04656ae24b074d4880a53197165a3b3a41fb5b503cac1e7046cc052c406164188eb39f13f0c7de78372f3bea06415da91e09ef9d7035016fd4e239fee3a09133f84a9c2216d926e5f17f363d92d1aa3df0cd7b07dbb033a033bea0bc6830158e2608fde4328397c48ab338ff4af1e20d44f3efea8711103e9841d51ce65c4c3b6091864b0ff5cd9caa2550497a1c7618ad654336c8627bd03152fcde5eef3ed948471941ed329da7cb406ea168f9f970f76bc56fe539bd66d0382a21de7a559285fa3ade151a86c9b3434b7600793012782407de5bf245b79d803aa0a54be1b6af5ca9cb67f7dc68513c20eec393b7b95ac432c641b0e0fe1fbe80345e0048d4f81d997df626b97f9a1ca90503dc4d70725f26cfb68d1f65016946803fbdb523403fa74b68554c0e79f180573b5c8b4a6401218b79fd4a6330fcbcec60366e76dd2955d2e3a3c790a75527cd657d5fe64349b03e9e69ca621bf9df418c1033ec9d4d8856b934eb4bc326d3c8228b107ad313e83b0a662a867323f0d2219a203b22ddb994940563627839eda3550265792f982c789cbcb8d6f1cbc2761de600f03d7d39e094e424363615d6121faaa71d742f7540d614d69ba37427fe3bb6c22590219ffff0353697564d6764c229383f1b3b755c530271843bd07c66e18012917c31752fd160300d0f21f8e488f0bfd460275ae9deccb2ebf3f747a8c232c2f1ea2dba373421003feaaa64320f1700405b05b53b42a76adb360aeff233ba8e69700f6ef6c1de69a03ef604ee0c9389062bd1554229dd2f2c47b0df2c038fe939e5c5783dc07196d110361e18c57d9a0fe73905193ec4b4f21a3ceb53d5a219f18a9af0e66b41903c53e034b2808536f99ee2d9e65af8768504854c2a61f667d524d156344d83c8137d26003db1cdf1e0083883ef058c5a61fcf90f310f3cdb524a31dedcf2345fb0a58143303e8389cf6ff0a2eafa6cb78f4a90685ca66c89c78f7c0eaeacaf8b677c84b670003d45501a77a4d4d07eccec3283df56b919b2d68f045a37592bf282d6f995e563503f5b7f5b9f234a619761e074c5074018b54167ce0dce0e26ca812908c5fcfe1a00344a55a234829bd85f33ac3c919c2e23c77c9e32154d5e17440f581e8e3b8d76a037d7f9962ca7e4c054e9ce6601b496a7d1c6cc6ae7bb79d1c98f94fc511b286430383a7128bd70db002659396951e230f92dc2004518c0aac225aa9e7067ab8354003353d81092a52f20aee0bf6248379e30a0c29eadbc155647f16e8427955e8adae0219ffff03572c3c8794a43556a8c65f5d70771edf86709bb7469d54eee6d4f62ef4114dea038704c401d998f8e242fbd269521654993f1da735945757b5a0f2d46ccc25bb1a038e6c0e881b2280eedce333e6ff77d5a00b2dfac9e3d917a358487e240e8b3e4a0219ffff03e624097012d60f16c89295304d34995dcf9f805f5370c2e6b2289ab94bf3388603e773006f3457ebf2d3cf4e13cf32743df1c4b10faf4664dba0a981b2472939a503db6f0ce1d90ec0eefd5a839c06f6775fdc637d13bacb69b530d83760b2dc763e03a3f0e1690059b88e0ac96eaa3f25fd604d648232c3fcf3721157c698746f0c5203cf9f314e2a5476056d4d4550e41aef6fb38e23b3198ba51acb78151b785af13b03b5068a49a179ff50a01cb4fcebe2aa219d92ee1f96caaa1c964d4e3e9fced6e9032a9f1d371beead6df0ba027b4ee9c5377eb5a5f7ed94e20ed0b6cf3ab6ef441603e5c7de72502cb8a41e566ad744cb10c18005be1b464fe1257a7cd4ff465da94c03c69afc23b13a26e82206a9951542cdba9677aefeb2b12ba2c060e9978b253cb4030a422e9781255a93725a4e7f27effdd03a6010afaa400485a758fd360fed4ad603ef4a7f287fb9d81d58879006e775ce744b89b1bfb5ea246265249e1e83e9d120038335494d51ef1c642104c33c02ee39de24f079ead846367dbcc9cb4414f561ff03980ee416b59bf0c8f1aafab2a2895b4cc32bfd2eef03a75fc4beab4247b7e2b003eb39a5d827ef8b5684ca2065ec5b1c592cc0eafc149f1fa0f5a4e51b92f40c23036326b2279f931dc647cd5f90df57a921a49f3e41ca1617b1008c88ea189e75ea038c87a5b841d29ecbb32f13939cf5002cce854082e718c0f1388df088eab722a1032778663f31beddacef322c4df02f3c284de002554d6bc19ab61d76c8c68b717903f4c73390eae15074f9fb8ffd85289b5dfb4512713dd5ac42819eaa4d1c0f8c6805581e03dcccd0aab85b2dff88d4e359eafb19fe280ee2d4cab626f760780e35e00c014701b15ab9daae0005581e0316259420d0a3a1382b4931bd0c471c941465151008e930cd790e5987c008480125a9e78465680005581e03f4d500d0252018586830ba110844fbb8d6f439ece56bb7be607550f400040105581e03536f15ae4b8bc8796c5be940836d07eb2cc9ac44af9f6f5f5d1fc947f00c084648cf20b6b15005581e03d1d8dda6f68bafc737ea259ef61a17bbc4a82eda821056791f26a3a120040105581e03d59c3758e9cc70e6f14aebe5f932d91cd36a7e6342ad77bb6725823500040303f17fdcc0ef7da728266f715404df53049e6d491b5b007e8f0891eab34f461be005581e034a83a99f89a182d6fb53eb548ffcf493a1ecad8290906206b7bbf506700c181d480487c5c066acc9d3037df2e59f2bd447bb2606e3b1643e76dcc1f8ef63289f49a6502d59f49596316b01410805581e03fe1f955994f1286b94629261a6b59dda2ffff7f9cc72b17235619450d00c024708c51d39e2fbbb0219da5f03dc6862bdbf6efa9efad759dc70b8606af58d23d968b7ad55119d456566b5591203a6b5565c7f292c9c78df817241583c24dc263c000391af28e0a85f02dd69a333033c96949ca825925812503e7a962eb1a66fa020a685bcd42e7bfa9c16f76059c70219ffff03e0bb017aeebfe970b8daa8b68465e06257296412e77454ccd98b6670a56f0f1b036780d1c359d5243e06496855c8731f4d9094d54d78f4cfe90cce12fec422e22103ba8079dffded5d888c3ca3472e81d9996bf642dc202acfbcb567e5a42cba8ed5039d3f24a1ca28f914bf2d421a9e4d09287403cf80dc9d0ff79b7f537ba46360d1034b7038388f99789c13ce94fe621b844d74825b9d16a73ab0b9a5578566be2d6c03435766929266ebe514355e2a1088f59471ab9f8ce0bb52cc1009ee9265dd45ae03001ab755b15d8283d8ff69b9357ea0f90f608c35be0927d602860c31a30c1a8b03df6c1d97bb99d0f439e5371e6c6dcdc4cd56c99f5243f491a2907ab0903b6c2c03c760b0a77520df56f1bc5e30738e3e799ca86b5018718b4aef56708c4acaf718035da0b5a28a001f5d852156c43a8d570928ac072f3368abaf037f2b0bc815382e0321d76cc0de94114c62d8a198355f90d64c9297572e950ec85f5384cf0e73eb630219ffff0367c4727d51cc54667ee4dfbf18c8e16040db53cb70e92bc69ba77836a62274b303501946a84c2b56d337f9c9c61458924235e0025f5e3206936ea13644976be783033ab9976ae296b7931583734f66343ab1d8b6b06355c1c57ff525f4eb7f72ec2403617ee0412acc1e12f1ef897ee2a69e622c3405d9533d34cb6b464e9637c238810388c638d38d72c1232268156fc57428ee5d4e9d1bc5fa5481e2d5d54a5c0d6ed3031893e771e76cf0ba6eed50e2f5a90be853cdab3ef088fdd9b2c20314b4e9458503c33991519b2382c2609e7bd48fda4f6a24f6ba284ba58e744407e9b31be9308f035d9128869271163307bd61422c4046d0dd1eeb994626ab6039023c6b1ebfc61f0321a83a00edbea970d8e9bb26bda4ae32e780d679534d2b15c7ff24ea646ee0090332ae9a1d4b7e10bc6bccb6e29195d0a645827481a532b5344d7c18c059afd60803c4dc05fa5198be1802c3ab3e6bb994270208411e5173cdc562f7b7b049e53b8803db9e5f5ded75de4511c44f85f6b219226728dce5fc54eafad9e1817c6cbd6039038986e07ca8136213e98ad6a556231aead19b1697473494e2100da53274c3d91703685ce05ca998c5ce6b34a0a4c5d48369109760facf96f35db3966913950bc2c40219ffff03b27560c797e878fbbabce262551bc45dedb1469c58450e18043e8f36f7ef63ea0219ffff0376e9a593388590fc8cb3319eabeb490494c021281314207b023268613c4fa1570310320de94bd4e80c811b03360619efbfb497d8e496fc4f5507566d3b70f5ac460219ffff037523070c4457dfbf05c0cdcd82c5650d047cc989edb78a3fbdea6417af59854503960b98ff1374d2110e46f1291eda47c4ed6514d79595dc3f988fd5c48ec1f55103bfcfcd2129625d95e98b551b05882cee1c4e711570ed66eeb7ac4d3e1009a2b503372e327977516e6ab65daef248416193ec275dee98ecdc5f1321532d9a190f5403cf39cbaa087e98ca7f563a376f9b98078c5c86b6e4edb3814c4298844c2406e903d3eea257bfb4ce24a61b65e26483703d018fc8cb455dbb20e498539b8d1bb5b303382e9b6d9578a97bf3387e4301fc5308f0181e0bdf206194b936c13e4a927c7103bc538da1106660734c384d5a1524979fc12ac0987a26e31e951ee900186b5edf036b85fcba3164edd74d5b381ea71f4a18d4d53fcaa1f52724977369709d89502d032a56d5bc04342e1affd1e24a9e99b54d3218e364553795a45394a1f3331d58d2032ed78d54a693effd02eb37122ca1ecb548453bbc73e02517e83377f20d9116480301b85c632593ed144e408a1531a6e12d764015c79973cb21d5502b0904843b1903ac431f229e6fbecd8dd185df18de127317db2ab7c68ec6d45ca38533fb2adac3036452fcb7aff614bff67f3a0558437c231944347e6a5883c7db16e46056353d450390e52a9bd59fc59eef85ec04f6480d4cbeb4e5e0b22b8c7358322cdd080eb30c036a252c73c81ccdfa8f362ab41552a92deca61b98522dc7911dd6995943579cfd038038f0565207430df596185966c34b524f551d1fc21df1e60518183910b7f14d035a238d282dd25842b1d8f62ad526924721538af5e0fb022ee0ef92aea85c38fc03b89e97927a73a34e761a0d950381d8263cfd8bd271af93058c5ecf68e54b379003393cf9a07661d6b5213bda70435c5d4f1af78f4b3cd7883f27babe39c25dadcb039babe4e84d950a65cc40f0c586ad83c98867c0fc405afc37b1e612f3747c03cc03e6660d7e33408d9fa4e8905e8f0f2c2687720554b64d77d56bba5101f2487531039b9263536c72b27915d94ec6d0571664fd8c5f73a9b3bbfaa860cddac2acf0f5032d000ffdc22202e3507b6e4b6b0ffe4a6ddc0980fac5ff637f3590bbd5adac5c031022fa55043c86b0e7f1c395ffbb2066a0829e244b42d9cd4c2a84f0e0b748fc03ead8f396ffd25b7319529438402b35448c7e22b6bb12bfc61df9cd3556cae67203ea604919fc41218c8332e6dcf317ea244941a5627f5f944cb8a366a2c11d6bfe03223e2fea4b6782567b7c3b84cadb1075efe3b8d6dcc2527740e71977ba393d3203ff2179aa7321e3908ebc150e98575f9fc5bf836357ccc5d66a868c2f32a8fab9032d74099388e42f38bf09b49d663b339819ef218e7e67c09ffe2c0135eb67ba42039d3703b071f28cf15fe6af417fe8c2fd3f85ba3927f1293171cdfd8b168693760360999fbe7df67b520ff2c1cdde9d04c3e108f960444df0bb85dc4e5c63576b5605581e0395d4e65d5e95b1ca0fa18d1a53d7d14aa3ca6edf30bfb78acae66611f00c0147023b28b680180005581e03a0f9c05617d8e3634b5726e3c22062d8c144d37972805ed8374ee3fca0040105581d02b8f992db1980b2b813c6860c61133125d9a5f5547043cc5da4ad64940c185447037d7b7f17848d05581d02f222066b4546ca122167efc584cc7c1df835e7a37110bf4f587c316d040202190a0003125a38d7f4c1b45e944df6bcede7ea854ca30e0ece5243442bdb565c2de8ad560605581e031a30f254555269bfba6a4ee610ce043cd9e00ccc4d98cdb655ec23fc7007011bffffffffffffffff03014c3ad468304a0049adcb6a667d19e22e615435a86f0bea721965ba358de7bd031659de68e6a279da28599e113109376d848bf72a54b56d945750294b8c97e773030657e508cc6d404d8cc89513d451fab06b3288013a5753906560d9cbed22571f05581e0309697965ce7c97e24ffb2c23ba64c8cc1950b7ecb9dc2ced0d5b06c6e007011bffffffffffffffff05581e03e35bd46c6000fa028f61ab5cd0c3ec08d3cfacb8913a27ab37421715600c01474f0f55b85ed00005581e03553e6b88f5420f796dc148dc69d1f2136b97732e6dbc93ec3791245e30040105581e03a8b8f3461a6c462ecaedaa1e37ae4bc25f07b031e9b6ead4b3696dcf80040105581e03bc582b6134d659d37943a7fd7bf462af0bc822e5210a162143af797da0040505581e03e7d6f180d34c301ac7ad5d082dfbf0c4b06e9b823d2ef263f3b9637cb0040305581e0351083e48b92187d18bc8fbb65c2dc430e1621d637f2d0953ceb0e5740004010219afe70359029f61c0d25c206329a79cc6f4d2e8256af71eb63cf722b48d7247eef834650377d93407b5e0e6685ed4852ae31f7f009efb4fb291cb3b3b8bfa702bdc9d99440349ddefc7c8eef3a9f40029aea7b91820290ec7e0ba07b50bfb58034ff061631703a1dae8bb2586ef110c7f7865e48b5ef115c716c56b2e29961c8c4b66bdedf4f4034fe81bd65179ffcc1f0ac4a84f411531d56f746ccfd60681b94b8c1a1235a9cd0395e79da238bff8214e27df0c262f993c244645c9a570c75a6f4a24ea51ed054c03964a8833b09d988e779786f6c500be1e6fd104212a6afe694b6fc0e6bdb3880d03506de34680008f8ab54e0bf747827f5b6968dbb06fa6b47d4d3b4e6ae4ada34c03f7ffd62c5e120e73afec9b22e40c26ddb7ae22c546ec414ed417dcb35dead70d03cc8b6c15ce48001f561df9ae7c4c55e854068edb826e95ef69cbba83491235bc03c2015528c6fab3d216242a8f73428a91bf7a8aef38f1ef1920df8bf897eedaf303bfde1968a53176e7230a205114ca3804cd0252d5b6351739f13c41042e0c4fad032424585cbbaab457781b14399918eca099277bc7d787f35867f7e9f55a55a55503ce62958d0e8a785ca118d3e85956f48ca06da7788535d2a82d455a05534a21360219ffff03c8179f14914960a790c9312e08bd87ca8b72f5cbd93a1f37ed4193bc1139e2f003d8b0671bccc80be015085eceb8383a5254b9dc3956327be4841914f90e90dee3032be7ca6407295ed1102ab9c4be9c511465498a9568a447c6f7e6943a9f7f361403678c9619d6a1eb907628365869ae840d106d4985fff0db784e58982e703f99c803e7c01fd3c54d308d1ebe28b4b2640387ba9b3f6e1bc2f317a9f7a0ebd7c109160379ee7fdc6c8891ae4c75b071f7ce05b2f6cd87eb22ececa51d0b426f7e11f0ca03e2b9ea0dc5cae009d13bcdb651d1c44290e2de50aded8ca8e85d344d9b8f49890219ffff038b6716f6b55f422ae7d5b5f617902bdea302b01887e8c4732c8fabe02748ee5d03503b540dc7fdd55fd9418d498b8e5dc8f18ff933e2117c6e04f2e6abccccbe3703bec1accefe4ff011b6b9ff8c8aedf4627888b2eeab1923cad81e3e18ab12a21d0219ffff03202e5ff0bee2d66bedfacfa9297328ef5fba3d2a8aa3ace8d682518b5c4bc7a803a445244c131646cc0a8c764f210c4e82d914beaae12b8fbf64334acdfbb4b61b032bae7d85dd6856710c67edfc19727a7dd848cb89d8163b10f35d7bc54d1b25fc03f7e5e7bd3636cb083199c96ed3c9612a68983693049fb40d23f6658eee5380620325b01374f14e97062af1adc0c1b177d7b9a1b12f4bc5d204ef60620c1ac674660340bed8efa503a1b6f7f917166b2d04e9e31d4e533e90af74fa45466a81fb0150039c3ef060db2990603793518e1b258fd1937b349c36e670fc427c4e87c706e62b03bb851f01ec677c02e6a1da8f4d0b6f0fd1a9fa69616fd67266695015a006d4b203e6ac4e14d7ae84535ff125446615de55260cda0a93fc7ce753c714fff4fe188f03140b8c7e7939750069599985c03f297c717b84a441dbaa71cca9e0ba1c4dc35a03aa8f1d717d94afde612bd6e2af9c6d432468fa360b38049e8ef7abfaca1f568b03f5a1a391e2c2c4a7c18bfd9fe708e0367e76bb5e2065391afdfde3bf42a516df03fa51472a845a8ae5ebeb91a2d6bd79cc1a8e2dea3e81f132a84a9435d42506e503631283c64705ee401db4cf88746d046a15e86e18cba5cd325803ce403ec1bce103556854fe6da1759162c9046ac72b602b3ed28b0c2566ee39df28b65cc7068d8c0330096d3c037f3fa37096ef7dc76a5cd70e0ef112381f00d1432a19c4135894fd039cd7d84969ae12ab147e6d00bb2785eb66c33722932fa79fe4448dd41f803f0303be4b138bf99265ac3bfda24bf9c5cfa321b03e485ec5ae049a11099737d17ca80307a1f75238ddff6afc806289baf77c607720d0257799eb6872cda53aaab16fb203827f29d68de24275db7766d4dd86594109d47598d7edd83966f1ed197a6ad9610334bf02e88a724ba5f0145d319bde5d70c0e3cb6cf980594c612a149dbc8105b60307f173c2c6b91ce95790c6452bd9f011492c4d5cddc4710a679192ea1905ba7f0330791ae47d4086f26f934631a9335e88585e37957531d0253157879ed13cb757039066384ede3c2741a1a4dcbb9c94c7c2db80e34ac026e2bedb225d67162f84e603378cc6905ca543438c68013bc2c9f51d0dd34d84d5d02b117a971a60d88ee37f0378609985cba6522c1c6de9ce42b7b4bb207f218d0035bd876a475f4c1d3658e9031e5fc121ad10d05113d447aa686d0feae25d30c212af3eb581998d1128cf7da1038f7519e4aa82059c7cece92e0c116bbc2ceda61788b4ab0f29ab97c84cdbb9c003c9dca98176c8a454f06491378015cb397399ab1f47ad0184fd67dc71bda8ee5a038822b6d34dc83a0b286ac2095950d3420d9736082e1568bbf0f2bc8ca3159efd033e8c876f4c959d2b1399eaf804c6012ed8dd58c6e337b5855efd29cf38800a8a03915ecdae0710badbaf9027319f67adc6f8c47742bbb69450a1f8f1c60b8809cc0363185343b1d628bdc7c9a6cd6a7b47764a93b96fed19f9e251105c7c5480de130329700bc40588f1d860533c1f6f044234ff48e04aa07f9a01624b160db146c84f03dfcfac9995ea7ea3367a47af323742e22892e7b3bf47917582ac3e5d231f38e405581e039fe21f4c87bed94138d2b4f2c65ace56d5d8a9e0252ba21f7d91cca0a00c024648c27395000005581e03d9d25c9d67560edb4489abd5e4a885100350a715b035bfdab409c5fea00c02470d84e88b34a20003383eb1fbc5c462500bd14e8af2cf4d4e69296fe9dd52117a7b09b965bb80c6ba01410705581e037a3c4e1f7aad5dad9df4ac04f5179c65e36831f571360d859b85cd0ac0040105581e03bb33792f014941348ff64f58f8f49993d43ad54f455fef139c01280a80084703991f4953883805581e03b23bd7de4ace0c1ced110b040014f51926559800503da7ba93c30a40800c024701825bc5f7295805581e03e2accf81e386ddb296fd8e2f59dfedf90f4c5e22322cc84f129ac79ea00c07479a42a01a190b7d034f6e21a9e4f41d0857f6c3974c56bc9f4d11369986b57302cd955079373b2ff405581d02a940dcf8f947750412f9f5b585b627fe66f8b95006ef0210248f2f280c19af57491212ab23765152449b05581d0221fb1a35d56c73ca4c03d0e6759af79a0f36444354dc83791c6fb465040102198004037a3670f78c75958f13f8579474b348612a80af61fa9b61b2c81c415523f170590605581e03cc15540d84c28c91abb4b59175710ef906a70d9173f2182b4b1df3d64007011bffffffffffffffff02195b6e0219ffff038a16a3255a99b690f44b07301b197e8adcb4ad035ad0cde8413e2d9ff0ae2f6f03a4bcdadcc67e0252d176c01810ee40304db7594b74db08d9f625675cb3d2f2b603b713eb3eeced5c9e0bd1e3f3d99041d653d76ee6881dae44d91a84cd4edd956003f25063cd5cd7c7c1171c353d909f89ef133cbe8096a3fe07406370c50f2bb9bb039855d79ba588753ac69696262b27c57c6f722a750916e867551e6622d9523766032bcf03f01743f04834b9e14163b7f4c334aba308a5993999d3916de77b836db403bd36da77572a3b3203bdfa19df015cba35a90128b96c38fe2ef658943c578c6403e56f53ebeffd4cd452431e8fbeab5140c0390d9b7fe1bb2ecc89ce5e47b059ef0375742839b1ecffe013ae4b209ea1b6692211d841fdda3e185965b2c0d39750f003189f3edd4bb6be3872a4c4327da898061f242d5377e00b6f8078e46aeb6e638e0219ffff0219ffff03803e4a0ae11b4bf437c14729069418415a8a67cd2be596a4775a370ff1c795a703565eb280ffa3d0fd3fd269110e061e17212700afb49ea6ca02b79ca1f273808303ef07aa9d2b116d4b1fab81d180f48a4eee53ea8bca4c531e2f2dd3fc7f81b3480301896ea376263bd799ed5fcf8568a9b9a31f5b8c703ff9237eb8eb2718d8569103c8b79f776b94917cfd5702396ebf88c4dbbc6551fa4fe9094255d548416a5cd90219ffff03a179dfe4df8cf5bac39ea8c6eede0ccd17f50445c3d664ae0d1653f71a5c27d9036b29386499ec459c118358f31555ec391128255084774e1b974827f314751af3032970e2af80e852528f805ad6c192d7c728e2820fd33089bcaad69f0c430eb3da03ce7d3533b1805ccccd0ada569bbf8df662816d5b14e27b0823ff91ceb461b048037f50e41d877a76353307954735d9817dd3a2d6eca5a68857737a8dc135cd068403efdf1a4ed5f14cccdf7fed294bbe59a5162da94c44fa3ad4ab3918aa0c7859b403e6033ccc7c1b5b4e2ff17268d5eb40bb77f440867a574bd3bc7fc44bc17907eb03b2ee1613d9604b9704cd96b294eebe63e8053fa49e46266b1735bc84da52256903e2c1b2c3af8c09e802d2524ddf7221fc67f471969bbe0444d3221c05736eb836039a1736d761ed7f4139163cf6299071d4d4e5c71bb058fa42c6b5226a7de115530321c6331ea0249d9dad5e2d75276b3cd054eaf253a0d0202b5f47dc4b0c24e194033894e9d74fd872477deae20b4e875f7ba98dc9c89427bae530e9bef0c30699e0032ded35b36c28784e51df873a6904d985af2f11286e6a64c39b12bccc62877fab032bfc13c1a95648b5c97eabbca71b967b6701fddff0c1397f11526d50e0965224038a62dec46d5f867dc1e7aba3f431f994679f9508af65b7c99d51368ee7a8bb2b033f6248d00bef51ddf5c66921f93151a7bcd7d4a6003aff05e01d4e791a57939403ec657d2bdd9b727059162d2fb12d969643fca29d3ae6b67213f1042135b439df03e0cf9d3e741124fc0c0842f6f73e9576f82b0fd6973b625bd2772c7b89f307ac03b2df4dc1bb60f9462b85f3a598f9bdfd2fdde5088c07fa67fc77f4941897a5e803fba6e299494734aafa026c13073aa146b4b2333b5eac051eeccee06dea58b2a103acd1f758eefac1845ffa7dada034c075196c101d28a5684d1c792d7bebd1a1a70348c21c471ee10917f74eb0985f472c4b13d623eb3aba55ac57e20edc32b7de7603de1718c748d618ca5b3dbb01a9599c18ef156370986bc442f9a7c07dbcb1c26e03e1d2a0464dca80452a8df227e1efc697274ecab634602959efe542dd34ea5f4203508fe44cfd3f808798b260f5fd77e0838919f540cd2faabe836956f500e051f9032649255b8bb09ebbafcee190b7974b9fb00bcd57922c582e636b39ac88f633140325b6535dac5f7c102bb14b2e15a48e667fde6d2786d07b96b13252853481ba17031fd07709d4f328203cbfb4a219e9e3b527719f7b6d15ec32c046b84cf0d5fe3e0329fc1c3b985a3985f2dcb09f1c3a668d8fc7316696a4eea2090c93e6367ee807014200f005581e03ae9669f09a3ea52287ac7634543d45cfff396c58923c0ad775d70e5d30040303f6e1273e7a2757aae6bc42f33113455d52736a1faeffc865244f06deed9872400605581e0301ec522a4026b01dabe8d0437a311241fec73e70467968d8c17d28f8d007011bffffffffffffffff036103715036faffad8cd2e3d1aa94e058e3f4ab1c9b2d885c62468dcc4a80624605581d02707f0bb7dd7b0b6eab56a89d3d93b2ce51287c639cc0f949238eaf800848db291b288fc52af103f6e1273e7a2757aae6bc42f33113455d52736a1faeffc865244f06deed9872400605581d024625fb078356b4568e66087adc3f6874c962375048ac62c37c912f6007011bffffffffffffffff02190a0005581e03f9964a976ce92968ee0de31a76e4ed4232a37da054b7ea7b0e1b7b01400c01410105581e0325214c6d7ff99a94922bf961ef70e0ef7732f5e2297608c45756fca67004010219e6b403d72d98b5df84fd15009a90c6ad10004db805d513bf00db3001a62d2992a3910103e3c52cbb73b5de87875520f104eedb2dfa0d22eedabc89ffe887f03e7ab9de15038b3a450067983a79ca687b47f55c6cde04cb3d579c14896d7f6671db4aabf3d903aa8720a00950535698db4657f1f68aef73ef5afdda302b94e18e2134db83e061030dcfdfbbfe12c1e74fd6cd25160c375e31a75e0c2d05bd77b3365e5db5c395de030b12106a2a58331d73d4add7da2abf192af48749ea90d477727df5a677e738c003aac039ca3f49cf158b63679a695952c447084ad967ad3095e9b2a4768cb1afce039a5839a7520486c62f5ff35c8f6314a3c7b1610ab92256303f40c1a9c45548d5039a70d53646d667a889e5ed735c1e6126efa4e12d57b7bb862cd50c61b466d2d8037f0a52ef361b04dc0c18ee73d500b5b7d4bef1fde45a931b234c640379f9413a036fc8d35e10be7f3581782f9d8a385b404286f90b221acff13773bf4180ea9a190219ffff0219ffff03f6c1c54b558e946807fe2d791429bb4b379ed5a40cf15ae1a8992d94b98e261503e60c3786c72deb8ec54336ccb29f4aa8bd7dc6a6074dbc1e49baf921b8de6f00037392476af2c49791c93e6541aa82d038c58f7b12840c748f6628063404b46dc503e339f3235984d155600bd477e70d314f17a233f0a45683fb4f340c14788d929b03a3c45c53f4ce0c122e786d140faccc5007b1caf3494607ce66d3a0db5948248d035845968dde84de45a8ccda4a463ad709a1c5f1b83c8cde90e0570c6528c0bc620354dccc811524afe368d33766d3d29b43030114e87d2ea2e3fac01238cfa84c4d03d1d2d7b692ca9d93832fb3662b2b61ec408e59a5d31d7dffb31e27497f0969d1031dd0f6ad1feeaa8794d33aebb75219f3add46f00b55ad80c34f0b7b28a1fe46703cee1d63dbdb12d3cce16d95a5edd13b687e8d893549ef8924628cfd40f373fbc03ef22882225dd1415ea92c2860d0326b226e4e1be38347fd8f93262cf81562d050316a60f2be3be7eefa0e63b522921e2ad3bbf90ec1527785033efd89d878f731c037f382662cadec4b18dc56f9632e01734fea8bf7cee15adf6bb64be2fa43b7fff03e1a81eb846a28297cbb472b30d1fa5964569a9f9093ab358e9871c4ba47618c303d34c26350f69a9d996594acf59a3ac71e702f7daff351a27dc67a1610270613a0219ffff038e1c5417e747ce34e1340ee5f57d7250a214c100e442ab6981e5d3fde943912103c7bb29f5e5736b7a99491b244beeeda7c49d96329aa99fdda984919b93eeb55c0312054263a83c2172a0c78fa154e53654a313e3669b264b8d05a13396e91075120331b370fb7369398a27d60a6da541922d109acc2dc9733d6fe1e543775d5e3d9103d2b9372d7a100eb47bba5c6ec744555b4505a69422e5e2e153ee1175f3622f7003e4d9713eae8107a963ee7eed65ed97047295a3d0683dcd9881398aa3260ab19b0356f4162b295636c2652f98a4c7279d3672eec9458144e68d0a782c66a4ce0b460325bd4a6f63a5c6a19bf419655cca0d8815da3ae77667b20e5eeeb274987451800219ffff03513b407e1e7236a6f9c775e6e173952fa0bd756eb855cb906f18f093410065ff03e0244ebeef542362c6aa404d1e8a7ba304830926d6cf83300b223d784ca8d1f10306d5d4acdcbf9a39203feb18703060ae0ae1fcbb7b6078987b1b7a3141bfeab0036573ca98a8455e239fcc599cebf0aa19c6a60cf7b558a1cd6a450f25b1f8b7e503da4efeedbd271d3e8630e53eef5c72188e52a232cf42aa66e3ba331b9deeab9303a5374f10d00f474506dca81e857f7623f6c80cefc725769d20b496c734794cf4038e516db61b44fdc22e942c458634c01b0bde51acdd5a95a51a56c436a696385f03bbb568f283a78b34ca6aba9d5fd595283cfbfbbbac3843cdf7df594696d2b36103606a414c7ddd92efae8cbc039c198c38aa2b79547d02cb579949ab4c2fb9497803afe6eb5e72fb798a79b9424285492d2362b0ff849875c78adc7d56d0b32ac10f0313b103dd94665daf33687d3f209d9a37569daeaa902f2b1abac48307aa964eee03f2c0d1211336222abcc43e58fe4894a810e0a1bfe27cde6036e7c31a1dd318aa039321e65feac3680244e3acdd2ee5ed77b7d97386e2433b91385b08f0cd19915d0395b0e837e9e38001b32b9ca7db2be6a6eb54d1a649519d594bccc9cc5a47ef760321ca3382100b8d07225b1f7e719302ea05b2034a748ee4db0cfe13ca4791abb20321c4f700e649508e93ba9f92746bc7240ea70b9e4117ffbf6c2452e8bc82581205581e032a4dce262dc0b77face5d64436531b1499d096cd7cea34791b1e6e4c80040d05581e03b0680f9c5a7652dae61190e7ad30f280db11a61cf044f999fa4ce5c1700c0246dae5ab8d7b3003df614cf25b1f51a4d5d56218d66dfa4a810654db7b27d46a723291578e43a68f05581d02d5afbf42b818c48c21dd95f76008e6e196004ed69a6e6536908a08f80c0247021a22bc2d267004595d9e608060405234801561001057600080fd5b50600436106102745760003560e01c80636aabc35011610151578063b553ee84116100c3578063cfc5901d11610087578063cfc5901d14610641578063de574efc14610654578063e03c863214610667578063f2fde38b14610687578063fa7803e61461069a578063fe2ba848146106ad57600080fd5b8063b553ee84146105f7578063b6da898f14610600578063c8525c3e14610613578063c94b584714610626578063c97a59191461062e57600080fd5b80638c669739116101155780638c6697391461052a5780638da5cb5b146105325780639168ae72146105455780639efbea23146105c8578063a56ba93b146105db578063aca9a518146105e457600080fd5b80636aabc350146104c95780636c8b052a146104f257806371129559146104fb5780637acb7757146105045780638821b2ae1461051757600080fd5b806330b26075116101ea578063461a4478116101ae578063461a44781461043957806349cd30041461044c5780634d26732d1461045f57806351ed6a30146104675780636177fd181461047a5780636a368561146104b657600080fd5b806330b26075146103fa57806337d1fbdd146104025780633ccfd60b1461041557806340d9224b1461041d57806345e38b641461043057600080fd5b80632aa234f61161023c5780632aa234f61461036e5780632b7ac3f3146103815780632e17de78146103945780632f06d1b0146103a75780632f30cabd146103ba578063300a7161146103da57600080fd5b80630e456acf14610279578063107035a4146102f05780632052465e146103075780632906040e14610339578063299ca47814610343575b600080fd5b607754607854607954607a54607b546102ac9460ff8116946001600160a01b036101009092048216949082169391169186565b6040805196151587526001600160a01b0395861660208801529385169386019390935292166060840152608083019190915260a082015260c0015b60405180910390f35b6102f960715481565b6040519081526020016102e7565b61031a610315366004613bad565b6106c0565b604080516001600160a01b0390931683526020830191909152016102e7565b6103416106f8565b005b600054610356906001600160a01b031681565b6040516001600160a01b0390911681526020016102e7565b61035661037c366004613bad565b6109a8565b600554610356906001600160a01b031681565b6103416103a2366004613bad565b6109d2565b6103566103b5366004613bd7565b610b52565b6102f96103c8366004613c31565b60756020526000908152604090205481565b6102f96103e8366004613c31565b60396020526000908152604090205481565b6103416111cc565b610356610410366004613bad565b611518565b610341611528565b600454610356906001600160a01b031681565b6102f960015481565b610356610447366004613d0a565b611618565b61034161045a366004613da7565b611699565b6002546102f9565b600354610356906001600160a01b031681565b6104a6610488366004613c31565b6001600160a01b031660009081526073602052604090205460ff1690565b60405190151581526020016102e7565b6103416104c4366004613e61565b6118c6565b6103566104d7366004613c31565b6074602052600090815260409020546001600160a01b031681565b6102f960725481565b6102f960025481565b610341610512366004613ea3565b6119c0565b610341610525366004613bad565b611dac565b610341611f3a565b603854610356906001600160a01b031681565b610592610553366004613c31565b6073602052600090815260409020805460018201546002830154600384015460049094015460ff90931693919290916001600160a01b03908116911685565b6040805195151586526020860194909452928401919091526001600160a01b03908116606084015216608082015260a0016102e7565b6103416105d6366004613e61565b611f7d565b6102f960705481565b6103416105f2366004613e61565b612159565b6102f9606f5481565b61034161060e366004613ed3565b612335565b610341610621366004613e61565b6126f6565b6102f96127ea565b61034161063c366004613ef5565b61286f565b61034161064f366004614003565b612c57565b610341610662366004614053565b612da3565b6102f9610675366004613c31565b603b6020526000908152604090205481565b610341610695366004613c31565b6131f0565b6103416106a836600461410c565b613288565b6103416106bb366004613c31565b6134ca565b607681815481106106d057600080fd5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b336000908152607460205260409020546001600160a01b03166107365760405162461bcd60e51b815260040161072d9061413a565b60405180910390fd5b607154606f54106107815760405162461bcd60e51b81526020600482015260156024820152742737aab73932b9b7b63b32b220b9b9b2b93a34b7b760591b604482015260640161072d565b6000607254116107be5760405162461bcd60e51b81526020600482015260086024820152672737a9ba30b5b2b960c11b604482015260640161072d565b6000606f5460016107cf9190614175565b60048054604051638286227560e01b81529293506001600160a01b0316916382862275916108039185910190815260200190565b60206040518083038186803b15801561081b57600080fd5b505afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610853919061418d565b42101561089b5760405162461bcd60e51b81526020600482015260166024820152754368616c6c656e6765506572696f6450656e64696e6760501b604482015260640161072d565b6070546004805460405163030b947760e41b81529182018490526001600160a01b0316906330b947709060240160206040518083038186803b1580156108e057600080fd5b505afa1580156108f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610918919061418d565b146109555760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a5914185c995b9d609a1b604482015260640161072d565b606f8054906000610965836141a6565b9091555050606f5460708190556040519081527f453430d123684340024ae0a229704bdab39c93dc48bb5a0b4bc83142d95d48ef9060200160405180910390a150565b603a81815481106109b857600080fd5b6000918252602090912001546001600160a01b0316905081565b6109db3361361b565b33600090815260736020526040902060705460028201541115610a405760405162461bcd60e51b815260206004820152601c60248201527f5374616b65644f6e556e636f6e6669726d6564417373657274696f6e00000000604482015260640161072d565b6002548160010154610a5291906141c1565b821115610a955760405162461bcd60e51b8152602060048201526011602482015270496e73756666696369656e745374616b6560781b604482015260640161072d565b81816001016000828254610aa991906141c1565b909155505060035460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b158015610afa57600080fd5b505af1158015610b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3291906141d8565b610b4e5760405162461bcd60e51b815260040161072d906141fa565b5050565b336000908152607460205260408120546001600160a01b0316610b875760405162461bcd60e51b815260040161072d9061413a565b81356020830135808210610bca5760405162461bcd60e51b815260206004820152600a6024820152692bb937b733a7b93232b960b11b604482015260640161072d565b607154811115610c125760405162461bcd60e51b81526020600482015260136024820152722ab7383937b837b9b2b220b9b9b2b93a34b7b760691b604482015260640161072d565b8160705410610c635760405162461bcd60e51b815260206004820152601860248201527f417373657274696f6e416c72656164795265736f6c7665640000000000000000604482015260640161072d565b6004805460405163030b947760e41b81529182018490526000916001600160a01b03909116906330b947709060240160206040518083038186803b158015610caa57600080fd5b505afa158015610cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce2919061418d565b6004805460405163030b947760e41b81529293506001600160a01b0316916330b9477091610d169186910190815260200190565b60206040518083038186803b158015610d2e57600080fd5b505afa158015610d42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d66919061418d565b8114610da65760405162461bcd60e51b815260206004820152600f60248201526e111a5999995c995b9d14185c995b9d608a1b604482015260640161072d565b6000610db56020880188613c31565b90506000610dc96040890160208a01613c31565b9050806001600160a01b0316826001600160a01b03161415610e3b5760405162461bcd60e51b815260206004820152602560248201527f646566656e64657220616e64206368616c6c656e6765206d757374206e6f7420604482015264195c5d585b60da1b606482015260840161072d565b6001600160a01b038083166000908152607460205260408082205484841683529120549082169116610e6c8261366f565b610e758161366f565b6000604051610e8390613b5a565b604051809103906000f080158015610e9f573d6000803e3d6000fd5b506001600160a01b038084166000908152607360209081526040808320600490810180548688166001600160a01b031991821681179092558a871686528386209092018054831682179055825160c0810184529485529284018390528a8516848301819052948a1660608501819052608085018f905260a09094018d905260778054610100949094026001600160a81b031990941693909317909255607880548316909417909355607980549091169091179055607a8a9055607b8990555190915081907fd0ebe74b4f7d89a9b0fdc9d95f887a7b925c6c7300b5c4b2c3304d97925840fa90610fa4908b9084909182526001600160a01b0316602082015260400190565b60405180910390a160048054604051632b27e93b60e01b81529182018990526000916001600160a01b0390911690632b27e93b9060240160206040518083038186803b158015610ff357600080fd5b505afa158015611007573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102b919061418d565b60048054604051632a411f3360e11b81529182018b90529192506000916001600160a01b0316906354823e669060240160206040518083038186803b15801561107357600080fd5b505afa158015611087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ab919061418d565b60048054604051632a411f3360e11b81529182018e90529192506000916001600160a01b0316906354823e669060240160206040518083038186803b1580156110f357600080fd5b505afa158015611107573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112b919061418d565b60055460405163abf4801360e01b81526001600160a01b038c811660048301528b8116602483015291821660448201523060648201526084810186905260a4810185905260c4810183905291925086169063abf480139060e401600060405180830381600087803b15801561119f57600080fd5b505af11580156111b3573d6000803e3d6000fd5b50959e5050505050505050505050505050505b92915050565b336000908152607460205260409020546001600160a01b03166112015760405162461bcd60e51b815260040161072d9061413a565b607154606f541061124c5760405162461bcd60e51b81526020600482015260156024820152742737aab73932b9b7b63b32b220b9b9b2b93a34b7b760591b604482015260640161072d565b6000606f54600161125d9190614175565b6070546004805460405163030b947760e41b815291820184905292935090916001600160a01b0316906330b947709060240160206040518083038186803b1580156112a757600080fd5b505afa1580156112bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112df919061418d565b14156114685760048054604051638286227560e01b81529182018390526001600160a01b03169063828622759060240160206040518083038186803b15801561132757600080fd5b505afa15801561133b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135f919061418d565b4210156113a75760405162461bcd60e51b81526020600482015260166024820152754368616c6c656e6765506572696f6450656e64696e6760501b604482015260640161072d565b6113b0816136d6565b6004805460405163366b2b6960e01b81529182018490526001600160a01b03169063366b2b699060240160206040518083038186803b1580156113f257600080fd5b505afa158015611406573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142a919061418d565b146114685760405162461bcd60e51b815260206004820152600e60248201526d14dd185ad95c9cd41c995cd95b9d60921b604482015260640161072d565b606f8054906000611478836141a6565b91905055507f5b24ab8ceb442373727ac5c559a027521cb52db451c74710ebed9faa5fe15a7c606f546040516114b091815260200190565b60405180910390a160048054606f5460405163d8a4e5af60e01b8152928301526001600160a01b03169063d8a4e5af90602401600060405180830381600087803b1580156114fd57600080fd5b505af1158015611511573d6000803e3d6000fd5b5050505050565b603c81815481106109b857600080fd5b336000908152607460205260409020546001600160a01b031661155d5760405162461bcd60e51b815260040161072d9061413a565b336000818152607560205260408082208054929055600354905163a9059cbb60e01b815260048101939093526024830182905290916001600160a01b039091169063a9059cbb90604401602060405180830381600087803b1580156115c157600080fd5b505af11580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f991906141d8565b6116155760405162461bcd60e51b815260040161072d906141fa565b50565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac19061164990859060040161429f565b60206040518083038186803b15801561166157600080fd5b505afa158015611675573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c691906142b2565b336000908152607460205260409020546001600160a01b03166116ce5760405162461bcd60e51b815260040161072d9061413a565b6116fb6040518060400160405280600c81526020016b212b26afa937b6363ab832b960a11b815250611618565b6001600160a01b0316336001600160a01b0316146117795760405162461bcd60e51b815260206004820152603560248201527f6d73672e73656e646572206973206e6f7420726f6c6c75702070726f706f73656044820152740e45840c6c2dc4ee840c2e0e0cadcc840c4c2e8c6d605b1b606482015260840161072d565b6117838787612335565b60006117ba6040518060400160405280601481526020017329ba30ba32a1b7b6b6b4ba36b2b73a21b430b4b760611b815250611618565b90506000816001600160a01b031687878787876040516024016117e19594939291906142cf565b60408051601f198184030181529181526020820180516001600160e01b0316632169f79f60e01b17905251611816919061433f565b6000604051808303816000865af19150503d8060008114611853576040519150601f19603f3d011682016040523d82523d6000602084013e611858565b606091505b50509050806118bb5760405162461bcd60e51b815260206004820152602960248201527f73636320617070656e64207374617465206261746368206661696c65642c2072604482015268195d995c9d08185b1b60ba1b606482015260840161072d565b505050505050505050565b6038546001600160a01b031633146118f05760405162461bcd60e51b815260040161072d9061435b565b603a5460005b828110156119ba576119088183614175565b6039600086868581811061191e5761191e614231565b90506020020160208101906119339190613c31565b6001600160a01b03168152602081019190915260400160002055603a84848381811061196157611961614231565b90506020020160208101906119769190613c31565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b03909216919091179055806119b2816141a6565b9150506118f6565b50505050565b33600081815260396020526040902054603a805483929081106119e5576119e5614231565b6000918252602090912001546001600160a01b031614611a475760405162461bcd60e51b815260206004820152601760248201527f4e4f545f494e5f5354414b45525f57484954454c495354000000000000000000604482015260640161072d565b6001600160a01b0382166000818152603b6020526040902054603c8054859392908110611a7657611a76614231565b6000918252602090912001546001600160a01b031614611ad85760405162461bcd60e51b815260206004820152601960248201527f4e4f545f494e5f4f50455241544f525f57484954454c49535400000000000000604482015260640161072d565b6003546040516323b872dd60e01b8152336004820152306024820152604481018690526001600160a01b03909116906323b872dd90606401602060405180830381600087803b158015611b2a57600080fd5b505af1158015611b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6291906141d8565b611b7e5760405162461bcd60e51b815260040161072d906141fa565b3360009081526073602052604090205460ff1615611c3e57336000908152607360205260409020600301546001600160a01b03848116911614611c115760405162461bcd60e51b815260206004820152602560248201527f7374616b6572203d3e206f70657261746f72206d617070696e67206e6f7420756044820152646e6971756560d81b606482015260840161072d565b3360009081526073602052604081206001018054869290611c33908490614175565b909155506119ba9050565b6001600160a01b038381166000908152607460205260409020541615611c9d5760405162461bcd60e51b81526020600482015260146024820152731bdc195c985d1bdc881a5cc81bd8d8dd5c1a595960621b604482015260640161072d565b600254841015611ce35760405162461bcd60e51b8152602060048201526011602482015270496e73756666696369656e745374616b6560781b604482015260640161072d565b6040805160a0810182526001808252602080830188815260008486018181526001600160a01b03808b16606088018181526080890185815233808752607389528b87209a518b5490151560ff19909116178b559651988a01989098559251600289015591516003880180549183166001600160a01b03199283161790559551600490970180549790911696861696909617909555938452607490915292822080549091169092179091556072805491611d9b836141a6565b91905055506119ba336070546137ca565b336000908152607460205260409020546001600160a01b0316611de15760405162461bcd60e51b815260040161072d9061413a565b336000908152607460209081526040808320546001600160a01b03168084526073909252909120600281015483111580611e1c575060715483115b15611e5f5760405162461bcd60e51b8152602060048201526013602482015272417373657274696f6e4f75744f6652616e676560681b604482015260640161072d565b6004805460405163030b947760e41b81529182018590526001600160a01b0316906330b947709060240160206040518083038186803b158015611ea157600080fd5b505afa158015611eb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed9919061418d565b816002015414611f2b5760405162461bcd60e51b815260206004820152601760248201527f506172656e74417373657274696f6e556e7374616b6564000000000000000000604482015260640161072d565b611f3582846137ca565b505050565b336000908152607460205260409020546001600160a01b0316611f6f5760405162461bcd60e51b815260040161072d9061413a565b611f7b60766000613b67565b565b6038546001600160a01b03163314611fa75760405162461bcd60e51b815260040161072d9061435b565b60005b81811015611f35576000603b6000858585818110611fca57611fca614231565b9050602002016020810190611fdf9190613c31565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080603b6000603c6001603c8054905061201b91906141c1565b8154811061202b5761202b614231565b60009182526020808320909101546001600160a01b03168352820192909252604001902055603c8054612060906001906141c1565b8154811061207057612070614231565b600091825260209091200154603c80546001600160a01b03909216918390811061209c5761209c614231565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550603c8054806120db576120db614390565b600082815260208120820160001990810180546001600160a01b0319169055909101909155603b9085858581811061211557612115614231565b905060200201602081019061212a9190613c31565b6001600160a01b0316815260208101919091526040016000908120555080612151816141a6565b915050611faa565b6038546001600160a01b031633146121835760405162461bcd60e51b815260040161072d9061435b565b60005b81811015611f35576000603960008585858181106121a6576121a6614231565b90506020020160208101906121bb9190613c31565b6001600160a01b03166001600160a01b031681526020019081526020016000205490508060396000603a6001603a805490506121f791906141c1565b8154811061220757612207614231565b60009182526020808320909101546001600160a01b03168352820192909252604001902055603a805461223c906001906141c1565b8154811061224c5761224c614231565b600091825260209091200154603a80546001600160a01b03909216918390811061227857612278614231565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550603a8054806122b7576122b7614390565b600082815260208120820160001990810180546001600160a01b03191690559091019091556039908585858181106122f1576122f1614231565b90506020020160208101906123069190613c31565b6001600160a01b031681526020810191909152604001600090812055508061232d816141a6565b915050612186565b336000908152607460205260409020546001600160a01b031661236a5760405162461bcd60e51b815260040161072d9061413a565b336000908152607460209081526040808320546001600160a01b039081168085526073909352922060040154909116156124005760405162461bcd60e51b815260206004820152603160248201527f63616e206e6f742063726561746520617373657274696f6e207768656e207374604482015270616b657220696e206368616c6c656e676560781b606482015260840161072d565b6001600160a01b038181166000908152607360205260409081902060020154600154600480549351634e04886d60e01b8152908101839052919390921690634e04886d9060240160206040518083038186803b15801561245f57600080fd5b505afa158015612473573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612497919061418d565b6124a190436141c1565b10156124ef5760405162461bcd60e51b815260206004820152601f60248201527f4d696e696d756d417373657274696f6e506572696f644e6f7450617373656400604482015260640161072d565b60048054604051632b27e93b60e01b81529182018390526001600160a01b031690632b27e93b9060240160206040518083038186803b15801561253157600080fd5b505afa158015612545573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612569919061418d565b83116125a85760405162461bcd60e51b815260206004820152600e60248201526d22b6b83a3ca0b9b9b2b93a34b7b760911b604482015260640161072d565b607180549060006125b8836141a6565b9091555050607154604080519182523360208301528101859052606081018490527f5c610f28399ecc14b66149012a0197a5e3257a8c397125afee95d1cf4b9507349060800160405180910390a16004546071546001600160a01b039091169063422815849086868561262961388f565b6040516001600160e01b031960e088901b1681526004810195909552602485019390935260448401919091526064830152608482015260a401600060405180830381600087803b15801561267c57600080fd5b505af1158015612690573d6000803e3d6000fd5b505050506126a0826071546137ca565b606f80549060006126b0836141a6565b9091555050606f5460708190556040519081527f453430d123684340024ae0a229704bdab39c93dc48bb5a0b4bc83142d95d48ef9060200160405180910390a150505050565b6038546001600160a01b031633146127205760405162461bcd60e51b815260040161072d9061435b565b603c5460005b828110156119ba576127388183614175565b603b600086868581811061274e5761274e614231565b90506020020160208101906127639190613c31565b6001600160a01b03168152602081019190915260400160002055603c84848381811061279157612791614231565b90506020020160208101906127a69190613c31565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b03909216919091179055806127e2816141a6565b915050612726565b60048054607054604051632b27e93b60e01b8152928301526000916001600160a01b0390911690632b27e93b9060240160206040518083038186803b15801561283257600080fd5b505afa158015612846573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061286a919061418d565b905090565b600054600160a81b900460ff161580801561289757506000546001600160a01b90910460ff16105b806128b85750303b1580156128b85750600054600160a01b900460ff166001145b61291b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161072d565b6000805460ff60a01b1916600160a01b1790558015612948576000805460ff60a81b1916600160a81b1790555b6001600160a01b038d16158061296557506001600160a01b038c16155b156129a05760405162461bcd60e51b815260206004820152600b60248201526a5a65726f4164647265737360a81b604482015260640161072d565b8c603860006101000a8154816001600160a01b0302191690836001600160a01b031602179055508a600360006101000a8154816001600160a01b0302191690836001600160a01b031602179055508b600560006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060006001600160a01b031660008054906101000a90046001600160a01b03166001600160a01b031614612a815760405162461bcd60e51b81526020600482015260146024820152731499591d5b99185b9d125b9a5d1a585b1a5e995960621b604482015260640161072d565b600080546001600160a01b0319166001600160a01b038c8116919091179091556004541615612ae95760405162461bcd60e51b81526020600482015260146024820152731499591d5b99185b9d125b9a5d1a585b1a5e995960621b604482015260640161072d565b600480546001600160a01b0319166001600160a01b038b16908117825560018a905560028990556040516303b31b8360e11b8152309281019290925290630766370690602401600060405180830381600087803b158015612b4957600080fd5b505af1158015612b5d573d6000803e3d6000fd5b50506000606f819055607081905560718190556004805460405163108a056160e21b8152918201839052602482018b90526044820183905260648201929092524360848201526001600160a01b0390911692506342281584915060a401600060405180830381600087803b158015612bd457600080fd5b505af1158015612be8573d6000803e3d6000fd5b50505050612bf685856118c6565b612c0083836126f6565b8015612c48576000805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050505050505050565b6038546001600160a01b03163314612c815760405162461bcd60e51b815260040161072d9061435b565b6000612cb86040518060400160405280601481526020017329ba30ba32a1b7b6b6b4ba36b2b73a21b430b4b760611b815250611618565b90506000816001600160a01b0316858585604051602401612cdb939291906143a6565b60408051601f198184030181529181526020820180516001600160e01b03166305f9daf960e11b17905251612d10919061433f565b6000604051808303816000865af19150503d8060008114612d4d576040519150601f19603f3d011682016040523d82523d6000602084013e612d52565b606091505b50509050806115115760405162461bcd60e51b815260206004820152601b60248201527f63616c6c20726f6c6c4261636b4c32436861696e206661696c65640000000000604482015260640161072d565b6038546001600160a01b03163314612dcd5760405162461bcd60e51b815260040161072d9061435b565b6000612e046040518060400160405280601481526020017329ba30ba32a1b7b6b6b4ba36b2b73a21b430b4b760611b815250611618565b60408051600481526024810182526020810180516001600160e01b0316633958777760e21b17905290519192506000916001600160a01b03841691612e489161433f565b6000604051808303816000865af19150503d8060008114612e85576040519150601f19603f3d011682016040523d82523d6000602084013e612e8a565b606091505b50915050600081612e9a906143c5565b8451909150612ea990826141c1565b600114612f045760405162461bcd60e51b8152602060048201526024808201527f64656c657465206261746368207769746820676170206973206e6f7420616c6c6044820152631bddd95960e21b606482015260840161072d565b6000836001600160a01b031685604051602401612f2191906143ec565b60408051601f198184030181529181526020820180516001600160e01b0316632da6c87160e11b17905251612f56919061433f565b6000604051808303816000865af19150503d8060008114612f93576040519150601f19603f3d011682016040523d82523d6000602084013e612f98565b606091505b5050905080612ffb5760405162461bcd60e51b815260206004820152602960248201527f7363632064656c657465207374617465206261746368206661696c65642c2072604482015268195d995c9d08185b1b60ba1b606482015260840161072d565b606f5460715410156130665760405162461bcd60e51b815260206004820152602e60248201527f64656c65746520617373657274696f6e206265666f7265206c6173742072657360448201526d37b63b32b21034b71032b93937b960911b606482015260840161072d565b7f5b24ab8ceb442373727ac5c559a027521cb52db451c74710ebed9faa5fe15a7c60715460405161309991815260200190565b60405180910390a16004805460715460405163d0087d6160e01b8152928301526001600160a01b03169063d0087d6190602401600060405180830381600087803b1580156130e657600080fd5b505af11580156130fa573d6000803e3d6000fd5b50506071805492509050600061310f8361444d565b9091555050606f80549060006131248361444d565b9091555050607080549060006131398361444d565b919050555060005b603a548110156131e85760715460736000603a848154811061316557613165614231565b60009182526020808320909101546001600160a01b0316835282019290925260400190206002015411156131d65760715460736000603a84815481106131ad576131ad614231565b60009182526020808320909101546001600160a01b031683528201929092526040019020600201555b806131e0816141a6565b915050613141565b505050505050565b6038546001600160a01b0316331461321a5760405162461bcd60e51b815260040161072d9061435b565b6001600160a01b03811661327f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161072d565b611615816139c2565b336000908152607460205260409020546001600160a01b03166132bd5760405162461bcd60e51b815260040161072d9061413a565b6001600160a01b0380831660009081526074602052604080822054848416835291205490821691166132ee8161361b565b60006132fa8383613a14565b9050336001600160a01b038216146133435760405162461bcd60e51b815260206004820152600c60248201526b4e6f744368616c6c656e676560a01b604482015260640161072d565b6001600160a01b0382166000908152607360205260408120600101546002548111156133ad5760025461337690826141c1565b6001600160a01b0385166000908152607560205260408120805490919061339e908490614175565b909155505060025491506133b1565b8091505b6001600160a01b038516600090815260736020526040812060010180548492906133dc908490614175565b90915550506001600160a01b0380861660009081526073602052604080822060040180546001600160a01b03191690559186168152206002015461341f85613adf565b604080518082019091526001600160a01b03958616815260208101918252607680546001808201835560009290925291517fb5732705f5241370a28908c2fe1303cb223f03b90d857fd0573f003f79fefed4600290930292830180546001600160a01b031916919098161790965590517fb5732705f5241370a28908c2fe1303cb223f03b90d857fd0573f003f79fefed59091015550506077805460ff191690921790915550505050565b6038546001600160a01b031633146134f45760405162461bcd60e51b815260040161072d9061435b565b6134fd8161361b565b6001600160a01b03811660009081526073602052604090206070546002820154111561356b5760405162461bcd60e51b815260206004820152601c60248201527f5374616b65644f6e556e636f6e6669726d6564417373657274696f6e00000000604482015260640161072d565b600181015461357983613adf565b60035460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b1580156135c757600080fd5b505af11580156135db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135ff91906141d8565b611f355760405162461bcd60e51b815260040161072d906141fa565b6001600160a01b03811660009081526073602052604090205460ff166116155760405162461bcd60e51b8152602060048201526009602482015268139bdd14dd185ad95960ba1b604482015260640161072d565b6136788161361b565b6001600160a01b0381811660009081526073602052604090206004015416156116155760405162461bcd60e51b815260206004820152601060248201526f21b430b63632b733b2b229ba30b5b2b960811b604482015260640161072d565b600080805b6076548110156137c357600454607680546001600160a01b039092169163873fd0899187918590811061371057613710614231565b600091825260209091206002909102015460405160e084901b6001600160e01b031916815260048101929092526001600160a01b0316602482015260440160206040518083038186803b15801561376657600080fd5b505afa15801561377a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061379e91906141d8565b156137b157816137ad816141a6565b9250505b806137bb816141a6565b9150506136db565b5092915050565b6001600160a01b038281166000818152607360205260409081902060020184905560048054915163541961d760e11b815290810185905260248101929092529091169063a832c3ae90604401600060405180830381600087803b15801561383057600080fd5b505af1158015613844573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590527f617d31491414a4ab2bd831e566a31837fa7fb6582921c91dffbbe83fbca789f3935001905060405180910390a15050565b6000806138c76040518060400160405280601481526020017329ba30ba32a1b7b6b6b4ba36b2b73a21b430b4b760611b815250611618565b60408051600481526024810182526020810180516001600160e01b031663c17b291b60e01b179052905191925060009182916001600160a01b0385169161390e919061433f565b6000604051808303816000865af19150503d806000811461394b576040519150601f19603f3d011682016040523d82523d6000602084013e613950565b606091505b5091509150816139a25760405162461bcd60e51b815260206004820181905260248201527f63616c6c2046524155445f50524f4f465f57494e444f572829206661696c6564604482015260640161072d565b60006139ad826143c5565b90506139b98142614175565b94505050505090565b603880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03808316600090815260736020526040808220848416835290822060048201549293919290911680613a805760405162461bcd60e51b815260206004820152600e60248201526d4e6f74496e4368616c6c656e676560901b604482015260640161072d565b60048201546001600160a01b03828116911614613ad65760405162461bcd60e51b8152602060048201526014602482015273496e446966666572656e744368616c6c656e676560601b604482015260640161072d565b95945050505050565b60728054906000613aef8361444d565b90915550506001600160a01b039081166000908152607360209081526040808320600381018054825460ff1916835560018301869055600283018690556001600160a01b03198082169092556004909201805482169055941683526074909152902080549091169055565b6119048061446583390190565b508054600082556002029060005260206000209081019061161591905b80821115613ba95780546001600160a01b031916815560006001820155600201613b84565b5090565b600060208284031215613bbf57600080fd5b5035919050565b80604081018310156111c657600080fd5b60008060808385031215613bea57600080fd5b613bf48484613bc6565b9150613c038460408501613bc6565b90509250929050565b6001600160a01b038116811461161557600080fd5b8035613c2c81613c0c565b919050565b600060208284031215613c4357600080fd5b8135613c4e81613c0c565b9392505050565b634e487b7160e01b600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715613c8e57613c8e613c55565b60405290565b600067ffffffffffffffff80841115613caf57613caf613c55565b604051601f8501601f19908116603f01168101908282118183101715613cd757613cd7613c55565b81604052809350858152868686011115613cf057600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215613d1c57600080fd5b813567ffffffffffffffff811115613d3357600080fd5b8201601f81018413613d4457600080fd5b613d5384823560208401613c94565b949350505050565b60008083601f840112613d6d57600080fd5b50813567ffffffffffffffff811115613d8557600080fd5b6020830191508360208260051b8501011115613da057600080fd5b9250929050565b600080600080600080600060a0888a031215613dc257600080fd5b8735965060208801359550604088013567ffffffffffffffff80821115613de857600080fd5b613df48b838c01613d5b565b909750955060608a0135945060808a0135915080821115613e1457600080fd5b818a0191508a601f830112613e2857600080fd5b813581811115613e3757600080fd5b8b6020828501011115613e4957600080fd5b60208301945080935050505092959891949750929550565b60008060208385031215613e7457600080fd5b823567ffffffffffffffff811115613e8b57600080fd5b613e9785828601613d5b565b90969095509350505050565b60008060408385031215613eb657600080fd5b823591506020830135613ec881613c0c565b809150509250929050565b60008060408385031215613ee657600080fd5b50508035926020909101359150565b6000806000806000806000806000806000806101408d8f031215613f1857600080fd5b613f218d613c21565b9b50613f2f60208e01613c21565b9a50613f3d60408e01613c21565b9950613f4b60608e01613c21565b9850613f5960808e01613c21565b975060a08d0135965060c08d0135955060e08d0135945067ffffffffffffffff6101008e01351115613f8a57600080fd5b613f9b8e6101008f01358f01613d5b565b909450925067ffffffffffffffff6101208e01351115613fba57600080fd5b613fcb8e6101208f01358f01613d5b565b81935080925050509295989b509295989b509295989b565b600082601f830112613ff457600080fd5b613c4e83833560208501613c94565b60008060006060848603121561401857600080fd5b8335925060208401359150604084013567ffffffffffffffff81111561403d57600080fd5b61404986828701613fe3565b9150509250925092565b60006020828403121561406557600080fd5b813567ffffffffffffffff8082111561407d57600080fd5b9083019060c0828603121561409157600080fd5b614099613c6b565b823581526020830135602082015260408301356040820152606083013560608201526080830135828111156140cd57600080fd5b6140d987828601613fe3565b60808301525060a0830135828111156140f157600080fd5b6140fd87828601613fe3565b60a08301525095945050505050565b6000806040838503121561411f57600080fd5b823561412a81613c0c565b91506020830135613ec881613c0c565b6020808252600b908201526a2737ba27b832b930ba37b960a91b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156141885761418861415f565b500190565b60006020828403121561419f57600080fd5b5051919050565b60006000198214156141ba576141ba61415f565b5060010190565b6000828210156141d3576141d361415f565b500390565b6000602082840312156141ea57600080fd5b81518015158114613c4e57600080fd5b6020808252601b908201527f7472616e7366657220657263323020746f6b656e206661696c65640000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60005b8381101561426257818101518382015260200161424a565b838111156119ba5750506000910152565b6000815180845261428b816020860160208601614247565b601f01601f19169290920160200192915050565b602081526000613c4e6020830184614273565b6000602082840312156142c457600080fd5b8151613c4e81613c0c565b6060808252810185905260006001600160fb1b038611156142ef57600080fd5b8560051b80886080850137602083018690528201828103608090810160408501528101849052838560a0830137600060a0858301015260a0601f19601f8601168201019150509695505050505050565b60008251614351818460208701614247565b9190910192915050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603160045260246000fd5b838152826020820152606060408201526000613ad66060830184614273565b805160208083015191908110156143e6576000198160200360031b1b821691505b50919050565b60208152815160208201526020820151604082015260408201516060820152606082015160808201526000608083015160c060a084015261443060e0840182614273565b905060a0840151601f198483030160c0850152613ad68282614273565b60008161445c5761445c61415f565b50600019019056fe608060405234801561001057600080fd5b506118e4806100206000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80638b299903116100b8578063dfbf53ae1161007c578063dfbf53ae146102a3578063e87e3589146102b6578063ed5b1303146102be578063f03a7fcb146102c7578063f2858aa3146102da578063faeff41b146102ed57600080fd5b80638b2999031461022c5780638f2400a8146102465780639afd9d7814610259578063abf480131461027d578063afeae9651461029057600080fd5b8063631acced116100ff578063631acced146101aa57806370dea79a146101b2578063732e6961146101ba5780637f4c91c5146102115780638a8cd2181461022457600080fd5b806318ef160d1461013c5780632a51f6f71461015157806341e8510c1461016d578063534db0e2146101765780635f41e3d6146101a1575b600080fd5b61014f61014a366004611333565b6102f6565b005b61015a60085481565b6040519081526020015b60405180910390f35b61015a60065481565b600354610189906001600160a01b031681565b6040516001600160a01b039091168152602001610164565b61015a60055481565b61014f6105d0565b61014f610636565b6010546011546012546013546014546015546016546101dc9695949392919087565b604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e001610164565b600254610189906001600160a01b031681565b6101896106c9565b6007546102399060ff1681565b604051610164919061136b565b61014f610254366004611385565b61075b565b600e5461026d90600160a01b900460ff1681565b6040519015158152602001610164565b61014f61028b3660046113fc565b610b55565b61015a61029e366004611473565b610cae565b600e54610189906001600160a01b031681565b61015a610cc5565b61015a60045481565b61014f6102d53660046114d5565b610d13565b61014f6102e8366004611579565b611018565b61015a600f5481565b6102fe6106c9565b6001600160a01b0316336001600160a01b0316146040518060400160405280600a8152602001692124a9afa9a2a72222a960b11b8152509061035c5760405162461bcd60e51b815260040161035391906115a2565b60405180910390fd5b50610365610cc5565b60045461037290426115f7565b11156040518060400160405280600c81526020016b4249535f444541444c494e4560a01b815250906103b75760405162461bcd60e51b815260040161035391906115a2565b5060085460408051808201909152600f81526e4348414c5f494e49545f535441544560881b602082015290156104005760405162461bcd60e51b815260040161035391906115a2565b50600081116104455760405162461bcd60e51b8152602060048201526011602482015270494e56414c49445f4e554d5f535445505360781b6044820152606401610353565b604080516000602080830191909152818301849052825180830384018152606090920190925280519101206008556040805160e08082018352600c548083526020808401879052600d54848601819052436060808701829052426080808901829052600060a0808b0182905260c09a8b018d9052601089905560118e9055601287905560138690556014849055601582905560168d90558b519889529688018d90529987019490945290850191909152908301528101939093529082018390527f71809f4d4f7bf3c208a85ccd3c922c984024f8e3cef51e3d03ae677e4217097d910160405180910390a1600160075460ff16600281111561054957610549611355565b141561057e5760045461055c90426115f7565b60065461056991906115f7565b6006556007805460ff191660021790556105c8565b600260075460ff16600281111561059757610597611355565b14156105c8576004546105aa90426115f7565b6005546105b791906115f7565b6005556007805460ff191660011790555b505042600455565b600e54600160a01b900460ff16156106215760405162461bcd60e51b8152602060048201526014602482015273414c52454144595f5345545f524f4c4c4241434b60601b6044820152606401610353565b600e805460ff60a01b1916600160a01b179055565b61063e610cc5565b60045461064b90426115f7565b116040518060400160405280601081526020016f54494d454f55545f444541444c494e4560801b815250906106935760405162461bcd60e51b815260040161035391906115a2565b50600260075460ff1660028111156106ad576106ad611355565b14156106bf576106bd60016111f4565b565b6106bd6001611257565b6000600260075460ff1660028111156106e4576106e4611355565b14156106fa57506002546001600160a01b031690565b600160075460ff16600281111561071357610713611355565b141561072957506003546001600160a01b031690565b60405162461bcd60e51b81526020600482015260076024820152662727afaa2aa92760c91b6044820152606401610353565b6107636106c9565b6001600160a01b0316336001600160a01b0316146040518060400160405280600a8152602001692124a9afa9a2a72222a960b11b815250906107b85760405162461bcd60e51b815260040161035391906115a2565b506107c1610cc5565b6004546107ce90426115f7565b11156040518060400160405280600c81526020016b4249535f444541444c494e4560a01b815250906108135760405162461bcd60e51b815260040161035391906115a2565b506008546108555760405162461bcd60e51b815260206004820152600f60248201526e1393d517d253925512505312569151608a1b6044820152606401610353565b604080516020808201859052818301849052825180830384018152606090920190925280519101206008548114604051806040016040528060088152602001672124a9afa82922ab60c11b815250906108c15760405162461bcd60e51b815260040161035391906115a2565b50600a541561091b57600954873514806108dd5750600a548735145b61091b5760405162461bcd60e51b815260206004820152600f60248201526e1053509251d553d554d7d4d5105495608a1b6044820152606401610353565b600b546040880135141561095f5760405162461bcd60e51b815260206004820152600b60248201526a1253959053125117d1539160aa1b6044820152606401610353565b6000841161099b5760405162461bcd60e51b81526020600482015260096024820152681513d3d7d4d213d49560ba1b6044820152606401610353565b8635600955602080880135600a55604080890135600b558051808301889052808201879052815180820383018152606090910190915280519101206008556040805160e081018252883581526020808a0135908201529081018860026020908102919091013582524382820181905242604080850182905260608086018c905260809586018b905286516010558685015160115586820151601255868101516013558686015160145560a08088015160155560c09788015160165582518f3581528f870135968101969096528e8301358684015290850193909352938301528101889052918201869052517f71809f4d4f7bf3c208a85ccd3c922c984024f8e3cef51e3d03ae677e4217097d9181900360e00190a150600160075460ff166002811115610aca57610aca611355565b1415610aff57600454610add90426115f7565b600654610aea91906115f7565b6006556007805460ff19166002179055610b49565b600260075460ff166002811115610b1857610b18611355565b1415610b4957600454610b2b90426115f7565b600554610b3891906115f7565b6005556007805460ff191660011790555b50504260045550505050565b600060075460ff166002811115610b6e57610b6e611355565b146040518060400160405280600f81526020016e4348414c5f494e49545f535441544560881b81525090610bb55760405162461bcd60e51b815260040161035391906115a2565b506001600160a01b03871615801590610bd657506001600160a01b03861615155b8015610bea57506001600160a01b03841615155b610c255760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610353565b600280546001600160a01b03199081166001600160a01b03998a16178255600380548216988a1698909817909755600180548816968916969096179095556000805490961693909616929092178455600c829055600d8590556007805460ff19169093179092554260045560966005819055600655600955600a91909155600b91909155600f55565b60098160038110610cbe57600080fd5b0154905081565b6000600260075460ff166002811115610ce057610ce0611355565b1415610ced575060055490565b600160075460ff166002811115610d0657610d06611355565b1415610729575060065490565b610d1b6106c9565b6001600160a01b0316336001600160a01b0316146040518060400160405280600a8152602001692124a9afa9a2a72222a960b11b81525090610d705760405162461bcd60e51b815260040161035391906115a2565b50610d79610cc5565b600454610d8690426115f7565b11156040518060400160405280600c81526020016b4249535f444541444c494e4560a01b81525090610dcb5760405162461bcd60e51b815260040161035391906115a2565b50604080516020808201859052818301849052825180830384018152606090920190925280519101206008548114604051806040016040528060088152602001672124a9afa82922ab60c11b81525090610e385760405162461bcd60e51b815260040161035391906115a2565b506001610e46600284611632565b1115610e8b5760405162461bcd60e51b8152602060048201526014602482015273424953454354494f4e5f494e434f4d504c45544560601b6044820152606401610353565b600180546000916001600160a01b039091169063625eb72e908b908b90600990610eb5908b6115f7565b60038110610ec557610ec561161c565b01548b8b6040518663ffffffff1660e01b8152600401610ee99594939291906117ac565b60206040518083038186803b158015610f0157600080fd5b505afa158015610f15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f39919061185f565b905060098560038110610f4e57610f4e61161c565b0154811415610f6657610f6160006112af565b610f70565b610f706000611302565b506001905060075460ff166002811115610f8c57610f8c611355565b1415610fc157600454610f9f90426115f7565b600654610fac91906115f7565b6006556007805460ff1916600217905561100b565b600260075460ff166002811115610fda57610fda611355565b141561100b57600454610fed90426115f7565b600554610ffa91906115f7565b6005556007805460ff191660011790555b5050426004555050505050565b6002546001600160a01b03166110635760405162461bcd60e51b815260206004820152601060248201526f111959995b99195c881b9bdd081cd95d60821b6044820152606401610353565b6002546001600160a01b031633146110b35760405162461bcd60e51b815260206004820152601360248201527221b0b63632b9103737ba103232b332b73232b960691b6044820152606401610353565b600e546001600160a01b03166111005760405162461bcd60e51b81526020600482015260126024820152712237903737ba103430bb32903bb4b73732b960711b6044820152606401610353565b600354600e546001600160a01b03908116911614156111b257801561118f57600054600354600254604051637d3c01f360e11b81526001600160a01b039283166004820152908216602482015291169063fa7803e6906044015b600060405180830381600087803b15801561117457600080fd5b505af1158015611188573d6000803e3d6000fd5b5050505050565b600254600e80546001600160a01b0319166001600160a01b039092169190911790555b600054600254600354604051637d3c01f360e11b81526001600160a01b039283166004820152908216602482015291169063fa7803e69060440161115a565b50565b600354600e80546001600160a01b0319166001600160a01b039283169081179091556002546040517f03f929a9a6b1f0aef5e43cb12b56f862da97ec3de3fda02a52e85f9f3974fb6a9361124c939216908590611878565b60405180910390a150565b600254600e80546001600160a01b0319166001600160a01b039283169081179091556003546040517f03f929a9a6b1f0aef5e43cb12b56f862da97ec3de3fda02a52e85f9f3974fb6a9361124c939216908590611878565b600260075460ff1660028111156112c8576112c8611355565b14156112d7576111f181611257565b600354600e80546001600160a01b0319166001600160a01b039092169190911790556111f1816111f4565b600260075460ff16600281111561131b5761131b611355565b141561132a576111f1816111f4565b6111f181611257565b6000806040838503121561134657600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b602081016003831061137f5761137f611355565b91905290565b600080600080600080610100878903121561139f57600080fd5b60608701888111156113b057600080fd5b969896359750505060808701359460a0880135945060c0880135935060e088013592509050565b6001600160a01b03811681146111f157600080fd5b80356113f7816113d7565b919050565b600080600080600080600060e0888a03121561141757600080fd5b8735611422816113d7565b96506020880135611432816113d7565b95506040880135611442816113d7565b94506060880135611452816113d7565b9699959850939660808101359560a0820135955060c0909101359350915050565b60006020828403121561148557600080fd5b5035919050565b60008083601f84011261149e57600080fd5b50813567ffffffffffffffff8111156114b657600080fd5b6020830191508360208285010111156114ce57600080fd5b9250929050565b600080600080600080600060c0888a0312156114f057600080fd5b873567ffffffffffffffff8082111561150857600080fd5b9089019060e0828c03121561151c57600080fd5b90975060208901359060ff8216821461153457600080fd5b9096506040890135908082111561154a57600080fd5b506115578a828b0161148c565b989b979a50986060810135976080820135975060a09091013595509350505050565b60006020828403121561158b57600080fd5b8135801515811461159b57600080fd5b9392505050565b600060208083528351808285015260005b818110156115cf578581018301518582016040015282016115b3565b818111156115e1576000604083870101525b50601f01601f1916929092016040019392505050565b60008282101561161757634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b60008261164f57634e487b7160e01b600052601260045260246000fd5b500490565b6000823561011e1983360301811261166b57600080fd5b90910192915050565b803567ffffffffffffffff811681146113f757600080fd5b6000808335601e198436030181126116a357600080fd5b830160208101925035905067ffffffffffffffff8111156116c357600080fd5b8036038313156114ce57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600061012067ffffffffffffffff61171284611674565b1684526020830135602085015261172b60408401611674565b67ffffffffffffffff166040850152611746606084016113ec565b6001600160a01b031660608501526080838101359085015261176b60a084018461168c565b8260a087015261177e83870182846116d2565b9250505060c083013560c085015260e083013560e08501526101008084013581860152508091505092915050565b60808152600086356117bd816113d7565b6001600160a01b039081166080840152602088013560a0840152604088013560c08401526060880135906117f0826113d7565b1660e08301526118036080880188611654565b60e06101008401526118196101608401826116fb565b60a089013561012085015260c089013561014085015260ff88166020850152905085604084015282810360608401526118538185876116d2565b98975050505050505050565b60006020828403121561187157600080fd5b5051919050565b6001600160a01b0384811682528316602082015260608101600283106118a0576118a0611355565b82604083015294935050505056fea2646970667358221220ccb7efc97baac554457c80cecdacd0363693ddc1ffd8120b287494f2e6e7e88b64736f6c63430008090033a2646970667358221220b2320bae11ac531fb45a91ab63f86f0979c9923b7d16f7e7b868965375a21be764736f6c6343000809003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56355ff000000000000000000000000000000000000000005581d020ca951e0e07cc9b4466a4ff08dcecaab576fe3bb7042a050ecd54f350701195d9e02185005581e03dddeba811cb0dde056638305ff36c6891738f71837825226664e22cae00c0547083eddcc8f89ea033e2c757209be536431035a999063ecc4cea7680a2819095a6d0ae7344c28b6e202192b520317d0f63de3a0c8a46753a56e469c87278fc177ed2ffd54aef181cc0e5362a2c803b69c6ff510c2f0e7f7406aabd6eabacf2bb6d1cf820f86901c9ece9872aa2d730307b52ebb42d340fb40c55634f6aaae395f381ff3fc76c10897e45e604092d5d1035ac1ee6eb17a7b118dd9727447b749986a0c637c58fb9612d3082e95680d9ded03dbc726fddf21141a915efc092f8027c2e710ff715a4107c46d9307c2c250884003ee14bf60a855e9e092cf92a486e2a3427455ad65e221b3007d8ec37fe026f49103818e3864b5e58e9346f6caf9e15b6db25a23ab799f96e614ad2039d2c05b16260219ffff03262b8e692f00b6d739858351ce2913c95128afb97fe1e32aaa0648ff012cfdc403736e10e5f563a04f3caed3da29c24196bf4b4fe70865ceed1c66c8b34bb1f16303083ec792f113cb1d3689eaf1c7bcd229042274852b7c2acc637cc408b26dfbe403352bce575dbfefa43a5f42d49048047b10e0aa12cd0dd944d00e60d86d41bf4f03d1e9a1561f796721c665cba8113a2901cbbdaa86dc117e75f104343bfbb6292e0397e21b39f369a3e3054c1a18a621b6f5d97f342bd128f5533667d8b4dda3a87203e0dd6d22d141544636a422f89960726533e60a4e90dacae49af6d2dc9cca33fc03f35e88541fe94c3bb21ac3a140af1d8c1b868aae525a50fb0bd219fb59b71e3003f1d1f9410991d9e5f3073eb92a8e2e438afb85c5fac0e0a5b14c8938dd2446ce034dc9c04804ccd5a87a8322391ed01e11be86f80d182754b36664f18e64c1ac6703afd4fe5eb7c953af5bc3a5c869c564c0f1191d8a62f98ed9246b4e293033f28c03e6798ad5508c922f2de44a7ca41b43670e31f826c0833e7ec9679889dd15ba540219ffff0386c0d7b1f41d7deda26d755c4337dac76f219ef220688c5b99e6ebd3b99d0ff00352828c625a50e9ce772a93ef7e002d9619b59c531942e95869e00e31257a023d03fe7b176763ea4128d3d66fe0e0fdabbdcd6fffb464a6a4937afae6ca37c2cb1303f6a2b9d4f3b0bc944c749cbed338d2f01f957fff269f142233fb3324f722c5a6030773b1fa08ca5c4f76a788bb9f6ca4957d731ce9dfd9c28fefefb97df752894503744cf0b7fdcac50cb417fbbd628da65adcbc8c170adc06b130da973725eb469103df74300e56552c5a562d3532a6fe03ddb1ed20692a58442a5a5025f7b0846c6303e5737e832ee99f8c4bb622dc4421c3bf77bcd53e3a3b0bedfd986ad75827ec9003b5399d6df2661f07dfee7b512a905aac5fb8cae94a0dfc48806c8935d1a0ac2f03aa1bc7e4efd8cdc2b8f9574b813f96763b449dbb87f16235f1b8ce1eeb54770703b3fb6d47beecf42bc6a526fe5537e6836496fe06850e86d0398e39b8bdd4125803d6a1ad80cf9b2da84bd5f124d7f70341619e577bacd63448569d5b93a48a529d0219ffff03b588b6a4459b18ff90129545bd92d1d0e5bd3c10fd6de18156b5dad9e8f528490345c6b6ef373b1260d90620f55f9778a3503f6903d664263924485bd3128d283703bc81daf51bbe6711905a38085f4db78586addac4940f810a4acb029eeece11ed032a78e337ce1c490ca662d3445966a7faae59c3f84ce311cb25453a4293629e6e031eb5fc10b23f1df9b76b80889d595021a40b1f32e471339e4efb755249da82b5030de6d3f9d2e06c11a2574d2284df1d2dd1f72ba17122d1edd71b73e83f681e790326fe00b928c372b6f8c6d826149f09a4aaa97884c1b426e351f9542475de85b4036cfe9563b52df602971035c8a8edac63f16cb62a95d6d7cebd471dec898b935603f6e0af54ef9774c231af8b468f7e2aea04b25cd3e25894d0d34308a2c1b3a469038ff639f94f2f54c66f9cbb4d020a6d67c5b0635f6ecb0c3ffe9fccae542cfcc703396c6db8d5171fc6ce33251afa816488dee77e7365ed050f9a57dca3f73249c70343d062cd7ab2d96e888962ecde917593bed82e8162727e25896d186696f9c30a03381cca608dff73c8a7a8e7783f5a1e6e3025cae81f0bf7882f851d3a230654be03664991960fce196ed1049cc2ac18f72a0bac2be342248c870a4db54534cef9b1032cd43138dc03811b8684b85a774217a08540ce4f1aac50d31d295fb13665efdb036ed1b50d494dd639e292382b09ae16e1b1c4061280d9b921f4b12d4f4b241a290394c28457d8d57e64f80cbab8f859fce8c24461eade2f9066b4d370b50aacdd500351c44ff5d72541291842c3c1292bc200435a3e7ce88fa9092efee5fe473c86c603624e41fd4d7d8f7a9630285728a5b206481994f9cef7166ab819b49507392e2d03d98777a564d9fb90253af33914865bd0842ae9782433990c1a4e4a82beaaf22e039decdbf54305f30383506e7a51aa93bc48645b77ee8c316d8f4aeb8834bfc664032f1514d5617fa70dc1560b265311bc96cdefbe186b4811bc1dff4c503921af8703a566e2e74e2a2b61ae922c1ccfd14a500cbc7ab2cbe988ed4491835dec8d5717037df1ef6c7712cedc8840a39da37d915f942bf90018ca92a67f50a410cab85d8c03f54238c3d72a95e2241b5edacd70cdddcadb11cec08ca849088f2680f780ed1f0348278a27f0b4af8b9652488aae8bffcfc7c9ec4545a96899a041464841850434031ab674e016944c92df27b0eda516627b5542b5fabc4a9e5cc70aded41c94377f03eb4facfbfc0394747b489e499622c41be4c33fdb7278671221cf93ad5619abca0301e2316aee6ccc0b3f0fc08375ba48853e1b992bdc8f6ad3d8edf74c488ad48f03fd057a1a18d85d00cf7bef15e1b2d9e77288b22499c0d106a4786452f8074de303478a24583d74ae34370a187ca5ab7b4fc02405c8805223be599860707d777bca03cb6c40208deae9cded27189dd5e68ff1d74c41a81d3af245da6a627efb137b3d037a9c26c4f8d7cc72206e385e7d4280ec876bf9a24b0ae3cc7d29d6a3f944cc76037abd7e09319ebe192a5358d32912743504f569d2b5140160154c4f35f322386b05581e03330dfc4e6c99944a034c437ab375d87dd327e70fc11e0e6d256f0c53400c03462d593ba2e33005581e03819faaeb81ed328e68c5f6777d9859953d91e8d16917a607e733d06180040205581e030435cefb868bdb594d2dce37f31213b7ca39a3f790db1df412dca55fa00c01475e28336e11303705581e0362ba73d75a16d24c103d0781818276aaf72ebaf50bb082b245fe49a220040503039f49b320159554e11a605cca8d0963a7b0fe967ef6b9522f4f3e02b1b51a4c01410e03f176beb0d9877ea9effdf3d562051790faf8c3d57a3ecc3906ec40b76a1f3240031f40cb0f7c263078b56dbc643be7f6ab7f3b222305065926de2ee975e1b521a505581e03daf3968c516b61ce19565a32941c8196ad31470281d346fb05f6c1e300040105581e038a8eff76bd8b654f58ead04dedcf68608f1ed4ef20618fb77f53cbf6e00c014715ecc33140500005581e03cf08e923a135c6e412ad3c86fccb92b79822775eae090b9aebbcfe02000c02476608e03579ccf00219b57503b977a86e099e72ed27ac5db7a4a4ec3b111509c7c1abc5ec62c9b9b62302915f03b8ca2503cbd768aeb85d7ca4f034a5a29075f22eb1b3dc2411ea5e47e6b7f8fc03a016aaf716481452341610fdfb40bd6d2a5f6c023f4b00fa0ca4ab0d549dda6b03add6b75252bd7800f2366f83971a182f8290a1a5f8806e875198ed3502614a45039416ab3c5e3c75d37685b0385f096a931f91a3b767fc45cd4ef3536ad8dc642a031c7876be9c0ac2056c913e4e70f6bf26ccaf19ba5b9487d554e3718bf18c3794035d8a3d778e283eecea6d03d6af0ab5896f57358143978d870153b517564d1c4503726cdc16c7c89eaf5c391da12ba437794b1067c8f8b1e44f4680c17a2ff71ffe0364c134368852daa797cd54af8bb2c0c4790e0fd83923bb3a4a47d5dae95e90cf039232aacea05b898366121b23159c33db55b4856b7e10ceab4ee3bf1bb019815a032afb11f154a6d2bf88b263071e9e459f169d0a53f96c5c09d227db722b4d3d380333a9c6eaa452cc53b6cec90cb8b1f0e6dfd9679ad654bb58f035d6aaba6697f103e27d42106827d90ffd6509ffe54e0fc8c23f7d8c536a98c98210cf9d6c5423c80340ac2aee6c7803841517d6e19e563f74926eb3703684296ea313f71e8e5612fa03883322fb8711589fec6e73e1af2cadbf179953645b9f31b4082c68640e5a013b0219ffff0219ffff0340e7cb28ec895006323501d43abb5e973f1e6253d7ae5cfccab84b16a580cdf603c7a054906db234a32f226a522fd4765a941ae293d52edc250b901dfc79c57675039326aaaa9be2e1d31b569714920a21c555a63136126684ae0962e929d628ff9f0219ffff031666fa10f192219237fbff1f031bfea39b1ecfd08645f96eb31c4451e9bb2efb03df7badd663fb18f3d41c2f48e83d9297a6ea7a9317654032ccf166f294b931e20327ff168b663b91299ead5299af958308b1adafc21db8ac058fdf4d0eee16108603439dc81b579e6aa4d8fddb458b99c28e9f79c78d7af9e4a0a8e0355208117e950379a861cffa81e1eed7771da4001c9ca9cd6040151840dbaec42e5a87fe43ff1e035f4b34343e6e92bef454fce31dd10c84b9c1deea90b5335061e9209e01f341e5036439332ebc742bd9f5c040489c2840c4ce067c0eb4885b2f77be57281790b2350398b216bdba6cf13625990dddb5b5b660338cad623b7a1adb595f8c809eb99cc803480a264198c128c2e657496138cea82284420e97ea2baa4c8ec8e91f359ec32103cc1dd3b34b1bcff9464dd3c39a2205deb2fb34a96343632a24e3039ddfc9696e0386e7d565c31ac91c232e6a799fda024456a52473fc38bfe59e0ef418158d9ac703502941b1a06ca35a6cb6ad07e05f4a240a39adce05ca8fca13673620a64cc5b903ab1f1a4693f5e45125df10cc2a057c7f67fdc071daaa84e1c9a7bea4f13e628d03f3511bf3ec951fe4e617aff76b6db585f23a7a43bdd0c0d76c6ad327f7636e8c03378d482d06cfd72d2230bf1661d9e15ee61bdb2424e03c0fe6854b1f43c5a45c03f423524b46213ca2b168040f83aa5dcf042a846d6ab065d2383300fc67945940034f5a5f6706dc853cb3ae2279729e0d7e24dda128a77358144e4c0fd3e5d60e980605581d0284e11a9eed686ecb218a5736bf65b3b91ccad3c3f3fa2960bd63182007011bffffffffffffffff0307be01e7e7206fe31ecee91ad75dada65ad6ba433ae647a1b9330469f7c6677c03709eb5dda2147c4fb819a20da7a29219edf23b78b89a76895cb5bb987352df3005581d022910bf38d5731a64a108d7229355d68b579deac858da8aef0193bb4d07011bffffffffffffffff05581d02a8481c6b42663b3b96a165fd157cea4885c9cee016b115dfb9e639240c19017547012893bbd650d802190142038186b2142e03cb87bb4140be9a58b336b655428481f0a76ae5a0aac6f84bb4a205581e038fb9830db2e7af9f4395dfc27dbc2d3ad49089df6b26e3504f47fde4a0040203d267fb3ee6c2c545343ddf4efd7efa3714cfb048fb46f4f5af92bbce8a756fda03852fb1a70ef3c675c6c7fd38df1fd1ef1799f143e5246eb30bcae37c59578f0405581e03ccf2b6a8792e7892d2fa9374c8172f57d47aaf2f5eb700cdd95147fbc0040605581e03ff02bd1e3e8e26fdc78ffa76503159f08500576e3aa017802648945e70040105581e03e47ef76cb1acabc85aa175b9425ee5f2b28064e1a02219dca0a201ffe00c034705201a401660000219c572036e776741ab5eb58fc27f4248dfa5ba2b1011b6c35bbeb3952e1c227f9e2eca3003f988e518f6a0bec9dc1434f21447fe3788b8188700bb377006ae29a4a4350a2403518d1a48d3e04eacf8b32c3abc26ccef39cf2bbdfd66e20153c224a66cac069803103698ae561d01f582d77798a130e7499baa3a7384c75333e661a23b00b59f1a030d1d51db1f27c5062510eab3934e2c4ca75120e5ef0daa6e6a23bdefb22366f303a3c76527383c4651fe5b4cddbab95cda401ccf5ccae54d9a564cb2e9ab81668003e635771f0ddd418bf27d74702e1fc4cad06cc9e7f92757704c519b6bda547eae03950a2fd73d93db9b09f0c1df3605e3c360ddc0471a8efce04fe0e3577309299103ccea3421d371c402b48cde1530b85da9a2e1b5ea54cf9afa932414dbfe70b2650327e931424f92834b58db98c844cb8cf1bce19c172f39bbf4214a311478eb67e10219ffff0346557b1a5ef76bd4496c9a321870f1f3e2ce9c3918a8d4939b50fa43b6b1d6240350165c1b740966db0898694a848fbfd7f899d84f46c9a7c46446b3b519dfe58a03a79591918ee55a13e36ab76afdde89480d3ef9f60788207dd324405ba6cff6e5038cd08aaf14c3ac68e447660dcf71795ea0a3167b8a2b8fe6c4d59ac8a61cce3c03b101ecccd98536494a7f5c5be959e0a42fb27e40cb66e7f6613a5a4191de3d1a039d54669b8086ccce2178cc93b77d1768fafdea966abfc8fe45e3523f9e89d78003ebafd71da4e0c72c51cb319c8c82a2fa91a2ac71e52848b34a092a033694d76b034efd8e43fe210cbafe9b490cec710a67c1820b1e614d6648c2b121b383c9d317035d17c1c771501712c60a081fe827bfd82f7a6c197a8ccb0aeb82ed7552810e2d0219ffff03dfbd5990f8efbeb713b1fc419e2d1903ca722accc26addb6cd98a0e7d44d8733032aa0490716ce51dce92555d78f5d8980a546c91e9f0e07cb39544a9a812bdc2203e9ed76beccea791114e5b1720a19cd17bab72fc4f5cb8caa4d9fa6eaad999bf703839f20226e3e0a1f93b9cefce68875ae3225f672a0fff9f64e1c0a366575ce1c03e543db4d82b66aabb6f1945775696cd578dada888e74d191cf254f5a6299f34b034c96dcab43ac9c50de5d1fc6b1848661e54715045e120749cdcdd8675a5aef7f03d3f43ed996fe3b648a5db7e160f4a0c93cc7856de4b3ecfbd90aac1b03dd68b103edd006147b7741b140ad938f351f7899334206a9dff70a6805a7b2c08d78494e0325d571a0e5a492aba1e336c6f38eee234a1c9efed0262d07fc1ecb800bd6e41003214abee04c1711c27744e108ae79a3d463d8baebeee13fbe75e1fb9eaf172c2e037bcc041a8568f7fdfc2e81329c67161859baec79783a8cd4863dfd284455d8b50315bcf61d6d5df5251bc3174220ae163a6738ffac1fd158910bdab6deb49653fa0219ffff033ee075a411eae29a56eff8c7c77a6e6a34e41cc3760a30a44bf8ff34251bdbce033bd436491d89660208bf901d63efefdffb06dcdd8896dcb185919930caf6f778032d434e480ccedf30da4b307afe45588bcba167df7f281cfe052f2973177e3abe0219ffff039130207a5d585030f11b63f2974625250ac09a55840a46a964f280733bd148eb03f4a5c933f5cf1bec7270f73d2a0532bcfe478820e58bfcd71fa1d93a0769609a03e7cdc9c86ba060ff0c4df28419a4aefb1d0b01af7f4145f6ef3d2abf14c2776b0337da793469d3846bee507ec3648678c83b4e770855ce42c18b83e90abd209ef2033779df8d608a4354e1360756fe237991eea35cf8ba483fdec4716b2bb2e7a96603eddb21f316ac35801c8d0c9f1f2992098c6d05efb28b82b1e398fcaf2cfa9f3703c56cb4984a4cd9a90e1b0633627fce62b96a627ee12a0f452a0e7ad2fdfff3b9039abfb2b72e1296cdf063dd624828bc2f05cfd1398e865ab4554357cd06082b82031c48cf564e0e2a46cc3984ca5a00088bbdc499054fc2df1f73edd372a746cda503e22ea3bbca1031c393e6325376e335b85c888aa32602081ebc629ca30772ebcb03a7bc6dd35d452a8dbccaffe7044d398885f924ec9d649575634a222bf7857880039c107e1ee3fdfbcefcec1be137a82116636637704567f10ccdb76b7e22280b9903b1dbbca9a87d4bbad8726c0cdf44120be3e4b187e87e2298ccd945bda09780420337cf94485870459bec12af53a9f809276367ec8d0f34f2f21c8df5eeea8b88fa033ff4f1d9190ea5910edf753e19a03f18defc77ae68a4b0a13881772e4e91340303941a12da6b28f1cde5c1acbde8f04abba1f0eb34ea101ba21fd6406b1470e4b30310b9ea803b04445ebe2a021c49e5da4c25215d9c207d31fbcf483286d7f1ffa303a0b24a85fedc5a470ddbe3f82b568b9ca7117a7fedd18501523f70a4c770032f03ad48f6e76e6a94cb85263eefebdab56c42e17db426c4b8f3098378f7def3aaf3030e172c7356e4253c0d23d998a3a5e2e13ce82c8578ba2b9b1c563f43ef200a15030cc179f72c23f3d7f08e7c4a26384c2bb2d177b03fb91b906567589237e4c53005581e03825a431ca46f430ef61fcd933d2f74a737b3f1bba8de22ae6553939df00c034745ae299c97e2580459195e608060405234801561001057600080fd5b50600436106101375760003560e01c8063876ed5cb116100b8578063cfdf677e1161007c578063cfdf677e1461026c578063d0f8934414610274578063e561dddc1461027c578063e654b1fb14610284578063edcc4a451461028d578063f722b41a146102a057600080fd5b8063876ed5cb146102365780638d38c6c11461023f578063a17e44c614610248578063b8f770051461025b578063ccf987c81461026357600080fd5b80635ae6256d116100ff5780635ae6256d146101f85780636fee07e01461020057806378f4b2f2146102155780637a167a8a1461021f5780637aa63a861461022e57600080fd5b80630b3dfa971461013c578063299ca478146101585780632a7f18be1461018357806337899770146101c7578063461a4478146101e5575b600080fd5b61014560035481565b6040519081526020015b60405180910390f35b60005461016b906001600160a01b031681565b6040516001600160a01b03909116815260200161014f565b6101966101913660046113fd565b6102a8565b604080518251815260208084015164ffffffffff90811691830191909152928201519092169082015260600161014f565b6101cf610326565b60405164ffffffffff909116815260200161014f565b61016b6101f33660046114a2565b61033a565b6101cf6103c1565b61021361020e36600461150b565b6103d5565b005b610145620186a081565b60055464ffffffffff166101cf565b61014561075c565b61014561c35081565b61014560045481565b610213610256366004611592565b610777565b6006546101cf565b61014560025481565b61016b610a55565b610213610a7d565b610145610ea7565b61014560015481565b61021361029b366004611611565b610f21565b6101cf61106a565b6040805160608101825260008082526020820181905291810191909152600682815481106102d8576102d8611633565b6000918252602091829020604080516060810182526002909302909101805483526001015464ffffffffff808216948401949094526501000000000090049092169181019190915292915050565b600080610331611086565b50949350505050565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac19061036b908590600401611696565b60206040518083038186803b15801561038357600080fd5b505afa158015610397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103bb91906116b0565b92915050565b6000806103cc611086565b95945050505050565b61c350815111156104535760405162461bcd60e51b815260206004820152603d60248201527f5472616e73616374696f6e20646174612073697a652065786365656473206d6160448201527f78696d756d20666f7220726f6c6c7570207472616e73616374696f6e2e00000060648201526084015b60405180910390fd5b6004548211156104cb5760405162461bcd60e51b815260206004820152603d60248201527f5472616e73616374696f6e20676173206c696d69742065786365656473206d6160448201527f78696d756d20666f7220726f6c6c7570207472616e73616374696f6e2e000000606482015260840161044a565b620186a08210156105305760405162461bcd60e51b815260206004820152602960248201527f5472616e73616374696f6e20676173206c696d697420746f6f206c6f7720746f6044820152681032b738bab2bab29760b91b606482015260840161044a565b6003548211156105ec5760006002546003548461054d91906116e3565b61055791906116fa565b905060005a90508181116105c15760405162461bcd60e51b815260206004820152602b60248201527f496e73756666696369656e742067617320666f72204c322072617465206c696d60448201526a34ba34b73390313ab9371760a91b606482015260840161044a565b60005b825a6105d090846116e3565b10156105e857806105e08161171c565b9150506105c4565b5050505b6000333214156105fd575033610616565b5033731111000000000000000000000000000000001111015b60008185858560405160200161062f9493929190611737565b60408051601f19818403018152828252805160209182012060608401835280845264ffffffffff42811692850192835243811693850193845260068054600181810183556000838152975160029092027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f81019290925594517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40909101805496518416650100000000000269ffffffffffffffffffff1990971691909316179490941790559154919350610702916116e3565b905080866001600160a01b0316846001600160a01b03167f4b388aecf9fa6cc92253704e5975a6129a4f735bdbd99567df4ed0094ee4ceb588884260405161074c93929190611774565b60405180910390a4505050505050565b600080610767611086565b50505064ffffffffff1692915050565b61077f610a55565b6001600160a01b0316631f7b6d326040518163ffffffff1660e01b815260040160206040518083038186803b1580156107b757600080fd5b505afa1580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ef919061179d565b87106108345760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b2103130ba31b41034b73232bc1760611b604482015260640161044a565b60008054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561088057600080fd5b505afa158015610894573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b891906116b0565b6001600160a01b0316336001600160a01b03161461092c5760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c792063616c6c61626c65206279207468652061646472657373206d616e60448201526a30b3b2b91037bbb732b91760a91b606482015260840161044a565b600061095f61093b87896117b6565b61094586886117b6565b602890811b91909117605086901b17607885901b17901b90565b9050610969610a55565b60405163167fd68160e01b8152600481018a905264ffffffffff19831660248201526001600160a01b03919091169063167fd68190604401600060405180830381600087803b1580156109bb57600080fd5b505af11580156109cf573d6000803e3d6000fd5b50506005805464ffffffffff191664ffffffffff898116918217909255604080519182528b831660208301528a8316908201528782166060820152868216608082015290851660a08201528a92507f293a9e87838119a52e3dd8eabf034ae7eda0da1bfdb33ee7721a6afca0b166b8915060c00160405180910390a25050505050505050565b6000610a786040518060600160405280602181526020016119086021913961033a565b905090565b60043560d81c60093560e890811c90600c35901c610a9961075c565b8364ffffffffff1614610b145760405162461bcd60e51b815260206004820152603d60248201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60448201527f74206d6174636820657870656374656420737461727420696e6465782e000000606482015260840161044a565b610b426040518060400160405280600d81526020016c212b26afa9b2b8bab2b731b2b960991b81525061033a565b6001600160a01b0316336001600160a01b031614610bb85760405162461bcd60e51b815260206004820152602d60248201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460448201526c34329029b2b8bab2b731b2b91760991b606482015260840161044a565b6000610bca62ffffff831660106117df565b610bd590600f6117fe565b905064ffffffffff8116361015610c395760405162461bcd60e51b815260206004820152602260248201527f4e6f7420656e6f756768204261746368436f6e74657874732070726f76696465604482015261321760f11b606482015260840161044a565b6005546040805160808101825260008082526020820181905291810182905260608101829052909164ffffffffff169060005b8562ffffff168163ffffffff161015610cca576000610c908263ffffffff16611134565b8051909350839150610ca29086611816565b9450826020015184610cb491906117b6565b9350508080610cc290611835565b915050610c6c565b5060065464ffffffffff83161115610d555760405162461bcd60e51b815260206004820152604260248201527f417474656d7074656420746f20617070656e64206d6f726520656c656d656e7460448201527f73207468616e2061726520617661696c61626c6520696e207468652071756575606482015261329760f11b608482015260a40161044a565b6000610d668462ffffff8916611859565b63ffffffff169050600080836020015160001415610d8f57505060408201516060830151610e00565b60006006610d9e60018861187e565b64ffffffffff1681548110610db557610db5611633565b6000918252602091829020604080516060810182526002909302909101805483526001015464ffffffffff808216948401859052650100000000009091041691018190529093509150505b610e24610e0e6001436116e3565b408a62ffffff168564ffffffffff1685856111bb565b7f602f1aeac0ca2e7a13e281a9ef0ad7838542712ce16780fa2ecffd351f05f899610e4f848761187e565b84610e5861075c565b6040805164ffffffffff94851681529390921660208401529082015260600160405180910390a150506005805464ffffffffff191664ffffffffff949094169390931790925550505050505050565b6000610eb1610a55565b6001600160a01b0316631f7b6d326040518163ffffffff1660e01b815260040160206040518083038186803b158015610ee957600080fd5b505afa158015610efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a78919061179d565b60008054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6d57600080fd5b505afa158015610f81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa591906116b0565b6001600160a01b0316336001600160a01b0316146110055760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792063616c6c61626c6520627920746865204275726e2041646d696e2e604482015260640161044a565b6001819055600282905561101981836117df565b60038190556002546001546040805192835260208301919091528101919091527fc6ed75e96b8b18b71edc1a6e82a9d677f8268c774a262c624eeb2cf0a8b3e07e9060600160405180910390a15050565b600554600654600091610a789164ffffffffff9091169061187e565b6000806000806000611096610a55565b6001600160a01b031663ccf8f9696040518163ffffffff1660e01b815260040160206040518083038186803b1580156110ce57600080fd5b505afa1580156110e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611106919061189c565b64ffffffffff602882901c811697605083901c82169750607883901c8216965060a09290921c169350915050565b61115f6040518060800160405280600081526020016000815260200160008152602001600081525090565b600061116c6010846117df565b61117790600f6117fe565b60408051608081018252823560e890811c82526003840135901c6020820152600683013560d890811c92820192909252600b90920135901c60608201529392505050565b60006111c5610a55565b90506000806111d2611086565b50509150915060006040518060c00160405280856001600160a01b0316631f7b6d326040518163ffffffff1660e01b815260040160206040518083038186803b15801561121e57600080fd5b505afa158015611232573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611256919061179d565b81526020018a81526020018981526020018464ffffffffff16815260200160405180602001604052806000815250815260200160405180602001604052806000815250815250905080600001517fa47512905cf577d4cfae2efc3df461008ddb7234e91ce7f4eefcdb51e1077ccf82602001518360400151846060015185608001518660a001516040516112ee9594939291906118c4565b60405180910390a26000611301826113b4565b9050600061133c83604001518661131891906117b6565b6113228b876117b6565b602890811b9190911760508b901b1760788a901b17901b90565b60405163080549db60e21b81526004810184905264ffffffffff19821660248201529091506001600160a01b03871690632015276c90604401600060405180830381600087803b15801561138f57600080fd5b505af11580156113a3573d6000803e3d6000fd5b505050505050505050505050505050565b6020808201516040808401516060850151608086015160a087015193516000966113e0969591016118c4565b604051602081830303815290604052805190602001209050919050565b60006020828403121561140f57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561144757611447611416565b604051601f8501601f19908116603f0116810190828211818310171561146f5761146f611416565b8160405280935085815286868601111561148857600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156114b457600080fd5b813567ffffffffffffffff8111156114cb57600080fd5b8201601f810184136114dc57600080fd5b6114eb8482356020840161142c565b949350505050565b6001600160a01b038116811461150857600080fd5b50565b60008060006060848603121561152057600080fd5b833561152b816114f3565b925060208401359150604084013567ffffffffffffffff81111561154e57600080fd5b8401601f8101861361155f57600080fd5b61156e8682356020840161142c565b9150509250925092565b803564ffffffffff8116811461158d57600080fd5b919050565b600080600080600080600060e0888a0312156115ad57600080fd5b873596506115bd60208901611578565b95506115cb60408901611578565b94506115d960608901611578565b93506115e760808901611578565b92506115f560a08901611578565b915061160360c08901611578565b905092959891949750929550565b6000806040838503121561162457600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561166f57602081850181015186830182015201611653565b81811115611681576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006116a96020830184611649565b9392505050565b6000602082840312156116c257600080fd5b81516116a9816114f3565b634e487b7160e01b600052601160045260246000fd5b6000828210156116f5576116f56116cd565b500390565b60008261171757634e487b7160e01b600052601260045260246000fd5b500490565b6000600019821415611730576117306116cd565b5060010190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061176a90830184611649565b9695505050505050565b83815260606020820152600061178d6060830185611649565b9050826040830152949350505050565b6000602082840312156117af57600080fd5b5051919050565b600064ffffffffff8083168185168083038211156117d6576117d66116cd565b01949350505050565b60008160001904831182151516156117f9576117f96116cd565b500290565b60008219821115611811576118116116cd565b500190565b600063ffffffff8083168185168083038211156117d6576117d66116cd565b600063ffffffff8083168181141561184f5761184f6116cd565b6001019392505050565b600063ffffffff83811690831681811015611876576118766116cd565b039392505050565b600064ffffffffff83811690831681811015611876576118766116cd565b6000602082840312156118ae57600080fd5b815164ffffffffff19811681146116a957600080fd5b85815284602082015283604082015260a0606082015260006118e960a0830185611649565b82810360808401526118fb8185611649565b9897505050505050505056fe436861696e53746f72616765436f6e7461696e65722d4354432d62617463686573a2646970667358221220bf21e62c8db82d401b403c33025017ab1d3f80d9b950a2220a3c716d2618bca164736f6c63430008090033031e6d017160cc45808f03ae2ad19874101d1f6126e4a5d3d04215ebbc2ee4a6ee03388a7904a9e89058a5dba47b3e543a4caad8ef54bfcdf094dc445a0ef3798766035290ad1d269d4ca71bd0a6d684b65a3f197ed287fb11ee6716d4ebed09a1730e03a47fcd53551e244c87a1c3bbad3fcd34671975cdd073a50a0623abcf6a7b87660339ba4bd4e8961248d01416f86c5ae0eaacce6032bca641ceb11571cee7542f020339731c28ff0eed9698debb0d7a37256bf25021ad54841a996b70d088b3c704c8034065693e091e534dc8ac3a60f91ad2e2b1d7efe4b2bd37fe1c077fbbde68a35d03418b6ee12273994592c179f0a7e0405e4528ec61afc227d945e3dbfc0865b9c30314353353fcfeee6dec292a43bf93eaebc135a4bfd47deb58622667c533d9215503cab4cf1cdd836bdd7647d445f8db73107fcbd45b5199940617dd01b03770cc4e035e40f5ad65c6665969f7b72b2c47376f8a567026f2dc1d19f8913eb18bff6c6e030b4e9263ccbfc1de5680a88eef3fe18cae7abfd3c82562669c003f44c79d6a0800581f0291807c85a621904af13cf67083027d75a30d52f677a9966aafaf84bd6e3749010e45160064b518db03e5e1d1beac09842759898e78cb5227ac394fb3df8a89ca6924bd8498b40bd06500581f02dac7636a2bb41f6b1077e71787fdc0c92bf01d799c1374b1e7659b7717b458207ca14c8fb7dc3167510580cb261e8609fdf27ac0cd1a3579363c5a9d8499e22203d31c29b168a56bd39a5d1f13b35242697291f18f65b09e0ec4749f581d558e0000581f02690d4b21b278f4b010a8afdec7057657f2229c2bb4d2dde000b2eb142ef1490121e68e0065a2af17034f9460c4d7f8f414b8428108c4d6261514bac8a53c0ae82b059bc5d3f8aef69b035d7b62fe0f7c916ef744ca00301ad6b7254e0a8d630528592df9ca7504527f1c0384dd2dd7d7488c2e8cd20f385f9a4ea94e2f30fa7cf0da74bc8d7679171a6f5000581f02ecd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563546968f3f16c3e64003f02e121cf0d5ccbf5625a4200581f021700335bbe94e33597a2a803695337c0d84cae75b5c6995108abfd59db6e58209f4a3d5a7c540f5bb074ba3279f54465d60e95b7bb4b62cd7c62a73b22dc465c03ef1520a26ff28c4d5503832665fee6f3552253d487e1753547f9e0e43b8c72bb0219f7ae03092a30a5b9c5e7136c342f54b1f7c52b66eb00ba117e220db63111e61387425a03b2e2492cf83a823622f5686a9984950daaf925db2490029414c8af595a81ddf903d7e082d6e5daf6de53f6f0131e417abb29c651f9dcd8b68cce2587fba4792d9f0322f3408002f2928cd15f976925d22c2bd40dcedbb673f0aaed8b06aae56b5008031d3241f2ffb6dfc8e8447e1e74293ce2bf70de3f161b3f41ad184ec9512a984e0382aad2e2fa80368b89eeccf5a0d5ba187c336d4dc491af54a6caef19e442e87b0394a370b8f909482322dc2a52f9cc155a611efe6df4b18bf49afdd5402863d524038f28ab40e4cc2fb05f35392f5c4739c2aa56b9908bfb4fa7656cd029f5a3b54c0301bffecaf4ab2513541589007d051eeb7e20943a032194b10bb44e265e196d4b03eafa4650ffa8266bad594b04170d8783bbfbddce75b9c8ca44415b6e7da6710a034b0a295428e8a57625b6eb2ae452a3c571289e38f1877937a3ee9c2e7985db8403a0d3eacb8ffb570022ce69af36afe2e4d96104c5886134758bde8e1f77a14d6d03f557803554e5603aaaecc24dfe0cdcbaec28aadbb81aefcf2de57537b8194d3203bb9c69b950cbfc3553ce63a1cdc1dae5bdb9fd916b97ac57605b317b39c4be7a03e23dd5e78ae01a5ad08386325fa06a5f2d47831e61e622d3454b93945d1a80e70219ffff0333e4f61222b7adda5cb087f1bd539d32aaa4bdb57311e10a5b940f749379dfcd03f813e8efa37c3af0819018e34c1eb11c538460a34f0fdbeda48df5cae5aa49d203322accf7b1dc3988d1cccbd9590e8e8096599a1526949926a93671087d95bb5703c47dae298c2cf7671c0b4cf7bfe0403bad6df69094f5f539f89bda876ecc1857032d6f4f4236f3d7384f3026264cdca8c13e06da0fff216a9410e087cb3e722f0503f3bcd859de10bc5b71d962e56cdb5f5357722979e39c0390048eebbf9dad07620219ffff0359e810d6a75c320f1e8b81f392ed6f777f7338ccdc6bebfd143494090381fdf903dc0ca60f29d944d1f18874e5601566b31695deb43c6a33416ca23a62a6a03397030efb38f7495cfd24e641e5c90defba219826b567abb24ade77c692d760bbf8b40372c01a8b429ada1b7c33bd38b4a05da3e8612d6b6a4b4f55aea6f6586bc3bcb003ad8667e2bc02676b0780f4d9cf88eb7da54bc7926f3d32d4f07ff6684925edf003714fe75afec74ecb86f57ab01b183799d163e4c43b8407947eb3ec823e589e6e0349e0a407cbbbfa6a223e98d37dc7518450ccc5f49b98addc308afd08708a5795035f782110d7dfd66d9f576bb47d40804f95b10014fad343cfaadc5edeba9d7f5a03963bb3f8f39262cf7924661f73099a62d6e8151633ac3d8215e66cf6764d5f8e032df302701c9d51ebffcb2b3a4612a4bf291705451613eabdc5a52039a57d725b00581f02bbc261f16473db8e004a7199011093293d8c3927385df454f2f7f22ffba449011af81000654eb49f035b59dcc4f15f8501fa3f45ae55143b54a4ac39bfa434c2b9f9d4d6101b1ea91600581f0352bd4e9786f0afd32f672f9d492f6c8572aa611513ccc2fd158e4f8b49304901209040006592729700581f0381e7d912c47937eff2b3c65a3ffbd7be08c3a0da55aef7e8b5924537d2a058209114e683d8c2513695d779acf28066c7039a9d46cc25d100caae1822a33a6fb700581e02fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace412000581e0216b0bf3a1bbf59fe9c429c3d50f04d2272361b157e117749caa5120fe6582073a4834a8a9931c83d174a78dc0da57bdd88e0d6d556cadc3222b8e5ef4b0c070219408000581f03fc63c5bbfb85c89c0943a76e98d4260828761fc31b323b3bd7d70ce74dd0490114a1af00650207030219098103b6eedf8b16366080bcf6ac13d9bea97abef9830b8a90d12d627b72ba1c2cdedf01410c00581f02796a513c29153d457305569171b0d2eb5b84c76ee33a0086a8801d1f84b45820a173cfc775f723279a184d2c44f8876ee168a1e44c9e5a71e1afaf12429ef71a00581f02da3fc27c778a15e2ade1f7f9d5e578d0268a5e75a798c6d8290e8f4d13ed58206520f34c4159102f8f2f8ee8f0d579c90cdd85e5f2e16297478167950af2740d037a5d8d949fb08985105997137b35897c1ac135cda9e83b1da99da93790654e7e00581f02968ab9f7e53d6c6684861b66529aa086d3e5c390d6975ca6df9dc83ab638490114f06d006505c4b700581f02cc892cc5369918b5d48ecb782b19a1636ebc617de682ccc0234993ca7998490121631b00659c77c70219f3fb03009342d3720102c49de720202a5171c40d13ed5f36ee3ca825117a672872f691030f70f7900ebb2d02b2d62e13bfd13d42fc2d6b98b31bc02f35092404835d12b203bcba547af92a93b981d7b313a5a1b3cc1a9ff20616fca0443c650bd80380ab3403965c18813ce4058421149a7efc34b19d956bd8cb4f53a315aff25d758c6a6eb6036d483a91ce034274e98c8ff27a2e6a47f8504a8ab76cca2b1bd2a9dba7b4f31903cad1e019ac02fe69b31b259a943fc5af930bc62dead6fa388acd7169856cda1c03db092ba534894c8036c5287a156c64d27b972e96ef38ee5e8acc3eae29de0d0c0336c21a272809139f88b632943c9c25b5169f41d1a5b80a2ab30fb8b8977b307f037e32eb5fe10e4930cba94b9a2ba8b253443f61a09625a9fc2249cf4661f466c60313835af6b918f9aa51ff017b90f4dde8f8384944c67ba32ea90e8e46870a1ee10219ffff03f35f72c0d2b2b13747128f3a484b1e2b203d57cde23c5a8cd833de0ef4e14fd60393da81d9783da4520b26753063c6eb37018ab9a613dcfa9a6417b3200952a5e003ca16e7ba906cf729a959be9c104ed22a824591ce0ed1de4327c4d725fcc75c7f031fe21d295370fb530f1814880a95e314a63bb5f7c0cea55fdb8328fa9ea0b463039ce5f3ec04419bfada528a15c35622b936cc0d6aa683c0ba1a6a3b56b21cb11003ccbbdf730a61eafe148ec94aeb9e27e7ae5ca137074db4f752aaa09343fbda1800581f02ddde280ce82e1fd89dd38254adf8db3d7dc04935379db1af073346d83e3d490120001e00658b9d4300581f02e8b7d784517f01f17054c0847423eaea8066a56e76ba9f09c183a9d11e8e49011fe2e400658a3b5b00581f0224b166a6fc712b5cfbdf904f067a27fddf531358e29d37ee27f0d1c5efd15820020ea29bf8fc025773ef1da2d314d393969ee2f7c6dc4e96651f262dde6332420323ce1300a72a46108b3ffeb20bbbbf2df3c49fd3aac2aa1f4a65f0e5938d311b03887b8c211571bd2d4ea143b2d78dd59705729fa4f1b13188e3914aef445e9d7501410503b90dceaf42f6bba8fc165ce353dc07ef7fe64e4cbb765c1a218823ae1cfde662039b5405905a62f417fc54a4b35ce114077cf85e0fef7528d25b05512dcaf5f8880386d098c0d949a0fe8eb19d0f0faefbf5c1076e6ace390420db48f601b548c38400581f028924b91dc5ec27fe342a42efc79302eddb5c0e3a44c4934e05cd779ceac75820a6850e6b85460b22baa44312d0f43d3672d7ebe48d1ede59b17ed25112c39dc3038d4a91b75022dd254c6381c6b0d2db4cb4303e7b2ad3ad6ee3eb025a6b6df643021977f7037636febb6a3335a5be196b79505cec5a6592685b3af503a8d098abef4015e4e303632f6ded188463d2c405d97d5c6f9a2085c46ed1603b1d535036f8910ac8281b03bf890816b794f2778245f920b6e9d9ea4a7ad37bdf1ac268ea8967e6077c835b03a414c30b827b3adfb4c42342d94e82c81fcf7c4ab44214cea2239c51d9a86c110381737986e93215bccd5f3b6682e05d259048be787e585cc9ee1d9d606a3ec8160380373a664f93ae4defb87f295796d62f4bb053720845cd0c9f02aba420ca72830367d1839d67af5307a0e85ce419f70925697b3529aacede1df2761f529cff642f03ec72cff6e47c2289289f99831ac0706008761ea205b4e8daeb46ffe5e69db34a035a1efb13b9adb3b06fdbc981d8d4f0ad059f911bc3a48860f695f10a2861169c032df5ec140954f8f9c929de75f0f10c5e39e7fbf72509db7700f73b266a3bc78d03594aed450b9b802545ca75d4700dbdcdf7e614d49ca9c4947eee54f3b6701e1d038629bd701ddc0da71e3349527eae0c1f59f332906fca1110263d2d6bf778b06b033a2409cb79f033dbbf530c6ec47c2aaa614a6e89d83a089af465c0b313b1567c03717cbc9f3daffc66b5ec15ec76098748f680c218da3956260859305395dd613b0219ffff0388d0519fa67a4ecc4ede08cdd5f0280b687a15946a9cdc5c6633e7c6d0f0892703736dce43f00833fc32ef00d0c7074618c32909e049b56f8a550ccfd735d2386403e0e2501dd962b78a07cf136870b06abfebd35a36d72ba33e3a18ad121f31b65c03e74d8aee16368c7960f26d7a566204dc9758a1f074466e565bc429af58e8a297037683e7dd059fc0e682b1cfec9ce177b1e00d0ceeaad0c5ad34eba03c51d518a4035f1673ecfc9af9fb7cac8d9ba3b2f463439bc2bd1468d2d861cdf072d657955d0395e37f74ecd8ad6700fc2463347946dcb05090e900f8ce9a50182d0d7413265003a8348cf3f0ae8fa6b033c5985a8b4a414039815feee088a52b287d8c4397db7403cd4e5e2b007247f44cb3b6cfe4392626813919472fe610812b2b57f8cdeb70ec03db01ce1bad8e001bd323e006ad3dbd0e375077924ad651bc5a18210aacbee5160391864f3d7ca40d01cec1d4c8922fcf70984808487728c899647471e150fcb4830313b546504683f447e0620f4191c4ea784bd58a765c9d7ee2d1f4b74effc40b0f0219ffff031161528988d8213f34c052034314ca79de0ad9dd1f127184482178dbc502d233038b2e5211ddfa4e5f5afe6b56e67bb50c37bcb566f9d25dc2b15b6093c99d564303e566adcc5c91b2a65393f992d9149f66d50325304009eb619769585e790b38bb0362e7fd2f3a4eab67915183833ed765acfe90798638ba09aacbec7ce5f640f42b0375705f86378e1ce32609dd40a50c8bca3f816a54e72d43ad4402e5e4308970b10307da02ad937e256f182d255c4398b4d21a5367adf7d7e1bf56b89839e20e5e430364e29268e0c340d3c4ddbca0907955464745e90086ac0471932d08455037709a03abaceee4e3faeb567db5bc026669b76860ab9a3a7ab1d652238472ec501be7ad039c161ac148fe891aa680a60a71a5f45ea56611be25b073cb204573b97948373803ec9505d1b4e55d545e67102cb107cd8faf065b3c020628ef0e74fc6e0343fea503bbc5045783f83d041c9f1c26c7a125821138532823c1277fe8860d4dbaa33fb503d1e49a3a85efc6a877541380adbfc2f5c41ea882227daa98f6a4b461c8da2392032408921445552bc21655cf6d20b48913fba899b845c21c80016ba2c4cbe47625030c9edda3fc9814af5289c9209f854d4ce042580a4c632f9d9266b25b93cdeab10391b65f50228282f5b5ead7d1ad9217fce8905290e5b1482c0a2702138d42ce15034446b0389bf052ab6ec543d35f06d393e240aa3fbb1cb031470784368abfaaa400581f02eec4387448263807ae23e1b962b70df5530e5301907e93662402457eaf4b490122b2930065ac4dab03c9b3f69e89c4b81ed7fdb3ec081abdb772bd0cf7ce2a9be8bb4382514e7e682400581f02c6b17da7bd5f56cee1eb8fa85c8e7686a659a381b666ef9c18ff7428437a49010e5aa70064b61db700581f03bbd308bf009bdffa8722775baf773400992d50adc668e5fe560b9a5a0b7049011181ec0064dc3c8700581f03cfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b04401c9c3800219040403d60ed1b77a34b1ea00174acb393920afdf730d341ac7932663ae85ad14fa77c601410f03cd48b6b0150262e786a2172f80d38681dad83e80ec8c16acafbeeadf689b474100581f0225e2964762b78f6a29485ede85332dc5f3ea97145f7791cf840bdce4e3d84901237c780065b5e08703a307ad49bbfcfe5ae09395000bfa7fe4395df61b43e9771efb226e54af0b2e7a030356e4990eae488cecdfbf14e52bffa954fccbd181820a863d19736d92143ee2034988a2eea0f6ff180e886c0d64b1f7496ab1e89c69b48b2ae5bc891bcb4acd4e033b26ee40ea7f5d4624b045f112d12095ba8d2b6ac000bb5386c37769a527feeb03dfabba1bda21d847c4e1caa494e0ea63a701885ffe336e254b9c8da7c4c93f6b03a3e73b738894eefb2aba2fada3b0af704241ad3a80b562633b463a599bc5e6320219f7fa03b97ff4979e582805e1bade7d94ed661247280ebb45f7f711deb464817da662cd03bfc798c5204d3512f176e28d5cdcc96e0b5f323efc24da4b91b683d9666231dd03406f5820ba505978be51ef23ff9207bcf41f18aa442aec12c663c5b48f00ab20037118571593bc416c316a27008aa4b0c6a92ed3e97d017a5f75cfc81d55a07b62037e402b15ffe4f7434e38fc0c42525ccefe52f8d480a3ee55aeb80c036f3c38ec036e66e60ef9cbf36df816159a6a19fa3935a81fe302be9abcf39ec6e07156bc8a03133d863cbdbc807cb4618b6f6baa91779df5c9c24ad403d19769de5e4817b7fd03a9ed9ec0eef27fb0c55e4c71189e2c118c36fb4912c96b39b22cab1e4cf53f9b0370b9e909cdb523ef299d06fb353ffe1f67a1098ec80c8e27b82aa65ae1c4a8800385b1658555fea08bc05a028a5e2b32c4c7060e308563e2eb397bbae077aab771030cbd58437615697227e410f5acfac8275ffda9403f6ffaf642fe78b6e6599d6b0398e4dcabaa1d367a2d7edb783a3f9f7e5bc9f2921fd1349f0b5f426a510379550219ffff0368c57ac2e581f020212f8b2cea2ad4dc9a04e9d556681ef99bacb3f3c42a551403bcdba79badd380c8218e24223b8b18150b1d47f1fc565a400bcc9219a50d490503217cb13b54f9c0b1395ee752be3d672552e43ce16303bbc0b0c4c61603df3c5003f947dfe3a86c947977e745bfe278ad105b7178ed5ba418db1a4cdde80b96f4f6032186ccb85cd4035a9907cdd55a1d67096b627f7a1b0f0bf34013507518bc8d100219ffff034818e574f8414b7af13e34315690a05235f40c7d439445aa92ca5ac267cfea37035aebe09c346fb28e9339cf570d7439c548d7a8c4cc5bbfe5ee8ae6166a477a1b032af3bd4927d3dc346a6d3c8b5513dbedf93d5e810b80f191df75b40c740205f703837046004b56afe0e72e2c9b54952788ca0c3636ca02d350e2c09388045caeb203b99ce274fb10e174d2628bc0d5408bfc24ee65e5432748daac146d6658cc4c880350d168219cfd6105e1ec93b84bca4b13dca716d997f5ccd1769cffc1d28e47a10377ca9873975228dc1510bf628afbe21df26ea53362909149822fe3faefe2b13403fd475441e3a86219b26f5bc67cb0ea1c1c4bf9625e50cd6b59d554a5bd2f4b5803c723ca7499cd68f7923c2397ba320d021525c352ccd0884987bf565f5db432940397e88042086cd9bd404c228a96b90c8207ead6191bff564904567b5c040ea2210324dc1d0660f532150e4b312f45fe95c2feee74474cdc61de9a39ff5f96d31efb03dbc69499a74348c19a7a97a28ce4911874d0524ac697986f8777ded85cb5ec5103f59a35577401a4eef2f5cf0f604072d3f3888bea2ca72771d967bccbe24a808b03c4d2db9f1716b1da85907c0e61c2b7fc19d5ec71e20ac56f7ca0bae8bfd5125e03696163d1217cc8d83049b80b39da3b1e2938caca7a835d6fdb94ecee8e69737f0363deacd242c3ed760c46d23b5d2d255d3f684e4e5d1746f22565441954a6d9ff03872181cdb5a82ee85b907da73e07f28d77b8532f796500f96f30e659a62b246b036cced9126dfc89efb26643613e1841a3fd52f40ce091a9c1ed149d3308b1e01803194e7404e4d7a8960ed82f1f3714e0872ba40864fca760edf86586e3ee2b530503c196dc4fcd2c4de9df6db9e6a595f8cc3d77219502a618f0dbf78f5dc2c75ef503d749680ea4ec52cac08f99925eab0db9fb6df91460dbfe06ed6dbd1551e8f1ff0393afecfec72872d60a4e69c51af8a1953b876e5f9ad6ac81647fce464cfb7d940377fdd7fb0166dd88f195ecd0378d2c7e0804a65e5b360440f7fbf0446839e976031bdbe097d14033227bf482bd8f5782eaf3def78ecf98a0064a19590ddf11d30400581f024f75b2de62dd1da229fe4d4e3fbe6a2853993c6d80a788dd035ca3d2a85249012312d80065b0e19700581f022709870669c1d79ecca70c67f454185de9552ea6aa3f02e28b2e065f63c6490120a814006593940b00581f0275f8a53810e3bfacda0ee5c1286f45c7787bd54fd983e8f680696a7781a95820c6f0cde2294a7266cdaa416bdf83a071eb1120cabcabf30c96164f5643d9012c03e4362a2bdefcc444c3057c80d20856742bcf181c4c59ecf0710842e0a10ba7e300581f02cabe9614c8d73b9fea823e392383ad208eb9fde5e55530baa0d144d2ae4a4901104c500064cd9e0703a6edbf92ce59cd63c528d3e3a57ba4080c61b19e8b3fabec6e237cc7011878be036ef2b7fcefadb8ddfbc61993db3cc7b5e7b555b731a213d776c7d3120cb2946300581f024130111a104b8af53cc46dbeb5bd1381495f9807e912ced12127a16264625820b2e79dd0687f245ccb39eb4295df850b02f0478f55eff4c0aa227dec8beac48a00581f02904bcfc3dba45b11e5784f999f7e97f6e95af4145784645e4c2bbc7811ef4901146e9b0064ff9c1f037810c6c9fcbc5f44e6779f325a10012ccb33ca2ac8dd5daa270c6bd6182e491603a271d99988c023a856620c3707e71b3c0079c7ae93a918f1c78acf604480bd7c030c9d4ee92b9b151a1b4608f6bcb859d784faf709db7052d95a5d9f01ff138c1f02196dff038541a340ceee4ebc9e02158665c80d171a724577240ce94e08940dd39c5758b40219ffff03a950d584af7e5a44d0cac742164438f91e96cad048b4a01e490ce8c7e582ef1e03ce1513e1d67106513e5570fc80e3d2c9d83d58738ff1db95968820f08143b118032dbe6d975acd41a35f131668f245a6dec3a38cf4e1c2d2a28abd7cc6c609bdb7034a61f27f196453b11490f9ed1d147de18fdbe54698b89ebbc7ee244e2dc5749003175dfe548d0c1b76c36a897af1b7ff5e485021c1d3e152582765ba036e72998c032d9d9ad836523294a1e34bd010cb000c7fde3568fdfad71960fa4e0ee05735bc033b2a31fc55b9f78eae8e8b9dabef0d80cbcc6e05f2cee880f6bcb183d8239b1303fbe57ab5ee514ee17c703bdb552d0d4f355eeacdf8ab01442bbbcab5302beab50219ffff03675b55ac2a4de26d26c4c88bbbbee41bfb0625ca90acdc38844cfe43a2f6e11d0312bd7785dc0e68ee729b0ad88f813d0ff9c736a3792a7709e12e4ffaa536252c03877e3c660695566c74f498105ca870898bb49e3be06beb33233ad43f0978e8af033155e24f5565da3f1577026f30194c3e257136081ae97b81bf5cd953f2a7c94e0392399d2f95a982f1e4ccccc1656ed6c1690dfebeb30ad785e7a9935622c50b5a032fe8cb6c7189b45acaf3ae6797d37775ea0c9182e6bb8afa5aa203174532bcc8036680fd409b65be18e87532634c11bb21870e2cdb7899ba71c6b57f91174657260361583c34240440555c98bff9fb018658a487a44dffdbb494d00b63c7cdc544c5037d6b3d30e9d378eae6f049f90281b553ee3c2048b7948d9b4a8ef76d8f81d7fa01410800581f024b76bc4fc8fdd5316f3275ecaeb896390b5214483a2ddacc13a61b56272a490124afc90065c46daf00581f03a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0431d4c0000581f0357d0613f347d220916b436800ba3c6d0e9d23a8dfeb61d3610c34caa0670490113ce390064f8074300581f03aa3fe240afad0d429d3d7ba38d6a0c1821bf1a9259b4bbdcc0df7f0d174049011fcd0b00658931930219052000581f029cf02e837242d96f9e508830343d58d8cbe0f6bcaca4b6ea09b750f8c8c5490114eb4d00650585f303c56db3307a2865eee65e563e33c1bfa0d6f0ac299099aa736a8dc250e63a016200581f02a25fdeb229ac2f7103a8e758adb3c169d99492590518d758a2719bf9f53049011463830064ff160300581f0240c1d468934352ff3152b173879df537cc5421d54a55b4d6866361b6040458207e99e8b606a020556460fcec163a2c26342a471ad3b7e4000b937a3836faf02a03f747c39d637bfce6e717c975a40ef9bbdc222ffd33c55055dc84e24629ed92f703b3dd6d28b37ce09bad2e89b00ba8d6b0afa6aa477c0f0e7250c7b4bc697c3c2c03f7624d6568251321c0035ed22102423e50c00df0e88b22c99b4e1b6dacb0fef60219efb1034bb7d5777cb9d3dd68fe7c9dd7b3600f66ae2b49ada45fed8b3b7a86ddc1c43603351b523810d1954a7c52061f2ff1ad54074998dfddff4462ecd8c560163361fb0347dcdf1587273004416e24d968e5d840f541004b6fe4442ddea58fbdda63cffa0303affccec2493abe398c0d53c46f2b02ef4f63b0be82c4402b77a831e9419ed90378a4a257cfee3160532a9744a49eeb6c57846e6ee3ac2b3a91c8f9fd852d961f037491357fcc749568272c36a68f17785683c45f25b95a88b07481c2efb1138fdd0385c0c685a75771a662d7077ffe2a7a14546f4a60dbc853c3a138a8c77f81947603ef88c17018d8c06170c3123dabd816cf82965e4c48d99ea3b91303ba24987a570396e9a0e0a5f64d9e5afdeeaf8866f472de8c91cfb37a2c81c1d60747aecf42b803d8fbeb1ec533bd051572a49c26ac39c9cea69a028ace6f8fd20ff02d4d46c9f70219ffff0303eafc8917a1bfb8725f192a89d5f68d278e0573c0f689c8a2684b8499ae58b103216ab36e5e7ca833d7d00d3acfc9a711ea0f99ffb279bca59356af241542a99303c256f0417776cfed551518821c204e14fc931c51776a9acb4c56c2586f6780d603efe59e26b631d48af614f2c77c70ac4cfad2b2d1619c9c2837eafeb23e2ffe9603dbb711592283f93a9e88f594dea61d00b77b31e90981e209c100791c537a8ab9034dae68720ce0f52c493fccc9baa569799a4148634cc8de1ac2b73b94a6414ba60348ff167cdd8ea18c77de5ea64ac234b5adccc9eab731d53126732a41d64f5e44035045480bb3254193547424ddc6ae5a6b9bc94f000a94332dfe3b1a1c109f4b2c03817e54c7d140616b7fbf381c8a9b5aaa0dd4f7bff279893b1f3caf1244a5487803101e3b736673d9182a852ab020da573490e0a40757bdde119980d57097483e35033792f56b3f64cac9affbf1c5fc1b4ba60c99e57dd2fb273a810b93877519af1f03f395ed25ed717e79c597c6b9d120b999efef6a037b3e8c6abc74448aa0480fe00302f193993f5045caac73538c261495185c26491d53b8c14fd5085413d5052a200219ffff03b4f8ebc77d8071590e69117180f8b41ba702ba3dfb1331eac2c44121c3789ec1034972e2928933aae490bcf77c27b8bdccc3393f5c751f464b001c92e363b1d6d8038f658d62ac51981bab222443aaec7fb34a38a26a8006904d41702668d7c072b703e2cf5d5303f704f84963ce775ae19f506e4173c588c3aa11ada2e7bbbb26357d03bea19be988c455bc6857ebf9154ecf1f4d0496634f58bf64f973c3267c0be7ec039e68b7a4f61a4422aca108dcac2284f1eade1348220950653cfdb90839408e84031695273840df885394c83c740e8613eeef4783850dbafaecd1d9667d55bf75220378c3fa5c03c661ff2c0e3b426e6573ed35504d6862cb1749377b5ce2f44b8bac0311463fe8ce9a31d54da54a2a8a12950bade96422680e49405eed3ae5fda6f7df0313a878e62a2999f8a419d4c36d3164a78e0f8d66d87d114a15196bac03369f5e03fedfa106ba4439c530279ea938327eb41c6fd2df6894f6decd5d75c48c34ea5a03dc06c968c48d4d4d3048c13b9492c4adcb6772b44e37848dfd869da1c11bf7a9037cb27d94f299e6675dcd80b82ce126f5a9b25915927ad5f7be1b7b3bcfabc57a0392f046c27d58822862849666af91350d4dc2e6f70a6fdba6262beb4a96493570032ad6f9e6b8225822cfda01e5d92419a06165b46393f2549564e71ed6c2581b7900581f03f3061b464db4be9ed65bc2a65167857f094e09713a1c3ea1b8778d0d79505820ed601aa394877a1e3149ed0db137ad03ae5f894d4a8f4c45906b08e22c0d6c4500581f03f732d7ffc6c95534cdfa38dc6c3c7a0e06664381d6877d545939667f98e049011346020064f197d700581f0322313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f042dc880207034c8664242ba01e08b4914d627f638c8a7e680dc798cd103ef5751a267a98a2ad030934f21b2647ae4bcd0cf49f7749d41dccdff6a7ac4a9c80fa43bff52a10a8ea03dcc85fc657c256ffc9cb9fcaa01d1038606b3b9dfe47270b4fd918c467f224b60141080358634191f23518fd92dc4ebf02682ecd1892b7c4e9c523eb5d8e21356e172fbf0377026394e0693d9cc0b226d72ee2ee023bd90ea86546da379dcc460462475230039c15351d4bb91c105945b6246e90e3dd13230c1a0e0f904a9315473f6394669100581f02579a8c44c6e31d22894a4a435a87b212a47c200af4c9ed39fcd89ab0a0594901208a2a00659228ab00581f02d3290ca7d3fb5c66e54f471e2968c3fcfa92afbf4ad723b62c7c6d3e36c95820f2169b52845a319b1d245ceb85848893c7bf8cbb339ecdab80d638f038a2267800581f02909f503b4811b4ff0c8182a96a8f83794f8f837d177a26fbb0f53f8e2e0a582002d8fc85284a240df482516fd8ad0019ddfb4445c0927a86d10c55eedb59b74503e2025be0d876dc24d1427408c052cb1b4db9fb14fe142564d1bcfae8887148b202199ff7039ad3eb2811d53ecf47a702080d3d567b6f5fb3df242f95ddc900d07d5070c55c036fab3a503178a32fdc264dfe8c5f1ea34b9ab5d51351d65b4f3e12457ce66d880396f3211ae4fe83a015edddad608ba0cc92f6f14496dfe8f09cd747f3b0ac687d037cdd679259d3e54267c52b83998b61a25e5e3bcb9839dc2226e6e8883d870bf90304df82b1ddae8f17b55ceb0a644b3f906df403950fa44230871f32cb0381e34903549c1fdc660b39f6bfe4ca152a7569c5be7ad34ac019d9880c43b67379dd166e038b970006a065fb2ac92cba3c62966e3c4875e4878dc9254cb0caf4c89d7a10f2036c0cd1382b3d105bd684cd668e6d906639ca5ddc9d42708b056c5d004bcc2d0f0328435fc165ce74b9b75972d9b159aec82ace5325fed0d84062b79637c769c41603597716114d3ee771248cfc6c2a6ea340cd7f94ce32a92d0167b7acec15aaf1390219ffff033e00457299b94b0addc308fc53b1fac637777b0481cc5e067180e3fe22aea7f003f631e716553c08bfe4db4c026f1a14304aa4b58a47afcfc106e589be78a5975403d8c1cb32e6f56d9225201d439bc0eeed119af5b81d5600597cfd0a7e191de9c303938ea5695106ae5eec55002ef86737c8fc6ea2f284f3161c2833b4eabc7cd53b03382511951e3fc827841d737b15e67b398730f1baf3dbc6bb536ca499f7cb5c8f03562ca1b81014e0fbfc8a125bf60d81bc17305315ffa1ec4082388b02c2f6133a03432b1a85e17c963b0057f748cf0e9b00aaa1211889956f90e3903f3d11f26ee603cd24ece29e4147080ff2e0b74be92bcc2e387703c3d21fd17b65c57ef325807b0304cbda7404fd6157010404761b494a5b20722d030eafb385195d09dbf63000590219ffff0219ffff05581d02205a17f0d1f6ff65840a48899e6f6caa2c5c088d747879f098e0f92e070119195e05581d0229cd6d7a24387b250d0025183d1fd84bc47751e11fcbb8ec9c1dbf100c0147018cf7c57b2e2e0218c005581e03a82b5cd84b8176353f6238079b8af08dac8781051405e7b9dd4ebed0700c014733e5f5e1731e3305581e030424379def5f4eed88ee55d4f031caf40d202fa6b6cd9a2905f08c4a90040105581e032ddaa266b36a2e73295c787e2e47f66c0cdcd0acf334cf610b7ce731a0040405581e03777936aed38535e3ea17692536437f2da1e6df58a56e0d97dbfa8156800c01466518f6788ce0033ea841c5a7a8ac2bfc481430d8285ff1abb9b1c0dfcf14f204d3bd9f79ea0f1305581e03763c5bc98435be7e5cd6702528330710b89cbefcea3015591b253449300c024603dc55f7ed800219739103656e7790e28c175099cc597c7d4475f8f6f59d359c34704e4ab49da630c2006e03cbd19d0c3e31c71217b53a75a0d755e6635fb024a52f63c47bee8551f31ea402037e144c35a394565e0c1f3665a5d6816e2177b34577fe23df845170b13ab3b0a90373eed47d3c39100f1089e4ba8cd46896736ac6dddccc0b0c753d5c04818eeb900373bab411c6abb90ccfb0228e8ad2d0e32e7696bf24272ff98bab8a8e4651cab7037b97619dc9fb97a8f5aa919a85bc2253b30c77484d33ebbaa68d7cf1106b332003e6ad855e82338a24677137728d6e4b236467311d3f8566b2b9dd1d39bb6e0f5c03a7bfa225acdddfb1ba9c2bc332365b853a8c52c9ef61cc63d05a332da3353d7b03389277cd2218d17daa9ee629afae2cc1af31f9a17bcd470ea7a37e17770e276d035ba46e5b8ede34cbbc495c223f0f19537997afff4f748ba385f81ffc8b455f1903287010a5e6187bee25efdb8e0caed4b71fbdaf6c3d34ba64c8b822e0e41e6cc303b6dc85f3a715ebb076823f1879d702d1cd283d1748ed72f6a93a60d7539ef17703244fab2ad80ae659e9085af544abf9cd9e21f14ef18646a469a829d2dd111f090330c14cc997b137ec9579213a8a6979104b648bd242aa122a1b6a6a4a7c91dc090219ffff033eb59d37483d2a7af1f381ed706ec7ca43bf22ed0702a051b2b35b1c4c143aa503952b6d6fba61c0832de23a119316f3a5ec39a3e4868f038c4941e45e9fcfa88903c2a192caa858610fece5b79692d2827273502668df4f424b593840ee47a93bf60333dc0524a0a8bc1daf3c3c8a968c335cc97fa856837be9f376928eaf96a06ba103a4c2f66ad2af59919689d4c831d1f83f72cafa2697515cd59cc9ba3dc78e454b03d12de4d1c0436315f4da008117f0a4cca65b28f49b42c74aa793b8554069886e033fb36f8f686ff3b2aea053caeb26a736c1e4ea3175c5b9e245704e75c4b8318b031a84e479d5a7681159a2436af5903589137e7a0c4331f7440b66c0338525c341031b4a32f0dd9e51e52263155789b8d3b6a368db29e886978bbda07a6dff4e6157030c4de2fe1694794eefaf6ebe5405a48de02658961af55c66e1820920da1ab9220219ffff03c3eeb7ffe9071453eba4bfaea4a81f36eb94d66d85862b036aad112818de91820317545fc58149759cec383f3c42334a8795ba769489cfa006a9a3d0a7277530d1038c0c1e34b9655b526df88dc5cce54df575f759304c1b36193ba32a4f5e78a7a60390d7bc392a98262272136cc7ad97f7b35d2db2aae9718fb25162d28e907738370363a79150fcbc2ca08c35fdd2fcd27d0ed0486a7d7b0db0b1603a80be34ddb6e40219ffff038c35af1889f1971e661a0e573dce2bccec2e29811f5c54c52e7a69d79a4a6e0c035094a19254a3f19bf3f3614543ae098f349cdc1b5e87343718b9ebcc294eb9fa03dfb3295721a27be9d6ed21ea82883b8ad9f029729d4073d9047d5f4bef2155480330f1aae45d354287f88313e5758067a6220987998535854624da5dc249a9b7a103015188a79cfdbdbbf85d8b6f5f241e6b4093ad7f4e88b7d6a73dd6831742e917039b14e1969554a98e9752cfea0d4bbb42a074d04def6a03014aaf290f55c8cdd20306b281cfc328d17e29637e5be419e04cc74a4f43594a4b70e9d7f9cb66764ad4039dffd91b44adc1aab981949af58128ea8d82c1fbac9954d8e14088bb064a4ac0035819417568afbf3931faeb76fde4635a49624cb3d44d8575538441692d3bb09c0388b86e39523ede65fd003111c31b6748650ecc3848df2a42f650e376d7881365030191f7d354bb4e3078d0be0a323146682bd17efdde65382ed94494461c26727403a2893ab258b9860553199f9a80b8922f03e8edfa3d4664bd802f5413d46814c5031c19f689eb96f6ab694ed464e537611efe78fc96af8ef463ac891f5813acaad403a4288f0edb3421a7d08b8dc110a721e57020f411d798753b45bd3975f40e35460330913208f0a541c5a6219df8b1b9e72feb6cb992b32c980fd0a0d24a1192d01403f84f3411e1c883283767e60e3b07d88760bc2bb59dac50893873be59389379ca05581e03b32679cead7e3b766a1fbc8699c0ca3b8228258ed998a204f75ff88480040205581e03fde6b86d22fbb600218e1ae8c8e85f0888bf0b1670560c0e4f0229c6900c01470452c57910780005581d02de8368e0ef9e7715983e7f38df726eb7147300776c85e8fa67c7eb660c034701049b6a09a69005581d02aa25738bb24eeaeffd0c4f76445c1c35c957f10e3e5e4c98230b41df0c09471b0028e44b000005581d02dab2cafda3e1550a42b405934513acf9a7a95c425389b967f7d16f16040304590c7660806040526004361015610013575b600080fd5b6000803560e01c9081634ce34aa21461006657508063899e104c1461005d5780638df25d92146100545763c4e8fcb51461004c57600080fd5b61000e610362565b5061000e61027f565b5061000e6101ab565b346101465760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101465760043567ffffffffffffffff8111610142576100b5903690600401610149565b9133815280602052604081205415610116575b8281106100fa576040517f4ce34aa2000000000000000000000000000000000000000000000000000000008152602090f35b8061011061010b6001938686610532565b6105c4565b016100c8565b807f93daadf2000000000000000000000000000000000000000000000000000000006024925233600452fd5b5080fd5b80fd5b9181601f8401121561000e5782359167ffffffffffffffff831161000e5760208085019460c0850201011161000e57565b9181601f8401121561000e5782359167ffffffffffffffff831161000e576020808501948460051b01011161000e57565b503461000e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e5767ffffffffffffffff60043581811161000e576101fc903690600401610149565b9160243590811161000e5761021590369060040161017a565b919092600033815280602052604081205415610116575b8181106102685761023d8486610acb565b6040517f899e104c000000000000000000000000000000000000000000000000000000008152602090f35b8061027961010b6001938587610532565b0161022c565b503461000e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e5760043567ffffffffffffffff811161000e576102cf90369060040161017a565b33600052600060205260406000205415610316576102ec91610acb565b60206040517f8df25d92000000000000000000000000000000000000000000000000000000008152f35b7f93daadf2000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81160361000e57565b503461000e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261000e5760043561039e81610344565b6024359081151580830361000e5773ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000f9490004c11cef243f5400493c00ad631633036105085761041f6104188473ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b5460ff1690565b1515146104b657816104a6846104767fae63067d43ac07563b7eb8db6595635fc77f1578a2a5ea06ba91b63e2afa37e29573ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b9060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083541691151516179055565b60405193151584521691602090a2005b506040517f924e341e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9190911660048201529015156024820152604490fd5b60046040517f6d5769be000000000000000000000000000000000000000000000000000000008152fd5b91908110156105425760c0020190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6004111561057b57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b35600481101561000e5790565b356105c181610344565b90565b60016105cf826105aa565b6105d881610571565b0361061357806105ed602061061193016105b7565b906105fa604082016105b7565b60a0610608606084016105b7565b92013592610712565b565b600261061e826105aa565b61062781610571565b0361069657600160a08201350361066c5780610648602061061193016105b7565b90610655604082016105b7565b6080610663606084016105b7565b92013592610882565b60046040517fefcc00b1000000000000000000000000000000000000000000000000000000008152fd5b60036106a1826105aa565b6106aa81610571565b036106e857806106bf602061061193016105b7565b6106cb604083016105b7565b6106d7606084016105b7565b90608060a085013594013592610990565b60046040517f7932f1fc000000000000000000000000000000000000000000000000000000008152fd5b9092604051926000947f23b872dd00000000000000000000000000000000000000000000000000000000865280600452816024528260445260208660648180885af1803d15601f3d1160018a51141617163d151581161561077c575b505050505050604052606052565b80863b15151661076e579087959691156107bc57602486887f5f15d672000000000000000000000000000000000000000000000000000000008252600452fd5b156107f657506084947f98891923000000000000000000000000000000000000000000000000000000008552600452602452604452606452fd5b3d610835575b5060a4947ff486bc8700000000000000000000000000000000000000000000000000000000855260045260245260445281606452608452fd5b601f3d0160051c9060051c908060030291808211610869575b505060205a91011061086057856107fc565b833d81803e3d90fd5b8080600392028380020360091c9203020101868061084e565b9092813b1561096257604051926000947f23b872dd000000000000000000000000000000000000000000000000000000008652806004528160245282604452858060648180885af1156108db5750505050604052606052565b8593943d61091e575b5060a4947ff486bc870000000000000000000000000000000000000000000000000000000085526004526024526044526064526001608452fd5b601f3d0160051c9060051c908060030291808211610949575b505060205a91011061086057856108e4565b8080600392028380020360091c92030201018680610937565b507f5f15d6720000000000000000000000000000000000000000000000000000000060005260045260246000fd5b929093833b15610a9d57604051936080519160a0519360c051956000987ff242432a000000000000000000000000000000000000000000000000000000008a528060045281602452826044528360645260a06084528960a452898060c48180895af115610a0d57505050505060805260a05260c052604052606052565b89949550883d610a50575b5060a4957ff486bc87000000000000000000000000000000000000000000000000000000008652600452602452604452606452608452fd5b601f3d0160051c9060051c908060030291808211610a84575b505060205a910110610a7b5786610a18565b843d81803e3d90fd5b8080600392028380020360091c92030201018780610a69565b837f5f15d6720000000000000000000000000000000000000000000000000000000060005260045260246000fd5b90816020907f2eb2c2d600000000000000000000000000000000000000000000000000000000825260005b838110610b095750505050506080604052565b8435820194853590813b156109625760a09182880192833560059181831b948b60c08097608094818301868501351490606085013514169201013584141615610c165789019a890160243760061b9360e0850160a452610104850194600086526040019060c437600080858982865af115610b8a5750505050600101610af6565b869394503d610bcb575b507fafc445e20000000000000000000000000000000000000000000000000000000060005260045260645260849081510190526000fd5b84601f3d01821c911c90600381810292808311610bff575b505050835a910110610bf55784610b94565b3d6000803e3d6000fd5b8080028380020360091c9203020101858080610be3565b7feba2084c0000000000000000000000000000000000000000000000000000000060005260046000fdfea2646970667358221220c5c8d054d9d5df7c3530eab1c32506aad1fcb6772c1457f0da5443ad9e91b4a364736f6c634300080e003300582002ae537d192adf925b8db145bc33d365b00eefccb8f9db0862c1a10279c98755410100582002df8995cefc628e400e6ba8d36e6a7b4a543e2012655d8f48a3f401d187fee841010219028001410805581d02d6c0eccb3770dfa2bc20c3b100f0dee5532a92faea02fec37960e21f0701190c7602192c2005581e03f7cb0a43681faeedd73e90a98b10683cac28f30d5a16b7af8b775fd4900401033ee7509dacbbe57c5fa4140babdeeba296040a92de00892ad29389bbfae8e82505581e03a51a7cc403726b26201fbecf520c2710115865faf80d3de3b027619e4004020316d8727ed5f3ddb30a3de2c3d9a39e2cabfae3f0f81dd6af6a9517aa212cb2a20219e4c80352af5f21869964014291e318523454be63bfcacf866f85d0598de2fb0f24f9ac03b8988c9e1d429cdef43b89a174ce990e6f62453f089db861b01deb6d6bd0e75b037587cc086b8ad8b88d11c8e3d6200a29cba59532c151399f1762af82cb1d4200038166550cb4dbc0bcef7fcc76107216e6c643118713e20de3873c8468ccc27027038855cb4783802485644fa69a73d08f65990c5a34664bcf16f02f59b4e23adaab0333f3299fe32e332286726021762497ea87fb785c79f18ec9eca87eb8c6ae6d6003e35701bcb79ae85f755ef53fe9bc73cdc3ba7c7ef32d7a26ca53ba6943afb65603473ea87582f3a0c35ff7915bd4dab98e0ced6f4e72067fedb88418273ae97635039ad1ae5564a47b21c7838eec74af37be06a542c95a6c59b7607430f701b5029403ea098f8b535b5e7bab306f8a7cbb643445c8c5b94d19a8b75dd08f310ad19f6c03c97354ecf6f87f2ee0900f92833d0b5e34c14358363f82125d1cbb8a0f36cb9e03f5c5e8fdf85d76b194d98202932a3c408e79a1ff9493020f5b0f56cac8e83c8d03f75675df9bbccd031d7c96741e94974d0c4c4b3686f75fa9194dace11aa9505c0219ffff038ace2b5332cec9db37b674aacdfa727f748e552ae609fb167afce6fcf947e57e03762b189ed98ffa8a7db427967d7ad0e5b45832c1c624f928e5712174674a81c403c9443bccf008efc3d51eeef76f3897e2804e6e8cc436b608d5e2536c6771abc203e800063901a1e12d34beef49361f6a8cf6498cbf3e46f8e8fefebfff179d9d2203a78926421a82de1a4fde105c79a974b7d2c9ef7de901df834d3965a7fe6d335f036b8045fa3053c6ab4d2a49ca8e1da80ead9ea626c84f70785f74b0fdbd857dfb0219ffff03997826122341ccf4c1e74ac94091e80984bd1d20559b1f26964c9e85382aa89d0362442ac3b90b9bd357b98a988a1e076219c7333db0d470b734adbee6d333f93603540e18e7d071e9e693bf546396218093be2e6323fb4455c085f2ba09c66c81ed0359ec5216005edb6a209a9cd596b88f8d1c30c524da851763f2424c0cbc9620e90360e3c422b0aa24c0894f55f20f7c1a38fab726d472a3a9bdcb18d4f0b151e26f030a63c8fb40a69283b4a9c6c33e8555003b5639d7108bd25ce73717532f00913203796a5165d948303aac192af2cad8088e65dc6fe5409405b5bce989f7494a0c5103fabb997ceee222006ccbcad4a54f4c668afdb0969f8424c6f22391adc756329c03dfd729d4de48c6b8cbd2b498f3d4612ac381daa3e312748cfbd53f5c17d2c98003d154d62e04d9e92c7e105da9bfce66c49eb2a3a6e0083a07c95d6d5fba388c1e032a85f41454417254defee3e3d506b9dfd6208e9011f87aeb678d111c15d695d203dac6209826f8f11b3b61043c1ba730df8cf4637a06b221b45edcbfb385eac0a603ceb969899602d4c33ab39a127b3096c9748176c00b8150e43db55fadcc3278a8039e7affe6a175e041117e69140d9e73a4640c4941496ee43e09ee3d54f9e4b97c03d2f77dd8db191f765596c86a2ad3ed153896930ff8b419dd8944189bc1c2ae4b03c088e39dd4362a7efe2dec7a3ed441f2ce611352799c6770f55c6df64848c730030aebafdcf78fa21902285289401dfcba5476ffb5cbf0890b4a4ad8594ac5dd6b03c1c1f3ec6943c61cb9f723f3169c69a1b2355159057b0088147ee7697d7f92bb03a86b3946c0fc77aad6474f764e6ea903c361dfd161454139b320ca6e11824ee20371497a309d5618b735f89da346f02e33393fcd8058202edb1d2e9757b27acb9703d2a137b0556f4e963ddd40e20bd484a0b7be1e869a0341f7deb5166f1faa9ea1034ca71cbde04ae9563048a6e52c1d5c324e35948d5423c60d2a56a664d923410e033e546a514d8925baf5aa3d607e7dfae8e2c30ca485d56914031cd9a379c27c940346080b9a9a3b8cf5f810ed5806cee419b8b409d4a7e05fcb85295a50f2c713d003159b8d55f5d047afaf961ea93bcd420ea0ee0964c6d25707e5210d8a1a05d73c03c6ffa48039720a47ec32e55c23b69f7fc675b0271c8a9120f1bb8985a9ebabf305581e039746aa0b9fdca4bfe486ca84655d143db650f48d1d3316bb8013c3d8200c07471f3597633492b205581d024d4254e4dee3d6ca2b3d357cb05e7f6b9d8be5e6a9398f05d119ab67084801aa535d3d0c000005581d0236d4c6c1a46ef2c8b74552d3f25d42fce72949246803828505c050c204030219081003feeba3bf5c7baee9570a130b0a9513f6c5d2b3bd8156f31efae9a5f79f25c68005581e0360e745a4947d307f780f8bcf92fcccaf8ebb1ef43534da2e1d2e07c510040105581e0339c15d4f555ffc65534f17213f642f475d784fc2eca9924e5d1a9521c00c014704c032424bbc0005581e03f1868178cf9e22bd0130b0628aa9720f47687c15a0bb5a91bc69c072400c0347017fa9f958af1005581e03fe0aba64b7ee5aaa97c77c3fafcecc4fb0bae5534159c78459195edb900c18334768b604b0350d5a05581e0366d9f45d0c24ed335c0e5af17b27529447e844b7a4bd451dffebd523f0040105581e03ae26376ffb3b8211fb3008d8dd08c6b835e805e54671f05d93c807792004010317728840336b9ba0bed785f0779b25e25245dc74eda6ff3f27ca68ecf06c18f90219ef1a032c3e1991f22ad7c820353a350e5c2292f37d16bc9dac365b7bbca32b9853725e03e0d91cbcda598f929b03c7ba9b90b7d9177ddea518027d795e528d521e8d10190219ffff03bd6741c0cbd71f79ff1054637e7c2bcd4435fe7a48c678ded739267387ffab5603eaff90d7631c725afbece317cf374cdbd733ecc8cf9ae9fd679faa677bd69afa037bc06f3ea8d5c72a467db1d9cf5feb1c528ebdcd061f14efe66c00d69f0ac96603d4b6f0b3ee35f5760debd60c78f49873338b7593415f18c26e5657753838120a0364eb96903f034a54d21a0c81b2704f73aae582200764b92cc02e91803d2095450386130b7f3e123e2928e20901e280fd7d2ca6b4663288644c7f6c7a45cd5e021c03de8f21c83cb44877e39458083f3a31c0880364898806a455d0b7300523d11ac20310c798c197adf9b2330f144afa791a0249435868e1678c051dec3c11c088312003e60beb994843daccb25552add5f2683744497f6b7042803e9e867a4ea8b6fdce03d6e31964e66b220fe847e72f8807af96d15aeb9c7690847b0239b895f18c8bdc034c4239a552f2fd06d8f44bb840e71f8c2f3a34ccdd5ac2f2879b12e45b962ea3036f60a5673ac2e52014b2a9c7fcdcf79cca29f35212c42601b3254319a6468ef20219ffff03aef71633a4aa9336f3e17f6caed4af16e66c53ab70433956f8f30a83114284da0219ffff03b28d2a29df6b385aee61d645e189772aaccf89eb6f886e5f281038fdc64db48703278a9600407cdf5a18969972f3532e0f39cae472768a4906a27d170bcde50d0903c203add131850011782a38a5a668df3a782a0bd9cc2f6338412674b48b2b490e030a21a9f55bcbedbb9a4cc5c1fd0ae8c5172f18b38da24d44c747f0c74435971103c389e4765845aa3b8fd22d3b6f0e7e823bb1249d65bde888bcb94132d2b9ec4c030eed3748558a6cc42544f2ffe9eddd7c856d781677ddb60238bcfc88196e1a4103efa85e13631fc745a2c1d66176259c4bbb618da1e05085968a645a8b7162c5a60219ffff03b5d72b45b676f8699f092c1a5eec4701c5486914b9dceb869181a8ad7d9b8e4d031d6a088aa28727e875e4ee4a1eb533eed7cf932cf522e84ead9343788386078f0352997b8aecbdb4c1841f7a3e18ead2bec2bdf6859acbbbca3e745d61f9ba9512037d789a33898596fb0a428d4b44090ebaca8238fd3ce2563d3fe4475cdf5ecdf303e6f1835a5b6f3f1f5fd49c8755da69922328beb206f7439937da8560cd5fe2590378cf76f9caa6f13978f934d17b714a36ac6f9547110b20812953811d8a65a399030a18204f75cd4af930a3823d7110ee77b69199212ff28ab831e1c847ad0fc1ba030e2c9a01c9a6bff63fe9f63950f000d01bf40906f45e0b7db1075e2605667eb4033877364429b7a7cf89f3cbd6000b1dbe04dc9b75bc63b7268a5a1d7c2ea46727035ac48cb2269b757e11fd71b140699b69c18f99083111f3bd60fcde32b567cd9d03dbbd9230580f05cfb6ccc43dfb30682d46e0ddc9802143c02f9bbaba3deaff4b03892de5afee519769a40adcf8852d8d383b4d945e6fd252fcd284c7f58f1d49ee032fe7bff1b22fc4a5b9a2cfef2d79830cad258c2279f7408226ab4a9c7f7cb45b03306d8254047e562eb7e2cddb5817c86bade8ed7a2ee179d2bc87b25a3a7b074303b832ed80f0b16371cd63642c5e176a3537671cb63542a30633ea5f6ca4b4ba00030565cc075bba54c66f605a9e7c3c0a6f99d97b6d5552b66eab8c26ac55978464032d86daa443117d68939bfedadd136ab961c665f22b2c1688dd6e2c12c3e7f46c0384577ef5fd29d3ddddb3f31b6eb419f48f793f331d597adcf5c220735b561a920323526520219c6d5d5f7b012bc22d199a24588685366a6bb87b720fc1d74edcd6034df5810857c8df52adffd798cb6774bc31ed417cabf4f20a29319f46339dbfb10379e4b6478e47e21de270bbb3c7a5c5f263394d97c5643dacf5292b15db4a281903ac4bb73736d91252dcb8490643bf0db65b466af15fb405798a64a603aaedd89603f1bccc341ebbd33ece401d710f1830e870f273717ddf91b28cc8255e8207691b036269eb49fd4f7f8bf168e6dba7efeb1f6f70f863cefaa78d67ec32fab24e0ec403c90af19e60284217fef8bebbee6d0539b2635fc41409b67712f79c9ac4db2cd303787031d33392c585b50f02538c070e2f606618de1fab76fa097b397c3bfa516903ceaf87fc3c90020bb2067488ade72e1547736f2d4f66775295b2e5243daa34d60332245853a28c283d1ea0a1c5068c29ed463ae78ce4984894b8320b9dc20e7ce60391172668d51140f0c100663b5b20d5d1757e69954d9277a6fb051a6a4df44ece0367ec978a7da4f9eff17324d02631e4794b8a45d1967161127d7d2f8122fb79dd0337d96a1c06c4e41ae3c96ef2fe453c9195f0819a18993e9f81a4d95b32b14fca039389473aa0b12a39f9ef76e1d38a4c495c299b2d06ac8c67a10f095f161c130c0372e6c298d80c34afebb8a17d17da79e4264dee5bb2db1b3592e0e20244ccdbe803455beeed9fd82354cfcf38b029b809e31b433f14ee2146a4a5fe77ef6ed3b939039bdb312b0cc1072419d0a1f34c7535fbc34cabe6d558368d1e1c84ee032ab6e703df420f0a36943b078ae9b2154d6096247d85dfe469559eaac157d8d02badeab204592da0608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610def565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610e28565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e7d565b604080519115158252519081900360200190f35b61036a610e94565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610eb0565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610eb6565b61039b610f95565b610400610fb9565b6040805160ff9092168252519081900360200190f35b61039b610fbe565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610fc4565b61039b61109d565b61039b6110a3565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166110a9565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611463565b61039b611475565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661147b565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661148d565b6040805192835260208301919091528051918290030190f35b61026161192a565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611963565b61039b611970565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611976565b61036a611b6c565b61036a611b88565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611ba4565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611e70565b610257611e8d565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f43726f44656669537761703a204c4f434b454400000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180612cc06027913960400191505060405180910390fd5b600080610767610e28565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612d1f6023913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43726f44656669537761703a20494e56414c49445f544f000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d612073565b89156108e1576108e1818a8c612073565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff16636c813d29338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612c706026913960400191505060405180910390fd5b600554604080517fe380f72800000000000000000000000000000000000000000000000000000000815290516127109260009273ffffffffffffffffffffffffffffffffffffffff9091169163e380f72891600480820192602092909190829003018186803b158015610c4757600080fd5b505afa158015610c5b573d6000803e3d6000fd5b505050506040513d6020811015610c7157600080fd5b505190506000610ca6610c8a868463ffffffff61228016565b610c9a898663ffffffff61228016565b9063ffffffff61230616565b90506000610ccd610cbd868563ffffffff61228016565b610c9a898763ffffffff61228016565b9050610d056002850a610cf96dffffffffffffffffffffffffffff8d8116908d1663ffffffff61228016565b9063ffffffff61228016565b610d15838363ffffffff61228016565b1015610d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180612ce76038913960400191505060405180910390fd5b50505050610d7c84848888612378565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600d81526020017f43524f204465666920537761700000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610e8a338484612634565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610f805773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610f4e908363ffffffff61230616565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610f8b8484846126a3565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff16331461104a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43726f44656669537761703a20464f5242494444454e00000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461111c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f43726f44656669537761703a204c4f434b454400000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061112c610e28565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b1580156111a657600080fd5b505afa1580156111ba573d6000803e3d6000fd5b505050506040513d60208110156111d057600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561124957600080fd5b505afa15801561125d573d6000803e3d6000fd5b505050506040513d602081101561127357600080fd5b505190506000611299836dffffffffffffffffffffffffffff871663ffffffff61230616565b905060006112bd836dffffffffffffffffffffffffffff871663ffffffff61230616565b905060006112cb8787612784565b60005490915080611308576112f46103e8610c9a6112ef878763ffffffff61228016565b6129b9565b985061130360006103e8612a0b565b611365565b6113626dffffffffffffffffffffffffffff891661132c868463ffffffff61228016565b8161133357fe5b046dffffffffffffffffffffffffffff8916611355868563ffffffff61228016565b8161135c57fe5b04612abb565b98505b600089116113be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612d42602a913960400191505060405180910390fd5b6113c88a8a612a0b565b6113d486868a8a612378565b811561141657600854611412906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff61228016565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461150157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f43726f44656669537761703a204c4f434b454400000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611511610e28565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561159357600080fd5b505afa1580156115a7573d6000803e3d6000fd5b505050506040513d60208110156115bd57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561163157600080fd5b505afa158015611645573d6000803e3d6000fd5b505050506040513d602081101561165b57600080fd5b50513060009081526001602052604081205491925061167a8888612784565b60005490915080611691848763ffffffff61228016565b8161169857fe5b049a50806116ac848663ffffffff61228016565b816116b357fe5b04995060008b1180156116c6575060008a115b61171b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612c96602a913960400191505060405180910390fd5b6117253084612ad3565b611730878d8d612073565b61173b868d8c612073565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b1580156117a757600080fd5b505afa1580156117bb573d6000803e3d6000fd5b505050506040513d60208110156117d157600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b15801561184357600080fd5b505afa158015611857573d6000803e3d6000fd5b505050506040513d602081101561186d57600080fd5b5051935061187d85858b8b612378565b81156118bf576008546118bb906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff61228016565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600881526020017f43524f2d5357415000000000000000000000000000000000000000000000000081525081565b6000610e8a3384846126a3565b6103e881565b600c546001146119e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f43726f44656669537761703a204c4f434b454400000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611ac39285928792611abe926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b158015611a8657600080fd5b505afa158015611a9a573d6000803e3d6000fd5b505050506040513d6020811015611ab057600080fd5b50519063ffffffff61230616565b612073565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611b629284928792611abe926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b158015611a8657600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611c1357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f43726f44656669537761703a2045585049524544000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611d74573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611def57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611e5a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f43726f44656669537761703a20494e56414c49445f5349474e41545552450000604482015290519081900360640190fd5b611e65898989612634565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611efe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f43726f44656669537761703a204c4f434b454400000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905161206c9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611f7557600080fd5b505afa158015611f89573d6000803e3d6000fd5b505050506040513d6020811015611f9f57600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561201257600080fd5b505afa158015612026573d6000803e3d6000fd5b505050506040513d602081101561203c57600080fd5b50516008546dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612378565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b6020831061217957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161213c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146121db576040519150601f19603f3d011682016040523d82523d6000602084013e6121e0565b606091505b509150915081801561220e57508051158061220e575080806020019051602081101561220b57600080fd5b50515b61227957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f43726f44656669537761703a205452414e534645525f4641494c454400000000604482015290519081900360640190fd5b5050505050565b600081158061229b5750508082028282828161229857fe5b04145b610e8e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610e8e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff84118015906123a457506dffffffffffffffffffffffffffff8311155b61240f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f43726f44656669537761703a204f564552464c4f570000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c01000000000000000000000000000000000000000000000000000000009004811682039081161580159061245f57506dffffffffffffffffffffffffffff841615155b801561247a57506dffffffffffffffffffffffffffff831615155b1561252a578063ffffffff166124bd8561249386612b98565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612bbc16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff81166124fd8461249387612b98565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546126d9908263ffffffff61230616565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461271b908263ffffffff612bfd16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156127ef57600080fd5b505afa158015612803573d6000803e3d6000fd5b505050506040513d602081101561281957600080fd5b5051600554604080517fbb44dff3000000000000000000000000000000000000000000000000000000008152905192935060009273ffffffffffffffffffffffffffffffffffffffff9092169163bb44dff391600480820192602092909190829003018186803b15801561288c57600080fd5b505afa1580156128a0573d6000803e3d6000fd5b505050506040513d60208110156128b657600080fd5b5051905073ffffffffffffffffffffffffffffffffffffffff8216158015906128df5750600081115b600b5490935083156129a457801561299f5760006129196112ef6dffffffffffffffffffffffffffff89811690891663ffffffff61228016565b90506000612926836129b9565b90508082111561299c576000612954612945848463ffffffff61230616565b6000549063ffffffff61228016565b905060006129788361296c868963ffffffff61228016565b9063ffffffff612bfd16565b9050600081838161298557fe5b0490508015612998576129988882612a0b565b5050505b50505b6129b0565b80156129b0576000600b555b50505092915050565b600060038211156129fc575080600160028204015b818110156129f6578091506002818285816129e557fe5b0401816129ee57fe5b0490506129ce565b50612a06565b8115612a06575060015b919050565b600054612a1e908263ffffffff612bfd16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612a56908263ffffffff612bfd16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612aca5781612acc565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612b09908263ffffffff61230616565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612b43908263ffffffff61230616565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612bf557fe5b049392505050565b80820182811015610e8e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe43726f44656669537761703a20494e53554646494349454e545f494e5055545f414d4f554e5443726f44656669537761703a20494e53554646494349454e545f4c49515549444954595f4255524e454443726f44656669537761703a20494e53554646494349454e545f4f55545055545f414d4f554e5443726f44656669537761703a20436f6e7374616e742070726f6475637420666f726d756c6120636f6e646974696f6e206e6f74206d65742143726f44656669537761703a20494e53554646494349454e545f4c495155494449545943726f44656669537761703a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582072febb9060e99697097d30ad78467c0deb02dffa096d3e1e0b5f205a8bec5dfa64736f6c6343000510003200582002f97f59bedd72ba69acc56ce7f1c395ba024592500ce86a2171466aa7aa05fb5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff037e0f4de20f6eb55f2689b0fb922a28f34ebcd428acd2d866fb0913d4de747cad0058200380b491f9fd0c094d9e56d91e0b5d67c7b3a8150e4489ab7fc570c62a2f33505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00549deb29c9a4c7a88a3c0257393b7f3335338d9a9d021842005820025a7711c4732d36ac9d217582797141761763ea01fb0f32349e1169e7534ee45820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200298348ab69d2fae282cdd19adcab46c88fc99123b6a14ba260979d341c850fd5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002f4dda7bf1e75fb94d0ecd8915d025713aa715569b423f6322912258c5d62cd5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002c5229947710591b8aa388d0558021c5bb4e649d94ba950b7410b88d18117ab5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03242f3d9700345c9dcca59e697c86872db8de50b0cff5dc768bc891147080f65303bee6531017d6342bf65b7224ee961ea2ad18f8a2c8bed61c9510eeb4371b360a03808dd3b869045896518cfbdb08f2b77250fdd5f7bea74d6eaa7a11230aef0c4b033fe1350f69012aa283bb5083df809d704d36815165b74955500731fdc4d5040900582002049cfab5d0de9c191ab954dc47e147b37be7b45444dbcf9efe85d276ca091a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0322cd500fef87f8af544004d18bf1988aa5b2b08d60fcc5e725e162cb81d2ab87038012eaaea2d49e188b85c35881da387c86bfd470ee359f2704bc07714153296002197ffe03f842a44f6271194c800a46378e7e37b32c8ac4fc213cfb9ded3e54f199415a0d03cebc1f27238e4c2aeeebe7ddbb82d69444993d2f46ae5c2a0fb6239e97b416590373f1230235263aebd91029b83912246260167172e275327b49454ea20a11aeed038c5e45a0de3060b31da8f659e6d2bb89d871bd05c93098ac663758aa16387175030d79e385b4c405d934e300a0269c5336ed5ea76c3609c772608ef2dc55bedf3e005820020fba0dcde7999c6a16b09a6aaa7fec42519511fc9126a6ab9dd791331d53785820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200295bbe3633daefabc0a297db2fb3e1c4af651575a06e23133f09802534af71a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03f846287b8d1478c817e0365b1d6b114bb47210380343c658d5c8715252d0a21203adf87f26f0dbc4551043e9507d92a518ae4222640cd939b7b2408ba5b95c388b00582002faa6a5dd20aab3b1e99f78b788ee8cda7db38a4f2b007055a4713456fc72eb5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03dc3fa4a601b317d3cd413ea0662d87aee4e16fd77caefbc34e572676fc01628f00582002f19f6e88afd03ae18c03beac70176da26233b6e152ed072bd9b2a341619d035820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820022812c233c1dd651b21509c1126b5b69179bf5eddbe19af6d6112fc896a984f5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820029e7365d6906e89ed6885e0e3d86aeb4a8a746a09c05c94bbdcea0a2b87b4035820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0334edbd339cabfad99d74239b50a1354681422f7d8c1dedd261412793be2e2e90034d8ce4e4b962a9b7849fc96a37acdb25fe732cdfe864a04de2612b0fb46b833300582002e1f4874ff881ec5b9dafe6976e97c8844dbbb1ee75263c1ff806282efc2c425820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af04e388a87dbaa4d1fe407d3c9e43d0000582003548c820f55c5765fc090cb9be125cd014acd5454202b6f1dd1374a940fab305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021904020339c1f4e6e4348a8c5ba1e2bb15a9b814bd87197a43aa3f9e6379a8911d2c9abc0219fbfd03e17c91157aa9597bc52c7b077dfded9b02afa65a411f6023cb3ae2ac26cd5b0403e5e12f59a9feccf25a4d163a0431b2902c5dfb6cd92b1443dd62e81911455a330385d6c031504aac12315a34ba8eb25ccac6495d254ffc03192133045ff8ad97960301abfd2cb4d1dc098ad70d339fc82f5d0c8d8bf2fca0ce98ac64633b72e3571c00582002891bd5cc8c452a28227a6c372af7aebd9c3e61edd13d500898ee5c944b04615820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002a43accdeaf824690e1fc8e9280797832661da05c7384ac6b724d26c7d827b15820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820020ea52bc3417535d426f3923725c5839e2984fec66f4c91fdb6c17a5f7f92535820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0310f3c88786849d8eab946172033bf825884969ecf5b4a9d7bc7f7f451aefba930308795c57ea9e9c0f2a547094e99350a30ec420ec727bf27f78326ec578029a80005820026cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68854dac17f958d2ee523a2206206994597c13d831ec703051dc6c36ac717377dfad2ce81fa0da31f7ebfb03fb4dafc0fc46ec9c1a8754f0387e01e8f08fdf94872720512c29158cf37de32bb3e4ecc559d9b0f8d0452cce30333e82b06e54eabd08245b549400f1cc7badc16bb2b10722d9a378230f790b1f603088d69bcb0924bb6809c1ecc29c123fce363bb3fb925dc679976316216972b0603fcfe1c3a20f9868705e293a505d870c3902b51589e28f0c2aa903e638ffb63a9005820026d5538e7494f5c4aa419ba4c1f40d094794cb4a729edea11122f7a14f46a065820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03ca1deaaa3f4a41d0af1afc7fd11cd7611d7ad3dd9bb4e26ae0c9de22037fe14403bc338b42b5ebfe3f395354b3b9b05648de5f8bce9cb3a317d9f6023ad5de71aa02197fff038caac95cf54a75d5bbc5ff585773b265e52bba42cf87830ded5edda3cbbd2bda005820024319cc30c2ee9337333850b4047da2d471a9d909aaeb63f754655abd95e7fc5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff036ccc25db422dc9d7fdc1ac59d8960d9add799803993fb49b28ab71046ecf85e500582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b582035d0d0775f752229665c70afeb1ffadc3ecfd47b89dbc44e74c57220b12f47c70332c526f6363ae28a12aa8cc5f5dcece1d997df99c07670d10cedc1c68aaf782f0058200286e8cc05c7b32bcce5b3a1ea336863de7f394773591465ed514206ba8787445820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8560102e780c1384e7abba2bcd68a7f624475b5c2083b79005820023ece8834f998801762daf076c81cfb7cd9af78684efb75d4d6131225e225655820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820027cc70c5ece5679b996d7eca15a78ec0ba87271ca2ddf535d9a44ad5c3ff5415820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002d6f65ab6c7ef13e130660b3436cd33bd471a5dcc010545261f0054d7f511fd4607e548a013ee00582002660099d6161d28b958f62e0781d1d3f977396bb61b3510c53d6f165eaf8a355820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03f8964b4a49d5f346f31e3a6f6c4a835db312af282af7df3679cd5725d28fc10801410e03399480d9d4aae763a1cdda3da173993b334cbe90e63dfb61ac7bf1f21629e3f503fecb775b2a5345bb49da17224d6c3dbaa6faac508dd6967fb2ecbd4e6bb893ff02195fef03fd61ea6d292a5b652e65741a11cecb4741fcdb44e048ffb5eeff071c67e6237800582002fd7ad30e3b985077e07e4978c26ee39c0216cb9ead451119656d61500cda895820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff030b65699ad9e50d524314699d58f30e6825941a82228613803f1cea3990da3f5a00582002c30245f1dd8b4bb539ba1b792f1f30b86f77b7180a3ee037b5a8a7212d5c575820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002cdb09329f527db52e224d7efd9c264c2a4c901976448069a8ef34b5a2e897a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03646fea3b184fc8f6905a250d50e7c1322bd2df15270c8eae18441166c431e6a3038950b49a3ab9a7e3010c6dfd8f1a82e13ba8a6da80516fb2b11d212a9b9ca34900582002cba982d5db42edf3f0645ec37d0f61a9156f4511980571d040ccae1b74f4b045ae4235449003be88d2190da22ed9b7d369bed8bbcb9568ae2bbb86e30e18044f92002d1b6aad00582002b99b25eb78cadd59cc25a6168d9a59d595099dfe4bb3f04f03211300e39a2e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002213ddb4e6624d27ff06be73c72b3c82403fe40701a247f4a2c9f286980308e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03ff6e7b7bd314a6fb48351a3475fc5942a2ea97bd0b2957e7f914fa51f8fd296300582003966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c704101005820036037603f4bdbaa82bad75e86e122e822e11c2eba50b6c0d65a707d811ba0205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021940400219bfed03db3b537f5470884a9848e0ff6f8903f32120b801c3225a9e39b13479bd51f48303db35aee3920d81e17a0acf741b7d16f88b3a0fd74893212fbdcee027a22850e703e56f06b8d479729d40c186528f655ecd83e01aeb42d17b66a1e5bbfc5711acce01410f0058200262968c045d287debe4404ecce48f55ae2bddc2604fcf7dfb8884e44935a4a75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820031b4b2ea39914931ea44d0084dbadfd387937e1c3177f3aadaab0c591bd43e05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820037a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30582065cf5d1b0000000000000000001cd8952adc0000000000025e03441fbbdbd66a02198020034385f5ad33e753f4f948bcb0db610878728fea42bc4388fa15ea20ec0c0568a5039daf01cad0b8d9e9735ef5b1f4c84084fee25d279bd5b68197a84a9fb08b464600582003202fa6f86fd2a53f2a12130ac19f4f887bda3fd342afd41556c0ad6fee19105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820032222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc202182200582002db2d6acc418c9d39a35cea1375a6afbe563d1325fa6bb47c051ebd3151d9145820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03e3b016b81fc411954ecf9b9861f043a97f8449616b12af8f1c85334d139c0fef03c9e8e211342117aced915a3e833aeefbaacaa3efe64b166c7c2e2f85a32e66910058200233cb205e3ea44186ada570747440d113ce146d4528995cfb0922087936195c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03892a1d147169aeff90bd515c440b70c3345619d7aef1a69a0696f7fe8a8fa34502195aff0219ffff05581e03e90f243bceda2b088db77772fc065c60d7a940feb5378c5bff3c76f7700701192da005581e039fe040b1a29ae74a370b6bdcb28dd166707f5e214f10e09f94fecd6460040205581e033a1ea244b4b7a9bee5dff6f91fc4d7c2707f24407b90d70b9c7dd0cd30040403c31d4f1d20c508bbfee30676d1cfbbcf3cf7c14ed15d38de82da81e44ca0a7f003367e193a5e2953322c9cd9b514b863fa316ab9cc030bee0cd9d638632935569d03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03e2f09f27b0f3448a1f2ea35249d5d9166bbdcef7a786c0f7d6e453e15007011bffffffffffffffff05581e0349487719318ad85bfc569ce386384249c01f13e0504ee7491e0b5c8c000c03470dbac26526c0bb05581e038b851f25f98816b30e95ced35d99e9c99d0f90aea1b542f2e818514c000c024704a8e9ef99628c05581e03a38b49eaf29999140ac6f875e692926abec6cafc8dad08432c416b7f60084711c37937e0800005581e0333e89e4c27616cb3b3b0540db1ec825bc2cd0cec81fd7e937aed406880040205581e03364553976111e46ae467edb8e4a7af1c9400d5d2905e4f69e74b576930040302194fb703c7821eb8685d26418765b924962d1ea0257abbb103435b38874eb580e1ef32d603248f3c32598d5348962f4672465d14d02e87b211f80355f2cb1e5e2e4d4c33320219ffff0375439d0f974a42f536b3c257aa9ff759036f649fa334be6a1daf7a2c8b5c12b803d5c589a75bcafcd4a09646d3be44ee7b8651f768695fa85fd19ffd37dfea18750374f70cca3e7d539e391061e4979eddf1c491008cbf89dc8771e039429a24b82903a93b3c7df9e34d17e3811db58420d6158382329ec0bfeaae5d7ae21cb4f7994a03485303ec1619de1cf8b0f41905f6ee351e27e07dca755a823711909714cbaff403878f72c7cbbd4fa36c35c2c60f5346af2969c1bfb743d6b495448cc5057e131203a999d481459f61506e61c6d2e42e1e3866675ec7054a7a0336ccc1b5880b3f3b03ba0dd9fa52037f0b7057fd714145fc4fec5060981158085136988759ad5a14830219ffff03961c732bbd1cd8c716bbcc9d8db70c3fde592e394bb8691da79607e4b4d1e3bc03b2919274c9621c14e9e4e75d77858a54ecca0441de9083f0548826c61d31016e035e6febca38ef2756ea78038248f105b1ffbce58c3aa15c6f59ac0d6a729257d803fcbaacdb87c58d38a3e6f6b6754165095dc8dd5eed5e0d8d5b8b5cbf2c119cc403739635782f5e0676f89ec3b5cc1b8f950d05771bd68cb80f312ace53bcb8782203f16c05ca86f7135ab5180df5eb964c57ed10be3a76e0fa8d0f0fa3b3a9f1ac0203cda56fa10d868bc08304a3f0ef05be1b1d064b5157ce60ea1a56f17da0c2c06e0219ffff03c8ad328b61020b62b372a401df30af132d850c3b5c99e4ef6f2cc491e04c868403f8859718e6ea0fd0bbf0edd5ff3bbdab3b5c7603962825860b5ce9329206baa503072de42372a2b7c5d8cafc39f0ee7003bc2da1a54f1d24512eebd7aa3d368b610368a79c829c8a84f59f3ac3b1443b953efcac02d10288bfa86c0c8afd9a98d3e0039718d096b2972c856f9848de42399793f988f4df40507297a7f8e0ffaa1b4e26036c960fba7e20f1675564d4e2bc21cf7adae61169ab36c273d182a2de949503df033bedd9f3d5056b53d6800160cdae150bb5b32c34b9796ce3d950139d639c5d81032ead6f518f1ace2407825240f45615036386fb45a58029896b19b33ce1d5e2ac0340c0fdb37f0827f5634f990ed8ff9e15de9d75f5a204db7bc62ea6edf2710a1c039537e2be416e868e6e09b9faf7347ead7470831f3134f23dfe01d9221289fcad03e79c4f7759ec14ae41e45dcca74800a3ae696871d1a97e45140c9c4b89bec7560382320e542b3e629d353df4ff2c5ac6c22677e729d6115a37d6a005b2391ffed603ced82f3a5ea3b7abdf1455142624c69ae4fe87e5ed609dacaed2b9533ed5766703023c023fd0a234442e853563da14cdb2653e6dd71b3508607199d6ccf4845b3e038e972f6280ef49be2e46cb794029315b3032d68f4b2f26fc8d29fe284ccb837e036e7333a8a2e28b85d5a7c016d5dd0e06adf028b4d9c5948e86e77b5ea4acafea030075530fdafbfab0a1389ec4b5192128228d1b626a93d253a8792ef75389598e05581e03dd36966dd1c2f6c1a01d6c34bb1b3df86c0afd1163498656ea4ed74de0040304590e58608060405234801561001057600080fd5b50600436106101585760003560e01c8063788649ea116100c3578063dd62ed3e1161007c578063dd62ed3e146102c3578063e816d97f146102fc578063f26c159f14610328578063f2fde38b1461033b578063f9f92be41461034e578063fe575a871461036157600080fd5b8063788649ea1461025157806379cc6790146102645780638456cb59146102775780638da5cb5b1461027f57806395d89b41146102a8578063a9059cbb146102b057600080fd5b806340c10f191161011557806340c10f19146101dc57806342966c68146101ef5780635c975abb1461020257806370a082311461020d578063715018a61461023657806375e3661e1461023e57600080fd5b806306fdde031461015d578063095ea7b31461017b57806318160ddd1461019e57806323b872dd146101b0578063313ce567146101c35780633f4ba83a146101d2575b600080fd5b61016561038d565b6040516101729190610c90565b60405180910390f35b61018e610189366004610cfa565b61041f565b6040519015158152602001610172565b6002545b604051908152602001610172565b61018e6101be366004610d24565b610439565b60405160128152602001610172565b6101da610459565b005b6101da6101ea366004610cfa565b61046b565b6101da6101fd366004610d60565b610481565b60055460ff1661018e565b6101a261021b366004610d79565b6001600160a01b031660009081526020819052604090205490565b6101da610499565b6101da61024c366004610d79565b6104ab565b6101da61025f366004610d79565b6104d4565b6101da610272366004610cfa565b6104fd565b6101da61051b565b60055461010090046001600160a01b03166040516001600160a01b039091168152602001610172565b61016561052b565b61018e6102be366004610cfa565b61053a565b6101a26102d1366004610d94565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61018e61030a366004610d79565b6001600160a01b031660009081526006602052604090205460ff1690565b6101da610336366004610d79565b610558565b6101da610349366004610d79565b610584565b6101da61035c366004610d79565b6105c4565b61018e61036f366004610d79565b6001600160a01b031660009081526007602052604090205460ff1690565b60606003805461039c90610dc7565b80601f01602080910402602001604051908101604052809291908181526020018280546103c890610dc7565b80156104155780601f106103ea57610100808354040283529160200191610415565b820191906000526020600020905b8154815290600101906020018083116103f857829003601f168201915b5050505050905090565b60003361042d8185856105f0565b60019150505b92915050565b6000610446848484610602565b610451848484610780565b949350505050565b6104616107a4565b6104696107d7565b565b6104736107a4565b61047d8282610829565b5050565b61048d33600083610602565b6104968161085f565b50565b6104a16107a4565b6104696000610869565b6104b36107a4565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6104dc6107a4565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6105056107a4565b61051182600083610602565b61047d82826108c3565b6105236107a4565b6104696108d8565b60606004805461039c90610dc7565b6000610547338484610602565b6105518383610915565b9392505050565b6105606107a4565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b61058c6107a4565b6001600160a01b0381166105bb57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61049681610869565b6105cc6107a4565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6105fd8383836001610923565b505050565b6001600160a01b03831660009081526006602052604090205460ff16156106855760405162461bcd60e51b815260206004820152603160248201527f45524332305061757361626c653a20746f6b656e207472616e736665722066726044820152701bdb48199c9bde995b881858d8dbdd5b9d607a1b60648201526084016105b2565b6001600160a01b03831660009081526007602052604090205460ff16156107015760405162461bcd60e51b815260206004820152602a60248201527f426c61636b6c69737465643a2073656e646572206164647265737320697320626044820152691b1858dadb1a5cdd195960b21b60648201526084016105b2565b6001600160a01b03821660009081526007602052604090205460ff16156105fd5760405162461bcd60e51b815260206004820152602d60248201527f426c61636b6c69737465643a20726563697069656e742061646472657373206960448201526c1cc8189b1858dadb1a5cdd1959609a1b60648201526084016105b2565b60003361078e8582856109f9565b610799858585610a71565b506001949350505050565b6005546001600160a01b036101009091041633146104695760405163118cdaa760e01b81523360048201526024016105b2565b6107df610ad0565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0382166108535760405163ec442f0560e01b8152600060048201526024016105b2565b61047d60008383610af3565b6104963382610afe565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6108ce8233836109f9565b61047d8282610afe565b6108e0610b34565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861080c3390565b60003361042d818585610a71565b6001600160a01b03841661094d5760405163e602df0560e01b8152600060048201526024016105b2565b6001600160a01b03831661097757604051634a1406b160e11b8152600060048201526024016105b2565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156109f357826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109ea91815260200190565b60405180910390a35b50505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146109f35781811015610a6257604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016105b2565b6109f384848484036000610923565b6001600160a01b038316610a9b57604051634b637e8f60e11b8152600060048201526024016105b2565b6001600160a01b038216610ac55760405163ec442f0560e01b8152600060048201526024016105b2565b6105fd838383610af3565b60055460ff1661046957604051638dfc202b60e01b815260040160405180910390fd5b6105fd838383610b58565b6001600160a01b038216610b2857604051634b637e8f60e11b8152600060048201526024016105b2565b61047d82600083610af3565b60055460ff16156104695760405163d93c066560e01b815260040160405180910390fd5b610b60610b34565b6105fd8383836001600160a01b038316610b91578060026000828254610b869190610e01565b90915550610c039050565b6001600160a01b03831660009081526020819052604090205481811015610be45760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016105b2565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610c1f57600280548290039055610c3e565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c8391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b81811015610cbd57858101830151858201604001528201610ca1565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610cf557600080fd5b919050565b60008060408385031215610d0d57600080fd5b610d1683610cde565b946020939093013593505050565b600080600060608486031215610d3957600080fd5b610d4284610cde565b9250610d5060208501610cde565b9150604084013590509250925092565b600060208284031215610d7257600080fd5b5035919050565b600060208284031215610d8b57600080fd5b61055182610cde565b60008060408385031215610da757600080fd5b610db083610cde565b9150610dbe60208401610cde565b90509250929050565b600181811c90821680610ddb57607f821691505b602082108103610dfb57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561043357634e487b7160e01b600052601160045260246000fdfea2646970667358221220df317bebc68c4cfd4ba211faabd7b405b51f3a29e4230c294ab36d7cd040428964736f6c6343000814003303e8c97f168da3f5e440c9841d2e78f4c10137862e8fa74b7439f169023fe680a20373bfe54107ca8c08379e00d0c342beb18e162756fef479087de16e97f407553c0377146711779aafc2de51b0f1d908a9fd06363df9e31ab2a34cd865aeda525dcb005820036782ea7c96d9d66e478053eb76cab807174deb66cc608defd80813a58ada904a10cdf9e33cdcd2e90c440324529bb3a79d0287f1c7e92d70187b90d39ce6867a87e5ed31f57d9cc4ba30c903f44de484f8eb82a966d60147f4385a171b2f1b54f949b16ae38ce5778b46cc8603c944463191c2659c4253f56154e04d01db35f3ed868e0f4071b88b2d1870fffb03f2d3c3d9d19c735b7ec866b5d4fe29e5563ac82e58a2edd51dae97328c26d81400582003f2f3bedf82197652c5306e71efaf78d589f23dfe4a723284653169aacf66304a01dfe73834b994a7e80000581f0296583a5f07e3b777c092bea2355e0cb1d1ea856cb0e9e6e8b56220ad10e4410900581f02702482946f195c5369974e4dc93babeac2e7e1397f132ce5c6391a9fbe5d412400581f03384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00552deba735e0b089e134e29eaa4bc908ecc6dda6b20000581f03a26231f69c274074addadda98f47f9bac842669c9b653721979e585334e04a11273b2ed44c3553bf0f0219024002190c100380f2601c41056de81d5bfeec95f90b0ddb1c96464aacee5f0d643da8cfd79f860058200385251426490b6f45adf1ea7b8ae2e9cc439519b69a36df001f519c0b464dd05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03a2a4d9192ae562acbd3ed6a82dccaf359e99888c981bfc8373b2f80bd8937a2c034a5c5364da9004420dc534d0785384fd2b6299af430c5651dca8149df8bee294038a89c31172b08dad624aaa28a3dc6cf7b09f6efb95c11119187f50efdc42a93703f49e6d87ada96e9bd1cad5455f1a1d33b1135bd8dc07f775d6c31d0be4c0d6f0038bc938ea6da6166e17f63688fa124691778dbf825098142aadd69bd3d3fc9032033857cc11bbeeb1b00dec7c5e27d13ad449a19c9d3d8ca54c033462221c66597400582003c55836dbfaeb864b38a02809eec400d7b159b93d26b63bc317c09c488c99a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ffff03e6d119932accca53722ec0325fd2280424a3e585e2c2d5902b7cf81d2cbeb65303aded77a3670fc11c953e7b4c42725a0fa22ae434eb6d60a72866326ca3c2e1b103a649ecfb551b9865072b50e8f2773be57177c18f682c8525938dc0f1db1978e103940fe18f3cd065802970082d5207c3e191c30d14b10f29561c4b81e253b5b30e03a4aeb7dee91dbd5bb4b9ad652594880ef4c3acf283812a31bd417cdc6da8775c037dc2625dd7f096c3d4887c4e18ce6b8a6e8cfdf9591d212e6daa94f32c464267032897c7c2b51f5eca542111f50de89cfd7e2103430834b97c9c1cc534ed59beb7037c91a00a6cf494913571113fef4e908af570e175884bceadb8c03de0553b9cf803b78a5cfe249f4a1304dcfa73a3b0571cd2e274fac01e29749ce5cecb30675622034802ee527d78f19605979b955d10a5263aeb72c6f75eb05b53cf1905b2123e1103067b5c54a1a0735559c46b9843144e3b150aefea1b54e5b7d8afe2083988e7c7030c0cb79cd1cc57771c09d753fedde7c63d6d5bacdfd5b880e7040dba3e7c1ec50219ffff030384fd107b7281147a0e270fc860c0f61c77a47808e36db19140609db0bff1170386993ff315ed08b231c35989d6b47cbd749c5a8077a4da9d7a44c1e35119a3df037ec9e065b309226d95f69fcb56fc08ba6f769fe22aa52a9c64072ba4c65ecdaf0303ab4c3f82de3829ba5e57e4eece9a92b2b5381ceaf60c398d01201eddbfe193034edaabf6791db06d2314facb933f31144e7251573d6576f9cd4eabd869141c690379ef4cc6d41ce53f10bcf0904a4ee01ffb0a4da30d7619d27c167205e118a1b703ab2c8a713ae49e3229009caf6fc4d51c67217b2c0a2f538c67b396903849804103642ea57082b794b86b4be3262089e7b75ca44f348cf7774a88087c6ce0f65c3803932aab7a24a89e3c4f46d2781d4d0e21ca997e2efde94bc28782e12754e9d70e0307193c1881736045fd41f28952ce21c93eebfab30d20006069f247caf18b99a2005820030ebb9833c7977a0cc6b3a3b22437d4aad825aa6e535cbb2a861814655e04604a072c9b5b92b07af7ece60305659227b0854e8903dd17913bbd404a4eea02b71e9dd29ae5301d8ccc3f234f03d966dc0dff37a22ea5c67bdde5c3e7af21c91ce6d2e70567486fedfb3198741503c1077616fe998de4e252f3a9309f083255f205f6cf6fd541ef674ff67fd914b50393144f8128ac0797e41fcbcb806b8a1616837b5015c5b7f3e4433a141bab15f6034d8ad0d6eac279aeb07a64a8a6dfb5807aa0e33b9d9a3d85cd30fff87608860301410703e5f209daca1de40d66432f2b130a656fbaed9683d22aa5811064ec05c53676a100581f0271a6ace4441385583066045d228719618c2646517f5e450ecf760ce467465820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02f6252d7aa61d88be3993ec448e8969668b09ea7d684976cec49e810328304a1e29b7ab50c3a6d443a20218420058200324620574f888b5ea27ce10b8d6b4d3002e3d20c1820ab05829b3fb12f047c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0389c0ff850080dabaa9d164fbca03f976e64787277ef480a3cc6669df944bccd6005820030e9da4456978fd3002bccf98da90a43a5355d18a4b3611a7aad57913a31cd04a012d716686b995453a4603e7496eb1f362587f87ad31f7052cbb16ef5cce5ec261fdf7ba62b9477ae87a1b005820031ce9a0c3fac6019c02eaf095934ae9148d89728d567b2b6d24af4befc115204a18d5506e7d8fa00d06ae035d44a6e8272f0d9aedf81d33f8a48f23290c2157f836151a44f52b48de86ead403ad6957c07016dd1d675dea1eafd13df903e594cbb80d8a00f1529ddfbace0a3e0219fffe0358eca86449e323ba300bab74aee4787f1c68008c79728e26aa7e5c6a06965ea1037c96425d732a1a6d2c27643eba0c3909b9cca1a0ec9d47fc6f9e52f819382a53037856984de34b91d7ac529c7a28f2d836751ad67a485349d36fc769fef6459c4003fec36c87b0805242f5e187ef91e090c2328be647bb2aeb966af207787b90b566034449064e83f70255856805e6056e7be3ab50484c770ff3dd06e96450207b65e303ec645b3950305ceb30a18523321f2c126599e04a6a7812d9e88508eeee749fb10219ffff03ce1c25a14a60084b55472cbc159681574c5677ff148bcbbdb0df07e663f1fb8f03eb2fd9664bb7397fab3864479e9105e8b4960044f9d4d8ba7ac8c3864a69a9ab0384da98a1dcc35482b76372facb6a8df8e208ef890184acd57bb97fd65f78121303999c2ac261a5ec202981ff0728a96bf6eab1a515d0e975455c73dda2f571f9640346c52e41a2e555ba73002ab04a719574f648f17623671aecb16cdc38f84021310390ca9fb9c8f3740780b28fdf66697a1a15f71953dfe725b86c52191a8a4ee3a60323f007b2cd494c0aadfc0a5773c2d64a1f0e61a2af989b699d18863fb9285fab039fb719a089e33185a6f7f10cabfc9702514429704ad7117123a14909ae9eb715037da792ad87239786d10f1e4a5ed94bd364659f9c5a1abfaaf65d05122772155203eaf93ac42722287e6074431631e045c395bd72df014133fd1f8414161290b9ea03865e588679715e05276e98d3e74fdf0199897ab9c4db669ee408a9dac759e57d03abd639bc87a6a934f053ccbd98029f188ac9d8a4c22adeab31637a0c35d0039103435c8e182332dacadaf002a7e62a49a3383361ebf4b66c32c8dece66e82e540c03af37f710e3fa771f32613a9c220eaac0d242ab17e6b685af7d482d0914e415d8033b003827179f5ddb3a99fefdaeb2bd3c3d9ab3b93579424cd35490b6e01e743600582003e9cdebb5a99936710c9be38a8ff1e2bfc75d2a9fb74f2dc3c4a985f60084404a027f6084575a19bc440d00582003d2b703f0ba6516484ec42768158122c349aed00142ac8ccf73f308887d4f004a10846372f249d4c0000000581f023e932bd3a8168037595b682ee558756ea2f32e36cadec4b24252ec2c04564c0101a2290375a44b3f87800000581f02a92d19534c511d3c31b67e96fbe33ed2f6c0acd2282e1f9e223f9aec82f14a01be9e9c76d9df9a66a6021940080219e7ff0308954d28be8734464b6c3399bd26489675dc604cbba7d40ec1a5e431b24f703203a10dc3591aa0c9bfd8648ddcb485b3758edeb8b33aa37387d1a5f339525da8ac035b78047f4c48b52331dd72dc1a0f38d5dfc3eaadc2ab310afc702ea3dbacae20031ae1a9f3ab8b62ce8bc0c342a36403a7ec66c4c5e9096306e9184a05c65b4d8c03b3a73fe5108cb23a396a675ff8fa6a1eecab9215105d49ee42bcfd2ac2b7262d0327c4434246cad829f47addbb9ea1501ecc064f47610afcae9ae2dfd6716ab44003fbe4bb9fce669ce694d94c57a804898412e80a7c3fc09cd46bdf302178a5563f033e4d89ce7e64af59133f109f73f3ce5324ad55cfc9d4d100ded4c46464754ed60329f1e023cba0ca4216dce7b3511f69cedefaba237ff5e9c3dda2c05deeaa242503309ffcea7f8209e627e2e3361a9120cfab7a600fd7d53cb3aab83bb4c5f29001036fabd1ed9896da1fd084259f68701ec00c32fb3a95fad7f4ec8c23f4b95e56770365061a7cf8e427173b457b7cfc18febb446991ba5d1d9fe1e415a6c763ba077f0219ffff03dfccf5ee225b40c3fee0268aa63731860cc7cd309a7cf3f3988b49b2f0c06abf033bf0bf3fd4933af31a40dcd42c06a75b3421f47e7669b62cdbb69eff02dc822d00581f0233dec328fc987050928ed4cdb27ad109c03a4b2b53d68ca999f87957c5484aeaba3b3e21fede5134ee00581f02e6a8e3a29627c13910064d43e361d6240bb7241b6c9c5568ea715b5f57f25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f028f570e726d63141c15469ff85af3fc43b173cf058e53d862beb86764a3e34b06f6fba81d383939df700000581f02cd64a6b0e51382d4e8b6b89104218615dd7640b53e6ff9987253359bd61d4b047212c641f0355099ff160219890803c811eb54871bc6c144d4bd1a198a575fe2ae49069455bec1298c85fc5478aadf0343491fc04fba2eca3b8b3baab0c04407403f20ff55950bd1d9e97ed1ce6c16f4037a067c15c1f6e6f58b3870810d33810eabc55ed418cace9f8be2b6d8f8c8e55f00582003635d74fa76de6adfbb7e68d23a56e326632d27d3f612f126aa1c756ce052c04a013273df1510156acae903e1f8462d423831938e3cb54acef54c2104053a58bba2598252940029479a11eb0383dd20dfdcce061421971937c76f455ebfea9d5eccf4d15fd2a883d8aff72e9b0348760c793b3599b58455b1e35728a8c9b934a30cd4ed97148a75f41c5d38c7f3005820031aee5ee540120dca2b42dc4c653fc8b71fb8be63663bb2b1dfb906556a8a704a1b01c8e9ed72044ff1a403722d365a2cc69783910df863b624cd99c7bd616d68051479d00ee637880a4aa103a464fb019191931373e415f8621ac27769ec3dd39e2a522b32ea81610706091c039f8dd58f5e6fed107f21cd3d8f64ef8d0d61711262600e906d9f5aed3892e412005820036fc83e67edc83a775344df9e8a09e97d6679216de6bac7ce94c4ae31e182d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03c593a367558a4051a72fc2ccd920e747db574968204e0f5e369d4f9ba4eba36100582003e0f60db92c7c1fe3eb45c37ae9f19a56c5bc27c083f598219cd5aba8edc2104a0d9d56244d0d9586172e0219efff03779438cea502cf3e42406a44b4e1d96e0d9e28adaab824247c92355eb6a1d15f03c4d0ccaa22e4ad04db1394def99a9d2f6b551ce120af5b9d4cab6c4d57231e7a03e77c03c433fb5b0f0a4d85afbf231eebcdea6d0391f4630736633d7741540e08037055fba904347fde9918f7cbcd674aad2cda28d69989df483617a0e7cbdf533e032b57aacc869caa7a617d8c5ba088b5009a56f50c55a78525405f48da7a55cef2037603054dc272c82ff2d17f14d83af9d83487e1196a951a3d688d7dd8b043b00503bfffd559574ccbd19e69f9aaa4b14bfc070dba4f7d252c0f8f1bf345a3dcbe0e037a6d20bd725c11e54afe524506de5b372e4f04b2bb3edc4c37fd8c49638be7b2033cb51d54f03c66227630e55f638eeba16fc9b098482713c1b466f1da8aac47e80319fc8ff10a069764f4326b9138afadbe5c97c3cc02cebc1d92b78e7509b97493039a0d7708e8536ce9b6c6c27e68928dd4b1ee7593fd60c4f713b657a50693a25103ed99e1b6c1a8ee4ba8367d5570dd88706ef82873efb7867ae85afa634c98f87b00582003b3941caa5b991802f8a6fe40006154533832358d4c321061eb1b20be6e8ce04a0d0047298837f21de75500581f0265da7b9e941aa1c07e962cf1106a090abf6bbaaa931686c3b649d248937d4a084e0be49d281b7f35ae00581f02048a5d4c1811f30d3acbbf96bf829d700e0472b6a0f17fcfc36e68a140f15820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02182203aa805b38f25dd9ec82b49d31e303ab5fb2ce0fb12ca90d5112c8b02c7c670d4503f793a7f24123893503f9881591f8cf2a8b80c84e13e767a281c9b176d42599fb03f121f4525d2eadfbd976494ac20d1877353a396d2f5f1c305367ecb2608dc3440318a35f05620eec4ffe7cafd94a1c590153891231426c16ce4a71717c56ec07820339d36ac59af48da2c3107f83d5a566f4e3a2cbe0a1c70bb4ea8c3953d757947c032184171ae98d231b585bd0cebc6be0d483559aab91aba5e605646716b6bcf73701410a00582003f4a232044aef41c6c05806f4e5e806cecca16df400feaaf8b0b9b33c5f94e04a47bd1de38fef2471080000582003fd4a24e1cf8a67b9c492d15588585cfbcc7358144cd39af78edeac712a4c004a3f87127379a1d7d3919d03b4ef9ad31707cbd0f51c4243b961cfe27936d8faf98cc13d85a9f19d2d9aab8f014102005820038db65b412d81c782eb267047f65e6682844ca803e40b551eb017dee51a8ad04b012dabea3704c6a023e9a703af77f6d310075965cb0774e1ee435239ce431d4c18106b05a9b595875097ed3703e32bdd299f1b61205ba35752ea6cc4320b365d2b2361b9e8217c7416def67d010219efff03136d35e2a8619b75901f2e585aa79c5a2dc186cd18f2082c7ea008822cb2141a036697aaa83220f2373da2fedf37505844213059450a4095d410e9f4d1dd5b122a0219ffff03367aea04d478eb7b040afbaf8053374ca10c0b5009fadcca6fb192dd788dac3b031e5c9718139a52a0e7195e10f1723bc836de3d1977eac2cd5aed7a9906ae980803e2cd5ee4010cae4609ecde0728f16dde4dc5c4a429f3ae0b1f65065302a3c57c0319fb37a61339af2f6dfbc179bd3356855e4d65d24f1d1b6a93a77bfb0d3000630363b68fbcb334c5cab115da4ae81f863d590478efe760d1df9905e32aa0ca2c25036d7de3d35aa62aa8b6ed101be70097b57e0e9be8eef262a1bbfc031df9267ff403be0235cce93c9ff0fa06de4995e616418f22424cdd32518425b2a02e1c51fadb036589618636c55752bc8ea3277b9f5a86167aaeef81c74c679754280fb1fd6a8803c32b7f4182274499c3f5b341c6bcea8b44a148a833ffe94f677edf35f13998e0030b426e568d94265899af39e39cd6c1fa80493692388c022bb4d357b3207d000003f873f328ff26ec6fd9017b8014ff03199cb8c39fcd4f649fe08d3241ab6bf638034af3355ca8e889e52562248ff4acb8cf5a308140e0427aaa725bab329ae70a690058200316241971b0863ae51b2529de4ebbbfbf7598f5fd5070368595c455a994958048745d811309a68000031a26332fc0874b708b483019ee9ce08d47a29bbb32d4575144ff81c3c0d0575c036123d68cb7093f50cdc2399c31f263811565cd569be3dc3478db4daf33787a4f03e67f10db0e0fb288a53f7e1d405304d09ee7ad481e992679ec13c70a64e7feeb03191c57e181aae79d100b653a43393f88c1a371770759a8f3bef5c6d481a8544e005820038858e56a8340a16d866df062bc39b4a79eeeea2204d4cda9db0e963a4eeeb0492d775fdd7af427141b03362341355f97e76a0b176a7ea730642ae3f6c3b8a1965684f8dff2255e59b84300582003c31f948c21708cad9b945079edf1441085c6dac8d5c65a1a4e6e3063e4cb405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200389ab878883f00d76afe237dea8b925b6f1d2782ed732c043f47516ef8b16604a0105a67e28cd84c8932400582003145f0a6f82b35dd99f1461995964dd27d152c61b021d7a0a37a72793ec84305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003a346c28b06306da481732864c1b30173cda9d1691b5f3cac53779a4170e7e04703faa25226000003eadfe187c92efffd74458f758873f6380c1f8decba374785c9652aebe07a39bd005820032264cbcd676bb51457d6e68ae04d871818cd991399ed33344a6afb256ee7305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0217687ae16bd9230d0496421ffea924f8ef2e2aa7d27bacd6d433b4430b794a0a65b761a10cffb0000000581f029566182cf674b985ad3eb8008ca0eaea024b5aede73254ad8e5432db3f734b6823580658274aa6fc760d0219022003bf0352e5d53bc173376a08fdbf79e4c04200d015280d1894a7507772dd8742250219f7ff03d6840da264f23e327342ef5d1ed78208e279cf81f9cda7fd7304933b8113bfb003f78b4ee98cbefe63fe9e69980089cbc34c8395202eac57e10db823d582b2c02d036755cf12abe6cd195be940cc4a86f1c47ba85108eb5cfc1bd59d116f0ab4e7570219ffff032dcd9c410b96f8c5035f53fdb223c9cca0c173817eb724941435bc035375c60d034d1cd99875f42785bc85c266a8371f9a92df7c7c7352d137c15700ac9ccdbcb703effd50d91c2e00fc40f4080797c2b190427f5c0b68f02819930a819a09331813035e954b314900cf743a1111a989322ecbc6e083d98fdcb671276a13b657c3ee2b034fca5a0d0e80ad6c81d3d938a243b159d2096af9293a2e66b33cea1d830051b3030167def2c418c3cfc532e917e0b8bf22fa57bc75b4db93e9fb11fe95b47b281d03edbcf46c8d68eccee148f46ccf56e3647c49b00850068833c9f4ab146846c02f03efb4a8a0840d7bf7889577ff5584eabff9a9a3dd48faa7b7d09545cf1cabcb5e0377e1884abbed469359e8068981d9223d029ca4a4576231327c7552de5554997f038badc79c13e42253675809d9adcfd7a8718c17910f0845eb2101a6a5c24549f003949e75c3337f16779455462179848a54e231dd33f3b1863ab9ef471d7d31bd6b031175dd41e4577e20e9527af2c9783f409bf4abcdf033f7b7b6befac583a3284f03796568ba689e4cf36261a9ffabe2f841318cee7118bc903b0b9687b5f5638e2b03a41b05bd8d68fd3b279f122a6cd40c2b6cb652cb266db82dd97c855b6e8fea1003a02d18a408a07f804862ad43e940991a8bb4207e83b7b73a9c3be77e728aa10403329c55317e9118fb7c575fafe28fc0c4a47a5f128a0c38fb8a4c35e248ebb0d0037727cc21669e26fb43a7a1b5ee032dabce8f2fe6894b692a79de22c3ec0190ec00581f020d28ca5a444b1734720d41db8e93e62d427be97c0e55c9bfbde9453209974a7175fd388ddc9f586a0f00581f020f9f4a7e1c83a5aede26c6b029e461113ce18ad1aaeda819caed99c3fb424a1d734f2dc0d044ec800000581f02991902ba3d92ca55b26f48c8152f87963ccd6f29b823b0d0d726711201595820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219300803778f8c4fe63b23d3e7d5d23d3a32c2c31ecae3386d0c193ff02074d56e3ed26703748b97a107d1deee70fd18707dade2e693143c412f6793ddbf174cf6d787e36903b11ec5107b2d8c1b06bd6d34da4740cb035bcdc1f9c1a00c84b6dae302952c9e03fc666cccee2ff1fc79d90b1ddc12138767f129dc205595a1daed64ebae2d5aec0337bce9b284ca73297a9bf1aac9fea52f87a636c360b824a14d75e41f3e7a72bc03df7809a150f4944ed05939bd2c1859854bcd981b3fa6885214cd95e97a87649d03a1568eca296c2ddd7a735160354637de1cdca1c7f307580b798e7852a7975fd603f563f2e0aaffc31357106aa6c4a88223b2a680beadff95ec0acfd3b38f243eaf0399010ec5dd947b3692307d672f725e6a1967ab262a3eebbe890cf280b9c4e40803ae23541ed434ea0573084f4bab4c5a63a6e021e65813bfd9df8667098a01a6c800582003a8db247879333fd7185640fd037d029fbcddf06162833b02e7d284a9ef98e04a20ed6b0b82e3e98a000003739e6f079b7917d825bb5af232218b7f2a7e7e24ebad2ef8bc0be0295d44a24303120738084ca4040d6457b7e115cb2b64374ff3494e43c8f3d571848103ce1cd7039a03a54a9984ca838bc5750e188cd9b95e16e178782121b6ffb991711f55e0b70219fffe03fa8c318694c9088f651bbde421d83d23895a9a813e1e30f58e251e5df7c40931037ed6b90261d1b6ef5368910ac869e7c703d8663011d89d266489e17619cc0fe20391d66045fb126de951ab4e7cef36e3cbf95c46bbc30d1652ea3fe2861235d24e03d305d82be1fd398710d7dc647a0435a70e86ed6f892d2bc758eb90da0494192f0219ffff03acd16fcae84fabfc88fdb38c057f86157b6ac0725715d249ca5127da6ed94a770219ffff05581e03b34b3cb4ec50060172279ca7ecee25d7eebdb0ebd3397854c1f11a64500701190e5805581e039c9dbada497bcd03d97bd157c7284c684fd5b395903e9b9ce0fd50cbd0040205581e034190de2b38ffae12f7d38e74a41413c91bc08308e5c545e29011137a500c0547033019eacf4e820364793962e5c6368b6ab1bdc534f8f4a56a3111900217a3c55c60d5d47a996f3303c2055ca8e7a5d144e61f6071c4a7b669638991656db3f6dbaf255a5faac0a8e503c128f3a9f40e412411a7e76bea9d5d0f7bb2b44bed0da82ba26880cec6e7f62b02197e1c03a3a032306907c2c84f7f1f2efb6ab60845a3d2d6e4399413f71ed1ed8f782b250303459288c2403bc183dd9244f5fe432b8d798db4e5f97a035dcfd2f0cc74d1340350c6d5719983bad0c87f15760c364509a7a631fa236be8a852675cc5df0438be03525ff9c26e305b70facd3ac3590f1b87fa1cbc70da682ba31b79b76d945ab36b03136493ce1aa63228a30494ef1ffc86cb488f9c28d5db431f7e181b89ae614a5403e2300fcfd3b0c1e4afdcc97130dbaf2f9106658b52532c49b4770c34ac2d9ee203e27f3e4e74f6bb45674b119e038885446dd586ac74a62bccdb745d2125d41cae0219ffff034a1fcb972391c2cdf4189aa1b96f2ab6071164269d222caac56c855485b16120038447ecbe90eeee7b6f6b107df2771374e12c081da79c0c666c1eef91ae5b8bec03607a1c28c4704bb2e0041faf5e27c7c22abef36e48ae2de4a5435dcc10072163030072cd5b2ecedc8fc65e309e98fbbf994fcd47978d6616be0f1bec6d5b97290403015e1290a86b193326cf81c5f0ccc9a6f3bde8353f2b6c0b60c7af3a3117ae5b03f00a00e0094a3d1f5a9f1c51335e43f99fd360724829a115dec3616803adaf82035aa368eeae7161c4ebbf2e78df3d8a4051b04b5183fc838f52fd50d0bc8e26a503e4c7c8e51048d7219e5735d01803db25d635b8b4ddf7473b6e2339e2c83e32a9034d83e8cfd20814c4bb2f809cc1e9697cef364b9740867130990b85b096f7e41e03d7a9fccddafeea9e5eae2bab362507f33ba8404ed25445b2c51473ab992212f8034c0715838675e1c7f99fcf25844f0ae16251c8f1299c2b464abdf7a17e85a4a303b2ed5bb3168b23217b9f78a0fe632c5182a7491cd50fde8bc4bdec2743a2dfe603c90e387c10aeaa9ef158a11e17c9788ca5892def516b91d65a99d1c6dd7015e103cb88210b6b994e653e67c597b2f651bb250c1cc1bc83899112f73c3203cc711a0219ffff034651890b5baa08369a0d2654852b8b078d1c521bd0c7650126459f22e7031626032856624462671d16a9bf500da200002f673820f8311c4a374d92c836c4dca7cb03a7f9b8df53783800810b7b29488a78278f3dd8bdc78652f0cbc26bd52b5a0e8003ad9d1b30038106116aa4e7bb6a68b5a20e65ea6fa7069a484f592009a77bddb8033bb87f9b86072bc70205b0f96eead1fc4233d9ca01da868b4673b73fa67a1d7e038e6eeb7beda6f52adc36a4c6a47ab6a5137b1d5fd2e8d75de631530ce8807c40032fd60816d7702e70b6979216538bad3da9a42398d8eaa5de762f7afd583d4e7103fbd74876a0c14899c889dadcc326717fd4fdedca0d89a023ae8b2da4d03fc37e03cbe283b5f356f520266b9995b5205d11250e3e13f9fdc3766e120f4caa0281dc03f4c844736d40fd436cd3e4949d6dba62ba465212913235b4e3ca1c7cdff606ee035c67c8de5e87f717aae248f4703ee20d9999ff454946d6276d582d15dc9fa1c00219ffff0343be4b639f707353a3e4ab679d4213989abc1968ba8570af0ffccd5cb47e44df0392913bc10c9688130203b2a2336d524b8d9d4a5d4a272d597d7415e95dca084d034f6d87ed02eab3e8de3a2615e816f611af28f2d73be36558060c175d2bcc3d0f0348b9051cd238d32d5320609c4d0d220065dffcbe4c4bd497bbcf9841c1c4b55a0219ffff03f94fa360ec90bd196735fdaaa989b06327e690e388225e87c18592eac191e0a203a2b275a4bb71efa8559c9595519f24229be6d1f3ea8912495d89423d4197882303e98ba00571c18fd4d7c02e5a5243e375839735486794576ae9c094ca33bd6d9703c8c82a50dda55148a867bdc9e6f95109e6b1d24507da0ddf271f4eff536d4a7b03833dd0d215c7d06df77cba7ec9e7c9dae944b679bd64fd1d005bef6d40e0b5de03c5aea6b65da2a2ce9dacd5db977a131ebd49b680e4756d55a33d38fbc091b2e2039337197c630ff758d0e790b941bb0f346e2131426cee6f5ccc464d6cc8a20fa203305240787b73e1cd6daa261029b38cd8411d1fbb6ef04ff077a43919ba8d39a2036521d562dc2587eb5fc4e96f771b246b61cc3d0ef0b1d802ce48cffc50c6597003d65bd016084d0929415f44b8cf480991fb21eb06e834c962c3684d6611ca92910371cbdd95a386a31023ebd2d4ee34dc24841c0a6af47a314c07610272c9eecb8803045d3699ffb4b510ac07816d3ef763e000bb4f25e719c294e702318a28a1c60703a182398451fb15f5b46883b42e2edc9670c647159533e88182dd08b792cd29ad038148e207e5816e8ad74ccf9862c45e1c0132c23f886be261275f9fc1a6764ff4034cf800da7ab9973d234ee0069be8a9c060de16b10702cfa188e5ca91c1429fc9039d284baf22141da717944deedc63a472e80ce93ccce46a69044072aea428f12503ff29396d24ec9ea5736426559a996cefb35c109497dea37c1b581db92e3af4610313bd877b97d2fabda4e188bea10caa6dce245d3eb8b342eef2316c00ccd2d4460327b8603aa4090d43ab48cf73d921400f69b20a060b8aa8df5b37714949d9325e0331d7ba588f84491a640d8a9a1055ee99d48b520c673d0a2b5fae75734344644e0359e1653be2a02cfe48405315d1971373a2589b06284310bc5891fe938f197e3103fef47adace1f613f1cd0507d4a1773adb3b95d8214dd3d57c5b5a73bc1bfd62e03163971c5fb8c2a9264e7248c001247f21df3ae2780a81e03f50128e303fc4c8103ee97688cda20f4a72b49b1b47b9a9924e5e8275d88d4a195473c7f6862e606950311bb16284b9ab7621cf2fee085f3a75fc4c34204f807b24538b964e675184f5a038d2bcd7aa97ad6469da556639b22e43e0cd252a7b9960026a275aceaf70d7d1503ebff7831cbe17f3604dfc7ee77927c53f862003d0353e632537d033b0011410c0320f77c6305a772e7118fbfe1257f0f028b637a6c6149dad7df251a55a0c3a2bb05581e035968460701401bd2ab13cb2bc1606ccdddb2f6181acc3ad7aeb51b97000c0146a75dc0a7c41f05581e0354005cf95cfcbe51c59f444a06630507684c8f195fc2172f5e47e9d7d00c1819476f751988deb0f903c3849e00ffb40969c731bda3ceb88f72a1821049dcfa48c7499003d5a0c0a4aa03e8554dc66d7a18ab665d849ef12c6c582bbf15b3166a2ca51fad9de03d81fe2203229e9379338a88d4b4d87519a33cf13de04742c7286ecde00d93693fc7bbefe7031a2c8655957db3ba0c74175a51f1a37f6a5f9a4b86eff7031d8ffd86d92255c805581e039b1ceefa83fe46f2d5bff8a7d3e47d539ae6ea02f4589c5f8ab8977bc00c0247025e4e572fc0af05581e0334e1581947c5dd5c6909d307559d8a8c245e86263fefd34b50ca217ce00c0447522e933c7a6c0002195f840317af03839769d54a072df40c382ca20d2027484e91381fe686c259d42836c2de036ae0df24477ea91459b193023f6a4da52d9c8ff8574b3b75a647b650b76bda6b031ed2c793946daad109a13a4e0789a1681d1aeffe1c1d8e9407c4b606fa696b66035ad53aa74d4488b5ba441beb75d4174c264f7ca3b307fbb8373c91b31a3f7a53035c0424798af0896e2ad743f26b8344f61bd20ccc5ce0e1b227c3bb562740c53f031b529554096bd178e35148f240219bd6416605ace03944b34aa6d31ce8975c11035c3fc4e643d9d439a5e7e309d903da33614340bea66429cd717dc3caa0fbc0f6039d389e1875c161c89cd140b2c658d66402e6f3d9505aa23fa603d65e4e5f049d0397f9c6c9c76bedeb2ebc40190204139b18df98eaebfac220f4ce3e7eeb8af1eb0219ffff03feed78e000aba67aa70e7df4b254bfae7ca7f21d288f0ac9806689a21455150703db46ad02eb68f5cb27b82db949a81a088279b53c7bf907e996d174bd885e913f03903ed60ee322a0ec25d926ab0aac13548eb76df1509c16a7d27e8f1f054f5e9b0381a6721eee77c94128a6fd7dddb86febd8d8f750d8b088300cdbaa0e09d50d8b0310bfc8a9c26caf2d6972349ce8e069a36f26363c78447fd49857f8190c55cc6d030db0d2581c4fb3d372d7433832e633a9fb99581ff72513c4a0db02fbac1ff322037a98c09e6237e208cb461eab08b0746d326c96612fb24ee68d7c9a4a1e6e68420219ffff03b5620eab0f12105fc2ee94cb9b53e6d309efa4a3e3f16e15d9aa9030a468cd660351bc3e279f59770320177c85160653eb54daeace6f4937a4f03c1ced338c870303337091b37831fe90f8696ae879a5e6f8e1645e8d200434e0363996b0616f23b603ca6ab22026725ed3af6cc09825a2c83d38f3cd387ccc77526f6cd5f94789670b03154129973e8606eb4274fb8d5c82e6717bdd8cdc8e14daa43763a6c99385045103ccd68045a8d41eb2c27ce80d94634b6548be04b31145a9693d01e24bca10a9de03bcff71b98ff95bb1f5901f345699cde0e71defe7ae10ce615425d991eff8bc2e0390f883a9b9c2313374174758a92d393ecabc97d8a6ba60dee5f1493b3aa992e403bab612c431052fb2fb8c35855ef7b6a44c79a57078dc5c4df2b23d1724a27c6503f5b26be42697706c06b25b739085621679b792fa89b82abdd61c6da0d84099c20219ffff032d047e7b670fa2c1d58d281e04012c46de0e461ee4343102554aaeb0dbaab645030508b10f71927d1427802ac7a2206fce393c5c7c3ac7a05f77b0cd66aef943130352e75c9bb70584b40f438b56b61b12a25665627fc2e803911b1542827c5b83ca03de53762c131f636e8e36def9140ddcd8e9f481b4b934eab6757809b168602feb030fda96a1aab2aeb006545d1425f926dc014f29f1302f1862d45516c47416b05f03cd1c3057468390b6cdc64302cf5aca92e59fa5ce7bd236ce8a63f94c5ffaa1d603729b70b15459bccdd15cf7880f915bb7145f857b56e098f388acf04be9817d2e03f1c47f74d5c5e8fc3504967f0f3b8ccebab384f8511091e98a40390dabc17a8003913d86ee13011684b7f4298b43a9b09606e2212dd8705c9cb5470194cf66a63303f0a317238285681677cf7cc3db778d1c5f847f0fdb76c2be3263cb8c5d349f0803beff795607852efe4f288265b5117fb6de1636cc8a4a0eae358a240b9ae9e1ea0347aa49b0bc5b7ef4edda97a96609fd371825a4568c228b8dddf3343c3520e12503073d2dbffd95886ba4b5f1197a5e92cfbbf4577f69e8b47bcd87fd11793d210d036e74049bb8704412c7b1dd9e2f422f84ca9db35c67159a75f6cb5b3f5b7f169003a900a94cbcd93813684d9629d73bae4ddda69f84b4a4c21c61dc81d7482eb563031e48d2e2cb61c450b117e7a7dfd229bef01ae919ccebb8fde2cd0eae55b0aebb036c0585aaafb99ed2ff5888d50118aa52aa20ffde0ca22880cfd84e5cc834325a03452684e3cc81b206e99a22b5961a6d3b69401b3a34c43f9e06504805936581480377e2f9dfb2cf644b6c9d6bf6a2f8c5d9ab98567846b0c6c11e7708811bb0d92f0389b83e7309f4aec676bc48ebd7be6bb6c4e1a49da7fc30665769ae5c8c22031b03fd145f55e82e5d00ebbbda1e5238a034073ea580e56bbc92a17e46d9e0a37a110363168ea0ac25b4eb609920254b77a65bce0812d9b29089f6d43942ac363fbfd303d284e68af4d7570219f68c6eac2630b96ba7879ba16669ebb125edc349ae2b9e0383e9f9744b2ece5e7243670fb4df63b850ddb44c31c61bd10dbab60081749feb03235d18a60db6b79c2573506c27ca7c4af9fc2311d3d65b7ef7c1827872c789880311aba403738147cfee1a636fd51970dc9bdbd7b36baa877d32ad3fd587e42e640311b747fa04c8b8c5bc2516db90abeb8f01992e3ab2b69bd5398e439df583549305581e03fbf6f41a4965ac3d995d485bfa3a16ed1b4fcf2014c4920c5512c1aa400c05471efdb39e7239b605581e03374353950ef3fcf060f03f2a8d6ff8b3a48f0d4c2ec3c157a8195504500c01469551c4c5faaa05581e03d678505ff3337ac2e93e62188ce6339eeefb84700497bea03a33480ec00c11470255d54a9171b103059be2643b763435bde6139bfb422f00380fd7b74f525555f7a300e48141474305581e037c72998baab2fd0dc890a4f7da89b2b4335cf7ff2d9ac1ea54645cdd000c0443f521e805581e0335ecddb299a624789d65f98729735ac1c571e0b97136fa08b907236eb00401037ddb1525b01474111daf322568047e01d0ec8a3d88dddcaddd7562da7d768db00324fa2966f795474bf9e62d9de1d720a7634b25090e15f784c9d85f3959230e6a03c532da4134e6d6cebcfe26eb318175bc067763f71c2084ffae0ac65bd6c836fd02194bab0219ffff0317c094c89e33d5f8d7cbed10b153d02d9c8cc6b1e23189771d7cc8d0363a930503df1ce5b0f98dd69a638be1b6e4c273a3a5d3d245b007d96fcd10e38ae505b643030d9c9e53b978657b97b9ca74704d581c7c1b83647092594cc2c0f95575d156730335ceb66e98e464ad8360a8b71bcf13b502c19af609ce7bf61eaae42bd0d8d83d0304f55bac46c9756aa07585692408518d1d3038abbb1f3887891cec819406ab2b0373b4ef48fa496c5f92ddca84e8402999f26dfdfe2a01cacda0720f00bf7c843e0219ffff0337c040335df0ec70921970c3d2c14f92c39224fdeb43496adde816392777ff16034d67a488c48d030242797c9ff1e5a09d87c7a28a025786d2758adcb976e46ed003794caada41a3e2b2382c78fd17042c79e490989ff6eb05d596470944699b3cce0342445fccfa03c9a7370cd826aab9c2ecde0c22cd84400bcaae2ef07bb62245f4035afea05be02220863a50f7b3f2f213135b32cbf2443d3e23ae4b3751e6d5bc0b03f685b27a214e7703e37688df296c28a2f249cb4790984e423817c8cece5da28c032544a9375948badd582a32a42ea44375883a7f47abdc64a3591e28757e130b5a037a669472acda5de77b396227843612037b9a46dbcc5f62c0f0441316ba8d55fa03347f5376a8d4cd05191c30db8fde8b8bb60bdc16b4696d72ebc86a3d90f3cae8037ee5078b98d879a393c3bc6cbabeb923e35805f93b3eea3abfd8471353b55bcb0363a852dffa4b59e9b5734467fc4606ea15762dec50312001ef973fb6d24b54ad03127b2242dd9311ed9f86eb934cd1ee02dbd9b92f1dbf334bff2836f159ed5c6e0219ffff034381d4dc6ea9d89bd52f8c58081f88a9fb6070b5b8363043c76094f93fcc80dc0353845966c6d0c18953399047856bcb7262c48b87a5ae637d21d605aea89da1b903f9086d8d0003c6a8361ed8bf11d8861f12722a16c28d137b72ab979d764914cb0343886157db08f4d5bc0abf7580908f34e9117385ba1e8cfc1a8a31b6170c590103878c2b27b17f387fc9335c5330207399abe17588a505912a779522d576b23d19035096f07f096691f5372178e32ee2882882be5acaa1b58871e6cdd32baf8f5a210330f449690557978ab7a145fa0178fa5cd7abfb1bec34d2136cbb74301fe125510350b3fd496bcdea161521383b604d00f15c2e4d70d052da5813cb4e3c65ab313103133e3062dbb8896f94fa2d09bf7e2556738ce496d9a0c7628a99902211fbfbb70309759a641b879dfb955046dda60ff9ee3feb45844cd6f68f59fb03d9bb5dead003511f3ed0744d50d8c750de6a92fa65b819f204bf918276395412a64ec4c3b9bc03046d662aa2128b4643dc4b52134a7d852db3f179fce7222df4f029761cb468e903bd353cc1721ca85eb22c762889dd33906512f5ea6d27ce6e098962d9db641158031f1079343960eb642225c3719a5fd7853e6bff6d7bfef0e2b7d99f0e085b359a03a06fd3d891f2ddb690c0e2631b99faf8dd74db61a29b5c3a9456142274f0ce0d03abf1789c8d3d809098ecfccf056a33143cd3d94ec8a18019411cc9a862a0ad2903376fe57d176c288364536434a35ab3f67a69894d101a21fdc09df55e5fa03b42032f9954798c2a42fb007bf6d5545535d9d80d2e4fd30fb0d2d706a917e737b4c40368cf38bd44bff624bfc200b1c12d9f504c44bda74053e74983c5f9b2de494d810363854729ffaf78ae4035f4d929fed1097bfdc240183768ca38dda8a92e4b7e10030dd0f87f7f2e6fac92e401b2885b0fddbc5777c33cabee675dc770306f746b9c036c63422cc479f6f45b58cf0031fcd888ca24c205fe9ee51fe39e34cfed614aa003ab8fae36afb58b798546c37b47751c5c3282f093bd04ff21c5f52679cac4a46003ad1ae40d09d0bebe00f7d2506696ca6cdb24521a598721dd60cc872c2b650550037d40ed96ac2d52d3d9724430cfc86ee28cff0d7dfc0c4f4ef1197a8a7005e1ba039bb4d10df57586e3ba5d0f54f4a9acd6a683cef718972bf49bb0f8de220b20bb03830ce157e2b520b25fa349621012fb340abe7e8eeadb065df0b013aa2a1528d405581e038f80a0ffd9449325fb97f2306e5723f615fcbf8e50b85e0a21d9cb7be00c0147033ab57796e000037a0378b54d6cf86fb1111a927fce88909d95248f8f9e4076c026cd489200862905581e03d703a3779564f9b03b8dcd210dc584ffc37598f2391e05f5924fb053900c014703afc0bc521ac605581e03cb1277affa9ca3161c327c88e0c7113d424e3889024188019daf7af5400c01476b4971840884c005581e03834033763717d986421966c9a3be4eeb6e750cd32b0a7f331a1608f470040203905982d3bc98b3ad75d5ca7a92446cc8923fae39a2352245000f9d3e9dc0f3ee03bbd13d463ce2111713bb0d6ad117b0ba991bc32336d501e872703c4ad6bc3c9005581e037c1c4b9999cc74ea59b88a6de0c6bac97468be42df57fd85ab0385431007011bffffffffffffffff05581d02263524e094f93a4b56218b06b7b5b465ee72419096c0d818fcb49dab0c014719e01f6d4ae80005581d0287c882a3219abc58699caddf01e0684fa9b5737ac340daa1c8afcda80c18b9471be8a4b40a9d3305581d029f123d2d6258990b02afa64499bceec9557032961ccfc87597e3784204010219304005581e0344b864ab5e1e1fd9481f516074cfd2fab40c6acd1562315503781c22700c0c47029c7a85e8f00005581e03829138235dc5dcadf7b8fea4f3eaefb0c1f526311aa8a7debf160f2dd00847028ed6103d000002199637030952e87b644acc50819b4d2bd66e5a09cc276d8fbe72b8f470818de2289cb9470219ffff031611b413ff352fcf59d9381a22086182139c2c6d650eaa6d6f7311286599706503a9a5e5020f6935af9000e6f0642598490398e840166654a7fcaa83c6a41eea7e033939cab465963f6b0eba947c4e967b5c9a76274220a8ce9358e366e5774f411703f800049d8cae2e26293dfa4b795eb2c0b2106728ba71410aa711a4f6aef1852903ca8713e7740b641b43aa731ba9ed47048e758fc91bb9abdf8f9ede7cfb768fbd036b0c40b6871e0256b5ac370f673a289f051938cf5597dd90f4e90fc4b2de486b03e712ce11a04e589fff9beadc327f4dd176b0d548e5c630270df73d1c4f7a39080352474cef76f9323a5c8986b374065494cf797b96abd7f60600a6fdf6c255add7035fec6c8b9ee151a40831241cfc1493cf0599aba51d4050c323118020dfeac86e0219ffff03b6bd1e32df8d2360868216a8eef4c4e0d90b00beb0ef2b1fde7951dd46d763d0036e4c441611902151638fdfbe889600bcf0442bc2c94c6362e9c69e5a515c94dd03038332f20997839ee4451d73a42d6fb350dab8b14d25801c06af8f6c3450a47403ddfb2478013fd88fd9b0d8029b79748f402825ca556c2892afbc1f68f9ad9c200390cd64f7ce13faa92ef9bfb1cd903a851e4f378f23d6de1bcde5f9b2f507064603da1faec4476a88f1cc8db823d5fcb0fac346988bbb50d836824c53a9d5b1c2a803337e2622148347d9413a8e90a7c44996160e6e2ccaea0660947d11418deb5e6c03394678aa986eb3c7f7ad21b847bfb1a1c5aa25e39ae798c3ec10f2af9dbe3d4c0219ffff033764649b651a08014f8b98a73d1fef7d546b7608bc6890b851b297c1519dfe8a035c9f34537bfd010e6048a8a9bf2d5c7e2188ecfe66ec140b46281809be28196903214216ceea8d6757eac32e6fc1751bc75b061a815ba2949b70d1be0692f221ec0352311b87c1a5d65d467e33270c2719ac5c095343c9827b7c62da07e458bd3de3033a4efb9adcf24aa559d90e3742adc82785db088a3116d3049ec0581129d049b2034d95509836f2893d2ccc1a1f8da043bd88c28cf4e2f0fe103e3fe30c10670267039f5f2fd686a095b27dcf3d7ca83caf1af4c790839f75b27d739c38ebd990db6803cabdd9027a5f50ea4744392c97661c2370f23d7673ec88af63088c5a6fd99f3e03eac0300570505ba72c683432c4b7340aceb3c9c167f7a3b6ce8f2c2880c2c4df032e875f23aeb875222a57628b0445df564e1f5f85c7b5f8a9df9053d46ca823c303bca2166dfa869aeeab2ce336b5d84acb33addf4e381b0ccf00a4fe5d5146b6fe03282060f19344ad7c0cbd886f843b39010e6f539401a7397d6cbcfb9102068d3b03928237f0ab2dc0f15a3c4f8530a042c2c485156f196dc9945969c76c272fe5820392f00c8c8b10a261ecf233034fb03fc10d3ab0e3bfd567b6fc05f3b26e94b978036e502b8ab9cfef15ec8e5ee0bcb673be8d0d3233d96b543668220f1b427457950383d2d3abca46d95e35de0139b2afbafe5e5947676f51fa12dbf93adf47a3ca160309e6d3ac799591ff151d1d2c384d3dccda9f99aff4af1d963138446d1d541b4e0315814007690e82040695a623302aa469ef89cf5ccf22ab55a89dad2d9679008903eb13cf06286f6eed101e4f6c78a5363493e0e9873837c496205e9a384051af4f03738c95dee6f54cea63e59a3eb799b07987ef3e5dcf66f257b18595fbe635cfa3033f0766b6e96091ee85c17ae46a9142a717a03aa805238181dbaa0ec4594bb5fb0344dfe8a5d5224ee1e553e5e44ab0ba619b9f894acff4de62c3b1d009cd579fe9036c5d3069a6d47edf93d49b4bc1572048b3bc4f81a0d05e5d22189f4cc8dd68510346cfbcb5eed2b6f5f11ea47bade9d6de08dbe36f471ab4f5d1cadea09d53993603d04a029e5a2f8dce928469df80dd1d2ebeb4374636ddd0822993942a462b11cc0364af4b766cb489acbc67fbc0aac64f8c86a0cf6705a8bc7b827ea741e0b2afaa03ac0bacd95eca177b2f60b86d97c16e2ffdde1b7e5e8e8f799a549a2fe7e5f65f03edc9c9b909af3a3ee0c38bbe18bc94a923ccd966388c32a30234297109d1749a0304971c7849f9261b4e16ae47a80a3734b59ce0a7db8e04d8297c9b2b3a4c194a0353f4bf202e6bbcce7529d5db3af34c458bbd425c3f1324b4c9e21474b1eb0a140394fd7f1ef9cf40e3f7ee0a086018959d77c8920b6ed4c63a9658cb18bf07061305581e03dbab0e8632bca5074e01e50418dd9f351df27efa64236493e5ddd61320040105581e03157eb2ab240f161433ec89c81c022b6eef3321fe223a00200da121b8000c01472f159edf41100005581e0304d313da0079a5c8bffe2376abbaa83b32c65f87aa5981c93221a99cb0040103c922745fd8ca0d168ca067e3373656ec6dcd957435714d3f0e5086d50522e337038cb933c7ae97042adc795ebabeae6d5a0b408ae0a50c351ab89d9e29860b0cba05581e039a641b77617d8ad944b77397d27200cc607b830430c7735835d08d96700c02450165a0bc0004592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032032e2bc0c0ff22609eac8f10e1c8736f3e780dcb85055451e7ac674e2667ce4b570058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56304a092e7e8a5e5aeb49ccdb00582103e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af05403545a800ff6ff6eb5d4b290e35dd7c7e4935948005820026cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68854f2dfdbe1ea71bbdcb5a4662a16dbf5e487be3ebe00582002b661198733f53bb9b621ec808effd2e8a3d86db6962103738e13951e49aab049178143f19563a204910219014000582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b58205f2d03d6b0ebf3b6dce5606e8d83e5760930f25367e3af47581b64e0032ff86a005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a84e3d8efd0eaa0be5bd8ffc1f1d533402184400582103f6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c704101005821031f25289b5c9db29d46c3566463f71796d2e07c9a7a96a888214082f19288cd004a0916fd466cc587a7c46200582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5d1b0000002934c47be6795eb155868700000000000255fde3b1163d952a0058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f54c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20218480219f44505581d02a25b073839a616523a03abd4601fd058683f41a1f63215fbde91c2640701192c1d05581d0254ad1bcb260fc4e2db75290d6b0ac9b54a8d86844bd3867660395f93040105581d02015980891097378ddb8b5cc1dea634a7d65738791da32e0e428895700c03473167fd9574e8430219190003ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e03df31574b5ddf19c5b5d4d6cb204a3226588061f2df39afd813c6f0bc8007011bffffffffffffffff05581e03e4e33ebb516326c71ae9bbf5d4f6735b4762c3367df18b7c3e9ef206f0040205581e03dc6349e2b90fd89fa751602fb27eb85cf3b3b6fbef713f3dd6c6e24800040205581e038e555922e288549aa251281ab52f5059e92fa9a0eb8be27ff2c36a1890040203a79d6426de9197ceb37feb1336d2de19b02780d10719d2096f68a7e7dde53f7c0219fe6d03b601893a4aee4d42d6d654c3f3689b7ca84f1f1c5534dba3a98e1f21bec637bb0219ffff03207842abf80ab3e6b578db749bd6574038f7e0637f4954a7ae3df42f42ce21640344cc8f00744644e811571275d4b453719b18dcf1a93c3986b3a124362ba682a803b26e4a5cd7df18be66758b7aabfc77e281e2e3b697de6c4524c0959f4a01a826031658e4c5ef62b8e90df4a6c20806cd9a92428da45bebef63ebf8ec18016b6a3603b9c220d5ab5335fa01e490cc1ea6a83087af3d8fc57235380be310ef9833ce680375a8c42098a781d9c9fef02617d7830098836d226e5ab84769e652435bb5b5e803447eff4ec91f2e2f6d507173fff55f5911dc320cb942048dd531b7dfc0cfec9b03601bdb8ccc6cacdceb8625b065a648b41f30088e170ad1620968fa0ef33e9d6a03d3e8e67a4d3ae03cf3e09fa965eb92419c79494c6aaac04bd4bf34a0fcddab640386f92d1e34422f49ac1248c553b1a3b2571b3d6f5eb19b701d751caa01ba192c0219ffff03190ec1731e9928ed3a70503c8027cb1fe30443cadd098855d0d6869f9f51aaf803c921c77e341d3a459f7c12a0270c7b948e3341eb6e469a2df120e8bc3eb5b6f403e336eedbf58acdf6aa3da3e4b3259bb895e162cc609003def5140aab68388aaf03e53dcae2e0efa570f72bfa0d029d1caeea3b62372cc877cff30294001a9980170219ffff03615bd009743f1d8af12599c896985f50f002b59b6bc5cebba1492141017e2e9803b0be17a98907704f5e8149cbc9af7aa956548dd9e43f5b831a156005caa0ff380219ffff03246a5d88dd042c27bee80ff0a1a93775b6f9098718343d4b54a8c35ef2b08170032801ee9d2cd49a7548aea100404faf6f5d8b5f429721a8871945f2f40c9088c3033dd541f82400f97a186bb41e3b3a7ba247fbabcd5f53cb3596e50681feb618d803e93100f353043c22a14dfda58d6ea2f507d0557d74f61b004471d630203e8807037b3a814ea5318da42d6f0b80b3a11ab22cce2a2facdcbb0bf5f1ba91e475134c03c5644350a049fa0959dc4c0303d9970832725c78101406588159a8565b5e566a03264429c3c888117a752c699fb7b9070fb56e07997f2b764e5b1c73cbb7697d820356e7a45d322668c34f63f6ce56c90ca15584ddc4a463302b2b0d1affc83092e2034f5d81fc2c81e0bd4e6d75c4e3747f1b24f0d19f6922ff544abec680b251c63b038797bb1189d6c4ac6a299c1071f8c314c4e8e3da55716da64b48d35db26fbc57034a42b60f8eb5ec09309bd4377a050b425b62ce54a29169224badfb95095c94380387ab45977c67152d3304b61787b295dc305cf8c7da224a628508aeb1cd72549903eee717f1bb2914e6b46b47a324d425fb38fa6ad2e5bda430cb11a7cb91d7096e03fead7ee896ef42f660b0f640cb570e70b388d780140a2c80a1f751d09d7d5b1703d53bac3d62e60691d2bf2adf3f46220435cd78a9100de53eaa4482224ded2eb903550e4625aef8b17d011598199ab5686bcd7c844ed61e7134f9f48e7c27c9134b030c7a360ba4fe4754380df8e5026ee09101936da1b1284859db49789daae95a050333db601d1f7ad55cc7c76033a7234287b6097288808d213a23f7e9ed7774f89903a011882703aa8f9c89b161f5656b7df73134be78905baf2a52425e61fd31cd33031098e562ace19f8e4cbd3f209181e5b63e1bac8ec138038bfe262746370a9c9303789462165944cb2957dc858e70edb1a2e6c69df17907a0afce45b4f381706c5003668f71402e87cf23f9f981b5b29b671bd39ea5217cf5119f2fc4b796f046e2d4030c15355cae9cea7d681cc52bc1204226f0ad6392ddbbb327ab9b1261e534465f03e02191916788f1af23d193cd6216141781e648ee3af69bf747a9a29013ae561f03e2d3ca4657d1ba087f0d185a6d908ec4b90bb3498314616b77d688353be20967038df070fa1756a93ea629a883f1d2bacf82f782ac8a9f96cf754f25f8ffd369ae0375e3ee8f84f0f859b102c259e24fceb898faedcb5f856e01b8e2cf3478c7904703dec9309ba4f077db088ce757e438d5bc17debbd69106920e5f92a911cea252e4035efd45846fadf94a0acc21bdccfcc937ef4289f3a6ca855aeaa7f2f26e027dd8031fcaafed30f3eadb877a7cceb1227c7bde80e3b12a70c685125cdf8be285772d03ed8f50529515a3a2df26b5f603bbbf6c2c2934113207c4565962fd91d41fe9930362c2e23d2de5c8d68935d5edc66fe52a6f51efccbd13842523931b2daee61f9905581e03a7982f22d7b5b0e2239e50dbe5842eca5162d7b236276a00ee90db15600c024802f5f41c9d2054d005581e03e9ecd8b9d0208a67eb926530f90867431d534a40e0f5da5d081ce0b3c0084724d9e8ae60011803ddd3bbc03e4b6ae9eee2d30c9d4015eab72e1a35c766c83636264325f1bc661605581e03738597bcfec76bb2be74dff321f536b077f037bdae90551b49d5114a80040105581e0305b61bb0778cf7532ba95e5d5ae85755e6fda2e726a428984995fa839004050313073ed81362738acbe613957c0f3614cea014873c934ae7a715c842f7ea012805581e03f66172b016fc10357938876aed169dadba394fc11aefad625875e50f00040205581e03134d2a0301e1e58d1200116a7c6264f9014875f6235bc094e003c42aa0040105581e035e4e9f9538f1876ae2be0f4764bc079be4f9b094fa93c362a9bda8cae0040c02199afb03824e736537a9d8c2d0cba2c1db72777aabbcbd78c1c55aceca5b5356ab6f0f7b03a4ff1d0592147ba71b7f2b25338c986146564bd052501f80e0da952484187d1e03cdc25e8c74585c21c3e2ba938395f47d40014a4c43a655d3a94204d1f60e6e1b0300dfd4b5e028ae4f5620da31a4525fea7463d4a1bd94b065ec8417705c07c22003202a0d6125639945a81edb3a1b62ea3fc7fa53de2d45134fcb2c2d554f429ff90390b2aae01b105990c43d8c8b84cab774510637633bb012ec3b7bfd0c42d9101503c866118e924f6099f721bff5f974e38a2867357df33ceb86cadd3493ea64160b0219ffff03c75c03c6d70eb72affd45635e3e7db23aec7c017d774c677fb4405e5e0d48a070362369fa660d2063f4b90c126b1855ef183a1c2af23b2ae503bf9599ca7aeef9a03c7ffc290f3fb9ca0d4e1b7c2a8aff173ffca708745895619d2bec9fd17779a2603dc7072da54d1ebe2d029e1cd1ff08aff49598b7a9d79a6f7770feeb8c28954b903e21e1937c97e5b6d6eae58f99de8a35f570d527b47e7ac0eb78558907d9bf6fc03bd60684b2afcc376019d547fa0818168e1b20ffe7394463f319bc08ae2c7926903a75a535cfaa88483d5e08ac3ef2137e4655484dc6815f914ad1881f57c6688e503abb4176bfbce2afa046088990861f8fe5d27092d03dc7ca35f627bd3db8dfb470219ffff0312c6a9d94e6b5d51101d9b82465ea4f61eedef17d6b60b43fd5588d5189e3c19038e69f41b2be687ac4913261c1a5b1f41350123d96b3c0de42de6b2e27849ce12033c73552de4c89a3fd75b71296dad0f612c7419f582a82e695116cbb37bcb36dd03e105ced51103c5af1f017dce9bd59ac7224c8fb0f9d60665089c90d22b8d16650219ffff03c58b43548d6c6932e802fe6848bdb110abab8e1ca36140e2b959a4eaa653146003e9575ab2b72ca1b00417a998caeaae493fdb849c9ace1c841d238650630e4d000387fab9f378aa8fd518852477a761dc09005d3978a5dcca8168bf8196e42bb7d0038af8e6361b74727b70d0619dcc87be2d2e496e649fd05cb652c94ada88fbaa3203a2614c9b543147f6abc41bbe273da39417777843e6bae5df10a548ce05ba6f91030e0be977e8435f10d3b5cff0358843c862280bbcc8741c972c143deccae401a9035f5b0e3792f87f84860b32656e704c6d30b8f259b2cdf729a4ba818e16714482030a5d28ff13a95ec504a1a10ae018e77e0c135b5a24552261a1567b65d91c888a034ccd38c309addcd97fc51b2de0b8fc51b19134c81b7efd4da15482283345733c034878458f7422ad61868df0a944837fabdf0baba0bfc7d8a6c8b565cefaa1677c03f4d1e39641be14eb0eb5e057cd6b2f41335590ba58a6091855faed5025c9a66f0219ffff0311507b6dd21de3dd3dbc1db1020d5d2e6a352899e0f6f2026e4546e234cf224203006886cbc15f7a3c914de5698f9196e695c53b67501220115c7213ad9505fb05037fc2476948ac98b8cc1b5a739a1c0e5a56c5e3c716bbee40112c8d634b93576c03beecda67a6891749a193c8dadcbd78dc0c7ba761d3c729c35e36d504c25b534c03b1b82c8581c96b0ea841e6b260165aa7e98b94eed811f9f08e60a5fc87d4e877034fc38795c10f3217f6748456d20285ee936fcb1b69294890e86f53a8680d0f0003129490daefc38ec872cfd728b3440f3d69309e0bca49511e038de2b0de27cfb203436d9c7062199c790040663c87ec660f6a387073889edb698161d3c697205c730371a759e502f808b17002ce1cbc3eaa4fc2de2bed7c093321e33834f9ca2cc65a039828aeca0743dcaeb565929ab8c35ba06655937bc990e2228b045b72b4a2f79e03ad33a0b466864bb54c7bdabf490e6c948ed6a8c02c777b222a4b6a2fb3f19cb903d16c2f34463308862cdbf5279835c28c927c51a02105815be9b5353c967c230c034133523389a54364aeb4e81efbdfb0949da788a65c6b07344e102f92f8d374ad03cb9e640cc256de09ddd63e1b9064d324500c09c659383ef1d9cb8370a366224203ce2a495d6c8b34570b84f253b8b61aa8d84a17ebf22df31add4403c5010fafeb0379d1446665a238deab78bc290970e609b81ffec28f59ea62dee08f19d8b2e3dd039ad63bbc3b4649b32af6289b6ad482415c85377cde3ca2fadb0d454b16a8a511037dadcac400e1a0ce36878352644e461526cd6833b0afb68c84d5844ce318b95405581e032d914a5fcca3863543995cd1b3ad6f396f08d9ac9c35561778ddd960100c01470b7c7ce6d3b1da03efb1a2cc4899502ddc156992ed32d0e27b9bba358e9fee1bceb01b7ccb3ea6e603f383aba516d4d41c56283173ee7845906142241953b90a8c2afb23b8695eb2b1037822f88737b657deacec38041fbb82ee5c5f087f6b2ac4c98e19dd524d84610b05581e03d15e781c6576e96d7d2a641bdd1e1771a3ffe719063120e9c5cc1025d00c01461321207e5a00035797366626e1a830d3f7cab823bc48f1b69d3e8ecd2f37b625af8773bc2c2c4e05581e031fa80f22e68a9fb3606f9ff3e03cf41f119d7cfad25d6ffacfe30c8790040305581e030d32f175ebfa5085480b5b6cebfa83602ae619b4c3611b0512d0174d700c0147081e3d5618f60004591c4a6080604052600436106101dc5760003560e01c80636c0a24eb11610102578063a9059cbb11610095578063cc7494d311610064578063cc7494d314610558578063dd62ed3e14610578578063e6b0ed02146105be578063f8492b1a146105de57600080fd5b8063a9059cbb146104ed578063b7d307bf1461050d578063bf474bed1461052d578063c9567bf91461054357600080fd5b8063768dc710116100d1578063768dc7101461045c5780637d1db4a51461048c5780638da5cb5b146104a257806395d89b41146104c057600080fd5b80636c0a24eb146103db5780636f268a99146103f157806370a0823114610411578063715018a61461044757600080fd5b80631f57414f1161017a57806349bd5a5e1161014957806349bd5a5e1461037157806351bc3c85146103915780635705ae43146103a65780635ef46022146103c657600080fd5b80631f57414f146102fe57806323b872dd1461031f5780632e0882141461033f578063313ce5671461035557600080fd5b80630faee56f116101b65780630faee56f1461028457806314228b0b1461029a57806317198564146102b157806318160ddd146102e957600080fd5b806306fdde03146101e8578063095ea7b3146102305780630e23500e1461026057600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b5060408051808201909152600d81526c141a595c88141c9bdd1bd8dbdb609a1b60208201525b6040516102279190611810565b60405180910390f35b34801561023c57600080fd5b5061025061024b366004611876565b6105fe565b6040519015158152602001610227565b34801561026c57600080fd5b50610276600c5481565b604051908152602001610227565b34801561029057600080fd5b5061027660025481565b3480156102a657600080fd5b506102af610615565b005b3480156102bd57600080fd5b50600a546102d1906001600160a01b031681565b6040516001600160a01b039091168152602001610227565b3480156102f557600080fd5b50610276610669565b34801561030a57600080fd5b50600e5461025090600160b81b900460ff1681565b34801561032b57600080fd5b5061025061033a3660046118a2565b610689565b34801561034b57600080fd5b50610276600b5481565b34801561036157600080fd5b5060405160128152602001610227565b34801561037d57600080fd5b50600e546102d1906001600160a01b031681565b34801561039d57600080fd5b506102af6106f2565b3480156103b257600080fd5b506102af6103c1366004611876565b61078b565b3480156103d257600080fd5b506102af6108c9565b3480156103e757600080fd5b5061027660045481565b3480156103fd57600080fd5b506009546102d1906001600160a01b031681565b34801561041d57600080fd5b5061027661042c3660046118e3565b6001600160a01b031660009081526005602052604090205490565b34801561045357600080fd5b506102af610950565b34801561046857600080fd5b506102506104773660046118e3565b60076020526000908152604090205460ff1681565b34801561049857600080fd5b5061027660035481565b3480156104ae57600080fd5b506000546001600160a01b03166102d1565b3480156104cc57600080fd5b506040805180820190915260048152632834b2b960e11b602082015261021a565b3480156104f957600080fd5b50610250610508366004611876565b6109c4565b34801561051957600080fd5b506102af610528366004611900565b6109d1565b34801561053957600080fd5b5061027660015481565b34801561054f57600080fd5b506102af610a9b565b34801561056457600080fd5b506102af6105733660046118e3565b610b3c565b34801561058457600080fd5b50610276610593366004611919565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156105ca57600080fd5b506102af6105d9366004611919565b610c0b565b3480156105ea57600080fd5b506102af6105f93660046118e3565b610c9f565b600061060b338484610cf2565b5060015b92915050565b6000546001600160a01b031633146106485760405162461bcd60e51b815260040161063f90611952565b60405180910390fd5b600e805460ff60b81b198116600160b81b9182900460ff1615909102179055565b60006106776012600a611a81565b6106849062989680611a90565b905090565b6000610696848484610e16565b6106e884336106e385604051806060016040528060288152602001611bed602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906113b6565b610cf2565b5060019392505050565b6000546001600160a01b031633148061071e57506009546001600160a01b0316336001600160a01b0316145b8061073c5750600a546001600160a01b0316336001600160a01b0316145b6107585760405162461bcd60e51b815260040161063f90611aa7565b30600090815260056020526040902054801561077757610777816113f0565b4780156107875761078781611585565b5050565b6000546001600160a01b03163314806107b757506009546001600160a01b0316336001600160a01b0316145b806107d55750600a546001600160a01b0316336001600160a01b0316145b6107f15760405162461bcd60e51b815260040161063f90611aa7565b6001600160a01b038216610853576040516000908190339084908381818185875af1925050503d8060008114610843576040519150601f19603f3d011682016040523d82523d6000602084013e610848565b606091505b506107879350505050565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156108a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c49190611ade565b505050565b6000546001600160a01b03163314806108f557506009546001600160a01b0316336001600160a01b0316145b806109135750600a546001600160a01b0316336001600160a01b0316145b61092f5760405162461bcd60e51b815260040161063f90611aa7565b600e805460ff60b01b198116600160b01b9182900460ff1615909102179055565b6000546001600160a01b0316331461097a5760405162461bcd60e51b815260040161063f90611952565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061060b338484610e16565b6000546001600160a01b031633146109fb5760405162461bcd60e51b815260040161063f90611952565b6032811115610a5a5760405162461bcd60e51b815260206004820152602560248201527f546178206d757374206265206c657373207468616e206f7220657175616c20746044820152646f2035302560d81b606482015260840161063f565b600b5460408051918252602082018390527f4ac0d6b0d694ec6c120242feaca94cfb6fbfe646756cd7026301e3a5984f0450910160405180910390a1600b55565b6000546001600160a01b03163314610ac55760405162461bcd60e51b815260040161063f90611952565b600e54600160a01b900460ff1615610b1f5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161063f565b600e805462ff00ff60a01b19166201000160a01b17905543600c55565b6000546001600160a01b0316331480610b6857506009546001600160a01b0316336001600160a01b0316145b80610b865750600a546001600160a01b0316336001600160a01b0316145b610ba25760405162461bcd60e51b815260040161063f90611aa7565b6001600160a01b038116600081815260086020908152604091829020805460ff8082161560ff1990921682179092558351948552161515908301527f2238b752bde5f0cb64dbc11c545edec44c801a7a4898bcb6bccb834964d13a6e910160405180910390a150565b6000546001600160a01b0316331480610c3757506009546001600160a01b0316336001600160a01b0316145b80610c555750600a546001600160a01b0316336001600160a01b0316145b610c715760405162461bcd60e51b815260040161063f90611aa7565b600980546001600160a01b039384166001600160a01b031991821617909155600a8054929093169116179055565b6000546001600160a01b03163314610cc95760405162461bcd60e51b815260040161063f90611952565b6001600160a01b03166000908152600760205260409020805460ff19811660ff90911615179055565b6001600160a01b038316610d545760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161063f565b6001600160a01b038216610db55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161063f565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e7a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161063f565b6001600160a01b038216610edc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161063f565b60008111610f3e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161063f565b600080546001600160a01b03858116911614801590610f6b57506000546001600160a01b03848116911614155b1561122b57600e54600160a01b900460ff16610fc95760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f7420656e61626c6564000000604482015260640161063f565b6001600160a01b03841660009081526008602052604090205460ff16801561100a57506001600160a01b03831660009081526007602052604090205460ff16155b801561101f5750600e54600160b81b900460ff165b1561110e576003548211156110865760405162461bcd60e51b815260206004820152602760248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152661e105b5bdd5b9d60ca1b606482015260840161063f565b6004546001600160a01b0384166000908152600560205260409020546110ac9084611614565b111561110e5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526a185b1b195d105b5bdd5b9d60aa1b606482015260840161063f565b6001600160a01b03831660009081526008602052604090205460ff16801561113f57506001600160a01b0384163014155b1561116857611161606461115b61115461167a565b85906116c7565b90611749565b905061119c565b6001600160a01b03841660009081526008602052604090205460ff161561119c57611199606461115b61115461167a565b90505b30600090815260056020526040902054600e54600160a81b900460ff161580156111d35750600e546001600160a01b038581169116145b80156111e85750600e54600160b01b900460ff165b80156111f5575060015481115b15611229576112176112128461120d8460025461178b565b61178b565b6113f0565b4780156112275761122747611585565b505b505b6001600160a01b03841660009081526007602052604090205460ff168061126a57506001600160a01b03831660009081526007602052604090205460ff165b15611273575060005b80156112ed57306000908152600560205260409020546112939082611614565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112e49085815260200190565b60405180910390a35b6001600160a01b03841660009081526005602052604090205461131090836117a0565b6001600160a01b03851660009081526005602052604090205561135561133683836117a0565b6001600160a01b03851660009081526005602052604090205490611614565b6001600160a01b0380851660008181526005602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61139f85856117a0565b60405190815260200160405180910390a350505050565b600081848411156113da5760405162461bcd60e51b815260040161063f9190611810565b5060006113e78486611b00565b95945050505050565b600e805460ff60a81b1916600160a81b1790819055600160a01b900460ff161580611419575080155b61157557604080516002808252606082018352600092602083019080368337019050509050308160008151811061145257611452611b13565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cf9190611b29565b816001815181106114e2576114e2611b13565b6001600160a01b039283166020918202929092010152600d546115089130911684610cf2565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611541908590600090869030904290600401611b46565b600060405180830381600087803b15801561155b57600080fd5b505af115801561156f573d6000803e3d6000fd5b50505050505b50600e805460ff60a81b19169055565b6009546001600160a01b03166108fc6115a4606461115b85603c6116c7565b6040518115909202916000818181858888f193505050501580156115cc573d6000803e3d6000fd5b50600a546001600160a01b03166108fc6115ec606461115b8560286116c7565b6040518115909202916000818181858888f19350505050158015610787573d6000803e3d6000fd5b6000806116218385611bb7565b9050838110156116735760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161063f565b9392505050565b6000600b5460001461168d5750600b5490565b6005600c544361169d9190611b00565b116116a85750601990565b600c80546116b69043611b00565b116116c15750600c90565b50600290565b6000826000036116d95750600061060f565b60006116e58385611a90565b9050826116f28583611bca565b146116735760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161063f565b600061167383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117e2565b600081831161179a5782611673565b50919050565b600061167383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113b6565b600081836118035760405162461bcd60e51b815260040161063f9190611810565b5060006113e78486611bca565b600060208083528351808285015260005b8181101561183d57858101830151858201604001528201611821565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461187357600080fd5b50565b6000806040838503121561188957600080fd5b82356118948161185e565b946020939093013593505050565b6000806000606084860312156118b757600080fd5b83356118c28161185e565b925060208401356118d28161185e565b929592945050506040919091013590565b6000602082840312156118f557600080fd5b81356116738161185e565b60006020828403121561191257600080fd5b5035919050565b6000806040838503121561192c57600080fd5b82356119378161185e565b915060208301356119478161185e565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156119d85781600019048211156119be576119be611987565b808516156119cb57918102915b93841c93908002906119a2565b509250929050565b6000826119ef5750600161060f565b816119fc5750600061060f565b8160018114611a125760028114611a1c57611a38565b600191505061060f565b60ff841115611a2d57611a2d611987565b50506001821b61060f565b5060208310610133831016604e8410600b8410161715611a5b575081810a61060f565b611a65838361199d565b8060001904821115611a7957611a79611987565b029392505050565b600061167360ff8416836119e0565b808202811582820484141761060f5761060f611987565b60208082526019908201527f6f6e6c79206f776e6572206f72207461782077616c6c65747300000000000000604082015260600190565b600060208284031215611af057600080fd5b8151801515811461167357600080fd5b8181038181111561060f5761060f611987565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b3b57600080fd5b81516116738161185e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b965784516001600160a01b031683529383019391830191600101611b71565b50506001600160a01b03969096166060850152505050608001529392505050565b8082018082111561060f5761060f611987565b600082611be757634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202ac5c9a71a0ad6b8f3aebe3a752bb7bc76ad69ccbceaabf3ddd0329354f62e5464736f6c6343000813003303ab549974e3352a5a1df08a69f70dcd57a94ba976a0224d7214fa2613bf3862230321ccacdb60c0b4ae8235b61bb9692f2a36fa97425a4c2e1217061ffdf9098771038039f332712bd4f2c3b0471c2cdb3d36f36f4254b2fd35b2c61349d5e812ac1103f8484006084c1c2ddd9cbb262251b106cce72315c282a229482ff7c71dd090040381bfbf09ca34894454e6fe7d0bfbab94d1adaf44f2768501db263cc1d0bf2745031cafcd2329829dfbdb74fdac4b99e8959676643f83ec44ab2b62006307e9520703f6941848d9c6e1fc6e328c827a4972ed72fa223f4a1f417a2bc17d473d8aef530354c267d8550272024c74a425fe26ebce7a9736103531e8d1c022a4510f46aa94031a4e14ef8c86333d6facc2312109960add471fb5d7cd365d19d0220a3c1a36a403ee3a41fde04ecc1bb5e662311a2c720581f8bf5494df1f508e9dd4d1602f5ce2005820024aad02072c1ce2a119b7ef0246a82adaaf0c0a1dfa6e061ee1b028ce4e42b049519737667abd882fef03493918e1a25dc531a7c9d8af21043c42d5910a80db60c9ae628f3cbec5bd2eb803e3893ba7e052d7a28d34a863d4d67b8189b9a9a8d5762d2bd7afe844d57ff0980386f6b5686b7bf35da23ffbb040608d2cae6edbeda813b608dc72cee15daa4c49032806310f21a529b13a18eb5bd99ebc6f98d2961f2186a43772c94882f518301a0340339451e8ab45cef13a5c8b88004278cf02fabe7157074ba12c488a20c902130376570507143546db113308779bbbc74cd69f763e614d318c01b6df8bc0ae2c9803c9c20706b423535ee00e48141e1f14e1a3ba7e74ae997cd3a6cbff9b515ea62e0396a36123dc00fd58dc30c6d6899d24921929e16e0e13a1c10fb249b4f825fb3400582003221410d0ae262ad93221ba1af3354afe0fb97434611a1d6f1bb1d95c206d305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff037dec54133c211ee32dddddb46110be78732951c363227f981a4311c16ecdf68e00582003cde0714055adb70d0cbe9fa246f072167633745851d9b9fb922fe9656e2ef0494271b03c133fa71b3900582003e0cf097529d538e4526577b073e5e43e2d096bd6a07c9a49293a83c54ad9905820ffffffffffffffffffffffffffffffffffffffffffffffe0329a76289e23634200582003aaef39bbad0446583ed2dc5086826a0661dbfa583bae5242abdb7841203da04a03da64686ad2a96146df021901e403e9c67a252eea3898dfb3aaba71277398525f05f851b14b880d6065a297bd0c2b031661b3efe636a69bb0f7ba4e2073fd79e517e8547cf7851a3292c1f403b9746b0353b96e9ea34f935ad4290942932b191443c814bf493702d3e38445c91436d58f03588136a0d94f1218160287952a4753bc458ffd4d94279bab6bdf0712089e55ba0313919c24e8be884af27d0a6f70f2e816e0d91c37486d8f4dad62de5247101d230219ffff038aea268b3795074715671a666ae1e4b4b4b51fcf50ee95007b6fd7afb99d671c03e1202446922c607e69c955de1a8e3caabab222a2061617f9d6356ba6ff6420fa03ab5eebb23ae5e11266a0bc5cc2434671a8e0ad5f184d131a448cf31f2ce17fd10328267bd0aad4a83c48378e4c0108696b4b259ac2e59d15bd97effd6b4d84d2460375309cee6fed0125113407e19b6eb0517a113d9aa19c71b230dfe4a473c9229803a10db4b456fb4a8e63d556f96efaf4fc8ee07faad2a6a71ac488dec6d496844a0219ffff05581d022de527d67829e9ac5355f0e70d5a9a3698ca1d50c70a088de06795890f014101191c4a05581d02ad8e328c0470d001452433ee2be93b28460410cec1bc35c49c6df1010c0447377de1b1c720ff02120219bc8e03e0b5a8f8663badf2fa21ea63b268d9607d308d4b27d373cc3c0bce020f4b8f5b0359cc7e44f128590c80484a105d212b688b95161381d221b6046da1d3e5a3168803a1bd232c400c822f9404d2377d4566735f2b3efd97dc6e2f03e4015a46695b1a03814701f46729cbfb4e4b7bea299b5716f3a247dbd212288435e39a3ac35caf940351dfbd95eb79df803469ff15a7919f92120293e5911f7845115573a467fcc0fa036d414a3a5036812b431a59ed5136ae8ada1f16a915cf0ab8d26967dddb8ebd2d038d54a4d334ff155c5c77148a4e6ee59e90d81d31a4774e877f2295f0737c65880219ffff0372164595690ec0ce723999539e0ffe6403cbbaab095cb540e95dce78539751e50326fcba399bdd45a9cfd045ffdc03d7c744e108f1bd86c653382e69f115deae1b03a72e0e8a2489e9afb20d0a5fe6d8d6bad3477b3636ed6def46e281b91eaa6553035172db9f5c783379f87456de4f47a05944e5c640dbef8da127152a8022db17a203b2cad2595ef39c98da1dc7b5101beae36fae95d377aecd74e3e1b78aae49cd0a038e2f54d77f4cc2f054dfdf5923a5a087635fd648bb34b97d8aa73c60d8cee02903b515f5218d8e8c0484a69def9380ed8e50b2a8118369f6c92d8854033d6be5220378342b3f6dffbe87ebe971a818498b9eb32474812b43a669927b7481c97a0eed034524a1f0056975384421dd90cbdcc8042c5be57e1b84053a2c0a60f87a2044fa03bc195ba6a005e689cf87d092ecf7128230868bd57210c26042cb4d848fe6d8f303e353f3bd528be39bee9542ab6af06926165274a4206e6db61d679631640f870c03347109378944698f6f46c94e18657904112920a2c45c4b5ff9f904118781ad330354a31161b71439f2b832863ebd157d53edd16eed7bb57911ad3e8e4822c42e320219ffff03ab832be7cde607bc8cf216c8ea7c2c72fd176ab49e9b4c9fe5c2ce5f4959a3f603bb5738f0e5c848f7d23e69efb7a8e9df8aaf55b6e349bb2ca18d42f29cb7087303c1d08b27d0d92fac42a57cdd947045497a001a334bfd514d9939a060994dc18303deff80e9f0019b05c2785a4f83f56b803c30fd40efe4709e002a98817444b8aa03f888db21f903b0dff01ada2ee3cc07af34445e30444b6b4f2e521f92a4eee17f03c72d0fbca9c13b977616ff96c1ab6fc5e3811ea3c4e08e2e872439fb345e090803b2de6a400d03a4fdf4c3675173012fd75bce355efa378472f555941e5755c0cc035c70927a5f20744578a619f59f28b6d85c10f22db85ea7f7d1f82c3009814fc303fb0cee5e4cc37972a4e16179c1d5bca909bd7654746cfce5b6dc32fb0e5786bc0219ffff0316493ef4b66bab57f1da3d5cbb69e03c70475ac2a174db309e006d6bce4036fb0394a972419f8df16f98afb638ee988d259c8a4bf6b9dc3530be7c89678fa331c10376285ba70a2da52603e4d22dc1c9e6a6ac3d6f7e6a4458ec2e4eeaed229487a103a119ec6df3887d59b5ec5bc28595889895e2d584093ccb25ba3903da2fcd9be703905dceeb93f5204a3717d7f45a209f7d152b49780370a28df02a75ca56630767038f92907da5174cce02c3b69f36abb5915a978adccda1733c5edff0fb3879edec03da6412f8227c72e47005512512ab94941f85f0526dcabe2107458779ce662862031dd3eb287c879fcb9b4fd9d8a19e4314df8b380e34461a07836016d373417c9a03b69a01bf64ffd66efc1a38ee36a730b8b33cd39b0970fbecce903d3015b645c7035d24b23d81669951f70ad0ce699edf307e7ae923617a2ebae90aaa65da16dad003c669f91f5918c602a3ec9340cc26b04922952a26eddaf80ebe0e235a959fc755033656f36ac064b47d564bc300ccf289fcb8bcf1d8962ce06064e593d52c8056a50335626cf4b70f362bb577184e469f8d27906be289de67c54aec0a7fa948b462a2036d88f9fc3ff7313412b7cf5e331864eb3cfd8cef317c1f1ab5530c7c873a2c880393673601f9c81072a68a7e3577be88ff6acd033f3af3442be127abb0d0faac5503405071ddbf98dbfe6445283f2a8bfbf8a7e703f469d9d734aa1b88ce76e65a36033d67f41ed2c86afb31b96bd1fb68137aca158a9fa4a98f1a63e75bd1b76379310361462575dd81f8761fa82eb64ee96abdbd60892ea69871f6d6b0ac89438a78bc03194ca4f10205f7f043922c7bf6d575580f22b3f763a721e72d1f8881dae4135603f2819e766a67993def8a19156ba318c1d72b70dc6d885992a3856acf5c007451030652cb9222d89f03308b3f3a896c195a3de149bf1ab586d7b148d9d25092b6aa0335aed7ae1ede5a39a9556edcf2996be6c15d27059827081ee96e18b672ae4db203324ea83662964b44b7f755a87e11cc1e23402f5c4f0a5816096794cbed92866803a052e96b3046152f42564813c5fa81ce9bde94d65ee1f2fd71f6f23eb6b40f5903c41d1450ebd7afbb71be02506c56b94c7927173b5a14f190018d70fbc713d76b03100796232e020008b987cd8ecb190934ace0a9dcddd6af4e1feda9ccb43261e30356888ff5a9f0355111466d288f6c96335bdc522d673e7a44be88e401dced4861038466cac4527be6a1168dc80b69a18dadc264ff463d98665c40a46365025a865105581e03fc2c953e69cce9cbfdb0e312da9faf6d7073f322f945f34efe300db1c00c09469a94151c180005581e03a8ada17360af169e69c4e10b44632a94c9a8a3bb665bef316d137874000c01470711393c5d580805581e0324c3292eaa3ebe6887c4ada06b75f4654127808334ade49d5ec4cc652008480293078a3f3a78000306312425a007cda585740355f52db74d0ae43c21d562c599112546e3ffe22f0105581e03435e47e60c880a4651a803b52fbe8dc2ed3a8e2d057b36d3373737f6d00c0346a7c7a55f8c6804595f406080604052600436106102895760003560e01c80636352211e11610153578063ac9650d8116100cb578063d34879971161007f578063e985e9c511610064578063e985e9c5146106f5578063f3995c6714610715578063fc6f7865146107285761030d565b8063d3487997146106c2578063df2ab5bb146106e25761030d565b8063c2e3140a116100b0578063c2e3140a1461067a578063c45a01551461068d578063c87b56dd146106a25761030d565b8063ac9650d81461063a578063b88d4fde1461065a5761030d565b8063883164561161012257806399fbab881161010757806399fbab88146105cf578063a22cb46514610607578063a4a78f0c146106275761030d565b8063883164561461059757806395d89b41146105ba5761030d565b80636352211e1461052f5780636c0360eb1461054f57806370a08231146105645780637ac2ff7b146105845761030d565b806323b872dd1161020157806342966c68116101b557806349404b7c1161019a57806349404b7c146104e75780634aa4a4fc146104fa5780634f6ccce71461050f5761030d565b806342966c68146104c15780634659a494146104d45761030d565b806330adf81f116101e657806330adf81f146104775780633644e5151461048c57806342842e0e146104a15761030d565b806323b872dd146104375780632f745c59146104575761030d565b80630c49ccbe1161025857806313ead5621161023d57806313ead562146103e057806318160ddd146103f3578063219f5d17146104155761030d565b80630c49ccbe146103b757806312210e8a146103d85761030d565b806301ffc9a71461031257806306fdde0314610348578063081812fc1461036a578063095ea7b3146103975761030d565b3661030d57336001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2161461030b576040805162461bcd60e51b815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b34801561031e57600080fd5b5061033261032d3660046153a6565b61073b565b60405161033f919061591e565b60405180910390f35b34801561035457600080fd5b5061035d610776565b60405161033f9190615971565b34801561037657600080fd5b5061038a6103853660046156b8565b61080c565b60405161033f91906157e2565b3480156103a357600080fd5b5061030b6103b2366004615270565b610868565b6103ca6103c5366004615483565b61093e565b60405161033f929190615b42565b61030b610daa565b61038a6103ee366004615103565b610dbc565b3480156103ff57600080fd5b506104086110c9565b60405161033f9190615929565b610428610423366004615494565b6110da565b60405161033f93929190615afd565b34801561044357600080fd5b5061030b61045236600461515c565b611413565b34801561046357600080fd5b50610408610472366004615270565b61146a565b34801561048357600080fd5b50610408611495565b34801561049857600080fd5b506104086114b9565b3480156104ad57600080fd5b5061030b6104bc36600461515c565b611577565b61030b6104cf3660046156b8565b611592565b61030b6104e23660046152dc565b611661565b61030b6104f53660046156d0565b611714565b34801561050657600080fd5b5061038a611894565b34801561051b57600080fd5b5061040861052a3660046156b8565b6118b8565b34801561053b57600080fd5b5061038a61054a3660046156b8565b6118ce565b34801561055b57600080fd5b5061035d6118f6565b34801561057057600080fd5b5061040861057f3660046150af565b6118fb565b61030b6105923660046152dc565b611963565b6105aa6105a5366004615550565b611e0f565b60405161033f9493929190615b1e565b3480156105c657600080fd5b5061035d612370565b3480156105db57600080fd5b506105ef6105ea3660046156b8565b6123d1565b60405161033f9c9b9a99989796959493929190615b50565b34801561061357600080fd5b5061030b610622366004615243565b612600565b61030b6106353660046152dc565b612723565b61064d610648366004615337565b6127d5565b60405161033f91906158a0565b34801561066657600080fd5b5061030b61067536600461519c565b612915565b61030b6106883660046152dc565b612973565b34801561069957600080fd5b5061038a612a1b565b3480156106ae57600080fd5b5061035d6106bd3660046156b8565b612a3f565b3480156106ce57600080fd5b5061030b6106dd366004615717565b612b0e565b61030b6106f036600461529b565b612b8c565b34801561070157600080fd5b506103326107103660046150cb565b612c6f565b61030b6107233660046152dc565b612c9d565b6103ca61073636600461546c565b612d28565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526020819052604090205460ff165b919050565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108025780601f106107d757610100808354040283529160200191610802565b820191906000526020600020905b8154815290600101906020018083116107e557829003601f168201915b5050505050905090565b600061081782613246565b61083c5760405162461bcd60e51b8152600401610833906159bb565b60405180910390fd5b506000908152600c60205260409020546c0100000000000000000000000090046001600160a01b031690565b6000610873826118ce565b9050806001600160a01b0316836001600160a01b031614156108c65760405162461bcd60e51b8152600401808060200182810382526021815260200180615ee26021913960400191505060405180910390fd5b806001600160a01b03166108d8613253565b6001600160a01b031614806108f457506108f481610710613253565b61092f5760405162461bcd60e51b8152600401808060200182810382526038815260200180615e0c6038913960400191505060405180910390fd5b6109398383613257565b505050565b600080823561094d33826132db565b6109695760405162461bcd60e51b815260040161083390615984565b836080013580610977613377565b11156109ca576040805162461bcd60e51b815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b60006109dc6040870160208801615562565b6001600160801b0316116109ef57600080fd5b84356000908152600c602090815260409182902060018101549092600160801b9091046001600160801b031691610a2a918901908901615562565b6001600160801b0316816001600160801b03161015610a4857600080fd5b60018281015469ffffffffffffffffffff166000908152600b60209081526040808320815160608101835281546001600160a01b039081168252919095015490811692850192909252600160a01b90910462ffffff1690830152610acc7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9848361337b565b60018501549091506001600160a01b0382169063a34123a7906a01000000000000000000008104600290810b91600160681b9004900b610b1260408e0160208f01615562565b6040518463ffffffff1660e01b8152600401610b309392919061594b565b6040805180830381600087803b158015610b4957600080fd5b505af1158015610b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8191906156f4565b909850965060408901358810801590610b9e575088606001358710155b610bba5760405162461bcd60e51b815260040161083390615a18565b6001840154600090610bea9030906a01000000000000000000008104600290810b91600160681b9004900b613477565b9050600080836001600160a01b031663514ea4bf846040518263ffffffff1660e01b8152600401610c1b9190615929565b60a06040518083038186803b158015610c3357600080fd5b505afa158015610c47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6b91906155ac565b50509250925050610c9087600201548303876001600160801b0316600160801b6134d1565b6004880180546fffffffffffffffffffffffffffffffff198116928e016001600160801b039182160181169290921790556003880154610cda91908303908816600160801b6134d1565b6004880180546001600160801b03808216938e01600160801b9283900482160116029190911790556002870182905560038701819055610d2060408d0160208e01615562565b86038760010160106101000a8154816001600160801b0302191690836001600160801b031602179055508b600001357f26f6a048ee9138f2c0ce266f322cb99228e8d619ae2bff30c67f8dcf9d2377b48d6020016020810190610d839190615562565b8d8d604051610d9493929190615afd565b60405180910390a2505050505050505050915091565b4715610dba57610dba3347613580565b565b6000836001600160a01b0316856001600160a01b031610610ddc57600080fd5b7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9846001600160a01b0316631698ee828686866040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018262ffffff168152602001935050505060206040518083038186803b158015610e6757600080fd5b505afa158015610e7b573d6000803e3d6000fd5b505050506040513d6020811015610e9157600080fd5b505190506001600160a01b038116610fe0577f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9846001600160a01b031663a16712958686866040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018262ffffff1681526020019350505050602060405180830381600087803b158015610f3057600080fd5b505af1158015610f44573d6000803e3d6000fd5b505050506040513d6020811015610f5a57600080fd5b5051604080517ff637731d0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015291519293509083169163f637731d9160248082019260009290919082900301818387803b158015610fc357600080fd5b505af1158015610fd7573d6000803e3d6000fd5b505050506110c1565b6000816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561101b57600080fd5b505afa15801561102f573d6000803e3d6000fd5b505050506040513d60e081101561104557600080fd5b505190506001600160a01b0381166110bf57816001600160a01b031663f637731d846040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050505b505b949350505050565b60006110d56002613689565b905090565b60008060008360a00135806110ed613377565b1115611140576040805162461bcd60e51b815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b84356000908152600c6020908152604080832060018082015469ffffffffffffffffffff81168652600b855283862084516060808201875282546001600160a01b039081168352929094015480831682890190815262ffffff600160a01b9092048216838901908152885161014081018a528451861681529151909416818a01529251168287015230828501526a01000000000000000000008304600290810b810b608080850191909152600160681b909404810b900b60a0830152958c013560c0820152938b013560e0850152908a0135610100840152890135610120830152929061122c90613694565b6001870154939a50919850965091506000906112669030906a01000000000000000000008104600290810b91600160681b9004900b613477565b9050600080836001600160a01b031663514ea4bf846040518263ffffffff1660e01b81526004016112979190615929565b60a06040518083038186803b1580156112af57600080fd5b505afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e791906155ac565b50509250925050611323866002015483038760010160109054906101000a90046001600160801b03166001600160801b0316600160801b6134d1565b6004870180546001600160801b0380821690930183166fffffffffffffffffffffffffffffffff19909116179055600387015460018801546113739291840391600160801b9182900416906134d1565b6004870180546001600160801b03600160801b80830482169094018116840291811691909117909155600288018490556003880183905560018801805483810483168e018316909302929091169190911790556040518b35907f3067048beee31b25b2f1681f88dac838c8bba36af25bfb2b7cf7473a5847e35f906113fd908d908d908d90615afd565b60405180910390a2505050505050509193909250565b61142461141e613253565b826132db565b61145f5760405162461bcd60e51b8152600401808060200182810382526031815260200180615f036031913960400191505060405180910390fd5b6109398383836138cf565b6001600160a01b038216600090815260016020526040812061148c9083613a1b565b90505b92915050565b7f49ecf333e5b8c95c40fdafc95c1ad136e8914a8fb55e9dc8bb01eaa83a2df9ad81565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f193ae757ecb6ead396a72d38c6cc38e1be93297aa66ffefea29e32ce3045475f7fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6611526613a27565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b031681526020019550505050505060405160208183030381529060405280519060200120905090565b61093983838360405180602001604052806000815250612915565b8061159d33826132db565b6115b95760405162461bcd60e51b815260040161083390615984565b6000828152600c602052604090206001810154600160801b90046001600160801b03161580156115f4575060048101546001600160801b0316155b801561161257506004810154600160801b90046001600160801b0316155b61162e5760405162461bcd60e51b815260040161083390615a86565b6000838152600c602052604081208181556001810182905560028101829055600381018290556004015561093983613a2b565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e4810183905290516001600160a01b03881691638fcbaf0c9161010480830192600092919082900301818387803b1580156116f457600080fd5b505af1158015611708573d6000803e3d6000fd5b50505050505050505050565b60007f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561178357600080fd5b505afa158015611797573d6000803e3d6000fd5b505050506040513d60208110156117ad57600080fd5b5051905082811015611806576040805162461bcd60e51b815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b8015610939577f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561187257600080fd5b505af1158015611886573d6000803e3d6000fd5b505050506109398282613580565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6000806118c6600284613af8565b509392505050565b600061148f82604051806060016040528060298152602001615e6e6029913960029190613b16565b606090565b60006001600160a01b0382166119425760405162461bcd60e51b815260040180806020018281038252602a815260200180615e44602a913960400191505060405180910390fd5b6001600160a01b038216600090815260016020526040902061148f90613689565b8361196c613377565b11156119bf576040805162461bcd60e51b815260206004820152600e60248201527f5065726d69742065787069726564000000000000000000000000000000000000604482015290519081900360640190fd5b60006119c96114b9565b7f49ecf333e5b8c95c40fdafc95c1ad136e8914a8fb55e9dc8bb01eaa83a2df9ad88886119f581613b23565b604080516020808201969096526001600160a01b03909416848201526060840192909252608083015260a08083018a90528151808403909101815260c0830182528051908401207f190100000000000000000000000000000000000000000000000000000000000060e084015260e283019490945261010280830194909452805180830390940184526101229091019052815191012090506000611a98876118ce565b9050806001600160a01b0316886001600160a01b03161415611aeb5760405162461bcd60e51b8152600401808060200182810382526027815260200180615d6f6027913960400191505060405180910390fd5b611af481613b62565b15611ccf576040805160208082018790528183018690527fff0000000000000000000000000000000000000000000000000000000000000060f889901b16606083015282516041818403018152606183018085527f1626ba7e0000000000000000000000000000000000000000000000000000000090526065830186815260858401948552815160a585015281516001600160a01b03871695631626ba7e958995919260c59091019185019080838360005b83811015611bbe578181015183820152602001611ba6565b50505050905090810190601f168015611beb5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015611c0957600080fd5b505afa158015611c1d573d6000803e3d6000fd5b505050506040513d6020811015611c3357600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e0000000000000000000000000000000000000000000000000000000014611cca576040805162461bcd60e51b815260206004820152600c60248201527f556e617574686f72697a65640000000000000000000000000000000000000000604482015290519081900360640190fd5b611dfb565b600060018387878760405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611d2b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611d93576040805162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b816001600160a01b0316816001600160a01b031614611df9576040805162461bcd60e51b815260206004820152600c60248201527f556e617574686f72697a65640000000000000000000000000000000000000000604482015290519081900360640190fd5b505b611e058888613257565b5050505050505050565b60008060008084610140013580611e24613377565b1115611e77576040805162461bcd60e51b815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b604080516101408101909152600090611f439080611e9860208b018b6150af565b6001600160a01b03168152602001896020016020810190611eb991906150af565b6001600160a01b03168152602001611ed760608b0160408c0161569e565b62ffffff168152306020820152604001611ef760808b0160608c016153e6565b60020b8152602001611f0f60a08b0160808c016153e6565b60020b81526020018960a0013581526020018960c0013581526020018960e001358152602001896101000135815250613694565b92975090955093509050611fb7611f6261014089016101208a016150af565b600d80547fffffffffffffffffffff000000000000000000000000000000000000000000008116600175ffffffffffffffffffffffffffffffffffffffffffff92831690810190921617909155975087613b68565b6000611fe230611fcd60808b0160608c016153e6565b611fdd60a08c0160808d016153e6565b613477565b9050600080836001600160a01b031663514ea4bf846040518263ffffffff1660e01b81526004016120139190615929565b60a06040518083038186803b15801561202b57600080fd5b505afa15801561203f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206391906155ac565b5050925092505060006120dc8560405180606001604052808e600001602081019061208e91906150af565b6001600160a01b031681526020018e60200160208101906120af91906150af565b6001600160a01b031681526020018e60400160208101906120d0919061569e565b62ffffff169052613c96565b905060405180610140016040528060006bffffffffffffffffffffffff16815260200160006001600160a01b031681526020018269ffffffffffffffffffff1681526020018c606001602081019061213491906153e6565b60020b815260200161214c60a08e0160808f016153e6565b60020b81526020018a6001600160801b0316815260200184815260200183815260200160006001600160801b0316815260200160006001600160801b0316815250600c60008c815260200190815260200160002060008201518160000160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550602082015181600001600c6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a81548169ffffffffffffffffffff021916908369ffffffffffffffffffff160217905550606082015181600101600a6101000a81548162ffffff021916908360020b62ffffff160217905550608082015181600101600d6101000a81548162ffffff021916908360020b62ffffff16021790555060a08201518160010160106101000a8154816001600160801b0302191690836001600160801b0316021790555060c0820151816002015560e082015181600301556101008201518160040160006101000a8154816001600160801b0302191690836001600160801b031602179055506101208201518160040160106101000a8154816001600160801b0302191690836001600160801b03160217905550905050897f3067048beee31b25b2f1681f88dac838c8bba36af25bfb2b7cf7473a5847e35f8a8a8a60405161235b93929190615afd565b60405180910390a25050505050509193509193565b60078054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108025780601f106107d757610100808354040283529160200191610802565b6000818152600c6020908152604080832081516101408101835281546bffffffffffffffffffffffff811682526001600160a01b036c010000000000000000000000009091041693810193909352600181015469ffffffffffffffffffff81169284018390526a01000000000000000000008104600290810b810b810b6060860152600160681b8204810b810b810b60808601526001600160801b03600160801b92839004811660a08701529083015460c0860152600383015460e0860152600490920154808316610100860152041661012083015282918291829182918291829182918291829182918291906124da5760405162461bcd60e51b815260040161083390615a4f565b6000600b6000836040015169ffffffffffffffffffff1669ffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016001820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016001820160149054906101000a900462ffffff1662ffffff1662ffffff1681525050905081600001518260200151826000015183602001518460400151866060015187608001518860a001518960c001518a60e001518b61010001518c61012001519d509d509d509d509d509d509d509d509d509d509d509d50505091939597999b5091939597999b565b612608613253565b6001600160a01b0316826001600160a01b0316141561266e576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b806005600061267b613253565b6001600160a01b0390811682526020808301939093526040918201600090812091871680825291909352912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016921515929092179091556126dd613253565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600019916001600160a01b0389169163dd62ed3e91604480820192602092909190829003018186803b15801561278d57600080fd5b505afa1580156127a1573d6000803e3d6000fd5b505050506040513d60208110156127b757600080fd5b505110156127cd576127cd868686868686611661565b505050505050565b60608167ffffffffffffffff811180156127ee57600080fd5b5060405190808252806020026020018201604052801561282257816020015b606081526020019060019003908161280d5790505b50905060005b8281101561290e576000803086868581811061284057fe5b90506020028101906128529190615bef565b6040516128609291906157d2565b600060405180830381855af49150503d806000811461289b576040519150601f19603f3d011682016040523d82523d6000602084013e6128a0565b606091505b5091509150816128ec576044815110156128b957600080fd5b600481019050808060200190518101906128d39190615402565b60405162461bcd60e51b81526004016108339190615971565b808484815181106128f957fe5b60209081029190910101525050600101612828565b5092915050565b612926612920613253565b836132db565b6129615760405162461bcd60e51b8152600401808060200182810382526031815260200180615f036031913960400191505060405180910390fd5b61296d84848484613de6565b50505050565b604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152336004820152306024820152905186916001600160a01b0389169163dd62ed3e91604480820192602092909190829003018186803b1580156129db57600080fd5b505afa1580156129ef573d6000803e3d6000fd5b505050506040513d6020811015612a0557600080fd5b505110156127cd576127cd868686868686612c9d565b7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98481565b6060612a4a82613246565b612a5357600080fd5b6040517fe9dc63750000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000ee6a57ec80ea46401049e92587e52f5ec1c24785169063e9dc637590612aba9030908690600401615932565b60006040518083038186803b158015612ad257600080fd5b505afa158015612ae6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261148f9190810190615402565b6000612b1c828401846154a5565b9050612b4c7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9848260000151613e38565b508415612b67578051516020820151612b6791903388613e5b565b8315612b8557612b8581600001516020015182602001513387613e5b565b5050505050565b6000836001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015612bdb57600080fd5b505afa158015612bef573d6000803e3d6000fd5b505050506040513d6020811015612c0557600080fd5b5051905082811015612c5e576040805162461bcd60e51b815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b801561296d5761296d848383613feb565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c4810183905290516001600160a01b0388169163d505accf9160e480830192600092919082900301818387803b1580156116f457600080fd5b6000808235612d3733826132db565b612d535760405162461bcd60e51b815260040161083390615984565b6000612d656060860160408701615562565b6001600160801b03161180612d9257506000612d876080860160608701615562565b6001600160801b0316115b612d9b57600080fd5b600080612dae60408701602088016150af565b6001600160a01b031614612dd157612dcc60408601602087016150af565b612dd3565b305b85356000908152600c6020908152604080832060018082015469ffffffffffffffffffff168552600b8452828520835160608101855281546001600160a01b039081168252919092015490811694820194909452600160a01b90930462ffffff169183019190915292935090612e697f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9848361337b565b600484015460018501549192506001600160801b0380821692600160801b92839004821692900416156130865760018501546040517fa34123a70000000000000000000000000000000000000000000000000000000081526001600160a01b0385169163a34123a791612f00916a01000000000000000000008104600290810b92600160681b909204900b9060009060040161594b565b6040805180830381600087803b158015612f1957600080fd5b505af1158015612f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5191906156f4565b5050600185015460009081906001600160a01b0386169063514ea4bf90612f969030906a01000000000000000000008104600290810b91600160681b9004900b613477565b6040518263ffffffff1660e01b8152600401612fb29190615929565b60a06040518083038186803b158015612fca57600080fd5b505afa158015612fde573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061300291906155ac565b5050925092505061303e876002015483038860010160109054906101000a90046001600160801b03166001600160801b0316600160801b6134d1565b84019350613077876003015482038860010160109054906101000a90046001600160801b03166001600160801b0316600160801b6134d1565b60028801929092556003870155015b6000806001600160801b0384166130a360608e0160408f01615562565b6001600160801b0316116130c6576130c160608d0160408e01615562565b6130c8565b835b836001600160801b03168d60600160208101906130e59190615562565b6001600160801b0316116131085761310360808e0160608f01615562565b61310a565b835b60018901546040517f4f1eb3d80000000000000000000000000000000000000000000000000000000081529294509092506001600160a01b03871691634f1eb3d89161317d918c916a01000000000000000000008104600290810b92600160681b909204900b9088908890600401615839565b6040805180830381600087803b15801561319657600080fd5b505af11580156131aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ce919061557e565b6004890180546fffffffffffffffffffffffffffffffff196001600160801b03918216600160801b878a0384160217168689038216179091556040519281169d50169a508c35907f40d0efd1a53d60ecbf40971b9daf7dc90178c3aadc7aab1765632738fa8b8f0190610d94908b9086908690615876565b600061148f60028361417b565b3390565b6000818152600c6020526040902080546bffffffffffffffffffffffff166c010000000000000000000000006001600160a01b0385169081029190911790915581906132a2826118ce565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006132e682613246565b6133215760405162461bcd60e51b815260040180806020018281038252602c815260200180615de0602c913960400191505060405180910390fd5b600061332c836118ce565b9050806001600160a01b0316846001600160a01b031614806133675750836001600160a01b031661335c8461080c565b6001600160a01b0316145b806110c157506110c18185612c6f565b4290565b600081602001516001600160a01b031682600001516001600160a01b0316106133a357600080fd5b50805160208083015160409384015184516001600160a01b0394851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b6bffffffffffffffffffffffff191660a183015260b58201939093527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808301919091528251808303909101815260f5909101909152805191012090565b604080516bffffffffffffffffffffffff19606086901b16602080830191909152600285810b60e890811b60348501529085900b901b60378301528251601a818403018152603a90920190925280519101205b9392505050565b600080806000198587098686029250828110908390030390508061350757600084116134fc57600080fd5b5082900490506134ca565b80841161351357600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106135cc5780518252601f1990920191602091820191016135ad565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461362e576040519150601f19603f3d011682016040523d82523d6000602084013e613633565b606091505b5050905080610939576040805162461bcd60e51b815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600061148f82614187565b6000806000806000604051806060016040528087600001516001600160a01b0316815260200187602001516001600160a01b03168152602001876040015162ffffff1681525090506137067f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9848261337b565b91506000826001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561374357600080fd5b505afa158015613757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061377b919061560d565b50505050505090506000613792886080015161418b565b905060006137a38960a0015161418b565b90506137ba8383838c60c001518d60e001516144d9565b9750505050816001600160a01b0316633c8a7d8d876060015188608001518960a00151896040518060400160405280888152602001336001600160a01b031681525060405160200161380c9190615abd565b6040516020818303038152906040526040518663ffffffff1660e01b815260040161383b9594939291906157f6565b6040805180830381600087803b15801561385457600080fd5b505af1158015613868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061388c91906156f4565b610100880151919550935084108015906138ab57508561012001518310155b6138c75760405162461bcd60e51b815260040161083390615a18565b509193509193565b826001600160a01b03166138e2826118ce565b6001600160a01b0316146139275760405162461bcd60e51b8152600401808060200182810382526029815260200180615eb96029913960400191505060405180910390fd5b6001600160a01b03821661396c5760405162461bcd60e51b8152600401808060200182810382526024815260200180615d966024913960400191505060405180910390fd5b613977838383610939565b613982600082613257565b6001600160a01b03831660009081526001602052604090206139a4908261459d565b506001600160a01b03821660009081526001602052604090206139c790826145a9565b506139d4600282846145b5565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600061148c83836145cb565b4690565b6000613a36826118ce565b9050613a4481600084610939565b613a4f600083613257565b6000828152600860205260409020546002600019610100600184161502019091160415613a8d576000828152600860205260408120613a8d9161501f565b6001600160a01b0381166000908152600160205260409020613aaf908361459d565b50613abb60028361462f565b5060405182906000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000808080613b07868661463b565b909450925050505b9250929050565b60006110c18484846146b6565b6000908152600c6020526040902080546bffffffffffffffffffffffff19811660016bffffffffffffffffffffffff9283169081019092161790915590565b3b151590565b6001600160a01b038216613bc3576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b613bcc81613246565b15613c1e576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b613c2a60008383610939565b6001600160a01b0382166000908152600160205260409020613c4c90826145a9565b50613c59600282846145b5565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160a01b0382166000908152600a602052604090205469ffffffffffffffffffff168061148f5750600d8054600169ffffffffffffffffffff76010000000000000000000000000000000000000000000080840482168381019092160275ffffffffffffffffffffffffffffffffffffffffffff909316929092179092556001600160a01b038085166000908152600a6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffff000000000000000000001686179055848352600b825291829020865181549085167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617825591870151950180549287015162ffffff16600160a01b027fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff969094169290911691909117939093161790915592915050565b613df18484846138cf565b613dfd84848484614780565b61296d5760405162461bcd60e51b8152600401808060200182810382526032815260200180615d3d6032913960400191505060405180910390fd5b6000613e44838361337b565b9050336001600160a01b0382161461148f57600080fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316846001600160a01b0316148015613e9c5750804710155b15613fbe577f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015613efc57600080fd5b505af1158015613f10573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015613f8c57600080fd5b505af1158015613fa0573d6000803e3d6000fd5b505050506040513d6020811015613fb657600080fd5b5061296d9050565b6001600160a01b038316301415613fdf57613fda848383613feb565b61296d565b61296d8484848461495c565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b602083106140955780518252601f199092019160209182019101614076565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146140f7576040519150601f19603f3d011682016040523d82523d6000602084013e6140fc565b606091505b509150915081801561412a57508051158061412a575080806020019051602081101561412757600080fd5b50515b612b85576040805162461bcd60e51b815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600061148c8383614af4565b5490565b60008060008360020b126141a2578260020b6141aa565b8260020b6000035b9050620d89e8811115614204576040805162461bcd60e51b815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60006001821661421857600160801b61422a565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561425e576ffff97272373d413259a46990580e213a0260801c5b600482161561427d576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161561429c576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156142bb576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156142da576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156142f9576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615614318576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615614338576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615614358576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615614378576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615614398576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156143b8576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156143d8576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156143f8576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615614418576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615614439576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615614459576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615614478576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615614495576b048a170391f7dc42444e8fa20260801c5b60008460020b13156144b05780600019816144ac57fe5b0490505b6401000000008106156144c45760016144c7565b60005b60ff16602082901c0192505050919050565b6000836001600160a01b0316856001600160a01b031611156144f9579293925b846001600160a01b0316866001600160a01b0316116145245761451d858585614b0c565b9050614594565b836001600160a01b0316866001600160a01b0316101561458657600061454b878686614b0c565b9050600061455a878986614b78565b9050806001600160801b0316826001600160801b03161061457b578061457d565b815b92505050614594565b614591858584614b78565b90505b95945050505050565b600061148c8383614bbe565b600061148c8383614c84565b60006110c184846001600160a01b038516614cce565b8154600090821061460d5760405162461bcd60e51b8152600401808060200182810382526022815260200180615d1b6022913960400191505060405180910390fd5b82600001828154811061461c57fe5b9060005260206000200154905092915050565b600061148c8383614d65565b81546000908190831061467f5760405162461bcd60e51b8152600401808060200182810382526022815260200180615e976022913960400191505060405180910390fd5b600084600001848154811061469057fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600082815260018401602052604081205482816147515760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156147165781810151838201526020016146fe565b50505050905090810190601f1680156147435780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061476457fe5b9060005260206000209060020201600101549150509392505050565b6000614794846001600160a01b0316613b62565b6147a0575060016110c1565b60006148f17f150b7a02000000000000000000000000000000000000000000000000000000006147ce613253565b88878760405160240180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561483557818101518382015260200161481d565b50505050905090810190601f1680156148625780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001615d3d603291396001600160a01b0388169190614e39565b9050600081806020019051602081101561490a57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001492505050949350505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000178152925182516000948594938a169392918291908083835b60208310614a0e5780518252601f1990920191602091820191016149ef565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614a70576040519150601f19603f3d011682016040523d82523d6000602084013e614a75565b606091505b5091509150818015614aa3575080511580614aa35750808060200190516020811015614aa057600080fd5b50515b6127cd576040805162461bcd60e51b815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60009081526001919091016020526040902054151590565b6000826001600160a01b0316846001600160a01b03161115614b2c579192915b6000614b58856001600160a01b0316856001600160a01b03166c010000000000000000000000006134d1565b9050614594614b7384838888036001600160a01b03166134d1565b614e48565b6000826001600160a01b0316846001600160a01b03161115614b98579192915b6110c1614b73836c010000000000000000000000008787036001600160a01b03166134d1565b60008181526001830160205260408120548015614c7a5783546000198083019190810190600090879083908110614bf157fe5b9060005260206000200154905080876000018481548110614c0e57fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080614c3e57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061148f565b600091505061148f565b6000614c908383614af4565b614cc65750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561148f565b50600061148f565b600082815260018401602052604081205480614d335750506040805180820182528381526020808201848152865460018181018955600089815284812095516002909302909501918255915190820155865486845281880190925292909120556134ca565b82856000016001830381548110614d4657fe5b90600052602060002090600202016001018190555060009150506134ca565b60008181526001830160205260408120548015614c7a5783546000198083019190810190600090879083908110614d9857fe5b9060005260206000209060020201905080876000018481548110614db857fe5b600091825260208083208454600290930201918255600193840154918401919091558354825289830190526040902090840190558654879080614df757fe5b600082815260208082206002600019909401938402018281556001908101839055929093558881528982019092526040822091909155945061148f9350505050565b60606110c18484600085614e5e565b806001600160801b038116811461077157600080fd5b606082471015614e9f5760405162461bcd60e51b8152600401808060200182810382526026815260200180615dba6026913960400191505060405180910390fd5b614ea885613b62565b614ef9576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b60208310614f375780518252601f199092019160209182019101614f18565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614f99576040519150601f19603f3d011682016040523d82523d6000602084013e614f9e565b606091505b5091509150614fae828286614fb9565b979650505050505050565b60608315614fc85750816134ca565b825115614fd85782518084602001fd5b60405162461bcd60e51b81526020600482018181528451602484015284518593919283926044019190850190808383600083156147165781810151838201526020016146fe565b50805460018160011615610100020316600290046000825580601f106150455750615063565b601f0160209004906000526020600020908101906150639190615066565b50565b5b8082111561507b5760008155600101615067565b5090565b803561077181615cc4565b805161ffff8116811461077157600080fd5b803562ffffff8116811461077157600080fd5b6000602082840312156150c0578081fd5b81356134ca81615cc4565b600080604083850312156150dd578081fd5b82356150e881615cc4565b915060208301356150f881615cc4565b809150509250929050565b60008060008060808587031215615118578182fd5b843561512381615cc4565b9350602085013561513381615cc4565b92506151416040860161509c565b9150606085013561515181615cc4565b939692955090935050565b600080600060608486031215615170578081fd5b833561517b81615cc4565b9250602084013561518b81615cc4565b929592945050506040919091013590565b600080600080608085870312156151b1578182fd5b84356151bc81615cc4565b935060208501356151cc81615cc4565b925060408501359150606085013567ffffffffffffffff8111156151ee578182fd5b8501601f810187136151fe578182fd5b803561521161520c82615c76565b615c52565b818152886020838501011115615225578384fd5b81602084016020830137908101602001929092525092959194509250565b60008060408385031215615255578182fd5b823561526081615cc4565b915060208301356150f881615cd9565b60008060408385031215615282578182fd5b823561528d81615cc4565b946020939093013593505050565b6000806000606084860312156152af578081fd5b83356152ba81615cc4565b92506020840135915060408401356152d181615cc4565b809150509250925092565b60008060008060008060c087890312156152f4578384fd5b86356152ff81615cc4565b95506020870135945060408701359350606087013561531d81615d0b565b9598949750929560808101359460a0909101359350915050565b60008060208385031215615349578182fd5b823567ffffffffffffffff80821115615360578384fd5b818501915085601f830112615373578384fd5b813581811115615381578485fd5b8660208083028501011115615394578485fd5b60209290920196919550909350505050565b6000602082840312156153b7578081fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146134ca578182fd5b6000602082840312156153f7578081fd5b81356134ca81615ce7565b600060208284031215615413578081fd5b815167ffffffffffffffff811115615429578182fd5b8201601f81018413615439578182fd5b805161544761520c82615c76565b81815285602083850101111561545b578384fd5b614594826020830160208601615c98565b60006080828403121561547d578081fd5b50919050565b600060a0828403121561547d578081fd5b600060c0828403121561547d578081fd5b600081830360808112156154b7578182fd5b6040516040810167ffffffffffffffff82821081831117156154d557fe5b8160405260608412156154e6578485fd5b60a08301935081841081851117156154fa57fe5b50826040528435925061550c83615cc4565b91825260208401359161551e83615cc4565b8260608301526155306040860161509c565b608083015281526155436060850161507f565b6020820152949350505050565b6000610160828403121561547d578081fd5b600060208284031215615573578081fd5b81356134ca81615cf6565b60008060408385031215615590578182fd5b825161559b81615cf6565b60208401519092506150f881615cf6565b600080600080600060a086880312156155c3578283fd5b85516155ce81615cf6565b80955050602086015193506040860151925060608601516155ee81615cf6565b60808701519092506155ff81615cf6565b809150509295509295909350565b600080600080600080600060e0888a031215615627578485fd5b875161563281615cc4565b602089015190975061564381615ce7565b95506156516040890161508a565b945061565f6060890161508a565b935061566d6080890161508a565b925060a088015161567d81615d0b565b60c089015190925061568e81615cd9565b8091505092959891949750929550565b6000602082840312156156af578081fd5b61148c8261509c565b6000602082840312156156c9578081fd5b5035919050565b600080604083850312156156e2578182fd5b8235915060208301356150f881615cc4565b60008060408385031215615706578182fd5b505080516020909101519092909150565b6000806000806060858703121561572c578182fd5b8435935060208501359250604085013567ffffffffffffffff80821115615751578384fd5b818701915087601f830112615764578384fd5b813581811115615772578485fd5b886020828501011115615783578485fd5b95989497505060200194505050565b600081518084526157aa816020860160208601615c98565b601f01601f19169290920160200192915050565b60020b9052565b6001600160801b03169052565b6000828483379101908152919050565b6001600160a01b0391909116815260200190565b60006001600160a01b03871682528560020b60208301528460020b60408301526001600160801b038416606083015260a06080830152614fae60a0830184615792565b6001600160a01b03959095168552600293840b60208601529190920b60408401526001600160801b03918216606084015216608082015260a00190565b6001600160a01b039390931683526001600160801b03918216602084015216604082015260600190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015615911577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526158ff858351615792565b945092850192908501906001016158c5565b5092979650505050505050565b901515815260200190565b90815260200190565b6001600160a01b03929092168252602082015260400190565b600293840b81529190920b60208201526001600160801b03909116604082015260600190565b60006020825261148c6020830184615792565b6020808252600c908201527f4e6f7420617070726f7665640000000000000000000000000000000000000000604082015260600190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201527f697374656e7420746f6b656e0000000000000000000000000000000000000000606082015260800190565b60208082526014908201527f507269636520736c69707061676520636865636b000000000000000000000000604082015260600190565b60208082526010908201527f496e76616c696420746f6b656e20494400000000000000000000000000000000604082015260600190565b6020808252600b908201527f4e6f7420636c6561726564000000000000000000000000000000000000000000604082015260600190565b815180516001600160a01b03908116835260208083015182168185015260409283015162ffffff1692840192909252920151909116606082015260800190565b6001600160801b039390931683526020830191909152604082015260600190565b9384526001600160801b039290921660208401526040830152606082015260800190565b918252602082015260400190565b6bffffffffffffffffffffffff8d1681526001600160a01b038c811660208301528b811660408301528a16606082015262ffffff89166080820152600288900b60a08201526101808101615ba760c08301896157be565b615bb460e08301886157c5565b8561010083015284610120830152615bd06101408301856157c5565b615bde6101608301846157c5565b9d9c50505050505050505050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615c23578283fd5b83018035915067ffffffffffffffff821115615c3d578283fd5b602001915036819003821315613b0f57600080fd5b60405181810167ffffffffffffffff81118282101715615c6e57fe5b604052919050565b600067ffffffffffffffff821115615c8a57fe5b50601f01601f191660200190565b60005b83811015615cb3578181015183820152602001615c9b565b8381111561296d5750506000910152565b6001600160a01b038116811461506357600080fd5b801515811461506357600080fd5b8060020b811461506357600080fd5b6001600160801b038116811461506357600080fd5b60ff8116811461506357600080fdfe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732315065726d69743a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e7366657220746f20746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a164736f6c6343000706000a039f1819dc877b7eee649684581005973fd14a711289408d056adae17e1200a2b603e827004c39a645cc75e82b447860b9dbdf5076f3283a997512f4c1ed8b4b71d703219750b31b63527ca798a38544852a297425b717c3dbe1a53884adef1ecc2eba03c8baf05ca8f1bb942d8860fa27e5124b00c8d0f97e0467c29297090c5048ac2403acc9bad6643a872ce2df6ae558b6eefdf3a8de573c283d617ef30b4bb6bc1c1d034ba72ae5770361ef0cc13f8571e2fee8528641a9153a05575be0e63bc4c9452e03354c87e37d813af90e23681cb1480ec2026631c6d9f3a3c5f86bca99450129f303d526f4276fb8c4974bb292680305ba518221bffd9c661c53669b9a845fb3abe50362f4bad79f9c519ba87a01599bcb680c6467f34c7f1598e91da1e1c72e870cc103d25ff3bd841799dfa483e99bcc52608d3b35e239edb616b0d159a2c09424fde8036e5428a1775fe904fbb89191be78a193d66806c33b0542dff56d01bc35c14dd603d08ab3949050ad9bfd619bc8d9ac473e872c58f6c9d0d777ded0b5cf3df50abf03b0822dccb40fc19dcf47103d2354c64d349bee0b850aba992cd43c51578acdc90334a2e9951b6272a011d69fe67423a6d2a6891f125b23e7aa3d0f67d8abced72c03d7e659f97426d2b58a21f3cd7bbc7edc1168ef2a3309188a08e1926c20ffa36d0316a1fadf3faf4de2133c84fa0dc864718a723a7d0c26a392394dae3cc1a2f2640387ca40d365df20e2203951930938808fc7c62a01a4c93f216deaa5dd6dcc971803ef9d451a8cc6ea12f14040441772dae0b99d996aec830125a2549f8d21a24f2203d95d9b41a003e28f92a6441485eaf3965dfb3ffeebebdf13a145785ebf10c0da036a3baf094103fa435c500a38661c4800dabebed2545ff1311df28d1ef9a4b2b4031498fd18ff1aac40b09c0f23c25b19deacdcde9c24631f2a8879487831a8c83503b0bd760e8adcd0392dcdcb6b5bd515e7e83c01ddc27ff5b07d551eddff9cc2c703f22cd32b35f2432b9a150c2eafa0b4bbf237a0a26f2016ffa8ee10214721e05c03740dbc1faa8301c042d7d1090303b43948912a548c7ac5aca6d76623fea2bbad03a6536a952082ea26cb346a874163fd5c717d21c811c74f8fab1c1c5a9f991ce203971a1f9de655e6363d4754710eb4079cfec869b1640e48ea9dc711fa052f69e303b8bbbf86aeb6ea9a1a91402faf1528e30ea9378321e0d5ad8ee1d68cd66433e603a941fe3b537d3f8f10d1392460d51dfb3e3a4520cf3f68abfdc2d5cfca079a0203fbf01bdc539ae8fd55ebffbcad6e625ad6bf49891d2c582874882cbd3db8678a03384d55f2e73c32a2925e8e54f80a810060690b561de03fb2c41dc4240b3bfbbd03fa4bc71b299f218b707e9b129793f0413c60aadc458fd8eddb46b78dd80dac14031fb2dc8026737e894a169a13fe3bf1c97ed0aff6d2deb724ad6de474bed0430400581e021ec430dc7e6c94e3c9c1ffe29b0cf9970850eea7b5a70a59b19e708ba7410100581e02e9404847d43adba92aa6dbfa03565b6d280db08fa7bd12e3517f78556d410100581e0219641f77e98edd68426106ddfb55153b0e47acf94f7baac095cc308c2d50fe5bb0fe3ec8000000000000000044be00581e029a4ba1a01f6bd0cb4e5a73ffb3ad55374ffac9aad1f1283e1242531808581804ca36a561868dd8fbc898fbc884000000000000000045c700581e02b89f743a12c6e142032167c183bfe219fbb58a615702ff9e42f47e66a5411302191682030757c20fd2d80e810d369cb2555ea728b54b0f3c7190d68421898aec48bf42d90393c15d690b74836aa1744b9bc8b9a120f60314d1c74d619f33d70636bdcbce0603798e6e5a0374a5e73711cc89613c925e31a1afb0056095176eb5e3b72485e54a03dd2d27543cbf5e38c69bb0a8bd55142219ea3c2c0abdb596ad6236b17df6d6e903b64acb60d45285336ba890975400d123da3751be9e47cfa6e9d1780295d3be2b0340f3aaf186f31cd30dce7919697dc20f028dc38fcccc6dba84a4fe4ef2e5c8c703872dba2ac50fe545ae41bc651d18ae9ad1da9f3c4cc2c97c39dde7fbe411060503b24a69136dd7715bfd3cfb3e7dbf14db33a197584597f3917b7fb63a3fb7c5b9038efec1a3d25e54f236a073a764ef3f3c729f16fe223af6ab3cd38b9351031c5e0305d5b4df5adee0d045cc7b3bbb36ffb480416eb6e9e31da12d5cddeed897ee6a03739720e4701ec83c32e3e420e390f3eb5e3cbf386c51da4dadd051b8346ee31e035a646206fa93e1ca52ea54de011a27a25a611eafa1c674d36715093b353f27c3034bee4f3399bc95525c08eaacb3607b54c7fb772e62c6032b6774ea59f8ba34260219ffff03c8961a9470b47d4120538ea20dc5bfb0df8865465134b64467f4133a568000ec03b7dfe9c86fa8aae4d5798cef33cd7dc8c544c868e397357d7f175eff43b1b0c803c1bca9b55d60d1fadac348dd7f8cd3c918bfef8eb1294e7ae166f035d0f7121003d326431aef7d6d710592866fc93333da775a62ca733656f482ce5c17a5fdcb7903f0c3dec90d274e0f5fb486ff3b02810b4696514cb862c352ab84755444ceef4f0389e3b18dd4a9c16a1e57ad50d23148557f433892e3ad756167a15a5a26bddfec03a18c10645cb0d927e368136e169d5e19e87b526d3db2c856d7dc08b41cd0b0ad0337e2d7cd316629159ffcbe45a0f5b1e5b61431f52f6dde8a4e0ab60effb3c92903528be26280de23c233ab02677e38e5ff5736b0e3435745458324630d12c751500219ffff03e402ecb1f5d8b7015f83c0746e39647023b5134d6d07ae6b06fa02ca2a6358b703163bc85ed562a7eeec3170508b34b0317fd39f6d952a5b5515dcec8c838ebc790384d42089c298ba8a92d46613372629c6c2f878a4e4be49728fc215463970d1af0219ffff0387401a087b21f1219c41d3c82039aa05ab216f1dd4453c7db9f2087685c9038d035db228b4ff319cb293b2ca1567a75e28d7cc42fec68be64dcb627ea2e0bf81f703ec866b4fc2b48d2200b1f10256c28291b1eb353231c1ad163cd6241193b7534903e01f525b63645732081d3e8f3749968db80102ad7dc2b391bd609eb029d9a7010219ffff03b2356cf08ffda4a8f736bffb61c026dde1da3b83afd3c365b93802953763624103bb7d03feafa6ee19c1ba1ed959d685354cef103b1116611952e0e6cec4ad07de034dab1268b464bf5cd5f1372c31737aac299c61a550158cfa4dced281f461746f0337285b65843132b1f738204116b07dd9d0edf5ec81e3e6d0a27e7acaeb671f5e03afa2d2e789fee98b280475df76f2180e5997af173b57a2a5dbbd045624d6033c0343b7c284bdb9fa33dd660ab7b527b2ff79c48a685036f1ef1d66c927029d5cb20378caac92442c45210811550607e032c90c015c2ff6f40addd9c079e27bfcdab603b98f501614f9bd99044b94f2d01eb3b6480987a308c247504f18d4ae0f579047039c9ad0f22db6ef9f6be984ec760cea40ecd5160ede3e0084b6bd8d8ef7b0dd62034b31296be57be810033ec9e207806566d1084e52763e8f0687165c14674240ce036a5728504999ed10d25ea0d12ce8073f2a5fea273ca003ad0a5ac88502c5b5c4031a9ef2a8eaad622d30c079e99dd4f41a263286623751637b104b7524dd97557303d949f5fbc23632d0de10f925be3195884a8dd9bdb010232fff239c8202b7d9590381080531ea69d6d30c4acd51501e0d6e2ecbfec0564909505fd3a6cc1de61363033f6d9884d7f4853e689c03f33a6b8e76ba03c64ed2cfdf1424b4630e10cccdb6031fd53e6c2baf9de9340f03266a0eca48d0c7d0bc0ba30ddcd2a12df50eb862ce0374a9230e73dc54d9541300a9063ca44b83e945c99f825ae111a3387bd05ca03d03e2475df03f971879f5aa442cb6890d5851a156024f57a4dc237b94a4d5ed9abb03cbd3acfe803b49c18857605e0c49c2a87e260d18d6c791bed25329bb100ecd1303d6bce5af2d165fb70cb1a2dbf63a3f20e782ad440766a43138d26e0a20236a9203d87092637de0aef39b5022cf44d50900365a6f1e021b0f5e61708f963f01d84303b51868c49242341e18c3cbc895990d1c1dfb772d060abf8b9293eebbb4bdd53f03cd0836332d2ba183dd9ff2a7e0727684cd198dbc0df44ca34cb22e38086eecd5031e44c12b36b852554cb3985755245b29ff2a20f8a1534facebb637c4dd803a000384a86598015f0721e69cb1fb7081c2a139e1023c5d4d385a5e9f183625295c6e03f5fceef973ad65f4823e4c3d340cd3efa6f09736877646210960eedd0d50fecb0360377c20d623fc7bef77e0c439bf7c71726944300be238676e6d2f897d445b4103c28d0ea6c079ba8c9d452a7c53fc10dfa55f90071fe275712c38d25c047ecaf403772e9cf5a5761903611e1d5270c0289a3e91c22e2c20afb6a053fde73b3156fe03eb51c24b6a047f7369332e9da6bb69088d6a37d314ecc8e195a1b1bbcada0d390311eaf5a990d30222ec61437054b9438352dee748bfa9007d38498ee9f9d02ee703d52d3da9094c1688b2ddec7bb0c1cd678cf5abd6ca86b68e365ac2e78eca467903cee3dc5d349095d49e5e0af4deb2f473c4bfc3549b6441c4fec8ddb1d8d41225033babf4d4d58bb70045744bb012e121707985a2d63877b3fa708c0ff99e33c24203a23a9ac380587ce0205c4e762e3dbe847c16e185d593098d6bdfdeaa42ed75130380bee933f341be30e246c9f7f5fedbeca40d8dfc7f67779401decb05fd8929a80301bdd129df7008b00696a4d80e860fc197fd451797d051f9ea0ac6b9d29ef23503f083511e7bc5f4140fe76794ab68682993f7e9e9aa03f8ca33bce839032ea01b00581e0203a617a10faeda68a5ba5433e52a46789d57d0d6344578d441d9ae273642c3fe00581e026d613ac33e5403035394d23f68436ef9d246436802d8744d034dc2a9004306985d00581e0240de7eaf7878d6f268d59c4845a955442d0afa834982e543cc419a0df350ff8b0cf2764c0000000000000000323500581e02a11519aa285662a2f764b789f2dd3aa59ed903a4b1cfeabce5e2c067504f1033412f8a4b8adfcbaf96783987fb0219c00500581f0340d0256c616dc2b1abbde2468154a1bea799cf5b33796611b3856f06a4e041030343bc1888ebbc5674a532534f3d4ffeb4b940ff485d3d8ed6ef061840ff1e712803f6602bb5e56844eebde87d019411bb81cd5d34eef114d2cdb20df4ab05da680103121abe719230456c75120593e76945d79c689603096ee205c19186b287727665038de3a117b0e82de0e04f1ea1f603e6e68bc0531ad1714cd5bd7cff2395cdadfc0320cc4aaad12d4bf95a79b06af7cf410b51402560b6eee7ae254ad1bb1d0614a203c4d3efa32f9452925c7a0b0264b210b34578b38a6bbbd2936fcc897e5f87a38303ee6034ae514b1c6f831f4de7412fcda06067772ed511eaab80c11c20ec46ef750219fff70219ffff039f6a698591ffad2a17e0e990b2854a812d124fc835135e85527bbb0aabd206e10219ffff034657029a06d9713406e1a35a3d7a974d84afef4e92d19702b585e2e74468251e03ae6b3d4bca3cdd80acbb47aacc800c90fa4f629fe940b5f48632a2588de2c4ac038a167f7bb02f7122262109c0d6f3918a7585d701c45277c55063934133dece6f03b7eed307451d316c55ce454f9fa58eb966404b264076811ede78acf3f05f91f003753c02d323569768d1fb6f10ef4096a4c7ff99066870a091eb6dd125f4d154070365d03eb486d4058df6f39699fe7186bbb1174eefaef8095634b72c0cb93306ae0330e942f01d49b5dfdb9bfe5feb6a4634f0dc4fb9b87a387a28527d8dc86465cb0375212907160647689385e0174b4c9eb0583bfc1a026ee595700b7b282757f0e803ccd4de30aa180321d7e0c26798c57516d5eaa361bf46974524898336c41bfe850374258f6cb2b642250812d43536f90e67f8c3986cb9a82190b0e116f76b47c17d0396a27ddb3662673f0b4144fca7537f4e4622686a84d11efb4ce247de898064e803645a06ae93e030a86cd5c50d77b912fa39fe155b0375811a41f72ecea7779cde0219ffff03833d4ec4314659ff9a916d2a3b50bf23ea2d52737f0c1d478ac78b8c580df0da03cf4028129bf7b2367afda5a35587d33ea3c712e8085542d08b2c5d6bde31df1003abd66301988f6623cc57506b7f90b13c838c7f7ab14c53874ee1e43883a0092c03126c33583731d62b341441876f271b3920d23c5180a493c8e2b39139a9b8011403536ced28da7d646d72aba0f4a77f164a39cbe907a56c049afb0c5059d6ed6f8d038f842ddcf91eccc12571044dc2af04b6f4e8d061c3de7a1bf26357a9e918763f03d4c614bbb71d7d5d0b6bade5cdd8877c8ef7e551736974504ffe82d273ecc917037057e9d50b3b8ff1eeb9494fbd4df7008ac8d3f6102e05faea1a2b4527064ff703b896052e4414ff6c8048b3173aba30c9df648e3ca342d4a795a6a484bd8bd89d039f3242cf7336bfd90290f6244c03e1855e0997bd63bd28821802dda38826aa9a03707edfbb32eac67aad8a5f360d2cb344444bc7ce1cf2da09387487c9cd109f4303a8cae1ae62504849d2e82949938dbc5878432e814386e08bef39612b36b8e4390398be11863df20b6c160365186b388409c6566e7ce0ed4f88432b0d0af8d9becc03c6c50cb9bb760761c5f60868c2ac9b7472ecec20152fa56bbd0b832772bc1c2f03a0307f558ae4a042a226c3bf3d076b1d66da338bfd8652a05af3516461e28a01037c3bc91a9eaa84425505a445041cb28a980d9813cd681764d5b42a05f9c9d66e03e64f453f20c996d8b8eb427da00b2eaf221a8819312f5b564e60c4cf2f961b10030ea42cc11eed0b7494d04dfd345c668b5c4843b9a9be532f3f8ac6cc471ac688030d44d07d47636f87446deaa07f5851ac7596aa4d644ca620c29c87a59196ff0603e2a896256a99d6ceda43dda7eb8be3108e5bdbc4976875b4fff21099cb9f5f11035dbc7b490354f84c34f4aa1aeb82e964e6f1742481e6b80b3b4f5b812f61f11000581e02acc242a3b37c80f248d465ba077be628d06fc97a083620a1b8bed1b3e75820ffffffffffffffffffffffffffffffffffffe0f527d4b60f96ed02dad89588da033affe06c51cce105a8a2f1842bc0395051d43fc735a0578720e55350e603f32000581e02259fe81d3426b89d9c542cf8dc0521960aee399993d201f91418564aa7501511ee8e9611afc426e5beda4aaf75a600581e02fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace430960eb00581e027f1d12dec95dc49d6fc704a92884f114825090e0e67b68a71e21f829f34101037a2fa8a3db802dc144c92426b835acdb183d100da7b445c2be8ce0dadc836bfd021982a603d558539a573a78a25bb8ecd4e7e9561cbfd6b7972afe53f421637ebea65404fe03ba058f5b6c43e8a9442f2426789bda8d4c68fb8da201bca46a855f1e836ccb5f031f1dca6d1dc702abb8976ef61bcdaa8fb07eb4902828f5f8f4670bbd9b535f1403a0065f5fd63bc9def762cc7d29dce513be9e110f7354e8ddc5c29e5701a2482503d809c34c231b51df2ff27553de4a0668d5e9b674e8e24a3b47a342f0b249295e03918b2427db5855f1cb5280e509b4ce8baa9f51d8e4af837d21096b613117d6d4034e6e22e7378fb99db0cb7fc4a5fe31cef5d980d9e0ab862732a9d2d8f6cbcdc50219ffff037bde74408d2b636e29ed8a2b296401c939dba8d991f56b890ba43ad1dded19d20338477506f6410e56d92e0bbd43493659747bcb047f4113a92c90e18656aa181f032ad494f25c238272c84be0ec43a8ecbf72e05d3aec7da01cf2d61e04c806aa1d0373e1b26809b34bd88e7ecf3557443f2823f4a495eca08d02c22283e162dbd1c5039f30ccafe8a4be38bd159a420fe2cf438f61323347e55e87a7aba9e0ada86b91033e2083a17bd02d0ceecc38d27a2dce0b2c88f794b36a147e2b0821a5a8f0f0db03f89577b45ae11cc9e674c66b3d5c6a45a99b50d76245791a2d5d9111a273988003ba90e8a2ac003abf3b11e8ba77d85474f2231db8278635824a316cb768afadd30219ffff0306455e96eb3faf3a19eb0e3449bdebfc09dcdd3562b82f186e7579bd6c7e404903afad0c54878349b7bdd9f3d79c5d4aaff68685389c61a87d42e5d42ca8100dd0035aa7083cc46c0cc79b663d31d21d68194161bd486c1714bfeca7def5a3d3692f03b45cec681f0b3b521affcd02534fdee3f2b775b5d939b475aa98b22cbcb17370030f03b8087083cbe3713a57307b58e1cbb793a154f5b8da78f449a22778c6b819036c42a2231b950712fde6d24cbccdc0f2536df0a815e7dc2659ccff0185cb1af303341c6d17eaa7b1c3a02ac2f44abd23ef4be1b7c9fb687fc07123d20c73127a96030c7f89caafb359b6b7fab91150eb90a2e591ce587104253f985ab125efb46b77036b381f37ef37850edf7eeed0804c79235063ce24ec5c5703db1520f825f757370335e3d973f54b8a3ebf7bd00d17ea3581fd2051d65e813dde775dac014196e01a0219ffff03337d17a100ea2f031745d736ae256f3f96a1f539205e85131d6a6140c9d2716c03754909596e66510620debec314b6e4d224677133c5e0e983cffee72f9b49b6b303b51b1efc02a53ca9aa3fb4b10d1bc22ef8de6d50c829317a20ebf170cd67e2930394048d54e3c980420f8bab88548b1483a70a753ff1934f54e566075df61bdcce03ddf91683170f4e69c8f1a5f11ed913838846968251f7fb538b79f6f352a14cba03f081af7ffb16962e17e21ad1a7f50e968986a0f0bbe8a4c6658dd592c5e9f53e037012cf2796f84e3625a460a3197554769ce722678ad98ea13cb448c6ec49927a0336289b0866bcf78c429af88d5931a81b97f2048af33d1a6b76d025c99d00c0ff0323e18d78f4bed6bb9113f64ba227fbed84a3305657cb200d9f2501bc5b819eca030d0f4d88fed186476a8ae448bea26c422bcda88d1837e75a6c829a04626ac4cd03129f10f98bcbea9bd867f4c53ad01fa49bc932b08127db1dcb289a70ef1e243c03873557b4ede48b857385424e8e72e3efe46296825f257574459ba061eed2217103732110e73988a110ea1319b2ac614cb5f89b0e3da4162f29e64af4a364803342037f65601cfb214865f630aaddf7dcf6c3b3d66cc4b618f181f05c1e753c49960903839afd346344a838ace6056778212ddf520d2abbc29e5a4f4b60c85190dc94990219ffff03fa63d2fa6a7cf0ab00a223b6346c9ab867740707d2179ba50be15402c1883ad603561fb8e104bdd1af153726726b1eee8c4705254b19e06ecbd96e176456e374a5037c7c739ee3e706ba90fb6afdca7d834012a44636f01faadb702297e9925acc8d03cb507ce3246a8788c7263dc4f3a452a26cf01ade2f810f89267977d2a45fa5d5030fc553bea3e38a0da89332ffdbe9fb900111768dfa093d808317006099e270b5039affff06c2220d40d33963ab1d0b8d64c49b2a1003924f86ac6141244821665b037f473c685b7df7ff2e6ab1a504af5fea17211330b832a7cb603ddf09a8664401037fbbebd377df94984bd27ccdaccc0da03a40b0782659301f12a91fe6475510ef030f181609e1d3ff445c2b7855065f8f96ebe4db53b70ed308a21a33925583243a03a4d927c4bb2f427a9563f5a537db2e8a3208132c5e07a33b33e1fd3d9ec059d203499dd3547c9eb38590f8aaab3f2f5cfae30833c1649b3b1800c68713bb379bb5031ba6eae9bd85ce472be04198adc1e949f42cb19ad1b8817dc3862df85051895e032663da762badbcec1937f37d5d2cf4aeef0d143e41d50ef5682c8b1f2d45643d03a8dd70fb4fc7ccc27a1d8535e26e0abc8e431913fa4dd120ad737cc1cc44208603bb622ec3da6efadb55040e951d73dc7699af95baca378bb019dc8bb49ba5227a03123a3045521b3ca1b9fcd1f74522bcb009200893749b3e66a10d860ffe3eb9b603b34d062d6c207ee4806c646be1ab4462430608b89263525cbdea2d7f2506f7680302bc4936791514fd73774bf0e6f1a1c96ea757719b98f2015a72e638f740ad480348eab8b9180b928990623920756bac1d29f41eab27af441ff502b3aefd4d2a56032702645a48986b3adca23e447a3c378854455269ef941d0ff76a8619f1e1e2690330671d3dfe31008b26a5772b04aa7b3c149376feed924d12c4ac82b55e82448c030aef0e483bda9043fc6e1d89f709313df32c6d3724f3d00aa3271a0bff243928032c1ea5b73ff193f52319589b5d2bc89fa5e3f4f84a2bb1d9c5579189d7beee12038725410c20553416ed8a820f5002a27523d239ff0c9b7f4b7b49db5b07d0b4e20386e8492622957dc89612a2568aea7c30e85b142273b08a2f5ee300e5a2fce146036274d7231d5a533724b76e4a84d43f1d92b8136188c13568ec96272c0617374003677f54538bddfedd4de83f88409f6f5b87700c191df89d4f31966a60bd9b5ac8034f6ab5c0fb018a1581ea5cc4cb25952e4db64f399d17ed0ac2b250322ea28576039804bc20003334524dd0577d88b846be2dd2de716e0ae26ba56c58d06231943b039873cbb49a6deced1a51f34cd506812a691c2bd8ada9f6d38dfae11e9c9007cc0379078e69b5525ecfb67682d1f2a41b10a88bc33bc4107c0f529167656e022d1e0358d345fa8b648adcba7b8f9289d7e855876c180d7e96623f2219cdadef742e4c03afbd724925243ed0d0f820de679d65be86330753d1a1d262ee63bc0c2998dc1403a0f140946c094de5f4600c217562bdf4077d9b2e21d6db6396f0490e60021374031220b82c9450c8bd3354a9e1b1699b97802f1bd40b0337104ad29504179fe23103c029f81caaf99b49ec46db6bb3e1f072e601629694b197280a0f321514d3d859030634164a495ea3f3a6e90dac56859023942526058ff269c6d8948ec406f4730003c7ec109373730a72997992440da8e30333dc8d0349739c38bd1613ad5c88dfeb03722488e3b0f411834507b467a3e083aced971312069f0e0eaf4874740d86e78403a76bd40d7006e0f6d83a3dfac9097121a8f92a43d31211fb5460cccbaa4e695f03fe8654a68a0adcfb6c1eecee0eab17b151a206deda2c685ecc0a4fa485b4b5df03f7bf28e2e82f607214188f2fc5aea9c02304517397fa7e75a5a75c3c39904e6603d19f5b9e8c72badfeaddb07898b590414a9ecc4448ab4fbe1fbc14036857c5df03bbcf996cd78d613817b9002b0bb66a54ecb36ff6e3ebc60877f1b3f6c8e47d3703d0446455feca009d6c0d7c57c3cec569e7f5d497671feed32d4ea5926e4b219103b81d85aed52b2b9ed728d2bbbc6708d8aeb45c36bb6e47430dbc971c57dac82300581e022ae836005f625e613eba0ac9605b290aa9bfceeb412ea3f972eae06ca34e06d2a562739a2885b46fbc1c0c9c00581e02ecfd9350822ee2e255a9d85a676d1740c3c7a1250be207792404b07ea343095db300581e02c0701c6fffa768a0d6ae220cb8feef37caa2da10dbd849bbe64c5438004308eaca038660b0f4a10ee30b06e6455d6c9c61d7f3e8333120d21845e6d99499a262c63d021948420219ffff039808a9265924352ee17ef299f26e06136833ab3fdbd8a69715b01c3ea915f93803c134cb0f0a10bfb6d81d49cde89a8040cea9dfc9c90da7a1ffc5fb87fc2948d5030cda46917fa7112c09b008d2bec1b8b4732a380438d4244fd888d618e79a826a0219ffff03b3e2c65777e053a619c47851e6324903c38eec34c4c3b5c3dce72550399c34c30310c7630ce9b233eabd9de91cfb433add48437a5a94d287005d12af34cceef98903985fe9690259435620af5ebaff67bd0ea943cd16d1cf60146cd113ce7356d1730380fb2afcd75ac031ccc78d050196dedeeba22b479321925f3e3ec55cd5f6744b03b328b59a24f05e7f1360ddc94cc80344af1c676e695f0553a06ad18761f2a1b00219ffff036a467c7ac4714a8082af38369d21be0726c1aa149ac841a9da5e29c4fee0d5a103be0b6a110788b1cec7efe2bc92f7c05ae4c9c65a90fe97488247e6f2cbaecb8003679839c614523e63c13518c6542bdbbca7093d6a1b06f790a0ace209ee59b12703f93eb3eb52df5fb22304708e5b098563588f12318c03f73353683b0fd307afb3037aadc4542bfde398eae6a3d787a973b17e28581ff736634c1b5e1a931d7dce8703b51d693937b0b0a476509a2c125864130dc0ae5629f8f3353e09ea7d7124cf1e0219ffff037822442ec4222866fd9cf4176682c2262ae8af146cbb792b92a3fc1e0a9532f7033fa792e9992eb23ed26b177494859716f035770c42263685ab0132f4da6aeae50344028892fccf2d261c4455dbb2a1f9bc03af092c9431dfbe47f78b8be6db297a036a08d63d2fe593447f66d5a09964e4a5a1ed864e33f39d6a1383e3ae1929f78803d0c33b9533964db5c38483abebab6d25c9b56af48040731cc9f9d41945b83436030870b0a890d0d4addc359ba6bfc8a84c9222d4eb72225f2611900df8594c2c33035499efd5264039237cb3a06a0655005fb5f2d8892fe0bdc6726f5169e69aa5700333fe6cdc1b9292d18b480884247aed9e95cee03edc65abacfff9ca5795d62eed03473da0ea4b08f8517474693be540d4cd2dd903a447e18850449cf0196f39be5c03cc39914800ea9df0687483dfff6195bda82236c3e143314bb257a568de8d255c039a9c23927e3bfeff36e059767eb2fda23254f2fd8ce051b8d74e0a4240130e260390e28240f5f22cb9c2e1106eb04b9254c0f827051f0607819c261e4a41a383c903e9e951367449031ff81ca8277a910babcbfca1b13d1fc92c8164d8e32cb5513b03cfe24f2842a5430fb48cc33df4b45f91832aa492fa660f01813cb96c30eadbba0342b812743ab55c2ab43d18603edef44b24d7b4842a7e19fba79650233a7b3ec203974ee1932d05043f891273d0ebdacd537df64ba650b00f2045c10ec7b609c3fc03e2b9a4fceb8975abc76d846ae8a3c21c0058d495fc3a6017bedf017cb6ad4ea3036723664ecd6da5a2076f2877b96258ea17ff7c169a5c68d8b9d4aead027d1c90031319130d50f7834e48fd6e931c1ecb060c23f5e37f058ed20b0886cb22817811036eaa92190b3db33252e0c61a61a1febfae315d4e80dd414f80e884a91846d4fb034bd741ddbf74b8c095d558267f5676a2fb7eeeabb38f03d01ccdb43cbb6155af0389d7adfbc5eea16385f1398528520e17194f3874a75d46c302f628946a5562ee035f169fffecdfb64cadb734e1b97b681aec0a46c633fca85bf7405a5aefe559b603cffe022a4d4ec514a148fc2254ebe29aea342152318a3ac0839377e30c196024038440f705e7dad243c2aa2260ac6169b92fbec9ee2d8dfe553292219618b4269503f516e69343eadc18266e69ca1932078f445e77de610911dd1e78dccfc33532f8038219ff98da37b6ed85255aed7eef31f7e57120d0167c91eda42020dbc231335203842af6e151d58dcea6c964fb73ca975744461f11ad0254fe8df16bb493e91f7d03a4aaed5842ad534f4dc3a4a5d1581b28c7c4a19918719a069203d4ed4a923f55039847b731423d39e8f79610b3c6c4dcf4b185e31c3d3fbe90fa86209c63c9af5e038a4134ea3cc843d6da807f2b63617bcb23feb6b69f856047edc665f37893e61b0380fc1e86d86ea05ef1abfb66394eb470b981688d36b32ad95b33818c9af30c4003d2bc6a6b74a67929190232b9438411dba274a0e440c0f1c1e3d80c64f9eb3b1203334adb489a5964f438c84e994457944288c95363bb39c005800d2902a4a72c1103c8fa9364d200adce85586c5c97381fb804a1f90a4544a89cde03b0d650d67cd5032d5d20932e2b48a7b371a871d4b946882b5e2f9e48ef8b2e8910f6fbd3101ccb033bbed48881c8631bb17678b5bf26bc9f6f60039a9f879c9cff9a96973bd4d9c203ebb3ecf299fb8551986bc97b832f7a8396cd7556ffa71d2c15ac12cd71a587370384f883d2c1db84c0b2162ae22c8e2d6d29b681ebd071ba39054445ca2f726da30316f405ee7d6462fad3a814e1ff56a98c68a3bdda4a789053c500ae8c75e33890030da1fc711a3cf27b97fc9c359e3254722eadc97288841af55e89c4b8d431c40103c7f6f3112eed96beca3f745f4f6d5ecd23c450e37f371557ac23b9cbc94ff17300581e028fee6be40be5d76a3e7630b7ce31eaeb4a65ea2efd3168baf1756471c45820fffffffffffffffffffffffffffff7dfc0369d42aeb3cdbdd9b9c215e11a361000581e027d3f2a0533280c64ea705854fd17ac53bee71e3944c22543fd044e3df6410100581e026394a21b467fdebdb990a5b219fbb20bab338aeff29dc97475b825949a5820ffffffffffffffffffffffffffffffffe31c9df0f520da85cc89fcd938fb4ac0021989000219ffff03e299c18205d31ab7cd98a907bd2f3ae73d9f69c85af7fde9016f7a6a55a7bd5d033d7f7c63440aeeea1790474944d11d88cc84a55c86b99faddd9a24eaf17ff1ad0340003c768eee3ae5b86464e6cc37451f8cae6c96fa1b204d1fc642d0dbef276d03c0c063ce457c9b4eeeffb92d5bde3633eb431f4a29656547eddd5f9b8fb913df032b0fd294067a230d237c3e4eb8a3d2158d24adf4643782e71cb38970755ddb850219ffff03892ca05813fb1735b1d4ddf9ef17afd4d3029aa0c7b66de9f044b092370e236e03c8520eb889e68958e3480ac9f4f31ba042f7692d578bb28c9e39910ce1b71a83038e07727744ee40840317b51967067ad0d69774064181ebc4df84fd5d6a7de13903c5f9e70577690ac2105702a22619d743f955050d08f176ddf50a2a7ae32e0a93032626224bfcf2f3eef3d4a3f9705baa7c7423378dfa01bb916affdffedf1640bb030d0837bbf3b715df496cfe1fe9cbb941611e34a059936f40b2c1545c07dc642103e970eff3d26cf3673d6c0ce44086ebea38e6f5e34dbd52f56d9e89bce8a3ed110363bc991e095d0aa38fe73dce88be61c9234a29d2aba4fa08575a78c687f11337035235bb2b09358e17f8badc1d3211d35fd5f2b932f9138e0ad18481f910503ec60219ffff038d6dac3f9fd347cd51065b1c9fabffef6fc3f51848dd8b4e1425cebd8417878d03c62a92e408405fb5843e6df74dc9f0906b59c4549e4a1fa98fa270696b07eec703da63615e30db9432712734c19a59fc98e95aea9bb1409b9834454945bef9014f03ca90baa1a6390c4d0bfe4d0aad850b000cfd07719251ccf0e909872eff0b6d3803f81e3ecd2ae447dae530e86e9ce5963863ace728a8cf899c276aa5a575d93506036ded124119388b39eaa1a4dfb5048f8e0c5d0fce3791e0f8cfac576b4f1317f703f29327d239e5f0bc02861b41b1119d893edcb143ca264631e9b6bdcbd48213720327a120874279ae23e2a851ce7941572f9daf90768d25100c5f459d5f0ab17d42035f6b59ab382465f6207f9766d2e09a42b226d1510f497d00782ed34cbc04296a035aeb00e127dae389de6672842720588f782c809d24180d73cc0c8dfbe62f82d9034bd85c6399e9c382a0cad12f37ee73a6dedb878fd4279d0841bfa57fbd09f0d9033fc679bbdcba58974bee6eefcd0263312a202c9774c64b519aea6a1a58b1205803a9d654e3e8e3589aa69aba1ba1a3da66308d19f73653ce370714908dd8fca74603542cc63ac3a223d1d3dd3c422cd82e57c25bc76e990079f478352d7e39d680fc039ce6cacacdd1f52618e7e287fee0e94fd91602c28786189e02e075aa1dedd68500581d02e25e54599265268619d33c032c699b99ead6ca08d6d2b89072b131775564dac17f958d2ee523a2206206994597c13d831ec700581d02ef97ef0d6d132c441fda38e7bdb0d70bb9d7ac488f0e7c0bc1848c144f9b08963a92b110172f777a4f7d210b0219041001410300581e02656cfca06ce4e2ee9453732e8ba331af7ccce9d21760e002d50a1f872943048fdb00581e02b3b1182c06509bbe48b4598b522ac7468f84a6965b11112b3486d159555003f26403e6340000000000000000000403ba4fc52b18331581e460d15eaf0d2110182efeb73588f24d803c5100b1d2de2200581e0240faf1d86cd3253faedef2c328479fc720fa6e330b03fdac06336552ea4e1e69ba23e61ffea163ef7a3dfdfa00581e0262ebdc7dd0b2ca45a2da4f641912c0163b11a3f3d823e17a9bf9d047ca5003f86803ee40000000000000000027d10219962403929d1f0ed1bc45d755ba68759281c7362a69be3e56f06784d3e809c2f17f3d790302d9b9e0a1046c0e8a5591319c9b4753145667ff5d32f66bfb7030c9854376cf032752f842f4850c68b32039d8a1eba195acf316749cdffa607e0e7c15169e3b3003ddf4b9b7e050ea354e0610d1d32c43a2ea15baae41fba7d0a8ddf146f815694900581f03a81a8357cdb1d0d1f5c1d31ff5126f53271e0a1836dac0b5883d7c9845704309d413031cc4727585197f5de0f6128c7e76d320065d43e64faff2ae296e7e6302bfa7d303b1cf9527e6eeda32b9116077a4336a8adb9d9831cbe5843735b08bc93ac290a1030dac0db094944c3418c7528bf75bdae35177ba3473eaf48e93ddd4c0a2a3e834038aaceb4e43ed664afd799f2fc7566b68b6a9058f2ba79ef4b2e80044bf99e436033a5c69ec695ef74ab011350d717c6ecc6035e4cfb2ad3e9cc746447bfe7ea1980355744934aad138dbe6e136d8ef1ef5f616e97a7231f31a143510ffd9a1a33d840219f7ff033936bb29300113a76086ed70420ec52632c7c98d43f51dd2bf649e1b59b3b4a50397ff928fcc991340e07b1e462d1847742d77a1c2de9be171813d69b6823444b403b09c17ee3e40c6c727959e5f7dab4a18be008ece641fe6cca6f322282d11ffe803d311300907e5a248c91514fbe407ceb7b9a63b1a6a4d8e922ed4be679e634081032c95b80271821cbf4519578cc1644a897b27f17c0d69f53d06561b49b4301aeb03a85937c9646a76ef2c3b28ecc5bf2ecf96c9ae28efa8a3c74e2c6444477c246a03593fd8c34e2793c0dde3594e89b1ac4dd8351323ba37fa82a68798374349649e036196473cf9678ebe3e9e85402256ce4cb6a9e1ae43e7d68f8e082b6ab9c67fe70316b77d8413ae10273bfab21a1783348e05da72b9cfee897517df0ab1ef5aa22b038cad274ed137844e7fbceff452331a4c9af8911e506722369a1a0c74abead25303d838ecfdc8151fefee5aa9ef19625817880454925d53016eae73cde327607175035fe30121b4447f70b7b4f06c8a62d8a9f44e9364d456fc09a1eed2fd33b59a0003a2dbbba0784101dda2df26bace1b73f91ab77c581d875ed5e6addce08e3e2d1d03b50666aebda291403aa36fec5328269313b24d2dcd369d2bc2a73d8fae66b1e30219ffff031b5374195abcb12661deb30ce6874fe56055a6f45f752d9b0ad8179197da48c303b4b7b6d8355515c1e20368c70c6dab9ac728bcb989805412dcaf9a22e1611d0f030ff53b650d4d5d51e402557aa289e2adda8f042758e932be914eace34d32b3c703bb55609878e05f5a9fd1fdd0dfc4a7d6917bae94eed9c30d21d37fffaea5a6bc03f83a68aab57e9cd32921bafb07331201a3287eea22d18eeefb67d7f821e087a30219ffff03756aca7c8dbd6ed042df66799edb4236729242d8e9da2d50cefe254e49e53b4c0394ef6362e4f0fd2249fc8faa22e13bbe15a3960bb9943c643caa4ecd7b68383a034d8a23bfe15d122e3e9e836e1f6330efd0da65070a2e1ce7582326eff4f697880219ffff03c1c4507cb4d8c6640179f48d2fe28f4430e1ea42ccbeebad982f8d5fa4ebb65a03b9eed33acf9e149cd495f6bdde40697aaa0eca5800cfa15e49f0956bfa817624034cfdc82086015ad385a1b7c07706e72b8d5afae89e813354028f4da743c44bc20309d7ec01990ffb21ff8ff49f16fd9b6af8a36d56b9a5b79a1cc7ce267eddd8f0031e3e76270c3f06b6ae0f7d00a71fc4fd071d438d68957157362a5bee8e77690a03e1ed5eba9d782bd8a421af5b0e6d1818246083be0d446a4ab9081d5620064f47030182c00b98d22af17e0a3e0aca9edb2fde5a0f2cdd87e24d4bdbe203d849743803649e67e90b6c17cd86d968766ad20429055d8b976dbc5c98fa06588abefc392d034e02aa658e0b9f6a2e4882ae90f366dce32402fce8d2bf7dc0b16b484aa09ac303e3cbe7160ad2038fcf904a21d1911aa51c9c113c402585f6da79a591b302f946039f38cfd7f21bd91709b46c54ff367989cd83905f393cd10ccc2678da055ec05f03cd4b3aff33293ebb5658d1daffea48c406f8c8ab0a88d89887252c872d7c591b03ce6f25567aaef5be008408a118217f7a087d0d58423045c9508e04352ea8d333031a777f69c274bd9186a7bf73b7ded4525ecb0128c9d077809073c8772c24666303b4fb7ae25f6acee0f2b542986c1b0fdd7e5fc6be1b70218637060cc7ed7d2c8503741d5c2409e4224bd0491eff64d72aff3314b4e600d07cebad51e9576e52859203c383bc83cd74792c0591d1206d33d25e84c73d4ace6ceae8c771f548bd38548303b2bded1da7bb8244c0973e2296e3d5a47ac1958768d8fff2748fb162da7db9e403606291e9b4d874fc91c71e58d08f0fc327928458e6cb76e163921af7928785d30303a3dd8facc1102a9279a4072c00f1a7bfe7d86dbb558395241eb5700aeddd7603602ecde1de0e30f0131326a818ef40f52b2ac986d662cfff6479a66b7026cc060332f7cde26f118a5a001e955884d54c83ffe5a393a41715868fab9c99d27fbc9103230b83b3a2ae4ed06f8d88dce52f87aacf5a537ed920cf08c50ab97310d3cf9f039968f71d42f843334fc0280e298346291aadf63671ec79125f8083465480a256038db106f944f916612d8c33d7cc29f6de8adb987caa405ef01f448c3fa6794ead03180d3d14867e48ad81269d9cf198006f969ee1615db85270845f50bf85d2917e038ccceecc8b168f14fec8415527cbc2e98dce7170384e7e50b8f1e4dfba1bdbdd035e0503469398867c04a0be6efd63dea01408e3d89c4c2e6029ba0584cb85c665033892155441a4f5dfe92d9563562ce2fdbe43ab9ba3c8bbd8363ab187b60e196503de54d184f77c599589fb6b29d44fc92a02b5bf8612d47df59d6f8ea1c85d978803cf62e92ec5566cae4ac872fe5b5c49d0942645eb868d2ed27da3d11e074d76bc03a962463e2c4e12a767302b05345c470d10aff49c0ca68177913d70b9a53d261d032fc54d4f6f6553bb33d72a09b707232237d9f0b7ed71915ec6e1c0665847f8f403c742f609756902568f7d4554a41a5c9abf6831bd9cd7ec8becd019b607f5ea7703b71bdad075efa605df36cbcf5718896b70b666592f06ba44c549d11de6555df003117a3b380d073f551103a80c7bc101d5038ea9f75f7319b8eee34510e4b5154200581e02023dc8021c4a27890121b6cfac9fb7b32eef469d46ee6559a359cfd23f410100581e022403897ec5a066a63b8dd5f41672facb2a21fa09fcb8fc77ef80bad07854ef9cf9985270eb35674214f7038610b2695cb98000581e0224b5506d31e4a5ce7712c3bf623297018def483932d18662622e59970243027d6a00581e0220c75d436f703becebb1a2fa5a73c68594966a74c0f73661db4fd43e704302511002190948034703bc9b77c54bc1daaf275dcb33cdda542b4173cad557a4f41e66ac8f74f65c035b98b2e0fd275dc421a0b4dd89bb9f3dc286b1f76b4f2dead8fa8dd49a35640403689f9121c62ef0be640c702bfdc9568bac7c25404f26e5219b4597e7dd54a67d036bb64c888cc7c94b4e0f395db3b3dc0314514dcf48ae31dd87c2e5c770469167037c74af7f5e576005cacbfd850761fa2ea20f8e49c48f1c6d7c58e66a98fde4d1033e8bdb7e2eeb50bb6f303bfc383ac432b618c140b063f4ae7abad186335ab3bf0393186550329e949aa92e2e0ad88818e7cd500965eb9167770fff8164117b9dd503eb480548497e1a6774d04ff5e589565d9b05701fa9987c4f06694be34e90fc4f03519588f2247482534190fb480cc5683448daef792e8132f44a19597a7ebb1cfe03c58a0225923c362f7c68351d8add87e57700c0c25ddb6625158331040a5e27d9030e88f8156cef4fe682bcc55790a50262726738ae7f3c13b2e871d34bc22af54f0333d960c64609fbd253c6eb94a321afbd67754db1b91e2b057affcfe002c94e2903f98d848f6d32c253efa6d4ef90e47c20522e69d80f1f519bb772187b1dbcc6b9034dd1c450666f9bf2bed403e8f9a7a1fd0200134b24eb4729e77b4b6be9701d940219ffff0219ffff035284787334064aa47aab0cbe35e4af62d873243c993b66a927c24c4b5b2306dd03695e02b92f28f096dbb4d5bb6637321dad8aced04960487d2b6981cf2ed42272032734b7ef6514f9f0f0017bf8ba437338d443a40f72e18cade9b138fcdfbbd1dc030f9e9e82911bbd63d45bbc388081d5389eaa35d2f9d8588c98cdbcac16317c940219ffff0380fe72cce915a7e33d7dbeda319ce4b073a04f96e9a2ce8175b5c4ab504b57f6032e73984eae19335a6654ba7d7cc3570c178302c0f2cfd39de83250591f4e4477035f5d8278cf3a3c8c3b5aee966d6bdfa1b6a8480fb42e0e6e281717890350e83f03b7db5100f33f6b99fea396bf83a0afe6cd95f00dc5a59c4a2bddf987952d773703303ec55a912b7696c853579e7672d49146977282b07a293e222f48d5e9daf9a903e423ba888a9a27f69d8723732593376087e85687ee2ac7ae8e7a16bb774014460358a2af3cdaeec6922b9f87b52de99f678fadc4962331bde9fa26690615f6742103f4410391a2ced5efb8d8cb6b0595abf7d4407ba227c048b697b3638de3e332dd03c5cb8d3325cf04026dc28a56390335e8a79a335b4fcc2bf6206a922ec50ce6dd0391374254bfa691f78afcd76bde8000aad084985fb5147ae98f8772e539df92dd03fd18dfe0ffdbdc2a1acd4f72952c713c897fa3d1b834493ca668ca0e1755560403d74e8f4f51fb3b7dee7730cbf4939685c8ce82ac190dd5b6fe88e0faba0b3ada03f9dc1f9c38c655d0b5e62030a58463d1973df80be92c93509dc05debeedeb79603e00aab63bd35f025bc316a5ef7a13160ef156353e99aa5d18c8465082703c606039663b154c02b48eabd8cc1008c89ac4467c0340f7f92bcf49d55a3b495e02a5c03d57e5dd8a13b6a63d1e72a448ea9b4f2c37f309ee77607b244588d762514fe0403aa3b687446794305a14d44e217df89db77cd17cc3138ab489bbeece1f7db9975036a798567b88b1368562b78d6aa93b506d94fa8338673d28fef949cc927732ece03fdf665fdb83d14ce53b34dfae7ee32f9e67a62d399927a55ee187e1318e82d14036e2e85f39cdc36cd6d0d32b3b174a3e4d6bf00b8791626a6be34d687a33facde031d27ed3887e38d5d80f912537fe612f14592100119a89bb838d940aa2712d3cf0367c29800cce786a277cc0fab3087e8748ad98c6cb4968ef38c63f3fdf3366190039ebdf258e0d1a7c9530665560eb6ec5acc1d9ec94390c98fd9223053f2372bf10384e2aff91f6a60cb5a3ebd3b4f7bc701fc3d7e263e8ff4c58b3230b8d38edad103e98b07d5635cd21bfa0f7edd8224c1cbc82d76a2951165e80614973c26faeaa40320ea30a610ac15e0563a8f34e36230a700accf1df69c0e88d653102e59c05fe700581e024ca03822c6a28e4169b1ccc199484bdc0457208c3a1dadf8fcb5bbb09f427d4c00581e0234a4be05097b5ca7557afe46f97890679b653d6b2d71280a72a75333d24301c52300581e024e938041cfab44746e06786a2952876707eabf9dbd9f20db4ac5743d62410200581e023896b88bb1214191f7f39bdef455c795a7ee502bc845eb2c020b2797c1411e021908380326e892bd5423fcbef2b30b7c24860327e29d4d576278c275ff3d4dab41a727de03faceb5332197c34d8b3272a2db233712e726e1052dae0874d5a7010277c5050b0219ffff030fe8e589f1fcf6b09229beabae57350d97206e6e6a01d6212a2fb00203bcf31303b0f7e83a19dd9d8a80969cf55557641d7274f37c576a22ff896c4c4d3ac7b88f035f86892fd908ad4566a57a9884e08527aff8373a5811cb62e6507906f31e228603ab2827619e4e7bf27c21e0e04641fb0b73cfc746c09c3b746eedaa38176b212703277522802c6b066720b387d7ec67cc77e07a64f29585c449a21d3bd89e906b1c03fa71ec34d3218648ef6b9806e3a2aa2c9c49faff043174253faeee3f75f447d40353021e4947a0c828887a5a9801052cb49e0aac7651738177d5546470dbe1d9d5034f8d6ad4f6897c27b5286418353d9e5c20ad854c2123bc55ad9ff7afbae996540351834a5ca9b417c382326035bfe3bc561d95a77d4ddf6a5e884b810eed11a58f0219ffff03851ff4ee9645107b8fc1fa3d481f06cbcb896aebe30a0beebcf29f7f3d78169503358a783b375e675edf0330e12dcaba47ea7fada743c87e75864fbb023a6d1a1603a32d73d3ffbd36f5f2543ec49a52bad2ca51d44370ffc794a37274b3f738be6e030d7a51923e8a37ce7674aa44b85b99871404ed221f160553aaad24bc493baf0303aee89fee356f6fdea663c49656a74658868dd9b8b608759ccf9b4ddf087d89c3032f9142274c2b9e16cdf92cd1383c83e2f36cd3d10f8e433bc5729abd16fb02f0039122adb1c13c904d5cd62a442f68b95ac806497653ec4e119c6c8c02af5d924b03e7e68e429d3da526f2103022e758a2446004fbd6756193b5907bb4d24aab794c030f5fa469bd1143f15f3412d331d83728b94384ee2a9917813d9f08c72af1f0a903ac831c245e3ac0f7e9b70d3ef4b4e00be17c97fa2c1afa26f30f766f756423d9035d48a168b05e951d5002056b271f3931aba9877476f82c06ea6eb98cba65c2c403818cf403ecf4bcbac22b707bdd94a13eb200c0d13bbf9738a798f4456f9a61630303de64eb711a7847ffc3b50501801d1e0104d74cbf836a0ce4d781860d9bc0830219ffff03dc2c210e2fece463277ffc619382aeb8085fa4d56d833036f37038c8ab8acd120219ffff031c17a4a2aca76e8d9289a2b4bc75253da0933399eba99be5998921457d3275fb03804229df1c58a15a220cf4b4358beed196f81d4f033393dd7e5824bb08489b7c03c5961779d92957246f6c491aa90230eaea77e14073f0c718376326150dd46d6803faba01ef16d93e9da9dd1f2f5eb24772580d6058375d1ea13de90df6eb973bd103ab27570b0ee3b327aa5eff08d6da877588953bd5ff31e81518dcfa009eec0b6c0380a1d00971dae5e060ed0ba4efd828cbc8e452f66e0aacb176707110cc436dc703cc341e136d7aaff71d1ab79934ccfb6cdda4b469f6778f2616bc749efe5b4268039d4fdf343757240e6cb327ae68d064c047b1924307ab1a393578a1064f03e87a038ce67999e6c4babfdb29400ca501ad608d77598a0e381ee5579b745bb690339103ee5027e348eb9fb2eef5e7cd62602618f110b28eadaeb60225de872b8ff33541031a0e2be1c091727a0aa87e8b3d71a9c85a6a4a24f8c46e46fb358c919338692f032bb6ba72f08f68e8eb66143d1c71ff25982d65fc51d80e6569c05c04fb3594a003956d19fb52a2ffc50e2c745421a9cdfa4df5e43d982b0231281207a446ae1ba6038b7048bcc8d123fd02099db767d506f2123bfe54cb52270a3607963fef64533f03ac94aae2c0a0ba6a4a9cea1ad4a2963fb0b0b94b7c800220ee3281b33923e1c603b880d1206a3c6e8738f2fe0921625648bff9c3050af4dafc80d9d7be5985caff03ed89e4c4848c160770c1917ef82e6b4ac19abe6bdbb16f813ed614c18dfddd1903e581bb11a323681f42f1e4af5a997e691bc0607f15a18cac26c3e5eca738ad990313cc2dbdf07d3c7277a1129d13b2170d3a7369fa3a7409f34ed3ed6e9045b7e403bac70542b10e18005bc78341ec9bc4086ef677097a0171c82f1e51c5df35845503d12fb1b1973a6f3a23e1e33cc7956a1bf6c0f1cc6edae386b73eee8ff299d04f032affd363a08db92c6aefd326ccffc1f13631416fccc1f48fb6445bfeba9217d403e97ab5c61ef5cfcacb7c7a78c5d269d50b03ec3da55e09947d114240df6741c8033516b3313511863c480af678435d6d665414b41935a7783060f9d7068875870703589a4e2a4edf439fde90461eb70ce64f7c5c8da36c0406e0dbf574233007cf3803fa94f5f460a04ecd69190e102fdc9ebadfc1441b2db951190d2e17218051b54e03f62aaa2a10d08f407d8041a6507ecce053bb7a121d37569feaed7297fc5562a1030f6b2de46b9dc213cd4c1628a89d1b6e03a74be7f42f3eb40bbd72bd593633c70317080abf07c8f0bca4e49504b5c479825fe1aa202f72fd3fe168b9c167c0e88303bcbdc875ed259d3a224c89bb752ca8ce1af68f5edb3319469ad1a1783c5f5f100391584185d69757d2231b4cc75b8e23c91df9ff4042cd7d3ccce506c254d5024103a9a843f11e8604af9fadb98647bb146fc8bc64600dc86581ee3091607e1ce9f903c3eb73bdf1a3452a372abf05f88e1a4fc9698d89b92a9805502c595460e0e86203f80e84a761dad07f3f5a39e5e76ffa2f745f41b13ef5ea3c6da1b6b97594c98e0384fe0c4b2f3e3c5298ffdcfb32d39fbd222178ba17b412f38fcd115c0999403c03ff61d830291f41f9514365bbdb0f46fd65bcb6157a2fdb9031566c91a73a09e8033ba80741203dc6e624fcdfc2156e594a5c544e99f58d7304fac415068a25cd3d0324edc59a61ccd831562b5ee4f27f25fc8ddbef29c22dc13b14b970d97bdba07d03ba6056ceec4bd3643b38c031c4ef33193e53c82465eb1d25db75ab2217bf7d4b03ff1218ccaad44e237ce8f4160e462fd432299614df605191cee29a550913fd080389b94f33b61647c876d5c22007769aef298a2cdba838a128953d131ce5b6c2cc034e635deb13c38fabd9977a86c15fecbc42e011baa0be17c8c40a20b190bf906003cccb0d0ed01f5db2d8fca3cecf0737b93c0c311769c8ed7c209bc93c91e3b98303bf95dd69d6100922617797acf05dba15635d4021a023590a3381ec5ddfad2ffb0356ab5a126c61cde2190a307dd2e693a63f20434380150e3f28e1d50d75d7d93700581d02d7f441f3b16e682a4c3c9384c5e0b1ba0593923c5c0ab4c1b59617ef544c9edd5852cd905f086c759e8383e09bff1e68b300581d02191336628618024851616990427a903a86ebfa4118bf53684de1fb014101021201410a030e9d806fc05681ec3efa3b932fe0cd03e1bfbd896911c159e27755f63b36621300581e0278213a1141600ed6b58580f9501065785edb3c9f3acd90d6989dd935574f02b26ecbf95a2887d210227cde987800581e026e5f5045600f5e5ae6773429124235998520c3147b71299042663be3c8430831cf02199a0003315bc867f7364e4f54f4fa7b73c52a33ca2b6e276fad04f2577d363cf25f3e08034afce8a6fc218985d3b8b15b179695f8f3ffeba94df24c5a1effca98ddc11cc00219ffff03f28788b74bbe49b83bf9dcc365bf8834e0d7d45e226366701f64facc1fefb5250219ffff03d5e57f1aafe85ae0b83baf1e736e9c0ba998313911d87b88e8b4d39daccae772033cb2b91682e205700334e50cdad22a14184edc06fccfde1c3bfc504295e3b96a03432d7d343fac5e7191040127a72e0dcf144294adf687898bab33444abfc3aedb0317e54e1d24e78a9181383e7ae2f7b77b65c2f48e2a4d8b6ba32e3dc6358fa61e0366a7a6933517c06f47077ae859ac9c590ee65898171885d277a7186897bb427f03e211d9f7df6bf44e146f242bcecd4b0dfdfda8e68e8441b6eb0840c0dd49cca50356869d49e05e1875b7146f34242b92da9ecabee562363273e3568335195623af030439b74f35a3f5e98aab153374bde2a1bd3ef71b42ac95148586a2bab2199ec003b3632a25a75ffc8e41496d1c7faf2f1746460688580a13385ac69be7fb88359803ce7992e01fa5f2495c2211ff036f10e1a099e198e9b46752460e9a2136f9d20c0219ffff039cd18760e1dd75c028c4aa9ad7503557a529cb8fd6e42aa142b2c1509b7f4895038f616acb11e1c1db29dcb740842abac27b8e7822f037a08da32d08d34233fd2a034d1e9bf46209c2d1ef669f496d2bd435b7030b739c6967f2d2476308b42cf8c10354ee4ba59cc358327c78adaa0c40b3190ba5c57fce7031bf02fa91a8ed2f902e03d9ec725a7dd7844816b32bd35db6f3b53df27195c15deb85f0fdf477265a84cf036b9c44407e2776dc03018eddea7d591babe10cdc6e374d8cdeeeda6b91d0e2300219ffff031bf0661aa67c6687046866d46f4f13c78b8bb810b117f01b9ae288f06d0f98780219ffff05581d02852b2b985cd8c252fddae2acb4f798d0fecdcb1e2da53726332eb5590701195f4003f1b574431f3838d9cdff6e701afd5a058652dab5ae5523288a83d5fad7696139035d1e21f700a49be24991d5b20b17b5bd6c9f9a8827fdcdd22ee081f8bbd1bb9005581d02d36e057d869a68eb7f68245c0911fadfa9d2988689e9bfccf14ee86b07011bffffffffffffffff05581d02c1873aac8701dfb9788b7e30d42c27f9b9e3233a2907365d54eb79c70c014745b117b1c2b51802184305581e03d0e47ec1a88b32b7d00e74a32c5b626e505165b3761eaf73c65b2e2330040a05581e03be093c75e19273255a4d36b1588cecbd6f333830ddac2a77ca4ebc40600402031f8b67be329f6419c9282095843235301b6b3475e42bc9e3262b646aba8072060605581e037396b106a337caa7009fc90c4bbcec8bd46ea87b792c83315f731c30c007011bffffffffffffffff03146aee58a46c30bc84f6e99cd76bf29b3bd238053102679498a3ea15d4ff6d53034cf57cfdc046c135004b9579059c84b2d902a51fb6feaed51ea272f0ca1cdc6402196bb7037b11729ca02cfdb82c31ca0ef2fac9b312f3816fc350e667a03bc76da0eb688c03d83936fc4143cc885be5fa420ef22fb97f6a8dd24e9ece9af965792565a7b2c803cb1aa4addc77a7c9549559fd6c4c6a9b47e56fed35797fd78db6a89246c33148031be8a40fe1ae16818a4ba41e4f494cb81222bac31ed5678944b21d87c7d16c6003390cd247e582c07e469ec3c9e3b2f68b8a68fcf426615898820bbd9ee20d48c7039174afa82e6d27dfdde74f556d0e782ae6222dc66104d84ea0f1e21e093578c403d5728023f132b43b52e4b2c7118eaa2082c840dd8e60c5837d7c3c9774fe83c703aa9bab6493380b65a966c81588024344834cd342fdf4c06552e60c980658cdbd03f1daf634c5e2373e4f40a6b74bd0ac7debf85d3b2745f24b8162edbe1ff0c0310219ffff0307e0c38ae1edf1b44f5af71853cfe7a849a45c24a8e53b70dbde93ad948d2bb70219ffff034b4902bf5c213e9ab241cbd51494795a50361a6567ecebe9ac0f6a280125a58c034f74b2f22c92c07da6b2d3b3187b5f76c52c16b3cd1e42e3d5fc118008420795039fcc2dffafb2ac9df38ed77005e5d604bcf897547911a3b6302f3964d0ba2c260398ec0fb8eb0d90204d569c7b0f2b70a0ed61095434ee91825b071fad1083dc8103e5600e2867eea747d1c7ea9e38e1c5df280d5f972168cc0c3d391d033f236236035b914c62f59ccb8008bfcaccd846a1a9905648a5f02b6ef15d3e93fe5997f59703115ace4b4e5f9e3007f68a4a21b405522e0001a976e7d3bb533c5485fa125718032277e7d19a805a1a1a86b07118ec97cd5510c2496c963abe92a91ebeecd568a6030564e05adcbaa8c8ba706c305fd1d3a8db1bc553059c732604688150bddbba9603fdaef024f4b49e4a23c1f8cc52ade7d7dc89c6555f82007f1ecdb8a49c86b6bf0219ffff03351e05daf0f19577eea1b208a931429636c0711a2849939d2ae643c025ffa9210340877c78f72cefe9d99ba83622a96a4fe676f96cf3e42fbc9944b08ff42ca84f03b4987bfa7fc1f19471d9a6a2aef670aab37fb13d4aea8f97970f0b45b60f8051031082b96641c2b4fc3024074ab8215eb1e382b0184bb0b31d6f799914000ac54203d8c80607ac61001d7d38d4f4c2c4113a83047415d5dcc5a4fe434cfef7ccc2700368f2f39cd7c31e4ae926ed448bfae8d16f576fd550110335600e2a11818a955803ba77872e2d64bad84f6f01466e732a7db02bf9d70767b4f930da3d9b75ee08590355c68d178404466052658fba1a558673ca156f391e89dea5c3911acd850ef74103904dc1a0495d97ba63295d8e4f44d7872d8b6438671391c23fb80571983276c50340fa92777f5ccd6c7f04778138cc571197bb517de2cd53f434a1a929b285c7730219ffff03cabb92ecf301bf02da86202ca981a63d68a57cc37993fc7cd391d3976191ce1803119fa21c88d8d4fd0d20a375d928e620baa38ae550777df12b7f3b8454d9ec3d03704492001628815b0d8872cedcf0e6a56a0e7d518707e8a697c9e740fc96d77b03ed1e73c12215a8331933f945b6955659f9ac4adc58d4bb31c393649e0ef323a503ce880bb95acadf0dbf9d710187411efb5c1550bc073bc080e8bbef6ebc0047fb039bdc30931c681fe81ff9550cc482b80db2fed3e02b296f2af7a5668589f9151c034af0d9fe7b6caa5ccd15c386c59056fa4d1e11a07d4fbd74aeaef9d0ac3529c703c51d4b666cd29059e9c7b51334c99dee8e4e387e984a30e548ce4d69e317f00c03a6d5559dd2778e01cb01cc6206152a7483c0062373151f379eb2d1d65120365f03c0b12866852e32db0962683c988e212522de17dbc122a76fe9c5e8b26efd041703c635522cee44178e5384672e6cbb472d1fdcfc59c323eb87d407fe9ff52d4a6f0339d629c156c81ab7f16f6b42d84ee670b9f376f920bab387731383e7533470ed0350678c6cf53ce05ff81234c7fd130c176ae04abb22935a2be434b2b6562a969e03262b2bf0c2f06e40c97c0dee10269809be3103ab505f0aef5d73ec8c43e5590203e9c7afbb22a05b1e1b9e3e860394a60ee0e0052187810a4a494088989476743903c3993bb200d9b042dec1cee2fc5c1de29bfaeb293895d31df2da37f6f01d48420367e5191ce4dd865f1ded3a961fb51bc1abfcfac2996b5c6748aa35e5793597a503423cb619b5ef873fb890a6b4ed2343ad39d80316613277d57263b00a89bbcdba03c56abd37290dbcb8016f2c0db29200b750b9c48bb855973d531e48f2165a81b503867338cc905b655691a11caa6cf15bb5a26955e1f0796bc39e99d206b8bc212b03fec8bffab06f56a9602f882947b426bb5f2694103460363ea986988c24ed96a00302d303d7dd920a78eeffd29fd06266435e717dfd9d93a7ae5421961a873544c0032df39c0062882ba634fb24c89e7f9871ecef10a6e6a6e79a336f6ed463d5c942035ee963d20fd307cdae2fc9300101db6b404a69681233e54fc769b35a3acbf10105581d02a0d62ee604147430fa0d5cc09ffb53df3a8c77fa9ef12d035a84a1f907011bffffffffffffffff05581d02002471243875dc61ccbd50c7ec2dc9ea03ee456db9abb29769ec751a0c1a00019c89470208dba7b715780219c00005581e039cfe78d971959418a2dec4525dc725a105474136ed61e7f964644f75300c05470825843e07d5d505581e0306bc95f42ecf03eadcefdf8e26066b30bc689b897f1c7be45bda4a30d0040405581e036ab685a7926356d0fee3d77b75ebfe4dd24af17ac3a7ba2b552752b8d0040205581e03e9c79d077bfdee4a1118c646bd48d57871295f06ebc47bb4278bf2ffb00401036ede41d5ecb9c20ac9d3a04e33e1ab42102545d61f4aedb45c05aea309a76a640335810db24ceb31609b83309d8f8a58a0dedd934a2a43dd02e3c44809a901e627036892ab6e903d46049666948d8b2dfe52ee9b155458fd993095de34f9e10974da05581e035e078bfce8238370a32d874d0506fd14d25a3c36789ca38c785b4ebf2007011bffffffffffffffff03a5be7c1a10690997c117246b41b6b35a0ce427cf225ad59ed12fd32e15a4796503c2597c5b8351c250b8258c8430feff9f44c2503784541da25d0c4c9de35deb9e01410205581e032ecba29166f5758f67719578ff821d5466a892dbd32400874bb23269d0040405581e03093508f798b3b7760b464607eba73c2b6cdf8f4b6ed2995bd51cec1b60040402197fc503773777773b7a5c4e358c5a6451b855e3a4184af0aea6e8a3f77f9faa501987070356f64032e5ca1da6964b29d915bb2c1760e86bd115517dc04ffa04be361a1a2203ca1d1a65ce53e8cd1c826004ec7d70ae3f3299bf2ea9ae60461022270d808dfa0342cd621704f2ba9b8e9252aaf7a7da7c50133644dac60cf2c2035387f802c0b603949bd869c50ab05c805b0b39a59c4fb6c056c08c2cbbcb9aa1b45d2dd437c52303fd4647655b8ab3e5c62178ae910e18f6e686862f1e71be237090a1512fb464ba0396a77a847d366aeae4e23d60881bff47b4bf28910d19b6d2a07347e904702289036c5efa6f46beead17927f722f772fbfbb5bbd2a812a199f5507331c4e4e76a080302a5b6ca2f3b637f0e7a7474539f89aec2322bc42e46aab5e37fdc63323aaaac03946a0243ea957e01899120be190c59833a7170e335d3594b97080860995ab1da0345c61f2d01fe4c9b0ea40b4b040378615684723979c4ace77f5f29352efdf627038d89542901e678b32a271554f4f37fbcfe4d04ee832dd3cd35f67d2ab2b5a964030863fab86cb0f99689e1667743048da1960838df37a712c5e7eee5fa36cdcd450370dcc0d6463b3371410b5ec4243baf3c0588a37a7638c67025ebd2623bb354610219ffff0219ffff033348a19f761f9a013f9f9051b1c76e89ca4acb24b750307ae45c58582ade411a03dfabfa42d41e9fe2d345def73008f0cd640e2c5cc3ccd22601c68f70da107502039186387d2519ec5528e742a777d80c441705d4b6b82fe767665be26405e1bd03033f61beed391453c9438fdbfa9d948fb356e377d334fe9b7f7e2153bf29cd0be5032ab151e73a521c334083f3b6e24ada4a808979bab5a47aa6acd2b40a6426b03603069cab7b1731b74691b688d433170456cce3d733017395f2f8f9b0392b11ffd9030d7dfd94aab776c64c6946e9f8a7d483b35a3193f22bd93c1be1c406e719fe0803a1cab7785104893d265dce288efdb986a1e62d6eecd58b34100b1ee20a02d55c03dc017f08dbf7a143a65faa64dad3740869f8d3e82c43e21bfeffd886517002d3037bfd91e17ad9752f529f69b9931fff9e1e3839b06efeb8288c6f20f165feb238032cf36d912251771419c0ea091eb36b9da59ab583d5fb7656df24b49eb517bc790219ffff03bd9ad69d3af09e8344c65c9e9a44852d4c519544958ebfb0f7b08863b154a72c0367cc06489a36837bf138a45734a51c829dabd41b618e977a4104cf4cb5f55ecb032d4811a8f5cda2ccd05279e3e249077dc91b8ccbb0096dbb39582dda42b3676103b5c89d67233a453aa2ceecb567ac9c4a3e5e5c3495e29169d48cca3effdcbff803e63087e86c7ca1563aa91a97dc7f8380707ae87d98ef09df49dbae4678bc731c030fce208ad627cfcb1dbdc6aea1e6dbf7795b5af612dc9c75b6b327d908a3bdc80327d5aed7c23974b4686421bcec49c867ed8e12169692a0480a9f34de13f2171003d1168551193fc9c4977da6f2a58c9edbf4bc2ec2006c6d12e7aa6a3598725db003230048f25785bb26a779d020fc5e6cb6be195c40cb50c4425f60d8802a22ee3703622d36dbacaa9e2cce5c818896ec614cb8da171314c8bd5061dd6a4ee10a731703e5f2b775b9571c3d2c168015a9b84d62da9672a024ccef05b102591bb27d23dd035980425ce85e821a66b198fb9ff2fe0d3ed58337bc184d8924af0df70a4d407003cd0f9e865687b2e343f675565de78760a380d9afdeb7e3c3d06531bb7946ad9d0219ffff03a47edc30564d9304072f333d836a977596b1f4578dd4eb955c37c8a3f0bd1485031d19c03c61fec3a9d1afc5007a2b08dadc8cd501e69ab2588405650b68ada9e803e122ea0f1bfd4e420b06a45235f7106397533cd0cdc61b88bd9d541bc7d008a0031e657e39d969afc17fe155e5e1ad12146ccef06af81b79ca182ae76564408a160330c0aac11f960bd0fe30ba79d8a6ac4c2eb2ee151e13875de21fab7add2e378703a4cbca0efb90b7de08ef43c3884b133b653c4ac128f7d8404f310c4eaf6a5257037ece5a49b87b5b13ace9bdd6a434b3733e5b016c2b0b0dee4c1f35c09c83a296039d6b112088bf14df485a903ed395d8346ce6396d418dda6d187f4015f20d909d038315c4c6504c9dd8128a0cffd23bb98dafd6a48333c3a272b01650743865c3b403c419ff7ce6ec4f11f8192bdd0df94d97a67f562cfbb1fb82e178d478efa3591203b30d35d9497499f01e62f32ea7d3d0f84d19b484886fc76959eac7006cc24ee3034785828944b2e1517ea09fe4906189aeba0091ed5d6021f744f36e922c62864c036fe32d0a9a5ab946cf66a99541241f95afa636da12d809537757c21a5e8a119103c022156b8214f14ae6b07ed7d6607f09f8495ce96834636816bdfa3507e17efa0337b28daaefba8cbd83020ebce9594ba83a06db34320111a361b8c5cb9dbcaad8034b4094a73b1065cc03255111882ab5ddb54318581ee9a1a8d0b0d62391508d49034a7ae2ae6f01fd9572089f2eeafd48f7d0b4bc0d18eaafdb8114992dd66bf9e40344305a3045ee3b6ee818513d0a7fce38846bbb1bd40ffcbbd5507fb646875ca403e5e968d569c5ecb2ed410292966c7d0e9ef1e857e373a628b86355c55f083eda03ef84e446f0541c8ffe9061b3a6f8b91db73c6f740043fa542f2816899cf9125c03eb3092dbc0b6ca685693e562852332cc9858fa282123519c0cf413547b62c43c0396c1ef1d30267e0b36bf7d18ae3d5215dbeec28ef4bf59dfb6de9f0596d8c54105581e03ddf967f7d7ee2e42e403cf976b060ab7a51263c8340e269a3d90cb57500c0148064cccea6ef59ef9045937976080604052600436106101bb5760003560e01c80637785be7c116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105cf578063dd62ed3e146105f8578063ea1644d514610635578063f2fde38b1461065e576101c2565b8063a9059cbb14610552578063b1192e181461058f578063c3c8cd80146105b8576101c2565b80638da5cb5b116100c65780638da5cb5b146104a85780638f9a55c0146104d357806395d89b41146104fe57806398a5c31514610529576101c2565b80637785be7c146104295780637d1db4a5146104405780637f2feddc1461046b576101c2565b806349bd5a5e116101595780636fc3eaec116101335780636fc3eaec1461039557806370a08231146103ac578063715018a6146103e957806374010ece14610400576101c2565b806349bd5a5e1461031857806366a8fbf7146103435780636d8aa8f81461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632fd689e3146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610687565b6040516101e9919061289a565b60405180910390f35b3480156101fe57600080fd5b506102196004803603810190610214919061295a565b6106c4565b60405161022691906129b5565b60405180910390f35b34801561023b57600080fd5b506102446106e2565b6040516102519190612a2f565b60405180910390f35b34801561026657600080fd5b5061026f610708565b60405161027c9190612a59565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612a74565b610718565b6040516102b991906129b5565b60405180910390f35b3480156102ce57600080fd5b506102d76107f1565b6040516102e49190612a59565b60405180910390f35b3480156102f957600080fd5b506103026107f7565b60405161030f9190612ae3565b60405180910390f35b34801561032457600080fd5b5061032d610800565b60405161033a9190612b0d565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612b54565b610826565b005b34801561037857600080fd5b50610393600480360381019061038e9190612b54565b6108d7565b005b3480156103a157600080fd5b506103aa610989565b005b3480156103b857600080fd5b506103d360048036038101906103ce9190612b81565b610a5a565b6040516103e09190612a59565b60405180910390f35b3480156103f557600080fd5b506103fe610aab565b005b34801561040c57600080fd5b5061042760048036038101906104229190612bae565b610bfe565b005b34801561043557600080fd5b5061043e610c9d565b005b34801561044c57600080fd5b50610455610d52565b6040516104629190612a59565b60405180910390f35b34801561047757600080fd5b50610492600480360381019061048d9190612b81565b610d58565b60405161049f9190612a59565b60405180910390f35b3480156104b457600080fd5b506104bd610d70565b6040516104ca9190612b0d565b60405180910390f35b3480156104df57600080fd5b506104e8610d99565b6040516104f59190612a59565b60405180910390f35b34801561050a57600080fd5b50610513610d9f565b604051610520919061289a565b60405180910390f35b34801561053557600080fd5b50610550600480360381019061054b9190612bae565b610ddc565b005b34801561055e57600080fd5b506105796004803603810190610574919061295a565b610e7b565b60405161058691906129b5565b60405180910390f35b34801561059b57600080fd5b506105b660048036038101906105b19190612bdb565b610e99565b005b3480156105c457600080fd5b506105cd610f50565b005b3480156105db57600080fd5b506105f660048036038101906105f19190612ca7565b611029565b005b34801561060457600080fd5b5061061f600480360381019061061a9190612d07565b611163565b60405161062c9190612a59565b60405180910390f35b34801561064157600080fd5b5061065c60048036038101906106579190612bae565b6111ea565b005b34801561066a57600080fd5b5061068560048036038101906106809190612b81565b611289565b005b60606040518060400160405280600a81526020017f3430342042616b65727900000000000000000000000000000000000000000000815250905090565b60006106d86106d161144a565b8484611452565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b600061072584848461161b565b6107e68461073161144a565b6107e18560405180606001604052806028815260200161373a60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061079761144a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d339092919063ffffffff16565b611452565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61082e61144a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b290612d93565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b6108df61144a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096390612d93565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109ca61144a565b73ffffffffffffffffffffffffffffffffffffffff161480610a405750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a2861144a565b73ffffffffffffffffffffffffffffffffffffffff16145b610a4957600080fd5b6000479050610a5781611d97565b50565b6000610aa4600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e03565b9050919050565b610ab361144a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3790612d93565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c0661144a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8a90612d93565b60405180910390fd5b8060158190555050565b610ca561144a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2990612d93565b60405180910390fd5b67016345785d8a000060158190555067016345785d8a0000601681905550565b60155481565b60106020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600481526020017f42414b4500000000000000000000000000000000000000000000000000000000815250905090565b610de461144a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6890612d93565b60405180910390fd5b8060178190555050565b6000610e8f610e8861144a565b848461161b565b6001905092915050565b610ea161144a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2590612d93565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f9161144a565b73ffffffffffffffffffffffffffffffffffffffff1614806110075750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fef61144a565b73ffffffffffffffffffffffffffffffffffffffff16145b61101057600080fd5b600061101b30610a5a565b905061102681611e71565b50565b61103161144a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590612d93565b60405180910390fd5b60005b8383905081101561115d5781600560008686858181106110e4576110e3612db3565b5b90506020020160208101906110f99190612b81565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061115590612e11565b9150506110c1565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111f261144a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127690612d93565b60405180910390fd5b8060168190555050565b61129161144a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461131e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131590612d93565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361138d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138490612ecb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b890612f5d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152790612fef565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161160e9190612a59565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190613081565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f090613113565b60405180910390fd5b6000811161173c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611733906131a5565b60405180910390fd5b611744610d70565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117b25750611782610d70565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a32576015548111156117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f390613211565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146118a9576016548161185e84610a5a565b6118689190613231565b106118a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189f906132d7565b60405180910390fd5b5b60006118b430610a5a565b90506000601754821015905060155482106118cf5760155491505b8080156118e95750601460159054906101000a900460ff16155b80156119435750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561195b5750601460169054906101000a900460ff165b80156119b15750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a075750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a2f57611a1582611e71565b60004790506000811115611a2d57611a2c47611d97565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ad95750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b8c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b8b5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611b9a5760009050611d21565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c455750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c5d57600854600c81905550600954600d819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d085750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d2057600a54600c81905550600b54600d819055505b5b611d2d848484846120ea565b50505050565b6000838311158290611d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d72919061289a565b60405180910390fd5b5060008385611d8a91906132f7565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611dff573d6000803e3d6000fd5b5050565b6000600654821115611e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e419061339d565b60405180910390fd5b6000611e54612117565b9050611e69818461214290919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ea957611ea86133bd565b5b604051908082528060200260200182016040528015611ed75781602001602082028036833780820191505090505b5090503081600081518110611eef57611eee612db3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fba9190613401565b81600181518110611fce57611fcd612db3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061203530601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611452565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612099959493929190613527565b600060405180830381600087803b1580156120b357600080fd5b505af11580156120c7573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b806120f8576120f761218c565b5b6121038484846121c9565b8061211157612110612394565b5b50505050565b60008060006121246123a8565b9150915061213b818361214290919063ffffffff16565b9250505090565b600061218483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612407565b905092915050565b6000600c541480156121a057506000600d54145b6121c757600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806121db8761246a565b95509550955095509550955061223986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124d290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122ce85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461251c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061231a8161257a565b6123248483612637565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123819190612a59565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a000090506123dc67016345785d8a000060065461214290919063ffffffff16565b8210156123fa5760065467016345785d8a0000935093505050612403565b81819350935050505b9091565b6000808311829061244e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612445919061289a565b60405180910390fd5b506000838561245d91906135b0565b9050809150509392505050565b60008060008060008060008060006124878a600c54600d54612671565b9250925092506000612497612117565b905060008060006124aa8e878787612707565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061251483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d33565b905092915050565b600080828461252b9190613231565b905083811015612570576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125679061362d565b60405180910390fd5b8091505092915050565b6000612584612117565b9050600061259b828461279090919063ffffffff16565b90506125ef81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461251c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61264c826006546124d290919063ffffffff16565b6006819055506126678160075461251c90919063ffffffff16565b6007819055505050565b60008060008061269d606461268f888a61279090919063ffffffff16565b61214290919063ffffffff16565b905060006126c760646126b9888b61279090919063ffffffff16565b61214290919063ffffffff16565b905060006126f0826126e2858c6124d290919063ffffffff16565b6124d290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612720858961279090919063ffffffff16565b90506000612737868961279090919063ffffffff16565b9050600061274e878961279090919063ffffffff16565b905060006127778261276985876124d290919063ffffffff16565b6124d290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036127a25760009050612804565b600082846127b0919061364d565b90508284826127bf91906135b0565b146127ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f690613719565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612844578082015181840152602081019050612829565b60008484015250505050565b6000601f19601f8301169050919050565b600061286c8261280a565b6128768185612815565b9350612886818560208601612826565b61288f81612850565b840191505092915050565b600060208201905081810360008301526128b48184612861565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128f1826128c6565b9050919050565b612901816128e6565b811461290c57600080fd5b50565b60008135905061291e816128f8565b92915050565b6000819050919050565b61293781612924565b811461294257600080fd5b50565b6000813590506129548161292e565b92915050565b60008060408385031215612971576129706128bc565b5b600061297f8582860161290f565b925050602061299085828601612945565b9150509250929050565b60008115159050919050565b6129af8161299a565b82525050565b60006020820190506129ca60008301846129a6565b92915050565b6000819050919050565b60006129f56129f06129eb846128c6565b6129d0565b6128c6565b9050919050565b6000612a07826129da565b9050919050565b6000612a19826129fc565b9050919050565b612a2981612a0e565b82525050565b6000602082019050612a446000830184612a20565b92915050565b612a5381612924565b82525050565b6000602082019050612a6e6000830184612a4a565b92915050565b600080600060608486031215612a8d57612a8c6128bc565b5b6000612a9b8682870161290f565b9350506020612aac8682870161290f565b9250506040612abd86828701612945565b9150509250925092565b600060ff82169050919050565b612add81612ac7565b82525050565b6000602082019050612af86000830184612ad4565b92915050565b612b07816128e6565b82525050565b6000602082019050612b226000830184612afe565b92915050565b612b318161299a565b8114612b3c57600080fd5b50565b600081359050612b4e81612b28565b92915050565b600060208284031215612b6a57612b696128bc565b5b6000612b7884828501612b3f565b91505092915050565b600060208284031215612b9757612b966128bc565b5b6000612ba58482850161290f565b91505092915050565b600060208284031215612bc457612bc36128bc565b5b6000612bd284828501612945565b91505092915050565b60008060008060808587031215612bf557612bf46128bc565b5b6000612c0387828801612945565b9450506020612c1487828801612945565b9350506040612c2587828801612945565b9250506060612c3687828801612945565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612c6757612c66612c42565b5b8235905067ffffffffffffffff811115612c8457612c83612c47565b5b602083019150836020820283011115612ca057612c9f612c4c565b5b9250929050565b600080600060408486031215612cc057612cbf6128bc565b5b600084013567ffffffffffffffff811115612cde57612cdd6128c1565b5b612cea86828701612c51565b93509350506020612cfd86828701612b3f565b9150509250925092565b60008060408385031215612d1e57612d1d6128bc565b5b6000612d2c8582860161290f565b9250506020612d3d8582860161290f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d7d602083612815565b9150612d8882612d47565b602082019050919050565b60006020820190508181036000830152612dac81612d70565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e1c82612924565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e4e57612e4d612de2565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612eb5602683612815565b9150612ec082612e59565b604082019050919050565b60006020820190508181036000830152612ee481612ea8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f47602483612815565b9150612f5282612eeb565b604082019050919050565b60006020820190508181036000830152612f7681612f3a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fd9602283612815565b9150612fe482612f7d565b604082019050919050565b6000602082019050818103600083015261300881612fcc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061306b602583612815565b91506130768261300f565b604082019050919050565b6000602082019050818103600083015261309a8161305e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006130fd602383612815565b9150613108826130a1565b604082019050919050565b6000602082019050818103600083015261312c816130f0565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061318f602983612815565b915061319a82613133565b604082019050919050565b600060208201905081810360008301526131be81613182565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006131fb601c83612815565b9150613206826131c5565b602082019050919050565b6000602082019050818103600083015261322a816131ee565b9050919050565b600061323c82612924565b915061324783612924565b925082820190508082111561325f5761325e612de2565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006132c1602383612815565b91506132cc82613265565b604082019050919050565b600060208201905081810360008301526132f0816132b4565b9050919050565b600061330282612924565b915061330d83612924565b925082820390508181111561332557613324612de2565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613387602a83612815565b91506133928261332b565b604082019050919050565b600060208201905081810360008301526133b68161337a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506133fb816128f8565b92915050565b600060208284031215613417576134166128bc565b5b6000613425848285016133ec565b91505092915050565b6000819050919050565b600061345361344e6134498461342e565b6129d0565b612924565b9050919050565b61346381613438565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61349e816128e6565b82525050565b60006134b08383613495565b60208301905092915050565b6000602082019050919050565b60006134d482613469565b6134de8185613474565b93506134e983613485565b8060005b8381101561351a57815161350188826134a4565b975061350c836134bc565b9250506001810190506134ed565b5085935050505092915050565b600060a08201905061353c6000830188612a4a565b613549602083018761345a565b818103604083015261355b81866134c9565b905061356a6060830185612afe565b6135776080830184612a4a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135bb82612924565b91506135c683612924565b9250826135d6576135d5613581565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613617601b83612815565b9150613622826135e1565b602082019050919050565b600060208201905081810360008301526136468161360a565b9050919050565b600061365882612924565b915061366383612924565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561369c5761369b612de2565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613703602183612815565b915061370e826136a7565b604082019050919050565b60006020820190508181036000830152613732816136f6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201f9592fb5abd7d64a63c85d6a640a5c151ee87a28f2ec8f925cd3cd80ba00d1864736f6c6343000810003303e8c464556fe095b9e95616dbfbf6b9ed181bc05fa1bc6ca2a4488b28f3d8a0b003262fe0440fa019d44501f323b861e8d2be5df3662c1ba3bd88ea3de75a3ee35d03834807a2bdddf4789af50bdcf878bc28232fb83df950296a2717da78e2a763b3035a6e838d22940f5043ed72fbc36a6b8c14da5c45564a62568ac06b7137dc066a03848498627cedc576722c58d76bede76f5f95fd8cc9c84e951d9baf3ed8fe65fe00582003fd61715535d9be9b0f4434cdbf35aa6105b85ac9d3210ce81b5c78d6a104d0581f05b26f0193523cd6ab255cf873d44d3d0c18f7314d571a09b877c65526c2eb00581f02b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9410300581f020edbd5c682050eaccf89cb9c4c689ab88a73eb7cbccc68d55e62b462d9c6581f105a6b7eb38e5d605208b4e93c89b0dcb6693687625bf1f69abe36ae2f456e02190220033455a21adfd7e032a5746d8f73c14f913e273c89f05c94423adbea1817535d240058200311c61ceae1bbed796699ab197ed6353983142f3264865d1ba3d7bd0b35c4d04701790b2994e32303ee4a54f570df1029d040c867850bbdb4d662762a2126e71f526bbc26e5c7e013038a8ab9ec8197f315b21ba52bbed39a47f21881e2c97d4ea4c745daf8e5bcbd9003c278ecf0f42391ff3ca1c091a1d1c22ed5cea566e89ed532fcd4dca564a2b93700582003744d0c6b3b0c0a2e70a667fd4e887a5a700eddd6811ce6dec79b3cd034e280581f029c524c311082e3eff6a4e7676417821f98271c7eb026014cd312a208797700582003b0614ee77bc2f9c1ea1e0f7e48944e76c8b741d492b84efe449c799bcdba205820ffffffffffffffffffffffffffffffffffffffffffffffffffffeb9670db6a9f0219effc03f216045cc417f7feb1fe591398a1cc94fd583effbfb56a7ae0559bcb43a1b0350378805c9e86b4bfe5193bc03de97e21135e8628968f2fb0d0a38eadcdf373867b03868a0ebf05a899cc1523370babd017043446156754cde7efc045bc3b91f6ee7103ca6c287f93a517f8f19db43e105f0872311a7f7b3117a119029c2501036a1ac90354db4ad36e4237106b8e92b73ca50f3cb0383199bd6bc45a3d93ef36c5baa3b403caf57108f25d7fba2f6282ecbb0bdee6d568c14655b3e4797c60b0a473f70ab1035e085a669ab5a001d102c24c6a7854f3972880b4fcda643af3db014c3ac688df03d28d74e64c5c5116facce94c5ef16466bd5ee141291dcb28e0eb2cb92c8bf3f20382af6960bc427704d224f3ac9fd797676e13d4b8d8d85583cb5c405b5d8e046c033c51c02b5cc47c8044c23701ecae9527923f19ad77e3d37ee7591ceab737425d03dd383f80e24d89cebf810a79ca46b5e7ef4cab703f4852a1735ae6c467ed9fa8033694aa80857a994a31ebf10114818248ecce7a4238c9e8104d9bba4cda7a9f0a0383148b0af908165055a523d5d29ed8f1ae53b85b1a759456857d13a561d5e312036e4f196f997a92c872f250b55463f52b6f542e1225c568f5d5e937eb3215a8bc0219ffff03476ebb2212d268e0e1e6491abbc9f7a8450e72075ab8211e358a5e80de66fedd0310d264fc6be2ad7daeeda5edf052620be04ffa76426b41d8b44706231a8880e00325ff5693af951e41a26848f3171dd2fb43bf6431e386385fe0d4eac9ee97db2f03289f03921028de5fd9808a3104e764af3b8f6c93b931d3675861bb3041bddd8003afd77131c9170433c281a3d091b432a8eddcea830b30b8e3b01a7b6eb649cf11035707e79156c5a6b83fa325d3dc58e4f954b1de1bac6b3dc7b5108e70689549c203b4a723d30b2352cd05a075f1683a30e1d348de74ddf368f15f7683b173aad2fd0367fe1e491f8db55d4430be808f0aaf2b41d73da62b247c3b69f0c5b9ec4a4de003df0c1936c8e6f5acc10ebcf4d7d644f34463df552aa5194a5470c6fde5e03aa0005820030d60abc8ef0ab8aaf0a689dcf2121f799cd4ef9bbd345764a1c1f4e3a0a3a0581f22e239724fbf2c6b5213061b3c5120efc645908cba2a6f3c4fc3ca3e8c9eb0034c8cea66e81526bfa17d6bbb40fc758b46e67efab298f5dc0b2bfb21a2de3b5b033f8ed29c22f2e15fa8004716634141ed02ef26b7c99159856a8357c45e0c4e7d00582003fcea9f6437e15b9f99062c45f8eab25b854211c7c5cf70012d31d2c3795be0581f05a72edc59bea60792067e97f207f809ca70d0b7eab65d62bfacd56319ff9903a88a85b3b3d152af01a39adfaa1a6011b536aed1fa501a45f41dd5e6bfdc770600581f03678aae83eddd46752795db9441909c937070eac932dc00df0b5e91f82e10582016e58dedd83e12be6f9b5127071b1a471920442b4d3d19214e12eb2007f2775800581f03b53bf184fd21d1d05762c5ba7f93c1c897591acd18ed15f0339daf133760581f01fe065752c6aee0b1e05770e06aa7f629f7ea087c446955afb8af0ed29a8902192080014106005820030f475e6b6c44ee295084d06efd07d06761330e4558856a0af16354b36782705819b877aa3236a4b44909befeb9fad487c2ff8df0157db98d374f00582003af178b7205889dac85f17f5762f4a3caa2ec173781139947c9b56c1ba808a0581e62bea125ac396a2ddc1110d606eab9167fc4531b6c7f8d57319c6789ddf30395f22059bee80a922ec548f83216dd377e11a9bed0738e15481bf4151433eb0b03b3badfed3393c0ada3853a46ea5302e76517c8f3787015db1c2803f5cf05411c005820038ca70ad89435cdf7ab66cfd86e7dc134d18df9baa44228c11dc511416fe0e05820fffffffffffffffffffffffffffffffffffffffffffffffffffffd9776e68fff00582003a10815885e80a31bd47690cc7c7f733e08a0a99186b7fbb364ec586590fb30581f089816732c80fe2557390f4404e0a0fa24b252fdbdc27104d038229cee80f600582003cf941bf5027384dbed073be18c4d8c8f55e6401d75f25efde1e5a15a6cd5705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ff3b0310799c131f683925f412f749b3b85c5cb8d666a03c6e2770ace66ee87242ff8d03026c6f303969921400163b6591efb10578964a449fa6af370fb2840c2a4f5534037001be075eaf2b4b474c044e61651e1e19678516d4862c958632ac59e5bd4ea8039b6f5b5eb66a90a28052d4c573f1814d3619a4922fb0637a38274791cf2d4679032786483a6d3a362aab8e0ff5a38b6307ce103a1cc73ee425e82e9679256fc8cd03c1b426fbb57f4f082a39c81289142bee5808e775eb19214557fdd2277e40b8320219ffff03d4148e6b80ab1b8073d99a64d8808e596063c4bac24de5a1766f32bacc51709703cf090776e5ea3168b342167db8671ceff85af3c1b55c6004e58fc3eb5e3de8430371bdecef019739c129e5bef3fb41073c98d604e4409bc4bdf5a19db30ba2348a03383e7a1ac8b455d334a98750e876bfee709926f1d6938d36d9fd6e2a9e7fcdc90309d9c1952363486c55ecd737ba3cedf33ff40f4d52f11a87097a68330dd9de5a034dec2a47acadf4dc7f22ba95b7ac14fa11b73c3391a574c3107091bbe07dbc6a0312579c5627cb82dfd37b99ac71001354ad14f3176bfc583b02deaa0a8a950b8d03b49adedda3c177adf0a7c6af3f773c6dc2c501f4c86bc11c5f7163c8a73b50de037b28199e3077274f0ba7100cf74c93ef2223757cf3a8150eecb12a24ab07812700581f02ba5983699c73dc1874b3b5813ca0929c2319b1a641d13bb42220f6b0ad18581f02499b02209ecea7ec3c8686268b581109e635d4965afc36ea42e18e83a8df00581f0276c6c49ced5d16af9140c1c90c712593351b2e0d5e46e1849cf38ab7c2ce5820ffffffffffffffffffffffffffffffffffffffffffffffffffffc2b6671211360219a00000582003e58110d90df7963af52dfa093ed0aac1ab589fccbd73832172267bdb7b9d505820ffffffffffffffffffffffffffffffffffffffffffffffffffffe59770e80bc4038b2d5837dfb620c80c6abdec42c7bfd60781af3a695e526bb9737b38238ceb4103e519f76fed013b0a91d82c518b78419c6c05b8b8ebaf9a52b419c7704b9bb3320372d7e549ccfde60a04575612f04fe18932fab1d5637a498168af942f0bf99e9b00582003e1fe61e5fd44936c9587c6c362a25535646cd2b709d7455565c9c74cd67000581f0aff05e51c9d67a9bc4050adf3589ee887e81bd56fa9316862c764265f73cb005820030de06b885f35167a344efc215954c3041a6436a8f3b5e4fefd09394e215ec05820fffffffffffffffffffffffffffffffffffffffffffffffffffff42d339e2fff0385e29cc56169cf0ac428fd5929b2a4c7eebff88a6ddfe2d84c5fe73e9f5608e0036db43e6195de2fc78e4f66aaee5181516804121aa545828a6906271075543eba03422aa0ef62ee9453d4be5fd746c547e0807d30c6669a3888e6d7856b24faaea600582003ac130db834e74a223f36ec998e28f8b306e073295c6caa0c05db831010bef05820ffffffffffffffffffffffffffffffffffffffffffffffffffffd85ca2bdad2b03c22281b5bd7d6a320ce0b53ff6b82a82c2be1b59640c1e660abf1761d272cabe0219fe67037342c9b0e0ba8ea2cd623d859b2e7349b891f02f2bbfe15e37cc67fdae0dabf103634e325238b35e43cb5cb57de48d8f04ccc4890470290eb13d26e299218e6720035ae10ea3c7d3007374f6dea5c2ffd983298dd27e17320551f980805c1985f87a03433cc4234f3ddf78df5554080f58ffd06bb8190d76553343af4f62e05d76ab09031d4696627ae73a69ab16ec0c01100602241806e65d0811ff2cd5c1844d950979030dda461c22f94894b0cb11ef6ebed3b8b44f8ff420b0a1384b8aac305743ca5d0219ffff0347ffc677c8e19531ae60dba7094857e986fc2641645e2839aa2f920d66dbf61f03f876a58a22ba3f30debcbe60a81b14dc879b32430602e350156d5ae42144d3a203b6814580b28589e9d171ec71d4d562a08017f6fbbab98488a8af4aa913c21e2e03268c00cdfb0e8388c8b32d2d44f7dff2408acb4c22c299b73b660ace7eba502f0391ee5202c5af249302e4e6c05c45c5259946dc9f40ca868c9eaf93a8bf2d678f005820035f60d46e05fe3cc53fcca4b8ddeb8cf6478a5734b3fddc99c2661d40e41130581eb263264c3b5cf5064ac3fc38adc96bf2e0544b80e08082f636626780c99f0369419b10ec5280170616dcdb0f374d44a28c672e0ed08d0266f54c33a04af414005820034699163ffb0123d1d6b65308f2652ff3026bee026a0ec3e48bb08fe28198405820ffffffffffffffffffffffffffffffffffffffffffffffffffffdbdec929e38a00582003d84eb896cf731d7f94ef1023f39a03461dd381082013447171535bf1437cc05820ffffffffffffffffffffffffffffffffffffffffffffffffffffc3bf05be9be3035389ff517d63875697b31f6aacd5e9f078548959b12e00647648f6a386b7194201410a00582003fc1cd1e30e224982edf4bd66e53995c364560cb3a131c031bdbec97c2876c0581f05effebfa90e304cdf15606b18754bbf167ea477cc6d6a5e9c3c13e93c975c00582003983011df19f954639fc171d77c0adb6763aef58021800d4ab9980990c661e0581f02307ef298adb2e05c8090440110acbbe9772a97d56e0980b42613e1708db60058200320e2fecd5e3053ff621218d15cd513ff6b71953b47cc4b5f461be23fc605e05820ffffffffffffffffffffffffffffffffffffffffffffffffffffdf9844886f7503621aa745876ae9f69ca5f41a9c3bb5d3b730321b2286b3256b7c6940a8c5b53600582003abb5ea16adfe70978d11c456caeeb0482eddf99ae25d550f311ae9f1798c805820fffffffffffffffffffffffffffffffffffffffffffffffffffff2af4a0d6f2e031676886f1be86240f90be88073505a57be32807fb0cd252c8c2099f9cde8f0a0035bbafb37ba95712ace563953a42976b27e15dd9b631827bd1e98a9f140e675a00364b3fce88753f207de71b8ba117ec562b627df4c13d37a10bf2edb0d3aeff7df005820036da87604f24595faa3c2e5c28047ace7b82b006bcf709d3f449b2feb1a0d90581e0bb66dd6ae8ed684bf9624ad7c32700ecb82c03d49ac6acc815d714100060058200368039ffc60410f7d435e239babe562324d81306016e6f91e8032dc58bff220581f049b8cc2de52bef693324f44fb671c89586d7e0629b22abbd9db5e7f303ff40219ffff03b49aff2f10c141024a3b0acd8ae263149baa347ce7260699e40c14b570bc39ed03d2a9b2fa5f506a5510b8232a163c1c8a0dbe6c4a2b2d864ac2bec5a5b3d1c290033470eb463602f6417cb101255ced1e9b5043f85b51dad2c56aeeb572d89e024b03de8dea7e84af899d57ecbe55c0eb53494e0b3b47323a3f21aa5316ebd55b251103dbad96fd8e303ae26204c0823a8ad1f5b9dec9c53dba692c431e5c099f7b8cfb0300557f4dfd4f00571070ed87943a92214c7928ce0b0cef8b1be008c6dce048f70314c086d99044df7d88dbd3158d56a356e2c3fbd01eb350254c2568be64cf34e2034742283886251b8be11e86f3a01123f837a3ecf9df266114eb2b3c4f41cfb33d035c04ee9eb658460234aa707bb5b05109cd2c80fcbf4a289f144adbd1a2127b7103c81cf14d525cfb0ba1c8b9249dafbff6fe9f111a7871a58d5024d598212f5d7103b3e981351a599f9baaf4fdec7b21a247e4747fd6c8a3bd0851dc0144cd58486c0219ffff03d8f85f6cdfc368eeee47e1b04a0be97bf7208f34396fc7817b8541622e1a2620035d2f549c12fdc6bdd783b437c1e1fc684d7c9b8f2851f5fe65c4529687e4dfa6039cfd81d6204ce4874450567ff7631e50ee9d9dca65dd0633e85ebc70f435ac01035ea0225a1e0b752f8887c5d927c9f5e0b045a25f7ccfd0fef7db194652c7d0bd03f77df68bd7898ea7de52075fcefeb029710af49d1df33ebf7300732de40c1782037543816d4e5fb8d5b0cbbbabee8508a46cddb882d4915c38f1f73e7de69911b600582003d860adedc93d4acc2c650adc34f3e913c4018b1afa2050532d1a82ea609840581eb2e5bb36249a40ab78368038d11ce095841e6550a8633cddb081698972e8038035479fb447d641481da577acb3fdc0699aa17a7d3638b531750091d91683f30318f6130b135741dc945d822f60bda6844821d8d62917de91a2d6ebc6364b63dd00582003a1d2051373cbe9462775712c29977901e6564be81e6d3d38151814d4c8d5b0581f056445925940312cf4c02c7282338db62a3a614805c7a8a699dbcfb0c9695803366c02f32eb7813273540b3ea0034318b3f4788a9c09c5e5beeed1722041fdb503fee9086c525c51a33600e7ef3cfe79cc8af0edcd31312c786cb812cf3288016a0058200316df1179d0d0c5652848b0b680d4f32f41e49308a8bb6f3e590ca7a55b6fc0581d1850746389efc8566af7cbd963a36a491986f5c403bb8ca03513857abc0058200382f910c513edff3229417b5bdaeec9ed0fbad1a6f6be11cecc9a62ecb25b805820fffffffffffffffffffffffffffffffffffffffffffffffffffffa56e124741503bfde60a13ebc702e06b62a7b432943ba2984c19e78a8f2f125ba9b78a5dcd66c005820039e5258fc10ec11c2c092af4152ce24782c5faab6183865a338172e80286eb05820fffffffffffffffffffffffffffffffffffffffffffffffffffffa9e0a5eb5f7005820032245aecf85a314be434f0b5233b0389e6d49fa4df888de6747f08dbe5f5b905820fffffffffffffffffffffffffffffffffffffffffffffffffffaabc208d63fff00582003783739028c03322415da33ce785d9ff3a0e70e2dea773ef1f21e16978bdb30581f03e31ff2ebe72033706e8b81cedb5073a96a7d1d2e7edecd6abd2ab1d1c2d0031474a012f63223ca3f3d77b77bbc41ee9df73c70ae0c0ccf7006a146686617ef00581f02647819b65783b01a1376889b9e4675fb11064612ea37359efc47281d320e581f10626321e03f311d24fb497674665de6729d0e23d83ed1e3f2c9faa2760a1c00581f0248fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec47548016345785d8a000002120219febf03cf32af130261d3ef2255dc1cb2e04dfe52e86f1eda33f2a44594ccb27d657a95034f3a917bf629c2659f20b06848b4638e6b8e1a01cd7cb2400115e8bdd42a6d85038754cfc5a96f1cb7132ccd298fe1e84a60d9730f66783ec68c60afdd883faa1303924d3fe08a7667bab2aa1baf3946b04ee03ffae2a419ab3d710972b1ed6a201203719274a6c3cf881a89d86a1942b6038960701e0414308d7b6366a91f8b1bb5f60389b39b7cab5f7f793f480a25f5fdc059fe81b53272b2367b57abd3313f744db603c063703d72713913b73d148ebdf1bbed02698913ecf2562e477b9f35ef0d5e7c0328e41a5ee3a1a9d6204733ca2db6abd1923e098950ddb0ab2f69af9cded9d823034a4d34b721ef5363cf2ad0e8890635050a3e1506a0bdf62dd0c1f6180739124b03b6cfba8758292b506b17d9ec4be675c2faa90fdcc40de8eb7a5b730e850de3140219ffff030d5f8664d0b6729e70ef51cc56508f5225fca1165dfe7a333f3e7f1926b8a20d038da828f9b0c47bb701db06df9ff1342c13be6a32060dbc5b56cb96341141eb6503b55edf326cb07fd869da77d92591693c22f0610dd2724c96b571bfbef4e2586d033a0a958e64e8c761a05c66ff5d977678a9338107f23f8ffe16ef7ce4956d662703a8553923493aced3247cf8e9e94cccb867c48b9cd8625cf9dd0cdd2f8d51ae110334409647ebd161ce5db2eae04fc656b1f3a92a57f23a97d3949c6187526d0d8300582003db71d94c59a8d47f00fdf70f0f30457caa0e9af36817d095ae1bc6bdc9cda0581f02a72580f1ceb713c3002bc1b7f4e97fa524a350c51d8428aaf94011ab0592039eaea4797935a7c7f14c514c9bf8eb77106026a0fcb3473d167e67cc1617919203559f15feabee245b01511d04c261dcd629456321594f004e79e993ef76bb402203f44ed758eb3c1a8f46e121ff0a5f4e256b0e7aaef1e37eefd341f3a0e11cc89903f0c6501a9868b7529ab38fc9d456080df5be03928136a715345e226b9c5598630058200312e561326507af2e94bb165df47d0a32d2365ebd1c9a4a16d18a14c34c63d05820184f720c1907ee28019774797c988741d5a77123458f0a1faf4e71a4fb00541403bf000718178fbc62a311936c7b9b5359c428455c4d80d4b9455b89a98dcf07fa035e5e8157bf25bc2abe576d8cd486c933951b7bbb9ae167b91982e486c558d64c00582003355dfa0cf7dc2a047cca990a89ac5f1d0a18571ac8ee8104b0eb44ebdaa4d05820ffffffffffffffffffffffffffffffffffffffffffffffffffff88a4f40c2a9400582003b303cf55bce6c9d91192b6fe32f090683bc32ea57bcba8a3a55ac0ec2c86805819b877aa3236a4b44909befeb9fad487c2ff8df0157db98d374f0347ccf8355c4acd3d7e34cacda249dcc36c50659f9caade6108fcaba74f39f56200582003e8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0900547a250d5630b4cf539739df2c5dacb4c659f2488d0058200325c283fa87dae10632a947844bfa6d1e425f4eea81e44ecaf96bdc3b245070581f0389c2d96183cd58e365f694b583d7356d9846c9dcac6b27e3723a534b9055005820031423b6e205d4591b606a298e9817fabe5a39929fa66028ecc71fcefde29870581f12b947c286bc9cf4cdbb914844c7889681b0e6eb83517525eaa1b19d4e4fb00219efef038cb40a3e659886ffe9bec7e6214766852412f38f5b4ccd6692ef3bddd23859a0036f30014eb38c838918aaf9e2bc4aa6cb7bf9e35fe43de05649ee54a80a28c0d7031e0dedc00ea11336dfd961d89550d17eda891a36ff6a940c79324e6e385423670358a3c96a2fc8da3ce4db8978c1fd56c36ffeb4772283ecdfdb78e191122afad903b8f9cf844d959f8b5e7d9f3f944d0b699c9bc62f562ff8c06522eeb4b3d2f48803a8e9daee61c5594d34ddfc59d303663bb5f6c34bef60d888a069282fc818135603dfb5b730a94018ae47b4832b3d061d5fa4c1d9d2c9aba6e2ae636f1397dba059035f518323abe017b459fbea4c782409ce4a0aed35e9820de00dcdfb42296a4a6003f5581c1ce9d4537acc215e482a27aead1d0c78e6a087f85e31d8a627edfa12080219ffff03474a083afbbfa88fad9378c96a2efcbd1d24d4d5620dfcf570a20e9524d900d1033468513a8eefb0c1584cd279f85d7f7922d5a382e8a6d3f4bee72386293ec6ab03fffe190c3af09810631a78cad5fb099a6291c798f41b7a0f6a36c5292fc6e9900058200312e6488d94a5f7341bfb6ae42b389fe51be269c560c43037ad389d21b447f05820fffffffffffffffffffffffffffffffffffffffffffffffffffff2751d171d0403c11f0ccd3f99abba980b6734e7cfcde07a7da75da7a2215fe25e73310505a90a00582003ed2b7d9a8f3cfae4895f71bc12e8c79cee13af8a4ddbd871347a9e22fb1a705820fffffffffffffffffffffffffffffffffffffffffffffffffffffb194d83641f03f5045cfe54a30b7b9d95489c743f8cc090a15d4cde5f3537977d04caa10b1a320058200330f0d94ad95a084f3daa08293adee12e7305852102b99d2ea08ec6803f11d0581f0b0b1bff170c4c86a7429c1aef8fa3bc34c9a77eb34a1565bb6f35cb83276c00582003f37f06c15d5e36eb8122cfbda1160ec1f7b501264ba7b23786c97f074c3cc05820fffffffffffffffffffffffffffffffffffffffffffffffffffffbcab25d60c9036fd5ec9b625206ceebfd2022870332d17eb9c1c734608d0a196d7601beb0ceab00582003c72b780ee2faaa0ca2414e47db39621fc2bbf35cdab79cbedf4025a2017eb05820fffffffffffffffffffffffffffffffffffffffffffffffffffffc607a873a1f0374bd963ae41370efd8698224578ab88e63bd92c14ec8fee2789f75ccd1a861ab03b54d0d42f640bc204602e2f7e35c21eef56366edf48c9ce0b174f2dc4dfb8baf00582003ad2cc42d54a4abcf36fb48fd1cb7f8b2ff7cd48874587091ae514013bdbc705820fffffffffffffffffffffffffffffffffffffffffffffffffffffc2f495a8bdb03112e69804d933fda4ffcf5daa022bcfd7dcd5be623367cc8af4a6e5ead3bad2603ca0ad989bcc555f2a31b1ff0e54bbb44b3ac57f094ed00a8cafe9e7d4f963f6203e81b5f90ca58c800d2caf5323c69431b479b0a81146529250de51546dc6f06ca00581f02f89d7e16549eecbb03b9938be72f51f9f8bd53196ffba9b6d060cf64bb074604bb39d006d000581f026796221d4fc3ecfd626cad7e9cb9c6bae6a63b5d6a8f55c74d8a04fdc271581f03a01feb64ae3b38e58f84c57f626d35236139b76f2262b675a29dd8859cba021920800219ff7f035dfab5faaa2b08d175397e03e25b3695d595a244a32fcf16c42f0b3bd5776bb203436c8c9a3b4df928f65da4a883f609574c9a52ad10f72569d5d219c00eb27b600343502766493aaff5d05b44d5ac3977be1bed9884a0614823e46ece31ce16189103da9b088135b27869644ad59c8aada9b44efdd7918ae3c803a721a52cb217ded50391c596bce7f65e90cc0e56309fb4f947240d4830cf398752281ff39adf814127034357acada2060616d3ba626ecc5b1efddcc7e121e2605c0a68a814add25b8ce703b00a4a2513fed4f77e95dd2c666ff82adebb57ea6c1bfcd469b0419548c9d1db0058200323dfd703b64aab11f729b4cdb953bf865c032e00fc7287b8ba98dcc3c2ddf05820ffffffffffffffffffffffffffffffffffffffffffffffffffffa4b87c9fcf0200582003553322f26d86d8920a02222485e262756d257acce80106fb2c3aabb19806c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffadad1a4318aa036c8d6e4a2a0fb8ebe7f70c9d2a6717eec2afba20a3ba5fc9612879af8524b6b500581f021773523bc783ebf448b9d3702902b142e32b5c6e58450def6c245f0d375f581f838229ed6a4da34258c1d9ce8b26fad2bc8aa635726d99762d588a2c41de8400581f02cba39dedc58a152334c57dba48eaeeaec137bebdcc500bd8bdf40da0ae5c5820ffffffffffffffffffffffffffffffffffffffffffffffffffff3afedecc02b200581f02502c3d3fbdb4dd83029da48d22a20d0a2dbb15dbc1c0aaeb3a79fff85ec75820ffffffffffffffffffffffffffffffffffffffffffffffffffff2974e187adff00581f0372a75c5d169158ed0e7db269f3f9903aca2fe4bb16e77e9670f0d98787e0581f0c03d41c6906ac924f0f0366ba8424a249f12f53899b6f96be9f81fbd316e800581f036010a388391ff26e2a7304d1156a1104a361b4f63fafd2a4aac9042b9150581f23c120a16b103cb9693f6496b5565d905af0559c10353c0156afb675c5c98c02184402192380005820036d55a01027974a17cca2e343a6e79eb70b5c5df3075a06be97c47690c09980581f1f55ba1028ae43a2aeaa4c32d46a526031463adc46a4c0585ac8ffe6ed338b03561e9cf14396feff102c8b4aa7f204f1ad318d424072de6a8a2cf84697aa3dd60399fdb8d2a99cb85832c2150605c4b6356b416cb8d1e0445f76b4e2102df4ed7503d3f9688132e3c6067c1462df8ca908cbcd14e5f782e5fdbd38a304fbe230ae8a00582003272e7e8a0549821e083613ca33580d50823573db4152cc59e1eb09b914db605820fffffffffffffffffffffffffffffffffffffffffffffffffffffa5503814cc8005820033bba0d99dd333f0f8c0ad0dda42d0f4dfc3ba67411f5ffc83539d5b760eda0581d111d7a46a65e45f7a7ad6ab5634d2211e3a107f47ce04d1704de50b8d20058200372e927ab696dc0b5f797495f650982c0be4c522b1af3ba4e63a7cbe3944380581f0c8ad17bca52931ddc9ce795d7b660f55ac705574733af4fc2c458463ee8ff03b45f91c1c4349bd97bf8b46c0c8f98f64749826a30133fd294dc0daedb38759a03f5fa31d947ca80838f255a6f32aa90cfdf6e15c572d0185af402bf9910cee6a600582003b30ea33c4005c09f55ac410f83c065f8a710d443c6b1064d906d385e168d805820ffffffffffffffffffffffffffffffffffffffffffffffffffffefadd8466c0b0219ebff03c1f3319b96b12138ac13e94121a191ad7c8a1b3e8143c14e983587bc1444822603fd17a693ad713355736555e2bf4d5d705faa0ed4eb340b216bc1bdd7a4b57beb03bc13368f2f80c66c08539e04d52a406a5ad84c143a60f9e9f214163863f38be2033cd64566a534fa7f97f08e6ef9d4446e0c39c7cf714d8edf3645e08cdbfce1ab035f134aa8e8900e40b3bf074ba5f3e31228947fd365b257cfd3c9430ca259ec4e0219ffff03a32d8421eafa596f6228b7b06c3324aa06ccc0b53a1d64e019ada0f7f2002305034909b984d88a5863144199ecd8a8ce1c669898fee5bd0baf3838f50b52f10191032806b3c9a88c6c7f0f55073f1f6ff976fd141551d42a93d9d1d2e51e8872933d03e51d6ffef40e0b8536b78b838299152a22ba30d10fa30669dbe954c2a15df4b7030893b03eb22d7be750b2afb5958622bed7226833b7435de1dea929f082d5c35603ee5aa6dd23f4c66eb9495e7b375227b8acae64fdf0cc234c800a7c31e0728cf601410303bbd29160fa561f8e1744eee50a833cd36598a9fa6b6130a0636b01de43f076c500581f02621ebeb423e187aad4e0ee023a2dc6bd759399b76db6bfa9026936729d52581f029965ab972e4aa5affb8cd1c39288cf30949ec221f31033b70ea3cf09a3b200581f02b08b20832f56e42963ad330112c419e3f58c3db298e4810ec5c07567d1ff5820ffffffffffffffffffffffffffffffffffffffffffffffffffffd55d530f27fd00581f0242942fcef6a2cada0c241ffe2f51efdee4d525ffc51840297d5b9d6fc15e5820ffffffffffffffffffffffffffffffffffffffffffffffffffff4a32518859ff00581f029c46e7b2e10d82ee06510250d59fbaf83eaa88925ae547797d556cc3ac82581eff5ad50636ad11c3559500226bbbd2c8cca175890db3cc0e519c8d1d3c3602191828031b217f428452d25c97a5857f9bdc665182a57d9c7f706de02947157a389fb97600582003039e20fa12b05289546ccb0d795d58f199c14307edb12bd6727e7379e95de05820ffffffffffffffffffffffffffffffffffffffffffffffffffffe5d4406179fb03e85e12c748c368a2c79c8662959f37e18398eb12900cbee2eae1692bd337d72403c76e0d255e64ca5228703e3489f6466c6cb37f68731b843a3bd0d47f483b5e4a03ef04fc447c0c2d6ce018257a4bd354f6701b4c17dff9799e663beeb5780fec44005820035be642098dc3123e49f099db6314d378ffd028c2cd0dded02a7dd734e6cad0581f021d4a825b54acf55b7066054a021b469d94d3c4c1c2433207333dc29cfee203bf0e0920e1ab866ed8e2434c916853744ca66316b87ea9c9f5460081e56936260219e7fc03f35bfb1f12b8e3a474be93eb4fc76dcd6d17730ac2b928fe7a1c2a049defda7c035c0dd9d6d1e1d23ddee3ec311da0d47d4c8a765ffa597154f52f0fecbd4e51cc0344e02ed48a07d2dcc3035d9a31d2138021c4ecec72c6e227e2fed7acebd480b103c91aa8fad88031105530baa75a4b7f36209c04532f02079652acc3d4d65454a60348d58e97c909c8f168c47e7ce797f40ad62214459d520be2ef43b61043293f70034777e44b9ec79cb7da05970cb9e52e7d0a364773830eedb1f216d0d358d2acf2036a28b834d778d8fa995e21f0d09fad280604de828846a1189df96799bf03fa1803ead85cd3ee1556fcd48ff9dfb016bb731c29bf8dc6904ad7ae6b2b1cd7316ca10348ddd1b81a327fd90eb8bf5de4a2a159614c9ce4f8ae599411c9eaed6bfb43f30302abdc4e40bb1bf5d1bce7859847fcef1abf0744c9321533d67169ab984fc7c803aa36d06ab67354fed0c0e2521f814c571f6c8e62b5b4f7d7b3a938e9548e74d903e0110fb822d67d5d7ac505058b213f3ec18542c41f0f8f65fa48abf81476e3110219ffff03385506936c2aa9a9d561b4f0600637bcd3317c3015d883e28023473f8d6afb4f038e6c1daa36a32ceb1270a60019ee6da29e9475be810e38e7df940dcf01fd825703a418230f6266fd26caf22d4702f82511dfd62efcd5a0d8bd707c23176be1fa2303c74449f7486da0c235797346cd406f3e6968a6effe34178b4ff753a65622158a039f72886b459eefebb1bc934749828b7617d62763b06e546d4fb46079d0f8f4c503108806f2d993affb3df6efc8365e015afc75471056b250fd0f7563e228aec7110346bed886f8108d59c494c9050afc582965ad3de7e42c203b88ddc55fd50e4666005820033f67221a2b727d9df9f96e75440ef1fa53628ba637cffd9cf9bcf665a2cdf0581f0709aaed3b5d611f71454eeca185c6d4589f891c8e47b86281f6747500a89f03f914adbedfc509e468346c75feb945654104fca3acd48dc15c0e847c1aad13b1031763428a53eb566a322e083beb8712cb1b55af19f08f4a01c66380eed447af3f00581f022e19af052dc34f91d6b5add450d1511a0bd7dfaedcedf12e7a669ea6ea985820fffffffffffffffffffffffffffffffffffffffffffffffffff442d05fe5de6400581f02630318bb357526de44fa02e474b7549e579bc823b0b78293f81eeb0aee26581c57085d9eae12e1231d111ebff698448bf5d4d754b03de6a8d721d148021980020058200309813a28b4e4691e5523cf2b4834b296254afb68679315567f365d9783993046034739a9ab920309a63882dfbeb685a41d349f374c6a77f2fa1e8edd2509a0848372c0bf35edca0058200337c66d1ded532e086f6a30bb8d403f98497dd65c7524e7c8a8d6fae59bb900581f0d8a57316a304a759a0b03943429fe2b3e9d1eb44b20bab59df74860cece00005820035391dd837a3c62f86cff2a8360f134c55e52a1d17c447c54e88c73d9af2a605820fffffffffffffffffffffffffffffffffffffffffffffffffffff61ed375a87b03432d741f5a068ec206a60301adedb67d3a6998783f4cc3bb5d68a0efc012f667005820034c05a9c459f7748dd2b711e852661145fea3934c73eca37475edd0276eb990581f2127dd20df94eb066bcad6bbcc07a9b19ff45a41195985e73956fa035d523600582003ae0aa521ee673a9c152ddeeda8a6143137572f7ef31215367f7845079370505820ffffffffffffffffffffffffffffffffffffffffffffffffffffd6cb6b122d5303bfa540fcaffbebaf77f1caea480b23693dae9a32ec35a7679ed3c19e13e04ab40219efeb033e7b360c6c19a13a4a01b019f77d76a40d3034cbbf26cfe067284d66082ff352033e247e50a324c85f1f540d580a35d1790b4cc5d3eb7160fa46b533a5028291dd038554a0b931e188f29b6417760dcb48507d36f663edad4c509f07198f445cb94603a295b0417e7877c724f66944c30f8f443ecd11c68e0f883367516089e5e2ed680309d9f1f89a59bf0797ef62b7260b36972cacc5084c74b67a597c2a531ff8e7e803424503ff6df1b47226d3cb82920be02c73e6ad92868701adeae3b5aceb483f8303623078499f85f497e525cbf1f7e1f2a4e03f00a1cf4b657116f074402a28f23903a56228d07ea4725ca382332067275f421ab05280c9dfe876c76990d7a765c88d03ca04836840d3094fa1be0de46ad0ae3bf219004add6fcef0129b51de0f8189240219ffff0321aac965fa2e7fe515cfc2d33597ab09e74baf03b2166c45a959939b792dc3850375425fa6ef370dc4cd8ac22b563a3751da22bf51c159e28c4a95ffc78021009c037d556a39284c34e6e8032d332c84627abd95024e774d8c657c22ef9e7041d0b5032953252d01a3ce481c6edd85889f8b12303c3af2ad052c586ced1524fb40f50a0301727a08bcf16015c797416282286954247e104f1d9e9f4d148a52e8ef5e824c0302c248247efbb25c9cead5d557c3f2c97c3a866d08e463dfa1298974e676d07a0381767ce8e651012f8eb7b274f54ca398b78183fc2beceaa8ab20f3745f79d3b603da7d47e6de2378c5a348fe5d149e6c5c99bd569d4735dad4a0060f947de2c274036c75244fb9587c7fd4a07c67f80f79bdd65d2f70cf49357db319f0c6facadb98005820034b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c150460246139ca80000582003e113882e763dda710a4730d2acb5bc656a96ce50b65477f780e9e456851f405820ffffffffffffffffffffffffffffffffffffffffffffffffffffef86e2a3482b00582003082b3df8672b01c605e89a86b665e9c81d9285668833d558e24a0f986add205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02a256cc9d141e27b3f06dbcfc0bcd94ed363916ccf4261cc295d2d80231175820fffffffffffffffffffffffffffffffffffffffffffffffffffffb5ffc5e885b00581f028fc80a54f39bf47dfa9d304929c5f3f785c6359856ed6419a151cd36d8cf581f043ed01694017e15e7f6567f04d287bbdbb2c97e0e8fcccda12456a98f9026021904080393d5da18b43be64c7602919f2608bd31a33eadb288b739f6e3c6c7a6a5da3393005820033959ff3e4899daeefeb9b638cbc9ebb6cbb864e3836a4e1984ecfb4db886505819b877aa3236a4b44909befeb9fad487c2ff8df0157db98d374f0058200367ced3dd404a4dc9d92a3ef968b6fd2a317314e1951933438b28d1e4f31650581f034bb1380cf53833e8a1cac651b74306ce5469f3eb978ec699375192d838540347d9297f7cfd85af949bb80a7c63f68592b00afd79cceb8b6d77887d7fc94aa8038f5dff0169449b459f8549186a153fa5ddd94f166126922a78dfed5374028aea0397d42d219e7ceb584299aca303f1941a32769a459c36d965a798d09b2db4973d030ce0f503a9828cd17aac4db346223cc72683c0056ce4b85fefa31cd28fba154d030a01e55584a686db589a0299efba141af864ed5ccbf00a1e1b7a1bb6f3b45ab702196fff035904cccd6f5f58a1fd7163e7f4e8ebfa55c15af5d6a0a46b851ccf4d375f7e4e033ac1cd534f4a8a1fb7cfca9344d270d4a0a59d9b39962384005f81fdcf502f7103abf1e10474869620173f5d16f2723b9ca6701e4756cc266035066ce41723f027035a9e451193f8edb7107732f2b453eb0e3b8d9ff80ae9b2c6c69618a081f22a9503023e5b75dc6ffbf547e22b0b5864313caa25b96009813ddf617bd2d9e0ee9b7003f1f8c660cdef3fc45a420ac98adc58c043f6117148ca721ec88f9ba01f2c01f7032365ebc9ba1a5aef07c7708a0616d3f4c5b3cb6fd3685fb9fe6597d7e44501ac03dded789a6c397d6cd85ea564ae61ef44ab22aaaa3d3c8f379c951be380f2a04e005820033870bcf8966a021ca4fb7c18a23881124ee8de69107422a959a718848338705820fffffffffffffffffffffffffffffffffffffffffffffffffffdebf383a9707c03e913f58b568a30ac31f65171f9269b2afdb0534b446f2dc13594ed48a08da9860365cb8463c3b2ac60eb85b2272ba5c0c29c8706bb1293b3495060567f058944590361325ed3862413e908ecf407c50bc6b345108216f786c3b542302e959943fa7b00581f023dfd9e6ded9c8ed730913980456137d68aaab5c32fbb0d8ebb978471582d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffd661d67d774b00581f02fa3e12191e9bbcc7408a4c53a9b0652b3042f14ca2db30564865c0ca86cb581f1420369d3b1f1f40b9225921b2bd07ea7b5c594cbf646462c825eeb4b2dfbc00581f02d828ceeb5bb5343073bdcfc3acabb9b91cee9d64c6c8b6acb40a162ca6e45820ffffffffffffffffffffffffffffffffffffffffffffffffffff2882457d79ff00581f027b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec5701000085b864e2371585df5368100a31b7761dc0b5946e02192086005820037c2588786dc3a72755e9dec7f22dac11389753d30d264b4b0ef1fea56c8a30581e6852efbbdbac4d3d8b513ddfe04cad6fe0d52d7119a70bcdaf215b6d7242030ee0da471a845c5505a9c9930ad32109918bf032b8de4d651dd1e5429085f9aa00582003495d1d8593fef66de1bb4303daff21d78a3b2c2f7c0e68ae58ec902bd089805820ffffffffffffffffffffffffffffffffffffffffffffffffffffef6af96eaf2f03d528335a725da6d37d8254e781068c422ce57397e7b666ccfcd3d7bc8c37243a0058200361ff82a6cf0b86776d107feb7885eeddcb11ad803b9a2fc9a00f0026aebb605820ffffffffffffffffffffffffffffffffffffffffffffffffffffeb5eb3cea3700219d37e03456ff576592454074f7348ffd3ee2592183be3c9f5355d7dd717898fabae62920219ffff03b3a743bb28920ebaf15e6aee1da5cfca99023698204b2b9f0c5d206fed7d59a3031dcefe73f6fc4c4b63a30bd32ea580dfd37b0695e225794a3e668095d293fd8403ce4f701964ecf943666bbd3c6f5d5f290a18c97820e621551eba8fc1d149a726039a553ca5c2d55d741705368e07cfc6fb7b591735b140bbb62600ae8afa0768cd03416d472a748a6ba703018cee453779cf32a9e20f5c51d400d591a90e91e5ec08036f3de7aa4efd2b281087577fce12f5a45ee5e12dc490f8345cd91a9c69b2ce4d03236250afe0410cd4bc02a9ebc9938d03f9dcc5f5fbe6ccb7c002d3d96f13b5ad033b402227e3c832ce3676e674b4f8f22be37821157b747523761a243b816f0b4100582003f6088d0abbca533baabe4e147ad85398921c27f42bd04a0ece7ed7d7b8b7805820fffffffffffffffffffffffffffffffffffffffffffffffffffff1faef9741e2031b791d6651f052efe33c09b6048d2b79418b69b6606fd3a928bad37d8fb0275701410200582003579ed494c55d1253c4f07d743aa6e1855a0dff2f1d17824598c5f10c30fcb05820fffffffffffffffffffffffffffffffffffffffffffffffffffffc11d6a464ff03589fb6267bbbece164fec3f642c388a79ff0d38fd2f0f210924d25b1ec6ddf3b00582003dcce9b8d6b3b0c0ba9354606da04f428cf10432b65d9ae9d191f1c996e2b505820ffffffffffffffffffffffffffffffffffffffffffffffffffffec13edd7189703502ad47e8f7ce997e599fedb84c46995c207ac470d1680dee34bbe20770114d703b77d05c7428debcc2d0619b14f43f12879bdc2ed5091b502dc7748caf46702c400581f02990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5410300581f02e9fc15b29e4a16aa7b60f3994190e84ff325ac556fcb7a0127bad4e73200581d0602f57e604de67b7e87c7052c8d64d80693e913794e6ff9dc1e300a5200581f0244795acee3185d870df41a5f3da33267a7e0b978049af24e53f713069e79581f0286a1ef6df0a9b328b915f74f3839b5b87e10e2b4166dab1f2c40e0dc874500581f02a4f0d2d3d1f12563ae86092d0e83076dd4814d7a4a1c62e386638f3c63ed581e28b322f2b46a40bea4b6c3b1618c94e0eea4afcbb2ffbbc83d8d11cd051d02194c4003b942c56de768064c88f61e7eed636e5dff6c2952235d79bf8e7121bb44e2c790005820032976e1add781d185680ccc8939a7db5f31b60ebd41b8ac93796a90b62735b05820ffffffffffffffffffffffffffffffffffffffffffffffffffff9c86ded5e54d03ed27fc5b38ea0a97752667faed7a16cb32035a9200d07473828718b861a9a85b0058200385e4eb3110f22b6198c0f98804749c5cb6ab526761751d7d2bab8b693644205820fffffffffffffffffffffffffffffffffffffffffffffffffffffb2280467bd70219feed0378a03a16a8f181504f525bdf94a7fbbbe103579768dd22156e3e737549ae719d03f0525c48605726e2c061db650c41966480780a897a538abf8992166500cd6617036699fac1a320ac5f3ca4074a8a96c97a5f1dc1541dd19ba5844cbea98dcda3880373f3aee0c8987e7ed1d2d932add0cc291cfc707d348fe9bcc4ba802a1aa7acea0338efd250616d928116ee6631e704e9937a050cdb3fe52aaad958c749d10c7cf40348edce40165def2e47eff002389321d3c09e723673febc61fb8366d14617d13c0368c357746731e404f4e95b088b40048420eb9927d18fd8826e0f3ad7e9500ff0033bd2bcdf40e3693d0da5185a7134eb6d81ee5e351d8c14d760f9c88c0db5d5bf005820036a9ef30b802f28a495f27320d349c0e5da6217fa1dedbf11529d900d8b22905820fffffffffffffffffffffffffffffffffffffffffffffffffffff6d87cd65163030988548513da8120041cdd17a75ae85a2ab78f78904084af49bb3524b59cc3a80317bec74a5844ac0b549daa74cabd675704d40f1bb62c534fa5f6f0fef1fa7af7033fbe402ec8ce7a0f4bee1a673f2c876593eb2040a12939bdde90104d7dc2cd82032201fd67581b6ee8a0250b302fc0a8fce1737856e7170d9910002a3040bb1ecd021958890219ffff03996ceccdbb4965a51b69c3d45568038ab1a829f9ee2e5d9e7a9acfad0daa804c03c734973a05114b17830b6b4688c834b18902f3d31af86d4b95cc03daf3c0eb8b03e8e72556ce41138f25e946b9f108c52f0f3dc4142a37065cae3269b58a5becb8039637d265748ea7ddded85bd9f6b1786e30b18675837f982d64d058e24bc3fae003e5a8b27dc25d3146450a180732f91b03534d2dfac47e2875a9dd1b711b4019830308708996702c8a4a27bac6dacd39e81b8b62e4fe1bc21bbc85dcd988979f20740390a3da570c4bd4af28720a4d9b0f2b0b9cce47067088aaa765eb1c92c26dca5a00582003d9700e5261ea452d4f71fc5b8eab17021b259e09b6a4a8f301d457291ac5d05820ffffffffffffffffffffffffffffffffffffffffffffffffffff27bbe65531ff005820038e98f78a491fdce5aafad66c99104566c16e8c34b598f858593595c8f21c905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03a14ab34c25511a716dc24170e653cdaee0b3c9b1838ce4ea16d35a00a5b1246700581f02222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5820fffffffffffffffffffffffffffffffffffffffffffffffffed58b3f8396000000581f0269d548bfc7b65df3af1e9a4e14dce6f025ecc9d7cd5b5bfe9b54188acf7c4801631f90cc527cd9021400582003d40cffbce920d993276c2ae3065494acdf1ce43da872d33d082a4f3ac6ca40581f06ac71ff748dadbcba55af7b642c2605283404e0ee585810989c3ff63ffda703b254b720a4a1a2d933dba08896cb685849e05edf9ae324ae7a6ca8b59edb9f370324469826932f43cd736ed3597f0c6ee03c20709f3f01b580d602db88f47b0d8e00582003766e4ad38c172cb5ef2557ae1161c13a521bdf2c9316e9591046b9302c7d005820ffffffffffffffffffffffffffffffffffffffffffffffffffffef71b6eb19de00582003bd1c2a836e65e2a85aeec071e5c68e1a2057c7cc1998de8aae05787a926ba05820ffffffffffffffffffffffffffffffffffffffffffffffffffffc23e2a752339037867bc7926ba59bc9127ca39f85098daee5d7f670e1ec936f1235e0c20d8f2220219d73a03dd6cfda857f1efd5133efc950459ee7da64ae82161cd89f0104175245012009d033b73ad139b3e7dca6176c1cd0d22dd125dff0b036e1a98ebdc4c2c2a849357c5038d5900e0b8723e1aa971e5cf704bbfc02980dc40435b10f9e11d50bcc6dd3696033cfef0a511667e62398260831b30346bf6cf7e8989ce93d019b1fe3112ac6c3503e697e0c51b6c3603e77ebc41579478b40454ff0baacfa5c9dd3b24ac45318a1203befc7ba6f9df8e4dbf278cac99fed6458b94e0895bb562fec35b56b96186a4c9036e1d39c6cdaf2dd8efef2313886f3b9dbd57639aee89190c2ff468a0a17a778d0058200335dd0ae843954c5258d28e0b5ac994fce5e7b5e659b5bbcb9c0f7ef6ce3e805820ffffffffffffffffffffffffffffffffffffffffffffffffffff94d92288754d00582003b940023460315e8a74d34c22b63edb442a7ccfeb8d01aa4789d7a35a34d6d048016334c2d0d4e44303b78214b48d01d20cdb2f1ffc918da0dd55f60a1f0ec3ba1189da401b334ecce70364e5598607cac31e4fa3f1928ea32a0f8d7b2c208c57abd94460d9d88ac9f08b00582003fc13f79dd8e48fec26bd080530189070b1ec2be61490931bfaa31af67f2140581f01be9e035aa5bdf90d84decde15c702bb05f7ac5f84e078dad1dc83f6fa53300582003697e0e6c9776b3b07734f3b5f26939a2c770c79e6cc006d95884a40616cfd05820fffffffffffffffffffffffffffffffffffffffffffffffffffff4a9dc8e22c903b092057e5653fef400c41ff0c3b97c69f1a95f843072096f2f727ac23ceba92700582003152e20ef22cb26a422a1e466ffa5fdc500c76f2a9694812e6be97af1e3db205820fffffffffffffffffffffffffffffffffffffffffffffffffffff91ceb812d8c00581f02521ababb6dc53fed0974b387f598814cb6a84b452f3d29427b50ab42e45b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffe384fb9b783800581f021c4a8a5de3673e2fbd85c24cf91ac9835909f25327ce1b9c2d5ecc40bcf8581f0661b6836226350f5de399ee4858d69b9b2db4cdf1ed34325c8b63c9c8799e0218600219ff77038243d1d9a23f135b2cb2f61f14d61a277fb672e655f0d50f9cdc35d68d0e9b0803c25e1101969b01371b6fda561a16e0674706fc2df50eb4d726e6eaccdac2cb9403bccab3192e311d6604a3612e0c0975f514d5d747d167fdbec75b079cb2b72479034aa863432042f4fc92d330652a5a16739b773ac660f368cf1d453e0b39f8774d037973944cee161c6d50211ac1866846025d96e2ddce0b443309f8f8a9f1f646c203914e8872126fa699ff8e57771a409e7ea8487ab620b59e01ffa11d155f6ed7e20219ffff0219ffff05581d02b73ecd80e40c050eeb9c842bfe0e7d05bf9b7919da0d60267a96b68d070119379705581d02b1de1ed6d0b089e41e20fcc85d9dacac8ba03b4eb020fe35c7631f2b0c02470de345c86e789c0219480003fee395a5cbc6e9dfc04e486b1e17cf8b85015a4ebf0b967fb5768b9976102eda05581e03efc0e9a66d0467476e24f74a5d5935d3a814caaf9f9fab2bf4d9917d100c0947068fb35077796003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03f151564f3297efa0c1e43933d593b43618c253830ee0feb1bf103dd42007011bffffffffffffffff03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03596896f50c57286188c68c781ef0af041191fd5679bbf1bbe8f025ffe007011bffffffffffffffff05581e032630136d784d49d0c3a1aa97ed0a0e25c31e2d5711007fd88372862ce00c054699a78aeafc00033f84357cc3ed06f91585f9a43d19768756cbe877335d473730132f04be9fe0de05581e036874e6ae9261b160fac1d72fed8ce1fc7ebecb6e13400c37edac538f60084804e11c56b77a1678039921f797361138feebae24379f3156c50e8c39ef17771641867750e355b24d4d05581e03d2db8200a6bec2be9f5acf8a5103959711338262b0b2c36d0d1795a6600c054607837f370f280219ea7d03783698a9c574978c5141d5b74d6df8c8ebed791155483e5406b4061e2dbbd9d603b4fe2abc0bf8aa148e1ab8bebb39181d35c3e25c523c1e21788bce6b4e4562f0032d5f8096e4d3f42dfd9f053ae694398b60f7c0eb9eb8a590defa18457a69177f030a8f6d16dfbdb4b4aecf2c61a9a4beff5a49fd198fab353dd4c544ca32ebbcc903339a2af2f12df98db2ec30ccff17109db68d66ab34f3be69e4b28b845fef4e9603c1923a90b16278ee12df4e08792f826894aa0f0cf6e893882a00b1c97c7f004803a22d3718dc412b4b091d3dc34ab2571e1fdfb55495f1a667dc2be10bcf5ccfce03b768d1e90e036e470885c6a27f1ac385befd1c4df5ccabe346cc27c266b2069b0345bd10d58cc69d38ccdc8b57c57f7ee8cf0d2a62393b08102fb3a8ca901afe7203b8d7df5fbbf4fb369da60557bce2dbfb53ad0c9d97007f25694f9428f0d3a9220337cd18de08b816d8d6130a9b7b7b76c20a4b3ae75b3fbe9c5f0698919b58156e0219ffff03c7c7bec883993fc2e7507433dd782210e39bc98375d7cda865f2143b2b7d9c2203ea4933b529662d839a7e386723f26790ddb0bbe93589bd1f6a322211e1483949032f6132f74e297581942cf2bcddf702c9d9641c5da492801808bbbcee898711b20392ee01ba1c5727b02540b74dba4e406c02a2a9e74970821f3c76d9e91b492b6c0219ffff03cd5260d3f9655ee27dabe6ad3e8eb54b35a047e4a433991ae17715bc61871110035f65d4e425a5339bb95c77a2baaa6b0b9eeb8f949558b829cb84e9e1e16f9562038fc03afb09826525a767e9a8cfc89811c3c7b9872315c330378d698d30cbc9d103cdce21b39ec60f10b896d174b798dd54c6126dfbdb3bb8998d493b7a883f1264030d3787d150a3f96fbf2dbda5f891eab9d5efd74f72d2b6056d6a5f34fd2e92820332d6b7a32e5fd5d1e682c27dd062f39bb6ae658004d77ca93f859186f87b98e803ba75d8090f3a110945e1a180f286f2549001a9f352928e48996eb2f240bf33bf0363e3457e78f85f08ab03b3959e82dd7ce69b40917a788e1f3340b22eccb91b1003b9cd54b3b143d3195286adfa718869a76238a4e1901f32c9a6d994ec400aaf060398b6e3432de99eb9531d5ec7c7fd3a6c8bf192be759d2f622ab4e8f8885942a603bbaf991306cb42158e2fd2031619552e9f002e4d5e44a61d0854653180282ba703845cdb5b53478c3f0a4acae49b5e70d362058c7a3383fa9f30c03d70c04b66fd0374a61939e7ab7fdd77919b464ef7ae8f5ddf9ec8019adc0daf3cc70c86890a770389bfafbd31e264be800038b4f3de09049f1708db9cbb4c88332920bdaf93f4e703e49c236ae911d9938664ce694be1495837a4f1e0545a4f70dcb479c5c2bb753d03bc5d9d546b0832aa4e3e8a724a89c83a030c5ff0271eb834ceafbc49f78f42830399b64011752c6712090ae782189158e911b91084387febd0409dd1c0ebdf8e1803a1e7069ee0827a6be7f70439d66b7b318120b16b9e2d3636f62c3c977e5dab46032e0d12349785a80b44baa96967eb395e3afc5d96004c180286c98b43bec9dbc603f9d225e33b68691803e5aae724a7164a3d1f4ef908a798a676018aa5df7e656903ad14ed3e519e84076da6b1580accba45349f4727468a4451cb5a50a3384030ee05581d0398927c689d9a249a65324ad618fd600f1ce51dd1a61a0ce01d73d9a0040104591dab6080604052600436106101295760003560e01c8063ad1977e5116100a5578063d025dec011610074578063df2ebdbb11610059578063df2ebdbb146103b7578063e42e0ea9146103eb578063eb61cf561461040b57600080fd5b8063d025dec014610370578063de701fd61461038357600080fd5b8063ad1977e5146102ed578063b3dc8da4146102f5578063bc85276014610308578063cb77ead01461033c57600080fd5b806352283e35116100fc5780636ccae054116100e15780636ccae05414610257578063754971721461027757806379285133146102b957600080fd5b806352283e35146101ca578063678fcd61146101fe57600080fd5b806324d97a4a1461012e57806329829e1014610145578063487d46c7146101af57806352106ce9146101c2575b600080fd5b34801561013a57600080fd5b5061014361041e565b005b34801561015157600080fd5b506101797feb61cf560000000000000000000000000000000000000000000000000000000081565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6101436101bd366004611b19565b610490565b610143610900565b3480156101d657600080fd5b506101797fb3dc8da40000000000000000000000000000000000000000000000000000000081565b34801561020a57600080fd5b506102327f0000000000000000000000003a23f943181408eac424116af7b7790c94cb97a581565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a6565b34801561026357600080fd5b506101436102723660046119c5565b610bc7565b34801561028357600080fd5b506102ab7f837ed841e30438f54fb6b0097c30a5c4f64b47545c3df655bcd6e44bb8991e3781565b6040519081526020016101a6565b3480156102c557600080fd5b506102327f0000000000000000000000003a23f943181408eac424116af7b7790c94cb97a581565b610143610cef565b610143610303366004611acd565b610f2f565b34801561031457600080fd5b506102327f00000000000000000000000071630095e3f08a86afc73f7b07342192adf39c5581565b34801561034857600080fd5b506101797fd025dec00000000000000000000000000000000000000000000000000000000081565b61014361037e366004611944565b6111ec565b34801561038f57600080fd5b506101797f487d46c70000000000000000000000000000000000000000000000000000000081565b3480156103c357600080fd5b506102327f000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b3480156103f757600080fd5b5061014361040636600461185a565b61135e565b610143610419366004611886565b6114a3565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000071630095e3f08a86afc73f7b07342192adf39c55161461048d576040517f38647caa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33ff5b6040517f7095d47100000000000000000000000000000000000000000000000000000000815263ffffffff85166004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000003a23f943181408eac424116af7b7790c94cb97a51690637095d4719060240160206040518083038186803b15801561052057600080fd5b505afa158015610534573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610558919061183d565b73ffffffffffffffffffffffffffffffffffffffff16858560405161057e929190611bb2565b600060405180830381855af49150503d80600081146105b9576040519150601f19603f3d011682016040523d82523d6000602084013e6105be565b606091505b5091509150816105d057805160208201fd5b600080828060200190518101906105e79190611a9d565b915091507f000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107485761064f6040860160208701611819565b73ffffffffffffffffffffffffffffffffffffffff1663deace8f583606088013561067d60208a018a611819565b8660808b013560c08c013561069860608e0160408f01611819565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e08a901b168152600481019690965273ffffffffffffffffffffffffffffffffffffffff94851660248701526044860193909352606485019190915260848401521660a482015260a089013560c482015260e4016000604051808303818588803b15801561072a57600080fd5b505af115801561073e573d6000803e3d6000fd5b505050505061084c565b6107586040860160208701611819565b73ffffffffffffffffffffffffffffffffffffffff1663deace8f560608701356107856020890189611819565b8560808a013560c08b01356107a060608d0160408e01611819565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b168152600481019690965273ffffffffffffffffffffffffffffffffffffffff94851660248701526044860193909352606485019190915260848401521660a482015260a088013560c482015260e401600060405180830381600087803b15801561083357600080fd5b505af1158015610847573d6000803e3d6000fd5b505050505b7f74594da9e31ee4068e17809037db37db496702bf7d8d63afe6f97949277d1609828260608801357f837ed841e30438f54fb6b0097c30a5c4f64b47545c3df655bcd6e44bb8991e37336108a360208c018c611819565b6040805196875273ffffffffffffffffffffffffffffffffffffffff95861660208801528601939093526060850191909152821660808401521660a082015260e08088013560c08301520160405180910390a15050505050505050565b610963337f0000000000000000000000003a23f943181408eac424116af7b7790c94cb97a561093460546044366000611c13565b61093d91611c7c565b60801c61094f60186004366000611c13565b61095891611cc4565b60601c929190611636565b610972602c6018366000611c13565b61097b91611cc4565b60601c63deace8f561099260446040366000611c13565b61099b91611d0a565b60e01c6109ad6040602c366000611c13565b6109b691611cc4565b60601c6109c860546044366000611c13565b6109d191611c7c565b60801c6109e360646054366000611c13565b6109ec91611c7c565b60801c6109fc4262093a80611c3d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b168152600481019590955273ffffffffffffffffffffffffffffffffffffffff9093166024850152604484019190915260648301526084820152600060a4820181905260c482015260e401600060405180830381600087803b158015610a8a57600080fd5b505af1158015610a9e573d6000803e3d6000fd5b507f74594da9e31ee4068e17809037db37db496702bf7d8d63afe6f97949277d16099250610ad59150605490506044366000611c13565b610ade91611c7c565b60801c610af060186004366000611c13565b610af991611cc4565b60601c610b0b60446040366000611c13565b610b1491611d0a565b60e01c7f837ed841e30438f54fb6b0097c30a5c4f64b47545c3df655bcd6e44bb8991e3733610b486040602c366000611c13565b610b5191611cc4565b6040805196875273ffffffffffffffffffffffffffffffffffffffff95861660208801528601939093526060808601929092529092166080840152901c60a08201527f010000000000000000000000000000000000000000000000000000000000000060c082015260e0015b60405180910390a1565b7f0000000000000000000000003a23f943181408eac424116af7b7790c94cb97a573ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c2d57600080fd5b505afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c65919061183d565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cc9576040517fb20ca36500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cea73ffffffffffffffffffffffffffffffffffffffff84168383611701565b505050565b610cfe60186004366000611c13565b610d0791611cc4565b60601c63deace8f534610d1f601c6018366000611c13565b610d2891611d0a565b60e01c610d3a6030601c366000611c13565b610d4391611cc4565b60601c34610d5660406030366000611c13565b610d5f91611c7c565b60801c610d6f4262093a80611c3d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b168152600481019590955273ffffffffffffffffffffffffffffffffffffffff9093166024850152604484019190915260648301526084820152600060a4820181905260c482015260e4016000604051808303818588803b158015610dfc57600080fd5b505af1158015610e10573d6000803e3d6000fd5b507f74594da9e31ee4068e17809037db37db496702bf7d8d63afe6f97949277d160993503492507f000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9150610e6b9050601c6018366000611c13565b610e7491611d0a565b60e01c7f837ed841e30438f54fb6b0097c30a5c4f64b47545c3df655bcd6e44bb8991e3733610ea86030601c366000611c13565b610eb191611cc4565b6040805196875273ffffffffffffffffffffffffffffffffffffffff958616602088015267ffffffffffffffff90941693860193909352606085810192909252929092166080840152901c60a08201527f010000000000000000000000000000000000000000000000000000000000000060c082015260e001610bbd565b6000610f3d82840184611a06565b90507f000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16141561106d576040808201516080830151602084015160a085015160e0860151606087015160c088015196517fdeace8f5000000000000000000000000000000000000000000000000000000008152600481019590955273ffffffffffffffffffffffffffffffffffffffff9384166024860152604485018b905260648501929092526084840152811660a483015260c482019390935291169063deace8f590869060e4016000604051808303818588803b15801561104f57600080fd5b505af1158015611063573d6000803e3d6000fd5b505050505061113d565b6040808201516080830151602084015160a085015160e0860151606087015160c088015196517fdeace8f5000000000000000000000000000000000000000000000000000000008152600481019590955273ffffffffffffffffffffffffffffffffffffffff9384166024860152604485018b905260648501929092526084840152811660a483015260c482019390935291169063deace8f59060e401600060405180830381600087803b15801561112457600080fd5b505af1158015611138573d6000803e3d6000fd5b505050505b8051608080830151602080850151610100860151604080518b815273ffffffffffffffffffffffffffffffffffffffff978816948101949094528301939093527f837ed841e30438f54fb6b0097c30a5c4f64b47545c3df655bcd6e44bb8991e37606083015233938201939093529290911660a083015260c08201527f74594da9e31ee4068e17809037db37db496702bf7d8d63afe6f97949277d16099060e00160405180910390a150505050565b6040517fdeace8f50000000000000000000000000000000000000000000000000000000081526004810187905273ffffffffffffffffffffffffffffffffffffffff8a8116602483015260448201879052606482018690526084820184905288811660a483015260c4820185905289169063deace8f590879060e4016000604051808303818588803b15801561128157600080fd5b505af1158015611295573d6000803e3d6000fd5b50506040805189815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee811660208301529181018b90527f837ed841e30438f54fb6b0097c30a5c4f64b47545c3df655bcd6e44bb8991e376060820152336080820152908d1660a082015260c081018590527f74594da9e31ee4068e17809037db37db496702bf7d8d63afe6f97949277d1609935060e001915061134b9050565b60405180910390a1505050505050505050565b7f0000000000000000000000003a23f943181408eac424116af7b7790c94cb97a573ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156113c457600080fd5b505afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fc919061183d565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611460576040517fb20ca36500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f19350505050158015610cea573d6000803e3d6000fd5b876114e673ffffffffffffffffffffffffffffffffffffffff8216337f0000000000000000000000003a23f943181408eac424116af7b7790c94cb97a588611636565b6040517fdeace8f50000000000000000000000000000000000000000000000000000000081526004810187905273ffffffffffffffffffffffffffffffffffffffff8b8116602483015260448201879052606482018690528335608483015288811660a483015260c4820185905289169063deace8f59060e401600060405180830381600087803b15801561157a57600080fd5b505af115801561158e573d6000803e3d6000fd5b50506040805188815273ffffffffffffffffffffffffffffffffffffffff808e166020838101919091529282018b90527f837ed841e30438f54fb6b0097c30a5c4f64b47545c3df655bcd6e44bb8991e3760608301523360808301528e1660a08201529085013560c08201527f74594da9e31ee4068e17809037db37db496702bf7d8d63afe6f97949277d1609925060e001905060405180910390a150505050505050505050565b60006040517f23b872dd0000000000000000000000000000000000000000000000000000000081528460048201528360248201528260448201526020600060648360008a5af13d15601f3d11600160005114161716915050806116fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c454400000000000000000000000060448201526064015b60405180910390fd5b5050505050565b60006040517fa9059cbb000000000000000000000000000000000000000000000000000000008152836004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806117ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c4544000000000000000000000000000000000060448201526064016116f1565b50505050565b80356117cb81611d50565b919050565b60008083601f8401126117e257600080fd5b50813567ffffffffffffffff8111156117fa57600080fd5b60208301915083602082850101111561181257600080fd5b9250929050565b60006020828403121561182b57600080fd5b813561183681611d50565b9392505050565b60006020828403121561184f57600080fd5b815161183681611d50565b6000806040838503121561186d57600080fd5b823561187881611d50565b946020939093013593505050565b6000806000806000806000806000898b036101408112156118a657600080fd5b8a356118b181611d50565b995060208b01356118c181611d50565b985060408b01356118d181611d50565b975060608b01356118e181611d50565b965060808b0135955060a08b0135945060c08b0135935060e08b0135925060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008201121561192f57600080fd5b506101008a0190509295985092959850929598565b60008060008060008060008060006101208a8c03121561196357600080fd5b893561196e81611d50565b985060208a013561197e81611d50565b975060408a013561198e81611d50565b989b979a5097986060810135985060808101359760a0820135975060c0820135965060e08201359550610100909101359350915050565b6000806000606084860312156119da57600080fd5b83356119e581611d50565b925060208401356119f581611d50565b929592945050506040919091013590565b60006101208284031215611a1957600080fd5b611a21611bc2565b611a2a836117c0565b8152611a38602084016117c0565b6020820152611a49604084016117c0565b6040820152611a5a606084016117c0565b60608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152508091505092915050565b60008060408385031215611ab057600080fd5b825191506020830151611ac281611d50565b809150509250929050565b600080600060408486031215611ae257600080fd5b83359250602084013567ffffffffffffffff811115611b0057600080fd5b611b0c868287016117d0565b9497909650939450505050565b600080600080848603610140811215611b3157600080fd5b853563ffffffff81168114611b4557600080fd5b9450602086013567ffffffffffffffff811115611b6157600080fd5b611b6d888289016117d0565b9095509350506101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215611ba457600080fd5b509295919450926040019150565b8183823760009101908152919050565b604051610120810167ffffffffffffffff81118282101715611c0d577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b60008085851115611c2357600080fd5b83861115611c3057600080fd5b5050820193919092039150565b60008219821115611c77577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008135818116916010851015611cbc5780818660100360031b1b83161692505b505092915050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015611cbc5760149490940360031b84901b1690921692915050565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015611cbc5760049490940360031b84901b1690921692915050565b73ffffffffffffffffffffffffffffffffffffffff81168114611d7257600080fd5b5056fea26469706673582212202782853737530c5d7704d294dc445149dffa6251d2779fd1fe8744ec4182960d64736f6c634300080700330605581d035bb393cd3678177d953480fffb031640821912ab33fdcc6c3de5aa400701191dab02186003a730bf4ae8b8d79a8c09ab8d29b845fdd4c90f497f2b15089a8c5320d8cd7d9c033447e445c307e315c641f7334a30f2c305afb61694cef77a7f019125ab5b51ec05581d029291ad79ebc3514775334e829a524ca53b3e6846c295037012e5045f07011bffffffffffffffff05581d0285dd5fa812c16ade46d98a462ab52591722234b4af9472e9681a7e630403021994000362e6699ca445d340a08a03284e01b3f3cab4990bde0bc78a13c61ef6be14bb680324a71b30b9c28e55306638c3db7ecc9e3bd8d21c9af3c1c2ced3597fbbeaaef005581e037e75a84081f34c28db74a0af9532c64529e9e8a42d2fddc45bfeb8f5500c01466b45ce96b32703837f7f0a6ca5a3a5ceeda1ca92c91a1bad695fda8314c10b582431e6a2cbec6203647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d035485a952b56c097ad744f45a0246568a89b2ab61847068f77b88c559436aac0b05581e03661b9b9f4003f803053d196e4afbd16663dd5d899682f592ceeda4519007011bffffffffffffffff03c803c311fb579edc9cdd0f37af32825f11b7b908218efae8214cf585aa02bcd205581e0396f441f715e552befedf39ebbc47bb73caac562fc7e96111fcede6af10040105581e0337270747ac6bd24f9cadb44f8f586562eecf4b0f546356d69c4a96332004080219d7260373e705a5a4746d04942ec3b5d52eed16225360f7177cdc0a7c7ae955ca7204bb037a0de26e5fc495fa84867d35c5fe1f3448e2ee9b1f10bd468c8afc5202f0df12036543e54b735d4ac836ce9ea2d2d957f832daf7ceae205566eb898aa56f37950503ae663c6a8bdf8e069df960f33f13eada3c7b5773889e89563c9cbc6ce5bed779035278bf106d6d3007c87946095ddff7da1bc7e54c1b61e522090100e1548bc661031ce422cec643c89b1de3a2cce99394738223d002e9f4b7a992b7325368cbb209039254ebb04133479d8b4ae1cb661ec427e357617ead6ec9f08e3f0d72c4940f3103d45715e7c93ba73ae1defccd96b36bc143170bb16997937de475bbe26b145dec032719dea563daf7c6c73e5647a7c9b9eb4c310f646097b7b64dd3136355a023760219ffff03b090d4ad08058bea96d6efc8596665e9234e78589e9bcc5212cde873366d09dd03aa600e3bf2f4eba71b8debb72f19cdd8a74d50c12305715945316f1ce935e2f60219ffff0391804c04ad507fed3084e0f3035b8fa1cdece6adb64afa2e82cf9bfb19b60cc8039e70d2f7567e7ee4c651ade1bffe49f28b80d25795a0bc157ef1a7f3e6fb14c603320b47852439bb0ce865edee9bf82a12b09ceb831f25ce88047f0d81496ba056034b1202256bd61a70fb0d8a47988705db43cde136f04d33891d4ee1be801178310382b4efb1c33cd6b9d469e332a71bfb5fafb7d1a652dbf80836c3a951b7903c900301df2d3b655b4d1fcca2babeca9dae2f05cec21c3a85956df233765acf3997ae030f95185bd02c2e5e078918962cad1a58048f51374abe578f3d7066474dabeb0f0219ffff0346fce83f42e0560378c156cb501ac17e6dfd547ae0b76e5d9ce0bf6ffcb948d5035d26b61682604126f05cae2fa7c9f37255f6d51262b137a48d4d752a1cba5f26034bc7f54bffd6cef796ea619b15cf83ab2655cbd68cfa26ccf21b645c60d584c6033d7fa390faa5e542d9aa2b63fabcdd565557ad3aa91d82be24a6d5f05055c0dd0337e37af3cba6d395b8ffbcab48cf209c12e13bc0a030c1b34642bd298773e91a03b84d8680b39fc76d8324a0777afeadcc0271c69f5f3e70582afbef8988a72a4403bc5f6519059efe1298f4382394afe38da88b36019b9d450c0ed2d5dfbc27fdec03f03fad21163c0e5a8f1856dda03839b8e648458024fc988ff0aae334e71dffaf037c82382cbe9b8850cbfdc7d2f1bd0bbfd9b058d31c8e02eabef12ad70d54872c0364267f48fbe45ac79389fbfa9386f1bdcecdc36bc3dac533a7f65e26774f5f5d037ad863edccd66916d0a5e924baa4d55868416ccfa0e99375b5265f0f0ee9c289035d807d87e7de6cccdb2edbc7c47c332a8cec36b3b6a19b659b9e090c595a8be10379bfc2bd3e091e0777862ed2299bb348c5c698830ac0d6e0c3fdae9e111dba97033fb628e733884d50f119d6afa74b4b19ca6a970eead11d014a302a0be4f0a1dc03a44a6f50de2acb407997b92d1bc0a2429fe9ad960fae7b2838bdd6e35e58d44b03f7aedcae509d127d247ac12ac4620eadfad6c4c094a11738d1a36fb7c632055203e45999657119d1de627c9e6f769b3ff2cc69402d20e49c1129bf18b6c349b8a10391a715587602021a38d54d6fb955a0a53d1e0173915b77ee6979117a77cfe55a03187eb2e3170d7e80652d89b26202800ab074922e3534e078fd9848a7d2ca80e60303609d48ac1abb7816c6bd2528a1257134b7df6610b0278ecd4f0e3d20a10202038a2a7ef4fb7f31446e1835b12a9bea173db7cb163bdf258562305bbc3e666feb03c0eefe3049244c5f546a1749202cde1ad99d22f0daa513a6575ea2934d47dab603f29ef60ece90e30358062910f678b9fb6c0f868d67ea010a5e2270df62add4bd03922bcfd1efb30f2d34488a2a957242fce7a0c0e0d1daafe77530e8471051bb3a03350e68771bbe5d38c426a80b2eaa9bb00b7bf976a030c0d536e459c8ba9967a103ec693256b46cdff10b67f19e57da9e8bc04d33b6942c4d5204c77cf9d4da451e030fcd0f41a904f4b35eea7a7202f4ac1d544ddfc1fbff24adb4f96d29212f975f038ab1da6a0c72748a552ddf4c0d914106f5231420ca001325705c7cd9a915e1870328744b7bb183e45cda31b091edf61e3d9ce58402066a9f2fa7972795e79170c00370271b2232bcb272383af5ad548b6370c0015885d6299e5a8f50dffd29f4867e033cec322c490ebd3afe33b2fd078123d808f4246463448d268771c7a7642e3840035198e7a8fc39390cd8ab35635f50d78161eb023f1098edd34e4227af3375d5e903f0919f7a063c5dfc4982275070156fd7af510f66ce59a0b24d51f704ac7a49da034a3dadf8801cdeada6ed42f90256cc145b48e330664e21e4b34d1525f6c4749b0317c2e6de84157c1df98d5211f6f21ab5c6f09d970b4cf0ba827e11644fd4cf48032db95d4cd5553ea0be1a0ec63355969f0f44af12d45239d5e949f2558078d9fd03be5ad45bdbbe0afaef38e539bd4180a4b0d3fee100e9aa7998bd15825bb041a103202163abe14af6c6165a62f4cf21218b532db9ef9dbdb81a0488cd2550b8313b05581d02046b3380bbc2157647d128c5541e2d0d879575498ac30a96919f63ae0c014701adef7ccc04c805581d025b0c9274bd273f96afadf6c02e5445cf319b9cdf1224b9b42c9390a50c196c1d49139a7c90b9875ad1460219404005581e034004d1350775a6ec3065879cfc21651704339eb829e1f1bb3afbdd541008475b4ac8dd90cfa0032db80eb985c334460e164b836308bf88f6fcde4d8fc12e1bae82f4585622283705581e031a46b6c907579248c893f55abc1cab201e62c1fdf844512be4565666b00c014706a3efc18cb8000219402d036fc6e4949d6f5ee9fbe7683658701c314a0c3e47ad49c5244f0eac03f2f2e22403c18704e01119436d9b924c3512fb09cb169e46648d6a13e55ccc79605477cdb103c9c885f434374fd5fbbddc69a2b364ec07f5d0365ce7beeb8cb8605e7272885c0219ffff033a28e968e0ecfbf39c8588d351f11bdfd85504ec17c7c7512bfc010f0bf695b80348471c84c7818286468f0ce3f489afe562cb8f64a30e43ae6f593f39771e4943032bfc034f61c9617b7fb623f00b09c3660e2803285cccbde15f3d78c2dfea5d3d03bae2a85e96025fea8420ccc223f224d9157baffc39825322d00a7b4163fae13103e8a61f4c144a1dc51c9c3f1d317bfb565bfe239c5e90b11d08f4fa44df5f108d036b2b1bc4ddbdbca961debf16a63276a153184f67f9addcb030df3fd6712f00d803d9279f6c6621cd1d73aca6f435f296db10f5a98488de3d13dc74d6a17adee2c3038e4fd55120e1e8accc20f328966dd41a8f3404dbb9d0ba6d145bc0428ddae68f034bc448bdb4bd75cfd9833d6ff15324c0e0592c05596d83b1beda741363f1c556039494e46baac768ecc07daedf57263405467012a972d48177e381f50e53dde8fe0394b84deef4b2adeea08e4c73d317988a210ce136fe2b56a91d9b7c5555f3caaf0219ffff0219ffff0368086dea288b2f48d648c708ce0a64d6b13e9c092816854252f190c4b50cad5a0352b141986f431270b46c30985091b76053fcd3c9654d09056184af5d7c9c5dce0388adc940249c25e26c115f60df16e536da249902df09dc422f93ce4267e562b7034b17b8523682964a645d3dd34a80302c93cb65133d440199f2f9a9e05300364c03737873d899f7be39c437a8f96ff211ffa957350bb77dc24f902aa92650dc49310335458d5852519b08b0b577727824e6da97e8ed51221bdf0b445360a188f49d33033d9016a2a33a0169ad35740829b75c61cb6cc0413e30edd0005a356f52c914a1031f7e6d7fc8ce36bb408387cd62e23078a71802e732ee4c259257e6c3106ea500030c5e8185536d1e13e367060003cabc435fc7249c745acb59493aa17ec685676103727c561c8ea4182a85fe2bc8520d2636a43ade0fe723c5fbcffe0035f0c7581903ddc920cb329e13b5d5bfb17901f81a6efad766c74a337e4a2b63b12afe1d0ff70376f6b38c3fa0266139ba2aeb9db7303ee69065d427d8d1f04128a252b23ddcbb03098df73819a35d67f0b5b6f6d64bf5bd7a8d16ece2a234ab64820dea08261a0a03a90816f70457bd5145afaccaed8c354ab7fd040aa2d3e1283b7286cd14efa05905581e0393a71cfedfd8ffb095d52c58d438b0449c2d0a9733c3a19931880478d0040105581e03ae1ad243859a195bbade0968ce60c5528fe1c0b35aeb70ca03984a4340040105581e031d8cd855612c11364423b8fb2c042b61446e4c4a86b3a05a5b312a0330084837511de19ab5000003e0be82f66eba7f2059775e7d9cf29307feed420c3b0d3c266b91f940bfa818a9045934b66080604052600436106100eb575f3560e01c806370a082311161008957806395d89b411161005857806395d89b41146102d0578063a9059cbb146102fa578063c9567bf914610336578063dd62ed3e1461034c576100f2565b806370a082311461023e578063715018a61461027a578063751039fc146102905780638da5cb5b146102a6576100f2565b806323b872dd116100c557806323b872dd14610186578063313ce567146101c25780633bbac579146101ec57806351bc3c8514610228576100f2565b806306fdde03146100f6578063095ea7b31461012057806318160ddd1461015c576100f2565b366100f257005b5f80fd5b348015610101575f80fd5b5061010a610388565b6040516101179190612466565b60405180910390f35b34801561012b575f80fd5b5061014660048036038101906101419190612517565b6103c5565b604051610153919061256f565b60405180910390f35b348015610167575f80fd5b506101706103e2565b60405161017d9190612597565b60405180910390f35b348015610191575f80fd5b506101ac60048036038101906101a791906125b0565b6103ee565b6040516101b9919061256f565b60405180910390f35b3480156101cd575f80fd5b506101d66104c2565b6040516101e3919061261b565b60405180910390f35b3480156101f7575f80fd5b50610212600480360381019061020d9190612634565b6104ca565b60405161021f919061256f565b60405180910390f35b348015610233575f80fd5b5061023c61051c565b005b348015610249575f80fd5b50610264600480360381019061025f9190612634565b6105b3565b6040516102719190612597565b60405180910390f35b348015610285575f80fd5b5061028e6105f9565b005b34801561029b575f80fd5b506102a4610747565b005b3480156102b1575f80fd5b506102ba61084a565b6040516102c7919061266e565b60405180910390f35b3480156102db575f80fd5b506102e4610871565b6040516102f19190612466565b60405180910390f35b348015610305575f80fd5b50610320600480360381019061031b9190612517565b6108ae565b60405161032d919061256f565b60405180910390f35b348015610341575f80fd5b5061034a6108cb565b005b348015610357575f80fd5b50610372600480360381019061036d9190612687565b610dd6565b60405161037f9190612597565b60405180910390f35b60606040518060400160405280600481526020017f4675467500000000000000000000000000000000000000000000000000000000815250905090565b5f6103d86103d1610e58565b8484610e5f565b6001905092915050565b5f64cef5e80de0905090565b5f6103fa848484611022565b6104b784610406610e58565b6104b2856040518060600160405280602881526020016134596028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610469610e58565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b8d9092919063ffffffff16565b610e5f565b600190509392505050565b5f6002905090565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661055c610e58565b73ffffffffffffffffffffffffffffffffffffffff161461057b575f80fd5b5f610585306105b3565b90505f8111156105995761059881611bef565b5b5f4790505f8111156105af576105ae81611e78565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610601610e58565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461068d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106849061270f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61074f610e58565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d29061270f565b60405180910390fd5b64cef5e80de060148190555064cef5e80de06015819055505f60075f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf64cef5e80de06040516108409190612597565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4655465500000000000000000000000000000000000000000000000000000000815250905090565b5f6108c16108ba610e58565b8484611022565b6001905092915050565b6108d3610e58565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461095f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109569061270f565b60405180910390fd5b601960149054906101000a900460ff16156109af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a690612777565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a343060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1664cef5e80de0610e5f565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac291906127a9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6c91906127a9565b6040518363ffffffff1660e01b8152600401610b899291906127d4565b6020604051808303815f875af1158015610ba5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc991906127a9565b60195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c50306105b3565b5f80610c5a61084a565b426040518863ffffffff1660e01b8152600401610c7c9695949392919061283d565b60606040518083038185885af1158015610c98573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cbd91906128b0565b50505060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610d5d929190612900565b6020604051808303815f875af1158015610d79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9d9190612951565b506001601960166101000a81548160ff0219169083151502179055506001601960146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec4906129ec565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3290612a7a565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110159190612597565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108790612b08565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f590612b96565b60405180910390fd5b5f8111611140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113790612c24565b60405180910390fd5b5f61114961084a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156111b7575061118761084a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118dd5760055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561125a575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611262575f80fd5b60075f9054906101000a900460ff16156113e85760185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611320575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113e7574360065f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139b90612cb2565b60405180910390fd5b4360065f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611491575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114e4575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116125760145482111561152e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152590612d1a565b60405180910390fd5b6015548261153b856105b3565b6115459190612d65565b1115611586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157d90612de2565b60405180910390fd5b60135460085410156115a55761159b836121ec565b156115a4575f80fd5b5b60085f8154809291906115b790612e00565b9190505550600160045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b61164e60646116406011546008541161162d57600d54611631565b600f545b856121fd90919063ffffffff16565b61227490919063ffffffff16565b905060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116d857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117f857601454821115611722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171990612d1a565b60405180910390fd5b61175e60646117506012546008541161173d57600e54611741565b6010545b856121fd90919063ffffffff16565b61227490919063ffffffff16565b905060135460085411806117b8575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6117f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ee90612e91565b60405180910390fd5b5b5f611802306105b3565b9050601960159054906101000a900460ff1615801561186d575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118855750601960169054906101000a900460ff165b8015611892575060165481115b80156118a15750601354600854115b156118db576118c36118be846118b9846017546122bd565b6122bd565b611bef565b5f4790505f8111156118d9576118d847611e78565b5b505b505b5f8111156119dc576119358160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122d590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119d39190612597565b60405180910390a35b611a2c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461233290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611acf611a83828461233290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122d590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b72848661233290919063ffffffff16565b604051611b7f9190612597565b60405180910390a350505050565b5f838311158290611bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcb9190612466565b60405180910390fd5b505f8385611be29190612eaf565b9050809150509392505050565b6001601960156101000a81548160ff0219169083151502179055505f810315611e5b57601960149054906101000a900460ff1615611e5b575f600267ffffffffffffffff811115611c4357611c42612ee2565b5b604051908082528060200260200182016040528015611c715781602001602082028036833780820191505090505b50905030815f81518110611c8857611c87612f0f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d5091906127a9565b81600181518110611d6457611d63612f0f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dca3060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e5f565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611e2c959493929190612ff3565b5f604051808303815f87803b158015611e43575f80fd5b505af1158015611e55573d5f803e3d5ffd5b50505050505b5f601960156101000a81548160ff02191690831515021790555050565b5f611e8d60048361227490919063ffffffff16565b90505f8060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051611ed690613078565b5f6040518083038185875af1925050503d805f8114611f10576040519150601f19603f3d011682016040523d82523d5f602084013e611f15565b606091505b509150915081611f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f51906130fc565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051611f9f90613078565b5f6040518083038185875af1925050503d805f8114611fd9576040519150601f19603f3d011682016040523d82523d5f602084013e611fde565b606091505b50809250819350505081612027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201e9061318a565b60405180910390fd5b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161206c90613078565b5f6040518083038185875af1925050503d805f81146120a6576040519150601f19603f3d011682016040523d82523d5f602084013e6120ab565b606091505b508092508193505050816120f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120eb90613218565b60405180910390fd5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166121526121436003866121fd90919063ffffffff16565b8661233290919063ffffffff16565b60405161215e90613078565b5f6040518083038185875af1925050503d805f8114612198576040519150601f19603f3d011682016040523d82523d5f602084013e61219d565b606091505b508092508193505050816121e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dd906132a6565b60405180910390fd5b50505050565b5f80823b90505f8111915050919050565b5f80830361220d575f905061226e565b5f828461221a91906132c4565b90508284826122299190613332565b14612269576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612260906133d2565b60405180910390fd5b809150505b92915050565b5f6122b583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061237b565b905092915050565b5f8183116122cb57826122cd565b815b905092915050565b5f8082846122e39190612d65565b905083811015612328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231f9061343a565b60405180910390fd5b8091505092915050565b5f61237383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b8d565b905092915050565b5f80831182906123c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b89190612466565b60405180910390fd5b505f83856123cf9190613332565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124135780820151818401526020810190506123f8565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612438826123dc565b61244281856123e6565b93506124528185602086016123f6565b61245b8161241e565b840191505092915050565b5f6020820190508181035f83015261247e818461242e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124b38261248a565b9050919050565b6124c3816124a9565b81146124cd575f80fd5b50565b5f813590506124de816124ba565b92915050565b5f819050919050565b6124f6816124e4565b8114612500575f80fd5b50565b5f81359050612511816124ed565b92915050565b5f806040838503121561252d5761252c612486565b5b5f61253a858286016124d0565b925050602061254b85828601612503565b9150509250929050565b5f8115159050919050565b61256981612555565b82525050565b5f6020820190506125825f830184612560565b92915050565b612591816124e4565b82525050565b5f6020820190506125aa5f830184612588565b92915050565b5f805f606084860312156125c7576125c6612486565b5b5f6125d4868287016124d0565b93505060206125e5868287016124d0565b92505060406125f686828701612503565b9150509250925092565b5f60ff82169050919050565b61261581612600565b82525050565b5f60208201905061262e5f83018461260c565b92915050565b5f6020828403121561264957612648612486565b5b5f612656848285016124d0565b91505092915050565b612668816124a9565b82525050565b5f6020820190506126815f83018461265f565b92915050565b5f806040838503121561269d5761269c612486565b5b5f6126aa858286016124d0565b92505060206126bb858286016124d0565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126f96020836123e6565b9150612704826126c5565b602082019050919050565b5f6020820190508181035f830152612726816126ed565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127616017836123e6565b915061276c8261272d565b602082019050919050565b5f6020820190508181035f83015261278e81612755565b9050919050565b5f815190506127a3816124ba565b92915050565b5f602082840312156127be576127bd612486565b5b5f6127cb84828501612795565b91505092915050565b5f6040820190506127e75f83018561265f565b6127f4602083018461265f565b9392505050565b5f819050919050565b5f819050919050565b5f61282761282261281d846127fb565b612804565b6124e4565b9050919050565b6128378161280d565b82525050565b5f60c0820190506128505f83018961265f565b61285d6020830188612588565b61286a604083018761282e565b612877606083018661282e565b612884608083018561265f565b61289160a0830184612588565b979650505050505050565b5f815190506128aa816124ed565b92915050565b5f805f606084860312156128c7576128c6612486565b5b5f6128d48682870161289c565b93505060206128e58682870161289c565b92505060406128f68682870161289c565b9150509250925092565b5f6040820190506129135f83018561265f565b6129206020830184612588565b9392505050565b61293081612555565b811461293a575f80fd5b50565b5f8151905061294b81612927565b92915050565b5f6020828403121561296657612965612486565b5b5f6129738482850161293d565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129d66024836123e6565b91506129e18261297c565b604082019050919050565b5f6020820190508181035f830152612a03816129ca565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a646022836123e6565b9150612a6f82612a0a565b604082019050919050565b5f6020820190508181035f830152612a9181612a58565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612af26025836123e6565b9150612afd82612a98565b604082019050919050565b5f6020820190508181035f830152612b1f81612ae6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b806023836123e6565b9150612b8b82612b26565b604082019050919050565b5f6020820190508181035f830152612bad81612b74565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c0e6029836123e6565b9150612c1982612bb4565b604082019050919050565b5f6020820190508181035f830152612c3b81612c02565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612c9c6024836123e6565b9150612ca782612c42565b604082019050919050565b5f6020820190508181035f830152612cc981612c90565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612d046019836123e6565b9150612d0f82612cd0565b602082019050919050565b5f6020820190508181035f830152612d3181612cf8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d6f826124e4565b9150612d7a836124e4565b9250828201905080821115612d9257612d91612d38565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612dcc601a836123e6565b9150612dd782612d98565b602082019050919050565b5f6020820190508181035f830152612df981612dc0565b9050919050565b5f612e0a826124e4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e3c57612e3b612d38565b5b600182019050919050565b7f53656c6c6572206973206e6f74206275796572000000000000000000000000005f82015250565b5f612e7b6013836123e6565b9150612e8682612e47565b602082019050919050565b5f6020820190508181035f830152612ea881612e6f565b9050919050565b5f612eb9826124e4565b9150612ec4836124e4565b9250828203905081811115612edc57612edb612d38565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f6e816124a9565b82525050565b5f612f7f8383612f65565b60208301905092915050565b5f602082019050919050565b5f612fa182612f3c565b612fab8185612f46565b9350612fb683612f56565b805f5b83811015612fe6578151612fcd8882612f74565b9750612fd883612f8b565b925050600181019050612fb9565b5085935050505092915050565b5f60a0820190506130065f830188612588565b613013602083018761282e565b81810360408301526130258186612f97565b9050613034606083018561265f565b6130416080830184612588565b9695505050505050565b5f81905092915050565b50565b5f6130635f8361304b565b915061306e82613055565b5f82019050919050565b5f61308282613058565b9150819050919050565b7f4661696c656420746f2073656e64204574686572205f74726164696e674149575f8201527f616c6c6574000000000000000000000000000000000000000000000000000000602082015250565b5f6130e66025836123e6565b91506130f18261308c565b604082019050919050565b5f6020820190508181035f830152613113816130da565b9050919050565b7f4661696c656420746f2073656e64204574686572205f7465616d4d756c7469735f8201527f6967000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131746022836123e6565b915061317f8261311a565b604082019050919050565b5f6020820190508181035f8301526131a181613168565b9050919050565b7f4661696c656420746f2073656e64204574686572205f6f7065726174696f6e735f8201527f616e644d61726b6574696e670000000000000000000000000000000000000000602082015250565b5f613202602c836123e6565b915061320d826131a8565b604082019050919050565b5f6020820190508181035f83015261322f816131f6565b9050919050565b7f4661696c656420746f2073656e64204574686572205f6d61696e466f724c69735f8201527f74696e6773416e64436578000000000000000000000000000000000000000000602082015250565b5f613290602b836123e6565b915061329b82613236565b604082019050919050565b5f6020820190508181035f8301526132bd81613284565b9050919050565b5f6132ce826124e4565b91506132d9836124e4565b92508282026132e7816124e4565b915082820484148315176132fe576132fd612d38565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61333c826124e4565b9150613347836124e4565b92508261335757613356613305565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133bc6021836123e6565b91506133c782613362565b604082019050919050565b5f6020820190508181035f8301526133e9816133b0565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613424601b836123e6565b915061342f826133f0565b602082019050919050565b5f6020820190508181035f83015261345181613418565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122057c99a9f61f005a811adf7905ffafc1e224dc500367413163f7bc74bd506da8064736f6c63430008140033035532604242c736c0decbd0a1130ec0101aec37971af61732e7e0a1147485db7f0391969d3b8a2dd1dca845efe8880412f69f1db59c3324210374ed9951b9ee35980360fd2bb9435852aa2f1ab12356860aac96c71e7727537fd4cfc1795fc6c70a1903a00cac2a54a8c00c5e4d12796e685bedc07e3e1da18ec7ae1703d9603a79b05503064d5b4511cd2d839c30f7b9a012d152c76707d4d49e67e0265cd1b87938aa5803bccbd5aa4b529d2a0b47349e893a229bf45a895fe471adf4fd807676d1cc32420337a4c5b4f324ee45311b9c4b1dd770e4055340be344f21fdf64ef92d2efb9c0303ffe1cd18a7788d854273a3eac3b4754f47e1b5450205bb059f5cea2e5585aeeb034283d8cfcc5e132e58d285d4e4d529a85dfb814918866c30216c56bf2bf55f84035052ba5fbcc329fd515a58456c61f919f489a111a448af23c9a3c5a2a76850f903154ca7c41529c60783bb24a7668c6898acb611c515cc70340a8485d5f963f06a0388b4d52c4b42801fba39888ca1fbca4fab402e74a729d73a9b8ceca53ab8491303e2bb4db071bcd03786e533a45c4283deae2a739b7930ef20b3c92d903052274400582003fdabd71cd41a407c0ff6f1b7b420dd685098b8e3db20f1e210db9891afe8a045012053841303a9ce8a075531dff61f365540b5bcfb8495c3435128824a534a9c5a40a8e44f9b0058200330a75b32ea3b9a4b4405d15eb94648fdeca5fc158ded121b6c63f27eb430904404f49b4f03aea5127a1d5598df68732d63af7763c63eed1320750ea21ff9e4f9a534bee27a034c770b45902faf27928d03eac917161d47482ba6d90ca39e0f9f6d25f10cd96403de7600e40ab33dd39c6d131cf032d84d436dfb3415d6e163145a19a1c28e1916039d302aaef68b3627b5ac4c36d9b737d1c60a70921e0f86de95f0b76a1f5839f500582003017cb5e0ab3c29662d9adf7d6fe234e0329b3d2b4eb400d015feeb173034f041010380d44dd31f90d90f3f1ddfe189cab58fffcd842f2beed708a9d705a4f6c95b0c039085409c7bad0f8cc7d3ff6e15e11e1d0893961b9311792950e043458cbf8bc603af20b6d5be185f31d8b4b9636a03d07c141a1d136776585587f829410f1b763c035deac06041e7edd5cba3858306aa7431cb8882c04db152247d8efef90c4b24970219aebf03cd749a4bde73eb56510e5a19513e4b7cb9aad33f165eaab8ad8df2b9d14165f603a80d3b6d7040fd9c5ba98003ef94cb2bd8df382f684b9a3526a89b9f16856b910219ffff0312e34261e290be484da453ad316115115b31e938af4117bc542c0b254040d966037f7b2948fac84c93065fc01ce649608ca565288bd277bf5acaab9a1eb9058e4403af7740d26e39b779e479660df80a49eeddcbfe0888e1b235b05fd53ef4098c39036cda51499bfdad310ad727e2dcb74d085265dde0e1216bc12846ebc181534ddc0309c8453b61f4cc0ed42f1671bd6f9ba857a6fd49af4d195977a790e9d0dad3fc03adc8fed86ddbc31deed7994c0c4914804aacc9346d66100fbb70112540ad20c5037fb7618c71125f5209bb3a5e8ea4c1bcb7aa642761c609f24c29e1ead5cb2ca40308975ad79e4a63368ba1adfd8b5750fc86b167fe4bc0de4cb548c2fda878013f0304be446b7e3b1221e5c6ef306982168a3068867f14ec4da3b9881080db64b47f0395a55dc049f24c5c636d2b2ee5a4de2741b7b8d62bd96ba8c8b6574d8d9521f703824ef535eca6a47d4595079f584dc072d85b753ad7333ebb3f47731348bb666400582003bff4fd2cbee83d7ddd9b5afa129f78eaa49af7f067a24ff38861fe3decff105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff593bb3005820034bb21c5d152abddca8383379af98952ecefa2438ae4e6b51aa8b9e75563070410100582003b1578f275015260e718f9ce31a591eed0e71d8d93c8cf4a43729e9492d71c0410103ad339ae772232f956b8bc31170a8427cd9cb9c2923e4b8a173ad6834e5ae251100581f021c34b6b00e210249933c160567e2a00953a71a36211f1356d9d599c6b2875820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffed533c5200581f02771c25eebe5f498aab8969974f5f8149225b0986acad3e4a33a735b7f76e41010219060003c6528e8fbfb6700f9f0facb4f5bbae7066b49763ffc178f17a9b18187334a82f034f05ace0b4fef767df1180085ee055c135da77e6361d930a669fe9b13637f57a03e267543799120d39359f91a06993a5831e8b87f9d26925e5554059e763b5f64c032fae4549449b7f2c6a149516ea8d3ff796880959ddea2c8584dc5475a0bab6fb035c97ae3c8dbca93c92e7928e2018348bf1e6a13ed30acab16ee81b851ea57a7601410900582003c2e09678e6808f52bbcaab57568a864dce362ed0e941aaf5fa733e0aee9fc05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffff8b2cc5ff0219dece03f522e6592a1b492678eb679316afe567e4c4f350329559b176a4077a38448d6103d756bf85beb009176fc699120ee813ae987d070ed6d822b757d5f47ef82457f303c1b78c69df7bf291a49d21c6e275366f5027270c73c6206688e93aa38a97867600582003f6a31d1784f5416253a65b0384b109e39b112902035885705c138f9b6aa260410100582003861b7eded3a732f47b8806dd18187074f2d6e202536c50cf00fd330b863b40410100582003e79acb1a6f84f2f09de5078a1b0663c77937559f98dde31e0771c1b481405041010058200300bc74208854d2d1b271aca6d3454f16a5cf10bc4490327cd372a85604b3704401d925e5005820033ecfe620ad775a976621e1e77e5ed296d616282d279553382d5bebf95bc0a04101005820032448358c542b9b2b18ab1424f3e6069a970fac16c1d8411547eb61b12694e0410103c957f95b9e330a2603f4f2cd44451caae3b9edfa1de90a0f1446c420c8ca2f6e030125ff1d6876b9c53874f68a046fd1653966b0f9ce746e9f0696fa7f5598faff030805d9f66e44b4a8c1e293f1da078bdeecee895e5e7a3388d48e9c1c5a95b0f600582003f9eed06902ef669469906c81692c8787844707309d492b87874dd0d1caa9504101032e52d59a9b91b08ac943c8e5ca2f63e74645de7b0d8ed3b5d9fb98286b98a57f00582003c7f7b33e2e166f733b14d51ddea60b9af31caf5e3c1b5bd38f1fa9857dbd00410100581f027d0e2d0b6851b9a8b1374d1bc532bdd64bc4181f706d22ff39a91ea162aa410100581f02f8761a26ad809c5137043ba2b7892e313644cfc12f1192eaee0bb7471ed85820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4ed9b3402190408005820032165483b876b7377d98821dae84ddf70586a26e81fb3a4f5a4ff2f9272bdb041010219bdff0219ffff03a4022c881aeebf28ab471231a70bd30dce144ce11af607bdf94a6f0de67dd9d9033721bd3a2dbfee095ffb5002c2917dd0095de11d8f6af507369f52489cab632b039898a54c3bf867cb2a6bc7f9422729232df9490afc0d420aca110cea4a575755035aac9deac7a8446ef6970d9aecc29727c5a95786b38da16489e2deac89b99e46033fef954ffbd4215ea81a6d7e19d277ae3442fbcdd3640e6831d88a03f458ea510395db7a2f120eeb15d3b9bbdc5e4b4b2783c2c5346c9353677d6865c715a75dfb034b6ce546daf8df91541a419a5a853d4460483412880558d2f9bb318b737fc447031a17d313fa867c3d6fae3dfc47fdd63bcbfd3d2e74f3b8010dba8bb5c4ea86d3035a0f09e09cba7af02a9235003d59b5ada671d57bb65604d0aec559eccd364e6b0058200350afd4bf28f0503f685cd6d7bbeae51678759cbe5a4e9b8f828e376e949270410103f32eca1d3d3be0886b351a37ea560176bcbe2dae21771aa333ea10b2d8541090014100031a37e88051190fd5a43af0ff02cd3df699410d7e15ab55905c3393a9b214fdae035802551bc5cef257905885d944d76c789474812fe12a9c1792f0031fe71cec960058200399fa00952b951ab37160b9b7ad7c3bd849fa2129fb58c300dea8692921e78043771f810058200303180764cb3a652be2832e909ece920284dea159cd7985daeef97deb0bb460412c00582003ca2060ea3674880d68ade203514fc8d95ee90ae09a6ce83bdb5a49c36876804101039f422f11fdbc531f2fbf8908cdc09ead18200a5e30fc3fe3e828673d85a963cf03cbbce0ae71eacc0182b0c4779c9fa5396e67ee808fb486abf89201618c58edca00582003e5cb61f40dad7beb89cd05a53bd391d2ad0f63dcc5f44363ee0a01cd9574d04320b40c00582003a32fcfec07c1d3ce98cc8ec6359109f14dd75582d681de4d5f861d87b3fe40450138a3631c03c47a4ba1e48f62180bd0f0f35242c9e88ad63ff269b4a64dc8403401b19dee2b0058200358680ddc0e3ec68c4e03158e3484290972f2302a74800071301b0eb365c4504101030b5cb95d17fe6d19d01ab3d161e43c9aae99756564700617ce2d390e82f56a0f0219f77f0360218d2b1b32ebdbc5abd6b5a7161bae9ff3b8ef069bcaaef868522e503d732603c429bae765c1e15bc0136cb8ab17fbc0e9b564a73289409042bc4a58c9853d3d03e98ab13e2d58d2411fea500f805fe91983d18a0d65cd61756f922403ac128c5e034ac6547300b883e54f01dcecd21088091bde056ac25af5143998a27a4af0e8da039bd1739401186a93e7b0cf9e5e4f6ccd44bbc009f7ebc8754faef150b5e4f1ad03b4ce6c7111805d772c016334b8938b8701b352774eca6274fad79bb93d0ef8310219ffff03cff8c7981d4158c928d9b41b9f72c803f96dbb013c6d1f9e53d235a8558949a9033d1c73832c83e1437058c2da5a3d2378ed2b7468d9ad300ec8b76ed195837f0100582003b35cf96e1d641a488ae8606913bcd8984755aa46aca2d08f45e32cb70803c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffff91bb3d7f0355ef1c8eecfd4149f506ab9e6856a9a27b431656e03452fa9bda184c7a8c604e03ae55c8f2421d0b1c6236d69d04904ae8370834a78462313270216b03cd5126d4032427f8bd0c49a2060d82876cd6f6278ab56955ae17b65742fbae28879cfe57da03a7928b0dca8f7beb4ab7eed8e2a1ba93632b98f10f87cbbab7167641ac9702c6014102034ad2e8101f1177a1a06dedc5d55d37dc4d7d8ec9a355adf375b2e337997799f003e46f5988d28dc34be9cf36602b65735d0b09b5b10d7ac4f96b8b46bf6876d87e00582003a0a7c95d94e881a15711c5461d05fbdf063be742a19d296a12e3eca3dbac305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffff4c8406320377712b7633dffdfa8496eeb4867247b441932d9c18f48dfb8723f49a424699530058200363064ad5fd1675baa31fcbe273f327b09d682cf2841ed379890c758b4387505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffff8c8faf8b00581f02d001937563339e382dddc5540be11212a5ede1a87793ff38d0b86fd34485410100581f02c21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6841050219140002197b7d03ed7f27461eb2f263301d1f924b9906c20b928edcf34d1d9dd128710e9c1d583603f0d66aaf4445b6e519061b7d6cea7e7ca42fc115f9d2ba490d9ea94883a26452031fae2cf2d09d54e71badee130b58b86cadc7cc8c23ca819a81b11e33f712f638030363d89cc1657ac42ff7b9fdd84207b008adaa0ef89ffe7adbb4c9037f82b221038ded18a7b55543c5342ace5964bd20003b551be295d54fd3024693cf15f4b074039d0b5cc2a2d7c9fdfbdb7459e914a450939a2030bd0a3dd61b29465fccb6d8db0313b760202ecbb6538df84c7f8a7695738567a76b98d46e1369dc26e579709599033dd4d903f48793b829943601ca49ba7044b9c6f940042ef809c8ee5b573778ea03c42a3becf3461dce27cf7d48f9fc9590d531bb1d90182359a509ac48c3b25a7c03a75ca1cbe4a728b9446402a4128488b693be16e661593681b79697704929374d03b7380655fad5432ffc805863152e5b6755889498cce42a4009560f0a141c10720386549ef38a3f6d43f1e2b3ad52d4f8b3ec266c090954641ceec8fc0b99d484bd038aae134e5e1a60ba0e0d3e08d8db85f06354a88f69071b7e675acdf817b8f4a3038b12f8363263dde80601dc10c25b07999c6aa7a04db7f39ec3bfb85779bd12740219ffff03fe30f476bc33029d02aceb63498e1483139d873135df0e0bc335c619aecebb0203750ca51d9a320eee08427030e9d55b645283999fc9baac1e7f6869e12a12e0d2035a04a3b1b7e342bb2c6b43f4b97f95c7b6abcf7ffb04d52979d2859046389f8d035065e9a517f264799e730fec877086d8d2e49ff0082199bec8e9918509a5e97903f51f02176d96cd542ceab9a2e081a90715f23af2dc99cb9db9b745aae350693c037863667dcf346afa6cc5446de2ba412a9bc47323e7af0c5f1b9ca71f50357c8503a6f83b756fd0b97a9f445176a6cbc1ad1d10777e3128c0e6a9a05ffbc91bd954036377b03d20ebb3656516482d3a1468cf3fb0558eca15c358fb844808f13dcf570340c1b1e0cdcba59e17e5840477b2e97e5ef9feb6a2ee1bfaa4826a74bd39dbc10397db3777fdb04093d3dbcefcf005bbff579f747809f87e38fd6f3aac123c2003005820034c209d996789316365c59851a67bdbdf203b41281c59d6b4d041170390cde0410100582003ee4a972a5ab62302ba8d125790ed340b3c857501b5472a5bce76b5645ef0e04350e13703b1210487133e924d7f78137c116f8a7fbb2b10a2dca78211c34bb4742949fdb500582003b52827750e52165b0f75bb20263fd6cdf52e6fd5d84b4e68a395fba4bef070410100582003780a1190187f40f9bfd56b470a8ca051b5625052e2837900223682735af720450dffe7823d03f3ff2a63c444d57c8fc7898d193b67282d7f3ad75a6e79eff1b059ca6f9e34b603b11829213a4459dfe2a4741b591ad1a02f8510af77b3361fddb004fda902eaad0058200307d300865e17723376e7ed08e265572a367e7851f34507f5b878785c8df42041010219ffbf03d6f0c1ca07483dd895f04e185ffb36e3c162fb232440262d41f1c8458df36fb7036060d3932c354443780d3fcb33592de88a1e04a80a9627dcbe17d68c37f0b78e03965303e9364fe8ee9e67a759d19c95512a86b5689e38436281ee601088109e68031cd5fef2834b1e193b4cd0fefc45a144aa87ec2dc2b9191a7d992dd81f901e7603440ada2a58749bcd12a15768c1e20b5142ab89005b80b94bbb0799cdfcf68678035a45486ee2268ec024bb505627a78d317ef39a002e0648c3161f96079c456cbc031e8439378bd191764f7504ecfac0d2b8da926808d11a915ef953060673e5a4c303143d7eb556ce0ce53793e6e06b82b4fa24854ca1ad9048102070ce32e9e4326b03f879719ad35bd82fe3eab7b3ba5961a544ca8053f8a34a427901ffe3696cddf30312dc41e2d39128345125ffc1f5126d50757ec4f0a19c4702abc7ff8795f54e140315aba20d22d6b23d72f5924a1fec41b24bad04fc7f8b6963bce2309fbd32ccf2037947eff7e5461a8b5d352e6a77da14c1ffc7cad63ec706ad440e1619527d3c4c0219ffff035e6d5beafd009496d8bd37ccaa1680ed6c703848c43c62bd93a0512497500f4003b55780c8bb0eb3a4e9816ef00cbedc7f636382e318530c6ca54c198b199d379a03977f0ee257ed2a52dbe549926d6ea34ee5fb3d1c6481b6e18560a545301b210203194107584d1f835d62b6cd0e83f1f9c7218a0ad9432957dc2cac97734ac84bb4036021ac9d945dffb2e5a7a62a9cd1cba2cc7ef53feb1f63e35c103fcf71da452f00582003f6058ee2b235bcc72d4ff8bb3a1be2717c0115cf8355373e15ccfba921dbc0410103c20c44e65fdbf425547d527805df330551c1a1780ca9625920736e46a7b292e8031a9ad5a98918ea8882f89e19d470751e2e79a90491074774e7f25c0b8711d69b031d56a6bd81ad2d848ad869295ec8046ec6c891d5b636bb25310d656164b0f661005820038fc503f04051755799ca4bfb47407347cd1bb3172fb478554efb3af5a45290410203c3d5d388fb7f01ab4bd460a494a939fecebd8b43c26d5a36daf422efb5da14d603eee2590756e65b475341054f5ba152dafebc2a111cfa43a7eafa1a4fd80c56d703cfb22b9ed5f4191356705d62c5d9faf95f39f2f7189493d6b829372e5b440359037280a95d1aeede45c54199fdcd5683d9955ef1e9b8d6379b840b76ccf605585503616acfd9191a1fa17b32dfc56a0aa9e99d394f16da361694341b57e5f64eb5d200582003800a172ab472b9c379efeab1ef8e7af9c7c99809b83a63c8c0cac5da31e2c0410100582003f39cb1e8c5be3b0091ea19a93ed3fd7601253743ff22fce5bccb71e11b9de04432a9f880005820035e46f443fcf9f78a58ed740b3f5cd45137cd12190ac2755c63d38196404f5044f01359c000581f026a66936960ab595b32b6da5f86a1ad0004736663426ca048ec472c2e98225820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe455a2d700581f024a241523010888063e0b86651b6704194edb4155db7e34c8a55ce06bec8f410100581f0248fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475450635750aa800581f028ed7dfb243b6f4260157b325c9d0474f835ccabdf502008b333f5a87aa114379d35300581f029401e546fce2584363e16efd435061a893f7e0eadf042f27f12def7d6bc0440be20378021903190219ddff03531f009a364724ad8cc7c0293d4e0af44118cd57aeb837a7dc9fc92bc3997e9603f4cda12d30be48be3d3c69aea56e10917afa76c2c0e6fb069dc3381546969276033b6c1bbe0d226342d0bdfcca66db357e6f073b785894d4554e8a1634a837035103e9e57b9f3a5380739a96c22fe1f0397fd569da2ac644a05f71607ab003b0221203c16ea9092399b905acaa143ca5e671c48cb8a5a7db5186ad3f866b774c0042cb03fcb0772d9b975bdf247fda606d5a95ee91f66a559cf815394fc010d6cf641fbf03bfdbdecbc31c639f4a76ed2edb2f68759f435c7afc5cf900cd743b05783735010341cce944f3ada298d01d5db4be024534390885d081b5d69c530d7d1920aa117b03f46666daec5731e40ffb58a378010cb90f5d119c52697856f6d7cbdbcb6b4bc6034224a64c01ecb0d8b8930c831af453cf27ac49c33be5f26743bdfb9d7d3377590219ffff034034d71988d7ab2c96d69600237cef669835b9af46595fc7f4a0fefc50f7777103ad3081695043a1af10832e7574a4ad66b7b97e873f7ca8d4ea28db5938b7441203ad3fb05ac86885d4b7b57da666f6f479458f66e2a58f85b516db8acf2c0bf5770335b5f163d9963409b49c21963ae53db028dd29050ecb06acf6700fd7a61ea5ba03cbf1692799910fb8caf085e1cb849c0d2cf201ea61cfcd202a3305371c745cb60333136753705d0568460e29c5cf637563e95a337de1a618345640a2a6447174bc034b1bbee2736ef701cd3956bff01150fbfc7bc9e7d92489e7cdc2f40bdafe120201410f032622bd08b38544c01bc57b691ae52d7eca1eb33237933246d17ed65fa644640903cd5ea0021421904f3c3cd9cfc915cb8d46bd6ecde605027f248b4ba68c018b1303aafc0e049c40eabcbbadaa35f3787e3e367d9fa85a2c416be8429ee570c17b140322e7df00a9a906e94ac585f77105e75fe23ae188389e64203b5c698972df1a5803b644488295007735603c49d7ffc2069dec1622bbbfb66d1490a401a056c3c8470337fa0c9aa625f850f158ee60ce94894e07f67974c4a72af09d458d053badca4c005820039203ac5925855f2449b96ef1874324eb09549b72ff05fefd27c5c2a50c63405820fffffffffffffffffffffffffffffffffffffffffffffffffffffffef1c1e73300582003a39b04f79c1b80245ac2f7f120ca0b504ff248de8288f897e24f4b0c7b5ed0410103b974501d84fa6ce676a5f152176073efa38be9bf2de87f20b79d8ee50c2c612000581f028ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090410a00581f0212f7b2b5eb6bc3d37863823ff41090127dce19cdb488fcb20a2b4829df655820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219c000005820034cd18b48b3aacc823578b16fb6e06d85e062033875704c4d8e70d55af5b2e0435631690219a7fd0368fb702df8a49a29bc58e12a09d9bdc4c460dbd42813f934d6d0ea1009b74b5903b00f9520c2f5a8a11ee01bd2105e2a7bb450acf3ceccf0c7f1fc32eae685a1f703417f53ebefbcfe304b6f80514d21ab3a0f95eab652e3751ed931a9721100e72703cd2684844da5301db594d910569edab8741120896059dd595a057d4a02b4980b014105037bd94a16194102daccaa4d63297edcab628c8eb951dd1f5968cae22c4e0a4c0903d76c6d9abc413be99ce4c908e8c5e4d21490d40a7dc3176d449f91787397200d036faaee3949aea2e37d3c93a3bd3922c9954418555d021cc1a3a003679b14aa7e0305e84d856fa5a7063fd7075f8290c4c70aafb005614b1481d695ea1c35894aff00582003dd6d22ac0e3c1b0b7683ca5b6630d79d30a9b247103bc04845523b4ec158e04325d70200582003edaa0c3a462c112b950044a198517684e60b2d71bae8336db5815b13af6380410103f0f503dddef78317941033f363d6cd36d0339e5207d911bf22f5e3a9da15f1300058200368151d8eb266881700d4bca5af2bfe655c17281e9f7f6906436a459e2ef1605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffa272256a00582003d4fd68d4a92576bf71f329ebacfd332408069ff7202dfa43da1e1f86c807c0410102195fe30303bb850eae469fd17e814e749a319638231de254fe0885c8ce81954b18f17e3503cd5ab4eda8e23e0fbf5f4befa22e325b030294132669c871d79d22378705e30c037e8b8aef276b73ca318440a0254e7c8202c96e0af5c7bfa9096905bcebce4222033bde913daa9ca7414ae8695ee5d775ed41099d1b39caa92e1aed333c0dbcdc75031a2d245c989a477470cf34041ad37d9f8b94e84740ba5aa01d99ed769116c87503cc31a1373cbf900ef37da76bc4551f0848901bb688a64f9ccf45d9e516e88f4f0219ffff0363b4a2ef3ff78514ebab1d670eb1197cd662db9fd7cb9712451d84e8f1a61d9903cd5f781c691129f3315ae5d3ab3af33d5111924d0f55b238da9485959b52a08603fd6308eed46303f6ccabf652b8509125728e84e5b22b6811edc26e76ab5a424f03c4287a6f0641b984cd1af97836122d6fdaf8d1ceb03e16f60e11aee854d3bc0603ca8bc8a5cbfb242c833db69b30bd8cfb2ede4d7c4ce4add568e821c8d059c57703d386ac8c5c650febdf4d3ace68e129811c314a63dc31f33d6c38a97dbbe6c38a03b4f1480bdf6c2031a14ae2a5ee095023a30012a1c6b6b10b4c25c00d258a0d1c03437bc0547000d7240cb1ef0c14839bc9d1716d9ed5e7ac28d4dd543b5b74accc039a6171443109865e4e25ce69880112259972348f8a06a818a54b7dd014bc056f005820037801f2af3da5246b313869aa33fb7c5f2f164f32236aa6ffc1f2f0d0871fd05820fffffffffffffffffffffffffffffffffffffffffffffffffffffffff25b40dd005820037d004691155df24efc471cdf42c9c05f1121e9e2fb125ef53c02e86042dd6043ed8f9e00582003e7a07e86cc09539160dc556e2ddfdf086f972ccbddb7214786b258482e3780410100582003ad5af516f5da77256f87c86c4a5f238bdad3446042cd1d0f8a2f6cd0bd038044053b829700582003489397a5f239f84d3a236058cd27163b14d3258a56ddab013a99a557cbd410410103c7f974c6fb0ed8913eeb1a2f8691c479234a481f692750018370af192af0b4e603d5fc7399dcee5e50f25719a524525fad1a25b9ec8b6fa5c6f3f3331d4c5fdf8500582003fb5a59cee0a91c5c47366b0a3da2621a779b8e6b446352ba044ed0d6ffad005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003473d0e465b2a09608f47a422088c9b72f3bfe55f43fbe6b0de441898f453105820fffffffffffffffffffffffffffffffffffffffffffffffffffffffff41a098903ce13dba9618a8d84b0c81dc680683a9b7c2bf5b51665b7a63b22fead73465c2200581f0284988330947994a4af29cb8f44c629c61a28e82af235c9be412504253c18440559f5cf00581f02f7d142e51f4ecbca65d6c71471ce2f8ed53cbc7aa7c79a756ea78dde51ae44b96e3317021400582003665cac20042c4a66018da9a1bfe2ee806fba324149ecba5c8b0a8d8cd9b58041010219a77f032d93d7c74ced8b9cae527462510a06da517a374730d4da9bc6b22ebaeff30ce503ac55219a58c0d7594b3cc37349cb3a4678627af7bbf7052d60785f7bb394b5070354f3d4cb99c562076a5c223c4057f069fa402274c5a4a947cb9ad054f48160d6036b6eecb7aebeba3b78c91dac2ee0bcfad853b409c1dc1ecb634876488a5bea0b0348b9b2f8981538d525a642536b6b86bc15d0502c9fd56338a9ed930b1ed8f02203aab221cadb9b1deb5bf4663c48b71fae20fc39eaadc5126a53c7c113fb05b10a0219ffff0309de81f6dfc3483b685bdf2c0cce3a94f1b292ab7d2527d3026170fc4bb79364033d70623dacea5220913df322bf1774ad1b766d5403bc8bde2d501048d81ec9a00317646dd51a1e264096e5f88e4cae96249e632c7ad9cf2ae1ef293774ef0d2909037208ab2a487e669d0189c619bcf70f3fb332f6dfe76b9ce0e3fa8ba64a7aea0503c4020c7b4980fd509869937ad59f9ebf1230cb727ce48526d64a053add8bccef037e1946cd6d3c2cfa6c69b09d2cbc3e1e0826aa8ccd249809b5f734cde634b179038a17c144de97d30e8c5eef381a8f19cf696a71947a145dd0bec4b3110f5ad3ff0365655396d77701ef77985d1d398b72bcc1738e4fb39b5372ad4209b74abbb685030826179f8a6bbf6c0439fa9676fdf3cbb37b3526df76ed97291f03ff4b69defd0327bf64135972bf4859b21b33a57f7ddcc81b8aefbb9e612ccb380e06b3e69f9f036cb9021f132560b60c1e3b65c3d5dd85be4cee413f22d381c2861ae275829cc30342a8f10f5341345a80b93e303c4bdf2156b14972bdcb33900a88d3c19e2cd3a2030b73359e93b50307ec3769cf46014f466a65455ce989df8f9029b3fb3ee649bf036404fff3c591347d05383e5553c52fabaf416e8c13ef119f2fe809d887ebcc7f00581f0208e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802410200581f026e2c36e4fef39b0a55518b3903781d45a42fe8c338481dcedac1c4b7a9674101021902020058200393689f195f704e4fe61bac8174c5f8374dd74bfa0d5bef66d41cb6b02c8f80410103d1953b687967635cf7c86e1a7f1a6ea32593d14763f7b5701aefe88b30f08cc203cb13e38747d12c39035f08139d5aeb4e1b68aced50c0f97029d7a75f704d5ab200582003e4100b2d61ac72cff1e101db46131ceb94e4f87e3ef45cbe4a1a19d2c4a3a0410100582003ebfa372ae3d9313987790eb433013991803fdd44f8690a377010e46ed87d60410103c874adbfc6785bf46c18d2bb23e1a5a32a201a2004562458e08ecf45525a516803982885e868a86e6529ec28bb5c7688c57c569d8127e5e6ac8977b6d02958026f038da43c7cfd644c391306d7154de70c79ecc5c1017c6531402ebc70a27811018e0384d29b0ff125e3a334f88ec112653715059bc1a06b18aeb870f5739c14a8a0a3039ba9c51db2e0f7b7f60379f11aeedb6075cae2d3fcfe75265f0540891da1b7e30219fb97039016b09e8fc44759be4cd34d0ac7bf1572084564e4e17e911c9345540caec547039e810a6c75c6fdd7dc45b2d57b48a1ed82275fb73edc37a0a78107da78a7dd470219ffff0341db34e2e99254949cd5200c29f2eab64eefe51f6bd867b2aa24680ef6a116110314e353c1fe928940570fb7b3c01ec0bbf28bb36d09f9f5d0b5b2950062b906d3037434d1f1b14bb2071b25c9650facdf0931501e82c99acfcbc0881a9cb520791f03ee0cd83f6f2dca0e700b882367a69a223d494f20e7bf7fb38ec5102b9eb00d990392200f341b94dcb74172e2c42ed1679c3d89b8ee444ca1b75f69cf2646fdc69e00582003efa69930a99e4fa073dab5f5df428899c4be32e4aea3271d213ebb40d742f0410103e46be7df606486d8fdbf206c516ae6e21714ae4f5f01d6364866a6c60d796b9903cff8cc4551b14c3e337ddf296ee6230cb952503a7660bded2d7aa0d7a0080b2c00582003998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695057010001f43672e89ee98e18b3398942f946c96ef68c1c8803fd8c3cbf34247053c13674ae6d9deafbf969b9f312a62f46e272d5a90d718a88005820033ea96c4cdf31f1227313a390f7d000dc6bb2ab7c992af8286cee91bc6e14505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffff161bffc0005820037be2887989718925eadef9b31ff6f9e1cdb82f2ef5a0ac10e552330ef8a4d0410103e920b80ef0ba473c7629279977c27c713e1a982e370f8fd31d787f6c12465a5403e973c11b65dcafde76ee2b8051d80b18cc1d705ecca8f1e12193e84d0e855ed00377bc845508d8762fe831e27bd7db5f8f9a548a8ba1c0192648bcfceca04e9ec000582003a4b4d745ac1eeeecde6727b89b5c0d63b7dbd84f9a71e640219d7ead9b27e04411730c1803a2702944656cbc4771ee40105606565ffacb9370920a047fd014e91631b557cf035be0e3fd9d4bb9eb304388347fbe0a7d37dc47d542c89c7695555e8aa939e45a0219fe7f03f5078eca2f6914d2c4ab0450774d80a98bd962302f4e9eca1b9cdb6a86012e0f0309a6622bcad0f237a7618fd274745f9f398e1c79b908d04ccf805163c3d3928e0373a3949de40ff423cc5a8a76f868df1180b02c4b48adb4ccca87ce6d79a451e20316324e3f6baa211d02c93d92f1866761e4c7b650525c4c0a7877e1a125fdc36a03dc5316a87b75862d5a55e893b7a065a4ccbec409a28532fa4bf3f1f0dda6cddc03fdff4a347bd7fd13eaf851db8164849e72d32c3ab339ad299ba1dd7c15b841d8038d5e4d9f95621235b107a5aade05f45d19325bf045108556fb4bb7f5866c0d66038cda6a723494a82be553d044a032375de7c232735cf4858582662a5d630b6aba03879bab0d82ca078c269b4900bf0f0c5bdf8185036aa94444c72572b25af6cbb103cdab0a3c169eb77bbb81f371ca43943d612396008048f45b6137beca2233c996039584201b731dd0c15aa8f72a797e7a9df509d1da596a7748a6182d6405fcbe710219ffff035cfe68d8a136cda56618bc0d58bc7c861abdece291e36cda1d8fa1a9d92fa91003576e258f944d1baf57c938112e23e4f6e9312bbd627577c174292901c095f22d034f6c4b08450c9904221b49823d462ef7fd53b0cab9d358f38f1a2e4a86ac7e7403eb5cd523527e219fc8974839f6d7c5c1b78561fa1fe5333e1f2a0f9e92ea52b1039539ff7b6d2e11c0cf5e7ec614046136b3e4ee6ad113f816506d814d27436ab0033f7e2fa2259d6c10c0d1cd0bcd09dca119105201627a2f0c6ddce128c38dad73036a1ddbfc7c57b5d4ca301b0287c9acef3769576eed0da2e3408ff089c81c430c0330d8d6027c5c2326169a4e304e403d3d55ce5e8218577876bd751246b42a79a600582003be55324dd653c8ad18b711509094a47936edac594d43b547f0a91029fb2f6043b99cb30058200390c742a4a19bc6e02ca38c267dd06ae9c2bbd28deefcc9a9f7c3b4cd106320410103c06031680af2a44eac8f66ad99ca235893ed9c0d231effa2a36be33099e8c11c033507f5dfd10b0233b998e8601d25953de58469b72b4a5814df1d22f24101fde900582003fc8e818bfaec1040a3c3d6f3894f195a7780894145177c5893481269d8d700431e8480005820030a92acedda3f02bf5bafb8b9985c257dd2631f2be230eb1925383713c280d0410100582003ee69c42ba9f4e468d87908051b1d3d78ca3967cb33e8da6fad26b47e3240904101036a92064486b942c511936ff3c6ffbf0d9c9c2588d1bba5325877649ae804bad100582003221d2d23d7fcbf36c33c0f4322a442f994ba4df2c66d5cc0291fbd08e43e5044021f0053005820037d29f21564bf07977b83933d102cb4b600ba4fe60d743b93af38891cbec3d0440131dcee005820033e1f1d32c99c76f9355d96afc6f5575a34b782d6482bbb78453968b85495005820fffffffffffffffffffffffffffffffffffffffffffffffffffffffffd26922e0389d1469d2d5a290e2f88afd4d1e9702cf23387774528714abd2b0dc3fdc1ee820219efbf03c0b1fbc9cad038157b0fd10c58b14db18fc7dcdaf1472ba33d4a4d7e00d2ff7103a3d4cf02718cdb01ca0aab8165ed316f05fe2d3bf89405dcc5c28f65d96a0b13033a2b3e05d37023990c77d0738d3c2319cd117b23627aa5e40a0fcbffbb7694b303d6013a0a1f2ee0c23b2295c09baf71c7716766bf91a64810ec9b988c280210e3037bdabe1611d2c07fac19e4195c482c6c61af6623ada26ff19594ff185ef43f4103243bcacacc4ce2b50ae5e698845966950ebd5857bf48d180e574ec1e21d6eae30388cd74b9704146557094cead7dc9b2662985b12f34e8211f3054c1e1db2b162903846a4d4a3213c30b7a2007e59bacbaa694857d3b649e970bc97044f38c02800b03ec92e31789a7869c721d5d72a69d899c088fc3a74cbb121795f84042983500a70219ffff031afd64b651f144f8365d81c41fa3631e0d0dbaa56a1eb3ab2913be89ca0acb56033f11f8ea5ca75f5a2467fa425c55188a2944e938da36a0a2caa9dc32ab17b7da03ad420d5c533343d695efb0acc12674b2635bb4f0e0517c9a12471bc04908a00503fd891886feb083da7a574267b9b14ccce99321a9461b5cebcc64b16e89c3f8fb00581f020d87f69af0c50c8fce2df4ed5dbad3879d3e04adab4d2c7e68e303977b6b43a4e0c300581f02ed5fec23c891819f2d95d9f12798e27e9cbd2ab064940c5b2afc970e44eb4402b85e6900581f02e1c68ef41007f2cddba7afc60a5c28765881ab034eaac3d03f28bc7698134401c9580500581f022d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e547a250d5630b4cf539739df2c5dacb4c659f2488d021920c800582003ea89be407000f8225af065823a99df115b5ab7614a9d969b12f0ea4b07db204101032406447685f323b4bd932b6e313de2699e7af451a1224135316dab2ecfcb61a403741c09402539f72cd6b73af964dc43b661288db842d7d5265544e4f0acdda23d00582003422461ede92c63d95dce4cd472d7291fa13fe19ee4adc196401c027e4e3d8041010396a1cd72b8447083efe37bc92c3f6d06705f8f1e7b606372fac86e974a6778a9005820039fdd719cdf79ca1dd45a6ae68cee428d657f10a68a4e7f1f843e3a2b877d20410100582003f03e4c433d8b9cf923162d9ffeb374ba1dd9a6d97040173737bd73872248e05820fffffffffffffffffffffffffffffffffffffffffffffffffffffffffd091eef0219cbaf03a98b3e89a257d4110d51b528516ca258652606da17028ae07f49548eff552a55030a7dd3dfe35d9e33cda9dd9b7ed1074a4d84cd65bdeaa945767da43ae1ec86e200582003927a3c21e30079dffc93405aae3bd869e5b4bf31f177a2b6f4685bd0e7a680440249919200581f02fd0268c220e471122e0b709eced02401bf14179deb17d9993d9634b89619410100581f027013b3d73893c6d666b45b19145599479ca45eb434d08bb7b3da622a06e241010219408000582003ba7c829d482aa8efb6254eac27a6e4423bc8d11af288469f9380cea0a828905820fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c78ff00582003bd628155c3a5f51c00a461c6ed8968f31f059040056bdc3861e0a27919e7105820fffffffffffffffffffffffffffffffffffffffffffffffffffffffffacfed2100582003927820aa3a183984f736e5c3b8b60a56ccb2f1616f406493a752b81827e4d04365bd42031c0ec9951cd1596e1cee3353a652081bc6c081a331c8758bde9df0bdf481c55e005820030b8cec051bd5cf34d6ae8c5af760f450e9c8d39fddf61e30a5c5f8b6b48f904101005820038d048bf00d18c248693405e4ab89756975b28a961de305c214c3857e81f6305820fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc62b20000582003103ca07ed37ecdc73786cf8eede2f2b9073461c4762bb043ed71413d132a5041010219c6df03ba59e511768c8ad8e991c4ce0404a83b02b28b77e5098bb7ddf015f35e43117603e1b69b9f69c3f32ee6b0f9e199364a56918baeacf81da7051a5a7512243d7c33031afaa1c3907f7678ec9a1cd2263d9950a84695c90dfaeea4fd0ca71c75acfe4903d7f94e0aed54e2a85cdc0e941814055c5b0f8bdda9ed6c95ac7d1ce6bfcb62b5039198484090d545ce51158183172bcd31b30d1aa951ccb3d801beadd6630cabbe03551877212fdff29859be4920d2348b0341c44fc8df4518580a700fcf51dae6b203cb40f6fd7bbe29270a1d68a1df295c09c4ed19011b6b19c38db0aaa80600e19503792a8bdabff44cf33df008046072fb556985ee8c6fbf3ba66d0524ff05a700d80318c79ae78cdbd3ea39564034445e68b0f3223253ca842936fbaf4660517090e303880e4ebc46b5c2795f444eb907a35894e18057a6f32c6545d41b59a73c13d73f035baf5f2028ed9e87a9c2a1d44f09c7b340ca124d465f5acb2d7681b10d351fe5037f75a9301a953818058eee3c811bf9ec24b6673701ff5118db153706642de3c303ce771e5b61c0c71e477d1e0b4894e34193b9f35d835c8ab51f80a4a06bc3f4550219ffff034cc2257ef9dbc7015e60236a67f7eaf08c70aa2a0ffa49a5ec0f183b3984d12c0398e34e02e7250608c2be069e6360b89561a18d7068ad3aa3e4e8aeaf4475221e03025db0fc90a57c023047687d3a4dc380a4cd28ccb9c03ab4d0e3bd7c00cfd5990336295a7064e5b326968883c14be4afd59f527c31291de81e4955fb05dd8832d5032f44f779bd0d93e4a22e1846798c983860b50d170b562becab2559c06dd5bf75037097c47324c67ad73f2d88b27e8b70b61cd3b08ec629320a0134dedb0711d57803e4067f7ad0fae323f1d33f898e93696733c4cff8a8d79fb93e9472b2011834fb03a9205475e9353a863e954b83473e5464cc16eee7abc7920a18e393ab6bcc5a9a0322622dd0591612d2a374398609721e541f38a93bdd71a0e03548266552b45d41039f07eb16c973807ab2c4f94fa313adcc1f5b41454aff75fad5ed024812287ecb0372e1a561291898ea91381df57bdb2230be5fa83c9e45d2335f9722aba9a8edd50306f6d87816399fa11d32db881c0dcf214583b806ce80463785310ec5f5cf3f3b03add64964b197f2819c46c71227ded4bebcefef5b1c3196032bea700012b91f2a0310b107e2ff9db76f0514a3b984c8a415a8a92cec1c883d565cf0b594c54bf6c90058200392541fd5ccb7c90e7f86202d20a52a16a14ee3ff189ac65b0da6eb528c3f104301f8f500582003266487652a59daa6b05b3ce051f48b6592c2e1e03005c542ef63067d7451e05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffff9839a49400582003552d8ca35dc92ba61d1c19e33a9134746b1aec8d71667f702c27f2c4d6a200410103067390e569db919e986ac7cc4bb0db064a42f64c8d520f37e76091047cd8d39000582003b1025434c49f095e7ce2183105150f93b8ea5dca58a975640176c90a042890410103a444e16edac942279795e274abd8e668f95cbc44be4937ddc61fad95b39b665400582003d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0450635750aa8032a48169293907fd5062c72e2b76385446b6458dbc94d13000ca11bc18bb2fcdd00582003be54693be04c821fe26977aa8b89fd7cb8d10d7c11bb1e9c855bc7c05028e05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc05727bd038542f230e534d2e13dd7093bb2e3a8e60c5e041c03966bcc55577b09ec769971005820031c55369d2b82935b96b4c19e987acae781871652335cf02a4a335b163b4b104101037a7dacb917da8ddae5e9db27741cfb2ff5bb0ba37a2f0ff9ac274f6942c37e9a00582003d195122bbe20498a7a2a890ba67ee33982956f13e7661c2a6e5c93075be200410100582003e6b5862a540938099d4ebd1f417e2125519c1f6e1ada09516a438bd8d82a10410100582003240336a22b9abfaa63330d662c30c90b62a67666e602df6beef6fcc7a9d90041010219fdff037caba7dd02b71bc5f6ee81a5f66314c632cc074e5fcfe2e929c818706507291a0219ffff035afe01e383c03aa3e0463ce279a2c5b8bb1c278aece0b5fd482406a02a989d5b03ccad698437cb595e5111cd8b4ed9dcb641c5912ed8a3feaf4666820f4883573e03fc3ea9111752c82df3c7ce44fe8a3b9e3401bc4a35b62f57b0eb9e01c9e4b3f803dd50a940a67c68b8d94260a90381846ed78b564d23a07d2c0b17b06e3295d164032999225620255c90fc7b34ce27ca0c93c65716a65417c46a722d910feece0ef500582003de324bcbc396d8f14ce43ac188ac515c9b346248a8b66e4e969a1e2035aee0410100582003a1fe15be1fd498ffd9a16bfde0468e0b6570676b45744a6c51179e47d7a3804101037ac0a642aa4ab5d804a5ec35c99995ae700baefb1cfd226df1e07f5f1eb3b47900582003bf678f768517cbf8661a3e7cdd4a59d8c7c052da3464779df834b97cf24e1041010395da8f80cdcb93d5297ee67b7776c6629848b28770e2f529f1e46d65e5f30b9e03950325280149a529567adc29b8104abf37cebbf331efbd15c2f5f3e430fa60cf03d751394ea0791e82072d2661b8caabfd742c704c00bffe36e4cdde52cef718ca0058200325e3709e34bbf07d401a10b303b998a46f20539ee3eb1265499bba515d64704403c6533d005820038d1b3fcc15ceb3830921a5b5dc884829f9888b61c0dfb707d7daa76d6140e0410100581f02af82b9ec27e04e2b2122756145d1df8faa6029eb7d47c40c957b6f86e5fc4402140fc300581f02028cc6288b0d085ddd5532c796e8728d83bd849f968a6c1a101fa75792315820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7f4686a00581f02f366aebb5a9cf509e8cbfce8c4dc31398750d7188cdf9d1e53be98e812425820fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7b6d89700581f024d953d6ce1d08162817b0f88df54631a06cb7aa78dd85d1053accb3dade8412400581f02a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3421adb0218a70219e0fe03c6b9235943a1014703eaedc4ce46d06e242fbbf67989a70f84edb0d7f4ef2fc903a153db5f7942b167b61a971b499e762957b07959f02c30180bb31e69f17156c5037182d200337fb6e54679a45e12bf0810cdc197a90e08997d437d1aa6b14933b0039e903b8806b3f9515a23ed2a207228624d60568a3d4a0948a6723fcbefa1e89b03c51004f75fc219762f93e0e6f62285babf6256938f46c893894162b76ea56419037249a86bc91d0d9842b583f408311eeafe7315f8a93054603ee58242c98beeca03bc09801869b036cfdef982a50a678613eb5f345a19dc2073392e5df0f75d282403372aaba231f05e4ed32189bfef86c254923807dc1f5be9ef65f769c903673c5203fc5ea505ba76aae105b0f31fc5c24b61d43bb2e2afae3dfea4a4126d362b34ec0311fd1d8064198c782b659f0cb48fb34c5ffd3b6516e8956c736051346065f98303a55f409a26d508dee4173cefb45327ddcfacaca47c13697c37938b5f5e304e63036cd376693e0ad0b400fb027ce5d738b3b577e58ffdbee118781350cebe128c110219ffff0219ffff05581d02798480738f3fde2c3665ead45081581aa7a560c180ba717b4fc19af207011934b60399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe90803a9a41d50d653b4feda15d570ac22cf5690df1a3c2b50c3c2b3823757be2fb1fc05581d02d1349b0c68a78a838c5af76e39293edd6dea218870594f676b29e51107011bffffffffffffffff02190c0005581e03cae86b31b207d240c7f57f27f160a7e52712a6533b9a1fb1d94769aa1004040383304935002b58734d6d59e3079e72a03e5c484ade967944b0ee6773da4907a20389a28d7c39efc10018d82e1f9ce32a69581e7131c95fcd83969363d44738d7dd03ffd92a53d4a99e279128dca44112aeb6b8a11fe4c18e56ab6e35619e6966171b0219e7e003f41e48a3ff1cf390596820580e8bd74e574dc7e7d38e4e555dbd76d609ac998103d8ea6d7f5ec95df428834be2a3aa85383920a6f54f3ce0afe249a9699f0a3924033029fc8b59cd366ab265cd94efa2449b9eb8a387202ef6541400bb123ce0303d0364286cb1cef90558e8ecbb3679fa9de8fa84624a6579b21f579c1eef8247c0cf03dc41835fbe7dbd3c3b739413eaf6f096a8fad6163bf6e12afb8982b56eafd53f0350d051a3b3c4705ae7761cd66ba5127bd118df2aa494a7d3d155821a1926803b031b6e352a84ccb81ecc4b94f86f80650c42a77fcdd36da3c0c02f4a3a7b9480d90301759f773a5dee9d5cb24c4d723190271e98caef6b1184a6d1a05fdc4a4899430219ffff0318a026608cbba43f0da752976f0ca6c7cf0db7c19ec6b695c64c0135b3498d000391a61948988ae3d2e32696a3c4a715eacf3cce1277ccc2fe43253ccee7d026d0036116ea91777dac8d0e16058e405c85740f4a5412c888671ce29edfaf2f9d07f303daed047a64a2c0538b1837b962d86a1ff02c3411f17f7777d822b253d24c5a0f034916b0712a4e21d5381159eb047ffdb917ec058eb94b8de7b326ec4d4c62e18a039c9f8c92caa5f0b533a5d8d9eadf0f0d41743eb407064a1ca719e45c1d8d8b12038b0cd6a22e31d05030547e6407eab49c3da3ee3272ccc4268f7d56fec3e39d6c03d3de9647bac698c0b48ac5c0291737f800ce17c523215ca0382e321e88f9ddf703475c0695a5691079b1d7259290fddb648743ef7a26a317d4c7e87a6b45860c620219ffff03509bbceedf2a57faa61d2d90a6a323c1254c11a5d3124a2262493d849c7cc78d03f73e123cdbaacbbefab62982b1b98c76103df5d72b83845cfe787f04df0095bd030d3d240e32f272572754c9da195512f8e010fc5925c93e3ab85e0cfc2564e75e0326e88bf79b8b825090714afddf94b3eb9b8398f80d76c5a130017dfe87af39de030ca4c4985156d002dce201f03fa93f937d7af9c4951ad503fccd989d7f9ef5e5033f47cecd7d0b0da73af2562d4da6721002059bd8562cce10c094cc0371ff8faa03f45b9fa4a36918098de799589c0715b5371ec3b0f16fddc8a2ff500e002880f2036bea796818d3a665e3cf390c7edb248e0f7c3320d70a89dc7617a85b8721392e035ad35113d0bcdc9c8031decd5cea97311bc12e5e2485918ef3ad9fe7e262327703dae81a6efb71a601458fa8e789db00bc0340c97c14c71f76003fdc1ea2d399ec03a1d581698f89bbf5a48b4156d3e409321188c84a9c28c18c297c46e559ff298c0375c6c40b8625e444aa878ad5cc3cd2a736aa9d6b279b85bb0a75c3909991f80d03740f4b69c2ee285264cd276539b0ddeaa1a29c5038faba6d0a5aad7fbaafcad403457ee0f8d14749c33084317506f31adbd79f0943520974562af14d8b91ec86a803a034da784009d88cfc441bbe6dec7d7551067e8ebf178ad4a10b22c99aa780180219ffff03e46ba06226903329ff57b1895cfda287f36cc1b40880eb3e0b23cae7d9ca9f3503b9077b42ab21a7225aa9ef1722191d35ed6bae4447b13920e1b7a9ee720c1591033aa7bab73d8ebf77993023225f0934924e9edeb53ab56b30689f154014e6ffdd0360a9dc4f74b69b2d4686e704b83dc95b729bece57318dbd309654d22d5a042460219ffff03f4cb1e6b5afa18d67ae9078e8cf66d8a6e7dbefb05fe5a82111b35b430c39b400348131363ef92466bf0d61af13d56a781eb898c36d734356baff98b39d366dedd0393f72939616104f32ebe31d1d955d6ec0163b71f435cc74efcd6d466e281549e0337303b13bfa04e84c7a8901d60aa95db4681e0f859b957866d86461e61a3f587039eead3bf220cad22ac65ca286a1ddd39bd7803109b60a02c950ff12c2eb806d103b1770ba2c94ac6718cfebe3e5b2a4467ff754d64aa58bc29ea0de4189eed8267030eab4d75648690fef4d38561976a72e0fdf6ba83d3bed1ea7aec316df34c060a03a17f37573b97d94c4a2ebb98c8a74f2271178ef6daa4f2878f041f59c2d8392f03462b0ddcd1b899b0f6e27d8ff29185f047f37184e8a0a339ee3b396502fa6360031040d0c310ac8eee528978e54fd56644ad224ed901ecbddb213bfee4238484980344f68dfda9a1ce4429e8cea6a11fcc2b8b04bc9c415e09ae9d9bf46b43c2a5f8035d6ee1123161eb7d0662278f90cf1f552bd4dd56cf9866fdecb382e41044a20e03f6979ab3cb3fc7b316f76403ec2e855e9930a0b396830bd0b3ce22fe638469bd0350e294bf1b7eb44502e488a05c99140ec94c0ec5b38fba7aadc4508737479c5d03b30982e2dcba3bb913d725e31a43c26108b7a2620fc7b8ac68a53e2d38993a14036573c1a814d352899377d14922080d71ba187d691972f18c2e4038c7389aec8c03b89305c673af53583997e071ac0693f99de0b09b7d3e0f1be5d5c48e5f9fdfca0332d04455cc9452dcaa9beee60846e44e495489f7b496963efc856067ed135e1a031b2773e7d135f77924dd78c67da9c27cced934f1054675e54fc6abbaef1ced9203152936b84c5d2126ff0a694fe97d11ad89f0a08a7cca99f0b9abc3a554435e51034cfc27ee93e6f61de94c099230d2eb65d2572ef9e127f2d6a7b4140e4bd96d1803f793123f023edc84192cd1004a0f320a2d84c566fa9ba65a0919157aa5fcc4e1034a1e56677d17454a47c125311835e7a2bf866906c7abe0c949018f81f2726b480379743a87ccf41f2a351a80076ef3ce6ae6177ab41c80b9f328cfdd9a4f31738305581e03d29b417eab31a3f592b85a3ade3ae4681942d104d5a775243c26a8b6d00c014705ae774e48bc1a05581e039c739562f3aeab7298f11806c438d2c5e401745fea3eec01bc1a9486d00c034701d3c9f317ee4605581e035ccf649dfa735626f043f599357e6aa5f08b6c108955523987ea7cdc4004181905581e034aa22558f1ab1b7bddb3cae7ce1b2850190e77e9e28fe5d4ee45c0a1800c0247015f48f9222fba05581e03312fb85744ebd3419109eea9009f1b020b60cf60b21ad6bc0cc324cc400c02443b9aca00033add8932ffbc360822a5bea114fc3d16417d71781cf3383827fc317706a7fda505581e03ff17590ddc0901664e0934325818499e985a94cac3eb838eb69c996ed00c014702c7258a37040005581e0354cca6f1aa561667584b48eeb1841ac28261303d9fd857b9dce9d5b7300c0346e680b3df53c003dcaf053b5167647ac14214f1692be3b92f7a429ed4954299b53f3404d876993c05581e03178bfbfbd2a75ced9185c16aaf694c12e8802b270b76f1503f389094200c0147118440e774190003007dcc1fa994e4871d3a0b18ec1dd09fe0f8489df92897cabbb6f94cfe7fdcbd02197dea03ba9d6b7c2250eac2f8ec5d783d325eed55697abc983e8a8b32b79c5cfe0bc637037666ef15a5c58edbfbb502105bb90ceeb1917793e7ef1c4bcb35d69532c440fe0375a97d684e6f19a3479f57e2296d319c34fc48143fb2fd2cd32dc4c139e9467b03f4d6ba29f1ef1cf25ef224b33e06415fecbf21cfd40a8243e385423f6f3416b903f40e817d35a8968d8fd61c6b377b6f2075fdad260cc5130faf9ece7a9c4819d3037bf5902a26d18adc593ba20c4298938d73077b0facca3d21d59a3df5975a686803d92af53c177663b8dcf0214e5077fd21b14829f071b1f3d14e284d4ab65fa5bf0366d773999d488d8149c81562284d02130a693311d0a38f984d2db3e6145a11ff03e60034c83383b94b20cd2c5fae63cfb204d750e88177481dd909d7b4cabb9dd0038e5745209f9f13fb5fdce5cbc6460af5b8822080da8b93db8ded850a984267260337a07ab4ebd874b6e14cdc81db27f0053896bd9b38b4b4052e64fd5a0594839f0219ffff039d4beba77d8fd87f00f3a95db47a5df494e21a95bb2b23fa72d4d50bb406609803c89c1eab49232c6b96e9aa695b409d0b12321c945d8f84337e0ba67d857c4a8303fbcde0d66b8ad0254e99e99cbc6b879a91f0ab14e98127e585c8eacfe91172420327a8ce7ecaaf35c59e0081b7c1cf61850ce31308c90e7fad14fd910b059da51a03a38a1f9014847641483b0c48aba931cb24bdc3f498c358836bf875f96f670c11032611830366bbb14bf22e38b42d99ae0d03f25fd1b089bab4aa10cc613854c2b4033b386bdc15a469883aeddba029831924ca2c2ecf3ea631ad345e58b47af8b1890369bf160ffdb096e1ac7b9b70c49daad34d7fbc92c408aa4a29dd2aa40c13480103636b20de1c4544659d2bfc8304f00d4a71c9a50a07a9a1e3ef5a1645b3ea5869034dccf6cf6447c9b968c549421e2636003f52f66140061c9a95164b8aaa3f95440366aaaf5ed26d5d9769f2fc36939cc4f43f78eb250d9a63a573d0670c00a175530219ffff0219ffff03af583730821ca4f604d08d78b94f336e6ea1962956e049838f9b577f8200e98d033b3d4fdd938766d3e1d15e6951a4b61f496ff33d0c243d2a9d2cfbc2f69c056403dac88cbbda201f1d00517c7252cffaca0a7f6a3621304072151188b7f6d13cc7030d75068185984f4c08121907229912001dd48066b35e55f20abb27b664760c9a03b9f1e8079d318c4068fde22d5abd13b1a01510804ecbd03ad6ebda6e453650a903361a38e9773c5640db93d92ede00982d987667b9de1e21312ed37f7daa327efa031010c006271a292260f7b061db41656b90f26da95aba8253ea40c7fff70ff35e036f6735b3ccbcfcd7283bb63f68f00b186fc067982ccbcc9cb63ce1b97a7c8ebe03a8e2b27ef776e41c5617d8f6439140c8deac15a13ec22e0a6a2f100f7c02437003a784a4dd85cfb919cd24587e0a584eaf7adb3ec744e73ed6f85984031b6186f203715d6fae5a58973543d9d07b62ed835cd965d6a998aa81ea9b3aa680ccae5303039f8a2de96936c594df1a124f0e90e1e2342cba00b5f7091c804aceba25bffd8d03466a4749f0cb912747c4d7bc403959cbdfd88d9c1c36f3e45936914ad94206a4033e67c08e8d777f0a711031fc2a3eeadc5b44e000166c4b457e14837def9c93940219ffff03fd4938bd831fe9f4613f75ab57a3562763d554fc35e87e74d88d85122fa2ab7f0344d27fea4f92dd9b10c06f097924229ee663c2123b13187c0a5e022a70d76c3c0374e8ae6035b59fec25a18e71ee0d031aaf5cb27ef947e50e8a7df49dea6eef1f03fdaad6dae013b24888936fb5f3d67a3eefcf6d27f56c6c5e9c364e7d4c3809b703e251d313c8f8ee24bbd095e26a45507bc2c643d3f558c1abb68c7becff9937fe03ba9e04f5e3dc1cb3f49d562bd884fa1bf162b777e4c8c874483c0fd6bccb08e1033cd86d9d9f460e4aba820ee6e019cf15d6e9a78d4ce5cb5fbb4968c331d05def03a7ab3b7651177acf19cad941aacc1c0a9e2396fec4447e3b03de619f712eb91003696e4ae8a3a6be850169d9cf3addc0f2940d7c2734d17aba54eaf13836ff3b6303938c47fe30ccc765a3bf76a26412907f7dbe6b936465e161d4a73c1820d96c83035a26bed33fe10ec8cbf6a275de447faf2f0029ea9aff484c126d8a19a9616e040301768a90f299a0fa89d913f7b085d7bb0b0e2e76667ab1128c65c2a192778818031313b6dfe2a6bd4278acac68a479e8eac58249811fb8ca30e785de377c38676a03e6b6f9a03ed4d55285bd8fb0f87f01063fb7767cd5a61219ab333e8c2611ea99036e97c70f3c1458401f83b43d29ddb3ed1850f667653859a9bd7ea4617e06c2ed03a372506a8b1033d77379965b9f2f6dfae2dc1215e5eeb2c69744fd12b8da195b030e218b187367d8dccf006b00ea5638f415088a95178cee8f47e693f034318e1c03c2e8cf826758186635b51cdad0c93ceb358f7cfd6400ef2ed7ed70ec122e64e20377760c761f601bd320b805fd884dae74e9f4b4e04889323aea1b4281e162ce8f0346d4887178c91ddaa2aebb2b9c69d39becc6c707ff18dd5a30c4285f675e783f03861f249c60e3e47999f9b4315955f7585b2c76d6d65b216127198edab2e44f6a03aad0cff3e8fcd6555275e1eb0a222ef141b3fa53ad49fce8d576e367a7a92e3e03fe3b0b1caac433cd76470faf2034c8c50fa59afbd9ab14b40bd085754f55da3703fff65195cfc2b87708fe7b5f4a123f8bb08aa99f534fca958382a843a460e98405581e037048d3a1d529edc229b1b48c67f13271bdfb0bbb14ff7dfdf6d70e10c00c1818473487071316c35c03da84e9a13ca6f4ab26a0eaf6751880f299ef7c8507c193e47f864b0a301cfab105581e03e1d585b6c863be06abbebea8333dafe3a98f8f98d4731721463b39f470040505581e030421d8ac1afd65bbabcc3e3acab01564fabeead3b742378de9dde742b00c074502069c959b05581e03a072f70ee94bb7bf73bbc35b089e1ac268e0d3036c8e1b3f3cc95635a00c0d4801415374d0d428d705581e038b9136f4d253c4a8deb971fed05519f9adc9fd20ca1aef28ccda4fb6a0040105581e03598b503f3ff8d43bcc5f5dfa740fc7801e94f9c7d714cce8dc87d48870040405581e032ef2fca566e805a9888a4c35e1681eeb01e75502aef31fc2f781f39370084804a67605e683ec0005581e03542ca84442fcb94edfee23b8953f4631d0ae3bdea74563a6cc83b299c00c18254679b7ef4d00280219aae503c35284483f01fdfe3a739bd7888b0352502357cf5716660e01dfa3980affba4903e13d89761e50595b8b7ec69e1cfb55365960c9419490266472f8009211a32091035c55e8223588d7aa593d82b4a4bd9f44a4cd37e70f0ccde533461f3a8e96780003f93f60d5e3c55237c27817e77d2d830718fac2ecfe8ca009de9d0266558a7926033f9c5ddc721c42403a1e32c5fde7b02035d15b0306c57a4a24d2b053880aec3503a205657fbbd188b1ce0ab38ff6178239ff51b9cd665843fbb4a0b5f75de7397f033eaeea73f793c286472b0c16e64035021bb1a4089321ff755a19b0cfda73900c0219ffff03eb1a55430a467c8119f03e85cc23e68bc3377fc1f3ecd5b2bc891c8a9a942eca03a2d1e3ecf678504ce653d4da102750451affaeb2d7e76100fcb538400905bf1e036d582726817adfe9061eadf7a0ba1b676dd02506f964fc7df7e9b583768af9e20319805e0342d2838d2d1998d3f9549b798a26e20982587fffac3a954342d260ec03278211dade9782a2941c343d3fea3208840a02ef603c85c2321f30a91709b2ad03717dc6b2516dd15bf1babe66fb79f8254b835f4351708724094d78813b534031030c8d61939dd3b602ac8579f7939b20b43696a33f133889a94396014b268d7686039b5d423e8fa151386f4804c5a35533be8b3b4cc6adb7d1593caf520b336961c60219ffff033e935d97eb01e416ad641e36355ec4aeedde9d93c8fef84fcf59477c962666d803963f1009e08934151b46716a1ea2a0ec7a626fa6738f490515f6c0c3bf17439d038883d0f1206f9a51b75d5a0f26cfe78511b9b463bc3934869d607569406b36d8030a491bc504f44a5d29eec833d451813183eab68538bd9730db820ca5fe64cb1e0376e3e4b4461da5df786aa064be9e2bb6dc6d4458491e20456b366e4ffb9c0d7303c810f88afb3b6919b9d02e762d95556b8638e32cec4c41656c7f6860f2b5d09603ceb2f90225577d182d435e6bef87e5e654aa3cbc32c1fcb8257f56c9a8d850520306fa2984e271af2c9e4b2680a1986a4213634a2b5ac1f347cb1ff972465115290320235587801aa7c4a53c1c11a5e45169990c159d046e37f94c4036ed63a2eb2703a4a6b08a424bbe693a75512bcd11b17e80939b2393339089c47c1bcbbd4a99790219ffff034a8dcb67a061dd9e37f92e012355424c1716d57f304a89b30ed430a4c32d05f9032b75ffa4abf54e4c2d1cfa5dc4836b1880e30de20816d348a7e0a4d54fcf1f7e03da4c6c43ca45eeed4066ffd5aef6d325642274bc980aaf577efc837851ae444b03931f27c222a531eeb7079a7b2df2ee727d2cae5d750c247714b5ca0eb3d219d4035aa3f244f5f68287bf0a09884176e09a9ff8e93f5f172589efa1520a20e14c7d033517e26eeee12ad263acadc7af28089fd5df48389814ccf4ca305e5236516606037f42812c5ba7ab1cc21bfb9baec947231ee89c5bf76432d005f4d913f9b0560c0316c4c52dd2135aea6bf70acb0fd3e6254d2fd9626ba5c8cdc79c42c54fdb95cf038775d9d8ceeb53cd6905dcfb35bec2e3e165261f4d8f0390e1e83b5ec8893c3803e50ba4290382c53e855dead472c3d46c5bae54f74c167755394bbe416dfc839a036096b40614b4b7d99810f87116104c7c5092726d4050a2c94500f852fd1ac1fd034f543e880243ec29de1331057868acf45f4a54a4a0d1c12e3c67b36b56594e1703a856a44960c8bfaab38c6c5bad24f9b26e2ad2903ba502aec7cae69a96f0cf2d032925ea05edbe8771d129808a4a2e256f0b52de4bba77bf73a74942ccee36b8a9036b3fffb69ad2a9032107a60c25fdf29c7d163789d9ee02e483f63cd63bfc51f40363805ca63e6b59db1564aa46fed42586405ab60f4175085e533e09586ca137830398269059f6f374c008670624bd907a6984c6b6b852b8a91b7f9fbefa7995a228038ba25fed5bda81f5f2ad3c577ad80017d8555e91e849387286081f7753ef5ab403be720011ecc5f735e110f66404c2d6b4ca7a64cfd005931abeeb26af9084a07d03eddadb4e371b6731563eadb619466cd33b04069e0396a4a07d73efd831209da8032262e0a9858808562693dbcb197168c3a9162b0e0471abf403444556b368d901037525393b21205319781aadbd14725966c1764175b01a52d80aecc7d11bc0b05b03e910c6ae842030e5ecf70520cb15619b7c4c2b97ebe63f1281bc1fad7f39b1b1031bcddbc024e52dc5ef0f1a363a9ae01d1a24784eac108f540a61c579d52c11590385d36e581e3344243af977b023fe0148a874498211d617b726afbb9f75f43c4c0323e0fd7f729b8469e620fa0be36a44c88de614a707430b3161295c452a17f358038065a87ce336d4d19678b791f3452ea615eed15c7401a9ad25bbd96793058423037e7886b95befdebfd6634c01202f827c4d0da95a369e8180bf1aa204cc36e8c503b6dd0093b29b7b243095af4b4e15172a77820f99eccb4bf474f663f1015bd9350366efd3e5ff0b3a1447c53a020c5aa5ed0b47c74fc4409d8aee6e65783466051e032436f35b77350242ffb81c7e735346fdeb1516e26105cfcd55b4f6e5cd88557f039868e26c178ff33227986175d1d4c0f6487be437cf787a7e57c2472acfce92ad03742685d648639e49f5f44e9b78fa1d8b0bc2087841ccc76f61d0fc248a46b9130385f155414a2f11b819e03a6868687e76a77a96cdba05b8b59ed104ce466d075c039d77e9cd558d6a83614b84c62e6a802e8fda99a6c36abfb25e31e69d2a18b22803353c4e62b5dc77f656236363185869de2ef52671acef1f9b0c2b2e08959a404603cf0e98a6365837651f3f9bf1a05aabfe73008dfd873e5f6651b91b3d1d2ce7f305581e03f2441c16f10367f4373314b931a73e1060d103e164f6d81bf4ccea98400c0147016a5ebab8d187037d01dd7265d17cb692f48274979792179c0240fb192c1329455b27b61d7fdeff05581e03fc762c746c60dd732d3957b94cfc0560bd5db0796da112cb9b5e9398c00401045904e260806040526004361015610018575b6100166103e4565b005b6000803560e01c63c4d66de81461002f575061000e565b346102245760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022457808060043561006c81610227565b73939c8d89ebc11fa45e576215e2353673ad0ba18a32148015610207575b80156101ea575b80156101cd575b6100a19061024a565b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000033ca97c0b4df29103dc8da00a967884f165afa9182156101c0575b8392610190575b506040517fc4d66de8000000000000000000000000000000000000000000000000000000006020820190815273ffffffffffffffffffffffffffffffffffffffff929092166024808301919091528152610171604482610305565b51915af461017d610378565b501561018857604051f35b3d81803e3d90fd5b6101b291925060203d81116101b9575b6101aa8183610305565b810190610353565b9038610116565b503d6101a0565b6101c861036b565b61010f565b5032733b52ad533687ce908ba0485ac177c5fb4297296214610098565b507386d26897267711ea4b173c8c124a0a73612001da3214610091565b5073e80a65eb7a3018deda407e621ef5fb5b416678ca321461008a565b80fd5b73ffffffffffffffffffffffffffffffffffffffff81160361024557565b600080fd5b1561025157565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f496e697469616c697a65206d757374206f726967696e6174652066726f6d206160448201527f6e20617070726f766564206465706c6f7965722e0000000000000000000000006064820152fd5b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761034657604052565b61034e6102d5565b604052565b90816020910312610245575161036881610227565b90565b506040513d6000823e3d90fd5b3d156103df573d9067ffffffffffffffff82116103d2575b604051916103c660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610305565b82523d6000602084013e565b6103da6102d5565b610390565b606090565b34156103ec57565b6000806040517f5c60da1b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000033ca97c0b4df29103dc8da00a967884f165afa90811561049f575b8291610481575b50368280378136915af43d6000803e1561047c573d6000f35b3d6000fd5b610499915060203d81116101b9576101aa8183610305565b83610463565b6104a761036b565b61045c56fea264697066735822122022a6f8a80a3410719e8504e9b42af008259446db5cdbc3acc5d20ff3f8f338a464736f6c634300080e00330058210365132811df6b5613a478768e4d5ad03017b82e3cedd0186af1591d76fa86f26041010317a8abb2140fd4e4944cdf602bb42761b470056cfee98dd351a689134f128c5c03d8c3b967eda809ede9fe64dcaec4fccbbcb324fe5119712665fc3de73ea50fa803cd98b98f15369101e25c0e5f79d935027fc35e741ffaa97d349c469e9958c79200582103837248e0d5eb6d1c01c6b42f270fc090737bd9fd429a29cd27edca6cc711e4104101005821030e47b333d7626992d184fcd9890a06b28e0b896e992b7a7c109fba5bed4ccb3041010058210312f0d875933edb45ddd5d99b911d3b874918a4b7daf1f5fae34760f125e29760410100582103854e0c6e49e987dc003583f739738978c4bce3fdb55077e8e1e46a83630cadc04101005821039fed33e3768aef5084d11cf1d80bf3d6d96235c28126db01d4c228d20d2e4290410103d2c231bd5226aaadcd40e82d1feec8b6a0ede16265f6ccac6be7b04de6ad7efa00582103fb1990a622d46b00df2890450fa956cf535bd5c24460b366e22f7061a45e31e04101005821036452f670a1d097007815124c4263188d0e90d7f9839f24eb322fa087464661b04101038d9f89bdedec2cd303e5551cb6239203f6a60d6b2a5dd5770d38e3807949a14902197dfd05581d0208d327b05b26db67ef36212ee6369dc15b01337dc96e997a65112d9d0f0149101ef851016e0864871904e205581d026f0d4b39e33e358d8ce482b5b0c269c1857e65f9393538acae8333a90c014713d2fafdd8c0000219400205581e035f2d4352b4e9ec55db31e8dbbf1a2651f5ad9167b879712207f5b3c690040205581e0381527657d52f2b7c4d0a9c519cc4f50746458968f96fcc767f5a244e20084755ef7c9a8ff69e05581e03b76393f2e56d31edba1e86bab7dfed7d4d296f48ac412acefb0b62d390040205581e038b706e85108bc9eeba22dba3fb0e4695757907ccacc38459ccb3a112700c0247046129f28ea82105581e03246a8570c160d71b1484dde0bac27a9b22ee83fc99fd7aa5ce608a5e100c014703242b81c93dd80219655e03707c957adfed1775cb753817fedeaaebd1a51a5e146aa4b14e6bceacf574b0900373ede44e064b263879fde54f56d39677ae73f9201748b6e6c2f6445a652826d60353e5e70f1c44d3de95fb6f3ab6df1de23780ee789fccc9bf914329496e32d83c0304d3eca5d7f09e78be68b7fd11262bc68ba27dd49eb46c6e95bec9ed005474820326bd00589dfff5f6801d3abdd8a81625c9b698f12ac77e655d493bc173a1a1340219ffff03b89d7c47c4fb542d93a088585ad3ec55e82869451d1545f00c75120e6c4556a90395ed01ac556d70907dddeb9da5dae5710ab73857a97d51f130ff8eadd4ca714f0219ffff037fe246268b253ab40ee665d0d398f9b370150a60218ccdf5b0437d9ca1747d6a0372cb52cf1672012798c87774fe2d82a4df4b7e380dcb743bcdec5575a387a20e03f840236eedc00f99803a7a762f3e7a09862aa835d7f65f4eca96623026d1d8e0037b4100c2db35d819fa6ce183050b252a4e3a816167eeee4240d951ea776356b3031d3d22b1b401e9d97ccfee8ff8e40a4707bdcafa6bc4f34fba140664cce6a248031011a9331da4b7446d79b9fc23ba0bd98498b84bc8198be706b625f5819adc29036f669b52670e65b8b4c32b91a9f192f857bfc4a96ac6a2f74652d230fb434fb70319ae54af93e7d95ea183cf1b5d3d1a2fd6ceb7f44a45611b52d09aaca9d7674a0219ffff03b14add80a7ef3169ece959d621f226ae3c3d64a9dc67d29f1e60c04172b64a0003d18f4a947ba7095ca7caff3bcf904090d0f9f8762df13af5bf83bc94a81c5d9d0321ef24472f89621e986906d085fc10ccf9b15ade70dd5d4cb4726ccc07bd02f90219ffff0344cce7308acc0805a1789e9dc192f876ac3c32c3becc83f3645fdd45475836fe0219ffff037905062f03f6c07a88dce35650f6ccb9e9d723952a8310bd01463e382c510ef903b40b32a9309c5cfd82f16beb5ab668c0f42174eec5d750404276e6978b2bc825038b8ed50cd97863cf17fe4d18e458fa0fc805e4c9cd3be084d137929d5e375eff030ae98e36017d175863bd6cf5e4f8f8f6aed4d1b06bca8e059c1e4c38740d083503ce633ffabb291ffc3245ca2f9b15b3e741074bea63f2fc4fba3eb6dcbafcee0f0365a24d8ad1ecc2084626abbbb44dd6904f48c97448b6b74e4e840bf04638aa6103a3b8c08d4311488b95494cb6bb9f29a17f30debb2b0a054e57720af51a28c799039b2c92bed82fd2ded52327442d5a2cb53786d66df9d8f5cdc4ed7f8b2c9d946703db16ec0e58e165b0d7a5f72bfe95a67aefe80f9d3e5396896fc51c6b7487209303a777dffd1e3978cb699123ad450f8d8f14c15c49509adb14d3a72e1e01f21988036401ee399ebbb281491ebd2db2502497b5aa4c46c6df66ccd6983c96805083a503f7e99d15a86fc73a0cd32c2b60442efa5a2dcd9af3d66358a391ec7770c7355b03ad9b5a7aeb72fd7ad2e72440f9be3ee5fa837dcca5dc8c2566ef0e1873971df1030e1ea8c69dbb6d17713e0b2aebcd9770a01343cc4d7ca85b8923cc01805b084c0345e6917025f6448869e708ef8d7b034363bdc892f17a2ab2ac55b9fe98cff73c0353868a07c9e9c1201139d057fc294c83ae0f1eecc7cc152f923e89045e98ed4b0391b07aaed843e6fd63e6be4445a1fd682ba5e15ff5d60240d7f2b35595e605df035b733a10d9d86be6ba65a306755bf1fd16941f9a73a618b2eff35ff441bc4bed03f137868c22cebd74466bc05e58b3014d29ec1c7736d3dc56295c31286d1e25690309dbc3d25082b0528be4345093e7ae19d4ac5b490d0499271a9e33bc6bffd1f403520c3920121b621e3e27ab1ba4a1ad1e0e763c0054c40b4b16cca876e2804c9a032aed1e4a313572b4f262fdd90671f5a3688f906ab534b26ccae58132970a5a1603ba643df7c664c826cf44317dbe613aec5f8fa98f7404ee27fa7321b11f1e565705581e03f4cad10e6546ca38a90cdcf0e20508bfa065f29b0f31302b1a4d41e4e00c0146098cb8c5280005581e0300c681f0d14899747f4c9cbe4d3819567dd8bad1abab90cfc4845b21a00c0147046e4ae1b1be0005581e035e8dd98276a843860f69358bb84a947a8bc9999fe1317ee3d056d6cf600c0247029c7a85e8f00005581e03cecb871c8f54db15a4ceb9efccb87145fbf19dab594bdfdd27678efae0040205581e0345ad9890d5542538e98513357e37eabbc1c359008fdcb72541a78c97900c064702d79b8aae4200031f8b67be329f6419c9282095843235301b6b3475e42bc9e3262b646aba8072060605581e03986699d8a094fd45624b9c040646df85f056c8e32eca560ce364b2528007011bffffffffffffffff05581e031d402591d4372277c43e30defb2ebd45c60683f4ffaf6e98c589fb8ab0040605581e0344034d54103b9d810a66fa9c14bd8e91e3fa7bfd6e5d01714f54c90470040205581d02155fb9bb4673e414ead6301fbb70cc325b7f1c5c3d5a9b406fe9f06e0c0b4703cda5e64c059d05581d02e6761e6b13064937d13a0fcb5833af30c96915965cbc7b2e437ae01d0c0946aad1e67d92a005581d02c40458670ea9af82f482725d75274f17aaa170da081ad4905b5eb0e90c1a000cf2e149059bc299220bf9856005581d02e3c3dfaaba9f61f81813cafb33650f04291322ce828c0968dda5b8d30c014701e97e9bd163070219288403cab2c6d6d20078f51e995c0e5a53f0f6e9c61c5d4cb1175d6d49155c974c650a02197b72030ebdbf34fa716bea94cc444dd18bfb00aff8f63a78f6156598e173a3120ab344039e81013b2f73daac0f4e6243249b8941f85c799ffb04d40517e1322129d4ff05035f3615f29507007c8909d43f7d03d5d6ba42e9e66ff0e333a3c60854f0f8dfe703d7bc9b32fbbf4c53d556edb7f0242d31108e6ce7ec115c03caeae58a030351b803da5f366d88389f012ddcf9c6fad4a8a9f6473dfc99e773085555d311cb68558603f35342f2b6e53a274a69fd5967c1270b119a7abf48899522c2f79e0d719352c60331ab5f8a8a4310f685a5391120d4eede50115f7a93082b02f3a8f7e043e3b134032fe6ce0def0adf13f429936d4d7137d6ee502483df5922f67701de64715370400353661171d618c921895cb7c2c9b56c207e64be33d7f9871daa385fa6edb5769d03998b9776b74e62da7a6c81b4652e5eeeddd90a115cd399b385d6835da64f88f403545d0a001917704197a2cd37dc9416d17c8672b68e9f7b953893f5d79b5d5f6603c49f888e52f810b591ced009b465c04e2f8abf4b583e22c51d3187e8259416c203f35997f1893e0f4e249e5c0515f8efd9d5174dadba897eabb20963d2254a991303f1104941dbfc47c82a97c37986ed9c3ddd98cb6c8af99f157a13ab89c81b5f4a0219ffff0384c3d2d0e15f96884767f266c8bd84d8d37339850275ab417136644e2227fcdc03d508c3c9aface1e35ac80b3b70e4deebc1786af10ec47dfb1c61d057232106770350305a2e86f9f305239e4c1288d0731f56062afb392ba3e9a146a3d70af895220365e31a420b3bf838a23ec3aaff93a972fc7fecd27c4cc6ae4c7d2384a3cadd970325bf0d783439f20e75a75cfc2d7148e2dccf1b96c1b8d1757d592de1fedd9e3503002c1093f1038c97a28515287160ce566ef8b6f6305d9686d12f38dcb0fc52b803c9247ca94875d000cf6667828e75d48f5aebe017d00ea3dc54199d4983823b600219ffff039510d8b6a8d216b0efe4bf675d53fd9651810cdbd9d435a366aee6826504598d0379c34a7b6c68995f4017a990694821178f3c98e3908a5d519189d72487a21085034764b2e7394959e586505122416b4c93920ae2a3d4ca720d85350f688276039903c75326f8e6918df313cefb3e3177c8a87e5a3c1943fe3f32049ded63905754090219ffff032977e96f97af217a256f264f21a1f44384a4be68dade8225ae63da81042cb8d603b31d0aa84d84faa8e129ac37aefa853c812c6ce88c5fd8a07027e525ab85198403aa067787f81fe204911ad4dc86667f4193057a0495f11f23781b574549c33d9d03c5cf7d5bd7fb4d9ec92f01ca0f71f4604b7e4b7f833762fca4fd30b0431e14660377ad98e4895242c237cde321222e16d7d7cc89ed48ee492ccebd56fd4ebc61560387230186a5122917410e0896a395b16793dda4fa74977ec53b03a9caa6baf3f50344fa65d70748dc02d0d438578a7a3fbe402dce1b6f85b1fe12dd97bc85c86df703657006a9046c99e2d0e5f7cb9cc3983ad2b56f1e15a42511f8dfd3856232d940037082d16729a71455f9302e8ac73c031198835d4e25c79dcfbe2614a094ecdbd903174c0b29687612efab7ac5a94355bdae2126628d2cc5f90f9ecea9af0e8a111703fde5f5193df31cf29720cd78a769acb101a97f3ac990db7d4bcd03a93176a9bf0343a996761198bcfb088debe99b53909f39c91dadefa3cf030213e3172c4dfa8f03f50c3d47e69dc91a3272de0d9055bfbd358c406c6009506113ce31f81d8690450343919d9243719a2dd0e5b103461d01097da3f00b833953e5e9c4438b5c5fc6f0032ba0e33f17e7ae9cc02b989f8ea05f47a45fbfd51cbcce79e341666be5f6509f037b874da051e99827490989480ec10ab51b6444450b0490b6cccfa4bfb10f647d03a394b774d0294502fc5781f24c11a5beb3adb77251b57968fef50fafa5d7fc9d0395d4fbbedbec09d2c9c2df5b92216554b3633140ea0d929e737b4c736f03aa3703bbfaa80f2a91a6332da99c814af2763fffe76a4ccdbcc01824cc3486c08b393a03fae65f3f832bbb6b065b2e3cbdbd6ff2b7ca3fd8a41ba81373d555ca0e53731703b5b11a3166d2beb0326b1cad94af2fd00ff3b10b67731f49064325667d85a68403a691eeb15268788e4a9f3a9fda6a3bd9f066c087e89016bd9699fe99a5f56c6703175a2700ba6aa7fcbb4301e0cdf5529f4bccab2bc95f524e475930c43c4af46d03b8ac39f1346f9103799927bcd35ac2cc51cab1b5783ecbc54e6cac528ae0397503dd9a979932162daa6f5c1c915b1477144a2120fcb427fdae0b4ba1d3ae08ec3d05581e0338bf0cf90be3f66002a88311c308c2d265c929eb96db2724e9ef16b6000c182c482cd5ed0bae1c4b8005581e038aeccd13c1cf1abf1df0134c5b3be88a3fb98a5728fb45a0011ee20090040203b02f2a77dfc8c338a0e0ffa091cb528052db8f47b182485a028d661a0fe14ff405581d027d2c0229f7b691c642714960db91eacad1c4eb7544cde21829bed2970c0147a85063cfa6fbf4045910dd608060405234801561001057600080fd5b50600436106101375760003560e01c806339509351116100b8578063a217fddf1161007c578063a217fddf14610261578063a457c2d714610269578063a9059cbb1461027c578063d53913931461028f578063d547741f14610297578063dd62ed3e146102aa57610137565b8063395093511461020d57806340c10f191461022057806370a082311461023357806391d148541461024657806395d89b411461025957610137565b8063248a9ca3116100ff578063248a9ca3146101b55780632f2ff15d146101c8578063313ce567146101dd578063355274ea146101f257806336568abe146101fa57610137565b806301ffc9a71461013c57806306fdde0314610165578063095ea7b31461017a57806318160ddd1461018d57806323b872dd146101a2575b600080fd5b61014f61014a366004610c4d565b6102bd565b60405161015c9190610c75565b60405180910390f35b61016d6102ea565b60405161015c9190610c89565b61014f610188366004610bea565b61037c565b610195610399565b60405161015c9190610c80565b61014f6101b0366004610baf565b61039f565b6101956101c3366004610c13565b61043f565b6101db6101d6366004610c2b565b610454565b005b6101e5610492565b60405161015c9190611019565b610195610497565b6101db610208366004610c2b565b6104bb565b61014f61021b366004610bea565b6104fd565b6101db61022e366004610bea565b61054c565b610195610241366004610b5c565b6105d8565b61014f610254366004610c2b565b6105f3565b61016d61061e565b61019561062d565b61014f610277366004610bea565b610632565b61014f61028a366004610bea565b6106ad565b6101956106c1565b6101db6102a5366004610c2b565b6106e5565b6101956102b8366004610b7d565b61070d565b60006001600160e01b03198216637965db0b60e01b14806102e257506102e282610738565b90505b919050565b6060600380546102f990611056565b80601f016020809104026020016040519081016040528092919081815260200182805461032590611056565b80156103725780601f1061034757610100808354040283529160200191610372565b820191906000526020600020905b81548152906001019060200180831161035557829003601f168201915b5050505050905090565b6000610390610389610751565b8484610755565b50600192915050565b60025490565b60006103ac848484610809565b6001600160a01b0384166000908152600160205260408120816103cd610751565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156104195760405162461bcd60e51b815260040161041090610e46565b60405180910390fd5b61043485610425610751565b61042f868561103f565b610755565b506001949350505050565b60009081526005602052604090206001015490565b6104686104608361043f565b610254610751565b6104845760405162461bcd60e51b815260040161041090610d1f565b61048e8282610931565b5050565b601290565b7f000000000000000000000000000000000000000006765c793fa10079d000000090565b6104c3610751565b6001600160a01b0316816001600160a01b0316146104f35760405162461bcd60e51b815260040161041090610f93565b61048e82826109b8565b600061039061050a610751565b848460016000610518610751565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461042f9190611027565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336040518060400160405280601681526020017521b0b63632b91034b9903737ba10309036b4b73a32b960511b8152506105a783836105f3565b81906105c65760405162461bcd60e51b81526004016104109190610c89565b506105d18585610a3d565b5050505050565b6001600160a01b031660009081526020819052604090205490565b60009182526005602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060600480546102f990611056565b600081565b60008060016000610641610751565b6001600160a01b039081168252602080830193909352604091820160009081209188168152925290205490508281101561068d5760405162461bcd60e51b815260040161041090610f4e565b6106a3610698610751565b8561042f868561103f565b5060019392505050565b60006103906106ba610751565b8484610809565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6106f16104608361043f565b6104f35760405162461bcd60e51b815260040161041090610df6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160e01b031981166301ffc9a760e01b14919050565b3390565b6001600160a01b03831661077b5760405162461bcd60e51b815260040161041090610f0a565b6001600160a01b0382166107a15760405162461bcd60e51b815260040161041090610d6e565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107fc908590610c80565b60405180910390a3505050565b6001600160a01b03831661082f5760405162461bcd60e51b815260040161041090610e8e565b6001600160a01b0382166108555760405162461bcd60e51b815260040161041090610cdc565b610860838383610a80565b6001600160a01b038316600090815260208190526040902054818110156108995760405162461bcd60e51b815260040161041090610db0565b6108a3828261103f565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906108d9908490611027565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109239190610c80565b60405180910390a350505050565b61093b82826105f3565b61048e5760008281526005602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610974610751565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6109c282826105f3565b1561048e5760008281526005602090815260408083206001600160a01b03851684529091529020805460ff191690556109f9610751565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b610a45610497565b81610a4e610399565b610a589190611027565b1115610a765760405162461bcd60e51b815260040161041090610ed3565b61048e8282610a85565b505050565b6001600160a01b038216610aab5760405162461bcd60e51b815260040161041090610fe2565b610ab760008383610a80565b8060026000828254610ac99190611027565b90915550506001600160a01b03821660009081526020819052604081208054839290610af6908490611027565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b39908590610c80565b60405180910390a35050565b80356001600160a01b03811681146102e557600080fd5b600060208284031215610b6d578081fd5b610b7682610b45565b9392505050565b60008060408385031215610b8f578081fd5b610b9883610b45565b9150610ba660208401610b45565b90509250929050565b600080600060608486031215610bc3578081fd5b610bcc84610b45565b9250610bda60208501610b45565b9150604084013590509250925092565b60008060408385031215610bfc578182fd5b610c0583610b45565b946020939093013593505050565b600060208284031215610c24578081fd5b5035919050565b60008060408385031215610c3d578182fd5b82359150610ba660208401610b45565b600060208284031215610c5e578081fd5b81356001600160e01b031981168114610b76578182fd5b901515815260200190565b90815260200190565b6000602080835283518082850152825b81811015610cb557858101830151858201604001528201610c99565b81811115610cc65783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526019908201527f45524332304361707065643a2063617020657863656564656400000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b60ff91909116815260200190565b6000821982111561103a5761103a611091565b500190565b60008282101561105157611051611091565b500390565b60028104600182168061106a57607f821691505b6020821081141561108b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220d1aee677c8c40e22964fd609de63af649f5deda742792e1944c8e22d6b21975164736f6c63430008000033030b526f04722d0592b4c58e85f4e7ad26b6def2a77b321ec49e7665c260413a8a034244c3a1c21837d914afdcab0f74118de6e5845957295417e951ac95ff03ff7e03d66ef589d0948bd9e36c783f1168f1a59e984c176a8232947a5afb2a81ca540a031f2682957d9d638511e2b12944adcc2b46213e4e3eec80cac362dd5b697bc0100350131045c7a5cfe5f1f99ff00798df8ee0c2d8deeab32458eeaa9e00614f8e4f035c2e96fc89074ad65d3df800cfa166db15b3b078b11813848d4382beb06cf822038872f2b40892dc7a932499e682c8e1fec1d105074febe55c5773ec9153f65ff8034bb6c0604291d1067c5ccfe9e62ea80d183756ab3d8398f37441c18c8dd397f2037e6cf9d0cbce78474ea6c81759596b87df1eb0d187a6c864890050da279a0d0e03ade0193bf7ca8eff7c94fa101fa55fbaa1a2c707eea64f0fb5e9c2d29587c55d03c7e51ebad49cc8b1e7d168aa2c07e7c63425f633fe273403268ecd2c8e62cc4e03ea557959ef84b317f1a538b705c599a42ad2e494324279ad9d5575502cdcafa50348387eb2b8d782f0bf06e087a9f71a3154d0f1f8ae3844e4a25f8f4a56c644df03bea5bfcbde0134857e2a8ac6da72de9d76b5518e5c721fa2c4ee373831b469c7033bba205fd242ee77ede4fea44f7d79b2870e5c89aa328bca822d0489214f9455032ee9a05fef1181f50b86b7e47d57ac81f5e45e9c3d2822efc579eaa64090d5f4035e86ead669ac54f424ceb043b954b86d022a97dfa3e6870a98c9bccd7491f3b100581f02f199d6f9c38c53fca05f26762b9160b8ae8b568614f390981cc6fae07f6548fde663bf698d7400039895fbc7f28428d1e21ed597aa4fd4b10ed23a605b2a8c7f577ca4a573b88f8900581f035863c564d9dabeec1273a780e6017ff0d8712845fa2715d697ca15fb6a7049f005daa67850b8826300581f036509a8e96c79f3cd1fdb8d18e46955a319a1ddaee81d56c838c92dc20b905820ffffffffffffffffffffffffffffffffffffffffffffffcb1cb48f7f7ded7fff00581f03efb5c466e9b080e8cf517c47ef6deefa9285ea3690ccb988a08ca3f35540493c184cd2670a2df6e502190424039b3d288cd68397b62228fb2fca1e60d4c1079592472c7aff1a7df78455f794b5033e5a5eac14d4082edc08dc91683b08a0aaa0283f76ddfca6113c93165f2d19b4034840e7b226fa2625564cc06386e3aa4a360686fa93ceb8f1c5a8ffac4fbce98d03f85ad2e9c7eddf3b5ec6712b3f9908bb62e5283d461d28d6c47ecccd0c3bce860350b834513827b17563ba35d721b902072f7f10586bc262ed182ace6b79ec8f51037b98079a39bdcea57e3c2a102e89a427d2e8d897cb0ec7b17a01e230e15793030345ea4a1c7383a6c6cfd306ae5ac5ae1e2bc514c67c15476934b9c922264b9001039aae4e3d2a3044f386565a4a280d2f2902f87e24d0d3fefb11187e40894a45060219ffba03abe41ea80f99072cbe6b330213e50a589f9d83d3647d2dec01b55b4f7d4e1122031be1bf636305bebbd54105ec330d2ec88ff726539fc9d809ba288d04796b307b0309c71d01cf5da220fabb3e792c1cd39f5d45575513f922ffbfe0aabffdb4041803e2cceb51bf605359611afb118262785009330c3bae168c1976e1529bcb859d3a0219ffff03639b2ff6d42ceef40088f97b4bee6a5a08f2462b0653073ba6e5b676929fddee03ec1b33c97f656cf07bcb948dd8909ecadc52d24d22026162313f4d792871b1c003656a4b87f5c56c3e5f1ceb84a55d42c6e2dbfaba0b7860423955bc2a7ae22b980358c0cb1395ec5dfb79af2c97833befb505475c0f7ba4d733c0f261a7372558b10399151b82b1a05279730cb31fd096f406e48fc4ec35a600fef873ee16f4e7345803f3c9613319935d5177968617ebac439addaba143875b1f81d33602d3bdb0e9e003162e56dd2e3c97b90d507350d2483e68d2256e9096a3b683edd76084b93199fe03ce1d4d8c61fe720c5f0173d6356a34e8e990dbdc26406e40bb925e7494939d1e03afc77b310c531e7b7f903acfcdd62d11ba180ccb1d7c7a8dc427f51eca65b7cf036359d9093cb24f30403d715b084d7731cda47974cd71478c61983a23949676dd037a40021f1a67831a666eb6a830face88ad3e6281d0ae83dec88a39f05920fcc703cdb827142f3d245261b9cb2a15feea259cf458026d9016b2a013437b4a0b9b410322a5d03d7783fa57967fb1002f9557cdbea3a8860db0ded0c3b4997b4da8558700581f02b298e083628d90b18edf83585dfa6c13b5e7224e58a957284b8fe3963c47490572b355eb94826800030f74a6919e987efdbe0a7c96b71a71197cb3e7e50098fe5df96bd54ba81cda5500581f02720022e501e9d371995fef7112a20c679d23c17f64866386d2db8d9d19f749199b6dc217ef14e55103d084c11e5de1ee13fc7ca1e63efbac31e12e73aedba9526dc579082169f8af6e00581f028e9c3b38a34c67fe4ca99f6c678376ecbc783b71a99e8998ff02570fe9b15820fffffffffffffffffffffffffffffffffffffffffffffe4e51b291d10b000ff7030f4a6f2b7d1394066a96d36c3e8d62ebcef3d7ad2d75358d9f1012cffa1865cc00581f02a5105795d537edf296105da4f34ff60d319878cb30eb56792d9d4564442c5820ffffffffffffffffffffffffffffffffffffffffffffffb0c26bd593d442ffff0318e88ae2df895a100cce568954eb649238a25734ef0ae53a40d3b7aed5a7311800581f026a1d02291a3b0511756051518a58821c6a175ac2e725f4daff83aa024da55820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03b515e4d0fa3cf82b61f03e2a14d9bce4b1dcaee8f8bf85286d5c12b74dd49e620381150780ca2908d58b914405b7bbcf58f11845fb487c37cfa91984b4157a30f103173a9592b89b81b086546a601705105f36c14a2c41ed3ae12a9719fdcf956f070219dffe031733a346306c11b512eca3ab1313302eb9ef35ab62b00d9b623a8b23eab24b100311a92ebf558ff0e15ed4cb01f8e115930a86e20774fb32983523636771e7913c03f231a90d3fb8c27cd95c60b19942006be21c4f8c15c5c4eb8da4d65a94f8d68003ebc89e810531b79d5100a9739678e33a68a2f92457bb9003f2d58449b365c7500340484fad7056e677ce0136fdf4826e65733836ded945b0edcb22dd139dcd4db1034f2049a5163a05d9e61e17b37c4fb8cc04b19b19f254e11227c62238d85e8c5a03cf03f7ac6c7065a7330f07500849da89ed94f5895b2958f9ac1336e03a95d54b0219ffff03e1b7ee099673cfe7cf9d61b4032eb873f343f25d8c596d99096c97a70509bafa033e085f7e915613d6a56482ce7e24cc15129a5f9b3e4da7bcf97c3e1d56809d37034cff3f93f04d2783597640ff1b441a3b99aacea439346003a705230a1b09eb4e03f08d010bfbbacac9cb7b47cbbd48797e0b5b6893e665764fd21edb08a7d9016903e4455201735e15f7e8aeb28067e98bcddda040806b69249bc754ed79a7b5a36d0358c147a78e9a3d89ffe80cfe922a2709477ffd9d5efa92f7ba9ffe36dae67452036cad2396b84b2ff2671d6fafcbcbdaa63b20d07d42db058b8d5f97112ecbe44a0219ffff030ce3e2d53a96a1b210a55405187600e9d6de17a2366ea7733d0e32dbcdacf1bc03261d2e1aa85a7e8e78394b7c02db9d47bb58d7b8723aba72bcf49182b6cf4da5038e1171ef893b35fe3bc51020a28b0884c59d36a641e4c9910cdc926ddd65b8fd03c016b6923f0c4da0a3d7dfb37234d2623ff5e36aa4633f7b7e31cf0abddcca9403cc259798eddb6225bfdd16074af6beec438de48141893a2580a923beb5e8b3650367b7e1f4bc6783b6374157ac8691f9e385e031401148fa425d77f293cf5f2d8b0342d792f91d30980b0cef9e5e9472adcb53d0cc35d283a56896238489bd578746031d9c6dc92563b0d42700a73078a1269a7addf527b883112bdd7b7076298dfcd80389fe2e5a6781f9b1e36b489913abab8fd0e7a8d1e15aa058f9bab70bb3207a2d035dc3a6bc3333ba399f71d6d72d42f09a2fed420f0db071e2ce7ab4ca7a4407e103fa396efd056c088c4d24b7d11af87c097446f1502c063e41e8bbd3ebe08b461c030a4dc7dbd54fd81ef45af447f8336facf40059392fc145e0154dfafcc593906a03649695f9856b5726300eeb019c0f4883ea64f58fcca80fe03f300251f702214b034a616fb6ee2dd1b040aece1bfe127b0975c2d2200ce17dfcfa4f66c970c196f3033bd06e96c57de8dc6a9e7cd60dc15fbaf7176362c7538eca3cbf708fe3a9d7e70219ffff05581d02a5b8fec96905cda88da042118ea97c0a96992f05453ee17831a3355907011910dd021902080312caab88c5f331540b2683c8071b66a8add3563a57a1c606bc6b39ac872ca0b205581e03b94a220b5d16be8adf52bef37a55dde4bf81998b625036f5a6085366b00c0446a5c2c823600005581e03d1aa00c1293893194cfdca181606cf6d456fdc5dcf996ebf27f46a17a00c0247108d5b248f041805581e03d0085ee7c380a6d786ad129e6342d933f55617400d760ae59fba6bedb00c0a47e6ad8dfd975c0005581e034b29a1ba2981a95669aa4f134e089b8ab8c1925d9e9fc8181be9f5b9f00c0146842e0db52b7805581e032e7e9e684d464fe4961c87c6913c9b5db90f4771896a45c52db950aa200c01470114c7057f7fff05581e0331836ad101ffdc42cc52028ff94a9237381f8685fff6751022cd7d5d400c0147628517c59d6d580219be2f039c777e0e515f996eb96a5d86d41bbe8ebe5b36b7cbf5195c142a7946901bfa64034dcd4b40564af03bee5f3120ab6925962f49d43519bfb0f5226ab73cc644a8ce035cce08bd1c852e2de75c41d4c602176135c581e0b0c6b86c08843d50e4cdec5903e7ede3d51cfd915920ad4f8b8b7c091579c8d752f55d9e91518858a3d7387798034123269d170444636b05786e26582a120351a3c94c7e661b40927f5f3f8f0bff03ee317ef0a5e8dea2ac3bdc90a9edb80cbf1f29df7bd78c9b3bb508720e64209803395c50f8431aca4d80197ff7661f9d34fcf124885180bc8e2362c2ddbbd4ebff03679d6572b98ee1a6b937f52439e552ac9d59d367ab013784482baadc74016ca5039489ff00028b2f4964229b78b67ed8a6810a3c0dae65e6475fd4428f75a0841b035491ac8b609a42e64ea973aabe640113b48bdeaaf2a2f97cd5dd5c7036cab412038d5b9e7a0912f761228acef7b20bc55d87b69cfa7be5bc23ed93ce0544dcee9e035ef490e71e3648176b2f343dba2dbb018dc55f61510deab1919abb4f9a5bd5b803f712078ba76d1bdd52b954d6e0f2d918d637873949c060160e868667846b17cc037312a67084c251bcd9f3d4f444782dd7d250334c887cd8c2674ee00ac30a95020219ffff03a3824f8e934d60ac8383a0a46059380da2d996fc300454bd2409aacc2167f6b8032a3c6488dd48f53c41974170ae4a36a894edba48f562c847cfff6828be23c6d803396f03422924cb3b771cfd59aae7dab5cd395d9a1dce17238f2a1fc8f31ab0a003f9074d2c40f729b915ecf7ca12f76b773c6f92690ec7f59884265cd441bf079a03030722c63f67c42758f4b5363ae40114627bbeb3c1ab963b8297b6c70d4824e6037320bf3d94562c17b90ca088d16bcfad7c5660b5b591f1a4a1b18fa5172d0d890219ffff03f834705caa68b6feacdff00ebb9c0d62ef6daaf30b620c410527650c6a4f742a036eac78017bd5ec22f8c71a8d9842f0c5ddea392c7d385c461c077371c3277a380390e9509282667b3485a024fb6af6baeae35cfa65efdc8e807675befed64cb3ec036fb60d8cfd018a90bf70cce8341c0d5d0e7491c508d6e67efde82f0230b70b02033aee2e54892bf2b599ab3a0ba834dca57c741e8cc3e4afc5049b636313388251030ff1037dc8e0cebea6e4c044cb68aaf901a6dbe309147ba6745b9855d4f89177038d1b595a4f10196ec2fa98dee2b99d948cb047434ba998070c94d2f5837fda7f03a226e791506598db8d4d8fbe1f268253ce3a227d9bbf8de409538fcd558226f70219ffff03da3c9b22aa15aa1e088a5bd541fd1307811e31733459a03f7d1d165efee6cf3f03cc0e51949e02eb77d8ad897a16d6e479a9eb5ff2132fa4e9760abae3b3e35f6a031fbb347524d41fe7b91a942a8c598078f5f71ffdc9694aa59a2f6b5e21e730d9036b661e2ff45f275cc219355f504c9cd53b368ff100dc580a5980df5eaa80837c03455e6aedb421fd4f7b05a3cb588a7393fda70c1b2fe940c0eacbc4ff7b9847070383ba4ac63d24badcf207fcec8de2653188d9e255aa7289ff4d849affac2f437303c483cdbe8b07b959f4a5e89ca81253c2bb715491aaf3a21e75e398631fd747b40320788c5183fe1ccdd33111c92e28b6b864afcc96f9fa93d5522546788f9d3d9d03942f8825b197eab7df2a8f997d09f032eebec2414057ec6d858a8ed4d3a9bdad03709485591bf1c39338d98b7aa9a4392f3d2268cf53de5ac81eff58002b25c9a0032bc4b97e48c1196baf202e8097450ffcd4c06fd4b4c67a4604f5d9d5e1eac5ee0323a959c02d59fa5d20747c3ad9d1f73e46f190b30921dc339235c0caf5aa323d0321840b80660846f9bae4a8704c0a77a8d3014255689fca1f2c4aa2b7cad154bb031dd717cda42b5f6e9abec697c5e14347d5f7186ed93b2ebcb15ae4ebf4e5f7fb035ee55b7379e8f11ee544925e484f70a4df9f3bfa6c3e07ab8af67f2258b7ee3f03f3438103744b3b0b3518239cd67e8af2a730387028f93c947505f614cfd6f1ac0320158be1d596b4388e6ac1129c7e5edb1e463c942bf2dfada4df095955b3d96c031c54ef511740968d82fe1e16d74ad78810539cec75945766081834723eac0c2d034e4d6386db9305e22d1fd6e61715d96f18c36ee5543b93aad6f953938d2699a103e133e4122d206c65d6abdda4e97abcaf405e2090ada3e8b39677105d21854176035754b02f5d7f75748516fc66668812df253ebff04a2bf0c9ac4118393508ffb1038b0107421023d41c29e5dd9078bafd43c20a13cc91e1d23887fe3b4318956d5a03e7f9c41a173d3da93a9354b1c4b25f46f413595822f01a59c72a9183066ce98a03d65206602f0b2b7f23c1394d89f63de3753176032acfd6d8d3853fed5c407e2503db23db1ac035b67fe6f28cdeafb4cd592d12d14d4a0bb188717d6fa45f288347037ad9360980d623af0ce884abe01b5701afcd8a0f284b370fadb657917e0e886b03d0b57656a7561153fa9934902dc3b9dfb280e6b672511882f3f1d2d22342083605581e0320bf1dbfa9cd2df0f6e3063407cd1c57a0c39be6e475e3060639df06800c01470c99b70146a60005581e03988d4a06a3c23010c8c4d7526ab32b19a875742e76a7bd8e0bdd462b800c0247018d292f182e00039dadd84b70b6cef28e4ded452540ba1792ca4c605f45c4a38c83b1d9e71131710605581e033b58c7f28620208f7cc5208643f097dc8df8ae0dfd7998297cae39b3d007011bffffffffffffffff05581e03bd4de42d75a7d998a7c6b8c6a406e0810d8d40f036bb3532a3d9c401e0040105581d02ec0a4ea1f8d3d24bfbfc5f335253349709841b58574e2f2dd4788a420401045942ff6080604052600436106101a15760003560e01c806376e04bbc116100e1578063c5ae0fe61161008a578063e30c397811610064578063e30c397814610487578063e8bd0564146104b4578063f2fde38b146104d4578063fc1ebe3e146104f457600080fd5b8063c5ae0fe61461043f578063c5e04e3014610454578063cda5f3241461046757600080fd5b8063ad6607ff116100bb578063ad6607ff146103df578063bd6d15ca146103ff578063c18fa2451461041f57600080fd5b806376e04bbc1461035e5780637cccba6d1461037e5780638da5cb5b146103b257600080fd5b806333619a2d1161014e5780634bd751a8116101285780634bd751a8146102b357806354de26d9146102e75780636c225efe146103155780637200b8291461034957600080fd5b806333619a2d1461026b5780633c580fed146102735780634b06e05f1461029357600080fd5b80631a0b79bf1161017f5780631a0b79bf146101cb57806323452b9c1461022957806326a931351461023e57600080fd5b806304c5aa34146101a65780631223354c146101bb578063161be542146101c3575b600080fd5b6101b96101b4366004613aa9565b610514565b005b6101b961062f565b6101b9610800565b3480156101d757600080fd5b506101ff7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561023557600080fd5b506101b9610b56565b34801561024a57600080fd5b5061025e610259366004613b23565b610c20565b6040516102209190613c0a565b6101b9610f0a565b34801561027f57600080fd5b506101b961028e366004613c62565b611121565b34801561029f57600080fd5b506101b96102ae366004613cce565b61120f565b3480156102bf57600080fd5b506101ff7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102f357600080fd5b50610307610302366004613d64565b611365565b604051610220929190613dd6565b34801561032157600080fd5b506101ff7f000000000000000000000000000000000000000000000000000000000000000081565b34801561035557600080fd5b506101b9611655565b34801561036a57600080fd5b506101b9610379366004613f2c565b61173b565b34801561038a57600080fd5b506101ff7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103be57600080fd5b506000546101ff9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156103eb57600080fd5b5061025e6103fa366004613fc4565b611871565b34801561040b57600080fd5b5061030761041a366004613d64565b611d49565b34801561042b57600080fd5b5061030761043a366004613d64565b6120b3565b34801561044b57600080fd5b506101b96123c3565b6101b9610462366004613b23565b61279c565b34801561047357600080fd5b5061025e610482366004613ff6565b6128d5565b34801561049357600080fd5b506001546101ff9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104c057600080fd5b5061025e6104cf366004613cce565b612baa565b3480156104e057600080fd5b506101b96104ef366004614045565b612f41565b34801561050057600080fd5b5061030761050f366004613d64565b61309f565b6040517feea0d7b20000000000000000000000000000000000000000000000000000000081526004810187905273ffffffffffffffffffffffffffffffffffffffff8881166024830152346044830181905260648301889052608483018790524260a484015260c4830186905260e483018590529083169163eea0d7b29190610104016000604051808303818588803b1580156105b057600080fd5b505af11580156105c4573d6000803e3d6000fd5b50506040517fffffffffffffffff0000000000000000000000000000000000000000000000008c1681527fad635460888489be07731050101b47548c6a3831f2dc51f2b3545696d0b8afd79350602001915061061d9050565b60405180910390a15050505050505050565b61063e606c6058366000614062565b6106479161408c565b60601c63deace8f53461065f60246020366000614062565b610668916140d4565b60e01c61067a6020600c366000614062565b6106839161408c565b60601c3461069660346024366000614062565b61069f9161411a565b60801c6106af4262093a8061418f565b6106be60486034366000614062565b6106c79161408c565b60601c6106d960586048366000614062565b6106e29161411a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b168152600481019790975273ffffffffffffffffffffffffffffffffffffffff958616602488015260448701949094526064860192909252608485015290911660a483015260801c60c482015260e4016000604051808303818588803b15801561077457600080fd5b505af1158015610788573d6000803e3d6000fd5b507fad635460888489be07731050101b47548c6a3831f2dc51f2b3545696d0b8afd793506107c19250600c915060049050366000614062565b6107ca916141a8565b6040517fffffffffffffffff000000000000000000000000000000000000000000000000909116815260200160405180910390a1565b6000610810602460203684614062565b610819916140d4565b60e01c9050600061082e604460343684614062565b6108379161411a565b60801c6fffffffffffffffffffffffffffffffff16905060008260011490507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108be57600080fd5b505af11580156108d2573d6000803e3d6000fd5b50506040517f91695586000000000000000000000000000000000000000000000000000000008152600060048201819052600160248301523460448301526064820187905242608483015293507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1692506391695586915060a4016020604051808303816000875af1158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a591906141ee565b905073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663a6bd1b33856109f36020600c366000614062565b6109fc9161408c565b60601c84610a0f60346024366000614062565b610a189161411a565b60801c87610a265788610a29565b60005b88610a4057610a3b4262093a8061418f565b610a43565b60005b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b168152600481019690965273ffffffffffffffffffffffffffffffffffffffff909416602486015260448501929092526064840152608483015260a482015260c401600060405180830381600087803b158015610ac857600080fd5b505af1158015610adc573d6000803e3d6000fd5b507fad635460888489be07731050101b47548c6a3831f2dc51f2b3545696d0b8afd79250610b139150600c90506004366000614062565b610b1c916141a8565b6040517fffffffffffffffff000000000000000000000000000000000000000000000000909116815260200160405180910390a150505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ba7576040517fbe24598300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015473ffffffffffffffffffffffffffffffffffffffff16610bf6576040517f75cdea1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b606063ffffffff861115610cbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f64657374696e6174696f6e436861696e49642076616c7565207061737365642060448201527f746f6f2062696720746f2066697420696e2075696e743332000000000000000060648201526084015b60405180910390fd5b6fffffffffffffffffffffffffffffffff851115610d5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f64657374696e6174696f6e416d6f756e744f75744d696e2076616c756520706160448201527f7373656420746f6f2062696720746f2066697420696e2075696e7431323800006064820152608401610cb2565b6fffffffffffffffffffffffffffffffff831115610dfb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f72656c617965724665652076616c75652070617373656420746f6f206269672060448201527f746f2066697420696e2075696e743132380000000000000000000000000000006064820152608401610cb2565b50604080517f1223354c0000000000000000000000000000000000000000000000000000000060208201527fffffffffffffffff000000000000000000000000000000000000000000000000989098166024890152606096871b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116602c8a015260e09690961b7fffffffff000000000000000000000000000000000000000000000000000000001688820152608094851b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000090811660448a015293871b861660548901529190931b9091166068860152921b1660788301528051606c818403018152608c909201905290565b6000610f1a604860383684614062565b610f239161411a565b60801c9050610f51333083610f3d60386024366000614062565b610f469161408c565b60601c92919061338a565b610f606090607c366000614062565b610f699161408c565b60601c63deace8f5610f8060246020366000614062565b610f89916140d4565b60e01c610f9b6020600c366000614062565b610fa49161408c565b60601c84610fb760586048366000614062565b610fc09161411a565b60801c610fd04262093a8061418f565b610fdf606c6058366000614062565b610fe89161408c565b60601c610ffa607c606c366000614062565b6110039161411a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e08a901b168152600481019790975273ffffffffffffffffffffffffffffffffffffffff958616602488015260448701949094526064860192909252608485015290911660a483015260801c60c482015260e401600060405180830381600087803b15801561109657600080fd5b505af11580156110aa573d6000803e3d6000fd5b507fad635460888489be07731050101b47548c6a3831f2dc51f2b3545696d0b8afd792506110e19150600c90506004366000614062565b6110ea916141a8565b6040517fffffffffffffffff000000000000000000000000000000000000000000000000909116815260200160405180910390a150565b60005473ffffffffffffffffffffffffffffffffffffffff163314611172576040517fbe24598300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260005b81811015611207576111f584848381811061119357611193614207565b90506020020160208101906111a89190614045565b8787848181106111ba576111ba614207565b90506020020160208101906111cf9190614045565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613450565b806111ff81614236565b915050611176565b505050505050565b61123173ffffffffffffffffffffffffffffffffffffffff871633308861338a565b73ffffffffffffffffffffffffffffffffffffffff811663deace8f5888a888861125e4262093a8061418f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b168152600481019590955273ffffffffffffffffffffffffffffffffffffffff9384166024860152604485019290925260648401526084830152861660a482015260c4810185905260e401600060405180830381600087803b1580156112ec57600080fd5b505af1158015611300573d6000803e3d6000fd5b50506040517fffffffffffffffff0000000000000000000000000000000000000000000000008c1681527fad635460888489be07731050101b47548c6a3831f2dc51f2b3545696d0b8afd79250602001905060405180910390a1505050505050505050565b604080516101408101825260008082526060602083018190529282018390529181018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101919091526114326040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b606c8310156114c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f646174612070617373656420696e206973206e6f742074686520636f7272656360448201527f74206c656e6774680000000000000000000000000000000000000000000000006064820152608401610cb2565b604080516101408101825260008082526060602083018190529282018390529181018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101919091526115906040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b61159e600c60048789614062565b6115a7916141a8565b7fffffffffffffffff0000000000000000000000000000000000000000000000001682526115d96020600c8789614062565b6115e29161408c565b60601c60a08301526115f8602460208789614062565b611601916140d4565b60e090811c90830152611618603460248789614062565b6116219161411a565b60801c6060820152611637606c60588789614062565b6116409161408c565b60601c60a082015290925090505b9250929050565b60015473ffffffffffffffffffffffffffffffffffffffff163381146116a7576040517f1853971c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179055600180549091169055565b61175d73ffffffffffffffffffffffffffffffffffffffff881633308961338a565b6040517feea0d7b20000000000000000000000000000000000000000000000000000000081526004810189905273ffffffffffffffffffffffffffffffffffffffff8a811660248301526044820188905260648201879052608482018690524260a483015260c4820185905260e4820184905282169063eea0d7b29061010401600060405180830381600087803b1580156117f757600080fd5b505af115801561180b573d6000803e3d6000fd5b50506040517fffffffffffffffff0000000000000000000000000000000000000000000000008d1681527fad635460888489be07731050101b47548c6a3831f2dc51f2b3545696d0b8afd79250602001905060405180910390a150505050505050505050565b606063ffffffff891115611907576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f64657374696e6174696f6e436861696e49642076616c7565207061737365642060448201527f746f6f2062696720746f2066697420696e2075696e74333200000000000000006064820152608401610cb2565b6fffffffffffffffffffffffffffffffff8711156119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f616d6f756e742076616c75652070617373656420746f6f2062696720746f206660448201527f697420696e2075696e74313238000000000000000000000000000000000000006064820152608401610cb2565b6fffffffffffffffffffffffffffffffff861115611a47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f626f6e6465724665652076616c75652070617373656420746f6f20626967207460448201527f6f2066697420696e2075696e74313238000000000000000000000000000000006064820152608401610cb2565b6fffffffffffffffffffffffffffffffff851115611ae7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f616d6f756e744f75744d696e2076616c75652070617373656420746f6f20626960448201527f6720746f2066697420696e2075696e74313238000000000000000000000000006064820152608401610cb2565b6fffffffffffffffffffffffffffffffff841115611b87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f64657374696e6174696f6e416d6f756e744f75744d696e2076616c756520706160448201527f7373656420746f6f2062696720746f2066697420696e2075696e7431323800006064820152608401610cb2565b63ffffffff831115611c1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f64657374696e6174696f6e446561646c696e652076616c75652070617373656460448201527f20746f6f2062696720746f2066697420696e2075696e743332000000000000006064820152608401610cb2565b50604080517fc5ae0fe60000000000000000000000000000000000000000000000000000000060208201527fffffffffffffffff0000000000000000000000000000000000000000000000009b909b1660248c01527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060609a8b1b8116602c8d01527fffffffff0000000000000000000000000000000000000000000000000000000060e09a8b1b81168d840152988b1b811660448d01527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608098891b811660588e015296881b871660688d015294871b861660788c01529290951b90931660888901529190941b909216609886015290921b16609c8301528051808303609001815260b0909201905290565b604080516101408101825260008082526060602083018190529282018390529181018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810191909152611e166040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b6090831015611ea7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f646174612070617373656420696e206973206e6f742074686520636f7272656360448201527f74206c656e6774680000000000000000000000000000000000000000000000006064820152608401610cb2565b604080516101408101825260008082526060602083018190529282018390529181018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810191909152611f746040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b611f82600c60048789614062565b611f8b916141a8565b7fffffffffffffffff000000000000000000000000000000000000000000000000168252611fbd6020600c8789614062565b611fc69161408c565b60601c60a0830152611fdc602460208789614062565b611fe5916140d4565b60e090811c90830152611ffc603860248789614062565b6120059161408c565b60601c608083015261201b604860388789614062565b6120249161411a565b60801c60c083015261203a605860488789614062565b6120439161411a565b60801c8152612056606860588789614062565b61205f9161411a565b60801c6020820152612075607860688789614062565b61207e9161411a565b60801c6060820152612094607c60788789614062565b61209d916140d4565b60e01c60808201526116376090607c8789614062565b604080516101408101825260008082526060602083018190529282018390529181018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101919091526121806040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b6090831015612211576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f646174612070617373656420696e206973206e6f742074686520636f7272656360448201527f74206c656e6774680000000000000000000000000000000000000000000000006064820152608401610cb2565b604080516101408101825260008082526060602083018190529282018390529181018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101919091526122de6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b6122ec600c60048789614062565b6122f5916141a8565b7fffffffffffffffff0000000000000000000000000000000000000000000000001682526123276020600c8789614062565b6123309161408c565b60601c60a0830152612346602460208789614062565b61234f916140d4565b60e090811c90830152612366603860248789614062565b61236f9161408c565b60601c6080830152612385604860388789614062565b61238e9161411a565b60801c60c08301526123a4605860488789614062565b6123ad9161411a565b60801c60608201526116376090607c8789614062565b60006123d3602460203684614062565b6123dc916140d4565b60e01c905060006123f1604860383684614062565b6123fa9161411a565b60801c9050600061240f606860583684614062565b6124189161411a565b60801c90506001831460006124316090607c3684614062565b61243a9161408c565b60601c9050612454333086610f3d60386024366000614062565b60008173ffffffffffffffffffffffffffffffffffffffff16639cd016056040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c5919061426e565b6040517f916955860000000000000000000000000000000000000000000000000000000081526000600482015260016024820152604481018790526064810186905242608482015273ffffffffffffffffffffffffffffffffffffffff919091169063916955869060a4016020604051808303816000875af115801561254f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257391906141ee565b90508173ffffffffffffffffffffffffffffffffffffffff1663e78cea926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e4919061426e565b73ffffffffffffffffffffffffffffffffffffffff1663a6bd1b338761260f6020600c366000614062565b6126189161408c565b60601c8461262b60586048366000614062565b6126349161411a565b60801c8861265c5761264b60786068366000614062565b6126549161411a565b60801c61265f565b60005b8961268457612673607c6078366000614062565b61267c916140d4565b60e01c612687565b60005b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b168152600481019690965273ffffffffffffffffffffffffffffffffffffffff909416602486015260448501929092526064840152608483015260a482015260c401600060405180830381600087803b15801561270c57600080fd5b505af1158015612720573d6000803e3d6000fd5b507fad635460888489be07731050101b47548c6a3831f2dc51f2b3545696d0b8afd792506127579150600c90506004366000614062565b612760916141a8565b6040517fffffffffffffffff000000000000000000000000000000000000000000000000909116815260200160405180910390a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff811663deace8f534878982896127ca4262093a8061418f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b168152600481019590955273ffffffffffffffffffffffffffffffffffffffff9384166024860152604485019290925260648401526084830152871660a482015260c4810186905260e4016000604051808303818588803b15801561285757600080fd5b505af115801561286b573d6000803e3d6000fd5b50506040517fffffffffffffffff0000000000000000000000000000000000000000000000008b1681527fad635460888489be07731050101b47548c6a3831f2dc51f2b3545696d0b8afd7935060200191506128c49050565b60405180910390a150505050505050565b606063ffffffff84111561296b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f64657374696e6174696f6e436861696e49642076616c7565207061737365642060448201527f746f6f2062696720746f2066697420696e2075696e74333200000000000000006064820152608401610cb2565b6fffffffffffffffffffffffffffffffff831115612a0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f626f6e6465724665652076616c75652070617373656420746f6f20626967207460448201527f6f2066697420696e2075696e74313238000000000000000000000000000000006064820152608401610cb2565b6fffffffffffffffffffffffffffffffff821115612aab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f616d6f756e744f75744d696e2076616c75652070617373656420746f6f20626960448201527f6720746f2066697420696e2075696e74313238000000000000000000000000006064820152608401610cb2565b604080517f161be5420000000000000000000000000000000000000000000000000000000060208201527fffffffffffffffff000000000000000000000000000000000000000000000000881660248201527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606088901b16602c8201527fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16918101919091527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608085811b8216604484015284901b166054820152606401604051602081830303815290604052905095945050505050565b606063ffffffff881115612c40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f64657374696e6174696f6e436861696e49642076616c7565207061737365642060448201527f746f6f2062696720746f2066697420696e2075696e74333200000000000000006064820152608401610cb2565b6fffffffffffffffffffffffffffffffff861115612ce0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f616d6f756e742076616c75652070617373656420746f6f2062696720746f206660448201527f697420696e2075696e74313238000000000000000000000000000000000000006064820152608401610cb2565b6fffffffffffffffffffffffffffffffff851115612d80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f64657374696e6174696f6e416d6f756e744f75744d696e2076616c756520706160448201527f7373656420746f6f2062696720746f2066697420696e2075696e7431323800006064820152608401610cb2565b6fffffffffffffffffffffffffffffffff831115612e20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f72656c617965724665652076616c75652070617373656420746f6f206269672060448201527f746f2066697420696e2075696e743132380000000000000000000000000000006064820152608401610cb2565b50604080517f33619a2d0000000000000000000000000000000000000000000000000000000060208201527fffffffffffffffff0000000000000000000000000000000000000000000000009a909a1660248b0152606098891b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116602c8c015260e09890981b7fffffffff00000000000000000000000000000000000000000000000000000000168a82015295881b871660448a0152608094851b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000090811660588b015293851b841660688a015291871b8616607889015290921b16608c86015290921b16609c8301528051609081840301815260b0909201905290565b60005473ffffffffffffffffffffffffffffffffffffffff163314612f92576040517fbe24598300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116612fdf576040517f1beca37400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82160361302e576040517fbf1ea9fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b604080516101408101825260008082526060602083018190529282018390529181018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081019190915261316c6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b60448310156131fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f646174612070617373656420696e206973206e6f742074686520636f7272656360448201527f74206c656e6774680000000000000000000000000000000000000000000000006064820152608401610cb2565b604080516101408101825260008082526060602083018190529282018390529181018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101919091526132ca6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b6132d8600c60048789614062565b6132e1916141a8565b7fffffffffffffffff0000000000000000000000000000000000000000000000001682526133136020600c8789614062565b61331c9161408c565b60601c60a0830152613332602460208789614062565b61333b916140d4565b60e090811c90830152613352603460248789614062565b61335b9161411a565b60801c815261336e604460348789614062565b6133779161411a565b60801c6020820152909590945092505050565b60006040517f23b872dd0000000000000000000000000000000000000000000000000000000081528460048201528360248201528260448201526020600060648360008a5af13d15601f3d1160016000511416171691505080613449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152606401610cb2565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff831661347057505050565b73ffffffffffffffffffffffffffffffffffffffff82166134bd576040517f63ba9bff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015282919085169063dd62ed3e90604401602060405180830381865afa158015613532573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355691906141ee565b10156135935761356883836000613598565b61359383837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613598565b505050565b80158061363857506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015613612573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061363691906141ee565b155b6136c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610cb2565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b30000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526135939286929160009161378f91851690849061383c565b90508051600014806137b05750808060200190518101906137b0919061428b565b613593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610cb2565b606061384b8484600085613855565b90505b9392505050565b6060824710156138e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610cb2565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161391091906142ad565b60006040518083038185875af1925050503d806000811461394d576040519150601f19603f3d011682016040523d82523d6000602084013e613952565b606091505b509150915061396387838387613970565b925050505b949350505050565b60608315613a065782516000036139ff5773ffffffffffffffffffffffffffffffffffffffff85163b6139ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610cb2565b5081613968565b6139688383815115613a1b5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb29190613c0a565b80357fffffffffffffffff00000000000000000000000000000000000000000000000081168114613a7f57600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff81168114613aa657600080fd5b50565b600080600080600080600080610100898b031215613ac657600080fd5b613acf89613a4f565b97506020890135613adf81613a84565b965060408901359550606089013594506080890135935060a0890135925060c0890135915060e0890135613b1281613a84565b809150509295985092959890939650565b600080600080600080600060e0888a031215613b3e57600080fd5b613b4788613a4f565b96506020880135613b5781613a84565b955060408801359450606088013593506080880135613b7581613a84565b925060a0880135915060c0880135613b8c81613a84565b8091505092959891949750929550565b60005b83811015613bb7578181015183820152602001613b9f565b50506000910152565b60008151808452613bd8816020860160208601613b9c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061384e6020830184613bc0565b60008083601f840112613c2f57600080fd5b50813567ffffffffffffffff811115613c4757600080fd5b6020830191508360208260051b850101111561164e57600080fd5b60008060008060408587031215613c7857600080fd5b843567ffffffffffffffff80821115613c9057600080fd5b613c9c88838901613c1d565b90965094506020870135915080821115613cb557600080fd5b50613cc287828801613c1d565b95989497509550505050565b60008060008060008060008060006101208a8c031215613ced57600080fd5b613cf68a613a4f565b985060208a0135613d0681613a84565b975060408a0135965060608a0135613d1d81613a84565b955060808a0135945060a08a0135935060c08a0135613d3b81613a84565b925060e08a013591506101008a0135613d5381613a84565b809150509295985092959850929598565b60008060208385031215613d7757600080fd5b823567ffffffffffffffff80821115613d8f57600080fd5b818501915085601f830112613da357600080fd5b813581811115613db257600080fd5b866020828501011115613dc457600080fd5b60209290920196919550909350505050565b6000610140808352845181840152602085015181610160850152613dfe610280850182613bc0565b91505060408501517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec084830301610180850152613e3b8282613bc0565b9150506060850151613e666101a085018273ffffffffffffffffffffffffffffffffffffffff169052565b5060808581015173ffffffffffffffffffffffffffffffffffffffff9081166101c086015260a08088015182166101e087015260c08089015161020088015260e0808a0151610220890152610100808b015115156102408a0152610120808c015115156102608b01528a516020808c01919091528b01516040808c01919091528b01516060808c01919091528b01518a880152958a0151848a0152928901518416828901529088015190921682870152908601518186015285015190840152905061384e565b6000806000806000806000806000806101408b8d031215613f4c57600080fd5b613f558b613a4f565b995060208b0135613f6581613a84565b985060408b0135975060608b0135613f7c81613a84565b965060808b0135955060a08b0135945060c08b0135935060e08b013592506101008b013591506101208b0135613fb181613a84565b809150509295989b9194979a5092959850565b6000806000806000806000806000806101408b8d031215613fe457600080fd5b8a35995060208b0135613f6581613a84565b600080600080600060a0868803121561400e57600080fd5b61401786613a4f565b9450602086013561402781613a84565b94979496505050506040830135926060810135926080909101359150565b60006020828403121561405757600080fd5b813561384e81613a84565b6000808585111561407257600080fd5b8386111561407f57600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156140cc5780818660140360031b1b83161692505b505092915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156140cc5760049490940360031b84901b1690921692915050565b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000081358181169160108510156140cc5760109490940360031b84901b1690921692915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156141a2576141a2614160565b92915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156140cc5760089490940360031b84901b1690921692915050565b60006020828403121561420057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361426757614267614160565b5060010190565b60006020828403121561428057600080fd5b815161384e81613a84565b60006020828403121561429d57600080fd5b8151801515811461384e57600080fd5b600082516142bf818460208701613b9c565b919091019291505056fea264697066735822122089637cfe69860f8bf379a07a178fabdcc759ff28e08be269a1ed6e52ac52fd6764736f6c6343000811003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635411f11121df7256c40339393b0fb045321022ce4405581d03d2d2d5d28a6e8f60b7c5b51db18f88394277bf997c2f81561a90ef7007011942ff05581d032b476a1f7df4c2e6f00d78b8de1cce5480d75e617b31bf319a1b0d300c0142138802184405581d021f7fb12b92f820934a83be6b6ac01ed67ef95a4996fa827fe96a2a5b0c01470f5d2a169c20000219801405581e0325610d6bcbd92c844ebc33d8acb12cd2e300199fc70e2474a5b6c4aac00403034353666b08be99d917464092d954f6e955d2b5c52a3092e435a43d6383380e1e03d381707e21f3f51c601737d0bcd6846dedc7ef4d863e74091357d93dd67d11d003a25f0ccbe2c5ce3d80bbbbf4dcfc84fae4fab7cf563c31c6bea9803fb7303ca405581e03f925f3e176cf684b8d99c089d3471bdfdd883a10569b26d86a1d3dae400c014714b82c5054800002193bf80376de732f605ccfc65d1cba9a7f17f46cbeca6283985ba71697218fc9fec9e0cd03b650563f970529800f51678e1ac9050fb0197974ae2bc8bd35dc6da740b3a27f03ed17f7ac47fe93fbd6f79a1ab4d94745ba1e9014f7c8cc07fe66195e48a36eb90323b677102a99c4fe5a1f13dab115eca99be8ecab35f490916bc5c049bdb5b2df032ab7753ad5a39112d4dd704ab42e65d20e3fb806bf32875ed3de4dc3bc60a8c80378dffd0f8fd90d6687979d40a5a25519888dfbbb5ea418da455f19be814bfa1d03e6abbbddb34c61e91019c545584f1a4067c765c5053d60e8124fc3a55ee97608038378762296e89622518fd3a23acfa9aee11e3ad0aa2464534ab8b45e7b8a98cf0219ffff03cd88f7cb32ed5faa07aa09832f80ecfdb8eb03e9430445398564a51c3e1cef6e03e8b3dc295024207ba0b25b8413fa73e749dffe29cdfc2da52db5e330205857d203747eaa43da4cc876b81306a91037290e228c05fb053a789221b4015aa687a9d7031bd4b23bbe1d6801453041997a61bd26e57225bcaa88d37a1d2fff18282a7f6803f600825a05d8c59cf4d7a5b8dd9872687fd8e85ab761f239b98c093d45d3883c037cd040cb2934338bf09a022a9b5145f8d7055dea63c9daadd4cf66f6f048c24203edc3f6aa1ae86f69fc70decb5b3372f3c5b02b5156d0feb8a537b67abeee006a033e7d8328ad137dc5dfd8bb041bed0969f216530228816361b907007d3a58b891035dbb466057be2e079dd1d1208adf6198f06da154271805df5f7fb7512cd083030219ffff0398973607047b2e2db260f0779bcabfd652b7ac8d4bcee15bc9ecccd0f9d770ce03a73e09448c5a7734dd7d2c9bb9f84d68947dab6b3b706e9f44a74579062723a90219ffff031a11c6fb843ec761953c32843bba263ca27cd80a4e57e73e7c92b1947e54633803ef4c55eb1baf58c39eff44c40b6b9e55cb9d2abcb94c4df97440ebb46085b4f303c4262b867472e276ed5f07e55d641fdc38549405fabea5bcb222bc4448d281aa031a1e030b00f8fd1072a46c74539386c85979fef64c89d8a0d4a91d491210b6fa035f394630909ed1be7a95a76a8946b4b84416eb053335191563c133621bfec86f0338647200511d5c8de36ec104f4bb1c7b9eb9d1fe746a4ed36f72eaadb3f572b8037b0f0e76906b1b087143770ebbec6967f10f751d24b0270e38caab72a743c6d90324caccdb030a14a60006cffe48495e1e03d1c6565258720f394887ea9aa705160398374cbd2b6999c914b995ae926f478aa26e5c9c0826576686f07b545a0526fb03e405a243cd41058acd8b3f7f36447aa3f9b3d2bd7734f8395e1c3d4c0e9dabb4039fb3e3232c10fd1a6795970473c14c0dd11eab554d83f23f0331c1178c6b1447033df03d5f07184ff1ae4afbfb29307893895f0ade48639703ed7ad43ac0ab41b803076c846b855028095c3ed94b38f047466063b8d5a412c1548dc2ab735fe96c9603f3e153282d97e257cf973258960cac2063b65588783c36a50226ed3d5864e40903cb8f8c8b3281e1403cc800fe333e83dbddea03b740c599376217597e7083f4dc0345bad05053f340214514a122de7f41732b24d10b054dba9a8c6d20c72def074a03b7e81210306c68e0726803a3c81c30d138284f630c7fc06fa06c0b280a4122930364793082a425b7dba088f754bbac39ee7f8b56201db21c7b2e240c962a6ddf9b03d20e630a6ae3ea7da3be1c89ca9eaac4e7b3a0210710479649ade67ac6a120a804594b6e608060405234801561000f575f80fd5b506004361061020f575f3560e01c8063715018a611610123578063b88d4fde116100ab578063dd62ed3e1161007a578063dd62ed3e1461063a578063e0df5b6f1461066a578063e985e9c514610686578063f2fde38b146106b6578063f8328de8146106d25761020f565b8063b88d4fde146105c6578063b923b205146105e2578063c87b56dd146105ec578063d547cfb71461061c5761020f565b80639b19251a116100f25780639b19251a146104fc578063a22cb4651461052c578063a4193c4514610548578063a9059cbb14610566578063b8377644146105965761020f565b8063715018a61461049857806381456f48146104a25780638da5cb5b146104c057806395d89b41146104de5761020f565b80632f745c59116101a65780634f02c420116101755780634f02c420146103ce57806353d6fd59146103ec5780636352211e1461040857806366d7135e1461043857806370a08231146104685761020f565b80632f745c5914610348578063313ce5671461037857806342842e0e146103965780634d074865146103b25761020f565b8063095ea7b3116101e2578063095ea7b3146102ad57806318160ddd146102dd57806323b872dd146102fb5780632a55205a146103175761020f565b806301ffc9a71461021357806302fa7c471461024357806306fdde031461025f578063081812fc1461027d575b5f80fd5b61022d60048036038101906102289190613875565b610702565b60405161023a91906138ba565b60405180910390f35b61025d6004803603810190610258919061396e565b61077b565b005b6102676107ff565b6040516102749190613a36565b60405180910390f35b61029760048036038101906102929190613a89565b61088b565b6040516102a49190613ac3565b60405180910390f35b6102c760048036038101906102c29190613adc565b6108bb565b6040516102d491906138ba565b60405180910390f35b6102e5610ba4565b6040516102f29190613b29565b60405180910390f35b61031560048036038101906103109190613b42565b610bc8565b005b610331600480360381019061032c9190613b92565b611401565b60405161033f929190613bd0565b60405180910390f35b610362600480360381019061035d9190613adc565b6115dd565b60405161036f9190613b29565b60405180910390f35b6103806116a9565b60405161038d9190613c12565b60405180910390f35b6103b060048036038101906103ab9190613b42565b6116cd565b005b6103cc60048036038101906103c79190613a89565b6117fc565b005b6103d6611a83565b6040516103e39190613b29565b60405180910390f35b61040660048036038101906104019190613c55565b611a89565b005b610422600480360381019061041d9190613a89565b611ae9565b60405161042f9190613ac3565b60405180910390f35b610452600480360381019061044d9190613c93565b611b89565b60405161045f9190613b29565b60405180910390f35b610482600480360381019061047d9190613c93565b611cd8565b60405161048f9190613b29565b60405180910390f35b6104a0611ced565b005b6104aa611d00565b6040516104b79190613b29565b60405180910390f35b6104c8611d24565b6040516104d59190613ac3565b60405180910390f35b6104e6611d4b565b6040516104f39190613a36565b60405180910390f35b61051660048036038101906105119190613c93565b611dd7565b60405161052391906138ba565b60405180910390f35b61054660048036038101906105419190613c55565b611df4565b005b610550611eec565b60405161055d9190613b29565b60405180910390f35b610580600480360381019061057b9190613adc565b611ef8565b60405161058d91906138ba565b60405180910390f35b6105b060048036038101906105ab9190613c93565b611f0c565b6040516105bd9190613d75565b60405180910390f35b6105e060048036038101906105db9190613df6565b612025565b005b6105ea61215a565b005b61060660048036038101906106019190613a89565b6121f6565b6040516106139190613a36565b60405180910390f35b61062461222a565b6040516106319190613a36565b60405180910390f35b610654600480360381019061064f9190613e7a565b6122b6565b6040516106619190613b29565b60405180910390f35b610684600480360381019061067f9190613fe0565b6122d6565b005b6106a0600480360381019061069b9190613e7a565b6122f1565b6040516106ad91906138ba565b60405180910390f35b6106d060048036038101906106cb9190613c93565b61231b565b005b6106ec60048036038101906106e79190613c93565b61239f565b6040516106f99190613b29565b60405180910390f35b5f7f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061077457506107738261244c565b5b9050919050565b6107836124b5565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e890614071565b60405180910390fd5b6107fb828261253c565b5050565b6001805461080c906140bc565b80601f0160208091040260200160405190810160405280929190818152602001828054610838906140bc565b80156108835780601f1061085a57610100808354040283529160200191610883565b820191905f5260205f20905b81548152906001019060200180831161086657829003601f168201915b505050505081565b6008602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60035482111580156108cd57505f82115b15610ab7575f60045f8481526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156109c6575060095f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156109fd576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8360085f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610aa99190613b29565b60405180910390a350610b9a565b8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b919190613b29565b60405180910390a35b6001905092915050565b7f000000000000000000000000000000000000000000000015e6a0538429d0000081565b7f000000000000000000000000000000000000000000000000000000000000019481116112c25760045f8281526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610c86576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610d065750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15610d3d576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610dfb575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015610e63575060085f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610e9a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ea26126d7565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610eed9190614119565b92505081905550610efc6126d7565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254019250508190555060085f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558160045f8381526020019081526020015f205f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f60045f8481526020019081526020015f2090505f815f0160189054906101000a900463ffffffff1690505f83600185805490506110479190614119565b815481106110585761105761414c565b5b905f5260205f2090600891828204019190066004029054906101000a900463ffffffff16905080848363ffffffff16815481106110985761109761414c565b5b905f5260205f2090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff1602179055508160045f8363ffffffff1681526020019081526020015f205f0160186101000a81548163ffffffff021916908363ffffffff1602179055508380548061111257611111614179565b5b600190038181905f5260205f2090600891828204019190066004026101000a81549063ffffffff021916905590555f60055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090508080549050845f0160186101000a81548163ffffffff021916908363ffffffff1602179055508086908060018154018082558091505060019003905f5260205f2090600891828204019190066004029091909190916101000a81548163ffffffff021916908363ffffffff160217905550858773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e0314876112a36126d7565b6040516112b09190613b29565b60405180910390a350505050506113fc565b5f60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146113ee5781816113719190614119565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6113f984848461270a565b50505b505050565b5f805f600e5f8681526020019081526020015f206040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020015f820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505f73ffffffffffffffffffffffffffffffffffffffff16815f015173ffffffffffffffffffffffffffffffffffffffff160361158a57600d6040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020015f820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b5f611593612a4e565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff16866115bf91906141a6565b6115c99190614214565b9050815f0151819350935050509250929050565b5f6115e78361239f565b8210611628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161f9061428e565b60405180910390fd5b60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082815481106116775761167661414c565b5b905f5260205f2090600891828204019190066004029054906101000a900463ffffffff1663ffffffff16905092915050565b7f000000000000000000000000000000000000000000000000000000000000001281565b6116d8838383610bc8565b5f8273ffffffffffffffffffffffffffffffffffffffff163b141580156117c0575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b815260040161175e939291906142df565b6020604051808303815f875af115801561177a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061179e919061433b565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b156117f7576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff1661181c82611ae9565b73ffffffffffffffffffffffffffffffffffffffff1614611872576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611869906143b0565b60405180910390fd5b5f61187c33611b89565b90505f60045f8481526020019081526020015f2090505f60045f8481526020019081526020015f2090508360055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20825f0160189054906101000a900463ffffffff1663ffffffff168154811061190f5761190e61414c565b5b905f5260205f2090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff1602179055508260055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20835f0160189054906101000a900463ffffffff1663ffffffff16815481106119a9576119a861414c565b5b905f5260205f2090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff160217905550815f0160189054906101000a900463ffffffff16815f0160186101000a81548163ffffffff021916908363ffffffff160217905550600160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050611a5c9190614119565b825f0160186101000a81548163ffffffff021916908363ffffffff16021790555050505050565b60035481565b611a916124b5565b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60045f8381526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b84576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b5f8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054905011611c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0390614418565b60405180910390fd5b60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050611c969190614119565b81548110611ca757611ca661414c565b5b905f5260205f2090600891828204019190066004029054906101000a900463ffffffff1663ffffffff169050919050565b6006602052805f5260405f205f915090505481565b611cf56124b5565b611cfe5f612a57565b565b7f000000000000000000000000000000000000000000000000000000000000019481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60028054611d58906140bc565b80601f0160208091040260200160405190810160405280929190818152602001828054611d84906140bc565b8015611dcf5780601f10611da657610100808354040283529160200191611dcf565b820191905f5260205f20905b815481529060010190602001808311611db257829003601f168201915b505050505081565b600a602052805f5260405f205f915054906101000a900460ff1681565b8060095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ee091906138ba565b60405180910390a35050565b5f600b80549050905090565b5f611f0433848461270a565b905092915050565b60605f611f188361239f565b90505f8167ffffffffffffffff811115611f3557611f34613ebc565b5b604051908082528060200260200182016040528015611f635781602001602082028036833780820191505090505b5090505f60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f5b8381101561201957818181548110611fc357611fc261414c565b5b905f5260205f2090600891828204019190066004029054906101000a900463ffffffff1663ffffffff1683828151811061200057611fff61414c565b5b6020026020010181815250508080600101915050611fa8565b50819350505050919050565b612030858585610bc8565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1415801561211c575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b81526004016120ba959493929190614462565b6020604051808303815f875af11580156120d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120fa919061433b565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15612153576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b5f60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054036121f4576001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b565b6060600f61220383612b18565b6040516020016122149291906145a0565b6040516020818303038152906040529050919050565b600f8054612237906140bc565b80601f0160208091040260200160405190810160405280929190818152602001828054612263906140bc565b80156122ae5780601f10612285576101008083540402835291602001916122ae565b820191905f5260205f20905b81548152906001019060200180831161229157829003601f168201915b505050505081565b6007602052815f5260405f20602052805f5260405f205f91509150505481565b6122de6124b5565b80600f90816122ed919061475d565b5050565b6009602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b6123236124b5565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612393575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161238a9190613ac3565b60405180910390fd5b61239c81612a57565b50565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612443576123f66126d7565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461243e9190614214565b612445565b5f5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6124bd612be2565b73ffffffffffffffffffffffffffffffffffffffff166124db611d24565b73ffffffffffffffffffffffffffffffffffffffff161461253a576124fe612be2565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016125319190613ac3565b60405180910390fd5b565b5f612545612a4e565b6bffffffffffffffffffffffff16905080826bffffffffffffffffffffffff1611156125aa5781816040517f6f483d090000000000000000000000000000000000000000000000000000000081526004016125a192919061485c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361261a575f6040517fb6d9900a0000000000000000000000000000000000000000000000000000000081526004016126119190613ac3565b60405180910390fd5b60405180604001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001836bffffffffffffffffffffffff16815250600d5f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151815f0160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550905050505050565b5f7f0000000000000000000000000000000000000000000000000000000000000012600a61270591906149b2565b905090565b5f806127146126d7565b90505f60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508460065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546127e49190614119565b925050819055508460065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540192505081905550600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612908575f8360065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128cd9190614214565b84846128d99190614214565b6128e39190614119565b90505f5b81811015612905576128f889612be9565b80806001019150506128e7565b50505b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166129db575f83826129639190614214565b8460065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129ac9190614214565b6129b69190614119565b90505f5b818110156129d8576129cb8861312b565b80806001019150506129ba565b50505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148787604051612a389190613b29565b60405180910390a3600193505050509392505050565b5f612710905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60605f6001612b26846135e7565b0190505f8167ffffffffffffffff811115612b4457612b43613ebc565b5b6040519080825280601f01601f191660200182016040528015612b765781602001600182028036833780820191505090505b5090505f82602001820190505b600115612bd7578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612bcc57612bcb6141e7565b5b0494505f8503612b83575b819350505050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612c4e576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050612cd99190614119565b81548110612cea57612ce961414c565b5b905f5260205f2090600891828204019190066004029054906101000a900463ffffffff1663ffffffff16905060085f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555f60045f8381526020019081526020015f2090505f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f825f0160189054906101000a900463ffffffff1690505f8260018480549050612dc79190614119565b81548110612dd857612dd761414c565b5b905f5260205f2090600891828204019190066004029054906101000a900463ffffffff169050848163ffffffff1614612e8f5780838363ffffffff1681548110612e2557612e2461414c565b5b905f5260205f2090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff1602179055508160045f8363ffffffff1681526020019081526020015f205f0160186101000a81548163ffffffff021916908363ffffffff1602179055505b82805480612ea057612e9f614179565b5b600190038181905f5260205f2090600891828204019190066004026101000a81549063ffffffff021916905590555f600b6001600b80549050612ee39190614119565b81548110612ef457612ef361414c565b5b905f5260205f2090600891828204019190066004029054906101000a900463ffffffff1690505f855f0160149054906101000a900463ffffffff16905081600b8263ffffffff1681548110612f4c57612f4b61414c565b5b905f5260205f2090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff1602179055508060045f8463ffffffff1681526020019081526020015f205f0160146101000a81548163ffffffff021916908363ffffffff1602179055505f865f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f865f0160146101000a81548163ffffffff021916908363ffffffff1602179055505f865f0160186101000a81548163ffffffff021916908363ffffffff160217905550600c87908060018154018082558091505060019003905f5260205f2090600891828204019190066004029091909190916101000a81548163ffffffff021916908363ffffffff160217905550600b80548061309857613097614179565b5b600190038181905f5260205f2090600891828204019190066004026101000a81549063ffffffff02191690559055865f73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613190576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035f81548092919060010191905055505f60035490507f000000000000000000000000000000000000000000000000000000000000019481111561336a575f600c8054905011613216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161320d90614a6c565b60405180910390fd5b5f600c8054905060035443604051602001613232929190614aaa565b604051602081830303815290604052805190602001205f1c6132549190614ad5565b9050600c818154811061326a5761326961414c565b5b905f5260205f2090600891828204019190066004029054906101000a900463ffffffff1663ffffffff169150600c6001600c805490506132aa9190614119565b815481106132bb576132ba61414c565b5b905f5260205f2090600891828204019190066004029054906101000a900463ffffffff16600c82815481106132f3576132f261414c565b5b905f5260205f2090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff160217905550600c80548061333657613335614179565b5b600190038181905f5260205f2090600891828204019190066004026101000a81549063ffffffff0219169055905550613376565b61337381613738565b90505b5f73ffffffffffffffffffffffffffffffffffffffff1660045f8381526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461340d576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f60045f8481526020019081526020015f20905083815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508180549050815f0160186101000a81548163ffffffff021916908363ffffffff160217905550600b80549050815f0160146101000a81548163ffffffff021916908363ffffffff1602179055508183908060018154018082558091505060019003905f5260205f2090600891828204019190066004029091909190916101000a81548163ffffffff021916908363ffffffff160217905550600b83908060018154018082558091505060019003905f5260205f2090600891828204019190066004029091909190916101000a81548163ffffffff021916908363ffffffff160217905550828473ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613643577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381613639576136386141e7565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310613680576d04ee2d6d415b85acef81000000008381613676576136756141e7565b5b0492506020810190505b662386f26fc1000083106136af57662386f26fc1000083816136a5576136a46141e7565b5b0492506010810190505b6305f5e10083106136d8576305f5e10083816136ce576136cd6141e7565b5b0492506008810190505b61271083106136fd5761271083816136f3576136f26141e7565b5b0492506004810190505b606483106137205760648381613716576137156141e7565b5b0492506002810190505b600a831061372f576001810190505b80915050919050565b5f806011548343604051602001613750929190614aaa565b604051602081830303815290604052805190602001205f1c6137729190614ad5565b90505f60125f8381526020019081526020015f205490505f8103613794578190505b600160115f8282546137a69190614119565b925050819055505f60125f60115481526020019081526020015f2054146137e05760125f60115481526020019081526020015f20546137e4565b6011545b60125f8481526020019081526020015f20819055506001816138069190614b05565b92505050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61385481613820565b811461385e575f80fd5b50565b5f8135905061386f8161384b565b92915050565b5f6020828403121561388a57613889613818565b5b5f61389784828501613861565b91505092915050565b5f8115159050919050565b6138b4816138a0565b82525050565b5f6020820190506138cd5f8301846138ab565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6138fc826138d3565b9050919050565b61390c816138f2565b8114613916575f80fd5b50565b5f8135905061392781613903565b92915050565b5f6bffffffffffffffffffffffff82169050919050565b61394d8161392d565b8114613957575f80fd5b50565b5f8135905061396881613944565b92915050565b5f806040838503121561398457613983613818565b5b5f61399185828601613919565b92505060206139a28582860161395a565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156139e35780820151818401526020810190506139c8565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613a08826139ac565b613a1281856139b6565b9350613a228185602086016139c6565b613a2b816139ee565b840191505092915050565b5f6020820190508181035f830152613a4e81846139fe565b905092915050565b5f819050919050565b613a6881613a56565b8114613a72575f80fd5b50565b5f81359050613a8381613a5f565b92915050565b5f60208284031215613a9e57613a9d613818565b5b5f613aab84828501613a75565b91505092915050565b613abd816138f2565b82525050565b5f602082019050613ad65f830184613ab4565b92915050565b5f8060408385031215613af257613af1613818565b5b5f613aff85828601613919565b9250506020613b1085828601613a75565b9150509250929050565b613b2381613a56565b82525050565b5f602082019050613b3c5f830184613b1a565b92915050565b5f805f60608486031215613b5957613b58613818565b5b5f613b6686828701613919565b9350506020613b7786828701613919565b9250506040613b8886828701613a75565b9150509250925092565b5f8060408385031215613ba857613ba7613818565b5b5f613bb585828601613a75565b9250506020613bc685828601613a75565b9150509250929050565b5f604082019050613be35f830185613ab4565b613bf06020830184613b1a565b9392505050565b5f60ff82169050919050565b613c0c81613bf7565b82525050565b5f602082019050613c255f830184613c03565b92915050565b613c34816138a0565b8114613c3e575f80fd5b50565b5f81359050613c4f81613c2b565b92915050565b5f8060408385031215613c6b57613c6a613818565b5b5f613c7885828601613919565b9250506020613c8985828601613c41565b9150509250929050565b5f60208284031215613ca857613ca7613818565b5b5f613cb584828501613919565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613cf081613a56565b82525050565b5f613d018383613ce7565b60208301905092915050565b5f602082019050919050565b5f613d2382613cbe565b613d2d8185613cc8565b9350613d3883613cd8565b805f5b83811015613d68578151613d4f8882613cf6565b9750613d5a83613d0d565b925050600181019050613d3b565b5085935050505092915050565b5f6020820190508181035f830152613d8d8184613d19565b905092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613db657613db5613d95565b5b8235905067ffffffffffffffff811115613dd357613dd2613d99565b5b602083019150836001820283011115613def57613dee613d9d565b5b9250929050565b5f805f805f60808688031215613e0f57613e0e613818565b5b5f613e1c88828901613919565b9550506020613e2d88828901613919565b9450506040613e3e88828901613a75565b935050606086013567ffffffffffffffff811115613e5f57613e5e61381c565b5b613e6b88828901613da1565b92509250509295509295909350565b5f8060408385031215613e9057613e8f613818565b5b5f613e9d85828601613919565b9250506020613eae85828601613919565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613ef2826139ee565b810181811067ffffffffffffffff82111715613f1157613f10613ebc565b5b80604052505050565b5f613f2361380f565b9050613f2f8282613ee9565b919050565b5f67ffffffffffffffff821115613f4e57613f4d613ebc565b5b613f57826139ee565b9050602081019050919050565b828183375f83830152505050565b5f613f84613f7f84613f34565b613f1a565b905082815260208101848484011115613fa057613f9f613eb8565b5b613fab848285613f64565b509392505050565b5f82601f830112613fc757613fc6613d95565b5b8135613fd7848260208601613f72565b91505092915050565b5f60208284031215613ff557613ff4613818565b5b5f82013567ffffffffffffffff8111156140125761401161381c565b5b61401e84828501613fb3565b91505092915050565b7f4e6f7420746865207a65726f20616464726573730000000000000000000000005f82015250565b5f61405b6014836139b6565b915061406682614027565b602082019050919050565b5f6020820190508181035f8301526140888161404f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806140d357607f821691505b6020821081036140e6576140e561408f565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61412382613a56565b915061412e83613a56565b9250828203905081811115614146576141456140ec565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f6141b082613a56565b91506141bb83613a56565b92508282026141c981613a56565b915082820484148315176141e0576141df6140ec565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61421e82613a56565b915061422983613a56565b925082614239576142386141e7565b5b828204905092915050565b7f4f776e657220696e646578206f7574206f6620626f756e6473000000000000005f82015250565b5f6142786019836139b6565b915061428382614244565b602082019050919050565b5f6020820190508181035f8301526142a58161426c565b9050919050565b5f82825260208201905092915050565b50565b5f6142ca5f836142ac565b91506142d5826142bc565b5f82019050919050565b5f6080820190506142f25f830186613ab4565b6142ff6020830185613ab4565b61430c6040830184613b1a565b818103606083015261431d816142bf565b9050949350505050565b5f815190506143358161384b565b92915050565b5f602082840312156143505761434f613818565b5b5f61435d84828501614327565b91505092915050565b7f546f6b656e20646f65736e6f742062656c6f6e6720746f2073656e64657200005f82015250565b5f61439a601e836139b6565b91506143a582614366565b602082019050919050565b5f6020820190508181035f8301526143c78161438e565b9050919050565b7f4f776e657220686173206e6f20746f6b656e73000000000000000000000000005f82015250565b5f6144026013836139b6565b915061440d826143ce565b602082019050919050565b5f6020820190508181035f83015261442f816143f6565b9050919050565b5f61444183856142ac565b935061444e838584613f64565b614457836139ee565b840190509392505050565b5f6080820190506144755f830188613ab4565b6144826020830187613ab4565b61448f6040830186613b1a565b81810360608301526144a2818486614436565b90509695505050505050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f81546144d6816140bc565b6144e081866144ae565b9450600182165f81146144fa576001811461450f57614541565b60ff1983168652811515820286019350614541565b614518856144b8565b5f5b838110156145395781548189015260018201915060208101905061451a565b838801955050505b50505092915050565b5f614554826139ac565b61455e81856144ae565b935061456e8185602086016139c6565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000815250565b5f6145ab82856144ca565b91506145b7828461454a565b91506145c28261457a565b6005820191508190509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261461c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826145e1565b61462686836145e1565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61466161465c61465784613a56565b61463e565b613a56565b9050919050565b5f819050919050565b61467a83614647565b61468e61468682614668565b8484546145ed565b825550505050565b5f90565b6146a2614696565b6146ad818484614671565b505050565b5b818110156146d0576146c55f8261469a565b6001810190506146b3565b5050565b601f821115614715576146e6816144b8565b6146ef846145d2565b810160208510156146fe578190505b61471261470a856145d2565b8301826146b2565b50505b505050565b5f82821c905092915050565b5f6147355f198460080261471a565b1980831691505092915050565b5f61474d8383614726565b9150826002028217905092915050565b614766826139ac565b67ffffffffffffffff81111561477f5761477e613ebc565b5b61478982546140bc565b6147948282856146d4565b5f60209050601f8311600181146147c5575f84156147b3578287015190505b6147bd8582614742565b865550614824565b601f1984166147d3866144b8565b5f5b828110156147fa578489015182556001820191506020850194506020810190506147d5565b868310156148175784890151614813601f891682614726565b8355505b6001600288020188555050505b505050505050565b5f61484661484161483c8461392d565b61463e565b613a56565b9050919050565b6148568161482c565b82525050565b5f60408201905061486f5f83018561484d565b61487c6020830184613b1a565b9392505050565b5f8160011c9050919050565b5f808291508390505b60018511156148d8578086048111156148b4576148b36140ec565b5b60018516156148c35780820291505b80810290506148d185614883565b9450614898565b94509492505050565b5f826148f057600190506149ab565b816148fd575f90506149ab565b8160018114614913576002811461491d5761494c565b60019150506149ab565b60ff84111561492f5761492e6140ec565b5b8360020a915084821115614946576149456140ec565b5b506149ab565b5060208310610133831016604e8410600b84101617156149815782820a90508381111561497c5761497b6140ec565b5b6149ab565b61498e848484600161488f565b925090508184048111156149a5576149a46140ec565b5b81810290505b9392505050565b5f6149bc82613a56565b91506149c783613bf7565b92506149f47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846148e1565b905092915050565b7f5468657265206973206e6f20617661696c61626c6520494420666f72206d696e5f8201527f74696e6700000000000000000000000000000000000000000000000000000000602082015250565b5f614a566024836139b6565b9150614a61826149fc565b604082019050919050565b5f6020820190508181035f830152614a8381614a4a565b9050919050565b5f819050919050565b614aa4614a9f82613a56565b614a8a565b82525050565b5f614ab58285614a93565b602082019150614ac58284614a93565b6020820191508190509392505050565b5f614adf82613a56565b9150614aea83613a56565b925082614afa57614af96141e7565b5b828206905092915050565b5f614b0f82613a56565b9150614b1a83613a56565b9250828201905080821115614b3257614b316140ec565b5b9291505056fea2646970667358221220401c45800110ff4e16d77ca4ac6803e68a3bb3ed6cd7e789bb0ef0fb043e7be064736f6c6343000818003303cd0447786fc9ca5c7128ed55d64635c9c5f0bd5baaad73d25490ff1362e47e9a0302bc550854d526954b8b9b49dc9243e7e1930cdc4c2541b641a7a91ff23833be0378f5d71a9c1d1b7284422a9c8a087f0f95561f279bad32fa1b7aa65d49980e440380d29b5a2c449615454786e88582a7a4d75bc74444204f7d1d1e0b2a9ea961b603c5cd4c5c4b546f865da724688a0c2a79787b787e578cdf5c76e02979350e751300582002834d8053bae19f46a7188af9e85cd5b0b467241cc977f40a50e1d72a88b7785819090000000b9d40f8cd6c6faa93c397e5e7c8e6d1a4f7396ce103758636b1ac034e415197060403512f5c3f2608148f0a8bc3bcab6f57b5cdaa1700582002c96227db11050339477042597e9e382d1859b6f2ba03d77c3fed6aada8f68e545aaf989f25b193ebbdcf15a0bba010e1c42981d900582002200c6538e63b592d9a1c8cf2bac8bdd5fa61271d6ed2a34f3e6bf9fc449eaa42017e005820029f7493e5a421a5891c0c026f54c6ffd9f860275816a72b3a7ca26b58a913bc48078d54e1fb436435021948830394800db2dbf4a6ea836940f23b6c1ad9975c4684a2c18151e1b391258639e10f03c763d8306d1712781f54ea6f5c49445b8733917b4573df95a6e84409f9a3f34003905a216d017a8eea888477152bff3138087db39049f900a5a64c8f73a64e7dd503b4707aec9b186f265920d50c1c3304a78113bfe8dc84c5f71c323a0e7cda43f00370813147ee204c5101d61f630888e650f31e235932e59e8b80b87247208124a003d80c3319fbb1487011e0e621df963ecc4a33a4e77309d37fc3015bfd204c77ec00582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b411b00582002bef3e64c1b7ac7fbc001cc2c7cca69f31b11d72bf190b5d3e9b16eb278684c581901000000015aaf989f25b193ebbdcf15a0bba010e1c42981d9005820026289e3e16b98afe8d0eb0374b6c4e1c3ff8659c7710c95962fcde585df99ae480cd4def90210ceb000582002369ffbd1f80be43008dc05484e8942853612e3c2552bf6183320f397a3781842018703acd7eb69e45fc96a49e656c5e97ca4319069a21a105a0c5cf00dc83e90aa4de6005820029a00f5035d09f380947da901da995188d715cc5bfed7edffd6386df93c9da242018500582002f84a087de6865c732dbaa58e30446cabba6b7a4cf9df5063a2d5a38617376142018a00582002de03ef295d1f51220565be7832928eeebe7cb1765831f6104d687811db65a0410a00582002fda508b5d5eb711d87d47f95594da7dfba493263369b76a7a9c80dcd90e6cb4101005820025fb2250247fe1f06a4565ab962360fc52deb40847d7a390c042afcae5d3c5c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02193fcc039364862a310b67da3127ae5806f0243fa326c911469e267d9561296dabb5057d00582002785dc1fa4019f154951c43f486708792c8ae0ea866bf50c3d51aae8936337d581904000000069d40f8cd6c6faa93c397e5e7c8e6d1a4f7396ce100582002bbb7cdfd97b1f08b85c82f1a89d0739992d8d81e677cb40fa5a5ce4ba29fe048028d473ae83bfd5a0058200217ca2acd6b0f2efe4bb0fe1c4d6a88e2b1552c8e9801fe70bdd13cf4c4b1405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820023a0b972c470f18f842c35c712f9b9beaac1e8e838c1ba491d0d478900e81ca4101005820021146648b4b1aadbc54023636e927540cd5e6974606a5092382ecc80556a27442018d0058200215d79c96d3b82112e2fb6b80355c2503e4b00dc81cb1f6a2f006f8d6e4fa9a481a1a872894f969480219222703085daa1a5e72beead8c601855b0a9393568c06396337da9f1f25da3bdc6039060219ffff05581e03930c9c5b20964ec0cc8eb66137d606294f90a4a28bf1ef360bc32c36a00701194b6e05581e030c9a1042c158de99fd5fadd121028a89bc2610d037713176dc633decd00c01470229e1dcab100003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e030e6900e04a95f38740f3a50651a222106f24411508e93eebd72e1fd77007011bffffffffffffffff05581e03d694ce98c75cc2eec9d84b2f87afa572c1121bdc212da62795e83597c00401031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e038b0812a6c8315414dbccf77ecbf0451ff4e52de1766701645aebad1b1007011bffffffffffffffff05581e038d5c43a40b3bfad3cf363dac7b51d188044b276b6af2a358144bbed8b00c0147232773380d700005581e03811b7879106dfbeed73b6c48024e2ea1000a98d80ba1b9eee0197d6790040105581e035393048fbfa421e5c9e66a44d9365262ad498acbdc1714b208755ffd40040203562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03eff92c9c96edebe3a353c1fef94402466416a31132e5b0cbc547b73c0007011bffffffffffffffff0219f693031b65c49720a691db11ede8776d4cdd526773da34d94e659919800e99c52c6de10331c4129ccc1106835efe273185ebe9e92d379a4e4f8b73e085abd058f988497a0372d9d2a4349ad4ee876fdce673f50b1bcb2fafed0a74ee5cfe5d8577660f3f0403f93852a411b07aeac2f0e0305230f57c4daa3ef9bd598e97455b284a63f144b8034bc68768bac2f7172b063c062b9cad1fe2b82129012a050518ad45cff73575530328864a3095f01d8e4e1588a5bc94363e0a398cb5b6f26c7d40c3f2d6aefef20d0371a1ab3919cdb40e8004637a8c32c244a7bb0fa94abbf0792ca57dd3d94b11c9033082ca43683a3788d00084bdf6505fbb03a891adebd42d1567c1766e4b6b7c1103ceb2bb6898d4b2dcc6fb1e72cfdff28d1bf6b22122253f38e79d58e529688b0e031f7e5d9f930cd1090dedf8eea7303131413feb8259c3ea8993cc977060f71d260219ffff03aa58816fe1ecf2aad3d0d4b00c707ef8b8584335ff53e355bcb7ace421a579200303e8e457aca0fc7f944e382989b9e50354b4d113bb1e7fc37b144e41dce54a55034b81686fc6ffd2bb89928fddb0832f05743e3a18105809c4a1151a37dfd0c798031ee6f55857216674caede3a521d97eeb198e1e308cbd0c473f1fc8994c4fde6d033131b05297c58ab6e6fc489eff966cebad1e5e7961a9bb17cb1cee4b2498d3a70373811921cbb675ff669262312c0297730a8b933a9b82104e6c5676ee27966819035038aa17d177962cdef06f075e4c92c6fdcae879c2a3e38a0c804b7cd02c945a032e8b5f8d3499250785a208d0be40996597c5e98291aeedb1d2dcc9de3652f78503056743dbe92dfb1784c9459d244a75a271abc77318cbe03c066b9ae3764aa4940353701833f0b7c331d7eadae7cdb92fd20ab545da515bda561b790ea813078ced0219ffff03323fc176d2757695f2f5a83db8ffeb39d9575968a71b18c1100e40bed519c15e0391a39406f961fa441f4b224da4e5dae4f16917ee6cdb0a128c27e29a68d797680336852d4a490c4bdc60b089ac8a29943ed1aa08e1ea0d1bce8e6ddd9e8c1085e00301c0ee0ddc569aeac443bf8500857505db66193b05b6151553e976720f46ec1003cee8c4c9e0b7e0602ff1940ee9980dbccc9bc417e84cc031aa0dd37fb09234be037389f5bb6b8d3eba29a43e7cef825daca8bd4bdfa60b1a07cc1800f65054054f038b95f69c30e327842608947cb55c0fe7a9108423f2be39d599d5b2bbbea00a2b0219ffff0219ffff03d959e41059507ae3530371dc5b6ee38a39ed31925aaf487c01a28f763785234e037d4e327ad585daa0931220eea3c8a0875d8b59d0291d7c8f39dd367a4b5e56e7030a82c55b2c7057fccd824b1dd8ac4686daef1686a527bfe05128042715690e1203d5ac6d64f7d92db0e2313b665bf534c7dedad2991e487347d6441fe4410b0d0b0368ea2418f9eb98a6f62b10941df0db1216ed9ff28ca35a37b1baa8a8cebc83a703d9ab4356af6e5e3c41b3c0d5afbecf19787c71ab8d4da298fe3b34bca85672fd030674b04571084c566b05a50fdbdd5e50eb0354744e175be14207879389a59b8d03b002becb7fcdd6ef5368a6f038d200d0101032fad6d2e141801505cdea9a477703ef59b446e11e92e2ec6bb6f77a95e4432dc28048aa49968405664af41019c1dc0322d39d4e1dccde1348bd7d7b30627741ba306df77675fd3552dac8e67f53f5ee03252014e91d7a1682122384fe5673159fa6ab7832045798ec7cb458386f59eebb03454b9e93d6126d88bfe7416a75c8ff1babcb37cc045a4a553b5c82f8846f67b6035abedddc41ea29729d5e75303a29063ec30ad7b6c7fa4ebe76309d8bb1add4be033b235b40dea6c4f889c3334bbc4d29ef3f3921b26876fb60b761a0f8b5f8d1e303c9e78ed9f11ee36c5232353e1c42830f907e1ff9a463a18cece5998b7a59e3c903ddf95ea4704f721fb15bd994e2499a09ca657d9aada800c447c780688773cf7003e3588b322d6a23f3197801495101899204dfc804f65e903c383afedd9cc4434c033b6bb2ec860202e516502397eee41654c65cbe2674014788a4bd7e630519745303adca602016ff49935385167f500538fe07ec3931f8a18a9196891c9f673611d0037a77ceefac35bbbfc2a2a2c7e73b883b359f333b3e165aefb1144509de4bd1bd03c2764dbc8c150837310e0b0bf74f53f81a5b517432efd2b79fd29f31b7f6b3f803ee67e856bf0a1301d496781d46c8e957dc736118d8031d06f1d4cef890adb8f8033bb1c59e1706f2396fac4b37714f88ecc0ef9acb05bd5b59d5cf1d7452b7cfa303a1d6e12d62b9ec8e4e13265c4356abb1f57c7bacb906e8506a5ce280f6e892b603220481d8a3741f30bf2760c787e9fd0cdc9be381d39929c3a5fe5230815299dd03a8993e5af69bfefbe74c8e51bd89c67735e7c895e9e47c79f4288f2e8ab27b120363ba283bf1fb31f9fea95bf30eae99155e980da70ce268df3a314b82e2811db60318a98c412341ddf740b6d3bfb747216be1bba4387afda5c027e760db4ee015b503043985c443f23f5ab29025e38d92500e11bc48e897d6588c5fdb1a100e2a422a03188905ef70c52e2848251139892b5ff178a0d150b6332289949cb27ff7ff72dd03fbc3de4c51e17960ecbd964d55dc5985faa8d1b8f43c855b82d96b9d6aa08d7403ca73d68c4ad054d87be6da8505d8a50de51eb893342a53045634e7f4410f57d905581e0374ffbb24b251328a04648879a1c9072578bd791ca29b046d9b3c70865007011bffffffffffffffff03a1f2da85344c8237bc2505862b867f99c9ebe49a8ee994b6fc3b11740290cdcf05581e038248b694b3ef6dee1571db37af606b51b7b6339ab37613378e1cc7d180040205581e037e69b497169c6bac5f81d1de831314fb17b580ea69a2c022b443983350040205581d0222ea15d34d38c9b2419cc158c0aec3e0186e7bb514253091c6eeea6f0c190527480eee53defcad901405581d024ca71038c10194a6eae9ba02f3c9a746dea9e6269325f927cd3262df04020219404005581e03aa14b8d49ba7f8d960cc0fb523fd70d5b9f7f1be42e4a1a4ba37e954f00c05465baa6fffe04003bd94326b28205855e1afc0b2dca5aa06389d065c0c97eb7cebfc0d7200363cdf05581e0392b4879ff9df34b98eade809d9fbc9f2f654e4a492f62e2bac7c1259b00c0345eb644bbe0005581e037bcd28054f654d88b38a8498f3b1fea13533a6ad792bc8e63c74c481200c02422ee005581e038ce28cb193973f5ee11f732b30d6bfa69f67085ea2e9f799f69aa105500c0846844f7e67237705581e03f796559abf702a83fadf583de7330b4f2aaf7c5ab5e06c35b77330e9e00c03461fda2d3fea1805581e0332a2d206d9d5b208364f8dc30434c9566a92aa7d21a65b3e12c49a787004090219dfec03d86047b8208ec2c92b865dd587703c3254be68c6b5d6e321b99b96105c6b802603327cb4a6fa684a7477c5470ba9bba08359439161ea1edc62b4fbf1a00bb846bd032247359862297604c26fda3af4012822cf0b54eaa4b1945fa77259837761a1a0034635a2bc3676353672e03f8971c581e8802a48358c7cc2f964281f698275ca1603c76190d860005a4ba262917bd78d48e8d86dec7c456f8fe08933268208c8809103b6445f1bae272f0473fd8f32d5ff9ba36c3de96f936a8e7f0564007a68be753d03024c3686e373a9ed31c31d1ea8afe168855bcebec3c3b3b6f868373261a79b6203ece91a81b97f1c947de4af5db8aaa510fe9a4592a08cf7345b9e0dee981ee281035fcd9189c3abea404969e59c352cc5c1dec10b667ccb1764c4babda1d56fb90503260e77fcacf58674716a1c090bd71359b44df6d7531f10b46455b81c3409d6560219ffff03c7ea53bca1efe2927d561da01a3b93d78680056bc7d3a0422f6a071e9c23b38603b5d2de00efad83ce36cdf1f79ad9682239a77ee4b40f92b90513634b82313a7003c4f02a95c147cf7181f1ff7eff2d0e3259b4623ffb2aace9d5bcebd46db47ade039948e14d6cfb81fdc92f26378f5de37cf37fe632b0a2e97ddc61e489dc9df8130379332eac3a98e19c2777f0bec10ea5aa06acb818b37cf8d5ddf3becfd19bc3a70354d726ae7982331f5b3adf509f38ca9284685ca2285e5cc841d3b83b4e81562a039f9ca0931685ec039035772987eac94be2977c73fd2fcf88ecb44222d37cd49c030a8140ebae8dc4cea40ff21ab0e632ec49d5391f0d88ffb13d0d153dd020e46c0345ea2cb20988097ad105b0bfcc0d9ca76a155b238dd120a50e3b1f6457709a6f031c762183cacb7c279303c73fae32cf48c150d2b6a0b527944d9ee1b9d73db9e00397488c2eff1d9c2a9c4fb8f993c1abe2e4e3ee1f95954a0c13a696bb593f25af03594cac3f57ca184ec2ded82cac573a9e8ec6966cd895046b20a69e3565973a700219ffff03bfd35ca431bf2a46b1fda9544358dd3d7700182444d90da827e8cc150fdda549036007fcd192bd9d74e33ca6b3152dc97ddca1979c7ef822999a9d8fcb0be55e9a0314416dc2057ad69fd698d56c35f79102bfe0b983933220dbd2085beb86f7eae503f0be61a80ffb74d16010b3f5910d151f90340cf2778357e09fd3390e91fce0ac03a2f66e3e0c0961de47ad0035f9f47fdee3058f7681be23f50fc05a7f294c9d36033560276ab39e022a35fc073067bc2c19ef95b8d9236f7c2776c2d3125668058503c395b5fc30ae197afb695c52f7c27cdcc9173ae3597fd371ec038d9c48b1c84e03bb01f178f4f6d401172868dcb05ea1c0a638b6036aeee3662a40c97d7b4086330219ffff0219ffff03afe9d0d8fa6e4747ad158ced6b55f01473e75f41d1e7d47adcce27132d7b025c03e62c907b8fe355d5b810576dc78239768c7bdc958df541f41049308417072638030b446e2b73d070b8f1a68dfa60a0be61c998f056aa2a9a6ccb6f59a2c849426803b19042da58abe4301d4059126ffbcee6e4320a2c395140e1d9890a0f5a4072da039875e014887b127c846f8d4d0f6fda252a0847f4f0d49e9539936ca47c674ba703171d94a35cf57941f7221ddc2cd869c605a9f1b989cc741ff111e88c7c823448030a86279429eba5bd7884c5f8801c32fe0044f8d0ec19737a9433fb8c09110a0503a31ae2653e4aab417819d41fdbbcc4759a53c203a1334e22273b305c216cfadf03e815826c6551d5b8d4b82375a37f2c008b204a6c40d2f84b945af7555772691a03ad827f842c9abfe4644a5cbe1bfb66cea4cc36b8bf7927f808401019e3d08542034852786bb496bb988ed9987e35a210daf6b9f77cc723a5a4cf78422800015ac2039f6bf7ffaf8c036c62b23b4295d47c6f7356bda3481859115b34fe9deb4b62d8038ae3e1dfd3ebf66784575c11b6360114b01ab0fa29a51cf398452558030341bb03600ed3d1535b56d9332e03ab47278070014a36299aed9040a96a47c58da10dcd030c992a7dfda86a788db1b53976f8e3b71f1fd57f3619dbae913aedf7f6ccbd27033977aceddf09d3db641c30da13e1e64ddfaf4f0f96433c0774ca67ee6d8face40384e3dfff554b9725e837d3601e4a491c215ec6bbac68f442d1a329b2fe83bdd4037cf66879ee8a09bf8b3d5b3ec699b29de7f5f7687041e6d9d9b9ed05ef4f486403210109f747c730c70f5a293ed4c5e02683005c79fc017278a41af67fe05dece503976648fc5ad465f696c25c1b10025384489886deaf1bbde323c8a875627c310c03b4320911cb2a4eccb217a7c6c4f7785195a36d1de6754776211590e6d20a473103f46ab86532a2e8e297824de684aca846b0ad198e988345c02d2acc0b3992951a03516e23d6bdd819a91ebdad758f9f07be7dce87b52e1b92e70fc0ee5f3087fa9e03ff9588bb1ab300d3a57a2f6c3e3e2f9cba864b8824f2dffc6334558b12b8a73a0351b0e834ea5887f02ef6a9e4df7b2325ff0be938737d05578327cfe093741d27034d33056d15a52ed55911b4ae0cea900b2990caca8ca9599720bc093fe0e389b403083be06239d2fb97235dd8c84a1316621b4efb55ba96b0677c928c199100383f03fb36a1293383bb59ddbeb1872d491e63c9f474cb88811702356c84b3a8b514f103309f68b074979a2a7e308824a1d7cee52470f0256383fd3900250fd0807bed1e03a2eb44164c31ca906a83964a4df98a21b614bb3759ade19fde3a5a2500438ea903f988680c5facd8ad73ee446b65e19446dbf03b93a38946bcebd65501e45c3ec0036951448633287c677afd1aea0adaa15c288926f9914ac3e81bc4bfb39700077c05581e03a3e74cb222cfa0255cb01fc2cf25d65c764e0763f3fbd66c39499cc360084710e07442cc129b031e9f4b288c5dc8cb9f9761a650ee2174c3e53130706257ebb1c08dde65e004ff05581e0380b9b330272a1a2fe2ca3dd27de656d7e37c00a4d371d332735931b0d0040105581e03cf86e62de5e64758477bd9d4b935cd854a476db3cc51f8e8a9384ecab0040105581e0339e76902d0732efea57a1d7d5ac49a31e2126e194212f20f49d3c4e010040105581d0333e468a12d4cd1f5de0364c9b0d0c47ea1ec3b2b94e08de68b0c57000c02471ed97e2e7e89010399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe90803d66570735f93e9e146e1f361eb21e6f49ef36ed729b117fbebd1f40b4fd4b07b05581d03dc13491e94c69e72e1680db5cc92b4a222a2701f8e7d59c07625075007011bffffffffffffffff0219808001410e03bbb73028b2611941c7588f3030986557daa71bf46a2104f36ccc8c53985db5f60388a32f188279f6a39473ebadeea24efc9317602e76fd8aa166ff0822f0f4ac1905581e03e4cd5af8b2bb70c9d66d6fc83e1e6f1bc7965069db7340f84eb987144004010344914ebd9680a8bfb2f82d9b5a05556202b82d023c7a676c840d1889d3c6005105581e0358d9397fe85f3792c989cde6ee09eac4957b29925b4c09e2c29e1358800c01460f478e08400002197f5903436aa20d50656adb89d7500458b74cdceb31c5b1988cdd14a3013f51bc511f1c035d7d9a9e8fca6f8dda3449feee15b66502b906e40bbaee993c8f95cb4b00255503771099a22cd29e55981767d9998c028740c8e17a5aa293174cf81dee81b6e9b303c8c4c791b1e9fd0ef87ae17f9e4149f86b2c039b35b7e6f7854d572d150b9b2d032a1f9cb87de8db37ea68d5b8871064f7b8cbe76c2127cec8a02e8ed83d13682203cfb2b8e277d1922ffa49b26e7db2999aa85efbd0833c077fcd14d20ab782d1bb03266dac18ba72118ac65c70b824e439d7eb3ca6c7656284695fd8a38f7d1376da036df16508c7daccf933640c3ff9a6cc2b721f989033187dfd874c459046c2dcd603b41f177f03ec281d608ffec634ddd06425adecdb217de6105b7116fec50e5a0f030b287e9d644b716db8d00e5fd121fa3362b2e57090acd75921073399139b4933033056da42f41f9089054817eb66c1d50e0bd4ac65d8f6a311e15bb3b0838b11e903acf5afbada97223270ddbaf9adcc65c53ad5f30c964087573c7dfaac6ab0c73003ff3a00e189c4ee2e3115372b589bafad43f3633b5a62636bc28a477234c07dc10303091cd1e1741002a6a1a42b99b7ba7ba38ce4826d20b4878badc476cea0b62e033ed798c119c3143b5b6a7dbe7b600fb11425593066954d738d52a1a22d65af940219ffff03c501a8e55a5b0d838af5372228d6215fa7f48c803fcb352c8dadb8ef10a78ae6035729a8c8a231b9673895a28de0bc5ce1d0a59a1c714b4c9bb163dc9c9d13bbc10219ffff03b34b3fb7fec1b33fea955a6564ae0cc21eeb1a049ae7523d6ae1e2e168b0476803aefaa242f8906e975f75987678ca7291c390dd74040a8b7a1d6a79a5bde7ef230219ffff031f8200280b11cc9c2b2542c249e5f892fb123093191b7f3247e887c9e1eb83930320c823215c0319a777de2f6e24e8802bee7eb048e070d52ee7f82f3fba9f940f039f1498b9609857f8ae5e589582bb5e2648a4137780afaf16a5751b9cb6e04b3d03b08e5a1dbdb86e162df07ab153bb288492ab280690daab028ded22901eb18d2803f4cebcefb6ac5069abd34475d781d40771d7ed9f2368b94d066be52fd7323705032425bbcee85ca8b17b25e7824ac87422a657d5c6566adf15c5f56fa875ad1be80370e2fe69fc2b14bb05b3e06e276b690b7e74665a1966b8a05c375d19262f2bd2032442b3f89784b3439840660179e1310ae56f4a55ca2c42c494279a9c4a6fe0e6030f954576d8db200e3e890bc020088971b5365bd183862dfe532a678f26a8247203e63ce4e139429779192b3475993514bff7455b22833d70bd41abffb7298a194403ee13d03a62e9e776963b399db9d386bc229c262ac5d6615360685696708a7fc10371756b9344f2d39ac25fe5ac588cfe5e113d122bdd260a5171d469857493665703e6f27522b962159196e16118ad1f96ff119a6969a0713ec291b3a98fa3f6a71e03ff2640d461d02ab1d10a61d9edda376fddebf46ffb9949ed8b7257722e7159b903de19aac6f43fd5ca34db5b7d7bf18a2bacddb1637377d555e3a8d17fcdf956bf03ce4f563d1ce9d7e6163dde677ca28fb4788f4b95f2951830308e29d1603da8fb03b2c213f237f80cc3474174c63f0007f30c9233a4e41b676662dcc063364ca2bf0361d2d641bfdb989e4fb5ea29e3bfc79e2373728ba08cb38e48d6e014a3b4706f0385ac42667b94a0ca066db4f2745647bd0bca789e9b892c19d52a0fc8fb9f9c5503d275edc4063dadf20540853bac367680d9b3cb954f676c682b3f1a2c8b3cf81e038803095f041a701546a07c780989f8e4103f791b3b2ca013161a57fc3fd19bf603c5e8466c4b5cd84832249a7b17ceaa479e110574340466647c452c51d142479f03df48d1dc1d291a183d959f1b08ad1e9f762c463046283f305e2b36ddf53bd84703e43d706d8e6bc171cb06d16a51c75910ca43e85ce319bd12df5c2ef12466ce4b05581e03c7cf2fc0f8f0460a44f5117f6b7732bdb9a2dbbf7d3992098818c6bef00c01464d1459a7020205581e034003d2256a862382590aa2ee190b901126f53ef0a42e34f09e49420e00040103dd6c7de6ebcd31d2657fc531d73f8ccc78ff875abbf89a78cf25c4c2733623b805581e03a01370ab43037b6c024347d65e31896d216c3035fd9198397a286273600c01470854ec31155a0003867af37fc3e29d80371450169fc40a4a2edd582696bbdb52185be5db18d6d1b10364abc06c241dc7668b6bcd5c93e330e7e085a711738c6334f32851cf1561673105581e034c84ab01783620a3b132ef7bfe691c152ec5c3c9c72506a8aed93712700c0a470cfc448f360dd805581e034b1b96845b1b27bf51826cb519e5fc9701879c6807a6289de8bb8334000c0147025152102a584005581e03e530d3dfdb8d0ad28ad012628139da2f8fcda162813084039bc3c9e3000c1a0038fdb44a03433ab33be988c432790336430befbdc69572b4fe23bce68acd421f4fa461f9f19d1d96858d7c392dc64701410a021969f703ac6cc31d0bde84d5229eaac57cd797f7307429bff228e943d6fb8ce374c53c2103bc75f0a9f1823d3a69f08e54df03b0f02dd32d3334c844bc76d0c4e949d71d3d0343c9b32c3dab947492ec426ec6e830070f93c7b9cfa34e04fbae05c13f9deea003e6f4b78555fa70abf058f3422d01fc7ca4bbb50d94e9370fbad850a55929c20e03ce450d881714fa2f94ddeb640f74e2e08f00121a0b60bd93951700a99cea8b95031a4ce2d89d37d2582f1ac19f008ef7f10b7dfeaa0ff4a4695d231410b7d34dc003f950dbf9380494c415abbe8d10fdc3ece30dea0308a36c3694b00c04f72a1c43039fc0ffccda2361543ef5e902128dc4ad2ea91f5cb8b633add28816885d7b61ff0312105bc2ec6468718cef8ecd4bba69f2639352c4d72969f227e4f45dcecd4311037db8b568c94db84c4e280089059d4088545a1f1a3871614492d78dc244b2644e03f50a7c55a56af15f358391085ecca00910a26e883da4227ac7b1011744d11f4503f3446587d112ebf35642f9efbee68fd7b70186789862c5eb6aa981fa1e1e908c0334dedcd3cafb806cbf744f445c8f561d93b00dfaf3d93efdb90a738ac1e5c9e90320a287f101acb6957456e9c5e46003459b5f19b97bc4edd9a60e26cc587a50e8039c8a7169056b50ead5d8fcfe19d911bf5c32b0a34926e4c8581c9c886d2bf2990219ffff038e11c96f90dae96f2d1aaa4eb7d3a3c0954606d89b4cd76278f67589a6d606e90388a6a65e12a3c34e5647328b085b7bc2efeadb74b2d2649dc3c1282ee09e05e4038dc8cd25dc439d0ac1aff94cbe4846b4261252cb363c34278163acaef3118e4e03d9ad8e0c916a49dececf1f6780b95c4edaed912536f6185dccbee1b523c06324033abdbe9a751809715ea27b63a176c9c8554d99becbab0c4bcbf4a03bfe36056b03f99d5ba2f141fa9fbcb747317c46e413cfc03b34a7e23a13b52986858362d4c303434f8504cc108d3b9127384b357685f10cb816cd41861c8e7b7c5342b496cbb6036884f29ec9f71773f020945d1ff854ee4a03f7aaf43114bf23ea80536c7447d303dcd4780a33fe7f3cb1f219ff5480102b4b37f3b8d49baa4e3b30ef880ca7f059035d6f593b6cff21ebf8b34cf9310c2d550c165bb4728fcf83dc44d1aea1159be60219ffff0219ffff032a1943da4b1471480cef5fbf0c1160f3c63d1149dd0a9d987975e65b5bf769a8039820cae80ea683aed3073557ced9503a674da6382061e13de74c7cf959e6d623031020333ca518522795cc7faa5ef5e3ef8c505c0bdd94000493886fe7830a6b9a0334e43f8067cf5e0abaaa0fc2e3b9ead2bc3c69c55cdf85fc766f270f7e5d1f1f0397ac92ef492398422e3ddfd3c7df09eae516d56768964539e9c17ca5254e22ef0219ffff03dda5255a30d8bb9ed0dbf699c5151fff100b33300bcfb30f9440b9fccece814e03431eb34c5de29c9a539e6601d76a24d2b23ba5006001314a4e14ad2c43f8c0d003e071a95293c6e4e540626f776c0e6a9679a196810a24b17a813d15883ca2b765034fd04ca0c7cd280ae0f6db22194fdd093089a6a088206b34c92cdcc9b83a732603f67eea22cd395eb85d310ac901d90528dd1d8fc04eff7b88c12f54df6bd49d4a03157485ec90b00ec5cfac5b036b8c1a8876358f0e6de980319459c0ed8d5cbeba0368d6455c9a1c8f587378189ea35443acd0623803675afc7bdea7b79106c8dfcf0369f7c6574ed8de46cc7c876c00a286654576bfcfa3fb855b07058253a970705f0351601b9b6e90db71474496714162736d99dcce8ee509f5a59b29641c9e154a1503e551adb7f3831a0a717434ccd276a5c16ecf33b2303e8236acc6ed927b3f76e803eecb4bd414b7e77a85963da995eb33dc80f814856c98c5eff3d1170ffc72b3d4035d80181f6ea55dc119060b0fa2d5b7c1628cc117eef7b57c490aaf443389d9680344459267cac983495a406f666bc6cb462755316beb4092166ac63414e7e5ca6a033a1480733a4d71ed6e3a5efff9afb72e8e7ee9cc7a14ade917d5a98f7a2ced3001410c03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03bea2ec5b709935a58011a621d89cdd7b844b5f417875ecee819eece28007011bffffffffffffffff031b9839ddde08f259eef71c9d2f4936a83297b5a8063282d302168df774c6d71105581e031af524fa997d290f75ca1d8ab11af561c56a6c8b653833b6a480094010040105581e0303450c18185a997158552cb60b9a0dedbbd70518f18ddacd57a8c1ab300c01470d2314d0677e0005581d02e9dbf45465f69215a9259301300e62cf7cdd56e9dc3f7b154ead51dd0c01476bd70a5beddc00045920a06080604052600436106101235760003560e01c8063813d31c9116100a0578063bc22e4bc11610064578063bc22e4bc14610461578063c314cdae1461048e578063c7f0da13146104c4578063d294f093146104e4578063f2fde38b146104f957610193565b8063813d31c9146103a25780638da5cb5b146103c2578063927dd240146103e05780639a8a059214610420578063b1d995dd1461044e57610193565b80634f64ca19116100e75780634f64ca19146102c9578063715018a6146102e957806372ee3f69146102fe5780637533d7881461034c5780637cf5744f1461038257610193565b8063074f8685146101d25780631375094614610225578063207bae8a1461024757806320d2837d146102755780633fe3da361461029557610193565b366101935760405162461bcd60e51b815260206004820152603560248201527f5a4b4272696467653a746865205a6b42726964676520636f6e747261637420646044820152746f6573206e6f74206163636570742061737365747360581b60648201526084015b60405180910390fd5b60405162461bcd60e51b81526020600482015260146024820152731692d09c9a5919d94e9d5b9cdd5c1c1bdc9d195960621b604482015260640161018a565b3480156101de57600080fd5b506102086101ed3660046119af565b6068602052600090815260409020546001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b34801561023157600080fd5b506102456102403660046119df565b610519565b005b34801561025357600080fd5b506102676102623660046119df565b61063d565b60405190815260200161021c565b34801561028157600080fd5b50610245610290366004611a0f565b610658565b3480156102a157600080fd5b506102677fb8abfd5c33667c7440a4fc1153ae39a24833dbe44f7eb19cbe5cd5f2583e494081565b3480156102d557600080fd5b506102456102e4366004611a46565b6106c4565b3480156102f557600080fd5b50610245610c2c565b34801561030a57600080fd5b506103346103193660046119df565b6067602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161021c565b34801561035857600080fd5b506103346103673660046119df565b6069602052600090815260409020546001600160a01b031681565b34801561038e57600080fd5b5061024561039d366004611a0f565b610c40565b3480156103ae57600080fd5b506102456103bd366004611a0f565b610cfa565b3480156103ce57600080fd5b506033546001600160a01b0316610334565b3480156103ec57600080fd5b506104106103fb3660046119af565b606a6020526000908152604090205460ff1681565b604051901515815260200161021c565b34801561042c57600080fd5b5060655461043b9061ffff1681565b60405161ffff909116815260200161021c565b61020861045c366004611b46565b610db4565b34801561046d57600080fd5b5061026761047c3660046119df565b606b6020526000908152604090205481565b34801561049a57600080fd5b506103346104a93660046119df565b6066602052600090815260409020546001600160a01b031681565b3480156104d057600080fd5b506102456104df366004611be8565b610ee4565b3480156104f057600080fd5b50610245610f38565b34801561050557600080fd5b50610245610514366004611c12565b610fb4565b600054610100900460ff16158080156105395750600054600160ff909116105b806105535750303b158015610553575060005460ff166001145b6105b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161018a565b6000805460ff1916600117905580156105d9576000805461ff0019166101001790555b6105e161102a565b6065805461ffff191661ffff84161790558015610639576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b61ffff81166000908152606b60205260408120545b92915050565b610660611059565b61ffff821660008181526069602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527ffaf6f43fc2c7c31da89dab02a8c756e6f9cb07101aac8268ce100037170d9cc59101610630565b61ffff85166000908152606660209081526040808320546067909252909120546001600160a01b0391821691168161073e5760405162461bcd60e51b815260206004820152601f60248201527f5a4b4272696467653a4d70745665726966696572206973206e6f742073657400604482015260640161018a565b6001600160a01b03811661079e5760405162461bcd60e51b815260206004820152602160248201527f5a4b4272696467653a426c6f636b2055706461746572206973206e6f742073656044820152601d60fa1b606482015260840161018a565b60405163057d916d60e11b81526000906001600160a01b03841690630afb22da906107cf9088908890600401611c2f565b600060405180830381865afa1580156107ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108149190810190611cc7565b9050806020015160011461087c5760405162461bcd60e51b815260206004820152602960248201527f5a4b4272696467653a536f7572636520436861696e205472616e73616374696f6044820152686e204661696c75726560b81b606482015260840161018a565b8051604051636e1ac47560e11b81526001600160a01b0384169163dc3588ea916108b3918b91600401918252602082015260400190565b602060405180830381865afa1580156108d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f49190611d5f565b6109405760405162461bcd60e51b815260206004820181905260248201527f5a4b4272696467653a426c6f636b20486561646572206973206e6f7420736574604482015260640161018a565b60006109508260400151886110b3565b61ffff8a1660009081526069602052604090205460808201519192506001600160a01b039182169116146109e25760405162461bcd60e51b815260206004820152603360248201527f5a4b4272696467653a44657374696e6174696f6e20636861696e206973206e6f604482015272742061207472757374656420736f757263656560681b606482015260840161018a565b606554815161ffff908116911614610a475760405162461bcd60e51b815260206004820152602260248201527f5a4b4272696467653a496e76616c69642064657374696e6174696f6e2063686160448201526134b760f11b606482015260840161018a565b600089826060015183604001518460200151604051602001610a9b949392919061ffff9490941684526001600160a01b039283166020850152911660408301526001600160401b0316606082015260800190565b60408051601f1981840301815291815281516020928301206000818152606a90935291205490915060ff1615610b1e5760405162461bcd60e51b815260206004820152602260248201527f5a4b4272696467653a4d65737361676520616c72656164792065786563757465604482015261321760f11b606482015260840161018a565b6001606a600083815260200190815260200160002060006101000a81548160ff02191690831515021790555081604001516001600160a01b0316632de9952a8b846060015185602001518660a001516040518563ffffffff1660e01b8152600401610b8c9493929190611dad565b600060405180830381600087803b158015610ba657600080fd5b505af1158015610bba573d6000803e3d6000fd5b5050505081602001516001600160401b03168a61ffff1683606001516001600160a01b03167f4a008ac830958ba6fe8a6e667e2ab53a530eb6cdf93e55b27fc42d7a54cf25b785604001518660a00151604051610c18929190611df4565b60405180910390a450505050505050505050565b610c34611059565b610c3e60006112ff565b565b610c48611059565b6001600160a01b038116610c965760405162461bcd60e51b81526020600482015260156024820152745a4b4272696467653a5a65726f206164647265737360581b604482015260640161018a565b61ffff821660008181526066602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527fed9c939d1df4ba98f2bed2c3925ea9a064ead1c18bee6cbd8872425e3beb97989101610630565b610d02611059565b6001600160a01b038116610d505760405162461bcd60e51b81526020600482015260156024820152745a4b4272696467653a5a65726f206164647265737360581b604482015260640161018a565b61ffff821660008181526067602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527fe3e6f58279db3007bfc2c2ede323a50a39329bc9d06e14a32d2def2181ecd2239101610630565b60655460009061ffff90811690851603610e1b5760405162461bcd60e51b815260206004820152602260248201527f5a4b4272696467653a43616e6e6f742073656e6420746f2073616d652063686160448201526134b760f11b606482015260840161018a565b61ffff84166000908152606b6020526040902054341015610e7e5760405162461bcd60e51b815260206004820152601960248201527f5a4b4272696467653a696e73756666696369656e742046656500000000000000604482015260640161018a565b610e89338585611351565b9050806001600160401b03168461ffff16336001600160a01b03167fb8abfd5c33667c7440a4fc1153ae39a24833dbe44f7eb19cbe5cd5f2583e49408686604051610ed5929190611df4565b60405180910390a49392505050565b610eec611059565b61ffff82166000818152606b6020908152604091829020849055815192835282018390527f47d9066e07019286c19790aa54f97c9830127e71edff41b453c7adeaa15d2fe89101610630565b610f40611059565b604080513381524760208201527ff40b9ca28516abde647ef8ed0e7b155e16347eb4d8dd6eb29989ed2c0c3d27e8910160405180910390a16033546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610fb1573d6000803e3d6000fd5b50565b610fbc611059565b6001600160a01b0381166110215760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161018a565b610fb1816112ff565b600054610100900460ff166110515760405162461bcd60e51b815260040161018a90611e18565b610c3e6113ee565b6033546001600160a01b03163314610c3e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018a565b6040805160c08101825260008082526020820181905291810182905260608082018390526080820183905260a0820152906110f56110f08561141e565b611487565b9050821561118a57611108836002611e79565b8151116111505760405162461bcd60e51b81526020600482015260166024820152752d25a13934b233b29d24b73b30b634b210383937b7b360511b604482015260640161018a565b6111876110f061118283611165876002611e79565b8151811061117557611175611e8c565b602002602001015161159c565b61141e565b90505b60006111a86110f06111828460018151811061117557611175611e8c565b905060006111cf826000815181106111c2576111c2611e8c565b602002602001015161161a565b90507f475402a3cc99838bbf5b03eeac51c65db7cc241bb0814e6341a32a0da7c1b6c081016112f65761121b8360008151811061120e5761120e611e8c565b6020026020010151611668565b6001600160a01b03166080850152815161124f908390600190811061124257611242611e8c565b6020026020010151611682565b8060200190518101906112629190611ea2565b6001600160a01b03166060850152815161128990839060029081106111c2576111c2611e8c565b61ffff16845281516112a890839060039081106111c2576111c2611e8c565b6001600160401b0316602085015282516112cf908490600290811061124257611242611e8c565b8060200190518101906112e29190611ebf565b60a08601526001600160a01b031660408501525b50505092915050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516001600160a01b03808616602083015261ffff8516928201929092529082166060820152600090819060800160408051601f1981840301815291815281516020928301206000818152606890935290822080546001600160401b0316945090925083916113c183611f0f565b91906101000a8154816001600160401b0302191690836001600160401b0316021790555050509392505050565b600054610100900460ff166114155760405162461bcd60e51b815260040161018a90611e18565b610c3e336112ff565b6040805180820190915260008082526020820152602082018051835160009190911a908015801590611453575060c060ff8316105b1561146b576001928301926114689082611f35565b90505b6040805180820190915290815260208101929092525092915050565b6060611492826116ff565b61149b57600080fd5b60006114a68361173a565b90506000816001600160401b038111156114c2576114c2611ad9565b60405190808252806020026020018201604052801561150757816020015b60408051808201909152600080825260208201528152602001906001900390816114e05790505b509050600061151985602001516117bf565b85602001516115289190611e79565b90506000805b848110156115915761153f83611841565b915060405180604001604052808381526020018481525084828151811061156857611568611e8c565b602090810291909101015261157d8284611e79565b92508061158981611f48565b91505061152e565b509195945050505050565b6060600082600001516001600160401b038111156115bc576115bc611ad9565b6040519080825280601f01601f1916602001820160405280156115e6576020820181803683370190505b50905080516000036115f85792915050565b600081602001905061161384602001518286600001516118e5565b5092915050565b80516000901580159061162f57508151602110155b61163857600080fd5b60008061164484611968565b8151919350915060208210156116605760208290036101000a90045b949350505050565b805160009060151461167957600080fd5b6106528261161a565b805160609061169057600080fd5b60008061169c84611968565b915091506000816001600160401b038111156116ba576116ba611ad9565b6040519080825280601f01601f1916602001820160405280156116e4576020820181803683370190505b509050602081016116f68482856118e5565b50949350505050565b8051600090810361171257506000919050565b6020820151805160001a9060c0821015611730575060009392505050565b5060019392505050565b8051600090810361174d57506000919050565b60008061175d84602001516117bf565b846020015161176c9190611e79565b90506000846000015185602001516117849190611e79565b90505b808210156117b65761179882611841565b6117a29083611e79565b9150826117ae81611f48565b935050611787565b50909392505050565b8051600090811a60808110156117d85750600092915050565b60b88110806117f3575060c081108015906117f3575060f881105b156118015750600192915050565b60c081101561183557611816600160b8611f61565b6118239060ff1682611f35565b61182e906001611e79565b9392505050565b611816600160f8611f61565b80516000908190811a608081101561185c5760019150611613565b60b881101561188257611870608082611f35565b61187b906001611e79565b9150611613565b60c08110156118af5760b78103600185019450806020036101000a85510460018201810193505050611613565b60f88110156118c35761187060c082611f35565b60019390930151602084900360f7016101000a900490920160f5190192915050565b806000036118f257505050565b6020811061192a5782518252611909602084611e79565b9250611916602083611e79565b9150611923602082611f35565b90506118f2565b8015611963576000600161193f836020611f35565b61194b9061010061205e565b6119559190611f35565b845184518216911916178352505b505050565b600080600061197a84602001516117bf565b9050600081856020015161198e9190611e79565b905060008286600001516119a29190611f35565b9196919550909350505050565b6000602082840312156119c157600080fd5b5035919050565b803561ffff811681146119da57600080fd5b919050565b6000602082840312156119f157600080fd5b61182e826119c8565b6001600160a01b0381168114610fb157600080fd5b60008060408385031215611a2257600080fd5b611a2b836119c8565b91506020830135611a3b816119fa565b809150509250929050565b600080600080600060808688031215611a5e57600080fd5b611a67866119c8565b9450602086013593506040860135925060608601356001600160401b0380821115611a9157600080fd5b818801915088601f830112611aa557600080fd5b813581811115611ab457600080fd5b896020828501011115611ac657600080fd5b9699959850939650602001949392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b1757611b17611ad9565b604052919050565b60006001600160401b03821115611b3857611b38611ad9565b50601f01601f191660200190565b600080600060608486031215611b5b57600080fd5b611b64846119c8565b92506020840135611b74816119fa565b915060408401356001600160401b03811115611b8f57600080fd5b8401601f81018613611ba057600080fd5b8035611bb3611bae82611b1f565b611aef565b818152876020838501011115611bc857600080fd5b816020840160208301376000602083830101528093505050509250925092565b60008060408385031215611bfb57600080fd5b611c04836119c8565b946020939093013593505050565b600060208284031215611c2457600080fd5b813561182e816119fa565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60005b83811015611c79578181015183820152602001611c61565b50506000910152565b600082601f830112611c9357600080fd5b8151611ca1611bae82611b1f565b818152846020838601011115611cb657600080fd5b611660826020830160208701611c5e565b600060208284031215611cd957600080fd5b81516001600160401b0380821115611cf057600080fd5b9083019060608286031215611d0457600080fd5b604051606081018181108382111715611d1f57611d1f611ad9565b80604052508251815260208301516020820152604083015182811115611d4457600080fd5b611d5087828601611c82565b60408301525095945050505050565b600060208284031215611d7157600080fd5b8151801515811461182e57600080fd5b60008151808452611d99816020860160208601611c5e565b601f01601f19169290920160200192915050565b61ffff851681526001600160a01b03841660208201526001600160401b0383166040820152608060608201819052600090611dea90830184611d81565b9695505050505050565b6001600160a01b038316815260406020820181905260009061166090830184611d81565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561065257610652611e63565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611eb457600080fd5b815161182e816119fa565b60008060408385031215611ed257600080fd5b8251611edd816119fa565b60208401519092506001600160401b03811115611ef957600080fd5b611f0585828601611c82565b9150509250929050565b60006001600160401b03808316818103611f2b57611f2b611e63565b6001019392505050565b8181038181111561065257610652611e63565b600060018201611f5a57611f5a611e63565b5060010190565b60ff828116828216039081111561065257610652611e63565b600181815b80851115611fb5578160001904821115611f9b57611f9b611e63565b80851615611fa857918102915b93841c9390800290611f7f565b509250929050565b600082611fcc57506001610652565b81611fd957506000610652565b8160018114611fef5760028114611ff957612015565b6001915050610652565b60ff84111561200a5761200a611e63565b50506001821b610652565b5060208310610133831016604e8410600b8410161715612038575081810a610652565b6120428383611f7a565b806000190482111561205657612056611e63565b029392505050565b600061182e8383611fbd56fea2646970667358221220c0bf530925667a92a359929ef7143b5eeef4ef4aae4c777ab255f653581ae37064736f6c634300081300330605581d0223490a7a3bd47bfad6ba69379bbba4f72d227fe7ab7bca87a3ba55cc07011920a002182205581e03f8d3fbe20b99b4ccc8f96dfbb388db7bb0abafa06b8b4eb1eba0d2cfb0040105581e034c094df253016d25bcf55be194d5d7bd0b6df246f2819a811ddae21210040305581e032c272c10b1c0d43d15eb37f3b514bb462374bc49ccbd377466e7e0c6c0040103907114ad06ea1bed0a6e9f5b8e17150f8ec2ff98510e01fc3663d5bdd55d32f401410e03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03551ce6ae5b173d22b66f699d326f1cb388b9ee0598994cdbede45336f007011bffffffffffffffff03f264259b214dcf35da5a9960f12b00d4f39d32beadecfb39499103be9bbed225031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e038352d31cf4fb67711ba2bb66fe5d255781da0eaa5ceeae690dcc47a00007011bffffffffffffffff031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e03d2ef509dcc58e06d927b62def4b3c7fe4a5757399aca1ceb1fd8e9805007011bffffffffffffffff0219f7f703afaaea219dbdd91b129f572265b3a6ee7d0eed8f15139a7b416bf196b3ae085b03189c19c37939ecb568694d23f36b688f2057be2b32c8115247c6e4f1337d3aa2032356ca1772d778018439412128cd46ef04b81182b8a1e418cfbd498447d9801003809adf6736ad6dbfc369dad3f53de59c3c7f9782db55a150a0f422a8d9392e4f030bc9545e90ded746d8337efe4a8878f8ea5e4b4802df3aafa350c5daf154c77d03f907e34e91d77461303bf15257a744fdefff2e1bd756aed4c032d810bdb4377c035e632c62f4256b113c6c08d65310ec3db6b2771e0b3190fdbc640585c9da4510038bdc1b20a016f1636dcbcecb0330b8bdd93c667f2aa67b21f3ef7c272cbefb05038637edd810810889be22d6998dd3f81ec5642883bb3a8d7baaa23edcc5a53c620325f058b01ae8a2ea8adad9528a56607e96feb1c9fb249fad635dfb3e4ded9c1d03afffc88dc6bdd58a27d70e6793327bb178bcb46f588ad1f07eb730caacbc49ad030cb835f7f90a78362982de80078887bf75b2dc89ba0b5ed526671f9e146cc0410319082ac4fedd6efa097c704657594254776e211b498d7c484e4caa0032925ae9031e69df062f79da8f4c2d37d621b010987dba2d1ad9ec8f9fbd5282863fab54e30332a8d28a651f7a1f39f044ff4d3465ffe656fe4cd0ba71f0165fdb6f9d603dc20219ffff030432a90ed724fc2c22c2ea0730148fc255f99487a676b3d186e585dc7efb423d03a35e1a50d867bd149839acca56f140b11b02804c9d477dcec914b5879788ed390395011ac873522c64ebc4d6f50d73a4d3d9985a5e2e12464df80234c83cd13d8a031b05e979117208a9d06bc7faeec3730f5f4f64789e665e4ef6f96bbbe398f43b0388e666eab5bfd4402a3f6437ae6bba36f12a7429a5be7cbfd636eca397caa4560390385dd4f31cada46688406b86708da82bb1240f89e2c590d1a65e823a10a01a03d645beab426b9668346f329af8a7a2c6a080334782392d089261f98d0b7ac8bc03e314b2b08e646ce3792fe2ce4807d8309e3ea6b64ee8bec503802f73cc621679039fef69d0ba902d402b76c002eb93698914d8b7e96f52bdb64c4966e7f381f1f40313c8fb41421ee745f29d09b5914923fd4046c8698710a08e7fec10c903f8892d0219ffff0338325fd0679a6b77bba0b7bf55154801416c7e40f2f6a0f97e837af613eae01703b2405e6f4a5664819a304a51f37cd018543c7c648cd7267e6d2a37f246612b360321845a26649023e875389804c4da32b4fd0b6e37443cc6823518d0b6c7658a1203d98bc382ee4451fad6130b6072962919e6f479a1eaac22ca8eca3b699cdeaa54037c869bd8bf0b2f9221b99870101346144e58173771f73b44502fa6556cd4649803917ee6e10a27e7455c24cdac8fb3b83bd71d5d449b3332074cb9f7b1b327bb0903c3872477f9a966a0e3d9380980b1077f7bde6e0f5d44d7cc5116bef5d92a88610392f63200c27225b40f69158d8d8012b9701256f0080e1f2aa12eb6d95057eef20399399b1b4fa5ca1600a4dfdfd3a60137686bf2dc56452be0d48555fd096016c9037638a51ae2e97b0945999afb09cf3ae93562e72b62f9027d3793a9638489228503770019ee5d39109bb23089308fe5b2573bd2842152b5a9535696c2dc2b97f2ac035199e3e1d7cede0e691bf45209ad984b84e4996bad95713a0540bb40c8fde4ae03bd79aa2830c5490ae700efe8ac582dd5fa4364f58f3a28b1748f82d54ae7f986034c4b989cb4d44aa4d27d85457a96fb39d2ca10d5cf6331e1430b2231c56f972003acf8a99f5e74771b91a8fda5f3a05cf4cc5a5ecb238b48dad22f499de877dd9b0219ffff03b2a1c9f7ae80ab75b4e8d929d2418776afd675b93cd5f634d0588241666869310315b4bb38be159b1c68eaaa9bcf2b1aac200184d33d29230656b8cb031c58280e03a54f9c3dcd09c010392451b8a8fdfdc5719ecc7c0755b85698fa7656b8d4746903165b4d957d6fe62326443040acd62aa20bff9d78ee7468668373a863979b7fdc0360f89c5fc724a5fee3dd109e7f51848f936bc94805661727244d1478c63c2d28030644e00fce66eb59ec18a86506a8edb805f6d56cbf41d4c9b04dffd1e4fd6750030d37ed394b3e96c652e4a944ccc4dcc79ca0bb8278e1db12989da3cb53a7d4aa037b8497f90ca5623e50ebe20fe548aef75b82fefa01e2a2abb1a3eba5a23cb08503c73c2e7d4d81ca0a1e7e2fd447d17c764c61f70e9026773e01f0ae65f9d2bb130219ffff03c2385174490af3e86fc7782e0ff59c491523f947fd02bf7eb38d5467ce04f9b5039c4ab2826f7e5a07ff199f53c556edcb756fc73963fa70fc437c7ae91852798c0311f5bf5ba4d93cc9c619a7bff17df9f802bb7c5364add85721e20876128691ba0346a08b43bcd30a66d28ea5bea23e3686315b0f58edf7b488f3db706d2744d656036c0984e5bfcb98153904a78d8c347826fe0749a939e714805a5a4c9ada287dcf03da8f9f15cd4bd8ca66f763c2592e2e45034adc9061abfe561ffc8c828adcf0b9037b3baee7609a473e6aca3e8e2491c4f2d61fb277aad986790c5990cbd74f093103d961ed74becf28f672007982201f35187c0797cbfc2eacaa7dbaf0a73c2c982f037a585efd68c3f9487bc6b886522959b83c048fb91802e4bfe80e9459ca21fed203fae8edd640c76f697b6ece21a36e484f23ebd7da00b8025a65cd7d6411b4c5b7035c192cf04252c3260ed0cf711803e9823c17dcd5e7393208be46bf645272d5fb037c3ae79818008a7a451c3c4921aa8ed5ef48b13098a23e0fbac9a43df22f629103c7e7ee256142c18de5ac9a4d196f6f3f3eb90a4ff8c184d35f244aeee7f9311e03f67d1b6de4d2168e3a0a55422e1ad2d826060a1e442b341a56551437818307eb039e1fdaa7d418d4847e130cf72f8c25d3ca874bbde20e5a452302a97d02c29592031a73142b7cfd0cd4e2c0b430f19db3a43128e7bbb12b53636d7459a18ec4d7b7030731c0c2a40b622af77eaa7556e7a6865f306ec9dc2a328ec68686cc4f16cd4b03f715c8df0cc6b8ea9520ebf4ab97e5f8f174c36ef8d48c2e44c4bc1a5538a37603980f509f127398359d28dccaf77e6baa43912d5dfeacc6d9e5904951b87c583b03aaa4061d53a996d9b646b19838db9c09b53b368a1936a3266e22bdf754cfe6ce038af33a085bfbb484ae4de4baf1d4205e72850254bafdb260beb34b10735fbe1a03f9c0ff91f44f3069bebcbf991e49ba398fe14da0a527208f671ad06e303ec5e703315c8e3a8722c696ef1359d4197ee982679b9536c9f31a9d57b0f0b3ccbb63ae03d9fdcc09d20705021a3f30978e64017d1da854350fc71dfb6377a9c07589faca0398c917ee6501a54b3c4616133717f7456291e02a4e93051d14247e698a93d425036d2a479a943d8e590d234b071238705e36c2bc484c2925809a6282977925c52c03abeb17df12cae5c438fc28b3517e7d0bbf469dc5b50f24d0d38360232689573a036284c47a5e1305fb91c5ebb9702946abfbd7df214b919e5ace2cb078c0e6dfca0393a01d3265bc269d01b8f64334623071a17f723da6056ccbff6bdd78338156630308935abf2333e9b3c8c3ac9f929694001108ecc4681b32af5e0b1bce1d87643f03bbaf12b302c83f3818127585bf721603f0b219bc11ca6500e72e3625a46142fc031f097c265888d5f95e8e664fe4927676fd4f733d1944eba49e73386f18dfd717039155f09d9f5ff43fc7892917da2421fb0a9c80912bbe2c1e98b8bb987888bef1038f16993a613cad29e9cbeb2ffccf3493c57a4b12f155d781e5a572ccb9386b6403c39485384e33199951d1e2a0e5011a7ad6636fcd1e39ecfc7cf2f6f11d928baf03a8c73bb3fad67ffc7731a8d111d7a908c63ccfb7312173d59b04b9dcc25a6a79030d9b03d13d96e0d1694189e0e3b93e682d5e08848b04858d525c15ce0deee86003e85394eebfc8ede3bb031f637db028345183e2a6d2b384201ab5c735123354ac05581d02e40f8f3163f60e66d6b495a055db75592d3e9ce2d011c7e6ac87b54a0c0147014a3e84968aed0459029c6080604081815230600090815260016020908152828220549082905291812063bf40fac160e01b909352916001600160a01b039091169063bf40fac19061004790608461017e565b60206040518083038186803b15801561005f57600080fd5b505afa158015610073573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100979190610226565b90506001600160a01b0381166100ff5760405162461bcd60e51b815260206004820152602360248201527f5461726765742061646472657373206d75737420626520696e697469616c697a60448201526232b21760e91b606482015260840160405180910390fd5b600080826001600160a01b031660003660405161011d929190610256565b600060405180830381855af49150503d8060008114610158576040519150601f19603f3d011682016040523d82523d6000602084013e61015d565b606091505b5090925090506001821515141561017657805160208201f35b805160208201fd5b600060208083526000845481600182811c9150808316806101a057607f831692505b8583108114156101be57634e487b7160e01b85526022600452602485fd5b8786018381526020018180156101db57600181146101ec57610217565b60ff19861682528782019650610217565b60008b81526020902060005b86811015610211578154848201529085019089016101f8565b83019750505b50949998505050505050505050565b60006020828403121561023857600080fd5b81516001600160a01b038116811461024f57600080fd5b9392505050565b818382376000910190815291905056fea2646970667358221220edb025fb8656bfe68e1f6fdcfa8ab0e0c6a5e51eccebff0b181072c10fc6096564736f6c63430008090033033f62fd6b6ef03c31fc32ad8157214436fb5ce4449febbba0029f057b9e5150a3039f9397f8bd8abd1a91c4dd8980a942dfbbcec6eff78993bd4938e865f28d445c03c553b336d03a057883b4411153740a97f190d877ead6f388949f7986d2cc494c038353de45da07c2779e8953319c1cb499e43213e89574b77d137d6fe9092f030a0365ecee0d86485d631173710e3b61855ce209db9df1f58dfa556ac739264d6666030be3f94d5041fe947c21c19a9d9a1d071f7b5c6a05611d8c9d1f6862e7abcba5035981383e73841afae3d97813a0217aa866b9dc9e2e33105aec2d00bb042c147c03667a96f45265109af41f49d28c07814aca1650ac6687048d558f486917feb33603f5f4013e4bb2053c259cabe2aed4a0fec7521e17102aaf148e558a39cae284d70352de6a2b160e44e9013c3a7afe84455872441f5e81e09e13f72a0beb44013204031ee054dccaeaddef6fb7aca2a24c87af3c7be3621de7298cccd4a78cc80966b800581f02ecd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56355016968f3f16c3e64003f02e121cf0d5ccbf5625a4200581f0210c02d10b2798a8a1f2c516c2fe258fc6f2e1454ee3f8ec7a0588fd6fa2c410102196000005820032ec3dfacec5f0b27e876fc021eb78e2452ab842594825b2a00fbbd6b164240410103057bef6208be9bf968a00d1943449416a08b4f40c90b6a69c770f48a348ce06600582003deb1d57e66ef9301ee8e6b122ef2662b9a572c0ad518df4edb07e39e8908e0410103274642f7f730874f84c9984d0706ffd1ef1d8aaf84dd9c36ea56524c3e6d83b7032e5c9e89e35f906c47e340e73de1992084669eaf3e918e510f5e8e0caebba7f700582003a9514fca306f08bac8f345604bf8cae0aab852050c61b6213871fb976a82e0410100582003997356e7d0ca213bd8b1b162eed15bbb7b7ba9a454b79de2369bf60f1ea710410103c3a742435c029e4f5f7d81ad09e8570858caa94326e9476ad5fe1c0674c0355503f87d1002168372f231eee920c3d1a5dbc88b4bd2ebd98121c8027ec7da1b266a021967c703eb79245aedfa403cfc670ed8eb18b18dedeaab3442749599e130511fde77b58f03aa23c8aed01f5430c285a565e9d60df266101340b6bfc62d30de7fe8ef5d120603a953f489af724c70bacb3471a5190c9e1bc8ee67525cd93c8dee2ba093c2273b03c5a76e2c9aca14c610de4234cae731df60f13a6dabddc0c58b400b33e75631b003475d96ba6ffef5d669c7a5ccc072f08dd7517ada25327a866bb1fa629884e47c032f5d4f3fecbdcc0e59c915e8c8f73ab656182e5751a7a619c427378b3a4cae080219ffff03c46dab86ad696e7043adcead459f17a27edd957394321ed309ed24a08804bd5903d6bfb4a3425bb6638e04af365c00cf3d52b8ccc6923ff0e2d6dca44983e964ad030fd8a5f52f84f9182da18124079598881c6982c27a724c6f24fb5dd3fff6b009030a0202f68d7f5d9dd59bccc0d0155fc1c1e67e0798b5691ef320d0b800c0524803b2c365d0d485e5b59c90546106032e1cc8e4aab4162651901d04385b1399189103fc36239ce5e6de8522840534803c787e7f0d7cc9cff4842d2cfe14410dcd9ff2039f319e9b8b6f877dc0630c02573f2ecdd8bbfc14bde76431a77148e6752fd5b2036d2303280b8988be4de4d647fddfa8b161b8a51ddaa8d66c93a188a14d274f2f0340395823e7e05cd8937fbbd66c0b07144ab8960a11f14a2c8dc033ae20a417d2035135c9bb364cb944dedc2521fcdfdfd05386ff11cc83bad2da235c0ad66b99bf0382c1c4f62a1430b3273b147d387bc193f2928ce72f2588ba9bff0b7c891d978d03434ce3c81651525fac0e0b3a1a11e15a4f48310416b9551b2e4fb78696fcbaf103af59ee7c67e22830966025b16ab5bba7b9a11ee41c8e594402c39e0149d6e08f03705ea6fbe9657a0fa9321f3f52c5e7561a7845420a4ed78024a830f7ff73a8ed039a2b3b6a3aedcdbfe99758c43bd1ced68ee203eeda59a75776f5fd1ce1f3a08c032ca56972ef18767c3eb45fed2fafd934ae5cd48749f427c2cdbe3650fcc9d8a3005820033c522d394f81e775a7e47578c40a7a8c3e1118acbdd88a24eaafa418397000410103f8eb6bb1f9785c1053b77ae1ae3db3c7a27dc87a5b4649e34b5bad9a1b87d70600581f036e12ee8511ebfc410bbdb26aab31df236b969fc7b12ff2fdcea33aaa9e00410100581f032b2835808391ee5ad7bdd6888b621b17c2af5a1f21892cff5ee5c5a21730546968f3f16c3e64003f02e121cf0d5ccbf5625a420219402001410003f59930f7e191e43cf3dd0d5828f75f3eb9d5c8cd24bdc2b0881d34c93480a93e03fe205b7a6ca864c0b200c06344d788875f0e7e641eb910223db14976e18715a600582003df6a1a2ccc3bdb155af5851c9d0d5ec605024893648d14e0a5678c10a65050410102199229036dad2fc4b72acee75e9f2e186c2f4670d68695a9544f101479dc29d80ebec86003d6cdd1f1e3d61556fe1a2e00eb67b6145a55f7b1abfa070fbff5fc3aeb07438e038e9284597fdd0d9174607673ab66e3ad9da3f97627699225919af3283f8d641b0219ffff03e62729be16c7c7c4d1ab7ca91481babdbd7f99d0e27575e3669093cf6c4a998803fb637422260fd1a1158da034f5776b4a91f7330814dbe229703d672cda0254870364799c7a8be2d0c5b9bcaa995dd366fbdbe466ddc600cada4b139c064ffbb6a7034f7914d762453e4dcbc7ec35189525e53d7105af04a59a3c7210442b5765fd770375905f0c0f5b1831a5165edb2491b341f8a5ba76015cadacdbc5300810e347cc03696ebb1381a9048355e7d27e7e2e6b8bb9a6555b4392b53a485a8f39238e79d003c5dc194589a778157307170ae46d38ea011de3d34cc18010022cf75d434cf08e03a3a251244a120f85afb25fcefa2f3a8bd8d8b865f4f1bd08a184dfa8805551c803f2b7fc7f3ef554e49a43fa19cde43adec02b6399035f5a70b629713e1a93ac3703bbe921d3bea489dfa08aa1098cab6472e547b8a7a27bd2236c944162cb685aa0036ac27fe37648ae8d5e986888348aaa134281f45a0cde5dd3736061fd6357dd2a005820034d295f135c890a4c15fc0c11460ad22f978ba0a32abdc8f2a6c0de522fb4c0410100582003e5299130188f802a74b1e1fbc4e3c76b0df493e965bfc40e890814ff81ec4041010341d31b8f020ed1bbcccae4e290ec090a5fa1fa6b702cab75162bc3917f82210f0058200398011e1255c61a8aa288b6183ed3915ee0cafcb353d986b3b765e4b19799304101035cc20943510bd8ede4c4046870007cec03800d64b55aa7ace60799c7895a8c1e00582003b4fcfbe5ac7833cef9859bdbc56a7291d5ba7acae1ea22ddcb453236b88680410103636f3f4c2396e37695d72da5e31ad47a1b2a4b31c7ba5a1a5a6afcc94cf86ade0321876d55fdd3a76105e0ae0999819d48faebf5de28aadcf285de46d24935c3af0058200361d91b25c2ef3b0bd814f5b077753164b20ea9220a0b1eb340c84c67c10230582042564d5f4c3143726f7373446f6d61696e4d657373656e67657200000000003403b09faf081a7498a0249f92c60cda9dfdf6bb43e32e5582a1e3675f9933b5e346014200fb033bbbee72dd812765eacf931d11a260d868e2b2569337a2d852fe2126d9d4fdc7005820036efc49ec22024e90db6876020b26b384bd2d2e824f9341b4b6d72501c5a7d041010219ffba03844f9ab6725845753a55d9578cfafddd50e6c320c68a9fd77b6f1ee3def2ab08030e2eae787c9e2a66ccce7cf30b9e9a2e03849b6e1bc936f606028d0ea15218ca0328a080c030614d6b781fe14d046344eaba8017db9fa3953ba46330387aab833103b77bdb8816fd3fc892910e8481e7c39560e77074d61fc83de4a0d16b3510e77103f41675fe4786618842e3995e008919d2c0f50af96ad8ee28f2fe9ef4dfa527f90219ffff0338be31ed6c40b46df91096ce89d485a4ad6820e66dfc4c48798752b91bbbd4ff032651e64afea11d0f71f2967fd0f77c05c9f46e895681cd6dcfd6303db57d780f0389e4a15c5981b4e9c3be69bb9ab72018656ba1b4b2bdd78c380e3ec6388ad689038db67c264e49b9468508267304992a6f4309fb439c15bfa4a2f7479ded8bcb91030d0853dc7a697eba178962d5e9d93a61e16fcbeac72e2f9a410b1ee4b32d9415036d8d1eaa446320b9e23b43ab6046bf8f3a12241b9d5c43e7c83f75eb42d904640391bf6fba2018a1b998d145fa832f9b5fca17ade1f995710c60b3e3b1ae75e41e0219ffff05581d020e1f344da514aa282f713a956c97a18c9bba53db74ffd05b07053eb3070119029c021990000345b63ca6de158b9d3125ce0bd75c08be814fc5cfdc0096d6a72f395af05020590320e582d0837dd999497dedf75f2bf287431bab8fd39c4359154e97790212c57c0321cf403f4d115c57bfc3f0e8cb5adc531305307cf66693c90524a6e93aae099e035cfd61c0a2cf0a0af410a5f829233f1f3eaf6a6c80cecbf429aa3985d067c52105581e037efa64f70791470e1189a63db45217a069c9d438ad58856f49b66a8f800c02478e1bc9bf04000005581e03648dd50083dc6edc6dde9fdc98c19472b8cb11c5b59989d1f0035085f00c054708548e5fc8abf005581e03a9eecabefca591428ffdf1bffa2b10cd2747f4789073b3a646da612ec004010399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe90803783f6789ac0f2a0baa1d8ad754289a6ddf20f55c8d839cda8ce03ce0882dee7405581e03d2d1741422d33f9762cec46c0b4c9616e6e0462c4ae531a9285da4dfe007011bffffffffffffffff0219d79e03a081d3cad40fe5b61baa96beac328c34b076f36a55c05a123e5475c5ba2400790320a8bb76037258452dcc058202fafe8088a4cd94c718146edfcd38e381207167031f14775ff24e6361fcfe0084456ca5a06d17eb056490bb65ff0a3b081e2c35ee0359d7531a66cd21ac59afdfd163ee666d323b81173d01d0663d6f8a381397dcd9037b6fe87ff4613d1feb20f552249b0c460ab0322f1eb8a9a5c7377b2bc1bbc798038086e1827180cc2dd22e80762fb3cd2a0664d3d5dcd44277a141c0abfec4d9dd03855e63a82e0616bd020d188cf5749f1d4b22230cf52312414f4844e8ddb73a99033e31b811e3ca94f2c5e4656030f31d52b9758ecfcd25b9cb09783f3566635ecb034ae7b717e601cbad23eb1ccd41db53dc96036beb9e8c5779b63d43aeaa99dcb5036abb2cb9af490ee59f07c7fcc119f9b740038f597fd59e70e2976f9b1bffd71f037c89057a082ed1bca8b647ff1d06c528148cbc42899082df511c06153447309c03998f492a9a2821767dfdba9ac1529240b150b8b3a36b9f0d3653ad705d1550880344ff7e7e3283fd2d3dfec115ab593155bbfe4a27ddaa80ccfdab7120f2fa32090219ffff03757cb25e94f3b623273352dfa304ce9fa8d9e2744cf9c525c585deccdcd0340d039691bb03320d83b6f91a249892cd768e45377e5a2449b93d59e8e59c036b2d0303c071d2972eb36eb6894c4fae275bd6937e37d614aba7a7fac7787e5cb6c2ddd4036aaf6a5ffb096baf9a7dbd780263c8f19057caf6b1c08f2e894cad2dbcc88d2103bfec46fb700ed8486e2538e1312306348a171a92698c1e7672611487ae324b480219ffff03d85076e924fd5292f068ccf81ffc1937d21e7b9b7136035ee6fcc1956bae6fe403cfeab46ecfabd0ba02eef4de4698caa44bf6092c4bc731a5561a35baf2665fa203396c788cfa5a71db4c051d8dd01e8db37d25a796efd6906bc778d37e46e4888e0219ffff03ecb8efa1d0db2185728ce9779b8bc611fac65df2d058bb7f70ee7c44a0b9a45403e6ba7e2b77bf074875da9748c5c5211ecf90f126ea8c47a26bbe275fdb90e222033aa57d1a4fbf381f012e93aa932c91c599ee988cce3dbca81d483d704aba4c8703ffb45677f1a75da417af5512dc89e8443d8c3faa5303d84dd128e1cb87cabd0d03807e28ad30193bbca0b55ecc82e90df8f136b8f4e03d4566c2588e48a19fa0f803885a23fbfc3f3f95266a575cfcbb173d302fda49ca85ea8fc1d37a9181f2651503d89270baee77a7e56dee5d91549d11a57fe6dc03cd9754f6142ae24549a86b4803a22d07022f74384b49b4ba9a26a5243c7b0905e37dfcb00cefa2028d9b4b4e190316b090fe025a4abf069ab937856c134c7ff1c349d0aaf6e97e217755644fcdc4038a08838096f802744ebf31ee62041fe17101eec41463e1d2aed81e74127c2a2903585ddb382c5a0f8ce5c77fa9504eebe006af069c418a12af568254bf1fee2fcd0312ab0680ca62f67c72f03e1bcfeb2b2de2eb6a806c2b37ec749a1ed3c7e7cb1603117a7a4799ff7f00ea42bf873c80e47181ff1114c7a644205273ecd52e12a9df034b4f9a0b0be1a52356bdf74a8c055b17e4b0ad49774124065643448e4e0b77d303951b0693570efc03b5694767c3fcd66ca20509c22382cd55d1851a1159ec0efb0308afccb994eaf94fec02ec4e1c28d2705bf35eda2f885b3b58e49af0cce47a6b03063bae653c2ae81484d9ed7bade1a38071149aa65f5dbe6cd4b0d2f9f12a04c50316363862ba1411444b5181bc09710bec26726de123de981ef5bd16ddaa6431e4033afa153b3c699762976b393f732dde99cd4494a4a6c05eabad20ec14955bd4ed030161cead72833e17adeffc58df971a758eef2cb7cc7eab05dd699241b39325910312b5b720f096a708858d7718775589659782e1cd01f00a640217f9b73bb5895303e9a1b8db1ebf948fecc23e14fdf20ab2a60c81c1d68b2a7ed40055dd241968cc039279c8ee0a1ece613305380179896fbd6e2b98c74ec9514b6327c56fa56d8ca505581e039b09a4fa80509a0b437660f929b065f602faccc7055c0ac571dc18def00c190261480152981b1dddf2fd05581e03af0717cfb04a38f69c7b25e9f830934e3301f776ea28a700a8732893700c02480aede9b1dc091d8605581e03b5082cb98fb9fbc4402035e0a781e03368ffc32758e470a99db0a9d06004010327c02a1a822222c2ad6a9a01021c98abf05dbe6d19540035756ef97697ed41d00317daf33fcd9ea8b9c880fa707b0225e0b07ac9a584fc91b1bb518b7ccd8df5db05581e03d484ee4855ae8a0b5b1ac915ed8326b7bce6ed795aac2ba8f179a9442007011bffffffffffffffff05581e03d3eb224fc924ce4cb06a31328b6f8f057e0fcdb6b4261077dd472659b004181905581e0325b59dd98cedb7d38243217c11ae2f3e9bae843ad88217498bdba4dc900c034701f4f03181dba803ba4d5b6777aa9222327e13750e422ac67882bdc9812d47128c30bc7ab4840601032ff8cca49bc08786d9a94725a9d80b02395884191e81038b28c1b6a53d4d0b2c05581e03e2b2fc9a7cb0c55baa9fb6a74d4779a10584348650d37453db9ce41ce007011bffffffffffffffff05581e0323acba1cba44f60787138fd9c7fe401b77a174a65102e9dc7adbb546700c014666cbe8323a00035abd34da3910a9c7b7bd466704a0e3218806ac0fb74d2c3ecc32ecdabc6d19c00219573e03358a12a03a9cf451854118eeb8bbcbc50ab94f64d016a7687cd6d72fa26ff2690350b580def1a497d50bb19cce858bd54c891f811a7255b4161d513b053b5a6d080219ffff037bc1957c8749f388e5156d6a31cdee63e193b2b6c6668cca8e3102eb60fbbf9103faffaa1aa57008b8e45ee5f3d7d6b934f1b3bbb24b397a11fed4499519a873a203fe254ad27cc2a7c8e8e7617d2ed714d6c2a72fb6ac73fc977d8da466184586ff0334453402dd8ebf100ade022994338b372f860a0ede317329bb01b72bbc37ad680310294bf1ad853cff25f93f43e66f398d303e7cc53372bb96cf5371f60cc9bf6a03f96d31d2edbc87ae1a8c57c1db930e3869046b1b020d87832b7a6cf8650ab06c03b409f43a32cf24063de22dd4612a5170a5bf255f1b669a09eed185a8be929a79034a37de16e601b919f71253f52454ab2bfa63b470152ccc3af53d65e79c54446403b73df40cc9c4d70b5ab9841859ea4472a6e7b92f35adc58e24f3029363ef2f0503fc9dc4f95def8c8431a30876529f1c07524f7fc589c1b5d0529f2d90b86c1cb60219ffff03c23b9a82d84d1fffaa62b9508043f5d92bdf697a8cff4a37701189ca549db57803dd045fbc96511d1931d1333d404c0e842fbc0ccca485c759a28d62806aceba1403f1be3f69c5a878d40e3a571b1d0a14fdb0c5aec5285bff5732f087f402c03dfe036e40212306d1b08f3b39abca6dc4307c6f37dbd44ecaf329ed3a5357b6c4324f0371933e74544434e110a4168643fd15b0a30d7f603bc75e4859200003d4a6601203a23e65c667525a8eb01de3e664e1c490ccc02702914829093326ebb4453d3ab50326ce07f5b78fc91c8d0d0f519389b8f364204ba2e3d64242922c994bd6f02ab703fb2b12f6a5f17d734c56b56cb139d3ef2346d0b92486c7080dc719ba308ac3a9031438cc7e20e6931826ba13db967e03b8945ed2a17b9845911520b922697bd5fa036d701c6e1fe0993dabc490b04253f2f0e45722477fd23eaf21543689bc8bcb580364ab445fbf930fe74e9bce38fe54afbf9c66f4998f9b821b380e9a09e5c44189036489b904d8f19ae6bc62bbd462451b32b4b6c55540b0cb182f3dde3d33a1f5bd0219ffff03c2abf630a0a45b0691ea5debae2770b8e7b4e2e730a0c9014cf724dec45f673203050729926cdcd767bfa1c55990e4b9d93274914764a6a6e5130d1c368bcd785403728b7d7a51b0a8fde932cc03063b2908ce6aa8615b21a59c8029cc0df187c67703893bad08e40904be2053f5f2ee779e4ab8c06634106816a07e282a324390ed3203a1ea7f8ee8ae95229df2f8589cbf69720bcd6ea7989333032e41e03070f10c2c031b107c2f1db0d6b0c981e6bd1a286b987bdbe871d5ca6bdde0cb3438ce47918f0340d2fa94eac7c7965fb7a1877e9d96a0d913932a52bdc42dc86fb7a9a1fbb79c035450165ff06520b4f0d1d80bde8cb3d69ef38dc178d47e72ae30c726a3afb7e5031ad974d5fda77163c4ed419dfe0c160466d830eb28b8ff850f7aa632707cc5c603dc9ffbfef2a1ea5ee81a2f32cc0e38f10df44b2aab4365b4747749cc42bb27f903a150fd2976a2af671bd5932b531588cc0b0353246b87d8704c6afc6c5adb768c03981c82264958a638eb373c87424a0c4337518014c6ff614e4229d1aaffca581403237d356b8f68b5a76c4b4976f6b51ce2ea82dcac220a33633a1d359539cd49ef03f59e0d0577020fbf54447ba5eb6741a7fe6135f3a81af39645fc35a9360ce156031c249eb0025161fd25fd29957016e6544cbec42a520865854d069e6742792e9f03041fe5cc9675e05deab717222c3da33b3b796e0172d3e9e7d1262b0c63515a1f036edd7da4439377449e4d32ebd1c029bfccac021ebb185377dac066b1545561de03e9b66fda226b4438e79cacda2d087ad161e22d9e09b9e0f4326108285dfafc0d03e8472e35a5b64d1dd409a1c6ff091975d4848ca79e6f1453ac53b96f8b844b6c0343fbc4b37f5694eeb843731d195e47b9f5574f7335ca3172ce5dd55d9cf61c39035d37b2583cae8a2249506f268c0c40aef3da455013a12efa34358600b9a1bc3a03dd13b0ba4ce1f818ab823b4c2bc616d8b98ad6f720bbb7fb12bd778b04195a450386d073bcad10716b51534b370d9596319f66beb95d85da0113600fff5bdbee51030f0a09a28542b2b5c3cbd965d628a71ea3171a2278db3d5461b0d870bcaa4ce1033b8e95555df81eab84b5e244851d4ea85e7fd7c5655bab41ce7fd908732df90903562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e0396b2661f8304687809b0c2c01f56126deb89239e84a56736c36420235007011bffffffffffffffff03fa294625122941d3f4ca2567dc1a05dd31c8d8541f23e2c54cf82e319ff474ba05581e038677934a3db465410b9beefdf76328ee22ee92274d1ce7b094ce4020b0040203e68329a5813fc87f51b96d811ab0b165e5da5b6c1448680d75647726d427935505581d0240322fedb8ef02d624b120d90b10587835256a6e918a74755ac097270c0a471892af0e6cd00005581d0229f1707d392e4bcab1f3506205b76dd7ad85d18dc5c41538ee5558aa0c19874048038577deb30014f30219018003647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d03b7612d933706fcc7f47c1acbbd204eeed1c969fd866d3155f1979cc77cf0637a05581e03bd17d7d299d106e7c89980d7f92edc5d1d758bc0791754bea4fe45ad9007011bffffffffffffffff0322acb35c319d07cd33e574071f44fa96f5089bf711d06b2e6f85e6af42370d2305581e0309f7c4877e469080a5276c3094421da33535ed58d85363b8e7f16986900c186246d2f998aa7e80033b9d1fb6151e970de1295379e6c16fbd41c712e7d536fc3d6629faa237ee80ce03241c7014c6ce8d243a6709d5e9bf3fe7b258719b74cb79d18db58ebbe7e6b98005581e03ae23476bde80f31dfdd63f17a7b69df42951b5602aff7b1a653721f9a00c01472a77219329c3e80342ad951f60cae1621958c55ab53c761c511a82e910ed90e4ecd0ce7dbe93b5a20219fb5b03e8a59e28ce2d250971a111539c46f87a95570fefbbccf0573815a5951cb40270032d18fab696660be652156ad27dd7e94e352851774351aaf7f59f25fa2ac862440219ffff038dfca9b7930c50c28f5314e7d0d34606db6e87c23b1d643f999addbc9d17fb9703f6ff9958b7cbaa6ad4dbcbaf7b2efb1ee04662aaa5969fc277d2fd5769f5e3be03414a26ba099e96457205ef2fd6bb06b8a3c30ef1ad787c7bd065c133c2d771f90219ffff031b5303bd1213d48cac9c5f82cd88edb31b6f33270c4cc921b4edecfb5a5b242103cef271ea24eed3c3270656c2e6b21a709d2b6e14ca0edbf51e266ecf2b1c789d03ee234a060df42c62550e74f12615128258fb507768d9e2558a29cbbe369f2288032a6772ff42657f27d04b7c6e152868ff41ffc77d232f3f73f011cc3a5ba0c56c03ebcdddfd942b780a8c784c963c75a5aa3c483fb50b7bcf688b149c2697013fad03056e0abd05f83cc99541a1af84e4f6d698bb712f25d4cf52e9c830c6bc75cdfc034d77157a98499a5cd369517a6b1f3ee1b2558e18b16fc7edbf32eaddae45fb07035056dc149770d425e5142316e7fcbffa9208674659c7408b0df12fb5abe141a2032ab827c9823bc67510a06ed799580d7b8ceb34d68a279dee27135cf5269f09dc0373cfc868e7e87781f57660d10c73bc04999b8eca58357f4182e963e8739bb313038175df1295014eae18b205f97353ffef60cb3a465a66baa523d42f8429938f2f038de3ab34753786e2a2b29bfeaa8a7fc0b15c2a194de2c2f687f0bd7f96e1958b039104726e019624f4819b5279d1c5439699e8451a2567cc5b46f8956305d74240035b6b074cb379c5e831ea0618a027572c728a3d59eb0a4da07461a69a206df8fc0383fbff50131e130a110d4a762ca5b5837c85b22bb2dd1353e5a50a87ec0a20d50219ffff038c491a585d48a328c9e8b93e76afe0d505d8f9d845a57f23f6e39dbb4c5fcd0b0219ffff032af01f90f593f1bdea8e8afdd710d513e69fe9afc443f835d5377f147f7b812303d8d79d9599df7b546b1b6148715529ca27ada3a6932b34dfae5c95b64219dce003415f9a953b67cf4c1d01ac170fc041b39cd8515fe0bf6a600ce5801ec03c46cb037ce84e0ffc7c0fb1b01ee631636b992e10ccf7e05ec5f779b05db668c2705076035bf076ebac69273b4b3c81905e19e321b01658caa63bf03cc608a447b510d86d032fa0f574ae2831ff936b7db484c128de927f0e2116688d9ce7d99643c53e262303a3ae74aa74bceb700ecfac7d031c65848555e1b3561ec17d75fceaa8af2a475303616231ff8cbc53e1156c48b28946092b9967983c84ab5f16a9beda3a7f8345b9038bf22589d117fb461440cb910d497f50ebee1a1e71f4d26cbc818884c0ab37590342088a1e92895ec5fc178454e29df59f6f7be2bf0a7e1281e7eaeab541b5159a03075ca22b06e2e8624adcbe25487168fe952d9af3b7685759628dc9bbe0758e3d033a61f96ea99eae9f05e3fc5398116a3dbfec740c027b75c91932410b14224f2b03d40c8329fd6c48622404edd24f959a6b10d9947edba4aaa5041345d3bb8959c103bd620c35d96e2dce8a52cb4f558e247a5f844c8b810491eafe74c221f1574d58033ee06827583344536bef6883e63dc09929d001ac99b154331d9013520812f129037d371a8f80bfad0c5c1554e63291a67e283aae518597a9fb85ae2479ae7ddf1803e7a46a50b4e73f36fc72182eaa66ee9e13ac4e5d3d9b4db6c6847e82561cb9fd034d0fd4824da5dce407fa58432e5f504b6cc1d3c1d0b0b4dc1788ce952b16a46903742c1728e9256bcff52a21fc1de187d825642c5b91c4e6af35905a8f6896abce034b3d18390fdd4a954298a4ea671a5290c830bd26f1123922ead621033fc65e8403bf91c162478b3ba0f55acf1f1b4b3130e38854edba330eff757d8155c3380f05038ce93826df67ebfdec37b1eebf7c4f8dcccbb3a5712371e8c7e706dd5ae83bd903d83b8712dd1e0f70486dedc35952219610124ed797f1d911501b6feaea3fefaf036cb7bb74ec2ac3570dc12fff6cd07d288e0c079d7d427a7fb7d7ff0eb082eac5034ef953b0676f28d98690551d95cbaa2d56579df76dfa594503cd2dff913a83f803ed5678a1a590a7e43bcecb2ed65bfe11507b8b97ef00304f7cfd1cd575f7961005581d025ce43e6e9cb5b5c93b482a82ad0f42ba477621084ef0d44863b21755040105581d02d1d3560497a86360fe216963a78211bdbee127559d1a374620a8c07d0c1a000e042f4901aa0f25ad38b4fa3602190820030fb0325521e573a2a02b2c1cefaf6183af9be0d2ab661611792e4b4fac8263ba05581e03b4e919222c1e6d2262335ae06eb2887e3c374afbbb17d724ed092510a0040103a00032ee46e2f48aba38b65ae1a8d53e21f3ff09bd73a820e05867d0ca64652c03b60c93913644f412a76b9a09cf494c3766abc041e92b5350f1ce489f2784d52a03ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e03e0cb2122407a22761239d30a18255488a472d33dcde21557d1ab349e6007011bffffffffffffffff032988b541509e0b7693f0a2b709761c3178e0f5ce9eacd222bb5676dec569b9bd031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e037ed997f0dc8790796a05c24625ac05b0824907bdf3359c7952ae953e7007011bffffffffffffffff05581e03b50963facf4872d94654a5aed7dfb891d4c42720dd789da7c1d43319200c0a4701803d5be7f80005581e03358afa995d4898c3f04587de4fb64dec53616f5c876ec4a3caaf064fe00c044701170f14e073e80219afc303231bf25deb1f6623010f971e6a39431d1f991f9d56348eba0a3767450d6f647a03931f73d3240305dd5ad3c9c8c0bbefd8cd240ffa84fa14f8a6e9d018b6d1457a032197a35af0f8e44f83e3b4aebdb0f96a052e2d6b8107deb59027356ea2df423f036c537d8f247db3ee5744b698db22393edb9e27ac9164d901c2e69cff1d50456603e122f64c7205ce64ae70b112b905b59a383c86c3d36a6052a62d7616044ce2080373402c913e42a4c3318571f9f0aaa973e273952e04e5f3f6cbce03656a08447d030af02f1f11ea51fe093e753f7e4aec8fbcd061ba1d373617989f0d972fab9b330379ade93a1c71a231ea0f313599058a770e2f3a8acdc6755279e438c8b9561e5e03e9089490edcda9e8ebd164597416fc32e25f2485ab8db2a663b81ebc05b1fe4c037ad7672f541d408b304154e82bdd0be3dc709819e57ab85542d0a195100f20840219ffff0326d7c9fd2f17e2dfe920c5e7708da0a9a0538c0a0c73bf4f27159cbf4f367bb203022e04e7c86cd7117a706f87d41cdefc2a2d6218634c066161c04c4799213f1a03b69cdd2aa05996a1ac7367b3070ebbcd4ca3626076c2f1649e3ff789c572762003f35e55be432cb7eb67407962978fe19987a3035580b5835ca0f4d76ae658ead10392e6d21c7ee00253d760c5cf0aab3cd5d862ff7c4038745755c52a856b24bbc903290a7205655470ed9557efb761514258f506369bd59a4b560fec84c6a787cf0d03a91b7585c99bbb3eb4d600fbed47c0e04bf29ef210fa4130403753c96e43f10a03b0376520b0b360a4239166fc4fac388ad1328610146aa4478654b2f6c19a696e033a60d86b4f8182c7bb235b712bd12c709584df20bc6ec1747da446e23b0cefcb0219ffff03a917b0912cd0661d04f0df3b45b48ebd7869a75b18cbb64090df5bca066fe273036d1665aaad72367aee1ccbdb5a20c01987abe7155ce933da1e1cfbc011da36c903223260b66f452fda5a1e7f083b970e869f4096e7c686b998829eec61a051008d035f500fe8b5fbdea63eb147cb18460a136721d77ea2f07d15958aa697a80523b503ebc8e0ca0b3a15f7a42742c983b60fbc357185d5ffba71f3570d5912ff994411039ae766b21231deb3d05d262fe6e270d10a902c5dc409c22811d4cb6aeb2c7d3e036875533af3dbb4889f3f8f25d1b7057387459f260ae9d80792ed7064b2e176d103cb47b07ed434f30ff6c9b061b6af764cc8a3bebfb3c1d7af482ccb3da1e284330334828a8a801a69ba74cf9688f9dafcb38f0c49deff62ab8b704a5deb44d9e9ac0363b129eb4c5ba7afd9dc5c4fb1fb7c45cbce19e33b640b409222ddc5c8f75b2d0219ffff0388f2453720421a47e806dacee2d2e8c2162b1caebc082225822f0011cd14be75037a6feec50dd4ba9f1604f44958a78a4591a94b9204c94e2fe43a748ead037b44035435adbef56e042dc51abde7da49e73f9221c4c27704d4c70ad0a3de45c8805803305e42ab92fae303497c6dba17a873fa0eefd09dc2549665cfb8f6e61df744a303bc96ec207f93b8a6cca8c1dd3416c916314bccf890e1aff454ea211f933072c20219ffff03a725c7bf16fb7a3a2e657198590152f55a6df8411ff5f98d8e93f3c9d555c49603d7fa81ced11ba00e173cff9cb6900d16437952379b53424350e98769c2152383034d0a4cf0c6b0e9da52ac3251181cd8409d5ea046a8916613394d07bea0e713ca033d265ddc4a6448568bd64557c5c241ad5947d60ff70a5a0484d8dc9f9ff4768e0345d52c29652d8400ade228580bd2e15245ce64038d6eb906efbdb481c0afda3403bd71c0362ce448ece1f456849cedb87ba4c92f7792ec91a6c7d0cd3c75d54a8303015b247257f251176cb48b50e7718ebe2536109e171142181b14abfae88f0418030fdb36e153ad538311c3c325b3b9b2df6df064b46902a41cfd594b36313db96c03d4f4c64c5c41cbd43ae57a93f1a6145ada33e041d6a0c3998b553638b413f667031191e926153c437c568cbfe0774f65031daeae0b48fdecc7a8f215f6def1b17303d194ff02ccad744b5752e620f17a994903c77dcc3cdd65d4a8134bb950a5b97f030922783f29085477240d1bae8830f18d7bc9f88d4952fe05a117f4806f3b977403d57403dc04c761c8a6f57c5342ac30c9cd0d18c5990845e0f893ca5c6d95ba5103bce58ccc0a8371b27dc7e71013b6ebf7ad01c8e2070ed7da2dcc258b5b5b7fd40366c27da8187a18239af3c65cd57cf5ff7f4c4d2bcf756482eda9675bb2359e8003cacb821303f99e5824ef0abdd0d0f64878e58b1e391d7598daeb6b2ee8ce380903865d2297d1cbd9c5007ff44888c25bceab9d8a3c2265e90ddcd934a9c1a17791030b313e6fc69f0e42415ec429aa83f4b1720eef7811a500d0731e0876165b4e6705581e03d9bacddb3bc4fc89f99090589fa72accb6a0cf15b48897f63ce20c05c00401034274b4ad3012b728f37e13f8f2d738800d7554079bfd318c4e8ebe8bd4cf6a8e03a15e01308a0d5bef00b208eb1c58375f7608fde0aecd3276b5076ac957bc057605581e031e810d2ecc9658b2c821e01bfa4730d330b7ce329f0ff32ce840664cc007011bffffffffffffffff03ba47733ae69fc133b38e8479a4deebfe1f9159f7858994b5b76dafe14c9c4b4705581e03346ee00793b023840cc7435ae4b3e47c23262907ff66ca6629d533cf20040105581e03f03c94c81a1dc2926878119917f3555df4f071aaf2c153638bb89344d00c0145023ef6764c05581e035f0d200dee374048def25111c57102624257c7cd01f2d6885333a65c70040105581e03d294f2fdf747bfe17ef533aa5cd3b1ca243236c0693804ce1c37ff1f800c1a007df8224a02b62f70cc3b3fe989b305581e034a2d12e7961da343b2f1ca597d71e23466b4ba001c1195f9fb46464fc00c02465573d601280005581e0341c03158b993f5a3cfc507a67470dd681b7f4f62dcfd145b440d03c490040205581e03e69794186451c6f2473184d90f76a0d9aa4b53654d7b2dec91675ffb100c014743779d6ef68be003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e033a687893ee2d03d12b30ad932620f0ad2417cf1ab6df2a58e2eec7a42007011bffffffffffffffff0219d1df0324813050aced2956bb4c810ba0aab57d0ae4eb839cebbb8aa86cf07a1c3778cb03059c931d90fed26045f603bf9e37c5bab326e7c62a52720043ffbdad55352e77038cdcbdaa37c747512fc715ef63741859d73a2d7255ff49140daed8bceca9b3cc035fad8db80e7ae44ecd9c4c6ea67c6f136975c6f992ab3557231ef3b26e71843e035a14622d7c40527dea4e1334c6f990cb3e4f0a418a6b805afcbe53ee79f7b9bf03cbd6e73b232b3fa26bdbe6bf0cf333ff6288fa323296b9cf618a05922068dfbe0351dd32b8b5bc75510e53110a5640ce9735b259dce779617f0e6435db882a63c90328c5e9ddda0d0de43208856e4db67f524552ce9c18d50dbe072a1921e535589003d56f88cedbd9f80e029346c7843af53c5e6cb590e27c51191eae358bf5e6f6e803e7b5ec12846dcc6bda0f897deccf435dad690357911b4f8ae6fc1e6ec2c791450219ffff036e2aee94f6fec5df211bbfe8566d8f3bf6a2da492b79dac6e77a3f8d1588344703bf04b7045103e9582371cbdfe315458258040a743ec7a77f341304f969763cea031e914408ccebda2c7006740b8af7a2ed196ce744c248fe1ea5138343b357e22903b4f43c7a4af6a7ad71d18fdc0a124b7643f592cd0c1009bed02492ed6c938ac3039491da24c151c4ef2082a58bb0312bbb5796e0f52f33f83679e7f9b8946a6061034d93338eb2dfd527e753939a0c51ba72724d2d89f5b9c2ea166469c9ec47aedf035a739a6abf4a53ea667f4c83a15c8b4a56ef1102660e7325d7760abcaef4d7ed038672f09e3c7e6ba6bdec20163eabdf404959f0581002e4c7db3b12767a9c0cbc03f8e76244a4c3cddcb6cb13c4577250ffc2c69eba4f419d32937fff12c292592303130702b857ddc9689e26a47df010277e48b37914c23f4f88068a2c3d15dd35aa033d058c54f2c3fc813e72fd1fa037abe311119402bc3199e439b76a4b06111a220388b9e7c436e9d0f5b3a3c2c596fd9f16868f20306c1646b96ade13476fae0032039fc0671cfba921f3fe06cc095d3d5d5edba2fee7f9456d164eaf40cb589a8cf50219ffff03560162130881ac84ca65f1ff3c204b5ae6a847c237841bd0cc1b793003898a44036e7b637ce126b64c38e413817373e8755b7cbed2d932b957caa3795b28c69e1403f8a2736441e03b0107fb22d2deda460854cd23ae7e4482f6d2da116d8bcf1bd903c54f0bf5df80d03b66d440e6829f39ed1b7f76b7792ddb7c74296125fc6bb8490219ffff03c85f862b6857926d23ddaa6f778862a5d98cc5ede292cda85db27940c1c97e0603d73d51861d852461b894d91ea3abd7f5ddbb59c39e542110e414de7a0c018dfe03161ba8a802fc05e2699948348abaa596cf52a482b7713460a8ed065412ac42de03a27cce826348421226b7330896246d8baffdd5b61ee9e46656cc2ab228387cb20339f0d46e1a51c03334df36a2553b79d9498fd07d6f47b4b560239f6088de871a0395554c6d529922b41975dbcbb81cff3b301cb8b353747e6caefcb6ca2ee90dad032b33d97d98bc59040773de12b0e1f92ff503c13f4291be973a33c4c5710e35e7030a37cea005e4dfae801bfad1ced6fc2bac2310722e37ffadcff03fbf2ec34de2036d92508ed727707e7e57c3e8c99c1731888933f0164d9b329d6a75a1afe9261d03c3e14aaeba26b2a297441343e211568fbac0dfcf2862dfce35eb183d6a231d8d03595a4df853811c810bf1561c0b284cb367ba8fa0daac41046bcb3ba3a6979f3603e8297472ac940abb094cbc1f9a045590bdbbf584cb073ca9b0e699524d7824b803826e53475806383b27cbb116bcac37fdd925e9ed172c034d548018c9386bc6c60350fe304f02c8bdf9035fd98b3e1187b64060fe2a41c30935f2caeb1abe91db3e03f063883975e134c6e1e09290721e99a78bd735ece4774e0d0566212f38a4fff0034fa73be6abf10a4dddd6587a7d4b891ead12c2528f4d8065ceacee936e26ad2303f53e6827fd43bda29716a7699b8e8d514c329e9e8058950e7869206ec5dbaeb5034828d8fe315e9fb8736228f814efa16a1b667b752744c40aadd04af5e1f48322033b0b2101a3433bbfbc0aa58e678f06f160894c506d790a9683c952c435beb8480378df17cd73ebf897dbd6a2f4fe7b9087d1880df2ec800c77859845bf71aab6f203ae63df916edfb53fe2cfbe846d07d58e6c4f595e533c99ed71ccc476e67a24e603a638075af66954af701bb3dddd40fea8ffb3a61a3f61b6132f585730c5c5349805581e0305aee831767d119a328513e97289e085e9f86e4bf3c49f5e39838be280040305581e033d4ea9f8fc76d70111fb298a13a2e323c80bce66f8cd8195976c836410040203197506d6551b948e13201746f78ba7bec7c6404eb9804b477e6203f31a4b9e660605581e034787e03548a40f48e8964c42e493bc340cc70a1295e959d3d8854cfc3007011bffffffffffffffff03078c00877d108ace356019920b6f3975ec71482b8b564f87f68fab8b765aaf9405581e03b7b706a10099a372c3b9a32a6044410f01168936866a2566f3c9eee8000c02471c11764b30512003f051fbee18905dac2861f15d650a6e1e1be98ee6f3ca28e9b7cc8aa04fedc2c40343a7c84a777834f1d58e7542561b4a76aceb6ae4d66de8dd8b876cca9fc13ad704594311608060405234801561000f575f80fd5b5060043610610184575f3560e01c80637f9d22fe116100dd578063bfec346c11610088578063dbe3352a11610063578063dbe3352a14610386578063f25cdfe314610399578063fee033bb146103ac575f80fd5b8063bfec346c1461034d578063cf2b5aa614610360578063cfc71c2b14610373575f80fd5b8063a008fd15116100b8578063a008fd1514610301578063acccdd5e14610314578063b590104e14610327575f80fd5b80637f9d22fe146102c857806399d76eb1146102db5780639ea428a6146102ee575f80fd5b8063331aaf9e1161013d5780635cdeece6116101185780635cdeece61461028f57806365c2cd91146102a25780637e32d241146102b5575f80fd5b8063331aaf9e14610243578063353ad881146102695780635599dfd71461027c575f80fd5b8063225cd1eb1161016d578063225cd1eb146101f5578063228b13181461020a57806323dc865814610230575f80fd5b80630a3ec799146101885780632059d9e2146101ae575b5f80fd5b61019b610196366004612ec4565b6103bf565b6040519081526020015b60405180910390f35b7f000000000000000000000000612e2daddc89d91409e40f946f9f7cfe422e777e5b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a5565b610208610203366004612f53565b610511565b005b7f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb76101d0565b61020861023e366004613153565b610521565b7f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f6101d0565b6102086102773660046131de565b610bb3565b6101d061028a36600461326e565b610cb4565b6101d061029d36600461330a565b610de1565b6101d06102b03660046133a5565b610e5f565b6102086102c336600461345c565b610f8e565b6102086102d63660046134dc565b6110bd565b6102086102e936600461352c565b6111b2565b6101d06102fc3660046135f5565b6111d4565b61020861030f366004613691565b61123f565b61019b61032236600461370b565b611267565b7f00000000000000000000000053f451165ba6fdbe39a134673d13948261b2334a6101d0565b6101d061035b366004613859565b6115d9565b6101d061036e3660046138ad565b6116f4565b6101d0610381366004613925565b611810565b61020861039436600461398c565b61188c565b6101d06103a73660046139b8565b6119a6565b6102086103ba366004613a30565b611afb565b5f606087156104f15760408051600180825281830190925290816020015b60408051606080820183525f8083526020830152918101919091528152602001906001900390816103dd57905050905060405180606001604052808981526020017f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb773ffffffffffffffffffffffffffffffffffffffff16638abf92c98b6040518263ffffffff1660e01b815260040161047991815260200190565b602060405180830381865afa158015610494573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b89190613ad5565b61ffff16815260200160405180602001604052805f815250815250815f815181106104e5576104e5613af0565b60200260200101819052505b6105028b8b8b8a8a8a8a8a89611267565b9b9a5050505050505050505050565b61051c838383611b1b565b505050565b8315801561052e57508215155b15610565576040517f1a8a2c1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83158015610571575085155b156105e7578051156105af576040517f099879b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81156105e7576040517f69a1d31600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b851580156105f457508415155b1561062b576040517fbf2c1df000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f2ab2b52b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152602482018990525f917f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f90911690632ab2b52b90604401602060405180830381865afa1580156106c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106e49190613b1d565b90505f81156107a2576040517f9e79b41f000000000000000000000000000000000000000000000000000000008152600481018390527f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f73ffffffffffffffffffffffffffffffffffffffff1690639e79b41f9060240161010060405180830381865afa158015610777573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079b9190613b3f565b60e0015190505b6040517f4635256e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b81166004830152602482018b90525f9182917f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f1690634635256e906044016040805180830381865afa158015610836573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085a9190613be7565b91509150825f14801561086b575089155b8015610894575073ffffffffffffffffffffffffffffffffffffffff8216158015610894575087155b156108cb576040517f75ce98b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89831480156109015750871580156108f7575073ffffffffffffffffffffffffffffffffffffffff8216155b8061090157508681145b15610a25575f6109128d8d88611bd2565b1561091b575060015b6040517f7e04379500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8e81166004830152602482018e90527f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f1690637e04379590604401602060405180830381865afa1580156109ac573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d09190613b1d565b91508682146109e8576109e48d8d89611cce565b5060015b80610a1f576040517f3c574a9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50610ba5565b8915610a55578215610a4757898314610a4257610a42848b611da2565b610a55565b610a538c8c8c8c611e5a565b505b8715610a6d57868114610a6d57610a6d8c8c89611f59565b610a788c8c87611bd2565b508780610a8457508915155b15610b58576040517f7e04379500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8d81166004830152602482018d90525f917f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f90911690637e04379590604401602060405180830381865afa158015610b1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b429190613b1d565b9050868114610b5657610b568d8d89611cce565b505b89158015610b6557508215155b15610b7357610b738461202d565b87158015610b96575073ffffffffffffffffffffffffffffffffffffffff821615155b15610ba557610ba58c8c6120e6565b505050505050505050505050565b5f6040518060600160405280888152602001885f03610bd2575f610c7f565b6040517f8abf92c9000000000000000000000000000000000000000000000000000000008152600481018a90527f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb773ffffffffffffffffffffffffffffffffffffffff1690638abf92c990602401602060405180830381865afa158015610c5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7f9190613ad5565b61ffff1681526040805160208181019092525f81529101529050610ca98989888888888888610521565b505050505050505050565b5f610dd984604051806080016040528086602001358152602001866040013581526020018660600135815260200186608001358152506040518060600160405280875f01358152602001875f01355f03610d0e575f610dbb565b6040517f8abf92c9000000000000000000000000000000000000000000000000000000008152883560048201527f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb773ffffffffffffffffffffffffffffffffffffffff1690638abf92c990602401602060405180830381865afa158015610d97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dbb9190613ad5565b61ffff1681526040805160208181019092525f8152910152856119a6565b949350505050565b5f818015801590610df65750610df681421190565b15610e2d576040517fbcb9700400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e3787876121b3565b9150610e4482865f6122ef565b835115610e5557610e5582856123dd565b5095945050505050565b5f610f858585604051806080016040528087602001358152602001876040013581526020018760600135815260200187608001358152506040518060600160405280885f01358152602001885f01355f03610eba575f610f67565b6040517f8abf92c9000000000000000000000000000000000000000000000000000000008152893560048201527f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb773ffffffffffffffffffffffffffffffffffffffff1690638abf92c990602401602060405180830381865afa158015610f43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f679190613ad5565b61ffff1681526040805160208181019092525f8152910152866111d4565b95945050505050565b5f6040518060600160405280885f01358152602001885f01355f03610fb3575f611060565b6040517f8abf92c9000000000000000000000000000000000000000000000000000000008152893560048201527f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb773ffffffffffffffffffffffffffffffffffffffff1690638abf92c990602401602060405180830381865afa15801561103c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110609190613ad5565b61ffff16815260200160405180602001604052805f81525081525090506110b38860405180606001604052808a6020013581526020018a6040013581526020018a60600135815250888888888789611afb565b5050505050505050565b5f6040518060600160405280888152602001885f036110dc575f611189565b6040517f8abf92c9000000000000000000000000000000000000000000000000000000008152600481018a90527f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb773ffffffffffffffffffffffffffffffffffffffff1690638abf92c990602401602060405180830381865afa158015611165573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111899190613ad5565b61ffff1681526040805160208181019092525f815291015290506110b38887878787878761123f565b6111bd8484836122ef565b8151156111ce576111ce84836123dd565b50505050565b5f8180158015906111e957506111e981421190565b15611220576040517fbcb9700400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61122b8787876124a1565b845190925015610e5557610e5582856123dd565b61124d878787878787612591565b80511561125e5761125e87826123dd565b50505050505050565b5f8781036112a1576040517fa9d004a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600182511180156112b3575081518814155b156112ea576040517fbee0394e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b841580156112f757508315155b1561132e576040517f1a8a2c1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b86156114e6576113588a8a8a5f81811061134a5761134a613af0565b905060200201358989611e5a565b90508415611383576113838a8a8a5f81811061137657611376613af0565b9050602002013586611f59565b6113f98a8a8a5f81811061139957611399613af0565b9050602002013584515f036113da5760405180606001604052805f81526020015f61ffff16815260200160405180602001604052805f815250815250611bd2565b845f815181106113ec576113ec613af0565b6020026020010151611bd2565b5060015b888110156114e0576114298b8b8b8481811061141b5761141b613af0565b905060200201358a8a611e5a565b508515611453576114538b8b8b8481811061144657611446613af0565b9050602002013587611f59565b6114d78b8b8b8481811061146957611469613af0565b9050602002013585515f036114aa5760405180606001604052805f81526020015f61ffff16815260200160405180602001604052805f815250815250611bd2565b85516001036114c557855f815181106113ec576113ec613af0565b8584815181106113ec576113ec613af0565b506001016113fd565b50611596565b851561151e576040517fbf2c1df000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84611555576040517f75ce98b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b88811015611594576115758b8b8b8481811061144657611446613af0565b61158b8b8b8b8481811061146957611469613af0565b50600101611557565b505b5f5b888110156115cb576115c38b8b8b848181106115b6576115b6613af0565b905060200201358661267a565b600101611598565b509998505050505050505050565b5f610dd9846040518060600160405280866020013581526020018660400135815260200186606001358152506040518060600160405280875f01358152602001875f01355f03611629575f6116d6565b6040517f8abf92c9000000000000000000000000000000000000000000000000000000008152883560048201527f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb773ffffffffffffffffffffffffffffffffffffffff1690638abf92c990602401602060405180830381865afa1580156116b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d69190613ad5565b61ffff1681526040805160208181019092525f815291015285611810565b5f610f8585856040518060600160405280876020013581526020018760400135815260200187606001358152506040518060600160405280885f01358152602001885f01355f03611745575f6117f2565b6040517f8abf92c9000000000000000000000000000000000000000000000000000000008152893560048201527f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb773ffffffffffffffffffffffffffffffffffffffff1690638abf92c990602401602060405180830381865afa1580156117ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f29190613ad5565b61ffff1681526040805160208181019092525f815291015286610de1565b5f818015801590611825575061182581421190565b1561185c576040517fbcb9700400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611865866127c3565b915061187282865f6122ef565b8351156118835761188382856123dd565b50949350505050565b61051c836040518060600160405280856020013581526020018560400135815260200185606001358152506040518060600160405280865f01358152602001865f01355f036118db575f611988565b6040517f8abf92c9000000000000000000000000000000000000000000000000000000008152873560048201527f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb773ffffffffffffffffffffffffffffffffffffffff1690638abf92c990602401602060405180830381865afa158015611964573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119889190613ad5565b61ffff1681526040805160208181019092525f8152910152846111b2565b5f8180158015906119bb57506119bb81421190565b156119f2576040517fbcb9700400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84606001515f03611a2f576040517fa87860d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408501515f819003611a3f5750425b611aae611a4c8880613c13565b611a5960208b018b613c13565b611a6660408d018d613c13565b60608d0151611a759089613c74565b7f00000000000000000000000053f451165ba6fdbe39a134673d13948261b2334a8f6060016020810190611aa99190613cb2565b6128fa565b9250611ae0836040518060600160405280895f015181526020018960200151815260200189604001518152505f6122ef565b845115611af157611af183866123dd565b5050949350505050565b611b0a888888888888876129d5565b8151156110b3576110b388836123dd565b6111ce7f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb7848484604051602401611b5493929190613cdd565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7a1b249000000000000000000000000000000000000000000000000000000000179052339190612a9c565b80515f9015611bee57611be6848484612abc565b506001611cc7565b6040517f8f40f37800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590523360448301525f917f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb790911690638f40f378906064016040805180830381865afa158015611c88573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cac9190613d57565b5090508015611cc557611cc0338686612b82565b600191505b505b9392505050565b60405173ffffffffffffffffffffffffffffffffffffffff8416602482015260448101839052606481018290526111ce907f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f90608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4eb1231700000000000000000000000000000000000000000000000000000000179052339190612a9c565b604051602481018390526044810182905261051c907f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f90606401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f03ec16d700000000000000000000000000000000000000000000000000000000179052339190612a9c565b60405173ffffffffffffffffffffffffffffffffffffffff851660248201526044810184905260648101839052608481018290525f908190611f39907f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f9060a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb3a4074e00000000000000000000000000000000000000000000000000000000179052339190612a9c565b905080806020019051810190611f4f9190613b1d565b9695505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff8416602482015260448101839052606481018290526111ce907f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f90608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f798bac8d00000000000000000000000000000000000000000000000000000000179052339190612a9c565b6120e27f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f8260405160240161206491815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f21506fff00000000000000000000000000000000000000000000000000000000179052339190612a9c565b5050565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261051c907f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f90606401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2156193500000000000000000000000000000000000000000000000000000000179052339190612a9c565b5f806122d97f000000000000000000000000612e2daddc89d91409e40f946f9f7cfe422e777e6121e38680613c13565b6121f06020890189613c13565b6121fd60408b018b613c13565b61220d60808d0160608e01613d85565b7f00000000000000000000000053f451165ba6fdbe39a134673d13948261b2334a8d60800160208101906122419190613cb2565b8d60405160240161225b9a99989796959493929190613e87565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f5784803100000000000000000000000000000000000000000000000000000000179052339190612a9c565b905080806020019051810190610dd99190613f23565b81516020830151604080850151905173ffffffffffffffffffffffffffffffffffffffff8716602482015260448101939093526064830191909152608482015260a481018290526111ce907f00000000000000000000000053f451165ba6fdbe39a134673d13948261b2334a9060c401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0853764a00000000000000000000000000000000000000000000000000000000179052339190612a9c565b61051c7f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb7825f015184846020015185604001516040516024016124239493929190613fa9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2855aa4e00000000000000000000000000000000000000000000000000000000179052339190612a9c565b5f81606001515f036124df576040517fa87860d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408201515f8190036124ef5750425b61255f6124fc8680613c13565b6125096020890189613c13565b61251660408b018b613c13565b60608a01516125259089613c74565b7f00000000000000000000000053f451165ba6fdbe39a134673d13948261b2334a8d60600160208101906125599190613cb2565b8d612c65565b9150611cc5826040518060600160405280865f015181526020018660200151815260200186604001518152505f6122ef565b60405173ffffffffffffffffffffffffffffffffffffffff8716602482015260448101869052606481018590526084810184905260a4810183905260c4810182905261125e907f00000000000000000000000053f451165ba6fdbe39a134673d13948261b2334a9060e401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f62c4655200000000000000000000000000000000000000000000000000000000179052339190612a9c565b60405173ffffffffffffffffffffffffffffffffffffffff8416602482015260448101839052606481018290525f908190612752907f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f90608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4eb1231700000000000000000000000000000000000000000000000000000000179052339190612d52565b91509150811580156127ae57507fe5c3f2630000000000000000000000000000000000000000000000000000000061278982613fe7565b7fffffffff000000000000000000000000000000000000000000000000000000001614155b156127bc576127bc81612e02565b5050505050565b5f806128e47f000000000000000000000000612e2daddc89d91409e40f946f9f7cfe422e777e6127f38580613c13565b6128006020880188613c13565b61280d60408a018a613c13565b61281d60808c0160608d01613d85565b7f00000000000000000000000053f451165ba6fdbe39a134673d13948261b2334a61284e60a08e0160808f01613cb2565b60405160240161286699989796959493929190614036565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd061a9f200000000000000000000000000000000000000000000000000000000179052339190612a9c565b905080806020019051810190611cc79190613f23565b5f806129bf7f000000000000000000000000612e2daddc89d91409e40f946f9f7cfe422e777e8c8c8c8c8c8c8c8c8c604051602401612941999897969594939291906140bd565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f189267b200000000000000000000000000000000000000000000000000000000179052339190612a9c565b9050808060200190518101906105029190613f23565b8551602087015160408089015190516110b3937f00000000000000000000000053f451165ba6fdbe39a134673d13948261b2334a93612a22938d938c908c908c908c908c9060240161413e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff59488d9000000000000000000000000000000000000000000000000000000001790523391905b60605f612aaa858585612d52565b9250905080611cc557611cc582612e02565b6111ce7f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb7825f0151858585602001518660400151604051602401612b049594939291906141a3565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f39fa3f4800000000000000000000000000000000000000000000000000000000179052339190612a9c565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526111ce907f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb790606401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f93251fba0000000000000000000000000000000000000000000000000000000017905273ffffffffffffffffffffffffffffffffffffffff86169190612a9c565b5f80612d2c7f000000000000000000000000612e2daddc89d91409e40f946f9f7cfe422e777e8d8d8d8d8d8d8d8d8d8d604051602401612cae9a999897969594939291906141f2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa973d0e800000000000000000000000000000000000000000000000000000000179052339190612a9c565b905080806020019051810190612d429190613f23565b9c9b505050505050505050505050565b5f60608373ffffffffffffffffffffffffffffffffffffffff168386604051602001612d7f929190614277565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052612db7916142c0565b5f604051808303815f865af19150503d805f8114612df0576040519150601f19603f3d011682016040523d82523d5f602084013e612df5565b606091505b5090969095509350505050565b805115612e125780518082602001fd5b6040517f3cfe059f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b73ffffffffffffffffffffffffffffffffffffffff81168114612e44575f80fd5b5f8083601f840112612e78575f80fd5b50813567ffffffffffffffff811115612e8f575f80fd5b6020830191508360208260051b8501011115612ea9575f80fd5b9250929050565b80358015158114612ebf575f80fd5b919050565b5f805f805f805f805f6101008a8c031215612edd575f80fd5b8935612ee881612e47565b985060208a013567ffffffffffffffff811115612f03575f80fd5b612f0f8c828d01612e68565b90995097505060408a0135955060608a0135945060808a01359350612f3660a08b01612eb0565b925060c08a0135915060e08a013590509295985092959850929598565b5f805f60408486031215612f65575f80fd5b83359250602084013567ffffffffffffffff80821115612f83575f80fd5b818601915086601f830112612f96575f80fd5b813581811115612fa4575f80fd5b8760208260061b8501011115612fb8575f80fd5b6020830194508093505050509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561301b5761301b612fcb565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561306857613068612fcb565b604052919050565b61ffff81168114612e44575f80fd5b5f6060828403121561308f575f80fd5b613097612ff8565b9050813581526020808301356130ac81613070565b82820152604083013567ffffffffffffffff808211156130ca575f80fd5b818501915085601f8301126130dd575f80fd5b8135818111156130ef576130ef612fcb565b61311f847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613021565b91508082528684828501011115613134575f80fd5b80848401858401375f8482840101525080604085015250505092915050565b5f805f805f805f80610100898b03121561316b575f80fd5b883561317681612e47565b975060208901359650604089013595506060890135945061319960808a01612eb0565b935060a0890135925060c0890135915060e089013567ffffffffffffffff8111156131c2575f80fd5b6131ce8b828c0161307f565b9150509295985092959890939650565b5f805f805f805f80610100898b0312156131f6575f80fd5b883561320181612e47565b97506020890135965060408901359550606089013594506080890135935061322b60a08a01612eb0565b925060c0890135915060e089013590509295985092959890939650565b5f60808284031215613258575f80fd5b50919050565b5f60a08284031215613258575f80fd5b5f805f60e08486031215613280575f80fd5b833567ffffffffffffffff811115613296575f80fd5b6132a286828701613248565b9350506132b2856020860161325e565b915060c084013590509250925092565b5f60408284031215613258575f80fd5b5f606082840312156132e2575f80fd5b6132ea612ff8565b905081358152602082013560208201526040820135604082015292915050565b5f805f805f60e0868803121561331e575f80fd5b853567ffffffffffffffff80821115613335575f80fd5b61334189838a0161325e565b96506020880135915080821115613356575f80fd5b61336289838a016132c2565b95506133718960408a016132d2565b945060a0880135915080821115613386575f80fd5b506133938882890161307f565b9598949750929560c001359392505050565b5f805f8061010085870312156133b9575f80fd5b843567ffffffffffffffff808211156133d0575f80fd5b6133dc88838901613248565b955060208701359150808211156133f1575f80fd5b506133fe878288016132c2565b93505061340e866040870161325e565b9396929550929360e00135925050565b5f8083601f84011261342e575f80fd5b50813567ffffffffffffffff811115613445575f80fd5b602083019150836020828501011115612ea9575f80fd5b5f805f805f805f610120888a031215613473575f80fd5b873561347e81612e47565b965061348d8960208a01613248565b955060a0880135945060c0880135935060e088013567ffffffffffffffff8111156134b6575f80fd5b6134c28a828b0161341e565b989b979a5095989497959661010090950135949350505050565b5f805f805f805f60e0888a0312156134f2575f80fd5b87356134fd81612e47565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b5f805f8060c0858703121561353f575f80fd5b843561354a81612e47565b935061355986602087016132d2565b9250608085013567ffffffffffffffff811115613574575f80fd5b6135808782880161307f565b9497939650939460a0013593505050565b5f608082840312156135a1575f80fd5b6040516080810181811067ffffffffffffffff821117156135c4576135c4612fcb565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b5f805f805f610100868803121561360a575f80fd5b853567ffffffffffffffff80821115613621575f80fd5b61362d89838a01613248565b96506020880135915080821115613642575f80fd5b61364e89838a016132c2565b955061365d8960408a01613591565b945060c0880135915080821115613672575f80fd5b5061367f8882890161307f565b9598949750929560e001359392505050565b5f805f805f805f60e0888a0312156136a7575f80fd5b87356136b281612e47565b96506020880135955060408801359450606088013593506080880135925060a0880135915060c088013567ffffffffffffffff8111156136f0575f80fd5b6136fc8a828b0161307f565b91505092959891949750929550565b5f805f805f805f805f6101008a8c031215613724575f80fd5b61372e8a35612e47565b8935985067ffffffffffffffff60208b0135111561374a575f80fd5b61375a8b60208c01358c01612e68565b909850965060408a0135955060608a0135945061377960808b01612eb0565b935060a08a0135925060c08a0135915067ffffffffffffffff60e08b013511156137a1575f80fd5b60e08a01358a018b601f8201126137b6575f80fd5b67ffffffffffffffff813511156137cf576137cf612fcb565b6137df6020823560051b01613021565b81358082526020808301929160051b8401018e10156137fc575f80fd5b602083015b6020843560051b8501018110156138455767ffffffffffffffff81351115613827575f80fd5b6138378f6020833587010161307f565b835260209283019201613801565b508093505050509295985092959850929598565b5f805f60c0848603121561386b575f80fd5b833567ffffffffffffffff811115613881575f80fd5b61388d8682870161325e565b93505061389d8560208601613248565b915060a084013590509250925092565b5f805f8060e085870312156138c0575f80fd5b843567ffffffffffffffff808211156138d7575f80fd5b6138e38883890161325e565b955060208701359150808211156138f8575f80fd5b50613905878288016132c2565b9350506139158660408701613248565b9396929550929360c00135925050565b5f805f8060c08587031215613938575f80fd5b843567ffffffffffffffff8082111561394f575f80fd5b61395b8883890161325e565b955061396a88602089016132d2565b9450608087013591508082111561397f575f80fd5b506135808782880161307f565b5f805f60c0848603121561399e575f80fd5b83356139a981612e47565b925061389d8560208601613248565b5f805f8060e085870312156139cb575f80fd5b843567ffffffffffffffff808211156139e2575f80fd5b6139ee88838901613248565b95506139fd8860208901613591565b945060a0870135915080821115613a12575f80fd5b50613a1f8782880161307f565b9497939650939460c0013593505050565b5f805f805f805f80610120898b031215613a48575f80fd5b8835613a5381612e47565b9750613a628a60208b016132d2565b96506080890135955060a0890135945060c089013567ffffffffffffffff80821115613a8c575f80fd5b613a988c838d0161341e565b909650945060e08b0135915080821115613ab0575f80fd5b50613abd8b828c0161307f565b92505061010089013590509295985092959890939650565b5f60208284031215613ae5575f80fd5b8151611cc781613070565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215613b2d575f80fd5b5051919050565b8051612ebf81612e47565b5f610100808385031215613b51575f80fd5b6040519081019067ffffffffffffffff82118183101715613b7457613b74612fcb565b8160405283519150613b8582612e47565b81815260208401516020820152613b9e60408501613b34565b6040820152606084015160608201526080840151608082015260a084015160a0820152613bcd60c08501613b34565b60c082015260e084015160e0820152809250505092915050565b5f8060408385031215613bf8575f80fd5b8251613c0381612e47565b6020939093015192949293505050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613c46575f80fd5b83018035915067ffffffffffffffff821115613c60575f80fd5b602001915036819003821315612ea9575f80fd5b80820180821115613cac577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b5f60208284031215613cc2575f80fd5b81356bffffffffffffffffffffffff81168114611cc7575f80fd5b838152604060208083018290528282018490525f9190859060608501845b87811015613d4a578335613d0e81612e47565b73ffffffffffffffffffffffffffffffffffffffff1682528383013560038110613d36575f80fd5b828401529284019290840190600101613cfb565b5098975050505050505050565b5f8060408385031215613d68575f80fd5b825191506020830151613d7a81613070565b809150509250929050565b5f60208284031215613d95575f80fd5b813563ffffffff81168114611cc7575f80fd5b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b5f8135613dfb81612e47565b73ffffffffffffffffffffffffffffffffffffffff1683526020820135368390037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1018112613e48575f80fd5b820160208101903567ffffffffffffffff811115613e64575f80fd5b803603821315613e72575f80fd5b60406020860152610f85604086018284613da8565b60e081525f613e9a60e083018c8e613da8565b8281036020840152613ead818b8d613da8565b90508281036040840152613ec281898b613da8565b905063ffffffff8716606084015273ffffffffffffffffffffffffffffffffffffffff861660808401526bffffffffffffffffffffffff851660a084015282810360c0840152613f128185613def565b9d9c50505050505050505050505050565b5f60208284031215613f33575f80fd5b8151611cc781612e47565b5f5b83811015613f58578181015183820152602001613f40565b50505f910152565b5f8151808452613f77816020860160208601613f3e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b84815273ffffffffffffffffffffffffffffffffffffffff8416602082015261ffff83166040820152608060608201525f611f4f6080830184613f60565b5f815160208301517fffffffff000000000000000000000000000000000000000000000000000000008082169350600483101561402e5780818460040360031b1b83161693505b505050919050565b60c081525f61404960c083018b8d613da8565b828103602084015261405c818a8c613da8565b9050828103604084015261407181888a613da8565b63ffffffff969096166060840152505073ffffffffffffffffffffffffffffffffffffffff9290921660808301526bffffffffffffffffffffffff1660a0909101529695505050505050565b60c081525f6140d060c083018b8d613da8565b82810360208401526140e3818a8c613da8565b905082810360408401526140f881888a613da8565b6060840196909652505073ffffffffffffffffffffffffffffffffffffffff9290921660808301526bffffffffffffffffffffffff1660a0909101529695505050505050565b5f61010073ffffffffffffffffffffffffffffffffffffffff8c1683528a60208401528960408401528860608401528760808401528660a08401528060c084015261418c8184018688613da8565b9150508260e08301529a9950505050505050505050565b85815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015261ffff8316606082015260a060808201525f6141e760a0830184613f60565b979650505050505050565b60e081525f61420560e083018c8e613da8565b8281036020840152614218818b8d613da8565b9050828103604084015261422d81898b613da8565b905086606084015273ffffffffffffffffffffffffffffffffffffffff861660808401526bffffffffffffffffffffffff851660a084015282810360c0840152613f128185613def565b5f8351614288818460208801613f3e565b60609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190920190815260140192915050565b5f82516142d1818460208701613f3e565b919091019291505056fea2646970667358221220ef823633c59944f9fda7d03be7077339ed1d5eed2fa96f09599e4d1b1a6ac3e364736f6c634300081700330605581d023563538bce079cbbd434dcdee24e67db4e8585ca936db11f43c64ddf070119431105581d020cf06bcd0d227634825f14810450967e67bc69c3f6777a02b91f37f20c014745bb1f0e66455805581d022139b07cc2c790406997b23f4107105af4a913e2c42f7a440d6c463d0401021960800219c5e403a948cd813efc6ac396b4a461fa7aaf2f05162f34f3bba9c334e29f1c4c12c9730336fa66f847d09cf2283f1fe987a8e612c5092f918f1e01eb713e55700e6cb47003ba937f0ef1611a4081bca27c0b2bacc261b7f94611ecff0f60a6b43f5992de850310802c356335a5ae3ff6c6806d9670b363279dc7282988d99bd3b3ed8c51d47f03cec9b471e0ec1ab561e18a50c52a1e0e20fc52f3e755100e352eb32b21e217b1035f76c2bd541f4859c9918c2f1f0fd674bbe4175aa059c8f84b22c30917d57b30036ef3d582d08fd812ef9b84a90241daa30c8b99f6b0a0657d87ec96fdd34bbecb03bb16cf6210b673c1c5037efa550157fd8b21dcc573419b3f5d674aa909d124f0033d2b2cecdcf0fac1763a043524b77f2412d5d23ac8c57a3a90acbac51e3ea98403283ad8456650e8eda52c90ae0ae9894146f20063c2cbc781f674294b07cb33ea030fd91717060b749a6cb24c935014f47af2fc60ffbcc9c61e911e76453d98e63303e60745294f82ae0b766be87959d8ceed0ad6bc0cd1c91c823ef9f17ba27a75710370352b273b14ce5e338f176547e8d3dae4f85bcba2a50ff047098d4a9466f46803e6e724f55f892f600a83185a781a0822381cf0bae7cc5fc7af475b876302d96803bc7e9c08dbf6d037cd8dd556ae23b9ce04a29e5df26ac848451c76510250a3770219ffff039194b94998e07d697a34c29cb5bd2614afa9645043bc0e9972f3b71a1688af5303945cec04e0365aa939b243f47925b83d71c4ccb0be36104a56827b084415b1a2035c23c7a1331406c6dd14e64742595be8a40c414c07d30b0afe02b1e9a478f153035b419fe242fb294cba01bc423f2d82482312be311fc508af881086b754a8c4ff0368420fcaf56d9cf2b2dd54b4573293a59a1cb0e7db5c133c96ea0b17f9d8b44e035e68692d9d094b475e55330940d09301f40469b5f56d6d10f3373035ffa6297c03d3c5d1e135c1de5242499ad665fec2e9741c9dba15b2b1ca2a237e80bde3a2aa03bcf78882b88c5cdcb34b9458e4a5d41dbabac2c879f30b7256876f7c6075378703a8ceb219952c62a06fd3ac2272c2cb4d9c609db811bd0a223ee5712ba2f35f730219ffff0219ffff034c03429bc48b3899d5c84dcbc6740993c233ab45f46934444b097b3aa9b228a60317b1528068612e15489f982d0e365612ece6163de6c736364712279032b35c03035216a54a9a4c6e8a89a47c0e636e9ddc88fbc318d0a4b329299faa509d3b1ad703345e11ef4e934ce6e04fcf3a6c804552092ae38521e1b5ab4a1293da7ecf0c880359dd899f65ed8abdae35005e843de4e0db247a66f297fadb00c34d5693329eeb035d1c0b90a6a7d92533f55b495d98f5e5f88fb422cd1ead3abc482222b98132d003b2351d15c10eccbdc575461a98a83bd3887291a21cd4daa09539325a470fd0bf03616c4fd0533da6129327f563ec6bbd5bb537a2310234f618134a9a80c322fbd40302b9f60fa389b7390278228b47255ca44bd5c7c17b9ac9ad76c03641a47c9f74039ca842a74e6efaab604d884765bd9bbfc4ce8bf2fc79862da06f1e8146d98dcf03f586c43fbc8f0b7f4795bc29684ab0a9f10ebff770f12921514df5d8b11cad020332e6e39fe88e75a356b0636f88e847058d71aa6e2e11c265afa5c59d0475f5c6037e207fdb89bb27a802cc346bcc0ab72ed3c4233b4b6539044fa891b6ffc3f57503d22f3e933116e9333d8ea8534d4cbaf2249e06ecfab727e64cdaf25b7b49451b0355e1ca12ebe380b9d34be27d4d9717b080f1b96e086ac5b8e75779773cff240403f99dd3f15aee43ac3d94358ab6f37a4db31fa565bc67f978a30b7dcc825de7110343c825de4c5c14a4903053208993624ec88f6a4c42d625270554ddeb9eb5b47e038c1aa8b454085fafb534e9ff6ff5dff7d0de0267c2871a89a1caeb57093f815003d3c4da71b530466ed231fb606b6a13f5c7e50f00ba92809a976ea3420993d90503c6283e041b93b948bd0c4c7ff17a23b9e8109e1b476f3ba851e0898ddada73fb03c2d98450dd2eca6bc120d4511e557f9dd11391237b8223fbb234b7caeb27c44703a3b7a31e7867e55ac447cac09196d87c387821f1b83a6dafb9072498005bbc3e03b9d44efea8e7997167bc282f1a859af0b86ff2ea4488b73689d123b1d957b15103f9f8bdad525c2ae5263c8c1ba51efefa959f4f5bac71ad33712fbe2ba629e61d03b691c4bf90a11633998ef6fb78cff0669e07f1ef2096ac48463076f26439c4cb036aad7d526436e3634476d6eca15ae368ed41a5f5565f65776ec28abfa87701dd03c4cc02b3de50df32d86ab7cc6a746a9c67d778feafb5569f7fac3c3acdb9c4550349beb348275d706879f820e7137676754f44b95bc7cf3c4235e11c941983643d03e0cc0664f194bdbc53f65979e43a25a52d06102264cab1f2000da4e5347db500030fae4c006c8648f1f8c58e3e69249221b7659d5353f27e9ec79cb810e9352656038ffe3cb9f93e506a45f3ba8334a24296716802cb4af5af99b7428a69e114ba1b032322b32d569d85591eacb90526cffcab3c0474b5b398ba87e77c50dd349c77c6037a9326d0b03c811fd54aec9ca49868b3509456e8daf42fc3c87a731d67b2df5c03a6b0ba791e0fee3dec3ee9aa075bab32ee8ba32a84b49580b8614f81118a0c02039d5a6be0af0c41afa854ecc5a49ee9e8e2e821e5b90ee13046be2056e51390a1038c6bba8e731e9ed23094a280a97d4ded38669dd1f1fdcdb93ac48dc2174a570b03585a1b01d51db97497068f617e08d46ed635b748a602cbb707e8860aa24cc0cc05581e039e4fdd57de623a4cd28c25dc373b892a3fd382624cc0d84ba78f4167200847378fec955c640005581e03a1fd6b018580c1a922a7453edb40262aeb6220713345a1ab9c7d04ac900c064706ba298ef5779505581e03148bc8bed07722d5945ef669880748e1ad56a88ae062d81e9615157af0040105581e03ed4a0d96e64965e3660a272c242c3ba5649c3aa4451e41d9a0a3ee9770040e05581d02e81dddb00056a2d84b4981b563a78c3a9da35f7ef4282cebb5af3ad40c014702aca6d29ebaf105581d0208254fa1f5d273e22547ee64b790ba71249a9d27e8e1d203718fac7a0c19017d4806734e30aaff0a330219040405581e0323f70c0f3a18e1d98723f6a15b87dae39149bb65eb3f0d66b0c6dd0ad0040205581e036eac34007704a43c006ed23b9d599037e8eb388ad41094f045b0752470040205581e03e9f295755a90c56bc33a807f3654b3195a41ea8e04e5185210ddf99dc0040205581e03fb832db69cb606578a86ca3bb549b1761a1c4c181fabf4c667a6ce91100c034661c6cecb35f8032df39c0062882ba634fb24c89e7f9871ecef10a6e6a6e79a336f6ed463d5c942031aa593b75e9badddf988da2b0652491a570f511942f8ee9bab55951b234e102a05581e03a633296eccced86c79cbf804d293b8dfbb40bb36865aa27750ce326b2007011bffffffffffffffff05581e03998ca057ba5ff45f8482f3871109b09afb6e730765a015a40da101cf1004020219dbbd0317d7552e41ce3b4bd958f899d465ad690614aaca07995095938b81950522d57d0377eb001e97939df47b53531abcafd7a55309a5ef30444a07f268cc3a6d18f9610310130a45d9a4c9067ccca75f14e7807a7a8c8c66c18a2702df30087e6dc4fffd03e06b97e401a937044dc79ca88450557eb25b6678d257f557dbec6b617a6195f303dba73a360f99c79e565d3752df569f0bb8647be11dd1c02f32925224028b1ea603d24e4ad047debb740856775c33b2991c9883b77e9543d092b907dbe3d1a67ab503cec546d772e0b1593c22e54f378d0c24fdbe706ac1f47837fedb1a990ab7860d03e973f87ff71425b525120634894f08e16c4e4a238bb3465811e29dca76b6714f0219ffff03e5f88c3b6fbccdf7e9f5c91c81ebe99a963abac0b19fe43eea937c4acd93f4e103fdcc66550c0420329d1fc1aabe3a66a4534d7b8049501583feaf98faf6cb7fcb031b43b02f47e92097879bc0a8290f19b269dc7325b5fa44e2ebf1297c03a1800803600bf2a1625815df6df63dcc845a62b55526561ace8f7efa9d6c9b01773245cf03ed23e23bc90b320a91554089dccfaf3471517310b1ccaae77569146ba5aff3e80219ffff0347c88047e784f33d28182d2662c250216c1d04cf8cd84e8910d29953c95896e80355ab393ec5b15f7af9a0d02e27ced0c09a30408512f7bf0d7c15010686eef2f503e256e5d981f5ce66b8c6e509f8101007cd0bed52835136eafd6b30d476f7948703606dba9b083d271799f394d392e18b01477e6186349ee91bd02d3deb42e8e66c0219ffff03523b4daa54bb61deb7d4345bcb63931737159c4c14b70bc6aac4781fd334fcea031d03692e6e952591382224f32ccb114a411e523a3fb162a8b859fdd40a9d174b035a4e28ee2692c62941bec6880eb812f8fc0bcc6da6f7630699f818c0d3ea32de0364c832aca33835a523fdc5e0b3297752a4e805027d898855113d976dcccffd2c03cd628c048dd9dcb485bc0c98f55e6ef3ec28ee1454fe4c948465ec6f5cbea61903fd9a026f463f26fe697d8ddd0a4d413d772805c35d8135c95b3d0492b992533f03050f4cacf7b23790c0386fff22168d6e681c9046fc52333a55ae02774ce4ba1603eb878ddcf1cd1c3f2bacb9f1538bcbe6c8cbe5f02d48ae596af163931bdeb95203a83a9450436b687cc69607ca5aa429aa7c04917b35ebc4b1cc603fe1a4418ce1037939dd71eeb589974d6e830b65a19ce8f4699a47a34e30b8fb194fef3747678a037f9cb69ec11bc6c9890cacd5b7bd3f258af44aec8091bc9a0c429e5e99342b29038f7bb269b21a2417793ba552f8c1bbaf65fe2c0e42655dc3d4cc14e153f7feba030f0a08adbaf20765406e27a9d0492ffb2556b9a3edbf437e997b8ff00446d16103e3ea2123e0997809e7edc88eef840b4a332b1f877216da712baa4030db1b159203b7dadab3d1afe7fdc63ded801fa5b75f5ce4e0e8480bfe1772fe9a0d04a30bb503609e3428002e3efea1ebb1f12f491d1d1f8151be7080c7d34431216291ab3168037c898f110f1e616c7b43e53722e55c89981c1ab6c6058f575397352e54db6fd703498115478a22eb4b895490a3a3417c59f2c2323e7f81c874ee12ccb25541dcb103c65e11326f786394fd2af7a5847bcee3e901d639e4052313377155023e82fa4503bc961a9ba392b23eb190277aa1a59a094cc45f46e58ea3bfdb839a58b76cd25b033391e63b6b3885553eca508a643f03445187a832b085801dcc274c68b57e8f2603c55346614fc7363ab1ca08390947a3ceba2655fac4421425c5602bdc67dfa08a030d8bf2ae6866eb196e4d45220df286f6a5d51f21b5a2726d1cea79486d8c169603dc6de4c36e70638812d0f088828804db2de1cec475064b1a253ae3b619fe0b5603811893a31982ac73fa67bc0172f862e64f6cd33f861cf9b73235100fe96a498103949c3f2ff880efbccc47c4ddd6c016954d9f64bdf80131c88b5249bbb652cef0037f4b2ae9a0a9e216cb4952beeba6fdc27624712d5074257c234c546450c0d7cb03fd3f8e6455bc756aee9e0d1c91969c52c40d84bfbdd12977323f04e8231965e603ea0c65cd1159e7180f63d7e6242784dd96689e2a7ead3b484a0d017087b1528d03103aef3fe73a71f2e91369a9855c8e48e3f773f55cba162e0906ad497583627e032ce17d681c4fb3e06044a21681f78163f5d53b2032145b731df22843f1167fdd03b57972e092cf0d0635713a531d8f057ba2d3ab30b14df3d187cb93b7dcb0389e05581e038a8e278279ebe3c3df7633a4f0312274adf216c528cc15f1b0a42a97200c0446390de7a14ffe05581d02ca8d1195f6ebea59cf4fab49d4e9f4ec11135e58e17dd7b36a2713180847d93da79a13480005581d025d790e93a3c916f235064bde2771e8d0cb7dbd414f2a518a92952a320c1903fd48043a8432ccaae9d10219810005581e033610123644cfdc3b375d3ed68f8e7ddebde7b9df9d64421090bd4358900c0246d248b7bd940805581e03da9d397d2d066fb5d4847e1b76aa6aeb61af84efd7b0157a01f9199ca00413038de521345c84caf8c67b1bcd8a1f31d8f56389a63ee6bc62167a415a2bf2757d035641f4673acde39777a41b28353232b00d771dc4597bce9ab451adbca2c400300305248fcef4260cd45f2b0072fd4800a286084d9ebc4adace72e901719df24576034093e01785af9bffabc7b8e6961d212e33975b335be7fb7914b793e366dbe68003e00d217ffcf898a2e79276245bf7cb0edb32abb2e3d79779c41038d12b8bd37a05581e0391360eac5c65914d2e3db6225aba0e393ba8a1beb972ffb5ebbdc140100c04470213db2e7d952802197ecf03b258c90078acd3c4fe8e95f6e2f1fe28fbc95d534e76f558ab2f91ff26d03072039610230e2c0de571da8c10772d522c541f9f21fe8735afb256306a5283909990032995301fda1752ff9bb37e277b22e949c026d97d065fb3e97acbcae69049f0300302a99cf1de450072b06d4be268bc173258342de538f92a5b4a203e0c9f647a27038f8dee58a61f601ada68d55dc4ae24c7adb156bf1fb5e0b3c386309e8f1b0dbc033bb0569c83461b1664f7c7ec7d9b9b5b679719f5612e544cb7bd5cda21e833c6032f03b318af450afb647bee5e63da5183672c34079c863a42b22bda736b2ad0770381b7676a0ee21508b39444c6a29fbe8f14ba4a5252ecbd5a6855aefe667bc005038525b63746fa83ca4155ddf86ff72a8d835807ee01cf00a697fdcd4e43cc420a0325f919ae5332445d258852dbcf10eab02061d4338c85c5cd03cf323f9e7b204603f79759dbbef033ffc64e2251dba70b739e1524eeb0251f0397bbf14b66842d0b0219ffff03e8234cb44caaf25606c7b4c728be67cd437dc135f1a08c6ca35cbd19b8ebe66403ef2d457829c43357ac7d9ebee76377b0142ba2b8d37b7c5b12b4ee1e51dabf810219ffff03fb693ae4a74309f06d610b5dfb03cef9e20f2b6574f2fc74198f03923d4454c003386581fc804d571998b3fe7927d021ab142de6735a6f1ddf0e83b9ec13084152038055740867f95e8b46e19c0bb43dd3c489e58a478f1bc5e85558a5630684ca270379f9c91f3c47f010c52cb6184daf8d1df81ba1cd0c27c359d44d8e36c3786f8f0219ffff03c5ac73cb81dd5f6277fb7628773bb9172143e8f4ac2ac75e6f6396f12f6c8d6a0219ffff03a57953c17b5a20b9661ec9a6a5fddce333ef9a329ad809465479a9ec03adb36003ebc9454e064478f0d13131c060264346cd3a0b5bb1f266e93b80c9eb46d299a10314587808e0d265816b392008a05b8dbd8d3d540f25b2210ada0c85c8d706e418034374135f9c77a088b9bdbc80b416384d130c26d3fed0c6ea8248e0efd5ee8c2d0383bd7cfbe6c0e4eef68ac58cc019b3c158fa2432606837f173e8e0e187a89e5b036b7c7e852592252b67a8191e2b6104063e9be47407b40157346b03588e21cb100305950f7a2a31401f504f47be4ab75144a4f8de7bdb535ffd5c3e16401ee29d74032a948f82bdb0bc650b9ef26b8a0c7b0f66602b7aa8235777984e8cc7a4bb0144033daa6eed2b91f9d6ac3b82803932a3f84c66333475607f9db425083ca68bd3d703df78bb1269183194df0b05d535680a139ebe091f0b3889a0a8cf4406f91efcfc03a79810f9cddd6224f011810a7e86b91c8cc9fa702a841e5231a0003bd353edfc03f8b584116860c5a20471a0718d375001097e26088327bd63526faf7a5b6e5a8703dcf94efc5f5d3e83402b2fbeb61e2fdbd8059d846028f68dc0dc4784d2b1c183033abd4734ad0b3ba761d87dfb753df22bd86b3db4df36709adbfb2bb5e0cb0f650396cbbc5b2f2b1c38e5e8414f4a949fee386852e012e4e6eb767280ceb03b0b56037b89c2735dc7baffcf2e917e1ead7804ba5d5044b84362d044ad06376771460403270d103108449ff03c13c86e6e0321f79fe31922e880ba43360bba72e8ab3497032dc55e49161f6e395302607692cc571a582af96bdd23d376a1da5957ed381fa403dcdeeac94af91207d349eace1f14020a90ef1c04607056703e5ca1515c8166420304b3cdff1f9ca3aefc72c284fd2e6a23fa81ed0073ccddcbc9f076e91f0efe0a03d3d3edb492868d62e2a62edec41dc872c83eb4ee1b2d8610be7c92a7a331244803a619c8167287b77832ddf479ad6fde6d41fcf12ee854dcf7e73bdc0da1de8605039015beaa3691635e4934dbe025b2d79d8ae207458b1e00d64566444cd06d55e003362021d1b653727a2c322f9a902be8bf2c5282e27b87e14c01ac3ee51985c1290300bf30bf9860f0cd9c6d65ece1a53476f5f7bb7915cc0d4cebbe5cd4aa55a77b03ab7c242218fb8d0231daafb147ae9e428b7cfc156feef9c0136574bd960ca19003943a600e1c9e74dc33605aa47c00262a67c2f3de01b8828b7f69c96b9b314ae803b39ec156d8f3ffb3ebf1c4389492ce6cae3837b3ac49fc1f0f1098705bbe332303b3005e6c3843f2477d5e23c02ec0bb6468ded9e20239dd06ff6fc7eec9d697bf03fc9a766b5e3a40e84a180f3074a8ef512fe73b5ebf42e6e821a30a4b7b3ddbf105581e0317f64fc62e55d34cd98f8ea9c9b397d8a922b5ba9af94a106ef49f79c008465af3107a400003cfa8185fb823172211d4622064c06d0cc2440db3e935c91ac83d9821f5308e4905581e038ebd51b2c0225b144246702ef3a26ece7f3fd24a830ecf94ef85b584a004050343c2ad828070d54e79a6d7f2957f729f65a3b9bcea618dcd0a586bda943ac6fc045910e0608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025f57806370a08231146102c557806395d89b411461031d578063a457c2d7146103a0578063a9059cbb14610406578063dd62ed3e1461046c576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b66104e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610586565b604051808215151515815260200191505060405180910390f35b61019f6105a4565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105ae565b604051808215151515815260200191505060405180910390f35b610243610687565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061069e565b604051808215151515815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610751565b6040518082815260200191505060405180910390f35b610325610799565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036557808201518184015260208101905061034a565b50505050905090810190601f1680156103925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103ec600480360360408110156103b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083b565b604051808215151515815260200191505060405180910390f35b6104526004803603604081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610908565b604051808215151515815260200191505060405180910390f35b6104ce6004803603604081101561048257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610926565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561057c5780601f106105515761010080835404028352916020019161057c565b820191906000526020600020905b81548152906001019060200180831161055f57829003601f168201915b5050505050905090565b600061059a6105936109ad565b84846109b5565b6001905092915050565b6000600254905090565b60006105bb848484610bac565b61067c846105c76109ad565b6106778560405180606001604052806028815260200161101660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062d6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e629092919063ffffffff16565b6109b5565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006107476106ab6109ad565b8461074285600160006106bc6109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2290919063ffffffff16565b6109b5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050505050905090565b60006108fe6108486109ad565b846108f98560405180606001604052806025815260200161108760259139600160006108726109ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e629092919063ffffffff16565b6109b5565b6001905092915050565b600061091c6109156109ad565b8484610bac565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110636024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fce6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061103e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fab6023913960400191505060405180910390fd5b610d2381604051806060016040528060268152602001610ff0602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e629092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610db6816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f2290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ed4578082015181840152602081019050610eb9565b50505050905090810190601f168015610f015780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610fa0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b809150509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820e8503adc62fbf531b0b24853e9e38738696d55570d455c72b3caeef2c38048e664736f6c634300050f00320360efb9d324e9c8df0398e88274143b5aa5b98e0a599dbc9999edb31bb381678f031626d773385b839dc3f5a5756466cd99616cf21369002b9e6b5a92d5367edde003a438aae168ef8ae06bfa2f4b4454043b03ad9fbc819e4d470fa74ab80512502d03be7cda1218236362c052f57357b035cb2bee51f994228baa3d9cd0bf765784dc03061f0ae17deeaddbdb52470ee6d498f8c47c840eaec1433b639ee67038f56639039e19de15ed23d11285a3aaf53293fa8519bf96c09b19c0cefea9af7e12ba472f03fa7d3ce1e887acab456f94712028e29880bbf3a1fe5bdfdd8cd4962858d37a7203421deff858b9bb90b90ccfd9f386ae7fb4b13bfbe745407f62170246afeb701b036ea56e23d73d437dbf97fa62f7a652c410d78c3c0aabd41e7b776c04c13fed9e03924510e823921af4ee2cd5299b31d8ecaa1b9b6784e9fd73bad8959fd2b754920366a511a2b371fb7a9f201b6f4f51895737a5a5a9d78542dfd262643e6efbf9f9036c5fdbf240db1c7f499c94a0ef076dc49c1181b3c31d86b225b3a49965d67add00581f02a519010730b1081febc506046cc1da0aa6f2dea246ad61a7e5315784cdd15820fffffffffffffffffffffffffffffffffffffffffffc906f7784ea8d2f2914d200581f0278dffd3b1292896242c98739bb4d80215648729194d97c1fce8aa09797584b03ac3d8145c06247037a0000581f020c47117faa539216d5917a1cbc4fa4ba6969acd13e608d157287648231b54a09049b99b16e512d0562032fe42b52bef7087bb5ac518f211ee7e46715ffbce51c1cb2ba6e6278472dfded00581f02d087ad6adc8965f6db094b436e0cbbd82cf8c3682f22782c667fc1da57b44a077b610d303fa06a800000581f0238db470da05753c053638958e247d96e6f6c2457024074c048b7c582ab485820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0224e6987e9eb39674caead0ebcd3f505962f970f6982264abe3700ebf28de49da15dea98caeb3340003582c07b351ca6646bbf34ddc17794e2e25d1836e1a2b40d277b4fc321f5200e300581f02f54442a57f4a2a79a11b381bc97d6b99c2aa95734262bd0b6fd3d6c4f9524a23a232cbc5d8d2f72bbf0323e1372354a5fffbe88a0f0551cb10422563e7f9ff99f909afa64fe8a28ed30400581f024536978441342fb6899b3d620cd23fd9ea81f50eceee851b9ea13c61c9b64a1cfd06098ad87c17a80000581f02c4b2d666c693e24c3371b52279e8f609787e0a5393477ae5477691be7e0d4a057c82e380904672e4000219f6b703b5009876b21a8a75b811e92f436dfa6bceeb0a86868cb140db6adda4dd3c5ac803dd21d65725c9f379f234db37a45e4c179cad0a8cc90e24749c1bb8d9e589e4fa035920c03b46c2b1fd7483466ffbd2c6db2cfedc19303d362f7f603a941d6fc5f5036a2960473805dec922120bc531900c33f910590caab73be0892425d77c1e87010326a6ce883e9309e39961a33909f5632156aa214043b4bb02c50722cb719dbf6903134cc9ce23438b687ed090c3a770b84303d0397674221a4c52b2463a553a72ac0367e9c6b949d89089c6971f4539a9d84ee7da17ee7ab4b89e6eb7f0bf5ff531e803376aa2f1c74be8d61219e1926eec3cc3c7d7f267db7b2e05a3186735120969020219ffff039718b47bfe93529db6f441352cebecdea62e2e76e50df903999cc3a755938c8303cd73239dce9fdc1c74df6bf0a245bca3f2a8528bd73cac9d7dc1d97f794a5550033caeacb839487bf9e9ff4856256f8e52e79cfa55081dfee3bdf43be90852a19903f55481772157483f4fbe8e85a2a5b2a7d2af87488e96ba338a539e34d66a020403fedc4726106997f022f3045de299f4c113b31d9d30b1e65b72211be0a5e8c9240341aa588c0b33fe6a94601141df97130d582e4c72fb47f20d8533b88a0a6a586703707f6c0b289d37ff39f05135ee8871c67f0ebbdb134df5f26cca5adfa022965903ec6fe8dec5bc962ec088b171cb1c2dab5cc8636d80618f0dbe54511c21ea0562036405d2aec73a7ac3232f7c2b5ba9d9b7f23d79a47505bab96480fd1bb262684903487bf53f5c8239dd7e81880d4f112394c7f2215f577ee58da5d9071890ace1570219ffff03d41eac38bc15c311e93351db2bd3ed2f159df86f7fd28d56b570fbff4b647745035b22b822e853deb102ed1c2509c1161bce2d4374030e6029c5c872e0584e092103155665651ff1da718d75d93cf50dc73853684f579fabb89d2ce3a0fe151265d603a3a1123f9313440a02b04f51e1f10059becbb05cf94aae860bb9329f60681d71033d8d2967f2954e169d251782e72675005f5038e15eabc6197b72823f509cbdc603b6ca7cfa3f8a83a5ad32d476929f6c309a5dbcef451ecd25a9c61f924cdd6d1503424e14801ac73a57e713fb9976b556a6f75ad8fe5262092c34b16f8e37e8f6fb0376bd30ed47ef9e13c10b9042b026ef9048de9270602768e65030df96ddcccf12039a43b32e06ded50411d7b3d71caf31f3cdc629dc37b0a3fcf1a35b80836a4bf2031020ba59d1a4613231b9567661790d554f451ac0a3a09a46f2f4808b2e25443f034c0f1fac1a98cc08bc52e6479998562421341521e78da3bb4361fbc00269ee8b03a903abd68fe1030a3eb539b52087ab6f274fdc34158d429e23bd2cc9be31d5ca0375e493ed072a479556bd0ccf3881d72b41f7049c26b6468e7f08fef334bb5c86037956e9c267817766d2eeb23358c1b17042e82ef799e482facb0d247db067996203d09a736869f943297c031d1462afd154c04e35c9c520a9542346829c245847f20317b5cf15a29694cac82a15a5e180cdbb8312aa389d41e2da9ea1cc929b927ccd00581f02a0b1949b57bdb485f7203c4be6290387ef982a73742e9676fb82328c2e6e4a04c8ea8eb53e02df0c000310de74306eee7045252c397c4fbedc77207f1eb085ae3c10e9461ae9573484d203198930808a9c97f9641e4093b59957f21d4091a435c63271d8e9923804bb88750330a7955453ae92d41e8b8855c3482b7f6a0b7f5905e63d2f44e3fbaba0eb9eca00581f020a2fa507b34b3de56b195968d252a55c46ec24b6ecf802898144d93c7ed75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03a80488417d08e99757144b62baf0a7ccf835e51f350b2b6a94fab5fb11a1d3d4014200990358c2bb004ac7bc24b99251201598e173e07213a5e969b702fab17ac69586e55c03ed9731ee380b9b7e6d5f06f747fb62831d7c9fbcaae7bbaa998e236b5306f56903e15411c2692c1c6016d88ec818a3ab4a6a8f4c8ee89c29f2095a1d6af06ac7b200581f0399734da73f0dca54b9e234273717ddbc8d0e0be234ebbc3e0e7597aa5ae04a41a75a7fbc24a8fb7a4b00581f038cd72fa428fb420e304abd287174729da4392e87be6296afeeea7e0130b0495e5359cd15bbb0000002191100033a8bd9af11e846cc36e0ee9929cc18e3ee3925272e8123a5b1a7c5646011f27e03aef79cfb891f7b8fe1b5d9f3a02e779f077882236b9cb269947543c1701fb3a10391d2849f0d5e717f643fae01eff79b131e25df28f1e43addd3ad6e12c9fe1f6c0329bb4d8f420102b11b70bc67ffbee983427fa59b3864266273c337e02505172b0219fefb0340097148f3a22419845a62e73044615025c2e14b6ab85bbea5ffb8943563d53703d47b08a09875376ca1f318e17bd43a853a74f3a8127b99488f794f227fff938603142a30c6b85e019f7a91e12f4cd3b328d84e6c08a395eb20c34ccb49a45ffc9403a8fd8b034a6f35e8da2a757d5397b98aeb5a2adb670113e6eb21fba998a28c9d0219ffff03c3e12ed6e7e0d06494d8ad33810d872fe5cfdbe808ef1c49148638a9692be69d03ce72f5dc414b62419512c18f44db43ffedd86cf9144f628f221648f3d3d0e1910335be2f049b16857c37a5e82dd64fc3801913edd3301c3261a6b476a08ca5fa0e03a8fa3006fa8a6bb6b97db2b19e185743a87afd601cbd6a1199201262a653dfa003f5efd884bfe490fcaecc6fe8bcccc2319031a70d6073a69e718ac8ce0e45e08d03a9bd4f562395f2a5e0ded42cfd766eda9c6bc6559952a219b274b2fb333d461d03bb30451ba668eb867cdfdfbc4a3d81f07fcacaf6dcef847476f243aeb55b9d6d03a76334b7797c2b790e62619768ab25e2974729e241c51e2f66ea4e0780d80e27039fec71882289b69917875627127d47e605ab500e541e20d4d046d820b35c3b720379958ea7e7ce4a83cbdb47e31994f5f5e5bf428a5b6a45d08592fd6072735a3403fa695cd20a0d11674105687a3a6fbc97bbc471a63fa5dd44785777e9463c56e503074b8323f0eafe6fa64aa11e4837ed29b40ad4c47f54a22cc596f8d14a5809ee03d85a0ea5d51d61f3e44f52871c7e41d16beb29322e05bf240b8173c4898188e603cec68973c71db2846b6cae6caec3256fc18d8579f4f4e2943c0cbee7c091a1f60219ffff0328d819241d174b3fa561b9822e9a4c23b87746d9091d65ac1ad616a317c403fa031224b2c9ef6e4ec1a6abf1ed70d42d0314ef3bee6e592d06f46e22646325ed6c03ad162b269391c0f5f9cd61b6317f15f5960827e21197ef3c7d9d6f4867b58265034fe2f1b93db8af9a094b61c520bb25fe0f80391e5058143c0dd53ebe65ebbafc036f86050cccc3c84cee0b9eb2066cb96c9b1b3fd500f73a1fcb96283b9809a4260352a7fa3922abb7542ee17fb87dedebbb9110ba0bbb6662abefb78801fde443cd03018254e2c85143fe923051ee32bd4dc4253149efcc0617cbd58102763954866c03d913600b6d334c92da48018af147e7ccc109d4555d8d474a28085b79ad5c225103666a776535689c0a3edef69b15458b3ddb77b85b884f0e5bc54bacd4ad6f94c703017f2dde21f12fe6c132e65221a6a7c4964696733175c8e8fea450681a242c430219ffff05581e032dcf7a9e0ed05c8c0300001018641ba12b0a7afc33edb4088a1b2461b007011910e005581e03a4b57a9eb9059beed466ec9dc3d066373af5b89c21dd8769ae67cd20800c0a46f2e7bad4c74a05581e039cece980700eeb79ff899bd59fb35b31f73cdc9ebbab14b56feb21c0a00c03474524b50df8a21005581e038ea692d4414983a5712dd8c627534b94409168e1b55e9c96b2b1632110040103e8bd394c37a445e100d4aca29d729a81f306ce236a39930b8173540cc7e72dca0219b719036638a1ef79b07e683c032c95e308d1fbdc0c9485dca674c27f3a4f432d66fdef03986d2c3263fce688ca487536fc2cb088d38b9aaec7464f6ceaa84a46f9f65c380219ffff03901bf89e082036019ecb328075211bae26157cab4c200fb43f52044095019a21033cd31dbc5814c1c0a8d36cc3ccdd72c9e9c9a11786dfce7560c0ed602286d6d403b345a1e223a8f2880060dec0d2e8bf681678ec882f7447673e5516d1a1c40aa00377f97dc37e2171ecbba4641f9db5b22d72ba4b96596491b8baf12aa1cd82168c0310a5353b367c21760b868592f98afea8d78dbc828ec346f73924ea1d31f213c503472f43a33f915c666095849dc0a77afa8d5e0d56124cd94af533ab171fd3a2500321cb8c6c8edfed409d45b4a4d6e507d98ff23ae22d1fbcf35988fa0dc76e3b6e03e7d6362c4e76f7c91f81b75de4360d9357c912be1ceb6c47d5ea9fdb97939ed10334f21cd8165a18abe1353380fa84e4718e914d872005696b28212e9404c3a0ca035ef0d1488c721d88c9ea26538c68b020aeb466afcc6e48668e7047376ce16fa1036257865f2ebcc9520bc2b9cdbb0a69ef9bd1d50e5bc7451aeda29ecb48bf2d55031403e905808266910cc020df7ff1fbd2f857b82f43893f76819ebc65e804638f0317eb2ae7b679a3eca3e83b70d390baf65bce5194d651507b796c1ffbd03465570334a6967edd23b41c66cc29bbea014ae89c9210a114f7a48c3e9036b0d814df2f031b2ad0c47572e067632c25732d837fb952e4e95896572d3046928c8790051dce036626bd6bc29d5c03213bf50b9ee1877bafee6c0871a1d34f3a98bf9c28abe0b701410303647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d03abb443cf7723360e846e1d239e7f9a84094d536cdae42cd6fb55ee7153f31fdf05581e03f89e961efcda371d30cf423dbb5f029b5a1278dc44e67deb2ab5a8e3f007011bffffffffffffffff05581e03e696e3d4c64e5a3359b7442ee8d5c2f3fc62392216f96ac99afdaba1800c0a47085731065672e405581e03e147b95767d69167ce6a97e9bb28cda517e894c453fdeac8af0b799250040304592aac608060405234801561001057600080fd5b50600436106102bb5760003560e01c806384b34a3111610182578063c0d6568d116100e9578063e62cac76116100a2578063eaeded5f1161007c578063eaeded5f146105ba578063f63c2f82146105cd578063f822d5aa146105d5578063fcc2c078146105e8576102bb565b8063e62cac76146105a2578063e7a324dc146105aa578063e98f5ba7146105b2576102bb565b8063c0d6568d14610539578063c5ff500c14610541578063c688d69314610549578063ce9517cf1461055c578063d5bb7f671461057c578063dd62ed3e1461058f576102bb565b8063a457c2d71161013b578063a457c2d7146104d2578063a9059cbb146104e5578063ae5b102e146104f8578063ae682e2e1461050b578063b88d4fde14610513578063bb4d443614610526576102bb565b806384b34a311461048c5780638a114e131461049f5780638d4e57e6146104a75780638f6fba8c146104af57806395d89b41146104b75780639dc29fac146104bf576102bb565b8063395093511161022657806363152a50116101df57806363152a501461040c57806370a082311461041f578063725f36261461043257806374d5e100146104455780637ecebe00146104585780637fd491b01461046b576102bb565b806339509351146103a55780633e9c5f7e146103b857806340c10f19146103c0578063523fba7f146103d357806359b961ef146103e65780635c19a95c146103f9576102bb565b80631e0fa234116102785780631e0fa2341461034557806320606b701461036557806323b872dd1461036d5780632b521416146103805780632d4c39ea14610388578063313ce56714610390576102bb565b806306fdde03146102c0578063095ea7b3146102de57806315d2c225146102fe57806318160ddd146103135780631993f554146103285780631a0b04ea1461033d575b600080fd5b6102c86105fb565b6040516102d591906122e4565b60405180910390f35b6102f16102ec366004612058565b61061f565b6040516102d5919061226a565b61031161030c3660046120b3565b61070f565b005b61031b610950565b6040516102d59190612275565b610330610956565b6040516102d5919061297e565b61033061095b565b610358610353366004611efc565b610960565b6040516102d591906121b7565b61031b61097b565b6102f161037b366004611f48565b61099f565b61031b610a0a565b610330610a37565b610398610a3c565b6040516102d591906129b2565b6102f16103b3366004612058565b610a41565b610330610aa3565b6103116103ce366004612058565b610aa8565b61031b6103e1366004611efc565b610c9d565b6103116103f4366004611f48565b610caf565b610311610407366004611efc565b6110e3565b61031b61041a366004611f16565b611116565b61031b61042d366004611efc565b611133565b6102f1610440366004612139565b611152565b61031b610453366004611efc565b611165565b61031b610466366004611efc565b611177565b61047e610479366004612058565b611189565b6040516102d592919061298f565b61031b61049a366004611efc565b6111d3565b61031b6111ee565b610330611212565b610330611219565b6102c861121e565b6103116104cd366004612058565b61123d565b6102f16104e0366004612058565b6115f6565b6102f16104f3366004612058565b611665565b610311610506366004612058565b611679565b61031b611717565b610311610521366004611f83565b61171f565b61031b610534366004611efc565b6117f9565b61033061187a565b61033061187f565b6102f1610557366004612058565b611886565b61056f61056a366004611efc565b6118a9565b6040516102d59190612208565b61031161058a366004612139565b61193c565b61031b61059d366004611f16565b611947565b610330611972565b61031b611979565b61033061199d565b61031b6105c8366004612058565b6119a4565b610330611ade565b61031b6105e3366004612081565b611ae3565b6102f16105f6366004612139565b611b0e565b60405180604001604052806008815260200167496c6c757669756d60c01b81525081565b60006001600160a01b0383166106505760405162461bcd60e51b8152600401610647906123de565b60405180910390fd5b3360008181526006602090815260408083206001600160a01b0388168085529252918290208054908690559151919290917f71594b34a69973da9bff6f72cc0aad2c51069b6b8e9c70c0648b58d10d7bd84b906106b09085908890612970565b60405180910390a3836001600160a01b0316336001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516106fb9190612275565b60405180910390a360019150505b92915050565b6107196040611152565b6107355760405162461bcd60e51b815260040161064790612420565b6040805180820182526008815267496c6c757669756d60c01b60209182015290516000916107ab917f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866917f084f3cb87ea0c76a68af7707db457f95657fddc1db6e742f190166dbdd3d5b849146913091016122a2565b60405160208183030381529060405280519060200120905060007fff41620983935eb4d4a3c7384a066ca8c1d10cef9a5eca9eb97ca735cd14a7558888886040516020016107fc949392919061227e565b6040516020818303038152906040528051906020012090506000828260405160200161082992919061219c565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161086694939291906122c6565b6020604051602081039080840390855afa158015610888573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166108bb5760405162461bcd60e51b81526004016106479061233a565b6001600160a01b03811660009081526005602052604090205489146108f25760405162461bcd60e51b815260040161064790612531565b8742106109115760405162461bcd60e51b8152600401610647906128c9565b6001600160a01b038116600090815260056020526040812080549161093583612a0f565b9190505550610944818b611b1a565b50505050505050505050565b60015481565b600481565b600881565b6003602052600090815260409020546001600160a01b031681565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b60006109ab6004611152565b806109be57506109be8362040000611886565b806109d057506109d062080000611b0e565b156109e5576109e0848484610caf565b610a00565b610a008484846040518060200160405280600081525061171f565b5060019392505050565b60008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55490565b604081565b601281565b3360009081526006602090815260408083206001600160a01b038616845290915281205480610a7084826129c0565b11610a8d5760405162461bcd60e51b8152600401610647906125d6565b610a9b846102ec85846129c0565b949350505050565b602081565b610ab462010000611b0e565b610ad05760405162461bcd60e51b815260040161064790612558565b6001600160a01b038216610af65760405162461bcd60e51b815260040161064790612939565b600154610b0382826129c0565b11610b205760405162461bcd60e51b8152600401610647906126a8565b6001546001600160c01b0390610b379083906129c0565b1115610b555760405162461bcd60e51b8152600401610647906123a7565b8060016000828254610b6791906129c0565b90915550506001600160a01b03821660009081526002602052604081208054839290610b949084906129c0565b90915550506001600160a01b03808316600090815260036020526040812054610bbe921683611bb5565b816001600160a01b0316336001600160a01b03167f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f083604051610c019190612275565b60405180910390a3816001600160a01b031660006001600160a01b0316336001600160a01b03167f769254a71d2f67d8ac6cb44f2803c0d05cfbcf9effadb6a984f10ff9de3df6c384604051610c579190612275565b60405180910390a4816001600160a01b031660006001600160a01b0316600080516020612a5783398151915283604051610c919190612275565b60405180910390a35050565b60026020526000908152604090205481565b6001600160a01b03831633148015610ccc5750610ccc6001611152565b80610cf057506001600160a01b0383163314801590610cf05750610cf06002611152565b6001600160a01b0384163314610d3b576040518060400160405280602081526020017f7472616e7366657273206f6e20626568616c66206172652064697361626c6564815250610d6b565b604051806040016040528060168152602001751d1c985b9cd9995c9cc8185c9948191a5cd8589b195960521b8152505b90610d895760405162461bcd60e51b815260040161064791906122e4565b506001600160a01b038316610db05760405162461bcd60e51b815260040161064790612773565b6001600160a01b038216610dd65760405162461bcd60e51b8152600401610647906122f7565b816001600160a01b0316836001600160a01b03161415610e085760405162461bcd60e51b81526004016106479061287a565b6001600160a01b038216301415610e315760405162461bcd60e51b815260040161064790612462565b80610e7457816001600160a01b0316836001600160a01b0316600080516020612a5783398151915283604051610e679190612275565b60405180910390a36110de565b6001600160a01b0383163314610f8b576001600160a01b038316600090815260066020908152604080832033845290915290205481811015610ec85760405162461bcd60e51b815260040161064790612660565b610ed282826129f8565b6001600160a01b03851660008181526006602090815260408083203380855292529091208390559192507f71594b34a69973da9bff6f72cc0aad2c51069b6b8e9c70c0648b58d10d7bd84b610f2785856129c0565b84604051610f36929190612970565b60405180910390a3336001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f819190612275565b60405180910390a3505b6001600160a01b038316600090815260026020526040902054811115610fc35760405162461bcd60e51b8152600401610647906124eb565b6001600160a01b03831660009081526002602052604081208054839290610feb9084906129f8565b90915550506001600160a01b038216600090815260026020526040812080548392906110189084906129c0565b90915550506001600160a01b0380841660009081526003602052604080822054858416835291205461104f92918216911683611bb5565b816001600160a01b0316836001600160a01b0316336001600160a01b03167f769254a71d2f67d8ac6cb44f2803c0d05cfbcf9effadb6a984f10ff9de3df6c38460405161109c9190612275565b60405180910390a4816001600160a01b0316836001600160a01b0316600080516020612a57833981519152836040516110d59190612275565b60405180910390a35b505050565b6110ed6020611152565b6111095760405162461bcd60e51b815260040161064790612843565b6111133382611b1a565b50565b600660209081526000928352604080842090915290825290205481565b6001600160a01b0381166000908152600260205260409020545b919050565b600061070961115f610a0a565b83611c4a565b60006020819052908152604090205481565b60056020526000908152604090205481565b600460205281600052604060002081815481106111a557600080fd5b60009182526020909120015467ffffffffffffffff81169250600160401b90046001600160c01b0316905082565b6001600160a01b031660009081526004602052604090205490565b7f83ecb176af7c4f35a45ff0018282e3a05a1018065da866182df12285866f5a2c81565b6201000081565b600281565b6040518060400160405280600381526020016224a62b60e91b81525081565b61124962020000611b0e565b61143c576001600160a01b0382163314801561126a575061126a6008611152565b8061128e57506001600160a01b038216331480159061128e575061128e6010611152565b6001600160a01b03831633146112d9576040518060400160405280601c81526020017f6275726e73206f6e20626568616c66206172652064697361626c656400000000815250611305565b60405180604001604052806012815260200171189d5c9b9cc8185c9948191a5cd8589b195960721b8152505b906113235760405162461bcd60e51b815260040161064791906122e4565b506001600160a01b038216331461143c576001600160a01b0382166000908152600660209081526040808320338452909152902054818110156113785760405162461bcd60e51b8152600401610647906126ee565b61138282826129f8565b6001600160a01b0384166000818152600660209081526040808320338085529252909120839055919250907f71594b34a69973da9bff6f72cc0aad2c51069b6b8e9c70c0648b58d10d7bd84b6113d885856129c0565b846040516113e7929190612970565b60405180910390a3336001600160a01b0316836001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114329190612275565b60405180910390a3505b806114595760405162461bcd60e51b8152600401610647906125ad565b6001600160a01b03821661147f5760405162461bcd60e51b815260040161064790612732565b6001600160a01b0382166000908152600260205260409020548111156114b75760405162461bcd60e51b815260040161064790612365565b6001600160a01b038216600090815260026020526040812080548392906114df9084906129f8565b9250508190555080600160008282546114f891906129f8565b90915550506001600160a01b0380831660009081526003602052604081205461152392169083611bb5565b816001600160a01b0316336001600160a01b03167fe8a89cc6e5096f9d9f43de82c077c1f4cfe707c0e0c2032176c68813b9ae6a5c836040516115669190612275565b60405180910390a360006001600160a01b0316826001600160a01b0316336001600160a01b03167f769254a71d2f67d8ac6cb44f2803c0d05cfbcf9effadb6a984f10ff9de3df6c3846040516115bc9190612275565b60405180910390a460006001600160a01b0316826001600160a01b0316600080516020612a5783398151915283604051610c919190612275565b3360009081526006602090815260408083206001600160a01b0386168452909152812054826116375760405162461bcd60e51b815260040161064790612629565b828110156116575760405162461bcd60e51b8152600401610647906128f4565b610a9b846102ec85846129f8565b600061167233848461099f565b9392505050565b611686600160ff1b611b0e565b6116a25760405162461bcd60e51b8152600401610647906127b8565b6001600160a01b0382166000908152602081905260409020546116c790339083611ae3565b6001600160a01b0383166000818152602081905260409081902083905551909133917f5a10526456f5116c0b7b80582c217d666243fd51b6a2d92c8011e601c2462e5f91610c9191869190612970565b600160ff1b81565b61172a848484610caf565b61173383611c51565b156117f357604051634fc3585960e01b81526000906001600160a01b03851690634fc358599061176d9033908990889088906004016121cb565b602060405180830381600087803b15801561178757600080fd5b505af115801561179b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bf9190612111565b90506001600160e01b03198116634fc3585960e01b146117f15760405162461bcd60e51b81526004016106479061280e565b505b50505050565b6001600160a01b03811660009081526004602052604081208054156118675780548190611828906001906129f8565b8154811061184657634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600160401b90046001600160c01b031661186a565b60005b6001600160c01b03169392505050565b600181565b6204000081565b6001600160a01b0382166000908152602081905260408120546116729083611c4a565b6001600160a01b0381166000908152600460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015611931576000848152602090819020604080518082019091529084015467ffffffffffffffff81168252600160401b90046001600160c01b0316818301528252600190920191016118e1565b505050509050919050565b611113600082611679565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6202000081565b7fff41620983935eb4d4a3c7384a066ca8c1d10cef9a5eca9eb97ca735cd14a75581565b6208000081565b60004382106119c55760405162461bcd60e51b8152600401610647906124bf565b6001600160a01b038316600090815260046020526040902080546119ed576000915050610709565b8054839082906119ff906001906129f8565b81548110611a1d57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015467ffffffffffffffff1611611a4957611a41846117f9565b915050610709565b8281600081548110611a6b57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015467ffffffffffffffff161115611a91576000915050610709565b80611a9c8585611c57565b81548110611aba57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600160401b90046001600160c01b0316949350505050565b601081565b6001600160a01b03929092166000908152602081905260409020546000198084188216189216171690565b60006107093383611886565b6001600160a01b0380831660009081526003602081815260408084208054600284529190942054929091528484166001600160a01b0319821617909255911690611b65828483611bb5565b826001600160a01b0316826001600160a01b0316856001600160a01b03167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a450505050565b816001600160a01b0316836001600160a01b03161480611bd3575080155b15611bdd576110de565b6001600160a01b03831615611c15576000611bf7846117f9565b90506000611c0583836129f8565b9050611c12858383611d5e565b50505b6001600160a01b038216156110de576000611c2f836117f9565b90506000611c3d83836129c0565b90506117f1848383611d5e565b9081161490565b3b151590565b6001600160a01b0382166000908152600460205260408120805482908190611c81906001906129f8565b90505b81811115611d555760006002611c9a84846129f8565b611ca491906129d8565b611cae90836129f8565b90506000848281548110611cd257634e487b7160e01b600052603260045260246000fd5b60009182526020918290206040805180820190915291015467ffffffffffffffff8116808352600160401b9091046001600160c01b0316928201929092529150871415611d255750935061070992505050565b805167ffffffffffffffff16871115611d4057819350611d4e565b611d4b6001836129f8565b92505b5050611c84565b50949350505050565b6001600160a01b0383166000908152600460205260409020805415801590611dc95750805443908290611d93906001906129f8565b81548110611db157634e487b7160e01b600052603260045260246000fd5b60009182526020909120015467ffffffffffffffff16145b15611e3457805482908290611de0906001906129f8565b81548110611dfe57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160000160086101000a8154816001600160c01b0302191690836001600160c01b03160217905550611e9c565b6040805180820190915267ffffffffffffffff43811682526001600160c01b03808516602080850191825285546001810187556000878152919091209451940180549151909216600160401b0293831667ffffffffffffffff19909116179091169190911790555b836001600160a01b03167f53ed7954de66613e30dd29b46ab783aa594e6309d021d8854c76bb3325d03aa38484604051611ed7929190612970565b60405180910390a250505050565b80356001600160a01b038116811461114d57600080fd5b600060208284031215611f0d578081fd5b61167282611ee5565b60008060408385031215611f28578081fd5b611f3183611ee5565b9150611f3f60208401611ee5565b90509250929050565b600080600060608486031215611f5c578081fd5b611f6584611ee5565b9250611f7360208501611ee5565b9150604084013590509250925092565b60008060008060808587031215611f98578081fd5b611fa185611ee5565b9350611faf60208601611ee5565b925060408501359150606085013567ffffffffffffffff80821115611fd2578283fd5b818701915087601f830112611fe5578283fd5b813581811115611ff757611ff7612a40565b604051601f8201601f19908116603f0116810190838211818310171561201f5761201f612a40565b816040528281528a6020848701011115612037578586fd5b82602086016020830137918201602001949094529598949750929550505050565b6000806040838503121561206a578182fd5b61207383611ee5565b946020939093013593505050565b600080600060608486031215612095578283fd5b61209e84611ee5565b95602085013595506040909401359392505050565b60008060008060008060c087890312156120cb578182fd5b6120d487611ee5565b95506020870135945060408701359350606087013560ff811681146120f7578283fd5b9598949750929560808101359460a0909101359350915050565b600060208284031215612122578081fd5b81516001600160e01b031981168114611672578182fd5b60006020828403121561214a578081fd5b5035919050565b60008151808452815b818110156121765760208185018101518683018201520161215a565b818111156121875782602083870101525b50601f01601f19169290920160200192915050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906121fe90830184612151565b9695505050505050565b602080825282518282018190526000919060409081850190868401855b8281101561225d578151805167ffffffffffffffff1685528601516001600160c01b0316868501529284019290850190600101612225565b5091979650505050505050565b901515815260200190565b90815260200190565b9384526001600160a01b039290921660208401526040830152606082015260800190565b938452602084019290925260408301526001600160a01b0316606082015260800190565b93845260ff9290921660208401526040830152606082015260800190565b6000602082526116726020830184612151565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b602080825260119082015270696e76616c6964207369676e617475726560781b604082015260600190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b6020808252601f908201527f746f74616c20737570706c79206f766572666c6f77202875696e743139322900604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526022908201527f64656c65676174696f6e73206f6e20626568616c66206172652064697361626c604082015261195960f21b606082015260800190565b6020808252603f908201527f696e76616c696420726563697069656e7420287472616e7366657220746f207460408201527f686520746f6b656e20736d61727420636f6e747261637420697473656c662900606082015260800190565b6020808252601290820152711b9bdd081e595d0819195d195c9b5a5b995960721b604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b6020808252600d908201526c696e76616c6964206e6f6e636560981b604082015260600190565b60208082526035908201527f696e73756666696369656e742070726976696c656765732028524f4c455f544f6040820152744b454e5f43524541544f522072657175697265642960581b606082015260800190565b6020808252600f908201526e3d32b937903b30b63ab290313ab93760891b604082015260600190565b60208082526033908201527f7a65726f2076616c756520617070726f76616c20696e637265617365206f722060408201527261726974686d65746963206f766572666c6f7760681b606082015260800190565b6020808252601c908201527f7a65726f2076616c756520617070726f76616c20646563726561736500000000604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b60208082526026908201527f7a65726f2076616c7565206d696e74206f722061726974686d65746963206f766040820152656572666c6f7760d01b606082015260800190565b60208082526024908201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604082015263616e636560e01b606082015260800190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526036908201527f696e73756666696369656e742070726976696c656765732028524f4c455f4143604082015275434553535f4d414e414745522072657175697265642960501b606082015260800190565b6020808252818101527f696e76616c6964206f6e4552433230526563656976656420726573706f6e7365604082015260600190565b60208082526018908201527f64656c65676174696f6e73206172652064697361626c65640000000000000000604082015260600190565b6020808252602f908201527f73656e64657220616e6420726563697069656e7420617265207468652073616d60408201526e6520285f66726f6d203d205f746f2960881b606082015260800190565b6020808252601190820152701cda59db985d1d5c9948195e1c1a5c9959607a1b604082015260600190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b918252602082015260400190565b63ffffffff91909116815260200190565b67ffffffffffffffff9290921682526001600160c01b0316602082015260400190565b60ff91909116815260200190565b600082198211156129d3576129d3612a2a565b500190565b6000826129f357634e487b7160e01b81526012600452602481fd5b500490565b600082821015612a0a57612a0a612a2a565b500390565b6000600019821415612a2357612a23612a2a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220701652e56e5ffab9394a937aa8c35ffe5fb8928e3ef71e105a5e99193547509d64736f6c63430008010033035e8926efdb7867fd8bb4cc54095fc52ebddb26b0e138aa3fa5a145d3289414a703464e7653bcd18fac31df8dc1b15122cf2198ee2cdab2b95f03a3cb3640d9353e0326d13c96cc6eb07df3c2e08d05113a91728ea684011c9d68386e0e3efc56fae2031c57b3a3da11ec4295acb44bf749468febf72cdebb8d30acb37079c351fdfed003795c0ff91aca25590d1f0764d901eb2f4e58c5af16a1e12cdb736e63206d7c0503e47b57a87654f9ea15055a75b9320107aa49ba205bd6040c4c7df2ee0a53fa4203163d80a511d533a866b3b0e75bcb812c4c5ef83aa014635523aa86ca39e927e1039589a9954d38f5468bd8ed127713680ed37e8be8ebe1e14a02f41ba5ee796c2103487de3aee9e24116c51d687201e97a00e649a46ba435a1532def44f1547363a903013c5b1d5410cfbd003795aba3403884f78dfb156226557206ed3ef597851846038ea1e54a328404dbd82efcce44ae684b6b4f4cc5ec24fa120d92f30d1b922f5d032f776ef005010f21bbd8fe770554631237f30761a06b214f11c308a20094a57b03d41ca17f8c8e23630663701bd7f477ee13d89552ba633c9daffe960f9510635d036f9c8d22ebf4c876d219a77ff275ad52ffb23f2455670947ce29967f64a6c1d8038aa167b05ec579ddc57617ee217ea11e5633cf0bffb27b3977919f7920661819037c06208219dc2232c70c173ff984139d2218f8f704801bbf702fcd05021945ae0343ac6848d88819b9a6b4b214321e90015aa69c00df7d671be6d491517185844d03a4deb0fb03e2194a4191a4cafecf072e49b593cff18cdfe02dece881e7629df200581f028f2b6575d8223960124d63f2423c8bd8e92160a149e23b92f3f968acfc9d5820ffffffffffffffffffffffffffffffffffffffffffffffffe3f8797bdbce47ff0381424e1e43edefd4d1540271c930cef83fb4bd3be3b417887ab9ab2be75ba54700581f02f9068d578d84079cb40c3672230cc86e92acd84b458dfaa6ce5573cc55c54805b137269a09200000581f02837b2e6ab3f2ba607a805c0ffa1bce1bcb58ab2d4a40610d31d8661c03055820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03b4e82e2dd914ba955f3b4b1a0cd9714d88e83bf4d06b365052d5a2ee50559df803621ef1d80e8730f4b5960f8f0d7afc8ee047eac7e98dba6a6ad3ec4ff987e7c300581f025c35952012c6110c071ea27f5e58f2f0a4372d97f687f541ae3ae78e1a3a482a8ca926a1a53b2f00581f02450f0bceb15c2e30076abcb98c7bb640578b6667841c147f6a7b3114b8a55820ffffffffffffffffffffffffffffffffffffffffffffffffc63392f60b58814e00581f024bb990e2868739e867d73d07ef53b19b3c9a4a305dc6419484b1714dd6af5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0284244a92a5255261ecb305ab02e9b7b4de6a0232eb71ae1ae2682be0fd485820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02b139358d4983230adb11f9640f9267a24a25cbc21eedd6c1aadbb0a7fa4b48063eb89da4ed000003a152a086e0035a8f19c903ec2eccb9d06bda76c47b4fecdb393df7652492f0b1039c08521d3bbfd6a2b0ac2a397c1d32f1407781a29d27da475fa435cf1d2dc6790219fffb03bc70d5d9feb30ea53a8bd2b8afe3ca166fddb6395d83d8cb0b7fa13bcf9b534403b4c0e43d2c94191d1ba7c03d3a7a3ad960b25d18ac6cd52d1e525688c6ef84120350a8986601237b45e562b92e5fde4189354eee0c241bb30ffe61957d6a91d6250369df0282c600dcc7f45f1bb6de19ea6cab154c4e40fb339f2553b0f96be7f6c903a583af3f2cddeec1dac6d69c6441f9284c4aa30c3b9b0b3600e920cf964c38990333663c2f4a02420a3083a9ef6ba23b9085991ccc2a31eec6e3854607e6c2b3eb0336eed8049dcfe1c2f2baaa3a3c2a7eb9ac80c0a1de6de72b33a3326102ebc31d03ecce8ca26a14e0066fcb2d6e835712bcf2eee0ba32b1db0cc0d49181fbb0ca86035a3e33aaa256b01b528094ef988e563c8feb89e5e40a8e802585989f388f72a20219ffff035dd1f230b2bd482b556485d6cf6567e3e7f0e00666f69ef921f62101678152b7034a2bb771112aa45e309cd9192cfe0f4f2a60bb25df71b2ec37ee979f2de4bb0403f36c2a5ef20ca4edea4e5ad28edfa5f49c6dd6ec104bcf0cbec0788545ac2d1d03d40165a00e10a19d118a135a35fd85cc1c13061d6bf0f4adc126b8a9205b2aae03ffe8cd73f37f437cdc620679859be544639a97cfda9a9c4224f1647629fda5cf0391cff304078567ce5ed82a0826ecac56def2b041cc9f84656e95730eb0d4b02603ed3f692253c4807c8189cf2ed75c29c73b07a3a2091e73b99bac216a0c75f776038e7fe69b26a6f9e3630c812c687869bba2c747d0ab1cba38c2e0f968c058a789031713ed69aeb248bc7993a1501a34318cca8281b90ba44ce353662e4e6cf075c2034d170a3d196c386db10452ac55c12537749b4624d8b90757291bfd27a71bde35036ad1224c36a493df48b8370028c30ebab4efb727917af8048ff4ccd25a045fff03bb6da11b16f4ecbeb692756b9043be7af3488ab2fe7b10e67cd9d1e3d1584e860362c682b54e49f27b8307cc6bd79fb5cb7c132826de42d7af4b30210137bdfcae03dc27e199ac0459168ae7f9073cb9b7c8c6672ae7c1587233eebe149b24151fbb0219ffff03c5a6637d54db51d1cb8aa3537a81e18899134041aafd91cb165638a5e3905e9703ca7559859c8fe9d9cc626ba2fa7f23c98608a8d17b65d501026a6e373e395c8f0335c31ee8b063db1631f49effef18b514416f9b59b5175586e624531faf0c464e039849186542297c692a54a577ec16b8aafb313652e4198ae6a95c4dfadf1668b9030983e25f0450265cfae12db7b653e15380ba62c719be1a959546e8ed9a74b9df0385cd9301a73a7e9f017eff10ec3c039221ae627843db61b33e10156784fc6eb70219ffff05581e03cdf002ea87e40b81dd26c93c809a6e21ed96175c7f4b8f43193fe087d00701192aac05581e03c061e7b8824a972b89403450083534adff0de7d9d1da68af602c4f67300c0342a45705581e030a333767828da1c6a5fc9064e4733ce7084857801a28540746d2f5c650040105581e033798677d2965931848521356f0f9dd10fd0ee3ccae04dbcf0d1adace10040105581e036749eff4cfa14cf110ee085c4f834970a03554d5ee7b5882c8e88e78f00c0147434a5d8439a6ca0219df690371eab9dcb789f741b294f730cd076a183093fe90d35d359538f6c0e51679b1a903f111f88c011f58ae29b99d935d0fbc3b82da6de12c191335c36b8c3004a6145403be6e4c140e39d9d4f20189fcadde6b14ac37a85e5a19cc24ef46530a68b81eea033e31d75089c520d0cd898d8de4b23191c2b0601d5660ae1e9ca2a9f5a322bf5303f77446ec22cde93f0547b19c5e6f029e424ed300076c77608531125e7ae4217e0371e89ef4b697287a04b6dea640c89786c35e667c3e28ff4854e5f5622988993603bb7a16e183f2af0710aea4de266223f705fe893326dffea7e180ca198bb4f07a03e2e0ff305414482f8a192d88a6ed466d16a91cd31b9ca0954b1c2913ee344811039110c9b6ef5310b9ba086a0bd82ee11b1180554bd9f361b342becc2b4a702b950219ffff036dad3cfe66c193dbf7cad495f2352c1c85e550901302fb0cd98f640e439a65b30306175c85e7052783460188fce4f8ce567f716073f030539a4ea60cd64237e05a036efdd8d1d429922afc07a2354e135c45ec797fe1f09c3371f979194edb6cd446034820d3e3194357054744f5a93e1c5691afd9fc594df544b905fd90d8dbc716990219ffff038d09b9d634dc865ef61b79663ee58774d7632c87fbc29f6b1b79d21d7fea63360361f7183ed915409574db3e969167d1816a6513bf642d46f575f0c71567cb830f030b41b9ff9870a53cbda41c857d20024a8c8b8c5bc31a47db7a0c2c82cabfaf9103766ecec56fb5846eddaf925eeef3e5d730befec031c417caff42c29865f0faf90219ffff03d0c983dba1e6cf29b9efd663b8c572d515b6646cd73a846424a1850852d22d51035038498d7ea57a825e5de760a344cee24c4edc8669dbfcf465613835aed50ce603d9817d38efa31ce23ba9a9e10d64cc667b56bdf1c2cc50387ebc1f0c4a9c59d20387ead08ae3b4562d36c2b662e0aed46872d50d03523e6af9008e249885c6c3600317fbbd1142f976979b34a8076c013e0f413299a77b51cf3643b1a06570ed4621034fc648de70ca948716144fc6e319036e464c6f246939f68f6e677af040989e250343fbeb379f92dca540fc1bab850f50fd7fbba79c033650e05a012b212aea8c5b032a7098fe1545b4fc775ed2889bde0bade0a7d2de912b519063682cd5605a80850381cbf56fecfbd287bf85005ffa869e47ad201c4334d13a1f84bb1a443c959e75035fa5f7f010bed16c857e567b731ae63dace879c2b4132d0256399deb32208c0503e583ac8ac61b6c9c880fe2186b9c5ae70645f389fff6a1548ad5e7648ab72c0d035b534578b57347a26259d0bf254878b2f8185b8af4935a447986fe12936f8bb10219ffff031abdc3a98ef69156ec564471e96d1c196abcb558f4c44bae34eec4f8a9ab396803d8aaa6c2108b0a39fc69e7ad0a922b039ba7649d95864badb273e4c667deefff03dcb28ee368bbe0886f077c7b2e14855c856c11cec96acba2db99464d9b16746403ab0d4306b15eb3ae7129a522ad340019a7c11a5345737758e1ca33c61b51e7ef039a9e191b21bfd1b83b49dbf2ed91dc7daf37ab313fd2c6e68cb4a08d32aa6d5d035c5ec697c73f63e590395c458d5edd569a8aa7f47cf27c8ef2cbba4ea81c9cf003235a3d4d7594ee48bc84ed8a8d7de745f14e19a5191c9d9b2c8bc192b95d16bb03010b7931f41306f6b0b3e5c7756f63283bf603385d85e53766fd0feaca48b20703df8ac914d000c4d0098e7881660dd55c2c1817f74eb026e04f50612b982214a4032856209f85dfde289ac8b1f2161ec3583691b803791ddf3ed55f7ad6e2e9a3f9033e110fb3170bf8d693c68f6731eb96f5fe8f77da7d1fef2948886d33e76ea50c037891e316f3a55c233d0b371110eb6eb717ac2524dbb256f6686a921fc5611fe803646d408822ea6a32759281844c1c60075bea36ee7a29d6b2200aacf5df5e0e0c03ced112d23ccba88f31add6715e9cd035b44e7b047807f91c786c45708d66875a03c7baddd3500b4d2b3fbc6fe6f89de94024d1d93ba00605ea44786dcb8da3e04d03ea00c0d25c375c5664668669b05990f8fc932be798c4be28f43b9188a66ffe55033a002aa0d4cb2e120d38440374affe40c28d6737bbfe93e18313ab675502c5d70328f4ae15877821a1696f7e9aef2d75457fb28f68faf0c9af7c4d692fd0c5e24903e2d7c7e0812068edb2656fd56093a41600226275d36e0a4b13b7a28a57ff26ea032d2864ec068e0f9ea77cceda1658bf44604f2c70964f8c0a9821a2406c081f5f036d06f4d0a48bc632c45c620bb25db0265d3f61a1a7e4cc97d6cf68f3fa511d0803d4b7698b04c528f1fd77f6c781ec1fbce17c0698dfdd6df2a79f674fb5387768031b962f1ff5b82c6b7546124957964c747120df72875e672be03eb4f723d9bad0030c9f9439cd6c95a545f05a909917e518fde5df5cfdc2180e48d7258663f5d734037e0acccf35a6d23e74e844f801f64fbf39737408027b01f74c58b67a7cc9da3203b97ecc8555575bc9a1f70ee39aacbd87959236574cb632d0ab714855c33ef2e90332531869730ea3e1090a73aebd5b1d92933197887ad13ba51d41a02e834eba8005581e03a3b855d864c7f5036ee907001008e665ddeb0a81bceefc24f88cde57b00c024701d0acf29c0c4005581e03f949de0367bafdf44542e78a210eea587d86f48e62642a1ac6f451bc90084a014542ba12a337c0000005581e032c241250e11ff697070b789ab25009f6afab5c6c2d52e4d61e2e8a27e00c014720eaa9de10509f0368c332f85548112bc86491924770010f9f95edc7a191e0183c9d87e93bcaa10a05581d026d8071cd6a826ae4173013fffcfe864b41bcede6fff5fc284cf9226d0c0647521c5f2e02223a05581d02d5897f046e631d7e3f7bef34e28f2cc50ebd8d9b12af07447c31cc880c1a0088d04a4a16ba439a6365a21a7e910219081005581e03fd5b8921e72b1f4ec685270efdaad8427a005e3bf5d4390465f7f43bb0040305581e03c259821a7e1c4f404b4800fcb87a47abe770628eef633c459efb1025e0040405581e034b920ea8266b9524382be87b67ba2004bc8a68288d041517f649a34c500c014671c671b5764805581e036eb658b41b208fbde4e6c457423728d19c95ecd6241f231a3424589ca0040105581e0322529ad42b234ef9bcfb39e0355c1212937f148b5593648c0caa4f76d00c0147018d9f5be7412f05581e03d5000010fefe5ee1174b13c64b520fa76bd8895bf14781aaf5bc5bba000c01471b3b2773938a0003088d3b8b14b83434195ee2e465e7e18499b417c5fa77d9084375c533989795b20605581e033bc2752016ac4ff4730c22d998292af9ff70ca52b5768a60668fbd2b5007011bffffffffffffffff0219ebef03df9e9a063f23fad932700c82a9c5c9ef7802a8ec1462ad01656bed4c31f519b303e2ec0f46a093adfab608a02f28a48e670a42d7109bc2613eb3c4dc038ef04fdf038abd49f7345571c87abe4e53ded59ff64d725dde08a30b96fb8912bf5206453303988e6018e04756ff1bfef443cda4303a87379d730ea6493ec0a1c8b2b6660d5d03bd9ee87669193dc523c39e54a0c732c6d4cba636f5cfb26d16349129a17dae04038f50c09eaf9de04602a3578d2ccdd2bc1e1a87d5d251ffce0653f8c4d5d8af1a03ac4a91cb96ab9168ed759fd6a23f5cde9c2238b517ebae0d00b25864f1f8b5540315998bb093067e678d75ec778a8734bfacbcb8676c440d01a66978d57150685503612033325d7001351e84faf4dfdaad6ebf9bb3953e826ba4260528e3f15a7b4d03d3e558dca56d5ee9b281e0163f38a51a47269bbe4aebd2268666fa82c4b4427503df42eb550fbf68d6f8be08e32b96ba86b6f6dadaeb69f26d933e1256e4a079fd03f35abbe0f15076784eb384b1c58bba61d42a43b6128b64b124d214e3a859d3580219ffff03d0b78b73066189fae5cd571d43dd7002f002602fee98379b381825f1a29ab50503fdaa233e725f1787d867358830482a73e62fb6c829b8c95798675cee2fed5cbf038014ae6352b06e163245be9044f526c35b11caee8302c10498d3a6ad5aa3e27b03501982f85e0afb5cb8406b431f06e8a7fc683b69ed6a349c15c4a27a5d68f95a03bd661eb2d10c66e567e56e8651b6300e430e09173321311ccd040f3c8c171f090219ffff03154826760df8835df052dc778aa6855d4aacaffa989c93bbe0fc428c59c9b2d90338ddcb22767781a57704477f58026c42f0445682cee827eaa4acaa8b27032710036d255ea25c37760ec7cc4c3bc209d6be343c12154022509f24e0f854e058faae032e0dcbb24ce0c82ab373529582fa8808380a48d5f6cdd9eb9d66055861b3dfc90317ca65118e00d93aff693beef3ed7c4f4ae76271b596a41b31c87aba07c6cd4b030bffce33bed552894818634663dd084e4889ebec2cfbcb8002c1c9ef7942a12b03cd63b077521ea8e778dc35fdc95ac4a4df8e1fb42546c6f1508be6dc07b9c23a03ccc9a05ca460c694394a3ec838c630af9f8b2d2091906b4c2a1ff75592ab51f00389c38c726ec85115857130d535cc009a986e546e4bfa3af043358c52ac69434403bf305531e1ea7d22e16110041c3e811b7870fadfea23fa89ea34babe83f90b5903566b1e3f842b0f4569a03b33013065939c330a7ad89082c765b78f6acb1fba0f035639ba5126f6130c86bef22a7aca82d3c6b35b67a91ef038bdd6ac8b683b7aa60219ffff03dc93be2a893d633ab842a6eb478c5efb6271494b9035e2623e61e4fb445f444c0389750067832e3186d348de31883c146b53c5a404c1efb11a9566de46f6fce14503feb986c1cdac41b2eaff827fcdc249c5a08c8929c9832ee40ee48fa8bcf1dcc303d78029b1363164f5d815a775a0f79e51ad76fc26d6b5e7b05380445a139967f603db05cda61e225723b7ba22411209ead0f7fb299eed306425e66d07ee000ee523035f5268b6377869bdbfa93c3a7692e635c147d464266c5385c52621c5903456c803bbb4f819712a4cdac064563f63df90748ad0bbb64f462c05663122d4a7a3c79a030b0672c4ae936c45a68ff384808ad16b9766988e423e70284fbf065f2852111b03db8049f2d3b1997baff37231b084cc4667d794a47b9da778c858fed63db1fa0403cce477702f799e315a96eac3cd6316c795e31d8a9f8246cdcf94c81ad59e5120039fbde04cc0009634889c126da3b8aea248304c95790e7044dff4c9b41258223403cdcae121da80ff094ef8d2f04973e09423da05748b0e77c1e04403dee943b270037dcf53dcfccbf111def11efb53f0d45b895023bfcc56cd8944b4a9681db88374039e40dd6b82aff91c1440f65f97cc26066941b296dc752eba6ec4af78fcc1cb5603ffe1c62cfec9ef8e19adc96067a10d4cdc4025b67f54ef3efe9c83db96151dd9032a465a43b4f016f58c17f251b89434bb338033283662ae71644d88ee1a62a079034fdee8b02b359c33d0f289a8f8d3951a73e7710848c748bf46c975c4ff9f3d3503d18451b3e8e99a560ef4c126495764de875244bb008af17f5b7ffe779e949ddc030c8156c0b7839baa63eaea5b11665eee85b8fce0eab24adeb74c18e31e8c0c3603ed55457b10ee5dd5fb1cb538558ea9f55ee36689c9c6960f1453a0a57c6902e603a24a78d1d70475b826537f67b328bc276ca593e030905c92b5d65c335886997c0305567293afd84110ca834876d8bed122b27407e093427a7014defd04a63548310391bddad119ced8d55c5c20b51f4ef460ba5c71abc9bd139eae4ab12f489eaf4603ce56b15a03cd280a6b6b9ccd3e66d8eece762915d07fdb67e169c0cd8f8a65770396539db11d77fe1ad543f68d489744f5c8d2dcebcccb784a1049e86df81b2b0003e00467ac6ad98eb81f24c17ca294a11e4a1756a1603ab2f129d27d9a391c4a560371b74fd9adf543f58aafd4ea27c611a87e4979a86f920393f69a082ab70bbf9703882780532b3d70652f5afb6d06b9b5d1be88fc4a7043637b67efae8dbc78538203c88668426242bc62e85bff67238260ebfd5284c513deba81bc73dc76346b31a40363df8a036c8f6956f87a4aa2ff34852fa616e8041ed58331c83e557fa348434f05581e0357ae60126373787dd3963c8d57585f74abe00702d60f338676c5c9d3e00405030eec163b0140d0d5a0bcd43966dcb7afe645998d712d3595661b9ea5bce2fd7c03c987d9ebf917e07f6a5c925d4331e6ff6b17f65af5ab3b06600a3f32341c6f4e031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0347475e287bf8ea6e9eceb995f26e181d9135a891d15e9953a7cc5d395007011bffffffffffffffff05581e032e1312c5cca1ed32e821cf6aae3e56b094cc262537bea1be3c4443c0300c0147023c9d0253ce0005581d02ec2198de63b1722c57f49056274bf10df32244b223eeefeb5d2d6c6b08476d29525b8ab12005581d02bed16dbd3bc00157c35a7ddb1a164dbf02c0707397ad98bfe4b55d4f08470708ccaca7c00002190140031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e03d067c0b4cd9b0c6970b2baa7b7f01909aea30a020a43a29884449f526007011bffffffffffffffff05581e03a377fb47fb04b46f8ad5ff21d282716ab62957af53747368db11cee6600c03410105581e03329019a1c26eea742c280ee202c4076fbdfe10d9add755c04ad6ce439008470e35fa931a000003ff07b0f54fbdec44b03711159813ff80fd7519331497b5fdb561111c4ebf99ca021960ff039fbf783288c0c6a2eed91b719afef5da8e8162f7a77706509b902bca585fca540385c7cac39844e45b990d4479e79b0f838fbe06341075d469d9fe508044005a1e0219ffff038e9d2968959a1e7711529cb9473afb6443cacc7b79ee17a2bf5b3e6abef409da0353749dd58e6306081f4fba5616b4f52e54e1cf76f5bb3d386d83a7de8d4ff6e40326a33e0b1d5131bcda4cad4b19b09c40a8fc83cd0267bedee6f46515110abc9a038f3b2c261abfed6efef76b51b6fbadf98e384b2ac2584eec8debfb6487d377fc03791bf7c62a7eebd0a68bb3651d3c99b1197998d4cbff5a480203c979437d6b4b03de46b2b2b67dc76c0b36e269bd0d65fd2805f378baf27d98b40c937ef9d6bbce03b5e84a7f72eaacb92217a888f7195757e226d8705e46c190edd351bf5f9bfc4c03a491cbace069926d9fbaad82932d74153535f523994e0d03b351a7be402f79010303a1584aa88c77b71b6ca7290e90bd448e45053ba1c5b162d3cb5292ff2d480703913947d066a68c77d7c978657246ea80c4339ced218790da4e1f27c303328ec003bff6c51b553dc086c09400296fff9787ef3b6c30490d4594e21d4e99c9f58a710219ffff0392e5e47f5753893a1027a27310e905e10e02c02765bc567ddf4c337fee78b23703700e812a8177afd2bb048a64f400a3faa39514285917603d545889da88e17fd203223e83f9a0d7be568c8ce22bb7211b90a43ac667db0ae6ac588689af53471bae03fbe89b232b47bf7db7471824627407e128fb84b685bb3b07b50016aaa87d29f403ed86f2df81f8c5412d3da2f0e10085a1100a3d0908d20e733e2c70d45be2848e0219ffff0363de8573246dd2a86829ae5cd68af261a9383a7c73e6a563fbb14a0fe49cee580219ffff038c35e167d19d42e3e2369f08d88b85e074712cbbb519faa7e4e41fbedcbc976b032b5b2a3a4ff891c297ae473ed97585bd7629fbbd0b7e8e50761143f96ea9a1a103e5cc03f74d19f2961c6ae2c16374b07c66751cf01dc26d8ce365cbbb65892cbd03d7fb79dd5a06aaf432513c0b2cf29b1baee1de586ac8fc6f7efbb7e67423c758037706467d06374985adb46ef97e4b259249af50096499bbb4c1ea7f3ffab054fa03a7d07c431550401c2e4199a2f44e095091e4dca5e155ef2ec5fd81698b403e1103a9a3d597ad556a4ab755619380e82f6f94a0632b2036ec52f02c9a541853bf330377144cf6e0a502cc87f8d8b00afaf156e2863f3c27e7b3dba76f62d58f51cae1034f604545f0812959bacd00eb074759f098a81fa21cc37414a56309bc450d0189031c25f2d540d016b698a4789f4c6d85a265f52e7252e32b206fe8d2eb23e1eda10376a295610bf3226a5bcd6f540ecb8326094e0a63a640edc7e3c250260604494c0356ecd79de4fcd134d94cb3ba12daade101cbce34efc1527f0045b0a78cfffcbf030d452c25cc7eed145569d22b677c7c47de29821ae2440f7cb77f84670c60474a03bf8876b154ef80b8ffe07302e9dd4f90b3c395b3260a202e4a1bdea9108ea95f03dba08600e1cf8b8231bf2337752700712f0512e772325d37da2d7a224ca0545e03cf71fda40f287146a22b6cfb08f5971fcf9af09d102ce69e39179036bb0e5f45030edef9b9fb43ddf7a3d88423e04f99bc49eaad7ab8d6b9ac12e8e3c167b3703f037e52a1eb786e561e76357ef3a0aba40bf215fdae29a383827d608d27a1bac3cf03445a454c525774ebe8d6b14de01307e2218bfe8121aefb5600cbd7e6f12ada6403ebcee1bba6bad95a9126b3d6b7735b6ddefdd820492793fbe59941b383570dba03e25171e3e6c7396cab7e3aa18ff2ecb8b6b879ed9f62b173bb1775ef6477e9d803da8069804998c1b1d3fa8d4c2158e0824ddd6761762d7e4d9d772f5c87b1ecd2032005267ec98ecf72a49e29f6fd1012a65df17e94590873ab41604c72ec71501f0385d8bbf80a40b81669e02b331352ed02d82066e4a9d69a8674cb12723ec227800327532c1b8074fcefcfebe36ceb564757a93a2a697c7e2839eee51125f61f4a59033357c68adf410265c6b9a2b1e2b6d5ea89eb05019e44b4c3fea676b445726ca8030e848b1442c40286c7a3d2f5a2fed1f4330e45ee59a9635c9ecc4b4267e5a2df03f533ff8e5d46d53e156272c2c8425806532e79b6932393b4c1b379f9d43c1081034c9d79de8ed788f02ebf9a7bbf887ca51e83c2bfc3e730deadddd6ef45a6233d035322e0feb1efa63909e5688c66b938981716bc093290e17df086180cde35627a03ce935d33c4fe39fcfe7183020bcebb881aee1b3d852fa665d9a155c1eca3211605581e03bc04bd485dcfb60fe22b4324bc0f3ba27e0cb06a3d9e1872b6dd2e32c0040305581e037d852a511d6b651fb7c167b1a2a22814dd80fb0d5251d81c989e529be0040105581e03182b55b8be3c7400a87f61ccba62ca0cc05c88a23dacabc792e04861500847038d7ea4c6800005581e03b821326449ed0977e0a8d93c0675c6a618d06994bbedce6608ae5aa1f00c0447030f176bf4c60005581d02acd32bf370aa994fad7d93b0421f771d5588ff73f15d3b043056e0e40c014706ed83c14fe00005581d02f2f2fb7e1e9f61587110fbc341d54cef552ecc1c1cc63858b55b4a620c014707f4448730080005581d024410512b0c0b19529388e9b4445f11386aa7f917f991f890829e200804010459086360806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106ed565b610118565b61005b610093366004610708565b61015f565b3480156100a457600080fd5b506100ad6101d0565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106ed565b61020b565b3480156100f557600080fd5b506100ad610235565b61010661029b565b61011661011161033a565b610344565b565b610120610368565b6001600160a01b0316336001600160a01b03161415610157576101548160405180602001604052806000815250600061039b565b50565b6101546100fe565b610167610368565b6001600160a01b0316336001600160a01b031614156101c8576101c38383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061039b915050565b505050565b6101c36100fe565b60006101da610368565b6001600160a01b0316336001600160a01b03161415610200576101fb61033a565b905090565b6102086100fe565b90565b610213610368565b6001600160a01b0316336001600160a01b0316141561015757610154816103c6565b600061023f610368565b6001600160a01b0316336001600160a01b03161415610200576101fb610368565b606061028583836040518060600160405280602781526020016108076027913961041a565b9392505050565b6001600160a01b03163b151590565b6102a3610368565b6001600160a01b0316336001600160a01b031614156101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101fb6104f5565b3660008037600080366000845af43d6000803e808015610363573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103a48361051d565b6000825111806103b15750805b156101c3576103c08383610260565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103ef610368565b604080516001600160a01b03928316815291841660208301520160405180910390a16101548161055d565b60606104258461028c565b6104805760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610331565b600080856001600160a01b03168560405161049b91906107b7565b600060405180830381855af49150503d80600081146104d6576040519150601f19603f3d011682016040523d82523d6000602084013e6104db565b606091505b50915091506104eb828286610606565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61038c565b6105268161063f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105c25760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610331565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60608315610615575081610285565b8251156106255782518084602001fd5b8160405162461bcd60e51b815260040161033191906107d3565b6106488161028c565b6106aa5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610331565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105e5565b80356001600160a01b03811681146106e857600080fd5b919050565b6000602082840312156106ff57600080fd5b610285826106d1565b60008060006040848603121561071d57600080fd5b610726846106d1565b9250602084013567ffffffffffffffff8082111561074357600080fd5b818601915086601f83011261075757600080fd5b81358181111561076657600080fd5b87602082850101111561077857600080fd5b6020830194508093505050509250925092565b60005b838110156107a657818101518382015260200161078e565b838111156103c05750506000910152565b600082516107c981846020870161078b565b9190910192915050565b60208152600082518060208401526107f281604085016020870161078b565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220fb0d75414bd881ce16381528bf0b9b2c1bea4c3e27069fcb6981b67d1535643064736f6c6343000809003303be72dbe55a02b297db3fa7e57f6776be33274df2b04db86d5b65acfc22d1166003f992d784f333c5a9b63625c69becfc9b2ba2478e1075af9f059c41dd71d63b280398c823e2590e5913c2519d751793b06b429a6df0ff6c172c8d23188a0fb2f91f03d5e51f646905b598190016f63a36d21595398f37b88e7aeda56b4c12a55f4d080378f17205ed508f95a6747e9182ebaa5b6ae13d688ff38c7f00a5fe25ef2f4aa20396b1f855ab57444f8c371f2ec6683e3e836a42ca05f457522dc9c05924bc5b170381a3c79afcede0936dcebbdd75a607899c7d58a553606017e2289ad48fbbbd3803f06d8972bb3e2361c1bfee3d6878536e49ab786730a0ba2f6a9dc6eedafa7d8e03632f2bd203b38c30ffc1d5681852d58961fe76f20010cdeb71e028df5a41e8d203e25ad1423448191ce32b8637deceb1d91cccfb0e346b9ca3b9a32a10184cc4250359e92058e6b00aec57e24aa13ca7a37a00971336279cd284c03f8d7445af69c6037f56d0cccac0fac9359027421a4db202496b794b9904f5ea35cc41fa320edc780395375e3a3d9150a8ee0e8f24bac8c0a5698e211c7f32ad81135bbd68d8ed6bb70331adeeb7ed1dcf4618ce6ae4c258ed7a19d54cc89548e4b7b3db38bb54a93d2903aca92776d0e5393c4b099686def4608dd7f547d363ae274f2d324f4ea33f968203df36f4aa18b14bd89f5acc2c61425553e8a5cf966eb58f14f0ba3e6c5a1a2edf0390305a0064fac0eab8ac94e12c078c118c5701800b59548c124908230ae8bd4a0367b18289cef58c15099083208fc8ec8eede71d48cb825149889fbbfd0e87b0e303f1d36fc4babab9d142ad9e45667d2dded1ad1e8ffdf8d47d54e1dd9402513602034f09f290beedbb0ed88fb6fc089baaf0db0762ca70ce029b41b6fec10a857cd203e1b7f24857a3d9c038b458c6b9d77349e0137379fbbb6bef5956471d05b399290366b76b7a619e6cfdbf97e412e622a0edf623c96d784e5fc9f81867a64267f5e9036896de6bb9622409f2ab8948973cad3b82f189c40def93708c305c54e4ab9ad7035945450193c0447a9898de00f387502c867e23fa98d99049f97d249727803ed90389bd51343679221a7aeb8c8ae5ad986a37d1836b75935b9a887b756338dd688103d4085db5e92ccaa280932f9fc8ed57412eedc216da078f0cc49ae902e38fb58e03232c87e69a1ab13e8cfed958d62a46fcaaba15e0b558d6f31913b01c49c174cd0321dc57fc0406803869823945d6a35669c746f927764f378d0b3d7672148ca303030822cff69ee9fb71b8fe967df5ac68fcbf26df44a0f4f54377d85efa973b2aab03b78455ca3d5bf58f3e029f7a32000d217000efbad4c264039fdc5a81fc711c7f038f4410f6ee2c3c5abc455a0cc63ed9afd7647897bee6c09c124aa57ebaad6dc700581f03c85c9e9333fa49cc2f279ff3b0c31fb6a11157129b0bb5881c66963be3b05820fd1828190b01e210b012203c2bac1738cfb713d978d58718b5ac74f66223536b00581f03e35a3149fc3ce911c5dfa8548dbc28cf51a74038f8ca71c570b20b1e1af05820d991a054df141a36885d29282d7d2b16d5662f28390313a4a89407541f1b9a88038672d4552540e86fa42ab6e2334f026f458f0d4b8ddbe736229c68fb578f568703e22ca654fb2edcf4fe6fbcfee2ecd74732b9b14a45caf8f1ca7f10ae3b488f7c0366ae8f306e1d14fe414353bfb0e2f07805b30a6c5cc086ee654a23f555be335a03304eb390c8c9d77c18162ed4123377bbbd49133048eb7add2f1f6ecd23b0cda600581e0203e9f5620495875eaba32e43712c4027adf59c645991c7a74a85f18ac85820b319838938f294a83877a888ae3421d7c6546464e13063e06d4caab6232c7fd600581e027f05a9f9863d4dde849905aebc5c291752d9ef35b052d33403b367e3055820110474f0e33ee5dce299e12b36608046699c155299ceda2761602dc7fc1840f900581e02801fac37517ce8b5908e169a1a85d05a35e5fdefedd638643a9188f1d7582066a8fd0133e82ae4ae466f8fa13c381a8afeb992582f22577223241ef7ed698c0219802100581f034894a4a804119583c277c01198728aaf0f0999642c098f030693f70b4ca058204468275c0dcbeb687fcb66329f158a9b31edb25b5e0d86cc750d5a613b1e838400581f038b1024c62744e3f5633f73f7f630a6aef769f0c2f1cbf9f90018856899b05820b5b868d0411afbaaea623cf9a1243ddedc2e728b3d4ce9aa2426cea82c6d485c03b14f25158281624e1e9ce5cf5cdc80c98b8fde5fdc6db00d8ae98dd4f90e93620219ffd703f50a5298fd2f2666ddbeb7314d76c3b4d2c02b3f8ef9506f9d42c3a4592557bb03ebe3a02c5111d0d066758c0901ae3878982870ea72f47924fffdd5d501cd00de035a18d3bc78e71abec7fbe3294b50dd48c9e73a9e71941dd556d8e091564a722b03f2b911e77dc310de915b9105d0df46bd36492c533284fdeb4a863008ef24968f038b311d23b354a59ddd87d954a1cff56f2e2f9d661274c844017dad106e212f7a03b1480433945b2543addb967e8aab4be2dfdedb5c83b07681405110956f99984f03d17d73f0ca6f0c3f61ca11d3aa5b6c76da1872ce26866ed3381ac26e0a990ea503c3f69a9ffdaecd887ee61326172b727ac1f97cc13cd63b8f072508deb9146e4d036aa72d2f378b713b9526fdcf5b4ca043d1f97d449e12ed6a62b43b669873a4a80219ffff03daa379c39bb900ef5c68c28b25f0d0ee45789679add2c58395ccc477802a4028038fb5d59c7772b660680cc4aa190b288977d9968c13929035edeced235d6accc1031fc228ee99196ee065ebb0b7b9e4ea2785895a24312694a7ab0167e30f8aab080219ffff039a9738e887314ab1da503e9507bcaad8ec2720def753650d08ca10ad32aef38903d578475f54e3a25b2398799fb8c991c7755aedf73b7c155d5e9da0302190c3c10369b93a7d4f908f5f0e77d46d42e6ddfe3fc87c25876de689591e4609b435267403855821485221c4fb39ac35b5e39ddf5038ddf85f67bb3a76690e1802a186999d03627e96eebf500a492061d80ec74fb097dfa16faaa1225880fb5b86259112f585030994f84bdf7e87da3e4b114b6c67bfe616ccee50ee0ceed780d3c9c162922cf703875ad10362c3ace94eb80c4f4ca0b1c04c0abf1109e41f72a4f9ecf534da65450321b83565c24fa5dc7a91e7f414bd996c2197051b7e14cd9f686a152eadc2602303a6dde37abc2148df8934d72a2bad851894b1870ce00a606aecc8f558d7cc32470219ffff0329046e7ec78c7d6584dc22aca129259883dd4fbcbc1b302352e4553c744d4b9f0378989ef86069cf73ad58926d62e4b436db674a05cd9a475309443fcb8c7fcf9403e85340c0d0f50b43b0f333c164c505e191db19ec7cd9a206f439911197d8de1803d7da0321a839d561421a2f5e897e30848709b54d7a78c6f440e3492613c57d13030b32585980b2954ce1ea564fde287505ccab2efb2421456695deb01f5815300a033cd7ea234e29f2e22e242b60f6f3fcf1a2da2feaba8d031e5a6485b9a974c212033ffbbf0c460f0bbd2fecc1bbae9e75fcdbcc551efc156a02ea97aa78888c1c9b0392d46628bf854fa9495ae898beaf974446cc70530867f86f5eaf3c3fca5590a103d5863af0266f2c873ad525a52b76ecc21754b40f789ee0b1123f8f8b0b38372f03eac097b74789ad66df6a74d50d65339ca52d624abd206320959a3a88b989554f03cd5f732fcb2662d77c481fe32f78b9cd68c6d62c3f3009015d23dace13cab06803a58544ffc1f17e62cc35f6426ee2cf82c72065cf7a37d2bcab6be2dd99af24f40360ea6394a77cdf39461f37cd7008b425de071e91e551dbb303c9a773298fb34503f25c0a43f4e754237edb7b8c07b91133345a40673cf7edd13d040243fbd0a0bd032e57e9ad500ad1e07d4c0f3996eed68e2e1b11bd36fd9460de537d041bd7536d03cadc2bcc26d879238639615f6c66a406fd945ddd4316c059c73e97f1d634e83f03d4bbba7f4090250a557c361b2749e00bdb072dbc81503b8d1c26f9cb00f0f87903d55676ec0b3ef26bd347eb6ef2d8d1ee77848922f6e5cbee1efebe0c84708cb6035b77860b2cc24fb14c188143500e3e53552f0beb814fff23dd16b75be09bdff203fd1be545df7709009a41a804acdfe80a2a56e752d066c3528a552e0b8163c84303ce1bcc8560c3a9e787fe86ef3311b43c08b1eaea5ab249981aed652bdcff668b039a9b249da69d4c94b48b97fb69aa822fe61b055adfbc5253020b4948d8f102c3037ea324f3bdf1d29c699e71b650ab6279561401e9235a1dbec0072c6d11ea63ac035e46080b1d648145e1b222fa0bfd063aef8d190af0c5e6dfe21173d20ac929350327da04f75c1c0b6460a99b840c6428f85986368f0803360fe42e79a9cb70b09103e02cd7295579e7e054f6fd0ada572245a494d565a76e6f566885867e996a61b803cc70c2df9d42661a03cf77589bb4b2c832e15b05f1bcaf815c93911425906c1403f7a95e07cba15159eb115dd5e1dd0ad3ef13419ed42a7a3871a2e003b6c1bbba03b05643ef33fe4202551ea9b30c1b7d45cc213972e60617840d703729118f1cab033170e195c8f8d304d907ae27dcd015d53568bdb45a79c303368e44ac9560aff3038f687a79e1fedf9f2792dfb44fd234f0ef72b1f75fac38ca3f0c2be701301c8000581f03ab489b7c419b2b1c96ba2db5e05ecba67ce9d2b203e7a30e9fd45502704058202831594ecf834662c0366427ba2383f95b74317b2166c947a01696530f43b74903011966218688112603587249bd0d2e3cdffb4fe8757d96a5ec311bbbf50c3d07037f1ffdab7ae012862cff2b2c2340e558b6ffafa795b7c443279c365ba51e95fb00581e02006a9a0fdb7816b504a9447bbac55a1ab59b724f3508ed5f6647544dbd5820682eed4902af7cce5978664dcb313dacc6137843877e37ab4b408989055c5a0400581e024c6294d7f3fb62e6f4d45ecd5f7a8e8c0b93173022c0f1abf6fcca3be65820f554a90d52a93538539e75c3cceb28cec842fc3874936eedde81d08024a4352300581e028f3645f40574d0b82abcfe002768a3bacd5b95970512fc556444c18a8a5820f0e937d42f55c06f38aecfde42229563c2905492042507360e599633d4002308021942400370cdbe70ab94684798705ec0e8ff36746af76f59d9a54b76c8cc9bf1257b8ac703694d486fc2025b28984fc367687cd7e7eaba49e71510a1dd6f4bcb21e063eb7a03f9fb296459170ee886516156d08dff93bc682502cd3d37ba12f8cb8e2ea6ec6500581f03547ad3dcd1bbef954189838a5523d04d91eeaf460793d549fd6d78482f905820e00d0b350a6f3774812c4c691800a8490637ef3ab9cd76d791520f28f6585fe600581f0340dc9cde7480c1828a0768350fa0ea77956fd3dc00f2f1472e0ea82f83e058205470aea9b4459765ffcb5cb0877ace73695029e198598febc631fe4caca5c9f600581f03e7b89977032a0c80d0f76d5af4347c96f82bfb2ad53851e20ff95b25a93058209541821548bbf7e332c5241580dde8f347b0b0ba9689163ee06c892ced69a91f00581f032584e57d2ae202b16d330039f2d1ab44fa19ca5fddfa0cea0d8263b85fd058209f0e9ca95b2f96114fa89d085623bc747656b51fa047015efdbed4202632f86700581f03d2f988ae8d36b0a7fcf2c35157c3d5fb2a69997d1502d5ae829be5d43db05820681dd20cf17e9170d8eea6ead5e972da1ac88e320238e02b42acf92ea75a804e0219fbfd0369d3c079577bf4b969337f0f3661ddb13ce57e38db74f2d2e4b9100eff5b1f04031a724ccd13e848a049242326edab336e36ba6c359cbf90c7438d7157e84823f503fd60c107cfbe297f9870f8a81e2ff6b179fcabbc04af6efdf81cf57a7d73d24d03b6423db46289b79279f732ea281e093b0fea30f096e16f8249e89480187363b10355fe77621f927ab7f50feaa3fc9e0b8851c758a1571a8f57dfe2a6386bc1c9ca032e24dd39fa9c1f1cdcdc5fcf6d76d81444daa56aaf48a7209aa237eb84ab7eb90219ffff031a13b2699737a9af5db3ac920e274f895c7a2051f29197d9bc944187954a3edd038f4e3874b3023dfcccff3bb5353d3a41f4d56e6f099ceb9eb121763330a8448f0219ffff03b4bdf18e527f496f9cb52f0d1aa238746023bd045f4c46a11433c78d7439658c0369a8555e354dde458205c8fb5be6209231b3dd46d7a4283952ac5cf5c6cb5135030cf7b508496f89e0be35ba52f01ace6fe54eedfea8c92f2f20d0ea3e81b03b980354d1b2b8098f2584f108280ceafbdd20612b0c29c3f9d13d1ceafecbe7fa1ae403f4aadb802049a6e3b40cd1cad3c3fde35bfdb95cf5e89adee2343ea21793cf2c03ae1464856bd61fc9259bfc8e3ce91850f6dc81a007e457173b4c98bcff2d605b03bdd9a6063e3faf9de202e46b253dfa0631d2f2e1e36d9cf81852900782bea59103b80443cb0b979efb24cd68cb801f9437846502ea77527e8f194b32e6da10ce280219ffff03cde71f8a4a3bf34b1a21d40016e965cb2c111ae3e57194a531b1bbcd5b3b601d03cd69c7c0bddd640859904acd65886d780ecd1e84f91ad2574dfa529ffd06f58a03730a978e28728b1b0938db417401b4b46e45ca3c772ead789259893a4cf187fd039c36e07a959fae1a92153717b8a1ee2f3807e84b1875653a9ade10afb8db512b03420c982ef7d7390d40afbb0ddf9ac9766c9d6b6deced228b3004d80fb6e6962f032c6e1b452d8dd1d8a918be2bb4ee57db80f4e4bee6ba90cff634d360b60c32ef03dab90a27e4270c4cdcb854d52b49d2e6c80d723546ea88921dcf2cd5ffde98db036ac6bb94a9b8065de97ea0ff533f3c4520b8dc5f4013846039dd8cd7540ac4bb03e8232f589bf1475dd6da1d48d822733d5fcea1d8d0dd30eb24751c9631ce01bf03ad81167e26dcae62cd2aef4b5b0c6ce46ac1db3eb4b237ef63fb36f478c0155303d770ec5f92d2fc28d5e77eee99c40a843f0b937e504db38f73b2328cbc9c4d6b035c94142504362043e42ea694f826000503159ae69acf11c9e6f00455349f84cc03499587bce1b2364f48a3fd3ba960aeb6353ab0612900a87f01fd99234f28307403d57cd796cb678c73d3167fc2499f02c7c4db3bc8bde57cb171965f01d5cb05110313dc0192aab33ba7de0cdba08fc4e050c513892c7867a8dbed12f1ca1fce94e2037a1678cd825feddea4dc28a7afa61d38432b4b71967c2d1c11454ffe7548b65203d0408b3336cf4d81292e16e743b658d140bebe894621d6f5f07f4581faf4862f031ac094ea79122b5837dd3ea31d08aac4dc80dcbe8943a32aa5f9fb67093ba8e803bf350cb16407118c2a78682df600035f9b9eb132e02c2ca4d5e1db8736c9799c0334f82390745518cb54c208ec9f284e15212798382bd603df3696404702997a330304e1de14568db23cb8ff3f476b914c0d76f8d1d55e69e9c1302d4c10ab89b2d503c176f672ba92f0a3a36b42dffa9a22e43c80046150adc8adc8282f1acd8dfe1d03df3f275fa4e567c3577c91bca17c58eff68167da9600148e6363bb198a0f40c603e51287bb3f419676dd6d5ed9f0172a4f9fd448f47460f3d719293cdf117fd338035471b753454f51887a72f2eec54651c120af65e186e0753b1721d8e2add5101103abe7320a255ee1cd0e82f2daa496ed04f5cff1813f8864ad192b8bb4bbc4d13503040e297b9443eb335f35debf3208690fd925b42c70aebc05c9b74a69f2259d400365c9e0c70c3d435036552bfec7c91d26f4c18abb8e808dd2e2caa830d1fe6a15033d632cafc2eb8057794145c1bda7855c67f0daa088849ae12738903951cc435c03949e94fe16f5d2f080f3d0371530403ad1e4e800131935e0cbb614b955b7fa4300581e02c2d66d42a172896479b26a4d87ed12a4fa674895420b2a67be7e180afa58206cc8a15b3b976432700266d89a29f0c7da6385be15a3725e01dbcc3c3891aec200581e02df5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d48154554723262467f125ac9e1cdfa9ce15cc53822dbd0219080203fe4cf30daa9fd99b12d1c266e8b79be400824c102004b788b1b9e9f2381948ba03a180f179d069ea393d6520b814097b755576c1f7d4e35df68a8a8cb74571f42703f8adfda86ae4c71f012794013b2cc1589ce175324ce20689b09dc08b9212d10303d3b0935d0b4b4d57a6189707e09126d7695d090821637d38777f581e07219d36032a9b6da2f0c6e2b9052e6831480fe6ac471761c7a64aea8f06082ef4b8d564d1035815076ea526e46cf4fe95c243bae2dcee9476e42d3b52901d2f0ea324e36c9803341643b9ffd4eb62692423c5f3031d65f1483d2593409b9527024b474e40a50400581f03a8942a245f77a44968a909a7b455e0296bb5ec26a255e33b1eff6cf3196058201410a8770e257c6ec5b89d4a095972ed1200b8059ad2c378e60fd082285c07da00581f0363bb1c2b8d2f7da0c6b7a34a55275e97fb3ecf185d57ed90266ed615fbd05820ed66e5261dde7961e4c1a4ec144bc5d475efaa3784ad464262f558e472e5c60403c478880dea1ad3477eb7dc42f48fbfe2b32e42c6bd62c1f53de7aa02cc4b1bba03b6d56ec76486786172734428fd82cd221552aead714fb658f256d4ecb3b8686e00581f03828cdcd6a3b9d4a2086d383f0328fea616a680cbf86ed19b70590bc914b0582019e5aaa50b7a1da8f1e5fe5df2298c0b9003d35e63986cf39065a2a07611b0ff00581f03ac22af13cfb2f4c67eb456d44625de81e1fd038fd72fe6e6fafa4a63eb205820027d580fb36c2425945595f3dfeb2bfa72ba74ce1d7fd5d4cf5dd7c2216ff8ee03fb825ae28fafb153412c92e15828a36362e4672491126b727ca82d6e421a2a730219fffb0219ffff032f79af669eff69e3473c72071154b53cbd6393ceb41d5735cabc7c62c6ce5b310385a862efbf8074f5c664b4e0c18414fc20816ffb687ae0c0fa62e049d64070730219ffff032190ef46aca7e1c31f602f54204d2248e34e5c9abbe020b9c6f318d5c234f03c03e541a06925f180ccf64a546ab9cbced2ad9a987846a83e0560f5936a1f683f4e03c9562ceef366aebde4baefbe4b1bf8effd45833862d79d063cbf58b323e69a5b0311f1e278f6081d23ea979408c8e1eb291898bb1c80c3e7628a5bd8f7103865c1034cca8c34e3d21dcd2ef401c2ec532643b0403947dde47c5bb6e9c4609b03a6070394269214ca32c5519cc910f8539ae081c8a6813ed2962499a6f1d8e566a9ba9303fa67de09ba82e5e76f471b944fd2b2a0c66cf543418ecacad978d14b116ddcab03c23832ca8cc472e1552181451e3266659478575cbce879daaa0ef9c53bac4c3903baf570333095258ba914c511fc6fc3d754cf437d0eab8fbbcc96246f5bd692e803fddf8907d900a2d0ed1ba15a9c81231b2a5655c4af548a5cbebcc43ae5b479ab03252c3797ddc6825a82219e93fc0b3631a465a2d6df70301faa537a96d45cb7030336a3198226fdce8a5feef523f34ffe75322e7ca4897e871c4616b08f50939f1503c5737b0ee9b0240815293ce2baf01676944397232d10d0d7276a463d1e139e930219ffff03b64f8c6874c8944c64112b73db7523c74d86416a17d6f2892e53f9d6d5a5e3580398037592c8a96eed939dae0ef959e254188ff779af2066eba97e4c99c0bdffa003b59d371d9aa1af898ab39245e8a1976ed6186bd20f9fb68ffe1bf80c2c1a59a003ab46da2ff38e44c3be8c2f0682fcdc92026df0953056a6f5c9bb6fe70c0f3351039960d5f000ca0d68b4bd3f51880cb80c45edcd975faed94464a12e827e89627e03fb462272184e0c95eb56ce6fddb1f561f0000905f1a65ee9996ee8f73d020b1103f3b96f7134ce3a27ceee833b313b465d1065327c165d5b833e35f9be64bb669f03a3d8138d7901ac00ac88a867622fd63fdac9517e4f3e0872ee48611d40e9be0a034676944645c75dfabc5a13ec0804196f0445967803d3b993e0dd8812478a4731032033eb716dcfd3b8856a30a251d8e4e4e1d7b96f799811562b7fff6ca2d8183103ad5720173ff8623b59b2d7adfe8b7ddef8cd974503fc3fe4072bfdbab881b5340365e3c7303c2bf14524af216652419a19cd2f8413713b32d00abbd624c2986856036af25010a8bee0c5ddb4bfab17a77a3e93bdb7eee12687fad6c223d69084bf21038caed9f88bbb77556dff5dccf74c91593bc7658df91945cb3927bde497e10aae03df8a77cbb4bfd0c28f16903709f073b876f308f0e2d41b80d0ab2fa1469088a503259fa23692e9dffb4df0123cfc9749a530cb169f341d6bb7d76a7c913abe91fd03180a7ea06bfb01319986aa8a061f878bd648cdce1cd57d9f85cc131844fa8f2f0302ec6c2785425656b61d830435416fa6711ddc0e39b0539f068ab4d9e3f977a703d935291f69e5e6ed27e1c87c82621b28b1146d6bb88f5b2fb77a54694ade9fc000581e0277f347fbf3b0b9f70ac27203258fd36b565bdfbf06bfd9acf921a8eca65820aae72cecc9dcc843041b3f5d1f6537f23619f8ef7f82a3f9d34e7c18867373e700581e02ef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d541066cecc8880948fe55e427e94f1ff221d6265910219500000581f033c47e740ae17582d818d7a5e7ea8dfd300f1c44025b6e126f2537b815f3058203ab0b4962f091afc7a7138084f9acd1dab05de7ee642d201a7630305e8ae578403ab0007b15ef77f45a04d59d5b01e5f79b72efb860c9115bf8dc7f45fba0db4980373c23a6c2b3796091e86c696a50d5d3cb3b688a3f9e2bc32025a0116f798197200581f035aa436a85d93d75b95319d01a4034103e7708e171be5878d456ba8f3b0405820f2dafb43e5bfca402e21b912ba59a8635c42a4764b64079f2b2f5e748cd21168035f0be76a36d21dfa1147706aaba9d3031f96441a434efd444417159585dcfe18038e3e345847dcc3015a40e6bbb8c3de3a148cd1b93f4b01b241c5f96a50f3f1b600581f03db897f6220ad069d050a2046d3d2f7af3c8f0138872946c38ff0091be3205820762f8d0b14d3586595491e5736bb5e2e25accced8f206f8d2a3ef24d2a2e2f9c03ea808d9b84f17cf0d8ed3bdb0ccffd79e968d27f0f0648c93efb36f76a27f0210347a03db8216188d8fb646176de515e05c53d1818d0a497c834da894cef8ad6570336dbb54b4251e44319d056145eaf5b0fcc2c65da80060479758705c23c4b713c03494d25cad5f414dde50b6a8b05dbd2fe245cf840591ff6e04850c1a7a1c6327100581f0342c6810a8698dbc9aa301cbb2696d8a3e09056abb875c7231a2839a60d705820a2baaa5c23d94635b3720899d41dd264455d0311ed595ef4534fba740100d8f20376da785fbe4b112e654d7fc14f723b924fb4fd283179b2034a0ce8bed4407d8a0219fbfb03c6d426090df6bac58b84bba2fe05670e1339b7fc292809c7a051184527b79a6103e5637a467565f7f77134e63fdcb0148b4f8c2291419f86529fc966b29cd523d8033d98b4c6ca8332abdf3bb35613d443f7e7bcc341f42db89aa45bc0b8bedf45f903377a07935fa061a665376629c21a31eaefb975a37e3881d454786702abc70c1b03eacdcbb22b91adf259a19a70f1511696f881e9b893d961d1921f47dd874e75f8031e504e7f161a2db19a127c71856ce2c9378949e5a0ff5691178e4647da82dbd1031b7b3dbec793088f9e39d47d161e5680250a8e6e9b5605687fee7c92b32afd600331a3fd43c9da8f39fde525d0287e350d1a7647c7790635951be387c46f2a06eb03e489af2608759a93dfa3149e22c9c1771ce7d10b2e53c6907855a65fffa8bfe903c6e8af72e08d18e12496c293a1d22f33420a0b85043df7be8ccde3ea7e0387d403cdfebf4a1000142d2d22d554c66f3a9a50b2584aa0b293cf6b3ef13826c3171c03ceed3dc2d3ee633f6c3a0d6984bf913578c4544cbf0d5d2b590d9b70ef4cfb96033484a3ddeb00407c4b88df193a5460b2ed643f52e19f7b4664648c8bf352c4570219ffff036e1edef20d2e8003598c80f3ba56d69e697ffa7fca3f7bbf806a881e188057d3039a0e285ec1d57add5b2d82bd316d99dcdc3e14699c4c3c33faa59b038b6304f9030d66f29397939150458243b68f80f92c943dc82381cf731663fb2b0ecd3cb35b03653f6a4acba92d40f778b436f62364f08edc4178d947a667e6e27f2d30c8ebbe0219ffff038678bf8d6523ee43adf2937049482c0e5379e7c8c7f492afaf47a021ba4f2d1d0347295a5e29d10293b8be164617c395ea24993c952d47e79c24ef903589ccdf6b0392e33366d8df129fdd7719c2773e6e28f93054b65ee44f11d541fb3f0f3b333503fa8b1519b392bd48adead4881773248baf70a6f24fe79409d716e9c2f01b9b840366caa4faf99c8d250dca6b555239f2437232bd0b0543aca591c6aed648841ffc03a2501e8507adb8d1709e219bf1cbd3fcdde912c0ad29c0b88c88f79701654ebd030cbb21dc190c6b1a87d03ff0dba59b2f913d04a757277010df7ba5021aefdc76031babfa79bc7a7a3fc7fab3c2214d239c19884b20b660c1311e0c42f9d88636580387318d94705cb1067d627e677026a6df240a6c2af9877e6d20d92777a96b8f12033f3a0ddaa119e41881decd593924073d7cdad8fab10f907fcf75419b1725c1cf032c56531ccdd21f2c08b45795b2618399aa4ef66394a7ce41562d74fe86cb961103d14b3b7f2022af1946fc931cdd7e89b5f98052a7d1c0ccc04a11ed7b4b27829a039aa0892b511eb7d4c38d8c1356e603c50bb934d51d68df1d94128a9f4407e884037e822a3fd2027639a4ddf6b821aa399f9263161fe8f96363d64962ce43fd642c0345961d4cc224c080d0f8876a03016e57a13ef5872ca2a4c08abaf6a20528bf90030943a6e1cacceb3c59231bb01c0803fa80dde2b0c69605fe0f13319837d6582f00581f03f33d9d3ad21140a95d95e96f183611b34cdb93787b2da87d9dcd9e2368905820df6517f1eeb44c7d166cd7b9db391d559f5d43033d99312d4a448488378e38c900581f037dc417b85a3fed015184fa9ec739ec593ee9270b3a5b9b8d2dea8043ffe05820378a9e1e3c07a30badf46ddef275db39fe7e81e5a9a8e99853096d1fb3ab642803a3c061414e2e6b95f8e64eb380643104135694195a0e50cd0ea034526d742e0503322b81601504747bacc9a5d67c77b8911e0a4aa73807e1121e5c2eeeecba254c03a6405cfe46d19a726b9eb3b9a27fe4ed6d0a7fd9d3d4249f2a35e4a47b2bd4670367080bf9adaa9962572455d931b4c0fee0572afad48da640227d919c88d5a3e80386bb51a3f40a8d38bd5e0b0e613a2b4ef5487d5a1a076001535fa260451c3dd100581e027bdd4c7365f6581692d3468d810326026cabf02a7f299f45cb2bdae315582051475a544077f8616b1961bad665c23ac319d451f1e40fb8d677618420458cbc00581e024c535db0596ebd04a84c419d30a106c07fe3f29c23566f0ecbcf620ffd41010219800203af2608655aefe1a10f47f341ddda8879901b3a86be3aee10c418fee45572fbcd0219f7bf03879a8defd12f1639819437e0f5893435a4e02d60f1d735b96e3f2d1d5cf619a803fa502cab2cb38218711c6c17a6296373b142f1ae9b44a3f6fe692cd90d5e290303c2f0c2d8e028124b2d1baca55e7a3e4b1f0569e65ea08658bda22cfbf66ffdce035f2c868ccec3ab5b4dece66bba0f7b428062b9ac97d3982c226ef0a71a9addf303d0d82a98390ec6b59cba6576a3f758a61c2e0be6d1567fd2935d3cc566cc885d0351ed44d13df2ac1e4eecd63668edc341b02edef35509e83825ad4dcf477f0aa4033cb26476609966a56105cd71dc5a68ef071beea636deb2ad3544ffb075d728b70392585603bee30cec67beec18002bbf622b1532e6632e7d2bb7ac540f7abf9c2e03430216ca2c3c285d417c3bfbf7e8016c01d083fe799f05d81ea70e6f45d5abd703a7f6e3d3d61f2d36b364551db499d139375decb68990c1cef8382414d9b2572d032cd76c2c07a0f3945f042f336766137eb47746787a47e5fe56ca832210cb3ae203c13736aecebdbc661656651f831401db947be021f0314a5e115353f4871fd36d0219ffff03f413ac95ff02ec4172ba71205a10fbc89405f2578b486e049873caebb0bd1faf037560fe20db18e14e611e268c80d73594fce81c8ce48455906d649920e0f63cd803cb45ab354fdf61ec1bc453e328bb669f0b7f395732c522c6483cda4b04c5be4403cf505ea7875228af7092795b0c33b0a4a7efe1b00ed8b222e13a9751c13311f1036f5d0bb316d80f6d75f4718cd10a0816be6558eab3bfacf24e76296f28527bc203821e41f6bd36776d7d69a6d7df2e05faaae54806173f7b28a0329a6feedb0db8036e2e825b4b967df7b1f724f1ec2cfb5e224b56dd391552bff73c66ca41acbc6503f666b1d95b07ecf5726a777e66c2e1f6470b05936ade618671274e1a1f06f1bf0219ffff03207470852c6e50929a1519e43ab6f61d66fcd51af3878b6439abb4d4c747316803652a11a3a0853901342ef95268481e2230a738073145cc66a10c2556f74d9ff3036c648fc87f26b3005e1b9d43eb2924b207d45b5c86690c21f86b3b2a5a9521d403cf1a9b38c5279178689c3cf9f92a66396fb318d47c2bedcafb16e41a16c100c70337f77d7142d77232cebce3ac381993290c62472ab85512bac3ceb706c3cb840c0383572d917660aee7cfe6e8acdf2857496b007e08fffe5aa5e582b9eaba1b8e5f03e7cc9b65b27d2ebfe1ecf2b2debf821e91063b38f508a4b26cde3e64e97e71800337e3d6bdf0ead46fd4c665523aeae50efb989749ab07f458747a52d36bf2a2820219ffff03148b8bf089170ca1b0028162f370590da675e3509fade69dadd8633d8cb4ceb903300b7f1ab75e409117c8972023b0deada6c24bc97cea4a5f873995329f7d715503f92edc49e38bd1c103e1ff1b26588a5e654f46cc6a25991bfe8a89e32319ad9603bb16d9f920a069a0b8e0cfe55499df0559f39bc5a1ff9b1bca15d7799747d0b503911782ca361faa58e6ab413c8a75dae9e67781809788d1bf1b3915d67e4a7f94034ef63109e290982ef1f168f979485f29476c2ec9d64106412460a6cee89c1cd303aa13025d9b9f8112094ff5ee05e8b8fabbbbcd5a5b4321961d7d749d3ee9da19033f9c8431ac46451f6cf271ba2079a439c83c82bc645ec807c1395127e3a5a8d903f064a419033d670a49a8f1d24e158b908e6644897126c15c4852c910c2b3aeb403f4b0a531a2b00831d511cfd7614aa8562157d956d94c1dcb85d09b52d21a69fa03f8d01e53d6dee2afaa538d0b42daad123b3bb0bd5fb58ce801b836361af966db03cc87b8e2e460f72adfa952e8fac73a343c4332c96ff796cfdf7997327ff5f6b3033ba392b62c307b4287534e3a171f2eddeffe129c97dffff02703b5397b1d69ca03130c04893f3e89d2d60489666299ee5a440032a08440bc37c209bcc3748b210903507ba2788358130ea723b1588e1a069791c90047cf1e58421942b82146212a9b03906d2f9d762c6c278e339085753acd99f1bfd3e84895931a0a6a35be2254a0e003bc814c43f5352b02bcf3dfc0a07bd678154a7118dc22a489d1762972927c377b037989cd28921175c6e47e6e8b9822c689afba8568c7bf04fa1b6e06dfc9fd211603238a039ed2a079b3ac2368cf5bf4f10184b98e2db2bc4c9ee9cb4167336ed35203031ef733c9407daf885ca83373ccfac80d775068b4b06f617d76543ff25d3b2003421d45ffdf3580e5acf857881972e00637d1194b1ae6a2076a8086c097c27fab00581f03f732d7ffc6c95534cdfa38dc6c3c7a0e06664381d6877d545939667f98e058207fa6a1b16f3a8c4d450fe6a46049202e7365ef359948df2404498846507b603c00581e022313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f43153b1003f1fdaddb14c9c47c6027de35a7b11e96d446f94a7275fc7b4c9c5e1fcd156a1500581e025353b0ec684c04cafe2e71487e2b1ea268d64b789256587713868b6f7958206498ba3cdf3dbd3d4afe0e0958697895a90f4f34c7ecbf7a0688c1b000c2f040021906040368de84ad9f3f9004bb0dcd649d253bebbdaf3dc2ccd58b9c37d64417c50253e600581f03e1351db6da7e7964b79096e4e609be190444daabf98b97ff32df4a1ad0c058203335f33eb546fe5a930f0077d1905e3f9351e933e52cef858dbf4b0547fdd90a00581f0350f20e43141e5530ccff335398e470e6debb89d6d486251c9e7331f4209058203802f4b3df208e5e19ea0fcefe66cbddc46ca9fbf56e1a96d4f43b18e39799880366b6ff3b300627c5a7c5f7f9ac75605abb6758ae7952a64ccc2764086b010d9000581f03ad9fa0cccdf4fe9586f5fd5b6b9211ed90b6ab9cda36bde403fda3d94160582057bf5947a678209afc6a3a83e03a0aecc7947998dc927483401552b904568dc90353bd9913b9f1cfc63fa47df249f1c65709b2d1b8c9fe67a74f8069fd0cfbac1800581f0301660229c9dda17a549d89236379cfef7a167e4fffd9d8cb4f660484115058209eb26542f3858f3bf7ed739aee56d3e4bd46ed4850d392299476dbf572ea17ce00581f035d7de90b386b5f7130b9beba73be53ab8010ef44193f3935031e9ddcfbf0582072706f754be290a3880d5181b26e595f9526e14b9ab1989e60b381f51cf273e300581f03f55f612defa6e9be97447a6420b0d83c2ee8e68f8f99eed7c8b42e0650005820444b19404568ad79574bb1b01bead75ad86e8fcbc80bd699e76eed5fdfd56a530337ade4a0b3c6d489cc8bd21ced4fddb2e52de623c8733664cf481ec4086a36970219f5df0388a9dcfab2d84707562bce20d2b60c1765bb92f429cd1736feb924d418dbd4330385e4fb27c98710a70c33649b4dda40dfe1eba97027a84cbe49409600c2007e2f03e146e32bdceac4b342cabdc2ef997611b44c10767cc19f1a5c7975dfd826062f03d890f365eae5327575eec5daee12af4610fcfd8a458fdd503f443b8552f5378303bbbeeea0b016c838181949b7e1ee8db03173e9b49bd8d8bcc6c09427b83bb11e03808e4fd9877a589a270dc7cce8b90bc6417d169e4b7deb0a8d0c836359b548ac038aedf819e0cf6c6a583637132b3166dee24134cb9abc497d2273f109c4c2d8df031cb51982e813ef509998e78ee2f2aeeaf1ca27841815894023d756cf64c841740363c76b93a1710d96ba55153a614e1fe6a3cb9e6eba741e6ab3aade07cc8054a903ec01b1bcef54996f70a18fd811650a1bf0a873d1bf9a2430544a36ef3f38cd02033fc9f9f9752e98e21ca5509f3c031f609e18621c2b74d96cb30108602cf0551103bacf0c4f6b076f531f6521c360a34c8c83ffa6533de99eb80be453c20c51bb7d03713357c9c96fd48f3530ff9da737858a0f542ab9cdbcee72164efcef3f63a7490219ffff03ac61e4b613601a7aa91720d027b77a89e580fa85a461b334e185f227954ab3e50320827771516adee6f43cabb77d83f391f946e812b839f8c44f81bab7b91aa11e0390e56f3cbd647fe09be54f4171c797d8947787670c4e4ca99f09656ade88deaf037079d5760d77152fafa368fcc0c2d5934ee602f5da5ba4ea6f5fd2da6c9c799803fdbb3e5c89715bb7346a4c40b9ac4f31aa2cc92de341d3aba6d22e42bd040f3e038a78e6bfbd5f7fb652f81888f59fbf41ffd4a27ca76b8fdc6f6b7c03cfa68f9f03f91f96154acd123e853e7e12f25d7464c941c0b486d1fabcb1617a42b3b020d7035fe89536eb268bf8d8f1d1f9e592b6933e32c7ceba67d9ff366790cf50a167240345b9d9e572e67de96e48ede5c6ab0942cbc082a3e3ea152f132ecbd19f7e1e2103ce5cd19263d4d8fef0b1f6845cd2f7dcdebcd905ee99d5c7e90094874d22355b0219ffff031d2c7093babb34f2fd3e03a814420f0856e15c739c69a63817bf48812467e908037afcb6dacbcd49190e99b8d1864e75281d0acd572e6737d86a688e57b210ea74035933c12a2d7cfaf278041907f633d26f99f0297b4e77a71940cc7e402b6336b2032b25a4655d6db1dbd5bbec0098a3d1dc5927fe9bdd715ffd18fb40c2e20bcbae035f61ce7b0a76eca5e0387e9f0f45940548d46ad13c86a387e76639bc79961ff5031c134a75587ed22a1edb0c3d454dd67a4ad4b72bf37e31780a8aedb14afe0600039eceaca836019640861531f19eb6e6b21121331f83746ae955a654b889c6d1d703bf4d49e160ed6f790a4acb5e316ebf9489b7a5e4b18b9fe192b34725e25e32cf0385dbd27184b0c30f85a6efb55f9b3f4da496f6be80e9885c47e59fc1d6212fce03f01ceed99aa7ed978d83be542a244a87e26e24d8d1585d901aa80185402b2e9103a4d8ff8a0422492ad18cb59d0d75875b1699b964c2b63d7e1e75eeae9bead0e8035464b238203448d05ed83a2facf6ce84a6ec11ef54430c70ee407c305c00bd40036bab490cb87ed8d1824f648350687e42dc5ae452e1f1e303b8f368795d14586f0350a3e97d52b04cec0341898a27250dd7c4eab5fdb6f81f85e8c0fbc28cb69a7703e5db1f23a431b845c31fadad30d81697e0dd863c6c7d4bfc243b6b5ad0d3854703a176069d696cae702c5913a1a91dd3cd2b47dccbbb1b9b32b37feaed4f66720d0374d91bd34a51f15f966a60ab989ae8f2e2af2f9b7b48dcf2711b81ea114d478003c28b689ef9241aa953c4014e09088d629dc76cbe987013d615920fef683f9f6c035d698f959fcf5edbbc4824f47f2cddd343913d5b9a2a4d720eb683c7b22c3196031bd608f5d66dd7ff9b4b1e1b920e2615bbbd3543820cd3b4c534846ab6b95cb203d56ce57e53247095b171650182c8cb273a8dfd0e8071681514c19d901ee9c26503ae460cb634f3c641701eb4b076728c331e4769b6954e6cef09ebfea9695641db03ac54aa5a16f6721637f4941669e4cab80d274e04071725f0100d62e4ed8bb35403ac210eff53a371a299edeb78e8cf19f029dea7bee9cb7eaa7666f54bf034483c037ddb4f5509dcbca0543b549a4c2847e96370af2b1098804a8e390b74d72964a700581e02345cd94142289dabf5ed51171a09629b461c474f78396beb9992879f845820a06012046ac4cc394392f1b7da1b325d36fdafa54acf6eccd67192c9d1dc43c700581e0222dc1a67635571c47d0bac3e618fb7c112720f30eb93bc29cdb1ae6e2d5820333cf56b0cd7297d54b6179b8cbf10ec553daa13a575a0555e1dfbc0b4b66fb90219600000581f035bb2c59b5d01ca00d8fee66b5b111e9abc92bed221ab992e2371f8e30ff058206fc4950ff5ac930417a4d43949140a9233ec795f974cd19bb7de46379aee93a803acc471a928f345e9e39512cf96a59e883acfbde52734de404d1aa770d332fc9603b2e8dabc9580cfae895ffd1ac963a672c5e13b77193188ec9749c18c4183e2bc00581f0396ef2e26c5647def2c2e128e7fb3f660276278a236cc4345d760638b95c058200fdaf744d22046ef39869610716089f6b0d261fd21df3f39f6405d3faa2fba8703d60241ced4afda1b0537dc5b4a3eb634fcecf54e2362c4755b6068a90bd0c20a03a1a1195699d3eae1b9b84ce15183aa11f79be3568c5ff63b7318d39bf74eed5f03796e37d63945716ee8fb6e6d258a59b9d8314057d6a549cdcf6356abf902fecf0219ccf60219ffff030d18579220196c36f2dbf1c5d836d8b2fc8859cda76afea7c38131d08643d13c03e4c43bb2c86f02f96a667da8837c31f0ef0236632c9d3cd00adecf6216433a5c03341091921d51cb58e4c4f2332a9f180f371107df5d94270c69e621e36eb7400103b3c1bf21d7b8b444e10a2c64ff1c78a6e013104474c15d18f35476fe0c14229103c1dbfc1f237865c46195a6840a2036e03aead3ce461a8e254628d9b1b72e8231038cd56c9631de83795e8e26bd5e0b01967a8c11090b3bcba7b67006d49f9b10f60351624aa087616d2c1cdc977badc47d00b655253ddd83ce0a53f6597aa60884b603be5c80380bf8c7686e9e30d0b97a98921ea4529687444abc90270bc14f13529703e3c863abe706d04847cc47be9cf8a32e1dcbe24b2a86cc43a7a515ce7456b9580351ab0aa11dd876bef6a6c533e2e52405d01bfa99b50701471f30c8c4cf00774b0219ffff03db7c500b53a7a670d57ffddd776c934360e2f888bd67988ae050dbfd9da682120316bd6f2386f53d0adea44a97654b62c94e787a5a247d70476d2a369ccef22ffd03b8c97b6d44b0becae81c270da646e850a61a325c37cb834d465ecfa2897ae2e203383945b6c4dbcf003e8825c6621f67cf53a37be476b0ddcf45f2fef467090c0903bd1f480355bcdc209d1356659bee6bfede85141c34d237b9c5acf08a5bed56a30219ffff0219ffff05581d02c91b59130f9e21a8ef102b67c684f7ab30cc527e4085138c47f5e1440f014b013ca152b1148f7841616e1908630219188405581e03f39923e7d1c09e1fa7ea1ff00998b6e8b5e0e3fee97d32198bd6709440040505581e03c6bb0ada8a73009a69dded7209b20076d12e22bdc2a3dd4411cf2e5a600c064740dc31818135d805581e0349c4ce9f7f2cf18c6b7e35c1947c09eea6b3d5593ca80c3f2be47b5b60040205581e039e5623878aab558fe9ad327701275e60febeefce24ab93389de1894150040105581e0368415b54cd5a7b8a2650b53a791493babc677afdd08bff14aed9f7ba300c01463691d6afc00005581e03d7342d5edfc0b727e83de4b9148b7748930f985f01fa4fab20a69cfc8004020219aafd03bde0e992dd5558aa8cf68cdc6ffffffb776f8c7abc4a5d5e2afe95e85181913003155c116995d36dbc1bd9f699f3c982030d787ea6bab1528fcd6fd73e647d962e034d90da2d1e493f065dda347d85db35bd6fed4bef91f86a09d4f7f80702da307103f500c923295694874df3f4eeffd614efccd97c5fef429513e9cf09de76e516b80387f6a4287ecac844f6efdcc1ab19821a09935919bf846515c09dde232eee2fa503ee9ae764bfd39b48c82982dd189272b0738f887899260c2a6edc86eff600452d038a0b3f491124d61527af8e4da8bd9c1d83319c0e44d9d5f1f10259bac2aa31eb036c9c9df17936e4ea7a8d9f065dd0af79a28c5fc43a25ac3ab6f2169ef9d6a91603755fc1ade6943c345250eb73b69124c26ae468098036be47f5b51784408da4310219ffff03a3439437ec06a8b8521c951c35c09ec39cae94351c006cde6733a30bb45351fe03ad3014c3aa23217155df89a2e75168544908a7c43ae62cadb91bdef7b419da590219ffff037a27f31ee5aebd674def7d63d7a20855c7d4d3b6ff7359c72c1d5795d1a26521036eefbcd1f7a3f5450853de3c4e580f0eaaf7eb18e7877cbc24b386ec1aca49aa033868281f8a30543c02d65ded9875f2631897510a5fcb39063b4e017aedd2cfd203c5129ae4b27a796d36a3e3a4695a09e634810633451684fc1fdc320b47312b0f0219ffff03a116c4697d20f262ccd97b60a9ba0a7c1d2d4cb1bf5d06a492e00c1b672aa93c030e8656226c3077310ae5534eb5799edbb6c1f51f41f8f0b1e307cea766677b2e0353b22468a534f021eaf53087c51a6e22f4391f09f8710fe93941d98993b7a292033c060ef1c44bbdab2b31a0f83040203284eb6590a60bd5ed84716e547973ed7e032642af6ba38da5f7c3021b756b399141f13bb24217b0916a9c1e96d7eeda8f830387a6246b6d74dd04a4bb19444029dfe631b67c93a935ff93641bbce3ed3634a803ce088911704e98a516271371718ca0ed7d7ea2f3d8781db3cdd749149d26cd110375f138c31af3a6d8614165008bec347a1d66c5fcbcac18c8fa61df83e5add0bc03f44e111f736381be5ac2adb8a3ea17c4923d053fddb3e205dfba93c6b6a9f8d7037623e3ff7877ecfb244baab9f63590c56b9da388d5c1a54bf894b06f12bd33d003fc438f2310687eed9407542a54870ffbc500b8d7285bb708330b01d6fd65b7f3037c8f9c0b0235e839105233a0c30a9dd4c93d32d63eb631ddcf73949a531298d30311b6ae5a820f9e095b582beb2401fe5ca4bbf3d12d150728ca99ecd17b4a6598033a6829324c286ad6901e097c79e03373d097e987cb4d4f2d134a1d4b167b5158031bf4146efc4fb0d6d7703dad2d62e7913af24068aeb8ccef3f73cb1ab81f381b039d28f2f8771de0e9ccdbb2e16b280a15c830027d6c83ea6e237b19f77a5454a70313e09758d090e2443e0b76944ecee5986f9b18b58e2947dd8ccea8e5dd1f993f0344036dcb74f48163433dfa87c04b5888c7be4d1a5febdae49ab8d47901dc07270303b65196a8cf63075b5c7759679c4a0e6adcc16a841bc7900b0eee4782e5d41f033871342ab7e9ffce18737e8c3dc7258c0a2e17a75c780a5caf800cfafe2874ef05581e03520f1c1144b24c2ce87e7459e0bc768a2b327757bdee9be235cdfda630040105581e03adc92a3d57103e87d72eae67f3ea13a730225d0e1e8e0af52b59c2b6800c034655e9e86224d805581e0320dc1086e8876e02ff4f7cbb69e79bb49001d246469a012822f6b05d700401035e5a124859c816ceff28817fead2583da25fff3bb8bd08acf97cb99e5892036905581e0314055b1c9397f758dc84a39c23a8056b3bc19add63abac4f3ddca21570040105581e037e2a455dbb9216f5da64ca9338618bd59782bba0426a3a3ef68c0cff700401038a70a36b03df65c40adce9a36ad23eb646131d89372524efd60698ec88c1a3fc05581d0287d6e269b41b8c7406da2c48373f4c3dba68e9d6d0acfd71821198f4040204595ba8608060405234801561001057600080fd5b506004361061036d5760003560e01c80638456cb59116101d3578063b7b7289911610104578063e3ee160e116100a2578063ef55bec61161007c578063ef55bec614611122578063f2fde38b1461118e578063f9f92be4146111c1578063fe575a87146111f45761036d565b8063e3ee160e14611075578063e5a6b10f146110e1578063e94a0102146110e95761036d565b8063d505accf116100de578063d505accf14610f64578063d608ea6414610fc2578063d916948714611032578063dd62ed3e1461103a5761036d565b8063b7b7289914610db0578063bd10243014610e78578063cf09299514610e805761036d565b8063a0cc6a6811610171578063aa20e1e41161014b578063aa20e1e414610cd4578063aa271e1a14610d07578063ad38bf2214610d3a578063b2118a8d14610d6d5761036d565b8063a0cc6a6814610c5a578063a457c2d714610c62578063a9059cbb14610c9b5761036d565b80638da5cb5b116101ad5780638da5cb5b14610b6a57806395d89b4114610b725780639fd0506d14610b7a5780639fd5a6cf14610b825761036d565b80638456cb5914610a4b57806388b7ab6314610a535780638a6db9c314610b375761036d565b806338a63183116102ad57806354fd4d501161024b5780635c975abb116102255780635c975abb146109d557806370a08231146109dd5780637ecebe0014610a105780637f2eecc314610a435761036d565b806354fd4d501461094c578063554bab3c146109545780635a049a70146109875761036d565b806340c10f191161028757806340c10f19146107fb57806342966c6814610834578063430239b4146108515780634e44d956146109135761036d565b806338a63183146107b257806339509351146107ba5780633f4ba83a146107f35761036d565b80632fc81e091161031a578063313ce567116102f4578063313ce5671461056f5780633357162b1461058d57806335d99f35146107795780633644e515146107aa5761036d565b80632fc81e09146105015780633092afd51461053457806330adf81f146105675761036d565b80631a8952661161034b5780631a8952661461045657806323b872dd1461048b5780632ab60045146104ce5761036d565b806306fdde0314610372578063095ea7b3146103ef57806318160ddd1461043c575b600080fd5b61037a611227565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103b457818101518382015260200161039c565b50505050905090810190601f1680156103e15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104286004803603604081101561040557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356112d3565b604080519115158252519081900360200190f35b610444611374565b60408051918252519081900360200190f35b6104896004803603602081101561046c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661137a565b005b610428600480360360608110156104a157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135611437565b610489600480360360208110156104e457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166116f2565b6104896004803603602081101561051757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611853565b6104286004803603602081101561054a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118bb565b6104446119b4565b6105776119d8565b6040805160ff9092168252519081900360200190f35b61048960048036036101008110156105a457600080fd5b8101906020810181356401000000008111156105bf57600080fd5b8201836020820111156105d157600080fd5b803590602001918460018302840111640100000000831117156105f357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561064657600080fd5b82018360208201111561065857600080fd5b8035906020019184600183028401116401000000008311171561067a57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156106cd57600080fd5b8201836020820111156106df57600080fd5b8035906020019184600183028401116401000000008311171561070157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050813560ff16925050602081013573ffffffffffffffffffffffffffffffffffffffff908116916040810135821691606082013581169160800135166119e1565b610781611d23565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610444611d3f565b610781611d4e565b610428600480360360408110156107d057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611d6a565b610489611e02565b6104286004803603604081101561081157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611ec5565b6104896004803603602081101561084a57600080fd5b5035612296565b6104896004803603604081101561086757600080fd5b81019060208101813564010000000081111561088257600080fd5b82018360208201111561089457600080fd5b803590602001918460208302840111640100000000831117156108b657600080fd5b9193909290916020810190356401000000008111156108d457600080fd5b8201836020820111156108e657600080fd5b8035906020019184600183028401116401000000008311171561090857600080fd5b509092509050612538565b6104286004803603604081101561092957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356126ef565b61037a612882565b6104896004803603602081101561096a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166128b9565b610489600480360360a081101561099d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060ff6040820135169060608101359060800135612a20565b610428612abe565b610444600480360360208110156109f357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612adf565b61044460048036036020811015610a2657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612af0565b610444612b18565b610489612b3c565b610489600480360360e0811015610a6957600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359160808201359160a08101359181019060e0810160c0820135640100000000811115610ac257600080fd5b820183602082011115610ad457600080fd5b80359060200191846001830284011164010000000083111715610af657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612c16945050505050565b61044460048036036020811015610b4d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612d7a565b610781612da2565b61037a612dbe565b610781612e37565b610489600480360360a0811015610b9857600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610be557600080fd5b820183602082011115610bf757600080fd5b80359060200191846001830284011164010000000083111715610c1957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612e53945050505050565b610444612eea565b61042860048036036040811015610c7857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135612f0e565b61042860048036036040811015610cb157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135612fa6565b61048960048036036020811015610cea57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613109565b61042860048036036020811015610d1d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613270565b61048960048036036020811015610d5057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661329b565b61048960048036036060811015610d8357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135613402565b61048960048036036060811015610dc657600080fd5b73ffffffffffffffffffffffffffffffffffffffff82351691602081013591810190606081016040820135640100000000811115610e0357600080fd5b820183602082011115610e1557600080fd5b80359060200191846001830284011164010000000083111715610e3757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550613498945050505050565b61078161352d565b610489600480360360e0811015610e9657600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359160808201359160a08101359181019060e0810160c0820135640100000000811115610eef57600080fd5b820183602082011115610f0157600080fd5b80359060200191846001830284011164010000000083111715610f2357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550613549945050505050565b610489600480360360e0811015610f7a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356136a2565b61048960048036036020811015610fd857600080fd5b810190602081018135640100000000811115610ff357600080fd5b82018360208201111561100557600080fd5b8035906020019184600183028401116401000000008311171561102757600080fd5b509092509050613744565b61044461382d565b6104446004803603604081101561105057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516613851565b610489600480360361012081101561108c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e0810135906101000135613889565b61037a6139f1565b610428600480360360408110156110ff57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135613a6a565b610489600480360361012081101561113957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e0810135906101000135613aa2565b610489600480360360208110156111a457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613bfd565b610489600480360360208110156111d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613d50565b6104286004803603602081101561120a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613e0d565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156112cb5780601f106112a0576101008083540402835291602001916112cb565b820191906000526020600020905b8154815290600101906020018083116112ae57829003601f168201915b505050505081565b60015460009074010000000000000000000000000000000000000000900460ff161561136057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b61136b338484613e18565b50600192915050565b600b5490565b60025473ffffffffffffffffffffffffffffffffffffffff1633146113ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615824602c913960400191505060405180910390fd5b6113f381613f5f565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f117e3210bb9aa7d9baff172026820255c6f6c30ba8999d1c2fd88e2848137c4e90600090a250565b60015460009074010000000000000000000000000000000000000000900460ff16156114c457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336114ce81613f6a565b15611524576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b8461152e81613f6a565b15611584576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b8461158e81613f6a565b156115e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a6020908152604080832033845290915290205485111561166d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806159146028913960400191505060405180910390fd5b611678878787613f98565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a602090815260408083203384529091529020546116b39086614163565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600a60209081526040808320338452909152902055600193505050509392505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461177857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166117e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061575d602a913960400191505060405180910390fd5b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b60125460ff1660011461186557600080fd5b6000611870306141da565b9050801561188357611883308383613f98565b61188c30614224565b5050601280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166002179055565b60085460009073ffffffffffffffffffffffffffffffffffffffff16331461192e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806157fb6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600d909152808220829055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a2506001919050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60065460ff1681565b60085474010000000000000000000000000000000000000000900460ff1615611a55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061598f602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416611ac1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806158c1602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316611b2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806157346029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611b99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061593c602e913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116611c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180615a7c6028913960400191505060405180910390fd5b8751611c189060049060208b01906154cd565b508651611c2c9060059060208a01906154cd565b508551611c409060079060208901906154cd565b50600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff8716179055600880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff8781169190911790925560018054821686841617905560028054909116918416919091179055611cda8161422f565b5050600880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d49614276565b905090565b600e5473ffffffffffffffffffffffffffffffffffffffff1690565b60015460009074010000000000000000000000000000000000000000900460ff1615611df757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b61136b33848461436b565b60015473ffffffffffffffffffffffffffffffffffffffff163314611e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615a306022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60015460009074010000000000000000000000000000000000000000900460ff1615611f5257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff16611fba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806158a06021913960400191505060405180910390fd5b33611fc481613f6a565b1561201a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b8361202481613f6a565b1561207a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff85166120e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806156c96023913960400191505060405180910390fd5b6000841161213f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806157ac6029913960400191505060405180910390fd5b336000908152600d6020526040902054808511156121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180615a02602e913960400191505060405180910390fd5b600b546121b590866143b5565b600b556121d4866121cf876121c9836141da565b906143b5565b614430565b6121de8186614163565b336000818152600d6020908152604091829020939093558051888152905173ffffffffffffffffffffffffffffffffffffffff8a16937fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8928290030190a360408051868152905173ffffffffffffffffffffffffffffffffffffffff8816916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600195945050505050565b60015474010000000000000000000000000000000000000000900460ff161561232057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff16612388576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806158a06021913960400191505060405180910390fd5b3361239281613f6a565b156123e8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b60006123f3336141da565b90506000831161244e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806156a06029913960400191505060405180910390fd5b828110156124a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061587a6026913960400191505060405180910390fd5b600b546124b49084614163565b600b556124c5336121cf8386614163565b60408051848152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a260408051848152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b60125460ff1660021461254a57600080fd5b6125566005838361554b565b5060005b83811015612698576003600086868481811061257257fe5b6020908102929092013573ffffffffffffffffffffffffffffffffffffffff168352508101919091526040016000205460ff166125fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001806155ed603d913960400191505060405180910390fd5b61262b85858381811061260957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16614224565b6003600086868481811061263b57fe5b6020908102929092013573ffffffffffffffffffffffffffffffffffffffff1683525081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560010161255a565b506126a230614224565b505030600090815260036020819052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009081169091556012805490911690911790555050565b60015460009074010000000000000000000000000000000000000000900460ff161561277c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60085473ffffffffffffffffffffffffffffffffffffffff1633146127ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806157fb6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600d825291829020859055815185815291517f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d209281900390910190a250600192915050565b60408051808201909152600181527f3200000000000000000000000000000000000000000000000000000000000000602082015290565b60005473ffffffffffffffffffffffffffffffffffffffff16331461293f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166129ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061564d6028913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b60015474010000000000000000000000000000000000000000900460ff1615612aaa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b612ab78585858585614531565b5050505050565b60015474010000000000000000000000000000000000000000900460ff1681565b6000612aea826141da565b92915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526011602052604090205490565b7fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de881565b60015473ffffffffffffffffffffffffffffffffffffffff163314612bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615a306022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b60015474010000000000000000000000000000000000000000900460ff1615612ca057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b86612caa81613f6a565b15612d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b86612d0a81613f6a565b15612d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b612d6f89898989898989614571565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156112cb5780601f106112a0576101008083540402835291602001916112cb565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015474010000000000000000000000000000000000000000900460ff1615612edd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b612ab78585858585614692565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b60015460009074010000000000000000000000000000000000000000900460ff1615612f9b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b61136b338484614956565b60015460009074010000000000000000000000000000000000000000900460ff161561303357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3361303d81613f6a565b15613093576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b8361309d81613f6a565b156130f3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b6130fe338686613f98565b506001949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461318f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166131fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806158c1602f913960400191505060405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fdb66dfa9c6b8f5226fe9aac7e51897ae8ee94ac31dc70bb6c9900b2574b707e690600090a250565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205460ff1690565b60005473ffffffffffffffffffffffffffffffffffffffff16331461332157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661338d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180615ad26032913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fc67398012c111ce95ecb7429b933096c977380ee6c421175a71a4a4c6c88c06e90600090a250565b600e5473ffffffffffffffffffffffffffffffffffffffff163314613472576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806158f06024913960400191505060405180910390fd5b61349373ffffffffffffffffffffffffffffffffffffffff841683836149b2565b505050565b60015474010000000000000000000000000000000000000000900460ff161561352257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b613493838383614a3f565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015474010000000000000000000000000000000000000000900460ff16156135d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b866135dd81613f6a565b15613633576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b8661363d81613f6a565b15613693576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b612d6f89898989898989614b49565b60015474010000000000000000000000000000000000000000900460ff161561372c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b61373b87878787878787614be7565b50505050505050565b60085474010000000000000000000000000000000000000000900460ff168015613771575060125460ff16155b61377a57600080fd5b6137866004838361554b565b506137fb82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600181527f320000000000000000000000000000000000000000000000000000000000000060208201529150614c299050565b600f555050601280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b7f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742981565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600a6020908152604080832093909416825291909152205490565b60015474010000000000000000000000000000000000000000900460ff161561391357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b8861391d81613f6a565b15613973576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b8861397d81613f6a565b156139d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b6139e48b8b8b8b8b8b8b8b8b614c3f565b5050505050505050505050565b6007805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156112cb5780601f106112a0576101008083540402835291602001916112cb565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152601060209081526040808320938352929052205460ff1690565b60015474010000000000000000000000000000000000000000900460ff1615613b2c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b88613b3681613f6a565b15613b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b88613b9681613f6a565b15613bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b046025913960400191505060405180910390fd5b6139e48b8b8b8b8b8b8b8b8b614c83565b60005473ffffffffffffffffffffffffffffffffffffffff163314613c8357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116613cef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806156ec6026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a1613d4d8161422f565b50565b60025473ffffffffffffffffffffffffffffffffffffffff163314613dc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615824602c913960400191505060405180910390fd5b613dc981614224565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85590600090a250565b6000612aea82613f6a565b73ffffffffffffffffffffffffffffffffffffffff8316613e84576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806159de6024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216613ef0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806157126022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8084166000818152600a6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b613d4d816000614cc7565b73ffffffffffffffffffffffffffffffffffffffff1660009081526009602052604090205460ff1c60011490565b73ffffffffffffffffffffffffffffffffffffffff8316614004576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806159b96025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216614070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061562a6023913960400191505060405180910390fd5b614079836141da565b8111156140d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806157d56026913960400191505060405180910390fd5b6140e8836121cf836140e2876141da565b90614163565b6140f9826121cf836121c9866141da565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000828211156141d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b73ffffffffffffffffffffffffffffffffffffffff166000908152600960205260409020547f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b613d4d816001614cc7565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152600093611d4993919290918301828280156143235780601f106142f857610100808354040283529160200191614323565b820191906000526020600020905b81548152906001019060200180831161430657829003601f168201915b50505050506040518060400160405280600181526020017f3200000000000000000000000000000000000000000000000000000000000000815250614366614d50565b614d54565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600a602090815260408083209386168352929052205461349390849084906143b090856143b5565b613e18565b60008282018381101561442957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8111156144a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615850602a913960400191505060405180910390fd5b6144b282613f6a565b15614508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806157876025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff909116600090815260096020526040902055565b612ab78585848487604051602001808481526020018381526020018260ff1660f81b81526001019350505050604051602081830303815290604052614a3f565b73ffffffffffffffffffffffffffffffffffffffff861633146145df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061596a6025913960400191505060405180910390fd5b6145eb87838686614dc8565b604080517fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de860208083019190915273ffffffffffffffffffffffffffffffffffffffff808b1683850152891660608301526080820188905260a0820187905260c0820186905260e080830186905283518084039091018152610100909201909252805191012061467d90889083614e88565b6146878783615006565b61373b878787613f98565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214806146c05750428210155b61472b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a207065726d697420697320657870697265640000604482015290519081900360640190fd5b60006147d3614738614276565b73ffffffffffffffffffffffffffffffffffffffff80891660008181526011602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938b166060840152608083018a905260a083019390935260c08083018990528151808403909101815260e09092019052805191012061508b565b905073800c32eaa2a6c93cf4cb51794450ed77fbfbb172636ccea6528783856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614860578181015183820152602001614848565b50505050905090810190601f16801561488d5780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b1580156148ac57600080fd5b505af41580156148c0573d6000803e3d6000fd5b505050506040513d60208110156148d657600080fd5b505161494357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f454950323631323a20696e76616c6964207369676e6174757265000000000000604482015290519081900360640190fd5b61494e868686613e18565b505050505050565b61349383836143b084604051806060016040528060258152602001615b4e6025913973ffffffffffffffffffffffffffffffffffffffff808a166000908152600a60209081526040808320938c168352929052205491906150c5565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052613493908490615176565b614a49838361524e565b614ac3837f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742960001b8585604051602001808481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200193505050506040516020818303038152906040528051906020012083614e88565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260106020908152604080832086845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518492917f1cdd46ff242716cdaa72d159d339a485b3438398348d68f09d7c8c0a59353d8191a3505050565b614b5587838686614dc8565b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226760208083019190915273ffffffffffffffffffffffffffffffffffffffff808b1683850152891660608301526080820188905260a0820187905260c0820186905260e080830186905283518084039091018152610100909201909252805191012061467d90889083614e88565b61373b87878787868689604051602001808481526020018381526020018260ff1660f81b81526001019350505050604051602081830303815290604052614692565b600046614c37848483614d54565b949350505050565b612d6f89898989898988888b604051602001808481526020018381526020018260ff1660f81b81526001019350505050604051602081830303815290604052614b49565b612d6f89898989898988888b604051602001808481526020018381526020018260ff1660f81b81526001019350505050604051602081830303815290604052614571565b80614cda57614cd5826141da565b614d23565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600960205260409020547f8000000000000000000000000000000000000000000000000000000000000000175b73ffffffffffffffffffffffffffffffffffffffff90921660009081526009602052604090209190915550565b4690565b8251602093840120825192840192909220604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8187015280820194909452606084019190915260808301919091523060a0808401919091528151808403909101815260c09092019052805191012090565b814211614e20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615675602b913960400191505060405180910390fd5b804210614e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615b296025913960400191505060405180910390fd5b614e82848461524e565b50505050565b73800c32eaa2a6c93cf4cb51794450ed77fbfbb172636ccea65284614eb4614eae614276565b8661508b565b846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614f23578181015183820152602001614f0b565b50505050905090810190601f168015614f505780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b158015614f6f57600080fd5b505af4158015614f83573d6000803e3d6000fd5b505050506040513d6020811015614f9957600080fd5b505161349357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600081815260106020908152604080832085845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518392917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a35050565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6000818484111561516e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561513357818101518382015260200161511b565b50505050905090810190601f1680156151605780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60606151d8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166152dc9092919063ffffffff16565b805190915015613493578080602001905160208110156151f757600080fd5b5051613493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615a52602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260106020908152604080832084845290915290205460ff16156152d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180615aa4602e913960400191505060405180910390fd5b5050565b6060614c378484600085856152f085615447565b61535b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106153c557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101615388565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114615427576040519150601f19603f3d011682016040523d82523d6000602084013e61542c565b606091505b509150915061543c82828661544d565b979650505050505050565b3b151590565b6060831561545c575081614429565b82511561546c5782518084602001fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815284516024840152845185939192839260440191908501908083836000831561513357818101518382015260200161511b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061550e57805160ff191683800117855561553b565b8280016001018555821561553b579182015b8281111561553b578251825591602001919060010190615520565b506155479291506155d7565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106155aa578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082351617855561553b565b8280016001018555821561553b579182015b8281111561553b5782358255916020019190600101906155bc565b5b8082111561554757600081556001016155d856fe46696174546f6b656e56325f323a20426c61636b6c697374696e672070726576696f75736c7920756e626c61636b6c6973746564206163636f756e742145524332303a207472616e7366657220746f20746865207a65726f20616464726573735061757361626c653a206e65772070617573657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e206973206e6f74207965742076616c696446696174546f6b656e3a206275726e20616d6f756e74206e6f742067726561746572207468616e203046696174546f6b656e3a206d696e7420746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737346696174546f6b656e3a206e65772070617573657220697320746865207a65726f2061646472657373526573637561626c653a206e6577207265736375657220697320746865207a65726f206164647265737346696174546f6b656e56325f323a204163636f756e7420697320626c61636b6c697374656446696174546f6b656e3a206d696e7420616d6f756e74206e6f742067726561746572207468616e203045524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f7420746865206d61737465724d696e746572426c61636b6c69737461626c653a2063616c6c6572206973206e6f742074686520626c61636b6c697374657246696174546f6b656e56325f323a2042616c616e636520657863656564732028325e323535202d20312946696174546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f742061206d696e74657246696174546f6b656e3a206e6577206d61737465724d696e74657220697320746865207a65726f2061646472657373526573637561626c653a2063616c6c6572206973206e6f7420746865207265736375657245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636546696174546f6b656e3a206e657720626c61636b6c697374657220697320746865207a65726f206164647265737346696174546f6b656e56323a2063616c6c6572206d7573742062652074686520706179656546696174546f6b656e3a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e742065786365656473206d696e746572416c6c6f77616e63655061757361626c653a2063616c6c6572206973206e6f7420746865207061757365725361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656446696174546f6b656e3a206e6577206f776e657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e2069732075736564206f722063616e63656c6564426c61636b6c69737461626c653a206e657720626c61636b6c697374657220697320746865207a65726f2061646472657373426c61636b6c69737461626c653a206163636f756e7420697320626c61636b6c697374656446696174546f6b656e56323a20617574686f72697a6174696f6e206973206578706972656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122005677c3919f4b149e065a5983baa9e2fb099cab5463ccd06429f70b32d8d9bdf64736f6c634300060c00330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563041010058210305787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0410100582103d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80205820ff1bba8c5962591285628e226cfe21a129312cfd293b407070da1d82f098460103b30d5e39bb2a266518592f8bf752ce6d25fcfd24908b3c862f5f487ddf9109610058210317fb9989707d00d29edf83f0ce78ffe6efc3e7e2f0a33e6a7370cf9390ae63c058208000000000000000000000000000000000000000000000000000000000000000005821033f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30550100000000000000000000000000000000000000010219c91405581d020ab04938f26cadaf9df6fe1389ad0a110acc2ffd76feaa1dc72a138e0701195ba802182205581e035c0f632b2b143a27400257b92b6008ecc69a7ff00d34104f16bff667200c0147038e3c48e101c2021972da0322c88326fc3fba3a116b89bf228bd61572cf3de2bd5fc51f2755bb084e5f2a0c03b848e2a564126b626ce3cad8147d9732a3dcb838fddd8cd423101f666d4f5bb4039b617dfcdc2dc5aea5cf6c052a8ae308801747f0bb7e141baeef835768b7806903eddebb3d9c98cca8c716e36fcb1ca053ddd936471a00f8cbbdfd18edab81e54403fd6aeaae8798f0258a6ccee26583471aacf6b73c9ebc543b7a58e8ebb3e31e9e0362b12bf426cad5090f7cf1d808d3a2de02e21a680cad51bfc007489a1658330203f01a80379be3f8af69cf19e3fff1b8103ecdb2f8d86d35535d1d8c55ed313fe20393fba4b24677444331d035dca0bb5a72cd32ca6763e82c6ab222e08c1c6f6b3f03bc471ad3981dafd91645d7ba97eb027b62a24950db77f73bb5fe8fde0791584f03dff9acfa3119b59f2cbba9e37505d4c3bbcc84c642495f3abd8eb8fb6ad03dea0319a9ba3f2108048e07191495f1499e56c1a33a96d3f7e135d3410d10cb6e527d0376afc3bf5b27d160ed41d005ba5d67039dd2f6f8f874efb2ce15b84a89675a6603f984c38c2d5a6efa92af5a93f30139b77e3d9c5b0c6ada51b61c69068461cc250219ffff032069e0e434346abbeb290629cdac726d877757ab2d1f7ce4178cd4afd84f61e3032e65db7b17aab0a3bc6f5a167abe62a2e5b9b0724c8debc1cc9e2d82af25cc8d0349886718e61a131865c2cd6af3335334919686cb441ed7bed980dcb6614da18c03862da9fb73e33f09a6aea5e2f9a349b6eb39dc41dcd139561a582cbaa08597d203fee2a20fe296ccdb82dafa92712575fee930e58063802900c2965c0d0935064c030200a463d6a986f3f7dea04abb32aef261efdbe60b80aa59604d02b2624b5efc0386c537630ecba73c29d03de75146faa10f738e13f53bea48e332310de17524d803d2deb62d83a61daae697abdbdc29247ddd714c1b466a05e12fbb1e7a5b7a2b6703f15c6cfcf9fea344ad72fb73f3268a9a7767489af5aac935cb6e24793a9c28fd03490d77f30dd7af5c22f6138747b8f1bd20c144222ee58e2a6976e45274cd7c0a03ba5b27eca033ab6f0ba0f56d4b1d93e74822a840872cf79f2d8700d16a36a7fe0219ffff032759d1bc36b516b29af5ae8ec4c85fcdda5a6e9ad46728784d8e0771f2cf1c14039ac5c82c38162421feec6d2d55cb1b72d29cdd3aec635e7ed76a61051ca6c97203f2994b0de1c84674d5a084dfe82f4f349d6ffe6540b82e208319e8c5eea339b603eb20e5b7f68bf6a05377fb7757872aeec2df217dcbc3b1a3740557966f1e0afa0310b3a340582a869f4987b855261d65f57855f360d06ca4fb92ce4862eef4dc60036559247ef80a9cb05f545c37f474bc2be00c19a71012255702060daf31bc9daf037ace6590ed79e2758175ece70573de936da576f9222f0e8433e3cb8e3b7337f30219ffff0309867945ab0dbe41394c8eef0a6183f65a2689c8fb8a2d0c119916a0b961e5fa03f9326b2d73a7bd26fa30a9ff6eb190bcbc290f391c1f679f045ee15ba760f63103d16c3014c947673bc088722fb37c86534f69c81428971a11e1f0a2f34b788a4d0357fd3ca6f4b4a677c53ca16b018e05924356ff78e29e48455639a20e02080f53036a4f5263b85bbd2b220e5b6b4e1c7268d974ccb516ae1785f89473847ddb221d0347e325fc0c8fec00c8b58fe60a23a7951acaa48cc523a81675c747b64ecfe954034cb07228a192983ab315c88bdb4e2cb12cf781487e86be312115dd7acf26feea0219ffff03382fde5ef247cc216a9220a9e459b11e51e235a3f49f1105be38268177bab0c30346df6e48b751206da8fd3677c0cd0507738b06383f368d852148064ae4fe6da703c741f2215d20ea7adef2d05c51391ec542a672dc2c3aed676e1a8fc37fd7a9a6035faffc4881535408e7811336ed721af1fd27b7599641f89df7f774dd9bc16563031e26e45b4ac16368cd6f8df30b38ab6da199fc335c62336f650ed7b7e9dfabfb03c363905a26c7fbaf05644da576a3692347260c5c53c1c323fd1d1cf39ded524b03a737a2b7e5eb8b9c43478f3c1cba35919159813bfdbb055347718ebf60b85dce03449f823a3edeff5657f6422873ddf0e3f03c0553209a533822ef25d6ec05969a038fe917f66580460ebfdeca99cdafb8930afa15da95681e17fa6b3076f86a5c7d03bc4a24d60a2b868b9427097423790358695dfb1ddbcaa32878dd1e5eccac419803911de816431831962bd5fcda2aeac5e5401f5f20290be13ae78c5a86ea44738e03a6429e16cb296be0da5c1f84752ae07f58b51d43ec48cf347b20ac7c2b443c2603ae76c6523342e9d12134fbf4cdd637045716b0ec0df4876d45a4b3d2415330af03a12bf4e49cac24791d09c46b3c9167272d758068e58f8727159def3d5066b9e803dabf657ea559e041c03a05ce0e28631807a90ff8b932827b4bd6be58d1257aa80322636db4ab737d960c89273ed45749e2c1e4b970e1dfec5973f004bc462706a80367ae6921bb9db201d66ad3c614968f7db07d584d86d22d0e3383ebb4db939da303334bcead2e3a487619092b61f52054512923cdf37a5f34a6ffaf9549dbd08bc50330eefd9f09abc147d21ae42e9dc7a680b9fdc62f6c7aa1abdabc291c6e20368f035d76df4ed74c2128199c612a657807bf98deb3bc417e760d9bdcb4b03236ae5e03053ea96cb30707fc8a7b11212a88f24d07e0702699501473ab3c6c5fcc73f07403a3061642ec01fbe378b822a8f2cec50f78006c68fbe68a5d1e86efafccddb6db03dd28f027279878402026bd6718271b378f104b5c9d9f75ff1c1b7a6abcade73003a82344459fecb8bd3eb1e075fefc3e7e51699e416797c0aacf12fb9f4e461b53039e4276a5083aa62616bd8196171ed24c7c0a8b5856a5feb1bb5490dabb5a170105581e038ad3800b548cdf174a1197daa3b46ac1508d6cfd12887f4754db4f1760040105581e030124479d8c901ff22ac9f0c790b978e7a5a8c0a23919e9a6f1c2937e400403037a1eee6a30d5bf78a55ec34de89f774ee4f83fc6797034803368dd21813257800380b5b0d4c80a027055711c4c059939697f9d8d0ba89ff8c6bd3a279a2cc22a4a05581e03caf9c26a3e93a5d5c212777567aafd66210b1f69d644e6c6ae0400574007011bffffffffffffffff05581e03a0307a2d064039f02e1e4e91efc085627e433fcf3df4f271c69bf045900c05471111e51c330666033a34ecc281271d075ae3cbe3bdaa23e844a8cb1b7c27608214bc11766657524c03b5c827f862443609ec3d2cd1aa4108eabebb825bc2eeb253e870ae103744296c05581e0383689d7ec827a6951118dbfa886b0aefdbc2e4177c498f463e12aca2f0040605581e0332609415fb36d963983b2d8ece79bcc479d69109bbf86768a7e0d79aa0040205581d026dbce9112a28b326a1e32585a905aa8af634efa27b438636d0638b680c1827464e5ab6a65040045921cb608060405234801561001057600080fd5b50600436106101375760003560e01c806379cc6790116100b8578063986502751161007c57806398650275146106fe578063a2309ff814610708578063a457c2d714610726578063a9059cbb1461078c578063aa271e1a146107f2578063dd62ed3e1461084e57610137565b806379cc67901461043b5780637fd30df0146104895780638da5cb5b146105ed57806395d89b4114610637578063983b2d56146106ba57610137565b8063313ce567116100ff578063313ce5671461030d578063355274ea14610331578063395093511461034f57806342966c68146103b557806370a08231146103e357610137565b806306fdde031461013c578063095ea7b3146101bf57806318160ddd1461022557806323b872dd146102435780633092afd5146102c9575b600080fd5b6101446108c6565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610184578082015181840152602081019050610169565b50505050905090810190601f1680156101b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61020b600480360360408110156101d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610968565b604051808215151515815260200191505060405180910390f35b61022d610986565b6040518082815260200191505060405180910390f35b6102af6004803603606081101561025957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610990565b604051808215151515815260200191505060405180910390f35b61030b600480360360208110156102df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a69565b005b610315610b38565b604051808260ff1660ff16815260200191505060405180910390f35b610339610b4f565b6040518082815260200191505060405180910390f35b61039b6004803603604081101561036557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b59565b604051808215151515815260200191505060405180910390f35b6103e1600480360360208110156103cb57600080fd5b8101908080359060200190929190505050610c0c565b005b610425600480360360208110156103f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c20565b6040518082815260200191505060405180910390f35b6104876004803603604081101561045157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c68565b005b6105d36004803603604081101561049f57600080fd5b81019080803590602001906401000000008111156104bc57600080fd5b8201836020820111156104ce57600080fd5b803590602001918460208302840111640100000000831117156104f057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561055057600080fd5b82018360208201111561056257600080fd5b8035906020019184602083028401116401000000008311171561058457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610cca565b604051808215151515815260200191505060405180910390f35b6105f5610e9e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61063f610ec4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561067f578082015181840152602081019050610664565b50505050905090810190601f1680156106ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106fc600480360360208110156106d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f66565b005b610706611035565b005b610710611040565b6040518082815260200191505060405180910390f35b6107726004803603604081101561073c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061104a565b604051808215151515815260200191505060405180910390f35b6107d8600480360360408110156107a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611117565b604051808215151515815260200191505060405180910390f35b6108346004803603602081101561080857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611135565b604051808215151515815260200191505060405180910390f35b6108b06004803603604081101561086457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611152565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561095e5780601f106109335761010080835404028352916020019161095e565b820191906000526020600020905b81548152906001019060200180831161094157829003601f168201915b5050505050905090565b600061097c6109756111d9565b84846111e1565b6001905092915050565b6000600254905090565b600061099d8484846113d8565b610a5e846109a96111d9565b610a598560405180606001604052806028815260200161209960289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a0f6111d9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116999092919063ffffffff16565b6111e1565b600190509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b2c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f63616c6c6572206e6f74206f776e65720000000000000000000000000000000081525060200191505060405180910390fd5b610b3581611759565b50565b6000600560009054906101000a900460ff16905090565b6000600954905090565b6000610c02610b666111d9565b84610bfd8560016000610b776111d9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b390919063ffffffff16565b6111e1565b6001905092915050565b610c1d610c176111d9565b8261183b565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610ca7826040518060600160405280602481526020016120e360249139610c9886610c936111d9565b611152565b6116999092919063ffffffff16565b9050610cbb83610cb56111d9565b836111e1565b610cc5838361183b565b505050565b6000610cd533611135565b610d47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f63616c6c6572206973206e6f74204d696e74657200000000000000000000000081525060200191505060405180910390fd5b8151835114610dbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f617272617973206d75737420686176652073616d65206c656e6774680000000081525060200191505060405180910390fd5b60008090505b8351811015610e93576000838281518110610ddb57fe5b602002602001015111610e56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f616d6f756e74206d7573742062652067726561746572207468616e203000000081525060200191505060405180910390fd5b610e86848281518110610e6557fe5b6020026020010151848381518110610e7957fe5b60200260200101516119ff565b8080600101915050610dc4565b506001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f5c5780601f10610f3157610100808354040283529160200191610f5c565b820191906000526020600020905b815481529060010190602001808311610f3f57829003601f168201915b5050505050905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611029576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f63616c6c6572206e6f74206f776e65720000000000000000000000000000000081525060200191505060405180910390fd5b61103281611a28565b50565b61103e33611759565b565b6000600854905090565b600061110d6110576111d9565b846111088560405180606001604052806025815260200161217160259139600160006110816111d9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116999092919063ffffffff16565b6111e1565b6001905092915050565b600061112b6111246111d9565b84846113d8565b6001905092915050565b600061114b826006611a8290919063ffffffff16565b9050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061214d6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806120306022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561145e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806121286025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611feb6023913960400191505060405180910390fd5b6114ef838383611b60565b61155a81604051806060016040528060268152602001612052602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116999092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115ed816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290611746576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561170b5780820151818401526020810190506116f0565b50505050905090810190601f1680156117385780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b61176d816006611c3c90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b600080828401905083811015611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806121076021913960400191505060405180910390fd5b6118cd82600083611b60565b6119388160405180606001604052806022815260200161200e602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116999092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061198f81600254611cf990919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b611a098282611d43565b611a1e816008546117b390919063ffffffff16565b6008819055505050565b611a3c816006611f0a90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806120c16022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611b6b838383611fe5565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c3757611ba8610b4f565b611bc282611bb4611040565b6117b390919063ffffffff16565b1115611c36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f45524332304361707065643a206361702065786365656465640000000000000081525060200191505060405180910390fd5b5b505050565b611c468282611a82565b611c9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806120786021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611d3b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611699565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611de6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b611df260008383611b60565b611e07816002546117b390919063ffffffff16565b600281905550611e5e816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b611f148282611a82565b15611f87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e18b52ba66965682c99eda01b40af03b60b0c81c7a0272ca850526ea48d7bb4964736f6c634300060200330302c70872beb4f86484568474c172f5b5cb99e2282e2a5c32cf122749d0199d0f03b4e2b364611d089a09e07f49684e4d81dae0a9a6bef0fb2b2e6bc807bf884abc03e14314538cf5b21be5698705d91e0b45ac552b0bd986deb1ff433a46f707afa10328c9d298d2b37bec4cb8dd307f6cb6abdcb82622998bba9edab861c19b90815b034624265721a548d2430e848fab3597f706de190e6c4da97796d5f6da8c10324403b94c92bb16d65980064f63a414e7024c857ef0f3a49aa898847cfd5a384be9a4031efd58a36c1af7b98845deb5ffbbe135364590cf41d830e68f16d9ebed4291b303dead8a732fb5d3ba8887cfd50f787aa48a358183c886073640b54fca3d490c92032845c7163672369a0d87629e810e5e9ef722d5a6fa155bd8906dc287861c517803415b112bd256786432473a71f7f6111e2cbc69d3a672fb218b36ee096dd2106903d23fcfac365aca4b16e85420329d598080b6ec6fd0ff6700c6f0dc8667345a6e038a41028015f16fc8ee6d81900c4d318357c934c6c37226e73770cbbadc1df8c303230d7c76647719bd2a3a03a6d33e1622c7d3bb0197d3363022b27aea8a067b8d039ed3add4879f5cdba30d8dc8a91a816bfee7316cc20532d835b40a24cf272bec03d10696c88fd3f60757c3586b23f7aee7e21a188101e1cc65fdf84816a0dcdb7d037e6af532af0d17666ef06cfea933b74cc60070b19dba4b35794d26ce8e82af66030717de522197a780a28abde325bc218f783e14ae56222d116030ba4f18d418e703770a24bb43e5bdad153765f3a1c9320061d568498239e398384f676def26625103be36549d8877be5d73856e1102428fa09e286921dc8b55ab00099a34dc9278b703c5d97add487b4faf132933e1948be09065fa41b051ebad752159372712a6f285034e7df350b945bad01754abf81ed0758fe8045df3ee4216bdf07dd69ca9d2ff25038ce43dee7bfe08b7e32c1506ea4bd203c2725923b0b5d4a50631a23014ae3591037b6067b4cc739fdca246e618aae9b7c54c92666e0ab5b750bdf0713430747fb503c7bd7d1cffe3c6fd24d4aac815db9f0a124aacf6b58e671bf531b8ab465c8c36036ac184c5c8dbb730def0f76bbb48334a27b3a51467bf6e14dd321c1c960e5ec500581f0359bcf5837947c9f01e10409c9948fa3686b492ad20304a26ed9f5c738cb046048e7b45340000581f03053a1fd7afac01e1b390da2e258c7b4aa12ad8b3d7cd683968a60c41ed004505b02b066100581f034dae0a337fe5385352c8ec263f701d191f595a0c9eddfc2063e914a597504517d72ad5f900581f03a951735dd60627acd65d4eff44aee2a22aeaaa01f5d41a7ffb6b17692ba05820ffffffffffffffffffffffffffffffffffffffffffffffffffffeec7d66e475c00581f03ee75e93bb0dcad0e6f2a62e3f5826650c24132f0a56ca91e3cc91e498250450153651c6000581f037bfc21901c3d02661ddcce672b3666b9671f3cef88ff22ce203e4db9d620450969e4ada00219d242036f2df7a742a0ef18e1995f50c67276844b112202368f7b5151c836df4cb0e215038b957730e629bd89dc6b3264b1688a180955d2c354b947c8107de8cdbff681cd03f70a9ea14581bed90488be4ac476b72014f587459d1503a0bcea09fb5d07715703fbb8e13ff9bff5a974bd3bdf29cd89099e69df65c70b370c7c4cab420eb48fa303a531f55fc71e25821df524b83ae25011c88e4f5961b12198a3a66241a52e0e3c038c0a2cb39d4e0b2f068611e174b85e8e7533828b1f49afec1e380d980d40fae303185e667a72a927cb1b716c8daf003694630827f9e344e9c04617b441bb601e420219ffff03630b3d95495def2b153ba14cfc1a587f0b96041c98f6004b8c6b7b12f0413fed034a9b08f2471a6ddec8b49d700dc27930366eab0b0d6b5d3172364741f7926c2303186b389f4c5ed6589df8c23d683fc2fa648797941346bae9873712747414a62203e2b88b013460e7c9c1cf0ea50cff88c00272985055e4e7e771057f41637c5e8803bbc314c18db46f29e74a90f8a41184aea96933a1d6452486ff7131d1c49a49870364670a1dde7509b648eb7892fc027821956e348a018eb544ee46836b13045c9e03bcd8e935348dec286e6e1bfc5566b0b8d9c91562df02d7e66142c5c719f9121403e295acb049440a9553d867023bcfec4f9297036266dffa8d16d8e0ae07ca91a4039a6a5e676a624523507c4b48398ae7c7cc9d0599d0bbfdf8eef351ac4a018c110219ffff03d52eb659fe6eb9ddad45b41dcb19fdea4bbdf9f879b4c6da692e0052b2b70f550340ae8ecddc7b133d5d122820de4ba6d61851ba93cd10c7e51256f75ab9000a75037297fadc2ae94233ee38afd586db53089c2d23cbc12f8ec2f85a2880b63be2d803fdea8d41a6eaa6324cb92ab21edcada624c03eef94b13825d6d1a676082ce019035d6cc70844fa4877437c1d3bbf4c2b8a8067ecf0f28b9a89125c398e3e72ccb10309402808b26efde4024b80e95dad4a4916a504f94faa509bf2673400a800a3a403f5ac3ea385a36336a8ef384cda4d75af10cf0bfcbef13960163ae51a949a763f03f0332df8e08d95e16b620a68480f073776c0ebf3ea2246232fafb0364d11a8480344905cd5d9eef7cff3ae7a1269d965f97df218fe61ea0a22255772ed95ebc45703f680b635e5439076259a2875364361f45777d6f224f81458d86521c922292d6003ced1cd367acbb29e1d2596764e06cbb24df4b97b7e87d3f372973466353694ca034a1762c785d0e28608ba084427ab93655b8cf8c14cf83f5ec64a118226b6d68a03dd6d80b584318d4950a5983b92c6317b3b6a92efec3c00d17a50d8e1f45afd7203a214dbcbae632bd0d50f78b7b797c19e36f0d2e40109fd147b275f72dbdd88f203bdc4cfe23addfbfbadb2f8cc09e65f0c96ab87590d770a61d2f2515bf594bc120219ffff038db2d8dd1f7809ac08f7107c86b7f54f7e402f2b676395c6b9a438ab04be1f8f03b6cd68ff49fe9fe31cca5376259eb195a3b7bf43aa4c260c4e733e2ec6628f0d03ecaf83f4ea29af1df29b443f573a9c204aec7955032fd0b864cc69e49b57086b037d76e59322b50f94eb4b3bffccd622aba1f7286279fb367df58ddd1fccccc14103f870f654ff743fbd93341977bcb457a7276eb8b6622d44571351a2d57afef4ac0396a07dce91f139165a2b2009d3cfaa14dac4ea4d0bcbff3c1b58257c7020ba0d03415631feaac51066fefd3df7c2a7aae1caf8d4a156ad35d6d8ccdc4a7cdeb9ba038f817df1f36dbbc751154a70745a79dc41709fa825b74221a0a5a4850c426cfc038d873303deb2b25cf2ad249a251a4b80376f524148979c29dff5477065a36089031408de303c01492f55644bd8ec564ceef0e2a248ac41b0b384f06101eeedf1a9036205a8754962b4b9e5072abec98e23c4f695c29aebb4e5454e0041b5bec26f3600581f039ebce15e491de996be852b010ffa77d1c78ebd5512628f460bfa871f180047011910f34d8b60038a16f442f623884c9c25a0a94517ddfb0ae766e60be27252be91694ea00906bf03cbef45b4f56935acb129aff83304b13b6068837df6491ec54f7514f5e1d7576c021940220337c2e7f9a0ceeddff0bdf9b95df841c2c91c7ec57f263c5d183645590fa9b2a7037ad7ea5440b15eb412991f458a21920ea0af362fa85629e7667e47107935e91c03e86b42ffc3358ce89c517f26b0347ab676048a27fbde2ac1b89b2a448bd2ff17031769050c72dd8ad4f688e330f502cb0d3a91b37ce6ef6f8620606338217b096b038fdc04514dfc8346c8d44a15970121f60a43ac3aef87ab3378a56f152458a07303d8f7f78650a0ac3d74f58a42eeeda70c065e11d6407a183e826257eee92b4ef2034af1bfc30439d79f1f82a3bda7409c51f51f58341f1ac48bfc90b61d46549ed60333848c4dc259874f83f6536f81d76dca9336c592378c275d77460d180b1ccf1203e389d144b1a4768873fa7df297364fa5c3335745204e6e58f3bb04135dc43d550219ffff03c77234c106ddb75098e82e22814ef1a2dced7b5d94001b9eb0679d94bf60951103a24ab24fa5e66a89143f9011aba4e3fb9ad5f26275e7d9a7ed972c4c83075e2203f04677c9b1f9a5b24fb8ad5bd26f4f0b0de4d8e5941cba7447115cd719d97f8903525898dc46277dfef6459c2c36e5274d84cef3b81e007dcda2dafeb14de988210336eb038441437efe6b9021caf16eade2c54262d5f01100082d501ff3d53ac76c03634462a161316aebce7d9d73fb4c0c93f0e0404517d5bb9f0fd88663d283a82003ca77c2db35b7a430ac8555fb9c2433218570cff2d78881a9cf343a1a14206ab70349f2a8316267e01286db79545ede64adf4c3f7e546c25aaf9ec6e7afab2a9deb032ac3678c690006961034710f047c1af2d50e2cb92543978bf2d73b43cd5283960342277e4f0516dfeb1845efb7694875b2871afaec8fb2e547b5d377d022c1c3660333b1fdd4cd5da46648c3c3db91538e7df2e22698f470160efc6589a0673f50490393ae9bc32917e7d6ee8ecd13b25021c6d2075d84a4e2d27b147a46388c83a1ef03dd032a9552b3dcb35a7279aefcdc76da2664e2a99e87b8e11fa00408f9593fb90219ffff03bfe39d016f2b50d31a4f5ec05248a0cdbeadea80a9d270f762b7c567a7d7af2703477f9c367192303a67e0bf019226342230182712a69b8b3fdc5c44e731813872030f5376c2d3791f75f43519a873daf7d0afe3aed6aa28e57e35f4a79388d153e103b31be77b7a70ae5501d8f3b892d54ee0e5f0f2c5dad4f57f4319ff6ecf9d8d60031834914a0b0f90ba741990881d3d4b74f12f8e530ca9d24837f59c114cf1771003e8ee9cb09b124101eaa089042ce481fc82a7c8f5b1677987b4fc9f86f62aa2190379732b0fb466078659b93e7a7f418f10b721e16ea9d8707c6b3d16be6af37581033764a50ff4a5a753841032a5e66e358839514bef00a4d5a737b216e668932178038849a80a5e65d506b5a4d72049a883b21de3cc698977ea10f4410428e3edc85503d1fb67bdbe0a0be5da65c5d2b5ee1b23dd76dbeac2b7060ac16b4ebf21f1301a031c938b9b874518823f117c5f7b01555af26ace5eeef4350989ca430c4ee43bb003eb25094283eea9c374ffaadad1c1f94a8be101bd28617738cebc3d4ad3397c5d03f848079554378df3720ecf0b47d5a3cf6c2684aeb0f8c358e9287179dfe54ed6031dae4457e852635949a75a2159ce2ae2730f222310692751c2f10d297982cc9b0219ffff037235096aa84af1ad139696274b8dee68a9261756ea161729c218d8bae12c179c0219ffff05581d02fb02a39f4a2cc17028178a77a183bc5c5369693988bfe347de88fe5e07011921cb0219400803599367be9d46f039d230de3724bd3070ab354b155e9e10026c1b4a109e0dad9d05581e03338781d1723ac296fbbb6dd33cbe32813365a332367c1d07833a71b3200c02469cddd957dec005581e03dd267c1db631fe73744fcf7630142b3040e067dd80e62d9ce6dd0611b0040202194f7f0306a6909e28da58f056151bba3dbf5d689b34c1478a438cb15812654f049cbf1103e28c82ae3044ac6f2a1346328031bd9693e23bbf80afb37389670144bf6629e90219ffff030f9dd1ff1403af9e134c703f23ad2ef165a0ef4bf2aab52038b8828b795ff6d3036df6405332a85ff317189ab34675b5a3d5906e709197213141d2e40eacebf89c03d8f529cd33a3d63e9635fb1167a054ef29cc7945f67ef781b2b563244a614221039b9c1c063cf856e9d4f08a4a749b99c2a49b6c61a570a45baa722135c2c0ea4203a117102e2c4b833c91881493eb593cc88dac5104fc0a6296876720fa96330a6903306522e6920b42950b595c483774499b261cf4f17366dd8a31d31535e4e256a003f545c66b96944c14db71381224e6cd0198634a4047464fd3dec3afd7e6d1dc140338b617de6bd22df35d919b55e356b984f194529feb8b4396cd7d3805230f0a0e038cb18ab96ec51692dd9df71395bbc4592f6b8cccec5b4e161ed436d309847cd403263b8ff804232f8271b837d5cb359b818aa6c26108b7e9f458b003c94dad795103175d766cf6082eb9775724e6acaef1473cae947a9c9a81f338a048bb9691d6f203ec25c502053a31b238dcf404e1c77fce3ba101e574a729a5d9c5443f23384212039ea54af950541dcd52b262ea7cb4c8cbd172c0c4bc0549d54fb30e2d96fe10ca03daca3d34d964052f7909f9dea345c516880e231db5f831a18b4ecf559ad8da14032c33d35df3eb6e88961571a8fa706ca49b0c19a3eb22be489304b728514c6b620219ffff03b8d80d2ac162a28f0a85509af4fbad61c891255ad9054ba59dd93cc7f47f8ec0032f033e057caa74d2d3c192a9f86d94d5e668ed791cbe03c1dd8c8edb9d89188d0391b1e01cb756bc20da68ccd5abf548a38664b50aa2eb9e21cc53eed382635f750219ffff0346e5d70a13b10209ef5033534d96455231fd0dc4ebf6a1c322d1a0e54e562fa003e715fb853dc05eb6be886846800fdcda32663e0df75d244b049df756572d639803387d13a0c3f7d1369ab65b51753b94100eec7e3ff8180bc69b6db0e3aaf7eb9603108c5ee2d4b6e4a2b32bca8c8edfef9aa9ae8dbcedf69cffefaad4b790247a33035ccfc867a912071bb26ee3328a4b8a62769d9a434efa375a1cf3a04792969b8f0304a86566359929e0bdb9be35be8abdcc708703b38888574a61ff91ebaa7de54703178740792f639a6b8a1f96da54a28b0da0deb1742d2ce3731ffde3361abe344003d0d305569a015a0ae753ef2e975664f7fa9e2e3ad3830199a56baf531f3546ca03da1b3aa7fba93aff829b1bcb7e650c680897860ec20fe76190fe77aa7f2cafa903c791e1f3cef6d7faee03f8552c38e0d020bea6bc628edc129ab57299e066774403391627a8551527d09c12b0c788c11a4ce1efe03d4a42b8b38f4d5d1e08274a2303cfd60c5a06c6f28a3c06e3ef23cf81d8dd95f5c92c1e9701e472c60c665732d50373662a500d958dd5832d24f17f45dc74ebb2667d59affb4c368684a0280fcac205581e033737e8c5ef9f405789c6c85c42ac2072cf68d7e4f8aa673e10d522b0500c0e46801c7af02c8005581e039e4f963e5d0b5c6576bc6f0937e40adec3978ea4051466e5eafad9a4b00c19011849118ef8f3322d5f8ad00316639304474c096f5b7d74943898fd1ab4f5765ab2db673a1b031205299471a903755c8469747896c47e5fe83463f536fe2f04b23ed433c1f44d5febeddd41e1c80219401a035572348d4909e6003cee520df64696fe1e86a11ab1ab19529ddad7e8c9402742038280a73559554f5cf436d68ca56eda20042889214214d37f75971a5d4b417dc903cec12813452026e321c950955934f5da9a1327a7ac7b696336049a1b21ef8a9f0382000dd2262b9dcad769045d3155e8160ef7c49645dd77345c9bd6a22ad015180387a4cc4bb0f80bf7db5b97672618f778107d7050e09f5a0d0ad476d869186b05035d0499c921c933da263690dc438578b52f95d109cdae7d38983d064f5fb207ea03bf6cd563080f2aba423f3b89a051b98dfe968b51127e7648ced455afee4a6a98033803c2198b1f86ec4cb57ea815335d8cffb32011a331937d0570b8b4be5808f603d185972552f7c2bdff3b9cc2b8147e41bacd5f1905fbb5036644b5e7beebc0ee03171f309d5479608d81600d30eae9071260a8f4355ff495e747be715ad7dffd280371b7adcda1213bd814479673903d5f3e7481a3ff0154bf24f66d69c389b4cf560219ffff033b68cdbdcc5de19b8e4172254fce73775a403f23f0a624c1b0ac3bae2fd8526f036a6cd0a71db5439b0586873bff551627659abd51ce05fafbcabdf22eb6c1e7a103a2ae7bcd0eedd766240fe537e0c93959decc27f8aaa99414eae505ef6e7ac7e803d4cb010c08eb4ad566052958e748eec491b9275081850675b8e81e8334582b7c0379fd8685046f3e8c2e73b7c372e7d8a25491bf351503ed1edf4bb7f4d60a2777032db7cbceed6433093971723b66ea6d75875179e87b3fdcc6eea9eab6f5d1366e032b8fc60b21888514f2045b74cc9e5b147c2a09285d1b4645b7de67f349161cec03160b67d9a55946d7a7fed52ad1b59b992df1cd27f150f5af523f88ccf04dce2903979e516fa7669bebdc6cde851f165ba6d305b582a145c7b54de44b46765e92c90219ffff03498f4c31179920cbacf2a9ec1f003f87c5f32446431900ec37b34649adc73c6603ea6f2d977c05b2d17c2c3427dce248d90eede62db71adc233dbe6f08c66b2576035f891794c04a57f70236f6a66639dfed17d0a6be22260737808af808295f305c038a961e3b2d45ac13ab4c8af9ece5cd0cd3c94e8b3f3d67ecf7bb775cb8e288a203f9d39c97e820d36577d02396240a43ac544d21a05903c99aec6f2810c146bd4103416164e4b25f249793c105dc5cef372cb37b749400f635cc940cec297268302c0308c3e34cf4cd2c13f0fe9120020719ca97211277cee02bd2564dc4d1f55c20310382928d34386b8cc7b6a42aa92c30b0dfdd06c87d021d0f6fa6eebcd91d83c8b6033703ed63ed32fd561fb26768c5120b528cf232ff694ec96550cf15c15ca9fca1036251910ee184cf6de3e3b6e9bb3d45f1b723ed71f4a68d0f253cbd4d459255b2034cdf36ae3958c5b5955510d1aee596cab690cc2227a85adc8080ce8fb346fbcc03b0ecaa397fdd34b526de221b8e3be658119e87ba2b72c705bdd9b76ce73842f9037c77784bae7280cc763a09cb6d9fa8dc69370c1add999251aabc7457f61e945d038a875975be727947cd5ace1707a810a695592f12407bad3d41a01834d4cb27120369140e8adb8f40cb02523134ea8c1cf523edfdf61cd5c2e92764cf12961b83c40219ffff03c41dff7c1ed576f874735c7ccbeda61dd2e4c6c290a32084e89ea184ba22cb6e036d289aed85d2efee899451e98a774dac8a5516e4e9aa1cce526f38a12d7e732c03ebd2c426293fd32e25a760e9d4983654fa12c84cf104ecb6db5020f9f975a28003f129ffa05836f16b4054ad977cc71bbf0ef99c0547670f0fca593aa9148eef0a032eacfcc9233bb7c48d48e7e7e42f2ce116ede48ba58f9f807ad3994383a5c05e0339e3c0b0ed983cbece7a8305370cc1b3c4081a46c4dacf30df3bd163f874bf6f037a5b5748fb2ad571f6daee49479da2a3fe82c3b561f2afbe4fb63d29a5c8b45a03f67a727c4d76d7424a666ec8d0cac69a1f9488752231fabbcad9e0dc26da19980328a9389a3e6d565d95b03a58c4740a2e11768427a7edfaf656338921366daabc03729045af27ea80052906a0a222382f8fee0c8dd316cc0011d0434b028160b21503d266f03f993ba6a4ce3ff73f3709764c6262bf78f78f472568e0418cb6334cf903c4ed3edbc50f0e476f23b8b1163d2006a55320e61ff75c7ce35badc308671d6b03ee48d0c9de945438050a9e35cedabe235049619188be7782bb67cde6367effc9033e1e5e24ab9c793444d1f75baf813da851c4c0ca2da84177a3eda061449ff78d0374c1c6fd9ae4e9e76e2cb5f25d499efdd5c754463f8808db6c5b0c684470bfd603a6e803528f107bbe90370750074e9383a9b6990664fc882a83451dc6d58e7aa203c44ab7f26d6f99efe851d83f8cd9a9bfb9474ea4d5e86ca6995d020e290082700345384e2f692dd81bc83a7d8afcf721cf7a29e9068cfb51a2fe35a48e64581e7803192ac350d60c57f2f2d11e19bd5590dcfebd6c7665d74b1a5e71be3465ff147703a0383d04c48d3ae7b4c4ff7fc99d8450d78169c30bcd02afd7b9a4a5fcd8804f03a79a89e464cb4191c1046a1db1b816ab314dd92476286008bdd6aa0581dc10710330074b5f7cbe367322981353adb326b2b2c23461578ddfffb2ea37bd11161acb03654f5e93f28c687148f0bddb4045a1020d07aff03064614e31218d14dc8cab55031a28acef1192ff202c5783fca9e4ac48e216204bcba01e32192fd655a588ff0b030857608b263a71b03724a5cbb986483756fb17da5323a3ae5c0147741f0c4c4e03de625d917c48961b96a03c989bbea5598bfe2c12ba824973cdc547e44c1fcf7203133d5ad1e31415ff90e770bf9a72d5260e28a6a70556f5c3641e62b885508b010381ad877e347178df9143231cc3b9015b3ae0b6f1a63896ccdd0c4dee3d30b5eb03500eb32695ff5f1be760adbc81887209e1d1170de4712b4d3ddb5cce9b2d83db03875bbf448ba51ba33bda381fdc5b7ce95e1d66350c1e4ae0077a388fe93488d9032d0dbbb1e8b43383f29567c237b718a6cfac19e79730ce9d61f056a351b0c1d1031f28626d541d0147e152937b6d750f7a6e570f39d086ea80bb26a4cd0e1df1f403dc15d5b5001bdded2e5e58b032abb3460b5e8ba1a541d81bc90bbbfe99f2e8c505581e038634c74bc6840ee8b58d8021ffcd941c50fdca3206614b144b70f74e300404032a990cf3dc711b2902d20542f908fc18171687bd4c17a2dea20b4a171ee6d68001410905581e03d136f751363a2807cd1f9733cc6ec723a398a893e18f9b5cc993daaf3004010305d28ce24c981fe0c449a1bb717fb90d4a97c8835a6cdecb06ac6b56b75a1ab303492769cad03aa647cbaa5c1a38a3589ef4ce2f69d242b053d05c9ee5194999e205581e0382a82dd3c29c9395402b7484cee51878fa097c9520588ea12b5018b360040c05581e034850a84c5de9e02dbfe103e7d37a08f969e7f450b9448b469a5a537aa004020459456260806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a10578063d06ca61f14610a25578063ded9382a14610ada578063e8e3370014610b4d578063f305d71914610bcd578063fb3bdb4114610c1357610188565b80638803dbee146107df578063ad5c464814610875578063ad615dec146108a6578063af2979eb146108dc578063b6f9de951461092f578063baa2abde146109b357610188565b80634a25d94a116101085780634a25d94a146104f05780635b0d5984146105865780635c11d795146105f9578063791ac9471461068f5780637ff36ab51461072557806385f8c259146107a957610188565b806302751cec1461018d578063054d50d4146101f957806318cbafe5146102415780631f00ca74146103275780632195995c146103dc57806338ed17391461045a57610188565b3661018857336001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610c97565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061022f6004803603606081101561021c57600080fd5b5080359060208101359060400135610db1565b60408051918252519081900360200190f35b34801561024d57600080fd5b506102d7600480360360a081101561026457600080fd5b813591602081013591810190606081016040820135600160201b81111561028a57600080fd5b82018360208201111561029c57600080fd5b803590602001918460208302840111600160201b831117156102bd57600080fd5b91935091506001600160a01b038135169060200135610dc6565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103135781810151838201526020016102fb565b505050509050019250505060405180910390f35b34801561033357600080fd5b506102d76004803603604081101561034a57600080fd5b81359190810190604081016020820135600160201b81111561036b57600080fd5b82018360208201111561037d57600080fd5b803590602001918460208302840111600160201b8311171561039e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110f3945050505050565b3480156103e857600080fd5b506101e0600480360361016081101561040057600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611129565b34801561046657600080fd5b506102d7600480360360a081101561047d57600080fd5b813591602081013591810190606081016040820135600160201b8111156104a357600080fd5b8201836020820111156104b557600080fd5b803590602001918460208302840111600160201b831117156104d657600080fd5b91935091506001600160a01b038135169060200135611223565b3480156104fc57600080fd5b506102d7600480360360a081101561051357600080fd5b813591602081013591810190606081016040820135600160201b81111561053957600080fd5b82018360208201111561054b57600080fd5b803590602001918460208302840111600160201b8311171561056c57600080fd5b91935091506001600160a01b03813516906020013561136e565b34801561059257600080fd5b5061022f60048036036101408110156105aa57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356114fa565b34801561060557600080fd5b50610186600480360360a081101561061c57600080fd5b813591602081013591810190606081016040820135600160201b81111561064257600080fd5b82018360208201111561065457600080fd5b803590602001918460208302840111600160201b8311171561067557600080fd5b91935091506001600160a01b038135169060200135611608565b34801561069b57600080fd5b50610186600480360360a08110156106b257600080fd5b813591602081013591810190606081016040820135600160201b8111156106d857600080fd5b8201836020820111156106ea57600080fd5b803590602001918460208302840111600160201b8311171561070b57600080fd5b91935091506001600160a01b038135169060200135611885565b6102d76004803603608081101561073b57600080fd5b81359190810190604081016020820135600160201b81111561075c57600080fd5b82018360208201111561076e57600080fd5b803590602001918460208302840111600160201b8311171561078f57600080fd5b91935091506001600160a01b038135169060200135611b0e565b3480156107b557600080fd5b5061022f600480360360608110156107cc57600080fd5b5080359060208101359060400135611e58565b3480156107eb57600080fd5b506102d7600480360360a081101561080257600080fd5b813591602081013591810190606081016040820135600160201b81111561082857600080fd5b82018360208201111561083a57600080fd5b803590602001918460208302840111600160201b8311171561085b57600080fd5b91935091506001600160a01b038135169060200135611e65565b34801561088157600080fd5b5061088a611f5e565b604080516001600160a01b039092168252519081900360200190f35b3480156108b257600080fd5b5061022f600480360360608110156108c957600080fd5b5080359060208101359060400135611f82565b3480156108e857600080fd5b5061022f600480360360c08110156108ff57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611f8f565b6101866004803603608081101561094557600080fd5b81359190810190604081016020820135600160201b81111561096657600080fd5b82018360208201111561097857600080fd5b803590602001918460208302840111600160201b8311171561099957600080fd5b91935091506001600160a01b038135169060200135612115565b3480156109bf57600080fd5b506101e0600480360360e08110156109d657600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612486565b348015610a1c57600080fd5b5061088a6126ca565b348015610a3157600080fd5b506102d760048036036040811015610a4857600080fd5b81359190810190604081016020820135600160201b811115610a6957600080fd5b820183602082011115610a7b57600080fd5b803590602001918460208302840111600160201b83111715610a9c57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506126ee945050505050565b348015610ae657600080fd5b506101e06004803603610140811015610afe57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e0820135169061010081013590610120013561271b565b348015610b5957600080fd5b50610baf6004803603610100811015610b7157600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e0013561282f565b60408051938452602084019290925282820152519081900360600190f35b610baf600480360360c0811015610be357600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135612962565b6102d760048036036080811015610c2957600080fd5b81359190810190604081016020820135600160201b811115610c4a57600080fd5b820183602082011115610c5c57600080fd5b803590602001918460208302840111600160201b83111715610c7d57600080fd5b91935091506001600160a01b038135169060200135612bf5565b6000808242811015610cde576040805162461bcd60e51b8152602060048201526018602482015260008051602061450d833981519152604482015290519081900360640190fd5b610d0d897f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28a8a8a308a612486565b9093509150610d1d898685612f6e565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8357600080fd5b505af1158015610d97573d6000803e3d6000fd5b50505050610da585836130d8565b50965096945050505050565b6000610dbe8484846131d0565b949350505050565b60608142811015610e0c576040805162461bcd60e51b8152602060048201526018602482015260008051602061450d833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21686866000198101818110610e4657fe5b905060200201356001600160a01b03166001600160a01b031614610e9f576040805162461bcd60e51b815260206004820152601d602482015260008051602061442a833981519152604482015290519081900360640190fd5b610efd7f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506132a892505050565b91508682600184510381518110610f1057fe5b60200260200101511015610f555760405162461bcd60e51b815260040180806020018281038252602b815260200180614493602b913960400191505060405180910390fd5b610ff386866000818110610f6557fe5b905060200201356001600160a01b031633610fd97f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8a8a6000818110610fa757fe5b905060200201356001600160a01b03168b8b6001818110610fc457fe5b905060200201356001600160a01b03166133f4565b85600081518110610fe657fe5b60200260200101516134b4565b61103282878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613611915050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316632e1a7d4d8360018551038151811061107157fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110af57600080fd5b505af11580156110c3573d6000803e3d6000fd5b505050506110e884836001855103815181106110db57fe5b60200260200101516130d8565b509695505050505050565b60606111207f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac848461384e565b90505b92915050565b60008060006111597f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8f8f6133f4565b9050600087611168578c61116c565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111e257600080fd5b505af11580156111f6573d6000803e3d6000fd5b505050506112098f8f8f8f8f8f8f612486565b809450819550505050509b509b9950505050505050505050565b60608142811015611269576040805162461bcd60e51b8152602060048201526018602482015260008051602061450d833981519152604482015290519081900360640190fd5b6112c77f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506132a892505050565b915086826001845103815181106112da57fe5b6020026020010151101561131f5760405162461bcd60e51b815260040180806020018281038252602b815260200180614493602b913960400191505060405180910390fd5b61132f86866000818110610f6557fe5b6110e882878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250613611915050565b606081428110156113b4576040805162461bcd60e51b8152602060048201526018602482015260008051602061450d833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216868660001981018181106113ee57fe5b905060200201356001600160a01b03166001600160a01b031614611447576040805162461bcd60e51b815260206004820152601d602482015260008051602061442a833981519152604482015290519081900360640190fd5b6114a57f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061384e92505050565b915086826000815181106114b557fe5b60200260200101511115610f555760405162461bcd60e51b81526004018080602001828103825260278152602001806144036027913960400191505060405180910390fd5b6000806115487f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8d7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26133f4565b9050600086611557578b61155b565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115d157600080fd5b505af11580156115e5573d6000803e3d6000fd5b505050506115f78d8d8d8d8d8d611f8f565b9d9c50505050505050505050505050565b804281101561164c576040805162461bcd60e51b8152602060048201526018602482015260008051602061450d833981519152604482015290519081900360640190fd5b6116c18585600081811061165c57fe5b905060200201356001600160a01b0316336116bb7f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8989600081811061169e57fe5b905060200201356001600160a01b03168a8a6001818110610fc457fe5b8a6134b4565b6000858560001981018181106116d357fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561172f57600080fd5b505afa158015611743573d6000803e3d6000fd5b505050506040513d602081101561175957600080fd5b5051604080516020888102828101820190935288825292935061179b929091899189918291850190849080828437600092019190915250889250613986915050565b8661183e82888860001981018181106117b057fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561180c57600080fd5b505afa158015611820573d6000803e3d6000fd5b505050506040513d602081101561183657600080fd5b505190613c88565b101561187b5760405162461bcd60e51b815260040180806020018281038252602b815260200180614493602b913960400191505060405180910390fd5b5050505050505050565b80428110156118c9576040805162461bcd60e51b8152602060048201526018602482015260008051602061450d833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2168585600019810181811061190357fe5b905060200201356001600160a01b03166001600160a01b03161461195c576040805162461bcd60e51b815260206004820152601d602482015260008051602061442a833981519152604482015290519081900360640190fd5b61196c8585600081811061165c57fe5b6119aa858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613986915050565b60007f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611a1957600080fd5b505afa158015611a2d573d6000803e3d6000fd5b505050506040513d6020811015611a4357600080fd5b5051905086811015611a865760405162461bcd60e51b815260040180806020018281038252602b815260200180614493602b913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611aec57600080fd5b505af1158015611b00573d6000803e3d6000fd5b5050505061187b84826130d8565b60608142811015611b54576040805162461bcd60e51b8152602060048201526018602482015260008051602061450d833981519152604482015290519081900360640190fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031686866000818110611b8b57fe5b905060200201356001600160a01b03166001600160a01b031614611be4576040805162461bcd60e51b815260206004820152601d602482015260008051602061442a833981519152604482015290519081900360640190fd5b611c427f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac348888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506132a892505050565b91508682600184510381518110611c5557fe5b60200260200101511015611c9a5760405162461bcd60e51b815260040180806020018281038252602b815260200180614493602b913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db083600081518110611cd657fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d0957600080fd5b505af1158015611d1d573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663a9059cbb611d827f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8989600081811061169e57fe5b84600081518110611d8f57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611ddd57600080fd5b505af1158015611df1573d6000803e3d6000fd5b505050506040513d6020811015611e0757600080fd5b5051611e0f57fe5b611e4e82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250613611915050565b5095945050505050565b6000610dbe848484613cd8565b60608142811015611eab576040805162461bcd60e51b8152602060048201526018602482015260008051602061450d833981519152604482015290519081900360640190fd5b611f097f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061384e92505050565b91508682600081518110611f1957fe5b6020026020010151111561131f5760405162461bcd60e51b81526004018080602001828103825260278152602001806144036027913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6000610dbe848484613db0565b60008142811015611fd5576040805162461bcd60e51b8152602060048201526018602482015260008051602061450d833981519152604482015290519081900360640190fd5b612004887f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28989893089612486565b90508092505061208d88858a6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561205c57600080fd5b505afa158015612070573d6000803e3d6000fd5b505050506040513d602081101561208657600080fd5b5051612f6e565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156120f357600080fd5b505af1158015612107573d6000803e3d6000fd5b505050506110e884836130d8565b8042811015612159576040805162461bcd60e51b8152602060048201526018602482015260008051602061450d833981519152604482015290519081900360640190fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03168585600081811061219057fe5b905060200201356001600160a01b03166001600160a01b0316146121e9576040805162461bcd60e51b815260206004820152601d602482015260008051602061442a833981519152604482015290519081900360640190fd5b60003490507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561224957600080fd5b505af115801561225d573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663a9059cbb6122c27f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8989600081811061169e57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561230957600080fd5b505af115801561231d573d6000803e3d6000fd5b505050506040513d602081101561233357600080fd5b505161233b57fe5b60008686600019810181811061234d57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156123a957600080fd5b505afa1580156123bd573d6000803e3d6000fd5b505050506040513d60208110156123d357600080fd5b505160408051602089810282810182019093528982529293506124159290918a918a918291850190849080828437600092019190915250899250613986915050565b8761183e828989600019810181811061242a57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561180c57600080fd5b60008082428110156124cd576040805162461bcd60e51b8152602060048201526018602482015260008051602061450d833981519152604482015290519081900360640190fd5b60006124fa7f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8c8c6133f4565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561255557600080fd5b505af1158015612569573d6000803e3d6000fd5b505050506040513d602081101561257f57600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b1580156125cc57600080fd5b505af11580156125e0573d6000803e3d6000fd5b505050506040513d60408110156125f657600080fd5b508051602090910151909250905060006126108e8e613e56565b509050806001600160a01b03168e6001600160a01b031614612633578183612636565b82825b90975095508a87101561267a5760405162461bcd60e51b815260040180806020018281038252602681526020018061444a6026913960400191505060405180910390fd5b898610156126b95760405162461bcd60e51b81526004018080602001828103825260268152602001806143906026913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac81565b60606111207f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac84846132a8565b600080600061276b7f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8e7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26133f4565b905060008761277a578c61277e565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156127f457600080fd5b505af1158015612808573d6000803e3d6000fd5b5050505061281a8e8e8e8e8e8e610c97565b909f909e509c50505050505050505050505050565b60008060008342811015612878576040805162461bcd60e51b8152602060048201526018602482015260008051602061450d833981519152604482015290519081900360640190fd5b6128868c8c8c8c8c8c613f34565b909450925060006128b87f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8e8e6133f4565b90506128c68d3383886134b4565b6128d28c3383876134b4565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561292157600080fd5b505af1158015612935573d6000803e3d6000fd5b505050506040513d602081101561294b57600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129ab576040805162461bcd60e51b8152602060048201526018602482015260008051602061450d833981519152604482015290519081900360640190fd5b6129d98a7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28b348c8c613f34565b90945092506000612a2b7f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8c7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26133f4565b9050612a398b3383886134b4565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a9457600080fd5b505af1158015612aa8573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b2457600080fd5b505af1158015612b38573d6000803e3d6000fd5b505050506040513d6020811015612b4e57600080fd5b5051612b5657fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b158015612ba557600080fd5b505af1158015612bb9573d6000803e3d6000fd5b505050506040513d6020811015612bcf57600080fd5b5051925034841015612be757612be7338534036130d8565b505096509650969350505050565b60608142811015612c3b576040805162461bcd60e51b8152602060048201526018602482015260008051602061450d833981519152604482015290519081900360640190fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031686866000818110612c7257fe5b905060200201356001600160a01b03166001600160a01b031614612ccb576040805162461bcd60e51b815260206004820152601d602482015260008051602061442a833981519152604482015290519081900360640190fd5b612d297f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061384e92505050565b91503482600081518110612d3957fe5b60200260200101511115612d7e5760405162461bcd60e51b81526004018080602001828103825260278152602001806144036027913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db083600081518110612dba57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612ded57600080fd5b505af1158015612e01573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663a9059cbb612e667f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8989600081811061169e57fe5b84600081518110612e7357fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612ec157600080fd5b505af1158015612ed5573d6000803e3d6000fd5b505050506040513d6020811015612eeb57600080fd5b5051612ef357fe5b612f3282878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250613611915050565b81600081518110612f3f57fe5b6020026020010151341115611e4e57611e4e3383600081518110612f5f57fe5b602002602001015134036130d8565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b60208310612feb5780518252601f199092019160209182019101612fcc565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461304d576040519150601f19603f3d011682016040523d82523d6000602084013e613052565b606091505b5091509150818015613080575080511580613080575080806020019051602081101561307d57600080fd5b50515b6130d1576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106131245780518252601f199092019160209182019101613105565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613186576040519150601f19603f3d011682016040523d82523d6000602084013e61318b565b606091505b50509050806131cb5760405162461bcd60e51b81526004018080602001828103825260238152602001806144706023913960400191505060405180910390fd5b505050565b60008084116132105760405162461bcd60e51b815260040180806020018281038252602b8152602001806144e2602b913960400191505060405180910390fd5b6000831180156132205750600082115b61325b5760405162461bcd60e51b81526004018080602001828103825260288152602001806143b66028913960400191505060405180910390fd5b6000613269856103e56141c5565b9050600061327782856141c5565b905060006132918361328b886103e86141c5565b90614228565b905080828161329c57fe5b04979650505050505050565b6060600282511015613301576040805162461bcd60e51b815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561331957600080fd5b50604051908082528060200260200182016040528015613343578160200160208202803683370190505b509050828160008151811061335457fe5b60200260200101818152505060005b60018351038110156133ec576000806133a68786858151811061338257fe5b602002602001015187866001018151811061339957fe5b6020026020010151614277565b915091506133c88484815181106133b957fe5b602002602001015183836131d0565b8484600101815181106133d757fe5b60209081029190910101525050600101613363565b509392505050565b60008060006134038585613e56565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527fe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135395780518252601f19909201916020918201910161351a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461359b576040519150601f19603f3d011682016040523d82523d6000602084013e6135a0565b606091505b50915091508180156135ce5750805115806135ce57508080602001905160208110156135cb57600080fd5b50515b6136095760405162461bcd60e51b81526004018080602001828103825260248152602001806144be6024913960400191505060405180910390fd5b505050505050565b60005b60018351038110156138485760008084838151811061362f57fe5b602002602001015185846001018151811061364657fe5b602002602001015191509150600061365e8383613e56565b509050600087856001018151811061367257fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146136a0578260006136a4565b6000835b91509150600060028a510388106136bb57886136fc565b6136fc7f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac878c8b600201815181106136ef57fe5b60200260200101516133f4565b90506137297f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac88886133f4565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f191660200182016040528015613766576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156137ce5781810151838201526020016137b6565b50505050905090810190601f1680156137fb5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561381d57600080fd5b505af1158015613831573d6000803e3d6000fd5b505060019099019850613614975050505050505050565b50505050565b60606002825110156138a7576040805162461bcd60e51b815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff811180156138bf57600080fd5b506040519080825280602002602001820160405280156138e9578160200160208202803683370190505b50905082816001835103815181106138fd57fe5b60209081029190910101528151600019015b80156133ec5760008061393f8786600186038151811061392b57fe5b602002602001015187868151811061339957fe5b9150915061396184848151811061395257fe5b60200260200101518383613cd8565b84600185038151811061397057fe5b602090810291909101015250506000190161390f565b60005b60018351038110156131cb576000808483815181106139a457fe5b60200260200101518584600101815181106139bb57fe5b60200260200101519150915060006139d38383613e56565b5090506000613a037f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac85856133f4565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613a4457600080fd5b505afa158015613a58573d6000803e3d6000fd5b505050506040513d6060811015613a6e57600080fd5b5080516020909101516001600160701b0391821693501690506000806001600160a01b038a811690891614613aa4578284613aa7565b83835b91509150613afc828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561180c57600080fd5b9550613b098683836131d0565b945050505050600080856001600160a01b0316886001600160a01b031614613b3357826000613b37565b6000835b91509150600060028c51038a10613b4e578a613b82565b613b827f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac898e8d600201815181106136ef57fe5b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613c0c578181015183820152602001613bf4565b50505050905090810190601f168015613c395780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613c5b57600080fd5b505af1158015613c6f573d6000803e3d6000fd5b50506001909b019a506139899950505050505050505050565b80820382811115611123576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613d185760405162461bcd60e51b815260040180806020018281038252602c81526020018061433f602c913960400191505060405180910390fd5b600083118015613d285750600082115b613d635760405162461bcd60e51b81526004018080602001828103825260288152602001806143b66028913960400191505060405180910390fd5b6000613d7b6103e8613d7586886141c5565b906141c5565b90506000613d8f6103e5613d758689613c88565b9050613da66001828481613d9f57fe5b0490614228565b9695505050505050565b6000808411613df05760405162461bcd60e51b81526004018080602001828103825260258152602001806143de6025913960400191505060405180910390fd5b600083118015613e005750600082115b613e3b5760405162461bcd60e51b81526004018080602001828103825260288152602001806143b66028913960400191505060405180910390fd5b82613e4685846141c5565b81613e4d57fe5b04949350505050565b600080826001600160a01b0316846001600160a01b03161415613eaa5760405162461bcd60e51b815260040180806020018281038252602581526020018061436b6025913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610613eca578284613ecd565b83835b90925090506001600160a01b038216613f2d576040805162461bcd60e51b815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b60008060006001600160a01b03167f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac6001600160a01b031663e6a439058a8a6040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015613fc057600080fd5b505afa158015613fd4573d6000803e3d6000fd5b505050506040513d6020811015613fea57600080fd5b50516001600160a01b031614156140a8577f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac6001600160a01b031663c9c6539689896040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b0316815260200192505050602060405180830381600087803b15801561407b57600080fd5b505af115801561408f573d6000803e3d6000fd5b505050506040513d60208110156140a557600080fd5b50505b6000806140d67f000000000000000000000000c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8b8b614277565b915091508160001480156140e8575080155b156140f8578793508692506141b8565b6000614105898484613db0565b9050878111614158578581101561414d5760405162461bcd60e51b81526004018080602001828103825260268152602001806143906026913960400191505060405180910390fd5b8894509250826141b6565b6000614165898486613db0565b90508981111561417157fe5b878110156141b05760405162461bcd60e51b815260040180806020018281038252602681526020018061444a6026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008115806141e0575050808202828282816141dd57fe5b04145b611123576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820182811015611123576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b60008060006142868585613e56565b5090506000806142978888886133f4565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156142cf57600080fd5b505afa1580156142e3573d6000803e3d6000fd5b505050506040513d60608110156142f957600080fd5b5080516020909101516001600160701b0391821693501690506001600160a01b038781169084161461432c57808261432f565b81815b9099909850965050505050505056fe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e56414c49445f50415448000000556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54556e69737761705632526f757465723a20455850495245440000000000000000a26469706673582212201a0e72eba857efceb7536b575054edf695c72ba17a7f5f982cae2177edf424ce64736f6c634300060c00330605581d02b9c18e30ed3920a98119e3bd016c7be24dd503caa15e9f6d9af70689070119456205581d0271bf4c6ce230e604dafe16182b4862287d6992873d751c02a60eb9750c034701dfaba7ff8870037a0822b834c55882ef78b3ce3accc7acf2ec37586cc797a5e7cbfc72efc464d903ff4500827af8ddc06fdd434c9ee90eb7cc71466f640f72a2419db45d41ad8a7a05581d02fd70532c4aab47761ba5b0063da6fb5fc754b45d35f7d1181382c35b07011bffffffffffffffff0219404203972c05046b7e7b85b4f7521a19969b1790e959b2bac0ff51c52c88a11b094bd20219f2d10363099aef3c0e58fdffdfe67dabe957dea989cb3b70a8249a68802ffc1074bdf903efd1cc4369b6fd58e9b4bdbfe031fb6f064b2c389848cc7ebc87e36ebd7abb9a03faed185f80c2957adb58915b5c735a0066bbc9c2487601b08d550aaf7e5650810361d9e1f437613a443405e5e03d07d52a42f100efd9179b3c6106723a19285a28037d26b9440f44585ef9bda6c594c973c609b3678f4a13623f0884dafb2e06417103ea053e372a1cdaf04a69a94d275d0de87d87267d88f96daac609b7ef958e2d570303ceafc6f769cda57393047d068dfeac3cbaad7609e56490a2310b988b6e8745038051a09e2a287810a78c7f807d978473f11b19372aee9d16e937675d46f0b2c10392a3cb658a22809bc137be24ff923a9f945b3e054e89971cb2a5020e85daea4d034348982b43f15ee762d71f88e0ebebe7470e805c77fd13c80e08c0c3f6e5bd6d0219ffff0341987af9202b7af919cd186dac1f39b4cd9624c7b96bed528a0901a10fcfca2f0316fc0a40b7b81958fe808fb0d6233159338200a177a592996ccbc67629c641160219ffff0219ffff036db028ac6897f023983f5295ad4f45ca5efb39e6432df66f7e05cbd0cf152f1003b93fdb3b9fbf7614608f864e98035b0334232364714213d8d975c61684df870d03aff50849bd000aec66682e00715f382f16fc9e2e0351149dc94c3ea036d36f75036855a974ea524a81cc7b8e7be40740961551f5131f5b55b85a3d6fb9c700a5dc03305f0def26a66bd5b2abdaad6c21fa8eaa8ad9aae55e9234e0c92f79503ce5f5039fc8eb15acb4cc94cb0785c5c01885aaa4468c06e735d90690fd9e8719a359ba034cc36a26d1a312850ba63a0ddaf9fbce3e2a1dda5725cf002c27f94b4bd04b4c03db21a83e8bcbcbaf1f59632890a44fcc363fa35c22d66cb485ddc2276e2846b303c3c0b079a57b9f56935c94e554d23c9f268394ee5e6f44c11dcd9e83f7e6814603b9705e27cb5fa017c82e4d73f5626023ab0b9e2c737d5358ae024ee55851423703dbff9476463d124b0a8b6f05bd7ffc9a4a5058c29ac64921004a5eeaadc70773032038da03272975ad59f978e36f1e9af0142d6387eaaffdd019695771fe8cc5610340c2406d80f64490036ea3815650b4dc41da0725a7b7ac1d6e531f6c9e83fbe70314099887d4a5aaf24bb919cb85e8835a278f05375496edf6d84438cfa59932c9030251b1a7844bbe84bce0cedf60bd5998aaced2c9842e03efec4580742c74b8a403e6f326454766440de14d2e5a7bf8de0c86fda60e821d6baaf89d1b66233d961603bf5dd11173fc8902926a1a24a134154d67949a81dd18793c22f6de6dd73b22e603618cb752a4fb0393a6c38c0df0ccc5ed3716deca773e801fcb74a6067cdf1dc503c55d0fe2cc3ed2296b81735532a837375b890225bc4b8336247e0af78886d45c03699c1dc8b2e74c440417d92277f57e0a051463f6e2d52acd65af68741010cb1703e089b152e8f4ca07733e0b942c3048d70cd75fc037433ea8b733ff27bb3ff001037211bba7f148b84b238c6b1584d2fd6e920a036d47f7260197dd8962cab0936b03e97c6e14369b349dbb79e40094b9dc08bd5dce20014e985b02d1d533e2ed97c8031141daf1eda5e02e0d067c53a4315f6ee1029dadd5a6e9a3948ee46b6daf476a0326b38838d4190c80c03ba9dc21656cfa36c38758cdcb3c788535fea47c7e490203698b1120be65b19e050d26279d3d737ce5b9f50c0f4d13b7cda4f426dc87faa70329802ef9f21b8c4d005e4dd4e289f1119ada7baf47d8e247fc46d8ceabb2a3e0038c3099498689f0578b4a717b12be7292dc065b3925e6c8bb18e77bd4c111ceec037d5fafd3d9c48a34416c13f14f8d481f35b3fd13df3341dc11cd45b78b65b65d035be5a1cce8b8b7374e6f4eb0d20f2409424c662d1719199db9e7a714904f81af038aea090cb8d29d988087899bca4746ba745bd160df3b333b80d270f2d72a25c5035aea8a2d7c49dd3f5c4f8ce9c7d2aa588ee2a39517032465a0a76b9528cdbbff035f0ed9ecc22f87e4ddbb72247fac2462916e31714db3b9dae19ea9150bb262ce0364e93b403a07ce9f8d90ab0cad10dc1998194573748a142fe7711e306303be05037f1c960af21e440434952f1a51c3a4008469a51e9624cf6f3725572bb4fb84fe05581e0303d4e2be6801865d5a7b4791114c031392ef74f8bc0bbfea304f8fb6c0040705581e03a41a3f118ad29a7caf348745141a5af888a080b5470ec5c3d14482e270084804af681a79eba000039b57615136b50d030b8c0174ee95c511d579e62dffb684f6cf354ab47b69bcc305581e033d1e43945c1d309e3d09175f7709eb127574ff2d03fc33f3fd6ef600200c034701f05b5c561c2005581e03574aecdde2726596cbcc67f0d0f907f8ef0757c79a21f9c755402816f00c014644205707378805581d026f170f6eadc9a25126dda9dae75c3eeac8f7b2ebddb9c084968e52000c19710a49010867078cf9faded705581d02c76a56f807709e4c215931421b7c46cd9345fe59947e064a02cbdedd0c1901b0471456d27c10bfbc0219240005581e03e514c372c749309b7ecc37b1abcf2017c0657be34d08cad0e8f61b22f00c0147106f7257ea28a80367945ff4857115d3a1984858efc41775f7c705a81c6b2a7c7dd97d7b903ebcaa03f0f301d94d5b08b52928572574b92b11e68d0f858603daf4daafb599c7472d1003d7b2dabb18d62555a1cbee01db0fb0936799c9227e2050e6240f471d95cbf26005581e03aa24e2ba8b31db0c6c38c10d2fb1496edbe8072bdca769b7852b87d82007011bffffffffffffffff037afeacb75e9a45af3943fbd57521a5c94bafa47a6cf0c1263f002c4bba06fce30219e5e603bd3694a3103279e7abe2bf1a80869aaee3df19dbd909d670074c88df89f447c80331ea2e2b2ce5d6ece886d7f066c51374cf5dabb64ffb06a3f7b9ffd90315b7b703fb308b69fe9eea72c1e2ad6c6d69fd5d5461853573f345079a8b5eca1ed02f4c03f3074316204681743a52ad6990931bf4f04d4c430c83cb555a70382f3c38978d03ed4ec3864b350bd75488d7c4c221de3fecd57ef592638a7de64668e7a262cccb0315837230b060936fea7946435e1d09966bceae01d01d8532de67ff12507db3ae0360e736998c2d24e197dd95d36eae1a913094092e5edf555c8c4d3a35241128cb038673b59677bb5f3813e9d2d89c337fb7e2ebfac0a86b36c6f427b0dadc5a2e3d036cf5afa2b2e647a005b734d15235598ef9a063229700dcaf6e83f822e49407d3031d2f112f655ec74a634d1bbfbf8ddec6bf4beb65da169712234a02d523ba77af038a1704765f99d897b257b2721ee6ad1a180f00a10000b7e9fef20f78fd18ff580340a5af8448e7c694229debb2bf704e80bbb92091730abd11562bef5883c8a55f036b02158563cb90645dc9f39a9f216bfc8a728a23b1d1168c29031ee0a5b5d32a03bf989bf728e5aa92311fa133fed0a25258a579463a6e681dd4ec8cf1d113fb910219ffff0219ffff03e68bce130c5ed26f81415b253927bbf5cc93b683e6264a172f69065a4a23d82b03608de6825b842e31b97a52cf8e2275b608508af5d5dc2486f07e3e4521ca1c1903cd85217b3d082ae84eda5a479ba2a49ee38a7de6dae780d5fd9e09d516e583f7037b6447b50e9727ac4eb2d97c330f12e550245dd0c6cbe2d77e17c2232c8359a30219ffff0355805c4721d7f00e34c52463f7b2f10db8f1aaa3df55604272dee57a6cb334ee0219ffff035782bf9adc3cf8de4c5f62971106fb98787baa70e1b63b7389e6f1ca39fae0ac035f59d0fce0545ffa5841b8ab8d445969e63b0f2a94e87bb005341175e619ed2a03808520e119cf761be3e36f37622df3d3e1e9fe2b72e299bf7c2c37c36ab5ecab03d8c8e6738541f5405b073bf5891e5195085eeb626adfa195364d04c5ff7894fb0323e995a844898dc11ab52457a11a768e153266074ec271e3d69b0f642b4b36240353c37f7d2b03c3afeab02525feec8ee9e85217e0f371630ac92a96bce5861b8a039ba781f6e58686d50dd5c79895093459ee432b58f5b5b1133e8954a16650b7cc0331558f0975bbb56319f16bd0b1db65b992e57c7abf67ea1ae7a38f9ca2cea8c6030808c319ca2edaf83c022d5b44aa1b7f2335cfad2e1bc9052538754b143b2757033ee488ac38d709c47f213835a2358efdf4f70034c6c8ea1a5ee3b72ed1050b6b032d8fc667fdffc6db4bc6db7434a63dd54003d4501ddff737c44a096e96ae695a039fe6268300944f061f03e54549e855a612abb2bb5592767ea8f9bfbbdd5d5ea4037744816049ac733ff2a3e449fe033696a50a003e1b223871d0932185201c87a30399bedab051e519ab0e606f55a0c941885024333ebbb221ce38d0049809c4b0fa03e0ff842a2314d94bbab209eec1767af1215b324f74eb496ae1e0a53cb8b790a703cf67554cb110d2c5c18e16323ec7ea7ff962bbf82fe89224aaa37d2dfb09b03a03a34cb27a796d85846bba3a80694ce5aa7e3d1818ad6af5b03d5f83f545fa4fe303024134e2d6413db1144fe360586b0d06668993f4ce73af8568a8dbf755aa057e031e3fb2634bb1050bff7c0576a5343c606470660ed66a5cf9bedb92e06c1a1a3f0352461a001e1963feee0d0a1ab261f901822c9c7342c0bd27615ad964464b98ce0303b431ace22ca8f10fdecabbd7452dc61df4c568bcc5b8f4c388c264fc0a109903ce4eeed9ceb84e2b5e2cdfcc1c175024b00e6b66286bbc5be18028346b760ae80327a1d07467efe0c31a3a5807d0ad81760d8913e8fa3735db1cd7dccf462c6c900363002e72efa5647fa8c02e20274484133ffeb9cf64c8aa95cd14b70fdfa5e93103de09a7e8e96075f88403c246313a40b7062ed61936f5ec946c9e65f7169c10e3035ae1e2b879fddb57cc355ae0c07e2e21adfc5d920e1a184f20cf2e66ccf6467b03ef4053ce56741e94eb2cc27a7802c853212200f1696cecefc437dda9560f18b10308b26356f2ea97ed84426e00894418df0dea9911ef0f97c08e616232a8dd0df103501861bee079bb6d891f6102511313de24a87d2a707a087dc399a351fbdf20fb034b186608be39aee9bab8fc37c48bc91186101b13c0bd36877921bc552eed65210393c78a8a974b5bac1b7f0987c6c9590e6a30a1cca3a2639afe2509c33aad3ec5038f53cf0f5c4d9c9a93e5bd9f8a2f371febf2a6d9ef6c0eeb7cf266e8482d66c80309d1fbaa06e0b51b8cf2a467550a72348e1d1c7ee35cc2f8043530919cb1cd8903c959dedcfe5e282be678d908a0bc15e75320e5b96af2639894c706191b47d5c9032c5a800170a04c50f417c92128b5277ba5faaf952e240e90ba935682b385954f03c441a9538d1e69c8a006a937547019f2e03564ff4c4592b8e5570adbd319e31203a92cdc3a745e0bd615a7582a1468cb6e6716ce693aa02287dfb7c0c990b064280354fac9f611cac35d6565592501982e5441768984d414b032a2e2ae801c3793ed03cb6023ff0efc4d08b9631f549d7e3a8211a02f7b547516aa2cca56fdd73dea800339136c80324d75fbf32e26fb28a7dc2717d9a955569415cf32767c817bc6a1110339d51ba94181d5358ab66302b1b166064f70bab43493205239f3d1924f51c9b503c7be70457b276a18fe6f807f14ce008c3cbc5e487c21e303892d23c2a89c9aa305581d0206f6e9f8b3a3412be55892cbdec526ff64d696730b8677014b7f9133040105581d027648a51d1dcbf8535b8bbb400d200e2acc004bc682be4f6226e8ead90c190e4648020c5fd7ecb660520219021005581e03dee1ab57680514cb84d4a36b9d463690ffe334aa59b3a206f6ab8a05100402038bf9ab6099def0e4d66f4de6457d7b638c58801f675f41dcc4b74662b758a14f05581e0381c807245478f78838a7ff1c66a9a51da08c7f49f9127ba5aebf9a03600c014703e113c7a1580003b468b4a75f147712e9e90f72bebf67ae57a027046bd8351e9ad9e861c3c3ad8605581e03c8e73535e9725ccf95628f001495c51431ebba0e971899a5cbb53fa3a00c01468cf8bff0b00003f021d4f8adede0b8a867b44198d374e37f765ddd2563e2969b262242c16162d305581e038c9c2ecf96676f7e929c6010d4fa00282852f4b606b26a11c6e2a563900c06461483f6452d40032cbe660a8291c54e102a6c6665b83f17c55e36584d132595965b2322ae5d2ca205581e03659ccc03cf6bc6f311d929d71fb8df01fb52b1e4865b08ec415abca2a00c014714f178a4f3700002196c6f0219ffff035d4a9490e522ba862dfc9e1bb647a699d9730f9b3ccfb57dc10d0fbcba8ba25d03ee68f5323477bccd55002c99addaa27a4c65e2b56cea64fa17b17999a6e82cb6030c6dc2415efe0870612b7a91920b1ecdfbeb22fae0c79dcc42ecc445fdb6500a031c39cf8900a465c74c4259f31f2321feb4104b923c4b18b9aca8b525b19ffb0e03e77f25e30f24e11cecb8aaccfd414357a59ddee09326584c53598229cb7883b80219ffff0219ffff03abc25568bbccd729dbfea9350241038d5a2b9172b7358df8be4abb49d2b00eb3035eb6d6b1bdf0aef2c13778bdb95e586c750c7c2f71ec50514a0232937bb6dccf032b8078d501833e874148ba7187c659f7bac3a787b66c8afb8df58ce9f7e1c79203e991625c4c70a77468d12108cf45be470805abb648ef1db1460839429ee5178a030dd30839ea36767e5f5f7f25a5b430cd6fcb006268a2bd2b342d4d4d86a44eb403d89e77bc1e7778b24df581081d2403abdae288ebaeed768fc8ee792f114bd46b032843b587fe9344f58b3be0141be3ed4438e01d14b2bd4d9ee1b159816aaacc9203a1789c89c981b1608fa9d64db379c2bcf3083a28d11f2124ce3d92dcb1e1530c03c61a0315a5e374c99e8e6be97ae0e6eb18569bc1b9641e3f32e9c6f0f926fc2e039220507d207bc29a90d4a9e75754b392621609c55ea2e271db2b246556122c790348bc0599558e7a49e0c5f419c776c854610df08a04969e85f6533f62cc1bc44003f4b967c049ce81c7f36cbdf37e67bc505c698401cd0bcbee9fb21e1d374c9fe10319a4776e4b22a5bff4d3838e444f4eef37b5bbab844633a7ef3e6b00d59c8ddf03805cddbf90c9e07b0bd3a1a52f9028cd0fddf0018aab1992a6e16f439ad4bd9503d00870d3a46cf9d801668f18e0c40e6df3b780e8c16b638b6a027c93e95ba64503a9bd7834c20737d1cf2d34c9f458034266bc9bee25594a0c2cc0c8151ec3877803dfdc0c1bfd25fb8d0a99332a81f75cb9adfe04214f8c4f34670a9718b906afa303f88f81ef0ae707f2330b07b02f6942a9f9288232ffccfad30aca06e8b1986eb7038ef88ddb7d0984d3b581e483f95f337f71290d17bf317d26a51c1916b8d595b503d3a24e0596d0c38c23b2698bcd996705937edd354868eba0e8508ee478089a2103db121161a4e669afa7aa641979577050de42a9b23d3fa690b254767e3265a4fb03ed3db1f7de3be91829a6f9ad86f07bf51a8b0c940a0e08b5d39250406005f50a03bcd9a00e2d84d7127785d77b1c9eeaa230a51cac25dc61eb4d9b9d98732dac8f0383edc686102c6879ceb83256031a7a6b44421cc5640315527c822f0b0675828f03bad14ce8e885908d21a831d1c94e9447303461d7e294d1ac5ca8ada96b5ad838038dbc8983fd5e12cfba0d14ee6f26070ae5699272ce16f6411b8ed3868a583135038b6b7b6f967d417b62c18d75e2abe1f4e82da43cd8893421a19f4c0256cea8f703b1978e819f833d5253cf06b48d77413c8e963acd257bb2ad3ae28c810f1b98f603313951b1b18835185329b4a043d207cc29749ab06be961fcd5caaae81f635e3203883b447acb1b2632fb9615047d897cd6d601fa0feafa609ddc499417d7eedfef039ec6fd54eb7277e1fc82c6f8be3aed20598a630e03f2348449370ad8502b670e031291bdca5dbe89fb9ef9623f6d51509a00a94ba0ac0480756a286624e293952503f50bd2c224a40f649906940a24bd70aec2379d6b74519443a09a08d1dbf1176103b268eddd8633a54cb83bf782e9f592defa16894ec6a0ced33281dd7fe705747f01410c05581d0272e7f9ff178465cba526175c1307f3eaf66539d8a51f3b1c043ca66b0c014702dfebf83518c805581d03d4ee9fb8b7bfa27a613d489fcf3334d700bd4c895faa0bb529737a2008470b2d30400b9c0005581d03213abed6a32eef1b67534867719441aaeea5f13c5a4c8b7db54ffb100c03470df3806b59e01f02090219050003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e0317f98d4a84ea5ccf7bf80079bf912d03314dc75c53fdfbca7201dca76007011bffffffffffffffff0330d48c7f9098573d652f0b71ed5f14a03f057dca4576bdf5c516b12aa17947c60605581e0338328d7fa69635f929a12260b5b03166133b4b3637373971b288467e8007011bffffffffffffffff03b12a8d24febeb65d3cb8cc12718d7e81330b922a0543dffc630db4747458c8ea03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03b83216ab5907a48ae12b381b0f3c99f39d8f2687d0238417e812a0c18007011bffffffffffffffff033a5fe7926556d8833478aad1cc8d5b23b10c26f5ef017916e2685146997d1a8403647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d0316b5769266b5d2582b7d46fc950e56e51fd13823b1dab65ef5116d91cac7606905581e03870a17d3243884ccdababaf4fed4382b52c1cdfe271d1185e428003e3007011bffffffffffffffff02193e3b0322db0e20116e08445866226158efda6326c04f7128d056266cb48a5e00c8fd13038def30cd28419b218b99e3a216de509835ef76e1235c037a314cddfaa3eb4ce90336fd97103781bd633b4bc91461a95e1f3f96c49e369eab7803946543ee18430203cce41e6c5375c70ec51e678f1ca51c35b2cec1b1d6459a6fffb867391bf409bf038be71311b9b8406205470bd47b9b4ea3ac089090a7964507f22955ceb53b7cf303f3edcdd953560ded6b6185e963a05a0789e30d4a803eeba8678d4827fc3b70090219ffff0219ffff03df1a3d4818ce267a676953d6b4f27406279d35dafafa29171802f9a8532d801903ebd5161abb2f4cc100c17d39d04e58709fd523270202cfe83194aa61af6b2b2e034b97cf18426e96b8751de82833e8783c723084a011488f727f184f565260854d0315b1dab6988bb65d01f08fda722807e77924578c8e483346f8f0a6b27db9700d035387b56fe50a67dcb9dfa50ef1f2e896494c70aa1e2f32fc95410f326104a4f903f78df08cce4dac18f1f3de9b165234b2ee4f39ae464fbad67dc5f48921778c85035babdbbecd11a98c588264ef05e531abd7d85b968a8c6e77ade48b66c352490503de926cdcc32346cddc1800658068a5997c62e600acd35f88fafc96bb08f415de0326ad2662a1120260d379fbfcdb30985fff5a46aadaabf4d1b121d1603677c8e90219ffff0366aafdbec04b04227f5893d6051cfc4b0cb38b24057c7be24b30fde9655d35cb031398115487f7bdf63c4f0c63ad6e7d55ee1a30a78fade0948470cc1cbd92425903a2d5493e4255fc94342fd3092e248ba59f68934751138edff5d4b85da13c5183038bf28d217b83810ffb40ef8bcee16145b4e50714793db11d81bb698f9f50227f032e1814dc6d0caa736fecffa9f7551b1b73fc444136bb6a9cdc7c9e214145b978038b40886f68596845cdacca4edce5f6392c6052fb67c1bfb788a3cd5846fc6fd303cef5078d8d0f815f41f1208606969fb93c3507ff192318c1ca2bff6366ec58bc037af5fb664161eee71d141060ed3c817fcc0f6a8145a1430bf6b9f2d0d0b64b41037f8cb6f22d7ddfd8e03b905328a3b87e8c4a6ceecedd1453a29d50f57f61dbc203e00a4216b1c95c3b7ee94977f57293588e989f1fb7f1cb2e36006649245902e903d35fca09167c49dce763a9ae1822f067bdc6acd161c2678ec7735ac9843a75cd030db6c079804cc7c64899dec5494c591ee3dd8a11934198cc17e6177d0320bdab038bb3710954228928d573e6aeb5e2465fe72d6022db9855dfaac9957671e0cadf03bffb9dfd6c7f15386ff2c56d989c0f9cfc37af240d161679442079868e0cbe5303b5e445a8032b83e157ab24da131501bdfb8a07bf5e42eb8cc34c260fa10df81303cdebf6a3fa96c671237cc721a985b50ed1dc356574c793da56c8346793cb71c80383f856492ec3ec2fa45b46a1468a35af159de1d85afc2962c487f6a91238d40b033feda6f09aad6cf569a769af323a4f9f8e42ee2adfd912bf1ca3f9682b4c51e203f3f5a13283440525c2c0bd6978bc105e5a34a386d12302b03f9ef15cf9d88c5803f889632d6de8e47fd5bbb289b57adf145f702075489df54ed2bf6102a05c3f66035b43c428a91681d136adb275f6c8e3972ad2ab4c0f997afde27147c3f07027de03e1de3055511e290f05b8fd60c20b484b7b2915ac812dbcb8316e73b0233a19b70344c66280a4bd963f4282539e521471ea764dde7ff18ea61e368d14b995229eb903cbe12a34dec835df09c38d2d360c55dcb79b83fc1641f1a64f0935e96feecaf005581e038b3f77336e281cc2c73d1922ff4aa929b31af0ee7e9837b24d86d25fd00c0346adb12777bc1805581e03ab6077f1858499c0fad2ef2ff7d19b4ce9a411ca6cbcd22f0d2dec52b00401035f1e0bcb9758e1668ac0ba7949621a5cea087ef2c9d00abe4f4130825d17420703f1b574431f3838d9cdff6e701afd5a058652dab5ae5523288a83d5fad769613903401eba93012ea1e1e64221df3814ba55c6e9188aed7c191ed87d8f2e0dd7a8b905581e0305350c4310ce779367851cec262c66a88fda882226dc7fde384d633bf007011bffffffffffffffff05581e0377332c709f96d1bf20784d8d1e009a47cad4b374e5090613acedef0ff00c0146783c5015e41005581e03c4d2ffa721ee2317a5e456210da9810bb83ec1c19112acaf9ffd640ec00847537fa068feac000399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe90803d7713528c6ce7b05ca41a4d62359768677543f9b97eb48e720bfc21be488780e05581e031d9f89675bcdaf1b1318d27a2b41c9333bd3c6ce9f02000e3382a6848007011bffffffffffffffff05581e0389295f6023c87a1b805cb78e4036cb7d95ed28bd1775c6d6adb8e8c7d00c1746797a8a965c290459131a6080604052600436106101025760003560e01c80636cef16e61161009557806397e5311c1161006457806397e5311c14610634578063a22cb4651461065f578063b88d4fde14610688578063c87b56dd146106b1578063e985e9c5146106ee57610109565b80636cef16e61461058a57806370a08231146105a15780638da5cb5b146105de57806395d89b411461060957610109565b806318160ddd116100d157806318160ddd146104dd57806323b872dd1461050857806342842e0e146105315780636352211e1461054d57610109565b806301ffc9a71461040f57806306fdde031461044c578063081812fc14610477578063095ea7b3146104b457610109565b3661010957005b600061011361072b565b9050600060e0610123600061073c565b901c905063263c69d6810361023f578160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101bb576040517f363cb31200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602036103d60003e6004356024018036103d60003e602081033560051b81018036103d60003e5b8082146102345781358060601c816001168260a01b60a81c811583028284027fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a45050508160200191506101e2565b600160005260206000f35b630f4599e5810361040d57600073ffffffffffffffffffffffffffffffffffffffff168260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610335578160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166102e7600461073c565b73ffffffffffffffffffffffffffffffffffffffff1614610334576040517fc59ec47a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146103bf576040517fbf656a4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b338260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160005260206000f35b005b34801561041b57600080fd5b5061043660048036038101906104319190610e61565b610747565b6040516104439190610ea9565b60405180910390f35b34801561045857600080fd5b5061046161076c565b60405161046e9190610f54565b60405180910390f35b34801561048357600080fd5b5061049e60048036038101906104999190610fac565b610782565b6040516104ab919061101a565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d69190611061565b61079b565b005b3480156104e957600080fd5b506104f2610821565b6040516104ff91906110b0565b60405180910390f35b34801561051457600080fd5b5061052f600480360381019061052a91906110cb565b610838565b005b61054b600480360381019061054691906110cb565b6108c7565b005b34801561055957600080fd5b50610574600480360381019061056f9190610fac565b610901565b604051610581919061101a565b60405180910390f35b34801561059657600080fd5b5061059f61091a565b005b3480156105ad57600080fd5b506105c860048036038101906105c3919061111e565b610a59565b6040516105d591906110b0565b60405180910390f35b3480156105ea57600080fd5b506105f3610a88565b604051610600919061101a565b60405180910390f35b34801561061557600080fd5b5061061e610abb565b60405161062b9190610f54565b60405180910390f35b34801561064057600080fd5b50610649610ad1565b604051610656919061101a565b60405180910390f35b34801561066b57600080fd5b5061068660048036038101906106819190611177565b610b6a565b005b34801561069457600080fd5b506106af60048036038101906106aa919061121c565b610bef565b005b3480156106bd57600080fd5b506106d860048036038101906106d39190610fac565b610c60565b6040516106e59190610f54565b60405180910390f35b3480156106fa57600080fd5b50610715600480360381019061071091906112a4565b610c77565b6040516107229190610ea9565b60405180910390f35b6000683602298b8c10b01230905090565b600081359050919050565b60008160e01c635b5e139f81146380ac58cd82146301ffc9a783141717915050919050565b606061077d6306fdde036000610cbf565b905090565b600061079463081812fc836000610d1c565b9050919050565b60006107a5610ad1565b90508260601b60601c925060405163d10b6e0c600052836020528260405233606052602060006064601c34865af1601f3d11166107e5573d6000823e3d81fd5b8060405260006060528284600c5160601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600038a450505050565b600061083363e2c79281600080610d1c565b905090565b6000610842610ad1565b90508360601b60601c93508260601b60601c925060405163e5eb36c881528460208201528360408201528260608201523360808201526020816084601c840134865af1600182511416610898573d6000823e3d81fd5b8284867fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a45050505050565b6108d2838383610838565b6108db82610d67565b156108fc576108fb83838360405180602001604052806000815250610d72565b5b505050565b6000610913636352211e836000610d1c565b9050919050565b600080610925610ad1565b9050638da5cb5b600052602060006004601c845afa601f3d11161561094d57600c5160601c91505b600061095761072b565b905060008160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a5357838260020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35b50505050565b6000610a8163f5b100ea8373ffffffffffffffffffffffffffffffffffffffff166000610d1c565b9050919050565b6000610a9261072b565b60020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060610acc6395d89b416000610cbf565b905090565b6000610adb61072b565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b67576040517f5b2a47ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b90565b6000610b74610ad1565b90508260601b60601c925060405163813500fc6000528360205282151560405233606052602060006064601c34865af160016000511416610bb8573d6000823e3d81fd5b83337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206040a380604052600060605250505050565b610bfa858585610838565b610c0384610d67565b15610c5957610c5885858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610d72565b5b5050505050565b6060610c7063c87b56dd83610cbf565b9050919050565b600080610cb563e985e9c58573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16610d1c565b1415905092915050565b60606000610ccb610ad1565b9050604051915083600052826020526000806024601c845afa610cf1573d6000833e3d82fd5b60206000803e6020600051833e8151602060005101602084013e815160208301016040525092915050565b600080610d27610ad1565b9050604051856000528460205283604052602060006044601c855afa601f3d1116610d55573d6000823e3d81fd5b80604052600051925050509392505050565b6000813b9050919050565b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a08401528015610db9578060c08401826020870160045afa505b60208360a48301601c860160008a5af1610ddd573d15610ddc573d6000843e3d83fd5b5b8160e01b835114610df65763d1a57ed66000526004601cfd5b50505050505050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610e3e81610e09565b8114610e4957600080fd5b50565b600081359050610e5b81610e35565b92915050565b600060208284031215610e7757610e76610dff565b5b6000610e8584828501610e4c565b91505092915050565b60008115159050919050565b610ea381610e8e565b82525050565b6000602082019050610ebe6000830184610e9a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610efe578082015181840152602081019050610ee3565b60008484015250505050565b6000601f19601f8301169050919050565b6000610f2682610ec4565b610f308185610ecf565b9350610f40818560208601610ee0565b610f4981610f0a565b840191505092915050565b60006020820190508181036000830152610f6e8184610f1b565b905092915050565b6000819050919050565b610f8981610f76565b8114610f9457600080fd5b50565b600081359050610fa681610f80565b92915050565b600060208284031215610fc257610fc1610dff565b5b6000610fd084828501610f97565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061100482610fd9565b9050919050565b61101481610ff9565b82525050565b600060208201905061102f600083018461100b565b92915050565b61103e81610ff9565b811461104957600080fd5b50565b60008135905061105b81611035565b92915050565b6000806040838503121561107857611077610dff565b5b60006110868582860161104c565b925050602061109785828601610f97565b9150509250929050565b6110aa81610f76565b82525050565b60006020820190506110c560008301846110a1565b92915050565b6000806000606084860312156110e4576110e3610dff565b5b60006110f28682870161104c565b93505060206111038682870161104c565b925050604061111486828701610f97565b9150509250925092565b60006020828403121561113457611133610dff565b5b60006111428482850161104c565b91505092915050565b61115481610e8e565b811461115f57600080fd5b50565b6000813590506111718161114b565b92915050565b6000806040838503121561118e5761118d610dff565b5b600061119c8582860161104c565b92505060206111ad85828601611162565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126111dc576111db6111b7565b5b8235905067ffffffffffffffff8111156111f9576111f86111bc565b5b602083019150836001820283011115611215576112146111c1565b5b9250929050565b60008060008060006080868803121561123857611237610dff565b5b60006112468882890161104c565b95505060206112578882890161104c565b945050604061126888828901610f97565b935050606086013567ffffffffffffffff81111561128957611288610e04565b5b611295888289016111c6565b92509250509295509295909350565b600080604083850312156112bb576112ba610dff565b5b60006112c98582860161104c565b92505060206112da8582860161104c565b915050925092905056fea2646970667358221220f464dfebfe8d90684d93c0c054886f27f3f5e7c7db67ea178d6c4b932692220864736f6c6343000816003300582103c278e442ac51b24ae7ee84edc2d8a324e0bf4cc8ea1461332550e30788dd81405437cacb3c1cb1dffab6b813353a2861997f250f4400582103cf96b1fa95b9e8763da2d97864b15cabc1508d5f90ae315443c00a489593b6f0543fc97c421de5d23e59b42d048857b149e2f1c08d0219022005581e0309dd83231f23b9da162048b87d4100864bfe64b795dc84cad579f1a200070119131a0219accd039e7986a9a5696352f95958c6ca9a23dceed48a358b35224a904e5299d53c087f038fa57cc6c827b6b477c2011b9d6dadf350c120b68c761acfca34808c69653cf30399ae4c6d5bc13a979dbab751b6e9b5d93848380df0989ea6b23b096ce48f458a03cd26e4f66f56c2d28026345b0afd69a4227605e073187266733f194635be365a03c600d7592f85ef571e7fbb727d2b5bdd2384550328e1a8cb953161357369d93a033e88671d464682674b8e6c2a3a30d93970b69b7ab402fa09fe79c84927bc6d95038a497fb0d78c2f0d50e948c4a64353ed5f2c884b2a6498b3e1ed7ea4bbe6879903423ccc9969a1bbd98b00ff99258db2cf54fd7552c5abf193acc6d9bec430b506036d2809cd3131d5c11c8310f740a9aadf95ad82f0515198f5ba8d13365e72afe10357e2786b4ca1f2da9ddcae950c90491725411504992a885f5f3cf1f733b6698203f8a5f8d1f6caaf2e2b240285fc793f4e82c0124465c0ba16702a68914db41fd803ccc01bdd89a104e97defbef00c66ac6ef14a362dab909d2c39f2297489802265036b2040befcd4d80fada571b34babdc77f9b0dac8208f45e321d209617b17bbbd0219ffff03abeef16d5a98d4fb19b96cbb92d9f63b699caa9df14e5c9968b1aa3f57c044ec0318e4196e77387e0464fc90b53d2148197751f7a30b59ed2e8d816c3e633d2de10372a6c7eb83e263c0c1d8525de26b4741c18db14cd41eb889ad00b325a94c42cb035ab3011861c44db6677b424ea8778c6943cbbddd32d8fcfdb5ae50d8f43732d9032905169a948c8b73ab5070e69578f0c9fba35c5b23e93d55e597fefd76c25e3003bffd4da3f2d88da7e2043a99bed1466ee0b24f46ce62599cd34a2527f51fcb4e032b4fdc70094daa9d723a958924d176b7352d658b6dec7abc33a28688a055aca803ec5f0eb3692c6dff8da3eb4a78609081c048f75dce8a78a337707bc43db4f44e0378b4688ac3d2042c2dfe1062e9a822ca2ef8baafbe44c98335534cb430d72050035ce62af9548b34468dc4660ecca7f762c92801b9a624b0fe5054c7f7d4354c9f0219ffff035a899a08505606434faa69e01e05a3860364003220e979233d94dafd7f29a2ea03f6a06ab377a252c464290a5273b6ac32d06949724fd9acea823224a703265c2803b7af24cc131e93727014afd6bebe2ca11e24c86c19a58aa06e121ead694d96fc03cf420c972a6af20f59228897c80f7404cd58b9d1e86dd50cd6f543ee183bb05f03716f8249457d96c4ae42e165a1a8091b8dba78228d90bd85d72b77db8468c1030376b343299717f1ae9c099080bbd02df5163f60f42e474510cd2fb7bebbf506f30219ffff03d8364b8b03e272bc9881529902825c481eaf39960b53a562ff8457c59133810a03a3b4f23f25539ee66612d2f53ef8a78d4935f5a4347e1522f6f6838f69415bca0219ffff03ae6174911df1a4727af18f0c24cf96f4b5627bd0c6f4d67b7130625f3ef152630219ffff03ddbe388d6321106d1cd4ff70f9e84b4de8927107f1f5be9d08b4226c530648a90351f3e9a260550f98726aaccc2b881afd40ae63400599a2eedc1f4195340756e903ff159d6fc3cc3449dce9cd69fecf69829ecc930f88cd3d91bed9c4b2b03fe542034eb0ddc337c31ad2ed74de50b62828006d6bd8155d3076297453a4f861e1dfa60325916464b55e8429d01595bd0314d33d864ccc388a7ba19728e296494ba639e3034083a5bf08819dfd16fd1e145b9299415d3d48128a1e997bfc9842387599b2e00324897ab418e5bf7c75d3d046ab3b61362ea7e5f5e1fae0833c4b467ac678b1b303e995e6b302d34d7cc8f4aaefd3b9aa8c958799b12cf85cef28e485a775fc626c039e1f642c8999f91ffd1e755b54bb94af304a80428c3bd51ea415ccc18a60054c03f3cb55c23c40b9c7e9d1641403cf480a257f3526eae045c96eb7ded86f0bbbff0327a783c0be637058374471d7e4732233e370170c81c37b998e140b377f861f5b03fb8deef41a95a5f4fcc8e5f051718e2105b7c5f9fc7e52e02593870b150c54c0037c5d258b96279809381249d70ca17b9fc51300a4290053a4df63a4baff085fd003374e89e3ff514c0dd624e8c22870f247cca6fa6d3560d632e6d03462502a2f3c0377d16894e8a3012aed072cf932dcd086accc4324da846b3f3eff1268dd58ce3c032cfbd7a0e6b5d6b31cf7e0ed56130f0fca9b35f723cd89002cd9b014671cf15603e06c0d51305dcd90e3e9df7129c9346b91dd283c854323e7be4647469459587d03fd3fcb5ef6caaa554b08e6439105bebb752769968364a9da5658bc7dd8772c9403bc1dd66d7c0b7b853f1a059d0d93a5827e2d5e51e5d2b046b708f728cb87c41303be7cc6e1c3ced3a9f0644f4a39c0c62dbe86c273ad4cf8588a9a85544c7a057903ef6c8cb4ebae7df5b436e0fef302470a5eda277648c78cb48f2b5b5e89553b72034b97dde950dd3f19d9bb02f33efbaa782a097883b7c7a38636b34100b4b45ac20339fbad1cc0063008150e6798b88bc3df4f3f3a9da39f3adbd2ed9981624bc1ba03d965544a4e9b4bddbb2b1703a8f37868a35b1e3fb88a49038159dd4836df16cd03b343d7c2056b240011e001818df0a5bf4b644e1987a9079853fbd1b191bcea1e03b01c21ba187f1f90278afe01fbd94bd49d12b189e6c9520a4cf89e9b28c1d00303a25919f086716bba1d7f9efae18770208c19b93f4a959a8505825f50a9f8f1e503c3132cdfa0d22e09021409ff00d3e4fb412c7f06ebc43b558191bb13d819ef1903ff4e30f1be07da20b656a0c193d196ca7581fabfa7ff5f736672f5ce1f1a69260388dc09ebc9abbf13ba211925c1435ab04cb8320090264957128e7be9d3f1d40005581e0393fb2d67cb964eea2a51b560f75df98c1b27d4b442ed6bacb181ce03200c064722c277ccbd0a000313a3439d21726fac58991727a50099eb5e0909aec3908b47136b29ea2cbf64e70605581e0347f2ca7c6651c8254275a8bb995bd9072bdb5a5ed3f24122b444ecda6007011bffffffffffffffff05581d02a23137446342709fdf2c5dc578112e34fc0f9ab2dec5f42614f2188a040105581d025e77b63a1bf448c816186bedca199a5036922cabd64e6bd42069e4420c1886474920f1aad7feb802188403e249d9c58d73d980e6965fe9f01c824bdfad4a1563213626362aa3ae3bf8410105581e03eb8b66e08c7ed4295f7693ae4a4d19b232094b513cee53e2108c8d91d00c0147010841dff5440003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e039375e77b85922f3f88bdaa4eef7d0cd91eae1c2bf6145fb288c4094b1007011bffffffffffffffff0399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe90803b86017149e7736b4bc70db409c8de9579b95d248b7c03bcc2f4909dbadf0bed705581e03fcb62e04d53256017ba291339a2420e4b6c6c67870598eed3097bc4cc007011bffffffffffffffff03c359b93dece116ca5d0e3324e0444119cd6e7aa594d0329e942b2052f773eb9605581e03e4a6531da50fe2640ee3b6cebcbc515d073bdf94fd07cdf68bb05c20f00c0147470de3e81ac3b005581e036e93e4b31860280370566148902a5d7717d0f7684410feb5a24896a9b00c0f4717fe408bc2c5da0219b73903b03634804481e0069d4ebdd91ea826aec2264200bbd2dd271ecd0aa627d50fc803c19a633f259f13ca0cea081bef83c84849f02f0999fdd17efa2862dfb2153ee903c82f14a438dd9ff9c2fd9004c9f4f478a4071487d3f607d7b98bba9a7f28b3b60305f2397f6fdcf8117c8f881fea12e6683ccf41aef75f0d43fe057b407b87a010035c03424f1cd6da4da0c665ffd3b6835c608decb1d3a33b8a1aa7bc0f70837d160310072f83eeb659faf95f03b334235e5603cdbfc8890fa1f43fc3bcd3ed0def4a03c7c3316099ba6c92ce4da7be0ae2ef38184aab7e76767ab2a2e019ea65b1c8f70219ffff03e4bfaad48b2b8ad7f218efd566bdcc43c9824476fd887775fa83436444ecb64d030b91ed4c1b295e16934e2f724f7d95d158cbc42af9ef573c665c805a8489a8fd034adfbeee11665e1612de489d155a4c6595567a03d0d389c08efd3da167152fa503ec523ce0a61a4524eab8afdd3a1eb49b615735b20dc625a790e1dd3f9ebf5e7b03570b43342e89532585430063cdcdecfa382633afb4e13befb29297155f3397db0395fce5cd14d800d780c0658fc8e95a07b6c96e05c512df1417bb25585fa0316c0321316c01deb10d56d1e238529c2b8d82c21554870ba4395b43e7df9139aa5f5003ab6c6ee3254a5704c2d2472df9fa111633b79dabfaca4a2fe26dc9b13071fdba0219ffff0219ffff0331446c308ca1bbb93f87d25785c2fff5ec61a3f6a0c8c90db1e58ecdd14be29803a939ac54696fc6ac5a7e3e41044738aed1e8ab3f1fadba803a5d2276ea1fbe8303ed78f4f58b6d8e388b74e2a27deee1c5c18edac8deea72650b200eb3a1ad98bd03533964f66fc00b7c064657211a90fd76de5516f9324524e078c80cea1a36c6ed033aab7efef5deadf6b616cbad7b6322764d16fb5bd3a53b59707ad6e7ba42ee6803babe6b515cf2a449471a5015e761c78fbfc4b467e36aeac9e95687b130ee5f51036b9db22a9a878c2087fc8f038e0b56a66a78f83929717819640adb2a1e113fc10301356b8e73f6f10864216426aa7800399503eb342fcb04fc817f70692705f25403403396f7dd7f3cc25238dd9246416210db3016e0383d6ab8475438d96cfd0eb90319c17a4e9e05db09b907f7ff02ce4186871241f8e92943904c19f1c39c62136303e8d64f0bc3e1d783517e3cc01e7260d59fd565bae7c066abb7693bd4bd1f0f99031f554f877bab73dcbbabd6605afd942231a15f40c36eb9156338ac39213ac62703b71805b906ae90a65bf32bbd08de0d4212951ed9142f928639e1d1468004a49b03d7334a18e6c9bfeb84af056f646dbf040d6e0eb648b47f8a51268527e0ea846a0393882595fe8c622a0ab8d5ec0129f0176e8453148cec756dd42e31a592d23cbf0301021502fb05064f1d418784aca3fbea634ca76ef9690350608912185f1b649d03a679837ff39c724db3a4c1d14fb9af793ddaa14add7d8e90172fb72a840209ba034091e5b4268cf62dbbde6dad1ed47fbf452a5625b79773a0a21111c76b6d2322039a69800b49b6ee0065b60bf68ae65923677d4f9e5b92ad3184b6a2876bf35a5d0308d50d55b5bb0c9ab5905cf6a0823cbd997072dffcf53143ff10b65db982b5b603989d74594259fdb11fddde4c7f2baabcd02a90ab244e99e9e3bc8063b4bf9b3203e20c9b1642302f8438f5ac365a1516bf1990833c10a4fdadd6d43acb38a5a36003d4fb886c29639d0b9d3d90542c13d2f76ea9abef7ba4577bdfca5fa506e01d3e038c278cc09e8c3c6d01c3e76f1a6d9658e8776fafc4e3b8364656cb098c450f75035b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce503ded53dd5ae87abde1da8fafb62e0a7ab615663fbd25e739958ac6dbd5c0bf08005581e03a0c5aec6dd6bfa6b8b46be405509c3d7839b6036e1d1a507d482614d3007011bffffffffffffffff05581e03353ceb287973fa467886fe0ea50303ef11f4d5372574c517ab11be27e00c18a5474b77554f9931fc031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0385a468bc6d5d8152053ec25cced49145c3ec35886f150274e0c7dca6c007011bffffffffffffffff05581e03cdbec2228c708badb0892b674615a1294ef032ff090c343590210f78800c16478b4d3356d8e54403905982d3bc98b3ad75d5ca7a92446cc8923fae39a2352245000f9d3e9dc0f3ee03bbd13d463ce2111713bb0d6ad117b0ba991bc32336d501e872703c4ad6bc3c9005581e03cc98e9eae8d37f6ea8e0bb6103b643b2b1c5989c1b5ac4c4bcb728382007011bffffffffffffffff033e61511ef21580834ffd10c898f965337de8a80a5794e73e034b0c5a9ce7d3cf05581e03ca3b2cfbec068e5a8c19f9b41fc9508d36435564e425079748412b5d300c0246497a9f548838030576cf81c8d4c1ae907f3f3d439368bc9fb0bcb32820548f254d3cdfd149e01702199cce03161ad9e4b1b23a939123211fbe08c9bfedf6f4bac778450a0b1afd867001c5c9031f4a878d494ee2811a38d13e3d61bfc7e867917c00bbfbed7ace428868fc1bb30219ffff032150d75a8f185c71131056edd5b3b579bea3de501107ff70294f18d1c848d4d60310bab6d752d55acb0bb6733f72d4ac8f893736e2a497b9c941bd02307276eefd03180f8baa9bdd4bd884a1c8354290f38e92e91a9bf80e0bf7d8b4515597f05964032747230871e3f47bba68591bdb78f77fb3209b3cf3f8b1618d89089fc608c43803742cf30b2ae1cefb8b4060cd3b486793939618d37f7b3515de0c15a249938cd50358a6cc01ad5ea2d8a5443cc94d83f3173721be6c95db258abdae9e86b8d958130323a3c643dc6013b2d139c362e24f78f35cf8228c9f86a86d57d773c2988a1003037a1ec77626027754976f2f0a5fbae48f16435cd6f420c2fa99c5cbc03ed5b8fd034f82b5e53a96a2bf4a713ffd696b8cdcc2f199875aa386039008cc6281d8d6a003698612208f19cfb7ad6c944431b8b2307ec41e4a465e5578547d54cc314ccbef038aa0d2fb1f70346508fb5850c4f0e2ab8758b0ef31e324ecd7e8b3827eeb64ef03b1e2e2fa59c71b6f7489ff715ed68e21fb7881c3f548577f6b528c9c08fbfe09038d1d55c9ded08058858ce61c874d1616ad811701421679780a13c4da903bd4e70395bf3b3ecb2158732bb16ed1751983b3dd6674089139d2e54fe2d31eae54e2320219ffff039796021d0ccb731e7776caeebb92aa407621dc6eb11c362ef0a11b06bcb2f6f5033b75bdf083a3de27c5cf108866c969ebbb2f776bbcfcff50e2e7ea81ec0ab78703ab9e171d633b958d94621e86c2cc4a0456e0fd7b4197c78ef3f3588edb6cd6ba03d514cff84be7b7dbb00f5b49aeb642a6686f54c4e4c3d7ee9664302b2e8fb05c0325af78317f7e683ee23f12ba3f95a60be40b17d04abf34c983cc63b8de5b857b03d8023c06b485ff4f7f3d88aaefa9ad36cb2222e522a1689c84e19a27120c46aa03476457c6cd75f6028b46d107f452968682fda997d587c509c7b5c306c394063603f9475654e0a16be06ce2c0e245d00d8df359f15a21cebeacff7edde6b8ad665903ebedd986f08deb1c409b175dae113f1bee4fcef318de0dd608804057990a6c6e03128ee824d195a6036db4a98d6b686761f577e1e1b81964c4ec5bb321a00f55f0033bab3e381323fa137dfa05a91ef4c81d096584d841c5a7fcd4c713e160bd5ecb03aac5ce74085a260cf744490438c3d68335556f76732b623079f632ef970b14e003f849d2a24d39dabf08fd8418caf31ba6f332aa445dd1eba1372f657fa889c5d403dd5d2a102a20f6cf0183ae33e30fda1a2237f3a3995d4abbeca16cf4d9bc02100219ffff031abbc0912f7921326d5a7ffbe7467f563c2a779b232c5c14074b394fe75fb2ba0390385dd21c51fb54bcc04f3034348991eb14599d9e6dbef72adf3f3a0cc25b6503e34dc65c5890e69bbb32a9ef90c57d2ef46a142712ab577f53e3fc06b328f7ed03435b48ba7121298710b1fcbe9b1576e75a5d009e6e33d46ff26aa55bd7fc1188032a86478c9de9446820d8de46fd2a4809e3bc75a67a02b4b6fe1dda30b8d394c50326e8d3a5f003f20f9477cef320f4f554866a95a2e179743bea271ac491c101440219ffff038406f10e914625291da21a9b4743486733fef243b0b28f5e9fe9045c3e86450d03720a6b03047ff454305d629f002a3fa8f0b7cde80e5102e624a2b86a5fd46516031af26614caf94bb094a88bffce97425ff1526d20302485d5e8d48302462371fb0326774cfa1900482475cbf62ee2f140916bb649daed9a7213226f4ac1d2e1146e03114478c6ed1ad1792af25f304a2b76720ea7dd90b76db7321c49c749d7b6fc4f03b419a8c7c9bec84084da356cda7926836af36a1218d79fb23afae0c36be8784003e3100a492c9c8336d5ef5e3e2380fb584b21aa3af44fe476fb88caa7fab33b4b0369000c574cc6be84156c19eb841956a6f1c76c1a7d1a71fcc435a67db609afae0330f3b4b7603416bec688ff60535a6f0054b603dd434a6e2e630fd3d2edeee74103363faf9c2c5ee254f6b4a05251d9c983f5f226e6c58bbef84a7ae7b60649da17033aa7754b32ef36fec45dfb6b2b6ce392eb4335cd78fb7fa9e156059714b3febc03c995795076ba456c11fe1ebb26295409ab52aae0f89ba53ee5c717f211d64e2203be41a11451c486d49b28e82627ae38ddedc9da139ceec4fc8532edf6752d972303ff240b44a18867e4a8c001530a514d1291616449507ba2d93b8e64b489913434039d20b34e30058dd4b893681b24d434ee0f75ff14d479076257feb7abc3c8122103490c73318b333b7f9682a489d85920380fa1d5316231285ea9ec1734acc687280350b7b33c2ebe651b686ee140d564861ce9854034e91d1d9a1b7b4a4ebbe6d479033cb77e25fce00328f95fcda35285da61659ebe93b7824c2e54d257bf77c7397703bfa84a9dd3c479de0b5881d4a8b36e4f7e690f80535fa245619155aa216ece030392926d5f6b085ba45519bd0d916ede3b8f6951d06a33c59f3e8306871c3a3c9a03f662f06a5d9813b96df28dc18803319d52e24008e7976c3c4aad1442defbb70403b088a854863c8eee88e2516a70c8f8b89783dbeb3810283b95d160b440d94c8a0372b4bc5cb4a55bda6f0b1c544017a93dfc411b48ef37ff449429b0738052167d03f3f769c56b070096b5e9dca2af86f865ed125d8ec7a5fd5dbaa44a308848556603acf6c22c77b9ea1761e11f4e3d0412e626fc10f2b7213d4eaa5cdfd6218348f303523135104974474f2f79ef282a8b38c5569489a2578a1ca0628848748a850818037ebdfdca8e443232052223edc1e6a3ca3b1145d9fab4e434965153871f498757037cba1e3f81b42c9eadb138fb8b21fc321105aaf7197949fd245349c9ae394b7a0331e4220f8e5c69cf17ba257b131fc5ff11c30057d806f0d48b513be346dc59cb03453c8cc002f584fcc19957766e49f0f8444ab88fd676baf674cdd21886c41fe80311ce75f5c5114da6ea054cd921a23f56913efd38f036133046b3fb47b70a526d03280c01cbc20241dce132f260371016cfc955c9e008142b28373ffdfd5dcd696b0380f43f014ad50906ad6415155de0690f109371cd6f7ac1944af73e94ab3ea05e039a5c50ba543457ac291538d0c8fee56611c2b97af1c4a1811e7f85dcf6796d54035a7295e61f64d750c9360ee42bed3e020a60e227eed104af46c7bace444a185203d764f33e63c61a41a5deb11a6f2c5dc2b2a9c648e143ff5384fcfcf70d029abe03e5f19d8d9c907bbf6ff0007d919d412fdbd3e076d342aa216378b6575852555b0340fefe79f35f47fc2bb005b5ad0eef71065b4282c4366dbb9082a0f11d3ea536034309cf1fe1473e421f7d2fd96aec7e03b91a4aaacd499f93ac2fc7671085876a03969491d9de1050d426cbdf4c8fe87bc9d2f5627d04d53d84041bb9a837abb16501410305581e03567e3b7a112de3a15a34d414af2fd2820155ba7cff03ee2199b5a8a9900c01470268b4c2ad3bb003ac2256c2b4336ce6fe185d0d40ef84a4ccb89ca509aef271e6f02508bb8b8f0d045906f8608060405234801561000f575f80fd5b5060043610610090575f3560e01c8063313ce56711610063578063313ce567146100fa57806370a082311461010957806395d89b4114610131578063a9059cbb14610139578063dd62ed3e1461014c575f80fd5b806306fdde0314610094578063095ea7b3146100b257806318160ddd146100d557806323b872dd146100e7575b5f80fd5b61009c610184565b6040516100a99190610553565b60405180910390f35b6100c56100c03660046105b9565b610214565b60405190151581526020016100a9565b6002545b6040519081526020016100a9565b6100c56100f53660046105e1565b61022d565b604051601281526020016100a9565b6100d961011736600461061a565b6001600160a01b03165f9081526020819052604090205490565b61009c610250565b6100c56101473660046105b9565b61025f565b6100d961015a36600461063a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546101939061066b565b80601f01602080910402602001604051908101604052809291908181526020018280546101bf9061066b565b801561020a5780601f106101e15761010080835404028352916020019161020a565b820191905f5260205f20905b8154815290600101906020018083116101ed57829003601f168201915b5050505050905090565b5f3361022181858561026c565b60019150505b92915050565b5f3361023a85828561027e565b6102458585856102fe565b506001949350505050565b6060600480546101939061066b565b5f336102218185856102fe565b610279838383600161035b565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f1981146102f857818110156102ea57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b6102f884848484035f61035b565b50505050565b6001600160a01b03831661032757604051634b637e8f60e11b81525f60048201526024016102e1565b6001600160a01b0382166103505760405163ec442f0560e01b81525f60048201526024016102e1565b61027983838361042d565b6001600160a01b0384166103845760405163e602df0560e01b81525f60048201526024016102e1565b6001600160a01b0383166103ad57604051634a1406b160e11b81525f60048201526024016102e1565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156102f857826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161041f91815260200190565b60405180910390a350505050565b6001600160a01b038316610457578060025f82825461044c91906106a3565b909155506104c79050565b6001600160a01b0383165f90815260208190526040902054818110156104a95760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016102e1565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166104e357600280548290039055610501565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161054691815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b8181101561057e57858101830151858201604001528201610562565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146105b4575f80fd5b919050565b5f80604083850312156105ca575f80fd5b6105d38361059e565b946020939093013593505050565b5f805f606084860312156105f3575f80fd5b6105fc8461059e565b925061060a6020850161059e565b9150604084013590509250925092565b5f6020828403121561062a575f80fd5b6106338261059e565b9392505050565b5f806040838503121561064b575f80fd5b6106548361059e565b91506106626020840161059e565b90509250929050565b600181811c9082168061067f57607f821691505b60208210810361069d57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561022757634e487b7160e01b5f52601160045260245ffdfea26469706673582212203d49c5df5a3c00805f65279191d9702636588c39f75686311c790c5d66ff2eff64736f6c63430008140033034455476b7e3515fe1fc987023c9a8eb2ce397ca26fec37eaeed3442b3f715cd40328bca6434347c999fb2160d11d64dfed0d58f4c7eed09614bc04329f342e74da03c9794fea7d2bc8df13cd4f8a11ec5dc08849318f3a10182d51f9aee0b6eb1bf6032eed9d52e40930acba08fb8cb59699c515fe6c1758167638d114f10dd2eccdd603004d791ccfc62c08c751f456e277fd8b940df8fc0044537703af10dbf6c4c4010309ce4f7d96beeea68a57a7b261aadb44b82171bed05630364544d2fcd3bdd89503f34f77b00984aac58a619c05dd13c48d19c5a85f6e1abd69d81620e199f51ee5038037a3b8293529c50e985add394f09179c64560738d7d0140065149ac240fe3c0300e80e75ee7c7a472db3c642ccd5a91581d779712a8252d0e95b9e460acf450c038010aac70e32c6c5d6d0056eae88e6b30cfad3e51dc9b1b46d368fafe11370a5005820036df05f09330e87461d0196cee19bafec30756a81aeb8b060766397fe17a660492c32a7556dce173c300058200397fcf5a08f78727245f0c17ab3dd868471a2a8b085e3f691310616c48e0dd05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820034c0b7a116cc3734ffdf5b25c7d307bbe615bdf0e85352833f3e3e17aba0c404a019cb955eec2a4132d4203486e19efee2b8b59548d4b5533ef4ebb76d7780cdccf4fc885d51a0a075b20df0058200318c04b7ddb241b3ff24cc5848ea62b667463e11c6cd74ea424eb25f03e06504a081a6b5cea70ea11e880039e4b55d76196fd1a222e08ca2837a1fafc7f723e4557c8a746534f147c3d037403c9bcdf39f9c19f0925d53410e53ac1ccc45dbe83ad1a1f86cc8250524324838301410b036ff864484278df5aae4665a026af57bf2e6c22739ffecded4627b03cf62e62c700582003933594e4d8c0fcacd4478238c9d5b88842f3624f75597fd2c73d4817ebb4505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219a5f4037e92a8de24cae0ccf2a6b2da48c548180c1c7f6d24527c4e46ec8e872cb474ae0307c4f9c5c827f0bb7565392143096570a1d6825e10cf04df32613eff06b8f50b03186c27b4973257d27071f1b2d2a1a9931e709f3e8e53635e433dcd8157a236f003eb160c17553eef12f4818a652188f40d4a05f9f85c8ba4475a6812c12bf97a5103a10c148ed41bfc6502d2b8485105137d2d57d1ef5bd9232e69b6d4f0ca0d3be40219ffff031c54711b7e40b20606a2ac503f4bbdee2ae6bb06b9ca7b58333c8d8063194656036fae5b5af9d55a9bd81b0cef09822f2b7a6b17cc1faa7012562af750982b999f03172a84f38e315bb3de77db7c8aa265ebca489242dbe99fa89d03e1ccbd6b3dcd00582003215dc5c76eda14382746ade3aaae4fce2d06267ab54e8ba555015e29decbd05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820030529375cf1bb5ed4e37843dc0c36eb8cb0ea97ce6a8a0cc84b7d08d63fe0f04a03a40cf9b3670b1abde0034f448cce2340bf996f399c245b76ed40dd6cef63b82658603f57a764366e87df00582003b8d48d3d1706773fb0fb683fa023270d9eeb50baefa5795a29d5a1225ae43049352869ce7def4e87b203f5bcb02b094ca55a2f653374811d2c769bd0d65f139039dd98e793990eda8b290336cc326fdb62d59dd1192557a768c4def22dd1e6449847b336354acc5eda5a2000581f02e2731ed92cf10862a0ceac540827ed8ac6a89f12745db0bc69d9c061e1c14a05fb8a1875beebf379f500581f03dbbcd56dbcf43d81c958faead4f461af2b7119da15c2897c9f6c72ec81405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f032abf49bf2178728dc90cf4b24e1df655d299dcb079a6b690e356b0f11ba04b0116814503060ce58875930219201000581f02ff592eb93020afff1baa0f52f2beeed9c34440d2c3ae84e8282feddab42349f989502ef30704874002184c03e5080e9ef98c24c9e41c43fa5c1083c647da430b4b30d4e48aa944a8549ed50803529cc2d4c1a23137b4f2bb6e3f360fa3870f34df9d739472058e39a33a650e710347f22e43dc1e7fc4dac03efd37e16c6c2fe2ac86370e4f805086120cb772da010304056bcafddc6ace53bfd3f4462d5e9c27a9530aa8c107c4a152e10307e9d5cb0219b7fe03b53b33044777ed14bd11ce22523c1fc43dec518a5e6f6785d2d67035c234da6c0327bf22e9c85b241ce08ab825580d30291477e4e2de49ff8f5aaeb77876acc9f003ab935ac912c3a558a21525c9ef7c627d7a5dfd693b297338888180e2ab03953a03e375224c796fae012070232c9e369820de81ec129889ce9702c586dcdf73b64a03f840201e35b2d7cf2a81a40ad765e7b5b8afab113c1f4e95477abafc3bc796ad03cac4fb6d0d310f8a5282056e83394c89d7ad97fcaa308f398dadaa1e0af2502a03230cc462efc39a899613ec6c3941acb48c2cac0d8b2396e4dd806f0d3838505803020617f9486ac2ff3bcc6ea5c64628a7ce563767bf581bc70a0d7f4e40ba3deb0365450890661ba4049d2991625b32ea5899b21ff4c2fcb98a785f85f60a595f66034f002c49e8356e4958b32b563a70ef9f8d793601e7974f7cc80c9661411843460335b5a866a9714f0116398e51477064053a5bb8af5e0ef544eb3319b7344f0a76038a6e70bf7c1e5e93c9a01a84b5d18473e073ca4ff8521ec89f22dc82ba1fceef038a3294674e428ebd03bb978c8ffb81a9f3721cf377c80229dd5834d0f6f2b5ee03d047bf8c0f41fa52d21aa1b5f731b62afbf2310315b0db62b01b1f939786a7eb0219ffff03b91c95c27c5775d93dc248036af249a1e597236a348e6a7ee97829c8c933006603b34ceb4f6d8b0f9336993df072c9dfc13128326c0c31f0d9026614aa9891ad390342e5ddcbe1af98a5f8ab5db56d23264d767c49e2de3449a422ba2fa28c1a9d4903811a724e9e489e8b71a120e2182799e2f5e718b4be08b555eb9d9daf0cabcd780368872118fc29c539e088577f72211ab01fdff82ce527d186cd1f95ce1f9d36950328a11f94b130eea83a7b6742f627926b271d1c6c62cd0391893aca62eab98e3b03bec418ababa26fa7ff80c502731ed572ccfec13f03c4df008299f979a03267e503c990372ec5ffbab8fc905ebdaf7933e93d5b920c8f1ac2d7695ced26fe35813003352ef0e7b35e3dc18be65e48352575f07a25ebc19c842c4eadc25bbda21a87ec030b426bc73dc7eaa2d9ac535172bd2fb51be0c425594b998ee890ddf49520a68d03fdb96240c9ee711a6d770753ca60ed8042e5d5ba4c7c309f25324e6956789879014101005820034e5e28ce7b62c51b9cd3149e16244b5d2bc76e1d9ff61fae0f13aa65e760205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200357347b463b885fbcc2f5a7c4530ec616c8c2e30393ff472a8661c041373b605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003e188992cd7eba30193d2fb93b84b01383d8f4f97c8cfc7d58aaa7c482617e04a063d04587213d22894000058200362dd88bee71d7a2ff0b1bcd6be1cc7e1a28d6875c9fe4111fadb5ec61c966049543ecbe753283c9d90033e16fa84ad635d8b30df85ffdf289e6d1132b3b9ba52f55417b9f170bf3c1599005820036514aa522b84547b6783938bdeac056801f90dced8e799612a7bf6d4bbda204a0622d89f03b59b27b42000582003aa1d4d9e004d1599d9785972836fd935005d99102c79051055ca6c75020f904a09e2dc21a631156c5d1100582003b6290baf9645405780e6bdae2a3cbc887c22b153244e1ab8879bfc765f8c20490432f85c80e2a2438d03d9569e742dff16cc3b33392375014e45074404f65dfed2b62242815a115711be00582003250308ebd5450defe478e7b1650ae62ac5ddcf4bac3c2e4ea53f68efa254205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219cfe603c0036e8362220fbe392fc75c4e1ce3b183272af60db072d4eeaa9dc1c4df85c20350f3d038beda3d330c726680100632a71f803cab9e887c205fb64bd30549540803e77ca702a4f19160c5331e4479201da6b6a149b79b507304b2d3b11c55adc83b032ab73080c681bf888dc3a21999a7778ea899614b457790932b5fb7859d0a472703bc9d3e3ed404bbd7a835a8a2fd9e5c4c7fad869dffb55718d04052d584ae54540300a12774f75f449491e30b8cb35b8d1526f4d55839343ec48333fdca7e18e1c4035a19d2bc7056db9ae26671ada2f1da5c9caf11eca350a1ea5495a7c2701804240341223d6ab5103911a9575fd80277bd615a5e040e06afe5c240623956258fe3d003deecd3eb526088f517e620f28a8add26d61238ede50c08dbe40fe34a4bda9dae030ec112b0d436f3ee3c6c1e63450113e7aeac1911f97f61d355d89bd83fc8efc00391582c248647bcb23a094cb1fc3db2cc30119b1e64753c2fd349368dd41d6ee20058200356032ef317fea6b1f8a7c40547f24c2ddfb9e72a8900de21dfc9604c58ed3047167e930908d3200058200362a80aadcd55718f13208221abd3f206c3f19b343868fd99025d7cd63210b0480a55e6ddc1aebba0033a755e0adc4eb88ade0da7632fb3992d0546483028b341148c7bfb9737fea16203302f6c259a4fa4533f6f192781896d4c1ed8a9d9381d815e60ed60d8a3b218e300581f02b571f38ef5b8edeaa6d35cae0c358108331ee407c6f5f428a5c333a7a7e049e267b982111f4b973100581f0296b53b25331d795264197e1c507a7ed0175ce99256a47352ae995dbbe9474a03654d57b3681cf99e5e021904080058200310fc087f5abc79df686703ec28f07657fda0155bc9dc2acc00c858af0d26705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03b0ef8187b2f879aedd3460f6c48e28e094736eb8a2370ade935620b9ee51a78302195d59030923b7d4b302d7fb26d72921180534127f6a27070add74c5d7adc034ed8b657e0370e34bd8d1e8653fcbabbe9a4f32765d18260fc2eeb6245f43f26a9858d49684033316d937e74217d6296e92d2901a12812a82bc14a1215e44eaf962ca1a76f3dd0219ffff0359cdeef7439bc1525b7e7d6ea5961688cac95ccab6806c38adfe89dc46d9ed5303eda47a68125c348488cd523559cb588a6c9dee5d47afca15adbdd2102d508f5a0381fd7a44646bc1d3f44c5cae77f2f317367354a0a89aca7658c755db85af18bc0321ad97876effd29c2fc4aee7e8d2e5f1be682df7a28cbb63aec8f8cfa0ca995803303d06897dd3609ddac4b910bce233d9aa4f17693a6e5edea009b1815179042e0219ffff05581d022d26f7e33657b915e9d9fb2ca2aa83f9adc7464dc1fcf0c075c3d0b407011906f805581d02c2ebdc4b493fd7167298a1c67764638a7ff0ef7e7c1d4bb4ac656a1204010219a000031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0373ff006d4fc2d2b1f560e2146bd8b90407c8d11c460bab988edce3018007011bffffffffffffffff03dc755047c7a4146cd5f386f26745c383bbca7c2e58519f6d8221c0ea74fe411d05581e03589507b60c34dfe5db1340cfab345947f05664c2536b15f1fdfce083f00c014706ceb06d162e000343994750ae357a13c89c9c00fe81821f6cd4696da6fbba4d2ea87cfe6a3c86370366a3781957e86c9062fb5637ed8ac9c8a8084ba366328cc1466be6d4c235ede20321a04deaecdabcc15282453698417d2bf4002b169d7d8ca9b9a82546d829336005581e03f21c3bfb35b85dd4444bd87c3fc234c171be8217f34b27a7d42fcae1a007011bffffffffffffffff035265808133661b46f2494fca90f1223bad2251910a8083fee74ec9bf53224fdc0219b6bc03a09988ac94ac9073034d179c2d3fa5e9acfc1382d5f5eb60b744e4dedcabd985039dfd652d4ffcd01d94883e103b05fee745625b44a6e44050bbddabbbc5382c500332a301845e4d0c8f8908bca1e5c9a1a548bb44475665de9f2d91f05bdaa496af039d87c0067cd80c9df46b740ab90fc6ad6ced9baf59e74c859c2d681b1aca13e203dcfb3df9c7a41430598f94391f4d091b8d9d69c670f633ad754b1b162dbcd32403c9196152a77d262409d9a5bbe75c55f2ee63249726c3be6070137576937d6acb0219ffff0219ffff03b7a76e121e1a1ef6425b5615c6bf7e8150df50092a9ecf4f47e1a8418796003d03ee0db0499d3c841579d0d1a308bc470711a67f7b99c6baab75bd1fd9c482b6f30316befee346b6500953086a9b597326850e94a0061f0750ffc6fcb9c91f88eb3d030a162ac8441950497ff94891746afa3e7ae5dc9a3ae45731c5db7cc45b1bc19c033adfe3cc2f080f11d1ba7113d4285e8f3be5d9c2fba866ccbcc7ef857dc682a003db716926b4d017c76b3ebebf11b75a039b4ba32ffefa4d6007c767ba8bb9343f033e267b04ecfffa9a270cf50fedb050fe6a4053acd9defc1f71eae64b176cd49303f3e0a95cb31d95aff45bd728fba49a4291ddbf637ca833192d73c0521f6c8a54030a2fd68f0d72035cc686413ef2710158a581f2fd92ec9388cb6e37f2151a468b03790f689c64a3b279dcdc5d89509d8c55892778be565389d4f180ab7c970c810d0390f2a2b51a1608a80f5fcacea95564046913495ce331b96723e4668544952b050219ffff036547d60fc27b641665c9b5e21242b73732b1f67341a528a6830c1a08028b4659032d3ae16d5337d2f2e295c078223d31cd7531b745fe31ae56065764e5c004f00f0311f7a374684b04e8a62fe34ec9f1e89fcac7a9138a06ebdf0a270aaec30d9fa60306e09894a310baa997e1218b5171fcde84ef2be115fb6bbf1e3efb001d57195f0219ffff030ffc135bed2f475fb05be6641e271d038f0017f51cb3d085182157912c2ad1dd03eee0f4cb81488142c4eb485294e249b70dd65467564197767858658e288bf1fa0381baf04fd20d1fb43147ee39fc8270662b37fcbbaf1cfe682cd541a2e899f1b203a090392c5155207426589c02156ca207a911d191191aed54566e3da5d9b2f66f039630557a2775537a4d6ded5d11ccfb406a8fda4b44e6f5ce1efe72c39ba28449031f4a6790c2e0121b98d7926a0f095a823c1d9ac1b40fda82e8544ad2c2f650ee03fad4a3133ac07313e1c98b67a35622cf02683716e75e069eaabe9c01d7765eb9030b68f8f630742a1cf0e69d69f5c8a973f4be62b5a20e801da33b5b342a8d6d0e030abba327d505d45c24cebbc4ee54eeec84e32f7adb0c7dfe84b37a84cf9b31c003373f7f4d01fa65f9e4ad413a0f6aaa83c3dcc9271b1482173bb7b14aeab7c59303ed85f67a609684da6e1bf844c52243d2ae7bf5f876282a4a7046cabf19347cfe03b41b1041805283864d0d830c2b1768da6216549a1260c6c30aa1053a3786bbf503aba27aa220d2f51b695ce74dfde0e4078a697c4fb5005fec08c6a608f027cc53037dd57fed2cd2c3a4a9bc1ffb60ed2a7285d9794c3ba4797cef5f43142cfb842803b56d9752a13ed74b6abdcc36713580dae7b0d157d967e4c0a52447e27aa382ab03e1ee35f45df5973a522e3ce3a702569a3d52ceda0dafa2d28a9bac8779b0669403421cbf2fae4356e926b1077633eaac944ec1b65eb4e0f19c379bfc28a0e05ff103310b7e772f61977b872d1ae6bafd79e3118f8de69c261b1d8d4715232b976a9603ec7163fb49bdb98111152dac643befd20795c5551318f855b5cbcd99065355e303170c641284ac5743642bbe802342f1baeb90075125dd1f15db3b63fa2a64c1a80387ae35b6d27a215a498f90923c4648b3d60d0901c26500685af4e5a8a03e9c2703868b75a4b4e778b5058b8a8c63f8bbdcf152ccd3a9a422eea9126e868b2a18c803a2e1c98f960c85f0e05227459541d27f240ac81366b8ef5baf5ad5c6cbd33b97037d60f80cf6c1989f01f32718656b0e045766a1a20708935b0c653d52f83f035803b6306a6a0ca8a5ad3d2619fece45db10e73356c02c8437f96895c542c835874b0382bf3469c9d6c6dafd92c9d0e4293d621477cd840c2f3917909f26304ce9543b033d7204345df796c6e4f3d3314ccb78068ac79c150b5ff35f419c5e6fbb8bb5ee03fdb54ac3b432971d6d68a1ab41a3d341d56510779ad0c7a8574d4c6ff4803f9e03d3138b14522518528a3e3d882e76438dcff831c53069bf2b23504f40aa00a483038f27b47d7e459c1964bad616fef68249381df5fc2d5cd71be5f78164d52b54c00339f6f13bbbf6f76f5eb5ff0d48cdd35c6fd70f99862e0ea6f0c83a311f42e7c0037206007dc3bf135b8adcf2a7562aef1de40a84b3c781e3b4d0ea6f6a16f51bf4038d982f81995ac2dd19b74c45e957b92f65b42500f06d4547b45b4024055b57e6038d8e98b87cae82ababdb58b911fea50c4c371d8de20a7a87cce5a8f1dc2f9c770366e6c696fd2ae18c653c223c78dfa4b72f8ae13299519dda4e8a77113b220d3e05581e038e26e9fd8f1865e607756740c2cf3e557c7a8a3db129e183115ab647c0040305581e03a89c0c03257ea073b9832df00f0c1607436e063183e1a8fdec18701eb0040303640ff8764401e798d4bb7febbb4c6a5f5e8442ae3647cae396ff90651804e47605581e03d9f65b8aea758362c4cd7762973e76b5b68026af348ef662489d5c88700c0547123ac6054eafa605581e034ecc1f087295029aed77237ff9632333fc281f5aef7571e149141027300c0a474019283c1179b405581e032ff0c1a59d4892bbe3010b5b5fff39b873d852d2548ae802c1208924d00c01472b92fae34e588003b97904dd85c91f431bcba7f54e18f20eac4a512ebda5913ea9c64c139812c8fd05581e036d5f8342964ebbbcfb8fb4c71fe4c11eecd8fbd46ce96905d056029d80040205581e03d28218b6baa820a966e1cb285be6358713491ccc7d4cbb802de96a0ea0040105581d0208a8e7dbaf6ef5c677c35663550758d43b221dec2c73c309f9e231c00c1903fc480764f56ca447b1eb05581d023619ddd6e9983e7053c75e70358834e138faffa36c5b6d623b4e173204010219400103ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e0331fbeee381c325e0476242b2e58c383d421c70785f36742efa0b265a2007011bffffffffffffffff031913de1c58f41a531802ccf8ea8ce874eebdcd8318fa7df6216315ffed2bd03403377431b8c0f08084bff03233121df70d91287dbff0445d521dab09cc632ef8fa0219dfeb0357ea6fba57414409bf6b91b64088311a94d0cc8733a13a1902a4883d5ba9315d039944a017697663acb2c8ce5f9ed7b1ff339a6f1a09b18efae8d1ab76699ca9980324563d064dcff5cbd40f6e41be734be19e0df4554e5d93ef242f5b2aa283d43b03ea1efc3e9f5c8cdcb1812a26ee905424201280ab0f4752111449717cd1c6bb420304800e0b2a00ebf775cc728f79287a19787427a1859d08622e33daffc63ea0130346c334e473d80e472e5e5a7390789a40094d74248adf0edf39d3c1b44881b3010371e8907ec03961de36c15937140b12db26791349807ab49e0e96e6e9cfc4fbe3036d555d972bd5371a0a45253545e617ad12fd3cb2bec2e84655ae8a4d6532047b0219ffff0389f4120b63ae2f49d065badda91de979e2b7aead15bc1c4bfadf1be022beb98e0300462fb3e342f0bdcce3abd49ac30e110185c922352656de48375c38cda1c2150364e20a5691e2328c5b9e4ad0c6dbe6aa0b42eb5a0ce4cd4c093816f320b0e0cf03882121ca5cd5ad2b91b66aca462e832a376295bd9fe6f202eabecc7b9a4cb3960219ffff0219ffff03dd7552e6ab34650f8d52e381a4ec588e31e6727cfcc5a77ced3792292bad2f780338a532ff67271e85280b81f8f46ef3246dd0f069d9cfbbd0fbe934533d45f1ef034f80ad1ad5c15bf2f5ca00d603c31ebba9f1b8c5d9e1eafa7f41a480eb20e91e035a374a670bd12eb1d192494a30289060505799f7db543fbb7cdb6e234237d4f70303723cc9fab36de58a90eb6de3d5875bbeab7f695c254b6c76709e387b76f7f20370219ad6e990ed39d130d7fe172a5f6d6eabd1c4c33f8172cb68b682c362c8e6035e3d73b41bdbb84eeca5373303686f912a8667acdb378ad85e0950785651dffc031940ca42c3ea8975eac652b02031152f2f76b213d158fd9b8fa69de547184465031c348e6a49de01c4e454cadcabb0e4b75caad5678d34e05b71fce8eb3bb93a8c0341193e7b22942406abd868884bb20f350d47b9f4c1891954987b779d0bb12dcc03df500d95070b14219330a1902b57a25a1cf8a8937e6733a8c613cfae154ec0ed031baa0805f05d3d728309f3620c53ae71a5cc4fc2b43fe220a2485aaec525e515039655aa3f47c650d1651b0fab895a1087ab3fbd4635a142a10f0c8ad5ab8c7ee1038043531950d6ad226e35f15400edae2f16394736b67c88b78a2c1f7285bafcb2030c558509a52da58cc89918e595d7f1491c0a36f91993aa445e5d8266b7d05b98039f92bcb4693f527fb96dfd59fba87cd95561aee72f3c4ffa17a5be1b432f477303c871700de66cd78c50390bf7ebff8b40d22e266ed146ef47daecd24b1d07b13c030cdb297b31896e42e00a0d197731610036da9eeaf43ce210109927e34100246b032f98ef1a50ba7798b64f28f79eb3cb334bc5ed8d056db21cef8a180943d0f3fd03c2e4bc9ece40b52188df0890325b681c3e79300c8e9d64bf0cb726579fd8dca303a2d54cb81c3d88d58a162a4ba52a24349d70d76a16cada0eef08e8106f94206403649865a0b752e27687be381a2f5d53f167174b29ce5e0d03e847c76cbe64ddeb03aebd9ecf55cbeb3088fccbb575355ac2cf6deea88332bf224e711979ad81bd36033e353b6fec34efe11b6841669ed54b28b83bc1e697b5d02195dab44cfa1d988e03360c852aec28fcaf286e6f092f478725da5943eb38bb3f861417298a0c844d0f0346a734c0bf714aa9abb61b12315a98491a9c3524c536a7ebb918f5edd4d9428803ae6d4f6bf2dcae22cf776ef5f6563efb86aa12beb987ddf6e54d273547f2e72b0310c488bb31054f49248306a6f49bfbfcce23150dbccf6290b74fa95bedff031f03709553ed564d622933cc0c1945c5b99b2126629040434583da200a22124f8f3d032d4c79a5aa448f77bf90f1e55a40cadeea1dcdcc59865934edebc7bf7e89aaa103fec129be031418f2ba74056624d72cbe5d60d5d6ed62efc8441c44970627c70d032d6be6874bf59bb5954210526e8e519350dc9f2eb17630b8f8e023e486d83b510313c76bc37cd4aea0d89fcac1daabc7f5ebfb013ef538be0aca48aecde391479c0324f3fe49d9fe194bd624ef9b2607656f73e030611f1ff029953c53375a10b49503669e5b19aa8bb6a788d02e3a34a8e688b6e45ab0aa359f822a9e8e714fd4d5d0033b7e28972b82a6b3d6f203d3eefcc5b749db2ef9d7f2753ff338f4678c8c6aac034bd2db3fba1f762aa1c2b12103c688894ee990ca4a2bcbddea9a2e4acfeaec8b05581e03d190b113a5f31a9485e611a1c63c12a9c93db7856508849f2eb210c7d00c024745818f401b233005581e03a5ad4a95fb95cfe1e514159c59bdc56d43309eebe0ae2ebb692318ffb00c02461bf3ada51c9005581e0375d7232edcb52ba30bc1e6e6819ef5d786c664c30881037b6c96b093900c024701b1de4293fae803381f0348f39aa5f970fca2bfc614aa86904b676cf93f987001d5c1ab6b44667103b184ddf07b2831e5b7fe27aa9ee8a2606376627a4a8632a3b28bf7867d0b63e205581d0293e2e127b606834c2cd6fed8eeeed897e5e96cb0f3c6678579533e5307011bffffffffffffffff03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581d02c2ea0a113e37291dcb6124a5d975e637daf32fb1556a766757af95bd07011bffffffffffffffff045911e660806040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461014257806306fdde031461016b578063095ea7b3146101f557806317ffc3201461021957806318160ddd1461023c57806323b872dd14610263578063313ce5671461028d5780633f4ba83a146102b857806340c10f19146102cd57806342966c68146102f15780634e71e0c8146103095780635c975abb1461031e578063661884631461033357806370a0823114610357578063715018a6146103785780637d64bcb41461038d5780638456cb59146103a25780638da5cb5b146103b757806395d89b41146103e8578063a9059cbb146103fd578063d73dd62314610421578063dd62ed3e14610445578063e30c39781461046c578063f2fde38b14610481575b600080fd5b34801561014e57600080fd5b506101576104a2565b604080519115158252519081900360200190f35b34801561017757600080fd5b506101806104c4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020157600080fd5b50610157600160a060020a0360043516602435610552565b34801561022557600080fd5b5061023a600160a060020a036004351661057d565b005b34801561024857600080fd5b50610251610655565b60408051918252519081900360200190f35b34801561026f57600080fd5b50610157600160a060020a036004358116906024351660443561065b565b34801561029957600080fd5b506102a2610688565b6040805160ff9092168252519081900360200190f35b3480156102c457600080fd5b5061023a610691565b3480156102d957600080fd5b50610157600160a060020a0360043516602435610710565b3480156102fd57600080fd5b5061023a60043561081f565b34801561031557600080fd5b5061023a610847565b34801561032a57600080fd5b506101576108ef565b34801561033f57600080fd5b50610157600160a060020a03600435166024356108ff565b34801561036357600080fd5b50610251600160a060020a0360043516610923565b34801561038457600080fd5b5061023a61093e565b34801561039957600080fd5b506101576109c1565b3480156103ae57600080fd5b5061023a6109e6565b3480156103c357600080fd5b506103cc610a6a565b60408051600160a060020a039092168252519081900360200190f35b3480156103f457600080fd5b50610180610a7e565b34801561040957600080fd5b50610157600160a060020a0360043516602435610ad9565b34801561042d57600080fd5b50610157600160a060020a0360043516602435610afd565b34801561045157600080fd5b50610251600160a060020a0360043581169060243516610b21565b34801561047857600080fd5b506103cc610b4c565b34801561048d57600080fd5b5061023a600160a060020a0360043516610b5b565b6005547501000000000000000000000000000000000000000000900460ff1681565b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561054a5780601f1061051f5761010080835404028352916020019161054a565b820191906000526020600020905b81548152906001019060200180831161052d57829003601f168201915b505050505081565b60055460009060b060020a900460ff161561056c57600080fd5b6105768383610ba6565b9392505050565b6005546000906101009004600160a060020a0316331461059c57600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b1580156105fd57600080fd5b505af1158015610611573d6000803e3d6000fd5b505050506040513d602081101561062757600080fd5b505160055490915061065190600160a060020a03848116916101009004168363ffffffff610c0c16565b5050565b60015490565b60055460009060b060020a900460ff161561067557600080fd5b610680848484610cc4565b949350505050565b60055460ff1681565b6005546101009004600160a060020a031633146106ad57600080fd5b60055460b060020a900460ff1615156106c557600080fd5b6005805476ff00000000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6005546000906101009004600160a060020a0316331461072f57600080fd5b6005547501000000000000000000000000000000000000000000900460ff161561075857600080fd5b60015461076b908363ffffffff610e2716565b600155600160a060020a038316600090815260208190526040902054610797908363ffffffff610e2716565b600160a060020a03841660008181526020818152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a0385169160009160008051602061119b8339815191529181900360200190a350600192915050565b6005546101009004600160a060020a0316331461083b57600080fd5b61084481610e3a565b50565b600654600160a060020a0316331461085e57600080fd5b600654600554604051600160a060020a0392831692610100909204909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680546005805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a0384160217905573ffffffffffffffffffffffffffffffffffffffff19169055565b60055460b060020a900460ff1681565b60055460009060b060020a900460ff161561091957600080fd5b6105768383610e44565b600160a060020a031660009081526020819052604090205490565b6005546101009004600160a060020a0316331461095a57600080fd5b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f72656e6f756e63696e67206f776e65727368697020697320626c6f636b656400604482015290519081900360640190fd5b6005546000906101009004600160a060020a031633146109e057600080fd5b50600090565b6005546101009004600160a060020a03163314610a0257600080fd5b60055460b060020a900460ff1615610a1957600080fd5b6005805476ff00000000000000000000000000000000000000000000191660b060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6005546101009004600160a060020a031681565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561054a5780601f1061051f5761010080835404028352916020019161054a565b60055460009060b060020a900460ff1615610af357600080fd5b6105768383610f33565b60055460009060b060020a900460ff1615610b1757600080fd5b6105768383611000565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600654600160a060020a031681565b6005546101009004600160a060020a03163314610b7757600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c8857600080fd5b505af1158015610c9c573d6000803e3d6000fd5b505050506040513d6020811015610cb257600080fd5b50511515610cbf57600080fd5b505050565b600160a060020a038316600090815260208190526040812054821115610ce957600080fd5b600160a060020a0384166000908152600260209081526040808320338452909152902054821115610d1957600080fd5b600160a060020a0383161515610d2e57600080fd5b600160a060020a038416600090815260208190526040902054610d57908363ffffffff61109916565b600160a060020a038086166000908152602081905260408082209390935590851681522054610d8c908363ffffffff610e2716565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054610dce908363ffffffff61109916565b600160a060020a038086166000818152600260209081526040808320338452825291829020949094558051868152905192871693919260008051602061119b833981519152929181900390910190a35060019392505050565b81810182811015610e3457fe5b92915050565b61084433826110ab565b336000908152600260209081526040808320600160a060020a0386168452909152812054808310610e9857336000908152600260209081526040808320600160a060020a0388168452909152812055610ecd565b610ea8818463ffffffff61109916565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b33600090815260208190526040812054821115610f4f57600080fd5b600160a060020a0383161515610f6457600080fd5b33600090815260208190526040902054610f84908363ffffffff61109916565b3360009081526020819052604080822092909255600160a060020a03851681522054610fb6908363ffffffff610e2716565b600160a060020a0384166000818152602081815260409182902093909355805185815290519192339260008051602061119b8339815191529281900390910190a350600192915050565b336000908152600260209081526040808320600160a060020a0386168452909152812054611034908363ffffffff610e2716565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6000828211156110a557fe5b50900390565b600160a060020a0382166000908152602081905260409020548111156110d057600080fd5b600160a060020a0382166000908152602081905260409020546110f9908263ffffffff61109916565b600160a060020a038316600090815260208190526040902055600154611125908263ffffffff61109916565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a0385169160008051602061119b8339815191529181900360200190a350505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820a1e0f5cdc96081f44eea73f352e7ef8fbfbacd306ec0f0b7275c9752d31fbe32002903e4299c7efef7897be2bb07e92b24b29a730c41f8c589b40cb9b374f0284673d003bb188eea0ffba706a24751e00a1aa60aa7c4ddeb597daf34c46891094d546dc303d43700839212677e0a6027ec7333802c9c8aafee3ba69c2c3eb13b39023ad08a03fd97c1a39c92741967f10e629cdfbb07c31eed52649f0ba5081c4d8aa298d3d7034758f20ec94010ed5760a18d6f20398ed4f96718a25215aa1b374fd1ec38a92a03918e6d26a2854bc290d04368adf64debbb70f58ca153946a91b6c2ebccd421e503ece4b48c78a8a582bfb5be4d4d7758ef340a0632e68f8cfff1f78611b4dea58303486342fce1697ed522db4b98124bc873e2dec51ff8823c2e27e7924c397b6dfb0365966a91497b9a762b8dde3abba19cb61847f474c3a97833e102290000859c5e036c4f3a51cde4d014ce3cebdc06a3c6aa00163a016cb068ce3292461d2bca911603eb15f2ea12da37dd65d3dc3fc18fbf8d029fea03e649894f98f45aa790e177940369be521d4e33c69c6e53284a3b3855f93bfdf1119e70cd3e3eb8b4ab3ed92c6103f7eb8037130519b553c0f3bc5cc6b405148290e7820ff742454aef8021fbb83f0362286ca69ad1f2b9a54cd99ed0690398364b2a46e55f87c0a1580088d5e8a760035e2ea6d160042fbb535ce7da758ca10cc69039ca7e0e245d8a547048451eaf3f03d763614437b10155236e1316a3c6de4ff4a466d8c32b52241880b881d8e3626603396c290432248249c56f114222834f81f11bbb8bcd258b14cd8653ebbb5511d703f172d73e753892007b63177ae10c235aee20869cdeceba172819d7d4c0675d0203b494132ea5bdc22e2e934cca49835591674f37e009b48d0049bf80da1b1e90170322ed1ce7de19aa2b30c5647db3a551dd267444cc37dfe33aac0ea595080a0f9f00581f03efde3270fc1ce2734c0f2e9e49837c9bf092965c36dfa8854a5d7dcc0ed05820fffffffffffffffffffffffffffffffffffffffffffffffffffffffffdaa95ff00581f0337531e3c0f409b2eb51ec563cdd464193aa27cb8c022ae3dfcaaeafcd50043021c4c00581e02fa23910e319b190a332e28bdf212cc13a5b04321001afef7a7f050ae605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3c600581e0284b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db055ca06411bd7a7296d7dbdd0050dfc846e95febeb708020a00581f03d8475854f71876137f919f4a5d52f3634d0164fc956284cc3d3860781b305820fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8494400581f03f71c21d050f40dd3fe8bb29de5776d8fd00ec6719b628a3b71a9646d4ed05820fffffffffffffffffffffffffffffffffffffffffffffffffffffffffe91660900581f030f00af664db23addb2c78a8d1502dcbedb7f63bba3baa5a52aeff31cfea04d0c9f2c9cd04674edea3d77595002196449037d9a038721d6a52c5f9c63da8cbfe14dc1abebb3b30b7866b2d0f03b1c0f176c03fe2b894ac64ce80bccbdd2f3d0ed37fcb09cfd9901aa5609990a50b0608784df03421610c221caa1f2301e6cd9da4d80f3a4051359c97327cbf18d130196d6e3c50350f6dc9c1b243d49fdd077aa8508588395702cb3cb422030c8ee76524a6057360219ffff03448c6ec4d8894dd31996b08a1fe609d705f42a15fdc239a03d4ee0d849fe9600039537301bfe497701dbdbd243df288eef8a6c8b38655c5d3e5a4ca7d0aed1e0e703bf560d942fa1b602a7b621e284c94833af4bd48e51443639aeabfc73cb3be1c403efe80e8f2d94ff7cd5b4a61c6acc4c8f298dd8c00ea2c996ec011a804ac557bc03582c7934ad11fbd8bb847ec382f6dce07c2c418060b1e4d5a0b174263fb52a87030625515eb6e58846d44506b1b91c95854a26687ba6ed3933cf5e4e1068f90de303dc2771f908c477788fce975d493bb328ea1feff61bd64551ff66eeb6458b198c034bd15ffdbd0a495489ddb274a36ceecc390fcb4248826a0bbff02f5e66f9fdf7038eb1c49e08e0dfc0117020b89645270cebb9de21146007aeeef210eade613e2a0219ffff037089fdfa1b8172a34f01f192453cb3218f137827efeb3c8da16af8e611169f67038b3b8b4a4b2956087af589ffcbc2d181b67b3e7d4b0987c69168af051af9faf9037df9b286acca83d6fcbef094d5629aee1bb8a3acff37daba578bfddc06a46de803acd0a674d28b306862ece594228dae028cb2f37f175389f5c901d9a20128a464030d9e781237a171dafb18d27e5c95a07c52f20c9a7c3edccf86cadc95024bfcb503887aa66243a25d4a806685f383411e9bc6138e1a2067fc77035f260fee32ab2c03d1844e5f9a17737d15d287afeed8f6b77f81a347f8cecec33e169d09e2820d3c03f1e54762118f514c478985bd347a21a92c86c9f52b0f7f5969dd02f5ed180852033e9c77c25b35406e768da631d688facc041186951fd8285b2938be0425996a850310618d00ab191bf0a325a641cbc6132cf2502271ddd41ca6cf6295210db3e1b50322b39a81ec0ab72b6ed3dae2f6b72b59288be76e823a3ba2d3c6af3a96aab1b1031df6db96d5e1197cdfb0b97eecc3c2d68e5eede03f91692d0891f6a53fceeccd0219ffff03f4b0318d1f0eff4df9c629b97fa188d1e06bf72102eb49e4b6e66ba1d9a1a19903bdca849aad22c27d46bcc545c289a753ecbffb54c0db562cc1f280a20b5be9400377dbf2ef89140b605cbf760962e9385dc990c7a4eb1847845a9f5924a5a7f9d103a372a76e9764bb3d3a631040ab67d733dcb9743025d48a0de93e62efe53d0ce2038acd8c19aeca02832a882029b2b96b20c1b66c1cd992f636fbc483b4a0ee728b036207d1f3e14b68601d40490791231c83f2e700441ea56a8b47aa0a02c61f3b6403cc28f7d1ef2666f8a0c5a069df2ec8f3e1688f3893f41715d1622cd82190855b0379a52c255eee730175455cf8c8bf2a1aa1420d381eefde70ed2f42d70aa990ff032109ffbac5f8a3115e0f2286b81164eba3bf7f30346ea38dfbef900dd5e49069034ec8da6132aa1dfaef430a4d9c5d82c5c6a6ecbef42baa12056ab276a7fc8733031b69349d6659b613b1025d49bc88c963d784cf9ff307b3412cca600786614e9a034ac876f20456d5ce7c00e0dc94fa188b01bac01e40e0d05d2637f8b71eb8d8b103fa4785e0c2d5248b1f278ccf208012da71aa67bc545092a1a89c6276325e413c03c80913908c1e39503f9edc433cfa8e27791785927bbf456eef2239ece6fa554503371e66e03f98b3693690e49419a1a6b6622535a24a70253a9c4e40af50865bc503644083b6a1b48c8da5b3d44e1cbcb029affbd3b13fd8a0a09db70b3a54092f1f037efa371edb683b9e50580b9a4f8ee279f4c14f451f5ca96b787842fb99f2eac203df92af3045014662c75f661ee8ad75e0ceeac72e1da978461731c7057b6bbfeb03ec0b94fe28d1f29eaacfe58b482932d26f65fb2e07b1a35c0583a59bbe281e6903d883e01b88a8afef3b4bedcbba0d6cc4b901a87b115aac9098b2eb33141f29f003495bea5d079b50838f622f04037bd4c1205d2b53b727c432fbb01c98743dbcb603bb8914711ff8890b0a633a0396ffe87de6cd4060560a969804eb13108c76575b03c0e4f99af7471cea6ba3faad6e4937908293b4c89aa373de9089709a3513909403ea4476377578d02ee73f35f6acbf80e66cb482dab57190de5b50188c0f48c7cd03329fc38a42631587337b9ddb85d4fb3dfedcc3121f9a2174e0a05f3fbd9ecb1003a1837cd9b17167685eb9d0db69a88b35fa252f21db7f2afbf5acef3e47a8a1bd030d510b96ad33329d1e19929aaafc1f72d02a8eb58d13c738610982c0620492e603839e5c936ed14bc7990135181099dd49c56b1d316fe6f43781c01d4d9cd97e5c0343c18d904d2470ed62b3e7b893eca6ccf1ce54a6203d18592ff36e9339f62ba50399330122338721ede067a667225252dc3b2f4e1e174fb2c79ea9c1c4c01bbecd035e9ba608e17e3e19e3a0f1d6fe3c928842aaf75774a9e337a5355dcd8e773c6000581f03485784025abdc0302b371696e9088df6f0361a4aeb488adc546ef0d862b05820fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff31b036e7c3bc6894d588fef90653d699ea1e5a967b8483d069d0809a32d29a93d0e2000581f03c6974cbc0979fdf256c52a1a3ee60b9980a19f4a24e879d02837ae9575f05820fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1915900581f0323292430b35693b8c9db196c5775ce52b286b2a3ce0747072ac26fe08e104307033603f01ab48f1a9befa7da2af2a34a14db3dfff5331afe96b231b04141b18ab78c5d0219161403810108b98d64c14df88795ae2d26a6690e28c338852d097d802ab623a719a33e03ce61a186b99d09d8d13351d40988acae3be0a9c4463991e9356d4f29717f99a403d1432f51c183e4f0114639d33102b8c5fc3528fbed670890c552c16fb99813770335b08ab7530444afa38e67ced0198851180965f40f2208a8953c49f91946e26f037133d2dd2e6702fc5b636e569e4cc64d204c723b7616c1f985a260be234cea8103b1801be4022991544a40acb27dec6e05a001acac6c495500d29bddb5f38707e10219ffff03184ea101f8f6794e9185fb7c0b1bffb65135b6213062cbc08a9f86298ad63ad503ddf83c62415de2cbe5b3ed231154ad7272cc83a30b15d7c903e16dd86e33d8780303fc94b6210106bdf37a5f2b99725bfc0f9e6d99507003cf9b39bb6ed469bbb1031fc3d17e04c7c9f83eab5477420c88857d7d7584868a469d41ed8b2aaaf8a5210219ffff030b1fab8f734751e1c5a5d4e9098eb74fc7fb7fa3daa1608bee5310b074793e740357b99fd9d45864003066d29cc3cd8e61a93cc2044f1301536c052a9f7bbb0b6d03ae5b458dde9575e515942ac4d6fa660fb010dc455915f70d9016073f4af2912d0353736d440b523dcbdd2cb4b29abc763c65fba31fea9a2ca675e111de947b585903bf38f2d994c8accb22ea71c4bdae4ed879534328df29987e8ffe1ebc5a20100d0313ec62e78e5271aff9189ae94b7ba88b892f1dd9031424060172e020ab6ef9bf036f1a02e89ff6db2d1f5a0eba20ecb7d6095090f86e42ca46099406091a9f8d1d03286881a44cc9b060bec0b922416014b33c8382904070d89c3e9f34a5a78660e203dc4d1df63a4f73c732aec0608a451bdc40e438813179a2297cd5f95d3fadd5e80219ffff03f4b6009020381c8d5bb8db9f2c0a030995c9e93f961285d388de9ad989aca655038557b82409927b10d37efee48ef08b422edda98395078295ab0cf96334b04b19032214ea9bf6e1404a067e6ce020e6f75c61d4e673686c0075e4d1daf3267c772403b2d76b3e3596b7eca828a69bf76bb4b56f45539e7b7f88dd39d358f12abfec3e03b44c8be42df550876182a1b2d767de03b26fecca70ee17145315ef7ad88bdd2103e30b8ca97c03f00171bbfbcc2997fd517d21a7960e15f0f243b006a0c3f0bb9f03227d45986fad9da28cab83a00d6c9ebcf68f72bac3a28e7733f1e262f9f6e9fc032f4fcfa17ffeac1ade497eaff7fe93a387cbad24f3262d9904fdb3dca9d64f2303d334cfc5648f08cb85b53c88fe9e219716c18a38f9a6c80e9b942bd5b3ee9dc50219ffff05581d0240759031b3b9352c1680bfe7f2d376c5eb1d3f71c79bde5d7b9e147107011911e605581d020c8c69a267d22f83f9a5c44d0fab0881877bbcf46a27ff36120aa6990c044719cc826f20c6000219130405581e0373f9a2fb2f2c5faa52e8f70219655e6dec2531c4d88936d8f48103757004020342df14dc567582fc706a3a3c17f3368ebc561b297ee4bf9456dba3830b99c97c034bb057e5e99169693dcf3feefe1beaabab2ccd8b33b8fcdf49590f5d2ced553505581e0350b664c18e1b276ee3f6b4c793ba1b99b3cb0691a6f165c874ac6522b007011bffffffffffffffff05581e039f530c4ebcb4d338e2378149ebefcf30396102387a80dc69303c5ab2600c06470a4d0dce5e07b105581e03d865f0da1bbacb9d83ac7b0c19628c415c1ae7051c756a725bec95c0900c014702de0d30050dc003e402f98de73cfbbe1a8bbe6bc9b91b77aae75f03b7d64bf9ab2b6aa8041f88270219abb103a896834b3e0ff92c47eb433c6545a9f122173e067bcad93af5c18b158768b0170312d8128d147efb0dd76870fc761fa531667870872340e18019cbd4244f200c9503a54fe8fc37bf01fb2470542d9566c399ea6d01bfd0651c53724c9e16b1cceb9e03296e6fb3220ab7014b82ff74bfa872133ce187ae7561419a58c97ec77f64b0880342ae14eefa479988ecf9f0ad1089c43cb3012b0a8dacd87900b4115706651f4d0341a55304a2b454b5669ca28b6594725d1e8a56efdc27fd0d6be35db5fb260bf50328d2c3d1f7f51eb4b0ff2aebe7d5207b0bf5f8ac5350a380c1e5c169deabe5790333dee8a3b8f87ef494b0a167ee984b96a1f9d92f6a9e1db0dcf88ce12c888d45039f906cbfde43fc6c8c3c020662aa5842b583ebc32f730c8e6b469e24a69bdc9203b47a1c320a41551156094f00504d9a41a008be78a96007f4a517f79a30b9c179038668e10f34836d47e91206896792951efc10514d6fe4208d66c0e573a9e1bd4c0219ffff0348fffbb66fef9103873e3e972bf862b6e192ef5814cc5efdda780a3303816ed703416da4cd0c1c9e65acb6ed6a7ccef0b3088bdef88285144b393fa19f313bf9440219ffff0330cc6d3120738cda225a81856bf1237a09d351741869d05f5e18cce1c74050c6039c67d78e67cdb6f52a35c132029069bb75d25daf36b78897ec72873419e5297803d1693b25a2726fb008e52d42815315d38bf5e8ede352164bca9c6a4e87daf942031d0e701fe78905fc06c533ff3ae1e90cb7f177612955606e62f56891dcf08c1b03ac6fde14af8de146f6bc025c38e21740e29951481fc2bc6b1f13c89428c578db0312aa7ff88fa76992377fdf5b610268b75a90df2bfd92f9986065dab02856e1f6033e1895fb472b3d7439fab876f60d22aab4d7e02168fbf09083b85afd638ddde00219ffff0219ffff0379158da1bc35697e4b32eeba29d84881ec964d679c8a383798830dc62b36c93e032d5044fd8aeead3fb8fb8e423548a335db2f32f8ebbc7aabd6ce1dec9e66245a036d55ddbaa40b9133ea803995ad0eb296bfe8466c77cf9f09901f59c5793205660387cf50b125986b0069d31fae448d027b77c8b670179d14fbe22b4c015d176dc503404dfac517954bcd02eb99a204e3716deb7b0758bdcf2e8e2988ceadfbd1de7e038377ac072534ab492727fd16dce45e090d337c30ef3538b28577e6047ced5c82036e7e18e226a52024156f89b6a6065e1409e16b4dca21beedcc338da5c2391d90034641879fb75aae7f9fc422881aa39c8b2319a41a7babe377502761d2e31480ba0396664a5bac9eb6efb0e3ed59cc5a8dff81a37b350ee87744a8d9a2a330ddab5e03154674276ba60ee7073b9367c94f65a92526139c1fc5343e12b7098756e00a5003b8c817cb72778ff81f217ca11cfde5685dbd1a043d9557c061c9563939e2f154037dcd84cdb480c4c2f188b0bbbb98f5fd83f51425580fca3af698e19727d2d21a037249b16a3aaffd3ab70978600aa5aed7e57a8e478b69a215a1f2e2bb40e8875603a3ac41bb4be41d4a778d94e4dd44fae54e36144b4a29367950acd2f6611abd9a0308776c9b13ade3799879482996aab424ea94edf7680a8fe83efcd9a2e0bdefbb03e20cb26e99f275f0bcf2b08f4c83f89d1f58c44c340d40ad8f04d0727f7d634803592f1866ace49cb5a3258c7d04dd273f68b47af416bc0b86804b17ba03bae87b03794a72bf6e49fcf11f4ed9b9a012c1f6bba41b19fa9ad2da1ba30779f94f115a035f2b409635d0df40878afe2da347302cb3765695d97b5364a888a6a3170ca6c303a25409551c4df1743e39939b791359a7468084fdd15c7f0a24124090bc95ac2403cd2cd93174a6336849e92325bd0a228e43940abc004bb8c435ecda65de500d2603ba8ac3bfa7a33f5d711782f010d55b300c0291356ac7a5df0c7926bc6debb83903adfea25bac8862fb080a091f6e19a00bd137427f7a0886c8f50aeb4a3872c5a003b95778fea642042d9ac781ee30444e1f3664283ea5d080191a803a16da4adb0303e7b65518606a683373f137d1cfa141589c7586fef88f4fcabe90eb931461a49e03d808b7aecb70a7ed4be60459dce88d98f1befe7c11f263a09143132bf2c765ff03e2b138a12ce1b81f04de0f18c5cda2c1e6aedc3aa492a851f4d74d02fb8eb938033464dee21bd9b7f1712c25a7bf48517d93f6cd02bc5e069e85ca98eef103792b05581e03ea8431517e59f99fc03529e5e130e71f350dd1e5667df5a596525011b00c02466b82a4bd6c7005581e03d040d142166d82cf92e33219046c6998c01ec85633f14741fd570d1ea00c02471226ca5316200005581e03cebf64966ab0cc681833d78bd39f0183b290c96d8240d87c69b1808fe00c01473977c49cc5a00005581e03c332596dafc8a0d3de5335f6745f099760e46ab6bebc37737b51a55da00c0247419bba9070cab00340c3c8f7a9522d6df5c0028d90d360f73c5169b4cf434d95350beed43e16739005581d02bed19a2dbbf28d15e3dba40ac8d38fdac0baae648d93f2e0f0fb8f6e040605581d02ae81a58eb98d9c78de4a1fd7fd9535fc953ed2be602daaa41767312a084a02d3b98530af92d7da5402189005581e03f7a73d9495ec8f6eeae2df9cd01dec4ab0ba0bc3f290f838476f9f6a800c044623786497c27805581e03207acb1c81c525b9a80f29d10435a717de3199dd35a26d6b1d82392610040102193d1e03e169a4245b79aff36e180d5a5e31e98a546d0e9226fd169621b29f7fb74a08a003a148fb69fd472ea2e782043711dcf16a2081ab9b095c9b03f2456e78e7d117230324519d496ffa031ca89fc827150d86cafd3fee245c9429fc3c82dd981e1ae0af0303d4a79eaca9df5af3e4b9c1714d21f9e35c16f7f81a3b9eb7aa520b93878fea033b49edfda21d965ea0749955d038db7a04b8df660343a05fc418076ddb96622b03b6281907287d1d4c04c89c8aa99000e67a8ade25ea622339eb8f6b314ba0685903b9fa4d061ca7337fc40b84913e0517fcb3cb653d999905f3178bf3ef6ce9119703a3417d518bc88b9d83ff479f7f4244fa15be4909509c3ec804ec31aebd8381870219ffff034db80d22ea1fa6f294c072e51212fc1f8ed5427142f7ad274ecb3c96fd48d06d03f3270f926e5ff1c97fc9ee5bb44249f8f34bafd6908d757918f4e93a626063b10335db9f298ed4ae4d4c807dd8d333a586b5dc172b5dccf62353743b78e4e8b8f40219ffff030ddea34e5f0370d1427397a612e87048fe73fa230aeb7bb96f0eef0e221dae7403dc31faf9ab9e875fca0688f0c9e4528bd2ada8d63bf390cffe3749e9a99a91cb03e3f1839b664254714af58a20bf82641a2e71c84493459a65f80affe2e656066603fcd46c4f218b3a440fdb576de27b59041d937b3fc3da9a4a79a9c2808f7c46d603de59db71d5b9b241852f4e4568b0379b3607501e4360bc153425ad78dc7c0a2503a8ddb982de80746a493539e5ef8c737f421daf1202de1b74b7b2c2cfd1b5f65a03159d34a043ed37cd89adf8f6158e1632302302e73a860f28258b5545d0dce2610332f27ebf2c698a49a9e45d857fef414cadfb04f06d4db0065eb78ce30dadcc47034104f238b5768a3596bc56520c9ae6045c7440ad1869afa12c34068cb969d1680386052361ba45d482721c9822a049a9f6c384b7e7d95cbe7154e7b9acc230739e03097da24155bcb7a6060579e7958c557dc77f54e8701461a420d349990e6984a2035eede84534e9448914e292ce06c60198936e65392c240342308b22ed15df99cb03cbf74423c1a67255aa1903b8c304c2735b7ad75a884ab8ecc67e5d9d5f38887503a717284f7bf533454db5fb139ac095754cc7c6089ac91276bf7a0e9a2a06e3c6038a1859dac578142f000e3c34260b526a9ab170fcae315f5dfb4d641cb8992bdc0219ffff034a9d4fc2a1ff3a72168d77a6c71a684fa2cc9ba74be1d754c0712bffcccac1a003729b9afa86665ef499913674c0f19781b96b371bb3ea4418a4f5a8bf48831a7903ca67ed9af5e94c980cebf5ad5f1f7aa167000f04d6bdad455fad79a7a8130d3503915c2e2d28a3754ae929089c13ea05a5c3b7ca58b1be796db3b9d360cccdb41a03fa5f8c5b65268ebd71849b26f8d38e94c43ea4054e61357334e8d98ceced7a1903a98915c1b23ddd2f67a4f71c702ff8e2db6c708f2a18dd175b2e81fe4ef0128903f035a5dba50f89ca49c72737fa957408fdd8613ec85c103a9e17f515246fce40037c7f77ca65cb91ae40030f986eb6d74419e655c44d082927926141a197182eb70390c5bc3ccf49969fe50742cb431f1810c0ef4ca0a4722c4d083532aa7257eb5f03abbafe1921571404de42dac5b6eba5cf657147729baa3653567d3c3047165b6303e087e9a010fc6583b7077187e7bb4f9afe787ac964c1195db9107f1b3bd8054f03d18849577f10181fe02a41f4a432768e2c1514f1003143b31b5376110e40b32203a2d521c02ad4840b74184c89b1fb895f5e15c453ed4617bd3fab08123a8d01e403abdfd7082442673fe40d6a042adf6722f97930c10c839320b2c82aac5d11f51d03e43113c829167242b6dae3093bf6a53a319d300dcc066de656e06c3d2e4bdc7a03debf87b781e26b56542827e4c97ed0a54c5051c553f3606feb91dfec3d2fbdc0037d116afa519025b41fbe75098229ee77a3b7b773995a2989774ffd7d4d6a1b66034fe09349878ed36f213fb47644ea35b30c93103ec21060b3bcf8d1fdda1b4b8203339f06b51a9a41fd1cad1ed27b9a55af2d14515f913d951c99b15fa752713f2e03029135d81886e5442cf98a8db812ff51f92a1d3b357e021f66f75a42de9e5d7003f3e78131b328b7f4005959a7de5020e3863124ca9735d5efb2ac83ac57b24ca403e65842ac86b1e6c1800c1e38a34c5cc04fcb5465b5fcacfc32d139d095dc88df0381dee1a1829a92ab4b7ac28290ead3d77d4bc55c7047838527672725efb1066e035adf110b0ee8162034bcc278008c5bbdd7c9c2f8979ef5b1572f0a6c3a21f3b5037564fce04bc0f1333a5dc35976a578de85c9979a494c866f1a907ca9d23e96ce03860376a3ae4af757dff860fb3913bedfd66f64eb6d4367e3648e4e20982f27fb03e74ccced98bdcd4f6b4a16030b044bb684f661e2f39a23c8c87d7159c3f0f5110312fbfd785e2e79d70fd3e18d95f1bbe3f6626e16ab026722a842ba28269abe2103113e73476d739ce2d86821859e68db2436dae4feb372e9396355f444dbeb6f5103e04f78692869f67f8b1f4fa388cf06415aba89ee17997d82ab8b5c663c1578e103394170d4de2a25c0a35aa5c2a53db8f82eebeb79b5d417536f2d66e46813f14203c4985cc72daea0c87dacb6e708e8e287262cbcc219e480a6d3002c6e522889790352481f97a351030e4939a888f9687f43bbc9adbf1c67b7f9e5ed4d545109db98039cf4100dc54b4bd5e52ecde8ef8a513d1b824d836da0dc1cce7f34b3b722b7de039a8221a6457daed39645df92ce5a202121ac0622669767e464c77de0b0b034b805581e03df06ca685c89128fbc6d50ce33c691804f906d57612f4cf9546a6b57f007011bffffffffffffffff05581e03439274b401e8702226517d501ac30906f06e55c44efe5828b5357bcdb00848023f044399e7000005581e035c5162a477263d9492b8299ba68a9d6db821bc18a05afe81dd06143a400403045919616080604052600436106101355760003560e01c80638c00ce73116100ab578063c52a3bbc1161006f578063c52a3bbc1461030f578063c676ad291461033d578063ce0b63ce1461035d578063ce8c3e0614610370578063f219fa6614610390578063f2fde38b146103a357600080fd5b80638c00ce731461029d5780638da5cb5b146102bd5780638eaac8a3146102db5780639f8420b3146102e9578063aac476f8146102fc57600080fd5b8063485cc955116100fd578063485cc955146101df5780635dfd5b9a146101ff578063635c86371461021f578063705b05b81461023f578063715018a61461027557806384bd13b01461028a57600080fd5b80630aea8c261461013a57806321425ee01461014f5780633a9a7b20146101625780633d1d31c71461019f57806343c66741146101bf575b600080fd5b61014d6101483660046112d1565b6103c3565b005b61014d61015d366004611345565b610532565b34801561016e57600080fd5b50606854610182906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ab57600080fd5b5061014d6101ba36600461137a565b610571565b3480156101cb57600080fd5b506101826101da36600461137a565b6105cb565b3480156101eb57600080fd5b5061014d6101fa366004611397565b610601565b34801561020b57600080fd5b5061014d61021a36600461137a565b6107c5565b34801561022b57600080fd5b5061014d61023a36600461144e565b61081f565b34801561024b57600080fd5b5061018261025a36600461137a565b6067602052600090815260409020546001600160a01b031681565b34801561028157600080fd5b5061014d6109d7565b61014d6102983660046114fb565b6109eb565b3480156102a957600080fd5b50606554610182906001600160a01b031681565b3480156102c957600080fd5b506033546001600160a01b0316610182565b61014d610298366004611593565b61014d6102f7366004611606565b610a2c565b61014d61030a366004611628565b610a69565b34801561031b57600080fd5b5061032f61032a366004611689565b610b9c565b604051908152602001610196565b34801561034957600080fd5b5061018261035836600461137a565b610d0d565b61014d61036b366004611345565b610da3565b34801561037c57600080fd5b50606654610182906001600160a01b031681565b61014d61039e3660046116ca565b610daf565b3480156103af57600080fd5b5061014d6103be36600461137a565b610dc2565b6068546001600160a01b0316156104175760405162461bcd60e51b815260206004820152601360248201527213db9b1e481b9bdd081a5b8818dbdb9d195e1d606a1b60448201526064015b60405180910390fd5b6000610422866105cb565b90506001600160a01b0381166104715760405162461bcd60e51b81526020600482015260146024820152736e6f206761746577617920617661696c61626c6560601b604482015260640161040e565b606880546001600160a01b0319166001600160a01b038316179055600033846040516020016104a1929190611760565b60408051601f1981840301815290829052630575461360e11b825291506001600160a01b03831690630aea8c269034906104e7908b908b908b9088908b90600401611784565b6000604051808303818588803b15801561050057600080fd5b505af1158015610514573d6000803e3d6000fd5b5050606880546001600160a01b031916905550505050505050505050565b61056c83338460005b6040519080825280601f01601f191660200182016040528015610565576020820181803683370190505b50856103c3565b505050565b610579610e3b565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fa1bfcc6dd729ad197a1180f44d5c12bcc630943df0874b9ed53da23165621b6a90600090a35050565b6001600160a01b03808216600090815260676020526040812054909116806105fb57506066546001600160a01b03165b92915050565b600054610100900460ff16158080156106215750600054600160ff909116105b8061063b5750303b15801561063b575060005460ff166001145b61069e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161040e565b6000805460ff1916600117905580156106c1576000805461ff0019166101001790555b6106c9610e95565b6001600160a01b0382161561072257606680546001600160a01b0319166001600160a01b0384169081179091556040516000907f2904fcae71038f87b116fd2875871e153722cabddd71de1b77473de263cd74d1908290a35b6001600160a01b0383161561077b57606580546001600160a01b0319166001600160a01b0385169081179091556040516000907fa1bfcc6dd729ad197a1180f44d5c12bcc630943df0874b9ed53da23165621b6a908290a35b801561056c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6107cd610e3b565b606680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f2904fcae71038f87b116fd2875871e153722cabddd71de1b77473de263cd74d190600090a35050565b610827610e3b565b805182511461086a5760405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b604482015260640161040e565b60005b825181101561056c5760006067600085848151811061088e5761088e6117c9565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b031690508282815181106108de576108de6117c9565b6020026020010151606760008685815181106108fc576108fc6117c9565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082828151811061095a5761095a6117c9565b60200260200101516001600160a01b0316816001600160a01b0316858481518110610987576109876117c9565b60200260200101516001600160a01b03167f0ead4808404683f66d413d788a768219ea9785c97889221193103841a5841eaf60405160405180910390a450806109cf816117f5565b91505061086d565b6109df610e3b565b6109e96000610ec4565b565b60405162461bcd60e51b81526020600482015260166024820152751cda1bdd5b19081b995d995c8818994818d85b1b195960521b604482015260640161040e565b610a65338360005b6040519080825280601f01601f191660200182016040528015610a5e576020820181803683370190505b5084610a69565b5050565b6068546001600160a01b031615610ab85760405162461bcd60e51b815260206004820152601360248201527213db9b1e481b9bdd081a5b8818dbdb9d195e1d606a1b604482015260640161040e565b6065546001600160a01b031680610b095760405162461bcd60e51b8152602060048201526015602482015274657468206761746577617920617661696c61626c6560581b604482015260640161040e565b60003384604051602001610b1e929190611760565b60408051601f19818403018152908290526315588edf60e31b825291506001600160a01b0383169063aac476f8903490610b62908a908a9087908a9060040161180e565b6000604051808303818588803b158015610b7b57600080fd5b505af1158015610b8f573d6000803e3d6000fd5b5050505050505050505050565b6068546000906001600160a01b0316336001600160a01b031614610c025760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920696e206465706f73697420636f6e74657874000000000000000000604482015260640161040e565b6000336040516370a0823160e01b81526001600160a01b0380831660048301529192506000918616906370a0823190602401602060405180830381865afa158015610c51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c759190611846565b9050610c8c6001600160a01b038616878487610f16565b6040516370a0823160e01b81526001600160a01b0383811660048301528291908716906370a0823190602401602060405180830381865afa158015610cd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf99190611846565b610d03919061185f565b9695505050505050565b600080610d19836105cb565b90506001600160a01b038116610d325750600092915050565b60405163c676ad2960e01b81526001600160a01b03848116600483015282169063c676ad2990602401602060405180830381865afa158015610d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9c9190611872565b9392505050565b61056c83836000610a34565b610dbc848484600061053b565b50505050565b610dca610e3b565b6001600160a01b038116610e2f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161040e565b610e3881610ec4565b50565b6033546001600160a01b031633146109e95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040e565b600054610100900460ff16610ebc5760405162461bcd60e51b815260040161040e9061188f565b6109e9610f70565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610dbc908590610fa0565b600054610100900460ff16610f975760405162461bcd60e51b815260040161040e9061188f565b6109e933610ec4565b6000610ff5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166110759092919063ffffffff16565b905080516000148061101657508080602001905181019061101691906118da565b61056c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161040e565b6060611084848460008561108c565b949350505050565b6060824710156110ed5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161040e565b600080866001600160a01b0316858760405161110991906118fc565b60006040518083038185875af1925050503d8060008114611146576040519150601f19603f3d011682016040523d82523d6000602084013e61114b565b606091505b509150915061115c87838387611167565b979650505050505050565b606083156111d65782516000036111cf576001600160a01b0385163b6111cf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161040e565b5081611084565b61108483838151156111eb5781518083602001fd5b8060405162461bcd60e51b815260040161040e9190611918565b6001600160a01b0381168114610e3857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156112595761125961121a565b604052919050565b600082601f83011261127257600080fd5b813567ffffffffffffffff81111561128c5761128c61121a565b61129f601f8201601f1916602001611230565b8181528460208386010111156112b457600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156112e957600080fd5b85356112f481611205565b9450602086013561130481611205565b935060408601359250606086013567ffffffffffffffff81111561132757600080fd5b61133388828901611261565b95989497509295608001359392505050565b60008060006060848603121561135a57600080fd5b833561136581611205565b95602085013595506040909401359392505050565b60006020828403121561138c57600080fd5b8135610d9c81611205565b600080604083850312156113aa57600080fd5b82356113b581611205565b915060208301356113c581611205565b809150509250929050565b600082601f8301126113e157600080fd5b8135602067ffffffffffffffff8211156113fd576113fd61121a565b8160051b61140c828201611230565b928352848101820192828101908785111561142657600080fd5b83870192505b8483101561115c57823561143f81611205565b8252918301919083019061142c565b6000806040838503121561146157600080fd5b823567ffffffffffffffff8082111561147957600080fd5b611485868387016113d0565b9350602085013591508082111561149b57600080fd5b506114a8858286016113d0565b9150509250929050565b60008083601f8401126114c457600080fd5b50813567ffffffffffffffff8111156114dc57600080fd5b6020830191508360208285010111156114f457600080fd5b9250929050565b600080600080600080600060c0888a03121561151657600080fd5b873561152181611205565b9650602088013561153181611205565b9550604088013561154181611205565b9450606088013561155181611205565b93506080880135925060a088013567ffffffffffffffff81111561157457600080fd5b6115808a828b016114b2565b989b979a50959850939692959293505050565b6000806000806000608086880312156115ab57600080fd5b85356115b681611205565b945060208601356115c681611205565b935060408601359250606086013567ffffffffffffffff8111156115e957600080fd5b6115f5888289016114b2565b969995985093965092949392505050565b6000806040838503121561161957600080fd5b50508035926020909101359150565b6000806000806080858703121561163e57600080fd5b843561164981611205565b935060208501359250604085013567ffffffffffffffff81111561166c57600080fd5b61167887828801611261565b949793965093946060013593505050565b60008060006060848603121561169e57600080fd5b83356116a981611205565b925060208401356116b981611205565b929592945050506040919091013590565b600080600080608085870312156116e057600080fd5b84356116eb81611205565b935060208501356116fb81611205565b93969395505050506040820135916060013590565b60005b8381101561172b578181015183820152602001611713565b50506000910152565b6000815180845261174c816020860160208601611710565b601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820181905260009061108490830184611734565b6001600160a01b038681168252851660208201526040810184905260a0606082018190526000906117b790830185611734565b90508260808301529695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611807576118076117df565b5060010190565b60018060a01b03851681528360208201526080604082015260006118356080830185611734565b905082606083015295945050505050565b60006020828403121561185857600080fd5b5051919050565b818103818111156105fb576105fb6117df565b60006020828403121561188457600080fd5b8151610d9c81611205565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000602082840312156118ec57600080fd5b81518015158114610d9c57600080fd5b6000825161190e818460208701611710565b9190910192915050565b602081526000610d9c602083018461173456fea26469706673582212200c29eeed0573b5b28c76cb1711251f0a9b4583944ddfc5b20d4c1ea70c7a325064736f6c6343000810003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341ff05581d0275270b4807f5d48aad4b2a0b205bf8aab8555200c795b470d8a1819e070119196105581d02c596f1533ac8978df8ae88175c36b4871dfacb9807dc8d2695a2810b0c0947048e102b11080005581d027ce60966cf91ab006575734ef26754df0bb1aae43c80d11b7fce45aa0c0d471aec4994c38ab60219045005581e0388629c67953ea7a36996794f447d814f574e554364c70bc10f9b33e3600c02449ef730c003e9127f08e4b50c770638c008f298be513e06c70b217b393134db2e07ef67013e038a0142498c46e360e5c791ba13c31b243687ec092715a050463fb735b647794905581e03be8139c91da184d20b11cc5d45f637d894d5d14a66e992da726df3c0900c0347063d708eb323000321698cefb7650b97894ae8ecefd2eabfa417d7f2009662a05f6b93b780940d2901410a05581e036d8966c4cd39ed31d27bf9f873bbd75bfeb3aa0553ad2a25ba8f6c43e00c02471038f8d4c38a000219df8e03cb87b321eede5bfdd6a279143f2aaa0f08eb65606d2816c4bdc1b0f238a134f703f1a9f0e2f275d9a2f2d6262e307b56b6cfdeaf0a56d38333c64885c03a80e21503a66b13eff142e2b843a15c17965b17bfb1e5e73a15522fcd82b1e86c0f72938403be8808c27bc685d5cb63ada4fe79c25505856450441e8be3baf4cb870a8693900383759c07cf6fce428ca80b290a3129877de510e45d582c478fd0e35824816b480219ffff03081b233b6c2ea96af5ef8dee11a8b247e1fbdf2c84c6e2a4b43d5ec588a0ca5d033654b33b101f769ca68aa4fa52014799c450de1de05d67686803d0ba66c2298a03fd82aa5914ace58804e6feeaf54b88db1f84aa96e31146776f00b9a89379942b03367e6d39d1841a69e5bab525efbc67fd986c67eb9349e3450a3ac9400d56eb99033987a5c8d7e2e78309ba95043e2ec75b1c61df39b2de8084554df8bf5bef48a0038eab82ab1dc89b077f850eac4d2ef1c0cf98ed93d862434a6f08fadb41dc546b033472027adba820ab75e4a161c93f68f5c89b3d6d7c014bc2a3bc80da1d6a6d520219ffff03fcf3bff4e29c35909d82a1fb08ba8d5a69338de6958445a551f83dfb23316636035456d2a88b642a221254062eed5c6a1854dad64785d5724772f6ac7d9e2a22da0316cda6e267170db58761ac6e40b9b4293c8999c8f7c7ddfda892e762a0d2d7b1039f373365d68d2683404d1a5fb7a46b1bdc5d3d5ca6b323adada6a2168843b9ce0219ffff037dbb8ce88fc801bddb1a826cd117daabc28e4dda58b68eb4c54b690c7d511a72038cbdfa4897d1b9b990f255614a1a44e4f088a5f8d23f0e46a4b50bd32940c32603fb84f8f31391a43be7af63a55a885c110b98934599176cce1b2d32e210cdcdcc0219ffff03518aa7bf7c475868f990151070c40a4665a13acf652cce56bbe3a06e653fce4803bf82018c050dd8791e4671dc80abf7a399f0862b6c4c7b1b287260d47d7ae2a3032a2625f880bb027af378fbd47eab4393d1903ceda716281c27203bfedf8c9c92038c18a30afbabd869c6f4870303d889d066f5755b53189a015b46b17b34aadea603b2b0991c64f592c291abf54cbde9df524acd869457fdb82fcf3ac78581094a1303f97b7360fedb0e8359c9790c89d878d767180ec45bb043caad351f711564e4a30392a26818e8f3bc2ae800455b7b5fe56da656a3f24e8ee6f6c39263351fd9e7b903c5eb3e2143ee07033027a460846a7cf786cbe023df4de45beb83032d2749b2f4038141a5b64c126b4b973bfd533c4a20b116ea5635ec1a43255d1043c3adead6c603b16592ab1ee572cd356700e5fb7462420f74d87c50687158d76c65543cf422f503af68c06dcdcfcfee28d7313792d54af8be874b38682a7927de6cab82390ce076032fbf655521388bf926b91ba8b1635e5f41c2a6d26581e314736be07cd8519d9f03edaf752685f167ae62708d0c72511a2dcb11edd9c464926541525dc3b7e00283035b558bc8890b02adf6192c145488d3710928b87d61c2b69e531e145695d17bea03ca7fd14a66cb5d9daea29e62a7a9434624b9f538c9b45592fcace732ab1bc818038f65f0904df99d67550fd2d42e18b4f91eb59d2daab68b089ce50d8c98afc735037c6f2a65f22a22adace9d1a9fa7964b3fa647bcd7513d7e9ce2d589bb9479fd403c9af306e3b5041264d448c97e3773338b6d5139f88e2e7930849d55000dc854f03fc2ca2164640a52780f897c492ff94cd02a4d45052c1aef0b5bf22ecb7abd8a403cae135e7c142cb2d0d00e026f74041f2b02416b6f3411383aebd1ffda883b942038e954b5f71f6953c217273cf89a5df5f1b5f381a4a25a9516abdea420e57de3803e4aa34cc714247a7e313062404dfbbfe0de03d7db786d12cd63f1b20e5f08d8103c9cfeda1ee5a130fa8581d7f00f7e8c8f2bd96667755155431aa462124a5874303db30c7eeeb77828f6d7ab43295251a728e4cb278c630f78a406201cf9a3220fa036357a546f562775235cc290b909fbde31539b7a2e70d849ceb592a725a4cfe9b031c32e26c656ea5d7f50c6594b4dcdeeada426ad5ef06eed0811889b4bae1dea2035a6d04bf10575557796b6892ce3fc235b5a41ae33dafc12baddcdaaa7b955cd2035edabf079a64cd8c7e93c8a5d5b2b2502dec2c682ac40098359fbc6954fdf86203f187dd6265777ad8ee8b407ff69f7e606e07ebe5ba6f2ebc91c701fb0141d66103aad9189120cf7410888d3d92f6bf76dfbac4c11665d0cf167c7d81410e2bcabb03fcae5a9b009636f76319c0413f35180056e86ab2e7dc485697e4b17e987072ac030da306ff8d5c70af7e48151cb13b7f68988ce7a17cc3f7102ab58c752e2c537c030c2e66f90cca71602e563357ea7139ae0f63babacf6b5650b583c03a482693bd03e6f48d4a000b876b82aa8ca091bd18ad9b104129b53805a8231b1c96c14695ab0303b8183a2fc83b295f206031a0aa71d7624504e70608c9afd89d049569e2a9f303251025bfa7f3add98531a763eff99835443dbad41181017511ca5840c2cba57b033462fd0de9705a7f6bb2178ef7ecc000b0f74ed80a02f2575cb288e34ed452f50388ac71783808648cd6c05bdb338e4a9b59fcb05ac3954140d1a227312d150c6105581e03307a7d4ec62b1e2b521f8934a4addd48353f738ad06a6f7ad4769a59200c0747037f1d2021d800032df39c0062882ba634fb24c89e7f9871ecef10a6e6a6e79a336f6ed463d5c94203fe117ccf3dd9facd164a076436296b74a35c4e02e765b51024caae30cfc974c205581e0328cccadb046f83d790dac51d191d85ded0db2952030b24d3809ccdd45007011bffffffffffffffff05581e03480447ded22fea63982441f1b6e1e7733a5f72e760e90c4835a0c351c0040105581e03618e26b614acb0c817e8b04d5258c0d2f85f94402bee56bc9ae4795a400c0147c194728002b40005581e035e9fffa08714a74e0b23b745774a16a69f1d46249ae01bc494ca0f8380040103464a78a0d8cc58d3a09ded668629d5e56758459a7bc8619b1ebdc835f313a92b05581e03cad83683560befe7510ef2ccd7d2a7bac4672f2476e0b7755a577261b004020219609d03ab11182a3644509ebbfa8f098960a47cf58cdc068e8fc4127ad8da45255d2ae6032efdc47c5434b629696d56500907477a8e20cdcc9b2db7bd28d036001f92f8aa0348bf09d18d2fea0619a5309c1173028ba0cbdcf50045e487393e99250aa924a20324b8e8353ee991e32ead09e9de9045fcf56ee0f7d6f9c1c67abd6d8177ca29760349eea317d384a37974da3acdce541d8c1c3ca27a7b57f774a2f05bf1d5289b310219ffff0359e3e29c655ad71375ee081c8c338421079e10525027bd25e1a9aaf7805b063e03ae6481dc48208501b0f322eacd2ec970e1eb42eb0b2b0ff1c28befb1d5f5682a035e4352b2ebca420f27c0c4ddb68133c36a00567235fafa318289455c750bd47803505a68de608ed0cb6e24babc90b83bfe64c753a6e4bd4fadfdc08579d254694303f4f9d1d974bf93661efb20e5ee381825c066a8961527844617825712575f4f7a03713d2f8c26f40b7c741123b05c51522a0c5704440120542cb1d941f6d1c7b271032236399fd04450ccddbe9417fcb1e71288ae066d8d763054f3d8ca8456239c780301fcb4198e3864a542d168370cf49db019a24908b7198e00d2a1a84421f7122103e46f7240d9beda99d12403fe6336d8653169e95142220fabde72e9b53fde521d0380fa29a6bbab67ac1fdd0a45a04e2aa392ce7aaecdf8ff3ceddf7e0c3c092eb30318f927a8f275150d59195fd496b7dfb8649ae753e683b063d205fcbef7ed3bd10219ffff03cdd75eee82de18a8bb7c9d8014dd5c35156b192e430b077e8461708a1391f2f6038b488a0da5e42bf4bb1c66e11b8919ed4656281c759626810f5c9f3eaad5051b03ae786ac398d01e849fa14ad4764e05723d322d53cbcfe49e66436d5edb955caa0219ffff03314699f30c811385d71b771ac8a81b1c7611fc49f9fcb773f71590757439cc6b030091fb7b8e375ace36de3fc8cb5dc627ea6ed487c18633d69b998e9ebea9a96103d91b79f3adc71821b153ca19a88eebe65f3422a4af08aee00a6c9842cc5dab230219ffff036ed2647f4f727b33432ca1581d15732bc5ebbaea207123139f16aa2ff6f377690396c27109d2f1a7691d1545b9e4327be0fd86f48766cb678a3f07a91ca069972d03937ce710432d6d5d2a9b2a5abe09516ea3199a013f27013abc83cfa6ddc900b803723175de785b532c3f95e4860ef566575163b5bbfd341ef958a8f1d397601c6d037cdf24945e8f056c2126144bb8c0066721e81fef3dc9cf830e1b6c3d88af37680377c674ed3bc3a705a9c06bbfd82bda1ab6de420cca636ea412c4eba337fd312e0313a811677a1fdb0e8298b36c75b9bed5dc7b547ba6150063c37885332802588403883363641bc0dfa151c8247a99af7e004f5e56390397a154069a13d48fd70f35034e9e758bf77f9308f95e7aba27b17a3add5e87cbc052b069476a17c073b32aa203c2302330f9dd8daf9b1753c63ffd76a169cd7c9f02912eebeb2a7926580d88b9038130c5c95511c586ea069760d3b6afa657101537f9f51f8744786fc6fd15de9d034299febd051f6d1d04379f6358bb862f27f986f6ff69cffb82b554e7b69ad79403f006e861aab2e045b9e68c76a939dcf6ac03c680b37103c1c06aa0f244aa986e033c5352899943c626d445d73a3347097a10e0341faaf79748b88e7c06ca26d123038b4bb01111178e28984956144ffec1a92da25717775a08fc4ef24f6b61f898c8039b85d587b68f90598315f1371ac51093572a6d4eafa3b13502b4ed9edcecb4380374dc0321597012dcc1e572d7ab2ed10a21e5b0ef89ae9eb6d77542516ff5542903ea74ef8dec3aa4fce8ef8e8f4b74c8e82b08b66a10071fb03dca501a8072f71803a793d630d54018c6459401769490c0c2c0de6b7845a8802d715ce7d58e38ca160365bf7446367ef29863091ea3f30d0887dd0f5804dff4195e9a06d3fdc7a6a0920361c6e93e292b434f363e19194ca1d7702cc93ae319085f32de2a2fd69da24981038425ab33c6fac84465261d8fe798ff2c7e3b2f3a015830c1c3b197098dc3979503281e88cdb52ba905a9d22e221bb7a69402106d81adda29a187de38512fc47a7305581e03a9efda796b798adc52029029f2de8711ac41f34030504f0f5a02e814200c01470a133d80473ecf05581e035b9c4ad0872802e21e829bd942ee10f55728b3c860ccad8743c4e549d00c02469a062518c2c8033b05cee3cfbe2001ebd51430e341b47f64b484a13ffb1db0571c0aaa02ecb77d0459157b608060405234801561001057600080fd5b50600436106101da5760003560e01c806370a0823111610104578063a8af32e9116100a2578063cbf0b27611610071578063cbf0b276146103d3578063dd62ed3e146103db578063e5e808cb14610414578063f2fde38b1461044257600080fd5b8063a8af32e914610391578063a9059cbb146103a4578063becf7741146103b7578063c50b0fb0146103ca57600080fd5b8063878e7ea5116100de578063878e7ea5146103525780638da5cb5b1461036557806395d89b4114610376578063a457c2d71461037e57600080fd5b806370a0823114610318578063715018a614610341578063845f290d1461034957600080fd5b806332565c491161017c57806342e473151161014b57806342e47315146102d657806343f42802146102e95780634da7808a146102f257806362759f6c1461030557600080fd5b806332565c491461027257806332c882041461028557806335b48afd1461029857806339509351146102c357600080fd5b806318f510eb116101b857806318f510eb1461023257806323b872dd146102475780632a3890621461025a578063313ce5671461026357600080fd5b806306fdde03146101df578063095ea7b3146101fd57806318160ddd14610220575b600080fd5b6101e7610455565b6040516101f49190611315565b60405180910390f35b61021061020b366004611295565b6104e7565b60405190151581526020016101f4565b6003545b6040519081526020016101f4565b6102456102403660046112f3565b6104fe565b005b610210610255366004611254565b610547565b61022460095481565b604051601281526020016101f4565b6102456102803660046112c1565b6105f1565b6102456102933660046111da565b610637565b6007546102ab906001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b6102106102d1366004611295565b61068d565b6102456102e43660046112c1565b6106c9565b610224600a5481565b6102456103003660046112f3565b6106f8565b6102456103133660046112c1565b61072d565b6102246103263660046111da565b6001600160a01b031660009081526001602052604090205490565b61024561078a565b61022460085481565b6102456103603660046112f3565b6107c0565b6000546001600160a01b03166102ab565b6101e7610990565b61021061038c366004611295565b61099f565b6006546102ab906001600160a01b031681565b6102106103b2366004611295565b610a38565b6102456103c53660046112c1565b610a45565b610224600b5481565b610245610b1f565b6102246103e936600461121b565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6102106104223660046112f3565b600c60209081526000928352604080842090915290825290205460ff1681565b6102456104503660046111da565b610c27565b606060048054610464906114c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610490906114c4565b80156104dd5780601f106104b2576101008083540402835291602001916104dd565b820191906000526020600020905b8154815290600101906020018083116104c057829003601f168201915b5050505050905090565b60006104f4338484610cbf565b5060015b92915050565b6000546001600160a01b031633146105315760405162461bcd60e51b81526004016105289061136a565b60405180910390fd5b61053a826106c9565b610543816105f1565b5050565b6000610554848484610de3565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156105d95760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610528565b6105e68533858403610cbf565b506001949350505050565b6000546001600160a01b0316331461061b5760405162461bcd60e51b81526004016105289061136a565b6106276012600a6113fa565b61063190826114a5565b60085550565b6000546001600160a01b031633146106615760405162461bcd60e51b81526004016105289061136a565b600680546001600160a01b039092166001600160a01b0319928316811790915560078054909216179055565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916104f49185906106c490869061139f565b610cbf565b6000546001600160a01b031633146106f35760405162461bcd60e51b81526004016105289061136a565b600b55565b6000546001600160a01b031633146107225760405162461bcd60e51b81526004016105289061136a565b600991909155600a55565b6000546001600160a01b031633146107575760405162461bcd60e51b81526004016105289061136a565b61078761076c6000546001600160a01b031690565b6107786012600a6113fa565b61078290846114a5565b610fb1565b50565b6000546001600160a01b031633146107b45760405162461bcd60e51b81526004016105289061136a565b6107be6000611090565b565b6007546000906001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561081457600080fd5b505afa158015610828573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084c91906112da565b9050600081116108905760405162461bcd60e51b815260206004820152600f60248201526e1393d7d513d2d15394d7d3d5d39151608a1b6044820152606401610528565b8082106108d45760405162461bcd60e51b8152602060048201526012602482015271494e4445585f4f55545f4f465f52414e474560701b6044820152606401610528565b825b82811161098a57600754610978906001600160a01b0316632f745c59335b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024810185905260440160206040518083038186803b15801561093a57600080fd5b505afa15801561094e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097291906112da565b336110e0565b80610982816114ff565b9150506108d6565b50505050565b606060058054610464906114c4565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610a215760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610528565b610a2e3385858403610cbf565b5060019392505050565b60006104f4338484610de3565b6007546040516331a9108f60e11b8152600481018390526001600160a01b0390911690636352211e9060240160206040518083038186803b158015610a8957600080fd5b505afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac191906111fe565b6001600160a01b0316336001600160a01b031614610b155760405162461bcd60e51b8152602060048201526011602482015270135554d517d3d5d397d513d2d15397d251607a1b6044820152606401610528565b61078781336110e0565b6007546000906001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bab91906112da565b905060008111610bef5760405162461bcd60e51b815260206004820152600f60248201526e1393d7d513d2d15394d7d3d5d39151608a1b6044820152606401610528565b60005b8181101561054357600754610c15906001600160a01b0316632f745c59336108f4565b80610c1f816114ff565b915050610bf2565b6000546001600160a01b03163314610c515760405162461bcd60e51b81526004016105289061136a565b6001600160a01b038116610cb65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610528565b61078781611090565b6001600160a01b038316610d215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610528565b6001600160a01b038216610d825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610528565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e475760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610528565b6001600160a01b038216610ea95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610528565b6001600160a01b03831660009081526001602052604090205481811015610f215760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610528565b6001600160a01b03808516600090815260016020526040808220858503905591851681529081208054849290610f5890849061139f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fa491815260200190565b60405180910390a361098a565b6001600160a01b0382166110075760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610528565b8060036000828254611019919061139f565b90915550506001600160a01b0382166000908152600160205260408120805483929061104690849061139f565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60095482101580156110f45750600a548211155b6111385760405162461bcd60e51b8152602060048201526015602482015274544f4b454e5f49445f4f55545f4f465f52414e474560581b6044820152606401610528565b600b546000908152600c6020908152604080832085845290915290205460ff16156111a55760405162461bcd60e51b815260206004820152601960248201527f474f4c445f434c41494d45445f464f525f544f4b454e5f4944000000000000006044820152606401610528565b600b546000908152600c602090815260408083208584529091529020805460ff19166001179055600854610543908290610fb1565b6000602082840312156111ec57600080fd5b81356111f781611530565b9392505050565b60006020828403121561121057600080fd5b81516111f781611530565b6000806040838503121561122e57600080fd5b823561123981611530565b9150602083013561124981611530565b809150509250929050565b60008060006060848603121561126957600080fd5b833561127481611530565b9250602084013561128481611530565b929592945050506040919091013590565b600080604083850312156112a857600080fd5b82356112b381611530565b946020939093013593505050565b6000602082840312156112d357600080fd5b5035919050565b6000602082840312156112ec57600080fd5b5051919050565b6000806040838503121561130657600080fd5b50508035926020909101359150565b600060208083528351808285015260005b8181101561134257858101830151858201604001528201611326565b81811115611354576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156113b2576113b261151a565b500190565b600181815b808511156113f25781600019048211156113d8576113d861151a565b808516156113e557918102915b93841c93908002906113bc565b509250929050565b60006111f760ff841683600082611413575060016104f8565b81611420575060006104f8565b816001811461143657600281146114405761145c565b60019150506104f8565b60ff8411156114515761145161151a565b50506001821b6104f8565b5060208310610133831016604e8410600b841016171561147f575081810a6104f8565b61148983836113b7565b806000190482111561149d5761149d61151a565b029392505050565b60008160001904831182151516156114bf576114bf61151a565b500290565b600181811c908216806114d857607f821691505b602082108114156114f957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156115135761151361151a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461078757600080fdfea264697066735822122018d345deda60bb8be6ec0c2ba2226db04e33cb88103206e8363649e23673249b64736f6c634300080700330361db8803d6809d6ad81493fffb9bcdec2462b91ebdd6d114e945b48c274828d70343063d53138fa78a2e84814648444137bd45225f75142c00d2184e57da3b0fbd034767123448adeb774feee06255b5f6a375e509889da303bd279d7f67f2dab5310383650910b2281379e337e07311a11e85459bcc3fb9e7e63032a7f10f7a2f8aa60335fa4d80594752d895a3503cc72b575de50806e9b7e19740234625eda626df990398e07d7ec13a7a1460c952df12812670175164ca083a671707d2077671cf023f03b6f2cc339741e2cec3db5110fa164cb387053e443946543b4a97a898eee938a503f18f2dfe62175452a4724dec6118429bdc7191a601bca05a7c7444948c0e2aba03351905ee5e2179055b819f97ed2790ab482c5f215878745fbeb79f529ec150c00347dde89a6d549b28d12081b871ca4c22bd35f2af91b4b6652c93806222a3f48003d019e5f89e12e1e4b730515abda288e835f0957085024c5a9a182c5f6fb25385031ddf39bfcda1aeec1f0a23c295f525f912ddb78d9414525497491e52a5612d4a03a1697e0b74f796b7abd3a3740015fa524889355475926c527517c66e203662d503582cc59b1a94efab67194906f6d8d94447f845596fa0ed8ad962291e682aa775036465049135bd624888a78b0c64731b22c5e37f7830e0619b4c8cc69065a26cc203db57f8e8a386969c8380ca161ec251c296ead13dbb508452033ed988f5215e47036dd17e7a9902cb957c3b9408f41108036d4a5da548a87a5d7a07835a05419a640382e715c5fe9bc1573c73853476392b19b6a7efd2b37103b40816534d83584ae400581f0214b5db3178eeabae688b86ead00e62943ddbcfb529083c0ea5b2a0c42ce9410100581f02e1beb74043daccba4fb818029606ce538746407ae4ac7f114a160f969aed410100581f028d486a94086ab5f3acc5e1689aaf783391d62ff811252889f9d382fa4f084808c5e94ac1945c0000581f023887dfdbc977c6eff56614f7c0fcef862d9506bc9a2e00a7e907eb46894948016345785d8a000000581f02d1112463f80ec78005c3aae3e53e739d08e9336d24bf014d948f257e010f410100581f02279734bf4590d610745db18898689894861690d908f96794d20d3b42e0355820fffffffffffffffffffffffffffffffffffffffffffffc9ca36523a215ffffff03a19eba5a59600f1d868a97512a56baaaacd5373d37494f8d0538cbd5fed9f31900581f027acccb5cfc179a3a2edf5307bc25510010bbe7e76aaa3daf828c592411884b13f815c40865489eba2a0300581f026dc9ea047b25d79442a772fe817722126e46e8c1e3fa71ce1fbac340f4b148329fc9574deb60000219fa25030ea793563d0df93915b814896454f87cf0fb990b56a8adec226d0f2b359f631503df13684cfd8ca51640373ce7222d20c947f238717d6e3e74c7adb3c5099f5c73034955ea0158f384493d50a84948444034e2add2481c3747498da53e9d8b074a66039c6dbed62532e6ae6b90d2b9e8d785545724d6ab77d011dd45fa175db7bc2be3034c989b3a51bc5211a29a89bdabdc119158c5ddb31139758ccaad179c0c1990ee034f39d90d7f0dcece5fe7f9fc427af684d87dfeff302df150c8172c26d2a4813d0380028652136be52b0b5538e6bdfd5a1474e78d561f6683de5531a281c314eb840219ffff03deed9e59f55082f17cf5e4742812ef020056e02859dfb1ea16bdeec4c974ce57033f3d9e55f90c73305bc545db249f97299a35274cf587296b797d828227dd55ce031b917f0528a6fb1d47d9c63d7f71bd31f71a538b81ce988f3c84e075c1d4d9d803b77dfdec4aef7385c907744118ec82d6f3f68a0bde9afc16a35a579cf01bd147036e3ed079356e6c8de45eebfeb12682b511465273bc1d9e132ff7202d75ef63a40219ffff0386a2768b4881213f2e89bf9e88c0c1c56fb02e0a2e33d9ef75663ff00247483f036d5ff7d669fedc0d7782c256a6243b262c17958ada133675cabcb19921468f0f03be6566e5e0e63e97f48e4e3730f6263b0c01cc3d4695ee264dc52fd47ce0b3cc03332b899319f96bb25c569b79561fad2ecb7ab0fd9fcf795d1324eea7c495b30f034b4945e9d74deabd05e55a1d54424f318329fcd6b7c4c95b2277ff3e7de27110039f86eb437bf8c18c1731e8ab1dffef5f455825746b4c3cd46a3d56e029d232ac032dd689f6f226ee2409aa8f0763441eb1f8e9423f717685b5ee902f24c143042b0322e0fc0a551dcb92b1819ed846bb3c4f446125e14b28e2171fddb7f163c7448a03c89effc1b80b04a97e59a7212c8af549d91fc8c3ffb84d96ef37e0274ce2369803b94f0203192cb57d53e5b0c31a80542a64ceae80f03bce6567da4569fddb82f70334d5c98dfd6a110480177eaed8c2ac044aa655575ffbed1ce15c7040e953c43103dd0db48c81f6a3a36dd91072a9aa2fc8dec58bb7eea933d8cb9932cc4d1c941403b78f9218937b73e1d829e7adca3b14f1ba20493d3deae9f9b6ec64983facb62703d355486213f19119acc4e7ec61c65125f19cf286e096183079a2a534c9d9997103ff433da98d15b04a7a8eede1b2fae7e4ba16e85159a9d9803f22a82c4aef167a0324cf408282892d7703927f76a447c80c4983d62bafa4910aa0ddd1561088c46e03cc45538460a37770e25b6ffc4104d95213d88124eb4692a7281f271beb58641f0353a99d3e19e8fd8fd279d0455b8b035be90114ae48e88f08b620d1d92a57cd7c03be2d7473dff3aef68338808b1a55891e3b028ac21b8474f1d4c542c14afb0e230330891cfcba2497e5430ff6f1026131ad2ecc783f9d847d7420aa81a5ef95748b0338c4a6d146da872dc332fc73897be09916f52da25df480eb44392bcc1b55383a00581f0228e1a152bbd485f46baede97141fafb2f3c7efd4c7a32a9a32a61e48134348016345785d8a000003491b8877f99aec15ca4154fd0f738351b630368e3aa32a8be1364ee26c9cb88300581f023b038546e1266a11af1a92ae54e3a62da5382af514936eadde81ba620bf441010321753c038a815d2607b8ec99ce6a550b1e593a73d9aae1ddaf3383b8810e364500581f02557a47e87f9a1bd5a43a70850a2af613dff32780ee63a857ccaf39125678491092c4878144b652dd00581f02344797b8c3d8923bbaa24e8f8aff7bcae652718cf8600f9c6b6338b6d87b5820fffffffffffffffffffffffffffffffffffffffffffff96f7c93f50a0a9fffff00581f027f43e977be06d2225966c66dd74ec6c2e323a6ceb3a15f33eedc11bc5e11410102192c4d03e6a20cf57e8469da353ed4a9c01b1b454d5b5bfb07c363b3b5c86910e108bb3a0376b7ae5b8d81cf94fb4e2b9a6eee3927c1628b852acfddf51eb0da3089d61f69037f321ff0060c1a638d2f6e8bb31c57318dfa39ec9743251d2acefb6c29d443e603a76a36373a5009f01d62dafa9e573b6186eb813ecdbc77798a2e08fe5f707e7b03046ab9ef292a38c695c5fc609913c81cd669d46107bd77683ed2a2342d127c1203b08d9a29ad60c68d1e0900fd025b69335ad3e41dc5c5655d8df147934d0765bb03e0dd557d14c245d3966a19b9d6be1b604e5933f3ae10d14c2db422baf4521f69039c1f3462f6ec2195543155223502711f390bd5d691260dee1dd3692eabae049703c5d087d76b9398bb455953e8c1bb9b7e9aa0fa84102fdabaccc991aa34e66a2c03b793e814251dc8e519d6b2ce7f7b5b1f523b7c16d6a527df807a41df8e45723c0219ffff0219ffff03e6d9b4ad3dac1cff84c63c3e87703c2a08aea79faaafa0f1a3f6f74d8432177e03766d7f0839ff7a65c02f6b0d058c426157fe1da86c4b4a8f8360a636f1c0937e03e979ec44ce4a53ed87f6c33ab394538373a303b38264bdc38287500f1e28864803af3c5c10ab581f167a45cb783373648ae7fa3a34c19e997f0fe522737b630b12037d5d444923599a572034c386a996c336de6f847e3e8de823baffbad3baf25ffe03a89009749212ea603805f66aa4643dd4acdde0383a2ce2be54049578e6392cbd03aa14574a7cbe1f769c509d2a6afbf97683f820f3786b661232d3e373c8dae62803cf5c5cf19ad4c1059df4bef3ea2b2931226ffd7a537bc9c2ecf8908e70f11238035ffb63f5134f87dfa6d3bbff22eb56efe5cfa36ed583da7d47728f38f398e211036c8f961c628b272eb38d227a5bc544ab5146303299a7314ca94349c34ed0c309035181703d71f028f1dce51aa5416807f05d763c49ecc029e71da6290cc558da4803d6b93c941df059d1d3947a2c394bd6bc379abaf70801173e75ab1f28f91084d003299d4424482403aa05e3c374778cfcfcb7f3f8bf25b2104a7b980c222d04b8360219ffff05581e0373ed3bd18d046adcc6283b3d4fad120d38911519ddaac786f941907220070119157b05581e03105efa95b1e77a3e0d9d07b8b03c620910e0b916358d881a7d488f09000401033eba1023f6000c321beca864457034b861e352cbef921ed141e26558894ed1df03cb46f359600b0ec7b7794e6e62b7ba3a25a6e69d050449ce31da4b5180d1309d01410805581e03899602a8e1bd0550bcc5f1589489f8394dbd686e216e38d711986f98f008470d0a8686f17113035565b69ed8de5738242c30b14744eb78913e92d123345b5901453b5c9d6b1b1603a3de886295a79c538762329f2ea10d9f553440cb146289fe9503e6cd365bd1a7035b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce50361e1dedee683b36b7b9997427077151d7f1e650d6ea9a8093079006b1122562c05581e03962d65460dc78b00762d9d5ec8acd320d57300e8f7b5f06dbae1157b2007011bffffffffffffffff02194fed03ce46c067639c1189d4446eda57865e33f0e8c23d78bfc79682f29ea91fd1576f0369632e5e05593d28db9a3705dc82b8c258c8332e5e34e53626740ef5c06ae217031e45544126e4ac86b5d96ce162b82da5ee33af57579c25fe4150fd7c108172ae038177307d9b7fa1d1f8515dc369c410bb78ee5b188ec840713e1c35e824cd6a0b0364016b47c7b258dbfa1d818401a794e9cc32aab346df2d6f46028d847c3b5b6803a9f3fe046d14c2b6e84ce0a2c2dada43867b9549bb997dfd4e8126cd9a86d36d039c0addb1bba0b407482dce69dd863b2cf1a2d2f9586979ea937c4f9b38865fcb039bd854e2dbbb65c43df5625e4f2387a4609b762726475a84c67fb275806dc2300219ffff033a8d8af2484ec473796c7200410f05a8c07d25bbd29e6480a3c60366f8d1577e03d8548b08e395f00f9b16c3ab7ba59977adce1ac15d54a4a7fda12c24b3bcf89a030ceed1f86081303e3db9ab3de51cc3edad144dab68bd8679409f4056728213420391d770818742adcd8ff5c1021f96782ab114136ee97096bb7e500c7b288dd39703df7d0f7e6ee54c466e1e434af88eaa96b0e44f565e2b40733254a360d7bf7d4e030b06e5c5f93c12a41be1760bb1237987e28935980089c6ace9f01e12b9f08fa903294fb9b7ef4a4b7a2decba819ec4c046e14cb7eb11f7052e5c1f9d5dd1583af9030e0acaaab7ef01a0bc87728cb0285da08428f951d2ad4840133e8be437bf55fb03c1737ad326df560a2af39fae114b9e8d1816f20af2c0d2e471f1bdcfc7c824ec035d1ca2f50fc28fc248cad860cd85ac34a927623f446204cfae9a4e7cc25896c1031a33380d96b4a85eb0335a817921a9652b5a38fe7d908ad128eeb753ec30911603e7ff0c264a96f8384d604a54b88f4eafff57061d5d9e2ecc2a043e0c39f313b5031df46f0259a7738ddf3e2f337dc4120b94bafba52c08e0ce2913cc0eb9d3c2e9037b4979d83614b1aee170f7149377dbe74b38e4c43ee24235d6756e0ea4b3e3070339d5b456a0ffcf73abf9563f03ffe188b4038ddab6450bef330b45621dc0b9d70219ffff031b0960512335397d2c93400a9ededf9705806dafce4e380545406329a6e5b8280219ffff0376fe279c45ea482672e9bbc52323f29e0a7237e80ecb87082434ef749bf16bad03f6dfaf83f1d2eb668b9e3a3f55718fd4b3c834f48b6965a8a4cb3cd5b49ad35d03ddf7395632e80585cff7afd66d715a4d02e17fbb8d8eadfc7cb9f60cee9e7a68034f234f996412f72ede9e3d535abec66ebcab2784ad7ecc6310e0581190855df40345a02ca8fd9254c55a2eb87913efc31f53b0a8030f1d19862d857f8a763333af0303ec38350210218d268c804468f263f8b9a930936dab7a86e47393bc4d3d3e0303ca4b1f154b057f776d0b1c233a7b51f447e082b14eb2d6c4331d8c5ea2617b770385a60206666e91a6b93e9b0368a624416b991ef585c6f67b400afd2e534f835c0319273664fae3a585a0cc1a47cad6200db9502911fb3ccd7870df75ae4a652d9103447386601ca031e3b874d640c5673095c9bab03a3a692732d415a6a32b9062810320d318c831efe1762af46e8c956990d207d8fa543cb4af91dca52b0229976cf503c4ebf6d9b7ede3cc7598b625ee51d558dd859bad68bcaac7e9d720a9935b1d7c039d6c3f608e950fd40148ff3fee7ea19433da976c3cfd8de77342992e519da2f60300ae3a3d030c99553a1c779084e7aeeedae69d917d2ae9a619600baca5331c6d033e5951ec92d556a0cad2ef62115f441890cb569b9a3a85332d21456d2b4cd9800344e6601fdb80ef77798a0858a4099e7096594b8ee27f7ea1f37c4953c9d5fca0034fb31c6e8c206758e3f232182dba9d4339a1be7f0809a09610dbda381844c69603d6166c8ce8e86820196618ebe455e1162ac65caab759cad67abb59c76f9fb2cb032d640fb968bd2d227b9376f5ae5f64a250595b4bc6473569bf06e59a790dddc003cd60b4f41783d8cd780e5898118465f50a4f718aa3b8f4db1c2bd9d360795d5d03847e04f0badff1d11260963e6cbfadabe23a66c7d1dbbd9cb5a46794f3ef3b0903509f68a36da1050a87425264d9daadf6ed58ff18fcab70e770861f93d67e741303868675ab36408d204ac924de1d537dbe8bfb2c867bbf7202a510a1db439eba9203cfbda3e9c4931f07f8dcba79f0c6c80be752643652b56f54eba28e1be92f4f58036d479169151e5e25f97e9f35cdac082739890aac251dd78e224c2e9f506ab5b503569f0b1435e4493063df89d2ac69d2a2a62d0ceb44268e6527186c9305b1976503ad3cf35df9b8daa6d22e7fc7a2f8eab8e3658ab00a312cce42f55e09fd66bd52038e10db6db16735a6884dbe127ea854c5f90915aa99b529ca2e9837ecfbe188b0030e0055612d483190ca1d9c89346e5b13beda3a9028175a9e09857654008c4cdf03234e8aa704d1529fb7202cd2832256a7609b4f618d802049a4687fab5bd4c2020307b5dec5ace8f368bec324e4a63fe40482dea6a364a75680f313f3226def88f00316ba22ec1452754351f345d452a8d2bcd23f1b6350cc2d7bfa542c9c54afccea030c174e14cc7910bb45bf6293be8050c529d774749b9841ebf57a1c7a7caafac301410005581e034173ae6cc19657bac5e428bb0aabf8f40930142ec071c1a49724f57630040905581e03f657b19679f16291a581cc6a9cfbbb53a66461920dda68b17ac158f1f0040205581e03f40d24eeb91a6b9a5ce4a21c734a093062224b25358af8b15560a87700040103ce327b58da2ffc94a05d36b35bd71d8c20d5d752fc4d209044a2b080266c9c3003712135a8ea215f50d7453007e9732dc10c993747ba213268866e20c743c067250397ef34cc8cf23be0e05caef2e893e84c1d8a589153ef1ff08c86af5f5c130c2605581e039cd7381cec1e0c59e2b4bff7c124e8499a0088e593ffdca9a375077bb007011bffffffffffffffff0358bba7144f8b51e6ceab55e622ba2202c77a6393eb69af6052adf96fd68aff4901410703b358c9e0644a0f14d99b99a65a481096c4bcfda20542281449e56eb778060e82035aeab3f10a4d4d9d8857c15202eb77bd86d442bf7639c94f502eb524b38ed59903a5ea88fabc387694445d0c746a607c7bd0f752e2fb139b75b715281a93ab167c0219cdd30219ffff0355ea5542bd8c3530f19a69e995677655a0093d1ebd2deba02557e02b9f4ce7d1034a9b75a9bfa131c6cb68821784ca53dad4d69140a7dcfbacb11e54370941aa7e033a10e26387eefe45b76457f6eabd3e08f1e905e669747450ba5dfd7b168412f5033649ddc94e180d601d2693a4c51f7172c3f87592f52dcad84672f4708e333e7803e889c256c2d1d8f0bbcc4a9b7a636153e17f11161b866af95ce146e547feb15f031a69cddd1182a3c4ecd366040fc08cfa84ca8ce436f4b44b020b839ff8e90b2203609e968a41820780d82032dcbccf6ce5393651d7a1cdd489dc4a9877d675bb1003ac67d3c897e8ef033b3de40faa5153bb83a7af1d2b144e1c29dce4eb3f950379032b77708b79f8c925c478002bb79f93799561989b62be2bc597648e7ad889832803f5e8623240777b6fc7a7298eb1982b73433cdf0c961757c3e85abc812945c9a80379b47dde98b69e70aeb03717a957e416ba3ddd4a1cb58ebc7d0e7e196eee955303af9f27b30f83e03a078662aabd76bd04a8e8613624d4ce6ce7247f6318fc2b28037327ba6679a352c595ce4555a493aa929ffd4c7fac5409812de77cf5033b42710219ffff03d24190b5e4a03cb9a4322f8291c86d595cc234a9a6dc1f91d71b1f27a5313263032dc2f4d1fa83e56707db1eb7b9ec2f7de199b0945e1a072ac3dee332d40751c80382cf7ac91165157c9e4a7b8a4a52cd87628bc111b7c32d3f21119f99c9af0d4303e314c0957bb8b36abb770292c74ace29529789b9ea52f38f17610082bda46227036d82dc345a318355d5e6005b3ed350cdfe99bea977627bf4f11330824145fcf6035a2963006616b9798a117649b6ef9a0d72152c584a2109d665dcd5c6d06d0d3603e97b8a4130ca5fb384e627e4b83effde82113f809f6cab85a815e60b7fd33c320219ffff037b30b4ef07172c1f2b78b5e02554d86ba5524ca107f3b1f6a203a0c676abbd6e03687e011f01365a61d156b070a1c537c7fb52106191b8947a88a65b2a70d9f61b03d3865105f036b5e23987d2060cedd5b64eb47e513d46a9317f5804839722365903507ba1376da77052cb2c5e2a7f30eb044e4b51f9c8cd9c69665755d026353e6105581e034c9fbf0f7f155e5e19c736c03608073651b60ddf75c4d82e7f5b2a84300c0246432836f8600003735428be9e8a865baa7ed86efa87dc37b3b8abf5ad166c012afc9850dc4e7b9403c84e368082d7d72d5d6f8227582a5f5e364c6ed02a7b5e22fb6b1935a3f5420105581e03240d6d25a5741a4b4bc1e153b4172ffeb94183e1fa9570c463c4e9e6700401030aadffb454b4fccdc725e66d91c53e84b3cf6f7a626419925a8b411c0adce45f0301713350aa2b1e11495a6b2b63f5def46030fd7991b72159fc0a432c28ef575204591a8b608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063b4b5ea5711610071578063b4b5ea571461025f578063c3cda52014610272578063dd62ed3e14610285578063e7a324dc14610298578063f1127ed8146102a057610121565b806370a08231146101fe578063782d6fe1146102115780637ecebe001461023157806395d89b4114610244578063a9059cbb1461024c57610121565b806323b872dd116100f457806323b872dd14610181578063313ce56714610194578063587cde1e146101a95780635c19a95c146101c95780636fcfff45146101de57610121565b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016457806320606b7014610179575b600080fd5b61012e6102c1565b60405161013b919061173c565b60405180910390f35b610157610152366004611205565b6102e5565b60405161013b9190611692565b61016c6103a2565b60405161013b91906116a0565b61016c6103b1565b61015761018f3660046111b8565b6103c8565b61019c61050d565b60405161013b91906117d6565b6101bc6101b7366004611158565b610512565b60405161013b9190611684565b6101dc6101d7366004611158565b61052d565b005b6101f16101ec366004611158565b61053a565b60405161013b91906117ad565b61016c61020c366004611158565b610552565b61022461021f366004611205565b610576565b60405161013b91906117f2565b61016c61023f366004611158565b61078d565b61012e61079f565b61015761025a366004611205565b6107bf565b61022461026d366004611158565b6107fb565b6101dc610280366004611235565b61086b565b61016c61029336600461117e565b610a55565b61016c610a87565b6102b36102ae3660046112bc565b610a93565b60405161013b9291906117bb565b6040518060400160405280600881526020016710dbdb5c1bdd5b9960c21b81525081565b6000806000198314156102fb5750600019610320565b61031d8360405180606001604052806025815260200161190e60259139610ac8565b90505b336000818152602081815260408083206001600160a01b03891680855292529182902080546001600160601b0319166001600160601b03861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061038e9085906117e4565b60405180910390a360019150505b92915050565b6a084595161401484a00000081565b6040516103bd9061166e565b604051809103902081565b6001600160a01b0383166000908152602081815260408083203380855290835281842054825160608101909352602580845291936001600160601b0390911692859261041e928892919061190e90830139610ac8565b9050866001600160a01b0316836001600160a01b03161415801561044b57506001600160601b0382811614155b156104f357600061047583836040518060600160405280603d81526020016119e5603d9139610af7565b6001600160a01b03898116600081815260208181526040808320948a16808452949091529081902080546001600160601b0319166001600160601b0386161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104e99085906117e4565b60405180910390a3505b6104fe878783610b36565b600193505050505b9392505050565b601281565b6002602052600090815260409020546001600160a01b031681565b6105373382610ce1565b50565b60046020526000908152604090205463ffffffff1681565b6001600160a01b03166000908152600160205260409020546001600160601b031690565b60004382106105a05760405162461bcd60e51b81526004016105979061176d565b60405180910390fd5b6001600160a01b03831660009081526004602052604090205463ffffffff16806105ce57600091505061039c565b6001600160a01b038416600090815260036020908152604080832063ffffffff60001986018116855292529091205416831061064a576001600160a01b03841660009081526003602090815260408083206000199490940163ffffffff1683529290522054600160201b90046001600160601b0316905061039c565b6001600160a01b038416600090815260036020908152604080832083805290915290205463ffffffff1683101561068557600091505061039c565b600060001982015b8163ffffffff168163ffffffff16111561074857600282820363ffffffff160481036106b7611115565b506001600160a01b038716600090815260036020908152604080832063ffffffff858116855290835292819020815180830190925254928316808252600160201b9093046001600160601b031691810191909152908714156107235760200151945061039c9350505050565b805163ffffffff1687111561073a57819350610741565b6001820392505b505061068d565b506001600160a01b038516600090815260036020908152604080832063ffffffff909416835292905220546001600160601b03600160201b9091041691505092915050565b60056020526000908152604090205481565b604051806040016040528060048152602001630434f4d560e41b81525081565b6000806107e48360405180606001604052806026815260200161193360269139610ac8565b90506107f1338583610b36565b5060019392505050565b6001600160a01b03811660009081526004602052604081205463ffffffff1680610826576000610506565b6001600160a01b0383166000908152600360209081526040808320600019850163ffffffff168452909152902054600160201b90046001600160601b03169392505050565b60006040516108799061166e565b60408051918290038220828201909152600882526710dbdb5c1bdd5b9960c21b6020909201919091527f561ca898cce9f021c15a441ef41899706e923541cee724530075d1a1144761c76108cb610d6b565b306040516020016108df94939291906116ec565b604051602081830303815290604052805190602001209050600060405161090590611679565b604051908190038120610920918a908a908a906020016116ae565b6040516020818303038152906040528051906020012090506000828260405160200161094d92919061163d565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161098a9493929190611721565b6020604051602081039080840390855afa1580156109ac573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166109df5760405162461bcd60e51b81526004016105979061174d565b6001600160a01b03811660009081526005602052604090208054600181019091558914610a1e5760405162461bcd60e51b81526004016105979061177d565b87421115610a3e5760405162461bcd60e51b81526004016105979061175d565b610a48818b610ce1565b505050505b505050505050565b6001600160a01b039182166000908152602081815260408083209390941682529190915220546001600160601b031690565b6040516103bd90611679565b600360209081526000928352604080842090915290825290205463ffffffff811690600160201b90046001600160601b031682565b600081600160601b8410610aef5760405162461bcd60e51b8152600401610597919061173c565b509192915050565b6000836001600160601b0316836001600160601b031611158290610b2e5760405162461bcd60e51b8152600401610597919061173c565b505050900390565b6001600160a01b038316610b5c5760405162461bcd60e51b81526004016105979061179d565b6001600160a01b038216610b825760405162461bcd60e51b81526004016105979061178d565b6001600160a01b038316600090815260016020908152604091829020548251606081019093526036808452610bcd936001600160601b0390921692859291906118d890830139610af7565b6001600160a01b03848116600090815260016020908152604080832080546001600160601b0319166001600160601b03968716179055928616825290829020548251606081019093526030808452610c3594919091169285929091906119b590830139610d6f565b6001600160a01b038381166000818152600160205260409081902080546001600160601b0319166001600160601b0395909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ca29085906117e4565b60405180910390a36001600160a01b03808416600090815260026020526040808220548584168352912054610cdc92918216911683610dab565b505050565b6001600160a01b03808316600081815260026020818152604080842080546001845282862054949093528787166001600160a01b031984168117909155905191909516946001600160601b039092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610d65828483610dab565b50505050565b4690565b6000838301826001600160601b038087169083161015610da25760405162461bcd60e51b8152600401610597919061173c565b50949350505050565b816001600160a01b0316836001600160a01b031614158015610dd657506000816001600160601b0316115b15610cdc576001600160a01b03831615610e8e576001600160a01b03831660009081526004602052604081205463ffffffff169081610e16576000610e55565b6001600160a01b0385166000908152600360209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b90506000610e7c828560405180606001604052806028815260200161198d60289139610af7565b9050610e8a86848484610f39565b5050505b6001600160a01b03821615610cdc576001600160a01b03821660009081526004602052604081205463ffffffff169081610ec9576000610f08565b6001600160a01b0384166000908152600360209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b90506000610f2f8285604051806060016040528060278152602001611a2260279139610d6f565b9050610a4d858484845b6000610f5d43604051806060016040528060348152602001611959603491396110ee565b905060008463ffffffff16118015610fa657506001600160a01b038516600090815260036020908152604080832063ffffffff6000198901811685529252909120548282169116145b15611005576001600160a01b0385166000908152600360209081526040808320600019880163ffffffff168452909152902080546fffffffffffffffffffffffff000000001916600160201b6001600160601b038516021790556110a4565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000818152600383528781208c871682528352878120965187549451909516600160201b026fffffffffffffffffffffffff000000001995871663ffffffff19958616179590951694909417909555938252600490935292909220805460018801909316929091169190911790555b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516110df929190611800565b60405180910390a25050505050565b600081600160201b8410610aef5760405162461bcd60e51b8152600401610597919061173c565b604080518082019091526000808252602082015290565b803561039c816118a8565b803561039c816118bc565b803561039c816118c5565b803561039c816118ce565b60006020828403121561116a57600080fd5b6000611176848461112c565b949350505050565b6000806040838503121561119157600080fd5b600061119d858561112c565b92505060206111ae8582860161112c565b9150509250929050565b6000806000606084860312156111cd57600080fd5b60006111d9868661112c565b93505060206111ea8682870161112c565b92505060406111fb86828701611137565b9150509250925092565b6000806040838503121561121857600080fd5b6000611224858561112c565b92505060206111ae85828601611137565b60008060008060008060c0878903121561124e57600080fd5b600061125a898961112c565b965050602061126b89828a01611137565b955050604061127c89828a01611137565b945050606061128d89828a0161114d565b935050608061129e89828a01611137565b92505060a06112af89828a01611137565b9150509295509295509295565b600080604083850312156112cf57600080fd5b60006112db858561112c565b92505060206111ae85828601611142565b6112f58161182d565b82525050565b6112f581611838565b6112f58161183d565b6112f56113198261183d565b61183d565b60006113298261181b565b611333818561181f565b9350611343818560208601611872565b61134c8161189e565b9093019392505050565b600061136360268361181f565b7f436f6d703a3a64656c656761746542795369673a20696e76616c6964207369678152656e617475726560d01b602082015260400192915050565b60006113ab60268361181f565b7f436f6d703a3a64656c656761746542795369673a207369676e617475726520658152651e1c1a5c995960d21b602082015260400192915050565b60006113f3600283611828565b61190160f01b815260020192915050565b600061141160278361181f565b7f436f6d703a3a6765745072696f72566f7465733a206e6f742079657420646574815266195c9b5a5b995960ca1b602082015260400192915050565b600061145a60228361181f565b7f436f6d703a3a64656c656761746542795369673a20696e76616c6964206e6f6e815261636560f01b602082015260400192915050565b600061149e603a8361181f565b7f436f6d703a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747281527f616e7366657220746f20746865207a65726f2061646472657373000000000000602082015260400192915050565b60006114fd604383611828565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000611568603c8361181f565b7f436f6d703a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747281527f616e736665722066726f6d20746865207a65726f206164647265737300000000602082015260400192915050565b60006115c7603a83611828565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b6112f58161184c565b6112f581611855565b6112f581611867565b6112f58161185b565b6000611648826113e6565b9150611654828561130d565b602082019150611664828461130d565b5060200192915050565b600061039c826114f0565b600061039c826115ba565b6020810161039c82846112ec565b6020810161039c82846112fb565b6020810161039c8284611304565b608081016116bc8287611304565b6116c960208301866112ec565b6116d66040830185611304565b6116e36060830184611304565b95945050505050565b608081016116fa8287611304565b6117076020830186611304565b6117146040830185611304565b6116e360608301846112ec565b6080810161172f8287611304565b6116c96020830186611622565b60208082528101610506818461131e565b6020808252810161039c81611356565b6020808252810161039c8161139e565b6020808252810161039c81611404565b6020808252810161039c8161144d565b6020808252810161039c81611491565b6020808252810161039c8161155b565b6020810161039c8284611619565b604081016117c98285611619565b6105066020830184611634565b6020810161039c8284611622565b6020810161039c828461162b565b6020810161039c8284611634565b6040810161180e828561162b565b610506602083018461162b565b5190565b90815260200190565b919050565b600061039c82611840565b151590565b90565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b6001600160601b031690565b600061039c8261185b565b60005b8381101561188d578181015183820152602001611875565b83811115610d655750506000910152565b601f01601f191690565b6118b18161182d565b811461053757600080fd5b6118b18161183d565b6118b18161184c565b6118b18161185556fe436f6d703a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436f6d703a3a617070726f76653a20616d6f756e7420657863656564732039362062697473436f6d703a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473436f6d703a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473436f6d703a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773436f6d703a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773436f6d703a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365436f6d703a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773a365627a7a723158206589d4ace0383947c7f0391417a2336732243d255d673f763411bc1dfffc84c96c6578706572696d656e74616cf564736f6c6343000510004003e2cb5a81ad849b41600d46cd2b399d04c5c2b4f4f222a09e7ed4ce73d122427403a4a3b0d433f59dc2b865c564a000002e773598f7423c502917e9c19d6eea1ebf03635687cef365503ef2d4a02dd06064a23c299bf0014d4de8c91eee124af7577303f6759ed3a4fa20c3d2ce8749938ab68bc60226eba1c6b1e8396abf398577987903a884062a89fc593702e8b6a640a7948a73ecb7bff035a8b28e25010ac437642b032cc836c693669a1a60bcc9d4e4b3bf5a814e87311f253e71a219e51906e3ce12036e6091873746ef68abbe71e4c53743b73dbb10bc6177b67ea4355713ddff8bb903672b9f56217c0672912f0d7db89ce86027c14a80a0a9385c70648eb15f55ab76033fa9027d3ffa9c4741fbdbdf521c0b72ffa3820c356de2a9a8cb074a34069753032438106927e7730a2f7fa1de59b3a403ba6f6549282f3b8fb278b69b22648ec703c1e5877b065a5dbdda55179de0f9dc969a38e5f0503ea24ac088e155cb8ca96b032f0d25e2e41aefbc8a9f43778bd5633429f2b0506ae1be952fe9d2236511fb3603aa2b559dbb2f9482df29cd0050869b5bed0b9823447c2f859d99ee8ba695bdcf03666ef4bd89434d55a8dc822552e03ac0da26cc07d012aa217a00a95ed4e032e403f82dbe6ace6b197bf18d36455e60ab4fe7cf9b75bc21dbc54e548712d97f273903f7e629a439d8c689b76bede26bb977b52ae85a958a00c5494f06b87a57a046cd03075fe365cd87c6c237ac12a8251d70857fabedb45c2142954e432908a3f7800103b16abdc1a591df833caedb189b44567839a52305d69308525806feca856147ec03c0b9e5a98da84ea2ba1eb8c44194a36d32acd391d961c78cc3dc00db798905d303aba2688a8876527796345f1a20ae7c3187a62f323acd9011b41a0ff846dfc4e40300d3d0b89edc13d502a6ff7a4db6f5e1b9410d2783d3780f40e73b13718fde3903bc886a28ba630edb01ee1058b8c3eeb0f3379ac5a0e4fd87442efb8168a897410387ec1cb3ca7b4ef8fd5cd65c606a464dc55c95e6ff8cd2da9a863f9ffa894c3103497160337bee5d98daf8e9f4f36e3a8b365b31c463c7375a6f08c641ec85fa7f03b820f9bc36b9b7e46d45af6fb7acd51bf577b41e138b1f9151b78c7602c7dda3030750f4de10c34d8f44ee8ad0135e25ac075f5253700212786a2be7eacf9ecfa803255fac288cb0ab6fabe5ae618b2344d3109e0de80a8d156af77343eed1afb6b903934ce324b09ec86fbcc67da358b8c636fb063c130ba0c6a18b7b1ae6017aba870347dac95cd65f2bdcc67ad41a5a9c0156f523042b884f29b25ce35bf1f57df64a03ef13ebcf8e2c125e9c2ef0249288867f4349c3c0f8850545c8321c865eaa154e0394a624333da3c09849b324542bdd6fdc4ca09eec8f3c94ff1d53a3c0a896cdcc0370244206b83b95e1a76c7266cf711688b99fda65d87c2b5d31dc7be55a3d754200581f030618e993ae015208b9f549800849f8928ef07926ddc599650fa3e3adc050482f53183a1d8edef103bd253da2dd1e07a625ded510f88329fc8fafb5176354267d6aa7ec06043115ed00581f031775f073ef63c99ddedc9904ce533f15dfd540a91a838dcea7dd6fd4353047c523e80ed1940000581f03e54cca3949eab5377fc987d1f85e94b893ebeddbfcc8eec40ab25a5ab5c04c0c1abb8044529330009d5bc200581f03acccb5cfc179a3a2edf5307bc25510010bbe7e76aaa3daf828c5924118804a2fc7fb5405d46eab0a5a03981f3f26aadd2ac0004379e973642882c0468b0d7839d3284349e08eeb20cf66036a9187f48d5e55d7b63a22443c6371efa64121b2e567f1e584db29161828bf580141060219a09b03eb15999db021f2fd5438d4b93b2b70eb0cc8cc43fb79f4f252d49d1a1c1bb8260219ffff03f756d374a07b510eae7f69410347096b28009b67b6e1d1ceb3d12030efd0d74203ec0081536df4467399a36b86be5bf799fbf52666ba89a70d386559d21b6f536d0315bf1de30a25acdf10dbcb4ca7ec2fd1d1737e63bb072222cf1b60f757f01466037868082ff0ba23f98330c2089777fe997c8765d8613ca1a5783f9c9fe88252ef032a7e24795f1b18466e3664f7cdc6b9ed40408695f76f928228711b5b9685c42d03e0eec3dc910c1c713f441093b314780bb08b6ec32413d51f2870b02d31e77b5f03eaff32e48d7b52f795f98c6c1a0833a80a516f3dc1d49377c0802b9473d714cd0219ffff039b6db789225a8bd0701c4cb6cc036d9e884961bb19ed2b60876d965729dd64bb036eb208dd62edf71c4e90dc2534b34e9689c96abeafc3e102bdd320e79a6681820326a076dbf739588e790a374b36efd5a0c3eb0c5775dd58f156b1d814f568724f030893e7465add2a0b70f9a3d692c6b585df9a776f928fea6dfc283803b0f98b360350ebb7b6b8d5130eb542f8f9c51b1da0828b138b9af3963146155d2615b58aa20219ffff03c8107ed5950f4aef0bfa2f3850874f7d4b76cf5580b4691a7acda6e77e1d503503f055cd2a06a104698d1cbd014b248a9c44d7666d632375bc705582097b8121da0334a4bc9168714523f71a7b7e43e959438bb7f9a1d2dff17f4d6b8b5101613ff2035559d9a2b6d83e52cb147064383dc3a8410333fba5bf0602bc5a8e11f92e5c94039bbb2ca5928bfd38d731a112bc89e9756df5ee11a719b819b5bbbbbd0fed98aa0342f109870a6404b178997e482c889b8669f388164e60749a9ec24bc62c95a44003ec3a2973d1871e193ad728406094ed154c89e9c9cb5705741ce01cb1df91bc6a03c205680be4fd86ec20d4f76131cc9063914c3be13fa24c74c0bef6fe7e9d28cd03642085966b6b2b042a2166ec78e0f8dd8d784969ef14015487be6ce64cda1d8103b8c7b7e8282ea9627665919b70b7143e2e2198e635811c3a4f88b21622e2fbbd03b94c79265aa9e2a7eaeb9f341e136a3f6e4a5311c69294d953f60d01fb7f80500314c4ad64697eb206f7823c6fb5fea1a6e90781d6392be873e326fcc3eaf4651503c92127ab1765b38e0273393448a1d1af3a2e796bf5a9a7717c730161ec1ac3b003bca7a20b8f0c7191d283db933c0450fb423075449b81ddee18047532b28c60f903ac39f1b588b38d2292e1fd848f641675db818f33c382f4e823fbe6b8e541dd1603c3b4f869c6ff4a5118737fb5e22081721bba3f900893ffc0f46d7045b881551c03233a9fe563e998341a8578de37afe031c3f4f7955977d9b7bbdc5188a2bacc1f03d56e2ac13420df7c50878193c7f271b7ae238a379bbf90d85375d0fe381991b6036d80ccdaf1d346f4449ed3ab3b3a1c3807e78f5d949ec81cb016c3eb54a8a91603f54509d0ee2053c8129b2a022320ca9523ffefea19879457807df00054c00f02036bd0af60edaf82bf0019142346c63718b8c7d3bcdd3c66d5f43a70a995a28aa10305503c6616f46ec302f5993ee706fce55196fbda7b41893354375a21cf6e4a1000581f03a7faa03dd76dc73cf122f1c1121a8b02bdbb81db900708a819e0a06b6e704b87bf75cb45c5f600aeaac000581f031c2be5f43c1510eb87c6fe6b0003b57f6de30d3f20b6e8689528c1816ac047ba5393d1014000034bc8e4a1be644bd2897ed4031772f53ffd46c11d63a738a7fdd398b691e1262a00581f033720574418149a98768353a0e54bc21acb059411c5f35d835d46bada69304cffffffffffffffffffffffff00581f03dea0cfb39c09e9b76c96d41524b18fef21f2cac5e161df90717b5e5fc2f0479cb1c3985f8c0000581f0331345fecfee6ceac91a403778bd3590bb6d100f8b5c9998d2392bce3f2804cffffffffffffffffffffffff00581f03c6b5a1101cfb4bdc4971cef08b2ccc5c3505845ec739ee9902667ca62bd047ee9da827817c0000581f03b8d9320658100d3c2548b20097c5f46f9350dc61548217223ace2b8d228048030243e32e3c2ea402193ca603fa9ab3162356ed37fd6af543b87ea5ec046c9e0d1ef1d7e3d3bf18150f5bf89b032ea21c5f2de7d0aaff212751857754786037e6e2aeee617a8bcb89144b6dfe2d031ea7c7d43ccd7a91f503bd6e4e009c546aef1f98cb8f75cabcf19ed2363f79a803bf60a211e9c5ba6e8296a56e5407b5153a47dec66b59b3afc9bf93d0b2b3d88703e2914cb40b0a5e9b1aa6988d6411611cb0de72f32eb19e75f87aaed52ef244cc0343169d58916400578b0d70968f50678ad68c229d5c6fb71c818890691cdd41560336687cdef7de110377f30b8615801b608bfb1aecacdb2bc757dbf7b13e41417f03394adf04ea242323d41c2619b61ffcd5bc5745a41cba1352490928dfa574cf8403706c295878d41a947c019e5b419a222379d6e0124be2d36d0a315c2191e32f220219ffff036e855808323342ddabe6c3a9f1aeeb9db2d9706e6e2d5404c46601b7338fe9d703ee9a109ff5b110ae24b6cf4efa6a3d326ba6f671ec3adc2c0fa7ab3a3cabb79f030fba9118f94a292e918f3b307e584a1f5c51a5f36f1878f68606b531f61118bb03094ef7b24319d99fc0719c4590362a4e4302a24ce60c3753d54ad1b653cfd2ec03f2c80c77a26dec9b92ed8fa87923f943729c74efaad5e0bb07cdd5b0b7bf903903465e31c0b327f745b7030cc5d4144219ebece57dd1cd5be2fe4f9d5aa3f634ec031626eda5a20dabc4d52417f9602cba175b262fae2c11e21415d70b771b3d679a03769a29e59f993ddf70e97cdf63e820dc28a72451a2b6d22a3dff15029872e6e503bcd37bbaa0c2ff31f3bbc8caa3a0898b2ff14c99001b41dc4a104219c376a34b0321a418e4e881a41886737281a99b0839c0690465a5b12f227350dff0484b82b60219ffff036a8d01ec810c4182f4921df176e5607a03e6782b22280aa06e25d1b74e371bd103467501f7162e2b646ad5ab16d1f79e47a6a58c517745769abdc585fbae03c1a1031827ff8ddbe11fc1c1001717b9ddf00fb2fd09b3b93e4ce27a6a5d71d3f5bb8c03127968dd636c7573e342f25b885b1fd6cc5249cc3131f6dac1ece33c6d63cfc6037d5f13be8a6a4fc8fd3d7ce6dfe4d43f357a1f2e6e5e69f6a6e2987269fe42190371d97e094cf8f62c448673ecc0a3bdae21c3665d0cca80692cc236d96469adec03ab4cba9b101eb1fe69279890f734ad3b73dfa6d1ff57841a53a41bfb204bde07039820ab0cdbd1d55560422fe8b459b386ba86f2d6205f66c1a95bc8cf0929126c03d4e6c802b0b14e6c1a61774f5294b6d59078dd68ca4347740a2a81899bc7569703f9577a9fb233afed05d356351f16bf4e3f4a861cd87be1741e50c03c3a35a330030072673469eeaa1d67d6fb69817b0ce4367371cabbef4d0108a180cdb765f5ba03678fb8db39cb37fa02d59961e25402f2aa409e1026a9b4ffd5119e510385cc150219ffff038b01bcb658b238fb8d5560688f5c8903e8f337cfeaef904852537c4ce342a0f2033176c10adb23e9d6b64f2057387d251e4fd45a3f3459fac3e20d446b6cf3a22803f983f9c0287837c8d93757490aefab066d97bd89601196ba953ad7c30442f2d4036125541ca005a202b3be8ee8dbee51915d3375e461049291d0c7a57601977a3c03f94d0cae67e50b94ef6fe1817b6bb1e6c7548ae27512c21be6cc2c6b72b06e2603f50e42408ed3264e62c337337ea32f3a4c1274b321e2a3d1c8d097bd39bb2cde0362bb366d5c75ac0171622d140b43b370a638d857378bb34b3f0fa52c89b0971c03524035cb93a3f54b3186a478be04c979b8466d0b84af41da1c52d7a140551979030df13549bab4813ffdb567700266fae5d0159c713b68134bb0f2749ecabaa67803d9171cd4e684a6af8875d810758c456f19af31dab519f42242855c517ed9086d0309c18c9a468963c250b45bcf231a678c524aad8dfc8dddf0028e216b77309202033edeca20812a28f425a2001292b6262de30f07bf01aeec7996a97b38660f8b19031307a27b324db34b971fe8f5906704b674b35d9a4e5264fd2e6d110d202ec72a03ca9a81723b2f3a39c36a289a9ec19f851db1ec44b0b986a6851e761e54f4be4903ab547f916b4d593616425b18ca1209e138514d739282d5aad483ec7ff438c46203305bef52801a3745b1cf17bc4886ae62b10db5f221d6315910e2e3b83ebebdab0351deb02b6bcc70c237f9f3a5b8a90d0a70c640ec21a0d26cc6d8c67fad7515cd033692848dc61361d794dd60d393c4ee802d64f33c2f1fa0f9baaa0d73d7a99a70030ff5807ff59efa2d2c195fdf72a7f4683d8dd13b342d66bf9f8125db075ce954032e485776c11f5b0eb616e608a7a66aafb69767a131d34d766fc82b2e084289c0037569d63c3f84a7c6b4987d514fafe7307a2cad68fc3023e888ffcde95047dcf30380e807bb18cdaf9b7d8c7152a1061d39d62dcae8e7cd01faaed56577acf4a81f035a5871b830ec6ab241b4804e375eb02f50d1fa94dead4ef541a91d9e7fcfcd5003c849a35e92ec7896fd554e7d09aafc9c12a9092325cc834483c424491829b9ec03311821da57608e31a748c4cb9d0b4b1f23970d18eadadf65c65e564640abcc660354530f656948e991eb53b3714951d0680670b07e5929e20eefd35090cd91fb38031a28e0b5ab333e904d9b3d8463da59a408b42af2951ecdde2c6ed44e77b10c1b0358e1676facc78408fdb72674d9d5bcbacc4bdf272d5fa47aaf0c81f553603a0303d9447232682150db3892978023a19938011b420a43bc89ad659362305ae5435c00581f0341ca1c6b8c89a31fbf9e8fd94ca67b1e3706336c579d1ec7bccb1fc7ff804cffffffffffffffffffffffff00581f037793a4f00fd2c3bce3a002a42aec23907d625d4c1433f0b1ee08fec1fc304cffffffffffffffffffffffff03ca7bc8d491302ce580f735cd21317e5bf1bcba1812eeeccab70e5c06be408d1d00581f03e9b5c6f7173244a9b4276ffaad9a90816fffd34ddc46f7025f8627e0d2d04e491084a0b6d7acb70799009d68b000581f03ef1c1d85c4c8525c83c45085af5e3b01713db076f9558c4a5a775f1ef6d0479f0443ac7a2400021902350306c6fecb48ee98657703cf1d80f03fe99875ea6f7107d1c7df89fc4fe89d7bfe0393fb512b5384bc0bb88b7797d657e87dd3a6f6ae124b0915e30c42ec3d1c155103e1b5f82c44c442f22b8dbefe4a4729c311409bfde19ec6b6559a17136ab0956103312a90110c852e5093230d53ed58daa1c9157a7c82a4b929ce59ca7ae6b9c93c037dffe9d6bb80e6140c988815d3e0947e8a245d8a2ccbbde521b8f3a431fa21290377d0af171ea867d25e18075a6fbb8fcac0ea74265c6b1badf1ec8a54c5d1c5b103dfb7b1521cf8880a117092cf258d71cb6086e42220b74df4f1fd7ac0d058a26d03c9f8f5013491d4219abc8b5a20d5645868431915bf59d784a76c65b261949ba60327577d4862c4a3a10f3f813c8787ab684ce19305b045c1d20e8dd2b4f679276d0381a2bba98877c90832a30730b13bb512f9099ad9019b25bee321ad279af210770364faeb78e77b15841a22727240300e4fb39ba2341f30a60a6b7a553507b11cfa03b248ca48a376d7513fbd048367056f03d423afa15e6657d218c54890baf1b06c03fad888d56ba88ea2db31fe9963a8daa368872d4d1fbb9c2eac83d7a6d67114a903b8ca5ad27b10375516b123c17d11f34003dd1c70451ddc5da537f7a358fe9d170219ffdf0219ffff0341e8b6b52483b2472629a1b61408c46a477b1a96f204718144c03a78acb1ef2203ae322719916090de88d5e278f640e7f17631965256b3984454b3bd11b45c7f7f039868bb8175f2df571130c4ba78a5a808fbd470c46501cb9fafa6180e33b74f580219ffff03f62f80a03a3b415e3766191ba126fa88e64dcc08008ded4fa12617dc08c688b503509b1e43144b3a7104d598be41c713f78e5de76f7df2451e005164bc46e60dd80340550e568b72e3876bd7cbcc5fd5fdeba0ca03fc5f1768c348c2cd2fa3365ae603ade74332cc68edaacbc82eecd6d38c59c428182097927107a9d0a5876a288f8303580a0b80c4974ceb388132bff7f9a9ace8c80f3d44a6a87f89101ca61498cb27037104b1657fb45880f252ed735eb1a03daf2d46de376edb263fa503f688d4ea3f03dbdee50fa8975d092ed3ae3c7097d152184aeae78d72bf5f563483918dbbdadf03611baa85f72612034908ee859054b6404b0cc3ba23f2150503395c105774018e03479391dc9cf887a92855f45f2aa685cf24370728ea813501467f8980d817fa5b03161aa7121134cb8e4ce33f6b151e708d4958e5f940d573e24976caa3e2e4ebcf03f447054f83ad150e62bfc14ebb0983cec4756e0071042880789c2f99989077830342c26bd731ce1d3226db9abb63fcfcd039038c40e0a2b40864a28f7d78a34b0703617ffa6354772d9895d27fda4e1f51c1f184c5c39d50dd7d2caf517563bf5ef003eb6c3bec344ac5e894daf20000925c0415ce64494b6476b8f2c86954bab512170393295c6493cf5e6fb4b0bcce404c773f856dd838db646e35c281316c038094330309f9140419cdae8a181cdfe300f8c2d12e31749557dee3d910a29dbc837880530395ecca71b95027a0c774284ad5027bd57e3a89cf104cc33560961e14d9e8ab8203b13873019b7955314d9be9312ec5857f809836918d1a846f1e2014397cebb181033cd87456a51f14318e7d5652189cdb0a21f5a997cb8b31ba5e0bf993b8a934e70326497658522e511040404d49446ae1d1140be95cca0e0381ea1e4a7c238d531703d606354a87acbd41265658c1b4ba02bc920f2409d71a7140666d671f83715f8503902747068513c999f9a6a92e4c7f786128fb8b5024607be90afb75e4cf643a4f03882ac576d0e8d17a1cf415e92903f1f7309174837ad629733aa65006a6f6d9af03fc7bb9c26c4949063d09d0da8a6243a543f7a719b1dbb6d321ad8165aab251ec0373e117fc5af13ff1f92e9c6a29819934ff34ee27e89717a90cf184fe9e5be281039d7104d26863b18505466e70ee32444f7b2d1df62b96a1da66b7dd2443433b7c03f6a44d59310aed38c2fb72bb7e0dc4e4f92a12c990996a0b90ca71b9a20ba32b039e7559b389f7480eacac843253e62eb7671b7fc9ffbf6efbeb6c9103f9b5f259031b0bb1e594ea9660fee50cbe1ec24374e509aacf00c67e7b182a515d7bae827d00581f03c5dea21a0d477464e54d47637233198cb51836182b6bcfbd2713ad6643104785d6387ca1ac0000581f03db02b15e76c62097a479ba2a7a20f1b0da698b2307a17feb8dd7a27acd904cffffffffffffffffffffffff00581e023b940931ee70d98f31cd386d5371b56d0efa22af029df86007b9276345472e49ecb961e40000581e02508e1d80dade33652f0e2a15042aac2fbc46e7b01f4c4f1b30feb0fe14491a17cbaccdeac500010219200100581f03bf4e5d38ce06a7d8735f6942839bfcb82a7c649702e6b563eda0e63d30604cffffffffffffffffffffffff00581f031a5dabcaf8ca70a20da29cbfe581c391b34d26f55ecf4e1f8359d73a59f04cffffffffffffffffffffffff021945280316a41fd7f44f3e5fda8d7fcc060bc17d4b6c21d5eb56d5d258c36705e2d5a70e035e2490e86bc4007e59780127f307fdef09625e8716c5df592d9a7e56262aa2880219ffff03cd4a80bbf8af6a55b7b1428147175561f236c170b6a3961853210c5583f2e61a03130354067f524a41deb6ec8c6099b752da06eef96aaf50d7487c6fcb54d647ff03696b2a2475f630729487f0360ba904917d7a4c7f238bdfb4752f7f52bd9c61ed03b485a2cb68f485faddb1f9455577748d3cd1bef38b3d948a935dba06c6785822039280f90f9032bf57eb9504fca8ca03a9b97ecf62c7d0bc2a113932f6eb1c7b9a035fe8be44b8880785e644f89364f00e88de2bed0457e86e6886db1140adab051603d00fa96add37c220ff91a6081f99c064826849eebde6e167a2c75e4ffbdc7e5403e374cca7389392fd6981445ad3fb095ec83229bba7de563c14ef4ada6a175a730219ffff03eee24ef4e248bc3e401040cec6467ac7fc392bd87ad3cfa77225e48a0af0f63b03a3f231622610f8988cfd1f9d93e00b229fbdc874d227a7461d4ce5a8e34991b60362d5a1f11c83d0c42b9558c57751c11e38341c57bf2331b42fd6172160bb159803f62eb7d9ca4743612b81faca3a90b143cfc661ec8a5cfbe5900222193d60d1ab03c3565b867b06342d10e620e86015f4d6473bdee318b0dde49369eeb99a1cc21a030d6105c1b4f1829005b01f509cb7f12036e0fdb9af970789600067c8b328707a03a1c35ebbee15c477007e7a76d8905f454765ea5f2cd68e0e5b1e6635c8c2cf1a0219ffff03d2646ba67864e09aaa25341bda33a8e97baee664e86d34ec401b40a4015b390c0219ffff05581e037268bb2ff59f9cea4b960267019af7101ac963a92f49ff35a603ca8c200701191a8b05581e03bb24db448fca24d28ee43edd95be1450ed518cb18d832053caae8e5ac00401038fa1675ea7e4948a5522708bfd371c9f04fc9492578ce7e8a902e5cbd9d25ed905581e034b0b89c0e30fd6986feafd80a79db421bf3e1a57b9b5f57e25c8a634b00c02460eb064500a000219d3b6037bea0ffeb3a2976d4b5e57b94ca727c5943bbf3119a5db148ad985fde5981b3503e65eb7dc9441dbe75ff6cecbbe940afdec6b881f5609465674a599250170abc503d59f790d85d6b689404ec1bd2fe3e0a5edd2758b2aab7b9329ee0bfd5913c6f30336c35694158ac953091bf61a221bf291f6052465c075d6b035bf7ce0cae471c103e51f35156b58803b959e2ee15fdc88e3d2a3e9b57f227ac9391a4bc66f4eaa93034633e82607de66a4983239e7cf8d3e6a1df0b069352f799269ea3265b7a230c603e7398a646b9ba963abd0d22ba4f3a15eee9118d1ec2314fe678f6033a38b6fe903ec4c480bb1b85921ac44af64e1ee3337ca71a32d0880ad8e1d713319db0cc6d303f97bcd401729c478de1a273e17296d25de507986a1cdc98400b98bb580600e5a03a6222b16d5092453564ee9090859a2187e0a48e493d643e7806990b14d6107b8039242a84d26e207b6576325b5961dd1e05f09312be6aa5a4773556e61ff596afe03d19783b173318d1d6f5372c1554829dab14d6be8c1bfd21c32128361f193f66e035b3f512e8e247ba95f8fd497ce128550f585f5f2942874343d0d60d04054ebc403f4aaabff2627e23b52d3423ee9fa0deb0e6dae91d2c67cb47bf1c35d2d9786af038e072769418db5205617da51de0fdb461734698195434270975bb30622dfb8f90219ffff030197aa8c9b0b5108e87436be3471da1be57a6462a3ef7a710994808579d2e65503d91016ca18cccccfd1b2793f3adf6159cf0544b98469983142d3d9b28a89bebc030f6d94e2dc144b84521271c9443a05612b38e7c86de4f8d1c56e56e2deac994303fac1ea968183a1611b3c98947ff8741869752f0e6dcb4eccf8abf868cc33224d0374f909ccb54d804bcd45bc747c9754a2b3f6b187e203455e830b15d744ad899d03ddb76cdda6cbf367b4dfc85a91df8376e28fb62afebe3f333911f3e321746ab703a5ac57a4272965b42864daa66feae68175f498ea150f0841ccf32b1561b945f703f12adaaebd094795db9d024f0157343f466fbe4cb64888a8377f41ed729d754a0360bbdbe19a643c5752844b0a239990e50848643b790c54dae4136ec373405c84038d78dbd865e3e339dea2cf5f60c1ca21063a3461cb7e9b1bed4cd352d2c737bb0333f6e5462f48994ac2b83bf1b44370c3ca66378b87bc18a4a9e576fe098ab49503780626aa475af5791bbe7e822978113254c2d3d11570b95ffc78417322234fb7032893e99f8511f7e1273dfaae788804a8006e1abfe6aa32b073c7be32c1c57bdd0219ffff0388be52836e9971912678b76720c647d59c9197c7f355e6a20e78caf53e0d84a203f50389ec8edb1e4b50bdc80489f7738716ef66b95077d955a72b96b9defe7c3c03947413a65361770f704387503460c7cfd9481f77cdc4768046cbd3a18c161bf70321667d2d49a876736d9a1ffd851c6dc26af68efa8de788681b450af3ac3b099403e405decd27db44d03b2972e922a7ea7cc22da70bf141ce1bfdc56e79e440428f039f1c9d39cca077a172329f39e08cf6a80f67261a1fc1b34379a847034fc9c041038903ee50dcd4c4e68624f796ca4ab2ba8f5dbea36cf8a5f3b98efca91e44fd170309f3b142f5fa66f803501b45aa6e1ae4c852bfd17f2e2e63cdabf70a6f99e88a0339e84a4293282411f5a9e2d34d994dd5bd07757d7778c8b21fc5d315505ce1ac03704e83c93db718adae7bcf157546068f66073f44584d30d03dd689efa36712f5037af5663eb2e1e4719a43e42d9e4ba1b16b86ee6300800b8a59dc9e94ea3bcdb203036fc5a15e0271f6810be60e5244379a3d782afb7f25b543839bbcdec8043e9803085b22887f5c6ed54494135a7c0572f63f7a35c28c127c5bad05029034d6f051032739d502fff6e8928444e6351b149da111dd9a563c45fe1de06d91c40d8fe19f0219ffff0374661d7b7872b14d23c6fbe3ff5850174ff4f4ad61a279cad03f636927b3e74903cae91f427479576845826eec365dec08286361552882190a06ff414573dbfca20321b2dac89355154d02c61368a59f3ae2c42d17b27c2097d64b330eb4444ac6c303fc7d1cdf3e6be8746b2d781a31a6577bbd360e56b09fdb8a5aa7c9c7117ed10a0372cb7a419796ce4f9afa02d28b2ea02daf8769062970431370c5de000beafa2d033d0ad97ee481943f8c5b5822097ee6aa70fe91069cfd22aba80ed5ce71b5f5b10365d1b2deaabbe5b4b1592eaa1a16c7f55389d882b11810cf654044e92881cf1a03d6fe9df377ce4809cf2a8ac3fa57baa04669ff4789b37760c6a4e6dfa8a2475f0371dd7224248fd06063c13c5c3d352b86aecb90c98048724df43a070825c0691003b0a5eb2ac4934efdf12572cda72b8d4531991a5812906768e4d226d1130571bd0305d5e7eb058838f49000acdc938ad6c17579aa88c88cc629ddcb8c54baebe48103a68659bd40312244a6fe6beb2787d66204cc78d2fb7b7cd9b0a1e1cdfbb2767703b86b79034766eca883760e9af17300b6bdd2889311a4037bd70028442186e704033749962e2236ba6737253602c7fdedb5dc4cf5994cf14d96802c8d5a2fe5b949036170686f268fcf1ce2e9362f4f9dc693945d68cd76148de7fdee0e2730f1eccd03d8bb17c005b6032589eb94d1e1b1be0b81d92c002a27b15508d9ccb13cc35171036770a1302d41aa5fd0b1664af566ef17acc5bdecda6c9b1eb64588733b6ea32303b80703daf98d00c721843da4f5dd17076ca8920a368abcead997fc52681406f503055114cc95bc1d2c7e4949e962975d296c536235f6bd28dab901d2ef7f6c7b660301ff49944971781496450481cae00e8b9847767cc3ff7065d7ddae836aa023f7035b7be1089303163309511cfbba4ad6669766038b61d481bf9805782f35d6cd1f035fe816f776a8e022114125fdbc20e85941ea7303d98062becf235185d181f86e033063cbdeb8b4776f035b01bc3f8332967dbe3ffd4acbac9e9ae2c17fdf04f46603405d393376d24b9094eff10653b7f05098605657a9f1c2971f431b84e3da45db038bf17408a7ec49e1939f86a9bbd74b0da312dd3d1a4b13259871668531a72a7f05581e03aa7eabdd325da9341750fd8fce119e5d753b49bcde981d51ea5b7174f00c014680c9b432a60005581e033afdc5a03bfc0ddafc6d646006cb6bb8028b5532f0f9ddd0c8874f16300c0147d443db3f2174c105581e03524c44f29be5f319631c4f3f45d8496821d09d307c65d9b6b4d08c2c400c024706b51b993a3a630399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe908030733ec10d65c767106491f32d6e019ea809dac41e24e5e4ef72eae3c060d59cb05581e0345a84de08e50af256928e283feaad33face0ca9a82ac1592ba89c29aa007011bffffffffffffffff05581e038e13dee7da0dcdb0d6a1fd934c8f978505ce4f9e2732dc2aeeaadb5c900c190111470fcb4903fc3d7003a7e48f0d73eaf7c47528d6ab59ffae7b4aec13c5eb888b7359f014521767c84803f4894f5d93a9fad81ddc3c915bba04e8b24b153184b4a38622d4e353288b537905581e03c06884e8064a3fb4ab4774eb43654119e7a837509193221f7aebea2e9007011bffffffffffffffff05581e03263997cd889d29d9d7bff49e1179a150ebba7569dfd47451cb5b9c5ea00c0b4741a504183a2d6b05581e0386459152eea1fc439e1e41330ab04446a891b27600908f557e1087ad10040205581e03928e52c7af33a527623481408b25011b0e2fb2605d5872621e4b3f03600c1a00020716498278762135845898a705581e03067939c0d46e8af44bf268cb1dc01d3b96b202a61e6c33b223dadb78b00c1147158d04cdc15a6a0219bf350219ffff03fa88422bf2362ca7464b5804ab4f9b9bb2d9a16895a41d3a1dd404dfa7b0684d032049b49d1da97f1152f496ae2e7c46362df1f3a2c8b7444d68c601ded80b03a00311afaa7a30752a3425acaef8b20aba61b329a5b40bd39bdedca4be80b278bcb60378de883cec24b362d164c95fb1fccbded2e33cfdffceded84e73dce8bf987a6d03f8b86d18e9b8e5787e28120904934e9b9b71e4c902dc8702e4b44f7c9942b7ce0305563f02f060d04d2e852cb9152b1f3b377d6c8c328ae5603d63da344c116932032ccef807636f889b547b7541a04b42ef26e419175aa995fc3a52ab36359510ca0380a48a0bde4c8f1fbe03785a23a3b6d82d756c73fe8f4a3c37f3b3832efd15ac03a21b301a43bd72dad95c40b7e942bea5cfb5f146f3ed92d938078d42022e4c140385ad934c8192f2c01fc75e3eb8955edeeb832d48a32f932c3db54855b4b1a7bb0380026d48d03c63dfe66bf430a01b242099dbef18bf4f948a4cad22eafb4dad610219ffff03a796ab00039222c4e2cac98d7f2df2a818822b8f4e6d02bac73e68f1d92d8a26039bd72e1965206bb7c8a81cdb7cb767aa0d57a2bcf568115d0ec92921db641b4803ab214664a9227bc7d3158e59f6b09e730e60ec7468a436a36969e00c992c6be803baa42bb9c4c79e1ab2d8cc2a77f1c841f3ac6da37a0958bb25bfe9b6502aaad6037a83690a5130a55b0a3ada4da910cfeab62cf17c37479b8ee1524132bf5be7a90363f16a2aea80dbdb623c8133674b60bd046505d26c08c271e2c06f20f906e3f503ea6ec679f828a74a9fc06df4481420c493362aba9faab332da1e6d93d0962c7b0313ddca193347a0ed9c7d337787b0b10b4dbc71a3f166d116ed3c71a54121d43003c411774732a43733976445b65bb558acc66692569ac19067cae6806fc4c67a7303e51552d389c5fe05cacd4c99d5f7b6668665e05260b69a8179c1535e75e8bbc903513cd150a9287fac55aac022ba133d7763f99d8aabb2d6e940dedd3aef863e970394517b9ba575b79a4ab46346d011c7c358aad31a163a1db434f9164583686ea20219ffff0219ffff0331301f9b7faa74cf20da7fdfebe869111ff139a5a6887406d9d75f55f8298be00397e8024a98bf72196ddb7c0569ee1cb2f1712741bdb223f3610b87f4aa5f664e03d41fbdf03c60bc3c90e7ae66e319a4f68b7209aae6bd4a40aa6e36960af8057c032f45c13c45d0008cc957d34a0be0bf99dc235202cb84ec2bc4fd52e24ff67f7603be49b64cfa7fdcd2f4b581759a2e0e1b9070c11a70e2ca855ad549bf358937e603398be613eaa4bcece3b924f25a736a044b4f6cf12370b45a145f579172c531b40338ff8c4aaac1cfda76a5bcce7eaf89e433a1a83d22b2d678cc3247b96d25f7a503d1391cfa10c1d54db70d268488d36e8592f4a1fe3600ff2753f064e38575c10c03462281c104540545c3434b625ae941dfd8ad427d44444ea26680027337f900d703406a4b64eb30165b4e562a10496488ee9ad65a3f3eaf1efd5ace223639430fa30359f16f4272ade5d01f4e6f3560718a3f6b04504af0659a00ff60dd4e4282127f03b7d473250312bb18a29380ed36bf8a2e0747fc50f7ebb4fce983617eb52d483b03a4f6478b1c1ac63243c677fcea121d9690a4935dac92f4aac3d3731faee884a303e92c3b42973b5943e1cbb104193352f413786dcbc381e1d38185307fb87aafc703f1b1ba08c195ee379884a4ed8a7310c043c321a009bfb10eb684f81bac1650b5031cf216ba94379e7c286e8a96627fcc2d0775accb3fa283cfb2d1bb942b4cfcdb03a0c34ba5f375b9c29d7439256cff28c443e5c37de858752d94cc271bdb2b8ccd03c99f4154a238d50c55f51b5b7a73caa89fdb020b113db0a7e8573701445183f2032cc6e6d5d8007996893224448a55bcc837368cdae3f7201a205979767c9717ed03a2e28da2edc55fe29461698395d5551f3a91365617006c1fa8ce565fa80d3fab03bd272709a8fb0519c36b75633ae9ae6186d3e19ac34a3ad889ce78496a5110eb03af34c90cc825352d4b710f4527d96683a08cc7ca16fc0c58d51ee807ea67487c03647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d038fb4c3c27f6921c644ddfc9424975b91b4588247ca2a1dec3696da65a397bbf505581e03dd186db02be9f93d0537efc6e79f45e15e8c6ea3c5df0e96350de6c4b007011bffffffffffffffff031a1556618e8f6730ffe8b0f27b1a1162547ea307b836cb6e30df2dcb0d91e4c4031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0334d571a8b96f04f82eae7ed32464e73f7ec07e8fcd2dd24ec2072de85007011bffffffffffffffff05581e039b7097ebf61ae22a4ea9d6530c36c3244e0c13c810dc5da77744e65d600c06471936d3dd813c00034249e4c326e3926b31a2e7efc24e8e1f5041e1e34bb850faacefedb6046cfe2705581e03a5e5896341d8b81a8cacb79686edd4f78c4b2c31a1fc97eecd37055a90084708a3b7e336140005581d0263a5dceb1065e56438ea610bb0dea73e713f55210193f530d7b63ac00c0747e576ebde96dc0e05581d0244f0a3a6c68fde3b7ded98b6faec1a4021a977e3e3c3f392edad84a70c1913f24789e1cd753ad9980219010105581e03ba01c8bbe717ed86ecc1471bf37bbaf19ef7a8f27b2e2a19ea2be61320040205581e03b3f0c52ab0f6d4b9de1a59970618607f71c57adcae2b11200d0a140ea0040302195e1d03b18cefb0d04b6d446534be1a544ff258babd44e8211905a9a0d38e8caab848c5035ed5cc29d39910ab03ea71f2b08dc16e36390607b490558ab7245e1d2a5febef03f1a5178d09b7d77ef8617ada21f035998bd0d12e400e052861251cebc9f6e14a03850e15447383489a7d7d63665ae12026b90cb467c3ad85802cdee1bac36216db03c2b04082fa3ea1dc2bc70e5c8002a446cc5ace62ae773954be3fb87b8322d14803909eb7afcb8802c29524d61b64e0fc9b78ecc9a7a1d06af5e0a8c6a0aacb65fd03c6e94820042890309d2daf0998ef176a676866cc0a9ca3ecc49c6b1cde8f40980219ffff03978428dbb44ed833a0c27d889a96567fad67d1727d5008117a1d4f854975b38d039f8767fcb7749e117990f1879959af22325e2ceea55797d03c9c9423e7650ddb03900eabd65763bae400d972e5bfbf423d70b5ef3b16c64f0b2122d143e31549b803f4149e030205fe682734e3eb9b4f079c926438994211857dc287ffdc5eaa80fa03b3001baf2f760dfc5341e3adc5e7507fbd9a23c95264d95d5f0949bda2ac5a5f03e796219862dc014b8be957a636d75800cd783a1fa63c6ebc5ee8421a690edce1035d92078618474f94f7b89b1c989353c36304562fee4028ecb33acbc623bb217f0398e1aeb6b8f3d161d8339c7c4388db1a2c27e7dc98254310bee51b5425c47de50375716060c5204f139b40ba14f97be65278a805ce5e4d99a9cc63a6c30e6891f403f167e4b9ba1f29148fbad6d42381fa80a4c2abdbc1b5979294940885b09c9e4a03db0271a1dab8c29b5cc3025aaeb1229aed4ae11720cfa35436a367a713c05f1d0394ed0072da94355eccedd7e36cd2a6a9361e88ea4f3261e12a0f13b17e48ed140315f0adffc7b11d7e5e786277f7156cc1390ab2ac98aea3300fb807714403768a0219ffff0351cf7de8da50c0b59d3d1062510afd0e56a56d24d5426fb625c3e95e8f9e90a6036dbcddfac26402870b1ac4ded439cb2536fdd8fb2e1b08a7f2968f501c85665203f7e46596217863234068019841f70842e7005f517fee6249f5a7b2d20bafadc503cebc588e6e44e38fa90106445a70adf936bb34329cce3ce75f9590cc28d0fbaf035f0a7e64e0a406e9b5eef60888146c4455a819793a4082fcf374b11e3ce4560f03fae8c546e15e95f77ee08e24991248e312a4a6651cdf99ba26d25ff38a13162803585322812f0af697bd1d5553bf68e6f17a686a3758c928cc847630a798b8766c03aead0399d33f9217bd2a9316bebbaebaaeadca8024379e1c4c1adf3f944fdc0a03106f42acb17d4ed08d05f59da1ea6173e5616027e7e492e539078b9c12c39d5c037161897d43222ed239e117491758590d8534891aad0e4ca174cd64a9dca4a40b03e48738c7889c37e1a16cbdd8f0f9f43a15a640b5e01727476f223d716339b4b9030bfccf24fed97d20e33179d45e33ee8220e6e15e9f259ae2c2d116e26043cb220219ffff03fb8e84aae63fbd1b476484dda9dd0e4b3ceca96b5c1165174e32aeccb00a27410306164d3614103a52d535b79609601dba1e13bfa1ade8347172a5299f5aa01e85030e30a3192e6d0925ac3bb03cc0ce64e08f6572f74236ea3cd9ee776e7fca238503440f36196ca9d2551087059a687d74982ebb7676e35500e2c1d0f39db23de95a03dc70e6674898f354951209681668b2557c2ee14ccb9504eed0540aa0dfa2f12c039124b89f13b84c972220e804f4936464da65789dec9cb14b095c9558e2ff54bf03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03dd59883aa53fcf51526cdc8bcbee86e821a485fc27b5f7c93a62cd323007011bffffffffffffffff05581e03de137d881dbcfa91786aa3b585c092423c91a4efdce1f76472b405c820040103f2aa096162374d6ccad576ad2d5071499494af307869bb731a80be014cc4507405581e0399964bc1ea7542d253c33486efbaae07efe4406fa72aae6d6ee61da8000c054705f95872f8ede0032e2e9ff089c5c7a7a7b6f62f7413015843d6c035d30627193ae6028c51a8ef1a05581e03a99b30851cb5ac60a83e76e7af72b322176c9553b2d25055cfd6f65640040103cdfc1adf9046670a2eae69364158f7b9e2b7bbdfa5db7285865618dd97247d880219e02e03cd46f6479da9b64d16783104127ed4a5867012e9cc72683f6941bc9627350af4032693816abb3724d75e55fabfadf037ccf23323970ff72b65f94dd130217dd975031fb03922c4e1fe5a2574440350d88e5b34d92fee309dc01116a6c3c97c20d32a030289de118c98b5fef0df341de3d09eed39ec4ac51bb072a476e2c65b824dbbfe03325253db420ddd913bca02779c897bde98412c2f816dba7ffaafdf5e3f9eee5603a97e42894377258dc7dcdd466193fdbea55d943d99b8134a77fe33f2a0db6fde03a65c2e647751835031eb9b8a937f5986815ce65b087d4f7f2fccab8a41521eab037f667acf08b248eb8a9a3b5843905cc0daad73fbb1ce2fae2f22bd74be95cf2f03fbd0d95b10549e2a789343a21539a0a4344e43ee9fc1ee3b6a7e9ccbb9e091710381907d74a862cbe6835e9fb575ee43b6824c27012f6d216c7c233aecba6f220503d7da7c4baaa939f7514d6a313e51ae71a12cf203ba50c76182105f041481353c0384b8584977270a7c9dfd51bc242908dc4cdb7a87eb7a5d4e09164f749d9edc1703238b2aa5a2fb5442a9336e13f5a6670bd80a81687e13ad96ad89561187016fb20300c058cad117d1742601074b8676ac72aea8274d219c88e0c1073be1d0da2020038c8c71bac1691bd1ad08779e41ff9f50ec1c261589aff5fc016733edf222902a0219ffff0320943754572aa7ddaff33a34d261f653fdd62128590438951101c76fbf636aec0332491618d018b3e359c3c4dcebccec5444c1b286afc05049042b6fa61bdf369203ea2e0e19d79259834c56ca7c9191575c3841f89dfbe7fff77335bfb4cba48d250368c8bfc4e7d38ff486c948c5370d8f798f05f37bddaeb6218d199d7286d79ac5037c1ed26a8b8954878e826227a846e25db56bf78726b077d0cee62dc2989afc60035c3ba3b8b27a3379780c69414d2bd3da147818d63493f37c17f02ab42ed206fb0317d7ddc79cc4581ab54decb87addaa4f5f11416943b1dfa58f943b969595608203acd337553948efb9530ccb57a4bb9169d7831b49aa4567f5ca515855580293ea0379ce84f6b5af8a0fea42a4a912d169b2a9583f27287d7f6cbd57bb4f67a8431203ef3da15479359dfdf6aba8c2c98a32fbfa77deee24a1491605c4502fe029ac4303d14362fd5875a9d44c63d845b190886a173256fe35be95a138597efd535dad1a0372d4c138815434cd3d4a28062dd0f9bca6ef4cb142a6700420768c907cdf0e62033d17a76ecd046dd24fdbbf948a0115a3ee3d887461c18f201aae9ebf44f0f466035599fe16d4981f9846d8012e40658e904cb48170a6e6c30a2e5fd08a1c5f2cd40219ffff039686a3169fe14e89b4162baab1cb9f5e4bb2568b3f9e49531e74cb843955135303b16435f09c2f4fefe533f110a33e8bb68334a1825d51849f7ad068c7fccc360a03ed3b51a58868de0baed64af8e6bad8ee569d4fbf2ec80ce7ef7d24371664937b03d8778c135c978f147bb8ac7a40a83c6e076716726700dbe23d54e3b6729d5e2a03db06e6942ae3e2886fbbfa430f169ea268ffb00b6f2dc6fd4620a866bc43fc1f03f6e80c37bc8f7db64e80d32738b2669e1fad5444b8d3547df1e0587b28a033e2035352832cefb853efc33ff5a334c625354e8c669b22617d551b6bf5c51dff7ed103228dad4f434d22a7568dd2bd1d657b2291ea0c220666b2e165c72449e28914c60376a23bf26ebedca3cc3d4bc67013ec52552a910df293d51d2a50308af69fc6540346bb2df256c4e21cf0b01c8521f5bba5adf815b2eda20ba7088ba735d67269b30219ffff030145ddd475bec53d2465cfb897655594ffe58529a3f20ee79383958ccefafb1003f07ef04894c4b1d11e6577347cef86d54653f9d35c405779aa6f5c4c04346b1a03776d772f1346305796639feae08a0297619f1e8430531358d78e8b83b4b0be8f0324d842485986a913828cfaba39228ff520092396092795cab2575e37a02eb9ea03e80ffe5f150bbfb18f234ba2517c05f4f90e16793033d8ccc3a6fcb9f6ba60360219ffff0325959fa50d26557c397d128a5860d45885021ba2beaca95b0cb4da0b53124a2f039535dcf007f20536588f50ebf45e427c7336b91362ec41a8f384f48ecbe5f35c0304309de3f8f32fee91b1f6d65b369a02298191274c3ccf96f8434265f47698e30329834ec648df1818c7f8b44a4051e0b232aa0efc6c709842ee31a7b998919b8803d28b59efb457a78875d67a9fcf6c133a1f824339672946e6d63eb078a8e6633203f5572de92da310680fea3414e4269da00848948880249408c040f3c5504b338303802079ca790a8f3abdeaf142eba4e1aff017cd4dc3c02fd352e017ceccb0f35703b4a8a5f5db4b1dc29d28eca3f2a09505c28ed8d2867f74eb6bed35d1b820c82003c0ab329e540c6a4a678070c9b9d3692b1e8715cddc4b1e8ad0a507d53e89f3fc0357b56d4f1f2da91a498e93224192f21d2d9b28cbd846e90e1c18a0f1a3095daa03bc57287fac727a17733c05179bd912707b5260c44a2014a0565b5add80de501503e391d854353cea72276714e5f64805975d96f8f04065d885dff5fdd39fe3a31503d432564feb3bc7358101f650afec956e0f5919c2022cf18d1cc6b06363ac370d031559dfc3434429dcbbf5d6b939e82803dd0f2d9d62573019d203749b4196044d03b2aca910f1b50b6f24b4307502fbd38c4a0854accbcfe6cc348269c7072945a603b74e51bc36a26faa1cae87d3a25a0e4b49f69402772b636192a344a3fe50719f05581e03d29ad60bbae7294de9bf4182a8f9d214c68a04497b480bef292ac487a0040205581e03cd84cc3273c9b28c704fa919fdfe3b5bb43d52c6a4781ad5e928f3f6f00401032f34988ec76297df36b17f3919bef84b37556ac43e3e62258cb508a4e620c78405581e03eda95b86f67280e719e4310e50f3914541940f6edfcb0709da21a24c900c1a00019ac749df0447a65e458702da05581e03f44bae70ffd42c3a69c3243505ebc7db5d99ee4376628fef036bcee2500c024701353f8d12d8a80315098abe00a260caad058244d180be21b8dcfcb316898b98d7db5ae4199bb24703b2a6b1e5c3dbaf36da738fe122c9de5fce3fa85ea73aa3f964062991de6ef11d05581e03af9fb9dcba54d2fc3b2a7c92295b01bcbf46d12c78ddd1fde2b51fe05007011bffffffffffffffff03dd7899a1e3bf37b81e71fb40ab45eaa4932d22f3b80f281559f3022b810811ef038efc9e63cabb633bb20249e80269019b55642eadf040543f0c8bda35a9d3606605581e0385cdcf5c266262b8160166d2f6fd5cc5f5eeac707be02515e22f43053007011bffffffffffffffff05581e03098c0f647ff35459fdf314e42e87d2d7fe4bd45f3d843a7a92ada689f00403021965c5031a1ef6b9232d629450521d6605ab6f9fef98b39722ca7a93f37ebfb0e96baf2703115f6ab1e0012141cd116f9c0cfb20fc1a798e6c25676130fbd6c06103d1881c0327d03a1d3879983583a57c70bbc3fab9cb0ffdc6fd990677c8c66220cda9574f03ef0f5468f17d5ec4531cfa8a13cdb9449deb869812f9ccbc98519ca2274fa767039b609d0f5f8249a8ca7f6966724b344733040e1610cef4ddc3240182ceb39cfb0303fbbbc71b53c4cef7e13d8644a0ca23f5262cee268a0beb45f192e8e1bb8e8d0336d7a091bef2f6cb0e6fadcaf2d857c31906e8eaf7b3875d9dfc0db5e1bbd1e003c45a35b15d9340a31b981d00814a3852e5700e160eca246be628c01e1d0da21803ac123cbac28d7f857a346b7e335dc1fd68a45bea4e2e40dd574b7b3685f4498c0376879ce5fe2d246b086fc6837873d16ca4aae04157b92d242dd3fb5889f0a22e03239a8f4fc28e0afbaa2e255a9026ab83324458183699b6bd00711bff82278aae03440b231bcb9b6edc0a7f989854ce627c760870969afa6ef190363114d4987f72037f038512a67ff47f52237fe0a2c0c91874625363aac90bca9eb584dd00fdcbeb03dda78220a561308f64f74c65f56b681e7594e9258c5a6a4d3c90f679d6dec41a03a9ab6f34a3c0457e1863b94101a6358bb0b921040e9d39aed204ab1418f851260219ffff03b906e69017f53a37ad6cf67f7bd5e2d19cb1c6b294567f447b9784408dbbcbf003fd34fd5d8385d2d8d988399113160288a4b8a9ff6a648ce1230aaaf6f4d8f1bc035665b7220d836ba6b3e223589de7d9cc93ee843c770131bcc145be295cf6200603047ec9183afa924e3cc7f181bad7aea916d862a8eb5c7ba2c56257b1598c3ea403ff7f091ca6f448b87e7f89706c5f4e0a9d61fc8d4048d7c98c58c21b20f0dd9e037677cc88ef0397a0a58916ce9d7e1f071ebc5436cd7c1df09d6d9eb9b5619af1031de357bad427fec2c9691ca436d805caa62e5aecbdfde03c45a5d884baae7771039a7cc8e3f9ecdea3a68d9e898a6e2ae7fd9086be44a93143008c648e35c62a4a0219ffff03c1f464f9326825c8883049364cd8668a54ccfdac7efa2d4e07dd651d25e52f31038bd23f2e92bcf5688cf8f367b2618ece90eb141e47998910da302c92f72c39d10393ab4860b03bbbb3d6a8b15307e82d3e3f5a5fd2aa6e9f198b44710251ddfb4c03aae2747a7c1165849f5a2db2c3a02a8a905f025576636be31d2accc81af1f3cf03ce59249b3c4954ab582a3891883f5b5ea554509d194b22d100581bc26e73a9a103d9717be4c6ada17bd46a3785972a542a2e5c46302ffc8fc28e5657957296654203eb610ba2889a827cd38d891a114bf4ac75167350737b1f5140a0b3516bba381e03834132e2e39ee3c208e70cbe39fe45071b02d81c8cb259b2dcbf19d9d2e643a00316821456092fdc77bca6d53ce0c6fc5d5865d01633247b86fd9c0422fd68a5680219ffff0340400ff79dded0b6ff75bc5124f3a2d97fe0b3ae36d6cf2b290143a4986d8d8f034f540b0c6019a7ef943f8f2be852f0f44aa12b7d60c4edb79c60aab2d67d47eb037d51a8ed5edfe33d759d4a19d6c9a442fc271e03dba5c4df6479e695394ede06038208ca7ba319796af16b12e15e9e4be2352bfa46a9f0b6f7e90458053266aca30385edaf7d19b437ff28408f45974b7f0d887f5ced2d3f997c83ab3dccc29d47bb03a98c8a145899f746cf8d47b9622beda21878738d4e32d6e298f1059d313bafbf0313e4226da18c3d9c6f95513f9b9d2159f0e5e13a998d26eddfeb863ab301501e0306603b0803fb2b59b3e4907df93e282648a1a748449afdb94952edd1dd901cbe039747d529af62feb43023c18feee5d0765de709298d957448add4febbebe0fb0003c5076c93b4e1b5fac2b026fd730300daa66e1aacc7d64d232bd8c4917406c72c03b24ba764c89d7a2941a4899eaee391567bdc24496f0c94dab28f306299cbd9610359080d2ffae4f1d015371075be18ab08cf6bccf4889e71318dd55abd5bcad96f037fc1afe68d065df2b41c6c665503f6be0b1b9cefc8f8ba0c045a2a15977d955503cc00f477e54c379cb6ddb2a94d851f342a58944da0d596f818b20e7b76efe58903da0c0ef0f90efffb9292275aab53a11e47a32239b76fd73427d37d106831912b03a884353e80ce14ddaf60383433e1e0302b2354deb184b746046b5c502d1e83f90395bf7b3c747e26244f405e365bca78ece5007b72ad9be24de7892fec0b3de6f203115d924bb34b2b2710ff4d2aaa297b7c78f05b82bdf9c7e16412636b2f92cfb903f02a375e7859c8548b36afbf8f4bee30d083dada68738b1401a62eae07b3af47036294c0a4529210f6f865a9f6a3f5dcfb743b70e651126a20dc7ada10703cfeb7035fe24aa0e9f5f93cbaa16166b529a35bc8fe5fafceedaa6649a7c5b0edde698003ef2cee101e87441bf36e3f77863fdfc93c8e11bc05081a987ba6ce06eb5df7a203f5f27b2d771bbb408301f1e43a8225b14afed1760d3f97c2290031065bc17793033c58d2905119a5cfc5533408f47fef6c51c50014e26fb2dfdf3e6e85f01b9ad703910ded5341a6a341c512f539218212d677be7ca3edb854083e0b14a6ef26369403c326a6337a85d27fa371f8a3d0b347970ca68131799e47684941200bd5d089a703b17f678884a528add52e03d858b2c1a2e13f3d092488184f2ffcf2add2f1b0d503fe0aedfeb0b8de0118d4798265eabacfa75ce2a9d8f8d819dac0ba514d022ff203944e18d0cc8da217569a1f7cb4c142ce1850030f4f2ce2955fc6485fc8a7c894030a5492d0b61191add3499b3a4648473f198e017aef1e0f78219f78effae30e6303217aba5f12dac1aeedb4c3f9d206418798d9d0fe9af73d76dbea82ceb9512861034d78bfc37274a20c92fb1334f3245d33128c8e58d52ca240e911a5bc1f6b875e030a41bf3499b5341fcf209c32b2b918a210f46be3b576bb586c04024e34d29c7103ef588218653dfb97f8de38dcda968be598ace8784a45501dea2e7419239d41f1033a7b4a5455a0101eae70acc8cd921325a7efc1f95cf2f0ca472aabfc026378ff03f48498a9b2b77bbabe2188f33eb5ec26e9239aa153a879fbe4e35470c346e9330304162a1d975ec4fa50f509d90f7db63b7066698b5241e582efc6ab290cb31c8c03a32b75605f07e90ecf751808d53cc71c6762c3a8756d95369d13fbd90ce9e11e0327a03a61460f9ebd4877e6f1d82209644eef795ad18e16ff1fa0ea6bc0fba2bc03521ca07dd54dc8d5f5b6d4134409c46d0348fda7bbc908a6ce7751bc1e6a9db403fe681d0de431e57d61e51d819ba1dc06ec8e8b6b5e8af143c5db8025b686ef8503fba2100e724ef97fb5aa9659d0cd1f6e25350681706fd31290dea0798f41994503a4306201cbaa7458a700cd01a3deec65ce0d689c01b2438531a7aaae4766c1d503a1c04bcbfa2f9cf38731747f8fbb4b2ada20add5cde213673c24291eece2e2df03c1b6eb38f77b8af1518a7e02af658a3158384867a28701bf5164190e613cd6b605581e0368bb593370e8d4ec51d432fb5ca3cd2b3fa286bece2f39485fe83176500403039b304dfae55cd3fd5fb5f012883876a1c915c2087cbf402dd6cc6943f5db299f05581e038b01120ea1b3fbe0034e3ebcdcabac0c77b6e2062be1984436ae5baf40040205581e039b651166c399d8f5a1dd683614467596637c36c25245449351b51728900c181c46fd7b029ae2c805581e03a3b5e2200fc8e769e374d5d36906a680ea4132ec7af2ced4c93e921f000c181a471abc6ee7440aef0375c13a59520a27b5f06754ea2f9461c749ae22734462da0af1357a13d5f3575805581e0328559bca072809e17f397e0e8a93517908d1ac5acd94e42ab2a35792200c04472849ab7fc0c00003c76bca1fe088ff275f4d78076241562c9c246f58a43ac370a2835f9ee231d8b1021957ba03bba817d1183f358d57cd971d3ffbe0e20544f199d704e26f62a0456ccdf8fabb03e22d9a4b0c4ea611bde60e1577a23ea008c02394a0f567c5129ce5dfc48d6760032fc2f8c90e8dfdf66943d1d03e05ba94d89e387cc51c42586956406404f9b68303a94416df46ceb005beead69be0b92fd2e1098096d7c29ee41572114a73be1ff60219ffff0219ffff0219ffff03301a33ac1f4bd9bae4719bf7430c50d0692d312e390eaac66555e1316420298803b2f5c7a74c98349d7147935759b6afc398bed121e39890040b1b0ac7566ebd1c0314c526d107162f524b0df86f177bcafdb4f8b0dcb13047732b5b0a20157f2f150374261203ff1e8de6c761aacd8015eeb18c2ca79055522a2ab401859651fa76e30381541bcc2100cc7388b28cf21ea41fde61bc1375a0789831a51e6a06157a6a3103137df494e386a5f708c31fb0075d83788c5f8b3a0fee435e50f2bacb4f20bb130385ab2443adafa6fc05e687016f644adb7ec956517b0902f6e6a59ac38a59c23803a4c8f372dd64fe40b394dabdfda28469e5b1be9181ab3099b7347a09a28976710349404b7c91f64cf2a41b01982916ccc1ad125b2a9be2d206af1ae7cd9f8bf0b70219ffff0392a404ebec4fcee8a34a05cc92c26228f7c532bc43a73c8bb998086fc7ebe97b03db63dea260a0a3e2ba58acebb62f1b5579603c1a9bf82b927aaebe06dd4c2f0b0347dadfa79dab4403a365bfcad12a3d64f66fdbe2446a8ba0f945c4506a736a52038bec4a601866cf1fd655f68096c476f80c05c6298620bf721165ec899b3442d503c1d4d94e7d0bb4e47f35483d55518f34ee8cfe6c823152bc4649bb43dd6aab3303e9f89b75d8b8efd7564c467246bced4a38d51dd22255483635fff598da03cbdb039b797e5690eef7d1111d8503a6a7893309b561b81004a533117ef092c85d6eb3038bb4d25625d3f78ff1c73ae734d95a5bb146f3429a9c68234cbbaa9d80d5af18037d3a8feb324fc5ce45e3b34fbf734ec1822ee3adb98525c3c7f2455890d91298035a1fe48a7b073f37f7a0852a5f3d4bbb6705df614a7e5ee7bfbce69c7f84089a03af1cdfe246cd3e59b266af8b43b4c2f354528f0a8a8d84a55f31025cb32148a9031e0f7ad6f4f75f5db878ffb33207748aa91e9a3e68ff3f6ec2e28fcf4cb9a55f0321f90f0a9b5dd697c865daf3a9f3261ae0084765743870ce12334eb60493321803dea8477e7f186d27f48092b1015103cf7aa63ef2089506d2f7797fc652e174b203321ac4f1cc367a48b29c0bd80195563eddf019e1b9e0221be674570b1dae3f8103e484ade66ac3795854e455cc24122922b1fdb5d77c6760e9ef8f889b2dff2c7d0330af7ba1c5a5ec35343c7d9f8fdc609c03b21bdcd39f9430f0c749c913159376035fe9a7e5fd43836a63a937e09231b6103f9b99ce12ff28864f18fe29ba5cc1f203a603db5abbcdfd6db12724408e7632b24fc3507a574602506f403727e0847cde034c4b14f0661f8d0e0068632647cdc9f2a1c3a93cc93fb87a07da9a08de15548603d43585af9b0f312fde708ed94b252885d4aa6f3635ca267e9a20947496d390ae039dca018b7bdc885bec827fc27c8a1a3b3d43ea3e59289f8c5c0a519c649d8f8003269715194cf73a45b249d87a8e93c9102a7dcc43adea16071d63af245f6bde7d0305812d0ccacea9fd93025f44dbe84c79bc155b729558cc962f0080a0a5f3a9a6033611f06c48655b66bcc7e4a2fded352cb415e97269c0ab95b234142dfb1a71b003a1e926e33e62f1434227fcff0bba01354820a882746f9b06606b6a0a4c34546a03f90412ce14f5515c45386e501d5c445016fc89fb2ed4d8d6a2d62d6eed6bc79a03a08aa45d2c064b2a5704e2a566d6e2f05aac8126adcd798263a666622d76bc29031e69e91591e57b1348d6c6e350a656ad27438daa4351c48458bada8376431561039820b9f2825bdb24c581b8a603379e24bfe53c05aaea04c9fe20e9d868e97e2505581e03487c17d420346bc3dc49cb2ba67c25245ba1f9862b681d572c4f8feba00c014704bb526afb449805581e03c7dbd4fc20b694f5d6af63ec00f227b82e89bf0c9eef8f60b934ce38900c0147046339d84c300005581e038664d5216d5455d0a5ed3ef0004898f9b284072a81af72a509e7bc2c100401037b30c4b3d200d3d80c62f715a2299c6b934ccb30534df2d1f6a4ac933da1945e05581e03d6abad87664b3272482eb46ed6dbf1531af1843f2d18dc30474e7878c00847150c3a8599a80005581e03abac9b0a8fc76830931a6a110e228ce6ff5e9fbee14ae054992e12bbc00c181e47036a7de148871805581e030caa1b7a759004c89eff77649587553bbd9b9a3651c03ce60934a530000c0147065e6f12335a00037d7fa6b278f8f13572a496aa23f7fa52dc0bad80f4510c69416b39d2bcd4f89d0394d34221f57f814a2953e767c0144756f9828b9d167aa0dc44a0e5ae033e10590334c9944a8977e6791fe55ae558939fe527df7152db8c8d8977887eac9c60f3d101410105581e03944f87951a7c0b7daf8b4301b96d815c2d6860840d1ec536b7d423720004010307be01e7e7206fe31ecee91ad75dada65ad6ba433ae647a1b9330469f7c6677c03709eb5dda2147c4fb819a20da7a29219edf23b78b89a76895cb5bb987352df3005581e0307645c811faca758de45d4b81e591d3939b7cd752ce25964ad05a70de007011bffffffffffffffff0219cfbe031f1cccedc3cd829f7b37847b6428eeb8bd9ce1f8857533939db7c027d65c9dfe03a16a6bae192ac56c0f875de98cc608314446733ac5f1ebb5d69e9241360895980219ffff0302a2031058ba0c12d520819f570a7b91d6af3ad5e56d384b81bb9f75037808b2034359a2d97a7d22eaf2881662d912ef2bf80d6dd2ef803efcc17481f101feecf203df5c9f329fd8308ae1ebd73867c13d8dca3bc9b444e81e7844192b4299a596fd03ec1cce82d82b2d6c6a92b35af751a2c08a59b17cd9f568787b229313fb66118c0374b6fb5edb2250dbdb3fb6a0a8ba101e245c0a19ed6520ab47f78b0885153c860384f4a1d90620100fc4dcc1ee58b6373159e91f61bb7725f5a8ff75bedf0c758a03835704acf7ebc49c341484ca90e4eb9571a89623147b52624000cac01215ae8f03a89015d31082e8fd71b0621fc72334eed66d30897ec744aea31dbf3d7367676d03dc6589d3dc531c6315a3800d22916fbe071213d16573d8f45d7e3a979985886e0219ffff03c99662f818e24af05d04a1b54d8865c9c83fb72e5aa6172104cf9c5e45aefd33031d5c43a5ecb68e67ca435644a2e891e6b92a4a58939e1df089d33bd5eb71f0ad03299ac3788cf77154377e82f40d1e9844db82e3b50e4c26e3ae5b45c0316d9027033accb4e54094b8b600078ea2238527b366a9707722fb128c1221943500254f8903f1bc484d05351c77f04785815f70a83ee33949bf6db94948f7e39815fb24b63a0219ffff0352acb17cccf9f7dd121b13105dd68155ae0e42a56c2fb5a5b5d55e6b8ca79b37031826c41ded3666bfa14c6ea8b2960cfd64c00a8ad6c37bca5cfda085d333a74803575aaca85a56938ce2aaab53f93f5c2f1f180ade63328ab6383b4f635569d97403ce63f02e4dd8f2503b18cc126771bed93dadae77d45479c04d3f5932a8adb34703391ec57203d6904a096094a06229a93fc40060d4dd71c60be3539565bfbc41af0306793621dc192bf84b251cf2313b5a31a2f38ed386e0b5f79d294a366efebc8803ffb0229d67ee566192713734c2d6d85e28eacb73e144431d0ef73a842e30943b032468809ac840062d6989c82049f09349a7fc2eea2053647951ff13be58ca98be03334e11c96a0ad31b276fb9866e3416b701d76742db2a675d90dda83eba0b153d03b101685c3472fd0e55cce32c6b94fdb0de7753b415676e37b0312316c4fcde7c03558a90f98ff23dd115dc5ca5dcc67f43ede2a0670b5117c9708411b8fe5b414003a1a53f5d49a913d8472fa81ea9a8ab7443fb8070b75fb1d9a8284fd76806935903c9ec385840a7de33c92e5fa208a70f43095477b748361d941a0e77fdfbdd89d903744e422b5f5709bc399ac5ba7cda786c9031404b8ccd95f2de00f1e3e3d910580219ffff0336e197949f3cfddd827827ad35bc0cc5f5b55aae5ee04a3bc89f0c88af1cf571032caa924274219063f03e931aee622d921ec062d889611180db329b7e32beada103bff882f5b1ab3b1c4fbb2d0b058b3dd8fee21da3451a31b450886c60b10501c1030630d472949d2700b637155d0843112dd22cc0b2b338df74e4cc67b9767138c803dabb5e9ceb4b2fa3849bfc5496d617d00dbebc16923ff78812797e3d0793d0fa03ec9bff3fceeba1035e325d442b4086d124437e7dae5574dde4392d9ad42b03ed0371902eadb3c6e2407f61481a68ed0e3a906eef097a87094071958d5133a03f0803159f051ae06fcb4b38692175f073a40ddab4d7ee286e6e1c2ac3c2601513337203f26022975746472ac8a147c26846163f6ac39d24300c46a75a560ee00e34dd3403f40392cfc3f0bb9997d5549ebd0cf9825b171ce50200388d64d5e2163a398dfc033190a26c4ee3cc7c92901d68a44212d2ace49c9c45a9051071fa9d3f3d031eb1036fcf1ce944f7436303ca3359b185d332c98348dfa45195f70d02ce88ff4b9e69036b068e38e0492a4b12bb589d8f6f70d07b5a403d6d51a07a5b0e0af080a1022403a56a74e10487f42ae71799e78697a069f7b1022df6eeba1270d468b1c3c5c5e00392569a78fe15ebf6fb25ba27a38dd0b55dd9c9da7e9c5fae81979292a5d80e6103d12306d7b49175be98ed236b87958bdc2181272499a0f4bfc4a079e30b5e53d4030fb857094fc76d56bd29a0fd0640e507ff062dad63d84f61aaa658ea37228220031e735d49edec22cf3c0e91ed290dc394898ec8c58af6ef161022699136df9959037bff3bdbd74bbc6b2dcc34393c5326f637133a5a3bb1ad1ac8ce118b6758090d03fa4fe1d5f228e7fb5ab20e8c9f14e25934b540b19960521beee4e278a792dad303806c7ca411bd4c9fd05b07b7e8f05ce90447d1720c165d7cf0b0ed2398b5ec3603a9f8b230913b86ab49484077fd36d09e140f9871717688785d5098cf3c1a61d203ddc4328b32f262766850d1aba19f38e80e5fcc5fe054a816223e1e2f0b35dd2f03dced0b42142335aff3fccc567b99f7ca968d1a639c28f64d7ad2fee07ed4a54b03f6fbae5215ff69877be4d7bea7f279865281e0ffb8ed28553a1196672f0c69a803d2bb19e5736f708dbbad01d5ebc0214f51f4ed41ffcacd2563fe20ed36a6299b05581e03fa3d5b33a2c4bce8fc5df116fbbfe0f707e5740493913658b8cf59ed40040105581e03b048836f6e3dad0e9d7e4f755365630957fd94e67e16ca718b7d02c070040105581e03fc38a2c5760b43f67619e4b2b49a4411db8d1c8813646fdb4af1f69c300c014203e80458ab608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c634300070600330058210336b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00411800582103572ab7394b431c83e7e5c30337891f8c333964572e871e8f4088cdddba1ff59054fc31892c5500abe00974280b28907baa9190e3840058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563054d9db270c1b5e3bd161e8c8503c55ceabee709552005821039031a532dbb3adc186e27ef2d159f35f95d1ece2eee849fae3617477bda32e1054fcf1f182fc79047d99e5db0d7113c0efe2ec9402005821036b32740ad8041bcc3b909c72d7e1afe60094ec55e3cde329b4b3a28501d826c0410100582103fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc530540c5cc5155b346453154059ad9d2ff695db92f77403f7743dd3ba0f172bc647c164d26e5bc58efd7d8773405cfd0ec6a1b91ad206f8005821036552f9043f7dbde1a3842eccf846aa02c647c3d99f9371aae3c93798f73f1ab054f48f2b2d2a534e402487b3ee7c18c33aec0fe5e4005821032575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0410400582103c0376106780bbe6933d7ffd35f256b543f6e0376b3ebad26cbef11ff9e080fd04101021955d705581d02777ad2efd0ccdbbb5c10c0b80bba5fde32245904331b2cd2fc3198530f0149302468a49f55a9905718ab0330d48c7f9098573d652f0b71ed5f14a03f057dca4576bdf5c516b12aa17947c60605581d02a0c9474abafa99540696f907b7317896f8ac6c5bd1bcd5172b3e361707011bffffffffffffffff020305581e0357e198d7adda26d9d8319695bc5d8193d2c1d844c7823f08aa485dd710040203905982d3bc98b3ad75d5ca7a92446cc8923fae39a2352245000f9d3e9dc0f3ee03bbd13d463ce2111713bb0d6ad117b0ba991bc32336d501e872703c4ad6bc3c9005581e031ba06c7765235e41be5dd2ef17b0aaed63aaf834282c34ceb9207a39a007011bffffffffffffffff05581e0371612f6884764e3e287bef53c12cfab3193f1cc701c94335436475a4300c0247032a41d689448f0219ae9c0359a8b9082ab1866486bb428e3708df026ba77b8c01cb3d47ce84ddeaf2d783e303565436d68c9fb904ef9753c77bf62275e416ee6198fa0671479b29a7f5fef58e039c857d6d8a3ad6bb54254d887c67ee36fdfb2cd2ddf7d4169208751532af0ff6031038e6893d6425cb0e92ac9ea1e928d823623c0769f709f63597a7d49dcd710103f52475166361ce9c95427e092be2e86903210cc5975c28937cb977a584c1f8ac03df9c2e646434a24d4c4e9904f56ab0e9af1c17ce51906fa3ec139b6f008f898f0312a0006a1d148ff92de0dc69be585a6a93e12e89379832da025c5608e365ae4f0219ffff0389b02e6c659844efe7076244f74ad95f2dcb79df8333a7ba3095cf9cfd362908033b0b13932a7567b94e3fdc677d4c34ea658b70fdc033258f22ce33ed575d81ba0398a8493f9507152ff2f49e8500911363efbbe3a2c9110246977fe7b0bf8875af0323a371bbe54b2988ea5c3e5901861101605984561c2b512fff573fb6fa7324a103a8271796bb59565ac4fc447e173784e8158f2fa9c1ef868585889bd15cb9a3d503269655338446c2c93c7946222c7152d74b90f02803a07d803cac9a9da0d1a09403c2537d1fa1f0e4cf7c54931322f3e874b01ac61dee8cf8d6efb89993dd438f080305f25e623af3e6f694a84db6ca962f2e985514b872f2363eaab14da11c6703db032e29c95d9ad3ff6cde6157218c2e70c36c1afea214d85f8059bea44e378d6e6703b1abe34229ead360ae872929aa0d8e97a7419c760cd3946eb79c92605ffc54a003577549cc180b6d7a9cb8b7ec4eaaf1d3d5da4914b0439bd546b243f3bd24660c034b9bc2cbd400d4de91459e751eba637d5e6b8bb86038e6b122d566dc67d7f8dc03639aa96ad32c0722fa3bb7120a3adcf747925176f2b60e3ffcc1c4d4e4bec29c039bc5e1283e27b74a7bc2dc6235fe84967aff01aa2d34093b42235ad190a4d24f03a25a041f9cb70d47b7e86b4eea914a4d0c870534ec6ded6ec2e5ccaa56f8c52a0219ffff0358109de6845e4d8cfeb883ee459207d510795f7b50fcce001ac08dc8688667aa0219ffff031148fc556b0897e2d81441d337952b0d8627f296f85cb15824f65aadcd22060b03caaa6e7c5e0d9c0c53a85ded25c35f9644bbfce362a4d44dc1e6d81ff6fa31320329d70b0564ac5b169835dae09528589dc61bad68346de5b0001028bcdd53690a03698b834bec0f12d97310060cf2cfcc18326d0cdc77168087d25aafd6466caf56039557e4fb8e0105bf76e544ad46e38af625d26f472679fe06297907141af827110392ddcb9b0245a0be615ab70dbbf014e4b17112f8557b62fe45130e379fe0ce7b03bd78f2f5f59bf2851678ec897a93d521de7ca38d218d380751273eaa91cda7ac03fc4bdbc55a1ddfe35cd5041130d03f975c63fafad14f0e7c901ec468eedda35303c2cc5bd50621aca77f9a77039e602ff51ace44f4b05505c2d2ab661f1aee6aa3032183c9e87641710eaebfa91c22fdfb416f11a6048c176683a7536aa299ade4d30308b9f393c448cf331bd519e06db36618d3767d28fdb0a0405489fccfd800aae80377b94aca40eee101cba923f1e5ef15132656dabca84cf82ec07a07880b3c089e03be1a9d587468d651c99dd10017990592241c3bacbca2611b95589ddd3bf635fb0219ffff038515fd301cd74b97d6ba64b3b7a1810c87b547ff382e4be4e706136d0c7d2990036e2e1faeafb7c058bf0ccf3c4995f50baae506bd134b8622ca6efd701d096a13035c79c0a6701fa1c8ad4bd77d864ff805ffdcfca82b905f2517baf6c10f5f60f503fd9e1fe1016e023671b6cea8266e4048ddffafe70025f9359ed17af69891972d03d60292131fddaca0920c67fd484fd8289dad91fd062ee03c07f305c8b6fd6c460384df554ac10a9d7884584e7dc33ea83c81ad95398844affa079f5c2d6ef0ff8403801621dd04091df8875df3b996989b0e385ea659a91cef6869dca0e6273cbd380367d01e64695cb62c74ca7bc7a8a8d0ad8ed243fdc2724c859a1da5550116ad3f03cf6b5ad90fde2965d98fdb87b4bfb64cf6be23725d7ea4a3558e8c9dc2c3fb77031bf3cf1be396145cea17c9517c0d49d738422772d320c671bc7bd902a81c4b000389ed8dd6c4e542bd4f8c075494454471af4182e81dd46b1bb7c1f67a02e262700372271b2085f655825a3b6e6700cb1b38b88d3d57e0a801ca83f0c3bbc302166103b28cad1a64e9898f7758e7fc5129d6ab1142c423c3f3ae1f0879819d6ccfe1b30314960666b399be7989ce194a698b3cd2192a03f22b84dca323311ea64e479a6503f8051b9a427dfbcf6614628b9ab453ba1baa684a47f4b049b39ac7a901a524d0038e4d94cb954cfb379ea7f3929275ad3ab93e24e2d50327c419e3d3c0d9c5460903e5cfe4fc3f384e58374c8c183c90c373274751e9620172699155cd6967911ba9039eb769a06804c6bc75bc1adaa3288bbabd20124407bf706425d344f28507cca005581d026b32cd7c3f4f5172fed954a7463be737287606deab47ca8ef9c916fb0c0c4703b273f31ed800045904dd6080604052600436106100295760003560e01c80634cfee3261461002e5780634ed6ef1914610043575b600080fd5b61004161003c3660046102e7565b61006e565b005b34801561004f57600080fd5b50610058610178565b604051610065919061039b565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000439e60f02a8900a951603950d8d4527f400c3f116146100e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100dd9061040d565b60405180910390fd5b61017282828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f414441505445525f44454c454741544543414c4c5f4641494c45440000000000602082015273ffffffffffffffffffffffffffffffffffffffff8816939250905061019c565b50505050565b7f0000000000000000000000000439e60f02a8900a951603950d8d4527f400c3f181565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516101c6919061037f565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b509150915061021786838387610221565b9695505050505050565b6060831561027557825161026e5761023885610287565b61026e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100dd90610444565b508161027f565b61027f83836102a3565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b8151156102b35781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100dd91906103bc565b6000806000604084860312156102fb578283fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461031e578384fd5b9250602084013567ffffffffffffffff8082111561033a578384fd5b818601915086601f83011261034d578384fd5b81358181111561035b578485fd5b87602082850101111561036c578485fd5b6020830194508093505050509250925092565b6000825161039181846020870161047b565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b60006020825282518060208401526103db81604085016020870161047b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526009908201527f464f5242494444454e0000000000000000000000000000000000000000000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60005b8381101561049657818101518382015260200161047e565b83811115610172575050600091015256fea2646970667358221220138681742300832e0f1ca47b71c96176e4c5db393aca45fc4aa154a2eed253ab64736f6c634300080100330605581d023a6ed155031d794bc2c3a123078dffc6b085dcca75b6c6a2a9714c4807011904dd020305581e0369e975c08eafaada3fe145043838ff3c2a2ec835e83fdf64cb5f642f300c02470348b2eabc3921035c545fdad31e0e3ae7cf20c784ce937ee8d36160fc6925813cece2eb5059960d05581e03ded46ee4a133f8c6916b9f9126d264095b6e9d522a8504e4cc4a8624e0040205581e03e2f8301e7f19463744946d074933bb1fefc7b71b053ab5bd726ce376800c02473993e5db096f8e030531da060e24b48111a8bafe3819bd2da35d0063614fbaa3dc9987ad29c4d1d305581e032140bbc9b4611f21defb9d83d2fbd2db2d061f8bc8ed4e17eae19513600c024654701913796805581e039b804d837b75d08b9fc082e7174c81eef0f60569298b9cb46c4e9c1f6008474b119f801aa00005581e0318ecbb1c02a9831ee5e9ee5430486ae9027bd1360cd9f4fd8e932cda600c02460584ffa5499a05581e03ad1e05d49e92d8fc983ac20c5b23f9fa11dd189ab44bbffdf8a6b6d0800c02470eccc39128ac0003197506d6551b948e13201746f78ba7bec7c6404eb9804b477e6203f31a4b9e660605581e03753d495903d37762ed5d2be5d5b6cc3442dcbf9a8f65bbfae586890c8007011bffffffffffffffff05581e03c23b4165afec431669313289e662b017a3430840c1475aad9598ce57300c01470a926c9faaca000219efae034abd24ad79b8d459ac435999625aac8a7ea9e6bc02f0a0acb3f7260142d0a7820392d5a746f507cd8efe65ef4b2594f10e63e6b7f0cc2a3e24192fa093494494f7031da8df9384ebd99fa3dca6174ab53d27dc34e818798367aad2349dc07b9a1e580322f5d00f701525b6a79d88252df5a1fff6e373163260e35c670526a4eed52fde037dcae7667d5ad9cb7c2b537319a54893664515b298f7925cfdd56511aa38078403390b3c1ae9fb278bde7a3eb08c7291283a6bd7c7ea9062a72869074986067e820354e8154b30eb64b0cba453986cc86c65c677fec7d59d343bfe81ba502d113e1603c200d181358fdfbdeca8b8de73ad2ee0931d150fe8520fe860ebd1ea7b2b7c1003c8c398276e173592a493dc73db684569bd7e1f7f712ae5d4fe5b94fa386a0e6f0306c1e5d69ee0b883f6d223413ece2c4c198e444d196f16c3c3cc5c7dfe0b81890391378653b423b7aae76e14b7287b334089af7b3b9f51c08bfd4e36659d3937f803b57184c374fe0fae37a95c20b330a8237eedd205435bd25e3bd5ea940d29a60303b03bcad3b6fea2b958380b9591aa098dc40e3116eb14acdcffe67fcdb6435e25030ef9da30823db09051b5da5e5c4ae715b30ba29bfed5801df127c0cb841b5e0c0219ffff032043c346e0a3ea1489979ec96512531d5fee9bace0926e5e206bfdcca7d0106603099ec13ceacb97dd3f850eeda52cf11c6d5b75a14a32a5181db3aaa76bda9de0038d94631e98e5910ec3b7990f8ca10a35951f1895abc83be1bb0c5ed6aaa2555f036a94c0bf69b3f0b904f4954bd940119d84e136c7296513cb27919be210db7bc10335ed0aee4c6223d4d7508568455f22ee43a14b11c151fe96a13ab887e8962330031afdae0a9dcbe7d0444db2370b04c41d8d895127e8af3c40d6d354f6f1def6a203545571784a8a5af60f781cc662d72fcf2df1ba7de94b30e44ae734a547358530030742353c16078a0f9b85b113796091db726e2ca7f64e6a7c5b2b8b3805a10ad90396ec1f357f4388eb63b46573e477e75129390e04d70b83915dc5cff3582f0b890219ffff0314b9957789285515cfda2fa7ade61492306063247ef26d1b1be4d69caa58a4fb0367b4d5302e44e849126a82a28b868d240816c772b8db20fcbcc2ada1738f6fb503552bdc2a13b805c8c914d0e272e7038d1cac733ff5e7e095f9a368afb35c6c1203b6cf4ff441f3659aaefb3f6f8b269e0e7b4ddb0007a1f215578880d6ff75d7f10385a5cef96e21fcec5b37afa69940ccfdc3a95b038946d72d1aa866c522dfcc900219ffff03fcfe9514ba318c639571fe3a7a6f177a29caea11738a9ad6247281b2610e468d0300b80df9722b3404fc9e453dc868fa1d213370740bf9d79fff45a7f55849189003b7701090a1162eda954a75cd82b9aa862d0c1b005ffa838d0aa0c8ecc77129d403c75c0c6e3a919010fd44adaa6c86e30cb0fc9e464b67c1d41ecb15f38031da9003482129c8e482c3aec9ad638430a12e3b7224babeeaac5b92f01b7d3b0a04c7c1036370263dd734ad1c5fd7b7124d752c5eafff3f520044f5344b610a2553aacbc103c1eab0c73b2ac350a72349df337c41e5d047e57422a8c2d3909ffc2b053c787d035fa2bb5b6ff3bbe48c56fab008c89ae06831b43fa32fe20be5a5a9049396bb8103117e33e685332742d8f2dca56e541380ba5af716ea341885570a3de1a17eba830353b061864b2234959d69f8887ac5b61bc11620321a21bdc1f3d66af9602afb62037c644643282a72e230fa0d45dad49318b46d6054e83e75995c4fcddd87f5a16703dcd23f4d613350d0e59354e21cf411e1708e30437e92f950c5f95bfbfaeb0f2c03a7a532fb7b9201e9270202ba7384c7537f57ab1cdec5f6a7eb3018cdfbbcc0750343f5781a136fc77393b529f57656d65f3db80a218a5940baf189c235357796e90309f008cb24a1574dd54102e4f9f45b923b0ffc89725efb8a26cded934f13d2fd0351082d0444eafab0c51b920858af3812d83f74f85040bb7db8b7743b220c4eb603e0a7843d7966cebf9bd14669027f6551e16d3345aac5de6d302a4f5f3d176e36030b00d0d66ed84330c85e0552ac8a14a2682e04028a16deb6e1d419539ef9556f031427411388d488007e62c0bce1d7f5241066ef9d6cf414feb3e3814e36e189bb0335f3ac35c2d44c2ef395318570970860a4425783db4ef289ad8a5450f35dff5003cd1cf56587921f3de502aaaf666b73449da83ceeb9f5dcde2c9921504422cf30034880cb582d0922fc7fb55c86ead47d21402c5e69314d50ea94790bba8933a840033dee7e5e00444359ad9cbd2d7c1f4fdbefbe04a9a4bdf900d2a14dd21576c6550310777e09cc2ea6dcf76e52a4ec8a84c1d85756857c6a675df714f2637ae4340b037fdb6f11fbe68a8ec391b5435a30f6447f93b0a4efd1091f0c5675c04225711d0321794050e049ce6ad8ae645939a4f977ac776d0c0f8be0f96d943ed331b1163e03c120da3d79673a894d1430a92f8ca2593bf646d88b04a108d0495cdcff8b6912037ccda78fa790f045b6bd1c9a16943415937a81ddd169e9c4206652e43b2ac1ad0397ade6bc43310eb9b1de936e1a11f9aea6d0f2c68af78c3e60362168b96b2e8403a0ffef1719676bbf9c4f43c39c940ac2f03a0a7c24b0cb04cce17ff466a495530385fcd8c18b36de1acb02f186018b2c23fadb29bf7c0824a3e734f81e156af38b036fa63fba8b865120dbd690fd3329b9a8af6b1fd9549b182c954fffb0f67b912d03336457f5fe1fa4626034e5e71cec8c4aee503cce11e11a1182684bf5cfd53c1a037235f9412583cb947ffc1061be68556ec975aacc0a0314f6fa2b23f6f1e1dac6032e6c7bdb83590dd1938bebb079df608a7aa2957da61ade67ecf14f2982aa10f705581e033c77e755204bfca095da2f138e1141e5b904ed1450b46732c4b692f7600401031120b587811b00285f2ebaa7b4cf3fad6c69169800619792f463bb50f0f06d9f0459088c60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083060279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e0565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e91906107fc565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff8082111561073357600080fd5b818501915085601f83011261074757600080fd5b813581811115610759576107596106e4565b604051601f8201601f19908116603f01168101908382118183101715610781576107816106e4565b8160405282815288602084870101111561079a57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107d75781810151838201526020016107bf565b50506000910152565b600082516107f28184602087016107bc565b9190910192915050565b602081526000825180602084015261081b8160408501602087016107bc565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f0e7e427fdce41485d5e890a3900fac3c891a61c8a0cb9f12beb5f90486122c364736f6c63430008130033035de73ab726f30eab8a985a3380160cdb8518beac202bdd3fc32d061fa980822403f7ee9e6496ffbe66420417341f7e9f5d4926a474fbcac12365c65ec526a84b8e037cd14a636bcef8485341d3c8bc780e435bd8b5d60f4f8894e91581b1a9fa5414030814df0d6e4020f6dc48af443599ee2a78ae3a85f5760bbf6f90ecc2ef42a0c4038c8dd6fd83b1e64a4b3e4372d3f46a27fdd60bf2965ee69bba989c43023274500058200297e113b4c3cf20cc12484fa72a7bc09f64c67aa7a20acae33cfa1d9d0acc4941010369e7402d1a60ab9879b53ec6e348364248134f5ff6dfd13cf5295b69ff3b64be0384863dc260c9402b3e228da95b643bfec22e9bddcc2bd2770bd88fc8d74ae1d3031dad92efe1979495d1fb4cf63671d27fd3984061da3f1d8b6b066e16a632e53903484f98c54e7f8b83d1016fce672b6ab165b7d6a2a967daca138f7c36029420fe031933d24e816708b690c9419278d1ee310fce0014fc1b20e9ab2a0d7a83b4d7e603590b4e91f1b70d65418e5b98f42ae1329957c89bd80429d9f3e74795ea0f9099032aef717eb96690467465b3c860666781a285cc3b33a876d11ae02320bb3864c5037fd145fd4a6e4ca21983c004c6f72b4444f9dbb0c0ca6e3b523d6b54af9fa99b005820039ac75852ce753190cbf4ef58bcd7f1e534ae8ef8ae391691bb7eeb688943d0410100582003a3a97a43ab747688fef7bffd32a438c46dab102fc5c2b4ea9b7b577e7cd42047038d7ea4c68000005820033523e32fdf1126773328172426bb5ea9fd234b8b164d2009eb5c05cb23cc60410102199010031f73ce93e55678aa4943e7ec908519c29fcbc7a2057a2851d85e048fbeae30c90219ffff03ef44bbf752e6d5a2e48ce05d2172cc1b6dd415bdf67e151054fc8a99e2162efe030937b4c1d68c84662a2fff69e689a0c560a1bfa886d08f7e39443782c7bf3375039920a2b405b137246a964829ea3ddbb23a36fa9eb8bf70c5b0bc351086eb0e1903a6c886a1408eb16b5de526a61b75c256e398ea045e54dff62e3e99a94d0bbee403a4d6f975ee0f8be6874d393997a699eef87e4b6ec139463b53e0b745a4058286039c1355ae14ede6ec44e13fee88dc785e9fabe8a562140815982abf5d66478d6100582003814039ddd568db7ceb7766b77a28cf0d51fdc82ac4ed1d7818fe1ef24e3fa04101036a1f39ab87ea5620b56858d51bedf7274208fec3575a9cfc9645ec5097754c4800582003db7d765f189355c49c54e3db30c46cbc408e405df81727e9cfbadb1099613041010058200319a63f72d3c575200e97328857870890121059bf258fa04b965e30b4c61560410100582003f004090b650f932895987c7374da89278112f01ebfe20f399681494d6520c0410100582003cba99c3ebbe22e65cf4536be8b97b6f03f59512c7eed6c5164fa5e3c9a8d20410100581f028d87ef22b829a1e24266e21f173405f2d7e82c3ccd5f1476c74e11343134410100581f020bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d48154cb8c15889afa4126b80e10dc411148e455f36bfa02198040021934e4030bf4c234d79c473f851117afca4393425e5c3f4eff99010c404e5b3ffc4f595403d33287785340973397c265ac5c30c1a0a1a251d8f47077d692ca782e46cbf737032bfc6b8f59f9d90482bf0fd8d414a89d12229c1b3a9b842eab953b42d3136ba3035aad8b9c9160ddccdedf703bf8f0bf21f850f3272d720ca44c0c9031a2570ef0037047642d897f92144c1ae9daff732035d8ddb5170317819ffbea464adb0269820304277934d8cf53f4dd21dd0eb8a45cdff2330cce572e32dec4fccfd26bfd7a2b0392657a298be83b70fcea4c0ea4e69545518109539bde303b29fd1a97e48ba0c2030f800ecd1aed86da0d4e85fbfe6454e7004f91416378a29ce728fd257b350f8503073a5f83cc12af6ab2ba8c22a584982e1a86cda2751166045827a621c7f2f0de03f5a7c54630ae6183615e1821a473ee3400c56fa05138083aab29cefbb59627f703a52eec18424cde56d3b4f978fbd1d1da549fffdbfe249eaf888a64e0f00294e0037c71f21a304fd05bf7af8361168054ec29389ed5ae06df220261f0ac5a16ff3c030e9794d656cde2db36ac702bff5f716f43b33376f09f5851ffacab8863459b3f0219ffff03ad4b7a235a4ae74efdd6b4688d5627a8b85f83471d50b0be1c9e3e8481034f54033c4a5c78b845dbfea534b7eeaa987ace4688fdfef00a3901d5942deb2c5df46f032cba749cf51b0fb5be510864ddab09e8e229f6316fa1d9d5d0fc94471ed402ba03ee6765f7231cf6e40a7b9c364ed6e40815f1f5e7b63149123c64463dde1ac4be03e3a83a2c7efd5de433bb8d26bfe7f8ed1e336169f777b03d288ca31d089b193603fbda8a22ccfc9004023921394e1a9e6a1da8f0b5913a3fad62c69840542b7f1e00582003136bc46006709bc945efa336cd1841a512bc5ea37029658d1403b225058fc05404c04a6dde1ee721e6864579f52a0897c6f00a23005820034e57763e7ae1c78fc80c740e6f7db1b3891c10bec05398d9f52cf7430a2e0041010058200374a463ec453bb4606d9bf17c55c3a58a7edff3506944c45865eb4b0f1e50e041010058200321de0229796b648596145ba5ff35f13df17f9068733b564022c130a4e8c01041010058200320eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d0544c045482551d0ca3e6078261ef4debda3523647d0058200368b1fc466839b343d983f590872c4f3457aa807ea87cc944dd73d78b37b2d0410302191e060308bd78ffd269ef2e8e0159d168c7f6ee668f0c33cb634e1746135f6698356f80038882edf79deb235242e522e36835552e11989097d9a8d63236fe38753ef20d23037e9c498349564352ce72e0eaccbb6871d0269c7d1f89c0822328af4fa18a7f0303c4db10527732ae40a316fddee7b9fdff307121f65dd31b3c2ff4ad1f98884b240347e6068583e1acbb40711f1366942ce5e1095f849e480e99818012914dede2ef039579b39e0783c77484bb1655d4c0ba1b493bcf6b1b90a8934047c61cd5d2636f034a819b183074508bcc9ffd0d715ec561cbf00642746fd848a95b7528154f12bf03337ea84dc38790f3c0e11da0c4fdfa167b7a7d058688842aa4e19a467489ad73039da88c799d8a5573478fecb49b4bebc0f2d60ef75efac0ba87f9202ae1aecd53036a87fd001fd04bdbe82a7495e90fcccc5cc8b41b79217ee346b30cf018658bc40219ffff03c6a413834df4a38273b4efc9ea1179510a960982bedd2da0f02fe5eb85ef7b5503cce614f05b3440b309fdd8e2de4e0eb2bcc6c2111b824a27fbd3c7036e0ff1b20318f179fae9828d48c940e71f8618dbebbc3b06e532e54004f677361bdd9ae5a50304aa5873f81f927751d9c3430ed4b89cbf6cd12f0d88f37aa5b3fc40db44c65503ffdcb274c64cdeae44e83c2b7a44147cb0e2ae1fe8751fc5c71c410c74eb614b038b7e933c29b0661f76b6789184885eebd835c1565ed7a192c7e1766d8286278903abcbfc771635e309e0acef7ca2d758572058810987a3510483dadcbf393ea2f20396d3a6d0a42f7fd578c70ff25bfc6218353eb9e311c23fac209116f6dad7909803c86c8e3b2a88f54ed09a2b6440d0476b0625a9bc6d23b80c1855febc3674dff3032c46efc9e6079019529be29700f4817873c86b0a845d07d794b07bf75fa9da4b036d65a19f6a3de27819dfe77ba94a47066038695b444dda3082168ed4a9072dc0034256cc6ab0edc992132e32688c75f68cfb2add2bde52daf9e2132f6c2b227dc203577503362d49ea4cf603f1cc2773c21bebb11f443dc5b9e91639bd7e9506baa30383676c5c083ef4fbd622d2fd0db3903a790677b4dc7a8a0f2debf498bc1c1ebf039c9f0b0631e6b62f5ac2775736093ac411156c06ea4ae81e3b91e2dc29b2f522005820036bda572c02f81b3297582bc0b88e4e2cf295ea98aaac0cae5825d82ba761b0410100582003b6416b1c6dda4527f28750763f1ea5163137126e88ddda663a281868364eb041010391ec21fd96ef7eda4825ed62e217e126a6db9e573f33d16544a8868873f1ffa5005820030aea7742f8deaa6423be84f12acdcd648c8a8b4af7ce73696f9cacdfebfdc0410100582003fb28d7090e3ff8591fee5d780f4f7e737e51acba916dac9ec56be7fdcedf70410100581f02cdf5a2718bfc5ef12b82e9907f290835e05c807bfdd76ab22556ae2dcbc8410100581f027419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c74102021902020219d1880219ffff035b01e2fc3b911fbfc6bae40c570387c74eb0681d7ba520895648ed03b37d2deb0313504e721c6e83ef421a45e7490b6c52655471d9c5170862dfdd8ef9a7f42f070393329e31d5ca8b92ab36f47c75d6fd69b8b1a953200e0d32c253b2a57338e3a1034963cd9934761e155b410020aec46b130c498cc14ac4f25f83f3bd9992145e880302e6bd75da3b0525e1beb355140463c5bcb6f416b6d3d33ff85f7b2594806bbe03e67f90b8d6ba4799d4fb98a13d69ef2df9b77dd9a8c05467dddfea29ba57b833032e18ec29fca8ca0ad3e26089f42b01da5a7b8be61440c39dfd5074623fe5921d03b888dc8256b057aa01af7947d258d0ca6818e44d4d268bedb3ccafbb35f8449303b8939c9e5df95e73d4bf5e39c8085f7f5f89bb3c5e630f0e24128f29e2aced6c03795bd44781898d94f949ced5c16dc1ad181dd2d61fe0d2673e59ffca5250705a00582003bc3c597da8e786d2139a58a1097c788f7f0da8c2cd3d4d775910e49c561280410100582003911cc3b2a6eff9889d171ebaa66b8d76a454b4a343979872b76f972d14f4a04101005820037c2c86852c30fdb9f98c576ee7c9106f8c8003ec38b1af6e7d7c9ab3562ea04101038943b0a74e9afbb5642a18dfce3122d34be03443847c6196b6692ff1266b719101410900582003f333b67cb5b3cdaa1c9df1947d19056ab0fa6db96ab6882de5d4797d3f34d0410100581f02ff92932bfcfae099a82853c8bc723a35c4f456cd5651a986c1aa31df5a6b410100581f023ae0585af2f346cd997ab875358110616c8923cc1afa8815292fad9e71254209b9021921000219046b03a256c43a3fccca9287931c2d6f7754d6bd03f2b8308e066b6f2470c7325742f00325da6631e311e2cb1963b221ca852a1d26f422e5ec2aa39c4e02bd980aa8a83503538450b6448991f475f2154a48d1c1077e8be203ebb6f00bdff713d571fd6e6b03fe2b139536d8a91509d7003f6846f9412b770aa9ffbdd52e3d6ac37860c05789039a3d46e6e47553f1aea2f743685f6a8264cfe5935addb150ef23760b3b6d8f6a03ac360f793102dac7cb8de6e05ac5cfb16b10973c299b167e542e5f40b0744e670219ffff031ce90dabda4630b8fc44897620663248e4326cd1d5e91868b1c7373538290a7203ce54764aa5c02adf9b1c6daebe808b7476de97c57e22b748565e42b32cb648dd03a3850f273d798b43cdf893ccd7e27229282d61ddc187171be0db5d30f4f185d003ce53a312a1b1b79d62e7e4f08644bf5c112563200eeb1c074633f99396fbfe2203297613a2ae5a257a2fb093c23c5a9de1d01da351c7bd57796f5222f89758b3bc0219ffff05581e03a7db3a8a03a7acf69073aba4a959aea54bc296bfbaf0a6a758069a6cb00f014803b98c60c1b7000019088c05581e03b4b8d71a15932c3b77f5c7aa910bb9aa8074d0f45b4a43225f4a0b650004182003d89f1d4301580e6602c8b04b6cecd33334d79f260b2e2a4f8a61c50c5b55a89905581e03f3c48d3ecdcc82e290f1d1d87ae5dc91fa3b5d7a600eab0cc25fc7d0300c034686c7d1b9fd2805581e03e91ccad4ad85c9859da85162683f0bda4adbe9dd53552061ca80cd634004070219e24303058e608054821ce2dd43fc6ba56db5d6e7431f7dab491fce1640b6337c6d330f035412d9a5b8ea07526a65c8c8c9ea4e237e9258903644c6f5d6e7772c63534ecf03d7a8f48e57544d9e6f198519cc3bd8c7793039e9e5516b1967265d86f334e74803c19782d6a4db5101820219f6d04868663e3080e6b88623007825c36902ca48a703eebba96b80e9b744d2c72f59f66cfffabffbfdd253e2047267216270c4561b6e030bd93a249e8743e74e6a131fb5be4d3d02313b78cf5bc13846df2fe09cdc498503bf410288b10bc9eb9e7eb6fa614a4de1b273c7b2f1bffb9b05f9e76aff3e9a73031181aac0d2ea947a66575a819b832e2173e1547f06af27653a022c18c98f6685034f1f3a58d6084625bf78a320983c56b839f7efb51d9b80dcd12aedecc2d5412a0219ffff0315944a804f138b1e71e70efcd156ec84646885c7ae6146158aa39637a943c17803bb40a2f02225688423005603f356cb89021efc106adbe6db5c9f910b9eba2b3703886b81ba44bf9f47a7d031100e097d4306dc8b197969f4eaba697f9049b394d60368d0e63b3f5e6dde6ef17975bd093f98f0cfd13c5c9e110accf4a9e67d307c470391b26b63470ce1dcf7f8a753341919d0bb5413168b624fe4bd42097d0e68b242030f45b91c00c9c65f70127b6e4c2d87cbeebfdcd4e4a5400781bb00b4f07f9fd3037c1e0ceb364c0228d112e4aaf560db0160c7f83b902654940d00f49fb21b15af0219ffff034eed60beea3dcfbeb970409e4f5934b11bf0316185e971ad74423efe5b53023d0328031c3bb062ebb8d8eb28e40956270a0f67acd21d215b8b9dc99fb5cc2a36b5037f5044114fc0c676a2ce0d484dffe460fc7cbd0cc3f9b53ce91a1aa08fc8b77103927de44fc3aca69b532e250838688d71c8adf7142d7c1e123dd20e0a4de85b9a0219ffff03d690ebf1e448e4713cc7ce22a4d2fc78ba8f2f603bcf67f7e5c8ec63da39403803ad0a73873d870ab1c240e54b68ef7a681c8ad91a9ecfa7751e08095bfc612529034d5cfd85644e4249ebdd01d7ac907984a570ed30158ac787a3fd425cccbb6d7c0219ffff03486e830a25882691648eee1ae3e234aefc53eae784ab66b56ad73d6ca165b44603858f4a1a5f3924012fbd0a8b79293aa458978aa6a392a6fcb66a78752bb0964903cbda79b173cc0d62bf2b389097f9e4f595da3f45d4ba3180912ed221b2b96981034a8f374048c40bbb27900f655337d54964875bd4eece5212d58a4179e5583f0003a42c6f7c4649e27ef925fa95013b3a4b830770f6c48a1651f26eea7237b75d7e03e468e435d009727367a6e297208461c74708837ec3cc3d7193e87ccb18dfcd9103a91bdfd097632bfec820946304c351a2869bc00ac02ba903763d5aab7a6235d8036cf720a1836a1c88b83ccadfd1e332cd9d288ee36fd14999952a49ddaf9a098d03e1aeccfa9b3c2dc3484de4ca3e1880a7247cc7a7d2a321083d35c8fbd8139c710360b5d5d04afab1b310bd4226a759d1f18304467d61762f30e96b40ea87ddf23a035ac6c80aaf53a1ce4808a95ada9f05f807f4adc76c25abd7e7ccf1e55036ac02036b28f3c434a9b2066edffc86578a7a98f7c00a4315f43d653470da54c5ec3856033a863fc527ee5392f169dfb25c0228887879fee0fb21b008ae031975a8a6292703afa2770f37636afe4167a98222929e4e813b4eae8717df38e087a546906ae3000388bf8d7fd705b919b18ffe84a2ec7c40c50a1da152cb9d5f8d73c4107d2ed53e037fb215310613b4747997fca468641084d245a5cea764b36aadcb9765f3a2c7b2030fc82c530d1fc3eaa1284a9529283c12646fb5f7e002dab853e71ac0355e874903a015dca088cdcf79fb6aae611af67041d6e03002032652541635c61eea6b4068039f6219f08b5578e81feeafa005a92807712d2f55ee03d860a6ed794f7b84318303afcc21ecbdeb0df767eab1fc81e562487cb144e90359bb8fb49496eef5092a5e0391e0707c4d9fc7c14f82df4d9ffbff4fac10d790b04804c7d9a4f29a2ebf31d803748c5f42f3869b5067df02e4314ad8624e9c93def979a96933f8b60fb9e721a103f0fe69825f7ca78d8cc4ef7f842f0299293ee35f3cf87229a4064d90f4b2d6700364e9fd12dff337238c1d2216138d46d7bf6362303d4fdda1b6107d50c9e58d30037b0f519de58fb5b35ae55c0ca0ea7af77d66ff863d7526f6270af5c6b3d7e4300339d29fbd1748ebca2c02baa262796fd518a414f40d7b5fb75634eb9c2d002ae5035fe5148c89129663ad61aaa9a0ee149f5fd59804d558c932e511ff54d37eb6830347a7fe9daf804c9c3910d0d2d5699191e42e450f76d44c1da345c79fa54f6317037dcdf3f6b82f9bfdf0eabad568f6a261e419867ed55871202812fb7ac94de3c9036eddbf41d7aa5718894dcea5c4fc59a86996a610f3cde8ce373d822440317c56031e8f4f4e98759c47bf6927e3d3993c1d856613b578a8fe2b25d92faa6d9dd9510306f760adbbe069599a8112cb341ac37f57b647a860690b1bb5b2b7cbb5ff296b030a2e7262cdabdbbe2d941c4af6d55df47088b116f9d12fe019018bf2f053024303f445385ec046fd9ac870a04b05a8e1ac37b984b2fab8cbf0cfc8ae493a04e55303d7eb77dbb2978f4666e5245b879894d5cb4d38195ca916cfdd48347e091d67a105581e035b6dfd9b4f86e5894b2beee5d4c555e54a7bafe822895dbfe6a35f15900c0247043f833358464f05581e03be038d21c99d43493b14b6bceace6f5170333094e24c49e6088eb64060040204592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032033a76ce1c86836cd88bd487073102bafc6a0e1e28d6bb1a80c9b58af591b17db403b1ffcbdec1bd8bfb92f812b7f0254f70371521bed726884adf34b9c80bac3d96036d67c9602629724aaea1655c7db1eab95fbb9fc486bc7aecf549a7f36c6840240347808d882bc3f7026e6d82070004eb2ec62e9d5e815f5025abdbd3b25f0b31d4037ecd2fe03f983d403f7f7ae14e90d7b541c44d72d333d6a6f5819f3385f6edb1005821039d67df7326b9572c8e1a4a60b766c22fbff7b75bdc3b762a027ece816ff260d041020058200214b977430b47541a2cdfb12351b1fb6d5008a78e0171bd907bbcca269240124101005820021540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af500a83eb454cfd033472ae7ae9d3c185c40219408000582103a7272abb3b9182be6d5397ccfe0a45f650003a90b8444e3410362fae9801b320410103aee03ef2e3d1fe28dee161576778327f3156b1ca894d7cd71e67387af80c2502030be0ad5cfe760b9ee3bfa25f1241b3830193ab0a0ed9987ae70749055fc9183c00582002c4c6e439a7a86ba91b4edc1ba2e0ae4f1c6e4ba8a192f2a93a3cd134a8f3454101005820026cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68854c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20218480334bac74d0789582efb8c07691d74e6cde24405e387eaeba9b5b85f4a7fe16e1900582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b58205db856e4ddfd5f134c4618e49f57b333ba7faf7970358949c53785745c877b0b005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8530321df4810dfd9cdd27e1c4cb27c252616200c02184400582002e6800dc77f617f8a9a9d1a7043b89d1dc047f50a5da9f2fa94ce5f4c048f704101005820021707f548b1640482614053515b0d4c464c3fc6b494e34c9fbdd17aab13be3e410100582002f081ab73396a88781dc0ef9e1a5bebaec48f131f4c1eed45a2db2f0e811525410200582002c9b4c7bcdf6ac8ce5530549fea345069b53df237a540f9560c0953979811684101005820026966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c741010219904903c2b264573a7f4f6dde1d60c58d7d315e06379dd115b25f936d0e5887ce7ae5ca00582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5d9300000000000e499e580b4d7f83c400000001df7cc3fcc1e0a6f1af8200582002e63328b4ec1b5a6a7cd393c79bc4ce524a98106986e1ffe8dd3a41e90d343e41010058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5412ef10a4fc6e1ea44b4ca9508760ff51c647bb7100582002875abdd880f5056bf9fc2eefee899e474e0130ec287cf83c340a2be5fee3c34101021904680219ffff05581e03ae24cdd764de687ba7faf42d79482f13974bc571333a329afc066e43b00701192c1d037236a62287cf0950a48fcfa0433e5f79defa79e3b3d4beb145edbb7623b6d48a039914a80f6ebcb59473ea060b7a5b6dd89c18ca56537cc19ca70f4a1da90ef4ef02198df603ec91c6b3c4b35d88458f39168a2cbac9a18442fe31efe0b87d77c24d59b18167035cf6c80c6cd2967bde16a018bbc4caf01b398f67ec79e85568a65e11c8bbe1d30376f6a05a293ef5535ca32f6a1b08d00233c5ce21970c18a12570a8bbbe07beda035d509ab5f6684721cfa2cb0218f87158bad8afa5bf44ec70fba0695d03a2decf03b4e3056bdfcaa6144cdbe40f0588e766f385bd8992387fc99e74c076bb0b76d00368567b039118a6bab67d81560837f32efdb8f500980485a8590a15d632a2875203c123e7fa9f5f1d21d4cc9e97e5eed76f0b4b3e6469960e4c5bbc2204e62146930321c4381e1e167923d41838fc5b120959ed56ae4b655f5c109bc95a67bb9d01010219ffff03348448acec8a4d98ffe1d29159d41673928e9523b4fae67f18ba370cd183cdb80374b761369f907f814455d3b32aebabae9c1697fb805fb21b6f2688c8d415b6ed0219ffff033a30e483b5a9893391954666efca108a6163ecd3c72c7d8c490fc3e0bea91f16035c7fdcc7b21e8ef6e90523c84cfecd4d12d3663d601673f8e72dfdf7407f8c3e0318ea1f7dd657aa045ba2c058fe1f642e85f956c16216774f8aa6f85698c6222b031517fc57183656207f19c88c1292605d311709d61611d2be1141db198b04570a03574d9af37bcc9d78d013e7db0bff1cc861203d8e81cb690a73036e5a2d56be1c03efa019003484277624c03146255ad2ed40f9abf415b277fa863a10144454fcd5031941aa03336e4b2a5867cc69263138e0476ba7dfcc62f85e20ce019dde2b8cd60219ffff0397dae3b619d08eafb739e98b627c3e112dad6bab0560a5ac0b8ca3a41306afa90310ee23141731ffa5e73c721a7e257b7c84ea31a1e6d0fdae46f154584608145103eda8e22551ba17b813f12504fdb959c99f1e158cbaeb75f6e2c2df9b0b1e5a9b033d8014381cda541d3bd0f0a77b72602165dccfcbf8c948fc18840a1dba532be7030be835cead0a9ce40ebbb9717a6de586de5f2638320a0e7271499379f4cb3c4803c0607ccc7a1858339186daee57087de4487e406743ed8951a379688aaa81f325037153497cf6cc81627a27b98a8a92c6000038012515cfb0c6810a35da843c4d6003770eaf9c68eaaf2f1a52b1cf8ebd11b5d2e9cfbcb98db0d0f5ad2d7bd1cf8cb303bf9b1982de5e0fd191d73ee0ba0f7f076e96bb59fb06412524dbaf6863b32ba5039c3aa62ce4e86b5cf5206ca69272bfdde57e7db05d5ca27ce483a231c51f913c033284216d364321c4467fdaae2202f66d75457658af8016df1683bc6aa899ec070385c58552d0a75b27c1a3d093839a2ddd7751be225c1a9361175ec479d3a310fc03d6eafced3945fb99e2694b2be0e928207dca93e4fb971cd18e060d1fc2cc46cd0374721660d7ca9199c647648efcb050eebf5a64789774c78561419cd97bac544203cf3697fc14daa3f7b22a37cacdd7275a9b3d2627f0f6cf29330dd39eb83373d00317e63ab664943283b1644af8447cc80a3ec9250ee58cb3b79b777b721bc10853030f3da0e6dbe9614f880ae72b508f417fbb92d9900a55fd17e20393572129bfe903b56eb9d099d4b562e03841bf79952609e49ec9b8d091f25f5a8ce6faf3c7c4bb03233f314505f4f1b8122913e683d716250f213981ab116828957d856f7a71a33e03d509ce3ffb488fe36f690faf1aeacd54bdf681e2f54e57ae08bfc75f126d20da03e0e6795a420c4ae90867a846d9435b64468c09f0e262f88d9bd78d2339bb5ff4034768790cbdfbe327579d97ec06f530a85cc913b206bcd0a74042a213c3e4877e03c4ac42646f8ab15f8aedf4c06cc473de612c2645e71c3b8191c2348f62d42b5503d03c77fd0dfb76e4b0bc1b04c8fa6f9265197bf8b8a1aff7d77d5d74e4eedb5c032d90f902ae18c12c905bb5ebe9f2124531a97df712f4e2f58a0ebe06a01a0ce6035fa5a4a6312c3ccea1939c56cb5655b083f4ef4e43d0ffada3d322235af5edab03e7644318b87735129dca296641fd7f0545e1db53180995ee5b66b6a3393f541403382df697c3a0c7d44c7bb29d26d3ca04ec39755f48f1374cd9dfe0c96dba586e036527e85a692e51c10a287c2867c20c1df5ab9e763e317117c10e82084d214fd90361adfeaa608470f2ce3e443ad5c348b7d194ba458a9a25aafb7b7cee78670f9103abe651be415b56018097452f4dfbd6c69f5409970dd1e465c1c8f9e6a0581d51035e9b2ab052f54e4ffadd1ea82f0f80ed6df58b7fa2368d9229b411b80c9fc6da039ec4fe1ab0e3245c39e8254f968dc84da8f5f6d860f92192af56e9cc7abed4d50342a4d63a6f0720a84fafa0e4a6500d345fd75da4753445436a3075c2892103d803bd1d49dbbf04127ffe917e9e47f069bb9c2d3b1d07886d72f3cce1d02a76acc1036a2cb0b85fc81953cf7a7e2a31957d919cce0ab1794486bd80fbd18aadeb16b203fe6b6b9e95794bbc3da24051f6b569726ed7a09f64447ce036c0bc879492fb4a036ecbb348eaf02be60cc4cdfcc07847699c08819508a0e4fb872a3d9a3a7f6dd203bae778847537c4d8a5935f93c726337e62c4c92e0c49878f7d06692cd26a676a05581e037127549c16dafc93c20b6b9cd7521f59786c994366c77b104559372890040105581d0211c07fe7eeadf576312836355b07c7c48101d209343f381a47f58bcd0c196cdc48cfa4dcd2be98aa7105581d028edef581b6d386b7ff32410d79b5ac2f6c784f12c15d30ae011b79400c024745c9fc2e5d056805581d02196dc88abba95289d93b6870a3eed82f28aa47bdadeaf6e3362192660c0e4731ea8616a9a13802191840031d8dc56b606a7f598c56bea747677059265bbf0f4b28f93ab5f466b9cc287a51032c58ddf2fe3fa47811b6988eebce1e42b8f0f1d6a13748ac6a6c07052af98c8f05581e0373003e8f64e9d39a6cfa1249a18d2a228848ce2aef89015cf01b9ebbe00c0146bd1f296ce4f305581e03cd3910046937888c7ea29a74484f81ec6743b602a7e9818a6dda8417500402034f51a88bbd3db931dc32c5f945d0820cdd439f5db72948d4e00b298f2d95dec305581e03e4874822d55ebbc8ac26b2be6eb5844dba098a82d4cc51b43ee2566170040205581e03586e1cf8df9b4004eb0eb4ef4a82047cf03c394aaecff0cc55567bc73004120219acae0219ffff03f9d49a79434612bc5f443d14dbb744651ec69ec018d58e460294663034e4ee1f03a948f092a37c6a7119bd93d783425b5a5a6196e5137b57bd3e54c72d19dc9aca03e61f2195858d2b9032e1d09c61f7912d19d0a0314a4f27e16bcfbbf1075a6f3d03a5ac3048d4e4704a5bb16aec3e3fd91a5f1dbca05d1712073dfaa3b77b57e919036ee07f4fc632a09836c547345898e19b818b0e61317ae301e3fa29a39b84cb700396d2f506c04e9371a979b579246153b8758ff0f9d7ddd90b4680857d245e9a150394f1aabfd1844c627094b0401f98a4840ef5baeff46f0dac9beda702ef1936ea039d84a6427b5f5460c41a039a49af1a759d9dedc7b62295864368df1e04b7b53403cd7e785bd4174dff992d06a8f77317a976791c185a0f3d163e3384f6fc68913d03f15da92058aec517494f551a79d98450748b87b0217ec5ebc36f1e414df76fc40219ffff034789b8829a16c42c8dc7878b854a6f825c4bf95dc3ad5adf9d0fdfd01bf2d063034e5cba37f3c4867a2e049ed260ea4af1e1ae7bfe119423e6cfd64743debe1b0903c4ad04aae5b8479a95cf1c1a8dbebf426448b5a8496c30dc58f12a2b3fb6d74603bf43053d5688f9e473b2ac6107f0b0c3ec6cd94cb050ba61ced341f4026943840219ffff0317eb0cc403ce1e488a87ff623f9b8d318f919bd3a8614214544f27c68d2c9082039731d7e2749d71bbc1ddf663a4fb4ecb3753e759677b1b5879e5a4a002223126031c58e5f6cd280d0a829b35497cad0b98548b35f157214cb6583422e6058cc075036ac50b7c46d0bfde48bb4226a4cfe1f8bb238d80c0460a6c4a166ae0f93a20f30219ffff030a1b6a13b5a17a272418d4ab5de7ca69d7f1bd096dce17936d7e57148abe1eab03c660d94604872629fb7e6916dac3caf7d79d9943e7fac1d4ccf4ec2a77cf151703f561cb7b843e464e44119db5610835fff99f672052e4e423f18cc8e324fd7dea0390a72b6d853843ad5adb3855eb2add56a31f4b6e06b7d74ba5d4133839dfc4d20397aabe8785af66996f58981e88b308aba9f3236df1cb2653ad9ad82f0ffd8bed0356fb5b9dbfb1c2c287a3fbf3f134c2fc5e959d18563a46a7d1d662436239dd16038a23b53748643f89d5ab66bc01f6e7b0fe84214dee8fa89044f4d42ce41061aa031f15c198b8aaa88389e4f75b4b07d2b0187dcb85a06c1c172295884f459449150337d6eea844a9592b062637ab44d2c3af954b2b383deab6221b52d176152ddf9d03df0a8af7cf72b5530ea92d70ca92d262ee021101964063f9d232af415761acce031b6ddaea04169b2a6f8d6914333127ebf721734556c99db3bd914b99610454e5034ddcaf6c41d5e8eecc70670a8f5bed4e2491d65369a2d49f870c034bd884b9ae03cce878c374276ff20ef75d5c038a54fd439de6453cca6131556925b041aae8a103e9a29bd105cd42248b20269415986642583ee2a1ab172b431234bf571161d70b03fd1d2ab4f3b452a6e25f763e31a7279d7f101706128049287269659f65a7932303be2a4a8bd8cfba41c93935bcb8cd6c90c244bf57bf1cc7bc28eb264ae99bc3fc03d929731053a400408d3453f73d4107fc045812ce55b2d1aaf9f35d83188855be033af028fff8d8668888817c16f329d16fef054b3f5bcf6e2e1a3a22c10df995bb03caa7778467e229cbd75a3e8b288aa280a833c2f98528c4bfd1dad28ece0c4cce03af25c65fbceb0be121195bde41744b2bb95b8281dcd2c9a9830bb0e7712c49d0036d56ab18d3d39e2ddc814036aaa6fe4446d59f0f10b7bb2df9e4ddd3bbd03a8903bc0705365b1927884f1e7824dc61646050844a7e53664b69b2b4ab0f61b25d4a0333011c880c0fc978fb228a7405b205b9d9299b49870179474dd32e70c72ca12503b5216da70b1a12ffa7375308eace0bc7a3759ff11201921a6e8e6b6b41db624a0331345818f84b93d70bd1e79fe76f22feb20a8975ca1cdbbdf8e4373be8833714031440020b25a6ff9345f6e81d99188e6de435d7d61baa5ea861268408a995139903da667b5a0d6237740c72e071b826424a6f60a13ecfdd3e38bdfd9326dafd889c03c615663008a9d105a854e1c847d39612bab97c0868d5ac0cc62b7ad1d5e6953f03c5680c64f63600becf7197fd8d4064eba95986ba602ff78699de692cfbc7f8fa03ecb294ff5a5e0b90ae35ae11962ab5a65dd7529da19e0196897a757e7cd8377303736a9942c27e22ed8b2080eced4f7241378af71fabd72b8ef9935c0316d1a3f30381ad2bbed8bf7b280dcbd0dbfcafbdc89f3923d27864c05eb5dfd37ca031b7e203c17186f4685773f7f914235e7ebb847a853678fe83d2a24532bc08e27bb39fbf03eb034b454d4534cd02a6d6a1ce997cb3c73c177bf39d8a5eb042336c06ad491903ad885bfe3d29b54bc2b63a8d471132a9d01de68c099aa8fec757f109a826e5920313d53ab8f829df0a54b72069796b7af3401fbe1b8327594391963ad09bfa3e9a03bbbefd09fdcf14ba7eccd190da11e561247e1f9102e7352ca8ae5a1da2e46b36039cf4100dc54b4bd5e52ecde8ef8a513d1b824d836da0dc1cce7f34b3b722b7de039a8221a6457daed39645df92ce5a202121ac0622669767e464c77de0b0b034b805581e03c65a629b76141c466e9883b08331eefac35e97b56fb7bdae4dc9721b9007011bffffffffffffffff05581e0354e3ba224c5350facb8167768ebdcfee3fb38f91705db8b0f6eb6161300c01461c62b546cda8036a68a9af0124be3ec6f39ca71b0f639153dbc573f4019677768282f8370f6b0505581e03f8b4caa08ef316c570f072053925d1bae76a156c7f205bae6644c850c00847eb8b7fac9bc00003470c2da0a5542d9628f43c0b6f1761a9c0f232446096eb51744e6e0a6c1b163b05581e03982dd88c7a91cc6f3fa2d20c2790fe50bb632f27fe620cecfbea107be0040305581e03bf7382c75051086d53fde63ecc6e61f2d1292ab4c739a12db1b8b8fa400c18a948034d506777a1e4fe0327b4f7368917e5efd7abefb5d5e7ec19c28e0184d4004b87fb29e756590cd1bc03a730bf4ae8b8d79a8c09ab8d29b845fdd4c90f497f2b15089a8c5320d8cd7d9c033fb806512e1173aafae00820a8d0d1f4fb1c808869ff37f2474b0e6001dd957f05581e03f29175c0e1bf3c7773e5330f430db112841897c454af28c1a990c70d9007011bffffffffffffffff03e3581c0f6e59aa2d33272a43e2e72b7e1c0ded2853290b8b75fc80c95491d8cc0339036d12e3356c46b3cfc9a2daae309aceb89ad6c2ef7ecb053239509c20746c0219a67f03376919d09dbd82443efa03240bf8b6d8eb6d926754928e9580e9ce14629055180366e1cdcd4b6b18b89bec18531b6957e0fc44e2d64147891cc9236d378796ba0703b41c111acd03d1cdf23742399ae3e9e23785f7d9c287d8a87a1d93de224c149b03c5267ce2c92e302d820508cc34a6155967551b95e01693e39788fbd241da860e03b64c1d8e0c49789969fde3be6e5dd613ccd70a68f5eafd9032a73e57ca87e30203c2081e86f169f845d509483d840b37029554051ad3ec5c20bb1005409bb715730219ffff037cb996aec25f96a0a367911734709750555faca413ab2b241c81bd81b253b7cd03b728267476e37e6f8f41226ee5e861465030969808c2a7b221865b3697148723038dd7ea80ccdde97b8beaa75fba213a3f3af888650909b45a0f5c5e768d2f48ce03e769666810999b74067ae3f34b9521d24c2c98184df4328961a057aad89fa4ce03b1cd10e37b547828fb923f6671b930e59eebe9dd24e92f21d02246e3c002b0140219ffff037fe026bbe050bc591ff95d4c3a4ed3b12dec304f8b3209de3fb3ff75bdb76e530219ffff03827972e534d92d9071e29d3f5befa5048168d3950199562ca25621e6d9ddd9ee033fd3ad4625b09f11898497bffd0a0231641db061853ef71d3bb4183a15d243ca030a46c1d97e491f6233b93f70d5087ec2c2ce38764ff1f1f1badaad33d59f12dc0392b0690d5c0c448dab9ad18f8a20362787be5907e85f5116fff4db6f58ad8152034aba344fb938979756ebb2b8709b6abc35d4c91457a3f36b2250953017dd0c6b03c27a53e89c358dc8f4a941dee0f3d8903dc5759adf38e5b73e180d72c6c0757f031cde035042f7f26722afc41b10f1e44eea7ba9200ec35ae7d590bc86e521b78c037fe537343d3cd23239d94de2cbcd6418fcc1821aee36062104e1c795c352463e03782870cac4fd8a39710acf9b8fdeb8d28b3089bf4b54d0c7b7df9ad7fad82fce033eaab441e41c32eb22177bb5f35846e22cf9969493428e5014773d99c9195982031504be9854e86e1086bda3bef575ed41a5f7cb0a9d509e74265f778331fb66bb031ec70296889e36f4850e430d38e0115c26a7f2ce63c782f00d7d2e12a0d74e9603fd6c7a01ab3fc5571ef5244663d0d69809e143633cbad48ea2dded3700716e37033bb048ae42a786b8fbc79d61b763b9f2d5c551e7a263973a8fe12703bf7b49740314c69fee9a742a3cd3f4d914cd88cde184b8d35207b3473c4e9eecaa20b50b0303dbcade031fff001bf45597a50b26a8a0396d4d236d0bf90ead692a299c496ffe03c0d906315a3c80b8afcf2760382b6d669566f59862fdaf90c2e393bf36dfd62d03be45fcbedae4ad9c19a91dc44760052d84d6bdaa4e3dcc8645e9a0fd20ed1b4303ab0720fb492e1c9307f1c9c9eaefba6825fc0e9590c06711f281a3e1cd03d4dc03ff7edae3855746a4fa2e02509ceee1a1a644bce762ec64009afbd198d79f4001037d69334202640e551d25b29ebeeb67582bc2d24c96b2f8c9ef064190a4fbd91b03c1b857f60e7c0326b1f602e88b5a7186ed3788e74dc92d15cd9d81e5259975eb0354993e655348ff12aa90b4257927d0dcb2a66dee050b24a466763002351139a9038d6c23dba200eeb896721683b666745819e49a5656285f5d501ab1ee88b1d0a8039d3135b7ef933c6707f2d98e12f046d468a716a2f33707e21435cea70a789dee0366159acc5e8cedd9f82d6ad0f136aea5f2108c7ded5ae47a129fe563a1a87ac7033115b867c81468e73ff36aa1ec09fe4e65f93493d7720e0f7cb265ba6e0e6a1203433c23b2a2981361ac6409e713360f13689b786a12a1afc52b190f086bad4ea1035a100f6e4befc5c506e93fb550bd7622089d66e35fbcdffe8612e0933534fd5c05581e03292ba201b3e1d2d2ca90af51d373b993e8a70c9ba645cfdfbd181c98000c02450159b4fa0005581e03765305326f1c6c93e1d7baf40e5651e2bd8a1c4ee9fa22c64b946d2400040105581e037fdb1341b9ef4bc1703132d5268365ac1c12f91d65926c0c1f64e85fd0040105581e034446f46d712af48b8657c2188d72e4680d5a98a615a73be7a95792f480040305581d0272723796f15d24686813747e021a7e7c04b1a3356a94ddd68d3c44330402045916cb6080604052600436106100d65760003560e01c80638e58736f1161007f578063c5deebb311610059578063c5deebb3146101f0578063d6ae3cd514610205578063ed2b40ea14610227578063f2fde38b14610247576100dd565b80638e58736f1461019b578063934746a7146101bb57806399178dd8146101d0576100dd565b8063715018a6116100b0578063715018a61461015c5780638b034eb8146101715780638da5cb5b14610186576100dd565b80631aae9eed146100e2578063419cb550146101185780635ab2a5581461013a576100dd565b366100dd57005b600080fd5b3480156100ee57600080fd5b506101026100fd3660046112ae565b610267565b60405161010f91906113d1565b60405180910390f35b34801561012457600080fd5b5061013861013336600461127b565b6103cc565b005b34801561014657600080fd5b5061014f6105ef565b60405161010f91906112e8565b34801561016857600080fd5b50610138610613565b34801561017d57600080fd5b506101026106f9565b34801561019257600080fd5b5061014f610702565b3480156101a757600080fd5b506101386101b6366004611188565b610723565b3480156101c757600080fd5b5061014f610a96565b3480156101dc57600080fd5b506101386101eb3660046110d1565b610ab2565b3480156101fc57600080fd5b5061014f610d29565b34801561021157600080fd5b5061021a610d4d565b60405161010f91906113dc565b34801561023357600080fd5b506101386102423660046110a6565b610d71565b34801561025357600080fd5b50610138610262366004611067565b610e27565b6000808573ffffffffffffffffffffffffffffffffffffffff1663960a7afa86866040518363ffffffff1660e01b81526004016102a59291906113e5565b60206040518083038186803b1580156102bd57600080fd5b505afa1580156102d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f59190611263565b90506000808773ffffffffffffffffffffffffffffffffffffffff16635a7e1083846040518263ffffffff1660e01b815260040161033391906113dc565b60c06040518083038186803b15801561034b57600080fd5b505afa15801561035f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610383919061111f565b5092955093505050428390039050821580159061039e575081155b80156103a957508581115b156103bb5760019450505050506103c4565b60009450505050505b949350505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b8901acb165ed027e32754e0ffe830802919727f1614610444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043b90611519565b60405180910390fd5b80516040517fa66b327d00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f169163a66b327d916104bb9185906004016113e5565b602060405180830381600087803b1580156104d557600080fd5b505af11580156104e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050d9190611263565b6001546040517f6e6e8a6a00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f811692636e6e8a6a92859261059892911690600090849082908190819081908d90600401611309565b6020604051808303818588803b1580156105b157600080fd5b505af11580156105c5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105ea9190611263565b505050565b7f000000000000000000000000b8901acb165ed027e32754e0ffe830802919727f81565b61061b610f7e565b73ffffffffffffffffffffffffffffffffffffffff16610639610702565b73ffffffffffffffffffffffffffffffffffffffff1614610686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043b906114e4565b6000805460405161010090910473ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffff0000000000000000000000000000000000000000ff169055565b60005460ff1681565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1690565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040517fd5ef75510000000000000000000000000000000000000000000000000000000081527f000000000000000000000000b8901acb165ed027e32754e0ffe830802919727f9073ffffffffffffffffffffffffffffffffffffffff82169063d5ef7551906107c29033906004016112e8565b60206040518083038186803b1580156107da57600080fd5b505afa1580156107ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108129190611247565b610848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043b90611608565b878414610881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043b9061154e565b60008173ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156108c957600080fd5b505afa1580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109019190611263565b905060005b89811015610a61576000610940848d8d8581811061092057fe5b905060200201358a8a8681811061093357fe5b9050602002013586610267565b905080610979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043b90611450565b8373ffffffffffffffffffffffffffffffffffffffff1663ef6ebe5e7f000000000000000000000000000000000000000000000000000000000000a4b18e8e868181106109c257fe5b905060200201358d8d878181106109d557fe5b905060200201358c8c888181106109e857fe5b905060200201358b8b898181106109fb57fe5b905060200201356040518663ffffffff1660e01b8152600401610a2295949392919061163f565b600060405180830381600087803b158015610a3c57600080fd5b505af1158015610a50573d6000803e3d6000fd5b505060019093019250610906915050565b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60005460ff1615610ac257610d25565b60007f0000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f73ffffffffffffffffffffffffffffffffffffffff1663e78cea926040518163ffffffff1660e01b815260040160206040518083038186803b158015610b2a57600080fd5b505afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b62919061108a565b905060008173ffffffffffffffffffffffffffffffffffffffff1663ab5d89436040518163ffffffff1660e01b815260040160206040518083038186803b158015610bac57600080fd5b505afa158015610bc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be4919061108a565b905060008173ffffffffffffffffffffffffffffffffffffffff166380648b026040518163ffffffff1660e01b815260040160206040518083038186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c66919061108a565b90508273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610ccd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043b906115ab565b60015473ffffffffffffffffffffffffffffffffffffffff828116911614610d21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043b90611487565b5050505b5050565b7f0000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f81565b7f000000000000000000000000000000000000000000000000000000000000a4b181565b610d79610f7e565b73ffffffffffffffffffffffffffffffffffffffff16610d97610702565b73ffffffffffffffffffffffffffffffffffffffff1614610de4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043b906114e4565b60405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f193505050501580156105ea573d6000803e3d6000fd5b610e2f610f7e565b73ffffffffffffffffffffffffffffffffffffffff16610e4d610702565b73ffffffffffffffffffffffffffffffffffffffff1614610e9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043b906114e4565b73ffffffffffffffffffffffffffffffffffffffff8116610ee7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043b906113f3565b6000805460405173ffffffffffffffffffffffffffffffffffffffff8085169361010090930416917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b3390565b60008083601f840112610f93578182fd5b50813567ffffffffffffffff811115610faa578182fd5b6020830191508360208083028501011115610fc457600080fd5b9250929050565b600082601f830112610fdb578081fd5b813567ffffffffffffffff80821115610ff2578283fd5b60405160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168201018181108382111715611030578485fd5b60405282815292508284830160200186101561104b57600080fd5b8260208601602083013760006020848301015250505092915050565b600060208284031215611078578081fd5b813561108381611662565b9392505050565b60006020828403121561109b578081fd5b815161108381611662565b600080604083850312156110b8578081fd5b82356110c381611662565b946020939093013593505050565b600080604083850312156110e3578182fd5b82356110ee81611662565b9150602083013567ffffffffffffffff811115611109578182fd5b61111585828601610fcb565b9150509250929050565b60008060008060008060c08789031215611137578182fd5b865161114281611662565b80965050602087015194506040870151935060608701519250608087015161116981611662565b60a088015190925061117a81611687565b809150509295509295509295565b6000806000806000806000806080898b0312156111a3578182fd5b883567ffffffffffffffff808211156111ba578384fd5b6111c68c838d01610f82565b909a50985060208b01359150808211156111de578384fd5b6111ea8c838d01610f82565b909850965060408b0135915080821115611202578384fd5b61120e8c838d01610f82565b909650945060608b0135915080821115611226578384fd5b506112338b828c01610f82565b999c989b5096995094979396929594505050565b600060208284031215611258578081fd5b815161108381611687565b600060208284031215611274578081fd5b5051919050565b60006020828403121561128c578081fd5b813567ffffffffffffffff8111156112a2578182fd5b6103c484828501610fcb565b600080600080608085870312156112c3578384fd5b84356112ce81611662565b966020860135965060408601359560600135945092505050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600061010073ffffffffffffffffffffffffffffffffffffffff808c16845260208b818601528a6040860152818a16606086015281891660808601528760a08601528660c08601528260e08601528551915081838601528392505b8183101561138357858301810151858401610120015291820191611364565b5080821115611396578261012082860101525b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201610120019a9950505050505050505050565b901515815260200190565b90815260200190565b918252602082015260400190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601c908201527f4d573a20526f6f742063616e6e6f7420626520636f6e6669726d656400000000604082015260600190565b60208082526028908201527f4152425f4d53475f5750523a20496e76616c69642063726f73732d646f6d616960408201527f6e2073656e646572000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4d573a2053656e646572206d75737420626520746865204c3120427269646765604082015260600190565b60208082526037908201527f4d573a20726f6f7448617368657320616e6420746f74616c416d6f756e74732060408201527f6d757374206265207468652073616d65206c656e677468000000000000000000606082015260800190565b60208082526025908201527f4152425f4d53475f5750523a2043616c6c6572206973206e6f7420746865206260408201527f7269646765000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601b908201527f4d573a2053656e646572206d757374206265206120626f6e6465720000000000604082015260600190565b948552602085019390935260408401919091526060830152608082015260a00190565b73ffffffffffffffffffffffffffffffffffffffff8116811461168457600080fd5b50565b801515811461168457600080fdfea26469706673582212201fe95c7f2a1d3935c9808970f605d255e70a37928571f7e2212c4c09fdf5ccae64736f6c634300060c00330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56305522e3f828b3f47dacfacd875d20bd5cc0879c96e7000058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60543749c4f034022c39ecaffaba182555d4508caccc0219080405581d0213808923ed9b9205a6043eebe869c562b9689deef9fb885a9923a9430f01482e4539466a92ffd01916cb0219600005581e0360cc87ab0bc38df125879b09ce4c98deaa035fc5c7ecdc15e0f8dfb830040105581e03e8ed04e17585a008ddf259c9f8a88b08317978c4aadc6bc5dd9f8f7f10040105581e03c772dfd2bfe33203d278b5546ff84a35eda864af655273a8c2516d9f40040105581e0352fb75ba276cf76315d6ece34bc3e26e544303a9b700810c986d8ae86004030219ea7d031fa31e52f6f90e3e43ca02fba8a6b687a3cca194a06802b7cf201ebf335f852a036609eba7d58e5b0d6f699057d28b41ea22dddb8fc185e7af94d440a060a187eb03664789b546caf4dee66a0a59885bab2e414ccb36a76757f32906dc4b71b4bde9035b3cdc0ab8ba75e808200c419369976f3057b134d5196640e8030a8afa4beb6303da360f83dcb3479ef5803b0baf29406f9ae31c095f76da7045710e764ab09689036e329852ed9f7bd9251e680fe5705500f74e28d818df0f2d2974a74f2194314103f6792202141bd380f0fc81fd527173a37b019bb6ce5a05bf35a230f09947e54203254689bf5b2d259ce03d6ab287cd93feed647c65db9704a808c9cb0d94d9eac60219ffff035f8af392c34905556db8c3c2fdca1c08e9eabdfc38fc975fcc7f9889ccdab97403f8350b8fba817c52cae5f26979f89849ed0a749e00f10c3827ae1c15c26fc229032fa06f21135ebcbc8e648a3dd40d564e0fb62cfe75ed8be4195c1b8afee4772603df798dcf920bf338eabec12ece537b46727de6a77cafddfcf00ad47209d036e703b7b0c0d6d0430e4a7b3eed0fde0be0b1d4297c8fa6be111fe11e314ba491047703e51e87af7db4db1f37f5fe431234c24f35a0ffdf2808fadd86019730504f8a1403b8caca84fcb656868fd2ee6791e3f8de75a387e179d4f2b3c5a2a5a76d4118330308348b95a3906af2fac0bb6057dd26d3ce279c8194fb2e1ec72df861bb9a43b00314851802a203f5825f4e8e654f1cc62e49393cd8877fac1af89972d0ced608df0219ffff03b07ed589766bbfb64dc213738757a5523820c48e3c48b2ff9397c55ae7edf0400219ffff03e07dee9e9c5d993535600ec00e55052841a9a09afc4613a10864c364db8fe6e703c04772c0f7094a40265e067c50948f1bc7706541af48a656fd574054396f442a03e43c7c319c7d3aa8e8a3acae2e060591569f47d9511c4f5746442a9fa23bf629032a496fb0d9fc9d32d468a35c0cb0058848a9e70b7675d8f9bbabc4ece0b221aa0359d7b8ff9e2771481d6932aef89261a31e2a74cba9732a3fe7863983ab15f78603b36a3fd60bd366371c1981a48a4a2dcbd9e9a0888921e20cd3ef4537f2009cea032252102945f1b1a41a5aa7bb8ca5b0c3178773ecf8201d2e4c68ff1da0a5369803009fb5158781c22dcc42d082d51c9d49afeadd773851811825fd901d085933b2037524149b7c2077342e2ef44b5e55903be5c5dfb0c4c73ffb3214da8196c9d25a03caa5ade40142a82455b91a341acde321556f72c7ee955d2e124b8291ae9c55880219ffff03b59dbfeb02add020afbb73a97270caf4780ba426dbe73908317a1e5fc5a27e7e0358a84c25260f0df05e2c15ba374d89d8a34dc3a6fd63ec5cad626f9122960dd803851b5947b50319a63f297d02ab2801c0bc172a712ed49751a0af591a388a24cc036e29d66175af2cb37bb486de79180a46c642b022a44e65116d4b2929aa059d8203b5d6d5238905774ab8117aec8db2381adb96c7cc31f3c06bbefd088167041440034a1ef433ea7c4708307f6b46645480574b19afef26826f808061ce3d405c961803c76ef1fe70ec1d21bd21c5855304c079f76f187a5e076b1a5b68a5d81b0d369a0353d582409566d0113bb96d72541e318c218fc6e53d71827c7913cd517dfd7998039afc134b16529ad84ca4f97ab7273d49c61e0250263c22a687872faabf8b7ef703856840bc8ca492cc538a61e2522d848c0a691aac6db89d02fff54b20e66ca95a03f9137742a88b1ce36e891009a3781d2270cb559cdcf111c83112b91df4cc87a303a1fdd0f8df52c3be2214acbac3649438722f9a92f4da001e1d442c08bd54ba950321e7805d9f8f8d0ccb6ffe2ce53955cb2031953128158463bd730ac461d2116903c2d2a11f33b8a5a21691babd4f0676d358bd09427b5ece3b908208a95211bbc20367692b82218ffae32eea51201959393c373c47bac53d09246dd7858b80f8693d0340110c2d305147bee30d261e50e5b49653081b49d395865c7f6ea354b35f56a0030b84a0a6d45a21f95398888b4edbce597ebfe60b82e6f0a2ade803bb36cc708803119e9cabd77fc84fda638100ace04b32f88ef92467fa2fb9ca99f46617b590d50317c44875ba4eb31924d8e7f63cdeb8ccc2b4a10ec6a9de1fe5f2ce83e7753de8032db5188d7ab0f27e678df611f8c16d01762f5785c565cf06c775fb8df8d2ab50034ee22f71dc37f0bd6f022247406cda6400cad883c00aec27a4406c7e5ff9228203c8557f35dec11c9640e7c27f9c97d395e8912ba3b0a765675e1b5109010607ca034a167bfede43058abf270027caf1bc82028595b25bff1b414936bfe4a04e38040358e2feca06e24ea8b1154efb2710b6113cd6c11e9bbe70b7977c96c801ab390503986f8ef77c768fdeef0b75b7bfea07f2c44d7a2483719391ec84a9ba6991eda0035676a25461551440615bc6e14fe427e356bdfef02e19655e8a85494a8b9b5c2303ed54f7919cf4116bedcf385d01a6727db17f5f5f69bb257a0404f1364e01096f03abc1e80c36d88c9a632051be1288c1002d5bae7e887ac1fc584038c6d8eb293f03636da016009dcd248b1d66ef574315e5c7fd84577b1dbfaf1d659ab605024fb9038d0ef63921fd4b044ed2b9292a3b35223d3841e951eb0d0382dfead312b15700030cfcb06033c04a5892d0dcc84be7eab1d59bebe511d4c632171e14850a9a9e03032e299445c123558ed8d96e0ba69ee63e1c06394168a3a1245465d797384e7006031dfb033a2a81712a281ff360ec0b5712af9a1c9acfada60500fb734336f1653a03b7e68246b9913f74c9ffa7c989e4c3e314d39b2d5f3a54d57e38b1bfbfd245d903c172fff6cddf960dbd7f946c51b8bb07fd5753498c5a0174d960fd8411090fff03540d010afd3294484f9d5c05b42c4258337af68822618878fe1d891df89743e203c2af9ff9600fe1b0ddea2336f23f5dfc0ec9c1916a9e415d37c75dad6d4c30f405581e03be32a71361cb00a7c62f3bd6168145209c718cfaf16eced3dea67392e007011bffffffffffffffff05581e035cd4857596bbfbdfc42fb611cff5fc9b20c8cbc9df94c9110d93a9e4300c0846600aea7d000003bc0b037664073124ece02cd7e5f603da4ab50387ce6beca3210ad804eee2b3c403bff11bfca31f29ece60c927acec86b4b746b3450c42d3039639b08276766123e0326c95152aa8e5631ce914a93b3eeb0bc9a6c92528f2a82edc0521f295153469705581e038f41183b0755718a5a2e52ad3a37057b5520776a0fc14465fe1161aa20084702603f8bea100003e7fd1437510f0890103fddb6b1baa45c5c94a391d51ff9e57691ebb54840e82a03052d91b7f58be9b75bfbc5cf9072c8f313bff916377ca80e7752766f2d6bf74105581e03cd5211aa518ba54f3e39721ad6591b669e03318d718e8131798244f760040104591903608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063a457c2d711610097578063d539139311610071578063d53913931461051f578063d547741f14610527578063dd62ed3e14610553578063e63ab1e914610581576101a9565b8063a457c2d7146104aa578063a9059cbb146104d6578063ca15c87314610502576101a9565b80639010d07c116100d35780639010d07c1461042f57806391d148541461046e57806395d89b411461049a578063a217fddf146104a2576101a9565b806370a08231146103d557806379cc6790146103fb5780638456cb5914610427576101a9565b8063313ce567116101665780633f4ba83a116101405780633f4ba83a1461037c57806340c10f191461038457806342966c68146103b05780635c975abb146103cd576101a9565b8063313ce5671461030657806336568abe146103245780633950935114610350576101a9565b806306fdde03146101ae578063095ea7b31461022b57806318160ddd1461026b57806323b872dd14610285578063248a9ca3146102bb5780632f2ff15d146102d8575b600080fd5b6101b6610589565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f05781810151838201526020016101d8565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102576004803603604081101561024157600080fd5b506001600160a01b03813516906020013561061f565b604080519115158252519081900360200190f35b61027361063d565b60408051918252519081900360200190f35b6102576004803603606081101561029b57600080fd5b506001600160a01b03813581169160208101359091169060400135610643565b610273600480360360208110156102d157600080fd5b50356106d0565b610304600480360360408110156102ee57600080fd5b50803590602001356001600160a01b03166106e5565b005b61030e610751565b6040805160ff9092168252519081900360200190f35b6103046004803603604081101561033a57600080fd5b50803590602001356001600160a01b031661075a565b6102576004803603604081101561036657600080fd5b506001600160a01b0381351690602001356107bb565b61030461080f565b6103046004803603604081101561039a57600080fd5b506001600160a01b038135169060200135610880565b610304600480360360208110156103c657600080fd5b50356108f1565b610257610905565b610273600480360360208110156103eb57600080fd5b50356001600160a01b0316610913565b6103046004803603604081101561041157600080fd5b506001600160a01b03813516906020013561092e565b61030461098e565b6104526004803603604081101561044557600080fd5b50803590602001356109fd565b604080516001600160a01b039092168252519081900360200190f35b6102576004803603604081101561048457600080fd5b50803590602001356001600160a01b0316610a22565b6101b6610a40565b610273610aa1565b610257600480360360408110156104c057600080fd5b506001600160a01b038135169060200135610aa6565b610257600480360360408110156104ec57600080fd5b506001600160a01b038135169060200135610b14565b6102736004803603602081101561051857600080fd5b5035610b28565b610273610b3f565b6103046004803603604081101561053d57600080fd5b50803590602001356001600160a01b0316610b62565b6102736004803603604081101561056957600080fd5b506001600160a01b0381358116916020013516610bbb565b610273610be6565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106155780601f106105ea57610100808354040283529160200191610615565b820191906000526020600020905b8154815290600101906020018083116105f857829003601f168201915b5050505050905090565b600061063361062c610c09565b8484610c0d565b5060015b92915050565b60035490565b6000610650848484610cf9565b6106c68461065c610c09565b6106c18560405180606001604052806028815260200161172d602891396001600160a01b038a1660009081526002602052604081209061069a610c09565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610e6216565b610c0d565b5060019392505050565b60009081526020819052604090206002015490565b60008281526020819052604090206002015461070890610703610c09565b610a22565b6107435760405162461bcd60e51b815260040180806020018281038252602f81526020018061162b602f913960400191505060405180910390fd5b61074d8282610ef9565b5050565b60065460ff1690565b610762610c09565b6001600160a01b0316816001600160a01b0316146107b15760405162461bcd60e51b815260040180806020018281038252602f815260200180611875602f913960400191505060405180910390fd5b61074d8282610f68565b60006106336107c8610c09565b846106c185600260006107d9610c09565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610fd716565b604080516a5041555345525f524f4c4560a81b8152905190819003600b01902061083b90610703610c09565b6108765760405162461bcd60e51b815260040180806020018281038252603981526020018061167c6039913960400191505060405180910390fd5b61087e611031565b565b604080516a4d494e5445525f524f4c4560a81b8152905190819003600b0190206108ac90610703610c09565b6108e75760405162461bcd60e51b81526004018080602001828103825260368152602001806117556036913960400191505060405180910390fd5b61074d82826110d5565b6109026108fc610c09565b826111d3565b50565b600654610100900460ff1690565b6001600160a01b031660009081526001602052604090205490565b600061096b8260405180606001604052806024815260200161178b6024913961095e86610959610c09565b610bbb565b919063ffffffff610e6216565b905061097f83610979610c09565b83610c0d565b61098983836111d3565b505050565b604080516a5041555345525f524f4c4560a81b8152905190819003600b0190206109ba90610703610c09565b6109f55760405162461bcd60e51b81526004018080602001828103825260378152602001806118196037913960400191505060405180910390fd5b61087e6112db565b6000828152602081905260408120610a1b908363ffffffff61136316565b9392505050565b6000828152602081905260408120610a1b908363ffffffff61136f16565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106155780601f106105ea57610100808354040283529160200191610615565b600081565b6000610633610ab3610c09565b846106c1856040518060600160405280602581526020016118506025913960026000610add610c09565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610e6216565b6000610633610b21610c09565b8484610cf9565b600081815260208190526040812061063790611384565b604080516a4d494e5445525f524f4c4560a81b8152905190819003600b01902081565b600082815260208190526040902060020154610b8090610703610c09565b6107b15760405162461bcd60e51b81526004018080602001828103825260308152602001806116fd6030913960400191505060405180910390fd5b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b604080516a5041555345525f524f4c4560a81b8152905190819003600b01902081565b3390565b6001600160a01b038316610c525760405162461bcd60e51b81526004018080602001828103825260248152602001806117f56024913960400191505060405180910390fd5b6001600160a01b038216610c975760405162461bcd60e51b81526004018080602001828103825260228152602001806116b56022913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610d3e5760405162461bcd60e51b81526004018080602001828103825260258152602001806117d06025913960400191505060405180910390fd5b6001600160a01b038216610d835760405162461bcd60e51b81526004018080602001828103825260238152602001806116086023913960400191505060405180910390fd5b610d8e83838361138f565b610dd1816040518060600160405280602681526020016116d7602691396001600160a01b038616600090815260016020526040902054919063ffffffff610e6216565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610e06908263ffffffff610fd716565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610ef15760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610eb6578181015183820152602001610e9e565b50505050905090810190601f168015610ee35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828152602081905260409020610f17908263ffffffff61139a16565b1561074d57610f24610c09565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081905260409020610f86908263ffffffff6113af16565b1561074d57610f93610c09565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600082820183811015610a1b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600654610100900460ff16611084576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6006805461ff00191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6110b8610c09565b604080516001600160a01b039092168252519081900360200190a1565b6001600160a01b038216611130576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61113c6000838361138f565b60035461114f908263ffffffff610fd716565b6003556001600160a01b03821660009081526001602052604090205461117b908263ffffffff610fd716565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b0382166112185760405162461bcd60e51b81526004018080602001828103825260218152602001806117af6021913960400191505060405180910390fd5b6112248260008361138f565b6112678160405180606001604052806022815260200161165a602291396001600160a01b038516600090815260016020526040902054919063ffffffff610e6216565b6001600160a01b038316600090815260016020526040902055600354611293908263ffffffff6113c416565b6003556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600654610100900460ff161561132b576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6006805461ff0019166101001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110b8610c09565b6000610a1b8383611406565b6000610a1b836001600160a01b03841661146a565b600061063782611482565b610989838383611486565b6000610a1b836001600160a01b0384166114d5565b6000610a1b836001600160a01b03841661151f565b6000610a1b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e62565b815460009082106114485760405162461bcd60e51b81526004018080602001828103825260228152602001806115e66022913960400191505060405180910390fd5b82600001828154811061145757fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b611491838383610989565b611499610905565b156109895760405162461bcd60e51b815260040180806020018281038252602a8152602001806118a4602a913960400191505060405180910390fd5b60006114e1838361146a565b61151757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610637565b506000610637565b600081815260018301602052604081205480156115db578354600019808301919081019060009087908390811061155257fe5b906000526020600020015490508087600001848154811061156f57fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061159f57fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610637565b600091505061063756fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332305072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f20756e706175736545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332305072657365744d696e7465725061757365723a206d7573742068617665206d696e74657220726f6c6520746f206d696e7445524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332305072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f20706175736545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c6645524332305061757361626c653a20746f6b656e207472616e73666572207768696c6520706175736564a26469706673582212206e15dde2dbd9513414f58305bc1fa8bee122abc8b78c5ff4bbe6dc2555054d4f64736f6c6343000602003303dfeef1ae34f803bb27f8bb6219db4d680088905f1c9bfda6a7a2c43a6573af310362102df41003923ea5596184eafbcaeaf68ae5dac12189554496fc5a4b07abd3032905b1dd00c4d645cf97f773aaa8c8f8b68d119bbb19ef5118916f2b066e680503c6229780e4ee4ccb02588689ebbf5126354d8f3150e7b0cd9f1633e1d86c510a030784eb5ab673037632fcd23d9910e581c5803770746cf4ba3c4809226317c25f03b512a842259ebcebf349c8001720e669a08e2c5fb7b8667ae6be529970d57b1603814df6d1779a8519caa68d27d31d1883178d07dd8860c3a1f8a1b45ca4a87f280304841c334117aaed577508fa6264236f0f35d17cf76cb8c11dcdadd3193607dc03dff666e6d8bb374bdc4dc8fdb1c47977fdc134c7f646c72f3bc82e9e99d5af2703735b7076c5c7b199a5e2c613662078e1d925387e292447d6614f88fe9358ef49033a7584148dbc75703d0eba6c3defde8355527547ff1048d7ce740f5c1722f742037e50315520b87477d82b5c8fb86504b79ca7c5ade5790e3b127b5b7b5728c9f403892ac88eba0db8c560172d8064f89a9bd5e86e268f71087d6688463ec14fd58d03e0407a03f7bace68a253f0af30f4459127495e7510045ddebc54d7da7b1e638f03ce864bb16f1e39330cb8b7fa2e3609ecdde8a324fc5b774e6b9d4d9417f26ad1032c54db75f0da355aaaf6ea1845e0df65efc41c2751c4e50af5580b2407b38c02030cb39c5331b1d35df45815498cedae5e7aaaf66830e37dc39ed8ab33ac8778d3039a9443da8245d91bbf1bf3dc4b8decb6e40778d704e51d3a0a7357e79e3c8073036d3091f4cb0c05e10cc8ef9aec2433e269ed0e49d9b606b3bf24781b8c461713038f272c8bd57e52e64a58339f502cd994dffdb16f75d0b20445e9b6e104dc36600309d82e0bd3a088d88cba626e6face2c106c12bbcc2ed7809b11e47029a03698700581f0258c00d3e1f7b01e8fe15548ee87b6d9e75a2d6922b0e6520557f29893b5a5820fffffffffffffffffffffffffffffffffffffffffffffffffffffff599adfa7f00581f027aee694c18d8cfa6a6a07388948b936f6fc18f760d1faedf344b427963c245021fd3aa600302ae73067e6558f42528139a67f0c00212e344207d957fca5daed6df869616a403db77264c5e4a31ebb146587a465697e2823107c251d3bceb8008afc16a0b51ba039f8c62d8389ae837a71182679700cb09278aae2fbb1c9d3223276bf9b309515900581f02e153bdec42d88a4dddd1cb89bbc9923d01b31f92d8475cf1715a66115649460616700aad8400581f02140d56178e0608ad895f43c26bfc78861048c9a309006ee8ab3c371d7e415820fffffffffffffffffffffffffffffffffffffffffffffffffffff5a42b65ebd403fbfad5f3d25eb4565a289f95c180064732969e4c34c079b24a527e9c4cfd9edc00581f02586468887b84a33406640c3af61332992624f55919ac9895005f9e76829745019f2cd49b0337a3d93fb3a9dd8ef39bb1447129a4bddb9238cedbfe38b8bc4bb74a86f73a0803740b723075acee41791a9321f87d704c7e74023b2524055b4a0bb876b95abcd500581f03bf311535caf80479b01e0c2ad0efd107bbbc1abcd1d08cff357904545d50469a7dceb8b14000581f0330b89ede45f15ad29f67eb1aceed7af39af065213a5393cf7ffda6710a105820ffffffffffffffffffffffffffffffffffffffffffffffffffffff4f30f23cf700581f03ac1c3e735ac3d57c5bce8a4bb09cfb87fb3f1a4bde09534ae64f38158f10450ba0904650021980c00219f3ff0358d027446820eef5f31b5831de6b83eae9016ecb05aa3f693547729c09b7f0ce03d4e8e023906e98c99a833319b70b4e5a020b9768b8bde4a57d7fa1683cd4c0aa038596265b426ea6ce074db655558bf4fbac7fdaf6e2449510fda5a44d2048a26403c19a415c2039f7101f6784537e409e78a610a4ebd0da7305ca936d5155047abf03f237fa5747ccb200e5caf205c527e6ff3b688edc07b82585506dec237daaad4b03aa41429dcf5e0c1ab308643c0f143b694325365235ee166ac08410412dd076ff033455c185b15427017677954a1fe6e6464df77796e656a8575df79a30a947ea3603329f4e127af7691deb5db3c3b60fadf5794cb6f7b1dc62db82194022c1e30fef03dcbc960543573bbfc9b23bb3d91555d023b2bea2a07f69decd12a79cb43fd263031417a3da48f969496fabcb4dedab37e657387a486f54d5cbc0ef4909841a55bd03bb149b57bfb39929a7f957b9153abb5f8afb8245c08533720722d2a949ad747a03080033ad538116cf66ecdc265fdd8a42a6aed6a552a14bd819e602e9e5b0cd2e032e8b965628beef102f559f8368885f63c2b60803f698c1451d0992f6858eacd20219ffff03826468b33e3d7736576180b85efaa9d30a5598ef6296dce4849ae371fbd430e60219ffff0352c2056bfd48fd4edf0dacdbddf97fd597ee70ac6b879948c67bb953e81990c4032fbb05d99b07ec207fe1899b919966a8f1ba31c70ba70f56b9c0b89dced79a910378fe308cd6e29b4db961ac30986bdb7a30689ba886cd1712f609b23d9bc930c203a59b0a7e0fc2adc6bedd2c0e80e4cb3f530ef7fa62a74c4d7e82f57010536ece03842aaad17f73f9c8560aa95d11f00ad6b8913f81e415aa267c0ecd083094908b035a43ed1825984a4f8900ef092b561ec1be73c29c678d6e083dbfb67355cae3d80355fbfd357cf9b0cc50f1f38792a270a1f3ce4e85b6d5c92e2a7ec3b3bfbb1014039b76f44750cfd851154d208b6859c797b651bff92993a6cecda3b8b06847faf503ae538dc1e675dc869737eb4e498127de72927fda8e54d9d42c1bd50cd6dfc8fb0359c5d209f370d653ab1d0f2d2d422af8cd55bc775452215e0d0981ca755e3d5103ed2ad27e33809a20b30287f0dc1ef387ed3aca57fea37719baef55d95a5bd570037ac178773d2948a28f618620bc80813e2e247af05a38548b2fc9f29149be383903cb0ee54e49fa3b514494b9f75410fb2f4ee9f6cd82aeda1011459938f603030203f52d0ddbcac697972af9c096073156be5a51dfa9cad68ebaf68684d15c0bb9af030ae6938a1b5fde24ef49a2a09c7cda6fb0b8b7446e6b7e816419df40638b93950392513a92cda7ffacc1ce6af2ea682773112bd794c73013b839904b6afd73aaa003f0f3340b482566081da409682f35f8ae92f083e4043ac805d6e3dd827540d45703339accdceb9ea0d4741843d82c7e73d78c9b844cc7618085154f51600102ee5b03ae7a8be3da1675d711b5122011896318ef804a3a357af1a3ff6d56cd3e8e9607031cc680c5af265144b95eb7da0a40f6c7ce2c91cc8dc0ef2e99b6d9fdec03a6b5038dc54e912a79a59a439f76ed8e288ade1dd6688948bcfd5d2fe850b3405fdc9003d4ee920178454ade849b9ef56bb72726b650abe640d30e70ddda7a4d52adce240318fb427f01a66370e4b9ac334cd703b45defa288abdabe073170ba620a9a578d033e98e88875dee5939ec1b4fb5e10bdc29b19e548af64727965de7b20e71f36b50380eb534a2acca3eb25ef174469ad09f0e0fdba01cdcdf5d7182395c4d2d75207037bbf0c57724ce44fdc95d01727da0bc1106b83563106368d1e7107e2f12936ee035a57384ef56512d08192e92659e6d72906e43ac40fcdfc3460a57aad8e6bc92f00581f0256e786d9aaeba333c20c2993f85de61bdf3cbe84cbb925a113ab208b7b20447cd9466f0345f64c26e2cce9e50f33743ffad2fc923774c1b38de406db9a61f601367d4d1403bc05d878eca58bd370a7e6e8fbd677f14a36994ee746f8ad79584791c5a475e000581f0263841810a59beb934443b6132a6ecb1095240633c8019d529f87896ab5c55820fffffffffffffffffffffffffffffffffffffffffffffffffffffd8a21aba2df00581f020296ab2e6a80f880b188659df2729ea4adeef808fcbc1632842d3a6df1c14508b9496c300372262020cf5ec9ad6da14a853db403a09d459690016e470230ca6aebbe7b68b803e65a5ce38dc0abca12b50b340e2d44d0828d9686931fc451deacf38c0f5b5ba903d00aa7313fcc9002ec0d69add6d70a399cc3b6286aee0dc0dfaa27b3404dde3b0361e8a6629e782283e3adbf4c62adb7cd4e64de1a2121657dafc9fb18a00d957200581f03051023954136d6818282c4aee5c7616d8710b2d9d6eede7c5ae622a8e2a04517fc7c3a1c00581f034e118710aaa5b9270e421b24e573bb425fb23b061a9c937b4b891b5d71804504a61c739e0219804003eee956edf206e79ee20629b28a30c9978b4719bbd260b47beba5bce37a86e115034b14a52fbb393025f5e15461a59bcb76b105ffa1db2152e96e068155fb80033e03152dc61e35a60b934a6f93afc1b6b12dc4224132bdbd6f1e0c0386dbac4dc2b10336466a3fefad4777584a7432ba60cbdf5f72c11e19832bafe988866c6700f0330219fff703320a7fe17157948069c6b2e3185eb59187e53d941b79742b9586843bbbc70f180369759c3f7bb8959b723cb302abdd405cc18a31d5a3b70fe98faef6fa763b356d0303cdc9e3baed992adad045475c40f9deeb96b25d10534c065da934cd108512820219ffff036d871ae5d0ecc47a8916999d0708515ea57c044c14a99176cbabcefba21df4ea035236fec439d5b07cd9056bcc6feefb37ee96a4eb735ac53748add779c35ac6db03f9d5a72ded733524e6a2be856769395012a45a85f792fa655aa6ebfb73bf81b103a4d4f58c50b2da7a9b38b90df0f1846a398564f8387987ef238cb5e8d89727d703f2c488eafe557ed511d0a171af0ef9b90d3b829365fb65b0b3f3560d735657ca0219ffff03aa44a020be66a63608570bbbd545d8ea3706c7d00d357b508941031b2dbd3439030f0d9ed667c04e17f00434f71378f893b3fa2f37b6361113e29b9177e6fd3ecd03cf99ac531cf2d093a0dd218e2e6e3b8f64d6df831f300df671e4a9dc326e34e8035963cb720b5facdd773bcbe7227da6ff313d9cb5d0b4e923d4e6d650f45612e503980d57a5c2e418c560942fb0e7935932c142aac03f1b3b6e69d2bf0e07118ec903b871c40851fb4401be5e2d8e1f947bbc0b0b402be7a732baf6720aaa9267a7c3032d9b54a194eefd26ea6f2567f29212d9c29bcb0e8b0b17c5a12c3210f9d4f2da03088780e35f63833404bd976d6ddce32af653a384422b7f18e0678044589a2fd30390f57c33ee96cd451c0d63645fba99e25827af0cfaca8a88894adc16c10f35c6034fc1bb203b54bc96c263c217fc5652320cf98b2b2ecb4befb240f2e493d1a565034953ba26077ba804b2f22cdd451cab1303eb9fe9606e9185cdd72cf8c378913403a18167734f7a1adfa0c9a28df6573083a713a7540441f392c7a13158f2e2959e0354931878017a3d721fbd8a159fd6c2abc71570f2a1ea9620e4fd18e3c35d6e0f03e1a7ae3a1fde6bbd4fcfde3fd059bbc1c5824e217a0186601bc8d0b2f774beaa03d88f535f8894fbd2179579d7a60bfb53d0fd242a9c85967f91c0f98dd77a372403529f2aa8560d09f582e03f799c28805bb6970dc7865a1ad6514feed2f548ca8103343687d99aa1dd595479887135dc353894a11f7b84b615d606ffde7d0fde93fa03b329e0f69847534490136da627f1bfe70f03516799aa8d1e721736006ebabc7501410d03eb2242606394ae2da2f319b2cf8fca3ee00bd3b4f3888346e9b9b2416dce43d300581f0322313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0410800581f03fd6b3c317214e2bc8d834830af35ea78870e08a42020cf3061354a7c2ed04521fe473400021940040362231dbc99b3b066f4eb278a711c7dac413d60b1a73682441ac93663028a7e8300581f023f556c6eedcd234d4c0b0070e533c100ad10d41f6325ebc42a29f6ae7fa94406f5623100581f02e61c78e464eed00bb6c06b7b084092cb960013be7ead8d24b028803bae685820fffffffffffffffffffffffffffffffffffffffffffffffffffffff0974ceb45032e2877d717f91f52a22b8039e618e5cdfbcb34aeb22f4c556e309e5718b0770600581f02efa1de1aa6a8e012b2c9cceb2abff7e1b6e863bef4b91ca45c6b1c7e6344453fe383b80000581f02966c3fc24a1350a71307e0dc4d5c37c69aefa7991676a622a0eb5c478f9845021817b0410383f148752700f9a16324cf513a7cc67827c09c351ad0bbc9da7d37949203725f00581f02f6d74ddadc8d0422579b4ef30616a21b9742367b9a96909e4ffb1ad5d75b581912725dd1d243aba0e75fe645cc4873f9e65afe68535bd361b4038bbd3a816f59861e953e59f25ebd0461a4e76dff88033463a9c313b7dfbf133f03ef95c9152f52ced2f97a9f2684239bad136d5eccf91600ae25448db7f691400700581f02a3ec6ad4910c0fc9d247064676d0cc84e5f0a67349b02d40ed99670690835820fffffffffffffffffffffffffffffffffffffffffffffffffffffecf87018aff0219ffaf0303b2194628c13db361283c269a857349e1c4a75f3237644cbee06d33b9bc894303ca3bc0d1294555b9d089b4abca5051f5f260eacb321c36249c8b2da9bebeb2c403dd171e69af918d6ab6927292d7a6bca519154a1b523c1bf3c4f7567035068df9037f68b8829dda90c7a0efd3d0087fe26862bd6436b280fa843128df042d7d8a7103b497bf05769d36d2009e8851adfe4855150ef17648039b6ec000ec35ceed624a034ffd64dea984ca3f7ea0da40eb6a66e5d769c961f120fe9ebc18551a277dc2c9032abcbb8326cf7ae56ef2b6d82d04cbfe6f1614f7614ea3e1d566becc47cc6576034bae8dcad598e3039494066412611bc6b71283acf984c10a22cdc3501b53eaac03ab82af066075254528d196ab53f745e565877bfcd77ffe6a77de2e4c1149175e03542a625aabb370d4ff64607ee223ac72646746b1217c9e8b90fc5068a0f046b30219ffff03bbf617e24b674743443e44e7a116524749ea55bbf65abdd4d434f9c87ca7a6d803e164b59231e944e0eb63ae3e03721dc2c473799be15c5f8287290922ecb2394803f9444819c00d285b0732fdb8043ab4d46f84b1472fd00bfa9a4ba25ada9204f70332a2f8b4983ddb5a6c3fb69cbc1b19d66be9e14aa56ce17ce7ad5518d2d00d0203c3b4f4ccb881074d99d9941423afc914bbd7f34c82c8050c711c036a013526fb035795234a811db09bb7cb886f66150a24d29c9e8a963685c88f52466ce58e09b6036b6a8af7a0731fcb9c44058831e5a193b2f92485eb3401a9f73e74fb44f7cff6037c193faf38926e1265f717f3bdcfb6a5bce298ddb2aa90cb981bcdba461bb0e403ff00db8d17e3c2a98d00a1e4d3b32c8c107d4fd96a3c8ddb1f3d031d3bd58be80219ffff0219ffff05581d024d71f9d8270d02b9a0ea9dcf93e69efd9194da9a5399acdbc6af0dad070119190305581d02d8124c69015bca971f7cc8360fb3083210a0d63a7da54eea91eb29c40c01470135eaf85451db035b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce503f893401c710771d76dd98c8e9b7d79e3aabee12f01219c5dda4dcb09b61f58a205581d02623e4ea9268907782088117c1d8c7bb5a11eef481224d48c09ab400007011bffffffffffffffff021944100219caaf03cbd22e033b70b7c24550ce0b9714c543154dad1f2912137cf7d843914c87cfc30387fdee64ba31c0ae79dedae9dede8a401147c58aa17109fc89c135fe6cb0780d0219ffff037362354ca927bf8de876f9e908b168c80a5728dd6235e0901ba942e38317f34303aba57181ba2358ca41e9c71fd44e5ef1d35a072f1c5ecfd9117a296de7befd4003537fbccdc34b91c00fb2afa0efef1ef43d86e8be8b5332d37b62d3118980ae6a03bb2ec2b3153e911ba4e39155dad56828c9e2fb7b1cd9f3c0c77b90a9ba2a62d303a67807a1bf2eabee3f0fd7313b394c8a171160dcd2ea8d0ad9556ce4e15c71b303be6dd15866f2c3b6cbf2bebc6e5236173da288e092e6e9afa56e3418859495080219ffff032c551b3674873715c24b174281e81b2fafa314e4c9193c78565bfa6b23ac762a03aa2266aaf5bf5a15dfe8e93f8dd25b607dc966546a41ba0b78fc6681aa9cefc6032092ce7fb52ac4b4fa6df8be784af2448ae6d20982e31a4ea3665d9970f2359203419c0b84928500cc1b66c707bd8a1133b43d5509099846ba7cc5bcae584712d90389b907799a4625a2a1ec52a9633e7338d80722d68b7baac1cd3f9d93d07290af03fac8fcc0aa2dec9e2eabfdb45530ccc912fc02ebb6050eff283a7e9bbd86a83a03d20b0153755a0e0e3d1de1d5643c74ab00a0aedc683e3079e8f0622450537ced0319fda886bb0d39a46c40306180b22a9d78c98cc535c573d520722dd0b69431d50326417dd024507b08fcb66648bb164b76424e560b337b8d022423630488e9fe1d03b6fc57597c977abbde16f8516559451c61ed860fdc2bc69acf2532448cab1a4b0219ffff037b30fc45d75e5909617da4d10b969f7afb41a0cf7a687bdc757568adc342a3a0037a38dda24939da67bfb614acc6210bd4feceef9e1b4b4469d21daeaf7169ec6b03bb4c46b34dd064198863b06486ba9a07b9960be2242056053e79b05b338dd42303504bef72b313355ca00f5020f35b60a2c98cb351b83ee55a9edf9d99b1bfc310038f8ff4b5596815f3c1f49fdd41b66021335be8b8fc76475c16157d596d51cd1c03ccdfba495f12265264a476bb902e238f858665cd9973124703aac009c6b519d703d0c3fe31f5967718fd2f7b7106f7dbed73323af064f85d5b48c9daffafd034cb0219ffff0347797c0e5bef629482d184a811bb221079312161090ace45f0d197210b3dfffd036ac7185fa5bab177843e06d4dbebe45fbf8191a736b1ec7074a79471fc58f7e803c1826a13e27c3b4bef3d4d7db90cba84d01bea5036b921b57dec6ca1e02b21520371b0a5467625c0763d9988fc16920dfc2d6a238223f1afb5fff261745a37be880339e26cd12a7b38eaccb25b66e8f4c762d75d299ccdd707fcbddb021ab5ae3a3e036b3278647aba6f1240992e22c4f719b812a2a4b93f0a5f3c177bdd807c0eb6ef03c76a25753f92b3c454c9888f0497e7779b5be97e393070352ae7b9b89013bf1c0378683214e5c76292c64f62188206deaf4e54e59bdc780b05f47c4903fa0fe2d60325ec04b175eb210b4b4379814cbe3fee933fc7d00f09eaef1bdbd15fa15c944e03134348bd5d43261f223566e9a7c932057e415ac1da1aa24a2057735300365e4303ce8604088d9cffb9cdae04b07c3ad74fe9e523d2f5514a772e5f086e5970be9f03806939eec9533ffa5d78fdf04f110cc7ff48c96d48e0b6e1bd36e0da77dc97db03ec38ea21398d19d027161a78a3f2e6b48ea13710710c2c3c16126a6de07166230393855389e45594eb432f2d867c199a5a07abd47317b76d579237e2e191ef196e03529ffc5385478db9ece2878cdee53c0bd567c3e54f4b1af2e9d9626250dd753f03b2581b8f0f550e8285dafcfcb01b14c1ce08709b25ae6206aea7bddaf4003d1c032d9977bd95f64e16b12546e8524ae85dcdac97bce7139dd8a6b0fab54281ef5f036ca19d9e211fa39d3f419f326c794e07f1031b03d35ed3e9893f17cfbadad4470311c0a884e5a7f6e97ce1523b32b288779e9c2e7974469a48e8f960cd2da96981032f76eb89b89cec935a57210a80930b0280935557858c1bfac7770768c3371de303a01bd7fc57d188e70011e082088d9c0b42f975ceb4d2c02a406a68a2044c9a2003a9424c5ea880abc9ef4b14f79a9a7513e953cb8af2d995c77065fbdef8569aac03bd04967cbd915507c128a971af212794c5f63dc9c737735d53ac14f880fd787403f6fa0a34a3a7e720d6727bfb6fc062f4ced2d38b494cf466cdcea1fb3c24f95203cbd55bd09a911ff75f62c385d8930bf02081c90e44ada8519af368f8a533b814036bf4d6184f0fe3acf5fac0f0ec01741ff3f05ffaf5190b0265777657b1a3c59e05581d02a075fe4a396c2dacbf2ab06c8131fcd82b2b6355d715c9a6d0644c030c014610f5012c94b005581d02366fd0a570a290b76b7760320dfde2760d3421d80cdfcc45f19d1d120c18744818b0f291487783b8020c05581e03cd5f62007096c2c9fdf5f4e61fb82a9de818decf3495e670184e7214000c02470183add35da83005581e035ae73a1349821d7b186d8875490411e4c1407f79de33a03a2954d890200c014701ed69dd70d6f003f7d29201471708a3ab0eafb2fd40a762dfff7cff3f94dacae608eba666cb7ad105581e034214d996c0f372e78b6de2684d27c5e0ba950c7d0ca0926af92605c1e0040105581e033117e73bb23cd1410631926923a575bff9da1e747a5a586d268e39e7f00401032b2da4401ce583cd3365231ee487a72afd683d565718c83f527f2bcff168f18405581e03a26f28dc69d5b416f756ac5a9a48233aab0bedf58c2f1090836fc222a0040103cd2e103fb06ea3b555a06ff001b0d8492a470bc0f5f2ec06f0efb8b31016dfc1021958f90317706e04ed8d8e6adda5065ae1ba0fb17c119c11130d4b2118a122d8b421655a0369a3f6037bea04a3cbc029264882e128043ebf65a239132535a264177c302abf0219ffff03e5660b08a964ee7badcf3537be139bc4eb0ab2e7df5791a29e59df817c1c5ec5033c2a6bc862718d642de644f0510934b461427cb560c8011552d9cab0151d46730370ca75fa3fab00e0386c036a9d9601bc1c8d032b2231a0ca6baf3b49ba72711d03760ee2081ab18d3a29d24d4cf74532da4a44e178c323841cfd182a7fcf897f8103d3c5ce04d6bea122e5b1d9c96eb5e96a5e5fa78b637c2ec94b98ea8fcbdee04a038e9412e1b4c52f134c0a535d99dfe416220c14b7084f9ffd3bace552eb998322039747925bd051315a57110b111857d07320f4597439ce756a2fcc4fdbf531126a0373e44e625f346e03dee4892614cd7c2932407d0f4ba3e37359ba89d90145be6a0332639487cef34b24aaa411a8e05ce9f8762cf2657fac47d032646f09346332940324943c15f225899d6fe87da74c4efcd1f5495ad7012bce3507dcf7af8a29f6b403f2cf5ef525c62497b27108137a743fbf50664157d47777e8a36ec057a4a2e0620304c31e6b040e46364505f246688ce3282768c2ecdb916eb3e7799a55d161c9f7037e7cb94a4d0f6000fceaf0ff314e9691e20a150178342eb168735eb539c7cff503efae3edf04748e3c50f04da054559d2f34c0e8538163be05ec56d043d3b3582b03374b81483f9a573ed160a0ca1c4a5264e6d0eb5a8e3cd9fa67558679beda2eef0219ffff036dcf8bad423d6692fb9e944f2af7687d862edf430b63a93fb3d1f1627375421a0398a32f787a72338f3386598625ef68d4f0a4031c828e7f8b6491e53c0a2ae5f603bf85053bc2c07f5d7085702382df0ea8e67f633fb83102c85f9c173df043a6500343ded5f75aed5f75bec25da44317b33ac7c2ac5ef06e7e1d20b56bfe21947db50329c7c24f805763460ff4e31b680b8f08a321191085ff32b188082cc44178b7350387c2bbe57a5fc062d2f8227629cf53f35e06339ee8fd74bd47de65a5ca94674d03b981eb395736f71a58ed7081fb494c0f981c0ea234b45b57345ffa5b3bdb4c36030136a0bdfc89c90e7e70902657e8a98c61dc8a3f6ed857591578c79f07dcb6220219ffff03e1e7474240889988b0f6a2f46d5eacf772816cd0c78e40badb0763a08055973403d45a749b2a941e44b3ee472fcd525eabb1a822c4810f3fb540b533042b45a0cc036bfc59cb3410e145bb9f064046765d16420d6f0c3efa329389433a462e222c8a03b5b10c7ece86ea06482b690d91571fe1d1931bebfc6c26f8a272698dfe1d1b6d0320a30a07084279cc8d654844e73a735a0687bdd8175d11774f96e01ed9c11c2f030762c199562e2cb75b51ab890ef064e89c9f897b593b1cf1635e2ed94b2006a603b7dc0d2e689238186fd9a888e63d291f2ae1367b9aa22144b17bfcb30fea3f9a03b5d384b1d744f1aefbfab91bb5974fc99b3d878b291891c71f575a50792b7c4b0373b65caaedf3353efcf1d1a2c67a12a9d1107be57eeac6f5d464d67f9dc5f04d0219ffff03b890dbb0486f73944105dc96f4931e5345f599664e15a5e6aeb051080493fa1f038d5840ca6f6e3ba820658e9119537fc0ee9691d07ce3c9694ce988f21f67275b0354ee58ac36486e119cf4deda87089d045c655d0d266cd1049dae3e28130779ea03752a3a508f0044d2089399a94903558d3f1ca8e0870ac1996317c4050ac5a8ad03e103c79314d48c94b9c48b2e493fc7dba2c229c8eafb4d10b1a2b5788288354f031ef9a5b07cc6d3f2664acfc6a98b5dacd4cd791788b599289956ad7e6776e7d203c5dca8356ed27e1bed59ddc1dc0c006212c44529e83a1d22f49c2134763b697d036873cfae4c829eca6554ea9302802f16dd77fc50cfeae27c29e987d967621ac90366d673ba94324bb85012098b0f8e63e4ebc857187ae97429273168a284f7165103b5337826f5a48f0aa7659681640baec90aea8e228372f8c3a402d71a8fdbc15a0387a3c066d6e8e391854328cb67f74b0d3cfa0c71120147af6da668b9c04d22a003a5e6f0a008bde5ce37acf73f3ed37ef8ffde59abce4e055840f0b54748bd34ae038d233e57bbfe262ee78a93ca5c8384d079008464bd55ed0e2fa21b2ca595d5e103f081b2945ba005f0c46235863f6c1e54894265e1f0ce3e1359261ade6675a8e903528fe07f426544b9cf7ced77adf5db1990b3eb278656931b03f5a3997a5ee32103845fec438687878d8c784befb32e2fc42c923e3f5e96b3f951d6fb1c6c23659b03ae91fe0290c0550523e7adc5881a168fcfb453d7f10b3c6cb542b9018987a06f05581e03d605eb2b42f95ab12d0f63965e58323f3a4d65b3af3ebb8b847c986e70040103107e0c92d231cc05ae8a430260971041a411c426a955c913fef37a2c608d777005581e031bad35b70ee34fd9b39b4633eacdb96fd1a867fa77b248f26eccbe4bd00c183f473632482b44ad6903de57d363b0952b2e4fb4d238d25172f5f2f1d5880d3322a0057fde203be6346b05581e032ec5a5ed7adf4581c248d640cda58dba62baa83b18e6bfbb64787ef2e00c04462ca88302e971031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e0393df11ec42cf6083a7cea2c7f4fae6086feec3698b8cb0bea03655014007011bffffffffffffffff03f8ae6bde0bfa4f4c6279a78570580f67ba234ac67a139ded7dc82440ce1d1d4d05581e030d2eab5223f4988908f654a32ca68b23ae848fb6726cdf3848addb95d00c01471eb337c8121fd205581e035474d173cc4618685603656b37f99f7cafd78afc4e66293444e5afb820040805581e03ad3c1c6bebe0cb6b4a113ba7dcb9f9cac01aeb212ebbdf5ed36c8e53000c0b475f50c2900d0b7e0219ee390365cc04ce18acd1d4565cb895130f432c50b3c3003ec022010bc735e22dedec4803236f0e6bc0d010bbac3ffeaaea5127af52666ddee94016fd2695000a9ecc788903398a3096543b58459cb9f1e056afefb112c91a580703f066ebe5d743dfecc642036e2a783fae11b8817a772b0d9c8948fab349ca2b250693bce30371a0fe65728503be5607a01d829e5be7d16252cf97389c994e8b9da361b5ab0aa34842e6f9712503cf028b025a7bffdec3b790870ba1fa849e263bc93c720100523f9c73b2a1e9fb03f0e44f1af08949496c9847da1491f575e4b62b6bcbfb6de258cadd1dbb492f74034732387355ee19ffba4f2ba23c0eaff7f911a132a152f5d61070beed04e5aa2d034b401131b02b98fcf779d7feb072992aabcc3d0d979d889292c5d00045064e700219ffff038f649c9bc8304be02cc33ed51e83684827bca8525bacea5bb7e2caf93c1d6eda03b7b3be344eeb7b035ec7527a9d295e895a02ea5c2a391d307c1971022707654c03f23cde18f9c401827de64166b78bb012dafbb39cf93253e0b02946516ee9e19a0354743ef2e2f9a2c4268aa9192429289edf44ada545a89ce4157d9b120c76586b03e14307cef32777da6cf3951703ed892cc0e3f72f667efa4d4e533969227e83d9033f4db9a049d61a4c68a7f60d9677b3123bf365e9f5d601c0e90e68c9b3aaad1c030a591d8566041a16f3a5c54b4a1c424f91bb3021c6afa9af1beea03b308f5e09032d96b7f10d01e966997eab7732333d22c14799eb86ac340ccad6dbc28cba83ad0219ffff0369dae717c766ff15a331e96f01626a8d14872769dbb51d4b5a4a9f14ab0be0cc03d8465dc30a508383af8a5ea35e9ad4b0ef8aa6bb4479b5967bc5d319e2d7712d031f39ad8ce2823a95653cbd99a315968cf04562c2f57cfa98f99cb3ef8510d62703c5c88f31f4a0dd99da5c4fe99d2466bd45a25d68a1816f37b04eb148cc539a6803e158c7f5c3651dc77c497254026eddfd512b75c435ddcf32b26e47c28044b948034ec8ec7abeaf2beaee3267cecfa18e38035952870815dfa30c2f88e73b3e21b0030efb0e2b0397af061e43e70ca54d2883a448e2731a80f0ae9d8eab283673226f03b0b13ff2f8a0f96de40eb3c1dcd6fd3c7cc1b1a54dd27aa92e31bc663ec2e76f0302a3143f886434ae884721c5b0d90a079bb5f7ac7e1f2ed50095bba8d165a1bd03928035fa8b8d2b5a9f3d9ecb0c22111b1b1730b62f5ea6f925deefc29a5f360d030f1d861b2e0198ac10efb03a14c63fb6de46403ae503e7790a33c646f69fa7a103dd7c4af13c5917e3936c0b8ae604caa03bf803d5b5ada05cf08c94cf29193583038c25c0df15639fef629fea888281fb388720bd7852397bb1d91adf968925ce1b0219ffff038399028b22e911d6892d9acd4fda10259b9a0ef233b1b1f3ba2c86c1c99bca4f033b176605c07568f8f84772334af714735a56088ee8662a244ec3e7739a30f17b0333ba6d267d7c35b57b3ab816a2357721d9917ae88f2f5e8084468b74a74019e6032dbd9a34b32d5ccde800681d15fefb4245b48b448ac7da6280c8e008ff6a906e03d41139dfcf94307143ae8d1d820e39358a68140cf141c86b86af7c400e07b97c037192cd819d16e4ce79f1c1e875c65e63c74e4dcf582c398e5f2995c81e2d292a0341d5befc24cdaac211c8bae13c13a6d657dc0dc812ff3d2ad643953e6b3d89e303fde38835ac4ff946ce8bc7a35db421fe464666b911bd53c5dc2712183739379303fdaf9ee375d918a26a580fefd6a0751872a173074577c5e0f3016ada436f86ae0358d16f400ad3c3339f0f99224012ce87ffb00e5b84b531a80bb47e0d97f1dc7903290f42be7b8786f6ce2966adadccf52e65ee1c0c6523a352665f52fae7376d09039406aa0804b5bc0c993a009b5d2604a636eabe05d10b1a9caccf899bf09229ce0318e4c074040c069b39b59c82ee821dc429c29c70b4cb9ad0b08e835634b7bf2d03687401c37f5805e4faf07c45e5d94e401d3ddfb3bf3c27a3e0a20834141c826603220c9c2ea8593121f27e3af0a2a49dbf85a157d46ea3279d9536b453867829fd038b56a6c3d83eebb54458d5316f3a7cc70e37a6bb396c324c92e500a7a2a1d50203b35635cc611c7daccae14399c4d0bce35ae2c10db2bedfc23b1737cf19dc1cc203db99ccaba0fe9c62dbf170a8708fb51f862bde6bbe066603db0085f577a7668b03e888f943807d2d5789519f1c29bd205941d71a552ed0f35bfc1020bb23aad1e903b8e204ae8dc45a0bebbd84619da1ede5f6384d1b30fc3179cda85fe8eec899b00368c847c1877f211d9d87f14030e7bdaece3ef4620f958965bc3c706c769e4f9b034a5310714d5e2ecfb401b1dbdd9b214f2d10c99c555413fed32ae9978d6ceee6033422dec82e4931f2f8764ae08c654b09236cf6ddd11778aa4eacbd7657e2ee7003d79b843a338393571892d2c2272f33697e9ee4023e9f20a962973797dfb8332c03872d1ea3acff20cae35b99731cd65e8ced0fe881230a390d52731eaf8ec59e2b038aff3e542434a32a39cc60a62462ff9448f62f91fde142468d53f75caca9d11005581e03fc8e350e537d96b471f8dacb7e91c6bdaa7d7a34c14f4a7dbf9c5b94400c1831470ba798b04f403605581e0317b8bee651ed145713019be1fac877d04787d7e540e397918e4f4f3ca00c06471395f4ee725da905581e03dc73940d4cc3d09e78b0da3268c20ee18a81b50110d6e34acbf3a692a008483782dace9d90000005581e038f5f9debf2022bdcb76fb399b53509a90d1c6eb70958036d2b6032d640040205581e0316709abef2d77bb84fa3a59fad1b93be2e169d6203bf2fb13728e751f00c09467f62428c180005581e032f7509aa28278a7eef5a88a78d8c72de6a15e237676e02cf1256da9ef0040205581e03cac5ebac76a2579d91648d50138bbd6ac2cf9ac4f718b057ce405ac8800c01444e6e6e2005581e03bc990419d5bf7ac99c4fcf0ee68f2948b57d88acde190d59fdf0a787800c014708207cfc9f0a0003072ab34c397272c8ea8bddfb2e9c99cf91c6fbcc7efd926188b8fd6bc28b225405581e03b08a18d1edac62ba490ab428b1f3ebcb276f2599cf80fb51eb4eba0d2004010219ee4e033b520a35613c3ce94ee60212924436054292785143a820884b4313f2b43b267303e85a4a58a2a32b5a35b67f6c29a0c41cab3795b2f0bf4f4acda7d4ca2f0a19de03f67e0272dd8606be0ad19fc0367cd336b88d4e4049e97735f32dfaa28493f30003ca8641eb18957dbc0555c6ff08a32562117b90edbdf3f71e682307077c17c7bc03df49691bf3ea0d3dcab0c4465951c790580321fa071825cc0d1fa0d2cab75b0e03b5f402b8fd52c80079ff7d44dc64c0257eb95096cb9620c38eebb1dba4007b090307a396ebf85a8ef71d1d933d14231c90f9f021ce682055e7a5bdeb98fbdaa6aa0343b559f98e80b404d1ebb7f4c34ea97aa91abd91827d0e7a55c097a828d79b540219ffff03d68d97c6b4a5fd6e60fa3079ecbee3c0d415b5d614f119ea5150f2ad925f8b8d034af9b481d5862539d3f750287b41293f945e7fbfb340ec3a1a17b746241db10d036b3302a353e22f08ffb6261eee24238694dfe3988d5750b5faabde8bd24bbddf0325b56d6e3301c65144b9bab46d3656bf540df2b3c932bdaf3b39767300da9bad03357277d99f58d22a467e2e0aa0a4885ccc710c17b3b0318c345bdbf4082282f703e0f42e1ce1b525c881c1278d939ad798bd722846d4f0cf286128e36d1d920fb9030315ae02791849601189fe2e2770639e28f0a0c57bcefaf702893303a94454c20219ffff03f20d572530093b17bafc106e9f1b62415d847cd2b5dc1d1ef75dc13aae170f7c035394a6153b1ed3920cdae64d73e516863f04b411173245b6f5d91d899fc33e3003a6a42f94c1ce33492f30827ff20f7b22b319f3c49ee0930c7a35fa961db43c7203cc7387e9f88e918973711dadb1a5c0333205727e9cf38b5a1e97a41783db2e8d0367ed427069347c17edef92d48959576583eb6cb211c0c5ff0c9a6477dbb6580803d88136d8c8e1609e6c105b0874f32d681a88a56eeb5d48a8e7fbb1e319ecd06e037d61761f04276216092272c71c6fed94669ab58344cb9916d27c28ac1c39d19a03a0b4debb44facc072d488f168916ab0f585dd33bb0698a5ab9c81bc6a88bf5a503e7f3c8ec0d4f5f35e61bfadfdc475d892cc8ec3f1b9e09f9c24f459c39789ced0390d4bad79a2b05ed56dbbe0679b74646fbc390f7cd3fa17852135f77998abde70384594519fea35b88013f3b971d750965255ec09b515be6f418d1c19e45cff746038e62e9abb5a010da96f218785524cfed2db1223e87028649aceaae5d1c434def036f42366f2f0a62dbed7afb7156f38ec77efeae202953cb84896a36d8c35d4ef20387be4e3b421f651f7fbea745ef18f71abfc78ddcaccb84f9fcf7549100b4ee7205581e0392ad57f39dae8184327d3e3216842d4937a08489eb93acd9299c85de200c01467a17f02d3cc8038ca400a57ca696ef350c97fc64a58cea5b83cdc7c3c462f198f9597e4ea5501c033ba9943af05a48f9f086f88aa206f13391bea1b744de014751ab106d539909690310a34d8dc9bc5d55f84c7cf00da5871f443f7ed1ede3c56b2729567413372f7505581e037a68f547be1c333552d8738aa27381dc3277a9b052994904a820508ee00c02466c29700d0380032df39c0062882ba634fb24c89e7f9871ecef10a6e6a6e79a336f6ed463d5c94203c4e6ceaca51190db6ba9179e97c055167a77f73e2dcaf2a92fd7bca8d847849105581e03915d4f387bb83aa556fcc680001ccf6c195d224b4e4e761a8a236c3a7007011bffffffffffffffff03d501926049cbaa26e07c749cecc8c5a297d7be5aff456040a85c65ba165af39d0300e0c5a0180381a78f7b4d2fdbf73b106aef2a6ed29fbf0f73ba9a938421d92f05581e03444990aabc283ec4aaeef44833eb1301b2954f2d38a067986fb6c5e31007011bffffffffffffffff05581e038cd98a3a9cbf88778e442b12d9ff42057723f00171b378d0c41e9c1cd0040105581e03710434cb2b5acb7d93b0a54b586ea8d9b8c431fd2c23801c83b508de800c19bf0748ad6bb664efcaaa9903b38e2bb227134b8cc7f00f8904f64985f007443dcaefae74ee0f4541374747f903cb4ea8d9db354c640c71089374408851620e0a5da73c53033c5436b62579ea26035eb33faf1aae75866f5ac507b22aef1cea0ff5e38dc5eceb0d7c5c976cbadb140219ff8e03122f29be6040ff2f2150a642a2ced9e6f5e1023c9a34fd52f8b8cdeaaa7f71ba03c62dce421d879267f8fd661f44df1fa4d2b98255aebaf27cd70c2caf7c7570bb038709a68d3d18a5ec4418421d1f1c4d49f87d7404a58c3f07ecec041e52816d2703cbb97ade8441dcbb5eea8eeb11f89d588df03f07273c230c9b00e82c60bcd7a80377df05c5e76e290ee4b2aee94b6371b4652fa9e701b52d5ef451050f5626f4a403f860befd2f34aa7261539c71e062cc33a24cf526f78f045c93fcb5905279ae8f03c15b1c05d3058a2c5071f256265406415078ba8b4622fa4194a3cb544a5e604103b5caa8105d2d3f2b9edd302c3e1b3d5345f28b3e57e4a58775693561443c03460219ffff03fc660143c9312bf6bb26d70394380c1cc2e62c3df55485e89afdf001dba93b88038d766f5cc39451fd18c247a8f6f862c0ea8df5032dcab82238e8787c4661e8e6033f56f4300362aaa706b8bff8430726c2f8bf81056fa1b6e9506e737f07170051032db6d7a00fe42107ae3df5ede392cac16b857a6a2d57eee53cae98eca2826c39031c8645473a37b954d0090df18dfec9749db57a472b47c847158c9dd715425b9f0313874da09ebc485021de85e926be7e420f8788dbcb11c545841d8a72b205915c03be2b65d2b8e1371becb231484a42ee72b0c71f5bdec7f981ea19fa0df96c26fd033a987ad3ed86d01a2fb359dd8275500d8c52890230c0672a90f3aeaad101466d038c36389502931ca15ed9c884c9128d4bfcf8c959fc0963c07efd5aa0b5c59ee30337ecf8153317ef5c17a1a76ec03e0964b6b76de075458dac3d705a172472cd9c037f22422690962900bf8a36850f8e0c421df3d8162051fcdb802f0a5865be7902038890a6006f3bb0ad1a7cf59aa6ac7f9dabae3d6a84d701550e5ede58c5e5e13c03985a03a09452a9d02f85c250f955157b2058dc58c5ccf8f084446cfb5c475b7d037a5d3dc6996bcc12d7e36b0d4b1681ce2c50ed2e301946a358b700b4191e519405581e03d68527ddf9b25e4f10d2a52c9dcdab55d7cd2313cfe1dc42016c1b6ba00c014703394a9c7de06005581e033a7a6fc83daad91e2808a28fea597b9184baeca799fff9c4b1c36a30b00c0347012583bd6c894805581e0359e569e4021429563ed52690f034332b197422363db8808c3935c54b500847038d7ea4c6800005581e03f1034b8a7f6df5b6561c091ae7dc6413f483b3310d40b723b8d882d4f00c01462632e314a00005581d02221c91998420869daa572b539da041c54f68fc41c007a172dfd6d9e80c1952e34801ccd211596de30c05581d0291c6b663d1e15ec7ad442f8e4c0f839b2e79e0a22e0106e20ace7db80403021902020342b8c4db905f7281962aee707ad282df1607b34aec77c22f8f20a921f4b9521103c11a4d844d4a32d742c1e4ec1dee7710d496b6cc8bddde62ad64c5f4dc46b8ab05581e03765de190b8323d1d0fdecb7bbeefd6d1f32d576ac8d4a672d32633c3b007011bffffffffffffffff039a72c3410ac3235ab76a94d7449c9ec32344963fa2e057988cd659d2d04ebebf03f8eb2e36bad9a73017e88f9eeaec1c6e283d621a25961ff06b920062da24d86b0141020219a751036016bdad4d92a7bd0b8377c6a5f795f86916fcf5eb5fa1969a7fce1b329fb15f03d72bc96cee683adadee9c8ffe139d9d0fc94dcae966092bb24512a94f3ebe8270379320f52a318617af5a07bc6d09e8d4c766f9efd941caf2c3df3efe6c8cef64803835e1561e4efb454fceccedd3229cf74a0a273c6cc8fb56950a24d97dc21affa03e4cabfa4e6f96d897be6fbc5892f66f53ec47a373587606fc79126778b09819603682e4def6f13c5b522ff1310798abbdddcf8196ce2dea6ce2f2e616f3d32b9c7038826f10b4bf46bb6710ecbe6dc3b4dbcb0fc2f71d062dce49e1719c0ac02a7b403c080082f7946463023056cf0946fe6ab1c644bf293f278468816d15c01933b1803efdc19fc0c4d6b3dad2faa916e3907f41c51445f9a697e5de6ba5850414d3c4703e458c1d84241a51b34bbf7d1ed2c11c0357bb7a8fa40a47e90cb2a56d1e12ec00219ffff034cf2dc4dd8f4e3b5ab90bb129ed0abced1d4e2f293c4bddb2939cb8fa4f575b103a6edd434e002cb81647453f1bc21cbe36926d4203f5bf5261c921a2d19ef658c0219ffff03a11e388af8b0d1af288599b60dfaf5344f7b414d398a625b62fefd79493843530219ffff03d8379969d6e51c75f454e45a95b702da18d1b63bd2570538a03ce78fbf46ff13035b89b2c4169e6593ddc3b745db7f5635eaf5fa07be54c3414df7cea9b9cd355c037d0771871aedbe792065c8974ae23dad31ca0f96b9155d6ad73a0ae4d2786d2d038764e6b6718267785866b0591c67d5679bb214b0f316947570874f1a38bfafdc034fdd40236a8eb818a901c6916cbde539d8a48b973178a41e92fa50177d2cae2a03679264fc39ad41764bd65a79484f1a6d21a83c7adeb6eec29b0356c9dda7a8ed030744bc71e3e44c8d5a80495df298aa180caab485f109ae0ff936e9b82394fe80038bebab39897f3f0a14bdc2a6d1971a7f70292708d540ffab3f88546adbe99a3303a809b33c223a95d19c59390db371a4f95aac3bcaef6a10933f0826073cf83aa60349a0a514210083a8ee0d17e5f071460151965940d30ebf17bcf37d3c461a823c03dad9d39d1b2fcd3bc1d79516bbdd71b1ad34f94dc999a7c8091d234cdc39d166038f8a33d429848f122391d974f075fe470b76206c0666bff76164c767312595830312fd0f34f69c406100a4b839386ecf18f98c93ca2a0d20c280d07048d4bcff9103c8c78c5d8091c8b93d026c1abfeb41960629e7bb8bcab2915ce348ed80d7c9c6038f56821f96465a91da508b32da550d3fbd7e471202bfca1002ea2a1e88885f3603f4a611fd0301f70770228a5dda6278474597778afdc0ffb66056fb97efa41dc503148e180940a8a36854648ccfac48ac76af8df37dc5bd9eb2922d0213f135b6da03876618dd801089958f07b48dc242669f9eb95b33b25b1a36e6cb35f206b1ef4f035b349b714dcb407c0f51e5d5f351ca298ff9690ef5e49c99fb810c731a3946d503827757aa49f9d98bad787579f24be0fbae5e49b1879265a465aad70b9296b90d030ebf6150bfd9212cc8de405fa65c0c79ae33b3e51c5bff8b1a10a1a77bd522a1034c3e5ad4c5c2a183e3c72693dcd9a1878124994f4d85fec0cfddec1ee9016e7c03d9f689b9608701a629cbed04117fae055cc1e337b41c11d22fefd4ac9a356169033175ffbb969d884259a6c6c40f7751375f4fc5d3ed335182f5fa8c5283f6f2b2033f24fa904fcb81347161bc92ca053b477b0e85f63af88652004f7cccc3d9419f03d1ea32088488e29db824df68297b05750bfa6fee5f9a12846dd22061474f1fe2030a605ea14a06348b080e5f0b14b829fd5d28e3dd5679f6da31dec1e7e53eb61103df0802f76b52f371c3eea713948b6918b8a7915f7392dbf550a9beaa144097b705581e0388b903029bc7be03b16ddc09e905281dc69f48c5e81f87911e4999bc600c0347457b90d1955c6805581e035f153c51dca08e1b611be70386f0b2c608d392bd5d182f94622fe000600c02468c7a795c708005581e0355d88754126169ed6faa14d205b29288217834613678d372e974648a900c01471be8424be9ca8904590a2d608060405234801561001057600080fd5b50600436106100a95760003560e01c8063461a447811610071578063461a44781461012f5780634651d91e146101425780638da5cb5b146101555780639507d39a1461016a578063b298e36b1461017d578063ccf8f9691461019057600080fd5b8063167fd681146100ae5780631f7b6d32146100c35780632015276c146100de57806329061de2146100f1578063299ca47814610104575b600080fd5b6100c16100bc36600461077f565b6101af565b005b6100cb61028b565b6040519081526020015b60405180910390f35b6100c16100ec36600461077f565b6102a3565b6100c16100ff3660046107ab565b6102ef565b600054610117906001600160a01b031681565b6040516001600160a01b0390911681526020016100d5565b61011761013d3660046107e3565b61033d565b6100c1610150366004610894565b6103c4565b61015d61040f565b6040516100d591906108ad565b6100cb610178366004610894565b61049d565b6100c161018b366004610894565b6104b1565b6101986104fc565b60405164ffffffffff1990911681526020016100d5565b610242600180546101bf90610902565b80601f01602080910402602001604051908101604052809291908181526020018280546101eb90610902565b80156102385780601f1061020d57610100808354040283529160200191610238565b820191906000526020600020905b81548152906001019060200180831161021b57829003601f168201915b505050505061033d565b6001600160a01b0316336001600160a01b03161461027b5760405162461bcd60e51b81526004016102729061093d565b60405180910390fd5b6102876002838361050d565b5050565b6000610297600261059a565b64ffffffffff16905090565b6102b3600180546101bf90610902565b6001600160a01b0316336001600160a01b0316146102e35760405162461bcd60e51b81526004016102729061093d565b610287600283836105ae565b6102ff600180546101bf90610902565b6001600160a01b0316336001600160a01b03161461032f5760405162461bcd60e51b81526004016102729061093d565b61033a600282610606565b50565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac19061036e9085906004016108ad565b60206040518083038186803b15801561038657600080fd5b505afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061099b565b92915050565b6103d4600180546101bf90610902565b6001600160a01b0316336001600160a01b0316146104045760405162461bcd60e51b81526004016102729061093d565b61033a600282610630565b6001805461041c90610902565b80601f016020809104026020016040519081016040528092919081815260200182805461044890610902565b80156104955780601f1061046a57610100808354040283529160200191610495565b820191906000526020600020905b81548152906001019060200180831161047857829003601f168201915b505050505081565b60006103be600264ffffffffff8416610656565b6104c1600180546101bf90610902565b6001600160a01b0316336001600160a01b0316146104f15760405162461bcd60e51b81526004016102729061093d565b61033a6002826106cb565b600061050860026106f1565b905090565b600061051884610708565b9050806000015164ffffffffff168364ffffffffff16106105725760405162461bcd60e51b815260206004820152601460248201527324b73232bc1037baba1037b3103137bab732399760611b6044820152606401610272565b64ffffffffff8316815264ffffffffff19821660208201526105948482610744565b50505050565b6000806105a683610708565b519392505050565b60006105b984610708565b805164ffffffffff16600090815260018601602052604090208490558051909150816105e4826109c4565b64ffffffffff1690525064ffffffffff19821660208201526105948482610744565b600061061183610708565b64ffffffffff1983166020820152905061062b8382610744565b505050565b600061063b83610708565b905061062b8282602001518561050d9092919063ffffffff16565b60008061066284610708565b805190915064ffffffffff1683106106b35760405162461bcd60e51b815260206004820152601460248201527324b73232bc1037baba1037b3103137bab732399760611b6044820152606401610272565b50506000908152600191909101602052604090205490565b60006106d683610708565b905061062b828260200151856105ae9092919063ffffffff16565b6000806106fd83610708565b602001519392505050565b604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b805160208201518354818317929190831461075d578285555b5050505050565b803564ffffffffff198116811461077a57600080fd5b919050565b6000806040838503121561079257600080fd5b823591506107a260208401610764565b90509250929050565b6000602082840312156107bd57600080fd5b6107c682610764565b9392505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156107f557600080fd5b813567ffffffffffffffff8082111561080d57600080fd5b818401915084601f83011261082157600080fd5b813581811115610833576108336107cd565b604051601f8201601f19908116603f0116810190838211818310171561085b5761085b6107cd565b8160405282815287602084870101111561087457600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000602082840312156108a657600080fd5b5035919050565b600060208083528351808285015260005b818110156108da578581018301518582016040015282016108be565b818111156108ec576000604083870101525b50601f01601f1916929092016040019392505050565b600181811c9082168061091657607f821691505b6020821081141561093757634e487b7160e01b600052602260045260246000fd5b50919050565b602080825260409082018190527f436861696e53746f72616765436f6e7461696e65723a2046756e6374696f6e20908201527f63616e206f6e6c792062652063616c6c656420627920746865206f776e65722e606082015260800190565b6000602082840312156109ad57600080fd5b81516001600160a01b03811681146107c657600080fd5b600064ffffffffff808316818114156109ed57634e487b7160e01b600052601160045260246000fd5b600101939250505056fea26469706673582212203f93907b0eed4c7e0fcbb761dda4387c9f9f9de3202c7953b24792f8ad1de09064736f6c634300080900330382e16ecba7c5ab254af3009443704f73b7c60874dedf098d850e4ec64115c54f031d6e4baa8a0ed4808ab1b6ce6fc6ba10a86e60a3fef60c2215895a31d71669550386e9343f7ce1c0be5797f20a7f851ee87b991e425b6d37796d2ed36c335325b1030b81909342441b3264f44ac34a92f166972d3e3f8a1c464243057e202b1ace16036058e0e0525873399ce06d81ec01362dbabba3bb4314a6723cb754aaf46c23d9035fe554bd9db83019fdbde001863167d9bd395ec2f7a9ff68e8c62e25192d64840324025e9563204fa3c7eb684f85a4ed25e81703d746b22284ae38bc6ccf972062033e7cb66f40201db85a67e0a60be651aadb3c3491393a6549ad550ad0473b02970321b9217de77f02bb3018212f8b22e81a101ad963a0f340b945b7f65c91c20db300581f025b49e538f35135f4630960a54b82a2cc3f3c46e6c172bc255022349d0cea5820cc9b7d7ff627a3b1f168fc862362f89e55cf7e5826a0bf627e28d76e072784f500581f022e3c3da77e2c1dfb505a2da795408eeb3df7e692a6f80d3f70694cad084e5820860827f64b47611375684d021395cecb3c5e75258395ad220edd793ead1c37f300581f02833b3f25e3d57e12862797c001e4e940dc93165ded63f72357a8c12ee3855820b4aab0eea48d3bd4bbfaed3c0ed89cbcdfe2fd902246d79371b6b2788265523500581f0287fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5818012596350065cf56bb000000dc870003507005000000532900581f02c18aa26aa17cfc53a07e49febfac6027ca3b92206bf0e465a69b25dd8c125820f2f6d300780177aa0e01feb01e1f631c8f921c714e6ddc4e6a9cf0cca1d1725e021902a5039c842dae35bb4d41603cad2a4dc579318365d60010ba209b835955b33542db17034524555f38b226989adc010962f2e5dc365b39b59e98a4339dcd7723f8a9386303aeea69b316411d603c678949acc36d90ecfa0cf2c71013fdf2aae382736a676c039917d2eced3433606996dfcaf0d41812d4537f0e3201087b1098eb08719dbac303bfdea9cfe55e8baaf2ea1e756e0da2368212ccafa3abd5744b8c08d3a238a0fe03d730f4a9c8428f82cbdbf5cab185b92132c227409200d7f61b60122d6de2b551030ecede73573f60ba2d71edcbaacbf3a7b593176037ccd6cb67df0040f79352c903b66ad24dfdd4c440905fdb041f3ed9cd82f0a489ab226bfd4732d3311d02f5c80307d5aaee35430b5ebc8d638e803ee357c25d4546585bf0ed55dbbdcb0f6c80d40344932a5041a59b0c0567c3d9e9ceb2360ccc36f2bb20d959db731b8cd48c1b020219ffff03bf1d0953000a94eda88ae78f48eb7f7bc5d6eb02e6133c64308ee0a2fd38620803203ea03cb912d2b74708cdf400d8f86c06275d43f0689e9e2a15984488eadb4a03852fc536a33f26e137869b5a1c554320f95a6e73c0d765b6b2a42922a63c77a2034f2d45355beca41a93e632b1e62fc7d8aa86be7d36868cd52dc315deddfff51103054d278863d2390dc4d8ca4786a6dfcbd5e36dea3ed72d03099bbe1909c45831032690f612b07c74e824f7aaed7db0f8e5385f8bd1198f362e23d365348c1b4584035c321adaeb6b516deb18b127513807ca99efb9819e3798ab13adfeed4b612a7303510e5ce8a37fec4cf1ef47c5c488aba44e5c95c1daaf6208ef235ee28e59cb6d03ce04c42d359fcba3a40dd3f71aa76f928a931bceca9b9cfdb0d84cd03e5b3c530329179c72ff7f4a498b839bc68d8cc7d6705fb3f82f5ed2d18463c2e2d5511e170354bad83d2e9b36be18b9feb3a1ee9e146018e6ccf41ab534d139c474822bc6ec03cf0daaae61af4d7ec665d5f4cc5d47c97851d04cfbd5d3f17b2c493f677e1855038ac73676358073d6e79467fda1c4d7db2d2aad545255bbd930ac6588240685a303405d3690af381b0cc89e24c3b9d6ee3105c0fd87509fd815f18745c2411e8a4f03ef79bc49010dbfa74664aa8613d29924206cdf9e83dca6d11a0fbdf01f02f3820219ffff03a2d92f07d9764d5525c6742f9827e49c6eaca1b17c4822dcd782a2d6b3c441550399bee574a7f6890abd13f0d0e5432d39b1b396db551514ba840ceb0f56d422bd03f51a931f165d5eadca32d7ad0d2057139f5d4953be0774dfc1a28dc45ae12c580345a842203c6f480fe7b556cb274d25cb45c0cea8cd03a1c6b260e57a84e6e16003b3f03f59692817c5ccfb230e2e196160748fea2fe4d452ff92cb5e5d054d8cde0307ce0891c768d21a8ff687be3a9f01d583ffb6512f3f4671859fd4e0b0a4480c0351d115ad57e8fc1a6d5cd36496eb6ffcfdc3e53c1c36356a14a2d46a030b401b03f105c3b4112afbc53cc4f40806c3ee64c430cfdb700d7f77c20cd392f1d2cde603949056936899deda74add6660a67535d1c528a9cfaf8d526ca2cbfa85a270816035f9bb39961384288c9a26f7c3d5fba042e52d34da7707065517e5de78a4a153003f0e4093fbb689ead0831cfbbc50e1560acb54a40db9af98c97acfe4b5c7293420219ffff05581e03d7676ac77b3a6b9f41805bc3bc37c2becc5e73a2b948fe0b150b7410b00701190a2d05581e039e51deb29a7f0a7c84e3900696a13277f02b01ca843a1e3f7afc47ec600c01472fbffee2036df40319da0902a1d4cdc4106256047dfa0e14033cdee274e8dc553d4bff244d19debe03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e037f2f249ef3e518c4d8b8d2d08cb6026eec99caebd33ce04e929ed4780007011bffffffffffffffff021937460219ffff0348cd8f76a129bec822bce47d812340144ab7c7104677f3b542a2954ef6cbf2d8032bb964316b46a439b17f641bacd516a8c30eb2831b78cb00254888c88c86d6eb039c4e02c6e490e8e2378c2df1958a88e4a27f7cc20059a2f7bb36af9150c7dc78039a1f4dab775e3fc11f8395c4c3115e0e77fca032936f792cabf85891323918be0343cbf9631eacaf7beb52a7f614103ea05f83476d22370d60d582b76750ac955c0338f15d2a843deb73bd9d4fba09137ec0a0d8984095d461735697f70e83cfdddb036b3907e0b6aa78b36c83c75d7133dc52cc1cb89175c3c2d8829d1aaa837be2f503e42b7bd64cfd5fcdbfbb2b80232906544e584aec07e41e847798c5a33b97211f03d163436e585ca22f874345b94185cc5acbd5745fa4137c4f3614fd3f4269ed14030c01543cec8d2d0e00397b6fb54f1ac2ea8d11e8c80c7cbddf86914693b8796703f217c8ab50c70a14dfe8a4dcd5e80af0cee401803b9c1585babc969bb88d2c7103892d4494ecb0e09e49d89df13ffed62b46f797d0cd42b26f058481521456366d03ac566854d51925f6d03ce34e3c1e60af4d46d12ea4f3823cb6b7bf4f17f8da9c0396b59f2d84bbca270b3eebaa28731ba472d01b8d429892764796c61f7c40c8690328bf526f7b4930e868912d9d182833ec10e64e441c0742e6a87bbc3073aebe8f0219ffff03c6cdffba84cb92041ac9190d889ac19caa0fbe301fe32ab1e1fe79cacb4cc7a403f6fefe50d50f4d5ba335890d51cfa705f4e0e5f1378783dc78278b0ed1ca57ff03bbc39cc8910d927873eae4a384b8c98a045c8eaa8bf563723c9561a38b9dcfee0349a8a188473f2ce5cddf80d77a5e30125209c743828b2e485c10076531eed0840219ffff03d4f6737bc9ea3c43bf6dcbd29e3c3302f88a6d6726e7dc56fab6727c147bd3070337a3b3ae1c69ddf285e3195a42bfdab115e818ab0316e4cfa670b3e248aea0d303e45e829cd59ff7b598bc42cc05947a3b9952e8e21ccc46db419f8d959b34f9f5035f39d221b6b30ebef078b25a5f250562aa2ceb97924124690c60e567992c6510035fa4a6973e3f3e86a9496905d2d7f84f85983122b86ae9045d83a762b121d2d703d3830da9e2242798e0ba7635a15aaf0ab2be7d0b229aa36301c8ad9cca9df24a03539df69cbfa1ad332ac7bfaf71e37a923d16f8f766d14816881c7f199106c82303ab31913e213c37f18ead7826bdb89a10694709cbdd7f02650bd3095a5ae0d51c0219ffff0219ffff037e518914e7cf81969e69fc3f6f9bff670635c7949b138d1cbe05a10c1dffd49103a24e20f46a9e42a46fe8078361e5b8c24756b52f5f68321341888b84c6ad6028037fdf89974b5539c14fc008c249878c8022d06fa8de54d32ddc0d77cb43ce0e9303fb7e94bd85a525807d516158fca042c971e512ae41692c3f98e0b83b9ec7418f039cc7133b6a5079ef69fe93967982e638569fe4d1ce50f466ca595400be88a33003867d1429bc05e9769dd96aba14dbf65ff58650b4d1fc5bc5918db4afb68153df037eff9aada9fbda637a3790f383a60ec6d27a83bfb85920d53ccaf29ae5330c330314d9db2f7775825883dcc36dfd8a654e0e6eaf17355676926f3c3b1cda4891f4036adac55a1c31fea7a39a7aa28a642c63f6c51cef7aaadade58d94016580f2b8d03a74f343ce6a958a08d9c5272a16d95909776b4afc072635575b2407ffce1bf5a03e497dadf5ede78a3f57b0541ebeb8b4487e056468c3fc736c4b4943c15df4aff0326c32337b66a9b8bec432f3d679bdebd0ec508cb9e71c87ee37bedefe89fd31d03c6e400111ff678f40459d6cbbf6c18bead8d734e19ba23cc2173ee14f36cc3090312baac16e431d86016f03ae20f06431dbc6551a69b84255178024d344ee69cac03e57d4524e2903faba29847a97e12a1a0e9f67757160133a014cf159b6ae3fbef03c79046dc55b551fa00f972591ea420ef2a0e43d1d004e0e6b667d53cec5788de03838fb44dec2a8543c6a79bd409a5a271467c1bebbe0b976eaa216c93bf67d8f203aba60ac3b19db9bf9ddddf7d3bcf801fa25a22413f1fa0f5276a250546a49fa70376103e8afc5d86cef90c1a8ffb212b317555e9be102e5522de26b0070328251d03d0075ccfdb9c80e82c2c9ba42ea5f7ea2cfc76406ccda8637290490ed5db60fe0369244ad32dfe2cb300fbdc184fbb3e352bbfce34be54ccdceba5746357934d33036c311ece5ceab381239880213841aae1ad93ef59cb89eac281386975922cae4305581d025e77f2a5eacba8431a2feb1ff66436a5e28ca0ea21c9671c765143020c1896480140681d20a182ca05581d02cea6064167de0925e2aadd1399955456a384bcaa34933fd032e55316040105581d021883327ed2c54a0c71a17c235dc61037f7b1dea83db7a7df615214480c0142140002198a0005581e03c39e5889e35978e950f0edb26a342e56be22a73c153bbf5aa58ce423c0040105581e03841781ee204d135961a4751fe4c917cfa410d284818e2936b8d472e9400c0147b60bb87bed0bc005581e033f8e738eb50e33ae63ab97e46758edb5ce92eb2474a236c5c4feb31cc0040103262c810ce90518e1e08be462a275add35723b7634b26d3ca6b70fea5f41ae0e9039e4c2874e05f6d94c5f215b7785e2e36f4ef5ab903cb6074be6ed47c2c6be59705581e033fe66fb0f435e364e2fce8d5b28bf27c719241c66ab9caf092bfee6c700c01470429c1e7c7f36305581e034c7a952ce4f4c609e7d978bab0893fa2dbdcb1587653f0f39dc971ca7008477f1f08216945c005581e03712719b6f98635d300a02cbdf5475e37ec536aac74101ec73069c921b004010219b16e03018f394cab03f824598b379ffa0f46b425536c7d06322798e8c3eb898b1e5910039587da4977392b587fd6816f89b0fa2f471575e7205c91a961a4b1dbdda25d6703a294889a9fedfa7d5565d9b2a68e98d0eacdc3e2451afbdaf9841892df3b9e030322335afebb60baac717628bcb68dd00d15511182de7590ec0163d4af379fde8503110f8ff03d2af8967747c9e32eac118e5bfa37595739ea97800d0f6c251934b203e4c1b6a8032579962e022e4e62243eb753d5cfe387d55fea800afc1fbf95b444038960ef54bdcdb44066a6e90e125cf947f90551c6c58656945a94ada3a8553055030547d3d9a3dcc23fe1f31d33d3aadb25b0140db890d9a3d0cbf7a2836556964e03f3dbb662f53a4f465b78077ecf2f2ab05c7d68f2f53b93469ac670ac0ac7b7290393c1ed752a413ca7b20de3e1c04231ea930d2658c54d12e337b381e2899c810803e93758ce1ad8fe46890c2a63da2c53dcee3c3e8771f953276447b95194d54238035040bfe6819db20715f77fb813bf63aa09a0578952303c7503722573a37b56f203254a5adfaeaa072b33d5023538554503d76ae07e3762b25794fd6d4e4a5dd02003119dd3724706a1ac74269f7a6e9fc3d42b2e43581b01cff61e54c43d6688d372039f5025f75157056063604f7ed8617c54d9f8d4ce299f5778c149fffee11bd3950219ffff03b2213999e494bb9a0bfaf180730400ce84eb9c63a6ae03b980c942e4ebcaa5b303c7873207feea76402269bcf12975da7ec8a3c001a707bfeeef905ff21853ae2d031f8d0c66e3b5d3e1bc3cc62725b4fce735dd8340a4c18094b7fe3055eb866d89036ab31dde01df6aa7ecd12950edb2eb49a988f24bac328f24e5d380022f0ea204039522e38bbd0991c657f0ee3cc3bf26e9217129b8b8b548c32a00d15aede44cc60370543392a4e7f19c0e2503e24938061f1f79c287916f817244024dab7f06a9c70397002350afab8ac2e5c89584d84247fb2a27a25da315a56d128a1834ee6a0de00306bd8b9d47d09f87a83d26a09322646f99ee5d15203c9206b5b165e1cc7e9c3e039f6945e05d1fc45eb797a07ff819ece407ac14406d36566b0d1a8abeaa51337e031528af4e9896763d16a8a1ab234b1d38440b5dd7b3270e164afff9c0cecdf8d603a1b9a1ee06e7b6001b9d81714bfe33b8b817afd901093a1c410a1acbf2349516035f222307c43e3b383453a0fd6090d30f36605079413d18e4b0018b6ec35667890219ffff0306ce8e4b8fa2754e60e2af10d2c949370b21e2bf84bab3f5d50700b8c9f68c970309e7cdf7dde4e8cd3696b419fd0c0cdbd93ccbd5096022b2969c412837f1fc670300d8446f84ba69b2c64136807c0f0675bccee931773e4756a189b0546dd7b47f033b21f4e516a186eda5cb14a3dfc96779b227666a6090d9ea0c9c9b78066368fe03e0e833ebd0521ffbd8ff8a471b5be453082f4b1a9435518197a7193be590fbee0219ffff03f641dc3863027f582f167335b0bc092b92307b204440ea3b8c636e4eced5f40103c5de9c89ecbddf629140d69de1c8fd054fda58ca1648a0fdd315c3dc5a2eea5003436f580414a5c4063ba61fd1eb25c92f8f7276a178ce5a094d58773b0295d07203a2cb1eb94a30f4980898ef991ab0064173d5e91d9a9c4d89ae64d02707816072038905821dd956eb67cf8714b0c413ae18de5b2fb3c64726027ccb8510e905b0aa032949a37293d9a93a5af8152159c232d3c3fd10452f0c761094d085925b90cf9003e941b01e3bca30b7c62e01e194fb8d2de006f8d69739378883e82673892ef9fc03ea167280528c0e6d71d30e2989fab6b4c763b0a33157a6a47664d1e621aaec1203120047f7c8b1e477d8ed51a8729bbb64a4bc118aada741b2d6add93a3f286eec03c99eb2014ab04c1e23985c5c9f1fbf5c8c62ce7e2fa0f715427c053a34633ba0033a0bc290866f5eca56c1ba712bfdfed030551d6fc4573dd937db8bb308333fe00370f8cc6cc7a3124f8297d098f74557b21be919ddfcf43700b07335d556d73c61031bcc48be53e63bdc776e9e9426a5e26ab7d7a5c7c83cf8ea30c15cd3aa3519a3035ae4fdf87734ba8693f8a433f1aa6e971b3bcadca1641d59bde667d7dd9727aa03d28274198e9b0fe4b9648d5cd5f00faf27c882fd1f74f315def9ce35d0104061035aac9b6687bc305105e8ada51993565255668151aaec72e64b01dc3e135138cf035ea326c6738bf842e9008a1dfe7233c68e57ee28d271df21467d7fa2c1c1325603be46ec272c2e7b9a28c0b9cb21a0e94902b299433949a09cbd55910b0e7581870387e2bfc27e723ebeae6706fa782035d32d9faf2c86fa14ea86dda31a2f7d979f0300cd618ca5fddf3ac3474b70c5850ec59f5da4d44a131bc83ec4e9ef97435da00397c093561ab190d3b8a3000750134c1e56a6ade14a30191723fe3c94b7cd359c03a7576d6f4f44afec2545ca71fb5651d702d5382fa6a1a7be3a4f92a933a3f99003cd20a0e3041d01875688f9f744e6760f325cec9cb04512d77561b9a60e56cd8f038569349a9feaf6c216760517bc93866b8f9bfc465c66559b3119b21113196a4f032d6b4c532a181424ad48398a01100698d9c37a733bea5c2ba86bc23f444c89f60399bb25edef27356c06803cfb74f352737a36a12ddedf1ef5d6f7f41546643d6903c7f6867481921b56822e329cd82b36e217de5a22df45a50ddc3bdc2327177ba1037574489e4b0ac8cdfd890a8d46bd717a31b8e4c5397dd620a7130325e1aa170e039366eac405f991b5a66a7c30e2cbd29caf694ad7112feae4f1edb397a0dc5e610324221f310b84e7c2a4541bc03cafb42acee0fb67e48daeb90072501330219f6103fa8efb0c25af54443f8f83e7f8c4200c967be672e569cf99bb788c660457225503dcafbbc41f4cdac65171d4e43dc5e469640efe33b31813250e08a1c4f1944fef030e422fdfa4a342e38f8383dce8f3eea7190a79e2366859aa840b6a6d556339c3037e9357a2f40647de373af5ce0ba8c5447f20f83d3960146288f23d09f6274deb0320615eef3011a28ae3c7a310d003562fe469f100517f6e121ffae34d083ffe4a039890d09c2d4f4c1f8aa13c790a35a5db30dbff046cf2de45f51551f232703f0c0345e50cc93e139e7d3cfbd7a6cab9c0128182d7cd244bf9547939a95f51bceb4603cf795b6358c2ea8406a78dfebc9a3011b8b076eb43879041f4b34c59bf9323d505581e03b7a9a50e6f9c73b1babd36339020cfd9544730321162b0deb421526580040305581e03af509ebbe11afb3f5a7e9248f3083f83ef606536734e6f6ea28dcd32500c034648c27395000005581e031e5fda0e22b82eec7cb5f9b8f2c05751fa5bf024a2a20addcece9cc530040205581e03fb8b081efa73ea3b23333a9a948ffb1caf0272ee821a11d779a8eeedd0040305581e034cb129c5038103abdf8fa49be68fc60ab5d57042637519df97e50c0fa008476a7aeba2e2b80005581e030f71343ee4841bba15d622f8e91ed52e909caddf80494e388e49ed6cc00c014707734e3cb34700031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03b1d5a5a08d93ede531e0e0ee417c9a695a3ec104dcdeb22f69def743a007011bffffffffffffffff034dbb094043f1f1e92d0d7e61da2fe7dd7b19149d63b04b052d27ef341c0c240e05581d02f82d19b3bebc29c12435b01fa34901c30830b6dbd933091bb797d00a0c1a000156d249abec9a07cf896705b0038d91eb4bbf4df2f65fa01e5b22a66dd4df5e5804148188162cc96cf6adec9cd2021902400219abe6038c98aed84833f5b5806563fd84a0e2b9096aa3c2cdf931cdedf910bc6bce8406034ae22bb08d977cea7304bbee3669120802b965bc584c28017a3241b523e1601903c735ed2e250b9f48890b9c26a4a71d615610fa1a5ea957142872bc5a261c4c810219ffff03da77d90d800c6a50daf3471ddeae7544a505a93b342ec8b7da405e41293d31ff0219ffff03aafbce101eef36c8eb98e88000391617f43b8cfd5d7fa53978ba41d1bff8a365037d57364a38c47c6333ba770f49727a1772265d401d66eda4648dbc4fbfa88f18031b6e5761a3812565a26a5d08c0f7be95945dff8edbe1a94beec04a5c23b1eec503646a96190262cadd5ed7f89792e45982161b04470963fc14977c87cd0d31dfe803091ac4318d6ba48074fb4a03a51bee2f068c1ca50a478ff1f8966011531f3a7c0219ffff03727a3855100763695b4380828551b3004097f5d16a57a7162ce8269f6543ed3b03fa850f827ae9ab6c895227f5937825d39735481e5c4c5ce620bb4ae06750fe8503a447e99239578d9d62dd13377540268ab2b3d9c9fa777d2c6d9b9bc79bf7987503ccdbce976241187c7300a59243124257eedbfb37b6eaa9be5560b2018becc2130219ffff03a727b6f522f695e53b6729777f26150024697d5f01aa3a15676de3fb5d53d96203b675affa505a2ebb5a0cfbf907c1e94b905a6fd508c20e508956ffb92dcd28a6031363c99e037be77cfa0d45227d452da7e8da83a843162334a517d4921c4b735903ab242db40935194b12dc6aa8643432a35624a3542e4f3d2a5d7c82846fbc8e4b03faeb68130690ec13b583d2073187e472e711ed066859d0f8faf2aa6bab6fc6c20357528a0eadfd7eb7dad581a35a7f50e68056d634ec1f172a0ccb0fd933968b97033569dc93f84780d49f7d98fb87cdfed267f279c8b752805dd9d4b111e1c072df035a82f11314f86ffb640a09b3c6ab67eb7d9f07c80ff13fef1485ca75d5639ef5039172600577062d32de8f5548b3e60b603d6604ad664b7eebdd2fbf2b710759c9031545ad6ec1496103e7ef4768f4787b5ee7da05597b264638aa694a95baa2e3fa039973ab61d5c88157d3fbf4f89fa0421aeaea552c6f000e3000a17ada040c6748038b0043406a46359a353c001f0137b43a07b73757c5688344f73826d0cba7470903a8215e00761f940560e561b11afd9eb75e87bd7430cdf15951400adb5d2eaeb103c155b7eb18ba26d533053f33c6067f2148e5437d627015a61b612b1c1fb2de6f0304a3747592539e606f602f9daaf4f2af0c940404ff257f93e381a683ed42067b037bcd0320fe06a80c1585d769048be9fa451c452549fb8226a76b1fdbd398a0c503c515eb1071662c1c0a9cfb9a9d5c90f409fc783443f2f78f8cdee5067d8034e8036766d86b3f508ea82246d50c11175a0c99fa3d38ad7481e09724eed7aba26d7a03a51a0e01664c98935b9136fce1bffb4011d5947fa34287521fc299e3e47d19e503e7f618b2df93bda5372b7f212a7905c02bda58bff742cbfca20f66afe794620c032076bf006883af7c5be35f6248d4b75494ccf490a6060f330480e36a58aa04cd03ba7ec9946cdd03637fa21c74e395a1147039921d39a942816379021993f42e170369c6203887433390a8f870252f7feb4fcb455aa4db21ae35cbceefde98bcc5ab037cd0f76bff67aa03644b889f1c69f5516e42974f84480dfd90fbb5a569635a7003b8be072a8b3abb0eb16781c5c2d79005c33a397f9741ee7f019b9ffd31f2a1d40387a2a8af8142dc8cdf463bf7dfca36beb0cfd3ad43812bac8e243973c0755fae03bf3b3abd57697ea92922ce0399df372fa7c11cefe0c56289e58d3102ca3e59e403c2a9bebdc399475f67c438fa646cbc814eed9e45c2fc384f96e6f77753e6aace0309c56b0fd8f5e11530dc639abe1e077ca8c3ba883c13bfabf8a0d546c747ff9d03090668446ef67da219443a39d586618c267df47ed3197daf4661fbca2e398b1d037615a6aa0db123d04d505358dd46a274d31591d8fa96d0b17ab1e80ae47a0a640397f5276260859de9a61bc8ff635fe0f2b703b6db0d977c51beaf6b666cdf3337030e084879b07c92823d6cc06c279068f9be249db0dabe6784a0502f3ca1107ac4034f5a5f6706dc853cb3ae2279729e0d7e24dda128a77358144e4c0fd3e5d60e980605581e03a474b55883f19c7cedecd70f91e41075160f472e7f6c516ed06be9fe7007011bffffffffffffffff05581d021e683b383215fdd9493358b97bc14c294ebb9d258745ab6b4a22d9f80c01474998b3fb4ffb3005581d03bacb9912b98e5b636de84fb0472e9980019d88120f7d7bd52f7301900c1859470259de6ff8d9f305581d03b61f9c1c7c757b10d6840fe2a374efee19215725c0a9137936e0f1a0084702a8b3121ff57002188203562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581d020c72a0fa0d0e5f1c31501aaff7b9f945905cd66c093d8168bde5767e07011bffffffffffffffff02190a2005581e03c91275f475f5b26c7d7b103c1468d038e0d61a16b3833752a4d6ce1e700c01472c822f067cac7505581e03848d91b4ef4feed399a974cb115cfa5430c463bf436d2ca9fd711772700c0147042af5c118dd8905581e03f7c468f3590269208c21207ebd361d1e3f2dac6e9ec0d66a34613f7f000c084652b93a44930005581e03f793a9f870c97e40054c047c404d0360d1f1c3c0911000a9cdb5a79e100c014717fb30c830fa0003503bec9bca2eaf6a7210d4b1461f80666f4024d81068ec475d80ab46fd5df81e03ba469a33d41ffb5f17665b31e8a1d5a27332b7957a27da5afc5e2055a6c7f6a1021969ac03086a12b4ab51686602d147605aa0ffebc359426fdf9ac346c1647d74de93301603d8ecd1da5fe1bf78c76e93f2f42e401d18e2009dd81914ecfc96efafd837c36e0366b2c49692773cb4a049ce8535672f5b93cf3655433c19ec9e8076cd3272cee803786a465b6de21bf8bcb9bb1ac6b0ded9d6bd71fd394a5752443f5a6ed09e2fe403850aa8a6a48791b7ff85d6bf896d2d4e01a3a94c2c94bda38bb8e4f8dde22ce4037334abae9295627a18f359074b9b95b1b0f74133a9f25012f4765e3f07f5dce1037f843fc28f3e167205b34299b3a5af9d7174367783979c814b55a6b35dc7c4480383940528b045c6b986a701eb4a0a157963e9533c93e8eabe33d7bc89104a767e03c30ba4c51fc973d03561558c23f299df1fc9d3a40a1a88464b8fe95c0d151e6003531aa5d771665dc00ebae08f899e2550d6b3cf8669ef920ae2104a99502bc4b60348bb2e492ce3c8db80e00409808f9a3cef5fc6e36f329235844ec9a1d58c2d660300b98efb36a810e4591f93bfb749b63b0d65d1c4d92f620c3b5cb483b1137c6b0219ffff0219ffff0305a36b8602eef5caf5bcc4a2536c47bbef244e8d7b67b24307057f304bad7fff03a6d85ab2319d46d8767654c3930d188ee10317b8c4783bc606b5989301b003ee032f5d6e8848ddd49e0a46e7edef525f922ee493b0619c1e4b0224b0020909b03b039b3a8a5da3821a5a57b829ad8d457ad7cdf24bf1d7455045b232151715c219fd036b44080dfaef0eaa6daea6feb0fb0d6ff512d290bb9c59e0e701ccd1cecec9320219ffff033bfd9cefd5cc3a4226e24a188e6db4f3e7871b7320f7efee5f46dd57c44d7d71038a235eecb3892864940de9283ecbedb63b735587e84b0fc3c3a600e1c7edbc6c038665765b59a98538602989ae6bf70aaaaa22f3bff88853b8d20110434429e76a0352b1334db412bf8da824c1137d2adf3e2007b8f9726beffea83f4e489a6a194d036067c32f85b3245de5ab273f9e90f8bb6404da2f1753a52624e15188e14e55f303817cc15e2220d5ec25115ac34b2b2378d21dc4ec44a893f95e9c282c9d308a8003c682dadbb3a945d71baab981ae73705c41aff359e33d8dda6850a1d8be1f45360398135072b7ce4a1e7ebff71a94f2558c1636a3cd0b82bc7edca94bbba589898803f45e6cfc1f933950c79f0755ffb1a6e37fd2d98f0c440604a683a96f6d6cecb603a9b541d84b6102dead938cafc2e92c0edc812dc58a7c9823e4ba0ec2d5919e69036b8de7c665777e54102a01c6ba2d70f895e339f1bc551e5390cd233e6078845803d47377a1a3ed58866804b4d2b67ba84bb71c76684c592aa0644d1979ada6b57d03644a43c3be36431f3758cfe0f51d4913c551af0d81526bbf99896e8e01461ebd034a16d74c5ee822ad198ed0a83be952a9c8378822c6621674c52ea8488245b42403093b6ba8f17a20a6cb2a6bfcf1ae610a6c229a5cf3fc391bf5e8f5a9efecf7030337f68dfda85ba439c8398681a2655242e9afde2c3941768907f538d1469a7c68036bc1c3c3a34c4dd52ce62656dd7a2c4c2742355a4e3e23724c61ad0162cd188503709224b0e020d2d30b9a73ce3e381cc73125e25ca6fa7d153b4b2513e90e97cc0305bbe5e818de30c7910649c5cf7e36d9c27c77026896e82f1da182a25768c09403f49843e3c850dd967c8b686ef3d13d2354e7c66d276a73f43ce88fa7a73e3ada03bff9f4e7955346123442d8f70e42cda0f304d8cd0302056cd11e2e1a4bae0df503d1fad3cf3cdfe006a1ddc50a7c26a2a0d5faedb634ad094ece2272f47ca51cd103f0aceab80b1cbb453255c9750be1fa3de716cad27ad026b12121b70bcd2b9a4605581e03746d3fbb254073e70b475f95483c607aeb78a91bd1081029987ac6c0a00c0147013d1bc30333e805581e03622b270cfa53c83a2fade4a70de935d761be6c7b3f0efc19e806039b400c1843475b2f6c7e43885405581e03db654738e5732e737abd4647e47d0cb37ee6461a13414e590523f403a00c074704ecdb30237e8405581e03c303da93dc52de88b0ebb1f1b62fa6517767b3f89700727e35dd1fddf0040205581d020ed169029c976b46e32baf8d3235751781b866b78525833440c96bad0c181a47243bcc9b21679605581d026b19ec8953f1387be62376c67d65297a23c5ed11266226b729edb0400c024647b324a2616505581d02893dc6302e662262660b78775f15073ef31693f2b03d269307b29587040302192408038d997d6cbcb01d28862c94f72a0bc5964bfec7aebdced3c83d3c0c38a8f7285b03793483a77c22425662108740b22a8e588d59290626f3b523692e64cb5db3b7c50389900cf9aab2206345e1207178adc5bd9ceace744a0bc69260dd8d3679886a6c03da3b7ff805b0b2821631575c19fcea5408221ea8bd9fd8f250aa6a22ea208ece021972d903ea31420df718ef49f3c0444196a0d08b0ea888c79d4f2328e7311b821f20450d030dfc8b7ca7b68cce2d43bb17c487002ad442a71892754e48aba09aa171738129038dadeb3c47c5b363522e6dd91272b70138ce9a2d4cfc1c13bc671458b97921220388a1136bbc63b855af12dcf4cbc18f1224748c96dc9445b04a57615020b678b203977338a6b907086e1b122530025d2a50f78fb277f09e1537b3f60e61ee3deacd038922c033b4a82b0f1f6c753d809b241bd38b1551d857ba0ed11099ba68fe28a203c82fff28909b6e86de9607483e8731da1561b00b11590101afe6a01a2333585503cc5757a62c94e59616f6eb9910f30702eff171f288aa50330e0a9bd8017452bf03db102d0907c93c848392d067538351d1d8684ef65e5d5b4efaded1ed7d6f4adb0219ffff03211fbfa5e365c83352b8875c3bfc1e58b04f8bf15424663a90e5c363fa24c0c3035c4e221db51a02be038a334a5f1e3ae676d7b771b163cb0c14c382f288d4c49a03b7a66bf1dc0610e8bedc7600241561f1773186f1c62759fccabd6b7737dd017d030084a91c21ed2f2b2c52ac250911cec7e5c295c4da4c8af17693c4c96da5f5cc0219ffff03ebf0867fa60fd42d5722cc8b37cf7c9e980545a5444ceb27ad0188c303a5ad9f032d621f10148725abb0ab1c9bdaa878a65ebc7867b818c17f43862133c3128a6803f70538c153a23d20aa2e49fbc6c6b1ee097ae652cb5659f3ae46985433472c7503b19bf1115d10df66d25445341a06dacff7a2ade20af67925edb3c1c8c400971c03f7882b610351c102de66a25c5b6214fc15966b9417e8ea5299b6991bd7e1facc03dc8e1fcc85c8fd1d547c81511fa99d345cec08bc8a9a005cee6c9654ba4ce7bb031d6494ab56052fe09fbe04579d6bdf84dcaf1a23db21354d4e9d4f038fd770df0395283db413b334ba66b8296522d506ac265b726ffe28333c3b51443e9304d8ac03cbeac45d3993a864d9686419470009e210da4acc8b764f89f7c749074660cec003bc3c7b72e6e5f4092467893cba11da5360cc1424e5fe535bb614635269179ef903dbb9dbbd9be6de6b739ecc3f72e57ed03eab33b76ae2bf6555fd46194cf368c40219ffff03080fe43ecb7cf81667ce19b8ef88bdcc05c8d88428f27acdaaf6035ccc9f5c19035ad542ca514fd622cbd7ffbe866745741968cbf5acca53d3c86678f572c0c9ec037c360fc3a03a3b5ab01f629d3612b6bbeccc5a26cee3f72051c8b4a6f472607303320a5935993b3c7690ffe8b6fa6e219f3c33f992c92a537fd0fb8dabf1adc67c03fd00cf94379758d8fbdfbff7cc745eed482b0debb4c3a4d50b9a45ebae6a6ff0038ea2c798d7e24c05ed403ec042d0755c6f1b4b9bd45009653565d4abeb472872030285c7c7b9564bb3cd670e1a8d58e25b3b0eedee7458264a74fc715d99c260fd0219ffff035a4a3dcaa4a3b7198c3f2ae59e79fc4a492115e23e25869a50d4e7a6328f57280316e5616221e0f41071280d2f81ef5c685d140eb7d94a4f172fff4808fa0586dd03489094c3ab44d8a91eeec2756880d90a716ad973f6a5d8a02253a0fa60d6bb3003235f32b7e42d8df878d5faf75b8f6a06af0d27c8d0493dfd61ec93cbed54f3bb0303b5a1569a74a532f1e7782c4018c47acf12decb0d692d2804bb7ff72e4c3ac403f1b62ffc2b2fb6c42996e585ec71ab8bec78867df41f76a35a6f73b81009e4f303e8cdbd159993c629474a75d8844122ad418733c9d03c3a84e99254b4cdc154eb03214a08e5ef6402e5373969956f4811c0dad8036597ead6ac8d3455f42caab1b303abe9cc758540584973c710c5efa0f3ae5e818f95159d0ca337a96451bf2bee1e03ce85b2f2a3d7f208c7705d7f2c98059d4ae8a574b1407c2188a0384a05266ee6033ee7f7144299d20dec942a0498892f1e6d61728bc0921673b87722deaaaa1b0503a8ef3c72f68953956186572c1602953ce8b6a2c1368b2694a5351fee587cf44c03c3dfabf0f986b844ae2d2714308cc3cff6470eae244bed9c7d7aa31b5257352d036c4efb13e6bceafbf78eaf488573ecf4ffe7421c3ed4db1d9d7c759dc373c684037606fb18b0b42c6cb4f2969eac8cf4df6e246deac7d106be1f40b47f61093b8d030f57ac224750573710aeed0fff009fdb35cf5957240740abad8ee27aa37809f6030ad94682de44ac770b1be0df8f80d582b14ecbdf1125f4955a82d960c48baca303c3ec670c1198dabc15e15bb80437d85c7db0f331896677205a6c2be6304d09a603b9e9e761648c405d6bb602c0463ec1749cd6a8be079dbc8a99e53e65b61f5593038c7db37e87c8c5c7c40841db6cb870f7d724f59ccd40ef3f4377e598c05e66ac0320202d2f56b508123047651946d2bc5a3eb995837f2dcd6b3602b69fc569335f03bf798059b93b48e572f310a2a4d7b7960c38ad2b2c50eff29c7ce51c4e8409a003c30d9269d70b96cf75d16456d0c5f74d4b3f6827dea84ef4608434f1aeaff3bd031c9cf23cf6f3b08488fe74e967b11c9b184b465ceedccd4223bc3e4b5f5245a90384716aa24c7ee781005d71e76d1ffbcf8dd8bd43ace43f437e40c552540533c003336173e130f156b79bb0ba73f5fc5b3a8589ac5ef5c8796854e6115a27ad9941030e2f4e40a2c089dc3b4ca1fb9028f78e4e70c90606f2cc8e315f8e1ae8e299d5035bef45b08d1b19e0c90c686f51bfa391d6a4db4db084d7382a18c2a874d7b661039b564f6a3fa970ace80c680904e266a40f0676e13aa1ae1fea3d7aee2d927936039a4dc31c171ec9b70e6f93cd999232a3ad7b1ef373fd8be848fa5204d435ccef03328e1030d46cfa020af1871c678e72f009340bf1d751b5eed2c6ffdf881e887d05581e03ac8a2f24b625aba63cb48c56b9264a309c38801c78f64699ab49dd3dc004030360431210056210fba0779a7d2c135762cbffb156af256f4a7d31a81dbe4c9a19038c66a4bd3c9a510ba118c4c02ee8b397103d857654a1fa016cd894642f2dba2e03b0405957391500a1110a46c8e03f989f9a23c4f53d2529ba99d8eeda2226cde80605581e030cf0f1ca202c48115b496a12014fed4229063721de75c3144dd456812007011bffffffffffffffff05581e03ef4930f93ccd33425663fce7e22baa0a7627897f5bdab83c3e9a7a1de0040403a108d1373d5eff3f978c39b20b1b631a2a6496ba95189290f5e3d19d77b167c403d6d0bcc0fa0ae97a7b041b5e5703d703137a51587ab0dcf38ba7fa010a7d5bd905581e033e144ca3a25a8dd98adfd3a8da74097d2835658b590b6571a0cae57d2007011bffffffffffffffff05581e03393c3fccdcf1ad5bc8629c2fea5bbb7452c90ee0ce9b8c3c23c4db4d30040105581e03b3ef9f3155451b25a10245d6f1c1472c4e52ce4592b318041c88c9f6300c054683abab2578f005581e035ab805055315b119f3bf097b314bbb1ffb3c3782485717af193edffe10040105581e03c8c1c96c0d721646ad369eb24381e2df9c435fc007f40488f08aa9b5c00c18c548014e737b46be61c705581e03e43cc0efe5c0a00ca8931c5951e4dd86f34f14376c285ad3c2a6fac8f00c0347015d80eea56b300219f6bb03a4676b2fd6b5517b471b81a9eed89314d2a2b2a74409ddd50ade12adee23a1cf0315027d7638210645fb59d7894bf9d99fe409cdeee83ee219045467086c78385a03cc4b04e215cd0ec37ff8c8f92bd48a8df6d129e8fcb108b526b148a609ec21ed0219ffff03df7ecf2ff26ac5be970991fa74eb1c482d33d3bf57bbccbe25dce844b3c7ca1603d088854002c2f7282c1c59bac62246c178dd8f9386c9a7fdad31e7d45b9ea6f603213fb6b78053fd40139b7f5ecea6be752dd6f6b324a3446e1defbeaf0597d9ff038e5261aa10c94439310e4edddb88d60ed0ed493b7dd72e800cd302b4733bed9503ba1a3e7c271b22fddffcca1d61ea9765d52974670066e998160c9bf6fc06e466030d82be2666b2509fac30b09d1055524a67167563b06afab063a8de02426948c303e23fe967d0b062c88a9cb51260341cb67a7232cdd06dedebfc856790ce009ddc03325e446bb2a8c566dcd174b24bf2e62eb75033dcb7cfbc0a4d622f20d72d476803828e39697ef63852a480c69f54312c19251622259cd608d2e463c52d3ed1b48603c97de7d436bd89fe91e40cf4dfcb648ec089cd745c261d485fd6581aa1b63a340219ffff03e346d972e2a71ad9152e237b104c042eb911c05b16f8ac30010ad1ebafc0c077031d3174d02dc194d85bdf30cdad1cd7537d242cafd35c8a70dfe684bfb276d66b03c0128fb0c6bb7e02a08a14b8be24875ac183c0f16db549860b28445a9c3b3cb903f41d45517811c6dfdaf366c0060cf00f2fa7731c92e5ad4be14da0d1803f1771032327f39c34a2839cdc76a4895cfc36eb385eda1aad11c0757f49c2e8bd15a79c0219ffff03f901f2bc40490830b67519aa83a8a571df2eaa03c929c91d02e86a39dd1e6610039fb18b0d7bc5ad09f98a2b19d92d67f1bcba073b4df26ac039c2dce53ff3b76603c36448ebf6a1b7cac47131d6578bb1eb412b2f83106e33fd9eb975c6cc7e8e510310919c66c3ecdca1bf06be517e90388bb7564f835255547fbaf107361fccea6d03f84203981d662a502067e1ef0333f2e9f8e110092b89a60575eb92e9e17aa6950331cb6d489b3254fb520f33d70a84596fdbaff155b312d5f6727dcbccd37a06ac03837f5c73dfe97214fa0707496d2df13335307e250aba6c1d44b1327f25145df20389c2f0d463a5d26c4012b31d6dcfffebe0f0fba91fd7b464d1c5b7cb6e5b49ca03f2bc0766e43e1b28d5ad36f4ca9494d04486c45101ac137d5204e4f220534aa7033d73b2d9be16026393879762787073a23583b8f4413a204b8bb4f082bc295bc503182584c1b0eb583ea1a6ab0aba1b2f164470aed843aa118c4ad830343d960e9b03efa9fb9ec05d2aff9156c98d24e9c2bb19fcaf8d4c6a0f51c197d9945b097091030fb46ef68525a81f8e253d1aaf70e9d47e6e9fbe65858c68e0aa82a821c6470c0360def545546b86ebf009c792f66c354f6a6e2af30c56ad22579e90589f1c2f790351cebb58126d9cf9814287fff450086965028ce1545cb26db5f933fe23c287da03275a87979b170748d84b84bb4c620c2a71d250f785490a4f9f8124318a36528d03283aeafb5843136123ca92cb51fc21813592048476eab9428cacaea55064bab70367a6f95c91ef1c1cce3edf5e264f02778fd79ad113fa3cb311d398d6c00e2826033bd32031714dbc1afc90386cb458c9e70116a29daa38222217450cf052319c6803fa7882c887e014828d4ed9cbf3ba4b146575a75604fd85caa508204e8119cce403c395c876a39af7fe7550e171fd9ae82cf0af120158f6f9f9740740a82e426a2f034ba45c4de796217a2c0e47b8a334951cc83977dcdc17f2f9dc8e591446b69c3d034bbe3a0140e68e1ae795b37acebeef6bcdb1cd6ef6d55f1d85188cae3557772b03dfb048312d6b43b53e317947ded44b8d017a9e57ddaa25016c4b5dbbe2927bec0396d8b6cb955c41a670acc6c94a8fe967046d5fecc0c2e929f264dd424b7efaf5034747b3499e275820c24346b49b0eafb32dd86955e2576b6d6c47d9197b00c2000361610653fe996e04e51783e7a57b1eec3995ca145b650f44e8c628f29515308a0310821043712b3d5ceaf5865ffc189a3f53a6588078452275b8b3679d3f65237f03657d49c41183ef955a418abc930e3e0282b5e3a34908bf595f92ce117e3b267803ace232b27d2ee5f67272ab884ec8ed1cb6ea773bc553f9cf47eaf4fedafbf47b03dd704c36356035a7e416952a3f32e0f71faffe3497a21978456e79fd143e78f903783e4c501d23a4ffd6b151d61dd71b717602d7c376e1b2a2715a53fab2dbf27f05581d0203db2b8be0b9defbdb14a6fea907e42073a9bc26f07880f97dcfa3b30c181c4734860a9cdb662204591e796080604052600436106102085760003560e01c806370a0823111610118578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e146105a7578063f0f44260146105c7578063f2fde38b146105e7578063f887ea4014610607578063fbfa77cf1461061c5761020f565b8063a9059cbb14610532578063b62496f514610552578063cc1776d314610572578063d505accf146105875761020f565b80638da5cb5b116100e75780638da5cb5b146104a857806395d89b41146104bd5780639a7a23d6146104d2578063a22b35ce146104f2578063a457c2d7146105125761020f565b806370a0823114610433578063715018a61461045357806379cc6790146104685780637ecebe00146104885761020f565b8063313ce5671161019b57806342966c681161016a57806342966c681461039c578063436d3340146103bc57806349bd5a5e146103dc5780634f7041a5146103fe5780636817031b146104135761020f565b8063313ce567146103255780633644e51514610347578063395093511461035c57806340c10f191461037c5761020f565b806318160ddd116101d757806318160ddd146102ae57806322603661146102d057806323b872dd146102f057806330adf81f146103105761020f565b806306fdde0314610214578063095ea7b31461023f5780631006ee0c1461026c57806312185a391461028e5761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610631565b6040516102369190611acf565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004611a45565b6106c7565b6040516102369190611abb565b34801561027857600080fd5b5061028c610287366004611a86565b6106de565b005b34801561029a57600080fd5b5061028c6102a9366004611a6e565b61076d565b3480156102ba57600080fd5b506102c36107e0565b6040516102369190611ac6565b3480156102dc57600080fd5b5061028c6102eb366004611a0b565b6107e6565b3480156102fc57600080fd5b5061025f61030b36600461195f565b61085e565b34801561031c57600080fd5b506102c36108c7565b34801561033157600080fd5b5061033a6108eb565b6040516102369190611c22565b34801561035357600080fd5b506102c36108f4565b34801561036857600080fd5b5061025f610377366004611a45565b6108fa565b34801561038857600080fd5b5061028c610397366004611a45565b610930565b3480156103a857600080fd5b5061028c6103b7366004611a6e565b610987565b3480156103c857600080fd5b5061028c6103d7366004611a6e565b610994565b3480156103e857600080fd5b506103f1610a07565b6040516102369190611aa7565b34801561040a57600080fd5b506102c3610a16565b34801561041f57600080fd5b5061025f61042e366004611913565b610a1c565b34801561043f57600080fd5b506102c361044e366004611913565b610a90565b34801561045f57600080fd5b5061028c610aab565b34801561047457600080fd5b5061028c610483366004611a45565b610b42565b34801561049457600080fd5b506102c36104a3366004611913565b610b4c565b3480156104b457600080fd5b506103f1610b6d565b3480156104c957600080fd5b50610229610b7c565b3480156104de57600080fd5b5061028c6104ed366004611a0b565b610bdd565b3480156104fe57600080fd5b5061028c61050d366004611a45565b610c34565b34801561051e57600080fd5b5061025f61052d366004611a45565b610c80565b34801561053e57600080fd5b5061025f61054d366004611a45565b610ccf565b34801561055e57600080fd5b5061025f61056d366004611913565b610cdc565b34801561057e57600080fd5b506102c3610cf1565b34801561059357600080fd5b5061028c6105a236600461199a565b610cf7565b3480156105b357600080fd5b506102c36105c236600461192d565b610f24565b3480156105d357600080fd5b5061028c6105e2366004611913565b610f4f565b3480156105f357600080fd5b5061028c610602366004611913565b610fbe565b34801561061357600080fd5b506103f16110ac565b34801561062857600080fd5b506103f16110bb565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106bd5780601f10610692576101008083540402835291602001916106bd565b820191906000526020600020905b8154815290600101906020018083116106a057829003601f168201915b5050505050905090565b60006106d433848461112b565b5060015b92915050565b6008546001600160a01b0316331461072b576040805162461bcd60e51b81526020600482018190526024820152600080516020611d71833981519152604482015290519081900360640190fd5b6064811115801561073d575060648211155b6107625760405162461bcd60e51b815260040161075990611b65565b60405180910390fd5b600d91909155600e55565b6008546001600160a01b031633146107ba576040805162461bcd60e51b81526020600482018190526024820152600080516020611d71833981519152604482015290519081900360640190fd5b60648111156107db5760405162461bcd60e51b815260040161075990611ba6565b600e55565b60025490565b6008546001600160a01b03163314610833576040805162461bcd60e51b81526020600482018190526024820152600080516020611d71833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b600061086b848484611217565b6108bd84336108b885604051806060016040528060288152602001611d26602891396001600160a01b038a16600090815260016020908152604080832033845290915290205491906113a4565b61112b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60055460ff1690565b60075481565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916106d49185906108b890866110ca565b6009546001600160a01b031633146109795760405162461bcd60e51b8152600401808060200182810382526023815260200180611d4e6023913960400191505060405180910390fd5b610983828261143b565b5050565b610991338261152b565b50565b6008546001600160a01b031633146109e1576040805162461bcd60e51b81526020600482018190526024820152600080516020611d71833981519152604482015290519081900360640190fd5b6064811115610a025760405162461bcd60e51b815260040161075990611ba6565b600d55565b600b546001600160a01b031681565b600d5481565b6008546000906001600160a01b03163314610a6c576040805162461bcd60e51b81526020600482018190526024820152600080516020611d71833981519152604482015290519081900360640190fd5b50600980546001600160a01b0319166001600160a01b03831617905560015b919050565b6001600160a01b031660009081526020819052604090205490565b6008546001600160a01b03163314610af8576040805162461bcd60e51b81526020600482018190526024820152600080516020611d71833981519152604482015290519081900360640190fd5b6008546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600880546001600160a01b0319169055565b6109838282610c34565b6001600160a01b03811660009081526006602052604081206106d890611627565b6008546001600160a01b031690565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106bd5780601f10610692576101008083540402835291602001916106bd565b6008546001600160a01b03163314610c2a576040805162461bcd60e51b81526020600482018190526024820152600080516020611d71833981519152604482015290519081900360640190fd5b610983828261162b565b6000610c6482604051806060016040528060248152602001611d9160249139610c5d8633610f24565b91906113a4565b9050610c7183338361112b565b610c7b838361152b565b505050565b60006106d433846108b885604051806060016040528060258152602001611e1f602591393360009081526001602090815260408083206001600160a01b038d16845290915290205491906113a4565b60006106d4338484611217565b60106020526000908152604090205460ff1681565b600e5481565b83421115610d4c576040805162461bcd60e51b815260206004820152601860248201527f5065726d69743a206578706972656420646561646c696e650000000000000000604482015290519081900360640190fd5b6001600160a01b03871660009081526006602052604081207f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c990899089908990610d9590611627565b604080516020808201979097526001600160a01b0395861681830152939094166060840152608083019190915260a082015260c08082018990528251808303909101815260e08201835280519084012060075461190160f01b610100840152610102830152610122808301829052835180840390910181526101428301808552815191860191909120600091829052610162840180865281905260ff8a166101828501526101a284018990526101c28401889052935191955092936001926101e280820193601f1981019281900390910190855afa158015610e7b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610eb15750896001600160a01b0316816001600160a01b0316145b610eec5760405162461bcd60e51b8152600401808060200182810382526021815260200180611ce46021913960400191505060405180910390fd5b6001600160a01b038a166000908152600660205260409020610f0d90611656565b610f188a8a8a61112b565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6008546001600160a01b03163314610f9c576040805162461bcd60e51b81526020600482018190526024820152600080516020611d71833981519152604482015290519081900360640190fd5b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6008546001600160a01b0316331461100b576040805162461bcd60e51b81526020600482018190526024820152600080516020611d71833981519152604482015290519081900360640190fd5b6001600160a01b0381166110505760405162461bcd60e51b8152600401808060200182810382526026815260200180611c766026913960400191505060405180910390fd5b6008546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b031681565b6009546001600160a01b031690565b600082820183811015611124576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0383166111705760405162461bcd60e51b8152600401808060200182810382526024815260200180611dfb6024913960400191505060405180910390fd5b6001600160a01b0382166111b55760405162461bcd60e51b8152600401808060200182810382526022815260200180611c9c6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661123d5760405162461bcd60e51b815260040161075990611bdd565b6001600160a01b0382166112635760405162461bcd60e51b815260040161075990611b22565b80611279576112748383600061165f565b610c7b565b6001600160a01b0383166000908152600f602052604090205460019060ff16806112bb57506001600160a01b0383166000908152600f602052604090205460ff165b156112c4575060005b60008115611392576001600160a01b03841660009081526010602052604090205460ff1680156112f657506000600e54115b156113225761131b6064611315600e54866117ba90919063ffffffff16565b90611813565b905061136e565b6001600160a01b03851660009081526010602052604090205460ff16801561134c57506000600d54115b1561136e5761136b6064611315600d54866117ba90919063ffffffff16565b90505b801561138c57600c5461138c9086906001600160a01b03168361165f565b80830392505b61139d85858561165f565b5050505050565b600081848411156114335760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156113f85781810151838201526020016113e0565b50505050905090810190601f1680156114255780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038216611496576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6114a1308383610c7b565b6002546114ae90826110ca565b6002556001600160a01b0382166000908152602081905260409020546114d490826110ca565b6001600160a01b038316600081815260208181526040918290209390935580518481529051919230927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b0382166115705760405162461bcd60e51b8152600401808060200182810382526021815260200180611db56021913960400191505060405180910390fd5b61157c82600083610c7b565b6115b981604051806060016040528060228152602001611c54602291396001600160a01b03851660009081526020819052604090205491906113a4565b6001600160a01b0383166000908152602081905260409020556002546115df9082611855565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b5490565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b80546001019055565b6001600160a01b0383166116a45760405162461bcd60e51b8152600401808060200182810382526025815260200180611dd66025913960400191505060405180910390fd5b6001600160a01b0382166116e95760405162461bcd60e51b8152600401808060200182810382526023815260200180611c316023913960400191505060405180910390fd5b6116f4838383610c7b565b61173181604051806060016040528060268152602001611cbe602691396001600160a01b03861660009081526020819052604090205491906113a4565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461176090826110ca565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000826117c9575060006106d8565b828202828482816117d657fe5b04146111245760405162461bcd60e51b8152600401808060200182810382526021815260200180611d056021913960400191505060405180910390fd5b600061112483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611897565b600061112483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113a4565b600081836118e65760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156113f85781810151838201526020016113e0565b5060008385816118f257fe5b0495945050505050565b80356001600160a01b0381168114610a8b57600080fd5b600060208284031215611924578081fd5b611124826118fc565b6000806040838503121561193f578081fd5b611948836118fc565b9150611956602084016118fc565b90509250929050565b600080600060608486031215611973578081fd5b61197c846118fc565b925061198a602085016118fc565b9150604084013590509250925092565b600080600080600080600060e0888a0312156119b4578283fd5b6119bd886118fc565b96506119cb602089016118fc565b95506040880135945060608801359350608088013560ff811681146119ee578384fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215611a1d578182fd5b611a26836118fc565b915060208301358015158114611a3a578182fd5b809150509250929050565b60008060408385031215611a57578182fd5b611a60836118fc565b946020939093013593505050565b600060208284031215611a7f578081fd5b5035919050565b60008060408385031215611a98578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b6000602080835283518082850152825b81811015611afb57858101830151858201604001528201611adf565b81811115611b0c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526021908201527f43616e6e6f742073657420746178657320686967686572207468616e203130306040820152602560f81b606082015260800190565b6020808252601f908201527f43616e6e6f74207365742074617820686967686572207468616e203130302500604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60ff9190911681526020019056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63655a65726f537761705065726d69743a20496e76616c6964207369676e6174757265536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655661756c744f776e65643a2063616c6c6572206973206e6f7420746865205661756c744f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a0eda175a4364696b5b6e5aabe0f07129dd948585857b643af1417838df389d064736f6c63430007050033039bb06eea23d1e611b2644e1ef7f50ee6a20267ce54ed35b5b7f8e766635078fe032bb7821bc8672cc6b465f11678427140d83b0ac9eddfa141ce3232056e86d27a031aab138ea2451bad9d60d342ef57fda440b40e516bddfd725702204209150f4803fdc4191e3054fe9f3bea0eb8c2f6467b5299308e5dc1d697af77b46c8fe2eac403efdbe55af32607d725a3840e078d104765b85bb4616806740b97ba20efd2ba850382d8d9bb355a1955efee467952ed9a549a45a6e537542617f64f53413f46650b03ed3bbd09028ff31611af7f02c22e056d435b808461b11baaa98d2073339a5e99036de566b6dc6e858fe9e44d1f3d1809f35cd60408d7d7feedb8c70ce7b317dae8005820030745b4bd0b717377cabf9db286a628a17da22294ed9652d0a543c71387c5c04612309ce540000342684153ee7a3d7f15de7a180299b10756f11d330531dd0e216188853ff02a02030ef8231f1b71ed36ce69df7b6385f452c3e7f7b9a36d4d407bac6e4afbf2eede03a7bc5886acaf3f54e7005fc873e2215c845ba64c34a03760d494e5d396ab1a2b03f4e6fa6ef73c3e8b7fa0f1920ac3420fe922ecf23b73ece9c9c54d6748bc13f7036a227a359bfb3681c3e1a077e0de4c76f34454d6b91fb95f708b323319953dea0310947e3cd7945a795e67b441ad95ef599df7a8936fd3e4e50ba204923b949f0603cc60cfbe51029be867e5472f8be49b780249fe96cdbe7b3b21b83fe53486ca7a031652aa52d7c846804b8f02afe25aa3c0564fc05fbe438cb3c7bca5812494ee560354418ef63e7f6803ec450ae68e7276b2c4dab2cc11093e1b420e9127a7da1f990356b327e8b02a463b6fcb811197301142598fa1dc28cc20e4ee532ba8e9b498d4034c6e1e6b782aa21200778d6726fc5bdea26b7005b53130c29686cada0d23836b038c0074a5cfcb53c544fe2a6b0699b0dd33bec49d43d64e562589ae53c09a6a9d005820031734f16de52a2bcf9aa961671cec382f3f48d66e7378fa0660eecd4bbe6e00410103c1b5817cd944fca49febd15e3f08140b6f8267833ddfb255d3eaaba53b1f23de0219ffff0366acf1cd143cd32cc8c5e82184bb6f8ca06b02a5ce2bb2d5dc0d0d863539cc030326440c433452773ea4cbb4308e7b01f887fc2f6b6e10b9bda633ff24cf3d181703ade8bd82af5c8fb3c9ff01a1def83d2dc1d3a89a9d03549f455faa509705535f030bddc8e9ce8aed332cb9bcfdef98161d3cd38c974378df2222b085582453933b03ce0949803bb4905fcb2ae02c4f77d6cc5f547dbfa9164498af417cf7111380c1037c3fe9bde05299e31182ac652c23a6923731ea1bc1e8084d755c36a1b445596e03d7adaa18ce9a6bba36006ef4c3660f7cab752783d28356924885570bf6db3ea9037e76bab46f1fd16feff6cb1d7da071cb28afbc74f22c85020a2608fe259e3dce0058200303dd6c5898584e9d0a2bbc727381b3a465e9bb91e19f3810a6a947248b18305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200354921107226dd975fb1ee8e426a17cce11747d7739fe2c9812a4a78c5d20605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff033fdad4374e30d0058e2224246b76205469002ec9cf7cd49c0ef6d665331743c901410b03f15c5d0d7a4c4304ad6ab830e419626803a5c403a5ea8d48399c13a6101b3d4303190325c8467652a29f31edc3e06885a2604200f6ee11b0915196ab61e415eace0303de3b451e7cd6986f9dac6377e0135ee94478645566e73d3c0f28624b9c7d5803ea34cf16015a5636de6f81617faf4c3cb11f398143e4573a310be0031bdbd70d00582003519dca094f90f50cdf5ab4b85046baf545b8d92c84510f759f7aced6373ad05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03aa761c9954deca820fdb62f61d7df83fabda3734f809fb4badcd49be688c12ea00581f0217bfe3efbf40fcba14f6cd08d8b56a4b4fecd025fca2d89945ca82d841804603f8db41495400581f02128eb9ba06a9d7af2e1a0b425fd55c76d465ec9460adb1525587cfd43ae15820fffffffffffffffffffffffffffffffffffffffffffffffffffcad2771e5a30e00581f02910d5767d03c6dcf2c5b1e77a61623225d8fee69f74144d9036c127e024e5820fffffffffffffffffffffffffffffffffffffffffffffffffffe299b0f4db7ff021912080219fef7034b1fff82972d94dce63cc9cebdaa3bdc7bb07c2786264f0ffe984046de32871003e3074d0507b4eb4e7ba0d64e36072c97fda59b50afb6c298f7aad24afa6af5f603a3a1166acb99d12fa611ab295508cc410cda00e983be7fc27050f53d02078b2903d7b16db8171ee4dde321eb6bb48defbec6a6b1bd3d1127ef4cfaf0b35fb8a09d0392ff5921d92d8217890f612b223d056fbc21b3c497c32635d10804cb3b67da630219ffff034d72b81968e9ca954ce3b0b14df7fc5e1956d5ada24912ba80cc58d810346baa035c3f53b8fe041b077b4a15caef6d4b907e61ce04d07dafc21d6bfe8dc5803fb3039c0e19b07b8a6040b65a35cbc38bfcce67859e047fd9e51b9cd372e79b1c6aea031777900b7b2c26d5786a6c11a37dc44e990e19242d6ff4f7dc1d61af871382d5037274066335933a9f4e9702b2b88b97ffb4d39720cd172c3f7fa22106f9b19848031e0dcabd94fdf5fba674d53ecb507a46c14808f96c26efdf9beb23529f81731803ad912a1a4516d14070bd3cb819b3869c421cf0a73238f1a7733d71288da71c870372841454f3b2e31fcaa4c29d68b3b2d9d889250c812a62d69e67cb8e52ec01e2039e952b6c107d1829c5735a438da8915d7dcfecdf376c6cbbe2e2422dc6212a0501410b0302516898bc5460509d9c53fa98e3e6ea82fcb8c1a7342d00a1aa1c9549880fe5034b9daa8f8faaa54deadaa0f136370b084a575b76bd8b1a685c742e10b95fa04900581f02b997a32e4824e4c3c050045365b5529c0b7da4c94b072ee63d70964b85565820fffffffffffffffffffffffffffffffffffffffffffffffffffea2e6b09081a100581f024ef1818c7d4759486efb3cef57a3d6a95b180ed3d7af8c3b812d6cc64f8f470147453a43476502190201005820036384ebfd00a25c3ca5e499f9cad929a5cd182860bfd23ca7b260b2e0a238e05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff039353e6e19185f3f1a17ea87a62adb1266f300c4fad470f5740d707d4833e80ef03ecd3b6523bc7e91e686b44be48a3939027846aedf1aba5eec64c3950a1c3c6bf03aeaa51b6f5be36fdcb3b0a352d1455099417882cf0b9841b1ff4e21f7bc62a5703e03652c89dc165ba794f14a53a8591a04cfe4077f198ba39fcc0b9a272e4610101410d030f909d24a90468446e1bedaf1c69e7e4e1eef5fc73cdc1aa247ca8513f0243c503722bfcd2f7a0f1a67be4918632d3e3e972a0de858cc324856673ccca02b81a6e00582003594113f92a6efaaffa63cc570ceae837c7e01374ae756f7b7993891728b1904641199afb9a790219f7ff0306db047b6469f292a00464cf806a28688c9e9b247f6812bd96298d246bd658ac03a057cf4942723acc4b8dc2606e5167ca7618c45ba597358a32a0acebecfdee1203983a77b351522d5ce8ad7a4fe91e629f4be3439c7e30f1692abcbcd0dc55181503a5fdea99eab338d741ba91345ca5ea1bb87315aebeb7f9111932de3baabdb11703d5883683a21603ed2621aedbadabd4e11a131a1f4e252c255faa584d3db7ac5b03e012ae5c30bd81bd78366bc0d07e935e51cd2dbb78ccf2dedb7d363642dba65f0395ad9979a3bb41ab134a81e676d171e73c27b72c8cb43c719b59226f9488e84b035b395d2996442aac967371352147e3019ae66f262a60138242cbea1cb1cd51bf0364cb81fe8372e4b2cc8380c49a8a3bbdb8fc082cb71a4cde50744e21a332efe00322331a4c00bd4ed96061f769e0fd872127af67620ec65790a4ec31a147d849260350f83d916eddcd67b5dba8cef5cf60a94cb8a4e9bbd0b6f01885a7b3f6d58f4a0219ffff039a682094c144075b370c125498680af250b36fd99354733131baa967993ca1c40369671a4aa5a9c73b85cc0bf9c3ddb2981795c2a531a29c0029cd863df07c6ecf03c708f99e39665d711929094a0b0cbd462d8afba1a87dd5cb88a00b7520c7f52e03a5bc119308baa20ee458123da36b84c07cb46d3bc6ab885aeeab01dce03fd820031ade61a1f835609089d356fe3896b4435ed4a8b07a733931ed69eb7b7e1ed4770368bbdf7a9730efb728f3e62b03a8583532b6f867016730e8a08d7e9dd77c6d19031566e56795a2108c5c999ba4ba7ccd986173338f9fbafb90b86c673f0ef4344203b235cecf5c850cc6ff7c9f63f44d76e2d1aba9518a1a8896a02b63dba407a22b039d2b61b1e1e6373d3e657d1b78b921a437b6a2b62ce9f0602b290e5bd52ee93e00581f02a3ac4ad156991d67396b03f21b7207d98eb71c9ae17beb2e34b7be93b3e75820fffffffffffffffffffffffffffffffffffffffffffffffffffffb73d8c6afff00581f026686502c84ebdfc6c5caa2f8087df1136889ddd8ade574aa522eaeca56085820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021902080374d9a69dd263eab969dd3ecc4bd911642aa38f972d2143328f37e59e0e37ad2403dcff9ce5f043ec18e7a965055d261cdec2589927f6a5c77abce49212142360470351d832c97b0a5475601bfdec882b362f94657e71ed66b08fde7419ee748759db0338f63753bf1cbc992e84abfe4d027a379461941570dae5ecd08d1c39ed29dcfc033ee06c69c4af4f64fa3790a3a37911cfdb14f90b2192c42007a5522b7a44097b005820034df335a2315c17818a41c15a289a0221ae323243ea29ff911be3949c11c0405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0337dfd61ead837aae074be166a31354b47aef99553e8c3773aa313deb1cc79bbe0366837d695cbae7792b26af9956626cace96fe47af80a4c9c78e968db89d1fdf70219ffef037cd2709221b4572ac98fc7dffa60ce97f839235276fb97803f463b704162b62f03aead01d2508d17e80d4c21d90c3c1e5bc868e7f3a7d50361953b0f45f16523aa03e2688aad263c42b69efaa6050b9b5ae6b4379244e1b5eddc83d3de5f36981ac003ca7df178b4196dd285d55926832fced1b23586262182267732249ef5bbb843cc03c16f6029435fd1d6c28076db690507aa1bee416aef17ee95d150c74f3dced4f303d109fd3fd9730fac21130d6290c629b32fe37ac9e786ff45ab1fe328ff23b5d900581f025e0cda21ecd091ee470a12bb21a47a6d8c2d693ca3c072728b9e74f5431b47210a4cfc69400000581f0288d077428b12f41ca7ecff986638adc2fbfd3f253b06f4eaf66b23c73059461ff4193634580219404003c61b6f9400f5b5e53bb7c6b0e695dc1e7657f1a2d1e7350a92b542b8c3c2ca33005820035d9ff5b8e77cac4dcb73efa434fd829b676f0e52ea305cac619f98491531f05820ffffffffffffffffffffffffffffffffffffffffffffffffffffb43bd4d01fd803e3c9b3b6118c886e28ff81ada17c5e9f2d4ddc3b66f755873a6bd6e548afbe2b03854dc1512cea328bce44ee9b572ef5c2ff17f4b13f63c42b23771d448a491246038adec86d5ea46002328dc21e2ade96e80c0296de743e830b73e984bbcb40e7bc0058200321e756466b71ee8b4c0241b5e7de8f0e1f37ceb6be49ce8b689ee3b504fa20462e80e65638960312c8cbcfdc7bd69e93e8a107f377a65d18b39216181192cd44a92d4a15b1330f03f5799b645533341e960553ec8fd3c9ca296e145d582e373b9d53c636c170b8ee035abb584349a08974587e91ffe2d168e0363c9fba13d8ade2184f5c972aa99a3403c8f703ccb18dbf07032833b5147fbaece8726475b62d53b0d9440a9974451f3803d05936a382398200ee58a328cef5e8afa080373f0c277633eee2c51ca9691a24037b22740e22123e8fc8595a5da1d4229a8adb1a84dc960ab1242b9a20b0a80738038737739c5d8f5980a4246eb679022342bf973943dc28fc837240245c8a9c6e0103d7e8c63c8be3e6e6f4a598dd68dd014103b47cfc828e8baf6fe39e34f401bf0e034e0a21f8a222168dd95bcd7c93242ec2116bee509798f953a14759706808d7940219ffff03b3a02df621fc947eca060357c928f8a06776f86bd074b4c72439f7f27ee5a8cd03c1e4d7df13f1b2f463741d3f8c18c671ccb6e7682779fb48ffdf6ce63750cf0f03581406b793fa78b17bf970c98e953c41d3946427b44bb4249665e2c3ba55394f034804d84fe3ed2fb9f0b841437e0f558a5e454d710b5d1f932f8588025fe4602400582003a1377b6f177eccfeaf48a8083af01cf3974b81124924318c03e0a1449b000046513c17805bdc0362555b7076d8278eb7c77e8024a007e236cfe8675196412279bd8f90cd862aac03b6b5362109346a17687a4f2a6fd865969a80f8cb271d2637d229d7547e712c8100582003519dcd4c383ef44e3da71e124807e0f5b52c5c67a36f56148b2af0413da0a046085c39f1dcc10313a633af7312ebba1e11e0b5820ee79d5453c029ce76b802ebb25dd6c1d3133903c1f89cb878085afbfef0279c67d3d95de7f089c0408502c596ea6393b6e06a3a03dce481d1d3697d6fac85a6fa267bf917a75ef58c9b937d65a0043c00b4215a99030e3eacf05c394b94de324778a7429e8ebfef28f652fdeb3b71b54132c611d4ce036c92eb15b8f619b85a029fe84751950625bb34061ecd76291c4bf04b220aae250378b6c738746025f98fc1511efbe45310f51e30038941090abe0e2f6c85b2fd040366f4a9db1f01b9febba3aa0dcf5e4ee16b8bc23505a8d1a8eeaf4dd50fac5caf03519b14d15b85c0b170c2d9439a493de7274424a054a08ff771fe6ea98f4f84fa0325a9f8bd4fb4cb1f6fa5549409406a055dd288cf55f9dc7001d5a3adfab583de03323da57c338ef57301ca0ad9547a910d5e8475612e01ced9619879c206204b8000582003dbe1d53df578106df5d8d6adfb41d7028715910da442e9e3e3cf820adcfcd0460bfcc827971203a4e9188f7bf8982a6b06d1fbeb8f9ce7184be8b156b7b46e1648c2fa56f7084c0219ffff0219ffff031dafea54f304134320756379c6d1be02ed2d7d60e64ccace6b9ef0f40d38d64a037beb169a3384e4091c54fc74facc59171ca0c9bf4c3edb69b785e519e8fd2f6c03fa25aaebfcc24615170a6ce8f660db2ae4a93f8f833e969f7423f69b4f598a8a0344ae459206525a3367bae018a97eaa45b958095f497a2198fa656e90a46c5a5c03be5843ab8720a231a17206e8bf235a9e338794c1b29b222dc89654f1af1c5e9703e6e8146c447a3da386d7f736a260253835b0fb41e005a41beccee00815137b1a005820033b9a883b7a1728002213818f793bc2f8e5f1211a001683dafe834ff0d9ed405820fffffffffffffffffffffffffffffffffffffffffffffffffffba2092bbcf0aa005820031de85158e3b33d11c76957b8cf743646020c35e83c23a642ca7354039df8b05820ffffffffffffffffffffffffffffffffffffffffffffffffffb328b5f31cea32035bf477985ec654cd8c091880b221d15a29771af98e5ee5ab00e2e054d026d3d403a031f27ba07be58a3c219323913407c16b8d90e3715d6452e2bdb7773fe067390316b099787bd550eb486d9cf175d31e5cd9b46b3f991f9a8d9d8a5b86bea63f93031ae28c3a5471f4186c99220c58a3175147dc612bd9b041f2d7fdd3632c0657d80392e4ec7a52c15f6b462fb6edb39a3979d3a89cfea0fd850d32f1e747537c864c03886bd8e16f8604fc44d7d7e531a99ad5248a1991d4a17704d6802ad39369e26d03b29c179df5eb4b16dd2498b8c6270f86fd67f562a0d636dadda0ab01cd9c9b5f00581f026e64948a2e8f760f62ccf894f77e296818533c633402f66aeaad5fb2c9ad5820ffffffffffffffffffffffffffffffffffffffffffffffffffff9617d90667f100581f0291c4c4036884ab6a6bbf36093d2336d65d333cd869835198e10aa76de7e24633a84c25b9f50219800803dc463b35ba2747801b5906be97fa17cf535a8a76c4670033eeaa050e7087699303c8251d84124ba834fb12ebf17fbbf8e20b482c203dfa1d02bd7c314c6303e94e033dd73b74c68af568a3130eef3c9691f6b34403c7d4e9c54bb4aa422d64b229dc0386bf9e8c151270fcb4a64d5cfc2fe7b902c4e33496edec3e3e41e3a6b549c4b90337278343a7ba8cd7fdda786e376fbce7a4547d1fc23a186e2ef151bf6a30415c0219ffff0384552427c14b288e8f1ed5aaff5d7b861e216be7459474ba30474cc96e877126031215545a1c42399720c54c2580143fe89be34f54d96ec16f2c976134746e5276034f611bb0d7495c3ab0974bbe63dddb21011ed31f8e8f8a44ae641b601a0f944103fcf33b8ed3aa3d37d40891d77b8a98bb52e4950e1680dfd63393acdcaaa36191036d6f86ae93f6270a968188063a40477422dfc18fa8502fa23dd6d88533fdbc8a0349b997bca690a18f98ecfc72483d00f7baf0369c679a9fbbc8b6fc262360738d037d47369257154534c45d81e12bc10416ef7c4f4dd3bfb861b8f2e500178b516a039603b07ed1a0b33924be5ce3f3184b5e8e0c90655a87749e143ef2e2deea594803c1f48098ad57c80283a183b338c2e826a18640f72d89ea90f59037ae9cdbe1e00370bacb3a67d4f5f04315e5c09e22982d16ed392c946fd7a97688e7b0338f771c03585fed17757fa444657c085a6f9f3babc2cdd513ad8540c85bd5f1a0edf49e3d038a610821cc71f352647d08b707312a5d730c11d565d855c093f0ada77fc86c130219ffff030051b5b5cb039558a9295361f645d30e42d2bd8998f90903d750323369f4813900582003bbd0705ed57a53bafdac15cbaeaddc7cf39ca7d522ad52c98e9fc82b719dd0460b93805aee310358ad2db05cb611d15660f189c9ca605d901d4ed8826abb663ae8765f3173d9e7038394eedf1ba637ff171004bf25faaa48abb1d6d4ed81821cc57c43a2472929140328f08d57a7c666561e36a778a128cbf6a72809ccfd0b79f1c8fd466f4b7ba2aa03277af72962bb54f8be8b8195917c42fa5dedfe40cc2541c87e93befddf4a9d0903f26fe4699a6263a8bd061f370a223e690c650c4f6f78b4781e0a1c19e7dd8a2603fcfed22a0a8ac2bfb690084a8a99fa57b99a553572d2f0eeb77c51e4a49bb3e5033fa078493e25e44f6ce1ff4469b86ed19d676cfdd887eda6b39682f92fc010ee037502c6a21e64974e69f5b960d2328b047f295b97f46eba7d54e4ae9d13952484032832c9e421af1f41b9cb7ae710da90b6c7f65d4740621e14754fa8edb334200103e4ab4f1d2581ba9a5c4aad880e82ab3507976807d5f3c8b5037ffc36e83b52210325cffd7d8fd447af47bddf5ef41b64fe26dc41c991ea04e4ba27d6be6a13c12800582003cde8af61cebb114f68ab0ca64c535f3d2a5d8177e68d7d8ad9fb0edb8417a046110fa0601af800581f026f6df6d40bda5b9379b684ed385592761ef211b101f0890999a662505d634706966509dcea0000581f02393afda1dfef2bf8e3de4cb7e209ca6917e6790b62fba8ca5580e11d3deb4804cd3f874a1a09d600581f02e2527675ed3efabb2bc1c99333bdf0ac04ce51af213effd505b56929a60e4629fa1e4a6be30219940003c8b01f4b333d55515e59e97d6df29acc340eb058719c8acef228d541a8a85b4703c4af6d8266968d2a2dc01b09c1519d92b4681c7b785bcf6983fe4d3048ee34520219ffff030ff54b0deba3fe66ad68dfc17c4fad90cdfcc07ad44eb876d2c1c031b0180e5a0371a7ef918b5001f0f1294b1fee8f6782a3817f4c9850f9f0fec6c1293abdeac403f47a5b70a69fc2cc1c955bdfa4efd1b92a7bec40653de18dd85247b55afb244b0342880f3cffcacfdbd8f2cbac697a0097d991ec53da437b122c0e367f3b97e65303b505ef6cbb6e968e2a2ab1ed89508c0d85bf2097d9592ec2f81e64632b35ba2603b0ccee31ef6dbf15555ce77dc8f170e1668bcd33b805ea266e4ce8e7058f066903d516c49415c4a213f8a3061e114371ce6cd7c8c1b0a436ae30727cf0984185a0032c8f25aa8f58a7fc7e805a74e37ec8cf78f15239bc255703301d68149db28c83039bb3a1782743ef98e1e4511ca9e06d8039d233a60acc6a5cf0172c6c394bf47a03dff3463290bfa53dba4f79e6aba0280d447f7a7d03b8e6042f9e0c1cfcbe8ff903f3e1e8f58869d6771f1fb17f5a89146f7a05956e95faa36b3429a75d001cdbd1037045c3db207768e6242ded20a8accfa042043fbd697a08e4b262496315e99d4303076261eb91f30076b4aad47c37b98f77681d7b9cd9c6801fac029fe4b4f5d22a03f4859c919faa9beabfbbd162460d2f5db6465e6577f9785b779e17c33100c20803de7b6bdc828095268d9ac4e2b2c5b282b6a669499b0d9639f8620fd87d24d8840361580ab00fd02c47319c7947a94cbce9cb1032b41a0ac761b2880a9c2f79e1c50058200379c22a825d9662386a108aca93c2c4ac1655f33987957a16d795b73a727870410103c57a71ad3a4a2079b6baedb8fcb0776a5528582909c53d012d889fda64508cd5037f3dcb39bcc62feef9ff07dec00994b4b30ec8071aa9cd93a3360dcf3a1a5ce903b088da05dc975015a553c758f3496dcbb997d36925edbe9a0ded7578f4d6bc0d00582003646fadcb39457ea65ef177ae69ebf62ca70c792db39d49ad17a3c11bb1c8004609184e72a00000582003b959f0aa34e96af8653ae6b59841954ec38ee1c4fcfb79baf0d1329ae7015047026cfff826954303c2e1d448b3cb90fa43cccf1279564ebbcf9cabaedf821c47b9444ee560615c6403019b4d71cc6be7cadf5d06ce1647dd7d7e48ed8f9dc5844f2566ce83a067709803cd2bafea1f6352d03e7d8e6ac355274f132713b581e4b944b22ab3e5a4f3b35a035bf40704389b21da8b588830f189476ed83f655bb67878d1d9eaca1cf967744903d3f1778b0da35ae79662093b3cd9ba5259951f9f6c1cb82faa2d5ad9c300a1bd0141060219ffff03d3af6cbfb363e58893bcf4a190afc5adb3cbb3bf45b3492b3c211192288cd6c70361f7b5665da7f065b519a7dcfed65adb7615d389463325a40f31ba2e4711760103a28e7fc13ff0eb52d26981a4e03e58c834308d01d80d3b2a6b0fe8f1b6037d380219ffff0360d7a6dad5dfdc9923738a9599f762c66fe0821a0cf88cb98d794b97530c098803b7619596bdc72f0bd88b652277360c83c1b1078aa4de277a9b38022732cb4f7003fc65f673390dc8f7e9544dc3459d4e46b3973aa71891a6670630fd7899ab9791033a7048aca7b15cc754a046a094f882849dd616b123e246e0adb92a5120cce8d0037dd0c004924d7c1d00f1ce89a61d84c3fab37051ecd9e67518b5b6f672aa90d703f03a7b018110955b0082523b3beefcc180d450fedbfb39e18b1c45354811d751035cb3222d292e1c1126d5b78f52b348d9095869ac00cb09a489fa659e42a1598303089bd692c9992a31e93b136d69170c14dde36c250623b6ce49cf144ca7a3c2f403f5e86aeae0f1df15372d2ad1afce254efc9cd86b7b5f8aa846fdbbd3671be35b03f78d7baaccbe6c36c503ce1f4922390b244cd5d08ca35a405be6dc4a6b22598403cc72ae2cc182e2cfe10248b2149bf792491874fc9217c06d86264ae37071581e03b67cddec7e7ef5b243c4a61b63083fb774a44c3290d1284735f89f765d1506e800581f02549f64a2618fcca605130d16d22afdfb0d518399e39ee731d7ca988980c95820ffffffffffffffffffffffffffffffffffffffffffffffffffffd625785db41d00581f0255533f318dbebfffb75a90cf6bd9ac9d02a49d013e2c10fd97a4788fd3f0470300485132561d00581f02e495c7f0580ca659abe6bc242634b303b2d789fbfdc248d7b2dc9050d7d25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02190a08036a0baf0fc1063c938c59e3f284aae94d4bd8b066944d91187cef7f8a7dd9677203f96baef6090f348b58f343572edc0822273815f946399d5f0fc2f7589d69ccc403d5d0cb511bc676c4a5768695e5bddba6b8516ac56642fd340988cec85b5121f3036616142d254c4a582791028f0b445bfab5f5c3ebfe1b314154936b5a5fa66b4d03bd5e32515f4473d0cf59e54666f05045bb961347b6d82fb1f0d5231038fa0e3b0058200331a9dea5fe0c6529480c421a47ca5d5532ceaa3908994ee90d19601be397005820fffffffffffffffffffffffffffffffffffffffffffffffffffb61a829cabfff0310832ab4a6a8fa29ab4f2eca2fbe0f991a63d35e9cd692b9a4ee9ebaf90d4f2103d78fdc592e1f71d4b9d54b89fccf1c61bb218a9af7f9ffbb998a7f61f62ea8de03a6fdbe0dec9b9d88656078f75043068957bcf2443713cfa0001e131e7123ead10219fbff0305c6ad6593c2ea9e54ec50360b12d7bce8dea5ac985bf19076c79f418937330203cb994e56377dc0b00bbd33104668e82461149fa53083c2b4c0aa8c89c5ca6e37005820031dab611281e0a5bd821c62205dd4fed86ad1635499a7a8c444434e3df771c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03827e2e8ad38ba71527c964cd87d89d32b56d5b9c1127bf92bd2a47a7226a27350352326b584a9d0bab2457b4e0846795353eff1646fbdfa68060ad5f565412bab603ae9d8ba74566a1a840f5f412075d24cac7768f9c30f347ecedc6fb7211ea357003329dbedf7449a6a56ffd934abea5f4a68c99ba83ae65086741b34cccc17b43610336317e13fbd9c1c53a0f9b71883b7854ba5525246f53ebe2bbbc671bdf7e438f03b044c0a21c77c7eef87c220b38232437a2af8fae2743e5e4f2e42adbe546999a03c8a6f9e03fbdb66521e7a42cd7dcd5ddc7b637b8d2200ed044644d9c8dcda48f00582003c0bc4f6235155fd261360ded18db9eb70e1be9287a51e4c8ced036d96776205820ffffffffffffffffffffffffffffffffffffffffffffffffffffc03c63aedb8d03764d98a444db406e9d98aa76303128ff4740b867fcd2cdbdb6ff51d03d7dad8c00581f02e913fd4576a4c3a5e60e6aafe8eea828a5148d17ade473ea1dd8584688c246030e0960356b00581f0247f26c1c0868843a4badbf387112ed2c030b0b6f95db564c21b241f96e8e5820fffffffffffffffffffffffffffffffffffffffffffffffffffc68452019008e00581f02661a86f7ca4b410daa9961b95fedbdffaae014140c56917a62e9c939f05e5820fffffffffffffffffffffffffffffffffffffffffffffffffffff314fa88df7000581f02a6699816c8a9a6270bc1c3be4af15b4d9128c3ccc6045a0d16f3067f4b705820ffffffffffffffffffffffffffffffffffffffffffffffffffc831c687fa3f3b00581f027a266b73334da5739442636ab4b9759964a92e6bbfaad1c265629e87be5b420f0300581f02208fd9ff1519ef4c5079533b5f65a7dd3dda0b603b6c3366a800af6be365470913c4c7ae42c000581f028924dc691d9fe8e9f6fd2edb37655817757c8b336e88841284442866423c46021a96539ffc00581f02d5ac58d697f6eefaaf2532d8db25b190b62c5d2fdd17a710b18802eefe9d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0293b068dafff8ef0329b6953854f5afd94f82784d942440d20a3879dbb54b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffe9433be16fff02191f6c00582003be43640facafa2e4fee5471481d56356d14e4a3826d8dd3dfe1c81e0857b405820fffffffffffffffffffffffffffffffffffffffffffffffffffe942a8bb528bf03c1270e57a9dcbb761633607059ac19cbce6ed3c1f6a2f30b85cd59ffd84d279e0058200318d9cd6a86ea23f01e82965744d21058dbfc7e29e934da6fc2e27bb5a596904601bdfa576ef30341bfe7121d5b57a3a55da50f64ef40b8617a31cdb4a6fa807bc0e18d56882fe60219ffff036bf24adf752a1519dbe6256a936fec5a91cd6f760ed4c696e95417d17edd5d2e0334121f9f88f63a71dc1a20b76fc278b16bf95b1f40d6b180014bec2f5c7729ae0329f7af99f444d00d1a1f0df755339bf788063766f3351263590c055fd2b95df803bd5acaec4a3dbd49f1ec2c7cf0e90fa48feedf4037c1c5bceb3c178eeeec9a8a035dc393088b00523f6d75ec760bcf9782ac422432473914dbcc587a363082efc603413b4bcbf05023a314975ca6722f1fbf9ce074f60f77cc3daff861292009489d03833d300ec42a819e7d0aebd26f2d64a43bcfbbb4b84b1468a6c89b087c674cfe0349198745d85f4147f1c6bb74af11591fed743ee6ae8e6498b5be8bfde48f080b0219ffff03685fb2ca65cfca5c0d72e987f52a63d9097ee94e36fdf8c5fd348c95f61149530328af129531bfcebb7bbc288a9b7408f19f5ee522a031d668564e7f2b6c9ab92203a5c5f9e9c4fa6984c6c2beb61cd9f0b9ab750fb1524188b92749f689b60f6d3f0362cd516980a7ad9734067223758b3028c0738de5ebfe6cd647e108783b4e347c03752065f2789a791d4f27af7d5ea3f351450cf2f450f81f431adcb58137864b2e03da21b9c723ac87e9f958b1c50d4e2a55e78ab2dc0bf340db25a8ea4fe4e0099f03ee1e4bdb7440479ca2521b92c1c7b5069f86b7379ebdfafe751f98f6b58f214c03a12e067b16458c05911befc9159f236378d600cab958bb8be198f9fe02f8d05203543f92138924b36f87b56489bb78baddfd5bafa64af6c6875bffb57c1b4b9998031d01b3a94e18a0094de3db072c1c25c770e4864d8a53ef746434c504ba9d28a70385fc2dbc6272ee9cdbbcf38bee62ed0f7673d605ede8e3d179bb1b27f1f3cdbe03c1d58c77d251c968e247f3859512a665db52590c86ad5fa2760b84769a713b2b038b5e4221057df120a86b70df91259a36900ad89c4e6a177046a904c3f265d2cf03eea27d5cea601daf76d0fe25e5ffc95b6ca5a969295a56f6b29e98ff4815de53005820037e78bd48f220e853ca61f25a06299a037180947e85edb346979a94640017005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03182e63f9cd517d27ae74d4d251dce0702b90ef1fec4fd42045ab4145e5b9225a03db3115e09462b7a754f723b44af3177f9ecf77a10b312b9356620dd3a0252c14037606d49dacd7a5f82e659a96272037c5b7ff58188c7731a5b12a1af115f0b25d03eb8ef97b117574bb640c6afb71856d1c2d6853bc1219e4a837d2e18cc9590b4700581f02539dfab6d6af7bf396ceafb7aad154be50b2d767a4f43017b04cb903d7f54610417c59e07700581f022984c5a2259ca6eda3f86b58ac58efaea6aee49a744dd61a3e757eb6c8b75820ffffffffffffffffffffffffffffffffffffffffffffffffffff390777e15e6a00581f023f5751edef0e4df632e8f71ef4a5bafb091ff7491cfff222fc78d0ccaa1f5820ffffffffffffffffffffffffffffffffffffffffffffffffffffcc89068e773c0219022803e0a900018dd4d17474f19ac1a507b769d2c0779118aa63e2a558e4fa3267db6b0326b6c64ce305f88305763a3c9df2d41722d13e9b72230d3348628c950a5740eb03e62040fe236ac78b6663c4f8df2eb11754b909eb3a7179284159a3814053f0ae030d33920f67c00d39953c23a8929925520618a780f4f0d79f3d34b9d5c8fa4643005820037bcc3e5776890eff7c8a77964be31438e4f4cd4ba3dd573d2d2db6f0585b705820fffffffffffffffffffffffffffffffffffffffffffffffffffddbadd70857cd0302dd7549e4f248149e471f20d383ed0227aa68373b47f2701bd8d3217b4d368903cbb3f0e7feb4c187d0563232c81bed106f2e179ea7d6fea4845fec9dc7b7886e03126423eb099d4379fe3b06b266803a090e6919f34c4db752bbd77203fd5544c70219ffff037fe99fab787c8c24ea125eed5b3c75ce40bfdcbab38051fa8ee2e41e9026ac9a039979594d4d28a3e80f29c939c7b11a7e23b56e576db455644ed8e50e4b48257a03cc3fd5e86fc7d1bedf0c88502c9dfc5aaf2147f473d7007a9f6cd7a287ad74c7033acabc282abbc156b9cc413a931b8a0cb5dda95b30436d7ee7481ceefa21039503817593f168235f9a1b851b5efe0c1c74ec6b0d6c1b3176f777c2d1db8a8434d103afd8ee6d5a24e443fbe72900e5a412f6ac42464d5454e3211ccb0a4e75ed53cc03e41e4dab7a34cd8e06d5ee6e63012b6366843ced6dbe8db8b2dd2d72b5b3585900581f02db85b82dca17ec7cda00bb80eb9a409d305e7511ca87c9cca012933840835820ffffffffffffffffffffffffffffffffffffffffffffffffffbaa5d2095723b600581f022874d56079d1dc103ed29e77c6dc11635e378ff07d219d92e4ff1708d40c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02b1396d2bd5ade6197752a94c1e4c3a289ec71cc3701d32456bbb2dd9b5d25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219140203f7194727105ea07a725966e0b6376eb5a131a4c5d724fa3edd895460d5344cab03b25877d8df2caf1d3498ec1495a82db3568c810326d46197ff8126fee3f18b530390052f08d7e2762cc407ced62ddeb86e5a26efe79fe1319bb2bf85a8a0bbe32d03e329da861766185a276f2dafbde1210260474ae3d0ef2d42e9f196a4f5fc5eda0317e81eb2bd30f5eb0ed21b011b3d52feaa8b468ec46b30b6bfe86543584f4b93035845de78f4a201c8ce9bf5b9c0e8836178f03ffbd62cea06249e4db5439ccaee031b0918b149274f8e0dd778fa9b7f61ec9bf4c05d7782641f5544d2d4043f9de1036b506c34fb3d7c5c63f15b03b674a9105d10d886b178e807038698e5b4e6857d031b79b008eb1d4d8a07a94f7ee324812cbb88a070ad474b1f75ea8ed378eb372203332f5f8c04a9e3845309b9cfacd3ccd6d0a294afbf5992d332fcb1deb9a4d7830219bfff0219ffff0219ffff05581d029d752feba4d1120c7962dc91ca332719e3bf722eaf65a536c494c0ac0f014804c2d30ebe691e29191e790219110005581e031956062e8d3c1c9d8abe730bd1e3b5a36ec27b78a8ad406d19ac20a5100c03471438a343a6260003cd29470e894e3e1ac842dcbf9d47b6b8c5b352cbc858a0e404ee67e51aedb4ee05581e03d1ebd54962e6f9e7ae5e0970f5ad12388859e2bdc763c099649266b4b0040305581e03720ddee831c4ef817e9a74b6ff2f11cd627d364e156c7a8afcdb1d1ee00c0147032dff6d12f00005581e030a568841394126075acb2d6c9ce10f439f85153c634656bb22affa26f00c03469fd253ce045805581e03eec245b770edcf49b5f2c0ede837e45471c2607b099b333fcc56729fa00c014715c4b177421a0005581e03dccd0c4a9a0b42d9e47925cae9cf524b467582d5b95e344ccbf5a375c00c02471ab81b1dea500003833b0aca44030f577683eb53e116efb2ba6d64d1e67b487b7179566b2ac8662c05581e03312ddf71a130f12b16e572c7868d63c73efebe940213b5c7bf4e288d200c0246e531527bc000031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e031b2c64328cce323d945758deb3dc63f59c7c09dff18b1d6b82eff95e1007011bffffffffffffffff0219f6d503ea6c786641b385f9af04d97d8274111cb9d25339ff7372d2903103f18f57e48b03a8eeadf7745149b2ab1e65bc95c0335bda0e732fb3ddfcdce61986eb3ff4e99303f558762356b720132101e1fef4a5e1e8e8b7f7d060dcc663a19cc6cfe01ea7b203c57f59b456b4c198df60f45231734daf75fb29b62aaf2a911932e8aed25c72570357dfa8ed6980cb34fe66dada14b5324ade1c32336bd542873103bd03be10cdad036da271dd33138378fe4d8c3d6dfa1af52c954506c6b5afbfbdc895b9595adc5e0219ffff033b957cd6b714a25b1f02b0e2dd50f485fa1386b222c1b9329920dca8fb13148f0219ffff03332aef708a01730619653ec8edeb8c3ecba10526f7f367e8924e9d7ead5de93503b702a5fd3cf7410e77cee2ffe766fd6f691b8b44d99fbd222161157e2d6e1a10035130e1989f338f1263e2b579ba8d0676e84c1cfd2e55f6842fac447adb5a604203c57e67d98fd7a92c84faba9b9b0f4b39af7469e92d320912cba7cfe79bc8172303ef232a4444047e411fae4cbd060fa645dabffca614fee781c2ca659df88131fd03eeda4f020925aa1a90c9c89ade5268740094fdd374d4e7f8537e2747199c8b0803697c199d8f05176bb436b525b78404dd6f84e4ca0466eb58cbd792330c7f3bad032f4d4f7330fc9f82d0e08b25b8c0fed2988215377245672fe5b319c93635279f03880ce4d37fbcd928e86bfea2539ad731e72071d9cb63dddfacc0c22df0b562c1036d902c905048746616d02da27bb5a36bdb91af576c206d2396852bd3e78235980219ffff034c58238c8c3f27499336abc61b0d0967b2256c04331aa7bd29886a6d4b6c9d57036bfa5ec82ad90f847ac7b1204d3722741e9b6fe1e5d627bb9f07245ce98ff12d0364889c57678439f414dad7f20b34e390507d7dfd771178f2b861afd07358973003f311510188e2ada3c74a8af101b9ead4bd3a0504f29daae9edefcfeb6d51a77f03a7f56da891bc477808aae1f3b105ab6c85d3b8b3330d1648bbbda120e74feec60356937b32f6446d7bbdca73ce8fe886b88704016e75de217db2c9ea59bea6b2d103d944e3fcf5b297e8202903666cdca1ae6b83eb59e7c811a3f28f4557c1aaad2803a90bbaf8d413fbcc2782380cda477819f26c553a80d396abfea934536d7d3d3d0316a462aa2f08942b6555be4219301e52573e458f67f1d85bff408b72bbb32ae303f6146fc9075e20f180b8750fa8de69045bdac590d4560f11bafaafedde36e79303b36aed5ea2dc0eb5753651918d41da70d607ddf8256d4d3d94f1bf265acf3b40031d44add9fe1567a119d8f9001719d4c15119e556a20202a1ede596e2fde6dbaf03ddb7d3f85ad992fab115e5bc1d990500b2919be21ef1a203fa54a06cd695296e03bd80995542dedaa5bb0188c836eea84c37c786e4ee96373a1d28f1fd08f38e40031676ce540c444d9e84389ed3a32d94fa8856f0f2f453b088d55d5be52d2156d303b5fd97547fa760824f6c91f256daa2726433aca49604cb404cf8bb457ef6589803fc3f1c5f70ac60dd51d62e6c04f8269293bcbe346ecc25ec9f7958f00e1c74a303dd32b20a1a2378a6c8e3d42c5feba1e9aa6f1cc1afa8735aee5b7fb71287453403e95eef03eef9357622956e3231188088b5e3add14d0c5529a49f33a14806da8603845a10be4af8ad2ecc7f4563971e226a2a28df490126d25622fa9214fb592c2803e9a72e57fcd6558161e2d21ddb721929e39e3bce5d4e4f376e5d05c6b5631a8d03e0f6ecedc5bff90a4d5fffc3c4ee2e943233696917e786158be6d1746e0eecf403e636bca40e8c059b367cb122cf63ab7fcd8ba7ff80aa692efd9de4c6b2373e1903fad53d103d4d129604bc9d96154de2dd56ad527e50e55adf81fc62b8dd3e044c03c8f6870f6cd0b67656bafc98564395c173a4d9ccce6a863db4535c128883dab003a589daaf166405481fc23d965c88899d7634738c3fae9468e46e3836c70ef06803c9966b098e0752f58aed49f502670312ddffdc19b841130290e078d1067f1e3303daafd4e12bcf1415ecec7ada3cacd8e34eafb5266da1703ccaffbc8cda12c5520375a566a0be69af00eea22b1afd3150ca07128edcc9eccf2e8a9854478592916305581e03af61cd4c3c5a13a4b7e7fcb890c6df9942b71a5cea9967b752b92f40200403045902c460806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e8383604051806060016040528060278152602001610268602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b6060600080856001600160a01b0316856040516100e09190610218565b600060405180830381855af49150503d806000811461011b576040519150601f19603f3d011682016040523d82523d6000602084013e610120565b606091505b50915091506101318683838761013b565b9695505050505050565b606083156101ac5782516101a5576001600160a01b0385163b6101a55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b50816101b6565b6101b683836101be565b949350505050565b8151156101ce5781518083602001fd5b8060405162461bcd60e51b815260040161019c9190610234565b60005b838110156102035781810151838201526020016101eb565b83811115610212576000848401525b50505050565b6000825161022a8184602087016101e8565b9190910192915050565b60208152600082518060208401526102538160408501602087016101e8565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ff8e6f2d761d58b3bd984933269e01a7ff1f70a460b808056daa4cff1ee8ab6964736f6c6343000809003303f0d03d732c5774d73b58ffa479bdf0bbd700f221f70b98c52ae1a88bacf10f3003bb011cffab60ac631c7cd2271138b9ac2bc22ae9985cfc12cbe14242a005457703e35c9c6bfb3dd6a530fa74f53783417df542fd9c2671b222c378969cb931b30c038f4721bb8bf4efebe6ad19d560b45eeec70757342a055d0d77655d4d6bf380900391afeede807c7289c9145e5e1442451146e5d655c86fd6fe1d975a06e944ff850363997a6e991ac8e22c6fbe1d366a2376b990dc012f14c9b8ea061f2032caf5c200581f02228df3e0e5d00ae4cc2af32577f011f2889ee9486f9c521c24a17ddcf5b24b01df7cc3fcc1e0a6f1af8200581f024ebc98a43b1ce571479e8c85a62ae492a4b815168d1d8bff340c8f18d4e449015b4a616c5061696d00581f0218a5efcae0be54fea59e2b50ba5f520be7063fedaa2f02270fead5368927490b6c9564596f4dfbaa00581f0252a3edf66df308a57a1a1eed2f464e1e4af886b9fcd1146fe0bfcca560ca5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219201c031078226fcdcf27aa5737813216ba42fd9f0016d37952307af793a007780e9f5e03103d2e47839d1824a2a95c3291573317306abad09c539ed3afd116379baff880034e9d4225b30a78f46f83732653913fd77888f9b02d73f09eb827f604d254b1b403586bc543e6554088d96e5a10e59ba370d479a72df0a4323d401a4a3945c09f460361ff27ee17f92ffb30556be26b1dc28b844d9b7ed09ac22c9f9c3ead63cd5434031175bfe68af048ef7f68ba67edacd6faa2f97db0d260b64993146f6f585d52030355b283528b7e043376d1145d026810b4cd2f272c4ef71b2314b7d843bc3d0b100058200360f7934cacedc23865bcd9dbbe4d50d1b7943195c946b654dbb8d65e97a0104905fd3344f57adeb9e10309dc8c00fb9c5f13aba0c87f5d3e22f985819e21d4763455115cf6e5bf05069703b459cf7adfc9c6328b65e7078684d3b9b1dacc7ee63371cba009fd78cdaa036c039ccd4ea6946d6e39849de18229142ace055c31cdc676a9c3f3d500d0518f287d037f508084e8739d6bfc0aeed16a24a8f9619fa4df428b625a5d16b7e84b2ab39c00582003b6da1974f4317f592836f1dea24efe3a662ab0e4b1a1f8a7d9413f14d9a560499b6929e683b50805de005820034aefa3480ce0da67ca6566d8e4e9c9bcbf9c4ec1fd5fc807206db606da472049e4bae90e9135ea3ea903e023b7771ea1651033690c452114e0c182f4b1695df5a14b0da5cbdf873181370219ffff03d6a2ba7b4f364b3a3b7b6c4209fcf3d1011531b139b71db84f2bb53ecffb1b8703a6acf00711f7dbef62cf381afe3720e87d0aec953072794fb5f814f6796646cc03313b65210ecf9374212a7cba2f665a483d8c5566a324b53db8ca8602b2d7fcf003afe63916205aed71b3222cc3b01f1ffc46d2ab9f50afdf6886a984122261f263031d153d39e38539dfa4dffefac006a58414cce22111d08f4e716433bc07056edc03b62d4f09e1303398e63b29c775482e3062192d5c15539add54969c3c04fd75ba0345e5dddb7822ea8d6a2bd67e6cde20321436489520ea03279d22f2f73760363c0324764e7531e0f9b6e6877e863314b90c70256227a8b94a4163396bfd25c5c84e0377da1461e42d3cb67d4045d76f0d7b5a42faee0aa91ee66658530711b8acfd6803001ef52f3f63449d66717e9df0235cdf768d1ec95156025cfc8f856a8174c44e034b3e06528a2f616880d2b1ad44da7db25e81da3c691aad9e3948d6e7a4e319e50219ffff0336ad84f9dfc5a1c801f83a2b742deb66551f984f1adf1cb53f731571ead9f9b703ce4ac24a8559bd6d6f9f51a4da14d46aacc9bcf17efa88958e6e2089f409abe20386d70dfe9ae049c4f5f3d1a3a59bc1f2c1b632b43aada907a9c035e31c4dad4a032b69321c1dbc2ba6f571e562c356fcf74dc00fb7aaf2482c388546a3a0578eba03d00ba8fe6345882557aca124737f20209f35db669fb5ebf110beaa93aecc0486032fb2dbea144d024679978699779e3f384ae03067bc2144358228b6a36df0dd8c035be1e59a3564a6509b2858ea224586348ed67e8b6faa25984ecd75d7889a5f4f031e2794846f9b628e19beb9ec646c1681a4ab9d6cef2999e7c0448cb20cd03f0c036e497b19e090670b69edb148ad017d0dfefcd2720c9efc41ff83dccefb6f9b4f039f79605df0b7a50ce68f2a9c54a2cd4e2050aae56f2fb9b44ea7280c9723805303857b9f93e0352dd85f7c30400db11bb28f26a5fc75085c17b7001e42571c0770036dfe7343242849840a345a5b88e74532645b4b520224661a88cbc9094b22e962034bc32db932fcb4f7999cedddef6212dfe40909d0937c9fddbbf74d15d33094400058200335c9b3bd698ff09de074957f158914180f755f499c7adf4bd208caebc5d5504905de2b6bab7dbd797d031f484cfd3d38d677d53727a9cc7209522d5a3902a811db465eabae4108b78ec203fb52d4b4f743010aafb8e849252bff7416a0d197516f701fc7bd543342275ab903353c6336a674b20be863400b46394d8196d4ee930bf5c9a7f88a3fc20946a10803ba4e8741dfe32e724f286e82e7bff0dea64c800a6032a5dba723df8eb1e3c498030be41a90b9aea72f7ff4583bf9ed18774d8582de635d1e23010e1fb37dab247100581f027fe836b45d60e55914d279b1ca92179a012f6cb73e48c35d8f7f17c8418a4507a07f967400581f020eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d54fc44f80c94cc129f618cb9c756000972e775cbd1020603cf76d307f43f5b047fea872e9d8ea4a8fe59897ccc52000f6b801507ad05db6e03847d7b236daa57cb37f079f617cb03b98b1a1fa49be7f2375383d75dd4c99d2203ecca668da9a6881ddb0a5f23e7c986663e474391abd3c20749965e9535c1872b03c4a254dd20e7fa4e785f71c59b827aecf70ec507004716db4ff13f73d94b055b0219feff030a48ec1b7d6513a7e77f51e833304c35cc4f2afb635e0c907ab3c95d98f2d42b03de484e025fd7abd6f505524b999a9e397611c2b774abf6fcdf4ffce162259359034395120e2165b6e6ac1898e259a584ead3927f73d651262b9e75f2cb1c41da8503081e67b4c360dff65ed369f468040d4223f90d2d9c563033f96fc868d0c3ed4d034bf27605effd27b57f51007c83898d63026b9041691b9226dac0dc19c1d3c48103fad2564a30ac6d554572e0c7472cc997cd331157703bd3fdb266463988c8908603c58f7d1b6f43e67d7d1f88015ec4f8dea686fae6b6a3caa4bf941426b1437ca003b96dfefb9cead0579bd6e6684235a961b5f3e3ec59f9c479334a2aa2cd4434f4036a982d1cdf5209e9ed80261e8e4cb7b900144d25746a4c04a70f11fa60b8ec5c031af96a5f6dfee3a7365f163a3d14ac197e5b2f47aa3b5d62195c54fe0dd269f00219ffff039d73c5ba4b7fabbf051e55dd92dbfa9336c304e5fecdd080656a53dc6eb358bd0363d7597db21bec581fc68debf404441061390fc367fbc77d42ec207c06fd912c03335ebf01ba612ec0bf108bc751677515fbed243f44e864bb93f21ffc42c491a4035481744a235f171e310151a71a9b5f5072c709c20efbeba3b3a9d792671f9570033fa39b01c79f75af8c5a5dea07f33572ecff22e017124e19b8a0ca33f3a0bd7f0303cafdd2749605a7aee8b2ec8c1c562c22193486c03de3075fd7527a4801aa39031e059eacfaab5393174d2aee90eb6c31b23f13f51cccfd0ca9e9dc85e19b29c903fb28324d65806f566222e127f0e46fcc51594e4cf1dcd6844c9c7201560d998003cbb7fdcad8e64339ed983589b6e56f43256f0b8c50ecfbfecee83948c19f60de035a59762a8f5db16c07dcf66da20dce5527913715247ade4d5d97e686dbd3a022031f9231f9d22be752522cac081c1f3999909493928b3147eb24ea4d6c1031e98503ef819fd6f1cd22c4648d847e25c969fbe93080f4613574f532256acca3add572034e49537f7e9dc5cc26e83f83b08480379a0885902744c186bfb5dfdee90ec7c603ba903f0195bf6ef1ea5bb1073abad714db950035c5ea85142d58c6a4b0cafae703a126d8ca7eab6c1aff238e8dffc1fdbb489e192be493ac399f5c0dcfda52525803cf937b2f47432e2b324afe85967ea385dbcabddfe75c740b3e103fcfff337d9203aa5172b5f21cab024a16c3d79eae7657403dd14faaddd28dcfa789435d6c9cd40317224ab943885ad01c01d501263983fa752a204fe0ba3ce3d023c1832ec26e72033125d43bbcd7973380bb47058f44e66e24e61c7de1181fcd301d97a32b6eacb903af790a99ff9a9b030faf6c6bf8ff425f1aa348c5185a3858122dada3be665c0700581f02a144c9dacd01eddbc6ccde6079b570980924e7c2bf755517527096f5ddfa4a11760568eb5dbcbdd72f03d25ab2079baa72a84d5206ea4dcdbe6d23d745cc84e9db4ca6f1057f7628442c02194001033470f909c9af44dd4817f67d30448f499e574002c83ce45917d822d010bb6e4b03bf4359bcd7ed0744f73abd788826d042a3157d3956b9016c82a8e2fb2f18ea5203c09bfb66953ffcbfe66da604b713cb1d0bc41364c7ef60bbc6bf41476b66f2800318c3b7f53fdb69d149674b1273dea453a253c7b44eebace78e002b3163a1e744031f888d5a5bbb45022794cee28adfae42b9f5655d0453b675984e100dba0ceb7103bc85309d4f18060b2a244dece95fe0983bcee7ed75dda50f048f1e09502c0ea6035b909fa3b47a94eaff2f780b7397ee9151cd833373e37ee5a3c9b6b7e73ba34200582003cc17e516a4644d320c60db1332e5cc64ebb223c8ee72413efebe013c36cb30490e04d9368a06a830e203037287fa0691af6e4dae6455d7466daa39664c4f5972da4d25d535c7129db2600366677e2c3c5d89d59b80b39023b1cc0fc8540f3481ed81734fe18bfe9b7b628903d23c4494bebac6774b4dbd0118b325fb75c6f13af5490e778da7122ae6c8a2bd030a5c7e9dc02cb876a298110115e4356a881bbba45e710038cbae6c97b986633f03c8b542b48003df15f52e81750c9d4ea73ddc675b9ed2e1d551538b39cc13847b032294f3c98d94b5d4fe55a8c6b057f56fbe11bed5bef0bdc3d5973c02c336d1050219ffff03d3ba1e319eb0de700da8d1a5e377832e40df2ab2c4686aa78e71ce941a5257d903733911a08880b4f02ad325ada11ea24e025f03bc69230a4abb4ba2da9ab511f0035f3bb9e5cb2d1ff24c677de71e79a82d9aac1ad04382e493a2570ca722333d120219ffff0219ffff05581e0370957eb689f52cf2425fac6137fcbcb90aa705e8af29fc2209dca9dfc007011902c405581e03008d4c66d087abaa2bf22afb60e0489df133d3cfa27ccce0d7c9b7b150084709d2279a9897c805581e0349044152344346a641b1842e8ce7071ea27de322e1ced42db9c6bd5fe00c0c4702912a7f03972805581e03d1bf47b352ed73f393f393fd62b1cb8cbf9fb8f0e5565399ed926dc3300c02470117d6b06be98803562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e038d3d259bf2925e14c3d16fe3a597f7a3d9fdd0ed2d1da94a8d38dfb4e007011bffffffffffffffff03f49c337b811dccefeda07ed4fa979680f77ac635ed97e132e91d28d21374eca005581e033088baa0aa9f4d2052305fa31b589167026296f6911496aaccc8c64fc00403021953c503b8dfb9447ab29ead67f34c6cccf02be245b51dcd58675729d0e2121ced1856ea0219ffff031de4820a26c6e43ca01163ca1f2a8c06257439422df32ee47c84aad2dc40baaf03f442ca814e1d3e42a7d168059cc492d77538f1bda7b71eb803bd5363b64bd960031bbd5af8d2fcf17b86f2fd57b37233028a52ebd6dee1fa25a3e50dbafc0ba3fa03fe7f51269c7901457dc2a51f88d135afbacedd0aa56bdc9e89907f15158288d20219ffff03a2b288c3f489f99e9fbc68793de3dd5a602474bed5d41439d90ff45a6d00452c0333dcf0b3714cee6f2407bebc5ee3978d623f8a06c21112e3bf7ad4b1cd4f50dc03cbe73dd06a125feaab189d1c3fac24a9c20e51f27a43ea82d297a159b179aacc03abb4c0d6016205cbcfcefae5fb5ea50cd2d4b283a3a03c7919bc26329552287a037c2264be4993bf805a7e035a9220f894640846b5409f1a7b6ddac86d093dd12f03ba9b0a4fd0a60166b71ca888cdb209e144a10ea491396661b6d3e01db952d45f03c800fde1d87a58058d05e9a69d513f3ec61751988718de94daec4468d471c5f703334bf048147bc3c8d5eda628fa4e2b7da233137a09e9bd2d0968ae13b021891a03dc8479561c4b58e13eefd0fefae7a2b5943468036a14ecb43f433704645383260303071dbb5906fdd60e3f3793cd0f1c4612019151db0a430c21ba9d5a8ea4282d035aa3d5150785de378a065383c6e99fcaa54d34a18dbf48785bcb3e474161fca1031a6fc96f268cdf8409a5afd3d76950e04b629bd1c14ecdf9e514ce9c4fed6ec1033ed2d7fe66a7bb3d912ecd8e8ef51b79e550d1759f93152a1a8b28f1c647286703a33d3c3ed50965a874d739d252afe0069b6d8353ddf1d4e525967322b8f5a79903fbe4a701c0efe983660ad7caa7cee90a3c1b45ee16a2d5f75e667796f93b6f81038b89d95fcde74215b4cee473bf62ba977832e2ea3c99505e31d637c30694695e05581e0387aafd947848989648f2c48c38ab94d95be2615644b89c5b14cb7f6ae00c044727329e584eb3570314c1811cbbd2b3af2e2399efbbc145d5566e88644f8ad6b48f29b0de6335d3c4031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03a70a818564a13adb6652153ada0fdd5bf1f4f94da63b492dcaf9e428b007011bffffffffffffffff03e25d4f154acb2394ee6c18d64fb5635959ba063d57f83091ec9cf34be16224d703608a02f403f30892b8967da9ac469a8c36335336a69bfcb93089ae791d2c976f05581e035331503212364343f6be717d883932db5da5e03c0c6ce7823efe84e8100f01447807c1dc1bffffffffffffffff031bb9923cd5c240f934d10aa469719216b5085bad3872169ccced536edc22277b03da9a8dc62f6fe7e06cf36272a7824915f0fa67a577b587182bb8eb00ead29d6103ec549f9c6738e97fd8fe16864a50696530be736dbe5b3f828cc38c4201b2fae804592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c634300051000320300ee6158611a510f7de2df7a2c4767d987778493b8e3b80910c7fead461bbe3f0058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56304b0314681367c295c3ff27fc0058200238e9689977d526f580531775c606e5a07c1ff4f40a9ee98e4cca4fe145a2f44106005820021540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af4d1ee3c58a7621b24aae96ed610c021942000058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5820215b786e4eba85d363599f0603a96206d9fe3a001a117bd4680bc44156f3ec7f005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a85501f35caad949a520c0f4c9f9feebc726de77490aac02184400582103f6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70410100582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5ddb0000000000070559f0befd626c050001ae83e8d8cf3f7c0d940b5f490058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f546d7497751656618fc38cfb5478994a20f7e235df0218480219b44505581e038de1d31fd0732b069ae68190eee17c0c586049e31a87a9de9222e718a00701192c1d0219d3e603704520d9a7f1d0f5ab13beb574fa85de11eb7dcc7aa98226a9ccb5801f75c362034e9df35d5bc61b600725ff1e3b9edc93735eed90a4aab1d0ad00f3616160ad20031176eebd55a02d80dd05460759ea58b48d39d6536b0ac765748a7a44410fc12f039da3c4c4508ecd179fc818cfd6c02b6e5d3d1e3047f69ecd21c37da15cb7d95c03dd42b7dc543187733702e6833e939411b2197a65cb76db423d59b475efae383a0315eb189197451955857f5707b837d7f14410752a1f0df757c7cb5863a9c6693b031aad9b030037232530ffb8b896db838425e0920dc8cdab47a182e2fe28b962c10365767c107ae03dfe02656af65be9ea4c30a65e8f9dfdb46295a452d5d381cdc903849f47f6dc1cc96fbdf17126d21d912c231b751f006d336884ce515a2681f93a032727c37bcf8b59e47634a27e11ee38eff8a05f80189c6c3d26722bc37bba30ce038177696feb2dbf2967cb4103efa2d507430711a197c2a738717c5b5543008abe032508f1a148f02172830fd482ea79cac02271a388af04019d6e49921a8a889c5d03e3b6225311b88e9bb4e2e9fa7a8ca0d03d20ac765b5f7ecdb3b183f7d7cae19303ee1760c7bd18c667ed1ed1d2d7c9bf2fb21df6ec20e0ee2dc9728cce12e9fb1b03d670e0d87c493b8041d362698dafdccc6291b498bfa6d94e5dc5d570c404140f0219ffff039a5d2aa9f89477b40b38a663ee233af208c20c47eaa78bbbabc145f2904fe69103b90caeab462eef9191d70fedb72ccf5a33cfeb057ee0fd17bbc43924a95fd89b03c3311ed3314a1499699434304684b7d306fc6f1358e8cad611a2895ac6e4291803b606ff6b93ae409276455be3f976d773b4336fa3f48cebeec8e7d522e9ffc77d032b6813577f217f060dd7ddfa16d8fd1394f5ac92b0c1b82d1ce3ed2f6e7b54050345aac4665b1fe48e2030bf0b64fa6a30ae1ccafe3dc13205189dfb7f0bf87bc40219ffff03bd2694cb32c5b310f2d4aefb513da5ba5f275c0b27abf93d3bf882a711be69e0030d23013cf35ab6c493b4afe0a730271f0f060b47cd5fbf77c501601a0ee33c0e034fb730c95cb500750ebaaa3c8d558a90071672bcca746ed2947d120c748b257f03a040fa78512205ba6ff18eaa5abdf5ca13d3f9b4e4c429bcc2e21e2c53349e8b0366881b92ef17a38d30df1ac9838f627c98b1e8163b2e2a29b6acd3010a4219a503cc8caead566ef34cbb50ddfa940a73e65fb2fa76e866521de5f66c24db31c7fb0219ffff03d9b55519b797e5315c86a1d5e0016ad1e842ea70854cdc7a5ebbe42de23cbcc003b38eb34b3a786ee4b1017efc2fcf427c2d07c404fff0abf6741f6e49bb8046cd03c1c8421472d37f03793e38ef284bdf7c991240bdf558b337ffe0f08e6ce601a8036c9f1be308193b34b3ddd01e72bae54f8f6e51038bc5d84efab4f66f81881dff03efc271ea3d7457eefadbdf19248c497870a69ae82274b3d5a350c84f1a4f520d0347e116d845019b13b63c5aa50489814503be2ecd07c174a7da19c8680603856e0219ffff0302a36f628ab52e9d640e7cb391a3eff434cf0e4341d162f49bccd2b44c4bb0b103003587c617419bc12e302d3b16f937c55022a441fe4a30481c998a89a3916096035136e3e42622b613868cd96aa0c7e4323c98da1de1ed560546c7f2756617fd4d034ca12e7bac26b55935330af5a63df029c2dd40fbf4689b171439b80b90a8ca60037f33414016d9b13c4ac71e423c3e71cba79aa7caa082122986968e8f23b5365203a697b72a63a271966e9dfe2a23864ea270f540a2bab379cf39a3bd93aa410d87037e064c21fc88467bc3d98b2e207c5a9239caa44a6f716379df2e047b2a972344034040a2f0d2ecb276aa5162cbafcba1a97c183d69869835f38f6a7e44e040811503d513e437a103039a11c884991a5e286e0a4ba46a6c36ee97699f7a06b60a933603366e48ad963645d41aeb6bd2aa998af94a8ea2e34dc7da931dc7d78cce6f57260324f3834fa48f0c3c6200e795c5adcb7c015928e5c216ef5c0c66aaa726f9059103e1b7cc2779b0dcba1a0714f0168a8883c614bb2fe4d94b0627bffd1e34dfb4d303c775d1619faa8eaece8309fe0b16221b3780b0b235b3655173de3d982ac1406d03b6281bb5011b9df4f0cca91151b2f0c64912c51987f0968883dbc3098a6156d703e14a893a0ae43205ba96a517e7f39472f4ba17de9af0c8417c4a337dc5bf9a1903d477bbffc1e63c6cf00474a6d508ffeb82102107cb728347b630ef6bb59539b803e6c2f13f5f5b14c9bcd3986e6abb5353d392a44b407c8bcc356d3b8e5e48fec503ac2b910e2edcec914806742da30b4a07714c247d7e28829d737c3d2ee6780d4603c13a20485cadc18c852e784e0122aa43788020c971a1be305f72b24ff1108cd2038dc9d59c20ba92f83a268f59e91da7b8f3836e6612a3e398835f6a1792d8e228038717094955217b701a288daaeaeeca742f955477441f9d4d0c2a5d4bdd1f702e035cee59193caf9a94e6892acf835a689de0fa0381618a4e5c2db52801ada30d7c03232a5c206d73e02caa6061a499d213ca05c018b6d13269da8fab2b3fc22955ce05581e037a1f85c279c7f98561df4610a730b04cb988c111b1b04ed7261cccd1000c0146638c59f79cb805581e03c3ead12a87888bc22fea0ab0df64e92515d77b3d161b70bc09cc5f61000c0246a0f5c2b6f59005581e03046c9f3d4ae7497fbcd9c8436787e22d89f4470eb91e78eae3164859500c014701724621ff99b803a8056ebbaf6e66d7b2bf28fab0f01ae188645e048cc8978592e6c3074165230903f206c0c582f8899470e6bc71c4cd0d4aa84b9d0842ed51923916adb859e9c36803ca920e96aee288d1c06404d94d079b3600e7d1e225777cb2a19230cf8d777ba705581e0345282ce024e5a1f1cb80066b20b37773511f17c3d6752eb4ddfa0407c00c014739c4979582f20005581e0331a12155ea6f6915c60a80906e848584e720c383189b61164ad02d4ca00c014714d00380e2320005581e03c256e11838d383039f9b57482c6fa9fe1ab19da890a74c42683f750d90040205581d02b211c336002cb50805086a35c25a74a51e2bfb58e29d5390e725e7f50c02457592a8d9e804591792608060405234801561001057600080fd5b506004361061009e5760003560e01c8063aa61a9dd11610066578063aa61a9dd1461023d578063b1ea3309146102c0578063d0685e2914610339578063d4e390971461037d578063f2fde38b146103fd5761009e565b80634b3eac9a146100a3578063715018a6146100ed5780638719e226146100f75780638da5cb5b146101705780639190031b146101ba575b600080fd5b6100ab610441565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100f5610467565b005b61016e6004803603602081101561010d57600080fd5b810190808035906020019064010000000081111561012a57600080fd5b82018360208201111561013c57600080fd5b8035906020019184602083028401116401000000008311171561015e57600080fd5b90919293919293905050506105ef565b005b6101786107a6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610223600480360360808110156101d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190803561ffff1690602001909291908035151590602001909291905050506107cf565b604051808215151515815260200191505060405180910390f35b61029f6004803603604081101561025357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b09565b60405180831515151581526020018281526020019250505060405180910390f35b610337600480360360208110156102d657600080fd5b81019080803590602001906401000000008111156102f357600080fd5b82018360208201111561030557600080fd5b8035906020019184602083028401116401000000008311171561032757600080fd5b9091929391929390505050610f4b565b005b61037b6004803603602081101561034f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611199565b005b6103bf6004803603602081101561039357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113f0565b6040518084600a8111156103cf57fe5b60ff1681526020018361ffff1661ffff16815260200182151515158152602001935050505060405180910390f35b61043f6004803603602081101561041357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114ce565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61046f6116db565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610530576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600160006105fd6116db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050600a8081111561065657fe5b81600a81111561066257fe5b148061068457506008600a81111561067657fe5b81600a81111561068257fe5b145b6106f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4c6f636b65723a204f6e6c792063616c6c2066726f6d20424c2061646d696e0081525060200191505060405180910390fd5b60008090505b838390508110156107a05760046001600086868581811061071957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083600a81111561078e57fe5b021790555080806001019150506106fc565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006107d96116db565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461089a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561093d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4c6f636b65723a20696e76616c6964207461726765742061646472657373000081525060200191505060405180910390fd5b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160039054906101000a900460ff16156109e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061173c6021913960400191505060405180910390fd5b83600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083600a811115610a4157fe5b021790555082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548161ffff021916908361ffff16021790555081600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160036101000a81548160ff02191690831515021790555060019050949350505050565b600080610b146116e3565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff16600a811115610b7c57fe5b600a811115610b8757fe5b81526020016000820160019054906101000a900461ffff1661ffff1661ffff1681526020016000820160039054906101000a900460ff1615151515815250509050610bd06116e3565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff16600a811115610c3857fe5b600a811115610c4357fe5b81526020016000820160019054906101000a900461ffff1661ffff1661ffff1681526020016000820160039054906101000a900460ff16151515158152505090506003600a811115610c9157fe5b8260000151600a811115610ca157fe5b14158015610cca57506004600a811115610cb757fe5b8260000151600a811115610cc757fe5b14155b610d3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4c6f636b65723a206e6f7420616c6c6f77656420736f7572636500000000000081525060200191505060405180910390fd5b6002600a811115610d4957fe5b8160000151600a811115610d5957fe5b14158015610d8257506004600a811115610d6f57fe5b8160000151600a811115610d7f57fe5b14155b610df4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4c6f636b65723a206e6f7420616c6c6f7765642064657374696e6174696f6e0081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3857600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f867a90787876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015610f1f57600080fd5b505af1158015610f33573d6000803e3d6000fd5b505050505b6000808090509350935050509250929050565b600060016000610f596116db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050600a80811115610fb257fe5b81600a811115610fbe57fe5b1480610fe057506008600a811115610fd257fe5b81600a811115610fde57fe5b145b611052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4c6f636b65723a204f6e6c792063616c6c2066726f6d20424c2061646d696e0081525060200191505060405180910390fd5b60008090505b83839050811015611193576004600a81111561107057fe5b6001600086868581811061108057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16600a8111156110f357fe5b14156111865760006001600086868581811061110b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083600a81111561118057fe5b02179055505b8080600101915050611058565b50505050565b6111a16116db565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611262576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ed578073ffffffffffffffffffffffffffffffffffffffff16638f3037ef6040518163ffffffff1660e01b815260040160206040518083038186803b15801561133f57600080fd5b505afa158015611353573d6000803e3d6000fd5b505050506040513d602081101561136957600080fd5b81019080805190602001909291905050506113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f426164207361666574794c6f636b65720000000000000000000000000000000081525060200191505060405180910390fd5b5b50565b60008060006113fd6116e3565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff16600a81111561146557fe5b600a81111561147057fe5b81526020016000820160019054906101000a900461ffff1661ffff1661ffff1681526020016000820160039054906101000a900460ff1615151515815250509050806000015181602001518260400151935093509350509193909250565b6114d66116db565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611597576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561161d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806117166026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b60405180606001604052806000600a8111156116fb57fe5b8152602001600061ffff168152602001600015158152509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734c6f636b65723a2061646472657373206c6f636b206973207065726d616e656e74a2646970667358221220b769c5203a80e8e0c129cbe4b6ad8f075c580b14c47b8acf925152bff57607f064736f6c634300060600330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630544261d719869fe81341fba577c0e631c90595862000582103c7a2b0c5cb53d06e03a738013958eea359474ea09b697b4e45e34afea7d63360410400582103586467c05ecf4e8568df0cc402212db5b95e331f7cc69502164793cd36ee7580410400582103236ec89ddbac611adb30983b207aaa61340bacb0d6c6c5109108eef2e63c4140410a0219405405581d028e72da69c668c28b8ec8b0dd9bcf0f3356c27282ac2eca1827f2f5d30701191792021901080219a5be0334b96fa0327720575a2276964036bd86bb27a004ab1a9001a216fa0c0420af530351c4472f7c8f72a1fdee0299165e17f226c95824f247045c3726d0d95b4fe28c03c02c5a9d64b4d858673ec39b302dd25552de158ab41e9001cae44d27f1a844e80219ffff03ea167a5ccbde2525cbacfbcd832b14d70398ae8a11d7ab6920d2af5b23e7f1170336cbb7027d116e5743fa204be765e81db5743cf48b28be0a702b5b81e7d7215103c793b3fe68c99ec6338bffc27b04bd3ab2150aaa62597f5fc1d58fd617250ade03177405b2ce9042d4b1e8f14f1133bf56365d8b54667b2c6d7e3933497cdb8f850330784b44b31829a4aedd9f80e02d73b989622429a111c9c212a890780360d9110338d3da42161fb4436f2940974cdeadefc36d038bf328d3947e9c25bce001c0270342e73d691e27892d2f3de6cc1904e31381f4f7f073b5f343c01a9939e063b98a03489dd71237e1e57d338147cd9dabf215a9e3440e22bfd8fcdeccc8aff40251ed0307d240a1b13054393805f2963add78afd59b0e059ec15647b32813a1c98234fc0372567011a288a34f60500aeccdd5963aaf6859c9e7c72bf5543a6c72b4d81db4035340862d6781904a264bbe31e32ee8553e447583db52e5023f4c25d01b723e2403b833162f0255e27fc7ea38a163aaee1cc3ec4cb9182a706e96d63e07bd221d28034bd3e2e3c91c9d30b72fe78ff4610bee14d76e11afe9fa057e7204a983a36658036705d389b0d63d4fea6205e1b81b97e02843251a40228532a606bde387f63f76033a4acaab3e79bb15aa5915601a701f4c93151e68a2e8884f3a6a6ed1b25b54b90219ffff0368e14c0c33f521d995eb182c3e25bf89adfae6e63a6807ea8fd2981bc3b53dac03c9efd507884f2f3211dd605310141a6f2ec0e7a177a34008146088d3a591265d0393c05849d13b7b9e9749c931fd23cfc6cf8a1e42a65f58c0d648ecf8cd1c45ed03377ee9fea1469948935771af5d6cc5ca833a4ef706e4ba5d23966d50c502e4e303f0d489e75707d58a6754795c7199d84ed011f27a0fc32ab419a69b883af647b40300f990adbc7a52138c3561ae9006144fb3581c842204b2c6345eeac3603440ec0219ffff03359b30a04c8bb95af8399a0ee9c260cea3007df3fd9facb43eed03dae3f5990c03fc10a976fdfbb568decb8d4846ad10e75938cf469ee5e3ecba9419e7192475dc0376d121c422ceea85499ad30cbbcb0a83e5b6f1ce8ed1517e3541748c28c289e20328c99d3605c58101314e377322ca2335d59a7260b9c5907e8c7ddd1becc36f4a03c17a7ddfadcc561dfe8c513fdd5d300c208fa79962208254d291795955cf5d4a038727720c45c41ab8f32e5c104dc4541ed696ea884a801903ad06007efdfa24d103b9a1b637adce98dac733ea60c3489e7dd924bcb9070226dc05bc207ccc45d4ed0352029fd5e0ec05068597ca6dccff487067ba8a85d6a9f58050ac82fa45607b2203db4eed471e57ee90bcc4a919258df6ee455c488021a11311ca33d71d173a259903a944c1335d2102932a4f74fbca6204077a6811f72ac2537093b980e468b3560803a747a0d732677ea4f1efadc980861c1abddc60cacd5ba152cfbfdf0346d87e6c030de20b158fc06dc0d0eaec790c39efa6a956d61e595deed6ecfe08f5c1f5deea03779242e36e9e78324a67d6d32006227593c7f2ac02567a01e01a1c362cbb58d00219ffff03cccd77736756d04ca2463b7350ff6a1199cca7ea7e69a5f7b1e52b1596d126c803833b4a4e436dd268ccee5d02d6a3ee01697507c5651ad85ca12bf009bed7c5130365d574b466f2fb4ce2c34647b0e7fe6e988f72684359e5c02055d79f9fe4ed130397c8b1763fabee0eb6c75c0553f12d7a95f8eed7e91f78250ca6ab18fea6bd6f0383c468016fe9a11c2161447aac454e118f98c1bd848db11fdf92ab0b8ff40b4103dd01df9156c7ef0d38cbb701122dbd1bc007659573734c28f3bdcccbb786e6f903a0252ccef2c35787d05310e3e01b67ce2c86a5f5ee3e8a5b3b8a7407839074ea03fbf2fa4f9bf7fb3e5fd3390efd718a5612fb1862e8a2919ef7cbe2e3befe6f470304536679701c952d74d800c5779e99dfae846eda59e786d3d2db75d3ffb71d3203ece261737f9cc2c3785573495a7ed917d34edbc876c4423eee84df3a232285b503484935fb1d19cad248f0601bf1c7e418bbcf5cb3ed65e96fa10ac365df1b19e30347bf60443e97f453b0746af225e2fe773b0a3db5913fe9ca143ee678736d9632032d42a8c4279117caffc7969c5959ef1ff3c5477bc8b72b77401f98c258191daa039340a7c0d4a86e5790407a45697ba30ac795df105980519e50c5a45f16df5805038847c4cee238bc7224d819bc0b90f039441dd8b6c20e16ef4ba5d4a549d1bacc03659d9a55b739e9186baa52787e32a589b80561987e17321d6c9ded56098f17b8039a2e67294d0c0de65062c846ee13b097c89aa9ce9a9f4c0e8b76edf79de50475032d3a981e5fc1f74c751f0cdbbb3cd5b2456e707838c3fdf4f417707374dd75a503626f9ed5a4a8160c8064f49398bb89aa7dc09393273f5234798b15bccc1f5edd0347c36d927fd0360f7196f7c12a5cf6acfb117d79003e934204afda787adfeeb1032189dc55c8cd0547e17e4ed072f6c5d7bf4c221f296925369703baf7a9de41cd03a4d49ce1b5ec53438953751c54523e085164a7a0ae03e3c0e8d596b88c898a94036edafb7426751602a1553712ba463c6f08c7fa99f7e9421370af7a6254553d6b037ba2b504a7f37fe4fbb6a01a65a948ca1f2dc6af7d411b5b5719233a0a64e03a03b5545521799ca182c7873a21d7411c08c23a340fd356367750d2fb0f8d52f3cf036b6c945653abdf5871f6bcf008aa3234b5979a2bae400a4fc3992f9d384a66920360bd530e25d3fb0b09e40fc68905aef48bf856ee56432674e95a8039c9ade349032db5ad8d552709510a7c87b684a7ee2efc8a43908d784698155b5c84e2afaa3b0339abee83fc5af504b3fcec82b83cc0fc2674eb1a0ec39a85313bff1fde5ac47903d12bd4c5b73f8b55f098110f95b3a7ec69ec1707b33b725fe0fbcf3a1a7e4c85035d6e07e6feb9f396d073c36703bd8a41c39578162b528714b5aeccb4dde35da7034091dfa37a0ece696071ad8c0d7ecba6f9b71e7830bf56a10e1f231526c1f19503cbd5c6c65cdaa07a6c6ccd4b2203cc1a751e928f7161682214adbc65afedd165033ad4bd2e67cf8702ff4d7a47697168fd17291f98951b3ff1d5f155aa42a9d96c04592377608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a714610534578063d505accf1461053c578063dd62ed3e1461058d578063fff6cae9146105bb576101a9565b8063ba9a7a56146104fe578063bc25cf7714610506578063c45a01551461052c576101a9565b80637ecebe00116100d35780637ecebe001461046557806389afcb441461048b57806395d89b41146104ca578063a9059cbb146104d2576101a9565b80636a6278421461041157806370a08231146104375780637464fc3d1461045d576101a9565b806323b872dd116101665780633644e515116101405780633644e515146103cb578063485cc955146103d35780635909c0d5146104015780635a3d549314610409576101a9565b806323b872dd1461036f57806330adf81f146103a5578063313ce567146103ad576101a9565b8063022c0d9f146101ae57806306fdde031461023c5780630902f1ac146102b9578063095ea7b3146102f15780630dfe16811461033157806318160ddd14610355575b600080fd5b61023a600480360360808110156101c457600080fd5b8135916020810135916001600160a01b0360408301351691908101906080810160608201356401000000008111156101fb57600080fd5b82018360208201111561020d57600080fd5b8035906020019184600183028401116401000000008311171561022f57600080fd5b5090925090506105c3565b005b610244610acb565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027e578181015183820152602001610266565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c1610af9565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b61031d6004803603604081101561030757600080fd5b506001600160a01b038135169060200135610b23565b604080519115158252519081900360200190f35b610339610b3a565b604080516001600160a01b039092168252519081900360200190f35b61035d610b49565b60408051918252519081900360200190f35b61031d6004803603606081101561038557600080fd5b506001600160a01b03813581169160208101359091169060400135610b4f565b61035d610be3565b6103b5610c07565b6040805160ff9092168252519081900360200190f35b61035d610c0c565b61023a600480360360408110156103e957600080fd5b506001600160a01b0381358116916020013516610c12565b61035d610c96565b61035d610c9c565b61035d6004803603602081101561042757600080fd5b50356001600160a01b0316610ca2565b61035d6004803603602081101561044d57600080fd5b50356001600160a01b031661111e565b61035d611130565b61035d6004803603602081101561047b57600080fd5b50356001600160a01b0316611136565b6104b1600480360360208110156104a157600080fd5b50356001600160a01b0316611148565b6040805192835260208301919091528051918290030190f35b6102446114dc565b61031d600480360360408110156104e857600080fd5b506001600160a01b0381351690602001356114fb565b61035d611508565b61023a6004803603602081101561051c57600080fd5b50356001600160a01b031661150e565b610339611680565b61033961168f565b61023a600480360360e081101561055257600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561169e565b61035d600480360360408110156105a357600080fd5b506001600160a01b03813581169160200135166118a0565b61023a6118bd565b600c5460011461060e576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55841515806106215750600084115b61065c5760405162461bcd60e51b81526004018080602001828103825260258152602001806122886025913960400191505060405180910390fd5b600080610667610af9565b5091509150816001600160701b03168710801561068c5750806001600160701b031686105b6106c75760405162461bcd60e51b81526004018080602001828103825260218152602001806122d16021913960400191505060405180910390fd5b60065460075460009182916001600160a01b039182169190811690891682148015906107055750806001600160a01b0316896001600160a01b031614155b61074e576040805162461bcd60e51b8152602060048201526015602482015274556e697377617056323a20494e56414c49445f544f60581b604482015290519081900360640190fd5b8a1561075f5761075f828a8d611a1f565b891561077057610770818a8c611a1f565b861561082257886001600160a01b03166310d1e85c338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561086857600080fd5b505afa15801561087c573d6000803e3d6000fd5b505050506040513d602081101561089257600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d602081101561090857600080fd5b5051925060009150506001600160701b0385168a9003831161092b57600061093a565b89856001600160701b03160383035b9050600089856001600160701b0316038311610957576000610966565b89856001600160701b03160383035b905060008211806109775750600081115b6109b25760405162461bcd60e51b81526004018080602001828103825260248152602001806122ad6024913960400191505060405180910390fd5b60006109d46109c2846003611bb9565b6109ce876103e8611bb9565b90611c1c565b905060006109e66109c2846003611bb9565b9050610a0b620f4240610a056001600160701b038b8116908b16611bb9565b90611bb9565b610a158383611bb9565b1015610a57576040805162461bcd60e51b815260206004820152600c60248201526b556e697377617056323a204b60a01b604482015290519081900360640190fd5b5050610a6584848888611c6c565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280601281526020017129bab9b434a9bbb0b8102628102a37b5b2b760711b81525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610b30338484611e2b565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610bce576001600160a01b0384166000908152600260209081526040808320338452909152902054610ba99083611c1c565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610bd9848484611e8d565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610c68576040805162461bcd60e51b81526020600482015260146024820152732ab734b9bbb0b82b191d102327a92124a22222a760611b604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c54600114610cef576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c81905580610cff610af9565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610d5357600080fd5b505afa158015610d67573d6000803e3d6000fd5b505050506040513d6020811015610d7d57600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610dd057600080fd5b505afa158015610de4573d6000803e3d6000fd5b505050506040513d6020811015610dfa57600080fd5b505190506000610e13836001600160701b038716611c1c565b90506000610e2a836001600160701b038716611c1c565b90506000610e388787611f3b565b6000549091508061100f5760055460408051637cd07e4760e01b815290516000926001600160a01b031691637cd07e47916004808301926020929190829003018186803b158015610e8857600080fd5b505afa158015610e9c573d6000803e3d6000fd5b505050506040513d6020811015610eb257600080fd5b50519050336001600160a01b0382161415610f8d57806001600160a01b03166340dc0e376040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0057600080fd5b505afa158015610f14573d6000803e3d6000fd5b505050506040513d6020811015610f2a57600080fd5b505199508915801590610f3f57506000198a14155b610f88576040805162461bcd60e51b81526020600482015260156024820152744261642064657369726564206c697175696469747960581b604482015290519081900360640190fd5b611009565b6001600160a01b03811615610fe2576040805162461bcd60e51b815260206004820152601660248201527526bab9ba103737ba103430bb329036b4b3b930ba37b960511b604482015290519081900360640190fd5b610ffa6103e86109ce610ff58888611bb9565b61207b565b995061100960006103e86120cd565b50611052565b61104f6001600160701b0389166110268684611bb9565b8161102d57fe5b046001600160701b0389166110428685611bb9565b8161104957fe5b04612157565b98505b600089116110915760405162461bcd60e51b815260040180806020018281038252602881526020018061231a6028913960400191505060405180910390fd5b61109b8a8a6120cd565b6110a786868a8a611c6c565b81156110d1576008546110cd906001600160701b0380821691600160701b900416611bb9565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c54600114611196576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c819055806111a6610af9565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b15801561120257600080fd5b505afa158015611216573d6000803e3d6000fd5b505050506040513d602081101561122c57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b15801561127a57600080fd5b505afa15801561128e573d6000803e3d6000fd5b505050506040513d60208110156112a457600080fd5b5051306000908152600160205260408120549192506112c38888611f3b565b600054909150806112d48487611bb9565b816112db57fe5b049a50806112e98486611bb9565b816112f057fe5b04995060008b118015611303575060008a115b61133e5760405162461bcd60e51b81526004018080602001828103825260288152602001806122f26028913960400191505060405180910390fd5b611348308461216f565b611353878d8d611a1f565b61135e868d8c611a1f565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b1580156113a457600080fd5b505afa1580156113b8573d6000803e3d6000fd5b505050506040513d60208110156113ce57600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b15801561141a57600080fd5b505afa15801561142e573d6000803e3d6000fd5b505050506040513d602081101561144457600080fd5b5051935061145485858b8b611c6c565b811561147e5760085461147a906001600160701b0380821691600160701b900416611bb9565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b604051806040016040528060038152602001620534c560ec1b81525081565b6000610b30338484611e8d565b6103e881565b600c54600114611559576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b03948516949093169261160292859287926115fd926001600160701b03169185916370a0823191602480820192602092909190829003018186803b1580156115cb57600080fd5b505afa1580156115df573d6000803e3d6000fd5b505050506040513d60208110156115f557600080fd5b505190611c1c565b611a1f565b61167681846115fd6008600e9054906101000a90046001600160701b03166001600160701b0316856001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156115cb57600080fd5b50506001600c5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b428410156116e8576040805162461bcd60e51b8152602060048201526012602482015271155b9a5cddd85c158c8e881156141254915160721b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa158015611803573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906118395750886001600160a01b0316816001600160a01b0316145b61188a576040805162461bcd60e51b815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611895898989611e2b565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611908576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b81523060048201529051611a18926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561195957600080fd5b505afa15801561196d573d6000803e3d6000fd5b505050506040513d602081101561198357600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b505050506040513d60208110156119fa57600080fd5b50516008546001600160701b0380821691600160701b900416611c6c565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b60208310611acc5780518252601f199092019160209182019101611aad565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611b2e576040519150601f19603f3d011682016040523d82523d6000602084013e611b33565b606091505b5091509150818015611b61575080511580611b615750808060200190516020811015611b5e57600080fd5b50515b611bb2576040805162461bcd60e51b815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b6000811580611bd457505080820282828281611bd157fe5b04145b610b34576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115610b34576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160701b038411801590611c8a57506001600160701b038311155b611cd1576040805162461bcd60e51b8152602060048201526013602482015272556e697377617056323a204f564552464c4f5760681b604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611d0157506001600160701b03841615155b8015611d1557506001600160701b03831615155b15611d80578063ffffffff16611d3d85611d2e86612201565b6001600160e01b031690612213565b600980546001600160e01b03929092169290920201905563ffffffff8116611d6884611d2e87612201565b600a80546001600160e01b0392909216929092020190555b600880546dffffffffffffffffffffffffffff19166001600160701b03888116919091176dffffffffffffffffffffffffffff60701b1916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611eb09082611c1c565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611edf9082612238565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015611f8c57600080fd5b505afa158015611fa0573d6000803e3d6000fd5b505050506040513d6020811015611fb657600080fd5b5051600b546001600160a01b038216158015945091925090612067578015612062576000611ff3610ff56001600160701b03888116908816611bb9565b905060006120008361207b565b90508082111561205f5760006120226120198484611c1c565b60005490611bb9565b9050600061203b83612035866005611bb9565b90612238565b9050600081838161204857fe5b049050801561205b5761205b87826120cd565b5050505b50505b612073565b8015612073576000600b555b505092915050565b600060038211156120be575080600160028204015b818110156120b8578091506002818285816120a757fe5b0401816120b057fe5b049050612090565b506120c8565b81156120c8575060015b919050565b6000546120da9082612238565b60009081556001600160a01b0383168152600160205260409020546120ff9082612238565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106121665781612168565b825b9392505050565b6001600160a01b0382166000908152600160205260409020546121929082611c1c565b6001600160a01b038316600090815260016020526040812091909155546121b99082611c1c565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161223057fe5b049392505050565b80820182811015610b34576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220713a8bf21df06433f34b5c9abf186abb737e72524583bdf420105a289791e24864736f6c634300060c003303be114ed438077a4d81b8569fb8137d220075effec913c90e44bdf63ac8f1f72b03033b4e5733f6702ad61bece05245a5ae2aa4eebad72d6fdef438a2d39be5511403fd8d1775622b24ef1777b78d18a45e71514abe89eab3e522f5a41d4a4cb5e4c9032c38ebd2f66c9c28a2e06db3ff097c01c88cf445d240d67bf5934f6f3651fa3c036d5af011d27cbb4c5312157a4092753402956476f43b5a2761a81f17c5a04fe203cbc2fedf620fb2dfed6c60a27507f8439df593edaf78af6cd00f96f634c879fd037b0b01b6dc7e05f12d3b2be1d43f95ee8d8fc78f3dda21c7d15f6237b1cb2fac03594633d250baf842da414e353a48acaa01550fd3f3952bad38dd33d177edf4e003e858c1961faff2be1f9a365b87779be671b72c2bc874fcbc7d8ac8011388f3a4034c58ce5ae75144437db155f0b188a5c66a59d2899317aa8d3ed2c7284c42e4650318c95785b8bd5cf46b59b158e920b304d1d419ee5f7e3e10dc769ca17f67f37e0335e843e4ff3531b82c440bf88a732b4069acc898a7939d6ca33759242555a712033aa8949db5d7021c6740ece953dcaa56cc11599a1aa6c0ced70fd33431708e530310c3a1432ef3d32653153012dc6ffd707f575e4aa8968cc29ccd231cf5f0ac2b03a61e0e0689660953bb94015c945622fce0c85db29bb9b56db341a586d15c6fb90317dabd55c2a1766ce364dae41d21e1db17e47d7c133025b825b3e6a3a68981f903040b0ad986930a0cb57846e3b17782c6d3f4bb91682cdca564673e01e46eaac203601e402f9bfc5add505ca1f5ba7603aee50ebee43639f685fdec2ad892e9942803cdcaf583861b5faa4266081985c0e78d4685ec534c98444e5965c6ad12b47d40036ce8e7883e7f7c65406528d8dd423b44c07f32fbd2d53494f92377fe6e8a4b6c03cf8e4fa2f49c6d582cbb09667ce20a6f40844badb79957bbe15749ad117aa2be00581f0240171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af4e388ea9239d2432c8b77abf428d1300581f021c76e71c24a581b36e65eeb43886c3909fae850d706c35e826416cc719515820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02e9990b2bc2c92a5e109ce03d38c68c6772842d0653e95a17607c705243635820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219206003bbc160da926e4832b11f093ec567562beafa3ec63f38be8d1b1ecc067422ae67031b908a9c886dc6c852d3f62718100e1d304464222b9c2b923d0184b13d2e8e7c014102036ce874a710d81815dd84db096de8d9e263fb4e9aef862b23ace01a37a60511c400582003ef7440dd401cd16583119d820f4ff3d083d8cac4bbd24197fefeb13340f6d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03439011762aa23e818cd3bb5a42234ad27b8fa195c3890c8125ccc4ee2d08b8c5035c850c8fc950d6e33f5ab37a6fa892ca0113e5db757f18218f29531c95b0c7f603fffba9ffb2d8ded5b6d052144adcd4753a14f63fa3ef5a34154b8614c5edff5603cca93b31014d6c572fc6c740d0b53eeca4c1a027b114845dd121e5158e5e5bba03e371883016946b9570d7c8c4726b4290e5bae25be511c186d3e759afadfbb76d0376a89d168f5161deef4fb916d99f92ee821a75a342f5217597ab5cc823747fe1039bff0712ecf1688d3e377b44c4b4981c32fb63d2b787314cba67ae44767118de0219ff3b0303e04dfb1502d67d424a117773114789804e55c1d26d9c41586ee31c5131d9560219ffff0343fd307fda871097633137553fb8baa8b247ca73e433f90c4f1be2f8de9dce3b031775085c0bd80f9eeeb5d431f6e6fd6689ad31f7ed23b94c5eb2f28e7ca868be038458bde7598f0a015d37628a27d02350fc83e02292f8470b550207dbb2c2010e03c06e6f026af2ea374aea555dbcd7db67a6fc27f692791f7f346001a7283ef1e703376b8edf3dbb9b2d244e9eb49b22051f6e763bda2cb12f7ede52519c3431979703858603ab3fb7418d57a5974a57c6f25de120ae5aad8e1b78a71ea1a1614183be036e532591f33211d3658041add9adaae21775cf5ea2ff075abe99c42d362c7b3403bc89ceb5526ce7b81ed3628f56bec5a2d860ab229af404411f5baded08852e5f03711bb1d1dac88fc355506944e305678a0c66b854e9b9bc3591b0bb5a8eae462500582003e607ac9faa9b642c750a65b55b5c89d90196dd2011fe358134696c830a56004101032d4aab688564c6788a5771fe3fee551e476a62f2f815b5a90f0ba8460a4ce7de03550ae93fb550258e65e7efc42d06449dbf7bc220aff593a7916cc388b849d93d03432e2676d8e5ce6be0a848d76fca5d659a443005267adbf093dba5f3b36c7a5701410103b9c95e744fbdd29ecc21e1e65adfc5774e496174d39cb381782d868a347bd32803d5fc206864f85c2b2ccb769ecf5b030cf6347e1bdb2133d3390bd20b8117f9b10330a95f150b206992ba80cc0569de06e50029af645597b8be0b50360aa93d05c301410600581f02c928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68854dac17f958d2ee523a2206206994597c13d831ec702191040033a725fdd87c20d98fba78fd97d75b4684fd36f8ab1fe51ff9e62dee54b480b38038c86b89eebdeb6562013ae4e69c13306e1572bcfb67d20a5d30e116690d5f8ba034eeac19df79868691d25ab63fe728998818b85d85ac18839eb1ee396be4cb26203363e6d202ec3391bb405c06a3c582dc838284cad3b48f020b08b0d4e370984f3038d684318c48513543cf770c4a9de18bbac979664f731d2976cda4f1530d6a42600582003ae9cc56dd229ff32d332e8432b6645bd4b4c0109db4000d953ee8c0cbbeb505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03ddb0d45e21f6471f686a15999391c5e47c3d2774fceb1f5317cdbc87de1e427700582003d943570dcf4783440409dcb9a03f39756928bc4626da8991da17d3cc0fe3705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219efff033653ccfae074d5195c451a21b071f5e317f9c45244fe70f3b433efdf2e69522503348a2095c3173b264cb191593bf77734b70ecaeccc9a09741eab011877ff54f203a1ff177ceabee10368e0fca51e19369edc8cd32de2ba009c211f41ae36e937fd033f5a4767e0678273d8c5c5c613b1db1dddf8469fc3cf2246f5be5cd24ab334d103315374b4420652d14b1b2544a9bb00b907d11b98bdd65c18d131af492df90df703b9eb532dfd4152738366090acfd057a34381b2dfec8f7c701aff6e785bb58ee2037a38436da6c9846f1536f121456cd4e6b434e4a028f9cb48b8a96cbde3f0a074032cefa3b6773c36d41d94e85d4da18c70fb7a48fefb1a24d6e689016ae8d501d2035a8ec5fe6368d3b294a74c8144bb9029f8a33c9677ab774e22934f151f6dadea0219ffff03c84988a6d066ea188f884c1c878ee4710857be33e69605464cee203a878fba5a0382ee2d9e2f2bb3279e7da81d8e0ee51a3b609478c29ec133dee361af9301e27603ccbda05a2ced60d0461b6898a32d1e43c017967af14a19e46fe91e1f86753c9603fb270601a93d99b51d7ad29b76e740da9b7a2097b57db553880e64ed1861c82a0304d1d24cfd4234700a4eaa75b6a8656d4e3e9138b4ee4ae6eafedc49a3a6d0f503d4dd2529efe50297c2565a31a305df60d6a061bff30c1c826453f047bb428e5203177ed0fc8fb429e17018cf178ae748e3a5cdf588269721d8c13f379cd6e6b93203cb0870763abf6c2e12c49a3d86090eb04fa5e6e2174ff978ca3b90c38b494b9b03c142d524208c3406fda0587bfd774152df3e1d56d9870ce761221054655c621100582003caf6e69de0503109ca87e3dbce1eda1b0794a8fb399ce54f818b4b67da1fd05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff036a5d5f455375bfa54f542afcf1dd7ce304522229e194df4a690147bd1315cb6200582003faff1d126ff9fb3c46b22d9f8efcb6f2e3dd4fa9ae6a92539e07403034e4005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02b60953c57b62175847f6cab1fcb064e4c5c9a67c1f8a9348cc3b8798e9c45820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f022adf39150ce2ad462d2115d63093ff4fa3fd01492863c467c622bd9152155820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02144f5cfca916931dc6f6c8a44cb3e3aab9b157f9ca88f0b7ab507485cb1f5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f027bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a856010436da97f78289173ea1c23ccaea49fb7266b52834032d17f245bd37e1bd7b5aa83ff15314f9fcaac51911de21e1494ef2d068a65ccf0219148603eb3e617e66f02596c478a2ec6d4704a427601412cf852655ff37803f11f94a8403555086b0a45b2558633cbf20deec33ffcaa806154f00332b8c249bee79d36d980058200368f157e437e37ff25daa42d2029d2376065138b77a50b2a9bf367fb76cb7d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03e0fb8bbe81e11a9d54d668a0e44ab670d896e48beb54b2dbc3599a2b0932e0f50374e410cd49e6da816fbe69e0db45155bdd69ca1d927d5e48714d1ada9878f8e103d8490f85dd3ec9ab092a64b21d396eaaef8c529c1710dedc99aae61e195904f4005820030e551a78e3ff2e18ac20845db96d0d7750dd3d0b7f88af01e72a43b9dc50405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003c0bb5eddf45c871f9ecafa1905e828b7907f0d79161f6f166c95b645679680410103272ee1ce51cefe90cdb2e8614b3483cb81ebb1a25c220f153454e1e6531fcecf0219fdff0349716eb7789f7439dfe2d29fa4ae5d63c90b7f290c30bf9965df45746c6ae44b03150e05186049cfe1e69fdd5e2c56f67d3ad8d53f2850dc0c2cae48e7aa80aeaf03307ffb9abcf670ab74d14142ac41b353fe84ed39cba5cef77616b90930c9913b032f3319c15e2657ebe7f2a60528d5a6f8697e10b3627a2efc7b50bdff8f2069bb03334236b3a6342eb8e92c38dd86566ccb22be82b26ecf89620ce6c180aab463e3034eca2bd14663b04cb5d2e180ee48fbf8708c2920a623a01aafcbaa89ac8a2cee030ada640a9b9c1402686ebe8246d673db5a2096f84d6bfd892f8d3d331c737e1803e832e39465fd0d40b8664c6cdb19c51906cb6472c7685973f211ffc7f10284f8036309f29f9a383f43ec6a57273d26ab0ee9bab93fd66a8c737ab80c6a5496db8b0219ffff03f7dd4e54a995a4314b375b579b229a0b7176c5f741d441a415fc89038147606203d1205bd6fdb67fc21c39c59acbe4817d1bc7c61ca8413407a35b9958927a401103344c2c3707288407823870d42d024ec3dd166fc65ff68c8cd274fc0717596ea203dc45737ed19280f5f859bd33c0df4b19a8adde04f875de484bf227d4abc8cfc203f87ad749470b9ce7d2fe8e00fc20491c12d1e16f2e494ba3860acf49e8cc294c0345393499fb1fbe877640a21673cc8fde1ce29e3c327a6f74f0bdf9ddd1c9b78103943b8b3e04581e33f3fae7174d8cf1c2f95c7944e1ef7b38cbb522c6115d7ecd0379a5dc94e04c99a90a00f64daf2333c8b93fa8b7f35096f94746d0a852aa23c903f943fda53d09ed2823622b3e0d48121bdba20adef312eaf5cb67e4099eef4644035130c872ce02fa72a49cb66a796037d5d3ed5b27b8d77c9d860379d121ac618c0352e1f8d6e7ad5e4bfe156b58f35bbf66761272147a0ebf94d5d60ab3c626647c0312516cd4ad256bca8343d5ea935af17fc98025d02f776d45af0717bcfd160ffc033d06c951a45376c39a8d0275c9f0b33a36eaa834a293e5d1459b09462695380703e1743d64c68a2c9f0e9a10b16adc2647a36cbec1c25bc7407492603e653ff0cc033e8c57c0a094a5b3f21a69bc59b961d7dda3f013187b50cc87d9e424302607e503cbe098a8d42d2f5bbfcfa0b371523601f44f4e8c2f3a66b4f1d66ff43856f85b0352b93844e444c824888367e0a1a8527798c043c815baff22243e51d0c530fe8903094b6c9a3010f8ccb2d0709bb547f4949069310f6167dc81958a0ca0dd8e28e403914a31e2d0e12728f1db1cac58bd6444f58a22c1abbe3937513b59b30501f2fc0058200365b8dede8bdcb456c09023d16d2df4780c17b1863b5dcfe9f5dba317196e60410103a11d185841fb9ea4a4910dd07eadd80877b899cc52c241abc69c389686590fe200581f026d4c7f1c610e28622549077b0fcd5efa6541ad7b336740d14092d9fb0a615820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02eeb4ae38ce011365ffbba77cc0e18a4be8cf316f8167dd9359e60b16f9c35820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0266c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7410102190228005820030744e543f66e4d1b1a20dd892d01cea4cbfdae080efeebdf64ec79ff46a5f0410103152ee41472e89ee6d24fb6fd7154f311a211b9eb130241c773c9f9b0555dd39003ccba5fa3ab7631293a343931159387a8203ca20abecf15b218eb0d47da95630501410103f5bb8b41aac8d7112e2136af5f63a9d1fec0819e009e4bb225902c8784288bbe005820032b60dee99e5c22d32e29405ccad8b40921f445fafa3415d21db321bab29a104101032235aa5d375c56aafcb6ded117fa214a3b624f7366e39f409dbc1ebebee5af7200582003b578c648460a93a5e21b9c856f9941e40a6d002a13c7c5004033e2ff467f504101031e0ed8ce77184c2fefe046b545d2333973719ca5d54e4a76e9a4f8322b93a5700360acc804ddd93d45934d1e4e79f56b3450e93ad6ae79f474644b55e10446d5170141090219ffff0219ffff0333d4b8cdf6b36cc63aac634b3881d651b0050a4c7deeaadcb34eec397fad0c7c033ccf25e5fab3ed03f29f875bf6e32dd19c94ba03ef51ac7779470521b63660bb03177dd54ee75ad0a0d353d775296eb981e165f34ba46147fd94c70eff55774b8c037bf4698de38c1c4c743c17b66305e430eef21538986d6ea8633c760af069e67e00582003e0997c7c867d4b416049c36f1d7ac8277100425d4079c036b1e914f37bcac05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03f19e59d1e7ba329198696dfb5aff8071d9944b97aa90c660ce30855babb45c5103460947a6cdcddf9cb9be6f0ed3ba6cbf5ed2a144a78c66b1dc977be322463708032453706c5c35efd7a585700325ab8b3009ff6d1e4ca01d76c7a75cea4e7ca83100582003ba1d5c51ee7a05ebca19b89db50171db3634ce0f83b97f35a46ed66c8279805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0303b27c906d7de8c2797868cc987579d911c4097606ce7fdc674e704c6f62ff00038e46400d995443d5b95744d0ff0d9d6b7e876ea253c20e3853e20f180118fd340322e1ec63ad3e95af26fb554616450ec75e505fba3a566efe3bf4c1ba2c21e161035819ca25484e8517831d6d4793f0802e9051b12feaeacdb081d6e8d4deafb54103ee91dbc86659f4b3faf8ea683976729ef2f4ab6bf9f424bca674c26108d11adf034db9fda4e48eb12bbde81e265d452def50079cb1220db7c6d1c8138e1d61cd7403871939f5833dc1d082a5c010b399e3fa8550e1d2906890cd24c64d6ee028b2eb036817d4bed0fb2b2334874c579c1fba973af5cfc0d31de845b382adc4780f14fc036e365567dcabea11c7a311bb6e2b3ec2b20103daff50b7164f077adecfa6109403e76dc73ddb20d5886fc20b11c0ee27336543d3724ae46132d316316a4c74359c00581f02f2d9055761045f3d07a26ea1609d847357b0c326b756d14acbb4cae2f5ac5407f8777d616d18748fa876dd30044407bf67ae4600581f02a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5d030000000000000000080eb42280040000000000a9373032be3db0a05d00581f024e68bd24774c923b89b16620d6b6729e36891c6f3628896c91dd3b6ae1565820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021908880219ffff03f5105570c070b65312c35c6e339e3e17dba6d3e8b3d9f8ebeec1e370b863399d03ce0acfeead2ba56f62b19004ba860ff467847866052f0c81dddbeaae3034505903c895dcb4a10e736e07a7b0c2d8c17c50a4cce3b3563f141e3a483b3773b00ae0030e3d4f501d6f280b546114b948ce997d79e8043f8f188600d94e2e87753fc1d103bb4916bb6fca26b7f002b25e607e72eb1722380ae2b72d23236753f8409811f703fc3c88b9d8d299c0342ead1597098e45874bf48b5d01dea912ee53b2c052b8cf03a52354bd8fd527100391a36e32603046895f7420e0b312f17aa0846ba441a9ae00581f02222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f54c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200581f029bd781c72a5d9baacdf1ad5e0904271c0ac9f18244a9a531c8463c2b2dbb5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02ddb474855b5ddec4a46f02d456356f336e15d44bea19df0f13e82671dd26410100581f0283a257cba2f1a77f0ec326a1af5dc2c99120a99b8c8a12643fff7b53a4ac41010219160403e9859550b3ee4dc96811a311c03eb070bdd6c8fd61b31d38837f45d4fe9a5af2037a44e691a7513984be0729c5e5de70f8c4ec2c7c239b261b80264699516b1f4c0362b721535183768cd9b3f40c3bbf1eef7001fdf2ad804d6156d844583c59ac3603b6ff6217238db97be2cdab219cdc0a523c18fe8838829560fbbdced32188f82e03e070830c62d716065907ad311e5364dc485363605dd64f81c4cde9c41ee964c000582003458aab4ac80577ef08065b34856b1544dcb49c9cb543baae04ac18424480f05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200338c14291d5af307ae0bd5492dd70a356f4b7245d14f36a47615757c4c60f305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003bf482f5ac58e760a2ee6f7111a2db8c3467857415b736520c4c4bcd6eb80105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0323fd113d9ea4f7589dc781d01ed907d7eadd903d367416681c0908417375501f0141030219dfff030b2fb8dfe04cd10d7fa076af317d3dd5661fc39437f7e4cd7d334338172202840321104df9db10bbd3b4e4e6f45a1efdf79e785600af67b6ba731f13f9ff9325c1037c14dfa1629aca6e2aeff111ec8dbf5ab364460688d7060ca41e5144da951ab1036eb0766a5811e06ee9b877fdc8c69218690834b3bdcd880b0b31285c66ff2fdf039c6029d31d9b51cf98702894c26c4e1956328581bfbb0dba06654b6adcf08a310393c042ea65143e4c169ddc2a710bbf412dfe16c7f1ace41c277b443ed2515534034e1b343b9367b2b8963e0607a0346d15a8b9a583b814976443bad8a565203f7b03cb15c0920576c4eccf625c8bdb0055100a01d624a87560e4274cfda65f243f7303ed57a595ba489341f7fd5b7005e5a2d78668bc31176b7ec12e4af61f1c4a99640219ffff0219ffff05581d023526c3219af9133f3c181426dcbf6473055efc61afbbdbfde393278f070119237705581d02d71ec7a1963a3651b72f40d4aaf32c863c4222f277af9091534c4b3a0c1547619bb16103d4bd0219082003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03b56da127fc7dfdc3b5412ae63c9e20b5cdea6b6fc2df3776f0d3f2f09007011bffffffffffffffff039faf1103c8730d1d7d7c49243698b2cc948e9e92b2ca7be0f8cbd1e4530abdc30605581e0363db547b2a8de8adcb9abba124b4ca91ad7ed6edc953e0ecab1029a1d007011bffffffffffffffff05581e034d231ffff822778c6665688fa9ddca87e3c94cb9492a2e3d1ced75a4900c0947033937645e060003a8b5881fab370901f960f4211dba1112636e7d51e5490bcf6095fb3f8a2e43830605581e03270e99fed7db73fd1568ac6f09b639ebd6cc0bf5fb2897ea1e652bd95007011bffffffffffffffff03127b0f6850ca86ff354cc813cd24f41245fddc737e4847be67b30f677ccba0ce0312662ffd660cde78d360db1a3f22f198ddf5370fef36137849ac53cecc498e3b05581e03ca2c498b595cab9ca5e42952abff784ec65199a8a58f3730ce4b183b2008488ac39585e521800005581e033f54e9cdb397bb83b8dc4e624eeb21bd9bad176044c5c5f11d68b2bf4004010219c6da0375fdc85b93e667fad73ca4ec43ff6ed7ab63fd6bbda8f33309ba6d776058420c03f936a9a9ad3ba4271d55b4737655e2ebd7d970c6e3a8a13f7083660b04240641031e4c0ecf06b2bca5ccd9f4bc002724cf518f1349592e3fa68a3526e4092fa4cb03c1fc43a62ca6dc4107edafc9db83d826f17f76e2637e980a3d413614547d1183037611da72379587ab806246853affb03caf93001c70efe41f8b4fb7cd38f630f503833192dd15a55e1647b5abeb1a431a7cf72b5300426e2cb29bf1b701542bdde20219ffff030b23d9ac8053fd49fe9ea2bac7d4303635cf2495fef510df7fcac8581742d4a003e6a82ff226761a8c1b33703468745a6ffd27a76412fe0fe3b2a12ca40fe8efd70369f6d327dbc3c64942c564f58463199ee64dbe6af013f390258686c76e09ff3e030a6fdd3ff04901ca1050e0d8283b2158babe70defc4a0a955885b6ca36c2ef820219ffff03bf935bd78d194239bb052ec25e3dd799f7ee69e3da6d17934a81bd9b1b6ccc4c03e396277cc6c00035a5555041f7793e7ba5dd10baa8d8f838d86d95eee7632d0a03509d061f3e6701f9edee3f3bccc5cd206c9da40e5e4952cb6cd4c4dacf51e74003af2d4dd5d5ced84515b9e25c341bc070fa2cfe1fcc7862d19f49f9ce7da4b6ec0219ffff03be9b7c109a724edaa8ffd1de1daaa8416a4f932a1769bc0a65aca625f776e50803fbab2d80298671eccdc81dd6bf418a3593d1650ff8bc981abe830928b89ab5ca0323f7a38b481ab524f91f12bc44942b2780fec81b69cdcd59514658266ed423af034af65c9e0a40bd89207af5e91a5771f33dd5ab1c3712711fa0206227f90dd33303d31dfccf3993bf37d396bf45b3dea8635f5d5abc14b3a520c7bcfb1b3614152e034d4ba45050b19d4c032e5b1fe516d7ce485da139f436821645335b58054624d603625f487338347934d765774d5f893e541b40c5220cbad769f4359f3d592af57f032acdb83417825a61596d3129348d2ba7bb97392395f7deb253fd1de8a72dc979031d10b37c75afd6a19512ecf4ac06393ab872b19d982d9c6f3c4a4c0de8846be903471a5a0c8d310e4dd748956b49384e6f8f28fa241365228850f9d5006dd3616503d79c70dea5b65405fbc0699873990b9dab5486dceea37174466dbe3a6b493be903ad4489e2dac37ca58411c2b02b59c18cc77d3eaaefbdabaf1b130562e32313d103c5e8108a56b1b794e22e7d330f42a21b4604864010918b824e57ae913f29231203107a5a083cf0e2ba99cdce9cf50f9aad1827017d7d14e3fed0404f41592906aa03ad942797c35d1a83c2a19b4ec1bce5fb21b7ecd10180cc0c8f592e697df37c4103585751eb8eac89bc32f0d6ec15413f221dfb6214364f37338dbb09f4a781775805581e034a922c89bea3b064badddfee1266388a3e6578b122b4e3288c4e2741400c024709c372844e8b8005581e03e560f7363ace54a364488432a65d4404ab0adc5f8feee042a3afbb09c0040205581e03ee2776a837a20a03c52268c3e59f1e80ea1574c0aefd1757b9821fa140040105581e03617bf1951f47a27e3146aa414e2ed507d2d66f50f12271123e754617700c0447bfa0674476934a05581e03c71ea24c4f90c656d4d8c57278f57d8be1f188b4bf1f9b7a9e0f4fb7400c0246576f44fa943803334394c23864ce201272297b66a153bbcb30d5b164cd24d9d99fd002e666088705581d02f68cb3cb856ae06265f5a1aa1933308f8be7c0032d8b294f23394d4c0c0547cb4537c8618c0205581d02c8fa89d7b533069dcb34731bbf34f24575d28bbc0abfe13d230015400c094726420cc0d42a610459401f608060405260043610610228575f3560e01c8063715018a611610122578063ceacd9d9116100aa578063f2aa82181161006e578063f2aa8218146107c5578063f2fde38b14610801578063f3fef3a314610829578063f9020e3314610851578063fa09e6301461087b5761022f565b8063ceacd9d914610703578063d111d92f1461072d578063d2d272db14610769578063e36b0b3714610785578063e985e3671461079b5761022f565b80638da5cb5b116100f15780638da5cb5b146106335780638f6dd6c41461065d578063a8988ce214610687578063ace1741c146106c3578063b5b0763c146106ed5761022f565b8063715018a61461057d5780637a351a1d1461059357806380655eef146105bb5780638b382020146105f75761022f565b806333e364cb116101b057806354a9f1021161017457806354a9f102146104b95780636220aea8146104f757806363b20117146105015780636ade6e331461052b5780636bcedf9c146105535761022f565b806333e364cb146104015780633874e325146104175780633c00a36c1461043f5780633c76a1c8146104675780635413c1c8146104915761022f565b806329d429a8116101f757806329d429a81461030f5780632c4e722e146103375780632f0eab3a1461036157806330dbb4e41461039d5780633115329e146103d95761022f565b8063115ece4c14610231578063120f2eda1461026d5780631b926a5b14610297578063204120bc146102d35761022f565b3661022f57005b005b34801561023c575f80fd5b5061025760048036038101906102529190612d33565b6108a3565b6040516102649190612d80565b60405180910390f35b348015610278575f80fd5b506102816109ef565b60405161028e9190612da8565b60405180910390f35b3480156102a2575f80fd5b506102bd60048036038101906102b89190612dc1565b610a14565b6040516102ca9190612d80565b60405180910390f35b3480156102de575f80fd5b506102f960048036038101906102f49190612dc1565b610b21565b6040516103069190612d80565b60405180910390f35b34801561031a575f80fd5b5061033560048036038101906103309190612e21565b610b36565b005b348015610342575f80fd5b5061034b610c62565b6040516103589190612d80565b60405180910390f35b34801561036c575f80fd5b5061038760048036038101906103829190612e5f565b610c68565b6040516103949190612d80565b60405180910390f35b3480156103a8575f80fd5b506103c360048036038101906103be9190612d33565b610c81565b6040516103d09190612e99565b60405180910390f35b3480156103e4575f80fd5b506103ff60048036038101906103fa91906130c2565b610cb7565b005b34801561040c575f80fd5b50610415610eb9565b005b348015610422575f80fd5b5061043d6004803603810190610438919061314a565b610fbe565b005b34801561044a575f80fd5b5061046560048036038101906104609190612e5f565b611199565b005b348015610472575f80fd5b5061047b61125c565b6040516104889190613253565b60405180910390f35b34801561049c575f80fd5b506104b760048036038101906104b2919061326c565b6112a7565b005b3480156104c4575f80fd5b506104df60048036038101906104da9190612dc1565b61148e565b6040516104ee939291906132e2565b60405180910390f35b6104ff6114cd565b005b34801561050c575f80fd5b50610515611858565b6040516105229190612d80565b60405180910390f35b348015610536575f80fd5b50610551600480360381019061054c91906133c5565b61185e565b005b34801561055e575f80fd5b5061056761192a565b6040516105749190612d80565b60405180910390f35b348015610588575f80fd5b50610591611930565b005b34801561059e575f80fd5b506105b960048036038101906105b49190612dc1565b6119b7565b005b3480156105c6575f80fd5b506105e160048036038101906105dc9190612dc1565b611a76565b6040516105ee9190612e99565b60405180910390f35b348015610602575f80fd5b5061061d60048036038101906106189190612dc1565b611a93565b60405161062a9190612d80565b60405180910390f35b34801561063e575f80fd5b50610647611b57565b6040516106549190612da8565b60405180910390f35b348015610668575f80fd5b50610671611b7e565b60405161067e9190612e99565b60405180910390f35b348015610692575f80fd5b506106ad60048036038101906106a89190612dc1565b611b90565b6040516106ba9190612d80565b60405180910390f35b3480156106ce575f80fd5b506106d7611ba5565b6040516106e49190612d80565b60405180910390f35b3480156106f8575f80fd5b50610701611bab565b005b34801561070e575f80fd5b50610717611c97565b6040516107249190612d80565b60405180910390f35b348015610738575f80fd5b50610753600480360381019061074e9190612e5f565b611c9d565b6040516107609190612d80565b60405180910390f35b610783600480360381019061077e9190612d33565b611cb6565b005b348015610790575f80fd5b50610799611ff1565b005b3480156107a6575f80fd5b506107af6120dd565b6040516107bc9190612da8565b60405180910390f35b3480156107d0575f80fd5b506107eb60048036038101906107e69190612e5f565b612102565b6040516107f89190612da8565b60405180910390f35b34801561080c575f80fd5b5061082760048036038101906108229190612dc1565b61213d565b005b348015610834575f80fd5b5061084f600480360381019061084a9190612d33565b612233565b005b34801561085c575f80fd5b506108656122de565b6040516108729190612e99565b60405180910390f35b348015610886575f80fd5b506108a1600480360381019061089c9190612dc1565b6122f0565b005b5f805f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146109ad576001151560065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151514610931575f80fd5b5f60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490506109a581610997600454600a610988919061355f565b876123f590919063ffffffff16565b61240a90919063ffffffff16565b9150506109e5565b6109e26002546109d4600454600a6109c5919061355f565b866123f590919063ffffffff16565b61240a90919063ffffffff16565b90505b8091505092915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f90505f5b6004811015610b1757600f8160048110610a3857610a376135a9565b5b01544210158015610aab575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208160048110610a9357610a926135a9565b5b602091828204019190069054906101000a900460ff16155b15610b0a576004600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0154610afc9190613603565b82610b079190613633565b91505b8080600101915050610a1b565b5080915050919050565b6007602052805f5260405f205f915090505481565b610b3e61241f565b73ffffffffffffffffffffffffffffffffffffffff16610b5c611b57565b73ffffffffffffffffffffffffffffffffffffffff1614610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba9906136c0565b60405180910390fd5b80151560065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503610c0a575f80fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60025481565b600f8160048110610c77575f80fd5b015f915090505481565b6013602052815f5260405f208160048110610c9a575f80fd5b60209182820401919006915091509054906101000a900460ff1681565b610cbf61241f565b73ffffffffffffffffffffffffffffffffffffffff16610cdd611b57565b73ffffffffffffffffffffffffffffffffffffffff1614610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a906136c0565b60405180910390fd5b8151835114610d77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6e9061374e565b60405180910390fd5b5f8114610d8657806002819055505b5f5b8351811015610eb3576001151560065f868481518110610dab57610daa6135a9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151514610e04575f80fd5b5f838281518110610e1857610e176135a9565b5b602002602001015103610e29575f80fd5b828181518110610e3c57610e3b6135a9565b5b602002602001015160075f868481518110610e5a57610e596135a9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600181610eac9190613633565b9050610d88565b50505050565b610ec161241f565b73ffffffffffffffffffffffffffffffffffffffff16610edf611b57565b73ffffffffffffffffffffffffffffffffffffffff1614610f35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2c906136c0565b60405180910390fd5b5f151560085f9054906101000a900460ff16151514610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f80906137b6565b60405180910390fd5b600160085f6101000a81548160ff0219169083151502179055505f600d5f6101000a81548160ff021916908315150217905550565b610fc661241f565b73ffffffffffffffffffffffffffffffffffffffff16610fe4611b57565b73ffffffffffffffffffffffffffffffffffffffff161461103a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611031906136c0565b60405180910390fd5b5f8203611045575f80fd5b816002819055508360035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060085f6101000a81548160ff02191690831515021790555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561110f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611133919061380a565b60ff1660048190555082600581905550611193333060055460035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612426909392919063ffffffff16565b50505050565b6111a161241f565b73ffffffffffffffffffffffffffffffffffffffff166111bf611b57565b73ffffffffffffffffffffffffffffffffffffffff1614611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120c906136c0565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611258573d5f803e3d5ffd5b5050565b611264612b60565b600f60048060200260405190810160405280929190826004801561129d576020028201915b815481526020019060010190808311611289575b5050505050905090565b6112af61241f565b73ffffffffffffffffffffffffffffffffffffffff166112cd611b57565b73ffffffffffffffffffffffffffffffffffffffff1614611323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131a906136c0565b60405180910390fd5b8051825114611367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135e9061374e565b60405180910390fd5b5f5b8251811015611489575f828281518110611386576113856135a9565b5b602002602001015103611397575f80fd5b600160065f8584815181106113af576113ae6135a9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550818181518110611419576114186135a9565b5b602002602001015160075f858481518110611437576114366135a9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508080600101915050611369565b505050565b600a602052805f5260405f205f91509050805f015490806001015f9054906101000a900460ff16908060010160019054906101000a900460ff16905083565b60011515600d5f9054906101000a900460ff16151514611522576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611519906138a5565b60405180910390fd5b5f600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0154116115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90613933565b60405180910390fd5b5f806115ad612b82565b5f5b60048110156116d957600f81600481106115cc576115cb6135a9565b5b015442106116cc5760018282600481106115e9576115e86135a9565b5b60200201901515908115158152505060135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208160048110611647576116466135a9565b5b602091828204019190069054906101000a900460ff166116cb576004600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01546116ad9190613603565b846116b89190613633565b9350600e54836116c89190613633565b92505b5b80806001019150506115af565b505f831161171c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611713906139c1565b60405180910390fd5b8134101561175f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175690613a29565b60405180910390fd5b6117ab338460035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166124af9092919063ffffffff16565b6117b3612535565b8260145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546117ff9190613633565b925050819055508060135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20906004611852929190612ba4565b50505050565b600b5481565b61186661241f565b73ffffffffffffffffffffffffffffffffffffffff16611884611b57565b73ffffffffffffffffffffffffffffffffffffffff16146118da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d1906136c0565b60405180910390fd5b5f60085f6101000a81548160ff0219169083151502179055506001600d5f6101000a81548160ff02191690831515021790555081600e8190555080600f906004611925929190612c3a565b505050565b60055481565b61193861241f565b73ffffffffffffffffffffffffffffffffffffffff16611956611b57565b73ffffffffffffffffffffffffffffffffffffffff16146119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a3906136c0565b60405180910390fd5b6119b55f612629565b565b6119bf61241f565b73ffffffffffffffffffffffffffffffffffffffff166119dd611b57565b73ffffffffffffffffffffffffffffffffffffffff1614611a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2a906136c0565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f805f90505f5b6004811015611b4d57600f8160048110611ab757611ab66135a9565b5b01544210158015611b2a575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208160048110611b1257611b116135a9565b5b602091828204019190069054906101000a900460ff16155b15611b4057600e5482611b3d9190613633565b91505b8080600101915050611a9a565b5080915050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5f9054906101000a900460ff1681565b6014602052805f5260405f205f915090505481565b60045481565b611bb361241f565b73ffffffffffffffffffffffffffffffffffffffff16611bd1611b57565b73ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e906136c0565b60405180910390fd5b60011515600d5f9054906101000a900460ff16151514611c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c73906138a5565b60405180910390fd5b5f600d5f6101000a81548160ff021916908315150217905550565b600e5481565b600c8160018110611cac575f80fd5b015f915090505481565b6001151560085f9054906101000a900460ff16151514611d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0290613a91565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e46575f8211611d4a575f80fd5b6001151560065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151514611dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd190613af9565b60405180910390fd5b611de483836108a3565b905060055481600b54611df79190613633565b10611e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2e90613b87565b60405180910390fd5b611e4183836126ea565b611e75565b611e505f346108a3565b905060055481600b54611e639190613633565b10611e6c575f80fd5b611e746127d3565b5b80600b5f828254611e869190613633565b92505081905550600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015f9054906101000a900460ff16611f9757600933908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015f6101000a81548160ff0219169083151502179055505b80600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f828254611fe59190613633565b92505081905550505050565b611ff961241f565b73ffffffffffffffffffffffffffffffffffffffff16612017611b57565b73ffffffffffffffffffffffffffffffffffffffff161461206d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612064906136c0565b60405180910390fd5b6001151560085f9054906101000a900460ff161515146120c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b990613a91565b60405180910390fd5b5f60085f6101000a81548160ff021916908315150217905550565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60098181548110612111575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61214561241f565b73ffffffffffffffffffffffffffffffffffffffff16612163611b57565b73ffffffffffffffffffffffffffffffffffffffff16146121b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b0906136c0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221e90613c15565b60405180910390fd5b61223081612629565b50565b61223b61241f565b73ffffffffffffffffffffffffffffffffffffffff16612259611b57565b73ffffffffffffffffffffffffffffffffffffffff16146122af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a6906136c0565b60405180910390fd5b6122da33828473ffffffffffffffffffffffffffffffffffffffff166124af9092919063ffffffff16565b5050565b60085f9054906101000a900460ff1681565b6122f861241f565b73ffffffffffffffffffffffffffffffffffffffff16612316611b57565b73ffffffffffffffffffffffffffffffffffffffff161461236c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612363906136c0565b60405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016123a69190612da8565b602060405180830381865afa1580156123c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123e59190613c47565b90506123f18282612233565b5050565b5f81836124029190613c72565b905092915050565b5f81836124179190613603565b905092915050565b5f33905090565b6124a9846323b872dd60e01b85858560405160240161244793929190613cb3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506128e8565b50505050565b6125308363a9059cbb60e01b84846040516024016124ce929190613ce8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506128e8565b505050565b5f61255d606461254f6032346123f590919063ffffffff16565b61240a90919063ffffffff16565b905060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156125c3573d5f803e3d5ffd5b505f6125d882346129ad90919063ffffffff16565b90506125e2611b57565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612624573d5f803e3d5ffd5b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f819050600c5f60018110612702576127016135a9565b5b015442111561279a575f6127336064612725600a866123f590919063ffffffff16565b61240a90919063ffffffff16565b905061274881846129ad90919063ffffffff16565b91506127983360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838773ffffffffffffffffffffffffffffffffffffffff16612426909392919063ffffffff16565b505b6127ce336127a6611b57565b838673ffffffffffffffffffffffffffffffffffffffff16612426909392919063ffffffff16565b505050565b5f349050600c5f600181106127eb576127ea6135a9565b5b015442111561289a575f61281c606461280e600a346123f590919063ffffffff16565b61240a90919063ffffffff16565b905061283181346129ad90919063ffffffff16565b915060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612897573d5f803e3d5ffd5b50505b6128a2611b57565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156128e4573d5f803e3d5ffd5b5050565b5f612949826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166129c29092919063ffffffff16565b90505f815111156129a857808060200190518101906129689190613d23565b6129a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299e90613dbe565b60405180910390fd5b5b505050565b5f81836129ba9190613ddc565b905092915050565b60606129d084845f856129d9565b90509392505050565b606082471015612a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1590613e7f565b60405180910390fd5b612a2785612ae9565b612a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5d90613ee7565b60405180910390fd5b5f808673ffffffffffffffffffffffffffffffffffffffff168587604051612a8e9190613f71565b5f6040518083038185875af1925050503d805f8114612ac8576040519150601f19603f3d011682016040523d82523d5f602084013e612acd565b606091505b5091509150612add828286612afa565b92505050949350505050565b5f80823b90505f8111915050919050565b60608315612b0a57829050612b59565b5f83511115612b1c5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b509190613fc9565b60405180910390fd5b9392505050565b6040518060800160405280600490602082028036833780820191505090505090565b6040518060800160405280600490602082028036833780820191505090505090565b826004601f01602090048101928215612c29579160200282015f5b83821115612bfb57835183826101000a81548160ff02191690831515021790555092602001926001016020815f01049283019260010302612bbf565b8015612c275782816101000a81549060ff02191690556001016020815f01049283019260010302612bfb565b505b509050612c369190612c7a565b5090565b8260048101928215612c69579160200282015b82811115612c68578251825591602001919060010190612c4d565b5b509050612c769190612c7a565b5090565b5b80821115612c91575f815f905550600101612c7b565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612ccf82612ca6565b9050919050565b612cdf81612cc5565b8114612ce9575f80fd5b50565b5f81359050612cfa81612cd6565b92915050565b5f819050919050565b612d1281612d00565b8114612d1c575f80fd5b50565b5f81359050612d2d81612d09565b92915050565b5f8060408385031215612d4957612d48612c9e565b5b5f612d5685828601612cec565b9250506020612d6785828601612d1f565b9150509250929050565b612d7a81612d00565b82525050565b5f602082019050612d935f830184612d71565b92915050565b612da281612cc5565b82525050565b5f602082019050612dbb5f830184612d99565b92915050565b5f60208284031215612dd657612dd5612c9e565b5b5f612de384828501612cec565b91505092915050565b5f8115159050919050565b612e0081612dec565b8114612e0a575f80fd5b50565b5f81359050612e1b81612df7565b92915050565b5f8060408385031215612e3757612e36612c9e565b5b5f612e4485828601612cec565b9250506020612e5585828601612e0d565b9150509250929050565b5f60208284031215612e7457612e73612c9e565b5b5f612e8184828501612d1f565b91505092915050565b612e9381612dec565b82525050565b5f602082019050612eac5f830184612e8a565b92915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612efc82612eb6565b810181811067ffffffffffffffff82111715612f1b57612f1a612ec6565b5b80604052505050565b5f612f2d612c95565b9050612f398282612ef3565b919050565b5f67ffffffffffffffff821115612f5857612f57612ec6565b5b602082029050602081019050919050565b5f80fd5b5f612f7f612f7a84612f3e565b612f24565b90508083825260208201905060208402830185811115612fa257612fa1612f69565b5b835b81811015612fcb5780612fb78882612cec565b845260208401935050602081019050612fa4565b5050509392505050565b5f82601f830112612fe957612fe8612eb2565b5b8135612ff9848260208601612f6d565b91505092915050565b5f67ffffffffffffffff82111561301c5761301b612ec6565b5b602082029050602081019050919050565b5f61303f61303a84613002565b612f24565b9050808382526020820190506020840283018581111561306257613061612f69565b5b835b8181101561308b57806130778882612d1f565b845260208401935050602081019050613064565b5050509392505050565b5f82601f8301126130a9576130a8612eb2565b5b81356130b984826020860161302d565b91505092915050565b5f805f606084860312156130d9576130d8612c9e565b5b5f84013567ffffffffffffffff8111156130f6576130f5612ca2565b5b61310286828701612fd5565b935050602084013567ffffffffffffffff81111561312357613122612ca2565b5b61312f86828701613095565b925050604061314086828701612d1f565b9150509250925092565b5f805f806080858703121561316257613161612c9e565b5b5f61316f87828801612cec565b945050602061318087828801612d1f565b935050604061319187828801612d1f565b92505060606131a287828801612e0d565b91505092959194509250565b5f60049050919050565b5f81905092915050565b5f819050919050565b6131d481612d00565b82525050565b5f6131e583836131cb565b60208301905092915050565b5f602082019050919050565b613206816131ae565b61321081846131b8565b925061321b826131c2565b805f5b8381101561324b57815161323287826131da565b965061323d836131f1565b92505060018101905061321e565b505050505050565b5f6080820190506132665f8301846131fd565b92915050565b5f806040838503121561328257613281612c9e565b5b5f83013567ffffffffffffffff81111561329f5761329e612ca2565b5b6132ab85828601612fd5565b925050602083013567ffffffffffffffff8111156132cc576132cb612ca2565b5b6132d885828601613095565b9150509250929050565b5f6060820190506132f55f830186612d71565b6133026020830185612e8a565b61330f6040830184612e8a565b949350505050565b5f67ffffffffffffffff82111561333157613330612ec6565b5b602082029050919050565b5f61334e61334984613317565b612f24565b9050806020840283018581111561336857613367612f69565b5b835b81811015613391578061337d8882612d1f565b84526020840193505060208101905061336a565b5050509392505050565b5f82601f8301126133af576133ae612eb2565b5b60046133bc84828561333c565b91505092915050565b5f8060a083850312156133db576133da612c9e565b5b5f6133e885828601612d1f565b92505060206133f98582860161339b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156134855780860481111561346157613460613403565b5b60018516156134705780820291505b808102905061347e85613430565b9450613445565b94509492505050565b5f8261349d5760019050613558565b816134aa575f9050613558565b81600181146134c057600281146134ca576134f9565b6001915050613558565b60ff8411156134dc576134db613403565b5b8360020a9150848211156134f3576134f2613403565b5b50613558565b5060208310610133831016604e8410600b841016171561352e5782820a90508381111561352957613528613403565b5b613558565b61353b848484600161343c565b9250905081840481111561355257613551613403565b5b81810290505b9392505050565b5f61356982612d00565b915061357483612d00565b92506135a17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461348e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61360d82612d00565b915061361883612d00565b925082613628576136276135d6565b5b828204905092915050565b5f61363d82612d00565b915061364883612d00565b92508282019050808211156136605761365f613403565b5b92915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6136aa602083613666565b91506136b582613676565b602082019050919050565b5f6020820190508181035f8301526136d78161369e565b9050919050565b7f50726573616c653a20746f6b656e7320262070726963657320617272617973205f8201527f6c656e677468206d69736d617463680000000000000000000000000000000000602082015250565b5f613738602f83613666565b9150613743826136de565b604082019050919050565b5f6020820190508181035f8301526137658161372c565b9050919050565b7f50726573616c653a206973206e6f742073746f707065640000000000000000005f82015250565b5f6137a0601783613666565b91506137ab8261376c565b602082019050919050565b5f6020820190508181035f8301526137cd81613794565b9050919050565b5f60ff82169050919050565b6137e9816137d4565b81146137f3575f80fd5b50565b5f81519050613804816137e0565b92915050565b5f6020828403121561381f5761381e612c9e565b5b5f61382c848285016137f6565b91505092915050565b7f50726573616c653a20756e6c6f636b696e6720746f6b656e206973206e6f74205f8201527f656e61626c656400000000000000000000000000000000000000000000000000602082015250565b5f61388f602783613666565b915061389a82613835565b604082019050919050565b5f6020820190508181035f8301526138bc81613883565b9050919050565b7f50726573616c653a20596f7520646f6e2774206861766520746f6b656e7320745f8201527f6f20636c61696d00000000000000000000000000000000000000000000000000602082015250565b5f61391d602783613666565b9150613928826138c3565b604082019050919050565b5f6020820190508181035f83015261394a81613911565b9050919050565b7f50726573616c653a20596f7520646f6e2774206861766520746f6b656e7320745f8201527f6f20756e6c6f636b000000000000000000000000000000000000000000000000602082015250565b5f6139ab602883613666565b91506139b682613951565b604082019050919050565b5f6020820190508181035f8301526139d88161399f565b9050919050565b7f50726573616c653a204e6f7420656e6f756768206665650000000000000000005f82015250565b5f613a13601783613666565b9150613a1e826139df565b602082019050919050565b5f6020820190508181035f830152613a4081613a07565b9050919050565b7f50726573616c653a206973206e6f7420656e61626c65640000000000000000005f82015250565b5f613a7b601783613666565b9150613a8682613a47565b602082019050919050565b5f6020820190508181035f830152613aa881613a6f565b9050919050565b7f50726573616c653a20546f6b656e206e6f7420616c6c6f7765640000000000005f82015250565b5f613ae3601a83613666565b9150613aee82613aaf565b602082019050919050565b5f6020820190508181035f830152613b1081613ad7565b9050919050565b7f50726573616c653a204e6f7420656e6f75676820746f6b656e7320746f2062655f8201527f2073616c65000000000000000000000000000000000000000000000000000000602082015250565b5f613b71602583613666565b9150613b7c82613b17565b604082019050919050565b5f6020820190508181035f830152613b9e81613b65565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613bff602683613666565b9150613c0a82613ba5565b604082019050919050565b5f6020820190508181035f830152613c2c81613bf3565b9050919050565b5f81519050613c4181612d09565b92915050565b5f60208284031215613c5c57613c5b612c9e565b5b5f613c6984828501613c33565b91505092915050565b5f613c7c82612d00565b9150613c8783612d00565b9250828202613c9581612d00565b91508282048414831517613cac57613cab613403565b5b5092915050565b5f606082019050613cc65f830186612d99565b613cd36020830185612d99565b613ce06040830184612d71565b949350505050565b5f604082019050613cfb5f830185612d99565b613d086020830184612d71565b9392505050565b5f81519050613d1d81612df7565b92915050565b5f60208284031215613d3857613d37612c9e565b5b5f613d4584828501613d0f565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e5f8201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b5f613da8602a83613666565b9150613db382613d4e565b604082019050919050565b5f6020820190508181035f830152613dd581613d9c565b9050919050565b5f613de682612d00565b9150613df183612d00565b9250828203905081811115613e0957613e08613403565b5b92915050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f5f8201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b5f613e69602683613666565b9150613e7482613e0f565b604082019050919050565b5f6020820190508181035f830152613e9681613e5d565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000005f82015250565b5f613ed1601d83613666565b9150613edc82613e9d565b602082019050919050565b5f6020820190508181035f830152613efe81613ec5565b9050919050565b5f81519050919050565b5f81905092915050565b5f5b83811015613f36578082015181840152602081019050613f1b565b5f8484015250505050565b5f613f4b82613f05565b613f558185613f0f565b9350613f65818560208601613f19565b80840191505092915050565b5f613f7c8284613f41565b915081905092915050565b5f81519050919050565b5f613f9b82613f87565b613fa58185613666565b9350613fb5818560208601613f19565b613fbe81612eb6565b840191505092915050565b5f6020820190508181035f830152613fe18184613f91565b90509291505056fea2646970667358221220616b873ba861b6b630d9de75e0ca701ce752aaea3a764754a859ebdaf637df1464736f6c634300081600330337b4511c20a367cf7a5dec6764960979814932f0da0795a2e97502859540a474030fefc396b6fd01da1f9d44410e758d3b57cc912540e83dc9c1be967fcd6abe5f03bf41498d4f46f960a012d0fcef1c4c05c57a65cfb91518f44d0024610044bafa0339e26b9a1d7b11b2fb0445d5f0670a96d4d37536d0966d83d73431ee62a672ac0393d1f1dbe9ba2884613e8875859ce30a59b01b6e6fda9938e9d89b812e5937340319203604f8c3e3cb814f8518c10bfd7770db5940a4e2146bd63d8b15372729950307d92630449454a94aa51236ecdfbb07e4a6d8a44e9ef34d574d409850cc692a03d836dbcfd8d13ba918f46b14c9da297903fb9ec52d3cfc45575f19c1c8f150c703a09a47152441af45eaec4e74f1b41418b97d70b18f673cf96beb3880e688f6bf00581f02ed1ba8016d8b5c2c6f0da302214a571e5f0ef6523a6bc46646cbc14310044a068935867a9c8b53959b00581f02316f5f7f6a07786bff90adc7313e75f8dedc94ed03dd4fbd1dbe0449d082410100581f02af6e79e5e2d729470b03d3b89c874e3a9c056f03e25c497db3f0971f907b410100581f02b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db94c026d22c9546bad8983d0ea5900581f024d7d5f6fff303654f3fe8a848d0f995cb6a1f6312aabd08116878bd1f4f44a17763bcee99d3cbf45d100581f0221b488619ae15409a402cd98f2f24ac65ce8cc5ed5bc183621cc924352b054fd2a5e46f05b1cef9b15098991ded781ef10bb6a03939d26d14b2d0dcfabc53ff148cea6873af636ad8656be035b7f3ec4a0b3337e021908fb034836b0d19c9f95d47f33ff7de24a7742ffab35f83c1763eec1e63b2e2a2b14c1030878f063730cfc60cf931b198d5905672e3c47777aea6d4d737d5f30399b29110399b217aa9365a2c27af32a6504c5fd7529662032029a95ded78bd6c1bae090540355733cb37e55b6f36a44acc00eb0f0941cd180590443d2cf61b949b53367b5e103e2c9330467062216bf4a59fbdd25f51988829dd5552a299febf6e07b7e813b7803d3198630d610469f19ecda87de3e77ea5d1b9eb501204e03e9b0e9aaeda52a9003752d4b78ca5ff8249e4322495877ba304531d1f4cc0db5413d0bd919da7023cf0371e7ebdc1aec57e743a31610e7072dfffad9ad9eb20cd0acb40c953e4e9889b70219ffff0379401d6a685772d229d47474766e483b2cfa5b135eb81449c213242afcdc114b031f7b8107d4dbd29d730027555521c2c3097d0ab8576b7228851225048a16061e037bcb9434643aef7f57b1ef1e4bd1d7356709bd6ffb51a5ba4fecc569661456d703f00330f179c9c455d07adfc882c34f1e20d200bae3018bcbf1e9b8d375baf8b5034ee0b03914f540fb941d295db40c579085cb901517ae281293e59362b48f79b503f42a5ac89980223bcceb276c7c35182a8bb4600c7c29715b035a29061091d1ae037a4b434578cdc4de07f9154f8aa5447da586d96b2a7a4eff167f27a1a8c24fb6035cabb36c084b3c2ecd2ab036585c3e9f09d741d80bf1e8a21614934cfe14823800581f0231daae98444f28ef1801cb4f2007a88939021fe8f01456dea292657e4f0654cf7a61cb09c941b24e94a27b7722e96431e16df70313f99fa340588751dcd6e70edde1ca5105813c261ece0c9d6304d73cd1a26f2b00581f02c25110e0ebcf8997afd506da731116677efe1ab9bff9fdb701a2c76411e24a069e10de76676d08000000581f02ebbb317cc2b4d5c637426cb848bbe195064a1e747a69d1232c2614299c764101038c38cb6f60d0749412d3c8640c5d6806d5faa1f32a7d884ea3984e127acbeffd00581f026384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db04c033b2e3c9fd0803ce800000003ef2325e20058df486d15d6cb3f082f7581db3b876711e3f14c763c28081c15ba02194aa7037dd9dad0f3a18f7069f0fe75dbaace3a118646aa7628aeee6e9d3718cbd87b5d03400b9bc00da19c8031d7eb3aecdf7a39f2ec082632c425d321090071248cb0a903776dd8c1d9c3db257f855e63fdcdddfcfe7d707cf0406a2204fad157829662c0032cb8cb8bc2c430993505f3ee11114722949e652b2f10c60353a71305d432eecb03eb57553a031c5e29798e1af69c6225a02c1b98ba864f5c49b9ff14d8ed77097a03fd7a48a6543a273934356bc4b2cfd2a8bf27ec5d1441a4336f3c0bc2038bfaec032e1f593bc8e8c1fb4fa9ed2c7419317b0492ae7bc256494e971fa924d47ed9b303b4ee3e49ee6fdfd9751c5fbc1028c9de89f60fe2465cc56797a0683148a8223c03a480b120213278e78112c454db2b491abfdbd9ebfce7c92403ab1343c8a5543f0219ffff034556523c2f123510f8930bf02a977e97619543865246622bcb53084241c80bf203d25196b7c49f485fabf7b9e0df0a839c95eae2bef231520bf2bd95088287049b0377cbc2cec561f9e7e7f6c2ec2c891de7b5453a6212a44e085f52e41246f61596033eeddff2c4f42204683c77b03838d7aaa1e4d89e6f4f133ad8075f7dbdc8713003f7585aa4da3f05d798b2ac7bdcde6e8db74f9b5c4301cd83f971a11f859350ec031df8bf868e7f17e63dd791394ed59e1d0aab66d4a47e69591867faa6aaccbd7c0306bc842d4ac74bb7348db66a354b241fd360bac59ddcb3a1640dde334c72f9b503213338e46353c0d07fc03893d8676f37e41f0ae7967aa7865eaaafcdcac8a857036a9bd32bcf6d6f4e3ce610889b3fb3c9753068ac0e4d4114c1b1975afc9b30d303e196b538153ef8b09b96e8d71bbb34bd107f70de3fea14e189e45ada71ff4598030b539c17fd6abe3f5977e1d0cf00fc74520f97d1024f01539cddf1a60ec6d1e003eb0ea0c525c172553f6a5f16826a52ab1a30c113e828384ea8c180efc04352a70219ffff039d1caf2346c9464d632105709c4c81b271f4817fc2c63f570f6ed84a09f0399b03bd31f3b88597c97494b7bf926d2701ac4801286387264e71cb9b202f3255665503688d7a5ad00a177913f39142bdddd0496b7067ef8f451976b7d589c7e7bee4ec0321c57b9b9581371e363dcc91ef7fdfdc54521d2e156b9d28fe3608188db6a5790396fd46b4e1a4259aa6ca1925892b020b7e978fd5cb6a272c62323e4a70a6325e030a924b7617c610450e4be1f919cf3f2dcde845d2f5d1ba375c3b677cd5efcd4c030dfcd923c0641a6d1fa50bf11176e8d183826082eb4daa66b7f2fe354fa0fa1c03203344b02dc9eb480a502f8fba83fd6c0e29e9b49dd863a68813f988737f1f3003a8358a740adc8006e31c48acabce2221a6fc5241fc3bebe1b45698883528d1c603a62df4a0f3adada4de268410bf4473691b511232f48171cc2c38094de3fded6900581f026d2ef5d06b4911eca3c261897a9293a3f5482b80cd71c9936bc180eafe7a54351e345be462de478f382d40153d47be68678a7f00581f023d3508be1818f7126f0a9237620c0710d67169768f38130421295de169ae4a02c5e4ef8212f59cf3cf00581f027961f474faf233d11d4cf2fb72f6fd37c95f880b6ff085c2802aaaac272154d11be0fe2f2258de0532d9d87afef3cb53de614b0387191afcfedc7122de6e0598de8ab0b37355d1b11b65abfd2a7a5f0f5c3fd42b00581f02a2bad1a328925fbb3f579f7d74ae3d196cb9feb29fd54e6b904d5382b17b4a0da9d7bcb41c412f3cf300581f0265dd4a319b53de526ab5c2773ad9f24e838af5784ad062658e0babc8b3174a152d02c7e14af680000003c84eb7e4690c865e62194699057c53a2e284a712c75c125a82abf48c98387e750320431930153f90e5988d27704c68f4641ac027886e283011a968c9fd6bf71b6400581f02ecd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56354976a55c485a2836bd1305dccc4132890337bd46c02193f380331ee70bfb5ce08e3b554d443f9fb6f3a52608427e869198a5767343783036973034e65d3c931184b0442f21cf68a2ec82d2f816b424b2110243d0d7e489f4048d3030c67d9e051fbdc3068c3c8dd8726abe721b62cfc420d96afc11d5b82429c6a00031d65011acf074e07231e10c49ca590ed04aaff1accb1081eaa0fcb122356cb2703e7b7ecd6d59b0162982d5df21bc3a99a8f58466dc67a2099a32a2a39d066bd6d036457498e9cb2d4b36d8d087fc508537d41518088510082199783fbb35f2ee7b50387c927fcf1fcca8dffc02a45f3125a8480838edeea311aeb739c87da45e7d53403aedaa94788d9d0426a1e9e77d5ba385e1ac5f1ded5220d4ce1dd9f9219b11b0903400aea1201e6bb3f24f472eb311ff86d84a8db4fd314df994d34f197c53a8a42031560c17db96e430bdc9c0dae8b80bda4dd046513e2f52fef395c08f08467da2503672a1326516c240995e46496c0f109db7a40a6cb4ee5507b20068a71e2384c3e03e725e5a0cfcb2c2114fef6dd82756101e71cd1011833d921357112a5d86760cf0396372fa768839bcd20e7570f79a67a7ff59a7d638ac74a2292ce56d6af21b37b031aa47aa9db560e1f8c847ee0425709b4f703028c41962baddcea42f4b1b5f8460319d24cf6bb3c390c8de72f2a42bc36adef035420b0d85655a93feb1295bb812b0219ffff03f6e8d192c67914200e13fa12ef6c474ed7e2036165b5c7b8f866aee5cdbb798203496901bf65b16ad44fd06cb1a3d9ab4f42bc3612ae285c7e90648defb9df5b1903cd864f2333ba77d39aa631d8fc6aadc96362fb39ce6b5797c49c4bf353eedc2d03610fef2e109bfe79afd5163aa61b5fca00dca288567af0672ea24aff6558f4e30341531d10ecd0414e2662cafd4903f7b2d9a14a8defed5c7ee58e91302216f15f03ca50854e22be33ab3b98fbac4b725b34685383385bf40b7bdb7df4a8a01e3a9a0219ffff032e9c8972ed5399b6e0f3d134ce038a7f3c3be4d0e8a5b6ff5c82cf13968d996f03f3f91177b8094ac861ea66df5c72f7cdd02363568ab289159caebe6c916775460379b883ad6614b2d750d326939dcb8dd534aa2326433b681f6a3ed7b13a9c63f7031ffe7688a7655008524a5bdbb386645bbb072b08c7b05253722c1636cf2f8bb2039fb0ddc496039c56dda61c759ebf4d712c615f2bc378191e0c196b5d63f76eb703fc8019ab43b721b05081e978d26f94c58f017c6e218fdf9af317666a77a3aae20377f30f9afb3ccff0361882a7c5c1e037b65862739cf430fcf3b00db583361de300581f026bc965928296d763616de0ae0d831ff70e5675cb2415120317d248cceca74a03521cf1f687aecd174500581f0287fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace46034630b8a00000581f0258c748b361c39532b0b41e6b23d70e4e408c5b917c146b76b260d7cb2d3b410100581f024ee7ec1b60f8bdfbbfbcdd17c8f8a378037de24349bb86bca6c39537cfca410100581f02b86ed10d0a3fb79ac407ff5155bb54aadfad4aed2e82bd5ed4c2235db63354e475606d12dba404cb7b009da27567fcb74f077d00581f02e43f9d4bcfb42b043a3a61d81e8553a1c87f2fd97266d9aa8d688e29349954a8de8ca56ba6e3566cb2089cc77d583f36640c240219cca10333b8006a782907988ef91a8202989b18964dff5661b801e836da71ae1505de6d03e69600f013c9bc8858472bda5b37523d4524768c7991582975b13a6e8a6af8f303847cde72e089fbee6ce3b17ca7e3d5d257fd3f5854d3836c866e61c8b95f94700369296e6eeb7805eb7930978d06e9f6c1871beb01ac33d9817f0a0a38a1845f920348d7f07e5d2fd53d553e35b7fb8f911eda30e7a9f03c5d23c5ad4e15bd251c20038c59fff560be32a56f8eb41797d753cddff05576f3dee0a5909aac7ea178289103a79c3e26d83c72be9ff8fcf71c620ecdd8084efa6987e9a84b1bc61f7bd20ef703d2f64adfd308c37aaeaae867f9a2c478bb5f86795e0da0747c531d607906583c03611c2d31e6b0ef51a05a370193dc998e1072d8b7fd6f12baa5517a47a97a3f6a03616c6b12755c36bc691ecd05a360501dc267301e51e0ea0c5bace3a2641e26280219ffff03c5549a99ff27c3150b1f324126caafeca4e0b2f5b67ced3dc067220dcb6db4f503ba5ad8e3330d1a03169ece458599c680454f206e7a83bb9df6dbce8a97aad4af039bd1a82b8c12eef06c91c81b63d84533af6e48d5d063f83ccaf7235fa9efcda6033eb248d38cb37e2ac46ca654304a35123b473426bc94a90b5d4b9591dc4c2775036d47acd812c105d9657dd24d7267136a9442b215599f24a3f07ec88a154caade031fa213e0a90cfed2291e912a11713873bdcba79699880f0b3e5a2b7977783392038095ad4951aaeac451c51db4441ebea388f9e795eb0b7f980c55df024f7ac8ed03d3c100a85720ad0d99eca84d0c334095493bd29a04f04fd099f501e9d47ca51203049a1a1be1117258a13abc045bed551d5dcde126392c03e1c807fb3b874a5fac03b2a7846be199643fb69f5c9ea7cf5aceb7cd81b35a690c15d71cc855124f817203540f368cffa42f856252fd18f5a67a47a6d4921f4e67f8e8046c45778f2d5d1d039493f940e324f22d629e5e40d8b85d828c28a318ab83b5124595a58a1b4174c403ebb5066cc332a5afbecc49e06c579571200ea267cb9eb80116c7726f799baf7203b9b0f75a48a9adcb966bb6248a4d62ca648ab7a84f2e371470218f65505a09a70326a949e6d71f59069c1b745b80c7fbf3107a8e984c4553efa1529d1d48d538cd0219ffff0343d216167031a1e46b41f300cbd5bfe2f02120b60377dcd1d141fb9cf1b898bf0391159d8e47483fae6016cb470b68143e7b67e490adb77a9ff495bcb8b41740ed036fcd6ecfd3e7d3378d6963ded0ebd16bd57d319a39ad66b1c09f115b0e2f28cc03c614f2506a8d633659fe4236568077ac8a804493e63fc6d7f329b15926048c2a033737133958302356cd191784f332c59300f3ed9b23fe3b4e565573187ac012ef03c6955edd73a179c4d9f5bd28b4d18660f780c79d714a6bde39b46cec0fe718c903e3aa50e5bfb6ba51bdd1804c6f12893c1aef27470dd67f010ce65ec00fdeface037eb9d24a5ac70eb0f4ec9cd4e6fb48a1914bdba8f406e6ad75cb41fb7e69848503f68cf3f96d4ee049d226b47b25cb296d1a731b1b4902af20cb4f7fa9ffc472bc03de6ccf3df18b6433550071cc545d4a23d6c6cdb30608a0ba9b3ccc4ddc176faa038288d0505cd4bb08cc246aebe76189b227ffb62973a4bedc6222b6b69bee902a03e8028ab3325e9593e2e09bbe8f46c7627b1940f7b37b74badfbb33b956e0be2503bfd3dcf54300d64635027ffec5b15edbe4bc84639c5b094623e6f77a6f6df8d7036ee3f873b7128e514cea288650d6f6a73b833fd929b879091b4f804d2d9b3db90384e6d050a89c828ea568dd90ec665430090e28447ea6dd0c845ab41b9952c12c032bc308843d558c41b240d9c82f4c739946bc23b0277ff859f24d100c9a33d5b200581f026b95d0914cdb10edb60f448fed6029b65e7eb0cd2f93f030f4705732252d54d4819cd0c390ebcab745164c882adecd7bc86b8a00581f027dcbbfab5ca124e9befbaf03901eb5096216713b258aadf82edb66bc1e32493635c9adc5dea0000000581f03e1c48505a862584ceecc2aaaeddb8c5f92f3ff230c73aad9ac6c8fbab28054d6224320c4923235016d06843beaa783f00c282d00581f03cfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b041120219040400581f02a9b6bd6cdf181675afb1afc2bc0b29ce86364233bd4ec0c6456321aeb70e410100581f022f38df32719d55602e3901a40decb3dabda96915a84e8dae32673d9dbd9c54b7d098944f54201967509145ddc3427b268dfa13021941320376ef61f44f5d0a35f6ba9e87c5d60d338aad10bb00b73d12a981876323ba0f3103617b046d2a51333551061255a2270f8a9db58047ebcf457da53c7179886963d603fbe31d174f4030f1ec1e6d125bf4959801462c839a9893df69c42d28b6816fd603c41ae3ab123cd6a39ef8f1c8a020b67ddcfd1c944b0ea6e4bbee3be4048fa74103607be9dfe9fc63ac6a938aa3850c7a87aa310738ea029e3b6a56fc5dd853b455033955317918e0d2999095965f513cbad6ffc3640f22c301fe029f2c435f3479cf03ae9cfab3eeb706bb24942313cdfc05d24772fe43a32b3990483ac29d91fa5a5903902049760d3e0c9be33670f52657441c3a4318dc338faf2e15ae3ed68d32752d03001e1c7ed3f0ae377255f0ef8b3ec435bf54a4193dc411eabe3ddbaf271bad1b0378fab1e29fa57e4ff3a3ae3e3d03cd80dfa49628acd5c54fc2b4b30f0f8758da0397c016695b2bd7a1eea01f058a85fb94645323720465668d859264e7e7dc7bac03e9231a514f57ba60887bdf417a6e13d1af1e1735a518f504edb6ba0a45e58d860219ffff03d993185159fc2f212a2b1d3adbfe109dc31cdb6a4b8fb185f7dd7ba11fd392dc03da431dc04ac7a8030e81289bb2190f80a00b1268362c68ff6be549a48b6386e803051b7abacd76eb07fb3546821de43a0b92e7823be768330ebd35cff3c9e7597a03207cbf9e88894ddcded9c08f104f848336e69f9734e8f07d5ef6201781df37fe038955cbdb5ad071144ec108ad172d696ad9577408ab4e84aeb2b980a21e097cbf0219ffff0339d941607f4661eed76000fe007951b8ff7a7a50f03ee2a07e7ba8e97958a82003b2c3e2db6ceb085cd657b79d7eb582c5348b0976fee470e3bba2ca239344363503e83604ac16208189b28d2a4621ea559704376eb36b9ddc4bd0173036a15ceb910355b6491a1a41ddc20ce8f00f25786d8d2a0ab6feba6c7f6c81b3af89d1e3d55703811f8596d5d432a4754d5e752f224f4e34d0cbea0454c61fc32f5950c0ed325e037e7226d038742e06b9a705d6eb63b603bac892d3623a06bbdc4670ad462597ad036066325fe644323a9b9f7ebe2f6e3f5f84d85caf2ac4204e46159aa94894c41d031ba7664db02248d9d50c15e3fc3386d47e0bf612f1f28167642b07df9dfd08ea00581f021e3c1da882d35dcdef03f70d4a4a8f2e8aeae73158995061eeadafad5c24410103707b0b2fcaa95091fa57bc115f2b97763009285a8870b2b74ae89e2c877f171700581f028147b385e1d6741875b7d39557a17a5218a494768a4ab4fa96f189c2c35d4b01a9ff0bd0a10a197a1af2021989000350460d4b17decb8b73c4b3fd978519427bdb8411d608f8a8d01146f8a380eb110335875f7efc3efa23529c7ac0fa26689fd6d59801600d7cc8ed4bf238104d54d203fd1ec2a28995c727caff436ede9e1d6048a2d93ca3e47a0d8c58d4eafcf625f7032a88188ded15b2070966ea00174e1038dfbd373b05412e1cee6a35a474602680039a583133467acaf7d3872571330e306ce3888367dff7e05292f606dfe069052c03cc9c642a9ac115d8f600a03eabfab2b9c4a483eb00ee84606d052f0eadfef1e90340a88b57dd452d1929c47c65423ddfb0248f19627032e69d5c9cdb47e4d774da03ef1ee69028ca5c572c72ba76db90e8f2c622658e14f452a45a21e377fceef50303b453cf9efe78e9aa890290e4faaa4f38818b76f109296d4407013584659200f203711af2dd6bf3564ddd700b9da0243cb5e490db3a4bdb414afd505ca307338a9403bafcc3696b761aac0a4a0578e0eb04e76f506dcf1f0ede39946b1f33ee4863330396e9a77372ace86d97a8753ad428cab973bbf189b9dec6a15026fab5d515ada8031549eca4b74e229dbeb95eecd7dc6ed85486e14ce8e4cb61efd59ffc68f8f67703f9d986a75d91ae2bd1f9962a405381133bf229651f9f76b528e84998a3ee9bd603daf1af9b07afc383ccc881f03e3a8df97b23fd2fc6a3bd0a29ab036d093eff400219ffff0331e9529027494b015814d10848949bb3656387205fcbabfbb67cb95ec056611b03b2f7014742644feaf98ee6b99a79fef19673c0945cceb9375cdfe623a27a7239038f9363a8162b9d5e5475dcca3249525b118e82e0bd11a5520cf252f8709569c30392fceed3b1be5f7cd72f42966d1327c0376be0a4d5a76d419ace5f68c1c54acb0336357579f8c487ffa0cbc871d0d2b6de84e1950a5834d72b25cfe99f67da21ee038309e72e0ec894bfc614721bbdff9809fd4c58ee328d58baedacfd71ec31693803f9fca0df6ff08b81a7cdb2783e89e38fe980c6967e72361efb6af66fd430ae5c033b536b9eb798819df36f0c80458ec8fc336873061b0d1f1d68f8570fe0fa50010219ffff0335c5110bd73b1b5dfe7ed0a76c97ed0abd7cfaca098a13d90680d72806d4f37d03aca95aafae311b1e04dc9277bb766204befd92034d9808d529d2a7d076091a3b0381f37ba3df5d3a4eb65e75f6b8911366245194f39c9e834c7a1ef4d04f64afe803e41713247127090e5423d4fec49b5372fa144db9746784c285a74221d9740355032599bcd6ffdc2c175424e879bd349da3651a941697fdc9ecc102274ed82e7cab038b88dddd20d8f619ce56d92c85427a1841ee4a883cb05f05913edd5a85a95e0600581f02c031f019c35c7777401ec0bb0dc6d87ebaaa4167e129e23614044d602bbb410100581f026c117dd43761b1e5d65fb0066b76c529a8ecf6ffd7f84163874cf2d144204a054b40b1f852bda0000000581f02d9079ac18531e0915cff12b5809ffbd22ce89c28b6b24126e304048c99bb540872da561fe77c903fd9c5fe6a329a5c3bdabb8d00581f0243ca10bf42bdaa385003b1159ee89e10dc261a305a9332b4ee94ba7cc45e410100581f02bbf8427cbb069e59284589ef906860175def03b3c3c1dd140a4b8d67b3eb54e954d7750f16a30631becad497ef71c4302fa37b00581f0221f7b87b96c5d954077ab3a24ee3c6f16e47272e32cf4016dc29bdc34ba04101033676651355c16aaab26a813622a1a5b0747e7be52fcb844aff23e6abb8186af802190e1703d843b99ef2ab2aa747eebf0be390e8c18b6ab05b4c0dc0a6e49f0d19eacc52ab0349f292b8351df9352c2cd686a6c60f8dd3193bae05de5e8c139a539392527e3c0333568c49566698bd4e321f0115216f152671b41cc60e6dc5d790ad4cddf6875b0367580572b6cc17f7dd58f5bb3eb84f1a15594db2013a11b30c81fdd518ecd7be03e340a26ad2b9ac38e9c9266022618dc2a4120880c9e10117c01f856fc6778bb9037346ff1c2e30ef2bdb3bd9b57db5e02cea9e765bd479509dbcab20a85ff6bb93037b188be56f6a44903c053f3166b56f3485c0abf152e23cb9159cdea03a5e0d0c0353e29d1be5742651d2d64a138e99c6835d4cc3e49c6d7fb3e961a4fb6c7d8d5e03a93fa7fe1b30d75a3624013b6ff2166b63192d741190cc0ae9d34c000613006403c6667203304c5fd2d0156c1133b152760216f3013e044f78eadfd2d366b7b19e038ca2289f6efcb6a7ae36d65cd409b2fbb3211173beaabb41346953ad321313d90219ffff030a6d0d7b4308c2a15c8bab5a5046844b123b7b5f249c1b948a81e76c3e17ab880372dbc2e6b4d0ee2913e96fc7ec347c80c2b993e013c43c0f5a38a186b4d249560330b92b42601bfa657b5b736742d93be69501dbb1c5cbd72851b475e93a4fe65003d6e95ca3d73ad4d8d3d2cc83804d4f2bd93c7398002dc6483b2a3560258285820350e581ef711dfdeb3d994c6f16d9a6806b25403386ae44dcbc85e9635758a8290314df34001d1982d22c61d2165131ac0cab31c5eed3db40bb8b22e7c5f4e4b515032e4cb3f39bbd7f2303acb5dc5c819477d2868e5fc8944e0663b66e550a1577930395a86dad38f25deadd854395ffd446af21dfa51ccbcc43101c920141c7717dd103f17b723f146bd9db43454076c7875ba4e70f3d86da41eb483eb0c92f3a82bd1703acd2345d777b483649991d3e192d8eb0c9b59d4744d4a87f3d6915decf28fe0603d963a55fe027c82241d1402a0ebb72499c38fb455c219a5d1100d009cfa8b89003cc0058505064af9faabb424a16289a75f6238f2e18ed4a066a8cad16baeaf6cc03b6287b17d10c37dbaf62a4c4991ccb70248758ae6b137806570ee044c1a5aced03279bfd30ebd52c10c2e2d2f3a2cb67e930c372f61dfc4599b2849dfc5be3ac52038f40730e3f0078bd214cedeeca4114b9356357fe2d41191e137984b73a354ee8036f5507176e60d80fec56d6e8c90d1600218505bae528992fd026716b1c717ba80395504c36d28d9334a1a34e557586c8b03364dc39ad2098b8e0f8bf5f8bd007f803462d8c4510bb5bf595cae38fe334dafc53c98cc5c1ce1bd4200604558db8189103134f332d81887399a70fb2e69baa4c44a52caa156a9a9fef76f63e119d6d965b03d0bd88113c1e63379b264128a4df013016e8c3f4bc2019457634cfb98573b52f00581f02d8cd39ac365f0621c9fe82fa0b2349345a00eb13405d55e54c40a96e673754663f520a77d4f1c76babedb452096122ebe166c1033fe81cbe69ebd8292d900b7da12c69190ae3b63617284fd3cc478a3d59ca9e1c00581f0266c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c74467232a4b00581f02e0d849078abfdfc4ca62ac9913dfb3ffd95c3aab997653ee8fcf4860eac54a4f68ca6d8cd91c600000021906420365fab591029c38421d1c8db124751f35533d8067cb3bcaa7188b0e4b3b177eb903c3b3983e8458ba64068b3cbaf53b966dc492aaa2c6878f44dae56219b019147d03bc0c58639660a2c9119a9af316bb195d90050c0ce6cdea642fa0450cccd2ea6b03c0cc5310dfc4119212a456c696657e22935bf0052831260db7ffb1f503147ed30379f6f5f6825c4ebf8615210187e7ef08f8ece1759b9d03014ff6c2c4cdc8bcb2036bbf1c7d9587b1ce188c610a1be8506dd9d51e788f5f44738ead20180da5ca6003a90c2dcac38e1dd9505ce2ed1ba9674a0c67e387e07b341c5815b5bcb0635c30034497cd482bb097725fc75e8404171b0fe090a18b94853d07cf14243eff1a70da0398c0e9ced9ea5a5761c94b1b68dc6aa671bdf2bc0bea12eda756fd92d144da550219ffff0219ffff0391f92775a86682a1c893063711025b9b625e7fc060d5a3de176610ed364ac67b03ef41ccfe11265032bbf1d8ae98edb4c90184e320232c28b0474575c6f24ce6c803cc85be42f1aa390918b32ea1c7c40e8d7a8c4b43cf4da1081fdb17136f3db3a403d15d5bcd96264e5884da4dcbc1bd9351b055620575a2fc87c6432e1815ee4ba9038c900461ae6110160fed87645f1c43e9045f691d7945a077c908eb5df717c43c033423fbd7b6c1a780624a48e9f47b5a691e23b0cfb35f6b21142da9aee47ff702030005a76675b9346b4b6edd8760eef671a7603b3414f52535f976abf7dddafd6903bc0ceb6898fa940bc46b2091a638b6eb5b6c38ef04f464c80da9d3eef341cdc803805a661053c7a228b960ff9b69ba39cc1b159accf8569f589b3abf04a8de270a033691b0806223e22c4bc0142ff5144f310f102ba0edf41cf5c4dfeeeaff9a7ac20369975f810778d7b74ed7477f0eea6bfae52ed50b5b051b573d10ed2cab4d6cc703a83455af2c037f4d59092ee3aa8bf77ff24165d98d689c9eaac6a06e1aca52ca0360f32e02aaaab9234c51855d5197bb3ed8e7c0bf49a074b6cb7cd5231bc15ff903087d28195d0e553632b22ecfb67c9ecb36652bfe0d5052aa420d57db8981e98303885738f19c1a2bf595b812fe3fd9a89175aee90fdecb1fc0bf4f5d938b5bca0703c2c214af747a147667dcb1ff2e30c65aa0f3665180ae2abe5d9c30bd1364937103c22fd3ffebfaafa39e5fa81c6540e5a1e83d70ac714f336c7bb8dbcdff63e26b034ba8a8c605dd1644bc3efe7a0c80e7e8cf5a4c07b3b373f43464d2cd96f54533038dc20f79052d1c007e59f634c0751d9d0b6be461cf984273a6d60395b925dd3200581f02d3ad776d62447fbfe36b0bc06887611e17139ff684b92c6daa3e3a3b4dee54fea65d80b873464395a5b1dd8b1927f8d7e9c01d00581f02fd0dbfb521ca22836ec3d2421078eba0116218fa596e73410b333bf17820410100581f02f5cc6a24995065b09008f96b51e7d2b40ba878c7a1f0c44a3046a49ead6349a2a15d09519be0000000581f02a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3410103b7119090acbe780a93fae385cf2f5b33390968d624b6be2eaf629fce78fb885001410c00581f02fefff70979a79087d443c02ec88680d599e80255035e680a5e535a1c3ee44a178edfe4c43cff08000003d14e578d2e70479a9c56709bab4812b252db1c0c514467c8131762b93abdd3a1038c7f39020b84df6490a7f3a21b79ece7039b7b78cf1751af47fc0ea162e0773e00581f02de70a1c1c8b92d45a59122e321dc0dca3ef295f0a1c3dc4321690d792cbb4a0790134762bf5809249202198faa0219ffff0361b532ab0ab9a0d291728942fa480ac0cbb6fc40aee230ce97ec82489b2a632b03bc21dcea5d15acf315173eec1e4b5f5a9464aefc1f7d689d82a9cb4e84e6174303fa6bd0d055333072f50465a2623a85c583f90fa7206dae7cc45eaf753c18da60036d8b9596b1c692f3ca608cae67ad5abadcb8bb67a4ce228307d9546605307921036e2e5a652b7d5fb96584b67906011fef11c9538e7db13b25e3363f1d6fdab924031a0ee393850069260bdee5884a36c4d7298bc09a405b2ef2317eaf033789eafc03a7ed695678ed376e207bbe7a5643bd83bbcbb345c80906f58daa7244cf2d591d0365120ac3f91660639b12f6e72690a1d61e699632b731fa7214de7463994c3ac70387e55287c3d5b3995ee1e21e0de6aa92719bec57924855a8dcc9c78c0033642d032549b52b1886bbfcabe9dd74b240338620acbb4b62eb130767316273e75ff45c037a1f14c3589395ce4cd19c1c867ff6df0e905ec4581903706de3e5f61c6ab1aa0313969e5f2679d404f1e3a4f68eb1ced103f9fe8ea98921a2b48b7f61f3fb5ddb0219ffff0219ffff05581d02d123d664f961c903228fef4da8f9b6119cd4833fee10e758404520d50f01480c5fa95d14b83d8b19401f021826031f8b67be329f6419c9282095843235301b6b3475e42bc9e3262b646aba8072060605581e038935f4ddea56deb38cad988244cd33bbf5704a556001c1f5619b5299d007011bffffffffffffffff0219247b03d16ce63445063ea03b9b08476f4b9c52d78b529ade5589ef64700f8864d10c2103771cfaa0e94eb303898b49cdd08e0f472d9e3ae6ea9360a3356a9710362ae04d03f0fe4689cadd3aebcbb3c5addb4ffe383f9be0e5f7e083ba08c0d48260dbc8600328a1f83eb3d5e833fb4ea701b05bf9936814df60491aae444c92a4106fca898803b3f0345c851e49f05de7d435917a994f7883b598c62150ed55278bf4bad3bcbe03bafc939ac3245416309db76ecc87ead1463b18d1362f46f3a334bec614035a8e034fda9050d9fd3363612be7e2cdc53ab3555475ddd19a73f18c1bbc64a68d72fc032d34a22714d36878a457adba7523ba678e200ef931d4a5bf2cc59a32ba7926cd034e8d4629a95cedabc3f70059102a0041c60d31d37770d8f078535fb15d01751503db0bf64323993ec3814c73e918effa92bce470d31bc43ffab3d45b36e418262f03bc508b97a28cdae4fa26f7f206dbe08d03493061653e20c2b497d5950c302c2d03f638048d118276d7f6d027e7b3a1096170404e0f266aed97146ab28aefa99b6703d53a1b8ca4f87f04151c80b6be42b02897be78764283c0450c926f4ad2e015d303863ad5c701fb980d1b63e51945da79e74eeedfcc5ef558e8ef2acc6219fb971203f1e7aa2a68911c9bf58be8468b993d95dc8311a5544d1d01576376e8bae4c2d40219ffff0306909eb5c4910bfdfdf1387549663596fd7b59f0a9eacf8ed1c931685e1c4a3c03d7b16e1f36d8e3e37b0c29992d7ccbe6ed5de7a030b49b69495cff3091085c95033fc3f90d1bbf1222ae42a2f06abb47505c00afdc3adb26ff253a6b399249a6be0326316b933894def7699e085779c6568174a01538800fad5eb9f8a9ff413afe4403c3c6bcf4e7a0aa83704cee040fa3b835345ef3537bd13b62e850da26fa99ab510219ffff039f60be3452198007895c92c0b6167cdfbee6bf867430fe3f16ea749fbbb56f04038458810eb68a1f8b710244f48b6c14cf224ecd97ecea302d6b2a278d8e9fa89103040dfc19445701c41b062ec6f90d00d8dae310b4c4580c7566d83bdb4d29f5bd036de98c313175d0db1af992aef8edfff8bd80089bc25d286c96b8df8d1a3a66ce030c67e9451a11ccfa29a898bfa4a85af218c9efbdec1a2e4e63f658cb4546bc4f03367d3c849d723ffe34eeb6392da79ea9fb75e6aa3f5bc56e3633b141a2c3a7ea03b36fae97be198ba816cdfd4cd3b637f568e8677f34d03a72186691132c5f3c1303fddf2c3d8c15a37e8c475fa19a04cf4e4bacac49d86b5a71324956966ac3143203a600b3edb122e1762f120bb686a5a491f6108dbbe3e37066bfb3fecca7a3a8220219ffff03e9ee718b2e5e21f790ad4e87a798aca924fc91184498c82675b9ebd16feee4a6033ef407b4d23679243fb3c3f5e3412e79ea5a9ed7ba5d51ff3420709c8d6ef325036a9a7b2aeeda29b1ac9d55a302e351bc325985bd843cf35876909246ae15b6fb03dfab1f45382dd0a6373817d6df165142d6b946b32cf7e2ee9d268e9cd0ea71640396db0639d53d80a400a56b2b1b2bc65fd2b857048f98ce78f912e89845e59ee203cc89334f91286493cf5413957fe6bc2bd052676241bd533029de769dea1fe7f2038f589274ed33b112aa400dbc73267b568b52f6f8b9b3190e6d1db2c483b19da00303fc3c8ac0955b99992f31e3f937f095b1ca3104eb542fdde0e7d2a75380a58b0351d87a415d4844c9a83cb50466f738c12e2aef5d8120c0fb7ec3580ec36005d603e6ffab34ecbbc59c65d0193ff496b2421d97e4554bc37d3ae1518ea7a9e07d0d03cc806e3463aed775920352a446833e91105e25cdac56d4ecf620964d82cb4a840219ffff03674084f1c7fb45848d96576f79f8c54bf9616c8ef966f2491af1ff166dbef250039df186a6936e34fabd65a2210441a3fab0d1e84fd3291be62900dec2d0d5ec6e03b9205113443421472ba80955539a465c508131b40d1179514815c22e569a8dfc03b383b1fca9076026f3b06d5dac6fa146ed56f0274bf8a53b1f402a03d27cb6560364e73090822e4059f582632bdf642a832107984c31c7861f7cf9dbb49d328d4c032c560be6d6b28fffe39c815bcd74d62a01084ccd4a047dfa2e22257bf4b718c7037351140aac18a7d8041a16c7df0e6fed7343eec417352c7d5c42125cdd6bb71903bb55e04551d8fae299fd48094ca06af1980a2702e6ba7a2be2f16026f526160903f31cc54f8830f92033227cffdc0a90212f6f72bcba237ba7144f6e16810ff27e031954ee595d43374a498b188e88ca64308383eb35f12080d367d347d37c2d9a9f03d86407bb90bc9995a3614d5ff76575e244a001de3f3bd20ca0d8e08bf8f04f6203ab16707b83ac890f9ab25fdb5c7d96814e42c71a475593f1a45b284bc757d56f03f0a1c9d8675c222778a8ab25113270c42d219a932aa884406633ef20331134cb036ea077878ca1726f920351790caeb45560ab8c2dd64ccbad63dde7966272687a0339b77d45fbdba49ba06de97ad6d934c04213da210b6d9342b661e2770ab3ece903b82dffb1bd20e20b59efcbcfc674b83aaf557b1c11d4d610d5f2ebfbdd9f297f03cb6f70f7c38e3356997b665385754fa8a78e5545c7ab2adee0ce20d4e8bf0d1703519fc13b30324cffc1fe737ec0a9a7f39591acfca486f4ac3fc36ab25ee541f403f68392d4d253483b15a056ecbdec86d47a7a0c5d9d7858eb5c20a11c7298618a035dc2395f03f277417733f97c572e321e9c8d4aea0d7d6dffeeb15d7967c94ad203a6277581fdb66b1b95d0b19109ce53ed000d743e73a4378dc275a077005c90bc03d892f87263f8b26a9d989b2a812ccf1b0870fe5c674da550d0363000d6b530cf0352ac81c1eaa4ed1fc6cb65f29cd8c37ab6fbf08d46646df6bdc26ec9a366f70303624e93bf77550a408e5611af88e930110b9325897f0c7e98e91f80956ac1e04a037a9611500a3d521456986b091137dd8801d37a3b3f990aec800202bfe9e4c08d03df8e0e4612eaaa13417da2be1c2e85edd8b7b3dfe9aacc5c31379a0df39d01f303c47fe123359bc639d5401ad57fef83b43f48363b8412a6994f22229a7a3f3ec103d93bf258f5d1d49fda9f0715a6dc77f035e48588443a001e6359d680045fe3f403f2950434ff23b69fa17910db8510542895edd9cc6604776027490ba428b965df03d7c0878448a5dcd0f4ecd40612358d3f23baf066e15144e64f9b73d077f0b0650316f7e57e9b57eb41c7d5e8de660e980f54e52249a7180cffca863d4fc6963556035854c9a43d6e3b05286fa82751303cb720ba1f6bb23d5a2d314ae00627c91bfd036d9fb1a61ab39971b8d64618e98a82bbd9ca29aa2cdee31b4e810744a4de9bdc035a31b03834112ecf687df9fff17db7241040affe19fd10764e00ff4de8d878bb039e8ed5fa2d3c84bbb4e2ff4c30ab4dc298d7e22b12c93243777b57c2aeaaa19a0391bc0d441f6c7750100f6a37c0d95967be01cd93472334b9ee5626128ef890f0037090693c234d64eab2ce9b11382d5cd7693109e10cfa909888a854bb3dec1be9038ab01488ff9824226ba17e2fde7979cb8c01aeea2f4c7a3557e9f27e40078c25039176168cbc4f0ab57ff42dcca05852d94f6eb1045d73b9de0677dcf0653e2f7403437966896052f9f1c5d2e54af0ffba9b5b0d8c87a54348092e9f656ce4aeb93b038d004ce3ddb8b718da8769b0e03e80f5ec025af6d5d486537486ca3da1aadb5003c72b0afcc2609fb36d3208b5afc9b550eea052219eb75904f59277af62a036ba03bcac9c39744d7c4039ecc30de6b70f144276c9da33fe4c0416bdf9b4168e4eef0330d48c7f9098573d652f0b71ed5f14a03f057dca4576bdf5c516b12aa17947c60605581e0320caafeb5be85dbcfea0f8d7061492236df569249e15c82b9d93973f6007011bffffffffffffffff0381cbff6d091f34426370c99ba68f18c034b05161e027e877e606e8d933492bf105581e03af1cd701534782b1e6c99aea6662313867742c39c40134e456bca748000847242bd6967b6eb803cca7394264ed86655842848af794304c3f6d61a5e60abc771f73eae6ec242acb03088d3b8b14b83434195ee2e465e7e18499b417c5fa77d9084375c533989795b20605581e03d56d2fc970cc4d82dc678052b9a482a328815cbdd0fe8f96f29b2b87b007011bffffffffffffffff05581e03df230ba9a498aaeb41d63ad018b3a005ff5f3c189acd46c41028b352b00c189e48067c81b374b12407031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e031d452ba88cc38fc71a83c39f4a66eaf5f19f9c556d68be29edb9d77d8007011bffffffffffffffff03979968c759439df6a6e80416c1a53bbb94a452a20549976e452c0f3946a0778c0219db1903785b58af16d59ffbe3bb963ca429d6497f6dafa3402d124ee2c88c1def522e790219ffff03ac1388ba68f5b164c978f52a5782e2f5c38c44ba613e1d086304cd3deebca67f0337f29b04aa47aec5dd12a67fe286f6e9a9534d21ed351b9fff13fbec5f40616f03d734aff8102c6438426a0bd9dd5adc96c9cb2e10e9ccbfe3208bd60d39fb5e630397394243201d42e848080be41eed73518200fd308da1dec14b20f2223d4fadf803ad6deda8d5e782fb9cce7c4f9110ce46d1711f97abc2bdbb5694d7d7dc75853e03fe75ad4b3f79943881d240bbca87e8c04476badd86ddf7d4c3ccc7b1f1001e6603a1638d69157b915fcf2eebc2b73b011d7897f60893bb463dc292cb329b253dec0383ff6b051109101c258e6df955daa507240f734ccfc627086879ba5ff59caf1d0219ffff0308422c97b4db906c67a74e987c38a7e8ea440c45cbe669b9d390c7966e176b2a035ac824a1ffacbab3e53da62e7c3856bbb3519bfca7a1ff5ed5b1e21e6144b3d103b78bdc2ad32ad0cfab8efe8d40bad2afc69cfdc40b3eaeef2685db451973086703012160624d86433b6d45db841b2bb3d57f5d80048c3a5869481afc3049da3042032223705a19d270f63c5266ddd2fb47bffbd794a7569b3b845682ca256407cd9b03e715b9ed638527674879765c51cf72a5d15433a789ba77a5b3b973348c6d11ac03e41457008786ae4f6a4e0605a39bcc5f58114195c6c8929a365cd5360f30c7b003b7af8d975f4b0ffbc47257b0e625c3d76c7281630c0173b94b877ecb6d028a2803c86c4a0bef33a63cc68e1d213faababba7af8cef22f348812903e54897db237d0219ffff0219ffff039e7bd4bd542d1894c35920c1875796847e317bbb5a673ace18686e1906be834503214b5c19f06ad126df1b84cd49105b1197bb943db34ef8efbeb26abc23fd93df035d2fc4591d9719f961b54807e204ecfda637ae228d9f653a8de11a49b7094f4d03a29bfb3a8ac33a8a079ed7f52bd58fa3571eb88baeb7eb1257e3a963935bf74b031c6274abe98a6664f1b8e0150c0be55a530c54ef7fb57d09f64d25dbf2d4c6d3032f47e76138ad40c5c631caf786c16f7c47e2deb90e12755ecb9dbd1e7f3eb55d03adfba645dda419b897e19c36c0fb806e62bc146d0deb9a56fe92152eaedf51b903feb1350e332fca0260fcff26e3cfe28ff7a7c6cd00cee5b417d982343631f967033509af0d1a0c4a8cde5ce8fbda8459ec5669ddc4d088df26c256dc7b7af99c3403f1d18184a6440a2c362ad2ea78ee6f1e963ce26b0b82ae039462a6820adcac060344924dfa01ffd9424fe89e33891a3909805454e4cb32961d88f080a87a799b0d03162765072b76aba8218486012c1b511844c257a18f6fde917efce7ffb69cd0f3038a406f73e7742f21755388f6cbbc160dcf489c5d53e2f7be11d6a7803161beb203200cf9bff9d4f02bfdec78fe273cb9a056e606b2a75b44886251bcd501250e22031cb1c0e0caa530797b7df2a54712b248a85d3a660afa84ef82a1edb40168e668037acf38af2f647bb488a2674ce3fa546889aebf11915a4e8abd747641b915dfb703c3834820f5c3d21d78ad3d27996bd96e3c2f61645d85a96736101055c8455b4503efcb8ffa886731a06166c76bcf0d7b9236e0696acaa59eba585d4c61f2f1bd4a0362e8931e54d3434f48bb5ab42e2a40cf71f922c0865dd321e0eba2fb6a4b94a10341f696d6933ee098b7b6a666e17af628d8746bbcd86dfc55a4b0cc2ca4083bc603af85ce8fbb77a5ce5714c408a5ff6ce3ce2d5f7dfddd9a647cd240243873551403ac0ccb71233a1fb792f75feb399535ad80eb3594bea8f2910f6d3b706266ac15032527947f19f358434d2001914fc8bbedaa4ccca0280493be101d788c1a918c7903b9e69ff320d51b9bf58f2159fd491d4ff99cd41e0b687d3233970a49c03fdc6a03fa96e48099289b55d4adfcb15d8ffbc3e5a9b2d0b0dd589d4876cc78a0dd255a032713c653ae53d7eafc4a094c374478b4f9d0a54412736f27729997b3bf7141b703fb759a1be421d9b114a96a46d7806054f824ca54786ac9e390dccbf50c0d90c40356d7c2d69f4c02f47c0e99e2507f93b04332a96258fade9d7191644defb11a7f03941a28b98d7e7eb2c9d4860a46b4a1f0e3d8d7f5b8e7d66380aaa00245738eb20605581e03e9a3d392e411898e63f06d94f38bbe721041dd7899c850350ab4301cf007011bffffffffffffffff05581e037c23f5c62a87aedc010ec172adfb2eae7448b79d4425c2e22e921eb4200c01470401145a1a968105581e0381107858becc4ac581bdc231bf54f5504f024d97ba411b73c79e7455500402033456ef258b619d989710a35e93b471b07c74d6cd5817f4bcf4c16a4dd40a070e03bb9f98e02f2e538dc47388d31ab3a7d7367368b4854b9a5dd8cac6a5945c92ca05581e03d8d3b72e0a543c7edc49d1bd40af55d7e8edfbd98b3dd9403cd1ba9e3007011bffffffffffffffff04590e086080604052600436106100345760003560e01c806392f5f03714610039578063bc17c2901461010a578063eb365adc14610148575b600080fd5b610108600480360361012081101561005057600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235811692602081013582169260408201359092169160608201359160808101359181019060c0810160a08201356401000000008111156100a557600080fd5b8201836020820111156100b757600080fd5b803590602001918460018302840111640100000000831117156100d957600080fd5b919350915080359073ffffffffffffffffffffffffffffffffffffffff6020820135169060400135151561015d565b005b34801561011657600080fd5b5061011f6103ae565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561015457600080fd5b5061011f6103d2565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614156101f857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f544f4b454e5f504149525f494e56414c49440000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff89161561023f5761023f897f0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582896103f6565b6102db85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505073ffffffffffffffffffffffffffffffffffffffff8b161561029b57600061029d565b885b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000001111111254eeb25477b68fb85ed929f73a9605821691906105ec565b506102f3816102ea57896102ec565b885b848461061c565b610306896103008b61068c565b8c61061c565b60006103118961068c565b9050868261031f5781610329565b6103298286610750565b101561039657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e53554646494349454e545f414d4f554e5400000000000000000000000000604482015290519081900360640190fd5b6103a189828d61061c565b5050505050505050505050565b7f0000000000000000000000001111111254eeb25477b68fb85ed929f73a96058281565b7f0000000000000000000000001111111254eeb25477b68fb85ed929f73a96058281565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8481166024830152915160009286169163dd62ed3e916044808301926020929190829003018186803b15801561046d57600080fd5b505afa158015610481573d6000803e3d6000fd5b505050506040513d602081101561049757600080fd5b50519050818110156105e6576040805173ffffffffffffffffffffffffffffffffffffffff80861660248301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6044808401919091528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b30000000000000000000000000000000000000000000000000000000017905260609161055891908716906107c4565b8051909150156105e45780806020019051602081101561057757600080fd5b50516105e457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f415050524f56414c5f4641494c45440000000000000000000000000000000000604482015290519081900360640190fd5b505b50505050565b6060610612848484604051806060016040528060298152602001610d8060299139610806565b90505b9392505050565b8161062657610687565b73ffffffffffffffffffffffffffffffffffffffff83166106665761066173ffffffffffffffffffffffffffffffffffffffff8216836109c1565b610687565b61068773ffffffffffffffffffffffffffffffffffffffff84168284610ae7565b505050565b600073ffffffffffffffffffffffffffffffffffffffff82166106b057504761074b565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b15801561071c57600080fd5b505afa158015610730573d6000803e3d6000fd5b505050506040513d602081101561074657600080fd5b505190505b919050565b60008282018381101561061557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b606061061583836040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250610b74565b606082471015610861576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610d5a6026913960400191505060405180910390fd5b61086a85610b83565b6108d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b6020831061093f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610902565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146109a1576040519150601f19603f3d011682016040523d82523d6000602084013e6109a6565b606091505b50915091506109b6828286610b89565b979650505050505050565b80471015610a3057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b60405160009073ffffffffffffffffffffffffffffffffffffffff84169083908381818185875af1925050503d8060008114610a88576040519150601f19603f3d011682016040523d82523d6000602084013e610a8d565b606091505b5050905080610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180610d20603a913960400191505060405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610687908490610c47565b60606106128484600085610806565b3b151590565b60608315610b98575081610615565b825115610ba85782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c0c578181015183820152602001610bf4565b50505050905090810190601f168015610c395780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6060610ca9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610b749092919063ffffffff16565b80519091501561068757808060200190516020811015610cc857600080fd5b5051610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180610da9602a913960400191505060405180910390fdfe416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c65645361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122050397ee787fb1d58e3e903238c7d1718cd391327e4fcea9bc1beff8a1dd1012d64736f6c634300060c00330605581d02d2204a69e2cab0614ded273c14f6ed5507d3425b08ae058f277830550701190e0805581d027b02eda395acbcca1f278f117d8dc3881bf21ec746fb555f3be2bc6c0c01466aa6d003a45802194080038d712fe74b9ee69e7222ea2a85c0685b7df0374eadb16949ebd897c2463c6da405581e03c273b15c6227faa815818138aea127c617c45428feba3efe649162c2300c024616fd3a57bb08033997290701117991e651a2d16583488a31adfcc520f7b2b4b7ddf33e34d21c2303e376e6a774b34999207f4f5fef5fc6ee5f822ffb11b7ed3e10184561363f52a502199b5c030acccd5f9cca5be57556cc9c2549e2ab8c5429a802efc462cf6474ebbb63fcdd03d0eefaeed780a5b7a51a7be564762c33b48362d2a017e8e54431913c671fd26d0391fb34ca3d9cbd9a482f56693536807fd015222e6f11e65ef5db6a2d7e5c0095032709ad3b8548aefac7246f3c603048a585b67ad734d0defd49e3368e596af06603eb47188a845d4b12585d8d5af9f3ef0235fb71e9ea5bcaa12b293524864b1e9b03866c2e499fbaf810a7e793a79ec6ac6dca2f78233ec4f3b3337684d418104a1e031c742a4d485ce5012bffe5d8a33790b136662aad35beb4cdcf4b6826296886c5038a6235795c3038b9e710c3fe7851f2176c6736d2695426a203148a8e7f8f09c6031250f583531df799a3204a5c74feb047e9f5ea2d2740f495e3e7139e8b7a36f5031c98fe58e39f9e8588257a95eb7cafe45d62d2d2d3d456bc8c98e9260bf8a926033b1428e816015b5fc58bc1f3d4744611c03fd4c1d5f338e07995e3e7167c542003c875264b72cd11897bd83c44aaa67024ab99ed5f603a18e5da17ade9443e3c8b03afd3acc93e8e98695a22221940d3b4f66a65efe759b6e8bed9e206ee7aa835b103435813634a0fa56f1f60f99ad84120769a140aab27356082ecdc1fa8bf647d140219ffff03f5c8b9bdf9add94b76a6b6272a2fa758f4035b3fc28a0dcf0ea9ad35baa85ead03c9f36414bf3b2fd77a27e454a8e1ea418066774383cafbd337d56d74da1ce9910219ffff033b56e3a3037afb44e45e5c60d864ec872a8aa2925ad62857b93bed128144210203dfcf632496be870fba62591c47fc8fd46f8e6c3dca773e93e1de3b9079588401032b52fd5f54236907542544163625a958e70bc90bb0b2fe0e6bd2604a36d5515103cdf1865f8b17bf2a7049932ef6f957c7fa70459e25d80ee1e21ea6ff3b86db6c0329ef68e3744741b721256b494115168fe03aac80aa9901fc1a28f4994262be73034e44402869b6538dd9b32937b713a0c8d02f70fa2acda1d9fbd087c0f18998ee03e1b564eaddb0d4f18e1feeea68958b87a82c9dbd1621221be0f41d21077572f1032dabeda89f4dc03caadcb9b9b020f22b739027dd86695b110f02096b34074c5603a15f6d4fda6254cfb8ad7f4c2f6595f6f39647c2102bfce3b60a498534edebf2033a74f8cafb8d58343825f18ce8de235e474db32b86064cffe74c92c9044db7430367324118546699b4e35883aa35098c7a6ed78cfcec95aeb8711222dcc90a366103bbb2b015ec9f56c580260b06e20a45738a98cf6fd6693fbb6f1d14b634b5b28f0219ffff030b6061a6fc6c6cc0bf4e14182ac0f5ea60b3d7a0f934bff3827d57e8614f428f037e047dfc68610a02132d55cd94412e6bcc7dc41fc21c968fdeb48f02b5e875ee03e04b56ec145e3fd295edd187f2ff5904571442de6d88a272ce6ff69932e8128b03b61b179a6522694cb90a03ff84b3fda472f5cbe6e41b81aac6b6d4ab37d11bb103e8f72598afd1ac43823f7ae0abf50fc7bef7b9c9e4d81d655355b64aa20a10310219ffff035c74821ff95294f726e3d749ea74cd71e5d6d059b177f226c649058ea82c8f9603c2abcf67bdad3495dacaad0c6dc5332fc2f0ca16f81c6f5fad93552ba5ef5c1b03d53c593f12b08191895916410a3539afd4c69fac11d2aaf50593fe012e40828503208bc5f83513aa83b2e2bea32817b168bed8e5cdd9a9311273ae11a4c8b3866603266822228f0274397917c5f104c566926f748f95e65c37808e3cbfeaa359d57f03785600c880ac2bf37b1d61c803fda40dd1367d030ba0717b30b0592a161b561e03191f7ca9bf4a139cfc02caa12982237d164439fb143fe70c46484baf4de28be70359548768f8a3f1417ed61428ff3cf83ace8b77ada4c15b501f674837bf181fd503a25ecd0f04106e65150d7b1956901e1402f3ab5902c8767f8e7e29f0cf97893003f9f1685d6b3e2e8414e94289e1d5fd65e1a27b499b0bf69f0abc8226a278605f05581e03b3453c5ce7453e269eb1262fbad7551536fc515056369fa664c22ff7e00c014701754c2c6cc20005581e03507d65ac16798bf1de34521ff015e75d6c5662c3d57873b084ba8adb500412037a3a1fece4d5dc0f4135079e63f347d71943b2d5033ba22d27daa6337d2b7a070399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe908039fe4389872191b26f61e2a8851bec9ed9bf5ee2de57a2382ada5664634e0bd6c05581e033015aeb999e2687ffa89bb38fc55f802878880f294cc3ed284a5cecde007011bffffffffffffffff05581e030104fc139d9db03d83c1475b7d337028652bf240486c9ce49f69f23cb00c024623671e59104803046283f006e1543c546437bf93cc4386f53b02a75eda454ba4d3a00c2814204305581e038a380f6aedf0fe4d5765951afff1b826ae49d1c13454f64331bf7753d0040204582d363d3d373d3d3d363d733e88c9b0e3be6817973a6e629211e702d12c577f5af43d82803e903d91602b57fd5bf30058210341d2cf6719a68866f97facc6e7f704fdc9b538ab5f34058667859da9ae747e30410103abd7530cff75a5b56a00bd1174e69b4187f7709f71e649ea28093376af99306300582002224ad9176c2824876305ca50e68144f2080fe98a874b328c249b1574d761934101005820020decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341010058200213d2eb23e69b707943e8eabdfb040e8824e930d51f10f296cc80a1340e71074101021982010058210391eb3e163c3003ef492ebcb29cfab072cbcf1e9d054a87f364f38b59d1e8fb80410100582103960470c56a52d10e791b5723496c15dfa504b20c2d16f73d0cff48a1129735d0410100582002b1bd0ce058786fc4b2d1ba99ffc7e0140c3ff24f2f82fe5e512afa24bb341c410100582002f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4754718de76816d8000005820022af596ae906b29b93c521e70ce0cc2d4cfaf4d6792cb168d90ee353684831b41010219022203667c90f9ea8eda16ee5c1b73bb486d75939a322ee4c3427d98c9e2b8ff24593c01410a00582002e0bb7a62cda03e9a429bc9da8330c353986d2b5e829de6183825399f37a6a7410100582002227675fc7918a27494cb10689864ed64330a93f9debbe2e0bc16eb7ddab6234101021100582002c66d1259ad2eb341b3831e1f253a5de0b7ed19f8d8a41460925fef96b099a441010058200235acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b54e07300c13d49b8560f51bb30b45c22ca7cd08af80219042003b074ca3686ff72dac03ffbb0a83b5fb109e60dbd53a009ea87ba92e29b9e5968005820027c71998033d00736c1902456fdaf2cf24586fcdb80f1fdbbd85273b92c8dd341010058200261a9fd9c26e1af342cbf07f36fba50ce89078714b8e61a69ed7c5a84d1fc6f41010219402003c915ce5af1415859a5c4f17f64d060621f936775d74369c876ef67b20151a6f800582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b54a36caee7b277630890f8ef5f30bb712e9d15cd6b005820024f8c6a915ad7325265d39baddb07dd5f88271407aa104f641fee14c470434b410102184400582002722e0290e64b8f8a6e9557c6587f05f198936e63a9f2c1cf7fe785c75b054e410100582002b773cbb2d98f35e50979301553c3956cf7cb4bdc2fb1b4370c7015f55c9a3d4101021922000058200289e8fbbdb7983ffa2442fa600a841ab1c2d3a2a96c1a014f645b84be8cbe2b410100582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee354eb4af8a64070ef0dea6260e0bf2310748f014d88005820026ba7feb60662bec9a1372a32015939102db54a758c900ff70729fbb22ec548410100582002ba0cdfdfa52b296046c009bb71438ee02f06247af496e143cdb9a9879a54594101021903090219bfff05581e035046ac4ccfcb3a6327c01d8509f5c278ac4e31f6b31c3c678b31ab60a00f0147b3a23e19b63f04182d032c1b0ea9442cd5a20cb3b846e7d1b964eaa2994ec2f14576a05aa8127b65db40032d3911e656c8624cd977d3573b0cfabafe088fc8ec9b26eca8142d776b3b16b001410b05581e03b8197837785166317531b3e23606b0e3ef544830f088e609657cd387e004010219a7af03a970d4dc7d339d99cfb2d1c41d2ca2067741f33d7f60c31455f331478e7adddb03a39c2f6414a781ed043923fc14ffe0a8c6ef676adf9545ba714bf7990b29699d0340d282644ebedd728b8bb97f490e8063f690e5cd9b223f363b2feb74185175e903d74467da41599c94a2ecb554f41379c31d87dbc30b82c79eaa37fab410b7816a03b002bd9603371eba6d60bb3f0c5f635c971f64ef1fb6d8bbc462c6233432243f03fd13e72ceb4b7b747a095f7bd6503eba5253cddbfa59cb9d710578e823ed6f3e03d4044ed0281dbc692d43aca811faa4e7467a36d9bb42f2891cf06007003a9fdf03ecc52d40c3c14d796ea85bc8fe3bda18c1da018405b1b758585b6d4d2680776a03b7864721d5f4b97d637446a9aba70e66999940452a186c92f5daaa9ee3f81bb103f26210a8b2339693149883da6eff844ad2db512192decf176ba01479bcfa4a5b03a868614a02db7c4ada18898594d7706d1f0581da623dc42bc26e616949edcb41031fd3db450f2e3132cd1b2546611ffa93da6f2396b7635b107631eb3e0c9c8c0c039da43bd741dd79811b72fe04ca0dc00086a9b0af437b483e8761a2faf30ca088035b46861f85ab0b6987254802d9134df4118823e126f8d08b7c1b2772424e967e0219ffff03ebebcc739251197b3b08090de2633bfeb5bd4221efb91870847662763c94600103987768371db29e94aa640ff5b9ef72c02a0994242a21d90e0b61f62f434a8f260384f0f61fc450555e262ea002a34c5a5b4345fde8995dfc909773698c1d80ddaf03db80530326c8b110eec387541095c4161319c7f94ff3f71ee0a6575d26ce0a0d03817a7852f6f4f5f5bae01cf0f4b25cb492d00ef4094cdb9dff83c2fb91e489e003a6d9a92d454d00abcbf64216a6e6005241369df3386df97ef80d27822f006b6903e834aa44be98f95f02b9dd4dbfaa46568cdd22ea60d7984c790521eb23cb579a0395ea48ce4ed775c1bc29c0764b1c75dad24f38e779904b28c137ddb653647d7903a62561e7e3f6ddc51b58b7234c1443d08d0bdd8da1017e9b39d4a0dd1cbaf0650219ffff032ee506af43a09c644215d7b8bd0b803c00d91dfdee1c2a8a798122c9af4a2ca403090d5fb87b2fa47cd6a9dfb0eae881ec6aa3d2d001319cac38a9273b6b652c4d0313d6125a6335571541bd97d5783d7cfd3d01726fe97be52a300afbba11969731035f10de4befc24fc1e35ae7b8e01162d35c798efb196193f50adc502a318170cd03b5299f601ac46efce9c546ecc328bcd20dcac13e573167555b45644f8f8fba7103a8469fc48f12cc96d7c27d02954306a9d8fdd76b3486731119ddfab6b0057baa0370df288a76c55783b5569f8687001bd0449a2ef2da0cc424f84650db92cb23b203a54dbf198c4be22f8b9a38aecb3adbbc03245ed28558dce0f9eca18a3bbe5a0f036a4881f9c9b42bad53662e9a8b2bcabf765c61714762f4dc271785434e806cd5037b0f328fba72ccf793aa30af6189be6061b048e1405f2b908bef135ce0ed96ad03440c2a78a344676af47888fa8375a1722775ad61674703512785af3b610f73c90328ced3897adee179ad341917452da36918974f0896053f3ee71af6a6f95af5d0030cd40e9596e0f550050b116582332f067e7715257e3206e18e6180639c18c44403f344918b75490eb078def52117a83729f74967e82f4f0101e3099062f10371dc0219ffff03dcd03520ef6cdb737f6db64a695efa661cbcb74ced82a26e42f26cf6c85638ef0383991c0985445526f7db636600b8f78a026985b539aabbb1ef055d578bb3862003267160de4b41e2bccab1fa6bfca5f69c1907b1aac47d9e8bb712959b83ea659803630db0f1dbea36b455a71e2884e40ec35dbfbdecf276463452929e90cfb06eed0388a71c0bbd5dadf74626a2d151ee7fccc5c3eb14dbd4ac3432e1cdc57c38302d0391d2e9da8b6fab89dbb50aedbc342bb0cb5bc41021f0b27b0aa7aeece63fb73603019e89657469bdc8bef512636db8ee3b4b12acc37e79de856307dc32d70dbad0030cae5bd6c7e77dfd288e9037414471cf9f58c21f0d39403a27ecabc04d96f4cd03c45878a7563e8f1e4191e6ef602d0906d5d8194eb61d0eda80edb7e4ebcbe66c0392ccaaea3b8ae0fb2c6331685ced10fc7a1009208c95b2b9e1587626567da32b032a1e354862f7e4150917be07b280ecaf5ab380a8644d166cc42bced573ee6a35035aba5d5e0c306f567c2a5c9b5ffd981c7b1e70b25e6e533680391ffe537653dd03ace39c4c643041d0e403ae90c99c716da7127a794db79eb3c4beacae7067840503e01b910cdd8cc71d9bd4d8bca1a3978864d2bd5e5cf20379ecbdc6f74f0623b3037252fa630e930efa660273a206f31ab6b30820c6a325ba780cf96cac00a292ac038f97518895cd81089880ce0327c010f0222a1e7c4f3e9e77981ca00f12e6c2e7030c5f217c7f08deb218f5692eb16a10f98fdeb6c58d3f2cebaa5f93d2cde7495b038b3198e9d78679715316573baa8a1a7bf597311e13f9ac10503c05e5993b213203102a29322afed7dbb5f58dc25d10258efdeefa487544b6ae95b8e35ef649190903c537256a0de3f9345d9f2d7380f005c8cddfcc5d505c739a82565f565c1f058703a7c93f278f89b5dd6c2600d30eda6c73f57f49ea1378995f8e593b3235c313670363d98dad74ef32af140cbfe88ab35ff9c6be3e002c40c6f2ca018493eac86611036d4b0216408ccb1cc79c65dca0b5d589d6203ed0b1a964d6d71dc90f507eb22b0303a2323f66d2194c9718f2aa88f6b66b195e10b30471285c2aabef3cf66e548505581e03caa53edf3d335c2ac7964baa6c360a0077493fe5b7b2d001ab3294e1c0040205581e03c0d6ee25d28cb5524b2120882bac75e33338cc219e0f8de7f16c71e5d008470a169aa312d8cf05581e03315ec24e4b7cb3fa376e722b7c43d1cc7d48b52b996bfb2528911201600c01470319ec62707a1d05581e03b734dea6e9fec85e433c6a819172889acc47adf440cfba23a676bfd2b0040105581e038b469d9f0cb08419e6110b8b5bf15a9167030ce7a1ef83b7c1f12935300c02472edb3642aa447005581e03d8eba7b0ad53ab7ccaf9c725202c193b2014b2f83e091f0c4a30b75100040103899a45eceb0b06e2a5ba52b91ff0b88a20dcaec43325f13a2a95cfd21b95afcd05581e030a0c60466fc3fb70f6e69867efe05b9a7bc30a4a1f3224fee53257e2c0040104590bf9608060405234801561001057600080fd5b50600436106100b45760003560e01c8063accf9a6011610071578063accf9a601461018d578063d7704bae146101a0578063d99bc80e146101c1578063e172d3a1146101d4578063e3176bd5146101e7578063f2fde38b146101f057600080fd5b80633366ff72146100b95780633d0f963e146100ce57806364431a27146100e1578063715018a61461014d5780638da5cb5b1461015557806393e59dc11461017a575b600080fd5b6100cc6100c7366004610968565b610203565b005b6100cc6100dc3660046109bc565b610329565b6067546101149067ffffffffffffffff80821691600160401b8104821691600160801b8204811691600160c01b90041684565b6040805167ffffffffffffffff958616815293851660208501529184169183019190915290911660608201526080015b60405180910390f35b6100cc610393565b6033546001600160a01b03165b6040516001600160a01b039091168152602001610144565b606654610162906001600160a01b031681565b6100cc61019b366004610968565b6103a7565b6101b36101ae3660046109ec565b6103c1565b604051908152602001610144565b6100cc6101cf3660046109ec565b6103d7565b6101b36101e2366004610a1b565b6104d4565b6101b360655481565b6100cc6101fe3660046109bc565b61059c565b600054610100900460ff16158080156102235750600054600160ff909116105b8061023d5750303b15801561023d575060005460ff166001145b6102a55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156102c8576000805461ff0019166101001790555b6102d0610615565b6102dc85858585610644565b8015610322576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b61033161086f565b606680546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f22d1c35fe072d2e42c3c8f9bd4a0d34aa84a0101d020a62517b33fdb3174e5f791015b60405180910390a15050565b61039b61086f565b6103a560006108c9565b565b6103af61086f565b6103bb84848484610644565b50505050565b6000606554826103d19190610ae2565b92915050565b6066546001600160a01b031663efc78401336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561042d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104519190610b01565b6104965760405162461bcd60e51b81526020600482015260166024820152752737ba103bb434ba32b634b9ba32b21039b2b73232b960511b604482015260640161029c565b606580549082905560408051828152602081018490527f230bc8094d790356a078817d156f95cc1068e9ff6485359f6a986170f567b63b9101610387565b606754815160009167ffffffffffffffff80821692600160801b8304821692600160c01b900490911690839015610593576000805b87518110156105585787818151811061052457610524610b23565b01602001516001600160f81b03191615610546578161054281610b39565b9250505b8061055081610b39565b915050610509565b50838188516105679190610b52565b6105719190610ae2565b61057b8483610ae2565b6105859190610b65565b61058f9083610b65565b9150505b95945050505050565b6105a461086f565b6001600160a01b0381166106095760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161029c565b610612816108c9565b50565b600054610100900460ff1661063c5760405162461bcd60e51b815260040161029c90610b78565b6103a561091b565b60008467ffffffffffffffff161161068e5760405162461bcd60e51b815260206004820152600d60248201526c7478476173206973207a65726f60981b604482015260640161029c565b60008267ffffffffffffffff16116106da5760405162461bcd60e51b815260206004820152600f60248201526e7a65726f476173206973207a65726f60881b604482015260640161029c565b60008167ffffffffffffffff16116107295760405162461bcd60e51b81526020600482015260126024820152716e6f6e5a65726f476173206973207a65726f60701b604482015260640161029c565b8367ffffffffffffffff168367ffffffffffffffff161161079d5760405162461bcd60e51b815260206004820152602860248201527f7478476173436f6e74726163744372656174696f6e206973206c657373207468604482015267616e20747847617360c01b606482015260840161029c565b604080516080808201835267ffffffffffffffff87811680845287821660208086018290528884168688018190529388166060968701819052606780546fffffffffffffffffffffffffffffffff19168517600160401b8502176fffffffffffffffffffffffffffffffff16600160801b87026001600160c01b031617600160c01b830217905587519384529083019190915294810191909152918201929092527f92d8a3003262a4b8ea0d2818ec49eb874ebb871df18bdaf071a0c577fdbd6854910160405180910390a150505050565b6033546001600160a01b031633146103a55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166109425760405162461bcd60e51b815260040161029c90610b78565b6103a5336108c9565b803567ffffffffffffffff8116811461096357600080fd5b919050565b6000806000806080858703121561097e57600080fd5b6109878561094b565b93506109956020860161094b565b92506109a36040860161094b565b91506109b16060860161094b565b905092959194509250565b6000602082840312156109ce57600080fd5b81356001600160a01b03811681146109e557600080fd5b9392505050565b6000602082840312156109fe57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215610a2d57600080fd5b813567ffffffffffffffff80821115610a4557600080fd5b818401915084601f830112610a5957600080fd5b813581811115610a6b57610a6b610a05565b604051601f8201601f19908116603f01168101908382118183101715610a9357610a93610a05565b81604052828152876020848701011115610aac57600080fd5b826020860160208301376000928101602001929092525095945050505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610afc57610afc610acc565b500290565b600060208284031215610b1357600080fd5b815180151581146109e557600080fd5b634e487b7160e01b600052603260045260246000fd5b600060018201610b4b57610b4b610acc565b5060010190565b818103818111156103d1576103d1610acc565b808201808211156103d1576103d1610acc565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220a18f9c44358244a978de0615973980fdba649221e1efbe4a718ebccdcb95481a64736f6c6343000810003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341ff05581d02e2eaae8547ce8bc061fb74d12e0772f5747817c2cc64cda8c149a4880701190bf905581d029784807abf2dd5c4a0a218c33e77c2eeb43d067ff4f593e6cf1124da040205581d021cc0c95f3ffecf6d18525d75eaa8bb32cf455eb6e365a6e41ee0c256040203647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d035485a952b56c097ad744f45a0246568a89b2ab61847068f77b88c559436aac0b05581d02e64a7f23b1784c316bb8eda751e7b4c3a60aa250b7c4ed7ab301563607011bffffffffffffffff021911240219ba4b03b5fc10c88a4789f9b832d8e8bdae1447a313eb45262eaec58dee0b44016c80a703b07337d8d357fff72846b97db0b05dc8b72f1d6766103ea8af2340f872f4b2430219ffff03a3eff6bfe97cb23b920e013e5e74c5d83ab57f2f4b03d558a4cde426b1737a1403ddfa7e51f0d5386dd4230cf1427371fffb068d106d9377f23fd410c72fe2d89603a85d9ee34320b78aaed0034fc775b180eb321503097feeada1bdeb8d787e65d803490737a70fc678306d824d1fc3c8dc4164ffe93262cf96597f499451437598e303215b481d8f56edddc045a433bd8e3e9804779a8c57288bd44770fd0b4e972a9503b43d079df8148eda2a9c6fb5ab85b52568097f57e38424f7346e331996f27107038b89f46da92ffd364bac8363880a9982b1768f34c28ca48ea1b83a0f6204364b03d41eb0182268ab11ba3c63c09c8fd61216783881bbd5864aec2d84b6d43f237c03f02fc3b49e4f7ca5b57c1d6d4b79e58c927c59b1914c6cb346b648bc7bd7e2b0031ca5382cb4d10607a19047a1916e5409644520f47b53a875a2760730eb008988030d6b3901ccc541b3011ebd3915f64906ebd61f427dcdc75f73e1fc1082138d9803076b117cae93c819f3ebab4f6893e2df1a55c22b289592e2281ecceb6c681e920305288deb35cc4e142608475ec7592c5f13e63018bde9e93e1b6977b5413c859303d154ff577bb1b29801ed4e6eeb5f2c621866b871fe4f54d2f10cf6344b661b120317e2559544167cfde28379a2d10b97ce48e33a9b0aa3d79d1c91508dd6cb8a930219ffff03aa2574b1d232f755a5e1d683d73b985bdfd5e40f2d1e729a8d889ff93daaffce032538d8575966c04dfb821bfd19b67eef4cc2ad29beeebd5bb3f117e976b4053003dd2db7eaf257f47df77e588a1128ed18180a9447d2185b32b6a1805fd88b9f69038982e3b416e5c11f46860f77f4a7b07f8824ddde912ff822bc3b175ffafdb281035fb163d3dde504d8948c6253ecd66ddefbc1ea7f2856c409a9effc4c352bac9b0341bd00342ba832eee37ff203557078c0109296fd9164272912493bc2121a990003815995b1accab47cbe200091794ca75aed39b4c4d7af77130dde1c4963d4450b03884d85e50879b4f81294410e52d76349f5e140b4660caf28a2fcf2866e5a16800371af6ba61229a1c5bdaa384640ca4bd03e14f51a2ce67c4410e39fcc197e7d410219ffff038ed66dae919ef342e7441d395dcffa8aeccfc386094e4c1afd3b68a6b8fbfe350326682871f18a88a95a9b1e43f8a0b7c9a53a10efe67d5f68714eeaa6d2215a000341e147e1e83f52840e98ab8d8bcbe737ab4c9ab478fd14993f01653821d8d886036021e40774fdb9669283938c2d804375b2b0ec999e95cc127565decf03f75131037fa99edac2ce298ba0844e086c74c4735d5a78a05f53f29bd4882ab656eb066503c91016a26a466b380e0091605757cca4b24310f7261a932f660a537c9f4d667503d79aa97a5092329bb643cb066d59b89d241993e8db6d943582b1ae85d03b633f0219ffff03347140ca23785fa94e1124ca1c0513f661d6240f7d74c6c35ef762970e32616b0369fa00856017ecd00c4d115c8ffbd32f030a861575086f135ff0d8713296a78b03c44789b5f001af0f839fb423aa9c6161be9629cd6ede5e70d29d12aabdb1869e0365720e8f3e802691de51d40907ba0d3100c25224e6e7fdcf4f657f2819ada644038d5038a2369da5a84187f64808d4a2fffd118860a2faa2fba9bf7067cb67533003c05addfb0166db6c410c890e2208f22b9fe7d14ae3dd3fd9d3a86da66d040740039fbaeba1059f2685b3f7b3c2bd4a34dda738687e63ba46a4920ffa6c36a57211037866a3f287143f6c98e1a221f54fdfbb550ccf82628c550703ce0d0b9a674e1903739aa60a0687507a248bfde2eba6da10e946613798ded291f3bdb434b24168fa032d810aa482de6cd1aeef09f08d3f6de046c950311e8faa34e26e29dc27cb1bcd03d8c4f036bb1bb861aa2e0b47a84980b4f0cfab5dfd68bf5839bed8b6a8dfa21a039fe010c022fd8c96e6304911f519f9c3eca61eb53aecbb7cfb31a73fa30846040338a6ed3c1f3f27f8848745dfab709bb03ad24d9bcdaa1aefaa11c13c42120fc603dda2a4d8182eaa35fe4ed3d83a68d4d99650be9a5aef7116eaab6ccc2c024881032d959cd4baf5265e58ed8e0d25aa481c403c53979cda7ba3490c814385cee7460380018067e06883da48ec6279535c3d019bd2a839b0b8b2ff141048604bfb097a03cd101f1215baa3f3e93e229025d0f7011bcc6a80c556e98d3f665efa3a48eb2803d7c0ab03be8466df18fc6da94e4b71e33711c7e8c6d520444882b31adb90c0f2030cec370b26b35cd30586f1ada177252501c9c56992b86495c7a9964d6f65f93303c09335110218766009f89af7aadaf6190c635318db65c59a35076b14335e296a0323421f3a37d861e8cb5c3905e20952005d6c5c924afb925a057589f593db46f7033d2d5a0f50dceb937bd871289519d809b2a35a6c381de34edda9ab130f2630930336255059ef171432b5114fe4644abd1a5ce75f27e87921b5c26b8ac2de0d73eb03d71f9475d8314f835939a96da18e6c03b7e8fab460f8b2512f7cb6e9b797e25a037369f6266b1a2b778e200b83c34c340eac0e1b5b9670abe5d3952d998b76d2b203cefd9ac8994f771b87865852d2781feaf21dbb577be7f012263fae58dc1cd1660358ba23cde735a3400c2bc2d6f94a5e434688c7fe6e4469626d4758f69348257a03238f6e04b091e7e266f65c2891b2e212005c5c09d93dac2abbdc00c93a58fcea034157007db9edf6b2018c31972706241d85cc858fda788b89718c91ef41231fab05581e0388e82c069ec4163bad44d5bb19fac82b06cba461fb56d1b57af5442ef00c02473c312411b5b029031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03a9ba9b73f66f88c18557d1ae3ae45967a5fc942bf69d1f2f7d0331fa2007011bffffffffffffffff05581e034d24dfcacfcb78ce58f034760f0bc07ee272864787f5a5b70ee5531b000c034714daaff1d6137404592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032032e2bc0c0ff22609eac8f10e1c8736f3e780dcb85055451e7ac674e2667ce4b570058210347362d02ef88b4dd52c360680fb50809df27bac8fa619920f09a33bb78e13f9041010058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56304828d03d8b0467c8d00058210376f925486c6d0430e1ee8e5bdb91b87fe802bea0b6a1bea169a2d14165fbaf604828d03d8b0467c4e800582103e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af05032c2eadb9784570b0cfd66eb071b69800058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5820eef3e9f3869b1e13117466f391971c328b5060b47e927833b4e6667db225a0a9005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a85003d8018425a38bb4581908fd840a25c402184400582103f6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70410100582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5dc30000000000004917091d8cb8e97c000000000000182a626ec68913370058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f545e37718cedad7cc99cc220c417f5095573b510c60218480219b45705581d028ef96d3bcde8bef9664f15f615dabc520b9a68f5eb9faf224b64231e0701192c1d05581d029317b7eda48783e7ea68816fcfdf5003adb8d219340cb76312cd8e8204020219024005581e032133c674facf913192ce09ef0a3494c167de23f32219dacbcf4bac81500c06474521278edfc8b802190d9503da0eaec77da6e03a4d864abc7cad0ff1e3e39ed24273b516c0b5e9ad23ec92c903e0ad68421945eb3dc72556b5f61c86804689f27d02240f19591526739593924503ccfdff0ab98014cd12727c6c420f9505c1342baf489b957358a30d5665d513e7031b8c15b3ead27c9f6bb46b5f70d6fb78abf7bf1c4d129aada24e7f4906795157037da7f4847619173f381ed62350577d4ae2c6f845c24862a82616fb94ce91448e035675098321e151b9111f0edcc03296ee1c08416e446135ccce54bf44d7f85e9b03a28d8b0129373c241d721cf01d61626144d5fb817142bc2c1cd3303b2d87d95203763b6c0afb46ce43dcc86a23686e2cf68c5f2087089854c17b48c67e85d6c908030e08814b5b59b21d3dbf7d5bb31c4b239c605c6ed24d8be67e3a62fb583726cd0395ff78199f44e2021de3eb3516bd6d33b41b32c174064d66e08a8aa23245b0e3036af080f242fbb24eaf3bcac183e0ed0e096090cf84425fd2343da57626b6aac503f1c84ead4323f648f6ba2671f24e91bed7d0bf4c3da636cae199b971105346860219ffff0302e92115130deb5ea08777637d47960e41fb4323b4f5d8a436f4b7524adb00fc0372304e1e345a3dfed41b8854e38d1daab6c193946563c979b609758856d10f14032ad5ba585f48b7d8665142ed2eaa9b05f5d9b35bb50bb8e7d5985e9484253955039c0c76a1219ceaf2482e2d094dfa89fe6055d17a57f8ebea3e29f03e2de8a6f503c980ba02e9ce2977fcc9354124065f4a80e0d8c28118e93555fd7e741ab1a59c03dbae2e156bcfcb004a9b47d281849257fc90b33040b91a0e09c4bb804e3e2a30033b038697250ff8390e701c77e157a415a53ba160fd6505df55ff877a320eaf5103e612893dbd2c94fcbb54d3bbb80ac72facb6505a415b7c11a753877e9e58f63803860bb33ae851efd418603e4e8f60aa1b7dcb20263a0ab69c62b1906750fa721003630612611ec09accaf1540b60d11fd6cc77b4913005131456f2178d3e041d9d1033c35b352359cbb8124797996287c5fa657cd55468d6d3c42d37c5d75a8b4518503e0315def3e0bf0e794f4f174618583335c1d6debaff757aa205faed6fc4b13a50300fc31bddce836be804d2dc17f63aa45e4ec9a3a759b8a16f184f7ef26d5f0ad038bd06b42c8514022a5cf18170c704c28f44a4e1c9f44b99e735f2b5a07f8805c0219ffff03065fab6eac1eb3fabfa9e61583b5a51c82d37cd6daf862ea4e8e39ee5050a53903aafc987c347237b73ae7d654b0b9de0691ea54d02af13e42a998b58ed82490d50390647b78e45e365f00cb94667350d79464d547ee78f2c70094d0cd4387438e7b03d1f1b4213e5c03560148affe1f1a9ac4c03dc8b80f25be30d085cd3fbee4930d0219ffff03755102fad36b685f02f3c5100a76f9f47afd1d4e60492fd7660a0467f7340002030c1b460abab4d01e4a7d8939ef06df9f0e2e613301ea4ed9d95b845eb44ea6a803335053f73bc938117b775a0136658cf035e3411c6e38450f824230f01ba90bb103ea106228c81b6045efe42c3cdb022567aef9103aad6fb4a2ca9de6ba9d54f54b0330b6abb80714c3fc6904b6b77c1629fed06f952ecee12ea643da91341c0e0ca70387b5892fc13677f71e7f7d249a9fc2c9947206ade8d2df596a12cb39d6b85638038e7560efce180bb51d2956bdf6c2a4faa4d1c712d1129fca701277658d6cad8203c52552c46bd3daaff3369cedbfb91565480675f13fa0402f219c117098e9e8ce03298486b6c49fb98830dfaa2e0b64d2f0f9ce150a62bbfd14d8facc9fcb79de0a03607d67219d4535a6a2fa2d166a262ee8b77668d4415e2536c7814a1f4f99ba73038598405e10aed42e1b786072f0034f3027acd5f4b13e07010655cf81438a2f5503162c5a279817aed6e83b224dde1684e0b5ad13352928eb7fa512f4ab6b0040610384b6c7296d58bc0347544598873dd745edda9ba38936057538cfb27207e1a377030edc528b89b3cb6e7b9e9a4fd594c6bfd02662f1189361cf570ba26d14de432c037cb6eba36f163648a9c013420a25dfd214e44fc319bf031f85858ab29b3b0e3e034ab25d13d8ef8627034e1a113f190424328e6e90b98a776eb10d3b4cfff96269032bd5f29e448a46c7fa0062d5fb2a861a0f2d90562027bb3cdeef25c26d2348db033ef812091d2e2dcee9b5d696d5d43f0d727daf018847790e5a81d4ec3ff56688034f01b63e6fa6a14d9be28e5629f4c1e1aed636059772d17d5b1da8fe894a646c03f290af5aa02274aa6293d0fd0c0bb44ac5a2c6cebcf95388e414145c54ea27e2030c297b0e96129b17955ba023fed0d98b5fab0ed6903b6f031f9336db6080f53d03f324b00acbdbb738be72d81fa14dbaaec1a3362e9e5d1b778c54d2f453b3c2e905581d02c1fcc9126dbf63d6753bafe196c5fd1415e11cb9888ddbe2fd1b70320c174707e777c80c760705581d026f21cb9a4b8844e6185de98185a570073202dab32eb4bd54747cb86f040105581d0256887afb2bd6dddb976f357787b238b612cfbb8c7fe33654e31992dc0c01470482f890d1a00005581d02690fc5f2ff1db3d14889096ced20236052ef787535538cbfca945d0d0c034707e10705f2c88f0219010d030dfa5d2934a9190f6dfad5cd01607c32ebb55067afdae3a4c515346027458e6f03f3aef328ed5d787d7d40a4484fc18473b73c0123e27e7c7e2a582eaa41cd86e90313a5715ed4a2abb42a870a44ca5ff3d41bc3f07fb7abf166f99bd66365fcc81005581e03ceecb79eddb2434174bb8d111f25db2a6ecd96c6c5f3e410419adbf5200c01461319718a500003f7b092b42e129d97dada0852dc024705f6824acf348045acbd2c24ff8ca31f3803647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d0373c5dec0c39df458200472668fadaba3ba732e214eb245cb137876ede47c718605581e0383500f772389bd644f4bcd4dd81941b932a1f885fae2af9ffcfeedcb3007011bffffffffffffffff0365fb98c778fb2c414c4582f807b7dfa394fa8697e8a2528a9fae65685e621c5903337c29fd9976d67b66b28034c1414c04861ce13b19a267c6e01d66f2cdb6bfba030876c215ec4b1a6fbf4faacbbbad9973604948db27dbee77454d2be4ff6588f005581e0398f77803a0c3584dbbae3d60ac646478a060d2b1d9b1f120b46b0c445007011bffffffffffffffff021993db0352acf89afaa4a48c0d1da23dde69f0c99ecd21ad756bc91e562900c1706a9f2403a7861f21fa2b648e9fde13cc274c65b397ec0a9b40e07eb0035ad92962269c9a03c2ca1ef7cc9474b1829f55558abb523ea6fa4a476801bfbce3b3bbca337a785103777fbef3679369a651a341a4c7972c27f09fc2cfb3772fef1e268fb9ebf53cf9030a4a0ef257486710bbc59a507ea9cf7504184498bd793f475e10e20c2643472f0219ffff032412f92e76b2ad2580640e197d09ed465d43b77b25cc3d34aef35bd5d619737f03793491899e4611ce9e4a9d95efbca3bb93d4e903a6b05a9f96a3b4cd66ffa09303983f2298383bacd95fb5870cede79abc450e0ab1cbac17c23e7bf109e7941d9303690ce784e2f92f7d4ad7544336bdaed7745f43f808bbda2ee1ce5b9cbd17b21903dd438ba17a8d4c6b4b0db688517973cd8ed0f803cd38aad03fc571aa8eee93b3036b39c94de6a538e553543d7c0870097540dd9a463f1d8b7c5c6fdb056f29187b03a5539734d331fff5fc305a990df143b27e467216f2e30b665a91c3062c511bfa0365e5a4205649020e03015a206d253ff07275f8270740acbfe5923ee0f7c0299e031c168112a6acf02546a21b0f7eb5ba64c35a604d7cd336524d25f1e95f0cdc5503710c2585bd808fb8f4258ac19dc7f0557cd3e7f88828921adae93860f0831036036cf8560e30210f95542b3f5254fd425160433279ecc2ffae60310c55d67791cf0219ffff031d5a9c14a236647c82a9ea97da707fce3caf8b23a2f15432a58614440a652ec503b1b3a2d1c16a7b02cab7f91ccb427f09574b53b365a224eed84dc18d6f3db3a80315f060c449f66ceb7ba5105b0aff83ff8aebed76b0be723a0163ce01f42536ca037e254bade6de9c88c14c14dca04c9b456ec873da9eacf5e4c6c66fa2dfe9a17d03fa64bb2efabd77df8d737f31520ace5caadedd54b8994f7fc1085d3fb6b8cf3203249ca8ba32a2bd3b71541588d584c2c4647208c32a1392df2cf56757b2077b7b03f86dd7a7ca5d4d3f3a98d34507b9a87f71b31f0b2d8ddad5b77308341dfd0071032c9bb22299ab67d7e8172a55cc9945f9c03e647f9c980df2485cc847bbeb1c330307fa6af4ef4000328cc71ee83d73066c2fe0a8ee98da3ba760ba2af39331f4010219ffff0354304dde54fe9e4fb6ae5d5e2ada4c5a68e97f89d1deba1a1e14450be7c5ad780219ffff03c7d8eff6cfd025636d617cf38a47cfbb3f29c5ed38203a10a45c70223c5020d503ed285e12ce727ce8c46d3b84f3cbb1a61481bcbb804c937fd4ac87f9a38caa870326ebfa0e8148341e5fe7801b9c4de59fcf5e56da73b802bebe041c9d733cb0c20359afadbd726673f234baebc14e0b6b43e434ebd8343b0b42f8ea15b9b2ec7db9030946535bfef4fbf79d5ea9790a4addfe92af5b1cf810951bfc755f3be298c2060366340967545433729a72c22dfb1fe9209b0868896c9871d52521754b895ebb2203addd203f8e606720e71376ac5a7efa8c1857dce12575c668fde627f31b7016df03b3130f1d1591e8bc6fd608b0ae8b34bc81b1c9ccbc7adeb7986f44f73f86fec2036a8a6f06c35e55205e7306c4ce27381f62e1669a765675dfd7315a4d2931e32d032808c718f74cef521b0dcdd7507d67b1a1485ce25537aba4e9c505402fb07b2b03557117052ace2f1f6cc7447dd982cfcb3e534eca69699d8e3b787bb08830980f0312c2de62caf59f522b2a8af1b3c189e3c673eec9429d09525a310aee63d6257d0307bb550239711ec9d30867f5c7cef807f356ca9f725a0a60c3b48bd17ec5a05103d06054b9ffa81f02dd3da300afefe3097d55ffa0074fe4e4cd448c563b27c234031d592ae6b8af75324a2c0ada6043ea0e4e6083ae72a916075ffca716b8e7655003e93e013a5f3795fefe74d407d1d56b1cdc37e1d2f425b42c2218646246c576f503394afe5990b88a46542bd9c87bcc43993c5a0ef3c9dc3259351a7996fe5436c1034f632ef803cf0046b586ba8bbf3adadfe1415c8523856bc0c6cd6c355710fd3403de06e877679e9f94059c00a4b4c07b2c9da2d85a0fbf6c1563e38e526288a2c105581e038cd2179a696037c0b231f3e93286b20abc9b2e9ea89f7181f9439193a00c014718c90338d67780030c3c8c7121ee34d6b5bcc968f5ac6bb5d0b2d38056f3bb0d8239a1b33145de440459089e60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e4b32c109fd08ccf9742c7e09ffa8cda2bad608f5379698a7c1f93a339aee46b64736f6c634300081000330058200237a976fa961f5921fd19f2b03c925c725d77b20ce8f790c19709c03de4d81454f8b1378579659d8f7ee5f3c929c2f3e332e41fd6005820020decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5634101021902040058210354a83ed9988f79f6038d4c7a7dadbad8af32f4ad6df893e0e5807a1b1944ff90546ea73e05adc79974b931123675ea8f78ffdacdf0005821032df0bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d481054eb803eb3f501998126bf37bb823646ed3d59d07200582002a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d00546774bcbd5cecef1336b5300fb5186a12ddd8b36700582002b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d541fcbe079c4bbab37406dab7dfd35acae37d5c55d02182400582103ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c7054798576400f7d662961ba15c6b3f3d813447a26a60058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf604101021909ac05581d02a49cced2b3d389c60795952cd3fd17641be3297768193b7199a17202070119089e03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581d02a08cc3f2f107bce0f3d72638fbe3af08e9ac0fec6955ca1546564cd807011bffffffffffffffff05581d02101958c2313651078fba8b8981ffebe3b031e9c16e1273da2f32f70904040219140203b88c6c83cf084bc173735eb7b89075bbf65e859088dfab33dfdf5ade671e2afa030c5e4ec875534f5168dd5953bd9f8709e5737e2ec0104d0a5525f6f7114924d005581e037cc8234a0dad8a59f2757fb462321ae3b70531c456c39aa17adcb9fde00c034738ba0b223d1545035c33adcab33da2bfb6389bca8c408b207d1bc0e503a995526272e79739b23d95036fb0f2384aba870b36aea8edaffb1715575de7e6390a75311e2ff84d7c086f420380cc5edf7ea4e2f27fffcd0d9c8a8b2b3fbf220a5712f7ccc1fca8ffac7ad0a805581e030bb35a9ce7c3c20bdf58cf5922d4b74a2c4a74c645c2d3944d0e1f374007011bffffffffffffffff021979ca032420f0f6a9856d1d63cd1c917a4bea7ae8b8a22a4d2830efab826d4770a7dd5f0331d749d2e2e177ad795901ea54ff2e7d0259e48bc88dd60115dc0c0c96ea8411039eec6007c13b996a4404f6bb1db47a7d3e08f68a4ba5cae3f1e0c0ba26f7373103a256dbb3ff72bd0cb1920682de4f214df8e45288e8a1aa61b7e080264bb9a2f203cb5cdf5a0bfb23e82ebfad09f263b1e2b45b80faa4b62d811fcc0b962f2a0f03036c4f78ba0afed65063777f3f6f6f9855d1a40e29a0ae6267bd10f40a310910660344fc5eb0d6702c723334948a755f033021c5b202ac476d523a418a7ffdbd5432032bfcba858a12698db1f727614da8be6c644968b5ff0b4a05ad4ee0b4e047b68903d6c904df8c9d58c2fb1e80d1e4605e2ad963d0611b961445b451163b36f675c7031ed79432f72febcc44eca37c9f4febc6414f79621b845c478e6e1314f6dfddb4034c0ba4cc66d953f2257e191b15f8d48db1797eac99b56b73b990f7afff7c2feb0219ffff03fe2f3df6f39f5532c05d1bdde1b9595242a7ffd247d71ee84dabb5f7a539166303eb815c2d9edf3bc951abf9431134eec58ca50e473b9be5359a49ecb85945aa750349ea28114e4a90c9e4640e6993070c29eb8ede7be13bacc828a7599b5fc24b2203efbd11a07745a13ae8187dd17b924d81196c05d6fcab890c95daeddd05c809ce038915bdfa03dfbc487451c780b7e29584f5462bccd69f8e0c539e353a442742850326cbdfe87945d968bc1a6b59fca35bff680dfa94a3786d8dde10d2740f7fc9cf03e2330d0b92712151e11226194badb2437c6e596c72fcb81bd0cc747127b15ab003ceb6dcfe4003c3ea85b4e82efc9cc46bc6035c77a63101883b6d6749c5b3a46d03846ce85c8fc802262784ca9dc57072fa376b2f494f76f0ed68ccc838c399636c036bae46078c3fc45745527af81c137d3d683ba2313e6e07162d8da55d6711782f0325213fa99a0463754a82959026b1bf6c8747bdd0a349ba850b09ee9e1c31fdcc03337e75ac7b833a2448caf4a295c5b3c35b6052adbefc408c27da1ce48b295d670219ffff03ae8aa9ec78e12fd01aa008bad4cea72ecb761a064999220e184ed31d94d9404d037e6a38bd6967809e5939d9c5f21bed01381ae2c2e13f7fe3baad186c8b19d76203d7dcea9360d4c59b93cd2704f0e729ac9ed2e8bb355fa952fb6f6ee7bc02e4fb0307ed3441a71113375515829e401b4c76013450ebb941dfb9d8c853008877cfff03b23f1b3bcc9f11733744b886cd067763dd25f46e0d19d59eedb5f771ab8ce8ad0219ffff03f4cfb4538922e47150ae1f2816844222613c29145d28afacdbedf3be2de97c46031e02502a6496aadb5b09df037d78c70ac665b8e7221a55579eded7cdde27cc3203e6c861bdccb6fab105104872751181658d8388660a3fa204757c6ed668f29ee003181e6a1cf096b96a2845b545a655ee7b43cd078c4915c4fa4915f166556aaa2003448681b409de7b2f80ee58d8cefd24d240eaca0010d6c4f7b57561c19d71f9c203c4ad4ecd71c30dd73385dbe027a6e77a8be2f692a0b07ce6ab9a45c768ce6ec80340c19bd0c63858e1bf4cd0640154e90828b1cc23d3b91a72c09662e633017ea80313889eab996c9f8ac38508fae8ae1d06e128cf36de71ed286f15048b5d2e853d037ca86bbbe7600dd6215cbe6531655765140a470c14e082db9fcd64eec4c10d6903428ee69a5764988626eedc9913aa743c72d3fbd1ff8b0e3ea552dac9e7c10062032f540c2f7ef07a501e319241273e3542bc61cf220d0e58d5ceadbd108307c5f403e7dbb215358e42713166caea16df4869ab1ccd00c8af93a968df44877df805630300dd94cc9d45efb8cd10e81dbff31d11ffe4c85db17e810ae9283269ab1fafc0030fda20cfadfe9ae8412e281d555b318f617a29ce73377e6168ecbef58d1d69e705581e030d5f5ae9bd8508282d1794d056137a05cbb8ee3692072873cd059f9bc00c0e4724df8a958780b003e354988cdf4a05cb9045a69151e398906cf2df10956c8a043b01c693e8a67ec5037dd0dc9873eb602bf80ce7df9fb0ec1e794346957525766927e5fb28caf5a78305581e0372afd661e916aea2c9662942aea0c48a268d22cc16bff5f36e5a6267e00c0247026ecaf964c0000359f9d4c8d806d38e3b7d58d25c6d71e0512b95948cfeebb0080d075f1d9670f505581e03b87211af8aff260ded1c76211da80e8c05a2f8c1ecafa891c5e4ba7190040205581e0369c6e80714bd4cb4e99d4559e4ca1ae79201ba8d875966abc9343b2e90084711c37937e0800005581e03adb1781074b137708516e8367d9a2869acd89a192d231859fa9e6bc1600c0646ace6eaf262680336fc966639f864387c269284248d5557042be1db6e82db4f61e9937656a097a905581e03a4eb5c30767340226fe2359f133a2daef28d9e7c8e8290d193d5dd78a00c0a475c1aca34fde321032d2b8272001ab0b9a7e29600fd09a846d149172b4a83cd836f77bb97f38270d10219f47f03c72a5b90e1ec03a9a10c59d0bf17ca205e47dba4a3ba1d2d7828457bf963d874030cc31382e5158d1464ef44216c3e5c715e8822d9e013c46b7722b1c67aa25f05034ae3dd75566fdb7e57b8304198f0f859c8760a80537aca0c15889335b2c90d6d03f07d83714675d2c8fa25cce851e33dec548ac66aba714fc27ec507756fc20a7703acfed811db202ee85e18dfcb1af9e620d1c88c9965e293948d1116659f90280a03acd9cc68edc115b6e5952d98c26f9cb77352471de1f6c5ec716e7f94a46acfba031a85ec5a3429f2cb1ae80d28f2c30eb17e87adf754b7ee14e86b22de9b75918003a09faf6de2078eb184fec3bc0069293e522eee82e794371dec7a4e4ceec1020403c7b85d739b75b6a8070aa8af7ba852dfbcdc36acd9654a6bf8a69cde8a101959030eb0eabf63d871a9016bae73acc2cfb0e85c7fc8339b3c136fb96d6698ea054e03636ac432e62caf06098f7a9c55b3caeadb87858be4fbf1716e52954574e5a5b6038e61958e44a963b3775ccf82ce8a222f80317edeb4d2b7fe2e720b49983e22e10219ffff03371be0e69a8d610a628a1cfe2e850f178c0f4d1cba3e32d303eceb3d78da3502036a6fef1edb6bcdc6a161a2279a5d385ac41c3d00ea0f6c4f5f79b06a2bc0ddf703a5c9aeb27d627b057fc01313b9849afdd5de4b630eebfba3b718aa839ed266e4034e156ba5ae5298fe340abdce4ad274bdb2e4aa8d38df4a9ddec5729158beca7903998f22ccb346bbfee12342209d331390c69f5c5d18705b617ffb07ed420618b20352e5c192286952c810abcf64a706eba6fe1ae2ff0999ed5c5555e87b478387a303c6baf44813c9eee7004f315b6a2e1adbf3340065ea868da2cc9e70b1580fe1b9035fc2fe2262d2d5315724d51cd04170146a2764831fa9d0a67cb01ff5e7c8e34903ef180638b820cec74046dadaf2b0d3b5c3669258df7e8eec91e49314467bf46f030a6dff801135e5769d35e312f6818f7e51f55fdd9672ff9e64026ca140badc02039b85e887d406b2099d60f8cc3d05f31a17ce8de69a8c58fc826bf797b35136200379cc8d644183751a362bbb1943cbd81824c0e3e03885619337cbb6855352c77203fb5a6fb6a736922dac8329a4b9e337ece57da87c3461ae1bb6df23835aa071df0219ffff03129146a7d29bac18e3ff53526f19815608772dcf6570f22814d9acf8a2d7dc2b03a1b456c4f049f655496151ff44c36cca50cdc525622ff97cbf1149233612f87503c77877cbb613ad82121a13cfe8ff29868ffd2fecfd3f4472417c73486851fa0503eb7ec96478ce281b9cd2fb4ccb05b0f235d725294ab1d3cb94ae8c2e4a05ae1e039911da44dbfb576607e7ac5c11278916f6908b80e7270c1486f3fa2e40ce4be10348a7f852f7d27a2e89a6ea7671b8afca680ee70fec4c2d4d04cc0a18ec8b8dfc031d8e5b0573428500b907a9285bf0504053502d8efb87b5769921407ec10b4b1203d9efa430d3593818a4fd28e346e4c7e606905fdbfbfdba2c9f7b9a80b6af382b038789f48c6e6379ee1cfcd202e08007f3f60d629beb69d4fc143d794d3bb3626f0341ae145b70e94b55f88b837f5e4c217febfdc79f40fdd18518c2aaecdcf1e929031b90b188a3f9288323fc73eb345a48385a8df89b1705a399179079fd97b869a303a26779d37cda7faece251c283328485980c3bf96c41998ac7e7f195842da27b30350643f248440d34f9bab61bab1bdf34c5f20450cc441e00420465335b3e138d4035f344e5b5160c8b729ac0bb391e5b14b2e9848e967f2dd5908e967df5248c2960315d1599ce975588ff5596f232c93932d47d5eefc9e63d79e2b20c6a9510da1c90219ffff0324a123f173b69f4a59c2197ef9935cefe54213abaf04308c162f211c6207be9c031359bdf46067b6cfdb127a8a9aee14e514e133555eb612177635bde10b7eb60d03b1d39216d1e571d3275a60e8ad79930592c8a02f89955afcb22ba622caff5f73033472bde6d734201c32b82f688068ab5a66e0e9aa552877e7ac720be18289b51a03fe040d8933c520e9cfe3bf5d3e519fe2b8cc38c63488f40d630be7a7b3c0b08403ab887c2f0665317f355d7dcd57a3b81f304fdd3056a7981e57f8ccf97cbd5d6603a63d8a3f97d4092ae60b27c12f38f369e8781eb0877223e6019e82630413961f03da418b8d6d44b0d5fc30cfae460eff18948377986d0436134bbe4549aa37129703a2a9dff1a917af0c8fd1540218944e9f579b107b94be2b97c8cd43c0ea94169c036d1c3ebde4a62efe6414f2334f4d940b7e83503a2641164bc74235126a054196033597ab8092021d408b3a6eba8210bd0bf74574560ff2e6ea1d3c31993162d62503ce1f3f796c021949671febf6c7d587fbaab22cc3728cb7c852ceee5d66fa77690388c478b17956fdf8c74b99f0be394b2bf06324ee56825e88b4e32189d189bc2505581e03ad2fa64a66f6d9dc2b7986b42ce8e52b6edd0543b19df86c8329fcf7a0040205581e03c359aa2ebd1aa355a4400ad3f4bdf9fc6cbe7a164bab9c1e4a12628c000402039e5fe2aa0d4a0d4dd61824c48612f32f4a2c5fa509542bb7a20eed9dcf71f8fa05581e039399cebf5711a12839111cfed8026c9978d432c261e22e826d544065200c05465ac851bc684805581d02d85f828d32008f7e42a315f999b0e568fe51e87fa6464095c567e889040104590b65608060405234801561001057600080fd5b506004361061010b5760003560e01c8063355274ea116100a2578063a457c2d711610071578063a457c2d7146102f0578063a9059cbb1461031c578063aa271e1a14610348578063b57603e51461036e578063dd62ed3e146103a05761010b565b8063355274ea1461028e578063395093511461029657806370a08231146102c257806395d89b41146102e85761010b565b806323b872dd116100de57806323b872dd1461020c5780632c4d4d18146102425780632e0f262514610268578063313ce567146102865761010b565b806306fdde0314610110578063095ea7b31461018d57806318160ddd146101cd5780631f35ec64146101e7575b600080fd5b6101186103ce565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b038135169060200135610464565b604080519115158252519081900360200190f35b6101d561047a565b60408051918252519081900360200190f35b61020a600480360360408110156101fd57600080fd5b5080359060200135610480565b005b6101b96004803603606081101561022257600080fd5b506001600160a01b038135811691602081013590911690604001356104c4565b61020a6004803603602081101561025857600080fd5b50356001600160a01b031661051b565b610270610584565b6040805160ff9092168252519081900360200190f35b610270610589565b6101d5610592565b6101b9600480360360408110156102ac57600080fd5b506001600160a01b038135169060200135610598565b6101d5600480360360208110156102d857600080fd5b50356001600160a01b03166105d4565b6101186105ef565b6101b96004803603604081101561030657600080fd5b506001600160a01b038135169060200135610650565b6101b96004803603604081101561033257600080fd5b506001600160a01b03813516906020013561068c565b6101b96004803603602081101561035e57600080fd5b50356001600160a01b0316610699565b6101b96004803603606081101561038457600080fd5b506001600160a01b0381351690602081013590604001356106b5565b6101d5600480360360408110156103b657600080fd5b506001600160a01b0381358116916020013516610768565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561045a5780601f1061042f5761010080835404028352916020019161045a565b820191906000526020600020905b81548152906001019060200180831161043d57829003601f168201915b5050505050905090565b6000610471338484610793565b50600192915050565b60025490565b61048a338261081b565b604080518281529051839133917ea52c5916d1c00eb8d52b3e40a75956fd2e15339be0d111c44eff45ad0f533e9181900360200190a35050565b60006104d18484846108c2565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461051191869161050c908663ffffffff61098d16565b610793565b5060019392505050565b61052433610699565b6105785760408051600160e51b62461bcd02815260206004820152601660248201527f63616c6c6572206973206e6f742061206d696e74657200000000000000000000604482015290519081900360640190fd5b610581816109a2565b50565b600681565b60055460ff1690565b60065490565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161047191859061050c908663ffffffff6109f416565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561045a5780601f1061042f5761010080835404028352916020019161045a565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161047191859061050c908663ffffffff61098d16565b60006104713384846108c2565b60055461010090046001600160a01b0390811690821614919050565b60006106c033610699565b6107145760408051600160e51b62461bcd02815260206004820152601660248201527f63616c6c6572206973206e6f742061206d696e74657200000000000000000000604482015290519081900360640190fd5b61071e8484610a0d565b60408051848152905183916001600160a01b038716917f7b8b4d473e148a23a96bf4ff0dddf156a76854397f7b206c1ed0185f24f5598f9181900360200190a35060019392505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0382166107a657600080fd5b6001600160a01b0383166107b957600080fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03821661082e57600080fd5b600254610841908263ffffffff61098d16565b6002556001600160a01b03821660009081526020819052604090205461086d908263ffffffff61098d16565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b6001600160a01b0382166108d557600080fd5b6001600160a01b0383166000908152602081905260409020546108fe908263ffffffff61098d16565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610933908263ffffffff6109f416565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561099c57600080fd5b50900390565b60058054610100600160a81b0319166101006001600160a01b038416908102919091179091556040517f726b590ef91a8c76ad05bbe91a57ef84605276528f49cd47d787f558a4e755b690600090a250565b600082820183811015610a0657600080fd5b9392505050565b610a15610592565b610a2d82610a2161047a565b9063ffffffff6109f416565b1115610a835760408051600160e51b62461bcd02815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b610a8d8282610a91565b5050565b6001600160a01b038216610aa457600080fd5b600254610ab7908263ffffffff6109f416565b6002556001600160a01b038216600090815260208190526040902054610ae3908263ffffffff6109f416565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505056fea165627a7a7230582050a1d6e08ee19b18063e8e283b2f39d2e3bd161a749b21a4469691e7e98413e90029039c8ddd1c5d24b8853b818f6de6b13ce3e5889266917493594e857db12dfcc1bf03b95c3a3866a095ef8d7ab434943818aef8b242ff2ea0336aa7f2ac206d4f51b6037ed298c24e1f4c4e182723c2558d8207a68f5e2e313755c37e85d25b284d9aec034f686d864dbe021fba856cfea802da51ddf5805b7e473bc30ecc9b06db47bcdc03ddfd1bdb58912ce1276684cb72008ee0ffec483f1823dacc0a04197e4ed7ad070368592360f893b0b51e2f434e8e22f8693cfcb469ed133e95b507606f101a23c6037950549ad34ef28c2c19543ee85976b9c24ea42588802d3484afb9d1d83e82f1035b999bd9e082e064a0f24a61ffbc327dc595959031bcd3b9ee5f7f94e6ff998b03a7f47b1668d74f5e2fa7671d3d3f00060934db911beedf6082fab6a5692282b2034058df96b833f08c9ae8cd9dca2c12a3a84bb936c4e7de486641ef2e91b4b0b7035ec5daa99ee29c90fd5392b9b07debd5e63cc579a7fe346dddb2216093526d9703f3c1af9d00836fb3d0d434ee0f68d39ab46038bccdcf9bbd0831c2164945e4b00386457d37923f82faaa41de18f7060e20693018ad2b68a56cf0bf29781d5bc738034d009aab5fe8bebdb4829a16e774034290edb41e5b69cb78ec76088bf65fc3ba0398c1668c324b89c1123e7b679313d9ea08b8cbbaefe6fe62ed86e2c00715844c0347c535a1f4eee77b9f1ceaac097c5b36561ebf992184625cd5ded18f34fdbe4a03444122f984ada7df7e0dbeddd5367583da33074d9e364aa797e975d4c62bed3b0319aef66d8fd934c19fc62c78282f235180755052d4fa53df9bffc8203dd7629203075ddb5a17c44cf076990be2ee133ea8eda64409f21146a832f2bac7d24d4aad0350f0ad6faab0eb91056251ba1e6315dac588f635b32b03831510b3184c4cb38b00582003605a021b61ead9309e2418ec86e18e83ad8cc8d2f3355e0057412444524c504505916128f800581f02438eadc0ad22470ab7096e57b4dd461842939c88cbf386b7fbf2b89324204403c656d000581f02b8a343aae598b314160ac1e2d11bea871d69884f34ccf65b1e1106bab4de443c283a5400581f0291a290edbec1b60e5473a4f6834705c5524b6a62f40f3879194c0cab23ef4426be36800219300203a417c5b7ab018f777ee32bf27d0b4ee974fd4bdb3040111df5e81f059aeacfba03aace8cf91737e3c7b32766b68175d6c64253d7131c53f69103e1a3084b19e64203ede367728d1e9d434a94537a8341585caa99078ae128b6be00fa87327c82dc370319d87d55e2963728365d62f1e77e4815d530348d51a1652710e8f2f900d11d74005820031282cf47c278b4eef0359eacd13c8068779f57863f56e0b3ef776669f8cdc04404a217bf03f6956bc13071a053bed54ac1adc50e869cfc6276bef291ce2a0440a9ce4148dd03545dbf6a1d05f9fbff1c4361be80e9d52b5806bb7e280cc793457fb595db79cc00582003aa33c2c2cf59bac1635a6a54ed9b39f926cc86819fa88b0ab0a5a8767aaba044058c97e003511cb4539a3bb339bb4ec68dabcbc97d8305ed39f5f849a2ab11cc5a3b4e8c1303407dc46648a46ac9c61f4a00502eccacd09e9f408344d1c29789ef62d9c65c17035d0ff14fead43283133a83516bd72d5f1eb734cf383fd506334d879238e3f76400582003567fa0f26dd589508791408313f2884766d5e5cc0e3b81dde1e5f0456f134044f5e8948c0219ffff03b101985d49c2dfe0b72e0effd78ff5137991608aa20554b1d9e6831c791f693a03073fd8fff49e667018d519a57c2d89c1623e52da1368fb1acf33396ac23766ce03ce9e416b643b63c4843253e978135d691bf6a7e14e4558f18c3f0900bf0343260331b61854b663b9bb554af52f5ad7066d6bab0ed7120f3945dd5c8943b7b351a203a3788ca15c6ffc58030cc97998c6b3266d0f13c2fa4a13462b1cd83db1386b5b03bbd30b62610c8d689e5301fac35d790839e1d76de1699d8d868d456a95c645a603999e18e0e3c648bfb0c2f8d100ce5d3baed32786f7bd697d81d880448f9e4d3f03072058ef51f5d0fbecf213012d2619c5a2a08c84b2b30a46f57be4b4e7e33d1c0302db9fd283c967d651ef983726e0b6a7b858dabdc8201532107d7dc3b26004830219ffff03fea361b4a541b59a1f613e42cf986a09e3ebb98ce839e72360743e25afe04452036d9aea51b9e9172e81f968ec62fc2c653df805794f9f43e627d12d0d4a6f10d403b758ff927ab65c953fe37e35f1e3861e2d994f9712437b1cadd8c4275e1dc03e03af596906c5cea54aff56bdcf5ea01941ec8fc9d258e2970d8407a0f6f8e43fbe0327b1f6ae03e3d8fca29f2531ae12141e63bf80c9eae5a5d46513f5fc369b364c03a847c27e7622f2722af4b4589dda53df2a420e7dc8be13ffc249580bc0e46574039d516eb6abb8bfc345283ab451d5062a43ae27124d6d0c6efde2a0477790db8803689d225802b9730b9c98f82335793c05936d2bb5f103b072d27f215c1a56a488034a16f1d7f510be5d7c6d06fc2376edb6b32be212c5948337560b92ecb241968e00582003f484a336cd7bc1a1169fe250962da1fbd800f88c5eaff0ae49ea3df65d7b30441982c30003d1c2554608d3ba0b5aef1c22fd77f3aba5c4fb188cb4707ba49928cc3f65a7ca032b236f99090428174388bc324185c565e2e62731b2b210fc77e4b4c96346af7a036770033963115dea178e914c50680cad220c9df0b5fea025d4145b34963e5a460345d6c8dad88d197a0101cb82226bc763078bea3ae4cf2a50709f80c1f3756c1f031cb45632bbfd3e0e66af06d02bc0c8c5aad85dec6c7eb0749760bace893a0b7b036d04b6b7579edd2488a9d813c7135e8db4258fb1ba405376b78be10c418f387c00581f02a753ae93d2a9d5dc6afa19b5bafb15f5c318ad1bb1c9ac55a0cc4c32da94440e8b250000581f0208263d5e90987ede7b3c8cf52c0bbc24c24876e2f5aa37d00f8c9d2901f944117684f80219210000582003b0cf99d509d7e1d5cdbc924faaf8f6f8a62055a18700d057555cd020d6cb10442423e7f6030fd068c24fcf5ed90e3d3378b8de099beabb108250e9eb174a24037298ae1db203881675b7dd81a3897e0b8361261727d25d1e747d4e0c0c0fdff362a8ded496040365fe0bebd80ada5ce61dd944c47b5e9f264a123b5844001d7ea13bba995f651a030e013572e25faf4ac939bb22a1ae8c47cd3d3b364eb2aae6bd440b688dd2e5ce0219fbbf0366ff84f6ccc813a72ca6ea2be39460bbf465b7610333754ddc013cc4630c9b2303f339a63b6b106ac30621a0d8b4a37c642255d4ad41d9a4f9a68456beac1924ef03da5749b8f19bff58f8b7ca7eca6c9b0b470b63d2da1ca666b4be52066baa20d20367f9b7067e52621189dc9abf48f0bc98c4ffb274c03f36757d2f31bea1e72ff4033b838161a67a308bbcf5d39ec777b208b9ad162db2f8fc03eb3e92a41cb3a3d103108e83dc95ba4d9be9c8b13c41168849dbbbd7795f8e7b4f803a7bef0f92d78f037049106486a46259ee74f8c62c5be96b23137dbb922341a060d4945fb166a0590219ffff033a6f61c908ab805a1c7f9b3aee3f5729fbe17a505cbd7b75f28fc6bec33e0dc40365a9ed8c071e20d39521a01b3b48ad0dab62dd5189063d5f971970b63c02c2730219ffff05581d02324f4425b1b0408dad80e9cb14ae61c0ed53f9ebfa3172b8316930380701190b6505581d02aa350c0e7379241771dcb1dd67ad0d405da88d5c7465e4c6dbb6a1cd0c054719d9526388e9db0219060405581e0316bc64e269e0314a471b39ff84bb281362948e002c2f73f41c4fc614700c0247629580b28cbe480371c3f8dad91df080654a68fd622a87481a214ce7897f95e5e4c90e3d2fb58dfa05581e0312e644a4a2953233c0b8e40673effa2aed1d1c5708bad1d126076d53f0040105581e039f360ef4a0d64dd7c78403f5678452945441e329bbfdbcfdba880581100c0446e796d4b8ee0002197b3e03e678b17bde689029b32b75dd7b8372f78e4650b68bc149224c5c3b0d51f5117b03ce055d698bc2f1be063a692501ccece823678564ae2dcb55aebddf8d325cf4480300d32786142cd2479c7e6b5abaf8c28bc2d7227d435ed7dc5850f0cdb4fe0a630304a4f343ebdb2666b7dc9af286c9a20442796c7cc48120619c5341254f8ba7510359de35a1b3adc3a21a3dabf0288959f411f42935562282e94aa27c8bea37798c03facd3c155ef42b5795de02a7ff5a7da33e8f65b84a9991a75576286e3a33bbf70354001239046a95d41b24ee604ac2f32468ecf3bc743250321b8945fd4bc1fdda0373ad1088612601c692297f8782c40a5e21cf37343757f4f06a068aab37def51603ce6256971edceec958eb55c9cb1e3d85fcf0d4f04df7498ec72b62a4ea48fb8303d85eba91e1036f3aad3540c6b13583a170dded5a2383c2c24479580751dd847703e680a2311937b88515fb06a7e271d41e442a09d0fb67b10aabe3e8bacb08e9fa03dc64cd6c1e02c058a3ffae39ee7e6794523900b762d1b5a309baee08b623858503a8baf0cc43cc04588724fb221f5b7f8a8fd6b4b8f75ec954e1932c4918400085035c21089c176607ef4f886cc79fa8ba76db5af532d8461b7ae80418992963c1690219ffff03ae2e89a4625d25075b6a9c970f8113fa64268f0e02f702a1e0d4fb146ec4054403e0f3f42ae162f24db397cec42570d770d6b284c089755fb58fc577286371fc6d038d052b9d972a17005660ff5edca1f1cc0cc4792f424a7ef3fde119388b68bc2a03b88f8081c9155caae9837cb854951875caeae15a5b3899961321247317704ac903a1047fe9141ffa5842c0d08482f9b7bdee34630cdecd10bb55f12234b1042fe20338348b90f60a72cc2cc55bc214f0ce9d322db0e6187528f19cd0210b033f5be703cfd257b6a7f6312afea5c556e0a07126d8ab5def4c4712575970d0d72e00681c03adbce134846ac1738e9dbe6739962d1a67e2ff2e932482cbde76152cfc76758903bbf20dd3be5301d91afb71e5d754a6b8394cf541cac5b17398ea5ca3a8fd16ab030da8ad3e04b7061105fb0b4b2106af6d2a4d8af6944a21bb7aa7815832884a7d0219ffff031707d1e19aa71f18ae913144093fffd7d33cde6945aee14e3e703bf2c8eb240703b70fd2f5aa3378f84f3ab2e05e7f658fd4a48404d563c55c55a8ded587b1e46203771fb9ae0f457d26edf5ddec99330e1113d5fd0620b1b261d2dff8fa3ced9e2c03bbafa4b23f11c309788d48a23dc31a2da46c70ba9a6e9f8de475abf81a0fbbe10355fa508de2218468fe70bbcecb81de8cb5a16caddb226304d061aea60969220f031ec909c94e6c53cdd091e68ac3dfe80acd12c966bac3073ffde3f0779ee08cec033385450c5cfa817af8f43a19846af0eb8d2a12d7eff559325af4526c635190ce034944e019d4c68ec8f3375b959787b19c30692db10791fd3780b2e348adbd858203c48c4566c25521470e7deea0605089e77a621cce50e8c8b58ebb4a890228189203442b23aa3511e886a41c23dbf2013c4b96f42b81407831762f712548adc31238031246fe2e35a0ff67228ad9a38396072383fd0965ea3700d089479af5bed1382203075068440af1ab330a075316d2edb616071ae348a480607ef04cb3e2227abea20219ffff03e63370b54665887f964b2207f233396452d08d4e7c406ee6c36988b16117d22e039b10451c134a1583e225217bbf252710f34ec68afae67049c3e0b6ad525acf3a0219ffff03cb05f3a9653fad34816d4a12e59e3701b984740a4221207d90d8c9be050bc71403a6a7d28b6fbba31f0bf0824058cc8a5181afc1d5b5ae9098c74c7ff50ecb0f0003bfb3a5544bdc508e1e3106ce2a5918aad4e8153d3f37733c34c1b9b7a190f90b03980e73af1d7946af705ab3ba1a76d54be991984a806b8d54d760b3421ea65a9d03e9c610dd878e5747bdef19db10b84342c1c233c638b58e211178ebf578174574032da290c98b0ef260c6767a9c9f5a05db0d674d7a8fdb53f79bf5b8263ecb8fd60318cbfaffa8f93ec990802f7fb395ef50bc71edca652c7a171e438c02de1857f203de3c66ffbb2eeb15b73c97139c0fcabc0a39b2f9589e1233b8617edecdeb29e5037a076876dd8c4cfc20474bf4a8a2f60beb322707d82b1fff23dfcc000d28b5410301e8b4c99dbbd9d8d2ad70fbaa6272583427a69fb4abe7fdecb86313e14833c703f9362867986763d9b19026d622f4c2546680e1783f28cce5cffa55d9b764247c031f3f6d22e1da467a1922fd86a5e3ef712ebb2d7f619067dee38f467ec45ee0e603cf2079d1e55dc35fe68c16ea5d7d631ffc16bb1dba3b67f8964a61a36ca1468603d7f5c27439f6f044a758a66670a49a00419ca30f4fa5026a4624a9ecd89d5fd503dcfc0c50b09ccb8ef7519f2672c97325380d1f9e02291f405dfc07cc4d17e80803483f0894d586025df73b0b2ed28bfd219d299fd29b2183769be0427ac9d7265103ce5aca8e8ad8e89ded9d87e88b9ab1a1f61a769f25b4c8332b445ae8f9ec73b203423d94d96ffc0c6d8f6eac47643958316a9e729eafb214faa55474303566a995030e214b2d57ad751a354e786e4975d9360b4b2edff2d9ce6e4e10a3f1b5554cd00338d9c6b1a9f4c8f9de3be896b1d3d7d1121d7fb38ca6755768f4e12190f3887903ce4fb412c2ee9bfeb521f6a6e4477e308df977ea2778ce3f10f952c3ffa9b2cb031785417b2d63c7ca91726a61b830c48c505ad8dbb07af2faec5c15315ea49511039a9ca4ba7dca78665f73e0ec969ca899cedfbfc8ff1f70eccfc488446540fc81038b2a44e173111076740ab8447bce1073ba106172a3575d8e0223b235d3b025e50325d01ffd95cc2bec68b31e77fca9507f800405358784c0030d5564906c49b5170358bf883ab49dfd4a9b17b86b2bb6668fb762f1cecb2bac533294d77d53090e6703405d2fdac3040b15594d75076051a4f7294fc436c72f229de0ef628091a731ee035f81af99d6d97a2e9acd3eab6782a84de7b2ee789b6049b5c2d8d6a48fe7f3f603ad3c287c966ea6144da2af83101c360af452a92681e92f089266b77c4943f0fc031c66688090d73382ebcb36f0f22b811ed441def127c486eae5ca73830ff38c9b0360f496eb7969c9f32fdeb908e8b355fea57b3ec078476b63bdf702e2587d710103aa706c5dd2e21f40f36bb82041339528e198635987a8620bd4473ac6a65e31c803743eed135b0dda5f427505ea577687131304d2848a5921a94f4a9b09593c1e0505581e030f1270eea3f601e62efe5f7cbdb19e00dc44e62dabf7f7f0a3a1c45b500c02443b9aca0005581e0371eb2cf5bc4e12aeac0ab7e91abd0162a93b110c3975f8d4d40ece4c800847470de4df82000005581e037fcfdf8d07aea0a2bf7e5b0e1c69a671be2e32d0535b6436ac6d8413b00c01460c866d5d930005581e03e357ab7a534e8d76e22c3324987b5f5db498814d5a33f2ff50a9957fa00c064633acaf437cb0037a6af29b27d87a7f9db09ad95e3fe9de32014e99dea9980f10e579a541e942ff03882a0f005c2584888f82cf56abbbcaac1508b0d80efe14b16e0a46ef8949855005581e03b028a84961c0b010dad7f67a888ee942b3ce679c9cfeb874ef87255dc00c024762785e90e1f65805581e03317ef9aaea312a070f4e89f1566e1118d29f1daa5136c08c208b72b6d00c181d4710c8e917247dd703337474887de13d58d763269333293b49cb432bbf0789eeeaf51cc86ae35d56be05581e03ba82826492427a8d4162a454b5699d306cd785f046ab831f12958d4bb0040805581e03065bd4a0b546f57b54626a1511e1626dec31a8eb1fc686c03178bb11200c1a0055fa6148d28919ba28dda98d031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e031a141a98d39adab5038449d584917e12326e1653a71e9f3de4ea77e61007011bffffffffffffffff0219dcdf0385f6daeb1c4d4f385ebb6a18e31d25b0619b516a4196783f282d9463e07bf93d03e16ce6ba6e51ab9b9a2086a13f29ad34462ae66ad9f772c35f5d5cbea19bcacc03c2f766912ca3f64f6d635522896ea84de6a551f79517071cff24ad3303562c0f03d8982561ed22971239d015ecae42596a2419edb1a93a1944fcdd5ffa6e5b25eb0390ab20f84e8cc102f5383780e4a24223d8d4230af97996377f715d5037e367ff035d8702fd651aa52efbaa52b5f8389a2383f3e5453562ea1bfda3134ff00c34160219ffff03e28175926472d9e201853bcb6a3dcd254c065f7585b4f9dcda03a77e48a3e59903bb11a805cd2022e8892160703ceb82c1a79d2a4087030376bf174babb25d655d03580e4136d4175ba08022ab05df8881d037c297df5d5261b6ed0edf70b7877b1003c6545e9141f858852c25efe48f556e7bbb6a5701869b0082b8fd83b274eef89a039fb2ad09dab7b4b3a06c1933aee9cc01af1e506d0cddf99f7a896361083faa230219ffff036d4f51b68c2c0d431144cd90ecf81ea4b84153528aba236e8d360c274ac00978039653d07fdb79d423b44b81748a0473cec63c852b189e526a74bdb1f87dbaade90219ffff03c8b9210fef82c08632c94375d63f0fb95aedd85fd59d8e967103bfd2a485e577031c303ec5f977dba2b37deeabb92ccb8465823bdbdedb9b4cb3f46e0096d846d50359fa2dd1de8547da8e2eca2d495be42dd5980d147710fac117ade2622ed4c0f70323aeed681a40456deefd61ce99c4363fe142c453b8705f04f59508932496a23503061ea537c63a997c2293aa7548217d49a0a2e4b2c2dfd2f015954034ec0270ed037e65284a64a0ff0418643a9f9a2614500c145aef214fd7ecfe089ea305f0abf203734f0abfdf0cd3962aafb56fae8677a35a989e2a7237723d696a2c1fb3f1b8f603f7c24dde35760983ffe29aa24fea3150efe04d848a58a6a20e39906074e47ec503c070aaef1f2c8553cfe5bc452cdd49c2ca077919906876994b2a6498aed6f9e503414e38a5e9edf43fcbd93d197b9190c41a230b0fa3aa947d698bd8f3007e88b603055445b97d8ebadb8036bb11aceb5cd12d93573595189407cbb26c6a427f7a2803ec71bef01698724e731905ce877ade0b08130f70fc906b40bb5de4506756189f031d764ff983d12dda382106616514f3a2d9782834b011d31751c246d9d94cc16a03b40afc415000d1deb539103614acedf8ee615fd012c9f69e4ab9d849e4fa9d01036c96938b602bd81244610392bd9e6fc3f5b46e5a60bc9c2beeab7d1d48a8ce3003ca22b4cd767cf5615c81bc8a88860d6e219499ac6c20181adbc37f43141f7b5a03b09dd6191159c618ff09e71140302c9327e13784b2bdf720088e1e068f206beb03cef8b9b88f71a2c5995ad498c743214b56c862a6cc1a14aaa0249846a10f69bf03304f29dd57f7108aaef30f63af5c73432d069fb2c817fb2b26d27f46844fcc5d0385fcc948665df225e5bb6a6d37e1f775860b32b55d216eb62869fe877f7a95ee03d959626f29e71f92f18e0763124f9630459705f233defa235a5d3d42e0b43dca037224d80fc53fc8b2b8dabb898cbffb3a1f66204d04bd2268daf4ecbd3c8e58d803a384867ed7764cc63f6d226b58804a41b2ff2e43944716705fb73c36394d1b5a03008d60f3288a0ab87576691fca6b534c7e429c9daf293c5eaf9c31ff48875019039ff0671f3d272a16032e91bc8dc35c8c406671d73dcd46ed77f6c7b0a3d3dba903d3a6c5f4cba83b46c8a4945505cf1ddbc6aca37bbce3098c01dcf33bd732710903da827fbf52d40371e3a45e7eeaa2bd9c634fe581776019f60392b480008e0c0a03129660b161692c2705fbe877a9800ba1c547f8e9a99afcd1264bd5c29f92b3c403f4a930a2628bc2958a357479a6d90c42890b1bfe135cc24b6b5006b3fe7e78c605581e032392b0a367329ed252319322779a17ea83091623699f99b93efa532120040105581e03a6d316994b0188961b6efd61ad2b36dea8f319113a9f11807b7b1c88e00c01470c0f2d13c2b40003b81383deacf62a25e911bc5cfb1f5864714b4d485f7aa6a7d94b817caa7779cc03a1f6dcbfd38ed20ac767360b0346b6d12097d4d87960536564cb5e4a52b16b8f05581e035705031e45cf60774600c5063cad35cb822dab76f66ec542a78f1b32000c01470bf140b757c20005581d02076caba8e6f2f9cb649787dfcf47ec14c4f2cab1d31a0e4c121389580c1901f5477f466e1bb1c5cd05581d02b69d70200c979071dfcef71b47f6a7281c7489b43947f268d03081b40c014703f779ae3189680219201003aa64e20d1ce62b1054370673002f0b57bafeb2398f21277e86bc94eecdbf293105581e039e8dc838d6365447e4fe933ceadfa4aefde2c0f14c9be2357142e11d7004040219c1f1032fbde689912459aa04b2f70f98e4fda72cbcac15678acfb2df1896564a1ac4a50219ffff03d70fd6dfce1a53bcf341a88985fb6ac26ba30fc294e335acf16e4fb0c279b7e303b29ce22f97c2268481005065605256eae72549f45ccdc1eea12fbff66d30edb90369eee23d52233c371bc98791cc3d259b0bc40b8fe77287bae2789fbd984181fe03ebb9e5afd015769545ef2d8d47ddfa2fdac6943c108a62ad9d17ed6c00d1a35e03c854d97b14135d22440c75bceedfec53e8131a7895596c0ac0cda45f6d89921d0326f9ae3aca8f90a6501f4eee1f97edb0e3110d6ef767c8741babbb876884d37a0307120029f6d625db8ea00ca1d9557a8042b29ba2a64139476fbdb139ca11c67b034f4d850e24ed928f565dfe2dec575b09fe39f9a44149da8d80b639214c636b5c0346c722eee10003f9b342470c41f9e7032e79faf992624825f6b161f49863672c03203061c0e7d8b13856810d4763ad23822e47057063c81e8dc8d86976fe91df89038969cdb3607c87b94597a705e7530ea85c4ee5c8c67c1e72082e2b54ce5eed95037b3b7b0f7ff8984193888b47c25f24d6e1df2d2525ab2714390bf053e6f92e460219ffff0391f5891b03ae8ed7f43eb9cc5ccacc311ddbf109c8ef837ae9db7d12bae9e774032bb0556bd20c5338803450ee0f10c2913760de215430d66f3c0b23140f1921350375449d4092b41499d058028d8a6002209419279a4b97eedd193ce5425628dc430315ea7f5e03a6a3c74b8f20b56e254472e8ca4cf72253dcb5f58c1cd9caba632f03b50b1ec49ccaffafb638e9f030b3d6d404deb4d3c92bade06c5bfb5cbd3fa6b10361894f85bdabf7e81bd09e1e09e8d0e7a8c48edc4f784a1be886514aaccac28b03939b7e8cbbd0c10ba8cdf9a57ebe0a46faf11c73f9ed56b5e82b2164e1ba8c4f0219ffff039087c5f3dc2cee2e82c23cacf9584e9aaf7f943866263418580a860299f726b2030200d94580624d6d199e649991b9bf6ddb791adec0287a7e46717bd6c7022484030cedeedd0066bf7ff362da1f0a0a84f78c867fcb490a3821a1400eec21adfb23035917f62445de3c5af6f36fd07560bc7221a7faf7334648c2320f14bc28848e9a03682c44a9a259e74ebb10ca7df5ff9f7cb289b16832ad1c57481059b45946e9ba03b671eec1bd2645536f083ead484f22109ec23a2ff99f16534bf4bd7cf81939410394c5d1bae2e5f6c32250a44b706a9ddb7dbe8aae4b620f7bfe3c3d3a18033ae9031ae0bf0cce4c38951d767cbe3fd745c11b9d739216a9160be7dd36a6a3bcf5060387581016bb35ea19de532216cbc3fc315b3d56ffc97729f31f785cbfa9386ef80219ffff031d2888ef7e9580624fbdde4efa2a7c118a00b6e250d19d658e9697e1a8009104035a636f7922ab9f0361b48cf9e969ea4b3398950935f959d576dfa36ad1b4c22203c16b00a5c896807d307d29bccf39cf60dcfc65876c1832db1157605388beb5a1030fb3ce100bbf7d7fcec0bebddf2fb9d4519ba7ec526b4c819f522560d1e17b4f03b387551ee0164ac4eba000d09db8cc576916e12d341b5ef9584feba40222262403e05a5683564ef7b178d39c12eb71eaade74346d9169fa935f1611da7a3e9e902038023740f63e817260e7f330d655ca0c336abde8d848c813be865b73a22d27004036390ee4fa0673f02313d96946e68ac576e290adf25e2adab190ee877a0e334dc03a96a32bd584215563223a28757a5c4eeafccf8f1c5a3d634651e085a3336bbbf03bf71886f82c09f93f1ea88bb929984204d363fd61de6b5b10595cd4f1f9a3e34032dad49d674b56e52ad2d9b0fe53483640492a80ef8c2865dbfe87986e331e89403bf458fa0b1eb7af94f41728f325f6e888ccdf570724150263c2c8b304f1f11c9031a9e3c3798ca3a5ebf1a209d4df4e4499b826c01c233641e0a580927fdafa3ef03197d398d7506864064face7b41b22efcd4adc0396f3f53fa15932c5a66ca80de03ea7cf7ac646b7590e700ad267823796c11cafe83cc1537bb7c9d4f15e32e0bcb03fb4849c4d84bec14c3edf823008743a7bf79df6ac503af5404577d6e3e24f4d101410b05581e0381459f9c1f4a5adc470a6936cd10717a09b36c985422214f460aa44050040105581e03ec6924bf88280788ec039745c643b400a493c41957e9dd557a82123380040305581e0340da3c0ade58c4ff4fa3ca59cfe96b53827413aacf61ab04c5c640d0900c0847a96348e70978cd0387f9c517dee24e5e35cc1c88dd9b02b677fc4fdee117d47204af0f15f1ea967a03197506d6551b948e13201746f78ba7bec7c6404eb9804b477e6203f31a4b9e660605581e03e2494908622f1147cd91b59ad7b8901fdc330b386ebe6f5380ed0a9b6007011bffffffffffffffff045926ac6080604052600436106101fc5760003560e01c806370a082311161010d5780639e91c702116100a0578063d52c57e01161006f578063d52c57e0146105d4578063e07c4605146105f4578063e985e9c514610614578063f2fde38b1461065d578063fabd1d2d1461067d57600080fd5b80639e91c7021461055e578063a22cb46514610574578063b88d4fde14610594578063c87b56dd146105b457600080fd5b80638456cb59116100dc5780638456cb5914610501578063853828b6146105165780638da5cb5b1461052b57806395d89b411461054957600080fd5b806370a082311461048c578063715018a6146104ac5780637cb64759146104c15780637ec4a659146104e157600080fd5b806323f631231161019057806342842e0e1161015f57806342842e0e146104035780635503a0e8146104235780635c975abb1461043857806362b99ad4146104575780636352211e1461046c57600080fd5b806323f631231461037c5780632a55205a1461039c578063372f657c146103db5780633f4ba83a146103ee57600080fd5b8063095ea7b3116101cc578063095ea7b3146102f757806316ba10e01461031957806318160ddd1461033957806323b872dd1461035c57600080fd5b8062891bda1461024057806301ffc9a71461028557806306fdde03146102b5578063081812fc146102d757600080fd5b3661023b57604080513381523460208201527f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874910160405180910390a1005b600080fd5b34801561024c57600080fd5b5061026873fb4f09cefd99b2e27dfb381ae7ca07d4551e7b3a81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561029157600080fd5b506102a56102a036600461224f565b610697565b604051901515815260200161027c565b3480156102c157600080fd5b506102ca6106c2565b60405161027c919061243b565b3480156102e357600080fd5b506102686102f2366004612237565b610754565b34801561030357600080fd5b50610317610312366004612184565b6107ee565b005b34801561032557600080fd5b50610317610334366004612287565b610904565b34801561034557600080fd5b5061034e610945565b60405190815260200161027c565b34801561036857600080fd5b506103176103773660046120a7565b610955565b34801561038857600080fd5b5061031761039736600461221d565b610986565b3480156103a857600080fd5b506103bc6103b73660046122ef565b6109c3565b604080516001600160a01b03909316835260208301919091520161027c565b6103176103e93660046121ad565b610abb565b3480156103fa57600080fd5b50610317610d86565b34801561040f57600080fd5b5061031761041e3660046120a7565b610dba565b34801561042f57600080fd5b506102ca610dd5565b34801561044457600080fd5b50600654600160a01b900460ff166102a5565b34801561046357600080fd5b506102ca610e63565b34801561047857600080fd5b50610268610487366004612237565b610e70565b34801561049857600080fd5b5061034e6104a736600461205b565b610ee7565b3480156104b857600080fd5b50610317610f6e565b3480156104cd57600080fd5b506103176104dc366004612237565b610fa2565b3480156104ed57600080fd5b506103176104fc366004612287565b610fd1565b34801561050d57600080fd5b5061031761100e565b34801561052257600080fd5b50610317611040565b34801561053757600080fd5b506006546001600160a01b0316610268565b34801561055557600080fd5b506102ca611093565b34801561056a57600080fd5b5061034e600d5481565b34801561058057600080fd5b5061031761058f36600461215b565b6110a2565b3480156105a057600080fd5b506103176105af3660046120e2565b6110ad565b3480156105c057600080fd5b506102ca6105cf366004612237565b6110e5565b3480156105e057600080fd5b506103176105ef3660046122cd565b6111a7565b34801561060057600080fd5b5061031761060f366004612237565b611265565b34801561062057600080fd5b506102a561062f366004612075565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561066957600080fd5b5061031761067836600461205b565b611367565b34801561068957600080fd5b50600c546102a59060ff1681565b60006001600160e01b0319821663152a902d60e11b14806106bc57506106bc826113ff565b92915050565b6060600080546106d1906125b4565b80601f01602080910402602001604051908101604052809291908181526020018280546106fd906125b4565b801561074a5780601f1061071f5761010080835404028352916020019161074a565b820191906000526020600020905b81548152906001019060200180831161072d57829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b03166107d25760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006107f982610e70565b9050806001600160a01b0316836001600160a01b031614156108675760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016107c9565b336001600160a01b03821614806108835750610883813361062f565b6108f55760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016107c9565b6108ff838361144f565b505050565b6006546001600160a01b0316331461092e5760405162461bcd60e51b81526004016107c9906124a0565b805161094190600b906020840190611f20565b5050565b600061095060075490565b905090565b61095f33826114bd565b61097b5760405162461bcd60e51b81526004016107c9906124d5565b6108ff8383836115b4565b6006546001600160a01b031633146109b05760405162461bcd60e51b81526004016107c9906124a0565b600c805460ff1916911515919091179055565b60008281526002602052604081205481906001600160a01b0316610a255760405162461bcd60e51b81526020600482015260196024820152784e6f6e2d6578697374656e7420746f6b656e20676976656e2160381b60448201526064016107c9565b60008311610a805760405162461bcd60e51b815260206004820152602260248201527f53616c65207072696365206d7573742062652067726561746572207468616e20604482015261302160f01b60648201526084016107c9565b73fb4f09cefd99b2e27dfb381ae7ca07d4551e7b3a612710600d5485610aa69190612552565b610ab0919061253e565b915091509250929050565b333214610b0a5760405162461bcd60e51b815260206004820152601e60248201527f436f6e74726163742063616c6c7320617265206e6f7420616c6c6f776564000060448201526064016107c9565b600c54479060ff16610b5e5760405162461bcd60e51b815260206004820152601d60248201527f57686974656c697374206d696e74206973206e6f74206163746976652100000060448201526064016107c9565b662386f26fc10000811015610bab5760405162461bcd60e51b8152602060048201526013602482015272496e73756666696369656e742066756e64732160681b60448201526064016107c9565b33600090815260086020526040902054600190610bc9908290612526565b1115610c175760405162461bcd60e51b815260206004820152601f60248201527f45786365656473206d696e7420616d6f756e74207065722077616c6c6574210060448201526064016107c9565b611b396001610c2560075490565b610c2f9190612526565b1115610c745760405162461bcd60e51b81526020600482015260146024820152734d617820737570706c792065786365656465642160601b60448201526064016107c9565b610ce9838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506009546040516bffffffffffffffffffffffff193360601b16602082015290925060340190506040516020818303038152906040528051906020012061175b565b610d355760405162461bcd60e51b815260206004820152601860248201527f596f7520617265206e6f742077686974656c697374656421000000000000000060448201526064016107c9565b610d4633662386f26fc10000611771565b336000908152600860205260408120805460019290610d66908490612526565b90915550506007805460010190556108ff33610d8160075490565b611807565b6006546001600160a01b03163314610db05760405162461bcd60e51b81526004016107c9906124a0565b610db8611821565b565b6108ff838383604051806020016040528060008152506110ad565b600b8054610de2906125b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0e906125b4565b8015610e5b5780601f10610e3057610100808354040283529160200191610e5b565b820191906000526020600020905b815481529060010190602001808311610e3e57829003601f168201915b505050505081565b600a8054610de2906125b4565b6000818152600260205260408120546001600160a01b0316806106bc5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b60648201526084016107c9565b60006001600160a01b038216610f525760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b60648201526084016107c9565b506001600160a01b031660009081526003602052604090205490565b6006546001600160a01b03163314610f985760405162461bcd60e51b81526004016107c9906124a0565b610db860006118be565b6006546001600160a01b03163314610fcc5760405162461bcd60e51b81526004016107c9906124a0565b600955565b6006546001600160a01b03163314610ffb5760405162461bcd60e51b81526004016107c9906124a0565b805161094190600a906020840190611f20565b6006546001600160a01b031633146110385760405162461bcd60e51b81526004016107c9906124a0565b610db8611910565b6006546001600160a01b0316331461106a5760405162461bcd60e51b81526004016107c9906124a0565b478061107557600080fd5b61109061108a6006546001600160a01b031690565b47611771565b50565b6060600180546106d1906125b4565b610941338383611998565b6110b733836114bd565b6110d35760405162461bcd60e51b81526004016107c9906124d5565b6110df84848484611a67565b50505050565b6000818152600260205260409020546060906001600160a01b03166111485760405162461bcd60e51b81526020600482015260196024820152784e6f6e2d6578697374656e7420746f6b656e20676976656e2160381b60448201526064016107c9565b6000611152611a9a565b9050600081511161117257604051806020016040528060008152506111a0565b8061117c84611aa9565b600b6040516020016111909392919061233c565b6040516020818303038152906040525b9392505050565b6006546001600160a01b031633146111d15760405162461bcd60e51b81526004016107c9906124a0565b611b39826111de60075490565b6111e89190612526565b111561122d5760405162461bcd60e51b81526020600482015260146024820152734d617820737570706c792065786365656465642160601b60448201526064016107c9565b60005b828110156108ff57611246600780546001019055565b61125382610d8160075490565b8061125d816125ef565b915050611230565b6006546001600160a01b0316331461128f5760405162461bcd60e51b81526004016107c9906124a0565b600081116112f15760405162461bcd60e51b815260206004820152602960248201527f526f79616c746965732070657263656e74206d7573742062652067726561746560448201526872207468616e20302160b81b60648201526084016107c9565b6127108111156113625760405162461bcd60e51b815260206004820152603660248201527f526f79616c746965732070657263656e74206d757374206265206c657373207460448201527568616e206f7220657175616c20746f2031303030302160501b60648201526084016107c9565b600d55565b6006546001600160a01b031633146113915760405162461bcd60e51b81526004016107c9906124a0565b6001600160a01b0381166113f65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c9565b611090816118be565b60006001600160e01b031982166380ac58cd60e01b148061143057506001600160e01b03198216635b5e139f60e01b145b806106bc57506301ffc9a760e01b6001600160e01b03198316146106bc565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061148482610e70565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b03166115365760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016107c9565b600061154183610e70565b9050806001600160a01b0316846001600160a01b0316148061158857506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806115ac5750836001600160a01b03166115a184610754565b6001600160a01b0316145b949350505050565b826001600160a01b03166115c782610e70565b6001600160a01b03161461162b5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016107c9565b6001600160a01b03821661168d5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016107c9565b611698838383611bc3565b6116a360008261144f565b6001600160a01b03831660009081526003602052604081208054600192906116cc908490612571565b90915550506001600160a01b03821660009081526003602052604081208054600192906116fa908490612526565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000826117688584611c10565b14949350505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146117be576040519150601f19603f3d011682016040523d82523d6000602084013e6117c3565b606091505b50509050806108ff5760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b60448201526064016107c9565b610941828260405180602001604052806000815250611c92565b600654600160a01b900460ff166118715760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107c9565b6006805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600654600160a01b900460ff161561195d5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107c9565b6006805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586118a13390565b816001600160a01b0316836001600160a01b031614156119fa5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016107c9565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611a728484846115b4565b611a7e84848484611cc5565b6110df5760405162461bcd60e51b81526004016107c99061244e565b6060600a80546106d1906125b4565b606081611acd5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611af75780611ae1816125ef565b9150611af09050600a8361253e565b9150611ad1565b60008167ffffffffffffffff811115611b2057634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611b4a576020820181803683370190505b5090505b84156115ac57611b5f600183612571565b9150611b6c600a8661260a565b611b77906030612526565b60f81b818381518110611b9a57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611bbc600a8661253e565b9450611b4e565b600654600160a01b900460ff16156108ff5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107c9565b600081815b8451811015611c8a576000858281518110611c4057634e487b7160e01b600052603260045260246000fd5b60200260200101519050808311611c665760008381526020829052604090209250611c77565b600081815260208490526040902092505b5080611c82816125ef565b915050611c15565b509392505050565b611c9c8383611dd2565b611ca96000848484611cc5565b6108ff5760405162461bcd60e51b81526004016107c99061244e565b60006001600160a01b0384163b15611dc757604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611d099033908990889088906004016123fe565b602060405180830381600087803b158015611d2357600080fd5b505af1925050508015611d53575060408051601f3d908101601f19168201909252611d509181019061226b565b60015b611dad573d808015611d81576040519150601f19603f3d011682016040523d82523d6000602084013e611d86565b606091505b508051611da55760405162461bcd60e51b81526004016107c99061244e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506115ac565b506001949350505050565b6001600160a01b038216611e285760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016107c9565b6000818152600260205260409020546001600160a01b031615611e8d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016107c9565b611e9960008383611bc3565b6001600160a01b0382166000908152600360205260408120805460019290611ec2908490612526565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611f2c906125b4565b90600052602060002090601f016020900481019282611f4e5760008555611f94565b82601f10611f6757805160ff1916838001178555611f94565b82800160010185558215611f94579182015b82811115611f94578251825591602001919060010190611f79565b50611fa0929150611fa4565b5090565b5b80821115611fa05760008155600101611fa5565b600067ffffffffffffffff80841115611fd457611fd461264a565b604051601f8501601f19908116603f01168101908282118183101715611ffc57611ffc61264a565b8160405280935085815286868601111561201557600080fd5b858560208301376000602087830101525050509392505050565b80356001600160a01b038116811461204657600080fd5b919050565b8035801515811461204657600080fd5b60006020828403121561206c578081fd5b6111a08261202f565b60008060408385031215612087578081fd5b6120908361202f565b915061209e6020840161202f565b90509250929050565b6000806000606084860312156120bb578081fd5b6120c48461202f565b92506120d26020850161202f565b9150604084013590509250925092565b600080600080608085870312156120f7578081fd5b6121008561202f565b935061210e6020860161202f565b925060408501359150606085013567ffffffffffffffff811115612130578182fd5b8501601f81018713612140578182fd5b61214f87823560208401611fb9565b91505092959194509250565b6000806040838503121561216d578182fd5b6121768361202f565b915061209e6020840161204b565b60008060408385031215612196578182fd5b61219f8361202f565b946020939093013593505050565b600080602083850312156121bf578182fd5b823567ffffffffffffffff808211156121d6578384fd5b818501915085601f8301126121e9578384fd5b8135818111156121f7578485fd5b8660208260051b850101111561220b578485fd5b60209290920196919550909350505050565b60006020828403121561222e578081fd5b6111a08261204b565b600060208284031215612248578081fd5b5035919050565b600060208284031215612260578081fd5b81356111a081612660565b60006020828403121561227c578081fd5b81516111a081612660565b600060208284031215612298578081fd5b813567ffffffffffffffff8111156122ae578182fd5b8201601f810184136122be578182fd5b6115ac84823560208401611fb9565b600080604083850312156122df578182fd5b8235915061209e6020840161202f565b60008060408385031215612301578182fd5b50508035926020909101359150565b60008151808452612328816020860160208601612588565b601f01601f19169290920160200192915050565b60008451602061234f8285838a01612588565b8551918401916123628184848a01612588565b85549201918390600181811c908083168061237e57607f831692505b85831081141561239c57634e487b7160e01b88526022600452602488fd5b8080156123b057600181146123c1576123ed565b60ff198516885283880195506123ed565b60008b815260209020895b858110156123e55781548a8201529084019088016123cc565b505083880195505b50939b9a5050505050505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061243190830184612310565b9695505050505050565b6020815260006111a06020830184612310565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156125395761253961261e565b500190565b60008261254d5761254d612634565b500490565b600081600019048311821515161561256c5761256c61261e565b500290565b6000828210156125835761258361261e565b500390565b60005b838110156125a357818101518382015260200161258b565b838111156110df5750506000910152565b600181811c908216806125c857607f821691505b602082108114156125e957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156126035761260361261e565b5060010190565b60008261261957612619612634565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461109057600080fdfea2646970667358221220413dada6a17fb8438b045d0928af4f07ea45793c6e6caab29b74c277253bea4b64736f6c63430008040033032187cf92b15b517abcba199d1827b18452bc9a4208af597ddfbfc09baee0080803fd56a2bb83c44b3ba0cc6c6cdda5a89524e038d8682075c14cb9d5ea0b0511f70394fd771fb5fa9e21b15f8874d11ccff9aee6e590142a4e9e7980f4e9642c35dc035f9ec720cf8b313cc8d5606c6fd97f7e84a75446ef10ad8c466f5465c8348eb10379ee0f39a809d0a1188c4439a2fba4fe3cf08ac26118c19a4764f9627bcd9798030e36f9e2e1a9e2eb56b8fed017fda5362de7fcc983bf564ffdb2fe1c21f1a6d0033281faf1028ca99b9f39ea912d26589782bade8a578104d1175cdc93efe3439a03f4ecc04338e1b338c3506301152a55ff8e92d412c13dcadb68794390bbeb2f6d0367f4072387599416a0c0548c3940faca43abe53d124779c47d1c02600dd3b1ff00581f026aa4f630cca49e55506036ae41157c336b74110d42bf9307011cabb1b54742dead00581f0221353cdd9d039a37093c622283ba50ab1a30ca87a12604bf33224139cfc1410100581f036ac353c5538c4c0f7942245958a65a2ccd531fbb9feeeaaf3bf7a26585305407006a4f8a5cdbc646a9c795f7b2c7b7dc1b702d00581f0301d7d3a9b199df9aa7dfc3c055f578286b36363d9af10ff7aa49f9d4f7b041010219220000581f02c5865f79758f5b8774555053762ada174cfe2c47214293073ca61b92dd5842dead00581f02fb91dacb7ebb6ee399f0bc6c08e3ee39d0f5e4f858f44236ab17ae24c91b410100581f025380aeda6037c3e46bbd57af930f4f54b9ed68ab81072c49787a76c66aa5410100581f02fd805a08eb82f87497de2da793b3f87acd1ba381dc2de0ba51b2d17f4264410100581f0223f06a4f896e2ff27b7fb01f64ee6529d5a8ac8426532fe1f287cf05ec72410100581f02629501497dc7281001361189ac92132ee22c9bc524b1adb6596b3ba65b6241010219d6a503592492a62f112f3ed534baee44aa15da4066e744f58a54484dc426de58ae76010317b6fb8d9d887938e8e53a99f29157527ad502470b1e7c05a54e66b33652b5bf03ad8190cce48dd0a17dc74ff8322a376a9e80287a118e6122b2868298e6497c53035b09206a0bf679b34c4dbc89d882d2e017e0a8728a511cc3d1286e4ad6b277250361600170963e904c02063134af214287476c34c9fa906e2f64a6522c1fec855c03872871f49e5281697b8a2e499e9461f4a482c47fdb086008aecb901beb749afe036fe99efc685ad9e52b5f14aa09bbd3c5013c5537a39f8777aa136406147da6cb03c02323467ffc9e276366d6877aa034f78ad6fbf5ed7a9e794b0b6d4b32e7cf000219ffff035492dc2eaf0cb30353153530a76061845b8e294a159b7f9ce7768ae075c08217036e8f4291af57ce928b1c4af51b5e2703dacdbab9e5ec91ecda5fa956edcb10340344ff318df57189bb04ad3f44b41771e96586d8c662856c46f26450da6c7438320302f5fc3996a75c997114e814308b539eb9fa82a69141ec28d37ce511bf5bf0c1036271ebd77106f517b27201a74e82b0dd5d28d79ede46ed203a75d693046d599403ec1814861f4ac7d95d66fb371659f8877c378c802af7f27b6a7f1c2d6d3e2c1f032adfaa1d55b8d9c361fe79abcc69d05c7bb6afa6da89653896db83bde2a6983a036e57c4755fd525ab07e814faa94d98cfb8d72acafe54125e05797f547b8680e4038d3d05639485dd718e405bffc460dcddac069347d70e935e4391dbe6bc0848cb0351888d2bdd2ebffdec7903f25cc1dfb9d1264666c5d64f960a32b35c91315a75031c0fef34677ad12a4d37c49a18974450e669ea863327f0fc9f9f543858b0f5f903c03f7869397e77de43f046ff7bd956840fb6d3f5f819474205a95154c62ec55703fdf4542eae0a49dcc22486086d5f02858d41f6b793e54308e66697245c5d186a03505f7b226064dba26c71ed2962625aa9b9b388a1e6b68267917da06c58af66600219ffff03b40b8423eec6bb00e2689cd61adbdd4ddec34616777e268782298e0ac2cee132037bc585c0c396b9b4fda8ba7a4f09711db1b2e538aa90c4e00ab78d3d64ba79c70343cd81fa69a926e96a6536be69b2e46d9495a8fdcc7bd7c8ac69a612fbfd8ae1034c89090d195514480e9deee39aadc979aa83bc21ffcf30863d236fb8d2a456f7039772bc62a8853ae7a2f692b2537774f7620afa50a195c00eea2fb8997d2e29ac03eb0fe4dcb065195acb52c11fe4fd40c38bc75a22b630812fa15449ae4730267d039626847e3063939a5f0fc1e0720126264be58e0a18abbcafcca25b671cd035d40322436dbc8b0271defc9ea47d4e596483f7266b30c0f401efa0156d9929e743be03dde9bcd6cddaa3e10782d771780a24ff628ce20b60a454aa2feab4bd3875968503900cf100e589e0566bf43afed50549adb1d1dfb1b7385e0760f307349c09c9780387b7c595fefff0281273c7fc6488692c2140f97cad5994cd43d05336a86ab8f503b1bf9a64340ea20db32cf55b9c4dce3f106fc86a51cbb8a3435206b9df93d36e03dc1d9eccc986348720ec55872f3599c28e42dbeef6d168289f708006825731fd03a22205ec99ddc39aed68d851f17e6238a10534ce36e04e24dc19e0e8ab4e27b103691fe407fe2ecc59efc0a6a42b702bae31a35937023b035c0a448072fa01609503e2dfd3d1ce7befb293bf6e12545ab7f747f0fa2e751d14a2534d7e5c048e207f00581f0207e8958d220bbfeac56d09f729e97e81054eeabd0c4f9e1d129cbe48136f410100581f02d5dee64ed029853d7bddcc641870e840b3316b5054372b2fcc443566a98c410100581f028b827bf4de396c0b8b700fc0fec52b44eb24e1a1693e0a3ad496ee74e601410100581f0245052709920e08fba047987925998402b7c47da16ac1dcb093a71ff22da3410100581f0398f1086c2f689ddd480b434dbd58d4360ab3574042b6e52644077b7dd320410100581f03bf9b3e9840e9238e6300efd6a58760f5e4120e3f6107e9ec3fd9b071d0a0410100581f030eedd2cb7e235cf00481ad0067e0e64f7464b21dca41fedbeeb8590dadf041010219222000581f026bc8973d36535cb36d9da3da8803ff0f6007bd982fcb9d66f54c01f0756f410102190b4303ae5a74970cd78b44a5288917bc8ce2abb440b93ebd9ec1f924ef2f7e375b34b203113e8ff6761bb3a8dcdb0031a4957a78e134afb0d77a6e6229054ba16ba40df003b01655186769cb9e924c2ec6da2e4c1c2f70df8933463b37a9eb4fe50da03f2f03df7e0dda886ae69295f3b5e5336d7d50c90228b351df75c4c9eba1bc545ed05b0347ff2fb76161ae51d5330d4d96fd1143c13bf96545fde42cbd97243cc1359aa503bbe4df1ac6b46c269f1356f5ba13a5eb02f19cd585b2a9c91594a050733f509c03b064f9c3c8d2da331ee11e653b4a31b4499b7fe3fb8ad2a201d4d0a8330b006203d3c4ea1b25b0787752b58d8af65bfc84b101f7391276c37ece2523eb4fdf218e03bcf767c5d778d096b089e4e33ce83c667c34ea6a7e701643467e3e6b2d0703c80380a773731596988e7c1179f0bab3c4fde283510a479ae19244b88303c39f3a74032e137909df3dd46be3a5a2fa45c9deac29a0ee8a7dffaa9d91a04e51a0335ab403fdc1d70cb3fcb8d0ff6b83309e141397ebceeee7c4e0ee50bc089c83fcb3c759030fe78b7a80adefa6b4e14ed098b92b4440f5b81eb999eaea4190d08b3fc4ba8c0219ffff038e8fdafdf3d23d4f2abad3c9cb31941dd4afdbe0f636c19867257531337165d80398ed23b8cbd9a5de74680c9375919b495ca5138ad28983cdfa1e761a0133bc35039caced744374c6c2c13ac3b29b61444799744b5e41d41fa90c8c40be7650954f03b9851f4db308e736a7d9eaa37b8b81e2f40001956a419032d91c4c2523a2d46803c16a55b5c830cd03341a8ff022d404fbaa48edd942323a85a34f21a2d32c25080351cfb263d04caecd1240dcaf5820f180b58f5ef0b830f286589404ffa70dc2bb03bbfb73f4e9975a3effab6027e1e8c5d056ab667fdcbbb2df813573c85610e3db0219ffff0366b5d3c5340e67d599429ebb585c38deaed7b4584f035933fcd99b8e07eb3c2600581f02bd2c6e6bab41aa8bb2407ad4da1cc67e7daab4ace6c6a013a2c213c9284f54dc56a3574f4db8cf9889525bf9951f49332d3bd000581f02923e3a10bb5c952cf4a85ed38025aa4a7af71a78ef8ff9ebdf126811b54b410403e4340da3c547df00a777a6ce80e0e7b60e8bce95df1e334f38c4d19f145acb2500581f021a09c3c5eb0cadacf78d67b428444411356197c78ac60f06ed7be670481d41010219120903309f0de546643612c65a189194d2b07ac6134e6b74fe524a4706ec3ebdd6c92203dedc17061d9a0395008c399f11bd57b444e8ce06a7db2ae2f59613fd15b1d6bf034f56e4d3aa5cdbf31eda0d74a6ac802e3247fa791b0439e81dd43d7bd86adc74031d899acf234fa831388f6ef3c1519e7227902a33df5e77081bfaf38f0f485b6c03ba4a2535caa15ec5376488cd2f83a398e19d8d005fe4a25a260291fa2dee88f603c9835f07e723a60ab3273bd14a996bb01c25bbdec7a7e3e9c1750a2080da964800582003dc1c0295e45d979c8c00a01001a84ec853b4232c8d1f933fed419177c3e7e04101039cc18dc1d084d317239d95a00bc46560b7c354263a94e7c29b3f76c80a078f7303c39bad86630ecb2d8aff34060f1fbab21b4bb8b3a9a6065bafe4e5f226af17a6030f1a16577f9484c48336e21911a9860353880c2c6bdc5a512c27444dd0839242039abec0afcf4b4c320ea0470f7ab67085bbdd9c1a820a812a189e0c69ca2a3f9303304b339dfb6049a7c5ca67cefdddc4797152dcf1a0ff54c87d75490024e4802d0382a6a4f5821edf3b25f8f51d029fc1c5c8a28551293763ab5d2eb8e0acc93fa303eef3e9d6f4b31f080aa23612d0aacb15e50d83f64523aa0c2abbb0ed3e16f7ce035ab6c9d06f690e5140cf5ad749fae285c53c4f62c846403463ea22bf87841c070219ffff03883ca0ed4a18119a6e510c74f3214d061ad28f566611b274feafbe68412aa91d032253a5d44c948e8f9e761b0fd4b58b5076770973864c398fc95fe46f0eaef01703eb9090f3659a27aaf68fa24bf2cfb0af39fbfc8344bbfc99b89d41665f13d95e03c2d8937d2f2cf988177095567afac51f72f9c26096e850c8fafc7142151ffab403a4f762b91772db3908de1b3a2a7e7d45f8ff2862367cfd519de1cb55b6538a1e038e6eec68bf350b69d7bfb9284a0effa2de32a638a3c2656af3148ac289fe9318031ffb79391fe03c233f60a055e24e18bc7c15ad2fcbcaeb1634116b66ac8a34f0038ead57b0276d1130da4013b59fecef847d57d6f361bb25bdaa1129f8cd9fa88c03def25662f0d36107f175ba999930c6ed03e14546508fa0f24f415da346819775033cee8ffa405426df81a5ab596fbe9c46207aa1fbad4553e1cfd113b317d8cab00353283e7401c89409c8c7381b232cbda868f924696b532e7df56236346e38d9cc0393d9e0723fc5f9eff61eb734034da87c0dc34aff060bea6a43bd158325ce391a03cbf029e3a9e9b5d8920475e40ac8c5e9075b41b978eb79a57273c9ddd66b916d03925dc8a616576d96aa4d04a593a11b3bd82d48166c791e3908e18e80fd49a33603ae79e57fc98e4bfb8504dad6bdad08f1df749a66063bb16d0f15f3055b13d8780219ffff033c570f519cc902c99dccea20898f0de5f17b2dbcdd25244c26235bf317b4b411037aa3bfda2dead6645775c5b7d50a88d837397063779296a4b1c50597e46dbd0603512bb30e5e555d28f831e97145031332ca8cb2e9afec34be7c8b61bbd05f037103053d9a3716be97fa875d7307fd7047a307bf709673c19acd45935e3dfda144c703bcd9b2a3a9c07da3af4a59ec5e42f132e08a9d5481cf85fc9697ad470a20006a030b2a3802d664b7fdde1411a3e36bfbf2095504b7b9fd3c7c60185f0845606a84032ba5dfbda9f03230023477e8a67ca10ce94b32afd53c64372142cb2c61f0b1ba03d1e3935e205891eaffc796ac2597aa81c2fce09cb05bc823c9ddbf69550c74a50361450b8a3a11f70e7f08ad7deead68e2b966b67e4d90f638f15be5df4134db0b00581f02184f5498564539963607cdd5b2e22b455d0f7e3735e67fcee7728bef0547410100581f02547749a66199baf95059d97e11f77c2ae1a7003f5313251791d91561c1d6410100581f02a7ecdbfd014b3e932792e18c9306e881dc2ace07a110fa45e05a123427d7410100581f03e5945789517b354e2b7cf725c39e41a0edf2c1347f96d3e3998331462eb0410100581f03fae0252b46d064bd3d24cdb0fcb704748a5d3a585d89ad9ef9c1b0e36d30410202184800581f02694655dbcbd7b5d757d7f6bb0717f8fe599d9551f7dbce35f6d22ac888e841010219844c03517268d418c47d8934ad6609ccd86b4510bb7a1a2f895214a9bc8c168c47dc2403c23a3eb8b074fe692aa50b972c9204c13b0b10460b27dde9fce15d272b09980f03f40583e033afff692882f00ac1e926f93d94f6e987bd4643bf9136942bc7e8f3031c519ee7890fa14f2a3b189b876fb5413140295f25dfc7960ec67d9c7ed427ec03d1e3668bb1ce1b8fda0965b5a571dc3d1856e89d2165a595faece2bda3952f6103fffff2e9d9d6c2647cf3cb78140b401954e8daa6b7fc96cdd1efa6cc4ef33f44039ccf4a08831076e434d7b85511a8fe51f31c7ac389c48d94fe3e6cce36acd58c03cace1134cf6b8b1891b062109db9ea464a9af9ca9a3260df5feba95120901fd60219ffff031273a216f157cd50adec2e68b327a0f41ca4016c142bc970e3d2d8493a02231c03bc4458c99a665e10e00191ee5cf8f440aedab225b9171a3c9cdffa67234c0df503fc226471dc665c9d7b1426a514f946858a4da1752c959fb9508d4808c063257003f6be0b428fd1fc1e541c44655a194791a14ccf985aec3ba5dbb175f79501ffd703b9f1a94acf597b06791819a9dd7140bea5d2a9ab032d976c9c4c0bdf18b414fe0377aedef37dfe29b815f5a17fdd4234e7b33fd015a4c70fe0bddb0b326ba35f3e03258024e5f22aad6de2be7080ceb0ad0130e4a3dfe39cb3a9755f1038925c10250389d1279de327c1387cf5d8721e50d63b5c037bb266ce392fe88c5b8366f15ee7033ec82419718b19137b71a0fc87dceda4d2e4ea18e41dc1abdd9dc3059a6ad17f03b8e7b0454ac6f8045261020d0ca4cdd1ad38b05d8f51218bc8afabaa40de7b150366f8841f9ccc067360c5f162fddf517ed4160a174ab9cb03bdbba36067fc624c03370fd1997b84f3ded48395fb35ed6554d34c3560fa889030d919b1572d4717d0037a8dffb0c0694a9484e51e9564bf114a21a5aafd2e8b5526f2b404be8d78e45e033f2b0e70f251ab366f3a47ecb7d391025242c59b1fae21e82c6eaa8cf8cd832f03ef59c01b4e6d6cf170e9de2756283841eb2a3036cedeb7498f2cea086b0f98860219ffff03558da32d6b49f1598d878a45aa3d27cbc3b11de45ff08efe49628026dd4acf9603767fef6765356e2f637c0b5b8d9447ba4aa4e77347d921d0b819644c7aa79f470312a5ca2180e79576f1ce7d0f00a6ca2cfc70227265def77bad88c9ec7a097fc600581f0229e185618b1d634df1a98005d2ffa799bb3c9fd15122be5edd890a4b5aa5410103da4e824f6d7c636c206707f7f1606f7cfa6ab3fc8e01fd4f9ac7da875b9fff5400581f0287948d338f1d1fa178d1ba14f9be674f31b85fccf547ef98274c0c1cf9ee410100581e02fcad1aa7d80b6f403c1a4c3f3a3c34bd15ffab377b55e87c71d70b5b44410100581e0296b34bedc91b4b0ed4168a0dde67933bec7eb89c8f1da29dc696cb13e3545c6423f1a5969ec0f20cce19d5f8c7744916ab8c0219080801410e00581f02a51a5f3ffa18f2c2f1c2535a3ba48cbe7a0e8e722422a00340e2b3a78dd442dead034d8818657b305a692d36a8010d8b5095406cb958ace10d322661db2a3e64cdda0219149603e67044e4cb66e26a3e314b1440ee6813d3a93cb8c1cc2a1597155c5bc4f2191f03bc68da9616dbb99194639a561d46b47864f63f0994a4299fad47c5592f358181032e80169eb2e298f96f8eb21cf1b53cfb99d2a2f23c90b83fa65d6c12fa23ca220309383c278e09fb2bf84397922f2d07143b2d27638a42b337e7814e8590b9455003fff437ec4ab7211a6f59a5ff107ef9bcfe8d00b340cbf9cd187c6acbaebaf6ad03704b57a3b3308ddff2124ccbf82ef9c6c101f9e8db159f0d1b11e3b6cfc47450039ec1bac2ead5ed79f4e2c5e8de2b2ce4153815262864c33c91f89b9ca9e412300392de8173cf5d0b28925dfdf87e8edd69517f0f0cf7b86964b04c8bc7914bf5f603acbb9e91b7f935065ce4afafb7431b92830c6b572086f5268cfce7197e0397f4038bd1dc783065cb1d0ce880d16458a6c78de040aba49420f8eaef4149098b52100371f9954600a93ad6e73b65467c01c0dc59af2c12e99bdb3d486384d8a403a06b0340163304a59d9e46143391e3c9db5350c5de021ae65c26747de1ec6f3bfb2f8303d8426e9a8779b97385423a95f267e9f521188ff1aa391c471b57a745285d56f203071e154a5399a2f6c8512e14db7d6d2cffc0191138f9d61bc64cd6e06eda1d78030c6729806c19c6051e8bf23fa2599c90a42dd4e9c4aabbdcd1a03eee236a885d0219ffff037d582be6f52f9df35a0d820a57e8af78941d11b7371376fb38e535e55afe473e034c0ccf3ce8e9619ecdde1902105a544575765b51d0e9b044e5108f053c8af95903ad2f6b50667917ef16f33e33c512c3322fe7f0b40a709eab2a153c8638c94a8c03fd1f7aad4ad892984534210262490f5bae1557087820e5692ec959da6a034e4b03f4356aff89daae38b3b46c74e8008aaef74af200b53928c8107e12a0a4fd4dbb03ebfc41b309647468541809d3ecdebc5b7473b3954ccbdb6543ee49f0e89d346103908c4ec7f9a6cd2348df23c81fdd31a8f57aec2c02851c2f50c65841532e1b5703c9b246f7bd02c603d08da9deeeee4c9e8631d058d8927a21a2c81c6a70d34ab70342f165a8b659e3f4f19d0d1c224d20ce7a63ff4b98115884a335fc7a462580130350432adeea670230254fd771995e57c73a68e83b7d6a6b2b49e50fcfa62c49d10379278d9b00b0eb3330feac5f285085abae9f3db368f21c48c477dfaa19317710034951b707b8d2cde1dde53d6aabca9bc4f54a9e307274f7c65489d607d94f2eae0219ffff032966ca930fe6aee16b1599ba2def8493eb41354c64183762a4471dd012e95e78034090f38d591b431f8ac05fd3891a066a3c512c9678b92c1e33ac196f1fd298d403a523d830abed50e3b0b72141bbb2ad25a1c7fe588e624facef9367df0b9dbc22032ed1c341482906d5fb79fca6bda5602d28d5828f82a4411f7667c6d15a78f3bf03d1192de12d7f887394bca7e293f401ce710b7689505477094f84a2293f3b700c0312c3d8d6e18f8bdf561ea38906f3d29f84c5b0d62eb993e13641a0b684ef431203fd783685109dfca1da5274f742f12732fe71495f1fc97384a75381eddcfd1e7c037e5f0e99b505e94006ce88bdce854a016e436eb999ff099289a54af7a9b80d88034d2115552f633965e4d4969aa055d5f0de2a757bf3457c80bf416be3d28afda4038e58b8e8e77a04b2c59392fad267397548c6fb3fdd9a7aa96ffcff433d4082b8038e81d6bf59285c1bcc6190edd4c2fdd3eaed8f92211a4f19834d81b97ea73ed900581f02e4faf81c418fdb3416cae4135cc3b580e6a98e3310b41e797b679c0b862642dead00581f0322313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0540334a9d51f6a7c51245799507ca35bbeaff4755f00581f0366f326cad43ebe9b51f3ae0276db429a4288349830459983bc8bd35fa7b0544fc2b8c41de2204978df738f97c209e9b858dcd102190104036c4f773aef96ddcac190653af5a8c5dae3145f7c049fb6ff5311d24d2c18e2ac01410900581f02fd6ee7db600bc4cbf312e71583bf712903773ffe450534b2446bd7c717f0410100581f022efb34adbe0c8d29ff85ec18ea3c7ea555aa2ba1fc7a0bf9094d0a06408f410100581f02e3d5a0135c5cd852a69fdfe3d5b7afa159824b53898a4ad9529e7db23999410100581f022839a7a8d3741680486316b6cd9beb90faea7554adaa9c2d6cd5d06d0472410102199a15036d91adede43f00962731a6d6f83a68f45c40a1ad0bd6241b466868251ed32afe03b80b6e472349b610fe93bbe00d5ae7e8afc7defb1bf5df941921ce9bcee359650309ca9edde5574b46663dacef4edd2a3c165bc2179c476f64ca8ed232906edba803a1066596c32867f8b069b4bf9010160e41298a1e9b7c772ce329f4d9324e8ea503873178a627e4ca7916c1349f99921d04e59cc3c3b7f98e0ab21dda08b8b977c403e1250c080afbc3a978f714dd43a45ccd9e13443d7cdbdced084cd7fa6a67ea32035a6eaa40b756964d0b56f5060c2e309d5674d25cf8c8c01a49a01b25c56a62b703de88a86f69819ab65a142db53228af653ae531c54ac4cc7b156f3ed8bc2e009703278c4fa21d97db48ead8ea167145baf5d9d70d4b9970e7c3380246c964bcd9b003d9ff78a2c98e9e159106ca33c2f15e672539ce61e9995ffaa854d702c446f47b0141060219ffff0316ee73fa718cf5c638a8ea3077f46b40ba12cf5c19e4043943d2e237f804f29f03928f06ef46c1716209003f54beecf663ac9ce693cabf7d20225bed3621866820038b5b862490c788cf90b83dd3d531e83aa46ccc1ea72616e37cd30bd32da42fd50329fcf5394313efa0738fed0403f765d08fc56bff7a9bc0346899b3aeb331001603f1a6bde79e6f3bd27bc5346a90a7ac08be4180ba7744f8cea4ca1f51696845e803cd4105d77623328ce312a5ce8003d6e7d64e448780dda636d91429cd048d892f03f699eb0708dfe311dcb6fd6aa77db4e115dbb89fbae439f71049f5ba545487af03325e590ac2259d3b1d22c31c970ce5903428c1185c60bfc3992e6e2be49a79d9038904f27eefc9b0d0b8c899e45514afed305db007aa503497ecd3157df2984d9b0219ffff0219ffff05581e03285711884a14ab860d505d178da00b3ff35a7f8b20f38ff5c11fd8ee9007011926ac05581e036691324db494183a85787c1fde4d5bb2b57096c66e46a2ef79badbe9f0084904f2e78c306f4258750219316e0362979d806e773677789ec13b62b1651b2adef392e3418f336d865817ac76d79403026a0532ff42bf6c0d0474861e34f93b2c852f60b2eb198d59498d8f0b4cfe8c03852da6371c782ad0dad01556cb10416513c87b1ffdfd96822ecdc4541625815d03d0e1ec60ef357003614da87fe598e565ee20f604fcc5e632d2ea325afeaf76e803b21e48e4c8234c81c78150b4ec7ba28863c510ffc20ceaee91283211206e751b03683d6f35807675084e1a9a2eb37e5619dc37f2c7b8f4d971cbd6781ddc245dea03252eccd35239948004d9fbe8de207c3093ef6d0ead92e84d35030be49e74d28a0219ffff032bad5240a1b6649b798258f1839793fb3f4d3b4996e9c57c4da258d123e7ea7c0357f92a3c9cb94415f9d32d8032a30d06de6d3b42e0f7736d6e38e07aa376d7a5034984d431c929df65bcd8854f680b98fb80a0022636b055f02339cd17e159b59b0328fe96d78fc1d6934bd70079e40d3bd8c9d55476742e6caa190183b73064af3203240f2187492ecddba061521c33aa1861d0137f22df314eafd39ba79c11f35bcd032cb0aaed27cedfb0192f8c50722101d36ca4a16d7de3b50a0db1b2064c3683c8033d95d2bc1daadfd4c99a6ba47e7eb2dfaa65b400a1a16dd83ed6441d984f87b503c87617577c90eae5cf88d9501cfe6e4a5e27aac8c1d370c3244d11582aa56e57039a60178c1e21dde5014205389c746dd218c07c5576b1eaa5df27d83da6d58b29036c7277acc3dbc18c36892d77211a3e521cb2641602629c05f6159ad51199aefd03ae0e27ecdb046d9df8a02b89f84611d7eeec5e076d2cc4512abcac377feed4c403b9c1547510dbc0d967a1ef6c36533a8fa562a0346aa3e2a877ec89cb9b5eee3b031ad09ceb1d185dc9602cc279958dce84b352188de63f38eceb4fb39a1e96d49603fc40ca1ce2f0a999d7febfa628b5ef4f0647f16f89c3c1a6fd6746528e4c8fd703209e2bd81a25a0c8ebbba690e37d16316a36768729e4da45c64d296281884fa60219ffff0392b718308de1e1c08c01c6e758f1414722443178b7b016c5cc8b2c3d71032016033a61ab376235b7ddcb77b271bf5dbc320e0b0b8409fbbfc79abff18e711eddb703e82cd30a40c2c30c1417c1e73c6eaf04cafe9cd0c1ff20fe28399f111d08f8f8030b8d9f38fb3b864ca3ba0cdee0fa07248bd5e58eba4030233b5de971bc832f5c03184a18cfb3edb53f1f40c623a5cabfd16062274f424ce073ef605c5536614b8303e71f6609f2bf5cc6d6589316c333afbd5f1430c1975a5505e4b0b255db86aaf40379ad0aa8c4e10c2bf8532d43e86a74c6eb15696573e084c90a6497a3be0419df03c85e63c278670b9f05f11914cc66021f7846ad1546fd2d02c7301c096f86eda803e507b718cc6eaa26c2fc2f4b3fe5c824ddb4d157eeab5a8270cd4bb709e9ccb403e791199be77dbf39a21872cf9641a81af050577a39190a9f03afffcf02a9fba10219ffff03ebdc5b6afeaabaed8725ecf7435d1056742f4b5f5d65c4673924cdfab1d8986f03870f15882d3571080909710c3d6d25e47c66beac4e9cfa8e45f18b6558ea5c94031ca2c8befe00d565b87354940d79cfcff0a69a00349e7c2f4fcf2e8709a6028903b9bfd231b834c771936317366688bd5dff6743b07696b103ab38d4baf7082fb00301ee351dd6e979e99c3777aa2114fd7af246debda1889b77342de89f107970e2037ce894e4cb7d90b6380f7e627a3b6ee2274b67a763f9e49e6d40bbc5e2aaabca03a5c08c80a2cba965f0968651028cf8f607267be7d364d10f4f3e97542d4b188f036cef4d6afe82b30ffe1475ac6476fa35176ad484611ce7591704fd87c1b85099036e948cb91ac1c2c0c1781eabfad53f219aa9141e538d4379d745bc24d7a4d6b0030ea29aa4c6b16c4384a8c57633ef4fc0a6512c829f956e5d3acfe9f1bcccb65c039859f39e453732438f2087506db9a9bfbcf9f4a701fd560a05d65bd14b1ea9ce036036f45c41eab6005f2678a4c9cfd24e8e2afd7817ab907382ad28805111ecaa03d98e4a9955813e07ce63679f2f7d652fe03a1cdd4694a844a58723911cc8486a036cb4eb8b7d900a8f608d8f41647543c41e2aa7434be0f5b533265481d7c8d5e103c0f3fc78603f195cc2c0042daf4b891f554167ec86fb80c8d0a4156e94cfe0c003ed7e3ddc1f4c807ad483b6099266525585f5814609b4b7d4f6da15e7a50711a30375c4c876508f73f1fe191429052b56bc79c55dc60040ac0d95d0bbc5e54a530503f91a1ec6a1305fbe8be0ba25c0c8a14721fc51e64227034bb1dd9725389aa15b03d034e220e9eb256ca20fb0496e125863fcb2b1f098569921e25a4693007614ff038fa3e2a621351c360673e92b604718dd64635f68620d739882312a3246324b5d031341f79bec3ed07db8af186e67af69482d503a3bfce51678f517a2c5a53ab95503849fd7c43a23e87a1b34043125ce0854cdd7c18c017e681a1ff1df27e0d96a790333c75effaeb97d83850fd30016ac407684a2dadf72971d255087de338350d5a503dfb02d9853fbc2fd06f080fe0cdea14f764d91f3a2df86ac3464516018899ebd035e4c64f266defb282a5df0e16f6059d06b5057f65c05a699be9a78048ad620d50375d3165bb9b1441a9f7f018959eaf1b9c8010a67bef9568f370c14836c34e4ce03b175c67a8d29cf54f6071553247932d338dac7035b79fc375d8dfe32a12ab4f0035587c1173be224244eaefb4de987c46f9bb8c4461d50f760d3932c307fdf5c8b0344234f40b657d6873ea4b18d27d22e13142d138d62db337ce13c7b8d578dc42e03c4ae7c3e30967551a21d734a4898c7f3b4d5db1b9ef2ef0920d2793ca8823a970346cdda0b756c16b263aaf9858652315aef2eb68ab5e17077ae192f3a9e950536036f75bd999c79bae2c0e4065c44aed1d25eb6928faf588413e4ff230fdaa8a2990309e8768d52d669acd818473bee6ab1e02ad49bb76224ba0cb55dfc193804aa9b03f002eb66e35c68f723a30c3d8e7e364effab16ef51a7a2d9faca5a39f19d550403ec598f8f5a43d5c41c26c61e58242d520ff62a21fdd665f237dc39ded9389c6e03b51d37abd5cb16f1394623863924d979f9483a7b7ca4f625ed37534bcd1f01e803054842e826ffd4510c8217ca02c6b959c4b51c91027803d0013a2ac17d64ab5b034ea4302d68c77197fc653858c636f4c7d5dd00c5b41de4b3cc108be427d37c8e032d79042054003dba1a0006f91d4b4ee3e6a07ff6e37e2a9720da6bc9486039fa03e305b136c8d9d4565898c384f41a98c870f63357e99b9dedd70b463130e34753036f19cffeb18647aa1217b3df30b81d5978e2f7d611de23699dd277022bf97d2105581e03879e5be2e9520932258166d232435f48e9596286cea628b03a5568e61007011bffffffffffffffff0351c520091833a226c8fb94c5fa52cf0f67f8e2dc7259b1e49d101b153711c5af05581e03c2d1886288ec2e82bff5307f9d9aa44a4279a7d406d73dbee44c3e8b400c0d47a1681bd528280003de3190e87a4a2e6c257ab3d25c7871c65ec1ad89838ba12b1389f2d2b8882bf805581e03267e50843e6d928657f187e11bce049e575919f6aa08c7b8a99ce0f3400c0146783663ec5600032e00ea20f10869083cf4091537ec7974a39ce1046b2a0eb0680da92c418b049905581e035f9a64ca75f6e41e4429c7e6ef5c9e079e60287470bf727f29d414ff80040105581d02290ae87fdf97cd87c5765deab38a5b68fc6d25cd3bab1441cb6d24880c19010e472f3b7e9ea63ca705581d024a92e3026a9983f29f638cb4d6949dde40370dd88d9e14773c46967d0c0147025823a0e6c800021910020219eb3003f81ab08b16183172a9b58a0b985a44f312aae2a58649e846b53449b865322b91037e1a688fc0c39220649816dd04317ac6ddbbbaf0406bc7b3d21ef216f630f2ff033a518133dd8ecd62a279a3c3f7011f4d71bce2ed4153451a6deccfea0c03cc4b033b47a4267bb698cc7f591a609c7e882e7be199bdf55b1e758781238ae1393d2b03beb9f52f126f202b2efb9c784382d01778e470d66c991001e96eebfe272bbd4103cf89fbf68ba4dc4bc317b699f0f0470379cf7e96d411c3e4d6662461cd36152b0219ffff0219ffff03fc0a9e4ccc452b7c21f2179df6a06a7a477e8d1c3048029c3922d3a46be3358b03842a404c8c205d645cca80f5c8e20de8530656ba01faeddb15ada7e3d7308ef80219ffff039244923d07ab97a1b91042f3fdadbfff7f8455cba83f3e7a24711d24d093d9c203cfe2e482a7bbcfa41479ac54a124158cd651fb4e9f175566c287ba6475a8bb93035dd4f8b2cc18630b6724cee5ae9a68938ecb0d9dcb2f48ba7c3b3a7dbc41f28303c02bd81c2cc2022909af69d53a9f249156a533bd1f33fbe0fbb0503a0641293603931b993f09605accdff42c2f6e11e0f98aa92b66ca694c888c4e4821c7dbba3c03cbd8e510897b0fe2f69108b0ccc51fffe90298c975249c13604d2663b16a8e970301dfcf94f2afb47307fa1a4e75b351d31a35aaaa7a284e4cdd61698a221ed0b40342a18394adcdee54a8707ae14f1e5e6c7730e9bb4f9b081298acfa6998fa5e4103aef3a3f0e23c1bf52b4a0399040343db94eb819913fcef625c70cf685c5fa1af030d291f7afdad43a4a8c78a03d607ae2b3191c78c241bb9ea6e858040a55ccca003044457d2c20eaa67f66ed5176f0c086f7cd6af257b75ed17d4a298b5e4d54d990301a8a4a19df99e9111b72e1e1863065e7e0b104c808e6ebad5e30b4cad889c8c0369382fc6ebc0f2f70b70d8410970efd6bbcf20d5785936adadec22c4046ca2af032d0f730e55fc8e6cc0a0fc10c91c94b22a971a8a9cb0b5afdf1c3ed84e41f48003caf446ae9707675d4c43f1152396b1361139c88711ada98f518169d04f677d11030117d5766052ff925c4d79cc221aba1527d48003c7a6776371e567aa01942be903d6a92e9bcc052472004f747d237b6f0257412718bcd3dd5408daac3b6eb4f8e6037b8fab878c5b4c8bc0e587c33947bbf6428b9dc5c60df0d40a2349557c0d594b03af52783b767084e453021e6f5833c2e69c4d063dfc124ec251c8d4469f7ff8cd03c54fc2616f2dabd4b5779999bd0557d824819f47ac64161eefffedbe0488f78a0335e1dd38589b8c69f1ff18a584cb4a91928d7822ffa00e6d32d5216649060bb403674e984f7297dcd45b694a26ad1ef6323aa660b0fa8dd4d03909346573032f1a03a0cfe9ff4cec658553ff53c1a1cb86f1021b0dee98b9000a612db7f3545cc38d035c8a614444f752ef567bebadc93ee0f96ab6e191ff8f3ecc7f41020479acc4d403470a1bd7d7b1a9c679edc3b217537f85f4e8d381ec3b04ca77894241bbaf769a03f002e762512271a60920dda194121a4f2d8d565ba849603e14d1fe84deae9fb20325fe731390b3b08f919eb82a4c5e8e61e7378636fe0a134dd71e9351f50509520343310e3f0bcbb510c554b7731aa3a771f2c0c9c86b21e4e5c3508df0f50cc4ae03d97b9e4039a15c21d7a028c7bf4e6514f4e7f5f37f9f963a9789e3ed42746ea60343b8d77517426fcbe1f88976b33707bae5b82fef2f39a3fe71c80bca8c76e51b0313ea7a70f9fce2142df64688e69e9a43f10f6b138353e76a9e4e506d388aaf8503d7030ba5ed64c3fbbf2f8232aaefb83f27e466e471cafef02cefb3e69aa6516e05581d028f27e018d5caeef2e8067dbcd49c7f453531809a30fe0813eaa47e5308471f3d18910ba80003affe208456e818f69a73122832d6db3a7b93175f3bf83dd7f080d11743c81ea90352b50106208b0dce3c80d2e9f04f9a259d491f21002b96e6e8bd8b57becf942605581d02da108727927b909d312166b86702ade212eb9759ddc66e7ba497db2d07011bffffffffffffffff0219040805581e03633d1aae03eb5de6d1516aafcce1cb3e2cc750579fa4b1c6c1dbbe2020040103f82e49afa3bbd9c17e8c1635e8038b412002b0d9fe01abe37c42bf14e653bf7605581e03ec5d13420b2423d9fe2da44ccb983e5404cf26651b867697af97e04d300c07462077dc0466a805581e03ba2d5cc187c121b811d76739ac2e1d239f6984ba33348f68f5c05c3e900c02465af6d46fac1805581e03fffc00b74b429c8050751f5160db0aac1413694d5226c50fe72d128c700402030d5dfd6aedb21345142e5d4134165c26b5396dd3308174fe6d3c4a3babcbbbe905581e03d8a855f1e506afa11dbc19b5c888931d682fe6d7e22838ad8f06344d90040105581e030e87069cdf06bc83dd9229435ef717edab88ff1e6ed301e751f729eec0040105581e035bcb73aa01665f68b618851e96af6f021e36dedaf3e85b8bbb1de95820040105581e0310af7d639b453573631ab564d10fc115cbf125c8d48eedf561b7d546e0084818f32fce7396f00005581e03c863e43b145b974122dc7bd0c7593b45db26da86ed658f2057d9e5d11004010219af770307e78ae862481660179d05003e2706dd8b0b0e30031a115aedb4340d7bf43b1103daf42d411e019526059b783febce138a7e283ae838b4f97de9e06296f38ecf990358ccd79099bdada080eaae511835907927fd3d24aaee9ea3965d60f46ef954ef0307238de0be5cf1e1ecf97b11df09bffcfca75daa5140a3b3b223a883d2f984190219ffff031a8354af9e48c380bcc98e55bac5ebd4ba6b1c739d6ce4bf603c7baece8a180b035040213f803f7a4f0afa4e8409d4ae36e538ac1cb604ddffcaedaf503c0160b20219ffff03b228b6f4b021ecb3d077f0eebe304eb7ad60fa4841ad6c5185dc5c086835a8d603399ec9ff03183c980cfd1a3d2661a0f4d64e93323b2441f2754714fa14746392037ef66d5fa914a1130a6cea83c18f11e328c733445370e1ab7b7ec836f2c88bba039346c71581c3ea0894811487f44d757b0e331d1d9e5d166832ffabb77368c7ee03d16fcf57df30002110b105af17b7bce79551256a2dc1085aa2917b44950b4a3a033a8f591560d81c71be39f99451c04eac0aa35468509ed083ce2740900f5a9398030c8ced1257eeed0912d4671e02338e61a12ad26584c0e82f83c51e04e92d961e0219ffff03d48a442e06cc2a9051d51e88f2a599ba9605e52330e165a560798458e32e86d8034bc8bf30e8afd62cb4bc03adf3383ec25e9dc24a2d860ce865ea580ce8ca1c4a03b74a6c5e407dfbe9159b2a61542b6fb741d653646413b093a25113b437c751d803ec50df5a4089de6680f1e4c0689a46f01e4655f65aae0243ecf42965a632c7b7036c40aba122b4f6a96843c23ca621c596e98dd1af17ea0a9d5dc0a5b99b45c4e603b57ef5b019868bf1cf4f21a73364fcd60ab7e94f0f3af94e5fd322ec34e7db7b0396f4824cb7877989ee828b734ee755c3aa2756cbb07dead46d483463ed17258a032d188aa0fc2fa8aae6133d87ae5c0baa3fbcc276a280bff9e957bbee7b24312e03cc94be2815470ba94aa4438380c97f842ac9071d66344412893cfc26c6c1856f030cd9259482566657e1e80c24713167b5b61e139d60c2112f4113556597d4af3b0340edc09994f23a80a7f84eb0731d77aafc98572527895f961593d8e70edf14f103a1b2201f2448e1e7e63c08ae1ce38158057a1682be16bd2b89febd0360258d0d039d39b6ee0de0b55bb9ca798a186d14ce4a41001c7a5a8fd1bfc4388f6fc188330327558890830512f38819b395d6fb7cd3554690c6555a99a07a7d936aa62a34b303dfa26b75db2bbafb74515a712ed4b167cbcd066929d1f06deb50182f8ae9f77e03d680a1867147e06f9579a618cdbfee0368f48001da07582903ec3f66d15f76d60312e99007e73a6aefbefa1a07d00416692bfd78692a3d809f2baefcc70f1ebe0003408fd8a6269b8e3579335f1f6a15f5783ddf81b4d4bf01cc9ef642fe0a389463030db9024447ae886c4505bd236c61a2d9a227891033e00512514a91c08ad9b4cd03cb3a9c6ad10f828b7730815ec1487c91234b2e12870dcd446619fbd83e02f79e03e8e4510e48ab5a5984640479ba2790b64da3b2449b60e9a0b1abcf85d6b3206903a33f9d3bd2c9fe8a1f6cc72a4137902e4403b7cc585651021339183e1faa867f033803f351f1edbd04251140f03f9bcef8f18153d44d31836fcae20bef8edd1d7f03b3d419e224db44723e3bd263939297aa4bae137a2b36e8cd6342484562ce5f8e039faa0a056f3b78c2566f7838f1bb16f8c1f6ef333abb6b0add75e9a9cd174a02032b8d9d08b25248068d5d957bff31309da2b25ef1297d0bcff2d5f061fddd8faa05581e0358828e63a88b93cef178dff0f5a6ea61d2dcda3459b3c0b7556f2be860040305581e03dc0f3f0b1e8e9090e7547c66abf03a04f61063c5a26b75b578cbc1fa500c014702d478c28de07e05581e03c9e7211a2657683409979c46be54f13ba7cce05f0c9865fb2d8ee40e900c0346272baf756d1205581e03266a85f4f71eb44186e0e67c5be14b4cbd65c262f3040e06316ba956700c15481c1f65958595b62203fc2a23392fb52c4c3854b848359067cbc31df60f92af467bb650b4d28e5187ee05581e0335de6bdf35d1f9e82fb8c09c7b37b37d99a92098a1dd3d30edc11c46d00c0546156401aa2df805581e03cba39b7364c0ed5ad410662f7d2cbe29e4e340598c7e4acfa15ffd49e00c034447868c0005581e0315465a8da7e96838a170def12b94354fa6fd9061f67f8273ba9d177d90040205581e037f78c94bc57ef60ab980efaead860b10d8c945aaeb5ed20712cf643470040105581e03eeb0acc6efe93bd75cdf77f44c9cd1b4f5e2938254fe78c17f440665000c014708ffa8bcc06800031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03aafc9dc348308b3b515190df0182dafb2a41638f2b566005fd923ab8b007011bffffffffffffffff0219cb5f03f58d3f115655abe99d8b430b3115602756ce33e2168dd6e460f4edf6ac5d04c8037bf7eb2cd8ee476edf6c2b8c2143e3c774d424dfeb815961c4760ed5f7843bd303443ca0490f507c3c20281a7a762038f1fc976a719c08ccf7b1c4568f701acbe20350e72cdf0492cd795459009b091450b58c4f720f686084f090109a28f62cab5d0219ffff036d776913c0b99d8692e1f95c46e3b379134ae53fbdb3f67c874b1752339c071303a9f2f3198b96724498a1a91544394ecb442dc1e4141b82b82d82ad61303b3a6503a293cf41ab1bb34f4718dd8a7687dff9166ef869a1d0d1a7be8c4e03553af8c50348099323636131d08556a3abfe5a88e1eb09c8d66f4f1e4e2ae785d43331824d03d0c3914609d2be86074e36bdd10ef068668f85f3e20a07cd799d102f74623a6f032c4a490889a3ce01867e0233b330b4380a1d643a42dae2d28a1bf5b8a9d2d04c0219ffff03bc203fdb2b62366be6d90bc456be7c6dd70565cad8cab33d863e65cd85660727039ac0e922bfd5873bb06eadb38d2be5971e7bda4a2e147a36113014925d5e7ee50354f446b1956ef43ffbd11a72ad404bd6a25acd29b3f2f3e4525cc8d8bd934c16036a7e3d705ffaeed97e516b6b7d44ea1ff5e4f57c3ea93ccc841c421f4fc957370306d79ceb4ebcd3602903eefdaacbbc747a708b138eca5e4b59684376a5c1dc48037c60be4de1a55114f15626d6c1a6b5e9ff8bb79fe43bc509cf013efd5e1e38a203a30d342d937486028f9c830afd258c260affcb94fc6d9871da45312b22a3812703c1ee92798373a80d202c37cdd809f9b715eb281afdfbb725885db4c6cd0f23fa030c0f0b049cb11a938aa6c5324cfa4c52b88290e05cb813993942b9ac7c993f01037ad6e7683d1abe38bcac1d7388367ffbfa88d916f77ad2328a3702e792182e26039efa4854802c99d8ddf00da4ef40ef8644c4d321cdaf677158e7e7a1aa58e3ed035b7054f67441d9c58e92f17b9fffd508e2538a1370c0307412d70dd8bcd8a7310219ffff0365984068dc6437c32e54816bc27df63c7e50b9435cb39103d3e1b260665f959a033d8cc76a99bd3807390c9007c41f787b0e14c024afb81b1d3fd19496e524928d0386eb7fdb37fe76a614a8dc48996030d271d121a6491a27aeda0771e943f670e90325fc7e5ace77d269eb7b3dd3941da311e8a699e4bee053ef77bcedb47aff92ac038d0946ae728e5746f9407a6152647d1fc8c601a1cba84b16bf4dc5f15a6a0528034176b0779256027df617e25ba79d47aecd5cc6539c40585148a7dd78869ac253038b603a9332399d21839b961ae190db2c557b3c434536ba763a635811c14eb88303059d23192ba74ceb7a7560bedec1fb584d0c0220f68ac4f474ce2d161c3acf120356e1f245a82bf3aa8b741f751e22230bd08e0354c9655159ee735057437ee34603ca96ac7124b00c98bf81fd358ff774a9749614b788657cc8ad9cf73b18b8376e0396c429d1a321fb49cbd9429ee25831a7316cc4c3744614c60d420ae5629d6b0e03e41e8f9e0d027e9693dfa8785ebd14d853d152e3ee53271b69242fee0b489f38038b0ed21ea9e8640dbe1c87db8962201ae0e461458be7d5104f616aba8012a8610331d94f9acb8389b921e4b5f7d72c90103fb479da6dac42d75ac5b1b61efdf97a030124c1766f0164935e83cde8d6905759afc4ff78a3ce1c577b417457ed727f370337e46ac7b5f85fdab3890063ba768d5193c08f793081c9c09455e62c70d5b80e035a33f2a9d6aef95127d02d7c889f85adeeeae01ad1f5476f3e8b5296d4309ebe0310213428393be49d8893749fbed25d7ed75f87e124a16b5fd63aeed24d5cf11a031cbb8da54704dc19376c9b5b2967e5b8e9046a05010ba2cf3517d326381aa639033d5db918e58714fe17ef7c5fa3135ceac9dbff4964784ef6aab71934570e52890396fa49e340c1e04b2dc6436e0b01e1727fb0f3ab3d936f3375cd5ef5cc167ce6038b5220700cd51068fbab978048592dcbdd2ee3c1b6faa44bb635d5e909a0ead00348436544a32d3ada738b212476646f9d019b513c6a132127dd97839065e6bbdc032fcefeff785dffdbdd706823b4d1a0e856e2cb70df7a83f7e3380b5bb3a8ffce03b8f677dc0f3119e800cf0827c01df8bb76a80d826318d29ee77b42c7089cb29103d8c8f0d796f1b31984008cb240982fa394b92127a39d217330be4bd8dcc54e3003509d6e022fa6828da9c53bc38ae05f17521137b731246ac6c507796da5c83443038c8204e42a4776f270bda3a4f1b51653bcdd4990a047e81b495b295a12bdbcb203232d3ec639d2a347c638cf9636912319c8bc54c95f86d4f8ea68bf951a4f40e2033bf14bc5be1a5446cbb6a38826d95fef512c04976a8c20f5c0e1476401665a1005581e03d9da506f353797263424ba1549fe0a12092747d49ff244625b2ed6966007011bffffffffffffffff03d9e04d31d45798f2833fd286b169c2dd45478c604c0abad99d8d45eed56ef9510399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe908033b9b39f20dcaac9ce898a928d80cf5ec1b5a784131a7e570f44c9ef37087daf705581e0377c09f7fb661e65925714b0006c5d9c63ebb898af3b8ae83c3372b98a007011bffffffffffffffff03941a28b98d7e7eb2c9d4860a46b4a1f0e3d8d7f5b8e7d66380aaa00245738eb20605581e036c4b17017497ce8c73a8324e9fd44226a8a4957fb6684f80f2e47a7b3007011bffffffffffffffff05581e03b8c57cf0c1b01f652ef9f25f543edf7a0d59a3730c55962866d2c88db008470227047209840005581e0342ce47cac6730e05e9f5d0e79f067a5520acb80941c6852cb6635518100401021982b503076174576a886d9beb0959f2ffe94ec78f683934f5aa858f76c341b24733401f037d19639805b1b83a9cb56840fd005d03e76c4c7a381eefc53517c7da24e750e9030b5cbf6ecd563cf225818672435eef86312d580265b4d341e32dca54d2c3f0df03864ee689037e761284c8c0499d0fc676415e679129518f50d3193a9be7228493034db2d5f84468e316ae1330c287b45c2ee10126e231584e2d965f928bb8c4e49703dafe92521d491071ee8a5fe030826924f3524dc2dcba6457e67e4b2d01bd2e39030fd3a552546a7602bca797fe9c6623a5c228bcfc330f6698261a3940e113a9f703dfb290155cb32afb0a2e3916138e3b2d4db3899aeeffaeb40a98d4c9f6e117a203d2d501cf93632f9535d50d648571f051eca2436cda066c3ee24cf6e1c2abaf9b030c2a41b6fd2516d4b1db72d226e3a8125a3794f174cd02f88c8501deb8fcd24f03e44618ce50a7ac50cd37cd9a78c6cb50e74d21b25e5cdded8127ec61398269060305770cf685a8628e0015aac374e5a53da719ab1920fdeac95ac382d297245af203c07cd3f8b563d2e395a50b442da9ed08df2803df58d5cfa4cc733a488f97b0a803108f77f48631fc1b68e21020237ba9c951faaa5255399a8cecf79c444509297f03757971cb7e42f7ec3bbc7b4a623f75df8137334a76f936e94ed57e5a1e8d7ec10219ffff0315aea65a0ba9f7bf4c67b9786b7ef8ab4d41ea5ba0a1f26ff756920f540f353803a0acd5990a5ff9a54685e1e09304787f310c3d446c2b40a643de262efffc907c03228e9b1c672999813bee8c9abc882bd1ab5f02420d28ea686589ecd385750ee7033148b685c273773f7348782042278aa34896a2d272963344c481f43e2b7987fe03c68fa8b83552bb96cc0d3b4b537e095e19ebdf4a29846b433f07822f1375770303168ee4845a88e1c048c75827214cbc11dd7aa499962ae522379dc2f7f4cb99880219ffff0219ffff0317c7f6a5a6c6a5bce4addd3327f0fcb7ac86fa592a916c8aaf10fd18250654bc0219ffff0380f7df8dd2bfda6696d75758e44fe82178ade72e1242b35441164c7bfa6b53df038e9d4197c06bc59ee6f35789073feee8aeade69366bd6ab03bd8971397adbbeb03a7cf5ddfeab5877761307e28cf38badf92c41ba3eb853595ceab9b2473e4db3e03c68996680f611823c69cfbf97c82a0847434dc273c27889397b0fe7033d1327f03e8b31fd185fe64a3860c38d40db5dfd811f2acdfcff88addd7eed262a2a54c3c03800a363ea5c49b1d138666128efd458526d5835b2eeae7c30ceb4452c7f1eff703c1da41e6ad80e690faf17df9bf1a5551429713bb30622163ce11865aa0078ced03530abee5cf22c7ede81ef207a1f1b3ede85905469ff8632bb4c9d7577d08b58903f28c58c22b6eab64bfc55d9aa4e3b790c47607b8f4555cd5062011ccf11e2bd403dfd39d706787f37d98a151c6aa38818a0fd4b4d7fa347e0cd2d1409681f01da103ae683a4d45fa906db8f27688eef6635f3e760fd4ed4e871ec56c2d2664f7b4f503cf22959149f7c5fefea18e2fcec5a1731f37f4f519ac4982077e33a147502e0c030ac61f6e48c36074013a54f3cd3e427f905e2c6598f02d3dbd3fa040cdc1d607035300da535b9542ce3d97449afbbbf1601248ad44b560ba5a11fa5b658d4e0d0903b607be384637f7c491f0ac554d95f79eb997209abf7d5a33450940704e5afb9703ec7955ddb3b6ceb6b9b34731c45f8a1280e6cc4b93fe748ad30b4f51720bd0fc037e461a01f6c6ff36f5216562e07daddaf1c9d27e9ae7fdd1c9fb199741d2645a03d486fe05222ff39223be7444b0469e5bc6c9bc7f63cfbe8a8288df46b7fdbbc305581e03ad117f0012b56ff07b7b33be4593e143f685a987b1413a1b2f399e9270084701f7cbff79aabe030111a6402d8531ba8e2acf37f5627652e28a970e9331db6b26cfd7690a857de703d76182dc910ed33cfdd3859dfe91c4836a9e8a395368252718e6cd605590a12a05581e034492af90ef678f721cf842e9af6b9200c2ecae560b5c98eb0a3577d8700c074684e53b25e36005581e03a6b90d0377f4de44e048f0b2e9bba429887578bc8a1bfd5de707e0ed00040105581e03e269245bb0437762a92e6ab85ba39ead6f812ea5ea5001d6255bae48f00404035a043ed4ae18650e7169c25ee5af258200d3282380ffbd6534a839ea936a901003ca1e2b4b40715919ac2805e58f8541ea86b1866a702f653cef2e593c07b5172b05581d025d405c163964448159723f4de373677244d47426fc8324799b9aea2e0c17475cc4f86a0ec77c05581d029a0016277674f060823c23d11f604ac7ec2c2b0b928b353f31e3a42a04010219014005581e037fc23f83f6c803b455603f237d74346199c27c7bb1a8aacdd71cd093e0040b05581e03a8a9e5b4491ffa392e11e6c3cb30c11b40d18a06fd44cdb259a1fe0a4004020219d8bf039259f536d0e209715dfbdbaa09939deb94cd7916a37cf8c19e960959fe465ea5033931a77a0fd7bd914761b59554130f7b8ecd2448e97bbe13cfc0ed70381f2bef038d84ac7e5b077ad7bdc14170516a2084958ccab0e955c5875e0eacc59013016c03fe3c6156983fe2884f57da05969a04a2494df968140ab452cb105cc48b0809730314fae5398693e8ffca595bb37255dcbd9539d195c82ef3d6ca64505da8cde257038c0ae06a6adaef996dc5a3f05a0c7c78c03153b78a25e698150a60b639c7c5de03a71cffae2cb4c8a96ce02ca684750a605949e54833726a15c353a241ed1a1c1103cac3bc668a4bdf613a5bd217260a8fbec2214af5e17d7651809c37bf52290108039ab1dea17b08ae46ffbd1e0b0d32d4d5e50bb1f0e2e8ceb54f71dd251e2babc8038ed31648c3f3f7866e36f2ea11b83b62ff7372d96ce6d9e1691736924d4fb04803e82198cdfdf1d217f7b3b03348fddf3c1031cecef4a22217dd561f3b6c9429870219ffff031092f04cda5e13418e177cbf6ca6057803be91a7d20c723f5274a8781689e03703364feee1c7b9ad8d8d868450f20bf00b7045ebd1d65f866a8adac30e8c8e9e2503ede8717eea5746a01196b5c43c810f930896173522c50b750310d5bc8f875248031bbf47d0b17263d0e2d954d5b2a9b60fd19696b04a206103bd91ca31e25b6967031ddd842362cd9c5989446ec10e5d52e8cc080163a6236c66421374273611c96503f88fd64047e42dcdf6b71b1e672877673aee43df304e82ae47d54f893a2db9ff0355463c387d7a647874343c32e93176981d231141dce1ef6da91955625d2b422c03597399e7b89bd1faa3c78dfbbcc7142749022afdb2d383b07838b63cd57bd749033cf5c93e618c7235f07710539f64dbfdcfccdf523d7a107ab304936089aa3e20031bec184d63c5997a79c4ca0fc9a45d785c8964b71e37bfbc48ea1f41eca4f287035238c1f39acfadcd8a3fb0713352acf45cf7c74df876d212c64d26b8176ddf0f0219ffff0397fd99aeddf69c672fa697c94098ca8364da98b65bbcfc4710150aab36e7d0b203ed8ad32cb321f6141d5123ff0a8417f19dcfa8929f7a2284498477d65c023f2b033a97b9445bc7eba72ed3bc6aa16056c1eae89362c85aa601663ec7ab1cadde1803fd747feed95833b884516e44e048d8a3f47fb54270901f1c79bf4eda0312e42903892173c9b5ece856259dfa1f79a44cd969e551d8430ed9a5bcac3f9a6e2712d603c178f0340eb8e2ddebbaddd44de84ed64c2b3381cc5b0fd89d750285cc28fcdd03fa8976f569e6639f76a809552386f2de512b451e441bba223b37f6f289f157c2038cd7a167973deda8493036aa2a72f65a605912a08dcbb35235f2a0d3a01229e30347e439396968be5b42c221b19b8cfff97876560c8532b1a8434169b9def16c51031b199520cfe8067219bff01daa94aedc888ba3651a9aa1227876499aa1ab923c035a0340648601328b882fbeec50a676afb50dd8f8232ac2dfcf6cc28e1c0b077a03dcb70d70b234da7b193ae994f7016a2e5a692043e1c870abab8a0bd9623ec13203bccf50d7b0b3493d367e5eaf10f4b62a060187456f4e7fe205692c843800dcaf0219ffff03f6bc44d8388c48077b1fbacd6f6f4a3cf16caaebaaf33e16ca75f1feaa3527790325fbeea71e2129793ece077ff91172734cc615c18ff8557987505fd4afdef74b03ccb8958deb2cb505ee2730b01e3973f03c4dea3dddb68cc6a66333d40bc6b80b03dfd5543aa02ae285a8c84785ec2e2bfe01690182eec138b7831ebaa3450df479036b613dd0a0a10d1d0613721dc656bb244fd54835acca3f3f9b2449f5e8f10c6d03532ce39d5a5fe6ca247a130f04c60a0b9b800abd77a8c8944f01434f063a43c5030417400f02890136af2856a0b9ed1fded8cc624e1a58ee2b367da76819d515140219ffff032bc8a0def3f428b024f1f47cc4c8cb2bfde204b2a5194e5a0f12f2a8e836539903c2399e9d9b099722ad2e4c837aa28a0b3d5399892e5b3f46a43e98d8372b90df0358941f60e1080c250f6f916f6751c892240e17b248330c579ee1bde47f2c915d0352fc2dd1b451a72afec8303f9ef79ed6b3a8c31bd4eb60f623f51af23fded76f038c9f098443813f52f68ae9a369cbcd605e72c6c19343636693cd94bc2efe230203b9e2f1278352bb1fc2e66bb78e4a281b4312c0ef5a62a228a4f016bedbca0254034a7f98943dfe44e3a9fbf226a5f768642b9f0130a15a2593db08b32afe4de5bd03a337614dc2702b85a41cb71ff40e6483a55780170500de50269ef6ed1bdee56103fb95833eec8b0105bebc38825d0fde5fde01b07ceae893be1c03fd14a0d64a68032f2b35bbbdcaf52145f62011080c8642ee59458606f8a66eb59a99b4528a00eb0344b3b39d60d6498850ff5c225cbf863ac4a0a41c20702e780555694eeaa2e6de03d6da52007f377bb3cf4b7408b74b0839532363565bee3620599b02afa91bd396031cda3cef9300a5edb74a7423aeb36af3311cf7e63cf2d59713c2e23f25933979035772ee9bd02cebf54bb468fc9864415123ff7728d50f89ec77dbf0411f899933030fefec37b4698ebea2368c7df72e585bce9f3c584937840a1ebdc9e06d43992f0307f9885ae3079ed011456a65a8fdfa1f5a8a1172294a3253b4a98cdb64b26f920323821d7e6db57db2e1e0d6e4d20ad50f3f41fe5f59866c86406817204acec66d03f7b7cf55687a4c8edf82b4e751599be379a3c1b1b4dde72c92dcec7c1d96f7bb03f8d9bbcf1f937386671303480510e0931ef9d26d033e9118abedb2efb7217ce603d65552996f84bd9237d2b1ae233539ee9c41e16ca8f3304a640c9ffa994f7f48031eabd995100be43076a70b3cce867b4ec492c83d12bac4b825c4a9567ef2b48903b15f149f863b8636fd26c75dde0703503424a92436fd7d49f2c7905e7558dc6a0301301ed5df837726bffb5ff838143039d3cf83e0a9cfef8f59f8bd7228ab5a6f032ee7a81d5170481f8bf886afc26a5f092d86900b35edf29e4b00f113435520e803e9707f5a5dfc39443640b31ea58b4690b52bb0edb73d897c529b17bdfb7e910e0302bab01b2068e85f95088b584bc6d6574754db4a2376ffe198e00db9469f3ee9036518be860da82aa0d17cd9a119829dd8633180b106db5e79b372144e1a6a01c903288c32da105b58bd478e808cf4dcd513ae9d64db7684fa26c6b2893e62efbbeb03053e1c3f7207cc585232cc4978a5613d3e3751dcba441d3fa35a2ae9847ef54e03d3dbe317bd1163fb876f8f64b7933473448fe9e7e2af43a796da20d8b9ff95d103ec441f8a6215107a1c178e17175ec1dd68717ae80607ab1fd0af55db5497472b0356c90e9d6f56a18e72458fb4250dd47e62379cc34814a5b40d9e693a15f51a340378652ac30ef790784864f929f8246854c32c79d321c4d176e9226c37c19abe9e03c956825133e76aa9d4d2123168c1ccaa83bc1ce7edb2251ed583862f4306eda50337fc85c6c37d7336f889da5864ec2d2386b7542bf7704e157690f02a17a27a9403f34932123b1d68e1837c19950da217de1cd823fb00f4476b6d8fd66321432ce50304c93ab57071b84dbbcba06f19c2f7860796a1f0b6669d52ac152c255841b80603a4b031db5d9648b1532411a2e697fc4a813ae50a7f1266cffda31984dd7b49c9032a74b204fe3be5a44878ea279098b42a3d5cb6251ef0c3e348918b934085102b030cf21173bde3eee7ab6f6c3515a88fbd598b09faa6b3187131cac6ba23778e4805581e03ea7fa263637bb1d0b8ef5500c7f5647e041e13d4087c381ba8e6cbaed00401035ca6644b9f9a86f73920e3959e16e01c733509676fc03fbf609616135fecdbe204590b83608060405234801561001057600080fd5b5060043610610128576000357c0100000000000000000000000000000000000000000000000000000000900480635c975abb116100bf5780638456cb591161008e5780638456cb591461031057806395d89b4114610318578063a457c2d714610320578063a9059cbb1461034c578063dd62ed3e1461037857610128565b80635c975abb146102b45780636ef8d66d146102bc57806370a08231146102c457806382dc1ec4146102ea57610128565b8063313ce567116100fb578063313ce5671461023a57806339509351146102585780633f4ba83a1461028457806346fbf68e1461028e57610128565b806306fdde031461012d578063095ea7b3146101aa57806318160ddd146101ea57806323b872dd14610204575b600080fd5b6101356103a6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561016f578181015183820152602001610157565b50505050905090810190601f16801561019c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101d6600480360360408110156101c057600080fd5b50600160a060020a03813516906020013561043c565b604080519115158252519081900360200190f35b6101f2610460565b60408051918252519081900360200190f35b6101d66004803603606081101561021a57600080fd5b50600160a060020a03813581169160208101359091169060400135610466565b61024261048c565b6040805160ff9092168252519081900360200190f35b6101d66004803603604081101561026e57600080fd5b50600160a060020a038135169060200135610495565b61028c6104b2565b005b6101d6600480360360208110156102a457600080fd5b5035600160a060020a0316610516565b6101d661052f565b61028c610538565b6101f2600480360360208110156102da57600080fd5b5035600160a060020a0316610543565b61028c6004803603602081101561030057600080fd5b5035600160a060020a031661055e565b61028c61057e565b6101356105e4565b6101d66004803603604081101561033657600080fd5b50600160a060020a038135169060200135610645565b6101d66004803603604081101561036257600080fd5b50600160a060020a038135169060200135610662565b6101f26004803603604081101561038e57600080fd5b50600160a060020a038135811691602001351661067f565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104325780601f1061040757610100808354040283529160200191610432565b820191906000526020600020905b81548152906001019060200180831161041557829003601f168201915b5050505050905090565b60045460009060ff161561044f57600080fd5b61045983836106aa565b9392505050565b60025490565b60045460009060ff161561047957600080fd5b610484848484610728565b949350505050565b60075460ff1690565b60045460009060ff16156104a857600080fd5b61045983836107f1565b6104bb33610516565b15156104c657600080fd5b60045460ff1615156104d757600080fd5b6004805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b600061052960038363ffffffff6108a116565b92915050565b60045460ff1690565b610541336108d8565b565b600160a060020a031660009081526020819052604090205490565b61056733610516565b151561057257600080fd5b61057b81610920565b50565b61058733610516565b151561059257600080fd5b60045460ff16156105a257600080fd5b6004805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104325780601f1061040757610100808354040283529160200191610432565b60045460009060ff161561065857600080fd5b6104598383610968565b60045460009060ff161561067557600080fd5b61045983836109b3565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b6000600160a060020a03831615156106c157600080fd5b336000818152600160209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600160a060020a038316600090815260016020908152604080832033845290915281205461075c908363ffffffff6109c916565b600160a060020a038516600090815260016020908152604080832033845290915290205561078b8484846109de565b600160a060020a0384166000818152600160209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000600160a060020a038316151561080857600080fd5b336000908152600160209081526040808320600160a060020a038716845290915290205461083c908363ffffffff610aab16565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6000600160a060020a03821615156108b857600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6108e960038263ffffffff610abd16565b604051600160a060020a038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b61093160038263ffffffff610b0916565b604051600160a060020a038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b6000600160a060020a038316151561097f57600080fd5b336000908152600160209081526040808320600160a060020a038716845290915290205461083c908363ffffffff6109c916565b60006109c03384846109de565b50600192915050565b6000828211156109d857600080fd5b50900390565b600160a060020a03821615156109f357600080fd5b600160a060020a038316600090815260208190526040902054610a1c908263ffffffff6109c916565b600160a060020a038085166000908152602081905260408082209390935590841681522054610a51908263ffffffff610aab16565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282018381101561045957600080fd5b600160a060020a0381161515610ad257600080fd5b610adc82826108a1565b1515610ae757600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0381161515610b1e57600080fd5b610b2882826108a1565b15610b3257600080fd5b600160a060020a0316600090815260209190915260409020805460ff1916600117905556fea165627a7a72305820cce49a7abfc4bd1fcccf59df283bbf2975819bc0cd4e6f6755f46ea9411bdc6500290331f6415b653e48c7787116909b8cc6946d8beb8b4af70696b925b08c2b3d303e036da1de91c4e6645c835d29e86bb94940fe3dee7cb9dcdd51a965d71143fd63e0039caf923da1d3d32874c713ed13d76d70a18f819b58164a4d460396b81deb4a730396c2df84e0a4415ee1e1ec2bdfff1880d75133fa88ba2ac4693c5f272ba8ae5a037ffb3197cb8748c898caeaa6ca15bb3776c925d4f9c969bb9a83ac9ce4299d4c03f02475d0f7f61c314e6031c5247e5c9923c6c3a40beed174781255e6f7508b3c032769313201ca4eed16daf7bcc3a4912b0f573d75b12650b7bbfb4bfca44be4b80333c9d4e61d246b65ac59461bbf3b6330c5123e6db2daf46064791a340af63cb9030fbbaf76014388b5529eac7dedfab4ea1cc358f5ef8554421f8ae26327d7de8503538fe1661b5c199778e456ea2f6dadb5a95b5669482639c049aee76c8137872e03ee40a0c65a38e32bf67c375a63ae045708f798215c85e6dbd16e428c8db36ca70349ed362d1e3daa8416903f899a6484e69bf4d55e208256c4418529e2c7bab25a03e394ac51c25d33788a9b037fe782f5cd31f703653574e5718803c0b9771e0a3e03ccab10cf716654b00bec90d242575f257a6a95e1dee57189b751ff1b205b14e1034cbc5dab1fc857dcd7b50a507356d3e98c69a332014be3fa8fee3132151577c403be1edcabfadb894d52c499302d9e4614131892dffd0a0d97df1e224acbedec1d0373e07ede7ee8f6e847699ecb74bd70e54373f33db648115db0fce819927a4c22030b87aee56753e8fad9f24677d52aeb75212500188fb2af49a0c3eab2f910f399038274b7dcbb523fe04f489ed6b17e44cbe7a0fc9d36b710f8ab8af18c9a54db200315c881201ef55b5c8fc0c6b96a469860df0677b84764fd230161d582965c066003eb255e39ea190615b1742af35b266792c53675f7fd7fade874b9ac1fa06ead0703c5def145c152bb6c252f6855d71aa251dc04e573d129f69e6a1c179fd53f432803a7cbb411204a3f01f54019f61f03c3229e4428c5461ad815a80fe3a7d13bbf7103a11f42e8c5afc68e8d00d266a4cbb923883dd7f4b5d78b9016d39187376eb4880354a1660517e2c70c657e8f68b9e63d794cc2fe4f4173a4ca6c0d25d99a7bfb580351408507e1197f749697fc1ae2bcfc0e98399b42197d5853c166ea21de80accd00581f0307b4b57f7f0a4b220746d2c00f39a71c24ea98c7ab689cbc81c11eb919f04901f8556cf7df96a8000392f04cf7f7eeaa7183f65472c018a275e665484bc9a531c910cde45bdabe17ef00581f03c255ed84b6d513e9df47e20e62c5e40cc63d927995fe5cf23cf5a17d7d005820ffffffffffffffffffffffffffffffffffffffffffffffa4cc8daf487a5a57ff03df273c84a08552d904333ec66d334b4892b55a1d3847cb3c35d7202bf0db1c0400581f038210a59560cb544d6475e5bc4b78aaae5cb681ccf120be068817e4d81dd0491b3d969fa411ca000000581f033c9a3e58c2b289bb73de89e5b496ef933599b9e5b5b9d8497599c261b7805820ffffffffffffffffffffffffffffffffffffffffffffff827cd947726b6e2fff00581f03f17720909b105a58e728eddb17520d60fed056d5f261845c13e0f7d96370490be1df4fae7ddf000000581f0369c7456b7f7fa8c294ee95755c0df4dbbcb3270ade1df83124e73b5816c04a0207443368b4f147100003275ec66e121cc4eb8359d299dbf22f1b6e52f252fb313e36866bed5f7c5b7f9702196cbe0312bf339121635682405de2a4849ae4c3bb728f6b1e1cdb1460e497d318c685b503880a53be863a2cca3ddb65ec9173ba8e3df19a2c3dbdb3f3daf24548f0103884038085cc7bb0f45020e19481773f936551dcbe10625ef7d0a0008dc3ccb390164103b7480c8843acc6df7a395587020034d4b76a432c443dde6860d0d9a88e6932af0379da7dfcbce90bac60beb101f5e3e86649983f97596031fd9362c4ac5224f4980323721f6f8ed6cf0b6a9b7ef36a78b2ed828dc781b8503863033c5726be451e2b033c4095c3ab17bc095fabe4dd98c9d11dc2fff0cf0e6a5c7f375b42cffb7a742e036d6ba44da1f306bdcd68a162efa4c82f5775d15c61150f695e98db92d102ffc10219ffff03e7616f97ea17af64b42a225bb86a79fce0ac313777b2387f53e28eb1f49da1af03fb3c41509bbcb98cff0f4af12bee9ced6ba6c3d1bf6d32e663914df7e4291bcd0219ffff0311091d7700f545f076555828f2b716935ef1eaf94f6fcf8ad0ca24909e0599c10305ad4695450fd97cafef7aa778a10ca74809a2f07554cf936406ab06a8a2101e03ce83e29a2a171c8e569fa4b19b906ac28d45e101381bd6e4b85e30af53bc185103f1b5f2ffed4b65d26c85277e0f4b817f2c7f308dc4ee79c79550fb4179ca32c703bc933a600dd32c8562c96e887aa383e1a4a6ffe1ee9d40a09c87fd1dde16d6a1035f650338e3f72921961da7c8f1ad4efd9ec3c7bc50b418873939b966cd3dd531034a638edeab092e2a49465fde4d1d86c4beb4eaca8a83e374b372ad97aee7c47e0346fb3053523bc085e74609a60054db67a2da9a488b80984776b69545cdf324ba03521818d9dcd84b882451b3b82c3e90a2278a051314628cf91db6d6bc78ccd49303c6c33bb69b6c4a2255e1b095266ca2e1b4f1771e3421497c5caf694ff81e30d2035afa47eaefacf39dd68118e9eb51f9e6f48df057ba3716e84758a48cf94579a3035f8a154dff7f94f52629fca615f80bf875842ee08492720eeb212fdc753f3a8a03724ee036457799c46351b3644b44372438e7761c644a43d4eb29d16efbed5cf703058e3d62fd34e414e9ef4fe24247a0a86809e7bb285366b3e7f82fe7477750790219ffff03318c10b70e813d80c4cc5091ed95d5b8438951b6c151fe90b882f8370156f53d039b8080cedf689b7ceff6ff70d8f990d73c466293eb8f0fdf8cb508047f50f5d203df91657f972e180685b9ad571772a7130e62b83bd61a9a384c08a89f4e7a1c9a03ead46ea705775daaf10ff0679b2ec45ad058ac34e299bcfddfd9d83d9076a8e60381a697cc1ed0e677eeb6f2a23780ca11f6f13b6613d27d13b5c01e73f658f41303354cffc4e4397f51ad625e1627d520f05dd79e1da6a1f043c41981ee5850a3a6032df3e7bb6246615c486c06162ae2fa87cafc24adf28fc1e6bbfcbb24b32608a50352a3bb8f782f6bf500bde9f8ba1a46a032adaae7ca3fd03df56526e1ebd7bd11037978892c6ef36f3eef6ecaa5cfaf493faef2c49c79b94c67cd3318426e7f488d0355621f2674ee0249160c6cff573c3eff0b2390b1b5ddf5986b8af63be8923e1803cc074b379bef087ea7fc84fc589fdf1f5f6777132800a344df08013e0c06b6580398bb42250be6c49cc9f074f476326f56c6bd9c278aabea847dcb39362a63ef8503df4da5e92c5842f95de2ee5f526ac633d75c08b8b64f539e1c709fd5e44cf2e903c9276b51012f803df6c46d9dda2e2c0f0ad666b17396eb24f654fef9657f456503540406d8f979aba3b841ecaa484ccbcc77dfba15f2cf0e21c5f2ff17bfbc83ca035cb7a60e2bcb5486816c2475705294e4ed2692b9245338e3e373d416b792b8e203eb84d977f47c2eee5098531f87b4e681588355e93f6aef31a1103966035fef390328234834f1f631da55f4de6e506764ba18c2ef0cebf9a60355859e44592be22803aa0a34f89733ca551c5089a4a4b0225f6939dafd743601df3a53d0428d0013ea032724e27455c8bae9497846e0a0a2b5586bfdcd9ba8a7f9137c489d37eedaaa7b033ceade8eee7db1d0b6b47c52e1f7c01eaff837efee20dba9f15af4fa0befe845032d798d57778440493f2056caf947a27fd84d2aacf390fef03084a92d43b7222b03b7248f15954ecdbfaff68754820f2643a4e14496030a9c66ad6b61507c96db8503d93b440e88f1fb2bae1bb7397d75dade8ba561bbe0aa94f2e91525727f0bed880329333a34c9baaeff69979106c5543a66d439d7ba928f478fbd4b392a418799a2031d7b768c0b70be1a73011bcab6264d956fb9ddccad01f1696b5342a43344e82b034a054616935a6426b3773bae05f71632fd51b06379e9abf24993ced51fdf79220326873011abe1a40f4150d771c0759c7c948e49e0a8bbfa472d63af9f8570e74503e90dd9a7f09faae1682aa5149430f0e878a25f864cb8f7f1979d958784a0794200581f03d774a98c63d6a20d4e1498ceccd79aa1208b3559f24718e3899fcd931030497db697056952dc000003e78532c8437b98756ae10d2d481f94eab2b5bad953151d829d5e6e158a90d8db01410100581f03bfc8bbbcdf7372e5a50e678d2f3839c5313f82b9f0e0de5e6a7116a5e9204904940bb1df578c640000581e02437bd55a965003fe169f4cee0262d6dda91cb4437a0c6794cd7abc05ee4937339299202b11a80000581e023618300de7c3900e600ed23e259fa90bf0a5c30fa6a01a5dc21429bf384a054b40b4186f0919b8a40219040203e399c2d628f2d947b3debdfc3d463d568d20d7d50d1994c674a053cbdb9a418403b1f38fd3f34f2f59115a0b5b70ab983e8c109dc190814e259dcac90bd617b98e00581f0347d344371163199d5a676d453868c2df39a88fdc3aa5cf072afe40e0b78048d3ef7d30cdb90c0003f23b578e68f18ab6085d2eebbd9bc926482982ac1fbbdfa3a7933c62a7599c5b032d4f8968349903594f1e68f93e8328aefe2c320aafd7bfe1b826004c645063b7038be65956a8b7dbe9fc80a60c5de9db6cff68c9c365d4f1187fbdd3f44d971e7d02195f8f03fa85896b748dfe3dc5d77eb0ddd060fb4018af9b496f1fbdf5103a7e66ddc57703ba18eed8f779947b7f40ce00f91fbc4d4c136b874b73ab65d2332b0cd92b9b4703c9bfc8ab47975dcb7158605740ec78ef9497116ad14ca05ebb3ddb46b69ecf1c0369f5433d21c30fe3e1ee41827809368a182f5442763f59aa315795344cf380c903c284a41f1cce0b82ec148c2f11bf6bfc6d0af5e24d25f02e75c64e0cd75cce85036c016979fc1fda545b0bb75a95071066e2a92b0713eb5a7747c9bbadedfab130039618a79ba16523652d41c24f2f62ed7d58856eb6ec6373955c7c7212091966e803e691cb417d974cae0c8c4ef3baa62be1ed94f80663348d8992cdb0f586559f760387dd6f782b3044cf40687d8d897f48f5b86d604aa8ca7495dc4b7d33516ac4840219ffff03857beb81991111c12de2f662de4c59cebb915d409a2ca482eea0a90d5526774b0219ffff0324988c3d0949015d0bee1adef2c0bbd8b1a2f727c0fb45fb828f486a1182df5e030b06bc6565e4d666eb059de5a7790445641257670af3c5e599feebe9de52510203ca1c374dca5d43e12a3cf1d9c98bc7336483bd5ae540b1f9877f9383fbb98f5d0310d7b5b95b58f59cd93c7b1c1770ad4da8b740c3731b01b76a3f44c107842ce1037f23d9ffd6de5149138e6b6fbfddaa77f9f2e17c7aee4e0d1e9584285c7bfdfe03e6e7cd0ed17626caec18d402dfb1b0ca1850b093f7ed0953b12754877882a66b036b31fbe23ed9d05368593a3f11184bada6dd7b27c94a8b5770be64a4f2914dbb0320a3011a8215d5853a53f3cdd65f16d0a96099d34774e58d372e4a149656c32e0312888bd13f9e29de33a85556a2bc9b740d7a065aa4d3ef79c939f92694a963e3033ab90d0ffbf1cad1eeb2185d93131073ae150dcd4c09630c59d4ef35ba81a83f03d5f8487e0d9c1ba10fbb33cb91552a1747a768a71e89260acf96660ee51cb66f0382688c80be2fc542dfa6b8ff4081876cf833a73c60e06ef200e96f3ccbd73098033bdb0fb5c8e6e9200272b95ad83d07df68feeced5b0c555dc24b5365ce7ee09700581f03aa48f6448de940e9063ace0e664d71c2709aa79f7346fb22a14047391e80480c30453bb045d40000581f03b0ba1b0856a552ed84394159b2f219b0f5ee2023361c7be612690918802048508d57c30d129c0000581f0338e58a80e282a88b614343e506c0637b7ec6090cc08e009eade1f8f12b805820fffffffffffffffffffffffffffffffffffffffffffffffff289de23a7deffff0364a08f049fa37357c902180ae4978d1adf5b477a7b2f42851158c2a337047aed00581f038d4c53a927445b738a29e0025eede0baf4fd39e0f9e1b3b6442a640bd5f05820fffffffffffffffffffffffffffffffffffffffffffffe213760c9f105ffffff0315564396ae20246847e7dd8eb057a1559806291a7bc14fd0235c6800894e973100581e027ad047ea78e306455c91c222eb962d27bbf2f30311c4afc08b5b55e058480c83369412a3900000581e02e9c775844084fe7ae8cc35802fed36a974182ea3840729a678b2e935485820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219101003f6d674bcecbe5c551a7a7defbbbc24eacbdbfc5bf194553005a7352cea7a2ed000581f03d18002c8c62b9d595ea84e88e46b9bf92ce6480608e7312003ee966db2204901236efcbcbb3400000348704331b31644725b703470b8db431adb0fac6a0857509165065c91b4cf22e802199f6b0303003b47032ecaf1f94fb20210f3b343f77694b149cc57c32e871194fee6064003ad63c5dfc86605675a1462fd7078b9404223882b310bd7c837f8268c8fe34c72030d04bb855189dbe17fe7a4274e0ca4a2795c2c96121019d3d20a88836831461a038eeb6bd64341104b7bfa82c494e2a9417422006e51defd69948f6f11381216f2037e18f7979a8251b6bfa894c975bdcf116d5975d56c0d89561b31b5427b0689af0335ce270d7e0b575d4892f1def1765f83e523ba847d0af77e4efebedf85e31659034aacf89232eeb3bc6afc4199fa55126f7b0451250596121f1d9cf4e5d016c67603105a3a46df3a5baa24003f342ca5197cf95ad8502af3198715a7efc27596660d03954ab09e16ed566e9356faebc6e1959f241403f7a4e60716e4b4993402e59ed2037588ff05ace81ad906f1b563a248f0d674244a0a67971a08623562ded908e8540219ffff035f650bf39f35e2a03d8b796552fd8a7813e6612252fe461e46cae26658598a8a0317b3da60b9456fc996c95650ef3c80a739c4240be68e02f4d84871600ac48c71033ec90da01c85f68899f0ebd8a2f8b852352ff6d85ee50814fb6f0bfd395c79b1035a520b73c05cb5451238f10cf04d9754688e4d4405eb4b1b80d4c1307abebc1a0343bcea19a20319c1e4f5e6538d6e5f2d9c9f9226d9a15e9792628cfb4dacd93803f2772cf4d1f644fe0b8edec019f51b82db1b4b33860ec3178275c1a7914be210036d6ea5a533e4ba9a698e6c3ef8760fd13f95d94ade204d1172ebdd140e9c35250395cd618b9597aae779d5e8ea89f7e3808117ef2c113846db571214138c0789100361c691bb6064e8b14252d591f8335fe9097c114f48d1c667cddbb3186ecaa84a03fbba744919669a2fbf380235fe9b6f6db7c2beeb45555e3dbf5456d52f62c04303b28a301e92b7336dc112a397ceaffadf3505f66c922c8cdf19d2cbd6e129e2870388d21d7759f8c410146166e36cb3bfd628ace7eb1516627c3f98c426654a3e0a0219ffff038eddba703b5d34cd4567105f88743478c8d43d346e77a487002777e1f95cb28203cd01fdfbe58a9adcabce88d3bb51bf6b9413744545abebca4ec14db24c4ef85a0395efd3336315858b4e9e1741ba5d3370d15f02619c50a4947d1ec2756d4079050377ac9e0ec1da061dcc8ee5ded013456d9d1e43ea66f8755e7ad5bfaedb944daa03b3f0d9853e40ed0550a1bca61518748f07f1d260aed4e1fef618fe0debdc51a2032051d6f8d553191e6dc525b04d73ca50e199dadb7f2029b2625ad4b04ed0fdd403c6213f9a6dfba6e55c9048bd7a0e854965f9ac5466a8a194cf52261d62ddf63603da741633590e1ac6413f4c11aa7e0297005fa4a19e63194acbac9b7580b7c54b03599dfbfca2e4748e9384080a958b3f847b2cb5578115a2e62423cc58cdb8c50603060883a38fcfc86be9a12c4bec6d2a9e00fb3fcbbb33dd7f834f1ab6e6ee42280340ce3da6f8ea50732d80c3f8de4802129da6b919be99f2834897dc1c27fe338503c5f16e17ddd67ef41b6dc110d155aca46b25f847b4f5c3276f4a47d0370a9e4a03cf8f140d6ac602fd8dec6f29bd487632e1cee4cf9c4b1a987314f9675526a7e403bbe822e91dcc3be32d8817162c931a5d29113290aa4de1f9911ec9202a174f3403ea9bb4e168f1f6ca76482069b10cc39d11669526871a2408e3e6793f79fad1060333f73aa4f125a1539c6a3054508580907fce56ed58c0b5e825312e627904081c03ef7a8f088948719a65ecd5d7a02edcad8fbb362bc66cb3268670f5ffb92e1f9903dc021e3ef19a4ad98a2f704f4099f58b16029b79d89907dd2606f266a61df2f703cb1631b1cf6485f04509912530c96b3eb7ffd9f88ac0e6cf6f915ec8b0f4c7a203c3592a8cdecff6549d13bbe24adfe585c2906afd57596197463aa7f71276b6da03f5589d60bf7c8677998ee95dcbaecfc16aeeff8dd04f285d415643721af0209303b5dc41b627e31333a46224bea568bf5b757c048a00e14e13aec1c3940c0f8ffd03ed0cc46c181005d3c7f1240cf85248188c6ff0aa21463f6f80d8012f80fe8b47036e64ca1686d0eb8f8859504d37111b8baeb0192c38966c0891977bb627f8dc6103459c4d23c0664d954dafe73cdefb83ab6f7269ba51429e01312d57ab24ddd3ad030b2a54995b5f0f6e60160fa14e36a035d844557f37dc8da581ed00bb6f797c7a034de05d7a9a0a520e1bfc2d3cf0267965af4da225cde856c37918470ca365fb24039bcba184205d7dc04827176f31dd014ab1be8c602ce97ba59763f4fddf7b108503f61bb9698dcec96cc1f521a77ab42231d49cba6ab2ca9dca06c5e5d0800a772900581f0347d8e91f16aee3236007f6ecab105dbaa107e40cd4d665c996ca1c9d0f2049027a1c8295f70138000399f5aadf21a086655c2b7aa5614e740d800f49361c8e9ddfb1d2628f09d66af4035fd3e73d8d87155e4f80c869623ffa2475ff779eebac12e650fdb5ef7dd2ce6f00581f033acdffd1b7fc63d9c962d3b5a15fdc6258de9bd71e586a071920e700ab50480e85f3e53ccf60730219c3440219ffff034239b16d6049331bf7eaa6f6eef2881cbbad57305d794f5bdcb1f00d352650b10375ac32dfefc2617eadf7148c1c4f372cb2d633c454b2082f063e97eacc54e02f03b2bfd1c3ca72ae2d510b7b6afdd116026ed6ef145a02ad3783a5a8e070f6d14d0219ffff03f0f93e012fb34003ef9835e40cffd8644ad5ae0365235078d9fb6758d8eb787b03234c5c6409f6b7f824bb36c5ed41343ce4b3781abbf9c149912211faaa32a5f303a718aa53b7cccdd35051660d5a389136549c47690ed46540aa6acecc69128447032195e5b327fee0dab87dd701a23cae56bbec2f3bac20056413868311da0fc37d0219ffff03cd10c5be7d975d4fc803b9f9a3f74f647df918513e19ff101943a8e9da4598be0370093279e1751f769397010a9d34567fef88c94f7e264b9b6db6f98ce04e40a603bc86a3211018a63fc947cba2ad83909609e2152fffe28b1569339721ed6784a403f2a979064e8b8c056bee7f0b455c890ea757cb9bbfc64630a64f499b0161990703a73520f4aa6f91f4ad718ecff05253f1798866f5c5b00c42e48b5593f890442803facab3452fb23f60ca7de7486e9eb47b7b16032307c72a7984aeb9b5bb180b8203ab414318ea18e2fafedf16ca8641fe9cac06121a348d43e3a4479a2cb0cd8b550315b8e2e9e8f5bf31c637f8dde21dbfa00ab899d234cbdec732ab2fa740a743eb03aa1a2b24b3222211443ad7ee08fcbeebed2147463ac578dfa15ceb8eeedd6a420311ceedc581fa0c9602ab31b136f98cc8bc8c12cae2b462744820bf5629ddb0cc033fa01c257d197e2a2b6350cb08be49bda54ab02fc6ce80d83228af5d15eb383903b80f92fe22b8b5bab48327cfec4cfdd4d8c5c1db9a632fb863749cf050b4f88803b84e6e7ced10f9ee2f636f37f0e1a7fd9bd1ba18cd2a3f12576e419a1984772003c5ec283cd538863537b1a1a9accf0755ec634459856452b7d1718e055c6832e603f9b191b8f462ec83ee88dadc3da402d38c4929fa9d8b38fe13e2abcee70f26fe0371241bc1e90515ad98328a1cec2585b20150f57c2f0b4de7a92998f12b873329034734e377229a318a866be5325011e7f298109d21ac2a2134f992a2cc0e52741f03b0bc2c6c5fd9efd820e24fb39aa8ad99a5262ba4dad2626d7f07c66de47b3d5d03d30b4d50a7c46b00b5a0d1f3221798f3b4c76c68cc42cb154427c6182ea29a250319f877efdcb4685cd1697c1b8c424b95b1cfae56f9c5cc2ed7a7df6f5c43c30b032492e7dfff278df6a502ac42d066fabc9d84ef4ea672f92591f9648b71119b9803be94bdcb9f421b133db3ee83237b7c6dece654cdf49cc0e13e760b15747ad42803c7808c490e0e30ec57b6447c8a4766a99b5b225e30b89c97b99331bd372d4934034d4b50631a3226712657db199852f5a57f0a48f2e115d7912530ce9cf4cc4764032e75c95e908ce2374633d7b517b91a048ed105f028ecba0e9a39d0bdad1be33803ca17dc7f0457dcc9d3e5b02da6955a32e9105968da3cb055b1aa1831528e7f1603c588dfa38eeee2823db3c1257886b210e42e4024abddd9abd5d8cc6232633d5c030d5cf0dbce8929953effe8f55beee38acd7e705031f4d7f2676b12b1443d9bd603198f2eff9a4d0c7b6f8161e1b28b6ba536b2716ecf78e4b35e73422fdbb5649300581e025d20a43b192d0fd74c8e99106e722c1094b7aa968e365532a0d8ab0d5c5820ffffffffffffffffffffffffffffffffffffffffffffffe87440b36e6bf83be000581e028988b1fac0ea4db93bae55780fb33a2cd1f378d1ac24975ec84c5aef464a0a94b376e3b4594dec7400581e02b244b5a23dd9890c6f2d46a679fa500237d8714d048939db8cbea2b24a48f9f366c967c26c0000581e024c9ef52a8dce5444bffa6d77923f5b6ed303f815b7e003d15e203795b84901ae3745d66aeb1dd203e468ef19cda08d8505ae0a95943113488681cf3660949719f03480184bb3970e0219c20a00581f034883125e1a1eaa90cb5e11defc3ce7287b4011169880f8c5292ab10ffc605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f03565b26633ad2a2eae3279e9185ac672e95681f2779d747b9267eb6d8a28049028f824c8a9ab6000000581f03e515e7a30b19b0f58f0c76a241925498f9d37b2f32defdf82922e5c594d04825041a1d1cd1c9e5034b2a84ef5ee17921e7f48da6b54f8a519687e4076378f6fa0c335486c78c12c600581f03ddebd1478845eb6e19ee3dc8112214836179f0f79c5881382519052b84705820ffffffffffffffffffffffffffffffffffffffffffffe578b7e23fb4c4ffffff00581f03a8075cd8b870a0af30b50948d9707e105ded376f50bb2ef6a3236873568049031a4b64c139b4592e039270e0016b33da395abd53b9bb97804cbbf96ed7b2df1eb3b48bee74996503ff03e12809b08acd20660851b2fd904697c04f498146d1f51bc67a5c9efc7712dc8b00581f03528125886eb50d1c825cec23479c8c6fe90ba86a952390f886edc56f821048bddaa371341829e303bc3d6c02ce6972ee399f6fc8ff445cf9d6da1afbded96cdfe5e6a81ae11ab9e30219deda03df631f9124a7ad237f2a29bccd18453595b409f1c3d7cc6c6c081977561dd938032953f1d83b85c7a222c183ef66e4f5018c27bf1d2e4ca76a17953915f4f2ddc3039b4f332b5b920ad93ffe001292e6b7ae747009675def683dcb298adabbb06f07035d11c264f22fe4ea7ba85cfa0e7d84b0be50757c869c59e9ba54314d4a795ea003ccae2f684b9cd8acd6f7077dd9469fb74d4c430298b4ccdbc127d57d5b8e976c03d91bb1ec718258f3ffd12fe4257cdc18e1878420627bd57647693a5a6e949b450336e2ab7fac159d9d8e8bf6fe8bf28762a86620db7925863f7f321614522ee6c50219ffff032cd47686b4a73fa267ae0483651606415c40ec95884eea6f7ca5bfd36eaf30ab03c394c6416bf27c23c42e85ab8d67a0ea79036157bba1147e02e944256b0cbd5703a2aec5d112ca2a9c36df60ab4f9f7044a9d5ab493f5d0b7892d271da8ad8889303ce0431cb5d2a935d525c1898f73fcca5a7589dae9eda59509e2b2a6870b318c303d275bd116617d1a858d3c7715f0f625dc0b1a9fdd744bec7e3a8e4a0347fbaec03b3d5d1b0f06b7e5bfc32a34b3d830c813a702bc37351e607c04ce462e9912b0403875a26b60040b24e74e351c694fc66476d4edeca1eea6a9598fcf272cca48a6a033cc2bec85cac3fae735bcafc15b2652e8f7a0e814210a358141d56989b632e9f0219ffff033f82150b737e80e354a78fcb17fce38f1a23c2d47179136eeb7165fc932366d2038794966a752f6bf8e915a3a8af22a9d5e6bdb1e12561b1357e1a8526973799ef0395beaf3a094eac6bfc4276cdb153d5787b522d1d0e8fb65d569be49533aa27280219ffff0387345356f66e22b17be8f4738389fdd0e00bf3872a2f57c229be4ebfd74f21a103528a557076a36260e5a55a9cbd9349730215403605adb97db552131366e673c20382c18c0f4ae39ee3825dd9d41d7896cf1bf0644f8729156f296d04c802e0464303b6df8660d2a90788243ea95d81d6e4f11dd5df481e523b6d377b712004314ab40219ffff05581e0399bd9af4195043fa45983f89c979b195e29e30336c3f90c7e15db63e900701190b8305581e034298a86e3859bc430a4e1afef55920485e2177e76d1afe4632b95112500c01480103d0a71516ee0003f238f32102d4bf9b5d2672e91e7072ce95cac2193cebc2ee778e2aca90d90cfd05581e0320bc7cd93640eade104399dd85a7e97af58a4d4c77c83bc96ffadeee00040205581e03d501b9d811b5427e06b8ae15047404a477f5a9c04dbf226f0a2b377eb00c0147033fcf4108348e05581e038903225b7d277649777e570cb6d44d9fc49a7518e3e862165604fd2ed0040305581e0366b08e98fa59d2246eacb5d10e2f3c72a18c5d1d8901dd29fca4eb3c700c054701b0113c28d71d05581e035c898197a6133a3bfe6dc50c21887fc1a2bc3c604f1992dcf8715217000c01475066f5cb42680005581e03dcd1b73178bb6cb79a944b4c74a34942df6249bef6b023007cdf3428c00403021917ff0344f5308479dbbb44f99505657ebea785bf8b635a133e5d5e46b4638e26e300a90219ffff0340638804eff26bef0120b3b3d6631cb1ba4b6e8b7dd75363f01972360ba17cc50342ff01d513766bf688222835ef00b36bd3b235cd2079ae3087b01ae3a2722509038b2e735f6943b0f4982577d08648dcad3bc6e7a1a13d27c4bccca30f79fa34d803e9d3bb1dd920fb208db4981e9c413a880cfd177eb628fcc260fdd1e65d2f465603bbbf07ddbb5c707983478e801120d4130ed2ddb0ff166b42a7026146da8ade7903bea0cc315d1b353db8aab95b4a40d237fd69cd3a6297e8ad0f75538608679583035c8fc5f3c04c172c715b0c1257a73bccf87712f5705d43aa21a48f76fb0ce8790219ffff03a71ba315330f990c7aa5fc24080aa017481e4408d2e1d4395be4dbb5429d0bae03be715fad1fd35854399cff6fa5b1ed772b66f3422f741c0aeae446bd1c5afe270388b69d67c04c5805bc6eec4b25165a08351d5a0ec99f5d558d53dbfd6cd2bbce03aa9d0dd0bc5f26018ab5564d8b92635b8508894e65da429a9dcdd9c606e9b26e03086e4b38a6ce4b25417f63d3bdbab342902b7d42462f096567e40e4a9dbb4b6d03f901ee44dcf934eb25b6031dd415825b8afa460ecdef8daa1f227e5e9944132c0219ffff0369577ef1e0b14c20f75ccea972f35e544399291db060f74fc1de75e4fcfbd1c403c34b777a04aa80e7adb81f3a04e7fa7e7f8a61ab6383d258d4107aaa8304446e03aad44eaab1a3ab0c8ab465fc2ff21c75e18c86bc89c0cf11a6c1eb4cd692ac7f03dd5a5f0a8bf11ba87be3da9bd6b3b3eca79766cb47f68514c91d9ceb7826b50d03c76cc132cb3607f7176ce9ec40df644900cf6b81f70f36f017f0275b753dc5e003495f253a8482fdd09691354f5d779ed32e48494bcc6e5ac887b787d5eaf64688033f542a83e91337de33f6b1dfa9215de64c9338d581e1ad1b619f949e0457fde403bcb7f2d2e528452d0219024c1dd18783f59e5e01fbe2922bce749069f7df95610360dda86198331d918f5ac191f6c7557d0fea845e309bf46669964430531e4bae0399a7d72ed3ce18e941cdc83a82488483ffebbec007b89051bd362e83e43e62fa031745fc2382b3587a676d7db570f6b5779362371707f4844f8620835016c5f9d8038d8400826bd0ae1d6239e55d9e871e9ac44f4af24137a2bd8d120431c6222e10036836980a791097829e51b7c94589b243cf4bb147c8c51128bfa1a17ea5954f5103eb4c2fc739032fc1e25a3b29ccce66633ab9c6fce35ed4f0fe0bcba08203e5ce0334b59ce318516d8c315d5d873cb59c63adf85a25f3e562cc92224565cb3eee7203f0bb687d3cb1878a8adbb356758bf07b7da6eadf23f4e9a5b8a4149c9fa8c5c8033672fa1dc8bcec748e7543dd197070876b35f24409413c9e68360ff4c0b717060339a584ce5ec09b2983dfeef8405bc592f4c634783d8f7703d680e9ccd67c797f030d382fe457ff977c081fc040cc04a75cd16ad26b2909f000803035811d70b05503ec9b13d09ad0478ec30717549fd30ce4c562016ee8241b8cad134a38c0e5c07d0397cb204b0428126eb5551cb75b4437377d867f52ba8a9bbc6b0a8f3528366a30036a1806b618b1ce1b483254881723e805dea1b4ec484caf3ae96b33f3d0823b1203e043faf7ee298296c6e2898d7b3def2057e8e2fc433ab19b2c860b7a45d3878203d63c071f9ae554e3759b97c4ac5073ddcd0d8f4f54562dd99f4ed22b18f0b0a4031320f2238b869ee6969c843984f87fedeecaf8ac96f8fa263073ebbb9004a613034c92eb255bf1f9206188da0966d615ca84f4c1d83b5b7071038de928d359f88703974224800174b03a09f59e3c109331529ddf39c4e9c8ddd005acd9232d12929e032694ca0281db93f7ad66ead5af34c21eb1156ad93cd38d4b4f07e7b61c05095403dd8538254d86f22399099da50a28ef73d16d2fc1c757b3dc7ad28ed41d9e959603c4fe7ffef4895686dc041663e83d4d2bdc0958e48450aabd1a4b171838cb00cd0397e2dd6f98a84d6f69bb0944e4b6b7934ce8ffaefc65cf205d387ad46584eeaf05581e031abf270dc3e243941db14fedccbd6eb57a38f2efd97f45b7f89980d4800c014701882232cfd480031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e0322a54f5093432991a0ea87979521faeff6e8dde3cfe68cea985a8c39e007011bffffffffffffffff05581e031d24dfb2bbf7e370054e4044f5db3641ebc54e9af439c5ad747aa8fa700c094730b2a8ac796c0003f2c8be50a10d9e0939854c17be18516fd293a1647a8a0b52b6fa117483e4e81005581e03adba3395f6f8bed1389f9b8fbe6a0133d982b61d6b95902d40db559d100c198284483d78c1c7bbe36eaf05581e0389e8ffd604e06873518d40fc308e48501db4977f3c7f851f09ce0837900401034486cecf72508b3d1fada16f64971f7c7525f095b2152ad75a8414f9e5559f0901410603b4f7089cdb32470d307569689f14f6c5d25c8155e36286cf271c90f95c05acb505581e033426d0c266d32ea383b9bd96408e23c4040a179501581b6770e942d1700c064801303cd2d82a77e00219c78703f34b854c6e9055364ad3b240e581738fe1ca577703d77c77a9a045c633d830220219ffff03eb33f985c6e4de8438bf059cc883e9c8c1d62adedbd33a122a73d04d2563a762037a56c3b16f73a40cd96c2328de4259a538e6e24674ebc7ec27b29342b411fb4a03587805848db7b0f78ae2dddcf6f973041ee2cf988514004d604d9e0f516fcbd603b1954af43aec41de4523f97e86b160f3b4ee97fcd61dfedc0c4e4f3eef289c95033a449b8ea54d451c563513ea6f0ded3885c2f34388c4408f1bc09f0e66367ec4035814a2adce5186879d929a6e5e7b672ab7e8d6422247fbe73eb9a04eaa5a948603579069f1d918ecb0470daad4d9b1db63eb63b461e93d3a540b790f4c9838d9fd03d3b0921bd4e03c1631006e59f5a785ddd9e88b5430e25904bda532aeb700cb98039c6681d7ec73df0d5b0d21eaa9f996d6fa0f649ace8fad8bd4bec5a268c48aad035f9a8cd21186b5b841269260fbfa5ac8e20bb4793947952d569b9a93c692ebae03df7763a2978bca15509ac91710c0571877cbbac6a97a663d01ed77f9bdfecb350219ffff039fcda63aa718fc6827e805591eacf669d148be1cdcd56a558e947d57d94d28380353a9c6ead96109ab71319162d037846a5c7bf1833ca0db1bb7e5aa3e913b7953031dc82b69ee6a9658dbe82c4dd4f699f0cdc6e64e334fabedab395c0700a6cff2039460473149a6e85b515b3c8cfabfbeda57e9a05c815f074a24fe652f770a5a7e039f6062217d1c8acc42ccad5fd0061dabd54d5f32f1132235f0f34f0f4302b36603c46ab0a0f818e32cb24f81593c2baccd31db66205a4477cfa84095473eaefa140219ffff03c13c82317ac2fa483d39a41fd7fb4900cb941533a151e3cc15c6b99e742bdda303a73b5f190890be59e03ba26dbdf3eda043ab4f7ba596df128a97fed32a84c58c0219ffff0219ffff03068b045524a56ad473aa4da30af699e2dc145a08488a79af829e012167915108039fa5fc2bdcb416799dcbb97cffaf2240261700eef27b7ef2a9c84981404ab59503de1b3e3968186cd152320bcb258f3fc2d619eb3605276e483bac03e35a9c5a9d037bcccf3cd4a962cbfe5387251469ffcb3c5916cc11de80bc271b3950fa569d6703b052dfd052c42b7a810fbee574dd4361ea8980da4cda2f08144d5b3c05508554038e70d905aedcd930236770753a67d58fe4439dfc689d0877ef71a9a90f7aba8603d1a3c0abd584636381bf4e0504fb0821d3885ae82412d5a129157877fe1eea91032ee3a52e46b5a4c56ed1fa0468a1d082295b64a612a70d27353776a6cc0071530334cf2824256ae6cdc25b2c17fd86e6ff061305aef291e8b540aa82e3c5159d5c03ec6dcc26d93b12f85a2e313460e6fe78ae9daf67fd3fe3dd0d9d472acade6f560322bba51a1e04230ae2237bebcf8b80ccab827795b11b5ac3a481850b534eadc503c4d1781cf3ccf2dea06f5af3847a5a42063653937c377fe6727fc5c6483001de038db40f8c642d967fd91f844bfcf68934c55d93bf13318daa24aa4d8085b4c7bc03a7e4827ad946d88c5658f28d973821016b5f62d3987e0aef2f6661635051f75303e5c512950c1a03aac3af0f5ffb188d3bb26dc8b7d8fafc31c0359c8e535d7a4503a5eb0f9054b34b170de3546698651737c62bef4d021b99b4a20f3a8b258d063203be6f576f318bc4874cc1fefeb95c67b7d3a242b82996709d70b2192d2f16134c039cb443fffa806d586d659aa2f273955937b3502caa7354cd5d80abe4289f5e7e0317eb5f34a62af7188f37167dd3b9fde3c41fe4c0606a70ca18a713f68902efa203a76ab849459957e2ef329095967cc069988948c36daecd43506c97eac87570900317f7dba26c9bc62decfccc545c5b01a749b01e5897de36fbc1c1668dd63860800349dea5d07cde316d8f40c48dd9ec20d85f7183b2a35f314765763063440529d7037ad006623df2f6d7f47d230cf12e085e42c3cf9f6d3873b1c64472c4f78014520390f4adf7183b0a7ea77f75de8e9e4a9aa1a4cb7a6429ebe62fc7e53146417b1503bc7ff842993372bb2433fa6525d749dc07643644243b285aa10ab75294fb14a0039643c4106a4a0ee0da9b42c441784719d355df9c4740c65094205231d4c0928f05581e033aaaaa69b4893459f24335076102ec81cbb9fd48ec3caa51e182023da0040505581e03cbb3b4a167de5497424898e20e0094095f22517a8b82ad8676ba1b08f00c04463c4322a14a1803cc91b143097caa45a0c68009af4d0a3401971d8b17072cbc90f1ed0aa9f92eaa05581e038f32f026c2ba3091ec03d42c6666aa905e111b8094e85aabf95eeedab0040304590328608060405234801561001057600080fd5b50600436106100415760003560e01c806302ad4d2a14610046578063299ca4781461006e578063461a447814610099575b600080fd5b610059610054366004610195565b6100ac565b60405190151581526020015b60405180910390f35b600054610081906001600160a01b031681565b6040516001600160a01b039091168152602001610065565b6100816100a73660046101cf565b6100f6565b60006100db6040518060400160405280600c81526020016b212b26afa83937b837b9b2b960a11b8152506100f6565b6001600160a01b0316826001600160a01b0316149050919050565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190610127908590600401610280565b60206040518083038186803b15801561013f57600080fd5b505afa158015610153573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017791906102d5565b92915050565b6001600160a01b038116811461019257600080fd5b50565b6000602082840312156101a757600080fd5b81356101b28161017d565b9392505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156101e157600080fd5b813567ffffffffffffffff808211156101f957600080fd5b818401915084601f83011261020d57600080fd5b81358181111561021f5761021f6101b9565b604051601f8201601f19908116603f01168101908382118183101715610247576102476101b9565b8160405282815287602084870101111561026057600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b818110156102ad57858101830151858201604001528201610291565b818111156102bf576000604083870101525b50601f01601f1916929092016040019392505050565b6000602082840312156102e757600080fd5b81516101b28161017d56fea264697066735822122001b0fcd2fe35ea1c8769d40c0a1fbdfe16bff1d476980df598e6a0ccdf55e89564736f6c6343000809003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563546968f3f16c3e64003f02e121cf0d5ccbf5625a4205581e0330d802bc9bddb54a7a106b17c1e932c315f77f553eab44a6ddeed6e9d0070119032803a66d3296e8461147bc9ba436d995bb7ca4aede4ffb67635efa353fcc3ba6d5e90307be01e7e7206fe31ecee91ad75dada65ad6ba433ae647a1b9330469f7c6677c03709eb5dda2147c4fb819a20da7a29219edf23b78b89a76895cb5bb987352df3005581e037b5819ec020347ba5786feabb5bd952ee57368b6ab808f514a66d3dfc007011bffffffffffffffff05581e0358abb4187961b6ccbb231c628f90636ce7f20d0317ce8e13b7c910d8d0040305581e03a9540471328f4807944e7049146d9e74ebf1582016546e7768392090a00c0146526748f5d2f80219599b03f38c8d210fac09b960e1f27006d28c7ab713829513dd8805944c5bb6bfba0a7d037df8a95459bcb5a111ff81d0767190b0a0d01e979ae7d3d247469e3067ee40af035ee1ae6dde4adbd81a90a3ef2e1252de317169364e1c0cc7a5cb82bac2cf79880371d233eec7cd169ec5fe01a5a34b0e734bd1fa16bd112fbf1e3e76019a11b656030321f166789afc8ab300e25cee7a8aef412a5d1fef710a8fe0c1267419a724ed039e7f76e34166d30cacbb97e4f86f2380ad43a5dcc773ac01a968a7dc5260919c030740b22f9b8053ca664e6decf0bda3a4db24d689a2f0ec9b739794a66d575be503f883a895ea7d907e205dc661bdfb48fac7178ae85c85d1eb70314d371c35b67f037ea3858d85ec56bae2fa276fe193039851dce4f5ede2c9a0d8d41bfcfa193d2503579177fb8bab0d65e960bdc2294b8aef39fd75b3a642b6738648504571a93c9c03b9d35bdf0bbbedcc32642567c739b45ccbeb76dcf68fe6e01f96a8597947bc4e032cf5f1e1db4d43f561d6584a47c841c5a61ab317c124d9278caae5e871f429830219ffff0219ffff03e3b1d70f16b857701af8cb1e752b265f6af7cabfca4e58f095bdd179324a7adc0367712bcb3f7c78c30c6638ade7d643e7abf6de4df59b3cdeb03e925021484f0403251cea837ff9f061408214097f1615b9f4b10d01f55f269c1ccda0b45e8ee0a803154a1553a5830f4da15909bc981ae817b84db1eccd52657e368dcf3683f1fc1a03488be0e6dff3b67579c4b35074610a65e6550ddc251455ddab37adbde88f874c035fabf1870cb7b4d3874fb40a7aae760ac76aedc6434e4a46e72ab669f7748fa6034f1d87cf8bf75fe50f0735be613ffcf9494e6b6a76337c53343e93dba813a5f603466a62720bc7c863040a0f4b6170ca11eb8009235f522e27107749d35ce22b750219ffff0392a37dcdc01496229b1fe11d79da527fb760c902dac6d7c26d56b7db14b0123503465ec164422f68beade3c5ffb0bc6388f650ca63d167e5e103e77160e4e400f103571ef2ed1893ff2c12bd8a488fad8c72d377aacf80cf15da350ca6e7a4da94080388ff1db136ebe3001af59ff3778bc724d39e7bd5e59f66a1585a4ffbc2de536d03e5caccfcde1ed5768ad95f085e4b9542c0fc82baee1bf1ee25c7c9b996bf167c03275b65cc2a98ce82f23ca62ecce84e473d90608febcc3c117298deaf5c394f2f03c9036462044557bb76334643b2de9af081af30daaf1585103bc18a99be543437033519b6b2abd96e37bf6aeb8994c0eb02408d0de5b685470e30a8b47308ce2657036792ea8fb59a3f0eb4aaa2525dd946a83939112c518ac1fb46148a98d0d65bfc038a82f98fee9ce351fc375c1087ca046393175622057ddf78d5f4fc91c865e88003c6ebdd2ffa99dd8cf35819b70d6a97c5573b5865936ded3835307cc535b576250370f73a18a3a44982bef2594451a00eb1e59832fd22cc79a43d0df02925f761e6034eb14dd5ba06edb81ac72d6a5ab7c759e9c83071f6b8cb296fb2c8bceef5637f03775d0cef7c156aaa02b5743250425a37833404702ed24afc8c8cf2d2fbdff20f030f2b8e4cafa01da8d0398552d5fb6890488fa933a5a4ea4f5e9e94b737f049bb034363d33ad35ab219470ce10dcc0ce0d94c8fcc7d886000f0adf749e04cc52d4a03b95b41769ded2468b2cdab36bfcb85dfdc5d91b60832fadba38c255af0f044bb03eda333ca4c639846518e7eeee174609584200bcc40725d47ed5a7a2861b4ace605581e039becd4146d0a901fee22d05b85a9f46f491d9f247aa730f590f709cc700c01410105581e033ceea00273a70c6af879e79480464e2ef5fbcbc5ddb1aad9575f2ed5a0040105581e033256da1a9cc3a85f017ecb51cb39286c7dd81166a7bd3a6659d2719390040305581e033f1d8df3b642a1a0aed087e68cb79dd37b9880cd7e4029dd561a0112a00c0e468f9e4974dc0005581e0362cf8e90e6cec2c47ee34a8f4688db1bb51f58e9dbc997db9b155a2970040105581e036d45f4118e8983b68ae96734fad9022399bf65a9b9084535e96ac7dae00c181a480115405458498cf805581e0388a88291f2c0e8de594f47f83f57e40512a993d8689fd492591f4b52400c0347628c19d54ca7b003f93a4b245afd49ddadbf901823e536b6124e5bc442bf4624f53fc47caf2a588005581e032c431130f8e3348199db086cb6a47428cf9f488aec8ba824cb4cb335b00c07471612aa2e630bb305581e037bffa8559221269585fb4b1b46a39c089c837b2ef001efd33eb010ae1004010358b42dc15cfad806b168793c6f9b87c6b21a519ec3d91aa45742f42213ad26210310d8868c4c1e94301ba97a28b562ae6d868f7b6f452ab6820e26c1ae18c69aa40219ef3e039de6bbdb56b32f1869c7f3f95fbcc815b79c63fda5e54f5100a009b551f7c5a503c80079a09a89ca95b525d29be943e147d7bfca51f8fb9af6eef4bf7898e92c8803b6e1ff3a55fc367a29a57b965e45687d1c056b2ee0c05b21fb9317d4cd48ad8903154211867f7e7c5cc912a5191bd38360b8d918b3d059b459fddb8367c2275953036ebe9361fcd5fa7fd1363a6e12ed965ec3bd94e1d5e209019b27cb67002965a70355de3936486bbf85eb587409a0daf89cfc0ced6eab62195c3e4586d0b4ecb85803c51e74f76babbd5a1039a15649855646cc4e6adb32d4d5c643b4239b32b89852030e2058fad099e79ac9a5cb383ca06c8dcb6c1bff602eb8f21faa7ada291af06c03d5727fa0d643e4f48b22345cd5dc2dfb5ad2ee736699600b2d4e3407836a162d0307ecfd4fb2dcb64c5dbd4f1669aef3f5e47d1ad5aafc23407a906036ce38154903e2ea45c691698efd6a1be147a116f00345d7cc4ba729a92323b4ab4e1cfcb1a7033596f9bd115b58fb42c2a9f107849b33ee59baee264f0ce12b70b365b015f99403ad8503f065cf59539a8dd16ca129202f1ce3de645ece573b4d3c0dacf85d874903522146c2afc75c5c7718c951b7311eff043414b50b9d2aee51688e4c908e45b40219ffff03220848b303bc3da1a9c0ca627a9f911f4c173ecca5c51086b0f2b3bff075008903c38f126a7e0a93c8e051c97cb4049022e7a556aa843a7954e6043e03af2e16e503a550cae69e7243bad3ec1a91a4446b1de8d9fabc4aeab40a04070367c32f8d6303f9dfae4d6f19735de20b7db6a74ba9c76df4c7016d5542c91ace244a93abcf3a03b420e323ab3752536b3884b83f4bb6d1fa4617a36bf45bf3d829b98c5c2dc89d0219ffff037a7e58902f12af4ac7da5b54d9a80c9584090eccf20970d3a1959124a797d74b03457de098b6f7c8b093c967b08dbd4e375e42352a418a3883f70c06485ad77b5903bdee8288119c12cc783f920a0199115173d836b6e6ad5901d1ce854fc15e0b1003db585e9a54dce07913b248b551169c2c31347b2c2f06c6a63fd8637435f34dec0336993d55f5f7a9db5d11ca5566a3fdd0b1e61624adaf23403a4531b44206108b03c9309088ad77949dd3ce7ecf9d34a62b9fee5eacfb29c784eef702c47ca282750351134efe436fc1b34904345fd75e5919c8841d4e829151c1aa732ce022cc78cf03417c253d3a83b22ccb90ada2af516f63261f4d986b3b15c598ba515603909f4003788e21a328aba2a479e790efcbff00b7ca98f49db1a8df127534de08484dfd9003bd1d52dbd703ab38354379651cf1f6569318629c1c501c1e50432e50176c511903139e04f40775e2c3146a658b7844568cfe8aadb358adf5197faca1017cda36fc03e2243950f1b66931f40a61532e15794fcf3a97f850f83dad0876e1be16b3eb580219ffff03b2708caaf4d918e35a40d6d14506b709828a2eb4d70a053beb9cb09148e45ba903b318c8208b0561bc80d606cbeaae5fcd3fbfbfe6729f65e86ed7c0534e2af64d03a410002fe89850985736a38e8c69a4ed07c0ded11ea143fdace4a1c00068738403a231fd5a70779b530caee5a5bf244adcca5727ccf35be77504ea1831400f93db0310b4c69f2d2650e55bb938d437eec4a9a3068df5a262d336d955d0b70c9def8503ecfc0b388de207ba99aaaa4be6998b524ca575efef65afd4c197046e440df59f03d17044306661aa5e075c45a9bfec8792845163342621fb2071426aba9bfad70a03d33f396f2f0ee9aa772717d7b5c9acaa735d23ce5effc590969e8a7c9fc2274b03900e2cbe1f8868c5addf64184b0efc2404e2cfaa366f6e96359ecf3e66915ace0316d5a0ceddbd17e268ebb312b7058723584f121ac68c2cb0de142833e49c4b340219ffff03c59b6c472a8af60be021bef345eca97bcf6f2ada3f64e50c3ccc2c9d46a42bc103194e510dae9e861772ce435835db4b109ea200f6cb61ef488a9efccd8825667b0309b0daebcfd05208efbf59f8864369ff7a3ef29479b76e234ea0fdca962406af03f16df9fd8d02e388508f6353590a0ef689f537d8b02a77999ea07cc1836fe81603fd1796ee44c93e62a19272f24d7a9dbd99908253ace197898f894db567d8b3d8035782c9adc2232d2e59fa2cc733b2bdc24cedc51ac01214b67e90701d3819b9770346f846a8073afca5d6971f45be19f6382b7f6257db4bbe24c88bff74a444691b033e016348c0ac571b6fc18db9c38f0eb39b2e6fce68ba71ecb827573ae2ba96db0326164d0e3de6d80bffaf0abc3c1687800a01a579a7cded92cfab59ebee3a4cf0036c539c7154cb4551fa54399bf95182c2c50ad02e4ce001f5ad5ffa43c615279b035def8e3b646047e3c22af9587a4ffcaf06b30cabbc81128af77ee511d75bfe8303bd078180e10c26a413038fbdf4df11a151587c5d27bc391195a2773effea39c803e5ef0f86d1a1cab0d8cc529978f8e516b806da532d7980e003e7a5e46e14571e0358ec49123f3c7edc48837e7ae62d1ca3b6d9db7271de842f73293f976eee7e2303189a0a4ee6062aa20081b78c80035e1f028bba2adc3a22c0d62251a745b7ba8903c0f4e8f42e1d025d00aed25d3cf8295e9ee3d900183254568ee68fc063c8ec9103904094a6261d3aa31ebe4d11f589f0f208094729de951eb25719fc4bcb5c269e0331175a7a28fa23b887d20472a511f2e5230424a7c0c87ed2f795ebd436d63a0e03be33ffaba9888022a22b7c871ac9b9051962f0ea038f679da3fc466f8dd0830c03ff57e724234a26944956c6404c7b6c24a40f1ea478897f3a5f1a6fb4ff523ac30379e0e3a21dbeb2ae704118ba00d2f6782acfb2563fc6fc348bf02cb4c97b000403851093c2810d1a18fc7eb3d4eb9584bae9f053ea42344e88c61350d97a1077b603e213345285ef3c881e704263d8fba56821884c95baf1d7e56a2f9dad37565d9e0330ea24aae96483a38a8c6a4a2e459dac48f5f1509d4f664ee769d7e8c3973ea403fbbd9e2738436400a1884e0ae270483706e72c0c754608e1d038a2388b2ecd07038db751ebf1129375d404097e0ab3bcdad9ecd3952ad19a52a59deeaea2fcf7a50391841a20fe71daf3d18c979c34dd61184fcee8b512413bf5eb9cbb7db103426603eb3f6f8fc6d2fedd59f3330b43f3d71f74d6a1f9f4fc33294b7157be8dd115d80317bfc798e9916e7f1490914d4e648396b126ebe32fd1c66c7aa4b6a53ef9b6b203654e7f995b74fd7524de9de96288893ef7834ed7b24d35e5ae854786cd292129035bd9e6a377e9761895f7dea57202f1e0d979895dec37b9751688835952df838a03f3325a90e3e11fd5f789059f181e7bb5715333518bf43ef598bfbef038e72c0503df639822a03417901306d8fc792bd4c57300c84e8fc594bbfa5d4b9f18e1bfab030a7be27cfad361d2de169cb723859cb4fc68c2471523c3230074a16793d2262c05581e03305d182734396db04ca3519b5f3b6c75fe726dd1ca572ca82b73cf6060040105581e0318cbf544b126be5f3fef43d707956aed2ced3754396d5101625c8742200c014702ed372720598805581e03d7ac80e9b0ef5c8ec78e32c9d555a5db54cf079ef0fb09fea39f5ef070040105581e03493ef7b356ca5af7bc9fba896ebc41f93c80e1ba0c7b606abb3f6795700c014795d101144ce36e03c2df3f089a88829fb1c4b222ec34c0c15c8ff07ccf2ee868b6ae67f54eb25d1805581e03943b134b530229ad917daaddfa4655bbdf32ef6f8624ca8065f2f5e7300c124701b7dece91e81005581e03841b5f2aea686c1d65719a568e80a39e043c8e572dedc4b6fe0a1c6f500c03469b10d7c52ac805581e03ca4e77dbe0d326cfa5b6eb1181f75a5afb2b70c8060d4d6f8544b5a1800c024612528b85864005581d02e7fc9786e5b01aafcc53759b1cc1e4a44b61cf24544cfee64559df860c05470365ea1eb938a705581d02bf97b3e907871dff2f102e854dde2e98eee4f5b7897090402240254a040104592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032032e2bc0c0ff22609eac8f10e1c8736f3e780dcb85055451e7ac674e2667ce4b570058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563048082c35d6ca64a726005820024ef2b35db576249d2213af9a872aa4626f68eb88e28bb738f845d0144bed915820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820022c1b8a99dd65003f036552ff7e9af63aa8686e30ef1e92f570fa2ec22b093e4101005820021540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5301e6cfbd19462bfa87033860442ec24ed50b2002195040005820026cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68854c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200582002b661198733f53bb9b621ec808effd2e8a3d86db6962103738e13951e49aab04703bcc9e7d86f5802190140005821039e334f9a89f71f10a52cf77f9124610151ee90fb6b0ed09567e204d2d3e87090410100582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5820504c24eeca0599efba78c09a1d6db27810d494de66c95f25cc1d63a09a1e55a6005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a84f4b570ede5f57bf74ba04f338d1548c00582002abe0af27a1a9d3d887c8a3cd6f40ea873feae1218aab1d6146e1a7c157aaba410200582002ffe43f96e801a2a1e6aeba410f6aa5b9177204660842c5095e55478d5ff5004802a1dc3e128a48ac0219114400582103f6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c704101005821031f25289b5c9db29d46c3566463f71796d2e07c9a7a96a888214082f19288cd004805869cced001eb3a00582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5d6f000000000003d9470863332b3c8e000000000000001fc68a740c3d280058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5444face2e310e543f6d85867eb06fb251e3bfe1fc0218480219fc4505581d023387a596e4bace4fabada3492750409229892edcfd0d18c8dbb355730701192c1d0219900205581e0330a7957f24601a33a106cb41c769ea36f1f3cd75159ab34cadf6f83b90040103d7e8d133b9f9b7a8310665f51c3a0f4ce16c9bba81c3046862e7b39c1a54c25305581e0350a457b46e1b81d302409f8f17dc13aef2c227ea63cb78f3172b0100e00c014775197901b2cfb00358138a8079c3c5888099ca861f2a5ef985adc953fdfff503e00c4008d4422d490219fe7d0372aaa3bf0b209e43250acfb7a2ddd7e9957aad35ff0f6974f1d7a9de11039160031f1636a22c811cb695b0d874467a4d52effd262bc46dab5643c4f9832d0fb16603943081c95b3c5aec6b05ddec15b95942845c3c71eb51bf3ffe2152de46ac79ba0219ffff03e65388af01f6ddd0901ed168227feaf9ee672e360465191f2b411570a388a91103a56a4d2ec718c7feae7f194df78f183b8c078f183310a18a63f39635324c5a5e03b4f84635fe63e15e442388143ded0dc69853e1c8d66f3637b908f4551ffc9ea80219ffff03f4f791b8201ddafc4c0cace3f4f352cbe58a649afa3c96dc672ccccced178ae903c9c3cd1e01bbffd2ae262974aa8c272e354e54ca8479fc466935f6da27b1b0d90304afc739416abd2c900b06335964389ecaecfda1ced08b58c2e88182c568826e030a65dbbd6368d9cb027bec59b620235bec26ba78ab42b780ad653670da5abbe803d319b6dfb93c82597ff707d742c17c9172d078c6fe8f5e1ecd16cd304bdd3066037b291ccc4219d2c1cc21eeeb818ddcee7b23a9e66f76ee10c1dcf918bc120ec10219ffff0360b1d20ecf8d2325da0651abb7243a34ad668b75be77bba2942250059d13624303643c6a492a5edc825e9226b136fa725cc0d83f66bf10c6700816aa7decb9844b0373343976edebeaa956238be550c64d8bda378512c1260b8c7b73d26e7d9d8916037b0d30c98dc1a4fb1869a2f93ac516006b1424134d4b24d0465fc5fa90e7fe9b0397660a234f1edb4a9e26f6bbfebb63ce30da7a3c9b75798dbe629d1fb2edd6790344ce03419740eadde5f05fbadda0fab527372bf60da30bad1cc37e096aaf6be8031b06373416c5baac1290c0cccd8268337c3f50ec1ce254cb2f331915769698c8031ebd4464bc994fdb94c040e6827684ed6d373778780d363584201560fc46c2d80372b6678f5a4fe19211c8d3c641cc356a6d013b77e26f200ff393ffbed5b857af03f6dca88fff60a4f7b3901fa7a14c3a111a7e285fe58180e0d1b9d6b7b222b039032a1f6278348825181e87952616aacc7e509a79228abec423d372f98b05fecb8403da16e6a16d3727e99b4b1df8597b3538f90d33f9a170902b1614032ed0f63f7e03cfa7e4e5628410de9ded9a94a3bfc0efa92364a66c45364346572ad17e76c14c0330d537470c9f1ae6b601d4bd14dcd1cde91cbc61c948b56484bb08174925f46d0219ffff0325640de62bfc326f009e4a3ae6da1e9fff1f836aab898c16d238e0e69aff2a4e031767f87c1747bc72bf20749d1630b4d8a6a3f3ec2c5efb0397c8d2b1882f2b9f03568d4fbc406711b8ea2a16c1f4bf54f25b78747148843cd611ef5a60b28c38c20304689bd883d14a5bc9261a06f1ef5d5834de4a140d91ce3ae73e08aa5fb98e19030e1bde3d67486d3759adb588986b891403a90fd37fa0750cabc2d86e0d7493440346e26bfdc3d3d15b5e9ed530c28bfff2b2b25d38f39700193a97c34904da246b0363f9d62e4acbf0d5966d23299b4484126a4e81d628d3f26558cae91092941e4b034819b8cef5906135db7f4bbd2ae8bf0f6bebcf3e1ef911db25d95a5db7f25f6a0374afc751cb4457806162b05623b5aa533315a38822dc15ed1703a50406e5218e03aa302a835ac16825d9c13e4f04c7fb58d89e3691c936910d7bc6f4e8c5e0c9f00330d4de391956a2f699a913fa36c4b2cc5020c2350a55d1148090f858085189ef03a4bff0c639257c4956f7fd3098ccdf51810b493f0a64eb7dfac5af1d284bdb4d036b52b16fa06497a333ca615ef801efb03de089b7dcde2183c21b8c1dca192cb70392c82d84875389d53051472529112f0c054ff933246e7311e3aee95d38ac9d6703d49db6a7cc918323ff81c295fe6f712f349cb40dd769e83718b8e0ff01445eb803b19236a8f8da6df33d84534f01b012232a7aa9d1f373455ea8bb60ee1d09d8b303f1a61420ae0b8f2a1c5c4cf0b418190c55f5ea4098b6e44d691fbf67ea87f1fa03ba85aa3eae005a2962844c46628b7ecc02bc7f3c53c25d4f32ac4849d73435ba033a264a84f8224ace90ea33302345b81e7cdcfc3f38f5c875e6623d25482b2e0003b298f73878f4b7776881cac05b1ca125540f655bedb276071a4fb22bc59677df03172076d7465bd09795d12c9425fec116120742baa449b1b08d7e3467f121dbc70302f6c28dbb9c9687e404cdeecf9f66753180120caf6557f5621d593bc151bc970358126980a22dc4fb4dfe7fc3fe24184740fc753a7bc3cdeb3b2a62870cce17fa0349e137ce658a5636c47a2309735385ae5fd072d05c1ecc111580e5f3ec3863f60314b781c14cbf46ac8c675a429cbddee0687e9f8274517a777fddc40cbc080dfe03e8cc4ec0ad2bc2736308272db0d97400af9e1dbf44f4bf161a1f5b90a7127b5603f941451590e32fb69a4016466d989a1ff0db25a262302a3c0d4f65b6a03a4d3203a7afd22e878df371acd5fecbd1e2939e2398f668e47925520593deff882b1f7303aa6afe794f503bc780153712b10191409a7ac380157b688f5d12260bc38f14c803e7a0a695a7290bdfffaf20589b410eea47914fc270f1dc822b6c7d1ba575a43103dd7793de98023212ef86a368e7c0c05bdee4ed787c274c8a5668c1e727d27982032fc0e1bf45d89f232901123300a3a7fef12c2329be70f63d6454753f6565741403060c58173665c4220ee107a4c157732f5734cfa751d926f81be960a684e2417c03fbd302b2a3b081952f414da5cab58ae6bdc053422307ac7c13e9cbea12e2b78003fd3e8be1b1b7659ee230cd3d8fd9b10ed782b3babafe4398f08779a700646d1f03dcc07ebedd1a10c17fd92767b27101e84f6974a7313126af909853dd40466ba00369111e5af78924cbdf0083f8133f19c7e47312dca8c8d2eb2f086ce5fc01b6a703f92dc5b39c337dab0cb89140b41e2185ae83ee1db672d6e2399d94b1da59bb88030af814230a33ddcc5493069a9a5d3f9efb72764d3d50da3ada7f0546f20518b70354806e50e1d1302b676fea424139dd042c6c9a1ed7069fafddca32375d0b8b2003d8a5f1c9d7f6188156cea552553bfead6016b4dd43efa95bdfaa031d766c82a203cf96f807d426a96670c01975b44aadf7a9c980d6ce49fa1afbf64c09d2beec9d0387c51c05bf8324ae529fa978add187ac6d53518c5cae62509dba11c2bafe590303673134df1793bf9e5c0c891d9b288738f8d351b36bafdd7497b7030b54098b2a05581e03b9256cada2bc3756ff02b156744c7f32da7b819e46c1cc18f60e2164700c0347019593045ee65005581e03f97465d5ba9085a63303d0e09206115ed5af1b80fe1ea3a0934cca86400c04475779ebf476396805581e0390b93de896a5f599556aa7c3a0cd6809fd686812864b84cf0c182d26700c02470121d36cfa656e031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581d0295be77e646fc30430d9812e3a19ebcf3b0ece0d130b4b2310f91dad507011bffffffffffffffff04590d6f60806040526004361061001e5760003560e01c8063ab13824014610023575b600080fd5b610036610031366004610862565b610038565b005b8746141561007b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161007290610b96565b60405180910390fd5b6100868782846101ba565b7f6ded982279c8387ad8a63e73385031a3807c1862e633f06e09d11bcb6e282f608782846040516100b9939291906109b5565b60405180910390a173ffffffffffffffffffffffffffffffffffffffff8716156100e8576100e8878a8761022a565b61016b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505073ffffffffffffffffffffffffffffffffffffffff891615610143573461014d565b61014d8434610c79565b73ffffffffffffffffffffffffffffffffffffffff8d16919061032d565b507f831bac9533a2034226daa21109dbd4f887674f0fe4877e1a8b35b3ffe1bdce768b8b8a8a8a8a6040516101a5969594939291906109e6565b60405180910390a15050505050505050505050565b806101c457610225565b73ffffffffffffffffffffffffffffffffffffffff8316610204576101ff73ffffffffffffffffffffffffffffffffffffffff83168261035b565b610225565b61022573ffffffffffffffffffffffffffffffffffffffff84168383610438565b505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063dd62ed3e90610281903090879060040161098e565b60206040518083038186803b15801561029957600080fd5b505afa1580156102ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d19190610957565b9050818110156103275761032783610309837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c79565b73ffffffffffffffffffffffffffffffffffffffff871691906104d9565b50505050565b6060610353848484604051806060016040528060298152602001610d11602991396105c3565b949350505050565b80471015610395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161007290610b02565b60008273ffffffffffffffffffffffffffffffffffffffff16826040516103bb9061098b565b60006040518083038185875af1925050503d80600081146103f8576040519150601f19603f3d011682016040523d82523d6000602084013e6103fd565b606091505b5050905080610225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161007290610aa5565b6102258363a9059cbb60e01b8484604051602401610457929190610a2e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610686565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063dd62ed3e90610530903090879060040161098e565b60206040518083038186803b15801561054857600080fd5b505afa15801561055c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105809190610957565b9050610327847f095ea7b300000000000000000000000000000000000000000000000000000000856105b28686610c61565b604051602401610457929190610a2e565b6060824710156105ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161007290610b39565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610628919061096f565b60006040518083038185875af1925050503d8060008114610665576040519150601f19603f3d011682016040523d82523d6000602084013e61066a565b606091505b509150915061067b8783838761073f565b979650505050505050565b60006106e8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661079d9092919063ffffffff16565b90508051600014806107095750808060200190518101906107099190610930565b610225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161007290610c04565b6060831561079357825161078c57610756856107ac565b61078c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161007290610bcd565b5081610353565b61035383836107cc565b606061035384846000856105c3565b73ffffffffffffffffffffffffffffffffffffffff81163b15155b919050565b8151156107dc5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100729190610a54565b80356107c781610ceb565b60008083601f84011261082c578182fd5b50813567ffffffffffffffff811115610843578182fd5b60208301915083602082850101111561085b57600080fd5b9250929050565b60008060008060008060008060008060006101408c8e031215610883578687fd5b8b3561088e81610ceb565b9a5060208c013561089e81610ceb565b995060408c01356108ae81610ceb565b985060608c0135975060808c01356108c581610ceb565b965060a08c01356108d581610ceb565b955060c08c0135945060e08c013567ffffffffffffffff8111156108f7578485fd5b6109038e828f0161081b565b9095509350506101008c0135915061091e6101208d01610810565b90509295989b509295989b9093969950565b600060208284031215610941578081fd5b81518015158114610950578182fd5b9392505050565b600060208284031215610968578081fd5b5051919050565b60008251610981818460208701610c90565b9190910192915050565b90565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff9687168152948616602086015260408501939093529084166060840152909216608082015260a081019190915260c00190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6000602082528251806020840152610a73816040850160208701610c90565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6020808252603a908201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260408201527f6563697069656e74206d61792068617665207265766572746564000000000000606082015260800190565b6020808252601d908201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b60208082526012908201527f544f4b454e5f504149525f494e56414c49440000000000000000000000000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b60008219821115610c7457610c74610cbc565b500190565b600082821015610c8b57610c8b610cbc565b500390565b60005b83811015610cab578181015183820152602001610c93565b838111156103275750506000910152565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114610d0d57600080fd5b5056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a264697066735822122050ec4ea9f0f5a804469052ba5fca070042d70d217f98c7ad56a235a3ad5772ac64736f6c634300080100330605581d027298c6116238b952a7f03ca70e82a71366ffc06e7d2822d50855f5170701190d6f02182203ad095a68a7cf273bcda1eed1bf42f95a3f7ed7aeb3d0d02cbe9c8d611c7df6a201410605581e034074cdd64ae6428773309646b67c2f1cbfee84ba120b54a1df4a24c430040103e0c95a21263f1af879f6c8ce13eeea2300f442a0bacab21af7fb4a0a7cfa7dd705581e03a9fe33108e644d571a5eced6219aa559b556431b471b8968a7740c2e90040205581e03d03ab529725232d14b4f465698000d504c4996c3d1c1df8a20c55aacf0040105581e0320976d9781157098a8d17edb02699bc4d8bb360623393954a472c80dd00c03466e2fa61836b805581e03484d4015258ff2b00552102624a9c88085950fae13d396faa4921e18f0084718d55e32fae0000219e7570219ffff038cfbc36d0a85643d75017752dc1b22c6ad1879b13743430614ec87ec76de58240219ffff039753861a4aa7750a2665357952a71761f3bed3e2fe76958c3c3435e5baeacf7e0336bea240b598f32ef4cec7a24664150765661613b11fd2d4d47311059a85f7570219ffff0335227b2756b2208c5d09f26bfa673f3120bc5179a598271df09228c7218fd1c803c58976e4392c6dff11f2c995f5ede277943540a6a8b8604b59d0e642c4ae81af03a5fbd1ce1f683ca56be3dd0b9308be352366a671c796fe0a2de385d72cea153903b763ed303309f19c0bf145f44afbb4a39f047eeda31dc99cbeff69e45706722b03ba6b6bee4cfd9bbca78beab6bb25ef5303945ab799b07625b81ae9a1cab19c5d038737ebbdc8034d784fd6d62304d32cd7bfa49d28e1bf28a98a149af0853e52bc0384857c0fbb121b4f0fafa3c1ff5f75d20be304c0b3236be959e3f7e08e18f938037dc432190702d3507e12292d113a1dd30f5ab07448f9c1ac6a3772e48f6c29cf0343b2030eb617c162e903455b05bf25a4ede4b1bed12aaae735c85b5d098d6c1303bf5a883325a4662de1b70cc98a10b403d769c84ae4ef1e2edf57be721eaf45f40329c31a9bc01d1f678f91707190bf2ca24ef0d034f02bfa46c3f9d1e1beed0197031dc57aabd7b11090394f2b85f1cfec416938c8a6aa17a7fcc75b462eaa782be703500fc0322f4a86d336f2f2a89a321f390f2ce014d4438941096b8355d6597a71032926c5c1a8a5e08024b79e49d55654c27c833490c112c5d43779af3c989abc13037abde1fbf5ddbe41f9820563ac0588c5188ae48ab6d6d3bac455ebab6405f54003f12f4235d7f2b26801c6b33f5b3b0c858a83c6cc75e70b3e7ea4f79abbc31158045946ab6080604052600436106101a05760003560e01c8063715018a6116100ec578063a1db97821161008a578063c87b56dd11610064578063c87b56dd14610d6b578063dd62ed3e14610da8578063e43252d714610de5578063f2fde38b14610e0e576101a7565b8063a1db978214610cdc578063a9059cbb14610d05578063c6d69a3014610d42576101a7565b80638ab1d681116100c65780638ab1d68114610c205780638da5cb5b14610c4957806395d89b4114610c745780639b19251a14610c9f576101a7565b8063715018a614610bc75780637362377b14610bde578063771a3a1d14610bf5576101a7565b80632dc0562d116101595780634bd6ec39116101335780634bd6ec3914610b0d5780634ef41efc14610b3657806355f804b314610b6157806370a0823114610b8a576101a7565b80632dc0562d14610a8e578063313ce56714610ab957806340c10f1914610ae4576101a7565b806306fdde0314610958578063095ea7b31461098357806318160ddd146109c057806323b872dd146109eb578063274e430b14610a285780632a6a935d14610a65576101a7565b366101a757005b60006101b1610e37565b9050600060e06101c16000610e48565b901c905063e5eb36c881036102be578160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610259576040517fce5a776b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60846000369050101561026b57600080fd5b60006102776004610e48565b905060006102856024610e48565b905060006102936044610e48565b905060006102a16064610e48565b90506102af84848484610e53565b6102b960016113da565b505050505b63813500fc81036103aa578160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610352576040517fce5a776b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60646000369050101561036457600080fd5b60006103706004610e48565b905060008061037f6024610e48565b14159050600061038f6044610e48565b905061039c8383836113e4565b6103a660016113da565b5050505b63e985e9c5810361050b578160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461043e576040517fce5a776b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60446000369050101561045057600080fd5b600061045c6004610e48565b9050600061046a6024610e48565b90506105086105038560030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611486565b6113da565b50505b636352211e81036105e8578160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461059f576040517fce5a776b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6024600036905010156105b157600080fd5b60006105bd6004610e48565b90506105e66105cb82611492565b73ffffffffffffffffffffffffffffffffffffffff166113da565b505b63d10b6e0c81036106e5578160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461067c576040517fce5a776b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60646000369050101561068e57600080fd5b600061069a6004610e48565b905060006106a86024610e48565b905060006106b66044610e48565b90506106e16106c68484846114e3565b73ffffffffffffffffffffffffffffffffffffffff166113da565b5050505b63081812fc81036107c2578160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610779576040517fce5a776b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60246000369050101561078b57600080fd5b60006107976004610e48565b90506107c06107a58261169a565b73ffffffffffffffffffffffffffffffffffffffff166113da565b505b63f5b100ea8103610889578160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610856576040517fce5a776b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60246000369050101561086857600080fd5b60006108746004610e48565b90506108876108828261171f565b6113da565b505b63e2c792818103610940578160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091d576040517fce5a776b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60046000369050101561092f57600080fd5b61093f61093a61178a565b6113da565b5b63b7a94eb881036109565761095560016113da565b5b005b34801561096457600080fd5b5061096d6117b3565b60405161097a919061388b565b60405180910390f35b34801561098f57600080fd5b506109aa60048036038101906109a5919061394b565b611845565b6040516109b791906139a6565b60405180910390f35b3480156109cc57600080fd5b506109d561185c565b6040516109e291906139d0565b60405180910390f35b3480156109f757600080fd5b50610a126004803603810190610a0d91906139eb565b611895565b604051610a1f91906139a6565b60405180910390f35b348015610a3457600080fd5b50610a4f6004803603810190610a4a9190613a3e565b6119ad565b604051610a5c91906139a6565b60405180910390f35b348015610a7157600080fd5b50610a8c6004803603810190610a879190613a97565b611a4f565b005b348015610a9a57600080fd5b50610aa3611a5c565b604051610ab09190613ad3565b60405180910390f35b348015610ac557600080fd5b50610ace611a82565b604051610adb9190613b0a565b60405180910390f35b348015610af057600080fd5b50610b0b6004803603810190610b06919061394b565b611a8b565b005b348015610b1957600080fd5b50610b346004803603810190610b2f9190613a3e565b611aa1565b005b348015610b4257600080fd5b50610b4b611aed565b604051610b589190613ad3565b60405180910390f35b348015610b6d57600080fd5b50610b886004803603810190610b839190613b8a565b611b20565b005b348015610b9657600080fd5b50610bb16004803603810190610bac9190613a3e565b611b3e565b604051610bbe91906139d0565b60405180910390f35b348015610bd357600080fd5b50610bdc611bb9565b005b348015610bea57600080fd5b50610bf3611bcd565b005b348015610c0157600080fd5b50610c0a611ccd565b604051610c1791906139d0565b60405180910390f35b348015610c2c57600080fd5b50610c476004803603810190610c429190613a3e565b611cd3565b005b348015610c5557600080fd5b50610c5e611d36565b604051610c6b9190613ad3565b60405180910390f35b348015610c8057600080fd5b50610c89611d5f565b604051610c96919061388b565b60405180910390f35b348015610cab57600080fd5b50610cc66004803603810190610cc19190613a3e565b611df1565b604051610cd391906139a6565b60405180910390f35b348015610ce857600080fd5b50610d036004803603810190610cfe919061394b565b611e11565b005b348015610d1157600080fd5b50610d2c6004803603810190610d27919061394b565b612017565b604051610d3991906139a6565b60405180910390f35b348015610d4e57600080fd5b50610d696004803603810190610d649190613bd7565b61202e565b005b348015610d7757600080fd5b50610d926004803603810190610d8d9190613bd7565b612085565b604051610d9f919061388b565b60405180910390f35b348015610db457600080fd5b50610dcf6004803603810190610dca9190613c04565b6120d0565b604051610ddc91906139d0565b60405180910390f35b348015610df157600080fd5b50610e0c6004803603810190610e079190613a3e565b612163565b005b348015610e1a57600080fd5b50610e356004803603810190610e309190613a3e565b6121c6565b005b600068a20d6e21d0e5255308905090565b600081359050919050565b6000610e5d610e37565b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ec5576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816007019050816002016000610ee583610ee08861224c565b61225a565b63ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610f84576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146110e3578160030160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166110e25781600401600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146110e1576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b60006110ee87612288565b905060006110fb87612288565b9050670de0b6b3a76400008260000160148282829054906101000a90046bffffffffffffffffffffffff166111309190613c8b565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550670de0b6b3a76400008160000160148282829054906101000a90046bffffffffffffffffffffffff160192506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600084600601905060008160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061121c8561120d8a61224c565b611217868d612332565b61242e565b85600401600089815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600061129d8286600001601081819054906101000a900463ffffffff166001900391906101000a81548163ffffffff021916908363ffffffff160217905563ffffffff1661225a565b63ffffffff1690506112c7826112bb886112b68d612462565b61225a565b63ffffffff168361242e565b6112eb866112d483612462565b6112e6896112e18e612462565b61225a565b61242e565b600084600001601081819054906101000a900463ffffffff168092919060010191906101000a81548163ffffffff021916908363ffffffff16021790555063ffffffff1690506113798460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828c61242e565b61138c876113868c612462565b8361242e565b50505050670de0b6b3a76400006000528660601b60601c8860601b60601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206000a35050505050505050565b8060005260206000f35b816113ed610e37565b60030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60008115159050919050565b600061149d82612472565b6114d3576040517fceea21b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114dc826124b3565b9050919050565b6000806114ee610e37565b905080600201600061150b836007016115068861224c565b61225a565b63ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461163e578060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661163d576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b8481600401600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550509392505050565b60006116a582612472565b6116db576040517fceea21b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116e3610e37565b600401600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611729610e37565b60080160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160109054906101000a900463ffffffff1663ffffffff169050919050565b6000611794610e37565b60000160089054906101000a900463ffffffff1663ffffffff16905090565b6060600180546117c290613cfa565b80601f01602080910402602001604051908101604052809291908181526020018280546117ee90613cfa565b801561183b5780601f106118105761010080835404028352916020019161183b565b820191906000526020600020905b81548152906001019060200180831161181e57829003601f168201915b5050505050905090565b600061185233848461251e565b6001905092915050565b6000611866610e37565b600001600c9054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905090565b6000806118a0610e37565b60050160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119955780841115611989576040517f13be252b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83810382600001819055505b6119a08686866125e8565b6001925050509392505050565b6000806119b8610e37565b60080160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600182600001600b9054906101000a900460ff161660ff1603611a2a57611a22836127da565b915050611a4a565b6000600282600001600b9054906101000a900460ff161660ff1614159150505b919050565b611a5933826127e5565b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b611a9361289c565b611a9d8282612923565b5050565b611aa961289c565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611af7610e37565b60010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611b2861289c565b818160039182611b39929190613f11565b505050565b6000611b48610e37565b60080160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b611bc161289c565b611bcb6000612d5a565b565b611bd561289c565b600047905060008111611c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c149061402d565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1682604051611c439061407e565b60006040518083038185875af1925050503d8060008114611c80576040519150601f19603f3d011682016040523d82523d6000602084013e611c85565b606091505b5050905080611cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc0906140df565b60405180910390fd5b5050565b60055481565b611cdb61289c565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054611d6e90613cfa565b80601f0160208091040260200160405190810160405280929190818152602001828054611d9a90613cfa565b8015611de75780601f10611dbc57610100808354040283529160200191611de7565b820191906000526020600020905b815481529060010190602001808311611dca57829003601f168201915b5050505050905090565b60066020528060005260406000206000915054906101000a900460ff1681565b611e1961289c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7f9061414b565b60405180910390fd5b600082905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611ec89190613ad3565b602060405180830381865afa158015611ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f099190614180565b905080831115611f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f45906141f9565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b8152600401611f8b929190614219565b6020604051808303816000875af1158015611faa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fce9190614257565b905080612010576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612007906142d0565b60405180910390fd5b5050505050565b60006120243384846125e8565b6001905092915050565b61203661289c565b6103e881111561207b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120729061433c565b60405180910390fd5b8060058190555050565b606060006003805461209690613cfa565b9050146120cb5760036120a883612e1e565b6040516020016120b992919061441b565b60405160208183030381529060405290505b919050565b60006120da610e37565b60050160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154905092915050565b61216b61289c565b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6121ce61289c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036122405760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016122379190613ad3565b60405180910390fd5b61224981612d5a565b50565b6000600182901b9050919050565b6000600560078316901b836000016000600385901c815260200190815260200160002054901c905092915050565b6000612292610e37565b60080160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600182600001600b9054906101000a900460ff161660ff160361232d57600060019050612302836127da565b1561230e576002811790505b8082600001600b6101000a81548160ff021916908360ff160217905550505b919050565b60008061233d610e37565b905083600001600c9054906101000a900463ffffffff16915060008263ffffffff16036124275780600001600081819054906101000a900463ffffffff166123849061444f565b91906101000a81548163ffffffff021916908363ffffffff160217905591508184600001600c6101000a81548163ffffffff021916908363ffffffff160217905550828160020160008463ffffffff1663ffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5092915050565b826020528160031c60005260406000206007831660051b815463ffffffff8482841c188116831b8218845550505050505050565b600060018083901b019050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16612494836124b3565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806124be610e37565b90508060020160006124db836007016124d68761224c565b61225a565b63ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b80612527610e37565b60050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550806000528160601b60601c8360601b60601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264e906144ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bd9061457f565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561276a5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561277857506000600554115b156127c957600061271060055483612790919061459f565b61279a9190614610565b9050600081836127aa9190614641565b90506127b7853084612eec565b6127c2858583612eec565b50506127d5565b6127d4838383612eec565b5b505050565b6000813b9050919050565b60006127f083612288565b90508115156000600283600001600b9054906101000a900460ff161660ff16141515151461284957600281600001600b8282829054906101000a900460ff161892506101000a81548160ff021916908360ff1602179055505b8273ffffffffffffffffffffffffffffffffffffffff167fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d64203938360405161288f91906139a6565b60405180910390a2505050565b6128a4613571565b73ffffffffffffffffffffffffffffffffffffffff166128c2611d36565b73ffffffffffffffffffffffffffffffffffffffff1614612921576128e5613571565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016129189190613ad3565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612989576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612993610e37565b905060006129a084612288565b905060008383600001600c9054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1601905060006129ec6b0de0b6b39983494c589bffff8311611486565b612a036b0de0b6b39983494c589bffff8711611486565b1714612a3b576040517fe5cfe95700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8083600001600c6101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506000848360000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16019050808360000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506000600284600001600b9054906101000a900460ff161660ff1603612d1f5760008460060160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008460000160109054906101000a900463ffffffff1663ffffffff1690506000670de0b6b3a76400008481612b6f57612b6e6145e1565b5b0490506000612b86612b818385613579565b61358a565b90506000886007019050600082602001515114612d19576000670de0b6b3a76400008881612bb757612bb66145e1565b5b0490506000612bc68a8e612332565b905060008b60000160049054906101000a900463ffffffff1663ffffffff1690508460200151518c60000160088282829054906101000a900463ffffffff160192506101000a81548163ffffffff021916908363ffffffff160217905550858b60000160106101000a81548163ffffffff021916908363ffffffff1602179055505b5b6000612c5d85612c588461224c565b61225a565b63ffffffff1614612c805782816001019150811115612c7b57600190505b612c49565b612c8b88888361242e565b612c9d8482848a806001019b506135b5565b612caa858f8360006135fb565b82816001019150811115612cbd57600190505b858703612c4857808c60000160046101000a81548163ffffffff021916908363ffffffff160217905550612d15858d60010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613617565b5050505b50505050505b5050826000528360601b60601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206000a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b606060006001612e2d84613658565b01905060008167ffffffffffffffff811115612e4c57612e4b613d36565b5b6040519080825280601f01601f191660200182016040528015612e7e5781602001600182028036833780820191505090505b509050600082602001820190505b600115612ee1578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612ed557612ed46145e1565b5b04945060008503612e8c575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f52576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612f5c610e37565b90506000612f6985612288565b90506000612f7685612288565b9050612f806137ab565b8260000160109054906101000a900463ffffffff1663ffffffff168160800181815250508160000160109054906101000a900463ffffffff1663ffffffff168160a00181815250508260000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16816040018181525050806040015185111561303a576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8481604001818151039150818152505080604001518360000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550848260000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff160181606001818152508260000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506131128160800151670de0b6b3a764000083604001518161310c5761310b6145e1565b5b04613579565b8160000181815250506000600283600001600b9054906101000a900460ff161660ff16036131b6578573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16036131825780600001518160800151038160a00181815250505b6131ac670de0b6b3a76400008260600151816131a1576131a06145e1565b5b048260a00151613579565b8160200181815250505b60006131cb826020015183600001510161358a565b9050600085600701905060008360000151146133135760008660060160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600084608001519050600085600001518203905085600001518960000160088282829054906101000a900463ffffffff160392506101000a81548163ffffffff021916908363ffffffff160217905550808860000160106101000a81548163ffffffff021916908363ffffffff1602179055505b60006132ad84846001900394508461225a565b63ffffffff1690506132c285826000806135b5565b89600401600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055613307868e8360016135fb565b5080820361329a575050505b60008360200151146134f25760008660060160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008460a00151905060008560200151820190506000613384888d612332565b90506000670de0b6b3a76400008b600001600c9054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16816133ca576133c96145e1565b5b04905060008b60000160049054906101000a900463ffffffff1663ffffffff16905088602001518c60000160088282829054906101000a900463ffffffff160192506101000a81548163ffffffff021916908363ffffffff160217905550838a60000160106101000a81548163ffffffff021916908363ffffffff1602179055505b5b60006134618861345c8461224c565b61225a565b63ffffffff1614613484578181600101915081111561347f57600190505b61344d565b61348f86868361242e565b6134a1878285888060010199506135b5565b6134ae888f8360006135fb565b818160010191508111156134c157600190505b83850361344c57808c60000160046101000a81548163ffffffff021916908363ffffffff1602179055505050505050505b60008260200151511461352e5761352d828760010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613617565b5b5050846000528560601b60601c8760601b60601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206000a350505050505050565b600033905090565b600081830382841102905092915050565b6135926137e1565b604051828152806020018360051b81016040528183602001528083525050919050565b8163ffffffff168160201b17846020528360021c60005260406000206003851660061b815467ffffffffffffffff8482841c188116831b82188455505050505050505050565b8351818360081b8560601b171781526020810185525050505050565b60208201516040810363263c69d68152602080820152815160051b60440160208282601c85016000885af160018351141661365157600082fd5b5050505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106136b6577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816136ac576136ab6145e1565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106136f3576d04ee2d6d415b85acef810000000083816136e9576136e86145e1565b5b0492506020810190505b662386f26fc10000831061372257662386f26fc100008381613718576137176145e1565b5b0492506010810190505b6305f5e100831061374b576305f5e1008381613741576137406145e1565b5b0492506008810190505b6127108310613770576127108381613766576137656145e1565b5b0492506004810190505b606483106137935760648381613789576137886145e1565b5b0492506002810190505b600a83106137a2576001810190505b80915050919050565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001606081525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561383557808201518184015260208101905061381a565b60008484015250505050565b6000601f19601f8301169050919050565b600061385d826137fb565b6138678185613806565b9350613877818560208601613817565b61388081613841565b840191505092915050565b600060208201905081810360008301526138a58184613852565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138e2826138b7565b9050919050565b6138f2816138d7565b81146138fd57600080fd5b50565b60008135905061390f816138e9565b92915050565b6000819050919050565b61392881613915565b811461393357600080fd5b50565b6000813590506139458161391f565b92915050565b60008060408385031215613962576139616138ad565b5b600061397085828601613900565b925050602061398185828601613936565b9150509250929050565b60008115159050919050565b6139a08161398b565b82525050565b60006020820190506139bb6000830184613997565b92915050565b6139ca81613915565b82525050565b60006020820190506139e560008301846139c1565b92915050565b600080600060608486031215613a0457613a036138ad565b5b6000613a1286828701613900565b9350506020613a2386828701613900565b9250506040613a3486828701613936565b9150509250925092565b600060208284031215613a5457613a536138ad565b5b6000613a6284828501613900565b91505092915050565b613a748161398b565b8114613a7f57600080fd5b50565b600081359050613a9181613a6b565b92915050565b600060208284031215613aad57613aac6138ad565b5b6000613abb84828501613a82565b91505092915050565b613acd816138d7565b82525050565b6000602082019050613ae86000830184613ac4565b92915050565b600060ff82169050919050565b613b0481613aee565b82525050565b6000602082019050613b1f6000830184613afb565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613b4a57613b49613b25565b5b8235905067ffffffffffffffff811115613b6757613b66613b2a565b5b602083019150836001820283011115613b8357613b82613b2f565b5b9250929050565b60008060208385031215613ba157613ba06138ad565b5b600083013567ffffffffffffffff811115613bbf57613bbe6138b2565b5b613bcb85828601613b34565b92509250509250929050565b600060208284031215613bed57613bec6138ad565b5b6000613bfb84828501613936565b91505092915050565b60008060408385031215613c1b57613c1a6138ad565b5b6000613c2985828601613900565b9250506020613c3a85828601613900565b9150509250929050565b60006bffffffffffffffffffffffff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613c9682613c44565b9150613ca183613c44565b925082820390506bffffffffffffffffffffffff811115613cc557613cc4613c5c565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d1257607f821691505b602082108103613d2557613d24613ccb565b5b50919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613dc77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613d8a565b613dd18683613d8a565b95508019841693508086168417925050509392505050565b6000819050919050565b6000613e0e613e09613e0484613915565b613de9565b613915565b9050919050565b6000819050919050565b613e2883613df3565b613e3c613e3482613e15565b848454613d97565b825550505050565b600090565b613e51613e44565b613e5c818484613e1f565b505050565b5b81811015613e8057613e75600082613e49565b600181019050613e62565b5050565b601f821115613ec557613e9681613d65565b613e9f84613d7a565b81016020851015613eae578190505b613ec2613eba85613d7a565b830182613e61565b50505b505050565b600082821c905092915050565b6000613ee860001984600802613eca565b1980831691505092915050565b6000613f018383613ed7565b9150826002028217905092915050565b613f1b8383613d2b565b67ffffffffffffffff811115613f3457613f33613d36565b5b613f3e8254613cfa565b613f49828285613e84565b6000601f831160018114613f785760008415613f66578287013590505b613f708582613ef5565b865550613fd8565b601f198416613f8686613d65565b60005b82811015613fae57848901358255600182019150602085019450602081019050613f89565b86831015613fcb5784890135613fc7601f891682613ed7565b8355505b6001600288020188555050505b50505050505050565b7f4e6f206574686572206c65667420746f20776974686472617700000000000000600082015250565b6000614017601983613806565b915061402282613fe1565b602082019050919050565b600060208201905081810360008301526140468161400a565b9050919050565b600081905092915050565b50565b600061406860008361404d565b915061407382614058565b600082019050919050565b60006140898261405b565b9150819050919050565b7f4574686572207769746864726177616c206661696c6564000000000000000000600082015250565b60006140c9601783613806565b91506140d482614093565b602082019050919050565b600060208201905081810360008301526140f8816140bc565b9050919050565b7f496e76616c696420746f6b656e20616464726573730000000000000000000000600082015250565b6000614135601583613806565b9150614140826140ff565b602082019050919050565b6000602082019050818103600083015261416481614128565b9050919050565b60008151905061417a8161391f565b92915050565b600060208284031215614196576141956138ad565b5b60006141a48482850161416b565b91505092915050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006141e3601483613806565b91506141ee826141ad565b602082019050919050565b60006020820190508181036000830152614212816141d6565b9050919050565b600060408201905061422e6000830185613ac4565b61423b60208301846139c1565b9392505050565b60008151905061425181613a6b565b92915050565b60006020828403121561426d5761426c6138ad565b5b600061427b84828501614242565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b60006142ba601583613806565b91506142c582614284565b602082019050919050565b600060208201905081810360008301526142e9816142ad565b9050919050565b7f54617820726174652063616e6e6f742065786365656420313025000000000000600082015250565b6000614326601a83613806565b9150614331826142f0565b602082019050919050565b6000602082019050818103600083015261435581614319565b9050919050565b600081905092915050565b6000815461437481613cfa565b61437e818661435c565b9450600182166000811461439957600181146143ae576143e1565b60ff19831686528115158202860193506143e1565b6143b785613d65565b60005b838110156143d9578154818901526001820191506020810190506143ba565b838801955050505b50505092915050565b60006143f5826137fb565b6143ff818561435c565b935061440f818560208601613817565b80840191505092915050565b60006144278285614367565b915061443382846143ea565b91508190509392505050565b600063ffffffff82169050919050565b600061445a8261443f565b915063ffffffff82036144705761446f613c5c565b5b600182019050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006144d7602583613806565b91506144e28261447b565b604082019050919050565b60006020820190508181036000830152614506816144ca565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614569602383613806565b91506145748261450d565b604082019050919050565b600060208201905081810360008301526145988161455c565b9050919050565b60006145aa82613915565b91506145b583613915565b92508282026145c381613915565b915082820484148315176145da576145d9613c5c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061461b82613915565b915061462683613915565b925082614636576146356145e1565b5b828204905092915050565b600061464c82613915565b915061465783613915565b925082820390508181111561466f5761466e613c5c565b5b9291505056fea264697066735822122074ca5450c0bce011c77379f0a22822ace22a635a8e0dc5013da2687f226bbd8d64736f6c6343000816003300582103a6a58217fc19a2ae1218d838e53e1583ee2d268c8832dc8bdc7b5413d73caed0581d015af1d78b58c40000000000190000000201000000000000000000000000582002344ff84d0c66a448e3cfd9321e0b76f2cd814ba559de72a73f3b808497ff0b581d02e9bd4169e5693db800000000000000000300000000000000000000000058200283549745f63709dcd85383cdc1a6478046f4ce39e606a970aa9ddb21ffbc96581d0d0000000c0000000b0000000a00000009000000080000000700000006005820021d267ea1a86dfdb3c46b45b174495d9d2a0eb5937172d25a0ddb440647b775582075642f697066732f516d557946716653617848684765565a436b78416865525a0219842003dac1db79fe254333bbe0eecff64ed9491abaf64a257e0c4dd9221e4c916e8bb400582002a5ec654a96591bcbc840fd96faa3beee1a62f4f302948234699bd7dacefef0581d1d0000001c0000001b0000001a00000019000000180000001700000016005820020a7cab1ecb3fd251b52752bacc4175082090b836074f140b2a22755813517f510500000004000000030000000200000001005820028a9ffd58db029f2bac46056dbc53052839d91105f501f2db6ecb9566ee6832582069534c3236375953787a754e346f4d6e4731375a32522f0000000000000000000219a002033abb0baa4f03e56ea5859083ef2513106b083f17d248e8b03a9f42d1453dd92e005820024d6749a66c0401948c5e87df29799e5714f0d5939adbe1a7639e8dca4fb61f553635c9adc5dea000000000001e0000001f00000002005820021dba348c6538ad28f3cb66a03fae42f34c982ad95cea4325620323a22d4aef41010219400200582103f91e8b3dbea3fec16b14238c9f0519ea7aefea6527f80886a37a6ab035f50c60581d010000000200000000000000020000000400000001000000030000000103427150de0ab237dd6bb8633b619d8bcafa8a8e42a9cd864729e82a83dc296fd200582103a56145461ac26792ac14ff69aacae2fec7629ec9199d3548580c5e5429234210548140856d02963e0a9fc4786115b5c00ab8e4c5ab0058210369baa287ad7e8819d63c8414b7e97b8c1bf628b2a0c351f9389f7344b1c61b9054af14c620e5c60082365eebdcdb0674eba5a94d8f005820020e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65820484f4e4742414f0000000000000000000000000000000000000000000000000e005820025f8633eaee2ec550e1d560ed9098e6af24db5aff45ff602bf398a628079206581d31abb7034e5b7ec248000000000000000003000000000000000000000000582002641e802ce54288b86443a142e8ba0a18498d8df529c634bef61f269d7faac654f2645b9d6ff623f6064b7fa07f8546276341c44e00582002f3c7e60f9cc15c4f4e746097127026b681181cad23453e084ab6a5aac27e1b581d09000000020000000800000002000000070000000200000006000000020219182200582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b41af005820024230236251918225386e422f54b9b2fdb5ec9bb458b59c159fdcb4fe9201785518000000020000001700000002000000160000000202190204037dae3414853583b301e8548d2dd1b3861715f2b112c84b792717b77cbcff735e00582103a4ddb158bbd494c0a5a4f69b2a9601f021a260f94ef71878d1a6e650f8102000581d020000000100000001000000010000000000000001000000000000000000582002c5e950eb62d2cedd77ace9c4517a872a4468799467d490ad8c7e0f63102bd3581d0d000000020000000c000000020000000b000000020000000a0000000200582002fb467f2544b19c9b1a232e372d7ce257cfa2ccb85964bf9863ec54c9ee4792411e00582002cc4af04e338d3b46ae4a660e1886e25e1e64d166d85a225c1f3f300836b85b581d110000000200000010000000020000000f000000020000000e000000020218190219ff7f05581e030c2290bc8e9c4aab211e5def2a5579d49826c01a6d47ca6a6cdbdb95a007021946ab05581e03728b9af86de668bddf7aa7c0f724100001198a8b3f5c343a32acf39910040205581e03fe1ff6c773edd0bd2928fe5e57b3a93538995ecace926932632a9923200c0146cac2197ba60003af0d0be23aae3be955c9facca3b862ee51bae58cc60718061844169af5f80d6805581e0393acc1e9afdef72ef671d981bc6e95054aed9ac93a69279fd04c74e6f0040205581e03c34497a59a24c30c166ee314a876eacf791bb574b66e78efe3e01a22b004030332ffc6c4cf72d1425e971adf43448fba6382763bc516fabf1957568a5a7978ab05581e034f91d5e89ed5a5756365083528e89b7cbbc4649c39ca22526812010f20040103d7d408ebcd99b2b70be43e20253d6d92a8ea8fab29bd3be7f55b10032331fb4c03be90f5291762f855e8e062e7fab4947b0fa2aa8fad6349c847f8bf1441d2124c05581e0398f040e144166685e22ad9ea520699a85115975c9a34ba03bfd36ab9b007011bffffffffffffffff03ed245e387af828638f497155db8aed8126247677ded7137d0d8de34fcbfc711802199f5703376ad9a94e74acf7ed329ceac565834d660b948edf59a9896725ca21ddbe7a65034c86bd2a102f123ef5af4d3885b0abfba60f7b9c09d367d47b2b416e7772d572035ba1fcf68b11ea2a5e4de9a43c78dfb47456c51ca6d3310b74e1e7e25b4c285903ca46f32426b729d104c69d812fea6110f7beee3b70d323ee0ddeaff950479c0a0346ed17b7696e52abbf30b3a1f78ccac6f5088cbec416ff3de2c97b90f59aa565038d3eccf9e02513bc0e4dd1e8397fbc45a36ab12d6705bf4354dd4a07762885b6033fc13ecf1a3ccb087e2923777dd146a0f379626d8086d074dab756942e286ec4035eb8cfa514b356ee1efc3ac66043377a04d0da75154b20908908c5dbdf47ecf803dc97a18f61b5b89404645322d0295b92b18c8edeb20bb775ff61476d51277b810366dfdab995c69bdee057011d9730c21e29a17aeb6efa2c35bd0cf104d777d6cb03f2097a6d30592fc1c9c0030b9aa6b0c92fcce1050391bd17a330b4ef8124bb1203b18cc5b49b0a4d1e2e9f0631a166ac9567292f6d4638f50e1b9c31bd5fbbefc00219ffff0351edd9fdd56a2ec356dafba68fd45a7755002874790da0071475318b9d0b4b52030725533e80bd19621677599759dd1b155fe5c382b3f10e24a7f0dde8b9c02835038d42d8ea14e41adaa118a65d89957edbcf4b3cb30e609c038cd0456f9196095d033302254790c48afb3ee9bea4588a9c10e5e9505722490a9582a4f7f503eb731c03160401bb34edbf0ac4de789194fdfc42aa79c2a3d5a6f02fa1f2f8fe03f5e6fd0301287ad9a5c4a2f4e39fae345b41a55399c5ad7e555f5dac121b35b4c3acae27034238fcf089c50a9426af0ede9b0637ddcb0f43a9038c228853cc87724c1e79140219ffff0347996398c82165013941dd2a7b1143f6804204a97c65cee8e08d3cadfd75ea9a03f899e366e4b1662a96caa19c2a10fb62745cb4ec7395148382b5e53430a3d1af035c1c3c7499cf580898f1ccb5fbbdbca98d1c57386a1eb2d3c8138af43fb18697038f90625f78e9732d129ebee161a57f2cb37d5a2fa0872d340bc043357567b15803f720b203d207432a721e0b05951872eb61ca77402f10916a009abd0d403dcaed03157835c7daaa08b60e14ec5243e5fe9db0bc5b99971f21e3f5fea26521ebd6da035ac8ae807a50e23bf7ff6d5d9d7157aeef6eace985a010f951baaa162c4d3c11038c80271ceefd2175d81305049b90545d3fb57a28378afa59aaaffa37ffe9658c03da8b5abd0d10712ffaa54976f34789dd222bf8facabb6d96a0233f855602f1c10393375ac68e90ab175103881d5fab4cc5a4ceb25cae5484451ab38c2392248a090353857604d563ce3b580252162df101abdbf73927263aa750ab8d630b3e8038060219ffff03a00810821e0f84af3ae8af47255f7d4fae9e1712bea063912e61dfdedea962fa0345c8413eee299a6913d6deabd8207c5d9173a8ceac16fd3e7432a16fbc20ffca0360b20ea5dcaa7c39b284dfe8f2ce75d3b09df7846123f697dfad87325994d925037f12c17a3e8177d77428d42c3af06f22bcbf91a475fd33263b4911ab79f37bc9036c86c3150f2a63ae06a8e65d8e7648c379bf78d54da28aa62f4d9b09c8124d710307903f47f2ce1c9121ad19dc0f8aa5d6f5170aa84d0f579b4bef8fd5ab92a36b033a4141d923ca395383574a50a90838afebeaf34d01112e15972f7ad6dc5c49ea03f86f808e5684432bd621d76f18f9a6bbe193d6a78947a43bea12188b0ffdbdef0300aaebe2e3ded634a73e62c9e3ad2c39d79fc832181dc3763bff7cf9faf5b89b035aeb45bfc1047c8a64b5602ff6eade9325593d123ef82a62098d4f63a56c4e5a036f798c7cf7db2f8a87162fb729f2108131b9528990e4074008898e3504bdf97903cadf1c973312d1ee7d179a0c742ab17b26adc3f950e737072c531719b927b4ff0219ffff03f711569129b5dc189612ea1009a5a06ab91a25fa493f984126782e28138221dd0338c6f2956aba04d5aa109e10a4f0018e6c23db222467e615c50593a20231e4b803a95b843ead53e968cf13e6cf68e941954433c3530fba862a265380a4d4961763034aad2b846687e60ef6ba445238956de928e94306b0d006fe719234a080156373033eaf0f908aecdd30438f72d591400270ef64f1fd23ccd545b7a3f07938cb9a3e033db8efc8c221fe1f24bca291900adef5d9b32346261bfa1769eea16da75d28b0032640b075d2b6c362828fbf9559d61151e84d2e05dde525cba9cdc7f9aede24ba038983169ef75068d460a0d2d0ec86d0639b2c72e0c77e56b0d5fa4d63161decab03ab3ad083e63a3a4af637e0b2f300120071339a46a093fb2af292338e0fccedc003a87f12207f8030b45d1c78b17d2d9a449ee2cc54d1189794ac8797ebdce8a2b50337d5f260ca675994a7f39492b6a62c9ee685e2c7c2dee1f326657bed34d039e2032ad03a5db7b1aa15164a1044c75059f51d79f8b83b7a591e9a8e604e9257d6ff037b952ad125c30efeb0990ec3e9bc65ae6f0eb422490d45d5fc4092d36a967ded03ee5641774d1aa19c0945643c8e828c1063c658cb214e71bdb0d5336d65774d13032fc920942582fe8200b5228d4968f835799c5824659abb316bbb9ea91a066cc003609bfd3984a82f25c2f4faac561f101a4a46ba4b8500e1b5f280c5c2281abc55035fbb8896e284b6215e15e66d7e8ad6d54f4210a7deb2a8a8ac62be969cb017570321b42fc3e00d3c6a7829e0bf6b7016347ee78ec9d7369f7049d4f1d8251c06810303b303ec83ef8a1cbb53c3f9f74c73fbf62405b70a9149b01cb15ecf6a9045f1038509ff8dac14e41b233e39fc3c0736657e20183c42f7744891c06abd8f0652190372276fe284394b92af71a521c89d95949582153046e0be2717fe63d1b27bb8f903be0091b83cce2b6d8d0bc358025ca6a0e07f426205e662490786da5a95ec32cc03d93234ed3a82b09d3cbafa02562b56faa216e786701ebcc09cbdf959bd8a467403b54f1b4131fc4f441424069d2e0cca3321755b5ad1faea1eec21f277541f3ab2034a5d87d6c9ffe713516b77770d4073b02ad7f206f5c426ff93fc9690c54968e603c70a8010104e670988536f7e591355ee3bbb074cd33e5edef03c2c59fd353bdc039580312c4e71785e78736943d44242b373ecacb33ee03677dfeb1bc4fd63006903dee5e17a9d94b4adec65d4c445f8603acfbd99ad4aa9ae8eddfc86144abe979203c484df6afe59c7ea1d3377964d84f771355b1d3301472a1b97044d479f620fb005581e03bd37fd152ca264eb62ca42c9762fe745c21220c74b28a045255cf6d5b00c014709faa779c79000045955b760806040526004361061018f5760003560e01c80638803dbee116100d6578063c45a01551161007f578063e8e3370011610059578063e8e3370014610c71578063f305d71914610cfe578063fb3bdb4114610d51576101d5565b8063c45a015514610b25578063d06ca61f14610b3a578063ded9382a14610bf1576101d5565b8063af2979eb116100b0578063af2979eb146109c8578063b6f9de9514610a28578063baa2abde14610abb576101d5565b80638803dbee146108af578063ad5c464814610954578063ad615dec14610992576101d5565b80634a25d94a11610138578063791ac94711610112578063791ac947146107415780637ff36ab5146107e657806385f8c25914610879576101d5565b80634a25d94a146105775780635b0d59841461061c5780635c11d7951461069c576101d5565b80631f00ca74116101695780631f00ca74146103905780632195995c1461044757806338ed1739146104d2576101d5565b806302751cec146101da578063054d50d41461025357806318cbafe51461029b576101d5565b366101d5573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216146101d357fe5b005b600080fd5b3480156101e657600080fd5b5061023a600480360360c08110156101fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610de4565b6040805192835260208301919091528051918290030190f35b34801561025f57600080fd5b506102896004803603606081101561027657600080fd5b5080359060208101359060400135610f37565b60408051918252519081900360200190f35b3480156102a757600080fd5b50610340600480360360a08110156102be57600080fd5b8135916020810135918101906060810160408201356401000000008111156102e557600080fd5b8201836020820111156102f757600080fd5b8035906020019184602083028401116401000000008311171561031957600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f4c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561037c578181015183820152602001610364565b505050509050019250505060405180910390f35b34801561039c57600080fd5b50610340600480360360408110156103b357600080fd5b813591908101906040810160208201356401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184602083028401116401000000008311171561040957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611364945050505050565b34801561045357600080fd5b5061023a600480360361016081101561046b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff610100820135169061012081013590610140013561139a565b3480156104de57600080fd5b50610340600480360360a08110156104f557600080fd5b81359160208101359181019060608101604082013564010000000081111561051c57600080fd5b82018360208201111561052e57600080fd5b8035906020019184602083028401116401000000008311171561055057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356114d8565b34801561058357600080fd5b50610340600480360360a081101561059a57600080fd5b8135916020810135918101906060810160408201356401000000008111156105c157600080fd5b8201836020820111156105d357600080fd5b803590602001918460208302840111640100000000831117156105f557600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611669565b34801561062857600080fd5b50610289600480360361014081101561064057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356118ac565b3480156106a857600080fd5b506101d3600480360360a08110156106bf57600080fd5b8135916020810135918101906060810160408201356401000000008111156106e657600080fd5b8201836020820111156106f857600080fd5b8035906020019184602083028401116401000000008311171561071a57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356119fe565b34801561074d57600080fd5b506101d3600480360360a081101561076457600080fd5b81359160208101359181019060608101604082013564010000000081111561078b57600080fd5b82018360208201111561079d57600080fd5b803590602001918460208302840111640100000000831117156107bf57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611d97565b610340600480360360808110156107fc57600080fd5b8135919081019060408101602082013564010000000081111561081e57600080fd5b82018360208201111561083057600080fd5b8035906020019184602083028401116401000000008311171561085257600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612105565b34801561088557600080fd5b506102896004803603606081101561089c57600080fd5b5080359060208101359060400135612525565b3480156108bb57600080fd5b50610340600480360360a08110156108d257600080fd5b8135916020810135918101906060810160408201356401000000008111156108f957600080fd5b82018360208201111561090b57600080fd5b8035906020019184602083028401116401000000008311171561092d57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612532565b34801561096057600080fd5b50610969612671565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561099e57600080fd5b50610289600480360360608110156109b557600080fd5b5080359060208101359060400135612695565b3480156109d457600080fd5b50610289600480360360c08110156109eb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356126a2565b6101d360048036036080811015610a3e57600080fd5b81359190810190604081016020820135640100000000811115610a6057600080fd5b820183602082011115610a7257600080fd5b80359060200191846020830284011164010000000083111715610a9457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612882565b348015610ac757600080fd5b5061023a600480360360e0811015610ade57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612d65565b348015610b3157600080fd5b5061096961306f565b348015610b4657600080fd5b5061034060048036036040811015610b5d57600080fd5b81359190810190604081016020820135640100000000811115610b7f57600080fd5b820183602082011115610b9157600080fd5b80359060200191846020830284011164010000000083111715610bb357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613093945050505050565b348015610bfd57600080fd5b5061023a6004803603610140811015610c1557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356130c0565b348015610c7d57600080fd5b50610ce06004803603610100811015610c9557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135613218565b60408051938452602084019290925282820152519081900360600190f35b610ce0600480360360c0811015610d1457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356133a7565b61034060048036036080811015610d6757600080fd5b81359190810190604081016020820135640100000000811115610d8957600080fd5b820183602082011115610d9b57600080fd5b80359060200191846020830284011164010000000083111715610dbd57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356136d3565b6000808242811015610e5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b610e86897f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28a8a8a308a612d65565b9093509150610e96898685613b22565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610f0957600080fd5b505af1158015610f1d573d6000803e3d6000fd5b50505050610f2b8583613cff565b50965096945050505050565b6000610f44848484613e3c565b949350505050565b60608142811015610fbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061102357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6111207f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f6092505050565b9150868260018451038151811061113357fe5b60200260200101511015611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b611257868660008181106111a257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff163361123d7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8a8a60008181106111f157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061121b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166140c6565b8560008151811061124a57fe5b60200260200101516141b1565b61129682878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614381915050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836001855103815181106112e257fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561132057600080fd5b505af1158015611334573d6000803e3d6000fd5b50505050611359848360018551038151811061134c57fe5b6020026020010151613cff565b509695505050505050565b60606113917f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8484614608565b90505b92915050565b60008060006113ca7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8f8f6140c6565b90506000876113d9578c6113fb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050506114be8f8f8f8f8f8f8f612d65565b809450819550505050509b509b9950505050505050505050565b6060814281101561154a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6115a87f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f6092505050565b915086826001845103815181106115bb57fe5b6020026020010151101561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b61162a868660008181106111a257fe5b61135982878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250614381915050565b606081428110156116db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b61183d7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061460892505050565b9150868260008151811061184d57fe5b60200260200101511115611192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154986027913960400191505060405180910390fd5b6000806118fa7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8d7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26140c6565b9050600086611909578b61192b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c48101879052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156119c757600080fd5b505af11580156119db573d6000803e3d6000fd5b505050506119ed8d8d8d8d8d8d6126a2565b9d9c50505050505050505050505050565b8042811015611a6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b611afd85856000818110611a7e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633611af77f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89896000818110611acd57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061121b57fe5b8a6141b1565b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611b2d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bc657600080fd5b505afa158015611bda573d6000803e3d6000fd5b505050506040513d6020811015611bf057600080fd5b50516040805160208881028281018201909352888252929350611c32929091899189918291850190849080828437600092019190915250889250614796915050565b86611d368288887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611c6557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b505afa158015611d12573d6000803e3d6000fd5b505050506040513d6020811015611d2857600080fd5b50519063ffffffff614b2916565b1015611d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b5050505050505050565b8042811015611e0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21685857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611e6c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b611f1b85856000818110611a7e57fe5b611f59858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614796915050565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216916370a0823191602480820192602092909190829003018186803b158015611fe957600080fd5b505afa158015611ffd573d6000803e3d6000fd5b505050506040513d602081101561201357600080fd5b5051905086811015612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156120e357600080fd5b505af11580156120f7573d6000803e3d6000fd5b50505050611d8d8482613cff565b6060814281101561217757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16868660008181106121bb57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461225a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6122b87f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f34888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f6092505050565b915086826001845103815181106122cb57fe5b6020026020010151101561232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061237357fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123a657600080fd5b505af11580156123ba573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61242c7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89896000818110611acd57fe5b8460008151811061243957fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124aa57600080fd5b505af11580156124be573d6000803e3d6000fd5b505050506040513d60208110156124d457600080fd5b50516124dc57fe5b61251b82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250614381915050565b5095945050505050565b6000610f44848484614b9b565b606081428110156125a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6126027f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061460892505050565b9150868260008151811061261257fe5b6020026020010151111561161a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154986027913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6000610f44848484614cbf565b6000814281101561271457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b612743887f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28989893089612d65565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519194506127ed92508a91879173ffffffffffffffffffffffffffffffffffffffff8416916370a0823191602480820192602092909190829003018186803b1580156127bc57600080fd5b505afa1580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b5051613b22565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b505050506113598483613cff565b80428110156128f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168585600081811061293657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b60003490507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a4257600080fd5b505af1158015612a56573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612ac87f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89896000818110611acd57fe5b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b3257600080fd5b505af1158015612b46573d6000803e3d6000fd5b505050506040513d6020811015612b5c57600080fd5b5051612b6457fe5b600086867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612b9457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c2d57600080fd5b505afa158015612c41573d6000803e3d6000fd5b505050506040513d6020811015612c5757600080fd5b50516040805160208981028281018201909352898252929350612c999290918a918a918291850190849080828437600092019190915250899250614796915050565b87611d368289897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612ccc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b6000808242811015612dd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6000612e057f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8c8c6140c6565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015612e8657600080fd5b505af1158015612e9a573d6000803e3d6000fd5b505050506040513d6020811015612eb057600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015612f2357600080fd5b505af1158015612f37573d6000803e3d6000fd5b505050506040513d6040811015612f4d57600080fd5b50805160209091015190925090506000612f678e8e614d9f565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612fa4578183612fa7565b82825b90975095508a871015613005576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154bf6026913960400191505060405180910390fd5b8986101561305e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154256026913960400191505060405180910390fd5b505050505097509795505050505050565b7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b60606113917f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8484613f60565b60008060006131107f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8e7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26140c6565b905060008761311f578c613141565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156131dd57600080fd5b505af11580156131f1573d6000803e3d6000fd5b505050506132038e8e8e8e8e8e610de4565b909f909e509c50505050505050505050505050565b6000806000834281101561328d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61329b8c8c8c8c8c8c614ef2565b909450925060006132cd7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8e8e6140c6565b90506132db8d3383886141b1565b6132e78c3383876141b1565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561336657600080fd5b505af115801561337a573d6000803e3d6000fd5b505050506040513d602081101561339057600080fd5b5051949d939c50939a509198505050505050505050565b6000806000834281101561341c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61344a8a7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28b348c8c614ef2565b9094509250600061349c7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8c7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26140c6565b90506134aa8b3383886141b1565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561351257600080fd5b505af1158015613526573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156135d257600080fd5b505af11580156135e6573d6000803e3d6000fd5b505050506040513d60208110156135fc57600080fd5b505161360457fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561368357600080fd5b505af1158015613697573d6000803e3d6000fd5b505050506040513d60208110156136ad57600080fd5b50519250348410156136c5576136c533853403613cff565b505096509650969350505050565b6060814281101561374557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168686600081811061378957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461382857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6138867f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061460892505050565b9150348260008151811061389657fe5b602002602001015111156138f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154986027913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061393e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561397157600080fd5b505af1158015613985573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6139f77f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89896000818110611acd57fe5b84600081518110613a0457fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613a7557600080fd5b505af1158015613a89573d6000803e3d6000fd5b505050506040513d6020811015613a9f57600080fd5b5051613aa757fe5b613ae682878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250614381915050565b81600081518110613af357fe5b602002602001015134111561251b5761251b3383600081518110613b1357fe5b60200260200101513403613cff565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310613bf857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613bbb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c5a576040519150601f19603f3d011682016040523d82523d6000602084013e613c5f565b606091505b5091509150818015613c8d575080511580613c8d5750808060200190516020811015613c8a57600080fd5b50515b613cf857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310613d7657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613d39565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613dd8576040519150601f19603f3d011682016040523d82523d6000602084013e613ddd565b606091505b5050905080613e37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806154e56023913960400191505060405180910390fd5b505050565b6000808411613e96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615557602b913960400191505060405180910390fd5b600083118015613ea65750600082115b613efb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061544b6028913960400191505060405180910390fd5b6000613f0f856103e563ffffffff6151f316565b90506000613f23828563ffffffff6151f316565b90506000613f4983613f3d886103e863ffffffff6151f316565b9063ffffffff61527916565b9050808281613f5457fe5b04979650505050505050565b6060600282511015613fd357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015613feb57600080fd5b50604051908082528060200260200182016040528015614015578160200160208202803683370190505b509050828160008151811061402657fe5b60200260200101818152505060005b60018351038110156140be576000806140788786858151811061405457fe5b602002602001015187866001018151811061406b57fe5b60200260200101516152eb565b9150915061409a84848151811061408b57fe5b60200260200101518383613e3c565b8484600101815181106140a957fe5b60209081029190910101525050600101614035565b509392505050565b60008060006140d58585614d9f565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061428f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101614252565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146142f1576040519150601f19603f3d011682016040523d82523d6000602084013e6142f6565b606091505b5091509150818015614324575080511580614324575080806020019051602081101561432157600080fd5b50515b614379576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806155336024913960400191505060405180910390fd5b505050505050565b60005b60018351038110156146025760008084838151811061439f57fe5b60200260200101518584600101815181106143b657fe5b60200260200101519150915060006143ce8383614d9f565b50905060008785600101815181106143e257fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461442a5782600061442e565b6000835b91509150600060028a510388106144455788614486565b6144867f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f878c8b6002018151811061447957fe5b60200260200101516140c6565b90506144b37f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f88886140c6565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156144fd576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614588578181015183820152602001614570565b50505050905090810190601f1680156145b55780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156145d757600080fd5b505af11580156145eb573d6000803e3d6000fd5b505060019099019850614384975050505050505050565b50505050565b606060028251101561467b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561469357600080fd5b506040519080825280602002602001820160405280156146bd578160200160208202803683370190505b50905082816001835103815181106146d157fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b80156140be576000806147318786600186038151811061471d57fe5b602002602001015187868151811061406b57fe5b9150915061475384848151811061474457fe5b60200260200101518383614b9b565b84600185038151811061476257fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01614701565b60005b6001835103811015613e37576000808483815181106147b457fe5b60200260200101518584600101815181106147cb57fe5b60200260200101519150915060006147e38383614d9f565b50905060006148137f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f85856140c6565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561486157600080fd5b505afa158015614875573d6000803e3d6000fd5b505050506040513d606081101561488b57600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905060008073ffffffffffffffffffffffffffffffffffffffff8a8116908916146148d55782846148d8565b83835b9150915061495d828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b955061496a868383613e3c565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146149ae578260006149b2565b6000835b91509150600060028c51038a106149c9578a6149fd565b6149fd7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f898e8d6002018151811061447957fe5b60408051600080825260208201928390527f022c0d9f000000000000000000000000000000000000000000000000000000008352602482018781526044830187905273ffffffffffffffffffffffffffffffffffffffff8086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015614aad578181015183820152602001614a95565b50505050905090810190601f168015614ada5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015614afc57600080fd5b505af1158015614b10573d6000803e3d6000fd5b50506001909b019a506147999950505050505050505050565b8082038281111561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000808411614bf5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806153d4602c913960400191505060405180910390fd5b600083118015614c055750600082115b614c5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061544b6028913960400191505060405180910390fd5b6000614c7e6103e8614c72868863ffffffff6151f316565b9063ffffffff6151f316565b90506000614c986103e5614c72868963ffffffff614b2916565b9050614cb56001828481614ca857fe5b049063ffffffff61527916565b9695505050505050565b6000808411614d19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154736025913960400191505060405180910390fd5b600083118015614d295750600082115b614d7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061544b6028913960400191505060405180910390fd5b82614d8f858463ffffffff6151f316565b81614d9657fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614e27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154006025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610614e61578284614e64565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216614eeb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f9092169163e6a4390591604480820192602092909190829003018186803b158015614f9257600080fd5b505afa158015614fa6573d6000803e3d6000fd5b505050506040513d6020811015614fbc57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614156150a257604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f9092169163c9c65396916044808201926020929091908290030181600087803b15801561507557600080fd5b505af1158015615089573d6000803e3d6000fd5b505050506040513d602081101561509f57600080fd5b50505b6000806150d07f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8b8b6152eb565b915091508160001480156150e2575080155b156150f2578793508692506151e6565b60006150ff898484614cbf565b905087811161516c5785811015615161576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154256026913960400191505060405180910390fd5b8894509250826151e4565b6000615179898486614cbf565b90508981111561518557fe5b878110156151de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154bf6026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b600081158061520e5750508082028282828161520b57fe5b04145b61139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b60008060006152fa8585614d9f565b50905060008061530b8888886140c6565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561535057600080fd5b505afa158015615364573d6000803e3d6000fd5b505050506040513d606081101561537a57600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146153c15780826153c4565b81815b9099909850965050505050505056fe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a26469706673582212206dd6e03c4b2c0a8e55214926227ae9e2d6f9fec2ce74a6446d615afa355c84f364736f6c634300060600330605581d02a7e8b8234a7992da2173c0d9eb404853fe85a65a0881149522e12b2a0f014758d15e176280001955b705581d024ace4a9cf9849185c4b4cd9d2d43e5360f36d915f743ac51fcc9c7f80c02450135f1b4000219042005581e03dc8fc5260164a847b23d38a881b05ec9e601d397d1188021168d7c0da00c024701923a550aa0c803fe15c6a27562a27ae904cb1b828dd828705d1507183fdaa98bcdd0bb1025ee5305581e03f23857a9fa3d0da9ae7310c160afcf49158a232640406bae60c29650500c01472296500eeb160005581e037f46e0bb2789267d0a30b8d43a6d3e2a2e289f0fcb20ea1bc8ee7216a00c024744d7c56d940be603da1a91bd88ab16e57730db064e35880953edf7a3e2f40ec22e887166b95f4b18032be8a5093959bbacdaa2d02b061939a3a07681b5a5351eef8de8b286f8df80ba0399cc8746fb4acef4aa25ad53d2d12e8af29520040e86729cf0fe867839a233a005581e031d2088553eaa5823aa330be942a76137ea4d7416fda40c5c72917239f00c0147028114c7f49fc0034277b3bbc296a60f66b308aceaf2f9ad4e766e1984e39f2bb1256df0c51448a70219cbde03821c17b99606f4ef0404c1e66f9b5847282857f6d43c1d1e2282e3e20358c1a203db467c50e815cada5a92eff2a2eacd9ea814c7a9ef7e9360b114df767836e0da03454a7715e43a8f5665f3175574c0f374cd68bdd08d8d39beda757efe065a1d01031b6cddd0884a393f6d5bcfee003d6dc52eca04e3674b628c1218c9df32da11c00319e2bf440d2b4f680aaafa688da47d7a6bb06838e97a74e1417448325e4dc2160353551a267211a18f437178d0c23472dbe9821cf53390b4846f5824c4479362ee03bd0a711bff7996b670c2882e6431d8feede57819c03c580eaa092d1a8f5351940380cbe31fb0e2a43ba18c77d189091732df11cdeae4b9271100d3c69cdaf18eb40219ffff03b903cc550db702ad3a61ba3345dc7be08f65f036ca37eb75de4257af49f2a5b50310081833d47de439dc5ca64722ddbe5b89d19154c69209fc433bc3f9be784edf0219ffff03c301f7e0f176c7195b7002206d5d56acc1ea7e68616ea68c65345dfe325cda8a0398d864f93383e440938855e216914a7657f791096683dc5e1a95247526b21b7c030aa0afd682a694188ba1e959debc39df4164c06fb62c972b1efc58a37e5e34f30355696aeaa907d644a62566418115cff57fdbe7ea48ac28e27f4869a444b1dbe7036175a74384427131cd1f76af4f6acbaf7394eaf522902cc13990da252fce6c8c0309968c0b60d1a2dbc7fb50a199f6b0429722075e6b0899f82013e64c4990cf780367ea5b99fc8b8a0bc5441573d9f1e554e9ca7c73adbd4a0da858b344f296e887039bb8ef7a73bff7718ddfeec785fb40a054c0f139e1b4c27f9e005be644e7ae2503bb48e7ccccf38660763a13aee09fb1204a1d92f7eb889acd039aa2c639980e49031fb5d4a610ebf39ac6601faa07b0a46ff0f7eb5745730eb932c5c989eac5f6e003d1411b2200827453b7ecda10c407e4c2c75923be1eff4b5e2228c1a86027edbd0219ffff03ff7b8481f2fc26c985cb40f8104e8c78b5d86e7f230147abe486dcd938bd0b3c032b87626412ac48ac54a981e4c6a0c72d754e05e5640e5f5dabadb0d79c690c7c0355a5287bb3867eaa0911d53c3eab8e214d4639e29426b63643d9078f3d63c303033a2d574776878fd8a7d3cedf642e87014609a5b883014ad3281350b0fc35a7f0031ce00435ddea7b49c34df3d8cfc6161dddc7efa0928344638114c4a7488593c0037502225ce8e92b8d440908f6a2f38acfe64a5084145b122b7722a49c48029d9c0350bac67bcf422fe9e889006f6686dc8ea70363676cb4b20a252e2844a8f140e3037ed5d576dff9c30836d58757abc7a90bf348f659f3c9a297d9a9347793b0a15603876c628006c6655d5ea099e1d2e571fece1533f840ac74a42cd66769f13c04a0036cd14796eb0eb046c984bbc29f41977d545a25b0dbc81b4cea15f5712802924103cd0a723158f8462b4dc248934b3d8e4cee1f8d7e4bcd2a9862e13c3d2c1c1d4605581e03db0275e2110794053a6f22c4b67fe95943ec4abbab065b12a036e92af0040e05581e032957d4baa82b20aded2e7daea253bed35a30edfc4b167bd28bed6396b00c014701de4c20ad328805581e032285a19424765864cf23095ade996399ee247ba6114738d13c02ba81900c0346102f38a75e0005581e03df7aac71d0a38f2175a603f8b75578a4b9c3c92c3e48573a4ee934dfa0040105581e0320d04fed2a64388fe498e262a1ec89170f7696c70952b3b7d15d3e13500c1903cb472c2fec4c9d30ca05581e034b774867dfcbc54889d5ab4faba604ec4102c8424edbe693beef08c2e004030348b8c8656695e9968bb1841f7cc97b43fe43e053614b6407398dc6fd85e4889c0219ce0e0324d351acea9f7cf44cc4cd74556dbee8c8e95673163e793553d2227d23f3e9af032589f5a0ebdb4acab4447ba6bf09da323f9dbb15f33eaf8c2f04ed597c2cbdef038b064d88ecfef63a8523e0b714d3e141a2561741082835d0f36828328e0b435b0333506656bfa2e559896e136e2a1ce1a7b76b1b596acc4b7808313cfea4d2f84d03964c610b9de49308ddd458e1d071d3f4d4d2b2fab3f88287f35f93c7b25a1dfd0359f89c07fbdb6e37d2bf80cd1fbfa63f802f0ed8614fd3958b332ad90486a7fd0219ffff03702e1573a7552361640bae7e6581a97afe35cc4a5a3dbb4f76c7df6dbf9577a603ae86c8c999d8dc29520c1e4199f006d9905f7b9f403233cd0eb7bbd766809c290397e332aa3a477afb16a55e7b9bceccb2f09e4cd205dcc271f2b3744e1ed1d196036830505ebbac85b3dee22389d8a72bcf4891d1aadaf5347aa1bb55172d1ff3ee03c9f47178be18b85fa97c8b9c8c8f09db8a587a66abe7bba92195afbdb9d1947103f7c0ca1d208ce5ce28a4cdb39b195167786223b9904155384803bd080a2d9c5a03384be9b71f5d82f45231c0fe04af2224533a529f4d429b33b65565aa952428e203130b75135757b7d610c188993c7577691cf039f71e3aab8a4a1ab8296dc6bdac035fac2eceabb10af9844092808604d324924f18e328d827c40c7ff12b606a956c034ef21c1a06f2eefa03713e57100d2c02645b69e6b01616e37206a796cc60adeb039aec5906346ff842308b666cfcab72e3cfd0ac62c8858e23f516e3c7f8ec13d603833b4b0fca909cc191b0a1c28b7834ec671099f90e2c4f598ade8d4fc091a54103808255cb5c7cc70fae9427d3de1b55a2515fa3fb69eb69e1d5d48171804e7f01030028c7b240f6d1c9e3de837fea886b6a560b71dec3413f63f4658e21af81e9c40325b1bffd3fa3b6f29208be167971a462197da7130d8fd40c8f24352c5a359beb0219ffff0332faff280d08551a559ed03122b019f0cf3ce83d87cd484eade1d1bffd2ec1ac033b5d423353d237192a9c177f9f5480fa0f81e3a4a66348e528558fc6cc61eb5203a2901095aac59a67d3556b9508720daefcf766cf88142cc379b1243704d7470f03ea68030e9c4c8a2028fcea61c4eb564355a2ecfae28cbff339bae01ff536918803b066ddef6e8233549658168fe920891183712263ccc137f2095e61736bd1095803ee63d8cd162462dd311e4d33e0e563b4ceff0953550d4dd51f8a096530844f08031b1648c48e2dd08b0a280c98051f4b7fe51d84ef83b06288e8d1404437c3fb86033ba4cbfec3d47d80da869ff9e998e5bef28f25275852a562074af0eb75eafa2403ae7d408e28725c1212d951e5c71a6c5e44704b84a3e534b80c12c2d9afcf1a6303ce997d5240d816c022d9c33ecfaf4b75d376bde8920659a45891bcf5b1ad5d4d037f57702d437c3073a4f976c1138684455ab19b9d6b33eae48ee879f5955749a103bb4acc887bf716c060c3ee76c2037b0895a8d8a6a3d37ff8e9e0024c5bb59d7c034161299d7e113453659554fa6df9e7902833f21c7f464b9d0bda965e1bd636cb03a5804618c28c3469ff1b1b9c75ab44bb9ce4350cf04d5c550d3b43dda12760690219ffff033dfa49a7cc5e38455ed4373bede8377d45884d4ac7783ced157580dabc64b7da03c0236b1fc7a93263dd99fe4962250d0284ecdca59b3c7696a106d858f4ff96860303603cf0c5d577021890b5efa4ed8aabe65d8a3e2fc3d5f4f3115410752a51ad03d22aa7f8c8733f1ae64d532a392e428ec226b4f64af67a11b1770b4c79f6868d03f652ab84f78b66bbdc5213c0b26c1927eec4e2a9a4afb826c6a3583939d54f60031c87b80b34a6c0e8f900e049e4db3bd1cd96420f73bad878a56ca5b84ac428930302f498771c6a802e4c8dc8fa677c9e3d0ac6417b60e78d99fd24e2020956679703a76cd2d3be3fd1e7c6cf0af11622cbd402bc34007f8ce6e2d47501b2bff5d79b032852172ae17a8a7422db251762a7fdc542d2c025e7c7bee1f8df1efaadfab4f3030216361be5b7b6296bcedb338a6fc088e1050bf7242b2ef87fe5bbd994669ccb03229e53f7c64486c24d8d5d67bc5567448eac7326d16445d56ec91fdd82545cb5039d5d4eb9c2896ef4cde8ed320a77836a61b81c062730632406b04bc887487c5b0398cac2323dc349200efe189cba676ec2a48ed94a795ba5d6bcda9919abb42e64031b8fac91f14e4f203b653264574146cba4209c0e302740502e5aab7ebc453d20035b57f1b6f220f611357cd61f03ab321b5a88919fd3a6d01e8989fb83841603b903a551e440778e94b2488a22e0cf4a201846a13309507bfd83cd3cd1683ebf3a27030abf4a4afb797e2d08de472b16206ecad03753fce8f7931b8f40d001acf72fa903c088d2616fe69ea6496c3e0d15dc8d422e8e4285d8d750c994b079f57d311b7503a538fb2bb7e29e391f4144621e7da5f26bf6c0b5bc3ccced1d9a557d2f914e66031b40d115622674af9c263a40dc43ff0d010c01997d1faa4473fc760a54493f40031b0c70a914b580233a8954aa9600cb822d7248931a67e6d2b98a8f357d68c9d5033c68596e0b49dd67ce6b5ac10258667f694687d703637efaf3cf8ee529619a4b03d4dc3828ed5f2f9e4c696e78abefca2461d3024b277c5f2bf38ad783b362b7a103aa709e9d1ff66e1b2a877ae3f0901a836890366b2bad75912e9041f294c876b10323ac2706bfd67e21f31ed78f2c5922f5244b900b5f7cde8e5f64e85df5f51f2203cd4fa4da150331355f3cb1ba86b256befacb1c7aaeaff70a704668d0894a6cb10320b254de6c2de83c0b90eeafb161663d5a1f033e01f27c5f1d5d704256abb2ef0392dc5df1b9fc0d5606781e22d05ef9ed47fde45fd134f74e3c2623ce089626c105581e03986e3452fad5efd8e9a275357150b8e2b326cb09af2cfc098e189849e007011bffffffffffffffff03c111c161e34271ac43f7e7778c551c426fc98c666d7a91a0a829b7b06c6fb39505581d0260ce6cad4cb21af3aa11b78b3fdecb6526fa026cf3933dd9b38513d60c024702766d2bde52a003186b1b272962d4620476834f0474e1a67180547c7104d2f05f7a84efaaf402870605581d020f88595ebb76de39a7649e531da69f92be9cc71fd4914e3839054c6107011bffffffffffffffff045929d060806040526004361061016b5760003560e01c806367ef3ab8116100cc578063babcc5391161007a578063babcc53914610385578063c474d2c5146103b5578063e3de72a5146103d5578063e6bd12cf146103f5578063e78cea9214610408578063ee35f32714610435578063efeadb6d1461045557600080fd5b806367ef3ab8146102ca5780636e6e8a6a146102dd57806370665f14146102f05780638456cb59146103105780638a631aa614610325578063a66b327d14610345578063b75436bb1461036557600080fd5b80633f4ba83a116101295780633f4ba83a1461022d578063439370b114610244578063485cc9551461024c5780635075788b1461026c5780635c975abb1461028c5780635e916758146102a4578063679b6ded146102b757600080fd5b8062f72382146101705780630f4d14e9146101a35780631b871c8d146101b65780631cb763d2146101c95780631fe927cf146101dc57806322bd5c1c146101fc575b600080fd5b34801561017c57600080fd5b5061019061018b366004612090565b610475565b6040519081526020015b60405180910390f35b6101906101b136600461210c565b6105b6565b6101906101c4366004612125565b61063a565b6101906101d7366004612125565b6106cd565b3480156101e857600080fd5b506101906101f73660046121c9565b610982565b34801561020857600080fd5b5060665461021d90600160a01b900460ff1681565b604051901515815260200161019a565b34801561023957600080fd5b50610242610ac6565b005b610190610c06565b34801561025857600080fd5b5061024261026736600461220a565b610cdb565b34801561027857600080fd5b50610190610287366004612090565b610e24565b34801561029857600080fd5b5060335460ff1661021d565b6101906102b2366004612243565b610eef565b6101906102c5366004612125565b610fc2565b6101906102d83660046122ac565b6110af565b6101906102eb366004612125565b611185565b3480156102fc57600080fd5b5061019061030b36600461231e565b6112e6565b34801561031c57600080fd5b5061024261141f565b34801561033157600080fd5b5061019061034036600461236b565b61155c565b34801561035157600080fd5b506101906103603660046123bf565b611625565b34801561037157600080fd5b506101906103803660046121c9565b61165d565b34801561039157600080fd5b5061021d6103a03660046123e1565b60676020526000908152604090205460ff1681565b3480156103c157600080fd5b506102426103d03660046123e1565b611739565b3480156103e157600080fd5b506102426103f03660046124e9565b6117df565b6101906104033660046122ac565b611a5f565b34801561041457600080fd5b50606554610428906001600160a01b031681565b60405161019a91906125aa565b34801561044157600080fd5b50606654610428906001600160a01b031681565b34801561046157600080fd5b506102426104703660046125be565b611b77565b600061048360335460ff1690565b156104a95760405162461bcd60e51b81526004016104a0906125d9565b60405180910390fd5b606654600160a01b900460ff1680156104d257503260009081526067602052604090205460ff16155b156104f25732604051630f51ed7160e41b81526004016104a091906125aa565b6104fa611d56565b61051757604051635180dd8360e11b815260040160405180910390fd5b3332146105375760405163feb3d07160e01b815260040160405180910390fd5b6001600160401b0388111561055f5760405163107c527b60e01b815260040160405180910390fd5b6105aa600361056d33611d7d565b60008b8b8b8b6001600160a01b03168b8b8b604051602001610596989796959493929190612603565b604051602081830303815290604052611d8c565b98975050505050505050565b60006105c460335460ff1690565b156105e15760405162461bcd60e51b81526004016104a0906125d9565b606654600160a01b900460ff16801561060a57503260009081526067602052604090205460ff16155b1561062a5732604051630f51ed7160e41b81526004016104a091906125aa565b610632610c06565b90505b919050565b600061064860335460ff1690565b156106655760405162461bcd60e51b81526004016104a0906125d9565b606654600160a01b900460ff16801561068e57503260009081526067602052604090205460ff16155b156106ae5732604051630f51ed7160e41b81526004016104a091906125aa565b6106bf8a8a8a8a8a8a8a8a8a611185565b9a9950505050505050505050565b60006106db60335460ff1690565b156106f85760405162461bcd60e51b81526004016104a0906125d9565b606654600160a01b900460ff16801561072157503260009081526067602052604090205460ff16155b156107415732604051630f51ed7160e41b81526004016104a091906125aa565b33731a9c8182c09f50c8318d769245bea52c32be35bc1461079e5760405162461bcd60e51b81526020600482015260176024820152764e4f545f554e49535741505f4c315f54494d454c4f434b60481b60448201526064016104a0565b6001600160a01b038a16731f98431c8ad98523631ae4a59f267346ea31f984146108065760405162461bcd60e51b81526020600482015260196024820152784e4f545f544f5f554e49535741505f4c325f464143544f525960381b60448201526064016104a0565b610810848661265f565b61081a8a8a61267e565b610824919061267e565b34101561086c57610835848661265f565b61083f8a8a61267e565b610849919061267e565b604051631c102d6360e21b815260048101919091523460248201526044016104a0565b61087587611e18565b156108895761111161111160901b01870196505b61089286611e18565b156108a65761111161111160901b01860195505b84600114806108b55750836001145b156108e957338a8a348b8b8b8b8b8b8b6040516307c266e360e01b81526004016104a09b9a99989796959493929190612696565b60006108f58348611625565b90508089101561092257604051637d6f91c560e11b815260048101829052602481018a90526044016104a0565b610973600961093033611d7d565b8d6001600160a01b03168d348e8e6001600160a01b03168e6001600160a01b03168e8e8e8e90508f8f6040516020016105969b9a9998979695949392919061271f565b9b9a5050505050505050505050565b600061099060335460ff1690565b156109ad5760405162461bcd60e51b81526004016104a0906125d9565b606654600160a01b900460ff1680156109d657503260009081526067602052604090205460ff16155b156109f65732604051630f51ed7160e41b81526004016104a091906125aa565b6109fe611d56565b15610a1c5760405163c6ea680360e01b815260040160405180910390fd5b333214610a3c5760405163feb3d07160e01b815260040160405180910390fd5b6201cccc821115610a6c57604051634634691b60e01b8152600481018390526201cccc60248201526044016104a0565b6000610a916003338686604051610a84929190612779565b6040518091039020611e27565b60405190915081907fab532385be8f1005a4b6ba8fa20a2245facb346134ac739fe9a5198dc1580b9c90600090a29392505050565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb5916004808301926020929190829003018186803b158015610b0b57600080fd5b505afa158015610b1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b439190612789565b9050336001600160a01b03821614610bfb576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9057600080fd5b505afa158015610ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc89190612789565b9050336001600160a01b03821614610bf957338282604051630739600760e01b81526004016104a0939291906127a6565b505b610c03611ed9565b50565b6000610c1460335460ff1690565b15610c315760405162461bcd60e51b81526004016104a0906125d9565b606654600160a01b900460ff168015610c5a57503260009081526067602052604090205460ff16155b15610c7a5732604051630f51ed7160e41b81526004016104a091906125aa565b33610c8481611e18565b80610c8f5750323314155b15610ca257503361111161111160901b01015b6040516bffffffffffffffffffffffff19606083901b166020820152346034820152610cd590600c903390605401610596565b91505090565b600054610100900460ff16610cf65760005460ff1615610cfe565b610cfe611f66565b610d615760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104a0565b600054610100900460ff16158015610d83576000805461ffff19166101011790555b306001600160a01b037f0000000000000000000000005aed5f8a1e3607476f1f81c3d8fe126deb0afe94161415610dcc5760405162461bcd60e51b81526004016104a0906127c9565b606580546001600160a01b038086166001600160a01b031990921691909117909155606680546001600160a81b031916918416919091179055610e0d611f77565b8015610e1f576000805461ff00191690555b505050565b6000610e3260335460ff1690565b15610e4f5760405162461bcd60e51b81526004016104a0906125d9565b606654600160a01b900460ff168015610e7857503260009081526067602052604090205460ff16155b15610e985732604051630f51ed7160e41b81526004016104a091906125aa565b6001600160401b03881115610ec05760405163107c527b60e01b815260040160405180910390fd5b6105aa60033360008b8b8b8b6001600160a01b03168b8b8b604051602001610596989796959493929190612603565b6000610efd60335460ff1690565b15610f1a5760405162461bcd60e51b81526004016104a0906125d9565b606654600160a01b900460ff168015610f4357503260009081526067602052604090205460ff16155b15610f635732604051630f51ed7160e41b81526004016104a091906125aa565b6001600160401b03861115610f8b5760405163107c527b60e01b815260040160405180910390fd5b610fb860073360018989896001600160a01b0316348a8a6040516020016105969796959493929190612815565b9695505050505050565b6000610fd060335460ff1690565b15610fed5760405162461bcd60e51b81526004016104a0906125d9565b606654600160a01b900460ff16801561101657503260009081526067602052604090205460ff16155b156110365732604051630f51ed7160e41b81526004016104a091906125aa565b611040848661265f565b61104a8a8a61267e565b611054919061267e565b34101561106557610835848661265f565b61106e87611e18565b156110825761111161111160901b01870196505b61108b86611e18565b156106ae5761111161111160901b01860195506106bf8a8a8a8a8a8a8a8a8a611185565b60006110bd60335460ff1690565b156110da5760405162461bcd60e51b81526004016104a0906125d9565b606654600160a01b900460ff16801561110357503260009081526067602052604090205460ff16155b156111235732604051630f51ed7160e41b81526004016104a091906125aa565b6001600160401b0387111561114b5760405163107c527b60e01b815260040160405180910390fd5b61117a60073360008a8a8a8a6001600160a01b0316348b8b604051602001610596989796959493929190612603565b979650505050505050565b600061119360335460ff1690565b156111b05760405162461bcd60e51b81526004016104a0906125d9565b606654600160a01b900460ff1680156111d957503260009081526067602052604090205460ff16155b156111f95732604051630f51ed7160e41b81526004016104a091906125aa565b84600114806112085750836001145b1561123c57338a8a348b8b8b8b8b8b8b6040516307c266e360e01b81526004016104a09b9a99989796959493929190612696565b6001600160401b038511156112645760405163107c527b60e01b815260040160405180910390fd5b60006112708348611625565b90508089101561129d57604051637d6f91c560e11b815260048101829052602481018a90526044016104a0565b6109736009338d6001600160a01b03168d348e8e6001600160a01b03168e6001600160a01b03168e8e8e8e90508f8f6040516020016105969b9a9998979695949392919061271f565b60006112f460335460ff1690565b156113115760405162461bcd60e51b81526004016104a0906125d9565b606654600160a01b900460ff16801561133a57503260009081526067602052604090205460ff16155b1561135a5732604051630f51ed7160e41b81526004016104a091906125aa565b611362611d56565b61137f57604051635180dd8360e11b815260040160405180910390fd5b33321461139f5760405163feb3d07160e01b815260040160405180910390fd5b6001600160401b038611156113c75760405163107c527b60e01b815260040160405180910390fd5b610fb860036113d533611d7d565b604080516325e1606360e01b60208201526001600160a01b0387168183015281518082038301815260608201909252610596916000918c918c918c916064918d9190608001612880565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb5916004808301926020929190829003018186803b15801561146457600080fd5b505afa158015611478573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149c9190612789565b9050336001600160a01b03821614611554576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156114e957600080fd5b505afa1580156114fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115219190612789565b9050336001600160a01b0382161461155257338282604051630739600760e01b81526004016104a0939291906127a6565b505b610c03611fa8565b600061156a60335460ff1690565b156115875760405162461bcd60e51b81526004016104a0906125d9565b606654600160a01b900460ff1680156115b057503260009081526067602052604090205460ff16155b156115d05732604051630f51ed7160e41b81526004016104a091906125aa565b6001600160401b038711156115f85760405163107c527b60e01b815260040160405180910390fd5b61117a60033360018a8a8a6001600160a01b03168a8a8a6040516020016105969796959493929190612815565b600081156116335781611635565b485b61164084600661265f565b61164c9061057861267e565b611656919061265f565b9392505050565b600061166b60335460ff1690565b156116885760405162461bcd60e51b81526004016104a0906125d9565b606654600160a01b900460ff1680156116b157503260009081526067602052604090205460ff16155b156116d15732604051630f51ed7160e41b81526004016104a091906125aa565b6116d9611d56565b156116f75760405163c6ea680360e01b815260040160405180910390fd5b61165660033385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d8c92505050565b306001600160a01b037f0000000000000000000000005aed5f8a1e3607476f1f81c3d8fe126deb0afe941614156117825760405162461bcd60e51b81526004016104a0906127c9565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b03821614610e1f57604051631194af8760e11b81523360048201526001600160a01b03821660248201526044016104a0565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb5916004808301926020929190829003018186803b15801561182457600080fd5b505afa158015611838573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185c9190612789565b9050336001600160a01b03821614611914576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118a957600080fd5b505afa1580156118bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e19190612789565b9050336001600160a01b0382161461191257338282604051630739600760e01b81526004016104a0939291906127a6565b505b81518351146119555760405162461bcd60e51b815260206004820152600d60248201526c1253959053125117d253941555609a1b60448201526064016104a0565b60005b8351811015611a5957828181518110611973576119736128d2565b602002602001015160676000868481518110611991576119916128d2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055508381815181106119e2576119e26128d2565b60200260200101516001600160a01b03167fd9739f45a01ce092c5cdb3d68f63d63d21676b1c6c0b4f9cbc6be4cf5449595a848381518110611a2657611a266128d2565b6020026020010151604051611a3f911515815260200190565b60405180910390a280611a51816128e8565b915050611958565b50505050565b6000611a6d60335460ff1690565b15611a8a5760405162461bcd60e51b81526004016104a0906125d9565b606654600160a01b900460ff168015611ab357503260009081526067602052604090205460ff16155b15611ad35732604051630f51ed7160e41b81526004016104a091906125aa565b611adb611d56565b611af857604051635180dd8360e11b815260040160405180910390fd5b333214611b185760405163feb3d07160e01b815260040160405180910390fd5b6001600160401b03871115611b405760405163107c527b60e01b815260040160405180910390fd5b61117a6007611b4e33611d7d565b60008a8a8a8a6001600160a01b0316348b8b604051602001610596989796959493929190612603565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb5916004808301926020929190829003018186803b158015611bbc57600080fd5b505afa158015611bd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf49190612789565b9050336001600160a01b03821614611cac576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c4157600080fd5b505afa158015611c55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c799190612789565b9050336001600160a01b03821614611caa57338282604051630739600760e01b81526004016104a0939291906127a6565b505b606660149054906101000a900460ff1615158215151415611cfd5760405162461bcd60e51b815260206004820152600b60248201526a1053149150511657d4d15560aa1b60448201526064016104a0565b60668054831515600160a01b0260ff60a01b199091161790556040517f16435b45f7482047f839a6a19d291442627200f52cad2803c595150d0d440eb390611d4a90841515815260200190565b60405180910390a15050565b7f000000000000000000000000000000000000000000000000000000000000000146141590565b61111061111160901b01190190565b60006201cccc82511115611dc2578151604051634634691b60e01b815260048101919091526201cccc60248201526044016104a0565b6000611dd685858580519060200120611e27565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b84604051611e089190612903565b60405180910390a2949350505050565b6001600160a01b03163b151590565b6065546000906001600160a01b0316638db5993b348661111161111160901b0187016040516001600160e01b031960e086901b16815260ff90921660048301526001600160a01b03166024820152604481018690526064016020604051808303818588803b158015611e9857600080fd5b505af1158015611eac573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ed19190612936565b949350505050565b60335460ff16611f225760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104a0565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051611f5c91906125aa565b60405180910390a1565b6000611f7130611e18565b15905090565b600054610100900460ff16611f9e5760405162461bcd60e51b81526004016104a09061294f565b611fa6612000565b565b60335460ff1615611fcb5760405162461bcd60e51b81526004016104a0906125d9565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f4f3390565b600054610100900460ff166120275760405162461bcd60e51b81526004016104a09061294f565b6033805460ff19169055565b6001600160a01b0381168114610c0357600080fd5b60008083601f84011261205a57600080fd5b5081356001600160401b0381111561207157600080fd5b60208301915083602082850101111561208957600080fd5b9250929050565b600080600080600080600060c0888a0312156120ab57600080fd5b87359650602088013595506040880135945060608801356120cb81612033565b93506080880135925060a08801356001600160401b038111156120ed57600080fd5b6120f98a828b01612048565b989b979a50959850939692959293505050565b60006020828403121561211e57600080fd5b5035919050565b60008060008060008060008060006101008a8c03121561214457600080fd5b893561214f81612033565b985060208a0135975060408a0135965060608a013561216d81612033565b955060808a013561217d81612033565b945060a08a0135935060c08a0135925060e08a01356001600160401b038111156121a657600080fd5b6121b28c828d01612048565b915080935050809150509295985092959850929598565b600080602083850312156121dc57600080fd5b82356001600160401b038111156121f257600080fd5b6121fe85828601612048565b90969095509350505050565b6000806040838503121561221d57600080fd5b823561222881612033565b9150602083013561223881612033565b809150509250929050565b60008060008060006080868803121561225b57600080fd5b8535945060208601359350604086013561227481612033565b925060608601356001600160401b0381111561228f57600080fd5b61229b88828901612048565b969995985093965092949392505050565b60008060008060008060a087890312156122c557600080fd5b86359550602087013594506040870135935060608701356122e581612033565b925060808701356001600160401b0381111561230057600080fd5b61230c89828a01612048565b979a9699509497509295939492505050565b600080600080600060a0868803121561233657600080fd5b85359450602086013593506040860135925060608601359150608086013561235d81612033565b809150509295509295909350565b60008060008060008060a0878903121561238457600080fd5b8635955060208701359450604087013561239d81612033565b93506060870135925060808701356001600160401b0381111561230057600080fd5b600080604083850312156123d257600080fd5b50508035926020909101359150565b6000602082840312156123f357600080fd5b813561165681612033565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561243c5761243c6123fe565b604052919050565b60006001600160401b0382111561245d5761245d6123fe565b5060051b60200190565b8035801515811461063557600080fd5b600082601f83011261248857600080fd5b8135602061249d61249883612444565b612414565b82815260059290921b840181019181810190868411156124bc57600080fd5b8286015b848110156124de576124d181612467565b83529183019183016124c0565b509695505050505050565b600080604083850312156124fc57600080fd5b82356001600160401b038082111561251357600080fd5b818501915085601f83011261252757600080fd5b8135602061253761249883612444565b82815260059290921b8401810191818101908984111561255657600080fd5b948201945b8386101561257d57853561256e81612033565b8252948201949082019061255b565b9650508601359250508082111561259357600080fd5b506125a085828601612477565b9150509250929050565b6001600160a01b0391909116815260200190565b6000602082840312156125d057600080fd5b61165682612467565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60ff60f81b8960f81b168152876001820152866021820152856041820152846061820152836081820152818360a18301376000910160a101908152979650505050505050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561267957612679612649565b500290565b6000821982111561269157612691612649565b500190565b6001600160a01b038c811682528b81166020830152604082018b9052606082018a90526080820189905287811660a0830152861660c082015260e0810185905261010081018490526101406101208201819052810182905260006101608385828501376000838501820152601f909301601f19169091019091019b9a5050505050505050505050565b8b81528a60208201528960408201528860608201528760808201528660a08201528560c08201528460e08201528361010082015260006101208385828501376000929093019092019081529b9a5050505050505050505050565b8183823760009101908152919050565b60006020828403121561279b57600080fd5b815161165681612033565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b60ff60f81b8860f81b16815286600182015285602182015284604182015283606182015281836081830137600091016081019081529695505050505050565b60005b8381101561286f578181015183820152602001612857565b83811115611a595750506000910152565b60ff60f81b8860f81b168152866001820152856021820152846041820152836061820152826081820152600082516128bf8160a1850160208701612854565b9190910160a10198975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006000198214156128fc576128fc612649565b5060010190565b6020815260008251806020840152612922816040850160208701612854565b601f01601f19169190910160400192915050565b60006020828403121561294857600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea26469706673582212208ca6a1600bbc2b39ce529a65192a4554e4eb5e051b4bef02555617ea40195e3764736f6c634300080900330605581d02f115db1c4d3e14b328ad944c0dbba1d20a1c4217cd30ba6e5115aca907011929d00219424003fd9d776550785d424ace52ee5661139367a4ce7dabafdb04596cb51ddda7acd105581e0324c8ab0c2e9b12c629d6ad18aa1d87ddfbe9a5b56c9bca77237b690eb00c0346a4947d3a6cc003de4cadd1f6fb6f1944357b8731234aec63af19e5a18411c937a3eb43cf0d8f84039701a850a15c87e4714c5b7cd25dcf5a5386a83e3b7afe3c97715d4b09917d5c02193b1403b6ca4a282f21d8956b715506c61affc317a92d059150753fe88ecea3f6b657ab03b22804028baa34616743e0e820a205d270c67c44da5a0c8b7a3f4bc7acb497a903476c3211a52f6c12bd2c585e3dfea4d88241c24a1897037f18ae39f28d9b798303d4864486f6f5b73ebc32ea5615ed68c8a69f7d132c919b254a6ec87aa270959b03bb78047c8f068574baefb13e68b0a9bc66b944a91c1c3481f68c4435395474aa0395c14704504ab3e3ebda04ea33417651128d67ab75d60c6b56b05acf93fa35df0394c6f41f6586bd384c8a8286224cd06eccd4aea68c9274d5693bd07847f13e2e0335b77ea6ed492fe57162b956560b41024761939ee63c8e3c873c7a5e278f64130219ffff03e7a27863c576ea7228c19facf66bb5976920275a64d6285da29cf54e03cba60b03df8caeab7688c12c21a0e500ebe11bb290ad0282560b1b62b5890c07a37fc46e0219ffff03c70e4da6ed896bf10cbc5341f7a957a92d374a3d14651c3786efcc32371fcd23032df9fae5b904a94300337015a6600e43c874d27a2013999d806c976f78cf3f9403b6c108d299c33fbdcfe85b785e66e9e3f072cc26ba31f5eb5d008f502b4dd230038c9a1c1afe6a267a4a3482206da28fc859f45209d2a4f1c1d0e1dce9637a421a0399252d8d3b6c6a3301aa23646f10a055d4affb7e79bd36f2bf0cc9a73634b344038ea05720fae481f2406df89b8c22ae3d158625e1750b0ea21c3c7821bb5836bf03ffdf0348e7fc52563da9d6c08b3aae29a0120bf8604470cabfd42dcda92046a70305c70dc83f65512129dfb847c298371d9ff0c9cf1b99ffa816a02a9e26869726039d87a5d8c89e710c93b3d08b51bd79fb8d594f47739127490b8c94f911a01c330219ffff032f463fcb9196854a16088c924b51d7d987c5470adcab15a54b6cd54dd46fd44103e39f8527107fb457ab37b2b995f6bb14f3957e68d2000febaa254053f927f723033476d8d4959df026a252cb366547c0b9f63727e9dfbe74df4711a7e74dcd2baa0383e58b037dd200b6ecf9a97af26fd6438c872dd853f42a570d29e8a6f8efadaf03afd7275633d37ddd98fa5b1c6358b3f37c5acd5eea17d0c8e1a1f951292d517a03758cb8607d74dff414be1120abe05a5e79afc8553f1b11d0757674a1b58a44b503ddde895b05ff2395ebeb3b86bd5a182305fb09591d1f0b6437111b32e11fed5c030b4ac0c99896b998131d8a083abeeccc38d69e2b37dda293c225e4c637357def03153a4614f5bbbdf2dccd7909af87a35897a49a391e7e927a302ce4b8d1012ac80305e0c702c926ef87dd0f764bacee63b9894af5081be5ce960547acb3c7cd268503238c46de06ba24a884743fb58f5fa531f9be936ed746af995c41feee9d9bc659033a4769f0f493c08619262d55c6215b89274b6e538c176ff5c46123fc29e3ba88030f8d0177e59cec389eb6bd9e0b4c52e64fab0c1bde661c4c23a9bd7ae5a9ac9803de0835fe93f942b96fc4a0d08f02eb3925f09562490c1afcbdc02d4452ecce0f0340ec7b26b1c367a65e6ca59d3f9186b6cf5ca408356f414a48e8805700169c650304d6c28ded3ff4ae68173a05de3936a6fa90a3ccf50c0f8ab8e58d111ac4eccb0336df624bf0b400d7d5a7470c782dacb3036d32c0ada1d709ca7f0eaac5ab493703e94ce84b853bf10c4922fd10eca4957046c37b2c0b628395b69fc655028953b803125e41d49b9e28198a05403274f476be1465dac73d2cadc155e37bcdb73e4fb90364cd49def85620bbb71950a35b3a6ca96c066bfe1858fa2721c87855a538ecbc039361a7dc29456601eff7046fcaaa167d73fe10456f8e75408a280a80cec035c403622e0d2d594d6fe5aa1eec4a503fa014d9751cfa9c48dbc18522f99fec2e51e90339c6fdeae6576eb6d423098052089ecdd5b6e205158de151385b22e0e88b4ad60392d27a9e0b2821e6d84c0d961bea5f2bca4f5358e8d6cbc18083d2c44ab0a7d4031316add4c8f00b542e102dceaa3cbd4afef23da01b4421ac7dbe5b6135a023c40344602f5240e0c8474de4fa3ca5a4d339b687eed72178d5f1255f8274e69eab9905581e03fe027257581fdf024cbe2953be960fdbb84843b5dd0c3887b4c41b21a0040205581e039a0b03e53d2b531dbccd0b3d1f17f097c2204dea9a40931fe2986826b00c01470736b6417667ae033e98bd8a2185a013cb231ba841427a40511b5b63a1ded8520eda1b4e3187160f05581e03f62a5e9ed1e37cc2f31713fe9be80210fe021743ae8b4457fa89dae4900c1906fc4805929d0099400ceb05581e03d305a5788f5b78e45de83b8b8f0517e1946e3aefa5617fd6e70cf866b00c034704747c64a1815e03fde53d1373e2bc3106b0dd889ebfb7b6f4ee18bff1fdc48306e5116c167697fc05581e03c5befe1097de80f1b86c492c7508a1f408ae731c00f1de493f8579f64004030219396803854b37cea66867daacc849c06638a5e34489ac0b4ae15e78afa3c8d724d7453803baee147750e4f4c45e85de8b5c103d49ede4cb6eb07bddae475613491f94436103493b7e2547abd3712b61ff7754603ea73670c38a858ecc729c2103510dc14ef603ffb1f125718a92945e473f81621954cbbf637c673e1b763febb3a101689e53a90310cec6864b5d9a57a7e4ff571ac26a558df0aa1a394bc40f2d3def480dc6b58b03baac7fb3695332ed721e9f3ad213d9fdbf956f57042cd1cbe4f7d87cdb394b1e0219ffff0325cce2fbaf9ac276a06cbd9b1f8673d7b25769749a9e0869487c659e894cdad6034cfe8aafe669bd7b64d687448e097b2e159803d2c9fe7a97ff246127771875a20375bfa42216178dc18b8c7b7265845f2eb74a4c20beeadcd9f2118e9cb2cbd39103e81f326d66fb462ed66ef005d9ac9c1c3209bc40ec9b39eb4652207276759b9b035fbb4ea1e6912e4f936b59578c2551ef9206669dfe4f03654f011b178c513133031da20f80ea994aa8b8706f2fba4bb4f52da22b263e7acfda509282541bca7ffb0388af905af7c9a840e87f9eb599cc31a4ebc244a6d74d07220b19ee13d52eeeb60380ea6d26b986ac2f7ab2fd1e032bfc330856c8a6abebb45ea54883dfa6779ca90394db69789f75fa47ead82a13d94d2bfde55dd7c415a60c542e5fec6a5c4705da03cc9200089e6ac9ffa3a25c61570a411f66323292ea43ab06ad283dd04f285ffd0352aef9d8c50d2c0825d65b69734da71c18ab13012ce76adaa503b1a5e766db6a031c12def8e09a5e2418c4a48a86de3f2fee859d83c044a27487039dc67f45050a03e4330765b80a88c965b5ae5d185e55fdf83e76d4cd1331b37a1c3fed0bf4858f0219ffff03c3fb4848c4e53278a1673943cfdf78f7a3cb2f9d6c304265e6e7db22885f56970219ffff03a65942582c4aa1316a818a4f7ee700db90c2b92d4b101ea99c78847e59807e3203dcc6668ffa14eb5695e20e44f474f74c9fee8684b49905dbb121403881c28fdd03f603ac49e530f415744febbe7260d8447e39d3619d965328b3e707004fd2a3bf03c5c39da34c8d8cf2c48e49e9173a27e742ef3a6b6a3130ef3c00fc260311866a0303bf70ef08efd816b89e334e99060d66302e836ebdb122f2c80585c7efe4cd8203dae4f6257c9870f274c2266fc3378b1335876eaf8c33d10a25a77918ba5e454b0219ffff0316c0b0577839da07b37600ae7373efba2706f8912ec3a509afc87067507f65e903a012d4f05acbe210609627c79f8509f1bbdd06162efc1f1a4c01b4b273f32f2003726aa8d696829a127badfa0501c11fa096c8c6a077bfd604e056b10c7fea7fd10348d6bb0d88a1b5c3f4bddcb2ac850c52ac6d54c852af8b66f422b917e57b60e1033ef74472df6e7fd43252635c32d1d8b359c16eda7247883247784e9c9578127f033eecddce3a03e7a829bf3ddae846b35d805f1d89aa57122874c6bd08e2992a6a03547e5bef7744a0278f3f7f7b35a25a4126fecc397893318e18c35c5da02dfe1703e89b6cc11ba2844b7c1d6ebc66e27a5263d1655c066d0c26cfd24ee153066685038f6090a0e2a5d6af77fb5c852c571436da63811f50b0ca6d873950337a88f37d03468a65c68f937c7078f3e115ea3b3c541c86826b6328d194b4740fb6b448342c03b775ec699680ccf4c79ec89066c1eb26b4a01403ab71ae28bc930d656ba4f61f0395c17cd15365b35367de93e6364f7df9eddbc8d0689c928e8260474a943fea1003c82f96052b1aa872a0bf1b85f73cbacd5cc1aa3eb7fb7717d913ce0c9c7472f00392eb13607a8ff12f13bc8cc10ee61b0c11bf34895ba109bb24de260f1c47e7ce03314707e06962544caa077e5e3bee8477dc132d2d30a91db38db1b73a0f13382c0396ceb2d919f95a9b92af19356a528cdef253c33a10e563663d245d395356f149030ba764af32d6c227060f067173150d879fc032734724058235fbea5a0d82d27f0321d04dbf415bc733ebfd0d8f29800d921625fb40dddbb359894df5b3cd39aa2003acef44151a0ef707846358c7da5d479e1d37a90dfd88aaa619e1b1118a5bbf13037bfe3cc70b4793c932fdb813a657c84a147d0ee47d8d91b3e23cfc60e0010f0c033e0514702ba63bfadcbe7610db6cba4196ad5e14d81c4ebaaddb0f5019e06d62031cd4286046f56108e38b720c765f7cec104938d2723bb2db0409c15fa2c55a0003c021e914a6f41b089f53da46dd2dd613b1bd20161f82345e2558ba36adde61c90358c3c90c5951e0b69b7e31111509807bbef48b52ad9f5608c0dc124b6d45a7a503b600e2c585b17218dc7d4d458b2c12a8a9ba85a7d3fdb4e5970b2b34a1d9c2f20342df14dc567582fc706a3a3c17f3368ebc561b297ee4bf9456dba3830b99c97c034bb057e5e99169693dcf3feefe1beaabab2ccd8b33b8fcdf49590f5d2ced553505581e03d6e9c41647ad85e56f8678c70dada0cf10dabe5ea7eacd9883935c693007011bffffffffffffffff05581e0343e664873426d004dc61b97bc3ae09240fd32b3e1f55df4fc328ff2a40040103fb6cebacf8f3746b785314cafbe416ad9d82a1cf05ce5a5b6a301c50f3d1255405581e037a5e060d7c42a14c8dc08e6272f30ca586464e5d6e4fe3b9169c7732f00c0247068b9c1e50450004591f41608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063b4b5ea5711610097578063dd62ed3e11610071578063dd62ed3e14610366578063e7a324dc14610379578063ed2a2d6414610381578063f1127ed814610394576101a9565b8063b4b5ea5714610338578063c3cda5201461034b578063d7b96d4e1461035e576101a9565b80637ecebe00116100d35780637ecebe00146103025780638da5cb5b1461031557806395d89b411461031d578063a9059cbb14610325576101a9565b806370a08231146102c7578063782d6fe1146102da57806379ba5097146102fa576101a9565b806323b872dd1161016657806353a47bb71161014057806353a47bb71461026c578063587cde1e146102815780635c19a95c146102945780636fcfff45146102a7576101a9565b806323b872dd14610231578063313ce5671461024457806340c10f1914610259576101a9565b806306fdde03146101ae578063095ea7b3146101cc5780631627540c146101ec578063171060ec1461020157806318160ddd1461021457806320606b7014610229575b600080fd5b6101b66103b5565b6040516101c391906119b2565b60405180910390f35b6101df6101da366004611701565b6103e0565b6040516101c39190611938565b6101ff6101fa366004611672565b61049f565b005b6101ff61020f366004611672565b610531565b61021c610592565b6040516101c39190611943565b61021c610598565b6101df61023f3660046116c1565b6105af565b61024c6106f6565b6040516101c39190611cdb565b6101ff610267366004611701565b6106fb565b6102746108ab565b6040516101c3919061190a565b61027461028f366004611672565b6108ba565b6101ff6102a2366004611672565b6108d5565b6102ba6102b5366004611672565b6108e2565b6040516101c39190611cab565b61021c6102d5366004611672565b6108fa565b6102ed6102e8366004611701565b61091e565b6040516101c39190611ce9565b6101ff610b2c565b61021c610310366004611672565b610bba565b610274610bcc565b6101b6610bdb565b6101df610333366004611701565b610bfb565b6102ed610346366004611672565b610c37565b6101ff61035936600461172b565b610ca8565b610274610e99565b61021c61037436600461168d565b610ea8565b61021c610edc565b61021c61038f366004611672565b610ee8565b6103a76103a236600461178a565b610f03565b6040516101c3929190611cbc565b6040518060400160405280600f81526020016e53696e67756c61726974792044616f60881b81525081565b6000806000198314156103f6575060001961041b565b61041883604051806060016040528060258152602001611de460259139610f38565b90505b3360008181526004602090815260408083206001600160a01b03891680855292529182902080546001600160601b0319166001600160601b03861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061048b908590611ce9565b60405180910390a360019150505b92915050565b6104a7610f67565b6001600160a01b03166104b8610bcc565b6001600160a01b0316146104e75760405162461bcd60e51b81526004016104de90611b20565b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290600090a250565b610539610f67565b6001600160a01b031661054a610bcc565b6001600160a01b0316146105705760405162461bcd60e51b81526004016104de90611b20565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60025481565b6040516105a490611860565b604051809103902081565b6001600160a01b03831660009081526004602090815260408083203380855290835281842054825160608101909352602580845291936001600160601b039091169285926106079288929190611de490830139610f38565b9050866001600160a01b0316836001600160a01b03161415801561063457506001600160601b0382811614155b156106de57600061065e83836040518060600160405280603d8152602001611e56603d9139610f6b565b6001600160a01b038981166000818152600460209081526040808320948a16808452949091529081902080546001600160601b0319166001600160601b0386161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106d4908590611ce9565b60405180910390a3505b6106e9878783610faa565b5060019695505050505050565b601281565b610703610f67565b6001600160a01b0316610714610bcc565b6001600160a01b03161461073a5760405162461bcd60e51b81526004016104de90611b20565b6001600160a01b0382166107605760405162461bcd60e51b81526004016104de90611bb2565b600061078482604051806060016040528060228152602001611ec360229139610f38565b90506107bc61079e600254836001600160601b03166111e7565b604051806060016040528060278152602001611ee560279139610f38565b6001600160601b039081166002556001600160a01b03841660009081526005602090815260409182902054825160608101909352602580845261080f9491909116928592909190611e319083013961120c565b6001600160a01b03841660008181526005602052604080822080546001600160601b0319166001600160601b03959095169490941790935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610879908590611ce9565b60405180910390a36001600160a01b038084166000908152600660205260408120546108a6921683611248565b505050565b6001546001600160a01b031681565b6006602052600090815260409020546001600160a01b031681565b6108df33826113da565b50565b60086020526000908152604090205463ffffffff1681565b6001600160a01b03166000908152600560205260409020546001600160601b031690565b600043821061093f5760405162461bcd60e51b81526004016104de90611a93565b6001600160a01b03831660009081526008602052604090205463ffffffff168061096d576000915050610499565b6001600160a01b038416600090815260076020908152604080832063ffffffff6000198601811685529252909120541683106109e9576001600160a01b03841660009081526007602090815260408083206000199490940163ffffffff1683529290522054600160201b90046001600160601b03169050610499565b6001600160a01b038416600090815260076020908152604080832083805290915290205463ffffffff16831015610a24576000915050610499565b600060001982015b8163ffffffff168163ffffffff161115610ae757600282820363ffffffff16048103610a56611644565b506001600160a01b038716600090815260076020908152604080832063ffffffff858116855290835292819020815180830190925254928316808252600160201b9093046001600160601b03169181019190915290871415610ac2576020015194506104999350505050565b805163ffffffff16871115610ad957819350610ae0565b6001820392505b5050610a2c565b506001600160a01b038516600090815260076020908152604080832063ffffffff909416835292905220546001600160601b03600160201b9091041691505092915050565b6001546001600160a01b03163314610b565760405162461bcd60e51b81526004016104de906119c5565b600154600080546040516001600160a01b0393841693909116917fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60096020526000908152604090205481565b6000546001600160a01b031690565b604051806040016040528060048152602001635344414f60e01b81525081565b600080610c2083604051806060016040528060268152602001611dbe60269139610f38565b9050610c2d338583610faa565b5060019392505050565b6001600160a01b03811660009081526008602052604081205463ffffffff1680610c62576000610ca1565b6001600160a01b0383166000908152600760209081526040808320600019850163ffffffff168452909152902054600160201b90046001600160601b03165b9392505050565b6000604051610cb690611860565b60408051918290038220828201909152600f82526e53696e67756c61726974792044616f60881b6020909201919091527f7c9d3f21e68ea39f1cc093a5190b31effd6eb2d11fdda1da452d0ff7f90320d0610d0f611464565b30604051602001610d239493929190611970565b6040516020818303038152906040528051906020012090506000604051610d49906118bb565b604051908190038120610d64918a908a908a9060200161194c565b60405160208183030381529060405280519060200120905060008282604051602001610d91929190611845565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610dce9493929190611994565b6020604051602081039080840390855afa158015610df0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610e235760405162461bcd60e51b81526004016104de90611ada565b6001600160a01b03811660009081526009602052604090208054600181019091558914610e625760405162461bcd60e51b81526004016104de90611a1a565b87421115610e825760405162461bcd60e51b81526004016104de90611c65565b610e8c818b6113da565b505050505b505050505050565b6003546001600160a01b031681565b6001600160a01b0391821660009081526004602090815260408083209390941682529190915220546001600160601b031690565b6040516105a4906118bb565b6001600160a01b031660009081526009602052604090205490565b600760209081526000928352604080842090915290825290205463ffffffff811690600160201b90046001600160601b031682565b600081600160601b8410610f5f5760405162461bcd60e51b81526004016104de91906119b2565b509192915050565b3390565b6000836001600160601b0316836001600160601b031611158290610fa25760405162461bcd60e51b81526004016104de91906119b2565b505050900390565b6001600160a01b038316610fd05760405162461bcd60e51b81526004016104de90611c08565b6001600160a01b038216610ff65760405162461bcd60e51b81526004016104de90611b55565b6003546001600160a01b03161561108d5760035460405163aa61a9dd60e01b81526001600160a01b039091169063aa61a9dd90611039908690869060040161191e565b6040805180830381600087803b15801561105257600080fd5b505af1158015611066573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061108a91908101906117c9565b50505b6001600160a01b0383166000908152600560209081526040918290205482516060810190935260368084526110d8936001600160601b039092169285929190611d2d90830139610f6b565b6001600160a01b03848116600090815260056020908152604080832080546001600160601b0319166001600160601b039687161790559286168252908290205482516060810190935260308084526111409491909116928592909190611e939083013961120c565b6001600160a01b038381166000818152600560205260409081902080546001600160601b0319166001600160601b0395909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111ad908590611ce9565b60405180910390a36001600160a01b038084166000908152600660205260408082205485841683529120546108a692918216911683611248565b600082820183811015610ca15760405162461bcd60e51b81526004016104de90611a5c565b6000838301826001600160601b03808716908316101561123f5760405162461bcd60e51b81526004016104de91906119b2565b50949350505050565b816001600160a01b0316836001600160a01b03161415801561127357506000816001600160601b0316115b156108a6576001600160a01b0383161561132b576001600160a01b03831660009081526008602052604081205463ffffffff1690816112b35760006112f2565b6001600160a01b0385166000908152600760209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b905060006113198285604051806060016040528060288152602001611e0960289139610f6b565b905061132786848484611468565b5050505b6001600160a01b038216156108a6576001600160a01b03821660009081526008602052604081205463ffffffff1690816113665760006113a5565b6001600160a01b0384166000908152600760209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b905060006113cc8285604051806060016040528060278152602001611d976027913961120c565b9050610e9185848484611468565b6001600160a01b03808316600081815260066020818152604080842080546005845282862054949093528787166001600160a01b031984168117909155905191909516946001600160601b039092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461145e828483611248565b50505050565b4690565b600061148c43604051806060016040528060348152602001611d636034913961161d565b905060008463ffffffff161180156114d557506001600160a01b038516600090815260076020908152604080832063ffffffff6000198901811685529252909120548282169116145b15611534576001600160a01b0385166000908152600760209081526040808320600019880163ffffffff168452909152902080546fffffffffffffffffffffffff000000001916600160201b6001600160601b038516021790556115d3565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000818152600783528781208c871682528352878120965187549451909516600160201b026fffffffffffffffffffffffff000000001995871663ffffffff19958616179590951694909417909555938252600890935292909220805460018801909316929091169190911790555b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724848460405161160e929190611cfd565b60405180910390a25050505050565b600081600160201b8410610f5f5760405162461bcd60e51b81526004016104de91906119b2565b604080518082019091526000808252602082015290565b80356001600160a01b038116811461049957600080fd5b600060208284031215611683578081fd5b610ca1838361165b565b6000806040838503121561169f578081fd5b6116a9848461165b565b91506116b8846020850161165b565b90509250929050565b6000806000606084860312156116d5578081fd5b83356116e081611d17565b925060208401356116f081611d17565b929592945050506040919091013590565b60008060408385031215611713578182fd5b61171d848461165b565b946020939093013593505050565b60008060008060008060c08789031215611743578182fd5b61174d888861165b565b95506020870135945060408701359350606087013560ff81168114611770578283fd5b9598949750929560808101359460a0909101359350915050565b6000806040838503121561179c578182fd5b6117a6848461165b565b9150602083013563ffffffff811681146117be578182fd5b809150509250929050565b600080604083850312156117db578182fd5b825180151581146117ea578283fd5b6020939093015192949293505050565b60008151808452815b8181101561181f57602081850181015186830182015201611803565b818111156118305782602083870101525b50601f01601f19169290920160200192915050565b61190160f01b81526002810192909252602282015260420190565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430190565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0190565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b901515815260200190565b90815260200190565b9384526001600160a01b039290921660208401526040830152606082015260800190565b938452602084019290925260408301526001600160a01b0316606082015260800190565b93845260ff9290921660208401526040830152606082015260800190565b600060208252610ca160208301846117fa565b60208082526035908201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560408201527402063616e20616363657074206f776e65727368697605c1b606082015260800190565b60208082526022908201527f7364616f3a3a64656c656761746542795369673a20696e76616c6964206e6f6e604082015261636560f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526027908201527f7364616f3a3a6765745072696f72566f7465733a206e6f742079657420646574604082015266195c9b5a5b995960ca1b606082015260800190565b60208082526026908201527f7364616f3a3a64656c656761746542795369673a20696e76616c6964207369676040820152656e617475726560d01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252603a908201527f7364616f3a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747260408201527f616e7366657220746f20746865207a65726f2061646472657373000000000000606082015260800190565b60208082526036908201527f5364616f3a3a5f7472616e73666572546f6b656e733a2063616e6e6f74206d696040820152756e7420746f20746865207a65726f206164647265737360501b606082015260800190565b6020808252603c908201527f7364616f3a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747260408201527f616e736665722066726f6d20746865207a65726f206164647265737300000000606082015260800190565b60208082526026908201527f7364616f3a3a64656c656761746542795369673a207369676e617475726520656040820152651e1c1a5c995960d21b606082015260800190565b63ffffffff91909116815260200190565b63ffffffff9290921682526001600160601b0316602082015260400190565b60ff91909116815260200190565b6001600160601b0391909116815260200190565b6001600160601b0392831681529116602082015260400190565b6001600160a01b03811681146108df57600080fdfe7364616f3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e63657364616f3a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974737364616f3a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77735344414f3a3a7472616e736665723a20616d6f756e74206578636565647320393620626974735344414f3a3a617070726f76653a20616d6f756e74206578636565647320393620626974737364616f3a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f77735364616f3a3a6d696e743a207472616e7366657220616d6f756e74206f766572666c6f77735344414f3a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e63657364616f3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f77735364616f3a3a6d696e743a20616d6f756e74206578636565647320393620626974735364616f3a3a6d696e743a20746f74616c537570706c7920657863656564732039362062697473a2646970667358221220fe2de58331df68a98f816db8b68c25a6f23fa220f10cd3daa8ff76fb1defbb5864736f6c63430006020033031abcc34311357bcfb2eac08bbc4583fdcf7ee6aebcf609408c1e2c057c34c2ff037f9154580765b4e3dc669dd56407efb8df1a29aab22f304b16428dff9697387a03c3b937c20bd06d107e176ba8997906d8efb2a227f8e49e91ea9dae5b628d7985030a42c6a8beeb7780dd9ac7a7139486bf2b14ec1a74cf42c975122bb2d4487fb203adf2dd445ed58dc8c2ba4ceaea75cda8c031c4fb029608c497f9e548ab8f07c70350fc5dc0a376bb9bf85fc31f9682356cd5a30a6abb2ae7adc917bb941e04e406035c12b5a2a1bab26293fb36241d19cae6c327aca78de1604a41ecf9611d3128a603d3e9d2627722a032722f5a9cb9ff0f750cac7b3dbea737d931440b7f05d3399a0355679dd6e107bd112a76f8e317f8a37df4627c81348ee0b7550db62d619599a500581f028bd5fe5a5e2fbab8ee2eaa473898d389cccb173efbd2ce0bd7a0882d8e71480a241a4ae6cbcb5200581f02587bc45fa9cf6c5f1eab6bd86b9135a1e853136b7b1e39e2242f5947555f49025761b42b691f000000581f029b2c0fe64e2941fe43b2b7325c3016ce89b9b6611ca604914336cd88a72c4a021e1ffbfb65e76c00000337b5c19284307153e1dd1ec429b73ff3a9aad40333374049e691a23bae07953d00581f02be91000ebe7f18135d1cd2fbe026703e5e4edb989a968d0cf846eba83c404cffffffffffffffffffffffff03ac6b12e1f87ea7039f5eaa87dd29ad486a42efdd49055d3a92d274bf95c9f97c0219a4c8038750ca88a2acff391f35e0c55868b341bbedddf9ece9818b5e7e2a98a932ba87031f3653aed41e5c3f0159608ac61d391003527a79cfa3e489b6142087ef95dae60317306aadceee353f6ab8e03ed166c577199b9eb1a15fe1954469e74baf27821203a1d9af10c2cf3cc32bed5fa341b503072978d84fe299c3278db7345e1eb8fa3303e2dc588ca29b5018bd3c5b305a73a8eb23dde2f5a5019cf56d187fd7fb5c21a3033b60ab01e8a8188bb3fff391bdff8e72d7637c036a23050a77b43400ed92b19203ecd43bd966e8d2bfd24f8a58a2f916a4bfae3d606fe54a661b996252666d7b240355ab9facf66552ffbd0381910bb3707908ac65c5d018b612c6d2d5ef28ece36703c6156f83a2c19d80b5fc63192af8bab66cad411988f771ad9756bb535c24aae003dcc5a54dbab882b2a6999643bff165d3c4f3670cda52f8d48704d633788e3e8b03ec21938f4d73bd8962f21ff597f26e5f69be2151b3290170b644d426db367c6003f48e63f32db0f503c180e3860a3ecad791cd6812464c9323e7a2cd039fd304660394d514397d8a08e5c4edb588c3d14e70253ae01cb8d74a1426ad063593fbba6003d6d176514f1ad0657d03d19577fabf6afdf89d4928996a86516e45bdb8a349380381780d8e37fb78c98eb1f0d647dec558d2fa5887b166b9f65dda34cc4a33f3c20219ffff037e9a21096ea424fee0728c3974fe5facbc242f9f4406c103d2ae7ca4979f6937031145e2ccbaf50ce82e7243dfd80e53ae8eec7361fe9a9e23b5568cb6d7c0b31a032c79c4a9ec6a59e0730f93b5b44a019d471d820454e9cf931ead01f9585c3b1f037a773521c31afd671d10ac9a80a194facc3cc36c940e9cb414af396266d34be4035a7c6c75804c6bff080dc8612153e949a3c1d3b8fe4102f2655a036fc53b635503d970226613e2a344a22c619c47440a81a1a129a06af7bb57b099e10f0bbc03450341ad24b4afc140831b927673d8c60f1d472252687b16e0f4870f760dcb90c762031dd208addaa5a05e787646c3722ac3134bc32a58c9e172e4cf9fcda2a70d493803bbea642a15daf488f4dd1b4a76ac0ca6d8f1336c15f40f132f3c763724d1f67300581f02bbf9c24c9f162df12a19d68545ab32292ddb6b31368b15b9c21e509d5f944b4a7ff8d3282ab9413fe6bd00581f026beb78fa27f2707aae5649c1c2b71720017ae6d11009611c18598aa2437f480bcd2f47ecc78b1c00581f0288269473f2063a18d0f0eba2af5fa382608a450b3c72b25e19fe2724a2484cffffffffffffffffffffffff00581f02b4e071d13b277aba32b85b469f3d53d20fa96d226fa0165106fd8bf9e0654cffffffffffffffffffffffff00581f02bbd9353f8ab5b18ebb15528d6768a8ce757e32c7b89d67c164406affd959410500581f028d1ac5cd6f983dc8388d5323aa382ec981708336bb4b1e481081d15ee8af4adbd4fe90af9d4fccefdf03b18fc840ce4f6d7cd5e7810b31320e0295d1920bbee10dd3afd7a335ec93e1bb0219726a0368d3113787a2e8ef7b0b50ac3e1e55f3a073e9b19b95880ac20490b7a2eaa36e03c142638ed186e5a56b225fd7270f6580e23c9c6145845f029f5544e487c7b66d0304780d82e17c9f38c8d88015eae9b83e4ac674f73e21b504715d023dbc0a4db103f2eca7da02fc0944057e46b167d8ac20e87cc17635fff83c4cfe231e4bff843803e1ca7c452f2dd0e7bb1c322cda3901f8f14da819dcff9d4a4e5fa7977062fb7b03bfc84058ce796c38baeec114097057ea9e971a33ba459347f7dbcbb46daad31e034a3652f73c15704294b2ac0f89f5c66b632b0861ff7b9d495301fb4ddcaf8558033834324dde127bd907560cdc620ae876ec77f751b06604f2e2bc7e97f61fa13e039da1fdfae02981841b266ab8ebf19de18ca5143eec000e6ce27faf9a99be1c7803b4fd436529aeb26aa413be4d478269d986e9420371dfb5dc10335fd0b50f7e1b030d231e45cb3094b6c11315fc071544e5f72015c222fd08e5c42c9731d3d6b1e303fa146f85693979c99f407f6ae92168028b353f19601dd14534602bd96a6066f30325b1ec28b355f3720131b2cb388d62d1af91cd52b2cf18460cfa695fda2a4173033ca8fc1f0003131ee62389d20f0290337fa242a39b907f6d2d09eba7256d9f0103dbaa1428744ce53920dd0e7bbf44ee67245ab05c25b36199a6ce2379ee984a540219ffff0219ffff03996a72854ad6fa8ccbd9fecdd28634fb6f473f1b1792890b81376ed040cbd9f303291ea8f0c17c4d560ace99140d5131d439cfa02ad1610440dbbd9af7727411270349cf5437dc31feb6ca6ca22fec5920075dd4cadbc23afbb230895a473f7883220334d989b836a7eead2de6137860ac9c082c66b399bf280ef2e75cb695e9ef016f03c5071884c77dc9b4bbfc0c15de5118c1acf2ea164a1320e87cd035aecccd75f503dafe920c07eab7371a9d37192b2694f3bb6c190088dd553388baadbda7f1a207038113764f3532481cd444cd523e4482163885ca05a05da3e20b4eaf775da1bbb10344824b130fd73e8de7ec85fd3f55c9b0770bc01006dab73cb3d0c0567bbb4093039ab9324b8d523368682d1cdd73ce9907dba463fbeb555f77e7336ff38efd674e03175e5fc04c9bff7dfdb5c35eeaaf771b90f4cf183903731cc56db319003233950300fd04b674c53b48cc54ed566fced6c11a027b0fd406a2c0c6766b38002e01c303246766a033a67cf2596420e0cfa06d8f3c0f41ad232e6a819226cf6310c11822039bbee122e7319ec496d99af4f675f513e28551ed11b3d3da582ada70ec010f06033f42f42d58d22791524fa4874992ce37230d9d0e376632d9353de4a8750f0b3d03210d8b2cb27d4b65121eb475097493f420a9647cb5360e4880b99adbdcbca0ed03bcf77343e61264d92c56d34dfd05a8619ee0b40d3cafe124ed61a89932c5127600581f023cf4e1f18ce9dcc17bcd38fa827aaf5c0164da443b23307de5d4b0e6043d4a04242007e2f14f89ff030372bd0b4973f828c34560fee3b05e1618ac48eccfe83a3c9bf1c5a2fa50f47bd403ae222856329d1895faf19753f113c12b7da0a500fe90133abb3c47ee663ec03000581f03923496c47cfef36d73e9ef5012c625b8cb6b5ad41c9a918113ea7e9f1cf0491914b9ce32b3e8000000581f0348f1038dc403a9cedf314dd564a0d0c06199d106350dbaad1668830a8730493638325a6c92333aba00581f0330b693259343e0cf1da143ef11865fe8789552f394bf9ae6158913dcd3704cffffffffffffffffffffffff0219090200581f022a8c201c8db18ffbaa3bc05b005c837a15bbd9cb781ebe7761be7c555e5a4cffffffffffffffffffffffff039389df716a904225c366d36c4aef63edf48af27e5c20693210e18e17a4c75b4a00581f020ddb20304751ccae87748a36f51ba8c1971ae9960aca9cc56caec535c4d24cffffffffffffffffffffffff00581f02563f87f64af8d61452dcb4da13c0dd71ffc71d7af09d3c62b4d96c4ce32b4cffffffffffffffffffffffff00581f0218156b5da4b976c7f23b1e590613896c9acd2fd405b44b15eda41ca5606049087e5a6c425e3c4ee300581f021cf637248870bfaf2b67556a35d729da6d66af16b9bf7b7a63b5b0be60884cffffffffffffffffffffffff0219967b03a306d1121170a028f9db4e099b64ac7abc940659406a9db5cee3a4feedf02e5c0219ffff030f0f70001d43c75937e82e0b47be1b287e1579b8c686aa2f519f5aea1a13828e0329c7e7a63db7dbd626692123179847ee59677b21c7310f5dbc975bf9d74243770353852cb78777a9b2296623cb6a625de822311c2316275abdea46b5694d907b93038431a81d57273a40cf747eb237986be7863d12c047d7526d404974ab9ad41c020339604c1334a31fa1a663a2ddb017ec4c8c5740819ef6b8637dfbab0b353429b603bb2c7e472fd194a42006e19621d1886b47ac9bcf18ab00fb39d378bb368e1c5803fca4b1ee1c507614134f2f516aed1bf1679cd3b4418b7d8debd0c1f30074b8320359fa45d154405f0259ad3f307d2e7fe3a0477d8f3fee28021ef8f181c1d7fed203a37fca64e450a725a18c93a200405ffd2bd99cab4db33fd408bf008e82ddd7d003ebb2c18c9c9e21ed5b93528f86ea6b9f61c2f54f1321f305efabdc62ea141f34036ab725f94fb70498dda666eda5f0a7c77c2d801349b98bdb55e1bc5cf4e4845e037d919b1b6db021ac9b3d01eaf53c5b37192e4fb4b59e1a564ad746acb2ef706e03d14042c5651dd60b8fd4a8654f1c515e81f2b8372b2dc74ce23fc06ddab19e830219ffff03a578de840d0e97e72a0f87acc2a5fcc24937e3592d8e0ac03c57a8380eeccf1603dd38ff872a42148e090cb6e819acb295f3a7cfcce72b044700ca167be8f51500036856bab0ec5d5b10b6dbeb3244c4181c1a5a4145cfa673925f7231f7bfd4ffad0338af1546a0676cb240df433a2df74fd82cb5bfdbbd9e479fa254633704b4ebb10305ba6e541af119ec43706c1828820c2799e387a6a549ae3943e597b093ec12c403cf27cfb394ff66e3e684225192ae0627406dd4173daae7db5e294cf6f2fcb31c036676f226bcaeb813c102b39921578bd60ff3fb114f7bac067f2a00e206cebb8e03396063cebb38e10895256536625fe20b26571d1bf408bf273f77f3737eb0b3b30310bbd2ae87a7552d90b352e9d5a0eb1a03fea7570f8bafe76238a96e9f24305f03fab74d416081c84253ca399071a05355921498fc05cfeea2cbd66fc5c5734a7e036174d1225f59186cf19a32888e5264cd68188dbff4c63dcd950d8ff7b1d06e3b0306010e0283b1116af0152afe39678254f9fd16dec5ccd5c0cc73717b0854b5c703e23fdaee66520a0416b725f7ec8630c709f8fc80e44b4e3f7890c62c25223a4f03e6701aaeb00384cc46c432c9c3f78fcd54cd0dbaaa47357b48a7a3066b45597c0398ff5bbcfb7a752b80cebae08d069c71a88ecff1bcf93ae5fe45f163c7c4826e030df6a0a91442c9f8be004464624659ebf235fb1c5cdabca18395be8a0f25d53e0324984ffe473b97ec2e253ccfd1ef61e2137f814b3d8a05b464507e01c79a97d6033b8a545115b55e55e86c733a60a40e670ec96b48778fc992431163b6d0cacf7603012d1a5405894557e27ac9435f610ce111dde26019cee6dff5eea9f6e8cc727a03846a722d670ef2a32b3f7e6c23996a454b731d0a0e916729e745cbc1e314817903fb2737097877eaa7947f2ef6f63b8506ee4d83a9912cd261b464a67cf00aa21303c1e6960599251791b7bab1f146d0cd50e134137fc60e08fc3bb3ad32cea34d1d03ca0a991167fcfa178b8520fa4beb9d59be82811970e1de446032a4fe34e6d898038a166d02559a3ee19718478d8047222c572cebf2edde3bad9ccfd53ae6ab2637038e4598ef68558a6fc001e214b3c4352c048cefba2d60ae2525fd96b4737bc9da03d3a20a8e5e4cadd394cf0550ba0b7d0af4c27e8da52334bcf2628450fa96b8b6030cdc9056ceba5016d8854bd25b7af6a8ef1abb339943d0d0b7a9cac4bb7ef25e030d554c047ae01f4e5f2e7cb21ac6d2f1344f862bbe68800c33995081b9d28cb103f03adb5dd7c1f6d5ecfa1e3fe2d9c7acaed0fc7c2382c6d453819066dea49d0d03749e511be2e8c57f788736b5973286566e69da07f8f34a65a94a90eef391eb4503156605fe36a09df088fb930f980b45dfc4a90ec60a07be3bc52dc5ed114fb81b00581f02a845da728a427c5efba251c6a2178975a5ed10c96ae03ac506baf073582f4cffffffffffffffffffffffff00581f02fbc91d057f7a8f72d4c7524990e5cd2385509a549675fc66c7014977c3784cffffffffffffffffffffffff00581f024f2b279deaaad091d077da96772130c5b108177d77ed3aa2e775711a81fc4cffffffffffffffffffffffff00581f02860b1db2a057597ad5d5dcc536e81fc515bd8597e472b07c852edc581b404cffffffffffffffffffffffff00581f0254be8db2e4ecf4bcf1594e2708bc1896d6d956cb73b19312f90e8094446f4936d35be2d59e58bf0403f678720e3ca849557bab91712bfc4a251e8e126056cc2321e900201a6ff0223300581f02cf2fb0496b1533729753b52fc84aabc23063b78e073428ae0cd8989dc0fc4cffffffffffffffffffffffff00581f020cf1c63f5cc0352e029f39fcea669238f4b016b1a42a9388edcd6925e3144cffffffffffffffffffffffff0219f6a80219ffff03bef1d473adc93208acd1dadef601dac39ec0416a823869f9d541957a62983c1e0306b8a00b0db29012a4a96f7fa7f6489c700a94680ddc634e98dec051292d251c03edf51e23f2ad8eaeefd28d72a7c813a25b02afba9b8b6c5c7ac4bf022df8c52d0219ffff03b180ec5c3a6253d257ef6a490fd18e81f962b8fe5e519095b3db181e8c753f6a03c1b9e53416390da3d37fa1c840fd4c3dc334b6d426a5adcaa27dae290acedae3039ef289879734cd4c631634ee495b4d705674b013376196cd3939faceb1e763fe03d3afc9b0e24f7bcbca21b4c2cd05bf6fff56fa4b101cd012fa397c4141a5b03e0316b7427bae025f8b800f686997c3268f87e17d1863e7be61070f250087c1852603dda4bf73f4b0fb62f3baf8eba2f90a5d06e2bbfd6b99984e6d8a2b30e47c20e503e0831ebf4b8cbfac039a0cbf496b28d9583ad75ae2490a0d7b3a956a492f478503c6e6fcc8f8557bfc873b270336188412b74ed9def8526a4d202e509f7cefe76f036d0ca1c277d9b7947235988cb98708d2587c6bbe3ac2ba54f93291efe75eb2ac03d7e12f1d99b5f26e3721d6478131197f0bd437fc1c5e4a7782a88993118e144100581f0216b8cb60354cbb4652ec19e24bf38accc547c58a14eda27ab7c2fa8c10f84cffffffffffffffffffffffff00581f02bd5aee6ec0d88343475cf6e5874826574bc2c9198b0290af7e58d8c4110b4cffffffffffffffffffffffff00581f02c14ec0cf97b0d0a597f6e5a35ebf978ee4ca9e2d407cf497d08f1dac45394cffffffffffffffffffffffff00581f025a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b549ce9704b1993ff308f1815e0fd44b0dffee2d0dc00581f0274d756b5da96f431736a92fd8a32178a45698cebb579a78978f56cfbf2064cffffffffffffffffffffffff00581f02fea41e1ed65f5245acd72a754544a97fba03f213edb8638be9b15d07323549087413bffe9b76cf2e038b1288a46ccb7b18639a237602cb0b5b78975eaf14c637df9e9b9939afd8edca03347514dec17a1b2be006fa74b83a28812cfeda7fa1632566b217e238b705fbec00581f02e3ed2af3a30e6a138a6fa7c11fd1e5894123ed2b90390087b4de3f6a1bf54cffffffffffffffffffffffff0219d6960321b70523b2a4668aee1be1a59de4ec3f4d0b6c4a45cd1d47835fd0850605c1c903be027fa28ce235efddf90a70f220943114fd4bc029f0033aab01e21268013e3803a8968bfb027d84202e19d525a724c94926f527f710e67149971aed4119465b560372b8af28ae59c78516828ba88cff22e75250f7e93eef7d109cf7ded9db1c728c039e6981d6f32fd74620ed6d08e7f17a07d4046045d751426a5d94220b71ae18c403d230c67d577d434356d0c833b01c4c00b5b6116a80d3f334b8ce249fe3d2ac6a03a7891455f4ac07475bc8e4159642edfd58268e550c1192f1f92b6e6e5673ae8303137a81d713f501a14ca234b344f0e02f90f52dd81d814e2f10b7746402d95f60039493739307350a189d8c5e2f998bc90fc9e75fc277b69bc661f53b58479a55cd036ee5e354247e3d28b5f1c43d94ab44a9305eb694025314e2bbab1ccba40fe8950219ffff037a2d00bf1c892d5b5383e09f5500f163d10bf37d26042ceac2ecaf4f17553bfd0323c521cf90d6e2e106e34dbe71619cabd884619cc667a838c8f993182be47c8d03a86e42f619387d0658a5d1b6c5d8acbb31cbd62ddb570453e0d3cdb822699ce603b40cc0f5e9b97618e562810a4c7f7c684764e08b5f8b3dfd270db07cecee61aa038111b27a652c9f4dd78626ed32d90f7a89dc0c0c6d722d54234cf8a2fa3ddd1203f882cbe0c613da4f197680375c790c4122abbee8c4ff74669e99179dceeba2460348d4ce70442af7a7d308b317aeb53b541fbe74be98da7cb0048fef37309b6e0503fc296d5af2cad6178b2ceeba19b02c4234714a887d57e789e40f409728882d9103161fa919fc12abe84a32120222b7072413981b0e55bf063b29b5dc99af5daa8f03009290d94e647ea59c0198d25a3697f110cdd73a90982b76f96e1123d1d7aced030ca522f84c80d2cee187a8a31090edfa75219ab04810c6dea1660741c33117c0038c7507d01e2f1d9682bbfee8c175a003e12543aee4498dd69b9e07174c1d27a503e39f1ef6c9c6b72934bdde5fcd435c89743c87d9239896e23fd38d3d61dac5290219ffff03e38ed110071912eb042795128b595b72f0c8c68eb603b015a9997b34c3fc4536032c2cfc254866f9241cc0d82b417b0b02324893639b3b24b1b12c4b3fb15e63d603d845011269172f226193a3298e4b2f6786803452f9fa21f246021fada0e6e9900219ffff05581e03f11abe488dbd81ad5b12d908a87ededffbce67053ec4744d3cb8bf52e00701191f4105581e039e6daa81d7601689ea9acd732ea29ee5b7c63910a76cacbd2ea67674b00c044603e1416a240005581e0398476779eb5e0fa60f7ef7d1ed299f6c26154b2f023ede0df2b4db19000c02470202b4b734d8a003b365a3961af6c381de81cd2057b86953be736a6a502c285515a32d37e381a77603c99331df1aff48f87b364632f11488f88a8b160d9d11e89435c727c944bb139d03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e031ed73cf11933213795537a6697dbea6818d5cb5db76a23ddccfbb13a2007011bffffffffffffffff0219dd6603b59b792eac788a59a540dd27b63f9b5d9330dccea7bccbe32d06b28815b8788103107122b9f0f832e77417c7189cc427bc482d5cb09db599cf63431696a132faec035435252cbd2f2d50dd2519122ba2de285a6e251758e75769d8e98c33e054e8370336a37fc56578def9e89ea4e28dcad52236b85ce724c0656c64a01b272fc55a1303b322228e1e5d284e2ff2d5ed5a1613087922671031ae4260d8db86a1097c560c032d2e008214c8650fcd1e1b964f74d0be5119cc24ac28b304a7fba456aef5c07903d4de1de423db9d16936b5a55f88d2ec3fdb2d7ef6e236728bc508e582434f4c003559dcc363b60b870e3c740a159e9d25d6a2056e3e2291cef7b91bc8229bc41fc0301ad234788e9a46c39810b01236ef8bf1110a446f6abeeeaa42cbdcbec12fd58034a8c0060339eb47986d4e21e8fa68d1ba09f2ef35b7f0d7aff85131285e6665f036697534b4c367845294fc6012f17462acc8259d0fdaaee79c6ab403bbf09100003f91c4f72473f87bf87a9eb446af282767f90aa80fb8841641d4c3f387e8957fb0219ffff03eb8f1a79d3a7eda5f6c70b04119ac9f9c3dd4fdcb0ede149fe5232f563bdddf5034d696d73423751bad1fa56157b4ecd05f99df46b1e75b1e62927cdfb93e607b30357e3806c13e33d7b34e45cb2b84f0660427ee869b1ef0fbcae4b1cf9dacb3b450219ffff03762f1e90f19c2b9bb3cde172e1573105640f0f65c21bb1d63b0e9ea0f29ec2dd037b3370f6f8340da94a0bcc92393f4f773bab260392fd46ceee4462d5fb72169b037a6b1ea409341feed02ddecf56814b7a330149ebc44d4198641f2eaa202214e103457467e62d2c89f1d46c59e8f4cf398c10e068c443b4952e922fe6366a1eb26d0324e3e5fe4272cee26366fa0fa53b9936c49ad257d99c7d277f5f847066af94a003f6aabba929fcf2a9353b2021dfd5ac8b283e7217bb4f17658ca93242a996a38f03dd739679620b090727c7c28c59ff9a47a885ee7849779e84315340029c8f88040377daebafd130049ce9b98d05666f9fc8afd88da92165c3df85ba80eb86ffc28703ee37de110d58f830e4ec7778fa2efceee029e71237b400434edd9a398795859c0322a86a46410804e1617923650994387f780c954d3c50c9f814543d051d43e8800321dc3fe97a35a3c72626ad81d9ff373c806c66f0ff25b565597a703d912cc07b0219ffff03a27a9c513c06afc1e9b6ff44a56dd4ad6bfe8b039afa072b4be155260e3f823903193ee1370143edd57be354047288dd1b0230f57771755e6c7177e1edb6bf1846035f64715ecaa86a0dcc5c09630c3423a54fa5b9843829322a3ff6979a35694ef3038cbcdfc25b5b65f8ad77d3ceb8f8b81078c407c82051f6fa6510a258fdab91ab03dfad27db7c50027a063629afcafd53e2b1e40b9a68c7e057801db2286238387b03db8c5bbc56621ce170b3c1ab1656632175cb37eceb786d4de05ce59c860b32b303478fbf67c33febafff931700e6789ef2ead5c999d1b7c4ec59cae8ca2313520103498894aba37bb0223e0b4c28fa239a8ad2af5547a593f3a1c315f97cb31f29fd0340996adecb733c9655abd188b942f18bfca6b004066abd71cbbd40b98e118eb90219ffff03e74fe7ab530027e5059389b72676a33890192a0b37714e2fd5c78e80734fa8e10377a117a78ae0d116c780d8564901a8feba1104fb24804f00a4627eac6d57cdcf0370b8a7598bffd3fae488ff0ced0fdb689bfeb2e388556ae9f8bde3b481e5544203ff51465cc11fd51efc9a678fee7f4e4e9dd59a98331652ca905847f994babc190335e67f7595250502053a578b27349df0e8d5561453bc4f3655cc577063c7a6ec039c99e5a21bc8d22793effa39692e26fded7a8725d6871b462bf0c6a9435d161803612e02d6cccb55aa23b6c53d37a55651f41ff100e40f1f90728a593683ff0f2903edc46d8d2e4ca5270bb0480fb57daac65fb8bcda80a571ed727b4a8ded8972ed03ba858ce2130857d459d21e8ffaba9afc3d456bd404a77fe2abf5aa567f570c13037dc260c68e43368f232fac62988981c9fff73c72c84c0abed829e147aa8aa34503c32821ffabb3b3e2624c8aec742e7849828b681d0d47e48a422c23698738bdbb039d35beed2f15a9bc49f8f76deffa4d0fa6596c110cc9712b7a13302544ea131f03230bef8de9d8a2365e86118f1528a9e333ded247b2e2c5e519d97f48b5784e9f03bfd1bc29198a809209750076ee242b6c1cd1629fb71a77fb6be9e1a6b2e32d7e0381998920849fb65655ce22adbf3dc3cf84e1fe267655b47512e0a0d7940adb8b0323e6c95edcacbbee61ef3b1484978f15c7f43b7161c0efac5401006bb62f56580354aa659b94221a78bfeb92b4efccece00bca8273bda495d52741b3fd40eebd1805581e033b6951368ca4f425764de17ba08b55d90fc8ea917f1f386667f97dc1e0040105581e03ee14c2f4010cea936c310cfc11e68c610af44774a112db201a7454ea200c18184701ecf336306a8305581e038e703de5eb3a096df247b0a0316ab03dbae4782c60b4a1e84ca46cf7a00c0347170f51cdb05fd6035790cf4c4820ae4e3ed6492a1b848cf45a4dac260d0a83c15a28f423465883e505581d022630ad3d5bbaa5299a3a44a3163f84ffac8ea2fad1180ecc0f94dcf70c024801714e846325f14105581d02cebf3a7ff49901002c78e95139aad646643e2d0740267dfd8b36af720c014712ad18f773e5a205581d02ad22b6e6bc8ff82a14f53dc95ba0ee057e5ea068dc4800d1bbc683ae0c014775ca4a7a8388680219842003d8513e7508fae99d8c49d2d8cb860b7d992650fc6a255e41ec5f81840f0d8e9b03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e0302657dff67e147fbd2c1e3c67320ed4fc158a4e8f71e718826f1d21e9007011bffffffffffffffff039927460439f774c1fa0ce1e0bc54e2e3168a000666b5b6e9af71d425bff45aae03a3e465a8d0e891be61f56a3e1ea7303e3b94f268d2729c793c34bdeab23bdd410219ac3d038ac8ba095bd61701bd037aa47e3c0280e835ccd7ea6ec783709a0441baaa631003fb26251354973a622ac37879977abae9fa703798c5c52a44502e135bbbce3b420329eba6af8b7fa862f10728e968049761bcfacb5f78ab9632b5a9cc0040d578610369d9bcbfb0e76e711f313edd1300ff18545410ee879ae19282f26a8bff4790e60219ffff0332a2228cb4b3a79887476635d11b8b314826cb3682535dd0ac842cb1cc6aa98303db0dabba8ce4c2420322ec3c36f39d14d4e825bf127aaa5f40265e41acf1fa0703e3f90148319205ee44f587eaa8fc1b5ed4be7c777b23ca9b6ab6c93b59f7c39b031ddab216a35026724c85108374b5af4f15022e4d0dd5bf13d928624e9965670003d7d5328ae044156dde361d17f20fcb806f22ac2fe4c292cf23397ad6f24599e003594aa455bf74cadf3d409af86840d3c3feae60409d3552ae8a7f7454ec1f2fc703ee590edb7d8f0fecc3777b589995d323329413c08d92a21caf0a9e56365ece35032d06d4c01742c8894a3e84915f7e4d1b69d94816cbabb5e33d41c8e6b4ff950c039e5e4b80dc0613c37ada7a2703480bca7f98147c285ee473d6e46439c0642e4603643fbf0607ddb46b0b382c2d63c82a71a86d0508270fd7f2fd28caf9a7934e2d037cbfdfee2740a06f18383d1a84fc69b8dc480934b9f69c38e79b5aeda12a9e9f0219ffff03ca2e4d78b3417131ccede8f44f31f6350b635a688c9df4de6abcbdef808276d803a69c4bc3d0b07c2cfdb6691504ee687628c5bbff4f27da25916077003756276403b8462f78c90b151f95f8ee20c296e985739e4256c7cd84b5868327a48e87a8b603b6ebb36d13e642cd287729215e5c7b517608e1a9b240c5456607deff81addc7403dc4d47ceaf6e1260f1532a1901be5af644d653c617d0848eb42c6a9f9b5199a1038b01e2b4012d2a6a25c6721f9e53b9c8e9dffa07bfc2f15bf0172349d1fbed1203cc852692ea82f21885f56516b9ec233602dcbbe02b604f5f07ee9f51399c48eb03128e45b3e434e1c3094d930eb5267f247c57dbbc61d5251dfd1c331894319b6903f9fbcc173ba598a6ac45f1bf31c956268e8d61c8c052512ebf36013d4bb973ce031df78fab687d0833e5b5d0db0ad3facbee3b877346b9852d27eaf10a67db7c86036c32767ea790d132e07991486bbaf08b3141400024a0e848b649318488560aff03b637034585f5e2351b07eb34c7d0ac439a98674d5b97b2f1b10940dad0767eb303536ccdfe523312b25da39c2b253e63c73fc82756fc5a038670deac7c6ef23ec503a9ea40e63dcbc41071562ee4e09805023028af03e39528fb0b2a54dd3530f035037e71d33502a88e3a4a29cf7702901ff66623640250b648fabb8a6426de6499730219ffff0304d08325c88d36decbde59812c7dddaf39fc797fd62331618913cb58833963570393cbc7c937fbb57b839d084f30d6ba21da8475054936e5c446fcf3a70e38baf803ed9e1237ceca7b0067b044c43508e7745bc5e70ad1a04b171e22027ac1a084d703c31c5cb42721a074cc948884f018b77dbccf09c6c701700e067237cbd888d65003b381fb7240453522ef7e31c8abce6f6968eb44f4e94f6f917cd0676dcf752a2103ac7e51db964d1a266560ea95bf49f27fb1d9d0fcab5255402009ac44e181b2dc03d61fc7c0a22996cd3c31e43fb21614d1d0142492a89e273c4cfb4f2325c7c4ca03628a94ab1052a70ab75960897a22a2c076d8a39cd2e2595f8245ce926f240e6e0321ca852c8bfa902e25d0581bc7cf78ee1a14fcd5ec2e985c8a223622756c6d1803ece89e699eec84ea7a76550fc0920fccf4d1bdef1c31e1d7c4d53fc42c42246f03a5d7308b3415f42b86d4875824ab9f6e2c9a157393c396acdef08953b15653ef03e7ce585b853143ed0653401538b5f0943e3960ada1ca6132acc285546558790603ded415a2a1f1e6d8ae891c6083c3080ab2c4d9402f715f60697367b6392a10f503a28014d96aec80d06be5fcfaa35a40d959cb600396c5be3295675ffc5221cdf20358f19dd244ceee5bb88b1370f7b3cfbd4f8a0586af8856afc36a926ba1dbbcd60393e3dc58c2417c93a4fcf2bdbe17985993925c99faed968a7f1ca69e6cefd485036ae9728ff9bbe6af0dbf49ee88e6a316ee95378f66f17129d19ddb44fe4dbca60362a07b19638fa70eccc8813a7e9bf11e36c96946604b174e22768a50ff276d9e03907495aa5d5a21d2f3acf466f4695d8060d1a85aa554e19d016c0ab53ddf066203803c886e9438aa011faaeb1a3d8086a873b774f11f65004b267bb809c5ea2130032f7f63ef4d79f5c5d1d6e22d48d2026ea3a8cecb2b09774a0d4c7d132afc8d3703dcac304751dc47f1927c8a61dbe5c6eb30fe5c2c1e8cfea015db2c619fa5a7670324b639700c4c0e8fe2cc2cdf4b43be43c2139467758fc01d3a5eea6adbfe488e03f1e1b0dd4e7fbd523943c3e35b2b7409d5f9fda6a1245bb23ebcb25bf3f646d003f507b8af0f631910afcda491955dda4b459463495c6447145fd52de2568ef4490387335ef28d25bd56c6ad3d0850180af7e2f0ea6cbf01b6f478bd7d6d0cceda08036f732d9faeff25ae0e9e851c73bf483623553e33607ce7e9de320fb654d77ca105581e0306b1fde61ae39bbcca64fb530619a9f53ca91d701b1bbbb25159d86d80040303bab4a63369b53d712872149b4d748e5ff09ae6ab38ea871465e0c18ef9a78ed0033bc6695b3fba5ecb154c29831dcca2d3b3c1d140aa330edb3115397be2a0cf1705581e03a152cbc908fca253fd69dd4a8b8e75185c59c3e46db752d3be95fcbf6008470bd88d945e17c005581e033fe16d5e6b4d70bb67372d5b88cafb1764865a6d0e61d4fecd4f9dc0700401031e8278d592274e4ed93a9f60ac669b6814fbe813d635560839c4ed265d9ae22e05581e0346aec5e6233facd215bd53da9ff785743ae9f523d7e7747eadc19e9dc0040103b9782cbb5db9088f13148d0b29dbbbab4d534f6c7e6756fc5032c25f75923bce01410d05581e0373aa2e2a2e7e5969004e31e805052af683abe77bd5d12c7b79d5a2b4f00c183e47016ccad6cbbb5e05581e03addb257c3de79863a8cb6bb8412b9d19b53a6326fc33bdf244ed2825300c18a547015de8f824163f03b4e36b5d088d457405b6856aa7efd8e7b3eb6e9ba63c36e7bbc00d881eaa966b02195f7a03f2b53f2e9f88bbcea31675fbbac0ad6c81a843b7f16f4601e6f6ae11c43e865f0219ffff03c83bcfa0db426f33cd8ab9e786fb5f3137858f835cbc419625088ff2934845e4038a9b956d84b21bc7a9405810dd6c0ef6a1d3a4dce60b64df45bd45a63fd3802503b6adf0bd4f2b9c830a2ed35591cd029dd6875999684b0a0c564af9ee934d418e038f9191ac635f2bd85f4974f133f030f6632eea9764b2baf477326233d0a921c60325c3c8563b48edfedc6f4c920e23b9368b6e370ae94328ef32c8dbe29a33d89e0383cf44be17d18f7838824fae9436537eef42410c886d976ad69c65483eb7445f0219ffff0305efa4acda0b399042ecafa564d92b65b61682ba0effb84d15638e8d5fb931d203626d7a4961e9d1748a5cf5959e9c2be312f34600e0c9e79f7941e1c08cc2c1ca03bff0b5276f4bda98ac4c1ae0aaaa5a52c8b53fb7cf222c67b057a9bba7fbfbc703808d29d3095e0741ede28f3a9fc9bc9e1f929448dfbdb452e436be00239dd2570359359576ea6fe1a512ba31c395ee49332c9c9a98fbfde1d8d6a9a77b5918765803c67f5c771483c100dd493002f8819d916b631bf389931022b4cf53405b18833b03e524bca0798e9e2407f245eb6b8aa574a47de99cc31cb40024d5a8fff93315c40383f78aa999562b8cb3470a86b3f64c3f34771658ff90220529c8ffab0805442a03497d9de66f20d901a76288894cc7854e72d7c1e99d5071256f9c1d5515b70784038d06993c5bcde3e5b7269bc4d51d6ce8af8dd26cf27173e1f767d5f5e08513b803547aaeb2212b54720c8606ad650b9ea1966f050bb1cb91197320308feef693ef0320dc722195ebde1baac5049069d7cef76d4e1f56eba0dc3bb553522e678166e50397dc28dc54fb87d7a07a82fcfac733d191d75c42edbce153f7bb13ab08115ae40219ffff031ddb53bd9c2008b95ea37c0fa9b447d10b8eb84bb3e6e2c628e23528d5dab6de0390c5a64769c8c6102398b7b0fbc297a087456953f508b7844253355d42a4241d03f58d064936f077a0025aa120b696cc4252ff39fecd6652085f38ac44b4215fba0380c2d2a2632544256f0f4270fd90032eebf115c352a67f671c23b3a5a0f6c916030821edcf5307ffc21aec43567febf0c52bf2236455a0c8f44410fd63b707083e03af042562e726e2d1938273562a2f01a89ab94d593434dceb0817f135e62a330503f0f368ff3bf4deb90e1415efc895b1d5d1a7d5bd1e2b0a772084f2b3b27e857b03844c8573ace59c734b36dbc11166676672405c8f5644f1ebee2c2fec1007d29c036c0ea9cd3fee83f04182966cffe8eac603ab6aba4ee58f6ff0048870350b0f6d0304312229feb56bba5efe967374d226d3a50be0594d08ce1822ab94f911c420c403e9f87c9141d6a7f995aae6bd86739aaffeb576c9757ab5e3e114d91f146c5111030271202071b35f6861cb81b5345edf590e0e7039a6a97bacbf9840441a1cf2d903cd0fe357050f6fd316061056b91a798f7866aca88159eb57faad522b7f782bcc03db2e65c66e1aa6ae0dd7e26166b1bd5a65f721586cbe06b486b77ee640a093ae034b5fc9038c5414efc134ef4e8fe2b712e47f008560902a92bb7a7d31568166cc030cf57565584de89956d42b641a27910bab9f9b12bccc539e2e05f78637917ab805581e03f2371fe5590a27bd406aee2b20bd07dd971122fa7607e4c2258726c5d00c014744e9a2362bfd9805581e031bf154d5b7e84ac8a6c290c9eaaf1b6d3bc9825c564c94369b752eb5900c014708646b4ff0a45e05581e03f4ceb0b5725353da0f46266b7f31276007e93ae86a105e115e122472000c01470371c632ceaa00039ca7f8e9ca56a9139bdf891c618cb286b6f499f973b6a101cafe799567ea76ea03a816f470505e2ead2305b0eb7ee6b23a104b177e7cbcc07c4914ee57057284be036859f151fefda07098bed2b866580fe00ff6314e1940df6a6b320bee46b0875105581e0377c9b739274ec99cd09ce009e94d8e4a893a0888ae93f22325c4e26a500c034702771fb3f0900003647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d03c7761e653cfd92d242a3f4874d016c876b2f4c825dc262647d466857d9745b8a05581d027e43c9d740e4d49c10a84fc2d254ce1d6c4515335fadbd17f173dddc07011bffffffffffffffff045903e5608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a1ccb98e14610030575b600080fd5b61004361003e3660046102a9565b610059565b6040516100509190610363565b60405180910390f35b60603373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b2ecfe4e4d61f8790bbb9de2d1259b9e2410cea516146100ca576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81831015610104576040517f947d5a8400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8167ffffffffffffffff81111561011d5761011d6103a9565b604051908082528060200260200182016040528015610146578160200160208202803683370190505b50905060005b8281101561029f5760405160a082028601608081013580801561017657600181146101f957600080fd5b7f42842e0e0000000000000000000000000000000000000000000000000000000084528980156101ad57600181146101c057600080fd5b602485018c9052833560048601526101cf565b600485018c9052833560248601525b506020830135604485015260608301356000806064876000855af160208088028901015250610290565b7ff242432a000000000000000000000000000000000000000000000000000000008452898015610230576001811461024357600080fd5b83356004860152602485018c9052610252565b83356024860152600485018c90525b5060a06084850152600060a48501526020830135604485015260408301356064850152606083013560008060c4876000855af1602080880289010152505b5050505080600101905061014c565b5095945050505050565b6000806000806000608086880312156102c157600080fd5b853573ffffffffffffffffffffffffffffffffffffffff811681146102e557600080fd5b94506020860135600281106102f957600080fd5b9350604086013567ffffffffffffffff8082111561031657600080fd5b818801915088601f83011261032a57600080fd5b81358181111561033957600080fd5b89602060a08302850101111561034e57600080fd5b96999598505060200195606001359392505050565b6020808252825182820181905260009190848201906040850190845b8181101561039d57835115158352928401929184019160010161037f565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea164736f6c6343000811000a0605581d028840ded3f68bc2ecc71052facb420bf6ad5a669fbbdeb9ec98befdce07011903e502183005581e03fe964c9635be400f3b747601635fa0e092bfb7ee5167dc02cdc514ce100c044609184e72a0000219e9b8035d18829790d72de50f0c973c2e2ddca18b22bd7a64b1e96de74703f81a5f2b83035b21c5b488c94a04a354d41e41d8d3961f47445613fcffd765d880bc8baecff203deb4c4b7170a700399a591ed9e7e2e29336f083cb823670635915c505cbef66d036fb154b0c824f04440e21fa9ec2d04b78925f68fd9f1ab30eae0561f75236a7f03a2dd12c45b92f416726bd4ad4e5cf997c2b2d559dceb81020e74ff857f0ab74c032cda11e0f93407b58c198e9b0dd466daebdbecb7bf4f98846caba8daf561344103f93737b590df56bc0bcaaec7889fbe55d20f6c2839f25ac815b2957ef0533044039f52a64334fd69e209af40f8e3a6ae71274016a5f71911b094145e5c6276a2810328e1bba67638d109b5c851b82006952e2f05fef5d4b8818c15950cf927d181f4030b5bb519be4b86af3e337e699c10cb631b625719c364501d9680b491618e86160219ffff03f9c2b270015b3351e305448fdaf2f57acad735959935e644df252ffba428fa9e03f14baadefa10348131c1da0b06d280f38a52d863b866e2783024871cda84c73603e118aa36de36f6d0ed399594bf1d74eaaba60fe0671476a51eefa8bbfaa2e1c4033340ee1c2de1e175d66946e2b4d558372b0bd56d9334fc574731dbeb652c060703bcb0c51475d798bde71ab705c35a04227d525e3905db7a822ab70f8d59e1f4d103691e1b4ffe87d4a72137298fef1b009e98d971283bfa65b47e9a11b213edad1c034cb475e61d1b98c6b88305c33a2faf4f373d91dd5fbfae2bd9072b5ad959ffec03a20d0417f0c4261ff6ef5d1dd6729ae97d627530ba67493144384b3e29ba270703256fad19d92a62dcc5b1d1f9829685af1bbae85f2455b87fc1f0acb67440623b03c17959b4211113feb93534300ed131af89e55e571cd8354f93646b1a0fec686b0300300e7a4c60796f00e65b51a8fcbaa0dad015dc41d05512d19ad4c0d296e6da0219ffff0320848890710f1b2321703b622d1d4b6143a49b7e72ea6433dcfbaa3bc37ffb56038ff1ba856ca121e2f788f2ac7d94c69c928d3f55a30ba9466524ef53c15638ba03013e2b7ffa0ffe8994f8f9e64456c27d5042a6ab1718d48b55f639f3aab73f0c03b4853632124dbf49d140e94eb001c883e064cf87f825f00d9c4f06f3ad74395903388067d2c733e90ef7cb0670192493ef8fb8bee50d3278eada275043cc70c2220321cb24a88257e4f7258db845704470b9c7fef67072eb89b5f373e017c57f36c503ecc8b1f34c3c8b610e79e5b8a95acb2606a7160e7cbb88982c5bddaee4c06bc4030e3b5aba18459e899e966d7a603800ad0e68f8f9bd48ae23a58ab4052b9919aa032e3c359877e9f8650f44559cded5dda11a56eea50c6b7c84b2579f1d4f1231910219ffff03c48d30290227aa201edda3c1fba291c4fbc3066db998daab8623b9d01ee2b97d033a676b420b96d838a6ab1c9631f12b95dac86384e5733b0d0553d26dc22cf25c03cf8499586d92b1a8f220f8db3b5d91109fa15dc68e4bc16579028ea095b98a9d0365d29332820a2f08bd170205f890b89238e61f70450ee9484df3c46854bd091403eb913bb9deabb5bbba52ca54387b61d85ebd4d791f0074bd41032945885c59e603aeb648cee378141d1371cca7da6493568b8286fc500bb4bef23685b06f5a720703439699bedc366820f3b166e8d5257b69ac3eef1cc829d6cd1b3a3a201f4657950314b772185637d4d824642a3be73e7b447b2fd426dfd80d2dbe69edc1967b705e03a9a2fcf3535c447f9fa717b5c2a46cccbda6b919155f8201d73ff84dc8ee7942033b79653115c4fa6bb2ab4027b4353917663c4444f5606f94cda919c2c52c8e2b03a076f4fe2cf09ec01188da3a383343b65efd7606a8c1b3b632dc430be099f9bf03b6905dff88de1a74d167a5500be3e86b6a9649ac45a07926cad67464df8e6aa203d9af73d0096d64b230aa1798b7b8a56869988de2a0b3092c269f52577ade1925035a4d5c916e4cc31dcbf5164c070aca2bc71985dffb87afe86bec49d77686a4310391e07e10e98ad3be6e9bf751130bbb62175ba6859e2f1a0bde300ff9e26dbe480398a72e2fb92f567b8a5d9ee1b00d47efa585dad098ad1ad24f8ea499d9997f50039a61446e6fe88e2580002987b12fb41daeef8ace0a22cfec18a8c1e690d420d8039b60489a1b77c7c68d9a3d699b0ceb1d0bd801db8f0880f10c9e9104b23a3cc703722da3595433988c97637a59aa0f708fdb16e18efd003472ded8ad93ac76af30035bf6bb89c8c20d787eb22a3db2882d64e17afcd252d7290057b31c877cf7bd75033463284c700f920308f5da50939551bfb58b009189e8f0740c7ea87c14d532030361682345c2962066b26d6c61fe03796eebdc91f96f89b5f0e66304d7ce8d195e03a23d83bf680f1361616c05e1f20bd1e9d3745ce838c447ccfb3c80c01747cfcd03a5a29331d811fbf4f53e0314b33abb55c3c75bd5cd3413e2fa5d85b9338866c0030600992ab1cd931dd17f41c82b2f094ee8604efd3beed83c9418adf656d036fa0350b3d500893ed76ea210688e60d09ea67ebaa20c9a91d87a51f67cdf40bcb31c0381649535fa24037ce3af7166a86aa2b0b7e50ac392407064d54224634960966e03e9c38f6c0f454665ce248fcc7cdcd4239ea345bdd54a5f349c1724f849bcf74d03caf858407691727cf9d45491022731c50742980dc6eebcb7f87d8010de5b0bbe036bc138122600b15552dc71f1a01fceb55023392c3da5b8f11cc4bfc02146052403bee096f1e824570ea2d1aaa4921eef3b383770fb316e2ec041f90e19ecd9d1e8037051a83d36ea08ae1edea1a8e8fa90b5fa48b02cab0962b5360b2e80631d9016031812b37f19ca135e0c76e21b66e2e29cb5431341007a5819f46280579103e2bf032ee85706e1ecf62c3c963b137eeb9df1177a9c38faca08e5f5d7979faac966a20328688596f0add936826090507e18253326e5f0ed6df65ff20ae857658d8f906a03044a52849708c20a9871f3e690900a6b3ce8f623a3277db59560e7a72b5160b203fa19602b347fdd5507ba7d55c8e406fdccc3e5e15dda781b8beedfb5eec5cdde03529a7c0c01748f8e5830f3a55718ab1ab0831a995200f4ce53f3d261dd814a8b03408a1c30061df4b979912c9872d857716c70652600c11f6c6498c22bdb20284203c0d8367488c001db4d6e0a29992233a06073de908699fd5e3602c7f8c1bfeb8e03ad09499dd6d4108e80c500cfa983501a8aa917375b8368c673f1e70cd77757ad037c850df37e97f51114c49640a0bacee1af3c1470b26c25a0f31a34bb48359c8103db6c3b9b9d64215248f8cdaa416ba81166648d34887226dc28490f00ed050f3803e3a4ce2e64acde1cd7451a6e888a1f831f4c9cf601d35dae347432f7575a51f203416a390d36dc00b9de22f5c99ef8442942b710ebf6e4748225098b79b69e0f5c03fafa1fd27db43a286384027340cf0d999d977f6c4e0403a2bb26e69996a1ce7105581e030597bd8d5b62c643227dd0330bf4c598d20ef53a7e8c8a3d135fa877700c1907d1474524175b7221c105581e032a38ede1c2a51528588d310397d42c058cb2270cf0a75dc915cc3e3dc00403033885b17a2a39ba918cbe27fb7b04a42c9350845a2d0ee9338f1ccf6d6bde89fe032df39c0062882ba634fb24c89e7f9871ecef10a6e6a6e79a336f6ed463d5c94203576d247b864a9c9c193245be5262a86aceeb51240a250d7b4354c293d83a678d05581d02f7ceffd220a9c3382dfed326d8a67519b3097bd0a05ac66d81c0383c07011bffffffffffffffff05581d02ad2c03909ff8cf561d6de66fb6ecacb5a4cbb44791066c64ef912cc90c17471bfe916bc2b51405581d02052277c64caa63f056c85de0ba1e88c2ab81599b981e5ee775cd13080c190228475d3f7254bb57d50219405005581e0358bd902f7aa9e19122fd0e8131fb5eeb302ea738df81c07792830dd620040105581e037353b27ab792acbe22e544b10579e541819b81b26fa6e3f7b4aceba6800c0147030ec19825e7f00348d0a5734bae68bb0667435d258c58ddd4e603a2be37c01f7921da3e4c9ec6c20334b592794fac6c242edb3cc3f01b256414df289e0f0da4554b0c623863248c6f030396890f8d763026e32c65d4a16e8737f32965b868e1f4a6ec8ff2cf56f110f705581e038944f86fe89d2052b047e405e9844f0d8874893195a9a86686353987900c014706b9b16efb68500335810db24ceb31609b83309d8f8a58a0dedd934a2a43dd02e3c44809a901e627036892ab6e903d46049666948d8b2dfe52ee9b155458fd993095de34f9e10974da05581e03988fe5ae9db3721e0be7cc7d0fe0df99adaddbac088101ebecf0cbedd007011bffffffffffffffff031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e033d6eefc0dd2d5f24429b8f10efc11fe98da1984e91dda052ab578b9ce007011bffffffffffffffff02199fed035616b8b51bb44db59889d944943351d6012e3eee4a7a12158056aa074fcf773c0219ffff032fcc8aab6956fc4222d8f9f3707b96d73250449fee8c3a3324598dbd3c0258fb036392782bb374c30980aea10eb8f8ec41e933c5c963937dfa09053f94c2030c32034d075e5a1b5ad90a6287ef665e29119d871839c4edd679b199f93f07bf0ce733033cff6e1c294d794e87a465f018e425654174f6db61e5ddb1c464d721f1df09f20219ffff03328c55e6994513b6ffacb5f7436af5ead9fab7fec6e7914dca11db2c61df14ac0219ffff0219ffff03c1a57e186a0f294c8ba29bc9671bdf0934b625fc84947cb766b31003f4c0111b0368002b6221268ecc22c74d3bb6733f27b4ee81213e2d01fedd1bdc4fdb1ebc5a03fd50202e175f774fb9d80e165c751df97702a69fbbcf8492007960e8e7cd83d0038dd49be1fc944f7867140fe15c8f4bf4f632719df7d23a9cb169d1b17364ca0503031dfc865435a04e18c4348b179550d7a944926d6d15e8a27bf190455133259f03283941ecc7135627c570b5546a41e7907b3073637eb1854078ffc99907b03a7c03261a2eecde304d973c0a012dec3f36e2026b6cf6fea41c5c3d69942bf6cc8e6e03038069945e2207a10f4e836717e1241116dd83254c2e60ba7d5ccc2be1521ebd03f3d0ba32aec8ec8fa6b8c3a299aa73bec4e8a8fe999d0ffeabdf1bd1e2346b8103169ab899991276881982e04abbf486ae17276053e016f6bdef09cc69cf115382038d2fa805933124a61226fddaa930ecb5cfc2a930a60108b86b6003787a9bd1cb03c6729683d760ad417ea30033a34994b78940dd98764df7d375771142283bec4403396e8895216955bc7c792c28d9281982242c9016840e72076c1c8ecefac78a96030d3ca69c8b07276f82a71d648b9e8e79bba71f9af7dfe1f20a3bbb51e101ddf803918e8c67f87babbedf4207ce28221f504ba11af58e116d9c9da553bd0273c996034dcdb1cedd81a5412c8bd09443e3ba57800d74545f17645df3f248175ecd32db039949a64961529ffb5f2222bd0c60adb6be281cdec0d661a4c9d41d4f6ae7ba3f05581e039ba19727a4db5e93da87de1420b20e9069489e9db1fc2967a51fc171d00c01472c185615a817ba05581e03f61270c64b4b8cd704119e8360f3432effd329c1545992ecf96bead9c00c0147042c02e0a25f680305e3e7a562bea121ba5a59a03955833fdc1210ba43e41bd040fe5b759f0f49a005581e0356bc4ded6f49c1b2c93ab18be0b8592dd143c1f244073d1f85d8e147c00c044645d72a65258805581e03afd7d8a069531b3eabe736382133a8e4b7dd914df0f9b9d6499af38560040105581d0266edb877ecdb9bbeb9a121d8854e2dbd3e302b66ec6b76e33a0382920c0147039efbbe7d620005581d025702f2895d23e36589822ac862bead02ee10800d38ae94cab7c40ac90c09472a79cd2d042b240219020205581e03c3763cd2468fdd86bd7df65c2c22430914a3ea5a16a293470ba27fa7500402033b15b2bb41732d9decbc99e80e545d93f783f6eaf05c12c8df2377d0b690cb7505581e03628da8b7853a3b7cacc1d19a95aee6a9e2771a70b1d3385484238d4d900c0247018689544eca9002198b7903d7c97b89584f48560b4cf871c3ac1327f88c3d9365fe5107cf4dd5614853ed5a03d08f44e6b54d92b799035d3d838b9c3cd43b895ecc40e3f96065d81b4c86e0c903636346782fc11421c8355d9f8722e84c89f2df7f1e22282eb275e88c2665b6ea0340e7e22baf5aa767b97d4c24ee304a8a0954aa447b87e2190558ddce5a0b68f303dbca7b1ca846feabf438d55afc54e904b2a8f9e392259ce7ed163758f0f4e845035379903c8ea8a25a841c32fa3a06caf0e9b2cd9ba5a34f479a1fc883fcfc7c9c03e1ffc18b4b9eb6a9e6dc307ee9d428685708235bf48e83219aeeeff46350257303cf1bcc9001e60bf39dcadbedf31e1a385fe5da80e16e2163055ba3a4eb97317e03559e3d6ee5dddb90a5e5cd44b78ec166a7ac71f38cbbc2926457c0df268fcc2d0370092ec51f2ae223ab65ab513038ea320197eb9ca334cb42f9ed13248a00d194039526b0b76a8cd296730bddf968f824bd05335b35d0f0a5a1ad276cb5b923c24803edc4657046f46e24167bbf494a0cb80be145acc8736c1c5c91b60d005ba54adb0219ffff032dc54c8066abf9793c3890f4dec5b81b01358f600455fe753e96004ea1aa9cc3037c5d1e5a75a32a5424bac1fa3e4d0bfee62a7aefa8436d1bd4184bcb56af71c9032009b7c301af8185ec90030658f68599ebfd31f6174ad2914db2de990510110203c249c6dbe8cea9a3515752c041dccc987a277ccc0bba37260c282e0788faad4003c2cf969cbc14d456abce238b558dedeb9200234cb362403d45af4a23ca5001e6034fd2c5c65b4c4a43578d01048f84f6ce9e9b599423b1d8759348243faca75e740345be7a5cdf09dbf3bfe66b7e27a3487670ac4eadc80ebe5ba83a5761d913a98b033534f09f8f3d837ba81f2520557c6a70f6d0e998427a9e07cc596d152b2243ee03542858bba3c394a32b3086e04607037c6da7a05ee81225aa9c5c6b9a42aaa93503fa05f83090a9d1d73e83d1b1e53b44c123e1d3b0424b0dec56eb967febecc9370320414d24e0c83595c3a4c839346ac439cb587916889327ed095966ec03b888900319395b7fc06176d8498470cfd75e5d6bf109c5f121de210b7d7bd620725456e9037e92499019ff474f8cf9d99397632b96b58d73695c39cd8359e9f0ca404ae1fd03f46850e7594d35d07468802541fb7a97db9e41347ae937007ba7c5860a9290f60219ffff03809412cff1c46a350dde6576df8fd24a5a103f6b730df0ec2cf9e9a9b51caf620332914a8a8607eb00b44ee40f73a839ad876c18721432eaa107c533e25a7584340374ecb62e6706a1bab3ad01cfaa127c3828adbadf408739fba2feff5a739790540380912a7fffa6bd786632a255930dbaafd6803afb51fb672c449fea8b77e6077403df6383b6379b4d327194a803b1a73c3a827f5c958d3e99ecc404be1cd7e0ad43036dd9d87129046fe523012cb5f2c39f660d0c96f2ebd34b0430a4d56787dd2d4003422198fa63a424fc40242fcdf514f087f3f2b669160c17c369ddaecc276143b903245564682530b92198c30fc0677a29adcbb95a51895d86b9545155b42dd5ac9c03445d11be2cc43eb830fe6bf05b74be46db64aa35160ce0057613b916939fc0fe0323c519ca7b091351c3f531efcd78340bf7c8e25436c190c8f3382e840ff253500219ffff03db1bc380d053d3f906e173f8df5be06b4d77d3c374e640fbdb9b3c7f3f6916c103b4f6fbc0c5b595c4bac00f37a3135e7c783ec8161df6e94b3c382b61b23f1d35034389620e2a8c748693ea10db932c62175f15e8a075686ea54f169af2c93eb54c032fe54e2c5c0cf6def8c490f385c38ca66cb5ab7dd5a26ccbb2f50ba5ffd1f34f037a7a35fead20bcc3317778b9baa5b5fd0c9f23b61cb88c1eda546101fe14511103f1cb9e09e780d02a34f86062c324b95df9bb9bed711fbda46a8efc2e60a959c30312ce2b02d70c8fee90340ee3f7e6eb6bb96382f9a2c5387e654727b5ec87d05b0219ffff03416b4f1f7fd8089b64cc6c73cf64d9639ea1d036606000f455f66602933c5afa0397fa5917285b7be0b0f0c4b66836a6b9616dc4fdbfa3965a8b16f9d66639668203a113dcc12cefbe301ccb5e090262df8cdf12b3fd0282cba9c864bfe4d4d1c6c0034ea728a5eec243577019ee7ee9edc80381f51b3efae32904b839ca209123f24303f35264db9d5d535004261992769f05d29f3c6cf0680fce6268068fb28f98951f032a0249045fbd7d7459ab1e4e77a120289ae4350cb15a88f7554a4f90ea3fd85503d46695ac77bb343f6985f70f220b970c93479efd8729a63edc81f3526af546fb03cca10aa0e3e583d9e38ecec38315cc6f4c31c7c907495acc050a243784b9c82003f43a31746b6a49bfdf91ceaf7d9ed06bfd072711d27285cdf42475dee1fc1e5b03594ef323077215788a0274f93b2ed6c6fce3eda0fb6b6779c3a2cbc96b40f55303dd9e5b14bb6403d4013ed15445997742c374eb8522bb2bb377275fb46608f4920331dbfd9d2a8c5c9442e561866afd26be03784f6789e5d50c7ef250c1e101e18803ef027dfdabcec2b2bce95e85c619a651fab64ae6991ead7dae88511282cd266803c7a1cd95bdd8f7d16955f7288ec1e4d49e1ba6ce3ee6ff91c2a626c4ee16abe9036667ed5f9d4c6898b3b5c5316fa3dd1683e211f7cfe2f53bdf864b90151aa33603ef2e264e27c9b38badc92dc9bc020e33710077517c38c9332188e08f5608ecdc03649d0b353ade3adee7ff94f062708331899d76ea7e7c4f2586f55f947baede7e0351fc8711fcd7fbc6717c2ff13a2c5e907d8e0d84f54b0dec33a55cb35604b9e503b25fcdda548db7917e15b86da1934b17ac1876575eea44e20c1a211d4d419b3e03c32292a7d9a477699a839cfa15fa8260d54618f03a817a624d4c518371457d3603c06b1e52d0622aaa5b78be16c77d0b7fb288bc2eeb1416210b38d0e9644cfbd3030271701a3cc6275befa837df5e1e726db3f6aa2fba434a1677f41c944cd451e003e1637874e9bf2631f0d0c16e6b8989ed2df4845644a6079e2ee39844c78e034403633551c52f1a545a91492813b4fe985fa05071e186a59e45634cefb099af8a18031786db5a3abb12e2dca6fb6349c4d351670a9e915956a715a0fddaf89341fcb30327d8e2b62f30cfdff641a494667c89fc68af07675957cfedfade9a2121623c5403562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03c78cf7910a54d596df36da85dffe0ac552d60d7395e048835ba1c5683007011bffffffffffffffff05581e030a15a16ca409708ebc105c3fa632dbe3eec043977ec679aeba1fce97600c181f4647e9a7c20f28036ee1f61f6a204bdab11d77a27ff30a58af6cb0b381cf04e21c4d641faa286bb105581e0322332c222d6f0ffd1b973cf1b87e55db33fe5def4306551f2553bc97400c18294734dcdbdfdab31205581e0340458973d9cf8ab6209ea226dc709d5f31299b244b60da6f63605387d0040a032f72473c9d67c1c4dbbec5d08a2981d20cbd9627b2fe96d9451afcdfc1555bd005581e03d713bdeb95a5e0c35fad5d15e530f5fa5520bd1d019f555c778830d0100c0146284facfe820005581e039bb672cfa49d4e520b2b737349b15963a84bce289c7974e4a705bba6e008470ba2074fdbe8a005581e030949259913e4635739e63224906b77d51887393b785299cc4f90d350200c0147461260234523c002195f9303137a86db16f29cbd9af96aaf821dcbbc1018926bf238a6428e6e5d47567ec0f10307cc298b9d19da235dd7825052db78941657aa71566fb36a9114f0c2b5059fc3039ab42b4187af0b957626c042767e27d6f2c70a8e88b444d59883e7594beb5281030a8b5065b51fba5edd7fbad3c46264d59216bfefcdc3f30e50f263135dcdcfe103bad07624640ef003de29ed78d2fbd433eba9ff26a714d062d2ff0ed76f3938400310d8eb7fa55e91c08a7aa2d550dba0d140c12bb11c99a4b02f2c0d6813e0d8be039925b81c343be4dcc9ecb9dbed61a00258d8df7ff5e8fc59fda665c6faf9ce8d03af4a0588802faafee29968843e8cf75b2e07c6e47381e2d9f0c46d0e7a494fe9036661f1c654e44fda15eaa44129dd104bed614d560165df261026977283881dc8039717bbaa8a87bfee706a5bae31ce706ffb95140be4ce7379dd2b1708b1416d34034e035b35e0ca3797bd674f684f17867bbac1227dde41cf4a48581fc69a1c76aa03cc76e61bfa5f4becf289f3ebc7fdcd0697b7df7d7f1d581698208c0457d80b1d034f9c7fe433ce79cc4be103dea197842df44b39ecb148d881b281fe29919014fe0219ffff03c68a3ff64e99a062f3148a5a5d7d5154204798fcbb63b84013f1f6dd65d034e603c96d50079d886202bc8f3d1ccd0d0b8c0ece1cc9a8588cca05ffb52821ea3e7903e5072c4174d9ea9f99ce670583a36747eb786086966ac105d50026d1de6b46b903bb4a304a64a1ca703b157a2d6502afaa4c60294e32689f50631fd4a6ceba21a80219ffff034c8b311a32e73bb7fdd692ef7bb7060631124549de1df38182fadc610a08a1ca033afd79dba5c6d21d876a23bc3c89dbf6df966e2ac5372f7ad70d8ff97a56440b03b28f09f3db7ed69b5eedf5364fcb9c5c32f6bbe073d4bc4f8928bd5bb95bf0a70346e76b4547dd853ad00984f5992c43d778cce4338f5e8ac07c511bf36b0f845b039fe7c7a11430302aadc6ff6a96be35e4d74fd0145514da19bf18b29ff43d6dd003f7a847548fd5ef1434ca1330eef17b13a651543da23fe4f8139bc82d977271e803db2550bdd45b99d713d3c65a92b0afdd5a691ed353e3fcc1f45661135ccdc78703b39c122a7678e601d575537517a05f8247cda3f4b8fd7eb881e2ad2e5b2f84f4030c8a24ca7df90762dfe2d58415b033d667705eeeb3332a15fc5a8bf4b416e53503d601021b899df36c69cbca205650be35158409a969e60ef8fa8c5c23e1efeeb7037e009030271eb05148b4fe7d302b2fadd64504b5f2ec28e257dc7fe4595fcaf603992298fff63d116d0f4d8065241855f67db88f521ad4bb445cb0300ed5b2d6a903f3ed125dc5bf1cb4f667578819ef557c06e1b114f4dba82cfc8017e0a08577df03278baad8d6a573b63fc05b538f15447741840c1423e46fbd63d5727500d6010d03b5ff5ebb19eef4dafd92b623de297af5d826d4edb4d812c6555513b7d52f72130340a37bb48283473f6c8f159cb564bce0f71e430d1a6fc655867d228bb57ae5ad03df4c2acb56fb56634b41c3857cb8d28afd56ad6ef09db7d38a5f69a8731fd175031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0313c46aaf3759c4fcc7995a4fbd0adcd85a056ab6ff657df66ed811588007011bffffffffffffffff03897801e90d9df97be6dc31cd5ded4c9e91f9271b5a23288fde140f6d8b09dc4e037a3670f78c75958f13f8579474b348612a80af61fa9b61b2c81c415523f170590605581e038361db2b7a4570fb400e0c1ba110cb11f3ec72d72e400d04c2e8146ca007011bffffffffffffffff03685e3a5ea835d576547ad24c197ee14836f869b70dcc44bc8528e80cfe245f4b0325aec8b21279d3e04a1305a74aec01ba0900cf11017336f988986e6d2ec74fbe05581d026e1bd14d217857927d20edb8dfc5072fd05bc9b34685ca30dc944a970c01467af8cc6a5a0005581d0265232f2ed1c8d04e783b8b14be7d240da19baca2278e6acb4338ddcb0c1819471c42e38b082dbe02191800036bd2f6fd673bb1cac2934f93f94c2de4f98be4868e24ffeb6eaa388ce5dd025003bfcd56320225029b68c4e867535f02bb3c732ca2361014fad4959087f63c93f505581e037a9c08dbeae2883d55a6de372388ee6622a11e1d89e62c2194050f507007011bffffffffffffffff03e97950e1ad0fb2471b298cb20e7ea2a59e8475b16c46da529305495c13e54742033f0168fceab257c7a0c9308b8228161764cb13bc271af440c8b9c076e57cb97f05581e0336fa59b189f61eb850bf1b0ae921c51e8ec627da3adcd19ec0a32cd3d00404021947f503325680bae4c98d1e3dfcfe600803d7b709ab19ccb85081966eb2bf80ebd51e8c0396f3ca57e05f4136362439b94e4b49cd32b546d6ee78cffe8e99870c79094d0103d6907c62803c57029f5d8a3d33d5922e1d331d8ee862897cf58e05574244506c0313d633fc584138d944bb43d672ef27eec98434442ab5673902403d17fdce1ded03a57023a3571827aad95362f18f3ba98b6eb07651e8ae747e92de3c947c5a999c0219ffff03a7b28dde4527673ab8faa026c5b10460f98072e57c5c8c6e972be5b599a32d81038a04eb3f5639e968225fa45f17be017d64d73955b9897b1c9ae0c46fe88940aa03b6ea51975a03ee4954db51e8483bd2901fc35851f8ed8f73226d9d63497c12d703496440595af672f816626681187c581bd4de0df712554bd9295e635d18066d72032db4af8ad1cc657aefa13f89a0246d2a10c404e3008d4593a419058060bc3e810319b6b70830ffad2110d7105e47c4ca3b11cb27079e620a44593578638e1c3c470365892b416848f0a502f34e33c327df81ad56c39666e61e140994a6c13cce550303262fd219c453979f76b2b492c16f7aa83ad9bc001698f51d2c768542cc4cb643030998398d6cdafd889afd0c90efb9e5ea795689b8c7d83486411d37297026e674037e1bc853151eaf72ac38090e70807f1ac45cfef0adfb35f44d88b6c5a9ef3b0d03e5d6c06b1c32a5adc0e95ea12cb570a3d8f16b6c916e30a09acb2abcf63ddee403823f838951587924bfee3516931abd13c81f2df298f8d0a90edb96b74979b1bc03911533d0537f2a97a1fd0c10af1d2b500ea6db2f64123996ed76105612bea7b40219ffff0219ffff03ecb8595609ae04fdc119a130ac9aab7844e9febe4e766cff94ef1abf3918d9c90395c397ae3597fd49860b0483ab1e89727194a4209ad2790eb95c0c167e311a6f033961f7ba1e5d8727c5c1c66fc3057c39638b1bf1c4d8242f042206635eb988be03d2d2ba94b754d6c79c330f1c37406310f253e8063486d2ac371c1dc12e98041903f6d4331cdca73b5fd68867b9ea2d46768bb7d427ffde558106de18c0cc7b0a88032070d38e113d810e7c76cc7abd5d8d51067cfa8e0b532eb0c53fd9a1795ce4f6035f90c050daf3a12b127db3f5dbcd29787bed30a928188749bf143cc726d8d2810340408bc036f743497fcbbb58232e83424a9205d768a1552202d08015dc08184b03250acbdf7cde159216df124b6ae5f835b7b0b6dddee184308a9fd7299185c5dd0390a128278b9fa37d6c94f7ee952b6e2de92cfea313bcec30a1504a3b7882737e03a6a8b179f05c77c630237fdd4813b6607d3347f015c5aca2ffbff39567f77e2403cdf0693818717aa0834a1098fefe5d59a83f072f0cf4a3bc4cade7fcb35c9f7e0219ffff038c40fbd7e5457bfed4c1f5cc64c7a6775e9ab88a6b8a342ecd0e2de19b564b540319863537cdc034b85fa663ddd5582d3c1bc1cdfc7b8a404a315e39307f668f5a0396d159f14ea940613a3ab5f638a32b0e93927e65a097da44073ef4ad533c7f95035954d637e41fd0a4e12dc7396498e18e693768798c989f3c75552475168f830903fa75f75f045dcd63e16dcef5ccbb90e61772e80b0f42ccdd46103393967a8b9203df755c473fd8400215d7c0177a8a6e80c92926d16f0e93b53c794f3abeaa20c90349f62dcc4199476a7e33bda24464452a76e6edf6e878c0bbd10ce8afe1947ee5030588d6a171274e40d796a910a5ba97050ede68f3469d50e52a02acefad90d300033ee22f285cfa0492e2c38eb4ce4a9ba6cf05deb66fdf60a1a08560e7017816f503e2a9b13f2dd9bbb5f9dd87f0cc850b711822edefaafe7363c4cae23c4120d53003adfd1c8e42493d2929f4a027a132d89e1a94d7b7d19bc00432643258e0871b3903a3f21a59818801873377bc68264b33630e7704761e4ca38db2fc144d9a09af080384a9450b6b6d45b6b38bf9a19b8d37b4e73b7109a758459dd06e587101385553036a7873cddff1c3132d06c25f568aa588efed69ace15eb2e0ac5de580c8ad817d03ae5176240198863832e89447fdfe0dd4f69b409560c08db05385b68e225a37b603c5b4e1dd3529b4d2e7367f9b481cf1ae5cf10f4e3265a5c450f84f13479f152803e44cb0edefeb16d798938d26e1f10e50885c88885c750df77bdd78b8e5307d720364aeaa53d8e9693210ca8ffdac30906bf16b1489af82c73bdbd3756e412f291503b4150d02a68a6c00eb9d3369274aca8980abacfee30789fd5801b85b8328f81003dd5a79f93306a4fdbc1192b7552131c76a9bab2cb4cf5e937f726cc91727708a032e601015d1c31016e7d79fe4dfb9fe6a9b2ea0c6fb9de64a012dadc9e998bade03a930f0ccd6b6cfaa514977cdb6ce9f10cfca1339443d35a7b62fa80f3f89285005581e03792cb60851eb145d6b0773c4253b6bd7396c7c76d08a2acb17a93ef1b0040205581e03776e13f4c61ce31587d028e9b7c4c865246d4878f632b95be0cee5c330040105581e03f3638a72c0471198767b43cf407c89a5898f09a127cfcb17358ee2fca0040103650f27d51d8c85925499254bf1851151156874468991e2f9ec87b8155d0799830359d50c529e2b2b37833a4be3e46fab359b43264b43a7c0685a7941627b1c4eca05581e037c27b3ea7297c02da1db51b0df76bb90a3407ccb20364a171ccf46c31007011bffffffffffffffff05581e03ebd470d3fe14325a72db06e9640657e77c9effbcb5ae5df6fb970d26d00847b1a2bc2ec500000358900be63e8dc031ffdbd3ae05d92bf1502d189982ddc88b1730328084bde997031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e03c285bc00da480112013dc5b15b3cf58519c78d6528d2cb3ebf31ec446007011bffffffffffffffff05581e032142609e274aef6e97cdef32f836a7e571bfbd6e800594f397cd02d5b00c19052e49011f028962cce65bfe0219624f0308dedcf770b72d389365c66bdc8d4b6a291a0868b5dcdcfb32f237293cdf5dc303941ea56f79410b8a2f6986ab88775eaba81822d053d8366382cae5da51ec4a910375ccbb1fa1b5520e55322ee1ce6a7c6ebc18395b87b18561235e1162ad75d1d4036ca84be85ca78d7ab8c6336cf10876db79a55c07e9b131d5489e5230183b31ec03fdf58a15b31e7f1dd2e2fb56df7918e6b852802565fad70571c81a51a30491b7030d2c48b72e222b82eb38a0a8e3ddfdf87d0ecee01ce69c4e3027d77fdb9aefc6037f5a7966f113aa1e583d57e15c32f4165b1bb0802f9d27ea6587c62db55a0c770219ffff038c146f60f3d26c8c188fe42ee7c2199071cd295f585f513dc3c7630d772f913e03a196eac06250fb197b6717b5face0b5dea5f0272476d9a1a2a5ac0abc2900af8030610a59533a544a50f7ac092f6bd1a32eab448ada4f43df7b28b4cd652ed48f203127157a023047eef5ef1157e49cb27728c638b9980e5eb196370b8016d61c22003285915a0fbf56a0b6ee22f2041607ca6ccabd19e567ec1003490b0b435d07cb703c1e3ff002a550cc3151bd8bccacf9c18284643a9a4b7711a23934333b3e2b5ad0303284a299bb6606febd1e99c9591dd29cc09697943c8099b871acd057eb5d78d0339d0a6c8a8184a9ea6a89249abcd56ca2f7765437a24ac0abbb09c93b2d9f82a03adb84c9775c3c7a36195092a8e53cd9735f66c9ecaa63beb32e9aae534027197034435ae455219f6870c359c03c6a61c6c35ce030cbd0c461d80e700e039a77e57038493486dbccdef92016e84f7d49ad789f7ed53f229d62b620708059f0d7e142003b6971c7c995d739022a145a684c8632625c04e9600fbf900c2a8640a8a1f9e2a03dcb2e2ad23ba921e611bdcc5a8cc5c9595460522f323b205558c0593b044aaac039c97ab1c51c43acda5b69f7f9da5e74b9b6ae6074d29b2e548ffb8ede9937294032a19340f02c8c0dd2103e8b0c9aba720eae011b71881fbedebc985e5b8d660ed0219ffff03042e911e214c1aead52a116e3b26bd9adfead97ecfb935a412834e6673ba0453038715be16d8d82213cfa82336ef860e18abbb21b1609487a2346f259f9a36c514033a699e6dc696e55a9e65c8b0050eb90127de15cdacf733c6ad2556865f7969c003ca6de57d48731bb8592f6c140e2ddd4ee5e30042ed5f7238a2e36ce641338b24035f93cc17b7ead6ed2572c4832750b434710b9c7228f497a741eb48bf266df5c80368ad645ad09fa94d5069e5603a40c6f34b4fc5a823e944073f6db511ad60b75b03826db879111ae7fea58326f2f19cadd5fcefd067699ca3880e1e5c258bdcd609031d16a101b5d98406691f7b9a242659247594cc227ab4d5922f9987adc188017e0219ffff03b867d5a39c12f884bee4b30d15e421ac3690842399b949e5cde10cc5fc6d0fb603e42b4f42ea2fc57cfd41885c38e3054a3a7395ddb5a6ee1a73ca8c08a4eac88703d7889c696a5e3f85271a5938ee760ffc8d9490cc2ce9f525dc5fa579ebc5b425038bb30b7ca8b45f8afe14dcf81eee36568025153a285ba104b3ac6d996ea6655103982c29f3f296fbacadd18f20c55d12786138089bea7b9eaa66abf1acf7f880fe038c4fc7118669962f62d94035f0adcc039d1a24f4a2def6bca0482b6350e110ee035155c241abd7fe7f288dd43bab6ae9033258448152bef889153ce7cf88cb4400034a77bed5f8c1f2f30d02bedb85561fd51152809b2d42a5a2c382a5f92ea562cb039be3619172e30ba3f78272e7db517cdba6988b791f131d399b7a50cbd10cc03e038439bd809ed7af3d3a3a75e4b347336405b3f7bdeaa314cf901d007979aaddcd03da1dba1603f5c8ba3a1bd55563300c5acbc73eda26bde697523e59f5d9015e2d03b3be330b82ee4eb3b8518a7d27a5d4d13548fe6ff6fcf5041827ac3d8172ed760301a34ec3edcd7dc078637de98bec40639f8d76b067ba1de9221aa0806618b712039b5fcb02a59dfb176c2179216014ece35c201ced969dbaece19db2ff7c7ac9f2030bf5448bf2b18ace0bb75bcc161ede4a1a393f5fd65887f6bdbf1257a63622ad0308194b7d614bd4cfffe24c5beae326cf6629d374065ec379fc4231f64be5a468030a2b37d7c542fa09135eceef4c541342886841b288d11fa927250ceb71c7056703c006431d76d54b66ed4513e09a1d4fee7f0b3dc20718b3dbceeb4607518ee03a05581e03cf0760402c4a34493cfe3a2a912ec524ec14a84b52e2406de336c9bb10040105581d020a1bb56641e129840b936742a5215853642e0d305fd81c060e26bcc20c19788e4903e85269825d46685505581d027f664c78e87075667a422722ccedbfd67e84f24aa2777921ef4c1fe004020219240003548f649b1a2583814fe34ace8822e4040001674ea6c4ade4316e7f52cb061c4005581e031012b8f16c51bd46bb39b5e88d4bb49782e217de34fef58dcd4396e6000c01470338855a72e7c0039643e5cf677f35fb4679a980cd13fc8a826992e24b5ba567a01025994301028003097c8f08371e76a9bb82c38eabc805131fbf6ef1077e9b98a98f47509e30546005581e03defb7371aee9610b3ef2709dfc37b235b7f5855b542f313692d084c7400c05460f3cc50908b00399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe908034b80452f9ca99fb533451cd53db43c066c7f50b9c42dc6abb59c197a5bc3e42e05581e035654effd75f6f547c552cc854a852f405ce15695effecc94dac3dabd4007011bffffffffffffffff05581e03c4a353da619fb8293a8888293d099bf58602a44b5a0111d7776b6958000c014702e199a6e9b00005581e032507bb08ee86fe086559abd6fa3af80ca33016d4023509b7f459ed2f20040105581e03cc72de6824e6c4678a91153311c2667731e48ff38363c3ef3bf14cae300c01480dcb48671cb77b9c021939ef0328bdad1e1de56cddc40c0e7b27b5e4c1429ffa7731c406c359384419b016693c0317c49942b695931358f6e7733b58a44432fad9e67ec183ed77b042967b58a68b034243b4cc354da8cb8c778a6713e84ab9651e1c4446076fafd48736fecbd1214d038f7f9dfd30a155259419ebd0684a665686157d385d3264780a35fd63f153fb45031ff36a2c8ab486859ca0208b669fb626423a9da422baf451913d732996369520031a3e0f2ee093741fef0cdf3e29f31457cf906544509d2a6c02d7252db54eb0830392ec0d831d0161985df48b52db71741835d25be7bb52fd7bb8495145f035f5140219ffff030acb87892335ffdf544744cd9e5e05a386eb0954122ced60079588bb85ac27d8030f038dab69e0ad31f348dfb4f6a7ef53836528e4acea82ead081855ae25108d203d98b06f1fbf1f9f3c9b8c7fff650c1fa661ad0b3fd498a748977cacd16624dc5035d3a335ff91905abbcd79025b1c9a31437e5e9d6ec56f158ff105f3b3ddf1bd403f9e3be2c5c5871e7a85d399922a9c65662a2595c3aea187e6e5bcc607b92aa9f03440f59bac6ff17137ea52e97cf4fe4fb74adbd646b905412338f2df22bbdf009032b4784ef0f21a2c17b1fc51dfbc8254d3c4b16379f502126eeba7a4065f127b703f52f5fff34f5380d29149463fba5741e312f0990ca3ab4981f677396f3c99ecb034d2d4cbe28fbf364cacb1f9955d089cc16a6029fe746b79c78a465506cbd19fe037de9d8b7ce17457ead28ee7cc53e032f546393bbd2ef682ac4f07b59ef2eb82c03ad5c84ca923eec61691914ce4e6aa9cc8b112159187ba57fbc71214ac3284940039c5d864fd5df05e25dfcab38a6419a48efc6a090e0a8613ffd21834c540a18b30219ffff0306b1111e875796741776907ec4f72ce717638642fda074d968185da5923c825103531a912d574f7f486300a20345e6c6e2eab4b86b40cfe17e184c7ecab2b0bd3b033b633d1c4d236caee1d2335e047e32c1943c09590f71b68bbd6d2b31b45dc9f603bd21a45fdb18bc15902ac0d1bcf9739fb4ad2d03ef4639d47776590cf4de0f1003bf1d5d355d13e23b19cd3802bcd970e2d7d2017c8ab35dc4b2610de27c7f42ad03fc934197c187507a3f5a60537b2c50dc117882924b4074f502f92bc7858716e903105510bdd92d27e3c6237e2c7bcaf871f394d716ed227df0dd41aea6ab5dbf8e03eeae1095d87d6a981709d159159dbee3de4d5db37e0be911ada1e97022bd372d0219ffff039c14aa255fd83f1f244d9f81b1a00467c9868140529fcd9a97a387893f35a11f032bec95f4347f6156c7db5490fd9936e1bdb9f6d48da6510f4de31373ac21cdc103f10cdf4990bd2836c005b7432d6d4ddfd361404e6b638303d609e8d4bcfc40a3032e8b8697d3b41f158e5540db971620ec5b8dad05370de305049f52b3395785190394d0f4f156a6a27edf4bc25d97b25b27469d265c4521ec033c7ce72a73760bd703c1676fefc99db168d438fdc309d00ef4fb16c4af48408422c99b12a3d9f5e14c030514f0fc727bc7daa90993e35404cd5b1fa07fa1dbbf65e70fc54da6555fab000219ffff039836b41ea6b7f0e44338ef6f195b4cdcaebab9c6e8f4d21a970bbb0dfebc61a2031c6b25999375c533001009994f23d7fa9c940e2ddfd5abc07b3f1cb4bcbb5f050321b40500fbcee7c67e96939c7dc20fc192d39e4307e2319cddf91c3e9a5b584b038c1d5b2fa95ac5bc1ac586827bc95e25f55899b63d8e0fbbcb0d043e8671f69403afea4e55e2ce4420bb14c102c906cce3cbb219f7a9b7fccdc3cd8ddd2988c7b503fd00d5a82b5d10dbc352331887bbfada4e8f084faa40129543f050705a2875f003683ae77fbdbbfaf5d87c2a361f6e31775e4dfce9fec86a29446cd37db3281d3c03ee2c96c27e1ffe94bed4dfd5c089194e8e06b1f8cd98234fe5a68a7d26cdc4ee03173a704635794ed0bb59966e46969948c7065be5af3210f635d8624d43802c2103f9d841a47624ca63aa9bc046728010d0e96875d9710db13e488012d9f484c5cc031020cd8a8c2c5c2d6da6c87378e045a7bab2d0f31349127e147c48300e78f7c1037fee6c9907c0a7165f688a32aa3aa29ea424bf14d2f44889e6fb0390b77f92eb033af3d3ed6683c17889045c63d475b5a045dbd9789bb6d378e02c48f8e5e4f3e3030fb545fc4366d72807ad2d09908dcf36bef05e9deef716b76b608f21cbe50aea03988f895ed0d850d7ed58943323f6b8f91c7ad6e1cb64a4c20d76f043fff1aecf033d9bb715cca5295d2bdbf302ca43f376e0cc3220d09f917094e0ecd492e6054c033315f0d663fce0e6d2330f3f439b482f7e64068cbffb05c43ee87d7731c097d503c46eb8fba42aed6e851dbbd67281e2d99e9d39101af1346c107c45fb47279e8d035a44bd2475bab108f47feed7a57b20be0a4f85bdd562519b06b9e67c9829451b03aa0c5004758c12680b99665a205e37db7d051213a688d18ebec1ef34a34f4540039fc7fe06eaf4d45479e45cba9db0f2c35d141e4ee9035dcda5819d925551de0703a04d2c0c89f902e2bdea5b2d9e616816c34e11ab2c0d941be20f83ae91d076b3030858a7476c4d5eacff012caeffc4df88a1e66a18c2a9983abacea908d42ae6e80314476078d3489133b998be9fb501e98ff99866db2eaa168354c3e5f1c2fa1dcb030cbd4532beb5e5587431de514511783eb0ca244ca480b3b60ed9f741a7dd98b50308f3504b2625f129a7a6787b817ca292a39b305703f08430806b82692d43f179033864a1f2b32e57a73d45641d8c6b3494a5de0fd6e79630e5638e194fac7a5afb0317d8be72e32de8d523eb609353cee2bb9dbbe464727153f5316bf613723eaa0103330abdfdc88de170e38485f7d9c07b6235ab5ad8a5444da1dfc95e5d7ebfdda303a7edd998fcbcb936feed90a43b4be74f7840160f51aa92b7c4b86eedc3165a6603c1c50d00aec9099dc67a07a344a30bda8b91504cd7504fbee43abf699c3dd69805581d02c1f437926fc6057885d63eac8054bf36c6391533d71600495c8bfc270c014626ff3aabda2805581d02a04cc887f6217d6c79ef67e274f8518ea9f0a2d1a996cd63ee49789d0c1836478ccb8a3ad5ef450219180003918a31075b74f6bbbe808f8c2672336676d47a9529eddd4af1487b32a57c2d68031659de68e6a279da28599e113109376d848bf72a54b56d945750294b8c97e773030657e508cc6d404d8cc89513d451fab06b3288013a5753906560d9cbed22571f05581e03f2852d7e1fb6fc34c5eb61e4f71f821a23fc25ba489e6a83b25856fc9007011bffffffffffffffff03647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d03cb6c1b376ad67c1a259c82707a076fece088f1903e16641b0338b161c62bf95105581e03d7c7581c59c11a4dd357732aa7264e4d386fa7144981e133a2afdc31b007011bffffffffffffffff031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0370d4149f6ba4cde32add70ae467b346f20491e59a2c42e9e1f8c6d946007011bffffffffffffffff03abedadfb06bc8651b2cd97c34db3f4ce39a83bb2159eacc862786e4de19a1bb305581e030e204cf9bdf81af4c3d7aa322d46f2be944e08175163eb5a27b9d528300c044648d2bfe83c0005581e0343687597cb0109b4e4c3fe6dbcfb8d8a24bf6eec712d5add67e4bdbd80040a02197b640322599a6c2bd2f0e6aae7c1947ca2ddfdc9275f78e51914baa31935b3f4435a3003d650c1df643a5f302bbbea446b1984751c35faac1a018830d2284b29ce17946f03a963208b12a07d186186340c9d8b408efbfff6bcf9fad8b75b67e0fc943fdd85030067bedd9906e26011f42b66f32439a1496f493816d63fc9690b6de933dd7b800355ff89060b363937a095c9a36236ced3b4c47bb8a6a40a9494b3b3767cec546b03003a6012153440d49dfef876ff0676111ae39d63e6e40354957b557633b0875b03487d7dcfa664281b60c0aec223688a70d49eb569bb9eff03bef2d91b72b07da80334cf750e6a9447fad98bc7f83fcfaf7bbf7a992433feab377a37b6b05e0bd07303ba5fef352d3979ca661b5386542de06be0e3598c8614cc45a17bb9e13c60b9de03163042f7d0579dd9a3d034cd6302a41b49059953527da3023989503abe671f68034fed5717b52aff1c43c4a18f300c56f4ced9fcf371fc78e3b16383034ef4d37803fadd30ea9b3ec30ce1e5d418dd1ef7d2e9340e1bad31b9c2eedb0564619225410219ffff039efa5b8abb621ff79710b3249f51b39c5afaa107465f486ffe0f0f19c8b137fb037301f87301ab4adeef5fad6be1bafeeb16a88250711c3f45909a9a8edbc87cae03b55df9eef5ab023e5ad332daef2da509424abd7ba4d3376d17ef14cdeb9286d90342d58d4ea75aa065511e5db5f3413ca49cfc429e0ab6c5b5bfd2349ee0f1f90b03f609f83a4c23469003447ff8963cab01159db3ef645d728e64e761757477e94c03f1d7eec4a992685508ebcc55dd721b5c2a1d62e67c0ab42ee8a73bdbc853b40c0219ffff03f8826a9fc195864c3261fc87e09fc8ed0b08cf730d9c02aaaf9c35e286dfb11103b011aa483e9426301b39723407201d1418788e8978466bfabe7047f74b1e4e35031481510b53c79c5039b755828f441dc3665a8be55037c2c6a61420ceb9bb91c9035f8561dcd2bd466f04893ee855aaf52fb125a26edd66b6cc05a54341049c7c250219ffff03a45f5f669ed9f95432d179cc8bc79de39af260c07f6838b778c782ed62d1f09303f9202ddb31d075bbbe674b9f3bbbbeadd1d44ed66d94a76978772b391c04cc2b03c5201618c5d9bc4bc79fdb4f8d1b1b0bde5eb5da1def1c53231229abc418d6fc03dc3a60a7fb01b77c90924099934a9e11097a5080d59aaa3e7da7b78456d3544003c29ae1a9721ffdd727c80027b48d06bc591d5de5f085c65319669516bb66ff350398a30e2f692c7cf0ccc4fe75949a98cb1550aa04c383cf7dd183fd501cdd9ea4035c6920ceeaf3d133887873a21cb0181d11d6925c8508c63d65b81ecb4aa10ad7035ee1dc6df833fea6f0fa0e9fbc5737e199b14bf707401244174257d3405b653b0219ffff03608d59abf64d1f2b4dfed88750a8c7460d728e06da1e0d6c9cbd317832917e660341125bb4e2860f24aa4762f2a2db96b57b65daa7e5a91faa72f000641eeadd8c03f4f9d55234dc2b2b3cd8cdf85bcd96a3f89b43c6c89cffd09bc3b7567ca65b84035a4064803c3b67e1b66a3b7100605a40af1fdfd97ba59c0fbf35bdd7fd79102703070688f52e4430ab751710c60b4594403efc1a675110b41bfd065f3eace13d3e038cc25684897bbbbd49fbc39829a2cce10a191857eb8abf9c21f4ed1818b1ff4503a50570f1367362c5d71d53339fc74e7f758134953c71ac80c1af75fa838735bd03d076d2954bbc13046258f3940f453f51a1c069a1333590edc6f127fabf522d46038635f44b50fc6b09c5cf8c6829714386c38afd8a245c5afcce44f96ab16a4f21032e7dc062b29206b788c354f6be75e617d8118a5c3a78419246b0444904093f8f0362ca74e9c481f9bb1ed71587d4b4ea3e4dcafdff581786c77f9925c1d49323ea03fcb24688d41e3284107ab462c7cb8baf26018ed03db6c5af93a59eb42f22410d030556ea3c88e50c35bb310f12f7c767867a77c6a9d74ab9d8f053156f2915bdb8039a6f5e14070cf21090a6f4f53e92a318a1202c05c36ebef6054325f40fbd0e6e0383a0d8ba95c14469922a98ae10f14e846c2e99c1ff4dbf68d252136765dfe1d203a668a402749984c4594e094a4a56871bbad8772b95b0c219ba3738bed04e4cca03c3644d4b15e45623ba921f082f701a099f7f0b57f88a3177070bbf074b25df020338852c730df436b1ba4ec82d3ff56f403abd7e28da3059e4afe3f09a9e11c56c030b0a35abdb3ce40d972a6ba9bd1fee22bca1b29b7dc348277a087cc9b6878fae0383dee0bfb3c2265416be55ccfdac542e527af397cb39a2454d918f1be2c7fcd70302e8b46337d7b80a39dc5dc6166fb5543d78b461e09185410eeb7679fd84bbc2038a102d63b62178c03fab60a5be0c114d69d899db140f064d2316f7dcd361ff8f03a42e2cd3e53d47b1358f6718d7d4cfb5c8856eb0271acef9ea770e95c78cc97403c0c9653f4d629331b0cc7bce2c65d85b0093a7b6ec49fc7c416bd8739fa253ea03518d31ae3e3a876b322bc32e8f28d1922aaeb464d63d3da62463b894c526cae203fc899b4245ca86172fddb3e8f335d8d9432b4edd6c5890b92285e7c8c9ea7c2203899c21d368dad7609f38d1768afdb02712a6da2c1c9a7192efb266579175d74d03a82ffb21d922603b8fb06aec7dfac01e744d2758657ef59bb3a47ed3a3c7229203fdfd087ee4a599f3cf28ef5f6eb934f58957bf28f14a90bdca3eea603d166a3503c9bfe3650c5c9ebe9857b2f6b58bad1e26142c51349f45f93fbc4a2a93e3824603be5fbcfe89cbf0a535f6448a562d3c36586ec2c64256660a3c319ad7990ce568034572ad640df1da2a3c9d7b2de095c56cf4cecec392ab92ed12f43029ab7e924603a11f5945ab92faf0e44eb1916ee2e8dfc0837c0864988219f123c1617848e03a032006f56c3f93d897117ab56a0db86671ecba0cf895a152af37afdc675d69911705581e0357c67ccc6c571467da08bc7bcacf4197adaecbae27a1b52a11951556d00c014702ce80355f5f38034b1fce88a7416f12d205e220d3259cac6cfdd2e83e34d5be3cc61f4934868c6503cd2f395546bf39a9e5db0000ea79deb5995ee626b5b5afb089068f785b617e9105581e039afb3444f7646d27d7ecde1c557080660c86fa9bfefc3544c4c2dc179007011bffffffffffffffff030342e4b3d2ee7cef6b38af3d90029b5b51d3ce04d926235cdbb48539c1dab080033c61bc411bc276f2dfa56280210e7976106e1f67a88ac608c7bd2b457d0ae48005581e03238574a8606f16fdbe4def9a9b40994cfbb3a754929686c07e959590e007011bffffffffffffffff035f81077447673d113a4d799ca5140047f48f5172b31d86a1e2a2b7ef07615ccc05581e034c276ce5aae61b4a967957e620043a12a6fd2886f07f0bc9260597f4f00c08476a63bed5332ffa05581e03c73b22b7759ec01717aa16657ff8c36b4e0313fec182a845598faa5cf00c01471254fe1f0a80000350b4e5bfc29737ef181393281cbae0600d35476da48eb1be04e7a22a1787fb43033632bf4ce2732bf33e5ea30e370b35a7e0ee975a3581e28b3190642472c2754f05581e030dbba9c9edab8e9caccfca6bfa729b0fe7af8e06a0d1145a68b4d362500c0147b011a5de6c700003a7e48f0d73eaf7c47528d6ab59ffae7b4aec13c5eb888b7359f014521767c84803f4894f5d93a9fad81ddc3c915bba04e8b24b153184b4a38622d4e353288b537905581e03bc049764c0ac2436b9912a4a84b1e885940c535c4f8d409af8c37929e007011bffffffffffffffff031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581d0227fec7b884ad5afa68c7eadfeec2222e827603e4e8ddc3b9bf1bc73307011bffffffffffffffff05581d029c81ddcd2d990ae901f3eba4a40f738f7e02b6d0246eabd3ed6a47260c03470ca4f83e810469021988000219fcab038215c91b4a09fcd3afd577e49fc48f279cd9ab65a766e0dcfa71418b380c426203efb4a2c05ff7cf9380c75c7613d463a6d93d992bc87956274bece805d5d7af9d0327ab739f5192b2bd9ce4d87f5e31bc2b9917db0cdbc1e4cfdf9d4e79f67a3856038c4aea5cc86c6421a5e66800eea6cf2ae8b9072c1b380d2d1200ad051a4263c903a2e3d9b3069f5e662a658cd7c2c6f8ffe1042ef3699c1fc9ce207f758c471ab503e11a83aa7e9aab8f3cd24f94741281ece081c51d6b513e4c596af0ee8ac52f5503bddf2a7b26edc0d351989f650d11b9a94b2dfada8706ca2189170fb6e726d38c03815ab03d784a7c53345fe540e8c460987c94f23e31a68256b3b2a9ab9a1daf530219ffff03634e22e4b28a8a961c26f22f9b8c5856b166299dc983241f79e28d3ec158bf9603d09672d15a1cf773ba924738b786f55ef11475779cd0c7bcf6be07bca2ca3b630362587bc153edb6ab87a9d22eae61b8853f2f6f3c677a80cdbb7f4eadc42e774103a0ea6efd9beadadd7fda257e2911fd2ad123b76fb2c1c093859cbd39be5a84f50346ec89bd247d326525522f5d078f826dd758097a538fae9ac091e78112bcff990219ffff03a880f39cf2579bdf53529299a1506b93822e71f770f315944bdf3dc74a5218d10369b3d5ecf923932197af5ef86637bb76c4931ef056881f02bed5ee7c2302703e0219ffff0307ac92f2af35b8f87736b9fa6921abf3cb25e3121fcbece24cad66cb36c55f1103b38423d8c24cc2b15d9858a9fe9b5b360aba7ebf80d3e12183631d46c39312b203aadb6ea2b95690a9384b4261e805363a2c1d0380fea0c74b4a806ae07d1220d0032c35d18fb57c943954aa55ee2fa26ea615a366a00f1adb5f54dd56b967c989ba03b6074a77e2c70f7b69756da266f941333563bd3b37addc34f5bf153c506c7f6b03dbd001392d6bd2707ef3269ddb70452dd1f242afbd209fa72631e744d902caa8034b628e00520ba9ba8a30749cf7c37cc1839c1fde960d382ad638314e1055ca5f03360b70db9d7cac5ee219be6cb29e5abc6c6080d95b0df1fcfe31f900b352466a03d03e93eaf6ac55fc4c4e37ae22f02f8776c12367d80abe0679afddf8998d859c0354e25f8e24285af5a6d7b65b910cba5a31bd13aeece6a6444f4443d090d095c80344a84bb068b47c8571dceeb3d4ec5d5b34ddc219a2760c0908b2d268aea4c6af03be1bfc730603d7681bfeda176dedc4fa5a435acb06584e00dd6f2bf7e59da1ef03dd266e6e9b8c64a9892153c49e2ad41b4b81d8d82c919c04bc13d6faafd642b1033e1a3a6888bba34fd74c4f96e7d784e08a3927c99274767c8b45383243d181e7035a92bb6dcee1c9c9bd2ee3548044251374832475ed9d9e701e7c36cc21f00e4803a9c2664e6e250599e437fea69cc9569dc34e789f5f1b83f8addc5a8580575d4e03d992db617912f4efca1d5c6bc0e80e40d147983c4b48c3e16eef6644fd327f8003a839ba35f8a0df0db7338be1ab4037b68f47200bb63115cb87db40579f7aacd0037d337e717ecd4ce5f45c4ea8994e476ce38cf937a4f2924dc40cfa8fe5870fe905581e038e5a09e900731c937b9f9cf98dd46edd55614471018486770032d540d00c0447275e593373250003f8559abbbe0eba3bfeca91b590098c70a24bf7c768b130fde193fb5bcc98b88205581e035a76fba5f3ab8fe576d44c03683d3a2189211bafe0e5d16cb0630b5e00084780b6527a8c355805581e035653eb197c3fd399f1a5cd68d1de6f19edca5b60433ac2b56c7722f0700c054730ef6fc5c179d805581e0309a9efb64b9fc582cb3aa2de516620aca954f1cf2b57fa3c62a951f0e00c014750434de6c4000003ccb10237fbb545478774d6e858eb7a1327708de6c205c7195d3a5dacd596120903647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d0309649ef5d0e27de54607a47f0520208f93df8363061237d10e681ecf3ddd9efe05581e03469667fcae85f0588263efb961720305bd89608714ea1d1d740c8f27e007011bffffffffffffffff05581d02d5cd67117eb060eb8283e6f3aaf1a31a9234b6478f940d7ca4cbc360040105581d0299652947601cf1972a660924be5f208f708f0e0e2bc9ac6a34afbe120c014702ce80355f63e80459088a60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633659cfe6146100775780634f1ef286146100ba5780635c60da1b146101085780638f2839701461015f578063f851a440146101a2575b6100756101f9565b005b34801561008357600080fd5b506100b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610213565b005b610106600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001919091929391929390505050610268565b005b34801561011457600080fd5b5061011d610308565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016b57600080fd5b506101a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610360565b005b3480156101ae57600080fd5b506101b761051e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610201610576565b61021161020c610651565b610682565b565b61021b6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025c57610257816106d9565b610265565b6102646101f9565b5b50565b6102706106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102fa576102ac836106d9565b3073ffffffffffffffffffffffffffffffffffffffff163483836040518083838082843782019150509250505060006040518083038185875af19250505015156102f557600080fd5b610303565b6103026101f9565b5b505050565b60006103126106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103545761034d610651565b905061035d565b61035c6101f9565b5b90565b6103686106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561051257600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610466576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f81526020017f787920746f20746865207a65726f20616464726573730000000000000000000081525060400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61048f6106a8565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161050d81610748565b61051b565b61051a6101f9565b5b50565b60006105286106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561056a576105636106a8565b9050610573565b6105726101f9565b5b90565b61057e6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610647576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667281526020017f6f6d207468652070726f78792061646d696e000000000000000000000000000081525060400191505060405180910390fd5b61064f610777565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c36001029050805491505090565b3660008037600080366000845af43d6000803e80600081146106a3573d6000f35b3d6000fd5b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001029050805491505090565b6106e281610779565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b565b60006107848261084b565b151561081e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b600080823b9050600081119150509190505600a165627a7a72305820a4a547cfc7202c5acaaae74d428e988bc62ad5024eb0165532d3a8f91db4ed24002903a7d585ceedf126aba3eec2caf8485f93e631b4bdf27cfa52684d3ae1c2f83d320367b9fb7663a7622ae5c6ec0a1b089a3134aadf9248911402fd3f3a4a7ba1dd8b0375efaf624b78ee11e60b989787d8e4c003485ff84d1cc33a40b29991d319687403ed043576fa927e25d34cc502b196116f2769a3258ae72e2c9cf015ac06112e1d03c3fa1953ed3e0f54376f3939fb2228965fb9df7a554ca049ba58a4360cfd237b03bbb0b88d6e7b37145f2a05ceced3cd33da78a8479de386619f134f0f5deceb5003ca462a4a2f71b459aa9fb7473483dbc361703e5d8af1f69f6690087cafa96a6303a22a7617d3be7305fc8458dd29c2f697bb7e2bb7d441dfa0bbfee3cdefb26ea803bf3664399614505d48ef85de833a37d3e7fbf023e0e5f43992b6e9534063456903454d7219a9f6999a6d82bb5a9e4abf7b5511e960e4b936165e8e114e75ccdc0803146856118ed93883f000688a9399396d2b549b7dd6c56bf4f7a9f0b3e03635e603e69e1f486e22a208b044ecabd4b5b620a82617ff14f4e0ec720e30f3abf2cc420315723827153c6d9a5a478e537ee3debe72ddad0016f4ee5ce52819fa5c1b1cac032ea39463197d5d4533939eebed1585aa20639a9dd4100822e21564a22358d47a0319ad507c8b977cb53d3509b7cc3c0a3ec98e45d5e3a2232f837610192bfd49d700581f0310f6e6c7a8e43652b8ada198f9e97489b576f668d69726e13100011b7f605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff037a640a0f91dfce92387e7ce319d7000ac9a5c6c03f050e908dc42a757ae588b40382c8203867ccd34be1c679725309443683ca73d6048fd052b30471cf771a2da7036fc4cf2ecde4f697ef5aef08c9d5a5e84b83674a2341a4b9f29666ee8085c35503ef348518c155eea64a49a08f8e9d331ba019f506972873b527576fec19d8cfeb0365abd47d2cbce35513b3af827724e350ff68e25f43b5a844000d18bc6d4043b0039960eb5c9f467c67c4813d16df750a188292bf50189e02e10b441f96eb30335a03af9f965c1d7652ee3d394a2b16f125061a2c6d449e854c97d82c3acac7271679035c539b1d5b60eb24186a42d805cc37982aa63adc0a0d9bb4c3a493e5c85c28b00390d2ac17bbadf70f57fcc942ae2f0fa80c418df3c437910f24c874c81c284a2400581e023079be1d29a692a9a3cba9dc40aa76155e90fd362cf9d6ab13fb98562c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e021b7ad56d5c4271e11982577335593219b00bcc3b9528c7bdf14cd336425820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2329aff00581e026f9bedda8d785768b389a5d2795c7c38ae8a4dd1f74c4d5304036ee0195820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd2393f00581e021aafc4eb7f27da6d90ca37da049de4340cb552058fd524f959e5e7734b5820fffffffffffffffffffffffffffffffffffffffffffffffffffffffed49b1a3f0394b25aa751743e8ab31dd0092f7bdbbc9f651c0fbb68bf576677e92e7851528c00581e02b26958b4d50c9ddeefa8ed777a2dcfe0a5c6d2151c6124f3751999f1124407829b8000581e02b61201845c1d6f18de4bf1c3f978273fe173fd56293c8a92b2cc26a7184401240da000581e0224954b989dba9adcdb7b3974abb7fa0cb9200974827701d90bf0c69c385820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02194fc103c22e201ca56f3c4cebb26ea84736a0fbced0e57d602cb37287984f137aca51bc0393fce50da26385bbf5a52505a28b85a25cac2dcc0ed8996112f2e4aeff8e43f30362427b0e35e19b6f3021bb671e0a42b5c2313ef0ba285e31341acb8870b585f80219ffff03de3728048a67332b16a021001e5f7dba1dfb8185672ffee10fb3dd35063d7671031970812c1a237d9dc42a1f5623831a99809041f9ecca8f0b6a8388c27b51b0b303071cff10c76a6ea25bbc8683ecab793865163c3d1f4bab219aef4439abd8ca7603185972c1483af7687495a3d5e5e067dd2827e6075dd2b7e428dde79eb7344aa703461f75be7d51830cd195f62e570b386a7b5e8c4eabe3982744e7cce3f441c58903dbdf027972b4a16f9e263149c12aafaa7ac7ee47a4e36f1424258257c9e7524d03c5d773c4f45457123147d17f34d1aeda9c43a38e425a6666db6c377439be272503b66a80710cb71c67a5b7ae09f65be7a8ab99122ea4134fe112ee6e13f6df07e9039f52c5d0c81b3b68f989453c227a36fdcc68b0fa427231217298a7e63541585a03a0a8c9876cf59c5760664d52ba583713e35cdeaf0d67be14c19e392ad20ce084031a65e2b72d8d11fb801dfd09682cf0fa9088633b59f5472e1498b5b8527593f903a82a7fe4f13ec4eaf1bd2f6d44354097d523f5c7a0a6684a3cc92f08473fbb3603b7ea7063235ac8b987a57a8c850ee6d555878604814b0e4ea0480a9ba3ebbe4f03bf616e0aa68fb1ed0d5eb8b3fa602290b69cf98828e86c0ff78b92bea03d85260219ffff033e3091857701ed84bfd4babef8f80ee41220c3d25030260f79d506f09cd4216f03d25d3bdb5cd7ce8b3c7040648f976f9217fcfd40146885ba41a6634f586d19d803c41375bac57fc65d5b3f902c5d81eaa5b1758a609321258876e24dec5bca79f0031ca017440e6367f1bc5f40df513fb7803ab0511f682d5e377f3ac768304da6b80322eb1f7007f40d38b934ee8a97f44f81704755551700219b6c6903db6a867871033c0416f13b22cc838ae559cb17ecd36eb8bbe5ecee911ee198c7cfbd1053c40403edb438cff46352fddd2081379e5ba1bb4cc49fa212596650b72b8adcb1abdc0a03227bbc80c96cd210207119db948f5a998ac8adaa327d7c04648ca51a5c832085034fd413e757a226c08ed1fce31c0020dfaa3b6a468314865d22ddacc3d6bc1ae70219ffff037243c486d80a3cb538ceb0d8c563b7d67180569f604e8ba892938c5cca1bcbd303fe610969d1f153cba36b7536747850ce613d5b373eec7cae885ef400186abe3e03022260f4594f3ae74cc51f3199ec039db7c1365f01f2f06a7d0c052f8ebc8aca0351716bab29e091b1c5a038765b4ed20b794c9e665a136036fbe75704f57974a3036d9532aff14fcf467d3cdadaad1ae18eb4b9972e16a6b3d608e2091773d9f40f03268194054f63f7628fb4bb70eaa25e642e95042dbf83cc3f1d597b2bd08d4d1803d6ce386bcb2c75c4cbb85aab63625a0a0f9cca598a28015820b9953496610cf10343d0a6c7680f5bf58d1569af2325129b7fd02d26fe3ba963b297439dcd155db8035f5856601b078eee065b8e97684f40c30929d406fab88682f24b3b19405991c303f05d69401dfbf5d49a08ea74c937d5d8029d0f2b90a40f560fe1dc7fada395c4039921f336ccb00a9fbd5cc918fc012850d3b32dd5f2088664484fcf79cdc8fa3003cf6f7ba411f52f7172e956b5fcb73131479efcf34cf14a6d6a24e5ce295802ba03c35508bf801b9283c653045a794d243484dfba659ea117fdd33a146db318747e03745574e69c64a7c20374b3b361d41c543aed0f84c8b35e1fbe8ab746df187da90382c65405ae3e8280b015f3a7cb7bb9fa01c29a4fcf022b0947869721c4a8a223032ecdbd9acb0698cd309bb337f618964c5d88e96554eb2843f82238c0d5ed712c032b73b27446442dea4813bbfa8176049176337d016383a8cb2cf8d84b7719ff7f036e04b1f72c7c2ab2ee33d33b9587dcc73bc0137cd20971977999d174b911d6ed0388423cc74df960b6b3afdf68b155eeff2195c45c9bb6264b3377b142257984dc03086d4dd8f2eee5eec8de05c94c6ecc21131f21af6158faacfddeeda69c2f45ae0351f887ce35e9531190c0675948091ce19319cefc8f45b0750062421039dffffb0362f672396240c0ee4d5f12b8f1198b156e7be93a9d6faf5bf2ad1e4e81db564403b08199cca9d9c584ab1f29e7186e252872529c6e8284d39de423d152ba25aa22034148149f1e546ebea182e7cc4cd1523c7852275bf87486e04c486d72a857f43d03299753fdd35358c6d2f319b1208f0a81b564a8c2679cf2b0b369afe3faf997c1035bbcfc4fba0f9324577b55dbdcc402bd4e45def541b4f489144ba8632b41dda503fa8eb0d5d7e196096df7aa028c808607ad3e5a5010db7487e448edd56dd14a1c03c0170493779ec092c574e976da762b94d26b76837df96ff2b72e9c120ab7bec103a8a9feac1895426672f3e8eabcb2d767f6277280d80dcb682bc7e2b4c1df12f5038cae0d86fcfe3184d9f868080553d0b53e398426acc98bb8dc2908cfac3c4dec03a7ba2eb6da9b0bf8ea61c978f0cf4158b3343895b5821cd673497084d7ee51d7032476823acd04d31390b61be84d9d4d7ee1077e6db4cf38b0fc820d73b94c07f000581e02a818348987efc21198638a43af425294e0cebbabe1f3c7676a812e34a654807a96288a1a408dbc13de2b1d087d10356395d200581e02abbad38fa3fc14dba397b83ac7e8a7bf4220ddd174389a427fd84435415820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc46535ff00581e0248b7e2ccdd56cee52699e9315c16e7f3f0dc33119ababa60cdfb8409284417d7840000581e02ec2e256dd7a246351e4b2aeeb0835725f8a68497b181b9542f1d7eaaad5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffff6377579e021924600376b5db022a1e327ba14625dcf5cc39dabc7f83eb6954052c170fdaddeb516dd500581f03f54df75f9e00e8edc3d82f43bb15e9658039b147de3d96e980f9bdccff805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffdcdf1bae03398def5974c743e0f2687072842f3f0b88654a88fee9d446b459031efe6d9a95035cec8bc04e48d6815da71d69d016d9903d542ee96975155d8cc68c9eb1999ffc03b365e1710127f7adf4b5462712752a6bdb245c5c5c85e81134d95a91f26ca32d036965770c9ae2ba0f13e32cbceb3189c23ba602d6de52a16c8aa3094e8a900ad403c8f4c3ddaf59305a1c4e6ef0831cc2508e82bf3ed29f65f66462e453b81dd3a60219ffff034985ed615639be96e10df371e6a66c8684532be11902680ada559a3bb6be8fa5032919ed219ed57d94ed821b64c72fd7120112b24976ff536abad6baeedaea84cc0330048d7eea39d13072061299da2ec0c3b3e2f225257f602ab17e8ea324028dec0300a32212da1289e0e059f092502d824e5afec1a421e0307def37927d50e0343d0378d91f2878396c897f800b8976b4b8a53c92f8a1a2bced6c6f3da5f5c871410203ccf7870c2eb61d7b7b9826b26f22a59ce28f35b6134b2b6a17f8610ea03ccf0c03d9b74df4a357265b0bd37bcd52f8adbf201e8440cc880c7ee32048fc3f9174480219ffff0219ffff03f46defe70caa3ec2369f6acd8b555433bc03ac0309557ff18a4c2b46ae03bd7503c0a85666dd9f8ecd319290c7164f448ed9171d0a3bb4bd14f269d67380cead6c03fd7af21415f3b536362fe22c08ec174463fa6b76927a36ef238de3cb382a118203eb574f331b57bf540181275017eba84eebfdc558ae987fb35bb70dffa444b00e0386a694826f9b1fdca1bd708782fa5dcd90c362d98a511c8085a72ac319418f6e034602aee70736cd9058cc05f992ab559649b357aa489426d20c80794edb2e366203d4414b14fead8b651a164250003f86ac44e2c071c4d292c0d96b5ce1be2457440313706f2cc2b7feeb0d0281be6b49d571b335e3d88cdf0a2639729fcbcf7605ed033c72c6475cabe5256eff9a706ea2afcaf92c6a37df41ec89241cdbcb8da4df7b03a434650d9dccbc5b5fac4c6c63799210db3845ea094d5f2255c93787c471c1780372b8a1c6fa2c40596419c9debe087bc52359340536adb6102fe86ddd6917b7c1033ff1add5e593f3d51816c15c43b2b2466a7fbf6876ca26f1af5093f96f4a17ab03d595d448b662c821660a4d8b1fa007b8d4e0bb16a5e33820665e28376da2c68b03c1e2206dd010b62a12ab5b840b82b8a19ddc8ea0a6de0a5a04217e6f755867a6033bc0b17fe3f1a00369cc428db10c3fef6f91c7b50ff5a47b00670022dbd5618c00581f03f1a7d6580d5e30beac6d07524e5247a307fbc24e051f3158e47d69d2dbb043edd836038731284e4a9393f52366c7ad329eaf00463c91122a439a1b0d99c76d32b701f103bd6b44c19117b7ef01d33db91c05b68c05815ca8beef40456c651e008d719191038150af452a796bb047a69741bb110b6da38925a6f4567651a53cf9a3e7f3b0e600581e02f45a26a4406ebe933c7eaa4ba5323c1e44cd08e4b191fac36e8c126f915820fffffffffffffffffffffffffffffffffffffffffffffffffffffffaeabda52f00581e02ade093b00482e4b4956c21f37bea140d9b71554fb7bc7fbc56ff683c4846523f94ddb0fc00581e0266e857e75bf3041d351261b9a972e806d636c3a3cf2238a999c9fa87654b4a817c7ffffffd9a12790000581e0259423903f227a5467686d97510d252ab58e1365d9e9ac65b5e323c451e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffeafc61fe3f0219840a03f6a061d56143657329dd4912c3c25622ac562541438a1df764e07db3dcde8b0d0318e5bb54a6718e69b970d2f8dd0619b3caff87c00d7f1882aedb64e1bc5798a10338561c61ce9e61b6ab7128af313e4a4bbcdf0eb4c3b7d7730212bcef91ab972c030a54165d2fa45c94653ff6b278a2c7eb8bbc2c959823f0255c13c212c1d4a479030ecca0688d0762b4fd212cf3be7f73ff5710e03e9570acd94507b95d5b5acfb303d5fd3444416eec47183e0c12c62970d56b4a4d09605533ead508bd60e15f9f30033cf59bb1ac1532fea0e5ea5a034a0c70f19049f942494345493b674573996c7a031efb5f2de98eb9d1816045d0beae3b2bd3c1d973d593cdd6da3df3ff55c16ada037f9f14842cb4f513e3e5dea52773ecae61f453cafa4388efc464ffadfacef4230219ffff033c5345b807fcd78af138cb6e4f4e0d33a34d427117b4e38dae77c24915fa94f8037069d96ca67d1b377c89a550d155e2c87148bdec3cfaca415965f49381b201be0378b7796f92ae3cdd7d3b4f60aa137f45a0e2d44aa2b7ad7e9951929c194b5977030c136bb0fe687f1937817c8bf981a7073aff3eb89c9130fd4a0dae740a1d2bad0339f99a743866b9d1f07e7c44baadb2d3762e8afe057328cf87258e2766ee321f034026e53445f2d033e176f8fd179962547b4511b5d5d324e047fc26d84c51775e03e5538e8f8101eef8a4c2dba6e67d2b2f566aab8967cab0a1c3e533ac9d7f6a450219ffff03c3b8d610625d48872ffc25fedba817aa997a6bf1821951137466b6aa62a3132103e07858eb275dabc1eb1db3b68bb5a743216f9b51fbeb71397fe73368f61ce037030ff001511e3a713db2d0ab5715313281676c0e023e7b439bc39056930a1c1f6603d4cf91d8cb192c2f5398a113e891b74367e94f5a6f459f90eca03d15bfddfe5403ebd7523e106f5360c917da6e95b8511b6d880d97a3f0699e31467d26b55de70a03e55645a69d740ee8fa03593b7c80e1be627ff761b5b4b4aaf4d9850b358059160356c3b158f30031fde5921325173cf4662dbae3ccde90d8e793842d821e771b1a037ced3e4c5a3b5c4048f6fd0fca6d1cca4036cb6e973ff81dae1fbe215717782103c633040f05c5b6d350ee78ab903edf29ce951e9da8b437f4225213fbf7a6d05e0359c93b05dc69f8a9f6220fa107c41489ea6d050d7150012b97b6f328c3deb4730219ffff033b3c04df9a7d27619c6c8897d68760a7f7eead373f1e932a0fd90ea87b02d0cc0350caf5db6dea218ebc3b83e75807d95edf6acee281a9c7802a2f2fee07bbdd1f03079ab3d8a821f747e588f4e5fbeae83147ecd7d4c0d70757942615da1c2fe8be038ce79bde1ac1589853d3c30cdec1acae183a3aba388eef6126d2fc5578982e3d0312af9d46ac858c498c5e0ab3f8ef53214ce159bd56be5bc17a24be6774e66cfb0359fc41afdb960844faf193e75fced5f65b91db477fc7fb480cea8acc01c4765f03230d2b97e06e1905660334494b575c9f843aa908608451b24383bada0488a9e20301b1c5208edc3f0e805cae8710ba368f197a14d9ae3a867a78522bacec1fe3a603f11d6e8715d528cbfc91f50a0a1b38bdb8ac000f4f3fdb2e1ba477ccb130e4aa0366a946e7fc9850d1975a03d48ded5838076b804933fdc6b582318896abe8f3eb036c0151fe0a7de2eaf07709b30676cac952f0a9628c52e72ba0d6bb406823dd03039b6643a798eb343477b5446716c757f60748e9e310739c0ab10a80f5cfbc92ab0381c0f7bec5b8d27281f30b43742083a5977c10aa8a6fe9c70ed769280038061e03c9e0d40106dce942d1979fb162db7db94f0f6deca53c83e592a2e139e7c6963403ce95ff077762400e4b3d206c4a24bc0377b1990ea2ed364131330401f0cea2dc03f93dbf56e0cf09329b21f5fec94d1126abe3ddc1d5c87f6ddfcfd669c6c63c3603855e8c76dd96229972f94c6c68001cba1ef8f4abc48a6b1e814321c95f24959203f83019644c48dce42fc88166bc8becd953fde0cb9461e987e25d918635ed33c903397aaf7f03edb774a6c353343af45fa8f6479144ebdcf2b7e351c166f21f468e030d9c5cf878b4698022506a6b2f829ec9d46b9ff981a90e6e95ac34dbe2b9d5fb037a35428ccdb1f060a30ed3d30e923dd70f517126ddaef9c49d2ed54500ec1ae900581e024c7e0ef0e5392395ce7452d4e5eb01900919f7ea753570abc24763692d4664dfd8c004d303ce57e5edd483c9ec130333555cd60c9d3082ac31dc303830ada6b26902dc100b037abfed7573ad322f5d2171c142351733c704e3e57d3d2dd63cf21a8be9416a2300581e02260608623466482f88cd4120ffe69d5e8ae6875361c2028d7c5b6967b95820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd2393f00581e020d5ba211db4292cd0fafab9264dbdbd95376e3f2f2edb44a004868a096438b92780219d08803da5ed3127197e6de1f3273691d8e4403d1750b43c89eee0737fab3c6f66e573e03c8ceee3f94412ddc73a584b262fb065e5e4488cd4d75c01a5ff3a75e16a1e5f1031ae572fd780422acdf8e84c36a25dd3b033651d2aa3a5c0d8e2ad6c258abadfd0356b1507f4f284e0a38b2236ed687625684110b7ad2c11bb354da6c1e7d778f1b03ea40befec3ca69fe72c5d0f7f1bc494e9aa1def16cb57c2d2dab41d0320985960382b7515ed487a1d3c80b573290085152f1475a9b01bcb7ee9f911d448971871103992b96eaea2b9d4bbb535cb4c350ac84ed5d9280dc133d0c8aee14e18edfd6ce033ca334630a87bba2b41bb9eb9c4f4d2a28566c82ce3c18d1e7b3bf9adf9c226003fc28a661ea73822de39a545dce416aa7ae5a57d9c71bf86c473cf5fb867ff7870390092daee5c065cecbbb4a5ff361bc8eccdf70379c17c706a17f4ca23d9333f60329801babe50600652f9d924a99fe4c26cea3cb72abb004e1b0de13a7ea8e310f035f12e957aef9973cb13e95b3922140c3ad9e81ca5fd6e51a3e2261ea353ef9a8031e3813001307be53b78d8308e75d52ab271ed4d72bdf5a262462eea898d3c07a03977afa15094877cbd3b5cd660be5bbf09d4a680a94785b3019477d18307f2f6a03305a4c9d2751b3c4691d44dee0bd98a480c9324c2088b3f847909d758b16e6680219ffff03f430a99c4deea601bd9d87e98e970a85efa0603ca520c531a3692db02de2fd8b03da8ed28c6e127ad660ac5297c41b0a551eddc08136cd13619f09f3eef3fe4d5d032c4b9212966a96e7f8ff5183b2d470b6fd5e91e4517dce02ff689cd548f861da03f6bdc935a4d45f8a36e6f1c4ff09ebf3e84051f300b3dee4491495132bea7c3d032a39ffa2692882d5b034b03edecebbe6f5c5165fdb4dc75234cfa1f2e4c6d274036e5c5ccc6c4c891ad349d4eb307ca3ec35c2e95a85d180e838f48ecdb04ce3c903c35928bd1ed011dbc15aff12a3946839e004c11593fb96bdbee8a59ae42d3925032ea5ea234c241374bc8dc8da9cd2445ddb8587e6f8729f6eaecfa753763c34c4038915aae1f5efa85dd18f785d4d805673668af4c2efeb7a10d35e9d05b13d2310033ab00a9d80f4b25eddcc31c658ac3c7781eecd0ceb4b516d8e463e76cb978a950219ffff035f387c4941e58c0f920dd6f329d075d459db3dc55f6644acf19cb5281127d55a0219ffff030d9fc0af42f7606e965acf2c9db784c082ad9b876eeca11fe5de25bbe7851b970302daef960e2011ce2edad8f7914eb28f24033bf7b475165480a07ad0307dd29903385dd34393ffbaea6bb0ab6cb42c74c31f59b49513b070cf9ad796ea42b2bfc70219ffff039d649b9627c79cb1fa2216fdab7ff18c4b349cac425e8bcdb68f0181d5a4fe0403fd98e56eb17d1bafdd9a2e125b060f9d54962a6229d1c9b918ae8e19f00136a3038a659cff7a8b5f5d5d945a6677dcae201e95c488f4ecb14f0df088da7d47df9503b959aae610b5612718b0a8dab3d3d6f617e50ffaa13c7a784cb795d39ac9b2e403b0dcc74d78041a0b7abae585f5939b63fec1feec2d3028f7e41fdd6fc9971a7103c8d36e9e8a33a5f0f4291e725a1d35ba16214864de3806a48b26eddcb3e18dd4033fe5f2fbad5ffbd2328f636a0aab647ff69e5c35407259a898f8a860c377da1903e5e5b1fcf1c9927ae76740ad055bda0888b932aabcd309baf0bfc703f859b2d503446f2464e3db10e5cfa7c37888c2d9a5c1c28c341cd1d8683d7514815c1f69f50338b265e0d21d6c3314213396c2a90d7e1b2668a1773e84bc1a02fbade7ee8840035e33af420b468766b375044de2cf6f97bdb5b2c9d47ed1bf50b19cd82181d71a03b0ac9c09b8d9f716247099f2307b3ab8e90b0def132dbea5fa39c2a2243c61b703293ba08176bdf072847a9495d722bc70e330cfc66267590b6dbd6d04c012ffad0388ff5e6c6aa14d8f346f47431e9df87ad98062ee052e9f283c90cc50eec50dc203f2b477038edfaa5443e1caffa2eb3a27f594d15c4c0253d5d0fa4001410b69e3035bb383f55fc2e2ebda8ff6202d933aa450d895ec189707c99ccd961a0c422a0d03d5341e3b0c6deca6797873c88dacb6f69d622f05951564bb98eb99f50ba7ff900390ced3167f61a5acaa7fb36cdd2db0ca616357ef32bb31d4808c451d7494815f03560a28c34fd3ba566f52da1dd7a480a515c9e724931c574ab323fa51a7556c6803c41832089a2aa0ce670362e293893146232d719ca7c041c13edb1c107df0f36103af975b84769c930bfc057c7562fcee64c45e3aac58c93e56cabeb338402e9b9b03a4aeacd1dbf2a26d5696613d2a3207c476b821803036fea9a81a0c40c5525a2a034978d1f8c72ef9a0ce130713b4707ca8dc00a52aa18c0e83b276ac8c71ea11c603afe056b73e1ad844acc24eceb5e6881f503253829c51a0aa3364b942f4ebcca203d7b28f66daf834b1398fdab46a7117798ff4c0598de8016553f4e46d94feba2003bcd6851ef5caa4c5c57714ec0c6927556bd1aabaa77f84a67550f314a2e5bd0f03220bd51a41438b9b9568f72bb0a9ce75cac267d8c4bd7242a5919267fa0aafda03a95261339dbbed89c58117c2e8727f562036da500459ef0bc8d329c97da0828e00581e027abca8ed671ba1f0bfe61aa93038242cbded515173ca2fd2269e3014ae5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffb14784c73200581e024c6064e55718a2826b7baa66b86bc03935ab614dae4df3829779dbcc905820ffffffffffffffff6e5d2d49dbd61e236e98bdcba76f3b7697ffffff006e10f600581e025d80a2e9c0c00a0739e32bed4f53a42322cc238111140aa0d5826f08ee440639cf2300581e02e5546b840c7d624cf0bf21192e4f88d55ead6ac041a25863195d6abf4d5820fffffffffffffffffffffffffffffffffffffffffffffffffffffffff49a6fcf00581e030fe4172f74067bf9a31976088ae7979bb47ea481458ab977f39a0b46a0442662a90000581e038245edcc1353e7cdfa7180fd068c2f05e7b00fe9492a0a7f7d1cd7eb005820fffffffffffffffffffffffffffffffffffffffffffffffffffffffd4489948b021400581e02e0cf0197782815290d155088401af625c3c3436739d750e46a69d42773440525b67500581e02dca8c1e74f65f2e093f174289fff36c152753403a5be2e890a3f569db3440102e3bf00581e020daa42d39dc295292186ac07c5d95a27a51b562c19b6210f32b0972c515820ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7a6598cb0387120f5eb827c3796feaf392ac09babe2d3362a1dd814565e1b7d2f88e178c4c035605a4df81bca6f6403407a73fa0c97fcd135cb03821b39fa32f899c1b5615300219f65c0219ffff030cb7ccad7703ef238977521ef4962f2a2887b28565a11fceccc59c648024985203e4290f01560b06e9ae954fb7e976c0dc75dddea11f13168387c2623a30f06a4003b88be89244a420a54ff0e2d5fcd0346fd63db747b4dec97e1a1ea9a241a7bdd403060ec109e357f8f7fef74b26e1dcbd99ddd74526768ed4fb5c4e1cf13b053da00219ffff035ed32c0a894ec190c46f3a278e87f59b9caa7b2f05218f14f03fc6c274c240e0035c78df5d5d8d7fabdb188c76d4097eb5c0b31e72ff0e1dcfa6764c61b445d0aa0361bf8f87b6bf78bf1748990feed505d8d41b124448849cea990d585769e6f1a5032e87780cd64bdd1027711d4f2d3aed5ff981039d50609a4e9ba1133994bddcec03a4da1973737326b9306e9ba98e98fdda3b4b52544f4e85accfe862b615b1d80a038dded1d932dba5a98bf76880439521be95d5ddc77362afee18f84ece74724bba037f5525b4549a5a5229cd018043358fe3198cca9ce7117f13c914cec7a65b836f03a5f63b50efeb0b955ae5a92548d285b8ab62587d827563a78e09061b2b3332f603bcba606a8f403ad539b684c02efc1037d0b0aaa662949af2bd4345b1a8b4b6a203d498519acde230639f5807dde2db7671d6dc4d6b391f84b640a476b2092d00f703a1a3538ea994833e67f85c154724649ad3facb26b9942470fe50a0f9c1fb4b1a03753aede75796b9872f202e844284c286dcfc77f2e77b6dc3a1b1d0b5c8ef3be4034d74666beb3344258e3dd2d1f0f69a4f1b75144b21418209dccd7844e31161200219ffff038e3594fb847d149b606ffbdcde73b5280cdc76c960d0cb83d7affc80bb9f66d303dc939dead0aae9809700e4ae0284f678d77e102524bc71459117a93c4b5ba79203ec76ec7cc054b8d4b09c47519bfdb4317cccc20f4bf1d9f15a60ef9b4380e5e803950fc523ecca75bf01ae7e7e9230d95fcafffb2d88f825f200a9cf1c9193384703607a875c012bfed1610afb087a56c4eab3fdcc84a4654fc74a935434bf07725d0320f57888f8e9bad15637ebad372d2a4e3f3473460848f77e0e2b5095318ff5020320df82192f9fa0184f4d727b180aa8008ee9d0edb0ba00c2201abb2e323052560347b3792ee44a8a4020028f085b9e0dcbde70372a8eab0278d56c2969b3d423e7039b3487d720552ebd8ef259491d5e70cd0b990b583c17008b81f3274e994779f4036f535883141a400d5b44050560fdad64c14c503cbe4beba363cc6b512429289203ad3a8274cdecd572db77cc235b66963ffb6c69060e1a0f4f285387f6a3a19e510322f17b0ac05be0d4dd8522e2dff82cf8744beb2f37383dde79f4a2b383950326033ff98022aec666c924b05ed79b4cd216f942781db6dd61ac80a80e72193549f10304ebebea7010ec84dd0ba2612968af68d5e193e2ebe3328b7c84e3890946dabd03f64f63e53a76e50e2dcf47b91c002cdd7eb6189150a9b9f11fb7690164028fdf03b82dc08d0eee3148cc3358d44269bf7d3526f0a889fd13fc92dd16264edcd1f803b4013aa404f8d55e64b894d73b984faa3906d6c704e40bcdfd053853707582e6032e62dcf09e020e6092f536b7c83de9614b6bc36431305ecdc6e97002468686b8035ebf544cb01ea24a65d4671bdebf15adcb87699d8839525cd466d209dd1aa3eb03b646954f75b281ab7efa5322a6376f82fe29df4e00de069a1f85da53416f31210330d4d110cad2973424609312e42131636e908f00fc8d62dd171108b081caae6e0349b1124d15bf0cb777293b0a2cae393ad791aa828f57ffd7e815c82d701b8cbb03ccb523cf1dce361a105878421da657fbf2a5b9193451f2eb353a5fbfc64514fd03fd8b7cb5633a36ed0d7bbb1b6963413a50bbd8f3f001976c8a22f488582a12f000581e020fafe1e42e8e3440db523d40458b01f8ad94547773e8e7b23e0009a2545820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd040ff00581e022d3e2970be30167ec1761db36cca4ee8a18685fb033b6584e8907475a45820fffffffffffffffffffffffffffffffffffffffffffffffffffffffde88f791d0399dc45f3ea59e9e6fb920966829342c84a04e3fbdeefa0b50c85b7779ad6433b00581e021e7edb1b6cd15bf4d3249bccb269bdba0cf5b8f5c40b1ed4ebb270fc6a5820fffffffffffffffffffffffffffffffffffffffffffffffffffffff28e4e633a021988a003c112fa61ce47db4c0c32017484d09c88d45e838d269a14c31692e3f04d19b6250388e788f253d8a42dcf2b3e14b560e569a985798b60cd4df23ff28018b2e415d603a562c028a1d77c72171dc98fe0634bc8116af929a88134c1221fd7a02268e1a603288b0f010bb320f45c5bed981380c36d3acf2ecd6091da3d2d00e197dfa70136036953fb3a129ff29854ae38a2c630b1da42b1806501b8115a11337e67ddc326290301787cc2b81caeb75fb1695395d29de8cfe712fe4006cdbdfa6184242eae16fe03fa952bd50b1aa3cdacea2400ef415bbe8cc3157755230381d2a9bc5bc88ab84403d0d3300da1c65ee868a42f786ded3b939f9cf2fd89e5d3a5d25ccafd114b2ea003869fa8ffc5cd678ea5bd5f747e5f3b5992a388ecb61fcd1b1068c2e2feec0876033d32b4797232b03bf43f6a350ded2cc8f654d9f79da6828a74425921e0548a780219ffff0219ffff03638bdb3a5abaaf44326d0ee8f64248743baac5863b7a2b2dcc3163eeaa4779cd03efcd0dd79a02f8d253095a982217657dc891fa0558c45e8e765cb10b3a4046ec03d5172aa7bff638febacdc3a4b70ab0718b8da538eedf0ba2fb4bc19ce4bc162803f1aa3d80de68db0e6ba102c367338493f5b5f93596ce9d8551465b98d7f7c78e0388d9f5f61ea86eead9076e0ea23ecbabfc43037aadb61e61a24ef11367374ba1039989d2234b7b48cb2af7ea0e2876a11c5c636c9cc73bf1acdb59c1d5dfa89d640318aaa589b1aa9fe5b755c6e4ebb5b3dc38a53c16ebe31441af269106442bc5a1039a74f39dafdace802388f753bb4256e494c0f6320cf2c661f69c952424bb293603930629e086b4a7cef1c5c1937696cc7a71659ebc56565c4857a128004894a6b0035b00d7826453ff09f0ab889482afab4ff141036da4f2abf86a146e492ac0f4910396c018f773a95fd0a86e6d23f212ceba0be6827f94d6b9cb6634bdb0260a00a20219ffff03118f3032280c33af665f015e108a98db0689477e60f9e33f151ba4e9cee6e6440376fa5d93194363eabc8fb216035d6bbd0f47295c032751986bfafe4b9e080c6b0361909ac889517c451250a6b23667dfd2f1caeb001e0bd292c68668a0b4b91351039df86c6c8f45cb9832022887b939206df597af82e934445d5d2f1919ea75d7ae03844eb61012309db2c7ac2dad172b61107246629178b0caac5b23831d58edf10703b9f7a50fe0d1a1763d857ce43b69617292e0c8262a2e6f1d55403563428aec750310787f0fd0e1fe2763ec5f9b96c1733d4f0ace6b36dc0bf5988e2ea31970769403db58b4d22f81af458ae1e35aab1fdfbf339ee088e65a251727cb70e92981149603ca49832610be2aea98eb35d7797cbf3da4407edd1ea042f2868e6c7b3d80355203e6a80870d1d7bf0bf4d78e83bcef4cab5f0fb0d2bbcfe5e0da668c2e8c135af203f2bf860766a431824c3140054b95d34fbc74744aa71d35fe67de8aa713d035b3030f4172a632f42272bcf8d6c11f5fc380a92e77ea88a9682295535e41611b8bae030a9dabe2ba8cc1ab16d2fb41b0ab8b7fa212aea7cab09c5c72ddcffbbaf63d3903ece7eec65cdb9183e37b937892f3f4b416f49b3be8760ab470e386cee9d640e003fa0c9e6376ff6d8b1dc0d6389c141236989016da3f1fe4cfcf88d83c24f1398303a8730b0014f01f9b68fb8811fc437d6f4f618ed46d5591b1dc97942814157bed03e6ce06c6e739c23dae345330fb49cfa530a9d3ae72d324ad69a67cb05753532103f0e26947a53041bc9cff452e0c283af456649cf9d5df52a0c08b5a41c2c014ea03d06cdce90fca47fff520e2401bfd88753733cc2e7d596bc41bfef440f6a8084e03f72688eb52ac230686e0624db5380d1b3edde0d6de2247c40c8f95e7b9ede29903807ae2d7581d34fe443987af23970ba05e984766031146ba2332bddc3aa0d5fb0389ce556d5ff7c08814044f30e08754884d4a035ddb84578a39660e09a041d82703e7323cf6eabc523713ed5c773c539747a26e2771f2ea1a178c3df065e0bc776f00581e02cffacd40ad8126c3fee32d59b3921e10aacafca07cd96a6d58649207005820fffffffffffffffffffffffffffffffffffffffffffffffffffffffffd04d71300581e02178ae26869326c107018130cd3203f5aea76b0a1a37e9183cb237d43b6451efce4cf7000581e0247a4b7eb169d50e389f9777f15b09f77f1c89c5935c10253343528982e4501edb207a300581e02d106655ac647f8aa71fddcacae92b2c0f27ca81942c2a22502ea1a4bdd5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c9d62100581e028ed6d2354350aefebbb189d0cd6a7cf43273e42595a7070a92d391a5fd432dc6c00350f579c5290589a681d761c7e8d09de4e9350cffefee8d2f5c04c40056ab391802191c4a033d09e009da9639f6531770258cb0d5615901f58cf5f6592d618407e42a954e4303e0716c67a7819a9d8764db5a01756767b6225acabcab0baad2969c299ecee2b203b8fb810f52df54c8bf7a21d3c4b2ea54689a305e563ac42c14f3a11e0e2808ad03c5d3e92e0e300f389fcf92c352d672f0bedaa8a9fbb2d5e8ac44df0a214e8c6903d06ede7a4c2687ef48a8b3bf4ca5b25db4983909b285327cad3ef52c5cd57de403d571aae8e6e94b0ff747a6b2a16c8c48966fede0ee6a4b41e4c8e593795b906a0332cf57625e2334d78bb21aa3c6c7a644ac9dc21aa495fddd284e618f6008181003f9c802b08d36def789c306b3967ce115f911890dcd92a38f3a2fd9b315ea297703ce3122b790dc3ebb79e26b60e1c2b32795d1cb711c5e33aab6bdb85ba6719c3603c75a23182694e0f0241be5da09fad63bbce0f296809b38064102a409a41144d103edb4e335da76ffc80aa75bba134ff7944dee45daec6bffa49bc44ed2a8854fab038611b7fa945e6d751363b1b4d71bbfa32bdc79280fc647dc642bc4fe3d92bc3903a2c46208ce4f74ebeb9f667a23f0bfcfa26a85104a1f5253f422915edb192c5c032fca93735f5cac3ea86b1c178f41d6f9aa3f815d8e5f5daaf31b743ea47c691203dd042e96e1270099345a147af9ab03897ad0a62d447a5de1d00bc104507490b70219ffff03af0d086350651dffaf4c6b80547d2341a66825642c3014ee76c9af54f36594d70332522c3107dbcb705be03ead477d409909f9a716ae21876abc15aa485cb5a49a03f8a4643190ca1eb8c1d8576c886052fb34a03be8bd2701cbeadaa10f07a6bdf3034b6ab51a062ed45a0e46f50b739d96ce375c7c5290114a2b3b80d2d3a68014630324dc652d8eba894ab6da69ae84b1f7d79d8af48f494107eed5487caf1c3025e503982bd5f60a2626846a3b0afa1ab904e975d3b72eaeec91e1b2b645d59f0ffecf03c69027c15d3230d73da1f49ac1042f96b92e22e13e50c26633be2601ec018ad003c78640262e9ffb614ad8b8bbe02ad02974f583cf413ee3b42c3e16ff15fc4a8203364e2e4f749ed56dd7655e9cbbdbfb471bbb9cfb4abb298af2ce1378519a218703f7f567ea6a1536d269dd7db3780f91b7e43187fd8de60a03630da6fd97b743f003b75aa6586a55201de5c18147f019f1e8c43123c7c667d093e9720ee121fc6e65032000f255964ebe89ab6de1bf936e8ccea73be1b302d63ce50a472c01e5665eb60219ffff03462ba8e47cc994d0deb06325ad6df180a5db3f2f0f25697fd1265126124e3f2503892d06849165b3212bebedc694d75fbe4a93acea893abd4587a767a7dc60c83703c4bd72c226fa00f04a5d3572ec51bf95da8aa75ef24c92470ec6760ea32da42d038f93f232edba3b5e77e086ad6f8f5a7b0c5be9f790318a2929cb66c5f76cad1903942900f3c1a155c2edec08e2d45428ceb127c564c0fa02685a8d77c31b502a9d03984118f56a169ffa0099f36ffe50b1814226412468804fd36d726bea5de87cb203cb5fda2b95e0216d0a53d43d128be6cd20670dd415434c2d7c1ec6363dae31ee0371826433c30595a4d1a51b06cdf05b3b10f976ae7e565b064f53e203850a48a80219ffff0219ffff03500c83ba071ce6e9e82337a6c4e942e55c6b17be3c7461905bfa01dfbfa26dc003c0e39390c8a7b3fc0d0d60556d4f0728eb0288bad116330509f5411704bb5287036bd25a9f5e020c2db84933a560608313483fe5713bd34264dcdc0172d1394f3003d7298f345f4486d466cca201d86df10c5a4c5382cb94c965d273c59c9e4987d103caf3c1739b625d7a8a17cef2193eb1b560361176ed75dc52b74102371ff12cd3036e87ade698687afb10a71545642ee481934295eb7a23db0384918c4a599298d203398ca1da9165c5b1f1bab0cd5e71f3d03592a803e09fe9d6c7b4c6ff90b90210030f063be4e37334faae89eaa76b229d7340547094b0cd9796ab9d8d8a4c595dc30367a7803f1ac97c587200e25d2576101c29f25f173b899bbb184deef2a8668d87036131a34bf06ca45ff6ffc3203b134129f6af5481366adae3f16beb836a5cdf3103427a88a2c3bdc62396ea8e2701748c59c806a48dfe18756c8d917e47d7c7746d030f299cff2abccfa5c25a3a3ef0ba4ec0a27cef7b983c4377df4aef85361cfae303f5f1c713617c44392ebf5c815dabe4e28ed14acfa7ed8acbe43b0f4039bfbaea0317d069d8a5041416a3fab9449fc32b901e20cb65071b8a9c8193d285452ef0a5039afffe97cc965cd330397ec615598854dae747e7046f908454caa5b7bb876745039481b6b41968b967b9b543daefb7fc11b2ba4c0895ad1128f42e296ba5318e35034d1b3c7a69822e4d736bf4f907624d753a6d0e5b43f09a189a9d407b00b026c103ead6f0cd70b00484ba3e0eba1a1cd743f2aae9cf4d34a7ba43e7d0f8773b73b803d4ca53c5b3d8b82dbb4d634c905c88fcf964fa8e5a840bd27ddf0f95fa504077039ac41f6e52494f3fcefc3b4428c65977681ee311a38d1b034a6ac5de45bcef0f032a2996e4f03017aaa624772bf15b9d6a63cfb25983e1fa4f0620c878e4721ba403331bc4d247a4e323aea55b71e910fdb245a194c2f400086e0cbefd2df320d9400390480af487724c398baa23a9ed4b4f15d94425289e0d8d914c4a3cbeef1e204c03140bfe785c49daee270f40c92750f52763f224c9b752ac41edecc46cf73fe64100581e020759bc4186de68861c75a1ab7c0d118dbc7a84155b947dc08895db6b115820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0375419b2e7e80aab85f775e3f651af510537baa357618d1af123f4eca004406505bca00581e037b3287ce6d2f8068a063edb303b7600c1790331656e2e20aa58753f280430baa970219240000581e02e52a923674b3b912fbf820fffc31f92fd8d5b40143f1fc937dd423546c440ff5698c021829037e806826fbce15608f0bd37e80b3e3d491774ada6cfd8bf621cfa880baa8eb3d032f599e6cd337317cddd0267ea69647076d15b7acd4b6bd850282a3a05750a5b0038ac34829dc6a0619b30404358745e8d97eed80558f191ef43dcfeacb258d061803a25f74c49b92d9e5fbf8611c1cf84f667c895930a08a34c19a8bd21b71b9041e0380baf534ba935b98724f637d0de0fdc68ce6be38efeaaec4f4026565fa7e58370381085795b6523984b32315e223630d020eea43482dce120856b4aec4ea1f1ce3031dcfe604f4f1b1c4d12d82927aa57f440e7ffe9a50141c8e22e5e8d26b732eaf0219ffff03d73f7627a1b01c89bb177876dcd9283e0a82006af7ffaeb5055d0896b71c136403455f78567e5f1968703f1e1995ab91f1eeabd6dbc2d45dbce7ee0f7e46b2250f0341f94be24abdaadaa5c06c3f2114d76fee3e45c0b04f36c93aa64d48fb8ff5b9039cb0bffbe5fc7bba1a3c7c1011d3e02405692728422845a608af92aba4d291f703b0bef312457a2ed5f02297ed4cff22b9c484247031165955c077e37be743c30d0384fce322b5fe4ecb1d7a2bd255f53fd66a6636740f2b92de09611a402ee041a6032b5f8abce8bc13f7aa9f4202963c56c35b5816fad33334d4aa955e813e7abacf037cd5440e1a82376dc5972fbedda33d1a36291868946cde756507231e834985a803a6f67213efd819fa56574534cb41cea4a698ed72b443b97f20e1e9cc64cfbfb603bd9127ff60fab5cad17131afdb9fc429e9912292ed0c087524a4f8c55177a99203df0518eebb331906e6722b84c640ae6679e36955367bd743f2cad4189e464d81036890d16ca8df8a7eca5adc533dd9ddb86bca8ba0b1674bf53f2128b59dfb1aa303196ebccb8bd7d8e2b226607e59be09753aa72b9e3246678e713ae9864babb6dd0219ffff036428b1932291b30a370d8c9c75bda76ab31b6131400f31a051f1f8e9ab4b75b403d50f077d6cebe6d8e630a8bf414042eea421b70b21274d31acc839b32d91ee6e0219ffff0394fa129fbe03337fef55c7819fecb7a86f11cd0fa6717d9b89047c275698aa9203893747c27c4fcb548a9f171f946904c5ecdc14e071b53060f2c192c79de398d10351408f079f36d165ed2bc6b22434aed67698e846aacd4bf1c93f6935910cadff03e149f1e9246ca6cdb62f2041b01150985ddcd4afa742efe0228b151e23f4c4440306453db1f5e4c54a31857304cef775efb2653c661ae7b96eb9af30218c23c7b203b7f1ba63929cf443f2f1cba80639c767ecd2c8a23250c49b7b103e74994e963d03003cfda2b7f9765a2f0c7440efe4b39c1dba9b8acc8f870b8b1492229a97d300033a1b8aa91b88539553010456e363ddc8b5b8477feae5d001a7cc8a560cc809a803c6cb18428254d2981dbdce21371d4cf38154e43735b498b4e7ae5a169e3e7be303c93c80de5a7ab58d23e97ee147f53fbf46507cf8c5cbf73ab5d9b6fe149ae7070369f26c265cfdb2944c44ca49e2dc70c35ed8c8c6c836acaf2e0e51ba0382b3b40364369fec0dc347cc4219abd1b0d5926378c805d3107605039aebcfe55e4d243303837b5c850e0ac74ca792be7a133753fc3acb9e2c7e9482797d20f620b3c8886203d9c51cd9ea4c0e8ffa223dd4196fc9943b8c0e18260ddcc5342b71df2be8cdf20355deb8348fa2410c4ffd6f5ad81bcc4612e5ebe7b3eade434610b9476f972ebe0311dfd945ea87132fe03495b73172e90169a6fada01321afa1cb46b23cb8a283103e475657e561c6d9f79e1555e58ab31a6c00af637d3b98b19fc044768dd69d5c2036a24749437462c630a4fe6ec5f9277e62bff67fbde2ecccac926684b74a4eaee031c11b722f8bb8cbd4b4bbbe77ef0310d4db1b904ec889dbb490e6bdb773bffcc03448c84e28ce9ff665052e9fb2ee6fc73ae563f8bdfd6c579de0454fe76d94f5f030f8b593089d987fb4c047befd4131855779cb87b93628639552d8513f77ddccc03342ceb75f0320672904e11b36ab56bc697c51d0249881be403336f301b145d7e030bd9d3319b446555569cc6dea8fa5e901d974a44d8236c7533131049671da1e703dcc19178036414e566a98e82d252d627945b99e1f25ccbc121fd76d577ea4d90037ea16af07efb8d4ec3d53db3052263d8504312178c188075a3914e1923116d350320cf392402c62866c4c4f1819f20b37bb8571694fe4966e151dafb2b36696fdd03ce1b0f04b94ee2e892c59e87c031e8770d7b3eef9cdda25a6daa8ac4b6e210ce03e73006158bd01c8c4842877fdbff77c97d3f01bcafd44850d58e6a7b847928e403119959d2e473883c01088877049881ca5737fc3fed938c01cdd46bc8568666b10396e6437293ddced3affbb0c0dfee1d8fc98acc62c8263a2bcbd244c9ddb88044037c1365853bc96281f01fde365ff69811814245539576404a3e64bca4dc2c6bbb034c9acce3eebf59e4cc878a9365cf8a033d9dc79716cf7ef3eb817d1c771631e7035b9865db96717fa271c9bd030a301652168c6070650a3e8eb3f50c1b7396d49f032731615c23ee45977b9287900515c566623d87c84c3a7f3f7e50c24a3c59d29c03839df58bccdd6f151a9e5d9ead857508d07b7362e66632d0421a684ed8afe92a03a8cd32ce04e5cf5fb698becac9a59246841e2149491cd2f6c39cb9990bff8fe003d5d429c862ff090a460db6af2c63a9a727b63640be15b77d527e55e780d21f6603c0588d228051ac522f4298564d4660ffa9ba450dbfa0624bb9a3ae549347b4050386737fa3ddc01d8e1260028cb174f70b601b48a0b20357d742158e0c0d340f24035fd6babc4169fdf022b23d5975b8c3339beb07a55f4ba9d1c170d643eb20e2b303332af2bc6d9c6ccde14a4a0522a5244cfc099b273c72e82ac520a4a7a8fab3590302e0ecd6b4e86569453e183a85333a9318b3d5322a49f3f7d3d5b4a6b62c205003cd8c7d1fa710b348dc222a1c2057d4622ff2a76ac2d3d2da36afffe2acc15dc103edb8e039c951be949d8bf65e0dd1e9408443adb7d054b24c49ad7253d21ff2cd00581e02c035970c88d610c3deadd44f18bf0724ef559e388fdb1dc17cb6fe61264313951700581e025e8e3cd4fc47d76c07d65185f5aa4b0487ab34808e29fc16226a352a0d44244678f70335f94c0fae6f31d5b33efe5a2cfb887d1766037641875f3e6bbd514c5cae931a0219092003331561de95dea4763d39d25035883a1fa9e12e6878b340a562eba00bb6e8306003963fe3ff32f49066b062dc76092abde87ff0931536251f08a7231904cc8f1c140387b7639025daa99661cba0009ce1d24bed869de86430fd3223955d00ad09fae5039e542d1df6bd5df69927b1072adec66e0c5bc9653238303e31b91be45563d52003555676a15092369e117807be9f6932757f2436598cd3dfafb2d4089af5d48d580219ffff0219ffff0396b35119e8e93cbb915ce3b076089f04f53682e30f397a8ec9bbb3af21ab55ac03e323001aa88666d63c403629793b4c8ff7be0c63aab113597e3b5e63c8801e790219ffff031b11b53e19a74c3e6b724bab77901014f08a7b1b7e89ca453ec25d7d59105df503df7eb26f659978ea5f95a2176ab13ddcff9ddcf874fec0a71a83beb83918961703efd319b6aac23ad60558cccf1c7589c2f1880fdc2bd1f515d16d182f7144c8270331278bc0fe06785818b886d6474347561848f1530e6ee2cd61d802df38861f5203c32ce9baa59df685c484d7594382951f34c0fcccef0f0de0db5459d47e27ff30032b6a6aa0f6263a30b0255986379ebbfab9cf87a954943452e0b12d49b569773403a534f4cd82314c23f425d866db03f9d054467b97cefce3823ee7c61a543f5eb4035864470f256487304be2f80500e9dd7974e82919e06448218620ab66261cd965037591eba285222b813dcf4e698a7dfcb0e37d040584f947aa871c74820201378f038b6be357574971b3214cb27c04e0d0babc071e7a3738afd2385da49a040aed9603b500fa90fdcc8473ff59ddaf53e1af88b9a227751c4fbcce1089ba9fbb961e6d03894f7c8c71d26fc6d8f1060a1bd577a216a8d1efa0e29c9f66a463c8b3b7d9fc03a9a8a4b1e28429c578dacab3718c03c57de3990b73ae55528b47450101fad50103356c0f59980e06b4dd189be890267f829b1e71efd9fb13a20cc9f5b1f1877bec037e7f883cfa04f69d0915474842282d1a24ec5c142bdf97773cd53cc01a9ccdfc0365ad68c7bc824615282b8f0423585841252e97cced0632a1ede6ac363511ddb703fe10a2303eb5dce9e8bb472e4e6f395ad7ba5541056e5155872fd284bde7c51d030199f3a7f3f035a78ad24d009b5521f5bf92805ca809e28d0714e9737aa4410303a8b156a380289565da0ef979b8161a3c16f4dcc014ae580cf9284c84eb8b28380352a1515b9e0b461fa369b3ae2f003b69b8fb8cab87b5ee17de2d4bca12d0fb6d00581e023e9edfe0972ff2c6d0da382f0db3d5eb6a897c60a4c173ad1a225180705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffff09b681b800581e02466c0dcab700c8ffdf1818c4db7f67fb16b68580b759516554cac7ab125443506849d7c04f9138d1a2050bbf3a0c054402dd00581e025d12c224c54a6f8f2aa61e0649e0be7d377ecf7aa8797bf2ed54bc1c055820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02280b6ef72746bf93b1bec6ef41cf206dad2afc0fcbbdc7a63fe97c3aa85820fffffffffffffffffffffffffffffffffffffffffffffffffffffffff15d7b9402191046030230da90dbb296f36c6bca75969c68c0a93378d67cd3fc8d6ecbdb338f7fe3c40302312958ee3a4520be2986a19b7056e58da0e234d77e7dde63583644ab8ea2fe0391de9aa784be32dbeba3511a825e749d7f8fed9d842f12a301961e9e5afcef6c0365f9ad6d524d3b6cc405b6ba3b7fe6afffabd89baeac0d1c284a70b06ea8e2a803badba1e94da9d414ea991562508b88c93c4435a848a6cf87bfabc2667540b89003412aa50fd6e7cb1644342d982bc884f5194f25c2176d565d573ea2af9b7d88c000581f03fd79470793d024e6ce11fa4302b6c00dd3ed397b8968a99d837c45f9a8804398968003f2529f7dd28c690e44ba05686250da407c66e1296fb04eab25780b73d5e0a80b03ca688d8f1b676d94bbf63f856ed8ea8b9254f51fcdd30594114d1d620192fa1203615d0dcf330f01699694aecdbac9952bdd5612f1d632485274f6aba9d3a1549003c8c42b372357b4fb955ba3c4bf078a5e27fba10269e49212a8d0ef98fe90283f032b38480deac663ea5886af108c74109e76d4696ee5f29c0dbcf0a643ed14d64403e978d7c66f6bb42a0a3209bfc0ba5f9e567c7e0941d84a52194daea14bcf5a890219ffff03d835a2058f512244a82b6d16b0a047f9f54e5cf3ff6ae21c7829a2f71f854d4d03153271179929e06db0d6c49a41e9ddebebe3cf3add8695bf68bf8e9767448799035d921e73919e5f77a9c8b09f084b037a97ce21faf397ffc407087defe433a69a03d52212580a589e529bcf8d03d32c919077f830cb04b7e7c7a13389a519aee7830306b4908290d729f4866d72ba85bac27263c6472bf34a341daea5f9309f1f31cc0357ff1192034723f730e3c6b1366060c5e7c0b63cd1c2561975933dc10f90678903559790ff129db77543272a3fadf2fedd91b608bfc58dcb65857fe6bb3693db3c038c036e1c975279173acc41348615078b524193ef4fd7941685648762bcc326b1034ead8d9df740c0d3351962b84f4009b394f3604f31436fc2af9b929ab13c04cd033e8d93dea0fe5e0fc45e91afd1a2afceec6134ecf9e297ce9a8872f8123857620379debacf4536a68cff40915d690c473be5b341edfa7dea68f1fc673a206f76260219ffff03de130bcab3256b6dd6b88af6454022a11d931f35d3bcce5a8f6abe7111f3fbb90219ffff03bbb33c1e315c2a14d37ed854262241c4a1f4102b93ad3f9769f0143e2341a9810348fee10f424e950e717e8da734c03f21432df5221d046b8d8a5ea543569bf20a03da6be148c3e222aa9d6ff27822de8ccece04ddd704ec4bed210a1d422ba87816036420c46c0040d7032580167f45740b0fc8ffd5fa84dcd8e43257f833e05bccdb03837305a6c830c3fd70fdb3cc7eb93fe797d190c454acb1bb6bfd76faa3e1b1b303c9492b5b6e25aa37955acd5a924f39f5b176f165e90e16763418ae64a772a2760219ffff039c057a162daf7c57338f16d6b033a7ae9a893017f811fe6ec9ff03bd144df95a036ad29f536778db4792a3a4a08b0bb90aec6015aa28b1e39842fa6b2163dc903503da060497b9ae392361c8b987b0cbbde4eeb29824143d15e14720beaf7c6ebe8803b2bce04db76c2a782b38e79c2753165a5315251f618a1cc72027dbc96f7ccd9b0384519945b822a916a5dcc8ac8d465a5b19a00e4b0d6bd8ee2418441c739738bd0345efd17b27c6ad801f2f9fd43bc772d529fc994bf705fb5f06bd98e25ffd3e2603cafc1a4e3b76460268a7a78421cebae5df298d887e882f0103e038fc99351d56038a49c2b53e14d759bb51ee1195016d82f01e9342f96ec589acc13d59f955bf0603f53ace37cb45b8321be56cb454b6596bc9d2e7bb16e1d28b935f5997d176f37a03d3e80ec66ea07750606375091815bfa58041b24fd47e9cfcbbea796c162d61a303db79896c8ff518804860ae75b66fd5f44ef8b2a38dd386180f1c8ad7f5c5a1a303f3fb477c511efc4181aac59d34affad28d0461520b03dd2e10a2c0e0cb1e777d03ece19df06d8a49eb868733c5915679d01d0876608462f773c5b10ace3973e19603f851e6303f80145501e1bef58717071140b424f08ead4315996682afe12af3a2033d895f157cbea5d2dcae3566510f2fdc4ce1fd242b7f6420ee651cd4e053efa303eccbad6556c48172f08d8fdc1e0104362799dfdaccb0881bbe0b2ba74bcf66ae03ea907e6b85c945ca115ac81e35d7090d0bccde0bd2c83b73c2dbb3e2b8899b0403b0202a914c3250ce5a70fa94080cdf052b2a2ae92001e5420d1f51bde10da636034d40a3ea1c29cbb6b7227117da79ba6fa85e84720b2e2d9420d249502b5f0f43039d7ee71b41ac516b3252e5fd9e15c0a1d1a2faa7997d60ace588d0b9a461c8dc03b14424afbda2373f5adc027230d1bf6c3a4b2b1c4842ed9ba70edad42f7e8db6037af77281eff10480bbae299084f49d4f4c71934c9c0741b4a202362ad58c86ce03f0155152597fd030b8828f20ae4c9f8785f65afd64ee3aedd2d5bc26d3d45aa8037ac17fd1ca7b8f506850f30ec8ec29694ae89bceb4875415290bd0542733184303b2f4b4ce81fa715fd5383d5bab0e21aafb77ae0734eb1b0cf5c3e963f9066270030ed3b7ca576fef670789a27b8bdcafe7d5e45338afce8a9bee29527f7ee799b8038139ce8eec09b4889411b49e09d3d110250235e3bcd6a8bd9780cd21aa9a0e6403978194dd21df85514d22e7e5c780a31090364a4048c2cf582bc29ebda7c66c850383a98945d47c035e4b985aedce4e0c15add3d0aa31bfa55fa33ec7d6131c2148037387585296d62609138060d7f3338ddce68617f9bb456937e02e8de35a913d4103202c127adf7acfcb83f7e383e927f60de2c59117188ae2318519ba69f7ab8226032dfdc43d62955a7704bb51e17d532990557d2784b2e41b75e57a20ee9bc83fbf03ef49fa2b7cc64a6ec4cad2e8d882352d2a85de15b24b092b8ab507314a41886703b01c0671bfb006cdadfe13a9ad20711f559f4201464d70eaaaee47d655e2ce8200581e02dbba17f29be5d2d80a240ab8cfc2f03af8bd6618818db418a024a848a35820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe42c780000581e02dcc5ffbf7ecb2dee4a7ec7a311692024585f5ae426f4da0bd33d42ba13410900581e02c731c8b07bb7c8bc562bad1965d7dc39e8c49bd75f13fa9f6a5926afaf5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03c011b8a2b330c0e5b4574b2467e962ce60daef3906325fbcec8c18e040442887fa0000581e03172c9a6bf67abf6ae9374b6c35515f4ab895d84c0b22cb1346c9d91040450253d3c513021100581e0271f1a48d085e88cd8e79ea8563ae01eb11dbf56554af01ae4c98ded5df5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd2393f0219b80200581f0331f27b663e9d188b6d5361877e630c3666a7137a534a4db5eb61afa47080433243c803137cfb667a4d2968c9300024a6597b11eadbfc0be6634d3214d58717cf77fe6503b2084b97104f9f87538f850b24c0da17d16d50a73067d3607257c809651aea06033b82db0e74d83131a0772e154917914032f8e5b0dbd346f09a79405d4ee691fd038efa2fa46b673c9c663a5639bdfdbc9866a4e4553d747401c102c5d96fa38d9e0302381021e7288c83a381ae27631e054f364b979ec6e5f97d9e2a38e7e075d86103ed475e5059283be7d93da2770bebc674c4be1a10f93c6bdb263477768fd7abea00581f03771ef6341ac2b9e5314157b871d5d7b7e8c774b3a8bcf827bab46c5b0fe05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ffff030c75f3cb13d17601e736d041080e2319e8f1aae973cf1ff95abea0b68e255e6e038af5742a672d42f2f1ea65c7e92f03769647b58bc181bbf6efa9792dccaec27203002b5e0de2c03e998d8ccff7b6b54de92b0f521b2641425f99d37a0e65735cd603a83a5aa6b1b05b82826176dc6b51fde35a698a339fd1bd4deb3d513a12da975f0219ffff03315a40d7ee6220f727509493d3c822741c92ca1b8cef447f88c6d086944ccecc0219ffff03f5cdb47c989843be5924f575af12ee3d622dcf8ff936b18be52f8c497109cb7403c54c5d43d077532e7f33d7548aee47370db1bcb7bc861bd0547465bcce6bdaf703351e62cebe3aaee2e73b87e278c8008c9e7f95116d71ffb185cfd63395fa052e0397a1d9efe616813e080407aade9caf14049737e90083db82c5ff18fa59496df80395e0ef239a7dadfe5b1498b3d395fb36f4a48908600a4e398905e81f6ae926ea00581e02500e8d73d190d98a4f41d6526ac0bcee9bfd314f46720fa0242828a6bc472386f10a1101c000581e027bbce4046fd4fc458a3b68f742b523fb4f5854c255b458146d30025aac410100581e02e9ec7f3a889e0263451e74ad6b2efd92bd5c947e6c1e5912627def60aa449502f90000581e02cb5455838701bf0601ccb8f5c19f0873bac6fbd2068368b9250e65e2805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6d02700581e022744835e022092bd2d79f7cff3ba9cc3bb18f057c4c176edaacfaa1eec5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd3d112ef00581e034297f513f228980790070d7a800654964ad74c4ecb0798b19d25d0d8c05820fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f4103f00581e03b20e608b0fb583ca44192d52e760ea4b6095ce6cff7d5b2843cef454205820fffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0a1eff02184100581e021bc8d7cdb960a4580194c6f9b8d5a84e8b2c797b20f8a4d2bae85787cf5820fffffffffffffffffffffffffffffffffffffffffffffffffffffffede3528e800581e027f0a72d7677871145c90b52430fd5287d977b18612bf413056378d8fbd44127fbbeb02191b1703a53df36b5aeeadb42cde1784c0173419857231ad4edff2df09f910d09747d2f903f11469acf2520a1827ba681615b69ae01e717bfeba4fe4a0a2aa5c1b8e653d6503ce5f508a7371f147ffc8a6b9cc226193ed9ae0507279dda485909a19147c12c503a5f8f7fdd5f1608ef05091468b59bd3a1496340534faa3e40987f4123313f71403ab955fd34365617d027da4beeadcc1807cb509b7ce2827cd1409a210bd3549ff03ac6bbc45b8322d696393d8ff72e3f1d40a85a4fa7b955f93be9d00554a719b12030ac735a1a0b15c8c583952e74de2ea5cf4e8cc96e8bd18b107261675b7db98690303d892f734148205acac39a35a520e1c901e3b93455d783ba24e160ec1f19efe0308fa0ff397ed2ae22689c5ab956b8b83e92b1961d5fcd01439a54a2353ab2e2a03cf1fd7414f2e74317920f53f39b1b0edc0ce402b1a4c39602705752d5d3927b403a20b343ac557eaa602afe5d301fd80f81f3b1df783a9ca8feb754db95588d33603691a28bcc278ded7082637d6795fc2713ae7a3d2bbba8f893fb257d6cf8a91e800581f03b2def1c13f1925667da73f8b00e3091ae9a5a1c80f9867cf0c5af81351c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd3294456038bd5850d297d76eddfd86a47acc14579615fb60758733edb185c3f7c0705277b0142003e0219ffff038f11131341c17a2fea7404563e720aee8d34d9afb163f764658a9285199c072403d11c27f74811a75536ad6af81bd4ce77b828f26b24a612fe475ddb84b48630f803f6d34d892faa4de092375c41fe56a7e1a6444b87ea2e99fecea715659a41dcda03376ba630bfd9b5bd4c35e1090b3b18cfc4d398afb43822bae157146f4197b6230318ecbee0c36156b2ec94094348ffb318e7e47f52a1b2262524837ee1dc96fd9e033db5df11461456e0eed356ec4bef7d0d31ca0ec81db040af6aa2ca7650d3a39d037711a93e4c97e6bc42b6a17ae1eaf24553b051eab5761031090a99846a6a2828030788c22fee91e77893f89152fbbe44a8b9e030543c01301832f9f49ee49c3a5e032be0979687ae9023f7b36ed15e36e0f3bd886ddf37ec84e200a3ef8423c4a27c0323340a13152ef218963a0bf1d5eec13c87ae36af63255d528d60b4c74e6154720340194d64dedb219159bb3d5ace4ee59c06bd35b4a3870d7f2d09a4513a7baf24030b3aab71b2798b2186f97eaf9ba8d2516ea46148011097633dec354ee2b9ce8e0383c38b79f45c333fb690f1d8060b4de0f2d471c8c88c568c4bcafa6d9555dde9035078deeec562e9fa61032ffe24521657847ae12992ed98953b7c7feeb29edb360219ffff03f73708ed10dae4c5b7d31b1b5fd6bce984808f390ed163a8c3c153bc3e757e8303ec46cfbe4285436f143944457a1d686bad99fe78700fceaebab2943258a6c18803f74a91cebee9f299ff9ad391e3041980a43231b9da2dd8bf2c0cafe7ff61e248033ee15ebb9efb93c25fce55dcf61865c41ee418c9253d0aaf550779c03bc36909037ee737f3b64f30bb8878a671a2dcf594bf5266c9c7844d4c211583b1d952ecac03fecc2cd1487d1cc3e1a351c12bae8ee527afa7fe6ce2866039acf4cf9b9d8dde03ab40d0c67da38c963ede0768f2882eb4e95e4868f667e472d52328764925a65003149d9e4b8221ae0e763dadf91ff04f2503ce4462dbca392c3428d35142c6f3d503f446069077477ff744f8d35937163c7ab411ea9907d82b7f86e7bbb1f8a43fe7034be06287a5db836519b15c8c68c28bc95cbd0cf5ad82f0614515869cff82f87b032c18d149e847f86bea3dafddd865c3c281947d5e25c5c30c4f2a0af049af7fc003f43b682893bf0a3a525d33447e2ce990f4f104ffac8aae95842ec56f873d0cb8033011de7931f5ed4ac2887dc9fb0b51b9a576780c4dc4b358cfbc6fb35b918b780219ffff032b9856b085d6c0781b2e6e423d9ca67ebe9409bf26d5de5034667a9e997b7aea03e612e30aa2daed0e8d253c217d4fdd89ca2d4fd2e53d71b4b2e8c80164b5954d03d467cf3a8ffcdc764364e602d21e78cbe60b1fbab7e19501da744dff755051d20350688fde5546e0359193e74f111ab2472169b4190a425ab7b864e02623edf55c03fe51ed65e9b872374563f949cc034c90940384419c8f4479cf99ea322a29621303e6b0f3727beb2b5a27f0fc4de4f31731d852c0ada10e37d1ecc2f2538c6e9e4803c5925073d30308ac9892a1326f1da1feae19317441dfd47e24f0f645c3b22c4103d92e8824b1f79f598a22b6ab03dc498b8f9f204dc3d5be7598a690fd73f498af033c61a3a6fe291ebddf5eeac1f44ab4c931598adc9df53bbcf241d631532c1ea703032acde0b8f31a769282c58d23623c8df90d329cd77d5bcc584c79db855e56b10373de7fc362c289f8a3ed07ae4aaafaf339d3e53a7076881d15296c6d71f177140219ffff0394e7f92a9e69b358c1a5f30a2d3417a5662ec39f8ddecc65fbf709b0c730bbc103970c9bb02bcb726031859a5f45d9fb38cd69aa5bd0eb9c5790e3a440f636874a031a291669df812dbf918eb23ec732b6101ab60d5b9e30b496df4f1c9aa59cb5e403ed9f966d21b766172c5702cb6a8f3f3834cd5cc3c4762fa1deae7497548bf1b7032be9f706923a6253876fb4ff703051d41d217b1bcd8a8284d7173ae7e024932d0308174a5133bf33a69ad67fb197d54e302b8984a613790c68e3e242fc0efbd99e0352668d5cfd9cae034957c2262a1024dd82ee9a19029781981944124604f6bf5f0395c9dcfe5ef20a40f47770989ee4ee5266295aaff9cd21841008c893e2c488da039eae9ea0c46bf0ab5aabd948f28c2062de67ae88c8439703c555407b0cb3d36b03b1cadb9b4b04e996acdb2113376fa13eb6c8a9add1f338f53c9204848e3dc43603c2be780a8e83f30f1faf2a1729d2662d9f5b818b5d2d294628f83c061015f11b0394714f2049bed26a7849a5b59a015c8c7ffefd4c97b88a0039e0634dbf9c9c4b03d37e3aff0e5a1cdf669e8327c04a32d74217e5cdcaddc2422819050d31d5846403b33bfac4c964a6920cdaeb0615ed57db5f0d7ca191539930cb243e81dd1af13703479b4517ebbcb698d3547f304e810a235a553c0528c4f209c2a069e2854b195c0301e35059fcefa0ce35c1b86a6d0d308e90034080f488ed7605cfa157fb39773003eb924c92e3007b65cf8bed29b7a8f4f9fb58326996a1183553e6c48edd06576d0346070565a43ab5f4d992d59eba6d954633da66f4426315826ff6157681ee2fea039dc34d97e730e18aa3a376c3a83cfdc1d1aac7bc436d2ec33aed1a27125180ca036b19ca0352a53e64f2be31d4db909d28b7ee27d69a6aa2a5a43faff46110e39b037ee0d458a15cacbdb7c423780e28d6ef20409845e5daee18105ec10668f885620329213357751bf02b3789769e38141602ddc21c67026e5cb525dd6aa902d958e203154c474f41192e2940ce868aeff9bd324cf722922df6e29b03161a1b50c2afff03318de7f8e7c89f9b4686d75c043b674618ba1b9d1ec9ad20126fa1145608fc5e03725684e0da08c5f42d209db5a2f0949a334a704490f49617ae7a5935cd8d23f403a1683e7a1da3da1596f319ec4985207f2c049122974468e54a2d777fec902ca603faa85c8a8623e5709aec534df4dba62a683ee9879a67332ca972e63aaac930ae038c73de7f18f6ca30b23e426b2f21f21fb6752345be45d1f84d6d9e817a562ae5039bb74003158127c242df7aaecba901299001405cb85734806812a6729f07b53b03720efbd19d76ff4edbeffb90d14600b2530ac295f57630fb154748c049fad4b500581e02ac686923fb7eaa253df32cc8f0d94a29ab963328227eec58a47e0864665820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff037ed91a0d73739257d5be59ad15ddccb7210c0243fa6322a7d25a014cc065eb13014200350219925003e6e583c6c8c601f3216bd1f3de961a34e36d5e9127f2cbef9ad6104ed896f80c03f2b1e60aa0838a128f77dd448af074648ad8b8a4166ab222e1a7dbfe17bbbff703ec524068365876618a99d30ea58986270d7be6659f16fae48ed08c8dc7458cf303fa82e90cc1eebee417cfa6cfe1451f4d415e5728a6615a8cd27f7accfec1ee35033a18c72bac6e2132a70b113f3abd96e9684b7921c89843236d1f67ee4165fec00325e8dfea191d51d10a2c76fdc770cd9b4d994385a80526a24f629b3868bf918603db13b5d82d4eac5eca3ec2e0a33486a6ffba087b7b2f0dce0c305b766afb527203da0a2d31ff98491c616010cc96cb0e67821fed32a22b95a7ada175502e5dcdd6033e4f1023e611d3ef2a9e4fba5e1e8dd595b007b1ec6cd5e296aea68873dc97250317d3c3d087fe4fa9814f50902a10abf950e20068c2e0471553f418a74de3e5480219ffff03d82a5d5412c7896f1c196ced26897b912c516817f799520102fc7d3baa5f231303d3dcc2def118caf19d6c733c725399132a455727bda3e92c1264c09be8148e7003824ae28460f1215d5265dad8dfb84d5a8940dcc1e6c66fef68347764906e483f031b09e546433d20b38cb0edbf743b388722038864707634618670b7fd9977ed8a038b43e7a2d6cf82f3482e6b7bc6d4069f7f2c0fe6276dad3b19195881ae446ac90338950dfc8bedb98256a550f9b0290cb681c876487f9a7e1c1dd540ba25ce1ece038d07737820c6a66a3b694a055bcbd7219d708983ba0a860f125d96d4c1e1a54a03d779208e3e4b32fbcb50dd64507b04eace135dd2853554657c833e1dddc201f203a4b23ea5f44a148656be1b40f033166f8fbb59ac5efa06dc0e00a9c1536c9b92031e9c3e687efaecb7eeb1015fd8587f46091b3cbbd77c8ef919ca58eb504cf42003095353a92a3ce6e43a27894709f2ed209dd788d842776405e8c2be40a6c1d55a0219ffff0219ffff030c8908f0ced9675808be96d40be607aa254a72705890c78002df20e4f75aec8803ad160fb1b75d15d8c348213ce71bc84a99025498f8431e2fcbc8cbf5f35f513303af9621699892de56bd7b386c0bd1720e61cadd4d8e681edf8b7639542e79d370032e5bbbee5e292eff06d481a87100b796e322d34b50bb23c54f0e6160b5cb3db703c20b52ab208c26b98ecfe4070ed326c97289f675755e3a72b481e1478147016203964feb8b95787d39d3088f7a02e2863cd32e8b5428e9c71102a5ec2dfb378a890350a782e770929d3da818813254b922152e7158191391be00b6696214ab72488d03afbdb5485220af4534d2a3f34c16b756ea3029fc9b87ef14d86ceffcad0bc3c703b4873d3043253929f78b12df5d28f07040ef7836484c39953de6a7bfa3c770730303037fbee129d76165208c38ad591f0103b58730abdcdf066914d89fff332dad030f3ce2df71d2eb71b7fe747b7279854d49260a6cf30548c616136fbda7b912b2030511d51df36532fd0dbde2efda5081ca1094e29807a85508a06541bb426b7786031c2dc88cc59ba8de9db30cb05a303b9ba51f8afbc574f737daeac9168156a17b03616d8f38651c8fd516092139d6f75a0652d0ef74e071eac01fde5f08ff626be803f76f9c8f23b03de4132803161d599d3a3764ffb37e2cda8a15ecef3f12c52355035530f7f833605a8c9996eafce1e7bf53bbd2a028cd3c3720ad9579189f61c71a037c1d3f35e477276b3b5cbd8e5520c1c6bd35f827ee77d46334fbebaccf78fd460313d467ce74c4d5736ed313788e19b354eba968a0adec5a8b583a8558158542db036f41fbb391de2ca7edc871d6fd252707d0c205120f11aba2242f8d5c79386fce033dba50559ea829ed43f29f3610120412e7d93b0569090122717e709f3eae316203a8b6f333bdbedfc19809c7b9645fd468cf055f1e222261bd0e41d39e69e5cf4c03454b1206cada1719ca9af326b72570822eb9901ac327da88f06ee364100b3202031b9b54d243e67a0ae15dd9af427563d7bc51f66507d1ad58c475dd3f46e30b2503436b89124f7f0a431f5b73909be79c0dd9154e7b8cd34ac8830ac4495d4dafaf03d39f1d3a4d583c6f68647489dfa81508132b9875aa9c3f4a38e57bbf3bdaefde0371b63b09f53baa3b3e9457376dc51c702dbcfc8e2da86987fd73177826d4f60a0390625220d504860fd645ea277cd2699d150ee5990694bfdd2adce4f12592466003dd68576e57ff001a445538d323f3e387271fee7e7fcea1e5505d62076b30f2d6034076c11ebdd2c2f4ed219eaa476bd657641609023674375b23e343d45351898a03cde3a77848491b719da9d3990168a6b4a8fddaf2349b1ca2118790a1b9552ce203a1363184cacbf324f7fc26dcb5a210b930180ddc130501101bbfa9f48aa9ea4203564c62c5e9eea6f20d40df64515f728aae26bb34adb18a13ac5be3b4a68a2aa203a6bc42326e53c98c8d1b24c4ee7b09cd7b656dc4722326402bbe5350c0d0b04b0377bbcc879df2b8aa5a8c2fcd34f323bae9a6139d5176d06b66cf0c62e5749c3f0310232cb1e63988467c3b6c023eb2560e4c159f8e0f7b51250cd082f8e2de5a860364ba311cff339c4f6242695242164643cfeccaea84521083ec0f0bfab0978cd500581e02a61bca00301cd656094bb9a1017f9636b8431bae0cce0a3916524783e4447723b7be0322f361a8752b2c41ba8aa5993fd091f9f5acb013796f3763f76840553dd5c2c900581e02bf5ec30367a55139105658d08f0a2d34c21391120df724e275476f0d4543056f6d00581e026bc0e5e096ccf69c51f3c6c2945d648d6a87441462ef89cc0f1dcbd50b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffcf071e0e00581e0212dd77f3a0b95e1ab841eeb40abd7e26ec3d3cf546c4bd98624c705edb45044c6078e000581e022420ccc03c7e51bc92879c47edd212ebeb29958ebdda53ff2c9c279da25820fffffffffffffffffffffffffffffffffffffffffffffffffffffffe528d2bd400581e02f4f0e7c3ba91c86d2cecc0d60e83b5f59a87939d00903bcb56184834c65820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd2393f0219d94403a64f3589be57607285ab1c399cfff085628f02375cb17e542e90a071f259ef29035868a8ec96ed3b2b0c1ae6ab4204c1347fc715aacfc9efc04182eb2eb3d4de2c0322b40bb0085928960d212920db584a8e4ba2303885e1c2d27a4e08244ece13ca0348576e68feca59fd06c57e464cdfd8275148774a043e60df46422708862e67a80219ffff0219ffff036ad3a9b251cf1e6084c62f849dcbbbc4fb36834e1c11662c46d6a771bfa1ee1c0372b3e1205e9321259f7e06f951a060795bafa4b09f22bdc4ae9867e188a892c2032e1c612d010198ac27ecaa9a2c306f1dcaa28aa0fb7982b8f5557cc4db56fedb035252fd13dcfba2be49c30af7f03cb84a17e2617dcd0f5c5c9c0c6e7430c311ae03a5824cc0e6a8558e4ed1f26014505bd5b531b9c2fdc549a854b9d5840bade4ea0311d88909332151b1715e8c9c2bb991e4b14a9cfcdd6572577344b5d7cf7fb71d0219ffff03167a814930a9cebb70e330bc93264c7bb3163a9285b539b83efad01c78ce34f3030e4c15daff6a3068ac859006e82333a36340ceeb304991eea944b4a219b1f7de0350585a7809998d3527ae8885dd2788eb7de765f26e08c32d89c1edfbb37671e203a9fed0a4e6d4f19c876e26b2fba277a26a8c42f3a6edf7a2a6b9f2d571df97b80331e798fb419618d3815d2d0059c78181a92790736a110428a01c2705cd14768f03ac1565d42234422437b6d4ea3b8bc427635c4609cccec7c09e2ac0bc30881f190356f114feb6318fe92b20f053206ff0d09fd61d72b63dc0a441cf2e221e87e55c0338f784f81f1d964cd751b536888abef7ac6e77ee2508e3b0ce19c50f8b7817e1036002a3827388380a8155e11d90ef80c50989fb12f5c12e7c08d28e6629d8c6f9037d96116e3b17b8947e6b905766e1ef67f480fa9b91632e1400db0f8670c832430219ffff03ee54c8f253526437424ba4843c956b4a9ecc61a0f861dba73a38525b56f72a7a03b136bc261adb11030c01587d8bfade1b4fd274afa11d3e2ae185d4ffc20c21ab0317dfa88116d1b46117095413bd835012fc26da6915694a82aa34bf775fdf5e5e035eb101144c5ffe402eac9499d95c3ca7d1fdd27ff977d0899b46b8daf1f1e217030d4a872c11ee68d188cbde9eb77d9b759ceab8245beabaad3186b2a39eb6e0f103247ab416528ee96cba6b9b35fd45d105deadbedde7f0395257d0e05059a6bcf403b85697d0215082229ececc2ae3006b92b575e5cd82e6174cbe2a8df7efac736803e9e3b70f9a0cb747938c2499d4735fc794f94098d2ac1a400096b4e4aa9bdea10306099746925c741ca3f324fd7c99fe0b72249de187eeba08f33b771f32d19dba03103c4411e7f80375af0fbfa3441870decab99fa901e720c14ff9fb69a3265d6b033680f000b0e32484b0567568481f321d112ad62780a2f553b2f34e66048eff2f03f935fb28f905ea87ed246f49e71fdcfc4174c4b3bfb2063eaea59e12c0a0e0e00372bd3d5ae4d9cd883a15cffdaf39a3b08d1d034e47a0ebd856104b8c8796bf5d037745cec6d454f4ef10ae3521ee6e91525fc001f07eba823b32d29a384a8cd1e90356db123bfa297ab380c273b3c4bf15716dcb10fb4db7b5405b32065a962c290c03421be002c602bc3ca9520d183a0178d400a6ef4fda060abfa0d113afc04f666603cece7079e2a884058f5e1dc786edab215d7682a68bf3937556d4bbcaf7e6e14103281cdb067e4945de9d81ab228d8171b3b6bc720bc7da31edededed607abf40ab03a591a4fd3e7a859fedfeb3b24bd11372abd1023add21756b9be49d2c7855714303fdf3ede2161aef4b2afe68da9939c98809695dd2a17e8519658c545cb9385ce203c6772ac6bf6d44ac04b78f54db56c9cab7650c9070aa0f03ed219a6f570ad61c03add91db72e171a61d257a3be32da730c2539f6f31dfc5c45582c31d9569eade303c6d99ca9c18faa6eead0a9503cccd24f030f60aeebf603d9fabdccadae990b41037128a0fcab5b3d97c68e69ed7b0dc78a27930331df6b3c897767ba6f28cacdd003969bd8f2ffcc33c177899381ad7cee8bdbf632acc20561e17de11a9d12d1ed8303aea8cfbf6043b3e0ab45cb4ea808cd4cfa3fddd54cd8ca2d2f81e5e559bc8add036da69226ba23c7106300d3255eb4987f39bd8fdddcd1f225d93145ac8d838f8503f981f34b5131bf47966d9e50d108ab7d9aed62683c922fc24ff70aee910a4c91037d3002c8ccabe605b5999aa66bffdee8760db60ff85d7ea0c8a972a475bf2451036318fa2764a325a9b5a24f25720b14288ba9e28c1b638a386810f5540bff085903a83cbc3e93d7a39e498aaa57b1a25032f8ad051a7fde12ebb64d53d77a9e7df703ab70daec732bd9ad46b65d73ba54c4b59ca212dd78ff205a63560330cc64787a03bc2d35bfb612d931582ed9ce7f433ea7214fd6b41abe643a9f66c9ea4c2786d703986b04ae550a3277eb48970c53d006a6d259004d22392e1b070e25f1df2149e903f7b57c695ccff6419e604137d536a041c8c5ea87f6e8db379538994b06029f5f0375ccecf16743a0e0cd4871696e322068234d981109db77d644e34069ddae13e9034c6b7c5ade8b45b6e66c4466a744ae6243feb97aecb3bdf3dac72850e848bf200335b07b11e42ac3c91ce407a9448c44e088b6edf69b9aa3abf547352733c565c700581e02e09338279ac1a9663ac9df68889ec1114b23f9b6f432d59916414f83b54436d0263e00581e02ed739c00028342e8977e5561d8520fd329855ba47d2c977f98df828f65444b9ea6fb00581e022eb879628fd1e7e1aaede1d21c09ee9752a091d8345a0cfdaee2764c935820fffffffffffffffffffffffffffffffffffffffffffffffffffffffff599f3ee00581e02f84c78ebb77718d55af9cb852f4a1589d12669e5eef1508ec853ccac9e410102194301034fe3d3e8a2ac2d9dc6c2088515f72152cda47f8c768ea0c34f866543f032bb340394b9f2b5da41a4ac6f4299bd4585350ecd5f66b17075ac944b2c05ec2e46f3220393aad44ee8ffb6937b255606a57577f85da7300bea80b82824a4a09b40afcc5e0361209b7990098e7b0b2793c1973cbb2af25e7ae1690abca0dad97a2596f332f003694c2a2d940acf2f231aec1da69845f9456c3a5e2fcaef2c52c54321e64a91a5033ff300a27917d9712e0da068397cc7d7736941b94ac16f9380c9c88c8fffbb6f037fdf100ca94fd4014f1c19b31d97da4f1562452e33f9629689aadf1394da44970219ffff0364f6c54ebe1e05ca8b871a7cf754e0d2efbe93e73c237c212b1a64edebc773b10307bfa64d17bb512a786223db27e65ab85f554390927896dd39ea60a62d46936c03258ead723984b541605ea6b93aa6ddacc30647cf1a6cbda2dec0265a5f70196803d663f1dc4ae4e8b8efe6604aa824305f9c4f602467145747aba73eb2e5d45e7c030c5ca4d57d4dd3a48b91029f42f532d624894bb8c45a9569f1432dc9408017730219ffff035a29cd8cb961c9e30208fd935f7f7e5d6dbcfca3d5cc0832cfd2c52323be29950372da01e2c167403e2437416e9ae639dc245316b062f6f02d08f0f5e7e104dc240367a8401c4a9ae2ce2f9ae21db1f18e8d559b1620e1f3ab3aa91352c5fa7103c003ea805c0ee9cf9cc02e0ab2a7fc6818ec26c3f2529729bcbd70edcb8bc9cdb8ed0327f8d5ac290f5f0809e20537d7fb94fd2b6bb60deb9b9f6c6556d1f2b6b9ff3903d7532fa821b1dd5d4c4fc6476864b388543d3274ba6c959a68b227d093e30c4303448cd8c9ad79d4dc103e23278cad7d0dc824ce7944457aa6c979270ca7039f3603157b87183e5d766cbdfe2438ef28ed293e745d658b979632ca721170c5be71e503aa0cb6ace0828352ba6bebfcf3886dd4cca564fa7c7729f46c05377435dec9fe03db3cf084e479249d29918cb3a6e4788875682f6f411c635a58258f0d29d8868f0219ffff03f4297468823896f0159c1253b2156e98c6cdd7981b101ce1874250ca9f2207e60219ffff0383349763e96c76c7f4c78f74dae57ed0afa55f5e9456e36d8b7132a28b83cf800370826a2dcb21f7042f318c71e8f24386c4d53127d4402cfc7a737a79f503dc010316f18949b100597e433ff70f8e332dde8843c8aa58929457354e13bdc5ec2f15032630d112a1330b6884afb9a1c24ea26253df6ef0de845e90c7b2544d68348523034a2325a6427b83486c4fe3ef7f95a9bbe3ae0b4a1296c0d1093086f9ff39539f03cab697936520d776b44e63762d9e0417503a25e2aaad10d7a14290a959617eea03e3f89ef49fa2a84a9daaf4009c089e686557da9762df634910237cdd44ac9c77030504309027591ba36c7b3449beed768b002c6399887b1d4e23baac2f0b1e02cf0387302d195b3a49e2144b1b984900dcb9a2671fcaa3472ddb1f0f2a14fdb4605203859d08dbd231586bda72c4e498286552a985304bd08adf4bad5f783f93475f5403c264a02b50667d0dc5dd4a13df7287248911e4e8d1dc4af3d150dcf915e9437d03b7f21357376ecbb16ea39fae3ce7b19ac7a88b10b961f2669be471d6791928d703d0c3d97d653d33176ee3664a5cfc9036159294d06f8093febc00dceb54e65cd2033e0d96226a8e28301a56e67781bd4c72efb74e13fa0e21b3328dfb0127a2895503ea21af8c2059d742aee9bd235269e87cadab54ea0a3765d80175df427fc8fc0803614ee5d1d6cd7e37c9643d6b5497180578d9eebca771964b5297ef39b0b5cd71035b141ea16cabb198fb636e6995c39977c6d467b9a6570abf3b488dd033eb654703d9f8358de859c89e0914bedd3e6df18dd19dfb0ebad8b4b0c7771bb760a6528f034a0893588e71c3734e33c0af54bfe66005fc65e96fd97064d76256a36c0e478e03e69abd280b0a394b3d49746667d4fb925672300bdbf1e97717d96e22d361262b03f956a1cee47643cb7c8d9b9a4d2ccb3ee378b766cc687d1a69b3bd0be78a244503f13782f343e49c05190bd5d57808ff94d56b5e020fe48ae2a2ca076097252e9d036d488fb7b467a29e5218a5aa152d6bd2a7fcd8501a9dfdafc1ea1b0a7c7ee72703ecded337ff83a20fea7fad7588d98257d14889e277d77299f2fdbba4717230c20375740f899c503c517d9a44854191c2f2ecf678d1c23139fef68d844756035ecf0341ea1a98379716d21f5f47a9c8cd888664d0f40d9f28dcaf1916eff570115437037e9abcb67b73c8c38a01567a9c0ab524e521d0a75905cf4dbcf900830e0c8276014109036b3991e7db5811fed6dc2dc9c475a4099513d5a3b9b47f18be9797763c1fd2c4037a7b5b2e358aa29aa6e5befb934106b0855e3ab15969f257976043a7291fac4303715a717cec3938da98614a76ec4a5814949e13583ecace4310dfb06d0b25501700581e02a40954aa22a39eb78af76b298cc36e00474a16daa525c7e276a03a62265820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3b4bf00581e02cf69229f5ec2327b66e454f3e0b45e0171c6c73a11893cc9af8227c0055820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe062205a00581e03f7a79fe701acf8068e8cf2f0d69e2808ee87ecf1f0a7ce60b6c51235404718d303cb17d1bc00581e032563198fa8126d7375e876de195ce9b0eb84e1d84cc24e9ae16ff91d104536f2dffec002184200581e0209f9b8ce3d6e8c31d78807deab8b11f52fdca9e5f2feefee68ec6eb904441f5d339400581e02eaad386ad3e53564d2b9bae37cd8608fad38730a017d7e6abf84c797825820ffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f623cff00581e02371ebd915ac327a86032a166a77b17da447aef7fdfae60c976a6d661fb410100581e02f994dd4d3396090c61aea0445980f076e2124d076764d5812ba869d9a043b6eafd0386a66ed821ce8a3dcdfb681b6bd2b8555ddab50eb101318b5baf86d00366d61c00581e0207ff26ef0840402ce0aacc099d3c668cfaba5e09ee2c829155fe60b50a5820fffffffffffffffffffffffffffffffffffffffffffffffffffffe1d65156f4e0219ed1903fb82ecc29ea18ffac042e35b2cf3726b54c5cf202965dfbfdd63df2e9d4106d703eae7b0309a321bc07a82b5f8ab6209fa742ac00936664bf3f0fecf366254ba1303eda9be193d553d7d4643529cde74bd6669a0ee27d9dbc1c070b25d0018e727eb03a12534f9ba58611071c1665137a612218e0b61cff32b0a14ba9fa8ce3b2fedc903f54964730b9a5bd2a4025714df4bf0e0a19ac53fc3fcac9dde0ee09714d6730b03ea94b1841463fe094ee88fd7d197e232ef6de76dfcd99160bfc116e9454bc26503909686a319dda30e6c1ffd90f47f17c4bf84f2c1d56a1a15abfc4ea1d39d927500581f0344df3b658fd6a0fef3466d7b1e27b68e307dafd695e335c5e79f87ef10c05820fffffffffffffffffffffffffffffffffffffffffffffffffffffffff740e0700393bfed994293f9becdf0e04cb7f4a13692feea264092e6d35b15670e210bea080322af796545601e06c48d230fde35827bc2dbd3ab97cc1d886d5e51266324204a0219ffff03fdb6c1e55a18a10381d0fdb7902cfca93cfbd72ba154478574e289ebc3b9306f03de9a1f97e440aec048ba1c8ec13c6fdc993c523fffd4f1bee95f93e9c3cf69920219ffff032d3feb98412c083fac4fe57a987c8cf1aabfd38e74ced94f2b1c7173844c71c80326a9b583fe9af530d14f81915b44014629d8263e65a9cf700cd5ee051610ef90033b91e242a603e741f7483c047387b23011a955372165bdb325357e4e7b915aa403c1c10dbbb8c4733a5b78983f4175d53abd83ae4ceed6560e54fe07ea6f8d668403760a14c4a59f326ac282aaa00f8acc3111ff6d96b99efc892eb290533fdbfd110366da746141220b75b14fcb54f6831d0499c486b5ed48e3fd279b07306d1b525d0219ffff035960a2103b1f2b77e9832da7a021650adff09c713e4ce19e4ad40496a0fd1c85031206b272413453b440895bc3c5d8114fa4d8788b6e0a863015a9f3f46b955bad03997467a3a2b1ba93023cc5416d1dc4e86ee8f2d09f2fa3c2b38489aebb71e095031688929229f57266d6893bc85b6a9adaf9e65c7ae6d7b1c665689717f1d975750360d64026fa33e67b55a9a3c964113b7eb9ae732a43d192b3e1a4b5e242af9a53031c47309e9db858478206331f35ba18e5149e6e6bf0285b9e1c65e3928671ae67030b5a238cba1427332c8e28163640370f44a9f6492b30cfd42d64e2d95a3ffe5103eeb5cd5c2b8ef0a84e0a16f2becc984702c3b5ef1be722eaf8f43474c55ddbba0345e9aa068a931a1f640ede469746bb619c2047a54ee76036eb183ca6da223582030b2e6a1c86cec942f79e1cbffee3035ffe905013916c9aab4828c4f928fd116203447c3da4d6f60500e277611aca93d19ff1c830d9933c600d5c53437d1224530c03ffe448f687bbd0b77bcff5002875a96603777604d2985a3a4007b448452efd360348f875bc2c31889cda2423f2414a5bfdc0599964871e5f5ebc9a438b80a0404403c721f7fa4946ba0c0e363661f5718e4410264543a52e3080d0b7a6b4185c74b103c9ff89dddd9d712e29422d69f954faecae8f131b4864fd32eca8906b7069ec020314cfdd3df8b011cdc70c75087d46af86795005b38613155af49cdeef2e4e4738038c3917406ab8f9bde5de881ad704e5032a5d46859094c06ed8fd734317897e600383a5b7fb658bb48ac61b1ae4013ce967dcbb7fc5186d53083e65e2f752e6123c03a7d2b9899b308b8438046ab8791c2b852f0935e5df36827e8e7eae9f3c2111b703746f585faa17753636294560b70ef8dfd18a26b4e3c44a533c847a67f55eddba036dfb5eca866af2de8876b079a6a5ff516728cf10b86b5c4b7aada5bc4762f5590362b2a8b4f46a616ec9c84cd505cd59a8fe372facd6af76ae17ad92ca72c90f7300581e020c0547590711c49dad506173b3fee393bd52fb740f7cbb1caf32899c8b440ce7872003724e8cd4643ef7f9dda1a5791fe1f42d511080cd8e07901f5179d90e31fdc14600581e025e8a5afd4246c48cb339e5dead666ee526aa93301022cca2e5d2825255432dc3dd00581e027a4b19dcc914c8c20bd953ede0b343b29ff19e667c0091cabd767fda224308461400581e02bfdef4c8344d4a904e771af044a93e8995bdf614e1bcca35e907d4840544080befc000581e0231d5fa486f2b61c52ad3d1417ef2b9b8563db555d195a2d969f55533555820ffffffffffffffffffffffffffffffffffffffffffffffffffffffee624b3574021910d603213a2a12c6fe143964d2d15dfd25b1bb65af54219a4f05d6e47cbf147d218de50332665332dd55d3745abc2047671c281bcf0ec7fdd2389f1ced25a6fb96710a1f03cf84ae72655f48c20d9aa090f2df518aeaf11d875fabd9b234a740a4160ba21103e71a33a5a1e34318697bc534bbf9dc6f6fefa17a986a6dfa941b3144406408e3039f12a314676aecc95bb2fa7a3cf6d484086bc53f2f1cd03592e1980759e5370503d911cb2bfb14f60a70905db7a255748ddeb2607352c4eb5f321da8cdef5a8f9f033f43de75a5886507eaa0a1f6a5a05fa73124b1757215a32839180d0e5cc8ef2a03928462feddd486e471e09a65241e6d48961de15886c5f3640f82db0c89ad50ed037e064b9aa48f9068410922aea9f3aea698dc24cc05cfe443fe90b02616282f4a034569e53a8ad8e2c6a5de637d8a863a5682239f66d29242175d36dfbae9605f9f03adb69c1d2d06b519bc29ae30dc2165f9e6570546f45a83721b6a7dda6cfe92560219ffff03775375fa6e921f40041a186fea60e3c7958afb61f500e7d04540ed86a9e533d90320d32901fef471ace8552ca056f3c135a9fcf283e9afd58ee28c3717ad31e12f03784b89093c396c7c43413a2de575412cbb98674e33283a6cfef5de12bb1a18d803db01913d476dd48dfd472cac6bbcedc042a340fd7b56e61cb82205925a4866c603b2fefeb6b64bcde9cfb9518f197b13f3ce619b70c92265f1a9388a65f34b790603130a25955d5009a4d8fa6c64ce108d173caf3227c309213951c6930845b2428603d8d8e7a77ce5189fbc3675db8458424c7c4e2aef624775eff60028d2c002bd7e036324175117d76853ad82334f70a85ddca414898cbe7f2d9370c6568a6f62e2250219ffff03f10cabafa51cc718673427ad641d0d2f3e63bfdc2c831033cefb7515d2a9731703cec4d0ec0400901ea54f628d828dc4d6323ad883b14cd9cdcafe5b8950c2854703713866df7a122b64ecacbe2e095fae0f9330bbaa136393dc4e20d1639b414602030d3e67f06b1d5523eec0867b916a81c13480af32f43463d2adae60ecf8925a45036915a4343a72f11b72b2dca3fcdaef0776cb6d9e46253bf74e28ef7ad07ee8a10303ccf3b9ea2ea119178e9154a7321c90189eae56d49f81187ab4d36017b9620903ce91c48e04db771ba9668b28a180ee19fb7f0f86d316905e0dd7905c4a2356a703d1b84d25906ee9d1eeecfbcc7bfa0b37e20e6099e693daa2516d3dd21c0518c603414513ed420279711408fd493a1c7a192f6a9429c07c03efd185d1bab79f30640319443195f0f18813aaa93f23e3cb9778a236b8b0cedc2fcb4b339ed898cb83b303f85f2a4931e4ddd6c9a3e1b693b61ee71443317b843ed500cf2e7caad564c1c003ac39070567095c624c5838f45b3eb5fc540d4cd933cc26fbd93f863a1c91769903ac7c0d52794bbcc85f345e33a751da958dcfff5e9627dd28b18da7fd3c03e1860219ffff033c697bca4106ce953527eea74678ef8098a4921aa5517bd819cbe509c051ec12031fc9a1d31971137f65ce04cc1b44f9cb64dbc23db6dcf64f1b0c6c97fcedb73403e459906c35506d95242afb1971a8b64287ba051e0a7c7866dbdc09b2f485562203e70458d5b81083f8da5df0eb5410ab449de7e66b2dacd1f2039a9115721a77fa03dd6cdd393647e084d4ddb4eb717ce9d362bfd39283f976c640f4d73659b0b0d103b6d335c69d5e14e3c9577e1d3ee6c2472b399240f0db1cf4fca11402f5aad2f10351f030e55acbe076fa7c9c7c2f79cdb2b71e5b0893cde00cc76121a02edd88fd0336331970abea6995b06ca25e477019b8c72e54678f43fb8239abb9e23f55c9d4039d3b6b1c1114fb019a4d988d660bdd1188b19c060dda1c30928b2b27281bf0f8033ae59179ce8c10bddf14b3c07d80cd650e2684435993af3f48d60001a3aaa97203d33c0191cf392277cbe997f97cccbcba9fda6dbf29427c06b2ab1b209104b2b903b7fa3c6034b0f16a7035afa8a1acde4492920f64ae2bf730ffb10b94320e866b0313b49543553fd8ec2b278d096df767df63523029621f619d25cae747ce89d7af03251c134d2352d4bb6ad354263ea1e7b97a91bec5ca760273fd30b45a16b2334803f9602b5fe10cde01e52a2aaa0f1d2504bb2c1567e236f3ec820e3b79119d555503ac0de751bcbb7102e6ae0790f4ddb00d774535d67764306de9b88da5f8970def00581e02d4a6e1157d5e99457baa24e236bca7a83823772b4cf80dcb6ed77b02a75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe204d43f00581e02a54e9780ec872eecd605517bd27f8870f468f46d6d0a55658f01eca99a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffff8ebbb91f00581e0319f2f8e65ef26248c3abfe7b31d1b1612cb0d47af74ebd88420f87c45043138a9a00581e03f567be78267ea46f7865fd5d42e2b09c515cc81744af3b273d36cc046044121eac000219100100581e02dbf993d31840a8fb070dabe721f6912469ce278275e7286b7747668a9d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd2393f00581e02acb7dde223bd88a9cf1c20767e21ae331c1f12ce8e4721bcd5a0f3d3a64303f09800581e021626fd96263e31abaf389607cd49d0efb70358b7bd2b0dfa1ab439f04341010219358103e3172c1810292eee2322b96e5965af80d41a63a2b63361ed21fa78efb6e2815103775051d93f14dcc0e0a8bdf3af76361865335571817f8edf851077b3e541154f03dd254c9419d4c26b980d6d072b69bef5f39b24137f8f4c4c4352b3636283b1ab034365811c90dec20424c441c166e8f62a7db4d16994f58f33627e6c0f367b7372032423c0308968aed3abe9a35aa8e97b62c4cf1e8cb9300d2c6f346eb076da57c2038674f3837f8734f91ede1febe60376944e1d2f459480924ecbef02e3b135fb79038940485a1029a60b1222ba5e12dea0504806571e1b9ef5c30f20fea51d87eb740219ffff034fa3d5628895582363ebbc34bfc9fb03f81b3df4b0363032bdd93b1fc8721232034f5642aea0dd0d418bc944067076cabae9ad00a1a77003216f27d85637cead15039d69116604ac308e233ee97f46b67550c59c102b9a59b63430aaefbf310fbdb50300b3635ad51b569bfe0a4c14adccf4e15c77ae1a65ff7eb417e3bcd746cff33d036a2c309765cceae2d887f771149bd2ff18846e43a9da13855f8d82fc09621d68034873ba5756be170b19bf3cfce8c089377fa3c1ce43ec022a542e60d93df2f517036d5c30637688f6162ea509f9607d484dd561ba6afdeee6938d7fa29e58936dcf0333cb2eb1bb20a625c136e67f494b990652d32c61298789fa1dc0cc6e77899683032b73820cf9b289d6c5a52fb20ae09412e7a617652972cd1d7e2ef8890045a0fe036e69e0b8a0ad610e45ed47c0963e9a8801623129274d07ab412da62ca6d5bd9f03db83162a8e41c3f31a344d624623332ad07560a36768a500230a3f566d61722e03cdc4838165db72269a4a6045cacdcb386a3a73a986513e09d1265a9c92c3b3c303a943dfe011efeb6fec122638fbb1959ac379aba370585d9787905636fb3c67bc0219ffff03236170797cddba2f454cdb08d59c293fc719b073cf8bce317f26bd4522b383c40376a9a0663e8178495b4e765ca5ea1d3a99f51dcde7694450c89830d9bb102250037498857303fb8809dfea805e3e28930386694b96a2a1f3883dc1b8ed425f47c703eaebb9a08160647ac3935e8c1ada49eda32e579f31380714302fd8af3469a86b03c48b6fe90eced0cbcba0368155c6f8df5c615906cfce76389ed3981b855bb13f036816356eac58bc0f6ed5a204137e2edb3b4c46c78c8cc4201b04aa4ed8b55e69038fd58aff66249dd35bdf22dcb620e8e16b4c74c09d016021d15cff3f9c4592ba0330f228cab7f00ad450167029336af4bb9067545efbcc1ceac0a8408668a26aec03a29b8dbffc0b9f314fb6d024d3450491fe6db7bbfdf6781232193e2ae0c3dc8e0219ffff03293fef819d988c7bfefbbd8990a3eeb7d60d4b9d0ef5c1285932e2eb919a7a900219ffff032f0d822b6314cec0ee679d31a76ac07f640bac8a4500b8208fe2853d2be116d10381d3f7caa5e0cfabf28e855b074aec1cc2ea8b2dfe9c4e93a7f7f9ff4c46f07c03cd515561f92853eb1304ef5cfef32e5efab8b5b24ed815394d9b2baf5c16add8037764f52349cd7c3094694b999b001ecc518b948b147ab8ffe4d3643667b9f5e203eeb513178371e3012742ab81789da23652b1b4872c653b5430f071dec125312f0339bc30bfa59da088be5b41cccc2317f146a311f60126abe39e803f88309bbc8403752a8c629b7ea06beda75d36ab535bd497adb70bbe40224498548371c3d449c4037e31f74bcf905f8faf72298ac53e0279869e515f5a4fafab7a24d988d6ca88500360e81232c8acf95495781b581cd87f1b952d51dcaa029fd599b74aa3bdccbd9e031753ca4bd4bf63c8c2f2d9291e121576326ebb95683eb8ce158d916cb538af7e033c36b7e6eacc26c39bd5e5ef4e378df3a3fa9c3eec5df4d44dc99b1778a6fb37039fed7ae2f72b84df5028e4f0da4e77edfd497abf25740a959a601e4c7410d09c030c4f4fd0cd4af0365576b8de24ee25e801e4bafeafd0f466414bf110eec1bf3a03bd0f26e0a28cc8a884ec7454039814b1ab30f0c2678d06e84c0a04317bc37b91030413e0092386151152eeb8bd66ad9a4ac8ea520f5bae8f7b32f6af479f1a18aa034aef509e96aa4aa16b6e26c40ae71b903cb2ce51f641527eed984b63c98116a3036d855bd08fb471aa0004177abceed1efcf105272ad1672fb57cc7d531ec33ea5031e5a9ccea3ca7c1b4220734bc76fd50980339b67fb903f942684ec8a94fc0ee203e3d9993ea0a9565112b746d76cada77886005c13f1106dc2873199805a765000038b9dca94fd5476cde0e8335325f3bfae975ec18dd8863fe47e892519c5ca412403adb06af8a7994e408f4d89eca1b0ecdb19437b1b7c90a4d0b74db7582722a1520387d7bfed3556312c9093ca3392eccd19d8bddcff37b09ebb3f7de3f700e119d103ced2c6814aea3fa98e649db33920a6efd8a53eafdac6d67a5201295cecf86ff203448f28d0147736e6e8ad6585a8ea4eaebe05b8f2c1031d99cf2b3886d89cfe7b03d13c5b6828afea2c357643c739c2c030d2ff891e1607bea372a4db78970f4bcd03a3a4163fe05f0cbe4d73cd0225b0d3f6ba9dba4a19c1dc55d43e0a9cd9856a6b039952a227919a821c8c122323d843b4929616da4878249a6e4f4eeb9d794accd400581e02d7b6a8f826b4d116ad0456c30c1d25b1045195dbc2d075db18191a4b364308b29a03e81a011842ebe47e88e713315976112cc6f8e13e90cda23aafbc47d99dfee77800581e02194eee7114f9d23e9d9db35039da555804ca8c4639239abd3a07ea22a64701a3ab08446a15030a0fa41980d57cad7263d4ce8c14e667dda1a060022141fb4f5e5a25cea83ce600581e02eab037388a3fd52f88c1fbe2e7cdd24a5fbdb5d29dbb85af0b610662a95820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021915a00308912eaf774c0f9037e43f546f2f598ca983dc5f073b6e06e71f5eb2734d175103187865e8559c691c9e841e1bee07a1e3889a4931f7fdac87942e75742110d14503ab00450e74c55698b12a1e98e8ff8a016234cbd258058617171b2d6b0191339c03f631f1b2b00d30348fef6521120d9767614f637f8de6569ccf5f4bd76baae7be036953f7e709f8bf233c6f746142737f8ade4ac750bf7c23ff952fbafef0f922700394a536decd037638e255aaf7f5413133eb8b5067a82476f98bb82ff7ff86d76703a401ccb54f95cc368aa8f8608be7efc86e83736f720cdf4195753d8e778033fa03956313aeb10993c0558a819ea8a73cceb3b961d61d5e9cd961e5e28b36c4e54d03bd0c044e36a4b455197b9e448430e09f0e458503205e5f849e0baf7beb0d427503a0e9c5fcf0d174bdeb8229b62292e4b930c1775ee4d43dc7acfb80d5a6ce5e57034ad561bc9123c6c99881ebf71807bddbcf14288ba76e7b6ecb0c0f0740b396f803211c440cdfe673966f34124baf6b32000b91075821161056a2119246902863b3038056e0f56fcef86c5542c5a680a7334037624d7d1cc67ea830e913b01252a00f03af3a64bd02c7441dd29359b572152fddff04798e5634219a3dbe4c78a72e832703c03fb791b9f6d534b7b8c31916ed462fe14acf0418ab96c8fb57cb8ca4732d2e0219ffff03311fcfaca237763700a44f901aa9978fe0cb03a37a0f44eab2b452240bb4f2b40318ce6ef6957065e1e8226ffca621285d152728bb8e1d3cdb4236001c4711513d03080cf64fff02bb9d57da94934c3a82d73ac82cfdfe8eea358fc2c3c0ad6b2df60386a986ed9b68eef71610e82368ccb33a36ff05da2907bd7108964b337cde855403c1dcfed36b6931690b784ebd07459c5e94cea9c8b2164cdb97a75972d4ef32ae0362fc32f3ed64733e1ee27b2dda54fdf17bb1aa537357e274732bd03c81aa1c2103fcb6054de1724449d8ff2a17373fe5974a40ffa2c8bf7fea7a2b84ab3541d67d03d0cf917607db2389d47916fdb522196520f2a9ab7dcaaa4a9ff7985fbc791bc10342d0f04c3ddbc29e6b95eba87db8a2c0e7c9796b47c6ba528261554068687241034d608f45469360e20be0aff1633bfd8fab47d852af7b550b7e0e13327628654e0219ffff03a1329f8b6754bac562ef9f3fcf24cd66b48b7c8196466787212cba2100fa4a9103fef85e413226057c957a5e075664233a4392c3e909a8ddf4b6e366113e172186036aa1b92dd10a9344cf4afce88fe181b3d4f5aea2d2d3841e158d485ca7ecfada03ada9c316df25ca07221e4eb6d51bba428ec015ce8fce930a1cf6be80298cf8dd03ce9425f823bd87f39bddf9b1087bbc0a686df00e48ca4b93c1037780d56c710b0219ffff0370184e980eb3fb36cd16a4c3d85d8e2696c89974bd4419f13dc90b7a943f4659034723aa2096c8afaa5f2d0b2a3da75b834a29d87941106455ce8c64162a22049e032ed480654e8e53af46934007f5c1ec0a3e5ee0f090700e5e00cedd974f2567770219ffff03413ff7dd2543ce77e3e3fc0f50fa8e415ab4fe054e0e7632e2fe5a1413f98b64034ef971f2e62f1f63e1d0b209a499adc2cf76dc77ef63114ac26728f6167cb743033b07b0d1448e47535a3f0f00e96a3c694da0d902f4296c10f06716f9cdb43f1803aeed726650a47818f4c0d68110b9febbc8b638e9dca316a15718098a4d5c37fd03d03d31cac7751a1598ffd9601385759f17e14fb1f98dec8cdefd01d00a31eb02030d2db3c66cbebaa2de7238a27e3768a8e421e07a1021bb45cf8102c1540289c703a4ced820aa6e7eae9faaa2f795b7f50fe8a1aed296ef9cb33f6473f9f70c84c6036119a162debddcf7b06f49aaffa6681084d5af5c7a2fc312f51d039a228294c2037c8e781de147302af6e0e2b680b927bbc1136b89644c1ea86dab9e896d93d02003779b3ba64f90166b537f3aceb403068ab8869999f8cf450b249230406bd800cf03681e7bd857d8321d52759448717b3a6ead25af396016d4b8c9febedbe8d6bc37032d3750ad0e493148fc941d2d90afec0e325708b34bd8f5894d013f31e220151f03c410cab03a8fc134a7f7f355f15885faf7c29c0576dfaa838286017cd4da1e1b0302be3795a3c6d5da25c7fb22080ef7eea518564f11f141c4639316907ef6a83c0329eda8c277524bdeda191e58c221d348ce91b1ca213746f336966a73a77e6b5a031b8d746abba9c3b35577ff351b3b610dc6f65d0953108263e6bb60c0993de2160366836e67175108a88d4bfdb90a4a4d12b1d34478f7fa7596940b5e7e55f41b150382bde322d8cab41258d2d1711da44b352d9db3d7e63b16557f49b6a04b5ffe4203e653b35c4399f5abf70d622bc825e2dc906c47942119c43066e401930b3d53cb00581e0223f528c2c0174694ecc437f5f456628b7a7076ba71f7862662dd636d2a463235290e498900581e0219bfb4b5cd5bcc7282251c164129bb661045407daeaf050a01f18d2f424b52b7d2dcc80cd2e400000000581e025aa3199e83451226530d7982a49ed381a0458b3659affc609ce29896885820ffffffffffffffffffffffffffffffffffffffffffffffffffffffe583e32cce00581e0232ea876583f013c6d170ff697ce605f60b585b1fa5c7f6afa0e8f09d4d441a7ab7900219884103e63df670bb883da6c19449cb58dbd71749c52202309794fe4c21f0383f3389cb031888d955d12ba265ccafc87d2056ad4b7aa8b051827f87f945dfcfb6b716c17c03e586efc6e294d0f4f714ab8f4048567c12c5f3108e72f219645618fbd094a913030852317bd95c60bb9b2637e1d8c5cdb571c7fe3e461482abee669d7b44e434dc0310e9983f0b427afb3047c7e50650075acbbb312f14ab5b6e6b0467be6881a9bf039e6ace835905a1806e65f4c29ba035725c620b881659e9cf8405eee18ef732560328076ef6512147ff5e606194ae9a92a33acc65e6b50fcc22afd338627b1c884d03226241424eea0e7edd9b2b10c4c4705208ca52fb690ff75754497c98e175a345033c6df234f7d90bbf14fd3e6f09c48e0470b729e8daef9e3e5867d9ff6b4a14ad03d141778b9c90dfe91944468063cbbb815810ea8a2cfaddc55279d0e737b2ac7d03b185e5a79e22403d1b022554b5ae53972fa742b05ed301d719376521e854242703971c71c9a4c5fdfc91426cdea496d3aa69b0cb278f4f2bd77279ef39d435fd22037a32d9da2cc3f5f681730414885d3d2aa1753102cf431ea4b1726c0c711395da03d341b26f12c337d8902b2c4ef6134545bd5f99fac8e70877fc0175dfbb8922fe0219ffff03ff42915292b280066931c2b4fb9b618b1be17cc60cee251e2c169d5f1caa340503bc1a6e0c85accd17bdba6c3401435daa8e3762b45880b3344d9077921ff6037e039fde4e9ffa16b6199c182a070ddbbb73a3a820984f5df61e6f057580971eeaa90340fbc782e9343206bb68b056be8171a169ddf7fd823015779122055727813b9803715708f7ec3cf9e7955770476e59f148b979ada089723b7e1c52e1279dc1a9880305a435465310ec1ab697d1aadc0a93e37c5dd48bfad292067c84f8d4953040d003c14042e67556aadbb2c3eef6ed52f8b5f40c1d62e5430351212c287210b3e2360346ff89557ef2019fa92bd2f6c01acd0c16a2d2d8bcac302a8feca946c45f5e760219ffff037fdc2e474588c649a3ae5f973677795575819fc48ad4eab1d0af0f7f4aeb17d80361f4983ff99d26ec51904c15dd4365ae3d1409a4f732ace39f1f1d4fad56fe8a038ad573dd5e114e8d5f7a30c7ff9334bb084c6532466364c6a7c2f9371409fdb1033c63c25b98626d08fc8d604dcbac6da0db6eb09c91703dc5af7da10ae95b93e0031576ffab2d32da381874f7ef6a70c928696be4f721caff893108048dc397773703ec60ca1732a1c784f2ae52b57e42682238bb113dca7548f86e126ff0f174227d0370e53fc14c3106c54cadc0e10deed8879dc5b82ea0eed1df55c7836ccdb7973003fef64c0c67dd526039f6ea32ea1ccebaf94ad92af3bb4530d291ef5c8014f27f031cec132fcfd968f53dd62fb08ac1eedbc7ec4e0a4ed02999c0b1108554664e280314cfe9cd64164abbda351816acb58651abd5cfc8d0fecf9a49fa67af0c119be90327e1dab172cd16b2cbc29ae183cb5d0ae4886ea4735b7127a732e806c7bdd76f0219ffff0328e985eaa89adf431d14a0aac6b3e8a0dddb17e7051b735137d9c69edef89a3803a860195941fd2845859df2acccbb30a9f40b504b4d4947fb3190d541fa85ced8038307e57d0a333a6e3542ac82fd2753f2430da1633b757a273acd2513ee6b571203acefe3a89ba19129b7e5db693f841be5175f78d43b7ab99a703dbd25e42ed1a80319df5ead19159efc24a6265aa9a85f0cc07b05fe7f9ce256ed415171e286e16403186c87cc495ffc43b90ab348ba311219a275337fd1177544b9ab28f10f2af3910301b47c57810364bbc2a4671432f0f97d577ccaf40e673f7d80cbe472e0a6032203b45f3b9260c67aece9b63226bbc52e0823976b94b6f9009821b5b64622510df503ce1204e524d5e1680b4565900a0201db4e829c5319cf1366812194b4460ffb3e0219ffff0308d6c1ca9a1c96360ec61713c98a73be0cea84fb13be0ba2376d09c4adbec5c2030cb5d30c202c31526cb3a064d1ee8b21d0b1a2bab80eb51f54b5fa1ab2b83853038b707b2a0380ff906bc88a798d8ee7aa6215a24ab88c800ae3262b299eb39ed403968a90b4eae14f4ac5e51f728b0a62be6b3da147c7d9245594ab1a79fa58bf150324b41da2e78aef6b2a83bee45570e5c73ae5c9b37a814c7bf31b9239fa11800b033d1ba0c95b5fb7aaa46a5f393748f9c97c45afd443bbe1c9d5e3ea88c39f4c71030fd2926df3f3f89404f5a538172aa1b53a4f5bdbcdbb65781d9db023e5eee97403cc2658945ce2eb440ff849844faa694f6ca5dba065c5ad08654b6010b34b3ab70309de18eeb2ae6234d979887bf774c47518e4df488003bfd0da11785d1818b4b703b24cee1ece1965d70a5007580a7d68bbcae7bbceb5ef7b2976c01cea2229d872037dfdc816f63c96c7cf91113d73d32de438c44a8608c94767d01c9853828e6c1403a7185f167180b381808f39ae9295615f2182bc89ae6bfaba9498b26b10b2539803c7f241f275db5f5e2165142e3ab5c9d7bf1ce78a03735fe92385f99bac49cc6d035655a64617c0bfb21c9a63f3802ae594fb4875274b279d07769845b9513a93bc03068ebcb29375842e1697b79710c0d4f0712e74ee4a56cd0bacb0ecb6b6d037ce03ae13e6a79d6abd65702f63cc5bd9b423d3e9dcd6b2a00852350e368963fffa1c031eb4640d5e3b5b650b8cee92850e34c73d3b3db309b82fcbbcebced850c333c400581e02812c5a10a56d26db280b70c0afd5e480044d135397aa6d5210b29ee61f4c204fce5e30444bad38fa535b00581e0256314af12aa1a62859483b57f6a460b4a8147494e90b2b46baf775255a43016bc600581e0228215899711e292069b2a3126138bf052b23c82af7b3f0b31bc7631a855820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0211a283bf1f3c72fddbb6685655680bfb71e21e3be1bf7b410292969e25422710038e64c4df426e92d53cae8145a5be45c1e3f0b26f9484b7aa0fcea250548f8c8d00581e02527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6544914f61d25e5c567143774b76edbf4d5109a856600581e026c5232a972abbeaca7064450c7b385ab511a2f17f27461fc4afa9cd4935820ffffffffffffffffffffffffffffffffffffffffffffffffffffffed6614a38f02196d9000581f0324b32423619184f0f0fbcc857a2cb681e8ffeca0dbf31c292434286f03805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd96ef04803ce3484fc11cfe0a1f3a62751064a49dd0f0a1e1ac0500c909936347cfb47425d0327a3ca5a4bc3a4d2ac969803f550870602feec8b2f261077f9f112c737be929b03c536315ddcb55934136c59d370137f3736f0c56b531029facdda4a6dcbd556580336dd821befbd5b0b7d1a18b83c78999e69c0056608c961ec8e3e3c24d497e09e03f7c2cf0ce57ca8c5deee4efba1f46b5df6476da1f5905ca0a1d82654b32aa24a03192e78bb3b2e31f9ab736afd98deee29dd81e06cdad3940a37ad88b0361a48be030cdaedf1f014a2e1d547c4aacbfbf248a0412d1e293eaeedab411101212dd74e031ce258e1a3d5c8e3451fab1a73f0e78d9baa004811c75111d05d4c0b37545121030b76f7b2ef016b75916f53e192ffc30891bc8b373e024dfd46baef467553bd4c03a67457f425c4fc360a80333f5c2cdbc2054885a53b3fc6115058c335183609420330f279b3f1d5d2c2f4a393eb5c15ee6b7527c212d968b3f6ebe1b21d6b4f2f8103fc0930043a269842adf8fe2a649ddd3a903cef22ed065c4dd6de6859782dbef90219ffff030a431286a0537f3b9aa2c17b08215b7aff3afd085e3208fb79707f31f523cef70219ffff03705b82c51fd5e1f858d8e7e3c18b9b1c76bf3ae406a154d190ab2cd6ae01da5a0369859020aceee38dee2427458b92eeecf3c44867599570b7a26dcf6a72ffd84f03f35e37ea7b15a956761598b944c51028b61f786fd2d3e9f8343fbd681302b8ad03adb4b571da35bfa4c4d29bf0d8f35bba9381694fc30c780fab6261de66c9de0603a5c1a5b2e6aaf181555b143e669c55896b5ed7c51b86ce58e155027e33d2569003ad0bded8612f884c2973f44bc2a4dd720c435aa01e7d8e2d9a9d9d31b0d0a49e032c5783905fe0113357b53e294dafd0f6b60b52839a47bd6cd63bcef2144a592103c3174b6226f321ddc17469c752572b853c24bfc2bf0c5961a11ca186237d4e100329255004519511c589dd6e7ef76902d8d2ae52349657f88c594f7abeefb89c5c03184cd9f5bf5a3656ef072b4cf0182e55bab9abbbf3c3bf548c5bef89f1bb2b7503ef5b90f18b07be990e0664127603aa02c7cec9acc0c7a60583fc23cdb9e5696003d5f9dac2b9ef5bbf5014a43bb698b8bb147ef8b62ba466adc535a21c42f31c22036b474f4a8bc998b24b26885bb445fd91b50c18357c96f7312cdb513ed3554ff40346e728746883efc340c9ffc6a99754fa7e02c659d12a713f5f4cb604b6cc78f1031852191761b4c4c93be3c3ca3b1017254adea105f5c704fbbcaf290c9f81fffb0219ffff03fbd42f9419105daaf449557eae35bf4fefba650f77dcafd86dcf3cf6d825b41103b6e9b9842d47e055a62b88df871becdec8850ed7c21fa9c0e4460251bec44d47035f0bb80b812e6ba096511a4bcfb50d27201f7c8b90e7b647a2190871b8fbbb4a03977584bb47b2ecdb29205e7fdfe1df1dc0b27a7e3cd6c0da679c90b88e42add1033511a4422e9dfb043675899c9ba5c56fa40e1966ec7262acf5dda8a0ec26c3e4038374791ce1fc2f298aca778f7db8babd2f9517dad802cfae7c09ea6794937055033ef8cd3cd9704ce691958762aa651a2623e41ac46daa618c45a1213408606ff80303e5d658957d8ab8b821a5759eda07659a9e4b928cc31022623a283b185c348c03fba1470c67b03d4041b24fee0009169a9c6d04bc614214b06f475d48a1ccfefc03f70787c3a8734f514c6c0defac251b3c1c615916b0351ab72a260bc953dfae570357572b87387f2498961011b9a564151dd8a651e4427b0d5229cf043b94f4d8460328b5f0d316ade2686bc5604af7d02e60075b6b5b329dc9911e676f4e5c8facba032953e769808ffefb49efa290cd7ff65bd811175faa7969d2bc1c88d7ee4bc19203ab682359f9eb5c2a1ab3ec257d4ff450e615e377848a7b9f4e1b9f8ec2071d740219ffff03a6130309727fe5c29a5343630deea2d75fa85ba6a5417d83c15d2346b09d77c3030dbca33f928a5678a9278ab7a9220984fdea219ac2a8b7262709651a4d169c4a03d074b974a704873718f2a66942605dc651d0eabf63c0ce7008938f52252ad7b403efa72bb8aba465bdd7851f74d59bfa03ecd10a986582f7c83877d61dfc5ff37503343084523a57dac6d45a3847fbd7d5e219d6084a2b4f14c50c1fbd7fa3e88e3403c87c678204bb22c25cc69c7acf242c673de65d5ef3d928c18b0c4971ccfeff4c030838327e6dcbdd8e8337571909def00bceac1f46790eeb9707abd995c4a3dcfa03e2bd9e7cfb8654b344a9b258e3553e3a51cbcb5300c03c413ddbe394934f81720349286df06eacd82063a37c0d05b643a8d477d91ddf2d70012de86e209e44281a03aba6fcbf2f2765cb3b140c5af8b39876b78bb401693b3c3e98690f488423c20303db9d5a111ffb4a1f9526eaa6e5d86d0bdca98063262fe2dbdb0c6cc7e45a2c99035aaa43315c941fe883808479adfedf3102f10c32c111f03677e55e0eb75997a2039cb4e90b399b873782684fb84370aa1da94befc3090f14479a992b8c5f6b5d010330686b120526b8ba64966f24af5e1b27e60f1ae8d592a12250237fe2d633698c03d0bfd92c5e7e4414d668b302e36cb25e02782769ef93c1bbbc6cd4a787b23d8203286d6c11fa6ecaef8fe2d4674da88760c2040a9bacb333c5541e3afcceff8e3003d33662acf2d21a0863a755f810e242133d675ff7ed62dbb40b0e1916ddce5a7403ac987d82dcf27d2767c7a99efabe369f0e3a9777bf9e9e8103faee00679a40b5031558b72e6715bc6df1f2f34a218ce4af4c94a0f9155626920c7efef178b18547035757711b12c7b62ed1948dc385511d909b08b2f637efc3240f7ccbf6e191ef1503f9d5beecd5b177ce691e57ecef37838b16094713cf44f8a5b0ad339e330e9508032353ec98dc14f5c38cf251945d67ab96f4fe6bcabdddf8ca27ebb744a9d1e4550353212cbcac8a76a5548389102000e00b00cddfc6577265cc6105d9f61b8e012003f92743fab10c6c93b851c918444de45b9000f3076d2a32fde189f0e567d47361038ef9d9fb24605b5973b425c16d9656931b0fb2550f54d7c70e21aaa960409d0203b27cda4a41a1f9ccc296cec7f2cd40b283e46020c9c7fab7f682bf96ac37f2bb037da2a2e85ecbee6c3b58103ae456435cf95151b05778d41a00a63091b564b9a503905637c080fd9a6f519a9b09c0afed71395b7ef18fde9a09dc6f316d5de6647203ce23dc7201bd0f2d106d5661febc5b723fbca1ce5ae98774f6b412fa5ea13f2b038035acd51a76277b24a6a0f89ac5d77935b5c246f9db981e9810063dd10902d003c9e64ce19fa4f1eb2242ea761f11e58db26815a5ee9aa561604db8df988ab371033e5b1979c07503c33817324ecf71a16d242ad57ef2c0c921fafb38dfc2f23e76034c9eb3c9cae196e067afabef8a6fd0d90a06335b69fee7216e8e9d7a7498acc303615a2028ad9ca37c83681e6877002665350c91cb5dfbc8de7a6696bce58c8957039d14943e9bfb532284341e4782a9946ef3a85bc93b790a5b2ce764f399ae162d00581e02ed5f36da610d8cf644f73e0a6076f5ab84e45461324ada5fd7924c18cc5820fffffffffffffffffffffffffffffffffffffffffffffffffffffffed5fa0dff00581e0273ae64753fe3200b01e293f2819107779d630db13d440696e28ac80b3844017d784000581e026c3d3bbb9457c83fcbb42e24feb26c77f4e09ae60d61153df095dc709e430f424000581e028110d7aac61f665b870a39be9988bf9042c1597658dcfc7755374e63c0448e48b19400581e0289ac74ee2c83fda404f465c717c0943f1355a8926386ebb989f1572be24359704500581e0245eb021716fbca7cd2b2e80fafa0108afff964b2457b78acfd0f0af4b4451741ab496900581e025b15d4e9d76eb538dbcedb842053d7ded098b432fe84d63c1b187a70b745039d8d87400219d234038a3006badeecb3b832db5283ce554ebcc90a96908e39e8400af0c024314eaca903516247854869c710bfbfcc33885562378fdbd1abe52c61a5ad3980a4809bb746036152ead285485ed26401ecae53ec8082bd30cc92fd5310b540f58d340a2853fe03a744befab9de26ab1219d3cd707653455e4ef1a34e1fbc91ce5c69f4c9f8041b03a353839951411239ac0d6ec6c3d652a74a51015563a73d1952c5d533dbb4dcb00219ffff03744502604d2cf2a5fb4ae0ee2d6d86d9db89aee677ed619f2ac21d19dd55c9fb0219ffff0328d5eacf317ba7d9974d11852770b2906b4d97afed17ffa4b8e33cc28a26c2ee03dd2db727e1006d92e0df6606609abdffb5227bfdb0ebb8220fbe02e57cadb174038721db4317b67ab6cf3def7b3852add39eab575a82e4e95a5d216371f7258ac403f13894fe9c3717e25063e2289f1ae86812a8c8af11036fe5d50258016dc265770313867b780756dd1cb3a07564025238c93e026ffdceec52b4fec5b1f92fd76f6603439b791166b1d1a50d59b8dff415a35c17eb6f1081d4b9cc7eb0cec4b2606f6b030cd22b83fb039ebef64cf5378d0e741d2848b2d1d66a901a6434482ca672920803b52e109f2e4e3b3f9f2517a40b8f7e9c0668301779cc4bbe5fd3001cdf61ad070219ffff0376731babbc984d4f8074ecc6fd9c804e6b52119e4de231be94404dace4d7d13503f81d2fad414c4eafaff6fe17edf19a3c0a8f5840ffd08ac4e480559547dec0c40310e57ee97545a41a12560def683d5fb3dc921001ddb0588fea6b13c40f31cfac038dd78bbfa3838baf8177796ab837d7a46b3ccb15b097fe95ab70b9929c62d32f03ecb67cc597597b4a8f315caefa96cb2da0198f5bc86c902921867643defaef9f03bfd6099611749373a2145d8e6da58c5da234b40e3ebb5b258bb7b53ad78749f903c8201a94f8dcfbdb483bb496532e7a5620d9695f2d9aeabdf67d4768a872e684035ed1901a3856603a5ce88940f0b2a9e8272bc488a1065258a6bff00babfae51a03253990cb3258fc85c7a00f48a04bb70d3c3929cccb3e32349f055067de8904c9036ad3f0b6ad19eca85c7c976f3cd616792dd7a582ff1ae8012f6183da7473b6cb03f1a5cc840b53d3bd2daecd92b93479d0993ab5eea69a4fc98b7d989a6c3603500219ffff0378ab3b018db9d6330004662e9c435d09216c13fdc8c9093c41bdc9db6234bf5d03c32012fae0f59cec080bf215e94ed42bfd285b5a640471d994af350df5a1bd5b032dd3e4584122776855d1d9ac8a9850b4a36578fffb9f9e7256568136e3735a0103f912fccfdd3c9ad5283e59751b9fa33511c3a28ef0e597a77d6a5f92141e670f0314d6d0249d3d6890142709e9abb1b3fad37acec8900ea71dd6b1669158ca44fa03e5ce5a7def3bba9962278a792e83950ea95ae2b2a49ebc7fed91d3aca4143a8603eb3a1ed25dea91587ddef42ba6d467bdbc2191d0716842172fdcf5395bf2d28b03f24e99afc055131804c085ccb5ead1bef11a508a897608141ddb144561179af6037c88248aa6d4a30d42bfb9fc54bfb212e33fe91cfafbc583825b320d81e175830371866df9274ebef4b4caabdfa7a5d956927e7ed3866fd0b2a91bcb7fa5829e100329bc1f3e972af15775b13638be847ca67222546bf29b57a3deabc69216641940038c3b8442054029a8e6854eda6c08aa1aa98de55e24f79e973730986faced2a0503b1bd9eb8fa5b05950d904ac17007cf74d67a462f922ed5ba5dbde4a78a426d5703348a9ec3d8aa61b093d3b04d4b0237ef993fabc0bc863eda83d4091b5761193303e1543bcbafd52e43933569b43d2c9de14867d89efd61645915a6d47ba77b1d3c033ba290274a19ecd94c6cd20f53fe01527b93343bef38e1d32518bcb107e2146c03d6a06735c04db98c7da27338d061b4b15a63138e9e8f8fc9adf5a5360cdbc2b5030e4b3a0873dd12c6794075be9d758024ec94ae03ecb39fc10f3d2714c7b0ace4036b488b5ed50d2a3a41401ecc73aa140c5e3bc54fc426379ed5688e7a402fa93f0391369053f7d2a924084992e3abcaa1ef126c2e85029498f3e07ab60f23b8e5f803276457432a0ed8b42518d927f6261fa486540b38cdf961ef6176f1fa885389a103d5df821bafcc1b7a75c7a5cf9d76fe22d83720f412c860e23f1ce60a5ef7b2e503687e6dc9454fb83e19b723d9e0566c915c7682b7158aa992e759818581a2c8da03345dfa92d1c277ca8a077349240cff2e0c666729c8b7025b5f95571614be1fd303763b0425787e250eaed1567682b211a5821777e066b1aab559312687d5d0a52c03633338c4e2fd86e70a18e1890462042dcc0c6c676a232b27f8c4317ff1136bef036430aaee2b694901a5ca18e2a085da96df7bbdb5809f02c9ad83420cc3d0b1e3033103fb4066579efd718ed13c678ac0f9a456fb33adf933506dcc8a7fc47ddc9c037fbf4403e798126a2f07dbdf3ce361e99b12b7e16eabc195ef76acf6fae9ec9b03baeaa8e2fc26407f9c1bb0785c83fac3b34cf7786468b97ff28640c5e326ac5703e8bf52dd75907f5c219d72eaaf5f85e8362db48e001ea76e4ea99a2147d320c9039270e9cbce922f5fd1b8e806a3181ae16fc65b28971e69509374d93ad45a050b033abb2649771aee8f0a6d978ad1dd5a9cc0bdadde3cb3be29b861d6ec799b6bba03cd3c54f8eba5977c863baf9f2cf4e1154a61bf5710aaab9b559d3115689400a200581e021503beb4a5013d22c0f4d18b9898691e28fb47753e4ccba5354d7442355820fffffffffffffffffffffffffffffffffffffffffffffffffffffff7b9061f6200581e02eb6ab0dcbcafea631e4a084763ce6778c6fff68615f08f1bb2668bd1e2410100581e027348982d201546f16b15d72a65a23291fa01ee28aaa488a95c32f926be464f9e67c574600219800303cb3a8ad54f892af71f0e34ef7a1732de9997d4ef337d8921168b16152748453d03ddcbb87bde6f60b348a23c6dadab7140b744e3e5523c3b73a375baa0e2e611f9030af64f7c262e979095b21e6d80f37b924ed923f992ec24b0ccc94799915ce41403405855caafa8a714275fcf8229dd2c7828ab44c8fe6fd76ad6e271dfb016e46503a255615bbc5e07c6dfea4a7a703945df8fe58089f040a611d7412e76002e670d035d62b697e194f58677b28999e0ab0949fa3d5609c8b5ec82cae5942b6443baa903e884c897eebb9b915da8f8a137bf8235eacebde7a7801637959453f95faff5dc03307988567247e334d6be3700e97f736413e3f6da9b1051bf7a27c2dc5e9c58d7030fdde304feee62589dc9c1cd070f27a5c35919099caa06ac69accac0c6de71b403524b5c062f16cffd9176d42c767c610c4656f4d5fe818897ee2f794d74da8a040219ffff03adeb0353be98f5b3859d5c9b9c719bc716c7ff83087064a22a300bb47b01dacd03d06aeb766723092d1de1ac052ec94cb395caa2a6c34b3e720400a2150a995e4d039da4b32bab30de0425f73e3df5c13dba815f51b27736fe52f68922c5227556da036a1010432fb3739266c1e813ad91108ace114ec69f65ab1cda6dd9849fa193eb0219ffff0219ffff0303873c9fdfda902da2a3b3ad1844f4da89176b6c557045e40777c5e8cbeceb630354a070b2d3588bd247cffc4598b43ee8d2201b3fb0b9c59ab450e46f128f319903d1f85017d236ed7b23040f2f7d8b9fc7a1fc208e5e8cb46051c1110fe299e05903ca3f8ff97f3d4cc50d03d2c733b6b7103e490001335a249163600fa7a2780d2c031f9965730005fbdc421ac18fa9678622d28a18c098f6630b9edd5a1be9728dcc0322d8a6fa76a6a49ac7ee7dd56aeee7e9ad12f9dc42714f4161655f17292c818303bbfe9ff32c2df4b3a8dd87452f5509edcc8066511acc187508814743b731c99f03da89303e50a0c2c3503fc8b2bfb72d34adb725fb0edaa57de6210686f485b33e034bbdc3f78cfe07005b88c3d1dcf480862dea5ca6d9a2ec185ee16276503b4c9103ebd7d7aedc6a8cc37cb5a2bf5326d2559234b1e58c6c0e59d315055aac781bf1031cac04f6ed5b94456b020ee28fe8be45f1c3acd3434d8ff9df1af528075f0e8f0361133bc299786c539791fb16d5ec5a84e68fc82c7d697523e4f2f676f65c7b13035fb9439018c6cd330c7816342720adcc80c0c1968e611b564f138e56a7ed3ada036093a45e344b60dc8864a430486320f65406a9ae2f8c5dbe4b55f89942e7b3c7036a54d28851afbc72e98322b1ff4d9be2da69a04b7132cf25577fddf72ff90e8a03e048dc65d44417249d7c9a8f193dd2c313fe4d1208ddae6e4bacc05124789fa003db72a73f570dc0a0db8382dc1b530b448c46213bfacfc4476e0e2d77189279e703a053635bf56a2b088370506b69f3156c2bf802b299ca24cda40d4f2f6f753fce037460f7bd4864b38c2e9ae7887cbff3761df7f0c630386f8b161ef92d39a13018031e5ccae951ce423cd8c4c14692eaf451f268a2151cad3f1755a5ed018a9dba6803832c3b6e7b927243c0c1de1b04b2cfebb56a7a2f56af56d0997315eb3d21822603eaa4de47ae9e5fee880537c56b98d75b08adce63e6fa181d4ba669c80ac7a070038faf6b26a0e8164b47452d6fb478c2db2ead456c1ec20ff002adcf05291ac82e03f853afd87f3a484b0a9ac9c43040f3ba26713bbe492069d7bccdebcdca83c0dd037fd7497fc47deee9b6c552c061e1af40481ac239488df8bb822b94f1c135618b03489841e91d4b11b9f8fb085c45910f3d8e82d9715e2a2f2ac461350035eaa059031db3c777b422d2713280017a011f55cfdc8079011bbd2195ef200b402839236203589616dcd85e8c1ebb532013828af014f165a61c94ec1c256793f607ac80515701410103deccdc53af43e3cee1d4dfcb2bb3ee374e35387295b006200abe4bc6d569d29b00581e027b6fef298d5b6b59a4ac41bd3b48e8629fad8be2109aaab5b2d2efca135820fffffffffffffffffffffffffffffffffffffffffffffffffffffffff9e7222900581e023e278222592fc1b2f45d34bbda5153315e0e8cf0b10e52fbb9d8c39ddc5820fffffffffffffffffffffffffffffffffffffffffffffffffffffffff9e5ae5400581e0242f1e50470316cf22e6fbcf42580d45ec6063b714e458c8976354081e6472386f24e8ddac000581e02095f2716d7f781117df91736f2b7f6591fd2c14c794cb7fbbcbe4be8525820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e028177614e9a3ad69b0745525fbe0227c220bb5e88f7ef6ef57c83bc563944328c1aa400581e025a5e41a6a72780d9dec4d9e2478504908d77d9d4ddf15a99bc6a242a2e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffff8963027f0219ac180219ffff03b6a2c8d7baaea1232f0e28301d8fb5bcf7f095d2c1f83f7feff0505a2b6e88d003ee776be7a90db9105ad4a5d7a600056c4eb6f5dbfdfb3e5e8f8ff560a2b3666d03f9eecd1c2002cf253aa807779260c71c0aa70d25cf5133974e3e76db7862003203b90330521e3edadac5965f05cb27ebc80810b86f1f773e6e33bcdccb787a8097032ebf2ba37f5612e83b754263afa3144562eb8d8c185236ddfb7ef2c858f21c8803ef40863f56e190a1e267a8c4e563214fe1b3e153b9b65f80d6c7aeb014f4b85e03b78dcb30074a67f1130c948cb6507c5a14a9228f9d9767f770c990230592b3b203bde745c69ded73e10d739c20a480220990cc86f161a3f344ed51f4d262e87ba9037fe26c6abe5c1fbcbcbab99badb31227346d108b6c42a0d7c7975fffc7caa806038b60ccfb014d1a5bd38326c9e67f71dcf9f93c0e20e3f49fcde08bdf9f99854e03f59a083e82bb1233ea285f2eaf5fc7c848d8997a71048a62656f04d413daa64d03208ec49d17ccc7367c3f6020967204d777a2affad73cb65a020fd6bcb9a9ff970349594c1720a93c3d2b91832c706eb8c8da864e9a8657d3fd9a1af91440d914720219ffff03d212e92970323e2d24629ebd1904dfaba28d294922ed4bff7bc0484bbb29cd1303fb3a2b43bdeb1c97f7bddf2ebb5a6041690ea08f74f3c5007164f6b5a2c23bb4032113728c35e40ca55a1f2e450af5bda55f06bde2932f994b978f3b1fda833a3603b04e4e0867b0425a8d06d310a2f5adf06a7f88a8f768c512750fa55e3fe915d503c00133799a606513fc78c608291c7477676e4e52831f07b56fccf420e7690e290384ba74405048a0d56f6c14884d22ff1d894432ef915106dbefbda278a3ae2a5c03524637f3b181ec31230ace4f415d57d3f559b388169f9065e2175063964095db030418d8332021655c0464eb5d41ad11370bf302c97ecdf1747ed95683d0539f5d0332e5726aa8e4a125e8a825142419af74ba7f668beab561ece371b9da99fb59fb03eb9446775dde913cabcf8fe932c9cc11bf27ee3e56898f0f898d6a9642cd04fb0219ffff03af2ec18a86e18eb27968d73c40bcc3729556d8f9abb55fa65edb2cbb22a87a0c0325514273aea0b7e29e3639f8d0234ceb84a7ef9f61a1dc32e1f109589ddfb36a038fdb3037a0b142f12f38f87d391af0b385c9874eb0b8dda68a5b376fc60a604c036b6b23a502cca9f36bd6d352718fd36a094e40834cc88334ee370ab40d5cdd7703faf29ad217f67fe6ea98ee05985a504bf8faf02d60edecdfeede0d651b5bdb3a0324b1a6afc336bdac3b6ef723ba8121cf5cfde60eb34b1f2a82022972440359890219ffff0219ffff05581d0292cd7f3f78137497df02f6ccb9badda93d9782e0f230c807ba728be0070119088a02190a0205581e030864713ac2db5e9db0684a29a85b09f8e2455d445c5cf00aa58fcacae0040105581e0382cbe9e9e102d9cff9caf9f978abd0677de42e743578f991d9bdaeb2900c0b4705e5e4dc9af40002195ee7036e6d9c7811fc2024145ce5a190f8161790dcbd95d4512274e37fefdd49a72f1b0345c4f7dcfb76e8d7c20d3c0ad74fe1da1ff8cc6bfbe8a17153914ab4c3a06cc303aa58ee2f8bb070ced07a8f863d9ae4e0eca604202bbb43a111d46a03b686ddf603a0dc85504016b6838d58222a9398c483d3d575d0e3b8e429c871f0b9cb59f0eb0304fc7644d8abe69d5c754e754dc4bbea20bab618d50b57e640a83684673b19790388faf53a4a0f4131029dddc9b8727aafa80abb6cbd6e8438307cbf1fa7fe3e45039473a4d05d188f361aec6a06bda7434a1d61357b454f3e2ceed0fbb306ba4c1f03e5a25bd1c6dedb6d7eff3af7bf21a3235666180bb7900f1d29c9febeab7fea75033293cb98cec6f3b9fcbde6f417c168eeea5d9ddd98e1ce7f441e2bce94ce41dd0378a6818c13eb82b0af880762ca82ec9d6e2f7ca13f6d269acd6e565cb49356940219ffff0313360ffffafe945a367d7c110ef83e7e19022de868dd5bb9f61955297713cae9032501abf1a93e82bd1b41671b6c4cc94c1c75c457742ba963f88275cc168452dc03c9508fb03315b193f03a0ff91ccbd3322313dd5440745f5297c85c4773f95abb03b45d7e23c56857ebe8e5a7b3008625fac16c8609469899cc18bf5f3e6a33c5fd038c492443ee15db1d93a919c836665aa8cbe7a145828691deb06ec80c27a6085003fa4bbb05051a04d930652977a45914627777c9d12bc0f994516c33936a44142b03341d0104653c69311288fcd13f4c564c8376c5ad9baa85d6fd06ff8fd046f9aa03f34e251aa042aa7b7469dc6e905369c47c79fa41ee08b403b5e8694f166865ae0346baf6577d84b0da23d0be0dcbcc52472a7a820862bde20ee8023defb53bbca7038e4431d0e3c5665aa77dae567a22d651d097ea1e8b900b9d7596ed9daf9f807303509f93747f0b3338b140c67fa4fe4345888e934f321b495b0b393fa88274f55c036954e778a184fafb9e62e7d0ab6abd60d46856a6be9dbb9007ad36ba98e337f303e8a24e8a51158a76b3610b80636cca341cedfad03d91f9917bbd475f2f7b4e2505581e038a525d49cc4b882413035274c74c0616941d9aa137598fa52256d48ac00c014718ce01e696fe0005581e0342f0657f02cde88cf8c32168fee62863d121d70cc553c0b45246586d900c05480140a77e0e98740005581e03441eeffbad2da58c7de92287bd09e4b2eb56947c542b06b301082d4bb0040105581e030823dc6c7974d9adc999d4ca4cd6be3acdbefceee99b7a198abd7794900c02463e9db709fe2805581e03a387893f7d099919e4ce569527b2574b90634714d18c41ef867add3dc00c02470e6a58baf16e000384ff7f2208e098d4874e84fd055310a66cf43c8c98160258321ff99d71073519032374a98958e2c351cf02c7d2771c43a4c01bd95e5a0186564c6ad01cad823a2901410305581e039d4f69b5c06f73840529f2c97feb4df8e182c34b398b69fa0f8d0808500c0247017f4b9d638b20031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e0344045bbc222078578ad2bb44fb98e123c8360a788d812bee7c5c6ff12007011bffffffffffffffff039229ae40d6ba19213a5f3d6113d65ed116b7afb80f6bd57dbced4180638256c70219fb1503dcb943c7a95f28c86f5c4982969f4386446b43110c0ce30f124256fa52326aa00347bd32a2941d85cd4100509c57aeb9ed91f045c655f8c9af1a984b9c5f66ea5203202126a413e313d746c0fd9ce391ede9022d4f968682e175d875d1215f0b17b60326fddc80bd4f7af61c6b33a16e96af75ea9c6d2bf1c97cd375ff538a07a2c60c0219ffff035960f604586d63549aa7ce29ad2f10ba25d63aade0e99e22918558b82e5776d603aefcd60f13e301aac9e8aa5e14f69c6e5fee9314cbb5b9e67b0ae9c6143b4c86030c8d8b247a39c3a3efce29221657611b63353ed2e5a91de82095f857451d915d03ebbea98de02a0a1197e64fdc6930d5c12d351fa24739e00123628b13fe8eb167035888349ab85df69757789183422fa23355b07566b13a923bac7913d024c7fbb00362d43f6b838b4d30d73ea5e6f769cf3f06226d78c0ccb61b3391416b62cfa5df03d6bf4016ca4f020d0240e8ceda5ae2d6f8d720f319dc9140bf349e2900def7360219ffff03b2e722a76928368dc2f83ce33300a9fd4912e64dd0a29c90ff1e1028931c2895038d954efc30b42943d75aeaeb5e8cc32958c7224c68bc23e1da402880db50488703e06fb42047906e4555235d83573b810e1c5302b846937beaeb20ae53f5a9dd9d03242f663c8293e60ac3ca22c634ab9758a9852de459018f00a8213530b295dc95037969725b8df8f6e209b5fbb1abfff8b65d857bbfe3067f5201b4ad5f681f4e360323480850b4c556a2b473b8ff476abf7d51d85d95b296e9e6b213ed357b63237e0376dd4352acc3c94fceb1c7173a08badd8fe27ab2ec80186dc571c70df322d5b50219ffff03d63794cb550db7c196a6b957a3a72f8d50b34365009643320b4b5e6f44049cae03e892c77e4aff78fcaf6a6644e4a295a5a4460ca160c573a7739a0e666985bf5f03cb4cc14148256cf4acb4c49e53cf32e7e473f5d49c817a9f7fc374e53697295003b90d0804db7859595a96ce2597ecdcb2610f4ae4abb8573ee851341f9c51057203f4d0eaba25909a44d4358ade6bd1990241db0ecbc91192e33dc7d1053805c5d6036e219618304824b417c0aa24ffa4106c498b2ebbbdd6a71d3848a91ca09e351e03babc6798fcb30a6219e2471413977240124680c4029f4bec5c7dead08211f247039d1ebbc3bbdb1c17ffb36ce310b4c9d72d3488174d58931bf990a046b12271ca0374116d065014058304d5beef94a46c963b8ce33742cda77d71dc79faa1d9ae4c038f0d322ee42eaf56e9bf77c281d4e73e3376cf3375432a0f9b3c6b48f34fae330359cad075ca51ef8c2db9cc2ee673eebde43cda234fc8a4c741fdd1ac33058c4e039cf4bf099c65d6a22a0eee2ea49ca10d33def656af50e182f33c0b2daa8426260343d8f6d328b14f76ffd7baaf418fc707facc7b8d922375a6cfed0ba48cb10b8e0381383643f2228de754aa10d87ac797a346823880c96c4862d43cf19abd4be3cd03c15180edbdf075bf6a21ab3df64578f4191bef1708e60933bf4e5843d9c6e87a031ff0bbc4066bc95977db08908977a8c002fdb796617a47e0d39daf8b1c1e898303b7a51d48ca5af8293b5521cc68ed1a26394b40d81e4090534ea92c439e9920c803b25313ee6a9fefba88fb15b2bc6cbe2ccd7bd8399dee99269b4e7847445e3f64033d7187496879743e35ff6dc0a8b433b0f2b468ef93c459e89ec042a10b9e89eb036b29ba87ec4b1ef9796a557d56c8aeef4552a586e88eed9094f03f4d56872a1e0314c342714065644dfa08e7f538cff94008997314e3b5dc14a39baa1f7ac7ac2903c64666511726a7497899ead19347c3d2a260517e9aff3c45338666f8d8a5880f037d9863d1e87b8a623f47b7677a6e7cb8b8b7e2ad47a07f811d30803cd1e0d8170368bcabb0f8a6cdc42b8b8165a8829d857234d19e7cfe91356464dd814416431703f027ac57c0fd16fea1561b1aaa6a1dd2eca4d1c8e1e59ec5e1622da3b859ff8805581e039273f6bd3e1c6adad5d35d7858a40f1508954630e314f51c0b52061d400401031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03ed48c7512adbbf63c4f0e475892660e762625fb5e090ae82f0ffbd869007011bffffffffffffffff05581d02239488649b4e56380fc11f7ccd1e8b1673de363c6fdd976103f8670f0c034801e7e3001052becf05581d0254bba0e242dea4dd37fef3094a1a441c48c35905b9ddb08ec1e19d410403020a0387225de56f80784220ad9c046e1e61cd2fd152becba4b5ae4cf8961281a17526036f0c93964028857da59d45efa05455550acad3ef86dafab46498100690c7232b03e4fe059c5b2f3f4cf21ef012c2429db65602366f4fcfb73a18adcdcf55ea39e60219ba11032f2c0dee15ebba559e91d188a25d1fa0bfb60e15174efaa78f88c1fefaba39db03a60cbb56639ccdbd4d203a73aaaf5007c2bfb02a18081e0bcbe09ed249af778103869012d89a32cd852b966554bc7cdd088021a3b0c9ac60c81d635e7b27edf03e03aba68f0a0a71b6adf59df276fed4a1c7a5085c3c86fd7b71f48c2acb45986c2b03709c4e55d8d390049ef14a5601f37c51436109c8d42d501adbdf31de4aef21c903a42555500eb80c71d1d88e5175a30a6227958656192ed0a322d5faea61e4990403319c5dc4cae0e9a0df0ac2c15fef168b85acd2cefa916f5fa78e99dd8027f787033584d277694cceeb16abf2769c5f81883b6a07812bc30567c484d90a10ab0d83037235e6cd6bd72d7165ad8430bc643ecf21aca46c8fa7f54419669f96405440b7032bd531fab9392f19f68e9570d02bfb58d097ebc0ee0dd0cd01a5cb26e09570d7034c970697c3a2f5a3b7fbe21c9557350a09eaf572202cf498251752cfe782a42403acdf3a22234bb575f5eff278a30e6cd1a40e929844813cf3a4e61fb634c82cc50346ae742706df3a736a6f49be46bd55a9f6328fed95eef68ff260e4c9107ae77b038265b6e4cfb4d1689a8a53b95806e6e7f0a95338aabcab84810a26d9014329b00219ffff0219ffff03a23a4e1a3ae5758558d73f196ee2e3c4d7d70db9ff0bca6d0b5899fc55bbe4500307089584fa314a1e13427c4ac850edb78dd9fa2c780e71760ce705993c30c23303648f345338d9d083183b87173f84cddb473d63d02c400162145fd8b7af7e9db803f9f44ff0ef1dfc77b353bfda58f2994cee8317be49ec26c5f7c42dacc5f8b93303216facf119e8e645acba5fba2edde8e105a14efa4f5de2d7fc4e9e7ca99ddca0036c356a027631c276b3a0184b83543e1503a0dbed294d48a797b529940e28c070035a94c6669df59e21b1ec4bb2e0b286955a6403f2a8747bcfad1260581c579ce0034129b83d22e764f20fb95f15edea73250be17697b29632ccec7351375fde95e5032f6160697c2ff0fb26734f9b73f2ef1583d819b288453c5b5717a14a5b9eb93a0219ffff03b31add5009ff3443ab7cae27028c3068ac750aa062e2afb987a2ccdac0f2848e034092add97987f7106e90aa5d0c18bb484e89a385585e4a0aa7f91799f13829a103eabecdd60a4b531bdf7a97cb99892b959d00714c5f4fcb40be9f57ff8249c80b038d01c572d15a78dabae0d0189f7dfea41c8aaa1c52c3836985e66f479b6cd82603d9169b203a1a0e2ddc47fb3b58f08d6e9c52b05a671be0f045a913c7ff02617403f8cc4a94947df424600caf6897b9fbf9d54cf97502a14f73027b601818ed92a803a87971ac82492519f2fe9ffc49e642f48db75558b8a3a420be22e8f6eabce0a50219ffff032cafc5dcae08d0994a637ac40361af42f4891f752f9fdcb193632dddcc0ffc82036952f1c4e462c86e238bfe4f2d51ff16012e6a28beda8636f54b703d7336847a03317f6420e293cdffb41c954445d5c2a2b92ecd5613474632515853ed8b112e310357fce22e8bda063f2aa279196d80a2228b1046471070bf2212ac3e277db8ca4c032d24c0793ee5f3b3d33402bc1927186e5484d1bea20ceb932ef49acd042251fe03bfa26880bfc9710db4698e88e19b08f350305334f14131e2823b6e48b518ad9e03229bf5134de0f6c2e56e56716c6c2c2cfd918a170a5488f89640d93f0b5ae68f03dbc3ab9d262ca5d3bb08c520234bee5063c456ee2b45b171627e3edf07c7791f033a7d7cf63bd98d291fb173fb528d2b95a4b6f71e73b8e69818f2a00eff09d1df0371eb121a0d0fe3a7955d6e0ba1730ac4f3a8870e286b3cd15427bb17715754f803d0f33461b53c31350ab060dbd76841155c42d11c1ce70eb666e2e0c943a8342903a339f51d8df7ebee80f1040d43db1ed45c32d3a8b2223ba1e19c9e9a2e3ee37f03cdb72e0d3a1e75ef914e07f044aeee030797e16a38e927162b233dd523f8c759037cba32c345d176941de12b021664a3f2e64bbff22805979ec321722af2349f110393c66273585cc4f47dbd5c8b5a3caffcee464a7014174218e5864ae7dbf671730380983031f4810b1e071ed24c340a5b93351fb72d23c46d7a6d03b1447f08efea03e8a5662de8b7ed47c4a69c33e02541cd187d8f5eb04358385c569b5e181c9744031f56c3dab5df65e4d4aca19e00e9b2131ba63f553ea0e5aa9212bb560bc1fc1b03ed471317ea612bedef79889d731ad87589c95c647f3a0eed6529478c5129cad4036c1704b6bfffeff436c179c02b48542a51bc646a57626a742f2eda7d3acfb29f03c9a6357d4beb069faa6610edce6727339a132eae8ef60fe0bce6dc5eccc933ad03394b1cca48323a550b1adcca89f9de40f35c73beb91e3297e54e12db9216ab0a031190e08beaca9f61e7bfd7fb265f09a0d533c0e62a629626686d6733d11433790360e06f5b177b9b0160e705970ae6bbeebe51d266a185f281647c22719299449b03ac60c7d44ad96c16f835cfe6acccca2fa8992b4131ee5d3e4f29b3fd8967440a03aceafd5eb7334b5070a431e25f1c97b0a83cd407b2c98654bfc13a63d829b30c0338dbd77fc34f570c0249ea1e4b6f18ee96d1a2966cb3e4396acade5a1a8908d403ffab680a2267d837229b0ac0f04a9da57d107dc85b2c8da476a027cb9dc410d203b123870ff833e31fd4ea6d01f9ac9c24c90c392ac8a386343b18eb932b0e0a59033795d7e87f8e9307d82a38e06d1edf38d8a25b6b47974147fdb5029f6539d97a033c5b28c9563edb88e2ca57e3b7cf9005b4426c4e152a06d56671d8c37c22c87403ad4bad0ee4cce9d6e7c8abef27478010bbb54828a1ea060e92e1fabdc1594a3103d402ef839f9f5c0eea8ba8f5a5dee353ac6bced3fd1b4de94f2ed1b30d0c7b90037ee8e21e97133a4af26564f09bb9dae2ee76a87c9b09fb954f8cd820b230772f038b76e5bf1ed717ca2746c514694243650f6681307e0043b04696c56addcc6cb103abcb16edac82e37251cd3668fe75dceb9de3c41b3a0d9f7a8ceb2e14581516bd0330d48c7f9098573d652f0b71ed5f14a03f057dca4576bdf5c516b12aa17947c60605581e03361579c1848ec6eedef7808a84338745486c9549c2b16179005d89530007011bffffffffffffffff03ce771d0f4c40e1acaa00d080c3b4673a5c3f8199c1b2459a71abc086262cbff505581e03678ed370a59993b1750d87b4d0d0c1be2b328cf5b330195243bed6c8700401035c438168cec3fdacf8ab92912a78a4efaab07e293df8494834e41bf280b043fc03ea362dadd6f6b2e84503d1a902483f65ddf188623cb985baba2185675b1f52f005581d0297474448d784917f1a25b450bfcd15bc1efc64bf65d4cae87bbf0762040104591354608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c35780638da5cb5b1161007c5780638da5cb5b146102aa57806395d89b41146102d3578063a9059cbb146102db578063d505accf146102ee578063dd62ed3e14610301578063f2fde38b1461033a57600080fd5b806370a0823114610230578063715018a61461025957806379cc6790146102615780637ecebe00146102745780638456cb591461028757806384b0196e1461028f57600080fd5b8063355274ea11610115578063355274ea146101c75780633644e515146101ed5780633f4ba83a146101f557806340c10f19146101ff57806342966c68146102125780635c975abb1461022557600080fd5b806306fdde0314610152578063095ea7b31461017057806318160ddd1461019357806323b872dd146101a5578063313ce567146101b8575b600080fd5b61015a61034d565b604051610167919061109e565b60405180910390f35b61018361017e3660046110d4565b6103df565b6040519015158152602001610167565b6002545b604051908152602001610167565b6101836101b33660046110fe565b6103f9565b60405160128152602001610167565b7f0000000000000000000000000000000000000000204fce5e3e25026110000000610197565b61019761041d565b6101fd61042c565b005b6101fd61020d3660046110d4565b61043e565b6101fd61022036600461113a565b610454565b60085460ff16610183565b61019761023e366004611153565b6001600160a01b031660009081526020819052604090205490565b6101fd610461565b6101fd61026f3660046110d4565b610473565b610197610282366004611153565b610488565b6101fd6104a6565b6102976104b6565b604051610167979695949392919061116e565b60085461010090046001600160a01b03166040516001600160a01b039091168152602001610167565b61015a6104fc565b6101836102e93660046110d4565b61050b565b6101fd6102fc366004611207565b610519565b61019761030f36600461127a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6101fd610348366004611153565b610658565b60606003805461035c906112ad565b80601f0160208091040260200160405190810160405280929190818152602001828054610388906112ad565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000336103ed818585610693565b60019150505b92915050565b6000336104078582856106a5565b610412858585610723565b506001949350505050565b6000610427610782565b905090565b6104346108ad565b61043c6108e0565b565b6104466108ad565b6104508282610932565b5050565b61045e3382610968565b50565b6104696108ad565b61043c600061099e565b61047e8233836106a5565b6104508282610968565b6001600160a01b0381166000908152600760205260408120546103f3565b6104ae6108ad565b61043c6109f8565b6000606080600080600060606104ca610a35565b6104d2610a62565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60606004805461035c906112ad565b6000336103ed818585610723565b834211156105425760405163313c898160e11b8152600481018590526024015b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861058f8c6001600160a01b0316600090815260076020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006105ea82610a8f565b905060006105fa82878787610abc565b9050896001600160a01b0316816001600160a01b031614610641576040516325c0072360e11b81526001600160a01b0380831660048301528b166024820152604401610539565b61064c8a8a8a610693565b50505050505050505050565b6106606108ad565b6001600160a01b03811661068a57604051631e4fbdf760e01b815260006004820152602401610539565b61045e8161099e565b6106a08383836001610aea565b505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461071d578181101561070e57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610539565b61071d84848484036000610aea565b50505050565b6001600160a01b03831661074d57604051634b637e8f60e11b815260006004820152602401610539565b6001600160a01b0382166107775760405163ec442f0560e01b815260006004820152602401610539565b6106a0838383610bbf565b6000306001600160a01b037f0000000000000000000000008457ca5040ad67fdebbcc8edce889a335bc0fbfb161480156107db57507f000000000000000000000000000000000000000000000000000000000000000146145b1561080557507fe14bb7bac71d1505cca6770614274ef3dac5acaeae4731265c769b64037ee82d90565b610427604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527ffe1fcac1e6680851f00fcb8eaa2491941de637bbd700197904911589bdc3f805918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6008546001600160a01b0361010090910416331461043c5760405163118cdaa760e01b8152336004820152602401610539565b6108e8610bca565b6008805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03821661095c5760405163ec442f0560e01b815260006004820152602401610539565b61045060008383610bbf565b6001600160a01b03821661099257604051634b637e8f60e11b815260006004820152602401610539565b61045082600083610bbf565b600880546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610a00610bed565b6008805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586109153390565b60606104277f416c744c6179657220546f6b656e00000000000000000000000000000000000e6005610c11565b60606104277f31000000000000000000000000000000000000000000000000000000000000016006610c11565b60006103f3610a9c610782565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600080610ace88888888610cbc565b925092509250610ade8282610d8b565b50909695505050505050565b6001600160a01b038416610b145760405163e602df0560e01b815260006004820152602401610539565b6001600160a01b038316610b3e57604051634a1406b160e11b815260006004820152602401610539565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561071d57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bb191815260200190565b60405180910390a350505050565b6106a0838383610e44565b60085460ff1661043c57604051638dfc202b60e01b815260040160405180910390fd5b60085460ff161561043c5760405163d93c066560e01b815260040160405180910390fd5b606060ff8314610c2b57610c2483610e57565b90506103f3565b818054610c37906112ad565b80601f0160208091040260200160405190810160405280929190818152602001828054610c63906112ad565b8015610cb05780601f10610c8557610100808354040283529160200191610cb0565b820191906000526020600020905b815481529060010190602001808311610c9357829003601f168201915b505050505090506103f3565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610cf75750600091506003905082610d81565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610d4b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610d7757506000925060019150829050610d81565b9250600091508190505b9450945094915050565b6000826003811115610d9f57610d9f6112e7565b03610da8575050565b6001826003811115610dbc57610dbc6112e7565b03610dda5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610dee57610dee6112e7565b03610e0f5760405163fce698f760e01b815260048101829052602401610539565b6003826003811115610e2357610e236112e7565b03610450576040516335e2f38360e21b815260048101829052602401610539565b610e4c610bed565b6106a0838383610e96565b60606000610e6483610f06565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b610ea1838383610f2e565b6001600160a01b0383166106a0576002547f0000000000000000000000000000000000000000204fce5e3e250261100000009081811115610eff5760405163279e7e1560e21b81526004810182905260248101839052604401610539565b5050505050565b600060ff8216601f8111156103f357604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b038316610f59578060026000828254610f4e91906112fd565b90915550610fcb9050565b6001600160a01b03831660009081526020819052604090205481811015610fac5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610539565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610fe757600280548290039055611006565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161104b91815260200190565b60405180910390a3505050565b6000815180845260005b8181101561107e57602081850181015186830182015201611062565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006110b16020830184611058565b9392505050565b80356001600160a01b03811681146110cf57600080fd5b919050565b600080604083850312156110e757600080fd5b6110f0836110b8565b946020939093013593505050565b60008060006060848603121561111357600080fd5b61111c846110b8565b925061112a602085016110b8565b9150604084013590509250925092565b60006020828403121561114c57600080fd5b5035919050565b60006020828403121561116557600080fd5b6110b1826110b8565b60ff60f81b881681526000602060e0602084015261118f60e084018a611058565b83810360408501526111a1818a611058565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b818110156111f5578351835292840192918401916001016111d9565b50909c9b505050505050505050505050565b600080600080600080600060e0888a03121561122257600080fd5b61122b886110b8565b9650611239602089016110b8565b95506040880135945060608801359350608088013560ff8116811461125d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561128d57600080fd5b611296836110b8565b91506112a4602084016110b8565b90509250929050565b600181811c908216806112c157607f821691505b6020821081036112e157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b808201808211156103f357634e487b7160e01b600052601160045260246000fdfea264697066735822122085ebeca760d366f1599f3ac828570ffb5ea7965b2f8b62cb5cece01b295d168764736f6c6343000817003303eb10707b64628b7e9c1b92e6fa4f77142724330cbea56f5f8bacee134ab0fb2403f7536723115a25b4ac8a35f4178a1fdd6bae7b26dad22dd3f834af329a8ee8f003d584764fff2a127be821fa7bce3479c1749a4c0043b1b626d6119efe9410a1ba03c349761592704b121f8cf2acc808761b4550d50b76c3ac260116a12ffbcd879103d9e920a685d547570b3ade3fb168d87b32c8ddf8538653411e6b4dc1af917653038554d90964748ceb5e8c0a5d762f0c52aa078c34647c55f46c66a1ca4165218703a691d4d67a6c6ad8ec8f14bfd4841ef6810e166e522fa8bd74a3d6e0eb65206303ad4339b9c37a8f4263927e126a7c0c85785e8a1346fdba6ca32d40bbd410bd2403d4a48aef656a9956ae2a1fa6df5866f7ea4723c8d0ca3512ca7d3c78f162a3f5036cda78e70618b19972a50b94535434a3e4d95ac774b5a2afc0e4d9e2239b4e8f03e43bf9215a5d0568ee1a78e51eb7e9e1151c266b730342751fe797fcc67fb658039fb5c1b429b50de35a6625c2269c5dd5c89beaa44c78ab0263e7b79cfe3906370375a9bcbd8e2ea3fa7f6ec959f8225f311f0813e2fb432b6d1031b22f52e39e4903d204d2e0cd8839cddb89b3cc9eebfa434a6a85b3aee2ae524c20cdfcd031ce07033e937363cfa119d281c2da4089d5e9e867f471a563cbd96b1b9f0c4f275b9d11037343e1d617d565a51323e57f47835db333adaa5b27abebf6d77ce290b2ca589500581f030e21520bba6f8d29df465a91dcdf2406169014890c561fabf54e06d5fc405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f03c3922752be775d0cef6bd0e22cf88f9770367ba5df5df2f377da5c71e1a0493293f9dcc10f74000000581f03c79f5f0741e963d75b82140ca9b03508d68bb02445a81e545944a8572ea049410d586a20a4c0000000581f031466af59ec1757d16ce76059a7faf169d9d41b12c7876c797907b3202100490ad78ebc5ac6200000021940380377a64a8a394f1cfc26e8213bafd771171ac8c9e4f7f370f5a2a12f4484a8459303e50a88f9efbc294097f04b97b107d65bb26e2035283a61a45e92a68e90afe8a5036afdc3402634c31ea93a6e48f2495d9801a3cc97614b2bec9e3f2a12cda9798a0306dc0578391f8fcebbbe7d41a747ebaf91df88df14469f78b96bfd61aea7717a035462685b6e7142d15d4fdbef1d914010949b05a708bc0ee0a1c23a497e53f18e03f720da53c56555fbf5cf9d8ef24b80f4bdc0d514985b8fab767289c1ceff5f700366b5061a8ae612eadae1f9fe5cf169466b9d6f710315d182909097eabcaff2a4038a953900e8c1b627f0e03383f0cd6eab5f0b7ea22a530511fecc0d0baa2dedea034366259c5ee7bf25f0ccb2244f5df4188e49c7da8cb8a12632904444f7d0b13d03b0ff355161fbfde64fdf345a08a62092252303232654e8c3e2ca36c848beceb1035de79ddd9aceb66f701a67a6e3107d707d1aba4f8b5cc2b1f1227bf47b03848b01410b00581f02a1618eb42adaff2ca9130ddd3843b1ba2da8f7465d14e0bd1705c2941506490ad78ebc5ac620000003015cabe2a4ecf3e97709c50f597fa7415bf9079af1d01cf19d98e930288eebab02197fef03cfe55eb796d1542e0148727e862ebec05c3265b0d962a6ec971f1f4cc840f88c035be3ca1b06dce149e95ad9d7982c532fd01fc89d73eb30f53e6b862f6852fab603487e1fa9929adf55eeb1e53bd26e4facfebebf2358fe95e71d2281c1eb7c5fb0030cc9e77532c38e9c5f095e1bd0ee6a71dc77bf96d2908358893f6a1b911bae3903d1b779ef2e9b095f0adae4549452b8f59fb26335b2e9abb07b2698465148190303f431efd08f03b85e93aa47b8b2cca3704f6e5ac2989f468c5f24494ad251040c03dbde21e8d6b43ae785aa06a33847f4703b33aaf17e4b5d382c6e0003e0a9a365037e41a12167a9bd51c80c5e9e2021949991177d4bc5819976b45ecf210cc05755039e37feee960aa3c6b4ee4fba04fd65c82075c327877608057eeac9d14a599e6b03c01c1382d23be4bf57441e1961aa021f351ba0fc80980a985b4d5ff4ea85302103b06f860b18dc8c10a5e246ae4e75924f8fb031a609f3ee14a98ce4364176f24203b42e083041f39448c2408632a32669db7223f652a19bb5ad1d8486b5cc3cac260219ffff03d47866a9a83503e277be50a15d15f7254a062d7388f05bf7f7768117ed0181470398b662f37bd067d6b2a83bd347217d50f15ef7436513882531f332dbbd7daf73033e6004bb856f772a57a227e76041846ffb2fb8423ff6dff72621ffe422631d1e039b4fe975cd8c16e422bed383f1d7f2deddd4199e9abebaa6d1a45c21cf1983df030831e68acbc1b6e6b9a6e21d280a0a74b693adf6f1a9f2c906ae9dfc641c2b4303b30d1c9e24ce3d759e1a8ac0c8a31e2b4dccfa1e28d5d86219643862c706e63e03cdd3fca8b05b361eb002fbafc93ad141004d5fb6e308e0096e2ae39be1062a3903353c7127da5ad60c9013e382d2c96ad403aad9ae38e37d7d89c5c994f046d0e90320ffc7574c22c7203dc162b11b7f9a7d44bb4defa6753bbbb2e7cd42d78e03120377c3429a72c618217a0acc1869612be6325fa3f62c5b16de916f5eec078b504f037d5c3e820d708ace27f961265700a4b9e5754bb1d7e0e67f9d1323ab8d1b13170219ffff03b14dbce39b1720983f79e6d4e05cf346767cca85e551e92f564f8f5d1b57cab1037f019de24c080e42766d6e3a79b9c695c532d3826b3a057b836fc001a3f1ec4403f2a6ebc22cb0a50f4b3794ba0b046d6b0eeb13a0e9f2acc704919fac49e5edd6033274aa30707c3dae5e62b9f1fb228e5985058d44fac4128205f52e42f374517403e03c10423df4836d6dbfe5add27decbb4e1319d3642e785b45aee8daad0d1ba70354538755ab96f299b193103ceada0b60f8c9d52dd0908bf3317523d6649b8fbb0304e500c7e754f561b95a487a917b8e18e1870126d2d0e283a4d4e77ce8fd1eee03ad34b80ffa624b4488897548fff36eb625a36ae6e14b46eaeea60245a93ebd1e03960e30b4d7b4bc303d757f830c368afa305cd995e8d873c7f8eff6080500e92c03be16d0dba18fec455a3cce2b62be9d34e60a88bd711cf291751e5358a2eec2e703105a4377cf267ab3137d631893f95ebc4879c8b539c88a0a7388ba13659c92b9030f4497900fbf46059e51b4c1eb4509e8bf0eedfe73094160aa95bad095a220fe03d5db25f9c50278097a5538a3bb7703ff8ed81e28d512cf00c5cf4ca25e78f63203bfc551766c2746bf840450793c3899840b2a93c935380c1ec3f93ceed9b4f6b8037aa3b19b8fbc01e85158878a4250fe87bfc29cbf333d70c84f5bb0b82558cfc903c53f9a2352a2fe8936025d62d6f0bd8f0d5595474fd87e85f93db9d99c46ea23037453c6ae6f18ac79a29d866b9ecdac74c1339abe01c31985e5cca3605f828e3903a6981e5a63c99b396d1a06c38dbad120f9e5f189f6f1dd290c04547ef319cf7a03ac1e8b3c02d68fab08c0242621ab9772130a9f22c171c3a7a863b0f10c7896dc03aaf0c461a1773b19cc154fc0be07d7828423f0945c4d91d023812c46acfe925d03f843d3a38ae0274d729de84108cc5a80990abab65071b8b8b555d7e58f54c5c600581f025131424d257ac5a301cca2e718f03d3d98a642c5f4efe56fa157600a9918492086ac35105260000003cc63a678d439d0d7a3bc9f5eca3871c2b249b3aa69527107ec7cd38f7f0db7aa00581f03f1c0ae08fb4138f0613ea2b9875fb621ceb15a0c85aed45d5d0ee7a37010491ce4dc640b8334000000581f039c685c45acfc5504208c5fb83ef64582be79af9e2b8c4064247d1e5d3dd04924287c0615218c000000581f031dc0683250487b5f29ddd8ade67855e8d739ef4b98133413be89b3f6ad90490ad78ebc5ac62000000219840403186b29e3d8c430b2e10a15a41cfcc4901950ef392ee44579ba89ce5b6c06fc04036f654075f3ac47e1c792a2af4114cefce93414aa17886f13dc221f43189cb90101410103d68bc94347cbc59f4eb2b6949568bc9af2c0c2088b65b7dfef33875a545591580219ffff0367074f3bac0694a051f8e8b87def49df591986c74b16c8f4c902667b339bf84303a2efef56b6847939bc4194c3fea6b1af3de88202268ee63e8423334f0874b03d038ffe9fc322eb4b555d6da3cb250b497eee2cffc8c9f79078ce7b610a453b1bbe03bef319bfecbf2b7df850d53a993068230df4b68f1a8c7c6d8019769178d5478803e03174bcf6071abb44842a2e11c7a7f4dae891966cc7d4e3956ce11b909b5b7403ff92603d39809bc798eef354f874bec3086bbadb170dba57ac1390e059fd77ce031648a811fca6f911d52cc98decbfde9411e6af9d19ed24d88f5902e91d12478603d58d6ee32dfabb5715961a2ba9cb7f2012eaa147e1e7d7b8b97c377afb0e0f6e0219ffff0304985734ee7bf4bf907a7a0055ac0b50a008dbb6c096c45f4825f0c83561869d033b2e605207f7608241409e53ac72fbbde301c9b5bec58ca98abdcc44ed7e57f4039dcd49f9ff32c9a5742866cb9cc99ca71060f145f1d0136bb0aae4f02028f86f03c3e73c1438f76c03c212f13b400c078c72e884e16b532380bf3b8ce10c73fb8103be8b6a26222e80030bc700a8debfe9424bb9e721b470d856f1c498ac54039e2a032c6e139c9355b43fee4830eb21ef2e4085defe5d5a00f88ffc6ac0bf475964c9038756cbf904f324c8e24348e8b42411978bcac0f42e2727719012d93f717e1b24034ea20e1c8d23669f03445bea4037fb4eaf85049274de5ec499bd41c65ac8fe8c0312058e08eb9f89e5518f8c47d62635b2999512741c87372d6dd71d8a12f2005603cdc6ea5b6da6a198bb3ee966503204c4cb94d010c99a7811b4f67da6212ae1c203ecef61ca72db75190a0c1096bce3e0c14053927f77148ec54f4606187e4628a1034d979e0a814bfc2c2eab94ef03d8df5c5bb6fee8c9a590fecd609bdfa36732b1037b729ba1d4174c2da7a5d23249f826c36ac0e2f9782196f4115144a0eb67d810035bb4e61ab585bdcdc0b55062fe230e37feb0e634e631a03829fa503f9d3ed476032134450486675d4cf0c8eaf153bf1de58927d032b9de5031cff0c74ed8869b7d0219ffff034f9d59d40efa9263aef54a4c535311cae907a0cce99a6a2a5f291ff8e31b7d3003e4e7bd71150426749b6cb81a82f87586a42bad6fe3d754dbf9670fd93e4d26cd039c9071d87cebc1be6235a949233ee79bd8ef464b3ab3f9b41d9320da4934367f0380c5cd90a3eda67254cbba62bca777fc2c9db6c8f139f49ea49c89352f2021570335425d75ec09732bd578420d494c23f6519fc2939ae16c1602a1a4264d443d10035692fb4d0deb4d1f3e299f6c673e1d6383d8bd195a5829937bc4749736c0fd21030d7c5eba302d0dbd2d2429ff442f0da3ea57c1e6cf91209592bb4a385f45c2fd03ac3017e4b2a1056c8420fec5ffe4233ec6817892a031304cc8db1bc9898df78f03296b4f4e7ce364432f8e28a59491aa51fce3ca153b5cb313200e27ad909de6e503cf35ac1fbf9e55503449d22fd0b6fe64782c33fe124a1676173cf61e4b96aa6f03b88e47f5af1a253e82e3aef9a982ac763b1dcd50508d8898a8158f9e714cad52038d7d2cc0f75cde4115f1374edc619789c413b58b6faadd9112cf4822692adec303f48864b209f0e708b0abc7076044469f8094fc30ee82b03caace0f86aeb44071038475eb63e0052275c6fdfa3e1b23d80ac7a062a86e5b2b5003207f87fbccc32703827213721cd7567d74aee5d9aa01060890fb9ddf88ac38aa606e7e5b2d7d08b403f5663bef0bab1bea388bd2599e357d1b9aff899b95fb2db478ab71b9d746faad03dfdd6d28f83bff54b8be39ac78bb0cb4685bbd3439f51c9f2390123b2bc37ec7037613e556288dc4f8911ba1c8926f1775ed373863bb3093a93ee5c474fc864d50033306c3c0e5aea92e3469d4b5b21fc0ad287e3942231301ae39efaa95cc0a185b0333eaef2510d926fc3b29abdabcf44a1f79fb691dc4f0e7968504f465b96970ff0141050395a166c6ca3c961f6d68d6b52b134e0d9067505d8be1f74c178ee8a498a3fe1403d8d80ad99b49fd986919b6be90ee2eacfdca495685a7b6fda885cf79a287b52303a6a5af1cb8779c369c987e8180bf02a43b86ef9a01af33f31416f20c886e58bb0381482d2e873a4017befef27ea31237e8dd7e6fecec737ed49fb6710ff473bedf00581f0212053cce3670399cba0966329779bf03ca58bc6a53392ae5eca204134b8c4921b3deee65619f265400581f036dc6698278f1450b9d841597d69ca5d57923633a0291c1f9fff2e4ef6a40491ce4dc640b8334000000581f03ed43c3efa3fb3f6426ded24f1d4b3d5658ef5522391349c4f5b1ed179ae0491ce4dc640b8334000000581f030866ac35ce06607c3835e289b227b3ae2b70abd42f86983b00ca3bd067f0490ad78ebc5ac620000000581f039fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee305512a6bfb2f81267b847743c87767b3a45b897b1c00000581f03e3226e2274ac14f15737fb0147ea4a27a4ea48baa136191e140855e6b7705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f038ef5086e14875c0511e41292eb974f6ea5bac3eb23e8c745c4b4cbfaf2b0490ad78ebc5ac6200000034b0b984ef168de1d2519aa9d92af3354753e34e1ae9bb88d40f5a349ff22965b0219b4a10354c7281adf01439d10178ca6dde9df3a3f5f5355b5f73f3824f23fd36bb23e38035eeddd776acd22ce6975de96576e19ca147a9de7d7db1d8f73bb77931e97bb060306a282e7a647bd2c0e61b81abe33d2923f71b83d24d96f5c89228d19daf7426d01410e03ae3690fe2435d4d14a904466066ed1c3586e4fb2bac9d1e3e3576c689841a09503da65c589682975869abe4279684c6dd1efb5cfee9f1e86c6949556ed60495c2e032962b5d2ef5c0cdcc1e2420ed431388607bd6825c406d149d96055742e1c4e32030231576cbed9e6b154344cd3b5616514bf7a2890b8149baf75b1f8daea0a110f03c77a9b2db0b5a27fa8aa396f537eb05fd733af8e2d5bd60769ebc04c9ee6659f0219ffff0219ffff034ec5550ba8326790bbc4583191a7d62e3a4e7f5e5ec900f56ea4a1b0b83b667803b2e4e234da14c2aef6fb929df086388bf936d451fa97583ad4d1f29a923f4c19038271ee3f879d648d7a6cdde3e7e4152fea9bb3f2ce68905982fe9aabc2b8f54103bf463108a9fe947fda81210340f9850e3243c2eacdb15e917c34d230e40c3ae90391b30e7492cade3e063c79207a9b07a90d51f0c150a293354134fa1185e97c6a039ea5fc9b0877382e5da35930885e2fdf2093fe64a713ba59c14b884fa9f2397b0318582b7250317e9a7da20481750fbaf1c0094d1fddedd20cf4993d3ba4fbd0c9030872ca2497cf87de117dc0889f28f3b2263bfd071e77c78513e0f4a6e82c99990388a138f8905be21764ab817817adc522650e4f122f552521686618f45fa2980b037ecd1e693fb8bfdd0eb45926e86719197569983537c3c1958cfd28aa33a3e0a803ad0caf64306eac689e04a2a93fccf65d5cf5b1e54e14ea53c4165aa0b5f3f5840317a16f66eff3476e437c7d8363a07ae106ac2dd837ec86de962e35f7b9f161420219ffff0219ffff05581d0242c9c7751eab8a7274ffc46c1dba1316f7786d569aa14ee74343954607011913540219040103da6c1e5a4d9fc486b90a666c6a32e941b91d6f590ea3fcc33b6da2f5f605195c05581e03a8efe2a5426ef66da1f7f3588e59a0054ef1c7d3a544331f6bd0314550040105581e034c10e045f82963ac73a9c888eec756980b2fd0c9ed5d49c76d3c4a5a500c0146f9eddc62600005581e03fedb8e4f88063fa4c6a8de6a6e87ccbe989676492f31e7587b4c996e700c03460cd38004c8f00219eed803c9721165811d892ae78ce6917dd2bd6af14c9f2fb1b5aea889cd52e59b2ce2e603bc07fe29e9dbe6feb34fb890630ed297b4e3495c92a194228dc19e17c3413bcb03770cc5f77e576154ba9cd1af9050922bafdfa2eaf43e7332b6912b929e59f52503403d865434d6e6876b4ceff54b656e54ab2bfe6f82082e6a15105af88dc4b74e035bc7e7cc260509c03716cc7eee00767708a334c01381d502185465b9bbb528d103ff6d20d4f5750bd4c9b3d938490a7380892237e41cf35f7ac9f42bef67e00f8003c14c9139d1471fe26e424f6fa93acada174979f0a205e582c975fa3ab34ef08703484e8e8fa57e2e0f2415147a29a903ad9e98419af29cf742eb2eb83b78952d610351b48ed5a38d41fd6f155cef5ef5d7ae3361105e0370592321cd63de147bccd40219ffff034bfc57be0d1598c042c283513883d999980a124809d965cdf7c2c6267d8183e9034c93df4df41697512dc88dd1304037f617b0e8d7ce770259c7f146f27a0a293903a89cd61671170cf270ff4b8bf513118d97c74cc519f108260e726542dd04650a03215c874ccb61fedb5867f75f7039deda06c1bb0770d2e7c7703ef9b2500249b00219ffff0219ffff0373ff50c0f6c6a23a357fb594526f7b3edca89408a423b65512fdabdee6fff41d037407bb64c825c855daf2395d96eb4119ebffcc067cdcd31bb912020592d01ede032f406d08b000b64160f37637dd2ba2e4bf1f60b2512d5f5855e8767842841d8e034dc329b72fa1f4c7512eb15dd7abe3f72a8e136633ae7e8042c43dae75a31753035c80e292761d55d95ff287726219832928cb3a758c6a1c064f04d6a27d4f1b9d03a9b907066f9afe7548f1ea5af93e08e48fc94c9e60d1fd40340af2f6bc2ccc5e03bb309d4bfd140ac7799020c13619c3da8b7be3a4c0bd603e2a8af36f0183282903cf1dfc95e5c8411d59fa7999b0ed681746183f8a7372e69790a604979c350ace03ece701e710381b217d8d748196faa2df88932e8e52ae2737e739b1d12cfb6629039748dd56a457e5744d394d57cbbb72f80906325c3132b05fd4009fcf5e9692b203f3cc1924bb5a2749acdc811ef9f0fb99f321ffe59779ea9c95f610fc5c3a7c390219ffff0309391382b6326c61a0f6ac8329b02fc92df2ef1a7332beff86b57e5357e6a40b03ef421de9c15a4de8600da0509dd2a052ef31ca0e4ad1767527f339d9c2750f460361abd26c39f92c09e39c3b7a1ded266cf0aa4417b6ad08efb26d98e071867c04037242cfd80d39d9931fc3c55e0e1764be50789e6a9169d06c3a4e9d46e4395d8c03505609c72d0b7e968356cd61f242651d6a4881b8aa574550147955da6e6429b503ade0d8a5566feb03d3ec24fdad59f41bf3c89296aa7876ac88984ce104cc676103cccb44b9247d43439a2790212b19404b8984589197190663e48b4ae7f6c2f8c50393a012e115da7a8746e908be2b7852d1a5418292726f479aab7bb77e7646cede037478bb07ca2543a07000150c20b3bee7984ebc43a096e662913608affb5ad0fa03f857111468d1de0f1b8eee8f5251b46da95d58955e8e9ebb57bd3bc27c63a82b03ae420ee018c91fb8f6787b546ff270db0327cec3f07e17b3ad271e55542a5aa403e52440bd9e2969162d260b14cfcde6f8b2d032202adca8d3e014c9fbfde4c9e603267173e2574d6e329f61fa625b6c9a551b3ac1dc6cd251bdcf7c5eb737a002d903ed0d971d9805977b2b8bd34d5ec0d910b8c5fe12cc39a3f9159c4e4ebaafa30603162884a4594ac020b582d536d8d52b8394081bbc3aec1c134ba7e878fb78a7e30359f8f1e6905743a14fb8c995094ad90dccefe8371652a55c7e69de9e53ecb9d103d3e3135f0dff9cabcc08520d8a6fccd990c83b5f1cbe6b60925c9f44d2b24d6303504d6b2ff8107fda7b001c8be4285be53bd07fa9265768a490515493aa5e1e6a03609948d36345c5a7d840f0adafec8b781a91dd9fb9c7408c3cc65ee36d2d735603e41eb581ed600a71ba33d1951c519723fbf6e37ce510e8de33581cf9da48b8ae03afae9a56c47ad358c1543377d1c28755be64d0a973e7ce3dbeb8ebd1089eb2ae03fa26b32b2041372a849b9326a3ed960daa17b7fd989050daeacc36b42711038e05581e03c26245fb60d4134f73c786f0bfaf1ff57464c3d9bda1c544876bfd13400c044703de5b5dbe064603d4041e4d5a17cdea7514434dd6d41958332a02c7241ae4321a89e0c11417972e05581e032389f54ae8e9a052800468f7d88a60705e051934f978cc41d0bf683860040105581e0345f15767044ac1845a6fd65237999c94a6ff556e47d12e0a0ce1070b80040605581e03f1a7e3ce79fa041303f582493ee2f3de617f813d2050fc2585325b6800040105581e03292f46879084d1c9c4ce18e5143c45b3357fe15bad56e5301b2b9b81e004010352533ff9783c0abacfbc2035c3a1c7562c2f53f6d5267a5eee144575a411891f05581e03f63603562e49458ece30de1af16e6a6d37d246729bc3bdbaf47734b9800c0445048a4a630005581e03a6653243c418922c45e9213afb163cc8d70291bca23484b0471fe49460084703328b944c40000303f0aea3bb6c3a1521aa54df897a3d83e40aec94610ad58b57d6e68a5190e0d9034f5a5f6706dc853cb3ae2279729e0d7e24dda128a77358144e4c0fd3e5d60e980605581d02ed82a57a5e0196f044d086d271da0649f58346cbc64060fbea78fb1207011bffffffffffffffff05581d0227a4a72db904f9b7bae3b3a567bedffdb59907b5311d95e62c69c5550c054904520cd4b94a29f4d80219010805581e0306fdf6fb2d853fd396fa2aaa716828050e4f75d56410c07ebf428084500c0147012645d71950700219ddeb030cd5238b67f14ad91d3ca0d26211d92f68d2009e1d8e112778bc998dd4c4d1120344bb28eaceb1324de6205a864deb8c9e29d6db60a0e2cc8947c5bce892846a5d030332821d73b732fc987c7d2a6b2a709c6b7bb09d819c0f35a258c52198553572038a4643956b83db010bd8be73a7e4a2132679081f15135a77663c9ddda7b1873f0331784d3290cbb2dc0e602b2d4bf1c0f7126f6ff6773306d36a4b5bd6dc07e0390344c81d53856ba51b3d47a1dde4c4bf7072d1d39ed927923f6d2e62f57052c0980399f2c40e7e4645d757ed5efc87fd0e58cb6d07880518d13b78523a9fa00a9c500219ffff0342e37e02b989ab93d1eb8b9d59217c08468765643840e5653239ecd76ebd915603c6fbecfb6dc37767cb0a5802620a3c0520f4d0b28c8819c745f3557c8457d02a03d954b7b5798734506149ff53b464406b3fe06b7c61e30ae7a342535aaf126a2d03a35bed80f9f9688f71d0a7d1609fe18e207a96ebf72f26c7b6cde9674018524703499531a32d912c85606282073673e2496099ffe7d18203472b71df61cd46f68a03c2a46b018c76c14576b4154a177958b1f71c37991d56f62d96228ce34e3505ac0372a0ca3e25956ec667615b5cc68f84f20be8e4aeab70f18777a749a05e6bbeb603a3c9e1af6d8482389f4703f744e003cc3ae7bfd3c9f7438e048c45d820f41032032bda25c3409b77cddd0c4fa13c14d906af8040837f74deec071cdac224bdebab032597057214417c6fbc54202b44b219c3bc9af18039bd40151f0e98ed227caba2032dcdaac9566a66446d5ec9ee5f350c8672dd97878bc9b06c2cb529baf7e5effb0391cf7083cb1976bc4ce631dfe0158c6e948a5c77fe60b216801a96f62071540c038fef374f018ec0e32e18e6036cff026a022fcde02017e123011c0de40923f92703969339d4b6d29342e09a0e865d70eeb5684cde91c804a15b03382465c6992b7903db6b74ba1fb21f180dadbb27f3df00b3f19c82146fd794ac483ea87079b41df40219ffff031cfe3fdbcad369aa9715b1475f0edb5bfc1a45ac6c1271190907304bc910e3ee034aba9abaaf89f1e6222dcd97a3482f4081697a8647a7b0bb23dfa06b2302171203030a54d85b993fd2ab0bfb87e5b2b963157ddc5663728bf1096def4b40f3c4a503a3a258de4754f6dc4ed822a25104bca0576b822faf18422b6ce64a478dcfd10a03b9f8a20a46437d88aeb92170c11f2ba15de9a9e381126115425cf11222348a980360c2fb57c993be03b1dd582843353d16b2d2412f5f98f7174c918a784f2deff10219ffff0378628d4592d26db1eb12214955561f4858aa0ed6f536d9e551c53dcced1ec6b80395a9ff22328d081180fca8f3d4beb508b85ec049dcf3e43f275930c81146a60403fddd73fa65fe0f5a1228f19bf3fe5d5f314c02bdb2495db062b8c513aca1e910036e03f15c41526104f39d501099f64339f290594f4a20b7b9d9da89cbbd482f6103247be6e033edb4880b0c39c7d1475b01a3de1df60bb2764da7003a3f29dc6010039721ee67835d4619ea22d1a90091ad992c048a5738d54e88530b0a7c91fc55ca03915b7272ba709cadf2525ef7f296330a6853f6065e8e9d6bc400b2c506e9fe4603fcd0c4b0f75a26608a158c30319f2c41e5ca0d18d0f9c02eaaa1682b0c88919b03f6f75305ac321649e8f2b7ae32b0ef33ab478b7576bbb4691f0b2d5a13907fb303ac52be6ba3486f704b9558fdb541079aa2e3f6077c9c0b96e5bb6c8cb4271af60219ffff03ca74ae302c1ec48bd82ae259a2b166f81b5f5ab2afec9c5be5784af79fb6693c0372689f0f096dd2da62f77d2c332f2c434458c8aeffac89a136680eb517fb8bd703ff04adbceb75252ffa0b4a9870cd92c70a6e8b566ab0e9e13423aa02346e9e4103071795b6907aecb9192c1cd1cbdc5a38513a4e99e195491598658ace0c96c54a0394aab02b7c592620eb85d1c78770192dba63070b8edfc7cb9231e597f66f6e62035f131f2046a50e16124ee7a82e8bd400b780da480924e680d88589a47ba5995303746c60068bceb5e847b8d807399debf9e20ca096dd7616d83b6c9c76f7df624203196cdd63eb142a5e4a30941888ac1bfd4aa55f338e4e7fcae71c3b157dae6af303a03240d602e94981102988a51ac0ad251d33e4eb64a118f2f4d2c694de7aa00f03ad7a07f8be018dfd5eb8df17d03c9ef3072916ca605f87918767947719bde1c8033651da8546436e798d90172a8790352ad4307798ff02e03c45324088be0e125c0362a7c252230a7383cf1f9c416d9e2531c9b3e7f48a9d20278bbc35c175d4fa750363af997c519ec79aab78896c0fff438d0ac19f07f98b6b416f5fd40cdedb07fd03f784f40d20235a3f2a12f2ca7468fc3ef492973223bb14400321d256686b9da3035daadbbc20f1348650139be122db61e3e51785934a77b201a94ac930d68ad16603ec75c771a0e9f56ac875d8dd2f4838dd7251644e7431f9725e563992ca201a0e034c09ac2a11815e3fb42072b4508b313d3a9c5eab342833bbc9ba1848893a0fa1038388c5291c1969ccf1d6ff774ab9fec7286ec83b989a2e5d63d57e123c585d8403590cc9f8da2fead06f74d6d1bcd43b7a07ecfedbcf0d2a30124f575da1a586ed036018ecfb7ab41f5680184a29cf60f4107b11ffd7b5a7b99b7656c2dcb43c265903422610b6b652ab5dad44612a758aa7cd7b1109f8245293a66cb647f1143793380327817f61bd8fbae8cc0c6b912e9ccdefc11d1826a6180ee24271f3b712f44df003e3bfcdcd9f142fb6b051af72650b128b0b097d5a9bb6e61da36126933191296905581e036d484e86de5e03dcba47f4dc308188c37142acb756dab33ba0b59af050040a05581e03cb1c3c5d37502d0aa13d62b6424910ab952978d0b11fec6ccc3004c7e0040103d10c50a8f35a113076846ce372a64d64408d9bbc8a21f8c5de5b93a1ec720cb003eab6d090ba3fbe9d3b561c6f50e146a8465834dcc21748f143244185f48fc56003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e031979e8fff074daaad04439623f1b536865bdfaac7f39c16055f50143c007011bffffffffffffffff03d8be73740597e0432b0d60ad70443a41237ea3e32666f8b7a16b7e242f10dee205581e0317bbf8ba657e39871ab5852bb5d8ace9de7fe3ac599410ee2d50d0a040040104590795608060405234801561001057600080fd5b50600436106100a95760003560e01c80638129fc1c116100715780638129fc1c1461014a5780638da5cb5b14610152578063be116c3b14610163578063cc5183a114610176578063ef921f8f14610189578063f2fde38b146101ac57600080fd5b80630a5ea466146100ae5780631c6eced5146100c357806323b11d8d146100f357806348a4f99314610106578063715018a614610142575b600080fd5b6100c16100bc366004610694565b6101bf565b005b6066546100d6906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100c1610101366004610672565b61029f565b610132610114366004610672565b6001600160a01b031660009081526065602052604090205460ff1690565b60405190151581526020016100ea565b6100c1610324565b6100c161035a565b6033546001600160a01b03166100d6565b6100c1610171366004610672565b61041b565b6100c1610184366004610672565b610496565b610132610197366004610672565b60656020526000908152604090205460ff1681565b6100c16101ba366004610672565b6104e2565b3360009081526065602052604090205460ff166102235760405162461bcd60e51b815260206004820152601f60248201527f417070726f766550726f78793a2041636365737320726573747269637465640060448201526064015b60405180910390fd5b60665460405163052f523360e11b81526001600160a01b038681166004830152858116602483015284811660448301526064820184905290911690630a5ea46690608401600060405180830381600087803b15801561028157600080fd5b505af1158015610295573d6000803e3d6000fd5b5050505050505050565b6033546001600160a01b031633146102c95760405162461bcd60e51b815260040161021a906106df565b6001600160a01b038116600081815260656020908152604091829020805460ff1916600117905590519182527f102d162d8690811b17006e6e7529e0e7ec6c7f357d1d74d3d7ceff35fd75ce0f91015b60405180910390a150565b6033546001600160a01b0316331461034e5760405162461bcd60e51b815260040161021a906106df565b6103586000610576565b565b600054610100900460ff166103755760005460ff1615610379565b303b155b6103dc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161021a565b600054610100900460ff161580156103fe576000805461ffff19166101011790555b6104066105c8565b8015610418576000805461ff00191690555b50565b6033546001600160a01b031633146104455760405162461bcd60e51b815260040161021a906106df565b6001600160a01b038116600081815260656020908152604091829020805460ff1916905590519182527fb24cbb8005827c88afc2851884e834493cae4ef0d1302bf939281696bd6ae7599101610319565b6033546001600160a01b031633146104c05760405162461bcd60e51b815260040161021a906106df565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461050c5760405162461bcd60e51b815260040161021a906106df565b6001600160a01b0381166105715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161021a565b610418815b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166105ef5760405162461bcd60e51b815260040161021a90610714565b6105f76105ff565b610358610626565b600054610100900460ff166103585760405162461bcd60e51b815260040161021a90610714565b600054610100900460ff1661064d5760405162461bcd60e51b815260040161021a90610714565b61035833610576565b80356001600160a01b038116811461066d57600080fd5b919050565b60006020828403121561068457600080fd5b61068d82610656565b9392505050565b600080600080608085870312156106aa57600080fd5b6106b385610656565b93506106c160208601610656565b92506106cf60408601610656565b9396929550929360600135925050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220cef0361026d143789d3a650723c24c713525ee432d868f9508fc5fe410faf15464736f6c6343000806003300582103164135aff1c548a9982cce22ebb8a532443ff7b3b6e3a417c5234f7974c9c46041010058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630410100582002501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943545440aa958dd87fc8305b97f2ba922cddca374bcd7f00582003e5af7989af34160053c740614b9ddb3802b3053daf83245a1bb265a8bcafe0410100582003b2639b17bef0515027b53aeaf7e6afe7d7e132e00c9abd9bbdd0f1be746cc0410102190420021901400058210345c78e6cce5cffdec145e73ecd97300c6fd3c324449c80fc66d92f4c6bfbad704101031dacac7dec919df3e6de7ac4aacd07fad0b2afb26a93a66596e35672d9e4ec20005821032a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a82054f2f0829018452a00435edb9cf6fd5158d2e92bf500582103fd6c600593df7046d05407c1e5011ba9e7b831a4becdfc4e22a3f9c313d38a00410100582103a012d18e3ab1ec8e0601d9139d23395f6626362a923c5a7c2e6839fe7f5f18c04101021945b605581e03f4984e1d911878a0ddd7f3a4c56797a98c41c9e65626fb4ae0becc9cf0070119079505581e0321f22ad905c506331d7f77323648114d3988003fbbf8da25af93037a700c0245236fd3b2000360f9c8120dca62dd1c723fbfad26b16f48c0799c1bea1205b363df3d8802aefd03e341c22cc41099ee3c0f967a9d5e94af7bc906464204782df8baa1259de0a4b80219b56f03fc39247169d68387fe8f2d369c8e98607eb364efc82e1033596d18048b7527d203e2a45e68759e1dd926792be7bf83dcd856d4dd670f974ae206ee6a4d5627dcfa032abc13497d9fc711f804b073617b9d21a594d4d5a4deb876e540b80929ea18a7031f94b1d7576f2582eb0191ef837530d6d1feebda22f870d136988de0a07412a403694aa123047e9ad525f9cdbcbb674b941e25772c1134d00eff1caaf9b1392fa503ca626fc94f8c99d78e79d3ea497f11cded8aa614a1ecbda86f398e8b4848e94103edd82fef0870913fd1d73b5e14b6950a8e0bcbf06097f4b3f5c435f45537135903e81381385db7a7dc530dea9fbc6c59e9d3f51ec69a9c654302d8379db9738a2d03c562a9d42afccb384670f065e0287167d809b1e537db57badc0ca1fd6e12a872031dcaf274ffbd3cc4c5096eb427a1bac8e71053d33979ee4983374ac5674c99c8031b25881fe51e16803e7fbfcbac12d3b25fdba9d8c3b5c7cd658da84c4276bbc303486a41219b6cbf03e815837fc2ce7bc2bb3f0c65e8cad72ef944cb95715b6fc60219ffff030122934164aa33fe3986851a13a079c54fdb7da9a63e1a4e4bf3e8ec74a8214a03bd0a2e4e1439ab57fd37c24cd33ce6837d5e254d54c7e88062da31c446417a3c0372c7689d8cedf4a68726f7c43c731eae4eba6a89495ea932a7ff09d94949f1f30383bb030500655869f5f7af9b038c9470630b34936e655e29360fae48fc12cc9f034f2c8ba7ae6bf8f4d46a780ca64de3c373922d2de3d4e32435dfd4bb84d930d3038fd0f00991c5137af676688421187712405e0fe4b657dfbd5d36c41658ec5f2b035c880e7a33da2550cfab9b40c9084cf944cf023e58221c8b0dd07fa12bec108b038d0f10a1ff8bad2c3289702a41d7c15ef442880ecc11ec84636181148cde56d303ecc19cc255272f7651cce2a83b6d9f7c3188b41145c0113c32c2a42d6dfd113a031090949f42ac5df0b0288574e3cb2ebc34d436e05466670a8c673161764590840219ffff033b5ea417612b816eb2e27559a01f474d4dcea6c4c0137512737e10ca86e576dd03fe78149b5346621279469911874510ecb529124dc198a00e8f6dab4ab98827b8030a642e46989b438621e525efd2b5c91a131099482c267894b34ac282678d2de70219ffff03ccf4ab05c01160a6b5daea7da2d163b6da83f420cedd0f450584c2da37c0f2e003ba986c0af296dbdea175e6e3ecdb06a08693bacf4567f115ceac5b78a2e1cca203a49a3dbe658dfaba7dc828c99471e895c6ea50eacd28dac2d4c7aef0744b171103547601d6eed9e4ca979011a6273ca9ac26d0ad061ae6b38e0828db4a31ceb005034156988925ff012c6f376b3756da5daa47457af3601d78e0e11840e3e0308e7b03d4469397a530c434ce5486a17b3e8c67ad86f0f98353e1bcc2c784440c5fdac703c67f7e3759a21455989a5972982c3474a0d59bf59fb2f101e1d13099dd05ae6703cc089903abcd7cd7adf969f49c77f5e2131efa90f7af15a72709246cd00aace003530a12fb0557d8d6c952990141aedd2f37872be79c3993184cb02c420fabfb3e031b9cbfdfec697865d4a67eb2e9e477a73bd55bf717d4499dad5a57e0c1d36cd2031d789727ce7adc43e6c79c4f530d1b1ea32e501086d9345fdb621756d9674f4103f33e037bf3dcff0adf8043f70119fff0b7eae2a7db89173a63ecbd40f3c2a3f5032931167cecfe78d9e84f0fea373e5c61a554d16f469b6733d16e2e9e43a2661c0307e0cbdc364452a9122399007be5bd65e056b762b06f1a00828e0f3ed3cef82105581e03ca6531f3dc2b0d419ae61c369b0d98ab47e83d14988be127527e3b02800c0247151d9a6eec6b8505581e031f3463292abcad483c205d34073843bbcc440f22c99f3b0a45bea9c9d008472bba03c706ad500459084c60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106d6565b610118565b61005b6100933660046106f1565b61015f565b3480156100a457600080fd5b506100ad6101d0565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106d6565b61020b565b3480156100f557600080fd5b506100ad610235565b610106610292565b610116610111610331565b61033b565b565b61012061035f565b6001600160a01b0316336001600160a01b031614156101575761015481604051806020016040528060008152506000610392565b50565b6101546100fe565b61016761035f565b6001600160a01b0316336001600160a01b031614156101c8576101c38383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610392915050565b505050565b6101c36100fe565b60006101da61035f565b6001600160a01b0316336001600160a01b03161415610200576101fb610331565b905090565b6102086100fe565b90565b61021361035f565b6001600160a01b0316336001600160a01b0316141561015757610154816103bd565b600061023f61035f565b6001600160a01b0316336001600160a01b03161415610200576101fb61035f565b606061028583836040518060600160405280602781526020016107f060279139610411565b9392505050565b3b151590565b61029a61035f565b6001600160a01b0316336001600160a01b031614156101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101fb6104e5565b3660008037600080366000845af43d6000803e80801561035a573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039b8361050d565b6000825111806103a85750805b156101c3576103b78383610260565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e661035f565b604080516001600160a01b03928316815291841660208301520160405180910390a16101548161054d565b6060833b6104705760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610328565b600080856001600160a01b03168560405161048b91906107a0565b600060405180830381855af49150503d80600081146104c6576040519150601f19603f3d011682016040523d82523d6000602084013e6104cb565b606091505b50915091506104db8282866105f6565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610383565b6105168161062f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105b25760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610328565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60608315610605575081610285565b8251156106155782518084602001fd5b8160405162461bcd60e51b815260040161032891906107bc565b803b6106935760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610328565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105d5565b80356001600160a01b03811681146106d157600080fd5b919050565b6000602082840312156106e857600080fd5b610285826106ba565b60008060006040848603121561070657600080fd5b61070f846106ba565b9250602084013567ffffffffffffffff8082111561072c57600080fd5b818601915086601f83011261074057600080fd5b81358181111561074f57600080fd5b87602082850101111561076157600080fd5b6020830194508093505050509250925092565b60005b8381101561078f578181015183820152602001610777565b838111156103b75750506000910152565b600082516107b2818460208701610774565b9190910192915050565b60208152600082518060208401526107db816040850160208701610774565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204c42c8a05d38921bf3b9c46c2d6959383ec3cf89d820f0f9ee530ce0a4c93bba64736f6c6343000809003303678c6e8ae9c9a0e364cfc0a73642d9015f5ddbf3bd97c61536cc9978508bc7d00319ab431eaf014baa366add6fc0775fbbb4fc8fe03d71cfa64f1e40be761b68d303c60671e7fc8ae1cfe64cc4033db3b0e88d4d4040ca2ad0f460d437a2275b25bd0331b97b954765b0f324b2e9d87371ef6ea122d01bad4b6a8849911fe34e350bf703beadcd466e2ccd263a1b09b267752e0b3feeddd9261ff5896753b960c21c47c703c6aaef63c9dfb7b1156923e4bce0c5207d13b1c0b532b10cdff35b7fd48b17a803f38bf0b5ac4e522dc87b6e9c09a2355cb452fa74eaf421952fd987682829fa8e031bd8376c5590e321c174fb764d5d336eadfc1d9051ce2498610a0d906f14d73103df77a2fd6c0748cc9ade229057d21e273f0bb58658e1ff90d265b194922197dd00581f032960463885db475686708aba6863f851545bc644d2337ba0e900e8eaac60410100581f035db2748dd9c68a3647a555ddc1b38122fad15f6bef03c655649df60adcd0440110c5180219050003c64782022aad18b83ab4bee1e7defdb2f6163421f4c89a422132bcf6da0617df036ce93a4f4799e996f836241fd69530c4c53334c435265e1f80747a2b6c0c89b503ce1ebbccbaf910371201b18b052fc74dfcd2d5c03ad3363c99355f8a044bf7c3036356dfacc188f7da5f2a50ef0760fc01d75c9143bf397a1902f070af4f4f1255036d40cc6930b413b63eb4307ed096b610775b2e8979d14dc6b91ec09d3a907431039c3179348706435c8333869e5a73b7f3f18085c283d4e9d8e678c9bfaa7985b700581f0240af3b8c38ea848d8d31c422cde2c2d800b62807d279e073cee3f8c04e8944010f628a03f24943f10108a45be8ac98c89438382c81b4afc63a4b92d3508c839c7702b8f800581f0201067c156c1e8c555813d4bceccddac38a4adac1dcb3e1fb099f37a49de444029c7deb0383f5ef922ee790e5a3bb9e2500ba97ecf2aecd7beb19c9d98605662c3db4c60a03f74921c03b9e20798aee5e969cafe124d51ce3c26dd28f8a066eeb0abfddb03e03ade76df57dbe6af8ef04d1b55a51f14af12cc1e6c0c28e6e1b50c7bd7ba5ad2c03ba9550b3c24bc5cd4650688f202fe7f1096730efa8728f498840b481a0f3feb100581f0261960c7e7ba3bbcf08ed66869f1960eff972679deffc3ab526da39551be841010219ff7f03e702deb6110928761bf56bd7091b42a066af0e41bf9f9b9cd98bb53aab35d322031c1e79a4487585ef6c77a45de9f86922020b5a3714cdbdab6c2d5b02fca519fc036bf837b196f16f9fb6e510264bc78689c33c83976e44b0ebaa0e0e1b4f412e1a039000d90d1e8370dbca70d0d14bdb80e794112ea76911759a51db848c40e007590341e25a87525dc0aa79e7aa5a79397fd85d9cd6f35aaacdea80073e2a31fddc02039e2f5e31d13e244662ba6575b4b84838146fc054dda8b9e27c5c0286595d4e800330a8f7efdc52dd519a77e75f05bd53b5f1b5105940efd9f1d5b0764bb1c2ef8003138dfe411ec0781f742d1ebe8b87420fb40fa8e1dfe2d826c2cc51d01174a3e00376b3026c37c3ce267b327c59d6b0b3ca3eb34628b96ab95159eddf582b07103c039375be6b70077c672566df5596b8fda7ad9bdb6b535b38e4bd2b95b33011399d03047cb117f530e012bcd6bdcab2b29ee357377fc8487886bf50982dbbe6f23b1303ba5c23d89ea37e6fa010cc26855eec99e8ce72a293c61327ed3b1c83c5abc43a0219ffff038059901a116bc8d2fb8397a51d6c11fd91b151c5a65661dba6d3906ccc2141c203c81a09fea9a3ae8c1e3ea7d4e59b244273ea35a4c07406d4fe1a81653c2113c803f8d82966fcbb65e5b89d5adb19665da2f241320b5bef6d7780531b9e178c6c90030e7d573a7961303d6b2fb5bda743168571d6eddc965f25d0c1598d3d72aba3f903cd46c068a580a8361a67d1d95b84dba414dbd0737afdafc767a508c0c23ca01f03cb74ce50311a7e8579e70961aa5ba17e9f68b6cafb5c7c0a7f55e0ff484a9aae03197687f47c1387f361b12575fa8e79626d334855f7488bd4c789461e2e1c3e4f038b7067213ec01e895006b419d4bceb7ace5179c9acc6f0e23afba30029b9e4aa03fa342efbe0b800ff3cf6eabdc7e8ce0ca8c2782a19f9be2cef2746d1de7e97930219ffff0331a0d1ceb54ba4ba4db9819f0a60c39193a5d40dcbd72e2be60e6ab3fbb4aa92039aae0f022715a1994c2fa17bea7a4d433d0d35cb97470e05c4a15e8affddcba303baa37d9752822f784aa144d38ed903e49ad75d23eb9a7044a1e54cd9863b608e03bf53ace92370f72c844f0723ed3bba73ebb6714a113d59c3b102c556afa6915303ead1db130deadc88a8ed536c8951d90e00ff9672379bd840a1e5ea7955c6f28a03db86ff979c449d3e45b729aa8f578e651d291410694b5b07286ee080090eacbf03e5296366f569a1750fc4dcd48913ccd47e58032b116d2eb1e3f0a9ff58aae99b03d3d22f6b64937d4b04ece070611eace580008c1ebe36cffd5a1fec6fad70b94f03760c92b4db7d82395ca34442cd115f82813182de079580eb3ffbffadff6dfa1103f79cfb081f3423a3c7f2bf7f09769eac7da5f7936592335abfd8272a1ebe75e40367d9a962c12e3ee71d9b72677b5180664931fbdf8f031e410abddb87749b85d203ceafc76a79e4ad3f2d83ab0f5d65ea1eac4e2b4147a1ddcb051b9e82e109ba1703e89c1f20b557aaa0b127d4bf0c135230e4443ed6520ae4755484a50db3bdd401033b3e3d275a1ed7b7dfae58f8fd6e5851b69ca23db674559276e07670e9021cfa03a24cf4a80323547b7b4c5086fa4a50f5f3a8e6063aacb0654d241e2f3499e6380335c8b4395a3c2e8237e185123fd0d7f4e2110e592c4bed15820d3ca36d04781a030d68cf5778aa5dc0b1d7de13974294826f2afc6a2c36ae0e2ecf24195588470f03af2f3c1e19da9ee80f584880f185a8589000e4e151fce54c3ce2ef4607e06165039c740fb69e6f92af09e756f30b59fd198b90ed3a9fcc9a9f26e0d91f7a5ba07000581f02a901ae5c4b25b9c3cc18e2fb0b882ea575e639bc7974c0af1f25f159109743ffc31003ac224dbf1c7f486056dfb93daaf11180dbf48e836882b786303244a15f52b60503fcfc0ba5766c9ee3d04cb1f81788beec2af44d48e6ecff260bb63938501c99b900581f03f5b0773ab77484da8f64e98cbaad750e6d1688fb726b0fd6fe3e4f46ce5044011aae4600581f03ac1763f3aa496fe7328300d9a705a08b56784ddedc03e690b581c8ded79044011c821100581f03c9a8fdf14f6b107eeaa6fa66e43e1a50baecfd044198eadbdb8e40f7bfc0440112a75600581f03df57d4bfbda323e321114be426941e3f55e042c8b08564aa4e4b4d469a40440117d01200581f039cf52b8eb4e69f783d49fcf5dd5e6188dec91bd0c937e7281fcc2506177041010219f00203a86edd7efe65e97a4287aea43ff050c3c12e6239938341da70bf701aa9e5bfd6038237062e1dabef0ba0d6687d50b9e3386a2d6851baff9a925924eab42a000f5a036ef44d349b353ff7d39dd29bcb24e7d81470e246cedca0cfea8ba6f0c2d9c17f00581f02788637ea0aa06a7949392f408360301b4f0df4c464f14cc1fb4fa95734e7423f4100581f02c2c170e2988a2a5e657939f58c38aae6052382c4979e85ab14f7076a34ce4101036bef2f74fa1469568ed05b964f354f3e7ca4b2046db1dd80e3e7d416659b570c00581f02e1199af7136c1ee6eb01ca01b1863fa911560319efef6d544e416904419141010363a3ada8b058f4e0f371867a571a0665a49889d71fa216c886ae386e7fa2a37a00581f02a68b88bef7e0a6faf9104846ea768b5cd133325a0fab70678db8b03b268a4401ad2088031e84e0ce75040d8cae8ee1ebe0264d5152f80dad3b0a0d6777783d8e9e762498037df5d88872e45946504643fceaa97e2e12a6d4fd1f570765f2755466526f1a900219fdff03897a74e95ac7b1547db263838782ec34340a52978c3e67db8b4fb97c1cf11d07034f466bdc0c99e2250afdbae1d9c720b054e67050a55d031007b063d30dd7f64303c74e317bf95a5d35b6194f3780746fff7d118c5bdd8ad543dc146a542eef4b1503a99dbf6c81060f3a3962704f201d18676f12df1f07e5091249f23bedf4540ec703d1a7b18b5feb65f4a4b3ec25d7b7cd16a85638f7d5fdcbac93fbbdc3fffaaa4f03901c90cced366016761a9587ce803b321344eb80fd33393a4158714d4758ad9f0219ffff033b251e8e97c530bcd8e56e0537471582e48b27b94b28fb49b1e42253305b7bb103f95cc0a1956cf2cde9e238806a4647cb06863d58335cc0a1612365413f9c9ed3034d18d3c2dfd35b7971e2d0de0db385bf281a29f7d6bd8186cc3335df3c15be2403284147d56a86a07c66699eb7026befb036296945cba1d5e6a748b635dffe263903b03e285907acc38f81d2766e0c96e64096029d0ea04b024cb2b87569d47e10ef0219ffff036feb063eecee369c4f048a9853ccc2b804b76617ac6ef43f9d57c27e6c5beee603a2378358a8ba5afe2cac1dac11d42f13ea19994c21bbfef259e17f15bc52fdfc0345f353508104a0cc275201dd07457031245b8936507b8ee8793d18f48b8a8fc70349b0d685ef9d548ef5678b23e8931057c9b7c5cf0cb7d8e6bcc6050c2d8490190366ffd56952b23e84ce7d1ac36c26e518c1d863db5c623048d430101cb07415d8035da41dbdd732be6c2db832d7cb67796b69222e05e6b2ab2e07d6c2b3b180565403e374727ef2dcc4802de1a5dca46604896a8193b26feae741016bbefde21bf40d0341f3fab8de35da1bc155e672178f8abf4e21ea70cff4bfcf7170c83d72482aae0348f8080bc8fa1e1f539bf412bf09765a02c50c556e5b8f4c170c0c57e7801d56039299ddc5a095c417608ce34af0e24ac3754f6586dea317219ce6ec9fb3f1636003be6e9c2708f6de65757da891f021cad8c2a12a836afc18bfc2fba779c63bbb38039db49652c9d730b2997d2957a7204b67cd6c1016d528ef63d7176c764ce31a2b03262a1763ac440545b8c677ab382afe94647f82716951e6e3d5ce4c8cc4cf28af03e06a6f4f345982bef52cbeb1d1838f0d1b1db9342517125e5df85d9c6a81824603972887ce61ef9ff46c6d412b8a171e5534f4aaf5bd3c6d29c6c8c259c0b21fbc03db03e8e1cd8949b2dec9d471c42f4ed0b7e605ca46edda6c2e623f83968f0ced038ffed051125964bdf8af6e467b27901f91d350aae36eeede9ac93981b000213b03a84bbcbc98ce61cf8b99488734d2fe5fb7c996e595dc8ecae96fca1b6d771dd603c100aad930122781fc349d0077894ab4c1993a54799fd597022f6ed0bdfe102f03fad7a4ef668630ed5fffdf936691beaedbcf4be886b2f462dd23d8502c4a42ba03a7b7775011dd79e7482ff06580b5a9da2207abb760f66ab3c9ff45a17a02e3d203a4e39bd6c4bbad0c2b580f1390061da2bb7a9d1a56a59a3507765b6baf2b010803f1a23d02c110878dd3e569546396106488402747857ad0fc55e4d9db154c99f903e1fa3231df7f7d220a2646fb6172b6e533d2cf94a937ee910ac813f93779ad660325890c35655bd158af4664aa4f90bc4cb06f9c147604866a1ff5d21bbd168cf703ad3c8007db0ef7989b147aa7ad1b6406cd4e115eb976eabd5206372874af85bd030298eebbc5d748701ec6599530d87124bb92a35a2bd206651071ddce513babf300581f033fec0b24308ae29449260600291de4db16578475b8050030bcef694ee0e044017f82a200581f03f048f5201ee4b0986294a3663fca761c1ce074ea224fefdcb88dd27b0200440263c5280219014003dddf4a4dcb7149e03b3fdcc2f6b0179dfbb9281ebac266d7ae9ffdf6025f27d800581f02fb68d328d9002a4b94abbc10edb8e26c67ba6d7d14b809afbdcb094a0fcc4239c903d122d6b682074f9e064103daa5b780a52fe4a418fbd94f96dd791f98c250c93d03153ec27d78c3f99a26aba817ce8e9695f019e2a41281cb52bcd62a74f434df0c03f0be26fa3b488fb6a4aefbf19a18922da5f5c6e2c0233d093f7306793339bd9a03346f68883304c98e70acd3bb264bae652791137e43602001dfac8c6dfb16a58003849dcb48c802098392adabb87443f397ad9856adbb59a87dbabf3e08653ff072038d7b7c4eb9866a899f251dbba8cb60255aa503dc5d51497db7575c0e8b16aad000581f02ab71970524f02d8602529a9cdfc7e9f3f415a738ba00e792f8552657333d410103c37be63a117dbf25d8605d2cccab15dd06c00979a79d0206e8bf9bdbee258911035fbe43d61b3f417e6e60e305609d6ada8d80e119bfe1dc5aa024454794e4d80b03e2f6a3e2e75ef9d1c57b11037fe9c7d807f12aaa8c7f1610d67aa8ce4dcfcb1f0219fdff0383fcd0f24b48034aee093772fd410bd3cb9881ff0ad9ff09fb45c837666c0ac5030b07a0dbece6e23449514acd02365e7b1c1e9d07d19e739d39023a023dd46d2f03ff26e33e8b3f9391673bc8c01c13ca69a8a8439aca5d192c99b5c5fd6e0d53c80388d474105c5c395f45a05fa7b7b7db3a004f643f2d8703f7517b1e399c00a55e037770938431412702179182ab5ad83590b7d91646f4ff5b63c97dcfc5b9aafa1e03f40b04e265f2d77febdda31772da3559e185a8c390127e51659767f24598e28d0219ffff0219ffff03f5532ab82bd490c9233ab1514a5932f8d95ae84768492424fcaacae7c548aafd03b9aed8563469209240bcba2542bf5a980fb43947c875661c79ef52a21606293003b001b8012d580005798ec83e1086888b842b7622b3975a91be6d31ebacd7247a03005fefc0606f6deb8d61c1096541ee46bbb1c98c224a23a14e3907229fb2f8790391d49c76b204952f2bcac4a5c38b7979fa61e2c84c8f0b657806c0f184a75d1a03d7faf4105ed99ceeed2284933c8d7b581fee638377eeed1d9114b15d230d434a03bede4e689fd114af33b1df1794d3ee81342b0928b56fe7eadc97593e08e9ec450357fd538246731b34935256e5af1c7ea2afbfacd6119a45139cadf5002a2b173f03fdcecfe81d8d39262b2ecc89011d617177dbfd11dd1e54cd963320eaf56869e9037d773115ba8be958f29ee01692d8ed81618d04ef230edd90c4f5a0dc3599a7a903edde789bb9aa92efcb43f24bdfe9bb03ffb4c07e5796cbac62b256eb8610b55d03e2061150bc490e7288e6d85726119bd8e08f35ba916329aeb5b204522ac8754d033e1a0470176980fc4087ad0cfb0b6c9f409c84cb3321d4b085ae021a51e5d698032d31fc6d5ba690216b76f1b63c40430ec18f455716b27c72971839df9efcfa8e0314fafc26b5654a55071b63c5cba6a4756d9fd82d157bf8c4aec4b3d489584d5500581f02f53279467a8fa69524ce5cff367d432c52ea39b4aa04c90a8e82da02955d44011d006b03286c553b5f09cc49c8f119c15325fe1fbb330abc367865d20ff327163fa547cc00581f02f48e0016ddcd5292aae4024ce73f2ce1564e90292562c555c136f08006ac4386137003fed813225bc9194fbf0e32750f205b7a1c5ef9ca9ed18dfc8986c4498530fdaf00581f03cd0bf31dbdbed81bf48aea2edfd35357ca9703cdd96627aae8fc57048d204242f300581f0358d6103dff821ebda9cfaf5dbd70c259fd18d1f1308243dbf7d7e35c75a058201c8f9f160ab2c94c3ff7c2de5d0cf52631af2a3cc41378c017a1f3089b8552d300581f036909f766eae55a22ebcb848d78a2fc78b029a88ed43238ffcb2b3b6fa50058207a9f20f5deacd447a9bce3bab04d3158073a38d75d10a2935ab506fa827a262600581f03ff7049cb9ddb6f057959083364e637f2dfca21f50acfa48adddf763818e0410100581f03c9bbb444713fdd40a4167fb1cd80917d7916d11816d7ec3e36084e5a370043036a450219a04900581f02e59262bfe17976de1698f07ad54725aa43d70dbf406c1a1aa3186800870243fdb6aa03e2e261b310eb74a6349ff78d547e7a57bef24321e65d795dd7c1ad8bcbab8f78037716f1479035c07195d650fcf663d46d17b046290445513fdd3ae460db548b76036419c2621383ffd0d43fe5036d0af81df14700412f57a4c3e7c3edafe9bd77d503a73360c63a26ff39e12fd11ed139ff44c93900aea7e3b08a2d2cf1a6a6ebc019032101e61dfee482aec11188f6945c03482dc317612fe81d4cdc6eaa9fac5f1c0600581f02f46dd1b3c086c22f36400e7a82a68465994e7e1dd30946989b2d09e4474e440123bbb800581f02c93bb98c6116b8bf73e7051adeb3195a7ddddb65b1028f3e86e9780fa6f14314c7e1033645f33ac0a93fe303982d266e7d3029fd9da64d6ed44fce5d7ebe2d598aba370219fdff036327f3465537629c4ed092fc31796904e68154f6bcd397c76b5bedbcb69d9dd503b2d6b5a6d3032c9434d3815972c51c7a0432250fb75cc50ff48085b4a948d9e403b7655976bfcf7de93a78180383963a6c2659584ed0a5831ec8d2adb1108552470219ffff03bc1745a88ef19798a371c55f3e257e69d73b3c90ce4c4e5fda87f5959eafff5d0377d1be7ea2179e100d6311820ac6cce069f0c6db81b19a0142dc0b5a0df64216035fa62e005f859161d7efe120a124af513ad5cf6374cef05121657a658820d5f803f41224a486771bea4bacb141ca998212bdc4cf935ad655eef492bf6784c354480329651c2b6bf11b6ce72cbdf862f91c6008d3e39af1981644bc9ffddf93202dea034a81760e05911b176f29b029550aa006f3fc8758220cf99db8cfb87f1c6a854003650c8642f364bd8f24e1254982be9cf5f3ac9d4920e1205f37de2b568332d046038af1fcb8145a99e4f7a56b17cb2c8a814f2c464d3e1c909efd34995d758c73cc036424c79223c6c0361245a227be615edd0d29e38a7b68f5f47b3a60af9ecae80603efbc17985c3068b1a9a408f014e65c6a906a4f2dab62636169ce0668f9be10cb03e8749b3f2689adc8579f5653f666e4369f1cdb681332a1fd3bdd4fccc5033c7603a6be0f0e81838f8fed4ba6d2afaeb509d54cd8e7a1835cb5a98d8a268c71abb403b017d465a5036fcf872be2aaf3451d2ff61d30877126b03758375f4d01ecd42003ce9a7e42845bf6ccbb2f8811b18a1e049886ac5e8af666b42758717359d890a10382e00e3578db9fab46f12fe1fc32e45e2abd042d36e3b512a7862aa0f9a9a4ba035a854fb58e72f9ed6f66701e7ca80ba977b78813589d206d2b9a3c626eef78400397786df98929c75197e13ced07c1fad9a64dd21e6757e3f1fb47581473716e7b038768584e9a3b5a2acb18b2c143d26c7551e737ec4d964570a9bd8b72279add50033a3a80b742a66e1d20bd3d8ffe8c2a01409439b29531bc7ac9fe6ed3efbcaf2e03448535434e08e712afc8b1514131aaefb96cc913f29ea7f78cd52d5e9c80047003cbbe66b3f6a39273b846e82ec50ff7227d236dabd9e024796fdbc9d109683ad30303d02aef75e666f992810ea915e69afc962336b419e5a5eab0890be95ea19d9e039c192913438ef111842770dfdc0ee6d338fc51e221b887f7b3682fa3d25a29170329588bb9990d057f70542908dbe09c576bd91b598965ff9d7bbdd9be71337ad903b015c3b6f90c242723b5588bd81ce1860892fc11196018dc815a7a49e81d0ebf03eb830a5227ff8aef5f9d9ccbf33251282b127fc598ac010482f43d650eab18c100581f026aa1957cda3075b86476e2ad6bf96144503c28a3d6cb04446935e486b5c3440125063903fee3ee8d79a5fa7881cf91bb36b875fb1fc44ba000bd6d94aa936d057eac49dc038817d38b0f93565555ade61cfe0ce12366e7a7171615cfeaf15c873293b2475300581f027a7be5f866c86115f6bd82085dbab0bff6ca716e303f9f761617066bdef95820a66924380d529992b66222d646ab5a57dbd5b8c5c9bc6f693e0d1a0d0090b3f500581f02d6cd979152cefbfc54866ca39f7116d66c676370216c7c3cfce6eb781cc944011c8b8a03b62bcf760e3b0a3259b44755962a6b6d0023fffa2cf7d375cf2cefc5bf0dd292038fe5e80df38c22103365ec1f429d1641bec9a3de765459d02467b380cff7c74500581f029a07e86d8dc9fcc73c7316e2f1200d3ac17803eb3ab6230a0e1114dc28514403179b3e00581f021a8d7a653f50907dc2e70d9ac1ef02c1a87948d2679f90b8818bc16618c9410100581f03808246427f78cae552bc929856ad685f9dda219dbe02aa239a545a0c2b40410103fd541b809c8e99c01f4d1e1452b5253aa942b6be588b4acf2a2ee036b530809902183000581f0220628a58027dd421d9fe724bf30a36141644e5870a212aa4cb078630a3d444021983df031db56e1a0f5e7ed604d76eb5894053ac9ddec3d9987fa020977a7d1fb4275f3a00581f02629604c454866d4ded0e8d153a8ec9f7ebede70ea390bd348898f5ef431c432ca27f0219ffdb03cc95c0253dd9388fdc8c18c1a54cbd774daa9cd9d746878a9d442009aaf8aca60219ffff03d730202c6294a4fb34dcff78fca10bf15bac5fb23af5b7d8e6bbe07e745bbe930219ffff0367a4d3b03b08d02e1655751903f273ec0286722d8880ca4db01cb10fca24d8a903db162de8da5765eee309604b888f62382589b8ae85c033dd33acf20fa00682bd03f802d34367eba30931bd22da7d86b9f9c71b4cfbdd7fd3b75d81d67fc64904630347c46614fae2d10a2d944ed929e2b40a8a1e044b807bed434200227541a85e27030c9345bcbda529ba20ea53470caa2af8608633713013ebabf94c30bc3308ee8f03b94faefd56b6e35e98b0407c2d9aedd10d99875f7ffce0977056242fe327d68203a36d0f934463cfe455241b49bfdf5bcd89ce09414808aa0408d856b9c650ab2e03fe6669e04f3f01fd0af9836d3b9002720fffe31cd3e300f4108785e76deb3e9c038fcb0b93bcd472cddc64f2ab7e6ae735cc76bdc42ff3930534ac48dcdc8185d103276d4c326bc926db9e438cf52add83b811c78bf86f52464aa489e1e3c8c2e0a203f9fc8a1dfa982e3766e1954b83732e8955ee3f9e6dcf76d073839d88208601910322c84a029501063496cfae13a970782f76d51f79c5a0a6f762b4e052a64729a203d33b2b45c8cef140a8be9cc278c4704cf226f920f0444f574deb3a4f92b3162b030762ad12428d22572f0baba32bce32dc82c88950727016ef857fae3fd4d7a456030de8584abbb1749b213798d872400fdef664eeac127db3b9440fb8b099a7764003d5cb810971bdd89e308331413a128c6a8aa2bfc646ae0f46cb4713077796a73600581f027c54775d8936da2edb2203b9e5665bdce9f656f4a9c99d25cd7779559919410103ec7ce4d2d1112b38445484fe5cdd7759c44a7e2b981c4a01ab4fe24f102fecb503add7e9fd13aaa90a556975ce6211f5566156107e917b2027ed93f336cc13936b0376959046983ff5836be9ab4f0be75ab924d157eaaf0d532733b63ff5e05d2ce2036c9055a0600e19dd461df19f6d5a2738e432a3e87b26354522137911c3a529f100581f0211fd4bc32f2e27820cb1b000e55fef25fb44faf2d7dfc8ff1f912d5b2fb84101037052535f1068c44a0eaf5810b89470f41d6de59613f773465eb007c0451ec9d503463ef98550ff0775ac385000c4e77be821ee18b7e9d3c64a9a7a453ba300f5cc03e914757fcfc86fe933c5a1a03e64a1720a097b62e29ef9ac8409dab807000c7901410303c9f5a8f6aecbfe1099d7558f7e380c90bc2e7b51bc4a1e63a0955f7c63baf8d0033711ab3b8a84b8c8ac8504ad3e2743fd1888e99daa3c31e29c3712ebccf485410337478b25a0ff0d7e05d4fe6f9660e269de16a22f9e730de6cd3ad87aaf2e1175031997cf0544f66cdfa26ec6edd1ffb7f99f0ea90ce201891d2d8acd57b208bb2d01410800581f03bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d4810544e59e778a0fb77fbb305637435c62faed9aed40f00581f0359ff87b96e6088c52fab5b22f409ffa945fa90a5ada90800cb36def193e04401164bdb00581f036a13d6e21103be35c16adf410e666db28a67ba4db51c026b97f233203bc04464fbd5fb00581f03847b82676c31049781db356c4af36be48d675c96144ba9aa257ea454a880440122dc4702190a210219fffb0300b385c2b408c4a26957897c9d6b1440cdd7c3d3109013585cd9320e6792b82903e0c2f83834ce82e53368e25fc0f5130f121ea3ac5eb5aaa77b255c713a5de1c30219ffff038ec3ea7a8aeca51ba62cb57a96a456ef91d13112a1c36bdb3ff7d74495c0881f03ccefa6ff6f2d35a8c31e5d79eefdcd60fe554f25bb87d6c086b8f3f353426e6c03b4c7fc0e0a641fec1a7fa99290c3e3d255e6c9c6510eb75ee1080e4c35b1877d03eaf89545749de4eb8077a2ab7b3ee14363b47448fb551d26ef65e3963ec36ead03f6fb571984c121cf69fc4c7aabe7c148c22b8e5096c02cfaf0f2603c0813cba503b3d85f963e8ece9e9af2fc2bd7376ab0c6187bc01bcfe5a16b80b9c6de365beb034bce28a2e877ba34120e19fa67b736dffdc7192a593f2af22544add1c85c641a032875dfc0d2e652eeca9951abe46d30977dd0e598a8f497e5aecdf66066a4a535032acbeabf84e1ee992f973cc4c0feb3b00abd38ec0fcf51b6cd6b92a624db0e2903aaeb97a7f25a1d713ab907f398d80bb36d2bd158b001beb6048586af73aa201f03600d682511db2ff23ca93f57f5380cc97b9b76dc75c03e1aeadea043678c2b5b03181a9e23c8710dc186b5911c9db585d0d8c7ecabf2f811a34e00550342716d6603f81efbfac8afc0e9d1c2b543e6f6692648fe508dadb4806e86916fc7d6174fd80219ffff03a235aaa0401ad4a15bec9d6af44e11b99180713ee8c75a575c3d7c1bf6bbf98003e9a29299755f6b6b150e90fc1d080398930075157b5996f5f87557dead51fae0033451cbfc7c1116817efb20f6f3f76e08113eee67aae2fdce14cd79ed6193839703d9e125a4c3c1a36ebef6525d88ed5d2389111bb28a4481a4579599065d09ddf403d6ba3ebab326c7dc2a964d3c0861d5be49daf8f9a4ef6a32c564b26b237f9d0c03fa94a2926a7af7a2b144c14ff7913ac589579aa59717119f10ed9ea5008d65e6037344db95ee5f200e22cd7454bd339375fadac1dec9f92b0c7e5a84fc8d4fd0d60351912ac9da41fc83b8dc74f6bd4c5838dad5a869d73cd2c1f4d62cd50b776ee503f216b74f9241bea4cf0a7bd2052ec43deb59c387c38163943367f809b8aa0c66037bd75581e63fde39865a1e974729df041804a802ea710391920f07a463cc74e603a0747d3335c6b4f9158fdd0841d1f003de1d990e65400a0cb87b51f52e02d22503c2d33f5fd3082603482bd767a29c31bfb884dd78510256140355616fdac4864203e7d9e0701269cd62c684f75e8adae14966e877e89ab685309523b91d0d800add0367273757d8121299ff15a02c577793c1efa934a9f202a9969c63372a215f65fe036ba5a5b8e9f978c50cb2f56960312d928cfd68e96d7aa00f34eaafe6b07839ce033a414b5c111df57ce199996da1de590e39ce81f51583309efb40ffb29d86c5e90311c004a7bc6aae8f19987cb9273e46f0298978ee2cbd019d078334627509507803da25566dc7267f941d1a500b2e7b89e1316d12a74081a9cb42e64b02e7fbeaf103f083b5f9e469b880139603694580ba2ab52d0d711fffbd54f4a8cb69caf6d40003ea8289a8ff28c9f81f42259bfdace45497812f45ca1caf46d4b5feaecd1509740363dcf4ee70f25fc500ed2f1c7e3491d30bff8705c9b32560d482fc687edfba9603832b2df277a91e51f056d770fb77bc8a7427cb8fd082706e42e76e76b631833300581f0221a3a4c44115a16d4c2adbfb5f2f0e090104c92e38c81cc8331057c2479742288c0392a775c84053bb32f7494327c3be5f296562ac85eebf439d27a450c403da49f600581f02a31505360cdc4c705c74b27898dfdc486601f161b9d729abfc1218668c5c5820a754bb412da7957045e5b17ea485e3bfa7b215bba7b501acbf8fa38fa83e045e00581f03b166f8164a3f11e9fe27454c1edbddcebe6fc32d21715fb6dfecd9786c004465098c3700581f034891a701dae8fb9f8dbbcc61042e2bc751d763c0c9e461179caa941ea8a042291b00581f0399a2359b497b38c13337fde00d59bf7804791e57269c661acaec2d31a400410100581f036f3ecfa52d091f8c43430afd61ce27bf5fa26f7344e5e72ce3800176579058202d2009bed01d94a130150e62c13c44f0c7a5272e65c610a20ca25b5b08152d410219c120032223d6f004ec85f6f8e2ecec16168a8967b1dfe49f3a5733334d78f42709525203116d7dec9a2dc88d59360bc1c0ec63ae75012409013a82027d1d255743caa135032181c977f8a2aa101447b67526664ddad1053aa0fdfc9a6c14ada652d350b0f703da04e5badb55f4b52e6f55534450eb27c103c77bce664f409c9a33ace0baf273031ccc7e671675271e8db66c04836c91bb07ef1a1b84695ebdeea447425bb5a4c503a0d6a7e96bfc8de2236c785a567dc8477042902580fd19a37ed45389d935ccc603b063d68c2dbe34fe932e0ee6046d7db4f0c89ca0f7755d31de5dbaaf3f5fe50803429a3b2f0b776cd2152b7c9d02c6692f38481f02798f2141f44c88a63606504e03a97b664c60ca9dd4edf09fdb71b260162a09408db65d0ba62e81e6b25dfa8ee600581f02403e5ec3cc782daac2777cc0aeae47a4048195e5348a376a0f2473b9fbfd41010219bfbf0219ffff03858209b5309b54bf45176316e0de592e575f20a87a82c349aefa2a83c0dddb1d0316db12cf23b69215022b7135e6c4e6e4d2306959f368230708116ceb141fa7f903698003ada01a3b198708265f81269143615ee838187fa622abfcfd2afb371a4003eef0a8dd8529820500d38ae59c9413dfa377aecf51019ea36ba5ad803781bb7903469154a005be5a465debf68c17d90a26624b9040b6c25d89ed1382b666e90d8303d14d582e5e5c1445fc08e7ae5be803f4a361477cb0407de83ac35df5964637970301ae81bdccdba2d2844ad87b869aec6664747efb65857b4c2c33b09dab0bef0e0358a6ca5588102fd524ee4e1af393d0b152063f434a9f1edfcb1022322b9025f30219ffff03a953ab542b3c65a3c442d5d0a4ddd2af2c354dc76a87dc1d90d3121a6a9ca2f103b2cd1050f8cb89d39c3b610f02c80f289ea2c1a0ebf4a8010f09497021e00b0d03063e5a494e871c699b2bf3faf391dae6c6bd1ddf305a31e2137815840e20064903e83cd57710ef73ab2d01f1413ef52815dbadb59796133b6193e43f4737e1d97803ceaffbe4549a0c5ad6890b5dc6287f287e67ff1467087c4ebc8141f97beed16303d2a2808a436f767209de3bd731e9c4c3d6c190be91090b0835a0a1abc62a867e03d2bc1748529ace4a75c5e18a20c9caf60b5c026ef663d5f4e2236f3b03dfc74a0357a9195b4d31e7699db5d062edba28d580ae66470a217ccb8d4a4c2da3a566e6037e02d619a12f95805af7661f433f50b497795f9ca6bb635412e4c7338e5ce4e503b68287abba386b585a5dc55546d1f3606bf66271c62bb8109c60cd4f9b81232c035673ed86b791ee25fb0ee1e804a2c6ee2c490520f61c7b8c142d6fd22b84c08403e2139ff1477b094b0c9363b9dadcc7d3a300dadcece71354f36c9963b1edebf900581f03f838dd49485706f58028cb19bf0004e1a3a0c3d403202b8ba1f25e5b733058202f8ac10d4834fbbb364a7085168722cdc6f529583a0825f8545df6252313054300581f03f8068b08230b0c9c19ebe7ded1e39df3df204c5984ed911891bd0bd912b044035053f50219802003be7d26e11572ecef4c4a078a5668a1c715d81a3b5f9d7ca2228ae7918ded396f03a3e46c51aa8660b1190fd43f33ba901a6630c37a4f88c2adfa01f4aa64348f90032ee8134dadd29965cbed0d3a269370045d8bc1af08b9fc9c74abc5b91e5b76bb038b23c56270acf5482b0cf718c8dc75974fc6fe91a99839b35ee078275de23f37031da7b247c60a98c892762ea8de8f1606ffa2ef5d7cdd2989c4f090c56ae91f18032dc9550fe941d8e8c171514dc91c8b0c00434e5803c51ae972076ff6e00e1252032587b484dda3ed6dd6442d38ff3b772151ce087cbfff692f1276312420640edc03ee8a5efdc039c61d92154a54811e8d8a71135fb821a43feae9e00d3680a11cc00369fbefb516a0613f0b71486dcfac321f329882ac413a9fa1d3e7fbdcecd70ebe03ff71254f950296d3897f5fe0ca56925560ef888cae57e6f4dec3b0aab7cdaf6d03a4ee118f903e70a6d9b1f38894e1937479e5d0ac2bd86f5c7148506ee2c8f93a0219fbff036f83ff72787e48847b4217a7f1b193eb4908c8a2798e411c66713ac413fd2d930394515e4cf097e5498b0fd8c15690d75af7531e7aaec70250132706937c72f8c303389a61eb5899a9e2038723663ba0c6e2b3929a8ac8a3ce41a00a9645739d670303760b8e7a6b782311f57f973d2330144edc88ba4f9d9f9e27a45042d82ae3bb10038a2cd6340a7ad0daf74e3757ed7d02b109513b9c22ed8e888aff7bd03be9b67a03a77bd27a81c8804e57a84192471de2672d9f068bac94272c203a9ce27ad659ba0219ffff0393ad18d0fd8c6369f0472c1bf6794cdc0ef22fa9d4f3b147873bcb806bee2dc303a1e5a15b2423f5d254b85a64c3effd84162b1646c7d463aca2c8af878787680b0307fcd233d51dc2c6363e6bc4a28f3bd79b14f5de63c0bd7789baf08171831446037eadefce06d0f90f3e134fbd22b879f7aadea59350cd04c2c11f725c8b0ed0f50393e1b81f533c2dab2561f50e9d5fced9c7dd1044142b9d4fd8d4a3d9fc2cdba303528b2c6e4a15c1ae55a3d22109ef42b5cf4c3bb1a3346f022bb9b254e28617b7039defe30e153bb9cd790fd39755d16e4619cccae1e4dbeac05e003c80fef903cc03f9b0b0f9f4a7f897a2fbea1895454e86b5f8dcc1456f6195bb309466da1d513703bd6ff4834635a5d14b471440d3cf4cb9cc2a8866cc13c833aa42c67fccd0a6e10324803a73847302d106eb144055c164971cb82adb3528ee5703b8c93c617f2b5203ee8ff52abe4fa4041762a338daf4799e9bee4199c486fc066fa608c70a60090703a486fb9017bb13e4b9ef75dcd6f5cac04bc4e9376a116f221296c892bbf26931038affdc60913a1efd78b676a9ec9200fa9c86e4c7fbd97d3b73dcc70f5fc567400316d2c4eef29d3eefb22f001ecf585b913e676766319d6cc125f5b02880e86687038004a19ed676398a1dc57d62638e0f38a6fdefc1ff216a4f9657d7eeea9b012e03c371824ee2b84facec0b77825b0ee395b0f2b41690c071c77fedc6bf005e92aa0371ec9acc1cdbf773102dda3f27cc834623ffbbcfdeac05a62765ffbd8dc6074b00581e02ef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d541872ce78a362c58d093ee107cadee2667b7bd99300581e0222faccdccb18ffe89d26696f6ef8c513b87047d2cfb83d7deeab49887c440315912a0219c00000581f03f1f9079b508278c5a6d25a73cd9d204a7c321b9009d4ac3044a114a3bc104401b337bc00581f031b6b1f66b47ab99084f9ab90b845c9406337d7dab16d3f6acacdaa958730422a4a00581f03e631da797345450519546bf6a227ff5a7198ebe3a139d121041440dfa6b04464e7c2fb00581f036d4cf5afda86f46a64978bf8b416fcadf978f789d8856822ac2a8fa609304288c200581f03e874e9e6122059adcfe5719a58707a1f05c61f344d37143c73e7288528f041010219282d00581f0242451e023ca4e464e7f3406d6e35fddbf7b8a500c82ac9626823d1a419824401176a7e030f1630fe022c8962b2d1eea2ebf4033a080a8eb3c1ca55d1e9ecfb2923731c4e03244f18e4bac37df93f659930a771d5728c6d65a1a625e6c3cee04be1ceee642303e8aebfd45a9436a18e7adeedff37a775e58c21ba0d0a972f787c386ede697671039c4951484c4bf554d257f3c6565e78b5b80979b12639021b2bc0ade83649090a00581f02dd73b3cc540bb6bf08f5f07ef8cd5407fe5941ebba3099e858595e7cc03f5820b9fd669de485b5af23052b9d145eea1cb4f7797cacfef6cfb21fa67f48548fd703dda7311a76493d0f89bd02137178ca412c954d2afaf3c422504779c86937183d0385bb0527044a758fad0c0df3fb83ae3d6bb16595bb0e7e21daca0e96d8e2a9ce03bc487fe021eef34570c2ec0cedebee8b1dc76cade9a8ab2717e79ff5dfa1021603cd39626b5c7d14e4d123d9edf25e6440badeeb70f91c560be1e0ab64bd0a727e0386b951832630cf13ce93ac488f86cc7bf74e8d29b0c1f751e7e0d03635cb23ad0219ff5f0354707c623a3fd5e1433e739a2a3caa9bbf851d04195169974849a12c3f15571103f339152652df15cee0c33bbc9b6d64311226652c66d39e9498e29c9f67c80ff4032ca8bae36b9ce5ef134ad289c821f89f45bfec345e502f3c3f968f99558af6a803050475ccf08165b1d0159d213fb43dd75223b0e0b33ed885a96c784c9798e5110219ffff0337d3a752844a1810beab98834710a600451b1a052b7dbe9e97df50aff4a0c6bc033cfcf6a5ac8a1569b5d2219381b0c367b72a356796c5f99684af33ed7c0f0af003cbc5ec924969a40ed2f901f7c3c3324ba334f1626a641eb6063c7837bca28c270371fab982ac7f10de4249be66a23ea6161b99226b4a64f88f88351e68dad2c78b03dd905978b6f114b719a01b14e732e93c424d1e145d2e37c88849271484b3adec03a30229d38b38dd9d80709671eb132afa7800f2f7186cee20d5d6e2e54be1aa3e03c7f5fb4e334318f48a6924f5e40b07049c55255509131d8a032b190b6b59b9370399b107228eb5dc1ea66d4fc085e33df34cb1d7ae71041d12f0e29d6625b525b803d2d12b525e4a1cb32e50df3ef05ab22e0f1ad407fed52ffef91a9cfb37c9bab203b27dc958432717143557a4c0f56062854cc93d4e9c251b25746b2d31daa677da0219ffff03ee14a1c8cc295e62f342c7e2f130a45366a9b88f8b4963e89722fd83c1b735ed034e31234b444b6f19731764ed2a48af8edc686bcbf2636b853cb503c8226dd9ed03e9cb8ed5badb10a817bc99e99c75686a67a5a8b11d9dcb02a662d0a3c3bb5ffb03daa192b0fd59f04d0438db869be9c29a2b578cfbef81e19add169fe14f618dc50399fa6f25dffa92ad600bf99414e0159d2e3c33243cef40d6f0e0ea5de479ce8a039d5f3f5119608322bab010b2abe0dfe166851d811a95ed73292c39c5f1548ce603627244ed15c732e548559c7525a061edd7e462a865c77a343c2f7064f8f9af9e039e26f60810aa217d0c282276b03eae762b76f2f61364352aaa5ffcc21c42adf70349eafb55305d27bc301c98d35bb596c5aec64778a532ec9e6a6f67ddc52564a9038a46f7588b3a0ce05cee6345ff71d35d3c477de7aed364889a231c7eeca3d21703bf987b69b5db24e79b83cd896fe755db9ee23a9a3e3283a9b97d84746ded78170378da6350c2a538ed5e929897fd0605c097f103cda40b2100f8d5fcee8c0dd4bc0385ac2c9b7dad13d35d75cc0af00970746e7633ed3a0c10091e44303694d7b16903ce2635eb4f7e080ed7a949f1bfc287735a42415b6953ae157d85dd8d9a851c80039ab2bfa0003cf59f9c36b5bddc27bda85c978ba0dca2677afee539f0291d711903e5f8b9dd22af310005375adad47aea718864aacb2334967063f4d4e8ef56686a038e497409443ccc0e769d33cdfa5e1ac9ab7e84c7d62e2bfd9083f2c041fa12bc035b279056445674e938ee2c4676a1a6288a4bc0cdf1421b77e3cc55cc9d3e88e8033245a4591740ab0233565af3b4dcf419a03594c0412a68c9be6ff3f732d17ed4031cd926ef8464f25c1ad632457ca9a5e85a13138fb7183fdc11dd12367b2888e803544b0425299e956eae01171699ff90770d68554ed55360efadd8cea62c4e3ef20301fd60211132bad381d9e06314b6a1b6d3c862f4618ffd3be44ad21b88a48adc00581f0270ddb2e747ec3bcfcbc38dbf1bf08a185cce05ea7a81eb022df487cf3083440115eb9b03550b2deb0c6cd9bce594298bc12ffdc2bc640af1674d374a4bc96f2175f162b003004ddf1ae5ce947c3179f58dfbd780b3a2869eb2db451d74c8f2a8e22be1152e0349509e0c07f082239db5cab67f4e880132fa72e9aeadf53c91eac5c74c7130b003b07970f5b2982b6a23dddaac4f443e07e99a8962510e003edcfb876a0b3c1a6403732fbd0d485771d29ba7c9d802422ceaa7ee2b69b681e794d0f7de99504ba0880348d6739a509e19b55bc0488c4e50b9e745818ed2d7f9f6f05794a05ca1c5e11f03bb8eff12d37059693b3aab516436ec9850c6a507dcf9614c4736e8d4ce41d0de00581e020d38ae69ed80917652ebee257b8d0c814e854d82275132d91ac3196d5a410100581e02d6cc9208e2e97eb41bafb7b72519433c03ce1b6e872c2f954cc06ce53444012596350219010400581f03589bcab6096c25f494840568f2770f1eff84d61aea27984b5c54ac9218004101021928000219fffd03dbc70dc8804091e698d8a67f5bbcaffc3f92996c5d13caa3269f3951b11e1a1d039461e1652942126bc916c1149f0448c96d62c72b12963ddab2d5ceaa4635958f03643ee6b0cbed98f62ea7c9e5806a15fa20b3432d9c380894b6020ceca78d9d7d03e2678520dd67001a70b5338342fe6f0df29d3648cc0e0e38bb4030733a07cd0d034e3e9de972141a14f4b99651ae271c4bbfad11f6511ab1ac22d0237af3c74d6103f9cceab31ee57fa57a5f03ff478e3bf51ee8fa907f58a0c3afebea1ea03e4dfe03b82d064cf62e3e48ad2eb6d230ece372804de60a1d34df3be91e4f29e3ae7c49038988547f6ba1dfe71951b4f42b94b4e6b90bc89f9d64f71da6db38b858e263740394066f88c704c5a92346769414c2ffa3295331ebdb8ac541f6edcca05a7bf3e303a2ca236771af18b4ccd4f7baf12aabc80b84482874c9e3385c1626e9d7ba99a30219ffff03c7a6a07a533bda54fabbc4bf972370433f020e9faf24991a47388a4ea78747b40397494736d843a42b18766709cab726cee38f2c06cd6ee5ebfe06b8dd50217381034bde310299f3155338b972edb8146da8d59defdbf7272887a5ae83d210db5b6e03d01c23cb9fcd3a08d67a3d6b8b6297f081efab941baa786fb14b8563befc94e90219ffff03904f891b0c633c13a771c81945d9a834f51450878bfff0c204778ff16e5968490357a659ab34b601b7ff6e914585aba61637a63dd2a1b0291323ad9540becc0a4403a057720162a8d206a02a696aeffc0551746c58664ef719df6a93d8ddfdab3d7003559933d40dec6cb768986f97e2dd0dbebd6cf73f0e1d53d45bdb42976237f8b903bfc557afebedca295e5c86e8b73c78a1f91386e1948d7fc20b6082891a2f519203bf17998e9b5191118a97fb17d6ce968a3cd6263d16edd3550c11e609bfd711d303d1814f85eb8509886dc33bd75b4a781189433fc54553fa1c0200430933c4640903bbedfe2b0398407f12dfa91d2ad2bdbe411677bc2c666c9cbeb30f763a7395f603a653ce5726387371310b5fe4ce6b25ed025611c24e84f9ffab4b1d2938d19f020374583fb020cb44c9078cb26d464d21dcf1205b87940dff5426838ad97025870a0359c2dfab1a8c80b000a833a0d9dd56f8e6c735856f50c0b8dc2f7c731d367f0f032d60e819f0443a9bdef23f5cedd75f6cb18c9f0a09c3abdb1c10e6a0450fcf3f03a621c8fc40a507f74bd96ec37741835ffe0dc3b74ca6189c0944c7a55e61368103c05a9c4314d3c6567e61f4620b4c4bab6eae8c0360fa0d3171a0073ee6f3b0b8030a65546675feca5b0989d7d55995128d1e2c65ee15b276609318b9dc6f8e97d500581f0290c73ef5fb528d84b19618d0f87a6122695c862c5e966be2adcc24a391814401168dbf038fe0591c0614cc3f971227df72443df3edfd541e005890a7ad5f1870e054a09b00581f02c2f0b2f257ef35f352829bb8b7c6d38e4b68d711e02c2354f393c94d5985410100581f03814cd2b3e03aee85f7e150f5096bee9055b87e69a113ea8b740a61881fb0446504e60f00581f0390a68710c9efb6ac3976270e7fc1c02806a2b6d7af5acd59e28f732288c0440121e99f021918000323af152ab724d7e2c911e6fd1b373633dc9bb36ecc533ff4b190790dfcf580d603b17ba741e00c817f86a72f4e28de4fa6d031db369c57f443fc0970d576cdb41a01410d03499d8522f2b76cdb2d3f0fe8289928a5ceea7dd568037df91ce939d2bc816bdd0353dbb642ef1510d4750f8480d3d3ad901e9053fb5b6bb7451e3d214e71244f6d03650b3040f9227b2676849cb9018c74f0c9141ca75bea55626a97a27d8b9ac30a03a4df8833a89be04349b0efd0208c7adffc838affa3aee9fef906778c9a1f3af0031f79d807fbef06fe49fc656cfb61d1875dea58b6f11822c3d3e52da660008d8a00581f0268a6b7f4e9f8f2d19310150dbcc059d9d6f5099b6bc17774b16f79622d32410100581f0206d58e50fd68c24a2b529be19901bf45446eea17fd32fe3c94f4bb170573410103a1ca0005220e5cccb038caa2d9b0a351b3bf582b72db7aca8dc37716c7b63b3a02197ffb03e08a0441010493a957a775e68241a987a5738e6fa2ddd4cf31594ac23a2ec8db03b0e5244f06de4c1ac863fe9a2ecb56be674f8373da6bd1ebb8c1bd1b2300ccc3037ee6d76104ea7b9e5aa0d19ed648a7f17a99a429901dc336875716c2352b80280219ffff038cbbf65fcf011b4be009a385911eb2bbb4fb10398b56e4c5aaed0bb9ac27c3fe03d3d7e0f645ac012b00a34e03916ac5083a89fcfee57ed6bd8068b279161675b20380a63d2cd0aac46826b863a7076f82cc9e05357af569c2c8b3265b5305cce640033f4b24f5a3e2dafc15c47dab683b53df72ec04a90a91bfc115d1878fd820648603a09d014bb035ae1723786fdf311849422e6a2a51d5e2817f3125971ff8c6f6300314ad4670e3b425d6891c3b6a9c863b46e30946d2bd0af567e6ae490d1f117bce03fb383ebc6a29bf914aeeb1d59cf9791111661b46b5daa93b7d444b4f99f4623e03811ccf08634a0523794511fa25c4e90f3f15129a164ace18eb9c05a4e1b7d4780353a716cc14de16f94af08e664896d4e1e69211ca50bc253d8dcd5286f91432d9039652fd0479eefe62bc608ef8b6f555264059eee5585646d3d31b72b32950f26a038ac3be63623c2ec0f88debef42da810c761aa33bf95c23e1429b2afe6a5723cb03ab56bd4118a8929ce166f4ba29e4f8f44e440167431c8967daa2daccabc055a90394e35fe0dd200f578730ec5aaf5ad0207886aa3c4556fb36a380e77e22f31e1a0219ffff035d1ead71550706320b1d3bf809ba1776ab31153694bff5765fb735dfb86f39a700581f0213565170bafd671742cfc38495617286c4b5fe30956415b36f93d089857c44656c100b03828538aeb18d47e3e608fcb32c2b4cebbab82680274f3f67794dc8e09149eaa003807c39d7e76be3f66928c9f695033670f1b2d76b09053f90b6175009359d719900581f022f9ddfb8ee9724ec05788663d0ceb56bf552655a9b379a06f920353fa1f8410100581f02605d39e45152a46e521bbe33d950bb32cd598dae7635f93b9aa012d3912942127203b1f5be78398c41a7bc0bac67c91cb7f44c096be93ee70d8a47010f6974dc81b203727ebf72d90340c8a89bc638c9b325d70cf965f9221f7e4a814343855fcd7df303029619134e9cce4692282eeca43c957831cae60da22ecb083f16f4c56e77153503d3b7ce354e4106cfd80ad4a63b86b7ba98fd6afb44ea2788717a879d001d134700581f02e6602f4b8018352d7f9d166e008377d675e9ea392c5dc8f9233632262e7f420c71030b689519292a096140f64cd2a98cedc06519103a12704c575d18cac750fd7fe900581f020fd3f315243651bdba2670c745d1b80bb25c7841be7fbbfed968b0ed5aba42151e033bae3b12b8ced89bf2ca0cbc1ae6611c8036801d4c9dcf5956e8e4209c1cd95303dc7e0aedf69eb452e50e7c3a45a6b1cb7b677048c573557f4d110e80fefba30d00581f0255dfc16a3b9fe3527ee03b26d2a1c953ca6e13f18c2a76c50dd6bdf94a54410100581f0359d3ddea25d68ce0e42680b18a66cb750fd4cc60b7cccd709a19676a3880410100581f03083c32d13b0e504f792e0904cd704b71fddd8aec9408124aa497d1474960410100581f03bf024d990db5875e5a999be64dad92f3f59dcb3628c218fdf5e58dbc8c904101021944100219ffff03796c68312cd1ccb443e4bb52dd14769a01d83d165179f46b2eef40fa641305e003c51b1e9f82f9f431b33caa599c848b09c7429d35cee85b1af513a7d1d192868303326e9e9c646f6d3fe36c640c0b9d5505d9b6f04ef46adaa2978179fb5367f161034198a1d3bd4d64a22cca30a2bce55a44ee6491a4a758411c6c6aec42f927d28203604e8a95ac6c7b8fcd26c177dff6e17ee37b182284bc590f7eec6a24140633090353c1c8c7ccb5a129db9d4a735625eb2504173823cdee1d5f81979ddb94c9a35f030d19f31f256de4c2296f113c5b04aa126e12e6cbd7a09a92c4567918a778576f03df724ba353e1dad2d9b242ec0f4e1612aed142187415970764c8a4f8cf9f34ef03e2172579079ecb4a3119a1e771a933ab60373802f3d0101774ec7a520b3494d603b4de4f6a9ddeb9ac4dc26b1d4a42823c794ef3f2f61f098e23926402065d271d03c4d27b9b90e0a778a3e22e50f15b034982949ad99ed82324adef5df3d1ac845f035da8095fd252c6062ce916b5b4b292a6eee7e016482e0d8f9456d241c59210260333b82472a5e8ba4537db4f74fb26413f425f20bc430cff0a1c7dbe69c8f791fe033adae7714d4af0bbfc1c4362233aafb088948c6057df273c27d7913977a12ccb0354f6180e933d7b267424c03a2f30ab3abe5208a53e9603e65b74a33dea76a60c0219ffff030f6fe679df4c3da79988cd3821d7ff84d3322c9398d64a5f9b2afe812de2bd3f03172368dd81a5f7e986872b09cac4296297102a0a5e96e9e3d8d7cac3b8764f5103730532a4e0431a7a4aa7a00128501e1d5a44a5e32c3c075ed31a95e044637bca03b9a01fd331b01c64977c703e5ba0158d88673e9c7ec4e4d861913480fb43a8cb0385e532c7e7421caa05487219c729f31051717dbd961a84478f41e5965648765a03c9b4b1c2e247cd4666d766da4dda25cb9b589d86a45e7c88dda2088b1ebe955403bdebd437348338f2ac7ed46c378097d370b8cbb9c4418a566b3028de2bf77e5b037046d666b8f4653ffe43361c73170fcc323198ffe10c60689ef2367f6c6df92603afd5c6fcf74e31d7b672da82fa9cead83e76ecb988929e89832d939cf4dd6e7f00581f02dbe105216ab7cbd1e13e5de0045ed7aa26e168b8289f5b5c1b569398350d44030fe233039fd83aff7f6a610081c82a73371d0c9c111f2c473bfeccfda07c720b336bc0d903007e9f87eb0c1c558e9299be761e90e3ce5906f658f400bd28969dab04c6f6f400581f0203e056e240fbd07211c60876b6c76af833805e6ba238a0a70cd77a1d5aec44010eaba900581f03a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b054d1328c9167e0693b689b5aa5a024379d4e43785800581f03d770a05cb6db4a9db50540590266fab8b1f063373375a38c5e9c681b2790410102190420033a5fed8a043cab1ae892df80c29c146dbfc87527409093c9bc16d012881ba50c03ce00194bb7096117ff1984e1a9687c46c3ce01147b5ebac9cbbe13a754f765aa03946ad41228e83b1415d9bd45ea1db61102d03188f360ce49c6ca46b917603ff800581f027fccb19533786f1b23ddbe586306496bc5299b1ddc9dbd4d2e90a756fcc75820ff468efd0f7eb23f6c135e12970f51b78e48da6d36931ea4a694510525d2ccf303361ed8284c89ea63ad98728a7a0d7c442b93780883e1f9c5c93a381e4f9fbb6f03579638e10d275f9baa26882298452244b10ae3c576d8e30926da916aae2b0e2503cd24470537b7f297f623b61dcce179aa411f8ddf02c255da9480c38cfdf7055a00581f028f48e8d8e1f3c41ce2cffc2cc2ada40c0cad8fd18712ed29470357bd7f4a44653c9dfb0219ffff03aebe542f66da7d1e56340b0e93babac7a3f5043adba37e89e4f1bd3f42df866c0300c528178169bc70f41a8dfcf236497ae99a735de805d67f10d961ed0086cecb03720adebcef2a51c7a3df4ec5ff380d68fb3058f2ed707e9ef2d05e2f536e057203c2afcda95aac35c72130ffab3b29e1cd30bfc74d34fbed1ca40e55a20422408d03945f1c87271549d7729964de970b4d144bb3766c1d59264ec232eff4d7f593d9036bba0df3b2287c156658134a06d2b2603343c30fc85b90261cb2bcea13555b41039cc0ee5b7d642b5dc500e0b8704d034dc83f179c7ec116c89aa589f01a339b93036cc42430e4e002beee62046bae9047361fd96ffdb003ff362de3554c1801915f033d891bed5bc388756add37da4d07dd62bbfe23171bf9c46e6517adf47df7f53c03725e65df466d84414a24f25c309882b7f32d95de0d16c125a0520eb866f142880219ffff037e70b97a22eded6b9b95bf9c1a51c41ca8b058d97ee75b986dea430a31915bba03647d05da89606ff80b136c2f9e352fbd818a9d1d4ed542c45eda07b6c30b6ab503901f98b1548a2ea4ee9bd0a3d72f9345f7f567ee03ece37e96b838be518a8d4103445469c411781604772fe45df4ea3af13c0993f1f8c01f3c87e46d68dc80921e03e430a47a2fd9c969bc9dca07734ec4a898f973c256b06e1b00ac2af3f35db1c703c4e7751473c5923806e3fef7f1f740dcf957e57e09a7f9545d29b7711d0b706e0301f98cd63a2dd3a0d5d0228a98280ee7945051e3169d610b46af507a0177fa1a03d2bebeda6accc33ad3b9ab9a0831a658fea00c1f34e8444cde07c686f5583a7a03b5dc06288b0b1178ea1cf974f8d82ad485b86744c589bb9086961e288c9f20a903c7cad933e6f87a88e831aecf79464cdc208f2d539c483e279afcfc21efd4950903aaf2eab2dcf262c2f262056755164a43122c60cc28f7cddb871e7518ac6e74fc03cd1037ad76a9fe0fb07f417325886e10e08a2f9f531ad3b9d465eb9795f86f3803299e40e0d23df3e79ff3aaba5b6b32efee03512d395e2a6a4766cab5bd79b89e035a137b634ffe6d558ad2050369d4e29eacba5c174a2c67ffdf1c259fe80bb75603a659dd60bd189826a2afa7b1f82507cc4e77d69c8a1a47d79569ed3f0509ed77033acd8a5b05d5b6003e33d6cce7830e216e3c15419c5fa4325b0c1655b71ba183031d81bdada7b8ebdbc5e27baa3ece9f774b46b8d5d6b2d5f646bf00cf98bda414034434b3ca381bc6e2b6201c74530572bac3421af3089c74345ed5102c355d373e03f0388d98500702291698b8f0ecff7999c141d73066928bff93bf8e0a47f96c44033a47c8819b8d4bd6a516fda03e9616dd7e4e4a18774fd9fc9bc5d511f228b66b03d8f307e764e6eb37d79bc28bad87084f27c1a71507698d6354a003bdb7cea28103ff5e79bf1395e6e92ad8e08e49758ad04ea2b70c2fbf709462a7f2608978fd3903bcda0c5cd3692465f936087e16eb2804df9689f24c92f555627d949d3b467820037a280e086f941848bd45e820faf8476f6e7e29a70e6b9b463e16ce2286ddcad0038bb75373347262db4b5dcc43e634774a759078344f999816a7407a54a4c7346a038d02b22492c23c7e74e3d883429e3bfac9219b869fa163417f95bd106145bc8700581f02d4c5c54253a53e521d0cb1a7119d123498225be9ed6479e9c31ac4907c7a5820ba19d2650cec9a56be69e84fa98681aa7d4752ee30375e7084f8b9b943ba32bb035008a74f4c7b1bb21e10f0a05907020aa62902266331d00c39286fa5a01065f800581f03cef57671537694405c68dc0b4f932ea9c5cb19fd2dee5e887099f5b04010421e8100581f0356e4d7f4a2bfe102e4c97b6da1c4bc13700970377cb9d2907a24d58f0df0410100581f030b2a94067bbf022461ff81918b57f00ea2f6819667ee844d8355787c5e60446599121b0219111000581f0202424a141e8658c3ababee31725265a1b1d43aafd95b1034b235a3b114a144011ee95603d0ffa2270c7351801be3fedae036d50fed56253e1d815e5b18f54b29c2f767a900581f02adcd29b7807c7b2f564d8280f0f1f4a7544d9a7f4e442c3d5a93c247ec7e4207a503c697828fdcab09b9fc91ca4a25c72a56b7709c2ac9343f0901fd5aaecf372ef600581f02620ca3ca3c794764018fbf62e4e910d53f46f5b10facb9db63a2df96e211410100581f027f801bfc174cdb8f967bc67915c701e294b46b65769803af0cdddf276018446540369b033d8bfac24b3cf4aad5a1a706dfadc4a853f83c9675210de86f421f165335ca2f033000cb072ce2a5b640207e08fa39ce0693d40cb7ff79ce091b3a3e9fefcae25e00581f02dc6aa726cd856a0c23216adfe256e3bdf4fa05ee33ddfc22b0bafeafaa7d5820a01714e6ca087de5fe1d4b2471933ceec4c4285fd01ad4bd6cc3a0c175eb9d2c00581f02f87dc90fc24b47cb3575b1c5c9df47be8c3b1769a13b735e01d07b15191541010219ffff033277dda4f40a021ff8820b5ff4684eb74747ab750d75ca6ec3eae783f86dd6070341b13de590e2f538622b4fa33d2ccf4bdae89183db8983592c22f49524db7932032725adbb6bb2894b122b3c15a07356d0445366b294b10d66887df502a899cc4c03d7833fbdf2a1077c6cb6318bcd5c10f4eaaf535f53c5b03c0561f8bb771528e20219ffff0219ffff039b84c01cdce4121894d00e505f48dedfe4ef4c08622234e8f560107793a07fb503e15e69ce89f498e5bb7bac11cde3ad44bb2cab8db1b8f425f29dfbdb3369cf93034b2fb9b8a61d32cdbf77a6c6f1c5470050b928490771d7de7353f017a7c79ecf03d1c8152398bec2ee5bc31b004b20f7c269ae9ea6a081d4d10bab61e4e6c120be0306e3365b446767f96d6a2ebb4a99b01d09b742af909dca1d46f30e85512d0701039dd82e01c785cc59ec58255d21b4dc4d423a4e4f726ebadb784c73d17250a95503c76e8ee7bff155b89c4514972bd56d02b9a9303b1f41bafe255c0115e52c830a0384b64f13a8a04e3cb8df2e0af96dd70f1344aaba3f1ff932627e98b3a49d8f8e036c1f7ec3122044354b9858686daf7449ef8b2e61ef522d2136fa2f1801697f0a03d9fa8be4b8c556dd200f4110e90842f84fbe4f0bbb1d99f34b31709f3928387c03dc41f74913e6890020e6fa08fd66d0a61d3d0188bfe5407e36a39f8aac81263c038da2f914a59838d042b56eb2c7f528e503bb869c3a932544f939f1ffc3bdb2c903d244abd489f4324e96bffd6eaadd1998e6713c64fa9aefb8ea19bc48f695d83f03c602108326c0842253a21457a54a99eb10597bcce2d444f709c71cefef7fb15703e971b86fccde008cac60a50377090631a54d2835f18268798f361a5ddb810067037f37dc49d509924501d1b7488f4f555c08ed4443975268e15056491b0002371003ec99e14b831f5369d56abbab6eb507e36f3644a804f498f324a339f18f5db912033d25493b035745fde0c70cc9cfa5977b220631e8f414cf9db45786909f30deeb03d33864e537b979df1174582a276809c0973acf45faa23c545a7f7ae01e53848003c4443e1af3528f9b55fbcb67505378e591d6f16378702237c682622bb315900b031d0693a2d9276125fd15da46ba859ae761ab106b038ef03e410669f99829d9bc0336e19b08a48e5164168a693599ccd2658b821516c206cf5bc6080452e69dd37c03e0f91f4931ec1d40d57e2846ab27ed6e630a0a57f000cf8f70b4c3ed4f443c5f00581f025c34659b8709d688706a730edee342bc9aa5e183b28830791a322550df8044654e808b03360c4b63004184f99c3f0248ded341d4779b77b6fd8683759d151e36dbcb95550371798ed83b8385763e8e90e93ff5723bef2a3a96c86fc77998ce6f7088393ea300581f02cc4e52c3949114998e1077d45d9ee87409f9eddee7ad4c1752c37d912e9544010ee459038113aab7bb6f8faa293349c35e1f9367db6dcc9ef22a58eb1c0ad3be23310a2900581f0219f62657d5edeead649f0366cc9a825ba0085d129faf675e8f98f2bd0507410100581f0397c2464919b7dc38d77731a8d7fa586b1b04251f2bd5644f9c0cd0819f6044653cc7ef00581f037e27c1ac16b1a804bc1e751020233308c464e002a2c04940fe68ecd7a8f0440250f10b0219801000581f02e3fa4525f8c374bb966e2d5429e4e8569c436f4cac4f436da16595e712a5440121d76003885d2c3a846abf0102483c092909fd688d3305d960cd017ac6771e54a082fa6103f3e238f1db48a58031c0fb9a782979f342fe958eb5f26b7237f17a12f95edbc7037c98451a6d8d8ce1f2b4cc4fb627628e19605f702d819d4397030f8e85c97c250387e2d199da7f57ce6bf68c6b542fc43ce67d1c08b92db54589d2e12008f1788003b08e458ff1f76628b365cf61f368d68d5c517b4036b134e8e2d02b52d0832bcf01410503325fee5e456cdf49742e5a08c7bd05be299b489aad608112c657a77ad0bdb5ca030002cf3d5bdbc5ada19a343b9c5f0a83b7d97d691de20f1cfb154d620c67997c0339e8f09456767f280b55408f2f4c9c72449e88a3fc964ffffb5ea462d05e61930219ffff03fb3de6d0d57d262c531c021b9257fef4f43079867aec53a84424f709c7e7903c03abca170001c82f77bfcc073e5ea195857020626aba2f1dac497f6a00bc5128c303a08c36de96f1d0a885133ec759c936de67eaa096712e86c58ce5a13c5e1552ec0219ffff0344e42d07c90db51a3cf7c0d4b962c42dd705c81c2751d5ab9844ca3f574eb190034c2c9dd95c23f4ec42efc0e02b21f87dbe8d12121f7c4b4220b9604e81de941403a5a37baa4cdd023689f5bcd018583f0c42d0edab6da90d2abf0791df3730b84603795e05ada48485aa1e0115ea08afe3c54094686574b60788f860867b1c063454031be9ab6d686aabc718ca67dbd0ec6553892e8d58c2c919b8bf065987975ab28b0330d74a1501f67f9df372ce26e7f6c83505d95b89fb411f0c556405565383c4ba0219ffff0219ffff05581e0315b2193879f3ea4c73497a76641599f25b392cba6a7a4942f439876a80070119084c05581e03a1261f0b33ba82439e05b3585ade911ea9b258db550da25856b6ec68b00c02470b12da67f3840003c38e9b30e736f5effff68e0e9314230dbc90c36737d1a2709b761ac31ec59fc205581e039f418f37da04081fbd9eb7152938002e29861e74fe11063ec9453e2280040305581e03e35bd7a107f03925b135103781824f3b312f72786ba1d5403b1f35d6100c03464356c7e630000373bed1eae7c97226dedc488b4bd231cfeaa5214556454331ce2789741477ec9505581e0303170e0bdf1297103c236f558e9f6c991ec2ecdce72196c067431d5b900c0146befe6f67200005581e03df5f0a2578df0fd9164215e0d1cd6371a284fbe948f34d26098978589004010219dc8f03b9144d7473e3e70ee3b9207065e5ba41624a84f57caa103c5650825a9e6ec0a103dd888b898516affd8f79ebe781031d476e8bf78c73e5adf647e2132f667b1c5d03935c6e165c698aed38d19c5c9e56198f6950ddf92cf065251ebbaf5ae26c5463033cbdde7f979e13b5f783889a97553859b94f9295a0cb84eaeead7740df6f061a032327bef6db7edd33b5c793e8e09402d5084e677d7942c1059f7e17f389ff717403b4a74249fecc17f41af1a9fc57fae17481180e017bc9e1f7dd58953c0c7a82d603db079722558f609b947b681fa1bd1b7e416f7b412cb3e808dba0b4633c837158037b6de07699dc155d3b503454a10d8b0e12a97e9693141fa23e2b12f12e980a4a0386ead4997ece00fdfcdcf8877d6c3044e2430beca7bc83a6a891614883c53d45038ac851f4c3b826e87b272a67a1d9bf771acf7140e2ef58ed3ffd1153acb6c2bf03866f7007790acc28c89aa958bf23714955de1ce569f613448446681f4299cfec03725b9b39521b45e0fd2f2e2ccbc68e0c112cb3a21a0bda8bc609bca8035130d7035bff79a5d1a40b84182d3bb092e5776e67a03edd5e8c2ded885e726c91299fcc03c71599ff39a4b6c90ebfa87dd4b114b4fed5cf8878881cc27494d415ac2da7d703f329629820f2bbc9ade6cbc6472051497a4face05c832a62832b9cef6f3902ba0219ffff03345f17b29e6efeaf7d0af7c9d3fcc035cfb25b5232283cce0a97f60b1cb2da20033ede3a5cb6af9d50d1af3b83e27e361979850c631d0eafafc5f30bf7db54c759037589bef4d1c1ec3b7cf950e633527612325ede2477dd7cabffea6f5a1c12d0a3039f6c9500d01639d3dd1e2c95d059a70f54ded70adf7f50c1cece738d2702a817038bd823ac967e4a7658131370d0d16df2021d1c29ffe46588e17823e07ad81b00038958130c5af0aafe7091fdae65ceacb7d45fbda1c8e618f8e14f61a4c655597d033ed7fd8427e4810b9ae10afd8f27737aa0337d8321c3766b2ec5267fa35e63bc0309158093870fff6705831ccaa10eb33f4447d1952d92cbe4352b24055b83248903ccd7f0cf312760dcd617951e53c1b8075e98427a0dfbcc9e2ecc541052a7a9fd038768041ef2b4c2b4a823ad0c372b645e9b1da8fcfde0cc709b518bcb2c624985037a643a56202d9b0c3318d0a6008f2b4a953becf92ac0f4c0e96161b2e2a7946c03c079d1df652a457320f3830fd3374b0b570f134f7ef3a0a4faaa5dad0f4cc9550315fb6465b7559d503e52637be892e7d786b4dfeb1c3b909d6dcbb2f0517a47210219ffff03afa9dad756c3215c78119bc71f85edd3b34b9193a1dc07610c664a5a5f76118e038dbee1f55720a29c5c7465bc9131a61a61e017ad94bf0f164efd8b917fbaf4620313848be6c4befa5d52e993c6c3dc7161927c4578f36ecf0d4c15465fbc99719603d3172c4a682220e315fa51442751e30c490be600434cd496b9835e9de50ad7be0219ffff0324b030b12c3c689972a6563e413a79a3e587ad657207eaa20bda7edcfe908692030c1f30f385e6e7fadd3c080452bb1830f3fccb6d51943c7e3c39cbdaa3d900ad039b0a33545680a03e132c49b5199567c54ee3fe3d23664579b0a668e41f9f37010343ef3b6247e59d3cc0a625a299840c8edc808646d966cda9ade69d7440a62b6b03ec455728563e23bfeb846c9ff8e433611b6127256d48b889951548f6acf6535103f3b931b7b64f4e7affba1a379d348c24fe3ed6f37d5ab9c5a963905910eadb4803efc205323646135596ae279f2b6101edc4a37fc475c5cf808344b3010b9f966b03212476b1a349f30c6b0c1f78781038fc011045255b7c34c4c9e69607746236100374b04dcd926049c134c938a58a8932808e682045458b1cb76714bb30cc49f380031c2adf50d19f0b93d0a9b42492300a8d19549e684655b8041ecb6edce0b1cea603efd16dd381802096ae4c98696045f0d53781f460c3eee0d29e07564f7f9d21e7039ec0e554ed66edf0883eda5c07fa65ae83c7ec9f96df9ae6c64009aab6425f25036e7cd1a6cec3de009f1e8a0ed77e8a1b743b6d5fae296a72749fd2616279c71803a65a8725a0f2be29bc044c35ec7876a0feb6de86a534c9fb2e53fdb4f593f77e03030c8bfcbd0d285a7f4ca51dbbed8650d2bd80a3ceee02b6f6c65f7f0d6c62e503aa38864fc6abcc4a9ff1147b97292ec28a5ec34545bb003f3cb5f1a5bbd07ba4031b6c76964c8bc4095741a9fb3bf9238abf0cc494e08989d364ba463c72d2b65a033dda98f30396ddaa7406db382789edc79d8082e03195b6f1e04e3d48b0a22d2b03136a77bee9853e36f92bd8c280b27b90a46a824b234810c3ad017c982030117003257ec0d3cea7b572ccaf045e04391cb8af8fb52db284eee1f83df12bf166fe230303058877fed102032759dae87f8929379f95c89e95dea76cbfa21a5beeff179b034ab25541053812ee24d7b9f4aaac5f25efffc14fba6c864b9c58ef21e13ed10c0320a67da6f1bb128ff934ad66ce880382e98f6f4158dd2b25c3c113893eccc07f03bd247431e7bf0f5d12522fc680b47368b38b5b28ad88e8f0c6b973e8b957fbb403e09a80a13f3f04990f221622695b42eb669c4abe8a3eb06c153bfab4d90eb45b03c0bc2832c6e672b6f8e285331c9510e90ae603cb30f9a63c4da868a6626a4a8c039d2f69a941c253c6028b9b004ec82d8bdf0ac186f66fb27b1579c0a3b378c4e403010fedc56d71ce74b7c41b51ae10d8a9c4b7ff839125312d5201b0290348f5620388c316a456037856f2fd22cb7133dda4e139845c681cec3c05070aafc3e15f500317e689530c139b22ca0050e2d59215b03b9f9768c5b50064a1db70c27f567f1c0375b22353a1b2f624e2b842887845c29dc27e9dc1aed6857bcda3dae9661c0f2c036dfd84a485222cd03400783dea71fe73342bc016667d330f7ab387d93d4288ef0381bf1393e007270a73189abba9f5681cfe53fbaf555ac7fe4e79ff3e1607ebff0315bc1de91cc265e9476e2a8f546eb6ba6d063b86d2044d18c44228b330a62ad905581e03f3629f11c32f2b17e8ff129d98d877fbbe8855e4239a41f0544b785dc0040105581e0343697244f5883a72d9772ae5566c0058f29b6c30093ebb7eee8903ebc00c014701983a297cab8005581e03e2465e3860842f6dc475559128cb79d778c1bbe9b21a491964f4ee90400c19039948060c465e7032651205581e03a8389cc7f2a97dc2cfbfd6a8d166be29604b164cbecda89fa7e58e73000c02447735940005581e03b06bea22f0d23965f8014359df3a3f0b1124eb8abbac516af8b15d92800c014701eb719298580005581e03485fe452f803a3c3dde0b86fc00ba94f05fe8351ee3df831f7042743400c034702d79a6eb1425e05581e030da0f60c890fc37cf84307432ca7881d70da2030fe8564a39d42d92f500c182047028c67abad7d7303b6a905413e7f1e4afafe6f18cb38af4dc9a5e3bdfd06022fad7d5722e3c5ac7f05581e0326b4c3ed3e4caeabc275ed047eded0385c636e7212de43aaca071a2470040205581e039c475d76980d145edb01703615d5512ebe120c41d10ce5a9eec2ab58300c1346ded9fd94214802197fcd03a88ef4abafbd43eb226379ba29d9a4b1ce361ad6a7f5c91cbee6e2304f26aad80317b83841be470bd02694fc0d62ec70a7c51aee32f446eec719c14f32eeba75e7038dfe527a3f7078f86ba42fdcbd7883c8a715b786440eabdbf1971ca6ce52ce810219ffff038cc4975d077d7a33c051fd538951520b0e1c13f4e971416a8b6855790cb8d8040377f0a6ee35f8a1dd68c3ce9ca6efa2625bea324ac720a4688cedbc4ca401b8a903330c3c175d6dae882348adcac56795e4629688a4a362aa5593f14c242a9467fa03d859e19f97542bb8bfd13fca3331ff787bf9fdf05763c6bd5eaea3dc2ff00a950371ef641b3f23762275949b67197f7fca0cbc0ec0fd56b5ceed47c60bdd0690a503facecd5785c4104916d4ebc77fdc7f034a488e4db42c1e4eb030d7f5a415db0803cc9a0992b4c36310ea64aae7c48d13b9e0574d064d522fbd225a645a908b70f2034ed40057e92e375e5b1fc0780e77e0d4cdb3d5bb6059d431d99a02b5369e9f8a0219ffff032ec53d0e0e6a7351c0562f8f40980de6f1e0c7021a52b625235a5f7a0117b4b003ddaaaae1fe939afaa910090a6b6d839b4364e3053cbcdaa27b81e7ae68c8fd870385f3022a3de8104e66f969bc2ac2d2d073eddc1346c61bff6d8b422ab714a8f2033169aa51f62d14f458cca58156159b25273745f585d1ce47dd722bfbfed1d83c03a1b95d580013fa22f697a0391c0f32735d7186466c11d82767b51b70819337da03ef33cd7bfaeaf4abb07c59a4b3d3f70d2de6c98cfc8b5c7906255e14cb29bef503cd43a165290a83fc7bc5d1ae358fd6f6dae1aeb96ba18a3ae420b205411d115b03d6b8367d87af3f52c7d9c7e92c03613dd6b4b4dc5d5966bde5f4e14b466758fa03b8eadd9d6af712bfc7f8a5248fc9a92543c63e104338c06dfd85370854d6200c03ed7beb87f558c4d0d3af93ac8e106aafe297bae5ab9fc26b671d78756c1b533b0219ffff038967841656911cca2f95c75444b0c22d37429f25cc975c6f928ed5c80ed7247b0219ffff0314ed060b247a203545f7435e4b86c58fbd739a787c4147aa61678d0018287f060373dca44591ee40bfa416a9b4214eb756a74d65b498fc13e5a332a75d1e5fd41603b6ebbd4f6f85805dbd8e8172f611104d68b2677eee061dc16d38e6bbfd31a3ab035980a994358e2cdb8317cb6a67b8b15ac324de0626a5340c236815b6e1c787e903eb1aed182f3f2750978e6748a7db47f57efdf3cc689c8570522042129a2382570318eb54e18e5fdc272c4810ab6c79f443fd2081fbcaa2d007ef7d86caa946a1ca036b9b62d49b4c97e284388af069b9a006b2861179b9762a76e67de136a3ad89fc03f1794a5abae4d377049e566f01ebc2571eea8b3d0fc5b8b9bacd0cb6e948551a037a0e60e494448e6439707154f1d3de8febf17aa500c81c151cdf655eec44afd203754bbdfad02dc09f39a2eefabded192d972645ab01b2c86dfa2e36fb0f7fe9860312ef4e2e071de07bf937db571d4ce7899c959c72c31e9ec83c2bee64146c605a033b93eaab06e671b9e3189ea3a4bb0f89ae029f6daff1d7964b8839e3c11b5631039c99bcce717e810188f85bdb18259babb6e30db99c9ccf96f821d2922652f158038b66010e3198efc8b25e2de474d5db4c96c9bb0b8187ac0a6df3acf6def9448b037c4c83bd4881cfa71f93cc29bbef2cf7c76813144d38f6cf9749d381c586429f03130549c1981fc7194a59e17afd83476dc7858e8b9ee34a6caa204a93582e93e50339dfab79571aa6e2eb12f46f11da78c808eecd6d1318af8bf63e946f76ce5b99036fd46aa6ec9ff51cd6cbcfacb3a4d35347401c49258f1e275a59fe46cced0596038f4d9a30f731474d1ceb35406291f3a7e2593a8607db9364e58ad001aa51c6e003eb597dd061469ca59262b8f8247f9ffe32f80dd97c61a34a93c906f75ada5746038ac155e189e74e0abfd7813cbcec32ed62373f49b016d8dc32a278277278f9a10367897ba5c0c1705599ec115a9b9a255090bd7dabe8886405ee75e4351b8b58e1030b8f19d5cbc3205d3ec9f18606bec59482de06fee2ed6b1b5d57e73ade401c5603f5aecc495440ad2111f61217f26f126ec1a7f98bb0a6b7ad1db04f20e2c14ab6034c8926eb534ca9dbcfc6e3ec19c1eb9df3c2be3cbb8da3df69065d9f502c14f0032e73bf6632e0f7816475d4adedab26eae443b3ecd6c5dd635d1b8d827b054b8a038616bcc7a3556d4a06fcce676118496876199891e2eaa60928b5a75167bc42c403161301f2eed367fc1d6a3e419e0c355b68b2eb9d4f5a44d235406cda764dc0e4038da936101abef36cc385904d0a90c9aa3c9ce0a6beb789855b6e887dcd5d8b7d03e48a3f0fa8b6f818b7ce24733c59d08e759667899941b39518864327d9bc63b803cc4b9e3b903d9ddf32498f501bb12aa97dbc0f9e1da827ed9a1b86805a24f9ae03f1b76c3aa69713a8a7ad242c1985668e54bfb5ff7f9e1c26001ae6f63300ae8c03c4241f6dd20e890b06d89cdbe6c81f317cebb6a62901c6a6fa2963c1403b21f5036b4570866a1239513f6c3b3b2dd3e2642ebc7f33e6fd38fc0eb977f0a817eba0032dd2941c46091c2174e1e7d86455dfba426326429b706d19ce8d823b67ff882603d2c3b2cb233834089964a78f99e77fa09ebbf173032b270c735736e98308990803a5766ba0a346f58baf08ca03efe48a2e5b4e71d528eb6122633205172b185ff503c13bf2a7fd06a558bf07b1d5af52949ec928978400dfe911b829822ba166488703aaa3225c3113b1558add8851624e4f25a1acb0def0202d28bec6d5a3e813273603c9b2bcfa0edb1510d75b3c3617bc05c5d8be52930e71c6e89b2275257e9e4f530397a77ed91533b912e9695cfc4012e26d8f9f135b07215c1e37f888e4ff98efcf0344ed1c63b7f53a9379d92aab1e434003064357214bd20820af46e9654a842a8a038dccbd1aa762bd2705f3d9a7f8c57879203a9b5c2d3731b99838ce29f1591ae503721895e052048bce8013a08f687223e4003f4955a2335059827ba4b475c8dba7035b3c1fa9d22e53553997e2d34c3eaf268eb1c74ed63df7292928b61ac546392b0368154bf93585fbac8e87d9f39d9c17713cd666ce3e370265b931c8490f9cc0df03ff5b4708b0069321ed685c0f22e9622af153c45a98be72fdbffd04b19d0c8b89039c00d0e4f868842dee1a586f654889ee2863747e75e0070c726b0c070f3ac04905581e03150e39ed48d9c437095784b31bac5d07512c0d19b88b3b9ae0a95450500c0146f9a3034d120005581e0393d2e2de8aa462c07b9881180b173ffa5051e2428569298a587402df40040205581d027b340393a0f829b98b0711a1ebc951654ca01651e94527e6bbb4e4a90c01471af1fe3b3f0b8704592aa96080604052600436106101b55760003560e01c806301ffc9a7146101ba578063022d63fb146101ef57806306fdde031461020e578063095ea7b3146102305780630aa6220b1461025057806318160ddd1461026757806323b872dd1461028a578063248a9ca3146102aa5780632f2ff15d146102ca578063313ce567146102ea5780633644e5151461031157806336568abe1461032657806342966c68146103465780634f1ef2861461036657806352d1902d14610379578063634e93da1461038e578063649a5ec7146103ae57806370a08231146103ce57806379cc6790146103ee5780637ecebe001461040e57806384b0196e1461042e57806384ef8ffc146104565780638da5cb5b1461047857806391d148541461048d57806395d89b41146104ad578063a1eda53c146104c2578063a217fddf146104e5578063a9059cbb146104fa578063ad3cb1cc1461051a578063b3e363761461054b578063cc8463c81461056b578063cefc142914610580578063cf6eefb714610595578063d505accf146105d0578063d547741f146105f0578063d602b9fd14610610578063dd62ed3e14610625578063f72c0d8b14610645575b600080fd5b3480156101c657600080fd5b506101da6101d536600461225f565b610667565b60405190151581526020015b60405180910390f35b3480156101fb57600080fd5b50620697805b6040516101e69190612289565b34801561021a57600080fd5b50610223610692565b6040516101e691906122ec565b34801561023c57600080fd5b506101da61024b36600461231b565b610733565b34801561025c57600080fd5b5061026561074b565b005b34801561027357600080fd5b5061027c610761565b6040519081526020016101e6565b34801561029657600080fd5b506101da6102a5366004612345565b610776565b3480156102b657600080fd5b5061027c6102c5366004612381565b61079c565b3480156102d657600080fd5b506102656102e536600461239a565b6107bc565b3480156102f657600080fd5b506102ff6107e8565b60405160ff90911681526020016101e6565b34801561031d57600080fd5b5061027c6107fb565b34801561033257600080fd5b5061026561034136600461239a565b61080a565b34801561035257600080fd5b50610265610361366004612381565b6108ca565b610265610374366004612479565b6108d4565b34801561038557600080fd5b5061027c6108ef565b34801561039a57600080fd5b506102656103a93660046124da565b61090c565b3480156103ba57600080fd5b506102656103c936600461250b565b610920565b3480156103da57600080fd5b5061027c6103e93660046124da565b610934565b3480156103fa57600080fd5b5061026561040936600461231b565b61095f565b34801561041a57600080fd5b5061027c6104293660046124da565b610974565b34801561043a57600080fd5b5061044361097f565b6040516101e69796959493929190612526565b34801561046257600080fd5b5061046b610a28565b6040516101e691906125bc565b34801561048457600080fd5b5061046b610a46565b34801561049957600080fd5b506101da6104a836600461239a565b610a50565b3480156104b957600080fd5b50610223610a86565b3480156104ce57600080fd5b506104d7610aa3565b6040516101e69291906125d0565b3480156104f157600080fd5b5061027c600081565b34801561050657600080fd5b506101da61051536600461231b565b610b0e565b34801561052657600080fd5b50610223604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561055757600080fd5b506102656105663660046126bf565b610b1c565b34801561057757600080fd5b50610201610c19565b34801561058c57600080fd5b50610265610c8a565b3480156105a157600080fd5b506105aa610cca565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016101e6565b3480156105dc57600080fd5b506102656105eb366004612785565b610cfa565b3480156105fc57600080fd5b5061026561060b36600461239a565b610e16565b34801561061c57600080fd5b50610265610e3e565b34801561063157600080fd5b5061027c6106403660046127ef565b610e51565b34801561065157600080fd5b5061027c600080516020612a3483398151915281565b60006001600160e01b031982166318a4c3c360e11b148061068c575061068c82610e8d565b92915050565b6060600061069e610ec2565b90508060030180546106af90612819565b80601f01602080910402602001604051908101604052809291908181526020018280546106db90612819565b80156107285780601f106106fd57610100808354040283529160200191610728565b820191906000526020600020905b81548152906001019060200180831161070b57829003601f168201915b505050505091505090565b600033610741818585610ee6565b5060019392505050565b600061075681610ef3565b61075e610efd565b50565b60008061076c610ec2565b6002015492915050565b600033610784858285610f0a565b61078f858585610f5d565b60019150505b9392505050565b6000806107a7610fbc565b60009384526020525050604090206001015490565b816107da57604051631fe1e13d60e11b815260040160405180910390fd5b6107e48282610fe0565b5050565b60006107f2610ffc565b5460ff16919050565b6000610805611020565b905090565b600061081461102a565b90508215801561083c5750610827610a28565b6001600160a01b0316826001600160a01b0316145b156108bb5760008061084c610cca565b90925090506001600160a01b03821615158061086e575061086c8161104e565b155b8061087f575061087d8161105b565b155b156108a857806040516319ca5ebb60e01b815260040161089f9190612289565b60405180910390fd5b5050805465ffffffffffff60a01b191681555b6108c5838361106a565b505050565b61075e338261109d565b6108dc6110d3565b6108e582611178565b6107e48282611190565b60006108f9611244565b50600080516020612a5483398151915290565b600061091781610ef3565b6107e48261128d565b600061092b81610ef3565b6107e4826112fb565b60008061093f610ec2565b6001600160a01b0390931660009081526020939093525050604090205490565b61096a823383610f0a565b6107e4828261109d565b600061068c82611362565b600060608060008060006060600061099561136d565b80549091501580156109a957506001810154155b6109ed5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b604482015260640161089f565b6109f5611391565b6109fd6113ae565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b600080610a3361102a565b600101546001600160a01b031692915050565b6000610805610a28565b600080610a5b610fbc565b6000948552602090815260408086206001600160a01b03959095168652939052505090205460ff1690565b60606000610a92610ec2565b90508060040180546106af90612819565b6000806000610ab061102a565b6001810154600160d01b900465ffffffffffff1692509050610ad18261104e565b8015610ae35750610ae18261105b565b155b610aef57600080610b05565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b600033610741818585610f5d565b6000610b266113ba565b805490915060ff600160401b82041615906001600160401b0316600081158015610b4d5750825b90506000826001600160401b03166001148015610b695750303b155b905081158015610b77575080155b15610b955760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b03191660011785558315610bbe57845460ff60401b1916600160401b1785555b610bc98888886113de565b8315610c0f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b600080610c2461102a565b6001810154909150600160d01b900465ffffffffffff16610c448161104e565b8015610c545750610c548161105b565b610c6e578154600160d01b900465ffffffffffff16610c83565b6001820154600160a01b900465ffffffffffff165b9250505090565b6000610c94610cca565b509050336001600160a01b03821614610cc25733604051636116401160e11b815260040161089f91906125bc565b61075e611430565b6000806000610cd761102a565b546001600160a01b03811694600160a01b90910465ffffffffffff169350915050565b83421115610d1e5760405163313c898160e11b81526004810185905260240161089f565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610d4d8c6114b8565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610da8826114eb565b90506000610db882878787611518565b9050896001600160a01b0316816001600160a01b031614610dff576040516325c0072360e11b81526001600160a01b0380831660048301528b16602482015260440161089f565b610e0a8a8a8a610ee6565b50505050505050505050565b81610e3457604051631fe1e13d60e11b815260040160405180910390fd5b6107e48282611546565b6000610e4981610ef3565b61075e611562565b600080610e5c610ec2565b6001600160a01b03948516600090815260019190910160209081526040808320959096168252939093525050205490565b60006001600160e01b03198216637965db0b60e01b148061068c57506301ffc9a760e01b6001600160e01b031983161461068c565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0090565b6108c5838383600161156d565b61075e8133611652565b610f0860008061168b565b565b6000610f168484610e51565b90506000198114610f575781811015610f4857828183604051637dc7a0d960e11b815260040161089f93929190612853565b610f578484848403600061156d565b50505050565b6001600160a01b038316610f87576000604051634b637e8f60e11b815260040161089f91906125bc565b6001600160a01b038216610fb157600060405163ec442f0560e01b815260040161089f91906125bc565b6108c583838361175e565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b610fe98261079c565b610ff281610ef3565b610f578383611886565b7f2a568c158d9a566796b434ce4d84ce7a0cd037b2863172b20b519b53f5d5920090565b60006108056118f9565b7feef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840090565b65ffffffffffff16151590565b4265ffffffffffff9091161090565b6001600160a01b03811633146110935760405163334bd91960e11b815260040160405180910390fd5b6108c5828261196d565b6001600160a01b0382166110c7576000604051634b637e8f60e11b815260040161089f91906125bc565b6107e48260008361175e565b306001600160a01b037f000000000000000000000000fc44f80c94cc129f618cb9c756000972e775cbd116148061115a57507f000000000000000000000000fc44f80c94cc129f618cb9c756000972e775cbd16001600160a01b031661114e600080516020612a54833981519152546001600160a01b031690565b6001600160a01b031614155b15610f085760405163703e46dd60e11b815260040160405180910390fd5b600080516020612a348339815191526107e481610ef3565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156111ea575060408051601f3d908101601f191682019092526111e791810190612874565b60015b6112095781604051634c9c8ce360e01b815260040161089f91906125bc565b600080516020612a54833981519152811461123a57604051632a87526960e21b81526004810182905260240161089f565b6108c583836119c2565b306001600160a01b037f000000000000000000000000fc44f80c94cc129f618cb9c756000972e775cbd11614610f085760405163703e46dd60e11b815260040160405180910390fd5b6000611297610c19565b6112a042611a18565b6112aa91906128a3565b90506112b68282611a4f565b816001600160a01b03167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516112ef9190612289565b60405180910390a25050565b600061130682611ad1565b61130f42611a18565b61131991906128a3565b9050611325828261168b565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516113569291906125d0565b60405180910390a15050565b60008061093f611b19565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b6060600061139d61136d565b90508060020180546106af90612819565b6060600061069e61136d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b6113e6611b3d565b6113f883600001518460200151611b62565b611400611b74565b825161140b90611b7c565b61141d81602001518260000151611ba7565b611425611b74565b6108c5838383611bb9565b600061143a61102a565b9050600080611447610cca565b915091506114548161104e565b158061146657506114648161105b565b155b1561148657806040516319ca5ebb60e01b815260040161089f9190612289565b6114986000611493610a28565b61196d565b506114a4600083611886565b505081546001600160d01b03191690915550565b6000806114c3611b19565b6001600160a01b03909316600090815260209390935250506040902080546001810190915590565b600061068c6114f8611020565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060008061152a88888888611c73565b92509250925061153a8282611d38565b50909695505050505050565b61154f8261079c565b61155881610ef3565b610f57838361196d565b610f08600080611a4f565b6000611577610ec2565b90506001600160a01b0385166115a357600060405163e602df0560e01b815260040161089f91906125bc565b6001600160a01b0384166115cd576000604051634a1406b160e11b815260040161089f91906125bc565b6001600160a01b0380861660009081526001830160209081526040808320938816835292905220839055811561164b57836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161164291815260200190565b60405180910390a35b5050505050565b61165c8282610a50565b6107e45760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161089f565b600061169561102a565b6001810154909150600160d01b900465ffffffffffff166116b58161104e565b15611720576116c38161105b565b156116f657600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255611720565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec590600090a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b6000611768610ec2565b90506001600160a01b038416611797578181600201600082825461178c91906128c2565b909155506117f69050565b6001600160a01b038416600090815260208290526040902054828110156117d75784818460405163391434e360e21b815260040161089f93929190612853565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b038316611814576002810180548390039055611833565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161187891815260200190565b60405180910390a350505050565b60008061189161102a565b9050836118e75760006118a2610a28565b6001600160a01b0316146118c957604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6118f18484611df1565b949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611924611e99565b61192c611f00565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008061197861102a565b9050831580156119a0575061198b610a28565b6001600160a01b0316836001600160a01b0316145b156119b8576001810180546001600160a01b03191690555b6118f18484611f41565b6119cb82611fb9565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611a10576108c58282612015565b6107e461208b565b600065ffffffffffff821115611a4b576040516306dfcc6560e41b8152603060048201526024810183905260440161089f565b5090565b6000611a5961102a565b90506000611a65610cca565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b038816171784559150611a9d90508161104e565b15610f57576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510990600090a150505050565b600080611adc610c19565b90508065ffffffffffff168365ffffffffffff1611611b0457611aff83826128d5565b610795565b61079565ffffffffffff8416620697806120aa565b7f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0090565b611b456120c0565b610f0857604051631afcd79f60e31b815260040160405180910390fd5b611b6a611b3d565b6107e482826120da565b610f08611b3d565b611b84611b3d565b61075e81604051806040016040528060018152602001603160f81b81525061210b565b611baf611b3d565b6107e4828261214c565b611bc1611b3d565b6000611bcb610ffc565b604085810151825460ff191660ff9091161782558301519091506001600160a01b031615611c1157611c0f600080516020612a348339815191528360400151611886565b505b825115611c5a5760208301516001600160a01b0316611c4357604051635ef1969160e01b815260040160405180910390fd5b611c55836020015184600001516121b2565b610f57565b604051631057502760e31b815260040160405180910390fd5b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115611ca45750600091506003905082611d2e565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611cf8573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611d2457506000925060019150829050611d2e565b9250600091508190505b9450945094915050565b6000826003811115611d4c57611d4c6128f4565b03611d55575050565b6001826003811115611d6957611d696128f4565b03611d875760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115611d9b57611d9b6128f4565b03611dbc5760405163fce698f760e01b81526004810182905260240161089f565b6003826003811115611dd057611dd06128f4565b036107e4576040516335e2f38360e21b81526004810182905260240161089f565b600080611dfc610fbc565b9050611e088484610a50565b611e88576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055611e3e3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061068c565b600091505061068c565b5092915050565b600080611ea461136d565b90506000611eb0611391565b805190915015611ec857805160209091012092915050565b81548015611ed7579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080611f0b61136d565b90506000611f176113ae565b805190915015611f2f57805160209091012092915050565b60018201548015611ed7579392505050565b600080611f4c610fbc565b9050611f588484610a50565b15611e88576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4600191505061068c565b806001600160a01b03163b600003611fe65780604051634c9c8ce360e01b815260040161089f91906125bc565b600080516020612a5483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051612032919061290a565b600060405180830381855af49150503d806000811461206d576040519150601f19603f3d011682016040523d82523d6000602084013e612072565b606091505b50915091506120828583836121e8565b95945050505050565b3415610f085760405163b398979f60e01b815260040160405180910390fd5b60008183106120b95781610795565b5090919050565b60006120ca6113ba565b54600160401b900460ff16919050565b6120e2611b3d565b60006120ec610ec2565b9050600381016120fc8482612974565b5060048101610f578382612974565b612113611b3d565b600061211d61136d565b90506002810161212d8482612974565b506003810161213c8382612974565b5060008082556001909101555050565b612154611b3d565b600061215e61102a565b90506001600160a01b03821661218a576000604051636116401160e11b815260040161089f91906125bc565b80546001600160d01b0316600160d01b65ffffffffffff851602178155610f57600083611886565b6001600160a01b0382166121dc57600060405163ec442f0560e01b815260040161089f91906125bc565b6107e46000838361175e565b6060826121f857611aff82612236565b815115801561220f57506001600160a01b0384163b155b1561222f5783604051639996b31560e01b815260040161089f91906125bc565b5080610795565b8051156122465780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60006020828403121561227157600080fd5b81356001600160e01b03198116811461079557600080fd5b65ffffffffffff91909116815260200190565b60005b838110156122b757818101518382015260200161229f565b50506000910152565b600081518084526122d881602086016020860161229c565b601f01601f19169290920160200192915050565b60208152600061079560208301846122c0565b80356001600160a01b038116811461231657600080fd5b919050565b6000806040838503121561232e57600080fd5b612337836122ff565b946020939093013593505050565b60008060006060848603121561235a57600080fd5b612363846122ff565b9250612371602085016122ff565b9150604084013590509250925092565b60006020828403121561239357600080fd5b5035919050565b600080604083850312156123ad57600080fd5b823591506123bd602084016122ff565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b03811182821017156123fe576123fe6123c6565b60405290565b60006001600160401b038084111561241e5761241e6123c6565b604051601f8501601f19908116603f01168101908282118183101715612446576124466123c6565b8160405280935085815286868601111561245f57600080fd5b858560208301376000602087830101525050509392505050565b6000806040838503121561248c57600080fd5b612495836122ff565b915060208301356001600160401b038111156124b057600080fd5b8301601f810185136124c157600080fd5b6124d085823560208401612404565b9150509250929050565b6000602082840312156124ec57600080fd5b610795826122ff565b803565ffffffffffff8116811461231657600080fd5b60006020828403121561251d57600080fd5b610795826124f5565b60ff60f81b881681526000602060e08184015261254660e084018a6122c0565b8381036040850152612558818a6122c0565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156125aa5783518352928401929184019160010161258e565b50909c9b505050505050505050505050565b6001600160a01b0391909116815260200190565b65ffffffffffff92831681529116602082015260400190565b600082601f8301126125fa57600080fd5b61079583833560208501612404565b803560ff8116811461231657600080fd5b60006040828403121561262c57600080fd5b604080519081016001600160401b038111828210171561264e5761264e6123c6565b60405282358152905080612664602084016122ff565b60208201525092915050565b60006060828403121561268257600080fd5b61268a6123dc565b9050612695826122ff565b81526126a3602083016124f5565b60208201526126b4604083016122ff565b604082015292915050565b600080600060c084860312156126d457600080fd5b83356001600160401b03808211156126eb57600080fd5b90850190606082880312156126ff57600080fd5b6127076123dc565b82358281111561271657600080fd5b612722898286016125e9565b82525060208301358281111561273757600080fd5b612743898286016125e9565b60208301525061275560408401612609565b604082015280955050505061276d856020860161261a565b915061277c8560608601612670565b90509250925092565b600080600080600080600060e0888a0312156127a057600080fd5b6127a9886122ff565b96506127b7602089016122ff565b955060408801359450606088013593506127d360808901612609565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561280257600080fd5b61280b836122ff565b91506123bd602084016122ff565b600181811c9082168061282d57607f821691505b60208210810361284d57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b039390931683526020830191909152604082015260600190565b60006020828403121561288657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b65ffffffffffff818116838216019080821115611e9257611e9261288d565b8082018082111561068c5761068c61288d565b65ffffffffffff828116828216039080821115611e9257611e9261288d565b634e487b7160e01b600052602160045260246000fd5b6000825161291c81846020870161229c565b9190910192915050565b601f8211156108c557600081815260208120601f850160051c8101602086101561294d5750805b601f850160051c820191505b8181101561296c57828155600101612959565b505050505050565b81516001600160401b0381111561298d5761298d6123c6565b6129a18161299b8454612819565b84612926565b602080601f8311600181146129d657600084156129be5750858301515b600019600386901b1c1916600185901b17855561296c565b600085815260208120601f198616915b82811015612a05578886015182559484019460019091019084016129e6565b5085821015612a235787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212200e265477a67d343ae173540cf2367c137b4272becc164d4b32aacd16ba97b4f664736f6c6343000815003300582102e28a5566b8a884201ab44e2d991177ce8b88325e02e52cbc3da6e67b3ecf29c648ffffffffffffffff05581d02ed3b1f629de72d5d0bd66acf852d3ac54f1c5b679d63d3450ce7d0bc0701192aa90219204005581e039c71b341db401f0d9f62d996d4444d215c62032090f9e2bf41a87574800c0142189c031233fa02041e779ce08da140b6893ed75331a869ab1990a796c4708135241bf305581e03c7d17f50c6cced2c372f87e60652e0c8844ae54b977b055ae327d13a90084805fcef59e4f7f1150361f0e2b31dcba6badb340538bbb6071d2d0da90dce7e97f2151f20abc7d595ad05581e03ca104de9f7fcc002e85985670be401c3be64ec37deb346964e5e02b9c00c0346627c2190b37005581e030db92a4b41695e2e704788d5fe3a9235ed01d96898e897fd03ef8a5ed004020369a99b7747fe501afa59c170a81eb8ee3d11b2b1ea2f1d80b231b51b26fc60bf05581e03ba93c2ae5d36fe146ff87867c775e23d4467d7803797761c27161729e0040205581e030ab6de8c8a9f6f2809a31a83ba4f53d0604b3561b0c9b88d282760ab000c0247627c4118897b9005581e03572ac839d84c2cb670f3c77cfb9cd234e2e4520ee84f68fbbbf9fdb6300c014719607f7bee12000219d7f7036c9e47fd5db6ceb9864b803f5f60941e28c652259356c9d38b04d58476c99a1a0391cacdaef4f23150e8081bc7b3a8f665425b102f450501ff46430dc0daec926103a7497b21d4d1ab6b554097420ffce33c67b0d649742a26ac599db5d2f0c416500390d4b7605629f9d26355735b663443cc26582e588c7a48a4312a3549c839d0ea03739bcaaa39eee6c437a055a84093b704599ff1862596af2f57b2dafbd33291d703f23fd4d4a85efa28e87be80f15461a6188588ca4843f3f242823fb52b46ffc210219ffff03ad56090db46ee18bad38f6ffdd883d3042b5e1a43898b27e2addcf0f18dc438e03a6a0063a9b48c9c5ab36ab4d675c46280269c007e6f81f4a83f8b324e83b01840219ffff0317dfc7bad5080f1b1aa469544208234c3c82120e32b2813359adb39cebbd786b03971eaba1c8d7839f3da62e0aea3b29fa102e4b3d6bbc423733baa186e74e67040369eb5659a81085980b30da9415a782013c10f734529384c87c773efc5a04d1b6032fa15c9df51b7276984b86fc65924a6ec068df141e0f44dc31e0d2a8eb2ec45b0219ffff0219ffff0219ffff035c7be8c71b26760085d7d65fb32ac24884a8da9a5cbe364617b1e285a589fbbe03320677a8760e79d39956685184227dadc3629eb6221192c49a7eca08b112bddb03486ec97e79ed79e1832d76befe9077ed14ac8e51b60df0f3b7449bc618de4257034c85c8fe915c4830fdc7b40b20535c6929c54c995dc3cc336938ac0f8265146d03d26e9d039e446db808e605747aa38a4bf9bc198dcebd8d2d18f60fa8c442240f0304b23faf2eda399acb12be6f5ebe7382276e80afb3840ab06dc2fb32d6d9fc030352c42736d255da53d130f40ac7350d860d0e8d7cef264765e60d2bcc34cdcc0603b82cec9a33142aabed4d30c7b53c955ed6b32fe938b3638ea89bf7bae3d6803c03fab275417dc299627061a73d04b96429eb1cbfc6413830bf5f9e86d8e7df275903a85042c7abf8602aa90ab8759d276b8af729c70defb02c972a02ea23a7188180033bc3f75baff4ecb59a640723a6048fdbb7d8ea907785399613197381fbba8e43030fb85d8fe27cd5d9e663ac62782c68fe6472ef3c168bc260487c1247c71fa82103b6073a962dc64f332fb1011468ba2ec7fe05c103454c51fd7b52bf587038c3c903fba5bd9cdcf5d87be7b309ca0e252a17c08d3532c3432eace824660565d56fbc03ea2ca2c115582b380de0ffa25cab100efb7b04d03036bd8517733b7ffcc15d4403c45d2f69dd9ab9511a1c86f2da719a574561d1ccf515e6e72c5780f2b923e235033b57be5c5e749975c1dacb1adccc519afc0d633eff493f27b613a8fb2eebc178032679f774f28f8bbfb278174f3d28ca8ece0a0fcc38cd224f31dc2e12c9f22fdc034941c9e40d4667d678cb6fa534b1a3d15268f2d6a7b7331f8c3aded7da5f83d6035a98c084b6da84296b45c98c6a8c2940e9afb7d96f8e76112cfc60aec828d991032d89665944029154b2b0c5c42ba1ca472546e59f2097f240c316441dc2b725ad0303284557a210250c3aa873d803a9a26a16b610614a3f522d8cba7307a3c4ef780352bccb92c9e538fd36a6440ff278b35df045de848a2ab66b900cccca747a05650392ddc2c37e91bc79cfcbe87edc3178171ba50fc75818cfd7cc24542353fe9afd0310716b5d5f50cee940be1f269f48300c3a47eb86b8ab1dca69bdaccad80e2ae303c99082fb98b9dc320e2c129b635573d9f126d6f4f9aec00f4a0b433a16c83b9f05581e0361fbe347a36255b041590b358407a913dac4abd5b06d502481960938300c07470397ac9092780e03022a1d7f53e46c173d6fdb5f9998bd700aded3c07673015efba02f849317152d05581e031e5ce8f95757e3d474ad3f7d0f7bd054d7007b766316dda72bffa1c3c00c03468df6c0bf5d70035988b816f29e19334bc2cc6bf0e06d2d58faedd2d9f86ef8a7c110f54502171705581e03b44a972802e7d49c08bdd7b8052122d71e8643b18f9b7ab5825d075ed00404045909c8608060405234801561001057600080fd5b50600436106100a35760003560e01c80638340f549116100765780638da5cb5b1161005b5780638da5cb5b14610151578063c38c58131461017c578063e43252d71461018f57600080fd5b80638340f5491461012b5780638ab1d6811461013e57600080fd5b8063429b62e5146100a857806354d41bbd146100e057806369328dec146100f5578063753d756314610108575b600080fd5b6100cb6100b63660046108df565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100f36100ee3660046108df565b6101a2565b005b6100f3610103366004610901565b610291565b6100cb6101163660046108df565b60026020526000908152604090205460ff1681565b6100f361013936600461093d565b610489565b6100f361014c3660046108df565b6105bf565b600054610164906001600160a01b031681565b6040516001600160a01b0390911681526020016100d7565b6100f361018a3660046108df565b6106be565b6100f361019d3660046108df565b6107c0565b6000546001600160a01b031633146101f15760405162461bcd60e51b815260206004820152600d60248201526c2737ba103a34329037bbb732b960991b60448201526064015b60405180910390fd5b6001600160a01b03811660009081526001602052604090205460ff166102485760405162461bcd60e51b815260206004820152600c60248201526b2737ba1030b71030b236b4b760a11b60448201526064016101e8565b6001600160a01b038116600081815260016020526040808220805460ff19169055517fb85d00f8a70bee686672e4eeb72378458c2940f441bde964337c6ccd1fa386bf9190a250565b3360009081526001602052604090205460ff166102df5760405162461bcd60e51b815260206004820152600c60248201526b2737ba1030b71030b236b4b760a11b60448201526064016101e8565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015282906001600160a01b038516906370a08231906024016020604051808303816000875af1158015610340573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103649190610979565b10156103b25760405162461bcd60e51b815260206004820152601160248201527f4e6f7420656e6f75676820746f6b656e7300000000000000000000000000000060448201526064016101e8565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301526024820184905284169063a9059cbb90604401600060405180830381600087803b15801561041557600080fd5b505af1158015610429573d6000803e3d6000fd5b50505050806001600160a01b0316836001600160a01b0316336001600160a01b03167f1e9eeaf1a9185f8b4c0c3394a8209f8c4bd7a41d93c23704144795f5b3d8bb888560405161047c91815260200190565b60405180910390a4505050565b6001600160a01b03821660009081526002602052604090205460ff166104f15760405162461bcd60e51b815260206004820152601560248201527f546f6b656e206e6f742077686974656c6973746564000000000000000000000060448201526064016101e8565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290526001600160a01b038316906323b872dd90606401600060405180830381600087803b15801561055857600080fd5b505af115801561056c573d6000803e3d6000fd5b50505050816001600160a01b0316836001600160a01b0316336001600160a01b03167f4a82d3f4fd2c64329f08a8da5d7b66f87ecfb87e7045120c538eb1f51eb1a1d38460405161047c91815260200190565b3360009081526001602052604090205460ff1661060d5760405162461bcd60e51b815260206004820152600c60248201526b2737ba1030b71030b236b4b760a11b60448201526064016101e8565b6001600160a01b03811660009081526002602052604090205460ff166106755760405162461bcd60e51b815260206004820152601060248201527f4e6f7420696e2077686974656c6973740000000000000000000000000000000060448201526064016101e8565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f75519c51f39873ec0e27dd3bbc09549e4865a113f505393fb9eab5898f6418b39190a250565b6000546001600160a01b031633146107085760405162461bcd60e51b815260206004820152600d60248201526c2737ba103a34329037bbb732b960991b60448201526064016101e8565b6001600160a01b03811660009081526001602052604090205460ff16156107715760405162461bcd60e51b815260206004820152601060248201527f416c726561647920616e2061646d696e0000000000000000000000000000000060448201526064016101e8565b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517fac0f15283d37631c15b481bc07dc402bcfc030956bcd94b5585f71d92e84c3da9190a250565b3360009081526001602052604090205460ff1661080e5760405162461bcd60e51b815260206004820152600c60248201526b2737ba1030b71030b236b4b760a11b60448201526064016101e8565b6001600160a01b03811660009081526002602052604090205460ff16156108775760405162461bcd60e51b815260206004820152601360248201527f416c72656164792077686974656c69737465640000000000000000000000000060448201526064016101e8565b6001600160a01b038116600081815260026020526040808220805460ff19166001179055517f6a65f90b1a644d2faac467a21e07e50e3f8fa5846e26231d30ae79a417d3d2629190a250565b80356001600160a01b03811681146108da57600080fd5b919050565b6000602082840312156108f157600080fd5b6108fa826108c3565b9392505050565b60008060006060848603121561091657600080fd5b61091f846108c3565b925060208401359150610934604085016108c3565b90509250925092565b60008060006060848603121561095257600080fd5b61095b846108c3565b9250610969602085016108c3565b9150604084013590509250925092565b60006020828403121561098b57600080fd5b505191905056fea2646970667358221220de0db42a8502f5cbac0061f164cfb0af1329a67078a1354533b52716ca2527f964736f6c6343000812003300582103c677ab6cccb388453d4d631ecd2815f153c647bd4de926658993bc19bb3dbf0041010058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563054fc5fa8b3998c5228e20d27c2763c83e975b968d500582103c36f785858fa02ae892a51a572376c499443409230835faea08b77372a6223f041010058210349595520e05691572f85aae3c1b84194860f443118585b83a7e41a4a10b54040410100582103bdf2e9ee0f16f18e61ef721b3bcbd2353c5f0dd734be72dcc14cb568eea57830410100582103a85d0d68f476996733150c9a9a2abfe817c474c238c5fc57e4da6ed40745bc1041010219c50505581d02933e8e8b204d3f61616c893a36523d05f6dd410d8cdd3f56a6ae51e807011909c805581d02de60f5afa997b7e3b2c1d5018e9cddeade1e584bb049f461ad4fc39e0401020605581e032a5a9d519d18583355fafcb2ca7f617a7dc8b9119d49f7496ab420acb00c024706cc86fcd8940003647d9d906260b951e8177b5014693cab95190f7c2d6f80310b7ac4c272e52144030f6779489a1ebd73950f58dd6edac22ac5716fdf0e4c511467c39d441bde690003a0ebdd3c466038fe4e8c28e2e90077dc108ee2ca120be1bed4ee89113d87007703df87c8e91b21f31946cdbae90d4567be55e557238cd4768c632baee9ba2f4a250219e93f03e46f7aab0516b5bfb74f6c726506638a8315acd6978db9a7d6b10697889fae0c03df3171d5518b71e7e1a7c11ad9a9e65bd7bd1c0911196645733ab068d55e4b3803dd2f15758fdd035cab91bf553b4bec528a5cf2bb4198b2f87a363fa987ed6f650345f7f0931e1fc46fc2c872ec809c0d4b5589260996fccec5e5e809e185c634ce033f6e98d88fa6c0e88c78caac704ee77dc6fe9cd86b84117f49ae2fb7b7b059c30219ffff0380894300925556c61b5cbe06569f6296c15662f552bddffd9a3a47716bbfe0f103da27b9f183290e055376010b0b204356d572c071ebde5a07a2cbdd58ee183f9103a70f2e07fcf04d3d402baeab743a234ea112d79743b37c29811bc4b81566509d03d531513ce1fd171f70c852f0943567eb105981836a04d03e0f443e88da1ca5a603c97fbb9f5d1df80092b2ebcb06768bf6c786c3996b9be60ac98badbe19eccbb903f0516081ec93aaf417016ac8b3f165f6494bbd2561b6a3170750d51ba67b9ec90307df576563e69f640c15526a0316459e840f9ed60870279432cd8cbdf93c1b63032f20ad005b6916c8d1bc6c4ed03b567d6f0575a54d5fd2eb691dfb7571d4e96c0362ef726045961839fcbf7c6bcb17fe6cd2d1e76a716432d848e08eac88b888510219ffff03523529f8c2409ebbb4186637771fcfce7ce807c15ed86b678313fbf3ddcb061303dd11102ad57b4de86aa58cb653b5148ffd1d68547c3d5c1735473067e46352220326b09d301e8ff2bc461dd7738fc7329aaa1e0f9cf90813b0291033b4fea7661f031cdf843163a704aed11e09b7b894f1ce75b0988924e2d6af2846aa2e93d8c03203111901345cf5ca1c61160b5eb1b60ccfbb7e31bf69846d3479ce38455f91c343038e93c6201bf832cc3053ed8c0a69d00116cb0ead4a460097ad2baa5ff37b1d8d03df0e13b565c4f8112fdb169d9e45869328b2272da7267e52e849882e9b188c880370f59ff3699738f45a8ed5c81dafd035acc2e5e8f1797527caba85f684938793036f6bd93219f5a8fb9bb572b4f51303ae8a296645ff7a3bc36215419bb2ad153803b34c12128ec1ef630d28848df7639dd15cb6ef85524551588c773df8e97e361e038f17ac6787dd1e07a2dd3c00ead8b4c90d174e1b96e858db68440c43b948098c03d8ad345b5fc7dd018b4afbf784458761556b8580ea1a5da36b1193d95c6be6810219ffff03baa627342858aeeb11c1655c8b31264cc7c2865cd7346326568d8593ed84353e03142888922c63642cdd4a1455a3edbc4759c42c4afb552612d83def02091393920302794894d53e7eb42bba4a46e58a1a388d07211b572225c24208bba097fdd653036cb4c69a5c482dab59db68b1ae148e487449534e694d0a3f9ee6b968e999775203cfca7e8396a765d14cf34c06930a03aa0d85ced746691964c91a23d75e4220af03abba11abc73ec997945dca4d91ee6cd678ac2289a1c303110be28729a32b7193035d0a8d7d66b7dccfe09311a334ea58e0a3ffe97cdc32edef41f7bdc2001e097f03ab4977ec2f5b921a6bef10529ddaeead424d3992d2dea3056f1860beb71d5a630219ffff036f2a2a0d98812542e5d4c415c122fc0f6a600d318a638c3701ca8a8f738e1a4d03367c863fa8c9483303fda77f5749ec15d1e31a4a418126d9f8ce6c0e0a91271c03613986a1092f42187805ac513e3992ee5a498aa8f94238a83a5365f87756b071032e18029d3b2a22538dd815e2e05cb4aeb6d2746302e08634cda8ef31b8d11fa7039172af1fe16fae6f25f9c39af08f16e08668f5c9ad25c0a0951740969e0e32ce03b295e101d84de514a1c59325ae6be47525bdfe7b61c45ea3dacfa622f8bff15503b9453e81c0e71d80da2b6ed34f1666dd19a30e3d1be9bb028b0ca5cf97b3ac2b03fe74aa22f64425343a7be23bff602f001dcb695ed9db97011d14142f40190b8903a9c305a9acf8354f36c81048277118e3de64ee56846af48439c4bd55295139b003332ccc5231cd4d464c092eab7f1ba7a354879cec0cce4ad1c6db84207c66cbf203dda131ca4b580e0f24b1800c20ac2fcf9497de2072066923cbcde662a6f04d6103c112f90bb465e56493b690b72f5cc6d9f58fe9ada023a6ea50be05d8eff7ae3e030b2ae3344cd087a682eba515a172b81ecf5c20ad8ae51f0dc33171f98999d74d03b47299e17613508e8ba67ab9e38cf99045fab090d9a04d8431a02fd86aa13c8803f865d94914b21a704fbe33cca6e910afd57e2e801ec8748d678d1784d2a3dbcb033bfdd8a7f7ce520d5f0a5fd1ff16b5c44245a46009f3300e16961a80cca4771303a2f28e900a615741f34105a2b62e3acf751fbc4723db05c03266a62e918c0eb903293df6d4ea35d28355941c78eb09e4e671b2627e50782dccd57d4cbed2960781036e6f046d7820570ee94284008458e1ebe92ee18eada908f9f1177fd99a20bb7605581e03291725a7681859669f5c7ccba0f59553452e970dad6f700a489d844010040105581e038ca32f27c0426b87ea54313fc3e0b4d1de17764a735a683fdfaf5d0a600c024722d6c4c89582ca0398b51fb245d60c0fff5e64eabf79c94f0aebec844671002745ae5fc8a8e943b4036a0b353364be8a9ebff4120f1db60f68b770f239528ba1d55a5f0472abc1db7a05581e0357c0a8b5f7fbf128a50caee1a446414d34d0aebd35b06846e1233311e00c0446c111cce3731805581d02ab50e6fb045e5177c253f7205c2f9ca8fc0295388d2a4b7d9221087504020459082c60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610262565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b031661029f565b34801561018857600080fd5b5061012d610359565b6101996103b6565b6101a96101a4610416565b61043b565b565b6101b361045f565b6001600160a01b0316336001600160a01b031614156101da576101d581610484565b6101e2565b6101e2610191565b50565b6101ed61045f565b6001600160a01b0316336001600160a01b031614156102555761020f83610484565b61024f8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061038492505050565b5061025d565b61025d610191565b505050565b600061026c61045f565b6001600160a01b0316336001600160a01b031614156102945761028d610416565b905061029c565b61029c610191565b90565b6102a761045f565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103055760405162461bcd60e51b815260040180806020018281038252603a8152602001806106f8603a913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e61045f565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c4565b600061036361045f565b6001600160a01b0316336001600160a01b031614156102945761028d61045f565b60606103a98383604051806060016040528060278152602001610732602791396104e8565b9392505050565b3b151590565b6103be61045f565b6001600160a01b0316336001600160a01b0316141561040e5760405162461bcd60e51b81526004018080602001828103825260428152602001806107b56042913960600191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045a573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b61048d816105eb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b60606104f3846103b0565b61052e5760405162461bcd60e51b815260040180806020018281038252602681526020018061078f6026913960400191505060405180910390fd5b60006060856001600160a01b0316856040518082805190602001908083835b6020831061056c5780518252601f19909201916020918201910161054d565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e1828286610653565b9695505050505050565b6105f4816103b0565b61062f5760405162461bcd60e51b81526004018080602001828103825260368152602001806107596036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b606083156106625750816103a9565b8251156106725782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106bc5781810151838201526020016106a4565b50505050905090810190601f1680156106e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe5472616e73706172656e745570677261646561626c6550726f78793a206e65772061646d696e20697320746865207a65726f2061646472657373416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65645570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e74726163745472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574a2646970667358221220175110956fa0a7ff1615f55e1422acff6edcec0099d7ea0bae101f4f6228c8bd64736f6c634300060b003300582002dacafd75af1200cc8e5b44aae21d30d13653727738d33c9fea866d200434dd54a3a7b6f88361f48403514059f1f16c8e78d60eec005820026b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0543fffbadaf827559da092217e474760e2b2c3cedd00582002bf6d77dfa11bf8526f19f615342249ad994d4408d5fe9945703f928c9bd44d54bbce8aa77782f13d4202a230d978f361b011db270385f338e8efed8498fe8cf3de84c1573a0f7210ec8a866a5b9771e3376f356d6700582002820920ab0bd2f94a573835b9dda64a05f865edf8ac917d854f74b39e616b7d54a3a7b6f88361f48403514059f1f16c8e78d60eec005820024b437d73b0abcba15b77215c586be59e8140c556933efdfd57268423cc460f5401cdc91b0a9ba741903aa3699bf4ce31d6c5cc060219816c0319f8639f319da755161542cf376db4a535435cb671e1a78b856571bbd7453c74036ab230e62951ed1556ad2241e8c48122a4141c7f93a091afe4c9c74aefe0bf86031e25aec2400cd03d08870f229a932107fd193ea6106c1524a0376b69095b5733037d9550da7323713b45b44b741176c93937b25d448ec2b351e2194526d05243720058200221eca5b3a49d5c2c27c4d611cdb77d7e5c0eb098b8fc1837b9015c8e0ed43a54a3a7b6f88361f48403514059f1f16c8e78d60eec0058200372fb7a497787aae9eddff634efb90a699cb50080fe5a6038792972ed3a048054cee284f754e854890e311e3280b767f80797180d00582003f0bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d4810549ad46fac0cf7f790e5be05a0f15223935a0c0ada0219300000582002d7fd06ef168d66328bdd7dfde79966a7e3bea7a33ae4794eb16e43e4fb9f4854a3a7b6f88361f48403514059f1f16c8e78d60eec00582002e9db8c11a17486c4e6963037e18cf10fc9b971de6c17764509ef99bfd645c654cee284f754e854890e311e3280b767f80797180d00582002b51bc452e2a0ef4e03dfa175f155735a449d1bdbf026a9d8e289e61572f72d54a3a7b6f88361f48403514059f1f16c8e78d60eec00582002857a6fb151736b6477142b7a48b2af0c8bfaf31393dfddb4a16c998921193a54a3a7b6f88361f48403514059f1f16c8e78d60eec0058200288ce5dda8e5ac992d22a8d0953ddd74f902f8cb96d3f5c75ec6792f6d7b70754a3a7b6f88361f48403514059f1f16c8e78d60eec0219485d03667321463213c2db89e85e68f4c353beafbe1e7d7754ff34cc3e429abab3572200582002aaaf4119c51c5606fab050cb26786e17e1d7879896911a81a851212c3769d354cee284f754e854890e311e3280b767f80797180d00582003db8a6ae292b57cd050db8fbfae14fc2104181e3b5bcbcd0f6a3f0f0786fb3054a3a7b6f88361f48403514059f1f16c8e78d60eec0058200320eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d05452595021fa01b3e14ec6c88953afc8e35dff423c0219080100582002c5ec65b2c3a686b11db6c376ba635ac2f567c322946dc39ea9a99a5400afef54a3a7b6f88361f48403514059f1f16c8e78d60eec0058200298b8f9b8fcfb715f0065171bea07b843bb9b2ffb3eef43d78b09e571a376cb410100582002ca06e7a2970849e745dc883c2f9d406d7be197c16cb50a2363e9852c4e237254cee284f754e854890e311e3280b767f80797180d00582002678948243d70ce0e53b9cfb9bfc70c908efd6e4bc3f71d65374de6a434375454a3a7b6f88361f48403514059f1f16c8e78d60eec00582002c57b730b94661f0aa5cb6adcecf73e0ce7fca8256f99a70af894e993f05ff354cee284f754e854890e311e3280b767f80797180d005820023beb2d583b24d12918c7889474f2d038510817e4d181e4e549b745b7e7cda954a3a7b6f88361f48403514059f1f16c8e78d60eec005820024992486b5de2ac677cca14494d932babb1fb47aef1f58d4d435b52c05a0b6154cee284f754e854890e311e3280b767f80797180d0219cf61034be9444fa1776ad436ac491aafe286095dd9e4eff3fe9217d9e9ed7a7016d191033396b2a5d1b9900d7caa222f3161c2ad41eb5828a74d1879fa7418e5d60cb3960348344434d7ffb3b5ead724b7e7ab6307788af696d098c93b28795529b23f253b036c9dd22f0c5df9909c69cf6bed02cebf27ba5543768246e757e6dd5785ae7d29033ac73df4e0b17abcc82390bb5e93b728a6cf33da12333f48655a383f46e2500e0309e1ba3a1f5d0d2e1f57c0468cb01193c8719c337e5db38740f15728a70fe071033728351dae0befcb0f7122b10f8ac96421fc581bfbf75d8be69f8c59f58407dd03a309dd1eef4a7ff5d6e9b758e0a3729f63b75c3ecd822f2b4cd6439e0055bb070219ffff05581d02658bff13056194e5593d3530fd52fa91d22e0462fd36f22b79ea4da6070119082c02188105581e03f240cb2037e8ce130288dec5b066cdad47f1b45c7dc6233d5d792fd5600c0246184ca91db6f003645c87a58870c203e7e48baa289f76e4565569058b0c3c9c29aa46f04afbfac205581e038a21018ed841139204137257ebb162d3d06695b1e7e456d173cc7e42600c014704a9acda706e2805581e033c05a2d9935452460df8677e68872cff9b9d04d3f7ee4b65f47a77e3d00c0c47054b72ebbd03bf037f6e82265d7716459b3c3bb4632289ab483c8c4e2ec2095c339bb271b33d80ff05581e03925c3cb8e90fd811258b74cfcf1ccef85ad4923b70a8acb665989d76e00c114801bb85901ad1a5c50219fecd03cd04b387db4e7a0b3bc33199ca17af8b5b475481df227b791fcb00bb305ddb760366d8daa9a356d301ca2b7e64845d1f59bd782de6791a20881aacdd03aee2c866030113528447bf318c3ef5e8ca61577de983adc7953a0f7884061867f6138b2b9c03f1fc41695a5bec7d1c0bf9f5b384ae8dfd51677dee0102703ff0c69173b2e2fc03067e7acb35499cc25ad1e4df78a677c3c4c2975a35f97c31c74101da076bb0ce038cb2b65d89c10e55e354735188c1c2f9de4ac2ff9ad61608acef42193514d66b03ea14db1057f7be82b2ba49c63e60f53580dfd625a6b0475b88114362698e868d0398495bca77363fd33edcbea7fde923c5d3c504d1a521c59e19a35119cffc120a03cef872fcc635f5589e0cfd8f39d8856778f9181a8ce6662f8f69f4c30aec8d710318a7ccfbd47dc8e260be353038ddf820061f33644394aab86dc377268882cbd00397976bdca30dbe75fb4a972c7cb51922be9df68753cf3822b4fb0d53ceb66c1b03adcdece001f2cb1079f3bdbb4d3158b1f8e9696b4f3c8e948d507fb8899f390d037fbc9274d73b54962b7f5083d68f865702ddac66819dcae04e1beb49ce3113d603dc8057ebd2566f21ca83763a3085793b2c2b97c328404d9fc8652874ae2f7a0f03ce081d9632d7654e8a6602e90458fbe04026bd2a00ff0ba8e42dc5af321e8cc60219ffff031189f04a4a91e1b84c3fe996ca33e9c64231f4a92b1692b76dab4bc59d5face80374e83fd9391b0780744c96e0c6b0561d114614982d491bb79577ac7d15d4a8f203b7accb2ac94566730934fb1ffecb92c1ae6d27ad4619afa7e4e1e2534ca681cb036c3f1a6add7eff2f5882c3a74dc39afc563b8dcc85feed3016ae79f6acffe963039baa60a427638ebca6c5e170395dc669efa8edb494277970e4057410677a404e033fb89d176065e2551f78f5c3e7043e97282189c0ca65ab5d9223df884aba71c50219ffff036dca3000861a607ea25969b794e975bae7f6182347d97918e518fc3a923b8c40034dbc40a9395a2c88042a6cfdf42db36af0cc068d6c415af8aa83ab3611bbff65035bb9f38bc287d7121e81e17a73179aad224403ffc73d9147948f8323fec602fc0385b03b743574d2a3b51b3df2e29df341a0ad2c4172f4e5ae07854539817f65e10399cfc63505a4fd5cf458313e06406d5de0c8fb685ad1f7b76e2a4a69c0195ad5033411607b4bc91ef2f812879bb9b0eb420590e09953af3afea1fedd422184a3d003d88204a3ac4e71156ead945611d58b0cf061a09124a9fbc14c2e768e8bca60ff03b186ad42888c49a6d617f1bb9e86b69e870d5842057c0ab6a1d354c674560c70033ca3889c2378e6917cbbceaf25a045a5424f77a17f32db4459069d5bd46b037f0219ffff03d48af70329aa4ba6f077a82c8ada90b7d9eb7fde70df1f4e4093cf84246f9ecf038635785ed725b1264e5cd8afb86bc6299c7a5ae8d0be31cf74fbfe66f2d158ab0330b8913fc9c0b434b8eebd282ca4c0195663f834f4485626b93b375c0d8b893c0325f8b7df0168d2bee730852b207f2b1e7f6dd01f7cf28ca4d8d3fb1a7779a05603fd684b5450cf93938906c3a15d5aed78ceb510166db95cd26eaedd7cd7758420033e1a98812f5efc9013de603566bda28b7c145581a7dbfbb27f0c6afae80961920316845d7dc91128d53cc0ebb261793b8668e6c1c01f41963bd17520bb722afd01038bea6e6089e004da2e7e5c439f03a8cb48e3d17d5847a528f9b9b503dc25789903aaf3a32b16cde4aebe73ac09c45263c4698c688e51840131b9f03af701efcf48035e3b3ee36997839b42b7e4040a56622700df98a637b0d07ece7d0fc763ab566103d898ff2ee3312a00a91e9bc7e290dc884b4c790998d70f5171c507884f2773e203c14f241e3959f5f85d5874695865584b57b5f88bd07be33c9cbbba54c8a778bd03191a232f04e1350b09bcc862bd7658b3f9efe6d6e0d2dd960dd6d28e52d77c90031cadea29b2559d89f09c1bd912d0e88e8bb657765c06ab1c0fe654ff4322efb20374f01f7aa1ad56769c06655a75ece81b8d9dd1d59cbe39a268587feaedb7e96303a40965811ebeafedccfba00999761557d92eaf1bccf3be2b56f999c8a6abff3c03fa3e49458de77063e5ac2bd31dcbb3c97c7e3e336237ef76746ac3b2da207a6503ca95ba2b5f99c46a4d3d11bd383ea9db2d5cabbefeb5c107fecf2503f3eb1ae10387136747298e39556997edf2b069fd6b4e8d078ee8a201d0c3a4d042e26ec7e80323de2173d1c83ecdf1fa2435e99671e2af5a7d26ae49115dcd2cc0935152073803b33c33487528dbd12005006a3d29a476b27a1ea2747d32af27bec768c809b0b303b5b1d7215c35240626620fbc69536e8cc7c7737f357fb0453f59a41b1493eedc033ae7fff0ae08d4f998a2467893a3e46394a2e66e0b42a160658a422a0c1be9e603895f7ff1c1ed945886ec8d0e2b42223832b4b55f3bb92afb844bd65437ebd5b203711f249d23c40a564959abf384cf70befb26924ce306fd0cfe62a0cb5f62d68603fcac7382a0952c51d3dba42e13cce433bab287e42bea5ac30edb3a60d909030b036a2507ee48cd3586b57f79d61302068e0583e42412ef4f761c77c31a54a9e74a03e18ecc4a2818ec1a3523ec9610119b2009ae678f3902f4e5207e42fd339a06270349cfae448266c583492a84a2c445f4eff0af3480f4bea3dcdf94df3ce45fa78a034ba93c9689cdb348b091efdcc2b26dccb3b6e1ccafa303ffc5b901ded7a80cc8039ea80ffc173a44c3afee3b8084f967d56a932f8824272937d9ce7d639f0a7e4d03e55feb12c59780834432eecb1050fc0d981be2cb895b7d4f5afcd687d1b6499705581e03b2243157797f0407a7786e8615890f96c37dc6823c3ca074893bd4ca00040c034674af9a4fb900a48cab25fcbab95aee4da8047d4f97369d555001f65ee18c32035544a7da32085775554867b2a0ab85084879b66aac510a18b9458cdd5c7e994b05581d0262b4a4c5fa23c4f3613d681c5422990482b0b8122363028230c3828407011bffffffffffffffff04595e82608060405234801561001057600080fd5b50600436106103af5760003560e01c80636d73e669116101f4578063b0fe87c91161011a578063d5a06d4c116100ad578063f0cdc4991161007c578063f0cdc499146108a6578063f2fde38b146108b9578063fe2e1f58146108cc578063ffa1ad74146108df57600080fd5b8063d5a06d4c146107ea578063e00aab4b14610844578063e92a89f614610857578063e985e9c51461086a57600080fd5b8063bb3bafd6116100e9578063bb3bafd6146107ea578063c87b56dd1461080b578063ce8aee9d1461081e578063d39737191461083157600080fd5b8063b0fe87c914610753578063b4b5b48f14610766578063b88d4fde146107b7578063b9c4d9fb146107ca57600080fd5b806383b7db6311610192578063a22cb46511610161578063a22cb46514610707578063aafb2d441461071a578063ac0c8cfa1461072d578063ad2d0ddd1461074057600080fd5b806383b7db63146106d35780638da5cb5b146106db57806395d89b41146106ec57806399e0dd7c146106f457600080fd5b806372ff03d3116101ce57806372ff03d3146106875780637884af441461069a5780637aa15f16146106ad57806382dcc0c8146106c057600080fd5b80636d73e6691461065957806370a082311461066c578063715018a61461067f57600080fd5b806330176e13116102d95780634278330e11610277578063596798ad11610246578063596798ad1461060d57806361e5bc6b146106205780636352211e1461063357806366d1e9d01461064657600080fd5b80634278330e146105c157806342842e0e146105d457806342966c68146105e75780634cd88b76146105fa57600080fd5b8063332dd1ae116102b3578063332dd1ae1461057557806338e52e78146105885780633e6134b81461059b5780633f0f37f6146105ae57600080fd5b806330176e131461053a5780633071a0f91461054d57806331ae450b1461056057600080fd5b806320e4afe21161035157806324d7806c1161032057806324d7806c146104c15780632928ca58146104d45780632a55205a146104f55780632d3456701461052757600080fd5b806320e4afe21461047757806322f374d01461048a578063239be3171461049b57806323b872dd146104ae57600080fd5b8063081812fc1161038d578063081812fc14610406578063095ea7b3146104315780630ebd4c7f14610444578063162094c41461046457600080fd5b806301ffc9a7146103b457806302e7afb7146103dc57806306fdde03146103f1575b600080fd5b6103c76103c2366004614ed4565b6108e7565b60405190151581526020015b60405180910390f35b6103ef6103ea366004614f06565b610916565b005b6103f961099b565b6040516103d39190614f73565b610419610414366004614f86565b610a2d565b6040516001600160a01b0390911681526020016103d3565b6103ef61043f366004614f9f565b610a54565b610457610452366004614f86565b610ba3565b6040516103d39190615006565b6103ef61047236600461505b565b610c07565b6103ef6104853660046150ec565b610c86565b606f546001600160a01b0316610419565b6104196104a9366004614f86565b610d66565b6103ef6104bc366004615166565b610e7c565b6103c76104cf366004614f06565b610ef3565b6104e76104e2366004614f06565b610f2c565b6040519081526020016103d3565b6105086105033660046151a7565b610f66565b604080516001600160a01b0390931683526020830191909152016103d3565b6103ef610535366004614f06565b610fd6565b6103ef6105483660046151c9565b611033565b6103ef61055b36600461520b565b6110b1565b61056861113b565b6040516103d39190615247565b6103ef610583366004615294565b6111ea565b610457610596366004615300565b611272565b6103ef6105a93660046151c9565b6113a7565b6103ef6105bc366004615356565b6113bb565b6104576105cf366004615300565b611444565b6103ef6105e2366004615166565b61153e565b6103ef6105f5366004614f86565b611559565b6103ef61060836600461548b565b6115f1565b6103ef61061b366004614f06565b61171c565b6103ef61062e366004615294565b611799565b610419610641366004614f86565b611838565b6103ef6106543660046151c9565b61189d565b6103ef610667366004614f06565b6118af565b6104e761067a366004614f06565b611907565b6103ef6119a1565b6104e7610695366004614f06565b6119b5565b6104e76106a836600461520b565b611a4e565b6104576106bb366004615300565b611b18565b6103ef6106ce3660046154ef565b611ca7565b610568611cba565b6033546001600160a01b0316610419565b6103f9611d5b565b6103ef6107023660046151c9565b611d6a565b6103ef610715366004615546565b611de8565b6103ef610728366004615294565b611df3565b6103ef61073b36600461557f565b611efe565b61045761074e36600461559c565b611f10565b6103ef6107613660046155d1565b612066565b61079c610774366004614f86565b6000908152606a6020526040902054600160a01b900460101c69ffffffffffffffffffff1690565b60405169ffffffffffffffffffff90911681526020016103d3565b6103ef6107c5366004615611565b6120e7565b6107dd6107d8366004614f86565b61215f565b6040516103d391906156ca565b6107fd6107f8366004614f86565b6121c3565b6040516103d39291906156dd565b6103f9610819366004614f86565b612239565b6103ef61082c366004614f06565b61229d565b6104e761083f366004615725565b61231a565b61045761085236600461559c565b612354565b6103ef61086536600461505b565b612434565b6103c761087836600461575a565b6001600160a01b039182166000908152606d6020908152604080832093909416825291909152205460ff1690565b6103ef6108b436600461575a565b612447565b6103ef6108c7366004614f06565b6124c5565b6104e76108da36600461520b565b612552565b6104e7600381565b60006108f2826125a6565b80610901575061090182612618565b80610910575061091082612685565b92915050565b336109296033546001600160a01b031690565b6001600160a01b0316148061094457506109446066336126d3565b61098f5760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b60648201526084015b60405180910390fd5b610998816126f5565b50565b6060606880546109aa90615788565b80601f01602080910402602001604051908101604052809291908181526020018280546109d690615788565b8015610a235780601f106109f857610100808354040283529160200191610a23565b820191906000526020600020905b815481529060010190602001808311610a0657829003601f168201915b5050505050905090565b6000610a3882612805565b506000908152606c60205260409020546001600160a01b031690565b6000610a5f82611838565b9050806001600160a01b0316836001600160a01b031603610ae85760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610986565b336001600160a01b0382161480610b2257506001600160a01b0381166000908152606d6020908152604080832033845290915290205460ff165b610b945760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610986565b610b9e8383612869565b505050565b6000818152606a60205260409020546060906001600160a01b0316610bfe5760405162461bcd60e51b81526020600482015260116024820152702737b732bc34b9ba32b73a103a37b5b2b760791b6044820152606401610986565b610910826128d7565b33610c1a6033546001600160a01b031690565b6001600160a01b03161480610c355750610c356066336126d3565b610c7b5760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b610b9e8383836128e2565b33610c996033546001600160a01b031690565b6001600160a01b03161480610cb45750610cb46066336126d3565b610cfa5760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b6000858152606a60205260409020546001600160a01b0316610d525760405162461bcd60e51b81526020600482015260116024820152702737b732bc34b9ba32b73a103a37b5b2b760791b6044820152606401610986565b610d5f8585858585612966565b5050505050565b6000818152606a60205260408120546001600160a01b0316610dbe5760405162461bcd60e51b81526020600482015260116024820152702737b732bc34b9ba32b73a103a37b5b2b760791b6044820152606401610986565b610dc7826129ed565b90506001600160a01b038116610e1f5760405162461bcd60e51b815260206004820152601660248201527f4e6f20657874656e73696f6e20666f7220746f6b656e000000000000000000006044820152606401610986565b610e2a6072826126d3565b15610e775760405162461bcd60e51b815260206004820152601560248201527f457874656e73696f6e20626c61636b6c697374656400000000000000000000006044820152606401610986565b919050565b610e863382612a48565b610ee85760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608401610986565b610b9e838383612ac7565b6000816001600160a01b0316610f116033546001600160a01b031690565b6001600160a01b0316148061091057506109106066836126d3565b6000610f36612c9c565b610f3e612cf5565b610f5a8260405180602001604052806000815250600080612d4c565b9050610e776001606555565b6000828152606a602052604081205481906001600160a01b0316610fc05760405162461bcd60e51b81526020600482015260116024820152702737b732bc34b9ba32b73a103a37b5b2b760791b6044820152606401610986565b610fca8484612dd5565b915091505b9250929050565b610fde612eac565b610fe96066826126d3565b156109985760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a361102f606682612f06565b5050565b336110466033546001600160a01b031690565b6001600160a01b0316148061106157506110616066336126d3565b6110a75760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b61102f8282612f1b565b336110c46033546001600160a01b031690565b6001600160a01b031614806110df57506110df6066336126d3565b6111255760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b61112e83612f50565b610b9e8383836000612fa8565b606061114760666130af565b67ffffffffffffffff81111561115f5761115f6153be565b604051908082528060200260200182016040528015611188578160200160208202803683370190505b50905060005b61119860666130af565b8110156111e6576111aa6066826130b9565b8282815181106111bc576111bc6157bc565b6001600160a01b0390921660209283029190910190910152806111de816157e8565b91505061118e565b5090565b336111fd6033546001600160a01b031690565b6001600160a01b0316148061121857506112186066336126d3565b61125e5760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b61126c6000858585856130c5565b50505050565b606061127c612c9c565b611284612cf5565b8167ffffffffffffffff81111561129d5761129d6153be565b6040519080825280602002602001820160405280156112c6578160200160208202803683370190505b5090506000606e5460016112da9190615801565b905083839050606e60008282546112f19190615801565b90915550600090505b838110156113945761136f86868684818110611318576113186157bc565b905060200281019061132a9190615814565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061136a915086905087615801565b612d4c565b838281518110611381576113816157bc565b60209081029190910101526001016112fa565b50506113a06001606555565b9392505050565b6113af612cf5565b61102f828260006131b2565b336113ce6033546001600160a01b031690565b6001600160a01b031614806113e957506113e96066336126d3565b61142f5760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b61143884612f50565b61126c84848484612fa8565b606061144e612c9c565b611456612cf5565b8167ffffffffffffffff81111561146f5761146f6153be565b604051908082528060200260200182016040528015611498578160200160208202803683370190505b5090506000606e5460016114ac9190615801565b905083839050606e60008282546114c39190615801565b90915550600090505b838110156113945761151986604051806020016040528060008152508787858181106114fa576114fa6157bc565b905060200201602081019061150f919061585b565b61136a8587615801565b83828151811061152b5761152b6157bc565b60209081029190910101526001016114cc565b610b9e838383604051806020016040528060008152506120e7565b611561612c9c565b61156b3382612a48565b6115b75760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564006044820152606401610986565b60006115c282611838565b905060006115cf836129ed565b90506115da836131ef565b6115e58284836132ae565b50506109986001606555565b600054610100900460ff16158080156116115750600054600160ff909116105b8061162b5750303b15801561162b575060005460ff166001145b61169d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610986565b6000805460ff1916600117905580156116c0576000805461ff0019166101001790555b6116ca838361336d565b6116d26133e2565b8015610b9e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b3361172f6033546001600160a01b031690565b6001600160a01b0316148061174a575061174a6066336126d3565b6117905760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b61099881613455565b6117a1612cf5565b8281146117e05760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081a5b9c1d5d609a1b6044820152606401610986565b60005b83811015610d5f57611830858583818110611800576118006157bc565b90506020020135848484818110611819576118196157bc565b905060200281019061182b9190615814565b6134a9565b6001016117e3565b6000818152606a60205260408120546001600160a01b0316806109105760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610986565b6118a5612cf5565b61102f82826134b3565b6118b7612eac565b6118c26066826126d3565b6109985760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a361102f6066826134cd565b60006001600160a01b0382166119855760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610986565b506001600160a01b03166000908152606b602052604090205490565b6119a9612eac565b6119b360006134e2565b565b60006119bf612c9c565b336119d26033546001600160a01b031690565b6001600160a01b031614806119ed57506119ed6066336126d3565b611a335760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b610f5a82604051806020016040528060008152506000613534565b6000611a58612c9c565b33611a6b6033546001600160a01b031690565b6001600160a01b03161480611a865750611a866066336126d3565b611acc5760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b611b0c8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250613534915050565b90506113a06001606555565b6060611b22612c9c565b33611b356033546001600160a01b031690565b6001600160a01b03161480611b505750611b506066336126d3565b611b965760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b8167ffffffffffffffff811115611baf57611baf6153be565b604051908082528060200260200182016040528015611bd8578160200160208202803683370190505b5090506000606e546001611bec9190615801565b905083839050606e6000828254611c039190615801565b90915550600090505b8381101561139457611c8286868684818110611c2a57611c2a6157bc565b9050602002810190611c3c9190615814565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c7d9250869150879050615801565b613534565b838281518110611c9457611c946157bc565b6020908102919091010152600101611c0c565b611caf612cf5565b610b9e8383836131b2565b6060611cc660706130af565b67ffffffffffffffff811115611cde57611cde6153be565b604051908082528060200260200182016040528015611d07578160200160208202803683370190505b50905060005b611d1760706130af565b8110156111e657611d296070826130b9565b828281518110611d3b57611d3b6157bc565b6001600160a01b0390921660209283029190910190910152600101611d0d565b6060606980546109aa90615788565b33611d7d6033546001600160a01b031690565b6001600160a01b03161480611d985750611d986066336126d3565b611dde5760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b61102f828261358b565b61102f3383836135c0565b33611e066033546001600160a01b031690565b6001600160a01b03161480611e215750611e216066336126d3565b611e675760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b828114611ea65760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081a5b9c1d5d609a1b6044820152606401610986565b60005b83811015610d5f57611ef6858583818110611ec657611ec66157bc565b90506020020135848484818110611edf57611edf6157bc565b9050602002810190611ef19190615814565b6128e2565b600101611ea9565b611f06612cf5565b610998338261368e565b6060611f1a612c9c565b33611f2d6033546001600160a01b031690565b6001600160a01b03161480611f485750611f486066336126d3565b611f8e5760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b8161ffff1667ffffffffffffffff811115611fab57611fab6153be565b604051908082528060200260200182016040528015611fd4578160200160208202803683370190505b5090506000606e546001611fe89190615801565b90508261ffff16606e60008282546120009190615801565b90915550600090505b8361ffff1681101561205a5761203585604051806020016040528060008152508385611c7d9190615801565b838281518110612047576120476157bc565b6020908102919091010152600101612009565b50506109106001606555565b336120796033546001600160a01b031690565b6001600160a01b0316148061209457506120946066336126d3565b6120da5760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b610d5f85858585856130c5565b6120f13383612a48565b6121535760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608401610986565b61126c8484848461371c565b6000818152606a60205260409020546060906001600160a01b03166121ba5760405162461bcd60e51b81526020600482015260116024820152702737b732bc34b9ba32b73a103a37b5b2b760791b6044820152606401610986565b610910826137a5565b6060806121e7836000908152606a60205260409020546001600160a01b0316151590565b6122275760405162461bcd60e51b81526020600482015260116024820152702737b732bc34b9ba32b73a103a37b5b2b760791b6044820152606401610986565b612230836137ac565b91509150915091565b6000818152606a60205260409020546060906001600160a01b03166122945760405162461bcd60e51b81526020600482015260116024820152702737b732bc34b9ba32b73a103a37b5b2b760791b6044820152606401610986565b61091082613b5c565b336122b06033546001600160a01b031690565b6001600160a01b031614806122cb57506122cb6066336126d3565b6123115760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b61099881613e48565b6000612324612c9c565b61232c612cf5565b6123488360405180602001604052806000815250846000612d4c565b90506109106001606555565b606061235e612c9c565b612366612cf5565b8161ffff1667ffffffffffffffff811115612383576123836153be565b6040519080825280602002602001820160405280156123ac578160200160208202803683370190505b5090506000606e5460016123c09190615801565b90508261ffff16606e60008282546123d89190615801565b90915550600090505b8361ffff1681101561205a5761240f85604051806020016040528060008152506000848661136a9190615801565b838281518110612421576124216157bc565b60209081029190910101526001016123e1565b61243c612cf5565b610b9e8383836134a9565b3361245a6033546001600160a01b031690565b6001600160a01b0316148061247557506124756066336126d3565b6124bb5760405162461bcd60e51b815260206004820152602480820152600080516020615e2d8339815191526044820152633236b4b760e11b6064820152608401610986565b61102f8282613e89565b6124cd612eac565b6001600160a01b0381166125495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610986565b610998816134e2565b600061255c612c9c565b612564612cf5565b611b0c8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250829150612d4c9050565b60006001600160e01b031982167fb5d2729f00000000000000000000000000000000000000000000000000000000148061260957506001600160e01b031982167f9088c20700000000000000000000000000000000000000000000000000000000145b80610910575061091082613fcc565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061090157506001600160e01b031982167f5b5e139f0000000000000000000000000000000000000000000000000000000014806109105750610910825b60006001600160e01b031982167f553e757e00000000000000000000000000000000000000000000000000000000148061091057506301ffc9a760e01b6001600160e01b0319831614610910565b6001600160a01b038116600090815260018301602052604081205415156113a0565b6001600160a01b0381161580159061271657506001600160a01b0381163014155b6127625760405162461bcd60e51b815260206004820152601960248201527f43616e6e6f7420626c61636b6c69737420796f757273656c66000000000000006044820152606401610986565b61276d6070826126d3565b156127b55760405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a36127b3607082612f06565b505b6127c06072826126d3565b6109985760405133906001600160a01b038316907f05ac7bc5a606cd92a63365f9fda244499b9add0526b22d99937b6bd88181059c90600090a361102f6072826134cd565b6000818152606a60205260409020546001600160a01b03166109985760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610986565b6000818152606c6020526040902080546001600160a01b0319166001600160a01b038416908117909155819061289e82611838565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60606113a0826137ac565b6000831180156128f45750606e548311155b801561291157506000612906846129ed565b6001600160a01b0316145b61294d5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610986565b600083815260776020526040902061126c8284836158bc565b61297284848484614113565b600085815260796020526040812061298991614e23565b6129a884848484607960008b81526020019081526020016000206141de565b847fabb46fe0761d77584bde75697647804ffd8113abd4d8d06bc664150395eccdee858585856040516129de949392919061597c565b60405180910390a25050505050565b6000818152606a6020526040812054600160a01b90046bffffffffffffffffffffffff81169061ffff168203612a265750600092915050565b61ffff166000908152607e60205260409020546001600160a01b031692915050565b600080612a5483611838565b9050806001600160a01b0316846001600160a01b03161480612a9b57506001600160a01b038082166000908152606d602090815260408083209388168352929052205460ff165b80612abf5750836001600160a01b0316612ab484610a2d565b6001600160a01b0316145b949350505050565b6000818152606a60209081526040918290208251808401909352546001600160a01b03808216808552600160a01b9092046bffffffffffffffffffffffff16928401929092529085168114612b845760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610986565b6001600160a01b038416612bff5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610986565b6020820151612c10868686846142a8565b612c1b600085612869565b6001600160a01b038087166000818152606b60209081526040808320805460001901905593891680835284832080546001019055888352606a90915283822080546001600160a01b031916821790559251879392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a45b505050505050565b600260655403612cee5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610986565b6002606555565b612d006070336126d3565b6119b35760405162461bcd60e51b815260206004820152601c60248201527f4d757374206265207265676973746572656420657874656e73696f6e000000006044820152606401610986565b600081600003612d6f57606e60008154612d65906157e8565b90915550606e5491505b612d7985836142b4565b336000908152607d6020526040902054612dac908690849061ffff16601087901b69ffffffffffffffff00001617614348565b835115612dcd576000828152607760205260409020612dcb8582615a13565b505b509392505050565b600080600080612de4866137ac565b91509150600182511115612e3a5760405162461bcd60e51b815260206004820152601c60248201527f4d6f7265207468616e203120726f79616c7479207265636569766572000000006044820152606401610986565b8151600003612e5157306000935093505050610fcf565b81600081518110612e6457612e646157bc565b60200260200101516127108683600081518110612e8357612e836157bc565b6020026020010151612e959190615ad3565b612e9f9190615aea565b9350935050509250929050565b6033546001600160a01b031633146119b35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610986565b60006113a0836001600160a01b038416614363565b6000805260746020527fccdf39d850e26d5964b24c5391eecfa7a13a375488d6de2101d279419f39a537610b9e8284836158bc565b612f5b6072826126d3565b156109985760405162461bcd60e51b815260206004820152601560248201527f457874656e73696f6e20626c61636b6c697374656400000000000000000000006044820152606401610986565b607c5461ffff90811610612ffe5760405162461bcd60e51b815260206004820152601360248201527f546f6f206d616e7920657874656e73696f6e73000000000000000000000000006044820152606401610986565b6001600160a01b0384166000908152607d602052604081205461ffff1690036130a357607c80546000906130359061ffff16615b0c565b82546101009290920a61ffff818102199093169183160217909155607c80546001600160a01b0387166000818152607d60209081526040808320805495881661ffff199096169590951790945593549094168452607e90925290912080546001600160a01b03191690911790555b61126c84848484614456565b6000610910825490565b60006113a08383614559565b6130d184848484614113565b6001600160a01b03851660009081526078602052604081206130f291614e23565b61312384848484607860008b6001600160a01b03166001600160a01b031681526020019081526020016000206141de565b6001600160a01b038516613173577f2b6849d5976d799a5b0ca4dfd6b40a3d7afe9ea72c091fa01a958594f9a2659b84848484604051613166949392919061597c565b60405180910390a1610d5f565b846001600160a01b03167f535a93d2cb000582c0ebeaa9be4890ec6a287f98eb2df00c54c300612fd78d8f858585856040516129de949392919061597c565b3360009081526074602052604090206131cc8385836158bc565b50336000908152607560205260409020805460ff19169115159190911790555050565b6000818152606a602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046bffffffffffffffffffffffff16928201839052909290919061324490839086846142a8565b61324f600085612869565b6001600160a01b0382166000818152606b602090815260408083208054600019019055878352606a909152808220829055518692907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a461126c565b6001600160a01b03811615613336576132ce816311686e4b60e21b614583565b15613336576040516311686e4b60e21b81526001600160a01b038481166004830152602482018490528216906345a1b92c90604401600060405180830381600087803b15801561331d57600080fd5b505af1158015613331573d6000803e3d6000fd5b505050505b6000828152607760205260409020805461334f90615788565b159050610b9e576000828152607760205260408120610b9e91614e41565b600054610100900460ff166133d85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610986565b61102f828261459f565b600054610100900460ff1661344d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610986565b6119b3614623565b606f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f959c0e47a2fe3cf01e237ba4892e2cc3194d77cbfb33e434e40873225d6b595f9060200160405180910390a150565b33612906846129ed565b336000908152607660205260409020610b9e8284836158bc565b60006113a0836001600160a01b038416614697565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008160000361355757606e6000815461354d906157e8565b90915550606e5491505b61356384836000614348565b8251156135845760008281526077602052604090206135828482615a13565b505b5092915050565b6000805260766020527fafbc767fed27552cbeceb3d11150dacedabc53b0cc52ac5aa6285a747a181958610b9e8284836158bc565b816001600160a01b0316836001600160a01b0316036136215760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610986565b6001600160a01b038381166000818152606d6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6136b8827f45ffcdad00000000000000000000000000000000000000000000000000000000614583565b1561102f576001600160a01b0382166000818152607a6020908152604091829020805460ff191685151590811790915591519182527f072a7592283e2c2d1d56d21517ff6013325e0f55483f4828373ff4d98b0a1a36910160405180910390a25050565b613727848484612ac7565b613733848484846146e6565b61126c5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610986565b6060613584825b606080600060796000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561382e57600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff16818301528252600190920191016137e4565b505050509050805160000361397b576000613848856129ed565b90506001600160a01b038116156139795761386a81634e53ee3d60e11b614583565b156138f557604051634e53ee3d60e11b8152306004820152602481018690526001600160a01b03821690639ca7dc7a90604401600060405180830381865afa1580156138ba573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138e29190810190615bb7565b81519195509350156138f5575050915091565b6001600160a01b038116600090815260786020908152604080832080548251818502810185019093528083529193909284015b8282101561397257600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101613928565b5050505091505b505b8051600003613a1e576000808052607860209081527f081a134e404bb5bca49ef6b8477e647c1205f6d43d6a20bb692a968ac5aa71448054604080518285028101850190915281815293919290919084015b82821015613a1757600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff16818301528252600190920191016139cd565b5050505090505b805115613b5657805167ffffffffffffffff811115613a3f57613a3f6153be565b604051908082528060200260200182016040528015613a68578160200160208202803683370190505b509250805167ffffffffffffffff811115613a8557613a856153be565b604051908082528060200260200182016040528015613aae578160200160208202803683370190505b50915060005b8151811015613b5457818181518110613acf57613acf6157bc565b602002602001015160000151848281518110613aed57613aed6157bc565b60200260200101906001600160a01b031690816001600160a01b031681525050818181518110613b1f57613b1f6157bc565b60200260200101516020015161ffff16838281518110613b4157613b416157bc565b6020908102919091010152600101613ab4565b505b50915091565b6060600082118015613b705750606e548211155b613bac5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610986565b6000613bb7836129ed565b9050613bc46072826126d3565b15613c115760405162461bcd60e51b815260206004820152601560248201527f457874656e73696f6e20626c61636b6c697374656400000000000000000000006044820152606401610986565b60008381526077602052604090208054613c2a90615788565b159050613d44576001600160a01b03811660009081526076602052604090208054613c5490615788565b159050613ca5576001600160a01b038116600090815260766020908152604080832086845260778352928190209051613c8e939201615ce5565b604051602081830303815290604052915050919050565b60008381526077602052604090208054613cbe90615788565b80601f0160208091040260200160405190810160405280929190818152602001828054613cea90615788565b8015613d375780601f10613d0c57610100808354040283529160200191613d37565b820191906000526020600020905b815481529060010190602001808311613d1a57829003601f168201915b5050505050915050919050565b613d558163e9dc637560e01b614583565b15613dcd5760405163e9dc637560e01b8152306004820152602481018490526001600160a01b0382169063e9dc637590604401600060405180830381865afa158015613da5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113a09190810190615cfa565b6001600160a01b03811660009081526075602052604090205460ff16613e1f576001600160a01b0381166000908152607460205260409020613e0e8461483a565b604051602001613c8e929190615d68565b6001600160a01b03811660009081526074602052604090208054613cbe90615788565b50919050565b60405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a361102f607082612f06565b613e946070836126d3565b613ee05760405162461bcd60e51b815260206004820152601e60248201527f43726561746f72436f72653a20496e76616c696420657874656e73696f6e00006044820152606401610986565b6001600160a01b0381161580613f025750613f0281631e05385b60e31b614583565b613f4e5760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964206164647265737300000000000000000000000000000000006044820152606401610986565b6001600160a01b038281166000908152607b602052604090205481169082161461102f576001600160a01b038281166000818152607b602052604080822080546001600160a01b031916948616948517905551339392917f6a835c4fcf7e0d398db3762332fdaa1471814ad39f1e2d6d0b3fdabf8efee3e091a45050565b60006001600160e01b031982167f5365e65c00000000000000000000000000000000000000000000000000000000148061402f57506001600160e01b031982167f28f10a2100000000000000000000000000000000000000000000000000000000145b8061403e575061403e82612618565b8061407257506001600160e01b031982167fbb3bafd600000000000000000000000000000000000000000000000000000000145b806140a657506001600160e01b031982167fb779958400000000000000000000000000000000000000000000000000000000145b806140da57506001600160e01b031982167fd5a06d4c00000000000000000000000000000000000000000000000000000000145b8061091057506001600160e01b031982167f2a55205a000000000000000000000000000000000000000000000000000000001492915050565b8281146141525760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081a5b9c1d5d609a1b6044820152606401610986565b6000805b8281101561418c57838382818110614170576141706157bc565b90506020020135826141829190615801565b9150600101614156565b506127108110610d5f5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420746f74616c20726f79616c746965730000000000000000006044820152606401610986565b60005b82811015612c9457816040518060400160405280888885818110614207576142076157bc565b905060200201602081019061421c9190614f06565b6001600160a01b0316815260200186868581811061423c5761423c6157bc565b61ffff602091820293909301358316909352508354600181810186556000958652948390208451910180549490930151909116600160a01b0275ffffffffffffffffffffffffffffffffffffffffffff199093166001600160a01b0390911617919091179055016141e1565b61126c848484846148da565b336000908152607b60205260409020546001600160a01b03161561102f57336000818152607b602052604090819020549051631e05385b60e31b815260048101929092526001600160a01b03848116602484015260448301849052169063f029c2d890606401600060405180830381600087803b15801561433457600080fd5b505af1158015612c94573d6000803e3d6000fd5b610b9e83838360405180602001604052806000815250614915565b6000818152600183016020526040812054801561444c576000614387600183615d8d565b855490915060009061439b90600190615d8d565b90508181146144005760008660000182815481106143bb576143bb6157bc565b90600052602060002001549050808760000184815481106143de576143de6157bc565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061441157614411615da0565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610910565b6000915050610910565b6001600160a01b038416301480159061447857506001600160a01b0384163b15155b6144c45760405162461bcd60e51b815260206004820152600760248201527f496e76616c6964000000000000000000000000000000000000000000000000006044820152606401610986565b60405133906001600160a01b038616907fd8cb8ba4086944eabf43c5535b7712015e4d4c714b24bf812c040ea5b7a3e42a90600090a36001600160a01b038416600090815260746020526040902061451d8385836158bc565b506001600160a01b0384166000908152607560205260409020805460ff191682151517905561454d6070856134cd565b5061126c84600161368e565b6000826000018281548110614570576145706157bc565b9060005260206000200154905092915050565b600061458e83614a78565b80156113a057506113a08383614aab565b600054610100900460ff1661460a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610986565b60686146168382615a13565b506069610b9e8282615a13565b600054610100900460ff1661468e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610986565b6119b3336134e2565b60008181526001830160205260408120546146de57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610910565b506000610910565b60006001600160a01b0384163b1561483257604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061472a903390899088908890600401615db6565b6020604051808303816000875af1925050508015614765575060408051601f3d908101601f1916820190925261476291810190615df2565b60015b614818573d808015614793576040519150601f19603f3d011682016040523d82523d6000602084013e614798565b606091505b5080516000036148105760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610986565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612abf565b506001612abf565b6060600061484783614b49565b600101905060008167ffffffffffffffff811115614867576148676153be565b6040519080825280601f01601f191660200182016040528015614891576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461489b57509392505050565b6001600160a01b0384161561126c5761ffff81166000908152607e602052604090205461126c908590859085906001600160a01b0316614c2b565b6001600160a01b03841661496b5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610986565b6000838152606a60205260409020546001600160a01b0316156149d05760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610986565b6149dd60008585856142a8565b6001600160a01b038085166000818152606b6020908152604080832080546001019055805180820182528481526bffffffffffffffffffffffff8089168285019081528a8652606a9094528285209151935116600160a01b02929095169190911790935591518592907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a461373360008585846146e6565b6000614a8b826301ffc9a760e01b614aab565b80156109105750614aa4826001600160e01b0319614aab565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015614b32575060208210155b8015614b3e5750600081115b979650505050505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310614b92577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310614bbe576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310614bdc57662386f26fc10000830492506010015b6305f5e1008310614bf4576305f5e100830492506008015b6127108310614c0857612710830492506004015b60648310614c1a576064830492506002015b600a83106109105760010192915050565b6001600160a01b0384161561126c576001600160a01b03811615801590614c6a57506001600160a01b0381166000908152607a602052604090205460ff165b15614d4157604051632f3537c560e11b81523360048201526001600160a01b038581166024830152848116604483015260648201849052821690635e6a6f8a906084016020604051808303816000875af1158015614ccc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614cf09190615e0f565b614d3c5760405162461bcd60e51b815260206004820152601a60248201527f457874656e73696f6e20617070726f76616c206661696c7572650000000000006044820152606401610986565b61126c565b606f546001600160a01b03161561126c57606f54604051632f3537c560e11b81523360048201526001600160a01b03868116602483015285811660448301526064820185905290911690635e6a6f8a906084016020604051808303816000875af1158015614db3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614dd79190615e0f565b61126c5760405162461bcd60e51b815260206004820152601a60248201527f457874656e73696f6e20617070726f76616c206661696c7572650000000000006044820152606401610986565b50805460008255906000526020600020908101906109989190614e7b565b508054614e4d90615788565b6000825580601f10614e5d575050565b601f0160209004906000526020600020908101906109989190614ea9565b5b808211156111e657805475ffffffffffffffffffffffffffffffffffffffffffff19168155600101614e7c565b5b808211156111e65760008155600101614eaa565b6001600160e01b03198116811461099857600080fd5b600060208284031215614ee657600080fd5b81356113a081614ebe565b6001600160a01b038116811461099857600080fd5b600060208284031215614f1857600080fd5b81356113a081614ef1565b60005b83811015614f3e578181015183820152602001614f26565b50506000910152565b60008151808452614f5f816020860160208601614f23565b601f01601f19169290920160200192915050565b6020815260006113a06020830184614f47565b600060208284031215614f9857600080fd5b5035919050565b60008060408385031215614fb257600080fd5b8235614fbd81614ef1565b946020939093013593505050565b600081518084526020808501945080840160005b83811015614ffb57815187529582019590820190600101614fdf565b509495945050505050565b6020815260006113a06020830184614fcb565b60008083601f84011261502b57600080fd5b50813567ffffffffffffffff81111561504357600080fd5b602083019150836020828501011115610fcf57600080fd5b60008060006040848603121561507057600080fd5b83359250602084013567ffffffffffffffff81111561508e57600080fd5b61509a86828701615019565b9497909650939450505050565b60008083601f8401126150b957600080fd5b50813567ffffffffffffffff8111156150d157600080fd5b6020830191508360208260051b8501011115610fcf57600080fd5b60008060008060006060868803121561510457600080fd5b85359450602086013567ffffffffffffffff8082111561512357600080fd5b61512f89838a016150a7565b9096509450604088013591508082111561514857600080fd5b50615155888289016150a7565b969995985093965092949392505050565b60008060006060848603121561517b57600080fd5b833561518681614ef1565b9250602084013561519681614ef1565b929592945050506040919091013590565b600080604083850312156151ba57600080fd5b50508035926020909101359150565b600080602083850312156151dc57600080fd5b823567ffffffffffffffff8111156151f357600080fd5b6151ff85828601615019565b90969095509350505050565b60008060006040848603121561522057600080fd5b833561522b81614ef1565b9250602084013567ffffffffffffffff81111561508e57600080fd5b6020808252825182820181905260009190848201906040850190845b818110156152885783516001600160a01b031683529284019291840191600101615263565b50909695505050505050565b600080600080604085870312156152aa57600080fd5b843567ffffffffffffffff808211156152c257600080fd5b6152ce888389016150a7565b909650945060208701359150808211156152e757600080fd5b506152f4878288016150a7565b95989497509550505050565b60008060006040848603121561531557600080fd5b833561532081614ef1565b9250602084013567ffffffffffffffff81111561533c57600080fd5b61509a868287016150a7565b801515811461099857600080fd5b6000806000806060858703121561536c57600080fd5b843561537781614ef1565b9350602085013567ffffffffffffffff81111561539357600080fd5b61539f87828801615019565b90945092505060408501356153b381615348565b939692955090935050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156153fd576153fd6153be565b604052919050565b600067ffffffffffffffff82111561541f5761541f6153be565b50601f01601f191660200190565b600061544061543b84615405565b6153d4565b905082815283838301111561545457600080fd5b828260208301376000602084830101529392505050565b600082601f83011261547c57600080fd5b6113a08383356020850161542d565b6000806040838503121561549e57600080fd5b823567ffffffffffffffff808211156154b657600080fd5b6154c28683870161546b565b935060208501359150808211156154d857600080fd5b506154e58582860161546b565b9150509250929050565b60008060006040848603121561550457600080fd5b833567ffffffffffffffff81111561551b57600080fd5b61552786828701615019565b909450925050602084013561553b81615348565b809150509250925092565b6000806040838503121561555957600080fd5b823561556481614ef1565b9150602083013561557481615348565b809150509250929050565b60006020828403121561559157600080fd5b81356113a081615348565b600080604083850312156155af57600080fd5b82356155ba81614ef1565b9150602083013561ffff8116811461557457600080fd5b6000806000806000606086880312156155e957600080fd5b85356155f481614ef1565b9450602086013567ffffffffffffffff8082111561512357600080fd5b6000806000806080858703121561562757600080fd5b843561563281614ef1565b9350602085013561564281614ef1565b925060408501359150606085013567ffffffffffffffff81111561566557600080fd5b8501601f8101871361567657600080fd5b6156858782356020840161542d565b91505092959194509250565b600081518084526020808501945080840160005b83811015614ffb5781516001600160a01b0316875295820195908201906001016156a5565b6020815260006113a06020830184615691565b6040815260006156f06040830185615691565b82810360208401526157028185614fcb565b95945050505050565b803569ffffffffffffffffffff81168114610e7757600080fd5b6000806040838503121561573857600080fd5b823561574381614ef1565b91506157516020840161570b565b90509250929050565b6000806040838503121561576d57600080fd5b823561577881614ef1565b9150602083013561557481614ef1565b600181811c9082168061579c57607f821691505b602082108103613e4257634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016157fa576157fa6157d2565b5060010190565b80820180821115610910576109106157d2565b6000808335601e1984360301811261582b57600080fd5b83018035915067ffffffffffffffff82111561584657600080fd5b602001915036819003821315610fcf57600080fd5b60006020828403121561586d57600080fd5b6113a08261570b565b601f821115610b9e57600081815260208120601f850160051c8101602086101561589d5750805b601f850160051c820191505b81811015612c94578281556001016158a9565b67ffffffffffffffff8311156158d4576158d46153be565b6158e8836158e28354615788565b83615876565b6000601f84116001811461591c57600085156159045750838201355b600019600387901b1c1916600186901b178355610d5f565b600083815260209020601f19861690835b8281101561594d578685013582556020948501946001909201910161592d565b508682101561596a5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6040808252810184905260008560608301825b878110156159bf5782356159a281614ef1565b6001600160a01b031682526020928301929091019060010161598f565b5083810360208501528481527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8511156159f857600080fd5b8460051b915081866020830137016020019695505050505050565b815167ffffffffffffffff811115615a2d57615a2d6153be565b615a4181615a3b8454615788565b84615876565b602080601f831160018114615a765760008415615a5e5750858301515b600019600386901b1c1916600185901b178555612c94565b600085815260208120601f198616915b82811015615aa557888601518255948401946001909101908401615a86565b5085821015615ac35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8082028115828204841417610910576109106157d2565b600082615b0757634e487b7160e01b600052601260045260246000fd5b500490565b600061ffff808316818103615b2357615b236157d2565b6001019392505050565b600067ffffffffffffffff821115615b4757615b476153be565b5060051b60200190565b600082601f830112615b6257600080fd5b81516020615b7261543b83615b2d565b82815260059290921b84018101918181019086841115615b9157600080fd5b8286015b84811015615bac5780518352918301918301615b95565b509695505050505050565b60008060408385031215615bca57600080fd5b825167ffffffffffffffff80821115615be257600080fd5b818501915085601f830112615bf657600080fd5b81516020615c0661543b83615b2d565b82815260059290921b84018101918181019089841115615c2557600080fd5b948201945b83861015615c4c578551615c3d81614ef1565b82529482019490820190615c2a565b91880151919650909350505080821115615c6557600080fd5b506154e585828601615b51565b60008154615c7f81615788565b60018281168015615c975760018114615cac57615cdb565b60ff1984168752821515830287019450615cdb565b8560005260208060002060005b85811015615cd25781548a820152908401908201615cb9565b50505082870194505b5050505092915050565b6000612abf615cf48386615c72565b84615c72565b600060208284031215615d0c57600080fd5b815167ffffffffffffffff811115615d2357600080fd5b8201601f81018413615d3457600080fd5b8051615d4261543b82615405565b818152856020838501011115615d5757600080fd5b615702826020830160208601614f23565b6000615d748285615c72565b8351615d84818360208801614f23565b01949350505050565b81810381811115610910576109106157d2565b634e487b7160e01b600052603160045260246000fd5b60006001600160a01b03808716835280861660208401525083604083015260806060830152615de86080830184614f47565b9695505050505050565b600060208284031215615e0457600080fd5b81516113a081614ebe565b600060208284031215615e2157600080fd5b81516113a08161534856fe41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f722061a26469706673582212201a564c1f1cc1a0ca70730291d1f4ef3a90f2a63f760972faddfbc612d326740064736f6c634300081100330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563041ff00582103ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c7041010219010405581d020e266b404302518ad43b315b06cdd85d8de8a5777f5abbb5d76d82c40701195e8205581d02b7b1582dd75619e25aafb784eb0a34d491616de04a206e61b9918de00c0546a934be17797805581d022d502e856a879ed646712d5fb3982a844383cc15263c697d29cf82c40401021910a1031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0307c3e09045939822c158d772d0015d39c8ac626d2682920f7a8d04de4007011bffffffffffffffff03f1e2d8e2f0f31371bd3b842c699fa75abfcbe0bdc576fabfbafda607c5a9429705581e037ed42338d02cdc853d937f5c93ec4acd206d66d7ae61160252a1e065100c0147016b2b852ab63003210a18a2accfbccab2d3993bc69a22431f30bd81687c2b9218c4341aca7f4f1a030e04d3a1b74dbdd904332738a6fbf7978a3be3d2aa2d7bd7a4a4cec497535ceb05581e03a1f893e3f6570ed46d3d27753b61fd282f3b40e324ab85cf9e147e78e007011bffffffffffffffff03dcf182706ef7caf1dfa3ff3529136ec4e3be7dcc63bc11da5930a45aa2e59b05031eb51ff3652baf1ec1824772c84ee11d47b0acb13721ac13a1d3a444c9e1cec805581e03711cb285e67f8d6662e102e550747f809e5b14bfa82c0bfc234d93c90007011bffffffffffffffff05581e037e6a12f6c36c1e8d8956eb68beba854b80502584449568b78ae23aba60040105581e03117a8e32f869bb994fca94d0e55b30195f251dac39b1ca7d3680d19810040105581e0398b126a5d6be5e0c0e1157cc92fca6a457b1fbeebaccdb2a43919e3d000402021989f7039e71bb24b92a1900c4d15aacdd60ebd924d88654ab14ddfae8c62e6b6f7cabbd03ce9eb48fcaf49186c0f209ba777116e14d5e3568e5f0f9c2fa4291aa28ee5f6a033a299f368d050d78e401019206d4cdb097e0ae3c81ba651d1f66c93b6164e6000376c95aff653a1932354f999b640ac4ada7d0eeb7d363b836eaaa6fd53523da0403c1bd1ea07567a377d79e539c031b58443dabe74438fdb536cf6e3067f781735c0336cb1bc9687d0843c2b61f54e9ed8ff1478345026d62209693d411799626eac403de350d46a920d0eff9479e04a6e689b3e677c9ca5073d81abba089d25cd688ac03f88488992bf8d5746a891415cec8c87ed3657c4c901f46f2f12d0dc1e5a0ff0c03a33269277d9104bab5fe7d898301a3f98a9e0fc7f3313f7847e241d8130ad70b03f6a5d508752aa0b80af97c80afa019677acc91eb81f7ebbdf4ae2555686be740031780a0e222baadbab342c9479571ceafb8ba685545d18562b005fdb0014eefee035cc36beb0e80065f8a05a227acb1ff1f00d7ed22d56641be102738a4b9cf31720219ffff03094fe27ebc2f4a4c38aebde8268fab3a89a1b65257b5348e87dac49ef839a3c70219ffff03fbb29c1b7356d4d8decd1a4ff6df9dc68071fb66addc167ce54eb5d57abcf44003f05ef63ef30b25d23e265e435db988b2889723b7299ece440a4833588d648f0e03832b0bfcfa45de50a6fd4303a455468838a416d4bff4dd8f0de7fb090942f1ad038539614da3bb2a4de541d6d688228e8f68b1e2acba20da8fadf5df51243990e503631f4f0c19f63f68bbccb476f0ebaa124db5e6e66056c8600dfe15f0a156df6b0344c75473598445ae8aafe4a79a0e7f54c7c59114ef852232c0ffe70c02b199850340a57c4364a1e1eeea074bd394c87e7dd721128efc1693825060a26b804237d7038b980a87103e5802d68d17440c934e3ccfada11a361fb8aff03ce535dc337998033cf2e205d101e8b131ffbd8f7c112365c71860e0e76fa6a6ce302583a5e9c6dc0219ffff03b7fa059d8bc3150caa276307d6fce7b5a65d4ed8ce99a726d687b13577c0cf7e0219ffff03d4a8a0542abc54896770519f3babec65dd670ef7179fde1c4e884c7233164938036923b3d9f56683b94b9ff73376f1eebc8a22c3c98eca223f2d30af34e9478a5003cf0bdda2a8783f57b2dad807899f2693c7c1baa9a3127aa63a038b6ed3d2f4670333a88894c943e6f82026dd0871219c6ac8bf1fb057a2d1ec5619acb9e9cf324703e188dfbac833a8d05a210734f922bfc821b8a87a17d0b4144fd8eb1657ea9c42030444bf260e2bb35c5701d91f602e107714361be44779bbdba4c3be4737725e0e033f58c1d791445ef32dd305ecd075fad82e432e2a3bf8472679f67ed10aeace9b03ae64f9bbd302de459610b2854299e2fc24f64133e478bf8206c0a97df349fba903b310a4166664e3d4e1ddb49480c87694b9db5b89b5589bec41bd56bf36bce52103c601420cccf805203ca4b4475873578b2e7a89f6108a8b83a7e637ca4f81e4e3032dbe0fd276c13ad1bfaa4b11d380c6717427cb2ccd8e2fe21b60102e7878a37803d77edb591ec816ad42242c4f0dccca61435a4955035df8b2d58b691a4795c976031436942255ac2c5aabe7195f079d07675f806e468304e50a75501cff94c8caa6035e48b8b652226dfaddfa73689e1a41a0039f5625c00438abe37c3324e88eade5033ab46622544124e80f9337a13efd4a2ceacbeea275b1cc9e4d6a4f63a4fc0bd003da9c19104c008ffa553d021039e99f5c234e061cf3747a9fc1cc15025f8b41da03c0f1858ed02aa8376bb247b48c487394c1eda60952f38421c0aabbe1999cca520384edd0e4058b847ad4718dd163cd4433c8a0e862c64e9b018ce44cb13a0869950375fcef316e6ac1f07b486d7b54411f278a8bbb73ff1d891ea88617bc138450e703cb6c960d560616643bdb9ae3d3dadbad37e1a60e5ef9faf005483512c4d4b94103d1dcc9d44db8274360fdc3d2c585bd0f59b86e140c917d160a72a12d2e80206f03f65a33e4dcdd4e2e6bf4fc86907c22c751c10cc5465a28bc24aa80fc1e8828dc05581e0371fd2f321355262586773a2b78366c07a0d87f16914e07572c9e81b1b00c0246994c4371fce005581e034490247940ea3cac102456b7e335a95e66b86674f44a9e97341d7e5740040105581e03fee64bbbd7416d43142f870fead28a08dcc84815ce58e084ff8dc166f0040303ed9825e86d8795f472169393c28610dc28658148fee688b51f02f2c23bc6a63605581e03b866edfb9c910a2e9d6063f6fae29f9fc069dcac5509984411ff977be0040205581e03a51435336431aa1dc3ba828aa134355af27f0f058e43ff9943170a2e700c0347192db7de7f5b0403613aad3f549db34d7a31f68ff42c4d32e3604a6e4f23012700d309eb75b5dc8502198ab603986d88c39820fcaf42791a2e5fa8041dcc92767f87602478b300909723af73ac03b4d2225dfe6b0264fdb84e232c51239e0db85a08107d92df17b3112048b9b813039fa341e184840a8639850279e2d95e9749da6058fd59fa16a3ffe55144b138eb031108345811ff4069c641ae55b36e0cb958fecf548ad85794248f1bfc69b2980d03f35e61c441ac6c8d257bc5816da1d7444eb6bf4d66d7023f220cd16f14c723d503cc81d89b9aebe562c9deb1571971f7b5475e34166fefd683eb598d6be3ac3902031c4950475b8aa993c07f4b09fce7445df0aa829db11310b29f6d269348304d7303a1087749793f20a0ae92e8902df689bef0f52d1cee2506c85eb856c7c9749a2303a948215c98ad214bb8f80bb2c71ca1478088cdd50d6912f64282fce93477586203a19dff13768a9ffcf057c099ab67a9a1092f7184f9805157bc45c55a4809cc3b0347d2a68afdd8b20f62eaafe71098e7ec2c63652e05e5d00ec0886b3e93612f950391c0e6985904833281b3bffb1d292a973aff0ab5e93f114566b92ca17542a37603a0465a15ce80e61dac41ffd741e232dbf0f02c4cb4b22ef42ccc23d541b778370219ffff038321ae6e07a24096e425d07067359e0ff6f9024222fa273a25ccd62f93deb55c036e9c2e71a8607cc527d3337ffeb8af9a6b4a28f7c417d11c5d04b44b53aee022038510b2a3881a7301728a4e4bc2f751b6c28843f4e4fc0f19bee5c59f746cef1d036c5a291f98f6d03b74b8e2d68f6fd5552dc558d099e10a79f9cafcd88d4e7d7703db549681a78963f8329218a0cbcb7379f32a4d660a4ce87ee64debb3b0606a8a03c58ac7e8d6fdc35d52d39de951a7e2f8e53761945f46ae691c76f4e63446c3660357bafb0e1abea0e20ba97cc304c54d9e035da1b5d466a26786d3f5223f8b0083033108e7903387a76ec71b9f3bba2387d59bf2c0869b0f04a88009d14c9fbe5dd40219ffff035d9fd2bc9386f82becab09d705c917049e52dbd312e42859d9b24459a68bde4503a28355585ee2d68408a7c007ffc8de4a2dec546f67a548f1f10730e2e05289e803095db214d77b51b0a0421b4c4c49b70c6d0fb34c743395aea83e7917e3aaabe003d94bbe53bafa2538711c293026a3e028adbc5fb8763fb92dd21dbb2b088900750346583953615951001a10ed082b912dc8e7a773c08a49e7b6d522500f7382d4150391f4aac89b9e0f6fb982e46d3fdc845ee65c61ab15a0f6e74a82d15ac8b4dc1a0369185b8b59354f447178f35ba9fbe89ecae9196e309a481a9eb1e800bd20c3cd0219ffff037428cb21f646780ec302ae7cf9c524468dbac2f37878e16cc25e7ad22ecba9c703fec9cdda1783142556f20c551c536f9bde0ce428dad22a2fb3ea5daee05870190399f31936b8544ae3909830b5ccb47e8e37e1f19487e3c1cc9d55f58ad38fa2d5035eb473c038a471d35663fabcc5ce1e866a424e74891a26dbfc7d08b21f35584803dada55552e6e52777f7f1ba6752856df775c348ce2fec08578f3456290163528031fd80c6ff0f1314e4401a34f26550cec8e4782106029be92b0f928bce41789f303e846b8a2d5aaa53e8631e5d345ae222a6e82074ef7a7ed8658e6856ad78a016a031e67916eff6e090d3b10697aafcda07186908cdbd9a5dd16bfc2b93d54833d8703824b7fa989552a8e9993932706b467d84d3644e8fd2ce6adaf1b6524dff44e7a0385337b775cf0bd0b0b2dfb1a8e3c53be654bd08476a656494cb905fd92805d65036ae8f5e41a58d161f5c04f40890dbac09eb44e68282032639c2e6cf2c9e05afd03cec884e37bce90ad75a2d0240673cdb8441ea7a70e46ca2b3cfb24ec99fbe22203613d1125b0724ac12291b34160096f63c181a0a875f000c8d48cf26acebe0f2b03992cf5593da98b845666411d71378f82df837e640367b9ff5d5ef1f05d86714e035e8911d6530d69c82f645ac251abfdafc899522862c28e947afc0adc03f12f5a035f633817c1d76a6993cd80132f7e2897b35e68a7de697d9305b9f1139a6bb562033132ff48908e4b16463ee563e8ddfbd8d1161a0293d1e8f56fd38fcbbc53bc5103e15237f973850378cbc74c32a05851b4e5c54bb2853dd4c8df4ec4ee840d5d4603bc8ecd8e38096d5ac7877859bccc3798a979f76724d3352bae561e02613217b7033ec94356f43f1510eb8a8a0c2901358048b6875356d15b667fa564fae228b65503b2a31c9e675ddd4b6c4653c022f502d562310a38dccadedc9a58e0325773680503f0532d04b019218d65f0ffa7054a54d789c7a157fc2c29de77774c9f55fb4ce103edad36513ae633b0065b64dc735a76570e0b461f114996447c1c3db0fb6ca95c035d0784cf5aaf052cad2524ac47ee94040285433556c4d9ac48fa7d4998cac25903202ed98aa0f9b033f4c02a0615f1dd1c660a2b715549762948c3c02d5f4def7703b4d2a11cf2e4b7ed37b1eb7333cd14f5c01336e2a09598ee82e7fb57a0f8f550032893bc5e4bcf1abccdcce0b33975a3dd3b8415ab9b2d6f5bf005bfa1835386750351fa24ae2c7c3dd4903c0ecda5a9047b0e5dc3dd5b40369a58ffe76e01ad1c0a03431d6165e9aa39c7eb25b83784b03e41eab3565d52eaad4ea63f965d596eadf304592c8d6080604052600436106101625760003560e01c806352d1902d116100c0578063bb6f2e0611610074578063c6c8788c11610059578063c6c8788c146103ea578063f340fa0114610425578063f4a120f71461043857600080fd5b8063bb6f2e061461039d578063c12327b8146103bd57600080fd5b8063b187bd26116100a5578063b187bd261461034d578063b6e2713614610367578063b78103e91461038757600080fd5b806352d1902d146102f4578063a0d99b1c1461031757600080fd5b806339cc123011610117578063485cc955116100fc578063485cc955146102a15780634922d481146102c15780634f1ef286146102e157600080fd5b806339cc123014610230578063401e68d41461025057600080fd5b80631b0c926f116101485780631b0c926f146101ae578063316be171146101ce5780633659cfe61461021057600080fd5b80625bc12e1461017b578063051d92bb1461018e57600080fd5b36610176576101746000333334610458565b005b600080fd5b61017461018936600461262b565b6106e6565b34801561019a57600080fd5b506101746101a93660046127e8565b6106f6565b3480156101ba57600080fd5b506101746101c93660046128ce565b610b8b565b3480156101da57600080fd5b506097546101f39061010090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561021c57600080fd5b5061017461022b3660046128e7565b610c67565b34801561023c57600080fd5b506098546101f3906001600160a01b031681565b34801561025c57600080fd5b5061029161026b366004612904565b609d60209081526000938452604080852082529284528284209052825290205460ff1681565b6040519015158152602001610207565b3480156102ad57600080fd5b506101746102bc36600461262b565b610e04565b3480156102cd57600080fd5b506101746102dc3660046128e7565b611011565b6101746102ef366004612946565b61118b565b34801561030057600080fd5b50610309611315565b604051908152602001610207565b34801561032357600080fd5b506101f36103323660046128e7565b609a602052600090815260409020546001600160a01b031681565b34801561035957600080fd5b506097546102919060ff1681565b34801561037357600080fd5b506101746103823660046129a4565b6113da565b34801561039357600080fd5b5061030960995481565b3480156103a957600080fd5b506101746103b83660046128e7565b6114e2565b3480156103c957600080fd5b506103096103d83660046128e7565b609b6020526000908152604090205481565b3480156103f657600080fd5b506102916104053660046129c1565b609c60209081526000928352604080842090915290825290205460ff1681565b6101746104333660046128e7565b6115f3565b34801561044457600080fd5b506101746104533660046128e7565b6115ff565b60975460ff16156104b05760405162461bcd60e51b815260206004820152600660248201527f506175736564000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6098546001600160a01b03166105085760405162461bcd60e51b815260206004820152600d60248201527f4e6f7420737570706f727465640000000000000000000000000000000000000060448201526064016104a7565b600081116105585760405162461bcd60e51b815260206004820152601160248201527f4e6f7420656e6f75676820616d6f756e7400000000000000000000000000000060448201526064016104a7565b6001600160a01b0382166105ae5760405162461bcd60e51b815260206004820152600f60248201527f496e76616c69642061646472657373000000000000000000000000000000000060448201526064016104a7565b6001600160a01b038481166000908152609a6020526040902054166106155760405162461bcd60e51b815260206004820152600d60248201527f4e6f7420737570706f727465640000000000000000000000000000000000000060448201526064016104a7565b6001600160a01b038381166000818152609b6020908152604080832054898616808552609a845293829020548251938401959095529082018190526060820192909252918316608083015291841660a082015260c081018390527f435881434a980001db54827793d55b4f3b751d216ed457d0f2a143220ae06d259060e00160408051601f19818403018152908290526106ae91612a3d565b60405180910390a16001600160a01b0384166000908152609b602052604081208054916106da83612a7f565b91905055505050505050565b6106f282338334610458565b5050565b6106fe6118db565b60975460ff16156107515760405162461bcd60e51b815260206004820152600660248201527f506175736564000000000000000000000000000000000000000000000000000060448201526064016104a7565b6000806000806000808680602001905181019061076e9190612ab7565b609854959b509399509197509550935091506001600160a01b03166107d55760405162461bcd60e51b815260206004820152600f60248201527f4e6f7420696d706c656d656e746564000000000000000000000000000000000060448201526064016104a7565b600081116108255760405162461bcd60e51b815260206004820152601160248201527f4e6f7420656e6f75676820616d6f756e7400000000000000000000000000000060448201526064016104a7565b6001600160a01b03821661087b5760405162461bcd60e51b815260206004820152600f60248201527f496e76616c69642061646472657373000000000000000000000000000000000060448201526064016104a7565b6001600160a01b0386166000908152609c6020908152604080832088845290915290205460ff16156108ef5760405162461bcd60e51b815260206004820152601660248201527f4f7264657220616c72656164792065786563757465640000000000000000000060448201526064016104a7565b87518951146109405760405162461bcd60e51b815260206004820152600e60248201527f496e707574206d69736d6174636800000000000000000000000000000000000060448201526064016104a7565b6001600160a01b038481166000908152609a60205260409020548116908416146109ac5760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420746f6b656e2067617465776179000000000000000000000060448201526064016104a7565b600046886040516020016109c1929190612b2a565b604051602081830303815290604052805190602001209050610a5d87878c8c85609760019054906101000a90046001600160a01b03166001600160a01b03166365ee35576040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a589190612b50565b611934565b6001600160a01b038781166000908152609c602090815260408083208a845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905551909185169084908381818185875af1925050503d8060008114610aeb576040519150601f19603f3d011682016040523d82523d6000602084013e610af0565b606091505b5050905080610b415760405162461bcd60e51b815260206004820152601360248201527f455448207472616e73666572206661696c65640000000000000000000000000060448201526064016104a7565b6040518281527fdb8766dc7a4cbe0b9d514534307d6ed0bc09c930e535e9c61badb099479e13b69060200160405180910390a15050505050505050610b866001606555565b505050565b609760019054906101000a90046001600160a01b03166001600160a01b0316633c81df216040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c029190612b69565b6001600160a01b0316336001600160a01b031614610c625760405162461bcd60e51b815260206004820152601160248201527f4d756c746973696720726571756972656400000000000000000000000000000060448201526064016104a7565b609955565b6001600160a01b037f000000000000000000000000468b89d930ca7974196d7195033600b658011756163003610d055760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016104a7565b7f000000000000000000000000468b89d930ca7974196d7195033600b6580117566001600160a01b0316610d607f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614610ddc5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016104a7565b610de581611d47565b60408051600080825260208201909252610e0191839190611e1e565b50565b600054610100900460ff1615808015610e245750600054600160ff909116105b80610e3e5750303b158015610e3e575060005460ff166001145b610eb05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610f0e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610f16611fbe565b610faa8383609780546001600160a01b03938416610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff90911617905560988054919092167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790557fb9ae7ba14d826de669be54f7c79008181b430f21bd3ff90dac8cce1e60ae88a9609955565b8015610b8657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b609760019054906101000a90046001600160a01b03166001600160a01b0316633c81df216040518163ffffffff1660e01b8152600401602060405180830381865afa158015611064573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110889190612b69565b6001600160a01b0316336001600160a01b0316146110e85760405162461bcd60e51b815260206004820152601160248201527f4d756c746973696720726571756972656400000000000000000000000000000060448201526064016104a7565b60405147906000906001600160a01b0384169083908381818185875af1925050503d8060008114611135576040519150601f19603f3d011682016040523d82523d6000602084013e61113a565b606091505b5050905080610b865760405162461bcd60e51b815260206004820152601360248201527f455448207472616e73666572206661696c65640000000000000000000000000060448201526064016104a7565b6001600160a01b037f000000000000000000000000468b89d930ca7974196d7195033600b6580117561630036112295760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016104a7565b7f000000000000000000000000468b89d930ca7974196d7195033600b6580117566001600160a01b03166112847f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146113005760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016104a7565b61130982611d47565b6106f282826001611e1e565b6000306001600160a01b037f000000000000000000000000468b89d930ca7974196d7195033600b65801175616146113b55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104a7565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b609760019054906101000a90046001600160a01b03166001600160a01b0316633c81df216040518163ffffffff1660e01b8152600401602060405180830381865afa15801561142d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114519190612b69565b6001600160a01b0316336001600160a01b0316146114b15760405162461bcd60e51b815260206004820152601160248201527f4d756c746973696720726571756972656400000000000000000000000000000060448201526064016104a7565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b609760019054906101000a90046001600160a01b03166001600160a01b0316633c81df216040518163ffffffff1660e01b8152600401602060405180830381865afa158015611535573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115599190612b69565b6001600160a01b0316336001600160a01b0316146115b95760405162461bcd60e51b815260206004820152601160248201527f4d756c746973696720726571756972656400000000000000000000000000000060448201526064016104a7565b609880547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610e0181333334610458565b609760019054906101000a90046001600160a01b03166001600160a01b0316633c81df216040518163ffffffff1660e01b8152600401602060405180830381865afa158015611652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116769190612b69565b6001600160a01b0316336001600160a01b0316146116d65760405162461bcd60e51b815260206004820152601160248201527f4d756c746973696720726571756972656400000000000000000000000000000060448201526064016104a7565b6098546001600160a01b031661172e5760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964204c322070616972000000000000000000000000000000000060448201526064016104a7565b6001600160a01b038181166000908152609a602052604090205416156117965760405162461bcd60e51b815260206004820152600e60248201527f416c7265616479206d617070656400000000000000000000000000000000000060448201526064016104a7565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b16602082015260009060340160408051601f1981840301815291905280516020909101206099546098549192506000916118039184916001600160a01b0316612045565b6001600160a01b038481166000818152609a6020908152604080832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169587169590951790945533808352609b825291849020548451918201929092529283015260608201529091507f1f6a77d013b627d23667409a96b7a68bff41621fe44b53ffc26b3b8da24fdb2f9060800160408051601f19818403018152908290526118ae91612a3d565b60405180910390a1336000908152609b602052604081208054916118d183612a7f565b9190505550505050565b60026065540361192d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016104a7565b6002606555565b6000805b8551811015611cc05760006119bd86838151811061195857611958612b86565b60200260200101516119b7876040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b9061206f565b90508682815181106119d1576119d1612b86565b60200260200101516001600160a01b0316816001600160a01b031614611a5f5760405162461bcd60e51b815260206004820152602360248201527f56616c696461746f72207369676e617475726520646f6573206e6f74206d617460448201527f63682e000000000000000000000000000000000000000000000000000000000060648201526084016104a7565b6097546040517f2a2e5e420000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015261010090920490911690632a2e5e4290602401602060405180830381865afa158015611ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aec9190612bb5565b611b385760405162461bcd60e51b815260206004820152601160248201527f496e76616c69642076616c696461746f7200000000000000000000000000000060448201526064016104a7565b6001600160a01b03808a166000908152609d602090815260408083208c845282528083209385168352929052205460ff1615611bb65760405162461bcd60e51b815260206004820152601660248201527f4e6f206475706c69636174652076616c696461746f720000000000000000000060448201526064016104a7565b6001600160a01b038981166000908152609d602090815260408083208c8452825280832085851680855292529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560975491517f5dd9147c000000000000000000000000000000000000000000000000000000008152600481019190915261010090910490911690635dd9147c90602401602060405180830381865afa158015611c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c939190612b50565b611c9d9084612bd2565b925083831115611cad5750611cc0565b5080611cb881612a7f565b915050611938565b5081811015611d375760405162461bcd60e51b815260206004820152603c60248201527f5375626d69747465642076616c696461746f7220736574207369676e6174757260448201527f657320646f206e6f74206861766520656e6f75676820706f7765722e0000000060648201526084016104a7565b50505050505050565b6001606555565b609760019054906101000a90046001600160a01b03166001600160a01b0316633c81df216040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbe9190612b69565b6001600160a01b0316336001600160a01b031614610e015760405162461bcd60e51b815260206004820152601160248201527f4d756c746973696720726571756972656400000000000000000000000000000060448201526064016104a7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611e5157610b8683612095565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611eab575060408051601f3d908101601f19168201909252611ea891810190612b50565b60015b611f1d5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016104a7565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611fb25760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016104a7565b50610b8683838361216b565b600054610100900460ff1661203b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a7565b612043612196565b565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b600080600061207e8585612213565b9150915061208b81612258565b5090505b92915050565b6001600160a01b0381163b6121125760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016104a7565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b612174836123bd565b6000825111806121815750805b15610b865761219083836123fd565b50505050565b600054610100900460ff16611d405760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a7565b60008082516041036122495760208301516040840151606085015160001a61223d87828585612508565b94509450505050612251565b506000905060025b9250929050565b600081600481111561226c5761226c612be5565b036122745750565b600181600481111561228857612288612be5565b036122d55760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104a7565b60028160048111156122e9576122e9612be5565b036123365760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104a7565b600381600481111561234a5761234a612be5565b03610e015760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016104a7565b6123c681612095565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b61247c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016104a7565b600080846001600160a01b0316846040516124979190612c14565b600060405180830381855af49150503d80600081146124d2576040519150601f19603f3d011682016040523d82523d6000602084013e6124d7565b606091505b50915091506124ff8282604051806060016040528060278152602001612c31602791396125cc565b95945050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561253f57506000905060036125c3565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612593573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166125bc576000600192509250506125c3565b9150600090505b94509492505050565b606083156125db5750816125e5565b6125e583836125ec565b9392505050565b8151156125fc5781518083602001fd5b8060405162461bcd60e51b81526004016104a79190612a3d565b6001600160a01b0381168114610e0157600080fd5b6000806040838503121561263e57600080fd5b823561264981612616565b9150602083013561265981612616565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156126bc576126bc612664565b604052919050565b600067ffffffffffffffff8211156126de576126de612664565b5060051b60200190565b600082601f8301126126f957600080fd5b813567ffffffffffffffff81111561271357612713612664565b6127266020601f19601f84011601612693565b81815284602083860101111561273b57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261276957600080fd5b8135602061277e612779836126c4565b612693565b82815260059290921b8401810191818101908684111561279d57600080fd5b8286015b848110156127dd57803567ffffffffffffffff8111156127c15760008081fd5b6127cf8986838b01016126e8565b8452509183019183016127a1565b509695505050505050565b6000806000606084860312156127fd57600080fd5b833567ffffffffffffffff8082111561281557600080fd5b818601915086601f83011261282957600080fd5b81356020612839612779836126c4565b82815260059290921b8401810191818101908a84111561285857600080fd5b948201945b8386101561287f57853561287081612616565b8252948201949082019061285d565b9750508701359250508082111561289557600080fd5b6128a187838801612758565b935060408601359150808211156128b757600080fd5b506128c4868287016126e8565b9150509250925092565b6000602082840312156128e057600080fd5b5035919050565b6000602082840312156128f957600080fd5b81356125e581612616565b60008060006060848603121561291957600080fd5b833561292481612616565b925060208401359150604084013561293b81612616565b809150509250925092565b6000806040838503121561295957600080fd5b823561296481612616565b9150602083013567ffffffffffffffff81111561298057600080fd5b61298c858286016126e8565b9150509250929050565b8015158114610e0157600080fd5b6000602082840312156129b657600080fd5b81356125e581612996565b600080604083850312156129d457600080fd5b82356129df81612616565b946020939093013593505050565b60005b83811015612a085781810151838201526020016129f0565b50506000910152565b60008151808452612a298160208601602086016129ed565b601f01601f19169290920160200192915050565b6020815260006125e56020830184612a11565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ab057612ab0612a50565b5060010190565b60008060008060008060c08789031215612ad057600080fd5b8651612adb81612616565b602088015160408901519197509550612af381612616565b6060880151909450612b0481612616565b6080880151909350612b1581612616565b8092505060a087015190509295509295509295565b82815260008251612b428160208501602087016129ed565b919091016020019392505050565b600060208284031215612b6257600080fd5b5051919050565b600060208284031215612b7b57600080fd5b81516125e581612616565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612bc757600080fd5b81516125e581612996565b8082018082111561208f5761208f612a50565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60008251612c268184602087016129ed565b919091019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a7704a2c285819af2681499792ffb9cce0d97ac099a9c815559b1d7ddb9dc6b364736f6c634300081300330605581e03808ed9a6622ed62b1b24fe5c2728b5c8b72b5c766e1cbd8345d6691c800701192c8d03ade28aaee7c07035394a31c263207c3c951edd52728a30446006a6c494d1ec0c036e0bfc17bba53dc3fca32d238f05f48e0636037f1425b6c90916e4e711c03d6405581e0349f0e7f7c2e3ec5df7c8fd1b8185b9a73e6d1fcbb22b97b7e3f39e8750040203ef705a474420f32cf88018be3b68708b3702cfd9805e179987c48e0b5a61081e03de8d377c822941afc3d8787af0f48f550b6f4b20358d80d626e047b4efadccd903797f99c75bf01e81cfee293c25c572f5ba9a5a3ed7bd0e9da89b415f04b582fd039e8dee7c839a11cb33018397abd928491e434193f5d5a3eee66300cf4b5998d202192c6b034258e54e1b2fed05c5aebad4c41992badba83afea1b2cd6fc2cfb93642827ad5031b0488281ded902786876eaa55ab8a07af23e199f48ed8e8b31ff03401615ef4038878f4562953f25db5059f81fb3e52971ce9f6647a046c297b074470b7cdd2410337322742388e3e51d272d283c8e7eb02add5543083b4762cc898355ebac1a4190219ffff03af72a0a06567e3915348e68080ca288e41a9c7ebe3758c1f5cbc866a73c8ac2403d8c242725c6897843d8ea6c843b422471b1990598cb4d2884834324c6f25af4f03ba13f6a2e6fa6a9a0a372302bc794bf436eea975328b4e9c1d270841745c2600030bd2fd8b41a3d948617c116183a4d8494f16339087f7e8d803b67ada793508970329a09122ad6cf86d1d5a8ebca8d36e4efeedc6e00b42ab6b203d71e1b306b9350219ffff03f21155ff889f6f8ecb9bbec0f2f13d75cab21a26cff4a1c3853003d0cf6dbfc9034f486810f0c39a038df76429dbf213c67ef8bf47fbbf8120066d64b44346543503deaf88fecdc0daa310ca557aecdd1fce2abad2da31bc0ad4d496001dd40083f6037f5581b0647756c8b220a5b20c5cc6dd5d74be9cb810ab031f98f8e2133148e903991872cd15b0dd782083f695aab51865043e57bb40ecde585e5a7f9bfd5addfb037653c8b750541eb6abd60db35e21bfc7ad4563ae9a08d613273e62373f7f4f16032c38e42d13fb54396ba6cc4c9e1a2d1df5c9534d209b97194f2a5a23ae6a581e031418878ce0fe57a4441363fadee6f89a6dce6cff82b84bd822fcab079f5a70b70219ffff03571f57752563b240c4a62e73c68d8fb0e5bd1127a6104662a93b2d9eb71377670319b36342f0fd4ae8275847896f737b5c1dddc4ae2cd4b04a24cdea348e7400980319a18cde233a1e529647b08dfab838e7b063c658820550aaa02651bc30b751f90369783943f3858397ec336374e534d8953e43b8ce7fd46b0a245bd8369a80401c039c1ea861897fea3deb5e4b2288ac00f610887fff805ba5a962e4eee3875b0fb103150b9c591e3ebbda31905673dc23cd928c03bd3bcf494c5115cadd6a169d97290378929870ca2bedea3805b2b9716f753340c0b2be9ce20c943f0a6d19c5fd913e039636685bb3e2ddb11767649c8ad2620643d9c6a2180aeb60a69545ebe43809920388c56780cf61cbba9708702cf2c4b130ef3dd82bcb82a18b11c9856daf1334a503b6a01c4330fb126ee0ac29572267360c6ceac3caaea52d7386d1669413cec35603c3807a2219c50a1c465aca047dfd276392a4178de7434c7311bedab2b06713cb03a045893816edfe302420c96febaa44371ea70daee34c5ccf1f23c915efefc53903438f76d3c1cd3f1837f90d03d050d3c10002350a42a58b8926eaa724a70c664303a1d33f4dfe976039b7ff202f0d8da53a98d01d05cfe08a44c3e7b43a9dd59af303adfb0d9a9207f9c1ca83290ceaa0235911b6d8ffeda432a4323b29d8b7c0d04c03e176ffe1a2c348368e2dedfdc7bf4ccc1122394424ab0a071b6dc8562435d72903fc8848f888a70823afb13d292c1f1011f81d931c9afc8caf127ff2de4036d80503c9ca9bfdd352b4670c3d5161eb5f250e290172d645a6d4e1006c654ad18e67d103741764f6fa33ba0ae92af4bb8f800c1fda7a5c872f232c9d2dabf93442514bca0351269ed7ff95f5646a15cda58814938dc08a6645e492c822b96c592b8975919403bb587687b2d5a35a06a895fdf324f431d008560bb22f2c9441cf67eb5e3afbaa032d4b8d54f77975fb9d05ce4ef3124e0814ed012e2360144e8f007814c7aed8690381ff84c22c1700fa5c07dcc39a792e436685dbe00c5530eeb0a1869c12707ac505581e0355c3c8e02b6a7839dff5d9655b3286e958c2ffff616a49ac9bf5551c700405038a16b86eaed9913b4c71ccb1ce532d01ccc5758b761da69d6ba1e0e5abc8b04e03deaa7bbe71e31ec7ccbd5e5c700aa0455d31ecd52142d25c81499ff891c43afc05581e03561999e9a47a86b74944424616ea9dabe3250ed1d9126e325d026364400404031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03deac32fb38fb6e56d11825de5481680ad4396acc9b80c91fbd875f8d6007011bffffffffffffffff0395ffc95afd1f8d9ea60744253901d3dd8abc9d938b074ef13c1807b16b77125a05581e03e1360024d2ce95f29b8f2615e369fc5227897c11ef2f1fa253d7cb19c0040105581e03f74badee08a4e70611b7abc2f4629fe22732e5e9b8b0ea026c4b53a4100c0146befe6f67200003f666050a140c3972b9bf8deb8cb993faa141918d978c38603d1fb42240edb19303acca5b43dae9d089c714347a0bb21b647d3243dc53d425b5383416aebb0cce5a05581e03e2c53d67669930069a5352164436a072e31396814f6aad19a0020ff3a00c0347032a1a7b5928e804590df46003361161000c57610ab0565b60003560e01c34610cc2576323b872dd81186100e55760643610610cc2576004358060a01c610cc25760c0526024358060a01c610cc25760e052600060c051602052600052604060002080336020526000526040600020905054610100527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010051146100be5760c0516040523360605261010051604435808203828111610cc257905090506080526100be610ab6565b60c05160405260e0516060526044356080526100d8610b7f565b6001610120526020610120f35b63a9059cbb81186101295760443610610cc2576004358060a01c610cc25760c0523360405260c05160605260243560805261011e610b7f565b600160e052602060e0f35b63095ea7b3811861016d5760443610610cc2576004358060a01c610cc25760c0523360405260c051606052602435608052610162610ab6565b600160e052602060e0f35b63d505accf811861049b5760e43610610cc2576004358060a01c610cc257610120526024358060a01c610cc257610140526084358060081c610cc2576101605261012051156101c1576064354211156101c4565b60005b15610cc25760036101205160205260005260406000205461018052600060026101c0527f19010000000000000000000000000000000000000000000000000000000000006101e0526101c0805160208201836103200181518152505080830192505050610232610200610c1b565b610200518161032001526020810190507f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c961024052610120516102605261014051610280526044356102a052610180516102c0526064356102e05260c061022052610220805160208201209050816103200152602081019050806103005261030090508051602082012090506101a052610120513b1561041c576000604060a46102603760406102405261024080516020820183610320018281848460045afa50505080830192505050610160516102a0526102a0601f810180516102e0525060016102c0526102c09050805160208201836103200181518152505080830192505050806103005261030090508051806101c05260208201816101e0838360045afa505050507f1626ba7e0000000000000000000000000000000000000000000000000000000061012051631626ba7e6102405260406101a05161026052806102805280610260016101c051808252602082018181836101e060045afa5050508051806020830101601f82600003163682375050601f19601f82516020010116905081015050602061024060c461025c845afa6103f4573d600060003e3d6000fd5b60203d10610cc257610240518060201b610cc2576103205261032090505118610cc25761044f565b610120516101a0516101c052610160516101e052604060a4610200376020600060806101c060015afa5060005118610cc2575b6101805160018101818110610cc2579050600361012051602052600052604060002055610120516040526101405160605260443560805261048e610ab6565b60016101c05260206101c0f35b6339509351811861054f5760443610610cc2576004358060a01c610cc25760c05260003360205260005260406000208060c051602052600052604060002090505460e05260243560e051016101005260e05161010051101561051d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100525b60e0516101005114610542573360405260c05160605261010051608052610542610ab6565b6001610120526020610120f35b63a457c2d781186105e45760443610610cc2576004358060a01c610cc25760c05260003360205260005260406000208060c051602052600052604060002090505460e05260243560e05103610100526101005160e05110156105b2576000610100525b60e05161010051146105d7573360405260c051606052610100516080526105d7610ab6565b6001610120526020610120f35b6379cc6790811861069b5760443610610cc2576004358060a01c610cc25760c052600060c05160205260005260406000208033602052600052604060002090505460e0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60e0511461067a5760c0516040523360605260e051602435808203828111610cc2579050905060805261067a610ab6565b60c05160405260243560605261068e610b0f565b6001610100526020610100f35b6342966c6881186106cb5760243610610cc257336040526004356060526106c0610b0f565b600160a052602060a0f35b6340c10f19811861078a5760443610610cc2576004358060a01c610cc2576040526004543318610cc2576040513081146107075780151561070a565b60005b905015610cc257600160405160205260005260406000208054602435808201828110610cc25790509050815550600254602435808201828110610cc2579050905060025560405160007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60243560605260206060a3600160605260206060f35b631652e9fc81186107e55760243610610cc2576004358060a01c610cc2576040526004543318610cc2576040516004556040517fcec52196e972044edde8689a1b608e459c5946b7f3e5c8cd3d6d8e126d422e1c60006060a2005b633644e515811861080a5760043610610cc2576020610805610120610c1b565b610120f35b63313ce56781186108285760043610610cc257601260405260206040f35b6354fd4d5081186108b05760043610610cc25760208060805260066040527f76312e302e30000000000000000000000000000000000000000000000000000060605260408160800181518082526020830160208301815181525050508051806020830101601f82600003163682375050601f19601f8251602001011690509050810190506080f35b6306fdde0381186109115760043610610cc257602080604052806040016020610cd46000396000518082526020820181610cf4823950508051806020830101601f82600003163682375050601f19601f825160200101169050810190506040f35b6395d89b4181186109795760043610610cc257602080604052806040016020610d34600039600051808252602082016020610d54600039600051815250508051806020830101601f82600003163682375050601f19601f825160200101169050810190506040f35b63bfa0b13381186109a05760043610610cc2576020610d7460003960005160405260206040f35b63dd62ed3e81186109fa5760443610610cc2576004358060a01c610cc2576040526024358060a01c610cc2576060526000604051602052600052604060002080606051602052600052604060002090505460805260206080f35b6370a082318118610a355760243610610cc2576004358060a01c610cc257604052600160405160205260005260406000205460605260206060f35b6318160ddd8118610a545760043610610cc25760025460405260206040f35b637ecebe008118610a8f5760243610610cc2576004358060a01c610cc257604052600360405160205260005260406000205460605260206060f35b63075461728118610aae5760043610610cc25760045460405260206040f35b505b60006000fd5b608051600060405160205260005260406000208060605160205260005260406000209050556060516040517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560805160a052602060a0a3565b600160405160205260005260406000208054606051808203828111610cc25790509050815550600254606051808203828111610cc2579050905060025560006040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60605160805260206080a3565b606051308114610b9157801515610b94565b60005b905015610cc257600160405160205260005260406000208054608051808203828111610cc25790509050815550600160605160205260005260406000208054608051808201828110610cc257905090508155506060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60805160a052602060a0a3565b6020610db46000396000514614610cb1577fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564726060526020610d946000396000516080527f15124d26d1272f8d4d5266a24ca397811f414b8cd05a53b26b745f63af5ae2fc60a0524660c0523060e0526020610d746000396000516101005260c06040526040805160208201209050815250610cc0565b6020610dd46000396000518152505b565b600080fda165767970657283000307000b000000000000000000000000000000000000000000000000000000000000001743757276652e46692055534420537461626c65636f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066372765553440000000000000000000000000000000000000000000000000000b99ba1c24ff7f96081ccd1ad26ffc380e2cc4c73b87f99e7a0165fa980b3b9776b6d6c86c326770f6c25b6ef3f5528c1ce6dc99246faa6c29790347076961bba00000000000000000000000000000000000000000000000000000000000000017906987b5141f4b3a52bd45bf8cd1495b428ff72f3caefd1d670d9726103a7f003e37aa92f143407516e926e437d9361db7873a64f252f29729da47fdf40bac36403e28d2cbad69d594e46ed1f48c3c12e38ba586d1c60e97dfe4cbb7dda5e6b5330039b4d87bb8ce112fd7ec868bf6a6c3327f4cf5aa63955c5b06546ff1043fa906303f2f79323746238e136e16e48d8dfa819b633eb41ca61d555ab550a006cc319bf03d0613c90fc6c169f6e10beacc70b06440ba4c900dc9bc6d15462e0e1ea247965030807e5295e6200fa595e994114154098fb053cff0e2adb631fccbbadb8e36edf037c6a0a3392fe004dfc9a66c9a404805405f13521bbf638ff5543b7b5b945d2e5030a65cab520420c1cf937fd7bfd176f56ba081cebb4f6e05fcb6465efaa8d31d803a7a366e0b59dec1babb8421d2aec0091a6185828bf4a5b103f7d4eb2ea479f5203f36074e0fbb9984fc7fedd2ac9defbb9641213a9cdf1c3982bfbe89a24a47fb9039b49d29c03e014042510fa667f23a1dcb36e26b477f822048cdf109bbc9a95f6030612c0f21e4247fb894ee98eecb70912b7b9c7b850f6a30d8aa3073a83ae264f036155d56aa8fe3586d1340298501a121b30acfd5fb3597ab9b4f52533aee30d0d034d2517887d675c43e899733b47395c28f7905052446c5c0b3be1988d80cd6b1500582003de317c1470b691f442c7343ec69dee00f53bb6b43465e94777354a703bbfc0480853a0d2313c000000581f02d0d221919f9b0bb35d0abd6d72c4e2b693b87c76def8ac0e09af6167d55e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0278e25745f7dbb81f101e78d3b84a9773e9e4f5f2ccf5dcc5b6ebc4592e29480892d2fdffadcb9c00581f0214c468857ab4169059ad1b63eddc268cda25674e535d20cdc7855ac83ae65820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02bf15925fee91666adce0cabcaceb97c0bdfb88541c41b5ffef11917e08ad4b0468a3c46ce1bcad322b580219441800582003d247c45f3dcb9ad6d58500dd61b88f6439a2d21d5f6da8c8526f9497d8e6905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff030c1fa2f1cf2189d7219c83b98881a5cf2629d55fe9486ad81cac7a1432dec94e031136580c8be90d405c390b1f23a3c61fb192af841447c34ba080a0c863c4c8a90344d861470612fdb5393c7e7255307cab5b1165fe6de311690dd53cb29c96043a0058200358d697ce79a893e68246da891bd110310b565e9ef98e8eb5b8ed46762d2f804904e6cba83667c153b503bd2e576afb653990500e37f398f3b8685f5a54489390dfd3f7ded04a6130ee220392af427ba032fb3dcbe01ed4d4fa32793d1d15d00e917fbe452766d18a88b48100582003f2be64dc7ae62623b8424e5e8378500c164b53e591605b390b95c1175f17005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200321819cfa0b9e92a5d29d9979e983092203d521c7c626d85106afe626d5ba205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200377cef43cf7c0ded7ebed4c297e0d0430cc46a3a27a2d66d4b7ac2fa2aca6205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03d49c7630800b2d850788d2cd56d137ec306fa4d3abbc409acc87693c2be3866b0141080219ffff034900dd4d07af9fcb88a2f18815b256dcbc35f531920353377a3611135e1abe0103bfd192fe22a375e79f9080a5af32346e8817bde25e060e5c97aa77b958b725290317cee4a5084615a381b542151a393883edc675c5fcafe1868059b75366f2ba350382cd793ef2455fe137b12f200684ae1c25901bfaa7e4b9c19155f024db9aab51031506d86cce13fa7f53ec5fdc4ea5f203ba56230552e8d786c021be3bf8cccad60331f9888fd55cb5f8b2272253b6cc9d22d7a6a36c49158188927d2588901b8110032d38d11c310a72b1c55862052a373c10792c50354daad5df92a5b99827bf47f90394c0979359d558a03f88a3728b2d666205bb0022b8516ed36c1f8bb53f868a1803162ff0e12b8e9a51a3929f1e3f8b981d72c4af78c6e0aa9ce5de1918c9f9dfae0219ffff03d13fc45e36f642a480abe5ede91d14ef20e9e45e5248868d034d8bf20ca28cdf03486be69459ef728427fb765c8a05979d0fc6b5b242397240acabcec6214679b903df83bb5d33aec7fcd791ddf1208951e20a452ffa7576adecb7423e00135ef2b403a8b473c413aa3ec0b9ed62e02b1f900184afd0abb57ca4c47054c55eb207331b0306c6156139b42757c2805f730694c1a566817ca05b02bf8e70a57e9ba24074cb03a6d56c97fabbcaf12fd0b8d7ae0c528545963f6830a1307b7b767a85287e31d503475890a1d474676c0946a77730c38b9369c51fb105e994903797c424a2bb7e9703bd0374f92aeaae7786a0be5a2240a6ddc22ee63f7e1732d4333bc946adb91a710334c5159297352176dab7c491b9f63dadccc3bc153c24e7ab2fb16777d04674a1031526b1f522a0dcabccd89e1dade564df512e68e726d06604e2acdb09bf70d9120357f57ce0fc340f23b55e8b9894578474ddaaccdf71c11168e20c07ec9b8c5ed1031cd7b042cf996f5f20e990d025da8d7a2c383c51c6c8e792a6b2e5d1a535495403bf635c7a99bc3e5d6dc130c838b4f543cc79825afb8a412b8f6e942db5abe5a3031a8e5c0170e6f5f2724f0c4b7ef6897bfd128ccf48ca8f97782fa4c727f80bd001410c033b2206271ad90abde08dcae7719a9622ca658347a0bdd88ef7e24c59b248774c01410b00582003feb7d425eea17b1118885dd2e27a5dccfbd78f9c9c27dbfdd0138d90870c705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff037f27ceae784157484fad1ba45d44641af3ad8106e0325efcb87191351a8c8afc00581f021e3a9d29bdbbb0c90bfc6a52e48aeec4c0033f343c6533109a195e1c2633410100581f027e0ddbc6a49f0eabeaf472999f6c2c9a9ebfe6726a16d79857577df0453d493635c9adc5dea0000000581f020ab34139f8114ecf319aab45e14b5edcb1cdcb87ca8976da7bfd321202c54a01bc7a205f674c3f28a300581f0256da3211b65c28f87fcc784ff810a9eb9b5be8aa7a62c0dbadd0ef6fa1875820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f024d4b075fc3564b5c9195bd825fa009e525802fcdecf3e84b9d68deabb9ab4902b8af20046a2c074500581f02952e0a96d68b75730f5a898d8e2005129f4cc6ef22b23d77a5672a924f535820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219a11a030dab4ebf82b71790e97e9d2172c326301e9041024d8d525a7542189a362849be03ec4330a0d68cca7ab1337ff999656f6b043534eda76503371831ec36c9be7e7f03045545e6a98cedd5cac1c160b061beda8acb4e9778acd19dbc3b31a27a6bfb1a03fb3ddca126cb22390b317c6bd6d97612465adbdca7bf3af8b3c764107d478abe032412340e0339fae45a872fbe098731b9c6ade4a70f432f52b1ce3aeaf4b87f4e036e538f94244c09c10413a727f9faf0b12be45bf7bd918d3e123b319dc49b1faa0219dfff03a5618a2efd2b499f1c5cc038f9e72e758f0b5e1998bd17b89e4420520e2edcef039f8e335e099d8b943514d6765f8c0861c705d7c8780a54541ea23cd9c4402f8e03f2c5607948113768256dbe6a196e6e02d25ac5fbe913c8c1277a46844e9b488103c3a2373b2e3082eb10b739893d2ee4690965f681c4c539b894e5e384e58a542b031687cfa8fe02591ce162fae31825c3a58ea384f5755d3e9f22d65039bbacc63303d86127b16c109e62d2a78104b6bfb380780a6f2fb3b00d5d76d5d8cbcd689a300219ffff03878cb6add200647a9278b735f73ad5eef7d1e7073e10f8ab3d4c5aeb0a763a0f0381c637d9e133df37d23ae3bc42911a8da72cd76135ae4103ae3afacccf903f360396a2823677b6214b48257775741be16d6f1e7d156373340b18f6655ee3650e4d0366bb637d45f032ebbd50141a16d98d8cfb5dbef6127b72acdbd3b134cf223e8603f40bafb166a8fd25282d87b41bb8cf6fe98865476bc53937af3848a083b8c4ca03476cf54bbad471a68684cf44a288f9955bc72db3d8c58e5f5dbfd4bdc1b85ab303f053f3326d39d30e412593a87143bb794a2aa8aa499991adfffd87f9d83132ce03b15546fbc89dcc7a597c2825d03982881ab744ff0beefcf1f13b2281185dda62005820035019924d8b8a41645dd2e536caa858b3670e789281d118749cb3e1da2da9c04b047d8526bad3ee0e7579580309ea1358f685fe18552c1ea49dcabdc11653b997e4e643425bcfcf8eab862a620058200380478be86c09ae8b458ea429f5cf24db2ca62408c2f190e6a2eac1d8b20ee05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820037eb826a479b394b128693edea2e7eb269ca56349c53417ee06bdb8a5fbcb005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff033625afb3ce1e9f7940f87e9e1feb48049d9e89a91647bf38829c92791ffbbe85032024a6dd84b2461148859e8a35a2890cb8ed7cdcc36b515835b2e62703237501038419d603a6b6df83b8f650ed4d38442319ddb4f1ab2e1cda7d2769bf81689a900141000058200377c1e4235784d8e3acbb2636a93e998e5672b9ae58da9faa6f1a2ec07c34204810b8762b379358240302ae6ea2fc5aaab48333b59dfc33c5084fd25e0931775e78084ac11c0ce9c50e03f31dd38f9818c41436380e95800fb75c3350516e9fdf836652bd33941b1cf06703969587c51cad4b89c282559d5798de4a1fac26a4c02efadc2fb12d0a14054f7d005820033b0e587e7d1b12cb5d65929144fb39b51f264dd65a6b33c05b95baff1210d04961ade154d4ebd4136b00581f027e1b8af8d0f015c477400afae9b09d50436cfab58f0d112bce3ce36e4c954902b8af20046a2c074500581f02d40220f3725c141bfe15470fb89fe8bb95c3f4e72b3b86deb371b2c4039d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020c03b88a53228e96227f37a5257f1bc31648f2c5af833b28944f42039569ddea4ea903a1ca5244b40ca39583a5a2fdd78de7906896c6d28f578b036d67ff8bbfabf78a0219fbff037d58ce1b8723b55b2f64a23e31ab8e33cc438c5481072d310cffd65816fd2905030671c44f465cf12c951d97828e686b16edd1da84440c098b47c296c945e8ddf6030bef643fab607ed81842aaf4d6ba92ef628c039f3f80fca0eeccffe9fb98eab903232e808425ae428ec38c5e199ba022a0b16b87e961bbb61724e0518dc123fd5a039332460b012abbddbda9699069a0388b33a84cb2f414bf3d8c53e41174b51ebb03264f67e0e514cdc84a7b440d4fe52f46372bfad4a710f7f6846274bd9e35af1303bf367c5db7b577ab4e1d82cb53901f67e0a0edcd8b2e164a8748107c5b7bf235034af66424983551f570d7d1d899a9ca6650cecfd8e81e03d71fb3779c6c7a115c03659c726fb9e2861c2f5c1d13f15dc9c8fbca54e0fa948a88e57ebf3f430806bd0219ffff0392242198dff59a59c099648e291a899656a4db7b5c1af9651c5e17f283e3300d03a60dcde6bba959d1959cb10787ce281777085d7aa3038c82e977f5d1982972a203adb7b19f6b7b37cfe369d37d3eec24a0b7a04f9da55d4089c3725a1d0dca870903e8dca752f35d75fd1f1fd21156ef8c618e74e1b62d4b0536f55fc122fb2bca3a03fc3a70fca8e497670830f1a746a9442ec8e64219402726e34ef4cafb23666991036e9dca5d9147b48bab73792125c652493188c0bbcfcc92f2e0526b680a19a3b00219ffff05581e03de9c50c6e393c5943c662fc726f1e9a25b2d6ad4d1c3a349af3aab38a00701190df40219d3fe0307a0bf8faa340c0204a5dfcbbc2250712ce810cbbbba95ab54d2bf73c4bc9f480338beccf9daf3e3ec20baf9d201e0b9cd57f752c555137d5c0cbaa0f9ee6dbbc4030d94e3bfb8bc487479db9d2696497d051a1d75ef2387b6164a9d8477728acf8903e032d0e8037adb1965403a15be52ebf18c5a97c4b1ef5f82eb7190077d1ac66403cd6b56ddc26323be0c64083ef54c7da1310cac3266f1c1666b64b8c19d203da703ba8b521038f5852df99912299f48f17a04f982f4bbbf91cfd903a4fc89f3121e038d1c5bbef79871014fca41dabd9f711e61105a349d5db36950ab455c731056990219ffff031f893ae28a4fe11db546b54c1f4ebfe377fa53e7dd0e5d20cb87c7b1f461ef7f03338ac1493f9fdb5cf36b58ea540b97f0ddbf74175506493e03a04684422b7a9703c7fbb1aba14985f74509623c550149f8bc63713c145e02fb288b902e1144f5b203beb38bc54c1f5011e8aba7e988d4cdd97c7a9ed29b944f0c7a15ca493319b10903671c966dd0c8baae88c24257ada9f24e77d21998e9dfb3afb67306c1b9b15ac803f22d25a312a6c296d93f423d23951237d8f29f5d6e1ed344e006bd2f3555105b03e2cb2c47e00700e521b7bf276c885a7a7e44c7ea1c387e4414a840e7c5bfc95a033a43aa40b310011fb437a339da702d48dcafa660da351d47ede7176c17bd92aa037cc7579b83789f6b4e10c2d8c953d9b2434284fdf084654892e47650977ebb530327587273574947697de60476741840a625d2ab67ec27e1adad8853aaf205cc3a033ea7e02fa0d202e385a74a42608c1acb74c445202d8e7274197c5424c96176de03a0ca517cc9d3868b6837c412e67983f81d1f44817f2f8cd03db9a6aa47427c4e0219ffff03035ebe61a30c4dd1fe3072447ed3b9d8e8557cb8330c4ff8033dc9e619ece2010391822533798af5cdbcb38553c37e09b6ed05b92d83e44ff66d9472d387ea6fd003a6d6a0ce8fe56975e0756902cbc0ebe2af72740807597e6c1a7e3dacd267072d0317464b4cff62e1c166908bda1d73348621bcb1cc355226b3389b4f91305842aa030368e6307bdbecc40fc3d637b110b9328d9caeb1b7744fd0c50b88daa7a5fe5703fd2e3bb94f0547e5043423820a6514afcab129e584cf39fad45cb099bcd18f6103932c1db57d766be77262a0b70aa747fe8c48935e19581a991ecf3282d54995d803f05de801cd65b2cada2fe985a617f9b595862a22564a6aee5dedf890d5ba43920219ffff0351319da3adee69f946432f0d8ca6e59b831487832983c38462185e9e1949e1ea03e5a6cda3b55e1d141f3914770b76db1bdb37224637f516872c323b5009e3fe0d036c9c9d72841528813daee4e4d8d3f8a7527e1bc3e01821afb5b9a395b0f75f93034b769ab5a77a4b046654db4fb9e6f3ab96842881e90e844f6d6aaa5c3b67fcb8035fa9fe855da485d6a177335e9a919557d8f4fd73572155b7b01b2d03b4734b750333cb7c3612e693c4e7551e8c6b69575daa1a4ac94a817c87fe5e8537b6a81f3b038f82dbe496518d1990f32b3ee3d498c19ed805ba36dc445ed00b56c71458d7f703fbd5ecc3c6ed2c84766fd9850ad78a80553b7d4cb549805345d0a9d8753512a303155c72e332e66cfc5d06e2d5a5dbe7a974140c1ed193ce1ca2561b438e0d984203373acc4a35a7eab7f1a47a9f4c4754f7b0838df92a17c2318bd25a1fb2a2bbdf031fba04744006216ad1fb5ee3dc5a3b171a57b616ec01ffb31627f199bb69a0f003b5c7c4641ed3eed30af9a130e7c58518828007ec33df4af3bbb8b9391b0763730377c6039c71cce172fef63b28dee0185c0cc4e081882c33f9f87406a8fffe899e0309c24a1f8130e7609d58b76a3c1ea7fa3e44591b4f7572367798289070702aad03a132acc74481133b3496720a479f48e33c8569a31673a84e3ca3cb4290cfb4f10383d1aaba66024260cc75c4f9123efce91cab31a692edb8629156449a08b92a5403eb8ac19e38226c0ed84bdee4f457f8021ba35853ce3282696c3f4db60dbaf03303118c2b8f0c52d2c090ad8bfa4df739b7e86febc6ecde883294c74734b84520a303fb5e4cd039c077c908e6a726c406ea357852a6c144377b26c80a072152f0048703bacbbdf8b023c07e1668485b22f038f280c584ccd702cac1a50b559c65f09340033419b903bc6723a6f1554a35ae5975c0f5f8ba41404eedbfd7a4b65adcd93a0003e2208c03fb9561c2f522bec7b375bc1f4e7efccf86d0032a341bd1700011869903f8485ad4779b3440e56cabe5d1b1b4d55fe05c1d236821e585c5a1c6008b3acd0392a10b9f78915ecb01ea5f1eb9326ae423fa5d9ce8dc6d3da6ecc865892a8ee303c22a9f1dbb82f6291d9eeb3dde5af32759261c40bea0713fa50ebf4e02595a3b03b49127cfd69b05a49a8e76f5812d3cef664802747cc5e86da580b53a9509c1e8036352defa10e0e39b7f32970e288dbaf85e74474538ea4044f62cf3f961529e9003723d47b33e2e6de37679c1f10a3ac57fdb3b0519da80657edbf9a714221fce8b03c759336e37ebc686bf41a5cc7babc876177bd805ec6905ea31b8b3b02e861dcc03aec998bf162e26e7bc2b98b5067089cb8712e9b8f73a502d2a7305016efa3085036939b924869ef810b58707ada2ea642e1bf62b623aeca0f9112930f4fd834a6d0365b00ad42ed3dc49fc3c23a654ba0f4929e3689f4f43a5290f8d95353bbccda70398f106922caa42c3a17accf645fb0f2f81d72b6a987141ac0be88d2bc982222c0314f015e1b7828a5c2c5b48789a41829433ef69296cf1e2d9e25f3540681d8a19032b3c92bfe0952d225d0e6243e567e6c09690ab8c012a71b493925d0af033495803937296b99064489b46b8583a65f8624a1e9f8bf8f15f5edf8d0880d0286a776f036a91ff1e9a0aa88a33a6e632baeab832a7b71d3a685d7c15f72f994e6efa9973030de22ca878e06cb22b26da399a54e9d8b260030f5dea8abf353e35689ba5b3840328cc947005eeaaabfbc5f2ab493c2520174f2efeb543fcde2d6f1eef9bc710e3037de090006d022861d5b831f2cc41ae33540220574ae81317ae3b1ec36aa0680d04591567608060405234801561001057600080fd5b50600436106101ae5760003560e01c80636e79265c116100ee578063a457c2d711610097578063b091dab311610071578063b091dab3146103e8578063d505accf146103f0578063dd62ed3e14610403578063f27c3bf61461042e57600080fd5b8063a457c2d7146103af578063a6f9dae1146103c2578063a9059cbb146103d557600080fd5b80638da5cb5b116100c85780638da5cb5b146103605780638e4a83791461038057806395d89b41146103a757600080fd5b80636e79265c1461030d57806370a08231146103205780637ecebe001461034057600080fd5b80632c4d4d181161015b578063395093511161013557806339509351146102cc57806340c10f19146102df57806342966c68146102f25780635ff99e9d1461030557600080fd5b80632c4d4d1814610276578063313ce5671461028b5780633644e515146102c457600080fd5b80630a8ded1d1161018c5780630a8ded1d1461023957806318160ddd1461025a57806323b872dd1461026357600080fd5b806306fdde03146101b357806307546172146101d1578063095ea7b314610216575b600080fd5b6101bb610439565b6040516101c89190611117565b60405180910390f35b6007546101f19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c8565b6102296102243660046111b3565b6104c7565b60405190151581526020016101c8565b61024c6b033b2e3c9fd0803ce800000081565b6040519081526020016101c8565b61024c60025481565b6102296102713660046111dd565b610540565b610289610284366004611219565b610684565b005b6102b27f000000000000000000000000000000000000000000000000000000000000001281565b60405160ff90911681526020016101c8565b61024c6107b8565b6102296102da3660046111b3565b610813565b6102896102ed3660046111b3565b6108c2565b61028961030036600461123b565b610951565b61024c600281565b61022961031b36600461123b565b61095e565b61024c61032e366004611219565b60036020526000908152604090205481565b61024c61034e366004611219565b60056020526000908152604090205481565b6006546101f19073ffffffffffffffffffffffffffffffffffffffff1681565b61024c7f0000000000000000000000000000000000000000000000000000000062bd7a6781565b6101bb610973565b6102296103bd3660046111b3565b610980565b6102896103d0366004611219565b6109ec565b6102296103e33660046111b3565b610b1b565b61024c610ba0565b6102896103fe366004611254565b610c57565b61024c6104113660046112c7565b600460209081526000928352604080842090915290825290205481565b61024c6301e1338081565b60008054610446906112fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610472906112fa565b80156104bf5780601f10610494576101008083540402835291602001916104bf565b820191906000526020600020905b8154815290600101906020018083116104a257829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061052f9086815260200190565b60405180910390a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105d4576105a2838261137c565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602090815260408083203384529091529020555b73ffffffffffffffffffffffffffffffffffffffff85166000908152600360205260408120805485929061060990849061137c565b909155505073ffffffffffffffffffffffffffffffffffffffff808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106719087815260200190565b60405180910390a3506001949350505050565b60065473ffffffffffffffffffffffffffffffffffffffff1633146106fc576006546040517f625a43fe00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610749576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fad0f299ec81a386c98df0ac27dae11dd020ed1b56963c53a7292e7a3a314539a90600090a250565b60007f000000000000000000000000000000000000000000000000000000000000000146146107ee576107e9610f76565b905090565b507fcc88d6a52d0d804dfb8190af9a6e9b986b0ab82cc03960259053206463f7702090565b33600090815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915281205461084e8382611393565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8a16808552908352928190208590555184815293945090927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b60075473ffffffffffffffffffffffffffffffffffffffff163314610935576007546040517f625a43fe00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044016106f3565b61093e8161095e565b1561094d5761094d8282611010565b5050565b61095b3382611089565b50565b600080610969610ba0565b9092111592915050565b60018054610446906112fa565b33600090815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109e25761084e838261137c565b5060019392505050565b60065473ffffffffffffffffffffffffffffffffffffffff163314610a5f576006546040517f625a43fe00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044016106f3565b73ffffffffffffffffffffffffffffffffffffffff8116610aac576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f4ffd725fc4a22075e9ec71c59edf9c38cdeb588a91b24fc5b61388c5be41282b90600090a250565b33600090815260036020526040812080548391908390610b3c90849061137c565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061052f9086815260200190565b600254600090816301e13380610bd67f0000000000000000000000000000000000000000000000000000000062bd7a674261137c565b610be091906113ab565b90506b033b2e3c9fd0803ce80000006009821115610c4557610c0360098361137c565b915060005b82811015610c43576064610c1d6002846113e6565b610c2791906113ab565b610c319083611393565b9150610c3c81611423565b9050610c08565b505b610c4f838261137c565b935050505090565b42841015610cc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064016106f3565b60006001610ccd6107b8565b73ffffffffffffffffffffffffffffffffffffffff8a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e0830190915280519201919091207f190100000000000000000000000000000000000000000000000000000000000061010083015261010282019290925261012281019190915261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610e1f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590610e9a57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610f00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e455200000000000000000000000000000000000060448201526064016106f3565b73ffffffffffffffffffffffffffffffffffffffff90811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051610fa8919061145b565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b80600260008282546110229190611393565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040812080548392906110be90849061137c565b909155505060028054829003905560405181815260009073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161107d565b600060208083528351808285015260005b8181101561114457858101830151858201604001528201611128565b81811115611156576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146111ae57600080fd5b919050565b600080604083850312156111c657600080fd5b6111cf8361118a565b946020939093013593505050565b6000806000606084860312156111f257600080fd5b6111fb8461118a565b92506112096020850161118a565b9150604084013590509250925092565b60006020828403121561122b57600080fd5b6112348261118a565b9392505050565b60006020828403121561124d57600080fd5b5035919050565b600080600080600080600060e0888a03121561126f57600080fd5b6112788861118a565b96506112866020890161118a565b95506040880135945060608801359350608088013560ff811681146112aa57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156112da57600080fd5b6112e38361118a565b91506112f16020840161118a565b90509250929050565b600181811c9082168061130e57607f821691505b602082108103611347577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561138e5761138e61134d565b500390565b600082198211156113a6576113a661134d565b500190565b6000826113e1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561141e5761141e61134d565b500290565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036114545761145461134d565b5060010190565b600080835481600182811c91508083168061147757607f831692505b602080841082036114af577f4e487b710000000000000000000000000000000000000000000000000000000086526022600452602486fd5b8180156114c357600181146114f657611523565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0086168952841515850289019650611523565b60008a81526020902060005b8681101561151b5781548b820152908501908301611502565b505084890196505b50949897505050505050505056fea2646970667358221220c98a30972113e0d3de3d0251b915f91f6817c0880aa9ac6932e2dd2d6acd9ab964736f6c634300080f0033039d164ac1a2464649c83cf0b6f971200743e2b9ad63c6899ad6326f543466cb5a0317356fcc420bc2a75eb1de26f9b94fd94c63bf0788fe54b160e4daf04d21d3e203cd67fada919ac72df3637b104072d5d75a57eb56f1fdb674bb345c697a27980e03bcfeed109a23cbf31d914accfc73c325feb543ed015e6927ebcf681ca55065cb03498f6ef1e0509f2c029641dcab284646a2e07f0e257042b85f2a561d1025f94903b0543d9758c93b62ada63d5d7936dd4bd50ab9b0282e4342aa393776c4a8357903a657ed76196083521adddb103765f541f6f627914b6e8ff9286ee0cda1a39e8403bd8cf98bb604041313c980a95c013688e0a111cbd33526088b603e54ae229c03033ad998bde01b02ebb9b725f414560f85d76f9bc67003afdf83c33eacc75738ec0321d71478a5ad5ec3836e450a1674a7ffd3cee75ca941d133463d7f625daa5d3903b6e4cf1cd6fe1a95e7f3120e60720a7286fbbfe6c645eb4d86f2a833d764c1a1035b579c6a93fccb75913879fe136653c5b3ed603397bd13d21c6c5fb94c0a8eff039646fd1c2d2f794d6ebe94ce87b34349beed885c22732cb484af4c1c44fcfb1303809e7e0b039c464875a614cec4f805032672466cf513c0c457931bacaccc6f4b03c1cbcf655d9ccd1805b1725d1c578d3bccef37c4abef1bd9ab990f9bb796b6be0318e56bfec470c583d4b16f0d10e4e4a32179cdc4df6bb6b8760ccebb976ab420031bfd935cef5f5cbc2c8679936c48abd8e48f9663a82f557fc25c1d3dad926d6403fd52b7a1ca9f45d391eb2dd037ad4f1b187b0a455c0b40ba86ef3ed2ba67cee203b22e62ce31c2d0af576c7a6f2e1bbb52adf39c45c55c13aa841ce1b350108ec5032bc305d5ee7b2f32c9930a1d896502b3b6cda9cfacce6fe59fac29d6bee0798f038f6099d292ea2fc9907bf0ee93c898de5b40413c95350ddca7cda9446bcf2d4d032432d96849e11ed2fc7764cf58043c18da07db17a7858ac9aa384837eb9f0a0e036928781c37c4aad5ef2809bb791a43039a4ad268559fb91565c16e9761ece42003f7a1ab6451a065d5022820bf87f963edecc9239e941f47803e1505a29eace82303b8fedbc0298a614508170dd6647e1dcbcf14a8700237c22e1b43f7bd2396bdf3037bd5125c0948f3055f2540858ec2a470a99cf790f76263ca15ba8c9d6c23c3eb038f1921bb5d5b3ee0080234112101d72f1140015f1195cf52196e93a72ec6fe8900581f021ebf09deaf127d8c21681b44563b728150b587d23dfb2b5af4edac9ee9174902cada5de4e3bf48d600581f0291509508841d109f9fc77fb6a9f54d03c3b6f2cd2d243719e2012eddcbc7490bcba15a20753876fa00581f0208c96915c00dad700f5aec04e3833118efb81127013fc17752f42cda13fa46020ad263a77000581f0248485124a7b99a5976ffee2363b21fe1f31ff1231431b9d0accb61ed39f84b0161f77997cd9f6dc10eae00581f02207c3f95864b6a42feb5a52ed3beb4cc92dcf6d874b98fe4c9ebe4b3b4e44906d432b1e2d69ef9fb00581f021dd4080d4def52f5e789c0991d591ac2883a17e83fa7326da8345ebc7917492d99b7556472d6949c00581f02ef746278324f46ed870e8bb86a1e755915a8ebbc7fd27e19596fe322ebe7492949abd756b22baf42021994a90384d64be5dc3cb81180926c8ff702043b382f7d1530879af704153adeda9f7e780219ffff03ebdd438881bc4c816557070c5d72b68c7fa50a56536f357fedd5d97a1c8563f903e2750011e9f0bfc7b672b2833a9f615e6b9e3f16923dd32595d43f2db5df828c03a1b60e18084418bff26d6e7df95a12ce572615d8af89145f05c4ddb77df03e9803281277d7e4e20002744204e1108dd1eb81b2239f43ba630701b606e93415c94803d11b7d228273655911a9b6dd2877be099dbf841599254cd6768c04ca74befc94030f0ed05d15e1ed14a02859bbf6e9c7bbd15d47fc2148620edd9eaec806fe1e9e03cf9c3531946a939a6086e0a64f1780c25225fc6adb36f8b345b102ff0b3b002203384b5f0a5d5944d05a134aeaa16fb73f590ca03ce4c3c694a0384c65bfcd056a0301d783e9eeba33c3499105c75f98e7743b3647e75756903c0d63e10d7981d22e034d02ff733a9765b53417d13b73db6592a3e91c1cdef8dc95b3899e8b8d47669d0219ffff03de763e7606b25b649a2b8ac786722cdb2222c49159b165c59ea1df0ba7161d9e03b75bc7f71f285e4af3eebacf1278695f682632c9c248895b7b6fbfc6fb892cb503d2299ca59cba6c9f4573f980791f8082a6fbbcb42b329789ee057fbce939a02d03260e2029a2dff4ef9a311b760e2b7aee3c7917e80c767865e97bdd5704785772034e887aedd425214ee06722c918ecca5390f52be5cddcee2ec7d344aa8577ba1703ae451b75b94bc8d5504cf4e286c4d9adaf8845ba847143e46d02f48cf61058f503f01754f08ba0e2b1ef899cb5a968dac3138a1120d1cca20bb830572c5c20e4840392056d8ba4d948d4c2c76a81769a685a87d101af42feee78d6b7fab21dfa04a903ea4d39e8f519cd814532ce0552af030548a3aa027ce343b3f557db74a8faa59d031f9556b53003bf6d1bce62ed6fa085c1bc45358d13ffdd9293f25472b56784b30397c31ae78d44ae0f5d5b1966cf5f9f266998dff1e26ec6d4d86b0df4daf1b32b03a734cd822253ef2b9b80b4a0ca4856aedb5483cc466f9b08d7e4fdea5a96985603894571c325c53022a4ec2cd6ecfa72afad423f793a36d0dac4c602cf39a3e2db03b696950d2b19a765dfb1189439be76db981fa91f029b284ffeb0b9343964254203eae0ae787586da804cc5e664a28287fcd554fb38854944a4a5c412298c9982c4038235a69c17c2336e93280a47dcb0e96038a8499bc364c7b9d1898ce438a4dc2d03b8a9d63a0c86e87307c308c364638d1de190fd9c9d225ae7527d278346f2c7be033b96b57edda220b5f2c98543b31aa1b3a2b429c55cd299e34b4e92227281d650033157588c7da7c3be40785bcfbbab8fa6691d9337a1e79c756d14b0b5bfd4a262032bacffd2f7255eed5dad38a1bec044a54643514f97801f291bdcfa392459635f038ba9fcc7d583c1c18bdb19365cbf4847a19f507ad9af88495c7599326d7690f603b16e3cb6c689fa274b61964d6273e6f98396d363d82c9705425cbbccf85c927000581f024407c179c9f990517d243e9c3e78c2d73cf56413487578d39f8405a24dd65820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff039bf579be1360fa76ab4b5cf2fb079fdc912f3874c6c9ba69f8b4f323519bb16b00581f020b127f55a86bd51ad531e22e0714a960cd5febddae235aa2ab21266076305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02b021d6f5f50626efe82fcba90d7e1c0598ef4630dd956c2dc45b2b020ebe5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f022d06146d4f136c401ce7b16ba8db1faee3c2f7ba8e4032c188635d2fdeb45820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219d102036cef4ccec696e78fa8099152ee1200616670512bbbb7b8c3204cfef8064af49903e4d806984d3a07e69f42911c91a9ffe0c3951ab97ecf40da3813988d72e6f8160399addb48469e0c62368d79d0929decc1d71e8b1f1ddc229e1ea517b4e53c1b2a039928521d8de14107479968e9b5d239807cff8e7ff19d5f9ee9839fb23836dbc603d61853f643d2e93072e73c9fedb01154d8422f584697459691376f6861ccda4b0332c7d53f6857c3dd549a378908e266fba7e8c097e8088fe2106f041f0334340503f99b487ca431bfb16682289cb596feac647ec0d33e68035197029d973a5b2f4e0219ffff03d82cc748fa21d03c25569c63668e31cdddbdc3e9c4e20286068847d978e5140903eea505cea0444e7f7a2cb3b423415f760ac37a561668fdd9aa56d1a787f02128033ef6d019f432eea00045bf0d6234b185601ec8710c7e536b79a4607d77681813034a5c4e537b448ff7014d86df24bed733e2eedb1acc0622192cfbb7b6b70c68150219ffff039a1f9cee705cee3ff551390693b3e6fa91fb1459ab53943bee0bfc575af716cb03823cfbfa29179eb7b3761c166782dbf346af1ba6eb37848bf28f43b48d0f05fe035daea3ec8c82bf282da81950e594ac8450a823b83bebbf837c289107696ef3920360d47e901bce917be4482ee2af526404af1796a0cd64c46d1335127b22c2773e038034a3816d694f2d17f9ee563a2d44f51ae5a4eaf84506d36183dd016063bc4303208b0e701f66564b04fc7faa118c42ab5ec0129dd40994b46ad4174679f232430347cd81d5267f886bd87dd7566d636dad0a22adac5ff3e533a0edc7c1c045cc3203c5b019b6a54677ab73604be82ac5bf939c49a2cb62844a829d5c8212c301887e036ac5be644b01b163c520c60e18f0c1f658445544ddba5033e8b7e324ac1cf7f40303c7d742c921f2e65c7830701db52fd1545c302e0bb6bb0f45e5fcf0d221893403fb863aa35a2d7ce1785b45275f48b99d9a27f9cfbbc89c7f130cfb2bc1a471e403faf7c26b2eb05a24f2fc85b2ded033b40de107f29abbc7cec46261ddd6be637403722c6faddd027311204cdfff121f0e7e60e69beb857eb1b372877518860945d00302743528c7856f3d61f6f002b678ce1eaeeddea5535da6c4c94ad890a8e903cc03f6eee4706cc2f6e4baf8988b4234e213c8a6aa521a1927372995a4cdf10516fb036e6635fe97af7c4b0205aff29ec9171b4f4f4f76cf7e711213cc125af3628c9c03a0fedc9f298a54d93da2ef9f1465c91d0e0c3c600f832dbe429031725ae078000394f90593b53880f140c1c297f47b3121d9283a45634146a16562cb593ae9236c0356b52d4ff447e21eda29b4d4b8c561bb5c8f0df40dde49aa14622dac6eabd644032eb0c6d5e2d51bee0b3a8d79a56576af4579d144414a57652c7838b55ce802c7036d6af5441e53b4add3606f8f5ecc2dfb5ebabeef7e9cd5ee01e5d7b7b76645cf031096f9d9ebba26f18f6e01bf0823d1067987d87764f332e5472c4d67e8965ccf03e89779db4329f3b9ba8f71e0f6bc1321c0273fcf8bb7e7c2fd9ae289b90c5d7b03f0f7715bb798e9628f1fd4adc9fcae1bfd76bcba57245808379fb4188ddcb22303fd1b1d51ca3f79ba7a0df69d857aab869f3822d32aec21d04024b1d856dd4b2a038453ff793eab13ec185fd3e9fd6931ae16829097b91911f1033e05677613b7e703969028205ced45b94886a705a1da766072b170c07a5f896f38e567b15d39896b03b5de865f5e2c095d6c24f50b61586a0ba4240a6a8355b1e29202884c78011e8b03d1380f9f6b6468d97f8e5145c5123d8877e958c0fb7a619c51b2149adba498d103b93534b92c4cb8db0a556118580ff42b5c0250685a9a0dc9cfba45a4b89a986e03d7c95b8995838cc09ee2bfa38335b0d17adcd0d96731b838da49122d812c492600581f02763ce2c4ea831e766bec9178cc11da4fd1a3c57424aaafec0583638c3a545820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02885428dc5a291ea21d13d385126c2cc16f058ae9b859dda3649ece459cc6496c6b935b8bbd4021e500581f029c2d167613c3d78bc71e90955dc15617f4856bcc9f6b3ecad27274b2696a430ad35000581f02d074bf2a9119c58983a224841c67097f7c3e54f07174f22ecb6bd7a31476497be30dabe80771f58900581f0263de4256964c446510c3864da6eeb5d446031a162317dda6dd697695d56e4a019b38d3614767f2b32e021920d20219fffe0219ffff0219ffff05581d02fda02820a7563c1832c0d1daebebf19d74d707b5bcbcc76f2981da89070119156705581d0267d0a931746aef0c4d4a4764aed564e349bac38dbed3c38bb09076200c181f480de82722ee29e7f405581d023d70f21a907eaeaa1e789eede874d398f7bceefb3a7860cd4e5442b70402031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581d029c8a2814555d98adf56e94a3b5b91251c093c6f5ff0851c4cb42dc7007011bffffffffffffffff0219900505581e0323c75507fce5bfec0b1ca8330ef9ed521c23984bc76e689f9f6831f9000846029e8d60800003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03bbf7855621e8a65e48c7a92b315b8f94f9fa5de291aaf40dba3cd92d6007011bffffffffffffffff036fd50b2f77b3a04935496270df421d689b24bd67caa304d3888e1d4984cedee903f99af0b81dc988ac8cd1fca36090f280110777e0d6f9304383921260e7ac232703852179c171385ffc76ff608b2e384b168f999cb82f80c2ba801d8468e6b07a7005581e0388dfd5793e57236d9badb1a0bb4b6b3e33de9c9416a6890985056d374007011bffffffffffffffff05581e035df1b38a4b21de167db6af4a57b13898e1990e6ddd63eedae5354c5d1004010390cd96a42263ca28fac9e2b6e216c478c160048c10af8a1c9b74280df7d4faa305581e031d7bbff349c7b0cfa12f76174442932b641ff5c6e6b7b7d8daed63ca200c0547011c75e54ae20003ce9eeffd543a63982fb36c06941dc5f1c6f0b8c0dd9a0bdb6589b0308e04330605581e03af9e80fcc1d31d469a2d9ad2b6550193ee34e6de7d2e187c4ede679f000c0247452cc0bb6f35fe02199df80312398db349883f028415dc0eff409644658bb2e05f192b7d85506dc8c9566d3f0356d15a1ba666c179bb4125c332dc8bb74d2c4d362a043037a1a2d111e9c8739d03bd5549898056b30e66e5d1bf251938aa2d9910157857f0d900c200e198faebd60219ffff0219ffff0301f14b5c34b7d9b6c70395650e0ac7ae0f03ce2104d54c3419bab0073c490cda0364fb6b1bfc506e1c1741e78e94bb20ab2fabfaefcdc6bdc7004b68e2d4e24e4b03d2481ed1e75ffa593690ee8c7ed09bc745a5910641d45f80eb9c34303343de640219ffff0341686eb8e1dc426b703098af7ca51efa6f255656e21e9409a57bebab97eff2120219ffff03cd0fe1caf119aa4d59387be0e21b95b44469c6f39c953783b3362dc549048d88032a4ee22d0e8eb8ac999a05005ebc96fa3f5064bab6e53f3f58382fb4ac87e42c0311150ce3b936fafb0a1d56183707b42bd17dd0267fac38697727c146e0b5fe7203a72ecc1e24f6b2d4e3fb977f8d88e1c1ea5d85e017d851d62d8c8b4340c60fb903b1c6cac4c5bd3d311b7935b3e1bafbe2c607251c978f20c85a74bb26ac5399450384fb7351514ebb2d85ce9d50c5d2de1907abbe67b71620dc963a7109be1fa7a7038786a05282487795fce173855a3cefacf85c383394ee0de7e85ad25e494809850329c24527ebdac8c7f971ef1a024d9e4eeff92f4088b6871c6dee894aa2c483fb0348b9455295376a847cf2b93f7c771e4ed761c7e9a6cc2e18e750f2c38a802d3503bd3db8e44da8ee6afbf407ad37a184d00dd3c40cec0b1f32f90e2fdaacdbbd90038ad9ff297ab8a9a8cc4b668d98abf9168807e85fba88333213141b23c0664967033f18f0034da13a2890fc94d60240a042b716770575c8b8daf7ce283dd05230e0036f69a4fa3f4f89784ce3877d439756af0c833cb9d3f0f6d3f170af48cf8792ae0342936d2a63dfbdda5e3d5c75530d7248bec6ed41dc393f5c60fd4a7839479501033759fedc15f532cb1553b325e573670ed6a6570069badfbef9495b034ae14a3403c3f1423f5ad134e8eeba9a64e1ff1fecc3b9dda3cad8eac723925f4ef0bc46890354838f56b8a3a9ec45f4db1490b16c05df120ad4635f3e4da8b42b4a196e996a03d885e79324f3b4d2ef575512455d0cfbe0ac3bfa34157f54626d737f74f74487038065cdc9e319dec6adb29529a6d68113a7df4aaec9f38241c1f6a7d12079caaf0355604033623601f9df41feeccc381d746b2aa48ce9ba5d85da8e8b2000189a230351b946cc06c9120786e666dc8bc1e31056c753bb4c3e32a5c20432e5754969920355b6882de9a8d48f5b936fc3528e5246d3b66939e923ba770cb095f811dde2c4033e1d0d44ab57621abf8e765ea571bd03ed2916aff38e8d56f68dded2dc0a90340390ff8a8402ee947fdbce2648087b84098f49ffcaa2c8b21c5ad13fb9705841c403647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d03eb8594ba5b3314111518b584bbd3801fb3aed5970bd8b47fd9ff744505fe101c05581e03507387545ef073e2a36db006a3195367d76f502c6432bbe4fa9a83a7b007011bffffffffffffffff05581e03ab64ed7c8d6c05d7f39aaf00ec0c6b2e12f11aa8eed4d6a9a9fa7527e00c024702ed8b082803d605581e0301ba6df7642a9d6e9a7f867ec4d730c0e842cbd2d4b20049d30b6cfb800c034723b75188c94a0005581d0210aa60f2f472daebbf5a250c3674e810f9d34afc1d777d4424cc21310c1348050a1bc99cb7e1f605581d02a681a7eb26d68abdc8a7d08cc6adda7051af6c514533591ff7701a2e0c04476287937a78550802190108039e0a50083dabe3bf8e981fc662a08b1a4e7323aa7046424ad0fc4d43454bb67705581e03ffc333d8bc3d22d2d61aa5503dcc3c062b25394ff255e69a20d1b9c7000c0a4717990543e03b4405581e03138eb51bec36f3016f2931063bc18397d8db82db59a63846b93b52a2000c0248212f6db0f4408fa803ca1f88e02998b6b89a81e3c01f70476bfea551cc3bcb1b683bed8cd66d9c22ec05581e031ac277c392bbbd49b07be60f7db021ae16fd164c6687632a336f8442500c18244801176b31c7f2d82603b9a89deb60fed1a1bcc4cbcaa187884aebc85836f32fb7cdbe84d92a9b1ea284031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e0316bb5fcfbfb6342b578c865f7cabb87629a22b75b23618c8ff8295823007011bffffffffffffffff0219f2f503506c4e7bb28eabf1d691b058cf1d5947a8c83ba35d9e445a70b330d0e20c46c90367e149868ac5710f4f781ac1bed70a3e42b9c3cbc7ada54ce2664d8941bf49f203a3c8d2712537a32badbc74c24214fe3ae35aed8508d07bf1c9c778cc97e2ec8e03851fd489306c1e2794b7549ae2575fde641c0d4bee3466e4d5911f6c52e90daa03f456724f0e5dbc2a32a12a1a67ab32736ad0b231b4cd139bef58c8fcaa4e1bfe03c481f1f3c861e8b95a3a73a6c285c34dbc118c77bc99824c40f99c40f4b406b403450c175b955e32fe7ae41d2f7addad8d38085473d1e20f94506220d19033593703eab88085c0b7ee412425ef1db1d9a61c287d2876ed50615b3d639bb9c9cd520b03c27c36b84d04ffae14fbc7b4acf9d9f7fd2e6e55ffb2695055e3caf68e36d2aa03eb3c9ec92dd0624d130857f5f9c0abf316c0cf6557df4029870fff14fea68a1403d844b07bb93259fe8ac1eeae73a8c9ad0669ba4a29630b93472992b1ec372d9c032c1ff4df299d003d80785135c5633285e4a6cf646e1b3735f9bf4f23a096b85c03f44fa6481789fbe7066ac08eafcad5a391c072e7b0872e83f5d1cfc78b0965dd03bd5b10840c8e5c724658f0ff8784ecfa6f649c9e600a5529825b860e70138a24035fb3fae503d4cca63beaf19c739bc06cc83bcb006fd97d5187c1244c1a8b47ed0219ffff0219ffff03f22ff17b037269b2810371d0675794bbc7809b4a3b436a30b6ae52b5a81eb99703e4f63ef8733b377391b37428e61de97ff53af4b4fe23347cb838797cc589f5ea039941aa375d22effc455d7186e777e4a8cdd2c68af67bb28675b152b596fa7a9a03427b302a7393cdd53c12086f0debf9f9c4fbbd4b3931338a2e9ef04fd8d6758e03afdbfe893c74b40ff98c0fc87ebe07a74a6d02fb291d9be0e94ff64c43083db203ffa9138d66e6cc6307fa7ede4d63c9ba9626fc4aeb424db6174cb1fbb6b1b98203c84ac336425a2620e9155693d73d899b66532df71715154e4f777f02d6a32c8b0349af7628b7b0a5be5e8ac7558da8e548065fff42d2c983e1df34169134b47ad903f61330fbd496050a6bfb98266f081ba21df40e215ea8e4cbe688ab3ff57c8e900329412f2184d9b3f4393b4b62cd2d217cc68e290c7415e2cfb77915391d6ae6db03bab3cf959c5237f330e62cd4ae8c6353aa9292b53f31702dd113abd34755c72c0219ffff03b2085d29f0736db6fff3eaccec6fabfafc415589121332e73e6878b4666dae7403cfe878ac540f0c2d1c949d5ebf9dfef6760b9b35a19eaaab4a2062a5a280d80f03ce348fae323a7e94fa150ac2713e71439f16e3ba5f0ef8632a88869b27a680fd0351dc270b140a8d9e3d1f301db32c80fc25de3b5c4e37bdd257fa87be796ce0a103e8aaf3834c2ada61b1e774341a7db527de109cf26f6caee53fb2c5ccb7aa32d00341bcc90f98365e885154d0b343b686bcf51836ace16b5630da867538c4f546d903e0b5b2eb9735a6d55b0f3e26325431c5acd5ddcf45f4c9c30432b74f5e00dbf7030cc354cb45c082b780ec322ea692a1a91dc06d2e48e188f5ce122bcd59bc51490360ffb9660620c234abc93d912f3c5c39d5001f71558d3722ff2c20698c1a85a703a8d7efaaee227945aec253e0f84c13bd2c026eacf0a39d4a49e1680c453bba4c0219ffff0339ea297b56c970133abb462b87e3265c3bc63ef39019a31ac4d64c219c165cc703d7c105cb77f1962e8e369b8c3265855dba35c2c89ceacf578dc9fa9fdade6b5c037e5494aacb69486ddb03f648632cefa216681b49975c336a6781e30a0669e23903175e8a303648153a9be1e72ee6e201f8e2e57c977b042d1cb4da1e63c6f25eb3039f3e6ce77f795ea897c52cfe260c970225ab25e267a0b92637fa675dd871c21703a34412589ccaed3d9a47bda1a0ea5e9c7d85726c8b09015d7ca54a26622a5314035a8b20fbe3b7c007335b56416f31c1b78d349bef76c4121ed759a68afb4aa52c0351f568ed957b25f238174064d99724aad8a7a7a5df805ee6d32ee08326bf131e03a87928cead5328856f01dbe6c33a662837cf878169ad7f972e7fdedb511803ff034fc3c6a21cbdb29e69a647b1f8ea5153e052bf3f82247775aaf256e83c966e5f032294e1089fe2f438659a3bf0038bf9930b8567c4013a233d8e8f9f3f77921e4e031b7ca6c1664b0872b26cf493c1538604f26bf4d3b4e726f610b9a141f922277203734461694bd23949ffb97c209d73ca043c40df11f132faf922b92358ee31336a03069be3fb2fc9ff5ccbdfc26751b6498f440e6023015a4bfcf5d875b58ab8486e03c94571f889dfa684d5d0c3f4602784dec2e5174e53e27aa993aa8b4f455e777703b6777e984a6ab5a18b04515d33b5e9bf7c7686f2314256f063beeafaa3cda5e0037fd96cf5c0270976921ac3e0e3836dc4068bc107e2e9c9939ccc9d41f236e7ec030e6bf733fe3329f2538d83bfa40e8ecd0e8ad149c436f2724bf4669581d84fdb0326e7d41ed0f303a36f88006a9c03715c13cfc62a8b72fd4323db143dc064aba0030505d04e632f50a144e7fdb60cc2586ecedacdbc47ca12a984b0be6e95685a9c03b226331975580e216bd44193b60e517bd819f64a65bbc532fc7af9777eacda8d0396dcd6293164e0c8b7f4ba777c80478f9d3460a251228b282c4bad001e986127038b07bde5abd04b7fe0cf4db5545897b7c301ba5851ac2462311e02ba00c95e36031f557b29b9227afa46d9c70eae11217915c0a85c82998f88d3d166421100600103adb62951e6d4a76cb5ea92378b7e4ea8bcb1ace57adf40db7e852d81179b660603820e0b117db92504a56155c8980ba6d654aa89cbf4ac44f799e9e219889847640375a9205640c38323ee06624d1bfd0377841279f584ac1a335d99fd7b91df025a034e1604d47c752602df79ecceba8bf33edef23a970ccb0a029f83de061cb2acbf03d3dc634686d3f32c7457a364197e9dfc8b718860b204c5cd7ea31d9f5e99cf61031f2c5ae68ae79aef9a3be641c8b1fe2e838e23b1b258ba6b19e61987101316d105581d02fd4676e3f492cc6e81fa95c697861724d62626d2d9c1e117864218c5040105581d0223c0c4da82bbda30829e9dc56d9f4b8a5f298b88e1f429a47fc00d3f0c0848011cf7ffd1c21a3a0219401005581e03e08b05cd11ae1e61f1cc92100b091a2434e36e460470d57e140b6832400c0346752905f4a4e005581e036932f1e9b27a0e1cf43d20f97a765587ccf21d7d74e59770af6f943720084802c0d592c7e64400032158f68e726b5a5112ead4e5125b327ba8c09b309a136cd098493e9f26b959a405581e032fbde08c4e4e5d8f9080db1551fbece1b8168fddb89f0fe072ebf183500c04470400174e04600005581e032a0211555236e63aed07bb486d0cb003389b4752b0c8d4650a529026c00c05471f1994d554c6a505581e0319fdc9029abea4b55133d8c8490df63a539daf8f3bb77ca38692ff6850040105581e037905a0055ff67ed98072bb3382a333ea3197754a3ad5e77e48026e1710040103fd4e35eb7af833e26c3bef1f57529dd566afa2b55258b383a2cfa097547e479003b32a6395c759cc0bebe6992002b7cc6334dbdba53f9db43ed20342e4d4521b5f05581e03ab7ec5f06886cfb57a12ef5d95df488a3e176c3f5dd42f0b89f59cc95007011bffffffffffffffff03b7ee810d98aa0dd2173c24aa990f662697d57259be3d5b1121959dff25c655a00605581e03f4337ee63f0654625eefbc541315f4a43fa769b80d45e7e1183ee5ccb007011bffffffffffffffff0219fbb803042b1f3ec9a31761e1c6f484981e93c4c690292aa84a2617e32481dd3c9d7d37030caa69070a82e75f3204ee51c25488188869527b5ff7b8eb86aa87843c8d14cc0307290e2d92598fb6355a108618c61d5df81a823efa18b26428f2f22f4020b2120219ffff03bc67b920fb91c2741584c27209409240bf4cba20c5eb35efa5cdcffe8741ca9503363afd9c91068d77e615611ebd7ebe56eaf988d295cd89684e1f41366b2e258b037059f53fca7dc9a338e53f9873758f983ef7b7e6daed5a40b031f7e5d98d19a003af7328517e467dbf5713f509cbc2b66b12f8911a95d6ff8d335f875319de549303bac92b95881b10a3e6f811d0f5cf44201df044a84566eff394a6aa0586cd9186039ffd8d7effb285c096ca547ee987258b4e6e40b472578b767636a3315fc4a8cc03abbdb946d113a2812de4e6e33045353f37cd41a3808b0b736e85c5ca49778c08039cd4ac4ce4261c3d3bb3d3d2af989b2d94d91840c0f26d655ec1d81ebb7fd675035bcf4c766a3fb90d3b849e1ce4fb738c329a1edba393ac047b8599b9e6dfe8eb030b220835b3169018169112dac7f3129e6f21abc06fb917e8e2659b9e85e18ffe03248533cf4f2fda1ef078477aca3970b2db861b70dc44a1edd01a7359511cc16c03e62ad1d3daab2f1bc2c0f8bb5555a79a3c8c24e27b3c4b96be4202b7b3669f410219ffff0369493f825356e3760e3fd5ce270df233991116293cd111dd41a8f832e37aa9f50219ffff03ba116164f88f882188381968223b2a30eac38dce9cb38d2b3e626102c9fec75b032ecd2cb9506264d9e326901f8df2d9c019ddccda62b93a96778b52323a21a71c033ef8ae4cd7a240131254d9907625ad2d3616109d08815fbbfd5aee912acab2b2036aa54ca1e4f12f7f0207d3e512b4ce190bc18ccae85dd73565d9242eb5e7c6c10367137298c3e4e2417ff68e4ebe4ffdb74ba5179dc3e13ad20120d4ced736f2880387fe8a188b4085e889117efb56147000df2584874e261ebd91a67b8730f243ca034696100dbd46fc1e479fee8b9180286612cb8e16b20b2c08ea3527d60f2eae45032b17a4245266c210343c6639b092de9000e424e0e9acf66a3b61d1ffe640dd3203920d5f46626d635f1d7a43cee042624a6c09709a8c14b89bb5ab2b146d6c0d5e030fab4487e48932cface5c6f8f7fd9442edb41baf855a77dacb2919048d7644f703cc77e1b4bd4e8199ddc2959dc1625fce0082b7b32a83d972e2fd0fbf6798d74c031fe6641f5189ff828322246a612cd83fda09e9f81fd742aa3e4b37286f665532037d1bc5db7b606f57861bb385f04db2ab62102239ff9ab6428b040d7cc6e5628703bf42ffcaee78f61eddebc270599e38c2e6d486351b070737c401e2b11e8059050380a5139576bbd12bcb97a0de71575eee762669e6c875a08a37e25d5d571515b00219ffff035dd504a82366de9e93e394035f4b0d2ed888653cfcdd808c117d1d7a6fd1392e03133f3957e280519678ae086253543cb4cee3042563bc4e0e68e194a0be9b158b0381c0b5113c2e875404f7f151a8d4d7f55fd2ddc69b596d7e5ccb62270f1dd1a803a95dbf47e006c65e31ba241262da8c93d091548163678bc833dabce83d101188035ffb0ee38cba203f4e224a52e949b945349f0c4a241bd2eaddeeff9fff21fae60309647c8ab3d5f23d3773f7919bf1687e8dc6ead5b1b297997887616c9dcb860c032f4506521b7a1698090e185354dd4aa38f27286ee4c4a59ba4a601206d1c34b903e810715fe86de4265b246533b4e58b1f9ebb649e0549ed5ece2d9baecd99bd72035a10a9d1f24410978c37f58e04b2da95461678564b4b6f91dd8ab2d7da44dddd03915954e34e6c698f2bf52214ddff741f305f45318f43d04935ce2549a82946fa038178be298d20c53d566c9ac11bc816244a924cd7db3865bf198d4c97802e342e03b9c267199ab13fb77211cfdc0181296fa9e9374771f191075f446b7fcb48fa4903e8671af24aa9d8470a2c70b2cd05bce65792d67ec18dfc6a19e6fe7926078aad030a2fec5566348c600f1f9c0c912f4c9d2ee9b420a686feecf1e62adff572c33d05581e03d59cf0e0aeee95f08234c79d68f62135bdded6cda296cbf4aa5002d860040305581e031db77c68d4f50b39719624f507c9c57cda53deca2d5eedba1288ccf8f008471a5c30b29783e2031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e038d859be2d64d7f181c7a14eaca1d3f5a183f9b432e4bd16b20ad67383007011bffffffffffffffff03796d74dce7992442b1cabed6e46087ac871467282b153c08f1f87e5ee18b5a0d014109030400cc9e951c9886cd47b1ada3cdc5c5fe203c324137244bff2377ceac27de4a05581e03b79b71f4c9fcfc4f010da4ede0549734578c0166b4fae651b62c1f67e00847be8006458c3400039cfc0e80065f4f4a81d7d35be2db5e73b6cdfdfd4a036a51a3f861cffa10ced705581e03903a610e2a22001b9f2b2eee0acb98500355909eb537f34c96203455000c02470fa5c74972e000039daf0cc06e6165a9629c542b3f90f95c09ec09d6c0e74442064c65da02826c8f02192767037ad555e2bb682394a9f5bfe3f4863cd67dde70b4eacc387064fa698c28b1d5d503269197cea25dea0c1b5d8001d76b258fd340d1a4b1ab1e6ced9bb34999805e550310fc4d1d7dfc7eca1b429ff7e65e4925f3c1214ccd2efd276c86bf105139a3f003b4c0777a56737f4d90cd6564fc926bd39f6a9f7182a52e072e3ded9b5b658b5f034265e04659f8f90e785b0e964d0ce546cacc000ded1a130a358be3e7078c743e037c9b20daaef33f91307a521d7d71928df7f6cb375e6c97a4faecec1663602b8e030dcd63c21a180f8c69ee8e80e8f0c408f57faa54c2e7c935f6e788e6f0506a6b0359e75c5a668281f52450759631e519ca75d4fdbe63b821ea0551651aab981e0603cc6b01857f87f8344692abb74cbf30dd9ca188bf558cf77f44c99ca097da92cc0219ffff03b17581ae48dca8ae514116c06420939d34845a67521d7cd4a3defff9282b8966030d118e89d15b366e8fda6320078eedf8a6c4c61424869315b307c02fbb6bcb7303b943ded2380737668bc8df1cf093ac286ebd7daa19f00211991ec618678a7a20034707b964eb6cd7d634cfcc011112766a4bb8e3882540937e00ad410dd96201e103d6ab42afa8784d4f7d0b03b50548a004789ea5c01c701e3edc4fa8ea91da958d03f2a92a250018fd49c441c64b120d0033ebbc93c593a00c1fb8308bd264563d4c03d6021a04cd344f46a432095adac86e88b843948304b8743f6d3e8a49ad55fabf035adcbc6618676838b4ed400b06fc48d6376200a8659f987973ddc42712d616cf0219ffff03e6dfa196870242207c3773b7f99a2624aa557cd0fb562090b92142d8fa5e84a703b5c35bf2500b6241e413b7f28067edecc545cf0fc0908b39177e6bb535a11b8b037a791f294190d0873e07f2d15c656c6dac4a6d5ba237e2c268ac4b578baf4ff70376d78a382170707ba0945c922a0231b064f912629845c9709fbd972492c8fa2803757cbaf144b03157495925745103d908c25bf201fba8ed3574eb3bf7d216b02c0355b575a483df828241e40f3dcd6ae927f67349db7e5f1b9f6d6ed31a3b68194b0354499a7899a1e00dfb86eb5e4ad3bd7a9ee17a418c37f095ac74dcf5fbebe65803320047fddd1fdb882f46145453024ccced36ce8e7e57f58e6465e03f8dda40ae03fd07c6f62e5432bdeaf927e157c786b51e5baca8bb9f06fe07f55bedf33fc7a5038c49ed210f019d5ab1b93a9362bbf116d29d9047d9232b17518ad6b74801fd3c03fd528617c57e6b371f534e9c23b9bd72522799d11b26c6190916b5f6776231870389586cb59ba56cb280800f0cd69e21b9799fb02615721c802ecf12be7934ad8b03f58be70ee61c0286a499e6c11f4aab0160be4f155684e496f802904f9485468403b787b297e00f42cbe308a7e02e724680cdb3ee663b0b2c71b115bbd8688776f80219ffff0319a8807d6158f0c31b368125618a42661e07458f5bb468d4f7ca1e79c6b4501603fc02aa8dfec23ff506c36907d4ffdf4a374e4e7cb0b7d9184fe49d6440e0185d032fd1b9b1ba0f501054c3a9ae1cfb04881fc634b3e41c79d57b0ec5c05454330d03aea1a8833d51955c3829b4910a37a1d5096c504ec0e6640d2d9dffbc4791922c039f97bf8f911c1568803c3d67aa53f2b07daa1a69dd5bc2d9129f65cc8abf0ba203e7b0e1744f2680ed2b34f553c610890562d866b995b64c6c6fa6485b690e9c8c036c633fe2f66ec7676493d483d2a51f97bd0e85da43f9518a9ebfd1c163af9c3003cd6455dae0cdb2897605071cfb821bf6bc60c194b08f0ec33ff5e2a2ec874c0e03d795fab4f90d67c3ddf64b9fb058b9804e06ccd60890c797472b346f56e10d270324cab35f0053a15aa61387d5860adb13241d2b0a24f6ff7f3bdeb87e62acfc9103e4becddbc99c657c13122a0cdddec465834f67eaf20bd5b84e6aef0edd400944035063d42e910208a3681a58f4e93ef269676dc42e9e91816612496ce840c8a178039e1368bd5d36b6e9749fbf15db02d0c0d0c13c7d967ef9389e36699687ab31c6031d4556542716986e0fb674664212ce6db56e456fe8adb5a250a709fb7d473d2103111c1cb0ff74d041748cfe63f77eaeff39211105c09e408b2b8be9ed3770ff550315dd823230acb264cfed0de85ab43551ed6710dd9e0ab8a3c58a65a8ae8807e80343b6c52b87279225d11855e136249e41bbcd7ebfd95c43a02131d12b0476961203df1cb07c2b8e780ef75cffd84f7c2d638d43e619c08886a45fa637b59a8b8e900312ed50bcb59923332cb1d0792f11e1d6878b765e3cfd9127923743f2ebceb2bb03dbf2539b4f6ffe7791997a13afd768d75adfa7010b0aaad4997ad07fce9c1428033f7ce8563d0e7de3599c08290b1846da847cb08b2bddf4a9bab56e474b00ed6303df7b5fbda1fba8c345cdcc2d65f951254a819f80541694ddf0b89509132a4e5903692e7971929061444c2f9ab6a7cb19f484e4449cc75cd7d9c87a8cad150226b7039a04c4d0235ea0ac344d0acafcffa3936afb2691296592c17be84fde84711d88031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0306077214b0832f05511366c3e046a157d893007cb4ebdab7aa453b733007011bffffffffffffffff03f0e05269bbf791c5b19b9fbd4dfd3d4aac82bf7eac840e4ddeb4fd9af5414b5205581e03e09e5de634925e74a569714954c17a2a8b6d1903a00b13a9f2d3e3fb00040105581d0274737daf89d51148a5e881ebf366e828386bdb38848e3272fd361d790c044707233e722c9494045931e1608060405234801561001057600080fd5b50600436106102d35760003560e01c8063782d6fe111610186578063a457c2d7116100e3578063bdacb30311610097578063dc6663c711610071578063dc6663c71461058c578063dd62ed3e14610594578063f1127ed8146105a7576102d3565b8063bdacb30314610553578063ca15c87314610566578063d547741f14610579576102d3565b8063a9059cbb116100c8578063a9059cbb1461051a578063b4b5ea571461052d578063b4f56b2614610540576102d3565b8063a457c2d7146104f4578063a8a778ae14610507576102d3565b80639010d07c1161013a57806394ac91c61161011f57806394ac91c6146104dc57806395d89b41146104e4578063a217fddf146104ec576102d3565b80639010d07c146104b657806391d14854146104c9576102d3565b80637adbf9731161016b5780637adbf973146104865780637e0c17921461049957806380edef8e146104ae576102d3565b8063782d6fe11461045357806379cc679014610473576102d3565b806337a30bbc1161023457806345791d19116101e857806351e238e3116101cd57806351e238e3146104185780636fcfff451461042057806370a0823114610440576102d3565b806345791d19146103fd5780634b3161c214610405576102d3565b80633f22a488116102195780633f22a488146103cf57806340c10f19146103d757806342966c68146103ea576102d3565b806337a30bbc146103a957806339509351146103bc576102d3565b8063248a9ca31161028b5780632f2ff15d116102705780632f2ff15d1461036e578063313ce5671461038157806336568abe14610396576102d3565b8063248a9ca31461035357806328a4aeaa14610366576102d3565b806313af4035116102bc57806313af40351461031657806318160ddd1461032b57806323b872dd14610340576102d3565b806306fdde03146102d8578063095ea7b3146102f6575b600080fd5b6102e06105c8565b6040516102ed9190612a77565b60405180910390f35b61030961030436600461295c565b610674565b6040516102ed9190612a63565b6103296103243660046128cd565b610692565b005b610333610755565b6040516102ed9190612a6e565b61030961034e36600461291c565b61075b565b6103336103613660046129e5565b610831565b610309610846565b61032961037c3660046129fd565b610867565b6103896108c9565b6040516102ed9190612fe7565b6103296103a43660046129fd565b6108ce565b6103296103b73660046129e5565b610944565b6103096103ca36600461295c565b6109bc565b610333610a1d565b6103296103e536600461295c565b610a23565b6103296103f83660046129e5565b610b0e565b610329610b22565b6103296104133660046128cd565b610be2565b610333610c9c565b61043361042e3660046128cd565b610cab565b6040516102ed9190612fb2565b61033361044e3660046128cd565b610cc3565b61046661046136600461295c565b610ceb565b6040516102ed9190612ff5565b61032961048136600461295c565b610fcd565b6103296104943660046128cd565b611028565b6104a16110e2565b6040516102ed9190612a42565b6104a16110fe565b6104a16104c4366004612a21565b61111a565b6103096104d73660046129fd565b61113f565b6104a161115d565b6102e0611179565b6103336111f2565b61030961050236600461295c565b6111f7565b61032961051536600461295c565b611272565b61030961052836600461295c565b6114aa565b61046661053b3660046128cd565b6114f4565b61032961054e36600461295c565b6115a2565b6103296105613660046128cd565b6117eb565b6103336105743660046129e5565b6118a5565b6103296105873660046129fd565b6118bc565b6104a1611910565b6103336105a23660046128e8565b61192c565b6105ba6105b5366004612986565b611964565b6040516102ed929190612fc3565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561066c5780601f106106415761010080835404028352916020019161066c565b820191906000526020600020905b81548152906001019060200180831161064f57829003601f168201915b505050505081565b6000610688610681611a00565b8484611a04565b5060015b92915050565b60085473ffffffffffffffffffffffffffffffffffffffff163314806106cf5750600a5473ffffffffffffffffffffffffffffffffffffffff1633145b61070e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612ec1565b60405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60025490565b600b5460009074010000000000000000000000000000000000000000900460ff161561078c5761078c848484611b13565b610797848484611d62565b610827846107a3611a00565b610822856040518060600160405280602881526020016130e16028913973ffffffffffffffffffffffffffffffffffffffff8a166000908152600160205260408120906107ee611a00565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002054919063ffffffff611ef816565b611a04565b5060019392505050565b60009081526003602052604090206002015490565b600b5474010000000000000000000000000000000000000000900460ff1681565b600082815260036020526040902060020154610885906104d7611a00565b6108bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612ba2565b6108c58282611f3e565b5050565b601281565b6108d6611a00565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612f1e565b6108c58282611fc7565b60085473ffffffffffffffffffffffffffffffffffffffff163314806109815750600a5473ffffffffffffffffffffffffffffffffffffffff1633145b6109b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612ec1565b600755565b60006106886109c9611a00565b8461082285600160006109da611a00565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61199f16565b60075481565b600b546040517f5518948800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635518948890610a79903390600401612a42565b60206040518083038186803b158015610a9157600080fd5b505afa158015610aa5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac991906129c5565b1515600114610b04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612cf0565b6108c58282612050565b610b1f610b19611a00565b82612151565b50565b60085473ffffffffffffffffffffffffffffffffffffffff16331480610b5f5750600a5473ffffffffffffffffffffffffffffffffffffffff1633145b610b95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612ec1565b600b80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8116740100000000000000000000000000000000000000009182900460ff1615909102179055565b60085473ffffffffffffffffffffffffffffffffffffffff16331480610c1f5750600a5473ffffffffffffffffffffffffffffffffffffffff1633145b610c55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612ec1565b600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6a52b7d2dcc80cd2e400000081565b600d6020526000908152604090205463ffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6000438210610d26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612d4d565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600d602052604090205463ffffffff1680610d6157600091505061068c565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c6020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860181168552925290912054168310610e395773ffffffffffffffffffffffffffffffffffffffff84166000908152600c602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9490940163ffffffff168352929052205464010000000090046bffffffffffffffffffffffff16905061068c565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c6020908152604080832083805290915290205463ffffffff16831015610e8157600091505061068c565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8163ffffffff168163ffffffff161115610f7557600282820363ffffffff16048103610ed1612892565b5073ffffffffffffffffffffffffffffffffffffffff87166000908152600c6020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046bffffffffffffffffffffffff169181019190915290871415610f505760200151945061068c9350505050565b805163ffffffff16871115610f6757819350610f6e565b6001820392505b5050610ea7565b5073ffffffffffffffffffffffffffffffffffffffff85166000908152600c6020908152604080832063ffffffff909416835292905220546bffffffffffffffffffffffff6401000000009091041691505092915050565b60006110058260405180606001604052806024815260200161313060249139610ff8866105a2611a00565b919063ffffffff611ef816565b905061101983611013611a00565b83611a04565b6110238383612151565b505050565b60085473ffffffffffffffffffffffffffffffffffffffff163314806110655750600a5473ffffffffffffffffffffffffffffffffffffffff1633145b61109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612ec1565b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b6000828152600360205260408120611138908363ffffffff61228116565b9392505050565b6000828152600360205260408120611138908363ffffffff61228d16565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561066c5780601f106106415761010080835404028352916020019161066c565b600081565b6000610688611204611a00565b8461082285604051806060016040528060258152602001613187602591396001600061122e611a00565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff611ef816565b600b546040517f5518948800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906355189488906112c8903390600401612a42565b60206040518083038186803b1580156112e057600080fd5b505afa1580156112f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131891906129c5565b1515600114611353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612cf0565b600b5474010000000000000000000000000000000000000000900460ff161561143757611381823083611b13565b306000908152600d602052604081205463ffffffff1690816113a45760006113fe565b306000908152600c602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b905060006114258285604051806060016040528060238152602001613072602391396122af565b90506114333084848461230a565b5050505b6114418282612574565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fed0632d0be8a77d1cd861e2e5f035c6684bad17c6bd6850e2d3621c6542d140d8360405161149e9190612a6e565b60405180910390a35050565b600b5460009074010000000000000000000000000000000000000000900460ff16156114e2576114e26114db611a00565b8484611b13565b6106886114ed611a00565b8484611d62565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600d602052604081205463ffffffff168061152c576000611138565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff850163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff169392505050565b600b546040517f5518948800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906355189488906115f8903390600401612a42565b60206040518083038186803b15801561161057600080fd5b505afa158015611624573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164891906129c5565b1515600114611683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612cf0565b600b5474010000000000000000000000000000000000000000900460ff161561178457306000908152600d602052604081205463ffffffff1690816116c9576000611723565b306000908152600c602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b9050600061176782856040518060400160405280601d81526020017f706f6f6c5f6d696e74206e657720766f746573206f766572666c6f77730000008152506125d5565b90506117753084848461230a565b611780308686611b13565b5050505b61178e8282612050565b8173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fbe70a233924923d3d70cfd3c5c22c22f0a43c6df422cc029140e80684f7b70eb8360405161149e9190612a6e565b60085473ffffffffffffffffffffffffffffffffffffffff163314806118285750600a5473ffffffffffffffffffffffffffffffffffffffff1633145b61185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612ec1565b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600081815260036020526040812061068c90612630565b6000828152600360205260409020600201546118da906104d7611a00565b61093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612c93565b600a5473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b600c60209081526000928352604080842090915290825290205463ffffffff81169064010000000090046bffffffffffffffffffffffff1682565b600082820183811015611138576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612c5c565b60006111388373ffffffffffffffffffffffffffffffffffffffff841661263b565b3390565b73ffffffffffffffffffffffffffffffffffffffff8316611a51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612e64565b73ffffffffffffffffffffffffffffffffffffffff8216611a9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612bff565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611b06908590612a6e565b60405180910390a3505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b5d57506000816bffffffffffffffffffffffff16115b156110235773ffffffffffffffffffffffffffffffffffffffff831615611c605773ffffffffffffffffffffffffffffffffffffffff83166000908152600d602052604081205463ffffffff169081611bb7576000611c27565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600c602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611c4e8285604051806060016040528060278152602001613109602791396122af565b9050611c5c8684848461230a565b5050505b73ffffffffffffffffffffffffffffffffffffffff8216156110235773ffffffffffffffffffffffffffffffffffffffff82166000908152600d602052604081205463ffffffff169081611cb5576000611d25565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611d4c82856040518060600160405280602681526020016130bb602691396125d5565b9050611d5a8584848461230a565b505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316611daf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612e07565b73ffffffffffffffffffffffffffffffffffffffff8216611dfc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612b45565b611e07838383611023565b611e57816040518060600160405280602681526020016130956026913973ffffffffffffffffffffffffffffffffffffffff8616600090815260208190526040902054919063ffffffff611ef816565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082209390935590841681522054611e99908263ffffffff61199f16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b06908590612a6e565b60008184841115611f36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107059190612a77565b505050900390565b6000828152600360205260409020611f5c908263ffffffff6119de16565b156108c557611f69611a00565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152600360205260409020611fe5908263ffffffff61268516565b156108c557611ff2611a00565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b73ffffffffffffffffffffffffffffffffffffffff821661209d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612f7b565b6120a960008383611023565b6002546120bc908263ffffffff61199f16565b60025573ffffffffffffffffffffffffffffffffffffffff82166000908152602081905260409020546120f5908263ffffffff61199f16565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061149e908590612a6e565b73ffffffffffffffffffffffffffffffffffffffff821661219e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612daa565b6121aa82600083611023565b6121fa816040518060600160405280602281526020016130506022913973ffffffffffffffffffffffffffffffffffffffff8516600090815260208190526040902054919063ffffffff611ef816565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902055600254612233908263ffffffff6126a716565b60025560405160009073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061149e908590612a6e565b600061113883836126e9565b60006111388373ffffffffffffffffffffffffffffffffffffffff8416612748565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611f36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107059190612a77565b600061232e4360405180606001604052806033815260200161315460339139612760565b905060008463ffffffff161180156123a2575073ffffffffffffffffffffffffffffffffffffffff85166000908152600c6020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8901811685529252909120548282169116145b156124415773ffffffffffffffffffffffffffffffffffffffff85166000908152600c602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff880163ffffffff168452909152902080547fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff166401000000006bffffffffffffffffffffffff85160217905561251d565b60408051808201825263ffffffff80841682526bffffffffffffffffffffffff808616602080850191825273ffffffffffffffffffffffffffffffffffffffff8b166000818152600c83528781208c871682528352878120965187549451909516640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff9587167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000958616179590951694909417909555938252600d90935292909220805460018801909316929091169190911790555b8473ffffffffffffffffffffffffffffffffffffffff167f3eaa1c4be29b4a4c60e00300b5a17a8ec6c982b5b0ad5870cc84ebdc3b24d68e848460405161256592919061300e565b60405180910390a25050505050565b61257e8282612151565b6108c58261258a611a00565b610822846040518060600160405280602481526020016131306024913973ffffffffffffffffffffffffffffffffffffffff88166000908152600160205260408120906107ee611a00565b6000838301826bffffffffffffffffffffffff8087169083161015612627576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107059190612a77565b50949350505050565b600061068c826127aa565b60006126478383612748565b61267d5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561068c565b50600061068c565b60006111388373ffffffffffffffffffffffffffffffffffffffff84166127ae565b600061113883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ef8565b81546000908210612726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070590612ae8565b82600001828154811061273557fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b60008164010000000084106127a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107059190612a77565b509192915050565b5490565b600081815260018301602052604081205480156128885783547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80830191908101906000908790839081106127ff57fe5b906000526020600020015490508087600001848154811061281c57fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061284c57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061068c565b600091505061068c565b604080518082019091526000808252602082015290565b803573ffffffffffffffffffffffffffffffffffffffff8116811461068c57600080fd5b6000602082840312156128de578081fd5b61113883836128a9565b600080604083850312156128fa578081fd5b61290484846128a9565b915061291384602085016128a9565b90509250929050565b600080600060608486031215612930578081fd5b833561293b8161302d565b9250602084013561294b8161302d565b929592945050506040919091013590565b6000806040838503121561296e578182fd5b61297884846128a9565b946020939093013593505050565b60008060408385031215612998578182fd5b6129a284846128a9565b9150602083013563ffffffff811681146129ba578182fd5b809150509250929050565b6000602082840312156129d6578081fd5b81518015158114611138578182fd5b6000602082840312156129f6578081fd5b5035919050565b60008060408385031215612a0f578182fd5b8235915060208301356129ba8161302d565b60008060408385031215612a33578182fd5b50508035926020909101359150565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b6000602080835283518082850152825b81811015612aa357858101830151858201604001528201612a87565b81811115612ab45783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60408201527f6473000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201527f6573730000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201527f2061646d696e20746f206772616e740000000000000000000000000000000000606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201527f2061646d696e20746f207265766f6b6500000000000000000000000000000000606082015260800190565b60208082526021908201527f4f6e6c79206672617820706f6f6c732063616e206d696e74206e65772046524160408201527f5800000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f4658533a3a6765745072696f72566f7465733a206e6f7420796574206465746560408201527f726d696e65640000000000000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360408201527f7300000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460408201527f6472657373000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460408201527f7265737300000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252602f908201527f596f7520617265206e6f7420616e206f776e6572206f722074686520676f766560408201527f726e616e63652074696d656c6f636b0000000000000000000000000000000000606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201527f20726f6c657320666f722073656c660000000000000000000000000000000000606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b63ffffffff91909116815260200190565b63ffffffff9290921682526bffffffffffffffffffffffff16602082015260400190565b60ff91909116815260200190565b6bffffffffffffffffffffffff91909116815260200190565b6bffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff81168114610b1f57600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365706f6f6c5f6275726e5f66726f6d206e657720766f74657320756e646572666c6f777345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654658533a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f777345524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654658533a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f777345524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63654658533a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d6265722065786365656473203332206269747345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122040b1d5732c99ad1b09fdae93eaa09ad2c9755c5608f20330fe589d176288ef0664736f6c634300060b003303c4d674825c9db8e6d2fbff35c731005e7b9d49c3bde7092e46a6ce58bb711fd6037678ae215d2749cd7a04c1161e2b17d25649406cfc57fa65b0c5055f46ee235b035da54a42cd9a98a0f83e525f16899f1115504f009295962ab4bed823ce8e0a41031045ad9fff9b7b20b03e1408d9944ba04ed871219a3b7ce2011b87831c1df1d503bb43c7277d509a3b144427ae9cca046ff0d72042e7deb51e89f0becdc41b257d03565bd2428c5e28d721957d67d7e316ec799b7198231806bcb443a10b2a3849fc036ef6148b144088224057c4a246d6c73529ec3c6b337b07f304e09a27d6fbee690371f1077c85d4fb364583357b1607526a4595dc26cb1d83e476f4371fc6fe54cf037b5d8be15b27f43a7787b8f207152f5e30c2ad73dc3d5a6ea57b89dc07ff5f3203aaaf088f99b281250902f67f76722d5b883f6ecd4dbb8fac41b2f348d860758e03c7bbfced57f7995e9c8032d92b5fbaa25c1b2ea5926f9f154308c726259acf490314ea85745219e5cd005497dfa25bcee53695b191a74480fd9cb38864b2e5558c0333f75b947282de2c762bff9c166ddc274ae89927835e12b988b94de69cabc0dc03482b16c239ada1809479fbbdacd19700a5a9de7533116d2bdbc2a03226625a3503e3ca5d6b4d45fd390655f539072f84cf5d7004df1bf360d0c8ed8e661c0b04bc03409b4ac4c2cce7f8d433914714d92c104297c8571e84446fbbb834ff4eba4acf00581f037d99781c0c52e1aef47ac7fe0a5612515657de8b7cb38d76c5c20a2fbd404d01cda892bfca250000011af4f5033538a42d883172c02d8093e37df12fedd7b9c70e4bea4cff274d7e1e541acf1c00581f034fb37bdbd64b3fb3320749b4655bae0a948eac7df7b87b55189461f22ff04d08e33072f9b69a000000e639b200581f035017e2b555394afd677d89f583cff488f488c928b787d1c50ca0a0bf1a3045010106b8d200581f03b290af37d9a415f0bae8533915977a6319a829127bd39cd949822e6822f04f020f42394cb4ec6d11b0110104c09900581f03f6a88960f3e7028c3728b36f73ee9109637db5d4376258882f5a7e446f704e2d3b4839d7018c687c8500e0f36003da98050108096de2564f4d7df451b12e18e3f97fe979cdc5e27ec92a18371d1000581f037a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db905501853d955acef822db058eb8505911ed77f175b99e03b6ef32a900b91e7792a705bc345602f944e1b5c863759daea42b13bf523186c4038aebb7d715143022117de62c92b59690631b9a78e4029e6a8ad078145aca7ae302195ffe034837f92960134af39416cfc3fb28dec04e0b7dbcf1d5b4ba41abdf5717c294eb039dfd14a69a8bbcc6b9c6869efdf5fb6d305c4d8d8d0db5d7b04c3fbb96440a630355deffb11d3c23f13611032695de68567a4cff28af10ced3e815da8f94718085039516b94f5d7404c5e55c602716b92bac9bbbc7bd586fd298e5ce84ed94e6e92103db9ef5f32392755b7f43d638780ba654861265ff62aa814f498c443307a56f0e03292cce26d83e84d389843233f93fd52081effc819956cb36626f5381eea164740319e26dec80fba23278b6e0424ff5a48f6879c94d364b1e8c6d4d7bf3fba2dc4303ef4912280deb328d8eaaeb518bf9dbbf68ed257cbbac9ccb682df76f81be8eaa03c3030aaa1693300d32f8238aa3bc76f152714ce08bae6910064e60fce2f0344f0305b75a56d9e3d050291f7f3d02b0daf4ab6b087ab6d6eee07fe71606470531b70219ffff03933036661c3b6caa37f6b94a30db392592973a39696f47523e90e578f6c585e703445101d512d3ef474fde983a9569bef149fee07307f05c66d484a698f7e05ce70329c5ea51715dcddc72efb5169ceec3a8abdb879d1614b4e10853702c7a6f074103aac457b01b52cb1b192bcd9381414bf3a532c63f17d326de1199895ecbaec3f703c3ee6b1f566f34ba69ca2ef59dc14938348f63ba33bcea7b6b469584b4903d4c03326cce00c2593e7ea4c76f7e9504ba1a6149fd486cb75d5c364020e63704177f034488f83e4954b42db0d207426fd109b871756c777a266029616d21ec0fe726e903358a3484b703d8e4a56f97dfe58f75caab199c75a9f603bd5b1027f7217937c10219ffff0351c1ac238099d0b241d00ae06a39c41c7d5dde714b57890d2e3cb9226bdf1d2303e3bebc420e0c9b396e723e9f63332f6a0a8f0e096eb81c79bb91ddfc86683441037287a92093f14795e5cccde6efa124be363bc0e426f3bb401a64ab223a442b330328fd95601a312c4136b61723e2afe87082ce0f3f312d20fcfd63654b6001ecb3031f4c5717110f7c122ab5bc04a04862e86db859a9db6dda3fecaeff6d6e705d4f03a281787e9cc5f2bdb11892c7a62ec6a43fe7fb0400881cfe77caddd5e54427b20330b6aecc7534acc71dd5e62475af7b42bd7548b44ef746af602e71269dedff2b0306435e1fc7e3f6e42ea30102c94057c2ed5ef7d0439312552efcbf36a1d7fffa03c2437bc86a11be26501354a16a6afb3615565d39538dbf4e8f8c1d96f99b8dad0368db9d49aa8a2569f525faff7f19ca84eb2ae433477e354d82b440c0c2af86ae0397703e86cb722f12e1fd0434691dceac5e95253da0ff6a95d7efcffe1f3e891603e2c00ba9a9ebebfd7e039f455d35647ce6388cabe264ff5709250274b75bff640321da4d1cb9240ad53918498d508e89457de9c7af3de51d4412254a776a88a035037be30fd776ecbc0ec693fe3c39d1a046b8b69792d2dd41c0000392901e7b005703b30887273e45552a9637462c5bdb46dba7998f4dd38dc49295c042a17a8829760321ff1554f361deb240c2ceb1b5e2f79ad82f3b655cafa5b0a6ec3e88247802780369eab88b73d5f244634406eccd5ce52794b762aefc6f3d5e8d85f76fc035887f0319576d91f72b7a202d4107b736d3a599c031888543710ee554db79f0d5b866e003a948b1508902d82f4f77ef57bb230547c1c16dd3e21df1ffc7be2004686f69de03d3423414dd6646b8076360ff35a544c3ba5924933ebfa13a42984fa37639827503bb8d50cda9f9863b8c070dbf422ff39d03f59eb83667773107cc19efd959d6bd03860f1608c6d2072b5238cd236dcdb5d129ec136b5a4fe95608aef33afe15ffab03b48eed07bca68551226d730117c72e8766c37f0179198e054c98f6b38ae2ab5f0373a5891b363a0cfa1c6622a231ee773fad1e38dfa130432d41965d8936575f43038c82f786576744496d0cf40dd9f19b85a3cb8fc651765090bfc59f1543b339fa03586e739e14d99d94da2bef0c9e4e4694179be0467eb2cfac5396d34db0c1e9a200581f0376abd68755fefd447b05aeac12c007291018c0ce05ac5bbe62447aa321704d0acf3d7a9110ffe000011738a600581f03380945375cf289646496a3a4be57ddf986f074bd0a6c567f6d2905e62a204dd7eb3a95295cdc000000fd367b00581e02e2d521a864e98a23c92af89ebdb912f9fd47b889610dcec591be3097fd4d0679399f6cc8b44792012312dc00581e02f9ed69c5308ad50cbdf95e160e9101a084c45e15cd6dd76077853f9f1f4510a867792c00581e02a6f71142363ee7e79ef0b7017cc17d96248cfd4beeb59434ea9dde395e4e25ee7248cd458844773d00faff6d021944080356df9d1095d1973166c45ca1e995b1e880bfe6c6b043b9fb37c7c0626400890403e94a7a7e111df40662a28ca9bbce6fce9eb6b39d1e9af83660926764f0bbe328035fc7460ebc91b987bdc75bf153e9f08f995dfdad779ea518732f83e89a169ab903c5024097deb4b304f21b87680d98c51f9076b6362f4b2929d16feb6c43d65619032c6f4ff65543a5715ee61746797c6a6207a5e06c0c6a9cd51c336017ea95477b033401c6fa8f0d9f17dc9464244a90939d08d981f19cf3ef2fddd69b417da087ce03a0f3f8f6b495eeae57a787f45a2a5c14e5ec0b8379e9be6ae52e3c43777ea2a000581f03b505d5602ca2b7a019de45957222d920ca741dd9f784abe087d4da59f0704f049e26c365aa9a518d603300e65770036643a582879156e3cf3c85b4485e9bc6d4466c318789f6e4cabb256b5eb119f003ee524667b9d524dda042fd05293d328e731ac58c07f1c967f53b4a3dfe1bb3eb0141070219fdfd03039ec6a8e62d769bc3cd097bbb3a75f1668df19e8b6777c94c565866e8c3c011038f1771bee8e4e8ea79e70f5353e9ed5e136d7a1777c5abd67c5932d9ef42a3b2031cde33a1ea4dd759cfcba2361d32e430b36a526cff76ee157f9981d155f7a9a403b13ca356eaab06c3ab6283275721c6ac2307266d667585be934eb784048498930356f1465c3c8f0c1264f8e706a2c6ff7b51a7d8335b57b57d8e5a0d6c35e65e10030ba6505946fe218df3c5f715b192aa9b319187ca55d9f16fd90d060f1b75482803723c92c80ef110950c6618718cdfc0bfd392d76076e0bae457ad27d2f479740403798406e633addb2fb61215784961362bb041a2562dc1edfdc34801b7f63bec8a03c0987df7c191842d23154189134e2b70af9a401400d67a36b60b5eb12ab5aadb03ace1ff18213f4443e477c4a0fa20191ad4681ae60183b96dbbb030de121701cb033e33343c7006d2fc8c16313087dde9ba8bd920e63b3ed48c4791b8a7e81d0ed503b17b9b2d4d90a7212013022d8e3d0f0948a90e6970e420da71e8037ba2bc935a0219ffff03ef952a7e9057e97c0b9c202d211aca52369c96aef23aca5303cd5482cb5d4e5d0219ffff03a872702126ac771c6e56ab3635b94e3957da4ab15d74b529e638fb9b999b89e503e72ea4d08e90afd796ebb84ec5ae5c69f9f146f4703e9d3d229af859af05748903e5d6beb0972d1e38b1b2fbdd566777a827e288ab1112bbc96f92c2583b18c22503ce3ba82b5d1fba4819be2e136d3657a7794b740164cd4e33c67e2560f43d6a20036ca7a4243761f21c7f2a605fe78f38346e0b41270ccd01ab51893272d5ca3f300300b662f3be9fba885ae3380807808a22a56c0a1a30bf4a357f3fe9207b1bfdf40315f929cb2032925b9376177d791ceb138fa3bdb810ef243473c8283ee43f01aa030cfe586a99e62eaaf8b718de44fff9b8362fad0008409bee283103dd7e78edb00377fbb3bc22bd0861ce2ed468203a23d3039c31710300ff60fc62c001098f403503af75a1d0d221cbc72fd70cf5fe68b9f729134aaad12988b7927940ba0149884603b810bd48a3a3d598ceb16d53e983a8d8df2f473b1c1f2793256657d44f705ef203195a3221ebd6e2c17eb9aa7e5099067e16a00c3efd02b68c3906f8708f3605c7033534d8ffca2e28b0f9e85ada2fd4a23b1b25c8a1c35ead610b11afc9fb4b87c603f65162d215c19549d5489a9c3e431beacef6c62f073bac0c73e15dddb8ed4c7b03d3d47bcd7436f2cb13fbebacb974691a165926382257362f56550135f4e359e10326de2e49178d77684be908e450d2c1089381edc1a67d2c715bcba8d0a9fdb9d20310a90d6924995258d019a60a87a8fa6cb41c74ffc11e8241a5141ee686e2224c038706d334201ef32514b82c7870ad3e89cacf423e3e663c1ac65102130c261a6303927499d161215b1415729a9ca6fc51d2c7358d207a0f98a3b26ace2bb9bb849503d8371a718d42aa5089b63538f0f6aaf7ead0ff57b1427d24da20a37ab6b5c09e03f7ae4d3302ba8d905b5b02b755c3635a47b49f029bba2f0e030020ac3e3a33bd03c61eb3fa254c0a809d3d68b1b3238a257acc48ea1362f926ab153f4bb6d245c5036280555e752948717a798672c1fa34af53783dc4e1fb01aa9a16094937fbc82000581f03ba896c5c99a6055ceb01817225b9b041ed53ac5a4eccf473803e887a58204e098b018c06da1b8d4ad300d599fa031318aca7ff7215e41ac25a045bff73704cc2ab10bac8584be5be4ed1cef9d07301410d030fb5a89ac602cbe5e86380c355cbc95b9654209f09ce3498cc91b87a527066bb03b0d1cf35cc9a1bee2bbfdab8643bf0a0e16f05b7340530bd1ab11379ce5d155400581f03260dcdf29c784220e20e14fbd0bb73cc5bb6d85b4b070dc1349cca3c7f704d1f28a6de61048ae9bc00b148fe030e725ebe2d6ee837aec2a5aa5652cbb0acaa750398a64f56296df5628b78a54f0318b0fdecedf910ec13d66488248d31bb747231433c8df93838ccb95698867b0600581f0397c67358dfaa31a2c5cbc75ff11d54e3abdcb54f4f16e4e54ac9992119a04d82d4e35c8fc4a7a03000dc8b4100581e02bfbcc5210f49b3dfb287ae40f1dc224965a2e7ab51712cedc65eeb5a9c4a0210fbc8c5698385ade600581e023cde76dc1a9fa747b8c83e3948c69152e69901c7994be2977feaa886a34e7513649ec1c1f845154900e51fe102190600033490998fa70ae5e5a8cf8afe0ff2c5960fe7fe7a6dbc8eb9641f0c0c8f84ae340355859264b27a5f3ff4685aad4595b0945d282c5ea3ecc7fe2584adfb6ce0383003da71cc846e79cce59b14be34e2ec94bc75d7ceb0745bf21ebc696e26d17c86a3021973f70339441159a4092b88a96250ee62d3f8dace811ac7cd50bc39001deca6b88acf3c03c6ae5a2366ecaca468c3ee114fa73be340d542e08b5d9b53a0b85e52beb45d0703220bb480b5fb92c38d34e81f8b0a3208a5d83637517c403a9a3aabc4e417f869039b1c502040d91b4d9b83a1fb409abd077c0b66dfc1def2ec9605480950b1161f03fe967adfd1dec72c9f090e1130a9886ec9e4bd3cec385edd8cbeda0b0a29c23c03cb90bb3f80e913b137b11492e4e82e0330269a7ab2eb33de27185a466b21e8960219ffff03bab25ef5c5b65937b717d8bd8c80c6a12b97180620a3175ce6b7cd970d4f29220219ffff034d45188046a4094789f74530a2e2082b6409c4731bc458cde73d2f0bc494d99503097f2ae16e35eb16b9b66dc1be336a3c1e97b30ac4fd19a7ce6f05fe112a72ba03674bf2010995f1d01bd9b19f0850afe34e4f983b4a6b66f9886d5a46d5acd31c034a0ae240add9d674269d4eebe095994b54035797fd6d186cf886f7b0bd6080a70383fd689c04280980326b4590c2e4fbc0ea4adbef329a7e2346f78f531ea1aeee03eaf0d48646e8bbdb062718c7b9c510dc7af0a252f3699fc54809d243d1a2be950345caa58a5c69cb3af11afd9642405c743c11fa5102de2caff71404ea52f6b6310318a51ab031f6201f13d7e0f87a783be96b4864b95447dae3f873c36f6608e28b0319dbb2a0c33f5199963cacf0f2e2a7d261169c4eb53b8abe967af03653148c3803f82f1b2f2d61f3fd15d5cd678e164f4a0196e534acb1b0fa52436a8769d0865003bccc85ce3c03b0695d688cc119513276687092bbfbb0ff9f563ed62281430538031576be5e7a6bd4cb4054f6efdab00c957c1a65633078bb646f1bfa7460c9200b03de7b7f3511be639e539ed0df39bb25687cd8119d9ad980acb4171ae660a20f0d03565c6c0e2d635911ef7dbb0d115986d829e08c5ef0d0c9a702ad3137942a85ab035a43d377ceae7764f1b1214e8faae0d3a219c3b6f7c270394f8e5365bcf4c7af030599c8de77771e11a8543d4c9b1bb824f5e6cf9130fca30764d019d373f39d8703c8b5a37b451dfddb1d9d9d0341bcf47859201b40291e603cd74bd4d260000eee03356017e4e5138ed625907d3e4f5bdce5eca207e2801b35cbd00a964ab9dc663a0395921b564757033810a6dcbed6a4ab6537a581744e3a18b896df9faa750115730302942ddd8a5f3280f0e7afb005acf6228badfb0174731aa0286a4bf5edffffc90334fe5a3d0a26d97dc278930d4d4ec1bc34fdb49ae89f6c29f60b6f6eaeeba86303c7041cf06068f992c0d15b0c2ae6ef37dcbc9d5494911afa4ed37a184b540720031eddccf09fb6c3dd796a34f5c11ef21f1b0085d2d2f413b0f5450d622245bd5203e386cf63fd4f8946e58e640242b5ffcf47176d7df2e72259b63ae4292f7ca40600581f035db8a554ffa0face78a5a7369e24fe8d430133a05a5704ae2e816cfe59604d19a1965982bf08534f00d119d903cade080d9853d7c940edf9fb1e781dd458df261712a93a34686d994b4963ce600328e4b63e287c34ddefbfe90a4f76b3ed6c03c8def98b10f1e20b7aa3536acc610322afc9b7bfe175ae7e54483562a74dd31ade6ff6d89eedd7b8b9d7fe382c1eba030f4637abdf5e979fb9c6a25cd9ae5ef2d9e90f1e91b37096cb809fd6eec3100603bc78134bda2d2b6739fc258170798d58dc42766330af878bdb48ae4979b27ff000581f03578afd6edcd3c4c0b3edbe6737087da7b8e8ddc7928e03176ebf177f7fc04102038bda0ac52568e86a0bf1d0a19795e0e4b2066f4bf1a5d6ef3c2a6a84f897120b03f0c99ba3f5a7ff25ed8b4b6d643c7c2bca8ed264de2df9c01a1a2cb662864d7e00581f031ef78d475071a476bb5cb5ce0bf496a2a08096e796018bb36c4edc6874904dec720cff50a8aa5aa4010f300d00581e02d16049d32725d71bd7abfc2563076a9681278568a324a968054f6d15f04d3635c9adc5dea0000000c324b800581e02acf36729d1fa465539512710cc1460020ea8f0a4274d3ccfbeff0811144802a303fe4b53000000581e02bc55b1d03748138e6cb314a3e7b9c2c832174490fd73e8cd0eb0d04b834e0210fbc8c5698385ade601256400037aff4deadbfbe0ff8c594d143477dd24e933c50a8707b9c2bc1d792da324bb6b00581e02ed4f44ed39e06704777a1687815a9774e13a71a19c980c8ba82e29ff4c4e555c247c0d93915b650300e6cb9602190364039585089572f2f6516f9618b1830db4cfa620476c308247d79b41976545d77fe40219fd3b038f57cd86d8154a7e4d060f774bfb5ab3023b044d06dd7e5862afc4250d6bc10403516c401b3cc9528b921298c2c38545b2f77501aa02e5edea3c804525dcd63d5003ee3c389ac55ebba01bcce512fbdfb4b527b8b1beefc02385b40a5689a94d153b031fa968cf362f423cd328144ffcae87ce6db8db4aeb8bd59f2a074deaae79ad6c034804627915ebc97b32008bec20d0d1364d956d9565c23dcb116d53005d6fdf7f03ff172ad18e2b89d20c78b428bba968fb8ebe58cd0fe39a2da33f7ac97b6881000219ffff03138bdcd807d2aafb37db64586043eff54bd6863b2b6e791073ba7a439e74dc23033bb95072390c6bb26e8c66e25cb21a043ee724ac836dca60fff517cf8431ab310219ffff03bc0ca859acebcc3f909d9dfa9f36d6bf2d19e7ce90c535c9aa670b34c88a03800219ffff03b5d1fe64b3789950e9cf1155a07a8108b6714fc75985fd17f16392f9e6ff03dc03e75a9fcf172d4597a0eb308759a9393496c3890a987c0b5b9bcc09d5b0b1a4ed032c9db99821bc8183fe2c1bfaf48e37576e1e5a5fbbfd0dab05a2be97a34490c403daea345b16ee8dd8258e189c1f5a7d7828178b5b53a5abcfc1cc5b2984b9400a03541778c5e8f285c94fbbc2877198bb70f51cb722ffba2151da7d93988e496ecb034a1a9bf2e32d364222ae2ee4dfe241612d4cc2d2747a6c571dda829111edf655031ec51b34f4da3093431a2e74b6ff1e494df4d9cb61b4b0a393ad922faf5068a003bf86efa9c58c1e2d46d93519a8ffaeabb7bf08fa97bad0e7bbd71226cc8fc6c303bff4cc428403d11d0f5bef258acb4c3d0501a75e4b91f6afdac4ae7e26ceb66e030b24074f1e35d26954d2a41c6750a3b29ae6a582e4e083bbca9c90c22725bbbc0375863d2fd6546b35010553d3bd2ac1a6c5ec4bf5d84dd7d315ecf109d460845803b4884e46c18c03379a0db5965dba26d7cec7ac1939ea317fc3a1fd5a5f5f3d01039df7f27306f74402dce253c905b621e2c8bc4be807de82b3751f9e428107856e00581f0389fbd427a52211f90bd382b00c5cac008dd50228733af5bb7d162a20470043f0377100581f03d594e4ca49a907594d1f9db6eeceb6a07c5a6e97b991b91d8867f97898a04e1faa8bc312b7f372db5d00def53d03027f90ba518f49a74c8784792f4e8913f557277a4bded997128aac5620f610a3039d1b475d5f744c3afeb61b1592d53cdfe5de2b831917ed50b9de13481743363a00581f03d7504d82ad3b41305eaaff51d18531457d96daa00f5ce74ab0d56e29e3f04d0a8cf8ab950dba789000f40012037d0120fd0adfbb15054ca88a713e31a3264e786b94cf4fe96925fe05bd11593f030722303fed137c7046dbfe224543d45d0126a39488d8128acb3e0e73f08841b700581f0318aecf9e192a1d22941caa7b7072153973a0c07b11fadc358c42190497004e09f21c242d1aefa8f4410116f21c00581f03b556e8f01bf6319775a86fa269aaa7bb4c06cdf9e145a19fbb53652a7cd04a29f3dc670eccd096370900581f03c0527f5aca6b67d663a9e6ac995a9fbc1d5555cb41804acab409671386f04e0253035d3526a1347b4200f29ccc037632347c0a17ea769bce90434d98138ed222c91c314d584d52ebfc85c69d2fa200581f037630c73e67a13cda52a1c91d447bd892d816c6da6a6182d38503143f2d804d06364bfd7f22ed08b700d914c802197f7d03ac0e5fb6cd7b6abc7abb2c4703a0e779362c0a892e132ec852a99a832c0909fb035eece1dfc084c85ee4d2ae391f27858dae480c498cf5f923f8e90c2a4ccf7b0b039bf93409065789c263fdcdba5ca099415407ae89492d9ea9a3326c0bc51d638f03ce8a6009338d869e1985f9c08d826ff532d594542d4248fad96366eec0ea1acb031bded597be0ac7e3db8181401e629cde61f63883a5338a6d10d6736dec3c6213031b99f334a76d4e038a1ef4565037989224fe044b670f15e5ac7f4ede6c625d1a0395c82b9d0cf4b9d9044ccb1ecc41c88b01b135ed327a8d40d67e1847c98d8ea40219ffff036f996a30c2c5837377ffaaea1595c47aa60ef9ee139467cbfc759c696898750b0319e01a3cce8de4abe9f4891deb2f6df69d9a675d1432b3de3a98ab6c19acbd91031ad0b0b8ded5a3df45a9beae40d961c192fb4493b046ece48226241fd267f55b033a814465b9fd73b77af2d068968ae572d87179dfafabaaf058eb75f8895f35610339e749eea21306f613d7f12c1c26a75bee86d9465875f1fcec5367ae82cf750e030627691ffc958fe51aeef5b0ee6a6769be19a0273d6f8975a40e633a14085b2a03798591e3d68357343d4cdb0dcebd9641d9cd44ed32511bdbbde2260e20aefe070354b3498438b7865d991ec1abbf76344677696de515766cd58e3ae62f3ef934ed0344cd51433e78fa38991eafbeec43d3333d351e0fb62f626254ac80d1368658d203cfe5808eed1a2da807206e01901e63ebe734e6eee50011f65c9085fe686758e403c86fee52c61f986995b4bba0f3160ced6463207310b1c6434e607a5c12953adc0219ffff038b34e0ab7271f867c9c2137526fbbda53f0a1b1a2939f6f6a49dad273406f9ed03ba3aae3748b7655546f6731b8e7f02048e4a7d1c1dde5e187b7d8ec0421aba650387b1100b35ac811a3e50b3a2ec1b00d6af439469c49ebaf63fc86692a28ca0c703389cf593f302965172645b8a7675768e6ed5c1933d5fd85edf49a131d9b1509303fa622bdb37addc15ecf88cef2b64c9bb9f16c645c6fce02461b29c239afe4a47039a1e07eab9dbbb523e46a599697ebc493d9e278c338d6d2e829afeb0585cb98e03bf0ba5ffc21eb5b3e09c7607df63e513341b91702bc09ab86fc323eba14e169c03b6e9e3ed1fc3b4fa5f183fb16d944191f1d44cbbba895b0d536c9312f0d579360317abbc1a46eb3100410d0043989a76e31b030d10440a0db3cbfbf32ef78bf22d0384c9f100bdab13436a85b1f2942ccf2dd69bf9e12abed5adba943862dec6c29b039b0473f0f209d026fa23fd80cdada2bc6a507379300201c331bcda349ac09c170372c738325d525383169dfbf31e9a8524ef8da4a2d7217868df446490cb89aeec03f4ffcfa03a3e5d3aed9ba0126b47d0d4a46d2f2968efac1cb49b809f5214316d0332788f448dce4d29a3f70f8a65885fb35d486abdf5cc40302da2f5b55f7487ed03f01339e0ca9b5879134b26c50d4315b05cc091164b2b40439010a44095b1356603c906fb5e56238074fd01f6dbad8c9052f84f0874d3e887f606ea164d992a98350329c41942ff958ebcdc811fe839c5bb8db728685fb4605415cb92a43b8abd0cf503c6d6af8a50e82f72463e71d05b833e4594e43c2ac429d822ef8a68eb6732ab8e03d2cd91f61506b68c89b7e3aec1b306e9af4c824547376c0ab51e16f46fed8ef4030da89815bae1d4d3d9791e0b706a980425f39c900b8d11fa31c7ef18e01588b103446ba23fcc39690abb50ee1bc84c9d238723bd67e90c3dfa84cb214c8f81ef7603af08ddc9e70b01a22b4c7bd6627beab8e9ffb5d2c0fee256d14089ffac5ef9eb03ea5d06fcfba34b0f971ff81da456af7f33d66a54883e6192259a2766093d2ef103ec12e55efbdff7dbebeb6654af2fa23fa5d1f4fcc66ef32afb69bcfa09f59ada039170f33a1f8f130b495760193dc959b7742faebc3cf35d5ad47610471eefee7e01410f00581f03aaea0cdc64d73aa831f32941377d27676d5cc7f8a58e57dac370f23087804f01fd3e8fda04e93cfee52a00d19bee00581f03d9487e50c912560cbb8c6e0e1140271c0aa34c95b8e13517e1392ee535b04e6b70b57a13625826ef11012555c00365aef53232097844e3df342f6ca3b181e97d17e8f381c60c2da88638c3bdafbc00581e02be8c333e621e8b4071979b567a889a39daac07793c9c68d77e8e97ac4d4f02e3174dbe7dd07a59b2ca00ee7f6900581e028011fc23c5900cdd70e89e83d281345b99672d1cbcd73b64cfe0f70b39413502194004037bd09864c0134f00ccb036797fe26d9ef5005d798af07abaff181d9d550e22a400581f03d13a11b9944b1cc3fd43d72b4d90a0226aae0de271780744fcc16b53a6504d6c5e86d942612b963800fac0c303c8f203a066fef263ff443e340c984e4f03405c7af1649067cf9eb34944b11a3400581f03e8c8ada73e347072c10969b68cab480c98715698a89f48f45ef02d493c00410200581f0398dadf73679dd6b7d2396298b8b0ef79f505fd337a77d1357092ec181d004d6c6b935b8bbd40000000ca4b1703b031de26764bd4f231fd34c133ee7c6d761456e64a9e1ce527656de37949214f00581f0378346a25b36421974520e9a59ea4661f0dd5cab450073ee9a4357bb0ca604f020fcd17c20d2adf20cb86011b5fb80384430e24f2ff209463654e8a47049496da7f248281c90654cce1fe18ea34bbda0219f3df0315972955003b756d2535c58e9a345feb83fc8a42f4267d30093955c19d61ea21030a541853d89b2dc4d00b04a63f3ac5374fa8de740498dba800040cae9f9b012d033a36e6f15691d94989021eea50f58604e5d90625d6e4b76fefa83f2b061504f903e5aa36b64eecb7a9adf18bf7ecd14782c8fd7b8f10b9237b820b33fd56f0df1c0342954138fbfc65bb05c0ee0431d38461862403fd2b799ff6af261f566617bfc1036ab4dab1bb9d9c8fbb0e86cb0ec75e355623b66a9eb1fba293a8d38fd5ed38860384e1648e48d2374f0c1f32d3a4a754712508c60da9ca93943675bfc27892f2a90219ffff037634d45f6788b24424df9ea7c63f29b928d8004188e0d1a32e07f6ce89e3af6303a409a53576704da0ef4d389512e1241eaac3b09ee67c126ee275834bea2b5633036f390081e6572becbc5b048817eee38ca59e3d69c247a2bbaa2f2199615d4a3903c85a98539802c3d5db576bc51f6145acc91147530d85fcb78ad2da03c8c1f7fb03316dfeaecd35da20cdc1efec5667ff2fe64b5055f5766297b0de683f50c7779303d34c41a34a5549b54dd8239f23c7db5b16f811f1e9bf0933b431f05ba0a7d84603052c3210a79fc1e2291ef19bef6594970ea7bab3a543f2f2c2ebcf3cc94ecd6f03709c7243a9b13b5c0f6fed8c612a194c6d56b8d0cbbe4c51ff24792d2f8713e30219ffff03ad639efaa0641b0c7fd6805c583d37b63df361aaee0598563773b12967ac1d1e03201fdcb77d0a3eedf370287124cf316e16aef39d2e87dc728e5ad42ecdfeccc903e8f61816837a21feb989de2273f0f5ab34af06ea90b479f36086421753b6b2cc03abc266d4d7f435fa541c1eb54d677bdfc6d1b9f04de652e4c866e1b90fb7006e03cb799bdab9f57676ae601d50d05ce592e7e1fe43d84db3853a58ed695c3d76ce0219ffff03fcd58bc761d1b2068eeae73006f3e7c3fb50ebb10370dc860c62494ea397874303dc0b5361174c0fae05337078cf6974c8205f063a93b893aaf87d2d7d93c82afb03e938ee9e783fc878f55887695d59b74303081b4b9817aa13fd19ed4966da91f3037817ca4d62f3dbe70a760fac10960fed3ea1c861abd1174df48bcdf89c92b06f03cf1b8a1a81f11a855e020b9a36856bf9b3851adfac5b1b5e8dfcea1c2247b0e40375e9299442ced3a9fcf37a766fbe5b8902146b50beb177a333a761506c1b592a0366f5486721dbfaa7071d9884511cf3327bee6482c8ade3427f58627221d810b9037eb17c8a5f537ba852d11cb4d39551e300c05c51536d98cbe1aa4d3e9903603103e6fe162b81fe241989f3a31c7b701624594de733be01119e46c28a068b3ff8b5036ba70e9e7e1990b9ded52632ffe667e701b9a0381099d3cea6f87008f6c27a95032aec2666fb077f22b52534407b1b4fba4b60086948c6e360cb64d252d77ca7c903a50f64264e11470759c9ca40a7ea3b13f2ddf59ca7a8c014af1af1b227b67604033d344a7b5c83336fa2c919e0b80f0bc225eac908ddad65fa0648e185fe66c1ef03d17633229f6d36e38a98551513d3f52a6f5bec7126395c4840d38e60ee17e6c2039d0ec15b59b140ab27c15141909c61d1a09d6bddea82248bfae12d9ff09bbaa103d109cfe663d4d4bdc162db28b57306c242afcdb2018f3f86855a9ea15622bb49033d02c2da2beb86e86f3d591566116140a9d7d23d0046ff674a22015136eff96203a9a0f5d03c81ba80ffe6e5bdc99bcbc9d80484b369f9578a648fdc551ae8598900581f030f744fbf7e5fafec6eafdd6105d3fa091fe4e6453b5b511b2fad7ea4b8904daf846348d737edc3490111e1a200581f0304878d7ee5108212d4d9c9319764d8016e7c84236e401216bcf9c20a00604d55a07fce18ce008c5e00f94dfe00581f03cd248066e9e1049b66f7c5b1ff9e7b7de364388250855e0604a52ff688f04f01f66ec35f71e9191d3ddb011fe809030e87506f982a12912af0e688e1228d2eca82f2bd76f4ca594e0aed28cba559f101410a00581f0391b833e6b7dce309274f586260a7d321b2c433580ddbe299c7059fa5c93044010ae24100581f0350af9c8d92625bdf1fed615741ee2923d61121bd4b6f98e79564c8ac58f04d0101764ca82186400000f4409f03499f45d5ea50aa11db88018363aaaa6a0adf33a6176e89718faa8290213c7f8b00581f0330e4a0913c2a6a3ce652fd0482b111edbf0e15198a6bd3b80d17817229c04e0ad3dcbfdce1bf164feb00b7ae0b03aae765bccd2f49ef15f79a033a93530e5adb05a0f3e768a9e1e059ffe0d19314034568c8d6c7a3de95a6837f9a71d425e3bd8ad62d12cf362fa9a0636c46ce36e700581f0373149e0a3fecce7a166c982fb393156aa6c78ece6a2a8ec37c41f9c383d04e0f81143a4c5d67aa32c700d1df5d033ed61d2913e536c0b5618d01ac27c962ac46d72e65fcd312d15dca4a19add9bc00581f03e44f8100339337353637036b8306963d8568ea736e2fdaa20e27b0f83ac04f029154b80cf58cf7818a2100ed6d630219ff3e0386f4daa72315b45117ba80b35eacebf21d4767fafe01badd5df68336dd7717d90358b3ea2426ff1d8b139a3fa19e5b22ecb66ce9cc27c41641ce57d89837a74e0703b823e4bcab5b38d372d7928ed169a79703e9cb580c5a2295b0060db9ea94cdb10326609c463f9297779184afd840e670163285dd40939b84689e1a91e2fa8820ac03851835f6915fba45188735475dc7b148e4c1d2f2a4a8397658e81bdc2cf0a5a203076cce9cc35f8281ff5b3bf494a5045fe3047d6b56ef97fbac4be1197670182903bc3657f01aa0969d18dcc12dd8ac8ff683dac86c31499af775f4ca0ff862381503611775c6cdada63927df27d7b51b29466f60c3c068b3c1844491827a2db7deb703783b56f82ba527ede96fe6f4a14826c8c4d0b45196ec82c31a469a4335ea81340219ffff030a323be5075c0a79a30544cef8e09af8acf168af877baaf79cfd64ed3d5d206c03b5c5f8331fe08bd540b8dc15a8973af3a644279aa0f3b5e0060f92eebc755cdf03114b05b4465fefb1c923b9a24d8494c5fa674d08c07a35c6cc292d226ef4e16a03d4a7c6ce60882319f49286e593b739602c58a27e61724fc2f261a8755b5c6925031b850a6b70092f550a8f43c6a9b928d8204cbf501d76dac923bb8826d8a87b5f03f5b96284090d49a9c3c7486c75c6f601f6fe95b2a740a7c72bee2d371377c740032f33aacdd6160fbc03ebcc84ba0d06775f9274aeaef4bc9eeae2103d5b6fe3a303978fd58a60cd7ac4d18252a4b2459e6860a79c8afc72d0e16799647511be01d60336212eb16664bcffeecca8a35ffbabc8ad430ffd95cfdd78cae3e33c5603b1bf03bbd169d222f9aa14c6e68770be9f03e11fe072176223191b5d31458412fc4670034af5ef290f281097f842e49952ceefe63de79d70b7cfc3997b15902d761ee541039a3b647d6e9e7d7a7d655fd58f8b279d8d4ac35a2e998ef58f77f01b490ef6fd03c0be78de634b61159bdadfd688c25e9580314b5c3b630b6db9b12f887e0b96740372d843f24d67cfee41aea69ade9affcc8c0d18db489cc6a0d5a0f51fa553cb9a0219ffff0348cf1ebe8caa6c321e94dc9d5b9b491e2998a60bbcb92a09c3e54c7754a869e503fc25d145b99eb18e5662d400aa1c2d3179f6ae1bc3a34af07937cf85d6e78c7403c3d5cf07d87f8a4e300554800cc37cfa3c4a6a16ce0c492cf94875cd4c0c65ff039c6e06fc4b05be04958f5f9442c144b0e46f7bd8adcd0abb7e8d04f4e04d3c3c0219ffff03ae4e81ac7bf101ed6edc0688eff31086e0d736f29fe9a6042fbd9833603065c4031164a785ec4011d167d51f6170b5e62aa7784dc00e99807cb54f46a1b756f3d503408b7df8772b6fac7eaed9ffb25e1b77400e1342d561db9efab4a48f295681f603a77aded05ca29732724e91061b2b418dc57ea070e5f9c623aa404809eb38702b03354827e00668d6be1a0a5ffff8aaeefdf5325c9d09148d749e7a54d0002f0c5b03721a2c16a1d27975a9c715b153d63e3d94e8133c46131b5ff8e87ea1e1a8ca020364317cc511b80ff377ce9a01a399fa4bf12fcf1e761c0262dc474e8a6f2dd57103fb12c086a81ceab43d72797407f4c1fc4b9728666a2b66b0a8f009592819cd6d037dae5b19bc7b18dd4ace726326ec76909ef6b1b0c43aefe5377185600275fdd003cc6bdd5ee798686978c2bcf20cb411480488ee942d634cd2b827dc72e44a71a5031c623694ea32b19a1dce60c51635a8823f208b26a91379854077a139d99f24cc03bc9a076e4d258363f8000407674f208336cbbf1c540b74016eea87c6876fd93403c139873fa6f2b724ee1effcfde29b32bbacf52e2912d4f0845088c3caa84f7f3039c731a739665163f8ec4faf0af4e14bfcd27204cd446eea00698219d5b498347030f5b534f62b58ebfb37df2958700c996d25f54267e110e54513e6abb83b4dc900328e8793715d551ebf62c232d995f40b34ba1e42330a2d4d0cb5a022c5277126103394c8fdb20802f3f1e6544f41068de1a47534b06f95fc61c011609102eb4ff5303675be0bf010c8963e2de75738e0af24dbd5b13619826bff240c272cad6919fbb03b8171b983297907884a3696f8a4cf056030479267e846540471143bcffb3d18c03dddd858d85e05ad4a5ab4cc156c04f387e6897a8d5a68e45e4bf4de00e5b8aeb034ea298b0f86868c9698e82aec5887c70d721771b7317294d4c6ea3cdd7dab73503f98ef10177cd1592a1c81acd68d270dee3ec673f5807712e999b5721fff5cb2c03ac929c418e288efdd64adf3fc754b50f95215d53204e0552cb82d4996fa8f54e03ec753b93f227a97fc4659503013c95000930ab40fc05275e4a468fcc7552e1040341db22e0a193875bf2cd279ef0ba030339e41fa1a2f7839ed99a1b3925636eaf03c0d9bac22e07a0e4f138bafdf5f99843eb7731212fe64128dcc6b30c24662663038e5777b5a307ea4a0eb016f307c91a3d173e7dc2ff74e8399663ace49249f4090365dbe4b163e6edfebcf2554a5b236d30fa37405780d8dd9449e2c983b8b2bf5203f461023970683166377ff7e144d1259fa519d928518421f51fcd4495a8240d9503f06781f2164efeec64b489ac022e5de63567dc2301e6650de00f4d321cdb7afa037a7bf82c12596a7dab8b434ae19f0277cf6ae67fcaf9ef1350e10b7a3fe320e703b52b6d265d73ab3ad93de3e613b2a8d51be5d406740a61763549190ee228626d0312b79d01c90e983b5e73e258e1cc962ef736c3ee863b9943b7b9929f122985fe00581f034f6e8b370edfb7618ebf311fb758c80fdca82e0c7f0e439037c904fa230043c23440035f51b863ddd44e9486506cc521783804c1ded6b624e063151e7f02881e9e20e6038a779e2f8154727be4a89f2115b2147864bb7f50429273db35e43340e6dc0b5c0351ba95f942f6041aaee6e1cb94eae7038a255473a1ef29994c28e1b6efc96e9b0338e59499c358b46e5f2ee6b32152377c3bc5b58ffdf70cddd9674ddfcaeb7a320305847b4cf36d2c1b34d0306861183b6526b3067c71c91ca094b946a8a64e221600581e020d1d0fc2a0241c820a9e51d4170bbb5174ee4d9ba9873546eb5fa4d89a4d99a3defffa0d180001010ef4ef00581e0254d2c38af108b0620da6adf4bf0691673b785fe6601fc2777b5c4444994e29f3dc670eccd0963709012594d80219028003fbda84c371d935ad8c2c9c01ce98c5b3a81fdca864027f9b85e00d536370194e00581f039bb4dea1baef6c51cc70ac229557391093652d9f74d68cc6a127e51202b04efa5861bd648acbd1bb53010ae98a00581f03d65a6f69d8c9432ea5f91d14a4adc63c7699e5f55dbcb2dcb5d1478897c04e09d9689c526ddb0e9ff100b1c9e503fd821b0a853aa627160ba1259d6fb948beb4b196130f7d20c033d91d9b89fcab0219e3fb0219ffff038c745018505326e451594b27ac4d1b32788efb1c2fe1c4d0da812d8a14631f94034050ecf1468b2e348dafce0dedf59dac4264faceb4ebed939e731a5b4104a6920322490774066bef9c586c12b0814af6e17c17106b4f73b2d65def99d86d4c745c0219ffff030ebdceb8e88968b5c7dbdab70ade5f27473c0e1108f5f80ab989e8b4aa35bdd403ca1f8c3578010b6f403ec77be32732e1d1b9468845eb0acd451c7ed8c3a5239803359e758f93df72a75d953d756b8aa01dcba247828e69b592944650edde1b0aea0355e229c7d5b47cfff41001dc7a1984fb92e7b882df0b33cc2f7fe1615c8ed9310345888779a8ed5b80da0719e669a0bdc915da519643d8b4e8836071708b38e59403f959cf824aac4073f3f620569da956e3732695954b116774302525653e5534d0030d888d336867ea2efad3adf9d6d7f656f8f8bb99539f33239697bdeffd92dca0031748ff7713ccd4dbe7c4d4dcfdcae0dbb6315e133c81795f1c0847824248dc3c03f2152744fc571fe0304d5fcbc674df1db6f04332c7493d794f6a634ffcef25dc034ed429a6d064c2a6505bcc913aca03d63115b1b8743c4b6e6408097fd9d8e4dc03c60c004ca1815f5241ded993fe3e0fc765a15a0e1daff5f5a611e0b96ecd6024033b5da01815d7e375e4a3372239b57904ddea6c6a0f1880890e2b5a4d34ba26f4035227480479a90251125dfe3d8b57bc3820198c636921a88a3d8b71cb19f6d9760219ffff03f2ec0d452ea461f774095257617b3479740e43aaf2b56d0640e5e53dfb1737e903aa47686ea731a16c51eabb4e873b134594279b001b9f512459a3e6dbc2aee0ad03ba7441650d45801fa49f91dd780424631c4460b2b8ad9f930db583a99670c3c503d1e59470e87342c97e9ffa6a98966eb2d54c502aca46b9b69af3ba8f1da969c703abac8e0295442dc68cc7e83358f10b88a0f3dfa2a476d92fb875e06df87b58d803464567841e179ef4d0bb7a59691ee97d3193ad927f1bfc6155d4b52222afe97703356f016159a910b57144676b36ad31d4eb9534c2bbf73c364b1e7325d0f504e10325b95623adf630dd3fb20403d10cbd51f3c6ba04c2660cc041648b9d7849c7a703371ea08848527420bbaba95079212d2192de2c2913d0f37452aca300b6a48a3a035361c43d3d914650caff23682b9d347f72b41a0caea92f7e4de2978ffb1fb041032b9d2fc735e9bf8dd6f00bb200bf2e67943d58ee4bd5df6a6f9ae6011f9aaae303a8088e025a58398387ac32add81d970a65c2b06febc2dfa8c0eaa7c6205c5341037fbc9be5372dbcb68cbfa7aa773cfe1bfa05bd3c24649713cfd706686d3d4d3a03fb4bc4a702b028a3693afbe584f20a73902c376d1b92155c9212ad816327d06a039fc20f59ffad75006a8ba0a8231a28a91433fe8a6b65ef409fa4722ff687f2f103015055fbe4789322ff303b342cc38b1977a32a094c5ad45e830e0bd2e6420c680318d1f3d0138916b9b26534a11465bbe056f3562361b304f9f497649b4294b8650360458ef657f7a51780370b69ccfd9320f2cd94892656a036b39bf6c858250b5a0378dcf5035b6101a4080651c7196688916d263f778555de8410e09ac488e611ad03e4a88bba55d0aa954694092fa08e3d33fbdcf9a1bcbd580fddf1335a7f39f16f0374235196cd154aa839963dcdbb3402710a64dd808c0010c7ee081401ef6bea3f03738d059bb577fb20412d00cf1fbfa50bfb8802e3e36b639d13de761ad0d164d0030cb497b3055a6b21b28c8759e35502a105d8d272794be0501ebc29d37421beef039b2a52c385ccd4bdfa66db6ea1437a2241d09d021772a9ee7d0388d73a76a9d20399ce98ae056543ab053ec6067dc8a9ebe49bed518e9e96af579b7a0692a1266203086e9f086ea3345c1f39b890e293009463aab9e9ae734ec142c270c1281c6cf600581f0366f4ca478601add83a2e26240126b64ed125491fc3e58bf4f50397d118004d2afbd7cb29de72480000affa3200581f03d0b2d7e00c8e8bf03792b46625c59b525259addfcc22716a36362e1b48204d3c41ac0f917691beaa00fa246e036a36b6910ea118c8dea120e87da842ad75bc194d4f9b6e3780912f1f3560b2f60323523a20f05d770a85ab8937e8a2f9e9615578a4d650647f6e84ad0732a4832000581f037f6d58402058788a446d07ba00682d481d112fd9b1f2b6725432dbb5e2804e256f5447cd2196aa241800fb059a00581f03b7a4f87f97464ea85c4d323f8b716b91a73d1254bbce1b0e580b9e055ba04d05f4ba327bf34cc00000d5f31900581f03403120e0228f17b42bc6fcc255dc2a05195eed4c6b93258024def156f4f04f02883f55cac5900a55fe3b00b91c22036af532ef0f11f877608902b33b68105da7ef1a6a55388e3987bbb6b2a76e30b60315665405b5f5dff6af33624bdd2f39a4581216c5ac1905c0e77ab5f97323570c03da0e823ed58ae27cbca93200227e37f95f96c8537db10fe28285676fdc8d98db00581e020ebc36128fcee8a84f2900a698342b59c43e05143ecb2faf8b4c3f37d84e0632ca78c4c5d95ce9410116ef6600581e02ab178a464f1b1ad72b0e73fa8e1a57b167d8611af665afd3a12601fe944208af0218220219f7af03e647b9779e784a2a30ddcb843a4215da493d2e3c0a1f1037484331df247cd1fa03d7b9d23c8c627ac71c74b4c4d72874c26ba974d0fb103adced0869443bd9b17203e505e7687e3685cb4077cdad0019543e43a00085f23862fa0504ec8479ffed83034fccfa31641b37015bb57364e95cfd226c389f46bd832bf19c5ae0dde4db85320219ffff03ba551411b406c8ae9c788f69ce93675ea61e3da5cda2241c91d7d2133d59348303b1cb0118de71172cf6a83c4103e7ebfa6e75072e8440fd3247596666fc5cc2ad033dae5fd0291a970646a0ec0f3f249b7bf72133ae9cbd5fc1befaba93903580b403566f57f51933304ddd4770568b9da3dfc4cf45cd8fc0ed74a8742f4a4ea46a370219ffff039f83fec043a17ed2a2f555d8bb5ff4a24fb95ae8192df95fb530d1998fdc7cfa03f06db946ac1d1d8149fb0b763b3f347a1bf2b84da9aff273520cf21ed3bdd2bc03e79bf1ff51c1152d322b14d719fe88433948327552266c0a74768454d789e35b0327b1036f8b3c46ae3c02a21b1e1c84e0976afffbf2e00b305b029bf4a92f37df03207b1930bfb3d7ebe66aef61cf9bb6bf5fb7f04f181c24787b849297fccf852f0373e8c4f50ccbde77124aa5324962858368cee056a0e6beca6ad699fae2065a11032bf0b9b249d464dbf682259962f1c8c7604b1a9b198f5c1f750d8a2a164616ae0381286c443bfdb709b481d5dc12891dbc33c0171de1153ba7a74546ccdcfc689b03d27619eb397068ca33f0e94b39260a14e241aad73bc73db90d504b5d102cca98031d841c01b49a92da02871a74021c56391b6b74b1322fa52802f145f9bac33d8003d02b4f26401a72c548d9344626e2749bec4b44e2cd7cf1e15b0245d079f83bcb032fab2c04c7e98e9fc4bedffcedfce2846278b31678b52557c402f2e1903217cf03d6fa9fdc36694ee5c7b2d3f7951cdbe3fa838dc34f41afc20c10c45c958f8aab03687412d74df9f38c9ec548d8760c64d426c256e73ffbbe4b7f9eac3169f3a5510341a526f488ce9bb5cc2b8063175cbf0c049cab07e90673be1e3be0cda27b7c7e0219ffff03c19440861eeeead5be53ca1abc5580605e3d0aabec7473dde0678ecdf9c5ee7503b21e3ef7570cb47f9a55754d3016f8423ce71ad1644efea3a9e010557235fb2503f898bc80281504f19350a2c588f0ab14124d3b51ae6a452034ed3546f0bcb9420319bda0b5fc515e6d5e77e45d7c40e2114b9a5f1eda0bb839fc15d4a567511c6e0351e1f72f84ac7fd4c056f981021c7818a7cc814f7f4462df55bb2dd8f7be820803a17cd8881bae7cdc70407a6c131626d96e6ed521b66df603a9d8d70c7c3dc8e9039cbcf7b3861f793eb555a3545f43b26d25f21dba1103183d783938c3f4a6059c03f8f4ee02aa03df7a4c942d73a6778fa4d5623e3415591574f423d67d5588382e03807e4b34ac4a069a163cd5cf0931608d473778c5f2f310386f11e1bcbfeec2b80343b995956cd8676b81668813768e4a8c49e618fd0babfa8e7545a6acff73c4a6037ff08ad2f5831623eac36ff07370ad958c5837fd7bf49e630ec364ba38130ea6035067c77573a48c36f64f36b0f9556bbd3902d1f61ffb52cc9533c476488a32cb03648bfcde7889d59acbc08984ffcdd67bc4876cf1f5b8347f9856c2de29bb70b80302e33e94fb0c57d8a999ae66a2feae0ea05932fd9a09289b6ef9f09a28657d1103beb79f6fe9cc98d0585a77980176f44ab5d75704e7ebc8303e2b03f108c9898e03f9772a11cbe103f661910bd03f4383c7c2d9bbd107d62bcad42140c6a012ad1400581f0384d0868e3926a64817d9ec8c23a1e7e9c721803d2c19be5effe52854ada04eaa34742319e5cd42e89100fb52b900581f03564bf88e7e149b7f1b0795e51093ed23eaf0a9e21e95f44aef56f3be97304d8586550ac23dfa2b0200cf8c5c03af3553d441e14e38fc0a2e824ece8c1186cf208043fb9db225d366f2964bdd3b00581f0301b6dcabaa99dcd387f3df67609100a645c6d1710001f0d6849f938713a04e478cc0f04ef2db06cbff0100a61503dbcbff426949bcbe64bcc24e792d96c71a915812c6b5d89c310cff985890baa003d8c3bfc29f49cbd049d77679927afdcddc7fb511a0569ce2a89db65679d1111800581f036bf088ad2bcaa26d9ef7eedba3a6316441181e8bb0dacbad8e1adf8abc205820ffffffffffffffffffffffffffffffffffffffffffffffffa9551adcf00519d903dd509dad18862d23747a059ef68319019c087025152c04508636f59e48749780035b6e44ad5cb7b2d47f8cc93ff2310446498b8751aa712089ecc40b276b7cd31e00581f03648f056503bb31781f5674965e2d27178251187defe5267785f05e162d004910a867792c0125886f038746ce35790b96435317f3e9710983e859a46889f57f44f2db0738b2af067df700581f03558413d50e43df57d11d0bad4f0f906983f1cee9d30db72656eb3be885904e045b88141896997bfe8b01041f8700581f034d7bfd630ce558cfa37f16da62572138aadbcc5ba7c3d675266fbcf741a04e0252754c0a0b8b45482f00fd78020219fbf7036a14c1599ff035c5e2914f23acafc7baa650816d98bf05fdaef3478d3c812f4e030b63fb4ca5d52b630e4ca88ef2e6ab30db725f6d74e02383a5b867cd4c60b3560350d13180fad09b54bbab47ebb47701d2256551fc3aec4ef14b05652df93542d503a28d746a54bd5bcde7e5b76fdea1266f88f4535545c29fb42d645099774705e10219ffff03ed3bbafb08cb5511b1dc6635bede31513c4fbd32197a642cca196ebf8bb2707e03c715ed41c38643853d6a01096d05d89e37229fcd0c730b76aae8048c7087e37a039cde310db4e8ed412aa0ee1b0c89344507c44ddc7b7817e1c62b2504f96439b803de09c723966284f1d5bb070be6be7995445a67bf0c6daca5a50adbc20c611360031b8c74ef5a20b6ae25dc88b712aeea688be0933739af1db4e0b232dbcae2dffa0352dfcb0198a6cdcd9aa3e314be38eac6c34464d29b2d8815af765073acaf26c603bc8efea28e8134b33a76da06eb0b08845099098a263a021e276706840e7d701803f66874d1adb34466e792ac6a54ed1e5a5b095c6bdce8b94f905a0ef860a88eaf0394cd035b7ce1df22cb6c3ea1ee5a4ebcdfaf2253dc434666ac7cecf31d57963303fdb21cec44a9789e03080ccbba175afa7ed8cb652332e2a2b013169e2faa0ef3035b59f80b16b2c9b9b97d20ec7906c9480f450d4da4d0950c6bf6cb44fb24046303e76888975f6fd810ff0fdd33292b7a7af9f187f779bd773f93b1b25575ed275a0219ffff030a622573930f66cc3451aacb3a07fd03c37940693128d3ddcc9794bcb23e9754031efe9209651de02950fe168da5a5b30cdd3513c4b72403de28e2a72d1a3bb04e039871f8e688af2a755b42baf69af68624bcbe135d2b7fa77a07ccf2e848528c1b03018bef98e0ca4b89228f24d7361f89fc16b7e041b6d00a99a131839d7cc001ac037d113a2629f48273c45357d4d8ac5c2e012899d2c03eceec8f5c03c4acd0e7ca03a837d7089b3c4944ab7b6ea3c77f0415c86184af36f88fe8f7749803128771dd03f460f7edbd8dbbc0838fc20c0ca95434b33fc5253caaf2fd425f593d10205e69038519cbc263ca300c440a9db5662f1a585e2833d405c64bbfd7ecfc5aab21efd3033ec55f6910a97674aa9dd2bb4d5d31f88c378bb24c08d9d81f5bcca445a3fd57031a3318e019bf44ac24ea275bcfd9acf2f4f35d274b652f62388ec24fc2163f35034e25cd072b25d54bdf82c7ea26025e75d463f9cd2a3230607677b93d5d26d7ab03d6dc931b5347e580c6cbfacd43424f7375a0764a26808cb4c0766c8d87f870cc03335756e7bc64b3a908fdb9d9712c317659d7a55563616da7d80fa3c37168c5af03a509b9a13fa6bc6cc6be31f60fd2d622c97c8421ca59593d8a33d549742e5aae036f5c6b446d000f1bbbdd5804aeca3b8d44ef2e801c08f030f1f22919f704a1ea036f8846887896fcccf7d2fa291782cf9fc97266951f34cdc3788f6a5d36b57c0003de2f640604862fe20402c1f6741fbf50700d35c024a76f058a4a400c267542b703add6112b081cd48644418ffff43f7da75b8cc4f057b2020a7e0a0177722f4db8037f17b4a479b050f26ff8df87a8e13d009425883b84364484e5fc572eb54fbc12038b12c436056cd21c0f8235589f2eb42d15894c8e25c92e5b665440c94585db0703eee6a1f8be7382c83cefc99942233562f6ced63bb99864dac68daf265e92685903ce18ccae3cfdab32849474bafab8fe0d9f2a17915d85552061611270b91edbfc00581f03b68aedf679e364bad35ec05f51cfdcde919220bf2aa12c32890cd2d8b56043e0f6fc03cb5f4672bbc8f4d9c5c74f9e8034831f55c12663a2eff0a48bc588650560622403418e847ae0428abb9cdb30b40c8c882ceb745d3be5e84e6bf706df3e5c165b980342fcef633300701ab7cdee4c49f4b17444b76f2a4ba006632100252ace46e16c00581f0302c6cbee3c2a3f0666de4e5af0e9241907f6fbec8f3f0b39e6e3a20e83204e6961bdb41feefb2de9af00d8d49100581f037d10aaa496725dc43fa17ca09f203ff5167f7e9529b5d080b1b51ca2f8b04e1b4006e94761dd90537a00d21f8f00581f033d04353a3d9df81917a3a02df4bd5ee1582c74fb5a893746e80cabdaa49043faa42e00581e0296e4fbc1f840311f461b8cb85665ae19168361fd23a5dc927d5bfbcf074e0154e82cfa60da93077b0107ef3200581e02331f9b428601d65789a32832b3f916afbe2f8d67adaabbdbe769963adf4da2b71cd56fc53e8a7400d180d80219030003607dc64ae10bf21f943d9b14664f16cd44b37012bbabc6606a4858250e8ab47a03f38526d0dfe70bc5056fd552b124eead6b5fd0ef2acb4d3657875909c73f370b00581f0359f845696d79b6952cc16fa1da83ca109e80747f9a395dc064ecb1df5f504f02271718f0fe299e65d420010b7e2d031b2744f4be8f60b786af578253dcfa2a64dad919e00e0a6eb1669e8306c4467d00581f0339747c35d60c636f0e4d591850b38703f634d7ace7d47c090662b28140104f01c21e15ea13ff7140024d00ec650d00581f038ddca0e577588f00480b4249d402e321202bf42d815129b0e76c37e5dd0043e10e630219ffbe03cd488462507f791c69a3732edc1ccea506aa4578120ba9f7e6df609a24397e2f03aaeace95ba37cdee89422bbb139199818d5c04da7bdb78420c297452b54d1184032d8e498fe465a615322272cfbb3149cbf19e7f5ada70ab2b4cae231553b2f7350219ffff0363ac5aa73cf3d5703996443c3a2cee4551d47d04225b1f7495f8689262d0381603ad1e8e78765d98e81cf8b3d7ff363ea4c4f9904093f83766fc9fc0e9b26104e003cb688b5a9036fe30b53c9683b09631c3f1cab0158803e6aecff7278b18f4af1203e26645fdbb2ef067dd835aef9b0f0c1dc7f41cfef36c28c98b6f160b177820b9037f19b00024aadb88c43ef2480720afdab36489623e25e67e0aa251bae4bb7a7f0219ffff033c7a66fe8ec39b84e1e3c282bf360525dacea559199db97065c9360bfdbf107f03e6ad4db69ba24fa5a632181786b1f4415077583394331443794b68906fbcb2d40321d0e5ca7d83ba99eea384502a1689e0d99a7026a1b0a396c7d972e547556b4a0380d0d33cb980d447fc77bfa3e2b440ff8c0219e94af0c8c88e6c1080a906aa030335b9aadc1293bd61efe671495b28fbef3b06196ccd71d9efcf0118700f808dbe03e3362604e28168779c4140893b6fd46404fcfe5a44d41525bc1a8f1a27e6058603e4a5f1882cf1420af43b9d8f10d1fb944e915f6a9e02227e8f53eaef5257e515039db75740ddbff88abbd072bdda6668fa6d0c5f2067b779c6163cf4f01d3c70070309d719468f479958d6ef0f079fbaa19bc49fb4308b80bcf9a01290b381a673540325915c5ae32c4189d4867f905db51618e076b420b9ed67b04bec35758cee308f03025e9f2d79865845ee011fa349f17fe9b35c0c769c59e5ba828edffa610eea6e03b8e02bf914e310ae9833986182495ae3b99ec03dc3a2c79c9da02e663976332903e245cef260c7d600b1e4ea0d84a516ef8edd6ff4d770d2cccdba8177b40dbf260219ffff03f9e3eec8518dc2339998d72fb920bce43f0ae7759eefef382fb5427c4277ca0703680e545ced0e5d641c0f78e8e6f2a273ffa3858cb8c0611708a3f5957100415f03ef15895c22d5f20e9749a1c6277d2d93c49f0cd54f3c3ccf4a9229b4225e0c30037cc7e3f35b1a01cade697fc948f7438dd16036b2ddeefb67e399760fbe391f3003a785aa05b5ea3dede50038f7b638ef6ee169f6681d7014110d0a22028b0104100306cfc05142602a9e617fd7505d127857aba4f33a8c2adf3575bf0f68fa4de9f403031c55e8002a5d58d42ed879628ddd381496716f8239561cfbd54650126ee026031d0ea8a07c3ad0a86e9d365a0d25b5c4854b76733fa417c7f9fbc0de8a54469d030ad3449b205d8509682f823b421ea6fb1a4829a6d3aa49dc528659b06c26d1a303005e7f4210db4a3f62e8d222f0f4ed7970ad5a88a9ef7bc4c6ac429045e0e66b0398878e6ac495739dab214647f1c79aa1b41d84a2133e0cf5bfece8524cc148cc03e0ef2a57e10f71ed213a34a872187fda7a7cc1c8b4fa3be3f01d9926c55bdc360391b7d83f2c73e39586fbd99967a7abb06a4a330af25dd0e5b5e2aaffbab5f5380334217b0dcadd0abaafc555e8229946b6ab6946d6593fb3fbe45c4c4b1b28915103f686f628314914494eff604d1e46875dd850d688ba45e464ca72340544bf35d903133d76f5b8331a1ed2758222ad20a172a85544d7312bd7f81e7a25d036b91a78031b1df892e51af2e2663d7336b0df49fd2b46709a1bca19fb96f4988043f0b39603dbe37fc832255c5fb65efdf416a41f77e40c6502ba04de1c253157dc6340520d039ab4661cfd05929fa00e1a12bbbd617b0b40e36025d42a27e0f5374ce374932f03fa3ae736d5da3f43deb195db557955c0f6b7b78c4f168a783f8364c01431f37303faff772a9f6b171d1e5889ae7f05331ebb595974d6d169aa462d0912b342f8d9039adcaa31c7d6c540379105fec573ced517d62053d5574a2849283e0792d8a8b6030da189f49f226292d9649dc516587ae6245d8661a551fea4aee941a79965919403973d831e2651c7853f80fbcafc22dcb884990ef42627272d8912b3f6cc69d2ca03b0e5eedc50924d4e9e5e93c3e515426d73dab504eab06533ab7797fd4649eeb403e433f85f04bde8fe26fd21fce42996c3428feb56917065043d89d3272961dea603838a2e4242c05ac019d36387408d8d4136116076ec35d03b4a2e8691c7ca93f30331240c6d3439f5a6170465ec770e931dc2b05e8f6ca8a3aa12a96688f88c08ca03161f525dc89f655fa5075c00aef0e1fdead9128c21615f19f8dc2b0edecd2ed503f9145ee705ef544ebf609727b4e558fe65284d3d6127170218d8e077d2ed5b4503e243112d35cc4df7c2928a6e54aa56b02ffbd46c0a05ead44cd9ae75484cbbb200581f030376f7877c5020f356782bd0ea32b4c1a7a2705445d3311b6664a928ab004d1e1d5494d9e4f1800000d9589800581f036964e9b4d332c443ad2bb18712f80dcde4a1e1ae958903ee0f315d9824804d2be21af09983c03c1400c7006c00581f031d5039f84230ed658e859d8ceadbbddd070a117aaccbcc827f9986bbf31042de18032046b27fa675479a3bf4322bcffe2c52e1dc5670e775eb010aef8aef929ca0ef03e14c7dc7a333f48a720ee0742febfe55c93eb135bda3334b81d436c33032eb3203c9478a4699e43013a6e07248d40dd45d820e3a783987a4872b3a225ed7343b510351c47d9ee8239997ba5e782b6c476f69bdd4ed4526f0e48170135401a13a5f3700581f033e99f407d8a1b262c0718ded60eb8ce2f623ab52ecec30e71467b3f87db04e05395b34bd73960614c50121a143036c35b20676758a0e1e8667f3691eccd2cbae3784fe3692aa0fe86bfc6e0cb60e030ac6514daadfceb6c321a294e1ed20a5565b218ccd1c0a4ba63d26c4fc6b21c8037a2faf03e4ac3fb557fd719113f22dbad4d6a3db428f704594450d0cc284bf7101410500581f035d84e6d26d8a1fdabb52f9e2a84c2c46aa3341e37697c1f1ba1e837ece204f022424efb15c1de6a9dc3f00dcaf480219fb8f03ba88c6c07ad84ddce03a0f1559eee6e6830adc654cc0fa090e48c6ae9c8c8fee0305ea78350359675e104df9026ea1ce85eb39ad74f0e57d0c675c8a2c8a0e7c6e03d123c111126223e68b414782dbe0d92a846149483259875e50ea625c04f1492203d8de25c045c01e5e705d27b4f2268b2693c6a4f8ac513a086584d04e2a4b13ef039e183e852cb4f988854d15e276bc85b3557b7144762b00d094f177919f67198403a436659e8e7cb3e971290326c25982cee21d08bf8f6fe9c38fb4b6b39fd8523103654ef72927105e986ec08a87dcafaf872cdff5f5f08888613cd6ac7bb00725490302ba776f7e472fc9e431f553b68c3f4cbc3e6ef5d170d011f6b031d22a19307c03a022a9aeda06ac3c7f987fae863037e76f93a130589539943765096023fab9cf0219ffff0319c92469ef3f56cc05e2343463568750d3651c6f843e88382dd50f767776c37e038e2050a539196d00189d162675d332ff59d88298990d4c6a7d05a4804ea08f1503fafa91685b8b3fdbe77e1cd9707692346b6ef1b7bf42d7a3e83ad2b5858cbc780219ffff037bfa30444548305bbda41c5744f8b9c9af966cb1e0a2fdf7d8c406aeedefe2bf03d1df523794e325a00b22da49b7ada6bbbe9d05ddcfb3a9269af200b24841581b03a3776915e40a62ccd1c2a9a4f98141032d38695ca0dbcec3973b5db76f9339230219ffff03e7949c181c0ba2961aee4aa209053a27de84196784981728dc999cd0b221b5670346ab05fcc795e68e131bbb8edc2753a2bfc7e2d4b951b41f7ed3790cba6c945403cb457fa7873a229927c253e3b5d064a92cc0c362b7c0dd4acae5ea9e0bb2ba580337d60d981a8010195b7d02f4acc1c04d1033adae57866d3b305835cc48e8e10103e292ca80235e2c0ee55cbb765c15c02004e319c3958f01aef22ec4b2f5f99e9c0332675b20505c2043344efca23e2e6ea9785bc5725ff9aeccd4a709c5cb20e27b03dfbc6e8508c51f4ca52518267b5f9ca1b8804b54f94201287a9e8f94dfa1792d03c46364d37100f94906b753e1b2609ba00a8892368effbd7404663dbc8541014403388fc4b0a4c0965ef0ddc6204454dca4d2bb5992dc59bf70ccbbbf4540b55eb203997357ab7611caebfe44b2bc86d24df47d3b997a8ef3464d11d84079122aada90370eec74add8d7efa4c36b391e3dd8616c88b7030c059fb563986a19ffda0df2b03461f0999068c81f0c0e18f94fc9c5482cf70280e5fe62a16ba7fae97100948ee0319dc5fb1f1dc28d69184f80cc14a84b4be2c7a59de20e99f81935fd42ab9ba330341c34ec42e918a0d702a23854cb35f89042f8a8ed552856a59969d173bba4e1600581f03297de675550774b011bfbe00e24726219bf3954f0f3fd42826017ca5c7f04e1c97076efc1319ee4de500dbd0f000581f039f62383ed08c708e95fcfe5a46f834bd00eb8dc5e7ef67d986b5476c61c04e080825f701258f89e6b700b54c1c00581f035e4d09e74e700ba72128703f519cabb5e71ef650da07a4f87198830cbaa04d0593c569bd7c7cc3e900d4506300581f0350c68fd1e66f7f7e3ec178aa19d1f7d69818637b49086854868a454537704e1a811566da3da385c00000eadc5003c097bfaf537bf634d5a97f7d0e35b71d254c769a46bea00cd5e88c375e96959800581f031f51d85b1d7f619a341bd53f409ef69868cf6bcf3f7caee63eb8af3278b0440115f81800581f03de0977ee2f804c203b49fbfa8b1a494f26d5a9cd80b157b22df39cdaf3004e094dbd549264b5045cc101003fbf03714938ac800acf70b446495032ba399f6b6adab3bbb4cb0286d4e2db916214fb00581f035cc49969552059b650f3e25b21e371f0b9a1c8552c77475a0abe94f571704e15e4ea0ff2b1b0a3d7b200b4ce7b0305a1e65a08399fe3e13dfb07e458c493b11aaa73e4da3a5fba7d91238bac67d000581e02b10991be23eff3e8dee7fc0eca6a472735b622864635fee2c0eb9a45c84df2660899f4804848c000fbe1b402190280031c77d4e3ed145a2c8df6c0e16d78d1d26c7b4102bbef2655f221d2bd2397c3950368f8d19a75a20f4dcf606f5909f129eadccaf2fd533b60859e55339161a8380103991de623ae37e2f10dec99a6a39d92b67e8bdf681671ecbeb490013b0b6864fd00581f03a8299f15599d6e4d0065182543df526ed04a1784318839bdd672e36e87704d016c3f0023a4467fb000d871e40219efef03cf56d56df4c81f65c52b0c570dc72d37310b2ca355f536c798ebf114e531c9e903f775b3a9a7407bcc6509463c8160707e29b041c405d5b107ff4e039342597b2f034ef8489d0db2f052e35014adcef1af591d3f28aff16b42fd5f2597e84087b24d03f3eb27ba4fd1cedb29899266f9b9afc08fc63e41e67ab46fe86e5efbe239b5ae039508337a424bf40c89979ec793d358e889dc0ac93df5e5f700fdb0abd3af61c0033b4f0d33b0bf904ca474aa06b8adba0aa2389c61d7ec57378bfc023ce3a8dc4c03a98f9564c6d22a096b52ece53c6dbc903acf03a8bdfc53600c47b35f6eb95dd203aff5ac7c195a3a04c9161513d1aa25d5e6d84d2717141ec13473cf6ad24c863c031515f8fe510fdaaf8cdaeb5e8dd9a26cda988b56291423c32f927751743d6d3b03ff9e2d53be688209c6d25b89113f836a118a1a22edde8c37b0233d5d0b2b2eb9035606c2fc5498e7ad02ddaa40e213989ef4ec69ce7f158e23df476505d618b0ed03a9055f2fe8850f86ed643c612982b65daa53f73d6cff3b2dd4e7a66c4516be3f036e63e0c0cb2b8e7cd8cca11fab49ec2a91acf680d323fbf643e1825b68734fc9031dbbb9124f9669ee973cef0df21c858fa4c86fe3fd7349f1da9f59dd505d00590219ffff03b5177e506cfbb33b64564c19a32eef41d0eb8c998477a29846bba297df3b215503d2c477a6c179cdc6eb6c6f0444245e4fb519bfff0f204391dceb5c3cdae1568903f9875c2ebda38a79638df1fbf6f8299bb77699eb84c3249446422c466a890c0f03502d29a276baf98294716335bc38ecd90064bc410f2d6929e94ec7a57ddc0b2603d5589729b9a11957f5730bbf0f58137f17a2d72907648ead41546adc8c80b1c00388a7e298ceaf0c045045920c7b921885bda34d1f4003e0d739cd3edfb3aaac9803a718f893712fa37baf4846198603649cf0b059a4d3961a38fd644767e4df7331034f358c8fce6a878a4d391cb047a5446014e0086279067a49d6a2e1f991e0dca903710074363d5b2584584b823f3ec9bc248eb50b9ff5cd8569a6f4557e304d0b7903bdecdbad00034f87d1c070ddea5a10ddb82f763e37e860126c2170eaf57e05b303a1ae557c4c02fe00d410be8405420f3728ff3fe45c67c15d7bcbb6a7e489eacb0219ffff039dd90ebb2c3afb5ed76fe1a6b1ac53ad27cdb07bc8b4e39212fb5f9ff629bade03b27890f18e35ffe8c7733f4465847eb9cfc0573efc2192a19b4a5d878e0690ce03cfac5fb5df68835d23d40bc8cead76bbb95005b47c76198a4d69fc206ae444c2039112bc9c0373c0c3727ff8ed98479cdd12b301ba37e49ae686c90003d822932b0329694b8b5904cc2ceb2b772ef8e0478c1375d907bb920345e00a335069bb131c039b7e31e4f97db284e49a228fe29b25012e9df8e2dcced3a0196f5014ee180eb203404cb1dce563ad93092c1b24868902484bd54488336dbaad9f84c79434782bc1038dcc485ae3ba1a301ab721d04d7a75454baafc84ec887b14c6371bc8c7feddb703e50e264aa1962b008dcb8ace4cb7041abc68f9177979440b24c941a029b2f916039c0685ac709f8807bee138114e12ce1d2fa0df1241bf0eab9c11c21bb5a38df303d2117e4f13b053031e12b7db89a961837d449af44d6fd54f054d7a712683885c032d0e348f9f7adb6a8ca85d8067c0a153211fb3d0ceabf6c16a13f757ba8cfa2a0395f0e9a24230c6892146b3179d0f174928db4f2c42710c6e9cca5aecdcf7c0ab03f1177f6d4a280f5b16d55d6bc4cf3e67a80c317c2cf36bafaa96131634af4dfc03d32a636e5d19263c3c2244e44a71a119a24ce599b2ec9de54d45c7ec6a35852b03d1427bc49c30f34f2f45e68feca7fdb2e88e8e0e35f32a68b447b818b5696c070372fc77855412f73932633288f936805246a7d735f5556a56607cc39f7b9a6f08038d19394fd475894d54a4e01fa470af5a06c32525c2fd92b518e69563362eaa93038eee8fe186b5007e37655a5bdd4aa580088c7fac54bcc8b60659866f03ab173a0342fd02c11d54e9df12acad1bff4115e674296e893f3c284d5763476594c5718d03e8774a36b9c4354db840854c6517791c7e49047dafddf12a9bc84a620a565b4203891a6fec916ec704abe2af12048054e31a4fb30cf8366481aa1e3c4547907ae203874098d8a257357703bdb4530ee6a455e40c79ac3211cf299b2492ddf943946603618baaf446e739ad0a5b0e0a2298236e9ea797da9b5fd59d8bb271668c13285203137d742d6e07293161ca93dba81722876a4dc074d31c9e29a364ee74742355d500581f03d4f37e053b306c025ac05d72684a011f6094e984487edafd0e63b1f80e204d115d31ffb8d582bc4d00f4b078033d4302aef4ba8c42c36d39af6d393f0233ec91689a3a5c9d1c4ab6aa793dcc9203be692be9de85b2e72fd8d48dbcb5d556fb3c61dcf3207b1fa0b395810866c39d00581f03c67de8fdbf7d8acb7cdf4b6cc9dc957a0a0d076b7275d303cf1a6dfbb3204f02c5e4d015e21f972ef9e200f391a203c7451e849a0cfcebda2109127189953ccc3449d9fd4b4e985fc55d3bd09d793a01410200581e027e222737a8f57d3d624dc5cd2e857524610b3a5142c9e0c56fd729a12c450100f6a91600581e022ee9b1d3dd26e2831e7e20caea9f8777f7206165c58de1c7f49541bd6e43f6452c0219808003f6b2905ae491788a780f568cb1d51b7cb8097315d2b34c82af3b5581408a056b0381df24b84990d8dd7cb2f5c79bf94f7dd5eaac3ab2186217568745983713da7b00581f03dec48b77d615c1983e1de226b142dcd3fa58cf316ad180b1bb9c344239704d5886abe429a5ca2c7000fa71a103c4ad2184aabbf3c4558939d6baa2812fdb46663992bc506c3477d65f7acce55e0339dfcbe3013cdc7ba49b276967d78beb673dbddac334b6376716a76137fdd13403c51329e4ae4986efde4ab2453abbb177d70c8f66ceef2935d825416794d05ab000581f03be804faaf06ea998cddf2f6672f8d04785a421c06a6374f056e92ea841804e325e5ed9cff6e975cba1011e414f0219fd5f0219ffff030932c3b039b15b21d153c9dab562ec09d439185976178d4e01fe8cd1eb1cdb7d03e37933f6b61eae3e03265ec9a3037e6d71b93b2bea6317c7af62a46db47bb66c03cb5cc502f6d2eed4e56e56d0f4ae181ee4915c64c953f2725fe6b74358f1c756039b421712191e158855a68fef04d5e7815f48428f54ed1ca3fb8173847a6bc15503359a3cb21bd81412a6dc4aa85d3e2914ecebed43f8b704d5e2094222d3ad3773033fb8d1ee682542c871d80fd53f94271ef012d8c29a9ae68abfd51c4d27325e3b03195473509b6b67ac55712ae0df40cdf1273183ddfdd7517eb56b72d5ec5bb2080219ffff03ae1027c746d8e1a06102cba16b8dbf033dace4e746e2822c7ba8f7e4ef43156703e1fa3fb88f33b7400da985ef6b9e2f1f96a3186146e023c3fbca36dba4eb176003f6c7aae4b6d4318fdcf0bb06f7644101faf0e569c73a6d970368adbb1706b14903a9236390903e49639e65793a4db2e5b1da4f51f68d36176ce7040dec9b052f1303272f47e06bec81893a260a69e036385eaf4eea0385b9c828ff2d5c8c01c1a3610219ffff0219ffff05581d02388a38e67904920127d61ba5d60e91749766c93679f6f2cff96ef57e07011931e105581d0291940e4ad649353c164914fdebbbc0aeca11477dbd06ed6f0e5e3e0d04050219508005581e03405efcc65c160b7dc6bffe2426e30a2ab34dd2a35265f5e17365deff100c0947010e935363d08e05581e03c41a428617fd3d54c3885536114a19f68dad60fc773b8327d01111e3700c01471d0fbd9897f4ed05581e039eaadb12a703852ddba353c5edfad316f25481635eaee840738a99e4600c07464de056fc62d0037a3670f78c75958f13f8579474b348612a80af61fa9b61b2c81c415523f170590605581e03e8d40f24c9a4bd36818e5c49a067aaae2f347c830d7c37ede2a3522cf007011bffffffffffffffff03734decc2529145b4e9ca77387cdd03fba4758a202894de8baad83bbffeae87a103686ffe0e0ef988db6601b5715d6c588d7a8d3bbd3ceb9ca00090c82ff9631460021976a703419b9bf700e759b6d14f99c5c36ca4e3f9c2483aa95c64d5c1ca338acfe7a13203a1e73791ac5812cbf49650388b6f2de8ef51e4ae8414dd29d7434d9da57652eb03b542648a65b4cb277e2a32d03dce0fdd0e7610086d5676a1b711af1319c6c6f303917a2d09d2d154d24c43005394d7ccc9845773f596d0cca89013443a77e4c3ce03fb1fbef190e0acf7956f5ade8cdf5111d34707e1758a73bcca393e256fd117510365811fd404c4e03aa5e81b6654ed49e1b821567cc7d1dfc2c7d02c3e1882a5290360c5eed1a79bbbd18975709deaedb41d2b224fa41f66b2a182e3c3de81c917100366aca7bfbdfc5f95cbb9487bc70b1f33e63f2a451a056aefe809817f30f8e240035782e1dd02190f5fda829f3df2e01e4dd2948c37f672b9cb024e25894036b5f403244e37bb3ffb4aef08e281cf7c99baa8affb2e0557081e02c80b34423ec957190328355f465bd337ec1ab48e262d35e8fa92b92d123356b3abf2f1e80d2c8b6aa3031e5f2bdbc3de4e375c7cc8d37dde4c55c7ec4b2df37494d1bd6b1caa8dc2f61d03404f7d139fa184fcfef41485ce95d247f5adceadfba5ab11f60f136281acad4203c8460f78a9c6a0ee6bc123866d06539177cd4472dfdfc1285040b7c2ed3187140219ffff037a8aeb322d17d46c553bc9edb242a6518292e6939fc4713e50c54579e991a79b03f407ff85ea8c34bff737be662a079b75c04b353066f1809a424a5b4682a15c2a0219ffff03d5529cb29a04f7596f6fd33aa5aff6d834130580ad6cd577bb5ce49868822252039da8ccfd5fc9858ea205840c54f2f8f8a4c057fa5d1651556e377d5b79960a7903c922a4d8453e2ff0298792037e3f5795459935030eb63bc9a1ec46853b1332290306e4f547dbf7869d2480ff0feec5b466e8a349d96b7333acea7943b19f0bab9e03d34cad6e51946829def86cd04af6541704ccb110400fb1fd15800e204be31ca203e2c68a9be6bac577b3020d2f2a9b7dc80e6a7c2737c2886462a1f6c0f4889ea70219ffff030d2bd967f58a9d950a2eeee29bb2a3980b42cc391c1ce3c781388448977177f00306e66acfad771eb1867d9f5e528d9eabee8059d62e498753c7f2e9579e63bf1a03591750c5508bb6b81f58fc08b35063f3c621cb342c625adc69c13e3eae0651ed0320790d8c658d3810ab37c8978e8a29bb98fbf8713c63b53366a8acfa8a2980870333011b447fa2c6fb1631c515f6fc907e0e82063934d3d5762cfae052bda0850003eb21dcfb9b687c91b54a954ce38de4ab9b7cb6291395cd3406914d3a7bcf5796037866d8653f0e8620b11e838248a49bcfb2457e60e1442f5c6c78414dc300d0a303e946880a1f8cb4b7a80742fdfcec97c065c158029311efcb7b02aad21b0a6ac303f4e5a4a7704467e61935fa47fb9a9797a5b0c136e8689b2f2764f2706ac5cb8d03073e965020795526b4d5898f2eadfde8890fdf88c2ca4960060c6654b13cc1c8038adfafa4ee6c1ae1ce3657ccef733e631f2573e08a0170c369690894f4c747c603642a2adbf83ddfde200bc32b71f6e0f3b6202fbd0d2cc052770e42f15dda2e3a031694391179c0c8678a6d1f8d34cd94ca69e01dc83a51630aab82a26db826fb4303a92b746e1158f58803617fce8f807f8dff86397462f832e471f4842f0889616205581e033f4800ed3c54b5ecdbb0d9b9ccc25cc193d8da956af76c24b0128f3a20040105581d02348cca152ec01d140b79ed8dc3a620a775f1f509b69f28b426517c7c040104594d666080604052600436106103345760003560e01c806376203b48116101ab578063a9059cbb116100f7578063df2a5b3b11610095578063eb8d72b71161006f578063eb8d72b714610a18578063f2fde38b14610a38578063f5ecbdbc14610a58578063fc0c546a14610a7857600080fd5b8063df2a5b3b146109c3578063e6a20ae6146109e3578063eaffd49a146109f857600080fd5b8063c4461834116100d1578063c446183414610934578063cbed8b9c1461094a578063d1deba1f1461096a578063dd62ed3e1461097d57600080fd5b8063a9059cbb146108b3578063b353aaa7146108d3578063baf3292d1461091457600080fd5b8063950c8a74116101645780639dd373b91161013e5780639dd373b9146108335780639f38369a14610853578063a4c51df514610873578063a6c3d1651461089357600080fd5b8063950c8a74146107ac57806395d89b41146107cc5780639bdb9812146107e157600080fd5b806376203b48146106d15780638309179e146106e4578063857749b0146107045780638cfd8f5c146107385780638da5cb5b146107705780639358928b1461079757600080fd5b806338682268116102855780636282cbbc1161022357806370a08231116101fd57806370a0823114610646578063715018a61461067c57806374991569146106915780637533d788146106b157600080fd5b80636282cbbc146105f357806366ad5c8a14610613578063695ef6bf1461063357600080fd5b806342d65a8d1161025f57806342d65a8d1461055a578063447705151461057a5780634c42899a1461058f5780635b8c41e6146105a457600080fd5b806338682268146104ed5780633d8b38f61461050d5780633f1f4fa41461052d57600080fd5b80630df37483116102f257806318160ddd116102cc57806318160ddd1461046d57806323b872dd14610482578063313ce567146104a2578063365260b4146104bf57600080fd5b80630df374831461041557806310ddb1371461043557806312097e551461045557600080fd5b80621d35671461033957806301ffc9a71461035b57806306fdde031461039157806307e0db17146103b3578063095ea7b3146103d35780630d9c8a7e146103f3575b600080fd5b34801561034557600080fd5b506103596103543660046130b5565b610a8b565b005b34801561036757600080fd5b5061037b610376366004613170565b610c51565b604051610388919061319b565b60405180910390f35b34801561039d57600080fd5b506103a6610c88565b6040516103889190613201565b3480156103bf57600080fd5b506103596103ce366004613212565b610d1a565b3480156103df57600080fd5b5061037b6103ee366004613269565b610da3565b3480156103ff57600080fd5b50610408610dbb565b60405161038891906132ac565b34801561042157600080fd5b506103596104303660046132ba565b610f18565b34801561044157600080fd5b50610359610450366004613212565b610f37565b34801561046157600080fd5b5061040863657e21db81565b34801561047957600080fd5b50600954610408565b34801561048e57600080fd5b5061037b61049d3660046132dc565b610f8b565b3480156104ae57600080fd5b5060125b6040516103889190613335565b3480156104cb57600080fd5b506104df6104da366004613356565b610fb1565b6040516103889291906133d0565b3480156104f957600080fd5b506103596105083660046133eb565b611006565b34801561051957600080fd5b5061037b61052836600461340c565b611013565b34801561053957600080fd5b50610408610548366004613212565b60036020526000908152604090205481565b34801561056657600080fd5b5061035961057536600461340c565b6110df565b34801561058657600080fd5b50610408600081565b34801561059b57600080fd5b506104b2600081565b3480156105b057600080fd5b506104086105bf366004613560565b6005602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b3480156105ff57600080fd5b5061035961060e3660046133eb565b611165565b34801561061f57600080fd5b5061035961062e3660046130b5565b6111d1565b6103596106413660046135db565b61126e565b34801561065257600080fd5b5061040861066136600461366d565b6001600160a01b031660009081526007602052604090205490565b34801561068857600080fd5b506103596112d9565b34801561069d57600080fd5b506103596106ac36600461366d565b6112ed565b3480156106bd57600080fd5b506103a66106cc366004613212565b611317565b6103596106df36600461368e565b6113b1565b3480156106f057600080fd5b506103596106ff36600461377c565b611460565b34801561071057600080fd5b506104b27f000000000000000000000000000000000000000000000000000000000000000681565b34801561074457600080fd5b506104086107533660046137af565b600260209081526000928352604080842090915290825290205481565b34801561077c57600080fd5b506000546001600160a01b03165b60405161038891906137eb565b3480156107a357600080fd5b5061040861153d565b3480156107b857600080fd5b5060045461078a906001600160a01b031681565b3480156107d857600080fd5b506103a661154d565b3480156107ed57600080fd5b5061037b6107fc366004613560565b6006602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205460ff1681565b34801561083f57600080fd5b5061035961084e36600461366d565b61155c565b34801561085f57600080fd5b506103a661086e366004613212565b611586565b34801561087f57600080fd5b506104df61088e3660046137f9565b611665565b34801561089f57600080fd5b506103596108ae36600461340c565b6116f4565b3480156108bf57600080fd5b5061037b6108ce366004613269565b61177d565b3480156108df57600080fd5b506109077f00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd67581565b6040516103889190613916565b34801561092057600080fd5b5061035961092f36600461366d565b61178b565b34801561094057600080fd5b5061040861271081565b34801561095657600080fd5b50610359610965366004613924565b6117e9565b6103596109783660046130b5565b611873565b34801561098957600080fd5b506104086109983660046139a7565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156109cf57600080fd5b506103596109de3660046139da565b611a13565b3480156109ef57600080fd5b506104b2600181565b348015610a0457600080fd5b50610359610a13366004613a0f565b611a72565b348015610a2457600080fd5b50610359610a3336600461340c565b611b5f565b348015610a4457600080fd5b50610359610a5336600461366d565b611bb9565b348015610a6457600080fd5b506103a6610a73366004613aff565b611bf7565b348015610a8457600080fd5b503061078a565b337f00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd6756001600160a01b031614610adc5760405162461bcd60e51b8152600401610ad390613b9a565b60405180910390fd5b61ffff861660009081526001602052604081208054610afa90613bc0565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2690613bc0565b8015610b735780601f10610b4857610100808354040283529160200191610b73565b820191906000526020600020905b815481529060010190602001808311610b5657829003601f168201915b50505050509050805186869050148015610b8e575060008151115b8015610bb6575080516020820120604051610bac9088908890613bf9565b6040518091039020145b610bd25760405162461bcd60e51b8152600401610ad390613c4c565b610c488787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250611c9c92505050565b50505050505050565b60006001600160e01b03198216631f7ecdf760e01b1480610c8257506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600a8054610c9790613bc0565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc390613bc0565b8015610d105780601f10610ce557610100808354040283529160200191610d10565b820191906000526020600020905b815481529060010190602001808311610cf357829003601f168201915b5050505050905090565b610d22611d15565b6040516307e0db1760e01b81526001600160a01b037f00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd67516906307e0db1790610d6e908490600401613c66565b600060405180830381600087803b158015610d8857600080fd5b505af1158015610d9c573d6000803e3d6000fd5b5050505050565b600033610db1818585611d42565b5060019392505050565b60408051600380825260808201909252600091829190602082016060803683375050600c5482519293506001600160a01b031691839150600090610e0157610e01613c74565b6001600160a01b039283166020918202929092010152600d54825191169082906001908110610e3257610e32613c74565b6001600160a01b039283166020918202929092010152600e54825191169082906002908110610e6357610e63613c74565b6001600160a01b03928316602091820292909201015260125460405163d06ca61f60e01b8152600092919091169063d06ca61f90610eaf90670de0b6b3a7640000908690600401613cfc565b600060405180830381865afa158015610ecc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ef49190810190613dc9565b905080600281518110610f0957610f09613c74565b60200260200101519250505090565b610f20611d15565b61ffff909116600090815260036020526040902055565b610f3f611d15565b6040516310ddb13760e01b81526001600160a01b037f00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd67516906310ddb13790610d6e908490600401613c66565b600033610f99858285611d54565b610fa4858585611dbf565b60019150505b9392505050565b600080610ff78888888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e1e92505050565b91509150965096945050505050565b61100e611d15565b601155565b61ffff83166000908152600160205260408120805482919061103490613bc0565b80601f016020809104026020016040519081016040528092919081815260200182805461106090613bc0565b80156110ad5780601f10611082576101008083540402835291602001916110ad565b820191906000526020600020905b81548152906001019060200180831161109057829003601f168201915b5050505050905083836040516110c4929190613bf9565b60405180910390208180519060200120149150509392505050565b6110e7611d15565b6040516342d65a8d60e01b81526001600160a01b037f00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd67516906342d65a8d9061113790869086908690600401613e26565b600060405180830381600087803b15801561115157600080fd5b505af1158015610c48573d6000803e3d6000fd5b611170335b3b151590565b1561118d5760405162461bcd60e51b8152600401610ad390613e6e565b60008061119983611edb565b600f54604051636e0ecc0360e11b81529294509092506001600160a01b03169063dc1d98069061113790339086908690600401613e7e565b3330146111f05760405162461bcd60e51b8152600401610ad390613ee9565b6112668686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061209092505050565b505050505050565b61126685858585611282602087018761366d565b611292604088016020890161366d565b61129f6040890189613ef9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506120e792505050565b6112e1611d15565b6112eb60006121a1565b565b6112f5611d15565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001602052600090815260409020805461133090613bc0565b80601f016020809104026020016040519081016040528092919081815260200182805461135c90613bc0565b80156113a95780601f1061137e576101008083540402835291602001916113a9565b820191906000526020600020905b81548152906001019060200180831161138c57829003601f168201915b505050505081565b6114558888888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506113fe915050602089018961366d565b61140e60408a0160208b0161366d565b61141b60408b018b613ef9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506121f192505050565b505050505050505050565b605a8163ffffffff1610156114875760405162461bcd60e51b8152600401610ad390613f96565b6114903361116a565b156114ad5760405162461bcd60e51b8152600401610ad390613e6e565b6000806114b984611edb565b60105491935091506001600160a01b03166340f320bb336114da8486613fbc565b6114e78762015180613fcf565b6040518463ffffffff1660e01b815260040161150593929190613ffe565b600060405180830381600087803b15801561151f57600080fd5b505af1158015611533573d6000803e3d6000fd5b5050505050505050565b600061154860095490565b905090565b6060600b8054610c9790613bc0565b611564611d15565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b61ffff81166000908152600160205260408120805460609291906115a990613bc0565b80601f01602080910402602001604051908101604052809291908181526020018280546115d590613bc0565b80156116225780601f106115f757610100808354040283529160200191611622565b820191906000526020600020905b81548152906001019060200180831161160557829003601f168201915b50505050509050805160000361164a5760405162461bcd60e51b8152600401610ad39061405a565b610faa60006014835161165d919061406a565b8391906122bf565b6000806116e28b8b8b8b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b81528e93508d9250908c908c908190840183828082843760009201919091525061238792505050565b91509150995099975050505050505050565b6116fc611d15565b818130604051602001611711939291906140a5565b60408051601f1981840301815291815261ffff851660009081526001602052209061173c908261414e565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce83838360405161177093929190613e26565b60405180910390a1505050565b600033610db1818585611dbf565b611793611d15565b600480546001600160a01b0319166001600160a01b0383161790556040517f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b906117de9083906137eb565b60405180910390a150565b6117f1611d15565b6040516332fb62e760e21b81526001600160a01b037f00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd675169063cbed8b9c906118459088908890889088908890600401614210565b600060405180830381600087803b15801561185f57600080fd5b505af1158015611455573d6000803e3d6000fd5b61ffff861660009081526005602052604080822090516118969088908890613bf9565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806118da5760405162461bcd60e51b8152600401610ad390614296565b8083836040516118eb929190613bf9565b6040518091039020146119105760405162461bcd60e51b8152600401610ad3906142e4565b61ffff871660009081526005602052604080822090516119339089908990613bf9565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f880182900482028301820190528682526119cb918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061209092505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051611a02959493929190614303565b60405180910390a150505050505050565b611a1b611d15565b61ffff80841660009081526002602090815260408083209386168352929052819020829055517f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac0906117709085908590859061434a565b333014611a915760405162461bcd60e51b8152600401610ad390614399565b611a9c308686612442565b9350846001600160a01b03168a61ffff167fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf86604051611adc91906132ac565b60405180910390a3604051633fe79aed60e11b81526001600160a01b03861690637fcf35da908390611b20908e908e908e908e908e908d908d908d906004016143a9565b600060405180830381600088803b158015611b3a57600080fd5b5087f1158015611b4e573d6000803e3d6000fd5b505050505050505050505050505050565b611b67611d15565b61ffff83166000908152600160205260409020611b85828483614414565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab83838360405161177093929190613e26565b611bc1611d15565b6001600160a01b038116611beb576000604051631e4fbdf760e01b8152600401610ad391906137eb565b611bf4816121a1565b50565b604051633d7b2f6f60e21b81526060906001600160a01b037f00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd675169063f5ecbdbc90611c4c9088908890309088906004016144d6565b600060405180830381865afa158015611c69573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c919190810190614563565b90505b949350505050565b600080611cff5a60966366ad5c8a60e01b89898989604051602401611cc4949392919061459d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190612494565b915091508161126657611266868686868561251e565b6000546001600160a01b031633146112eb573360405163118cdaa760e01b8152600401610ad391906137eb565b611d4f83838360016125bb565b505050565b6001600160a01b038381166000908152600860209081526040808320938616835292905220546000198114611db95781811015611daa57828183604051637dc7a0d960e11b8152600401610ad393929190613e7e565b611db9848484840360006125bb565b50505050565b6001600160a01b038316611de9576000604051634b637e8f60e11b8152600401610ad391906137eb565b6001600160a01b038216611e1357600060405163ec442f0560e01b8152600401610ad391906137eb565b611d4f83838361268e565b6000806000611e3587611e30886127a3565b6127f9565b60405163040a7bb160e41b81529091506001600160a01b037f00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd67516906340a7bb1090611e8c908b90309086908b908b906004016145de565b6040805180830381865afa158015611ea8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecc919061462c565b92509250509550959350505050565b600c5460009081906001600160a01b03166323b872dd3361dead866040518463ffffffff1660e01b8152600401611f149392919061465f565b6020604051808303816000875af1158015611f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f579190614685565b506000611f62610dbb565b90506000670de0b6b3a7640000611f7983876146a6565b611f8391906146d4565b9050620186a0611f9a63657e21db624f1a00613fbc565b4210611fa9575061ea60611fc6565b611fba63657e21db62278d00613fbc565b4210611fc65750620138805b6000611fd963657e21db62ed4e00613fbc565b42101561200657670de0b6b3a764000060115488611ff791906146a6565b61200191906146d4565b612008565b825b9050611194620f42408161201c82856146a6565b61202691906146d4565b6120359064e8d4a510006146a6565b9750600096508483111561208557600061204f868561406a565b90508261205c83836146a6565b61206691906146d4565b6120759064e8d4a510006146a6565b9750612081888a61406a565b9850505b505050505050915091565b600061209c8282612828565b905060ff81166120b7576120b28585858561285e565b610d9c565b60001960ff8216016120cf576120b2858585856128ec565b60405162461bcd60e51b8152600401610ad39061471c565b60006120f587828481612af5565b6120fe85612b6a565b50905061210d88888884612baa565b90506000811161212f5760405162461bcd60e51b8152600401610ad390614760565b600061213e87611e30846127a3565b905061214e888287878734612bdc565b86896001600160a01b03168961ffff167fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a8560405161218d91906132ac565b60405180910390a450979650505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000612209896001846001600160401b038916612af5565b61221287612b6a565b5090506122218a8a8a84612baa565b9050600081116122435760405162461bcd60e51b8152600401610ad390614760565b600061225a338a612253856127a3565b8a8a612d38565b905061226a8a8287878734612bdc565b888b6001600160a01b03168b61ffff167fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a856040516122a991906132ac565b60405180910390a4509998505050505050505050565b6060816122cd81601f613fbc565b10156122eb5760405162461bcd60e51b8152600401610ad390614795565b6122f58284613fbc565b845110156123155760405162461bcd60e51b8152600401610ad3906147cd565b606082158015612334576040519150600082526020820160405261237e565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561236d578051835260209283019201612355565b5050858452601f01601f1916604052505b50949350505050565b600080600061239a338a6122538b6127a3565b60405163040a7bb160e41b81529091506001600160a01b037f00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd67516906340a7bb10906123f1908d90309086908b908b906004016145de565b6040805180830381865afa15801561240d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612431919061462c565b925092505097509795505050505050565b600033306001600160a01b038616148015906124705750806001600160a01b0316856001600160a01b031614155b1561248057612480858285611d54565b61248b858585611dbf565b50909392505050565b6000606060008060008661ffff166001600160401b038111156124b9576124b9613467565b6040519080825280601f01601f1916602001820160405280156124e3576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115612505578692505b828152826000602083013e909890975095505050505050565b8180519060200120600560008761ffff1661ffff1681526020019081526020016000208560405161254f91906147ff565b9081526040805191829003602090810183206001600160401b0388166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c906125ac908790879087908790879061480b565b60405180910390a15050505050565b6001600160a01b0384166125e557600060405163e602df0560e01b8152600401610ad391906137eb565b6001600160a01b03831661260f576000604051634a1406b160e11b8152600401610ad391906137eb565b6001600160a01b0380851660009081526008602090815260408083209387168352929052208290558015611db957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161268091906132ac565b60405180910390a350505050565b6001600160a01b0383166126b95780600960008282546126ae9190613fbc565b909155506127189050565b6001600160a01b038316600090815260076020526040902054818110156126f95783818360405163391434e360e21b8152600401610ad393929190613e7e565b6001600160a01b03841660009081526007602052604090209082900390555b6001600160a01b03821661273457600980548290039055612753565b6001600160a01b03821660009081526007602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161279691906132ac565b60405180910390a3505050565b6000806127d07f000000000000000000000000000000000000000000000000000000e8d4a51000846146d4565b90506001600160401b03811115610c825760405162461bcd60e51b8152600401610ad390614894565b606060008383604051602001612811939291906148da565b604051602081830303815290604052905092915050565b6000612835826001613fbc565b835110156128555760405162461bcd60e51b8152600401610ad39061493b565b50016001015190565b60008061286a83612d7a565b90925090506001600160a01b0382166128835761dead91505b600061288e82612dd4565b905061289b878483612e09565b9050826001600160a01b03168761ffff167fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf836040516128db91906132ac565b60405180910390a350505050505050565b60008060008060006128fd86612e1c565b945094509450945094506000600660008b61ffff1661ffff1681526020019081526020016000208960405161293291906147ff565b90815260408051602092819003830190206001600160401b038b166000908152925281205460ff16915061296585612dd4565b9050816129d3576129778b3083612e09565b61ffff8c1660009081526006602052604090819020905191925060019161299f908d906147ff565b90815260408051602092819003830190206001600160401b038d16600090815292529020805460ff19169115159190911790555b6001600160a01b0386163b612a25577f9aedf5fdba8716db3b6705ca00150643309995d4f818a249ed6dde6677e7792d86604051612a1191906137eb565b60405180910390a150505050505050611db9565b8a8a8a8a8a8a868a60008a612a43578b6001600160401b0316612a45565b5a5b9050600080612a775a609663eaffd49a60e01b8e8e8e8d8d8d8d8d604051602401611cc498979695949392919061494b565b915091508115612ad0578751602089012060405161ffff8d16907fb8890edbfc1c74692f527444645f95489c3703cc2df42e4a366f5d06fa6cd88490612ac2908e908e9086906149d0565b60405180910390a250612add565b612add8b8b8b8b8561251e565b50505050505050505050505050505050505050505050565b6000612b0083612ea8565b61ffff80871660009081526002602090815260408083209389168352929052205490915080612b415760405162461bcd60e51b8152600401610ad390614a24565b612b4b8382613fbc565b8210156112665760405162461bcd60e51b8152600401610ad390614a68565b600080612b977f000000000000000000000000000000000000000000000000000000e8d4a5100084614a78565b9050612ba3818461406a565b9150915091565b6000336001600160a01b0386168114612bc857612bc8868285611d54565b612bd28684612ed4565b5090949350505050565b61ffff861660009081526001602052604081208054612bfa90613bc0565b80601f0160208091040260200160405190810160405280929190818152602001828054612c2690613bc0565b8015612c735780601f10612c4857610100808354040283529160200191612c73565b820191906000526020600020905b815481529060010190602001808311612c5657829003601f168201915b505050505090508051600003612c9b5760405162461bcd60e51b8152600401610ad390614ad9565b612ca6878751612f0e565b60405162c5803160e81b81526001600160a01b037f00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd675169063c5803100908490612cfd908b9086908c908c908c908c90600401614ae9565b6000604051808303818588803b158015612d1657600080fd5b505af1158015612d2a573d6000803e3d6000fd5b505050505050505050505050565b6060600185856001600160a01b0389168587604051602001612d5f96959493929190614b57565b60405160208183030381529060405290505b95945050505050565b60008080612d888482612828565b60ff16148015612d99575082516029145b612db55760405162461bcd60e51b8152600401610ad390614be7565b612dc083600d612f4f565b9150612dcd836021612f8c565b9050915091565b6000610c827f000000000000000000000000000000000000000000000000000000e8d4a510006001600160401b0384166146a6565b6000612e158383612fc2565b5092915050565b600080806060816001612e2f8783612828565b60ff1614612e4f5760405162461bcd60e51b8152600401610ad390614be7565b612e5a86600d612f4f565b9350612e67866021612f8c565b9250612e74866029612ff8565b9450612e81866049612f8c565b9050612e9d6051808851612e95919061406a565b8891906122bf565b915091939590929450565b6000602282511015612ecc5760405162461bcd60e51b8152600401610ad390614c2b565b506022015190565b6001600160a01b038216612efe576000604051634b637e8f60e11b8152600401610ad391906137eb565b612f0a8260008361268e565b5050565b61ffff821660009081526003602052604081205490819003612f2f57506127105b80821115611d4f5760405162461bcd60e51b8152600401610ad390614c6d565b6000612f5c826014613fbc565b83511015612f7c5760405162461bcd60e51b8152600401610ad390614ca9565b500160200151600160601b900490565b6000612f99826008613fbc565b83511015612fb95760405162461bcd60e51b8152600401610ad390614ce4565b50016008015190565b6001600160a01b038216612fec57600060405163ec442f0560e01b8152600401610ad391906137eb565b612f0a6000838361268e565b6000613005826020613fbc565b835110156130255760405162461bcd60e51b8152600401610ad390614d20565b50016020015190565b61ffff81165b8114611bf457600080fd5b8035610c828161302e565b60008083601f84011261305f5761305f600080fd5b5081356001600160401b0381111561307957613079600080fd5b60208301915083600182028301111561309457613094600080fd5b9250929050565b6001600160401b038116613034565b8035610c828161309b565b600080600080600080608087890312156130d1576130d1600080fd5b60006130dd898961303f565b96505060208701356001600160401b038111156130fc576130fc600080fd5b61310889828a0161304a565b9550955050604061311b89828a016130aa565b93505060608701356001600160401b0381111561313a5761313a600080fd5b61314689828a0161304a565b92509250509295509295509295565b6001600160e01b03198116613034565b8035610c8281613155565b60006020828403121561318557613185600080fd5b6000611c948484613165565b8015155b82525050565b60208101610c828284613191565b60005b838110156131c45781810151838201526020016131ac565b50506000910152565b60006131d7825190565b8084526020840193506131ee8185602086016131a9565b601f19601f8201165b9093019392505050565b60208082528101610faa81846131cd565b60006020828403121561322757613227600080fd5b6000611c94848461303f565b60006001600160a01b038216610c82565b61303481613233565b8035610c8281613244565b80613034565b8035610c8281613258565b6000806040838503121561327f5761327f600080fd5b600061328b858561324d565b925050602061329c8582860161325e565b9150509250929050565b80613195565b60208101610c8282846132a6565b600080604083850312156132d0576132d0600080fd5b600061328b858561303f565b6000806000606084860312156132f4576132f4600080fd5b6000613300868661324d565b93505060206133118682870161324d565b92505060406133228682870161325e565b9150509250925092565b60ff8116613195565b60208101610c82828461332c565b801515613034565b8035610c8281613343565b60008060008060008060a0878903121561337257613372600080fd5b600061337e898961303f565b965050602061338f89828a0161325e565b95505060406133a089828a0161325e565b94505060606133b189828a0161334b565b93505060808701356001600160401b0381111561313a5761313a600080fd5b604081016133de82856132a6565b610faa60208301846132a6565b60006020828403121561340057613400600080fd5b6000611c94848461325e565b60008060006040848603121561342457613424600080fd5b6000613430868661303f565b93505060208401356001600160401b0381111561344f5761344f600080fd5b61345b8682870161304a565b92509250509250925092565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b03821117156134a2576134a2613467565b6040525050565b60006134b460405190565b90506134c0828261347d565b919050565b60006001600160401b038211156134de576134de613467565b601f19601f83011660200192915050565b82818337506000910152565b600061350e613509846134c5565b6134a9565b90508281526020810184848401111561352957613529600080fd5b6135348482856134ef565b509392505050565b600082601f83011261355057613550600080fd5b8135611c948482602086016134fb565b60008060006060848603121561357857613578600080fd5b6000613584868661303f565b93505060208401356001600160401b038111156135a3576135a3600080fd5b6135af8682870161353c565b9250506040613322868287016130aa565b6000606082840312156135d5576135d5600080fd5b50919050565b600080600080600060a086880312156135f6576135f6600080fd5b6000613602888861324d565b95505060206136138882890161303f565b94505060406136248882890161325e565b93505060606136358882890161325e565b92505060808601356001600160401b0381111561365457613654600080fd5b613660888289016135c0565b9150509295509295909350565b60006020828403121561368257613682600080fd5b6000611c94848461324d565b60008060008060008060008060e0898b0312156136ad576136ad600080fd5b60006136b98b8b61324d565b98505060206136ca8b828c0161303f565b97505060406136db8b828c0161325e565b96505060606136ec8b828c0161325e565b95505060808901356001600160401b0381111561370b5761370b600080fd5b6137178b828c0161304a565b945094505060a061372a8b828c016130aa565b92505060c08901356001600160401b0381111561374957613749600080fd5b6137558b828c016135c0565b9150509295985092959890939650565b63ffffffff8116613034565b8035610c8281613765565b6000806040838503121561379257613792600080fd5b600061379e858561325e565b925050602061329c85828601613771565b600080604083850312156137c5576137c5600080fd5b60006137d1858561303f565b925050602061329c8582860161303f565b61319581613233565b60208101610c8282846137e2565b600080600080600080600080600060e08a8c03121561381a5761381a600080fd5b60006138268c8c61303f565b99505060206138378c828d0161325e565b98505060406138488c828d0161325e565b97505060608a01356001600160401b0381111561386757613867600080fd5b6138738c828d0161304a565b965096505060806138868c828d016130aa565b94505060a06138978c828d0161334b565b93505060c08a01356001600160401b038111156138b6576138b6600080fd5b6138c28c828d0161304a565b92509250509295985092959850929598565b6000610c826001600160a01b0383166138eb565b90565b6001600160a01b031690565b6000610c82826138d4565b6000610c82826138f7565b61319581613902565b60208101610c82828461390d565b60008060008060006080868803121561393f5761393f600080fd5b600061394b888861303f565b955050602061395c8882890161303f565b945050604061396d8882890161325e565b93505060608601356001600160401b0381111561398c5761398c600080fd5b6139988882890161304a565b92509250509295509295909350565b600080604083850312156139bd576139bd600080fd5b60006139c9858561324d565b925050602061329c8582860161324d565b6000806000606084860312156139f2576139f2600080fd5b60006139fe868661303f565b93505060206133118682870161303f565b6000806000806000806000806000806101008b8d031215613a3257613a32600080fd5b6000613a3e8d8d61303f565b9a505060208b01356001600160401b03811115613a5d57613a5d600080fd5b613a698d828e0161304a565b99509950506040613a7c8d828e016130aa565b9750506060613a8d8d828e0161325e565b9650506080613a9e8d828e0161324d565b95505060a0613aaf8d828e0161325e565b94505060c08b01356001600160401b03811115613ace57613ace600080fd5b613ada8d828e0161304a565b935093505060e0613aed8d828e0161325e565b9150509295989b9194979a5092959850565b60008060008060808587031215613b1857613b18600080fd5b6000613b24878761303f565b9450506020613b358782880161303f565b9350506040613b468782880161324d565b9250506060613b578782880161325e565b91505092959194509250565b601e81526000602082017f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c65720000815291505b5060200190565b60208082528101610c8281613b63565b634e487b7160e01b600052602260045260246000fd5b600281046001821680613bd457607f821691505b6020821081036135d5576135d5613baa565b6000613bf38385846134ef565b50500190565b6000611c94828486613be6565b602681526000602082017f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f8152651b9d1c9858dd60d21b602082015291505b5060400190565b60208082528101610c8281613c06565b61ffff8116613195565b60208101610c828284613c5c565b634e487b7160e01b600052603260045260246000fd5b6000610c826138e88381565b61319581613c8a565b6000613cab83836137e2565b505060200190565b6000613cbd825190565b80845260209384019383018060005b83811015613cf1578151613ce08882613c9f565b975060208301925050600101613ccc565b509495945050505050565b60408101613d0a8285613c96565b8181036020830152611c948184613cb3565b60006001600160401b03821115613d3557613d35613467565b5060209081020190565b8051610c8281613258565b6000613d5861350984613d1c565b83815290506020808201908402830185811115613d7757613d77600080fd5b835b81811015613d9b5780613d8c8882613d3f565b84525060209283019201613d79565b5050509392505050565b600082601f830112613db957613db9600080fd5b8151611c94848260208601613d4a565b600060208284031215613dde57613dde600080fd5b81516001600160401b03811115613df757613df7600080fd5b611c9484828501613da5565b8183526000602084019350613e198385846134ef565b601f19601f8401166131f7565b60408101613e348286613c5c565b8181036020830152611c91818486613e03565b601081526000602082016f20a1a1a2a9a9afa327a92124a22222a760811b81529150613b93565b60208082528101610c8281613e47565b60608101613e8c82866137e2565b613e9960208301856132a6565b611c9460408301846132a6565b602681526000602082017f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062658152650204c7a4170760d41b60208201529150613c45565b60208082528101610c8281613ea6565b6000808335601e1936859003018112613f1457613f14600080fd5b8084019250823591506001600160401b03821115613f3457613f34600080fd5b602083019250600182023603831315613f4f57613f4f600080fd5b509250929050565b602281526000602082017f4d696e696d756d207374616b65206475726174696f6e2069732033206d6f6e74815261687360f01b60208201529150613c45565b60208082528101610c8281613f57565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c8257610c82613fa6565b63ffffffff918216919081169082820290811690818114612e1557612e15613fa6565b63ffffffff8116613195565b6060810161400c82866137e2565b61401960208301856132a6565b611c946040830184613ff2565b601d81526000602082017f4c7a4170703a206e6f20747275737465642070617468207265636f726400000081529150613b93565b60208082528101610c8281614026565b81810381811115610c8257610c82613fa6565b6000610c828260601b90565b6000610c828261407d565b6131956140a082613233565b614089565b60006140b2828587613be6565b91506140be8284614094565b506014019392505050565b6140d283613c8a565b815460001960089490940293841b1916921b91909117905550565b6000611d4f8184846140c9565b81811015612f0a5761410d6000826140ed565b6001016140fa565b601f821115611d4f576000818152602090206020601f8501048101602085101561413c5750805b610d9c6020601f8601048301826140fa565b81516001600160401b0381111561416757614167613467565b6141718254613bc0565b61417c828285614115565b6020601f8311600181146141b057600084156141985750858201515b600019600886021c1981166002860217865550611266565b600085815260208120601f198616915b828110156141e057888501518255602094850194600190920191016141c0565b868310156141fc5784890151600019601f89166008021c191682555b600160028802018855505050505050505050565b6080810161421e8288613c5c565b61422b6020830187613c5c565b61423860408301866132a6565b818103606083015261424b818486613e03565b979650505050505050565b602381526000602082017f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737381526261676560e81b60208201529150613c45565b60208082528101610c8281614256565b602181526000602082017f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f618152601960fa1b60208201529150613c45565b60208082528101610c82816142a6565b6001600160401b038116613195565b608081016143118288613c5c565b8181036020830152614324818688613e03565b905061433360408301856142f4565b61434060608301846132a6565b9695505050505050565b606081016143588286613c5c565b613e996020830185613c5c565b601f81526000602082017f4f4654436f72653a2063616c6c6572206d757374206265204f4654436f72650081529150613b93565b60208082528101610c8281614365565b60c081016143b7828b613c5c565b81810360208301526143ca81898b613e03565b90506143d960408301886142f4565b6143e660608301876132a6565b6143f360808301866132a6565b81810360a0830152614406818486613e03565b9a9950505050505050505050565b826001600160401b0381111561442c5761442c613467565b6144368254613bc0565b614441828285614115565b6000601f831160018114614475576000841561445d5750858201355b600019600886021c1981166002860217865550610c48565b600085815260208120601f198616915b828110156144a55788850135825560209485019460019092019101614485565b868310156144c157600019601f88166008021c19858a01351682555b60016002880201885550505050505050505050565b608081016144e48287613c5c565b6144f16020830186613c5c565b6144fe60408301856137e2565b612d7160608301846132a6565b6000614519613509846134c5565b90508281526020810184848401111561453457614534600080fd5b6135348482856131a9565b600082601f83011261455357614553600080fd5b8151611c9484826020860161450b565b60006020828403121561457857614578600080fd5b81516001600160401b0381111561459157614591600080fd5b611c948482850161453f565b608081016145ab8287613c5c565b81810360208301526145bd81866131cd565b90506145cc60408301856142f4565b818103606083015261434081846131cd565b60a081016145ec8288613c5c565b6145f960208301876137e2565b818103604083015261460b81866131cd565b905061461a6060830185613191565b818103608083015261424b81846131cd565b6000806040838503121561464257614642600080fd5b600061464e8585613d3f565b925050602061329c85828601613d3f565b6060810161466d82866137e2565b613e9960208301856137e2565b8051610c8281613343565b60006020828403121561469a5761469a600080fd5b6000611c94848461467a565b818102808215838204851417612e1557612e15613fa6565b634e487b7160e01b600052601260045260246000fd5b6000826146e3576146e36146be565b500490565b601c81526000602082017f4f4654436f72653a20756e6b6e6f776e207061636b657420747970650000000081529150613b93565b60208082528101610c82816146e8565b601981526000602082017f4f4654436f72653a20616d6f756e7420746f6f20736d616c6c0000000000000081529150613b93565b60208082528101610c828161472c565b600e81526000602082016d736c6963655f6f766572666c6f7760901b81529150613b93565b60208082528101610c8281614770565b6011815260006020820170736c6963655f6f75744f66426f756e647360781b81529150613b93565b60208082528101610c82816147a5565b60006147e7825190565b6147f58185602086016131a9565b9290920192915050565b6000610faa82846147dd565b60a081016148198288613c5c565b818103602083015261482b81876131cd565b905061483a60408301866142f4565b818103606083015261484c81856131cd565b9050818103608083015261424b81846131cd565b601a81526000602082017f4f4654436f72653a20616d6f756e745344206f766572666c6f7700000000000081529150613b93565b60208082528101610c8281614860565b6000610c828260f81b90565b61319560ff82166148a4565b6000610c828260c01b90565b6131956001600160401b0382166148bc565b60006148e682866148b0565b6001820191506148f682856132a6565b60208201915061490682846148c8565b506008019392505050565b6013815260006020820172746f55696e74385f6f75744f66426f756e647360681b81529150613b93565b60208082528101610c8281614911565b610100810161495a828b613c5c565b818103602083015261496c818a6131cd565b905061497b60408301896142f4565b61498860608301886132a6565b61499560808301876137e2565b6149a260a08301866132a6565b81810360c08301526149b481856131cd565b90506149c360e08301846132a6565b9998505050505050505050565b606080825281016149e181866131cd565b9050613e9960208301856142f4565b601a81526000602082017f4c7a4170703a206d696e4761734c696d6974206e6f742073657400000000000081529150613b93565b60208082528101610c82816149f0565b601b81526000602082017f4c7a4170703a20676173206c696d697420697320746f6f206c6f77000000000081529150613b93565b60208082528101610c8281614a34565b600082614a8757614a876146be565b500690565b603081526000602082017f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742081526f61207472757374656420736f7572636560801b60208201529150613c45565b60208082528101610c8281614a8c565b60c08101614af78289613c5c565b8181036020830152614b0981886131cd565b90508181036040830152614b1d81876131cd565b9050614b2c60608301866137e2565b614b3960808301856137e2565b81810360a0830152614b4b81846131cd565b98975050505050505050565b6000614b6382896148b0565b600182019150614b7382886132a6565b602082019150614b8382876148c8565b600882019150614b9382866132a6565b602082019150614ba382856148c8565b600882019150614b4b82846147dd565b601881526000602082017f4f4654436f72653a20696e76616c6964207061796c6f6164000000000000000081529150613b93565b60208082528101610c8281614bb3565b601c81526000602082017f4c7a4170703a20696e76616c69642061646170746572506172616d730000000081529150613b93565b60208082528101610c8281614bf7565b60208082527f4c7a4170703a207061796c6f61642073697a6520697320746f6f206c6172676591019081526000613b93565b60208082528101610c8281614c3b565b6015815260006020820174746f416464726573735f6f75744f66426f756e647360581b81529150613b93565b60208082528101610c8281614c7d565b6014815260006020820173746f55696e7436345f6f75744f66426f756e647360601b81529150613b93565b60208082528101610c8281614cb9565b6015815260006020820174746f427974657333325f6f75744f66426f756e647360581b81529150613b93565b60208082528101610c8281614cf456fea26469706673582212204591bd6d8068c4724c294e077a9d1db3a36c67ba8366e633acb452cb7e90332364736f6c63430008140033039c0414163275f43500bf8327a66da1a7efa8d75f2637ff68e63d180bc9dcf9f703b6a93c5458457f4ffccfcfeee36d6c8b69dc620951f90d644eab521b000b44c6039b8cce141a0031fc60b5c1b7636d21c6a938ac11fd9d9aba7255c4b0e97c13b203ad0e0d8bf6fa5546977b798de4515448cd0b99808471ccab0af366da2190a7e803edd646c5f7b8021b38391e58f32b980b3ece9593663473187836c255c82b57c6036c68047a3387a2e8e0e8568518df9c263ce724a7a521371aa3870e10a6f425d5039c0f130cb52033e353123b8e1a41dd354fcf815aa5c2718e77273c3e839b755703684fdf6ed12da3978dca9247c55f2053c4a6a82cbfe7bc25c447f8f7f25f22e803469ed8f1e476850a17e16a4348be3cbc333287514dbe128a90820be9f2ae1fe7031f69f7f558d14ce0088aa83249e348fbabe5d9a79d4cd35ae3a8b9f54781184403185c293d675cf7c3310c1b6d17e852ec828fbd5e3b75bbcb56c5f0af9fa60370030e3e72a5d73e1d940c6dcf1974b778c8ae59f96be526bc1df8f02f1f7a592b160058200318161e369ec291e906bf114d2d1e75c4391ac68f97354cbec689788cf879d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003445702ee6bce204e828df55f8740f58489b9f37a608cc3cfe327db3e5257904a122b3a31a41e03a0000002190600037278233b53b6a65ef0460ee85545a55ddd9169165919ac560a1bf3d9d99a3ea903975ad2baea0d19184f451886bddf0896215ac76b8c7516e2357d3436fb8749f60219ff7f03aed6145033c5ec975ce5e270847a3698d54e9fc3469af7e231da6229ce0dc99a03c8d500987200911aab93e76558d9729c245a4ea6ea6c722d97ed85c50aa086c6034c11be63455c1202c6d98d749bef5f88ee6127e4a657716c58015ca9f0d3aecd03475a045f2a4089ab271f1dbd598f961c7f6665dea304cb668227d16958cff02303c057dbb78426c20fdd372eeac3551e67ebd82bba47ac0f81868cd0340d52c43703016765f8d9b79016c70f473c334081bdcbc6981e144fa4f8b344d55fd5d988db0305971fe19654ead7d36bf1ec596ac0f7361ca72c5a284645686642ad6515861303aebaa52cf3d450ee33403899c4cbcfa605c90beed45ff34106d63161fc4e283d00581f02fcb5fd7a6ddb5d8ac6f043c2a203238997e188e1a9ed16ad4922b2b0282b4a065be55d471ce6cc4f9100581f02c9162dcefc74ef0fa0a4cf06b29d7a02a676661a65cd906eca784167f44a4b271b88ec613c103091e0aa00581f026d816267b1b7e0e2756a5941ea920df5f34bc7e1f18a59a8c676cfcd8a7a4a39e3853ab340c517d1dc0219884000582003a5c95fe1b06f086e45e804c4926dc071224972374449b563095a4b414f9f904a056d0e05c2ca7f9c4de602192100037a8d69ed66cec7b9dd34f5ff6f70e3c123c2aa61bd0218f22f0e5d04727b897c0361cc7890959cbe16fed4a554d417bd4c5345d44bfde2e5990fc82950a1f080b3037449703d2a51834bc03631397d7033a5336a89df04a057bee4fea6e85e90b538035eed87733aff61bfaad5a5a06f4f38615a3c310e627502b424c244dcb242c6e403045e94eeb7583f2b69265556ff76591f572f5710fc727a7693987c1c59b830f4034be900c818764a980f892554d52dd4083a93131fa0164c5383bcfb3ca0b1beed030a14a1020e76c02410b4b36f19304cad456afdee3ee091b02d1259c29e2a7c3b03940fea93e90333bece7c539e15609aa973fcf6f9f732b1f6f2516e87fff944350219ffff031ee055bb1b60dde368779c136c14ceab4ed793d3c31faf46ff8e05682bc31c13038629f38be793729a32aac5ad265aca2190c7069d68103fa4d56ef2e08f3d11c403d40102532fcac19899a7165e41c67464aeedfa087726dd3e341d60b6840afadf03879a91eb6ffea142a61731f425d92fe5a3b6eab6d05e3ada7d4ec4189aac00110330b14385534f925e4349bbde87f50250b7f1a7b4b623574a4916dac3e5e9c3c203c9e150a1ffeaf68f54a4f092744e64a2efd02f9c298d08d5f636ddd5f51d2d07033bc2f4f797fd2967196cac6b2e83f522568ea1fed42a384393035a26fd49f2a603e805fe2745cc877eb64d97049f4dee3c6f98be0cc14981e1fdd762d039e83cfd0305b14ebc9de92a308afd790f10ae50df04ec53d66aa94f6a0843405e4c67e4cc038f7f5c7414bbab1168b5715300f5efec2b0ad59b4831f708731e8cfaa074108503ad878162559f9c9fba6957c4593547c0c1b941c07d798810b53cc2c40486834903202e3333ccc64639eff2cc10a58963996bf806c1eb49d7bf6ee77fa3e8c0853503af29f35f7ae73b752c68dda2ad11926dfd344a017752e8f7c25a5d337b47c6820219ffff05581d028a5f04f778d8eba97b7feeee71d5648bf83349183f1a2f3fc0091bff0701194d66021910800344bf8d5676131193bce3b915448c19c0d7881b0e1d634166519cb8a7c34cff0705581e03584d0cd7aa19d022900a8dbff06bdbbb982a053bb47c2955bbef213fc00c0347023f2e4bef64a0037d5da2a837b3b5ecad4e8ba369bca33ac501d01642f0236700f8673bd0752d70021978c4034228b32193bab1176f4dfdfaa27a4c7d4be6b079f8da231e5468362160aad4db031a464be19ba7705da523acfd0fce7171a654e069b2ae9e86188a58d3e8fb3c090355401a3c12e3e0e029e2b78e31ce63a346dc43cf3c778ffe1f214e9e68acd26903cda00fe6ba5977eb7d2440ec43c62ee60f94b4e990b4074576c5fde3ed28af0003f04f6adb0415d1b3a36e5d4e172b0286e0e377db3964f87c21c037fee4f4619203c0ff3d54dba337430befab9d251d4ccf1a350b41c109a49f25ca2c5c31a8ebb503b655183a15781432d2cbdf71d380f33ac1c00880311a36202b463bfe2419ff4a030317b0fa5b6610d6e7de8e4775ac795e0069d19ed7cd7be728e7a0ebfba181f5036c7484673ff61b11bba12b27be15f3ac3aee002c9890a013d994a81b4f0f3fb903a8ba1177693ee8a095584ef2cd6a0063b8dc3b1cd48f99938927251762a8eea603003c56b1fd98260d0a1007ca75a911e2a0b1f4f74cac4b14f826a57c6cc93cba031b55bf1052548e4d732b99f13cc5e532998e05b12e3dfd050d976cc90a3f0e7003876e15404798e8a2db7a567d3f092b3576d5397760493fa50541ea1c041bc1760219ffff03f81d5ad9921566b4786a6dd84ad66742936afe37f1dacf5d65f5a518b5d65ef40378f2f7786cbae8cac948ecfe20cf37359eaf2c8aa6a69165ac35aaa44ce72eea03252e6032000d857d87b6e1f7738987cf4c87e1570a1fc571f3f2a372a8f648dd03288d9aa80b788bb9e92c213b89d4786a1072c60ea4dae9269d1a479dd8a04afc03ca4be7ebef38fc09c68c2303959013b83c1538fb084976429e936f152d9dcb56037bcc3996fb0266957cacc9988e1911bd20034320521fa633288d964c2bf80aa9034f62c743a93e83c54f2b2d2443cb6188255014c2414d706ad20d4cc9681eeb050219ffff03353f92c27a55194dc78bbf950dc31f8f52e4bc05aa47ba0293497b78935665c3038879d20def56b3c93724edc2be39722afa53c2c1017d217a41353a1cdd3d0bfc03ce1ac9ed393a721deaea23b401c1f027fa611e2b342b0de798e26557e2d46c300370f31de8e956a43e2338ba057230cf94c9b2dad85a87fadc38357b644a858a6003bfa0c7fdab117fedc61cefb656cba5b18942bfc0137f71be56d9b821d3ccc68c03a9cd3d29ca8369ee18cdb9180e57e4cb3743ea0e952e8fd6edda68bf10fb99c503c21f4838e75d3c27422b8ef10abbc99a1d6a7132b3e621c406e39826c8bbc04e039d7d2bbe3a83138d4cfd3cf981ee5853a9859911f1d22d42eaf469c020992137031e3a7a79c8a370053dcbecda6cbd3f91430175863e6318871c2177f462f11b47037f04c2a29861e27be28c95a8787afbc068050f7bcc1cc5360e4725125ba807f30399bd98c82f3f896ca724ca063fa9b70751fc21f8b65844f4e34dd7f852c29630034e4e93a3a8ef75134a215ce37e2719788d4298d8850478faa823f3b64d17a3e603edc302b04e12db9937c324dc3e3201d80a2305fccf049e080c14ce9a4fe7e43b03822e759f9fa552e9b871c5b891d7910495a4b12c3bbea03939cd1b966cbcf00d03c47e215ad0f330bca9a5dca9ee09890643337fde7067bfd1aaf59d3bd795a81f0219ffff033adbca898b8191e8d6e114d052775a5c94b4fe0661437de9f058eb9098bfec3c0343caba11512ac02209e954eba0b977995b2a9e59047348af8db0854fecf2ac100386edd2d859bf0039e67c302b8066c66bac1bdde6416068f1552ba214c465640003009aa52865e5023df342eec19f1391bd81df4c9426ab48a5a7e2d49c833ace44033af9e15c0239ec8c4a5bd50dcebf927e1bef0acc339a4efb346f83c3a0f9db0f03b775571f503924a99179fa9b6d964416e002dc44215f555c0ca60f933fc792a303f1edbbab32a65af3d264ef68878651501ab249720daedf6399ab0617d5c0e554031d45ec64be47d85fc4fcab791677ef6491da97d4f51b41d8e20326f371cb706503663fb7e65dcb9db157868c1407614d56fb0aed953b228a5db5e3d801e0d74238031c2fe0d5a94ec710cf364effac15b07692c3168dfd9b6d587d22b45777de19f60219ffff03ed3946114eb1a9309ef7e0e7acbbc20ee38247dbfe4936dc541710c595056d1a03e02e7a625c1d2b58c584c3faaa9d8d9a805a86cba7348de8f107045a566dfbe0031dc39ec7cdd41a7d8b57adc9cfe21c08d18f0a8fc43618f168f993fe08e3f9fa038e1633d37113519db8f5c889bec68115003f50a95d0a01ffa221c46cd3e612a00390a07de816163fa13216d5dfc9e90cc73d9f00878ad6c9cf6c2cea6c59a5a5c703657cda02381a4f900565e6f7b837746c343eb7e533cfe89784c4d33bdbe72508037736f03a8c14bfe932a4943bcdb270d70afa5d29735185f0fa4736392f26e34303b65efcb505f6da7cfca1ccc4547383e15462e2a415db205862d41658143a475e035fba676c58b437a5a5a64249fdb3fa7dbec751f54f167e240ded0a2324ce38880395973bb87b5d88ab4778580f0cd48d7698cb5bad10d3a72504e1fec61dd24da403e25dd8862c82163d6d2d3d34de9584c9989b9cc4051098c20760dcb1e95d0c3a03bb9920ebae59b43b3bccd50d7d160e8fb7f06ea9eff1c3c979f7c5a49153b43c03e5129ef9780100869a9faaf43d334c19b45707ef34c914834667d1ac03eece33031f359bfad93710c88f17c4170fdbcc623277b952dbd4d62748c6fc268f9047980381afdfa7774209fcb4bc07f91ec04ebfe1b89c69a9ae1ebe2bc43536e45d460303c90fe7433e07d5d3fc802204eb3e9a92a9cc53263710db50e29ca1b78c4971b403c76fc44ec84125b9611cfe7b65ae97a94e4c3be48cc6d956ab81073e3ed5d0fa030bbf75bf642c80da34b73dc943a30c7f1b3be348bcb6d1e2529fdd51449e08a103cf160104d02da84a41724719c27da09ceb1a51b00928fefcda317edcf309825903430344155e34189a33e11dc4c8ad6a9404df9870a2e18ad0865721f7c1f1147a03bce449afc50e44019e3aeb75e9f2d6c72042d0a20464b69d61eb2d3f2ad96843030531eb4a0afef3cb404d7675870c3c49efd29b9a4b859ddaae94c36310b7ae0603e752d314fe049bd7c6ed39c67d2f1f639c45eabfeb257b9147fdd57481857e3c03cb64018e30deabc41ab7512bd25329679bec782bc7628f4f0a116407316e648303894b6c455abd1c361917145aa5eec85d66b43da4327f92f9abe6b738ba9323c1037231449890315a74a2d29846f6c25d573b12d5c1222989c4588d400044406d2e0368ebaf5ceb22e2bc333432b76718d6c36166d1444ea4dbb2dd5d53b77494290c030207bd1b438590dc2ea4773092ff6840b379c1206859eb63b419a18280273513034c42088bd69508dc161cf6548f23a976f09ba9bec3c446d4a2cb7bdbc95a323203c286dab82a74c887eb5d2eb399eb414c81f1083efb4af7d185086646598e62fc035b9e9801cb4418702c6b8d3be24d9ee539bee1721f92fe233a0d95ba588e81db033661a6bd0c24511a05b40f8ae74c737f47d0df70bbf3c7a0816810ed90a8442603d6b82b5896be46433e7349f5005e0d5958dbc3747435483d956149bf9a41740b036af61ac19cd4496fb6d376dc38a8165a2561022866ce6fef41f8ade0fd2a407b031d942c5f793bd295e61894015b65c2a0b772da5420e868784603db7d45fc38ab034f96708c335dd6364f8c5b4fc62edf32f5fd9a7107a99be1e9f6914b4093b88c03e3981f17dbc1a00258432c0e34232f267d05e271590ee7a9783a51870f9873c8033a7c4e1b76aa60dc9d631272c2ce6a72e82914e0cd8ffc759889d5f24cdedeeb03ca06c2b4c97d9941e56c3c752abe4c2b0b2cd162e22a5d25f61774dc453deedf05581e03da7d3b581a6515e83a053ac10dee614e37c74397b0001f77359de74100040305581e03e08b15e58c41c3c9db35bc5268e123e5e61f633bd60f8dd66ce320d4d0040105581e03961ea71a2092ede541a5313d58a72b669c614b45d7c9e73ab7f40b85d0040105581e036be6c90bff6b129f08f2d3732f40a37dbc9a95e1c60843ed138e4969d00c1836470135ec955aed3303235db60b9fecfc721d53cb6624da22433e765569a8312e86a6f0b47faf4a2a2305581d024eee85039fc9d8260336899b904d35911f52859f57c1e664281186f20c0147a7a5422d062ab804590c346060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b9578063095ea7b31461014757806318160ddd146101a157806323b872dd146101ca5780632e1a7d4d14610243578063313ce5671461026657806370a082311461029557806395d89b41146102e2578063a9059cbb14610370578063d0e30db0146103ca578063dd62ed3e146103d4575b6100b7610440565b005b34156100c457600080fd5b6100cc6104dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561010c5780820151818401526020810190506100f1565b50505050905090810190601f1680156101395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015257600080fd5b610187600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061057b565b604051808215151515815260200191505060405180910390f35b34156101ac57600080fd5b6101b461066d565b6040518082815260200191505060405180910390f35b34156101d557600080fd5b610229600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061068c565b604051808215151515815260200191505060405180910390f35b341561024e57600080fd5b61026460048080359060200190919050506109d9565b005b341561027157600080fd5b610279610b05565b604051808260ff1660ff16815260200191505060405180910390f35b34156102a057600080fd5b6102cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b18565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b6102f5610b30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033557808201518184015260208101905061031a565b50505050905090810190601f1680156103625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037b57600080fd5b6103b0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bce565b604051808215151515815260200191505060405180910390f35b6103d2610440565b005b34156103df57600080fd5b61042a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610be3565b6040518082815260200191505060405180910390f35b34600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a2565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105735780601f1061054857610100808354040283529160200191610573565b820191906000526020600020905b81548152906001019060200180831161055657829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156106dc57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156107b457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156108cf5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561084457600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610a2757600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610ab457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a250565b600260009054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bc65780601f10610b9b57610100808354040283529160200191610bc6565b820191906000526020600020905b815481529060010190602001808311610ba957829003601f168201915b505050505081565b6000610bdb33848461068c565b905092915050565b60046020528160005260406000206020528060005260406000206000915091505054815600a165627a7a72305820deb4c2ccab3c2fdca32ab3f46728389c2fe2c165d5fafa07661e4e004f6c344a002903220d6961dd6066b661c1c1a35c787da93ea488cfa3459a50352354dda4720446033f8e30b4dcd4a2371819c6de2e63b2f59022bb71214a09724681f1e66ffdb23c03fc4822e37de9c8c10252232a26df3f1b85f3d27ea824990ac09e0b3d6f95bf3403cccaeeccb8669dad3151520ea605c0df4fbd6505e492c94d51f16308d30e85b7032cfb46103b8995d2cb7b59a751223fa912aebc9af7ea080fcefe0b4175fa643403ef4e32e5172e494fc062b427fd0c7c49e0f35b8506ab55d3e4476c793d0f58a60310eb2383ac38bfab7523b2cfefe0ed28cbc1a008391cbf5d91eb04f40557bd92038a6f8414ee1721c7a2474296f308807e1a2603bc89a572bb97957b377d9cabdf038c47e1531d6bcac156fade456dc031f0ca6bf09e9cc349eb9d0af8f6ee0b17da0358388645a1667736be1b76b3c7c0e206ba02d59fa5390cc6bfe67842884cce52039c3f6f39c5224e40d4bfb380fc277cfccbf723e12d5dd8321d16e47a4f1db3d303031dce887a6c7fccf7596019942a1d020860c2948caf59341a8df1f4c3122c7903150997041f82ccdbe40f66a4aefd463bb7ea695a62d9bed2ea88629e8c19bef7033358a9dcb0b07f0265d3498a346e6c809bf5f4fa7f4f5addb44b0ab1fd26e2e4037d64add335a4b9e7d95e3a1cc840116779308fb9dab1464a5be7faf9647706e6034c2d455c80afd3660d0bf3f6c0044a35f66558e929a72befe4d970dc8b77811b0313ba3a1a09c043b823d112e2fb05f666ab3bafc39b1e28c187018723cf956f4803b1f799a44bc898df51e90f8f10e9e62052e8ce859b2de1133c57b527bc8c288b03263801c9fbaa6d7036dc2bc62e64d25343ddd18f0acdc8150661ab92e21d6fd603f3b35f1f608e919c61cf911c56a40958d410bd3405c4092a043a24868f1cf609031948fd4f0bdf0c92df54c4f4594f8a96fb2414e50f0afca38c2df1f7ee58b78803640e6574f9f3b994f02724f44bda7b17a2e704b890ec3f33975c3accdc17a08a038556819fdb87d4313b9918da7e42da25a9ce4940ef74fa209c5597dce4ade965033e5dc7c9d4bf6eb4597cc688f3a34e5697fb2403bfaefce7004f88bf82d0188d036bc95c88476f7a96509497d1b2a4b3f8f59de24d3ad3491c7972b18f41b25251030f2bcbde186d237af9022e97acb44269f231cb0f1530a80b7d2854e9f206b0450374ade6fb930c88c6dc90fda579523d06d8aab69296ddab92c1a15e9df39e6f0103e98a078b3201843b74c13b5be9ab43d2173799d915fd27ced30fa81fb0ab3bbd00581e0280f6b3ff3d9dc6aad5807e73885baac43cb9cd68771895e92e01c98bf05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e029a9df876d0ed376d061d38d644bd771969b2e529fb88e98cc0511cca95410100581e02b4ccbd537aa33d19baf587041fb80e9595dc18dbcb68e9f6b08b3e2ea45820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03db18eb237a5f2e17e3af5d2b4a304cca30a4b8cf5fe1ad09943548f4904902c8451cf7c3840bbc00581e030236d57e1821c5f95bec5c2bfbd42604ad0662b49f1c651cf098311c605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219014000581e0264cb28948d34ebf58757ccb7984cd7670b46661d558641bc509d0919f45820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02bb77a5602878135e83296b4d91eed2ea8de0801906107d14790888a2865820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02b1cd746b0b81b389c9774002c8b5113ece9a2bb7747de794046f01ed8e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021984e5035d9bd2f6d34baf9dad832ac25470cb37ef71992f967fe1378d611e85c72fafa303d723a11284905a09c4a361b0ee144e0634e6016b843b7d6404a5985cfec19c6900581f03035c4616307d3b63b583725adebe9a623f81a68930cd071b467f08c6c5704101036970aa017dae99af071ce9b4a453dac333acacd2cb0d9292015fa6a9acdb5fb603efacdd70531e8da5f0607262028c75b377801ed28c724f42be4ee5026e61f81803a337b2338a51793457c5d7864b836925ecd5d5764724f7d9deb93b47407d764003d3ffe3b0b9fb16460606616d027a3573c912c878d5e7b1132ae115b28fda2a76038c7b1af44769cd29561bf93dce0750f7fc1dc8fc57b886c29dbb786284f15ca703f7cb19b7495a95eed72b996a87ea32989a95a73cfc4674650f766ef26c48835d036d74238bac07430bb291908d4f1f558cad2ad4748ee31a2ef1b67ddf6213125503f6f013df7b68b7417bed5d9ef68ea1cc272199e07ab9a39d7ef59b621e41b6cb038dd853814c9d7faaa88b5b80c2be6d07d7d089faf7b1cf68b9f0a417b66bf67f00581f03f8a52cec45f2d090485a10881e243adc49767111f4687ae6073b2aee67605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ffff0330626cf192fc3956024097995b93dd3d3c4ebb439e9ea26d6b807aa53aad39740364941085b0b84fa8b339462c93ea570be661f645f5ec8b24d3eee09a9b5550860219ffff039c7605b3dd62c8934ed88a958af6597a266590bd0617b9ce8c72be5f0961e5e803ca1c010ece49166701461842f284982f19cc5c5605dfb73a450fa5ba854f84180310116f7d96c568f62b4e03de2a9b990cbc556854cf0d873cd4f4e77a1eb956930347f9a3e90212d14b22aa1a328323ff6d9a64302f6727679fbdfd29f6bfab6ce70372a30772bea132469e3e9d0c6b5087f17064fad8238dad25f4bd979a5deff55a03ca4ddd456bfffba0c603f3e813de968b5646924a8f190bce7d39e72febcb8f830219ffff0379e4228b68335df2618ca9b3732b84650de44f0b7d07b813da2d1eafeebceaaf03694af080fa20d3c3fb5653dde730c703f55fba65c9f4e2582a243dde5fb1609603e711b72238b8904af07bb11a69e298232cf89be61d5bbb30eb207f5653baee69035fec9db81d9b85c68ada8e2f2c65a2c8c78cbcebd3a0704bdcd90a4c3d5d3ed003b0e36e08f5853f9255eec0c94b9fc0d2d62f29f7f982e007fd6870935d6390bd00581e0276033d9679b1c65da6ef59ace2deefa114ea77a0614fed6abb3404f31b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02fb182c1c2150fc34993649776ef21cdec103b7001dbf15bfe71571ce35421a1a00581e026f156c754e52eb41a6aef3dd31b92aeaa288cdd4dd33aba6428d850b444903ba0b3095dc8098f30399a0cb8184bf5dbb53ab15876c45adbea4c489861f44512d8eaafaf41fb8a4a100581e0279d715a1a9c38afcb03695c5f70899cb0e63a3bc79e07d54ef97c9c9684701c6bf5263400000581e02bfa05e9ca64d8f4f62bb0161b8ca03d8f93906c3a1f70befebbbd6c2275820070eb03fe78402b898ab801bf59334955a4d8e5b4b91e12f9b2d17b20b0904e60219045d03f76247d17ea01fe6b02e0cb98f37c31d69e0434b925dd96a99e03e2e202c97c60310a71f85225ddf80631bc2103ea16e1ef101289c43d246e6c2836a1dcf5a7ab1035a533de3672c1800e970b446c8922169bfa1419b85dd745dd4998a3a45bc053d03d8cf3e4b4ea820a3b413480ea89cd666c0320822e6a53d742866016ed0fa12d3030f915eb82c5d4ccbb268b3b77006fd54a66f30c9bc415e895b765c71f4c07e54035a1163813f9700bcf6be914cbca22c357ce247cfd8b81df47e0500adb53e388e0332d5dc0a4aa8cb305f9aff2da7f6bc41fd01a923e976da89664cee04006b898f00581f039300da12811446591f48c2c4874099974c7d02047f4bfac749f89c2612c0471828906079000000581f03ad82526a890817d7aaac678fddbb3f6152f861f1cca42ed92b4a6ac0fed05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff035853306157fb2ff0a3eb2d7dda237cfbadacada8b2a52b3c2e43a27338f6aa40037787ed194cd0b947dcb6cc5633db26ba8b7b2e45ceefbedbcb1a08b5575e02140320d368721fc71d99149e7c56743f8c097b349ae224ec15088e88faa9e1df9747014101032aab0289664e07ab47cb8f7eedd3e079a06cb5628a25ff41dc51565e362f64c000581f03c613adb7f3c00af0cd25e04f81a52f3ad65ccd91ffdba08f49b4f5243c405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0375a122ac9c2e891fc2b61ed6b2f4f3263d804644320f5318428505156f6977560219ffff03cfe96cf861d450a2908b289db6cfb4c2dae44ebf0acad4ccf86d004827967ec103438e1cc2b5aa4036a170419a61ac84488998f87d01d674a8fcaef0cf09415d1403c34adc61284b05443cf1d57d31e8933f6838761c6d5e91a18fbd75558c8e2217038e2a2ef8f7cb3e34e5caa4c031663000c7500d73935ba1d9c771e8d8476acce1035403b76b4a039a8eb473092aa1ed94c47ff833e6eda6d711c07e94679e90355e03b9ae47ae28a4c1a17c72d511318accf68c7f07fb53732d53c8fef814751c888e03dc3fb58a3eee6957922de567319b18fef03babef8a89bed27da0e20a93a68e8f0379a702dd3ae5e5b6454a202641453d98983ea9510aceb0c03d44b0ebd2973b4703650337e5da1920c8c382630bef55d50624e30c561d558147efc2d04d560092cf03d501e1dac0966c4fe085608a93bdddbcfa6fe2abf27c46bc295555c7626eac870339072b07a8517754994cfae3fc55a084a974e58ce60bfe62ea2a5e5cb43b702d03b99d2e7fb31c77d32152a8875c54a6cd1d7de68d8af9b56eedee900320f896d603b374565df7332a73a61ac5c33e4398fcd34fe1cc7d8517ef1861efa899bf33cc0340537d22d6df108d966a2804e28f3aeae93762045df3fb9c2268c0c2e92b276703f6d0cccc71118d6b53365d376f68a4dca14178d4e10ab16347b46944f263c69c0219ffff0350c6b40fe4a40008285e5c8fa4c48f1406cc3f64768cf44e2d067475a4ab383403e6395dd41f46af217dfede5834067b78cc47b2788da6b3aa86117efe86b570bc0342574b128922ce8096497d36ab4d812ba1a0770b38f15d636368f53b509a74810315b60efb6f9b77d97475ebbc8b34b8c21c8d64fcf57b2a98f46429bf3dc9886d039b4acdd6bfbd5610c1164a6ee37f065796df2f718b77dc2026a03a1802d6f3bb032096d218190d4290ca5aa9e0f443ead1bf7105acceb6b080b6cc92f1efe43ca103ccdb28b882e799b3cb155aef001cd751f84d712afbb03942a71d5aecd234ed6a03dead95131df755a5160f4119e10a3604865230c435f7fef26ab911fbbb0d7c0d03ae1f9d953034b8c78d5cbe702e9fe8279f363fb77a3dd3834ff187b6a30783ca0360d631ae2b31b60d80ce6b28c5bc3546de1b88d86c986037a3977f4bf3ac25680219ffff03a2ff9c144202b297cc84340ba6d7782908ca5add54352028efefab05605bfc5403b7da6d63d1594c8f35744ea9b9b7106bcf9af541ff7d743313b08da580ed9bc403fd7fd473c9c60421543698a9b3a58fdb3ae8eb2acb3770c7bef5558882d9b21d03d831131e4b0f6c9dff9bc9a474114c81a0c468a14377b807dd8988e9230258b303c3585f464560a43016892a3bda002f81a8ef6f058220934cb2515d75e4b674700314c34fef34c8b1d5e28f6eb5489d79ab6f2751a6bccb518ad38b31e2b5bf0dfa03488062b42f7c5f78fb3c283080f351c7c961fc775ff49ea4cf0369091d3a561d0396998ff164436b5b641e339f03d66722b802d90eb81c23f56018c0e2f9e7dba303bfeb670631c9b71ae87bba2bba4772a56326e2d6ff42383d2fc7104e01fad8fd03b9d0cf10c6086dc431df26124d5bf6149a81370d45afe253da51ee850364d05803e14e6cea8da3786eb43d3eb5cc27cd6c0a00200efd6388552f4042d01db0fd670368024d644fa093c06cffbf9f78f25cc3288a08eaea492f4ea2f13da674f7960d032d1f2c5e60fa3ac21a2f0b4abf62267432f3771f267e4baa11b76527cdb0f3080324e1844b130a3f26a927cf5ede9b10d1bc3e0e903ddadcb5889ef8a9b5a0f06603cd551628002d419d4c3b20043b2b6757a0667ab07ac73489e5e66bf32ca779d20360fea6c84acfdc4015ff6f0d756d36184699252190fc98b8564a9f002924385b0385baaf2481e7c38b54cc1a2882b35d20b37a11e9b073af3db8d3771812dc18ed034fd421c0e77a9519b9d82a4e1b099c16db1a7a5fa8479772b4fb32b090c9406603ee6c56d6c2e9b6aab062593ba56f494702e7d62f8aa5ee36ea32899a86cff95e032244e267c5235b9e56029b7b710ed038248df27d2663f3fbdf78b484c35e1adf031ee617fff229e1fe9127b4a88c3f9cdcef449310a046eed64e8626ad6b0f4eec03084a7b471c6d1ea0d1502ead97afb1218dd8acc248a8c53471ac7a7276365b4203236716d2aa08e75ab10654ef92d725b12f4d2fe0224dc70a106288361db2283100581e024a6c7fcfd0b5a4cf5d5c52bc7550a75add015b288ac1cd966c9c927a4448063eb89da4ed000000581e02a11c6c0e344dda9e45ce40b9ab4f38f9b4400cdf791dfe4910bf97008b482e767c42f402000000581e02e950489e929b36b5ac836110f2c2e793e755a4fd3df33bf8583d1b42465820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219824003ecf6f041e8c9ce954f0d8596660737048c08da04c9095e823070aded9268322b00581f0339fcf98b2193ae5dc4fdb9a55abdec3a1dd7c2bb78cd69c55ce93d5047105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff033958ea87ca6ba16e77e187ba33a04436ee9a52d2616f08a3f36fd7c2bdc7122a03c0b1074df0e4ef13470fa2f97ae4bbcd77ad50be626e0a13725f4069413e9220033c314d29089e76353b825df2727908ab3a0ca527303ffa8cfa4cde9204973a350321f6c5a230128779f76383c4fee92da6c3480a86da4b340a3c5d70584056e58c00581f03f0cf4ded7255e684654c5873d0c73ec206a64bd364714579a64eb0cb90304829a2241af62c000003fe7b10d81699aabc77cd56c63b4b161abf3ccd0623ec18b659bf7ac0776db3090389a237b073258da44c18af0db97064354e66335a3cddbf6d312d771bcaa1b41f03d9501e9e010fb3dcca8db7515417907b10387836bf733e5c500fbd3ac6117ae90219ffff036809dbb19e0fc9275269b102b503bedf2255f62547888a0e5aaf9c500526da8e0325f9600d8cd26dcee1ad72bd35dc776cf865da90af9b738618af9fcab680d4950219ffff0385b774e31646d7fb7871ee9c499c5be80a5044be893219abee5a7490bd96968b03384f682c0557990c01b7ea62ec6621be9c6833ede1b088008f17045d78c1bb5603729dbcb930bd2d5e48fff6aaef1f37abe6bd479fa74039289430c832cdba70bf03fae7f3a55ceb5255924835c2829839dee8499c98270cfee74ef61f68974f6498032e69e106b1ef2cdd47ee817cb0de91b609c0fdc9edba388340e1d75827bd71f303cb0e93b0165f666117977dcbf6354a00fa39de83c87864b633566fc4c128bada03d2fe6e73c6e8122d2856827750e89a7a78edcde6a0eaa6416e1a0e8322f4c3e003b307120c82b59a21239a9b899d62480d225cc24eadf915d1ce306e854f8806ff03c9b0deb33c97b29f20650e04e7bb4c0ea31736a2eff40d00a018b67623e48c71031bc689304d644d61e81ef4568ef8632a63a1df8b1b42d8b5cfc147e7ace077a6038167cd81b0b2c4c13ef7a04b041f44d8fe366884ecc201e3437893296eef11610219ffff03b61f3947a67c9d82f21939875dd35c178859c58dea5dd1ba596ee98ab2f499e60370559ea3ff9ff00c62081df43b92ea1e33b8206f9e3ac7b1939989205888b2cf03b00c128d888a4f6736390dca4cebd685eb603fdf3a5c78e7f3794cee533589d303a280e76f91158f38d7a57c25c7e2b38ec9641027c8c637869907e6b2272bf8420344d048cd8e080c1a9f9f19643fa2d5ed860e4a22c30f6bd17febb6ca961305cb03b07fd63653f0f8c5a5cbeac40699b763b82e3f62d58f7940f1fc4d424569dcf6039fd896bb32c73c643a2a0e0ca0428059ae93ee2f66a7235d0264801f4200229803a3cbc45dacc6c8f8bd5be12302c08851e610d9e77c36ddcab8bf83e9a392f9e60219ffff0371be5192a84b40949de6b2864f06b9ba7035a4d8b285bc0d82f261b68fe9e566031af1b38aecf9b41fa6cf42e7ec2876602c27d2209b6c32532d627c514c8a5baf03d9770679aba22d1438724e34934225e474e9b1a28be50d0518c747f57fe2c08e035b1ab1e516c4679f18172d834d108b326c8d78e38e61ee4b54afdd7e68b3960f03041f4abde14fda1a77549ab33a46139f4a5f6c40177172887dfbd561b5d6101d033f4ab5633571a4a08dca6b09481ee5f7daf4da5edb1fbe67ed91754b2da3e4d00317b16d74514e1a434d7b52e01a58432c068c5e4b948995bb162c9ec31ba5661603bf316b78f265ae85dfcc593c719a3463a359040d719f152627864874c0d042360323cb1616eb56356e672136508da31f3bec3aadb8ea3489ea9a11198e158340ad032bdafaacf9eea97632cc82e7980933cea79ff160eaa4d7361e8c531197c365e803600a02402a6a065b757020c117c5d480187cae33bfe20def4b00bf8e29c1d8d10301b1c1fe5e6a50803cbd5c71bfd08c059b2a79dc4472e306f5f0a7800b28e642035ad28d5ec5be55a2aa41a9e4afce308e9b93deca135a7223ae127804b03872fc0393c320ccc6a43c89acc8b3c00f8f08bdf219341044a7d8fb4eebefcadcf067d50324686334fd30581c563c2a4ac87f22a6ec839d6a286b66e35949b16d4854942f035c553a5031fde4eb4639f49beeddd45cfd5f0a9030c3aac67751156f74177c8703064a6a8d43cfd68e883e567c342324a6e8b09bacaf8394bd473e15bf38038596036fc7dd2215a4ce890171c5818eb96b7ba70e6cef3ed5a3fdb23bad683aa2cc3e03a0fb7f04c67e2552649a61bbbda267c2eb625163cfda54c99cf158a191466f5200581e0266b5d2291dcaca0d93e5833bf4cd1a19c71dcdf7498a40bdfc0143582a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03bdf9039727d3172c6b8081a2407edb911337e0157bfbcb91bfbe514cc6a351fa00581e02257aee6cef7006b189ebcd9ea5d26c047ed7d2b96fc91667bfa4ef0a614904b8ff39fcfd51003100581e021245dac2f801d1ec54899b7b6e26c9d85ec312e36e96f0fd8ba6293de35820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02e44498a8d2c22e9df729e9b1e4d055a098cdd9b94db9500d6086f571df5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021928980338b5f50fa4a33c459445b4cdac2d77c2fef154281b4cdcc1595a862fd4173ac5038a81af75d21fd5989955bb5b16410cfd81be5c99611b23e3285f7b6f9deb57c603ab3d5816c48c858cccd14a8b270b9cc83a5f88b8a01388cfdf511e65ea655b06032db59df4b97026cc6e5a9ca8cb5089992bb0786f1344a17108db0e53bdf75535030937bfdfee5f7fdd94b42a0f4ea3f48141b4810fbdb56b869185e337a55f2b0f03c57d08883807446588f222730ccb37b49123ba07f349132131bf6ce5561a8c6503d5df966d51b303baf4143290eb6f7aa867d44b55a4f2142edb8245635d4c210303b0913d8e07adffbd603bef902ab0218c06bd10c21e7c4de02b62a65e1f5c7c54036f8468b19ea28675361b9631c3679e52c8f57afd0c20993909402b601dd1798700581f03588ae998c65f4b1ce78d98c22516bf40ea4930d9b0a8c8f9fbb9315e48205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f039dd2ce20a7ddae6a6306503ad2e22ee3a7db2012efa56de8e888051878805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0308fbb9bea3d4749aff01ade6037e4d1c63ebde40e8e908f6d89f08563f28ba3603f415f527f16ad414f72515eab102bb36726974d23da3e312a6690a499a1e45d60219ffff03e9124f9d7dcfd6b0b8ca0e46f7e67278a31df082c0a152bc29e62efca9942ebd0389f37fe5b410a0cd3c4335a67ce0f73d85a1c2edd538c103d3bb70e69ab8a32a03072316c9f2202369ee5d95889f4867cdca24635b50130ed794061ca543b3f40c03b66e00ac409ba2ddc706734fa127a64d3b53e57fe0f5156b57300235029f169a035d173a3639c8207eb3411fa8a501b87d733f56ed7b481cdcf8b39bcc3c63eed10393c3ed0e2e1db8553402d3202e03228a166a2e81598fb11fd7a9e50eaf8b5d360219ffff0307f3ba628c278d0e7a01617a85d110a71a475b5b2d0afac3281e0f170f81038d03de0112550ffa09aeb6ee7ad5acb580303d814fb92ac543d6251786d4bdd059f303f62abab8ad3b8e6b638074424a8dc2256c311816f0e8d62004580ff11c3ec95203b543f95eea16e85952ce489e415ede5e5868ee85184c2d791e3db5aa985ad4dd03a7a0c0f0a2981a3cbc34cbc025cf2f5e8e389d170b0d6aab77e173db0e310ff103187f4b8f4e2b7f51a1b36446ff85746da173fbf4dc4a8394b93ec09e03e312d0035c670500253e0f7c212d6b45a5170c17df9e30e191ce3cbb4256572d311706d903ef488f138d856b347f2b17378a8d78bc92fd0414d7ccb2474c69ee1d9042c8120219ffff030d05efc800279ebe885eff8dab14d63301ebca85e91b7842eb32e220f2e68e1b03a50f4116bb4007bfd113399b2be27b4dc9b6349dc399be1ac193837d23a9471203767936a15f33f54147f2f766da44d5dc763a79a1b839f130d47e1721a94436050368a096e948b8d3584b872619967bed8fbdbbd3706f6a610ed6807853d4b0a89c03ae2b1c64d9028f18832aacca3ab1c69872c8d9201a6acf7de7906a215b44a012037035425af70b3490b41d5f6b91077fbbc21012316556db4021064869c7b03d7003d7fadfc006d49e594626d502695c8db23f288a96bdae1be9f987e6bf8ee179590373a5891cb30ae33cd0c0a9131856c75d11d95f7f1888bbe698f490ebda90822d035fc4f06030708d694abc5cccf90a1910778269f72e2a5ebaad3bf13733b23b440365f74d99462c3702826a754af1a6b47be94682cbea350e6db0f2f7a036c5c22403c310da0f88a2be8932958014e740dea3e94190c6a58c95ad35483584af5267d003f7278dd791776cd33432c4de01858591d86a380a79138bfc4b24149f4b3188ee031ed9596d34e78eda51ec9b7639f12c549e5af46d7a8c50bd20ff2c6578cd198f03b981e693b1efde387b13e67fe14f96783af9dfddb5d85f36d608b119efc3610903b8e611c6b2acf4ecd6305cda3a5a8c4aeb968055fc13257cb281713871fa4e9d0324edd1a73e88146dc7ea60bf5be76f543fb02c9262cecd8fef65b1db25c341910361b32d62b61f5577855adeb341cbe1e3223396f1faf76a3006e2ae662615ada903a100b29cb151868793e7f736fefd455de6dd1ce07488b58893d3b7bf9d88545103c83f966745295d5126b64458c5d0f48848b57828f7ea12d7dc5156aaf6a7c6a503c6566f2f3f9d03784667412d59bddd91795ad61d85e104e2c52e9fefc2b427f60348b10f759b3b92941618ac155bade8ee083812f83d2e76834da927aa6d1c7d1103916d53239a8557f2e19f264810040f5caaead6be88567461fca82b5cd7a69b6b0314047b20238a6e38c7d897ef59cc7f1614627b05e367f1568bddae3804b55f4203679e1d76f492e4b4ccdc5f57d57730e62538df5fd9790e0f4610328286728f45033a1fd0debb6d963e90b27bc826ce9aff02b1a42b6005380683de5d2f0d1a3f2303d5c664beedee2c461bdd3823424487a1d470727d3ce00c425564a5d421b5c185031a2e181f991148a73783feb4db4f57ce3fe066d3fba207d877e4b8339cec66780369e33061f9caf6f52f0f06ab3908216f9f8cce7cae0a8eee26f6c8da69e8689003b9b74b484edde1551ec6523d3e56627220acf237b1c2d2c3b4c13e758ba7df2403600f16e2c7cc3316ff3af636d06bd889ccf7f249b695e628040bbb7b58851a6103a0d93881cbf3ec45697efba3e7d94269f607fe50117ac3f7c30f0666636ad5e703fc479d36efe5926c6ad4f3bb802d9f9f23cbf2891325d0258f2781be10c079de00581e026b25687f971eda5d276ddfc5ce26c694fa0e7251f553d60b11618a3211490780728a85bc216b6e00581e026a9098dd47d4113fc03868b22b83060f900986dd59fd486b9f5c844da34573ae1d77c903bd75d7c0215306374c811962aa1ef43da7f698f14bd4acee3a2478295f9946f300581e0289bab2a2d95dd61bbc2d3a821cbe68728a440ba3fbe4906ff0b184bbf05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02a9b422a5b2722dfbe4bd902e5b39d5d90c4ceef9cc93bd81a2e09dd1aa420daf00581e025dc831445152e1e484aa8f4c90a996a2fe4e5c687eb4f2f57cd39f4d145820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219b90103ed669ab58c9845ada58dd703dfc08957ffc8e86b5fb58facec5b5245fa1d03dd01410c0219ffff0331bc3aca2bfb97c45e3f10ac7777054d6cf2ebccdea44b42065970d403c7f0a4037e5c2dd7cce1559f0d802afd29b0d3bd211f78cd840d7b2c14b0c6fbcdcb5fbd03f569eb28b1d227504d8355468d347c4ac23153cfdfe08b5462807edef06a097b03464396c1f54a800dee52dbbd315c4d47bf80e399e1c01224083a1cb84eeb542b036f830e67db5c10c4b77548e2fd8f7db62312552d6118e4d9c46c86020d6929b0036c8ee4de545e10e520555b3b0435821cdc367cf1a5c1dba06f1d68f5e5cbac9403ccbda3819dac7b28f2262ecd457daa35b8714da22dfead34883297bf18eb7afa03903516543d6de6e2884f12607e9209bab64595e883f6725e2d225208e89d989703e9156c197e48f3a332d358213ba7e133769d3f608e056af5d9667fc034d24f1a03f967aee417cba37fd31bf5683633308735a2d4c43e87a351f727fcca211e690003ecff86a40b633718bd5a17638a7438ef9f5f20a28c7659d477879f7fad900a3f03e475a642b767ba4b42897aa959a074ce2b52b4142cd53bd9658f20fd2b76633603f72a89198b962af6fc6dbc9b4f5df48cde14be3176d39923be3e11dc8da035ee0219ffff03e013129fdf342abc34e591fc36798d96bedac3ca1d00bf3ff46deff89b45a78c0344b1cb37ac8b2f79074b09b5d325d2cd7ed7d65bfa919f8645e6c229bc065dce034bb88d2830f8ea263ff885104b4445ffad0ce131fd065231465c0ea353f219980388ca7792d965cb478ab22b26d11613b2bb99bd43363108ee01e1af701f9f7d59031e18e9083e48581fdaeb2bb418f7d972bcda712c7d390e571c218ba42650ea940356fe3eb5ec02055c9761867beb317d20a1a508d5cddcac5c4a4a1dd1dbc0f6270364e1320312c42d5ced23e308c5bbbeb0b8523c7a205e10fa099569dcd454bb4f0330ef8dacea5b7f50db4bab7ec6c7db5a6cba910c023b76ec64ed41b3624ae8d8036fb3fde44814a0285292158b21e575f30a8d07631dc2314f2d24c3aacad1a6b40364bd51f2df869917595f8339f3b887d418f0b03cb6385c516d463cc3032214900356b9d90b1213e6bb6a4a4760f25e38cb495de4fc64f73ba06d0640e0d70aaf3b0219ffff037b21952d2d3a3c58c576c2468451378dacf1b380a4c9b0afea71142411578acd0219ffff036e9de64f1d3664bd4b629a904182cc40ce0eacbf4858364a987bde10695545bc033c94bf941351f2a1b506767f5cbc2563420397c2cfb75a7cc45687098024d6b90337aba3ee9f76340d9172a1a73bb388d1fd6cc81ee6db945e0bd6d04fb74ea55003fd97507fd06e9d0efb0ee9a66569f0c9bcee6a9be6899dcb35a528b9cf5709a20323d73acacc33c63bb8360123a65aaa7be76e7f45937b55a2ab0a8df7e8a3ad4303be0ecca8afbc08f7b10f63cc49dd43b3f47ff70b502ebfb3d2145010f1ab7b980318c3cac92ce27ceb28bf9e7679a1d344bdf7108b41539690f0e14c5ed1ff2c0103cc4191467610178a6dad905a08dbf1fce9d8e6da99542fc9bf9e2f12ccaa206c039d8742a3b42d4d003139342411a54121a06828ba652041ede442f9744aaee770036981e2a925d30173ad6b6c4685f7fc6f36739cc150e59d675939b374b8c860df0348d1c58d7df8ad9b69c2510a3a82771b086a04563a63e16200c5832ef6b9866503dcd2437f2570311fbbf0b9a2bd3adc8ccb57e3bd0e329100f4aa63b2a0516f4403532e5fedac2caf12c859ceb6bff44be9c7a77c8caf1c60a758cf80010a50aa7203a2e2d36f5926555373a5340a4f49e169b8830a16fe9c92f6b1725b15d0a0a02303e7fef93a652617b04a4843dccdbd847f39a38dc9f7f4768a9796ee76d4498eb103610976954de3d373ae90488d1e02341071805a58f2b116d914ae2ea2b0e9d53503e97c03fba5b505291f0dd0c443538538964af841e92adb4c1fa51c46f87bdd2d03e9f8aa3024260493b07251c6ab5132be50121b31fe59ee468da66c7c5ea42bea00581e02950a43487d9c2fa5cd9100912af2528388668b3bb1876ff44743bc78db5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02c473bfc8f2afe59839bf559ad98977fa483fc1917b178d248ad10ef16a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02199000036dcbd4b1f99631efa6ab55d4c5b71a9aae6e865dc725f7b0f54e9cbda8b0e34e039d5f2e613837a297e39af5878565a74cda2d5af98e50298665696c2b2b8b35f70302d533b4b5b8ea248e023f4778c3f2588a516874ab90e6b2ea0842f492290689014301af3003204dba06f0b3b99ab6942f3a78c68fdd91598fb6e5b2715e40a0b7a94b4438e7039a09d8da5bf7cad15d73027d8f7f69bb49446917a3d5e7161eddd4f2b821c21d00581f039455ee84d3c250a2d74f764aa00a323ecf7db02269f73a93ebd9707542c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0311d2aa453cad692b032ffa77c96cffa4b6383e8bbb7e0db06534b468f2c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ffd7030f54450b1957fffe81aa456cb937c941dd69b57a887dfe559c8d21dae2fb61f703b21af3ce86447a4c8df881091e3f85c0e95b0d1efa0855a189d3920ea0b13cd903f4d1c421b8864ad410e8facbd0a6bb6b7781a1466675b47ffbb2e7dc05efc02a03526fa3fccd823c7365dc6a179aeb0c5862bc088625f1594c9bfc618d1064e3cd03792e0edc85dd5a6e07d368119965e1eb60478170a980ad61606e50518a37f10503c4480be66f7636313851063604f0dd8cf7015b22dad3362cc994139006cf467503745c362c73700d25a356909d1b4ffed40ed95b3cd214012deed446b9bf5edaab03a1e7506a0bb75cd8d84b726da11a03c11727666ea3c10a71afa4905e932e5ef903014745d9c7d13b130d9a20b22acbd1628acd478f24f7d42362607e598bcc5c4303a7b79310f890f917a39b50ee2e758710f6e25707f445beaeb8b3577f4dbe229c037f416bc6ee0c41ff3b94c52e0be9be007109ae6e3d3c12aeabf0b4b60b8bae180365b774528d98d3fb0a0bd7a552562be92283235362311f1456c26ea0cbaea494032430cb44c4607db152ad72341991e65828e391f3b4d7e1fc04b4b100e99a3d8a0219ffff03405a7696b944c02fbab0289bb664297fea240cceaea78fb2eff76714a8ebca3d033bd3ba7564c5a40badd8afea70487352954a45e740d7dc47540d95404255659f03b2be9a38ffd581150e2a7bf6289e729fa41aa3bafa6258b90b7f8fd4810fccf8030bfa41ff65970a2d7d157790e4fe6fc1d92aa6a8357c989f37b52f314e7e0bdb03e67e875ad946c1860b14d4e643a87d78bcb438a8d437f1a7e7ba3533c8cd6ff103564d3f65359502b0d5b5382520ea55fa8b347be246196ef91c43c33f1b25e6af0219ffff03eed87ce8a626ee78d326a44fff25c5fac856a93c5fa1b731d8591d09ec8f3bfe03fab6b35842e3bfda4d37e057b9ba6b4031c722f44338b1793cac1d1b2d21e37003a0f9f3c365366a879797e7f1f4bc0ead53bd164963caba36ccc26c0cb5e374c203f0e36ca4ee30ee993bae0648b69f264f6494db68deab34a00a870d55237bb96f037bde5648c2dcef203ec98e66315ba34939742f7547c5bd0f29b054cb58162ca7034db3f3c5daee1a077577228ece4312902451b3c3b6dd278823cad69d870046ec03e97496f1e7d1ff7ca1dbf245aa149b526d80632e43c315a107ee3a7da23efa0403f445a33a6bc4f8a1599ba431d63bb6ca7b65d32dee6a12e6346f65fd9e2452620354fd30288eb8a0d6ac389796cb7f28acc0554c27d54f91e229fce56e43f40039039b117ce24d681628e89531ac46110a43597c937e3ef04cbfee82326449bb002e0372f7de82e929e700e61d6df71117a1d0250f69af7a3c236e631fc277caf486af032198fb4968be44e306d647af15162abcaa573d8f34c7086b13c6f52e112dcf8003d3548935e84708f4a48bfeab02b0f81a14121817233008364bef7417c9050e300346d8dac5356787f36175bab248603e8989db86422555c187ae84e623f7eeddc9035e132d8c6cbc50d3115e504f3f75ae8b3803882f365eb326335460822f30a45e035bf64a0944848c019d70abb44ee0a9828c3ac237c33e2fa5f5b724b3ad7eb5f203f9d5105ed2b1aed44fb323df4aca1b685be09e18288c1a5000f0eb29dc7ea9a5034218e20510cfa849693ef360b0cc5fb2f6aa9bc8a7c4f7172abf095672b1b2c203492cd5287db2322e1c1d19ea28aed7428f4ff64bc4f0b2875b49b0adf1daef8103b6c014531f5be5876a735315a3dec3bba75829c8f24cb8841aabe7339ac12d0c037bb7a4409174288d82d029e6e0ff30c4b3626bfa0528eb3a158dfb2fb0e8fc46036281e2c45fb2111a9395535fe53442c4b4965345523d748e2cc325edca5c097d036bde1be6569dd4f2442be48c2de0f130ffcd3dc7b9c18ad2884023f1d6ee53a30311e9c265d4a58f014861ec71d1efbb577f3d638edf2610f407ace6dde28be48d03ad8c43623f9f29a5a218330137f38f26b546fa244aa5fb85880eeced49661e820331093f3be7050caee82592a5e72ae9da89e1d9057a0f9cbb14b62ca380879abd03edd8cda12e9a3faa1c296ed6d79d9c556976faf9a7ad78cd0cd931723de0236f03840d6e9db3da9814e7a47637a4622063ff4d16dbceb548d73b4baa6971311c47035a491d061f66924a4ffbea6a4d482dec54f88cebc459cc93c8f0b2e101c4d46f0325d8c13456060fc94fbf61b0d1bbd70af8fadd0ae589f22eb6492dbdabc09f4903eeec1bd9da44c54284a5130da42777e34f9952e672f88f536349521423f6b58d038d2406bc93bb85d943fdfff8b9dda464ad94673a2e4e870335c8f157e9abc25b03027cd11ea7208c88c3b548571cd7ff3583ba2781fb146af4933a06353c082a5603f234349e0f02ab095a4553dfdbb9f96d65718f0df693771866755fe9c90667df03a2d3e4615405ef04562dfee30e3384a413843f0536750a1b1addebe0ccbc0626014102035c18a809f93dcd61f82f215772032628b7f7f21ea05f55039a1e3a4645c1782003d75bb40b41f9113181b2c88151f1aba81f0509334eb369eb9e8cdbedaa1bb6e200581e02cea2623deac10420b5730fc055fb2ba4104d17f0432b67b802f79abb4b490435bb58a42e89cf3a00581e0241064bffef029a077ad5ff73497234ea8f6c2e846620b921d57d316d59481854f4919d6f57ea00581e022d53d28164ac3e21c86aa08cd35f3b3ed782876a927c86fbfdd3c34c45410800581e02a090ca1fa6c4edc86f6837e42b091ba005feae9d9cffbccff2519680575820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021922050398bca0229c9669238fee7da03ebccfc219ea991a33497ab69c0d511be66df29b0219ffff03ff8f64de1f175a51940ebcba2cdccdfc29cb8b9e0a984c036901b6b49b63eb0903ce4b0c74f00060c68c82a57c6ba5d673c2a67ddc04ca2bca0f427956b43005260219ffff03d85add7d8d551fc88c25ead37cb322e75004d20b2dcdb23f9c34897e7ca6b9b00305b743b0b0e809861b21009435e26a42bc4428fa6a69851f675213b3c59093c803d3025f643c014e7bfe764d77104d45e13ed8a82b25ceb1a7b13396a1864efdf303a03cd3c0b67dfde8e13ed9de109321f1c14e9a28855e2169c318afb18cde8cf0039fa36507f3b920e5db0686872c459933e43da6fa56cd8460020e8651d0471001031e65f882495c5ea2a6288af5e8ea61477e2fbd9819a3ebd894a31e3cd1ff9a4303d1b1d0db0f64a867766dd55e7f6b94854af8f69f1eb540b97a3c4a4cc7f1c0db032039ae06ba0ae565537733d9d9196237995e2f958d3ab6380dbb5c66f0f5374e03f8af200057394c12f750c4ac90ec269f04d027d7da578a3228d7e55f25dd35f203bcd9bd0cf719bfcea202ab00e5e5e8042b40fd23e8e6b7be5263f29625458e850219ffff030becc25fa8d2f50ae9617e202787afe26970d542849524bb1ba5302c366246c2039e96a9780183e2103b892cd2a56b5cbdcb3ac4c0e6c07455250db50ee273d26c032809d2c4b69d07e664fd9533274633e24096051e455044dd2da6bada465f005c03c7abf3b066d462ffc733f20f5545bc82000da92fb7c16393700131ad498877830394ec9006c5be45d729370855f01d314a8e9a6071bc730e74e4d4270a2d37b61e03c98cc053d95d700d1307ef423269f86e7c12a0382edd4eb7c3ca743b13c66eda03ad65a3bfa3bd8f6cbf2f4d794844b69fd823d109076b8e095cbfdb33c6b9b67d0308802ce2b2c63e1c37181ea4c488a6ae4f78660afd110424eb41d6ae91bdacae03596beca4c1af8939f589c4160f1ba5c249cb09b1726e70831bbe63ed7083fd2803046b207d47386a6cf369051aef470a921f5a5e89c3aac1922f83713897059228030f0ad74460b3157cc7dd8091929f113b0d29c27b60658d463bf0f238bb67f29b03e5204cb3f29dac8cc57298d166677d63d01341801258bd82a709d537106a449b03049bc1b87a3d007f6b6e5306feaa964351d3dd954d010aacb6ac558b9e43b72c03c41120d041cf8159fc05dae457e0db8f1549d75d21af0ee7347c00a5f4fb0a0303e5255c940e4b39ff3e1c1fadecd14155f399c8dbf6d3181c9f2c75ece3a902d703c2a6eea5519f036638b547653fabd9cf52e4a98ae041ddcb2271a3695381fc24032371a14683aa2ff62e9ea703a53d558b588523c284231b82417bb550c1ad1aa60373be2ba7f5ae2b11e273614faedc4b8e6b9b540db057ff33d3bec90b0fc4f30d00581f03d9534a97309161c35a7d34de3403bf7a8acbe70f253822b7f9995ca395305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03d12e23bbb5e87c7ac392247215c954329e053c33725a6c2bc9ebe22ded95106e0364900b476f862da9c6dd6d47c861acb821a0a8ad673637a0f63507f8898e2a6200581e025aab50e2d80ec1038d5a1283282d924a19159afde44a20395aa7e8c5c8410103e0a53fdfdf8de51cb5853127a716ef7c92308b562eca09409ee3a5df02008ea600581e02df329e735ee48fd44b38cd0cee656c45f7a3e85e2de99fcaaa523fc7e45820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219090200581f0353a9034ddc1266e7bbb51c81a983cf509282115b65694a4401800cf76b005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03c4b1be4186d24bf593869ca7e7d46ed7745d83be4a4337e2fb49c1f1c5b8c1b800581f03f9537e1c10192a894bbc73aad25204ae3413b4c37c320dc92bef03f6c01048016345785d8a000003860d80780740f8e848d72def251f2918a6eda7c54f2fdda4503658416eb5773b03053cf917d47d6b4a5913c52408c28ec59df106049e18a83240517eb265b9785403fc9631b441a62e0050a714c3fd05f35fbc8ce8c0e8bf8399b4022d0addbbdceb035adca5bc6cfeb83fa9cf6e0fe19611f87e7c9b26fd09c01731809294f3ee011a039881c7ad624287de3fc0a7b65f15b091612a4537c2c5727e4500c183ca2df7fa039d8a00d8e676cd0ace065760eed66f9820cfb18fcaafa080203edc1a25decd6d03b506517dea7fa5715c22b64c654a6e0b50017203994d74597a8b9179912bc9480219efbf0386e98cb30bb05291a976e4d80b96b67c5dd797698d21e93bc9ac34b35d372a0f03ae2e50f7bd133f2a17d76d07cb0e279bb4fc38dcc193a6684529f964d38a4ccd03533663eb8fdcbb996727b6d5db84dff5a410e7b386937bb05b81fd96aaef6dd10219ffff03692fb3ca14ed17b5c0eaf62cd41d31d197815bbfc965881bfb519451a0d607eb0309898342425037cfd6d3d794eec3ccd1b1888870081e55f2abc0e4769720b79a03bc17e3793e33f0d5d82091a14c97a1b332cac5fbe6af8d662b07e5e2c3fd5f51030a14a86997031e7db2b0df3769d5869bcd15e179e0618117e370c9859e9e23bb039e4851972cecf5b834279560483e90e07924bd1077c53c2160ce6cc007263dea03583296ad84c1bcd08b3964ec17bbfd1d9bed98aed5fefd8d0e4ba026657192a703dad5d5a8caa0277cb4e8e8b83d4d3932679e10de006bc7ee025f526d4214d12903800d3962d6bb2a5699dd51a21240a2f10b614b38fba9dd81be16c4d7fbb985cc03d80d6e33543f386d81db77cfd3f663df51dcdfcbfb2fd3270e48e4eeda4e73dd03ce9dcafff67bec401c6fdb653f525ef5cfd9971dc472e0c16ee03046eaf262830219ffff03f36830502a431707d6ac0adeff5f5df2bb816ba59b81a2bee788c01326d20741036a2e9b507a1137b9b0d71a0e48d56a5dc0174c3466bc9848b705ca6c73f0a53003ef92f69b681211b603593bda6ecdbd30d03ccd0f7a215ab91440305d034a40080371dec8fc2f3e1b1744016407b069896563f25d7bd4f29d2a784d023e94ee20e303b99e2bee6e480d6bf4b1cd0d521b0e75027c9d409886a7a368d128c6281e1d0003c46f4f384c466931cb5aa8269dbea331bcb89e47f3c83cfaaecf561b164eea9f00581e02375b877f5f39d051d2e02777048d7f4eb7cde04a43ac5bd6a59881ce385820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0262a80e4a8715138f246b3f0272b9adf29b7c68dafa343fa747473fb726452cbda7a8b600581e02e24b9c9c2630f1a704a3ae30a87061bf0d1dd127c2167c2166cb98d09b462f0fe15232ec00581e02553cb9c6b7246a67bbc213cb3124053896762505bc92b15c5f03937baf5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0243d5af192aa43ff8fd0a76898df206f6428aebe3b918f12e67dd208996490e499e580b4d7f83c400581e02d24ddd0beca5d8a4093d43dbd4d425e52b752259421cd9be47a10a067e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021960a900581f036678077db12fa0ba6045b5e073bfb87adb930cfd5a379f3a7650f61be4a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff035a7135fad31fe8adc79b9767d5c27ce3f02f127205b3b9c313ed52e5454da7e303a88f4c04bb0e2bc7b9f87ef5525cfbec4eed5a26c7fe06015f336eb7f87abba803142efb6b7d504af7184debfd5ef0c240b6e74b3ad802aab65f80eaadf1c90b5103fdd1ca9bf5fbb81cda0b79a4e05b5f1a8883c2c6a4c875f15d22fa38625638ec03c110d638c2d1c32f15cb4384dfa2aa1f6115767a3ad627fdd4b54871fc746c8103cff7beaeebbd5e238ae16dc95ba1198fd2327901341d17d17bb5cfffb50fd8320348caec0b5f656e89bf2da331176ff4abe065e76faf108c254b7c7beaa95580ee039180820bd6a3a3df68fcab82f930b8f39dd1f30d80b1d355ec097cb2c1e1296b03df978b866e793163c316d734ef803d3a41760208a66e899859513d0557da84a003b3b16060ba4877fe0968936369b8bac7214e9404ed35c9d2e31067b1925761f90357fea15cd35e5ae03e23c1a8182332b111c7db9ec9a850bfde937a817e4dfb6903a278ab647036e6255a7de822db4a5ba4d4c60ae488e57c073cdd5947f8e09c5c0219ffff035080c20b0581913850ebf3ad7c121bf9eab11f12a6153a9cfe52614e504a9630035a27980ca309d7ad3a2f6286ff45f43508e50330ed82512b9b42a7b07dcc3496033eab27ea79c4ef0e6904b16dc469429d2f10cc288c54d9012bcb3311b844f64503ddbfb4e0cc560efa1fcdc571af9eb8e3caeab755f216b0fbe380e842d36a80ee03c507f569656f6a0c510524e465d772786cf3215f3d0a4bc1ca83572ed032eec303c2e4d6d6bd062a58a801ca9390008431c733bc3f7431b5ea689f35d4fdbf5bb103c8081ab10c4a4612822db6b0226898aae6925a6da597803d2959a991fff0d0fc030fc517833c83800cb0a4f5c1587e5de769b5648172ec50e7cc6e6b7222a4b4ca03c1c790dc17466c672f6c74d310bb55ee7937c1551e99b586a75d94efa0ea776b0331bc253d17d21229d0ddd9f812246cf9e2576ccc1ef82e7200505b9d8fd088f003a4484f635f390f1184cfdef651a1a626de3a42995f527ad0fbc783ce262daec703aa93dc6c2c9b51d0ec7e9f015bd77c90b9d93316fcbbae48dbf0718ee3302b2f03d46371f55ab5f20382ab9a6902f60979450bab1b8ebcb776291eb5c9d773db00035cc120d4aaf4d9c947e4365d88e1ae3a3f1a533c39ad0887b005109976af07d20219ffff030dcac1342038da4c574d735443b2091bb1a994d417a43389ef6a522c7d34750203cfa8294e3d1fd3fdcaf3acff141c8d5d806f9621292e96d7719ba82618b8ba45038588cb930f200453b001ff7d6a62fef1c6983889f115ce9942c5249df1970d5d03b9ff9f9dea5c4d186a0eda8661aa8f112dbd59be56ccf3f90faa0cee32a79a32031a50934a35c5f7fd7abe1663c58dd21f49704e2718eb0bb9d60f758fbaf1e62903c68680040517d07e586fcb80606f9d0528abb48a97745ae9d37bb312a091887e0394bfa3ac0a83ccd69f715d418fb9b82124044fac4e52ff45a16edd8205b3ec5700581e02d66a4a0f0d8651d31380c894efb1161e34d1f59809adf72305963ecf405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02d66853ebbacca749a50ff8c7bd0c34bb5ef5e1fad7991de50b7208a0f0472386f26fc1000000581e0208eea9a8cf4e86edb8b0c0aa62d6a04742117c85f063c27a25ca7081ae491907a9e5c2eebbbcc400581e02171b1c4df6631aa98cbdbc767ced4083fba45e421218f67a1c507c2c85476a94d74f43000000581e02b47491fb5cc06bb18bd60499b77815985231d5cc5d97fb19072a7c80005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02eee322bde390abc4f621f15d76463ad8d2f8903fba6611a332dc890d025820800000000000000000000000000000000000000000000000000000000000000000581e02c92c7d837edab9b7a7a64fde888abeb5706c5c45399f7958442500b095462d79883d200000581e020a75b4c2db87b1ffc87219177acb312c5e70df13de9d50d80fa1d4f13f464d6800ba601f00581e0245716733dd04168af3cdb05aa18265347c9a660eb49b5ca4aeb19a53885820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02f76cc741866cfa1cdcc55e3374c29d8125fb67827db78a5de91f9bc85f47271471148780000219ec9b031b2881f21983792bf1fdcc8761e83ab0b175ec20e433277b717accc9af69b60203651b8dc0b2d626bff43b13d5d995baa8fcdc35068dbd810c83d08d5ec0c429f0035fdcfe47ab778a9e1720c9cec30b1bd8cb750963d13130c09f8896c777ddc64c00581f0312f7e71a3da1770cb0880c71f6e68925ade03d915869548b7236ca18ad505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f03a2c029078019576710c7173afa45ae06aceddf21de72358b5cfede5ecc205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0358fc413667c1570aa5c875fb9bf0655e708e984b69518a896801e42988e8555903397a3cbe81caa20c77145bb6209d382fe534bba86fecd52af591eb728684f0c80377d5ffa4ed1e450d9766cff057c3bf89f6365ed6d903929b7aba6bf217417741037ae9e93aa85a8bfadff9d6fa0723114c18a6e464b6d5fbe85d96409b86d1d509033e8aaec390d6113932d685a5c8d683be79bee2dbf7c45e71af53f2355575b14403aca74f519410ebabb4e204fcd93f0f6669a29f3db69acafbaf56f4cd369389a403d73a14c2f31d017e6a9118f3ddb3ee3e9038736a1e7a39f8df2e1f2e7ed0fa560362861b5c3732b12cd06797fa73d3ff7081c11ffbf27e86b0ab32c0afd7b113c7037c7c2ae6a9e28d31e0f002d116344b061adefcaa2a4b97ca7ca9fca150035db803f7fd80594301c12f1a6c7bcc3a94af33e86993b6cdd4c5de796b7f88f74faf1d0219ffff032f885a5cb6c6849972e77e82f86e427eebd3d7f9a48062099483706fa649d062039d618bdf1c7b89736fd2f376ff554a34e8cd0a46f09d1fc4af5307994dadfa2e037a774e2829ad4cd011d95ba26790f91356c06d56ca8656bf4e5a06a9aa41710403e86b7ea36d6cfd16ad9c9be6552d206a465c1f03ff6b55b23bd948e0df8f08a503e230504ffeaae4278aa25eeffcfc75db1d72fac82c7e23adb15a443221179ccc03de9c4b3dfcce3b71532bc114ff855e6d0cc296cc4e7073e375618184aed8d704036c8a19899cd56b68f81bf7d5244dbb767867bc1822511a719d1b5c10c50d741a031546fe38e3b1f67c94d4126a9d4bd625bbdee9a16737348022d92fc5fde617ec0364319136441a2760fa80bce3c3038a8c167be6d7c301e9e77673cc4d6b36318e0322605b2dbdb41662fa39e809979bb4213755dabe027b969b8eb60ab1269060a7038a97d4b9e381c3fc06f16b03a49bda98658ce037f7f3380da4d7905f26eae60203dd8e907dd94a9928667a67ca6dfc6d377968e7aa241f5e1166cea3b9efa82b810370c54b09ab3babab0f7ab73e80345b0ac7ea53cb7cb9acab7b6fa48b7f77765d0219ffff03586c03ed622ad7b6782412ac9f045d724146a743978b09b4f8f07b89f9074e0303f7815132a39ef6efe7a5db75ef3408a48c6b40b39c415515b30985cbef93964203d71be7355955dcb21d5e15531062eeaf97c0b6df3947c148f4dd8b70be44a62f03239a743a29de5f8e133edfe447b09c8512efcf9aafaf6370c4aedc1d906b5e180332e7dbbb6d7090c6d8425c55c483c362b3e1b853c5ebb00dbf4b837936cc990f030a5e6360f2e199f63808bdbb6bfc832050e9efa2dd6c50987619e4a0416181370305e70e771d2bbd3b03f955029547acef6ad020cb4f2962ac1d28e54b967fa210033044f545511f45b823e9794d4d8dbb8ec249a42a32c5dce13b6f5566254599a10219ffff03aa9ed6060e99b2abf584a69d4d676ed370cfe24bc00f4969cffbb41e450bdc0f032bfe69cfe868b9ae486f5f74b5f1ef198cf85d0242d2e369b15da1324fff8dda03cfdc47b8bd3cf43eab192f364a5ebb5fd13354034bd8c47ebfa1d1d34b3c4f710219ffff0313bde381003c847c59fcdbd3e87dba8b7efcf6f9dd93e04724bd76802ca745c603c0690346ca6bbb681cc6dedfc54b4ba0fe9592362dda42f4ad6d7409e3f35bd703067c79b3802b6b3076f921a69b3e27da125f5a65a6328f071222dd0d752f40920397e1c57e7787c46ff9604625b2ee9380f4039d1d880c284f1fb012786e3ed98c038add229be95720d50f326030eebc21ea345748a1f1c4bda4cdd31f075d3a3235033c9ce9384b1306ecaf25eafd1ac442076e44ee9e517bb0309557f1dbbaebcdcd0328576b853caa8d80ad09ac66033fe649e788922bd67870e5c49856ae67cd670103be283e00c7caa1f82730b0070de1083e6ca361686f388a511c46ec92c82db6ee03882e13065f7023fb86efb4a9ffcdeefa2c9f6cb66542674bc89f65985fbe677b033cac0f0b8c7c86a1a42c1b327662ac2c5e5f01a7204e9ca4969dc696f9f11fc50365a4769fbd7f3192c030d4a6ac03e5f9bc995be9d10aa853dc15cf4088572e1303a950600fa3542436ea9facdf8ae0ed8ed617c4461ebe477f0c9d7224a64225a4039c982dbc888ecbb7e4fc66c21b694567c7652c7755aae824934ffa0fda7eaf23034771fb525b76055b3092296bc79792f2fe1e356bf1533119bcaac621b70433dc03e0fdf655385b79ef1c5193f47559bbb6909a195198aa7efbd9656cfc5ab4eb47035d55942d70eb5fbf5c6106b01776c4bcf6bfaa95b22848a6afd7212a093d799e030388eb7ef0e0ba9eb040fc4b0f2c8b7edcc158e11f50763d0834163e6869db4203db57d2f72b2816e86382f06893e771f9e14fe08def27bfbc7e4a52b3926f479c035a68e1fc95adb0b39b3bb50e4f8b61b5ca16803c9e13362ef893552edb467974036067f2111eb69d994ce340fb80bc1b6788958ec1d09a8a85fac348ae4334ca2803cd194a94125b0ff5af260def35410c2434a143f7f3c476f88cf1747a180156f103d6bd29561501a407ea6d28c392eba0bc421a8d597d93895a7f6068f261af0b28031125353cb89bfad7636ee81948267463760e4aac5252b98ae87840371cc8898d0338c2dbb1d90f829c26bb950f54431ec0466909bc44bc2ee1b8b66ebfdb88b18c00581f03a7f1a7572e54818386123b6226f284a26cd92cc9c8486890d85ed5c09e805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038a8fbc69f7d3db36d058e8f9c9671845248169245a7b9a3faeb6dce1102f82f400581e023884f33faf0e7baa53305c03e67065204f6e2358c34b37c0c24db69c164601d492b78c8c038583cd9995d84c587c912e1cfd871ef0c8dd6e06554b760462401a07633a7e1f00581e028423951c558c93cdb0968f49311a6f49c15626a82c1ee8bff5369dfeb94816229d3f0c874c2d021920500302e08671e72cb25655ecf791edaf836c0ce05d890efb1e79508019ffa8225128037c9984893a30b61fbfa1df0679b06129b632971852e36f9b849c44c2daf97a0703937eab1a377234c38569c9ec7efe9d03905db23b317ae1b96fc2b02cc32aaecc033d3ab8e5ee710b96f7a94d425b0941fe6bb1b0738d70b2511572f574c900d96e03fdf216a93982fbe968d657a831e8dcd43b3c20a9ca46d5066964152f364c0ed303f0f54c762a2c1d47e30f5a23777c7b85afede1c0e5b80df6040b0bdf7c38f87d0219ffff035194f727a1ee2f64df82f3e487efa58a6175245a100d66a502640be088239ef103fa1bad1177497eed42e6338b8bd143ca2039603dfa83a2720d5ecf51b9a962ff0305b571e5eeca00394453740690720bb080c7d32fe51669ba90c1c7e6219a7158037d31a2d3c677fee91f9a8a83ba837788800bda87831b9f4a629285d8ea13128e03aeaf0f0a6db056ede1ad3afd59873b662aad8d0e8e48f09e8809cb28f7634b40036225a6a5ffb08d20f97670338c527efcce8227c06ff316b3ed46bb85e689c1c503ece5dd082b9491f0fbf0e25fff50e8145b0a5b8cc97d7854b4725294688446530300d3f3ddb277693799c3592eadd13fcdff0f5ef6b15a25669ac828db266281eb034843f66a369297bb27155e74df28fe85f0e4ce9b93a3d8fff62792c0e12e54560219ffff03d07fcf3bacd59c863cfbb702ea81018d9bcf004d96ca1ab5947050bd1c7e90a903e7f0e00546272e97c0da5d5ff03fa3bd88fe94cf64dfee8f3128057061b22c190328bdaf8e6843724b16df7d5b7738495c3809ee94a3ba840de11c84d7950c5d16039e4751a7e41ea3517aa2a4267feee99fa5e087e7511dc52635fa740de647fa1603976f3ec291fcc1017fc24cf6ebc3d52a8e3ffc1b27a961a66d3d0f6e91044bb8037e2518f079531e9fcb4201669e478feaddd814e5bdb9050a28709453c26480b703e65b831e8bd79dff46d344470637102d01d36349c35ddefe381c46e18ac73038037fe384cd49b22b93497bd157c56bf77c1fb6ea64afff3acbdba2d7b49133097403e200ac3cd222907b754f3cb82065e8ebcf584db1d5c334c162e31edb98fdd88b03d7dcba86d917ad9c19606e84e296617ad44274b7777fc59c89b4aa211aeb2f4e03bf8cb5d5746fa849f795a2930b3f2a493a2aba33c6a1d52bba325f08d61d5d400219ffff03216148c1d6c8530dfcc1aec9a9648ad6eeea595dec022ce1e558046a9224c01b03e6d2a3cf8466027d8ce6c3fd8b8137fcb5d3dc34221837a3c0052493d6d6aea003bc60844ba0c0f950e431ba1ae8f48914bd3615b148b2be4f0b205c62218dd5e603a0ad1e2e5f67d5d490f8de1a408c30dca01085e318971df5c131e63df2a836e403cb985a6e5f969d91cd70fd13601a14e12389fd9838cc92d23bc36973e136359003b24bba13c7f0dd576eebbd075439e3c822e4f06a125e1d43b71197e098555374032daa3bb00175af3b8e2990396fff10297352bd5469719dc25d3919f285399978030b91957a4270f52c4bef2a9148d90d5d7ac07d2edf289a0bb1187768c942a92e0384c1c153254938bcf5833e3266c69d11863f01beebc2172ef140895ab5e8137f036c73c87058593f7a4c5f34ed7a844533bf2ae21f0dcc75be2305cb26502e27d803a7116b013767ee61d04cfc7ee0ef0fa6eb0c6e0b7d9b21b78302c7452509581003a0555fa89a6ac0d1f753c5bc430ca1bd74595c40928b8eb150567bdc1a85892403a2f2c2f85b117e77fbfee593bc7f1a87d965760ab4ceb77e2bdc085c22b2c46403e87a120a0a27451b6271d538a807bb0085c31bfcf491f46298bf79e07f1561b1039504a9cb5fc23525872531ecc2f65ab0bb5b29115c62bc024a8912f1fba1cc4c03202d28845054f6fe6a50978ee6537cc8f29ea9d08a2b9d1c560a3a044f9e8be603ab12089e9f6f349abbebe4f7498455ee8410c5cf24aa2586edea6446e9593ab3036d7c1259ed661bf224d1f6954d7a13a9112f7eac5ea9541142fc8327142c1185034302512bd497d6c6691c4c6d78fdf99b51252c4cf34b284987001796c063680d00581f031843a5260f50654be60454888c12e1df9a8f5beca305d3643235bb2410105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0314ac2a4037bb9c454b5ff1d341e61930d98f8bbf8d3879fb16bd9c75c9b180540391d0c3f554b53449edcce8701fb7941e35a59dc2ec26b8d30a92a204b5e6f6df03d3da91b634b1a7274b216a230bbcba5e24d92dcb0acdd9600e61d9d3e6a0e6ce034453e289c78c92dd80619ded94bf85359c38c30b8ccfbad693f38d7b6762751003a648a3a6eb8bd75eb1e2494b42f22a94eca6d6f608b5b7aa2ee9b5c0e9ca547d030feb2f389db71094872ccb0acb1ccff2f1aec23fe78ff388eccfd0000edba3ac0306c41f230bca0bff2ef0f2eee1e9f31dc74fdb942d2744b67227fac91ceee0ba03d05faf394c9234ac4e98e507310fdbd59c2580cd987c354cc84105e56caeaea5038101d8390f58e6e7da14d23c8005b95989c7ebde1a3c6982158464c2aaae60a5032e72b7f4dce792eaeeab1c5033624a348c0511b1cc58e47802ebc95995d428db038c233253a52c8d290c1cc6d7784cbcb618436a5b351f4d65c5ec53e05c7b2abb00581e02e45fa4a838b134c920a70c634c9ca44bca01a924b0040860770d1aed8947726d75c93f880000581e02920e6cbb93e03175c156b6576e7c589a7b95ec4418551adbe64a3944845820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0218280393d772a69697218f224549a9e49fe5d9bc8b9c7fd49e7ea79f9713960c9076380219fdff03125272869e4a25821c1cfbea8c449006295201c8a3b3dc92aa3406d39104c8a90349d115a4a345f8a268d6aee0628a37f606c4cd02adc99bee0d669911de16ff68031cac3ecf09fdfd75a2d143901f6954071b1174b117f8f904143cf0421911a13b0398a46da7dd993981a9a8dcaf22ade3299be2a26ef780714b027d49f654e022850219ffff038f29dc56cf16c0271f9cf207141f0c4d1dd90280b5a54d4e17b57a50b2648b1203132b10049085bc9411c024dcf21327de2162f0af350e374686035cd48fd66e540315d16c487ef535d0f173a49c98dee30280d70f178dcab63c169934921b6a88fb03bfc9f392d2655cc2f75b619b4587bea110d9283bd32c67f11d90cc4897a1b57f03ccab9c6c1f535a5c35a33a1cf64e366963750b0fca755702b3b5c1417dbb2dfa03cbb86d45dd9af8dbb00aceafcc979fc30e5aa0cd791c9d803edf2c899c3ffbae031285699058db64b8b3582b409e3336dbbfdc4d9c652586f8071df03934d17e790338377a242ee3aeb825a7189846b237f286d5100027b983108b234ee99a61b5140219ffff03148ce59153c3b6d3a51adff6fed05e04856b41a1b213cf618eb02a0464013c6003d62956a2f643f5da2998164be4f25ad8a9bbc1d54edfc2cccf9fa3de4c11534703efecedb6bf782967ef591da2a982fa98a12382238fff9c5633b753e29b55a3ab03b09d7d2ed0b0334a7752b7990568d0ef283c8ec7b505cd07b7a50a8f549de6eb03a74d7f55e005c91da0a477f4d11d8309cd561520e9766a3f2b8dcae971cd372503354d203e5ea5d2d914a1c149ba3e93aac6fd270ca0063217b5d1428df0dc7f5103ec922eb0dd7dddd163f9662050404d3f517b59359c4e488a1ade52b41beb8b290219ffff03dc474335b095a23f1ea9d960574dcf2d077207c6c2317088efa8a11b4a7c4fa303e8a44ae82a8257ddf5b6e951b7af578915600177ce9ad4f9db26693fc88d11c103874227e1bfc44f0e3cdf87ee4b5a591a165d238bafbdb65ca86189802a1e96a703f25e17aacc1a45096a5f254e020e54b3a56564ea9cf5d6696b27bfc6ca80d16d03613dd8d78c14d19779aa4ff95a71efa2880a29ea7b2e6b74e3f189694b638d1f036abd696627b587ffbbc16e506f07a0d0d396861010824e2cda62d700a9f66c2c03e850c70f9a94cba0c46768b96e7270c42c784eba7bbebe507def04b72ab8a26c03034160cb5f2da90bc390f9dbecb128a60e3cdc8787a452947709312d28d55d4d03a2cdd1d05b7a0522f6effa20d2bd7b9ae21dd9463b32df9dd3c160e814fcc88203faacb26568bee21e85a5ea2e959995e4443a41ec151cba874027cfc7532b4bec0393b8a2530bea45ef80879774a392ff2bb9f4b173d7bf379155771345f7bcb113032b10d5b8a294b21add868317b7ccd34a7af871f042f368612a0d5c2d8e4f3c9a0381b431fefafb7ff3847a1f006dd964ec0e3a0e6c1d3b7e651747d1eadf3dcda2033c45b46fa1888357bd89a5a140c5d6b0e33d5632c9899fa0be3a59088ece3cd203f5a16d0c20f85e1ea3fb94030bad0ef694d5890eacdebada60a51be3b84dd78a034c7c2e8ff6923390a6e4717b94ac78d4f1ae93f751315395e5535df3914306a9032a8ce2dfefde59f491c72dd4843528e05ed4c5005cf4f1c3b8b04a9ff8991d36039604a9236fa2be981519028cd013b90a4043cfbc46bca37d1bff73b59bcff4ca0315fea24b90d518dc2fb99753220ad5b9ae63f92132d27092473da24472343a5000581f03324b69ac0890449805e5dce7ffae45f8439d50a8912601940902eb75ca20463858c564e00000581f03ed207133689068903a30b165e19c8069a206e041545c97139038cca92db05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03fecd811c60ed90810c7121876d34777aa74700fedc0eedacc291b9ad11c64d7600581f033105a29d5cfb35f357647bf426a3066dcc9c8e0e93fb21090deef632f0804b52b7d2d9ba73fd496a000003eb91854e1d148afff890aa8e90ccd8d6db75c5d9aad745c1a377db3c467513330328f89981f7eb2f30b3d7226104372f858b0c356bc6a8794f271ea3cb2b6612e103014e86b36028b6efec9aacaeeda3f06e330c2e6380a3b291b9da08be559209d200581e02d81ce0460b6625cc72d15571b16e3d420a714a5e97458438977e7305ad5820ffffffffffffffffffffffffffffffffffffffffffffffee61b80dec7e0bfffe038fef687a63e0b9cf547a42ddb4150c18892f3f774a7de330cc62e9550a81adc400581e0255c039a315aaeca1eb04f522f84689b9b7b2479f42eb1e2ff69503ad8d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03282dd52e1b3170409d86dacbd9795bc7f178e76fac4078a16e4bb3ab205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03d2fcc03e0ec69b68e72db0819c2599b7c08d9c84423583188d222838905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020a021911140396b2effce5af3709a206f9db4502b49e517e904e95afcbf94da4246481f40c9203e52c757a69f59e13c9a63d6bd2f3c607e737dbbcca16178b5d430598b5b7f6240219ffff039dd53c3f612835dc62aff851925cf4a280a0a2737a88ffbb05c9b16f1a67425903f78f955b180b5224ed97d31c893b0847ae5256c3ed09e2198d2facc23484bb8503f2bf359ef7ac2a9431871304f833405ae2dfdb71c7facf3a995676b3795b42ab03667fc367a380fb60f749a8cf45a0127dcc51c54050746fcb618ad69cc2ad245a03d92cc2a2575f93de4e28662b706299b343957616f9416c88ca24e8fbf59808b2030a3eda20f60b444621f52a3ef1ecf2f5006b8d43cafd2d54457db1e1e9dff2270317354c2980540eb2adcb99efdaf0bc0d759f3a02b57caa027af887314408945f0219ffff035a0b64fda2bbb353677f9f1570ea021c6f46476142ca453e9242ae10b9bee69c036e62454ad550c464017a498dda4b50ca108d31fa0182338e08aa77293466a4ba03666e6a280eb67fce041cd5f5bb00a4b8a335bc016815d0e05297e4d61a027e2a037e293af1fa83cede0f8819c77bf47f47647b718688371540e7107e893ce517df03a80ec88afec00c5af5e3171349fed87226f5f7ff04cfae8f732d00395a33d25f03f47a0e66a369b760a183a89ca16bed70c4d6a2f9db07785ef480f4907585cbc203355c40e6d27bb1f07d2dbcd583e8cf2b2664c63e28b66868a3922edd3a269fef03c2b190631f3415e96d785c6ec4b15379b83f67122dd425d52c295409e29b703a03c277dde2cc375d9c22095fc646cc663e3fa0fe0a31ca46fa47504e9095df49e203601e18ded193053c2e4a29a69897c2902b458651f6b9832f4794e5b590ee4c04035c119573d1b062ad0b1ad0120ec26aeeda4c60ae3124091324d6c44573933eda037bb62f2353b37bb58a126419fdefc8334a683ebcfa9bd7f0780dbe82a8607be00219ffff03596b187ae198430afc549bcb6de5e3ad8e8108e55f07ec8a47d658e531d57a4f032eb99f0de93fa88a44099fc2b8ad88111844b073befab24ade917485d54b489303f4f3681b75078ad4863dd242435c3e0e9ea6d3744d47c3cf6c333b7ff7ce62c60320c345c7fb33ffc0e5b6161c45ebbea6fc0a26fa1221c4a895406912c39be7c7038b87c2d88480b94696ff10f549985a605f7e0057cb84546fcda12f38db0075ad03c9225c9093fc41eb1d052608d6624af5a3483f9f79e1d5786a360ea688840d4603967f55baad04d41af59625595137e2ad7fa18270e18f8026eafb90c10672c12903426aa580442bf5e918787f29202b55864446be2ab35e6f6113a129e2b2c9901c03cc3fe7e1688167b2b0eabf6ffc8095843c8c6e72fa98ed3e95e2e729edd6447503c147159eb65290b2ad283c8dbcc63461c36f91f4a03f5d34e8cd3a15364a96fc0356f07757605353b64acda891d12ec0763859f612b23404cfca92f84205f8ff2003676c900cd2cdf51d49cf20d2e565eee7a27502f80b944866de8d94128e54249103782ad2323af99a1216274698f4212d9a419bfdf36bc49764762710d1a353ce7f030603b54b22bf67e9cca60237056eccf541cbbda0514c73a4d3faa2e8629c1bbb03c3f5e8a5eb750dbfc9e4534f6ce5c7cad01116a23fe65f5a755d808ccf3dc96703a5c8fb8af336c36f19a7d5f90817876cf790e79b56e9c0f776127e3a646b9eb603ea9e18495676890c2b251da26e6ab596c32e2586e18fa8341ef960165d1b24920372b067aac298da3f0c86cc4feccb821af4bee71c7ff13d80b25d39771014fb18035feef4e8bee42eefd2d6ff280012293d135f642da1dd9c3956e021c583e6df650380e137e059f8c6ffcc856ceb0f944292975630841d269c7a7d2a2d43770b795f03d1bf92d3c1298bafbc2972205698ba9989ae88cd365ef1e0134498c9513d23b403ab69ac4fd40f59d85a8a1331c6c1a22d798742069d12fcbe605ccf2cff652dc10376f4c8ff07b7498123cd4039a1dbd86576a424a2d54042ae7e7d5014b7a23cad03f589fec7d6488c6acdcb511b447d1939b31bd44df8a5bf9fb4c6ffd3131a2ae4035fd4c4bed334e3947c65d184d01bedb0acc76cdbbbfa62c8553db4793297898c0342859e33d71ce2017d5c9c379f8819ace2544ae60455d2500b8bb115145ee9e90325f823dcb3bb31904318764157ec006a1e1854bf976bf6aeb648d513f5d5878a03f3df09322fe8c7737a944d814f411a8739347053e4b0009ee70a33cafbce545801410600581e03fe95081bd50ff7d47baf1c52410188fb8600a4388ad2ef940837958e204865ce6dc1d7b015f800581e0332ba7c316893c520f7f9a0a3e6721139cd169f3d76dbc79ae555e820705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219110000581e0243bdaae4e438c7a49078b73fbed3e578a18ac1ba009a0cc4a227fadc465820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0226683ccefd5f7b68083b2da56bc7760f577af479ca820fbeb0a8eb35c8480237d940117e78f90219080c0386e61fec5c8e5f185d74ec59b2e33c81f2e86c8eaba65af558316da53c987a77039d12c03549c8eceef04f1bf62fa766a30f6d419c899f6706a5927db64c5acc0603ee2edb62a307e9f1faab17369d390ba36dacc34cf907c72ddd9cbc5d77f9e94403442f1a997a742fda899910cb8bc5c6dec322d2d4c9bd52d8c866391f1744cc180326bd1eeb37ab40cbc03dd87fc94565c047732f01c51b4bc4225c32e72a5c89f503ff2706e711ca45f2b17d05ca7a69c03b1001fb4d32ca2beea66eea60c5a3546e0219ffff0358b6b7980a944f3cd8c4df6a88b58a35f118887c3365dffd3c97dc489fe53132035a42da79feb2b4bc6c2c6cc53330a68d01e957ba02f73b407d6e14e8bcbadcaa0381e018f1e8e79e9aff81f6eb1e04afaafee7b8aea575c42a163ede830b338b1d033351952ef16718186fca6edd1e03d31d247e8a064288e4257bf8e17496bd6f860390f3985c44e6858bbe34974afd93d5cc6dc69600a5dcbc8b2d85601d2c3fca820344c1242660d8be148aa98c101192b59f76c11f893bff361c581a61eb284421b703a30927f028a9052ddfc02e4ca86804d0031475b2a6e04b44d36aa7ebc260970a0219ffff03b7eb37d812a938585c59d2bc63b094ef62e2ca2d19f3f16acb7e8dc39ec6d4c703340b3a67d00a8c8a6ce0f27f0692c10c7beccc73f914f21a440e4bf3c9531d78031a9ee433e93b17680ef4dcd22af1f946ad20d248f36e6252254de38185841a9703c4b390418a38051952c3019c2b19518c45b0276250281288f5fecdedf52d2ba503cb7f0298f88b1611d35ed949d73a691411c861ff09517b6c3a5f6af3abb5e327032c903116437601af4aa0b51cf6691ed127bb44961725b442bcdadb1f7289744f031bc974a384becb2801b92b18dc69ac61852146d6c0768feddc2d8b98b0ca863203ae44419a93c88184f5f737e1d40e3bedebecde94277dc08ac992281d5797ef4f03f06ab0071684b245bca03e87331aa4b2a4b063a9a8ecfbda24c51a7ee9ae6b4603e76d9c05c3353529068c7d705e8ab9c1866403ef24e614b71ed2c95f6bbc8c8a031df0acbe601bab89d4dd61a1a89cae090dbab0d3076930a2a320ab7e6a1a2ea00219ffff03f11e0035646b61001121cbad342aaec56a77412fa6e8047806a5d70dab1a54ad033df42fd3eb0d2b129a6b3a2bebeefd2eeea001adf5be955b1e150982bf6637b003ec4e297ab8b250e09683ce612c5fb45d5b8d4e78597529eca15b36a23de9f955033f7d2137f98c34e9e10f62350e7e60fe0dd77335ad46ef143b61af8d6620439d03b47e525c593d8d5e59fb1dc7766e6ab8f2d2d05b2c4560855ff5cfd550d8579d03d4e600f553d7c0b5aa3c150f5271bbd0dc9a21a9d537c5a923b9eb957924cf620219ffff0384a8814482ba88f1bbaafa1b7d4cb3ded475fc8296f66f4f03540efa3a9556460342b92a6a02d43f2969169120f474850868a376a6f3baeee2b8ef27d72d00d5a703c8c840e1767da837a81fe4e569e36a4519efd70f6d6f0f35dcf285b4854a0b1803ea961d16bcc636c69ab0dafcb8f5fd5e0bf2d4a795009d61cd2d0869e5548297034fc7c72f7244c4049a30ef5713ea6ebedae014f19cf9794e19ed48f534fcdf6f03ad3e19d1aa9816096bdcf237c4e8f1a65c342be8d4b71616e2ad514af973b255039ce3ae7defc31641fa91369b5593aa5bbf08cd542c2ce1821ad6c0e67b6a2ee9033cbda5f84858047c04989b3ba187f97039e2b0337899ef3175cb86533184b7a503863a5da367f5f565702086e0a67eb492a8e5adf18052a34b515154ecd90de8a30344efd512f92f34ec82d4626b7df108261218499003b80e48c9991794dc2b441e0336bad073a487bb2cf6ff468767606e855c319aa00976e213541dede9399f854d0358a4308cf408e529d678fe9943e3e570d6a1fe9cce2ac4ac595c62856fcb9abb0379d6f79f9fc8bba3c9a946f9689c57383fea43763ebbd07b3d1ac80c24030d520372a6a075a707a57196c3dad720491fe70312992d8de49c3d8faca78bc823502a00581e025821e7caeaff9b8eb593ebae44c64d49ee7a8bb30fec1746c1584964c85820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e028f84917ee6d91e0a4132d558f6a2500f1ef660db232c1e02db07efad5d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e025022b7ec8830a3dee0eedefe42159d769371285661a534d8aa8d562dab5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02e8b3e01396e7e7b3fc441390fa801af1f9d22e570f0b39498c112c2d645820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02f41fb9699718c06319b4d93fbac750abeeeb30be0581806df340ab47485820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0227c545d46d721d41774a59c3b1c428cd2bb0638787342205e706a4a18545e8d4a5100000581e021b785fb8b7183cbae19ba89a6e600d5e23947028694303477892bad666490255fde3b1163d952a0219911d033ce3b6aa3ae97528665752482626d59601818bbc9e63c187d681764b5a525fad0388b7e835c99108bce9abf0fefa9c5798246ee135153d71a603102e55d1d2c44c03a8d444ce141261db0407b6833b66941874c7c40b3fb9928b0cbcca7282f255f1036da25e77595da13616556b3983e4b5a2864626f6015ec04df87028391715dbaa03bebd824eab86721b1c7fff18718cf7d2644da3302e8544613b1d80a01245a04703eb54c8fb4560c7e5b8b5155fcc98ce0ab4e5d2b1514828f700acd4594b803d89032e02eb2828786494af31f0d63ff3c1e433d03298d698fc384b58a5b465a02b0503063e5a25ca8cd88ebb0f9f7ef8e6b5b23f9b811947127fdc902e89b3ca164f9200581f036cc3239fe3debf48b6fb4febe74968fecb3c7a704ca6eb4597fce4dd7c004407735940033f0e1a01690fd6dc11027fea7da4d247b78b8904fbf28644ae7044e6bfd639ef0348a2212daed4d725069aed4e0411b09da1847e988d40fdfbfd4109fe6f562e7b03736d3861bbf1ead65970c13df7059580fc133c8d230aba482ae348511ec87c3203db54015fc802ee3f941a9ddcbfc8cbf3d8eef6ecaad5f12e3e95b56f787f2ab303f227b91cce040727765a420c46f850928035edba85831e4a842e1f458d0587ad00581f030ae55361508ff01a315191364770365adf92d05d8b3c9f94c43fc18f9b904cfffffffffff096fb4da200000219ffff033699d463002615d7b681c162eb18c0312556f50f597347624a2fbdd5d813374703c77caef32659d86ef8f31dd0a929d5a339201fb2615a07987d3f2a7d931fe5bd03b3fddfe1ad928e96134c6c79bcd93331008b4d5c6ead4e460326fe3816beea64030b49bb6deb13d8f2d9272d1eb9f88a4c8df0c4e3cbe7f84e38a21a9fc7ee59b8031e94074758e6cc028fd0353444bc45927b70806598fe292952dbc180b8621da6036a1b90919be2ac6161f94b6906f87464e4f70d1e2f2e4023cf41939083a18ecd038b9adef048288a1ef8ea07f03e66e09605e90f74b7a2c7f7fb9e6699b5cb809003c9b7c5bf777813a20b1ef47308c7c973e54d230ac8b3d1a537770bcee78680d503e26bc69006c364dc471dfea9ab65c2197d274e412ef7377a454ccba32db906470316ee04acf764d6e03243d9cc6dfb18035c3ffcb1970bd3151196e22cbd9e927c03a63de3fcf88524a656e9a0ab6812ee3b1b7a18ea4ea57183e704735004dc301e0219ffff03a75416895c5be920369547d4fd0aa13c469d460cc92b4c70d455b68853d51f19037bbee9719351f06ba2c0e215401348918cc9f326e1ca859d53c9be794830f9ce03c70bac7e7a191ca8023b6fba99a99498dbf5f8837a72b4a47a6766d5f550d79b0362bfdd4417cdcbf8f599c6e257c735f621d35869893b9ab74298061ce422b2a203ee8ac01d376a3309a2f9ce059c343f187fbbac6170e83a34acf47528a8b65828039a9dab86541c54a6bfa2c655eaed996312e8199486c66bfcef0e9571deeb2acb03aeb21513cae09b172a4ddfe1880050af79d069466d0945d0fc5da6a84cdb22a1030631959b7d251271800cff50df2149cd75d97cdee4670e05af87bcdeefb3f8280341a7d8ac14ed50810a8d243b3ac2618a741aa7fdfe2490402a3bdbaad4d22de70350b3d4b24d5e720c0b41c6fdfa41bcd116624e5973c23822c87c32d6784113b1036204c26b49f2a85f592f5ac8626e5fd2856b4a65b51bd390716f50d0aa640a560343dd7719e1282945c2353534bf133fc6272f286625220352a39bbec21f4d08630219ffff03f0fc20d0fc0a4633e96820c831fd5a352426329d3230050a0ef01e83830f56fa03da02dc989e1d5b4b153399930e891fcd18ba4035dd9bd18f52510d5d1ea387110314b8f94d64bc4258d1c349769ffe30627d42ce030e947ec317beba829fffde270367987c58904fc58fe908a21a2c832bc113c76172fc95655ca544a3b8c0d1728003b27ed7b841364db4431c62b7dc2b9386b5737d6379a0b1862f82baa18fd0ada203c7d28b39a497c2b01b53e480754dd5dbca4467d88f290be551021237ef3fc3b403e94b589462ba3c224f2b23c997602242f62f9159b039d14f257318587de0a06b03b7ae29c28b0805245f49d1f2eb6110501cf38740b62f3dd4a2377ea4bd6048cf03c3192d2bf120d1612feabd044709134c68451d898b5fd634f0f9e9d6b790a0460321636946fe102e5e57f77d5360e12467429236237a7a406ab4885db0f24ac38f03e913eae17a6b4cb5b033ce1b1b3a0fab7e66d431b7045b550c600856295416b503bcdb34aac92a97e67cbc950399f4be14df430a0062b5544774cbde2278c44a61035076b8f2e753f2f2f86c66e1d69826d9c58d3627286da19744c4a3e35984e4be034c39d367256c58215468ea16e21d2ac747a8c07c2f54bf5e0a9f198df36785310345c4ac8a68dc6740cde84b374ed4d5ca0587777856360ba4ed581d6f2898425d03711ec730e111f11fd07378be72761f8eea64d05632c8a6da22a62e6adf77281103c587351abfd8e067ebd803c49a72a187a18660239654801f86656555f4a9ed5b037a3e51723fa9eadc27d81217d0edfb45edeb8fe745e6458662b30c1e6b997cb9033a960f64f6a256c3c2f8207f774d5f147fd1337c2e5bbc8b8f3703d79ed5dc8003d03c8abca5a5c484e26136e79b16c56bb01bf0877b1f27db600c12a15123731203b50cc58da0f4e3197eee9cc1691d6f010581908483e0a4567a8347ee65e7641603cbf826d4a60e31872e4af8c476045ea9fdc5f1e56d6b688b31a84daeeacf943d03c6261f38a16f2240c8f3d50db2cea9cedfac7ce6c39e24a552852371c94f0e7d031647d7e191527000168f4c57b69c5bb7a90f6472dc66de0ebdca5eaed324183203a03e59e43af8f86663b53a3f33d30d351d2cef69d70ad517969fc7cb914343fc038ac0275c5f6d65757ff51b2fba0640bbe078a56e470c14ae71929533637931b20344691c8ae8541b396458616da0ea305c39a55ed3444ef8e34e681cd27d77da9500581f03c820205ca1f8e5fdd6491692262d184b9820edb010d4e01ec1594f78f5105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f03939dd862439b699222e14feb989ab4afededfd2e949f4cf487093bffab805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03648f1f1959c70b949271529a5aeb8096c21c0b2752a9b7a0eff49d87db44132e00581f0351c14f75628afe319e8a02595c07179523bae590383da5c9c9a90913a1105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff033d87eba198fae3e802f3c38effa1345824bd5669f91c0ff1cb907f6f9ea6c2ed00581f039d37288c8ec6d47d0dba11519f0af35a75c99c480e73a71f74f3894cc1105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff035a5edbe0d818f09ace37b952a22da983d4d1c68e1681d97fbed596a323e18aa8037c020de50e2e4c05beb2a7fb1636a02c319b0f728ef50c2f5ba8d4019b8817fb0365c28020d5728dae79ebde431fc6e4c97b9877c49c937be5751e031d2035119900581f033fbe3c49d09a193f71e7e06c723c07b6b1f07f06d3f6b88132194b28e3c04838252beafa65e63203aa7a5fcfe5b933e803d4aef89f48b662fa40c50be7fd04f9aeefc6efc5090bca0390e76fa33cf44f7eba8f752793ac69d35120aab7ce942eb656a6db0d4c8e1ad100581f03eb15edddcb2be1208231b8e1a662662ddbb664408e801160da988a5c0c7041010219ffff0219ffff03ed883b1209321b3a63fbf83b779ddc7bb146accc59bbd6d8e1751da5c69b9c9f032d6715186c74d7659f107898176671b527f594cb1d56f8a619ea3c6d7057777e03597292306f12fcaa13ce3fcbcebc399145a48d9f865df2b9d51834d10b788e5603bb4dbb84ec02ec134e68195ec0f06f8f95d032975e155d3e4563940aa867ba9b032115bae2bca5c4caf89f6b8e661cba2dda81fd563b75fb07da7d38ccb999e7430393532392b8a374e8c8ac959cc72d84181a0bc1db218b8f2635d90a580f76f12b038774ccd4a64723adc9f9176f023f2e4f360a460fedf48e553a1d32078705be27031cc6a4ec65f447be546863d08ac1663b28c49946935ddfdb52b598716c09f1f60346876f0c40d9f2dd26bd87806759511c2d101488ed766cffca36abf941aa1ce3037154fc47e47f670bbf18fb7bca02b6cec664e7cd9b5c78c4a9642112e05d7fcf0349679df84b60e3b8d9bf8f24042198a5d11387d47cca4d9ae14959f187754fa303e63d13f4c4ca9417a7d06daf15104ebf1e95ce71192200f44ab94de9304328c400581f03e8ca33c3bed2f9771f7512db861055e8068878fdecc04cf4692d4c99e2105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff037aafa3972b3f707668bf49c53cc0a44b7300645741d2b9396110e7213adf12970332fb23ead0c95b4b1dd26a900b55a8e647b9108cce8afb326ee6186b32a6d06b03b793aa992f7ad64010e93bc7a418173f6a97f52f48ca99a68fed56d1348d85f7039e61fa3040a573d1b21a85226a3ce4cf214ee4e7cd91fe44dc768887e98398e300581f03989d6a2a98d956fc5d3a44e8788ef5f6bf11513c1b3d8d6d16d6598dfe405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03abcb4988507c316a1671ef9224474851e8f95dcad9392fb75210c1ba0d7facfa0398342c5ddfbe06f25c63755819e15fa06ca380c16324428971639778a3cd61fd03c10ed64a3999047a6aa5b7bfb9ab49910dd97378b02b30550df06cab86e83c4e03ad64bafd7ea36a36ec58bee571bf5f135a8784a84c5dc4af7be4d539cba58d1e03c465dbee9cb0a915779fa3aba6478c38be34163aa467aafadf9b6e53243948d100581d02e3f7dc93749ca55bd146cc1638ef33ec4c696543b01c1555da2c39ce480facadf3eab9be4500581d027e1347bc31854ea2415d5e8cf4de765869e4090d68108f0d58c9c3985820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219400101410100581e020c5253fcf1e8dfb101f913f8acbf75f18ce521346c47a2310b398a10984b4a817c726db66279facc0000581e028ca3fd6885f8071b3abb3d2674a1fed6f367a52ebdf7e34e09981412385820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021908380353d680755c58228161e4d056abd099e83bb6bd660ce053656d5d0e07b7dcaedc038fc654caffff35b03e32afff729ffff8dbbe42aa2f8a9bf03cc6492fa359d164035abe9f4f6eb4e641a991660263a474e4a48691156ed1c0d2a0fc735cc2c030390219ffff03c076b7585e3c9c8c796b19b39928c45ced05e8cb73827663c10cdf8fbf4ebe14038ac05d9afc26390393600db2bcacc1d8dbf7fa55b809b40e0f9637acd993c73c0330f2b2c4ada995da037c915b9ae6b871a5c0c27555b698d1452e64fa8e6c071003420f3300184c1d4ea5dfe6f560ccd4c365a48baac1ef11c383abb24ea4f312e803b1033c32828abac80be3949026bbc77789ee0753c15169906d1d7c1a7a476493035f3c46879d9ce79377d47306201977bd379d75191800dc45937ee380ef18918d0219ffff0354e373a5a462855a7dda16dcdfff178ed36d441fd163c038f24e94d6b2736a5503871a04759045d143c642cce58fc52984b1f63229d9be5ce8545c06df4760168d03b9f33ecdc9782f687ba5a1008f952ea19129111e5cd3c79d98270d7218fb8a9a035244bf04c0c34bd96b3c59d9272531762f1b6a5acc6d7c15f2db13290eded494030d3b97aa2cb2740c80eaf60d8601d101466021d0d4c0eec13e913936a11e75dc03314022427f68aafd186813a74ccf8be4ac30428c0f8d067b7824e8f0b0ed2e9d0219ffff032c8ba5ad8980f672d6ad95467c3ce265cbe8851f9d259a0fd042c49f89d1b6c003ba5b4a1d909740cdbd5b7df64570f83f2663a119276b06015a9d63a8e1eda88b037637b4c26ca08f9283064762f7a24c76291c51281794c780359ead8256e56f3a032248c4b828b59a83edf7b87a6cb2ea109d551d236a0f0e0e1bcee52a60e08f63037a82899d1b21156b28a946ec75bc2f33803cae94c9dcf2ba6d2a9c839e50ff64030ba6235adc7f80c80cd42f76683454e9d1be2f8e7578e2e12b230f89f7526f39038b34209a63dfc99d915df1ae107e2b040ab44126d291167af0e90ecfb791f448038ca62ff5dcda8b6a765b67d46f8e142448af1baaca6890d0ece3adb47382478503e2d95c3543d19de05fa6797edc77b387c5f201a7fb70bb02321ade5221ad2a9803505534b0413c548be22bc726653b455aef9c0f074f153ad805c6a8c226b764ca03991624cf28c0bd9e8f2afadeabc8d8d23ac244cd6dc4e6dc4b204a1274ff831c034d53bcf4eb996b67427a6c289ce16518ffb9b23b25d835845dddf1d064c4c11303642f2dfd185ae8d0001b38bbd0d3983f7822f2d2b10ff705a73a1b19f4fa9e3e03163b5043119b993185efe8508dbc11f34b8edc7f0c3bf89581bc8fbab601ed02034e7e7cc3c1529e2677969fdbb162b6d3f570ebcd92537336fffaf7dd60f36e4e032ace46a79ab2191050854cb0b6bb78917682687fa82310f08e6705f8430e0887038e47779ec1ac3635b190abd690c869af2236c2a6cb8128c2ff9f86e5b76bfa7f03eb48cc0e3bb1f8188b35e22a961cbaded95e93e35694e1a4b8e05993f8f9d0b800581f0366ec98eb6eda7f72da4473e743c7ec483918be636a4f974414d50b8dbd10484563918244f4000003d1c7b54cccb5865dcfec6c6c3824431ec940d431fc5914549920b1b1a857f6da03ccd8ff22bb1ce2cf9761d404c6d960db99272141f9b8eda09485c68b1ca25827032afdb0f6952d2657be4e8891e8b1f42f8dd8e7e0a6b81ba1d4e799983598e7db03682e5f86424cea18c2c677a88e1272a045337f712ae48df683eb39dac685296e0396e206f8231678cfea67d860348e789c438014f7886616fad7dbbb179a9e55d6034e009082bd99c5efff570ce526b9c330f67fc3f2d42d627673748cbc93af3b5b03ac03f38c0d7068b690ee481295b94c13532d93bbc2310f51bf290003b31d198b03da9b3fdd2411d874183d2401cdadebc598e963dc57840abf82032bd7fb292027030cf340344288941eee6ac84b4ebd5b21fda3bf256faf699c48564e2e9ebf8af40362fc5ed9059bada0aacd32c1df187f10b5aaa6635c3406f67b0122fa1a3b33100351db1e40301ffe569cc0098251ded6c4f1148a50e8382a6ec65424fcf169569603f452e974e8117ea19be98f0b33e91a162908e099193e0ee167321e19854e17da00581e03464ab7da8269d06e5a483fe6d3366fe3a37111ac0a6790df530a1cccc04903d9470863332b3c8e00581e03ef737a219941831debfd8a9e7e94c2e3f57d70855f07c54e2b1600f5c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020500581e024199cf50d5c54111729c6d00ff677ded95b6894e0acfcca48f2cf373005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02ea0c1fd7be99a87ecaaf7ad12fbd90b004e27081e6c16708322c4cee515820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02f2859f4af597d8d8f57b68986cab15b18e9d7ae1834091dfe3dd38549e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219204903f7ccbcc99f16992168581abbbb5e926a618f0b8e3d39dc7a6f7faedd44f09c870219fffe036ba41f19c154ae631407fe10cfc733d87df18e6ac996e5ad576be8cf83a89245036b9aaa7a7753d1debca0be30c9d365fb718b996d0af8065a9efb8362c86b622e0374dc5c3ef1a6c5d1f056a69294b8a3cf7cc11cbc95d11756e356ed5fedc52e670219ffff03e9ed7af1d3ec6de6bddf01861c8091f14fb89ce6124e5ffd83b98d7b76a7ad10034d6ce47bed675e52dc49ad343e41f8457ff126591262eaa2538cebe8cd150dbc0316f53213d47031c8d8cd35f8db0adbd7d6a8533e8aa5fd000aa1b76c89198914030a92c7d200ce8b33b77b18dc67e09b8b36a05500ebaf023f6ca6dbbb6549cd6203108b3ecaa2e7eaaed5f180dd037fc13957a4ced2ef3ed02210ac01029325c20303625a62eb4acd5eeb8f61db782547a7d2313ff61b56fcbcdcd8ba129eb5333bd2032d26fa828e4d860b2114470ee96672fa31e785dcd62caf869c3f1fdb6e2df675039b46fab41f91f2aa089bef9393a1cf490117e71432dd292387fbf27d8b7c8de5037676ebe7e489aff3988646eb73312033413a88b8d6cee5683bf7127daa61011503150d14eb76d13c7893f77af4e194476d28d7c4a7cf1a1430ca4eb00e18b447bc0219ffff03d1b37c7e10f47e3c0e6cd710918ad726357d0b385656b824ac662c853fd24575033de5aef23480fa4dba1598035012b1979804c0f9c4605e192fe2ab662114db35035a157dca752f333f9bfe76fb009bbb840b36a34133b0f8e1bb71a5e0e022bdba0219ffff038bfffc610a05bf5e714c8099dabd8cd0d1681aa64fd2108336bb3c5f2521229e0367936a5cd1742eaf4d68d8ff0372a2ed909f46327cdc28f6a10ed6dcfb34a22c03145d3add34ffeabb5447917f60b43f90fa59f7e1cd1e426a7e5b60df67d1253b03eb31a62c9b9ba4b9160bedd0ef19d02992aeab8f8f77c258da877416846190c603ca320dd71942c091d7ebba46afbf59cc2b7fca6774ff5ae72feb588e780cc9d203bef86e3119534e7b19ceb87b6f929196fa81992de53f90eed132f5d1d8f37734035b6262ad5a7f9ec36efe0575b0e511af041ebb659d20a0048b67e73aa234f93c03a1c1b1c91a39bac20518f817a5c52388ff5c59f7d109b85718ddc64aceb0121f03ab908f56ed932a0a16bb023f1cde9ece453f72c3e684af4f0d5c6f274fc33045030842b091478958de3783b9f25818fbea0831a04af6c73c982d5cc900ca338871032c5d108995038d5d54c8f30c32fc856f1de616b4eb3425094ead7c677dc44a440362533b22d730376d133cb12e706efc92e8660c5a3bbe061e14c086193b70d2d503a27336d1a5dbd8c187d240d362eda8e1b940f544ade444091884b21d3f21a952032aed8227dc5e554c053f66d9e1694c076b2e562b3f8986ee8c74f8d49fb17b710368ba1d93e5ad6b617acd24e09808c16a05aca16a503979c0b0e6cb5cb936f05a0376c6af399166e966f270589e171adaccd8004a47aa8c8660d80559fac5da9f8b0388d0f5fb078f2e1a3d17398a67f14b0333ef1d0b2b68b9740e8816ac9a68be4b03d19e2e93d0d5f19c86e1e305c3a7123cf0216e42e8d0626575fc1384c125aba7036f670d8fd734ff4593ac304fd7a7fce37fac1284c30fedd26bc3851e849fffe0037d88844bf5025143d998a6be809bff3cd916b36b55183319c4ef992b50ef7ce503137fcb9626706786476671ace462650c1cfff5a3514db6c1787d0c5a4bb33141030f339c4e83255a848a3ada6e0e665d7c35b0d9b5ae43a8bd6595ce15fccf6e3b03e64cf5df32c4bd0511cd37d717997665bfb7cfd388540ae77a7de69586e2919703de2059c6fcdda0e590092de71c0dc2b3caf274c6fca5c101f0aea681988e28c0030aa115b6808946dc5830b1d4618fba35159d63c628c714dd94c80f94dfe4398d00581e02e00df8ea130ab1be8dcf823267f6b9cebbd327563ba366f5e3ef550a734a041e2e1d97d27cc521c200581e02c3249789556b45df0712821f843c21b94ac725823c55257dd5dc9cbc065820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02bd1d9aa8c1fc8b4869dac4aee5d358e6b3fa588e5e4cd7a1d47768b1505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219420403fa96d8e03f6b1161b259069e1c950cc8378869b08e24ce12b8c31a49beb1339603df57dba9f17c1cb12563ede155db3b8830565c1e708220ffa40748972ab5775003130f4140986c2cd9bd6495a543b1986b04e5d419d70c6fab6c972921c94463dd03a824efa133578f6e2914b194a600968d7d3a66061d63714c73c12b0c9c69393203378dc1e3cb4db1de33e179034d5c2e2fed0bb636709c23376cd86f9f50fc5376033ae8340c351e2935aed423650a208adb7a6d42fded1de67f7baed1949b9757a903fd078e7bf138b205bd666e8e46ffc7a0706817499f31872d78b5cce8e3c0aef4030581d0d0b093bf5424ad6c3ae9e4b4d87d2fe7dbe30ecbefd9ff508cb449e66a00581f03921416fe37de14cacaa5763bfe236c1273d4dbb6feaed9caf17dfcc8ba905820199999999999999999999999999999999999999999999992540f9e4b0f0d41de030a4a8fcfeed3262b02ce51321c21e67642a28d9fd8880cc8db13d7f5984075bd03885eb511ce1e01f6e9cd04d4a12659059dd9df68e1933a0383b45a995b3987fb03f79a5f8d0e4470b96daeb0ddc7870053ab86aa8fe43ece0ba89a21fe84df1c6f00581f03598da8598133f225c08987821af6755b52c873163727277f63824440b9105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ffdf03af758488a6c704945761bc4046783ffd23238b607631890f0c5fca228e96315003037e9a3e79474342fef9aeb0fbadb09d751ee5aaa5ff01e0cdfce0adeb08033503fae75afd0c4bc38505983bad20829d2e344beb06d2f955c9221418e4d2e2c32b03b65afb959bc2d15ff69cd95bbb4c90390a8c884a0d99540013c7f14fec4f0e9e032c35154476f953c8cf8ac63af25fc05a1ae28bcb6fecfd38f4b820b06d503bca03319ab932d38ff06957d9dbf2f28cd44abe75b21fd0ca5f50b8cae3b5bd4cfb2703c9b56d8ed97ecf7ab7754a693cde679acbdde4d4d2471964096187c9e63e3423034abfa8f6331858aef6f8ab48feedbdf7366555a083607a8a425252c949454fd503e81deb30a811c29795f0ed57016bc35e02428e7dc7734c7f3c89aa018ec7aa440335238c1e9b3c03ba45f2ff09a689b0163ec4d5a1929944d7aded46c695ecd2d60326b0ee685cbb6225950c96061c2bfdba3a7fb38183cc3f06a7238d700bf6e24f03f738d601cfba8bb0743d9630693390fc0f0af02fde6b1fedab8bd7f80137aff80219ffff0361a73544adde9605e22dcb38805648ca73235a4d88fc95cf3693cf2c2a25552203b7848cdab7882295447d4622d4c46d088e0ac3fa9e54a09218cda9eec9d6e02d0219ffff0331b877441ffd1f978f0b777ccc623500de4747bbffe5498183f7ecf88d0cced10310c1d6d60eaf244100f27a39d49930133dc409eb9258daa3ee72fb956ecfb57b03a4d1a937e8d5e7888de44b998e681e3667314efd941468dfeee27feadf9e59be032075c20ecbc13aa04a9b94b3d93d85b608e3e77230d45c4642c4016576cdf16c03870a65bdaf1c380bf07111b5d43c48a5061a5b533779e05eb920e209f278876803704dbb4a8cdd6935421e703519a0588c124aa4437be76c32326b06b8783274080357699d528308d817522c519b819b760dcf3ec1159393e9623bb8d78de2179b7803b0a9bf8c550ef987442c6b7d2683929000cff2ee1a45109e62834c46859fe49103236b38938da05b601eacb41aae8f1e957d96b8c3bec53014767b182d7b3c75320301c4a642021f3e885269e45ffb4458edd82def77c9458d9032764b96d0591b010386325a3892f15f7cd536ca8985905e8634788ecddf2634e357ff92e655debb5f035f6e6084220577193e6f66da09e2a1675802269877044391423d2b45009d7d5a03a245a6d8120acdb0fc885adbd535b0925a2a7a5c66148e4f6d9e719751f95e0e0376f3c20b7ac1072a9a82b321ab47601e3e613ab91ca9a6654462bc2d15343d00034c01d515d1cd8f422c35ff3e55923cb408feafdc81e2a420a90c7f3c70ccad6d03b6e8237ba0b1e9f8cd14e6c65dbd3519c4444199ff1c4ceade4a3160a86f438303ec7fa556fee99779ec26fb0965809e5a148b2d9b7745d49f43a4439f74173eb203ffd987b4b4ef55fa8cba422ac7334af1a66768ad5ba3458ba59a29176ac04fce03caf65cc225543a985e9672a409af92af9502244066cc24631af70825a4eaae33037b9c3c339a781796eaa7efa321f7f25bfc74d9e1f065402ad6f0d9e700c120f5035fd1bd3050f0ff1080fdb6cc2ad9e9df529e9c1655fa982ffd175598e6139cd80300593e0918dc78270e5878b772cfa9249f14b5166a8d313cd66f91184b69d25103c9110836e0ad71798f76f6915a352c6a8c1d04296ccddca68fe37869108a1ff8034d8e908f0aaab75773d76e7588324886367e83e431b36ab86968d1ac6b21c3b703878428f3087c2926cf4d3bd26ad12dc1b65a2330756e49f0ea59c763f45e1de80326b0ea48b27a768cb1826c83181c047a8e8d5b26ef0285d14948e26342a14bd900581f0384a6408ce7234852746bf12dbe7635152b10ee01a48f60cdfe8ea22e20a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0313dc7d4d88eb02c04f9ce3f369f4343f3147fa12112ccbbc84906fb888b63a6b00581f0318508b48270641caee74f3faca42f2102f723c23fd3b3a50c8616e880b305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03caf738035be4f9703fcd65a681763e3dc6b4b098d8ce5a6541850d2f850a3852037bcd95902681470c2876934ae910e0ed5af37c48dc2659525fe9704fdb74e16003ed4efbc90ca6eeca3a6437edc7d981d7de2d6bd5673199a0c3a7b3cfc71c658303c9a0435459adc71dfbd2b58c18afdbb6be27af15e238df8143d5c922eea488df03b9f605a857443815a18b177035dd486eeb63c65b4dfe430031bf3800114560a000581e0280f2ad0f3133a78421109c81e5933a5c898ab2aac6ba57ae54edb309d7488486a6f778d3e10100581e02a4415a6372449b321e8b4f70b791c6ee59e3aafeee53dfd4f85ea7f23a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e027e716da8458eda4540c319d04c0cf35a07a9616007b33d3e9b8b5eb9745820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff039704e06df88ad9b70ede10f3174def614f5d4dfc3c4a334e7204081dfdf4309900581e02331ffe4c78839d2832eb7ceed73beb67a18c7f2a13a49e5afeff9b6d305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02198138034bae1879a83c0257650971760b606097c2fc7ec0bb37dfc937e421b83da7e59700581f0390a2aa6f8f8e6748206f566f980ed58ebb0b080a9a82f65e248ce8bf6e2047074876d1ca20000321167c79546d7b8b9bf9061adff18ce29290b6a8542f7abde15341a496e45d4803972374a1828aab8281548cf33aa974942a3b10009838877303f8ccef5e55bda7037a30425669604aa45acda838114886fbdcba62ff2f11f00601291ed2ffdbbeb800581f03f02ce4eed744ab2cdf25d85db32b5e12ea9eb72631e5820e4b7a52168ca05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ffff0341c7cd3eea86fe9eac96a78c6252055fbd3d512c48ca4cce40e66e00b06e12ed0364020ad3be31fed6507e0b4cde5b7806618281bdc16d39625812643e86ff10f903882d47c4d0d96fb68f537b9c2ab617f8a2d4233c85b627c0fcdb0168c60f74c40302e88c8d3f6574104cf5688d3d89557fe215bc7f90d19577ed9c74d6066c6576038f36bb9db9a1669f9b436b47723cb693a186b3f68c61f0aef836330c39356ab9038f4bbfddc1f7b0346211574e81252264471e14d4c956fc593a59d7786def6281037667203088c09d6981b75a6eda669ff201c88c93b1389c8e9338471e5e495306035b2e7d6e760e6707a601c07b32a43b1de10d6e1407e31c5dea0871b821e6350603a71fdf2e1323633d2d72688edee5aaed04e2326d4d8ac3a07cc29fd49c404b760219ffff0363e72d1377d9baa5ae5ef2ae42932a12eafd2d7e5017673af94f348836e0b2a80219ffff03acfb78bb26351aeeee64649a525b61c13c71ba90b5d7ba133014c50a54d1e8910219ffff03d4d7adcfbdef824824c541b9f2b059b2fc1904cba9dd8597ec3a2b935c4ecd1303952c44ef92415ff8010a3be7d46d3404c6e8b653aed31b83c8de16f1f5b408ce03626621ae59a1ad1f4911e4a51a79d8a430a32b4e0c61ff74c2e7bb63640d8776039a3c7f81dda3ceb8f07c361d838aadb40e281bd1811fe98c749f748009ef96a103d8c9899a7ee7d92b73ff8d2c42e3bb397b53a0587056c53eae3858972f853f2503802bb0a6188191a05a7ce55624d38a2692acf779c29a5380157ff98270a7526a03de774711591a22eb48e8953b5399acbd9e7187aaa0cfb378ee19489ad4c61f0703db146c415b8d766c9e4a3643ce7c92da9158c1f58af4bc73a8d93998c580e1090301ec189d8ea219a45160b4190cc51eea09811005b0b9e45736b73d12ea69c05e03f292f62321848ae3c6affe9c17cacd1a7566e6ae727157ab9ec1643df4db3283032556ed7fc9bd39d086e012052936b2bea4eb459be9c477ffe7746ef3c79666fc03c6ea8b73bba0b9927ba4ddc805b8f262abc46d96939a9ac9c43c49ba5c24d82c00581e02e5ecf083a91acbfeb2754fdee5b9944641e275ef4804b1b87ec413ad5f410100581e02a90092bb43d6431192dca8187624c6f1c5ef25ba2f879dec9442941a7e49a9373032be3db0a05d00581e02c556705854f2eb62224b60293d2b01dea5e787d6cccbf92fa49ef58f295820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0260dd314ba5d2c541f23547e587cf926e6f30d566287873d8b9efa1da01460b329c62f00000581e02efba0bb6757fb353d9e41dabd68095481e4d08e8342f76b08c022c34d546136ca5db2c0000581e02dbf300abfa0c0ac0d8c856e82aea6117d845aedf642c158e8fcdc2c9005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219083b0325a4964e33b9af255ff4a37e80a6fb1d117d97e60da5cf0dbd17e9ee9346a33f03a99e61bf3946fc898801609fe51ca31f4df30d907f9e53b3da31e6327f46a22a03c8225d428eb5bc8b27f5ef0dea37c268439acc9e99a15609bfc6b93f49014c6603753209247d0195e226c5511fc16736179a0c0f4f1c87ebc2f127dd1a3909d58c035e7d47bfd684fa191f9323d41498cd98f70b2fb6f6ec2ac2f7fcaea6d369afdf03971b0eb080c6def9984d32acf50c5c172d08eb440b3dbfaf4a47633650da7b360331d43fcf3079aea18f25604890a0f1d0c66acf43c9274d2deb592e66073922ca03fb16fdb7ba999131a0af337b1a6cd3cba960804695d2b1670e3a79bfa082cb6f03ad62e8b2e33fa2737e8d1be1dfc9c3da767d261a44ee4950d97a5c05f99089b800581f0328937e5fc84eaf7ec5ae417c847ab0906ba9845caac124f3614ddbab9c105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0391af234f65127f4cee66209a7bf623b1b4f2adb761cd8e8544f8a5fc61b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ffff0333f121cc76647dd53e7f181f9ac2dbac887c1d2d828576c7ced6a24b367f2bb603b8afaf77730a910fb7db7d05930ae750422959621b131f6ec344f72d79c51bb7033e4d99e12e192ff7e3ebf03eaeaf5e51715e83c4212f5bb8304b61d5cc5e6660035c1339d65e2ec5ec554710c08e4d41b00587c28ae1cd0419c29c00800fd1374103beb12544c271839068ea72c48f85e8bf92d2987d43937a5609564a1598a9d69a0310c1e26f783c84934071e6a4084b98f6443df7684d5635c0754a6207ddd2308b031dd65a6c0219f68a4f39340e05d1fc9ea01ae58c56525e3c659a48c06937a7a0032460d154375b8892209b5bd182035675e84403961dbe879bb19134af82f0ee7503ba7e6091eac29b1b84cd5f85706f01c4592ff8ae2a1a8b1a169818abcf9574e103575eccae7d5f7fabb1e72348aa1f6e6cd15b8dbfe17422d30064bad0072a3fd60350e9bd2e28f831aa477bd0b9cd1ba7c6eaf4e33e880cfe6f7f994a96841360c603a5927ae96e337a2f690cba812c1be50935470ae6146a5a16d1a8814c73b1c2330219ffff033d89786ab004b550a7ce5f3ecc865416f63c84f12c46f3d85c79d97efcfe40c70337eb32e107bf75599f8678c2168d38d14cf76568f233ef5b878d4e7a588b0e25037894d72d2ab2030e80f370cf3f10ee79f8e82fdddf1919188a155cdbe5f5eb540374d323336578987532b8ff7773b206d35ec9731b8b24d8032abf9f1eb906111303f644b057b321fdde9291491309f76ad4a6ab9a59e82e406173ef6c36829c68f203c3af97a060baa4190a886e17a9210f201300692a27dde489dfbc6f152e32ddd5030a1f2886e006be6d42a033036c07ddc6c3c03d918d5377981c5fa9267b3f65ed03cfbe912edb1a6f48e66dca1945621adaed5adb27860a7680a42a52a0ff10f39b03c66f68f1713378245e5e9cf2f546c3f2e796c37eba85b7d2b66dae25ae4e0bdf03fe8bb653ca0f8454984d007abc24ec65c171387decd0ea4e1d9d60b4c853926303664f6d2fb3354b741ee78f51078bdbe0e976f9e4669e886782867bf5e6f1bddb032249ea5cb8f45f1d43f1e9c48817b642d189e2476a09317062ed5b643ddb1d0f0219ffff03a3012dd250935b886c35da6471692cf90b72ae61eae571d757ec9ae087cad2b10384ccaba9dcd3ea0f8780caac2895d384e02d9c5d2d31b1e0df983dde6cf67d1a03ab8a56cf44350b9a91840d9c371abc52f373f12d0b7ed4f44627f6b8115ab06303a08d2080e2525400a3dfabf043989466f4266c90daa0a0e3fb79503dab99ae3803cd4f467dc6389838114a88406ecb039bcb5af9ba35577b5cdb8424a04a4a6276030d42651f7e8941c851d3eaa8fbceb8838c3620724235dc86a3ff93fb825f6cbf03432ec5dcca81020a377a3415686bed745a27edff56cb516b00d8552dfa2c715103e9c16c0858a0e7a281cd85f620ddd84328f89c193a7ab8d14541dd9c9c104d3100581f034b2c64d372e60b3deb584c7a735e688064d5472dba43445fe883dc3a9d90423c500367fb8f58870b4d6c24034690ffae360e87fcaefe9c1c1ce7c256d06a488fe81803d9289f911d1bc2e8264e4e3e40e65d8d43a6d44f1fde2ba30b433fe83d9138f003df2ac15abb2ca236c9726b8a8faff24f104c8bd792efa47d757850864cd613fe03a29ceb75dbdb55aa60bec7a236d8e85f6f9673bf2013dfb6b1b141fdd787a687034db86cec4b566b614c14d223e622296d8c19b1d2077ba14c9457a7d8f5adc4a800581f034d1c8bfa4a97445926fd822a2ead1d6ec09cd234c58e3916929781163fd05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff036d6b75e482c8186329f886bc9c645571d31fc02c6ff4ab4ff4943c806915dc5903cdd938d4ed85d9bcb934431c98ab38acc2c9cf9d4652d7a3a34123d66e1644e700581e0270028ead38d9fd7f9171a618887d4f8576de72527b089b7a129b7affd05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e023ef8cdd718d82e58f2d37179323158c100e8815fb83d9a09270be655085820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e026659b8c90a58f0c6881882d50aa05277ce0d585fcf7750f0bdec8c7d155820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02b219247b01c8162aa97ca9dad7fe28fe9def6ea389cb95b204325054d74a0152aacacd6f6f3d77ba021941b003110e8f130fd89cb97b3e13939f082b6283c73ed04caaa1034fca2d180b5cbdad0219ffff0316e0c9e387cda3aec81acf8f6b973f5d5a37728286dfeb8c212795b9497e9f2c0329f3d990891d68abdc7d5aaf22940b4e799770efadfbf6264709bfc3f2cc47c903faf04f70b54330260507206aa1ee6b5eca0d2329b8c8f8083e91377db8f16bd503818a5dc13a0fd657d12efc67e8831b95ddbd992da759f1bd0f975c940b63728a0368b982aaee719007f25b8c4564f14b864289c58addacafdbf8a6966fe52b17e203120c7a9ac7553a287298ebbbb90fc444e39e518686e792e8794b7f47d6dffdf203b0cf0cc5b1c892882a2a5b65d0c4243707515cda66a64e15e87eb40bb61d924f03cfd49c3b7c964644e0f5bb7eb9bfa393b05879109a41ea2701be02548217001203d593db26e3f141e00244640c6695b1cf8709f613a5d7ecb151ded0cfc6320e0203aad2403e5f9cb24bb6c70ecf9e4030e7fef4e207347ebad22f64604cb5ba0d870375736c05252fd2a0e6470a408e7806aa0eb9aa7dd678d3fdc9ebe1b2913248f103c6a2bbc862d8cca59bd7c5711f9298a8790c15062f25b0fd963522783814c7e503b039ebdaaacc8b352687d3eb9b8ffa9fd418c22e366bc2622773ba8d39e928240219ffff03cc09e8c2d1ea03d9ba33263a30371663e1e90daa2c7aba93e5c07bfa2807308d0303763a85fcf769020dd76f32394bebc2df01813964be6a07308f9680ec500fc3036208ce2d042392b4cee6f2eac412570032691e4e8229576c32735af3e20509a20339ab1b358a3dc6dfa5e6d091ba0c20a210d532f47a3a32470b51e2feb6ab317e03416cd794e8c04695dd066ce0a75c5690e14e21c48c13b961995ec28ab380b48a0373448fb5c08006cdfcaeb8f85d775527f5904e7028821a7f536c581cbd4250a903cfd24d4c98cfa5f72167fd3678cf505b7d515b974333e88329e005876387ffc303e45a56e9b006f11b9de2ccb164e6294d74b758346ce246bc4548a4163659c44603c950c462bcd5312851805594e3af7b0c0828b75096930dcf8a927675bc7af986037ed2c22f240253d17a4c26ac5f549ee7752660de4d22c33977b6386200bdbcde03edca315f3d2ef93afbf553088b74f413c31f042b722a3875c82d59596016d747036bb357223f367dac39526ac9b78a49cefb30f91e914a567526b755d1acd80adb0365a934d2226b1e065fccecfc49962a4f49e2290c88ec4c1a5a0acf798e4c293503df70f1c4eb053116d8cdfd7674c316cb7315302e779a06d924e8c7ff11939ca9030582538b583a81607f25a3ab0b24c559843fd42e02a3419611b38a57f5bc49800219ffff038884c6419b0ac141a7b87e0af9d01fa747276e10e60f2431e3ffd821af10784d035f1feb3ff9aee8ad24f0d16ab2ea408f23abc9cd7bb4b8b63c467e3443d3428903a37dcd5adade11bbfaf90d9539bbc8b2357dc9b7be9b8c40ba44af2f4fb6e4e703fa62a0a54cb68719c5cdbc13ada257b2b15fb47f2decfdfe63a9b36032da34e30364932396bf1dda01518089382ac71486f40f8c9fa1acd4b25a0942fe9bae4bf4031347f36c41e31f6e2d089cb38d542fc35bf740f7d3158f5423f471db4f8a5d640378d7a1fa05652b0fb67e3dac09a9c661c368e7738c45cc6e3896c1c541a58ca7035cabcf7a8d1d8f280a643467b0fc9a4efa9644e28b3cca06a582cba1a14941fd036d6031702c51d13b99c9bfe718980f785a71a66120e5ec51fe5a3fecc434ecad03004334655ebfd12b3880ea589989c98d63cad761259729a237be383948413d0003e56a6a498b5b794e1730b0db259fe88501887d31a0443b00b28612867fcb948b03b5fd7cb2fc76ac47c828e59192ed770b451a4dbaaca5d76f61ef3c5fd2219275038a4ca0816260a0095dc833f11000daddb4938a8a1ee78d50e8c3b05bd8216fce0363f825be433ee68579064b47f543d114dcb4042c7b37ce79622de77c3c251a16035430ec86abff4ed31e543b2fde05549c8c804e6994bc67529bb512cd18e36a000366e019f5315327b6eacf7b8bf401dff40f4097309254c94fb1193486abea118b033e40faaa68d8ec3d9cef99e156cae30009f77805e921fe35ab6bf9c91a87e894030317a842a5f4c5a83a2e8fe471ddae6cedd3f0fb62792dd5cf1546054f68281e0350a15714c101685458224fd73000d4952489cc51ad9dc41fdb1731e3ee3af29f03ff907d76045e3ad6c2eeb540b4969d973d58db7d95ee88094fa56cb95e6c1bee0362bf9a8e2966eefe44832e20370d20f87038a3345884a99468d3761a1ce114090359874c88ae40c7075e846f5249952e2a41627ea7c7123db5a1ee24844a93685103bf92e35419e64e3e5787153934f7d9c2d51dbb9a061b6e17147513c558a089c203019b782b6088c171520758144f8679c1b3faf9eecd9a924992aaaf325e4210e9037f391e19fb0023e7e4e03f99243968c98234b68c29c4a6f21d6f0dbbbc13204303374b095c6b7f33a0edf11650fd5b8e94963da8dfdcced8447951bbe2982d310e039c182da9f2663df745fb638d119c50d0a8b88ed194b0e5b9725baa612f860ff903989b8f9f86f1af0c46bb59739ef0efd1f67704803ea7f62d647e764eca7fccd80356c6247d2ea75a28d323bd5de103a8a97f3f6901fa5c5088f26b99333436d24800581e02e3ae50adab786a795431192cc1106ccd19dab9dee7e0fc53a345b46c245820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02c283cb8bf18797f3ba57f47321c2375d615081885dad15c9381083841e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0246f747dfc335bd6864e4a8f66bf1d79d355b8daf46d7f143f0b26ecec2476576a4c9a087f400581e02154847ba56589a4639404ea80edc028ad8f1242b531885afb01da993015820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e026de478faddc0122303679f763558bce96ae75d14bd2fb49cde6be3cde25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e021727d9f088a48c8cf02e316e2dbce7e68b29f28a18d0de2280ec42d19947071afd498d0000021910b503e2a893eb7e8940d880b7a8597cbdd81b0549f3abd0f08c6266cd3e76cbf9879d0322dd13c06f09fb6aa640aaf3805e12d551c70fe1a1397b167651c59ebcd29625030c80ab98033563fcb07bcae04b2ab3f78e4a1a49a8177d2245d40a58b9e897cd039031946d5aa48859b801c02cbd8f84931d698f7554d7a1526239683cd4e3ad8d0374c46577906bc072f15abbcff1ede4310e46a3dfc5aa24d158da1efb6263c9cd0219afeb0397fd77f83c05853cda46e7c04edea749c0aaa573c6bdab0719aebd013ac8e6ae03db42eb25bd683829d95269b6fb26ed3c7c12de9b4036385b4fa366bb3312cc490398e996777c46699970fef860e150181aad278156ce55f1970b96e1f5cae3e3ce0219ffff033303265851686ed43a81d68179eaa23c79efb21392f36bff34490ea53cde281203852e208bc8ab9b43dbdadfbabcb408be43254bb3a34120ec216d68639ffd54a6036cace01230cb5607f0e70b4a939f2b887cac0f31b0f9b2ea7aee4881fa719cb0034305ad9ccf82a2780dc8f6146eb66ee5728fb21400444c69f8c65e1c9e1a62aa0219ffff036b084ee1026ef20416eb68736818d0e9abc8adf841cf9b2ad6a714a43a3285d8031e98d9990d2850fe4e5fcd8977f49bf6695077e9d1b3f8ccc74d22107fa1ae230361be00b178a5f32c096f6ee9a75514ac8ce8f76ecabc539d2679723aa01933cb033b18d169729a6669d92a56ed9cc370de0bc38c7d7a1d0be4aaab989cf1c6639703a423ff82c6518835559280e2c5aec2cb8cca8ed0f8af39aeb483dfa7d0fbb29003ec21d2aedfddc245a95596a81d604a23ae0b0318f559cc82ccb918f22320c2e3034065a025a77440b8387cfe5b3633775d6f42794669e71a8ca5c739d870c315f7038fdf1002dd1888dc742a8556c9c63616684eaade32e5f9e3b754cfa00337527003c8759d19705926cf94ac4a0554bcf91473eb7bfcff74d791209cbeff0a874c2b030d83c0f3211a9cdfe578d247d0b9e57bfe26efb00cde170ef7d9f70892107eec0343434a403ebe869a8efdca667ea8691219b630ed5f76a8d72ff23a60c3d63d1c03d5346c0d24e415b08f640f2b2c49accfdf9ba96a9f3652bb34f739bdf3ae70d50357c92e0a2e8f392e2b7dd8973fa40f042f1513e7c13bd975faad0cb2d37692b20369366915ad01a61c58cf996b5c63db226b8c52c8db4c36086f28f1b610018acf03692302b43d5a9f0ba307b23685e4df8a8e09dafe32a30fe82b924630818efbe103f3457f022411eee59ad99f73d758bbcce9bc58e78cf453f93b09eefe88d2820803f62e572807850ee644a3af9f12c4d5c5274d34327cae94a5678cd6c536fc314803218b6c99d65fd6bd3e563b4b526b247bce91349128738e6ae1d30fbd42f0b0c503a5d9c247addce12bb3c2994ecb9755edda7323a2e487e586999344e07e6a0bf203954db0ced37a76a9d8a35e9235b4092da685686040fdab4fe61ab7ceca14227703d16f8c648a5ba2b245050310cdccda3c1a82ac7ceded63a6fe76fed8f04c101e034e46c1f942bc418c72a08709439cb2bb50edaf3539ab3bea2ded1febd4dbb5b70323ecf8cecdc49ce0ab39e465577551064de320bf4972150ff0ca307d5e8a4e090365295545e01fe1367279aa657884d43bcb1b174cff9f2f8f2b2af44a22b7970b033483f89cc1274cde03d310b9ae8e836604de685442818b4a3e40f4de62f81f7500581e02485124a7b99a5976ffee2363b21fe1f31ff1231431b9d0accb61ed39f849bf43e72908277a673000581e02edccc965281499b391bee3de7210108b06c86ccd1a19dd06f0e667db395820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff039494067067d0d3e49ec9811850a5793871d090b5a36025bf84118d827497779c021913000385833bec760a8daed7129f87d46d9f95e170b91b3a9d0b0c65c98882933727790392cbdc5ff4b001faafc986931756ceeacc2ee7d860b0c77d831a73bf754e552403c0a38c8db5fd5dc7dcd5af9d0f494ee1676958121d36d614a73f58b6a127766903871832bdae677196d4bbf1037a2d19d7ce93ffe93567df160e3aeb004e010cbd03d8bf73f87f75269283b32f637d26f0cdb1a5014a3bb115a0fecf6d5ec77b589b00581f037be9531506f8c4942951ebada3f2efb096a1a663d165c8b68f13b70f80d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0311297e50470a03dc7b1d1fd343be80e7eb65c996b82aa1a974ade15d240b7291031b67f60f2ec7306f7d4574dd63398fd56b10b70286219226294b180dafaca8ff03298f87ea8ba26e7750e0ec117b4fe84677f64ef37fc96bbda91b71e62716e7fe0370b3049489a4ad2141017f0497850ca8ac59271c118d650b83339701af8e93050219ffdf03675fdffd3808f2d7cc84ea70bc631b6824fa78638b2440d0a02c815eaa2ed0fe032cbabe26d109601586612668c21ea7445f562d29b1163edc9dd9d4af2230768f03439c94d197d316c55860ba72db8b26afb7690911076619ef073080ecf0d00bfa031c6be2d6cc44a9287dda5d1623e8ddd5d265242c3f603a275c6ab04f9bc45b3203a83bd75339c53d0ba2ffbf0f02196ae4411c0a85f9e0a0fc277bc959c1e8a96d034f18b83a51952de1016155f96499769222851a063a56de2da376ab5f0541935d034eb96540f8f1f4f093c2bb5367dfcb0f0821c874ee0f37c4d3930ea4f32b18e303e47755d230518ee32ddb9487863ef68aabea9e982a569e433b528c74adfc58d60219ffff0351bf7d7f487d09833a72482a8b79598a4872d11a07720ba426a5da657025a9f60219ffff0371736bca49f0d06b5a7486e34aa7c410055bfcec169661939d4453f90f6d7e90035eb4ac55e0841e45a61c1906ad213ae026ee2457df219dec82fa6f4080669cef033c12b0f46c3aa8d2d7494a8141249d04f885dae56aaee5b9d2a2d275d5bb09a8037ebd2bb1082f0e04c9b5caf2753cc4f83a533e569816777479b9140ced60810603d7e17f1ca6d561202d25b2265c7634a5f91fd158eee81b9b0c1725ff7fd68d650339dc59dc7159878ccdd3d8aa80968414804ab890f2c122c13e91c82ea23c0e8d0336168bb20856b57677ec5982ef122726b92491d75fc40ed7ecf0dd67a931484303af4319bdcb81b256fbf1fe2679273f47cc9b5c370590ef189e49e38b983ce53803c6b1426f753168c4230c7125c8996af02d6e05af77e327327ca7ac75223ee40f0340ebfa910df0a52a1a32eef4cb566eb9ea9f1f11adc4076fff2db944c4640179036e1f72597cef60d659d51649fa320ae2b6bca546f7344e3a03c66f94b11e41cb03f180142edcca7c5383f8289906101bca7d2a9387130b3bb795a13611003030df03aa9f5fbf3c42a34ac64b8d4c48cdd0a03f2f5f1c7e1627d133c3c98620b240e903e7474cd4c11da3336f8a4c21693c29044418e31f7f73e85d03cfdf992165911703d6e4595f35c579ff92691656acfc7b136214eb009789906852ae7aeea451f5f6039131d726066a3ca6de19c29b0e745dbd2d4d04ecdfe5d871946a35f30cb2991503170aff0946590c48bb78cb08e6750935ff3e97e20997037121441ba264f689d0038c1e028ee2e0c7b9d236deea8b79c3d1eb4c659d37daa5491c190879d8a686e503f8766f6a733cddb7b01094260432c4eea618888da653c22097bcd08c2cfd8ccc03c4a0d0a2824f3ed72a28a6c026aa8d205f5fc93a6014fd435855ed485438a8de0384ade7d579b25ad79bcc6d90381c1dc3173054ebe8a2c496d94dcdc41c1c23b703030638c8f7d913d70696c72cc9f17bfe78db4986780c2cabe2fd4995f2beef2103219b7bd3f827a8a2abed35cd124d700d5caf224b603b297f6ffa00f962ccf3e9031473b34f106c5ca6782a7699b1d754417b98f75684285c6b065034e3d5ac0a8b03edbae528cb5412d341c90a4a15265e9294ac6fb283e3e707155a8e7153e748e900581e02af5bebf118f89d2bf0a57baa772da9cca7f17c52a343ad0dc9cb162e5a46cdedf89d863e00581e0238faafa3187e14902c3a04d7f10f58badcba84045df6736062b9f8fcf4484017c68ab06486fb021928080374fd1bec9ff15719e3d09073ae1361d1bab0bf2cc9dba248ad7f1a6bbab75d90032ca7059374ff5165c23754968563466ed3dc62911549d2fcc75b633b2d4c20ae038c20f8005161ae11776fdc2590d7b204810b72f1290f94d5af631a445905f58e031a4131562a1aef1497dfe4edca556fb83dfbcb152f87bbcc0d87f68b9fbfb9e503356e31740d14f447ae8287787785a7844b076c3a3ff5ca19d832ebbb316b39f60305ae95f7d745efcc9d95d914739798268c922cd57baa8015bcacde20302eabf70361407949505a24acaeefe8230c7d6a03ace2bba1c0e197752b3e24337db30deb0336e1bba9efdb65d0b33ae6a0a5e55bb6d49adb133a206606d1357a5bf1c5f8d70337bcac223c943c2c52b3863de534c235de40a66af88ff0891a5abf80ff31c8600219ffff03260bb66c5c5ad2e8917efb19d5deeb5727d579c526b4343331854ca1393d71d5031ddf0e13a1ca3cb4b75719f3fbea6fbf5f4c5e88d161b88091230c43eabcbdaa03a89393d853ab3c4b11a5ae81e3b3503430c6bf83f456915af423a3b54ebd9c6c03fabb1efdce344b6c581a2025ce7301236c28e71eb795dafaf9b90642c291067f03e087c823c00bebb27a164b9c685e6aa9ffc4fcb10e6ca191b6c6ce20a5bfca66032ddac43f5784f797957313fb66b22546186f4ee5b7dec0db618c13dbe6f9bc1d03554f379d374561d8138488c95a97fdfb9ff9c24f557615fcf79866af49e7392a03ee4bd9fc0f57626a60da56d1293b3520a5b959ef67f5b725d0a542bd1e5bc414036e10c36d8a2d53728aecd5db3e30088feff6390bc173cad01b7e00c8c32cb1130219ffff0339f92efb414ba4b1dc05a35f909d69e3ea2fa8f13d967510d3912e3439185cd903ec8c7fa81de3ba890e5790af740ac27b076849e88248c9905ec4e30c3eea9a9703817936fd774ecd191191a4dcd3aafc3d83c1aa3ecdba1cb43633ee401bdb3153031b8dbaeac0981e0f2461ae52b951fcef65aa7dc83506fb5b7962218ee880befc03709062b0cd4832c16fc3f2f63e2dff7e1c1274f65ac896d8ffba2dc072f2d03a03a5ab9b34a3df541d0b041c5f4d650d4191cd901236064677a09eaad15c993b7a0317cecc1b0c63ef3a91f276f1f43f43358d48b1ecef4243a3a1b6eb192a2ef023030a893e53420f9fa97e93d07de591ddd6a9aae12a8a1662fcb6905294ae5a67c003c73bad0884869fb757e776b94bcbaa0dd6502621a47cb385a1b2e1a9b6273b510219ffff03b4a86c469b0897cfb1b3ba05b21fb64ea507625bef885ea3add0996ab91928050367ea7662cc1412693a15ecdfecdb907d7e537526abcfc91b4921c94407b753a0035b52db5f46402ed9723f84b93a52191374a142b676fbaf9252dfb2b08e36ff0a0219ffff03a666cf0f1160f2f61289c2180a2e556922c6d3a19c401b1ff2541ab43167364c031ecc5bb0ba630df25f3ac46fb185b2eae80bd717c3d1ad8430b296c159c936a503f1421e81986c61eb106a4e663673af48c1337bcfabf91b0c1f34e60c0d7d921f03abdc40a40d74c909d6c5969ca704a2c47de796e6eb989dbce5fb87abc8d48249035ee8b0b991f88d44584873b5c9a0ffaf19c6180a5ca78df3727b02f68e607af60378e5bd484c612f73df3244d1e17685757eef4f0bb0aa40b4a279402aafff4b3b03235710294be5154a4847099a4d1aee1e9cba34b6982499e8da1bbbae94a79ce003fc7dc547ae36f09f91fc5fc2dcf2595def354a94be5cfda0aede62a3ad36390d03fe76dbaf6168523cad91a05200e5450dc6df0919698dab920eb7d3633013d54303f604026ba2301be60367a3f6e6032a00b9e22ea96a493ac800210b9aa1335541031d63a13457b63d72759661eea4e9bcc346991770634aaa0c429ca89495da605c03313b940a13f64f2e4de2fb90b1ef6127b0cd8123cc064f65fdc4611830d3ab2003729e3c6d6fd93de4ea44d2f46b81bf144adccf38db37aa3bfab403e1d442613e033f1abcff275aa0036943bb1d0641cf668c788f9ce24a47df7b253a768648fe5103276077af52e6c42164477accbfc75fad2ebb4e4463fec06a3b215e0e884046af03c8ec1fe1b7a76ef6e0c32542932e6dc062f74cc4bcc7443b8ea7970c3783ca1a033ad4f2ef0650fda60957ffcace46f7ed6014153c66ff959881b73f1f331d4e9c038c60e13f27a0a7c75d40895fc488c2078c4c8f9dff5faea0bf8ba2301700b67a03ef19e755e7c94ff794000fd00f55fea5386d11e979117c19db8fc5aeed4cc5a703793995e2aee71c7c727e0672242afa213c23aaf414c66d53ee32669e0e58ae4e03836ac8e9d11d973fc321946a997ffbdf8f2fb864e3b359c255c392d94ea153e603b896ad1b4fa715a2460e252f654667296fb27d3b6abb03169f733dddd7f1513c03332114aea8bf3845c3d4e4e174d3e8a9589e76b7ca7719e908b33a2633daf26603703318a24bf54da4aa4ecb91fdb2c9923a1b618c5eb70ef9b689ba2862cd74a103c14951c2180b1f4f8bf3be69cc88463bca09bd5478849fd42a156c593107b4ee030e1712eb144cd7646102d493f9de17ddd5e94133223066b0954b2991157ecf3b03195a1dde055465d8b64e2dc33929871f3c01514bcea862950584330cf9f4ddff03309a95fb350e311df83ecca943c06704b7901039792b67bc0d3a796797e220a703097c1c626fe6dc74009c294d99bb1fbbfda94f6f13a4678bae9b31a2c9fc0192032ffdaf666fe71df82d4de4bb2e5188ee570d7355c32752edbf227c3bef6d61560333aa28dc11577aaf19355fc19ae906d4ba4302c8a73256b5198f761c4502239800581e0243961c15856da07ddfa7892eb43724179947fac896fc280d0ecb5266944828f112398f47a91300581e02140740f71daee7ca28a7f0deb17150961af3aa64e8d3a6a444c450ca9d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02181126384d850f8844baa0509ae763e5f85d1493fd5d56d2acac5f64a44705543df729c00000581e02b4b211e875fcc6823e0b2c1c89c08986bb57034275f51d2e1cf336aad84502540be4000219860100581f031de0bbc2a10fce6d9207f6edf2a433a1deb054cb01a15a2340e0b0d6f4105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff031c2922efb27c928305496c564faa3ccab40df1372b08270383937073179d725a031b59e88efe41651e1a4c349615852508e54658ccd4d64149875ba577dab9c2430391e1e098b30a7432be3ed3692b64b106338b4098d49262e1843e21117bfa2a850305a48bd9f74aa45117107406bf5496d01b3a443542d260db9dffaa3b32c4de8b01410803c83b576185cade9e1c114bb9be53230d2c8d1c41349fb092504ec54c9b371f590219ffff0306ad11f1aa00af1cc28bf4f4c2ec2feb0df75f20c71a6d2c4c4ccfa9aaf4e3560308a5b18b75beec021a14e0f7bc58b9a70255b4b817cd5027beaaf9f55ca4c0900356711fa1f3c1c27391d06dfbbb017dce999a07c94a87a51f76bc8abb49aa672a03bc33f37297c5c6e76e33d2bd8a6a01d3f2a0e7f742982f9d228a879f451bad7e0219ffff03b248971ccde2f314c720a2f817d925524d339303b4a39a07c0079e1200e3471c03dbd93fd8200f6c6665fcc804e6eaeefac70f7a64d7cf3941f4b61db912776f950324bc0512c38d83c18356071b6c4720b6cc24796c3eb428a706ee5c4d8cef7d3e03c9fcdf68fa5d0c3db2ffcad8643e33d175209e07e0f9487fb5ff9752df6d975b03cb195d1202945ebf03c44330b8f69ddbc4750dcab774f5becd3207ad80dabd96033fcbc7038e23603fe7187d157e43ccd9794cede83edff1b5cfe572a8aa4693d3030abe0d767a76b451cdf7a0cbc268462905a54faf31c71047f214b9393f27ed2403223257eff9519843f2f98c3883c142ea26141d7a3cc5857b90493db5fe865d6f0219ffff039fce7d1d25a195c03b439e21ef638922d3bbb89f1e861c3d9fde61b5951b029403b393a660ba73c4e065e15dbe6467bd3b41d1b067a51851f34a8783e33638ce16037eebcc2a4474f13f8f725cbb0cb003fd90df264ed58d6ce0d894c7d5db3cb0e0037d54b4acc92f918c4a9880ed629cd12341070a87da5547c8070d5a0da8c45c5803aee55e71f676ddf053e98edf544a3673c49d258047c520b8f1267cbadf2a1f0b039be2b355058cb8d080f7293775e9f5754faef0a4736b8755e18adcd4c9f2454d03bfc36edcb785e90d29f0c934241e97ac6878cdfec546b272c9020e57bdd06949030896f78fb55f76209b2e60b8162bb49b3a02cd469689988853cb8f5e524022cb03625ed96debba376b3d49e882e0e06151f0399c86bc278744c048635713d65d300348cd17dee352416f1063a1cd0f22d0d35f383762040825bf4b6f0658ec3181c1039881580b1f0e38d45c2aa4e4867d67a7db34efa756a6f896513762c95e6af736030ff0c664d646feaa1dd95565e26d5e19d99ad08f8e35192f421425e7618bb8620368baf1dae99aa8533ae053ee2a04c38714f056391f7b4936b35e34900bfa0a6d00581e021b5cef3c479880bab1666df263ff375f1e93bac6410f46c1216a5189d1484917091d8cb8e97c00581e0267161368231c01ffb1a428b8aa53781890ca8a130f576242c62e3c76255820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff031fc4365a59701a2bc8fe9b276a9865e64d0afee8e4c1085969f4032ed16b2a700219202400581f03b8697ab36be1a301ea2a85a1f548bde87e700542adc2e8369924996abf205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03eafe514a5d5bb57a8d8ff7381b45d91cb1bb623efdb4180d3056f35bc3493ed1037be8fb58a2bda5cf972ecf1883101cd399882f7826fc462d8cf3c260ddd9d2ee03aaab1ef869fafd9b78271943c2a4d1e72d179915b0cd1c2cb802fd2079d1d1060357335af511c527f511b83b9dfebfddb8eb18b1d95e2c28c35f2dcb4ba3a6fa0a03ef90d684499b3a35b7f9b0ce214ec792046b019b9cecf92bdb86dd05e625f8a703b2b02c86d4be4d98bde4559787a6797ede13027ccf7e23e09be1ed82b42d717a03667814950b6e65c450989ab0abbd59f5f79b5ea19b95c59aca127baaa8d2bb340382a36ebb2138708e393d548e332766bde089b26ca190492aaff6a6a7e90ff60b0306661a49b466d3f411857c3841b0e65623e57ada3be7959f4ec7927e51c6cb940219ffdf036e15024a25d4b08e0e00e4fd8f0b1e6c8d63e36b191b56eb94b3f2634f7f327603f98047681c58adb64a97bd3442f36daf1ce218b642bc156fd41189b426edb51103ece2e8defd2c7466bce2af4c535ed759f5ef815038a1ba2997d2ab2825f7572e034614d5b69644650e10c3048e24e68df37ced484c6db55a739bfb99e703e796a0036955159e5a1052a91d5b11412fb18167c11af9d255d13a8c6ec93f4142f09c97035d8e84c8ebcdfce3814e52dc519c68b51bf491ec434dc34644421413ec45435b03b415c4adc433f9efd33670c87a144908171b8d0f9672734edbe7135417d7fe04038724cf9d5ad4d60a8a58a96fbc822e20919e13de85d920257961fb123d225afa03d86d4d9402d8aad620def20fd48a76ba2f5c4dd9eedc3714dd09fe5f5d1a676203fdb7634a5e3ff524f662ec92595d2953d89497615ad17674e6b244ea83a7c9cf0315ae75cb5fbd03c426d1dd83b7d3bcb451e65a08e108a266dbf4bcbb300543d0038a821ae4e02a06f355138e2e70f76e2ae6137ae8d70c625e7a70a5c12fb2049a03f14bf8705c98cb78b9d9ca5ad1a5bb94f711564454d01faa19c5e64d6b7c777e0219ffff0302b0f8e9e0e662f317b13c2e0b505beac7d1a05b069941307839e22dfc67f5e00343fe988ff6dfe78e4c5b88904babe9308dae07cd10e8430075ca1af45880aa7003fb745446c9806a02c113d876014d7e6485a305595e2d11c95ed549b3b2792fe403ece1a826e6f2372d2672c69bd65946968b338fd4fa2bb249605cc5d8d78c1ef2035bc3163ec0f5978b88aeba592da2b6b7b0993bee518b2b41d5e7299f47ff2ccc03d8f4db19f1789205f7f0de991386a8f65394a3ced3221bbe29793cd84374382c035bee06e522abd07dfc3d38b2d9835b1d233beb29c24c074f7383f69a3b6e337d03369c32eb1b3d5f5df4e2241591c37a33a5585eddb8a2407e7cd574a91114231f03b525d49480ea0e172c1fc7c57c66f7e773ee4377a6db9142f35d01577f8a828103f36e1522d15ec0adfaea745074ae1a1f9dbec122988ec1b2f51cdbab124fc86a0219ffff035be567ec4039bf2dc3b036ffa4737aab6be57645f36c819bb5a22a7d2c1a5d1103fc5ace0e510b45bd63146861cd14359751759a2351c6e7ffc8dbeef5a727404c03a7331aedcb6727ae273bbad280c74513722fb7487b259457c76a65fffca811fc030bde7c58b9c54fe9c97a961c47ee63cf6cb549f21abf5680e3ad85454181b3d803f9c7f00c6b78d05ce953ef23085febb5a7d29c91aceb899d8fead6114c16d88a03719f3e3ce6f632a888ac1ba23d01b9f8027cb150240eebab27aae0180533144c03ad6a54d4556dc80a5fb50e09812dbaa968c289bbdd90c82e9d9fe86f8f12240d03c706adff2d5e3d7389259777534b9cc87606c1f6664f84dc5fe24affcf4aad9d03704744c1456204fd46f794ccadce22ccb5cf2450fc0704e3bff864591b46862303f39ce1e89b6613009bbf32cefd37743fc7e16fbeb996e0c35373d1c189686fde03a494350e07f272ca7a2e2bbb3ac7f06b6f3fcd4b80f2549396e6f0be04de8fdd031f2362afd3d5534d4e453af636e25a15ae4157525509064a11b966a56b6b109f03b906764df450654ee8bd6ca303ed41e1734d9967e74513e343fa0e6bdd3e933a03e4abf14cc862171ac17c450555bb4c56176c4deaa5b374f1c51096a519977d5803c6adf0b2b30d110aee7bdaccd1f9a68f2680056785bad0640c2a6bbbf9d710a8038b4254277a325a30604664a5dc6c13152b9620fbe42fa23945a837f92b72ca8303c1f913c0759af4b22b5a2e9d74be7f06c4e3de5f220cf368e3efed7ad028e46e031d19d43d3ff6ca39c318175d001211b95b95a1cc608d86910cd75b3575d5c64e036328a5a0a96aa64a67004dcd45958cc3349c567bebf46c1b9be60c95ff43c89d036586a75f3ec7cff0cd6bb650ba70b7cf78fc4d2af2ee7e0a6606730aa149c79603762aff8a01469f1769e400216580e9cf7c787fe2ea190de6282a1a575325a66f03c213123fe1a8229aec8a739059e378aa27af0259577219ff5e8cb4ccbfbfd81103043392f04dacef2aae2cf0742132105a3ac5ca5c7d4ef2c8a0dc675574b025170316574bd2104b63750c39a9f258947cc7ebdedad59c3933ed6eeb52761737e18603af7a402701988ca4c5632d15075bf245e0b8321dd1e35a79863b96315c83e6c603784375342b56432a6452f14d99789bc3c2e7769cf8426ed4de8a239f3e9ffe950305fcb80f73bb11f428ff0ed309ce624763c3157907d6fed645ec06d7ecc4e9b503646e25ca7147d3c12d45749b5b3200ed31e54e494c2a2724c7aa84f5be30f18c030e85908b2855df13a6a78e98b0b670b1e2125299abb01eee716224a1fa2716dd00581f034df5e4df356105d539e845b69c451db4264625516d17dd29344f3d0a3bc0410203dc0342a26aae5517e7e6aea6d67221f64b7a5205c55786e6bd45dab3cf2bcd9103efc6d38ccfd73bfb467ac06ea0ae2f6972e8b82a191a79712bdf1fb42c6ee47700581e02e83ac47d38ba63ffbfbb848b31be68e637e1dfef376726d4a6cc1fd3f747071afd498d000000581e025c25668409bca85b9afed9543e0f401f07fbfea387c66e80a3e75faa434905bde58d054b05e50600581e02087bdc92a6d0ff6a9910f9e1e02c68ed2f4bf823c479e957d9b892b7755820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02198180035fb199040ef8307561eab0a6c8d507179133cb4b8ca5777faacb333cd3937923038897a5d835bd990478462a856c39583e3eb5990c8c13f3344b9236fdf631d24c0307ae4c2ed9aac1f3d7b8e3214917fb411161c27eb3092b8b720341dcd22c0d18034f2dfcf2cb6049770765b39cdcc98beba5d87b72afcdf9becc43e1f9e5c3562c03ae291cfe593a18ae727192de87c46e22e9f587cd87a68508418ce1c0c295c41a00581f0366d9b8611e0f5e767fe6fe9c7e32d0dcd80ace11c1077e083c591bc421004a16c1c1e74108346c91a8036846d1c770e96c86fa13f78cc9df0e3218323a1a832c713e1c3df961c27d5bf1038dd197e68b6ec4302fec8d00ef87771766753a4b446ee75de9d0198c862a933f034acb9e7152216b2e6e008b7d68ba9959119e193ae26d402959ff1fedfc6a86fe0219fffe0320cc0766ed0ab5cffc33fb2df54c3ffa7c3208b70d74e7bea880801ee2ec8381030eca398ec1c3bf349298f4d618718ca3b2b1320f43ef5ed0ebe13e97b29e32f90219ffff03f7c0c5154c796abb8d4539d5fafef520bbc70e2d9d323fc89a98be86418781fc0219ffff038512ad0f4eed77717048b23312865b682fbc71667a9785c1195b471ae33f619f03517f323c53b0735a2f2ac640999d957cbc2280864a25f8839f2025573f98fc880337e1b77a241be41ddf0fd61d566557771dabe332726925808696e5aa662fac6a03dbb819fbf30b2cd5fa07d662e3788ba1cb019ceaf77cbaa7990b4aa3d4aef7f0035801cd162ea143592b26a372ba9f908fa166dd4f6f7aa9173a048214e3593533039a19b66c00bba1b5332dad1733e2ce761944864246ba1fc437c7c21c7479c056031b7cbc38449d57f3ee800bac535b62deba3659512e671dcf90c5debbb359a18803e203fe769800c7e17bb95056cde84b2130da3f075e4f9b1dafbf694c6fece5410386f09695002c827d7e41a43fa4d3f31f349d325fbd040708c420728eb2c28bfe03907065d32eab259501d7fded4cf5aee433da64e03163e97114b6bc9d20d7abe703cf42ca9e44fd42478da7abd69a90750ace654537f02c64bd9a7dcbcdc1ef74b5035a1b8c597a1cd421d5a27385bb5c86e685ab54317038c3292e106f31680d464e03cceec4f63944bc4c7b835c61fe709738fcfcf0889ab1a53307adb9e3738c9760031e8cd32e9afd634a7c453a5f38cfe8deb59bac068fb22492423499e083cd637e03dc65fdf723f2118cae5951a2d8e8d9c3b0d871cd892643ab40e35e19d2915bbb039c3f9bb08a53098b12b2fed4975e57d704cbdca4d47bc0e63f87f729799befd1033bb2efb7c42abcf00c5cad7fab31c8d85b4a16a4cffa0e0bdd6cf917d42a3084036087fb45cbb4e9e2009f8de2ca161a112e98f955e4fd24221760dc6b04f7adc603c32138e33937353e124c43d07b3272b50be89d2be1b2b7de06590eef0bd019ff0334378183161a1844a26db8283b06024f264a66404248d9ecc3adc9ef69a95a220332abfa3d43a2ba9f0328679dfb0d75921713c3c6aa22dd8dbbd01bde9a4b0bdf03d1a89e81b384e15d082477d2e6cef42e2e20f83ade04a0b6f4bf44143a0fc76003d605b1387bdb234db9e5645d78793a208a941db84c410a9f490157cc8ff6ca2103bcde355178c0d07fee7b8d0eb10c1547b5540ae28778d75aa4a6b83e3f585e9003d2e575610296b98cb1cf9073788690bc1fd0bcbd87f4eae2e76ecdf4d58f95eb0345d10c089359fe3b2f39cb05e13198b271704471173fa006346bce72929c3f55034e8966979bd0f90f5f550fdcf86498166688fd16b4de96d85f48762f6f9a6af50353d4a34c09cf6e037ba75a77acd99e1e14b716a44c479bf70bc786bc8f34477803fb45923bbb9458b6b02a0d51044a63e5335a71ff595c0ad385e65600888903e203b246c7d71810f9336ba9c07cf04ec7dcdca2716d543653c95d4c21cd8005b49d03f7317c0c97c280fbf62cee643edbf6190b3675a5d25236ebca04db88e513f84703e81a60da9aa48d7e4ba1b9f0d8f72ea15532872a967ae127ae10457eddaa34d4030357bb2d5de8b3b8659f980ad01ec221112d7370dbe285fefcfeb8707822bdc7036618e9aa08e0ea4295732e7a5e5ed26e135b4cdeb07cf37a3834c7055de4f31403773516a4c031b73d716d3b4f797e714f6c7076dbd8a99d0c15a45cd9931eda2f03216822f7d36120b07d3befb03cdb67e31c994b2d1d1f9f5a9c72541ec53aff4300581e03aca0393f4fcfd519bcb79d862602d1a1d7c31350b1d8efd8690a4d0c5049257e0112c4dbd45a8e00581e039dd02786abc28dd65692e74f557f2fc867befc7317bd2247a2389288805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219082000581e02ea16f772c86d73260688ce94dc942b5abdef5191e8cc67abe54353b2ce474c34a94e6ea0000219120003de89f58db7791d7a7b95d19a196b17d995d36296cb80f63ff4814b59850e51f0036ad3ae41aa5402eea8e42673a7cbd75327e7d226879703f3c50b3f872c4fac990359084dca73e4d840a5df06e7ac60336015a8fbb3ac842b586970668203714e0e0219ffef039b6b8cfebf4e8e2a40655fbf4509c9f96e0b44518dd983593b41cf1a690d06f803367e2629c7f483d55fb68a2c6550da900c61bbe338acb8ad2f55559a8cd08ffa03d55480551df83c9bfa0887063c4875d3333818434269cf47b64fbdf741489adb037c9b105ea229552ec644f9d0951c58a2d0fd5fb606ea8eb455760e5d47daf39c03b7b93c70fa1c539a80ff7eeb1350420441f154404457f584fd382e7aebc4c3d00322a270d7291036273204a533f2c47e0f4abfbe21cd3df1d0c29a039f20b0f35803a76d9796338c6cac15973d988802f5809e5fd61e83bd7f95dba426df0637f8cb03857fc6ce10f369bd545f3f3cd41cfee530dcb5b2d32fa3d772ec510f8992a8780219ffff03397a3f094d1131b1d57f361f6d85044cc3ef2a9d66094604ae0ede04ed40ce1b039aea0de13b9e9ed51660d60893ac7cefdc93ac52e6b1e672d262d027cba330c30219ffff0342346751f6e3da33637657399f21e36b01589b73c0892c5fa47d0cb8021bd7ea0219ffff03666149f329088dded92f58e7ac415abde163c4ab4376c95e18b5cba92aa9c0dd032cac2a24829b353773ed48630305f361398623dda70988310944477c00b8cc5a03832072c542e3881700fe02d00bef658fac441a06165d2cb23360cb521a7c8dbb035015a24f29a85fc80c797ba451f40ba83fcae670c0bb1abb137ec053c75cee2a033456f001ee2a9092d5110e8f9da45203342f402b368d22cceb499aedd35fe10b033efcebf721d30c4ccffd5e6f4523e88bd2c9faf30ec2636b85e19a2c3d8e7479038e5dc4cee2719f0ff12479753f2cb032bfe96eeed75edb399fa8aba6b32eef33036b085a429ae07a3324cb8a84c786b761d95206dd466ce3c8a9b24c03db04596703bc85b450a89aedd07d872bd64a380f41ac8c7d3b4b078b859e2ea6aeaa82338803539c4a0eb0d06a1e7265dd47029b1040de0df55af1c0d03203844500a09853dc03a0e6281ffffbd7766e60b73a34a873531b3283441ffacba28c3a600bacaed39603631710005e4c266415ae96480ed91265996ca3f9db83de0537a72740a12f6b0c0317f5d82c586888f62692345f5c0a19daa9d6282a2f7e5b70d5e6405d61cf6c9b03965d7be8ecec83fb96be522c9977c8bdba99bd3122184808e3a69d2327f668190360320d27bb5fa06d28e1a1444c3fc79127232fcf89751968d304b01afe50605d037eeba4a194af59c1a397969be20fca14151ccbe8671110426680268276f4475b035ffb6d83f9bf7a75de9a6f38fe280f849ae1d70570761cfb39555cc9c397e03b030ed56ef386ef1578fb45ff973ed7a74f3ebdacee075172b47271533620e5e391036fd3ef41defb086eec251560fe6d9be4c6a2c5d85c4acc43818bcae23678b3e1035ed6de086727742e57ba26839ced08bf2621ac8c435aeb506faca9d098a68fd4039e66c5e902e17b78fe7b364d3569f60a3f945d434e87b7198b4da0cd5c800a5903e290fb52d85bb0d6c70624ffa1679447b044a73bb5410b49dd9b9277142bd9cf0393d8a0dfef62f57ae8dee962c8255dcb8b03961816f09d84a82ec567c3f93e9c035eb82b9b74f71fab43a9dbd2a81996a5d2df0e9bb5893bdaa82ba6a3be76855f00581f03f1b1afd1346d2f026e4438c74efd18b426451be682441e6f08852c80ca605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03e12bd676e22bb377cf91fad80061936adab0c26acf6998bd513a90a8900b24b203accae9024bd9bbd616842d99b8dfff78d78637374d624acb443be1cf322765a100581e02afeb4c104b5ae4fb7d2921f3dabeda457630e42dc32fdac4b58c72735848f9ccd8a1c508000000581e0292e192b7e4e038e6906bc2a13f5457630f6ebb5f1a25a71973a61e3ba1465af3107a400000581e02a6e27b50983364978943395c706103c257330ee3842e2161f8ea4ce2b347071afd498d000000581e02d78055ee4766f1889f3dd14379c1c2a326e078c2783001a03597743123470120e864e99193021906880313ec948168256123f36c6ec7bb98c7e76d900816405de67c1e3c8bb4d263c2800300e72dd4ae3c3dd9183a9ada073e221f908ce40243852c80436b80bbeedd2b1700581f03b614388796d31747349e093c4f0f2012dfa99e38ee1973e4d817acc3aca05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03d0fa20289fc92c14796a1dfa571407bdbe821258da958c1893f77c97f77539940392e0844ac7409cd904dc18d07baeed3f666ce7b3cd1a22e656ff8e5133a622670385634824db2d00f47442e75e99dddb0addd6e624ddd0af585b5a74e49e1e7510035b8d2bc654be92205c9a27b112a827c1ce23815673f9b69849a914e72e62c4a80219ffff03f2d177adbbbbe481992420d4f793834b2e9d1d4a9738c7ddb9a1b7b6a4ac7d5303b5928a71de9cade3a54af6e9cfe9e21316dbb5c4e63c88f844b07b6700ee05e803fd7b3f3b9b5526053232529167115f496990223caa5a5ffffef14bc28a66293303c6edc112bd46c58e137192a10fcc6c10ae8c7b5f461f1cdbc66adddd4c7a06d20306397d41699ffc0b0b022a54429b660ebc1483b932693ec724b584a0cfcd374b0342a80a0595cf31fd2a347402d0ac48fbc7bbe5901633dcbba69d9830da41e0a9039bcfe67d8d118f051faeffc31d12deda4353e27a890ede18f10be8ab643bf7b4031ed8117d180e02087b634c183578b27b976f8a74a293ba2d1bd31d52d9d864db03b6b08eedc05cf3b020fc59e91748ded19af37a4f3485848852f78d27a122e380030ace3da4623ce1faa61c43f07f52ac5c55cf8b27dda0c2f70c32bd5c1e58e950038c46c0c5c06f04f962de291eb77c41d667d574dfc089466451b8906cbe0a0dad0330f954cd6f639a1b67e39a6c606e4de1226d329ea1867c5009404a3072e28445036a348211ed9329c85da6a9298f4822d09ca074502852e5564a158ef4e617e7d503eba5122b710411686956d43b0ea97f54d023030449d812e5299d52a237a7dafa0331d0bb4306887b8fb20018526d84207092942c229d6a1fe3951767d71521d6b40219ffff037746cda5e593d69d211fad2607a3701eb1b500a88b6e157f9ae8a43686e2bc00033703557f22f610e406e0318b6583bbd14417f65548ea1be65f199823892ce4bf0219ffff030c8946ae105b5a281936be0c563e55a2132b4cf200da090223cac1bf328a0adf0306b56e43eec239a9e51c0383d0862f74e379f437edbe1711e021dece3b101c76032e48ab5d19f621487d5aa22c8c3267c68284a97b8e631475d322d8e7b017789f03b2df841d181768846614ade1ced23ee1da3a820cb4950862d5d1883281a32c37030f610584c8d33201e59983875f6efc4b83531cd9df633c0b2e6a8ac20f9790e203c5ae38c7e72bb0d5d0b37e61e6608969ba0323a70bbf3ee8d78f5ad3c3531a6103161f940fa3be226289aa4c980589ed25620077f6f43de6c7ff780ef18edbd1bf039adee46b226a029846ead94999b4b8099f5e94fa01fbb5355ccdefb5efb14e090363aad0cd6d733050e6ef826628e409aab318080a66dfc998e1a0063d57b83be4032c55c2dc1036b12f076fa6b992ec236feca41f26b30b05bd0f5d3b2c010e7a8003caefafc905c6482552d526f390e7fd7614e59c2ee750f25c381909a60c58547203fe247c1a6b28cff79a5b68288d61f141fdac830f8a108b512276310d37bf720d0319cb78c3c056be4a2ee7714342e0c2802779aee2f99757f0de6eac341918695403c18f7a552ea135f4f2554039ada3c883666a490247390699969e59f2bfbf592603e64d8444d9e807adac51cce58f39114762f56b7ed5d30cb7421198055576e90a00581f038b4aa533fabde72e405fe4adbf787c0d19b3136008a570a3edd8fdce05c0412a031429e6c8bfc0bf939d05c76e4948bb5f5576e5e53d58f301b747d8474d62a2ea01410a03cfa54c9c989a9d371dd8c0bdbae19816d7962a56cf291e9f75bd2abbeb88d8a203087cd2d74d19cd5b71bbdad6da34ba1a9d6bf232d331debfeb8ee8d8048fa90800581e022a00d6dd8fbf187cdac84c31a747540b69c14d0dd18e2cbc14a7ddb8b95820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02b530d6bb8fda542e57acc1c11c8ba1ed193508f93eb9e9da973e35c3245820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02edb846397b821658f7d758560f1cae33066b31cf7fde36d3692a5d264349070559f0befd626c050219800603f1a4b63ad4ce62990d7e586e28918b0ae63876053e4a51a6e90c6519ad76dc160322fb464ca8582b6992a768ee706e9c97bbcd8ff9dc49e3811d34ea9925ce64fc032f0bcb70e1abe5ca44d6334625fed63282e90c091387b54cf011a0baecce7f7a03b699d748b04b3f8cd87ea98f4682176bc632756e1ce6df20d1c35ce77881ed97039fdfe7653b043f4a2b30896d98115586432b94c93c4d9058efd8797325dc91ce03e46ae2235f88f4559b28ebd9111d0544ed99e50570536a364d9be10063c2e4770374350f3cb77409d14b21070871db39e8bca8ce30fab0180e4edd2fe71e5771b9030c989f5f7329323ba31e737984c3ad1842b90acfcb292683abf228277a2d2e720219ffff03440341ebd49a41b3750e6fadad6b0111fd88987b5edf1c2a43701ece64995107038689b35440dbdf37d4c24931e4ee7f70729753d6d06fd72e286fd81e92b420ea034aa624ae3efe87cea4a0d70b5c994036de97c7a69c420085397af86c94c99a0503b103e0260c3aa0cb520906bbe7578e2a12201c715fa148b44d8499d3a47dd8fe03e466152c67b4fa77498bc599f85adacba8b17da66c9cb05e2bf7afc9b890588f0398c42f9ab9199b3acdf4d71d9315d5910366673e521a4b126c912f1fcabec6160219ffff034e6da7d288848fc9f0692e238c79442524c8629cc91db5e381dd2a3cc825dc6a0361148063305d338cec46c386cee21586e7a8cb92ecb65ce091f1636fecf40e77038b49c4fb5938072372edc3f07597e7625d0431c54927da065e66b6ece6d9bdf803f7f23f0b0dd52cb4ac90f64a78e7028d6f129c27f47a20f45315e57e2edb976b033ac46e89ed5ed4700af778961404aaa4f5fe9154a5969a42843ef43115a1be22037d7b19c5407b13bdd4a68aac42692f4be987058c240fe65beade562f0ad0e11f03058ec124a8ba88e15a4642e3d04f5c966eea80304cdc0064a04f87e5fde9de0c036b730d6a9bba27175f6bfe1c4f45da7cf79a5658efea4dbfdaeffc6de51f90de035b9c5728daa8e3034b4987036eea0b66b4cbc5155fe6beda6e7b61bc6347fb7e037eaef7433e560ded6e234b96831cb8a299f6bfe0aa1672eb3f98510e523e0bb40307b626f0dde902ca6f074828cdd814064deddf6b0d575edf91a288f6c9488aa3030442ad1cfed2b1e7fa1ea4ea9ad9c88131156fb8796c81f0e2adb309b5bfce3c03be7e31be9fdda6357c98c7f4853921cfaffbee74c23cfaafb375a05b1e15a9650219ffff03fc6908c34ccc856efd085aa9dab83f6a30ded6888f490f6b3115f74aec738baf03ce515f87f01eee0830a0de2bacba03d06697202a94323aaa904d4b8c0600144403f71f1fb2450f078a01e29bcf0c81e6e69d693d41164fbc031e3942f8b565333b036f072785c909a5c3588bdda7d58801e316b394faee3c3f93455169909d4bb875038bfa532645f3c3ad452a4b2a13ecd3f5ebd36d6f09870727f4629278e2ef194603265a3aa14d1054309e9de247c21d0ac6b4b5acb9126a49fbc0851df04aad0dce03155c69a987621e96e618f2c0cc055a0f98c29ed206839f7bbaab04fcfcaa2b1103b175b8f3873e92cdc6e142e6347ded3868b37b3279c959d8a5461c178f913e5503c2f6ae9040adff2d11019af07ac2c2b8e83ccfe2f578f45de0cf311ec8ac0e26032d05bfac9aa923a5146a3a7a997424918334f0087d854754509b1cc1c1e036af03dc92c91860ceda27bf888d5954b4ddc6a9cefb77f73cff057d30f35e89f746f1031e59cba5185cb96937d47779d846d7a7a802a1a5da56ceaeaf27cfb1c3308530031a4f8907f29598400356e5588d36dde23cb0159d6e39068aca623c4ca9813e6f034a1b94836981a20b78513ff62ab73bede91207a94faa0dfcce436dbd755e023303733dc0e7290306957af0889db35d2319d961c686253a782a026af29dfc3c9073033658f09fc63ca60ef84e89606ab4acd1a163b7ffcad39d793b5a49b7fe2e2f86031defd5148d4b1f70f8382505d7fe6fc4fb6e17eca8ac4dedc81f694be5fa20f403b49bec60b95b9040b156b494a10c5b13c998b7e19d3b6d86d7dcdadb6372dadc03c499768cf290d03847098b308553b9409d93a01f4c448c33bac91291bfec0b7703baf056266d005c6fe3b3f9edbca7b543f4121e0e63e37d30c91816b3454a349203c20b65fb1e91b3294dcd0cce265ad17d4c69307f85d56ee4bc2520f125407a17032cb0ca4932a56386916f65d177353f528493f97289cfce1529062a8c38755cf703c75cc24d31226e7682c72e2fd701371f4a9f79816d60943c7cabd65c6b43feb9032af969f680b3e2c370351c423a7715504007e5f1ed1f349c0cc1bbe8e3635efc0334291035ef8afe5c700e82c452d28356b89b67df1563316d77a508a15e857e34036d92d98ec43266f18990b842ff5d2aabb484097ce75b7a6851bf17226a4c61e500581f031669b635a74c25fe475a85fd380f7a60738a42cb8d55a89d0aba0fc5c0905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff030cd340aedd31dc34918a38549e2f21c587912edc98b6246d6825bbefa9b9d93400581e0208faa7b8819a856b924ffe2ffb40b050f01baaee71fadeb5265bb62570410100581e0240a9a3a0dd65c43c0b1dbdcc9667c9eac22029c7705f6f4fff419023f24882c17c369e41cabb020a030d813290e04fb3200e8cf2c8d8b0348bf6cf27dc9af866218517de8bd713583a01410903b7de6592cabf2cdb6b01eb317abc474fecda35dc3ee50e85d05609b7000f5b8803c8162eb705446147acb6a1e24d42e49fe3425fa0b471ee08a14f7c6ee4675efa036ef83dcda0796f07aa7367e007ee8dc419a77cd595b437e1071bb663a3e49e4f00581f03614222d4c24944c558af19a59176877503703bcd5c2a190344510ef35850410103c148698df7a716ce204a91952863910b7aa904c0634968987c0d2262a510441b03c408779d2195039cd28ac412455409527e3cd91dc3babd6f9dda74bd4dbb2cca03fbcea0ddfeb65d22ff7e0d7b91b31a4d4d2e9b98b3b4faa0e976c3dc41eaadd6033e8224dc0ca844572fb20516d1be91e373e04ac9c291ad1e3bd8bf197e2b497600581f0309ce009d9e2274282138014262996680192cf83419c9c38724cfa21f8aa0479d795a47ab500003c3992c3758c76ad6c47ea76b41f5736f75584203183e22881268a9cb703168b80323e0cde534de3121263c63e141334986bb8e80b7f98ed9a71c14752867dccba20219dfff037771a2738f1bfb074a205f55b0210b752cd0f51c286bea2f0c1476b78ff9235e0219ffff03d2283d24271c2333c6a91b6ad6506711d344c5a2fa53a18decad22f01eb2d4610319ffc4c933f82fc698c09be9a2496066257fb1e188a32eedee05922ccd8f4f030308d4d2816ca467a05452f9183063e36abf6c3ecaaf3b44fc930c3d357065a5d303e3e6010d7c34cd1ed499b8b5f767f822cf846ae1ece25a97acc140e0d672be710219ffff03c2f5e4dda7d779a122413c511a70152e12cec18e41519953dad322d76acc9ea603f51b566de2b8062e8543eb2ca28c4649211d24a1b3572fc30690c4ad8455eb120314a8159e55f1165872281dd93d1569711017236b7cb94000a31ca2dbff0e515603f90c9dcbe2ffb4f7f5f48e6c8e418bf5fcda150ae54fc0b13010f0142067c54b030910e22f2be176650b2bc5001f762c898703bde4106059680e54c4d03593a0c5033bea2a4e7dba9fa7f152d92b029bc513cf8975ec218e26a7ebe74e00f728cd9a038017dd3e4124015d781af7323639409ee3305f6e2b7b5f72b46fa71a4c7b6d9603ef87801a1a97aefaae62fc378026e5f55e7d8a2cb829527101cd70617488f1ae038cdadd5db2a31644d8379dfdd4fbf71b5a1d08004dfa5acc00b1babda9ab26dc0386a4d4152c97826739bbeba954dab8cc700195398a9915d9d33515daa80aa4480382b990289f072d6a044d1e0ea1724fc9ea682f4f42c82f092341b174718d69a200581f03fb267751f3203d7a70ad141e10a36d6ff20f32ed23da90582a83995636105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03756c98daabff0bb33d548f2c84248c3515ae1984d226d65dab4c0b8416f6f53603d9fb7efa6b76074b168a413619038eddc0d5d7c763ab29b660cdf570a03d9b7f0354848236a099e59882cb0000b947f5d742e69fe52b9f3ac7386e118f5add1c2300581f03a10c981cdae5512da7abbae8b65e6fdcdf218c4dccf01449d70fb1039f404824609ffb30545e3800581e02fe29e0bf6cd82c350d80f743f2c3775e68e04be9e42c53523deac459165820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e022dd566e0dce561f026ed4de7ac8451305b88efff84dbc4aa34ebff9b69490aabf35d943d74102400581e022b43eb31e4bdca1df01cf9971a459ebbcd939bda51f1d30342b35b27a7480241b622b25e841400581e02840538ae8997d7a6b2a238eb129ceb37faecb6417d983cbbcb83eaf0514705543df729c000021925100349ed9c91932694661a5ea27ecbf977b9b7c85597da71cf6a67133895b2729eb703ab68f9237d78dc573ddb6fd2562bd785bd975cebbef2e4cbbbe067e076be897203aaacd28359e6dcf420656d80c502b753313d3982eee0fc7e31491dd3c07c77c20398cc01d005d0fd44e2a8528109add8bf3f278feed71f2069a08bc84863be6273032c038344a710d20ac945cd0b88905a6f860c12250e4635be7b4a8c90ca10d382037eb078107afb62831d58d2b18de40a1a8c13aea623dd8ff596c7575fb742f302037e687b34c5034a44502ae5663bfb1f6d3a7bda857716dcba4e10618f87bbd09c034501b8d46f611e1edfb0cb540133b2ae6b63fd709c1f40399e56b15269bec4410306245725bd738e5d56f71b7d588fe64167a19fbc17d44fe9215004621db730250219ffff0315a2ecf0d5b73711d81b3dc3410ba3d4a8290da8bf9c56643e75d29a43f9419f039946ddca8b2c1287be5147110a50c9f79d8157319131255cc07337ca4360bb2803418480eccec4b91a19575ae78c6cc6c0e512204663aa95316718ffaaaf866d6f03659ba234650f6675d09d7511141f53b6f84f828ca6b51bf8c211acec9f6dc3690394929c09cc376172aee92f8d5c39b6e7a5e52b55959f98b8cd1a5d414dd8eeb903a510fc0749ae3c1cdc50720498bb61dbc058c14e5ec121ea85031a0930dec60903922a23d3f6d81ea9bc7ef601e7f888102df9bc852c584495444fe97d6d8471ea0300d020f9de822dd0459e825c237749352574e02f2cde572a0c057a7f2fdbe7440219ffff03548eea36ac7a08c46882fb8d62bd4d6d2df20ac663e33fb716d632abf94b0cba0376dd7983caf6c7a468f427590565100f2deccced26aa0cf3c509e0d4aec7b0bd035bfaccd3d11529aafd1ced406ed818be35b38e5687c6574339ef480a6c90bf1403bae59a36ceae92be0c498f6c0e58b98cc349b98ea0a100dfd15d63399748fe5503a8ef346d26a3f627266504d5ec84cb7d203134057d86b751e51ebbec66ab5b2503e9b8293bed0e316f93a877872d7219a2abc8f2ec71d503323765050bdf4ff12603c05f5963ed14df8b505f5d5f83a118d348d1e559467d376af06ebfa5999e688c039a99137c9f12bef2552cdf9797e7febce75d9cdd103f084b0858aeb69ee1d0f203269ea54bfdf99af96e52f932351e80475ec6c26bea2108e92e8a7866e0795fc903421976e3d5202abfae5285156ec204bd40b5a346ac1dcd94cd1ced8ad1f3317203b4ff5f46c977ff8402e879bc4bf3e892b9ea484bef6d0c0373ef5189c3c0ac3f03921246692de6ec043fd556c9e14727c17134a9a8b6c354cfd819c6ad780b3d960219ffff03e50c7c875271a67fa19726061d54edc8fdc1af5d4923743eb03d591e92d0409b03b574c524a95533bf426f30312f768f772c518a90f1e5da20398e1f489512644403140317dda5b39cd7e99665a0f7790e9d7aba5e243076187e7713df0e1dfd33a2038400ef2f89cd466ffe5dee59ae92eedb83074b9e55898859e96ba4a8a32ca89603f946faef6c81b32a5fc948f9d2720344f47992ae7eb811a80bd35424b20c093f037ab62e4162c466f36ddaf03c1529fc9dd37bb76c56921c94931efcdcb633507003361e30ea4b590fec4e15221fe71b1b34af8936d5603ea6015f8b5640ecf606cd03ed0fe04f2cb3f006f2fc649c5a2a8cf3596b5b2544cb5a5216473af86c20da8a034acb69802bc70cd6729093823bddafe013891773ac5fa86f59467d934e8639e10378308c40ee9e19a934e04afceda1fbfe133bf2ed652b4dbdf888e8402a94e165034173c8a810fd38977e5ba199446843021dd83f15c3e3871c3c00b7dddba9d35603b479919ff07fe2cd932fdf23c13168c8f27b1a896c5d9acde24221a0c476aa3703552f8ff4898b802e9f053378c06f1c6e1ffb2c951848df392fa8a80ae5ef32a100581f03b15fc342cf228ba6f5672f39575435ca82d484a8d2990c379c66843504c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff036fe620f27dccb31ccb2e067389f00a274a3ca098f7d06ccfe4b9908fd811328c0387219181d0774eba4a4c6bf4c876f1927f1814532b436395563ba35297fef7aa0361d8b92688535bbd40d7dcf47fa904c1809cbcaf5c3b6e3ef99ae25b9273048f03b22b12b30a4227b0376ebaac25f59e42d045ed41c240961d47ba935c962bf850031fbfaca2a5f360096c7abc2de39760984b0f40cbfa52b3ad2bb8d833a5fca1bf03e2aec13014b30240ddadba9d95187d33a7bb4113cbfc0db91568d7d191ffd164036d70fe1b3a8178a3fd9ca00ac22732b3886ec19fa448576c82a0af2fddafa17003c3999e9e666942cfe9fc8f136b7995f67c6cf28c6e92c543c5a6053df46af99b00581e02557eb6c29512eb7035150db7d9ef8b93133857a2d65ca90a91aae2443349025e03441fbbdbd66a00581e0220bcc6b03c2c5c1fc76857c2454c133377d5fc331254763feb1bdae6635820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02ff2e11a3a453d3c80f84b75856b1ebb560b690a57b6e62d148b9f9b2a85820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02b8c986eb498583b27aafb5baf742a296b4e3a9994b44424a9938cba2bd48282d33f60bd22c9500581e02494ff9303c8e6d1dbec521e2c40322b9f102e04e0776a90419f46608325820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e025bbf59715811563f450b5291c6aeab31d3151739e10e18d4acf990499b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02197611038e2291630b1b379424ebad2b6ada13368c208e75d325805721b4eb8ccbf20d5f0334ca1ebdf4cb074818d6f46d29045cf04c6c5a4b628bfa0eb58a3f8f4b7bef53034a9dea0a9b197dcd6e99e7c4655aef7d8c8e5ba12fecd6a132f5b09857d8f24b03502093996d42593cc1fae4a7ea01584cda0369cc98e1065b7f38053a7d3d938700581f03091d520f036befc06cd12b72e44241da6da74d602ed065cb250897bf6540462d1371f4f0f403c730ec3affbff67cd97fd37cdb1271346076440c5a7b69d894cb92fbdc9739b400581f03b0a09edfeaedd762cc7ff3799ffb71047469b75ee37b2d3dd1d7b65991a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ffff0351c8424cc262c009a3a8b9eeb3f0367ad69d01f834f8224360b64a5cda4e1838033decfc967d503f3b3a8a78d64d68ef2c3ddb5df471949b4d52e1aece86a6db000343c420e12c8c5fe338a5fa8434d18a259413f607a34081e7cf8c50cf20bdfb1b03fa0cbef3967a76a8efc2708146082c47075b69b3c51fb487629ccadfac44614803cf3f9adbd09ad92492b0077eee4e1c303f17c54783d4bb9c80921b4e6bc15d48030e8b78120ff3de3c7fb6cddeedd3add2989f796ae5926554b11e2773311330360305ccb95e91a1982861cd4f2b4a264222ef0acd459a494c9230ec45a6978a7e4c03aa37aba2a684b7c63e79ee434783b74cd8b7b3dccdd98f9f111b4af542be760703b1cebd31e0358ce6afcd939d8f548179067a0556f0683e3bce24bcfefb10baf90379843a3c77decb751969d0bd764ba58ce51343255f98b6fd7702fd5cd6bab20e03881748fcdc41d197f42665409d014bd1d1ab449a9904d24961671ba457a00d510219ffff03e4663fdbcfc09affdb8853e4fb8c36756566d42955130d0d27a597250747ee5e035de1219047025b6e5fce5997ebffb24ff90401a9bee4a2fd173ba925c735b97d03af4340f1a153924ac4d6b6e5f957c8c26cd04f33e0d3f6677d48290ddd4e6dfa0358abf929dcad16ba92d6313021e685f9bea514d2bd7272324ef7c4c786a657d2033ac24873b14e5c89cc64ccbcd2900b977305447ad2db00b088757900b3b2e3ff03e8f51a9ccb4e5caba613d575f7200432c7b2ed9b483dc40a3181b5bac72506a803a09d494ce9f1f6588b1a6cd18ed47858bfa23955bc9d518751caef7145a394ff037dfa45304a7ecc2d751163b16d193d6542451919d8038cbfa68c464667202dda0219ffff03f3120ccf57b2ce1b7f3b40546c623cd661b779f107a4a98728dfd58ec03401ea0219ffff039d537f45dee13edc85f8f99963d25426e729f294500fcb09bbda56dc1d7df40303278bf058137f706b70082eadf03b70287a3af3d40bb12e32fd193a5a51342c0f03243cfa25590685b15577e3afd62bb7b90fce59b35fcec10767a7568f470eeabe03d9ddcd2745d0e8776c70859528f881bc6fb09aa184d62de82069c4f06aa2fc6603556f80b928c556621c9bd10731e4367ca6ca7a4de81672287a4f775b08780b1503cd0e33f37f0f55e07b6616c454b5e9d7703a106ebe297e55797801cf43fd0e7a0306f106fe80499ac29936ee61bf2930c828a3505a704deeeafa6c7fa1f12c3be60377ccd6cfddf2029bbf76f6bfdb1921b6e0dc59450c9d53dd0609d4500895fc8003895e9f3f80255150fc4033432a7781aed1c485b33419c06495623a8b675be5b103046863d209dc0d75fbe23e6fd2a67adf4abe7dea522413c4e6e10c007cdaf493033888ffc1977a12b44fba7500bcdbcba8ba4df3145d4460c7195a6ea0316174bc0382295e4e3659d1664af165c3d2463f2d2ec5cab6d5dd59d85422bb6cd6e397e8032aa6d98c5e295ba722ce9f6d860fda048a661464053c9852eecd68fb2366a40e03a5005a22bde0813f0132a672b74cb087b12c65f3827503a5a7648ff7c8ee41d403c7fabd5ba1249ae09c33cf184bef2b73553cd9f1ad6d7b62ce92446ebe1e6a050303aad5cd484800131c14e87a55599f143aa59929b8e45c5e944ab31de471632b03eae66a36bf16285866b3b58beab01e0c151dbb7ca83c5e5fdc9210f42ac971a903e37bffe00b889f53f88d1eada17a09fde85c34e621e90994f3c78fbe16634ecc0396b84ec25b1405cf08192c76a3be006b4be8e6ce243528ddf83482378bf2888503e6db2d899cc5670e47ee839c9fea02316a4b53adbbf8bda36f11c54348de307003ad8276bcb621122867be187357e4d2842bab8b1a33e7a1701a58a690c610fff40307ccbd9ccf5aa1a8f616600224c64e8ccd7c3bb4c81338808a2ff7868d0cd15a03fb9c472f73eeae286d0df3936ca6c5da88c6f1db3c9b606a9339ad9c1c22854c03b7a804c409608b4f977f15a2e620f7cf0b9a0c641b37184804be7dda92315363033dd6fcf710cbe92bd1228dbb69cd78b5a73dad4c65e491d6d3bd881f1a9b8e71032fc69694a8ee336b75c48bce3d855fd8bb94bfc18389222fd9994a8244cc4a6c03b542b2cbbbe20f002ae34377e359d6db807317967f0163dddf423bc795cfffdb03a51f3dd448348c85ae1549d7ef7db80cea3802dce55066ffaa09ce127eb342b200581f030ebb5779763b7afe18f7eac55e7458cf5c465bc434b8acbdfd631edbd1005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e029d92f22e48c09939381adceb704a481e201bd0eef5069a317ffc693ce84653d8ddc91c1000581e02340d61d3e10db4fe323fd1a4ae1992880ffcae54037cb95b56c59fd5c64905715e26d65f8b8aae00581e02a07a3a7a31ddecaf9df6ee2e9833a54572b44661dcc6d23927d6c32a395820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02196004039755988d1017a373159a3774019d7fd9df32a2252e9dc921f4809be5d2a7991703c52589600041d22e4dc0a1a3f612185c89da4de4b1adca0d77c8f35725e6afcd0141090322470ed22423643ec4ad03d9ea87f5b6eecf676184a52bf750ccaac5464b0b6800581f0353c3fa21014d3770a48be2d9886d478ad0e2faac09860e7b9ba31c629bf04b52b7d237d47ecc6bb50000034860d426fd7b7a750240f92b5b63e03206a7d2ee2c83be146becb03263ffd4bb033b6ed9c88de0c0fc62de90fb4920c267807e4644dfaf14fbd03e23839f19c0e203c5d5b5aa01465ced3e6cdfa085fd73e5f944ae96ba29a8989592f8f9dc8c9c6303e09557e04638ef9f4b4303d3942df876e974c4adb7fb687468725ac81f57db910219ffff03b25ca602cf7015d81ce054c2a2dc4032258ecc7eeca4b16b224a62295b9615f903c36a59890564e93bf895d71cf708d71a787aa06b5a6ac77f8418a7faf609359f03c06edabafed00ea142172c5709d3519875a37b26ca346d90446a144ffeba31090219ffff032b37025569bcb035e894228a052ca371062798395496dbd0f4f5f11456d02424036952616db9ea4fd247925b82f9c5140a9bd5f61d8b9b4f1c416c9e3aecd11251031a6b45458f186584c4027a73ea7d2a9c76ff34601c7b195ce11b574448214e8c035f907713d2b7b7bc87394947179d3ba94d09faca959dc2fc76fd9cde1c820fa003b4d863304c4d27f820807f09d3fae625e04c5363d12eae59dba0d9ee7bdb50ab0219ffff0315cf47f0538aca517ea532be21790318a2497f25330fe1fc2a4c0510eb2763a1034418853e3ddbc30589b2324731e3bae91fd321df1e91b20cdf3254c53fa9698903f59a02bc676ac1c2895575b2d8c33b7e44b3411b1d09cbff3bf0b773e7995db203d0b840cefda1df833ee92e1ec1972a24a1e235458750521fd7b431ff4bcf671a030b5c7a4581d28f8600e058cf5f2895be1fe3478e4ab062b8a6fd0c4a3e28d3fe0310c0531639cdb3f602d56249969393121631a88333a4ee95f9ccf72fa5d421c203d022adc93741d00c251608ee0272d175029b2b89c2e6ed5b314478981d1a36fb0362ad1e5ed4caa1bbc5bc0c961a91b569f02cde897ca98d8f027c98dcaaeb56d3032064840aecb0fbe470af994724fd71e68177f1d33e157539d03b84a936e4a054039207644c88326e5bd20aa2303c497dcc4509f6a87a95e9c421e6d944ebdbcce303f9cbfcad8887d0262c6eaeff501cb80898cf49115c78dd7c4eb41edc568b2e7f030335c48ba29a49800262ea09943eef68461143812cee395db73fad94553ddb710302071a5cb0f3b2015c9118fcd1e813f1d417c2d48974cc46164b89c8107375df038d5391d68e22a81e365e0f7f9f2da0cf5051d4c1790c281297dff4992efb7ee3030c69a7299c91fa892632a3349790f27e7c3795ad8a865ceb6384a5a70115f3ab0306d4dc850f6d9e5492d611721a76b15cf42915ae7e69e83e6769ef7f556fdd770391cfc4e54e3c0c3d6be546b41d4f31e3271c2472c0b72129ac9a469736554ec50380871b9c2967ca82875e20dd40066ca6c677c688cda9def7f78901523c19226e03cc8623e7c4bf1a8d1b796310ae880eb8136c607b0040664bd8ae6d0d7f3656b003c9ad95ecf04c7ae220890ad838484a70ac09a794f3061ded0933afbd7d3f8713039f0339fca868f636bc2fc58392ed81b270a3d3b0a4ce2d88e39cef3381406c16037826d1a283cf2b3d1c0593285988dd270f6852a402602456fb5aeed4f53aa78503c75bccf07e76a4834ec65c8ac50fe899a31914cd4ead599ca58273be0bb312570306a7e1a01be8cb8731d520bcb3aa98b0c33294000d314e76fbb0fdee2565370303176ff5b999b4e793806b41a8df94cf64edf1ee11a0a9e2489b8a12ccfd6c5995037512d36b9306112f5a68f592d452cfbb4bfa0cb9a4cc2d8301900bd1d719498203674f3ae79f914ebe992c08c4a25d5c0aa14f9fd3e9201db32145a6ba06dc98190319d396b64ef95a9c95efee522158e4b4c74abf91a23b29634b0bffb00be0b6c3039ce9cba079fa7e66c7e892ddfa79a3f39eec3a9139696a23a09b724db706677a0362a1ffe1b7fe5038716f468e842884764774af4537ad5a2d498a6019e8504f0000581f0378afffa93a2a9481beef56db8a3f1e30e61cdfc20788932585bbe56d88904124036438b8d0d225c3cca9c270997d24c3a02e5f0ccb46d7b3ebb3acd113965ee79400581e026528ea5d53d47aa5d0d9c7d0f73b3e6fc8743feaded7acd4c9ba6d69ab5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e021cf37d5d84d3fc085fd05c1a07a0ead5d16cf65ce6ac483615047b20954826d463bd5cb4927800581e02f7d2f3193119c98dc2206bd8a715436b9e796b6a67f58f95bdf60d67f54703797759a1bf0c00581e02a5e7db59765c8bf06ae83b44b44b7d51758c127aaa8fbac2b5bb610b545820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e022a3dac91b67f1587b8c3a9a5aa29691c0eabcbd55d3c32288d5574803148013fbe85edc9000000581e024661cbe3de4bbd4a43d371f2cc1a86997ae695814e46ff47cb35c783035820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219203b03d73ea108948bb1b8430047d5af00deeee2859248d69e44286f23a6f558117d0a00581f0354eca193b701ed9af66d4acefca189c7a3e116be7e3d2972092ee119b980470a9b76ee0de5e703c3f295898c1008ab819a65e979c96f09351eb5e51d187b0e9ec15e8c89c5d85e036bf86ebf00ed6b13c66955eaf89046495aff5f7ee311edbfc4f89c8ea034908f0334a0d3015554d771ee6e7a27152a01409b16bfa34b6c05ac5a7f024e25a1340b03331e18ecd320e87462ef3710aca44586ffa5519b851a885cfca725d711625c9603e52adc2aca30ea87f1c1fdb247f535610f8e23533eda0275d323b0ba30452dc8034c83621cc876dc2b1e7e56a0c51ecdb629aa7b30d075d88496316739d8aa553203c26c12d94a48cf08a12d726c9181ce5ec52ebf99fbb43307f66c13cc829a0caf03464e6348c802e4b5c89ef2adb8c3f2a01b5b4f1f19ca19c3221e8887648a853203dd29c1d1952e40378742ab68a7def421b5c9893c83d671103c49fe153190b17e03ed2e2385199f07d4c79dcaea6ed1ea85beca961903d8569a6a1cbff153861ba10141000219ffff03bdb174bd4526cd659d7e4f065afec7cfa3e85c756339ee2d476417476b3eb2540219ffff03625b073448b1278e28fc7bd0d43f89df0abc6a5f84e230f756dacce12d056fa90219ffff0383ca7a242cad6224483624ffa3ad9eb469576a0ecbed9f9c58b6849617e076b7030ace3d3fd8ee1d33a4f6717ed9bec545ece38d9207c3688fb47c91e9da5acb6e03464d5e73d424ab11772c2f74c884d9301d4c0c51e12d2cf6a18fa600c8aa4a3a03d57fcb951035e55ed714336a0bb58c1dc71798173a15bf9211e3b051a15f685703b9284afa5f001baf4c6829083ce0527f19c3875ed1b0b2cda94e4c62ec04bdb0035f4f3b66f94d1daec51651e5b9a33eb8dbc0ea90f0a88f23dfe36005236a47510305de4330bf407d7e333d22cb367cc9e40da789b71d74ebbb906ac5272e110c3403cffdd0c8306b3a794a3734b6ebae34752991819ff8189e5d42e8d0db1b30072403b35005e34eccc3d639b90785263ea33d9e02e8634c70b5d76f3f8f9c37b91cfa03f09490d56b9721f7e5cf1b817de0388ae73814bb8ad975cda7525f207c7ae0ff03e37becf225baa0d03f93ed39064421c7a69bf0194b7fee5da52f924dcfe678b803c8001cdff9bd8894ee91a640625391da349cb4fa0c051f4315fefb97afe7cc4b0305ca3ca38c0284ec765944174bc68bd5f748990c3186d39858adeecf649a5a0f039c640f6ce6021101e8f626311c7978d75eb32a83361f5424cf06461648e6828b0310c89213c275c675969b045a82d741fdb8d382bb2d171e8f623fea93d8bd3b8603b2dbd3d28892b7ccb739a71fdd6b2a23c5299c5044d0e20dcb4166d775630df203604b0a1c35a688a4bf4977979e608956637fdedc7e725c80ebd8abcf46ec9f5c0340799b95c1574aa21c0de82fcec09dc4a1ead43ecd1e900b98835a8b4d1b367a037e6933522504b6410bccbc61b5443bf6c532348a3a450842b7dabc57f60c5d6b03b9245316694325696440f2c46bad7d44ca8fb5f5498cb693be6ea235e7b2edf303ecc6857f0cba59a1b1389d9406faedd50c16791e57f7009eca4384bfc9924074039c852be5bafa6c9d731669e55a9159f6fbedde898a17aa65967b50d5ca38c38b0396c2558d9d225994df16f23c8e90737c3d903d0180758820850ed4b4a8fb564a035dadde88bd07012dcd9f3d08b622cc44e308d7b8028a82e5011b0ba5d6fd2223033c5830002220286f53f3e7ffbaec167bc6463e07eb6ce648c227af6b73235f5303f25d8652f8d37c1e18d949a38ffa70aecaa1134a77d9af0e7382dedc584e5d1a00581f03bc090bc73590bbcdfd06b7139b6444d8419b88df1713d9424504bdcd2910470672f7d642f338037496c5d1f7fc396b5bb521b439323fc0c3c3bad33698e42a41516ae6faece5c90375851078e8b785cf3c06bb44dc48c592a5651aaf6429c804b47a3e7ff0b9154303937e3ce6f15dde2be542418385924088e0a83ac44af96ce1243a233b80789d5100581e02c35c8e4e903165225a77c4dda0beccf7aa66bc471d7d7556630b02af505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02aaf7322f72065e030aa4270496382afc230e50126731ae06bdfc2345a14921b7e77b71075bb00a0322acd1f357eb618cf9e6fe587c8dba5b23f0b5cd125fd7468ce21bba4c5e100f00581e0224a8fa3bd3b3dcec43e798fbeaf3564ab67defcc41b7aa76904f43b20a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021980c8037e515792897daadddc586ac58482f7c4ab809d2c1b2ef51a0496d9d046d725a2032f2b4454f1dd28264e3e84f4df8b3cc8d774ae30a1df50dfa84ba301293780a7035d9f015f42eb3f9842766b65a288da48293056aa5dbb75d1c9b0c64506c81b7c037527fd4212bb93e213fe910299902e30bee3914e9fad5665db0eb1583955b9c703a89e340dc453587ad8232cc1323c886a852288eef9cfda7149c6118da5559018038209217c18562ca034bdc9219455a2ee6cc78d3add1c7856ba1e75373e7ce1be0219fffb03d4a7a511253a93c03b63d3ad4f506d1ce35d57b564576ccc5822f8c69d1724df032a04e9e998c112b72795f26036f450b864a3cc744ae3f9c6afd45442b882033603531438145478fd7480168690c0b8f945e81615255b343c11b2eda4a2b779169a0219ffff039b2b8e335cdde04f21804cb124b7a3269680fca8294e6fca53fa74b729b6efc50383fc3cab9e24b99e91b3e98105e29975ad7deb3712756c02a08cbcedb519f562030019d418897f88c1b72bbcfb3b156a2c5d9e9601a3fdd927241f2a20dd9a73fc03b4fb4ac48971e0c21a1e4e77602697b4c8add96964e4984cde5d0ed8cb2caf440301a7af6d4770b9591cdb9115fce837f1c32a6d1a1ac2df8ccb5fb634299fb7ac038122973066dbc6f3b8d5266f5b1e0d71c669f766e43d67dd021c53b2e81ab7d803512346813a9fab291dc9c87125b0b84c905ad7779f9e6b1fcc00ffa91a5e5bcd03c3964da07c5d9a5f441c5c4ea3fa85458a9de17a4377a733c0bf350ca313a1ca0302f48797c0b0df1a974a9aa027d4f5715c1d3f14d9a1f584d3d3b025a5ee5bae0333f8a1b6bb14d23cc94fc8dddb95e10002f1db6066132372a666406ab5e20f8103490e8879fc4f8a90265b865d5dd58f7fd5a5b8650793beeeee1d822fc9d7985803f2fe190efffb9379d26227926c6b843388580ada0b1ac97707073b8590ab9d1503197557c84c324d352229b51fc3490f858bc0118ed0333fbcd5dd23d1e4072f9103ca80b505aa62463c9182cfa3e9f0c28292112664d8fd3ea753896c79f6626d4203ef540ba75184e69b0cc004d495f23b89ee474939fee3f25b105c5b04f7a2127a03c75bf5c5e7fe7ca77a153124fbb30a4f0747251a934f89942b0b6007e7429e0703c83fe45ca5c6bbfae8e8f08f2dd2764fbc69afa3add4f1982b3e1b746963a21603cc7b26e623070ec97b3e645d4a4e32258bff6b0597b13923dba3450501a1e1ba03a72571c1a7548f7e4d279cb5673acc2ce560f0e49b4474e6fc250813a33df499034a589c1ff7c954c05f7551736df580c4e5c1813679fef8b09e13bc2028e6826b037c522072578d99241a8cc402e952bd4bf4e70dcf7f7a30d8eace2f084eac40e403a68d56d07484a77a04ffde6195121db303e2733c6296aad526784d1fb73d01db00581e023c8e0285cf1900e405e4bd465e219a261ce68dfc8bb46bae3a7ec61bb25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02a8075e9efe61170e277642bc016106cb05fbbf530bb940c05351b2d9e95820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02030340c3eaa78234b5a8d7b6984550b7aef4dcddf380f80fd41bdd8f57c7a34bccb903f066e73a5ab76f356582aeb52015e96dda876e378db9b82a07ee3c11c925852203d528008d14b0ea68d1459f570ef0f1e2e6cf1ae4fd51ef8249636dd9dc2b8cd6038f2e37593761dcd15cda6c816d6491084b2d00ad3c1fdf1deb2abab4522ce3ed0361d9e735c3026a7766ebf912d3aebee68b957be15a2ca91ef96781cd527d0a320219ffbf038435cac3808c37786c5115fa740d8f4559645332fb324bfcfa5a0a2eea6e64090327cf05b796df0db9d7d45f3b0170992c4fbd32069fe722cc894340ecae0280080346c6ca1fc27c397199c13cd957220a4d2617afebb773ff19d6f36486b76c0d5c0369c03bdc9c9541c21db422d9fe988e3bc61936555787ddfaef8dff6648b2bf220219ffff03e75c34280a1e1a0130e7aca3e8672d1a3bbcee1d77d44b1fd22a72974ca9e40703f0a73deab7990a4ef86a318cc01a26746704d936b0b0dc140ffb3e195bef06a703c4f3db34293882bbd4c735c48ac39a4e2585a61e323d8e6f71e4394ff863917103f6f723d8186b7ca6cd8f7b552bd18ca43b70dbffa812da9692845a9d484d833203f406e06e559bba217b95d19a281dad191745d1f36baed4c23c7ff8d4e82aade003871cad120c9f525378edf9a628a263c745a78bd4157a599beb30808a69bed50d0219ffff03d69a0c42b19f58806a372572fa388e8d21be56215ceb6ecdd4d871175cfc811e0318c27f03b5de4201fa2d97440786f5c07cfe7a0babe7fc1729170c5c7cb6c8e003e2751621ff7f2fc6f83663d16f0d96e7f408a6d3efe0fdae9ddb7d71bd78300103d81afaa386515490b622494d435aa38624f64e906a48fbf89d249edb4fafb0ca0325acd9222011ea2654fed428379e370f236d92e13b30437a5d6edb342af10bcd0395266ecd4c59ee370cc6666892e82e740b66300ab6db5bb99cba18eceeae32ed0305ae8d52b2143fb0779c335001cec5ac04d869088ade1a0c4a89bf07120dc77b03ac13c92b944de5e2691885d643edd821ab2c9cd7c7fcc949926d7a002bd911090219ffff030341cbcef22012f86345b2fa77dc8ed679f317f77bd2c8bb99faf25f05d8c08203a141c1de5f90e827487b261984da79bc580fe241acc2732bea9673ce6211056b038031b90d29c3335f462f89b42434a7f8e9ddb163ea054ed2b326db5cecfcb2c9035e4800362e1b88c062183d06d52124f7ca811e55d56a51833f838bba268aa8f303690e64e992f6f52d3e5612c277a46e35236f0d7134631e58f0d8b5c815ec5af80318c190096b242e0ec562f8aba9a3d34807fb074b161ecac70d214383b091000c0312cda8b33d3df3085d36e54c25c0e1e27461757a9d4f809293363cb1d142637303f8f2832c8ff72e02788604580f02c1f5d20c519027ebe50a171ff2be8749cb3a033d998a07504b3ad794a686ef075eff0088190ddabc6843fb8f0fe5c1eb40636b03567037e69b6f8be5af4538063d06d12c14e42da1688ef7741ac0067cbee18c4c03cffd6aa475d77ae86fc9299e4d70f5e14c2b97031259869d8db20d9233da719203c285e725b19f7dfa51feb186a9dfd6ef118f2b2b508f5102b09dbbae665ec32600581f03f139db7be9abdc5ec011ce9831c2ea30def8e778134ca99205c8a38d82e05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0353da08a5fe740d150af975bee18a8507528e31399ecaba0f1cf48829b6527cfb00581f03499456fca2e64ac2ed78f3dc0a5ce33d99630d6723adb458292bf5fe7aa05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03438744e64b0eba328226f76325417f4262b3a0c247f35265cf6b9ddd748cc31c00581e0205072cfe2ef1c898de5384389e20d285ed44e3f089ea10d089cc1c57c35820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0212df585e3849936c182b14f98c22ec7ea4e6d7bd4fc719fc50fa93513f5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e023f94507548d0e7bcfd2dc09e28b852aea237a9da926637c9c5122079dd5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0226b1e10e8ca6452b65d073c15aff4fed739eb500c2755bcc2a13e0e0a54922e1d65e9f281345e6021987000327355f449cbc51480dbfef197a40b90d3654ce045658d0ebb1b4eed6ad9f5a5203238c3c716e1cf018f5710ca1717cb094d79d023eaf349a9002adcd06a85f0fa2038b90f88b7206cf9ff7b0042fbb3c59ffef1c2bebd2871a42b67cf66614a3b47c03872e9f85d0010327e7bbda71c6054fe5d9bd5be4bdc747a184e71100b2fe38530219f7ff0364274b792c12c8e3416f5056138267a91aabb0e0a52a24615590de0e2135919b03b351b548007f9ccb3a237f6b1b918a5070bee74a3bc1e048a722ad0ff927fb9f036b9a81c700750acb0748d49f9adef85e200fc3d18c1d3553a9940c30d92d4b7103d8745cd841edb8b989db136d4cedb770f413ddf92fb2ec153881ca1c0f39292b03c716d4a784157658d77a3ec02ec4ac865393e850f834709d86e159cd37fb73a1036a0eca0082d2cd0391f7276c904c260c49554cf03b4bd3bff8cef185f8f4ad2a03e76eaf87e30c7708035befcbc02fe72b0b5643cb2764ca554d4d75066fba505c03a92acfb38c80d530ab31bf0e4e3652d0adae6789802952c7a8283b4d568099f203832d71cd6b0aa9118d1d36e90631201bf760cd6ebd302b28c4e436bcfc16fcc203e0c6c6a15a8a50878e848caed598a58b5fed7197e5c00ceffdf5c771e901172e0347b32f65578309527408a0aa8976fd91a7d52340798ea5b2a11d177350c5ab290219ffff03e6bb145438df925c26b68193f4ec9aecf3d0d4d38c47478692025ab6a7fed867030a4c5b1a29f4ffc10bf19d9b3088dc1c8990699c608628e90673b56dff011f1d037b5b5aa1d7cc50000bced94add2316cccb92aba084b9fe3183d8ff1af4e6bb58030e89c9bd400d8edaeafd1235624f80f36ace24ec8d2c612416b4d549cb420bcf0365fc72a447aaeea4c19f1b32f1135a2e2bf2886ee48c62ecd561cb2a44834037038b60faff8ab65cde8e220fc55118501a25faf0aaf180042141b856377840735003895752c2ffcb7fc0cc70318f0f6609908a7c021433ce26a7a1230f3cdabad9520365224be1dd8964212409528c634156e405ecb7ff824f8823372aad80a530915903329bd51169d19a9cca960a6a037d817e30abbc2ad2157e4c08ed0510ea8a565c032b2d7d3d258ad952d1d0978a64ec111765d2220307d6034512b25f8b75383e8303aa9cf7a9ca132d356ee5161168f3ca1c3c472c356a8cf0c652e862feba1b9f69037cef0997b2e2ce2b4867ae1577b8143cdef86d6bf744cd1b69dbf4ec196a44070309b8cfd4a1ef2599884c1397ed425ba9f238b8b560665cd206d263f147cc643003208db1d165023fe4fb58468fc93365883397dd00732f868422d2b5a616c8ab6e0219ffff03783641e8d4b5c19c37738455373283d81986bd4a821fc8132fd9871b4e00358f0387a34ccc7a808911c771e3c6e0f5ce337c532a15f33acb467e187759b488a9ab031684e7e6dd4d6dd7dda47d9d2ec3246a784df8eff83ba2f0df0ecec1212c430003a5e5608821359e2dd7899f2ccebc5996a15104708b6d0c176432961944d5d98a033a2a07a4149f7abcc62ccc216d108236eaa6ca25d8995492d3df2c9393e2464a0366cbf45c2030fc6292e3e3ff8d284ddf14dd52877d8b70e993377084239cb60d037d8d41815206c5f0cad4c7efa74b25b017fe4e5dbb78602a2ac33ec1f6506f830310bff45f08d6a3e5fd85c78e86f91ceed9e687c6b1caefba6c9822d98d37581b0359db3d9dcdd9dfc525c089f18e0ebdcd98dedb4edd16408fa8e8f40744d7349603cc0648cc2df55dd53ed03398acb4923e166980f59d08bc3883c9d469df551497030c525804db4234fb145b97a67a642baf504b089aa81524e58e6d59db7add5d2f03df6b4861504e5b5cdecd651b6499d5e2feeedbdf434607d488a037879838ea3303a001a13f987e7af56b2d6325012fff1352beaf9b0d5f45416689b65a93b1f2180324261fefe9dcee0721391df55f1f28468d2b2fcea124e6bdcb0b704d449460760327b269fba011ef623eb126b21854018468b8696311883efa71537baf3e54fbb4030946800913c4c8c6a2e905372fe64fbc88539ccfecb7f1d41ff59d34954fa15600581e0226a8bcd0edc4cefe63ad50fd4129c962e6e176e5b84fc3f2b7e5ec790142150c00581e02ac990c193b8f44f535979aa4ed31f7bffdf4eb14cb1cbe7c62284578b74c204fce4486bfefabe2d053fc00581e020def24c23b314c664db0ff70ad42e23ed283c49c1490548caaaa4b09e35820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02ae2a58ee2618c7db3bb7be005711a3b44a413745b2fc6d17c4faf3b8fe470334cb73f5c78700581e022c594aa87a7762f9f46445cb98ec448f26eaf2e10c052f4d129b133d165820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581d022285e96f06a030e5868649e9cef03f5e831cb7d6d9c2eeaacbf3015e490122e4a8374652e37400581d023b2ff95bd14c965582e4e502c4285949bb8a2e451ecb6b55c80f99aa5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219900001410902191a5800581f03a7cdf552053200120d0381bff4b17fdd01e2ca4a004a795513716dfed9f05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff031005b41cd2e3f8b2cdd56eca46d6ee8d4e2e9d7b915d1cb011b7329c40479d6c03f5c63ad566864c145a84da2512484a2e07b8e583573f036e80d323a88eb5f8d0039a65604c9fe620137c9d70a0a2e3b852cada8e2dc65c0f7ea0a6676888e79fe003c21dfb37091bcefdb8ca4e90280ef6b2c1679a14a05170c80199a416e6a842aa034a7e404bb7c6a4d412344615fb4167e92ca8a49b794dff8533305585e5c625c803d716c2ff91e92b960c1722890e49176742250f07da1ac5288d005a88e886f152033e3efc0359f60a440aae4544830b206aeca8b9466a41b52f3d6524f9997fff740324115bbc2ab99b897ee73f5d6368785b89dd699689ebd816bfdd9b8a7f0f96df03e466145cc4c21b4ad34096e634943b2d27455623e4545e1db8d16e8d0a1d419003ffc38241b2e96b38ec109c85c77608f1e5dc00bf29b88a40fa0dff89067fb37303d85de4ffee3152e7b96a26d1bb70a7e218b6a70c65f4d9e3646dd2a390d62733037707c417255a7fa5098e2acc9e838b930882c1c49f5098af6eda2f02196e2bdd03dd16b1522e66a7bcdeb905aad8e257c0c4e71f5ed94ef928b9a68b01d7171a7e0219ffff03b85208c12cc2e56d3fc73055c5ceaa115be8bad6e4d0b46ec39c10553567d15f035b2abd3b4b3a7f0cdc88c366fdcce7a78dadeb169da8a120e53a454b0c3eae7203687a35454fed5fb3c739db2eb8949872f23ecd8f999cb4fcb379e0e2422964fe0327bdf1e5b8ab7557b73c55baeb2cf6b8ca70f6da1d8e3c35356ee32e2e92fde903de4485f5901e7c16732c73e056571774637eef6f14385f0a4651726ac2af027903dd8cab3b9296de7c545af3d3661ca4b47b2fa3b80fad609aad6147eb518a4d6403c3c377bdd30868b054629191e1bbbe261b219cd890071b56c27c19e24dc2c07d031a607859dc4a89c1a41f0ac764e7dd40b46d64050a229111fb6acbc3ada5e0f80219ffff0319841636fd348885958e3098a09a95a190606045a882596044c74916b03cd757034b5ce9ea738066a055dfdb67fe913c40460dcbbad771a4c817de558bdb93693503ac86b5dd4c37b7cbb4174d27ae198c911eb843f2efaf8471d9c751bda4ca4e6a03fafb58f2da9159118ca12d3fa5e548ed08a3b97dddb0d0a23ca28abd9c825235039d01197a47fb946a137122d34dba1f2088bd3a645c0f25bea9d91f9979f451fa03af32d65d8776aa64f530b288a53827ad0a68b6b8157f1a823c6d23976baf863a031f6c3c8629190b2e0c674bc3526e5bc6ec2953df6d69b81276b88a5c6914949403c0d57044b0fcd1b905d766f8c4a370225a9c0cf1dbea99831bdaa530f0ef998c033defc27f194f93b0f2e22d737072cd144458c807b95e5623f49fd3aabf960b4f035ec2a3bdefc77a6e28a5a9c9e0cd2f44e4dad8541a45dd7b19eaabfd059da102039781c273b709f60c5e002faf2f2e575086140368fff0d5a78e55e875551e406b0219ffff03f6505eec45a3333e967dd07a2fca6c4c46022ce3ef7f1f8284c48c2b2f652af6036fec3b9b8e8424b1f5b734a10d70b5c57bf279903ae7d6fa809c9945f7384ad0030dab9bfa75821e67f2d346e5fef4f99c9ff4fb9ebd9f3a2fa96e54116c72ce03039d99969e57379077a76ac460eaf793d3ae5dca1a363d0fc6ae9943faed37aada03af2c278a9c2a5f9faad7fabb5118899aeba061c7496d5004b5f992d8ed99c4b70373f9e7ce8f604e3cfd98b6450327c48fc4e21e0723fe24cb36f307bfe1d6f7c403e9ce92ccebae7e91013a85b5f9e5d9c214b8b10458e506b444763e41888079d3034abc70ae670a98f36b74e3270a7d835d2062a8c808475c9556f6d587af86519d03ea39af5155a5e6756def4154244450d0b92db15ce575eb8a374e0c64d03d9e6203e0fb998c3862acdc676f1b2894ead0ac1c3806268a0223751c26aa528fbf7eff03f162f10c99b896604049cb0ccb2ea774a6c2f3076348a00166c18541fb8e851d03798160a5346fef9a5a70373c7f67f81224e0471e9b86ed337d38ede03bc6dd0f03a8a267999fcb620a60c89fc18cb70c8703e0ce206065f37dcc94e99d44d71f810337a13ff13fd898079357e9bfbfc3da1969b18da365c250fbccd565cb97ca34e700581f03ce7b1f7a132ac95b7202aabb486604ad8af10d8d747dcc1dce47302965105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03c60801b4048bc95de2b37eff6b641d56a07b4ab863938759f922b53be9677be200581e02988ed9ca2b0ba1f0c0d9f294b947e56f4ee65613fa7c968917f01d51c448019e2e804b251b3a00581e026cc869e4f53917c40b9bc6711be7923f6b86e5538f1a6ac40f8b0e28a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e028ea50b7964fc041a4159fa03658732c3b4a06d3b2aeeda165050c706655820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02cfda133e13b02bd74fbdd9dfde0c7f9494d88c6ab54613416b0ecaa9925820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021908700219ffff0353e1e00ae1dd51e6ab3a5fde1ea00a8ff2b0994c2a745397ab9fcae937a1fd5903a30c74e204c070ca575e639e41212a182219513cd6dce7ad60874b5e6fad2b07033f0437d0ebb7a6a456fdd7db2df487a65c79e0c91ea0e7fb519b2ac25e204b49031cbd5a1a4732ef718f81684227017c2b4a7ce3ad3b2bd20fdd5091a7906d303503c93000deb024f09068d8a9463ed48ff7a096f648f1e62e2455cf16be94d3f75603f53525a2b0f99fc11945e3c1d81053b2d33c70f0e631877a8a52be10b348718a0348b75a5f195d3c23748bc35234850ba86d51e1def297fac3fae5605d05b891b9038aa1b95eb47dd925991ed5fd636394c36fcb697700a51b45ff314bb721d7de110310fddb29756d0105eafa0e69e6d351f111a5cfad8c16ec9f796e654cc01a32db03f0060441275f6fdd158cad5d7e817b4d02de140251b437260052a94854d41e3103dba02deea77fef3f1b7a6835c27cf1e3a81b573de948b52246f68577a16c889903fb6b7e10d8c011e0393959dff2c1abcfa3ffe6dc464f3b7a924176163010f01e03866aee14e2ad5db877be4c4351a929d4d9a5dfa6cb9c808c5f00c28268f5938e035c111587844d5280e8c28f1e91380e48707b766df0e2c7e4bcb5724d9e2020280219ffff03b562d57b698138248caad5fe7d788f137086bbb7e702f65f8cc0b6da6cf9f7f8032755de62193889d32cc8954bfe2d10e6f4703e08bd6d3cd51a3f162baa9fd01703e0033db505862409002f07627372b672d3b457dd4d86009318e2285f7f43280a036f6a677a6c0e41718528e36f72fd7b664921d5e5d22668156a67d31646da7c80036c3d735c842d0135fad8c3e1219ee373442eb6914893883715fa0522a9b3c759036b5838c406ae0ef2ff13983ef1deefa05bd67408bc8cc80ac33f2d82008cc16603faf0896b752e7bd97cef5bb7a06ee7b522d3feb7880c48a8cfb785476c47e1c9034efba55309c9c3002d965639e077fd37b9398b4e07637b6b490479279043167703f91e8b11ea7761c23ca9b96640f9981bf2b2dd055a1e8948d591b1d1b4b72b4f034cedb855c749a35ae794e2adc0defc755b377f9562ed9826fe753b8b96dcf76603102d61ef180da5d8db7935707a75cadad9201ad415eb3a6815d204736e6acab5035fc353e2cc24154b48ae2993ca7726fad24c813a0005b02d69bd49b622a95a2b03f755c3b5f5a853db34fe9a5c31d752203d9a644a76221de7f4e433edb1a77aab031fdcb4556e393069eb4f7aae10f491ee67a3c89958a49b5308ee1be3894174b8031096cbeb607394ec2434509c8b42e35ca9644f553924415077e307811c61850c0219ffff03ae1840a3e5fff316052784ba77eb1f40fecddb3b0ae75405fb203eacbaccd0980304dd5145b61bf1f675c1fc74aedfb1aae39d1830195aac4770d141a5fabe1b1b036b9a7ba274bd685ec8435652ffb43667b7bd710c3240e801acc99509a1cac60a03b90a6eca9ff5b24c7c0dfc060bbc47e1790f136af6df800fa9ca7c92ccab5ef903f1f151e108cfd634c138fd6f981555f46d74a8fe12ff26a7147b3cc02a13bc0703a172025bd09f4e5f8303e12f8d96f9eed80265bdfc322884ce212e2ae3851b72035191ae25e23d4de6345142ce1e195a474bbe11f9e31cf4a74c284a0f3c2ee233038ad125d0706137c066c450f6d4404f86f009b4d6f753a0e6d9e4e894e69c89d303d09c7a0985eeebf3f9027155156efa71aa0cdfed7ff11a35165cae6f75b14acb03f2857e59f442afec47ad0ceb9c4c69996a51fcc9d1d09cfc8a5ec657ee2c391503aec514ce3a070421c033c766cc1d89d0fca71194c5cb785aad2e88ac9ee7af4f03188b308f812d3f0672ebc7bc63c3f53bbec09a1dc319bee573194d3a543cbe150350db007108a5880682fd05bcbcd3af967afc8192c59cd2d4a96d7baa5149c3a10322ac04c0ff22460f8a6ef7d1b6604a53a2f688724023ba23ad882978f16cd6c9032e5faef295dfd37a99fd1b71078697e66a0b10d8c7cf7d4faf4dd81235315f6a0390043452ebec4718702e627de30bade7e35a106b5834c9de26de64ebcd41270a03ef86792dcac18b4e4c020bce4c0ea5987ed54d16bf66dc38196be5e8d95d6853034535f06eb1130ac507e8810ef9a9a092f4b9acfc52a67cd20d4579f19cc1bc6a038d2834e8e8a9cec36e516e62b90071707408df491f37e9244a28e2108c44db7c038e8bab0cbb727aa9b1d915ffdc70eaee31ba95b4f968c58e691cd9ed02880e5f038713b7a825a71321dcf7c292f2c40be7414c7ec024e286ea3d0d116ffc509e90030736740e39e719e21361c3c2e3f81dccbc4ecff17565a1bd66dd3ae483c3f8d2032c231475bbb652d4f007b0bee4293963a50a478924fee75be1d20f98697826a603acfd551c78ae25cc2fd9c455124950709a62368fe8f90081b4477ac83080cd6f03988162eeb7c20d15a4c8757ab1a942c89f19e600aaff9140e87f22bca2b0882d00581f03bd2e8969365b59e138a43bd6028aebb6e1ae6c1bf688b47f5690eca068405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03cd2cdbdd277317f0879de0e587972741b1d5ea30cbdb41922dbebb8dcd8ca9ba0394fc8ddd4575c57ef2f26e86ddb0da30663f2e3f9439fd25edf36ebf1116522f03abd03e0c212f185e288982fede0707be506c43ed17f8025345c507b2456f9058037db57be4d023741d7ec4c9f988abcdfd47e9f7f71ee39f0658cfc508aef7c57e03a5b3a9fdeb39ca6dccf0273e45af7eb7b1702712feb305c26f1c8a6d3b387362033d4894abd5c32c34694f0bd84f6c73a35b96b8436241bacafb1c03a9fd998fc900581e0217e0c219b58f64a42415630cf12d88372e03bc059c78d09e53929164ce5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03b4ca22451d6cebb0403e28af7e0d10f8e1a4c586cbf72b3aec3fb58e22ea5eb601410500581e0209c41b130d387db64e89c263f03fc31592b58296965f22926c6e65e7205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02477dfb476be7a7b7076f810f756bc4a4ca1428cb07b43fb00fc96b66225820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02196801038a7f2ea0249ef9d9932004ca6ae817d60dcef0de7a5b779b5e18fa3b261fa64d031c5b9a77c3a56ea1a7c67fc85a6c459acc694e21f656a6ccfb4ae23aa93fabb9038cd47fc87a17d1053b17e8d16337624a8b4f7a365baca77e7c7e1a53ae000f2b03b2b714554ab9a03fe0ab43171830c8e70062ee9ea5afb293b930255ca075074003ee242a4525c914fd13a36f9f74cac20134639aee171169323ab143f8b50642ca0219ffff0366358a9127e5e31cbdcdb9728077c4745a895fd9ea393a1b61e977f963a8222b03f727cb9c56f63545e244a546199ccde51b1048210d2ee77ede7fb497f641d12e035795e1fa4a049bd2d272fae96e6ff6f62961bbe0a7f7001673602dafb20d454003e479f1b45a2243143459afcb42fad806c42ee7207bb69c6229cfc12d38b874a003dc27c605cf69616e2768afab44a8b68e8ce8e6b1e3664de3076be1a161c6e44703db17c079d690656965851ba06985243b71d9abb8f579b0c7dd489eb1694dc4fc0320c3042795c65620661ed9cb43b2e002222bd6f48d90002b24c6c093e5b8c8940303d55cbb7723636f728f64a3baccb17ed429b0f2f4fbb610a159f808e099a59803c0ac67952593fb4325ea46fe54e3b06624fe55f3aae0b301ee25fc22907fff1c031137dc6a2c2e4be039123610f21f16baf855c5d96b16da4cb61100bc5413593e03df213d5d4d8b5190cbc8b1f4b174c00d94687e58f1faaa75a75a29f71d293eb903746467d98eeee27c6b363904c85ed02406963503b32e2265976dac34ad03539703e69113cd7a565a6e46ace0d88d15d6d6893538bd734b909160ac6a6cc29223ea03df988bdb52b7ca0f8f22bac490b8e717a40eb6979cba13397401956ace3c85910219ffff0219ffff031be66ca9d7e7a2acb1e9e6e9e72df211ab6ce74acff2081a5b2d9e22a09af765034011cbbe9081b70d03d1b714f0e0fda92e86072f4adc20dfaa8bd4601ff7659103ee4a407521f44fbc79faee245a189a4d943b19c7aecc05c6fc81173623c0fbd403637a07101ac8741452907163da5eabdb2c90fd66bb8b733dbe625af4ef327daa03e998570c670385d940288921eb0247fe327580281ac38fc788c3cf66ea958bb70319e7febfcb673df78835106dee2d56189c68cd7ca81e5ad74695a25bb56efabb03f754d456601303944afc7a22c93d0f516c341eb51bc15ed8e8f862c4371f43460392c2bf9e721078d102c7d39db9cdbd5a767da0704b36d505128217613f17dc9403a45452e14f02429f4f7441d813d216f38f973b0f24b28c365720d24927b04e8c0383034b36b70340a6d65adf0806d322b3f695ebd45e8ad72268f99a5d8767984203dbeb3a16be6327cbd03d897cf39805226523ef860263101135b8bf7e6be66cf203ecd915e41e542ff4e7fe1634db35539a46366875856dbd54fca080cf0cfb2490038d4202cf83ffdcda3a242adf6838bfe036b7906f39f8bbdb014be4562d45d7ff036d5e4883a8e652d70557428a16c5de84359d0c7b63295b25ec430870786c02fd03878f3084333df78eca66956c99ab210500b9c56d60694115c9dfe6ac18f7c17b0364d2a3887d9baced695abb46418f487a02b67d1cbb215a1ecdb507ebf6536c8f03f86cc4ee2320cbcd08ba34760b4521e6ae32669da24c87499a9089af0eb39252038345aee8b35ddf3b3c874c43ae9e642cf58fb51f7714e55d6620dad4f4d0835600581f03f65a319aa9853533292b23075c1108ccec4281d7b890844bf2ecffc0c9a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff039751fb04eab09b4f6819f06c83291da02f36d43a184fd86ecea55c279603648603736a5f0616ae846f4875fd4a0d2e089768a3a638f5c961e32c01c9a62594815f03cb40b76edbd7e297c2979af7322be13b02a62c91171371a0f4b129a6fe0ac46b00581e02d69c937ae781a56fda12db3a46a99163262c67c7bee298b2099b051058480114ba5c7ed8400000581e020190e95a7188a385cb40db5259512843a5db37b1f39be8fa57916a09234303dd7500581e021c69d08655768c6d6f5c68428920a6479bb299704b32c6ffcc164a9cae4905466997fb4db701c400581e02a50d554de2d25e0d2f399482016e47444660beea41e7987349eae2dab84809b6e64a8ec6000000581e02f9c1cd1b38d29d53739ae9188782019f0027ff5953adb8ff4d81f767095820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219c81103528ddbe72e4ee4d9c05cc448c3210ebecee5cf879b1e2e47415609d377c50bb30304af104f9b6a92628aaa51c03103b2d0d5abb70ab9d126009ed24c11fc64bba003fbdab450a17aab3e1702e9ccdac7a5bef9be721d9b5e9cee1d22bda81f01c4070219ffff03723e8eab5dfffe88a75118615484bd1dc3cf19157019f8c7e3ac4442aab17618037586b7314b1fe24b1c0d179bc106f580d8f9a64591278b352354737855eb4c4b03a6f6f0e5153fae38a16218a9b288591acd2c238b9fe89e027945c98eff2019df031d5cfda94175ef564068513d49d8dfe182b43732151699773e1d62f005e4c32b03ee5cfc525a919ab414f89d963a8d9787e71c77a1f3d8000a553573ebb0d4646303f95b817835e68856eb38e560716bdbdbe1c7ae48dd95da65de80fe0aea57f81e0329b7203fd8ae9e68ba03f4f893b1d0b4c2bef73387e080e38eb90917f7ae5d2f0219ffff03452f59f4be3979037156c276da283fce1d900372f34ac0ffb1b605c0c33793d9034ecaf0ca3ab66ac0cb2e8798b214b82ec317498b6abca55f269e10fcf843bc4403a173f1d826eba1b7c1ad523b538fb25ab1530ac090ee51b52832d3695bf2e34303c9f5a6e17cd22226fb309596de3f3ca5d3ac35aee305c6584dd9aafc499e364b0385161eaac7f7c2f9a7627f7d02703dc0124f07bf761e4e8f89e826c889ea49c60334812a1161f4bee47afab63520b3fddedf6757b792f382d845cf764e0258a956038edbcfa356dd6145f5473909e615f4d11b746dee717377bf774151267c8b426f03e1195d7c3c5117feeca94f6520a4035ec8f96e3fe86d6b55bb7bb9b80a7d70b6033bc4aa3f26b9fe0e96dc9d34467d156d29d8fe2a576c1a0f3c82bbf495bcc10d0398c52f4f48426127f9cbfc59358cad41041e8f88568e7978cb37c6810cfb90b803a99fc07a18e9597f93fd0241e3f09651e9b6842a1ed75aecc97c522ccd559b8e037dec352d56c1ad05c8dc822a8d2f45719c82023f6977708a4333c0bf4c795d0a03912d01cb999718046e7874b562333e0fd3411f92cd8f0024f99ff0b59954ffd4035392edfa77a7ab31854440b54c6662bfa51f54af9322c8cd1ea67caafc72b40b0219ffff0219ffff030e7eca1f25dc4996ad78ef00f45b83e5f48435c75e57ad2b051954b55cc0186003d4467e5aed6b9be8da472b53710151e59f8ee6d0fb89dbe2cf0369a7c7b6e9b40348de182ea2c070654bc20284b1f8444c8c521890e389e3d3cbd18f7849e1721c0389e7a6bca3cba67abcf573d394d98e7b7a854ae30a28cb3ab57f7aa611a0356303d8389a7c55e94c40782429c1eb1f233dcd9974c17b809cf8ea4b850fc78e28ff035bc900f5ae94420e9cfa583aa6baa555aa0e5f04905905f625936adba2497a3e03062f7073a323c95a37baad565493f6bdf809ebe72b11b9e48552a1eb0738fccf030e78ca90708bcd69efb3c822d7dffa9a02d0b66aee417a5c05e441874a2307520378e0baceaebdf2b11d212f273d1f31b4ea9a0db34276bc291915166e3a76f66f03b096515a642d0422bb3e675280674692800833ba308f6175a3c3a5f511a7c9660393a8b74d9af3c2eb2ba928c3f09ff0199f44274fe1b8bbf80e6b00bd2e0bb28303cef340e78e55fe909ab1cfc7a0392b09dd51f54c3d79e6194ad8880fef0541b603b72ff83fa705f04ec1b81dd4554f64a3e33f1d4004007d23b978466f9a36b4830364f72fa1c2622a567c0d3831526e42ded6c4a6f2344d604a5dba80d6a181fd4003cffed49459425b0d2da7f272441098c41282ee65b532143924353989cde8d1ea037e0be922c58d532e35b8cb330c97cd2c028be4cc65a66628df8f663dc5dbd81b03e0d4dc333d4ffea0224bc146974cebefd76edbe6ac28c2cff2e6367b936780d103240529d170cff5d9d4c54fe762757d24d0cb8aee37f756e31b7865f8ffd59588035b6f1e49eac2a2e0f25a23ceed3427eedd124ad8117e2a0508aef9b7138515f103b52155e3c1ea78517da7f0d3844e824db72df6e5a01e1d2518ff6a02845d55660379f983383f08c8dd59cd430952e40476e95ea6a23e19dc2fa9e81a397973718003172d0eda34b35f60a6d5395fea8760c024d2ae393f58cb782f67aa2d05bd4cb00371812d80ed0ea3f04f8f2843a0b140a15a8934864fd740bc0f8881ab77875e97034f7116037000ea9230be83925d5edb323c31b48868f9679d80c98bf6092a81d30385aa49c12cdad808fbd9a2d1692cced2e17984f731edee63ce7d6649c3cdf016033330cc1dff7e05f7b6ee23c730968fd49674c20d3982e99ad6be3f62c4fe1b0b034e77ce884ffc656c434d2299effd3e211499df5c963d9121c4dcab6a153285b900581e020b1755f3810eea0ab86fb07ec9cdb847e45e49803dc72c82a7d66f3afc5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0342d061d07c0396c02cab4f74cd41f448c48c43434582c32fa002b229b105692400581e02ee713f4e03e4a0d7f2a90ae4834f72106e1e65e42f3b2ec4f517d6b367470e35fa931a006400581e0238d98e4c3b9cbcc40eef1ee76986b6877984a0e7b6956830dd2f3455af410100581e027ebfd882c0b8a8b5c05eef33dfd0345ca219820a3cd0af31450dc691f15820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0238a5bda3c70246f0914c50983e21f20a805be98e6276310dee8b8495c14b4a817c7f2a2bf142ec876b0219160b03c8e521e04254386e003f7bbd99556ba574c609b0e200d359604b0cff7866af3103237f5a097edad31f1d89d2cbaafbf83169f6eeb404e7905b712930d926270bf803ecffbdae71e859f97752b3d56e3c39565782f8bc17b669aa3ed61efbfb5161d003b5022cdda3df9bc44253c9bad5ebb86c3e3160898cf0416a98136e59dc7f7c380219ffff03d5e1b77ddebb082898e4e23a96213d93e1eb466fc26a6fde217b80525b2dc1c1032112e772020f83d545a62ceec7a1168c695f36325b9c3039812afd53d43b5bba03f0368e6ab233f0e7ce6aa4cf462e55df6998b01f54015d2079dd8ede97bb816a03c0a8c690ec681fc2e26239bf1a1047f52326a3b8315dfa726039ef901a3cd074036d35208b96ff5be93018275342e980f6bbd89ccad3d048f824f5cdd625df1ffd033d865cc0f302bd91d0e0ce07d0af72c0e2e107bb2de7538216fa025e9d83e8b103c82c48fcabdc7541207d54fffbf2cc608a0fd984551c05c188651757081fbe0c0309e04c9e6909ad7dd039762f4e30c83f7f20e0dd5d98d9b9c91dc0cc984572c2032a62254e826db842766950715f6c93927e4b49d055802d6396f613c00091623c033778ef8d23a6da68967ac5470a395c4e26d3de8eb442f511693d302f4a3cacbf0219ffff03ce89a44639931f8f1fb8962782ad52d56c979306c090d5043e04192320888e5503f17e89d8d1202c099d84a67fa39c4fb07af2de100ba4e4ec1949532582b54c2b03724e93400753ee59606ec1f83c8b3838f76180391db0df52d98161e2ac91272603f88d0b294db35749d85d22b87eb83196b397db860043c32322680880cf0ee00c0219ffff034c10e7428499cc68c17a144106276c9f98e3853d04019bdd71d1dce4948627de0398cbb06ff100e9ea192dcb248c1e4e9cd44dda37370e9d94aa039cad5158a0ba0329448797cda854cb995383c454cc03bd18db16773fd32277f142494478bd29290347654edbd0dd14ce9767fd7f8e26698abf1887a021a32fde788f85777e4511fc0352ac79c448ce0dabe812f7ecca64cc71877cea03c2e6bdc1862b0111317ceded0309d4838fbdaee3d2b9601983f34bf988a954e4dd70191b6097419f4fbdb2de7a0305fc0a8612b7634be178f043c04d2a09a49cf1c35a38ed95f0a00ec94a175a9e03fd4f3b0e00aed0a3600b47cf3c37d1346639cc3481d64d91c5f1ad05183e0b1503222d81deb8d5524a3b0c22fd391c062a6b4fe20120d7d8001594df7f40a30a2b03c427c872e8da3698341d03e18758523839bc9734c77fe9318b71a00fd88fe4c703ba05d6d7f1bdc27b1b1b679693b539c3ab82ddfe5e19cd3820b5b5fae58bb7c903694a0329d97a3524725150aeaee81b88111f6cbd455c69930e5aba72328cac4f03089f7624f96e8fca0c995c193586fda14f2c903db650a5e33442d0615792198f03456fdeb69cbdc5ee8cf767659ac0a3d29340c24e9883dc81258e5bc47923b95303103968cab266aab7adc72d3b397519cd8369a5672ad24e6187a29129ab6af9cc03218ab8ca7682c83d1475e7f1f0759f052152867e7d68c1f2830a53d4397df0e7039106af8342cdb29385e6203a744cf8b2d7c45be73c9e8e40934fd447f01d2e9403bb85facd61162706cec8a623e1e7aedd53e9cfd9424a36e1451fc65a0e9b0a0a03ead9a1b9001a905e7fe3277a0f1fe9d69b80599fbdaeaf10e3d3d648a76257b7038b01c08421329509aeedff5c9066ee96871816e14d969604d25c57e56579660e036ee0a1c36659c3617b7d501a8702368220829c35d93739d21e3345421bf6dcc803ea153ddc698dfe203eb837cbe8197d040857780da7c588e30b1548a15baa36c703489d7749b87e346d36294e354147c82a1ca4edc2faa67d09d4dd9b361827f7f403e36bb776bde52471e52f3dd89e79d89774bdfb3b2aa01a983ab08aadd202399103aa759bccec62162d7ff0634dc498bd1c313d7d76d72b66b259c468c41c01efa2036a0cbf59022ce4f6e969d99e3d740d94051ad8a978b87c2583e9f567393a12780344450ccdf32ddd7e72af7cf5f77b9e2c7350d8da306718433ec0dcb51a302fe303da1873b73735b1bb9df5db799d7f1eb07276030a05492a1b4c27d0bfb18bfb3f035578b2b8b62bfd27b77f64ce6536034a445f2dac87ee61be10ed832290b2fcee030df5c0606bdfdfd901b4fed22e61c9ec6727f7814082d2afe9284d15847d819d00581e02444a0b6889f5f82fb75bc78bdb9344d77a52cdd0a533d116ea1c4470c247039189e8014c5b00581e0241fc284d2ddf88f8a84d995fa4e7ab43e79f3fcb5a3419686caebb8fa75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219300003047886f3b6fe5b07e6d9e473c386c101ef736e0136b2ab3f9302071cfa639d1403df9b2f0033172bf2c97971205f406a1b760639f03b6cb65a915b98ada850ae0003a7b8761e4a0a413a424eb7b7e43454d108ba0dd6cb46b860d3109264e53412c003f62f2e2d8b26e24e3f8e7795c0ab586d925438a261ef741ccd49bbde3110040e00581f03eed0d18cd68078f3cd32c46f61b349d1e9bfd99aac971133f233a1a65790465af3107a400000581f0302acee3f316216e3d0f4d4e25c1bdbe66f378591ccf485481c8c6bdd1de0410103258c75af2f95fe333e2b9a6c77cdd02412c3a8282ef53cda573a0ac93eafe42e030851593c9928e051f3aa5bcd40a685aef59542c295f4e8ad9d4daeb14d581a9d0219bfff0334ab47befeb9793ac1af94bd4d12b3a640e2425c201b342127f677142da2c8b403fc8df0f993f7794f086e8ba8866b4c186e078870ed354290563c0edffe43354103551e9e50bdf28c87a7c52b0e01db90ca9062b3b526f469baeabadbedfe8ab66703676572cf53cb2c487f6ae55305597bbec0f5125f4030e38616f91fd7205da42103456ff592541f3415c325e6b6a4a7d9273f1033307cf1d4aa071f8aba515571620393493b4c3ce5a45f05039a91e7ad7eec9d705142097ae4e9624f6982ab0079750337c761b6661203f3e231f08ec824b59b817249ee0090874c3b796650a1d7d7100354814713a3598c1f605cbb6fe25f2a3417e155c7ce0a109bc6404dd33f6f120803af477dad135731a43f836d92945e5aeed877a0dfa099134520aedbda6031a9e403e6a3d6f32ed3847dac22655c257b6062d63e68bdc873625a709f0123bf85dbb903a668ae6d410dc5cf26eeafea0ce052243c0fddbba977a6e930549922f98160f8039bce880266e74df5277c90d80693d5bf42db5650b85ce1319f40411e020dd6d30219ffff0376c97e5be7d9943eb02d13407563c65e129c6f60419081ad4add6b0f45ae5c0103447018c897a7f16f94ccb519b5ab9341075c26049163fa95cb9a4b4c1875cf4b03eef00b347bee9159ef03b3f98dea785cb3faf1a5ac691216e1ab92e309acd8cd0219ffff0366e76869ded716e307de145a671e3aaebe24dc61e2c432af8b96067fca2bfbc4039bf0f61a9386c453c76ea7c2d4a7fa02ac08c5d06ec3f680ab666461058ca7c203bdd4e9d439d198bacbf1bbb15bf14a4a4b769a7f36c5b145497aef599a75fb2d037dd2aee93fe1ea3ff94c63b40bcba959a7843ac960d7c4d2d76b56f2c1f62f9803b4a3c90d3e8da4536b786dabbe5dc5ff8114e8e77be18bb739bcab2d4e89ba810351471324c2bdc2e7b7488eb62af5decae05e9c9ed3263000d5e5a9a88f873742032ecef697977a4546f8b39315038c90102e66eef8d2fecf822c008c5851f336910300050a64b13fe940c9aba2ef89bea13d1cb0638cf57dedf2af7fbd7b9e69838a03ca9fb6936f782134c1c2a44097ea765deeecf39a302e5d0e5acd117d2b37bc9603a34f90faeaa36581dd147c48fb0a03106482d89a159c0ede940ec6d02196046403924cdd3cde27858937fe7ad8d3765fb4f5e552196b749de253f15ef5422e03c4034df6cfd51220a482e1b51fa698147681cb0763c48dc493dca6a0e53e828a6960030971c27cf5cee005f08a07a3fd9d5f0d82dc29faadedbf33be7c3e4f620d89e60395a6c6e84f927cd19230821ef248b5112668e1b28c2e5625f67c07765a4fc18a0326ed123682ec2efbf9915b6eca6c081a4faa5dad8fb000ade669413a528ba70803d35862144f3fa0b63250388c1b5e299dfff81a791f68e4559f068a40c086a4c903f8a8e6a8102eecb74079b209533a0fdea5203f75adf14b8266c42550802d1f33039bfe03ee4ccc962926b9ddb5743530c2ea882bb60ffc78b690e28d2abf0124eb03e92479de02b9f2dad4089fc3daea7b1723f90777489a5cf0c8cd4c3b907386da0311c528ff4b3b4bd5e4d75dd20d6cbc1ee4014934cf671eb098968ff790e5dc3503c24c98b8760920aaa136a8a88dfeb8157ebc759e648a7d79a6a707648de18a0503becdf2ac13e3ef309aecf35741903f2a2f86e3fac86757293a24b9d122ca0669038e6b8625cba6b85e84470312cd35f72c447dd6149044a3e99664d020e05c0742038c5c8d838a371b78a0998ae621447d48a203a96b06a20825bac4581611b35f7d03ee7c9cc129e2e229dc8b7b3d7c760e65877724afe20e79855e00ffbbc86ebe8d0331ba5e930d539b9fd0eca2836a2498896b11e1902f9dc1b2c0e31f7033bedc79036dd0b3b7330bc1176ff39a63d9ebef8e57d3e696c0fb0ba1328f2d55e932c43503c6c2f8a59eb5ee4f576f08c7a56b21ef1cc14f40f0604e621b0c5bbb24c9950703e26afa7968e59f1a2a6cb0433fdc2e77ecbcbb1728cea332f77ca52a7187e15203fc098ad939cfe574f52825f13a3ab3a13e1eaf186edb9f0bce97a3d87ceadcf003dc100212fea8799faf49241ae8a274e8b0a3e5f964d75ddb6d33248d1686de0c03458f8ccd38a4dd30dc8e32b942049c5e612ecfbfed974e779a775366e1326dc000581e02989637582f15784a2c5a9cf3f904f990b3023becb3df78160f26a8caa84802a303fe4b53000000581e024a156149731f91c005a85ec36db9cca14f3d4648fa4806b1b7686aa08246640b5eece00000581e029623d5de0d84cc230fb546743607ecaba10eb2523394acd142d9660452480378f041f7c337bf00581e0299c4b62c62c42b72e1b4c32934c34a120d4ee536a0ec2db747b1e2607b480143ce335aeb457e02190a2903743de27d7ccd837bea37c4e6f25dfa289cfe57471eb1e77d4583eaa15dc815b100581f0301c92d8792ed8887b6b4d29aad8a5b5cbd32340cc4026a1ecdc3eeb804905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff037f368b9dafd3380724f39b4cfffb2060ed8613e9c5746f82ae4d6c2fc2aa64d9032897a4622618712ece207434974a93ab84620ca12ef86a98c091fde7519cbd4c03c027c63714622fb802e5271a671d8a4a5bf9b6071ef6081e5f261bca793b213e03e18b4fbe89f9ded76d56a335c4a70cca2d25de968034adc1179d2b95ecefb458038b5398692336bb9daacc7aa1fe37b508e7b76e1c5d12280efdb10e450131b2370371f27ef7d766b83b903a0aaa7f4525bd978c1db6f2d2d6eb0acd0649c12ae79f038422987979076c09f641b528da101033a818f83c85141af6422489ca1b3480e603d6270bc17f99014d592fddea015d08d845c9ddc5c0f43472a21777c134c5f11b035f8363d1a222a52c433f13b316ecd52ccd11d7cc0e2a3a409e7030dcdbbdc80603c4b3d663137fc0794681de90f2d79810888693fb1c3bdd9528ba4a3d05c177a30347556f82b9d6110682fe84919791c3ec263c48cf11f3198ecc2c8a2863547ef80331c87048aa1042840638c085d8ee215dcae5b5cdced302a3811123ea7e0c421c0219ffff034538515d84a701d82422592ec353ce587111010cfc8e9c4c34642d3a6531ab8c03d8e3f0067d58464301b32e7ed5e26cdac65ea1e52da7783325a684c7dc3f54c30219ffff03ca281a8899dd059e872c3e059c0e80cfe0462023d07b24742536b81d753280100219ffff03d280cb2df8f6efdfa7cf72b71f1c87c784c7d868d976be200d215db13a01a5850219ffff030fe8a8546334fb6bf4c9c8fd7dcc2116fa10159f5fa3666ef8eb298730fc4ec30310f7dccdcb19c3b644f6545f02b8e8ae9b08fbe9d75884c5932067ebdd81ac26032a0fcb746ad0938e68f2a49532110d59304bc2cb113196dee16af64842b528a003fe229d37ad1df8f94c963d2f143a5b9356c9e19717dd985d72bd85faff9d4d140316e6a5af66120c600b375fb059213401a200a39d0a89a82009f115e3b45f67b60352fd6a602c01ba338a66b3c5c200a104aad011a5edb99ca532d99d2ed592c7a403fa6ca7ce7ca620a89588b48f0ef4aafbf305f2c5640ef3510ab00243387ac3160370856d0fb3a21e52e781d6486201e961d21ccdb22b2546270258d4210faead6403f2d7a5db7bd4eef3b74c4f798d68e31991e7fa11fa48a30262aff49b6174bb1b038c2c095716fc85f4fb1d0e61bbf2a3c4d604f4549ac4a5bd7fe2fe26652621590319ef1320d5fc0cffae645d868a8fafe73d8a4a53f439f607ec78c0f7af39eb3a039b4c55c04ed41d9b224be23cc444de9eb208a36b563a211d491c5c892213787903540d46ae46173ea630c6f82db9edcc88a52c492f1dc15a5f2d2786e779e5ebde03621aedb40285d0e5bc06df630aee8b133cf80356118d5c9d9387cb9afcfe5c4203780681f4a2ee8998fe104f625103bdfb0d814afe55c169c4ebd7b1bd582113be03583d52c67948041d8a168bab6da6a65832cb72ef8e191ea1e0ab14570fb6bccb03082be52318d9568014f97cab7711fab7ac4f449cd6f26ae462b10e793fe73a2803c9b447491af2a94f109262333ba2016b36f7fedc5adeb463bc803296e5ebc9fd039e48f992428ab6ba4bb51174e4200b1b21b83f2f2d7a3a62e22850c4af76a4c10314a2dc9f7532faa7db6c9bca99db4640fe87435d847d4b9ca2bc5657dd8b92460302305217a79074960b530c7d9b7be3eda7dbb71ba71eb99afe639820b87a2972035ab8d33a18a33b60e6bf53277a555d55dc58af87533b813db4590cc49faec30a03b23e7b2e577516c993b2967e73679a9f13cfcff603844012e45a6e9b35257f5103bcb495402a5b2fce7af82cc89ff807e04659996f619a64f33fd960f4c27b5a510363e0d8cc5d2cc3e6534e91b4687d891aa8e5a5b8f5cee8bab0270300f2c100f303fadb149c5f8ba398adb72fc511563d69101c0c389d5698a21aa400368897bad4037b05b157e19799c402e574f4152c3ad5ca31d12c9c23c685813ae7b079e8211900581f03f49afda713f2c9b2f12b00ca0e2e14b5ccec6cf2d5fb20e144fa41935ba04701c6bf5263400003031541a1326389bbd823f71c4b951f1ea1d8c098c2194b48891491a433490db70396c3798a60e382dfb06c21cf529ee1bb87fca3731b594dfa3f601ba3f610541d00581e0234358326898eec940414184f7fdee09468cd3a4dee696bb0fdafc4ef1d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e025be4cdc8a7af85cd1b9087d4f25ae1fe20c4d676463b4f9d4a9cf0d7a65820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02dc36daf836d27b441eca28c5b50686ec94def5bdc7e4e8ca585e68294d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02884027633f74814507d17a61bb63ff92782389f2803d5d3b8c96b859c1490102c9cef940297fb10219840c00581f03b1614e759ad1c40f14c1c4186718bf5be706591493df59a59613225fbff041030316a6bb499e7a259cd268d31822408d7e530fcad01afe1875cabbdc1b3471434f0219ffff0311666ec7b4d9a24d62288f314d697e1efbd2f3bd38af3eb11e07ff11e7263542032eed9064590a074e47f580af042f94995784b9711f3be147bd3e3000653a5f2303416c08bdee27d9bfe66e97e979e9d008df58155dca512278719701f453557e9903ea9ea8d33c174a726bf58e44a0c3d9d05bde350feea94af5445fb569eaab5ddb03c9615654eed06d8c1357f93f8688ce1d8537f189085a254536005630e407678303647b292f93404f20071cea463ff70ef4685bf783c175c03b4a691eab9765e7c503cb5357c69dbae02c696b2f838c51db4b3085b6e2eef83d89bca324ce9c63b477039885c0bab0dee8e855ad3308d2f2cd53ab4d4dbb7894491b451299b4d2d1ea4903ab1ab296a299a6f0f70d0060f74ac5cfa1dfa4b38373002239116ab561a8ed0903a22f62598f39723f47ca758fcd6759d0022b0cd8abcc8a5a0f656abf301f651603752beb91e1536328bfbbeee5cc9f4f4799103a730586e4965db08e0966dbbc58031680fcab6881e57943c2a80bb3220130b289265215cb59deaefee015e381322903c50c8ab8354d6ebad15b97ca494a2c5e9caf4f684cf12cb79cf7db701452a3da0219ffff032abd64d71b2148c7f28aef5e91398d96f99fd0ad7c2b59e088424df2fda6a68d0219ffff031b5b7a47beddf3734eac8dde141ec8051fe7223922779ee24f358bbc1185f3a003261a363a052dd20ff0055ec24819d25b7f8a11de20b5a8d44c7521b15b36400d03b6ffbd0508863780ee18689620d00286c68408e19b630f3ca8b9df81b403cf14035a8da803ef7c692c28c7ad60ea783c14ded90116bbf5eec6308190a1e3c66b8703b2d2b4bb90d86e24c64324f6f5038840602f5430ad3d9d5665f540e2b5962a2003ca668f2a34bb0564148ad761fc26e4930abc704379c98c4b63e61276ea8c48b7031f9fc7a00ad3a938e92682a27498cb0989ec6d2e60f53fead6c60257fa285c6b033e4a1121003fc287610e2db4c905ec357c5af5d3f6ba7d8f9321445bcad10133034874c2cf1f3e163c832e696252dad69a0382431d4536d58711a7da162a1d5b450319607b4f26829f603811a93d6133cbfc965cad3c00d25351609a2704f712ea3803ae6e517751e01eef8bf097a65d182cf23717b0301aa2b97f4fcbb46118971b6403d60c24cfe90ad24dc0d39b9abd9e380fe9c841883cad4cccec5319b86bf3518c03a16c1ffe8a6c750846b3ca0d3e871db7248c3a0a65f4809f1d0b0c546b1cb8df03346616f34002d31fcf9d33992154fc4d7c95c008ba3a704519f137669be09f0e0303ba1c35fd4e725ec026e7b3ff037dd86d71fd4f00f3504d8ed26123dcd4d5d603a37500082be98a760a095fd8861f7af20d85db7e76eb409f5d59f6562879312403357cd06637449bdb2e0799f1f3fa1b9dd6241f08ce9736b38c49fe8a4c24402103acf676d3b4b98ed4423e79a9cbacabf7d1ed0e0d8be85c2f50f7031856b2d4190379dc3da3666a1ce2a4cebf53febaae6e945917f27804a57d3ecb89c05134072803d678a032d2979218cfd22a9e71fe4228ba3cee9dbddf6677ca835f882395e433036e18cb4f17b3be608250ca9306fb57895510d32d4cd7c30fc6dd1d4e535218fb0312bb8f9d1ac639fd2e987d8f00e2b0eac49647faa017b335c2422d903bf45c9303dc373d4bfb706d2fdbf85d28746544cc28ada511c9853c9d4abef3a4a9593760035559f4618917001f247d99e0afee641cf15f52ee0b77f5afcc8816ebcd202c46032915960e57fc7c219914e055ab575a06f32a1845fe0e585fa4f97333f4117f4e039c5c6bba654df124b3f67c19e4c891ba0f30475cdfb7900441eef37857ecf4f203982d7bd51270de0f369cf14ea8632ea2e5cd73da3479639ed634a75d805595590300aa1bc6d68f9336ba7ef6dd8c7718849de35b115baae67147c204393d52b54403115d5e23cc652260a57890216aab0ab5f241b759f692a09876b93a6e75778b2f03bcbd8e28eff0ed9a29207ab48a09a3f82273a6374abfc845892e9bb0026ea02d03e810546f46c8df75ad2b35433cd41b5f285b3bb8b0a87c2428774c2ed52a5d530329738248c281249a4e1696a99a446f7f66a8844e6d6f61beff6636261d2267d200581f033c775f189f94ecec0125247dd6c0e8ba211578497e9ae56d2b4291666f805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03b93ce55f8c9fe5e76d7c4f9674d40f121d9db2cd5134d84603f31ce1c1382cd0031e821cee932c765159a0ad69e127db97d9fd62579ea70749068b1d7efc37421f00581e02a1a02ed0ee67599d9eb8e1a76afb67d3fb57f11d424204ffcd1dd01ba3490198e0d69b9f22712000581e02d05a8b1d2650b30def0fc7d35bdb7a8e5c8aca1bd2743c14eb6116153a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02ff2aee7f3f17585d554d1119e6be784d15f8c5306d77cebe6a2f71b42d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219440903cb2da7fbbc802fb12dc16bbe694b58208aa70a6290d28633755e7bbddf2497bd03db74cb50084008db132d285fb663d4d59d5afb67dbceb5b286454457a7ea048d0369c07b8b77cf79ffd35e7fac24532c95d66e18767444fffcbc97dd834e75d0c5038e7a9b789fcbe470d1e8e50ff16bb3a38260ea5c85be2cd7b656345e8aba91760219ffff0379922386df773c7c226f4657aafdea4790cb8d02e3fece628f96d8b9aec18ef903eda15e27846f95cf3f8db86da108cbdd5d07314c64609aa163802ce6e01ec6bf03f2427c717cc697fcf9710c4e919dc4130cdb10221ad800028e2023c3be7b374b03e6b17d2ace943a67c54e39a34ddeb4711bf7087f422cf42682e086fb430602fe03218f8712be618ff5bfe1bf6bf4033ed43bc105261da72896ff846469c68d2aff031e00a27bbcb79d6dcc36e4f3f4fef6129f08556d024e84e6a4cf3fdafd4b0b00034aa842cd551fedb87f990254af63138ee81a2d7bf79848ef9a8fb475617e1af403e5dcfe42f5ea7d2eda81cc5912df142261e7063085760a4caa8b64417b4261400376b3e7d621eb3f340370c86c931e5651969799ee0c844fcafee06c2c0f27a99f03090e5c87ddab8bca031a70b6dab343ef038b794f4ee472af99044a7de22a4e020219ffff0380b799bf7bcf5c5a56e27744f18460d8f68a94b4db113e09425a0fc84c46efac03edfadccdae5de469f0127a070948e0f4b808714a0d298324c64bb178fb7e170e03411f630a6476a5bc4c94f17cf95e6aa62a1a9c4dc96e2c5b4095c9b8f57b90b2039d36e4427dc66f3929a48c495f2761a972cc3e2d153f02fabff806f8fffeb7bd03289e220c2bbadc2ff296ce9fe8606fb53f1224ebe2a6a222eb57f2e5eacaf2220376dc2414ecbdebc9761f2c09d598620aed8a3a49f60b154dc5844f94cf6999220384e81fefe30c068f4b06db2ceed9f5b2c5d0ab63bc2a69b2c622eda97168c8e90219ffff03dd1c98ef2198f1928ede82794640fbf5444592a52501b6a8eefb51c7d0d9476a030226e8d54649047172ab8c428c7e64828f377ead094c4c35606a16b085a2aae403190b8ea1c6083216ee88fa60038ad952ebf07b52f6840e37f9d8cd9d4b8e1fca0219ffff0219ffff05581d02a65bd257638cf8cf09b8238888947cc3c0bea2aa2cc3f1c4ac7a30020f014b0298696f34f68579de79b8190c34021920020219702b03c07c4048481c07b118748b2a30e851cf5c6c87af6212257f8845eb9ce07a02e403012fab999f402d6b302a07d3f7973ee8c357d5db8c7991903bd54d54d507cc23035923155adc8cd3aceaf27c07858d290a3b85fc378fdd98e9f4f7f70d157f28ba03c55b2981a6fe08260cb6a076c76858d56aafdf255d0a12a2c50abe35d468c7e7037975ea5712162b9b7339943572a7180adc20238024a429eb2e0928128e39556d033909e6c87be78bf54588e521ebdded1d467e8104d18958f7dd079010ee22155703867f6119f66c88787520dc8899d07d0e49598fa8dde1f33e611871eff6cd04960219ffff033307aa27831bf49ba78f1d47a092c180664e709902579fa9b13f147523cb8d0b0219ffff0329d6f7d3c1260b8be12e0e506b6f090a20038b4006ff80babc6c798e50891df5035661d9261f141e5dc102e1559af5624bc8da056a4ee8ca15de268b38511b8f9a03c26d4fc6efabc1fa16b6b91e18f6ad576e156cc6506af88d5858488a5d4546eb0346df579e8e01b9f5eabcf5a8fb9ab122c02677630ebb8b718ce561efff51cf770375030fc96c9b2aaac9c3270ba8b807966d58e1033d6bc3636bdb330f148cd22e0395ca7850aa3c51492680ccc0d0847a4ef39d48df817e4e66b6fd64c35ca4485a0219ffff03a5bcfe41c7428806ed77b1efb5d5e9c18aa3b16b41051c6585d22754306ac60803a18c75fc998dfafb0af7b8409b8989895b612689bc80750abe006e146a10e9db03aaa6c2fca75e77bfe1fafe1fc54b24d2f32c464b8260749e6121cdf88cf1c3c90396d9b009db8f157a75ba6011a1145eec1c3900b72a97fb264dc3c8cb5828cc3d039466110148452b275836ade645ef6d7398807275b73169e11571d62779e13f4d035db768ebaf597cfd7bd8a21f279a6ab0ddb1d79abef9d2cd5dbfdd8bd597548d0309f8dd5226acced6594f0feda8f7d79e24af43c0dc4a088564f008694087a74f039b703368dffd0ba0e8b112663607b514a63fdd3a1f0d105834477d50dfdb8fd6034d4727bbb7f2b95b40b31a7c1c6fe51b2dc8b0834fd59be75c643de7cd0495ff03f75190a132dbcae52a69198c5ea3a52631c88d14b704f28bf34f85e04ad237fd035be287a3d4bada419880abe3fc2d6aee6288789d25cea9da54098016e7f3dc9503ef79004c4d9ca4e23221d091458cf5a5b5eafae97be0c4b904ae613dbdb55646038df3a37c23b20c361ad11111e6bc4aa3cb8ad974fd9b77fba1a39c990baaeb5c035135009419e3a13e143c19bfc490a255455aed77315a8bb0b98c99a588d151d603d359e43b49cd96a159c13d57611569b412da145f89078535bf8cf8acfe7e6b9a037e195e8b61bae5cc764fc4cdd56b0137107a68f85861552c3849eff71995d517034eeca52c44bb30073517d9ff7f0c9faef0b9840579902dc11b0902d72c5fd65a0375b54c79feb831d9b903ad8f33811696a58624a5b1247b9de7dba768edec029803e761672d4c737a4718e127a35f06c3716c5d046c3a9269bb7c3f0a7429ee6351036073e66082d55344b0cd7dc5295904aedb92741c871c7a48ff9ba1225f2919b90325ac81d30cf8dfec5e9a60efef396ea08e6a227f7a27b6b144dcf054de6a67fa03dcadd588932adc02487f1a7db00ea20fd8f1ff1f73fcac6f275e72cc02a14e4903f94c62cba859f40e88ddfebc534469fcc9268ccdfc1b0f4e8867f465c15cb275034affd5b8893c4c982311e765f4b66e5ecb10dec9688a35f72608a0a9a7314daa03880b691e05cf3b509e73cde597836b4efbbf50db66c181fb3aff462598b7f09403465b1bed36a6f3251654b07a849669804d89c57ff72554f74cc79f29d4289b9303e02e148f5fae0c5e182164ffe8732af56116fa8b6336877c000b582d132074fa035c6655fa8b9a6eb2844d56a5a44f7cd7ae5f99852cc703237c6b6ad2b9b7f30f03c7325c09fed19bef6d3a6e2bfaf4a3f169fe9cead20b3412b3c05d456b31cfd503bc954d1330207d8c78832ea09360d6fca70fd6db0d681150668b32168ed0208b03152ff072d8504c97dc03597d0c652095e31c7e4202feecbae04ddb5f6949749403f49e4e2ecf328dc6abedf8cbc4cb1f4655904a4a19c6ef9265bfd679715942b60336a6a0ef6941cb8efaef36406ce7da8803a10a26b79eb26a88bec6e9484f855005581e03e341696f2e21f0265fb4839aea9f086b67e24aacd3d4ad52db160b65c004010399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe9080345720dbf55efdef2be7646d2bcbd982af46c74b00673e3b5f5e9a05b70953e2205581e030ed8e57839eecc762fbdc4e133e713cb70182581c6138cfe1dea30219007011bffffffffffffffff05581e036dcb519c543aec9e062550eccb5820c2f13f14d2b6469e0faaa5473a40040403be91ab156f46d8f63aa120c0159d62da722a9bd140d609fa545ed9153472e5a60386e7ed7cea0c050951642c0e1709dd3a1e04a2f49cb6ab4384f0ccd25ddbcac305581d021cb7d6e9d36379624d5d0eb7027b15708d7895aeca46f00bef6a5489040104592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032032e2bc0c0ff22609eac8f10e1c8736f3e780dcb85055451e7ac674e2667ce4b570058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56304906f6180655a4d56db600582103d103c921082be56be80e3c7b242971915c81ba1e7b915f5dc741cbdf1dca1f204906f6180655a4d569ce00582103e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af04e6bada8611f246bada8611f246ba00058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b58206fafdcaee763207d9bd1f2e8f7a89d0b0532be941fd4eb119395150bd4e3ab02005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8500559696969696969696969696969696802184400582103f6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70410100582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5db7000000000000f9ccd8a1c5080000000000000031abb7034e5b7ec2480058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f543fc97c421de5d23e59b42d048857b149e2f1c08d0218480219b44d05581d02c0bc20787361f6ac4fd9486dc38af4ecb3fb457777017fb7002fbf960701192c1d05581d0250e5b5f0ea50403555440ad1bd68b1eaf3c8e7d305ddb372076cb5f704020219032002197c3c0219ffff035d0d9e3964d36bc3dbef523c621ed976f4419710bcf71f9d30aa1c0ea3a029aa030756f1ff95bca7dd224e99d9231afc7c0efc32a1edca3d6aa267d3619de7874a038f69334f0c073177a56a82c79a84643ffe6ce6de4dc79cafd37e90746a4f89f10313747ddcc0635974479016dcdeec1d75f82bc49e1a3181a0905ed2fbd2c6c2f303647a1638073e9946338f8b7d497dcdff9d6db9000c5a7824d50939de27f8d4cd0327eb5d06713e7fb1301b4248c281b4377561fb8357eae36d9b928d166426f319037c22951ff6a085d2c1e40d00727405e43a7a3deb4606bb1e6171843ce5f20f280382143b5b693918a1d4bf69322ab81b5b1a18d1065ccc9786ffee88f97ac0ba020375e35076e429790ef60e031d542e086c3110ff585ff26befcc8adccd2fd603ae035d5b48f87405999bd18b07586ad303129455e3d86c05235cc94c7c5068f6ddef0338c70865417b6187402e6f50f275681883730a557daa20f6563bad6f1bd3872a0372f7dd1cff9ae46d5b11196de87aa03f080dd599181122953b5140f619edfc100349d0beeb41e4041818b137c1392310932402e947a8cbbe710c739219a340c2f10219ffff030b9722a74e2a867c3dffb867ef606931e9253fd146847767c8fb44d5e7f62b8003aa1d61b80afe80ea95628c8045edb7d7af97c42507b949540db3d1edbd8700b70219ffff032bc1158f7f71ea4a961a2f8277d44309359c9659a2e4df8625851b797325b505039aa4ec189098b1243fa1aabea1dc68a1d0b4d391b2d4fabb7ef55c53a7317eb703acad1f62c17b4b4cf31f821a3be50f213dc2a88517eb2308f68a8541a876d9e303810556741db793f827f65715d5c56a90bd9dc2a9aa9eb2066e1bec36e3c9011a0389eca74a790ea70cbc90eb8cf44af9ff6323ffd498f4cb982704bd8f298e6b4603fcea9d738e60f4c2359d60bc8238574839883421cf3e79e91cade51d75d47b6503a627267375d88f30acd054858b1c6294bf1974d9f15b0bf38795aa3f3934c79d0219ffff03ca557fca2dad49b7d03c7d27be59625a0b3973f337c37b242e044cc7c66b074903e6669733d359ec1a15a3a9233135231088cd7180e905514f1604a98a8cd6190c03e9ea82dde2ca0125fc588cdf94d3c6bd8dd006cd593fa54ccbe400851044622403249ae75cf785268a5fb8f9ecfb322a0bd953b7ff38bff69faed71c2a0cd7fe8b03abe0cdf609d24abc82a82692a77a2f8f263d4c9d8b3ed6a0dbf7bf105bedca8703bac44e3d5013dbbd1b38ce11c0e21c13ded49f8bb05035aaebe630a8b21c73e203fe7e83bcdaf59747451ea22babfa068e736b4a43ed05b769ece71e5cf86d49ab03a04323c0ff06685a0ee90b93ebda57acd57f68791123029a3d9ef4e41ecb79e3034f3793764d92fb9e77f1ac1b72a13e603132344df40f49bd7604a139dab7be7d03c2bfe6be9a79bc53382b4962cebac78b6c9159842276a2f6cbb624c6327a9cfe03f9cd7170fac4b901cf445b1854bb5b8ed64b92c40bb79f27042bcf65305577e2031b63d31c234bc78af50ec6c148a050e8a01e6f9c6590df81f44acc266ad37e9703c03f8c9e069db39691d9dc89cc73bd4661b0832784f6bb9e64fd620bf37a605803e91e4ea2cff68a4376c0c3dbc13806985ecf720d2edb39fb378968a89ff50d2a0363cbd9284812aefb3c118748258c4e5b8d2412a5842dc4e3c8aa8fcf48fcca9e039983cc26da70ad5562ebbec7fa168fc2a3f93df40fec413e4a4b454bf938a23303867be31f40a2422d9dbca65b8ccd16016218ad92c868b262687075c49859194d03e3939497b2ccbe2eb74d6b6fd65947ab94a9301b906722a6703a8d788c9fb6f203e446d4825322b5bc4b0a95be7b8807d2ca16e26e108a268e6c0eb0e4788692fb035f6e141213fba90ddaab795751e337172e426693c5ce51e1f4bd7d2644cac4370346d4cdec9efb7ed27c2bfd352f95001f32c898fda8db3a7c5e707c3a10a978cd05581e037ae9a99811adefc0ae382deae5f30b20d2f7ec4a1856815787c33bd7800c06470fc9298c7d808805581e037869ce711e23ddbd63d6b80a46e51e7b7534dd6f3606f171cc984dfe300c0247012394cec18a6805581e039c3d9f69e6867a9e608bbd577d8346e3bc3e82f57a83d1cc98b47cd2500c074906abec6aceea863e180355b104bd08e30d7dceba4da3686f5d3bfebd247a730b9dbc8f6b6936bd465dcb05581e039386ce638977061af0cba992c78b879c568f5a670d18c664390740fc000c0347315611078dfa00035412b5e7769b59f4b0f18fecbe4750b50946ede491ae96d0c5e1a7c481f954a803ca5db9096f8d67156e22aebf0a3da992256f24b9a5423997591242c3c85f11d9031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e0394b994bf80acfe1624da0252f8fa8a76efdbfec9627cc14f77f926b44007011bffffffffffffffff031e0af1581f1af38760943fa335a6f3b53a6f7a0f4e1f24f34d32c3894a123a6f02191be603545e2a2d68de004932b2ed370c824ab341969147581e0cb4bdbd52cafab70cfe03c01a0ef6ce77a4f600c0cf43dbb9c27f3f3b8177641dace1dcc2f0a3c7309a9b03da1886bc071722cb1c5f20b303fa47b5978ef7556903e306c2fc17d0b6d2d9fc03397d494f9db90d770ada08611b749733771390865c217a126a2d2a0bf7485de7036c95a3e7476f2a035d48d91e5de6bbd95eb2dfc1543169484c08bd65daa79a2e03d00fbf2612f099c19b3d368e5692d759702dafc6da91a936ec6bf840f85534b6038c34b36133f0c68b4ae36c81dc220f2a394ed536ca501d2acd49702a67aee7780219ffff03b0752d79677b7f3541997389cf260d4d8cf840d1f788b89dda157780dea902b00391d4f247e953a215186c85c622b5739ec2d1e23bac8ec5298047479eac5fa5b003f32865c30868fa04664852523457bc67ff25a4a9c733ebd64095be9ef316b2db033a5b5e2cbf1629e3b050e4c21bfc71297d46c2c26922273e9a41e8deac7049fa0339c817b1ec2a9fda9d6949dcd5ae294184de833d3e0822e8cb55dd495021a5d60322426633b759ab9b29247f4fc42ccb7df1038cd84ad36cdfcd4dfa738f5aa33b039109569e6a3e90b707eb8f1f63b37ec1fe5d7207fb974667a47c0cb3af45ea5f03a8e93fd434301fc659542a4f138ba094347b8f61cc2866b063d5108eb548120e0219ffff030ca50f469ee0dce4d2aee481fc73f97198339d342b081bf56defc8424561bbb303dd5853f1dc902d02723730739d6dc612f1c9b9323a252056bfd3386027466acc036c18c063461ef377ebdeab11eee9e81c14a938e279b6a9e3305a9bc4490db86403e02a3f2b0b1f6396d9db471fd1118db67f188dbbb556baa1abe25742e159121d0375d268504719ba9289c1e2b058762df81c4bfb9c38dab6ea0c0ed5ee920076d5035907cda9017339251184c74796a30cd9ecdf78603fcf776f949dee54ead1b0410384363484438975ea977bc3bfcca5fd5993b5b8554432a2858416e28239b7723d03eb4a16982eec7c420d55decba8ec9910a72a3b0e111edf62544cc7cb75b4ffc303849a4c93a28f7b1e27a7104810a14bc516ba121ec771818a0e69cf8ddec1dfb903a0bf00e647f53c859741f1964428ef366dd5f16deb8034ab370ba49dfa15998a03da8e84f2ad1144887d4bbd6c421192209a0adfe17fa80134a8bb3eab6f3e7d580219ffff03602a20d29ef2782a2bf867d6e2bb20b22cee8f60e10b8928bba154d2c2e58ea60381d0af660f11c3e06701dbb3d5ad3e38a2f1a7740ce6a890410dcfbe529ed1b6033eca31a0c398b95cd4bbdeb940310fb888dcbb4f8956733dfdd0167ceba429040357cdaaf322a6a0603cc218bf07dad32c5e91f642a52cce0f7ea9e7e053543b6a03a5806e2e341d46e0319def6816ac1a6a08e8a030778bf243bf41ebc67db74f7903a0d97b555f4126f00fe703772d9ece6f423929782ba78e62f6d17af13e8ae06a038d760c2a8e02cb0891a1a0c0856ad7d628b8999c0a89a5d196de8c8e08f4aea20388f78705db1d5a4bc80b6eb7da19271256b7ce93244a45a7b82e44a07601304903407af7de64dfd75d3c57414306359d3e5b4d462e50119242b3dabd59b4aa72170304a71ea1e29ab9a0e854b06750fcc3ca708c1ab6c84a88c9c07af21a9e4d927c0397b2225fe9446ce98e48ef2209eb69a7bacba10cec3fd49300216423ff64941e0344932928c385722aa85a1786d5aef4d4d2e064232ddb20e3d42b9969eab4b2b0031e0f82412aa7db6c7aa0635e29c56c75edf6e4be40c5fcf0b537500b7c0622c7037bb3f91dbbf362e761557689ef38322b175b62d6911c1d8103c94d3547dede9f030c0387cc2434a126ea23376d7d784c76fef4aef89d9a089d7a6d1f8a17bb4d4d03fa2f55935114745ab03b7dc0c50b68e47e0bcd6405802660ae2522334ba393f303e3e48e0b95a7a4fed210f7e677f8c77608f16ef1543e06ede97799490b850759033bf410bec7b93637c3c1f7f632c19d7b88bb4f7d5bdb4c76ce71dee7672fb490031f32ea670ae11d3881ce4e4314418603162ffd631c1e771b8ee6a5c1889e0c2803ff7ffda5cfc049aefee38e06cdd7990ec8c97c6979d4ba7ac3f3ffc305ad9bb803f4c3bafa309ced20c4b08e64e8bea460005aee46c2571e984fd5d090deb48274032d89fcef7b5d0de12c1d32c433dd23cbf25ca8b967bde5c5f9ee017c01f3d232036ba356ea767fcc6681ad16515d81105bb6adc4ee57f0a2c4529f1ba57d4490c6033d94456a1d399e7e37db152170bed0c925ad683be4154db3e443b5d1ddb1442c0317a9df4b1d2c9a2debbfd2ac89e7d4a2ce812f2f620c7b45ac75971ae2bf3430038447d7fb0c4348f7b8775e6ef7e0b7ef33ad6b9aaadb213fe92c690d15049a6403dd25af5361374fbb66af2d757765f2871b955c2842b642c592fc342982cfb54a03cc85f35922af44106281945c079eb88cefe80b140b70fde8fef30dbf09da0add0357970dc6f9027617f9d979c765ad4221cdbb99339da9ce9a4dba428f56d9722a03abf01bd0313c6cf67f9689212072ee23babd3bde02051dacd0e01dfce7c0b93f0366a36b048ca74ca12ff27be789f8dee12dc5b287f6a3b7db6e13648c62281c8803868c1502cbc91d67b6d9607f12d7abb405c8042c42e65ca98538a6b2d0afe2ec03fefcd37966fea4caebaf932f7c34e9ac97f27f91bc8f9b5d14b917872ecf409803e670a6137204b619b225b22d3f0696cb24659ac07053e8815d076e0211055653038203a20c4ab39e4c3cc1e7f6f44c25b7b175affcbd906d063194a074462317960358c24868bbcfb23d70826024cb92a77cbda555c0c4fe601e5882a7494186e9e705581e03e089e723364bbe72b02056e96d7421350eb6a8fdb15c0635db387a62000c01471e955df074c000030604e5dc2f6d327ad254e208eda0d4fc3127572340afdc51a076ad4981d74f350318ecc1947b16530d920881075a41292e46352a8abd1ff339ea1abff5c24bbb2b05581e031f7a2db81f7ada9d8e21de261ca3a8f326ba0ecae1e204d61321ace0f0040205581d02de2a2ab88bdf26e26ba840044af0fb44d84014636904aa0c92b8da9c0c184348012054681ec952cf05581d029dffa520cccd90134bcb1d44096c98608d28f421e92738f2839924db0c1047010a96800f05d80219a00005581e0383227a46c6dd0624f34f667e1792744495147e2f789716dd47918292f00c034681c82e2f20f805581e03988a75bed886c713d49a5d063a31abf8c57c9a8c4a2ac6a9596667e6b00c0246589abf26c93003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03507eccd422cf00e2440ad276d3c2d1346248244a36630dd6fa8092b73007011bffffffffffffffff0342df14dc567582fc706a3a3c17f3368ebc561b297ee4bf9456dba3830b99c97c034bb057e5e99169693dcf3feefe1beaabab2ccd8b33b8fcdf49590f5d2ced553505581e0315dfb0514a8156d925fbe9fc747cc2967a181f25962e9985668f7de3e007011bffffffffffffffff03e526d077eb2147dd895071639c8a2f91ac53ed2b58cf3030dcd3518e316718270219c7f503c757a0e4784297dbebdfb599144f6b7b9c936a0f570759578f583b1acb00b94203aa80b057138b5a7159f69b914bf11a204eefca36bf26afefbb5c0547d53469e1037cd9b04db6208eb59e9e7bd8ae16671258ef7ac6bcb8d76ae1d36247348606ce03fc54ba16908d824b1c4322fed4175364dd5d294172071def0ce508f6496dab24039093b0a1fabc45e8879000f2e98d94a154edb91a3b860c3c44411834985734b803bb144187074781854a5d9516e8f08366e5fb9edf467e65464e17af726d491bb80337274178ad86252fde7161f9b17ffa2e2b63b531d258e28007dd0702c0376f87030dbd3eae2eee1b7322caab0a1130992cb7e73cf6277684d4ee818bf560564f58033b94b2ae4260df2889508b343b93a5d12972840a654c650e544ee835aabf20df03464f6921008dec005e418c5b99170d94e7ecabe2d28c5bb6fad9c26502b64f77037f088fbb92b1d6078f188498edbab71d78daa780aa6273aef4f309763c5f89c80219ffff0341d8d1a5d623959d7cdb24e09a2cd3cfe478c278c6997fd60bf08bbbf56f5941031012aae42d6c397eb0b686f07e2de434aad2e871767c693982f43c9f98986bfd0219ffff035ea060e063a5b77c65de3c0e0a528376a336aeb9ee387149b85e5683e499645c03571a901cee5806b550077e60a341cceef81409210efe60a56d69fd9cfc7dd3fa03411fb6ee31c1196ab62bcb15ee4d02a1050e32e28ec6903be0e29eff483ec90203e9ba4e9fffb7b2ccf8af2a2ea828c82531a1f727aa1880fe55adef968de4d1350219ffff03fd03899f8a4777d274bd83316b063121601ddfbd249be704ea5904155c1e9f4a03d71eac27ab4367e62e550e01a5051bd25abb37e7bb7cb65415447329c48d890d03abd47a3bcd3b913f006b68558db8ef0fb0d98746d8279ebf4cf95463c8c13dc803889013156456093a60c8e63b4fd5fb65777e392b355dd2a9a25f8b0b2e8e90830305cf69ffb4dbf188a49710fc24673f7a85b338f26ef8238d03d2869c4087e4910219ffff03b85b4327f140242b662cf82e50406a88d182050eabe16300463d5ba2550e5bff036d20dc697c3e5ae6af7d9bd8b900434ba42c20a82f0323eb20e32ccf9619c69e03d329dd7bdc409e457a0c3ef2ad74f62f5527b60a2bcbc73ff245f932c0a466bd03ddf0ee6f0cfbf7af8ceee05d43c2e280eec6edf23a749c1165bef659b899b26b0366ddac25dd38e0ca5110716ed16fa89115e86cb38517452de72f43482de7dd08032d411b7232b470baea871f98590a5497105a013ae23b3c60882acafbc9fcee1503dd6a40f44b96568d9f4d729709caa3914b98a3f83153b5c5e138c8f54af6a07803d8e8760bf819b998384b492a954ad48672b7dd3c496a1e6fe55f293c9d895f2f0332dfe3b28715997189d7dc3815b79a87a8f01d28601c92a8af48622d09c0e49c03d0c6a566c85f3e5341129949acecbaa13f60df4dc319447b52362e5575ad057803f73b498f35d7c6e8cac0e2af805bbb0f3f4ef5aeeef17beb0de96d4c94884b650356ff64783acf8e065b611097f08b74a80df0e186b054979826630850efc51173030f9a88a5c264d4b0e87086e20b8a903d1446c3af2aa0aa87d71dc1950087be81037b10ae4bf989893b505beae4d21ac31edbdc62f32f2f9808393444fd61a802f003dc9080789c7430cd3d4eeffa8a0fac89653a70fd5cf980201cd2708427d693b8034ad61f8483e7e3ddc39cdfed55afdc9b9b5f05f79b80f54ae4ad511401b9a545031a640a22a83a3a43267c14c52d2a02d98585f5040589bdd4cd7e917d23b2fe4505581e03cd82910354f8e48656d7987478bd86263c9e08c17474e9ca130cf65350040105581e03be765401c497fcfbdf096e9b43e4d49f4e548d8c5a19cbb5bf683084f00c1905cf4902094b82563412477a03bcbcda8f1aee7fe730b68e2f1c84cae36ba8fdabbbffd3a43e8944c45094dfbf05581e0312ac0915ea993be2921a289e175bd482456a6f5d15ddd25db9642dfa30040103ce23c56b0b593a426ee118c38ed056695632133e4b7095f6ccbbb24b4781f27d05581e035d79f0c41c0d78b7447dcb33fbf181a5366478af54c6d6c096ac8f2990040105581e036f24c88ff34068a2af7fdc8ae9db36413aaa79bb6d12adafe958f63760084705ebd312a02aaa021922b903dc2960dbc0cb088577013bf3ac2ffc09f888d0dfab1da8bed32bdfd0c330304303a2c8bdc74ddda966521e04a5ef7d9e7e51a04715c192b80903710f9948e5f0a903b032323036aee2c602693a9af06fe22c5b814ae87ec3f7419dee0a440ed333b503b5b95ef7cc74c2833c560a9fb8a08c8d8f0931e9c2f76fb3941ea8173d2eb90403c56ac0135909686082148de82649695d194ecf6e40845bc12252d9048a66c5670305e9fdbaa0509422ead4778d22c7963127e288d3a24bd34e4d527745bbd720a1033c883ca4c9f11ba850527c49ac7002820bef7a63e8544f4a618a0424fc90655b0385cbad39607cf7e3e61addbbed12d2b7501a53ae1f3f8c21e23a96b33b629f2703fcec3c2e43d5c7978588e69db0ea515a506d3098cb97cc4648d7adc4e5928d170304c1092bbdc6c1f1f772abb2a31042cf61ce4488ff55209a66bf25dba8cb93de0219ffff03721f3363d7069e4231f76cb145082bd98a63fdaeb636254fe94d3d609597476b03cd1b144a967d4b301198b741add9c0fe58819f0c20404de6a420172fd9ee7d050329b5a1a2c249d6fc049fee3ad6cc80f54c76eda8eee59353b95bfc91efccb03003fa75ecfaa89c265a964f48330c3fc62184b1265496ab13af4bab73e3c441ce9f03788f04ce8998664761e99d11db394751b69b97299b73423d6531d78c863fa70c033a53fcc005a3e4ad854c40838c174e7747c339dc7dc59edb60432b8f594f531a0321a67225cc814004300f20ab6371b9772ad8a3967447fd95a78c7ca01afa55660219ffff03b8d78d0456a083e4a06491107abdd56d16c1654d41aaef09d6ec10d174e99dbf03e920ae8a9a21f92ec737e1934bfa8591baac589facf751533660c8b8d1e4b6b803a23f8064b516359bd4170736b2308482fe896b8473234133134b12b3f04c9d90038be7dd1748c44b664175a51f88bf2f2f54787932e1c93b0b3194858581a7bea5035c0979279f9044e30ef18e48fedd1c030db070e8ee2d315279ccf0b039e5f330031ac7e89325f8a6f9d0997d3659c115c929dfdffa24687bfa034f5f93e6ace8d303643a74ad7e70c42ba276c51dac21aeecdfc0a4f2f4e06b7dd139a95ab2e5348d03c00ef051352eff352896362d6dc1c85a42fd49267dd98bb3c23cbf9e0b030cd703e2fb555eaffd0451b6719a415771716024c38aeff750b45e3901aaf58165c01403e00e63ceebc374c712340a66e72aa64abb82898f09f065a4663b2c31a7782f4d0359be3a78d910b484d514f9ff15dfd5febefcac9e90e16c76b1ce92e9612d350c03248a3f0f04485454cbffdf49a72b80c3a77feb2c907d5bb1bbaee5e8b00906f50219ffff034608712668feb80382978f5d67312a68a64fbab63a2801b8ee2788a39aa80a55036a99df51323d2c93762746fb7dd59bced8e01053b51673ee82209e82c3e049d503ab9bd2a85e8a805c44caaea24121518b5a21b2652bebe0451a3f963d5b8984ab038aafc33626efb4cbed9254392ea520f53a175ed6d5b2f74948cd9e56c3ff3bf80350bec14ab227fdccdc989b8226a24e1de5a110d1a27a14ecf222554ede2dd1ad03df632ad4abf3c5c3f8d47791eba46d849c48236e0354ed28e59c694894ef1e2803744491a8b5666a7b4101d19bfad325c1c7a00354d701d24058f2f8893bc8346c0369877be47d8acd30803a513a8dfceeef9d28838d3aafe6541ac25eb2eed8eade03c375bdaa04c22085cb756e344f36ece06d8029843a850bd738721ca142fe54e4036793c9fc8a2d3345e4fd6ebec9873e230115e98c3d949bd96943f05f707c7a1403320a112ead3fbbe58ad7952cf6aac61b8c4239c28fb333a690e9a9d618963d9303f405b610e51da9a9cdecc6a575416374bcfddf5d4bd510360bf2534a06d831f803e555c26c55877d20dbad9e05f3ba1b795d684a057d23a42fa12afc492f2222eb03dba489d75f9996b1d7f6afb5c10335d5f926b3130f5929fee804a433f101c5aa0304ef481faa02c474d4123b81a6f928c1ac50b0506ca6ed69aeb5b838b3f9ae8103538dbff278c43831ee58c3ca4d867aa14473ba0e1de15c285f2bbc4e7ee03a7903d329bc2bf1febb8d1996f1bd3d629673655eef86ec2056c6b409dd2dc7fddf0903652ce914a88f8faf034f856f26de4a64c8246ef70bb4f900b072c43225a2fe3a0330564cf28129777c298a99e37167b1f8cb1d9c67bf6108e2648ae0ba3122d29b0333b20a0eb3b910f5f7e9e0e0bdcc5e50fb2fbd15c7f51ced199ea4ed68bc8adc0312f7817ffa92ffacd812a00a2cf9bd4aba8fc7c6f8fee568dddcd4812a18c39f038c57a934716d9648721be1ac79617139c9c0fe231d2e4a8a2765120b7af61d6903d91049661e728cae6524a1c4016552e881e7d1bae433492f5907381bd889c919030a060322ee10f93184bc897ab000bebe59b2a8ad7938e529a582f6c4693a1af40345bde2c972c38d15fac44ce5bcf8ff90dcf54234d390dd47dfbe8f3df77e2782031a59870fb02ba32dfa40c64377883be405d187883f16df07c03bceafd7c3479e038aa3e76a51cebe50385d2d98c90104dc2a8927dd0c9f18e7bbe18f256e13ce3003898cab3dc68614d0d3ee91792504b258d7e5997a8476411fd3013c30756f14000393a30d99ea15fc7eae696f4ba980c321d3fbcb855c0e4c39ac9963b192c5e3c603ff86fe78ce17436dffe3c11e4f589dbb7bac99bde349230820f1ee5ab0de9c5405581e03118aca061e6b865477c11be6fb557fa013657e9f0e2b68a52381f3c7c00c014744bf9aa0480d70032765b99e67382a591586ef7c20b4f35ca4774c6cf88af3dc839a8b6cb8924b6b05581e0303aca7da0677b24fbbe10ce193e2c0abed98a1ec3f7d13241697a8f1b00c03460f4840d89e0005581e035ce46ee22da273a7a75d72cfc5fa5f9211cc3bbaca87d321768e36f0b0040105581e0328832ec6bfa29febd0e4e80251d395b4bf1ef6eed36a6140bd2bbff3900c0147108c3ece0a1a0003b70a16d1a8c4751b3a68e44a3890acd77a8b48cfd1f4668b22cb5d2b6f3523c105581e031455dd589e6664fd87120cd394aeecba837a9dc2fff9827dea8a442e400c0a472211215ab7c38303b8514757011476bd765146278570f2695d117890a8f4324a56b737112915859d03d81df2018723b79c382df2a1f59775afb41ef63362807706ae2359014da4a3f705581e03f34ec321b9f86cc99e92df337a874c55990cab6bc1ddf64758aea8d8900c014703844a7dd0df7802199e9e0327ad5593e673ea928fb6bfaed2f2a7fa9ceb7a5f0b13168c9875b2af0fffcbd90397726355222d40b4046c9ad5824e3acf56da9b5cfcf74430109f15f28d998eac03b7cb10cdb87c0f6b0cb37de7031f376b085701dc47726b742062e8ddc9bd5c2e0371822f96ec1f1760f5880dd86c72e38ad239f94830b82f90030e6052b2c7a151039d522543baf871a1c514e5267d29e879c484c480b52d87a0be690f82e0ae97cb0219ffff036de3a5884a0b948a371f5881437b090d4ff254ac7dc176fc268d13b68f3e25e603267c20e2bba0ee6e8d1298c24d2d6feb912f94ca929f1524c34ec9b7d081ca6603b2dea999a9c7751c89e02008813810b87c3077177c4ddf137c80c2cf97cc415603beafe974fbbe9ca5c7d5ec0d8d156bcdbcf4a376a74a916411ee8debd7b6ae5a03afd1c68f6b131d465bc79a8ca2dfceb54c0d4b326857d651e2ca3cc5f1c9a77803b185c8117d99e7d1fdf2f97d947704b14ea3d8495b895391da256118dd4908f80349caabee4de2149c8a23e6aa19985febc4f77153c86269eef218132d117be0ba03d47a02155cc7be71d63c644cb549a8c3f1dd1688b4075a407ce6043a1ab6f5eb032f09f98d8d0c236761f5febd483b013bd8303b6a4c9d4bcf1dc668d1b71835e603809842d9ef1dc49967b3f91257ad0d677e27e5a067333556bdbaa8908d35ffcc0219ffff0326290c02c72079b0ae417354daabe2a79242f3d03fa32a5b3486cfc46934d164036b508d7349e4f91032ef7e99c155f7cbac72d5b73c39eb69d60dc243b0e38c1c03f1f9e54e013f9570ed2d872b220790cf0d1d9a52732a2b99ed8522b59c900d5b033e84d4e76da3aeb8b150f8ebf63b5ad886e6c6dc6ed9a340ebbb7914a38c9eea0347afe4ebf9bac0bd44c9838611a639074d37532af142256a57a4c7a6ff51e5bf0394824507a9d9ef69215c95445909312e6a7f416bb6831d8706ce60feecc3012c03beb6cbeab03bafabc400ddc3d53f6b2a48674656614aaf27783699874b1ad6a703f1bc64eef018e58ca7d69aac73a55c1616dd0010ffd685b2edf5c6f6520e3c63039c83d89ce3a04c496f5135eecbbb90c6c5f0d3c18533621a40f022fdb61468e903d4d252b22b61b3b9d27cc7d5760c8cfe9645540896ccc71af1c694cc7ef295cf0219ffff037c8a4f4a430d81b7a2c169eeb439c88acb2568d178dc28a0066ea4f68c5de585035156e83bfddbac112d134898450f827c9ec5c44d9866e3461ff2e54a9b055fc103a25b67eaf8955bbda143ba59b933ed489dba044d672b19b14e405504c31d74160219ffff03bd104d4e8816baae1ae3fb739664e16782b38a2f60c93bcfe547cf78c4644de3038c9f8b5baa27a44578ddd7e6dc77e2d5bb4a9e64a5ca5c418d7fb1e0b916af74034e3eef2902a104899e7f12490bce6f07856cd800ceaa1ac79c0201599fe08776038de9225da5019f9397a35c6d911b47e6c86a17a3e33b0036a9a7ac0a6d843d9d03c7736454ba71b6ff496d15a840c310a028d50aa46d316da8831411194e016ca503491c41cddaf023604711a8b3c7df8ea616b59eaf6452bae8ee0992d0ce9cadf503c9d7a1c09bcd9086f52d8664502c412d7ec7d1d132367a76ba3ce00c10bb5010030e2e1136108a7b21c153fbc354c9cf40edd5235f9763bb861019b212d900624303910e5a9d21c0e36ee94aa15fa481fcacd4174c6057fe8e827bf16779fd2e927e033c3599196489acc3c3182c3eeecc410ab5d5efa67a3ffe61977b7972d9e072d503d3323ac4faaa446299822f011cfc13613c62989ede94300926076bf3fc1a5fca03e39be27984071ee7c2c8e6094f550535a5df9cb92587d11c0566a2e45a813ee7038f9592320c92565aa751e2e578c24c185d303689484342e2b584ed6b3e3615e50390a899b83cad1ff777825bca3dfed99ae87d7ceeeaeb38b6eafd92a44933151b03a0b46370f54894fca0e84ccd6f1db2b35240625a455837ed419449da9fef14a80374100cea18b663714df94300b21dc926ff437096ab2449818fa85f7b94bf291f037291b2ef2155fe0aced156ee33cd1b03bba7522128b0abffeb5448e96752ebe00356401f4cefd85c6ed8c820f239bb87653d565d476905e6f2f505087b0952a0c6037f1509ada07abc5b8ebe9777afbe0db1557cead6da4a7b339d46711aada55b0203dc00fca1bc1aec38f543ad7936721df3e4dd5ee3d53753f1e7f02eaaa7117b94033ef6c8e17a3fa839df086c855737359731f8b0dda08749849c81423029fbbe9a038a3b504d97936d6f52e6fa24f9952086ca0142da5bd369ab096fb8e7ef25d90b030f1d2c90551dcabf0eefc6eba104be5f1bfc26f918978e5b7b3499c2f2ff10040373c43d51bbea81d590a71ecf23476ef9665b3ce7adfa4067264e0fe45f7893a7036cdb1bb0277b07366151d49feda452794b2746340a03a60f3d4c9ee921423d5d05581e0355a51303768c307581ab2162e3b6a24cd64697228362b44cd6fe2354b008478968c5ab3b5c0003c77f697bf0df9430c6d7b15ecb146b507f61f0fcab6769d318e85e626da831fd0383df57965f6e9f83bec2da0fa0751872a70cb8a8058087d4c29c08caa5796d7b0605581e03c49359418cbc6664145fd2823dfc39d20d5ccb981533bc2441b73b422007011bffffffffffffffff05581e0399ef8a73cfa9af8a54205a1ef16ae436f15560b8b2db0f32815a7083500c0347237e7ace78b500032dbe5d3efad286c92ad09dfddb1145f39da2edd165482fcfc383c2625609817301410205581e03f5a3a0d6ecc77bfaf144dd2e2082af165a2377833c8b5cefaab13034a004020359f11df7c4bdd3090dba82237d06bfbfe076e4a7d57a69f94f7bdb0e2a4cf6f205581e03777923a56737852dd0dc6ed387b53f41968167ef0b162a8575817a19200c024701710f271c64b8030f06886cf79f98c2c569350e3bf74e16b7e5fc986190c8a135666002237db42305581e0313097dbd7925aae4e4c0a7b519c19ce974906f96a51c6320e8fb010e20040205581e034ec44a0b4fc1460976ede781931e7da93ab94775aef4b4641d51d335700c024701d84a5023b6c00301025cbf288535c91b2ba58cd3ffe6e5cb684012a5a27ed36bda627cd226ee0103ad593e61739fa597fc8b780cd78dff0e4f7ec3c885efb2fc11711214c97e8e460219dff503653e6f5d31ef878006fb8a7e0bf560beba6199267f4143c742ce7f17e9b093f703b3e09601a3d28624ad43c5d4e4579dc827c5cac16c5a254f58c9bee2616edde9033319bbce1f895833eb8142fa25ded827111fdf12cb4e7211c0f724594e7ecf420320b5346ed28f5d41e61acdda143eff6a1cf24e6c673fa880302ea2b05ff18c4503e1bb1ddab49e1fa9dc40d346ee7300572f4572d2b93994d968163f08daa9d18103d8474ea71dcaad05ac91e04765dd5eba4675ca625d2dd9396c849767ad2a2cfb035e8465cecf805c7e8fc5f597c6759a2e08529c538f7fe9b0dd9462d374fc969f03aa65a0fe316a8d62a08fd052cb86be52a47093422efcdce6d345026364a50a5d03ed53e52606405f8267a0c9afc82462f406260ab145a9e28d8c53e320f2fdc2690315fa5640af1608f67f0bdb5fefd03d103c12fdd7570ccf1116812f4ed03dea590366246ac141fe3d9bbca0c86f5ab9f2e2d0aae274bcfb6948bb21b67b54cf19a60219ffff03496c3cce884e88ef981d7838aaebf56e471cb8b687f21e04b3a27f1d7d1dc48a03d958378ff14cd317597b4c663007e37f7c135917072fcaa17dd84f0cdacb0dbc038ebab1eebcc650155d8a52475083d9d04b1d12c039e6a04c8052ce23419e4a070331b82c71c7986f7e4f6b8f5898a9396a548389d27bc868ff075b0f47e667d42e032b36110740d8ef6d68a15d7dc83b3a0898cac5eb1393f4766cc69464791514d503238f77b89cb1ea6ac6f455a1d6fd6bfee8b602068d3c5a31b05ef678d09e8da60367939da0f0b0a77f16ef29aa801bc4e5587684a94661ce805c07484c9fe2b11c0219ffff0366737d5ace9a0445059e025c50b5235c61691a87e798314964765f03c8ee784c03720c5ba39657b018ce734d5d00ceb92b487ebd1127c9bbd774d4d2fce35a0bd60219ffff03cdb60b5d5741db9ac19d9872655557efab43d9f7d16a9ef3c6d11eef708032d50393ba6d06621f4364922b0c9471933abe6497920faa84e5b6ef7a7e498369eb1a036c7f10e6ef586372cac399a370d09968af2fd732182c79b9dff6a8b87556fce403fe4006f53b8616186feac25e2ac256d92f3b7a6e0a307a0c20df53d270c4e79803fe3e88449d5b1d5b2214b93c4075a65fc3cdb0519e28ed0afb18ea0dc0f859a403c895a4fda48ef4d90e9b8b9a5aa8fe49cdbbdeae98e02c226fbe1c0a5054b2f303b59b7db031011c64c1c53f6452ea96168747f6af3c6a896542c267b202b0f77203b5bc813b37ff80b6a8a45bd3aa5f4f25cb37719c8faf541d91b5874033bac2f6034c895daab42d9d6fbb2f652e7d89c628069984a2c5c538a4bc910aa014adb7af03f644b59a2df8986b6fd7b0286af5c6a6fcd6d1af0599775729cfa21dd3a2c96403ec09f801b0792695115350fe876fd50eb3eaef391903e83126ed4d42333eb05703b885cb7ee6b07f8ed4f50e855db02171f2e10760fb1b47c6f46757ac77057f510304ac97afbf840172df39fa592da00ccf0ea6037bf49f2d62eaa8cbbd6b0acf360369257f3f59768d70678d101f2bae972b6112b227069e9080e314622fbc4464210381fe0ddd6a7ca8497dfd5553c96fbae5ea91fea4c77ff3d8b4f678c6bc2e066203a60ddf642e2a990b0e5a1c4ab7051dda9dfcf583db6647fbec9842adb68b7c9d03392dc95408488007c396628da76a8373a5fb9fc0f324de58104147e2897fd66b037d687487738186af7ba6f24bdeaf76df46ce981f5d7668ef40aaec45c56e6726033d0a57c421ad10e3dda83dd3670227d24ae41d9267bfd3154a31a5231fa066d40398d1ad2015fe0cc95aa91c7b3fe3c319ff94c46b04a96f93ab119e42ec713f170377c9f1693f6091bdfa6369dafcfe2a56f0e20e6782fe8784749fafffa423f2af031969e5cdc63ad16f90401713817e41ebc42b9effea8fd35eb261c77cb0495cf9036234059d7e3957dd2af524af6131efe1ed0159c0bef83511e3d239e4af34e298035796b46a6d97fed5531dcdab601ae236de65dde9fdbeb72a53614a01063e79e203413401f686477cab9e3ce5da9bcbf9f7e935df3ffa959d575fb0c930baca709e05581e03867d9740282390a4e6197b7eb97a338f616d2b169968f3247999e88b60040105581e03a36ba1760a5aa0f16a81d9ee4b793d1db70663fd57f271af23e7b4fa30040105581e03827020d505b720206556ccf949ba724ca2148629bfab76eacb0747c4a0084719cfef8a25a09f037152e643645f68788dc54b5c3748c7afcf5d689e50439f4f5f667576119041f305581e030a6b43432b2eb563f4f6eb969da4e0cf1428ff84f54941917b1b9907000c04479540e0569efe0005581e039f258bbc8cd6b2c5d9f39051d20c3b2d971eba81a13a5759616799d3100c034646639015272005581e0306d464e922c887795e18ee35fedfb8621b264df845f6a46f24b8c18700040405581e0305d18b89672300737108a4ba71e4e86cc849ffa64dfe3968dcfe3afc200c187f480ab4867c3f16117805581e0347fd92a6d972a35f4b9da51e1cf440606aac8876e67de10165c6df8e100c024702f3bffd9c3fc005581e03f5e327cc40d98f3322010e870d59b982854ec75db8836953ff6ed103c00404032d6841ed4a361c148259edaf33380c19ec0723cd69375aac9db7ff875509ef8b02192fee0330f69794592ea53bbfcdd73b92898c96da8c482cc5f076c7bb29f359c99f0a7e03f7a346f751091a7622711e25617df92647ed3b09949c3bce42bc71fc7253fee7034b33b80eab6673f6f1daf87d33b9b93a633280b0fe03d77745977ccd4251da79032713e3ad15d9b1f37706acf0e506189a0c9e31d5f80a34b34a2062595686ed51030a3350e4c62aa2a9b2c642bfdc473f1282686dfea3229b58bf5fe83963f601e50366ce8449e1f6756cd57bc29ce2d424500dc1ae7e2fed3f3cb1a21aad61483559039fedb9a6872162c22d57f65ab78fab97f57036faf74e68196060a37d86a4d947031bd6d4c86630ad017bde42f805614630e4b13f29a79bd1c5fecaf4a99ee68e4e03df1a3ca88168f8ed73bd5919bfcd0428d5a15d17883f103a8542289916f0e9be03ea7e9fa8647c6c5ea74defbb0812627b4209ef56132864d412934ce86e86f37003c1d96044629c14d0ec015ca84ebb59be96dc8b58d4f62cbf20e0844fc0f6defb034e0578ffb966243d37bb2eeb2f2d01317e40bafda971060771f64511b2118d3f039292630a6d2ea10391120251adbf5fa7073d3d2bee0bf0a8633deb6fd674176603663f9ce83d1a384d37788e41ae0b9ef81665211d51916c1575a611e106e1a57803cc1d1bedbbebb091bb635bc268d0d916d51003e747e6d48e777f4d2fe78313fa0219ffff03ff93d10300fdd9108e4848b23ccf8ae551e8542fd967d4da170a41eb9f6f9ad803d51679a8b5213cac945a9c0bd6a8faa0646ecbca42d3bc5049be65c85925871503fa5106c609b09ce6f94128654c10f36c9bbfe821caae9c4c9d2a677a6e1593d803c12bb63620ba975353ebd8cd52df3bb8191778b19acf261bb122ec51e7ae5a0c033be79f748aaf54a76cea9c70f3d0c4af9c273ffb0f2eaf5825da84f910f13525032d01475e4311ab0c7a2ac91d3194e5e62c2d0fb5378e5a35a484236f2e53755a03fb682ed4f0343d3c99d196fcfa6bcd30df43b62a2a2b32cfa32712b046e3ea4203787f8b3305dc396efc25dd833b5aeeea17f9e525b7479eff49a8e880a25217af03589c9b09a2f58e21e623e4755e0f6c584f48243009b864b4cca567ce8c83e1b20219ffff039465e228e8af35d6b9e6a55ab4f2641bfe1d36a85167a3cfd01d73fc3ca58fe203c52b135a2e8d3177fd4413a5b8b4db00f9c9b1fa3831f1efa5b59fd6a66d58c50359d714b700390379f822f006272607217876abc42ead1825b7dece7eea571b9103be0bc9c09a4c40ecf9b975f583e43f86bcde1272f76ad331f3c87e1ed81e11420324ddb22d7bc63c9e09fe33099f58efce0bdfcf676365ba02e7cf8a1f55296d3003b861118b2e466014a5c173a09f9e898acddc1de6301e0dec9cad3a83cadde2ab03a2262b48025f83f2b38d0e85f9ae30391108e66e60a4706b3f1800d7b9b2df6203987f2c204f3da4006121c963163584decf9f90ea5fd1fe3d3f266fc39f598b320219ffff03be65241d074ee7fea2b6be536e959e9daddead919244f5e08eed9724fdaf13e703e8e6ce9341ea345670f20468d500d2f517a843a3a41ecfb5af94e1f813ba337f0219ffff038e988d2ba4baf6216674c0e574207dc97503381774facd3ab8059cc5ada63935031476786ab6cef454b0b1fdcb87810db18ebcdd57742047785f82ed30821bc17c03eeb9615f5ef6af69c5f3d4ad3e6906b31d1d50eeb5321f5efdfe6cfb72caa284030ef9a48c0643be26f3b59c0e90f0e0f67eb3a5eba3998fba8bfe91bad9d6f882030cc3a843dd6a7ae2e5ffce646b4c639f20451b09088114b6bf3fdc33458ac3e3033d175559be2f227f2e26872a7d170c4c119c78ab66c3fbecdc3ce18c462f670c0362c837ab6922b77fe0cf80436dd7e8b6f4ddb8fb1283684c2ae47bad6184a0b603f2474aeab2c4f6af5734e4ab8a6b7cfbdc1afe2968ed730dcc1412915c1fc5fa03faac6170ae8c8b11039ee5bb4f82940272f35559245a096934bcaaf4b34fe16a032b52784a7a24cf468f24028018c629b0cc5c31b697940e7998ddbdede6828ea203869d1ca0bdcc185adaf90964681a9655cec47b377bb70199afb0e177b20cdf6e0325af19766f23f8a0fd51973087413e6c13c8e4bee2991eaee4c9252b4e1275fa037ba47ab9e002b6f06eaa57324a1737e816e6672a3e11d4105371635e0d18250f032a75af314ef49a3914db41f9d1f1ba329a9b561b39a177ec451343991aff8b9903e1fb21c98d4477be61d8752e70225e71c5cd7a97b407d1381e3577fae5182ee803b6ccb554712271cbbf0c7dd7d91f0e48f24c29a9ea4e5da23567f89e5967f56403f5c24ca826d3d5d3836e34ed9614c830aabed1304796b230d7721e016347b8ff0391f9841e43497b51c8099a7dfa5056ecaf761e59d5204a845d0ac1cffa59f67a03743d0eb99f0ecfde678955e31ba20a88e44926da3e868508a729b00cd848d92903861dce1602ad39a42071d7c64e45aebc74eebc25a2c14185739b34c1f263ce5003490aa7c3220dd0a8c1b5a99d9eded886e154b10e8a5b6426a51fb8519a95658d03424ed8de0878cbdc1254deeefbc5c4bc6b1ab7c05647eca10fed05a2625c044e032919e31ca3bbc9411efc408ae0191eea2582e98c1b7a25c4266a971bd95091cd03429f22ce9add95e9347196126e820b0530fc1d82380bad7a2f1aa9efe61ef95f035882abe367b8fe408cea0e8c561d2ae9f11aadfaedd45513f3e4b3044def8f3403f5f0f28ad72c7d11b700d4efdcdc2c472e18909a81a708d87bd8c6e061d1f3c9033f08e514292650ba2e7de06d6c545c67528b2ebc99a1bd11836bdde2fc341645037428f7b12425fbae7ba1fce5993198cde0d8063d2b5db1177e0da2fc5de87d2c03fa281f0d539c24b4a19d70aef7bda2c28b67d165702af1a2fd10d60419dffa9b033c87d57dc6650e4c2052ffbe4690a7ca682172296edb615e568dc0f0a44be19f037a22ff1f83421f4421480018044eada39f1c728bc60800ebcab1b0da15ffda4c03959054e17f1c5d901134df7c0647f7eae6aa6ce356d4d72b43ad671d3c41ad870377ae71991b7ed5ab1fcfa78a8cbaf1751b5276d45e43ea88699df39054e07175038c536b2b053e34b58587ed4bb6f89bc0458c90543f3c26c6847622b2658101f404590d626080604052600436106100f35760003560e01c80638da5cb5b1161008a578063a9059cbb11610059578063a9059cbb1461027d578063dd62ed3e1461029d578063f2fde38b146102bd578063fc792d8e146102dd57600080fd5b80638da5cb5b1461020b5780638e5f5ad11461023357806395d89b4114610248578063a457c2d71461025d57600080fd5b8063313ce567116100c6578063313ce5671461019257806339509351146101b457806370a08231146101d4578063715018a6146101f457600080fd5b806306fdde03146100f8578063095ea7b31461012357806318160ddd1461015357806323b872dd14610172575b600080fd5b34801561010457600080fd5b5061010d6102f0565b60405161011a9190610b1c565b60405180910390f35b34801561012f57600080fd5b5061014361013e366004610b86565b610382565b604051901515815260200161011a565b34801561015f57600080fd5b506003545b60405190815260200161011a565b34801561017e57600080fd5b5061014361018d366004610bb0565b61039c565b34801561019e57600080fd5b5060125b60405160ff909116815260200161011a565b3480156101c057600080fd5b506101436101cf366004610b86565b6103b1565b3480156101e057600080fd5b506101646101ef366004610bec565b6103d3565b34801561020057600080fd5b506102096103f1565b005b34801561021757600080fd5b506000546040516001600160a01b03909116815260200161011a565b34801561023f57600080fd5b506101a2610405565b34801561025457600080fd5b5061010d610460565b34801561026957600080fd5b50610143610278366004610b86565b61046f565b34801561028957600080fd5b50610143610298366004610b86565b6104f5565b3480156102a957600080fd5b506101646102b8366004610c0e565b610503565b3480156102c957600080fd5b506102096102d8366004610bec565b61052e565b6102096102eb366004610c41565b6105a7565b6060600480546102ff90610cb8565b80601f016020809104026020016040519081016040528092919081815260200182805461032b90610cb8565b80156103785780601f1061034d57610100808354040283529160200191610378565b820191906000526020600020905b81548152906001019060200180831161035b57829003601f168201915b5050505050905090565b600033610390818585610714565b60019150505b92915050565b60006103a9848484610838565b949350505050565b6000336103908185856103c48383610503565b6103ce9190610cf2565b610714565b6001600160a01b038116600090815260016020526040812054610396565b6103f9610851565b61040360006108ab565b565b600754600090600160a01b900460ff1661045a5760405162461bcd60e51b81526020600482015260116024820152701393d517d156141150d5115117d0d05313607a1b60448201526064015b60405180910390fd5b5060b190565b6060600580546102ff90610cb8565b6000338161047d8286610503565b9050838110156104dd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610451565b6104ea8286868403610714565b506001949350505050565b6000336103908185856108fb565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610536610851565b6001600160a01b03811661059b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610451565b6105a4816108ab565b50565b6105af610851565b60078054600160a01b60ff60a01b198216811790925560065460405163651a36a560e11b81526001600160a01b038d81166004830152602482018b905260448201899052606482018d905285811660848301529390920460ff1692169063ca346d4a90869060a40160206040518083038185885af1158015610635573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061065a9190610d13565b50600754600654604051632d67b72d60e01b81526001600160a01b0391821660048201526024810189905260448101889052606481018b90528482166084820152911690632d67b72d90859060a40160206040518083038185885af11580156106c7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106ec9190610d13565b5060078054911515600160a01b0260ff60a01b19909216919091179055505050505050505050565b6001600160a01b0383166107765760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610451565b6001600160a01b0382166107d75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610451565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600033610846858285610aa8565b6104ea8585856108fb565b6000546001600160a01b031633146104035760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610451565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03831661095f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610451565b6001600160a01b0382166109c15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610451565b6001600160a01b03831660009081526001602052604090205481811015610a395760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610451565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a999086815260200190565b60405180910390a35b50505050565b6000610ab48484610503565b90506000198114610aa25781811015610b0f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610451565b610aa28484848403610714565b600060208083528351808285015260005b81811015610b4957858101830151858201604001528201610b2d565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610b8157600080fd5b919050565b60008060408385031215610b9957600080fd5b610ba283610b6a565b946020939093013593505050565b600080600060608486031215610bc557600080fd5b610bce84610b6a565b9250610bdc60208501610b6a565b9150604084013590509250925092565b600060208284031215610bfe57600080fd5b610c0782610b6a565b9392505050565b60008060408385031215610c2157600080fd5b610c2a83610b6a565b9150610c3860208401610b6a565b90509250929050565b60008060008060008060008060006101208a8c031215610c6057600080fd5b610c698a610b6a565b985060208a0135975060408a0135965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a01359150610ca96101008b01610b6a565b90509295985092959850929598565b600181811c90821680610ccc57607f821691505b602082108103610cec57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561039657634e487b7160e01b600052601160045260246000fd5b600060208284031215610d2557600080fd5b505191905056fea26469706673582212206e2744b2558713822d92db0a98776a756778231e4698f07452a85777c880650464736f6c6343000813003303ec88d0a92925f23184f46e6a188b7f8810d07f2cc89f4699b7d1584aa028f91c037eac2fe64d9832b030fb3dc61e0731028cf51f65fd573ea64a969780bfbf617e03b27949252c71626e48012512720500644c3ec5de5ff1caaf981374664f81b79f035d93bf208f4a3c3cd3ce73646e432048ee81b836cddd680d4e1a10623b5d4548030d0713c1e7b0006713ce3746311dba7e7ce6acfe0994e9eca8796729903fcd5d03ae7bab4c40b7ee85883fd67af88828f68372d10998215e99d1d06c2adbf8fff3039eaf408fd9681edf60bea4a03f8f9e80f407904de9abecf393ec962715f7b8e60300bad4510c577731157237c1c9614fa4a7e830a33181f09aaefcfdf08e4d2b3603b11d601dda383464c4aebdeca64175e208350e35c21645a1325ced0f616c20a5032a8e47d294c9cab84df5ddb15da5eb689526e6f5f09f55ebb0c86fe0f15d475903f6ac4f53dc44f5c410b49f114ec0220eccd49d119fd803def2e2d8dd6819fd750353706fcdaf704485035cc8c4d703fb88a04816677bd7829b790b96021ef0751103e0b5480551d73a69804712325b5ed7b8b7d779c2864b6544be4fcd7ad201131c03c9383945a02aba107cbc02df76b2a392ee3864336fbaf2690951f1a46b261bf003bdfb15295bf28c1c09c4932a26dbcf9e0ca4e768287316c8a234bf5d0f05088f03732eeb1091ba1575efb11367209b85b6499b08f2f621978df7dd407973eb1af5036c170fa353e474144804717d8655b03389d65d1a18f24080d7a758220b2d279d0307c7bb2da3d59f6e294747d455a32a53080e877d0b1033b0e9c4d0ec15a115d401410d00582003c44221b638794373c8c6c8fa10a486526f2377c29edffe1ad5c572380284905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03796217ba92c61de36c4447056175d52f04e3b89ee8019e0fe6f52d554ecff35603ba7dc44cd8f472e2377f5b3603db098b7e4cc553c8b048d3e1aa445326df9f4203a75eaa9f2464251c1cfe407c5264c92ed38313f4b994208aa03aeefb538faa4603eba28fdb90592c52ae3db24135befeb55e048c93efd99e51c497e5cfd0e7644e005820039982acd25e29d505836bea01b38de512791ed53a9be07afd7c5c250be521a048d212e61178aee5f800582003d73d98775834f1093b71c7cc6720642a77e5fedc6bf2c653053e260c453c60490586b2206036cc50c102196789033158056afa9a6bba5001d8d33b9de441a15bf9705445643efe97753049436da20219ffff03d632d29a2fc4bea7d28fe10679aeb14bc5addfadcd46e03fc34a7d3b03929c1203c467ce1a125e8e726fbea2379c71bc186a9289335d0b61ff98b3dcc39901f39303fd066f61bf6a40caa26ca277af28e89b9661ea5314e1e090f62e10153b1ad9cc03c11a8805cddacc8f66249a91b6163491ca79bce999a84078176dc917932c5a1003ee12e26fc8a24a01d0a1eb0476cbf3fe71b153c9d9b0d93e4e284f54e910ea2b030d00797dedd9366788234e3a62042a9f50e01fc1bba81b7c224a8c3275f8789703046da589b31f2834e25bf412f05323528488cf28f895947f1c0d0382caaa1e080058200354e9da7fe072cba86bf4141a06bff32f1f6d98096d24e57f7ccd490bd756d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003a46ffe3e98c95e29e945d350ef61d2ca31df4b2cb40f5b29e763e453e229d04130035e64a168bcf192114be7e5ff845f35774542bf34ab2e7b0f7514e2e2b35fff4d03714ad23fb47ac9223d03e3dcd951bcb7bd54bbfc4e5f51c1bca376b3a8bf555903ce22414e75eef1b9f112b9790bed33932ca92fe0113c8b8470e1533a38ce131d00582003f055109b5f7bba6e4846b0f52b997825201a8aaf074466c8a501fa549af4104e314dc644633933319a45bc4a200000582003633d5d61818af4f0824c96b8c95a73e866fa572cc4675200058f0f5db1430048a86dd199f5cbb54500582003a669bcc7bfdb7ed9ac8067197b73dcc92effe9f8bb9808d243933fa132d0d0483d6c59ecc86a774b03627fe2ecfd3b0238bb2c2e126b2222146bd27d820659f5d1e9d93ead0cc199d702197b68031f8e6b516ee064c8632cfd4e1ba8169e2a79621d4e5ad7ea60de803ec193653b038fd78e88d9c0ac1f78385ed932d602a696be61dac8c856940fd2db0079108bc1038a47ac767e2fb76199d4b850104892b56b0f32e614ffeebc9178e2570e4559c303d70aa23ed99f80d49aa1727371c8e177cd4b2565b9159a37617877e7c646d5a1030d332dfdfd50394c8e5b4a3c8448f81441bb31e68f50d038c48fc39dd25f60c903aba2c66eb37c43d6d701348fc33c00dd10f17eb8f57f17d5561bcde69d4f249203186716d0971f5e1da40bb8533833b56ef5900081d877ce0eac98fe6a37e038fd033fcd7f90705c2b1c6272f8cdff89f0029c6c9253701821cd4f7bdec72e63f844035f2125165778d63493cea40c94fb9137e01c1e53e8ea08c15f00bef21c26d49b0399d9e858f440d1b64470f80831632238a0aaf02e6524f723d52a9d21891be60603ad31895566561557d689e53e604680188e3b9960c2b076f3aab16c10d8d28e4b039712ddddbc3082ebd777ef9d1511d4e8967c3b2de40fb399526d24f42fd7ec7c0219ffff034294cc7e6bdf2d759a29aeb8e448358c71cfeb3d27496949dc69c639b6f4d2ab03ce3d2a924aa500d7c1fceb859883a2f65e735c86fec0bc86dfcd862b9ec6f5b20333a15a876abc12e541c95607f779c9ff39cf17cc6469d8b1a36b0344e9b3fd13036606f3202cd40bfac7d598ee1d84383db9ca4dba441ba3d860951b7c71e02603031509539344931224b9216742ffd0f48c267bcc83db7302d62e018e050d564f77034e0e86ab001117d3977ce63db13535af5dbc261ce8f2fe71650b3f0dd016f72903bd60c325594580651f11866dec3a1dea1203ee5fc6884778c20cd0d2e57abeed0219ffff05581e03fa380d79069d6e660e4365b7e950ec06e813e6fea8800ecb9fca6e23900701190d6205581e0389d527a85fd4cd883c2cf53b94d5d887da58b47588f75407d9978a5290040203650f27d51d8c85925499254bf1851151156874468991e2f9ec87b8155d0799830359d50c529e2b2b37833a4be3e46fab359b43264b43a7c0685a7941627b1c4eca05581e032beb3731be371bbc01e4f52f7f7e8ed473dc071bad2157573921f979b007011bffffffffffffffff05581e03a17d7f1d2994a8404954b4c982372902092cff46f8540895d5e2b7daa00403032df39c0062882ba634fb24c89e7f9871ecef10a6e6a6e79a336f6ed463d5c94203576d247b864a9c9c193245be5262a86aceeb51240a250d7b4354c293d83a678d05581e032eaca759e7e90b36e061e01080f56a04739d1920aeb38b988e17e2928007011bffffffffffffffff05581e034c03f393b658ba3d7eed94ae7d8accbf4def7cd5dbb5bab7ddc40d8a200402033d1f319fa176855d6c42af58fe57325c87d07857d9aae57edbc32dbb5fc3c93405581e03194ba3a56b4055fd158ae073665621d7c289b7bdab27be4e65af2cf7400847229e1e2a60d91c0219fd8003b680b38db4d8c9c32eb2a2f7fd59d2a94e9e17a98a77386883a6141467ed2df003941f28fb01df9e3a8ec2387145693bef719d1c38eac89c7c473bf701868a9279033bdc7848afaae921f41ffeb89c0fb92b5cf3c770ea25cfc954fb3b4d11ed7abf032a28d44089bc01022c9d8a73916ad740d1a4ac69c732d2ccd2d6d96b705d58890397487610ba4b4378118ae0101f00b0f8e036bb39b97b7f98527a4414f2e9f24a03c967c35e7d2c981a351cfe01c9c3b66e279230d06b04bff03fc6c1124869e17a03e327cd84addcbc7f16daa3c9e8bca8c189a4bf937e6d69e547e10283d26985e703f4528ece1e85fc6cd32f2327513590cd15b471a2b82b8f546b597c836e7607b00319b8a33fc630b6e52c5ca884e7d193b90f51bde4d8666ff96445e0c3de71bbe00219ffff03cac2eb4cafffbe8ee48310db33fd5d14b5c259e20a89ba29ce824d2f3c357ece0219ffff0396204b13688a9cf6a69a9a81f78eacc46190d5a685760172bc728bec839588670328273fbec649b51fb036d13a7eff2ad064b86b4a60af057faeae23114d85d75b038060fdcd1196f6dedba21d5c41a0c500409752c6757457e5b5580f59b4a519f403aaa023d2e101534d4dea20cdc13bc24af8a87ba5575db2f5b9e9083d8ef119e303a32f5df54300396ba11b2fa6ba08ce498e629182b8794e611be0001c21c5112f0219ffff03184b9afa1135a05ea26dcff279cb09df631f551ecc68bc5aa1d03fc42634a1e803a3be26d186dc085300fdeec07032ef41d867840e54f2fa8d94e83380db20bb5c0339dad23e7f0400e2370e9567608962d6f5f8eb0b16de76d86c7abfae3fb8eb9b03e106cc698909e406287e1f396860bf9bacf0560bc52223502319ed19f636343a0358d351d3621b5e230c1c481ab14f9782a08303d87f40756a5bb201efd74a89db03f535e721cf63e33f46f6c88592d68038eabef96bc97f850b9f297f8028774eeb0340462bf2e21b32ac7454a4e49ebab67d324850aabaae6495d340dbe40ad520110311308f7e56fd097d253115211e5e3c57698a10f53a89b2a2898b6d1fbf0499a603363615543a116d75f6210a7f9db7674f49013394fc1b797579641c0677ae6fcf039ede428835170274dd4fbbae7c1f53f0cd8401d84b34aa26370bd1adeb2ae7ab0382eba8bf78488a5a969cd6e3806e780d9c5f02bff62c20e51fb43cf238936a68030bc2551fcb93413829e5bac781008d8d153a6d956a028f4b2b68f01b74ab6dec03b8d6498ff6701fdd591ae8ce6112e05ea6e92cd7a965dbe89e2ed8a7d441e3650356e76e4dc2c29d53cac78a2d26897218e5a700c6b1b1b88eff124f6ab4f8f01b038f060f246fce804697152e3623ef6d40ba835bb8554e81a8f7116c1cda5c9bf30302d84f02982a822e3b6d789b80e1f767ff62186c3578cdc33a9561ff40c4f8b003ea0b91231562c14b678b4dae9fe941c2129efac0babddfef9ca3cab1ddaeb0e7035e21e13b0a2d362cfb941e5f470ed72702d5ff830a62dcd1a295de1027ea6fa1037d0ad33f6b8ac0119c1b70c88cc5bc5f8646b359ee83394fc0b63600d0f514e9037744a7c2a005451596736598d475254c7bb15d107dfd50f21a86982427187b44038465e29360cb5013fac0febda0eed782a23a1ab9d69854d5bb85fed91d022359034993a20ab6507051076b278bbfcdc3c7370aea7dd1a2f9819c6f1e2cde03b51e0391d884567ae0e2c4d5e711cbd9eeefd724927b0240229a989e92157fa8f4e5a705581e03ed187ce44c9997cb385750591ef7037d91cc2c23c2bd592d3a7189ae300c0c480627fbba3650dbc5031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03130151c3035b44b7d521b07c5acc416b338fc1d1cae9507a9522e2728007011bffffffffffffffff05581e03999e11878ec3279843bed50d173e45404236cb98f8a3d10449b08270f00c05472db79191a7b1e904592f266080604052600436106101125760003560e01c8063c04b8d59116100a5578063df2ab5bb11610074578063f28c049811610059578063f28c0498146102f5578063f3995c6714610308578063fa461e331461031b576101bd565b8063df2ab5bb146102cf578063e0e189a0146102e2576101bd565b8063c04b8d5914610281578063c2e3140a14610294578063c45a0155146102a7578063db3e2198146102bc576101bd565b80634aa4a4fc116100e15780634aa4a4fc146102195780639b2c0a371461023b578063a4a78f0c1461024e578063ac9650d814610261576101bd565b806312210e8a146101c2578063414bf389146101ca5780634659a494146101f357806349404b7c14610206576101bd565b366101bd573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216146101bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b6101bb61033b565b6101dd6101d83660046129f8565b61034d565b6040516101ea9190612df1565b60405180910390f35b6101bb610201366004612776565b6104bf565b6101bb610214366004612aff565b61057f565b34801561022557600080fd5b5061022e610745565b6040516101ea9190612c37565b6101bb610249366004612b2e565b610769565b6101bb61025c366004612776565b610981565b61027461026f3660046127d6565b610a56565b6040516101ea9190612caa565b6101dd61028f36600461294d565b610bb0565b6101bb6102a2366004612776565b610d0f565b3480156102b357600080fd5b5061022e610dc4565b6101dd6102ca3660046129f8565b610de8565b6101bb6102dd3660046126d7565b610f78565b6101bb6102f0366004612718565b611095565b6101dd610303366004612a14565b6111fb565b6101bb610316366004612776565b61132f565b34801561032757600080fd5b506101bb610336366004612868565b6113c7565b471561034b5761034b334761150e565b565b600081608001358061035d61165c565b11156103ca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b61047060a08401356103e260808601606087016126b4565b6103f3610100870160e088016126b4565b604080518082019091528061040b60208a018a6126b4565b61041b60608b0160408c01612adc565b61042b60408c0160208d016126b4565b60405160200161043d93929190612bc1565b60405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff16815250611660565b91508260c001358210156104b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b090612d72565b60405180910390fd5b50919050565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e48101839052905173ffffffffffffffffffffffffffffffffffffffff881691638fcbaf0c9161010480830192600092919082900301818387803b15801561055f57600080fd5b505af1158015610573573d6000803e3d6000fd5b50505050505050505050565b60007f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561060857600080fd5b505afa15801561061c573d6000803e3d6000fd5b505050506040513d602081101561063257600080fd5b50519050828110156106a557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b8015610740577f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561071e57600080fd5b505af1158015610732573d6000803e3d6000fd5b50505050610740828261150e565b505050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b60008211801561077a575060648211155b61078357600080fd5b60007f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561080c57600080fd5b505afa158015610820573d6000803e3d6000fd5b505050506040513d602081101561083657600080fd5b50519050848110156108a957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b801561097a577f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561092257600080fd5b505af1158015610936573d6000803e3d6000fd5b50505050600061271061095285846117e690919063ffffffff16565b8161095957fe5b049050801561096c5761096c838261150e565b6109788582840361150e565b505b5050505050565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015610a1657600080fd5b505afa158015610a2a573d6000803e3d6000fd5b505050506040513d6020811015610a4057600080fd5b50511015610978576109788686868686866104bf565b60608167ffffffffffffffff81118015610a6f57600080fd5b50604051908082528060200260200182016040528015610aa357816020015b6060815260200190600190039081610a8e5790505b50905060005b82811015610ba95760008030868685818110610ac157fe5b9050602002810190610ad39190612dfa565b604051610ae1929190612c27565b600060405180830381855af49150503d8060008114610b1c576040519150601f19603f3d011682016040523d82523d6000602084013e610b21565b606091505b509150915081610b8757604481511015610b3a57600080fd5b60048101905080806020019051810190610b5491906128e3565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b09190612d28565b80848481518110610b9457fe5b60209081029190910101525050600101610aa9565b5092915050565b6000816040015180610bc061165c565b1115610c2d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b335b6000610c3e8560000151611810565b9050610c97856060015182610c57578660200151610c59565b305b60006040518060400160405280610c738b6000015161181c565b81526020018773ffffffffffffffffffffffffffffffffffffffff16815250611660565b60608601528015610cb7578451309250610cb09061182b565b8552610cc4565b8460600151935050610cca565b50610c2f565b8360800151831015610d08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b090612d72565b5050919050565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051869173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015610d8457600080fd5b505afa158015610d98573d6000803e3d6000fd5b505050506040513d6020811015610dae57600080fd5b505110156109785761097886868686868661132f565b7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98481565b6000816080013580610df861165c565b1115610e6557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b610f0e60a0840135610e7d60808601606087016126b4565b610e8e610100870160e088016126b4565b6040518060400160405280886020016020810190610eac91906126b4565b610ebc60608b0160408c01612adc565b610ec960208c018c6126b4565b604051602001610edb93929190612bc1565b60405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff16815250611860565b91508260c00135821115610f4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b090612d3b565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600055919050565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610fe157600080fd5b505afa158015610ff5573d6000803e3d6000fd5b505050506040513d602081101561100b57600080fd5b505190508281101561107e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b801561108f5761108f848383611a1c565b50505050565b6000821180156110a6575060648211155b6110af57600080fd5b60008573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561111857600080fd5b505afa15801561112c573d6000803e3d6000fd5b505050506040513d602081101561114257600080fd5b50519050848110156111b557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b80156109785760006127106111ca83866117e6565b816111d157fe5b04905080156111e5576111e5878483611a1c565b6111f28786838503611a1c565b50505050505050565b600081604001358061120b61165c565b111561127857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b6112eb606084013561129060408601602087016126b4565b60408051808201909152600090806112a88980612dfa565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525033602090910152611860565b5060005491508260800135821115610f4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b090612d3b565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c48101839052905173ffffffffffffffffffffffffffffffffffffffff88169163d505accf9160e480830192600092919082900301818387803b15801561055f57600080fd5b60008413806113d65750600083135b6113df57600080fd5b60006113ed82840184612a4c565b905060008060006114018460000151611bf1565b9250925092506114337f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f984848484611c22565b5060008060008a13611474578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610896114a5565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16108a5b9150915081156114c4576114bf8587602001513384611c41565b610573565b85516114cf90611810565b156114f45785516114df9061182b565b86526114ee8133600089611860565b50610573565b806000819055508394506105738587602001513384611c41565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b6020831061158557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611548565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146115e7576040519150601f19603f3d011682016040523d82523d6000602084013e6115ec565b606091505b505090508061074057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b4290565b600073ffffffffffffffffffffffffffffffffffffffff8416611681573093505b60008060006116938560000151611bf1565b9194509250905073ffffffffffffffffffffffffffffffffffffffff808316908416106000806116c4868686611e1f565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b856116ea8f611e5d565b73ffffffffffffffffffffffffffffffffffffffff8e161561170c578d611732565b8761172b5773fffd8963efd1fc6a506488495d951d5263988d25611732565b6401000276a45b8d6040516020016117439190612da9565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401611772959493929190612c58565b6040805180830381600087803b15801561178b57600080fd5b505af115801561179f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c39190612845565b91509150826117d257816117d4565b805b6000039b9a5050505050505050505050565b6000821580611801575050818102818382816117fe57fe5b04145b61180a57600080fd5b92915050565b8051604211155b919050565b606061180a826000602b611e8f565b805160609061180a9083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe901611e8f565b600073ffffffffffffffffffffffffffffffffffffffff8416611881573093505b60008060006118938560000151611bf1565b9194509250905073ffffffffffffffffffffffffffffffffffffffff808416908316106000806118c4858786611e1f565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b856118ea8f611e5d565b60000373ffffffffffffffffffffffffffffffffffffffff8e161561190f578d611935565b8761192e5773fffd8963efd1fc6a506488495d951d5263988d25611935565b6401000276a45b8d6040516020016119469190612da9565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401611975959493929190612c58565b6040805180830381600087803b15801561198e57600080fd5b505af11580156119a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c69190612845565b915091506000836119db5781836000036119e1565b82826000035b909850905073ffffffffffffffffffffffffffffffffffffffff8a16611a0d578b8114611a0d57600080fd5b50505050505050949350505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b60208310611af157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611ab4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611b53576040519150601f19603f3d011682016040523d82523d6000602084013e611b58565b606091505b5091509150818015611b86575080511580611b865750808060200190516020811015611b8357600080fd5b50515b61097a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008080611bff8482612076565b9250611c0c846014612176565b9050611c19846017612076565b91509193909250565b6000611c3885611c33868686612266565b6122e3565b95945050505050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c9c5750804710155b15611de5577f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d0957600080fd5b505af1158015611d1d573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611db357600080fd5b505af1158015611dc7573d6000803e3d6000fd5b505050506040513d6020811015611ddd57600080fd5b5061108f9050565b73ffffffffffffffffffffffffffffffffffffffff8316301415611e1357611e0e848383611a1c565b61108f565b61108f84848484612313565b6000611e557f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f984611e50868686612266565b6124f0565b949350505050565b60007f80000000000000000000000000000000000000000000000000000000000000008210611e8b57600080fd5b5090565b60608182601f011015611f0357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b828284011015611f7457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b81830184511015611fe657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b606082158015612005576040519150600082526020820160405261206d565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561203e578051835260209283019201612026565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6000818260140110156120ea57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b816014018351101561215d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b6000818260030110156121ea57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b816003018351101561225d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b61226e612626565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156122a6579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b60006122ef83836124f0565b90503373ffffffffffffffffffffffffffffffffffffffff82161461180a57600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000178152925182516000948594938a169392918291908083835b602083106123f057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016123b3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612452576040519150601f19603f3d011682016040523d82523d6000602084013e612457565b606091505b5091509150818015612485575080511580612485575080806020019051602081101561248257600080fd5b50515b61097857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161061253257600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808301919091528251808303909101815260f5909101909152805191012090565b604080516060810182526000808252602082018190529181019190915290565b803561181781612ef4565b600082601f830112612661578081fd5b813561267461266f82612e88565b612e64565b818152846020838601011115612688578283fd5b816020850160208301379081016020019190915292915050565b600061010082840312156104b9578081fd5b6000602082840312156126c5578081fd5b81356126d081612ef4565b9392505050565b6000806000606084860312156126eb578182fd5b83356126f681612ef4565b925060208401359150604084013561270d81612ef4565b809150509250925092565b600080600080600060a0868803121561272f578081fd5b853561273a81612ef4565b945060208601359350604086013561275181612ef4565b925060608601359150608086013561276881612ef4565b809150509295509295909350565b60008060008060008060c0878903121561278e578081fd5b863561279981612ef4565b95506020870135945060408701359350606087013560ff811681146127bc578182fd5b9598949750929560808101359460a0909101359350915050565b600080602083850312156127e8578182fd5b823567ffffffffffffffff808211156127ff578384fd5b818501915085601f830112612812578384fd5b813581811115612820578485fd5b8660208083028501011115612833578485fd5b60209290920196919550909350505050565b60008060408385031215612857578182fd5b505080516020909101519092909150565b6000806000806060858703121561287d578182fd5b8435935060208501359250604085013567ffffffffffffffff808211156128a2578384fd5b818701915087601f8301126128b5578384fd5b8135818111156128c3578485fd5b8860208285010111156128d4578485fd5b95989497505060200194505050565b6000602082840312156128f4578081fd5b815167ffffffffffffffff81111561290a578182fd5b8201601f8101841361291a578182fd5b805161292861266f82612e88565b81815285602083850101111561293c578384fd5b611c38826020830160208601612ec8565b60006020828403121561295e578081fd5b813567ffffffffffffffff80821115612975578283fd5b9083019060a08286031215612988578283fd5b60405160a08101818110838211171561299d57fe5b6040528235828111156129ae578485fd5b6129ba87828601612651565b8252506129c960208401612646565b602082015260408301356040820152606083013560608201526080830135608082015280935050505092915050565b60006101008284031215612a0a578081fd5b6126d083836126a2565b600060208284031215612a25578081fd5b813567ffffffffffffffff811115612a3b578182fd5b820160a081850312156126d0578182fd5b600060208284031215612a5d578081fd5b813567ffffffffffffffff80821115612a74578283fd5b9083019060408286031215612a87578283fd5b604051604081018181108382111715612a9c57fe5b604052823582811115612aad578485fd5b612ab987828601612651565b82525060208301359250612acc83612ef4565b6020810192909252509392505050565b600060208284031215612aed578081fd5b813562ffffff811681146126d0578182fd5b60008060408385031215612b11578182fd5b823591506020830135612b2381612ef4565b809150509250929050565b60008060008060808587031215612b43578182fd5b843593506020850135612b5581612ef4565b9250604085013591506060850135612b6c81612ef4565b939692955090935050565b60008151808452612b8f816020860160208601612ec8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b606093841b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b6000828483379101908152919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a06080830152612c9f60a0830184612b77565b979650505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015612d1b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452612d09858351612b77565b94509285019290850190600101612ccf565b5092979650505050505050565b6000602082526126d06020830184612b77565b60208082526012908201527f546f6f206d756368207265717565737465640000000000000000000000000000604082015260600190565b60208082526013908201527f546f6f206c6974746c6520726563656976656400000000000000000000000000604082015260600190565b600060208252825160406020840152612dc56060840182612b77565b905073ffffffffffffffffffffffffffffffffffffffff60208501511660408401528091505092915050565b90815260200190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612e2e578283fd5b83018035915067ffffffffffffffff821115612e48578283fd5b602001915036819003821315612e5d57600080fd5b9250929050565b60405181810167ffffffffffffffff81118282101715612e8057fe5b604052919050565b600067ffffffffffffffff821115612e9c57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015612ee3578181015183820152602001612ecb565b8381111561108f5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114612f1657600080fd5b5056fea164736f6c6343000706000a00582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff05581e03d2b096184691ac1f4d2a3fa2fbeccc6ce1a97d0e02994ccbb80d0911c00701192f2603c5c6051942b8c49a5876622af3f304ef3ef5982d83c625522613238ffb97b2b403ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e03bbcca46a459b8597226207550f9144d399bb323b5c987c170b0949584007011bffffffffffffffff05581e031a7bce4600931a1b1dd6ee054df8f9bf99aa424626b8b1e8778a8090f0040305581e03078c04a7d29e8a0f73dc3b0d2d1e776480eb82e7a56caa4b8dbad49d300c01478b24e9bdca786005581e033add88af6cca99a7c38e523b669715bc81a6e88bd797322ae4630015100c044702676b55ad3e800219da7603f283e3bba2fa214401a7ce80799c4116fcac9995148c89364e9e1f0e982b2443030b93915be0f12fbea1c6cc47065ecd0ae3ad21e1137bd5686f32ef3672bdd1a703b87d5e5b8944fcf976741c9a74a141fc869c24abe9b231280752a49d65eb564403d5acb246b6691b26b6dfc0f382e44aa8d677a28a84556c1c030c192af6be59ff03ebd07920ba134186e480237582d3235a1efd1a3805ea2b5021c5f20b5efbfec703331b80c57e50c91262059ee702a529e98636f567ae18b19d6241f0c6670fd5360315855e66375fb1c03bb63f595bb881c70555c37992d9f0dc4ae5394df08210b50393fb72a87e7542016348b43be80a4f4a134e2228fde2059ffbcc5d78625ee1c303567610e5bae8511293d0513617c00ec2d9884db6a5c248240ac78b0a7498b2ef0372d31df4e3b1501bb765127720e2a0d2ddf1ab6135fb15ad9daddc3d7b70788b039074b1b4f7c60edb1ec640c655d15d5e8d2676a9ce43400834deae605c3a1ed203469f0d2547369328e13d0074bf15d7a13e2d771cbef2fdac24fc4de0d33e6040032d46593d26db5545248d92f9d486528c84fd5bdbc2ed84dfae6b345a3a6108f90219ffff03ce1cc022be210c87fab62cd3a8c567be8e6e598e6306be5456d5a5a5356bc3f903ea7a76b946dfaf6264be7eb996fc7320c604dd70bd38a674d3e8485540e3747303a0d031ed3d73a5d180a5397647daf0435a6b925ade8132d13ce64bd9e5d65a5c036418b4bb84e9c49b477656db3425c089d8e60c221bbdcd1c5a5a5bb407ecb0e7035a1518eef659349a2c3b175771dc3d0a704a9da1c4827aa49967503ef2204aa7034c2446c050faabdfdf4a3b5b2ebbc132c342c20f9fa21e98a1a52797f99c4a9e0344f6a05905857820dc4f83011c0bdabdb9de270bd5cf20787be96b15053e16db0219ffff03d1eee1cda5b46153e460554de6f7c07c5ac52ed0dc86956f2c6fb33fa6a1890d03ba728b65df0b20dba6b34e4909ed13eb354738b61e52b95f2073c4e5edd189670352f23945e619762f1a9c0edacc92751c7e86dbb5d8764138854545c1650113fe03374f1e1d6b0d491b754b0601acfd9f0ae2dc9767f70c0c5ea2370ebf0eec848b03493e896f659e314eb5ad1b9d60398e5110606be802a5bb58eb4569093771ad9b0351d5aa3af981ddba570f0565ca4d7ad81c4998bf2fc6d72ccda878942b9d617603d2718584d35c1edcafc2e7c965c11ddcf895ac3ceef7a83aad6b7d011327f74a03cb033e7b26c268cc9135b5c2e03363a856b6041bdbf164dddddda4713c14fd9f0219ffff03968b5b229ae8bd240be8547286628ade3dbf0cb92c918a8762c476306ec79084035169868e02ee4faf2f71fce731269a534f324751fddb33e659a81215ea5f9f4103e916db3bf98c867d19b94c9502896406c191d7d9462b1014f098edcae303bb330307214936a3c27e3d59920737b517b3da108d19b339aebb9381fd2328ac80dbea03009a0f52de7617e9c678e92b86c9d6356168cdb7f758fb5a9cb19ad8c34f38e2038d844a38dbe7ffb9aa1706cc45f918128b8ffe02afeeacebfb24b92b5ba8c30f03bc9d9391bde8eb545ead1db5ba7401f788500bd7749673ea6fe4826bf83a4101030be272cedb53221cb535345760fab1fe9093d7a69347427a3d2ff1e89ae731e103ebd2681d77e8fffc904548e1a3349eaf20083516a17950fc6360a999c7a817810376b77ffdab734f22868ddbd1a5810d8f37e89fa110907ee67c895c5560dba0af03115597e8c37717cac7b929c5db8e44fe5227f117a1ca395f13fed33034b069c503cc7ffb6dc02f4776305b9ccafeceb5e92625a0c6ba2774cac6034cd9174f20bc03b5d0bafb27a16de82e416ce6a2bd7716891c794d2ec64d3f5af3fce94d49910703a12e406d34962af5c4a21eb87f959d998b5e5cc6cdc39777d62baad34bb2b54603715103e669569aab9f2ac2a4aa4541e4438734c2b29d22787c3653b738f5216d01410705581e0346b5191ce1564a47edb51f145622bec10f342cfe1f37934b2314f593b00402034f5a5f6706dc853cb3ae2279729e0d7e24dda128a77358144e4c0fd3e5d60e980605581e03304edf9585f1d01cacb9de0fe1632f558db71a3ac7e86bdf04f074f08007011bffffffffffffffff05581d02f64bfac58f889f5e3a5106292f63cbf1e4c33ca7bc6a9ee20e23a419040705581d0207d702ce9caad19dac6a3f4032647eebce7ca2579f332bf084add95d0c1818480bb822c0f8240cf905581d02344621eb63feafafd82540962794ad2e7384874526abf216de172d860c181a44052dfead0219204405581e03e438a3323b2ea98c175eea0aebb8aa52cace5c96c4aabf248ca2d3dcb0040205581e039a2247595c06ba8a801518c831b0e367b8e34831c78d0304d9cee526e00c01471501c01accd04505581e03c1aa264d7da438fd362797be95d094e4e858da9bcb17ae82cf8f814fc00402030414d45c5a3c05132744003360eb95089f6a03b2fbd6069f9cfda02cf14ea83d0333d41539ea485070c3bdb2c3e115a09f0dd161e15b1ac40831392037d58d178e05581e03011ec900b6056a5beca05258a20a4c3236a0281a8cf17a37778e729d2007011bffffffffffffffff05581e03b2639282342e4258ef14df06ff6fd867083e226ab0aa8f55a5813365200c014701f4bb1768125305581e03505051781a83738425b29238f1c3c2851565dc4a9fd2c838b949efe9600c0346c2aa3bd0cf2f0355fda1d4d20bcc498d9b6a3b1fd6f96eb62228d1641719ffe403f87c11ab9a5902197eea03873296f2f2ec50b7dd230bc1e79a68e3e3a7c38398d99951cdc99c5465c04f0c03ef6df5a4147aa781c24c4289a14ad960c0fc306e34c7ebef0753e55daa644fc2034d282cc0a5a911813ca31cd7baa5fe348bd45104c84db84e0ab65556fc9aa42b033c81a8caa34c5c1bf0de4242d1474fd95e800f29c93914ddac0fa5fd4bd213b003609f949c83e7cc958099b5e6d578d84c3e3f40d74c929c216a7293e5269dab79038d66e53f561572c3918c29c60460125e4cb9b2131a8c7dbd30f03821418757440307dce2cb032cf7f3b7ab1fa3cbc131b68eda673bc36d5308fda06ce063cbb26703d198a0903fe787067eb47988cfed6c069f5ba17dd339431d175370cdf68227cb03e6cd731970476a07f3a04ca868156283f324d97efaf8d51440ee8b17ae28181803d6e4c3473a1008f5a7ce12fa99149b4286e82c1f29fab7d14ba4be5de658922803695b9853f3a0f19b4d334ecb707a332cf161ccec1cd02202587655bd4b35cafe03887a5ee9a580d8005d3a1dc6d0026f5b59fd2bb291588bf137ee6dce5e8e1f76039f76b71ab93ce7814d7e6bbaa4b8faf25231404b8bea55b52e75258c7c91bf750348fc7a072614ab0f9ebe5a3c8b8186a82333877c0d5e7ecd92e97c0dff2dbfe60219ffff038eb73b7464e514c5a73d9181b741b07e2b8106250504fd913fc74f14ca074ab303965d3e9c848d676f5370f46179743aaf1c169346e83d001081c37020bde637050329002bff78717982a14209963153252e479a44ae55d95a703c4640baa3c01e750385896a4c206568c238bffe497bb0c0bddd6bda6ec1e9e76f69694ac4111be7390396662bad60aab465dc930b7342bc7e34e6897cf31a3b42245ff354f77ccd4929031cfb300d5d5824b7b473b48c1a5537d02edc1fc45dc97e3044640ffc3c5fc82803b42d2ae64dc94ab90b8bf46007224fd3a5a76eb635a82f8e2882521fb55e6447031641ced2d26dffc190bd8610e3982da07ec6ca2d16f7f4ece32f4c063a41bb5c033e6c52679d16f146ef4422adc59bf6e20105404ec3ff7896e40c1f926b604e060219ffff039c07a6fecc0d5a9830ff7931411e5993e10ac6c999e61b535c7821ea21a9909403405c186076a1347f164435ea64e15992fca29107d0d584ac77ff3b37cc7830150360567516a65f6b242d92e1d7de51e5351662824d2228f84d658ef1a92af16eef03d89671bad1f26661fcd32958a48a818854129e20607b380d6c929421e2b770f6032e923a7deb49347a1fc3c01e0e081594a772622457e0d19c76d9cde57a8d490803b7145446995f0bb76ac6c5bbbd083bd208b670042314e86cab53a89beab49fa003750a649b7260a86af308d6e358c2accea195e5f463304a5b53d931ea9356156003069cfc62542f2e62d9d7291c10f866b46f9ed67f3d9318e31db7ca3382dd6aee0370831250ceb849455f6f6639530c404cab2286f9bafcb79eb9ef849bae28f68d05581e03ca73fa8a0f7d1480679d608a1211cd467bb91dbe8d7a5c5f281530c370040105581e03af5e4da1e8ad9658fc6850150e4ac4f9bcf01b702ee3c7e5feab7bbad00c014708294963f46e0005581e037419dbf29ed4a28d2d1d38250aef44289170758f194f30aeee405dbac0040305581e03cd8c8e87e4b6facdd6426430c593a43d6876a2a9e9aa43c737812763400c034701ab7964f6d08003f38d36be00a8e4844bfac8921c92036e318b4268ae75654fe45e32d8b46bcede05581e034b14b3613b4ae5805ee5aca645b4c2c771c4e75d75a49c8f35a396e1f00c01461d1a94a2000005581e031c4a330135b63e087cab4ebcbf6c023ab007298fa92016c6e4d299eec00847039696f339200005581e03a630f94b97ec04851f54ed43c6711ce39671fdaed125362a43b8bb30f00c0647581b77f66e000005581e03ac248480cbabbef07b1a1f61a92fe127cddcc05965dae6b14253dcfd30040205581e030c2eb7e4079eced0ac9c2f0cb687d6cc921f1018e9de24e269cbefa640040105581e031d288540c726dd0739f111e1cfd7a414dd46697100285eb44a8a80abe004010219af5e03203ef01d566788b8bdc847ee0e81123b519a5396e9f62b4e38e65e951f97628503407cc8568481255951c9cecbac1236857fdb61fd32fea62ce1cdf51d8ae3147103ab1d9e8fe03b7567983e74bb6eacd44f14c382c5bbee5a809b7b245d5314a992039fe7303574acdb7be3296ee6a9a0018b970e6ed2c384e9fe775dab36ca9fe97f03eb08ac23b737e4393214a95e8799884a8962f166708880a69eb4a3e54a17786e039074498a86c94e0007ebe9b854867bb7241e4924066d6dc218c5bab6aee9e4a8038b67651aae37a6cc43aae7b3ea3f6fd1f5061ea379074744861d4a68213318dd034270100ffa8687ed71848d30d5eab602f31888bfade22e85966448995b3738fb0391cc163e07c62590dda121727a751b46f272c8e28d6f025247f9c7f798ec02e80219ffff03e03e9db230263876894e8ebf5b9e6bacc463ad7730d888fdd0657bb71bc73cd903f35c9a69774c5550906efc351d4374acfee6bd7c2af5ebdc4ed26f1670c92229032b4b9ecdc09db46ae21d217abac186d1f1d81c4d63e7d972e167ae58d5318cef03e0a7ab714cfd3747a2e813d73de257182e01d49ff7b8d53e739b25a706668bdb03ec1c71cff39e6dcf230af4afd80e61135145059fdf7e7479a1a3e348a0c7288d036ac2f14af16adcfc0f823fb7472e0cba25163dd16ac1c12f99550873dbe41b570384efe335895d81af2970e0b4d7236659eaffdad1e5bf90fcc6f74ddae2db4711037f288d657e0108c46a07a099003a18a3f69b5900ad4f07214abca644d0e3c41803bf978f1dd51c926cbd4fce2f262789394f11acd86e871f90abe0cae74cf9279c03d1d3a5cc427df2cf651d5901b25b1a6650185b474557d33d58c06f06448bded603feec9370b0379cc3f2b1b052ea6bb92829532ba03eadf83fc8355b27eb0a976903fa992607cd7858730b7df1c0b5d74b941c59d7d02d977c2c348190cc6497ac260219ffff031497d93731d7d44a22044ba96612a8c8b2474bb2b8fc4bf97ee43572f9f189f00315398c0a386825a49c40d6e86d7ce90dbea41782d6f4b17ad2531adaac94639403eb67c1f3691530dc8da5d24db0454560bd976376e81a2cb1bb526239ec6b9e46031b1fde96b0ebc028e46f145ebac28f0d8525373403de3e6c7fac83b839db21a2036bff1c20b7d8fa5a1fbd8e957c5120ae476fffb6ff78040ed2b73c262407edc8039f4215088dffede6ce94014e492579237a7d94042310a2e1be8025dbcd697fb703d28060c5bd69a5126a30fa5e1fd6408714c07819a3070323b71da62924865c75034f028c3675865d295a019123a5c751d0fe1876fac4f68d372c89e4f4b37a2b68039d9088c5a0bbff8fd4883ec8c81e1ca543226be62fb2bb3359f246d243e80e03038b0edd103e89f4bd0f6e40bf39bf2cafdd3699c4f36e84558aa3865b578fe8ba0219ffff03245602f2db0b946c76a19d5dcd9109eefce6354f7b02df5ea7b2a074d5f2a5990219ffff03dd977cb34362c9be9fd0113f770e0728e9362e5e3fc3842dd88155cedda457db031e300a2e881f667f72a4a1d6dfca6a6edcd99efee0de9818e7ccdad640fb8cdc030a500b16f981de460beb12ee6b1e83f0e75e2cef97f4d06141e5072cb3e8d07903b6712d4e0169aa0e0a98cfb1e4b140e5afbbdf74de2b8dffd59dbc0affb70d98034bc9c3bd879d9977a43e0d494b3a577f8c7c21eb12850d83e2094f2cbd503b4e03aac048d9e9bdafdbcff18c14bd751feb7cf55e19532f25f9f67b4cd32abe0901032459069bc77ff5829fafe00c890cfbce9d6684cc594ecfbe83edc0133a0da4b1038acc3e0e9934d6cdbebb99ed405b0590be8a5c984fd7f275992f1c4a7d3c5ae90346c685d4f2406a86072300143da1662731b3e47ba35c3cbc8e57ba4404ea555103666ae45b93fe023e91c7a9d1b6af7adc1399f8d6483df01bf128786930c3ee7903ee1b180a90739bbba5e1489c8f0143ac5f22d225b1d8873c8dbde8d57b266e9d03430797f2b9c2b129c42bf348dda11dcc9aeb8fc7615b603445ccad51f9acd2a603f0d1eb7bd12a6d20393b86620c9f953905c2f28698d8df76fdde1fd375c37f7903c2ec9738ec8e9577e58fd3d4e540a2dbcce9ef259df00e64f245b5285a7334e603bfd06edb3a5255f19d9ff6e8ab8155fcd5d16100fc9ebbf2a89c5bdf93d23cdd032977e5eb99954bc991c55f0150e51d0c8a9df867242f915ed1809ffdd99ba47d039685dacbbff044f93510834b328408eda2557e71988ae568ab8a4a76db92ace4036cf3b2a9f57c94d0c971a83d387fee877563cf1cbd1d983e6a78024dba08d110036c82734698165bdc75113b01553e69264ffc4a70a5faf04a1c4c2ffade09d79a0345637d6501625186df1bf5bb1cc52bd5e8ca58107c24e5476caccd63fce2af2e033e591337aa45790a65cdbc40045ee6c95378788b170a2304eb23e751d0ebe0e303a17743b4952d140a6a91bd460a1552d5fac941508a06fda98e7df0b071d6417b03774b4208ed2a0a0fe4b81f8838c0df5709e65ad21badb2b715ae1c77cedf111303a66006ad07b327f7f7b296163857045d2fb6ed7a2dd54e9499916b7b4219b7de033a871763e0b7c57352426ae921ccf0e9a9eb9fb585625ed2b013bfe8187d264d031f5fca3e6278e3160557f5dbcf035f015e36dee78887bebb16fcdc81d10e309e03154d1c4a4ea3d4744e4b84d46d0044e7e65e7078b60abb0883424ba5798ac96d03456fd41afadc1b4d01b49c345c9a1cf198cb81fd5efe1874d7ab0bcb2a5a32d405581e03ac088844da15be6891007b172255d4846554f1ee238ea835aee84e9bb00c02463914a374964005581e031448e389e073f3a3e357b7036352472a90c6b22c211f070eabbcfc90400c014733e73ccfcdd2b005581e0340a1c8b75e08ecc5c47d273d49a2e3bf8a89635f71e6e9592529ee20d00c024743a6e4202cd3e804591789608060405260043610610108575f3560e01c80637d1db4a511610092578063a9059cbb11610062578063a9059cbb146102cf578063bf474bed146102ee578063c876d0b914610303578063c9567bf91461031c578063dd62ed3e14610330575f80fd5b80637d1db4a5146102555780638da5cb5b1461026a5780638f9a55c01461029057806395d89b41146102a5575f80fd5b806323b872dd116100d857806323b872dd146101bd578063313ce567146101dc57806370a08231146101f7578063715018a61461022b578063751039fc14610241575f80fd5b806306fdde0314610113578063095ea7b3146101575780630faee56f1461018657806318160ddd146101a9575f80fd5b3661010f57005b5f80fd5b34801561011e575f80fd5b5060408051808201909152600a81526902222a2ad10272aaa29960b51b60208201525b60405161014e9190611379565b60405180910390f35b348015610162575f80fd5b506101766101713660046113dc565b610374565b604051901515815260200161014e565b348015610191575f80fd5b5061019b60115481565b60405190815260200161014e565b3480156101b4575f80fd5b5061019b61038a565b3480156101c8575f80fd5b506101766101d7366004611406565b6103ab565b3480156101e7575f80fd5b506040516012815260200161014e565b348015610202575f80fd5b5061019b610211366004611444565b6001600160a01b03165f9081526001602052604090205490565b348015610236575f80fd5b5061023f610412565b005b34801561024c575f80fd5b5061023f61048c565b348015610260575f80fd5b5061019b600e5481565b348015610275575f80fd5b505f546040516001600160a01b03909116815260200161014e565b34801561029b575f80fd5b5061019b600f5481565b3480156102b0575f80fd5b50604080518082019091526002815261222760f11b6020820152610141565b3480156102da575f80fd5b506101766102e93660046113dc565b61054a565b3480156102f9575f80fd5b5061019b60105481565b34801561030e575f80fd5b506005546101769060ff1681565b348015610327575f80fd5b5061023f610556565b34801561033b575f80fd5b5061019b61034a36600461145f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103803384846108ff565b5060015b92915050565b5f6103976012600a61158a565b6103a69064019b45a500611598565b905090565b5f6103b7848484610a22565b61040884336104038560405180606001604052806028815260200161172c602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610fed565b6108ff565b5060019392505050565b5f546001600160a01b031633146104445760405162461bcd60e51b815260040161043b906115af565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104b55760405162461bcd60e51b815260040161043b906115af565b6104c16012600a61158a565b6104d09064019b45a500611598565b600e556104df6012600a61158a565b6104ee9064019b45a500611598565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105286012600a61158a565b6105379064019b45a500611598565b60405190815260200160405180910390a1565b5f610380338484610a22565b5f546001600160a01b0316331461057f5760405162461bcd60e51b815260040161043b906115af565b601354600160a01b900460ff16156105d95760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161043b565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811782556106229130919061061390600a61158a565b6104039064019b45a500611598565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610672573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069691906115e4565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061071991906115e4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610763573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078791906115e4565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d71947306107ce816001600160a01b03165f9081526001602052604090205490565b5f806107e15f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610847573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061086c91906115ff565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156108c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e5919061162a565b506013805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166109615760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161043b565b6001600160a01b0382166109c25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161043b565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a865760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161043b565b6001600160a01b038216610ae85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161043b565b5f8111610b495760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161043b565b5f80546001600160a01b03858116911614801590610b7457505f546001600160a01b03848116911614155b15610eb057610ba56064610b9f600a54600d5411610b9457600654610b98565b6008545b8590611025565b906110aa565b60055490915060ff1615610c8b576012546001600160a01b03848116911614801590610bdf57506013546001600160a01b03848116911614155b15610c8b57325f908152600460205260409020544311610c795760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161043b565b325f9081526004602052604090204390555b6013546001600160a01b038581169116148015610cb657506012546001600160a01b03848116911614155b8015610cda57506001600160a01b0383165f9081526003602052604090205460ff16155b15610dc057600e54821115610d315760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161043b565b600f5482610d53856001600160a01b03165f9081526001602052604090205490565b610d5d9190611649565b1115610dab5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161043b565b600d8054905f610dba8361165c565b91905055505b6013546001600160a01b038481169116148015610de657506001600160a01b0384163014155b15610e1357610e106064610b9f600b54600d5411610e0657600754610b98565b6009548590611025565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610e4957506013546001600160a01b038581169116145b8015610e5e5750601354600160b01b900460ff165b8015610e6b575060105481115b8015610e7a5750600c54600d54115b15610eae57610e9c610e9784610e92846011546110eb565b6110eb565b6110ff565b478015610eac57610eac4761126f565b505b505b8015610f2857305f90815260016020526040902054610ecf90826112ae565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f1f9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610f4a908361130c565b6001600160a01b0385165f90815260016020526040902055610f8d610f6f838361130c565b6001600160a01b0385165f90815260016020526040902054906112ae565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610fd6858561130c565b60405190815260200160405180910390a350505050565b5f81848411156110105760405162461bcd60e51b815260040161043b9190611379565b505f61101c8486611674565b95945050505050565b5f825f0361103457505f610384565b5f61103f8385611598565b90508261104c8583611687565b146110a35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161043b565b9392505050565b5f6110a383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061134d565b5f8183116110f957826110a3565b50919050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611145576111456116a6565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561119c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c091906115e4565b816001815181106111d3576111d36116a6565b6001600160a01b0392831660209182029290920101526012546111f991309116846108ff565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906112319085905f908690309042906004016116ba565b5f604051808303815f87803b158015611248575f80fd5b505af115801561125a573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156112aa573d5f803e3d5ffd5b5050565b5f806112ba8385611649565b9050838110156110a35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161043b565b5f6110a383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fed565b5f818361136d5760405162461bcd60e51b815260040161043b9190611379565b505f61101c8486611687565b5f602080835283518060208501525f5b818110156113a557858101830151858201604001528201611389565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113d9575f80fd5b50565b5f80604083850312156113ed575f80fd5b82356113f8816113c5565b946020939093013593505050565b5f805f60608486031215611418575f80fd5b8335611423816113c5565b92506020840135611433816113c5565b929592945050506040919091013590565b5f60208284031215611454575f80fd5b81356110a3816113c5565b5f8060408385031215611470575f80fd5b823561147b816113c5565b9150602083013561148b816113c5565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156114e457815f19048211156114ca576114ca611496565b808516156114d757918102915b93841c93908002906114af565b509250929050565b5f826114fa57506001610384565b8161150657505f610384565b816001811461151c576002811461152657611542565b6001915050610384565b60ff84111561153757611537611496565b50506001821b610384565b5060208310610133831016604e8410600b8410161715611565575081810a610384565b61156f83836114aa565b805f190482111561158257611582611496565b029392505050565b5f6110a360ff8416836114ec565b808202811582820484141761038457610384611496565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156115f4575f80fd5b81516110a3816113c5565b5f805f60608486031215611611575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561163a575f80fd5b815180151581146110a3575f80fd5b8082018082111561038457610384611496565b5f6001820161166d5761166d611496565b5060010190565b8181038181111561038457610384611496565b5f826116a157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561170a5784516001600160a01b0316835293830193918301916001016116e5565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e97ead81b18b5fd856e965f3047073674934cef50d84d2c7acedfb1ae2d2659664736f6c6343000817003303aa720111fefea4938199d78688ea2d6588b80439001a45731c99ce2020d6cde5005820025b32c860721345477baf3d7c10a168750223b0ade7c2fc6f4723f07e3d01f05820ffffffffffffffffffffffffffffffffffffffffff97900deacec3a6f1ab200a00582002d8589154f4818d3c8659b94c6cf94f7bb596e926b19b1f65bd1d53e34f40c45820ffffffffffffffffffffffffffffffffffffffffff86d1a9d887a3b7e0b7550c03792f03c6b3d47d9c49320db26e88a926c65d930b9504412ba46700edaedb6c02005820023692a65cff4c5ea2490a3f0226dac98731794541f57b94c7a71ab7fc1e91b85820ffffffffffffffffffffffffffffffffffffffffffd2d0405dcd25843121a2b5033932376de8686573c40601113d6fe3bdcabf780cee7cdf18af9b8b804ce34bb9035e5742be217a79651ecc8dc3294288d1ae657aaf68e2e5bc7963012c82fbbd8801410800582002eadcd3a35c0969cbaad9554a57045b3dfa83f741e0be315728dda1f383f85b4401252cba03e99c9722b3f1f210fbb5cec9c2013aeb3570b22e9b4164f031e41deccf7e04be0219ef10030741a31556ae58e41ce0e38505c675e0819070d76b8685debd3a18e73b6f753603cb9a1c5b309cef306bd3d87139f4f3f1f8d2e536e7526a345c5d005c0c84944e0392b23d0f636e551b72c87d15b7d8ca58ec3f582c761def689e85b72e369267c4032ccbc486c71d910ed55e9f1f64d38f464ea5b3ef312f593093ca7ab15a156e4b03fbc9989911bb91969849c86066d4a345aed07e0889375f2205ba74049e62308a039c97c491ff976e02fbdd1c8dfe9c5a0f599b4753ac7ee3f5f3b80d59c3d93e5103c5c93d60c1b1535a5c6fb50cf8471e1a35a9ec7b9171691fe5dd024db8d941d603077e74a4afcbeb15343a2c7fdfb91c96fb8f6556176eec0c292c299e76e73c7e030fa4a5cdf4afc2e97108de50620ae6ce9cd1b2beb6637aa7dd458faf6e23363e036dace35a63a8ee49b7b41c09e3b115e941addbe84aa49675821cb321c47c903703102f8fbf693b560fe659151856c937b8195a668d1d0ec158508654d6a7ffe7ca035c4a28beae195ea73686e5e8168cf5abed281dcb97c84653970a914811aa0d8c03f1bc1192fc8fc86b38a267f4410c617b64ec2d01a47418bf6cd49de2221ca7db03460f375e54d3b4549b893abd05a20fd9c4aa10b795e7efd19ea2b5e6b3e2b83f0219ffff05581e03a07c46657ea6520453925dae02aba13f76741e4539e2d8be00c93b2e80070119178905581e032b1a2d4b75d492d36cee18bb587e4214b3cd6c2ddc973c8a79782b8090040105581e0322a86f8b46938d5e596edf2af9f75782af2a5350bfcab88ccb1b673c300c014703190faa26b8000219153103a9e377596fe9e67723327ecb33e9ba6199b7ca5456e2d9a79a47fb90da8d627603a73949c0a11838fc21bbe57afc4c6c1e9f3787265b0cd977061b490c19c0a08603b57b03ca99041412aa481fe0f1b80ab6c6955e428589f599e4bb1190ed41c80f033beb2b2e01e9538c111fd614627e83f1bb89455b4287570e2e524104cd07cd14033d68cfaa7e273ee22a6287763530b04c4abda177ee77469aea9d7b72fc3376330329f4eef00df5b4e000c0b158f8f0fe163e5f90fe6ebe47015016fcd1a28b4e4303f3f17977e90b7a0d2eb70dea27f7cac9bd57b4769b3aa2d1a3dadd5493c6f7db034d4436ff3ed15012ac0da27f04c3e4e55714b69ba0ac83bdf1246fc0a9bdec91033210ca3e8d6b6fb5da130874509a28554f260aa060803ce320bbc12e4ea5cbee03998c759b91fc42342d7a6d02a95a0a70053c18cbbf2567b9de4d7ee485ce125d0219ffff0381595655b0ef898e76bc1df6e3e9347a51a79f0b4371f9c40d7dafe036b7933903f7a569b74bf04701497fa480352bb43dd4c976aba72aeedbd7e1fe2b031f71ee0219ffff035464e0f4a34df9ed212b59347cc958f5606062b2dedfb9bc46929f78d406fc9a03c6b7fb438e3b583cf0024fc65d843e05c81b73d4ebacd377c72c9838c48ef6fa03026138c02512ed785552fb348b6776514ec359712df0d5aadf87960b4939312d03279de5a29363631c81106c57d04aec4a8b2c9b783738ecf8d245113feb0b10f6039bf23b935d4937fc2afa48ee7b0155404165a0975b478f712cd24cf191fe7dba031fa25d7ad9e20e8a7802d7210e37739ddb28182cd4fef584305c291bb923a4440397012ce27217619ffbc7c410c8da0cbe5ce3a59e8e1cd74f6325cdd44e4e0ae5035f822171d0decbf54046d8bffe1c139ebfe1e71d8170a11755fbf6dbde9b0c8203fb8e5b477204757ed76a8eefc24b407d6bbcbda5fa2b9a04b68dfe8a655a768d033a2645e700bf56f56b56a570985c2cfd5572e2ecd35cb2e99414319235d82d3003752222107fc769087edd8a60e958514684f559ede0d2a78d44bee02f33bb979103e395e56bac30201b8559b13f166d4b181749250dbfeaef7161b6bc41dbe151e3032b0d8f8f0f05401fa1753c7964c94d4e73b3eab28b2e7ef4c3151c5edb57bc2a0219ffff036679f35b322213e2f364bd6de615e504ea3ecb429436ee4e75f3d4c057162e9203c68f68402edc500030ff5991667ca29e5b813d525f11357a14be2d0f6f2901f2030dfc3e19751fca5ce5a7104bf7947757d5f3dca77cca7fbc4b3c1be69b5bfc8b035547e92a289e81e23fd033fe66a5235f2ddb44aeb50970b67f188c96c2ed6e8003970d130a8ba8c74fc399a490946a69d4b480b3dd081c906ace37a700cf0dbe760331a609118492ec57ddb170ef9d873c9038621245328aa2566d1f75809330023d03ad749ccea50285dd209b46a1867d8ff1a5b6aae07f02e209b98a9b6db9f55d6703e7cac95e778ff37a566389ddf5c12cdbab55955a5375339c0c420d52bc07ed5e035ed55a9d25265c21fe86002cf522b6d62a44778dfd315b506d2bb04c5ab00285037e812563967c56f3558ecea3e0a848bc45be07e4caf40f9003be283d4cce3b7a03e2317a9bfb75a2fdba4940a08a10153aa0901a688efcf4cf4e969c8e0b29ef300370bf22c35e322bffaa0c26fdc74bda27fa721204dd6d04ea82d061a8189602cc030690f54182491d2ca152c2a54ef8fcd2f0820feef806960dff7eb9e78eee165803ce4ddfca14105da9576b602d6f8aed43aa5bdc7ab2776e7cbd19d9b19ccf6cbb0390ec8fbb7d7705ca31169d2a36e7ce4d10da3e34c24b723ad1b108321ea50317032835baf0196b90c55b693c16c93d64df443e7580886a72f3a77a2ad0e71f928d031ce18c4b3ee73a24ed9776cf3effb3db784cc4912bc77c77b4fd9b6cf5420c5c03d5188101b92bb12c3572447e4a95f04dff3524eba4afe01a9f4fdbe1c659e64b038b5eaebe7e0ef8a8a3bd4a3c73fb741049a9bde8daec14d146c71fadee45f50003bb41124af0f6b39eeb61073db28a644ac7eccefda9c419a967d077f8502c5ae00304d9107824ce6d7e9eb7111b472372917161d5e13df55432898a2242389dcd160320cdc1a12f2c717e86c2ec4a991f6adb951f2e9fdac907afec54598e002061e1036cb21d6bd25af92d8bea4858ecf75d05371694963ae57cdd35d2f7e7401ee01503e5a889db37af136ee62d8ad9fb874cacf077a1fef653f123e251c98e763af991034c03a63feae0d8b139ef08177c6590951d82b18a5f6a8b54c9461e13f2f8352c032782a16c69dfbcd2611fd14c70bbf5cc05562b6fe8b91923746dc679522df2020340e20a9407511e8969519d53d6d39bcfdd86c5f5da9dd34492c5e4b73ae8802c03b0c673b1e4712a1db89b4a7ef70a18f2389e71a508d34d94e64016e13a83162203106dc42bfd99d51e1b247ae34695754b15bf9c3ce363bfd013821954d600cae4033c928442bf91ef03715c457b62442416d8626c88687e86eb4b6f7f88cdb482440346693a38135337739196305addb7f76e8684fe99325481a834936c3619af90a8038859ff2e061e922ee7951c8216da30ca52f329d3bffdff99321b5bf9e73eb46503780ff98c2daf3dae95860e000494a43b56a498139af0e39acdf2cb17e8341aff03951222330a84f131d960949b4a5f76849742e9460ea861978c3ddaa0ad0bf7a2031f23ee2862c4d7e26ea84206d04952da1ca8c194b3877ee3401be5700459895f03bd7aa2d6ef68d06c450b758b9b46076d449bc4761ab79f37ce2247c6171f51b4037337a58f2b99d57b110f2ff414042023e0cb9fd945ac959273d69918be8fbc6f039643c50a8bd2186958809e276c404757edd7f18642e47a4cefe8d13e82c270f003b6a39791eb8e258d79197ecd323b07bd1603d22b86c77794ca7a913087a9b6e0037859a472d0bc51db34e022918045a1a2284e6cd344ca413d2665339328aa643605581e03721ec81b26a5fef6e5620ef5e56ab0f2106698605a43046c11e555c8c00c0c4763790ab5daf14305581e03357b8ad36151f1d81ab8958284a62eec7e63ab9846a042933067f156b00c18194703a2da676d084803ec4420ebb6d58ffda0fbc684469d2be7da85cb210bbdc0757dc76ee3d7abcdeb05581e03303c7b34852b8411ed6503c79ebb6b684b2c91319c7880c47317256dd0040f05581e03ef22dafedcf03d77e488703cff52a7eaa2ea68244e4b45fcbc047853b004130334fdca1e2788dc9bfe7d857b53d4615c9439c6d5d0893204795a9ea18a82daf50142005003d38220488983895f813b934c9bf4a37b69b425dc2f3835bf26271a881058196803d65a04cc8e333d46ee23a19cc6cb4b0f1ca6de427ee097353765a723105eb68605581e031be9da4da1451b1b752172cc219fc55682d98895c15a98a4784604835007011bffffffffffffffff05581d030781ea9f787b5148e96d030851cd6bca56edfac48c6ed113e01f04b0040805581d03d1db2b06ec9891da4a4bc74171f5a6031319316d671390ab4ece2d700c182947dce5304d102a970219880001410b031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03aabfdf72b412fb7855f58301d74f8b89883ead501478747a29a1e4ecc007011bffffffffffffffff0219179f03c96bdd996fa532e8ee0c2c6e86f2aa77c713958ed11d67693362c67cf037857f03bae933c1ae03a5e3284615e8e8c7c500869f82f8790741bb161c9adc34b2f1b2037c4d18ff372927754c4275490e0c7b253c7ed20369ac1230141f9d33837392100372285dd333180314a6e43450c5427d28b2039c4c71316149f6796106a717ce9f0219ffff034cd87fe0ce84e66f49d4de15bdb4475e5f1ebbdd2dca8eb3e0de46094af0016f03f44e2c710af6141dfa37ecf45ae2dee7fb82763468abba83a456a7fdb7d907960219ffff03568fde5f0d930391c10fdf94ac5635228fdd3e94fc643b5ad6beb51ae9a3ec3a0219ffff030d29139b89c544e6a804d0b4d72eed80685431548f0b93a483391e9ab0d1ceda031227f8c49cc6b8bb602b2ffa104c320da309c72b3df2c148c30cbac9bce5a56503e1877cebe24c0b3af4d0799f545401db88c98274309335dcbaa956f2069e560f03fff5f33e5cf8af590eafbb1463ff3b143fb45abda48d8afd39559d80babc8fa8039a6a3127d056b51c93586060e28244f5a649f653da9136680c5159aae0259043034b789f2c2cacc04596f55b61eecf9c361180c3c3873f57172234181e53a7eeb303a6ed161ce10b1c1724814184c7c857ff2363ec552148709608dfc8a6e606a76a03e5473dfa834a6eab33f2e6ea7bcb5a2aa9bda720704aad7527feb03c9cbc5053039415f2314832e054fbc2ab65552f192876ca5874f2b1b66f2837eafa319f0af503246d4a52cd0334dfe5a559352427cdbeed8d31e6f948cffc4b84e2a1f06aff4703088d6fcaf4eee43eb46049da48c7adf25d80253999e3924456988a3534f04a48039916ebaab9f113375701983fb97bc1f809095585054568a7db0e6793a603333c030a34438373d9c88226f4ae8e1d3785929b7c3146cc9ba08805de1f60065e983e0364bdb2ae98bc5f8fe1144ac515ef11b935716048d22953909091219f0210a1c703bdd8380a908137587310b8bc5823b7d724fc3f625cb9506d92cc4bcf2eaa816c031c5c4d2e91fb8cd514d67de657bb3e29964e762c52455379b8657634a2af615c035b2244ec309f2bf0e0e0d9a380a9153a4d77f16af8795642ef956b006b1bdc2403cfbbfbe13b2bc5bceb33983e2d424e34e97fe3e4cb3996604778c32224380c7703670e060de81c209a2e076d49a36c7d524342c7f2d141b350e2768ed702a2fdd90378325dfe99124a89f80c4a2e29af7100ab6c0ef625580e22197c3e91fda40ca803db1133c028a33a0146929343afb2440b3bc1e71d67affd865e77db295d37c2cb03206c95950c00c1be9e6dbaf5005d1c64bc131c316109061210b610757617a942039169e3f6e13572fd00bcc6a344551f0989f6b50fb483097d62eab7851d1f75c5032c423ebe122db30187000162468c34d2f81a59ff6851992bcd0095e5307dac7003e364568342155b7dd77a9bbad5e1656d3dc37d08b5862cfde86adf736f0e041103480369adad31fa7c173c48f5dcfdd8e655418f441ace109edb79b75db23850f103f1c63a49199629afe4bf6f67caecbd2bd00faaac9f11e82ce71b8e25e84b3b6903f6a4389b4f4a4b33423dac31c2290d7d9eefaef068a0e6034213609040b0f6f203dbf3830e36400dd2b58dafe37ec21d592ebe12471faa11a8c8bde74128be5450030e43ecbaa3670d6aa9e7e4fc7b5ead8e04bbc24bfb6aba526e558e691f4b0b7003febc5707b41f53f5a25becccb8fe5450d6977e7f3cb77f44333f126d6a18cd5c05581e0322b496ecff6edd9c7cf39fa512df430b75ac9f399ab9551f129d39d5f00c12470c8e8a71735f140458aa608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea265627a7a72315820d8a00dc4fe6bf675a9d7416fc2d00bb3433362aa8186b750f76c4027269667ff64736f6c634300050e0032038c16ce2f6068c652a695d4ed0358a0e0d0125af1f850808eb85dee2b6ea3220c0058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563054d9db270c1b5e3bd161e8c8503c55ceabee70955200582103cbc312670fa8f95577d8e0705c59b8734d08d44ce8114cd6ecf9b5b7cfc1279054c7aa1b2cf8c7ab9ff354411320c4c4f3f9bf3550005821036b32740ad8041bcc3b909c72d7e1afe60094ec55e3cde329b4b3a28501d826c054cfbfac74c26f8647cbdb8c5caf80bb5b32e4313400582103fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc53054235ce905973fd289ccdcf1f492ab01a4e45dad3b00582103a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0410303a0180ff68c81830d7408c32884f87584b01c7e1b1863b8d7d02a8c2214d7e32a00582103f0d4c00fdf73947578e40d4e4682d5b73b9bd82e54e2a2440bf240e46c80b65054cad56fae244546d0a53e8afe285acd37a49e2760038153f61b6cdc3a481aeb9a56575cd3d13ebdf041859211a53a79c9009aaa17740058210371a4ee84bc78b028133d4e79ab7c1efde80cfff19c617dcd42b43199e514792054f8c1c8b85ecb964650f127755a7394f1520183b10058210343c492b2e3265912b912c15c4d5e668a7aaa726ce4053792bfda2a6a65ca7d605424fcb9ed2bfa9264526bd675aaf392526abe19c100582103652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f05820a3bcab7579c4a63648dd7dd4512ab721ffbde90c7cd9580e9b8bc369ae9b6d3c0219fdcd05581d0253e41783aaee5cd71dbf143fc7a620089b72728af4c5f782d3953cd50f01499b8cdf8a6bf530c99118aa05581d021bcaa0d371bcfc728cc48945c4a0581fce262d48977631ffa5f3b1220c014717ecb469ba3d7e0219c000036ca49428110f707d75c8bb6095df01e4908f1be66bacd27f8d17cb9b1cf6ffa303326f69fda2698664cc415caeabde2eaf0df181a0ad11a0e7853befc2b48f425005581e030c983369584dc7ad2827ac799045f0a500872ae07f3ed07a38b17236c00c02478146b17616400005581e0323f159691ef73ee831f51557dfb841dc5c64bfe7d4d5b0827cfe9c2f600401034a3a111c9009420a3f01067828cc28b7467836b228ee139fb94fe8bef15f17b305581e0358eaf8b7237da0b15c44b6f018df11ac13333a2c1bc10c3722bad519900401021927ce030e175ce6cc166496ce3ef63315258f0452abf2171a45569825c68d72add89f1f0399a6ed5905de0a862fc163f74f7f81962e5ddcc417fa725fb83dbeabf48cf3ce03e199cd5dcf856d6428882ea180b7f428a6f0bb39fcc11714b2f01146ed1f546f038f2ad2964de4eecbfaa8f38bdafaba123c3e6f7055c83d21ec018cb1dae0c6d40219ffff036a67ff939287d68c956576943ea7cd08875769bd0042b4a93e0066ae1d059c0f03022a90277fe1b6dd1a171c9e78f81b255f4b32e08a96ebe6286782b320e638fb034cec5dd806b419cac44f1018dbd3f81723c34bdab5b8466d956a3c727509d754030f26483b80903e0b516a662fa47cd62e5c1ee99d7de285db47b9f94b4117e4b703dc67c6bf2b0495663a204cac7c5e7b04536460eba05b14f579f5ebe645b52d0c032fdad901ca1e8bf8d7cfa45effaa2a673e676b718d054cd61544c802002a68e103c771cfd01ed0381b8586ab8d23d92b4c3f72b69c0153074e34259a3fe2747e6e03213eef9e6e1df651f103bb10dff4e26607371335c9aa174eada54b144c76e6450219ffff03557d1c305b9349cedf15d7a6d132e2627b4afbb2117c7a66fdaa1e07691cd49303db46845f00363f4161aa0fe557b6874615695f7e92e46030b2b1cf55ceea743f0348e8c5c5689b692d6839e6b9870f441dfc6fc4f0b11eda6673b8d6778298be5e03cb2140f136321a43631a53ec198dca4b5e692394b27bfc1f9177d05ead3d1f390352bc7c80e28f4ee6cb004bd2150b3e0dd151d05a4282b11a1d26da726a5c70af03b01a34b54090c1140185fabfcb5b2d94467b0803179dd72eca1933b923b15cb80219ffff03768fefc6fbea018c8c6e91b88ee846d03fdd3ee201dfc15e8c6d0478944a09b20219ffff03ff9936501c1a53fde89aac65fdeee9f603a75b914b902a0ab98442cfb80ea44603020dba4593a7f4cec7c0f5feec7ed5d63f553d516230d2dc443cee047e56803703a99bc9ace95965e8ebec91eaefa5f3e5f81e9888a7e6b513082b91f5441290280321758c88a1bbcc385853f70a10eaa9151f7311fcb0bd2bab536b64435d975e0a0339a4abe4cb3345602fcb1a40ac56edc2f5ab0f7e078d6a9d5b673651409e0906034ac0fded0fe685b8e4cb6949ca4ddcc2581b59962626c002e6455e52efc0fad303abb2c6d3347bd24e88e70bd5712f93f139d2dd32dcc8c3f83dcb1b1a3b90a991035f418bb08bb1f987041f8500d9df2c7385e8f40c4e0882672fb71c3028be0d7c03d4bedc4f5a5a8d828b6a610de6be0295ccd7d1637526f61539e2d93225ebce0803890589e4595ea115437c2e2c12a0a3911a19e37442b3a04d1f6aa67692cfea32030220e58972f9a7a13fe874984c54ed88d18d3b955a4aad08554a677184a318e003c8a1ab5a620fd1edd58f09f49dfe9df5671c2bd7911ff429365cb336e10156a703afeaca2d727ef38ce37709bfaaba503c7d0d67f59009f19e47f7b60bcb10097803fbc325284311023b8c7e66c52669bf4c01b0dd2c64d014e2ac8290280a3350fb0338752f8dc86227886b579715be3ac338f5a7f952f06969de65abced765a4d55103de8f8dab002a06b3bd74fb5b45292eb7d2c9946c450597dde79787a42a85b60603bf25c79fa7edcc66e4a679158b5ec9767e8f3eb578a9151ad52cecf61769e30b0355533ac62e9e8337f7fe84f9b65e94cb0e27c1306bc8ae9d1618e375cec8d47d03ddb97da23290c4788491b334daf55e4d400998daf27133a9cb992318b4ee4c87030c903476fbded60f5394eff7d331007eb7b6ee383d73366babb9746dceaf381a034dae975fdbdb7aab7390a3947950cfcba763ea5f093a9b359a1dde0bb14a3d2e03d6a445cfacbb339c794fc4bfd8d3749513fd6959bb5dfb2d55a03bf4d6b90b2003e0819d5a15ffd9142fe3ab2319726910c45265c4653f1e2755e7f68932375db00351b4026550737104550aa3b09e1770b24e66f4c1079da5e26842d404dd988f93030088c2d3923e7f0f42709840c4d6e93101db162d5ef3f718c426494821cf69b7038c30a2544bde3c64e09f04c6035b1d9b02e70be56c08f3d612ede48b29a1ca910334cab57cd88bf723f844272cb8dd3abc086033d59d2ad5a5dc682b86d76cb6e403d9feee156d6039fca6c57ec8e83ed704328b7a6ebfc2279e497d05ae5fa5844b0384401c5beb11a339ceb7a4b155683306e6b842cf1b2e1cee2436791a8b0abd9603752732584622bf146c48310f24d11eaa2a39d93d6445390d0035214cc975d45603ae0285c43c7fe64666c18eb11232eea534ca354eb0bf5fd2223bce47e14ec23603b45f58453e4fb604022ff1ab3e7e9b4eab4897a220e2a6b42882d4b5e5f18931038a3b60e33e926b2c25b5c0c1f1fb8534a8532f38a0db03460ddc867c16ada26b0392c486d739caf07b0eceba77b43992b1e0721e38ff87d0b5bf182b7d6d9110600338508864f52b721ff171d6669ca1da2d7661c2d8e0ab01eb01f8c00b77b61065037c7c0892614d44957caeb51c513ed30a9920c6dd4997fce9a0a18628d650107b03de3c37fc74fd5c28214b5aa3aa57c47f6744fcfead1a960e8b71fd345839358b03f15e322a2adf93b3fe22a2807a63958b464ff09d6727bf61248e3a0b89f48e3505581d0222d81954e760e1cb436ae1e229185e4abd05fc9cb965edce3b9263970c034713de6fb855218905581d022b8e1bb6344c54e470c1c08663f37ccd561a3b191a9b509837dbca900c0147116fcccc8ec00002193000030c315360c349f9f826329f3e855f31d7b2233f2534ea9331357a31190e4849f0034c3b9ec4a46459cff10f8565c4c6772236b1535deccce86e3d46476d1e9a8f2c0605581e03e9a69e89cdc645157ef74fa3ee52587e89b2920d7919c357e367da286007011bffffffffffffffff05581e032813b081fdeeb036b908498a648ea21ac229b837e2cd6f5997992d3040040205581e034aac8b05a445af18ab91f9d7e6dae28da34181906f8d5f3a21f289a5c0084738d7ea4c68000005581e03be559485cc677d7d70df94982ea05cca1bbc06632dd9db00f4e1f2e4500403031b4a6be6d34c4fbd566b9bf14bcd4370e20bed65e7c9b6bf63d26645a1e8d4ad031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0381e8c04aff42f27481a5da5fa0b2faef568b5c8ff112568f724e03a42007011bffffffffffffffff03168a73e354420215d793204e3976898ca291a8018669903687ce3b2575e815c605581e039c22cc59bb371ab5147cef652f2bd4cd67b34c6019006847bcddfcc9300c03450ba43b740005581e03d5d05f76947319cace04faadeac2850075e2946032346bc69d0cefb6900c09470272970ac916000219beb9033a43dada57d85603a8b93125b8bb347fc308cd18326b26a6793fb9e98606808b038c55deb7655ac60f8070253b450c2f278ec045ee419b7f4c5c41b33067c476fd0219ffff034fdd52a2459203541ebd72674cbae4123f1b18ed6d506b03e9b0305955930f3603151b164f512f563f5198277454072c5665b229c4e4e0b9d8d1b53fe03f2593b503eb2f42a2660b4e9503edae521218ba2c71896cfd2f9dcb2cde0032d7b538128e03866555e679e84ee319482c7b9aa38be91f1cc6dd5acbaa614577b203fa496c160309083b3ae8492de41fa583c3faf911171f7bf5054f1f2d72b46a461af55b0d1303cba2bb2ac82ec468fe8eeae4752bd31d2ffb7c18d785f9b8e113870b8afea8f303afda7b00383b6751318957299338b1e67f5b6d6cbaabeab93b40dd45538d45f903f3a6a3b79cfa08ebc9246efc5aa722d48384e1541a6310ce90cf4e907d72c15903d29c9c9d00d87ab43daf9893c336a0284b8b444d1f984bf7a84d4492e07c0f5c03f8e7b76ea885f40d6eb037f1ac9f677b60fa0e41c4a8a9d2259c4ae78e838bf70219ffff034eec56fbd7149a18084f9ea5110db830a4983e6a3915c996484c37f2211b541a0348172fc5b8427aac6c100eaf7d6732c816c372869b227a27df1d0bd599738afe039168a702ed918c0a965c945abfa5a3804d6c892393b622dbd4be0271047cc18a0219ffff034266843134861f4a7afb2b087ec1cf713e4e825f10be88cd2b82c86c8121dacc032ea591b41464da825fe02cd4ec4059447ecf33e67400e8b8d3a02bc2de0456fb035440606187764a5e12487514aeca18ec589701384f0ff558fc4f87ab4391562003da7e4d6e867da84947eeb98473934ab2556781fe2a438dcd112651f98de4c58e03d6e04cdaf838f3f15866169a8bb23fce474135127410049789f71a80737bb2ef03f24216a08915db77ab048b7b3b00ccbf527d584d3aca69e05c36157437d4eb7c03257a0c0218e76e7fcbc66a1d4cdda7d2f7b5d9f99aff3333cc8be366b1feee2c03730574a42777c01df0faec8ec68e2d2baccfc83eff6158255ad118f7705cf7e5037e4211a51ed523568402b54cc6ce39d4b006fc0db905b42b095be9a563e12c940364a235ba0b76b95a691c91303b7c6f4d5c165f01bf6af17751ef433721b41b4403938d361b8d4bc03958fb6d2ec6cac64e24c1355beafcc3167461dcee2a175aa103e11b79c444709109795c32939f414ddbec5a54fbbcc684a741738c460fb9018e0368d3963879035253ddcf6ffc1ca5e105cd69186bf08c8ecf0a34baa18bbd122003b8db28f57795a4f5e093b9c701e4ac296fe9e182c480f69756fc4779dfeb99fd05581e031aea639f131b5d6709d67a4b69e798902ef0b1d4030416161eaa9415100c09475f5ff945331b6803f27680f1374196b18104216303f8e4dd6a9643a9076f80e1b6189c9ae5d969e905581e038ace53164728a2ac028486bbad188d20ab46071f094f62a7e6addb64600c0147032d3b737546b00344200c83c3c6b680e6821e961a977625b2b287c973967443266ff648ba82800e05581e03ce74a1adf7de0dc5f85f9ce8723211c2004de37b630549a74b8b8b21200c014717ddb746bead0005581e03e99d11a6427ebe89f00cfc30a60767a2f6a73b830449875bf9263adfd0040305581e03dfdfc80302452ce24bef43b8ce8927c1310598dd9fc67035880ac0b100040205581d0287489bda689484d6f5c226e460bd79671d74187300dfe10db13d7f00040105581d029d07a9f665d9ab380480607dd856901d108e1ce88ddabbf28143c4b8084778cad1e25d000005581d02a44f8cfdaf998dd1e3b7cefed1099d9ceb62935c2a965a4e0c505d090c0246677cac379f2002191c0003469efa93fd1c02205b63a5855a3d5bbff4879337975b17bb6360c53633a494a2021989ee03b1447b03a2bd1227ae856d716112d8701a3bc9ac16b7f22e4303a94fa8431df703a5d5020011071999db3baa7706a421a562a00cee8bad680bda576abe18b7e6c3030e0eed8a106e77c397d02845661432bd82f1926dd3d690fa4636b1f767dc8cb7033b3271d7f132328fc1cbad91642ad7d9cf6bb9b1ee6b14458b5e7e748938699e03fd2dff65d0b5f086cc7f0fe92ff05d66b06c122e3b7caf138d97e5813c5528d0032f81bb34052b0ddb27bbc423f6d528feced0001c683265501ec1bccb4894ef960356fbe6f47aab3669ff4e218687210143b5d38948501cf1439a418564a9ea886203b25e7b39b949f3f2d4e533f9002ff5d8c054e03246c810f197cf52cde83fa0b603c1f73a875ea3f89343b54023e8c35cf3dfbd09a6556f05976a03e0a19a3da17703a723ba06fe74db34e841949a94c086bb11f5cd6ab86b7d4b8c531e5e35da4021038dadb0c87e0dbcf015f8384055ef9e927afe95b76aa2a95f653fd8b2566dfa0703fa06569ef64619606cbec69e9d140b0ae7780ff53be8c2230573c5de3953d2fc03d0e4a0433214b8af4fd186ef1ddbaa3589433fe1102bb698e2fa98e868b169c2033d09a7b7f20df3468c11a24ac19c6cf397c25b62a72e03b323a9ffdc49fdcadd0219ffff0306af0eb68607859d062982812aa0a559c9e300e9c1be10291a84fca9778af74103d9e72d00b308dbd89d4063a802c30c421044635461162b6f4bb1594ea2fe3639032df6740b5116ceb321500ae714fddf05b7f7824595886e3ebd96244fec31ccd6037b88ada6c02ea96e6b7163c0c0dd975c75d68d6892a535e55979ca111d0b1b6903e0819dcefb8d7afbe0686f16f34b8610a0e23de9d57463b25463a2482eba74bc0219ffff0378ad3312dc2bd5bdba861a64aacb91a8c7d314f5bf38b334881571154a2937b90385826fa275ce16bf7a535062481b20c0e77aeb541c794b883837cc230a01f64103edd9f5d30c95233d25f3e47f7b3e4abaf43d0addb1fd7cff6b650f8362a20275039b6ac97836679a8e1e88f45d5b22232357fb821b8afdee2b89d19efcc9e36218030ce924e3c44d43003c1ae61268bcde3be71e6894d94cd1836c0da1392d57ef6e03c27f925ee344fdb6760e37ca97c8378db41142696739dda857bcb6c9e66e70870376eacbd7de620b723532657025e568b2e66e4fc3b5f151e27e129208d8fcdd8c03ea578fa4b5077cca659f0c45a17396c0741d9be09483172d269c80eb44ed1bd203ee781d4a959718356f3b45d90ba5659c75db726b3d4ef73b827a63dc26ab879c0387d3f82e70c4236f0ba9f1d7b251ffe309b83aafdd1b39098440046d414ed14d03eee6a6186b073ae81ed28d3e160abe659996b6e93b4cceb56c6cb978ee31316403f55b4600161bf0408e19b0634f9a5ac24c2ae47b6615b8c0e4ff4c3800259cb8037262211e4f758d09a6ba1740ecafe611485bd8ad6f272b3dde39d0e17241af7b0219ffff03ead0685bf1a589936dfe045921e097b36dcbd73c9c0c32e2fbbe760ff11ed3e903d7d2c95a5b1d98bdcb2095a847e2123b9e2aa0abceec4a986805372fcd41ea1003e298f1cfefd7d3f48572d41e367d34d1e52ae304e41d412bd67f33925d11cb4903b927c8ed7bc943e513173ce214b2993b5a18ffc424c8a9fc9407c90d2437b9da03bf6b4b9a9dd08b4970a8f8718f92e135d6c2ee3762dbce3df64f2d4d5c35e3660219ffff03e1e92a2d4d1aac2dd1afd814f97c78d98a08c0cc8a9b809d543b155913bb30790386b18b91230d7f7fe0a87d695316a4e4907d814e9e9dc3264b4c0875a2fa6551034fa88d8b5caf467b0ed660c1cf30a489f774b7603327059f295e42d40f0086fe0342f6da1d70fcd5571a30c0d95b872fc305edd960459fb08798ea92aaff66ba5f03758379fa26b427b3fd8f951892602723aba293e61708aa25f6cfe203ab5dfe9a0356071e107d2316fe880bbb15eefab2b9613ee5e45e77e24b9bcda98be3b062fe03700bcc1ed210620c5598cbec6a0e18164c0ba0c9c34dba41a4f0f2d739ad047803601b8cf438fe0ddc4c6794e17d603f6250fbd1842dfd0762ac47e74121ebd68603b16983adcefeab843dc63b319208fcec1004a46a9b954720633e2db9b795c1c3033a24fe5e611bb7239c76c9b292efac65086bf54a204839b181fb062d329a740b037566c3e2b60cc547c2787e91c2d696ec9ae3913b2dba36f8ec60512f6b3563a303c2bc9e447e95044115241b590b68bd955d174f75aea1d7e4fa9e7058e617f0a4038b5dc22b824207e32bcdd1f6ba316efccf70b407d6bc492929b52bbba4ae4a6c03b8badafc53b5bc79c0a0723ef480cf46faf930874ad14e86f0fda86fe8e1c77a0340fc3bd5b138d0b84e39caa05f3d88349c08b91a438aa3127613442d3524a0830358238747bf53ae4f9aac9d4c78f64169ab6cb129129f11a6f5cbd63218526ce903e782af35a8fe9e7adbb95530b7a32c1791e2c6c767908a811128f99d9157d64d03cc2b8c8bca5f9dd4cbf6efd07b98aa2540e2de16e23eedd736da2bec3663c34803579b2d8e16a3ff2faf0c23f95516db596a8181dc99f4f6d7a95cb78d5e79e92b03c0beb6d5e5931519bf2af78bc016e1fa3153839d0852e78fc5d88d60ace76dd203f610add310d5e1aae608b623d0949038ffacab16312afb02a5d5ab62026192c70388bdc1ff874b90e28266574c58c1a437f20dfa9a97e6e8fdab1bd097c483084203888518e90c47f231fb26982f5ad3ea2751320c5c41b812c1baa6f4616cfe69fe0395b176726d7abf49f4dee4c6ffb1135a69a00be40eea4a8dc8c4176e3ceb808905581e035fc964f9487adacaf7ae0bb3bc18b12e67622c2423d88bbb586ce837900c024701929531f8b56005581e03fbe649074fa3522d0dd49f5885ec2d802bea35d7e7cb2be9638034ec400c04470599606d1cd0bc05581e035aac019ef274b5eea67e769c1f45d0f69a01f306dbcdcba0461992fc00040203c6a2c8dee3872c87a949c756de814c8ed67473892a500463d18ccfc37fb2b4ce05581d0275f6612158797ac0c304abd694d0b8151300d1c7ff1ace366907bcc80c1901184805c1361e2bc8afcd03aefdf0b549a4dfddb17ab79884222d73a82f71697b1a96128c0256e16d4ec9840605581d02442da78814747a39ca9275bd8cf3a97006b63791fa5527effa4e05ec07011bffffffffffffffff0219030003e4ccdbf3cdda19bea0e3e830394ba1f9bcac864639be24253bd5877ae176ad56032df39c0062882ba634fb24c89e7f9871ecef10a6e6a6e79a336f6ed463d5c942034ada1c367dc65d64eba80b0efbb04366c1b0bc722b6072c4feac97c6b978ca9405581e0392d1b28daf4874015664754a1e4459b2afac139b747b2f5f9c4171039007011bffffffffffffffff03eabad111292b443ea3277bb1bae88934dcde53e475e8dda98cc6597a7ba8ddab014200400219b1ac03d88b360453b252e4f7dc04e7f704707a04ab82e8367b6cf4fcdbb801127adbca035298185f2801d7c3eb6b2b368b69e3521fcb87bb19d1af9c48a8f2387dda93ce0368cd2466eba0898c9d6d6571a3af322759390a77fdba53223dcdea35b0f87e2b03ad65786425981e74e9b3a6740edfba81739cb2ce7b4818b083dc07cde6adbfcc03c47c7701a946db770abb053a049640879998e69b42f12b3fa79fe0ee2dc98db4036522f95f9612feb102d43e22c61534b95e2611e0661b6c37cc7838c1ed168f8103db122685749f20ed7c66d2d3dd99cec1c70d05bb0be776ce5e4f7b72ecf848ac03d521ab257282f1048fad08b30d06e58fe3e3827b5d73069567914e347bc2db21037985199a120ee7d801b05668bdcbd4c0cde71d0cec221835a7bebc8973fa273203c226bfcb095e63d0612a58be4128c0111d3037aa3bcc8c24454f66530ff6c24b03526e06f8c0929039012d44149abd8e8e121f32319c7e626a1301fc4b4f55d8ce03891380f6b8d03c45744ceab6534eafa3e975484b87e79da3d417b9c755458ade037b5089f63c5ff2a039c025013270da82e7fc1613462a9b6c64a93f8f32be8bab036b863115522341c22362937a926e2b41b532b418e96a3cf2d5373c6e7ccd41410382adda22ed49507e637ee3d9414138ce751a0b14bddc3148610b2599d7178cda0219ffff03c2a2f256755d300589cb3bd2bf78553ce81079e67019130f2365a19df3d2f3810391896879cd4589b7306cfed8afeda8da704220499d3da1afd92a2df4314bf367038a5e7ca597707c5f80544fb0abfed1c73630a6c7f0b98aec476cb7bd531be06c037c13462c8ce55162ab7ebe036a00d991045811e8f002e1b5114aba9fc8c186ba0306316eafd30291c2689ae9ea15fcee921626ad27562da9ffbd491a516d81fd2503296b00e62f74ffd7ab2bb3a59c5a30eb980ad57f8f22a79d6d73c0cdeceee0e90219ffff03f665a4046e251335a384ae1104f330dd34992605a7469559758788a6ac7aabc10219ffff0368a47ef83b20ba15b08cf586186395bb9b3d39b265b2af063b2e785ae333db6e034eba55c4fd153fc2dc869e951eda43b3bccee81db215bad492ffc9224d2455e003825d2a4a46da1defb71570e819834a7c1f7216dfa7ae67f6db2d6ff5cde94a4e030547405c14ea949e67c2f6443b30bd5f73bbc89e59478f1ff046f3a600f33cef03f473521405cece78433a1f7d9aadea553c57ebcb4b954b7b940e53698f77474803cb9ba55f19be61e4c1da425c262a82786b3589d51698ae41be2973faff3ed75a03086bc3c35da904a426597175769b1dc6d1313d5d44a16ef668c31d92cc41606f03fd4157b43f68a5a2a1e7e840f47304e08150001ce2d2454bfddb8a69e3c4211603cccf6a6ae7a7db9a8750d97b08945e709f34de0c42eba692210f94bd7cf770cf034a9e4be05ca5c8d37483cd269bc7efc02719313441d5f1baed9f41f453d3e288039999760e2f2b746a8f5bf69a82f0add4e238ee7d2977aba5dbc80c4a682017bd0366b4302d1a6181476a72e2ec3dbdac88d735b8eb84da5097c593291bb657b8d903adc7d63899392bec29af36d21a35910e85dd702d99cb46bdc1efffc41e82796003da576701dc7ff169250eaa5052c3597fe4b1de9c1a77ae2bc6f39ee284612183039cbd5093bd4257c4e3033e0ce184db9e7b1f8b1acf91a70528710dafe1adc94803cf7d07c122b2136b47dc542fea1da4f4ff59ec96b62be2562701327d95ccbb9c03202a4204ac3c05d42fb631de094a9f1134fe24b6aac39575257d0ac268786b3e0368950e932ac362933ee8585090085d3ac14c314407b840bc0a76564ba6982f1703e38d6b918951eed13069b7f142acd92be25725b77ed57d475cc26b369defdae4030b0696914b52dfbb9c04e79b0da1160da0f461b6bc00b68357387789d182b4a903c9544f21c21e5cb5ea38eaf91c73df0581d78cc20fc38238e6307a77c00ce88f0362f4b1328d66ebfc8a9e8afb10fb2e1b9e405fb652a9e103b006ac08482dd24b03d73d1048786b6849998634b6d9871057b1e203be6e497f5cee4fb0c3f59aa4c303f9233b7143797c41820df1d9797a62d481782ab93b178e8e3be85f3562002202031d5c54869ad2b846dc9342c3a83d586499a1e744d81c6cfc8125cd6df45ca1ff0346f679b90d046666e9ac1df74f65a7b461ee7d7a76e5b935fb54cc1c72a3230d03fc774fe2fb1ee4713ca35bbd4aec7cc3baf2ec0bdd135b49dd0f3f73a3cde28c030a61d19367d81e396cb4f84d2cfec640c6aae112f60af5c29de8dc0ae55a4348030d4e7b6593a3af2ad8117fe49d9968e18b07ee5ed81ba1d21c4209473028ef7c03448e2d247b50fbe64a0cc04ec92d6ff0e2a4c60368f1dad1d92de2b43bdf1d2603c22efe4967760047a503780c2e80d215329d3fc4d3c22562c938eb6991d3b25903cf5923019519a9adf08334f59b31ef1cab3f3b28c070a0b760338687e90cabfe05581e032dbc55563f7d350296983b066357820d38907c395834624843083e58900c0147035e55e8bc080005581e031d17c2c45698c9929afdeaa529e0b12f4396f08ce97df90a3846281e700c181e4665a6d09a80f805581d0254907fec154e1876b2c29968e66076f6a773b86b27b4bf274583b41d0c014701549505bf6400045920806080604052600436106100dd5760003560e01c80638da5cb5b1161007f578063b84f5d1e11610059578063b84f5d1e14610595578063c92aecc414610703578063e8edc81614610718578063f2fde38b1461072d576100dd565b80638da5cb5b1461048f5780639804a380146104cd578063b5268389146104e2576100dd565b80635c975abb116100bb5780635c975abb146102895780635f575529146102b25780636b68764c14610396578063715018a61461047a576100dd565b80633ef11fd7146100e2578063459a39fb14610161578063558b7dd114610274575b600080fd5b3480156100ee57600080fd5b5061015f6004803603602081101561010557600080fd5b81019060208101813564010000000081111561012057600080fd5b82018360208201111561013257600080fd5b8035906020019184600183028401116401000000008311171561015457600080fd5b50909250905061076d565b005b34801561016d57600080fd5b5061015f6004803603608081101561018457600080fd5b81019060208101813564010000000081111561019f57600080fd5b8201836020820111156101b157600080fd5b803590602001918460018302840111640100000000831117156101d357600080fd5b9193909273ffffffffffffffffffffffffffffffffffffffff833516927fffffffff0000000000000000000000000000000000000000000000000000000060208201351692919060608101906040013564010000000081111561023557600080fd5b82018360208201111561024757600080fd5b8035906020019184600183028401116401000000008311171561026957600080fd5b5090925090506109bf565b34801561028057600080fd5b5061015f610d91565b34801561029557600080fd5b5061029e610e2c565b604080519115158252519081900360200190f35b61015f600480360360808110156102c857600080fd5b8101906020810181356401000000008111156102e357600080fd5b8201836020820111156102f557600080fd5b8035906020019184600183028401116401000000008311171561031757600080fd5b9193909273ffffffffffffffffffffffffffffffffffffffff83351692602081013592919060608101906040013564010000000081111561035757600080fd5b82018360208201111561036957600080fd5b8035906020019184600183028401116401000000008311171561038b57600080fd5b509092509050610e4d565b61015f600480360360808110156103ac57600080fd5b8101906020810181356401000000008111156103c757600080fd5b8201836020820111156103d957600080fd5b803590602001918460018302840111640100000000831117156103fb57600080fd5b9193909273ffffffffffffffffffffffffffffffffffffffff83351692602081013592919060608101906040013564010000000081111561043b57600080fd5b82018360208201111561044d57600080fd5b8035906020019184600183028401116401000000008311171561046f57600080fd5b509092509050610f68565b34801561048657600080fd5b5061015f611166565b34801561049b57600080fd5b506104a4611266565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156104d957600080fd5b5061015f611282565b3480156104ee57600080fd5b5061029e6004803603602081101561050557600080fd5b81019060208101813564010000000081111561052057600080fd5b82018360208201111561053257600080fd5b8035906020019184600183028401116401000000008311171561055457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131b945050505050565b3480156105a157600080fd5b50610648600480360360208110156105b857600080fd5b8101906020810181356401000000008111156105d357600080fd5b8201836020820111156105e557600080fd5b8035906020019184600183028401116401000000008311171561060757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061133b945050505050565b604051808473ffffffffffffffffffffffffffffffffffffffff168152602001837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200180602001828103825283818151815260200191508051906020019080838360005b838110156106c65781810151838201526020016106ae565b50505050905090810190601f1680156106f35780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34801561070f57600080fd5b506104a4611442565b34801561072457600080fd5b506104a4611466565b34801561073957600080fd5b5061015f6004803603602081101561075057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661148a565b610775611614565b60005473ffffffffffffffffffffffffffffffffffffffff9081169116146107fe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600073ffffffffffffffffffffffffffffffffffffffff166002838360405180838380828437919091019485525050604051928390036020019092205473ffffffffffffffffffffffffffffffffffffffff16929092141591506108c5905057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f414441505445525f444f45535f4e4f545f455849535400000000000000000000604482015290519081900360640190fd5b60028282604051808383808284379190910194855250506040519283900360200190922080547fffffffffffffffff0000000000000000000000000000000000000000000000001681559150600090506109226001830182611f02565b50506001600383836040518083838082843791909101948552505060405192839003602001832080549415157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090951694909417909355508391508290808383808284376040519201829003822094507fb00061f7cc154fc23eb34671ab724fc7eb7b806abae871abae8f1eafce97213593506000925050a25050565b6109c7611614565b60005473ffffffffffffffffffffffffffffffffffffffff908116911614610a5057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610a6f8473ffffffffffffffffffffffffffffffffffffffff16611618565b610ada57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f414441505445525f49535f4e4f545f415f434f4e545241435400000000000000604482015290519081900360640190fd5b6003868660405180838380828437919091019485525050604051928390036020019092205460ff16159150610b72905057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f414441505445525f52454d4f5645440000000000000000000000000000000000604482015290519081900360640190fd5b6000600287876040518083838082843791909101948552505060405192839003602001909220805490935073ffffffffffffffffffffffffffffffffffffffff16159150610c23905057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f414441505445525f455849535453000000000000000000000000000000000000604482015290519081900360640190fd5b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616177fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060e086901c02178155610cae600182018484611f49565b508473ffffffffffffffffffffffffffffffffffffffff16878760405180838380828437604080519190930181900381207fffffffff000000000000000000000000000000000000000000000000000000008c168252602082018481529382018a905295507f779d768d36d59231b0853572f8ee1997a2a762b871abf2c81f18f4bf2af3c72694508a9350899289925060608201848480828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201829003965090945050505050a350505050505050565b610d99611614565b60005473ffffffffffffffffffffffffffffffffffffffff908116911614610e2257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e2a61161e565b565b60005474010000000000000000000000000000000000000000900460ff1690565b60005474010000000000000000000000000000000000000000900460ff1615610ed757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60026001541415610f4957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600155610f5c86868686868661173a565b50506001805550505050565b60005474010000000000000000000000000000000000000000900460ff1615610ff257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b6002600154141561106457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260015560005a905061107c87878787878761173a565b6000601036025a8361520801030190507f0000000000000000000000000000000000004946c0e9f43f4dee607b0ef1fa1c73ffffffffffffffffffffffffffffffffffffffff1663079d229f3361a3db8461374a01816110d857fe5b046040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561112c57600080fd5b505af1158015611140573d6000803e3d6000fd5b505050506040513d602081101561115657600080fd5b5050600180555050505050505050565b61116e611614565b60005473ffffffffffffffffffffffffffffffffffffffff9081169116146111f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61128a611614565b60005473ffffffffffffffffffffffffffffffffffffffff90811691161461131357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e2a611a8f565b805160208183018101805160038252928201919093012091525460ff1681565b80516020818301810180516002808352938301948301949094209390528254600180850180546040805161010094831615949094027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190911695909504601f810185900485028301850190955284825273ffffffffffffffffffffffffffffffffffffffff8316957401000000000000000000000000000000000000000090930460e01b949293919290918301828280156114385780601f1061140d57610100808354040283529160200191611438565b820191906000526020600020905b81548152906001019060200180831161141b57829003601f168201915b5050505050905083565b7f0000000000000000000000000000000000004946c0e9f43f4dee607b0ef1fa1c81565b7f00000000000000000000000074de5d4fcbf63e00296fd95d33236b979401663181565b611492611614565b60005473ffffffffffffffffffffffffffffffffffffffff90811691161461151b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611587576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611ffb6026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b3390565b3b151590565b60005474010000000000000000000000000000000000000000900460ff16156116a857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611710611614565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190a1565b60006002878760405180838380828437919091019485525050604051928390036020019092209250505073ffffffffffffffffffffffffffffffffffffffff8516156117c2576117c273ffffffffffffffffffffffffffffffffffffffff8616337f00000000000000000000000074de5d4fcbf63e00296fd95d33236b979401663187611b69565b805460408051336020808301919091528251808303820181528284019093527fffffffff0000000000000000000000000000000000000000000000000000000074010000000000000000000000000000000000000000850460e01b90811660608401908152845173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000074de5d4fcbf63e00296fd95d33236b979401663181169763e35473359734979190921695919360018b01938d938d9360640191908701908083835b602083106118c357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611886565b6001836020036101000a0380198251168184511680821785525050505050509050018480546001816001161561010002031660029004801561193c5780601f1061191a57610100808354040283529182019161193c565b820191906000526020600020905b815481529060010190602001808311611928575b505083838082843780830192505050955050505050506040516020818303038152906040526040518463ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156119c95781810151838201526020016119b1565b50505050905090810190601f1680156119f65780820380516001836020036101000a031916815260200191505b5093505050506000604051808303818588803b158015611a1557600080fd5b505af1158015611a29573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff168787604051808383808284376040519201829003822094507fbeee1e6e7fe307ddcf84b0a16137a4430ad5e2480fc4f4a8e250ab56ccd7630d93506000925050a350505050505050565b60005474010000000000000000000000000000000000000000900460ff16611b1857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611710611614565b6040805173ffffffffffffffffffffffffffffffffffffffff80861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052611bfe908590611c04565b50505050565b6060611c66826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611ce19092919063ffffffff16565b805190915015611cdc57808060200190516020811015611c8557600080fd5b5051611cdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612021602a913960400191505060405180910390fd5b505050565b6060611cf08484600085611cf8565b949350505050565b6060611d0385611618565b611d6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310611dd857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611d9b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611e3a576040519150601f19603f3d011682016040523d82523d6000602084013e611e3f565b606091505b50915091508115611e53579150611cf09050565b805115611e635780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ec7578181015183820152602001611eaf565b50505050905090810190601f168015611ef45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50805460018160011615610100020316600290046000825580601f10611f285750611f46565b601f016020900490600052602060002090810190611f469190611fe5565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611fa8578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555611fd5565b82800160010185558215611fd5579182015b82811115611fd5578235825591602001919060010190611fba565b50611fe1929150611fe5565b5090565b5b80821115611fe15760008155600101611fe656fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212204c84e3d1a47f4d4e4a44e54ba6a342bb93298db951016cc23468022fbeb4941764736f6c634300060c003303c7273e80156fbab619b5aaf0db75247e09200d0216775befd6acb3fe6890b3130376e3a772db17877b07198d35c4950304aa8f05404dbc238baa3909250553a343005820023228ca7f6b388dfb55171c46f5dc4e2bd6adda7d1bf87c11ce7deed757c67f581892f5f0373d1d55c23dfc759c5ae48500ca88ddf477b3c9e50058200206ab6051eefa55ab665c805f62a2e12b0ee6a5b544ed2c85b71ec0cdba79da54e4c9194962532feb467dce8b3d42419641c6ed2e005820020decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56354bc50cbd395314a43302e3bf56677755e5a543a8c0058200297c04b325844d174f8d8046a40e1f36a89cb90ca577fe85de7a27a37e83dde5818242fb09f3ca3b7ba4d6d424227f3638e970966359823e85c005820024beb1cdd15bb57ad7b51457a5ba1c18d8ffc16af3cf6d21bac2554f3e0bd165818242fb09f727fc6c510f5c5dcba136471b2451baff0be407800582002e030d628e7e82ffd056ff35e0d80002c0fa8451c9547c8cc7f080e4090a9e95818242fb09fe6d363f453bc656d79e81d53a598ded54d88be81021936a003836470c578c35ec5dfa847d0c4e3f3ac0242e3e80a371732561a715e2631d6be03b3b59aae62cf99c9944cba79692dadfd968ddc89f8b258c1970cd2c41d2946f703fc10771364cb979d397b8f3a401fe2d2b6a28000e2488dc5e5fcc64487d1fee700582002f09c02f4985eeb25c644ab75e3221c0bbb8b092c06fcea9bda051ca30ce3ef41c1032148943d1f0041662c4d3da425ecfe164ad256ab2ea9387363055e0f0b4a413e005820022a185453f3b037424002abdb9a62734581b05ab26068fcd16a70982d141cf05818907b673810e23f722a6767b39d2fdbaa19e8a3afe32c2f34005820027637efe763387ffef5ec55fa571dbe7eac4cc8ab69238d5cda1933e0ed5192582011a861a7000000000000000000000000000000000000000000000000000000000058200215910e6adab39800225c99f065ee5e499fbb48041ff77157d1395cadb077a754111111125434b319222cdbf8c261674adb56f3ae00582002beb330ff2d13d858a18531ccd0f5b368d361c7a81cb1510696ea19672c2f8441c1021992e003c514504d65f66b75461e15f9d7daff3bcb7f8603a57064507526ff957d9929d70058200254219e669939af32deed1cd33bc2f2798e77475ea724f3d9539a778e6623a1581892f5f0373d1d55c23dfc759c5ae48500ca88ddf477b3c9e50058200279a70ea5fe1b3b121a05278764aaa6b920a3278375035d25043af45f6ff4d1581892f5f0377cdf68ce9a05413cbb76cb7f80eaf415a826e31303944fe4aa4ffd1f69c958b1a35afa74909e4428bc1c7ebfd66857306cccc5287400582002e2e93bbf9008d6acc2341138c7eec70dad0a48ef889609695c762e7e60147058184495c0882a0008b677c980569f8ada7bed5353584171eda9005820028d9d297aac0d190d7948c8df6eb48705c85956b1214ac5106797b4f81c35d85474758acfce059f503a7e6b0fc2c8737600f9f2c4005820024993d5e717f5e320137f621c6c79c9e671c65c38fdaa3bf173ba82e6fb971358186917378bad5a42cebf80a8da36d488e1ef52a6387ca3c4d6021913a803167b5ac5f7539ba28090015631aad247254c9810f0a0d3511b57c0e98586c10b0391bcaed8e663f6de8ddac3d1133853a633b1b81772c77deb0f75ea3e4797b7a8005820020e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6410100582002afe2f6b0797b10581b00c63935c83c5a1e1f0d6dd646b0a923d2f85b0fd4de54def1c0ded9bec7f1a1670819833240f027b25eff0366b221c7067a8866d6e78eecbe7978455fc4b8335cc1db3a8840a64b5e7c26ad00582002681c9bfcb0eb187b6f05a0022955011c096a21c6b500f4f752be5e406b298f41c10219031203cbc6c4166b7ab772c631cf98e61a4956abf70e209ca2288be4f5f6d7a41ee2bf0319315d4c08011517963064d036227878e4bc7fb6040f0e77c01ad3f0ee8c366d039839cbcef7247844c6595eee06ffb2497a4219ce2ec1de7a62b6aba0eab48e81034c2d14b66813e9a580b3aaaa7b2b6612b912f3aa8255ca1641e5490712b361880219ffff05581d0267bce79287a24c5e8453dee4b1c363dfccc5960e98b02dc0f56374bf07021920800219081003f04f7ffd5b21c59cb563398b2d75522320a99807f22cdd62f9b5d2b86b38749105581e037748e4798564f817c2ff8e7a5d3452ebaed26d00d4196e9205c12a7a900c0246d6ebd56585b8030fcb51bbe7429f2e242bd75a72e3687310192658ac056ec04332d4ca638a25d305581e037dee52dd23d59e35137618c6372783b31d98720503d0e0671553317bc00c02466a2392fd1f9105581e032324342d854a9f1e019a9721b24da01b0fd307fc4ce582d330704884f00847028ed6103d000005581e03a8d62b1af5d042aeb35dc923910abae6ac032b62d6076c036e732a48a00c01470337c1b2e9940005581e03463c12fabcd29d20dedaba96fdd3c666abf9f43846894ea8f1c9e342200402021947ff03808e378354ad99b3f08b469615cee5a4d761966a6131b8c624c64886ac45af6c0219ffff0309f15e0b9b87ed1b864a8c3c3425cacd993731fbfb35edd7cb3be259f758e49003b38e73a47e0fce40fa290bf0a02b7b6de282c8c55414fe4c02e21479b7f7eebe037682ee602ef3556ec5b108a94c05af129083ede591c80e5fb50eddffd669061d038f1368f5741dc4498cb7296b1a51383eaaf3e87e820f719f5549dfc194950167037de8d5a5070f200d9bd4eb7dfa5c10ec5a61731891fcd301a78ec33a235d7853035b6edee2802d53b12db8c0dfee737122f3c2d2d805e96057b1253ae3e8465b4c03b91d565960831fdb09ed5b17168c62d388af5f9319212926e79cc903f822f654039b09d8ae35c8d4e234e79271f9e1c47a2afa71108ae785eb416b57625a43e19303622628339a250f3098e337bc78bd3410b2cfa01f1cda94ae117f1a9e6488a6ba0219ffff031378a3031f191c7cf0050d461fd1db5193b8deba0df66439103bfaaa019649f903daf2ffc4c75139abc8b8ab227d270214935a75eeeae92bf9c2ab4ea300441210038c873bec1b42b18d33b22c72b41e81b98b71d9ff68b6a9d059d8a946463552f103333e57359902ce3855600ef65cc1ed9333d270d7398197b3e7b1213b66874ed403bf92633897f17becd3645b120270766cc70158d2c87adcfc40714027caad19b30219ffff0395b9bf01737eaf3db39c684fc3751810e8d3f04b8a1ddbade88dd5498f95a8ec038666b10cf7af48fb999cd2429d3bb6b0a31d62487283e8b4ae6f86e7a2e3156e0317abe31ddf3190f64451f601d27dbb029946fe2d24f5f2fc35a2ee4ad10d1d7803bb2723ab15eb6fa2b6e1dde8398872dcdce7c21c8d910da52765d9c651d5ba4c0305e3b14f6669018ee01d9afef9b34a57b08b0c5be3b08ebf275ba2db9f466bfb0309c693797d772a32e3c51fdb7408f6fb93b346e0f3b8e0bf4b9fc9e06992cc2a0396196429d9b344cebb5bfbaffd748c74e88b89f3db03b9ce4997c8b3139883e703eeb9b6988bfc81dfaf4c5705ebab7938b4faa5e03d2e83f34526677621243feb03c134d8a04fc957a945e60ff65c3ff5aaa85ffe64acbae3d0e6638deebdcaed28036016696d4151292f662a4ceef78e2b090e16cadfcdbbe950e2d435e09cedf63003739ea4733364c91bbfb59b8a087c945cbf026c73091ec32f8e924af308f464b60389b07b9db20f6f60ee9162b4d6ccaead7568b8f02127b3e503aada24ccab2f5e03f920ea835a019d25b46c96748611744403abbbde9ddaa4e375b59dbe8ad13fc50219ffff03d87bf6b41a42e038795d8837aab56f09beacb3841f2eed8f6c8c481988150ccf0363bed2bd982928b5a4373ce913ccf02eb9966b104ae2cfb21183af3e45ac6db50394180909312145c4817c380e9dc9baf85e6297cb430e5028261e9aec46fef690034dca1048a7b6d173714f97cd88e94113fbc538d0057147007de1ca09c61754c20334a9b6a8f95adea41d5ba3d91722d5e9f6d0881b7dcac67cb91b03b5edfa2c65033fa983bde683eab1ad71007f872f79845026af457169903765fc38dccafa3ab603ccc6546e963a943e8acd896c0f43a8c69c7552a9a74c0eb4b7ca9fe821c879eb03d3126bfcf9735b54bd7577eedf005a37b96bd9921ea491eb7744a0c269ed7d0e0397e3c97d113975a9a0dbc2389bfece00592168385d6e53ba2d9a49f7c6c78983031c7a15414baa8ebfd94550e21eecefc2b538ee8f3fe32444626a279bd62d354a03b563c9c12c31a519a6e112346080f3262d038836f304baa1e116a7b73e63da3b03947eb0debf3130df6c0ac5e28ffdd88302b09e012a188119c194d586ffe368cc0392ee4bd359f9321d2988f15ddfe6a439a5a6985cf33744e5fc2835ceb943444003892de289d8cba73fa7fec31c30eebf530fe3967ed993e0cc233b1e13a84ec12d039eef598dc199ac898171486a8c142e6c5e7188913926ed4fbb8d832f9ba83e51030ddbb973df7df64fcdac7a20800e5a25406c308db4bede53df2f3953d0a77cc4034021f2e8bc45bf429185bfbab1455da3051e6f2f6f00f191bb2795e77ebc4dd803b9d4dd96cbdc3e37cc118d5fed533eee4b43043fcc04c90075ea977e83f7e75c036927601cfac599f0642c53aa98110f1e708acb61931fa0c492153aa4e859ef5d030ac0dd0f7fdf04083ff77f178cc1710132d6f95c03abfcec65b104fe0e7c222c05581e03a5d37bc25d26962b3d78b98e94d4731665ec15d47692e73c2488d7771007011bffffffffffffffff03ef80a6a023c258015a5bc958ed3c86bd5eb756177e5ed66429e1da0a2c6afb560317d95ffedeea10218c22b8154a1ebe0cfba8445f696ca3e1a73b28c47baa5ab305581e0373a8b83b10d21ef5c80e34e95450031e325861b0f8b80d036514ed6cb00c1046bf6b99f1e60805581e03d6e4b8f1b651b4ac3b3ca5bff800fa3347a0494ec6175cdd6380c254d0040403e1d462f505ecdecdb92b10f6a8fe6eaabaa2b04dd0c64997aad33a8aa5c6b4fc05581d022b714e95aaee71b5120aeab3939935cb1c8e1511cc159008a15c26470c084803339560950159c404592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032039c7ef9ddf17b5c1769df656cc0a65c33bb115c5ed19a78575f3a9b532ff962510058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563048037554e96af5dfe500582103e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0501e0d32da33293ff102659161294d49080058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b582056d20a73805a163e5c493745fd760b5a821459b34f91e614ccddc4ef524053f5005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a84f1b6966ddfd431fe9c2baba05b2eb0802184400582103f6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70410100582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5db70000000000000facadf3eab9be4500000000000000c3767ed376a6ce0058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f54be3cd04f1aa40d8a4c157c378c6d3bc379e6aae20218480219b44505581d02f7b3c430be47d6f8bc791d563160f89d48440811d70eb8c7c461dd8c0701192c1d0219500005581e0397dcde96c43fd325ce18e938f8359db94a312ba85c066973466fd928300c01471d4406595199b9033235aefb650702718a5bf184f2f8b140782e14ef4371fb5d413713c01e91f93705581e030fec09edd67868c3fea5d92907e3960631324b3babbd062e272d8c0870040703b7016c110ee47a7e0223345f246ccc8c52c17cfe29a2530fa2302ff362c3454505581e03919e7c0b225d640ac52a8c80821ee7feb25829daf3512274a68a298bf004020219f4df03e8c2d73f1d1f391f0878e5427b960f216021bccd42b2df001d81025e7240a002035a5a80417d7798708635986751f781391203371e226e8420798abeb9fd333d3c032eb9d25027592a9e47d13a966c4685b606a242d58fff9ea7ae56b39438db9311033377e1145d85cc01a13f2cbf9aa330b376c37deb4bd7b020927ed0d4edb9578d0354d6171d323b4905238b5251c389eae240a68d298e8e2200e09cf69cdf4fec1d03c49a135eef6f66e25dc0307720f90318cd4784ebf1650427778b80d4e643bbb903dfece2fab13627cca2e10748f73bd458c43a79a102c9d7851527754c7ffc8bcb03c8ee3f0f3246285bbdb3e5a82a3e779434a825a4945b65376603db72519e70fb036cde063a8d431609f199f666d9a80cdf13e9b75bfc1e93e761aa7aa53c6dc27e031c5a200fb2d85fae7ec3cd7f13e8782a730c8ca5a4fc6e5ed0a4946e5b47aa7a03afa92ad86667145c8c54a29e40d79a64fbd4e3fce138b5087a304fea1a17a73b0219ffff03257d56185f7132d3b53ecc6b6e6401f6e89e82c42bab1b459e328458f201dd9c03981426cd24d98d08dbc8eea33e1e5ad2f674fce7ae04805171442cee4ffe7ce303685b0260d0ebb6c59381f4f8e70de9d2ca894f3a4b7ebab8bacae358d376d2e303a12625b8e1584a9084110af43207d80ff25aff2a25d3022c9cb5367126f53311035623d8ff157aff087c1a0132e303b86f2e731e33b105283f472dac45708b69eb037c293082be17233f0845905af1cbe3b83e872463538d6a481c0dd7f3938388e6039a8dd485c62552c4c1ca104aaa795eab8b59a949134d4865bb34daa56b22fab603364fdad416c9e35e1483cf2785071f79d2cbbda06a9696ef1fce93944a89feb003b99f6c3b17602cbdceffb35033112eab872490ca38af166e08603b1305ef8fa603fcbe3dc0b57625ec7b6f5c0ec6d090aaed925d11fb3df7408a6ef4d0451172b30219ffff039691c9168aeb80b2a3c0e0fb6a268ae6ef6952eff922c2df25558d319f4ebe340308dfd7961eb3faad94424e1d7ddf19eded79e4a68148fe5fd483471208e7c68d03eea5dd0bf210d7ae4de7ab53c3414e5eafc7f164eff432aa251ec6d444d0468603af5b38b6c3c0a325c2f13ddb785aed84c0ea6d13610e1740e86e4339f55e10f003541ea622c11d7594012bda4d997f8c4f21d139d49858931f5da75992ac340dcf0346e7f1161b6fbc7bf6513fa7c44d99be95dd1eaa503cf4df2a3ed547433626e903c58d43c5f3a837f911b8b8d7c330b5c8ee2fac5cc69d8ed2f71bedc700244ebe03511806a17f1f24bbaa1526a8ab811c3228399ccbf880a21d88de081540b518cc0219ffff030e08ff24ed62cd43082a37ba57808c66d729ad7f51c09344723ef70f993dd22203908f4f19de717d726fa8082210d0d6b668738d77c5172448b22056c2459539d003cecc35068fde6bca3cb34be29161ac3dfcac8cf6c528d92017792da172e94a7e030d6bd1e0b89ffc54168f8cea45193aa51279799a2ac9ff58917fdda65e71ff3803b2091aba4f213da33a192510c2d17984526962bb7ad1560b8dab9e3cd5eb1a8703ed5d97672d30b1a57c5ab7d7426ae10762d9a301115f959789b5fcea927239c10318042fba9b982936a7dd75cefc77ed6489c95c16265e00872b90edce5c283d090342c99c3ce5a97abb1f6d09b04346f9bc71fb5057dccb854b51a4acb16d94569503df79e6521383083c861e8ed4dbf5a8cd2fcf8fa3abad1867cac0d233391e4d2003b182b313e32df1c9edf131d0c3ad17496d6045679e601ac29d24b8dbace8ce2e033f5263c5c48b739741fa3b8a937ed7b72fc959681ec40ae393c071347bd7774203f6ed693fb86e935f868b70eef8e22f9de2a01f6e39b78d86724ce1e0052151d103be3b30c731a25d63f4389383d726cbd6b16ca0c8d5979fcfe6e0c258d2927d430219ffff038bd0771e814cf6f298959cd9fa0cb2044015e7f82a7313f34224c07d359df46f0219ffff03bc6e01253020c5396825cdfa2a75e78918d6cc8e6ef9bffff5ac66d17ca2e06c03f5e2f37199702f87b377c5d91ee8426a9a7a87b1788e19daf2e631d568e5c729035e5329133ad2bf35b41f01028caa530a7045c7b1d5118486e310c0200f2684a003db14c864effa69085336c53782670d96d9f43f959d0fef9299d5a0321cab873c035cd652292551c595bb5761ce6a11517c71c29dcbfdbff751a0cc1c1138ea0b6f033d496ddd99f000f622e5238875eaba3a65edaa3b1af55c4edcc5ba8400a6102203baeb1780c66a82fad3093a1c7007aa31cdacfd6fa95fb567d7adb33043319c3503e9231557b66838e09b1433bcdc764bc0e50175dc16bd13def865388b6230c5b7033cc68f7326b21b848073204585421857ecf9d8d8eeeb06630ea02285ff4945a003bec167677e03953456a1f72baed22f5cec00eea8694a194208d6743bc7b9df9b030341b9614d686ddc39fedbd4e04048533138bcb3dd364c917d523a9a036f6dcf03d2a64272726702a5e0f49496bffe0e5e0a2ede61ca7682620d16b6b6d7fa66820330419d13482218b417a15f4914e32e44b900dd7d2026ea735d1f44315614a44b03a09bba90296c9d9e37832230a6a719d27e857b6ab23de237c545a5b6010961640385f983c9e05d8b4b700e191dce3825caab00a70ff23d6282a52d1548a15f827d03e6b11f849fa280f3727bb7a0bb2610167fc0499c0b02ca0d09be760865518277037d41345322ff977fcb8a868b4a7fd4e47c8eef3dcc00de57862a2f2d5bc2038e05581e035fcabbf94087d9c59c2ec6f5dd813c9ec84b57fbbd64f1d37af7cc8030040103d80cd839dd3957d572b90780ada202a13936fa2875daea94216263371e9ef1d20605581e03b07eacae321195ddcc9a1e350fd2ab79baebbe0dd2bc9df5231d693a9007011bffffffffffffffff05581e0345e20abacbc5de0c5be276f849971063ca703df3238960242847b4c2700c0246027d064ee00003112d9b94594c919166cd8dc00a831ada85598402d2df56d2031372aca4152a7f05581d02d738ec051def812bc856e36c265a520b19a0802125f0c9927430f0c20c1905ab4734954b7dd1b69005581d0235435d4de9a3c916e99d06ca6178e59a10748b47a5eaacd837bde03c0c154704f1974884f4c002184105581e038b405f6c0ca1b3772e26cfee699ffc2379c5d74885d0a0f279a90a52d00401033132de4390d245cc0d21ca894f22b578fe3d3934aeb201fc16ec2e334f43964105581e03c226b38bd5b90811f4907ed39b3ee98a23f9182d156e0d3f4af7f73040040102194d6e031d6f484400e94362f3376a9120722ca756a832c0a8fa44a793e2ea14f4f1fc9403c26db9127d64efade6548e7c958a3833b29efa7ffbf3fa9388f061304b3eecb5037bd2866a5b786873357705b0a4cdbc64e30a7cb2b5410e555c03b22b8c1e76ab0324695877cc520d57fcf3b03d41c7741ddaf6d7d390074a86753c59d35d8a50e60326bb86ef80fbdcf231f65fa6a5802dcee7b6f59cd05fdf435e292d22220cffe2034e031a98c2ec77257e958ba70b2cbae5ab3955153c9208e3538ccf89b02ec49a03465c9158c7072748bda9689cd44e19562833dfccf0f093f73d31f9d5e987771103dd5b8a266a3b4ffe34956e4fd4206f1d46c2823035f95dae973cce96dc28b3de037fc823f42bcec73d6ad2efb26fe21164bef803e64c48559b30f84319587d52f903579f5e160c967844f744058e65d79aad47077efb28d879c549621a0364ba270e03531bf815542a7726c40da08b4d25e9e45a4feac08e9d2971edc9eaba2563bba60219ffff03b9625c4a3600219d499ad7edc7ebad17aa35e4df3b913c273c2ed4f063883dff0354372427c67bc615aa3a7d072b0bb4d901ec8d11b6ad42ee9e043ea27e802a99033be5d1652b7eadc425be652b35aff3fef4d28361d8d46f3b638d2b31d9f5eed503b16717c75de14080f8b7d23395e544ef4cd4688e1ffacac81aa51310edd22dd3036bb10bf47f8a6759c7802335cec5bcf8c0d9514d9736f53bcc069831cd6b720f036c5806ea2395f42d0d7ba3b7bd0355a42d28e17a2f2212d8419550bf3ccd428b038f1a587658a4ebbf78abd2b94df4fd485231ea1635467b722e6647bd972f40ff037ac6499ce95bffe6dbe5f13ac058c36c0485977993bca91bd3be6ddaf1eb7f3e0304d5577968d6a312e6f36a9c0c7342ec44e759aedf21f883b708cbedea34ecce03d23baaf04682130439b2a6852d7c9359d4c89e9a288ef4ef48f3e9133832f80203ef44fb6152b4a5a08a84c385405c6c8f6eac5c20bcd6cdbee80dd260aa81380f03ada67c12ced42eebc0096efa6bc25b06fff5f3bcf3c3171895e9aa1d44c6b08503fdedcaf2a71689996dfb859ac2ba1bb1049b95c48b7633efd4e09555c834385503dc1e81946ad3936c0048a318366ab1df7f49f47a62379133240e4c26da4b1cb20219ffff033bc9a6472af29e7c75e8814a51b6563b1a8b858953c0360c52dde3054756216103fefaa745cb997eea49d073bca199e5bf6707281621a322704395be184095e5d3035d3867128fd0aea600ee3b1bbdea0071bdc3adec72014ce3e6b19dc5885ec429032077b7df4c34e832205f6eb89f1d76e54e441467832d7f025f34d009b0f2f4d10219ffff0391c4f2aa23b1ba64891373de16e7123cf3ede1df638b415ebae1957a52b11f9103f10f052d66b3494627a3c7c31138eba2e8aa2e16ea6ab0048a0ff9621938ce8703b7769a9ce2090649162c6e3fc0c3cbb3946a21b55e46af370955f1f5d795e9560366db8982ac850a59f54c91f3b778f979ab038718ec20676e593ad187ff9ad17303aebf222ed6f2f46cf8b9625aa97120b6be5d7584fc5cf3d81799cbaf39b0457f034de87f82fe0f58e17e97c5437f64e93a2a302566e496b5c0b02a6490a3041d2f038d26ce6030b8316b19b54c04c15aa289c5627a5a13f64e3c3db114c12692eec903ec7b7279193a4c0f57693bbbeaf2227e64116c745169e98c7951c68f50c43164030753b4ee5c7418d8f15c27b7fe873458a4d181fa2e960ec2d74c2faebf1a787e03ec58f0670a77b8e6bdb3cf1b7375375df9423efde076388c940df2bedfb95fc003cb357c9a31088b57904f3906483063c0dd348f79a6226fee1569a3b7eec445af03b7ecfe66392f4b704d8da032e1860b1afd5a556924c964b51ef146602c93c74a03741e36dbb9ec7aa5199a320b5be1761e28c948d5476cfe02b694d56a31445f55035db27f6f7546761a53c449493641834391ddae53fb44ceb9985abfc5b4caa0b1036ff3bb4bf7b8856434c97121b9b4370bbe242b7f79b92ece6fe3264177660244038c8d6590694ed3f9ae223f18408a8b29a189042f17e13cf6c54fc613fa084bcd03479db4a69806bc43894799504eb8e56889a1bb22c340934b9288068457b5304e03719f80fccafaf6f220b6dca167f8f8b4f52c06b108fff38d68d793e4fd57fc5f030d307d7a674494669dd07ecfc20725098ca16280ee21b77086e4614325f17e0103dbee00a3df1a1311f1a19ea4b5495b4a6cd0e0dc1c431601666cab8a932fe054030d74225192566561baa7a54ae3a5fb85f21dc04c7064e0489f392c4f1bcc18b003e78a06230f33c8a7b5b6af878a2af4ba4eac572a9dcd1cf73f548d44abd582bc03a2f29ddfd9e9cda5a3bf018e591707b767e7bcddce6d33af6dd49385466bb9c903f86a9b0aa33e44c86b8453ac237b60d0cacfd6cd5427c521852c7d1ba24b06a4034025a7dea8509918637690b61748539190970c19ac8619f92cba1b99ea34c00a03663caaaa64f1bf2a7004150a6c4e16f30943d82722c680e304256eee558188530323d456a0b88098465194a49369c73f0199aaf4f6a45f526da72ca615206ae731038325c19f2320c25301b62a31031cb5f1da22df4a99562b54952089ac09da64cc035240265254edaa07c94dc3914424701623461dfaf1a9e75e6569fbbb0d5aef340344b2102ccba9d05e93ae4316419da5411c771f75905f12f4d39d1eb5c8477c9e05581e03a0c4d7b01377bfea792564826a06ccf9c366d351d020e2953ab8bf7e100847071afd498d0000034172a5e12fab7b76d6dcacbc30987f73e93e375e5833d37effb920b48493267f05581e032685999f699c1eaeb0f2118811d86a82b20a4c5599c380308e903b3c200c034681f7e18fb5c80367b945fe4c8e98455770db710ff4502482cb401bc68c10b99772e289e4c311a103562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e033bc117aeec49574d79d93d432e27efe8608f44d1ea69b0aec80c4776b007011bffffffffffffffff0305cfed66d309b4a2a33e1b467cb7cde34bbe914544b24c790c7e801ed284dfc405581d020358c1c40840b434c7a0c500e7ff07b21bb29c30edad0a3b60b6a4850c183849992231d7ba5301881005581d0250f6eaba75fd75e9307d664919dc601161ad2c1d3ed60db303eddc9d04010219201005581e03eb28f343d7457092bbfb92eff570fed2d58aef86dc17c7b88ef0b2a0800c02482eaf30607a46e10803949233fc8451f2a693dae8fb3d7e1d0dfa17d7b1fcb18441e795ab59f8bfc56b05581e038c01977f806d04beb01c5a78a7b70f769031ac7a7a01a2b214d7c1c6c0040105581e03c2972821b21417904b1a809f5b001ef81823bfe6b180918340d6f2eea00c054502540be400036080077715ba53c5fa41d967edc4d7e0a7a92f25c8a817e540661c546b0a8a4a021957fd031bd76f4724840deb63669947357c5e5250874f19012eb2337d6875d9b2c6625703ef6929f0bc3b1c1966b3bac05512547ff4c49a180c7a03cf8ad9fda282d4d11803340f4e326ca586221350062b7ae59842dcf55854db671997398cbeadad80fb890349ca9680d9bddbd02377dddaa3f7eb189e30622479938c995a0ca2b82d6ac98a036273ad7bd26db3c8d7239553509760e9c8ae5d63a1ed5c30cc666f10d7226e2403bf0c96339aa8dd48fd628abb2310bd55463daaed539bdd1f4cc49ec3eb18cf7e0369e075668080a0bd94fb85d44b4cfe76f259df6e5fd99a11b21916c8de7136c103b9a81ef8bd77c53ae74301cf9cfc169010d9a1b387b2fdf09736cd9d00c5772103a94570600af6fdd9b122b9b4e433407929c840d2007fafba162d92ba50328e1603720d87c8555937dd4ad9d4b1cf47bc1b7d74c9acc5a6b96d4aa3c6bb9073ea9803f9038e2bf4d99c0e1c4638b98c07a78ce908ffa63c620ef05db82cb0123eb95803c2429a84b078a442b7e603e479b3adab38ad577d18465feeef2e9697d1345f0e0219ffff03aa58d0d16da0f6477ccd1734b56d21ca4a7c6f26f517392c63161b9e719be7d103e378c00cbcf5e264e150e4ebaa3a3bdbc2c3d71aa81f27fc8c627a8de98870e9032bd673909b48528ccee34e4264c8aace43adda171a03734afe95cd030ea08c9003a2711601057786a5ebce59b94133e33ba35ada3d3bb57b666958793186d10a72031d18239e0a6f695ffe5633bfa673aaa692fce16f915115a00dec5cdf2e7fe70303b1c42341ba647cbf304ad3ee234576ab9ab3d7b53f4906da667a2c03024c20b1035241ff9fd330335f7b981bb0bf0b7c35f6e02b2bcc0c7608d6e6475befe22cfd03026590d63b34af674bf4b9e34fd8b74e8598840c89fc5bf9ce0d5cc7bd8650520219ffff03a40ed9068090afdc84bbcd61f6d6bb5225375dd7233455f75d4bf16bdb4dc7d70328a5ac00354eebe573e8e3b9937ca5b8e10a5172de01a9c9d6091224cadaba9503e62e22c7f727bfba496938856616adb983e80dfe9592188dbf968aceee2aec8603d56e5284547c3159aa76726684341f074edb106ad7f7050aa4d256d147d8e31b033c50c37c9111cece1717f7020f1c3c037f56c6ba09d1a8aa1aff0ab7edeaf6e10320cbd84154b74a519bcb35b105225f0d0dfa443ebc2b381dd52a4a1849f238e103c00cba888d209115859a3f2e784d5325f91f269b06b2889266acd125a250e7f4034cdb053ef2f31b041d8b083d63344906febb9c8dfc40fc0c596653ae7be3b65203e176de1122df6a8a8f9e9547c64fe6caf7b00866a1459f61deb8947010a5dfbe033cf65b30d21771dd7cdcfccd91095d26e652754e6985213d00b9bf87f48ba0d1031053b149f452cc7e93ad662553d957efbd51aae49e1341ef03eb2ec8f049e93803fbcdf71e7c560f75341082675e26e545c934182f5b732a73b6eec5e40bed78a0037a15ed737c563f3c8cb7e9609cf8ba21341a0d897521fb70d2dd92ab386abc490319b1043f25809419cc015ec7c07a4a460b80589bd4c9533f9369aa62d31c5dd105581e039200fffec76e539b8694fe3422e1a78c4810d5d7328694c4af4fb9da6004030392e2fc8d18fc59a7255126c750aca1e79b0bae58d8faf93f00a316ea08b37a5805581e03ed340dd86cd70c794e09dac5b6acabbaa894a755ec5b1056a18f74af10040105581d02991fa8fdd99e4975be915582ebf83a84bdfc5be2797fd426ebd72eec0c024645732e479a0004593848608060405234801561001057600080fd5b50600436106101985760003560e01c8063712fc00b116100e3578063b314d4141161008c578063c430880511610066578063c4308805146103d1578063c6171134146103e4578063e4aecb54146103f757600080fd5b8063b314d4141461035b578063bbd652c71461036e578063c3c5a5471461039657600080fd5b8063a14584c1116100bd578063a14584c114610314578063a2f367ab14610327578063a6529eb51461033a57600080fd5b8063712fc00b146102db5780637d3e3dbe146102ee578063a0af29031461030157600080fd5b80633f1cc5fa116101455780635745ae281161011f5780635745ae28146102855780635eae3173146102a55780636af0c315146102c857600080fd5b80633f1cc5fa1461024c5780634420e4861461025f57806355940e511461027257600080fd5b80632ec2c246116101765780632ec2c246146101ee57806334a0dc10146102015780633c5030bb1461021457600080fd5b8063063298b61461019d5780631e06b4b4146101b257806322fa2762146101c5575b600080fd5b6101b06101ab366004613484565b61040a565b005b6101b06101c03660046134eb565b610854565b6101d86101d3366004613524565b610b57565b6040516101e59190613541565b60405180910390f35b6101b06101fc366004613524565b610bec565b6101b061020f366004613585565b610eaa565b610227610222366004613524565b611168565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e5565b61022761025a3660046135ba565b61121b565b6101b061026d366004613524565b6112bc565b6102276102803660046135ba565b6114b7565b610298610293366004613524565b6114e6565b6040516101e591906135e6565b6102b86102b33660046134eb565b611517565b60405190151581526020016101e5565b6102b86102d63660046135ba565b6115be565b6101b06102e9366004613634565b61164d565b6101b06102fc3660046134eb565b6119cd565b6101b061030f3660046134eb565b611da3565b6101b0610322366004613484565b612081565b6101b0610335366004613672565b61244f565b61034d6103483660046135ba565b6127b6565b6040519081526020016101e5565b6101b06103693660046134eb565b612845565b61034d61037c366004613524565b73ffffffffffffffffffffffffffffffffffffffff163f90565b6102b86103a4366004613524565b73ffffffffffffffffffffffffffffffffffffffff90811660009081526002602052604090205416151590565b6102986103df366004613524565b612d63565b6102b86103f23660046134eb565b612df1565b6102b86104053660046134eb565b612f4c565b833373ffffffffffffffffffffffffffffffffffffffff821614610575578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156104ad575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526104aa918101906136b0565b60015b610524573d8080156104db576040519150601f19603f3d011682016040523d82523d6000602084013e6104e0565b606091505b50805160000361051c576040517fb2c1414000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b3373ffffffffffffffffffffffffffffffffffffffff821614610573576040517ffcf5eff800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b73ffffffffffffffffffffffffffffffffffffffff80861660009081526002602052604090205416806105f1576040517fbfc6c33700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871660048201526024015b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461066e576040517f04af4d6900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016105e8565b73ffffffffffffffffffffffffffffffffffffffff8616600090815260016020526040902084846107225760005b8181101561071c5760008888838181106106b8576106b86136cd565b90506020020135905060006106d68286612fdb90919063ffffffff16565b905080610712576040517f478730a8000000000000000000000000000000000000000000000000000000008152600481018390526024016105e8565b505060010161069c565b506107f7565b60005b818110156107f5576000888883818110610741576107416136cd565b9050602002013590507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081036107a3576040517ff575ead800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107af8583612fe7565b9050806107eb576040517f186bea00000000000000000000000000000000000000000000000000000000008152600481018390526024016105e8565b5050600101610725565b505b8415158873ffffffffffffffffffffffffffffffffffffffff167f34e9f70c5a16a4df2a396cf0cbc4735eb3c7fb6ae40aaa0b34be7720121d1b9689896040516108429291906136fc565b60405180910390a35050505050505050565b813373ffffffffffffffffffffffffffffffffffffffff821614610976578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156108f7575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526108f4918101906136b0565b60015b610925573d8080156104db576040519150601f19603f3d011682016040523d82523d6000602084013e6104e0565b3373ffffffffffffffffffffffffffffffffffffffff821614610974576040517ffcf5eff800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109db576040517f1acab6b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600260205260409020541680610a52576040517fbfc6c33700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016105e8565b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610acf576040517f04af4d6900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016105e8565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600260205260409020541680610b46576040517fbfc6c33700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016105e8565b610b508585612ff3565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff80821660008181526002602052604090205460609216908114610bbe5773ffffffffffffffffffffffffffffffffffffffff81166000908152600160205260409020610bb79061318d565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020610bb79061318d565b803373ffffffffffffffffffffffffffffffffffffffff821614610d0e578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610c8f575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610c8c918101906136b0565b60015b610cbd573d8080156104db576040519150601f19603f3d011682016040523d82523d6000602084013e6104e0565b3373ffffffffffffffffffffffffffffffffffffffff821614610d0c576040517ffcf5eff800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600260205260409020541680610d85576040517fbfc6c33700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024016105e8565b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e305773ffffffffffffffffffffffffffffffffffffffff81166000908152600360205260409020610de7908461319a565b5060405160009073ffffffffffffffffffffffffffffffffffffffff80841691908616907e38c54977604f1a5c0a3604cbbecd0153c81e3131799ead95755e8bb5d5b9e8908490a45b73ffffffffffffffffffffffffffffffffffffffff831660008181526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055519091907f86d03f430c7616021073d7a71766f632f1ce19f289aa989534d9f4732253eb59908390a3505050565b813373ffffffffffffffffffffffffffffffffffffffff821614610fcc578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f4d575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610f4a918101906136b0565b60015b610f7b573d8080156104db576040519150601f19603f3d011682016040523d82523d6000602084013e6104e0565b3373ffffffffffffffffffffffffffffffffffffffff821614610fca576040517ffcf5eff800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600260205260409020541680611043576040517fbfc6c33700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016105e8565b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110a8576040517f237e6c2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090206110d7908561319a565b5073ffffffffffffffffffffffffffffffffffffffff80851660008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055519092841691907e38c54977604f1a5c0a3604cbbecd0153c81e3131799ead95755e8bb5d5b9e8908490a48215611162576111628482612ff3565b50505050565b73ffffffffffffffffffffffffffffffffffffffff80821660009081526002602052604090205416806111df576040517fbfc6c33700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024016105e8565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611216575060005b919050565b73ffffffffffffffffffffffffffffffffffffffff8083166000818152600260205260408120549092169081146112835773ffffffffffffffffffffffffffffffffffffffff8116600090815260208190526040902061127b90846131bc565b9150506112b6565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090206112b290846131bc565b9150505b92915050565b803373ffffffffffffffffffffffffffffffffffffffff8216146113de578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561135f575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261135c918101906136b0565b60015b61138d573d8080156104db576040519150601f19603f3d011682016040523d82523d6000602084013e6104e0565b3373ffffffffffffffffffffffffffffffffffffffff8216146113dc576040517ffcf5eff800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b73ffffffffffffffffffffffffffffffffffffffff828116600090815260026020526040902054161561143d576040517f3a81d6fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551600192917f86d03f430c7616021073d7a71766f632f1ce19f289aa989534d9f4732253eb5991a35050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600360205260408120610bb790836131bc565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090206060906112b69061318d565b73ffffffffffffffffffffffffffffffffffffffff82811660008181526002602052604081205490928085163f9291169081146115865773ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040902061157d90836131c8565b925050506112b6565b73ffffffffffffffffffffffffffffffffffffffff851660009081526001602052604090206115b590836131c8565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff80831660008181526002602052604081205490921690811461161e5773ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040902061127b90846131c8565b73ffffffffffffffffffffffffffffffffffffffff841660009081526001602052604090206112b290846131c8565b823373ffffffffffffffffffffffffffffffffffffffff82161461176f578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156116f0575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526116ed918101906136b0565b60015b61171e573d8080156104db576040519150601f19603f3d011682016040523d82523d6000602084013e6104e0565b3373ffffffffffffffffffffffffffffffffffffffff82161461176d576040517ffcf5eff800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47083036117c8576040517ff575ead800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808516600090815260026020526040902054168061183f576040517fbfc6c33700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861660048201526024016105e8565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146118bc576040517f04af4d6900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016105e8565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600160205260409020836119345760006118f28287612fdb565b90508061192e576040517f478730a8000000000000000000000000000000000000000000000000000000008152600481018790526024016105e8565b5061197e565b60006119408287612fe7565b90508061197c576040517f186bea00000000000000000000000000000000000000000000000000000000008152600481018790526024016105e8565b505b831515858773ffffffffffffffffffffffffffffffffffffffff167fb8036058bafea884aabc446ca15619fd86f5464a4ad96f64164ad6f77444354d60405160405180910390a4505050505050565b813373ffffffffffffffffffffffffffffffffffffffff821614611aef578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611a70575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611a6d918101906136b0565b60015b611a9e573d8080156104db576040519150601f19603f3d011682016040523d82523d6000602084013e6104e0565b3373ffffffffffffffffffffffffffffffffffffffff821614611aed576040517ffcf5eff800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b73ffffffffffffffffffffffffffffffffffffffff808416600090815260026020526040902054168015611b4f576040517f3a81d6fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611bb4576040517f347f118f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600260205260409020541680611c2b576040517fbfc6c33700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016105e8565b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611ca8576040517f768e549c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016105e8565b73ffffffffffffffffffffffffffffffffffffffff858116600090815260026020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001694891694851790559282526003905220611d0f90866131e0565b5060405160019073ffffffffffffffffffffffffffffffffffffffff8716907f86d03f430c7616021073d7a71766f632f1ce19f289aa989534d9f4732253eb5990600090a360405160019073ffffffffffffffffffffffffffffffffffffffff80871691908816907e38c54977604f1a5c0a3604cbbecd0153c81e3131799ead95755e8bb5d5b9e890600090a45050505050565b813373ffffffffffffffffffffffffffffffffffffffff821614611ec5578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611e46575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611e43918101906136b0565b60015b611e74573d8080156104db576040519150601f19603f3d011682016040523d82523d6000602084013e6104e0565b3373ffffffffffffffffffffffffffffffffffffffff821614611ec3576040517ffcf5eff800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f2a576040517f1acab6b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600090815260026020526040902054168015611f8a576040517f3a81d6fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600260205260409020541680612001576040517fbfc6c33700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016105e8565b73ffffffffffffffffffffffffffffffffffffffff851660008181526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551600192917f86d03f430c7616021073d7a71766f632f1ce19f289aa989534d9f4732253eb5991a3610b508585612ff3565b833373ffffffffffffffffffffffffffffffffffffffff8216146121a3578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612124575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252612121918101906136b0565b60015b612152573d8080156104db576040519150601f19603f3d011682016040523d82523d6000602084013e6104e0565b3373ffffffffffffffffffffffffffffffffffffffff8216146121a1576040517ffcf5eff800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b73ffffffffffffffffffffffffffffffffffffffff808616600090815260026020526040902054168061221a576040517fbfc6c33700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871660048201526024016105e8565b8573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612297576040517f04af4d6900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016105e8565b73ffffffffffffffffffffffffffffffffffffffff8616600090815260208190526040902084846123655760005b8181101561235f5760008888838181106122e1576122e16136cd565b90506020020160208101906122f69190613524565b90506000612304858361319a565b905080612355576040517f45525c0e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024016105e8565b50506001016122c5565b50612404565b60005b81811015612402576000888883818110612384576123846136cd565b90506020020160208101906123999190613524565b905060006123a785836131e0565b9050806123f8576040517f0bb4423400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024016105e8565b5050600101612368565b505b8415158873ffffffffffffffffffffffffffffffffffffffff167f02b85afdacb82d5512c6f05566b3018677ffcbd7e5f75e498bc64081131cbd6c898960405161084292919061374e565b823373ffffffffffffffffffffffffffffffffffffffff821614612571578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124f2575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526124ef918101906136b0565b60015b612520573d8080156104db576040519150601f19603f3d011682016040523d82523d6000602084013e6104e0565b3373ffffffffffffffffffffffffffffffffffffffff82161461256f576040517ffcf5eff800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b73ffffffffffffffffffffffffffffffffffffffff80851660009081526002602052604090205416806125e8576040517fbfc6c33700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861660048201526024016105e8565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612665576040517f04af4d6900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016105e8565b73ffffffffffffffffffffffffffffffffffffffff85166000908152602081905260409020836126f257600061269b828761319a565b9050806126ec576040517f45525c0e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871660048201526024016105e8565b50612751565b60006126fe82876131e0565b90508061274f576040517f0bb4423400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871660048201526024016105e8565b505b8315158573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f2738289d9deecdc30eb8ffc42876633caecca1ffa166e4efa89f408e17373a1a60405160405180910390a4505050505050565b73ffffffffffffffffffffffffffffffffffffffff8083166000818152600260205260408120549092169081146128165773ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040902061127b90846131bc565b73ffffffffffffffffffffffffffffffffffffffff841660009081526001602052604090206112b290846131bc565b813373ffffffffffffffffffffffffffffffffffffffff821614612967578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156128e8575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526128e5918101906136b0565b60015b612916573d8080156104db576040519150601f19603f3d011682016040523d82523d6000602084013e6104e0565b3373ffffffffffffffffffffffffffffffffffffffff821614612965576040517ffcf5eff800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129cc576040517f347f118f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216612a19576040517fb05574d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600260205260409020541680612a90576040517fbfc6c33700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016105e8565b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b0d576040517f73a4164900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024016105e8565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600260205260409020541680612b84576040517fbfc6c33700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016105e8565b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612c01576040517f768e549c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016105e8565b8473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612cac5773ffffffffffffffffffffffffffffffffffffffff82166000908152600360205260409020612c63908661319a565b5060405160009073ffffffffffffffffffffffffffffffffffffffff80851691908816907e38c54977604f1a5c0a3604cbbecd0153c81e3131799ead95755e8bb5d5b9e8908490a45b73ffffffffffffffffffffffffffffffffffffffff858116600090815260026020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001694891694851790559282526003905220612d1390866131e0565b5060405160019073ffffffffffffffffffffffffffffffffffffffff80871691908816907e38c54977604f1a5c0a3604cbbecd0153c81e3131799ead95755e8bb5d5b9e890600090a45050505050565b73ffffffffffffffffffffffffffffffffffffffff80821660008181526002602052604090205460609216908114612dc35773ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020610bb79061318d565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020610bb79061318d565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600260205260408120549091168015612f425773ffffffffffffffffffffffffffffffffffffffff81166000908152602081815260408083206001909252909120612e598286613202565b15612ea8576040517fa8cf495d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861660048201526024016105e8565b73ffffffffffffffffffffffffffffffffffffffff85163b15612f3f5773ffffffffffffffffffffffffffffffffffffffff85163f612ee782826131c8565b15612f3d576040517f5f3853a900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87166004820152602481018290526044016105e8565b505b50505b5060019392505050565b73ffffffffffffffffffffffffffffffffffffffff808316600081815260026020526040812054909216908114612fac5773ffffffffffffffffffffffffffffffffffffffff8116600090815260208190526040902061127b9084613202565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090206112b29084613202565b6000610bb78383613231565b6000610bb78383613324565b73ffffffffffffffffffffffffffffffffffffffff811660009081526020818152604080832060019092528220909161302b83613373565b9050600061303883613373565b905060005b828110156130e057600061305186836131bc565b73ffffffffffffffffffffffffffffffffffffffff891660009081526020819052604081209192509061308490836131e0565b905080156130d65760405160019073ffffffffffffffffffffffffffffffffffffffff80851691908c16907f2738289d9deecdc30eb8ffc42876633caecca1ffa166e4efa89f408e17373a1a90600090a45b505060010161303d565b5060005b818110156131845760006130f885836131bc565b73ffffffffffffffffffffffffffffffffffffffff891660009081526001602052604081209192509061312b9083612fe7565b9050801561317a57604051600190839073ffffffffffffffffffffffffffffffffffffffff8c16907fb8036058bafea884aabc446ca15619fd86f5464a4ad96f64164ad6f77444354d90600090a45b50506001016130e4565b50505050505050565b60606000610bb78361337d565b6000610bb78373ffffffffffffffffffffffffffffffffffffffff8416613231565b6000610bb783836133d9565b60008181526001830160205260408120541515610bb7565b6000610bb78373ffffffffffffffffffffffffffffffffffffffff8416613324565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001830160205260408120541515610bb7565b6000818152600183016020526040812054801561331a5760006132556001836137a9565b8554909150600090613269906001906137a9565b90508181146132ce576000866000018281548110613289576132896136cd565b90600052602060002001549050808760000184815481106132ac576132ac6136cd565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806132df576132df6137e3565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506112b6565b60009150506112b6565b600081815260018301602052604081205461336b575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556112b6565b5060006112b6565b60006112b6825490565b6060816000018054806020026020016040519081016040528092919081815260200182805480156133cd57602002820191906000526020600020905b8154815260200190600101908083116133b9575b50505050509050919050565b60008260000182815481106133f0576133f06136cd565b9060005260206000200154905092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461342557600080fd5b50565b60008083601f84011261343a57600080fd5b50813567ffffffffffffffff81111561345257600080fd5b6020830191508360208260051b850101111561346d57600080fd5b9250929050565b8035801515811461121657600080fd5b6000806000806060858703121561349a57600080fd5b84356134a581613403565b9350602085013567ffffffffffffffff8111156134c157600080fd5b6134cd87828801613428565b90945092506134e0905060408601613474565b905092959194509250565b600080604083850312156134fe57600080fd5b823561350981613403565b9150602083013561351981613403565b809150509250929050565b60006020828403121561353657600080fd5b8135610bb781613403565b6020808252825182820181905260009190848201906040850190845b818110156135795783518352928401929184019160010161355d565b50909695505050505050565b6000806040838503121561359857600080fd5b82356135a381613403565b91506135b160208401613474565b90509250929050565b600080604083850312156135cd57600080fd5b82356135d881613403565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561357957835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101613602565b60008060006060848603121561364957600080fd5b833561365481613403565b92506020840135915061366960408501613474565b90509250925092565b60008060006060848603121561368757600080fd5b833561369281613403565b925060208401356136a281613403565b915061366960408501613474565b6000602082840312156136c257600080fd5b8151610bb781613403565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020815281602082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561373557600080fd5b8260051b80856040850137919091016040019392505050565b60208082528181018390526000908460408401835b8681101561379e57823561377681613403565b73ffffffffffffffffffffffffffffffffffffffff1682529183019190830190600101613763565b509695505050505050565b818103818111156112b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220d2eb4529f96412ccc09b0c0c04d7ff105932b0b691aea14b7aa158442949a08664736f6c63430008110033034a14e4c4642b8bd89f1f7591c1419a4cf93de4ff4ded682a0fdd52df7679893303769a3091bed57a20f87370d85b630f2eaca19e5f8ad06f937d0808a29c7bad3f03ca7309cf2f457935680b9bf1393186c6c1b31a3537298c859fe9958828f19fa003d48a6779aa71ee99a89493e1fbaecbd5e1d3961dcb4fdda7a44652757c8a39b80338da8c83aae8f02eed635813fa3ada29cc658d4b7a01ef6960e37ef6d05f37a00384d7f37410353757f2eebd35cfad44f3b250cf600337e217aa73bffaa19c80fe03bce82d490d094a42f31a8e1504161be5a09feed19f01d43caccfbf146b16383d0360033fb03df4e179b34e2b02c26e6d3af3dfd842fdf178b8f82010daa4ef42f90344f1a8c7063e4f06bf46b8f723055f67597cca06e17174e930b4a6344f6eacb000581f028f000a0515883ef9201073eaf4fdce5d1c1cebfc747a2271633d49584d63425a5000581f0230f6bf4e7b1770e03076d32967c98f0dd1928e3ad829a242a5d09c6c91dd5480adcffae448d9eac604d2cbcd9c14df019c4f1500581f02008460fd6228c4ccd56a5d3da9f9da3588bcce6c99e04acae6f5f7cb40a8427e92037aa7eb52cea48958864c125425ec3603e26651b404128b44d9783c3abe329f980390de2b8de00283ec106c597ac19c27b796830ab8af4dd07191a9d31a159c3c5f00581f02a7257d3f0a194d2afee4dac608e020bedc2e8ef82ebf76353e8dc8da324a549cce510a5ae9fde8dbd41c9d00de3396bdea84a903396adf830fb1e68b834719241ad03ba885144660bf5b0348e1b6599d7cb7c8d30368ffea08a8998c241b0849055a009149412d6294f37f65c2938d35116bcedb610362e97769d8dd1ea1a9c739615985bcc5808d5b9e3a0087e51bdadc8af2b80f9f00581f02846ac47819f96c32993b237859e89a06280cc9c318db5edd141ecf631de4424a0e0219df0e033afba30422840d4fb9d753c9479aead58e92ac784f2cd699d4071c4b9dd20e99030e210223cb9784b8a80203da452ec5b91c65f566733c97763a925f4b43ea5b3b03f2f55f0bc55f224404006ed9db361b89f8c7ae1ec772986dfb5f067f563a40c903a5b1a5642c023e6fad823906ec2cb1d6c343572b66ea0a014116c1f1c7b785260367ad66b392d04afbc445ae15f5da7f954eeb8a3dca02d9a3cd104e1672e1c43b031bea8408c9656a257aa73002f6c10662669ed5a96d4e7888c61fe8010cf10ec303ed2629771b8edbbb3c1ef8f2e2eb722920ac6ede28e9fb00915679c6ce0932c4035cc2364e6047a9134a4ffe2d7e430707602fb258e81ff54d9cac9749075e8e6a03dfb423ef5901bbb8a881e4457ac926bb729851c54bd56a575141a9716f8d774c0396da3fe1e8f1891cc1579a642a7fb89a104b45d7b097ddc0c9134f0eda1ebc09036132b4c6cb25a984276c70f3ae966eaed95a89531a5eb82a65d35e4d6bdcbf81034a3ab0cbe13bf3fbef54312aa6070a0932503aebfc5f37868fb097c9261496fe03105930a206194feeb9142ad27c4db632b8ff95b2ad45881dd5880bd554a78cc603727cd957aed998bf86951684f57c6e739c1c147fdb24f237b4236de41e48dfa80219ffff039fb8a57c43c8d2566d8f83435ca2ed61e1c50afe654db90157bb9d905e3c6246035efb36e119cad6c0250afcacf289f51a2db06449d615a14d7801a2dda45b4a4503fdc93e54e6334b8b97cd5dd26622d4d67cc950e38b4e4f843cd652b6ddd531e803f989310f6d190303b5c71aed2afcc18a5ce9bb3bffaab453e85fb2bcf5b27ec903158f1e71484a24a555ce6f7f53f44e3ec6896ce15406a6f3a6b41fdbe153505103689502baffeed06687d5a6a8ef7614c8f0490e9f04c59df93708038785cc0a7d0367cfe81c5b73bec4bf69a92e4cb97618f9bd99aa7a90e643b9d609a94c9b72ae03ea9e7598a4dbd62abca7d16dc97bf783c1f7822715860cf75837d345462282a10312fe6ba9cba64ff6e26c342b319efba1175c93b7c661652064a0fc8c7835c11e039166bb823871b5425e2204112b283a7a6fbc33c7f6f61509e936eef2774382e203fd31a9fb16ebfafe8cfcc17aa63dd9d8070a6e52322fe893169fc77c05ee2d540219ffff03725b9cf12f64fd67139f3fac056e85bfc76b6a2c31748399891a72e73528764c03910169b88231e865963751841368b5a02ed252eaf71fd93a7e580eee5bd38d860307866b6c3da9a2c12efcb48ecbaa9fdbd2854813c32d8567cecbcb48a233b23e0394eeed8d46c516133da38dadfdd5bed2813cf2695d65b75c6dbdee9d06dbabe2033ae57062469a56e9f6eb141056b4fc8faa98a78cc6f182e67f8b37ad4b8f529d03209719bdc80656debf247118bc9818c521ee12134af207d15bf9f3f1eb2713d1037ea908645240a06206d9c1682b2a6c17958a1011841c713fbd66f30592a0a92503e85c6268ad48f288de13555eb9c7f1fe373a74cd5f21bc27608c23ec5b601a5c03f98a639d394c2bc5c7412d6a1a97600c382db327e71cbd5008a05ebefeee970f03e136c0d6814c58fe7711945b9a20a93e0a5c55cd0ae64c83b2f643e70005c783032acecfdb9e8dccb83cbacff4973c1db5e3e0ff593d443886c6f9a669faf5b762036df0e202be7787382eab447ce563cf76cbd4e07afde7ffea840d6c70e473ee8d03e5e58459ee1344654631538df358f30f83bca7bf78251a1a032ae5392cd8289803cbca74900ae5cdb884b8bff9919ecca98aab196744466b349e33858548ff751203c5bc1746550e622622446813861dffa6560a16afca32ed9a7d3fa0fd9c931256035a6264b7a8f6f68b58f1d10f8abf127bb9cbc3a2e95ae24e25e6388cf26dd51903c851dbc028edc0e88baf318775190c8e557038ffc46b3ab4610e59d69827839c00581f0203f7d34b478f3908bb99f67ce56be707b0be68cbbe19c443aeb4308310c5543cc6cdda760b79bafa08df41ecfa224f810dceb600581f03528f45bd0f6edd9f48f53bb00d96ae9fa5e3fee50c0bafe19661df799d105412b28fb0eb7da77e967e5a8de8be1f8b94b38a8e00581f036bce57f30a58b0259997f09f8398f549cb82d47d77a30d53f91436493900541505401950b830f8f510a4f448eea29e97ad4bd703f44a8a88367a2dbca8c3cacb6d8016005232e0fb9e7ac1d97d872ae2b76536d002198084036335b4f7b6fb553f25b476a8d6e765477f8a9c62c853c01c64e74c157d0ad7580342e1030943ea4b20d3697ea2d6cd4f3d83919c20f244501845c94a7118dafa33034ce7ebdd495afe52ae1d8d06a323cd94888ca4e1f53e1cd1ce9ba1038e60cb8c00581f0261bd267e60f514692fe5ef1e64e29bb51703b2bce39b3ae6e64ef2608e255467bea0215384edde130c7d68e0a8eab7880160fb036f2ee99f44f621d87df0fa7d384852760a212e8fde21c662066a5a2f7b3c4abb0323078c28c5181022e811afd2e7ffe3ed3eeab30d8cff3e3ce62aeeedf0423ee8033d191826853081002d45b21c201d96a1b721ff5449cee4649f8bc4ada78f6f800362abfa8383bd81f6d7b35edc5d7aceaad351fc5648b0ae7faf70468e795e93c203f76685c0e8b7d19ce8b61a75f696d94a40139cac46f1de41244346c8dbdcd4c7033d2799cde2a6aa62053b0a4e2449ae8a6b704180fb4a9af96af8d2944b53e2710219b73f035568f7802941d5f2df9608136592811b498076d671dcb7a65a060a401452683c03cd4f8a6822a2d60b4893d0c6e853d028725ea17b8b49c1aa17fadd65bb825017030ff46f53ee88a811bf2fd1edaceb3b6575c59c215e209e76e4403229094aec0c031754f9a10d838bde54265ae37c7de8d4f293600bf2e93fc51971d9ab9454c6e9033de3e42142af29f27536803903f7834994eb019ab77a6c79e9f1e814a800f19003f49b99418b2903b15cd06008d8a998191fdcf00e56dd6cb00a4736978f524dac031a2017242798d6e631faf0710e16a475777c612309b9a11250e0d09c9c940c0f0357d10270d87356397c9806a44e72c3f72770a107f3613afab67b7aa2136b204403762694cc2626bd03c3ba918f97252733de3d630184803efa0469cf5dc307364b030b9ab24a90835f8b9a4d18aff103547e0f046cf18cf3dc220c7da06d42cc32ac037ca45de1c93cd3c8b62ca9c4cda77d915f7e446b161384c082e4f1d71f02825a039098129cc2b426cd3fef7dd2efc9f4fe8631d182a352a2e28bb1fb2f737b86c1035ed6e84bf939bd3278addee449d296c896fbbbfbb96649949a12ae034be2f05e0219ffff03e3c2c754bf424e237f56ea0f0a1023d772d57cfde9f231925cba8d4f0c0fec0e033c26b7bc2e58e5b09e50124e75c7a3ef45b38a24e36f2f149081b77becc9fe880219ffff0362f2d96c66e7645da0d0f4835ddc50530256c4fd3df5069a09adea933ced1b7f036ed6c6c84fb0e05e3678ff464eb3c6dde2c49d06b701ce17df51881a8773060b030f6aa5b60b4a126decbebdbbfd96eceb98c44bcbd8c59e3629b1adf9e2b24d10034e328749b3f3627959d5f5662c1b1a66b690849d9203df146369f1bdc811456503f5309f30548dfaee843ea9a3dee671699131997f6856cc5d80f54e8bd6aea436032601e4b6112909f66f5fa41259ad7609a39afab51db49d778383a6a6f9d6332203adc91d6801251a37a5f1fd73e1c861ea1f1bba3489ec55bc00a5e7620daa201103794cd534aa0e790bb3fc975ac7df751cd887be6578e334a3029aa7b8f91d141d030a42e21395c495b96f089c167e14c2d94d82d531218433b31ba56778c5c227420302b5b0591ca2af7820f63edc7ca608c0703c3d6047fadf738d8ab6afadb31b630314579d98be18a2f052734dd1b76d7252d55b5bf28e904b7c5acca067a66e33370380aa7312424a433294a065b617861624e3473b8d7baa98776cf0e4ad27ad9c7b038985e304c61e69cd70a9074efb21c0543deba2ca4abd65a17333d0a6458d539a03286ecb3653a2041c9e84c05b3548085a66fb446709b000d88fb7cc8a96c0c83303262e765ddd7a47847e36ca5009b9a89d6de902f18481f0244086c96c0bccd1b203034dddd589d0b99926627d8e694bce9229f97df92d6f48f2b222cf75efc58fcb03b8c6e5549e44c55bb69b31ee18ef73c1919453f8c82baf56c04d843f7802a5870340cf92509608567d6e20bbf080e5b38fbbaa5edfde22fb8acd4a2e2d9885093e03f30a70b99526e37c8d96cc0c6ebf9c99fb1e59a596280c8ebcfc2c29368de5dd03ff3945971c1c60f9b3888e7f8eb35484f9b9816a4702c998895ecc405ed370b50304671562e66115af1741486931107f2be1e14ac2c94a9eb88f94827fd6f6f9a900581f02a019400519ad396ac4009725157b6065f87274e248040efed3e1f3f41aef423dee00581f02fda0ec9157ca6d00972d71f99de1e970e3291f1e0d53a19274aa95c378e5543cc6cdda760b79bafa08df41ecfa224f810dceb600581f022eff23e643486b976b610f9ce15bcab60aa91615751e37bce3def14a70ae547f5f58e14405e7375eb62254f847a01fb335203800581f025c1ea37eb0d3083fac170e0d0a760e2f59f0f8a8609eea6b5969285c9448543cc6cdda760b79bafa08df41ecfa224f810dceb600581f0280369adeb56ab86f0844fa8c9316a6172766edd442bb21218ce389ff85fb543cc6cdda760b79bafa08df41ecfa224f810dceb60383f0bb859338c027ba032eb5674d5fffaf7ac7e55eb1ba16c1cc04decf9ff0fe00581f02b506a7c525de0b6d3112be7e667fbab7c6d2015ff9d783c6f67bfc6bfc11427c3a00581f02f438a1ea53642a54102f636653d2e130f6de5380621289a00b358c7668f4541c3fff5a86fdeb7214f1c6dad411f126373c622003933dc209c351e68a501d8b99d8983e4f92a439c9a702d4cf33641512c64bc99100581f0285e28be2822dfc8f5aacec7b468da8070f4fa62c5c1258e7b7f86f759fc4543cc6cdda760b79bafa08df41ecfa224f810dceb6035bb4e1ecec365ebbc448022f1fae0e222418f34c3c921447dcaa2cdd3fd6945202196fef032987f8aecab638d3d45bec67bbfea73bb29ec634232c71b610de645ffc502500031e6b4ad0163ebdd07accc3875142d116d42219e5f3aaaee050499803ed639051034202de55dd1f7916428e25f64e4206d7cb7d4cead1b320972eaf5c8bbfa132f90219ffff0348d8d49ef02aa13843e4d3292f8ea792dec56416b860c5d8f2d3cf496a25b9a9037bd2c121f9074ffc4a8b4479619a37ca1234c8266da9b7de83fb910cbc67113203cdd586dcfbc9d73b8b11cf745161f5b44dbf314ab9176fce20d496f3e8cfeed4033b6de10696604eead45be08941dadb05d5dbfdb8338e86c6e90988941b68a611038a8fb058c1335f40b23564245698ace1e8c02135fec9d707bed2f71fcdbeb24b03810af9ee7cd741088711e10d1a3e6fee5b1e33a8bea935ad975f1d7b7f9bd604030ee9dbcc35714ad3b071d8e593347e1beb838a629102437459560d8571b542cf03799ea90df28d93b145c2c97dcddd79ac63d675453944788c378e0c142bfe38e10219ffff0318c6ecaee1b4fa40b8a14001f5b4d79c0c0f86bfb363ee9cc0d94aa4113acf5203e7d8b929b4c02e6e8af9d2f687da060aa061ff66e2b8544ac73f9fdc70d807660335f08a68b44da4096b8cfea402db1b39a5fa4371e8bbb9be7bb336c1f9753b150384da8fa5ba2c3a913b628127bdadfc94f3a2bd52e35f38e9fa79089492d0d7f903da86c2bde0788231ce958286178706aacf194d2794c570645c43df2ff8665fe40363e8051e85615b25d87fee51247a1ba5d332a3167903ccb28a7e1eed809e09ce03a195e8c55cfd680517121b0a87e582d503974fadcfacc296f77ee9de3cc8ad07032973cc4c1110be69090e7a78af57649a58cc99fa78b084cc81715cda79a5aba003a46e6136239c7830a515ccb108c5a5095e917cf12f0a10f2f2ea51c6bfd95706037d0fdf1a6f636059b972762886a21489c51d7095b6504c069a5b9498f5c9bb7203a6732ad2d1f936fd53e01abb3402f4e3615f549e61db16ec2540b533554ca87800581f0229d400575b01ed5375bb16c89562ad41d1440f90097cb8575adca72b25a35463dd9be7210d9b9000960d96cb7dff9a431f0bd400581f02bc44f3fe8c51b845609dad7e6316120a523df053d7f81ebb727466007d31546ac3f84cb6a50c0fe8adde0370bcf29c196324c1038e643891929a24126aac4c0568f61f98835778f680307abc3c6ccc98355a74ac0344e9ef8506c2c1a0a90b05690c07fd13d2c5e93ef9dca3f5145d425615435bcf03565fee9730f8a3bd48ecdc9b10335a4a41f33e8a6f866f0e11929532b2e8ff8f00581f02528c4f5b8abd7394c90bd9ce719ada6fbcc1831fdc73019f9900c6f73653543cc6cdda760b79bafa08df41ecfa224f810dceb603d08fdd2b20f4e8f5e3e4c8a6ee0dddb5e61b5d7d62b51c72d38c20488288ce2e038ac16d53ccfb8c910988f5dba850e268aa218a1ca13c6cdbcc0b2ef0d8f9928703e2f619d18ebd3d92541428cf979fa3573e5da9dd82ddb83069915d27d0a593b300581f0237dcb0bb20159c064e4057b8346a8311e87e1abfdacdc0c7198451d7ca3954de6edcc919989d0061d7f6f47a05dea6b8546add00581f02aee62d5042d90aaa0f66cf94af5238a62b9e7931ba2d797a9eb8c2b9ec90543cc6cdda760b79bafa08df41ecfa224f810dceb6035bb2d45d84c2ec0b8f56e5adcc85052f634521bc567e91fc93d81bcf3feb8f080219dfdd03ddd3e91b64f9d503122d68d71940ebd7b9277a1e657ae4f4f1a3415ef7df757603532c7d72a853222e2e5d8e9cb149a5c3c902eb69951baa1a95eb459ce1f469cf03c70c59ac9f396098401a71ce65df27cc3fd6da3c75b5e1446275a852c08de84703c5b44ceb0aa22ead0694cafe923e589cded514ffe2f3fb9b2ff5e80c1309336e030df62355ab6c2f518fe922bcd1d562faca0694dcf0f2b337c17fe55da946b54303ef2a231e517d52b75646f8e2515d1a860cc70d87ea45360c553b9bf8f90012e8037ead8326400695b17dc3bf50f40c30514e574d68df5e6ab51c83eb7e486cf7910219ffff03c1a96e4512edc43d922c6bcdb2fb42863d30e69d9859bca8ffc902bc454d2bd703f1558b63594af378e07b84bcf114bda51ddcbd387517b2c3bb62a5f5b6eb9dd703684e0e5d5f3d130a4350618663f5d9837770bdae53089a0b321ed381d58a4a9d03eeabcb72f31f7b81580900bacacfb8e86a467c4c6a0523be7b5291777fff6f7303569df06047743bd03e5db35c5e2e70deadd684fed5408ba1b1bd75e79a59173203ed4bd2afa751a7844b62b654b8e1dd3e46958cb1b4e92a617a559c1e18d1270c0317bf50508f059a71b53c8a1736fc25ba53f3bd6c795dcdd0c34e4570aeb6b0ac036cd3f30f5d7edf727ff702f9648701507c9df37b193a59d8b3fc5e72ad9953b2037132c73e62c81a3267a3c1adee6ec045d42ae70778fc5ba2368be4fd1f6115b2037b1771c6fb9adb86e35cff6ef28f9f68d779bfeef6d4a7c908d1090775a6e4bd031d671cc2c769bc6c46444d8636a6b7e3044b35de1af2cf56ae4b6e042c0df3db0369009a0739b0763d747d5841fefa8ddbb71a51697d631496084a61c08b00d460033f26920f1cb720ed440cbfd6d4b33626ed1721baf81e0106c8c586c99cb4634c03744d622279ebb787c9f6ac75c4e810ce36e04d689ad753c297bed7a812f010ba0219ffff031cb75ae72ac86c8b80837c129b89e0cbffe78b57d59e2e822cf9ddc7cf506c8203e726efb24f2ee1a1173b8f6d5e0ffdf5f1970893afeb571925ebd7a0b16611a803f739417da23a1bd276dd92b9c76f81338be2bf8073d187072e446c7dbefacca1039ca00a21b1ffaf0f8e2fc4c7819155108a47de4586309a68d8b8bae9609a67a203d5881a645447a09720c295e6db62d2b2ef8ae8d715015fcaa5e47e5b9258282a03083b567c3d26242dbc2800523fa701eeebc8c78fe344678c3839f98c27ff61b70324f1e56e64358e43089e856c72c4a8c43d117836030be652678993ef43998bff03a8134f1965fba96f85e29114d238da80b0738d9e9010d0606ee7b3db236b879e031fdaf0e5a6c48422bfee0debbaaa18448d97062ddb0191e4e1d5430824b59985037ca006e65c122ecf9f0205e4e6352325b379d6ff418631c0c80354a2cf8b0a1b0311e1f2ef6f7b6299f2fae325276a176aab0828728c62fcec66c9d3a6e6ba1be000581f029cef4114c897fa8131bfa64428eb6b5557c420274a61d8c502347d575dd8543cc6cdda760b79bafa08df41ecfa224f810dceb600581f023de4ea861c2092219f2d422a4f1fc76c9b3cb4ddea3186958b6c2ccdb7ec4f0111abe46ff893f3b2fdf1f759a8a800581f02124536fb0fd864903ac27bd7234d0a1733ee9c23f648b6d10a8fc926fcec4210a700581f022ec57e1cafc6b2f60091c40d252deb5274e38d69dc0eeac526a73bd64f6b54e7baa18dcf9740438781be2c9b6be5d7ee74bf2c037fef8fbf116b4fae910debdf5e7b75adbb03bc0e8b0851ecd312d16b2c698c79033ee68a124fe3cf6e347149a1a6b13bc83200bcbf8769c8ea27ca7837ff4ddf0100581f025fc7b1346a8a1741b2d7d97fd450e90fec2e473543be80bd5bd9d585b462545d15bdca40b6c50784d862ab903be736d09dff3000581f02c8e2c85b84227698fc9693d36e80c3bb5829f9fe438c2b228f813094506054fda1e8b9df70feb192da467f1ba7c2b1692017130378ae1f2852ad98b3259f3a4297d242e8a59dd3a61f972def90e653d6423fc16600581f02231521e091feacfa104a82308d0265ee7f5fee9cbcd1633e6d2ec5427bb3543cc6cdda760b79bafa08df41ecfa224f810dceb60363b36515b8bcf5f7153d5aec063b381f733bbc56c29ad1c58b2c4ee93fba6c3d03c3938b1d246dc75b85de2afdbd8a7d8bb40e0fb075b9958f9e112013ea587d43031b49d26fe076bde3619fc36858aeebf7709fd36ad63584ccb7a7d960bdaa59e803714c2b7e23a2a6b40a95b0277e18985a3ed96f92790ac253e2509e3e040d16f600581f02b26ec6310ea65ef223c466ccb21999ec0e096c97df5ce1f660daf3e6c2c55430be59804e630e2b6243af58fa72bc84afe422b40219fffb033db50b3ba5f14e6df172895ad8ca5c5c3feaf62fa208e0d74dfbedbfa1b8d6f60380ec632b937e1d5d3135e878f0f2eec1e032405126ca67f87579f40fe131d4bf0315415c2f5788632afd112db28faeda49dea85ad0cd23f08edd69bcf0027cccde0337689b4c2121cad55def2d2c83b1c2477fd58aa810409cf30da3e58cf313ee0303f3f2c0ded345af53b62b17bd99a45be626e90c3619e25975e0a30840c8df03000309e80ff843e9d04284f9e193d59febb120e4332bb72a11ca063f693347f8e894030f25f2bd325dff1e3aa95273be73b4368d4b4b8bc4d6e086833b82885093dd0903f3261cfb4b7b699c393289d43c07d954ac864fce83274bbc7b093ca5a74253ac039d7d072f630da77df83ae2390417a140df085be22dab1c0abcc9f9c1de1bdd9e03058f4d40154629d8f34eb8953a5c6c106082228abddf799a3b47303c1474cbf203f12a48211121db10498e60f608b8eb4cbd16c820638e53b689d23b8599b603e1032e73345d9955f7de1d1e9253b24d38661b4d37f9d3159c474e8ba8ab23a5de17031c2e2a305d668a683e2fac5705d0c38776996a9ae301f5ef4b296902afceac7f03d84a56186cccffb99ed9fb5947bc9ecc988c6a56d229e423d63efc187ea76c650219ffff03624d6fa66177ed74270abf8eda7184c3b91ffae341af19045be8ff3aee02059103eb97534b3346819bad714d9a684d889de7a12909247e6feecb0ec1dc82190286037c4c9777f4e917e3e251438e93fb6901d2ac5e1c61d628c91c35b947988ea63303e60f63d155a5e6c4756fb6a975088c202a3085ddc6f7bc78d68b5e5a538d3d1d038879f930942289fc58614919dbf508c0a201d0d1d007dc9a8f6515e9623344db03786267728960df46824dcdc62f778b7e7abf1dc372e1bebcad3bd19aaebb29ae03c07fd2dd86374da6f05a6196fbd9220820e633b274376980b73c18eb084a023d03cf42f4f21464ec44d1eb14c261af4f5e3ca9db961d5eb7dae8e534bf0e14b84e03de0af17f8cdb22e663e9343eea174ad7b9f7d1c4dfa7273997061e556e33355b0219ffff0219ffff05581d02c5ef0876c00a496eb93018c00fd795ac80fc553d3b687f0d8e724d8207011938480219021005581e03260510f6e9c377099cc1d67bb23ca57ab189762c6686757a64e5cb7060040205581e03596ec69e50932923eca7ce7cba1c20b5cfbf2b186b272a927042d72c700c01472e7b8af08a780005581e03c921b9cfe28750a7839b08dced6086f6dae2bb14ae340fc7fd0f6268e00c0d47ba9ab7242e23da033b46a4790def3a5db3e8777e4ee3f76210645828bdae474104964162dd642abf02193d4d03e51cd238fb2410ce9d48b47d45352cb9f58155215533ddb3128677fc5a7e35d0032233de5b29a931d3658d9d5fd3040c7b378a58d8058bb47ba0b0ad4136abcac703156a33dd7dd10447dec2f670e8a45c685dc4d5b334287ec799a489ef3b3d8d2d0315b6785522829b119f31af043a157197ab5ca5fdde2f1f2731398392bf53599e0376fe8c6b33f286d8cf2cf05f3cd8ee98addda26cf68812d9995811656f795c6b03af41bfd089eb4636e0d881feb3921c559936eaf0932d00bc834d09423bd88077039ab81a1ab7fc07cc26387b43633954f97244ad9007737a57e8c0f69f604898b3037eb7eead899d78698a0814e1211f675e8c221e4733d07a5a596c0dc69f42605103f5d901b48e5fa780932a8f1f41aaa68fc9f2a18456843c4675ef0e667458f35403eaaaf48754c8e37081dedf641873999e17240685fb7747b85255ac145afec5e2039868d5781978f1bd3638c7b19540d7df648ceb923db06b156022677bdf94975603a93caa111a4fe072357f380a0ea38e689b4605fa5148ecbf0e71d7b622930075035ecc631bf661243b6935435e1be5f0c9ca7d21b22c0bdab042b88fb525232db303c541c717f14dfd7a36f6aa87be7830ada0db5f5a851cf5150922a51a1d8397460219ffff033d01dd500f225b1f141499eba67a2b9d2a9ebca2fbf67cc4b6e2bc98ca4a3fa9039f44f81080d73cc2b62c41afee999ede852319f161a1f5b8c0bd26b48e3a655703153b9474cc73df3105641245b98d270d214db16b5b7cf34fa3fcfd393ece75d603ab19d0e73602bea99bebdcb34d47b3e4831a852b68d3db87099d5c54543bd8d4030273c745e6ef431fc9be0a3d23f44da5417f074f66450a7d66f96ecd426f334503e8079d7921d02bc0a94d0db891584943911e45d234a01a4b516601b3ab9d13d90219ffff037047fb2349fd428f1184253b50f171234a80aceb2d85b000ac0b4b2715d4dc580339570e39beb50283efad00c9764012e324ee8bddcc51d9558722951bb19e69b5031fdd09b0bc01bd9234ce6a256955cefc9c25aa643dfb22fe79e9ab4f8bfd3a360359cc10fcf9befc06bae3a8383bcca8bba30b9683bf806080a6290699f97e8da20219ffff031457f9ddc1febaf95d31f4532f3104cd3a51173cdd21c17ac3931a5677f2dbda0390d7069ae8d5121198d7d2d788bbf44107d94716ce3d15711acdfa108bfc8c830381c5e1c5fc018a073c7c8a5b0fc5961d1eb2d6f64eba05469c9bedbb6d75686c03e9a3cfbf327a6ae6ac9a29608c27acddb8f6e7476bf419e97b502150928771ef034ccd1127ad7e0798bd417c7730e4a5c1ca390e51c7b1b7533897bf0d8eef98d003ad649bec710f36ce86d972031a83cd550b53dd9bd42d6ce9d59f2ded84579dfd0353510d26d1cbe2b370f3663b51ef31b0b9a0be512fa14d8f99cbc1ade863eea1036c6d91ee84a682735e4e4b4059c0a28fc056194d3292cb622abc9102ed67d9a103cc5e134899d7b9e68b3149e2e1fb3adaec18e4e4a3ee26455c30240360543bab0308e6d2cbc17ca50a73827bd8f31b8aa0ae9ef87a94b8f53cbee5eb7c633f860e03e7cf89b74f0e3d1b833c010e30bc9d1e1a84e38841e0a4e6f5294968b480cf2003202eada7c90d4cf304409758d5c765a3caf46ecf14ffedbabf0afb3f33faa29103560913f660a47823ecd36233f064424b83dab2977624463ae6840aec188810bd03d06cab28fb83a50af63602b7a51220ff277aa603d528904368f53d0b92c8c64b0365d7b9344c0eaff07d825102cf92bf48a38bcd60cb4ef2b185d0f538b5a0901703d935852b9c9a0738f496d26bb7b03f5711935dbadf9bb0a62c5014289f700968031ef8c9876aee613d864f413991af03e8bbf83bd212d9391c3d4c35d872705e4b03e975c35fd1ae9734192fea8856dba1001edc2726ecf730d36bac650acce315b40364dac17de56f4697cc45cf6d0032ddaa8b3b1f643afb71e0f1375a512737adba037314e71ff6b888e850442c8817296f7b766807a434f761ed258ba86e7d4ad1e303cec9f554ea9387127a72b5d246a3354103d467c8a98221b50f185479d2d05cff0326f0602c87f1133d6f1ef4b23c8b290f0c704d606285b088a65bc9b9f3ae0d4503e6d33d87404970475092154ef18ffaed38ec790e1c7884318bad853a56dd79bb038c87cabeae31b9dbba87b78c085ba3ecb3d99ef38e1dab5781464353707a64c803eb5e671593e4ddd3f6d14077f3cf015c91469d506919fcbd260304a9cb9c24b303e446f80aee7d931573535f173c8e23a62b7343c5f54fe524eeeb702c5c56a9c60369aee8a99bcac0e1523e27ef490956af0f05dce03aad00b21624a393fb1de387035e0b2180b85e0b79f57de49ccb978bfb1332a267595a8872a4c6f3a8eea1c6d103b3f13083e18a76be6a3bbe5ef78f43e7d7aa1654d25dc52b9db46c93cba9a60203b26c630f7134b014bfc18201018c5163f5bf1fb5ead2089fee9b6bd694b5bd2705581e035e88cc13b4ff6bed6f8846e6d3060c33864666bb42d109e1070d45c2400c0247012e4f46b0da0003eb309ef66db82b84566437a488ce0af5acd0d4c5a91ca9ab39f7e02d56ca843f01410905581e03a0e06d5f66c803f74c9e57bcfcf9e19dde6e69928d7ed420941e368210040105581e03e66bf521018000e7a2a9d686c22157efaba0d76f3eb92354bebe1e08800c10410a0458be608060405236601057600e6013565b005b600e5b601f601b6021565b6065565b565b600060607f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156083573d6000f35b3d6000fdfea2646970667358221220274e2ed99d5cbf3b512cb6a2b443f367609dddc30d75aebd9734fa1abc8583d964736f6c63430008130033035a667de569339d23215950ea1e06acc0437f5c0d1583297425e434ddd425bcc603dae6227eac3b2f412bbc6cbedbb60512f52ad81023043cc40663eb5ca96eff86033af483b0a66944de16d8986223133c0410e74a829e873fe65fd2683ebfe229dd03c81d037b32e895af7ade0c09eaf6cd8d0df3f09832dc33e7b0b918b5014e31ea031a355a65f79a86cd50519fb5cafe7965413e3e040d9b8fe161693f1ac1948e2e03e9afe1cdb3b44c8051f801db46086421503e76ebea2e63dd9e2b915e52e5d45f00581f02a976fa961f5921fd19f2b03c925c725d77b20ce8f790c19709c03de4d814547f17a74942c5b22b340688f099c99a79426447e100581f02985b83e7758e99a5c0f108f91ab103765a84ace8e3814b4cea01dc74958341010219108003d89a992e4289a064ba38841102388b9e4c04bda82dd8ef721c0b7bd46a645668034f3aece5b5003beb2792ed23eb3e31fabba6032400ef8259aa34a63afe0c0c920314e8875dcb7fec7dca1384b5291b26b4e47d81bc0979ad054b0d090e53d4b93b0369e4ce2ed87a088a6ecfb38a2067ff0f3809deef5b7708c46529cc4f27ab081e00582003651722882df8f175237c60d5b6c78deba243dddc4792833346ba9c86b42370410103960bae0250d70b57db7ea982c9c6fb9a0ff006f6e5aef6341a40608af755a6e60352e5de0ce4664cf11cb3588ad4a9c6897bc429b78dfb4175e2b3664effea4dc9005820036e58c0aff7dba9f7af772206e5448af09950a424f6d1c84f59ee01b0596040410103852b9e30f712ebc6d3a8050b6f184f61f578b23239bd33d2f7533269a028f4510357c34cdc4e2391d3539d4137c671c8eabee1cde4008124d940832331476a366400582003c8eea8a7be216834790e6dc0c256c47c883c9f619097e26b5b2ff2124bb9f04101038322f228fb6c127dc4a5e664a6260bce7cf863925408784e0a0cdd88c29792620219fffe0322517cd4f7baf19ab4c049ff11582d404404de287c1cef8384a98dc1b0e7e28103588c0ba58f53d2aff1c329cfbf26529b333e07bc68947c1a633733ed0e3daf8f037014b2a1c753623b028869e9fe91da9a64d31cebfdd2bb625b9b28c23f4d6a7f0370e5914bc0795b197ce06a5abdb965c5c3e6323dd210c1ce5890f3c92a4ec27303b0c9a279a12ee329d25c2a7b63d665418d69fcc421fa042b94b963341885a3280329f2d546fd3b926b865391e668de70141d1a1151ebe78a39b197fd447eb37e06036be000463636f1fc8214c83e4f5164a00d917bc342a2bcca58fbcc4506c0f76703af2c30e1bdfe78cd110d657b3bcf279ac6420443fcbcd8ee8a678e18b8e7f51c032aa12e3e1194bd76a00a43eb333dbfc2426fd6bc9efd11470d128a76ef9a9eb503d9e368326c6a477cf7b03eeb2d4e4958e6c60b520f453267e52e7de40426e59d03914eb328b288b7237c645560ac162bbe7c47542dab2457dfd87702d4b31651100359d054465375b5590169919fcc3b22567cd0458d23f9da96167f96a6bfd47ea003b218515c0b7d84afd54d6e7033506762bcbdf87aaec9a1fecda9c71189928d780219ffff031fe964b8d56678e019d470eca290d72353e40032bafa5a71c5930169f625996c035b692aad5e14513b5f7bffd1ee4e3a19cd5b93885f59e5e1916a019c80df69ae032b59be117839ceb6c24f23a0c1860e6954e4d22d233abdfc30b48f916589b9b603835ce150f6e0538e6bb7e2151afcc0bb801fc092604e3af16810a6519f7e1c30036c9afa2ac36ee80742f2d582a48c0419d7759ff9535fb938c0d3f48b93467263005820031df26bee16921b163a573a6e3a02e644e35ba95f9978864a243b01cf233920410103e8764eefbe0794b98d9185477ed62d0d1f11a44ca7309bde561b84b82cdc31df035b3ae5499213ed8c1b39f3378587afb2529fd90b25d09c8fb4b6b054a3de72b803573c262cc6eff5e941dfab90181515e619f883bb7778ac50d1320ce5a115164600581f02b0da8a2a5ad927992d7981b074d6029b9fb4bf39c09ee3380bae19977396410100581f0283ed9988f79f6038d4c7a7dadbad8af32f4ad6df893e0e5807a1b1944ff955624631881655a310adcf0d1336658cc977609b720002190410033b12fc2f30705a969547813b08e49682599b5a9a098cb91bf30fb9a8744a92e000582003ce0623f7a489bc34c053abf02e3be0cabaaf2af802d139a42884285870d8a0410100582003a231d4d589bb9fe923e1c8eae671a4b737145b3531da32c5263f4dbdbd49f041010338e895b4e44987e954abe3f45a48fe0c6dcb7275b634aeeb08f7a99aed50298f0320ca923fb99c259f551d40c9c871087fe840e122647ee495a63e31f6c419f5dd0058200344177318e4d0885ff7c6e082e3bce7f20817385e512c9c578913d46de3e2804102005820032516299ccbbdb9f9138cf33fa911148dfcfb417c7308e3e84d7bab37ad8b0041010219f35f0330e2b48cb5880a6ed94c8810e79b09f871050aa1f35636f26ee1457fa87885650365661d00c4bc11845f8c306d99bb024d3ab47d91babf0861b278977a0bb408ef03de4061d0b18fcb340d3e34272e577fd6a5e200ffebde97d9559492eace55de850348f4c2f69e6b786f19ba1c506c8aa5aaca6a8ef46163ff0752f518e7ec49b7b203f53db18e554a5a13d903961f8e951387d5893877a41698cbeef3eeb03dea755103629d3d7f7282ffb58ffdb60cf4a01a78e0006b87aac0f15d9939334baa4d312d03c09801bac55e5c36568f828d4cc0d3691becb6ea2fb968d5bc7194d61924796203b2dbd72edc3358e15f591181bedb69d36a16dab3394ed29c22f072a25d8387f1038970c16774259ed65e4d4aaa14d88b0ec997b9f214d52d4d9f9fd27348749ee3037fef353e268f6a2735f9e16ad9c3bfd3cb99f14d8b979a0c39ce75d0d36c709b0219ffff03833d4a25671d06eb531d17da906e65da11d340023705096c6676eb751351339803549fa8856e96f3429b83f5c75b5778a7ad306553fdd586979950b0b8d5175f750364a537dc2cb2c84e4837adc135d9f986a49e39e3a10df47fa5849e26a74103fd0342e31a9604caedbcea5910b5780fcc098b4f54adfd36d8d26167d11f57874c9803125c79198252e3319091ef1ca4a818b904dd5960a52b7322b773c31e3b0db5ab03778f178e2217166e3b74e3e59eff8834dc2be96c5a08279c8edd3f77716d99a303b3db60e53579856dd4ecd9bfdc470d1e191045063f9c6341f6c85cbe2ebfab8203186df8db7a0f6ed0da1f2f7cde604f257d55b9bde83f469a8df8a335084074e403ac07ba62d870f509f73f7652c9bb58b648d3a8258fc3c12ddfac17fee5599d50032e91df863accc98d6560ba6f812c6b6763da7bb4bdce0b7e440586a8ba56d5e10352858b64bdc39c1d907902886ce7d8d5f488d5306176386580b66a065acec24b0058200315a53425009e0288b512b443be406d921953b8583bc6bb229c6cb54c5ecaf0410103fe18b4ceeaf87380a3376fa2ba8003810c7571f6a3655609ce48b78c651751ef0391d40139d29ff532cdce28a98cde44ae9eae7bb67e097fb3de6a57f57a859da403e18176caca3633d459fd385fb73e3da6fc89f9d0e404699ca95e38589e35586c039810de8197ab525fce3591e75fa0d9cf2964cce57cd50391f9404dbabaca2a70030d9ceece895c8496acc9326a6decfbc3cb8187a0d9620b775ea473144e935aeb005820039679dfa725dabcf4e04264a30d471521283be3e2589c80013d3253d76b9c5041010356a2f83bda2da0973a4fec5c285e42a16b194039597767e09b59d6ad35d2e07403a577fa692d0fc9ded85fec1f944a9fd84f3d36cf0261f377255f348113204adb033ca6f605d8401e23b70fadc2db9336c8752f7085e2fc49dab19d1ed821580b3003ccaf34d99c67643721d05e5188e169d9fcc010568e3978aa504063bda3924b2101410a033cc140297bbccdc8829427c417ab140c58470d659d88d9814419d2a81702781602197d7b03fa4018675c9c6402441771eeb6dfe72ed87085412ba430b29db708b3fc1e57ac0386a35b5b13cdd47e464070be47d34913b99ee98994d21f78ce4ea873a23924d503be666bc7671d78b51efc89ef0cca87063342b6c1f87d19db5052aa8e286a0e8903cda3f741054ec74c1da0166ddaa3dbb8f9806f72f4b764fb135ffc2e489e59d70219ffff03b2d36b0bc660a07744317a1e63cbb012db45ab21234f269a32fb6714b3e6b4bf035b28794ceed3da6035e889b0ee29e77a8cd860301a89597962822631d13e07a90354991b81fa29dd22a3f487440832abe1ee64cf0e0acc2cc6f411acd6b162dd01032f12b6f769d57d13477ae50b56746e613631b6bcb63ad41f2fb10b0cc48b375f039dd8f8a3049a3842e964661501be8e775ee390de002d348359c7e2e045a2f81203221b2a9983be702a7114693799e2f363095a24252163be0f8c9172186c584ecb035ed2ae73f5f0bac3ab9def5185f4d0757490b0c5eeb8979a3eed07f1e14b094b033e946dc9c19b8925580b5b3411a9b9c55d2c3869867ec8b80ebcfed37bd8c57e039bcacf70358ec0831083885bc779fd9f95121ec8c9830669f7cb9be9d36d404500582003e303a00c468a26850095953ad4af1b8e25ebb3afc09fc839e0fe8a877e5e504101035f72a0ee6c7fc7e80eae3f9e6b520f6ec5f9b6f78ede6723435bb87daef9b177035c0538be94ad146093d1866a4b6d5adbcb042b85b83db2f5a5e1a5a5d5b3acaa031cbac2ab0bbf3e8f2c21b91c563f298bcd0af64b5bca31cf93997f49bc95794b0346667a1618a34dea6dd003ff7b20f2fb8122c44d837e88c6f8073bd2bb76486a00582003b7c3f3ddb2a3d4a14b9eaa854cc0b7550c4b66c0db097ca5353a5678a98ea0410100581f020eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d54468b89d930ca7974196d7195033600b65801175600581f024e1a344bb386151a0945f6c078f60a18cefe838e4d7f7622075ec624688b410100581f02c171931f028f82abd610d2a0199ad17755b64e14974c44ddb3f2c2b226d9410102183403cd0bbd6ad2257617ed6b8eba0dcbb97bacbce5aaac74e59d2bfaa688aa23ee2103665e06e8e167bdd8e9364fb0c8158ad313b26a5d29f8ef9a05f2525557a7447f03873f7dba6dda9080b52f952af8997b48bcd4ef413f7c68a82cdc7113f0a61621036f728736098a848942ddb16dba27c1174d40fd9d9382e0bdc245b292b72024b90219fbbb0377c3a563c242a6d7e49599994b0513bb6f4202027678586f6efb9ae982c630dc0360fd3c614e6c38e504d97030de29044a1278a8cf53aeb888d5ddcaf8c7137247039c39bfb424f02cec4eed55645811e30c0466e7db511ca65c27f13eeb39d15ae00305eb990d2665b5749e41ad71739b6348ccf38cb8f5c478222b67837287d9aadd0385035756ef3f6b4f8ba8fa87cb1fdb7189e20c7e352e80d103b2f45aadc64c20039e1f7f5f1d4126d46852fa4cf4ae4168e6edc2ce28277a722878ecf8bce5c2b8039b389a2727226fa2ad18910c307ab80ea84ab5694fdaffe3daf8da055af2232f03b75e641f46853ba5fbb1851508daafca2c973c55cb8f5f7433224be47479aad40304f9692e12b38cd4cb100c6604f8bf444e2a38b2f158ae90b586f19cf8cfe88703035cb57f3447b2afb3d94c60591e9edcc19dd4c87c4365a1ba8d571a0f665f1e0219ffff03702eee3c73e0768dcb3fff42e67437e1441f879bea86d1fbe50d82da07150e4503a2a3c53d707cacb762a5ae2ac673b2238efb3a70e4760124f975039753561f9603bc7bf19ced0063a6b4f20861317380a2f587b5012f7f8c5e438e39deb6e7869a033422c4a0f3f3c68cb0a874c99502d0f286ddeb68a61a77544a02af12b59e6c2903bd3008590a0f27d902af3ac3938b01c843db5dee1cc61251c60815eeab6c498703d35046b3617381af09ad957a86ad2f19ddd066d4d72947fa13fcbe6ccfb79bbb03813ae895b47dec5b8bc8685b77183ea9b276d1e0e46811cc5cd12b56344cb7880365e8fc765c9e5312478043b453248a8da377edc74bd3ee42780983c0d9bfd33f03ee1f0e6060e6ca2fa52a04848baad396271b84f8ec6359b8dc6b0f8757cd462703fea1065491cac9f7286c3fc93497e38bd22cbcacbeab655a6cec474b350b8948039da4f6601907bedd415c21158bcfd8e0bb6920b3307d65395ff005dea09f2203034de7c0bf4914115a8c4ac1ceadfe9f639560c76afce540d88a727070aa0431b903ab86a5abac0e19a0b90b28b2cc0f0b3096ece3b7aa09d95ca1c5fbfa17a82a6d03f97c68066554fb2ff6d6e62792cb42b46a3ad8024b565c42971e6c10f274e94203ecd74a6086027cf4fc459ab0e9552bca4417a316d95a54da88e5807988f954ac03aaa96c4850b5a4bd2a3f45471042b59aaa7a4b2ffdda8b72834584e0f139676a0335eeb63fd7448c6e8b2472cb0ec48cd73dbe2050c701528cb1236b22cc9f48bf033e7b097c0237189eab245a76c8b17ecf5efad4e43446adbbcad58146567f988a03dde77fd320087870dbaa28b0233b8e469731449b7b696eefa440b233ef85b30c0058200302d019092194ea15e7da90c2ac03a4124f6fe395c78baf7c2f8bcc08ecba4041010377bc39fb2b4a527b596cd3fb97d740e81384d1cbd8a5fbbf3adc96c5f516063b03b1673d558028766a92a1476d69c52e8a4b38051dd3734ef7fa4f03cafb5f987803738ebce0e70fe8c0de9512668e90d734768a2ec066a9f85991060e63c178f138005820031022b9fd7d7acd83d2a5367a21a3159a91b323e371dbb60aafa0c107327050410103688683b30921e59101ddc6c33ab55e2dd9eeac989720dec73348ab942af218b50329fb2ef6c850e9e0eea2b368b159257af641a6c084d7b488cb4b3aa3d6dc9354031d4ac58ec85817a3e93d3d394168cd2d4321911fb7d9d0f4e7f90f5902cdcbf600581f030a3184717bde4d837adc8cd93dd26eb63cd1d9b3cbb6a5872d568c6bb73054f99cebba649f375f1877a76112b109dc79fa04b800581f031c3ac8f18551e6b75bd5c5057cbd18e75d5bd636051349568b6111acb2a041010219020401410a03fb7238043115f4feba13ee7f05c2f5112e8f9c17837cffd8e0d7bf3d0a0b8a1500582003c0b80ef66c2d9b6c9869a89b6bc09727366d713ee47b709af324bc47b4e6a041010219fbf303ee2cfed33865348835cfa9e70c6485fcc3e7e7eb2712fa704c33592df06206680350370c333a73844ede7f987fe860ebcb2f3f6cd3bc29db0f6f498023604472bc03246d8c230dea009a93c5311e2e2607a049c77294fe8b4982c9b90a4af1a33625038002a62db5e07a0dc4f3468aea44111c0a2d1b4a7183097d38b1b1322525bfe90219ffff036b1366f52029ab1bbabb211cf91728badc04dc13d899e00bc34561f17e6b11a70219ffff05581e03456026977cda5ebc95cea8873e68dc2ab961752f180c853651991c28b00f014902d5f8f8aac4ce9d0018be031659de68e6a279da28599e113109376d848bf72a54b56d945750294b8c97e773030657e508cc6d404d8cc89513d451fab06b3288013a5753906560d9cbed22571f05581e03b5b3727e45b89e070bb3cae7644c78d5e5f5ac2e1266373d6382329cd007011bffffffffffffffff05581e0382ca777736bc03155a40af7fa4657cf850e95185f8cc7d420167adaa70040105581e034c16d34440ca315e7d104dd4bb5fb664f073e105c37ed676e3fdde50300847056ead52cc814802195764037c8f35dc48f61348f098a391df0996bd100a8d5d7f3515791827c0969578047d03b0e85999348edf51c44a9ce8c12f6505fc5cd91857255a0a09de6595d10becc303d456f3e5a0c48c516737b8f3686d67786b3ba3657cd5ae700f146868add30746032edf948acbf619e06a369ef677ba3af6860f54526b19b39481c264e24651b1940311a209ff1dbb6e48fd6e795b4269d0b60114b776181d5843a08022bc0663c0ff034a101ce4ce80403c955db5b51c81fef1215f227b6085b0d93c1d013f524d56d90368156e8302110f8853e8a17bacf01344305e286c5dc136a7d258e974945af7480219ffff038122666ffe383540bf3a592b472ef249df221469a777d1f7bda1c8f2b2b58e5f034520456618111236127c6791899f484b5e37fa4fe10f56b01d7cd0c1ba04a24503e30c7599f822c7135a22161b565f9ef26ac9ea480edc6cb188614a616a97e9eb03b4df74d89af4b200638427bdcdf129d6a1094f7da174819838e9d6673622357603580af46c07af6d60f2547cc8a0283a1d3b8abc419f5a589010052d2df9966e3b035db6e3788073b187f3c033c3b95d66ac02225570ae19304b441dcba326ed8ea903dee7cfca1369faad5fd347a9f37ea2eabb65f1ac5a92d90f496296200c155f82037a795e6f860eb1257d11fd819c0456e31900443aa8ba927ba99996df6f4a60420219ffff0219ffff0219ffff036763932611f6b46660e9ddfaf365646c7cb51564b2b6da424c049f9021a3fc40034c7031a29f763ffb062890844825312898325d24331fa45cdc130ccd6852665103024208f1c40a2aab44a9e47bd23621b498046fc43ef59b4c85046ca460a5a3b003e9ac60d71b36e44f251c0b375b9ef24f1fafe9fdebb1bc2311ca4474b24914f803890434c48a098ea42b84cb947d869ea3a09a91459e68d0f3a30e197b7b4b11bd036fb281b95ba470042effd6bb37c9d7921624d48fca55a831fed5872fc0e5143e030f82c8e2ec2297bbcd80d558cf23722247e9d0a88d18f07bb982c5acf1818d3f039abbe4a9af2a72d33112e027adbb69da27fc9ebf62cb0628c684e7dab1c5825f03473724123d09389dac4bb40104b325a1185b2b64e4a67f1716cb2720655727ac035f5ebe28def6c6333dd68a7b38892644c8d13d89941800276970ec341b9a0c2503b285d6fb07d52bec97779a6c7ac4f3afc09afbcc75cf04ce5a2bf81a13ea7ee9032f1611a73c6c55cfc668b5316c54967fd38bed3156ceb1dc411472511709c26703c95bab77ed8c273a97e87b3a35d34c989d8f500942bdd8a90c35181f727b6eea031eb092570f6385d1865126ab520fee52ce1d1dba2cf1f3c99a66240e8d7970e003b972807b167bf7f8c24385fa23a83f3885faabf8a74b42c47f4e5f4b87616f0705581e031779cb2d284527c16232e88170877303f1369c1c30006c21a8c6cb96e00c044758d55665a8c20003aac331007dd944143838834d845137a97dfa611361c71d0f318ef5c17d61b61505581e03a4eef7289f5328813af333459b837ccf25fe8e587f3fcf4335143a12700c024740d70c8ce9d4e005581e0314dba01b79ae6c72aef8b1ab1056e19502e585e254d7c88b411934d730040103c6f4673628c40dc8aed3813b0ea9cec3012092808350db34ac1a77452cdb11fe05581d02cf06c9a8d1ef7df1ee14a19a76d9ad1c588301a61c73e407e45207d7040305581d0290c5eeca5ee9303eda9407f9a842103b5a3700bc6d521398e9d5d03b040104591aed608060405234801561001057600080fd5b50600436106101a35760003560e01c80639010d07c116100ee578063d547741f11610097578063eea12ab611610071578063eea12ab6146103c7578063fb1bb9de146103da578063fcc9d86814610401578063fdcada5e1461041457600080fd5b8063d547741f1461037a578063d802070e1461038d578063e63ab1e9146103a057600080fd5b8063a217fddf116100c8578063a217fddf1461034b578063b4a5503714610353578063ca15c8731461036757600080fd5b80639010d07c146102df57806391d14854146102f257806395b95c681461033857600080fd5b806336568abe116101505780637dc0d1d01161012a5780637dc0d1d0146102775780638a2ddd03146102c55780638b61391a146102cd57600080fd5b806336568abe14610249578063481d369c1461025c578063595c6a671461026f57600080fd5b8063248a9ca311610181578063248a9ca3146101f25780632eed8795146102235780632f2ff15d1461023657600080fd5b806301ffc9a7146101a85780630415cc15146101d05780631ea7ca89146101e5575b600080fd5b6101bb6101b63660046116f6565b610429565b60405190151581526020015b60405180910390f35b6101e36101de366004611789565b610485565b005b60c9546101bb9060ff1681565b610215610200366004611835565b60009081526065602052604090206001015490565b6040519081526020016101c7565b6101e361023136600461184e565b6106da565b6101e3610244366004611870565b610741565b6101e3610257366004611870565b61076b565b6101e361026a36600461184e565b61081a565b6101e3610881565b60c9546102a09065010000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c7565b6101e36108bd565b60c9546101bb90610100900460ff1681565b6102a06102ed3660046118a0565b61091c565b6101bb610300366004611870565b600091825260656020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101e361034636600461184e565b61093b565b610215600081565b60c9546101bb906301000000900460ff1681565b610215610375366004611835565b6109a2565b6101e3610388366004611870565b6109b9565b6101e361039b36600461184e565b6109de565b6102157f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60c9546101bb9062010000900460ff1681565b6102157f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a81565b6101e361040f36600461184e565b610a45565b60c9546101bb90640100000000900460ff1681565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f5a05180f00000000000000000000000000000000000000000000000000000000148061047f575061047f82610aac565b92915050565b600054610100900460ff16158080156104a55750600054600160ff909116105b806104bf5750303b1580156104bf575060005460ff166001145b610550576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156105ae57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6105b6610b43565b81516105c490600090610bda565b6105f27f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8360200151610bda565b6106207f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a8360400151610bda565b606082015160c9805473ffffffffffffffffffffffffffffffffffffffff90921665010000000000027fffffffffffffff0000000000000000000000000000000000000000ffffffffff90921691909117905580156106d657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b80801561070f5761070a7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610bfc565b610738565b6107387f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a610bfc565b6106d682610c06565b60008281526065602052604090206001015461075c81610bfc565b6107668383610bda565b505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610547565b6106d68282610ccd565b80801561084f5761084a7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610bfc565b610878565b6108787f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a610bfc565b6106d682610cef565b610889610da9565b6108936001610e41565b61089d6001610ef3565b6108a76001610cef565b6108b16001610faa565b6108bb6001610c06565b565b7f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a6108e781610bfc565b6108f16000610e41565b6108fb6000610ef3565b6109056000610cef565b61090f6000610faa565b6109196000610c06565b50565b60008281526097602052604081206109349083611065565b9392505050565b8080156109705761096b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610bfc565b610999565b6109997f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a610bfc565b6106d682610ef3565b600081815260976020526040812061047f90611071565b6000828152606560205260409020600101546109d481610bfc565b6107668383610ccd565b808015610a1357610a0e7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610bfc565b610a3c565b610a3c7f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a610bfc565b6106d682610faa565b808015610a7a57610a757f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610bfc565b610aa3565b610aa37f427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a610bfc565b6106d682610e41565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061047f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461047f565b600054610100900460ff166108bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610547565b610be4828261107b565b6000828152609760205260409020610766908261116f565b6109198133611191565b60c9805482151564010000000081027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909216919091179091556040517ffdcada5e00000000000000000000000000000000000000000000000000000000907f8a3a9d8f1181b67c292c06a0fb9284581af58bc4284d19bb07bb153d65a4ee8090610cc29060208082526013908201527f6973416c6c6f6361746545544850617573656400000000000000000000000000604082015260600190565b60405180910390a350565b610cd7828261124b565b60008281526097602052604090206107669082611306565b60c980548215156201000081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179091556040517feea12ab600000000000000000000000000000000000000000000000000000000907f8a3a9d8f1181b67c292c06a0fb9284581af58bc4284d19bb07bb153d65a4ee8090610cc2906020808252601a908201527f6973496e69746961746556616c696461746f7273506175736564000000000000604082015260600190565b3360009081527fbfe93621c6aa2dbf737e9056c9b79e4d30ee4f6b28b18be2cb71aac8a7bf258e602052604090205460ff1680610e06575060c95465010000000000900473ffffffffffffffffffffffffffffffffffffffff1633145b15610e0d57565b6040517f1ba4f8ca000000000000000000000000000000000000000000000000000000008152336004820152602401610547565b60c980548215157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090911681179091556040517f1ea7ca8900000000000000000000000000000000000000000000000000000000907f8a3a9d8f1181b67c292c06a0fb9284581af58bc4284d19bb07bb153d65a4ee8090610cc2906020808252600f908201527f69735374616b696e675061757365640000000000000000000000000000000000604082015260600190565b60c9805482151561010081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179091556040517f8b61391a00000000000000000000000000000000000000000000000000000000907f8a3a9d8f1181b67c292c06a0fb9284581af58bc4284d19bb07bb153d65a4ee8090610cc2906020808252818101527f6973556e7374616b655265717565737473416e64436c61696d73506175736564604082015260600190565b60c98054821515630100000081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff909216919091179091556040517fb4a5503700000000000000000000000000000000000000000000000000000000907f8a3a9d8f1181b67c292c06a0fb9284581af58bc4284d19bb07bb153d65a4ee8090610cc2906020808252601b908201527f69735375626d69744f7261636c655265636f7264735061757365640000000000604082015260600190565b60006109348383611328565b600061047f825490565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166106d657600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556111113390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006109348373ffffffffffffffffffffffffffffffffffffffff8416611352565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166106d6576111d1816113a1565b6111dc8360206113c0565b6040516020016111ed9291906118e6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261054791600401611967565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156106d657600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006109348373ffffffffffffffffffffffffffffffffffffffff8416611603565b600082600001828154811061133f5761133f6119b8565b9060005260206000200154905092915050565b60008181526001830160205260408120546113995750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561047f565b50600061047f565b606061047f73ffffffffffffffffffffffffffffffffffffffff831660145b606060006113cf836002611a16565b6113da906002611a2d565b67ffffffffffffffff8111156113f2576113f2611738565b6040519080825280601f01601f19166020018201604052801561141c576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611453576114536119b8565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106114b6576114b66119b8565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006114f2846002611a16565b6114fd906001611a2d565b90505b600181111561159a577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061153e5761153e6119b8565b1a60f81b828281518110611554576115546119b8565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9361159381611a40565b9050611500565b508315610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610547565b600081815260018301602052604081205480156116ec576000611627600183611a75565b855490915060009061163b90600190611a75565b90508181146116a057600086600001828154811061165b5761165b6119b8565b906000526020600020015490508087600001848154811061167e5761167e6119b8565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806116b1576116b1611a88565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061047f565b600091505061047f565b60006020828403121561170857600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461093457600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461091957600080fd5b60006080828403121561179b57600080fd5b6040516080810181811067ffffffffffffffff821117156117e5577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405282356117f381611767565b8152602083013561180381611767565b6020820152604083013561181681611767565b6040820152606083013561182981611767565b60608201529392505050565b60006020828403121561184757600080fd5b5035919050565b60006020828403121561186057600080fd5b8135801515811461093457600080fd5b6000806040838503121561188357600080fd5b82359150602083013561189581611767565b809150509250929050565b600080604083850312156118b357600080fd5b50508035926020909101359150565b60005b838110156118dd5781810151838201526020016118c5565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161191e8160178501602088016118c2565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161195b8160288401602088016118c2565b01602801949350505050565b60208152600082518060208401526119868160408501602087016118c2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761047f5761047f6119e7565b8082018082111561047f5761047f6119e7565b600081611a4f57611a4f6119e7565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b8181038181111561047f5761047f6119e7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220da989aa81c4560e24420b41321f74a240a14809346bbfbfa302453e5566ce64d64736f6c6343000814003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341ff05581d0250ec4978acdf1a74570adcbd2a07be768d2621243e83269d501eeb610701191aed05581d02f9f2a40757e49091ca00278c14955f12eb26a2a7aa6a315cd51aea660c0746f16c5b9a3dc80219a04403a7be4e37ef1ccfd3b738229c6318606ffd8b4b8100b8c1bd255a7eb8f56380b105581e034a988c841f57a3ea83de8be5360c97da99c04ad7a5f49be14e8629fdd00c0246e6b9d90d65400219721703eb8ef913a9b236ee29411577ba813c5fcab88c547f767ffa4e59e97498d84bca031dd580e2edf8f2002861a4b1ac7c27c352c932d351e5c28f03fd725e7a8948170314d5d6e2886e8f161f03a0b7ddc383fa5237d6e09cd498c87f16655a4e99a7fc030cc7c0e7ba043121f263d15f0747dbfa35a9dc5fc5f05838c91fc7091a99588303695aaf4812337d919b67285491f8d7cb224f5a86a36fafc9e8b6bbfa5fd3814f031a20c4ae33df3eaead44d7a018bf278c42303c98008aa7ea2286cc6b61fc536e03e99354798362b7c8a15e1e1f65e8022b3de69a6595503ade9716646db42de8f103d6e657e88d5a5070432c8d468a5e49d9bb3f203b4685d6a6fed1a8112f743ce403722fee25a25b8fcc14bd1c204d1a9cd7fa50df456979134f7a1700d4e1a2974103895608ec3f3e1aa5762c9bc897cb0d97847b9c7543a622df2ce79c00b3cc4c6203ec10493910996cb99a11b018306ab9596523c20b01d3e3c1a022baf77724b51f0219ffff0346503a466b102d235b1c5fc041ce5073b5ac743378a40b788b84c0504e839e48038a540746c2cf4c4313a6d93ef6b8b82aef217ff67b9de4dc95f370dd42e98bea03d127c51af56dbeb0ac3935e7430577153a7cf1fb550170997118bfac9d27d8fa03f8a19c3b1af995f574b80f4762a38918d91a66869d087fe067bf88e49a00e96103e6d75b17e24b22d5c4d3009025728507a9596d1d53da73cbcc8c2a03869019dc03581ca9793a0a4ca42af64268cb3842b85a1243bfc61e5571fab3f0282ce49d3d03cfd4e08b92024a15ba31d0c6f9fdbb65f6c353b795670d1ead6055ef9acba71e03ced9aabdab50c46d6d43f2757aaba668e6d5b38cfe6299f6e8a4f760aeaedf1803cd624688c790171ee5a60274e0822daf6fd0d82083f61787df9fe496dd4c1c4703f5e9a4f1adc1e1e0b18bfabb60c4db2112909fd7e55ae66585a0c05207c2d890030da5b85aeecb449894f8405d1fdc0b383f54a7bdcb325d063394298d77f639b3038a22aa84ec59f5f22e0cdcdc6553fda512e2225dd0da7902e384bd01948a6819039b9e3d0b3a289369cb100f75e2d745eb84441d94cb24507c80fef702de35579403ccd3724183c77067da449aec70b00c4c8051ef679a5686819024baf142305b2303ed42afc386d472f94eabb59a90988356034b8830f6f8bedf562963e3d73fcf060219ffff038dee310ac383225d02039923eb6aa7f2d78c859ad78052ca1dedd32dac8e244a03a4a1bd2635dbf7e5f9d002448fbd83319048032544ee00637fdc4f7cdefb774b031e5cc927b0bac9b26b3389e89a107a72d6b92efd2ef3a1e004607aa71f981406035392b0ad075381046be4754293a20fbcbc9e271a78f51d2e5862eab39a191370033cb928e1c21818ab101eff63e9f3905e8e8d68192e6598a86a77399e1dc82c4503fb19bbf250c7d3d07fa5fcfcbe55b6d8252bda3e74b8577e00a634512c5ea1e003f5f8dcaf25124a8878fd0e0b1f4b05403a23f94a6a7522aaee4499dd2289488d03385ccf9c925b35c09ab142143c8b94c28941f45256e121215e3e1824dded7b4403a2054617079ab267af12318da2834664ada147ed1647301310fba82d56c9ed4703db4952262c6384db73045ecbee2821ac1a11fb814706ba251eb956e94d034e6503c1e4c4efeb18aca12020896704c05fb0bd778706624a4336ea65d8293147e0fc03db58c7ed102a8f944460b8934648779293cda60f2502e5817fdf8455beb4fa230219ffff0326bc0c5d9b6f5b386bbef931c0cb890f461ea1e94a9e4e7a782c78c03333ceec03ea239c45732573bee0d68b3ff68eabc5de55d9238631ad7bf23782c05cbe092a038b774e8315d36ec38b8d132034809a8ed127a7f3f6d2d7711d720f5d21bafcf00321485eeed50d47c59b171212b000c33d87f96a540544f372a6c11afa10965362031ecdc677e36814823c92dd54962c5d56378e82cd59c59802c98239094f3aaac903c2744b7ce72d5c6639f384c03181a18a3705ffcf7c8ca7241be7b52d1534cffb0345f312457dbb083c11fc21b9b3557e62f239cdb7f92d60019eae31f3964002810219ffff03b1115765aba61e2567e0e3043239912c6ce27c2d63f035d0302e672cfcb5ab3b0376865baf5f40af35fe962618f0b0717b13f6f2c6c2b57ccdf65427e74ff4bac20340a0f9536decfa377f002739fecc506db24a2342a31fba7e3a720baeae3d527b037106d34e4eaa60892b10372139d57889920b0dfb9b785861425ff9fe9e0ecafb035618770f52f2d670f5820cdcf84a49ac62d07f818785d728f4ccbb715c57649c0376ab6390cacc1a8a3e6db38ccc58c2e44a05621c70a74312e35217bb4433062c0378dcab53b8c73bfb4536ab2ad45d21ebc0fec4552d8c909cc4463bda58dd20bb0317eb2b4e6fc14ff8567fb01978050f965681fd5cae27b2d34892a88261e4f31103d3fc8dda0464ff4effc1790f67402aaa6f46d298a425bd7f0bdd7509b052dcb8034ec96db9ad290200d59daaa53ed2f71096e44a9d13792bac385162dfca263c3d03da021d89752c45aad367ebf0c38f412158c1bf851270d6a292c7b3189e62372f03101d2184430f1710efdd2dc74516b0f825c08b523acc4f44ce10b9f81d42add803a3da7c6e743c5c29097d6120170622877b9a895ed1b36e78ff4d7c56f552865603c33527bb63ff9208bbc8b618c26cfe1bfe38313d64a04cb5985dff758e7320ef03b10f99d3b108311d585bd20f8927dc739a41a2687f570b76b5ca60afe03643ec03a25d628491fbdabdd1ebb502cb21df7919d9a0b57fa08ee5fb072fdd2e0126e103ceee344ca434db1c0fc23d78931e23611f1213c725de9f59269d3a05460c57670379cfb3e5a0789dd58ffcdcdd8479f0275ad1386d241f1261a4455e3b6c3884a0039183caaf3b1dadde0e887ef7fef7f4fa7eef5c13f004f669f21bc66f7f9b35a905581e032aad453edc72c9d73acb93ff9289594f50f45d24d448e5df24232c36000c0246e7dcae1da600036b685681dc23956d5a9753c0ed04348fbc47f64e96ec453fd23ee471ddecc14b045902c460806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e8383604051806060016040528060278152602001610268602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b6060600080856001600160a01b0316856040516100e09190610218565b600060405180830381855af49150503d806000811461011b576040519150601f19603f3d011682016040523d82523d6000602084013e610120565b606091505b50915091506101318683838761013b565b9695505050505050565b606083156101ac5782516101a5576001600160a01b0385163b6101a55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b50816101b6565b6101b683836101be565b949350505050565b8151156101ce5781518083602001fd5b8060405162461bcd60e51b815260040161019c9190610234565b60005b838110156102035781810151838201526020016101eb565b83811115610212576000848401525b50505050565b6000825161022a8184602087016101e8565b9190910192915050565b60208152600082518060208401526102538160408501602087016101e8565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ff8e6f2d761d58b3bd984933269e01a7ff1f70a460b808056daa4cff1ee8ab6964736f6c6343000809003303bb18dc2692b07e35ed1fa36dd3e2fd68cc9049b647163bb89a2ce953ce8c24c7005821039a5e4a9de4f33e71406d9cbe6101f7acea24216c35c33f3c23d431506fb051f04101005820024912ef9c3d2e394bee03f7499d35bab9c6b31f6d18b62860fefb1890e432684101005820020decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563410100582003fc4e067ee63d5ac4ab3b6ec2f269cd8ad359cc977d8a8c90e74117b2e76b204101005820036381c6d605bbc7b9279d27b865e486191e33ad943b6aa7e20cd97983c1fb1041010219080102190a20034bd648fff812e1c7a35efd495831d812711b263f64014ba3c1510b483b2446e4005821039a718556250ab6b7d22134dd883a9490bdeb4db670b229d494000a569e620f5041010300dccf3aa632c612c4b95af8df0b67d54f23dab46f52e7af6fe602bf5fa4c71200582002f2698103b2a3abbfd4f99f529d94fb1f1588c16f43ca618ae54af5271bb801410100582002b490a87928d9b525ed9e964341df3976704476a475576382a15a7be79750bd410800582002b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d5474ae836d6f949118b4e4d0af79924edd0d6fd16300582002912eae8801e5044f8e2cb6c4de4d8b0c71b273fc1c63804f2387f78bcc0fd0410402198025038010de2f96de80b9364fa47cc6a934416ec2627a451d3232d711349170795a16031e62befa78cc8ab76cd66d80fc56e75955103225bfcad2b468d44034656aac3d036347a22f9acc977a64188053effed271389469a684894eb06e671ee7205a9aaf0398404f2cd47b5c28bf8641a3510439935c3b02389ad2b76319f1e1585f898eaf00582103b12a6a28a9f88aa86b1f0ecdbfc007d68e62853c8d09877f9741cc7d0bab5a9054d89350284c7732163765b23338f2ff27449e0bf50219d6ef05581d020166b392a871db61ff9daf7847064346bd1942a6903723293a1c65520f014806799ca9953554501902c405581d026448688570aa8e7d25412f0a3d18ecd4ad690f7f6c41ea28b924ed2e040a03653f353eaec2292fd49f6ade591044dae4c25cf53288a64e4121ed85c6edabb60219041405581e039ca13fcc43d0ed833015e4e6259b5fee9ccfe9453c0ec87566f4a3db500c0b4528160a4c3f05581e03135dae1547018b7756e91fc3e4f25c04ae648425432b68ae2e253129200c02463e527cadb80005581e0350f39f7c30c3903751ec94534438815e260f10b99dcc1979f95ed5d2000c0147014cd6b3cd500003472ef294d4ebb3ce38e5e209a30689cfe88008f47bf487449a6f6b1fd86e2d90039c4461bd521b95238e78e9655af4e6774b4dfa22c33f4e2d0769804ca0c1310503ac9266de793b5294cb83325ac937a7c479197090584c8805b0401b5e1c3529710219dc2d032c23faf86dd135c31a46865a0d045e62d61b294265b14801f2405847fcc8f569039d051d2120aebc60ef8223a71926afab23c46f826400db119c58a3604a75c5f903ed58edf669daa6f3147fb8e564f9d55984737150773d8bb57c9bcf148b33937803ab7d541a6de3fc7e5f757357eb4cae2a6df1eef3a675f6033f7abffeabae34e903fe3c6f9854dd12b92bddb4e88fb581753ed00116e707c6ab12a8ff5b331eeb6303398941c72fede00d0c5e1130207474947f24dd36e565982fcecbd804804d6fea034c2618db21724b1ee3e404f71943eeede4a4734dcc018d00e4ed63138547b68703c67624ffc0704b199d5964f5cd37609fd190f3291d6dad584753e069811d31a6039ef62f4f2ed6b479dcc573555d708491da504da7bf5fa47b87698753e028915303f613c5afe3f6352623a2c44368b4df71b2acdbcc05e85ec9918d4de667362a9c0219ffff031263d8a6ad66b9a84f48e95e855a2663bbc7848f6b1afaf740040ea79651c7210360677a49641a01cc88cba28fbfad1233a7d5789cd56014e3fa075fd1aa430bab03fbf42937b374bac3f342ce46c2a02e0c69e73ebac560f41a6e232a027491a93c03a8ea62caaae1e90c59a772ca49be0ffbc41e41b43727e99a64096218f43b8f8903181ee3af09beaf180d04630019df867229e005caec16334e0dbffc848e38b9750390baa0d1fdf86853c42d78438721337c319fe511ccc03e4cc3bf819a3b1076a2030560933da89e824ec9374fe91bd70b337fc5f86c5e31f0a45c9b3268375452db03241812e09c3a2e2eecd7e9198b6cf6ec174ddcf6840d318109bcd2240301c0070383d1fec302ed559ea14ab3b02041864dbad52889e2010a252c33ec0b53dd66b40219ffff03d7dbabe070fd15fe5c7080297814bfd0315a3f94f5ac7b8d3c4b59f2f53170ff033019455bfc877d19b7998f5eff6384d7d3fa9268bf5f9d62d845e655228476db0305e72edb9a2972bab82f67eccf69ed40a3d613f89f6bacf5e78cad5072df155d03202412600483fecd785bf6f893f2ff36699d5770473de766b9fd842566ac324e0374978d6620e42a8bc1616bbaed80e74fea43ea4c802052b1e58a4274647e3cb203eda8c6eae85b8334ffe0c2e9e8aae554673e67c1fb931c93b34e2c5a5b934f7303cf99354a478131f0f252ca52ffeca8b19ace6b0bcd980217ff9badaa4886ce740219ffff03f1cfb8d83e1112c24c3c08a6cebc6fe48a99700b01f19df8709474a88e952ec7034c01069ee3d65c1027374dfb06f575fc855eb922bfeee30236ded914eb0d5dce03727a59070b3af25a948a5336a53d0a6495477819243a500fbeb1c5e6fb0e2683030d70ba26856edbec3aaebcaf3fba4ca89c973bb07a9ccc04bef0d8af3654282e03da05ecf9bdb0ff3ee99ff39b2978cd03317f9b3001920565004159492c2004c503cd234cc5e57915838d5871b8ae78c7fdefc2c5cc99d5a02004ef393137819ad203605d8a2caf6cfc3bd49ba746aa6d728823479e2e7f10f8e196c0b5f762e3ad4f03ed5e9e7e73262a0906d38596989bb0aa098370165bbaf8e18ebb79065d3eca200308878d449732ef6be5fab3ec4a91f053a4a5d6e2607605203caab929f1abb9b803266e9c98f379f5449dd03c0b2554d5f385e05c4d918770c1b5ae393dd887e81003e3609eb010c36a5ebe3e51836a0b95c36a0b0bc9c5ff40296fd1b1d891406f4803d6cf3989e0ff07a5fd689a82510942e2164c2893d148dcf5d064e8a37945747c03171036000a5dd15ce1c1410467df5c1743d319597cb1ad2ef46f80709fad061a03acc033f9cc4bbd9aea28b5a4058293dbe7bbf7f4a90997e5c19bc0a7e34c50d8032934080183bf0d04147ab277622a70ef58609b9774a5eb873963ed25da360e2803f2ca903d4383d609716b2e4fc2e0a2d42ffedc3477845094e24c4aae2fa1439a03d7ac96aa961962448cdfa29f16a323f6512c728a5c293577b8d1c1b6fe60431b03c5f2f5c320f0439425c9375d435aaa4e79f3ea7a3b3513003fd57e001e77fe1d032d0aea6142a91877acc07dca4e9c1bd4b65bd0296e6ac6d759977c48f13a913503dedf83cbb3b82a1ae5b3b620800122e241b7989faf95c9a2be0bde78e9d566240300983899c6cb37518f13b92a5426d270e91dd6d68a8d4072d1d942e23c2838b803cd87498bc7ba8f271a462dc8199a443cd327c5e10d343e62130115a126dc8ff203a175fd6af7eca2a29566beb4c895e0d94a087bf93a129906571996fff6ca104a03a3a325cbae2062af1f61f4e61ad79928b6a631a208a64fe180e723c9d9df9a720370bbe4a2fa89a7a1cbf9a04fd44834ab2102026d063dd621163aae37c9a830f603e9bfacc9a31f5112a9b419fc5346e82ebfe313b9b6bb25e593f96dfde5e22d14039ce051361d1d329d28e90a5c1e4050d0c9bd4ba3a2f43543c5be66d493246e7d03c3293abf3a367ed640d9dd9c9aa18e043d559ef70768ac272b35f347ab33a34d0335d18a81837d2038e95817e700783fe2ac9ab2f2ef985e1c41dfe55f6fd76cba03b35c7dba038d0f989700f2b407ca8927153d5d09603a4df4e1d5d68c2513847103f25b9874e8db1b05c44a1c13d9a83fabf87ba2b3ac7c572e2f2ff0c5923540f90307be01e7e7206fe31ecee91ad75dada65ad6ba433ae647a1b9330469f7c6677c03709eb5dda2147c4fb819a20da7a29219edf23b78b89a76895cb5bb987352df3005581e0381cb72f716f6c017fe44ba4517a8f942d1527620456ae4ee3ed579ef6007011bffffffffffffffff045920d96080604052600436106101355760003560e01c80638da5cb5b116100ab578063bda009fe1161006f578063bda009fe14610737578063d2ce7d651461076a578063dd61456914610804578063ed08fdc61461083c578063f887ea401461086f578063fb0e722b1461088457610135565b80638da5cb5b146105ec57806393e59dc11461060157806395fcea7814610616578063a0c76a961461062b578063a7e28d481461070457610135565b80632db09c1c116100fd5780632db09c1c146102915780632e567b36146102a657806347466f981461033c5780634fb1a07b1461036f5780635625a95214610486578063658b53f4146104be57610135565b806301ffc9a71461013a578063032958021461018257806313af4035146101b35780631459457a146101e85780632d67b72d1461023d575b600080fd5b34801561014657600080fd5b5061016e6004803603602081101561015d57600080fd5b50356001600160e01b031916610899565b604080519115158252519081900360200190f35b34801561018e57600080fd5b506101976108c6565b604080516001600160a01b039092168252519081900360200190f35b3480156101bf57600080fd5b506101e6600480360360208110156101d657600080fd5b50356001600160a01b03166108d5565b005b3480156101f457600080fd5b506101e6600480360360a081101561020b57600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101358216916080909101351661098e565b61027f600480360360a081101561025357600080fd5b506001600160a01b038135811691602081013591604082013591606081013591608090910135166109d4565b60408051918252519081900360200190f35b34801561029d57600080fd5b50610197610c31565b6101e6600480360360a08110156102bc57600080fd5b6001600160a01b03823581169260208101358216926040820135909216916060820135919081019060a081016080820135600160201b8111156102fe57600080fd5b82018360208201111561031057600080fd5b803590602001918460018302840111600160201b8311171561033157600080fd5b509092509050610c40565b34801561034857600080fd5b506101e66004803603602081101561035f57600080fd5b50356001600160a01b0316610c84565b610411600480360360e081101561038557600080fd5b6001600160a01b038235811692602081013582169260408201359092169160608201359160808101359160a0820135919081019060e0810160c0820135600160201b8111156103d357600080fd5b8201836020820111156103e557600080fd5b803590602001918460018302840111600160201b8311171561040657600080fd5b509092509050610d27565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561044b578181015183820152602001610433565b50505050905090810190601f1680156104785780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61027f6004803603608081101561049c57600080fd5b506001600160a01b038135169060208101359060408101359060600135610f97565b61027f600480360360a08110156104d457600080fd5b810190602081018135600160201b8111156104ee57600080fd5b82018360208201111561050057600080fd5b803590602001918460208302840111600160201b8311171561052157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561057057600080fd5b82018360208201111561058257600080fd5b803590602001918460208302840111600160201b831117156105a357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505082359350505060208101359060400135611134565b3480156105f857600080fd5b5061019761119b565b34801561060d57600080fd5b506101976111aa565b34801561062257600080fd5b506101e66111b9565b34801561063757600080fd5b50610411600480360360a081101561064e57600080fd5b6001600160a01b03823581169260208101358216926040820135909216916060820135919081019060a081016080820135600160201b81111561069057600080fd5b8201836020820111156106a257600080fd5b803590602001918460018302840111600160201b831117156106c357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611216945050505050565b34801561071057600080fd5b506101976004803603602081101561072757600080fd5b50356001600160a01b0316611418565b34801561074357600080fd5b506101976004803603602081101561075a57600080fd5b50356001600160a01b03166114c7565b610411600480360360c081101561078057600080fd5b6001600160a01b0382358116926020810135909116916040820135916060810135916080820135919081019060c0810160a0820135600160201b8111156107c657600080fd5b8201836020820111156107d857600080fd5b803590602001918460018302840111600160201b831117156107f957600080fd5b509092509050611529565b61027f6004803603608081101561081a57600080fd5b506001600160a01b038135169060208101359060408101359060600135611546565b34801561084857600080fd5b506101976004803603602081101561085f57600080fd5b50356001600160a01b031661155e565b34801561087b57600080fd5b50610197611579565b34801561089057600080fd5b50610197611588565b60006001600160e01b03198216634fb1a07b60e01b14806108be57506108be82611597565b90505b919050565b6004546001600160a01b031681565b6005546001600160a01b03163314610921576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b6001600160a01b03811661096c576040805162461bcd60e51b815260206004820152600d60248201526c24a72b20a624a22fa7aba722a960991b604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b61099a826000866115b0565b600580546001600160a01b039687166001600160a01b03199182161790915560008054821690556006805492909616911617909355505050565b600061a4b160ff16336001600160a01b0316638e5f5ad16040518163ffffffff1660e01b815260040160206040518083038186803b158015610a1557600080fd5b505afa158015610a29573d6000803e3d6000fd5b505050506040513d6020811015610a3f57600080fd5b505160ff1614610a88576040805162461bcd60e51b815260206004820152600f60248201526e1393d517d0549097d1539050931151608a1b604482015290519081900360640190fd5b610a9a866001600160a01b0316611627565b610add576040805162461bcd60e51b815260206004820152600f60248201526e1393d517d513d7d0d3d395149050d5608a1b604482015290519081900360640190fd5b6000610ae8336114c7565b90506001600160a01b03811615801590610b1057506004546001600160a01b03828116911614155b15610b7b57866001600160a01b0316816001600160a01b031614610b7b576040805162461bcd60e51b815260206004820152601b60248201527f4e4f5f5550444154455f544f5f444946464552454e545f414444520000000000604482015290519081900360640190fd5b604080516001808252818301909252606091602080830190803683370190505090503381600081518110610bab57fe5b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526060918160200160208202803683370190505090508881600081518110610bf657fe5b60200260200101906001600160a01b031690816001600160a01b031681525050610c2482828a8a8a8a61162d565b9998505050505050505050565b6001546001600160a01b031681565b6040805162461bcd60e51b815260206004820152601460248201527327a7262cafa7aaaa2127aaa7222fa927aaaa22a960611b604482015290519081900360640190fd5b6000546001600160a01b03163314610cd3576040805162461bcd60e51b815260206004820152600d60248201526c1393d517d19493d357d31254d5609a1b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f37389c47920d5cc3229678a0205d0455002c07541a4139ebdce91ac2274657779181900360200190a150565b60606000610d348a6114c7565b90506060610d43338686611a9e565b604080516001600160a01b0385811682529151929350818c169233928f16917f85291dff2161a93c2f12c819d31889c96c63042116f5bc5a205aa701c2c429f5919081900360200190a4816001600160a01b0316634fb1a07b348d8d8d8d8d8d896040518963ffffffff1660e01b815260040180886001600160a01b03166001600160a01b03168152602001876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b0316815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610e4a578181015183820152602001610e32565b50505050905090810190601f168015610e775780820380516001836020036101000a031916815260200191505b50985050505050505050506000604051808303818588803b158015610e9b57600080fd5b505af1158015610eaf573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526020811015610ed957600080fd5b8101908080516040519392919084600160201b821115610ef857600080fd5b908301906020820185811115610f0d57600080fd5b8251600160201b811182820188101715610f2657600080fd5b82525081516020918201929091019080838360005b83811015610f53578181015183820152602001610f3b565b50505050905090810190601f168015610f805780820380516001836020036101000a031916815260200191505b506040525050509250505098975050505050505050565b6005546000906001600160a01b03163314610fe6576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b600480546001600160a01b0387166001600160a01b0319909116811790915560408051918252517f3a8f8eb961383a94d41d193e16a3af73eaddfd5764a4c640257323a1603ac3319181900360200190a160006001600160a01b038616156110b057856001600160a01b0316632db09c1c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561108157600080fd5b505afa158015611095573d6000803e3d6000fd5b505050506040513d60208110156110ab57600080fd5b505190505b604080516001600160a01b038084166024808401919091528351808403909101815260449092018352602082810180516001600160e01b031663f7c9362f60e01b17905260065460015485516060810187528981529283018b905294820189905292936111299383169216903390349060009087611b08565b979650505050505050565b6005546000906001600160a01b03163314611183576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b61119186868686863361162d565b9695505050505050565b6005546001600160a01b031681565b6000546001600160a01b031681565b60006111c3611b27565b9050336001600160a01b03821614611213576040805162461bcd60e51b815260206004820152600e60248201526d2727aa2fa32927a6afa0a226a4a760911b604482015290519081900360640190fd5b50565b60606000611223876114c7565b9050806001600160a01b031663a0c76a9688888888886040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156112d35781810151838201526020016112bb565b50505050905090810190601f1680156113005780820380516001836020036101000a031916815260200191505b50965050505050505060006040518083038186803b15801561132157600080fd5b505afa158015611335573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561135e57600080fd5b8101908080516040519392919084600160201b82111561137d57600080fd5b90830190602082018581111561139257600080fd5b8251600160201b8111828201881017156113ab57600080fd5b82525081516020918201929091019080838360005b838110156113d85781810151838201526020016113c0565b50505050905090810190601f1680156114055780820380516001836020036101000a031916815260200191505b5060405250505091505095945050505050565b600080611424836114c7565b90506001600160a01b03811661143e5760009150506108c1565b806001600160a01b031663a7e28d48846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561149457600080fd5b505afa1580156114a8573d6000803e3d6000fd5b505050506040513d60208110156114be57600080fd5b50519392505050565b6001600160a01b0380821660009081526003602052604090205416806114f557506004546001600160a01b03165b6001600160a01b0381166001148061151c575061151a816001600160a01b0316611627565b155b156108c1575060006108c1565b606061153a88888888888888611b4c565b98975050505050505050565b600061155585858585336109d4565b95945050505050565b6003602052600090815260409020546001600160a01b031681565b6002546001600160a01b031681565b6006546001600160a01b031681565b6001600160e01b031981166301ffc9a760e01b14919050565b6001600160a01b038216156115f9576040805162461bcd60e51b815260206004820152600a6024820152692120a22fa927aaaa22a960b11b604482015290519081900360640190fd5b6116038383611da1565b600480546001600160a01b0319166001600160a01b03929092169190911790555050565b3b151590565b60008551875114611674576040805162461bcd60e51b815260206004820152600c60248201526b0aea49e9c8ebe988a9c8ea8960a31b604482015290519081900360640190fd5b60005b87518110156119755786818151811061168c57fe5b6020026020010151600360008a84815181106116a457fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508681815181106116fc57fe5b60200260200101516001600160a01b031688828151811061171957fe5b60200260200101516001600160a01b03167f812ca95fe4492a9e2d1f2723c2c40c03a60a27b059581ae20ac4e4d73bfba35460405160405180910390a360006001600160a01b031687828151811061176d57fe5b60200260200101516001600160a01b0316141580156117b2575060016001600160a01b031687828151811061179e57fe5b60200260200101516001600160a01b031614155b1561196d5760006001600160a01b03168782815181106117ce57fe5b60200260200101516001600160a01b031663a7e28d488a84815181106117f057fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183e57600080fd5b505afa158015611852573d6000803e3d6000fd5b505050506040513d602081101561186857600080fd5b50516001600160a01b031614156118c6576040805162461bcd60e51b815260206004820152601c60248201527f544f4b454e5f4e4f545f48414e444c45445f42595f4741544557415900000000604482015290519081900360640190fd5b8681815181106118d257fe5b60200260200101516001600160a01b0316632db09c1c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561191257600080fd5b505afa158015611926573d6000803e3d6000fd5b505050506040513d602081101561193c57600080fd5b5051875188908390811061194c57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b600101611677565b506060634201f98560e01b8888604051602401808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156119c95781810151838201526020016119b1565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611a085781810151838201526020016119f0565b50505050905001945050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050905061153a600660009054906101000a90046001600160a01b0316600160009054906101000a90046001600160a01b03168534600060405180606001604052808b81526020018d81526020018c81525087611b08565b606083838360405160200180846001600160a01b03166001600160a01b0316815260200180602001828103825284848281815260200192508082843760008184015260408051601f19601f9093018316909401848103909201845252509998505050505050505050565b600061153a8888888888886000015189602001518a604001518a611e6d565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60606000611b59896114c7565b90506060611b68338686611a9e565b604080516001600160a01b0385811682529151929350818c169233928e16917f85291dff2161a93c2f12c819d31889c96c63042116f5bc5a205aa701c2c429f5919081900360200190a4816001600160a01b031663d2ce7d65348c8c8c8c8c886040518863ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b0316815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611c56578181015183820152602001611c3e565b50505050905090810190601f168015611c835780820380516001836020036101000a031916815260200191505b509750505050505050506000604051808303818588803b158015611ca657600080fd5b505af1158015611cba573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526020811015611ce457600080fd5b8101908080516040519392919084600160201b821115611d0357600080fd5b908301906020820185811115611d1857600080fd5b8251600160201b811182820188101715611d3157600080fd5b82525081516020918201929091019080838360005b83811015611d5e578181015183820152602001611d46565b50505050905090810190601f168015611d8b5780820380516001836020036101000a031916815260200191505b5060405250505092505050979650505050505050565b6001600160a01b038216611df2576040805162461bcd60e51b81526020600482015260136024820152721253959053125117d0d3d55395115494105495606a1b604482015290519081900360640190fd5b6001546001600160a01b031615611e3f576040805162461bcd60e51b815260206004820152600c60248201526b1053149150511657d253925560a21b604482015290519081900360640190fd5b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055565b6000611e818a8a8a8b8b8b8b8b8b8b611e8f565b9a9950505050505050505050565b6000808b6001600160a01b031663679b6ded898d8a8a8f8f8c8c8c6040518a63ffffffff1660e01b815260040180896001600160a01b03166001600160a01b03168152602001888152602001878152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611f56578181015183820152602001611f3e565b50505050905090810190601f168015611f835780820380516001836020036101000a031916815260200191505b5099505050505050505050506020604051808303818588803b158015611fa857600080fd5b505af1158015611fbc573d6000803e3d6000fd5b50505050506040513d6020811015611fd357600080fd5b81019080805190602001909291905050509050808b6001600160a01b03168a6001600160a01b03167fc1d1490cf25c3b40d600dfb27c7680340ed1ab901b7e8f3551280968a3b372b0866040518080602001828103825283818151815260200191508051906020019080838360005b8381101561205a578181015183820152602001612042565b50505050905090810190601f1680156120875780820380516001836020036101000a031916815260200191505b509250505060405180910390a49b9a505050505050505050505056fea2646970667358221220c4a157f9a39440a0ea612bf7652aa5411a0f46a2320a00c81134f98dfb9f2fc664736f6c634300060b00330605581e039cf14dc4d9f4b3c3ae2989a1919caa91d2169e9eba0d9fdad4cd38dc3007011920d903fe3cca245616f2efa50db4cb628ab09c44b216fde788c0747d54cd6730ba9855030eb7d3bb7a34785e01f49a3d21296e19fdc8e28519e8d5b95f63fef3604f54cb03f2737c9ae758fc67361c8592a9377fa85241dc306aba2e4416421493bd365da705581e0341af4d71ad7d0f683c78d9b3b3bcb1850066a2c35a8a96d620e5b19ec007011bffffffffffffffff05581e03f389883886d39b77e85e9072a0bdfbd3e4a41d36aacba01e04b2badd40084807723cd2fa0e50ba05581e03311d758ac4e38690d7eb1962d9ccdc194dd16b42fbbaea7808878a4990040205581e036d2b2a64461aac445d9284200a14a3bbd4f056f864aa3aa450a20ebdf00c024694a7fa0c37d005581e035f6289f55573bb0fc84cd15b13436e16d0ad801223af9749b1883fa4000c0347656c2369a7400005581e039c565af8647aa9e9b92345663b5b11ec3ebbdac34765ac6cb5dbb087a00c01461147c840300005581e039c614e7c3d5c3cb82c459403c6f8329b123f240e48b3d1eace3c2ae1600c01460f761ef6100003905982d3bc98b3ad75d5ca7a92446cc8923fae39a2352245000f9d3e9dc0f3ee03bbd13d463ce2111713bb0d6ad117b0ba991bc32336d501e872703c4ad6bc3c9005581e03841506892bc9eb385fd90ec103133c4228c790fe83be912bda4d2f4ee007011bffffffffffffffff0219d3b703a43387b45db0f81e16eb70cb328eac2dd21306d6ee753d083eb5bfcdf583dafe0370c282fc337585bbaca27262304d06b0b42d144498a9f8e293e7380262cb1b08035de319d96bf8486e34a53c19b01f0c95a7c460f8039e86c15d2f9b62f5bec7d20366f11bbddb454d5d9eaf2a60cb6fe86aade0c60a009003319665c2f872b6c08503e662a152e7be962d33e396206e94b56ef75ff5bb8c64e1778ebab769f519bc950359d875b0c6b0bc47a34dd108e916e242b64a8725c8a0be89bc54b46895527636037bf98ac1c362588b4502c39aa13713aade12b53de5dda95bec649793706bfc770354a877a99aee49ef1a7dc96c7324eccd60d70ac7281fd427e88443d96809859a0317a90a6b697a6549b312710559b622fa558d342318ee529346da6d640cf11e170219ffff033aea310386f16e52bac684a55e7aca2df87a2aaab9e7d2bc22ec47336be000c0038c8e79342450910283e4f7420a274ed3f4fe5a8a18e55a3cba9a6082ecbbca53031ccce546db4119e8a4313bd20f4c84eeedcd5c2011a3c1257e43a3d579d277910219ffff0390c2e2bf04e57f9dbedf9276267081d5662d24d99abdb8634995d095b29327710312a423af74c1d6dceb72f6bd4268455dbae1be378aa3b7cfb2a1bc65edd098ac0219ffff034a14534893ea10b5b8c2a8ee76022b6958b7954e7eff54aeba6b7e8939c9f9860310343d2a2658a3ecb3592f5ffeb786fe244b00c91b9615755d602a77c22def77032949bb04738893a97a7f6bdd867c7417cc2e2d4e8b22c0782d9faacfe3e4ce7303a94e50e4cea6b24313fd4fe6207ad0b47edfd0740dc387633e030e7c24ba457903694d556a24f789d5896137e51232f1cb2cb448de6f858db4255d814cd55ce3df03590dc8c3af171aabe786f945e5a2eec26260e0e0e8d181b532b6fa2c603e1ae30389a8b7951587db132212af12cd8cc2b654e15bdc53297ddcf6f9045d04c925ab03259dac092a261c35a7d43bd5d6dea1d8ba95c95920f80f53006812f87c480ad003aa2d023d68f82fe98247be28f675cf714a9a64907ce8a3fbc11eda622155505a038779258dd1129f456d974f8ce3c13d5a138c8b8c63362e2ea732475f24731e6603673bb8518b22267f7ff0918e3e2aabe0fc4054ac9e476fff5f04f1662157302e030f7c9ee0c04fa805042ffe4ff3e8c4407b1f005f1dccecb7d452636ef81ba37103bb5768a1ebd19fe8b8a84a648e5d6dcfe72e2e55af792131893e606e38f2a56c0300f4ebbce581008a6849549248b76e5a321a5854d29adcf2abe05eacec8bd7dd0334b7a20c430e22682af2e9d5eabedea5c540bb5bac43c0925d92fc4d0e7b0b3d033f2b34cf33ff2bbb137e633581eb1d63d39b7a59b7e5d95dc70b6bbdfce3bc8103e95774457c96434c4ec544dede37fe88d27a61bb5773264f6ac9f218bf0d775e03e5723de5faf4076670e1e103fc374579a89c95b2c34fdb7273714a32a541424703220d653add14c47e7e15c1543a5b42a58c7098119dd18a4711ab6d939b46291f039c63fdbb3cf1402e0dfc7fa5255160faf4999636c7ac91d08d9e4d14b8ab2ab4030c324accd7a0ab0793155172c20eaed211fd498639389d9dcd5c935d98e1c9b703b56604367ffa41252a9d85c75116f6ce093151a0e72748e43585863ec94b7cbb033ea4eebf8e491df96d16571510395b8f4e4a3c682bb262e737bcf52051da20cc034ea8e1890d72b97f4ecba4f2e9b287c8c0a5369b777c12a336428d83542eb93703be86a8dc77b9a5ba46da94feb202d11f1b6ec1abd8e822da78ea9451b6ee46f7030763a63470f4ceb1a324f07f7f72595a71e31cbf3e740a551503a18ea56edb9f035daad351b1d2b6fb9ddbe6e3817e6e088c4aa60655e17793f2f174068a1ed0e50300e3a51c27c69871ea5e19a076723130fb44b7b56c776bfc78cfac12befc1bed0353ab7043b24ee742dbee2e287648f431ecdcfef0dc6b9ef94f11835785b7fc8203f7c2febffc4b43989f42789c5463abba8270a8b07b9caa5fd0f0b2a1cd8f21d505581e0368379acf8f67b761074df081dae5e8a0037acb5b84184c4970b76038b0040203e14da48bc42020c9fc480bebb61e6b51e906177b27661b66323b4246e378cd5c0316a39033fbdd9f202d78f7535b6792d7fc66ef47e00d1926325670a0a5efb05d05581e035bba98ff4015d36bac677a961142de922c68596ed44377f5a8ae5a6d100c0246b8e5b6441a1005581e0376e90abc072c90ccb2bb99cd942d0182ae5ab674942ce414d8c2c186f00c02470119e62ef498e805581e035801d90fbbcd3379244f1fcccb5ff61e9b0619e85df05e12c93cc1a720040105581e0332ee767a03a88d06a5da7c29f6020785b00a7a8ad5cfc5e5e1f1517ec0040205581d022c6432e66befbc07372e0a0debd1fac4200f546578f557ce82265c990c1546819c045185b305581d0233dddeaa84b5de8028d3e62da021c59f713b8ea4e24f1e0c16bdba540c0147016e687b3d9c000218280389859ccbd42f72c13ea78b74273c275735f770681818995cf69cbb20185a96b505581e03ef123a82e5c69fba47824c2f0958261a1c4bc324cc1fc80e3736b9ddc004020339b2abcee24c128fc061dbfd33c0218a2f5013d8e0dfe8a84ea4035313f0227e03e2a8dc4348189117f14e30eb98ca8c3162e5c2614cac46d6db5ecbdea04ec71405581e03d74154cefbf552c31f537e9a533ccb86d749129ee09df5ec341a0018d007011bffffffffffffffff03c9a1658ce25424bab8075f3cb8ae9fb46c88d8575318d27c8d6eff663fa8b4cb021975ff03747ef7f19b765636f180bfe468beb06fb617ec1d5dcc34ebec36bcd2626a0afe03220be2105f64afe4688ed1900638729611481712aa6817f392dbba3a8dbf05ec03a0d21883d8fe6c11f9f65a2bb0e7f2802888a1103b69dfc01376c36d4b2e77a2032d20f14976f68a9a489685ea5d4c02713ae5da64a0720146af369fee7492938d032c2d8a5d2c0affc3f034c5faa1ef7b06b512f3cf0bb585b5a054f9377e9a749c032ee945b0c405e8b93b4c5c58b6623168be6de25449f95412c7cfa9ca071fcfb6033564dc7968045c0a14988b563839f8396769c55b132df2756890096ff4aa65a6038e817a517dfafbdd97f3853d8d050a5e087f4ebee4069e18777b12b792c2481b0333e31ca2e6a4e5a1098f17032f7ff9f2a6cd541ac67dece255d3d85d00994767031c11b8dae5683442d16bd2f139ccef3050e9fd1c6b3fb730645c7feaf2c00ea60219ffff038b7d0d9865100a07f052efeb46020fca8c6e1279aa6edd4b6ba26635639fd2960381cdd43aac75fbd2f2beb32cdc0899f63e6c9553433b4a7cc6b8f1232ab1e8c503449a9f5462ea866bca6b92703f5e176924963c5584d69f5fc86bbe6c18d33ed403c29bc951541722b908d3e270c66fce9e16fc950c39aacf53fd8c37b6fbe76d510219ffff03ce0d40b13e94287698391ca71be665052fe0fb9ef9bcbdfd0351843d48b54f0a03d0157cc50bf85890acbb47f6ca2587e7de2ee66b4c1ee86e692f631427666147031af1b08db68ce4e623cd946d3fced01e2c07ff4f68f6a90ef584d96cd3c88286037b086b701b4854a20241bb829e731816146e39b66c1871ecbb18e369b608160903b5583827a4fb10eae86a6860bb3c0e303ce040cae0dded6c6d844e06b90860050323e8bce837c66b2e7c3ebdb57594506244b8c39fe9501fdde971b7799e166c8f03f2a11f8bb466a53a5f7abd1df58f77aea8057254ca8a450f81686bdcbf811d3c0219ffff0312dfbb6f1b527074cc92d8442ee367dd47cf3d14e5e82427de6dc9a08514b009033ba4ceeae315199d77ecc8d7c4c35b9a55ba8e486f668ed002058da7608f502703f3f93cbcc09e548669ca679c40410e43c777f5ad810726a5a1c745cef2ba5c720311add9267fae0667bcf649c7ad2ab731e59ca8bf714c25d4ac85d8312543a39a035302dc5c299eb6f624933582762dc339a7463de95e0d04b0a9acba6494b2bd59030aca161cab771998cef0a38722974df878f1e6cb4505701c95f41b287f8e9ec7034bb8fde6e0f3350b2a733d8750b8ec692da332e68a79d3a6416f30a5cc8e2ae1031b50b293a56dbac9e5e7c95032d969197819ed75729961295535e85d13e4bdbc033afef371de76fbda44b1ec43d87cd029c6ae01ac1d6eadcd74f525957cd7f7c005581e03f24414f9ebee1b4e9f775463fb00ff820aa039b9845bbbc874447c23b00c0247015a01708fa19803ba6a7946943feab742e85207fdd089952d5bee87eb5d05735884dd2d6d7faefc031d9d3aa316f63ffdcd6d04e57add0d74a97dfc32ea63bb60ccea70ac5c3dd0e4036825495a12e4715e6a7a32212955d12137e519505f7cef1ac8517f06b7f1fbfd031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0303575c956dd981ab524be5fb6208db76c7cc42b247996f7ad6d87dceb007011bffffffffffffffff0383a718ae683d6d555d9835ee50f8f7f5fc02ce2849037a810b48a84d48591f4205581e039f2df4a635a966defcf7b46a123aae38960d2950e8ab827e10c65db130040105581e03e519cec7f73a00207c44eab11f3d7a51d01b937f8dce7760a97a9a7d30040305581d022d8209512a792e7d59b5dd4d085d68b4164ebc97a33224ed1dfc344f0c0544ed47df0f04592c40608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063972c49281161008c578063c0857ba011610066578063c0857ba014610236578063d6ae3cd514610256578063de9b771f1461027d578063f953cec71461029d57600080fd5b8063972c4928146101f057806399178dd814610210578063aea4e49e1461022357600080fd5b80635ab2a558116100c85780635ab2a55814610161578063607f2d42146101ad5780638b034eb8146101d05780638e58736f146101dd57600080fd5b80630e387de6146100ef5780631aae9eed14610129578063419cb5501461014c575b600080fd5b6101167f8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b03681565b6040519081526020015b60405180910390f35b61013c6101373660046123a4565b6102b0565b6040519015158152602001610120565b61015f61015a3660046124f9565b61043d565b005b6101887f000000000000000000000000b8901acb165ed027e32754e0ffe830802919727f81565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610120565b61013c6101bb36600461252e565b60036020526000908152604090205460ff1681565b60045461013c9060ff1681565b61015f6101eb366004612593565b61046a565b6002546101889073ffffffffffffffffffffffffffffffffffffffff1681565b61015f61021e366004612657565b6108f2565b61015f6102313660046126a7565b6109aa565b6001546101889073ffffffffffffffffffffffffffffffffffffffff1681565b6101167f000000000000000000000000000000000000000000000000000000000000008981565b6000546101889073ffffffffffffffffffffffffffffffffffffffff1681565b61015f6102ab3660046124f9565b610a97565b6040517f960a7afa0000000000000000000000000000000000000000000000000000000081526004810184905260248101839052600090819073ffffffffffffffffffffffffffffffffffffffff87169063960a7afa9060440160206040518083038186803b15801561032257600080fd5b505afa158015610336573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035a91906126c4565b90506000808773ffffffffffffffffffffffffffffffffffffffff16635a7e1083846040518263ffffffff1660e01b815260040161039a91815260200190565b60c06040518083038186803b1580156103b257600080fd5b505afa1580156103c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea91906126f2565b5050935050925050600082426104009190612786565b9050821580159061040f575081155b801561041a57508581115b1561042c576001945050505050610435565b60009450505050505b949350505050565b61046733826040516020016104539291906127cd565b604051602081830303815290604052610aad565b50565b600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011781556040517fd5ef755100000000000000000000000000000000000000000000000000000000815233918101919091527f000000000000000000000000b8901acb165ed027e32754e0ffe830802919727f9073ffffffffffffffffffffffffffffffffffffffff82169063d5ef75519060240160206040518083038186803b15801561051e57600080fd5b505afa158015610532573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610556919061283b565b6105c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4d573a2053656e646572206d757374206265206120626f6e646572000000000060448201526064015b60405180910390fd5b878414610650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4d573a20726f6f7448617368657320616e6420746f74616c416d6f756e74732060448201527f6d757374206265207468652073616d65206c656e67746800000000000000000060648201526084016105b8565b60008173ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561069857600080fd5b505afa1580156106ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d091906126c4565b905060005b898110156108bd57600061071b848d8d858181106106f5576106f5612856565b905060200201358a8a8681811061070e5761070e612856565b90506020020135866102b0565b905080610784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4d573a20526f6f742063616e6e6f7420626520636f6e6669726d65640000000060448201526064016105b8565b8373ffffffffffffffffffffffffffffffffffffffff1663ef6ebe5e7f00000000000000000000000000000000000000000000000000000000000000898e8e868181106107d3576107d3612856565b905060200201358d8d878181106107ec576107ec612856565b905060200201358c8c8881811061080557610805612856565b905060200201358b8b8981811061081e5761081e612856565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e08a901b16815260048101979097526024870195909552506044850192909252606484015260209091020135608482015260a401600060405180830381600087803b15801561089157600080fd5b505af11580156108a5573d6000803e3d6000fd5b505050505080806108b590612885565b9150506106d5565b5050600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055505050505050505050565b60045460ff1615610901575050565b73ffffffffffffffffffffffffffffffffffffffff821630146109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4c315f504c474e5f5750523a2043616c6c6572206d757374206265207468697360448201527f20636f6e7472616374000000000000000000000000000000000000000000000060648201526084016105b8565b5050565b60025473ffffffffffffffffffffffffffffffffffffffff1615610a50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f467842617365526f6f7454756e6e656c3a204348494c445f54554e4e454c5f4160448201527f4c52454144595f5345540000000000000000000000000000000000000000000060648201526084016105b8565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000610aa282610b3e565b90506109a681610f20565b6000546002546040517fb472047700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169263b472047792610b099291169085906004016127cd565b600060405180830381600087803b158015610b2357600080fd5b505af1158015610b37573d6000803e3d6000fd5b5050505050565b60606000610b4b8361103a565b90506000610b5882611099565b90506000610b65836110c8565b9050600081610b73846110f1565b610b7c866112df565b604051602001610b8e939291906128be565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff1615610c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4678526f6f7454756e6e656c3a20455849545f414c52454144595f50524f434560448201527f535345440000000000000000000000000000000000000000000000000000000060648201526084016105b8565b600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610ca3856112fb565b90506000610cb082611445565b9050610cbb816114d5565b60025473ffffffffffffffffffffffffffffffffffffffff908116911614610d65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4678526f6f7454756e6e656c3a20494e56414c49445f46585f4348494c445f5460448201527f554e4e454c00000000000000000000000000000000000000000000000000000060648201526084016105b8565b6000610d70876114fe565b9050610d90610d80846020015190565b87610d8a8a61151a565b84611536565b610e1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4678526f6f7454756e6e656c3a20494e56414c49445f524543454950545f505260448201527f4f4f46000000000000000000000000000000000000000000000000000000000060648201526084016105b8565b610e4a85610e29896117ec565b610e328a611808565b84610e3c8c611824565b610e458d611840565b61185c565b506000610e56836119d1565b90507f8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b036610e8c610e87836000611a0d565b611a45565b14610ef3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4678526f6f7454756e6e656c3a20494e56414c49445f5349474e41545552450060448201526064016105b8565b6000610efe84611ac0565b806020019051810190610f1191906128eb565b9b9a5050505050505050505050565b60007f000000000000000000000000b8901acb165ed027e32754e0ffe830802919727f73ffffffffffffffffffffffffffffffffffffffff1682604051610f679190612962565b6000604051808303816000865af19150503d8060008114610fa4576040519150601f19603f3d011682016040523d82523d6000602084013e610fa9565b606091505b50509050806109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c315f504c474e5f5750523a2043616c6c20746f204c3120427269646765206660448201527f61696c656400000000000000000000000000000000000000000000000000000060648201526084016105b8565b604080516020810190915260608152600061108461107f8460408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b611adc565b60408051602081019091529081529392505050565b60606110c282600001516008815181106110b5576110b5612856565b6020026020010151611bf2565b92915050565b60006110c282600001516002815181106110e4576110e4612856565b6020026020010151611a45565b604080516020810190915260008152815160609190156110c257600080611119600086611c8f565b60f81c9050600181148061113057508060ff166003145b156111f057600185516002611145919061297e565b61114f9190612786565b67ffffffffffffffff811115611167576111676123df565b6040519080825280601f01601f191660200182016040528015611191576020820181803683370190505b50925060006111a1600187611c8f565b905080846000815181106111b7576111b7612856565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001925050611254565b600285516002611200919061297e565b61120a9190612786565b67ffffffffffffffff811115611222576112226123df565b6040519080825280601f01601f19166020018201604052801561124c576020820181803683370190505b509250600091505b60ff82165b83518110156112d65761128361127260ff851683612786565b61127d9060026129bb565b87611c8f565b84828151811061129557611295612856565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350806112ce81612885565b915050611259565b50505092915050565b60006110c282600001516009815181106110e4576110e4612856565b61131f60405180606001604052806060815260200160608152602001600081525090565b61133982600001516006815181106110b5576110b5612856565b60208281018290526040805180820182526000808252908301528051808201909152825181529181019082015261136f81611d10565b156113845761137d81611adc565b8252611431565b6020820151805160009061139a90600190612786565b67ffffffffffffffff8111156113b2576113b26123df565b6040519080825280601f01601f1916602001820160405280156113dc576020820181803683370190505b5090506000808360210191508260200190506113fa82828551611d49565b60408051808201825260008082526020918201528151808301909252845182528085019082015261142a90611adc565b8652505050505b61143a836112df565b604083015250919050565b604080516080810182526000918101828152606080830193909352815260208101919091526000611493836000015160038151811061148657611486612856565b6020026020010151611adc565b8360400151815181106114a8576114a8612856565b6020026020010151905060405180604001604052808281526020016114cc83611adc565b90529392505050565b60006110c282602001516000815181106114f1576114f1612856565b6020026020010151611dc4565b60006110c282600001516005815181106110e4576110e4612856565b60606110c282600001516007815181106110b5576110b5612856565b60008061156a8460408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b9050600061157782611adc565b9050606080856000806115898b6110f1565b90508051600014156115a5576000975050505050505050610435565b60005b86518110156117dc5781518311156115cb57600098505050505050505050610435565b6115ed8782815181106115e0576115e0612856565b6020026020010151611dde565b95508580519060200120841461160e57600098505050505050505050610435565b61162387828151811061148657611486612856565b94508451601114156116f8578151831415611685578c80519060200120611656866010815181106110b5576110b5612856565b80519060200120141561167457600198505050505050505050610435565b600098505050505050505050610435565b600082848151811061169957611699612856565b016020015160f81c905060108111156116be5760009950505050505050505050610435565b6116e3868260ff16815181106116d6576116d6612856565b6020026020010151611e5e565b94506116f06001856129bb565b9350506117ca565b84516002141561167457600061172461171d876000815181106110b5576110b5612856565b8486611e8c565b835190915061173382866129bb565b1415611788578d80519060200120611757876001815181106110b5576110b5612856565b8051906020012014156117765760019950505050505050505050610435565b60009950505050505050505050610435565b8061179f5760009950505050505050505050610435565b6117a981856129bb565b93506117c1866001815181106116d6576116d6612856565b94506117ca9050565b806117d481612885565b9150506115a8565b5050505050505050949350505050565b60006110c282600001516003815181106110e4576110e4612856565b60006110c282600001516004815181106110e4576110e4612856565b60006110c282600001516000815181106110e4576110e4612856565b60606110c282600001516001815181106110b5576110b5612856565b6001546040517f41539d4a0000000000000000000000000000000000000000000000000000000081526004810184905260009182918291829173ffffffffffffffffffffffffffffffffffffffff909116906341539d4a9060240160a06040518083038186803b1580156118cf57600080fd5b505afa1580156118e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190791906129d3565b509350509250925061195e828b61191e9190612786565b6040805160208082018f90528183018e9052606082018d905260808083018d90528351808403909101815260a09092019092528051910120908588611fc5565b6119c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4678526f6f7454756e6e656c3a20494e56414c49445f4845414445520000000060448201526064016105b8565b9998505050505050505050565b6040805160208101909152606081526040518060200160405280611a05846020015160018151811061148657611486612856565b905292915050565b60408051808201909152600080825260208201528251805183908110611a3557611a35612856565b6020026020010151905092915050565b805160009015801590611a5a57508151602110155b611a6357600080fd5b6000611a72836020015161216f565b90506000818460000151611a869190612786565b9050600080838660200151611a9b91906129bb565b9050805191506020831015611ab757826020036101000a820491505b50949350505050565b60606110c282602001516002815181106110b5576110b5612856565b6060611ae782611d10565b611af057600080fd5b6000611afb836121f1565b905060008167ffffffffffffffff811115611b1857611b186123df565b604051908082528060200260200182016040528015611b5d57816020015b6040805180820190915260008082526020820152815260200190600190039081611b365790505b5090506000611b6f856020015161216f565b8560200151611b7e91906129bb565b90506000805b84811015611be757611b9583612274565b9150604051806040016040528083815260200184815250848281518110611bbe57611bbe612856565b6020908102919091010152611bd382846129bb565b925080611bdf81612885565b915050611b84565b509195945050505050565b8051606090611c0057600080fd5b6000611c0f836020015161216f565b90506000818460000151611c239190612786565b905060008167ffffffffffffffff811115611c4057611c406123df565b6040519080825280601f01601f191660200182016040528015611c6a576020820181803683370190505b5090506000816020019050611ab7848760200151611c8891906129bb565b8285612336565b6000611c9c600284612a4f565b15611cd657601082611caf600286612a63565b81518110611cbf57611cbf612856565b0160200151611cd1919060f81c612a77565b611d06565b601082611ce4600286612a63565b81518110611cf457611cf4612856565b0160200151611d06919060f81c612a99565b60f81b9392505050565b8051600090611d2157506000919050565b6020820151805160001a9060c0821015611d3f575060009392505050565b5060019392505050565b80611d5357505050565b60208110611d8b5782518252611d6a6020846129bb565b9250611d776020836129bb565b9150611d84602082612786565b9050611d53565b60006001611d9a836020612786565b611da690610100612bdb565b611db09190612786565b935183518516941916939093179091525050565b8051600090601514611dd557600080fd5b6110c282611a45565b60606000826000015167ffffffffffffffff811115611dff57611dff6123df565b6040519080825280601f01601f191660200182016040528015611e29576020820181803683370190505b509050805160001415611e3c5792915050565b6000816020019050611e578460200151828660000151612336565b5092915050565b8051600090602114611e6f57600080fd5b60008083602001516001611e8391906129bb565b51949350505050565b60008080611e99866110f1565b90506000815167ffffffffffffffff811115611eb757611eb76123df565b6040519080825280601f01601f191660200182016040528015611ee1576020820181803683370190505b509050845b8251611ef290876129bb565b811015611f95576000878281518110611f0d57611f0d612856565b01602001517fff000000000000000000000000000000000000000000000000000000000000001690508083611f428985612786565b81518110611f5257611f52612856565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350508080611f8d90612885565b915050611ee6565b50808051906020012082805190602001201415611fb55781519250611fba565b600092505b509095945050505050565b600060208251611fd59190612a4f565b1561203c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c69642070726f6f66206c656e67746800000000000000000000000060448201526064016105b8565b60006020835161204c9190612a63565b9050612059816002612bdb565b85106120c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4c65616620696e64657820697320746f6f20626967000000000000000000000060448201526064016105b8565b60008660205b85518111612161578581015192506120e0600289612a4f565b612115576040805160208101849052908101849052606001604051602081830303815290604052805190602001209150612142565b60408051602081018590529081018390526060016040516020818303038152906040528051906020012091505b61214d600289612a63565b975061215a6020826129bb565b90506120c7565b509094149695505050505050565b8051600090811a60808110156121885750600092915050565b60b88110806121a3575060c081108015906121a3575060f881105b156121b15750600192915050565b60c08110156121e5576121c6600160b8612be7565b6121d39060ff1682612786565b6121de9060016129bb565b9392505050565b6121c6600160f8612be7565b805160009061220257506000919050565b600080612212846020015161216f565b846020015161222191906129bb565b905060008460000151856020015161223991906129bb565b90505b8082101561226b5761224d82612274565b61225790836129bb565b91508261226381612885565b93505061223c565b50909392505050565b80516000908190811a608081101561228f5760019150611e57565b60b88110156122b5576122a3608082612786565b6122ae9060016129bb565b9150611e57565b60c08110156122e25760b78103600185019450806020036101000a85510460018201810193505050611e57565b60f88110156122f6576122a360c082612786565b60019390930151602084900360f7016101000a90049092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a0192915050565b8061234057505050565b6020811061237857825182526123576020846129bb565b92506123646020836129bb565b9150612371602082612786565b9050612340565b80611d8b57505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461046757600080fd5b600080600080608085870312156123ba57600080fd5b84356123c581612382565b966020860135965060408601359560600135945092505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612455576124556123df565b604052919050565b600067ffffffffffffffff821115612477576124776123df565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f8301126124b457600080fd5b81356124c76124c28261245d565b61240e565b8181528460208386010111156124dc57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561250b57600080fd5b813567ffffffffffffffff81111561252257600080fd5b610435848285016124a3565b60006020828403121561254057600080fd5b5035919050565b60008083601f84011261255957600080fd5b50813567ffffffffffffffff81111561257157600080fd5b6020830191508360208260051b850101111561258c57600080fd5b9250929050565b6000806000806000806000806080898b0312156125af57600080fd5b883567ffffffffffffffff808211156125c757600080fd5b6125d38c838d01612547565b909a50985060208b01359150808211156125ec57600080fd5b6125f88c838d01612547565b909850965060408b013591508082111561261157600080fd5b61261d8c838d01612547565b909650945060608b013591508082111561263657600080fd5b506126438b828c01612547565b999c989b5096995094979396929594505050565b6000806040838503121561266a57600080fd5b823561267581612382565b9150602083013567ffffffffffffffff81111561269157600080fd5b61269d858286016124a3565b9150509250929050565b6000602082840312156126b957600080fd5b81356121de81612382565b6000602082840312156126d657600080fd5b5051919050565b805180151581146126ed57600080fd5b919050565b60008060008060008060c0878903121561270b57600080fd5b865161271681612382565b80965050602087015194506040870151935060608701519250608087015161273d81612382565b915061274b60a088016126dd565b90509295509295509295565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561279857612798612757565b500390565b60005b838110156127b85781810151838201526020016127a0565b838111156127c7576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000825180604084015261280881606085016020870161279d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b60006020828403121561284d57600080fd5b6121de826126dd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156128b7576128b7612757565b5060010190565b838152600083516128d681602085016020880161279d565b60209201918201929092526040019392505050565b6000602082840312156128fd57600080fd5b815167ffffffffffffffff81111561291457600080fd5b8201601f8101841361292557600080fd5b80516129336124c28261245d565b81815285602083850101111561294857600080fd5b61295982602083016020860161279d565b95945050505050565b6000825161297481846020870161279d565b9190910192915050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129b6576129b6612757565b500290565b600082198211156129ce576129ce612757565b500190565b600080600080600060a086880312156129eb57600080fd5b855194506020860151935060408601519250606086015191506080860151612a1281612382565b809150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612a5e57612a5e612a20565b500690565b600082612a7257612a72612a20565b500490565b600060ff831680612a8a57612a8a612a20565b8060ff84160691505092915050565b600060ff831680612aac57612aac612a20565b8060ff84160491505092915050565b600181815b80851115612b1457817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115612afa57612afa612757565b80851615612b0757918102915b93841c9390800290612ac0565b509250929050565b600082612b2b575060016110c2565b81612b38575060006110c2565b8160018114612b4e5760028114612b5857612b74565b60019150506110c2565b60ff841115612b6957612b69612757565b50506001821b6110c2565b5060208310610133831016604e8410600b8410161715612b97575081810a6110c2565b612ba18383612abb565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115612bd357612bd3612757565b029392505050565b60006121de8383612b1c565b600060ff821660ff841680821015612c0157612c01612757565b9003939250505056fea26469706673582212204af704f8cf49d01eaed053f5af2f6c93da8d4992022c8ade7b711bdd27fff84864736f6c6343000809003303f0aba7fb9dfcfc7afda1605abf6f494a0fa646b9142f9c3dcb76580939e427b60347995393c779b75e0d2f861f88de2921e51877685ce838f35bbc72870b0194b900582002041abc543b9c31f33c9e1c59a4d67ea3f017a41ab05ac7f145347d26579ddf4101005820020ff8086559e54b0b709669248dae952cf9a06269baaa214c5fa4efe4bf13bb410103fb0c607c5a9d3670b33b3c8a7afd1f6cb772874f2065aaad476c32491a25a3a2032728934642c88b0adb38ca831247293503efab273f267cf9a3674cbb1de675ba0058200253e875c93f9ad29a70df1f7d6585c6a5212492b49bbbded37ef341c40270f84101005820027fcb4b9068eb320f2669bada8006d05c2d9374139012641f8417ac466468e9410100582002de3726ce84c99c2a76b768f58a02f7cc02c6c4b9ddb26641a38ad74333a06a4101005820020decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56354fe5e5d361b2ad62c541bab87c45a0b9b018389a20362fc0c5a9ecb641538ffaa18731e88a2a4fc68a64a88c3c665d1d6f7f9ad5174005820024f97ce2ea53c32bb147a9856f3459c65d3c67f074e4bce362bf4c7f01b1bb34101005820024c80eb67fda65ac4be0a00ddd9a11449fae7d1468b540f027c05057b76b00241010219e2fb03c408ee9813db4737ea4367d2cc43ff171ba10efd35e3eeec48a338d363e8d55b005820025787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace54f2119c5aeb734590477eae272990773df722b49d03384911429f18eb11dc934a0799b2bccbe04d44dde77667acd5599022c9bee07400582002ccfd3c9d207f534732c55cd21c77081290dff9156eafa7248f8be30ce0fb32410100582002a5beb6f18a632c7c3e53f6fb5315d20c252c932c0000b172f9cff37b11b0e2410100582002d9de7de5d17a3909f8400bf969f6d3b7a1f6c17a6ad587518d6a94b6dcfc68410100582002bf9e746a54e78429d3aba4954ce977e06d4a6e7f30d3172b08f2a1c75f9841410100582002e62663a6d5664873dcbd4aedb9043fb3c8db5095fc7f257faf791ba6f8f49141010058200261e6dd06f1a782095e8c696554c5d018cdbfc4043702d26fe913a03cd54f4b410103ad193f7799ba3dde0600c2b0368b3956f0ba3bb872bc650e8dcd0bd6b8aacd1e00582002ff5b3e4967b52a92668f2aeeff74a0d046fc4bdcc4f5ee5af0e2a8b4d367e0410103331fa7469f921940b418c2f3d580a19d99d37fb907bee99d72ee90cd470fa39202190ffd036385ec9b5b5a006988188015c508f2931242ed4e1dabe29d82f0a50f34abef6b03b7808ba3aec758198c9ddee9643f27479738f0111b8e092e933e46721c51561003971ed0acbdfc67d89e3af854a14fd74a427757e35cc2ce161a1ce28219ee41cf03a326eab6bde83e02d03146cc732d27679bae02e233244b1badb6d42fa77c84e703291da38ebc87cabb9ef40b2281c2d396e58639d6170ad9814404f0e11a636da4035a1a88cc6960a5f0a7a224d5cc1820dabec387654b81335c722e6883cbe21fd20324618dc7a8377414a3022a69cebf1c9eb32648a60b0d7da8a5876a98db63399903c63717b16514c8129e894cfea212f1f07eb2815fcea717314d577b6e342c257403942f716675e36242be728b239035906644e8b9ba639ae8e5f44132092495417d03a27f0f37292ac2e2e456a91de5071362ae5a02a724d4b3dd4c184c65926a00ab0389a6f013ea41fc1d7db0c9262e12558df9d001adac91293a9921cdc04ed4d25f0219ffff05581d02f149356a89e2e661d57aef5be464f4bfc08b73b6329bc7019a50c95c0701192c400219102005581e034fdbbf37e37879986d969d5c7b271e1f6a78c4cd0017af53bbb48afe500c181e480b1b25b274eeae6305581e0331d24bbc346df599db17d6589be874fe2442fa260af3d7d0fe13ecd7400c0146266156350b000219ddcb03cf8d5df598663a9b4bc9f7e27151c541f66334093c159f0d1125e7280e35b6eb03d9625c1a2746085b3d0986bcf7203914912c8aad64af3d1bb43a046a7eed073e03e46796032bc673a5f2bf5010795107e689cd653a53ffd902d93043f3c156bdfd038e751fd415ab322b53d4635d2c6093e265ef4a8367468781aa91075fefaf42f80360946d7e68f1e7dd3df12e00998ede55d6a771b7480abe609847e0cd1761d11a037ef12575f1386b1191af4f3f6a541c3e3fdff1d0d22a154e70c4b20e220b3be8032f304a24478823b6146327f4527d67187fb471b194257d43975158dbb5e829b303b480efa6f2312808a4a013761166203027f7bf2a0f7013e813b26ddaa51f8e230344ba749c856082d19367557eb045324289061447b5f970135e80d7d1d9bc840803d21dd1f4e32b8f73bee722e4e8c3e669693a5722d4ce096790e3eda04ebdd01103aa180e830ff70dce87342d1d09c42e22820cadf519c79e7db2e2bb7cd2e9111e032fbd0c44616c913e18eec2761a8f2594f14eb0e136f61b4403363195e67c708d03873c9fbbfd2a95bef14044988e49098ed827ace517511401e8eeeed4e24f5a900358748a6afadefeb2f0f6cabd7c7621b7f64e528ac4d78fe32a2eae6b76d9f54b0219ffff03bc52055f013423ce66d1c65ca517c92713e1366d5da274c167efd72b3f6c16c403c2050624409183fb512ae0b3ebaba433ab0eba8562873e03e1639657701bd68f032407e95271536ae65773aedc4148719470a9e12e951bece7acbcb44731006d3d0350fac67492b4d90bca91b8e769ae9a5a5bcad48196e054e604c12b797de3224403d52a8503216ca6ca5ba43e9739b16084dc50130ad8e3e3512b74b46b166dec9a03263ed8c0b91496b7b6d22cec012bfe9df16bc06286fb58c9315584447cd80b59031d56bcbcd4f275a50cf4226c2b246f96720346cc223dbe7a8632f5a248a5b3f403480bdcaae4d8e0a0acbbf0ae3015566af26b970f85c011aa2b5824fe81dc5ce803921e2202f9f5ad6a02968bdf7aaa7ea24909626f1325b4836f482f44f3f90146030980ff68b436ab41f8bd76ee77da024a8c85db97c31da47a4ee6279fdbf7b0700363e5a320918c4a502e61e829c864a0b671024056f1d8fcd23b9c411a7604292103901b5f4a430c845e9338ea272566ca342579162a9f106b9923f0771695f36e9a03582d65c2b9de7c928d7dbbe40ddf0f99cffa42dd3ef80cefa90df2e36d9ccd41034cc46c6b72cf96df8d64e3eba07c8f3e74ad2fa3c1adc635662105900b83689b03c1b908ed8db6e32cb8c3736c68ccb21fdef98b01490b40a83aa7324963f838220219ffff0361915d519d0b4dc1e957351fe0075774b5be7c70b2fc10d1f381c0c7350608b003d5be887edc2594e6743146bf38fdd594143ccf80c94117e8ff806eb12c52ae6b03e68af021bdb415a93360786fda1ed15266f75faddda0680bc3d5b6063145fa330339bf3b08eb53d6e930a2b69da1267dde29d27718526a2fd672f352480424404b03cad4e2fe9f4500aef83e7fa77aa640ec1c45ce095f37c9d7f899e4396753b99903ad18105720bd15d3082ba111311ffb2ba854cdd106a9346afe5acaea8bfd0d0a03ecda79b2f73a5be4ced1aae6bf0cda9e4fd841d0d2d14436df3ea39cd2b4e12b030e2d4f070347b6c4f89aaa681fdb79b9c715fbb60e546dfff5db4731bce821500219ffff032b10293944bcce520d1385b3f8ace027d892949f08d86f5e3b908ee771e415b6033b92e964a1054682937cbd253bf3599dbdec72f8e0e3d34f2f8b2ca3bba629a303c99fdcf341553482082330d03745f872d3dc3c25d43304d853dc983cb1d6857003fa14156c3d5fb17f0cf82e1970cf756fc026d121988687bdb5f489cb8b76ac0103687c4172f84975299a07769cb331f26fce33a2c479feeee316460ae771252a30031d72b7ff32d5a048d57f6c95d85a8e9af0682afbe20551e383391ef7a3d244900219ffff0356e70102fa49795227213b21cd2b9b0f4d60da6a4ec99e10f00dac88ab8e2a5e03dadfbdbca74602dbd0e85bda5aec9a3940575ceb13866aaabadd70e0b71bd9c50372b7f6417f0dd6045dbf53fb7f9c0aabbda9ed92cfd2abe34cf23b6eba22671c0333e7d353df33b9ed6e9bcc31af3d154ba0be59dfa718b78111e60c0a5e79560c031f4be22101c08ac1845984d2f81cec7a7ce6633de4e463b3a5f19e203c109a7603efee70bd48cdd1a91414b9b7c2e947cad1468bb74584a1d5224272755e2eb9eb039206b99c53e158e3ccfed12ea3c3937d2852428fd613f2abc6458e52bb925b5703472e7462fed7bae63f0d1ca22e73ab7598950564b7e6d45f912853bf72ca00970342537adad9bb5bc1fff5058d5fa64f3b39d2db4236ec4286361bb4fe0a2aec1c0341da8a36fe86e9379048983f88a5649a82e2c4415841329546ba0773b4fbe85803477bcf8fcb87820923e5761b0e6193af1e2195ec7dd48e881d911a5f8c1dff7e03f6f1f6df61c2f4a4b67e85991a9c8be1d7509f5b9136ba268da801ad073a67dd033d2eae5f5b1c9318ee1376cd293f932c1ef4c3e7a5eb0556d3cc3ef0d793706b03c22d30057bc538a63c7788c878a65544cd29392ebcd6521a48d1b809ce38311103d24cc5832cf1bbee191176b6c3edd6d560b7b308e5a5fa3e6c82af27b1e649c9038484bebaeddad7676659f9e2e143892a9cb3968cce7716c43f6987d89393e845036decf4541e9685a0612a25bd89ecf43ec42d990f8ca93a08b847d792a603bcc20392fc717bc0c37f0ac914de42890301ad06ce19579737930817ac928bf325e58003274ce1c84e570be9adb99d4ad3a303f64189e8e1314805035af1443d71ef30bd0344b81800f3cc138108cbe4d680326253bd4493162b496baf4e9ebbcf5f48b38d037af40cdf29194d3286142a653a4307aca48d3ee1e285930f774f5f41a59a5c43032a30221f6e63e75c0817f0177c94c5a459afefe34883e00c92cff61f69d9423e038ebe6aa54d18028833be71b9e6e59782b469a5bc334f74b7fdab235d26c2fb6c03d2fb7d5272012e8555667257c904e4fcc36e5949e8ed18bc2ec5922c758ebadc033e5bf96fbcee4d767610eebad508f405f3da0ffaffc17704c66b295bceb88387033f94b228737c843f8a267a6fb0d2912e8ca1a395507aed49238a50c1fafea66e03653c5c7adf5b29b0c791252b5b733ca0d8a2bcfa6a3a305fc36a2897d4eea29603d688f3294dcefe946ff4f51baf6f7123e0b547e26a0be29c890ebe9338b1f66903db9c90b4b5330897b743602efd77cb038f993664cd145934d170294510ede80d037604beeee83190024fda27889c2676898c5da03533aa7d7a279634e4166b47390381d267fa011244e6787dbfa4b15d2736d02ea1d7400db32445ef0a045d1ff84e03ca54b394df018ee3e13dd4fe52f927e68480b1e4fcb612d343ef1502653542e303ab152bfb1fded9e0fc882db03c331dd69056a0f537b01f93ec139e633a53e07a03cd6018a8fc6cbd7e34684288b3053fb30b79fd75cf03926dc43ae6c1a6dbb33a03adf7248b84effd2ed0cf62d86799ab0d62bb047351f0dba73b633bc748690ac3032d73bcd3c63ab79987dcde0f43c9bb20cb6df5b9863dc15ab9e4486dfa0645f603f794783c41b3010815975dabaa8b83eb42c99a0a5a53cf7f4e84f9aaec12db3d0349be2773e8ecee846fdbcc3ab5cf5452acdd8f20cfef0e48b2f2ec5e1720488905581e0397b4f3bae7ce900e46fec158a338f8abaf2edf7204623fc9be5e990dc00c0347124494dda83f560369384748cc29b011306ca90fbd305b01050dab49c19e1c0f3aa25719d53151b004592d53608060405234801561001057600080fd5b50600436106101cf5760003560e01c806370a0823111610104578063a457c2d7116100a2578063d505accf11610071578063d505accf14610443578063d547741f14610456578063dd62ed3e14610469578063ee99205c146104af57600080fd5b8063a457c2d7146103f7578063a9059cbb1461040a578063ca15c8731461041d578063d26b3e261461043057600080fd5b80639010d07c116100de5780639010d07c1461038e57806391d14854146103a157806395d89b41146103e7578063a217fddf146103ef57600080fd5b806370a082311461032a5780637ecebe001461036057806384b0196e1461037357600080fd5b80632f2ff15d1161017157806336568abe1161014b57806336568abe146102de57806339509351146102f157806340c10f191461030457806342966c681461031757600080fd5b80632f2ff15d146102b2578063313ce567146102c75780633644e515146102d657600080fd5b80630bec0886116101ad5780630bec08861461022457806318160ddd1461026a57806323b872dd1461027c578063248a9ca31461028f57600080fd5b806301ffc9a7146101d457806306fdde03146101fc578063095ea7b314610211575b600080fd5b6101e76101e23660046125da565b6104d0565b60405190151581526020015b60405180910390f35b61020461052c565b6040516101f3919061268a565b6101e761021f3660046126bf565b6105be565b610163546102459073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f3565b60cb545b6040519081526020016101f3565b6101e761028a3660046126eb565b6105d6565b61026e61029d36600461272c565b60009081526065602052604090206001015490565b6102c56102c0366004612745565b6105fa565b005b604051601281526020016101f3565b61026e610624565b6102c56102ec366004612745565b610633565b6101e76102ff3660046126bf565b6106eb565b6102c56103123660046126bf565b610737565b6102c561032536600461272c565b610793565b61026e610338366004612775565b73ffffffffffffffffffffffffffffffffffffffff16600090815260c9602052604090205490565b61026e61036e366004612775565b6107f2565b61037b6107fd565b6040516101f39796959493929190612792565b61024561039c366004612851565b6108d9565b6101e76103af366004612745565b600091825260656020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6102046108f8565b61026e600081565b6101e76104053660046126bf565b610907565b6101e76104183660046126bf565b6109d8565b61026e61042b36600461272c565b6109e6565b6102c561043e3660046128a2565b6109fd565b6102c5610451366004612914565b610cac565b6102c5610464366004612745565b610e6b565b61026e61047736600461298b565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260ca6020908152604080832093909416825291909152205490565b610162546102459073ffffffffffffffffffffffffffffffffffffffff1681565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f5a05180f000000000000000000000000000000000000000000000000000000001480610526575061052682610e90565b92915050565b606060cc805461053b906129b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610567906129b9565b80156105b45780601f10610589576101008083540402835291602001916105b4565b820191906000526020600020905b81548152906001019060200180831161059757829003601f168201915b5050505050905090565b6000336105cc818585610f27565b5060019392505050565b6000336105e48582856110da565b6105ef8585856111b1565b506001949350505050565b60008281526065602052604090206001015461061581611427565b61061f8383611431565b505050565b600061062e611453565b905090565b73ffffffffffffffffffffffffffffffffffffffff811633146106dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6106e7828261145d565b5050565b33600081815260ca6020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906105cc9082908690610732908790612a35565b610f27565b6101625473ffffffffffffffffffffffffffffffffffffffff163314610789576040517f135420fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106e7828261147f565b6101635473ffffffffffffffffffffffffffffffffffffffff1633146107e5576040517f6b35c3a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107ef3382611574565b50565b60006105268261173a565b60006060806000806000606060fb546000801b14801561081d575060fc54155b610883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a6564000000000000000000000060448201526064016106d4565b61088b611766565b610893611775565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b60008281526097602052604081206108f19083611784565b9392505050565b606060cd805461053b906129b9565b33600081815260ca6020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156109cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016106d4565b6105ef8286868403610f27565b6000336105cc8185856111b1565b600081815260976020526040812061052690611790565b600054610100900460ff1615808015610a1d5750600054600160ff909116105b80610a375750303b158015610a37575060005460ff166001145b610ac3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106d4565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610b2157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610b2961179a565b610b9d6040518060400160405280600481526020017f6d455448000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f6d45544800000000000000000000000000000000000000000000000000000000815250611833565b610bdb6040518060400160405280600481526020017f6d455448000000000000000000000000000000000000000000000000000000008152506118d4565b8151610be990600090611431565b6020820151610162805473ffffffffffffffffffffffffffffffffffffffff9283167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556040840151610163805491909316911617905580156106e757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b83421115610d16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016106d4565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610d458c6119aa565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610dad826119e0565b90506000610dbd82878787611a28565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016106d4565b610e5f8a8a8a610f27565b50505050505050505050565b600082815260656020526040902060010154610e8681611427565b61061f838361145d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061052657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610526565b73ffffffffffffffffffffffffffffffffffffffff8316610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016106d4565b73ffffffffffffffffffffffffffffffffffffffff821661106c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016106d4565b73ffffffffffffffffffffffffffffffffffffffff838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff838116600090815260ca60209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111ab578181101561119e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106d4565b6111ab8484848403610f27565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316611254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106d4565b73ffffffffffffffffffffffffffffffffffffffff82166112f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016106d4565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260c96020526040902054818110156113ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016106d4565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260c9602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061141a9086815260200190565b60405180910390a36111ab565b6107ef8133611a50565b61143b8282611b0a565b600082815260976020526040902061061f9082611bfe565b600061062e611c20565b6114678282611c94565b600082815260976020526040902061061f9082611d4f565b73ffffffffffffffffffffffffffffffffffffffff82166114fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106d4565b8060cb600082825461150e9190612a35565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600081815260c960209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016106d4565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260c96020526040902054818110156116cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106d4565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260c960209081526040808320868603905560cb80548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815261012f6020526040812054610526565b606060fd805461053b906129b9565b606060fe805461053b906129b9565b60006108f18383611d71565b6000610526825490565b600054610100900460ff16611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d4565b565b600054610100900460ff166118ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d4565b6106e78282611d9b565b600054610100900460ff1661196b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d4565b6107ef816040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250611e4b565b73ffffffffffffffffffffffffffffffffffffffff8116600090815261012f602052604090208054600181018255905b50919050565b60006105266119ed611453565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6000806000611a3987878787611f0a565b91509150611a4681611ff9565b5095945050505050565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166106e757611a90816121ac565b611a9b8360206121cb565b604051602001611aac929190612a48565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526106d49160040161268a565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166106e757600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611ba03390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006108f18373ffffffffffffffffffffffffffffffffffffffff841661240e565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611c4b61245d565b611c536124b6565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156106e757600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006108f18373ffffffffffffffffffffffffffffffffffffffff84166124e7565b6000826000018281548110611d8857611d88612ac9565b9060005260206000200154905092915050565b600054610100900460ff16611e32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d4565b60cc611e3e8382612b46565b5060cd61061f8282612b46565b600054610100900460ff16611ee2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d4565b60fd611eee8382612b46565b5060fe611efb8282612b46565b5050600060fb81905560fc5550565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611f415750600090506003611ff0565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611f95573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611fe957600060019250925050611ff0565b9150600090505b94509492505050565b600081600481111561200d5761200d612c60565b036120155750565b600181600481111561202957612029612c60565b03612090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106d4565b60028160048111156120a4576120a4612c60565b0361210b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106d4565b600381600481111561211f5761211f612c60565b036107ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016106d4565b606061052673ffffffffffffffffffffffffffffffffffffffff831660145b606060006121da836002612c8f565b6121e5906002612a35565b67ffffffffffffffff8111156121fd576121fd612873565b6040519080825280601f01601f191660200182016040528015612227576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061225e5761225e612ac9565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106122c1576122c1612ac9565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006122fd846002612c8f565b612308906001612a35565b90505b60018111156123a5577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061234957612349612ac9565b1a60f81b82828151811061235f5761235f612ac9565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9361239e81612ca6565b905061230b565b5083156108f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106d4565b600081815260018301602052604081205461245557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610526565b506000610526565b600080612468611766565b80519091501561247f578051602090910120919050565b60fb54801561248e5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806124c1611775565b8051909150156124d8578051602090910120919050565b60fc54801561248e5792915050565b600081815260018301602052604081205480156125d057600061250b600183612cdb565b855490915060009061251f90600190612cdb565b905081811461258457600086600001828154811061253f5761253f612ac9565b906000526020600020015490508087600001848154811061256257612562612ac9565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061259557612595612cee565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610526565b6000915050610526565b6000602082840312156125ec57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146108f157600080fd5b60005b8381101561263757818101518382015260200161261f565b50506000910152565b6000815180845261265881602086016020860161261c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006108f16020830184612640565b73ffffffffffffffffffffffffffffffffffffffff811681146107ef57600080fd5b600080604083850312156126d257600080fd5b82356126dd8161269d565b946020939093013593505050565b60008060006060848603121561270057600080fd5b833561270b8161269d565b9250602084013561271b8161269d565b929592945050506040919091013590565b60006020828403121561273e57600080fd5b5035919050565b6000806040838503121561275857600080fd5b82359150602083013561276a8161269d565b809150509250929050565b60006020828403121561278757600080fd5b81356108f18161269d565b7fff00000000000000000000000000000000000000000000000000000000000000881681526000602060e0818401526127ce60e084018a612640565b83810360408501526127e0818a612640565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825283870192509083019060005b8181101561283f57835183529284019291840191600101612823565b50909c9b505050505050505050505050565b6000806040838503121561286457600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000606082840312156128b457600080fd5b6040516060810181811067ffffffffffffffff821117156128d7576128d7612873565b60405282356128e58161269d565b815260208301356128f58161269d565b602082015260408301356129088161269d565b60408201529392505050565b600080600080600080600060e0888a03121561292f57600080fd5b873561293a8161269d565b9650602088013561294a8161269d565b95506040880135945060608801359350608088013560ff8116811461296e57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561299e57600080fd5b82356129a98161269d565b9150602083013561276a8161269d565b600181811c908216806129cd57607f821691505b6020821081036119da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561052657610526612a06565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612a8081601785016020880161261c565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612abd81602884016020880161261c565b01602801949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b601f82111561061f57600081815260208120601f850160051c81016020861015612b1f5750805b601f850160051c820191505b81811015612b3e57828155600101612b2b565b505050505050565b815167ffffffffffffffff811115612b6057612b60612873565b612b7481612b6e84546129b9565b84612af8565b602080601f831160018114612bc75760008415612b915750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555612b3e565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015612c1457888601518255948401946001909101908401612bf5565b5085821015612c5057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b808202811582820484141761052657610526612a06565b600081612cb557612cb5612a06565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b8181038181111561052657610526612a06565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212207328b32cbff565bc41d27624ecdc07a7b0fa37f737a7c8cc88ee1dd052c91db164736f6c6343000814003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341ff05581d03e5b52aa57fff38e48baabfbae6b112e8625c7baa4ad66e3dafae18300701192d5305581d03d1e2a480eb6ee67009ae1a98251a77702415e9c5e6106c7eba2085400c024793001d33d33e000219081005581d02ccf2e4f19b826041ebeba30dbf573fa67d5011a03de03727cb10fd9b0c0347048f84b27f880005581d02b21015a710d6271715195c5c62c3a98bfae994ba60f2c377ec0046ab0c01470460fe42dd757d021902a003eaac986ad02331219595cd1bd300f773a10547c2af40286f974008e804bf99f705581e03609f1cc8008803d7f698de7b0095c3f2ace586443c97cc4886ebc8a130040103cf991db76896c91579ffd41c1e7f9e1e990d77738292fe12249da5122e47c121039a8221a6457daed39645df92ce5a202121ac0622669767e464c77de0b0b034b805581e0347789f789b5fde0bffc219a58b6b762df9d1bbd26bf024407af0f8081007011bffffffffffffffff021911dd03669c20cdb8181139eab4e266f83832b620653b3b20f19daa250d8158d0de1f7e03325575e3aeb7f0cc84ccffc1bd712a2b26ac614a8eae004777daebcf77426cd3030e2f0a819f0b552c12d1d6abf975db4ebf5d1c531cc9274ee71a54adfd932ee90367a7b07ed3fa25790fedb7c5c7b14fa9c846775bb686216257f06a0ac7ce64fb0219ffff0361a5bd2120073badf73bff67665ecf3b2e1b36fceed282c6e496497aa4213df7031404918a1ea0e1c38346fac9db18b18e63ed352c44a19a7166ec17132dc6b86d03c4a437c61763edc4707c8b88798c1a5b264644977611a35f9cf17b37ef35e47903fb8a0baa06db09e89cdf3671b69ab5146352a25b92fc7405b0843893f57b6a57032e4388d77d2d77c32c1a09b8e645a62f47ba44dc018c69dd1dac1bd524df61920347338a078a4fc7ce86b3c2602d91abf7cd0ee204113fb83ecdacd8c864d830140371eaa50f317d53b9fa6a3840823f52e6d16a162f7fd40468d99ea49e19d51f28033ee0ca070a012858f50904cb537adfc5bdde4e208a8d78e5c53ab7d7c3b080f70347376ca8d69d7b7ff53e67be73bdd04ca095cb35e4536342e4a2c8ea984410110219ffff03444d260e1787313e12561629d1fcf63fea0314feb9c5b7f3d14539aa0eea7abc0219ffff03acb51c83cc7b899b88589edc1031f6dae15b18078f1fb786232b4b7af0ab312c039c8d78b19565620a27e4b84a614898e321fe29123d4b4131e8105e22bbd183070350e60322911faf89f8f5ce0dac2d3a65beeca9615e539ab419d93cfa391a22d2039c8997260be6b4e4113bc4e37c5e905edb980ec5b515c2147e01c5c9659827ff03089e51a8738e0ddff9c7b934fe762470b98b26d1343ae6dd0e89a453796c427003d3ada71b8ff60150f32e3bf9772c45861158883a30f499349dd0cf5e088c06c803ca2c2aba9d94be61cfc4c857faba7e7b2cb374e35ee0088ee709cad5262025bc03fb32ab939c78a1340eb441b385e70a939a09214fa6f2d3c9e4a261d35c8b2dad030e044d6339291ec7985123b78a181df85a396f36d58e1c8119cecfdf7651fca003b94d79f26fa1167abff93b703885816db393bddd161068507a076ce86f0164f80219ffff03dc4f1dde80f588d583fa977ca17e21979372b02db283406a46ece40659fb66a1031a740a9a4a87cdc1a1446b6563b25bdb3a69a64294507d004fa115712d0eb6b503d4a0029d794f6831d2fc3c7833b3783c8d06abb3e5749cf5437251d7fb94a990036b83c49f5e431b5e916774a7e5b15a953e7f8e9a99259f70df37fcd3646962e603f76fd2fc23036565fd981953bd8c0639387b68d69395bbfaeb2b29945347dabb0363a3cdc2c285d7ca466e94875eac6c988b8ebd8debebe48e10e374250ea7ecf603a3cc29fe18cd6eaef407bb991acc18296308e1d1eccd92c7eae7d9ba91ee863303d28447cc72458d2f779d3b9dd88c50d0c884042e8d891b7ccff130000b2988ba0358903c08bdd5a4dd382caa8dc7a5239fb97c659ea82f2e47c50fc4fa03d4ebcb038835e2fde31bdf9aa53b84f2e9307f8d3b1a77d8b4006d3fefeb9e4ecac1bd2203b5e8b5249e261e67b73e129ee780ad1152df516ea082bc0f150d7976a828759803d5b42221394bcb1194dc618199d7f08d9a0d7d20d1f7e83d02384dc7a7a28ad603c9429698b72313f0522dfc9bb729a7103bd1f5fc34e8fd09bd829b849d2f070a032ef38bbe8e478a0fd0b37653b5169f06e8f4c530d09a6080cb8d20e56a471b0f03ecf4c9947bbb57c613cfd7c9371efa28fbbab60a38b79a29c46f2bdf2b992ba103546a8dc3dfacc0d219cc2466d41dc4b2a5726126ea45e029026a3bd6821d097a03ac54ba7ddf2a9340925bb3d09a9ee500cc0bf0134ca0ea856f6d7376111b240d05581e0313c85a535d1ea6aa237f8dd0f3fbde9a6b074b4068e153dad822316de00401031314c52610b88ed35054d755ae97f4a9ae110ad0b2c0d6a7bd4b6145b474039a03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03b8ecd8f38995810e2d7d6d6a81a8fbd306ab1427ec3d6e57308995c07007011bffffffffffffffff05581e0300928e2cc4aa19b6d4ae8feb3dc8d2dfc1dd1fc736e3775101222a25d0040503f1b574431f3838d9cdff6e701afd5a058652dab5ae5523288a83d5fad7696139035d1e21f700a49be24991d5b20b17b5bd6c9f9a8827fdcdd22ee081f8bbd1bb9005581e038186ae06d1093f916ae568b7155822a19530303961c804884ba390e08007011bffffffffffffffff05581e0363837abbf47f8a895fdfce7811920c801bbc483810fdd80fd19d1f23a00c0146f1e76bdc5e1105581e03baefdf13f2a4ba5a1882555a3288185f84f83040c58c41dd28c38187300c044701456b5a23b368045910e7608060405234801561001057600080fd5b506004361061010a5760003560e01c806340c10f19116100a25780639dc29fac116100715780639dc29fac14610266578063a457c2d714610279578063a9059cbb1461028c578063c4d66de81461029f578063dd62ed3e146102b257600080fd5b806340c10f19146101f55780635c975abb1461020857806370a082311461021c57806395d89b411461024557600080fd5b806318160ddd116100de57806318160ddd146101ae57806323b872dd146101c0578063313ce567146101d357806339509351146101e257600080fd5b8062435da51461010f57806306fdde031461013f578063095ea7b31461017657806316c38b3c14610199575b600080fd5b606554610122906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6040805180820190915260128152710a4cadcf4de40a4cae6e8c2d6cac8408aa8960731b60208201525b6040516101369190610d6f565b610189610184366004610dd5565b6102c5565b6040519015158152602001610136565b6101ac6101a7366004610e0f565b6102df565b005b6035545b604051908152602001610136565b6101896101ce366004610e33565b610386565b60405160128152602001610136565b6101896101f0366004610dd5565b6103aa565b6101ac610203366004610dd5565b6103cc565b60655461018990600160a01b900460ff1681565b6101b261022a366004610e74565b6001600160a01b031660009081526033602052604090205490565b6040805180820190915260058152640caf48aa8960db1b6020820152610169565b6101ac610274366004610dd5565b610463565b610189610287366004610dd5565b6104f6565b61018961029a366004610dd5565b610576565b6101ac6102ad366004610e74565b610584565b6101b26102c0366004610e91565b610720565b6000336102d381858561074b565b60019150505b92915050565b60655460405163a2bdde3d60e01b81523360048201526001600160a01b039091169063a2bdde3d90602401602060405180830381865afa158015610327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034b9190610eca565b610368576040516354e2bf5d60e01b815260040160405180910390fd5b60658054911515600160a01b0260ff60a01b19909216919091179055565b600033610394858285610870565b61039f8585856108ea565b506001949350505050565b6000336102d38185856103bd8383610720565b6103c79190610ee7565b61074b565b606554604051632d63d9b560e21b81523360048201526001600160a01b039091169063b58f66d490602401602060405180830381865afa158015610414573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104389190610eca565b610455576040516365f9c9cb60e11b815260040160405180910390fd5b61045f8282610aa0565b5050565b606554604051632d63d9b560e21b81523360048201526001600160a01b039091169063b58f66d490602401602060405180830381865afa1580156104ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104cf9190610eca565b6104ec576040516365f9c9cb60e11b815260040160405180910390fd5b61045f8282610b6d565b600033816105048286610720565b9050838110156105695760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61039f828686840361074b565b6000336102d38185856108ea565b600054610100900460ff16158080156105a45750600054600160ff909116105b806105be5750303b1580156105be575060005460ff166001145b6106215760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610560565b6000805460ff191660011790558015610644576000805461ff0019166101001790555b6001600160a01b03821661066b5760405163862a606760e01b815260040160405180910390fd5b6106bc604051806040016040528060058152602001640caf48aa8960db1b815250604051806040016040528060128152602001710a4cadcf4de40a4cae6e8c2d6cac8408aa8960731b815250610caa565b606580546001600160a01b0319166001600160a01b038416179055801561045f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6001600160a01b0383166107ad5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610560565b6001600160a01b03821661080e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610560565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600061087c8484610720565b905060001981146108e457818110156108d75760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610560565b6108e4848484840361074b565b50505050565b6001600160a01b03831661094e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610560565b6001600160a01b0382166109b05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610560565b6109bb838383610cdb565b6001600160a01b03831660009081526033602052604090205481811015610a335760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610560565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a939086815260200190565b60405180910390a36108e4565b6001600160a01b038216610af65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610560565b610b0260008383610cdb565b8060356000828254610b149190610ee7565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038216610bcd5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610560565b610bd982600083610cdb565b6001600160a01b03821660009081526033602052604090205481811015610c4d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610560565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610863565b505050565b600054610100900460ff16610cd15760405162461bcd60e51b815260040161056090610f08565b61045f8282610d2f565b606554600160a01b900460ff16610cf157505050565b6001600160a01b03831615801590610d1157506001600160a01b03821615155b15610ca55760405163ab35696f60e01b815260040160405180910390fd5b600054610100900460ff16610d565760405162461bcd60e51b815260040161056090610f08565b6036610d628382610ff1565b506037610ca58282610ff1565b600060208083528351808285015260005b81811015610d9c57858101830151858201604001528201610d80565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610dd257600080fd5b50565b60008060408385031215610de857600080fd5b8235610df381610dbd565b946020939093013593505050565b8015158114610dd257600080fd5b600060208284031215610e2157600080fd5b8135610e2c81610e01565b9392505050565b600080600060608486031215610e4857600080fd5b8335610e5381610dbd565b92506020840135610e6381610dbd565b929592945050506040919091013590565b600060208284031215610e8657600080fd5b8135610e2c81610dbd565b60008060408385031215610ea457600080fd5b8235610eaf81610dbd565b91506020830135610ebf81610dbd565b809150509250929050565b600060208284031215610edc57600080fd5b8151610e2c81610e01565b808201808211156102d957634e487b7160e01b600052601160045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680610f7d57607f821691505b602082108103610f9d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610ca557600081815260208120601f850160051c81016020861015610fca5750805b601f850160051c820191505b81811015610fe957828155600101610fd6565b505050505050565b815167ffffffffffffffff81111561100b5761100b610f53565b61101f816110198454610f69565b84610fa3565b602080601f831160018114611054576000841561103c5750858301515b600019600386901b1c1916600185901b178555610fe9565b600085815260208120601f198616915b8281101561108357888601518255948401946001909101908401611064565b50858210156110a15787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea264697066735822122001bd67bf6eca0de3ced1c2dc7928fe609dd005f4295205a4fe8285f40ed4d0f764736f6c63430008130033005821032821f182a3423a64b24bbd7e9f2087d86b589a78214e5b79132284e1ba5c2c704ad3c21bcecceda10000000058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563041ff020505581e038bf326a8cd69b179f053da1e5ce887c7d6386555dbfb5bcc9ba21685c007011910e705581e036e95a919bf3565f910bc3132db4f23fae7a77a5f7f3cce83d36fce5450040103381f0348f39aa5f970fca2bfc614aa86904b676cf93f987001d5c1ab6b44667103b184ddf07b2831e5b7fe27aa9ee8a2606376627a4a8632a3b28bf7867d0b63e205581e03c34d9e69990fe344bbcf953765e3b42c3dddc57ef77678378307f3794007011bffffffffffffffff05581e03e860baa49aac28ccd74c5f7a2c193a17d19d383a08ac822bd18d61dc40040105581e03eafd06806e5b2ecc33dcd9641136963db7f6b2caa6e0d0526c891fedc004020219e3fd0355e35cfb8cd50ce692a0d76530e8923252064c186cf4f5b7e4961217c1d46f4c03621d37e8f196032d6940aebe87e1705823c5edc8e19e9b432751fe011a205b55039135eef3b15c751da95df940a3aa9c9cb63268bff9c1992531fd047a1487d732038840cc1824195bdcb0920ff3ba8c45207cb4a4e7c7a649cc5494a74e4b6363ea0380ce7a923f8bc33387ffa1ed6853f3fb07ed8bd7729b0f8dca30cce6479457b1033e5a77f973f0b1dae73266c1739808d1daa3c97352a866a3aa28fdb0e6fe372003b23e79578bec9d12bfc758a819ad510d74cfada9194eac40b9cc9b6fe9e81e5303c554b4833fd914429bd671c420918c87d524d87de055375348e5fb0baca11e51036e552eadafcc6f7de1e2453bb5baece97649c545d82d35f199a4281b79efa5210219ffff03037097135d137a7f299745fbb2b4cd293fa277eed163ed85942dee8588605598035657fa847bc6c3bc8fe3275e3f7e2449ca461d8666fa01059884c7a85cbd8fdc03263f72a434089354d8c3ff8908f54bb8d8c21a2eb3909d0df7954ced52637a45034a2da7a20678697754416122701065e97a93e8c64cca960eb7b77175bad7eee903b391a398587910f0b73feb05f03f04eff0ada30d2501f582dc7f656ec3e1a3370351610227272cdbd33a615f3dcfd5ffa467621fb00aed529fcee804c175e8a4fa0307a1182173ea849642ae3f82994d334f47c58426d1572015492e24637bc1996c032cff28e52026fafeb1eb97da5e2feea7a2d644c1f41ef638fd15e919cab4f8b903cc00ff0885e0bed9b8dd8163d99dd067cc976229e527ca5dcaa00dec4a5f0f5203fd122edea2c9f83ee1a4c239338d42dc2138418daa14b8337ae94ee843ef361c036802cb313acc8e06a17a940b692d113cc4b5fcd4ef3e62d9d01dcccdf73ffbd003e8a7acd3bdd0aedb8964a98f489d2fe2c8fdaada848bdb6ec8f69a3cb9446b0b03d765395a5a8f4c399d04cb0d4b844ef746364f5b926cbdda642cbd4f88a1ab150219ffff0310d25eebd68ad9ea4992141c1896c79fa5fedbfde9dfa0d1338d22c5b71c76860385ee1d1bc1a3ef358b18b6f841e9e782dcb908fdd3b9f821ce540b2cae80ec8a0306ccee8ecd7eaf87792dbd7d97cb296acbd9a2dd6dd11e21550b66ea2afb56da0330f4cb53f36479515803f2813fa79dd50ff966ef9676226b7784e1a1d3da4172039788a20cd7baad852ee1d5764c148619b8d94ab919ce91def93028139244b4a90325b8ebcde43212c68eca7d5fbb7261c8c580067e30efbe7590429e1ab0babcf503150da79b22c79a311ba1abb7af0ae19ba4d7fd312a3e375740b6fd6b9948823803c4772faa96aa04b954dd01cbda6bc4a1bf6b4125690b7d10ec71c5d040baa85603f3cc0c9af9fd295494bb12aa252354eeba2f954fd611345844e6c9a9a33b5e1b033663a61622472edfecf45299c1ae23177cbad57faf74ee170f87a77426f7893203b23b07502787f3563d2455287373d7df67735f8bf2443bad9ea57b4d20b058dc03cbba03e0306436b86a9f892856cc18ddbf4ae3c1d474f18f06595f4a2c73c4cb0219ffff03e541ff149c3821117c13c19bc99b37f328a1d25d179470aebe09decbfb952e58037d65a7c349eb37c655c0925776d95dd5f0c6663afc8645d02fbb4e9ca46f1b8603fcd97e790ef82e0cb1a75efdf2410e74957507ff236e7ca10032d189c8a02d6b035430a618334d313184c6f3a2d499bdd612f9dbaac0f5761653b7421d612c020a03ff8d64d37a029eeb37a76a4306b670a63819ee6917678b83569baf2be3faa09d03dc194815f6d22cf0ba77425bddf4259fffb92c5801e90249fb833ffdf00bae5103bd92dbe09bd257b339440f07a0ff827546e6402ca152a9fc38b2f871a8652e7d033bd217dea5a41592a72c511bac28c0ec5846214e05dd0d18330af19aba067b4d038aa6239758091c9df09d3afa7af3adfdb3c39d85e99fe19bc680f10b474c33720318f9563305fb9ed27279b34d068f8a9bcf557895cccd3c8a61a8b3077fec99740325117ad1f37de8a2f85959655b16eed70d9b58735e22beeb113f192030258c90039c2a3950f0065d88a122be2a64186b3598fdf5927995c1185be74765a3c434b10315ce924bd41bec9366e0e121f751cc6986f3954d3146b667c6e9375d54c95e0d03d00ef616504882a2e0afa8d87b056cc18f658a799d3a62481b22a66a6f5d246903579be1a5816ff5940887ac3cc29986ccb9f46712b6b7d3894c137b8a4d80405e03e06f96fc5f9617497abe22fc13fc3f561521fb8c70be3100cf6a44b47e54f6d8031110c4a2cc01357891418fd9548aa4a1ec5ec1a46b26569cc7a2f8f6949e6039031e3f4c3898c6c6a72f51ba78478928b33799f08a33f4632e03b5ec16ebaf017a03c3ad48b1fd0bda8c5d6680bb2921da7fde7fa49b8ca2dbb556bfd50173ddaa410335f0ef42cd0a70dcdffe95b132101256a5c5f23c8d2118fcf8c6d07cb191327603040ea67430a4d66e71add4552c4582eca4ea957ec08e628cde7869041ab9b6ce0359b871c2c8f973525863f18c2f6f18a44eb2f8840fd6a1bb919905b4f01e421d03be833adcfeeb21b1c9649a72411a8f3433f3a15c6c4d9d1a0117cae337ba000603c56db9c25ca86dd976de4d2ac3ca14db6b8281bc197cbb57d8e487330fc885060354bbade28616422c37385e189a28fba5409bee41180fa08089d58145e9f4d7c20302b5f2df1cd36888b2cfa5ff5c19a2c210f0d1472073efc437fefe9493c2c9cc0313581fa11ad687397d4912c381a6dc0ea10ea7cdc13c29e29a0a1a0dce53bc9103dcffdc07401d5fadd7506f43499428f144476c02796d82fa09344dce86d660fe0332dafcd2dc2d255c7ca2c926ac6fbd0e91a7e9ed1e0822e8b285058d97a013e003264c9e0ff37d87df9a6155c0e1551697e3d3674db6cfb3ef341df887bc6d75a903696bdd89d8801a173361a0c73a96198e7c43ff939323719910dd788f2693597303f1d900423b5b8f5c83c62d8b7c5c8ac90337d4ca82a44e36151a42a391dd0a31033b89c27479ecffb8887c2b739e31b8723a3001b740bb2ffe7d26379e90be9a0404595a8860806040526004361061021e5760003560e01c80639871efa411610123578063d1b260d4116100ab578063f3dced3c1161006f578063f3dced3c1461061f578063f3e144b61461063f578063f6932b0d1461065f578063f851a4401461067f578063fa461e331461069f57600080fd5b8063d1b260d4146105a4578063d8837daf146105b7578063e0af3616146105ca578063e99bfa95146105ec578063f2fde38b146105ff57600080fd5b8063b07482d2116100f2578063b07482d214610528578063b3ab15fb1461053b578063b80c2f091461055b578063ca68d8f61461056e578063d13a35e61461058457600080fd5b80639871efa4146104ac5780639989d481146104bf5780639a09b285146104d25780639a307391146104f257600080fd5b80633ba7cadf116101a657806373679b6b1161017557806373679b6b146103f3578063779e45fc1461041b5780638575654f1461043b578063869c6b4b1461044e5780638da5cb5b1461048e57600080fd5b80633ba7cadf1461035257806341f4a9591461037e5780636aa476451461039e578063715018a6146103de57600080fd5b80630d5f0e3b116101ed5780630d5f0e3b146102e157806312a0ddc7146102f45780631afca626146103075780631bb943fd1461031d578063355b97181461033257600080fd5b806301617fab1461027557806303b87e5f1461028857806308298b5a146102ae5780630c00e013146102c157600080fd5b366102705732330361026e5760405162461bcd60e51b81526020600482015260146024820152731155120819195c1bdcda5d081c995a9958dd195960621b60448201526064015b60405180910390fd5b005b600080fd5b61026e610283366004614c00565b6106bf565b61029b610296366004614caa565b610a5c565b6040519081526020015b60405180910390f35b61029b6102bc366004614d76565b610b6d565b3480156102cd57600080fd5b5061026e6102dc366004614de8565b610c30565b61029b6102ef366004614e29565b610e5a565b61029b610302366004614e9c565b610eb4565b34801561031357600080fd5b5061029b60215481565b34801561032957600080fd5b5061026e610f01565b34801561033e57600080fd5b5061026e61034d366004614ef3565b610f35565b34801561035e57600080fd5b5061029b61036d366004614ef3565b602080526000908152604090205481565b34801561038a57600080fd5b5061026e610399366004614f0c565b610f49565b3480156103aa57600080fd5b506103c67370cbb871e8f30fc8ce23609e9e0ea87b6b222f5881565b6040516001600160a01b0390911681526020016102a5565b3480156103ea57600080fd5b5061026e611006565b3480156103ff57600080fd5b506103c6735703b683c7f928b721ca95da988d73a3299d475781565b34801561042757600080fd5b5061026e610436366004614f5d565b61101a565b61029b610449366004614e29565b6110d1565b34801561045a57600080fd5b5061047e610469366004614f92565b60046020526000908152604090205460ff1681565b60405190151581526020016102a5565b34801561049a57600080fd5b506000546001600160a01b03166103c6565b61029b6104ba366004614e29565b6111dd565b61029b6104cd366004614e9c565b611241565b3480156104de57600080fd5b5061026e6104ed366004614f92565b61132e565b3480156104fe57600080fd5b506103c661050d366004614f92565b601f602052600090815260409020546001600160a01b031681565b61029b610536366004615050565b6113d6565b34801561054757600080fd5b5061026e610556366004614f92565b6114e5565b61029b61056936600461507f565b611547565b34801561057a57600080fd5b5061029b61012c81565b34801561059057600080fd5b506003546103c6906001600160a01b031681565b61029b6105b236600461507f565b611611565b61029b6105c5366004614e29565b611784565b3480156105d657600080fd5b506103c66000805160206159f383398151915281565b61029b6105fa366004615135565b61187a565b34801561060b57600080fd5b5061026e61061a366004614f92565b611a9a565b34801561062b57600080fd5b506002546103c6906001600160a01b031681565b34801561064b57600080fd5b5061029b61065a366004615236565b611b10565b34801561066b57600080fd5b5061026e61067a366004614ef3565b611b5a565b34801561068b57600080fd5b506018546103c6906001600160a01b031681565b3480156106ab57600080fd5b5061026e6106ba3660046152c0565b611b6b565b600160ff1b81166001600160801b038216806107125760405162461bcd60e51b81526020600482015260126024820152710616d6f756e74206d757374206265203e20360741b6044820152606401610265565b81156108aa5760405163052f523360e11b81526000805160206159f383398151915260048201523360248201523060448201526001600160801b03821660648201527370cbb871e8f30fc8ce23609e9e0ea87b6b222f5890630a5ea46690608401600060405180830381600087803b15801561078d57600080fd5b505af11580156107a1573d6000803e3d6000fd5b5050604051632e1a7d4d60e01b81526001600160801b03841660048201526000805160206159f38339815191529250632e1a7d4d9150602401600060405180830381600087803b1580156107f457600080fd5b505af1158015610808573d6000803e3d6000fd5b50506040516000925033915047908381818185875af1925050503d806000811461084e576040519150601f19603f3d011682016040523d82523d6000602084013e610853565b606091505b50509050806108a45760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572206e617469766520746f6b656e206661696c6564000000006044820152606401610265565b50610988565b806001600160801b031634146108fb5760405162461bcd60e51b81526020600482015260166024820152751d985b1d59481b9bdd08195c5d585b08185b5bdd5b9d60521b6044820152606401610265565b6000805160206159f38339815191526001600160a01b031663d0e30db0826001600160801b03166040518263ffffffff1660e01b81526004016000604051808303818588803b15801561094d57600080fd5b505af1158015610961573d6000803e3d6000fd5b50505050506109886000805160206159f383398151915233836001600160801b0316611d53565b604051848152600080516020615a338339815191529060200160405180910390a1600080516020615a13833981519152826109d75773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6109e7565b6000805160206159f38339815191525b83610a00576000805160206159f3833981519152610a16565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b604080516001600160a01b03938416815292909116602083015233908201526001600160801b03831660608201819052608082015260a00160405180910390a150505050565b6000876080013542811015610a835760405162461bcd60e51b815260040161026590615312565b610a8b611d83565b6040518b8152600080516020615a338339815191529060200160405180910390a16001600160a01b038a16610af05760405162461bcd60e51b815260206004820152600b60248201526a6e6f74206164647228302960a81b6044820152606401610265565b89610b44610b03368c90038c018c61533a565b8a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508c92508b91508a9050893388611ddc565b9250610b5560408b01358b3561216a565b50610b5f60018055565b509998505050505050505050565b60405160a087901c8152600090600080516020615a338339815191529060200160405180910390a16001600160a01b038416610bd95760405162461bcd60e51b815260206004820152600b60248201526a6e6f74206164647228302960a81b6044820152606401610265565b610bf16001600160a01b03881687878686338a612390565b9050610c26866001600160a01b03891615610c0c578861216a565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61216a565b9695505050505050565b806000816001600160401b03811115610c4b57610c4b614faf565b604051908082528060200260200182016040528015610c74578160200160208202803683370190505b50905060005b82811015610e0e57601f6000868684818110610c9857610c986153c0565b9050602002810190610caa91906153d6565b610cbb906040810190602001614f92565b6001600160a01b039081168252602082019290925260400160002054163314801590610d2d5750848482818110610cf457610cf46153c0565b9050602002810190610d0691906153d6565b610d17906040810190602001614f92565b6001600160a01b0316336001600160a01b031614155b15610d4b5760405163203b1cdd60e21b815260040160405180910390fd5b6000610d81610d7c878785818110610d6557610d656153c0565b9050602002810190610d7791906153d6565b612b73565b612baf565b90506020600082815260200190815260200160002054838381518110610da957610da96153c0565b602002602001018181525050600160ff1b838381518110610dcc57610dcc6153c0565b602002602001015103610df2576040516311b18c4b60e11b815260040160405180910390fd5b60009081526020805260409020600160ff1b9055600101610c7a565b50336001600160a01b03167f2d978b051248279fa3127485450ca814a26b9b0938be9f714eda15eaec5ca881858584604051610e4c939291906154a0565b60405180910390a250505050565b60405160a086901c8152600090600080516020615a338339815191529060200160405180910390a16000610e9b336001600160a01b03891688888888612be2565b9092509050610eaa868261216a565b5095945050505050565b6000600080516020615a3383398151915284604051610ed591815260200190565b60405180910390a1610ef73380610ef1368790038701876155c4565b8561307b565b90505b9392505050565b610f096133f2565b6040517f0b3b40bc6027444e59029877c53be6734ca3724242753ffe5aa1a6066635211f90600090a132ff5b610f3d6133f2565b610f468161344c565b50565b610f516133f2565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03841601610ff657600080836001600160a01b03168360405160006040518083038185875af1925050503d8060008114610fc4576040519150601f19603f3d011682016040523d82523d6000602084013e610fc9565b606091505b5091509150818190610fee5760405162461bcd60e51b81526004016102659190615604565b505050505050565b611001838383611d53565b505050565b61100e6133f2565b61101860006134e4565b565b6018546001600160a01b031633148061103d57506000546001600160a01b031633145b61106e5760405162461bcd60e51b81526020600482015260026024820152616e6160f01b6044820152606401610265565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fede97de789011d2becb9fba8441864c3b17f4a20f7ebf0a77e93f30adc30e207910160405180910390a15050565b3360009081526004602052604081205460ff1615156001146111055760405162461bcd60e51b815260040161026590615637565b60405160a087901c8152600080516020615a338339815191529060200160405180910390a1600080336001600160a01b031663534015b36040518163ffffffff1660e01b81526004016040805180830381865afa15801561116a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118e919061565e565b90925090506001600160a01b0381166111b95760405162461bcd60e51b815260040161026590615698565b6111d16001600160a01b038916888888888787612390565b98975050505050505050565b60405160a086901c8152600090600080516020615a338339815191529060200160405180910390a161121d6001600160a01b038716868686863333612390565b9050611238856001600160a01b03881615610c0c578761216a565b95945050505050565b3360009081526004602052604081205460ff1615156001146112755760405162461bcd60e51b815260040161026590615637565b61127d611d83565b604051848152600080516020615a338339815191529060200160405180910390a1600080336001600160a01b031663534015b36040518163ffffffff1660e01b81526004016040805180830381865afa1580156112de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611302919061565e565b9092509050611321828261131b368990038901896155c4565b8761307b565b92505050610efa60018055565b6018546001600160a01b031633148061135157506000546001600160a01b031633145b6113825760405162461bcd60e51b81526020600482015260026024820152616e6160f01b6044820152606401610265565b601880546001600160a01b0319166001600160a01b0383169081179091556040519081527f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c9060200160405180910390a150565b60006113e0611d83565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6114056060840160408501614f92565b6001600160a01b0316036114525760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b21039b7bab931b2903a37b5b2b760611b6044820152606401610265565b6114626060830160408401614f92565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156114a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cc91906156c0565b83526114da3085858561307b565b9050610efa60018055565b336000818152601f602090815260409182902080546001600160a01b0319166001600160a01b03861690811790915591519182527fd58299b712891143e76310d5e664c4203c940a67db37cf856bdaa3c5c76a802c910160405180910390a250565b600087608001354281101561156e5760405162461bcd60e51b815260040161026590615312565b611576611d83565b6040518a8152600080516020615a338339815191529060200160405180910390a16115ea6115a9368b90038b018b61533a565b8989808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508b92508a9150899050883380611ddc565b91506115fb60408a01358a3561216a565b61160460018055565b5098975050505050505050565b60008760800135428110156116385760405162461bcd60e51b815260040161026590615312565b611640611d83565b3360009081526004602052604090205460ff1615156001146116745760405162461bcd60e51b815260040161026590615637565b6040518a8152600080516020615a338339815191529060200160405180910390a1600080336001600160a01b031663534015b36040518163ffffffff1660e01b81526004016040805180830381865afa1580156116d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f9919061565e565b90925090506001600160a01b0381166117245760405162461bcd60e51b815260040161026590615698565b611777611736368d90038d018d61533a565b8b8b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508d92508c91508b90508a8888611ddc565b9350505061160460018055565b3360009081526004602052604081205460ff1615156001146117b85760405162461bcd60e51b815260040161026590615637565b60405160a087901c8152600080516020615a338339815191529060200160405180910390a1600080336001600160a01b031663534015b36040518163ffffffff1660e01b81526004016040805180830381865afa15801561181d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611841919061565e565b90925090506001600160a01b03811661186c5760405162461bcd60e51b815260040161026590615698565b611604828289898989612be2565b60008860800135428110156118a15760405162461bcd60e51b815260040161026590615312565b6118a9611d83565b89356001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed19810161190f5760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b21039b7bab931b2903a37b5b2b760611b6044820152606401610265565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197a91906156c0565b905060006040518060a001604052808e6000013581526020018e60200160208101906119a69190614f92565b6001600160a01b031681526020018381526020018e6060013581526020018e60800135815250905060008c8c90506001600160401b038111156119eb576119eb614faf565b604051908082528060200260200182016040528015611a14578160200160208202803683370190505b50905060005b8c811015611a7a578e60400135848f8f84818110611a3a57611a3a6153c0565b90506020020135611a4b91906156ef565b611a559190615706565b828281518110611a6757611a676153c0565b6020908102919091010152600101611a1a565b50611a8b82828d8d8d8d308e611ddc565b95505050505061160460018055565b611aa26133f2565b6001600160a01b038116611b075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610265565b610f46816134e4565b60405160a089901c8152600090600080516020615a338339815191529060200160405180910390a1611b43888484613534565b610b5f336001600160a01b038b1689898989612be2565b611b626133f2565b610f4681610f3d565b611baf565b3d6000803e3d6000fd5b80611b8757611b87611b70565b600160005114601f3d11163d151780611bab57633c9fd93960e21b60005260046000fd5b5050565b604051601581017306ff0b40e9091053eee51fa1d482ce5d852f523360611b825260206000600484335afa611be657611be6611b70565b6020806004808501335afa611bfd57611bfd611b70565b60206040600460088501335afa611c1657611c16611b70565b6000806000881360018114611c32576020519250879150611c3b565b60005192508891505b507fff1f98431c8ad98523631ae4a59f267346ea31f98400000000000000000000008452606060002083527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460208401526001600160a01b0360558520169250338314611cb357635960139160e11b60005260046000fd5b60843592507306ff0b40e9091053eee51fa1d482ce5d852f523360611b845230831460018114611d2557826014860152836034860152336054860152816074860152611d206020600060846010890160007370cbb871e8f30fc8ce23609e9e0ea87b6b222f585af1611b7a565b611d48565b336010860152816030860152611d48602060006044600c89016000885af1611b7a565b505050505050505050565b611d668363a9059cbb60e01b848461369a565b6110015760405163fb7f507960e01b815260040160405180910390fd5b600260015403611dd55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610265565b6002600155565b60408801516000908990611e3d5760405162461bcd60e51b815260206004820152602260248201527f526f7574653a2066726f6d546f6b656e416d6f756e74206d757374206265203e604482015261020360f41b6064820152608401610265565b805160208201516001600160a01b0391821691611e5b9116856136ed565b9250611e6681613778565b15611ed5576000805160206159f38339815191526001600160a01b031663d0e30db083604001516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611eb857600080fd5b505af1158015611ecc573d6000803e3d6000fd5b50505050503094505b6000805b8b51811015611f11578b8181518110611ef457611ef46153c0565b602002602001015182611f079190615728565b9150600101611ed9565b508260400151811115611f845760405162461bcd60e51b815260206004820152603560248201527f526f7574653a206e756d626572206f6620626174636865732073686f756c64206044820152741899480f0f48199c9bdb551bdad95b905b5bdd5b9d605a1b6064820152608401610265565b508515611fd35760405162461bcd60e51b815260206004820152601b60248201527f74686520706172616d65746572206973206465707265636174656400000000006044820152606401610265565b895188146120155760405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b6044820152606401610265565b60005b888110156120865761207e868661203b86602001516001600160a01b0316613778565b8e858151811061204d5761204d6153c0565b60200260200101518e8e87818110612067576120676153c0565b9050602002810190612079919061573b565b61379a565b600101612018565b50612095826020015185613954565b602082015183906120af906001600160a01b0316866136ed565b6120b99190615784565b925081606001518310156121085760405162461bcd60e51b8152602060048201526016602482015275135a5b881c995d1d5c9b881b9bdd081c995858da195960521b6044820152606401610265565b60208083015160408085015181516001600160a01b038087168252909316938301939093523290820152606081019190915260808101849052600080516020615a138339815191529060a00160405180910390a1505098975050505050505050565b601f193601356561aefa81eaab60d11b6001600160d01b0319821601611001576001600160a01b03811665ffffffffffff60a083901c1661012c8111156121f35760405162461bcd60e51b815260206004820152601b60248201527f6572726f7220636f6d6d697373696f6e2072617465206c696d697400000000006044820152606401610265565b600061220182612710615784565b61220b83886156ef565b6122159190615706565b9050612229856001600160a01b0316613778565b156122d7576000836001600160a01b03168260405160006040518083038185875af1925050503d806000811461227b576040519150601f19603f3d011682016040523d82523d6000602084013e612280565b606091505b50509050806122d15760405162461bcd60e51b815260206004820152601b60248201527f636f6d6d697373696f6e2077697468206574686572206572726f7200000000006044820152606401610265565b50612347565b60405163052f523360e11b81527370cbb871e8f30fc8ce23609e9e0ea87b6b222f5890630a5ea46690612314908890339088908790600401615797565b600060405180830381600087803b15801561232e57600080fd5b505af1158015612342573d6000803e3d6000fd5b505050505b604080518281526001600160a01b03851660208201527fffc60ee157a42f4d8edbd1897e6581a96d9ed04e44fb2ab53a47ce1eb8f2775b910160405180910390a1505050505050565b60006125dc565b62461bcd60e51b600052600160e51b6020528060405250806000fd5b828152600060206000600484600401865afa6123e8576123e86054700419d95d081d1bdad95b8819985a5b195960621b612397565b505060005192915050565b6770a082310dfe168160c01b815260008060206000600485600401875afa61243657612436605672049d1bdad95b8c0818d85b1b0819985a5b195960521b612397565b600051915083836004015260206000602485855afa6124775761247760597c1562616c616e63654f662063616c6c206661696c656400000000000000612397565b60005190509250929050565b6770a08231d21220a760c01b815260008060206000600485600401875afa61243657612436605672049d1bdad95b8c4818d85b1b0819985a5b195960521b612397565b668b0367c240bc6b60c21b8152600060406000600484600401875afa61250e5761250e60587c1472657365727665732063616c6c206661696c65640000000000000000612397565b60005160205186801561253a5789156125325761252b8786612483565b8390039650505b909190612551565b88156125515761254a87866123f3565b8490039650505b50668b0367c240bc6b60c21b8452898502633b9aca00929092028201910204905084801561258b5781600484015260006024840152612599565b600060048401528160248401525b50886044830152608060648301526000608483015260008060a4846000885af16111d1576111d1605470041cddd85c0818d85b1b0819985a5b195960621b612397565b84602085028101858061260357612603604e6b0b656d70747920706f6f6c7360901b612397565b5060405182358b15600181146126ad5734156126395761263960557111696e76616c6964206d73672e76616c756560581b612397565b63052f523360e11b83528c60048401528760248401526001600160a01b03821660448401528b606484015260008060848560007370cbb871e8f30fc8ce23609e9e0ea87b6b222f585af16126a8576126a86056720498db185a5b481d1bdad95b8819985a5b195960521b612397565b61277f565b60018c3410036126d7576126d760557111696e76616c6964206d73672e76616c756560581b612397565b670a9059cbbd0e30db60c41b835260008060048086018f6000805160206159f38339815191525af1612724576127246056720499195c1bdcda5d081155120819985a5b195960521b612397565b6001600160a01b03821683600401528b83602401526020600060448560006000805160206159f38339815191525af161277f5761277f60587c147472616e736665722057455448206661696c65640000000000000000612397565b508a9450602084015b838110156127de5780356127d26001600160a01b03821663ffffffff60a01b851660a01c600160fd1b8616600160fc1b8716600160ff1b88166001600160a01b0389168d8b6124c6565b96509150602001612788565b5060009350600160fe1b811680156128c2576000945061282b3063ffffffff60a01b841660a01c600160fd1b8516600160fc1b8616600160ff1b87166001600160a01b0388168c8a6124c6565b9550672e1a7d4da9059cbb60c01b83528560048401526020600060248560006000805160206159f38339815191525af16128875761288760577c13776974686472617720455448206661696c6564000000000000000000612397565b600080600080898b5af16128bd576128bd60577c137472616e7366657220455448206661696c6564000000000000000000612397565b612b05565b60009350600160ff1b8216801561297457600160fc1b83161561296f576770a082310dfe168160c01b8452602060006004866004016001600160a01b0387165afa61292857612928605672049d1bdad95b8c0818d85b1b0819985a5b195960521b612397565b600051955087846004015260206000602486895afa6129695761296960567c15746f6b656e302062616c616e6365206661696c656400000000000000612397565b60005194505b612a10565b600160fd1b831615612a10576770a08231d21220a760c01b8452602060006004866004016001600160a01b0387165afa6129c9576129c9605672049d1bdad95b8c4818d85b1b0819985a5b195960521b612397565b600051955087846004015260206000602486895afa612a0a57612a0a60597c15746f6b656e312062616c616e6365206661696c656400000000000000612397565b60005194505b50612a488763ffffffff60a01b841660a01c600160fd1b8516600160fc1b8616600160ff1b87166001600160a01b0388168c8a6124c6565b95508460001060018114612ab157600160ff1b83168015612a8957612a826770a082310dfe168160c01b6001600160a01b038616876123b3565b9650612aab565b612aa86770a08231d21220a760c01b6001600160a01b038616876123b3565b96505b50612b03565b6770a082310dfe168160c01b845287846004015260206000602486895afa612afb57612afb60587c146765742062616c616e63654f66206661696c65640000000000000000612397565b846000510396505b505b505088841015612b3757612b37605a7c164d696e2072657475726e206e6f742072656163686564000000000000612397565b8a8152826020820152326040820152896060820152836080820152600080516020615a1383398151915260a082a1505050979650505050505050565b60006040517f5d068ce469dcf41137bcb6c3e1894e076ad915392f28fda19ba41601d33c32a68152610120836020830137610140902092915050565b6000612bdc612bbc613b71565b8360405161190160f01b8152600281019290925260228201526042902090565b92915050565b600080612f7c565b6000846001600160ff1b031015612c0c57630b3f79fd60e41b60005260046000fd5b604051600160ff1b8516156001600160a01b0386168160018114612c9957630251596160e31b8452600484018681526000602082015289604082015273fffd8963efd1fc6a506488495d951d5263988d25606082015260a06080820152602060a08201528760c08201525060008060e4866000865af180612c8d5760206000fd5b5060206000803e612cf5565b630251596160e31b845260048401868152600160208201528960408201526401000276a4606082015260a06080820152602060a08201528760c08201525060008060e4866000865af180612ced5760206000fd5b5060208060003e5b505050506000519050600160ff1b811015612d1b576322323ba760e21b60005260046000fd5b19600101949350505050565b600181341003612d4257631841b4e160e01b60005260046000fd5b600080600080846000805160206159f38339815191525af180611bab57611bab60577c1357455448206465706f736974206661696c6564000000000000000000612397565b604051672e1a7d4da9059cbb60c01b815282600482015260008060248360006000805160206159f38339815191525af1905080612de657612de660587c1477697468647261772077657468206661696c65640000000000000000612397565b60008060008086865af190508061100157611001605571045cd95b9908195d1a195c8819985a5b1959605a1b612397565b60006040517306ff0b40e9091053eee51fa1d482ce5d852f523360611b8152600080600483865afa905080612e6657612e666055710459d95d081d1bdad95b8c0819985a5b1959605a1b612397565b5060206000803e505060005190565b60006040517306ff0b40e9091053eee51fa1d482ce5d852f523360611b81526000806004808401865afa905080612e6657612e666054710459d95d081d1bdad95b8c4819985a5b1959605a1b612397565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8085612f12578235600160ff1b81161560018114612f0357612efc82612e75565b9350612f0f565b612f0c82612e17565b93505b50505b86612f48578335600160ff1b81161560018114612f3957612f3282612e17565b9250612f45565b612f4282612e75565b92505b50505b60405182600052816020523260405285608052600080516020615a1383398151915260a06000a16040525095945050505050565b83601f19602085028201018480612f9e576333f3e07b60e11b60005260046000fd5b50600034118015612fb657612fb289612d27565b309a505b88606052825b82811015612fde57612fd18a82358e30612bea565b309c509950602001612fbc565b506000600160fd1b833516118060018114612ffe57801561301c5761302c565b61300b8b85358f30612bea565b9650613017878d612d87565b61302c565b6130298b85358f8f612bea565b96505b508886101561305d5761305d605a7c164d696e2072657475726e206e6f742072656163686564000000000000612397565b61306a8183888688612ec6565b945050505050965096945050505050565b8151600090810361309f576040516387741f3360e01b815260040160405180910390fd5b826060015180156130b1575082513414155b80156130e357506000805160206159f38339815191526130d76060840160408501614f92565b6001600160a01b031614155b15613101576040516387741f3360e01b815260040160405180910390fd5b8260800151801561313857506000805160206159f383398151915261312c6080840160608501614f92565b6001600160a01b031614155b156131565760405163591c75ef60e01b815260040160405180910390fd5b428360400151101561317b57604051632b32713d60e01b815260040160405180910390fd5b8260800151613205576131946080830160608401614f92565b6040516370a0823160e01b81526001600160a01b03868116600483015291909116906370a0823190602401602060405180830381865afa1580156131dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061320091906156c0565b613211565b836001600160a01b0316315b9050600061322f846000015187878688606001518960800151613c64565b905080156132535760405163f70b432d60e01b815260048101829052602401610265565b83608001516132e8578161326d6080850160608601614f92565b6040516370a0823160e01b81526001600160a01b03888116600483015291909116906370a0823190602401602060405180830381865afa1580156132b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d991906156c0565b6132e39190615784565b6132fc565b6132fc826001600160a01b03871631615784565b915083602001518210156133235760405163a7c6745960e01b815260040160405180910390fd5b6040805184358152610180850135602082018190529181018390527f5018f79d04d45a1d0ef7df4f8a02c44c1b0b59cd11983e44f1e9dfaf071db2199060600160405180910390a1600080516020615a1383398151915261338a6060860160408701614f92565b61339a6080870160608801614f92565b6133aa6040880160208901614f92565b8851604080516001600160a01b0395861681529385166020850152919093169082015260608101919091526080810185905260a00160405180910390a150505b949350505050565b6000546001600160a01b031633146110185760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610265565b60f081901c6001600160a01b03821661271082111561347e57604051634bd934b560e01b815260040160405180910390fd5b6001600160a01b0381166134a557604051633480121760e21b815260040160405180910390fd5b602183905560405183815233907f04e0c6a722afc105ccf81d8792757f388d3dad9bc137b2e269cfd6ee99faba999060200160405180910390a2505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8015611001576000606060e08390036135d5576040516001600160a01b0386169061356e9063d505accf60e01b90879087906020016157c1565b60408051601f1981840301815290829052613588916157e5565b6000604051808303816000865af19150503d80600081146135c5576040519150601f19603f3d011682016040523d82523d6000602084013e6135ca565b606091505b509092509050613644565b610100839003613606576040516001600160a01b0386169061356e906323f2ebc360e21b90879087906020016157c1565b60405162461bcd60e51b81526020600482015260136024820152720aee4dedcce40e0cae4dad2e840d8cadccee8d606b1b6044820152606401610265565b816136935761367a816040518060400160405280600f81526020016e02832b936b4ba103330b4b632b21d1608d1b815250614102565b60405162461bcd60e51b81526004016102659190615604565b5050505050565b60006040518481528360048201528260248201526020600060448360008a5af191505080156133ea573d80156136dc57600160005114601f3d111691506136e4565b6000863b1191505b50949350505050565b60006136f883613778565b1561370e57506001600160a01b03811631612bdc565b6040516370a0823160e01b81526001600160a01b0383811660048301528416906370a0823190602401602060405180830381865afa158015613754573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efa91906156c0565b6001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b60006137d4838360008181106137b2576137b26153c0565b90506020028101906137c491906157f7565b608001356001600160a01b031690565b905060008083815b8181101561394757801561381a576137ff8787838181106137b2576137b26153c0565b94506138146001600160a01b038616306136ed565b9750309a505b30613826600184615784565b82148015613832575089155b1561383e57508961390b565b613849600184615784565b821080156138945750878761385f846001615728565b81811061386e5761386e6153c0565b905060200281019061388091906157f7565b61388e90602081019061573b565b90506001145b156139065787876138a6846001615728565b8181106138b5576138b56153c0565b90506020028101906138c791906157f7565b6138d590602081019061573b565b60008181106138e6576138e66153c0565b90506020020160208101906138fb9190614f92565b90506001945061390b565b600094505b61393b8c828b8b8b87818110613923576139236153c0565b905060200281019061393591906157f7565b88614265565b508392506001016137dc565b5050505050505050505050565b613966826001600160a01b0316613778565b15613af3576040516370a0823160e01b81523060048201526000906000805160206159f3833981519152906370a0823190602401602060405180830381865afa1580156139b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139db91906156c0565b90508015613a4357604051632e1a7d4d60e01b8152600481018290526000805160206159f383398151915290632e1a7d4d90602401600060405180830381600087803b158015613a2a57600080fd5b505af1158015613a3e573d6000803e3d6000fd5b505050505b478015613aed576000836001600160a01b03168260405160006040518083038185875af1925050503d8060008114613a97576040519150601f19603f3d011682016040523d82523d6000602084013e613a9c565b606091505b50509050806136935760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572206e617469766520746f6b656e206661696c6564000000006044820152606401610265565b50505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015613b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b5e91906156c0565b9050801561100157611001838383611d53565b600030733b3ae790df4f312e745d270119c6052904fb6790148015613b965750600146145b15613bc057507f568575351b1514757989de9c786c66097e2ae26e38a5fd1b885ac2dd02b8b0bc90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f9569cad29571f225e7f2c73ecd677d78be383da74efd13f4af2bade05dc1a8de828401527fe6bbd6277e1bf288eed5e8d1780f9a50b239e86b153736bceebccf4ea79d90b360608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000428460e001351015613c7a57506002610c26565b60006080850135613c8f60a08701358a6156ef565b613c999190615706565b90506102208501356000613ccd8a83613cb860608b0160408c01614f92565b613cc860808c0160608d01614f92565b6145a1565b905080831115613d1657604080518281526020810183905291935083917facd4baa7803154e33bc54ca36afe61420bf31d5f1bf3587746c146d2f3a76e50910160405180910390a15b6000613d24610d7c89612b73565b9050613d8281613d3a60408b0160208c01614f92565b613d486101208c018c61580d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147cf92505050565b94508415613d935750505050610c26565b613da284828a60a0013561480c565b94508415613db35750505050610c26565b8515613efb577370cbb871e8f30fc8ce23609e9e0ea87b6b222f58630a5ea466613de360808b0160608c01614f92565b613df360408c0160208d01614f92565b735703b683c7f928b721ca95da988d73a3299d4757886040518563ffffffff1660e01b8152600401613e289493929190615797565b600060405180830381600087803b158015613e4257600080fd5b505af1158015613e56573d6000803e3d6000fd5b5050604051632e1a7d4d60e01b815260048101879052735703b683c7f928b721ca95da988d73a3299d47579250632e1a7d4d9150602401600060405180830381600087803b158015613ea757600080fd5b505af1158015613ebb573d6000803e3d6000fd5b50506040516001600160a01b038c16925086156108fc02915086906000818181858888f19350505050158015613ef5573d6000803e3d6000fd5b50613f89565b7370cbb871e8f30fc8ce23609e9e0ea87b6b222f58630a5ea466613f2560808b0160608c01614f92565b613f3560408c0160208d01614f92565b8c886040518563ffffffff1660e01b8152600401613f569493929190615797565b600060405180830381600087803b158015613f7057600080fd5b505af1158015613f84573d6000803e3d6000fd5b505050505b8615614022576000805160206159f38339815191526001600160a01b031663d0e30db08c6040518263ffffffff1660e01b81526004016000604051808303818588803b158015613fd857600080fd5b505af1158015613fec573d6000803e3d6000fd5b505050505061401d8860200160208101906140079190614f92565b6000805160206159f3833981519152908d611d53565b6140f4565b306001600160a01b038b16036140665761401d61404560408a0160208b01614f92565b8c61405660608c0160408d01614f92565b6001600160a01b03169190611d53565b7370cbb871e8f30fc8ce23609e9e0ea87b6b222f58630a5ea46661409060608b0160408c01614f92565b8c6140a160408d0160208e01614f92565b8f6040518563ffffffff1660e01b81526004016140c19493929190615797565b600060405180830381600087803b1580156140db57600080fd5b505af11580156140ef573d6000803e3d6000fd5b505050505b505050509695505050505050565b606060048351106142335760208301516001600160e01b0319811662461bcd60e51b14801561413357506044845110155b156141d357602484810151808601820180519192909190614155908490615728565b61415f9190615728565b865110156141a75760405162461bcd60e51b815260206004820152601560248201527424b73b30b634b2103932bb32b93a103932b0b9b7b760591b6044820152606401610265565b84816040516020016141ba929190615853565b6040516020818303038152906040529350505050612bdc565b6001600160e01b03198116634e487b7160e01b1480156141f4575083516024145b156142315760248401518361420882614899565b6040516020016142199291906158a2565b60405160208183030381529060405292505050612bdc565b505b8161423d846148c1565b60405160200161424e9291906158d7565b604051602081830303815290604052905092915050565b60808201356001600160a01b0316600080614280858061573b565b9050905060005b81811015611d4857600061429e604088018861573b565b838181106142ae576142ae6153c0565b60200291909101359150506001600160a01b038116600160ff1b821661ffff60a084901c1661271081111561431b5760405162461bcd60e51b8152602060048201526013602482015272776569676874206f7574206f662072616e676560681b6044820152606401610265565b6143258188615728565b9650614332600187615784565b8503614399576127108711156143995760405162461bcd60e51b815260206004820152602660248201527f746f74616c5765696768742063616e206e6f7420657863656564203130303030604482015265081b1a5b5a5d60d21b6064820152608401610265565b8861440857600081612710146143c5576127106143b6838e6156ef565b6143c09190615706565b6143c7565b8b5b90506144068e6143da60208e018e61573b565b898181106143ea576143ea6153c0565b90506020020160208101906143ff9190614f92565b8b84614aa8565b505b81156144d2576144188a8061573b565b86818110614428576144286153c0565b905060200201602081019061443d9190614f92565b6001600160a01b0316636f7929f28d8561445a60608f018f61573b565b8a81811061446a5761446a6153c0565b905060200281019061447c919061580d565b6040518563ffffffff1660e01b815260040161449b9493929190615928565b600060405180830381600087803b1580156144b557600080fd5b505af11580156144c9573d6000803e3d6000fd5b50505050614592565b6144dc8a8061573b565b868181106144ec576144ec6153c0565b90506020020160208101906145019190614f92565b6001600160a01b03166330e6ae318d8561451e60608f018f61573b565b8a81811061452e5761452e6153c0565b9050602002810190614540919061580d565b6040518563ffffffff1660e01b815260040161455f9493929190615928565b600060405180830381600087803b15801561457957600080fd5b505af115801561458d573d6000803e3d6000fd5b505050505b84600101945050505050614287565b600060f084901c6001600160a01b038516806146c35760405163e6a4390560e01b81526001600160a01b03808716600483015285166024820152735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f9063e6a4390590604401602060405180830381865afa158015614617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061463b9190615955565b90506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561467d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146a19190615955565b9050846001600160a01b0316816001600160a01b0316036146c157600192505b505b600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015614704573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147289190615989565b5091509150816001600160701b03166000148061474c57506001600160701b038116155b1561475f576000199450505050506133ea565b8360010361479757806001600160701b0316826001600160701b03168a61478691906156ef565b6147909190615706565b94506147c3565b816001600160701b0316816001600160701b03168a6147b691906156ef565b6147c09190615706565b94505b50505050949350505050565b60608101516080820151600091906147f1856147ec888585614b3d565b614bac565b61480057600192505050610efa565b60009695505050505050565b6000828152602080526040812054600160ff1b81016148305760035b915050610efa565b8015801561483e5750600083115b156148465750815b80851115614855576004614828565b8085036148755760008481526020805260409020600160ff1b905561488e565b61487f8582615784565b60008581526020805260409020555b600095945050505050565b6060612bdc826040516020016148b191815260200190565b6040516020818303038152906040525b80516060906f181899199a1a9b1b9c1cb0b131b232b360811b906000906148e99060026156ef565b6148f4906002615728565b6001600160401b0381111561490b5761490b614faf565b6040519080825280601f01601f191660200182016040528015614935576020820181803683370190505b509050600360fc1b81600081518110614950576149506153c0565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061497f5761497f6153c0565b60200101906001600160f81b031916908160001a90535060005b8451811015614aa0578260048683815181106149b7576149b76153c0565b01602001516001600160f81b031916901c60f81c601081106149db576149db6153c0565b1a60f81b826149eb8360026156ef565b6149f6906002615728565b81518110614a0657614a066153c0565b60200101906001600160f81b031916908160001a90535082858281518110614a3057614a306153c0565b60209101015160f81c600f1660108110614a4c57614a4c6153c0565b1a60f81b82614a5c8360026156ef565b614a67906003615728565b81518110614a7757614a776153c0565b60200101906001600160f81b031916908160001a90535080614a98816159d9565b915050614999565b509392505050565b306001600160a01b03851603614ac857614ac3828483611d53565b613aed565b60405163052f523360e11b81527370cbb871e8f30fc8ce23609e9e0ea87b6b222f5890630a5ea46690614b05908590889088908790600401615797565b600060405180830381600087803b158015614b1f57600080fd5b505af1158015614b33573d6000803e3d6000fd5b5050505050505050565b60006001600160ff1b0382167f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a1811015614aa0576040518581528360ff1c601b016020820152846040820152816060820152600080526020600060808360015afa505060005195945050505050565b6000826001600160a01b0316826001600160a01b03161480614bea57506001600160a01b038084166000908152601f60205260409020548382169116145b15614bf757506001612bdc565b50600092915050565b60008060408385031215614c1357600080fd5b50508035926020909101359150565b6001600160a01b0381168114610f4657600080fd5b8035614c4281614c22565b919050565b600060a08284031215614c5957600080fd5b50919050565b60008083601f840112614c7157600080fd5b5081356001600160401b03811115614c8857600080fd5b6020830191508360208260051b8501011115614ca357600080fd5b9250929050565b60008060008060008060008060006101408a8c031215614cc957600080fd5b8935985060208a0135614cdb81614c22565b9750614cea8b60408c01614c47565b965060e08a01356001600160401b0380821115614d0657600080fd5b614d128d838e01614c5f565b90985096506101008c0135915080821115614d2c57600080fd5b614d388d838e01614c5f565b90965094506101208c0135915080821115614d5257600080fd5b50614d5f8c828d01614c5f565b915080935050809150509295985092959850929598565b60008060008060008060a08789031215614d8f57600080fd5b8635955060208701359450604087013593506060870135614daf81614c22565b925060808701356001600160401b03811115614dca57600080fd5b614dd689828a01614c5f565b979a9699509497509295939492505050565b60008060208385031215614dfb57600080fd5b82356001600160401b03811115614e1157600080fd5b614e1d85828601614c5f565b90969095509350505050565b600080600080600060808688031215614e4157600080fd5b85359450602086013593506040860135925060608601356001600160401b03811115614e6c57600080fd5b614e7888828901614c5f565b969995985093965092949392505050565b60006101408284031215614c5957600080fd5b600080600060e08486031215614eb157600080fd5b83359250614ec28560208601614c47565b915060c08401356001600160401b03811115614edd57600080fd5b614ee986828701614e89565b9150509250925092565b600060208284031215614f0557600080fd5b5035919050565b600080600060608486031215614f2157600080fd5b8335614f2c81614c22565b92506020840135614f3c81614c22565b929592945050506040919091013590565b80358015158114614c4257600080fd5b60008060408385031215614f7057600080fd5b8235614f7b81614c22565b9150614f8960208401614f4d565b90509250929050565b600060208284031215614fa457600080fd5b8135610efa81614c22565b634e487b7160e01b600052604160045260246000fd5b600060a08284031215614fd757600080fd5b60405160a081018181106001600160401b038211171561500757634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015261503360608401614f4d565b606082015261504460808401614f4d565b60808201525092915050565b600080600060e0848603121561506557600080fd5b833561507081614c22565b9250614ec28560208601614fc5565b600080600080600080600080610120898b03121561509c57600080fd5b883597506150ad8a60208b01614c47565b965060c08901356001600160401b03808211156150c957600080fd5b6150d58c838d01614c5f565b909850965060e08b01359150808211156150ee57600080fd5b6150fa8c838d01614c5f565b90965094506101008b013591508082111561511457600080fd5b506151218b828c01614c5f565b999c989b5096995094979396929594505050565b600080600080600080600080610120898b03121561515257600080fd5b61515c8a8a614c47565b975060a08901356001600160401b038082111561517857600080fd5b6151848c838d01614c5f565b909950975060c08b013591508082111561519d57600080fd5b6151a98c838d01614c5f565b909750955060e08b01359150808211156151c257600080fd5b506151cf8b828c01614c5f565b9094509250506101008901356151e481614c22565b809150509295985092959890939650565b60008083601f84011261520757600080fd5b5081356001600160401b0381111561521e57600080fd5b602083019150836020828501011115614ca357600080fd5b60008060008060008060008060c0898b03121561525257600080fd5b88359750602089013561526481614c22565b9650604089013595506060890135945060808901356001600160401b038082111561528e57600080fd5b61529a8c838d01614c5f565b909650945060a08b01359150808211156152b357600080fd5b506151218b828c016151f5565b600080600080606085870312156152d657600080fd5b843593506020850135925060408501356001600160401b038111156152fa57600080fd5b615306878288016151f5565b95989497509550505050565b6020808252600e908201526d149bdd5d194e88195e1c1a5c995960921b604082015260600190565b600060a0828403121561534c57600080fd5b60405160a081018181106001600160401b038211171561537c57634e487b7160e01b600052604160045260246000fd5b60405282358152602083013561539181614c22565b806020830152506040830135604082015260608301356060820152608083013560808201528091505092915050565b634e487b7160e01b600052603260045260246000fd5b6000823561013e198336030181126153ed57600080fd5b9190910192915050565b6000808335601e1984360301811261540e57600080fd5b83016020810192503590506001600160401b0381111561542d57600080fd5b803603821315614ca357600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600081518084526020808501945080840160005b8381101561549557815187529582019590820190600101615479565b509495945050505050565b60408082528181018490526000906060808401600587901b850182018885805b8a8110156155af57888403605f190185528235368d900361013e190181126154e6578283fd5b8c018035855261014060206154fc818401614c37565b6001600160a01b031681880152615514838b01614c37565b6001600160a01b03168a88015261552c838a01614c37565b6001600160a01b0316898801526080838101359088015260a0808401359088015260c0808401359088015260e0808401359088015261010061556f818501614f4d565b151590880152610120615584848201856153f7565b945083828a0152615598848a01868361543c565b9983019998505050949094019350506001016154c0565b50505085810360208701526147c08188615465565b600060a082840312156155d657600080fd5b610efa8383614fc5565b60005b838110156155fb5781810151838201526020016155e3565b50506000910152565b60208152600082518060208401526156238160408501602087016155e0565b601f01601f19169190910160400192915050565b6020808252600d908201526c6f6e6c79207072696f7269747960981b604082015260600190565b6000806040838503121561567157600080fd5b825161567c81614c22565b602084015190925061568d81614c22565b809150509250929050565b6020808252600e908201526d6e6f74206164647265737328302960901b604082015260600190565b6000602082840312156156d257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417612bdc57612bdc6156d9565b60008261572357634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115612bdc57612bdc6156d9565b6000808335601e1984360301811261575257600080fd5b8301803591506001600160401b0382111561576c57600080fd5b6020019150600581901b3603821315614ca357600080fd5b81810381811115612bdc57612bdc6156d9565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b6001600160e01b031984168152818360048301376000910160040190815292915050565b600082516153ed8184602087016155e0565b60008235609e198336030181126153ed57600080fd5b6000808335601e1984360301811261582457600080fd5b8301803591506001600160401b0382111561583e57600080fd5b602001915036819003821315614ca357600080fd5b600083516158658184602088016155e0565b6508ae4e4dee4560d31b90830190815283516158888160068401602088016155e0565b602960f81b60069290910191820152600701949350505050565b600083516158b48184602088016155e0565b650a0c2dcd2c6560d31b90830190815283516158888160068401602088016155e0565b600083516158e98184602088016155e0565b670aadcd6dcdeeedc560c31b908301908152835161590e8160088401602088016155e0565b602960f81b60089290910191820152600901949350505050565b6001600160a01b03858116825284166020820152606060408201819052600090610c26908301848661543c565b60006020828403121561596757600080fd5b8151610efa81614c22565b80516001600160701b0381168114614c4257600080fd5b60008060006060848603121561599e57600080fd5b6159a784615972565b92506159b560208501615972565b9150604084015163ffffffff811681146159ce57600080fd5b809150509250925092565b6000600182016159eb576159eb6156d9565b506001019056fe000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21bb43f2da90e35f7b0cf38521ca95a49e68eb42fac49924930a5bd73cdf7576c7724394874fdd8ad13292ec739b441f85c6559f10dc4141b8d4c0fa4cbf55bdba264697066735822122086de79ead0fb270f5ba155e53602dfc8ed82c71fdd9d09db0688152e77f6d3ff64736f6c634300081100330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563054d01b673cfc6441b0ab383327afaf3ad1019455170058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6041010219080405581d0222a6136796a4543993032dac350fd03a38b21b9171733dc96a647ab90701195a8805581d02213db77e19bf46a10eac2cc934eb93da061b24922305d34507e19ee704010219040105581e03bba256d6d66ad6a711d3b9d82772be67a8ae407e1ef7a71ac166da7fe00c0147024d62d7fa523b03c29ba103680f2a5969c810900a54d65ba114eed252f3ae79dfc831b53274327b039e570bb9c762292ffd1b2f83ea25d6e68fe1bbb49af4b1150d02da3b75be4a5c03ccbc414f180ccbae836c4938ca3a85fbd0d4e397e809418d8f7cc83090b1293e0219e70e03602be9dd1fac2a83b31fba97e30e5b2a5a50938e05d7481aca2b31bc07b7892203709c2e28c97713ea6148c8e927c4722871ffd908dac25a47d178dafa57d663a3039b5ba9e59aa720b27edbc05b9fa3e64efbdb55af554492526bcda64782150e65030d51868fa67dee90cf565fa6c40af4d7158076f082e1bedf7e945875a6ee141903266159f6836de0ad1682089250b2bbc8e74dc1cf6cd35b400b4b1c9c62e76e5703cbc34d9bf51c51134a309f40826de0df7032c45eb8b284b0834c98b5f1d5bd450219ffff0392d8e422ecb7684fc0a26c8435b32b7ac8ddbbaf7fe98e791574fc0a903de0a203d6f67c08eb0c6a50267b76d5462de5a980dd1f3e2f57d19626b502a2ce0c2ef10219ffff03232c4dbea54b335fb249e78d8e339ee85b5b27e73593ebb863e5651b0e7bb755032ca38a9db335d0c2c4ed2548cd13f6c82ab82a3091244015576d92565b9f7cf203aa476c3c11097a9f3b1f966d4de9099ba3f12116d1c3ccd06de020aa1c2bae110329c2bdb46590464736286542b8ebc13d6f0bfa783e014cc0e5ea0f4d87790a4c03a3f3ec44330da199cc9aee219147025a467019432243870c18c5ee3a0a9da9a50391c7829d9771305fbfb77ece2bf188feaeffe9f6f198c7a4517f4636034e19190350e1a621487b30bb20f5e7bd90109c9157056e364528f3d1b16a315ed83ad6b20383dc8af67a6a9fb6f4c8c203391c79253cad71f068f42fde63ac37c162e5014c038081a43121e0d7b60a3152555f57f301c2c5f57656bace9338c310a2e86c78ae03574da74d6a833d7768a0699f1f2da04ef8d8719b3625097d1b78feab812d2f6a03f547d3c32ba3662ae6e98ba4c148ef9796f6086256b59d4536d2e3f3182249cd0352fccf30626acff42e3942ff6c08910f20d6e0c332bf16a59455a3c6f2bba4f40219ffff038b34ae7bc1f9d3536fb858aa08c6eab6111d3c36527949fc32fc90bd7a1db4fd03d17fc19dcad013539daba0207a796cc7e66ae0ca3a19ccccd5af0ff884305eeb03ec2bfa183317cac339687435a863219569610749fa7607b51ddf8a3c94e5226d03f05a9efab25e26a135094a0d105cf04efcae0e75bbc78840be08aa184399842f0219ffff0322c55604c8bedfbfe83e212fb8e021995ca70738c9208704e2037161ee9a37b403bf6d487d9be48e74deaaabae5dda38e181e1ffd6f675dce9a8d5f554f9cc5c7503847783eb27920d7dc74b399b3e4750f16a48a0745668f5a1e76d7d820a00e80303e3fe621a20b61a1aa4d6dbb9cdfed79dc1965eb1d05075d386eea9f239bfb19403a33555c928c91c9dfd1576b98b038ad660b294e5677b06c757e5aa92dc4d5fe903ae77288d94c407482b54078c19a37dffc973b037e64256600289da4118bc1c6103ff22f0f9f215d92b527f47d8c2a145d913d8fd3441a5f0ef0816d9359f71a708034240fb8103ce56fc4e0e92a9c2202dfa21140cba89f7525e6d576e16684ae95a03528bc580c31f606e92505eb1b25e1cd795f659bac671ee0465a62d04686ec52003661ab9f6d4d275535088f88c83b42badc340142e6cc55f3d4605526f43de12bd03046b62c58faa27c5113082e2fb46f781b827831c4e8f1e665c3161f1828068b10354306d0bb89f5c053ce8d851f02d77539b72034991f59b5a1727e76f1a2f9b5003968e787aa9bf028d15ea51e6baf8e04b970bd43fb1d5f8a25199a7f6e7c179b703d5763a7c22e7b1783d3aec1a344c18e8de35e6030b7afe6c8526a5108b5fe8b403a5f02d821c9dfdbed186128d6c4bb348be3a15a19678000ba2c397440767d7b803c55fc0446c291a52c0b4a48b4bd3c3bc72649bd75cd486092e7891240b1d8fdb038b7549e6d8929f71c337ed03c71953f011f4525145667bc88488522eb048398403a397e7d4e2e33722678279499281c920d95d61d18afad1f3990c0de31622164603e105d6908aafd143ba6a043905aa24e5ed87a950781a785bc6a44b9ebaa0110f03cbf103fe5fb822e2c4e9482277f901093b58ce68a19e74f746f05ee15c62e28103e80cf0a9a081dfb5cd6b7d9ab5d2f7055fecd4b1905e701c88313624e18f400f03694201bc63c842cf0753e517eb4985caf57ad84698235081cb8a6dc323c9537903f83a3ca4a8113c2caae99ccff9fe9f8501b3242d43274064e4cd908d34005d8f03ef3337c8d79562b9b53108d638a23515f2c23fcd820ed9b6bd4e3dcc535852b80399674f42ab969fa1083b64f3eda10e43040ed4f180f84a8f4d781703669f7e7703c95c1c2882bdf36a10db25060db1420fb80aced02b0c25ea771fb4a74eb32500035c9b63b1937fcf172db596911ed270768d708c9e8561503b975741e6039418f70373abff1363e653cf53576d85091335b5c99d8f1b6679a79f366b4e7c44c192e3038a4b7218229e718eb0a8333f4794f94c63d63bfa69f842307e5d63d9d09e0bd30390f648b6b7e0421aaeb5e41f7a468506a99f5e1b8ba614afe9d5c4c96f84092f03bb0ef8d9c0f25446408f52fc5c8f6f27b2695adf41b956ad1b65818dbdab7d5403371510709284a4891464d28ac50601415a963323ab0931fba8d3cb0bfbd2bbce05581e03786dff5711e4ec6a99a37413cd90755d8c2604478165c3ee11acd131500c02466304cc2d708805581e0350f76f0da4b8a60fe33269b2fbe2d18f17efe36dbdf4bcc8a76724b1700c064672da9dee38c003fa2be72bbc2357a2fa02daa9e797eb2a79e8dd13ba557e697503b3dd15b9d1af0366e9c5f734e57d1c9022e8625fe83123b1cee80482051960f5451517595df4b5031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581d024981a16faba5a6235d251380dc7470c376a132afcddfecbe18c696e507011bffffffffffffffff05581d02f8a66f596c138882d074b7bd6ecd5924f9ab8e50c61a1b611195a9fe0c19056b4809f0ed3432eb71690219030002194462035adc683310ea8d6ddba560e0bef1287b83fc03f9a177b4b942347c03412fc1b703bdbc335f32c382627d4a82b0fdd5de846336df495cdc0bf3d9231fe669f4484a0219ffff033fbb23de747db2f4361b3983838d971d1df7376907a9960cabf6540c5b2950f703ffb3299038ccc8a91fc1b8ba154aca9c15933ae94744af3b290f35ebafff9ea2032c600219edd0ee23de8522e1cd788d5fa61369da6cb91d2b86eed2e08ae6490f03be3866cd7ca2ea58e280bf668ac9f24a1658912b780fe0eb11354507f5ef0a3503edc01f2434090f7297a36ef3485d8c964640a9b389da831a4f3bba79e5b11fe403f060773d893345c0b4eec71ff1f82aae48b0ac3613e3d7f2c8ac0d5572747f4703d273f2c0186482aaee1a6e9ce3c354f3b874710106bac0d7ebccfb2748b869d803c04cd0655b5647fba0214111fdeb5ca0b7399167cbbf1612c61b9e923ac4218f03b701aafaffe5512385163da613b816e115d71b531ed3bea2f1cf01d6985a883703223dcefeed0fd5d7b8a8c2473fa6c3fc8f72656e1d9ef76f387b1d4cba1e76c003ebbc54167dab5bcc28299fab2411b6d323ceafabb36d43e7b05e24a481f8e26b0219ffff03ce637fb538fdc8fef87cee0246dbf25784330aa80a6c7516fb687d0b3ef50ded0219ffff0314a1561f3441593745d8be8b73eb5876d1ef44c3c5eb9e7153a691a5f21d3a4903a1d4208050bcdfabe39803e73f1a24394d5de08d8a1621f710ef96dd4a064481030558cca4a9e2cad8420ca15df84e46606c2c910df08a9ba245c87702dc0c6b0c035b23e7e3adacb3f70f776452cc374f22d0574998c580bd91adcd098c1a93f9ba035ef6ec1e7f72b63e926c1d26a9e26c05ed3596593acdb201863bc1ed21dbd06903218c3d31c6e386887b184b55ca4da5bf7580bce4ee6332f2e23e6684441375720322110189ac90564c93cddff16f96ff3b2adc14e3055921961046666b4396bce0036ed85588db4e295c94702ca638be601228441d80b03f894f08c34a56ac957dbf03d98c3e8e0232399ddb8396e546f19ad2d60e6e468b760a92cafe0574c0fec93603a73f358c98c0b4230566247948a6ddb47e7de6b020e4d2bb456e22cf9bfda87f03bd06a7c78e14df162f7737867d93e4742df74aabe280710d7a19f8b4c4819541032caaca7065727ec5e3afbde58c428e8de2071c49853b4ffae0e383359945a42f0384ca6304944f32fab62738f2620e2844e805523c78d00640215e1c4da9c148330344e94402678d647eef52b931a1c55ac1c299eb1902f9d79256af9aaa0dd113c2034944ccb4e4fefdbb34423b9c97600d318a94bf83353973636de662bd816cbfa303ed45bd3836155bd133846bc83086a707b97ebc776ba861d4ebddd58192658a450304327576c66050babee2c8a5cc6b4305a691c3686b4fcb31c1ad2edbf2206abb0315f1250717136f317a2f682bebb644a2c61789989c6a35223fc8a84e056bdd540394adacd5cdd6d6c083acff8c54b874bb39cd804f4d0d0ce6826e792307bd6bf90352e4e6411dd2ee52c4e1fcc712cd9e54ff16ed71df4a27db669bb26181b3fa5803e37857852ff18454f5b3bcbf74fde153760501440debc5bbde2eeb877acb1f3003b62659886e1b4db79ab47124dfcf0741ac0cadb314ffe28d46177525044cb63d03c421d10796fadd53c9cae9f683d31b91a58d8a2a971e74dc0ad8dfbe3c869b360351824d5583976e860e4d5ee0c8b77f91b44b225ba9e7305cc60ba0b6c76c7d7b0395932efdb35d7df575be9b54b5f168d9e10c0967c7f29c14ea7aa312e36a8b41034c9a6304924122a1c35b6f51a72aced57f86a044ddf0eb5c49b04e19961661da0351164fea8172194a94ed28e1c7cecc44de36bf7cb2a2a87d4b5094e5984d4fd80302f7e3f60a8b6d2abef32ba4ff839faff695d1621f5e3af64dcf4b3ab981667503947821d005f1c8ac55e34b4c682e46dfa8c0901c433dfc2304bd0dbff3d9926603ab98dc177c75d419b113922110e7c4252400524f74bb898b4566af6fe6b1097103b6f32126fd9ac813001838d1edfc3bc41d9d931f6fb30a31801c7ef0236881d7031829a0f65cc5d2900091ef5196d1d50400d18c88a386f20a75f5248e97a4ef8d033eddf27664d106ecbaf88d8c736267ead6db855c7a90804b77b7603b487f748f03a6678a3305d413735839f88cbbb0307e198a1c25a287f7f1e867c2ab3cda981a0320185480dd38170cc60c16fc15380afdd5be20b09b5db973374e31d1b392f8d603d2f00cc433fd7941a9db9a4ae8f41254a37c9b26ac8cdaea82efe5a6abdaf9c50382f5d48f5bad2e7dd406604b1db0502cee417604c5e3df997fea979616c058ae03a9b9d8246fb387d56f6c314021342140640f48c64800e5f0220f6d6a752aa05603123f39a5a155011f114f318869809718c7fda8f70bc249b8d50ebe0acb74294e0353e8574f1decd755b65037a71930e51ab0a163f123984362caa49207a01a83a903953c2b0a8d33c261b132378b78ff19e1e261907fccb403ce81b1e628cf3a6046038468e870adf924f84518e5925c2121b89f8ea6b8e21321d1d54ccf16c62bc1be03445e93e4e89cfeb2daca56ab5a38d52b1289f00d8b9b3adf5fa1a7218fef0ca30316091e381ead08b6ae9708ea5af19445821b494605926098440b166a6877108703e08f6e27f2527795221ae8492a2a6a952c0e5e68d2292fa90172f3b454916fa003159c67ce2a7581c5ab045e0b62745cd83274edd7fa73d705e5d36fcc779adf1e03929fb2cab8a34afc1605532adf31ba0c8e3d4b806ee0c738a407002920711e2e05581e037e7a83bbcb63a325848f4f8f049fa039aa068a39350d92178718b35fb00c024734443b55a228e003905982d3bc98b3ad75d5ca7a92446cc8923fae39a2352245000f9d3e9dc0f3ee03bbd13d463ce2111713bb0d6ad117b0ba991bc32336d501e872703c4ad6bc3c9005581e03af126acf228d55e859df665030a11405938527bf7894748cf7ad46a14007011bffffffffffffffff038882367a208807be36c803d7e98d21d715bc8d795f2e53574732c62641b5ad2903f7363f896cd6d85fcb2f36f99f890a88e262d5b95eb767d121d8235426231cfb05581e0382d0f1c40e30bda9ff6c45473c1da1d9947e05763e5b015aa4240bd7e0040105581e03b00aedae0fc6e64f664f84cd4db432822e130a81a4e61863136e9c93800c06461baff03e337805581e0305dd484da4b4139cd1703d35b9d6e7558aaf9d43f638a82b1b1d38cde00c014701045a49e2740005581e03d21197d03ed04336d65a3e0709ab824a218f9a75d17f368fffa3c2b040040104590b4260806040523661001357610011610017565b005b6100115b61001f6102a1565b73ffffffffffffffffffffffffffffffffffffffff1633036102975760607fffffffff00000000000000000000000000000000000000000000000000000000600035167fc9a6301a000000000000000000000000000000000000000000000000000000008101610098576100916102e1565b915061028f565b7fb0e10d7a000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016100e957610091610338565b7f70d7c690000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160161013a5761009161037e565b7f07ae5bc0000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160161018b576100916103af565b7fa39f25e5000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016101dc576100916103fc565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b815160208301f35b61029f610410565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b60606102eb610420565b60006102fa36600481846108d7565b810190610307919061092a565b90506103248160405180602001604052806000815250600061042b565b505060408051602081019091526000815290565b606060008061034a36600481846108d7565b8101906103579190610974565b915091506103678282600161042b565b604051806020016040528060008152509250505090565b6060610388610420565b600061039736600481846108d7565b8101906103a4919061092a565b905061032481610457565b60606103b9610420565b60006103c36102a1565b6040805173ffffffffffffffffffffffffffffffffffffffff831660208201529192500160405160208183030381529060405291505090565b6060610406610420565b60006103c36104bb565b61029f61041b6104bb565b6104ca565b341561029f57600080fd5b610434836104ee565b6000825111806104415750805b1561045257610450838361053b565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104806102a1565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16104b881610567565b50565b60006104c5610673565b905090565b3660008037600080366000845af43d6000803e8080156104e9573d6000f35b3d6000fd5b6104f78161069b565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606105608383604051806060016040528060278152602001610ae660279139610766565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811661060a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610286565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102c5565b73ffffffffffffffffffffffffffffffffffffffff81163b61073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610286565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61062d565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516107909190610a78565b600060405180830381855af49150503d80600081146107cb576040519150601f19603f3d011682016040523d82523d6000602084013e6107d0565b606091505b50915091506107e1868383876107eb565b9695505050505050565b6060831561088157825160000361087a5773ffffffffffffffffffffffffffffffffffffffff85163b61087a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610286565b508161088b565b61088b8383610893565b949350505050565b8151156108a35781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102869190610a94565b600080858511156108e757600080fd5b838611156108f457600080fd5b5050820193919092039150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461092557600080fd5b919050565b60006020828403121561093c57600080fd5b61056082610901565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561098757600080fd5b61099083610901565b9150602083013567ffffffffffffffff808211156109ad57600080fd5b818501915085601f8301126109c157600080fd5b8135818111156109d3576109d3610945565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610a1957610a19610945565b81604052828152886020848701011115610a3257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610a6f578181015183820152602001610a57565b50506000910152565b60008251610a8a818460208701610a54565b9190910192915050565b6020815260008251806020840152610ab3816040850160208701610a54565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200b5100b6056e5ffc17e66039dcd723596f9fe3a99358830e95788eba2919cc0364736f6c634300081400330354d97a0268af28d0cce1b0227678160997c82c12cbc50f0f717a9c61a614c429034ba39ee2fb10aefe871eaa862a1c2a927de7bcfe3226ed84fa4490bc630b1e5f03ba9fe4cc523bb1975f9b89f5c10c2df01830649ab85bd555c4e6348084ea933b0342c6e6360e5967f25b0986879f42fe1f23c7fed840d14e172c0c61150e7e5097032b4254716014729789e65cf93124cce9a8d403d4bdfb8ba7dd356a4e236f73f4037a4fab2b17261220f9b79f4818cd15145e8c1c6d4c90c14d58f669adf81369d203727dea8c9194ff425d13d01e3e30b3a9a955e3ba19f7e2eaf2b411664a4ad2b403f0a4857432c1fca02a2c81972dd77468cf8bbffa69a88458d19d542130dc0759035c8d72691cd8af80eb24011b6259404cbb1cd955416b62b6e24dde4a47870f27032111c00eb5ca5ded8f6e3057df30c59c68a789ee7b670487f1f7605d999e1e3a00582003e6a35afab5bb2afdff495c5f703f04403a5811863ea64ccb722a21c3cb59e048017655ee7eb7a0fd035600305244ec97da225def03171eba3f60d0e941ee3627ba63033decb480060303e7c6087c7f798dd5876c8ea73e351668779f103a756b570d4dbe69632cbe8b0000582003f75b82fff2635b12ebe1a2d8f260151127dcf97fcc33ce7d6bcee0cb258ad046043e47929e9f03ebf917c1c130a9b50b2edbbaf03d74c5f90bd384e3c745fd23ff93ac8f7f042d00582003872ff4d40c4565cbbbe1f6c80c601798a4274e0d38e5b5986f28ef054c2400481be69d0f8f54c308005820036d377a4f770c372135f74581ffe14aac5c809b95d3aec5ed3e77781f570f905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0306bfbf07f8fd59282416440abfd24c9b3a48f765c4dd04a87db34488a7620e1600582003a366fd3ce95a642342bdac907f68200b60bbc38b7d28ae54c4102d3a1706e04a0156fe9368a1997e7f230336c8da5a7cbaa7dc159a936e015f806afe7d56a8a08af3221644f418c142a757033644de6bdfd83487d37c14b7b35b3023221370d25e23d81b135c9781c080bc2c0393cfa7d9dbc7b49842f43a515e9e959c15851ca9b4b682c178bb4109e2d220910219ef5e03b2386af23adef68f6c82320dd6ba1f0f8bf0ad354ffcf352a46218ece0c922cc039ede851143726eac587bcf8e1f6251adf3807d68c27401c72460b175cf142c6903f55d2326c1a7db1b5ee0b4ef614ea6bcabbecd14c17d1cf1b8056dfaaa4ccf4903f3dfdf55267f62dbada7c2ef047ba68d73e4586fd8206522acbdedcdfa8da68603812dbef5283366e78975c1d7642a50997961dcaf6bc0457ba662c391dd3e180d0381ec64c9e9bd5ff00e7d04d29999acd30f6480e1057dbfda0e439d77f01d2046036379b6e870b2f7b199fdf28968bd483c77b2bca828bf0f7ebd372f2dbe4ba2ce0219ffff039b4a4a5a4fdf33ab7f87b4ab7663afb0c2d3f3e61f5880827188e19c633e086e031862bb161f6b6d0156820b63568894884989d3b19f6860346817c344af508957005820032a82859ee0bae7ec64d6d4604e5cdf991b50cef26510d563f20bbd2f10aa404701476b081e800003a6ae75880229fca2ff35b9fd8b09a460da9242527dcd28ad39ea731c223d3be50142007b03a7ace1d6ade15ccec17bc85d3d817cd55925006c131fca0b55d7eb81bd22c60303b968ed3be45b464bebd955236eb7db918f415d54522f53a14b79f383cbb1173300582003fffa990391b3d70b2f9bae740fb0233eab052bd8a62f3fecb0900ac04a19805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003ad82d5932237332ad494e8393f1f6c1ba2efcdb8b927ea46647ec083badfa047aff24c9feb55d00058200374568ece009e51f906aeb05662a65f1707cc9fe126d095b54a394705fc23c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03c1158105f749ac639c1ae4cd4c12cd35c890b6aa7100777155edd90c4a79319800582003123cc3694ce8b859e8082281d52a6255b76c37bdddf01ee5fb164f234046305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200382bc5bb03c9b204e1c3157b84e51c129df3e5e2748008bec34b9b5314657a048019055aed0cc90000058200372d8e16731d2173972645688807c0665a2825754cd56423afce88b943cbee04801704e1a7f610380032f394d2b6ef15dc337832386d9814f75ee7e3e1c31f3f8bdf06ea7f0e1525f63005820031641528f00161fafa69af937d5eb6a77a99f78912c98f64193af8a8a52abe05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021977ef03655d11f7ed4e4a3029b97ee92c51d041f556eaa3edefffb14e956cd81ef9dfbe03844214c735e4164e64320ebc70696d24a4f9f749ab419449450858efb7098c3003ec328243235247420a92deb486c43455ef3df5ca5eac624b87c4584986978e0a03d968c654dd6383996bc357584561362685d7cbf1642c54d480e279ddc82e46b20376f8e3ffe677a387f9fac2e42b4191eeceb34a22014a5ff2d349142ba53229bd0367bf581218e27e07ef4326c5e0272aeeca981cc92bb4fb734363cfedd5119e8c03cf6bec80a179b17ae2ac7ea624d903caf7ed37601b441948d72c1e5a141da435039246a954e63a60b4e3d095b0d7f6bff0d79bae255bb5c99208ac6ea5388b56cc03f185d6e2f0c0058cbdc9d1d63589aaf2c8cfb36c62167135c94dbbc876d9b6c803005d593b755e754a6ef69d7bd997ebccd0e1b02b9abd9735c36f62dde2e9eea403d8eac4d9e8aca7e2bf88a887d5204f43f506fe95cba48a2e83028cb4c15b89560303903296e660db1d3b93cf85688288f2c18f3c2d452e44fbff2a99accb85619603fe8318fcaa3ce5bc8dc65cc6f0bc3a8e3ee9bce34d6a4e51617190cdf553f9360331d4ca9754262b26278a96c2e0b00ca6c405802de01ce82eb50c035d194bc1800219ffff005820030c9eafce221f37f335b59582aa2f278d84cd53df2693fe5f7c45daf24a060048039726920238bff1005820033a43b30dd463ba41d07a5f48288c2b2ef64f1d22eb43c7b98581910fd1a5a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03596d55f795b4d02e9daef9b6a60c011bc1f97e88a4acb42adaa0b5c948af710701420095039390ee3602f3fb99ea5bae9164a10a3ccf630493749d9b80af1abab9c172557900582003068f93b265f74421f59845455996248dd13b288e5033f2f400cb4ad73237d04894ca2f41fbf7d71d039d64eaffd387301dd155496d0bae524bde0097ebfca2fabeff840c3e001bd58500582003419847d4ebc3370cd1208c90c644d675407a1d04b11542c3b354352287e4f05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0370635b3e85a6455107eaafea5fd611fd53fd6bf626cdec5d904648dcc95fba1103777ea229bd454697624724247770da4e39eb9c13a374d77bf83c1d56c835e1db02193f1903d8e2ddd22fde493931cf1f5397e6c17bf5b23463813c4c45c9b7da666b42b8cf00582003d58fe5d510ad4ea65ac92bd08318a27c0fc13162fe264c0edde10fb446a0e05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff035e5346c9af31e0da3e32fda19ff09993fda681c6bcbb76cbe6476d6ccd1e1d730329805710e0f464408a3b9ddf3031b4f06ff58dcb6224e61b5852f13c4791581600582003b3a2e64a4b219117996d026da2d2a6bd3ede3bfb11f3a2feb7c7f3ec10fa4048015ca8c2979d2a0500582003dca026629342712c8fcb9b0fa76064873a2cd7adf40dbca2d2c989b8288d005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820034389da2a150df0be1676a23765c3d4631b44bfcb712c2daee52538ecf561d0410100582003aa8197d1645ffe5b4241b96e7bc9fbb66c203fa8b3085cef959f2d67363b104605de056913680058200355d6de76298ce734d957341b4e5bb9e9edb43d668ee9d3ea8e17fd33a0b9e04719eea3b8a771ef00581f024c0dc62667e1ab7ba1afc0b02aa8b18d67a8b73200a1c2a57be063e14189482ae5eccdc7cbe21000581f02130d893cdd72eb11b1570f8a805ffba095e171df1c02a0a8d4b34dd4bf165820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f020bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d48154c26016f1166be7b6c5611aab104122e0f6c2ace20219888003b564f1be32239d761e82fe2074da2049bbccecec178880cb03c79f25b112830e005820039ae6d9ae08fe22bf659312c2c40e9ee70ba74a193d03edf2bfa6ec048cee80460116a8daa7140219fd33032dcca47ff132638ff0dc3d51de625f1ff235ea12390fc6a7f1171d2549dd1dea00581f025df80ec1ae6ac9100e1fd0ebf3246c17f5c933137af392011f4c5f61513a582031000000000000000000000000000000000000000000000000000000000000020346877756b05792975b7d4d37477bfa0a8c5260cd77af0c17416a805b00b471e400581f02f03ee25317bb76427576f746530e9ab444368a99ee83c86fc864c674b9cf58207fffffffffffffffffffffffffffffffffffffffffffffffbcb54eb379f279fd0219508003b81c45cc9c0564f1f7d3344a3fb19f947cce9d12a43c9b6c9d04fe9f0f846a6a005820033819bde326c05d95aa161ea15c1e19c77b1d2dcaca741aa92f376bb83011c04834177d1d5466b6ea0365a88daf1bcca185d173174a955621a45fcde9376fdff1e4e54d0f712760503800582003d5a49284f566902123f2cca32a9538fefa715289a7fd0249ed989e5d01d8a0480d220fafed5eee9f00582003c97914c1dffbffdfea29993415bc257e4a98f5ed9144e8bf83e7d12fe5d7405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003c0e8990736d2fa2831a6f14f1cb0ff4cb4ad3a4b53eff92b850c9becb523304803c2720719849eb50315d62166e317207679b40a84e8f23eb44610c0333d570f998e289ca658a1e33a03320db150aa42a725a203a173da7597d8180e438df3935d0624b0c7afead61391036b633285d54e587e9af782d6894f76ea3967ba22431f2bb0200ee4287801692203c3506115478b145938e0805a09d5bb19e31490557dcdc1ee76cc54c5c5bbb547030db34aa630c040b330edf2a3eb5c6302e864e4deee8015545b7abb74525b7b5803cafe50d30a2763aceb13125393785910fee24ac99a55f9277a65825aac2d6f37005820034306179debf35323b7b12d3eb4b18471557df6fe1ee02e5e2119c0117b7af0472646e71126a3e10219fdef0330f07f5b90f1617329511c2cfa70b17b74fbbf2f0b16225d762fc5756c6a20fc0350ba5e235e4105b504beaf50ce3ea911646339a64031797cc379d733bc75d6a9037398cd1b6461922f030e651a4b7f288d5a3346cfe1ca1d4316a7388268de841a03cb0d44de0198a3a66c8d2a4e72f33d8f154c4f2219c1daab9b7a866057e8376e038b07caff35e24679a939ade841ed5131ac87fb81c81107b22a891b3f7ebaa9360355d7733a26b08519a0feae858d72023309e2590ff588d83555c0d60edd8d27f803226f48f7ab2509268d434395a456e4c5e837ffa6436220d02f4819033afc1e03038f46b82b644db629f35b32b60950b4c8311a656236c8c9ea62ae1f568cab13a103319efa74da708aa7985c8575076e9adb28d9a7dcc42cdcc27d33ef107781462f03fdc55a2e9bc83edd4eaba3b80e4b5f4e71196107ded27ffddc7427f2c9c96b360367f794d572ba78501cec4776fec4b9fd8312b2004e472a0721a33d06897f3d950219ffff03137c070cfdaeaf0c64fb4b77ec97cf3411e021ac52584dd467c756e2350f9a7603bfcf72c55339189f3a66d42c584145d663313e67711c9befaff30fb5eafada0a036ec9bbfd13bf9738411280acc5ad6b52bd2338d5c16705eaaeb19ed3cfcb510303acc24c690fb5fbfc9ffefd324f133dc67ef7027d1f0532779428464c0a71308703d73ebb13514435d5d18c4bb8cd1bfb074790332d3f45726829efebc1e2610bb203f0aba226eb384ea2cc3025e4ffb7df261c4526d41b658ece232be1b757f37abe034200d854f6c455cd679fcea75569efdca5071f64e5672097d9a84f9fb216adb1032d37dec4f798c7f3f528dd743cbe96184069cb9e7cdaa3ea510ff90ec7ba31210380e5658235f683bcecd8392a26978cddb9608e33eca9aba2c25f17285f222e7e039f20e2ef5a6e8ad407f141ea1cea1335b6976d06d2cf193d5666610de229b262039c501ea34f3d5e92b88f189ae3e2dbac3f6e44d18963b625fb7056a25b8644d003907962b1b4f168eacfce6baf843fb6decc34bacf8ab0e93fd19f4732cd2ab70803b3d75063ccf6c9363d3b1c1a720f4a9d65e9396d323976588bd912aa2d3785b8038ea2f248be01a20a7b764434e2958a8c44017be39e0a60d397f3059296c5a033038ea49f8be5b76f8333cfdcde097f1f5d832f4399ac65178e7d05343156d8de5e035775f6e7d34e7a8df3a7113e188da6f3b6a03a8da469cfdb7147dd122da36e4303357eca6d61a19a0165d7ede59aaadf8b72f55138b6849d30f00b44b7020eac8200582003e69e3d5d1631cc78c4641c82db32e007b7bbc20d9c6ef065b23682048ee07047aef3489ca48a1500582003260bafaba49a99bf4e1534429c7e8fd07938c81ebb471837082c30866137505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03986c26f52d03cbe90c038df79fcb02aeb010cac4da28e9c37dcd06e136d78c270325c762dfd4360b0167d8c9d4a7175275f90463cf25c32dfd467d15c48e63b6b500581f022504cea6c0d451b5227d1e737abda311dfd7de9bdae83678f54247002c71410100581f02f2b8f60da87a8e35f526435783a5e9a754416532a8aac439ea1310ea20934746206e6597107200581f0225e808ec5797d621fbb3b46e7690418f008a0c1bc4a4b790041f50353080490a34e16ac4627317f6021931000362155443f928e76ff0f692a700ea02579f4d1d408fea6b5ff9154c2cf32f3a0e00582003524cafbfde34e2c880127fdda7354b3442039ff4d2a6ba1c3c5a44d303edf04601c8c496153b00582003a36a2e7ed156f1808c97305829ccd524c444fc9be614ea1562e298e43ab4d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff036d3afc1c2bd8cb623c0326c63509ae8480cc7ef7eaa39423ba56483ef87bf1ad0340f47dbe57ca2256f2739abc6d6248cd32c93e76c6f616a62fa409d89607608b037b48618388408e5c11d68798458e149edc815551bc313b38bca681251487df290219fb6f0219ffff038c9e2b01e1830197c9e5bdf389d403469423af20043ace6954a753c800fb26f5035866557f810770765ef16dc6daf30cbbabdbc42c78286411709b811d21df22be037746c64c3b124982a4ec6efde0924a68036d199ab8d3077ae41de30f16443a3003d9694ba92cfee646542d3262cd9ae925378adbb83b363d73dddbf74a2ac1efef036dc119cdf1ed742cf018de90fc628e771e7c07c85763c01683445287a3fde2050058200319595da3c8f77376b6ddb6f8fd21fb8415fb92fdc1c38da6d59a0bd2a80330480222e8cccb44f771005820033c5d44936b70b0bb06463ddf9c542d9fa8e9b38038babff9fec1c2ebd43340486f27194cc46928d3032a336431a62afb8aa61df45aaff51669866f745e4e934d64ff791ebdabb2f5720058200344f9ed45e96d5600884dfa1fb042683fd97534cfbdb86bc2c76070cbd730b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0371fe960bbce2802b00f626d0137c5ffeb9a9e2275415f9ddf7673832135243930336db583b5003f3b49f6947915e3ed382a2082cfe4fc3bea7eb03fe427e90cd64005820037d5e4d3df0bff49cab834eb9719e5b433c05f15609b0e64e3bd542cefaafd054fffffffffffffffffffffffe7046e6ea65b069b203192e55d6be0b856b2562d808c4f56e78550c4b1939a6a5659cf11536543a9a54034ed174c4f7ee5bcfc9e603cf96ae2da7ffb816b926b4b2524385bf3dc9268bdd03607d62fc5f79b31bfe25dccacdaf178a7b9f43db14dffbb571caa36bb25fc0b60058200320eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d054c9173bf8bd5c1b071b5cae4122202a347b7eefab0058200373cd1626d533ac63f73895fb70deedb50ba4b1938f18a372355eed319ab4105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03ef24aa95ecd6837f668b713f3292d325cfe01420dfe83bba4fa3edc69622254703460a8a961ff891df86a16794ecc4870ed5519b03ad816a346ba891104892cf6e0219bffd037e91ff205169acc9c389fb35b06d971bbba3bc3daa06701cc932847e66e3e8710335d7035f2b1ffb9d1e87a60fe595fcba9f4c2434d584d71629514ae6d5f7ccd103b821c23d81f55dbc7c5ce4d30138e0f4386fa05a5fb0632e06778090f038d96903625d146300e1bb5f10ccdaf8a897ed01d825c402c4f30a165e1bed1564da1bf703b2fdf08c41d43e27a80623bda229f274318d0ca8043ecf5fff27d1414722d297037d416616fe59ae114a83459598b583fb5b65ea974066e74bc0b68b924c17dc3303f4177ac6b38117cbac170b9ed9da261ac8069ad7fb07c79918ff83b28c70777f03a1a7345328577651c54e00a1044297d5b14521e7acf5978ddd01929738d0094f03e64d44c50d82874ed7808873d0782cfb1b6850892fcc4da322be3621e0de11d103892544f0438d583029621882cfd3516f45fec0e6bbb8322d99fc8f3aac29c3d00219ffff0325d16bb5f602afa70394f008adb259e3ee206d77f9a602773e8a60eb26f726b603cfc4f4b86afe5d33532c76e5b17ee4d112c38d9dff4d054525ab47009995503b0379370a5bb06a03dc71060efc41a49eeebf12246599889532647b795a246aa79403453fe03a0975bcd0343be4338ec575ee06a87c061746c2d9b1faf0571d77bd880386bbf987af858e0de840c6f548f85296165c6ee4002b360a77b75b458be396e900581f02e5fab48215c780b09bb5f924a4048d59d06d3b93cf96983349abab5fa07e446de8fe6f00581f02ac6dd7de6b96975fec380d4d994c4c12e6a8897544f22915316cc6cca28058206d45544800000000000000000000000000000000000000000000000000000008021850038fc216b494068f0bef3f7b465e736d2cf0873a362606248560799130a26b6b840306fc35d6ca49ea17cd102b2ccd5650234a06e0088245d9119d6869b8797e300700582003ff8da4ce5675c46f857e14b3e947f495b4952e00e4b929802ced4e85385060470109060ae509c50058200327939a1a9eed5516e6e86b8186c3c5c95aeca7020fb0ba9289eb401387ae205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0356f668fce0b9b1458588c8c858a2f4366a5dc5d248db0492cd3667073b23162701410c00582003b265fcf28c873d82008de10741d10f7286fb1009422c0a13f242723b5f3ef04703306be0b3d22100582003e3384dcce56790f067b35248578ea4a085cbd75fe2a01b6d1fcb8829ad5da05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200387425365d1baa5c2e0ca6099fcaa7fc2062c31ebd36105e10b8617e22f38f048025706488f5c24d80399e0fb0667696408029792545906874dc940190be987993881a33ac31c292dc701410d03217611bd0cffb045cbd0f58624bc179ab78a6534c8c99a1255bfb3812710527f0219eff403ae41a0a7ac191c883a8d524439a1ff2c12e92b05805fa9e12b18837c7670807103337b2eff7c09883e60f42db090815af80893dc74a2da5f91d4aa59f7600a6de003359d5e519b49ee99b65132c2391e7008a7aeeb3fd82024829c28db8d3bc3067003b216f11a9ef727f7895ae173a5e59d802cbd77e42ab20ff4a3572f99e284493a03f31da9e307f2d0ba797e89a23f5c2874d6d34e19d98c8ce9446ee9b71f99aac903df0963cd02a1d023a2eb763ed2c06d6161eb8b51a38ec19672c49e558c00e14803b7f80f1b0af8bcca9db4e6fb15e46523cd254cfc8345de146ac717255ef30b8d03d8cda2a06cca66ab5b4a55544cbb685f5ecb4d27b96d5e761802ebd5f04be214032812a8a5800b9e73bfa20c43b0fcae72cdf287522d8ef201801ee9e9ca6641e9031f9195b3890f92e958b5f2e0062c137f435f07528c37fdfbf1381fcbc450228103bb76f3306ef7a65c8aad90afdd2d55fec836539d2f887d6f321295c518f2a9e403675e868a0a2d09d04c9c2bb6553232e07102d3ca795a80090236a5dcfab08bbd0219ffff03852618112a72d60ac32612a36bb0d8e71cdbf45fb3ca07d0c452ef6b0323b161039070d70d3ce34e29b7902c50a6fe32f215bf8b5a76e3d6bc39ab40caacd86ab603b12faa51932b6adab012ac40b0cec7a3fc4f9cd815be30fdbe49cc31fecdba9803968579f1889c953da57db356b2db746a840061b120700a001609e289afeaf4750346d51f2b060cb6b26bfe859bad702177c69c3b7378a833237637f24cfaba29c703829392f39a3e12f77e2d1956737e903c947983a42469b70f0ee3bc3e5ed442570362bbe7f6f39ba266ddd7c2faa48d9d0b52c7d0bea69691c16db4d4016f1dfbc400582003c93af124e8bd454684b581f342779dcbe6fbb8ebb06fd088a520e8c60eb61045023090ffde03fbe66539c465ac78bb4ff2cf24890c3ba01fd0b0d72c66b8531ebfcc40d391ef005820032baa89938a4c48f0d37417523f421c31f500d634743eb1bbf0c4e30aedeaa04902e3e60ae11ffe01e803a3a66b886565def4ce35a57f426f3d81c5e922768e2b8a6fe381ded11db540130058200369ca4a97357517b0285d9fba192e907dc8e3ce733382124437099d076c9fb05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003cd60a14ecdf563803dfb526c941f1f6bcb9b51bd7c369c432b4e7faf2d82504802e24843680dbfdf03bb58b7c77c95127aaa6515d085a516086b943901c2fb6a1807c2298caeedc94900582003e94c02ed17201bbda07633f6b739306072414613e10beac429ef1d964900404101030d20e02971739f2dd22b41fbc7fe67d86848883bf868e6aed48dcf600b3b88e8005820031ddf3bba0293316563221e0174dac8152005987da494204fb41c639dca415048048436cf90c3b53b0058200341ea0e95f966b60f171cc707e1e66e4fb01332c80ab11a493cebb47c3489a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f028e17d9f904c4b1dfce285d44ed47ab0c07a3763a0d28f01d5b38de13b7575820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fb4a631cfdb3dca6be84699b0219400203cf9a90c3870235fec5bd1710364f4eb4319cae1802cf5b896e45654f935e2f290399978446905e3050835042aee59fdac856e4dbf3c77cbc65c50a52b7f4841f4c0219bfdf036d28baadcd08aa32b25f64a581b084d5c9c6fc84afd2589316610c8c97299f3c039384cf2fe4c6cb2ccd476c41f6320c2b33a28eb21ab071d1709b0df06d785b1c031845e30d72266bd993d84d60d2d77658551be8f3f716c81abc4cfec5e0a5ef2d035326998c49f73a0444a0840253e449059553ac39b22b96a2fcdb0c11a061c8610333f9b5fdb760e919578593d3f1d37307b514cd1a5b9204555aa2e6fd4564a0ac03278346f2fd3d29aaa3c00a990a8d00d8404f64afaccaa52bbf34e1a58fad4c130331a75db143a39e5c8e77dd1c2837faa830811740b18b494b5ab2da4077d4867e030f5919633c82b0159fb87e59639a6ef765c69dd2c1ba9325aecb194c3ceca1fc0219ffff033ee9a43c5e0941fe65859b48baff805d40e7996209919e684d677a1e1932047803a3a19ecacc1e0b5e6cae272c5fea0cc00be896f9e4433558fb98afbfabe6461103e0bb91d34741733b55b6f775dbebf14fdb59ec7e65296ba8690faf76adee910003525e14cc869812cdd6f6f18267d3f1a5a62d5fa38b20e15f184c6d5ea3be1f690341f9766b132217cd6802ac0880dc3af7ce48870ee23e586729b5eb526e9d6cb80219ffff05581e03917055442de8b9507bd4b1b61dc788b261d277f104cde0d62189a9cb100701190b4203be253d80bbb0b32090371657fa2a881be7e74355c1a7c9347ecc9af1b25f4659039bcf93abd61053a248c2fbeaeafc2d34aac8d230b36fa44c36ec367dfdac189703161179b7d968f5660188eaa494426093fcae6b978e413518d92d76142dd211e205581e03edeeced410035e58f2479b3b04892d3067f4d035f53709250f96719d400c01472fa0d2888e3c000219d7df030b7dfa3c2f3402d7d12f31a7c110a736016f578781aa09b878cdd7838221f0cf0219ffff037b4133241dacec98930e75dd9ac8e4b8ec24c7765c1cf5c58a732206f2f14014039ee8a252a388c159397fb741015c8a368aefc0feefc0521e36da20c952e8ca69037b70d19eabe900e2d5cc1e6d32636a532cf117406b0ae1b9801da614664da08a0219ffff0219ffff0369db589a74ae4c77526f1797defd759339925c1a6e518af5a8b17271088955da03929f4dd39e4306c3c4907570e752193954c9cf08139de0b78f2433bdb1e293a603c4ca8578b59dc0d368dbdb80f04735018445b89bb1950a60496b925f8b3866d10303cd01f2a93b44aa6d822734ce23bac9f98ec8deb32177483d1cf0f824a0a417039b50517e55ff88e5f847150dc743eb7cea28828784d348ea6525e623d0cd7422030f57306c172cba233bc780b7520ce15eceec854adea196429b57d391351ed42003506ebc140bb3bbd324e17040dc456bb99eddef6bca2caa5d9d7ed7e271105d0303926e9d16eaa36d0abf89ff543bff23e72dde4cb414893ba9f99633a7d99d04140371cc67793c7b8f6b7cb1218d5bc60a9038f682c73dfc0409bc2071da57a0eabd0386f222ab524dc93c206f7e97cf170a9977e7d820376c0d684be8a22d29181ef9037ecb0b2b754241660524cf292cd6d5a3236b10a996248112e871d8a99c1a9c3c0394db3593f3bacf5e111477837555a4e7635b616063dd2e13d4ca8155a69778100350dd1c3aa373f0814b250707cd984bdf9d1b5f649bf7e0e5a54fb7bc9576f57d0356b6ac8b0cba21d1d20f3718b53e283f8c624b9348a4e38d68c603b953e541a7035d5c82fca66b6bbbf0551671be84481388b209ff9f1dab44b540192099ce22ad0302dfe41e6bdcd9a8c20df2ce0bc96c2790d828a7e138cea21c5897e59e11f708037f9ffc37c7896ef96a11557f4b00e7ce5374ca476c182b6a878d50f1c9fd6ed603afb1163a1d795e1d695d0d139ea007fdd8f7b4c3c98831643e1a34c5e54ddbd003f9e63ef030854b02345c3d69316639ca71700ddecf6221d6d6ed1780be71d4700356dd42d410c03a6c70e9324824fafba6c2310f3efff14eeb9167de37f1e2136303cde55b4f571f00bdf485547d5219f5b0f5cbc57ffd73fa4305a58b0a7c94ba5c030af6fd910d1a9fcebcc9dbb173c4d6df5a7d39565a1912cf00f0efe8e2b3408b0371aa9d502ee81c9d3aa8c5bc2d807dd21876a2f3649c7115eddd98686d29d2a203ab2bb113247dd08bf7f0226fb0e14143ddea822589f26b9cc4ee2a231b88be4e03c0ec50f8b29138627f25a9889c82856363f0f893917033cffe55d1abea4295de030c6af76cfac411b9b6489cdb7d6f1c394b3738d7086c8067e7b06ac3fbfd4c9a03e94f9130bbf088522db3e9edff2d711a7b839e0723c0e82250f262f21bbf727e032125102a6f432460111f0ca2e9cae2fb4bb70848945cdb468646fdc9d6586f44039540c74aa074383d1794d6492d624edede9b9d9d5bb53e87ef46c82fdc05835e03cae41f84e7cba2bae2ffb82a4006e806cbe7affcacbb0921eccefd80fd9b2142037a6f76f0465bb874380666e9e73feb9f487ceba319fad99ffc35616a4aaf050b03b41d6080064f7ec0ca3fc87ae9d550fa61bf6141330be4b929998c3c50fb7ab903a70a0a69cceee2c1aa67fa204aac571af477b97ab636a9255a26636fe765beac038fded9976890826408f3c163c4de000e48c4a5d0fb72912c7216fef9a9c1518a036bf96891cdd40dd5db9540924aae8f0e7006d670a9908b828c857a0cb8d221eb0314bcd07f926d10ad6afd403a78e985fc4a68cfe4c4baba929feed1d6a1749a3305581e03e9b10c6c774800f694df64aeba6af4926b4fd5d76ef88649be65239ec0041203be702ee40983d023eee31c8c74ed98c462ab09d4dc28739f23f8de5d27076ca4039ac268cef94ccdf540f1fb8d11813e4502a947daa314d95cf93fed627d1ebdd401410605581e03dac0174219eb66b848692953806d328b1dd10710ffa89cd5277e563830040105581e03025d570b7d73ec468d98661d74163d4f30fb6f4f11dc7e75a2332477900c02466634938fb00005581d02680706c8f24c333db90b5c65d526582d10726e3b67e9a362f6e55611040105581d0314620babb1afd831fad772ac6621e9829fdf9f8c5fa7a664934c74b0040205581d03a41939b68556358af6ba54686688f40fc093b1fc3b498c5b960a01700c197061495062717abc5a21402c02192080021904020368bded5b127d5fb6fe9a7531d6d629135256a03ea7ecc18ce5bb68d6f0405db305581e0346062e8108cc253a9d8645773e00bf68cac7e5dc1dde00ef2960a188d00c0246816de564b2000219e84d0367f954f3aac9eea4fa8c658e7d01773b28614e2d96e764b9f19c64d7673d47e30219ffff03dc276ece5250aa72ea0280c0d021859b9094d11eec09cf896eacce875c44f09303cd523ba5633cbfd85122e026941fe0316aaf838f9fa5010a76ebee38d8c1879f0219ffff03ac3f0b1079ffefa873bed1f17616a2e8fb82830688091994ee3709d348df5ec103752a26f6dca84a2face863a9edaa2df7ba57604c1a322bf2cb597c7305d687b80360093abe0cb4bb9e1d0069b0bb4bf2973b7bd218da20b7cadc8e8b0b32a2b23d0313c0248e7027056ea8f0f6aa23e33c95c8f264d578d29428d839f904fc852b64033ec7fa5e448da70590f59255f1afb7a7ab5284422f9235a82d4be08b83f532ff032fc7e3462b1ea469efb940bf0a297e2dd025672487d2d0139f49682098c4518803d5c1b8e047125e6ebd12b9736fdb7caf22d38faf6034b2522d697036bc7446e903528c538a75a32f4022cf8d39598370fc1cf1c5a1059077c7aa8be2c4761901ab033223228cb24762155621e28e0448cc37de332a5856f17c55364874855d4cb8400381dc24f6154c365c3caf6ad0c0788e3ec4008ce806ccb420121aca5d4c6953c10219ffff03946cbe6d09ed94c7d5b75bda34293465b10002dda9beb983ce835aa6c7e935b803ffca1a2d5a82994bfefd6d8a043fa4dcbd0da2008bd69b89cb74d4437ec76fac03c33727ec911ef77cd5f7279fc46e2ca0a30893137c2417841ecaa89c627c4aca0219ffff036f2bfd7c9781e47c9cb4c0e0cbc4f2a07c92f3ba1fc7cdcda96950fb72938cb803a07858bf7296048c7ed1e53384631ece4a61765e2879ff399d04be12e847e1110349813a8b0926b190a80fbd52ecdcb5b637e695ccb60adecef70e90128908e05e034f932a2fd5a69c5d21aea4303bc1d4d3b1f2ffd012d0aad5cfbb62b29cdea82d03a17ed080486c66ebf8d7fe0ab6d619299da14685369d47ea1df83b9ec7cf867303072850183f2c64a9d1aae88bdd29cfb00a8bad69c5ccf1e97fde8fb0c48fa9ff03ba06e639486f91e7366ebc65a74cbd7267cb76b44d18b708a367de06c15ae252039aa326fa1f398a040762b7a3b75ca81d414f84eaf43a7d3438a3ecce0321c67c03156a3dd859698c08b399824a7c451a38f8e75980c34a036d269ab07236db973f031aefc8adc58c319cc8380080646452c45db92193fa505855326f25438a16cfb90323e34ccdb80ff5e956fb1fc53d4dff5d100e4ec0878c509360d8ab6a9f177ddb039f8d046cdeec61c0c9b33866a9e51055891098db9ae99e204e177d9d155265ac03d0d402898d75f017a6b097a4d1eadececd1e64699b0b01c15fefaa04ed77e7ce030f11f89646c858c1423045aa190089917e6c117c3f63af380cb0b025e3afaef603299b4c1f819ed3df5574a97b10d22931283cf2234a5c32f62966a289100eb0d303a6e2c83a9af2f5f4480bfddc25a51bc00d85f3a2eff9615ed9d3d91655e54dc403cae2ca2b54b229f2f20c33e6f8c900712d047658394c85a7eeaa541997542a2503a2c47be1018d766eb71da1a8115f81a353feaf15d19646a01d193ec39d7558620371154f3c53a04d21e71b7c19b747905d8bcbf4694933cb8db681d97ca0cb109c03cd3de03030d0072429c934ad79cb75c8d40da0ef59254e372cf274b92343289c03869664610730cedeb3ac1ecf15e22d3ce38ec3c153221db22ce2dc596d2d82fe039cff8186c750690c3ccd7ce7d624a1afb3954d6ac93e3bcbeabd4d8f1393be1203bed9731b716dd054c8f86f2f72b4f32fe7a4e3e5b3d0a4149469f2ea8f615c1c038ca0d5330c1d62492a42656096609e102d3ba03a1d5029d3efc2491baa58363903c2b29df66cdf11fa958899c94ae0d6aeabce09c8b8d69474fe61167d5322b783039a0d408a35d7d4e39e207dcf39e899e999a1d60304f0ea1d68abf6c4d677a50a0394b0d176a09b67a9845ac48b1f7a67620352b58b0cd430538ea4c82f65fe16fb033798eafd2fdcd456ba80ff9107e864a92b29b9ce8d4f3cbbd08081e6a01cb837036df0713ac6c0c87f53076765d446001a27c65dcd64cf79f7de1ae24ae2c9f10603c18f9fca00a6df7f15c31cee56535e1b57a151fcd0d3ed344c85c1a140f54df40322a1632b521cd58100e0c0cbf622fc3777b5c1df5d036dfe659d6a9661b46c8b03b93dc511257dc298ffab024ce2dec3259d298165859cdb44feb3ec3b4f6f84a403344507d1ca5a1fc52472bb801c069fc50c128fc8c04bb33710db028e697d6d5d03dbd3c0902bebe2d9fbdfd376d67b805daa393053d26a9093d206497d073cc270035231c7b47d71b66f9227f78d09260091368f3106130f13852621202334616f97039476bfaf0cbb752bfae62c225e3f3f15c798942ea42ea0c184c1db4eed51e8c0033a32514d61bccc167a3e8c567c837f22e31a1d41f6bcf7cf0dd8dcb4a20d248a0329daa001ecb4b72de423a58e2a54fabe694103b1b255728061a4d417fc01d86403a44f27f4e79e80d6de0cbaee6d0f1832bc794391c15ff406bcea52fb55c243e403c1eccf2ed763077831e952986486ceb1eca0ef1138862e58ee6219e9d58ae4ee03c1bc7dea9228a92ef8d779beb579cefa283ad1048feebe305dbda020510e76b105581d02bd04c67b98b150405806d85314be23302b6dbf9f72c66f39997424ec0c024713bfe18c4e700005581d02f87a24543e6ae39b685ec4b0e81ff44eb7e731f387f40f0b1cc93b2d0c0146081132e18a2004590596608060405234801561001057600080fd5b50600436106100885760003560e01c80638f32d59b1161005b5780638f32d59b14610155578063942e6bcf14610171578063aa67735414610197578063f2fde38b146101c557610088565b806316f198311461008d57806361bc221a1461010f578063715018a6146101295780638da5cb5b14610131575b600080fd5b61010d600480360360408110156100a357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ce57600080fd5b8201836020820111156100e057600080fd5b8035906020019184600183028401116401000000008311171561010257600080fd5b5090925090506101eb565b005b6101176102d8565b60408051918252519081900360200190f35b61010d6102de565b610139610339565b604080516001600160a01b039092168252519081900360200190f35b61015d610348565b604080519115158252519081900360200190f35b6101396004803603602081101561018757600080fd5b50356001600160a01b0316610359565b61010d600480360360408110156101ad57600080fd5b506001600160a01b0381358116916020013516610374565b61010d600480360360208110156101db57600080fd5b50356001600160a01b031661048d565b6001600160a01b03808416600090815260026020526040902054849116331461024c576040805162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21039b2b73232b960911b604482015290519081900360640190fd5b6001805461025f9163ffffffff6104aa16565b600181905550836001600160a01b03166001547f103fed9db65eac19c4d870f49ab7520fe03b99f1838e5996caf47e9e43308392858560405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a350505050565b60015481565b6102e6610348565b6102ef57600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6002602052600090815260409020546001600160a01b031681565b61037c610348565b806103a057506001600160a01b038181166000908152600260205260409020541633145b6103db5760405162461bcd60e51b81526004018080602001828103825260308152602001806105326030913960400191505060405180910390fd5b6001600160a01b03818116600090815260026020526040902080546001600160a01b03191684831617908190551661044d576040516001600160a01b03808316919084169033907f3f4512aacd7a664fdb321a48e8340120d63253a91c6367a143abd19ecf68aedd90600090a4610489565b6040516001600160a01b03808316919084169033907fc51cb1a93ec91e927852b3445875ec77b148271953e5c0b43698c968ad6fc47d90600090a45b5050565b610495610348565b61049e57600080fd5b6104a7816104c3565b50565b6000828201838110156104bc57600080fd5b9392505050565b6001600160a01b0381166104d657600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe537461746553656e6465722e72656769737465723a204e6f7420617574686f72697a656420746f207265676973746572a265627a7a7231582035e06fdceb0867960c1e53f87349721699bd0bcfb7bb1dfe101fcbed115a20a664736f6c634300050b003203c5f9c5ba07131883379b5f65df57a598024a349b318b9cd7ba1b8c8aebd30eb2014109005820026e39f01992c3ea39ec080121ebb7e58e5a810fbd8acdc3ff77a1a1297ea33f540d29ada4c818a9f089107201eacc6300e56e0d5c00582002bbd2e03735a5328fa5a1d635318aface56cc16177fe434979b35da79a625e454401f6c983ea34274ec46f84d70b31c151321188b00582002411988044ea1edbdd42e6e9d26f4fbd14c5b135f82ccf925b0049eaa77500f54fe5e5d361b2ad62c541bab87c45a0b9b018389a20219c10000582103678cf1c3a56f348aa042e668070c69640de5490c3b68bcb68bd0093b8f9c4a00546566115bc9aa71f8dbc2004a656b5956c55726a700582002082ed0e6c9511b15b63d57a3520818ee63b221c0c4c4c00ab55628ea1936a954b6ec8b0a52c1bae5b6aa890cd0ec9704398d0d55005820020e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6432bb44d00582002c255c4f7bde69e11a404c8c5fd541a0891f7a08efea73df58976e2d4d0e4d554b9516057dc40c92f91b6ebb2e3d04288cd0446f102182300582103b8ce17da5fcc7b0a14904adebbdfacf8d0ccee8fec3813de87d6eb723fbf4270548bedd90e52df8bb663b9ef5c2ca42e7adc27c9b50058210370aa6c4148ae0ce9f767aae632b0ca124eedc4ee709bba51935107b92d519a5054a0c68c638235ee32657e8f720a23cec1bfc77c770219994405581d0237015a8cba2fe6ef026704b4352229bacc91bda2e5c69243d78c4b3b0701190596031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581d026d69c45f0ea664664f2f05665da864335a4e4dc28c08e0b24ba9823a07011bffffffffffffffff0219090a0395e73c3b71b0fbd862414ea6b45437c5ec199647392375a5c4b2bfb2dd7007d203337c29fd9976d67b66b28034c1414c04861ce13b19a267c6e01d66f2cdb6bfba038efc238c443939cd7706222e5fadb03a477cad170fa99ed139ac5747506d5c9d05581e033e8babcc3454497435fb45013757565af6ffc3920b8402168bc19c6f4007011bffffffffffffffff0305b8695e1ea8bd6370c8dc39640fac2de0ffddf31d3346700eb47afd5706c68903717e488edca4cfa6296b3a6d7058311de7d29c7852ac93cf967979367b8b214305581e031b46d76205022095c9ef8f3e00531bdcd68d2b2e11f6456178ab9f0eb00401038b8ac9e333319d3463cf43a20b2f2e9d59bc228635b14acfbdeb748b13cac3eb05581e03f0f711677f3d00063d7291e3ed37f4154fd16efc7ee2e623ddeb5f5d20040103198df14e9d010a5d032a76dd984908e31628a6a38b3cf4ed73896397d0bf97cd0141030219f36f03e2a17b71d72359eebf545598256441d0024eb67e038fc7d852383ff64b291fe5035932a013e9e766e8d2a0c6e7f4e059a8404128119cbcdcac4b15518d57ccf11003bd3233ff539e1bca0b0a394e7578d149140d4d969f09f9a3b3ba00c97c1456d203d52a44cf5824cdf7ce33fe5bc8b9e7ea07e0d4186885e1b492fe7c8fa207172003f07b6d4e68782a4e3b04e03dfb5cd8ddb9b45d324faa3d3bde88922a0dd71f600219ffff035aa82825dde5cbadb38a9365471ba759e275762e89ba7009debf27c912f28cb7034e920609e09afbcfd8331545b0afb5909d4e9a671cbf3da380a037107c48d9e4037567e46e2567dbf5af6634b189f918bb628b931e958d80b07d6174d6ee895af70219ffff036bf3b23d6f6128eb76f31d7e410e0970ec794167a2ae6ff198e39a00fca67f8803557a7112378303e0037356cb8fd9b6fd0e98066427eb60bff9781d51dd496b2003d0111c3acb619c97f9de8d7c155113d1d1825da378b901c0d9fb1db9c75687bf031f4969715321f486f58fd8a47bc0a86e16f23e57e0f89e31bea6581bedb6eed9034a7ce29bd8b5302b704fc01e32f545db98536b0fc352ca1665c0c867bb4376f703e8a08957e3b4cfea3d40e56f430f24fbd831f3d381b2955bc02bc380396be61703e4366555c1b888fe94c73c6bb5b3a8689f4530ae0cda0c2b719366c7f3c4c41903f5a7abff1f293433c20393da44ac2d0926eddb8bb05a8fd634d3eb9396be52f6030ee20e5f4ada94390df2cc82590360b19bf5b0e26a48b1292be245f46c57a0e00219ffff034b0cb08d1dff48446c366c2671023449b46f3bc5f09085af7d6ebd318022ef860359f1fbca60c85a53fae440e20001a98680cd7f1daf2333a51d2daccddf002f1b03baf7b8fdff6f7db1d61fe2316e02a0dd9ea9e40d629ccb539fb58c30c4fe9aaf038ec56abc67cf618c11fddd04e430d6a1f6ee00980e851de814c2d43e94aadebe03f2aefa8a33c50f7a02ea251c93d5f685bfe0cc8d302eb4c400ee5cb72a30b83e038bef9d8c27d88e2caa4645e82b0cdf765eca5a6fc1983b614dd33e74b2e62a8c03dca51e37f42987a41e792daab09a2c05ab3f6a610d78b4072b50c2d509baf8fe03ca9c2a5e47c8f2d7340e1a4cce0d2d714412bd4f195aa507b02efff2be72d9470323ee30702e0c56a865eeb3850442f659ba5699e746b7cef3c345dea0774fb59903e40ff1e28a88fd80866f34450cb8d9c4ee8067871f335bb88682d1c71c334b4003f437cc0da7cd17c6ba676e3585d33f01980f3ae219d4af084bac585a59b9a69a0385b08d5edf4ed4b0d95d75e9364089440b133f0c3ba48c797b0ef10d99793e530305dcd279a09e4947919db51702f02f6cca305722f56a1f9fce399d9e97461960033df2f32212c19907365b562d83e035affe6ac4608f771107373341fc24074af403049131e20d86b715061b142fbc9ddbaa7e3b5727ac9f17ef19d83b6807e454de03419d128c5a97a34023c88d44c109bc08577875aceb8e91578a5a95326bc25828034b2e8b34f29b701a8b92abad0d310f069d7f359010af83e7ad56e7d7637d069403d48572de6cd05ffa63fd554297aaedbf3956ae1ce74742b8044b7ba29f1c0cc7032c5989c28a7006814df068d8b21d5c2d3f3a7322b3218dfb1d7d40c24e11dbc8033d824a3203cf711549d2497990211827c45a181f8e3168fb291a68fdb636c71405581e03e1db3cf14ba7cd75e895fbebbacb5ad43868aaf09ecb75c1998961ed400c0447049511a9a52e0005581e0368db383199966da70e07783ab37d17043d15db0fb254577ebb74979da00c014774a2e91583493c05581e0315802a75e7562dce382aa4c3170e743551dda407d873e9d6d6d6da31700c03410105581e035586dd59018ee029caa5b259d24594b6c1d817abc49304297b9352a250040205581e03624eeaf8f63be68e0659edfc669786a8050d10fa7ac30ee1165283bd50040103d45ff855863d0e73494786e1040a59539f36341a465e73b07ff47968135df78e05581e03de0ac59ac3a17d8c68578d8e9e4d700ad9685a611a23001bd9cf99c1b0040103c6c9d93117b62ff66350fba02b3f18c9c632b2d4b0ee5810eb3d19673ea6d37605581d024ae43aed58b3ea1164487be2ad92dd019a9fa20eee499500dfd541db040305581d024debbe152d682ea0d255b36ec5f1c8de1b04fbb45526ccf9129904190c024638b8f9bb67c3021403bb16cd523a878e98f035c6f8197c644f53cdbff674df6e3b057a3821502d83360219d3f50354e646eaa628a118b0be8cfd5773c61968ff55c54cd4a1497bb626f7c77244f403051e0bdf60b3bf0e86d0352893f7a96d2c46c7d02272721064a09ac83919575c03d5f822e5321d85626c7b512ba14cad62e047a3c695dcf3546036c89cb8e90c8a03120b2130cf3d69bc613719327f2f9903da03b5a5f511fb2614911bd3a38b591e032c0b1c4d39cf16baf3076f87144af1386711b364deadf69e82941e14e21a4b4a03dc4fa6e17e77828f6e3f93a3d4c1403007c08946c5607fe8cda5d8e7b75af3e503667d9fa503f5d635c0d1f64f90e57a8acc2b9be8c26d8eb1b52e4922af29eee603b2af79d07800f2f5c05c0d2e51534acf45c8b661967957eb1b226a5c2d2c42d203303128a03221f50a10539f944e3949aa585e7686340a9138c8a1dff7f1db365c0335122a5d047349dfc90369a68f2bbb14ed1d0169f96d781c4e48ab0fed0c5b710386caf49cc8046b06f412f16796210264277a8ed77cc492af3d23a3c6c84dc2c80387070b8c8396a21a74a1da468468917585980848c493234b53e19ab6861d4ba70219ffff0347277b75e28ed7838b9193b1839be550378d1a14220c309ba83866b4f390bc06030581efc48d8d1f221aebe46e792114eca6199ca8c650dd80bc555390c95da15903d8d006ecbf6fe941fbfaf068f7b6b1dedc49f7e346682140d76ec246ebd99e6603d8ab7595097e69855ec23199b2dd0200480de3ef071d487665af387e7e31d5a20347f6aea731e8c0d44ee0e34d24610c73f2d2645dfe42bf302f459bba13ae1cac033108cc4ba1e190ea4076119448b7e692b970f4cfd8183b4e6415d8abb95d35770371989f651a71df9158d1c71b9e37155f98e56a3c8764d514052c924246eb04d903c73142e5d6c6c96fea975533b33052e1ff69582a665d38c31b96696471e1959f0219ffff03a216ede6e460f4edb81cc3a0ec7538481074e2e3bcfd6a28f46011d078f0bbe90380d0d97d88c544315bac831daa71adbcfa66c307271eafbd0713cf57e7fc69c603754a9c71b002ba301010e2c7cbbbed3547c950b416b60daab1063365102a323903418f4766200c038234bb846fb4a0cc24a324f7627efb017285e4b8161efc765303d119c79c572b2c64a70825df230fc535c113d8981240ccf6b1d6bde23f08393e03fd564fecbfd78e085a8c438e2f5997d0307ea68febce4e13491fa33b97ef2f1c0219ffff0319228381e597c5ca8d948bf068469c9ea8781b7c1f24cde070095b513fb71a6d0307b67f289970903ad7e087b87599dc2186f5ee55bddc37b069ed788fa70013f4039369fb14e5025e6f59ecf237074fcd900383f6bd9c70858a21f0416024b80a8b035f03517b7a4c84fe10e7895b7c305e88f2c3af53b5dcf8f993d795cf8e24ae7f03c0c99c31fa9eb6ff0d86b3d54ff6b434b5e6575f0efcadecca49222ff10f0c1403d390721f24617ce1d734ceb5d03af120d22d3ca2978f753c7a4b4203915783ff0330c79b19f2fb557b2e8d6c91563946896c8666384abd5d4f0505a855882653d0033d67c09bb2d61d63b7245e0d8d99cfa57da5bbc11c9c59dfc3703e381785d21d0334b0e3194932f3928550fd2b5372905a38f4bffb6fd23e47ff2bf38024b99e7f0375cc9a5f73b809728940f8831f1a236edf1167619be9fa1441c2a2638a5f58cb03641f55388e6db37a532ad822e2767a03910e8e88592ccc52ecf1cdd228b56f62035e1dbfbb94431c2261b3f12e7e849250825d8d6bd183b06c77f2eb8f325040e60398f05c1bc5e8be0370bbeffc006a3e4a3ae0457bbac24ead38e84b880a39501a03fca91593c1b59cb6efadaf62ec01c6173319a051de0e99f897209834618a32f703c0ef29afd03ae8ac77ded403349c7034bf469c0f7fdf9ad857157dfda5a3d0f8039d5e685596bda18345ed60b8cd87dd7721412488ea1b3cea1ab256ded181081003f1d1adc8499a383f1ef4bc56c2dd59ca78a3810576394023b1a30c92bdb0eebc032f972637f449d8b900cd0c43caaad7909c7f592e4821a3bf6d76d690b2a8d0ff032a828df3d7a78a77676be15cbf800f0c8247d6687a138ff6f88ef250b6514b2c03bb4f33b880f26b983d39b37f544946f70453cd6e2da85208b223a1363a60129a033decf2e47270e56287f0da0411ef2f9068871395c3cb33780dd249d01459ae68038350eef1854ae5f7ba63d95f79cdf06c38da4a0ef24b55247b400d1047923b1e03bb159240dbf3133839f13396d8de6ab2a4fcbf42d34675e27b254d014449e2c90340cc573ec3a275709e8aeabb4765301ae55efbd58be7a8f02a5bc3e753a1968403eaeca14ce91bfc10c3a6e9b95026ff58841de3eaa0ac095507a5eb56a3806c9a03bf621266721df13883309288be1047f914b26cef36387a3d919f212d0e8a749903b9f015f8f9f3b570f5b8ffaee1150cd01ece375ef3f9bcb2a8157616d3dba6dd038c3162451e1a721792be65f12077e1a22bafbe18cd13b3f4d228c2dea6b023f70332096c2ec6f1ee53295420f59b0369b360a0ede85418635d82f989139803bc2d03e8bc71947bc6fb3a6c488fd87246de7bcd4b23370994d4f22b0a01b5e9220cf903185b82e122b70cd291f3c792702b7c9f4361bc40c18769c5493f147fc253470a03f311575685bde2b513c2daffdba3e5f4e25ae6599160139d294bffa9b8b4e65603c5f07c61afe9fb1037284880dd589b1e493ebd7d993421214a9fbd7a91620ffb03f8a35e2ea3dfb73e836054e41e063ae1b8683c2b4d7aa106f3861f8d392cf74003feeac3e9d66b3cfc0ba9910d19f04f8f6181cd34d321e40f1badc55eab0ee5f5034f014091630949e6bea2a1660c7027f66679aee54b65654434d8cf9b99db220103cb7c5dfe91dcf142ca6582f1237b5aca685dacb301817ab5c07e98d63840527005581e0390e1af1894e2f6174b59433ece5877d42de5da9fb7da85c1ccc42ffb700403035f3c29bfc03447cddd1822b6066b12b9632df581e7418ff3c5a6f89e13e816da05581e032bf3b86d2b5792ecd66e5a1b6dcddd0e058d116a0c34cc2cbb2c282e300c0148011a179b7bfdb80005581e03c7e3cc37c493e5d8885c74c5204874cfd0bb151ccf6132e14c7bb19e500c0147064693b0c3740005581e034811f368d4bb8671b5ece03f9c2ff2843a359eb48c089163473564e230040f03088d3b8b14b83434195ee2e465e7e18499b417c5fa77d9084375c533989795b20605581e037350b174484f9e618253cebda6eef526dfd3a2aebf3f2cd37255b4c1e007011bffffffffffffffff035e26d782d5209a10aa6f4bbd7fa00311a0e12a95eb0a03d87375a4afd467f02904594c05608060405234801561001057600080fd5b50600436106102535760003560e01c80638da5cb5b11610146578063c87b56dd116100c3578063e670e41d11610087578063e670e41d146110f2578063e985e9c51461116a578063ea923bae146111e4578063ebfb412d14611267578063f785ef72146112ab578063ff5c1d62146112cc57610253565b8063c87b56dd14610e12578063d547cfb714610eb9578063dd62ed3e14610f3c578063e0df5b6f14610fb4578063e2b9e1861461106f57610253565b8063a9059cbb1161010a578063a9059cbb14610bac578063a9c6f4e714610c10578063af17dea614610c74578063b88d4fde14610cf7578063bda0278214610dba57610253565b80638da5cb5b146109e757806395d89b4114610a1b5780639b19251a14610a9e578063a22cb46514610af8578063a457c2d714610b4857610253565b8063324536eb116101d45780635765a5cc116101985780635765a5cc1461074f57806358a10259146107c75780636352211e146108c95780636b5e27ef1461092157806370a082311461098f57610253565b8063324536eb146105f1578063395093511461060f57806342842e0e146106735780634f02c420146106e157806353d6fd59146106ff57610253565b806323b872dd1161021b57806323b872dd1461040d5780632e953e7714610491578063313ce567146104e95780633158aa7f1461050a578063316d295f1461056e57610253565b806304ee65c01461025857806306fdde03146102b0578063081812fc14610333578063095ea7b31461038b57806318160ddd146103ef575b600080fd5b61029a6004803603602081101561026e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611324565b6040518082815260200191505060405180910390f35b6102b861133c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f85780820151818401526020810190506102dd565b50505050905090810190601f1680156103255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61035f6004803603602081101561034957600080fd5b81019080803590602001909291905050506113de565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103d7600480360360408110156103a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611411565b60405180821515815260200191505060405180910390f35b6103f7611428565b6040518082815260200191505060405180910390f35b6104796004803603606081101561042357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611432565b60405180821515815260200191505060405180910390f35b6104d3600480360360208110156104a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611455565b6040518082815260200191505060405180910390f35b6104f161146d565b604051808260ff16815260200191505060405180910390f35b6105566004803603604081101561052057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061147e565b60405180821515815260200191505060405180910390f35b6105ef6004803603604081101561058457600080fd5b81019080803590602001906401000000008111156105a157600080fd5b8201836020820111156105b357600080fd5b803590602001918460208302840111640100000000831117156105d557600080fd5b909192939192939080359060200190929190505050611493565b005b6105f96115f6565b6040518082815260200191505060405180910390f35b61065b6004803603604081101561062557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061161a565b60405180821515815260200191505060405180910390f35b6106df6004803603606081101561068957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611641565b005b6106e961177c565b6040518082815260200191505060405180910390f35b61074d6004803603604081101561071557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611782565b005b6107b16004803603604081101561076557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117dd565b6040518082815260200191505060405180910390f35b6108b1600480360360808110156107dd57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561082e57600080fd5b82018360208201111561084057600080fd5b8035906020019184602083028401116401000000008311171561086257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611802565b60405180821515815260200191505060405180910390f35b6108f5600480360360208110156108df57600080fd5b810190808035906020019092919050505061190c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61098d6004803603606081101561093757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611983565b005b6109d1600480360360208110156109a557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120a0565b6040518082815260200191505060405180910390f35b6109ef6120e9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a2361210f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a63578082015181840152602081019050610a48565b50505050905090810190601f168015610a905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610ae060048036036020811015610ab457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121b1565b60405180821515815260200191505060405180910390f35b610b4660048036036040811015610b0e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506121d1565b005b610b9460048036036040811015610b5e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506122d0565b60405180821515815260200191505060405180910390f35b610bf860048036036040811015610bc257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612356565b60405180821515815260200191505060405180910390f35b610c5c60048036036040811015610c2657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061236d565b60405180821515815260200191505060405180910390f35b610c7c61256f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cbc578082015181840152602081019050610ca1565b50505050905090810190601f168015610ce95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610db860048036036080811015610d0d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610d7457600080fd5b820183602082011115610d8657600080fd5b80359060200191846001830284011164010000000083111715610da857600080fd5b909192939192939050505061260d565b005b610dfc60048036036020811015610dd057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061276d565b6040518082815260200191505060405180910390f35b610e3e60048036036020811015610e2857600080fd5b8101908080359060200190929190505050612785565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e7e578082015181840152602081019050610e63565b50505050905090810190601f168015610eab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610ec161279e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610f01578082015181840152602081019050610ee6565b50505050905090810190601f168015610f2e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610f9e60048036036040811015610f5257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061283c565b6040518082815260200191505060405180910390f35b61106d60048036036020811015610fca57600080fd5b8101908080359060200190640100000000811115610fe757600080fd5b820183602082011115610ff957600080fd5b8035906020019184600183028401116401000000008311171561101b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506128c3565b005b6110776129a0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156110b757808201518184015260208101905061109c565b50505050905090810190601f1680156110e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6111546004803603604081101561110857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a3e565b6040518082815260200191505060405180910390f35b6111cc6004803603604081101561118057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a63565b60405180821515815260200191505060405180910390f35b611265600480360360408110156111fa57600080fd5b810190808035906020019064010000000081111561121757600080fd5b82018360208201111561122957600080fd5b8035906020019184602083028401116401000000008311171561124b57600080fd5b909192939192939080359060200190929190505050612a92565b005b6112a96004803603602081101561127d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bf5565b005b6112b3612da4565b604051808260ff16815260200191505060405180910390f35b61130e600480360360208110156112e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dc8565b6040518082815260200191505060405180910390f35b600e6020528060005260406000206000915090505481565b606060118054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d45780601f106113a9576101008083540402835291602001916113d4565b820191906000526020600020905b8154815290600101906020018083116113b757829003601f168201915b5050505050905090565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061141e338484612de0565b6001905092915050565b6000601054905090565b600061143f843384612fd7565b61144a848484613096565b600190509392505050565b60036020528060005260406000206000915090505481565b60148054906101000a900460ff1681565b600061148b338484613460565b905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611556576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b60005b838390508110156115f057600060ff1673ffffffffffffffffffffffffffffffffffffffff164211156115e35760006115c360008060ff1661ffff1614156115ba5760608686858181106115a957fe5b9050602002013560001c901c6115bd565b60005b8461379c565b90506115e18585848181106115d457fe5b90506020020135826137ef565b505b8080600101915050611559565b50505050565b7f000000000000000000000000000000000000000000000000000000000000006481565b600080339050611636818585611630858961283c565b01612de0565b600191505092915050565b61164c838383611983565b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200180602001828103825260008152602001945050505050602060405180830381600087803b15801561171357600080fd5b505af1158015611727573d6000803e3d6000fd5b505050506040513d602081101561173d57600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461177757600080fd5b505050565b60025481565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c602052816000526040600020602052806000526040600020600091509150505481565b60003373ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b60005b82518110156118ff576118f28382815181106118e257fe5b602002602001015187868861387a565b80806001019150506118ca565b5060019050949350505050565b60006007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561197e57600080fd5b919050565b6002548111611f61576007600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119f757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a3157600080fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611af45750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b5f57506005600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611b6957600080fd5b611b71613a86565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550611bc5613a86565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816007600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500381548110611d2a57fe5b9060005260206000200154905080600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600960008581526020019081526020016000205481548110611d9557fe5b9060005260206000200181905550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480611deb57fe5b6001900381819060005260206000200160009055905560096000838152602001908152602001600020546009600083815260200190815260200160002081905550600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208290806001815401808255809150506001900390600052602060002001600090919091909150556001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500360096000848152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e031487611f46613a86565b6040518082815260200191505060405180910390a35061209b565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461208d57818103600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b612098848484613460565b50505b505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060128054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121a75780601f1061217c576101008083540402835291602001916121a7565b820191906000526020600020905b81548152906001019060200180831161218a57829003601f168201915b5050505050905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b60008033905060006122e2828661283c565b90508381101561233d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614b5f6026913960400191505060405180910390fd5b61234a8286868403612de0565b60019250505092915050565b6000612363338484613096565b6001905092915050565b600060025482111580156123815750600082115b156124e35760006007600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156124815750600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561248b57600080fd5b836005600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050612565565b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001905092915050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126055780601f106125da57610100808354040283529160200191612605565b820191906000526020600020905b8154815290600101906020018083116125e857829003601f168201915b505050505081565b612618858585611983565b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b15801561270257600080fd5b505af1158015612716573d6000803e3d6000fd5b505050506040513d602081101561272c57600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461276657600080fd5b5050505050565b600d6020528060005260406000206000915090505481565b6060604051806020016040528060008152509050919050565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156128345780601f1061280957610100808354040283529160200191612834565b820191906000526020600020905b81548152906001019060200180831161281757829003601f168201915b505050505081565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612986576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b80600b908051906020019061299c929190614a45565b5050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612a365780601f10612a0b57610100808354040283529160200191612a36565b820191906000526020600020905b815481529060010190602001808311612a1957829003601f168201915b505050505081565b6004602052816000526040600020602052806000526040600020600091509150505481565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b60005b83839050811015612bef57600060ff1673ffffffffffffffffffffffffffffffffffffffff16421115612be2576000612bc260008060ff1661ffff161415612bb9576060868685818110612ba857fe5b9050602002013560001c901c612bbc565b60005b8461379c565b9050612be0858584818110612bd357fe5b9050602002013582613ab4565b505b8080600101915050612b58565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612cb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b6000620186a06201869f612d6d601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612d2d57600080fd5b505afa158015612d41573d6000803e3d6000fd5b505050506040513d6020811015612d5757600080fd5b8101908080519060200190929190505050613c75565b0281612d7557fe5b0490506000612d82613e3c565b90506000612d908383613fc2565b9050612d9e838284876140e6565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000a81565b60156020528060005260406000206000915090505481565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180614b856025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614af16023913960400191505060405180910390fd5b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000612fe3848461283c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146130905781811015613082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4552433430343a20696e73756666696369656e7420616c6c6f77616e6365000081525060200191505060405180910390fd5b61308f8484848403612de0565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561311c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614baa6026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156131a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180614b146024913960400191505060405180910390fd5b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561323f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180614b386027913960400191505060405180910390fd5b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561331c576000613311600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546141da565b1461331b57600080fd5b5b6133268183614262565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133b2600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836141da565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b60008061346b613a86565b90506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555084600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661365c57600083600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548161362a57fe5b0484848161363457fe5b0403905060005b818110156136595761364c896142eb565b808060010191505061363b565b50505b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166137295760008382816136b857fe5b0484600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548161370157fe5b0403905060005b8181101561372657613719886144a8565b8080600101915050613708565b50505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e031487876040518082815260200191505060405180910390a3600193505050509392505050565b60006137e7600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483614680565b905092915050565b6137f881614694565b600e600080600014158061380e575060016104d6145b61381f5760608560001c901c613838565b60028063ffffffff1614613834576001613837565b60015b5b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b8073ffffffffffffffffffffffffffffffffffffffff166323b872dd85601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561392b57600080fd5b505af115801561393f573d6000803e3d6000fd5b505050506040513d602081101561395557600080fd5b8101908080519060200190929190505050508373ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82285600080876040518085815260200184815260200183815260200182815260200194505050505060405180910390a350505050565b60007f000000000000000000000000000000000000000000000000000000000000000a60ff16600a0a905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600080141580613aff575060016104d6145b613b105760608360001c901c613b13565b60005b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d6000806000141580613b60575060016104d6145b613b715760608760001c901c613bb0565b3073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff1614613bac576001613baf565b60005b5b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3613c09816146a1565b600d6000806000141580613c1f575060016104d6145b613c305760608560001c901c613c33565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000806000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613ce257600080fd5b505afa158015613cf6573d6000803e3d6000fd5b505050506040513d6060811015613d0c57600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505050915091508373ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015613db557600080fd5b505afa158015613dc9573d6000803e3d6000fd5b505050506040513d6020811015613ddf57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614613e2157806dffffffffffffffffffffffffffff16613e33565b816dffffffffffffffffffffffffffff165b92505050919050565b606080600267ffffffffffffffff81118015613e5757600080fd5b50604051908082528060200260200182016040528015613e865781602001602082028036833780820191505090505b5090503081600081518110613e9757fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613f3957600080fd5b505afa158015613f4d573d6000803e3d6000fd5b505050506040513d6020811015613f6357600080fd5b810190808051906020019092919050505081600181518110613f8157fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508091505090565b60006060600267ffffffffffffffff81118015613fde57600080fd5b5060405190808252806020026020018201604052801561400d5781602001602082028036833780820191505090505b50905061401a84846146b9565b90508060008151811061402957fe5b6020026020010151600d60006001421180614045575060016000115b80614066575042600173ffffffffffffffffffffffffffffffffffffffff16105b614071576000614081565b606061407b614854565b60001c901c5b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806000815181106140d557fe5b602002602001015191505092915050565b600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506141d484848484614879565b50505050565b600080828401905083811015614258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000828211156142da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561432557600080fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905003815481106143b657fe5b90600052602060002001549050600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548061440b57fe5b6001900381819060005260206000200160009055905560096000828152602001908152602001600020600090556007600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156144e257600080fd5b60026000815480929190600101919050555060006002549050600073ffffffffffffffffffffffffffffffffffffffff166007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461456757600080fd5b816007600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002001600090919091909150556001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500360096000838152602001908152602001600020819055505050565b600081838161468b57fe5b04905092915050565b6000600a82019050919050565b6000620186a0808302816146b157fe5b049050919050565b6060601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f00ca7484846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015614753578082015181840152602081019050614738565b50505050905001935050505060006040518083038186803b15801561477757600080fd5b505afa15801561478b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156147b557600080fd5b81019080805160405193929190846401000000008211156147d557600080fd5b838201915060208201858111156147eb57600080fd5b825186602082028301116401000000008211171561480857600080fd5b8083526020830192505050908051906020019060200280838360005b8381101561483f578082015181840152602081019050614824565b50505050905001604052505050905092915050565b600060603073ffffffffffffffffffffffffffffffffffffffff16901b60001b905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee858585856104b042016040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015614940578082015181840152602081019050614925565b505050509050019650505050505050600060405180830381600087803b15801561496957600080fd5b505af115801561497d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156149a757600080fd5b81019080805160405193929190846401000000008211156149c757600080fd5b838201915060208201858111156149dd57600080fd5b82518660208202830111640100000000821117156149fa57600080fd5b8083526020830192505050908051906020019060200280838360005b83811015614a31578082015181840152602081019050614a16565b505050509050016040525050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282614a7b5760008555614ac2565b82601f10614a9457805160ff1916838001178555614ac2565b82800160010185558215614ac2579182015b82811115614ac1578251825591602001919060010190614aa6565b5b509050614acf9190614ad3565b5090565b5b80821115614aec576000816000905550600101614ad4565b509056fe4552433430343a20617070726f766520746f20746865207a65726f20616464726573734552433430343a207472616e7366657220746f20746865207a65726f20616464726573734552433430343a207472616e7366657220616d6f756e7420657863656564732062616c616e63654552433430343a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4552433430343a20617070726f76652066726f6d20746865207a65726f20616464726573734552433430343a207472616e736665722066726f6d20746865207a65726f2061646472657373a26469706673582212204517f37c99adea3321a666f9edb0833c9f5fc19559c5f632fad55a35dd28499864736f6c634300070600330367424921a1cfb5917b1db3fd4eeaecae8b0594f3f515058bedb9e8d7a650605f031e0b42817eac60ee47fcf8d78cbda9bc57d2d9ccfd9f3709c3a40a18d1faaf4f033479f44b3296315871ca3ff1d1007b20bcbcf989d34b0ea8d02648ce5d118dff03026c85dab352573f4fce042d2a71add6291d396d66fcf4fa7749c968e3b4a96403ac670a7799cdb0180d766c148f1eecf1dbd2abbaacf7907bc4bfab852fb8c47a00582002bb55989786982097c959ee82ab21aec7a148d58ff2968215ea23e4585540175820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820025f84aad7201cd7a4d7f00d787f549b68e17fb812b2d2d67db159e286d024104a20aecebc813e72d2de8b0398c2002873fb996ea16f9776d9fac58603ca7f66d93a3a98fdea1084d17953f80058200266b97cc329056d6838133d025c3f47216e31cc291a8839d3dd568452a030f55820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002b3b07a006421e379a5b0cdc4ef316cda902a1e6d50054df55daadd1a755e964a0140620871ef1c677fd5005820027689687c7ce269267726e957f459e38d8dc15284fafe387196dbda07d7e7105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200386cd91b957e3262f263c0f3e7716c35ced4183a81d487ba0dac13fab6275204960b2eb9b20e64a0000005820037302ca4351ed02ff7502bc2f0a26f05735983559b02eb4182fb3705bad99705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003a8c90c446d0435ef8dd8917f50c8ebcaeb582146ffa61587b32fba89e16a604af0af2e0b2bf27c86bb35021941400390fa147e1ab76127e1a497cee6af006dd11c7413ffd97e75c213e6f8bce231cc034453ab5f3bdd925d6016cadece64c2c08e4f0d410d7c89e42d3b82094ed8d79002199e74034f3fd3e1e179ebe67948e7dee3adcf227063d315735a3bdea27662f39dbe32580311596b1f74e061087044bbdee1dfbe52d7f4bd561a9c4d13eca714dcab649de00386b3e398dba7e531a5f48e95c704cb021e7c8393c5486adbd741bc9ad8d03208039210894a05d63f7cd33c83624fb8f32a2cd648bee2076ba008780e9742b6c230034f071e80f3dcf21809bd09c307b7a21cbfaab080fca3b8eaf0040bc68e68029503348779d7de88dc2e31658809b58df333516751c155142928bed83d1ec3883626039f1102946cd806c70b254c75c94c35b245b0a077078872c2b8f3398d23420db103c5ce9afc022421bc4fd72f7c2f7b451cb3aff4cb8806146430ec3b1a287b8e51032dd56e5cba63daa918d9b55519bb7a16507f989a16503165e9f6ea76c64b4e1203205ae1beb690a9f7334b598bc6eb21166f7a4424511da6f4dba8aa60bbee42850219ffff05581e03064ca4c189e067440ab24aa11962c0216bed7b9c13ea5970f047f0b6d00701194c0505581e033215103e55b0c57a71948311da0097fa7ed6877783d59c4cb083a459000c014701106a4906b2d90356703d2e2a2f9a2eacf64ed7113c61c5fab47cdf3dc0d3e8dbb1ba6e3270e1280219679b030adb8a62c8db69d1370ce6c51f6c38df54855625c58dacb7b2ebe49dcc61524d0352649051208f5a2055f18a37df19f7ed4c6cbcc2ebb183a2c0964b2d67a339d70219ffff0328dbb2cb02d73d46289d4ecfaea28b3dfbd87cbc39745ea959d66a10ad67a72403dd105ed79767689ba403273eb34bf61bf4f50ba9d7042142186d4e336c545dcf0219ffff035bc7da213202121a24ddcaedf51e5e5a36334575e83217348b67b805ac70b58e037a7245caee5f90fac60f431d7faee9ca097e111e840839eae762562803011eef032be69465c15e2e5a2b466ceca37eb48706dea2b9cba2b174821993f3c3da71630389c43fa8d474ad1018515d9e59c73930180a9276c7e44a6a7aa563fe962c85a6031577e77f3a796e8c21d42cdef40733284e39f6a6f9c471b233b70c2f054f273b03f521a7c7ce297ff7c63ae7e4e5a72c99ad300c28bfcfb9301b7a714974a25ed50219ffff03823844b604cca4adec712f5193eb11af25a3547bc6c1f4494fcac76aa359afb20219ffff0346d33762c19c5c8cd7022d63c4c1f30dd1eb85eb830490d218766b642503cbd0033b1a6234614bf238b3fc36d5adb2e7d4cdc4d82f8ca91dcf7131a80e0ac81c0503a49247e169d0368e4bcd4331d3a40905ef478f06cf9883e43be4db9790abc94e032d4544827ef98d823961deeb5ba16079afada81b2e5ecaf5bd35b66b5d1f9243035cec408116983d5eed3f9e96b363ba50d07c9af4c6e3cca8cd85375a4ae8dc8b031e70941cd29e43581710669d3d4f58eb293ddc43b738024b737bf7732ddaf87b038048a2645ad424127f3dbd131db54d27dd6fd0365fe4233d43aaa7b60a598e0803c9b4047f6cc99abc8c110f947a83490ed54d676b2c6eb4f73d28b65394ff2386039d4ddb71607bd13f40e672461dad102af0722e9011aa352408b27904873b502f0380a1f4e188aec12c2d01653e7928682e400ec91eebbc62aaac0a91af8546313203fee42a274dd3db3a1a8bef02f47bf7867077553cd86641b154b5977d5dbf3f02033ad392a68888f9cb21b73ba6e26c73db1fb978ff8599f143610fedf3bac2b7e603b9f6ffd229167c202b140f864c3157cc99cf2e13d4346517620a0a227765843e039a784f4d1ac5cb176f83b5c510e0cd99843e044a5c049ee205ad8d783ce96ae203be8e4cf4f94aa116e6be8a390b412368431806f981253f363e6448c0d197d69903546629b30feea624769d2922227f1bf7f7dc8ba6079557596ca13779b501da58030a0346b46a4d1fc27127afa2e7ec8dd48624bfe4266586c7d435fc6497a2c39b0355eebac0eb8b2c05337b91693369ac38f9ba58a8b688dbcd3210511d4cfef4f303ee74d9d15dd8e3bfd5fad5697a6ede4b3adba3b880fe7faf3a8f3c09470be911038ada4aecda77649f65cbf7725a96c3d1a905c006eac4791944ec8e71bb1cdc7c03837e04a6d3b9d1f656ef7b72e4ed6d0bbf7e7dcf4ae828f506c1ca31348838c803c5b9ac36c4a80f7ebf80fd16ca56188363b1a76f70b9d4bedb252275bdbe16ac036d6849b8d52b4f8ee38fc70aec9e9226599bd706f01206aa46838b9f0450ea0b039fbd709630f97a2fcc70b6b6a129d6d1e071ac452dc172035ed97cd288cef78d03ee5885c70781ea8c09e2516958c12d9972a4fecad2e68d99f04a8a2f2e8277df03c184f805c028439b80eaf7df388b96d9324636a38fde0ed1315b2e5736a1841603ea836b2eaca8236f44be3ddd8012400f2d065b9b55fa26ecf8f78fbc73ae654603df82dca1859f3fc0d481b0e29c7c3acea1751ddce3674cca0dd2326fcb6be204034ee13788ec40c51fb2daa7149052a901ab2fc02d7befafbf41059f01b8a9e50e0379e41e01ae16ca493b3bd9b92552133c7be78354dc81da2b305e11a1bae4d542037fe2daa72d58d800ff434f16625065c388ed216c4b08acaa43589cb682aa7789036eae093de2c70fa9fc544e6c6761b6a833cc72be010b88f62f2c0d44167b187805581d020c31ad35380e5dd4aff8c4d1f36a34c25ece313a66a380460476c72c040305581d0202a2ae97ed430a979699f9eaa0de0dbec696ccb45d4faf4359b668b10c0b4802414b745eac1ef203f6e1273e7a2757aae6bc42f33113455d52736a1faeffc865244f06deed9872400605581d02644a77e0bd617a11c7f75c6c5fff6bb63c9bc7b381d4361a97524ef007011bffffffffffffffff05581d0248579370bae777eb41838250adc172b3f6ef0855641eead080f640980847470de4df8200000219180605581e0370d54e601dc2ece9f1a3b60eebb24237944918fb59508a1e64dbb8f350040105581e03f2d4df45719d7abd463eeeba55aa3b5d072c5399de86909bb6b192fe800c0a469429671c02f805581e03da4279c29da59ea680d824b72cf46eac4f12dec8d3bfe4362f818b7810040105581e039e11022f89493851e438cc6dc3461ebfe3ff2745214dd5f62342eba59008471dcc6521db8f1203562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e030ca0630dba1cac18ae78070233e8250f41c872d7b146273ce5ef6b518007011bffffffffffffffff05581e03e06e05c2db28ed2ef31a3eadaae3b15c420b71c0a8a0ea79091fdafb100401034cc2a34b8af31d02480216bb7ddf34df5bf052e843c92507a97359a59ea106b505581e03a09e941b89174c09e767e2a7398451820c46eb17e7778b7e54c859a2c004070219cea50219ffff036ddbd58ced6d61374683c4520fb8d66ab9f8c83ebc8a90d915dfbf8be7673412035f1c75112f318658f7565faefc1a072f31cba7fdc0ed6a3b16bcbd43b5f9b0e903f19f6d3b211fe61610dfc0aee14c71d9a9afd9e8646dad44409269340c807aaf03387d34ff9240357d202a86141966f4ff28477c3d04dc121c7d7e6d96969539a4036774720d4dc7bdffa7ee1a91fd0bfd4eff6aca0de9109da59f87f2912bd62793034b4ed92c70896ac8bafcb63276b7e0a0a3a08e71d0a1fcfb70fa52f5adc564d803c575b5b5d4e3fd685a7712f233ab9a5152c70f83086c18c6e6bb9c952420b4e50383b1563ac1fad34ca62ce08f7ec78d38c084bd7379f193cbcc29eb3105d7993303619f81157cabc3101e245c12b0e8bb7815f4f170c15515bde2166cadcea12af30312ea72f6105bd98b5707f29da15511a4aa8b3583497169907207572a7fe5d3be03c3b249fc52868b23de1ea7ad119d31ae4b1052b14a6341563023daa2ff8aaabb03014e935075b5577baa4b351ef319b885a6666ef8fc8a07158ca463179a5bcbee033ce6bc26fef101d325693606fb12409c7f9786be1315fb9e94c515aa81f8ca8d0327e84934acef994642d0c614ce3520a22514bd9123179a0f5bb1378367eb432903717edf04fe37ea632e7bab2394dd5c13ae5729ea77a58b20982f41defa09fc400219ffff03eb357599689f6b44c01442b8625b69a083a2e4e28bb88e9bb2fd175da2d2b2730219ffff03d989358d2d5c61760abc1e34ed90b7ec38e861f31373b1179704797abf70b70003e196a75678bb4b70a6e9ccc8843be25079a4fffc5e04c829f6b755bedd627e52033e057125ec0776c0d14620dd48d293930b46b7c62111cda3d4f81dec077749ac034f1c691fd3cc25dd49a8fbf3c177d1fefb7c126c75b0b90bd5fe9326ca4b719a03b645103488b717ed3f3c4a13936dc979536966da431b9c1a386ae4c49801cbc503c063a7c1a565877fa2dca7ad3788afaf1a6fb0dd3851045c5f6d19173c98f0d303a7076e23b2ec2377c27095824476543340e0175c0753b386597cdae2fdcae7c103b4a2de16835db64e3a1cb2f1877de73119c327b2530f53d8061d7c62cd7100a003063052b0aa1eacf726b01b94acf48a2cd80d0c386925d260fdccad0c684a48cf033f974753bf5d2da7ade6641658d0db361828f5ea785e1bf82563296ed6634c92035768a6f24df6517827ebd851d72fb5b7c4a3706168a3279d2b0162ac7e2135e7030d138cd7d6e3ad448f318f8df1f124239d44871f8be0949744fff23ead2cfce803fa0dba744480dc451d45b47aa65481fbfe28da235dad5340882131deb436669c0339cbd1ade856eb0cf95c90600b59779fd7ab3a4f5b093bd116abba0dd230c8ef034c20be00399afac17de60de6010f5ed5d7b813f3f0285d10c6fea5eb8b9cc0ce03211382f065cc78944657b8225dc2e94678407cefd3313051239beb374c715bbc03476a7135098e1fbd4aeb5279dd2c3f772ad45585022d29eefc9e9e430455865b03202624fa0eacf3706490ca99f49195cdc10efab06e99b047e02d9b0392d2c488031530b9d7b3f4299bc7e9ffeb03d85cfc6343b07af433c7171c4243a3942e3bfd03af3a74845c5cfd8272da92444397abb9ada5a08dd9eca513e3e4ed02ec68d7dd03e31d5fcdf335f509653149c6be3a302b2e7f00fddb6865dc4d06eaecbc3e30df037fb0487dcd8a2dcb7d46685f57df85c6285d847ef1f28fa3b1337115b23c0e210391b3248f6e660184844f9475fc0f6e66a8feabeef58c258c986eeda89048a56c03672f6a36b45557434f1bb310785af28e437945a71e7ebe33358a62fdfdb2419403f9e7171f2d3968695ca225e891bc4f0807cd4d6671cff6773c6e34ea52a0c3030316dbb18388512a398c4340d864a64032ba39ae4e3906a7d4fb08299ab1387ceb03340afe3e48ae8ff8becdd3f5b786e84cabebdf9043f7492036c515eaad1306d303d2a4917cbc39ff3147d70ae9994bac9341a280488668e430a9654e00b8f399c3031f22e89df1e5f71b168c947e70095a33e42d635f3e22d3162936af37514c57df03890afe4f7d899147029d0c93c4dc859198f10584bba158b458b12f9ae6d3138a038206f1bd1da42aa83d7476af514631af88f5891d2dffaa5e842a8b7b24d2e1760375827d5220751d4c240cef14de7e9e7c3f39dc7bee5f650dc41a56d118bcfdd7038dd25ddb1c242e9651b8badacf3845ca13c5aa23f37de56e9b5ed128275ec48403da1201be54c9105c7914eea996352a09bebf5ec2489770d69d7a4b314b094c1c05581e033baedf6f8bef97105ffcd6b774ce4ce0af9905f31ee391c6060b665250040103ecc24fd7579a0950170a46802ab99012b4432b45ef212425137e35445271527403a2e159186f227adff126949905bc7150460274f82f43e5eaa6102be5d448837d0348636e36f25355868ff89e3975bff8594182a39a8be4de66df9aa2dbc4fc3a3603c280c38d7ebccd463834d6a1e8af4954627168f64df3d4896b11a8851a7eeede031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581d03da347e6894218cc20fb345083381e24f84f30819490d235cf6cc4e5007011bffffffffffffffff04592377608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a714610534578063d505accf1461053c578063dd62ed3e1461058d578063fff6cae9146105bb576101a9565b8063ba9a7a56146104fe578063bc25cf7714610506578063c45a01551461052c576101a9565b80637ecebe00116100d35780637ecebe001461046557806389afcb441461048b57806395d89b41146104ca578063a9059cbb146104d2576101a9565b80636a6278421461041157806370a08231146104375780637464fc3d1461045d576101a9565b806323b872dd116101665780633644e515116101405780633644e515146103cb578063485cc955146103d35780635909c0d5146104015780635a3d549314610409576101a9565b806323b872dd1461036f57806330adf81f146103a5578063313ce567146103ad576101a9565b8063022c0d9f146101ae57806306fdde031461023c5780630902f1ac146102b9578063095ea7b3146102f15780630dfe16811461033157806318160ddd14610355575b600080fd5b61023a600480360360808110156101c457600080fd5b8135916020810135916001600160a01b0360408301351691908101906080810160608201356401000000008111156101fb57600080fd5b82018360208201111561020d57600080fd5b8035906020019184600183028401116401000000008311171561022f57600080fd5b5090925090506105c3565b005b610244610acb565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027e578181015183820152602001610266565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c1610af9565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b61031d6004803603604081101561030757600080fd5b506001600160a01b038135169060200135610b23565b604080519115158252519081900360200190f35b610339610b3a565b604080516001600160a01b039092168252519081900360200190f35b61035d610b49565b60408051918252519081900360200190f35b61031d6004803603606081101561038557600080fd5b506001600160a01b03813581169160208101359091169060400135610b4f565b61035d610be3565b6103b5610c07565b6040805160ff9092168252519081900360200190f35b61035d610c0c565b61023a600480360360408110156103e957600080fd5b506001600160a01b0381358116916020013516610c12565b61035d610c96565b61035d610c9c565b61035d6004803603602081101561042757600080fd5b50356001600160a01b0316610ca2565b61035d6004803603602081101561044d57600080fd5b50356001600160a01b031661111e565b61035d611130565b61035d6004803603602081101561047b57600080fd5b50356001600160a01b0316611136565b6104b1600480360360208110156104a157600080fd5b50356001600160a01b0316611148565b6040805192835260208301919091528051918290030190f35b6102446114dc565b61031d600480360360408110156104e857600080fd5b506001600160a01b0381351690602001356114fb565b61035d611508565b61023a6004803603602081101561051c57600080fd5b50356001600160a01b031661150e565b610339611680565b61033961168f565b61023a600480360360e081101561055257600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561169e565b61035d600480360360408110156105a357600080fd5b506001600160a01b03813581169160200135166118a0565b61023a6118bd565b600c5460011461060e576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55841515806106215750600084115b61065c5760405162461bcd60e51b81526004018080602001828103825260258152602001806122886025913960400191505060405180910390fd5b600080610667610af9565b5091509150816001600160701b03168710801561068c5750806001600160701b031686105b6106c75760405162461bcd60e51b81526004018080602001828103825260218152602001806122d16021913960400191505060405180910390fd5b60065460075460009182916001600160a01b039182169190811690891682148015906107055750806001600160a01b0316896001600160a01b031614155b61074e576040805162461bcd60e51b8152602060048201526015602482015274556e697377617056323a20494e56414c49445f544f60581b604482015290519081900360640190fd5b8a1561075f5761075f828a8d611a1f565b891561077057610770818a8c611a1f565b861561082257886001600160a01b03166310d1e85c338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561086857600080fd5b505afa15801561087c573d6000803e3d6000fd5b505050506040513d602081101561089257600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d602081101561090857600080fd5b5051925060009150506001600160701b0385168a9003831161092b57600061093a565b89856001600160701b03160383035b9050600089856001600160701b0316038311610957576000610966565b89856001600160701b03160383035b905060008211806109775750600081115b6109b25760405162461bcd60e51b81526004018080602001828103825260248152602001806122ad6024913960400191505060405180910390fd5b60006109d46109c2846003611bb9565b6109ce876103e8611bb9565b90611c1c565b905060006109e66109c2846003611bb9565b9050610a0b620f4240610a056001600160701b038b8116908b16611bb9565b90611bb9565b610a158383611bb9565b1015610a57576040805162461bcd60e51b815260206004820152600c60248201526b556e697377617056323a204b60a01b604482015290519081900360640190fd5b5050610a6584848888611c6c565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280601281526020017129bab9b434a9bbb0b8102628102a37b5b2b760711b81525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610b30338484611e2b565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610bce576001600160a01b0384166000908152600260209081526040808320338452909152902054610ba99083611c1c565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610bd9848484611e8d565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610c68576040805162461bcd60e51b81526020600482015260146024820152732ab734b9bbb0b82b191d102327a92124a22222a760611b604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c54600114610cef576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c81905580610cff610af9565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610d5357600080fd5b505afa158015610d67573d6000803e3d6000fd5b505050506040513d6020811015610d7d57600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610dd057600080fd5b505afa158015610de4573d6000803e3d6000fd5b505050506040513d6020811015610dfa57600080fd5b505190506000610e13836001600160701b038716611c1c565b90506000610e2a836001600160701b038716611c1c565b90506000610e388787611f3b565b6000549091508061100f5760055460408051637cd07e4760e01b815290516000926001600160a01b031691637cd07e47916004808301926020929190829003018186803b158015610e8857600080fd5b505afa158015610e9c573d6000803e3d6000fd5b505050506040513d6020811015610eb257600080fd5b50519050336001600160a01b0382161415610f8d57806001600160a01b03166340dc0e376040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0057600080fd5b505afa158015610f14573d6000803e3d6000fd5b505050506040513d6020811015610f2a57600080fd5b505199508915801590610f3f57506000198a14155b610f88576040805162461bcd60e51b81526020600482015260156024820152744261642064657369726564206c697175696469747960581b604482015290519081900360640190fd5b611009565b6001600160a01b03811615610fe2576040805162461bcd60e51b815260206004820152601660248201527526bab9ba103737ba103430bb329036b4b3b930ba37b960511b604482015290519081900360640190fd5b610ffa6103e86109ce610ff58888611bb9565b61207b565b995061100960006103e86120cd565b50611052565b61104f6001600160701b0389166110268684611bb9565b8161102d57fe5b046001600160701b0389166110428685611bb9565b8161104957fe5b04612157565b98505b600089116110915760405162461bcd60e51b815260040180806020018281038252602881526020018061231a6028913960400191505060405180910390fd5b61109b8a8a6120cd565b6110a786868a8a611c6c565b81156110d1576008546110cd906001600160701b0380821691600160701b900416611bb9565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c54600114611196576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c819055806111a6610af9565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b15801561120257600080fd5b505afa158015611216573d6000803e3d6000fd5b505050506040513d602081101561122c57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b15801561127a57600080fd5b505afa15801561128e573d6000803e3d6000fd5b505050506040513d60208110156112a457600080fd5b5051306000908152600160205260408120549192506112c38888611f3b565b600054909150806112d48487611bb9565b816112db57fe5b049a50806112e98486611bb9565b816112f057fe5b04995060008b118015611303575060008a115b61133e5760405162461bcd60e51b81526004018080602001828103825260288152602001806122f26028913960400191505060405180910390fd5b611348308461216f565b611353878d8d611a1f565b61135e868d8c611a1f565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b1580156113a457600080fd5b505afa1580156113b8573d6000803e3d6000fd5b505050506040513d60208110156113ce57600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b15801561141a57600080fd5b505afa15801561142e573d6000803e3d6000fd5b505050506040513d602081101561144457600080fd5b5051935061145485858b8b611c6c565b811561147e5760085461147a906001600160701b0380821691600160701b900416611bb9565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b604051806040016040528060038152602001620534c560ec1b81525081565b6000610b30338484611e8d565b6103e881565b600c54600114611559576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b03948516949093169261160292859287926115fd926001600160701b03169185916370a0823191602480820192602092909190829003018186803b1580156115cb57600080fd5b505afa1580156115df573d6000803e3d6000fd5b505050506040513d60208110156115f557600080fd5b505190611c1c565b611a1f565b61167681846115fd6008600e9054906101000a90046001600160701b03166001600160701b0316856001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156115cb57600080fd5b50506001600c5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b428410156116e8576040805162461bcd60e51b8152602060048201526012602482015271155b9a5cddd85c158c8e881156141254915160721b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa158015611803573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906118395750886001600160a01b0316816001600160a01b0316145b61188a576040805162461bcd60e51b815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611895898989611e2b565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611908576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b81523060048201529051611a18926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561195957600080fd5b505afa15801561196d573d6000803e3d6000fd5b505050506040513d602081101561198357600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b505050506040513d60208110156119fa57600080fd5b50516008546001600160701b0380821691600160701b900416611c6c565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b60208310611acc5780518252601f199092019160209182019101611aad565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611b2e576040519150601f19603f3d011682016040523d82523d6000602084013e611b33565b606091505b5091509150818015611b61575080511580611b615750808060200190516020811015611b5e57600080fd5b50515b611bb2576040805162461bcd60e51b815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b6000811580611bd457505080820282828281611bd157fe5b04145b610b34576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115610b34576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160701b038411801590611c8a57506001600160701b038311155b611cd1576040805162461bcd60e51b8152602060048201526013602482015272556e697377617056323a204f564552464c4f5760681b604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611d0157506001600160701b03841615155b8015611d1557506001600160701b03831615155b15611d80578063ffffffff16611d3d85611d2e86612201565b6001600160e01b031690612213565b600980546001600160e01b03929092169290920201905563ffffffff8116611d6884611d2e87612201565b600a80546001600160e01b0392909216929092020190555b600880546dffffffffffffffffffffffffffff19166001600160701b03888116919091176dffffffffffffffffffffffffffff60701b1916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611eb09082611c1c565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611edf9082612238565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015611f8c57600080fd5b505afa158015611fa0573d6000803e3d6000fd5b505050506040513d6020811015611fb657600080fd5b5051600b546001600160a01b038216158015945091925090612067578015612062576000611ff3610ff56001600160701b03888116908816611bb9565b905060006120008361207b565b90508082111561205f5760006120226120198484611c1c565b60005490611bb9565b9050600061203b83612035866005611bb9565b90612238565b9050600081838161204857fe5b049050801561205b5761205b87826120cd565b5050505b50505b612073565b8015612073576000600b555b505092915050565b600060038211156120be575080600160028204015b818110156120b8578091506002818285816120a757fe5b0401816120b057fe5b049050612090565b506120c8565b81156120c8575060015b919050565b6000546120da9082612238565b60009081556001600160a01b0383168152600160205260409020546120ff9082612238565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106121665781612168565b825b9392505050565b6001600160a01b0382166000908152600160205260409020546121929082611c1c565b6001600160a01b038316600090815260016020526040812091909155546121b99082611c1c565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161223057fe5b049392505050565b80820182811015610b34576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220713a8bf21df06433f34b5c9abf186abb737e72524583bdf420105a289791e24864736f6c634300060c0033034eb78861a8f3b34bc49a4200cb4a9d35221577d320c64d3488903a95ca6b1f1103641e0ab92076c74c119e57d33583aebcb71042dd0d087bed979db0a0e752afd30347b8dee3d3a0f9f8cec400545606fa8c2dd610c9ee436976f5188e668b05dbaa03b0a4940b84b5ec5ba0c8800f2ee518a18109aed0cbde1a57ebb755024feb18be0388a3c2d6db1681a53d859d6d58d8303c7b1e147ba6b80287a571acb1bb8d4ed403224eee6fe0615915f6c4f9674f7a9f78d7591c537768010cd8b51fd961d5da770058200227b3a90e0c6b52fdd2215e533685e6340545feb92846441690b07aa094be6541010058200223a590c8decb343494333628b1ec0af2b950340c0cb30a14ef76fd589d5c244101005820022d12bccad61778592d3fa88e0d1aa1d933c32fabcc319b709ea38af828eb1c41010058200252e7e5470350cd16421f5223b780f5a271d87add76192fb489830beea75d075820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002231f683264584fd863ea64f3aa51a880833178fe667ac57823b7302c4a3403410100582002ac7efbf5914a244cfd4cd78d534e3263290995fe0836723f470f4edb76b21b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820022a1ecdfe8b5ce13826b4f1b856138ba8d77392892d9f8ea7e608aec584ff2646081d64c51ca0005820021540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af541784817d6cdecad88fe1690b9759e9847b9887bc0361225f13529937b7dc9b76e276d7c10bf906144884f891e07d4a44117c614ac80219c6d6031d87497637290a75ed490224908ebc9edc7aa5b394a60801811e0fecbf2818d503f75abdf0517903d47415350d9796c0bf36cd46d41b14baa9762dd28979c668b903278b7a3db338236e98d8d10f1743a2de8e996bff59e4fd04d62b162080f287c400582002978b1b4de4fc4acfb1bc238ff6944e6c9dabad72ab9e37d1002fa824024cef5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200219d28cc87583ee666e5a91a4a35dbec2451d5715d7587bdc3b3b9864a758f64101005820026cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68854c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200582002542117fd6a33455db8110c6d2c6ed00b2a23e9a12b94aefbceb6ea7293b0e141010058200279e1f54f17380636393f0aa5834861f4e7b6d4f0df870cbd149fd181290fa74628c853ac5527037536be761f0e755c71c0fd7e36624c093c0cc45fcc7891e0d2c38be8984b71c7033896f524d30163b88abe39877783befe580ad226c081b0bc40439f329c8116f101410a0219ca6103b1a390c7d309779b0fc91f8b3fb3d391b67f722cdcb40b8464590de095b80ae800582002a9f685fe0342965cf5f227df1250ba650659d1aa94b10b36036a6c9c34dcec46efebcc3b12bf03b5a7d7cdfaaae06af17bf2c44573fd23aa1eb32cb67299e4e4bd76a0802985df036daf468c19a82e46eec413c4572ad6a1265a8e5030436358a25e3d92f63ca91c005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8501125bb55c1ea49969ff90489f8105fb10058200258ec11f066594df4fb6c4f62774dcf937482586d855001742655f6c9e2165d410100582002415e2702441a160ca6c409c9c0957aa20084c251d0e8cda45d548ceafa4a51410102194166005820023b5e2bdc402e9deb8423521521f7dbe097efc63a2a183f2f125f87990e4f265820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200260df04be8c7909655ce881910dbfff130fadcd228ff1648b4f0fd039d6cb6c410100582002df9369790615084088066a657ba979989b844ec7abe0748aba7be9935a5cea46106279eb389c00582002771bfb447056b2990cf9d064f294959621207f1c5b9607361c1e21e94cf0514702c33cbba2069f00582002d498d3803a2d0e07d225374d412f672c83c1e971a98a7bd7d16ee2c2c86edc41010375d933f5ef4d4f51d1c134b98240f004ab6fbce0c0b61e91aa28648c6fbb2d5e00582003966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70410100582003da2b5900fa2f70b0eb9f18cd006644ea6d7f5d532a782e113f9a1653f1a2e04101021902400219e29403e688dbcb2794d58f11935681a489bb45b155ba6b0869f31a92b676e713c89e0d005820025273f6c3e160f1cf7f91f27d1103a55816ff8db5ee53fc0d18acfc6286c7b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200303dcd16691ec0fc550bad50a173534e8dc1349d7b53533c3a73235241d03b04101005820037a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30582065cf54db00000000000016229d3f0c874c2d00000000000000011910f34d8b600219c0000058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5415d4c048f83bd7e37d49ea4c83a07267ec4203da00582002ce6d0bea2b26d42e2b3116e2d58e042b524a9cd50cf29dccfa8e5c88b214664101005820020f1be922405b927d37115152f67ebc29cc38a2254edd61b9f8b7ed35036b67410100582002400c69e7f50d48e4b1303c03842eea64a6d5b5a6a63912727aa9ae54f933f94cffffffffffede6ede0e67e58005820021a0a806ad3d4a04084e681e24a01f6a635f00ceaa6021b67a85498b3c4c5fa4101021961cc0219ffff05581d03cbd34801413081f9f109a768c4e2fb1e03805bce11932a6757a0269007011923770219800801410202191e280326c06d9114daa2c3500074c4999517ea8b50d0c419e856151b534caa6f2d726d0219ffff0219ffff03efd61737ac460aa948c1e6cf057a8ddfde9cbde8b0841d1a4b478914ae3dc736031cb9f550620cd86a90c11e3769cca0375344a0aef125550d8d66f241ad2490c603e8078f2dca8b781ac8d7ae723c3f712211a4e176f463099ed0831b6ba960f225030e258e0eff521684e47310f092646104d0a7e811cd85e8e62e263c402db0fdd103240424c30aab25b6cb84be94c45a3dbe58b61b7389fb7caba746cc8b0f19c54603ca0abea61935320c7848abdbe58dd30b2b99de70db7b24bb72eeb787cbdd876403bce36a66277a49f797de5293a0b09da2fee4e2ae25b423a8f9a855d01d0e5d0703c9dd75db7638dd78505e469951b09a38ac18567117f3c45a0bac2da1c602bccf03a3f5a548336f18dff450f979f59785576e2bdc962b63a2a6d31e962896dee5150382222a837ebb748a275828544e0938fd75bc56e1246ee7d95ac84f0423c8109203f8a0dc4d96a0e1d03f68ee42556242e6b0a125298a23d607701730bff0249e62039eb71ec08a7d9c3db29678631580c0021e267b5ef95a452194e4e4ea0244442703bc58b115a288151d33557f49c6037ffce0507018e68aec915c5f673dc05b2b9803a52ebd11ceba38a9a5ecfe88b52236ecbce41f22dd45b20e04c8447f978f7f9e037f5ae35c7f97acbb0af946ae73cd536f3ec3185913d7d9ceccd5f551fec8ea470321e68a7619f1901b402e31f03dbfe383ee54c9a5d37a626784999e336da6c7fe05581e031f2e01360dcd3f6e8a86a414c75ae5c2241110393ad603130827c95dc00c074701a5c98a0fa0000332c54686f100db3d7a3f5ae80f685799e05fd072e5a8cffab723c8867404851f05581e03f865f7b1933a128d09734819dff40acfc5618107e428be97c29b369670040104590696608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100b2578063a638980c146100d2578063b1283e77146100e5578063f2fde38b1461011f57600080fd5b8063078e209714610082578063615fc1bb14610097578063715018a6146100aa575b600080fd5b6100956100903660046105a6565b610132565b005b6100956100a53660046105e2565b6101f0565b610095610289565b6000546040516001600160a01b0390911681526020015b60405180910390f35b6100956100e036600461060e565b6102ef565b6100f86100f3366004610638565b6103f1565b604080516001600160a01b03909416845291151560208401521515908201526060016100c9565b61009561012d366004610651565b610430565b6000546001600160a01b031633146101915760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6000600184815481106101a6576101a6610673565b60009182526020909120018054921515600160a01b0274ffffffffffffffffffffffffffffffffffffffffff199093166001600160a01b0390941693909317919091179091555050565b6000546001600160a01b0316331461024a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610188565b60006001838154811061025f5761025f610673565b60009182526020909120018054921515600160a81b0260ff60a81b19909316929092179091555050565b6000546001600160a01b031633146102e35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610188565b6102ed6000610512565b565b6000546001600160a01b031633146103495760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610188565b604080516060810182526001600160a01b0393841681529115156020830190815260019183018281528254808401845560009390935292517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69092018054915193511515600160a81b0260ff60a81b19941515600160a01b0274ffffffffffffffffffffffffffffffffffffffffff1990931693909516929092171791909116919091179055565b6001818154811061040157600080fd5b6000918252602090912001546001600160a01b038116915060ff600160a01b8204811691600160a81b90041683565b6000546001600160a01b0316331461048a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610188565b6001600160a01b0381166105065760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610188565b61050f81610512565b50565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461059157600080fd5b919050565b8035801515811461059157600080fd5b6000806000606084860312156105bb57600080fd5b833592506105cb6020850161057a565b91506105d960408501610596565b90509250925092565b600080604083850312156105f557600080fd5b8235915061060560208401610596565b90509250929050565b6000806040838503121561062157600080fd5b61062a8361057a565b915061060560208401610596565b60006020828403121561064a57600080fd5b5035919050565b60006020828403121561066357600080fd5b61066c8261057a565b9392505050565b634e487b7160e01b600052603260045260246000fdfea164736f6c634300080d000a005820038d4c8459f4ad97d102f07bc01affa8d57ffbb0efea6c2cafb3ede9d1f67ca056010198661956ed6e2f5fc99c93d909ec28fdc3d48108005820030f346cde24a229e6350c15ac916ce091950e58cf25a3bb52ace5f29c4e6e905601014d75bcf874262050e7fb578ef44a97895d087732021920080141010351973a8930317cea985fc5390c9a25f074512d53d936bf94c689132eab3bd5530058210310c2fc0e775750a42658c82245eb4e6b2dde6c94551263ee167ff10e63925460560101bba48d1f0115cb4859a881ddf8c5afb410c3b39e00582002fae7d88d3202765861d3bf8af4fff3ab5293dab6070c6fa8f55d3c5e93a72c55011e7e05af7de55b69b72953e569bfe99bed8bb68a0058200231992c3e606a87d1a4ff13b2aa34048567de08e6dc4661e062dbbfc737bb1d560100b2ecfe4e4d61f8790bbb9de2d1259b9e2410cea502194008005820020e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6410d005820022787652f8eacc66cda8b4b73a1b9c31381474fe9e723b0ba866bfbd5dde02b560101561106a829b3148c044b642d25a730ebdb5bf5cd00582002d9d894133a730aa651ef62d26b0ffa846233c74177a591a4a896adfda97d225501545e06c1b43dc53a6520b5fdeab232002b478e6002182a005821030f1c97443847c789de7dfa956a43904c2a85104210919072378506a188b54eb055012fa4afc0dc9384c671535f1b91e89f9917747f0500582103c87d541e7563f7326faaad804b757103e4778479268dcf2932ef7d4addff3d5056010128f180f3fc7eb636164a51e7a0afeff16d90d0870351e86e0f3244e8d4bc3d9b510bac798e9ff1898c83f9fcc1285fb52b39a5338900582103bd70195d4d0e3f7083b9c3ff15c2ad7d887890ad62cfc5abf3723f4d8d1a5990560100f81f774782fc61ad0fd8eb8b179c15fb0771f85a0219f91505581e030192408c4937644614cea7ef83d622214770e452a6caf86d5f79cbc090070119069605581e03201efed1dfd2d134df4085d1c05f9ddf0b70d8f3b09759e3b7b13645f00c03465d2305a5f20005581e03dca0f09aeac9720e87de0b0979e5068506e59500062454ac179f2952300c1901a0470552e4e22514d3031659de68e6a279da28599e113109376d848bf72a54b56d945750294b8c97e773030657e508cc6d404d8cc89513d451fab06b3288013a5753906560d9cbed22571f05581e03a40fd32757e2ae58c694eaf4da3c4a825dbd184ff9b26584d776f28dc007011bffffffffffffffff05581e03e5abd841815bb7522cc97ab049b07cf85d9ccbe12dcd13ec05047794f00c024709fad4e0af6e0002198a5e033fd381aa5b78ba8c0b948ce0ba74b5e74d34e3cbf09f8f0d6847af9f77b70e3a030509049c229f19131a6bc49455129f7f838dfc17fe184e5ab8b5f09cbb7b938b031ac5cb6a7e00c4fe1ad850150bafbac94e4677a89aa7d64ce7fd05079d0b3b54034dbefc045a746b0472789f7c767e650c9fc33ea2c24b915d021a5baf3199aa240318d1a2bc11ddc83ebe0903ff78c6db5acf1577b34435a1c453a767f3f7cdf91403bb21ac79301f0d24e584a714a875c362f6c691c318f191c6082bbd70a63c9b16039dbe81e105c7bd3d2f8b9a9c9cb94e73beb8560e0ba69269186f711eeed299fd038f44eeb8065dee985350db76d0e127ad75feaa372325202233d1b5a7707387ae03aeb18a01ffd21df489500f186adb40b0ccc18c6d02618057cc870374b93b38b203676b5cb298623918105e0950e80a0a92fb40d74ffefa63e2d58affe75eff8725033fdd3f01e67602c3a7ff877a504ef02423c3d18342832715f5cf7712a0f85dbd034e8d8dccbb4864a1f9547648ee95a20c830b661bd0c427c993f56918a54a05a6033756b79214a381a898ff26eed913664cc1af0aadaad9bd9df6118e2e91629488037412901bb952fe3b20dd7fe8a296c6a0c7af4acb22775c655defcc63fd6c7de50384e2cf4cbf5303166173e05ac80599bcc134bca2b948123b927c53ea49dd219f0219ffff0219ffff03570420dc1afa2bbc213425a51f2d61df54e2682071dac4f530331819c5dcf22303dfc2444734167db3f627fc00f9d72df3f12bd6ea5bacc004845f2017aba0c44d03af1a88610416328a9e75bd4cfef8290b5b34ce74353e27f3faeb9e1dfa397c5403a867ea8e394442994b2bef1de4d089d75edbb13153f0c325e27e7c6dc5755b62030b65fbfa5f2ff6c58e9a671560fed737921d73557c8902740a80b951fb97be570350a829ad3b7d0d265ca83ab464dac9460c707854195f8011c824bdbc6db2b6c70375ba5d946f4fbba1f66377c175babf2ea36d20b4aa0c26df1025646b4a085ffa035ec6ba01ce74d229db09bd988614ca6cd2849fb9570f53129bf913b55d3cdc71034373d61499e5843bcc7f7394a56f9d27b77aa992749b5550d66b728c7261585f035b92014f3e35310178bf753967164f57daff917b8b45843033780a8a38735c780219ffff03d32293516bf2f47e35807c831b79cc8a744ee1556e827d1376f3da965eb32b9c039b713c7b2a81affafc1b58e5ce63996996ecb2144df774096532309c8bbcfc0f035278e60c48f30e37ab6901075d68d19d9797dbd4ef58ebd4512db40cd9f52c1a0352520857ac47c340fd3c3d51b9df32845084eec773fc28dd80408c6c052d98260309d9695d1907f7d4bbabb06bb1014772a87ccf4075b683c65eef9d206c37b7b003adebf82a44538617bf4f30c5350140b48c67c791b8c45c773bf75d61ce7aa940037bb25a323b0b69c7f0e321249b528012abba223496a309d769280403c4f74074033cd4f7c7c4ba87fefe3749f590d4c8fb2cf83896d7df391d7ecc5b98d9c4b75c03d6564a4cecb9088ce341e0882c82d0bc8aff46be6f780183a35a62e3825eca860219ffff034d4fafed62794c9b1a496b9648029ceeb8fa516dd4e2a3dae15ab040d1cfb4d7037318bfe5e32c1bb3c3c91c2f8ec793a93b0ff63e1d69fca33204c94d45ed5aca03207697a6c49061bfc3bc25acc526ffbb201fb3fc11eff24e66ac748e07c5091c0391a7baa69405bc2076446d7bb7e73a8724446d876e11d357e0f4b6e5f2a275c103aa59cf920a778e20fcaa5b1514e224ff6a024cd84649c2384befd1702efa305703bc2e314b897f4fad0beb12dffddb7a33958152c6c6055b3aab2173f63c241bbd035939b697b49114a6d775f27d182b331b9a24381b127c560a0520d49eafb307dc034a3772e8be533119432175bfb4d7a74d045ca353feeb1210683fa43f72c45ed00368ba4612209e122014aed1d09a608774017142b840f0b3d1d9252d0d6be797b403a41ee095e5a1977e71b33f8ab64f86c88983c10d63ce7ecafe3c45ce2515a91a03b0ed13d652ae2fc3d3f9ccbb5d51e31a7e1e43a5796276815ecaf6408bed723e03deebf4c644560042eb505f7e2ec96d265ea36abe58344efe11abb32391b3212a036c0dd41246073eec0057623a6ccda3e5fd5ddc8df57a334784513ca7eb7580f7035c2ed0ca890cb6787c96a8932dba8a4fe0c9dbf8cede065c63da16455fd6a98f05581e037774300bd3e2cb11c0bb3b770f8801d883637a430d4145d54ccaee877004010361ae0e0e8689bb86eb8608d27d9b160576590345489f271f5bddae62b130687903df9d50253b1425d47bcfb6df33b66d27e834b3a9903ab64ac836b9de082615ed05581e03fa5e37aa5fbb1c2a8143e6172aa8036ecf21bd9f0300485ae31ac4b8f007011bffffffffffffffff05581e03a23521ca0c020d8d7480d405fba23aaa3f3703455f1e1f08b77fa17c900c09471ca33b6e7d460003f2af9e7cd85616b04af969b625cbfaf7b4e26ed53032b3ac2aa7f626fa197cd003c83fd498ab88bb852ca77ddc8364e0f4703c5232a6fe66b1f812ed520b08f30005581e03b0dedeb04b08ace9ab832947991697f4ab13eddf5e6e06ebcfb512a9300c02466ff04045bf7805581d0278019b1996b1713ead30f02a25ee305d7fa751eaf0723fd548eab20d0c1935e84708282ec4ad336c0399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe90803aac56103ea22f666ca033940c8d0720d6fd6a26396bfa5f992c2012781b996f005581d02679fd8ad2add6b410eacac83fa94d42d839c184fb322e1461dc6ed2807011bffffffffffffffff02190402021913d403fb6a6be124bba89be57e0b8babe4ecaec809052b78fbde5eb9481da0e618b7b703a3b4e69a8b1c33673f4b747e31be16c2fd1e73e69b3ba9225e26d9f7bed26f3a03cf63b79865ee64537b035330842fe732a7b28667e3d14bb4d2a7b418bc23c2ea034c36bddba19032f2b3055eeeaf38b6c948d7b9fa33f2d3b6e92dc59b2cb27f2803f8e2d64d7018efee9e2776cd4014551e45da9be76e18f079220b360a2293f4850378d1e9eb3c4364de4649742262d43cb405d36dc82703d00417c6152547d5c62e03a36d42ab8e93b36efa5eeaf8ac5ca6f6a37d3bde6b66e0809cba14773c3095bb0380444dcc5a4d95117fce55a42584ef3e81df07ee5f8a11e6d48edd6058578d8b031b14bad577c5674e1db2794f5bfac441d6dbc43c4dbed8a484348b125b01781403dfb2b71272f3e437b308cfdb9000ed471fd0f2c4f32aed146c5f1674274be068030f018f335bcb0e2068ce48bc8988f0fb4c175a519bd11d216194e322b7ff127303cc7e7e4774a232ce5a2c3659f2bca291ef4fd43bd5cddd8bcfb916cf2311709103d371cb4027a4c27df3635113736581c294c1492c75cb00ee2ef7cd48de106d02036f5289b4920cd01009d87470cc038a64f225dfc12a81a7c422733c748c209c9d0219ffff03cb898fa1b41607acbe9c0ec054311982c5561614f94da12a1fe0a6bbdc45c9ce037249a37864b4eba8c14e14761dcb05ad5667ffc1f8ab48cb45e46e9d2365d8be030faf314a2f8828ef391892326601283a6849633919d47480fd73afe784d686d8034e4485c09b67038fed8a3a16cd3d12445d1bab2cf6d7a004fe19399cf8fe8512030871f488ff167e896fc3a1db778c8e84149195ac2050487e81c1868e1b8847180385c8c197665aff68ab26fb4f3f67e16879334c23a1d23c268d9bf84b4cd8c54103c91c5b1a7d555a3fe299f4071a77a99dbdd53a41af472848f22ce545ff32a7c5039e19ba7c4285d69955bdc8869e55eead08c8602f37695d29e43a8baedda92d34036e40118b28f4f4308d82303558e6d7badb495081cd366d66678eb4735952a3b903cc8d041442521b217857e70264804fe35a371b97128da8c742cb92afda8bb99a033624f4b0ce2642baad2c80b278e69c49db9c7ed09e7df12db2e3e81f7191ec5b03b9e204878a6d7deef66a470f410178487b678fbd37f8fd82cf008cdd7d6789800219ffff03fcdb124a509a06489b345a505bf7b65392e7fc858ea69aaa21a39ccda3ce3ece037abcb5e9a87a521f4982abb9527c0c25cca8c449c7c1b5498bc48138de5fc79a03c60943a91b7ec5037ce873b57f1dcfc9af580884099f365f6db731047119db0203786e769f941be1bf000cd36d47e9d656eaae4f101b65a8af4e63207b1753145903f943ac690dfe4d9e4aa36c8260ebcd8f3c408c766884c504cdfcc8027d9d161b035a0af1716ba4949a2931803128baf51bc90484737f67ce19c9f6c56dc21c5a330316fa01a44bbb577eb060659edbcca667751967d287e298397daea2b8a37164600384e6ad340b71a8c05d59e3794b4fa5ebd4bdd344a8c1b2ce6f976bca95b8746403ff508b6a9210db7f7aa80df75714224dbb8b2032b249a6d07437aa7569e5ac4e032fe125cb7a92f27f00949d5bf73d60f8a89dba06552831ae42b4f3359dadd8ba03c6b656fd964ad5c9e1c3812b78aa863fa44ce01524e4d8c24420a58a6aeb89a605581d024eb76b84c6de9248515d4157d4589ce0c717f3f3358c40a98672004c0c104701b6c6abf9eeb005581d02ef906a3e054699036b6bfe9d60a973535020403d534385cb999eb8780c034838eab8a0198e616305581d024bd89334d7f080e2d77e3886d26daaa5903ea691ff87a27ac82392af04070219090805581e0324a8bc5c4fbc723356374147183e14225625feac966dbc024b7046e600040505581e03703a25c2af709afae27ed0b6c5d4b20277c979aae2cffe68d8d1d9b3c00c0946092c18f475480318ff997b67c7559f3432e9dbcbf2ce91bbc2bd1f549fdf3b1b4238475d1ef59205581e039b6ff47f6af8f06fc80413f7dd7b9140432a7cd781bd6aea2dd64c4be00c014670717534a60005581e03efeeb2a2a0e6d01073d72fb5baffa67c8b9224bdd92c5ac38c0df37220040205581e03e821ffa09e06441aa0bac4647d318d85de442ada5c18870d4393163c500c024701794ec560fb600322209ebf33a54e0e498bbad8195364d2719b57293ebb6a6965457b9cdf4ccc490366a8987c22096bce895a37e425ffb3a5a049f5501fe20b11b3acf630f632c6d405581e03762a562c8df7ace9bfd089e043642e2eb808b9178cb349d2d5a3dc14a00c0445012a05f2000219ce7703a76c7606c069f629853d0114821a04131acdc37d80f5f4d8ec2355c3335f5b670373e94dd80d7758048ffb2b2a38105f9e7bd7e057d9efd28ded84ab7a8a4f05b903eebe17b7425c5d0d534f904a253aa02af7050f1908a2aa3a17b95370afeb845b03f809b20cdd4b641f61c248c1bd3222285089b4c77abba6044613da49a536b10c03f74e96c530a70462f001489dc031bfddb186252636430f01d3a2c697b243d33503b5a383fe1b5de46c06bc475084c09ae0af5f056ad84a91427f42d64f0a604a41036b15bac0cf3d12f0b652ffca8e44f4d99c8863a6ff541b211c9018d092a3121403119e7752a9a81f97496aacd3449459de0a7155bd4f79e10c771f5444aebb3fb103b3ff28f4e90c38e702581b8390facb2de41f6ba006ec2117bb40545bd9ef196803ac75e0825149fe8268be7906fab302da67962693e12ae6da7b92ae5aca0e4a1a0346f530cec27e531f7f6caaba7e9168228c12010e5d519b04cacd185c623f98ef03078188f6ba3adf19f4e72a8d825a1df55c7081ade51dd1508e5e01462c9200c203c2963c74e47641a4074a26c3239cd5fe10ff8e56da8becb57e34611afa1eb47d03a94505ecd9cd4e9b7d74cf8ec31347e959db2faddce1e25e113929ead21833030219ffff03a80d4185add9c65c56df49a04163ba8b3f131f15292f709632f6213337e8661303a6390b57473196c9be4e24090518c2eaf315c783cb0f59aac164d2559164581d03669cce4f5e4bad108a744e263c239b2410e184822bb0998bc5301d1698bec9fe03120032357a41d1a452fc2aa1afc7f7e163c27d6e075b9965766078e7fd176fc703e9d85b37dbbca463ee0f6aa95417cdc1a65b4cb8d30da2a6d68bf272618c76ac0345d4ddcd1d9545ddd17e4f15f2959ae82ada3a3e1afe5ac937362314524b80660219ffff034610a0da1b9a74408919283d2bf2593903539000d76a112acadae461c8c04b0a03d54ddef7e5cb65311e3455328ca6f97b343eb66facece29b5c11410072acc68e039b7b7d3d045197fa968870d0a2b127112545d21f42916964815261b8f7f36472031373cd2fb357ce7c9df54767a38031fc553c6b37cbfdfc790a6eacf577d77b4e03c8378d69d6d59185c30d541caeccd29a2cbe5c63d347070b48d0680fa36fcb60037152c874164a763caff81c7d986c4d945df54e5f81093bb89b199321816f0dd903a81f59ae43f798df985ca440938c5885cf8a42aa4b98da1489ce304fb8b7110803e14406aa1efcd57efeba05e8b2c8f7c797feb9f6c005f7f4be476accd7e7c74a0341e196364dc5c711c981cb28470a5ab4e96d970a62d6bd2b530fa60506d058e403cd9c99723184ee610f7cf0fb54c80dbf53acfbae8b64bd88106c093e898f9e460396f99ed7a8d3357be1135ff401089ec9100e9a37dcb026845b7357302f72af5b03263286cb21704eba3de8a2ffb9886fc01ca171da7f50b45dc2b778cb0f2b67cf03ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e03651294162c8990fd475fe6170e23557e4e3154faeb9e60a0f0d273a97007011bffffffffffffffff03a0b62a9b2058c2fe8b17b551a2d35c1e2fbe4dc1fb2557805c48c432a78ed31805581d02ecdb1e84fc5943483acd48f61d0975d6bb39f264a9c88520e921b7e8040305581d028d3c0192b1e07772a40157aa40103253188a13a106e6be7d7148977e08471f3f5ea4a850000219044005581e03572904b2c971ad6f41b90146bf0e0800d4b9a375982d2a2ed8b2b8e020040305581e03f2fc35c6cdeb22ab3e52eaaa2cd2672ab36069308ec4d015ee052688d0040303aea7ad59258834c52abcc83978dc973058b800aa19f1ca6495e2a36dbdcf525a03b2be063c249e1545511be947cbdcc5e36a54d107c51cfb49439a197a2c6e133b021911e503b5572490a36539aa9914fae98c112b2c8709ac019d28b3162f009fdb176842e103429fde647abddd8cb12ef279228e23fad3a44e82216ea00c6dfa730b4ff17ca5030041e5112e0335a77814ee5ced260eac90af79e9528feeb0214fb8e4e3416e920374bc946c309e861f5e47e820f94d78b97ae0c472317b435d3bdf147b9c8952c703aa38f0d0ffb629672be5720ad7fff17a40634a05587236fb2fdfff2c6bdc859e034b78b1b71d145b69c7c1401cae4c962b83d84862458d02ee301833aed8794bdd036702f367b0173eaaff3bdc13b99158a85142b661541dbec8e2ae06bd595e198c03689d79700390ecd82c926f876422ae8780200c19250fb53c658bae3f6209df3f0303d8266aac848e98d6c1b037b5e28b37bfff08d2409d7c4cd7746c6811a43d6b03ed513fb25f893f3214abf4e20ecaabb721465863c91272d72271b8dcd9ae15a00372864cb462a66ea0fe0e6912e4b36b289a7b412bf07f2eeddf6665a5143bff0403b12a029bea850d6873dc7b6c842d7ad51d1c54e0fd2d3c0667a4b10e5afa82db03f18174e61f285a10cc4c907cc262bc8711dc0452300c4baae97668f02265209a03b61dd771322683f4cd3a908919335c3f698ddfd15202c081c8e42085b070648e0219ffff032d1111c748814061242442f3235973ddc8ef604dca788cb3e1b4ef36310ba93a03818a408c76ea3b63c6433f79cf7065df46c06bc4a05d02d2df10ac24d55625d703b61010dbe2be1fb5e875fe1eb5a1acf05e7d36a1bda3513e0273f6688db7a88f0394221a2a4011953b40cde1b55ab2b0c392a92140e6b794eee875abda9b2f97ad039b79401ecf37251da638000ce0b28dcac43f7278edb13ec52ff7ceab4c3b9e3503ae732c2863875a9ea47ec802a9433acc3cbe0ee3c16a895483e9d87a8a811d870303a27eeb254ce42ed79ed5cbc0c80284a4046978f54d22ebf8219552f0d1f2a003c1061c79a1ee3fcf4400b93797741b12ef91dfb15a4f375b3eaca6de75ae0b0b03db86049e7463be98e91102062d057cd13ec64c224b9546bfd914b738c1d3076303760de98cb2b01365ec069861f897492f7f5444a7fbf42296822d609e5b803458037128187a42fa6dfe6af252ae868e62fa0ae02a1c11abbc7197f2efca994ff9ec0328ad243a07f729089bdbc5f8bfa8d17858e76c348a9bc639f94909fc22b639cb03a339f2e31cff8bb5637d2fa1673c1ee851b01c8ccfbf803a1c98a8097ec9a1e203b44157447b8378240506ba67791ce90764e3223ad08cf2e77ea65bd6dec5a81a035bb90e96acd21fb6cfdbbd6f0e51b8c174b7a859a0817a9d8402b17a147139ee0219ffff03e6b8564d5434ef859d11fd3d3193220cefae3c602c1f0598edacdb7292b88288037dd0794786fe7b9efcc7a77ede2785a36eef267e093f75588383959e378b668b0219ffff037a0f8bb760ef150ca717dc6cc087fd6d65bd322ea0ac67dbf1c199afedbc4026039fd16207bc9a28592f8d592f0cb1f42e4061a1490e530b22cff684a0751154f3036a4eec2f235f44d90aceb60ec7d70c1552b446cb5be36a84611b1b039e69c8bd03247a6bcd5326c2b459ef1ca499ff432277c669cc7fb3d939c73eea2fa404a225031f510a378f0b3f5abcaaa05c81fab4c142f2e35a12505ee69493fca018502f8e03e4110b2152181cc94209857c927a167e37044a10e726cc9ae4fa5a4897245ea9038bf2d5a7449602b843b814e680d7ceccf21ac47b4e2d586f47dd4492e7eebe80030e0cb62d6e9a833488bb7ee9a9771f2b4e9aca329bbf8162d90c7864341195af03d8b070af18c310bd3519662128b7505b095287519aa52f4477e4be6d2b066e7503fbdb8beeb70a662698e140253df60918a8eb58643edf7e6a619251cd498f95cf0303e500a27a5a99319950b7bec3d9432b4bead3e9552ff3cea93315399822321403ec8187d0353b757d5b0e591b6f0d3c7579811c86e483aefc5a1538d8632f717b03e532d46686d1bcb9d1c7071e766dc763c56de250f18c31346f87550592b951cf039bfe3a15627db47dc2a88d2a0f9e3030102517b860bccc1fe29fa944f71a41ce03da9e94e738094cbda9d063393169d11ad96da857ce2afb383d4a2b92c431a9e003df8f858dcf4dc19294ccfced82f1d99ff94a7341a1e16da787c8712c9199818603059814a937da345eb7887022a93fa53c0b8774218c0a02dbf2308a4f25778e1103a7591d8ed36f59d67aeabeefe46a33152e9af6735ad50e1940cd914204b1035203a4c9f47c97730408f294685efb08d3fdf975df2578f5dda8b0dd126ea57be076033cfeb5ef685493b3630f6d788a7f6c1bc4089523b7371363c721f6544f14cef8031833bebfeb98a166bf5b8b32859f7a3c4a0ed8d6ca3e1774958c6c4c13d1a97f03ac48e03dec2fa04c6c2f40d197ee47ab116eb0cde5594ae2dacb19ae68205782035a3f1625fdd8979ca6c0e4de79f7c231e88b4a98c2ae8b5e98a6a6fc7b8c0e1e0341dc25f94402f2106640601f9aeeb1a27c448e0bb1907d177da4e973fbb9ed5b032a0048c846a3dc5fd86a82cb333cbfc3bc9b0ca20b4a0d43b24edb36d37be1cc031fdb69ce32876a9c35fd337806cd078c1acc6921d30c19213daef055fb245b85036eff375c66c5d6be4c1553525aa563b45dd8ce4dcd625e76de159edfb6ae79e4032a87541db8df920c91048b49aaa544300c6ad6e6f1566ff79c5ee77fc8d4c95b05581e032a70c0d19fc4a6c377e5c5dca11dee8e98a8004de6babdb1ea896524f0040105581e034f7c3c7b32803f79c2ee6ee105eea9d7930cd8a84ba2a949e856927ba0040203c7fba086a880801d411e6684843328c99e3169655001be522bff6f913ea15eea037a3670f78c75958f13f8579474b348612a80af61fa9b61b2c81c415523f170590605581e031aa6f93911b24337be7ee11a955d0e6dfdfb2c97dbab54d6641f435c4007011bffffffffffffffff05581d02ed434dbdadf4f1902fb176996d7ccbb2f69a2196d41fded256248f250c184f48103a76ba2b71040305581d02a744243d3bf1a0b4631a345b1a182c8781250a273dfe2dcc36a5ae4d0c02465df48df83b780219800805581e03c327f18306f0b9c943dc9587ceeb4fc119752ebcd4161d566727a92550040605581e03368ab93fbdb4c3e00c31ee9bb76468f51f02bb0fcc99ef07d3c65e08e00c014703d6a5cf73e1790219bb280332877ebbec4e59e61c07db1cf25129db746bbe737c859cd74da60ac704cb49ef03c35dc894a9ff7a4b9d430876964e74cb76745b641ffbcc9f02f263ba02e8e7310349c2b6a466f8bde2eb0f490f35d8a3deb0948e6956159723c5577d3699b6e38c03452706f0233688ef83be88055e66872bb8b753d1572b1ff5d352db301a73a7f603268fe7462a01764f90578a58674d059226148dbe5f7bef5370117b3b640ae83003a6231cacdfe35560efd7c7349723812790dcccd760ff0de077ffa88ad023f21f03b587218135b96dcf7e1f6fa3954d1801091ae3f6aab35ae26dc3d60eb1053d5b0327888d7ff0ff87aa6698c2b74726c226bcd825cbc8bf2f106508cd557e2996400219ffff034f722c02e0e20e212e5ab298c04d24f190e550a12ff440dc63e2f50922674443032ecc0972d6d806fb66601fd06bd8e1542b9cd00f4ddfdce5f8af01c89f6c3b8b034b00271d6be15c77693dfd5a50b67ffc4823cabf21a0fab954268fd97af0184503f722a1cea3157d390f7f79b6901dad2c4f3d3621ace7978a27ea95dfb1710dc00219ffff03e433ac0301c5fb5629be8e0b29badd82062f1d7945b3db6185818aa6ced9477003f68a4b0e5416c46adf74724722dddf7b3ac3658cb5f1bb6914346844d6341e700362f6378c2404bc246a3e5fde19a9c527ca753f9a6d45242a5eabd1147259a74103a0cd5b29ebfd6963313530cb54ab15fcf4f68e00ad589cd27857e670594fcc2403be67c4047dc574c54761d07630166f334efe8449006c8e93c691a7d0c10c7537033ec65613afc9780c8e89b672e800c03611e5df95722e54bf89f13e09094a3bdd0219ffff030a0bc99a62010c733fba41cb641262a364d052633c721a293a02a77421cf7d9303644578e4f478b4dc393521f5d69602df0391bc99f330f4206709b4ae2b1b4fda039b2a3526a2f08b7b187cf111028d1f35c636d7c422f3d918e6779a5cc542b2de03545f180d37de198aa162db883a17ca8ba0435862f288c53242bc12883ff6b1730219ffff0355f8e37492d7c82bf5160ccf0221ec1fdb4ba0f5971f3b989d734ee5fbd97827033644785d320e9f25e83ef38bef9a28dc3e7e2326de3ac25879dd20017f00f99903d8a213d1430587a6abb3566b512cdbea589b7efcdc6fe2c8763a76bcfe167307031a35f93c02dc815615d1a40198f7bd1ea2ea552d77c01034237fad1980e7439703de5fe8049659dad51eecf02e9c74c26f1db69256002508e47a5f21f72f5fc38d03db6d646cb887bb4c9e3e46429990b92a4758f4412b394a4a9b1c14f351bbc3330328397a1a4e14f37ca4453e6a08068cda4c05c753a568fc98a14b026ad076ad1f03ee9e47ec214d7526a32627c6b3e7c793845fd954a1eeb07dc3e756c4b352b22903124c38239b63bd7da32d2ec716aec286d49322b379d5a90651e852936f6da9a00319864b294e46cb2fc4e15e0ecd00297d742ce4ce1c2e73abd1b3ebeafc38f4ea03ac33bf679ee9473306982e965d2c93ae8ea8db463507c6c70a218814181be53b038eb5709410854f63aaafe3d2eaa258d34c66af0d527b1b3d791e34d64762611b03da82125aa2fdbbf8e9cb1f1ea84bada108b940a85d4043d27d39008118295d60032198c762fba9c6f6d86beb5c97b6e8d144720eeb39cac90f1f882096905fa69503a7e15b30884266c728d0ac61034ba9315ca1c1c63a81e32e522c73dfe1ef35a103001523f923824cc033aadc187faf4ee8eed8886cbc8c10fe0367e33e01d07db70324a3c9ea9d599a1280723769a5b3792191c618519375518daed2f67408dcc3f90379fd56251dd3d01c6b5c611037e5d5fe40330ebd80b9ca4d591640d8505b69640370d77d4a48fe157c38e9980b49a4d3b8941c8d97548bd72879af2b8672509d5a031117b07e36be6a91aab74bb940d7a5a45979d3b80d0bb6678510382ddd4b77a3039b0b9e14a173b5bfed9eaeacbd687e610c7d10a3969fdbf13c188fc72269f7e803714a86de5f6c23d48589aefa3551095a6f1a68d47ead4aa43f2b37a71fb45a4f03dbf298eafd03841b9655f33ca03d7930296ac4784ee6873522c51c05309ac600035731ef5710a46702aeb8c2fc4bb41252f63356033f6a6d00555f2f8e93b036370305166117347b0816ba61209b8a6fbe260e431115673e7eba978b1947ef59716403987d6202c46529f26e7e33e43e4b2158c1a2cdb6e810e979d4da46e41a3c2a9503e32f1097054cfd154d69529623c5b06e3df301600ce22279d699467334d094dc03bd1be7f7ed8410eea86d6e100d519311619656a5ad89671496cbc67f9610569203ee5d73ba5d2751d7ba8c9fb148e69db3fdda452f2a0b42f84a00a2598173007a031266a56852040b0f28c045f571e7004b9f75a773094b86e801be90ad8f2c8e6103c4d91b11c72c8d3ca3ef98727bae239cfb2912a5c73407ec0b4d3155a6a3910205581e03534df3e1c62b794b428d885087468b5fd71137470cab622476aa8ecca00c0142140005581e03fea918c6b7939aa373192aeddcba507163b3925844c0dec4487ffdf8c0040105581e0353a85201df73c0b306f555baee9219226f3edd50ba95db7dd0a4e36fd0040204590477608060405234801561001057600080fd5b506004361061004c5760003560e01c8063450d11f014610051578063b472047714610085578063b86cfdcf1461011e578063cb10f94c14610162575b600080fd5b610059610196565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61011c6004803603604081101561009b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156100d857600080fd5b8201836020820111156100ea57600080fd5b8035906020019184600183028401116401000000008311171561010c57600080fd5b90919293919293905050506101bc565b005b6101606004803603602081101561013457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061037e565b005b61016a61041d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606033848484604051602001808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050604051602081830303815290604052905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166316f19831600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103135780820151818401526020810190506102f8565b50505050905090810190601f1680156103405780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561036057600080fd5b505af1158015610374573d6000803e3d6000fd5b5050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146103d957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea264697066735822122022e999dd4b0b9100cd51f853ab4e8e76e6a6f337f841fc2abc8cae88c9eff2d764736f6c634300070300330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56305428e4f3a7f651294b9564800b2d01f35189a5bfbe0058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60548397259c983751daf40400790063935a11afa28a0219080405581d020f85918febc248cb18c8093b1e01beac072d641b186b08b4cdee6f91070119047705581d02878da474cdf1106eea318c3dd687188eadf7842d734eea44b07eb8990c0b475b1dd7ce7ad4000218a005581e032b3937200381cb2b93c23a626b646fe67f4d3af9e4bf0b225520c3f5a00c0147064ab35839100005581e039bdf896bb2d15271e0e873409e660ce8ecd34902706f38cb2332a691300c1047014a8e847bcce0036f96578339bdba180c24143e00431cba4eef21c470f801548e5ca5897f3019c503337c29fd9976d67b66b28034c1414c04861ce13b19a267c6e01d66f2cdb6bfba0316a296d9a093ad83bb17baf3d124e20cbabff0f40f9de0304c7ae814af46a0fd05581e03643e38568ff024040f4d77fa6e12e753d7e74607768d622ecc4dab9b4007011bffffffffffffffff05581e0318564b25acf350cc97208cda2c0658af042d84c7e38f4eba0ce2078fd00c154749503f1661ba0b0219ce71037103d6dc85740b371057ebe05414eca6c7471ff2283fafa10aa798a4b104db360359e13ffc82a5b147faf87ac7b9684074045e9488905316a22371fe4d6f406e8103ee75a8ec9f645fdb6b5d8af04c75b32ceb4919913be58f5dcc5ec48b94c13d0203d26d9f4f742fc0dcd96146ed62c6af4017007077e0ada3d1fb6890507d48ca650384d932c621efb177475fb8b015986cc367d7b53333ee5ff881bf3412398baedc0366e53981985809ef6d44e3c98f2d455134a154b72c211d0dd6b3783b27820f18030410bc142785c4f5fdf7fd5d12995c5a6dae2509d69cbc5de270cc0937452f7a03faf4fa24aebec553a3b5491463caabac488cae5c4d5275327727b0f483fbd6f8030fe3c678e74c8e7989df56e399f45ded2e0735baf9af92f63bfb8c980dc5f93603f93ed6948ca24b2289f3d7b000d4d29eafa9806edb0881940dc4e881692b6a2f03706d1f3ecc64178ae3e5c4e1f39343bcf080f44fb9604483684fc3c75e8159db030f8f30a5c11e5d311a8195d5f89315ef73496fa880c8fb4cc39c562d152497220328ea2e90213f21107be073ca593c15f2f9f16932c93a8f3e1ab8f43c8c3f86fb033c035a1f8ac203ab3858679938c22493b952b88681d528f0061d1da8990a47130219ffff0219ffff036236881da47c17b8169c7e7bad49a057cb439d617d0f1490b0e08313d6b4db1403146209e213c849f338a6bfe4f62a89edd8dba4415ca2cee4f3f6cf250f0296c103d2b45a7a3b98f634d1b9747bde3f0fb9fc31dfcfcc53ea8e2491bd0fe6b6ab5f032599c683f17c7018d5e28f351bfe77ff2b08cdd0c6d2bde24cad77e446d5c1980348572390aacfc6ace230836fdcc523cc69be73854436c0d68600643b296d35910390dd3444a8d8d86ec62a393e85225d621ede901063cb0573dcffacb740d2581f033a9c6f6486ab87aa7f169cb09c41791030e0101fc3ec5ecf6b87cde58d7b0cce037956c9f329e99eeec63c01dd4f609e295bd7ed911f978e1fdee6dab54ee46744032eb36e9fa82c4f4c4db60844ac19a4e4420831546035cf18fd566a9cd4806069034888627fc1f5afb807262e5a15e4abfd9dda25187ed216415dcc5e7ad17af1d603f0b1c7e254b6618639b4dfe179bdff5dfaa9c520a879ed7f3d50422d2fb9d7d6033e6129fcaf1a0b15b4017e2dac326c13d9befa05d4b498aa1b85b4c21244a6ad03b33879e37b75dca37ff96ea8ad98c198d43d21142714343fc7af2c49bc6e55b503eff62ae564291fe2ca1a0d60a0d7766b9630ae6675a7db5b3204f1ec3fc98c0c03e0fff4b5ff02fc9b769ee51d476b5309403783d7e8058bed2733c92920a38f8703aaf8bc463992964a2e0bb1e8d8a70b2039a2cb2df8ca75417408aa0b8f37abda032797ad4b29639994d2d589158566b82fc04a1e0f2e4cc1e2d38a6209a64844ba03fd0a6b57db5b98bdae4eab4f012bcb703398455cadc65d564ce22c58ccfc5bbc03bfbf3e06dc6a04165869f8beb1b032b8d73bfd7937a51899d0871248022fddee032b7006a3c962c2a93684875bb2debd40579cd237b0a0464fd585f42e6dfb9fde03e48d9e61c027702c62e23d09575145edf8822e0d4557e82337e0dffe19955fc2031531f9dd9f2305732d1a49853c5a88847669168eac2358a0abaccc07c2f467a205581e036212baa08eb6f5e494367f60f07c8147b5269bdae871ffce04cf58e5800848013fbe85edc9000005581e03e4d7d3794bb754c12f60fbebd64d9071ab215b376b863c849ed189f9e00c0147029abefb0fc60005581e032264ce9f92de0f4b5631568ed9c4ff1cf62c00e8fb22d1634d0c679d200402037b728c218edecea59c474e09abd9357e26e87682e96a98054577303cdb481cc805581e03b57576c2fcd7e04cbfe3ead7a1b3afc26c16c7f81a7eb9e2593ba3b6700c0247011bccf2f82650030cf8bd6fc11a6e9e9f6bb22e39a651895389a39cc2bf7a70e12b486435633c1705581d0269088b62ffcd66191d9a355afe5294c776f161ed20d74c332268adf60c197a0c49042de9ad3bf93c5e8705581d0258a196044d0b12bb384d3dddb2263df0832f62ac16d8a8232d53fcda040605581d0207173ba2a90d730f41feafe963051548e3d2fda0dd40daa9c4d74f2b04030219420405581e034708b0eab238be03ff767d7c537375e103108a641965c08b54b0fafe100401031aca9750e175d436b39914a1685b16c225ed546ad6533ecc8b503def197a1c3c031659de68e6a279da28599e113109376d848bf72a54b56d945750294b8c97e773030657e508cc6d404d8cc89513d451fab06b3288013a5753906560d9cbed22571f05581e03c4388631d993cf1152c4b4c4e08b1b7ccbaafb0e2017d8df076ebf8e0007011bffffffffffffffff0219f49d0302253031614ee557478f436176c0b9898a7414b085923a175e92a78a314832b903209a7c6ec901e018b59a91b0e73e1d532ccf6a31b8c1fadd9f41d29b5b497ed303d75a7af4d3e624358b9528113a0ab0a5685402a241d58f25a252e6c5f677180403988c1c0e60bfd29dbfadd729970270c91521818d0611c6fead9ac43b9bf79c1d03e44ab81f9486ec0c4b81c5f06e97c6154a264b0af852cd9abc53ed44dab018c003a826264bad5c6debc91ddc09812ce2b6b4ab3c0ea20723d54f64f9ae85b9b73a03d78fcf7c621405bb10a8b6163d15098c9f3e55536fdc82ed44784d3438ce4ab603d4b18937fbdb3cd76522dd3743e67f8f411d9ac35958fae0560413af52f6d14303bca6bea761deb4ef70ed59d4eae3d4645a30f484eac45fdcacbba7c9b7ceddb003874ba1038c7d3d3336be06dbaa5605d12414e4949f7d3c17ae14080e172c801d03ad042c0b454089643948570043030abe980af09463dfb41f10a97c2c7fe6ccd403e250842da9424238ec15044295fb0da797e46bfba1659ec399a78d4cc778482e030f25110544551b9b8acd58e4a5c7da6b0d38404956b0ed591333258d877f527503254de0a3608edbfd0befa8de1fa8b9a3c23017aaaf8257cb87e4e1d2203c65df03813f60b99413b77537dbf577f29ff9959e9c07d3663ffcc51cbe955df97c334a0219ffff03601e492cf407180eabe1c2a6a5dcf6eece9aa4fad76f80cb3e5fd1245274e10a03528614c7525ec6991512f9de33524f0aff50ac63f4bc175c199bb3ac255ba5b803eb95c78dc89f86d3b1f5c2d7c86f6f6706e1e79e51d78f084523e87fdb51d92e0361e4451bfd1f276ec789c8787e79cded94dbe6767e460d7b7ff66378bc638da90312a72d835ea32411a9b564abec9c8a4982eb2c18ff0c8e403313a6b073e133f503c7461e84670e5214e7d206631bf8af3527a4404697101eabe92ab301ca767ac7033d3bd0fd71abed5c47976d0d92775e1a12d9dbb635c9a3ebb2759305ab622ab50219ffff0219ffff0219ffff039d46303883159b41ceb6faaaa86da718d65c1afaab28f06950587e726f3d5ff1038976b7a7d84d694b3deff2141b1295c0c4453ee3bc710944a62931251746740003133966ffa4f5e694beabda54825d86381eaadd45c8cad74f3aaf492774907d2303637d0143a33a7581ffb38dd4c9b6349c43054ce2598d92d11ef6b1e9fb9ee7b403d65378456923df0a04ec0d772c858706859f19abb5d16d980d0a9c9910abd0ec035d8acde92e7163453e0bb363aba1f86cf6aa7d132b84bfbad8da69fdbb8cf7230316c5c058e269633952be2f9146f7c2fc8e255944e687903f1d80053da48fccd90378433ac5a9500c8ab7b68858970e9437d7381bb7a495aec04c503a64b0c5d21a0375076d18612e4aae4a3327fda0a80074d1c83c8e69d34f77e48777310affd4a2038ea4c9b41afd3a575aa1d4bb7a801cf4b21a86f418a812dc96c1b0eefd112aa1038596a4ccb3437fc2d0b8d786a676621ca83fc689f1d49313cc34a8890e4233ff037c86359e737ac7abf7724b008af5ba46762febde7e2666d5d7287a203a4039a905581e0316116e41836e9f88c86cd193207fe8125229041fe46eef8cd1aae7f0f00c014701f9add67ec00003f226c92193a0a2d2825aa049ddf222b5a646bfdee38661e670c9a2152278f1d201410705581e0356eeb3566770877b01269bc3cd0dbc0c04263cdd3b063dd53b91416e300c01465fb96cdcd40005581e0305edd191762e58dc43bcb168dad003ddea28da6a32f3bdb26b5c9ec0500c014603903e6dcb68038b306fba387d253593a4319f7f4bf9ed5fc0f68019ba05b83767999d22a7968801410805581e0353b389f260aff085da895d144dd71a33b7540d2286245d4fd2965fd7c00c181a4708f65420b36a0005581e0303852a738dc0a4876a31c08f752f6749cfb581e766e41df015d31859700409038495fb1f3c329e8b50f33dbf7788326a07e24736aff1270979f5d77e977f3afe05581e0396f0007849a885e358aad71f54bb417fe26a5eaf904c8a17a33d099eb00c034790c79e178afc4105581e03e72bee14c48843ec4657afc5db586c122253fd592aac5e0b02275d0f7004010219bd5d0342e1c81f5481b311e82c0372b136b1403c1339e885b1a2829e35a77d8405af5a03bc9523ede3d9a63536d673435551f64d58afd57b05723a8e18fe9550754096ff037cb526292c83e22191d30a84b9dfe82e156b4556f31a579894fa8b15f5aba61503b6ddd1c92193a97eb5c64ee6942ac3baa096767af99f0c38a5768953cd59207303fe8fc1751e3359184f3a36489fbd74f22f573602d3b66a7b9148f0c7f8a767b90352583b11833c665e3a68220164bc41bf2d3785350d1891c34aa7f99f3f19d7e803698f2a7aebc4c4d9d83079333a0d825b26d730d65e1ee2ad69b28698ccfacc090303dc14b234a4b57b758ccefd96cd510039efbbe37b2d4a2e32e73d474cde1a3203e396c0109f9d8b1278a5396d44fc8851474d3c3e73fcebcc2ff77d303c8b2e170219ffff0306e2d807dcd0fef80638bf1aa487f4f6f5ed11afe671bf6fb66cd2f59cd4374d03a68aa5ae07aaa1cf550f25f36c5ed7c6a0f019a73b9f7d605c5ee24b85e558d7030ef936115f99369427fbfd82eeaadd25b905e70648f3c0d44e4e568e468e71ac03d058726d40bc203a8b9fdb9ef58a71555bf8014a33398cc4a7e42632d909b3ab036b78df73d827ac2dfefa66367c3c03ff2b9920b1608f1b276e1786e1946783cc033a40c15e1521f19f86fd6296d5c320d5a8b01f210e48c2c321f52a92aca1da42031f9bf74d6372ec1953bda73903ae557dbaf383dc6bf7cde94a568787003e2fce035365e6b396b6065079f8cb8d8aed60e9b534b40ad81f93b51b0ecdfecf8ad06d03d2724ba9d6da7e01c36010a33c3d4967e8f0c0090ce533262d4b119efa8e4dd1036a3069c4d20948b333194eb5738ad03435f72fae037c82775f60ad5656f56c8703281203bdc1fb07076c19eb26516e250609b633ed1695dd3be650a17ace65312003e63936f3d7c699d7d1a87e10fd7aca5a462fb08948da88819e1a9232cc2a1783039fd10bd439da75d6d5d8b291ce85f8a60d10d02716c5a8874cc3ed2a22937e280219ffff03ba778f75c5b0b10bb9f602ca69cfcd548e48a3d6a04c235184e0397bc7e623c60335d57c8bed55bec65e8ec9ece13a56202669042d5849dc315cfa5ace83c3f9050330def08d514409c4d87ceec68a065c1b277bdd9b3c881f697ef9e7e5f61997df03d42b500661ba3d8165c3debaa44595b86c2597c8abba0a786f15b6e9dc18109803af8bd85c39f168780ec5dff152bba6cbbf4c69bb6e27b9afb70bcaa71d141110035d7bb8b0a29433544d1521e9e25ad19fa45ff13ff942d28daa51f026d6d2adb80392eeeb6a24713eb6b3b7e477b297aed1232bfa30a91d1861e90d338129789a0303249f76f52fc1cfbc5f28611aca54fa689fee79e04c41b0e10b95d751d22138b503488c8077dd17ca5a38a25bcfdf95ede33f86ea9e304572c1899146c5b6b9e7e70309e68c6597468fe1a0230c7d150aaccca5d6e641303116137fa79998098216f8035b0a744a93b60153f16b0b9bb98359abe5b9286fd28c201130cf7f20f63f909403e7228d7c86d33f3bba3ce815dd89a0056146e022dd8d606ad644942881dbedca030414780752314df61b29ab68bb0177e021f11100fe2bd63f1275f287c5e141d5039abc0028860bf8f93e3672616efd085e788c0c02a5e0492f81d676c7e1c8a1c003bf5a5095854e5f8636cadd81f9711e24a6a1b9db27ebc349c83bd1ff577307b90219ffff03e1ff76cee68f06ac04eef066ef4f3f059f82564754255cb9beb6e518882de75d037cb3cfe5e137fd2cced2af14a4c80e96daedfa5db9c4c33de7348a6421adfc8e03c122c2732597ff623e9e9d089ddb9356db79886cd500fc0b71dd610ce5115577035a13991f714029ce24f2c8bab60bfd866532bd73a1feb0f2bbb4f1150a6332120382f341085b9b3920a7f5e21d7d142607f9a4f81bb5950e1baf1e82b3f719040003966f8638b3e19d7e70bd3b71508cdcebec679f55a28129279a3d7423a44577cd0344b09c4b05e41cf843c7b4b3acca2052d7f586d6d86ad560ecfad5afad41faa303fcca22546ec7b039ecea33fff5410613447220c6233c3b21a8b7f10a8520d73d03775885fb176e9ac82f55c49aa09910aa2b73fb0e142d94bfe26c04673825386c038a448f43757fa5d960c005f2a5a452b840ed9f45a28773de2ae3483b7fe65c2703e88898e645374e117aee64445b365b8411db2686387a24d7168977e8a01581b603f8a6dc6fb33b1b29f3398d8a746ef0e74e3791a7a78d0d1b86d968f85720ca0e0219ffff033518bdda4d93085b97a8c5bb2a9e10797135fffee1594ee15febfacabd9d6eb703500131a4f224497bc780070a11b4c26b3f9cf35de4efe4415c58a5c8c132ec0b032fd23f4d8c40c5b812872fc95a55966a7f4f4482cf183afee668926ecc066f3c03f54dbde2b597bc893892bfea11a07fd5587f35765432c1fdc11267892592f277036682dc757c00799e79ad9bc5b84e9f6f29563dd2c8133059036606727fe8af2903ba5dce1b1f2fc91f3a1193d54b0b5594b447512a587bbed346627ddbc34843ab033269068237a32effd2d8b01f211b4405159881f38991b57c1e5ce8bd3d845cdc03fe516af7aedc289d16caa6881b2440b4336525113087e54ba85a59ce0ed4a4e503994f859fc2f81e82e5b442641b1a78ded5cbf1f82e236849e70498b47b88a06b0365c250935d4f58c484a1a608b081b7df94a66e989b56745a7af2d31705e78313036cdd40dde90979ae387676d737bcda1c7cef0451539e9e3ea3503d3359b2842c0306ec5cce94295227b3664bc53f33d794cbaf25ba6c6a54315a27b140f89cd331036ab5c05570766c9be08d1ec6dc467ff5c837992456ad3f2ab762e4afd45481810370ee6a1f9d200bdcfd5b7cbaee77fd68a044a622acf788bb4fd73dd5701cdb2c03fc6987e52dc8f642ced668f7c598f25ffa5f23b8513be9e558ca40c972f49d2203c9d266163816c606758fd9bc3f595f1c2b9e8b40b17be9a7485f034239b31aff03fd43fdf084b8415ca85f87b7cb282b18d90d46223407277e639176945faad57f03900cefe20e8bf11cc22bd9205ed99672d418cc04b79d0f8c6b5766b11e08b13e03122ea3d60630467e7bab3fa939a68507fa8c4d77ce75cf9e29e36a64617485ce03190d4d09470ee518fa7907e1c810e71c5b0bd33cf5cc2d94b623fddf7921a2d003cc3bf42a1da34d909d5be651e0c0974f5459721220ddb06f7a98cba4874e8d3103509861c1b2e279f73fcb031e688cc3d32c56edee8501568f929404e69e9718a70387e870af1b51ec1a1d712e7a0f8fdc93456fa0b33576c42404b4ad6d2456577103d30459ffe2069badfb14f7a70e88ecd95dec80dd38eb356f5a1564b46779bdbd039953c7bb301d3c8976347b2c0cc390b2beb507122ffc1abfa37dc81098a39a7c03b872e1347bee9cf3d9c34c9d3f4177fcd29707eb26f081133b7ef5fc206aaac003c8afda0b46f933a42c5ef2de7e6f9b18242608c36c8d015769ff0f78b4ceb679031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0319d4e7f3325c53b636279549088aab4e5fda26633737096a3dfd4f914007011bffffffffffffffff0335aa0a2a6feb5193277f84235bb624e6bf8ff34f08b2de31f72340fdeb70f9ac03d88336220791283fe9398508ffb6c70913ff9e8d2ac3c51db72b4e3a6b5f73c305581e0337d3c2441f542932d824a35317299f51da85dfb40f7640c4e76e826660040405581e031b741b61aadad2937c6c6934cc17e4b6e5a47d4914007f4507dc5759a00c182147d21ec1ab70ef5e0360155d7b8e6841f34a2608a4f5069a85510adf7ce0ba93161ef49448036eb3fe03ef46c1696822129674f982541201b71523990f04cdbdd6ed3643495df865935705581e03e184b9c0cd90a2894082f8d198ff841862fcf76e2e89383f4de458d8b007011bffffffffffffffff05581d0285de9f5d42e33e8605601b90dc14de670db75bd6002714c015022ad80c08475dd618e5614f2e05581d02a90c44496dc10dd9c8789f1a5c8e103753024878a4e6656b8eca14ff0402020905581e03e97938048ab01f1c39ad6905aea607c282cfae47edfd529f7a2baaa7000c0147048891df03180003e39ca7e92e80d4c452dda2c1c82e8ceb05e6b27703e171ec089d7e02681c58430307be01e7e7206fe31ecee91ad75dada65ad6ba433ae647a1b9330469f7c6677c03709eb5dda2147c4fb819a20da7a29219edf23b78b89a76895cb5bb987352df3005581e03493f8ce7187e91eaf6e28b66f36b1aa4a3d6ff5360e1c7f3e2ea56b42007011bffffffffffffffff0317e538c80df70d77a4e819f505cdff94150f981fe6d26037b9913414e8b1553105581e034043b0f852b01563ba254c649f715679c2d4051fbdb5fad058ec633d000c014446989ba703e13c06b80a48ad098afb1de4c7682633e1e6095593d09a1dcef1552f1336b6b9032ec6d6e1fe8caa4724695ed4838bbd674c258cffd4aa100999b522589d726a5d05581e03bfd1cdf819d510da5848f256b82e4edb013ff2e0b3517413671377650007011bffffffffffffffff02197eff03b422de42b174e39a14b427bfd1a9c2e612ba7c7e688855928a42ccf5473436f903f606bf832c8a79594d693967a747486eb24af0aab847e60f3a2617dd0a1871b00341b2d889a5e7c62c10afddc5c1a88bd227f4c645cad0c88177ddd534aca6e1eb031c1da6f8cce245d027c63cc2b10948891a637336f1d430a523f8dd3e17d84d7e03b7a46ccfa87608464e7b9d1d70893f06f12289436cbd0ffc9d4b031c3a06a4e703ce516dbc218472ec17be5cb16615b78741471d3d8aac3718e699088d5ff79a3803079aa5f619e49ab23bc1a0dd02223929c7cd53cd0074e9496716cc79587fd83003b72af83c416f100600558ec865aca201d2317edc8d5662c95e09705c0204178203b3e1dcfb40dc13bb53b80ccce040fc3477a2513e8496e294e55ba52ed0e8f351036dee7ef3fc1f06ee78d3ebafe9b55efd2154b9e36eedeb3e4bc205caf3f4fc2903aaaab1efcb069218231c22b2bcc1acb160398b254ef8b7e65771c3967ee876a3035d3e4a2edd29d069e048d53bf33a51a6a004e38f803b3af6d55c2d248c1bd08a03a469f910e1960c7b5d66deeb7f0e6566a6a3585a1ac62de0ab5a418cc7c92d1c0219ffff032664438b7a4584becc647cf632f5c61535a284d30d8177e4032ff0e47665058003c09f264fc7fccede889ca9424ab0f95e7aa224625e3e516bb770e137c04c44fb03cb6c19bab4a9883584f1d19e771475b54ab1711f49919f61d2caa0e9c15439e503ebc722b6c80c344802b16e5300c0446f84d6a979afdc1f07abf0c0c220e7aa1e03bc3da714c478cb9e3f2a21709f3058ece74bfd9b6d154e9c3e097d51a54b59c103a94b960456349beff9a9b4a8648e862d7a98794c4178a833d8e99a9fa01067c90339e3abbf3f59873e989dbd94cc614ceb31e93336d7e5ac2fe75f46c37e26e5f603e9476ce4d7a8cb768009a772a11cc664fe5adb1e93001a4e57b60c2158b1fd27030977eacdd23b2f3e5eee24dbfb71b436dec5c0e448404d65d29f562129af7ee50219ffff035222491a5ab4dec64adbbcf631029758e063cbf581346382de599c321098c08d0219ffff032f54de6c7ae2137ee4175d0efc119ac4448312d7e90586f5e43fae76dbbf887203d2379a2916c042143154f7587474d129dce3572f409f79828903d82dd8b14fd0032c165f0d506bfe1cc6cd067a11cc1112c09226b1bccbcdc69d6b4c494c92315d03939ae2312867f034ea7f4be06f370d725f6d1b4b71620623bb0e3f6eac8d82290335659db23479623fa727fd4fb77585833283bae7c4654c9a04738c63c9187cf8036a576212d832483c9bc05fb201d980e66150b49f2bdd06d5c25b84d2f85acdaa0374480baaa79cb1feab67234f2b92c9de36476094b5a44acb49c40f229f0624a4033a33ee33df09b0a1c3ae5f0603a69b8f0a47c413aee98769fdd80f77ccdc1fd10378942a95a3c43d6e1d2f68359490d988cd5fd27e3ce61f4086fd02cfa6fc07cd03ad5bc6d77edf1d9781d2c3665561344385b4860b0af72d69c20ed211be57f6b0039b24ef4b9cf9d134464d2bbd803e3ea8d670951fa7745e996fcc0402d74def49033ba896c1d0f8918466948c9b98bd64159db44c5fe10b07f92b6aec75cba35e12033b25252ed04d0d3e0418f20c7adf9a172b5165a218d3ec1899a8f0a1eb2aed270379ca0d14948e95156ef61eba9d7dfc26c2f9c61ebd65a5f5436fa8f1fea4b4f30365b880e68ed82bdea7e7fef236be1b21a61faa01fc41a834ace68574decc374c03ad81096940bee89a3ffdf7f9f9bda1988a4b345c32db5691cd6fcad0837cb1160394b20a011ef82e8d9ad22505448ef94ec99ebfe721f41aa40056141266f53ac303562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e038447cbac6ef7cbc388b517bbe8293ab83d743c32c77ba61b1c38c1bb0007011bffffffffffffffff03e52b2452dac39a208d1f9e71c037e07dda327252fd476fc9491404d53cdbc37a035f5497081de9529a6fe1c670d702987e78196677f0cc3ab439e698d2dda192e605581e03298f8c81b506c62f8e701663bb69ac58613efb99cf1394fbf684c2eb7007011bffffffffffffffff03dc0b4392f2f0075ef4861e6850a34c8d1fc22ffe799cc8b7a74c01a00e7f8cd903562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581d02467f40ce0a9d1169d0d5d4ac35a9465236bee6429d09c8f53aca59e707011bffffffffffffffff039c4da409f7c4cfa1dc902d1613c1182b714a021d9095a7284e5d73bbb87e250303163b8d1bfc6064dc4df1a6127ea86345306d8d7fd2923ef42f41a8246408cbae05581d02009954db8aa6828de090e3714119eab751f85c5a56963ab12acbdad307011bffffffffffffffff0459141560806040526004361061007b5760003560e01c80634039fd4b1161004e5780634039fd4b1461012157806344bc937b14610134578063574da7171461014757806393e4eaa91461015a57600080fd5b806303b6a673146100805780631b738b32146100d95780631fece7b4146100fb5780632923e82e1461010e575b600080fd5b34801561008c57600080fd5b506100c661009b366004610da0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6040519081526020015b60405180910390f35b3480156100e557600080fd5b506100f96100f4366004610eb9565b610192565b005b6100f9610109366004610f38565b610248565b6100f961011c366004610fa4565b61049c565b6100f961012f366004610eb9565b610620565b6100f96101423660046110b7565b6107ac565b6100f9610155366004610f38565b61080e565b34801561016657600080fd5b5060005461017a906001600160a01b031681565b6040516001600160a01b0390911681526020016100d0565b60028054036101bc5760405162461bcd60e51b81526004016101b39061112b565b60405180910390fd5b60028055306001600160a01b0386160361022f576101db8484846109fd565b836001600160a01b0316336001600160a01b03167f05b90458f953d3fcb2d7fb25616a2fddeca749d0c47cc5c9832d0266b5346eea858585604051610222939291906111be565b60405180910390a361023c565b61023c8585858585610a76565b50506001600255505050565b60028054036102695760405162461bcd60e51b81526004016101b39061112b565b6002805560006001600160a01b0384166102b9575060405134906000906001600160a01b0387169083156108fc0290849084818181858888f193505050509050806102b357600080fd5b50610443565b34156103075760405162461bcd60e51b815260206004820181905260248201527f54484f52436861696e5f526f757465723a20756e65787065637465642065746860448201526064016101b3565b6000546001600160a01b03908116908516036103f757506000546040516302ccb1b360e41b81523060048201526024810184905283916001600160a01b031690632ccb1b30906044016020604051808303816000875af115801561036f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039391906111ee565b50600054604051630852cd8d60e31b8152600481018590526001600160a01b03909116906342966c6890602401600060405180830381600087803b1580156103da57600080fd5b505af11580156103ee573d6000803e3d6000fd5b50505050610443565b6104018484610bc7565b6001600160a01b03808716600090815260016020908152604080832093891683529290529081208054929350839290919061043d90849061122d565b90915550505b836001600160a01b0316856001600160a01b03167fef519b7eb82aaf6ac376a6df2d793843ebfd593de5f1a0601d3cc6ab49ebb3958385604051610488929190611245565b60405180910390a350506001600255505050565b60028054036104bd5760405162461bcd60e51b81526004016101b39061112b565b60028055306001600160a01b038516036105875760005b825181101561053457610522848483815181106104f3576104f3611266565b60200260200101516000015185848151811061051157610511611266565b6020026020010151602001516109fd565b8061052c8161127c565b9150506104d4565b50826001600160a01b0316336001600160a01b03167f281daef48d91e5cd3d32db0784f6af69cd8d8d2e8c612a3568dca51ded51e08f848460405161057a929190611295565b60405180910390a36105ee565b60005b82518110156105ec576105da85858584815181106105aa576105aa611266565b6020026020010151600001518685815181106105c8576105c8611266565b60200260200101516020015186610a76565b806105e48161127c565b91505061058a565b505b6040516000906001600160a01b038516903480156108fc029184818181858888f1935050505090508061023c57600080fd5b60028054036106415760405162461bcd60e51b81526004016101b39061112b565b600280556040516001600160a01b0385811660248301528481166044830152606482018490523491600091881690839060840160408051601f198184030181529181526020820180516001600160e01b0316631230c53d60e21b179052516106a99190611300565b60006040518083038185875af1925050503d80600081146106e6576040519150601f19603f3d011682016040523d82523d6000602084013e6106eb565b606091505b5050905080610753576040516000906001600160a01b0387169084156108fc0290859084818181858888f1935050505090508061075157604051339084156108fc029085906000818181858888f1935050505015801561074f573d6000803e3d6000fd5b505b505b336001600160a01b03167f8e5841bcd195b858d53b38bcf91b38d47f3bc800469b6812d35451ab619c6f6c8884898989896040516107969695949392919061131c565b60405180910390a2505060016002555050505050565b8042106107fb5760405162461bcd60e51b815260206004820152601960248201527f54484f52436861696e5f526f757465723a20657870697265640000000000000060448201526064016101b3565b61080785858585610248565b5050505050565b600280540361082f5760405162461bcd60e51b81526004016101b39061112b565b6002805560006001600160a01b0384166108a9575060405134906000906001600160a01b0387169083156108fc0290849084818181858888f193505050509050806108a357604051339083156108fc029084906000818181858888f193505050501580156108a1573d6000803e3d6000fd5b505b506109b6565b3360009081526001602090815260408083206001600160a01b0388168452909152812080548592906108dc90849061136a565b90915550506040516001600160a01b03868116602483015260448201859052600091829187169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b1790525161093b9190611300565b6000604051808303816000865af19150503d8060008114610978576040519150601f19603f3d011682016040523d82523d6000602084013e61097d565b606091505b50915091508180156109a75750805115806109a75750808060200190518101906109a791906111ee565b6109b057600080fd5b84925050505b846001600160a01b0316336001600160a01b03167fa9cd03aa3c1b4515114539cd53d22085129d495cb9e9f9af77864526240f1bf7868486604051610488939291906111be565b3360009081526001602090815260408083206001600160a01b038616845290915281208054839290610a3090849061136a565b90915550506001600160a01b03808416600090815260016020908152604080832093861683529290529081208054839290610a6c90849061122d565b9091555050505050565b3360009081526001602090815260408083206001600160a01b038716845290915281208054849290610aa990849061136a565b90915550506040516001600160a01b038681166024830152604482018490526000919085169060640160408051601f198184030181529181526020820180516001600160e01b031663095ea7b360e01b17905251610b079190611300565b6000604051808303816000865af19150503d8060008114610b44576040519150601f19603f3d011682016040523d82523d6000602084013e610b49565b606091505b5050905080610b5757600080fd5b6040516344bc937b60e01b81526001600160a01b038716906344bc937b90610b8d90889088908890889060001990600401611381565b600060405180830381600087803b158015610ba757600080fd5b505af1158015610bbb573d6000803e3d6000fd5b50505050505050505050565b6040516370a0823160e01b815230600482015260009081906001600160a01b038516906370a0823190602401602060405180830381865afa158015610c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3491906113c6565b6040513360248201523060448201526064810185905290915060009081906001600160a01b0387169060840160408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251610c959190611300565b6000604051808303816000865af19150503d8060008114610cd2576040519150601f19603f3d011682016040523d82523d6000602084013e610cd7565b606091505b5091509150818015610d01575080511580610d01575080806020019051810190610d0191906111ee565b610d0a57600080fd5b6040516370a0823160e01b815230600482015283906001600160a01b038816906370a0823190602401602060405180830381865afa158015610d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7491906113c6565b610d7e919061136a565b9695505050505050565b6001600160a01b0381168114610d9d57600080fd5b50565b60008060408385031215610db357600080fd5b8235610dbe81610d88565b91506020830135610dce81610d88565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610e1257610e12610dd9565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610e4157610e41610dd9565b604052919050565b600082601f830112610e5a57600080fd5b813567ffffffffffffffff811115610e7457610e74610dd9565b610e87601f8201601f1916602001610e18565b818152846020838601011115610e9c57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215610ed157600080fd5b8535610edc81610d88565b94506020860135610eec81610d88565b93506040860135610efc81610d88565b925060608601359150608086013567ffffffffffffffff811115610f1f57600080fd5b610f2b88828901610e49565b9150509295509295909350565b60008060008060808587031215610f4e57600080fd5b8435610f5981610d88565b93506020850135610f6981610d88565b925060408501359150606085013567ffffffffffffffff811115610f8c57600080fd5b610f9887828801610e49565b91505092959194509250565b60008060008060808587031215610fba57600080fd5b8435610fc581610d88565b9350602085810135610fd681610d88565b935060408681013567ffffffffffffffff80821115610ff457600080fd5b818901915089601f83011261100857600080fd5b81358181111561101a5761101a610dd9565b611028858260051b01610e18565b81815260069190911b8301850190858101908c83111561104757600080fd5b938601935b828510156110905785858e0312156110645760008081fd5b61106c610def565b853561107781610d88565b815285880135888201528252938501939086019061104c565b9750505060608901359350808411156110a857600080fd5b505050610f9887828801610e49565b600080600080600060a086880312156110cf57600080fd5b85356110da81610d88565b945060208601356110ea81610d88565b935060408601359250606086013567ffffffffffffffff81111561110d57600080fd5b61111988828901610e49565b95989497509295608001359392505050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60005b8381101561117d578181015183820152602001611165565b8381111561118c576000848401525b50505050565b600081518084526111aa816020860160208601611162565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006111e56060830184611192565b95945050505050565b60006020828403121561120057600080fd5b8151801515811461121057600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561124057611240611217565b500190565b82815260406020820152600061125e6040830184611192565b949350505050565b634e487b7160e01b600052603260045260246000fd5b60006001820161128e5761128e611217565b5060010190565b60408082528351828201819052600091906020906060850190828801855b828110156112e157815180516001600160a01b031685528501518585015292850192908401906001016112b3565b505050848103828601526112f58187611192565b979650505050505050565b60008251611312818460208701611162565b9190910192915050565b6001600160a01b038781168252602082018790528581166040830152841660608201526080810183905260c060a0820181905260009061135e90830184611192565b98975050505050505050565b60008282101561137c5761137c611217565b500390565b6001600160a01b038681168252851660208201526040810184905260a0606082018190526000906113b490830185611192565b90508260808301529695505050505050565b6000602082840312156113d857600080fd5b505191905056fea26469706673582212202cfe991af8d38fa2ac1704297d010d8644417c5713ec84f255506fc12400514d64736f6c634300080d003303c75b27bc71a7a030f4c0775800d58feb9f51accf78c7b8d10a4f601109e4a27b03d67332b1d7380b779db8d77b68527077f201bf4675e1ec7681916edfab7bfc6a0360e290e947c6ddd2f3b4253abfb54d28698cfc8804075ed19404f732cc10c979035f9576ad06c485280a64c905166a29e5d3b9ad8e446408a14c9c854d26bce04e0058200311a9ce9f57db7b54b1fee779c190b446644d8aabcc479acc26dc43ccac324044c748f07b00582003c64c922e8ab1adca612939bf51a37d555ba68df3d5dfd7942f3fad407c8530490fb939659eb3b9633800581f0287fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace410100581f024ecaf489705e641260dfe5fd24bc6f8039aa8004922bcc3d24a0612cf88644940563210219208000582003707bac7f1c312140c6901309c6486e249aad5a635d9c486fcc326a14db6640450f00d3d7440058200385f4eef9ef478bf7967e6c133c61aeac87d4520a2fe8303058913bc215bad0450541153782005820038c74f2878fbd72802a940db5c668953b5a310e5dfb0cb86c33a1160f8c5cc045019c64ef9900582003458e63227d69d15f0443984458046331d223ae0e682ab97e8d6451aadc862045024195e78200582003ccc07f78667959de84345c529abc4d5cec199ddfdf6b2bf400d9749c8e7c40450467005f5502191d6a033ce4c5c63837ca41a1f9e4381765856c4ba6097d191222b7c65a35875d0daf25033bf73b73e3113d9906b863d29804f5b6b210e56e1e1d6a38f2ac9b13e886ce670395dfbc7f31182607bdf3d1288dbad6bd1cf9d1fc25bf7e478954b1ce270d583a03fd801b256798e14442e1b8ab8fee3e5cb0946a61ff2a354871f5193822d65d6d036659501263807b5edc49be400a250ed1ae8984e86bd593f2af102f8c532df3fc0367795f8b936e47ace1506b4f7e6106f7426e2996775772460feabaff1f1e7aaa03d9db251456f069acfe791d1473299b5f8c6d77f19b6576c2e82f1472b96bef9c038438a67cd30d86a7224e86978f5953d1d7051d687496bcb5e60a026b4267ead603fcd506bb8fb826c3870b35b3a5420587f5c8e541598d89d827cfb621e7bc006403ac5b5e7494126258f86e7e867da96b90df2487f7058d0929e489546a89175b3003d0eb29634cb280bfc7afdfddae57a62fa63da50bfcded32ab7687e16cb686bf8030185b500f8b3f5547a5e15d7c77145f978dcdc711478f51a0e3563580f29ea4c0341519f8bbca25fae72b923771428e900e6e049f042cb0565fa6aa196b8ca99ce03209176f5212a39a0a58938f87be09aa964f375b3050e488f3e0cfa7190b70f2f035b30f426d68275e2308e0f7e4051057bb85a30af1152e30323c2f5a6e726c2710219ffff036404668387eb74d6a85118e1ead26134d8f3b63e0bb3d0ea79b5f355f18d3c22035eb5b51f69f08a2aba91d82657d69e446ec59af79f3166959d0d580794eeffc903b0705dac55efb40fbcee1cdd1a9e003fb610a202286109891e86f2cb8c7a8a8703ba761a5bf375ef4a6f2385c8f61b1556c0b1bf1278c38409b1a86bc6da8dc1b803c2f4e8e8154648deebebedaf9ce93c8bf9dc4f2e7f6bca358c7b93d696b199a9030b743b6cb95562b5327fb6dc42a6984cb45a73958eab8042d394b421c740359103bb3974f93fa77110de6e20dd5dbe0db4f0b8b4224ee82f15350f9593c44c2e9f03d0e3401aa1e6736cef916b119a88969ad182f28ebf04e03087d8f2a54581f61003d2295365e09e62e7b9f17f3d544113fe57b6442f5d9660e0fd29a8f2bc021ed3038592ea1c48feba8e9e708517195ad54a3b1e9dda4c5140d5fa35bd5904ee898a0343e6fcc08d9cf21629039d9369f266b5442eb70ac7c95236555c06122af503c10219ffff05581d028fc0725d531bec6ffbd12f2d911bc10ff0693d1c752acb766316e3ff07011914150219400303c4b8776a489ec5e396307784431017fd3d66c7a2e1393848cf8843515ffa4ec305581e03c0986e128e3fab12273b3c75760e191025b5167c37088681955c17625004010368c1a5aecbf454d6231a6161f7570500489e80bdd44527195367008b1ebc19aa0219bcc00359f7e560008c0ddb2be64d489abaa310d3e7ff2db9a4fff2cf349cca60748d7903420d28275337095654ed0203269a1b6ecc35f66bf9e1a393c00797720b149d7e039657f2a8ecb2b8c5bbee92705d9fa41d16d79e632c19cb2b13049514074a77800327ca6b85b555a5db45413648c05bf0a56fa069ef056ec61a9da8cf8af58818c503bf41d19812e54b04efbd69186df8dc0eeb643a626939c6a2699a7cb81c179c8403f12bccc1d6cbd4eac51dbbc128d9fc1acf5cc0b35660730607448c4d1862fbda03b2eb3c9662a1e91890028c0f4a4a20cabbdecafd89e13876b08f76b4dacc43b703ed35abc4aeaa6977ddc6a233d225c6599ce1597fee6d59e64506f413da3ffb2003cffbda08e981360facc8df8ba9a1f8427a004af8e2718add575125a5e0ea75c4036008d57e48001718c96db49fe86de96d6ff88218b70e82e65bdb2a85d2bba5ff03160f7a0f8c77c3a6c4d713aae107def98d0a85b5cbb9a7306caad46fd1f32e780378b83525b0a6bb90f420b48dc6d4cf379c7f5fd4a7050af22d3142448ce4a022034a629cc9637af8a7f0a5008fabc6bf1b4d8f51c5f71bbe6b3a96744df219d282032994e3dba2c181338a1e711e9f721a8f78d20bad0748f14a290be39e16a6967a0219ffff030e9d258a82a460305d1f60fa7e04f2f78f89f5e031ed57cdcc0894321cc9c298035b8b6f38194a943cfd2b2d302613aab070300e34bc6a8b7d56216a556852b093031dbad70877d275486669f343e14a5bdd9bafab07aaa2561c6d5f0ec52f6c01ba03c0b283bdcacce55be669a17dc70eff91cadfcf81c81090c1ca644b60b3f482130355aa7b26f465684d4643e0f28adc8cbd5d5252841065321eae689d62d085e2c20219ffff0337d429de6910da4c312ce65b1186c700f953ab193b98cebaecb6edf50aca84f90344980d5a53144af8314954745dfad663cff0f3c43af572308b6dbd95cb82aac003598c3fd4fb453839ed0b7216f4ab3ed4cb26949b04fa6ca75c8a1208d191704e0327dbe6fb00cf920370a922fff53de8183f1208f6e368c3338281f93dd4a1687b03042ceffbd6adf11bf39c9d50884be5382f37bc3e90cfd97822eefade8896e8a7034972493ba8c801e7ad1beb382f9b5819d24f6df9833d3420ef09be8c536eeec4034d8c9bb90373d2d51a578327d725f7aa6df4385cf94c120a6081af55e84078d103a2b3f54bc9b9b51f59f70f49bdfb7d4eaed8181eed0b91e501c4cd2ec2ecfdea03c68f187fe0755ce29156627c40d6c8e73146b6f0afa94e902b334369463ddb750310881529c203ff603f4ac32366b4439f8b8f4ca2249ad4a963940c83a71cb8030351831ac057385875bde165479b4d2867d2a581b9dbc4fb2ea6aeee54517e29f70219ffff0388c10f11c3909951f95b3fd05e500e4c9a2082bc8fe7e6e3181603389e59b60f03613ec971243d50271a95ee8c2ab26a1a74806a33e711de4f9ec33761971c0aaa03841f3b3d767cec6d413056d0901b10f6e95e051cd7a67394bed74c1d6509f26c0346defd7186c1026c2aad6e5ccfa261bdbe8c3cb74ebdee90c2701e297780ff75034834244abb808d31f5223b7e3953b6e2c0d1c3596162c3dd35be18defface487033df152081616c22d25d9ca9f829dcdeb9e8f3fed5e5518ba267220af41d360b90325742a732486a84aac589154fc97790978e7f3bd22143ae4869f0785266179730345e32b69fb20001d3be7bf0867ad2e11fd7790fa36e0f240ab14c91b9886391b030e20ce2b1d7e223c460dc46998e09cdcdde7e293aa559e87157b2d1fb17acb84032b8d9ffa8dd3605b3ae7f09ee83d253b3716a0197edf518d2bd15919a363dc9103f8e6290efe4fca7cafbcb9c6bd62dcd8c13e84d8f8cf5bdacd9863acf0d28ffc033eb340fddb1230ec44577ac13251472c989aca2ed334c4887f88fa849cc8fc8b03c0cd63331d43d99f63c79aaa941a7375932bb1d6b0e45cc95272b0965e08a30e03a6e9f0c81503bcc6462c9fa127b161f4d95b734cdb9e8c8cc1a848e9e7d7c05a03b6ad32da7c4379ce5745a23ef3149c511f7c8ed0c44d0ef90a666f89f22b6f6e0351dfc9d04b1e60344d34b74459807db6a9c6196870e732dc6534ebc33a819ae1039a438d9cdbee858cfb022e7db65fba26ec991a212521d2cef23f56c73b940564031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e03fbc910c5fb1cd9a8689d673df5b16291d2aa51690b723a3902af09232007011bffffffffffffffff05581e03dd7788e22b566b410e4b19994582732218b23f240e5d1e69fff35d8de0040105581e03883c15cc0918bc424c9f8a07b934ee722296fbe77178265c2ad01863f00c1979af490d40e56a070c27393103b00b0f83b2e15eb262805ddeb1da0b7420acb467c311de6e228e1d587314020b03f876b02dade9d823efa0b2a33dd50cee7bab515992b54843fdead812096644f903c64a9c02a2e139b9cc71467d2e284bf1317ba429616110fdcc7fca88c7bde66d03182fff386ba6fd28242314173721a13e8d244f52774a9736023d96a931a938b9014104033d8a002b98452549bb43dd1396e06591ee2e9c3f42cf60cb0ed83effbed132b20219b45c0353ee795e0ab0d3944f49ecfed547abe8ea00182758627139296003f82949917f03a7699714c0519cd0eb4ce4d1c851fc559f00ab0140d25d35d6e45f7ef313baf90364191045ca2f7c56b9ccec66177f8a8bc10b1d5802c286afe8707a7585bfe05f038cd726396cfd88c67196280e145f341bd983a2975ebc32e3b0a9e735d3b6e6e90387f2a57ec7c20b16d8fa798cef4190d5574c84fa8c296d6ce31083b9795289860219ffff032ce9469f7d070dbda17d0d8a5ff5f093f786233386456a8b1fd0f644b740d96403cfbe26f99c9c21a570065706445fbd240f743903f11d0420e28feef5a336a95103d629aadee3c22ae39df853672b7449fb8406cc237cc88886713f9b1fe17ba5ed03487bad3b7e1314d128fab5aaa502e9c30d5ebb840fc27792eabac1bf0ad9d262034e8fb506556045ccf4cf03a8b8e354bd08142e64b3b0463cceaca11f8dd10ce0036a9fc4d4272985b4eb3ef026c1ac70166e2d344890afcf3ed750cea0304fabf003d9c7a0d006067825de7aa8655ccd390690e2a4944bb07f1654a1a88a0b121e6a038aa3f7f942a9fb35b2bde48489cdde29a5f790181828dba64099a4909b666cd60335cb42b07a454be13b209b9150bdf50597ec47bab92c52775fa22a96d230147d033c64b49f7f4bee1cb2ef3856fa3cb766b2909989dec61424af450e3c9d635044037f3c35d900d8c8472a59d84a9d0c7405f2de02437b4c54148265ac5a2789389703943a709d120026f369f4ae88edd07c95de913bf0c844ba67199d6970a93e2a41035276ba30a1a64ac5d3c63b57c7334b3866e6fec403d04346cd58b0fe7fb7eacb0219ffff0358180a80116305bfc509eb47ec1a1ba44dce953ca69cd3f51a9b1ad58b24a19d03ca878dc5b3f4840f105455c0164d11d8940c5796a556c6e04e3e9c6e06aa2d3003b7c040ccdf65c0811dfc8b12c1ae6d093a7646a8ce894daaa7ddef854d37dff603d5b9c380ee26623c4492d428f8664aa6d3b26ee540f4d4a0769a74b5aa7ff4eb032597b96927aba2a935671c9dfabc20fdcadaac6481ff4ecb15c0989fe8d873f603ec2aa3be0178ebabfd195d87e21fac96b9a80e400b22d54d2de837f17f2b52bf031abf8f3cf89452a3e1bff3bc79aac12411c21a857be0143e01f5695d9fd1082e03ecc4c48fdeeee43fbb54a9ef7b71323e8b70cda0fa8c3fee454f40364ab3296d039216d9390d7209aca074b310ecc0b1604fdf1f0a2ffdb0eb5ec0e3578ae05d9e03cfb874aaaee5b2a8138d10ed2898408b5253b660376fe011af244c343814cc6f03729a5b0506110c9eac6f0a3c694ac868803ad4d89571653965609bef0f2e5e500219ffff03029d420573a3cc3aefbbf82f3010a6232c7600a7fc4ec73d4a057d6a652d6f1a031ae7429dfc2b80bb030500737556cf3452cd61e9920e430ad937690ceab68d23037323321838fb189306d6e0660657e170a6f03b7296a728b1c3a7e09a8c1ca224036517c98457f831b271e68834c269adce58e00108442327403f2becff91d68a0603b7b4200d3697319a238a76420e195bd14f24f9528f0dcb89aef51664c8d9bc53035e361cf2f4e933c2ddf61ab7b0450f9959b5b68fc70767862fa5ba845418dc730219ffff031289a6e1117b787f7f6e74d2fb67fffff29b51d9e24fe03499335b966f31147603187e99bb1682feaf3cbf4b186062d5ed7c94d7781b3fa692c19276443b9452e8035ce8cea4f5fadd02f04a97bea64d912f1e4bcd815a31e5c76304088028f42ca6032dadf3b0e8ebedd94f6f1d1d6bc392a7fdffd7b3060948eecd86931cda419d7903f89568eab9e9c88bb02b72a1d2cb9ea51d74f3e1cf31410856fa4a168a2db316037e88f1313b9114b7e88806409c20c6471f78e8cdbe8b09e90397d85dcd8088ee032f106424ca0d7aaccbe40beab308d0ea079e7b47c5b493c0a6cf27ea25a2ae3e03eca6df615c1dc69df750e41757b116141b6ad36f245cf5566561f2855d1d0ad603c4fb91acdb1687c4718152c5717337a6c7898e154785a99e3dccb769c28af4280399ec23f904770c6a6af421a22a16c21c29c47a2034fd2f5f4a83d9d68b72284e03241677041064b3dbddf56830171fb806dd62ddff1610f99d69cf0f146e5b3c0003283bc64181d52bbb75b533f7f5bfa5c344e375feaae4f93168158f64a7403eba0371d6e3e58bd43c7f927eb839689a908b7394d34ba81d0ef1a34950192713dd3d03ae2d416da33bd06164f5b3d062f033cdc1c2502939599122ff913062dd6792a903d0ec10bddb30ec4c8886306c5614cec9c8c89e57418309f6bf6f228f57a579a203cecf570222d6423872a7025dfd4969ab80ff80bb30900360e78245e841a7f1e003f6532ba61918cdedb31b7ff46d9e78bb96939b22fecadf48793a1f0d333b71020344acc64884f310b0d753fdebc12ce624c74a6a8c85c81c9a7936c3e6d9260f59033d4a5f8f9a4a35a39421ccc5852965f551284a66099e50063885223a2950394b031b2f2e392fb077bd8aba8685c6e0df7a138e424d1c14798eebf10c384a1589b403b24825ac047f91a876643f1ebab77182a448a003945ef696986405eff90ef643033b113b3e8b9ffe5717e2b4811e54655351f2ce6e8ee662a684def009e513d38b0318ef26d04578ab56c6916eeb27f91cbecd4c20ad69f30c10853b7cf79cabd4e903767278cb32e011d211e6005a5659043d9487ae129ace5b8050dc571b214ace9103df6a9f069369c99596d89ec9705ef57355bef76cebda770f8612eb30b960e3300381508086598c7268ab0a3ae9be7be831e150d25b8ace2f15e03338080a58c491030e3047e409d9efe3ecd145e654b0ba6f99d53908b5fad79f426be5cceb98d14203229f64036595c70e1b35867885010d446267dd8147b125471ba5c0a5fa5e152e05581e035d61d380f9a819a2045561a32ced03944783d88f5a7baf4183383748f00c024729f8acd17b5d5e03d246f207721c5e2df6f8b80ecce8dd2f131b1e1505638aa9c5519cdf5a0043f903cac3df3119aaa7b9c8c90856a930b9d1e6bd2bd0581c82a9b0e4cd7bb78f5df405581d029627cebb1499dde62b6dbd00cd41ad62fb1977c24e2a650a8ebb73600403031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581d02c8c057f068401ca0e3f4b3844c7393d218a6127b96d8045f68747b2707011bffffffffffffffff045917706080604052600436106100c75760003560e01c80638da5cb5b11610074578063b84f5d1e1161004e578063b84f5d1e146101cd578063e8edc816146101ed578063f2fde38b14610202576100c7565b80638da5cb5b14610176578063a82f143c14610198578063b5268389146101ad576100c7565b80635c975abb116100a55780635c975abb14610121578063715018a61461014c5780637dd0480f14610161576100c7565b806339122461146100cc5780633ce33bff146100ee5780633ef11fd714610101575b600080fd5b3480156100d857600080fd5b506100ec6100e7366004610f93565b610222565b005b6100ec6100fc366004610fe5565b610448565b34801561010d57600080fd5b506100ec61011c366004610f53565b61066d565b34801561012d57600080fd5b506101366107d1565b60405161014391906112ca565b60405180910390f35b34801561015857600080fd5b506100ec6107f2565b34801561016d57600080fd5b506100ec610806565b34801561018257600080fd5b5061018b610816565b6040516101439190611249565b3480156101a457600080fd5b506100ec610832565b3480156101b957600080fd5b506101366101c836600461106f565b610842565b3480156101d957600080fd5b5061018b6101e836600461106f565b610862565b3480156101f957600080fd5b5061018b610895565b34801561020e57600080fd5b506100ec61021d366004610f12565b6108b9565b61022a61091a565b6102498173ffffffffffffffffffffffffffffffffffffffff1661098d565b610288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f90611336565b60405180910390fd5b6003838360405161029a929190611239565b9081526040519081900360200190205460ff16156102e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f90611614565b600073ffffffffffffffffffffffffffffffffffffffff166002848460405161030e929190611239565b9081526040519081900360200190205473ffffffffffffffffffffffffffffffffffffffff161461036b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f90611571565b816103a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f9061153a565b80600284846040516103b5929190611239565b908152604051908190036020018120805473ffffffffffffffffffffffffffffffffffffffff939093167fffffffffffffffffffffffff0000000000000000000000000000000000000000909316929092179091557ff9648cbc19f288e0f271f7e95311238912bf1ea8225e636a13bb1d25912600219061043b908590859085906112e9565b60405180910390a1505050565b6104506109ad565b6104586109ec565b60006002878760405161046c929190611239565b9081526040519081900360200190205473ffffffffffffffffffffffffffffffffffffffff169050806104cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f9061146f565b73ffffffffffffffffffffffffffffffffffffffff85161561052e5761052973ffffffffffffffffffffffffffffffffffffffff8616337f0000000000000000000000009a47f3289794e9bbc6a3c571f6d96ad4e7baed1687610a30565b610567565b833414610567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f906113a4565b7f0000000000000000000000009a47f3289794e9bbc6a3c571f6d96ad4e7baed1673ffffffffffffffffffffffffffffffffffffffff16634cfee326348363ab13824060e01b336040516020016105be9190611249565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526105fe92918a908a906020016111c9565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161062a92919061129b565b6000604051808303818588803b15801561064357600080fd5b505af1158015610657573d6000803e3d6000fd5b505050505050610665610ad9565b505050505050565b61067561091a565b600073ffffffffffffffffffffffffffffffffffffffff166002838360405161069f929190611239565b9081526040519081900360200190205473ffffffffffffffffffffffffffffffffffffffff1614156106fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f906113db565b6002828260405161070f929190611239565b90815260405190819003602001812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556001906003906107579085908590611239565b90815260405190819003602001812080549215157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909316929092179091557fb00061f7cc154fc23eb34671ab724fc7eb7b806abae871abae8f1eafce972135906107c590849084906112d5565b60405180910390a15050565b60005474010000000000000000000000000000000000000000900460ff1690565b6107fa61091a565b6108046000610adf565b565b61080e61091a565b610804610b54565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61083a61091a565b610804610bdb565b805160208183018101805160038252928201919093012091525460ff1681565b805160208183018101805160028252928201919093012091525473ffffffffffffffffffffffffffffffffffffffff1681565b7f0000000000000000000000009a47f3289794e9bbc6a3c571f6d96ad4e7baed1681565b6108c161091a565b73ffffffffffffffffffffffffffffffffffffffff811661090e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f90611412565b61091781610adf565b50565b610922610c30565b73ffffffffffffffffffffffffffffffffffffffff16610940610816565b73ffffffffffffffffffffffffffffffffffffffff1614610804576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f906115a8565b73ffffffffffffffffffffffffffffffffffffffff81163b15155b919050565b6109b56107d1565b15610804576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f90611503565b60026001541415610a29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f906116a8565b6002600155565b610ad3846323b872dd60e01b858585604051602401610a519392919061126a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610c34565b50505050565b60018055565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610b5c6109ad565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610bc4610c30565b604051610bd19190611249565b60405180910390a1565b610be3610cf2565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610bc45b3390565b6000610c96826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610d309092919063ffffffff16565b9050805160001480610cb7575080806020019051810190610cb79190610f33565b610ced576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f9061164b565b505050565b610cfa6107d1565b610804576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f9061136d565b6060610d3f8484600085610d47565b949350505050565b606082471015610d83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f906114a6565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610dac919061121d565b60006040518083038185875af1925050503d8060008114610de9576040519150601f19603f3d011682016040523d82523d6000602084013e610dee565b606091505b5091509150610dff87838387610e0a565b979650505050505050565b60608315610e5e578251610e5757610e218561098d565b610e57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f906115dd565b5081610d3f565b610d3f8383815115610e735781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027f9190611323565b803573ffffffffffffffffffffffffffffffffffffffff811681146109a857600080fd5b60008083601f840112610edc578081fd5b50813567ffffffffffffffff811115610ef3578182fd5b602083019150836020828501011115610f0b57600080fd5b9250929050565b600060208284031215610f23578081fd5b610f2c82610ea7565b9392505050565b600060208284031215610f44578081fd5b81518015158114610f2c578182fd5b60008060208385031215610f65578081fd5b823567ffffffffffffffff811115610f7b578182fd5b610f8785828601610ecb565b90969095509350505050565b600080600060408486031215610fa7578081fd5b833567ffffffffffffffff811115610fbd578182fd5b610fc986828701610ecb565b9094509250610fdc905060208501610ea7565b90509250925092565b60008060008060008060808789031215610ffd578182fd5b863567ffffffffffffffff80821115611014578384fd5b6110208a838b01610ecb565b909850965086915061103460208a01610ea7565b9550604089013594506060890135915080821115611050578384fd5b5061105d89828a01610ecb565b979a9699509497509295939492505050565b600060208284031215611080578081fd5b813567ffffffffffffffff80821115611097578283fd5b818401915084601f8301126110aa578283fd5b8135818111156110bc576110bc61170b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156111025761110261170b565b8160405282815287602084870101111561111a578586fd5b826020860160208301379182016020019490945295945050505050565b6000815180845261114f8160208601602086016116df565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b60007fffffffff000000000000000000000000000000000000000000000000000000008616825284516112038160048501602089016116df565b820183856004830137909201600401918252509392505050565b6000825161122f8184602087016116df565b9190910192915050565b6000828483379101908152919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b600073ffffffffffffffffffffffffffffffffffffffff8416825260406020830152610d3f6040830184611137565b901515815260200190565b600060208252610d3f602083018486611181565b6000604082526112fd604083018587611181565b905073ffffffffffffffffffffffffffffffffffffffff83166020830152949350505050565b600060208252610f2c6020830184611137565b60208082526019908201527f414441505445525f49535f4e4f545f415f434f4e545241435400000000000000604082015260600190565b60208082526014908201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604082015260600190565b60208082526018908201527f4d534756414c55455f414d4f554e545f4d49534d415443480000000000000000604082015260600190565b60208082526016908201527f414441505445525f444f45535f4e4f545f455849535400000000000000000000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b60208082526011908201527f414441505445525f4e4f545f464f554e44000000000000000000000000000000604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b60208082526010908201527f5061757361626c653a2070617573656400000000000000000000000000000000604082015260600190565b60208082526012908201527f494e56414c49445f414441505445445f49440000000000000000000000000000604082015260600190565b6020808252600e908201527f414441505445525f455849535453000000000000000000000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252600f908201527f414441505445525f52454d4f5645440000000000000000000000000000000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60005b838110156116fa5781810151838201526020016116e2565b83811115610ad35750506000910152565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea2646970667358221220608714aa9d6fbcc9fb12a697d4193a8e6fa52f25acaa2ad1114662393eb8d79464736f6c634300080100330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56305432ed10824819fdaa52e7ff9c50cda6a5cf7a1b35005821034551603e686fd4eb9cb764097b7a6c029e0619fd051068de573a7421c153d150547ac070f096c6e20931c3dc54f927446be232618b0058210327e5392cf41d6addc73de8d105feb85df6f7bbe47f21665215c33caaddd79610547ac070f096c6e20931c3dc54f927446be232618b00582103c026337f1cadaf15b8024f31855e0ab7607c74c130d2923eeec42114d95e4420547ac070f096c6e20931c3dc54f927446be232618b0058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60410102190d1405581d02809384bdc1192854564f4438cc3c4359e5aec53e51ab50b53aad57b007021917700219414003346341f6c892dad9a7ae66c4f8c3e6273ae6ae77b27d399b50cd369c14d3795603809ee0e9ba08453a3b6f63081659050710185962fb7358eeafae8324665d6fbb03e4480a5608f2195abd15f2270f46f032046669e0ab748f8003259b54c497bd290399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe908031cc9a79bd9d7d12e2ba4bc7e2c358d68b79122e34db4ff2932b40bda29158ff105581e036904e7d7b417b2396b64a83ac8d57679c28f8b0ebe7051fbb2ce2eb20007011bffffffffffffffff05581e03e882d389d79f792bdc6b5c3ac18f82c82504f42a7249b7286f19ac2bc00c02468975bdc738e805581e037fb2b46d97d6763d70bc8b42814eb1d70930c98ff4522ab48ab3073cb008473eae2ea120f5160219937b0339827a6063ecdf8be31f3429e9d681c5ab40b5861396191682464987b9ec4ccd03288229faadfdac90d39cc2fb57c140e559485fd90a669de2870c3037c6f6f9120359a1625f0c2c887fa08df81621952628048c3279591545b0139e07f59d93508e039236fb84bbe8be712f058ca92058a50e0132960aea145112f7aff8132a63c64803e7327f69a6a08ad98536b7a9439bb564eb871c2c7b718fda1ce9427c6c38d7c6031dd23f5c7f0b410591abc378c2804cabe4a2cdb49c4e72fb262351f8e3da01470219ffff03b135ee6e253689f2f391150f7032598b78d0b58a161072b92744d26d238983ed0319ceb67773af737f918b8040e64de4d2e7d88df9cdd92b0c3254e3bf9583797d03315986af944047552d444a68360635924065e485628c945746509888bdbabee403c045b07371b494573aab2bd975ce2756ec9b52ec2d2a2d8742f07e34a020dcdc03b04c95105b2f850fa87e9654a887cacfe8b4de3a598de63d0bd657008af33d4e03bfa301e969d1f867166d2d9092e09ac0f3a1fce5e0de10616be119e14f89cba8035000cd7f027b752a6854c3fc17b2742e320ead5f7fb1dbba7e3ecd31e8ce4d6903e7939dc1033e119841c123e69ad1ffe3d66a9c169d9d27397f985538a6fa658b0219ffff030bc50898f0fc6bb2980c9d475e89a075a40173cbc966fa5a1cc90c1520ba71ad03dffaa10c30c5c4bf255be84fadd9bdd83766201eaa31475782b4466b48efb2100308568e08a639fec531bbf6a36cd81006befeefdc8b8325c210e805d833fe77bf03221a9222a2f8b463d0c163603873735f48f05bbbca7bd2462db4cde181bf87ad03beda81c9da869e9511a1fc27ec2b310db56a8ef91bb03114d70db3ff551e99ae03daf18361f690445129cce879f6f708eb5beae115bad23fa1e75556847d2a031503519ca8e79cdd8e8378889f1125099e9f9e252e17598c268024b3f08a40aa57a803b9f5f396fb591eae1bc3fc7a3d2696146d800cf406594adf868844235ed8c82803c6f3385dbed939bb6f56068709b47e34ed295e40ed92116f4276a5d9a945d64d033b0d9a5414081a5d914649961b3074f431aca235730c831147b997c297882d33037ae76e1fe855c8f33cbb2c125ecfca26e6f26a44936fd121cc8f3789d1683dae03a933b23c75d990bdca7fc5ed4b8ad1ccf9b94ab73a000e5529ba45aa9e6737af035a7045c3bd892ef65d7ae97250b83306ca70cc5d88fc5e226fe801af81894130035b538e6bbc9a80153beb9b53d0933b15b6a4f8cd026fafbae3ce6a56288b2c780325387a198c3a8213f15a94ae4f04c004b723a963417ec39f3713df6bcefe7995030f8e59dc41aeb4532b6271913c218515a5b6294436a926f5ca88b2983e418d5403acb321cf96b1ef401ac6d931586574f4d6009b58dfa8d9ef91e317e9de9d135f05581e03e7e95d617c2b249b9592913d626beea083473d04dc2c6ddff0e6c8b9200c014502540be40003d9fac41b32ef4145a8ef6e33176cbdf901d9541ce22ad7ed13280499c5295a8e05581d0254611ede08fffa551807e6bb6252b4ee316487ea6e73ffab0f5a15e70c184f4777d3cd7b91227905581d02fdeb50c3dafe7db718b831433ebb73b3b9c7b34c5f126394728200db0c1046a54429c649a005581d027cd3538dfbf124d24185e85da8f96ca01d574d709e5a5015ad833fd70c01469b0ab3c7c18002194021039946b0af0477ab89551370783cf52af16851ec8c4fe6e1b2527d281315c1831b0391f24c368be6ad7c27d74d0bcfe20b02f761605ca076d49841901001f036ed240330d48c7f9098573d652f0b71ed5f14a03f057dca4576bdf5c516b12aa17947c60605581e03de37b3bab3bcf93ece0ee69965acd5d4336cb3018d0d5518445114b1a007011bffffffffffffffff03647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d03c8eb12a6b232b0377c7674cf2510845a527a2904df2a5689b175361f785113db05581e03d799990648d7f383db68d868c80a7c556d0b32aab28dbc02f2b75e1d6007011bffffffffffffffff03ecdc81bf315ce7ee8473403440ba87e7a4d2f7f0187c558c61eab41b5c2e731002192bd803327dd811e89f6f023b8cc3fd1e2421ae36fcd7bde12b6b192c6ad081f83fef85031091c317e0074fc1599c4c5c04fe84590941f7d08ef41d4eb65ee92695456e7e0360374dc2549859cdf310a688f4d9562a36b0bfe86aadee91d2523e6559af678f03442371bc2f8afbe5e52badf07711e9dfd1685d87ede50288dc93f6e5a61b1f99032874b6bc60caaa332e7372fcca8e85b8b12a9ffa9c526524fed98d5932c95008037a18ce9b20e1f51bb153bfd31593a880889581df46f1db8541d07e3dbb138ff003ce3218877364b278ad935ee03914da2c9d1e4c713d3365f0fa297f624e6ded4503e55b50fb430aa8d42b796dcd27521a5c55e944ddebd64903c166019052732134031e613b65fd055f9f1da79b9d047cfd2010d2de2d5e329dc0cdcea73e773850130219ffff030c40d7b1cbb51ce08c2b76343930a897b89b00d4d12cb5abd681b8bf9521937303416648ba27fee4b0117af163fdb0a6959ae93f3914bc5292a63f6449c3d169210367b7c92c88756e13a584c8fc4c4a20db7a39cf2d7c8c2c75a42e2d007a4c99de037d7b984bdc93ce7634eb3acce0216c2310bb6ad07053194318941728f7daef770324c249cc2110dde8f566b568f5328d5eeecb15db20e169b204a15131fc4dceaa03b8bab601563a4a490c5766eda1b7f0c61d1b36fe70f365615e051b997ce0242f03feee35f48c6eca9c2fb671a9dde498c4c10b66bf5f3d1490f275780b4120cf94034b19462d5ef3080a70c6bf880965ff4a8c3a14865aadd654792c4682a26044ad033a62b6bd50be8e661af12af9bb1c5506cdcd4378edf747f6717f89cf53e7ac1d03860ec2117616df46460f0a8e2ceb1217de76c021f6e67216b191030a846c2dbd0219ffff03ae8e1102bca56c7043cf63771eed02ba7a5b69bf01bd4c8b7d30a1ddda9883300345d0d777094587e0120fc6b0df53c4dc624aac73790a3c21dbc478cc7f19ce30035d33e2b9dccda4d8d8f8adeaf670bd58f495179a55e001c5d19976a4e678807503df666c225fcd0c23636621191a489f213a1866469fdd8f814e8450e8a09399a7034baeb57eab5d0f14f230d91d1eff282741b3ff793d6b211d6af72702649a21a50334dbf03fc18dac4c0ad7ca601e8ad8c348bad61dd823b1414b108f93c7b7b98303f85f307f41d766382074ea5858a6489c66059968373385c78b782108854dfd2d0219ffff03a49dd14a5b11b033a28d20a6ad1cc20275445f414131b3b9fbc1ad91888064cc03827de6c70604accbdca5a8a8ac7be7b31ed7e71594a01074337732c8deff675d03c646760cbd8c8da0658cb655598dea95bb2302ca08d1379c5d98b1b6fc42b7d603c9851a34e986ee54504a62ef9740eac83c60be607f12d99030eb345e8eaec8aa0219ffff0338597565ae72e83688c47bd1337bf01c5b203473d642d0fd181c1d3081f62b2403530dc7374d767d8683ffef7f6c7223c7517a2a9738c9ce79753ef370f5913a620382317f25b5d1b2742ba500ae45cf34456ab9ac9b667ceb2b14bc0a6b019f59da03a35f763ed673fffdd7bbf4cd8f4aed0c0abd9f8cc59c80141caf5f96d62de3bc039b4e84de2412766c5b3d3d13a0626b2812297276653b0f74c1c8be4c3d34a3a003bf98c499af75e1f4912389d579afad2e1e221183a26cc334c1cbc1c8095b0985031a60031027d530b97599582c871eb41ee680a500c0a2a11b830823544ef583f103bbc583f2ffbf2f530dd5a11af389862f0fc90c161467bbc91ba91c9722de2e4303a6245bafdb1dadba48f273623891d9b77292746e89ae8fffc79e114765d5e889036023411b39961b884c6ac922313b364a526526b9f4c469e4ade78a3e60f166cd0391dc76d29fa8576c861a46ec2f7fe26607c2012685ac886044a7cf7a8b12f95c039adb98ec65cd438a83dd6037244b8efae5bde90f2773ad4885849991006602c90398c9929c70e5e5cefcc29e19381887635da19f7506cffc26ac04bcdbc76ad24d03a57b59066dd07319533871e37528dc1eb7eba2168e0a92ce085d587e21bb4a8003bdad4b66073659dc321af8e975b190ed64fc683774dd4428dad278272634715703e0bc889623c93419bb4ea7f55d5b2a54910f09d801f09e39d3215ac16acf7f4a032ad470470fc137aae5629b2ae5cedcf38eaaaff76b29d61be11451fecba855ed03bcb273c126d110a7ddac544e13023510d869da7b3324b518cac8b122d149a34d03d840c1653c0f5139266ea2d73940db14ce77026e9405241818210ff490876a7b034413daf5932fdf42dd9a6e2f1c14419c14b6402669012e615b8b8a3af7d347e403f4e5c80f71dece0c1f5d4edcbb3042f7efe5e9afe48ebaf50df2964c0987c7e1036df4d65fcddecbdd13662795c240f98c30eef0a2511d6e5eead5dda0ddf36e6a036c40674499da073fd67b11ef80f468f780e677ff5f1ae1c0f8f29e35b536109c03bf7efaca614fbaea4ea7cad7e161d60c81dc3224ba17884e79b92099e3e3c5e6035bc7eed0c5e83bfdee9629f643a645627a4450f4d5384826856ec5ee04c55bc103e38072ee9a92b2fa73d1b4bcbd44805985642ad854c97c6795d6821cc967663805581e03d55343fc5fab6d01b81ef18f446f652c66d710d0ea741c8093b008f110040103d6b03522e1678d980a9976d40eb6c0fa5586590763d783773ba03431e56f8d510321ea86089d7c2ebaecac08b964c7d1bc827c0ba8d326ff28b31b85383b23d560031e92e9581ee87859f96ef88ea4d5082ccdab419e5ef26c33f53700f07fb0d01a05581e03d364224ce90c4a6dce3994db4df346f3354a310189f5ec1ddb224d07700c0b461d8631955b5805581e03da86574fa4caf05320afab6b6f143e0fb52fb442979c48875071128b8008471550f7dca7000005581e03c73c41accbf6395223dd39eb1b758f9efc22c226e84e6e81ffcd73dec0040305581d02ef3721d1061d62b5ebd7454c1ba919caa6841d89d5c41bff42cf281c0c184c4810313e14ec405280032df39c0062882ba634fb24c89e7f9871ecef10a6e6a6e79a336f6ed463d5c942034cdc1cd701e7cb71547c017312fddc178bc56e41f88a6f0311719f48cdfda42b05581d02e01894d137b631efa40f8b02e3989af4aeac029a43250adef5e9ee0a07011bffffffffffffffff0219040405581e03cd17e21a1be6fc15900b12c905f810168299af597e85ad6104788d54400c014712f1d19326200005581e03758ba0314c8b697382484b90d35496c699bdc7294fe77ab274c61b54c00c01470265e8af39300005581e0374bb731931c65be4fefc124f88bbaaa5899bee8108da5d22fd919ded1004020219f7da034aa6ba3ff6d0faa0a31f150a20b7b660658780c6eaf1c8fa2b3e3fd53b446f9403ec14df38107fe52fb067ee05681f15fe28788f80d826ae73c8db809f3dbb71f8036454a2cdc6fbf4db4478bde48f9869ee9219daa01aa6838b9046970b9943e8760325dec2715e11cff6f5f84e837b4682fd450542cf658b52cec04f2d05184f3aa303279c0a840663ea4f2af335d01b81e63c534373609d1c7e1ab842db15df598c630312ac8508bab48da31693c4d6a7d335212680269517787cd3439d60ea629f93de03b417f2a4e1526dff9346f9708be4be7aadcee16192b737c2a740c405bdfc74d703a945c4724d706eb8811f4c3796231f4905df1b636b497872c7c6e856f62f4f370394e4433ecad31422c312b4faa71ecea855e17df1185f74fc5b9cc628187cdafd0219ffff03b7efe9be97fa5d6d0198d93847812c4f1fa05bd17f37bbd96e2c5c690d7db24b036db04667a1822f88296fc5e83fb277aa46196946b3e9e6140c23a01d3b17219c03af46caf59f6f24680139dcfa8bea18af711569b870cdcfa09edc8f2c42d9e19c034b7ee32f592298a5befd6676c02b609f623bdd78cf9a1d470af43de3501c1adf03891ce2a7e25722d89e1b7a72986cc5368d08b6c8bb5b747317a590b53907ad63033a33445ce07b4f75fb0aa2b1b91fa235cfbe9f3e87e276938304ee8c39b621c6035b4d0f10047577efe73fb1e0364504b1500de14ff9988b940919175a60fbc92b0219ffff03ea98c6d4d8f49e2130444b5550f88ff03b57b7b0ad42d8622e377c7057e3e7f50317ae60a2d33e0c61c98dc872f74dd28ba25852dc2745542665370b1b6b434b6303d661a25bdf1e6a487c8c7c6acd3b9e76a64737c459fa85c9b93fb3dad0226f6903fce7410a70141799f3f7261dd2c5808946f91da0de2d7694aa0b240ce0d8380303671635c6e949ab06689b9969a967ce55b56898e388efefd31468ffbe4edd42e903a627861ea1efbbcb71eb4932b16b6d59de507cd9216cd20905f20481777073e40219ffff0305d84f632de572eb7722c7709d98911399e2a5ccb9c367b0ad30d47e059f38a70384b6bdbb15aaf33fd9470fd9fdd41e69a9c116178972208ce7f9ba76033e36da03c3779074a1e256ad9b664d15a7a59becb36cc3d6c80791d33d42b5c6a20835d8032d0e42db58ce64389e80923f0b7d54ebef53d705447350f7b48dfb604602893c03acbdda5900067a0a60e7fa068b6fabe75f8eece9f042a1544a49a1e9357199be033dfac37b505daa5cfc88ba2dc808b1e5e5847936a01fe1fe21826dc99e18cca203f550e2ca65391d116750c84d103074186c86457e18bf2805dc3aa7bb1713a4b703fcc676f06bcaf3e290d3ffa3d59fc1eb770c8217ac7733a8f11f206082fc81a603d73d121f810a2aa02c2c30ffcbd3af4fd4f30bb17a7c352f08fdd8577e9c02a7036efc004127f2f363ac49105a3304ad5ec4f98e1476ee60523b89853b38cdb50a0389f4f5f771a7155e199b57f0feaeca443c04bd4cc55418d5b592b8f0f1e6f8f2034ca088e7c0cddb3a27014d247468303ecc6c3e6b8ba475d92b0b6551a05d5bea03e52ee46266b91c62daa3c4c25efc0da6d813c131da5624613682475493fcffa703fe1ff25c340298ced068355ebedda89ad76fa35bd2d3f455672bf511e729a88103e453643c378f943416a00bc5175fc76d3223c4b29f3cbbea367b33a93e2481ae03b0629e25c35162afce12d2a260206fa003fc14eec2a79068fabf4512e5851d5a034c8893ac5fd8c4c4145da00743f35c6f75c1a43bcec74bcf7e1e70810d4f95d6031869368ca28e45a7fcd3e73b34433981dbea11ea7f03ae9d169309c5bbfe73ad03edd90a585dff5977d6d43b29ba9d3df1958c56a6774bf51a2fc7b27dd99bb29303f3181bfc1e2c7030bc97f37c3d8a822d7e709002a3bc1cf5194cc7994b19c0a003fbd9d2987731a2bde2e589eab8d677da6807926fa3915c28bccda8a4f36ff33f03d6ff824af75b41dced7b0ead5ad5772b42b0dfad22696afe3467ea255d838c2d03dc696a3e3c1305d83bf8610c97cae572eb421a4806bc5c4e0dcadaa93e7d8f5b03d00a53a5b70d9167761190cf4d544ad9512a38a3c33919d31f1b90038530bb6a03c24a6172322482f28094c2af2cb35a2a3e15e3d2c7df8ee4e9420687cdd957b105581e039fa2f2361d1ee2f975b406214b542235727ee8c9a104d4d4ea2888cb0008471474b9581b7eb005581e0399b9c5cc547c5d8f32c03bc40107e0db979bbdb625baae9edd661617800c064702672b9a9b558003aaf70b1a592e2f3aab2a0cfa25bf05ba0d1e966f03219340fafe917d0582b02905581e03d40dec6774d26470c4ea6b1d33d663348599dfe6d70140acdaafbbf8800c084740c18d44e6ae0005581e03e04ce427ea4f789db0a038cb859757754c2288706e902c5c918c9e6510040505581e034e522168ce2241083973261104c772119eaaaae16ff81f9f58d03e79d00c0147091cb251accfc603562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03ae736671819dd5cc1fcce01caaa37d1fecd84cd6f534ee00d1d2f81a6007011bffffffffffffffff033a027ef75b2f01775aaab8d32d38eae8ed29eac165b737d759fef3a8ffeb9adb05581d02f8e03eec726fe720a6ab898c8fbece982b6007c132c2f28ac00c29bb0c0c47230b3377862e7205581d028e22e9c9c23111372da009e379a6ebe851d39c127210df0999eb4c740401021909000312d6807d68086ebffc4994eb1167376775c2070796b9b8656d179d39527fcaaa0219ab9f03201f94596b2076338cb5d00d6f11223aa6bcf074ebdd51fdcf14598479874fbd03993bc2969312322592565f83f0889aa50a2a80e0532316af2fd23dd9ba18cb9c030f8145574ca637019cd36b1317e95339330ab9e1875c095bb11b394687bf68150219ffff03d837a6952ae56e6f85cd2acc95ee05de247409902951280cafcc3c77d69d710203c325fc18f06ff3f7547453a7b867394dc01070271525c61eabe40f5056a817f5032914a0eb66f423a4a1cb75dd40bda9b4c38a57a8d39728807cd776f3acf3727c0370ff129a225f28fb9707d6ab8babb3f464077525b00625ca8716fbab9c90d82f034c5d4c630653093bad16ba544acf7b3e731c31130c5e49d9f19b68912a58608e0372bc26d9763f9bcc0e2fc6c4393bef6d615e10add14e33ca4ca8be9d4f0ff7a803846c386a9cf0dd41002a72726c0dc4f9b0334aff43f3457f4eabed6b12ce7d420375bd83baa82f7b7ea92795804d426eaa62e903aab2a4f13a2ac5a8ce233781c9031b2c3620c3fdba3fd3432507a7946cbba0e58f0f83b5eaedf7465de9c49197520306a4673f36f281f4a5d6197230a7c3e61b4f1cd79f5c0ee26522e15dabbff9b7030075c0eb02f0d3f423ebf7368369d3b5c750afc49cc0cdc79ae7c86a3c086b8203b54f65f0ab814be1d4e4b3d530f87a792a58a0bbae1869cf998b857fd0c008cd0219ffff03947aa363dd3a85b9b135fac3ddaa2be24ec2372464d8967e106ce7478c2faa3403cecbe0defa9e5ce096c7c7005c9f17eac058db561b554f01c3269461d9ba2557032fcf16424c4a2f3b74ed6edd87828438bfe5d4145d66697f80591e26a597c6c803a9f1d0d6a6ce761e4a0451e262040646cbe3723b995617b2ca25375665aef7dd031382f5c654b0a9a8fcdefefd8bce3300fe51e74f7bbb8e9d37a6c3b490e4f89e037954d6415609fa0160fdabd65d0a8177d0b847d9369e4a0d6699eae0974375a30392d45df9324aa018da705ea7da7d9c5b786c4f68dee0368af6338db3f668cdc9037c6062e40b4abfd35e57074897fd24279eeab2106590be0510ef418a4b1dde0703a0e40a0dd592098c230e26aa90dfd79475ddee88f6d9df21bbac6aa9a0389f1b0219ffff0345be3215856a33b98ef85c50c46d91eb9f105d108a1445d35732376a5b05a02103f9ffeb835edaf82ae9d68187b65ec3a1cdc12a18fcdd49d984d1d575daac6a3e03cd3ac8e4daf01b3b1df744192c2a5f7e5ee6a83a5ee884aa639df6d3042e3ac103f9c88f9d888abba22c013c3fd458e16b2da98e2b107733b0f8fae61fc6393458034ab9307a5ecaa808f8b32de66ab03c29465f45c4e0d711a6e1664ec0caacfbc103e0fa8f83de47e3ffe2ae027b7400c4f824112d7d643f460d9f1a680bd5b7242003c3d0e7535e7356bfc22818ce7596f8a7b264159f6b9131f3a976ad117f5f99400387d0970241caf4e15d4bd2cae10badbdb4339f642225dd4e67aee68c4d4c09b6039beae0d8cf9535549da65e13480f6dadd418352ed602702a132077e78af9bcc003a03ebaa9b4e2fa9902835f8c2271584dd70e79f112905ab254f19d333bb56b6b0391ab93254043b7a875c41b7b962c2806adc2d43f7efdb111e85be29e282a82ee0392e98b9ab16b72a23c9e072fcb37fe608afe09af4083aafb4527ce5edcd6fbd0036810f18e2cedf62f5f457139e8e258244cb0d30210dfd2ebedf65f9004684faa0362368635f492806e9e5f64f969f9a021710a0796e06a3f9a0d9f7f13e4ab877a03cfed8e82a0627b9e8be94481e946c9b9fcf40532c743778cbfc4948599ca39ba0386dc6635e908d11b0c6d22992b4b05fe32ac432e917dbf8ff3d02989620aa9d003bb2c3bb653fc26a480cba720fe2a36523a0517fc71c81dae4edb9f854f3f6ef103fa3a913beb979dc7464bd268e1594a978108a6351ab27d274f424a43020ed8f40341e111581693f054c01519e082519298275f5330d0991456a3a8372f4728bcff0359041aba9341089df8935ae29b2927e39603f80bab2ed3fe588fac39300aaffb03968166901376900b1ecab1c9cfc94142dbedf864dfed3d3825b04c0a479ae0d70304cab57ac65fee1158a79a9ed1814ba6ab70bdc5200389aecc798a50165ffad503ddec1796c5584c7675852994cb655d874429cd66a7ca769770041834e277a26a030af8fd2898dca063dfc631146f6d0479da369d8f347c2c32439ec0576f470ee6038febd58317f0d6fbf48d0a2fb3c9b7ad8621dccee59736f930cda348211e6cd3035cc4a56aa41589c6185618a9fe9a3b08734b34438c1a3160bbaef16447654f2903960486fea562f6f647e1c02fa516f07f452dec166aa32870c8aab832aec38a9f03ec886081110fb52fa8abe340ff22684fd9746f6e9662f70108e8ef7ccad943e803b37803b1dab4f5d63fab6ac7acc1e69f0b49ba5f82d5257b7d5e153b0c161890030f8e28292e5f2efab29d9f07fbe43e88a42d2908bea1456de981a5088c24b0d203a34bbd7f69f2979bb943df6a825dfb831e3cb3f99228ce76c505cef423d2d806036716650eaf1a506b5f07f7e50bbec8cea2345fb641d3fc5728f4897948fc668603ead6bb203c31f3adfb93c4c7c2cbe59a9a36de3967e8d6cc1e7bf2c676c5e9ca03487849033cdd5a695221434487a9d4e122fb5eb953bfd4217c9678f78f39ab70032b903391222912dd747539c58c745090fd1d9e19e6abf4c849ded053f3e69e720347b91ac565a817c79693869079c4ff89033471ed7ebbfda5a830074cc15bbd3905581e03f7a9f7526ec401d758aa7af74ac0b61872981236e8940a4e846dbda7e0040203f828a686d95ef91a9ca912d877bc05f03c77eee8e72e5723f68a677853ae00f904591636608060405234801561001057600080fd5b50600436106101735760003560e01c80638da5cb5b116100de578063c94864e111610097578063e172d3a111610071578063e172d3a114610323578063f2fde38b14610336578063f7013ef614610349578063fd0ad31e1461035c57600080fd5b8063c94864e1146102ea578063d5ad4a97146102fd578063d7704bae1461031057600080fd5b80638da5cb5b1461028457806391652461146102955780639b159782146102a8578063a85006ca146102bb578063ae453cd5146102c4578063bdc6f0a0146102d757600080fd5b80635d62a8dd116101305780635d62a8dd146102275780635e45da231461023a57806370cee67f14610243578063715018a6146102565780637d82191a1461025e578063897630dd1461027157600080fd5b806329aa604b146101785780633cb747bf1461019e5780633e6dada1146101c95780633e83496c146101ec57806355f613ce146101ff5780635ad9945a14610214575b600080fd5b61018b61018636600461116d565b610364565b6040519081526020015b60405180910390f35b6065546101b1906001600160a01b031681565b6040516001600160a01b039091168152602001610195565b6101dc6101d736600461116d565b610385565b6040519015158152602001610195565b6067546101b1906001600160a01b031681565b61021261020d366004611186565b6103cf565b005b61018b610222366004611212565b610573565b6068546101b1906001600160a01b031681565b61018b606b5481565b610212610251366004611294565b610768565b6102126107c2565b6101dc61026c36600461116d565b6107d6565b6066546101b1906001600160a01b031681565b6033546001600160a01b03166101b1565b6102126102a336600461116d565b61080c565b6102126102b63660046112af565b6109b6565b61018b606a5481565b61018b6102d236600461116d565b610a56565b6102126102e5366004611309565b610a7d565b6102126102f8366004611294565b610b88565b61021261030b36600461116d565b610be2565b61018b61031e36600461116d565b610c2f565b61018b610331366004611397565b610cbd565b610212610344366004611294565b610d06565b610212610357366004611448565b610d7f565b60695461018b565b6069818154811061037457600080fd5b600091825260209091200154905081565b600881901c6000908152606d6020526040812054600160ff84161b16151580156103c95750600882901c6000908152606c6020526040902054600160ff84161b1615155b92915050565b6066546001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792063616c6c61626c6520627920746865205363726f6c6c436861696e60448201526064015b60405180910390fd5b6101008211156104815760405162461bcd60e51b8152602060048201526015602482015274706f7020746f6f206d616e79206d6573736167657360581b604482015260640161042e565b82606a54146104c95760405162461bcd60e51b81526020600482015260146024820152730e6e8c2e4e840d2dcc8caf040dad2e6dac2e8c6d60631b604482015260640161042e565b600883901c6000818152606d6020526040902080546001851b6000190193841660ff871681811b90921790925590929190610100818601111561052457600182016000908152606d6020526040902061010082900385901c90555b505050818301606a5560408051848152602081018490529081018290527fc77f792f838ae38399ac31acc3348389aeb110ce7bedf3cfdbdd5e66792679709060600160405180910390a1505050565b6000607e8161061f565b60008161058c57506001919050565b5b81156105a25760089190911c9060010161058d565b919050565b8060808310600181146105df576105bd8461057d565b60808101835360018301925084816020036008021b8352808301925050610600565b84841516600181146105f3578483536105f8565b608083535b506001820191505b509392505050565b806094815360609290921b60018301525060150190565b6005604051018061063260018c836105a7565b9050610640600189836105a7565b905061064c8982610608565b905061065a60018b836105a7565b905060018614600181146106c25760388710600181146106a75761067d8861057d565b8060b701845360018401935088816020036008021b845280840193505087898437918701916106bc565b87608001835360018301925087898437918701915b506106d5565b6106d26000893560001a846105a7565b91505b506106e08c82610608565b90508181036000806038831060018114610714576106fd8461057d565b60f78101600882021b85179350600101915061071f565b8360c0019250600191505b5086816008021b821791506001810190508060080292508451831c8284610100031b17915080850394505080845250508181038220925050508092505050979650505050505050565b610770610ee3565b606880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f9ed5ec28f252b3e7f62f1ace8e54c5ebabf4c61cc2a7c33a806365b2ff7ecc5e90600090a35050565b6107ca610ee3565b6107d46000610f3d565b565b6000606a5482106107e957506000919050565b600882901c6000908152606d6020526040902054600160ff84161b1615156103c9565b6065546001600160a01b0316336001600160a01b03161461083f5760405162461bcd60e51b815260040161042e906114a4565b606a5481106108905760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f742064726f702070656e64696e67206d6573736167650000000000604482015260640161042e565b600881901c6000908152606d6020526040902054600160ff83161b166108f85760405162461bcd60e51b815260206004820152601860248201527f64726f70206e6f6e2d736b6970706564206d6573736167650000000000000000604482015260640161042e565b600881901c6000908152606c6020526040902054600160ff83161b16156109615760405162461bcd60e51b815260206004820152601760248201527f6d65737361676520616c72656164792064726f70706564000000000000000000604482015260640161042e565b600881901c6000908152606c602052604090208054600160ff84161b1790556040518181527f43a375005206d20a83abc71722cba68c24434a8dc1f583775be7c3fde0396cbf9060200160405180910390a150565b6065546001600160a01b0316336001600160a01b0316146109e95760405162461bcd60e51b815260040161042e906114a4565b610a298383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610f8f92505050565b3373111100000000000000000000000000000000111101610a4f8186600087878761106d565b5050505050565b600060698281548110610a6b57610a6b6114ea565b90600052602060002001549050919050565b6067546001600160a01b0316336001600160a01b031614610aef5760405162461bcd60e51b815260206004820152602660248201527f4f6e6c792063616c6c61626c652062792074686520456e666f7263656454784760448201526561746577617960d01b606482015260840161042e565b6001600160a01b0386163b15610b325760405162461bcd60e51b81526020600482015260086024820152676f6e6c7920454f4160c01b604482015260640161042e565b610b728383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610f8f92505050565b610b8086868686868661106d565b505050505050565b610b90610ee3565b606780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f5fd1d27c789fb50eafa108fba89345986a66d9d0aba85d48adee09f5e3307bbd90600090a35050565b610bea610ee3565b606b80549082905560408051828152602081018490527fa030881e03ff723954dd0d35500564afab9603555d09d4456a32436f2b2373c5910160405180910390a15050565b6068546000906001600160a01b031680610c4c5750600092915050565b604051636bb825d760e11b8152600481018490526001600160a01b0382169063d7704bae906024015b602060405180830381865afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb69190611500565b9392505050565b6068546000906001600160a01b031680610cda5750600092915050565b60405163e172d3a160e01b81526001600160a01b0382169063e172d3a190610c75908690600401611519565b610d0e610ee3565b6001600160a01b038116610d735760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610d7c81610f3d565b50565b600054610100900460ff1615808015610d9f5750600054600160ff909116105b80610db95750303b158015610db9575060005460ff166001145b610e1c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610e3f576000805461ff0019166101001790555b610e47611113565b606580546001600160a01b038089166001600160a01b03199283161790925560668054888416908316179055606780548784169083161790556068805492861692909116919091179055606b8290558015610b80576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6033546001600160a01b031633146107d45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606b54821115610fef5760405162461bcd60e51b815260206004820152602560248201527f476173206c696d6974206d757374206e6f7420657863656564206d6178476173604482015264131a5b5a5d60da1b606482015260840161042e565b6000610ffa82610cbd565b9050808310156110685760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420676173206c696d69742c206d7573742062652060448201527261626f766520696e7472696e7369632067617360681b606482015260840161042e565b505050565b60695460006110818883888a898989610573565b606980546001810182556000919091527f7fb4302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe399914308018190556040519091506001600160a01b0380891691908a16907f69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e90611101908a9087908b908b908b90611567565b60405180910390a35050505050505050565b600054610100900460ff1661113a5760405162461bcd60e51b815260040161042e906115b5565b6107d4600054610100900460ff166111645760405162461bcd60e51b815260040161042e906115b5565b6107d433610f3d565b60006020828403121561117f57600080fd5b5035919050565b60008060006060848603121561119b57600080fd5b505081359360208301359350604090920135919050565b80356001600160a01b03811681146105a257600080fd5b60008083601f8401126111db57600080fd5b50813567ffffffffffffffff8111156111f357600080fd5b60208301915083602082850101111561120b57600080fd5b9250929050565b600080600080600080600060c0888a03121561122d57600080fd5b611236886111b2565b96506020880135955060408801359450611252606089016111b2565b93506080880135925060a088013567ffffffffffffffff81111561127557600080fd5b6112818a828b016111c9565b989b979a50959850939692959293505050565b6000602082840312156112a657600080fd5b610cb6826111b2565b600080600080606085870312156112c557600080fd5b6112ce856111b2565b935060208501359250604085013567ffffffffffffffff8111156112f157600080fd5b6112fd878288016111c9565b95989497509550505050565b60008060008060008060a0878903121561132257600080fd5b61132b876111b2565b9550611339602088016111b2565b94506040870135935060608701359250608087013567ffffffffffffffff81111561136357600080fd5b61136f89828a016111c9565b979a9699509497509295939492505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156113a957600080fd5b813567ffffffffffffffff808211156113c157600080fd5b818401915084601f8301126113d557600080fd5b8135818111156113e7576113e7611381565b604051601f8201601f19908116603f0116810190838211818310171561140f5761140f611381565b8160405282815287602084870101111561142857600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080600080600060a0868803121561146057600080fd5b611469866111b2565b9450611477602087016111b2565b9350611485604087016111b2565b9250611493606087016111b2565b949793965091946080013592915050565b60208082526026908201527f4f6e6c792063616c6c61626c6520627920746865204c315363726f6c6c4d657360408201526539b2b733b2b960d11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561151257600080fd5b5051919050565b600060208083528351808285015260005b818110156115465785810183015185820160400152820161152a565b506000604082860101526040601f19601f8301168501019250505092915050565b85815267ffffffffffffffff8516602082015283604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea26469706673582212208bc4fb6526528c613d5db8c4d517afddaa3542d770ffb4696484d5e101b2ea3764736f6c6343000810003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341ff05581e03527d0c703d5276fde68fbb11e5397a98bae90b5e8c7cbe9ec97af745e0070119163605581e039eb1d42d1a793058e7384131da0962674f2cfb52ab39920981d097b6d0040105581e03b9fe99953b518057e90d14bf071646cade65d05b33ac1d43afc491a9e0040303b630a3741c0b20c025eaf456653ed67f6fc78639d0d6fcaf99bc9a09b1f1b47505581e038ee075f6e013116566a62484ad4a3c27aa62ae2e4b9808003e001a41b00c04467f4336d871f8021938fc0374dff6f9d012371072682b29117548a4ecf683b54c2ec8fdfb4e8d27e345bd0f0219ffff035852a025cec02b030285ba352f5c1bd13e1437c28a2fe7ff524f00fbe4ffcd7c038e790f502ef148a50da44858359b74246d22cc9bed8e86ab88711bc0ac87fb0b033331478f1644d4f29d534f75d5dbd79baea7b15b323d7d2e7d3dd676b2acb32a0382fffc45307af48140655e5ad8f1e745e1a7446d8747c0fc4b37368ed90e68500349651fcfd9011a506cf6a4bacffb281cff29e20d3171e51efff03ba873453d5d0219ffff038645b84c9b60f93c427dcf3c5c1293a2b8c98fd2b5338485bb09f1264334c9fb032cb80136a9f9daaafca741c026f791b96171cf8b56c1d3c5e23d6617ef17f18703e963e44d2f69a93a58e3dbd98b22564810e72449e39412da698c100515f475e4035c643df3b4e57b03d53a6d621c2f1cf8a5e8839e92fdec289bf004dca83eb727038897b9d71d9d5d91c28058c5bd8d1e84c6c291ba37e0670f38ecfd39132c8a5a03984b57634326b449495d07ce5833ede071c9fdf99a023d48c33e29e7583ec6a603bb563c4d71561e32ffc70e2f6fa37ff5b76bac79c4995e225b488d69859abf2a0303c527304b8d7f9c059a8279bf031d3698cbe050164eef6500ee59aaa45de39a03c3a5578c1e1144e5c9b7a09f7556dc9f5042c93311d9d003fbcad36e173a13ba037a67e741acdb0d1e00dfbd068a0d8c5ff81ce3c057d1ce1f4ba2b766e0db9f6803c67ed5ff257f81ef9eb121817da4c192d29445081389d8434da0e45847fff8700349be4010402a830a6ac284c1b557262c22fad209cdf975cba00cd79fcc458bd603f7a5228c5f0aadc4e529c777474c2c1e1ec548aa7987c6875583087268152fd20323cc982d1e512e555c1e57c84e3094594c2426b8c2388e57e8b4ef428ca9b981035e5bb4eb4386c73884e93b63d3ee40107da9a17c0416796dbae2a9f29e3a384203f63bf210c83f233835104fd1ea3a4fba4c5b393d9fe3d2c204ada08b930a90890354be9918fc0e7982dd21973f0e24d37746337baf763e12c18600137b3379de17038a35548591488b760c8cf483b975500866c541381a532a6fd8eacdc20d2d0ab4034687aa87b9d18a8c872c99991c8319880d21ee0911ab43a541c6ac65be89172c03bda55f00e87dd2b6eb2e30d65522e637e86baaf64b529a2b4a4c5254631714e2032a5fc0a26e8e21c5081e1d6628b9a498b64ddb32399ec7627eac432e3858c2ff037cf254b9f20abb1357f803c8741b9a9ad16b86c09b1855727ac11709099f7f8103e5fe69c3c3ae0c8ce01d584d4b81f432377741bf0dc3fe1e93d08dc9d8e9a20305581e03e69654aa4143a1f2e1dd3b1eb9236dea19a6024a9d71c457e8f09a19a00c144705c390341436020359ab5e917a92351f2b650f377c59588c4aed5d79850dfe6564be3f4b07975aee05581e030914e12ebf2f8f13695a7cdb17228cc3f935f31e4ed1a662bb44050680040405581d0332dafca5ea13aa62d260acf7a9e49b4ec15eb0154ee96f48553ceb800c1046a011811697eb04590ab360806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100e6578063f851a440146101065761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61011b565b005b61006b61011b565b34801561008157600080fd5b5061006b61009036600461091f565b610135565b61006b6100a336600461093a565b610196565b3480156100b457600080fd5b506100bd610221565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f257600080fd5b5061006b61010136600461091f565b610276565b34801561011257600080fd5b506100bd6102ba565b610123610347565b61013361012e610435565b61043f565b565b61013d610463565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561018e5761018b816040518060200160405280600081525060006104a3565b50565b61018b61011b565b61019e610463565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610219576102148383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506104a3915050565b505050565b61021461011b565b600061022b610463565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561026b57610266610435565b905090565b61027361011b565b90565b61027e610463565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561018e5761018b816104ce565b60006102c4610463565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561026b57610266610463565b60606103248383604051806060016040528060278152602001610a576027913961052f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b61034f610463565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000610266610657565b3660008037600080366000845af43d6000803e80801561045e573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b6104ac8361067f565b6000825111806104b95750805b15610214576104c883836102ff565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104f7610463565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a161018b816106cc565b606073ffffffffffffffffffffffffffffffffffffffff84163b6105d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161042c565b6000808573ffffffffffffffffffffffffffffffffffffffff16856040516105fd91906109e9565b600060405180830381855af49150503d8060008114610638576040519150601f19603f3d011682016040523d82523d6000602084013e61063d565b606091505b509150915061064d8282866107d8565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610487565b6106888161082b565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b73ffffffffffffffffffffffffffffffffffffffff811661076f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161042c565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b606083156107e7575081610324565b8251156107f75782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042c9190610a05565b73ffffffffffffffffffffffffffffffffffffffff81163b6108cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161042c565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610792565b803573ffffffffffffffffffffffffffffffffffffffff8116811461091a57600080fd5b919050565b60006020828403121561093157600080fd5b610324826108f6565b60008060006040848603121561094f57600080fd5b610958846108f6565b9250602084013567ffffffffffffffff8082111561097557600080fd5b818601915086601f83011261098957600080fd5b81358181111561099857600080fd5b8760208285010111156109aa57600080fd5b6020830194508093505050509250925092565b60005b838110156109d85781810151838201526020016109c0565b838111156104c85750506000910152565b600082516109fb8184602087016109bd565b9190910192915050565b6020815260008251806020840152610a248160408501602087016109bd565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220b29caa54336b3ee836679675e9732ec5e526fb3f803cca2fe336cc3555aba62264736f6c634300080a003303a25e44a66a15397e665b587270ca01ec72a862a0222497cee0a113dab7ebbda203aaac360a29ea2b11779b6ff2d9fd88216ba830df9a3bef6c9344b37ac6e31d4903bc986be73f55a4209d840ca2c1e5d91ea30273ebca3df896b30e5113d26a866003039a5cb4cd9b0b00d5deefe81201adaccf8c07a6d20caa58647a4e15828ba0a703873bdb40062a15de4ef252b7e647fcd0e2cdf28671a93ea5dc11d39b8de5b57503a7e07935a3abb966944fd4967a0d7f3ce37b035cca9c2601a9c2d2ced93ecc10038dd4d09b499311084e74673292e9f625971ec90a19c17bc38851d2fc0a0c00c503af605ee439c340e6a8fe8fb107ce1463139414b8a0b3fa9337e46da8487b2b71038bd4adeef2427adc086689adfd65688e730715fcdb7fcfc81d29c79142cd45ea00582003760cc0913d18e63c04a35a1c3ddc0a1afc1826e0d5f692fced593ac21567c04801661b9943c0d294031dba1c5f8038a84f8757c868922f5ca36370484bf2149bedf695eee3ea71fc6503b80f6e3bc1220ce47edebd65defccdefd021d07f2b00568780754ab28e44e606039379879a3f99995fcbbef0134c359c044d06ef4e5b540b287b76f505aa04250003b552c9adbeb13282b3d21d15f5c6583987d0313e95969b3cb25c03ccd176209703aa9402fb6d9a186ca68f08355e97d993fd51047517bafb007abdcd3c4fe2fb9c03c102b479776e1be4df9cea02e8d96e3c7f71622e85badd2bccb4a358f3e3c1a9037ede6e9e59de887f430165ab4f7455ac074fed9e785506957d89b0bfcf1aba03030df36ec24b5101eebea296028f3abb5ab9e924f3f809a21acdb1a1b8f688dd4900581f024cd68dd12a2967f940f917784e447e49a7e1153cc9f0ce95c01c5706f16c48027dcc39835692fc00581f022d379b818cae0655ed86a9c595add8c6e49df2c806229824806c8e106d3d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff039e126ec2d920ffc562d61e030d1a03f86922e2e185566de43349068d9d4fcf6900581f02f013d52ffe5e3b1c6c384aeabea6cff3b9b88cb8d9d846a928c064d00fa04802d600485590b1b200581f02a7214ca8001aa2675022017cb76143f22f001d641510d2ad3b9dc8c42b364746ff43f1e47deb00581f025fd777ff67e3309158c51f603932e7dbb76318bec5c6afabac56228afb6b480153f598df9e10850219a17003ab8ef0875099bbe44a8658f16e2a7786b0195438e02bcf7c7c35044382c4f42a034817a1471d9960b6e96db74820ae1341c69fa842617c5ee4954f3f9680b9bfd803d329a943cf4b4a52a6d7cd6c94221ac78c33a57f67d7cbf4817a5f1994236ae5034e3eb6828affa78111b84f5111ffb8319474e872d75026bcaba2a2a5a9fa4dff03f8fc145c8cd635a2296e932cbbbb7de37ec32de9a7a22ffaeb46dcc81deee7a90219ffff033c1594b906b6361828f6cca0770bee8d63562f97d7f751eebbc58c3c1d7d425e034e0b8c8d4df18642508f3733263c53cde5b7e77e111fe92f2de9bd0e54a860510328f6b25e61707e9f3203917b0fe7d5f54f02ad0b64218d8b9a6290eca42e0f7603e8d7f95995e14b839863ce808933894593a7fee66ef43fd3ec10622dcb709a340366276f298e7d7ca80eca42fd96430454d183af55424b6c025e8fb72c63df35740361c63169c12946891cd8f3a68ec8270d41ca36de1335302a1b8a018f2b9129c6032dc8be99a8cd9aa7248be844ba96549f79b933caa2780fd91ad44a0ecd9e51380219ffff030a985cf3d95771826b2c41982b419670d6332d698384694a2459cdee21e3b3c9033edf4bf80e0df4af74c6d74e83c35084c1e128dfb757f2b9cedee3d4eaf3487503746efdc7ecf399efd585f73f8613c802e25f5c41aa3d591359d98009aaa2239203d76e80233007949f80d53e4f8c009d5510b69939ff0eec55d74b6bf6d93a6b59034d33929546976978c7c8158fed16625e142788a1104e4e8e4827136c724b361b0372290074de5c11d266b426f24ac0724083338a37d9181ebfd1f30679f01394da03f489f66b1b8f25794ee5321758b87478c02f154d38da97e69d6f139ef44599280345442cb82941ceac0cef8ee975c659fd5dc7c940cd75686e29e5936219f9716c03907692c4886fbe4da7b34c4c8ee3f6367890d9d2bf6b025f0fd05fed461499d103a84d1243d53777225b1315ad96f4696406cf0f466e5a78773355d762effae20c036fd2191cd030177b737ee36426da623ac819969c158ea5714543fb7e27dd8fe6033bf04a1c2d8164c06ac9d0019f88e88ae6d9c3dbc4597404faa3c6f459a353e9033faf1784e5f320964aa91aec1482f4501b2b8d756ca13f1811562e3956e6e8d00058200368a3c52848131aa629db82acedf7a8e93bc30b654c299a010f3293f44ecfb0480dfb0d99df87e30d039f1ca9f2f4f6e2ab2841fbf6fe7887927492466dd000cdc8c4495ad3c422acd6031de9cceef3ba3a0ebebd0febc2322e24e6cc3d8436a89cacedb6b3b8e8626be60354cb6402cdc088d2e093e811bf50a3861c65c14be84dfaf437727c6c5ef7aa950311733fdc474ce846182fc3094dfc4884e6e5ea240b55ff7b7e731cc9d7c23b120318f670579f532f8a972b641a0255a3f79202882640d6b2d0d073facc24a886be00581f0297eb88b32acfbfb9c7b5a7cca52c157ca4b07bbfeb416da3eff07db59035490959419e6312a06a7f00581f02a4f0ab3c2ae5f387980caf9e2e1fad53e3a4d287f637922951687d2f7036480d24d379dd26a16000581f020f5ccbc4ae855ad3d091570f5c752704030965281d379d5228a592d58a4f474de9494121c06f00581f02c2ac5ee6cd5075a1d13e167ed34f4195466c4b8db9792dd87aad24bda80c4801858afaad48bcbf00581f029404c86ed0e383fc1f541da8ce0544ec393d03689fc6573f9aa48c2433e447cdb01b9a08a603021901d1039d74f9d6a17b9d08b4b8b762c224d9a1e13f242642220698677ab425178c1d4a0328a0362774e7ae3b2202ad95c4948b65ff5ee648ac522aaea9d75564fc5489ba03c782690e3c04c3f1430cfabe0be87317501c4efe657d2a08c2368983da1586ba0219ffff03247def69ddb09b8cdf8c93b3ee38b312a9903d79570084cbed905599a6490c3d031009ccc2b9d24471dcd76c3803c9e575f0f4a3d345dedf4e383f25f204a12b6a0353ffda8879ae3519077b8fc3f84e49c936038eb1fe1fa2dd8d2e048ad43949a9035fcc6d56653f63a5cd42fda6b55b27a6538d5fade05970d3f2319164d5bca20003082e28bbbd6a9df8a3b221c96b7deb5384b82e4a2a6cd0ee696b05a083c29f0603a5e88cace218a28fa89598c7691ee506b4437776567f5ff9b346b61a54fadc130326721f8c9df3839f9c1c8f5f74df57effe5d091a114c1b705a06c6e5ba7ea97d03018a711e5058ea1914f93f9a21c23fa5a3b630ed58c3c71715570a4d7b55631a03511e3c366d3ec406561f8e0f7d9c501564b7a63384b233081b78b5d28ac802060219ffff03840b8801ef049ded9aeed37ca6365345b7ebe6c862f8f1b5e54b73494b8706e7030e588530638104ec58254d1e6b65c9af2d992c344aedffb6b45b0d65ebc2d4b903dfc3567b8649bee39f67b8e99fd2198ca39ae53940b14a8f119c070c57beb98a03c359a377500826249bb9846ebbcc6768b0e4820ab968f8418830ca01df0b7bc103f28ba393f9593f26ce05f1229d1d94e7f5f1668141125004db2e940597d13b1b03a0bceaec46c783a52e1b7d73e94a7c5beec3b0e8402a5cb6dd5e47be55b73e4b037a5001b0cd14303e63e43212682b490b7697d63c3167b86bb4c7c3a0d3e64c5c03a7286fbf102a787b1c67155d816a812568da2480e01e8c820f80b99f4bf9a0c9032761c0b1b1e4266d96804af60a6800494b9aa7a1e4b777e6de4343af640b3e2e03c0dfb32c6f98fd2d85f67f022dacd14226af96fa03d0f353227885f45d7277a803ccd184823c9826450183c1c1fa0812c3e97529448c2f47348315da7e576f37c503a0ba990c0ca6b2109c81cb61cab831ad2e554663d4e06a4d88824842935851ed03ebfce655d78b422489621f6ebe8fd50ea842c8fe43ea06c460212b31e97327f303235e6bf932414ffea0e6980e9842b5a60235c0309c85c0a2a4e5656a7ab3efde03abaaf9e4cda6789ab33d56dbf92b5cd55286aa943b96f7de323538784b43bcb703e544184d05c7dd255b6c69ecd5b38b3e4bada8f0fa87944481aef7c6f89e6b87036fcf7b8e03e419cb3c1c75a0048dcb4aef93b725cb5bf8897364952f184154b703b98403658323723d62dae1399b4a6cd3805c9cd545e3ef1ca6e390220170708b00581f02aa7d96362913a79d8cce020d29c6a9b0e386e4e5ef001b14763a6f9c8328480185fe981ac7e38200581f0206b5831c853dc3fc41c22ae505dae334f50f3cc0a8614bece98cfb7e34f548016653a8b4e6818e00581f0205bcfdf7f53ed5bbb0e6463f2d24bfbcf0ae9bdcfb156f9cacb89eb51a26480378e1a64d314fb300581f03bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d48105491625601e2bbbeb7171c40c79fadbcfbff6a198200581f03f097263290ec937091be143d8b8ca6977d91b1cc648f6bece46c46132ba048aa72a6cb8ad5f171021980010219b114005820034a8419871214dab331839d2ab8fc67e71a46dc276f8b64246b4a9ac651daf0480dd79748f93f2d0a03339d738e0d48edb722b1412652ef4281409c65a9d1a235f774f5b37feeb8d64d0219fff703678163b0231f6e290fb14d25b1a6c639b1c30ec00c5e4623f6cd8d2923fd0d28037da9f1605b3ec8141590aaae7d34b6ecd5fb656d273d665ce5590c6e395e1c3d03f11d5a09ca1cdf622b952854ae3cd498875a903308cbfad647f0ed758d14423203a1fbca0370baa4a3fa417f4cd32c9f586bcc7b6331b8ed8031e41ba5e5c2c60303e80ac2e1d4a03c6354cb56b755c3c2a208edafc6ba34fc3e6b335001aea6a74b03eb502674326867cfd70ae0fd2ce2afc351d8ab0bf4f48c5df0ed845d13fccb320355b91e5721b3ced95be9f975171bea52b59b36b014ffe3f6a6f23d467ec0083a03254a0c8e16606d7278fa201350a08fa824abc922bab40c05030ff88be7bb44660374cb2c39d986b39fdc0ad4d626ada33564f537c6045ac6033e34972e4326bcb103cfd25521cda4f6ca9fddbf008ef434331fabf76e0b6ad4b1bf6cf59549eaf5ce030ced843c50dd35ddca2895fecd6439de9cfb47761efc9d5f992011e8a9e3e5ac0362c7e6745d1ecbd80246631b29f30de1fa395a7e614612d25e438b8323c9437b031814a2b5a2c4fead88810589ffae8c315b00cd78d214a0b91b04477a845b0edc0219ffff0378d6268931d8ad3136eee76b45820f1b36ed3d13300526a17d0e7e65793d6fca0314c254494553bb5454643f103c4c2a049af8b3d08c2731705acf55f4728dcc0003dab9a8fa15bc44a1ff524fe91c71c7662d5f5d58b367561a28141248d793429d034e1bf1c372d4a0d8d294fd9a6432b49a4571d39c7369046a08aba9b06089085503300c33a8393190193df29e7aa37807557ef107c07dd669da8e40ea3c75d4449a03ff3967e3a79b89ec8ea141f38dc0e0dec1967b8a44b538f70e6f5fdbf6a271e1039897406e2c5df4953e29550ddee91d8385d532ddae6e0cd273062006f70ada9203b4aa385564f2db6c4bc00ce4604f6caa9d0c5a4027b0b29426cef8a7268711630381893a5045c24328f8f9425216f4bdb759a7a0bc0cf82016a0bb0ceee81dfc4303e48d7bf894aff98444fb2aa02229bf48d46693d24d8b158ad451826444c59e8f0351d569a1ddff79d7978ee14d5985023d0a6ec621c68d8459f5a69ffd36634a660058200336d0c040fa8054acf0fd1c26f58675341acd0a83b0da171a7a2b502e3e3b60480162911964cbf17203119dd7f21168de7f1487679b78baa68a4b81097e9a83e19a4e28c4c1e02aabb40311c34a25606bf617bec78e5d638701198f7d8addcd4b2c6ed2cdd653ad4cccc603f9997e76a576c1f5113ae6ce44d6da1e61995b78b299a2cbde204dbbb7bb02960319b448970014f368afce2c93ef42f345ad4ea22f50947271ea8493f15c5df36a03f7ca1d0ce774bbcb702c00da862e6de6d596562d686d38f35f9fb5bfe3e1bcff00581f0290c729ebffeae95b79f6f3edad844ad5cc2669a7d7efa330ceff413897be48070f4935c9d8dbd600581f020eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d541e756b7bcca7b26fb9d85344b3525f5559bbacb000581f021c78ac4fa9807908cf6aa79ba950026d057e771b13f6e9975d65718966a4480dd7abf42d3aeecf021885039c64dc74900ded37db1516c53ae4e9fb8046ca0127c8974edf5ff0a2dbd74586038f37ab84d9a6342e177dcb09f0aa0ccdba992fe7ce41dbc71b60b25da171f07503e60e6d1ce852eb2a2ffc13691997c449c69b3b48a7a8e808cb4542eceba81c9c037614f454dfb1c3ae649725067e9aaae79d109a0ed05b2046f2d90b62f98148820219ffff03f167af463d1a0c377e729818ff4e9a4fb0fa9543019b35f5c59174e413cb371c0330b459add7d49bf6227c047598b1229f563cdf678301ee291c7076784ba1a74b033b9a2ef0252489b8bebf95df3356d7fd4450f439341912ce83856dc0790cb6b9039b9132f44d836c395875d429b70a68fae140573771d7ead58de274895861e72f036347458c50f288a1073a39d2d85490df1ac2ee8f44ca91d527c7aa440d28138e03b0be799c6354ef9ee642f28c9d17af368f188972df8f10dc213e3389e83366c603158391458531841b039302a2b362d8e6f56b90a0e166eb9909839bfe4361e974031db377eb4837906b7b7b7dd7ab1b66f79a640f9223bf43883dd55f6fd6b21605034da3ff6c136b79fb357f72edc32480aacd6e22ab616ae55880d5616968faf9260368c1c4b43a3d29902fc01dfbad911295e76142f33cd0ff61d71be80576c1b10b0219ffff039eed954852cac6d048bdceafda642d1d43701619289d2cf7825a1283804721ad03d96834a7067864776a2c130033de1c2841131c331f450e1df5fa6956e028b05203c06cd8587ccd6c8b6a54e0cacc761db0f34cbfe86cd2d0cfcbcf88bbc26ae6860326eebfa8679f3775eeb44a91103f294dbb4db6df8d3e0c1b1de003696170b2f103830eac3f1666848398e656b71fab72716eb65224c0d5b5094fcef0213c8a3c0b03320d7816ec127d0fe780d122bc3e94953adbabf6934ba8c748a44197de8beead03fb35f4220008de3e67857034b1a183bb5590f056d21d2aebc22fbfbb5404c1cc031de9347b7a496a2642033ab44736da4b5cc66e399c6bb6cb659cb54c3a5f5a6103caa66c95a77750e10eab95c84f5af5876824d0fd4e999524aed6c5dd58df5b510393aa0100088bc74f13be163f86bb7d17676cc1d643fd69198036c4e40c94da7503836e5c143daccee5461972ef437d5ed102ba8d70bf82b333fca7d4fef62220160337e50d9f7c883046230f81d0e1f7b5cf0e4964971f4d2efc9ecf410dfd4e485a03cf6190179572dae9bd8cc2b7cd24977cb3a1146bdee7e30eaa0c72b24f4fc055033e15e03c1c92a33740b1bf1ab669de29ee73ce3a55aaa533e0d2e4bdc4a3a3ef03330ad3f52ce5f87312ba4e18186bd76d21276cc53840d8777f7f743b0e30edca03b56efa917674e3e19d9180a9b0d372b4335dd840ee600ab2fa79b8c365596888037695bc6a6497f303265933708816eb2506a406ef0d7ee09409b552b229fbc4fb038aea32eb5fe64a6ae2e98164fcf844fc3a3f9d07f997eb7e62708b1d6822659a03a33d71b433d8c516c1780ff56d69209d90d690bc68e7587b625f5460542db0c903e700b81947cf79011d9ca4223dcfa8fcb457d74dd7c38819062409c91273d988039222ed92d5e2843c1b2dbebfb217e362b3f71e1881651adfddff6196e2ba28900389e5048ee2d88a5d8a035fbe7371ac6776be4aae4904517d5c9bb65e261949b70058200369aac2b7085014589aefa8b216ab6f32b625be7a371f366215c4fbfc85846048454debd1fda7601d03d182cdad549c4fc90529dc02c008aa3cbbb6ebb181e4be51656ed775d57843fc038c28b5939783390ce7f3550a0ab786168e497dab0f19227bc56f30ca6f563bc000582003653423348dc84fa644d792c6a6508f23c0bc7b9d13c8d76a4df04d3e107090488a6b8f1c60b0317c03042a0478343bdc110041e2ce0c32361c96b96553f7f73e769aa99258f73672db038ef9aae5de719de403956d518ca426583f5498fd300c30df979ffa47911c7447038c7d5b1b7f35b8a8fee91c3e42d2a241e1cfebbba54b6cf28e239ec24bcb852703202e494b5bfc66b60474e049b6b98a622ca8119151c6265af9fb7ea54bab839100581f02ba0da04ea3dedb27f81f43b6a9c4a9d82397e5f3ea8fe488b3c627bfc4814822a9a7cb7e1626b900581f023183db69d9baa7eb14bff682523dd604c712012c7025e208dc975b4c2c154768ad7bc7c0214200581f033523c55281d6b3a6cd1a04d5d56cfcd174324cfee00ee7c2673d1e5e768047038a931905455500581f03419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c70544994efc62101a9e3f885d872514c2dc7b32358490218c000581f02e352d0df851f6150a2ee0fc1a48b6b42b330c0644520d39e8106a32c3524480dd79df11002aeea0219060c0219ffff0219ffff03542d5e47da8114a8304e0e90ab59006d90aebc76969666b023a3e905165273ef036406ba408ef6af07aa1eb3fcf1f41b77945ba751d227858a262bf147d65c81260369a6db863f04bd925b7f0ef4c2fa79204f07890928c259bac0b292dde751e26e03ea521c25eb774c6ef01b39610807ed3ade6c5db4032b5667eceb8a9639e1945d0394f7418f53bec16386c0d9de09d247b08eb2c05de327648ac016153b9e6db7ea033bb6cc6b0ae21c7d8226c408ac4a88f0cffb951aa84a1fa3c7b534c112071e9003d8c5907db305ecf96647c729143c9c9d6674739de778902a8a06e8115bfbdc63036b1a11b9b2bbe573158054669aea201a3a64a88706139b4b11c096e67dd9377903cef9fec2fdbec323c5b03f0755047cd7c6020c91dee1fda9ad687b7e501a2e880058200323acd1280ed7bfa63d66d076b26fff42673f018bf7e5a20f4253b2f247fff05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03f080736aff0e1696ff79e218a444c4e831f7809281faf01394c2107f81770c5503c6af1f229dc6cc1b0a13c9a3b1deeacc0a71046bbc6f88f95d1c5bb8770a402b0360db4c9ea67067f1486505d33f78b52c0e1e09ecda40dc000360e6984ad2dbaa0379ed0bb00b61865e6297aa4e55aab07af8aa77e0dde62829911a9d66f2808713032ffa717f5db39487bb73484383ad4daf4cc3e4bb81aa01bb2c36cc1d52d5d59303d1a31d2ab372bedcf8048c184f1c005c4f6d76d85e67cd21371d01f957e9164703cecae230ca20d9395012682710dbf3ef244060df7fe32044231916aaf458b2de03661f88ff504f44c1d0b4de6b309e1ed5e1bb2b86e415907593970ff9e6d3552803401c4f12ec4e3e6d13bdb9fefc6bd02d70ce79dfbcac0a075d98548bb4f035b803c77b36b1f903d15faf6b3253134489a161a9f05428676732d7280a364170409f038cfa6efafbbd0da41e698c799b3597eb966fb0ddf7725228a8a83151f7c8e23700581f02317215ceadaf0a9f9c9e1cf1afb90f0d3749b2894a35592ebc000c9ee4c648376c474aa7517aea00581f02c52bf5c0d65572f04eb54e1d191fd3a697fe4bf6d3c1e23a3b61c72f87a648018641c469c5dba50219900000582003f84a7d55a5b4be218e27afb6aa1d6ed8c84695f406e263d9f1f39a5d99be304801a8f9ebe728d3b503337ba35e06540b01c0bf6edb65cab426476ff6680604703585da8dbd7375c4f5030d5799711a536ea4c6f39b0d99113eb19319a5187961cae343e2206ba593edcd0219ffff03069dfd6f9de5f9a4e0fa190700bc03ffe3c734365f72b1cf475453eb5c0fa8ac03b78a2a613dbf5604fd7eea8fa366f2d3554b3861d02dcc3930886eee6126b39903e639d4096937973d611890bd2b0af3a23ec21dec03728d0010d956a5403247c30344a21d992872c39b05e4203853b16ec7f72340e625e31ebbff38fa9475b0ea4703429cb36278af94111c7820a0b50861a739bbd99fa7b41a00dcada7e3bcc2a5700332ee558f4c0a9bc22aee2659d4bd54e0389a199724b8b8711d6f25faa57e17be0219ffff03b321daa832f9386630d42a1caed2fce2b6a6eaadfa73c11283d6d87ae25a4a550331379cb6cbab0ae1e3747d64154b8e5d5b4321f3dd9d392adf0815a614b20a9503a4cd21cae2050b542899910fad692d9ee3885be7ab3d2dc5fac9ed5671a25fc203f4051133fb8cfdb179c4de33b0b7524854876ac9fa09bdf2089615b2b89522c2034673d486490fc80b5a9075ff3d0c32e728a7d1dec906ccd4619c587dd82590b903c33fba39fbed4044aa0d7462b3459e456b8c9dc88963fdb4abdf7f845f92a08a03e749eb8a5e271327d48c21a764d83233bf47e9f658f360d9044d3866c9297240038f766a580968605ca96b16cf4ecc2e5ab2de410c4716171f369d3bffb721645f03c243846268492621bee7c935bd060a17cf00781c954c65fd8ad135c76315741503b177dd0a497a2ce3c4f66022998c26033a1214f7cbf90033658d3a430b3f331403a7d5d8b1f532f48ef63c77b994e306f0d69d754fb7e3ae7ce616f4dea5bd80a400582003b34f2d6670597301337ab498286e6ca85622bf2f5c3de0465fa51b9fc14e704801628ade0596a74500582003e1ef315470a1fffe3216dcf415820156fdd52445ea2c86c54e9ad2ada89ac0481baf3be22005d19d03b21d83ca5fc820f0c6a76a7936364b04c1c2d556b7454908356772441dc7ec9003a241f46462ced03506f604800bbd2a88dde0652983fe2b9f70651193d105baca036652148cb102254586977c39bec2cd36ac01086b62d2f508f146eeb8edcff61700581f0262bd5aafb4d8acd4487796f82a635a20cac18665aed29de1e6760cc3b9535820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02780044138bbdc4366578362b18d8d5d07ae51eccc7944a2313117189009b4802c51fd6c8111b6200581f0223435254a46f7eca6317790e8ea53eb05b92706d977cbc2507374a289f6e4711b7cbe285ccd803eb8478d6cc7b6f3e3a69b3c1c2a3c3a2c1b7fd26cccfb086db4042c79502bea200581f02e52f557121c5533d292ea7a53de373c4299f41b46de824ce6a2d5203cf875820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02190a5203cf7e9f59ec7f3c19c429d8d5102691a243247f1f0c68cb64d8bd7309a1946add03decf45b14764e75ee1ef3567b3af127fdae7196a27f363ff0c6f83badeb2314c03149eaf4d0538bcfc58af6bd81e0a244364a682615a889e4cee352d63f2b1b43a0321dfdfe34d21e039a7d2d6d4e746f4e15b8f781689c038af64e57568a2bf571c037221cd3c72c0a6e4a2c0048e34de7fb8fe935d15b5ba6c18953c717291b710520219ffff03a586bc9e78f89939aa2762704ee4f5a134d781f87d42db8e3eebe58b44773e9a03a4a4168158df6b58d789341eb22bb42c74818f76b2912e1d59e40d0a2af36dd103b6da41ce9e7f6a13994b01130c62e7d4dd2416f4db58057579a6ba0d42fc787d03dd2f6e8c3593ab46a77f98c0f2e40858b4acb9d25b562c5ada9334191d12456403ee74528b482495fa64f5754cbbbd0f245f8ffced683cf55abe5da91f5430e3a903d521a0c844b038a2f0ce7c5a5d128ec3ba57a332caa581ae9a231bd0ed710cb703dd22c01e871f9cf7a19e02450d752faf344b3d6ab2e61c6a54bbdd46c4957ead03c12cf65aa5f230f4021ea13c3bdb77287e8cf87e6517c0f56cd45f903611120103458b33eab4fb25decc939c8f6aa8301923861c6bd097e2e2a11c7b564a2a20240219ffff03c607faea362973b535a4f3434f0424ae9f7380c5c9602033c965fe7e9fec6200033cfca0ec9108d18c644d70aadfade3cf69c0367ce83fe0cc825ca05227413e1c034f4437f6789704b7fff3fba188289d913bcf140c0a03813e5f9fc564c12f1c57032153bcbebcde1b6d35f22f676fda10ece1119b2223a0d2e10e881c3dc0454bd703ca3fcca77a8536a69a971f7ec04cbe526243d1809f7d673b2049e38674689d5f03e3d246ca3310c95bfe78f9c36293b65d8ef5f5b2deca539c216f974b5270b8d5034fe16aedf63eed27f40affac90eff24ced67e743dacf1e45effb75faa92869fb03745efe7f842cdf7dc901d603cedc1c2c0f69d3eb3eb146e9b57658f7f53030340355d1361396ba9de111b84f22b94a617d757a40ff03a5d793acabf9496b326cc4032c7a285afede377c422eff3f12d92c104cc5bb99d5a9daa92400d96b86360ec1032902891e309d7550d92f58c29c1e29e8d532963540c389afa74d0e35e79b4afc036ae6216c6ca302997232ff5179e9315528fc419a808d82a5ccb9fcac8485a77903a56a5d93e5bf8ead9abb7ccf12cf6767186eaf049f8234d6009ab213612a92ed0329fa5c7845ee2265d0f33106cb7251815eb7bf985e6559cad874a700a1f7903603a36f01c0cef2f6cbb7312de54f4e197a956edf69749faaf6f7e4df5142625286039c967a928fa1a17407e118c0b68979ceb5cdc4847d87d768487a73a95026c3b103c737c7757dea479d43736762eee425d01afe70636a189d5bd20a53070084ce6a0305a4961e07feda14ccbcb7c8eaaa7a038d733caf5f4b3e8f5ac47afe83f9451803d59abe8231a169ff152d43ebcce55e42264c4912c490189232c66340c60a9ab000581f02a7fc4a0491626a500f80950bf393e2e0a6e40435af2757351147a5e5192b480339b0a739bd2dc700581f02d1763a80924847187c102cbe777394df37794fd5dfb9fbb844c4670c67e25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f020e8198a926ef2acbfd3145af5621113eff76001b41bcaab67e344f4cc1bd480b162db01a9bbb1d02192880039bd0b213e1fa027952851d3d5f96d88b08f850a5f0dffa5be53a5419ec090ee003e19db532498a4b1fb455fc370ce6ede027df2bec9ff4278156766face62d454903d0f0f5d6a052b4c8d9760ee63f976edf89cd6c4a78874b9da996983b54a6e686031c4055f2207e9a3ad56d49a58db9aa72e16dacd0af005409461f62b79703a53b03d9591271273eef0d3e4c3bf01dc95c2f7925de167a7256b282789b68a7ecc98d0371d1b4c838d406b76dd8c5a77db92ffc42fcb07bebf6a145d10df0fe34b7ed320219ffff03a2eddb94ad60a308b0ddceb91b3a1b970541ded6c91deedf51f53b141824726203b2d3a9705ca4df52b1103bc1f40f92eb27369fb4e876a808e13c876b75b2d14503e3a7ae5e8ccc956c0f12d0d917bf2578a67722b167dc8e04be75a854d4be3b5303caf426f6478bb781a91584238f03c0f45f311a79bb6c09bbaa14d5b5131975260307af7ba829eabfa7b0a14844f55643d4690ef3a22e164c81f8e36b0e6a5f759d03fd5a0684488778418fee38b7b14571e87fa7d56cc1dca6f72f3a79130d0d907803e6d2bd1e568410a16be585daca4be369c17a54ec4c8f0e55337ba216c9b935bb0356812d1c3cca4ce25971f5e94a5062c06c648e6ee7eefef125783b1a2980977003d351a47080da06867aa94f93e1250856999a2ebd00d893d42ef72beb80be5f8c0219ffff0219ffff05581d03f2bca51cc5dd63ca4a368953fd499940ef2ef0f8b1ccbc6ca8b527b00701190ab302188801410005581e03f4255ed52a55c08853274957deb126bfb9eb70f5b2e3fcae7d07edfd0004010341ac73b26a825e2835bdd2e1762ffe15796587834aea32956893c6835a88641e03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e0364945d2f9edb61921d492a3ea8c0c3f1991c3ea6c89b9eade5e2c66fe007011bffffffffffffffff05581e03e3ea0e76adb853e9fdf02982b8716d6ebf4658e1245f8c356bc48d1aa008473ee3e00dd0600005581e038059f2ec2db1a105bae469600d6cfb543afbe578fb57870950eb3200900c0846940a8f694e380219df2603bfbbf453ca99d6f1171400a46290c1ec2105decb788c83cd6b3729bf5aa2ec1903ef0c3acbfcefe5d4504223337302f987e219b5a0fa7e9d4ccf913413eb72a0f7033686636f1f2130fc8f2a83df5c1094bdebbbd11b17b6a0a4a46afa4f369c738203f9b8787bdb1c5ac50fd8453bd7aa4c5b71302ff900da3babae3b954004ce957f032e3d0b6a30e05347aa2a4c533f234aea1e66bf19de366a797e0075e4970c1904034a88841e4cb45379147396c69fc205350185447d7bd6c8f11389ffa7ac742fb1030c5366d3df5fc7d380dd2319ac64e0cf95daa4a51940b5d2df5a82f7188029d003e53bf7b435b5ce1721bd8657e26ecfe3fa1844fe8621304d75d79ddfc9b405be0219ffff038e27b4ebf61b86bda28eb6edae85a078046d8782e9832e84fa68751972b9fbf803e21f1d88fb51f80c6ecf83aa22d18fa98a55dacf64c0e15987874bdbf6182c5d03d23b6366eb1895cc41f8526c4cefc85bdf4e2bb2d4f3295db5494ad40b603ef70315090acc03c2e8b86596532262b06a0d06a3a79cdee77557928e2c1e90d7a06b0219ffff0375451dbf82e6edc3a1c0ec253fa4e8f7dccb7d380868fb2ab7eb27c3ba044f5403128a28aba86f2d0d16c9fe368ceb35f029aceb9c3eb2f91a7cc93afaebd6a57d03e0066f38e737c56a089336033ec26ef77b089d53373a0d6ae9dd39b37d5572ba03262a36c5c7fe63128fd8deb1a8136c6d3e5bdfb364fc5cf46a2c787e8d2a4b7603f88e207732b234f81536a9036206b85c3b110c6db8bf1404b74188bd2c34309c03018f3b53c671968826de4cad902425a2480774fd3d4e2967bede7ed18ba1ff940352e9606268c406627caeef73c965456cb8403bdbdc6ca9a604f014db3282ddf103a0c4ec69c777c0df8cc87bfce3bc21c70ad5722a9cb660954c0840937f4f05600219ffff0219ffff03a59deaa8774fb54d3b53c071f18a2a0a40daabec3febe5c1635b66f935bd4ac303834d23d746254694554528534ea708f816bfdbe8ef353973d42db89940d82f9d03eacd3625eee872a8a68afdcb6dc3850cc5d03a3a574a044ff0757b865699ac31036b6c68174724047e133cdaa650b8bf413555d5cceb5964a051e2f77ee7bee606035bd5ae6fa0c657ce727b0c8a26bf800319440ddcfd7490107e41744f8025612d03a4ce62d9f544fadf8c29b2cc592e36f2f3df962d3cf9bd7978d9d6311ce63ea603fb2fcc73b152918d08b071e84711bcf26162225ee9d56cb476a8c12c6c3e27bd0369fec1ec264433c2f90efaa5ac3c2d51e6cb118b0ecd34050c235a545b488f8f033c047af7ae34797d4c11861f8e1eedde1608e7bf1d77442813e71cb6a0ad4110036951be3a029c12811c8cf4a5c435d0ca0cb751fbe98c1ad35d31fff00c41a68303a3ec37b4a2dc67eca51f9bfacc72c3cbb979cf4188bd86d72067a406a625b9e70398a997d18df1acebee55253a724c5e99f20a773b809797854911237be15ef7ad03eab01cbbf3f9d5e6489bf61e62e25bccadccd7cad7c64dc8138d420332dc26cb03dc0bf8d2d6878d48d138e32f4c709bea7c13c9d4039dbe2682cf60899f31014003e2f87c14211dd668bfd081c9fe79156f70fc654c04fd7ebb4d037aadbe7dad6103f9992ca9ef97c4155322f0839779277c4634e3af8f17dff78c98c4b43c34d87d031478dd122ef46aa12949c6da3122a9c3fc22c24ca9e2a698bffe809460adbaf1039219c750c6df89228403c2cefb18d088e9ecd5dd7bb486996c03bedad82c734f03a916f132c69aca7f97a99dadd85f0bcd7670c0706ceeece7c3ffd4551d7e60b10364f60280c486643cdc856c2f0cf315784840638a2489ad6d575bddb97ffd92ee039f53c1811491ef73d666eed999807eff7d2c4b34f2611c3374a8401dec93d4d9033163c858793f86e68883bf5786600f063246ea12a780530c39f5d5332066da9a034d12e291370e75addea978ebbb80d4f841c6e16e9e8f1e0034946b21b573051703f1d690296ff838f8dc54d12f81ca4981a144f3ad3b61596e9581a2079ca91c15037dbf015da19965499fc7338081e731ce5fa6d8d6b605405021203c062cbbae960340682188fde716f2c7b60fbd37e730e282a50a076ca7df8bd616b3566bf73eac03a4a83622e980a093d1de3c41707f5f35d585e083d60b0dd790b25bde6c3f535703abd1461964416c388581d122df78f30853779cbaf26ec42726fa2b0d1fac90a4030dc867d544a9c00108ceebf38da04f5ba526f2eab611fd3cb744faaac03f87c50357783af744b77cd3907167bb231a33ab4cc5f3697b7f50b646ee2824f3dbe7ee0396c971805226ed30c211bc42c26135cea55d3a70595a5e2de80c4d132f0ebe03037b33759d9528a5262c8b76941976f45cbfe03249e6d9d4ce21d733cbc8a0fb0f03e78e32e4e2ce00ea5568b9b734cb24132aadae9acee736ee2bc8d46a0af69adc03b4e1e3ed7d801dd8a28be254d230dad1ddead2cef36e97a2c95a5a01a5650c990361c1e8291e24386b94dc8a9fd3ca7ba692fac0514e342544e6c56b4db1332366037058fa4690e6690319fb01d5d672e9cfd543ef3cd7ec41b1469a5c725a2c43a5036f9e9a5c404d3741c0bd558330735f7e9e78100d1c2430537db9c833b20227ec038b1389e131116226c4cbbb8a0df4334cfd4a3cdfd9a7e9d7ac195c7d1164719e034527aa29854eae696fed469024d124113872b2875bf3666331b02aefb4380b3d034a0bda6946a8a0bc20f468016c36b1c102e697c8a4980529e484c13e08bccac303ee05be42ad368e940735d89ee49f2f332f29f85605c944a872948333ce3afeb5039cabddf45983ae46b3e59ca7789efd4f0de2ec1f968d6f5fbfd51b7d25014af2035a8f19baf2b780794afaa7a2d48f21fa14997f6ce1f602256c458203b4aceef0031438a13b456802f6e6f00182123f5be129b408bc5f0a4b650be19c6564c5510c03038a00c405209b918a9f4501e75631cef8854f6d6dddb9624853d3b47028717803c2607bde30cd4d86400fa39f76cb026de9a5d7044ab376385be631cc5355257b05581e03876f1fcd80c2b351f77a8e29682aec81d02a096ac4af2b5d11e534b5d007011bffffffffffffffff05581e032a0ca01dccaec9003e5bab290985df284a524d233da21de41c0178c3f0040105581d022ba7afae7976b0536042f2e96e9fa1d9fe643779a4791a97b674f9f50c014731cbff1224085b0459012a608060405260043610601f5760003560e01c80635c60da1b14603157602b565b36602b576029605f565b005b6029605f565b348015603c57600080fd5b5060436097565b6040516001600160a01b03909116815260200160405180910390f35b609560917f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b60d1565b565b600060c97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b90565b3660008037600080366000845af43d6000803e80801560ef573d6000f35b3d6000fdfea2646970667358221220057eb0563048c09083c6a0bbd7deb129e4dc3db2932ea2d88d29de89fb37937764736f6c6343000811003303c1b1c3c04b20eab336115fe7db33fe47e817a81e50f4e2c2f7be45ce14fbfb9f03242cb60677c4563de26d1f3536071200eb891908e516c8a76ac31fe6462fc53d0365c58579c6019b54ec3b1776742c045cda9a980da4c8c4b0ce3bb7512ec1f4cd037e40ca5aeda6c55437c7a52009fbb01eb66c1d2782035d726610e5146d33055d038b6f9a9e85b05682d1a4c7c658d1dd21bfd2d2b37a5804cf346a4e4737a02d4603de6706144dfe76ab8653aae9011913eff21a34e4d4a17101a24176e45d14b5ea034d5e5aa0da218130edce4d91dbd65a5e4eeced572c968a89911b0a24f4e1219a03f1b6d9969380b6b6146989a2fb6da9c0cc4a69c22dcf92bfbf5c268ebe701a1b0310217127942ae2d6c9df527b724167fcb04c1eede42e4a98394379820ce71285030430a5e0e0b834089ed87a44f59f031abfa50b004586f94d86b8b5ff1130b2d903c95aadc8d3af2f79d7003c69602dc870b3573d869fbabe79066a0c729a027b9b03eb193cb13753aa0e1e4467fef20ef3ca54e46c0d9e2d0f01526c89ae7f72675c00582003024b6e2869ecc5f03f43d52bec1275d5a9c8f507e542932c102aef47b8a600581d3e30c0f000027100016612f42a4f391fdfd2c50e6d6886282b2fa1b11c00582003ae9b7cdecb8aff84c5a8ab750ee794b79ca5c12433771aeca1086a9fe79900581d3e30c0f0000807000146d43db499b97e4933d43989d619fc4e193b67af031160b46e2700308eb70c122e71f18d02954e4615d12083589f0626bc15f78235037d48080532b18cf8d825dd064861384baa1aff0b20749e71161220a3e7c616f600582003b35b3b6d9d64b1392c6cfe5d6dd682c13f9c118a7277fa6de031acd38f0720581d3e30c0f000073a000118bc5c3a3b48c785446b3e9e7ca16aa0007b9a9f03eb094971fb07a948c706e8fcdf81726df1caebf88b77be5a168e26e2ee8cffe600582003ee62f9168c29c27d1b677fb0c642ea7d6bafa0a93c706e47cc3a63fd2950304101036594153d58ef49aab3495f472919fe00b9a29e5181346d0082a2899dfc66a31c035c925d871705d01283a45c39bfc30ea7413c206f4531821997ee1e7cc565c10500581f020eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d545133522ea5a0494ecb83f26311a095ddd7a9d4b600581f02c399a5c0fa7cb358c7ef2ba4a43f83de082fc5af79a54f88ad2a2553508a41140219800400582003632981d438938a1a97587e4042211fcd8d286898b6450b0d841fc37e180210581d3e30c0f0000bc000013fb8ca11460b4167ba6c9acd435dcc8a900c41450058200300921b1c9b594118edbb6353ffe6e92b45200de27a358d31e5656a10790650581d3e30c0f0000fea0001593fb9d088202c7ac2b8d777e9229cad23b2ac0203d83a5e696bf9fcc573ce6a00e8073e8458250abe47a969d5b92753d280f154a10219edef03c989fb633288dc946b8c552be8d1f106cc54cbb60f102b7949b4ee19201ee583033cc87133b7f979da06cbce247e1264a43ee996da772840d8706d7dda54e387ab032e402beda12e591259c0619ca497cab3492cb0147e3467686026791422a91c84034caeba95b28fe03a70bdf7bd01a7be0a69bef75ed8b9edb47779b5b82ddadc0203a1760e552e16e4c39fef855915f3fd58f8a810b5060ce1f7efa4bb5040bb53b40396a7eb54731e7d67c809327a83b07b10bd0f6e7488655d63761fdd66c54abc0303028290774daea2ba576cf82f83019bcafa9c4712bab6bbf663c84cc1492ec8cc030c3cf3d878538a91fc853939a4feaa6d37dc78009207779fd90c99152eb4c2300306c8d2a102fb32d4752cb242c99f41180942dabe8f0f7d29e6d533ec40d70d1203687d88fa3348823e104f85afc0c4ebc051c4bbbcb7310f3d21d4ef4c919787680219ffff03d4f7e4940a750340c8acce0256b1b018f27df5542b512b3b425376408643c452030bab3a593afa858a9a7d72d3a59facd8fb07ae9dfe8c1b53f43a833a7aa406cb0394bbbee3fb0298d2a0ab58a8be6a9505038fff09869181a058d23f62ace1f57a034c8a651e8e24d706ca542b5f335c6477402cbe5b2939ee36638d0a92feee84b00341b635c741a1635c5ac4a9a2ccc9611df23425d2b34a09be05770b70ac331d9b03945b1b7902a7fff686ec2b1d60cd621ebe330a144899b0e5300e764fcd0b6aea03b51afb384a350c8e108f25aa5661edfbcbfc188be7db7767778cfcbd322067a103f19f502486e7b6b4625778bdf68c367975982d03823886d6b50797279ee0f242039fb868ff2d5e708c25a6a16078359be868c767bd163f991be3f6c4d34e3ab10e038eaf806375fa58bbb7a6726ff493e6e068f5d692f96928f7324f218303ae01a103da33851bbbdd3ea764de7c217990b61a6928c91d8ec734e196aa30731bddd54003ee3d5e624032c50136deb340a3739bcd9d91c0ae4d96fe19f62ea6d0a929e4e503f11d0bacfc286e0ef95f422bc9df4540b0082483b8e3c1cd89e7755b9f5b871803c98cb4eb6f6c4ef3668c810a2a78871a9c61ae6c61f762febfbe3ae0d3dccefb03e740c1166a050558d6c003ae552974bb4d3537865a282d2ba0332d05405feca1039775e57b6c9e24065ff2a81243d83c4d49c4782c60f803cb305c6c53e1b35f0e0311f58e7fba8e7de22b485ee9772146e4166a2d2b0fab1843f2d140b585f9d7920313275c59b70e94f0a5a40866d932820b197f0d58407c1475a68a41d85182bf1900582003400edb39077bb89eeeb73699af97ed13f2f3015cf7fd94afb8938b21c00420581d3e30c0f00001ef0001e8f201e92fa8a8f11c3d086be017189792a7b25903aeec88c94c421777f2192afeaf8161e7ca97d62360c2c6929464876b0ddb55b503ee67c7d7d5b9d63d3dcee7c4257ea5572459973ac8454d4c21c252badc13038300582003c570981aa70f4acff02e7561e6ef9c85b06ad1574da5ed89c659b3cbf1b1a04101005820038074552d7d2eff9970eb877f69ac3eaa3e13cf12685508b51b96837d4a0f70410103bc12945dd5901f097279d4b89eee3f7e467c3fa97238895dbd95d89636b510cb0058200306caba1b61a2b5193ad35e715e160bbca2f0093dd9f23f14070fe58be99810581d3e30c0f00001a00001cdf46a2591f48c25013483f0bb89119ac103f8510350d0692b7712a508548f50f9df9d4d31b2685a1d720f880fbf9296786181d8990219ffe603b6398141f19292cbf0cce31c1a53212c5133a297b1c79dcab8ac96e67e05776e033ebed859eb1076d59f6923dad4fb7e780a7e6557c6b9bb580f002e21406b1aaa03169f473e0454d28ef6a9c15bd2fd591699aaa33d842587a46783a83f721bea83034d88cc12506bbfdb32e3531a46dc13a326594a74b0e36cfc345ab85f6c8a169103043bb68b78bd213d5539f5eb21e40c5f903d09e3c3b03d35d6aa585ec6cdcc700383e29f4c6497a0506ed0e947b9fcdbb4c371e5166817b3bb6578831df7c34ed10365ddb9b8f1a133907d32128fe552060c9f55f220f632babb5c7bcdd120d90c600219ffff032df4031994570b0447cb3f3761378996af40c0d20a51336b01c46f28751df40e034869b2559719f4a8b9bfe2a16b3c82a977f48f3b6f885efeb469960d2e6b3d8003c060b70f1a46d581ede3e40f823e62aab3ad417d8050d77dd8c7acec01dc97cb031e39c24f07c76736192997391a9344a793e3ad0a4ae931d7e5b73ae720382fbe030a35dfbe8970e123aece503c9af450f1a0459b8d007ec164c1e80693c66945ea039cf2fd4f3e9da17fc548f6ca82a0f58f3bd565698fac67e092ecf9fc9106d26803ff8401213e45d689cffb2a514f77209572957897b99f7360de03a581986c3ed6032e5aa081f0a245da91d47306f975270e918d91d491c0966fc5d85873cfe3e9b6038ba87e2db983e58836120d4a8de24dcb2a852e5f29160faf3bfd012ad41ef2f703d63216bd50fb817aea54dc1c5113f62abf0fcddd1c2b2d8c5d457a2e8df8c12d03a0c05cfbad9f68783f86cd6a0ff3c005e4d9ad45fbbeb6f43854ae4c4c6c5ffe031d1f195ab9c6112b802d295a55e91bb1afde1095dd960718eff11f60f2b089d40377c086d8d49846fe1bed50f021aa001f7a2dcce4cf4234aae0c64a7dd74b7faa03f6ab4f7ddeab72bce2328789c14b4d9a030b0b69fba8f6e7554cbfc8ea1746ba03fd3f338d9014204568b35e6193102cf6ec57a352a2db960b41cd2031f04b746803e95b54ce792a1fe045699cc05a81e69da62b15d353ca672520f821f27dd8686603f7e4fe732774e935423d5f334b13816d4479430946bede736e50222fce23231400582003a7b0a220e65ce19e5971d17d045c6a58066c37868956b61f15401015cdee70581d3e30c0f00010a30001593fb9d088202c7ac2b8d777e9229cad23b2ac02005820036f4cec30db985b24a292437c0b895c5e34ff3c73c30413ec4ac22c02b0c9c0410100582003b2e27da1fbcb59b1cb7bad2b37cd698ae11ae64045e103d38f27db490c7410581d3e30c0f0000163000191215d71a00b0907ca67b25401172ab18d4b18f90311d25cbc16e877b2985b6cfab81b12ec3ef241d8b78d6cf0acb927a9f629cba0005820030558c6fac00527c70dc58e477da8f67b197029fd8ae258c0ad6cc1017d2bb0581d3e30c0f0000db70001b7ef0882c7fa99a9fdfe841ed49bfba4501988a000581f0271622a7b1d6f91d57c5ba70dd1b377341c78774fca10382b3b62c2c581f8581d3e30c0f0000b7300011d10b0166a761f269adf864ebdaca9be445ca63700581f0247f67933709beac1ab610f6f02d0c0ce9433915561618954fea62d659dcd410102191080032081b97bad917eb2db94e63090da580facedf0f5bf325fafc9a4a26892ec423601410e03b085da49908e001302a6f0bc16ca70d7d88dce83b98eb52a615f4821fea4fe6603f5c6423956048c961c1aca18ae8fe935df333acf2c7a25519a663e177fbc12680219dee30219ffff03cf1307de0dd59271de23ecbb6181c8586606182b16f7d1aed83dfff725bb29b10219ffff05581d020b0a78e0cb8da7919a3a0311f3d319a751e44cfc40ec28af08b21e1a070119012a021910010349354e87634d6b1d0229ca24f356aa58966147bd386b91c4262ac6f6ed453b0e05581e03009f6bc4abaa39ce554e4ea0e75713205b104ab938476e15bba674b5f00c014601a6966e260005581e039e5c442fc3508a35d02f861f950375ef6c3fccb208323aa12b9c56c5f00c03471606c59d71334005581e0386af8cefd15cd7bb8924edc685e7ba47deab98df32eadbcbc6d3bad4100c014706a3cdfee04e0005581e03ec8b12989f255d30e28ccf74783c1ffded0771f7f6a4ca14367597fe2004020219537a037c552592439e7cdb42ff25a0df983d239b8d2bb5553b0ca20d15cf1476e8acf203d1389605fc37b7fec37842e2cd941abf47be04cc6a8951fe5834fb52492de04b036ef38967a4e9ac1a41380b232676290bdede554801f392255b6b9a2c56f403dc0219ffff036ff559595dcb4dd306863bb7217500ed36db1c659de8e2f95acd878405426ed5037981acebbe2fd01c46b1e26b4f6cf68602680ba5c1056cbdd7d814dff284361403dd722ab3a0bbddde36361f143de8956fa87317ed6ba0eafe9fb7fe39486f4892036880a778dc18006be64d7f22e2556a058999753740a94d560440aa5e0bea576a03f4250a8c82381926c57cc0b75c34942fd81f49bb81bbc98c9566b4d7177fc1fa03ea23f9f6af1d15df6db22432ed35448af0cfeb4370ab07717988ee85d700bbb00366742ea86b98e7d6e66c0b5f48fbaea89e86d13daeb04f47bfc59066eca2a79003c2addcb9b64489e00ae82254313178d9cf14e13584f107c6bf1a10c429b6e64a032a3410238230efb9f93e0edf299a5ed278dd462bb816735b1145990b3b705ea603cdb31f318c6001336b93d877fe1b5bddfdf0df554acbcf87cfcce7d4d874441903f02cf755fe6db29e832e885eea655f52628a3437c56e272442bef25a158eba30031e4fb9652d4538a462b7bf8716448f11717cbd0cc28bb6a0d6a1591d64fc905e0219ffff0219ffff03a5444862502a49c811fa1c03bdea8b3c16a4329d4986c4d8c85d17598dedfdfb03c0f8b6bd89642aec9345e316685f94bdfad9539eb1d03fed218b9a818230c4630219ffff0219ffff034d1204ff2d25b722eb2767f78438b91aa4154b483683ec49aa5c5cc6d9d7319d0356ebf7ef3625ae6998ec666698dc871471630ffad7c8c37e0d9e41653e7e5e420364b511b5b40fbabadce5c635631983543b78c9ef859d242595392e6483c9ac19036bdbc8b8bc63e0ababb7fd363b763f460d37883243858ab551e905c9c17f021b03eef4bc408b1ddfcac8fd161912146e0a42b4ac0e6fe4c7ca9058ee6fd3e1649703c8c2910e38132cf76f61d519a41356ebb4938717d7ff119bd3f0459e8fb000c2034a50ca9eaf808306977290bab7ba2c8c27ce60ca73eb8aaafcea4173f1da8a5603559d2bae149e37a1907c7788dc17a0044e90e833697fb09eec43aacc541d89fb034c88b1bf407c7a23be2e8520a9cf9044d7d4ccbd29a7e268192f508026c05b7b0335ec6a3982b79321d428e2dc6f127cf60ce19c9125456c5782ae5cb2b43772b903580ae8e27d0e71ca55b27ac87a1692994cf7c5c1f19e93b5d31a3cdb840de594039f4a9a20afdb6b77f9b1e9692f3b3c774687fefbd42f2b38863163d77575648f03dd320aa580df1a560d46dc641373f5a6e75da09982a9a63703ec2e20018be11603139ffb3f2248acdc0c82312d6015154e9a3020e80cdc5f25ef98b6fa18094ad2039c0fcbf0f67e57324149fd2b822862d7434f41b9ab6806a4abd92db40605003d039d10200955ffc3b2d6c6115e613eabfaba2c7a01715af83fd97055c207a1e4ed03f88adb5ea12a5d0058b5b17f1b34fff5cdc7eae048f557d5447e678046c1a16b03a8967fedb12ae7cd329e856e109f8e6717318ed391194dacb462b662dae2cfc10357a4eaaece898d614ac4edbe5387f6cdeb963949d8565eb146dfee38872af98103e66c26ddd40da6f1618d8f771469b0ff0887690d839a6ce7b281c0d9118ee56b03dced098fa61a3e8ef397e07c24290e53d820e6dbcb757de5e2c823cea03db35303cd4580322b37713a0ca935fbe046065b209da1c2f5e22b4a3cf9b0dba7139787037c48b610ff22f02cf6e9c0ed81985f893c0d6685343c2831d97883ac55bc263003a00874dc23c716022b116049ec028e47e5ea68cb2a509ff2f3b9798395aa3df905581e037209eeda31c1c296cbbc321863fc53a6e23e73f7be5e4c208a0fc74930040105581d0285ffeaddf64bb418fe1cde9d4a2822e9d823cc9e154460d5447a647e0c014672800ebc56dc05581d0252d090253a8d37d735bce4b0f981e2a00b51a6ca7b04ae76299171d70c18264798ab9f52230e570218a003de380695087ff2d9271ac38d457470f3d08b650276a805e261d4a9b4828f3ccc03eff9b5a1a40e16e790a697531c7ccbf67d28173053f3bcac7db5260168d938bc05581e034a51175bd0b6ff2ff751dcfe1f56a5065c2097b2f6e3e89301c49232300c024713d2fafdd8c00005581e030049d3b2122473075bf88c18e730ca0280b05cbe1445592790a582c9900c034776e44dc9bbcc00039cf4100dc54b4bd5e52ecde8ef8a513d1b824d836da0dc1cce7f34b3b722b7de039a8221a6457daed39645df92ce5a202121ac0622669767e464c77de0b0b034b805581e03fad1a4b49b29561e8bab190ca074d3e7eca2db02d714b1a13bc929e26007011bffffffffffffffff0219ce9603d2ea1f9639025ac1e56d18e778459ef7340d72a3140a03f57e7c4058c253a94103be24b870532c86cdbb056db8abec0a0ca7e8b2c8deb3b820f165278aea27b139031d1f13a4b2966ab9af76804fb9ceebbff87342c166d1d5e774f8c9f59e50774a035eb4a760c10bd7c90a40e8767614c423a50e98d4b179246f745fc2fd82056ef10358c5c601cfbc82f99107bbbb8d77426ae946dc7475650162934f2f00736c751503282b12819ebbdc30148772b8c4acb4e312a7ae6d9e68be4c9f4574a55e475ba203c79f00df060be5ac1e9537a3e3ed63975d6fd7ceaaa8c086f2a6fd228a92649e036e760fb2236f87eb9478ab40748766209d436372eac4907929bb7e1f0f16e72603f5b315a2017d2e1ec955963ad89be7eb929beec07fbb6380af1b77d5483b423f0219ffff038dfaa6770a5688b87d46d28f1873573ad334ca60073428cd8ff614394ce7c997039a6c1797f605325eac6a7a68d467b61e049236dde5c5e7ba5f7afde9a2efe1060311207a59ad1e544edc85e0c76a4a2f7ecbbda1055c6e81c852a3fbd00ee79477034078ce79de816aa40f33116f16ebdf9c9e30d15542c49969e6b94031d1f9acad037f605f3dcaea0e553070b7d0d6677d869ef972812bc18a3c7c644e45b9f03e9103588777bc44bb6541ab7c5c51055f38c039db2e679b431a25498d5a37cb46340c039b581aa67372f488d79f5f6351213df245e23e5e7202a71f3e2d622ac571a2960219ffff035be14e451a765497c792212faaf18cce27eec9b42184e32ffe70d5f5a2e7ca0803150bd4edba9b5019f4bc9339dd8c85f367498e97db34003a99a9ba6efb225d3903bf6d143356295d91b9e9849a8e6a67cec7834fefde3aeec566637a4ec9aae3e60329b9ab2b9bbd0664037e5595e43870115a7189e6b8eef6454769bba71be6188f03b20d146a1689e7dc5cb268fc1e04219e8c7e29850ffc6ada86bbc651b8454ee6036a52f0361f44ec3eeb1de3c24e0982ef49ef5564c675ede377eb7cd5ea92ed1903117c373a88304c49a78327f452a2bbff0906fe0b6378628cc9ed94ea571894ac03f5fb6a0bd7ab7dfd8fed43a7abb4b328a5a3c61a2a7671f594446207ffaf8ae403d8f1fbec6a8dc560c5eb6a6624902429f75e5d4858f5a31d381609a94d891076035d50533bf175c676137cba28c461c160e227386f8b023c98afabe52f09763c2b03ab048a41198c845088687834e226b7d8d3c1044a9726beadd1164919111d65f60219ffff03346be2b6d7b07353f1baa49c08b6c53c31a0341bafbe00163bce04b161506a11036e310d74e5aca96fcd4f8492f73281ef983cdc1176f3dd1e9cda5f4b28d21c78033ea2bd7c33b2aecb2c874a70ff70d2999f8ab1eb15c24cc067fe47c3496b1d850320d368de9098c9b7f06c1c8747482f1eeed5e55c6fc7a66bc085597c622ca90b039fd8c0acede0ef038a1f9c75dcc784108f194dd3ba4301151bd852275022b924030ec2a000673474d78b4c2109cf9d556088eb87332b1cc03b34619b4b312cf2d003dcbd1f76b8baf47193b36a8fee5284b21eb2a68e5de32435231d1ab985056a6603b134dd043ef2a8e56724b8f0e7da3f31f54962aa86a51a322881cb7c0627075f037996ec291ef93fde57fdaa6844740fa78b8b57283bd9ee81cacc3a3d6d6a609503dab58ea57cabb57a00ebfee16ad57f42252e1b9e3528c4b9c6d81d68d4ed516803de47146ec0f9d15a37dc74a05748fa5a93f67e052b281088cc3b3144034d9b3503a74167ffe08106965c856b13cbec417f8eeaa61a952a7368b3f563f2e8f1c15303f13519d7edbcb662be93bd092be0615d12718c13601d5bf0ed57ab0908fa922a031ef433ed8dc823aa42b8c87140102768ad5d9f5d07e4b052ddd52bf0cbeed3d603c5ca2eac4ba94241f7a212bb1457aba3db85359b9e6429155829ccaca82d63990323d9701c7482d7ce6baa4ed9e59bd272f60fbe345e3b1fba6d10069c074d550503df09c3fe05c8f89b90ebf243631764c1053b319dfd113729530ed51f1f084bbe038433223b8f6ab37669ded6c438e56f7200c0ecd08f53de69f4e962fde0eca7690358ea4830c52b6834ec8b54d58bc2dc75a9f49062b25ba7cbca8274b7a38f442003582bf95bf6bf08c84418660abcef6a84e34416dc569ce2e322495a864fb353620340ef21256407dac7e70fe44914a929ded31ff1d22ff88f0e7e994697f2d0fb3103dc2c6ed37e64f280f5001222d0fea38e1786f55dc40b011a3dd23fa4b8a65a99037925466f9bd554bdbe84d3338de7debc27165f31a03c5b1ba99b92c5e883437b031a6fde8d49171a2013cd531e4fd373457cae17a596fb15d215801e728b6edf4803199011737042fa984b05d9724813213ab4d4adbc9352f7e739dd6bbbe5e051380387facd41dbdc222e054a64803d47041cc92b1fb1fcc5c3097b3ab1c175398ba60388f21f407a73cc00ceab4208546399636fa6cde51659f59758a15df09aed33a3039dfba3bd5084178b907691c92369f68fc5f1776bab457cfcc9c435698a341fd9031fdf80bcdeeaf58c2711b99a7df2564b4ba1b3c4e72428fcc2c06374527c162f03a25907cf5e86384447a808ae3f9129c006f3429c2f7106d82ccce8a1afb0b2a403775d68f88b1080f35a61bf0b6868ad951f46cb3fae508a0a54e0fd48870f2db603a7a2fa12cb576156595cdcabb3b3103a0615134846e33e2fda6aa67b2f728ae903cbc7c451f0c143f161e4016a901d730b890551c1869a4680c88e4ee8621c956e037e67ae142620ab9eee9a0dadaa4d9d090bb3a81257243fbedca42d8d10263ea30315e535bcabc380c163ca9a804e527f204391254207ae50bd6f31d52d358eff8605581e035d67ce522b7e45dcbdd33823f4212897e3cde61e34777d4adcdb6002f0040105581e030e416f1cb51608f5da3d20a0af3077353ba818c9c8746b34815335aab008478e5ff6bb30200005581d0248cfc3a656b01620f4292d6efe2a6451a993d0322f5e7c2854d19a11084805e111ed1a8e6c0005581d021668139644becd8d642d6392bf93cba573554e9d9baebe36a819aea404010219200205581e039440628265e21d01d8efdfca11b88d48aec47a31b6241724a1f61625600c01471afa5a139f2d2705581e03bea0ec7de989874de751b4c3424a6a9c73bb400c787a92e5b74c8720e00c024684086e120ae80219ed3103fe8b04e4df7696c978d5ac6b9aa0955bb8953e2c1f3458568bb051e850097bad030a1b7bee6ae0088020243fb820cfbdb86f2e2962030609e08686f6845ef983a60318854c0e2e8eb471c7d9a8c82c6d0a7f7bcf1b2c16f0c9f9f448a36796abc83603d03790d6a0101f44e253042430bacb98a2bd15126e330b2e287f54081b3c9e9b0359ed29dfbf4886eab91117bbd5604694ba9e169a3f1c606ef36a46789ed5145a032738f1961cf933f323409cd93f61df8c0aa2302db3d8e978fcc864409ab3834b03ff09164c3d5fd0e02810f89d3f10fa04a2a7ebf54a6a925f4f2d6df291184258031585d393d7ceec649bae75eedc0e7563cc01542856ceb1a5ff0c9ac7e38e893a0349fa6d0496681f474f364b49c977642c6d7eb2c36d60199e672f97c987336a1c0311f5fb125c7a86d35b9d2c88acf9b21b846b0f59f2539e211f78169e52fb467203c9392c3de68fe9ab03701461e74c79a5a224a613b8328c1794716ff307e60fcb039d92c6afc29459511d2aa871a4e9a7367c288fc288133b49a89f57af444962a9032f00e072c84fcd2be24fb321d9aaa02cbdd25df0ae274cbf750fbf0aa9dbff76039767a82b68041b2d3fe1fa6e49156630679b45fecc5e791771687ba7175702800219ffff03a2c03f2301eb709ab9fd73642def28325858d9af045d6c3cd5e230b1f4b52be903d79eec20db21b18e1fa8d63fd57bd79dbd436c7bdffa8362a4a08ea1d52ed30703002e8b6f2857786f3356222f6f5d45e19fe8b4d505cdc3e053433382c7b4dc270219ffff0219ffff0308563c904f2ad231f3fa35c576df4888b8c5f8f4c8d289d9e817d48f6b2e347b0331f7723d3cbe7b1bb764794ca6daf8278d32805e908d272db8a897fda4c7e31d038e1b39e2924e75f5336d5bfe7a12d8fc7e16a9e93ac1f70df25363287133bf9f03d29a4b47d0c73410cbadf804cdd8a7cf74d2429b213f5623d34b560613b2a1880311f5fb968c17fc983d742dd607f728f44dba11c32fbfa269f6cb08e5813ccbbe03bbd01968e40d33cf927638b298f32ab92deefaf1dd28ac749d7a906bb181ef8d03dc2c8c9be9acb303250085f2028e29136b80f0a769c953ac9c50a3476fbadcdd038c6893fe0dc62ec6caa41e871a8b7caa5c7d761a8271a7a406cc7efca0211024030fa83d78b17971bcc68193f28cdf4879444da1d797dbafdd7b3ddb30a6dbba4e033340b025d7eb5555f3ca1db75eaeabc1b22e51cb85ced5e090ba973a92ecb02c03737ed55e0450091f7386710b6371edd7d240cfacb5ee09922d167b72ae15e086033cb271c0c6c713036cc37c57dd40a7867f2247ce395a8467c2c4b4774ce9f119033c77a2cc903c74dc59c906fde4f7391b51d1249833c8eb4503f493db3068577703a5ce03ceb906c3656bca7879f9171f957025adb576c71e9e5ac32dba68b72bc703f6b8439512a164755a1e533331badd0ffba7ede8c5c5459da844c8ca2b89c3f703da01c4eb7be5098ee24489318aace87fd63ba127f1963a2d30f3825e6ea7937c03dc57dcaac05e8eecbd97b44f8b6508dc536fd9aeb78ab8887b378ca20efee34603495c42b2a0c15b8853f41b542b7e7d8a4e0009691a485ea38549b62bf632f072031f3c6ba9833d766ae1756efe643053b8da235631836c6de0248d114635b73a3f0322e8a9c1f52eadf02aef44c6bfb5b629f868e2eb69866537684a667a3d6147c303ebbc7004d92d8b840fb021bc903dcb9f728051c4723e6c09856d4c43f33155b903726a766f26b4e9150e536d5ddcf94f29a497d6b1bb0d4ba799b1b6e1a42cd7620351a113a4697324da53ac3c44b1ffc0bd64f512dbb462a05cb06d1cae23e617f3037058c8c28303b8d90d2662c381158aafecb2f3c529b81c83940c7f4353ad5fe703b816031f750ad0126ef6c31184f3ce5415614c4ae90f9c203eda115c0e5e779203294bda3d7ea235af7b53c67c397138537a1ee254278b0df3f6b28f214ac9d0e20352b5c33fe1168a16d53460a89e0dbb9b1279beef0527a164bd292c3552c4822d03c50519f87bcbf8cd4468f41658819ecd137b3d3143b92b26e3f96f31eee3c53c0317fbe768a283caa690f4e63c7900adf4a0cb9edd7cae35ee552db6436e9c74cb038f9e14116c13a5f84819f5779894513af09346b223bf15050be50e44796fe5db0309daa9070fc98dcb0ca824d7b96f27264ceb3c7e31e8f676a4b5f815f7b7479d03bf34c8033a91372708d571c207f9631f0e2e3b236b796696565c11ecd2ba03aa031bac6df79f75fb0ec49d38136b6252693a4e4c639e3ad7042638476c894e94190375ca8891b3868d61dda2e7612a740907893511c47df70f8f1054620240480dd803922d976cc103a5a4d9941749898091499699ed2a113031b57257570f53155e90033a8c652d615f374d42b5a883572748d7317c033ee364384dd140747f243070f00381e40ad18f01924ea9732e78dc55f2a39fe31b5fa8d1839e452d847d88ba01e805581e0339944b4619e7be4cb70b9f1eff98eb1f9ee5d04609b60b184c7b56ec10040303fcaf2994e7f2665b14193c0ce4c663383aa43f086e4ba2490944e75aa4b8ad3605581e034b127c11120fef98ce0635c7796a902581ebb50224e8259ad53b8f47e00c01473887e133aa800005581d029c88219c34d37a84fc2bee81a88ceb1f022ff6090f9b9481794a179e0c18874704c3e57e23d32403515d96e89bfe9b04931b18618275a45f7ff87e98d855773d77454b9497cde10b0605581d025b81885342a45bf692276916b7e1a8228b35e540301733a33bc0e27607011bffffffffffffffff05581d0247599419b9c6fe9b045061baab0503abd1e600a3ab165e13db9c4de50c183c4625fabe5744d004592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032032e2bc0c0ff22609eac8f10e1c8736f3e780dcb85055451e7ac674e2667ce4b5700582103dc2a1f89ffde244d97cdc8170abe780a7dd2ff167d62d8e6808e79f0f9f040304a0b9935be393f250de9380058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56304a0b9935be393f250ded2000582103e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af04c063ef8a22e18397da1c152700058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5820379785c3dfa15ec22a2dfd1b879f0f0e9cedb7457c6d5688c2f85fed9ef44524005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a85309079bf0f01f2caa88e8c2c8c64e0ab3706ffc02184400582103f6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70410100582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5dcf0000000000002e767c42f4020000000002e5711e1e15913c3389b21b0058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f543bac404dcf868cb3261196d7f9a34866ecbf0db90218480219b44705581d0266dd4b742cadb0208c468c54fb683023b68b478425ed47a67fa300400701192c1d02182b05581e0389741e6976948fd04a1a30dbcdf3c2f4bd5c182394a3bbb203acf3e850040105581e039c0a0b04c18d812e8dfb086c365fa16f6bd652022beef4b35a0abe01400c01463d182a687c0005581e0346b88c735eadcfd96a9986bff4e3e8f4cdb8623889397dfde1a7db34b0040103c73d933ca3e4dfb2abe108d2f8c1227dc9ed60300d06cb9667bd8ed2aefb389a02193a3e03daa35331197d3f3db0093206c75748dada19b73a0a6cddc3da3f09889271ac7103d12d47a8405b841b2414f029d64a84049204508289490ec85596edb41a3ef6c00219ffff03713912121bc11c8a4b8c1bf236c57953ef1f91caced3585d043a6e6628908b9f034dc87e911dfb914b03e411d06a1cb8a52825399ac4502ce985f62adc99f5811b031941d628d7ebd6029b8c2de015e4d66270686de15318876807c0904c9fc4b101035c46498ab2bf924f65d0cde789540ef77ff04f4f0c603e59068c9b5b411aa76303b60ea64debdf957916b4b6e114cfea292880cb830e24ff338f8edbf9e7cded870219ffff03b03b077033220a90b92eab3ba602abe71d0f91200f2e53bbef54c05dba06cce7030349816d68cdfb5e303bb643a791ec35b032278275748adfa536a17b6665ee3d0337cec3c4fdc56815d6face120f2c84de56edc8ec8807114edc39595cf36a598103c01f950a4865b598052dc75e651cb8cd1ef69bc7495807b5f62f7afe32421fd20219ffff037c92f86f02bf69fbc6159069b08f463f18e7b998dee21b57d8e2fc73cb5b25f50376e428688d17380dd54258a1fd9fd508a6bd8e18ecd28012fa0600ed62972e11035717d585016bd81043282d3dd6aaaedd3892e34e5ba2a7000f944bf56f6d68f003895abeeba8937e3e1edd2150afdae283b9a4a60abc9c34b5038c80dd8107dd530219ffff0323040bd44214c6e8e87ca05763309ce6fe106a0000b959c6c85bf2634b1871ab03864cfc64c1676dcc11517ee50d0ce7d3066372d022d50d7bdaa920ebfa747ed5034c4c0056729843ce9db69243b3b5d7dfe79112a4f8db9f9ee6a2ecfba98814ec0321786df8391fbc0105cae1b1bea6e8d57d7631e87ab87ceacf6cf8ad8818c24c033118970f4683fd8f56034a17c4d89531695324c0cefc4fea6fdf7c0e4f230523032812e6fa011b6a340731d9f045bfe3926a1b6b14715a5a1de0f65b7f8fb7655603c917386ed37f5fd7612707a475bd44fb1e93dd58e44e832574d2b8c48e79aa2c03cf447e0f848bd7b5c1c9389c2968b6f59972f3e646a6a944078352115dae7aa5030b9f0abed4902895026dcb54b4b056f8845d3818667dc37543841d7956ed8a0703b8c2bc0a98fc76fa4605eaf39c1297ef3229f957d49ece20bd58724789ff57ae032c28915b8bc9af66c7ac778b85ec27d69bd4ee1e52d98f7dec2bac3bb79a6bf503c2bba78e0bc4a309b9c5b43b707ebcf6188a1a3532e6276efdc4d02a503348b30350260b74b621fba167985868074cc0742b3a90663d33ac61813a898cf0183a1403743666d66dfb4e9756b401ec15702ba260b445904fd42b84d364ad24d6532255037da41821c56985ee1c0d9e88f17345f9bde4e07c9dff0d514269d7ba9f30ee1f0353806ce8bb7f52271afbe0b1b7a8020655b4239bbe37f7f92e189ef1fdd19ddc03044f14c3e292b6afbab7343c4f4b0c6df56e0a17e5fac6132e7f068e0df93bf30344d5a1d752bf60ce597b8778f6d8a515b96c2abbb4d07d8276a7496d510577ff0381b633ab987db860eb2400ada1d7ee5ac92d39e37819ed4f50a426df4791d8510303a057b36a5455eeffa44c26dcfaaa4e999db79c12b0db9d20831bcad7c9cd38039852b8665d2a1e54578448c498eacccd15209b3ad8502c5160ae6655a4e4dd3a03f979a240acd281a7d1b3fa8c270ca3e196b307d6ef5d7340e73d6594e9ca79c30365e5952232f1399cd5f18a2a5863994ad529a0781b96eb41910c554ad021b666030fe28cc9031498cfe367d9e4a5337390ddc9815242bcfcad7494e5101443de010391d46d87a15aa9288ca0299d65048b2a752523a5146cc1f10195dced776620b803625b2c5a8f0e05e2123897ece5a951f8a5fe4e8afa822e935d265982cb09958a03855a93f294bd1325d5bf38f68a9bfb9a651f2749cc54b3fdd9bb58e0095d9936032b13b5d4b69480325b9d0358b71d027767816ca0b64354a271b1778bf43f806303fcc90e4ae3d374e2b9311e2ea551c2f610d26d1f3897694d16e81aeff5301edb037f8c9057fc832a2298bd992b22b7f5ef238b46d521751b81de5fb3105dbd58250355f1996e75df98cfb8ab9c4505a49944be23d45c3e4f9e2621285f3debbe96cf032f9a959730ce118a9ca97f8f98ce9d1b5f125dd13a332d3166911a48906f0f7803248cf22050293cd74a31cd77bcbc615fc48780e5127e4db90f561c2fe5ade88c036f5c0728eda9f97cbbc16a6115586eaed85dbcbed48390c4f2c607b1946133e803f930756eab0a581728fcaf851943828e16798fc52107aa6407e16ee43509d2d0034e31bbf7855bacb924329ec5e58c715559ba6aa408702a73ac850a2e9410c7d205581e0312036d9faa424ceab1ca58eb6d82293145300d480bd295e609f9d40000040105581e030d144d1690a0587d192755c76f7226e0c103d0d777191cdb9d68233c200c02477cdd42821dc0d105581e03537c5035b8dc527f66b8c82f050460805b210bf9637652831df5f70f700c01468a4f3539580005581e03565b4df2c5957476d2006aac2d1c5c41e343b98ef339abc02c4098fcd0040a0399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe908039188efad72c6747c1e7f1e19036c430f6c4291fece213788dcd97857028c1b5e05581e039c512f91e21f13ebca1e24419617e8054943a56245eb3ee3ba050d533007011bffffffffffffffff05581e03058602b1552e19ad96578f935466a24f25fc14b8709982b7e8cc1e09700402031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03f69d4cd590481a229ffea933ae23c87ffd52e58dab86e024a8beb852d007011bffffffffffffffff03ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e03fa7069cd405b5b8c7800fff1718aa9a388c02157288dfba2776a26ab1007011bffffffffffffffff03224ac66d1d1839d1b253d6323595fe5dedb6dc1cee7e965d8d5a6e0ecc207fcf045904cd6080604052600436106100225760003560e01c8063972fdd261461013e57610029565b3661002957005b6000610075600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff610174169050565b90506000610082826101c0565b905073ffffffffffffffffffffffffffffffffffffffff81166100b0576100b06100ab83610219565b6102c4565b600060608273ffffffffffffffffffffffffffffffffffffffff166000366040516100dc9291906103ee565b600060405180830381855af49150503d8060008114610117576040519150601f19603f3d011682016040523d82523d6000602084013e61011c565b606091505b50915091508161012f5761012f816102c4565b610138816102cc565b50505050005b34801561014a57600080fd5b5061015e6101593660046103a7565b6101c0565b60405161016b9190610427565b60405180910390f35b60008160040183511015610195576101956100ab6003855185600401610302565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b60006101ca6102d4565b7fffffffff0000000000000000000000000000000000000000000000000000000092909216600090815260209290925250604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6060604051610227906103fe565b6040518091039020826040516024016102409190610448565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b805160208201fd5b805160208201f35b6000806102e160006102e7565b92915050565b600060808260048111156102f757fe5b600101901b92915050565b6060632800659560e01b84848460405160240161032193929190610475565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b6000602082840312156103b8578081fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146103e7578182fd5b9392505050565b6000828483379101908152919050565b7f4e6f74496d706c656d656e7465644572726f72286279746573342900000000008152601b0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b606081016008851061048357fe5b93815260208101929092526040909101529056fea2646970667358221220266f45dcc0f640b86b617d19d2affc31f4b5547fd56bc2761d8eddc74675491564736f6c634300060800330360400f5c8071a551483bee88b6865b3708a99289b0a403a401af48feec6ea1a3035d585285e57dd654141b200556fb0e37dd12f3ebea14c395e1eef705ecd9c18503cb45c75f6cd3834111e3157484ff1283f6f43d16c0192aa525cb2a5755a0fcfc0354d8ea20e7f8625078c913933b67a1649108145d71c41822067b47f9821ed6a4030207f380855663a5db6e53dc0a6351102c62cfe07c273a7b3d597a83f3e5df9c036495028af84272cb5eb2944edd3188b62788d3cde06c7b4bc0ff28b1c1daea300335d7ea8887e681b2dca7ccf7ba1ddb1010463d3c14a27a0cd3d72a9a48fc510a03e9f46d26ca651ac19944af07cdb97f0d7118d3615f274ff6a16b60726ae3998e03116bb96e30166d10821556e69711ac31a0a672ef46db4e9b697756280a6b99c90389ab5858f77dcfb8a4a9b26b16e00bce5fef43e277f955352953465c9ded5ee503eec1125736cfef8453f91421baa8ff73349014cae629f939069b7e12efafdd3c035f759389549145736c6356c7ec422f665379cad1fa71a92dafe4caca0db3807b03502ac6d7aac75984e454b561f1019aa0e0f5d47f1da970c44f0edb54278aeb9403a09237faf21c1298b4d72f07af8facdcf1f26d3907c487856c180fae30abbee203714417e8be59ed35be74aabb9831a737b526def1b170b8f78a5265777866a0b103bf6600b3b085163f58314a15da975b4aa5d3a64ca285afd3dc920f15f5a5523203f4d0d1f9d8ccdc715a1b57fc3220217bad409ce0ea5fd1ad4c2c0348c9edac7a035f646bbbf4b8391defb07bf02e0ece996927b45de8938a99027a6aa5843f1cde03864243013040f2a4b19fed89d26057d14938bd6ea60bc1ab8a12e689918f6fab03e2abadea1e8404bfcfcabdf131d588a38b468762e5844efd7375ac88a310b3da03d18f05bfda6381441cb890a6ff7853f69a25b136989039c41bc6590ce33c789f0302d2a4522ca9d3948e33fbdfd370071e1781d6561c5eec547be27a6b6b8ef7060345130d11e3a690b71acb494aea070703d28f1391c56e8c98810dec4544dcd052034ac9ce890c33b20548e037d9d44264293bc9474c7eae1f172efeaf4484259847038732b54b984bd7949a62f87b3cc0b4738423ded9e61a09b384f15e9142faae1e00581f03cc562f513ee655c6aa319e481a04713a4311079e43cb392d3953ad1af6d0490159037ea65a12007000581f03b2c3b63f458092fad5203460af45d4a54b88a9892553b317558f2c5b96a047f6ab0922ef880000581f03b9e72539ade428d807fb45bb8c52a3c8582a26a1fd6a932e1c2de4b361d054f9b30557afcf76ea82c04015d80057fa2147dfa9035a499afa228ffc4046c75b6e0ce7009203bc4305a2d7660ea2170f58c7cfb88f00581f034df5068d72f1763885756feb3c05ac9183065d81a63b199be3a8ba9fda60486806b5de20d75e1e00581f0303a79c4cfb0e6a8eb5e797ea9d8c59ebd184d1fd67c04f4802c79a074600483bce7720dfb31ad200581f0302851ebf53f92506321ffb7087962802cf0f9ccd39d53994da266752c7b0442160ec0000581f03498822235d14775cb7642b35b77cbe925e09579bb59892bca6448a0a3b0048370f520a1577800000581f03f304e9c33f1ac941fcff26989e0a6b99486665dc568beca08f7be980fe604801509f96b9f7597c00581f034cebb936e0b049249badd47c8717f9dfdf35128e2b62312c75b26ef4a050410103215745146acdbbf40a5c0e8675b51e217d4859cf92ae5caae71b77591c47a4ba02197f9503fe7547fe64dfb1a078604c5b022485d2bb04e1be1bd6f299e65418304c5756bd034e6cdbc9285c15710216e3f627a45230716bc413b6f304b1afa6c98f3390cb350357005e20386aad293909baa31b9e843bda3256638b465f9620ff3fe9312b6610036ef9684888a1b4925f0b802653e8abcd4110bf3a6df41855d931a30c78cc4dbc03df61f24c92e19dc729a9a4b7bd0e2c9acb0b0a50e54bbe1f841f5048884b70ef03d0056c06b6601f10a27688e803baf9062de441695bfa9e3b5a63327cca9a12200341dbc5dac7e9fa9441123fa33aa2aaa9b6d56216f7297a9bf871fe94f70516180304dc39004f60a9edd3ff71df643d4e0c5f3068a7143481801483db43d5c561f603f2a49b986880a3c0027ec5a70e4809b53d00017de5456d8b7debc543ac73a7b103960115d87d51ca5475222ddf726463d76708f4997931dab65551ca3a06f247700219ffff0334cd788bd84f694e8512660df791d8eed9a80aa960445cc9a4f0363e5e40f04603e523ec74ba30281c2fae778c8f50f36a0fe8ca34002516f2a8278ce0eb7db84503fe6d51f1d2437579a20e0362466705609a6a703cbb6bb6fe0c82efdc02b3c2480219ffff035701f39be71d9c7db343985b8f4ebecce83920d147ed324470d63d29e3b9c840038c7ef458ad3671bf5486fff9946f9d0108165ae017b57c95f498501cd1b4080e0304ed35e84ada439ce1e1de914435db0921cee584fdc52febb331acd0689a880e032fca3bca470f59d5f72aabc05a1d496c4cc8f490d8f23ebf7d56656d1ff68f68036489255e7b6676d7dcb60bb1f5f91061ce317e5bc4e187588d9ec7afd2f0947003c55feea433678dd67bb9ff6aedf6365d14d05c809f121a8a5b7af134ef1a6dbe036b4b02b6b7cee97b66c10a49d7aaceff8c33e97c445d1a2da23d2a25c535641103d611bcb1929b66ec59a59e6ab133281b59a72db7d73c6485397613845fbc733d036c014ebb336321ff391e2adaf8e6db7053a90cd9b81d8632ddc4e9b51208f629032b5f96b626db024b6d59ce6ef4dc3156620f88e387eaca3143b6fbe126874d9e0219ffff034bcaf7d3bd2d04b233054154986fd0482b68e2eaf5ad4810acfd50c2812ed35703b93fde2a16c79a7fe5dbf046223c7caafc910141a697f8b8b0e79f34702f992603d00c88c877b8e6ee1a5bb46a23fa9e25aefe8ed5f77f33b7d5dd02bf375cc3e303ca4b784c21ec8ea78d95c07e063165aab1827c385003575330458c930835ffc8032fee87bb5bef0335bd9673be6a30c090c7809ddff527b63bf52b13bd7df762bf03932029e3ca525b71c6f316404d48d866e344d7536ef1d9ee55f066df5eb420cb03e8af93a99badcfb2193aa1e29e41d62ee1b6b4c0dbedb71d17bb7c8c2bbbddf103533fbeaf162fb2daa695e79f9bb7818aad5a6767b1aaed6465a28b698c006ca703e15b8b5b72cf356984fcbd809e8bcd4d29dd0f31a8b2edabc11c8285b5d8d7fc03d5c877386b0d44e00bebe3278fc3abeed7d70477cdbfb934181cbabd3292cff4034280f86a18d7817f12a92b03f07b9dbea2df9db995bc57b9f6297425f816b3d2037063292cbc30c2367c78c56f27ff163569fcbb0acb3c803f573cd988f61dea510219ffff05581e0376206f0ba778b536f8b5c5571b9cf6ee4279b8082d1545b9c5dc0b90700f044804d2f05f318bb64c1904cd0219f23e030356fb2ec062e1cac458b921fbccbb3f4d3e48c2378b52e2e7ad0bb69b841d93039db634b3587d75d5bcedd67164e02fb80e249876ee8ccb7d819da510daa8800d03dbbd8a3f5b6df75b02b6cfa04c5f3244530dfc6108c90878f96cf44d6b3d133303fb497226c81384cb04f0cec78c93195a3cda400a7fefb13d310fbcfee70e2989036ed959e1743ae41cc34259baae5586176885e7eedf1452848f99b8f3b2fb52e903f33c1db47d18c2ab2e22b62c88f06c74359cf0a56ca85f0ed7103ba68be169da035900fb625ae3519ac78bd5a805103fe7b33e5537e0fb38d1683425cd4343a1a603584688d03e2cfa0fb39b152f4f085d1db6c95a8ecf981c3750e1127330aa0996035e46e1a0c95d09e927c89cbf8f2489a2c6dcb777b20101704498ff1b0f70fe6f03aedb26cca64ee7b46ec7072a40ecd4947cc1d0bd92e66d90132c00a3dc5f6280036a0e3bbbf243120a51a4e87edc44dce0840fb7b6c272229677afe82b6f407b8b03409d731e3a813ab450dbb4cd3850c51edd88b2e4eb46028f46b597b4aec15a0b0388cbd79e3594bbdef0a0b565d3b67c7f3e6bddf6f55c325d1f409e3ae535b1020219ffff0353ac907a52ca6c934573ee1a5179fb1cb6220924f8949d3717dda710b231eddd032050a42120acda39c75a857eae5651522f6ede8b78ddebc63fadd2c32ac06ca9036eb058f6f920d9f4874b30ad114b3be2de4dfc24913f2fc5c04cf8942fc8335c03e997ed41248d3d0de834819f6ebf42fc5bfa3dbeb9ed9675ea3fa6d0366e4cf40219ffff036ad4a1b0a179bfde73a46b859902c41f8c3506f2a6ec6c9155649b0cde9afb0603a564bd6f99d5026abd352578955062d995caa6e17d2e47b5e901bb685b9c03f303d66d49257915128eea087bda816dad21b6a61e4cc02ccb41c94f4833319fb38b03c5920674fcd25a5f40660771ed3af1e3ae4a28e72cee0349c066b746abd0495d0333e02285b0a8892e1293f692f145153fd14403540a655428cdc960f9c45913f1038567acaef04ab488fc6b5b3c50758b3b4670b11541b31cc1899807d3ac203fe203476e59c93870ce4c4d81602fb7439cedcedd1ab457ca62a20a86b18ca0bb12740219ffff0219ffff0325b90f1e5d33281524c4a53c99e368759a5fa658b3804fd4c216ed0a324d95dc031f0109a2cf4f5ccbc03b7fdea40dfd7dffd3411c5f992266e69383a9c895d55c033302bb2d0bb051c9061541e43214c88983ac9b5fec8b1803253c9a86815924f60325ff90c1558cd7c9b45ea5d7f1b7309b692b819135c03e8e76de305051c02dd803346f3dc4e32624231f6bb91da842304daf550442c6e09f2fa64618188034d3c803ba0d4a452c74e86a77e1f2466445c5d8dda5c8104481e18215c4faf04d7dcc47032759f364fb59fe831aa426bf7962cc8fc2fba26f96d26223de54ba79c4dd0ccc0321c6407ecf3ef28ffe5fcb5f49f10ae15ae911adf3bfd189540eacfe03d77b9a03e5a1d4ce698252b31f26b89ebec6166ef16b9a386581324d6ce5e5411ab48a9d03ff6ea3f2ad38b682913d37b0f749710692351604b795e9f308e9e2f963f7a91d03d792d66033e3c72ad032b8270544c7e8c979d467998fd401be35242efe5d340c031d10f8c909669a1ed7fd86bd887b7ac511fb14808c6d569861f63290d493848303dbbbbdaec1d22d2bc04282db791aa271b0635a119e8abd7f7d0fda12f3aa81bc03aa7917e4c303d6e13f49c38b1247a51ce5aa23162949c2d4fd2e15129ae1250a03f59c0307f96277bced981d22d6888712b58a76531b9c39f972669030c79428ca03e18bc1437ae3a74611f45abd3fc9d34d36345a7796c12dd293488bfbbbd0e03903074846981b79fba367bbc1e46fcc08348c382b30acff533fbe91e91ee4a45f1f037e93281a32f0bdcfcd423cded3d88ef9c43923c6af1466b6b773763c33fbf0a8033194e2564d7a090f0ac5c200cec78265ea5e8908a50c7f36583f19c51a52244c03e35cb6e7738b4949c04342355ac29b664e544730311fdee883f462fad3cadfa10386ffc8ba6f3607c8e6bb125c4fe83e1a13af18364a663f0f23312d659e87559f03f6b41b23820df8ca70d7a04b20c51c933b7995d6ea0b293690f92d6f96a694bd03dd5937f609b68c540f6f7508e726d890a2f41a114c80828fa1790f61ec3788d203562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e039146734ee422a29cdd1fdf758de487938b7404ac1abc3a94babacd1e8007011bffffffffffffffff05581e03d422aecbc787581ba98db131edd639d53ea7e5e06b8fc29680cce460b00c014721f5dc1f687000033d70f90e599423db509eef7585caf76d3b97cbce9d0d4a5f9d42329a250d851a03d5efce642f911bdfe12a4eaa6491982178cd0f50a8fd91132e2852b6d59820b503e50be108e79e07ec0b7444685c0f4462f2811275c114c4b74655f541f495abbf05581e037e40cf999d4587fddfe8b57a2ea970ca1200104d0888b4d7e12c7fe0800c08472060e5f346780005581e03fb4e8582180f727c8dc26f56aeeeb97e2b520d133aed91d3be0de3dcc00c01470e1dd7f2a4a60003eb14a52cc6eb4615dd20c86186b38c3fc7ba183c0aabdaa255363adbb78be48905581e0379cc23a01115d33645d1dd22dba6df39a176829e77b3b4e8f11ee84220084725bf20e0f93e1f03b72883aab4ec6bc8d5bcd68311f69d4c7025d0586f595ec5bd1cccff0e6c50f104591c4f608060405234801561000f575f80fd5b50600436106100e5575f3560e01c8063a4e47b6611610088578063cea9d26f11610063578063cea9d26f14610268578063e30c39781461027b578063e76c3f5514610299578063f2fde38b1461039e575f80fd5b8063a4e47b6614610196578063b3dd411d14610242578063b5a2e01b14610255575f80fd5b8063715018a6116100c3578063715018a614610124578063766718081461012c57806379ba5097146101505780638da5cb5b14610158575f80fd5b806317105417146100e957806321ec52b4146100fe5780636ab498a314610111575b5f80fd5b6100fc6100f73660046118e7565b6103b1565b005b6100fc61010c366004611969565b610517565b6100fc61011f366004611969565b6107ca565b6100fc610acf565b6003546101399060ff1681565b60405160ff90911681526020015b60405180910390f35b6100fc610b09565b5f5473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610147565b6102046101a43660046119af565b600460209081525f92835260408084209091529082529020805460019091015472ffffffffffffffffffffffffffffffffffffff81169073010000000000000000000000000000000000000090046cffffffffffffffffffffffffff1683565b6040805193845272ffffffffffffffffffffffffffffffffffffff90921660208401526cffffffffffffffffffffffffff1690820152606001610147565b6100fc610250366004611969565b610bc3565b6100fc6102633660046119e0565b610e40565b6100fc610276366004611a00565b610ef2565b60015473ffffffffffffffffffffffffffffffffffffffff16610171565b6103386102a7366004611a39565b60056020525f90815260409020805460019091015460ff82169161010090047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16906cffffffffffffffffffffffffff808216916d01000000000000000000000000008104909116907a010000000000000000000000000000000000000000000000000000900465ffffffffffff1685565b6040805160ff90961686527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90941660208601526cffffffffffffffffffffffffff9283169385019390935216606083015265ffffffffffff16608082015260a001610147565b6100fc6103ac366004611a39565b611103565b6103b96111b2565b6276a70065ffffffffffff821611156103fe576040517f97e2d36d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84165f81815260056020526040908190207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85166101000260ff8716908117825560018201805465ffffffffffff87167a0100000000000000000000000000000000000000000000000000000279ffffffffffffffffffffffffffffffffffffffffffffffffffff90911617905591519092907fe9ea56618d31afea8558726ec90e5fef0c46d19e0674b8462b208da51359ed799061050890879087907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216825265ffffffffffff16602082015260400190565b60405180910390a35050505050565b61051f611234565b806cffffffffffffffffffffffffff16805f03610568576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f8181526005602090815260408083203384526004835281842094845293909152902080546cffffffffffffffffffffffffff851611156105ec576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836cffffffffffffffffffffffffff16815f015f82825461060d9190611a7f565b90915550506001810180546cffffffffffffffffffffffffff861691905f9061064c90849072ffffffffffffffffffffffffffffffffffffff16611a98565b825472ffffffffffffffffffffffffffffffffffffff9182166101009390930a928302928202191691909117909155600183810180546cffffffffffffffffffffffffff42811673010000000000000000000000000000000000000002919094161790558401805487935090915f916106c791859116611acb565b92506101000a8154816cffffffffffffffffffffffffff02191690836cffffffffffffffffffffffffff1602179055508382600101600d8282829054906101000a90046cffffffffffffffffffffffffff166107239190611af1565b92506101000a8154816cffffffffffffffffffffffffff02191690836cffffffffffffffffffffffffff16021790555061075c856112a5565b6040516cffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff86169033907f390b1276974b9463e5d66ab10df69b6f3d7b930eb066a0e66df327edd2cc811c906020015b60405180910390a35050506107c66001600255565b5050565b6107d2611234565b806cffffffffffffffffffffffffff16805f0361081b576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f8181526005602090815260408083203384526004835281842094845293909152902060018101546cffffffffffffffffffffffffff851672ffffffffffffffffffffffffffffffffffffff90911610156108b9576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018281015490820154610919917a010000000000000000000000000000000000000000000000000000900465ffffffffffff169073010000000000000000000000000000000000000090046cffffffffffffffffffffffffff16611af1565b6cffffffffffffffffffffffffff16421015610961576040517fae04b1c700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001810180546cffffffffffffffffffffffffff861691905f9061099b90849072ffffffffffffffffffffffffffffffffffffff16611b17565b92506101000a81548172ffffffffffffffffffffffffffffffffffffff021916908372ffffffffffffffffffffffffffffffffffffff1602179055508382600101600d8282829054906101000a90046cffffffffffffffffffffffffff16610a039190611acb565b92506101000a8154816cffffffffffffffffffffffffff02191690836cffffffffffffffffffffffffff160217905550610a6d33856cffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff166113bc9092919063ffffffff16565b610a76856112a5565b6040516cffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff86169033907f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb906020016107b1565b610ad76111b2565b6040517f185b73b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154339073ffffffffffffffffffffffffffffffffffffffff168114610bb7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610bc081611490565b50565b610bcb611234565b806cffffffffffffffffffffffffff16805f03610c14576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f908152600560205260409020805460035460ff908116911614610c7b576040517fd5b25b6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805460018201546101009091047effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690610cc49085906cffffffffffffffffffffffffff16611af1565b6cffffffffffffffffffffffffff161115610d0b576040517ff897f62800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001810180548491905f90610d309084906cffffffffffffffffffffffffff16611af1565b82546101009290920a6cffffffffffffffffffffffffff818102199093169183160217909155335f90815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8a16845290915281208054928716935091610d98908490611b43565b90915550610dcf905073ffffffffffffffffffffffffffffffffffffffff851633306cffffffffffffffffffffffffff87166114c1565b610dd8846112a5565b6040516cffffffffffffffffffffffffff8416815273ffffffffffffffffffffffffffffffffffffffff85169033907f99039fcf0a98f484616c5196ee8b2ecfa971babf0b519848289ea4db381f85f79060200160405180910390a350506107c66001600255565b610e486111b2565b60035460ff90811690821603610e8a576040517fd5b25b6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035460405160ff918216918316907f168c41a8a7f5d81176dd8b849fe1dd8791803a3b75f63bd1987452a09385b90a905f90a3600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff92909216919091179055565b610efa6111b2565b610f02611234565b80805f03610f3c576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316610f89576040517fb2335f2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff851601611062575f8373ffffffffffffffffffffffffffffffffffffffff16836040515f6040518083038185875af1925050503d805f811461101c576040519150601f19603f3d011682016040523d82523d5f602084013e611021565b606091505b505090508061105c576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5061108c565b61108373ffffffffffffffffffffffffffffffffffffffff851684846113bc565b61108c846112a5565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f77023e19c7343ad491fd706c36335ca0e738340a91f29b1fd81e2673d44896c4846040516110eb91815260200190565b60405180910390a3506110fe6001600255565b505050565b61110b6111b2565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561116d5f5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f5473ffffffffffffffffffffffffffffffffffffffff163314611232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610bae565b565b600280540361129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610bae565b60028055565b73ffffffffffffffffffffffffffffffffffffffff81165f8181526005602052604080822090517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529092906370a0823190602401602060405180830381865afa15801561131c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113409190611b56565b6001830154909150611374906cffffffffffffffffffffffffff6d0100000000000000000000000000820481169116611af1565b6cffffffffffffffffffffffffff168110156110fe576040517fb215190700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526110fe9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611525565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610bc081611632565b60405173ffffffffffffffffffffffffffffffffffffffff8085166024830152831660448201526064810182905261151f9085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161140e565b50505050565b5f611586826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166116a69092919063ffffffff16565b905080515f14806115a65750808060200190518101906115a69190611b6d565b6110fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610bae565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60606116b484845f856116bc565b949350505050565b60608247101561174e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610bae565b5f808673ffffffffffffffffffffffffffffffffffffffff1685876040516117769190611bae565b5f6040518083038185875af1925050503d805f81146117b0576040519150601f19603f3d011682016040523d82523d5f602084013e6117b5565b606091505b50915091506117c6878383876117d1565b979650505050505050565b606083156118665782515f0361185f5773ffffffffffffffffffffffffffffffffffffffff85163b61185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610bae565b50816116b4565b6116b4838381511561187b5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae9190611bc9565b803573ffffffffffffffffffffffffffffffffffffffff811681146118d2575f80fd5b919050565b803560ff811681146118d2575f80fd5b5f805f80608085870312156118fa575f80fd5b611903856118af565b9350611911602086016118d7565b925060408501357effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611944575f80fd5b9150606085013565ffffffffffff8116811461195e575f80fd5b939692955090935050565b5f806040838503121561197a575f80fd5b611983836118af565b915060208301356cffffffffffffffffffffffffff811681146119a4575f80fd5b809150509250929050565b5f80604083850312156119c0575f80fd5b6119c9836118af565b91506119d7602084016118af565b90509250929050565b5f602082840312156119f0575f80fd5b6119f9826118d7565b9392505050565b5f805f60608486031215611a12575f80fd5b611a1b846118af565b9250611a29602085016118af565b9150604084013590509250925092565b5f60208284031215611a49575f80fd5b6119f9826118af565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115611a9257611a92611a52565b92915050565b72ffffffffffffffffffffffffffffffffffffff818116838216019080821115611ac457611ac4611a52565b5092915050565b6cffffffffffffffffffffffffff828116828216039080821115611ac457611ac4611a52565b6cffffffffffffffffffffffffff818116838216019080821115611ac457611ac4611a52565b72ffffffffffffffffffffffffffffffffffffff828116828216039080821115611ac457611ac4611a52565b80820180821115611a9257611a92611a52565b5f60208284031215611b66575f80fd5b5051919050565b5f60208284031215611b7d575f80fd5b815180151581146119f9575f80fd5b5f5b83811015611ba6578181015183820152602001611b8e565b50505f910152565b5f8251611bbf818460208701611b8c565b9190910192915050565b602081525f8251806020840152611be7816040850160208701611b8c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea264697066735822122067657973fc1ef5bedb641d3d4db5ea1ef0ec154f72e0744603d4381d862bbc3264736f6c6343000814003303b72b074416aad64227444f51bbb5aaf1e47153eb71f15f7734e0f05bd01a3e81031df5601061455d15d9af85ae74e64316e7f243a92916e558a7506cdf146dfb4003fb461e1b60d374d3ee9ef34766b3803290b28086bcd824d5ae375671d0424e5803046bd735af03a99fc1db1ae80f3795ab85bf9c8e0f150eb177cdc830b4d12c09005820036bdb4ef1a1f4bee96648f8711d533e9f884e36de70df8eaa51ba88578e86404998a3ae07bf2398d0f000582003ad35277d5e1394fec91136302f638bad1c877d231ac3830821c684b4f8f7e049a1875575e6c90ad6650369d8c3380de7070e6ccb57079c9dfa5c8ac0e22942a80841756ab8b7cfe6745a00582003505a7cf94a9500366cd858683ad5ae5a81bf9cfe8ba0d2556a07074c1dd000490433a39d8c4ae7fb9a00582003787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0410103e3454b07102128943591b23ce6145f859a6e442b62cbcbd84699cfbca974d1b0005820037d647c226a2441e4119f23ce67f52fea17e0ca7289548a79c7328c402dd6a04a0a96af06e47bdcedb687005820032d7d9c539e629aa5427fbedef8373c9a812f9b3f730f46c5cc916b28d9fcb049414fe339d8be44b5ba00582003a6b63bff9eb6a9d05b257d6c09551158b4502fc32d6bc253f6b735e5f86220491ae93a3006c5dab2b90219c0ef0378cf6683ad63ce5896e6ccfd5eb6072882ffdf7a4b84c0b1e390f43c7c7935ec03a4a0b6dd50c180e51790ae24fb9971d426a64cd69dbec2d3d6dc00ed214f85a703b35e2ec0ad0fcb1cd50844bed6812e8f2111b924940410a7a870b3f652e5f7bb034b6c9630ae97af4312456dc6809dbf97db1f8d9eb1b2c3637b5715bab3390a4403baa017bf7ab398940f8af796ea1f3b403c0bd40b752b0f7eafa43c5c054f9735034c7bceeefed67ab641192e045c9788f313be374358bac1fb746fa7f28553d10a035ce2fef65a687d91016d2cc1311854189dd5ad577d00614a3bbfb2a894db6f6303da45dab44e797b20f4e35c736d99f99131c25252edf6d2213f7ef1ae4e34367f03bdafe9b77e512ddc88b3c619b677e19a3a0c94171498ffafc9ab3f963556b00d033638ecde107e63b40a8e240eab579d7ae67bf8edd563ea113df0fdced79edc4603568d97b862d59f827418c4c04fc2650650852878dd51c8a51760ad45757a1c700309de572982d9ba91297a09489119c0a5ae1b69fe88963d2d6b7e9eb40e3ea079036c58e833493b470ca5401bed6bc16f684fb6afe824f04d2ae12b3eb36cb62f0203e69c39242b959a5c48c8fd0064b047fbcf712d7c19aae0b9ad155d6d9e290f2703b920d6daf767fe60c0372c39c08c9cfe73597bbdb156f3a2afe400a99bb2747f0219ffff03b46f14257a6db78daf1e3c0d5dafe84a228dcbe8aa870f7c59a0b0c2c34295a403662213d0dfc6e5ae451631104306b9ac7f50d576c49cc8d7ab32886283f25f7c0369c192526f52e820eddb6717cd7f003ecfce5b34732b7392cc5c0b4e4b81e89d031738b5e7b13ce231ad7fb73003ac49ee77a820afcb7b8105eb77bbfa035930020377e25d08e27e07bddd2f31fc9b5ff87ea22cbd4b70ef24ceceacac24ad3369bc03e606d4ec5ffccc3b4cbb2788bfaaeda7ac9ae31e9aa60fa8fa8d0e8a67cda303032dd80694604e07fb3c537a9ff4fff95bb80cb3b832cec22eefa06ad429bb3b33032353eedb4de02b7ce799806dc48396925b51fdfd3f59d8d38884f187e3b6bcf400582003905c299ceac9d3b4ce22aba364cc2a54422dc5612bf1a87f699ac38d942c604a02d9cd60f7716a4578c60058200330b3af1c342c57bf2050b930f444d47334c4eeaeab2a3422c6a12e6cfad1604a054a05f6ef1c75b14a7e005820032b88ac2ff2eb3e21573d04da4e8fdc309f98671f373e5386151a965652b0e049df31e292913eb01d7b00582003343af9259657cee86c913a5e42abbc4a9ece444f0aaec38da0432cbe9ca570499c4f5333dd380e5552005820034adeabc871643a13b58ca4f865e466e6d065cd8f38c82160245b9b68cfb6704a032e34ac8c2a76118e63005820033a19ca99abe632bbb0d33bc13fc0391d249f21b074fbad41bd9e061d05c50049365434549a1287d44300582003f8d0341aaabeccdd21315c53bf1d812c30d21afc2096836402076dc9184f304923970dabff6beb0490033e0dfeb60e520a8ce3a6471a1bd6177929449fd18b0ed710ef71e48b3fd4374200582003dec5cff07bc5c5a91c5c9e800c08749f8edd6b4b3b744520aefac999917b1049613f5624353b9c69ba00582003b8bf0834d88e664e9b9c19c2f22935d07f340be914a3ac1be1244cd7d6b0e04910f8e1e7b64ce855ac03d2839efd98072cff0d791c132f47fb4a864ce5ff5adc08348805c1a3d3676236021955df03638afe4d1b5bc92cb934659d82e24c657dde99073918c3d8ec550d6d76c2c2210311650e77482a183c0b0d27d9712b8081a168e1f68a3a6f8002270b22b7e0928c031b0071192dc583f5f6dd4b7d9addbe245a4ed8feb153c34179c0c6e4b14b766d03297f25e2c4de5b0eef9bd57a0f082211a407f35a4dccdc6f90cf62a37dab8b83035ea47a13add41c7fb141fa3c3194dfb5af1a9b56a3c02c5d367b7c1a33a898db03c610bd04a569a6087401a5554112aa78bfcf1d537130086b8276f03a6a1994f1030b4b67ad931a87454038137fd3085f56a650984811332e8a523a774be23e3a73035f544a40912ffe66d18f3146465165f3bc61de7a457affcc371333d1fd001e040219ffff03a5132bbb61162c3eb6fe6f562fce0c750669f7b9f1fd92de969c97b4a250d669038dbca58fac98b48a85d7b5f7fd84297a3e08762dd137a5bc18a19895d4b899b10326c026d989832cbd67a0c4a1d4499ec2456e2f6c8143044bb0f604d9adf752f90340a63baa9ea9d71b684d1a28267827be7f765ff87b3839e80d608f911dc4462803735e3f835014714bb2db72804013474b4f2a891590adb795c2372891ce7af6040366921a722c93abd94626640e572562b33b83e1868d3474f1213d941675d6350f035bba77f4f2c895a279ff76ecbbc80f3bdedc12f1d676aea8cfc174b69d5e02ac03fad702ee0b1b5220dc7c8466b0a3496dbff6a87a01f9b05b2f1412d409a16c0e0058200309d6d003414ba459695a2ad06e4b80bcafe8d8ad51849759f4a3aec7ef80804935d9d1f90d256b9b7e005820039aca71b04b9bf3413e7eee6c3c3c44cedbab6168094ba989ef6d869ee3e92049460fc3ae8c7bea8ad7005820039c58b3fbf15ecd190042a9e52043ba9805401c9d9e0c1eca1cb0a477a70f1049342ce092b7eadf561e00582003c32105f0368098ebe907a1cd7ef62ed8c3e477bf8141a8b26f1bae4c58f8b04908296e210912c9b7540364f6673150d9ae0785da3594affde4bda1eb5aae5bd052e94e2470038435977400582003d0573ae30a6603daa867f44cbb9dd22d13cc0ccff997425397c2e33dec4e204a152c45c99b782f25d0f103e8147bb6e4bcb83874d1b243148094d099f31aaea9af10c6e7b02e5f5710d80e0219436c03a764231f4b8ae676df8550a91a77179941cdad14d4ffdd90b9063bcf475d66fc030b87f400856e3de541d5b617abc5c99d41a2aea5afccdbab93bae84f0fbadb760383f938b3320146613d187906466c105209755fdf9d80b171826c9fd68f0dcfff03a48450b0e7a7a4fc9669e38d604a7d540e564da54146cd108737dbe847e5755403bf3e7ed15b826bd5f8a08a909118499391697a77adab403eaa4108d13b18932103465a17bdeaba3f89fe05067716d65937fdb930dc98b4c2324b307490976f68ab03f7e69009e1bb77cc5f1b543693669535de632355582c5bc9076756169612aeef0219ffff0361a3e3bcffa6a446e3fe70ed11681f0191c46abf8fd9a964c897bc83f666c1df036d2ffb5c434ba788e9416d97a227ac8585ebe9839e890fb0c5e6b2d029ba00aa03a6584d4bfa8d28ee49b59a2614880fbf676c314459945fe44d78f1c2fc9734f40348c3fdd8afa07f90d6e7a2d432ac4fa0f35a3fe948fe3e3f517f19f393b65d5303e22e06fd519c46ef11d9b98d77c0405188cad71215ffb341b256f4933ae3ee32036ddce056368a5320c0184b95c801a19987778e9b9f70d1af6ef597f5f7ec349f03e77ca9e3023abc491988bdbf03578e51b1b80a9d300d5c89e5d4f554a298f0a80328a707d2e761902ae9e61a821039311cd31f515e9c980b6d309b82276c1721cb03b4ab38e19411bc6888aefc4bda9f8670da75fbf1ad4a1990b4f0df8a2835d47503e68d5e28df2bc5ec020ef74b985c247fa3a00ff679f06c128a0904110a39e81403d9f70e4ac1ce2053c86a28e76e0e7d743143b44c0d30cc10126c66b3d7444ac003fee23148eb3e9a2139cbc3af6e98f5fbd3609f5c854f5f3afd71a4b9223baf9103b9205e56a2788121984d626f0eaa35cc6599240fb2cbbe5a486591ce8473e18f033ab03de9da988750f48ca2f3cddc5eeb632f17514516de70228ef6fc668dba83033d498664bd6307ad3e1bd93a3ca05b7871b83a4de42ab4e0d5f40e5788ee63aa0058200354d4eaac2e7850c699f5736b91d6b87ca99fdb50ea45d0ddb4c5e3e03445e0493b5f7a95108ff0d882035a976285836a04ad74daf4b2025d5176de23e83c7af23953ba9a42cc50e85902005820039e0ce1fae55d1359cf70168b716c6b312e31dcb0f0423ee3f3800324488df04c084595161401484a0000000103639d54ef896e9e52067e28e6e7019c422d6759c7c31453f2ed1ac3cb018bb98700582003f484eadfe859a531ead7df14e8f53581e9c4dba418fb5a73f5b4c0eae316004938519dba36613a91f60324cb1181b67ecee305f7ba5392a5343927cbeafc0134a640286db5e873b684060219c6030321d202987699dc1f7ae1461c25aa516925722e99a675316604cfd03acc341309038459ef280d972fc58c9474bcdbf76a0b5780f00ea90ce5067ed2adb2c8e958680219ffff032934bd9ee302b1be111f2a438bb9982387dfc48881a343f25f4991c45ed6bde003eaf6b7a4ebea0d47a2a21513dc8bffe6ff993b2180c8e517430e90c3cffdec5f0357e6d2cb10bbbde68a4ffee2e2456f25545a58f044c5cfcc9af0e590a26a78a503d482f48d5445aabd32ee2df0b9b69d334e3e8bb3065474aa317b634fb0ca8eed03b45c652d834e16d34cde00ee24266fe5855a95af7780e84e75f15e1d50c27bd10340f734fefaf55936c2af765fd74b514735de696c8445ae28964f47fd0955208203d43ce3848d4e708cf5b7504694a5c937e6acad08fceb553b4bf92ec6a78156ba032e2b45913a3092727b1b85754a49d722d1cedb639b2f58d2c8b32d65ac4760cb038d8e92c3f7f4876092c8175aa1c65c7f816306bba8ec185632dcb00abec62de50317fecd788b6a4acb0d7356d7e8a0dcf24dac8369d33ca92a98304711df0b37560370a908ecfca3e2f61606c6a99b0a8e4e53cc71acfd6f0e8538619f80e009aba803cfc42081e58d1405c2d67b4cd6932b699075df3f77df35b0c014faa6e6f53abf03fda1d51bed9afdb7e458f31fb0c2df1376319e66599f2eb71dd8b8682b142437034e9f5f27ebdac6c1c296705d03993f6129cdc9582e56aeb043fdc346831a301400582003f2d6030eee4bed7d8c3ee66406204c1594a69df17b88df0368d2f57a8bd750491b20aa8e14bf14bc9d005820038f52231bee1de899af26ddf8362cb573a96edb32fe796c97105b8824cfceb0499a3a39c8c6b6758b8f005820034b361f6fc2b09fabe60cac094a7ac01f8254541f0cefd55f0e832563927c50581d1baf800000000002b5e3af16b1880000000005e1dbffaed9c105b6be38005820030eabff19e14a31e8757d3341d561f0747ddf22b3b32c5a963975b4dc73d10049edfb0154ba9b7e5ef30058200305cc3718679b6fd85af0ce2ae94dd724b4a3430d6b17dfd91915dfe28074c04903cf97f1a38ab4a0640058200350d6ad4a16104dc010c7ab8a95db09a79cc4f059668142ac284383e5afd2504ad3f65cd63b11a380ce770058200333a796e82690f67fc5dd4d2c39ecd7bcbfa09345514ce54e77c07153b5b39049a254cfaa65af7cfc9902194d7003d8db5adf9f5ca230e91e2fc92d166eeae757ecc80b5eac61917075d81832ca1e0219ffff03a320199e2a58b2454d62e78f8beccb9fff001f2b9f0004f3d7f6f413d9abdd24030e061862611f79c0b6c81facd882561dde9d1cf1cc00e677224a4f2356fcae6600582003a7a3ad5f657750868fdebebc540ddbb0e088c5cd9b6bf9dc7db6ec9d5e1ca04c084595161401484a000000010058200375a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b04101033fd436018f67d2915842a48509cd62297e7d3e92f8e32077fb51471e506d029803d60e5dd7b1a16983253f73c85f9257f701c1f0e2253551b64e241fcd629dd107005820034e1f90b877d63fb2a685f87b78ecf731e4b944d0b2b9577bc5be66fc9c9a9049365704bab1aaab01ca0058200318f7f8a477bf56262da56612a96fed6a60dc6e75d2a38212b043db97b652d0490ad31482c0d164e4d603b7ff54d7ffff8194675b984b9abc1ad668ebf3ecb207b4baea95c39549ed7dd500582003496cba696fff41c4cc24a6df7fa9f3d26ad200aefbd460a05058b064f37e404988210a8d14dc107fc200582003f2a3c20b19740aaa58bc9bd418d4b90c335ff89f81a53520049fa599037a2049377446c24a473c59c20219fa7003c513bf24d363c79db5638d57a6186cca40c5b91d12391723eb1688de83b89dd003abe3fcf8c0dcac3bce38a4f9844efa136dfda4ff576ebf2464da057068d8207603bb66659f96ce6b2459e25e4d7d9dcb390836148c5999ffaccd3b2e0ba8cdb66603696f4c37348dfa5e6b2b128c4e5a1eba3287b619a0bbd58745c134c7c22e5f08034c4f0c10bc36f65327203817632ecd20bc37fe9232e0866d272bf91217b443cf038e26141661b06ea30d92064b224352f7f0a6b324be45a2d243ad2b801392421603bc8a3085033ceb950cce84690a87e6f2eda2b429f3d5aeec502bfa049a0f875703813bfabf1367a2231916ab8bb7439742fbf51f90ade86be97839fbe8e9cab04e0399f5a7d62b13fc943be0e5c554bbfa0b7213da6a3c5b19240af8b7af1cc003d603abffc65d7575d09dcb0ab5ec413cc6ab0ffd77124cec86002c1871d7ec9737d003c5bff82ddb72c3db0a1329cbe9ce27f1885971afafd5f881f25c2465a37de6de038214b698686208710dad8ad9ee6dfc9afc7cb1eca8e58d759789169fb7e62401036327a04f9f5f0f04ebe442cff3ae30ea277f9a2343be070d9833b2b56b79d1d60219ffff03924150c8d699ed482c858f47e9b6625746432fe963f5b3a6f112fa6e9d867001030614fb1dac7f23ecbf9de9e4ab95a730937e7475f9b5e7931f36e93507c1f66303f0cdee302b971c5c04f277b154acaedfeac85a670803cb1eab4135d73fae89aa0219ffff05581e03c2d8ee644298a05c5d5b62fb8a9aa407a889907442d617944c649e9be00701191c4f0219bf63030947085a39293feb11481f47131b80f369dfbf88c6be5031667328f08621929903e56316ddd0a14b82dccbc0b629af024f58a0083296060ee183597dfb1c63f5000219ffff0315573a9e6ba7f725e0a228f1a7bc8392bfc2c8a97d6b7d094b81b4f1b7ae2f1203e5d621b93c44f1ace58bc99e86c2446fd89ecd71348773f88ef774513872f9520375b726cc3d630b80ea3f80479dda46eb4931602f98dd92cadd3bb73d2e485a5503c10e2bd18f971981ca093933d0c228ff9a2d3e07197033c8efc9d00203a6863a03242bc079a0d12ef4cd160698e4f844244dc5aa57b7d7c589a62809f326491e8d03c86fea6d890f7b2aadf6ca29f15dbb4c9843f660f03c8b1bd280f3ceda2ed43603e4da3446b091533255aef42897b211effb59329d2020e4901f83cf9f276218fc0343a0595ed753595578b8243f81d120550c4b9b25bc8ea3c165b0201b47a8eed403dbd1e3905bfda34e808acc6529166f7b73aec0883a7e001edfe58c8b6a1e58650351e90ffbe1485fd4272c7faef33f2c7182b14215ea24c6b9f9bc60288224fc91035513bfb022280fa4ae3d6587ad5d145ba46d4e99d551ad138454583acd930046037efdfb741bf14d30019f8dc26267b32dc834ea12c7a990a2656745495bcc4cd303eb33e4f019b349cd344fe04c3c3e1d3076ad1f071084410c8aee19a0574c58840219ffff0381f946eee6a7febb25931cbdf9a484ef4f1879a7e8a12f69029375c2f5bd4e74038b083a1331695e460d6705f1b3ae4f30ead67e3c90adbf71c170109cdcae42a003f56d3c5b2bda4567f37fef984daa9420ddd173f52812ed3765e44e485ef85831036fb792905fac464059ccafa52d495daea83b02909661814c41725417752c0ef1034355f901bbfe2f01c89890a13618e0cb6e1c16cfdbe395d73e8611ff74f47521038987a79ad35289ae60d66d7248a6dd4079d050e0eac2aa07de05eaf78b7fbafe0330d3f9911515a8198db8c849273a42272f8552df66d38299b539798a5f7a8072030e13d5c14ebf07f6ca2dfa3f90147ec8832a651e76f13c80728f965dca832cd30219ffff039ce1aa6f9597e184fce655a4eb4abe1c203544f6ef0de5bffb7bbb40df28cc480334b88678aff023e4c0362efd7ff5663a0baeb2c5b53792caac0e623daa417be203cb7fa4fb3c6f8a68062b5a6e194dd64df622ea11a344e426c273af0c2e8636eb036c796698e2d8f676586e39aacbbb0b943f9c329a7fe68d78d24d79ccfff83e6803d0d5928defa99680156e69e7c6f87fa72ec72d134657327d91ba554aa8e28e6803d1bcc1a8d01aa29c87c9f52cd3a5f5a35d0156f3e153472a70039caf511051530311637cbc5e19b2b5634bc1707621d75ec8556929cda42417feca3b297ac442b5033c61d82b4ef5f8fa7719e3339af2f07a2010f85832f21143a42c73be8f246c0f0313ba70e0c145bbc07c6f9d8b7727e5f9b6219da079b061c0af556cfb25ff0c2703fb9987955b00d9c71b402d5d93f4e8ed26738904774425913ca1ed6ac1fe787d036773eca99bdff9c97b90e909bdf462e82867ff8fd54e19466ded77bc78dd1c2a034e0815738afd324a27019e63ca58ec8dcee79176918cc0b7957468a362cedefc03d94b86c83f5b1b5867c7ea7262ffe5e71528113a4f895c43dc1f518095a79d70031ff76c01ede7b117e6823077d2793ca18a6d384132b772dde1c65d3cbeca212f03124a191b06e3be3c36a5e46123b3356aa64ebf71a88f627d51141998b47036bf03d5d02f5aa1822b73742153af12b983b97bc85e903a3d352d6ebf721915a6983a034aa84b928c697f2281aa25a21427b6914e9f97987757cc44c7a10b2a27077af6037eb6cbea713c315f98e8a574ab6e821768f5d0e10f46ee9cda1107e34c81b5000399d0f1078b3f6f0f5fd0782d7046c4ef45bc3fb247fd1f4d5d184a2ebcafe0e40373b37f6d14b95160828be81acacd2ccd443cde4289c4c751c09933be958ea39e03357c9123ad0869377d3f15f709aac1c42c01a795cf8c6a8111f3f540383e236e05581e03dce0c5a02ba0097b4afd976d142036672d5cdf3145cfe1339ba53d53d00c044701be7b4cc12ed80391e4880a8e5f1f1a9d6716399b3083b914ea331b7a8462bda164d0ef9f8359ff0141030364444732445f2af0236d0f4fc584a0ef3f4ecf2be9ebbefdc1b4994b70ff37ba05581e030eab44e80928f4e0aed750d9ea93254a551113c5b8b3dffa25571077500c014744373c136ba09505581e03ec479152cdb1b04b948d71fc16bff76eca95dad2d1c24137f4ae4619100c014701707b8a5fc00905581d02e2707a794f52d58d418639f4ffa5d1bf96522c5b85db40a02124d59f0c190857473d77d78856406d032df39c0062882ba634fb24c89e7f9871ecef10a6e6a6e79a336f6ed463d5c942034e7649e1b32bfbb9c1184abd733614d69d61ab3a402f068e873e4867efb3519005581d0226f6dd60e485245f942f53836ab4f1b662c43bf84043b9328adc0ea507011bffffffffffffffff05581d02f6395bada9719caf0c052e0f3979e823e0ecbd89fd7edd2c6b7d4a7d04010219480805581e03c54aa631288946f39f78e82c6629d0552b645c70049d19a9d0c81a93100404031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0352d3cfb552dab1700a7e051b8717ff28b71827e9177e7c31640354e38007011bffffffffffffffff0219585d031558c60fff55a73f619e2d671540a0267413f468cd956b8904ca873f81cb648e0391f15e618bdf8627f646a78792e5c4caff6cf1b3e1ab4b511829d7da576055790318e0c81318ee09aa6fcd252ac113b69a87ebdef6d5806176f951d9aeb7809ec903d1f09b536850e8f7528041974d4fc55499caced83c3b0813602e6019d47e0aa5030323ba7faa9c86c5a925e1b57d8befea98293dc4030ab0348c1c3581d3f960100219ffff035ff818b47120cb89df128ad8dbfd1f19d9e9e2b226bcfe785bc25bc16e4ddecf038bdad5cb00cf96f016044774ba724e99d4f71aae0655061682eb7a737f68975003d2f499a26a9ca277db6c9dbf78a0a3b8f2c5c9e5b128b42909614fcd7f49449d031c55b61ace6594b58526c828a60bf838e6e610b97ada8b07e269bcee9c9b013b0397230aa2ca0e0fa43e6859b32ab3559c73a702c61fb5362078e242e790c0e18a034fe0640a9cf70d2862862212f2e1758f3283ac667f853aa34859440b99e8d087033c65cfb503f57cf40ed2b67ae42cc69903d3ca118c3d5fce2f9e8740126ece57031bf2d36b3950103dc81bee9b32ee35d2c3858ec01c54dc84cb1723f489938f5d0387c65c6866464aac7ee383d6010c8a1fc8aa6b8494da5a9f2f6e564cf6ba952b031dffa09d701879593247afd73b69b7d09cf7e0e0f52c6d0ecacac42e8898459103754b5abdbca5f1c3c4dd9c092bb755ee4b3c76e16145783b8b47fca76fb6430203ac4eb93952ec0809aba3751a55521d4709a928a952ed30a2ab70c56220ea0dcc0219ffff0328e2f3a71049f02f8762108f8976c4645948a9bf934d8d91f039306484ba2204037e07dbce8bc6527809b4568a29320cf60b6655aae8e0ae8609e62e96c893896f031ad990c9bb73172f4b5843c42714f7b96c3400497662e244c623c481d201ccec033e6f06640778865eaf3571c6df71cae7961d60cec1e33e8a9ee9ff312128f285035d54c16266cb3b6041a950cb3b91ddcdfbdefcfb25bb2281780301f8f954d2dc0313216a5238c172413cfead4287716a280d104e713be4dcd2b3a80d432c55f99703c7fc5b78f1237b67d1c9a951a6df24c1484d3954f9b346c61cac22bcc3c7c1a503a04b19133bc26bb3a91c9e5a1bfcb6a952390d533e5d9c6375b2f91c1eba009603bc6570627df7b36ccc8b6946384c1ca5cafa96053649f1277f6254d6d370f3f603209fff3a091b186680784e2baa8e1f9e96534c502a037a69de7537d6e297bf44030c884f888b28973b2559b688cc9ab31d1bf3fcd9549dd5d80304bc26f387d6be03c2d5e4296cf4f4d991988c1035d2c35a09d870ed8cf4a28d1bfc7406b5d1c3ea0219ffff03d1b6086a6b3640fe39e4b47041c787a90d0e6eedc0736279b105596a528c073f031fdf068a919da2cd25983e0aefd2d9404bb46f5389ecac51296e9b47dc04676303075199d884f8143691cd3983010ca626c21a9bcb928d2d7a0d54d0895e2ba2130380b97db8dda908c8f77fed77050d1dbb0de7cf4f37501d04aec459f73ae0742b03ec551cd2782e9bbd91604f7d2d4c27704381841e6cfa33bc01cf7229c735821103abfed92c8480d28fcd1998e486b4cc713538621af3fa80faa53fcd3e647a83250348c4e8aac9345c2ce74d9c1eabdbec80f714a8c598b5d256d9b0dc2e6ceb6f7b038b35d849997a79902e1fa01b85b317940484e11d75250c6a16a6b85993407bbf0219ffff03f91610b683d1c953171159f365d3ac41ec8d97a461e86979adf3ede2c890244d033eb2fc819f05d1608a0e1d2d9527b8d0aa73688b874b71a460b52ec304a0f80a0306031d8562669b1f7dd6a91e5ea6ee757a365722cbe3739e4043edc487062f500392cb79f7498ebc6be73a185e7c114eee886b414333f98fb6c8f83b455bbd1b46037985dbe1f373efc90da5735391670a86188de9a56b238fca4bfb27d27de5d4d0039f30765e52206ebb422b7776c9b6711564885c5f2fcd69a4145190d617d139ca03513e1bc455e371b3a81290fd8249c09ad210b99dd10ab32703d19a2606d6fab90362170a8dc8bc2c47e2f62af0d2e991317d42cc7dfee0d03db06a59906a7f405003dfb311dd375114ab02d4815ce99374c687dfab7d69de242f9f78d01b415b23b1037a4bce15f5ff53ffd586e089527d2d23d2d9f7af83f8ca3c3070f23a85a3cecb034605fa21ec93934135ada8d4153dcb9b2b296156646a74b0b1b1a0c083f5465a035cbe06863f750651078181f48e8716a002d7ce2cd2eaa8e0d404e11721e9d3d4039dfc9ea2e678ca5c3161d965ccd1dc2d4726e50e77d4214bd002ca51e541a500036231049ed63d0fb0476f416cf198d2e5bc5dfc5f67ca98fae49196c749178b430383690cf76e3e84a325d635ae7a3e3cea05c30e805fa8874ecdddbe4334e0674203f58e92c008a54c8e6e3123541c2c50e00e4066ec4f5706028924284505cc62db03aa7d5acafa7ceb6434b44997a36d7dd2a854cf6cc6c44d716ac624a69e3fd1b503877e595ed7f67f62d5356ab258233b15f59889ae802b3505091acf51d0e4d9ee033fa9b93925eb171cada0445e998fd8892c8ebe75924601481d1833770df7e5ad0397d493192614938b2652541b99cc6a675f95652e152b348acbd811a6c245bf8b03b3c0836818f71cb5be72bec043e8f8e525049ac3df461f7b0e0778027600bb1603c77a2139be0c509f37f2301f66b3b13af4eaa833209f8d088b19045bdb2ae1b203e1ee287d72ddc64e4d9d6b003a32e1adb5ea071dddea96be510ac22db07edc5d03a903dfcc63775cc518756b0c49b35e4b3b4d0308d5e6c63c2574607ca6b4392d03472aace4bd7c970dcfd6402babe90f74c36d21f2557bbc11b692e11d7a7e42c5034319a8b354067368bb230257f7bd5da6c4e8a3005a6623ab47b4add99164b42e03ad7f1928928e04559952e8bb842f54197ff07fbcbbf8738cd8da2c2b904c421b039b3ef85908f603c5054d66950460ab227de84211426e97d478d54d619c7c41df032763176441c5fbda3110efef38e42565e752981a2933755e82e3a818f1de826d031691d0dae3950b4a087ad7d99e316afa1dd349f62803d172a05ec9260599f20a033c66a651794508b76ecd212fbb82702032cb83543d20a968a9e168b681c2836203b7299a22913c5cb1742759223f97c03ae6fe9421372d2697b88c8ad04c7ee08303677313bf4288eed8684d4bad6e1ff659254d239a8785dbea1398135f3841cce403b05a5a76dd98d74ae6d0a77e5f01ab994f5f50047661a5249ce91d46a7fbc6160319e5bc5087fa6d26f4b732c22356a8526dba461e62557ca75aa09958b575cf9603e0bd40096a54dbd890f9c9a4cf4bb06e0f4fa960676d5db2e7f601f81341700303b55f69f5f8d4ac52ad4ad2afaa19d2bed1ac88309474894f8b34023ed69467d7038f8c659a832d8ee6121bac7388e5877590d368c90d36efdf4a461a314941981f03f6adf19bd6cf826ca15707f1f70541501855f48cab184155f5aeaacd87609c1f03664f60619a96b840681ac483c7846a5f9a3aa4ab0567cfb4c7e60331b2faa06a05581e03d93aac1412f22d76bbad5dd38f89f405117e29eac41d7620b52eb834700c0245b82b46260005581e0360a790a99ad83fbc7ef78a36b399459417f9303aea86115ac63ac30850040205581e03f97dfbf09c53f062c580273f4511c81e434436f3a8992e39f5596ab3d0084703a08a1e097800045959ae6080604052600436106101dc5760003560e01c8063affed0e011610102578063e19a9dd911610095578063f08a032311610064578063f08a032314611647578063f698da2514611698578063f8dc5dd9146116c3578063ffa1ad741461173e57610231565b8063e19a9dd91461139b578063e318b52b146113ec578063e75235b81461147d578063e86637db146114a857610231565b8063cc2f8452116100d1578063cc2f8452146110e8578063d4d9bdcd146111b5578063d8d11f78146111f0578063e009cfde1461132a57610231565b8063affed0e014610d94578063b4faba0914610dbf578063b63e800d14610ea7578063c4ca3a9c1461101757610231565b80635624b25b1161017a5780636a761202116101495780636a761202146109945780637d83297414610b50578063934f3a1114610bbf578063a0e67e2b14610d2857610231565b80635624b25b146107fb5780635ae6bd37146108b9578063610b592514610908578063694e80c31461095957610231565b80632f54bf6e116101b65780632f54bf6e146104d35780633408e4701461053a578063468721a7146105655780635229073f1461067a57610231565b80630d582f131461029e57806312fb68e0146102f95780632d9ad53d1461046c57610231565b36610231573373ffffffffffffffffffffffffffffffffffffffff167f3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d346040518082815260200191505060405180910390a2005b34801561023d57600080fd5b5060007f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d560001b905080548061027257600080f35b36600080373360601b365260008060143601600080855af13d6000803e80610299573d6000fd5b3d6000f35b3480156102aa57600080fd5b506102f7600480360360408110156102c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117ce565b005b34801561030557600080fd5b5061046a6004803603608081101561031c57600080fd5b81019080803590602001909291908035906020019064010000000081111561034357600080fd5b82018360208201111561035557600080fd5b8035906020019184600183028401116401000000008311171561037757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156103da57600080fd5b8201836020820111156103ec57600080fd5b8035906020019184600183028401116401000000008311171561040e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611bbe565b005b34801561047857600080fd5b506104bb6004803603602081101561048f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612440565b60405180821515815260200191505060405180910390f35b3480156104df57600080fd5b50610522600480360360208110156104f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612512565b60405180821515815260200191505060405180910390f35b34801561054657600080fd5b5061054f6125e4565b6040518082815260200191505060405180910390f35b34801561057157600080fd5b506106626004803603608081101561058857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105cf57600080fd5b8201836020820111156105e157600080fd5b8035906020019184600183028401116401000000008311171561060357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff1690602001909291905050506125f1565b60405180821515815260200191505060405180910390f35b34801561068657600080fd5b506107776004803603608081101561069d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106e457600080fd5b8201836020820111156106f657600080fd5b8035906020019184600183028401116401000000008311171561071857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff1690602001909291905050506127d7565b60405180831515815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561080757600080fd5b5061083e6004803603604081101561081e57600080fd5b81019080803590602001909291908035906020019092919050505061280d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561087e578082015181840152602081019050610863565b50505050905090810190601f1680156108ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108c557600080fd5b506108f2600480360360208110156108dc57600080fd5b8101908080359060200190929190505050612894565b6040518082815260200191505060405180910390f35b34801561091457600080fd5b506109576004803603602081101561092b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128ac565b005b34801561096557600080fd5b506109926004803603602081101561097c57600080fd5b8101908080359060200190929190505050612c3e565b005b610b3860048036036101408110156109ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156109f257600080fd5b820183602082011115610a0457600080fd5b80359060200191846001830284011164010000000083111715610a2657600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610ab257600080fd5b820183602082011115610ac457600080fd5b80359060200191846001830284011164010000000083111715610ae657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612d78565b60405180821515815260200191505060405180910390f35b348015610b5c57600080fd5b50610ba960048036036040811015610b7357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506132b5565b6040518082815260200191505060405180910390f35b348015610bcb57600080fd5b50610d2660048036036060811015610be257600080fd5b810190808035906020019092919080359060200190640100000000811115610c0957600080fd5b820183602082011115610c1b57600080fd5b80359060200191846001830284011164010000000083111715610c3d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610ca057600080fd5b820183602082011115610cb257600080fd5b80359060200191846001830284011164010000000083111715610cd457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506132da565b005b348015610d3457600080fd5b50610d3d613369565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610d80578082015181840152602081019050610d65565b505050509050019250505060405180910390f35b348015610da057600080fd5b50610da9613512565b6040518082815260200191505060405180910390f35b348015610dcb57600080fd5b50610ea560048036036040811015610de257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610e1f57600080fd5b820183602082011115610e3157600080fd5b80359060200191846001830284011164010000000083111715610e5357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050613518565b005b348015610eb357600080fd5b506110156004803603610100811015610ecb57600080fd5b8101908080359060200190640100000000811115610ee857600080fd5b820183602082011115610efa57600080fd5b80359060200191846020830284011164010000000083111715610f1c57600080fd5b909192939192939080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610f6757600080fd5b820183602082011115610f7957600080fd5b80359060200191846001830284011164010000000083111715610f9b57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061353a565b005b34801561102357600080fd5b506110d26004803603608081101561103a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561108157600080fd5b82018360208201111561109357600080fd5b803590602001918460018302840111640100000000831117156110b557600080fd5b9091929391929390803560ff1690602001909291905050506136f8565b6040518082815260200191505060405180910390f35b3480156110f457600080fd5b506111416004803603604081101561110b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613820565b60405180806020018373ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019060200280838360005b838110156111a0578082015181840152602081019050611185565b50505050905001935050505060405180910390f35b3480156111c157600080fd5b506111ee600480360360208110156111d857600080fd5b8101908080359060200190929190505050613a12565b005b3480156111fc57600080fd5b50611314600480360361014081101561121457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561125b57600080fd5b82018360208201111561126d57600080fd5b8035906020019184600183028401116401000000008311171561128f57600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613bb1565b6040518082815260200191505060405180910390f35b34801561133657600080fd5b506113996004803603604081101561134d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613bde565b005b3480156113a757600080fd5b506113ea600480360360208110156113be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613f6f565b005b3480156113f857600080fd5b5061147b6004803603606081101561140f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613ff3565b005b34801561148957600080fd5b50611492614665565b6040518082815260200191505060405180910390f35b3480156114b457600080fd5b506115cc60048036036101408110156114cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561151357600080fd5b82018360208201111561152557600080fd5b8035906020019184600183028401116401000000008311171561154757600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061466f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561160c5780820151818401526020810190506115f1565b50505050905090810190601f1680156116395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561165357600080fd5b506116966004803603602081101561166a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614817565b005b3480156116a457600080fd5b506116ad614878565b6040518082815260200191505060405180910390f35b3480156116cf57600080fd5b5061173c600480360360608110156116e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506148f6565b005b34801561174a57600080fd5b50611753614d29565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611793578082015181840152602081019050611778565b50505050905090810190601f1680156117c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6117d6614d62565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118405750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561187857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414611bba57611bb981612c3e565b5b5050565b611bd2604182614e0590919063ffffffff16565b82511015611c48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000808060008060005b8681101561243457611c648882614e3f565b80945081955082965050505060008460ff16141561206d578260001c9450611c96604188614e0590919063ffffffff16565b8260001c1015611d0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8751611d2760208460001c614e6e90919063ffffffff16565b1115611d9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006020838a01015190508851611dd182611dc360208760001c614e6e90919063ffffffff16565b614e6e90919063ffffffff16565b1115611e45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60606020848b010190506320c13b0b60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168773ffffffffffffffffffffffffffffffffffffffff166320c13b0b8d846040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611ee7578082015181840152602081019050611ecc565b50505050905090810190601f168015611f145780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611f4d578082015181840152602081019050611f32565b50505050905090810190601f168015611f7a5780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b158015611f9957600080fd5b505afa158015611fad573d6000803e3d6000fd5b505050506040513d6020811015611fc357600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612066576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50506122b2565b60018460ff161415612181578260001c94508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061210a57506000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c81526020019081526020016000205414155b61217c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6122b1565b601e8460ff1611156122495760018a60405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012060048603858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612238573d6000803e3d6000fd5b5050506020604051035194506122b0565b60018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156122a3573d6000803e3d6000fd5b5050506020604051035194505b5b5b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161180156123795750600073ffffffffffffffffffffffffffffffffffffffff16600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156123b25750600173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b612424576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323600000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8495508080600101915050611c52565b50505050505050505050565b60008173ffffffffffffffffffffffffffffffffffffffff16600173ffffffffffffffffffffffffffffffffffffffff161415801561250b5750600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156125dd5750600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000804690508091505090565b6000600173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156126bc5750600073ffffffffffffffffffffffffffffffffffffffff16600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b61272e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61273b858585855a614e8d565b9050801561278b573373ffffffffffffffffffffffffffffffffffffffff167f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb860405160405180910390a26127cf565b3373ffffffffffffffffffffffffffffffffffffffff167facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd37560405160405180910390a25b949350505050565b600060606127e7868686866125f1565b915060405160203d0181016040523d81523d6000602083013e8091505094509492505050565b606060006020830267ffffffffffffffff8111801561282b57600080fd5b506040519080825280601f01601f19166020018201604052801561285e5781602001600182028036833780820191505090505b50905060005b8381101561288957808501548060208302602085010152508080600101915050612864565b508091505092915050565b60076020528060005260406000206000915090505481565b6128b4614d62565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561291e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b612990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b612c46614d62565b600354811115612cbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001811015612d35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806004819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936004546040518082815260200191505060405180910390a150565b6000806000612d928e8e8e8e8e8e8e8e8e8e60055461466f565b905060056000815480929190600101919050555080805190602001209150612dbb8282866132da565b506000612dc6614ed9565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612fac578073ffffffffffffffffffffffffffffffffffffffff166375f0bb528f8f8f8f8f8f8f8f8f8f8f336040518d63ffffffff1660e01b8152600401808d73ffffffffffffffffffffffffffffffffffffffff1681526020018c8152602001806020018a6001811115612e6957fe5b81526020018981526020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018473ffffffffffffffffffffffffffffffffffffffff16815260200183810383528d8d82818152602001925080828437600081840152601f19601f820116905080830192505050838103825285818151815260200191508051906020019080838360005b83811015612f3b578082015181840152602081019050612f20565b50505050905090810190601f168015612f685780820380516001836020036101000a031916815260200191505b509e505050505050505050505050505050600060405180830381600087803b158015612f9357600080fd5b505af1158015612fa7573d6000803e3d6000fd5b505050505b6101f4612fd36109c48b01603f60408d0281612fc457fe5b04614f0a90919063ffffffff16565b015a1015613049576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60005a90506130b28f8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e60008d146130a7578e6130ad565b6109c45a035b614e8d565b93506130c75a82614f2490919063ffffffff16565b905083806130d6575060008a14155b806130e2575060008814155b613154576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008089111561316e5761316b828b8b8b8b614f44565b90505b84156131b8577f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e8482604051808381526020018281526020019250505060405180910390a16131f8565b7f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d238482604051808381526020018281526020019250505060405180910390a15b5050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146132a4578073ffffffffffffffffffffffffffffffffffffffff16639327136883856040518363ffffffff1660e01b815260040180838152602001821515815260200192505050600060405180830381600087803b15801561328b57600080fd5b505af115801561329f573d6000803e3d6000fd5b505050505b50509b9a5050505050505050505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b6000600454905060008111613357576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61336384848484611bbe565b50505050565b6060600060035467ffffffffffffffff8111801561338657600080fd5b506040519080825280602002602001820160405280156133b55781602001602082028036833780820191505090505b50905060008060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613509578083838151811061346057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050818060010192505061341f565b82935050505090565b60055481565b600080825160208401855af4806000523d6020523d600060403e60403d016000fd5b6135858a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508961514a565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146135c3576135c28461564a565b5b6136118787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050615679565b600082111561362b5761362982600060018685614f44565b505b3373ffffffffffffffffffffffffffffffffffffffff167f141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a88b8b8b8b8960405180806020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281038252878782818152602001925060200280828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a250505050505050505050565b6000805a905061374f878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050865a614e8d565b61375857600080fd5b60005a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156137e55780820151818401526020810190506137ca565b50505050905090810190601f1680156138125780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b606060008267ffffffffffffffff8111801561383b57600080fd5b5060405190808252806020026020018201604052801561386a5781602001602082028036833780820191505090505b509150600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561393d5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561394857508482105b15613a03578084838151811061395a57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506138d3565b80925081845250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff16600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613b14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330333000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16817ff2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c60405160405180910390a350565b6000613bc68c8c8c8c8c8c8c8c8c8c8c61466f565b8051906020012090509b9a5050505050505050505050565b613be6614d62565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015613c505750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b613cc2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613dc2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b613f77614d62565b60007f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c860001b90508181557f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa282604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b613ffb614d62565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156140655750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561409d57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61410f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561427a5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6142ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146143ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600454905090565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d860001b8d8d8d8d60405180838380828437808301925050509250505060405180910390208c8c8c8c8c8c8c604051602001808c81526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a815260200189815260200188600181111561470057fe5b81526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019b505050505050505050505050604051602081830303815290604052805190602001209050601960f81b600160f81b61478c614878565b8360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018381526020018281526020019450505050506040516020818303038152906040529150509b9a5050505050505050505050565b61481f614d62565b6148288161564a565b7f5ac6c46c93c8d0e53714ba3b53db3e7c046da994313d7ed0d192028bc7c228b081604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921860001b6148a66125e4565b30604051602001808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405160208183030381529060405280519060200120905090565b6148fe614d62565b806001600354031015614979576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156149e35750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b614a55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614b55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414614d2457614d2381612c3e565b5b505050565b6040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614e03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330333100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b565b600080831415614e185760009050614e39565b6000828402905082848281614e2957fe5b0414614e3457600080fd5b809150505b92915050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b600080828401905083811015614e8357600080fd5b8091505092915050565b6000600180811115614e9b57fe5b836001811115614ea757fe5b1415614ec0576000808551602087018986f49050614ed0565b600080855160208701888a87f190505b95945050505050565b6000807f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c860001b9050805491505090565b600081831015614f1a5781614f1c565b825b905092915050565b600082821115614f3357600080fd5b600082840390508091505092915050565b600080600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614614f815782614f83565b325b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561509b57614fed3a8610614fca573a614fcc565b855b614fdf888a614e6e90919063ffffffff16565b614e0590919063ffffffff16565b91508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050615096576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b615140565b6150c0856150b2888a614e6e90919063ffffffff16565b614e0590919063ffffffff16565b91506150cd8482846158b4565b61513f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b5095945050505050565b6000600454146151c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8151811115615239576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018110156152b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006001905060005b83518110156155b65760008482815181106152d057fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156153445750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561537c57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156153b457508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b615426576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614615527576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092505080806001019150506152b9565b506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550825160038190555081600481905550505050565b60007f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d560001b90508181555050565b600073ffffffffffffffffffffffffffffffffffffffff1660016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461577b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146158b05761583d8260008360015a614e8d565b6158af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b5050565b60008063a9059cbb8484604051602401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050602060008251602084016000896127105a03f13d6000811461595b5760208114615963576000935061596e565b81935061596e565b600051158215171593505b505050939250505056fea26469706673582212203874bcf92e1722cc7bfa0cef1a0985cf0dc3485ba0663db3747ccdf1605df53464736f6c63430007060033005821028a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b410105581e03a2f4a4cbb1b67aa687f36aa61d0631958879d58861d3dea13daecfa6f00f0147dfd22a90762e1d1959ae030d8329487da35d8659e539b873e49a33cf3313fa1c19bd69d0a3e977aabaab0c05581e035547497eab9a72da4aa1aab6d3969904b40c60b1e87ea3c2e5e811fca0040405581e03c5d0f11268cd65335d623dd7e5e2bb1dcc90db4e6689bd66bbbcda3a40040205581e03854a5402ee10b25856de85f60ad0442f88de4cf0cf694b708a3c9b50b0040205581e03e3f6dc65e4447e6a86ddb7c9c96877b095b09b5634d01e3566c83a77e00401031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e03fd36dedfa3a6ad18222ea91870b9d2e2da28a043b5c8e10dc17e88ef1007011bffffffffffffffff0219b9f103004ed5e0a028dc92526454d9335bb5dae020ec9903b913a045df183f0329206e03e7c3087443e5e9feed69d364c776586eaaef2f68f9b0a583f0db0e3960aa17ef0219ffff033a5c5e3118e05e0569de8ec53efa24f9db28bdc01954fec2a6439ff715e5df1903201508a4a56648d1b21a4e4dec82a35db3bcc5b38d217c03e29c3a71033eb5e2030b91472239eb3b851e45eca46060845bb96d12fb69db702c7fda1335b6ebab370374d78773e2d9d04a5632fcf49cd607373a00ee5a52d73008004b86cf6d2650050374b1c0c4a70f44125634b112943750532dc7d624625f3589dc05a3736e586ded0219ffff03660a1c101c70914c5339596999d834580419f73bad28633729f4c4ab0eae71350219ffff03132963a97f0407bdd328d39dd9630e2c5ee60c99f6a616c04d66a86550c25d8f03a0f31adeb8ec10105697d5e131de239deb903e40096cdee1a2eb905217bacfa303bb6937f68faa4f1655aad81872949206f02d835f2ad711a55d79eea8fe552ad40364a75590436a54632e02f7c1e957f2d421ff30bb3169dd7df5154e093bc7f62803b4afea0b11ba4fc1b072723e6d1524b20c810082d379e9f516a2800d103622460337f2b0d48efffa5ee07805b36ae00f303d7d733b689d94b57ebf5a549731289f03fe25d52c1c69a9921a8fb733268eed66ee4c117e6456906d450b8bf45e6a1e4203addd3348f3bfb48918774a6292f2849eeaa6d9cccb5cb0fcc4ead40342cfb33003360d70a8c2f3d19eb886827a94e14d2e0fb61f923c2ad48070c06658b615565403e2b6989696eca188b2c8d6864ad190ba03e031aa0533cfacd4b18cc78901f98803993741b583d063de0b616b9c920d773762cd0687a6522cd375665e06a29aa2a9037e72d0b2925079fee15d1123a14d11d701e0fd67b8c50cbef908b48c2959f2db039eb03468ad91edee4e9045d619225f0e1c5c0f4728c08c7f27baa3b545fc292703c86848378e6702f77fbff2c72f86ce7afd0d7fe1b36aa537374815fdc91bf9d103a54f7e603147f631c9fda221af8c6dccb7e779426106355aae344f823241f99e0387e56545f25e0108be617fc86753a719d67c22c067dbd73005aae352ca8807c0030bcc49a91a110ba428956d1d628fa767f5a2b651d8e7249ec5fe339e3181ab0c036d790bf3be4f64e13ff88dda3134975b7980278851590d32457f7b89fcb23668035b27d8065caf2542fafaacd95073cbdf2e6214d322efd71033c6342ba61f4bfa0380508373e59f16e54d9ecd555e14bb44bb73609243e83971aabe5991c494416303c76bca48687403bca79381d53238adcac50af92fe15112cf6844ecf70e95d575037ffeb11d9cbda1b66d2af1aab1afa8bc5e5ddc0044148ee0b44421bc4ba4bd4e03e26989cf74bd4873d24eced20cce94e0308e045694eeceb26de3d4043016d49503b9b2b2c21021fb7e0b634ab25e2e3b83275c74d2384c642920d3110d21ff094c03782e6d908f1b076c71019bdd818bf8b1bc122e2a110e3943e9b03bb3aaadc480039b546ac1aee65f52f3d153127b17e99960b5a23394478abaf78fa154d0fe4aba03ddfe845d47c377e9cfa9e2187c698f76a802161bb3f42cfbf8ed0febb4a6f956035774f1fc435893c448d5fe018c80ae6996377929bacbc50b1d23fc33e12c235e03d8b3e513eaa136ab7feadb9a153995b0f421a0a364a0f416feb6402f5856217203a812aa0a90d8dbe124172185f9c305a0f9fe5b067001cbbac74d62a194e93dbd030466bb6434638e3601c4840f4b7373ced2a22b6bade1a68706ace14a4afd1f2d0380b155e133453b70b4ab6d42a9c094f56ff4ab9040b2204b7bbeb8e69a78adb5039afc1e6b6080903add242c438e61ab2c7894c20ca514c6c482e17e8042c4a05003844fea85154023e42effbb9fa5305924efd745b47a5447bbbe88785b92f847840386645c304aff70b12c503395ea59f87ccab97a025073028e6ba658790ae87aa603d08b1ef6a8a1592d093bd336d381f626a2adc8e88c49e72a87a05fc4191185bc03f02fda2c46476f7c34bad85b77afcb7309c0c33445ce9acf1ed3f2bfde892bb403e300efdf76b150c1ed4fb63faff11276dd99de69de5c346909a4449d8f4326f703ec52bcb262b565d0dcf6fe93f3e4a8301056fa69690c9f40a4c89f2cde2bcf710375e776360f21abbee70d76d3428d96feeaf626f99fce98b5a55f3dd32120e43c032dff75f85c7eabfd7160762a43e6dfa465e31f1b2f9edef25e775e472a5c2a5f033025352304dd923ba987ee6116c11a63e6a0f183bf0fe058f4f9b241f425cc1103cd15b9a0da894f89fe6724f75d2c9bd8dadcfe907c06182982af2ba68e1d809003f99366ec7c32fa666d98664d415069ba3e7885eb942619859ba4609c72e774a10388097f0f375a04b44f762080f0e88e346e6b031772500247286cdbd63e1b4fc603d81597f66d4bfa4898bce568ff07b7b8fbfb766e2d8e4b0d33464d79c779e6410357b167d35071fa4302eb90e112aeaedf2831affcaf58bf9e70f1847da8e1e9ab045908b360806040523661001357610011610017565b005b6100115b61001f6101b7565b6001600160a01b0316336001600160a01b0316141561016f5760606001600160e01b031960003516631b2ce7f360e11b8114156100655761005e6101ea565b9150610167565b6001600160e01b0319811663278f794360e11b14156100865761005e610241565b6001600160e01b031981166308f2839760e41b14156100a75761005e610287565b6001600160e01b031981166303e1469160e61b14156100c85761005e6102b8565b6001600160e01b03198116635c60da1b60e01b14156100e95761005e6102f8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b61017761030c565b565b606061019e83836040518060600160405280602781526020016108576027913961031c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101f4610394565b600061020336600481846106a2565b81019061021091906106e8565b905061022d8160405180602001604052806000815250600061039f565b505060408051602081019091526000815290565b606060008061025336600481846106a2565b8101906102609190610719565b915091506102708282600161039f565b604051806020016040528060008152509250505090565b6060610291610394565b60006102a036600481846106a2565b8101906102ad91906106e8565b905061022d816103cb565b60606102c2610394565b60006102cc6101b7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b6060610302610394565b60006102cc610422565b610177610317610422565b610431565b6060600080856001600160a01b0316856040516103399190610807565b600060405180830381855af49150503d8060008114610374576040519150601f19603f3d011682016040523d82523d6000602084013e610379565b606091505b509150915061038a86838387610455565b9695505050505050565b341561017757600080fd5b6103a8836104d3565b6000825111806103b55750805b156103c6576103c48383610179565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103f46101b7565b604080516001600160a01b03928316815291841660208301520160405180910390a161041f81610513565b50565b600061042c6105bc565b905090565b3660008037600080366000845af43d6000803e808015610450573d6000f35b3d6000fd5b606083156104c15782516104ba576001600160a01b0385163b6104ba5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015e565b50816104cb565b6104cb83836105e4565b949350505050565b6104dc8161060e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105785760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161015e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101db565b8151156105f45781518083602001fd5b8060405162461bcd60e51b815260040161015e9190610823565b6001600160a01b0381163b61067b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161015e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61059b565b600080858511156106b257600080fd5b838611156106bf57600080fd5b5050820193919092039150565b80356001600160a01b03811681146106e357600080fd5b919050565b6000602082840312156106fa57600080fd5b61019e826106cc565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561072c57600080fd5b610735836106cc565b9150602083013567ffffffffffffffff8082111561075257600080fd5b818501915085601f83011261076657600080fd5b81358181111561077857610778610703565b604051601f8201601f19908116603f011681019083821181831017156107a0576107a0610703565b816040528281528860208487010111156107b957600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107f65781810151838201526020016107de565b838111156103c45750506000910152565b600082516108198184602087016107db565b9190910192915050565b60208152600082518060208401526108428160408501602087016107db565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122012bb4f564f73959a03513dc74fc3c6e40e8386e6f02c16b78d6db00ce0aa16af64736f6c634300080900330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56305437aab97476ba8dc785476611006fd5dda4eed66b005821032df0bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d4810546e38d4999fdb6fac24973e508cde9397e369c5af005821035b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d054bcd3a47e4d0000cf170e25d1bd3d53f7c08be0a60058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6049011b05361f2bd38baa0058210328a5566b8a884201ab44e2d991177ce8b88325e02e52cbc3da6e67b3ecf29c604101021948a405581d02beea506e63d9311b0eb23c6ed86e7ddc2248d7bbe9d3d02bc17219010f0149011b05361f2bd38bab1908b305581d022f5dce6d993107338134f4048a0ef5d2430bef1a1a61f0a9ab5c5fa60c01450572bfaa000219a0000334160b2b3414a1b448458100361c64bdccf5936cc939e8b2d592200ed19105df03da3cc90ef62d3ad9e255dff552fa7525c31d06eb64d5df5045e56a7bcd3538fe05581e037013a88a4a324f330a934552003c0ea9bf3bbae161c26003b4f849c0800c024701383b84a9a17005581e038a68ca0de222757ad180dfe2910996104dbdf45e510d8b7f8ce0c729700c01470cc8aa441de58003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e0334748c9b864c1a7503fc03dd1016d10f8275d447ebcd45d257d242560007011bffffffffffffffff05581e0349a7d5dc763a3e1a8fff885943cd752edfd2814de2560f113870c7f4400c03480c2d8c1449f7162e02191ce403f1f0fc1c77adf0e1cb5abf0749989e5eb140c12723125ae612d53b5e650713530219ffff03ee5a53f74f94eed211b1550315db61e61ec4bbcbf88d691d9ba75d007b0415540219ffff0326d411259dd7a816b3e4416eccc5f9f3f8797f60e9181cb62c60f59668bb20890323172268bd2a09f78c3552b2e5469c6b05c29a7d95b51d92028cc3bbaab691340219ffff03a0fc6bf62efbb553457c8dd4d3691ec02f4a7421a16194c81bb82438bb5b399503481b82ca6d82804f4e9a750f67f6b54e6be42f2e948d9d44b89c177360910f6803a89e185238d216c1241a3d915e772029d7b638ecd55adec99814c693947a4c060364958e0d7d3c2aebb50fb54dddb25e94eaaee0915a72c1cb2759f538a9bcabd8035327ac387fa6542fe4b91dbaff5a38d741db5790d80d187bc2746fca795c2257036bccbc482ff275d6eb3376ab60d49d2c8b0e2212183b5edbc9bf27114de5363803edc3032532ace0446b7438d2ad25a69abb78d5b5d4d9a6c86f3cdef3da2934230390bd771d377f58819d16ba7f4fb447847f109db1775286e75429dec55261e995033dd46655c6a530605386f8a007b97ffc41d11efa1da43ac6df01cf140d2db6eb03bb749bc81a350dd73d0b5032cd39dc01d4a26dbea23bf5c79a027f02d0cc0edf0359d2192e558e3b913a53df2436387350239b1706ea2195672495100a29c6ec3f0300c84628c633a585bbd2891c3193e63dc9b42051c30175a5d7bf5acfb2129b9c03e0099b36fce101e80bf8573f29d89f3b8a7f20ec303f85e7dbf84408c407de77030b527f2a4c50fb1f85cc6ebcf4e4c8eab2f9e69697e12dd41a2216883586698a03cf92449075bf914fa054da8b992675a1f4133f3f63d532a684e04f29b93d8d93033f2fe4980aab2ac1fcca6832c46c06e1a41d631191fdecf6df3f8756e37f95c40384e87e3346d1a940b130af5a9887aea28b9698bb76114bb99de141f8d41383ff03a97dfcbe2ea276b20a8925b0b1b2e3e1544e0d8c4fdad3483f7546793eeab6cf03e9acd670f0490f608bc1cec210970ea69a8dff2ba043a6c13e2501ce2d5730e0034ceeb336e8946b4f13029e186c348e18eb210430ea0cfcd3da5622c1a38d9d7903f1e269bb2ba0795f8854fe528f8316fd010d98a1ba3b2de287ae81061adb28490309605662800eb77d58cda5790b870ae2aaf1ea67278a5d94b26df803dfcc04c003af4e843e8548a7a0f778b1163f502c4467e52874cb70953b899912f07eb0aacc03d7d43082ac2e9ca30d960da60cefc696394313d04fae467fbe3693fea6a78771032846bd46670bdd318fb24716a37e2c9cd532c60e94ddff9818da0d1ff396f819035abfb27964147afa3a887aa9f27db6a6d8ae66c29830dcf49a6277577c818307034cd4542d83c840e0216597ff2659415abddd68b7b26b8d4d2693723cddedfc44031207734600f08e55c762178529a571c9ca62563146231d7f54c906bedbeb52f703c38a054ce6ce7291505d939395ee7305bf384782851a090a2cc6a725289e1b0503292d3e6568c5ee43b9101720fabef09df3023a2e6ae4723c8cacfa7222e9ee31034f24704b6603eeadee8a5970a8d1a3c984b5184e530f5400e5a75208b580cb4f032a087181e6d748cf3efbc5d09ae5a6570769f79263a0f716cf3a29a9fc874c25039742b8e2bb1537db2c3ff03dcce2d16d1088f846ef25b457ce958af4d6a1d81d030ced1691469e0176714686f1821d790a3d9f2a945574c80c584843209493edd0032268192303e9cb92075064d094e70e79d6c909973862e06549f4297d6569acf9035c049a4aab88a8b5c522d646bd6bb9d6da3f82483bf54e98030badd15ed8f75503f2d6f383ab43d3f0ad88d9b2b5e70e4dc0fe4a371549ca186c2eaab8d830874903647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d038fb4c3c27f6921c644ddfc9424975b91b4588247ca2a1dec3696da65a397bbf505581e037b91040323814def5fe1e5885970bf7336ebe296ba41f2f87b6bd0716007011bffffffffffffffff03618e728e08d6c75fceee5df5a6a26d717c72a1c286a8e5a305cada656108824601410f05581e036c5bf8336032604418507e76e774c9eaf8510bdf009eabbc831e9236d00c024701b8a58bfe334203be929853508151223046115a06c068fb4a2f6e20021049a980f87e7a54bbc0180368f89b6e2b92827b22832b3e8e220718449282dbaca1926c6612b59053034bc305581e0368bb1c2d0dc0a9475ab3907ae4af4f6a7d7001cbceb31e55f6f3a085300c0347013e4310efbae0031dcfe45d2971467cde0e563f20532a221e93d0a67971b43dd6ced67951dbe64e0399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe90803abc1666ceaf37ed7850c81916fd30b8851ab0e89914925217822acaa716cc71605581d027b18ec0511d0ad48f90fbfd020c013ab8d42996e854b46d2dd29c4a207011bffffffffffffffff04590b4260806040523661001357610011610017565b005b6100115b61001f6102a1565b73ffffffffffffffffffffffffffffffffffffffff1633036102975760607fffffffff00000000000000000000000000000000000000000000000000000000600035167fc9a6301a000000000000000000000000000000000000000000000000000000008101610098576100916102e1565b915061028f565b7fb0e10d7a000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016100e957610091610338565b7f70d7c690000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160161013a5761009161037e565b7f07ae5bc0000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160161018b576100916103af565b7fa39f25e5000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016101dc576100916103fc565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b815160208301f35b61029f610410565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b60606102eb610420565b60006102fa36600481846108d7565b810190610307919061092a565b90506103248160405180602001604052806000815250600061042b565b505060408051602081019091526000815290565b606060008061034a36600481846108d7565b8101906103579190610974565b915091506103678282600161042b565b604051806020016040528060008152509250505090565b6060610388610420565b600061039736600481846108d7565b8101906103a4919061092a565b905061032481610457565b60606103b9610420565b60006103c36102a1565b6040805173ffffffffffffffffffffffffffffffffffffffff831660208201529192500160405160208183030381529060405291505090565b6060610406610420565b60006103c36104bb565b61029f61041b6104bb565b6104ca565b341561029f57600080fd5b610434836104ee565b6000825111806104415750805b1561045257610450838361053b565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104806102a1565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16104b881610567565b50565b60006104c5610673565b905090565b3660008037600080366000845af43d6000803e8080156104e9573d6000f35b3d6000fd5b6104f78161069b565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606105608383604051806060016040528060278152602001610ae660279139610766565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811661060a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610286565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102c5565b73ffffffffffffffffffffffffffffffffffffffff81163b61073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610286565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61062d565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516107909190610a78565b600060405180830381855af49150503d80600081146107cb576040519150601f19603f3d011682016040523d82523d6000602084013e6107d0565b606091505b50915091506107e1868383876107eb565b9695505050505050565b6060831561088157825160000361087a5773ffffffffffffffffffffffffffffffffffffffff85163b61087a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610286565b508161088b565b61088b8383610893565b949350505050565b8151156108a35781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102869190610a94565b600080858511156108e757600080fd5b838611156108f457600080fd5b5050820193919092039150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461092557600080fd5b919050565b60006020828403121561093c57600080fd5b61056082610901565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561098757600080fd5b61099083610901565b9150602083013567ffffffffffffffff808211156109ad57600080fd5b818501915085601f8301126109c157600080fd5b8135818111156109d3576109d3610945565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610a1957610a19610945565b81604052828152886020848701011115610a3257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610a6f578181015183820152602001610a57565b50506000910152565b60008251610a8a818460208701610a54565b9190910192915050565b6020815260008251806020840152610ab3816040850160208701610a54565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200b5100b6056e5ffc17e66039dcd723596f9fe3a99358830e95788eba2919cc0364736f6c634300081400330395d87be5c410bd5505d92895a0c94a4a6a34c4012e3d112d182f9cfb6e86343c039bbe989cc7c43267e9fac82338875fb5038f4fabd9417378145709fbd130fa4e03eb130d4b00ba6390240276ba63719a8a2809128a8db0221064491b49d409599d03a57aecc5dcad4e18cbc79709633a008be4d1dbc257de884aa01f14cb251a61190311ca38e5f4e57ff1d7d7d398b5f965fb2e87da13a1c82505edba80c95ddc216f034470268cdcdfb89733d32721a1006c10098b947fe23ff90baadc8b7c14219b52035584a50fa0bd28b10176ba8b8b6d8e3ba6ff7037fd5eb153356b40384cb8280c00582003333cdb0d15a6f87d7d99ecc52119db055efd2d77a3fedd335ab11850f988c05819015548b6e71d305200000000000000000000000000000000000058200369aa289903c9800f499b6c92f7775aa8a0c9a3882ccb7e60b66afbabdd516058191e00000000000013760000000001203f940000000001203635005820038f55932c2d83837457acf5511e8c88244a48508ad5422ddcee924f6fee83d0581a35e285658ff248000000000000000000359a4d0bba4515098c0000581f027cdae4e2662914b811e9fe16a88ae741f61dd194d682c6a5ab35a5f147c6581a673ffb4a5d405e80000000000000000064c22b03de55d73b720000581f020bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d48154c26016f1166be7b6c5611aab104122e0f6c2ace20219a00002192a1003540ca848aa91b7fae9d847f6f8250f1c245b3b2b473bc075dd817eebd16c86700366c3d17d32d10d2aa3e893df51e465c70687db155dbd9b8719e903269fe1adab0058200287b7dccb4c029a3b4167a7cd671b186918e317780216edd2008df3aa26c277581a01043561a8829300000000000000000000da98b181abc0da3000037bfdfad5a9134e248e063c19787ab920defa96952d809cf73a3d3ddc6566f704039c35e208b0088d2d57e67704c4846687888edfed816b1a4eba8de57776cf681103bf387c1f0d1d2fd8490fc55e94a407facae39807bed90018dd814d85333ed3be031d26c6c9a0021a00dbdddee9c82483b6d6ad29ded9164e281063ccdb68e25a9600582002d326e4443ce55673f829715cdefe1aa966aef97ebd0ec55186f987360b78395104000000000117dcb4000000000117d35500582002be02fa529336aa18f7795df08da4795895c33323964f57349516c6392062194c011791b40000000001178855032d1c7fb5cb447767f68b0b82e1d2be084c8442263b3281c7105e6e5180b379e500582002f06e3801dd38b4d6061ddaaf604fab671ec3ae4f746f6253857a1e44d155fd57b8bebfa3267c000000000000000000000000000000000003e96c7fc1b3e447e16f80569a5023c9866209c647a0873e843e9be56f802d0cc9032b87520b5210ad0938df50964ccc843f337ec8dfb8dd94eecaadf41b54de85a50219ffff035f3908346baf30f54b416ea6092b87a4a1c504abb99801c76d4fd72007cb94dc037f266ded09425224c88296e1037435563143d5ae206c7d17ea77066cea6d623403dda7609a34750efc67f93de213b2d302454327d6f9c43f2ebc1d9db235280756036c161f66fdc277237e460895e23500abb263877194ca0f7ac0c1e4aeed1b4fea00582002515de963533f32e04a1dc7e1e232eec5d2bfc5daf8e492122f1c07db379a7a581914d1120d7b16000000000000000000000de0de270412e2cc000340571a7eca3dbd2275008e69169893d4f66bd1cb6369124ddf878c531ea89dee00582003e4f155c5ef2ebd3772b228f2f00681e4ed5826cdb3b1943cc11ad15ad1d28042018c033378300afc33d7d5e08c57b8e4374b9c7e139ec30b141f7faae991bc56b0181a0219880003584a4413560dda370a7f4a59b0481dd1f8f41e9280bea0846a37b605a9037d8a03365f28b90fdd5902467fa5b0312baf6c816e0ffe41d54b2506d43e38ebb2b35703bd38c4d5b0f98481c912122c976bf32f70d43cd212707bddd32352b5914947d100582002f9d25797956b4c83e9f340205f3250aed3ea96b395412cfe2939983b223dd24c011775940000000001176c3500582002a423cf2567b148dbc15e4cb988458e5d7ec767ae2c3029eb895e733f08170558191e000000000000138500000000012093f40000000001208a95005820026699b684d285132722bc2c5c3ca45c99ac5c8232dbb1b3f6bce2a61f1c44f7581802563e8f01896800000000000000000000000000000000000328899b6812f005b91cb744c1c3101b5548e7990292a7b448c74b81bfa939b29e03db5d9520b0fb0717330b29b5b2e34fdb6539f47aa3060f5ed54083cb07e9441703ee63a39e224f9a3d15f23f5c6e8b90ce5e1c2177e800a38d95748b84cd7269670219ffff00582002ede591a88a6e953f754c4049f33904194115d3c1f5cf948c9a6ed80147c532581a5785b03c032c2a0000000000000000005627bc2762a99ca348000324883501d65eb654d42ba4a2913b2eac0285efe735dd897061990227342c9c95034106a9c65eadb4f59922893a19a432a52c1082afe05b4001f214328b19701d380332fa15492cee4adbc286ef3143517d5ad4b98e2a920a6dedc447ce32be8bd46700582002e933842e5d8510148c1d02690cc22248298a6d4676354dbfa69aef056e89df58192700000000000014710000000001210dd40000000001210475005820033901ed2fc224ce445b3baa4b627895bc854f429f61afbf9371c1baf749c56058192b0000000000001ee600000000012227140000000001221db500582003b981de2276eb8f5f28575373cbe6b13197db369a854d0c55747edd27804a10581a015779a9de6eeb00000000000000000001238e071765ded68c0000581f020eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d547a6c874db238d7fdc84516cd940e97032271af6900581f0244122ff1e793e0e5fc623f3ebd0ace1b40bc31d65e63fae27ee2c7b6a352581927000000000000143f0000000001210474000000000120fb1502184402190882039fb52c8e6c423facb1b57c0330c0f4d60fb04cd05f98d6cb47d5b9c5e5592941014103037084243fd992f087989d2cef7bfc6589240b004e5b53d4f4a19e6aa65e8a0dc9031c0d5732770a1498caeb2418258d60395b78965ce3038d9beacc436e851275b70313cb1a8fdf68b1cc7ff6a692fb1b804242961fcf0d2a7930931b0167b21d408603daea655a1503afb6f5444419c49b81706cddf64be0fbbb482f66931dfd08a07a00582002a36dafebaf5e978f9ad07068b39414d4595a5bb74049142878f2b959abdaf65104000000000117ef74000000000117e615035ef11fa81a0ceafd02fb90c794ac9cf7306864c9dcb0965b06160f780186136203c3f52d33283d7c98b92bb2dcfd6fd5139a7d0bdecba51de7b687601fd105375d03a5efda344672bbae850cb32ee46b39ebe3a513f658a7b851aeb7269c4db4fd20033b2d9d05173a5087af1e259399c363e361e011db187eb2f67e1e42e127bfd7360219ffff034debc2831cdbf248719371b86426df46368a5bcb735854a9992c614622e692e403e6f4becbeea15c21e774763ea334715c041eb780b6587ee42d416aecbd1d191603fc73935ad91a7934cc2510ca2acfd8e1b33a3fe91c5265f617533103e18c267303f4c92ee179909afc0c5991d99e6660ae17923c0fa44c5962a7544176026188df036e45ea126f64b8d5bfdd4aecb55ad3e58207f0e212a4daf7bbd11bff4cfbc5d3005820037c124f1843eb7099ec7a0966dd16f83f03df25ee65638b0c8c7cc39090cf20581a46ef15d94516a200000000000000000045db6ffc90905f3a940000582003397087e82f3ea19ffb74c4d9f7000357dc3d8da887a0a524f855ea4ee93aa058191a055690d9db8000000000000000000013172337c901fce00003cc89f12362aa2c5780b1e46610e55fc8f743cdd80d79bf4be82444518f97657f03cbfba9fcac87c251c5e64879d25667187a7fce3557df2aa566378a3ed6e42c830058200311e8a82acf13d0b0f8ce121af3ef9d63200846bbd3973d71fefc337cd7d530581a01043561a8829300000000000000000000daa4ed83b6e90ba400005820034a496881d94c9a36722afdbb493bb89e0b07f13047bb1f81ae346077f7d590581a675f34e57178ff80000000000000000064dcf06a266ab4e42a00005820035568bd533ef0bd47daea0748fc6dfa9da9d952feea6f189846e565a30f9b30581a20bfeb26b564dc800000000000000000208cc00f3d6a5fcd36000219d4a2005820020e417903440d86bf8a590b26caf39fd10419778390f9a8dde1cc9548bf097558191e000000000000013500000000011cce5400000000011cc4f503a63fca8893fbcea02006ffb129be8f65419c0321140a7118e521c06a7e72009b0357bfb18825e2c0e5ad13274a646b9aaa9238d29dc334dbf5a371398108a7becf03308a595f93ea73e1d2097882fa92257fc1ea5a03c89c496fbccb74f38b7bf32103273fa1a3d4fc73b6b0957efda945143cd15b2b34dd9234e6476dd3d1aa267cac03fcd3be7ff326e5626b8b39797841cfd4a3f26f7fed363586372b8d0c35aeef8d005820028844c54d3c502b568e57fcc583d9c4677ef5c855a9496baec8cbeeb52be85a581a2111735814dc4800000000000000000020dfaac432c12b837a00036681611d81f41fad1dc9df80b199361d806485b77dd4771b7dd6ebcfb9948cf9032c0bee1f13caf84f11d8cff4c0e828bd75b4fb4c9bcd55010ce4bf5170b9f65a03f55e2aa60be879345c780ac8c134678caddc75837e106b0ab537f433a20e55b30397470d82d766e2e8b2d01687975385e2bc51da8d1c5b38e3597ac93590d815af0219ffff0343fc6219cd55f79e66f8833a89802d63f085dec2d300f713df94c5192780c4ed035a170b8b19e4a88320c8df0d9395c3c34c901082eea2a146dd9ddd334ee64f600338a453b5e4eed2394d8e73a270d95cea489223a334f518200fc940d6d024ddbc037339873d9dd3ed9f9c2c4cfba6c568e116316c101eb14654bfd18bf4cec64da9031782ab42afabe4022edb2ba1a3422b4be9f790c0a1652d361c4b286f6cc5c0a0030fb572d967542afa34a9aabc51872be7df0bd259ee15186eae735c399a3040a603aacecbd812e034edf58de8ece3a15ef11c1a756f254db57b7985dcd892d80bbb031090aee042ae805916c4216da1034823571f1b449ef0d68df5cf1943b79553d700582003383f94c1d6854656ce990617ac079edf146064ab1b4c3a62d45119764cb850581a01043561a8829300000000000000000000dab75362af5c74b400005820038d1ee3998ffeee130f4331c6141c5736da851ab78aea934150bcf152efae10581a0dd64e2aa0a6750000000000000000000da33aa2e24be12ec000005820037f6d96ac962ef746dbde7e60e5edea560c6609fa2ab4fa2ea28d43ff847ec058192700000000000018b90000000001217e5400000000012174f500582003b4f9273a09523c735b49f2ab3f88bd7e01e6cd40a5a6e0b9d7568264c459e0581904000000000000000b00000000011982940000000001197935005820030d2a24228bdf344bb39cb253559b2236c8f49b9c2293b0d2d44174979dc5b0581a018c0000000000003a0b0000000001258ef40000000001258595005820032a70f6efadcd2e66f3bb89a1d24aad396e556cd3af819bbd6d18f1fbd65a005818180b3d8712d64800000000000000000000000000000000000219660903913d89164b74418213e3cb4e0a257dac934697a2f09c283575a1563f4885da2903a228e67f80be6e5145e2b56a0d49e0123e9a242385b3dcfa70c30defa39088820367a4a3ea864e17f47645fc4993c4c733ba1b00f2629044d1b4b4b9c9808cabfa03b46ac4774034c088fb7df31e1993d919671b852994b74abef4465f29c6f3a16300582002e11ee78ea3687af53fc6446244f22a6bf675a617d77b4c223fa985af20ea83581a48bac97d441f7280000000000000000047a88ec0a3cfd79cec0003e3f7365f12167a1107c171bfd0fa1efaa4f2208cc65af74b6e907c7ff7f5c7f003b7a4411f748f522a354bcb97dc34ff9ccfe8f316cad9a842959c5f95d6f26828034cb5c8d45c1267cd81682e3a0405b927b1ab3af442092e9b96166a8ee98d6aa30219fffe03f5d7b6a174ce7f7de374c8af4818559fef39a27d6157f7abf02dc3522f6a717f035a6427661ee5b143cbe063f72a0fc0d5a8282810f50eedd4f53d8d23b8e33c9e0058200221bbd26df3d6637eca909a747e249043aa0d2cedba2f2f05e200f37cbf7da158191e00000000000011c000000000011f2fb400000000011f26550358e7e808b8b17e20bb13ecbc1a8e5b294f7128400f3b68385da7701cf30b93ce0317a70ea25ddf9c20539f7adb6a8a1e13e14a1908a67b053bcafb2fdde8e90ca603df10ea410d390e7be1d6761d05e2ccdcb2e10a289d51bf59a16c0034431a7764031abdb85872135e096bad87b1926dc28cd1a03cb97ad55b2d6c2e3e3b6cc5d0430368d8b3e11e62cf2f9c34d0e8b226ae8ad1d028137b8cf6c1b564f904474a627c03f2c61c95879a04f9e2bb41352f33a1fd6953347d6ff664b3b261595808c6161603ea396c83cecb525899e9b53aa27d02e58926b527b7ec23b9f90c0fa3ea91a77400582003b84b88e23b6385819ea6aabafd4ad7ef4312734da4605703ab87cc976a26c058191a055690d9db800000000000000000001317054a1311bfe80000582003d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbcb05429ab878aed032e2e2c86ff4a9a9b05e3276cf1f800582003f042dfc9c86b19d757bcf10fab2d32b8b0f87d1804b331319ef6fef0075810581902d878f30db4303a000000000000000003782dace9d900000002190a0603505baed826e37ea3249f2e02ab4c1c6dc6a0e8aa4467b11eea0eb76f34bfcf3a0388e272f1b8d548ac9ac6bc58288deae6a022257748fcac9bfbddaace99e9116603c96af0dc2a8ee114f34745783acd69f627b92548d50c79e1deb0be000aed4e5f005820025741c93d30d5536c44fb13c6612fe0377c6ddc2ceb13bdb21054b45d0659af581904000000000000001d00000000011a0f3400000000011a05d503bb04f1351b0a622c368307e8a0336ef7ce4ad5ece9aba64eb23995bdfc67a67303be5a19caeeaf4aae08bc2b700d3f484c13f824244164ec158ddefbbe563919f503bf194a7a6b4981606025a1505f0d40987fa177c845979842d0f1e33366d61ced0219ffff03f08600a2c4a9e79c2c8f0d5b0d0a6278e0af5aac46c53132aef766a281eaaef80219ffff05581d02f8888315c6e4911a7fb3e34f245633aafadf73c0aa639eec6ac13d3c0701190b420219480005581e03325d83a3edcdc88397bea9dac65c855583d06705371005ca7c5fceb880040102198eab0396272631622b42c702d330f92ce6691d1ee940a6e362effdba6562e652cc692203a41b142d67bd230dfc0057800c5541a6ff0027d977988c2900eee0ebf0b18fd303a6373bdb5e0ee40d2e9b525e16444a2286d7985dabe6443fbee32afa9432af230219ffff033c0e2243cd29af46ae3d8f00211b807d42237a922dff29c363214924d781dd2103482927638d33ade9e0b2f523ec1dd00e177a37748252fc4baff7e1de2501b2cc03781d5f1498d58864e2a9d1e89d5ca23171d330f1d9bb68899b8ced29a51a6c0b0390bc06c1afbd040108d17016d1abd12204a21eb5c11717c1d78704248a34b0ef0219ffff037b5f138b06d6f002963f9937f1ffdeda65fbf5674957bd4ce12c3610cd4202b60219ffff03a4f52bd67e66196f73f10b74da504b5bdfa403f024461026280514b589d99e7303904f822f17a2685d5613284579b5cf0a5689fe1085c3e07cf6d89c0e876d5ec10374ecd81b707e84000a1637f6b7330df92bf1907c36ce9a023a22dbb784db011d034ebd4a376a2edb82cc2ddad312403e5665f5d2af52367cb74512252b2605f2dd0219ffff03d52652be62684a6daa69936c502a84048b4006b3a80b95aae1f4a38966877b1a03d6c860d4ef66611a51cce8526c59f120dc64b7f38d4cea23823d50055f62428003bf81b2757a1192bfdf6643dcdedbe08a214b3df8457a2513294107f5059bd9f803b61c7f2413206ee44939a5f878ef17e6dbeab13f9c9c0eda7a0685044e99a32f03b0f54899cfcfe1a0c8c14a8a7d767d2724771504d9bc9d3b41ad8e9deb1d0fc303893e2f51770dd7f4c33a634e7e4f1f7828ec82a3bddca5bd88e4dfc73949d12f03145626b5bc8d802bbff5bc9ee5efe55578d945d0adb528dbc8c5fd4ae85eae1b038f272fde8c4dc320c4736c50ca726f24d26cd28cb7d86354ad5a6eaba695e949033592db7b8c412de70127ac40f843f8b3c3e3b0eaf795767afcd9b89451575f7d036f8152540367a24cd0388d156f005e1ba770230a30d751f29bf07c9aa83abbf303aeb1ea7e3bc3033e944eec7f34c80fc54eb288417135111e39ce30e78993f411035cde3cf25acde61b584c481fd6363cd3c9322002333f8fb64e89fdd3d06d32870305e18c0365919f44903739ffd08d212342fb90f3845a2553d3083f6ab93c4b0003a1bcc68f6813eeea8ba58c52fbfcda1ffb746c09dff46b00b150575b3515cb9203a15f2f5d8678425d1c47991a14f9b32a4adae7cdba786cd941f80007a9cd510703296e90eb0d954bc514a75ca656a9e20416372f18aacf384e8bd67a92663b95f403aa3d624e7572ca3c19ed65a62b5c4cabeddcc94466fd81aa2151aedc7d43847403f9ea10c5e0af26e0e2fc6e1410f97db8d38d33dc79a452716b234e489cbc9759033d455ded3b4e19ccad178cd3009a1bbb6a5491211f40a243f3a37fd7e0c7eba2033a44c23aacfca058e1fab33881460cc5681c1d15b0329ab75cca430b32336c6303af265450113bd573e8bdac34822a64bd6d7ec7eedd204d48c6e788d559f7764c0304471a0970fb4bd36313d877accbf270ea9f15fc8c169af2b3e918ee986c44ad03d69ed957db19f1569faff6aa6ded66f5b1d6cced79f043bf5456e227b356185d037ae34403dfc0fc6bfa09156d1459c1673551b223bb124c6a96ce57a969f746e0033a734d69bbe6057aefa0393d89b1ea57ec0d5910c5063fa458f6646d3478b07903840ae47bf1f4743e0674739b417c47a91637a17ed358f06b781dde261d44e0d503d5ccb9d14b7ca347886b332b05506263cac8f45e464d21f62d6b584b42652f6b03c1e84f878f0731f3044c6c650a7af810c3cfb4a48b0b20f951831bb613505ee803cde5dbd8e13a43c343c49cabc8530733246537bcc2e9f993c2bbe3274154bcb603f73c8e3c4cf9dd46a044575b562bd298440805362fb581573963b5648eeff39c03c9cbcc8125c16be25882f12287f279eeb64b27aeeb5d5221d985d71a6cb28312032c94b2c6f620728317afba5ade5dd719ee2f3fe0ff7b62dde42db4e27f2f09ae03bfd29fe206ab8fdd96f5fdf5c1522bf34f2ae2c5b00698079797f25f6b71ae80033dad9e7ac7e21a36a5272832d1cf1bb6bc066ca3a3c0e3bbb9ec8448ced8891e05581e0325e985fadde25638c4096ea1a1e94c18d9879791b81086772c55ba1cb00c01461319718a500005581e0374f36a65196e6d8918ef23ec0d66542592a8b080912e26f0d164701650040305581e030c48ecf3cd2cee55c6f744667490dce55d1ebad21eeb90f74176e2ab100c014702ce80355f5f3805581e03f129cb2313cdb328683d0ff1219a0a963318d5e19fdd656d0b19a8a8400c02470156e312d19280032263dc8f8ded5ab1ea94238e574ffc09b772cae0f610aaccb860e65f29b4be990459567e608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000c88f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000271061309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f000000000000000000000000dd66781d0e9a08d4fbb5ec7bac80b691be27f21d8d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000271062ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000271062ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28b8b613b86565b8715611aab57611aab7f000000000000000000000000dd66781d0e9a08d4fbb5ec7bac80b691be27f21d8b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f000000000000000000000000dd66781d0e9a08d4fbb5ec7bac80b691be27f21d908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f00000000000000000000000000000000000762d10ef955d55b7d038c7a7231cc81565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f000000000000000000000000dd66781d0e9a08d4fbb5ec7bac80b691be27f21d9087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98481565b7f00000000000000000000000000000000000000000000000000000000000000c881565b7f000000000000000000000000dd66781d0e9a08d4fbb5ec7bac80b691be27f21d81565b7f000000000000000000000000000000000000000000000000000000000000271081565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f0000000000000000000000007b3ed3a3444144ff526554d5f4aa463d1759f51a1614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000dd66781d0e9a08d4fbb5ec7bac80b691be27f21d16939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f00000000000000000000000000000000000762d10ef955d55b7d038c7a7231cc61513b565b9450614bba60058c8b8d8b8b87898b60017f00000000000000000000000000000000000762d10ef955d55b7d038c7a7231cc61513b565b93508415614bee57614bee60068d7f00000000000000000000000000000000000000000000000000000000000000c8615325565b8315614c2057614c2060068c7f00000000000000000000000000000000000000000000000000000000000000c8615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a037a838692b60b0190bc75fdee77c60de1c3acdbc20d78e972e4e00d12571a65e203bf4db45ae94373e9fb96d1eea8bee4f1e9899ec3466119a4d4996cbe2d56b0a700582002c85d8e52239290cf46a1b1bd481570fa0e84808144cd11e44ab80af7533f634d45964c52d2aa9a3c8cf600fa8a005820026db2986438a5f561896bceaa5f5504e79bb91cc9c9e0d7402ac155f44e749758200100017a0000000000000000000000004cc3c93b5c0abc7eeb000002b21d9490005820020decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563581f010000010001000001b3d50000000000000108a69021430d04931aba8b7bca005820028c370613153d4d54935ae2aa31bb433a8c5d86ced947326a4049f0f46a0282513dee5d585b6136102ce72d0bc3f539a3d400582002e00ef7c8248f77a343e181ba463e45cca19b2a64ea12c475b5799d109aeccf58200165cf418b0000000000000000000000cdbb086d25438d3ec700000702bcd1500219622203a1acf9548a250ed02669e8e3f8586363d6861a6fb2f2f90acefbcd5f5970b7fa032cbf9d00fd5b7893cf0e730e9f30e574db66c14804afbeaf27a741c0f724bb20032398b199e8a6ffae43c9ca1771e38de0dc006e0e076eedd7b13f476e595446cd0319fd52f423f98568e23cd9efa25b882be1f077ef4e26a6704597681af211585103c17c7535faf8b4d81f8b8eeb3250e9ecc945fbf105b81b6f4c2cbccbad29a63a00582002497882cf9008f7f796a89e5514a7b55bd96eab88ecb66aee4fb0a6fd34811c58190800000000000000000000000000200000000000000000000000582002d298df602a4905ec6467d38325b95f3090bb038e99255ab71751e7c89b48ae4d0255df30b73e08c42b7a15e1540058200235acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b4a071829fcdd734411090700582002123e47dfbdf897f79e4590001f58fc740a0502a0129fc3082cd9fa000593de4d73b7a773d7ef4b5069bf1d0ef10219841103128a8459294ae653e5ba239b714aa66ee9d74c55dbe4556bdf4e4d663c2f39db03a324547ee72d15e32768562c711b41ac9db497562464e71d994f7a187752d84b00582002bbc738c64867d9db7614f771b0b7548abc23f0ce1bc11db5584ffdfe573b044f0add7e47221e44b2d32f3156d6701800582003e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf604f136e8a9303b675ac7038c7bb24ec4600582003e9a891e675528f264f6d54f4e08512d7a61a592482d3f27b447885801381e05820fffffffffffffffaef43e5cfc8a63113000000000000000510bc1a303759ceed0205005820027e0a8c65f6cf2ef88cfba6ea561d1c11d552f1636da3d844267fda43ac5742500275af7bc18c1249e1f906adf681a94e005820023e2b43f932839eff15f7148620545161ad7cf128d406f4e14446e887669a5a4a02ade7c6001876d61fdf03931e988241dc9be25d63335edb190528c539fb2fdbb4bd62c7514676b96d431f0219141303630179527f0abde013b976cd311b0a90042833fee0121bf54060c98bdb1a1c1903739ceaa575185d1a365b83b68864ceb1e477c0bab892f8279c7c9939da76d75d03ef53110911002601fbbee2c9d3d520aac6ccad1a6af734906b61cb5fc2c5a30e00582002fa8918b123edf3b00166521b362453ce960be7645524dbbf0fff49de7ce1b85820fffffffffffffffffffffffffffffff54c5c0234a5ca945b2f36e18c85eeacdd00582002f39b7b0c37cf87dd1e4587bea300d940d33139fdadbd4ccf283a52b47fc253490577b5989920a448d800581f02a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35820010000000000000000000000d1b6fe607a5ad99dd100000732e5863c65cf5dcf00581f02bc03e826095f6622dded4e2d3205545eaa0bf914d3ff5bbae624981a79db5820fffffffffffffd521839ffe78929e02100000000000002ade7c6001876d61fdf0219028001410f00582002c9906f00400cd8011256368849abf5d045cb493cf4841c92ea0271eae73bbd4f010100001000040000020000008000005820021622d5070f8c9a72d1b55c6cc8cec8cde591ec8a21700ff6afa6536a19e7e24b10000000000000000000000219084b0219ffff05581e0364a320c4e17220773f9bfedf91501401cb07c9d504d99d91dd3012f820070119567e032ed569ae4935db7bd05d9ab17356fa34813b577ed3aa31994e6346b2287c257105581e0397ee968efe5e833dfa63820411db7768f309203085c7b04796cafb2d80040203d990d1130eb8b9dcfac12124d5eb29d3bb7692ea2ed881c5482e27b0f6161b2f0219b38b033805c06403ef8c758b06181db78ccbb67b06222866988ccf6dd519ca2f792f5c0375634dee74e2add2abe937b6510479ece134be96f635ebbf5992daedd0a75b6c03402e76e1f78bc93032de7573f43cbfa9f130b2881d2230879dc5b16a1452214103f64f84e49ce6b8c28a6ba6777e249684778bef01aeff6e771a646d12500ef9ee03bf98d0b2dd71d1bdd352d6f92e6b99b6e1de2b23e7594c487655cc2b44df96ad0219ffff033bd16dcb86595f4a7cf22e733902f75d814fb97398ca86115644a357166a99dd0219ffff03e54811d2952c7d7a52adba76818dddeb2e5516be30bf8886d1f970cd8e159c9a037d0da417f847788fb374ec9d973558896afab4000aaf5bea9daab4ccec706e0f03296c4462e36b6d985b406af5ae59606b4305bb225bf86b96ff65ee57fad8cae10348dffe7e683c7f7fa9afb15975807b6314e484bd3d4a96e58d9d60684753ef78039b6fef9cc6720a1656d270b9ae1b683e960d913be0b06038a15c6dbff64b5ce4038cb4000ab227a5ce4c524ce5930048af483555f65e6595419ae70fe6179debe70219ffff03a7382a7b33c19dfa9050b1124a13420ed4cfa660fe43509d583037baca604cbf036ae7484b8e3c621355e5c674960c8103d55b07a867f06fbc89da8eaa61bcd94b03f0c595966f97acfb368463e0572442a09929decdaadf7310848bc83c169eaba303ac4eec45edf3a0f405152e335746a3f92959d80427f33e2ebc1af4f00076304d030ac6a27ce30e4deb64a2f1651926ca2dd66b2c852680f487a3ed2c2faa010a5f03b1a5713f7465a06f9592b94aeaa7546c8bdd04bfcf00ae6d26b1e64cc17edfde03e59e19a2fc1b9191ea75fe30c8c94f96b789ec7439617c3e13dfe5225b31fb9003f2ce9a6dbeef0995516af9e3cd76c157366d014f916c9595dc114f9858cacd8e0379eca4a0b1fc5e7f6085e82113d35d24173d17c106b55098ca6c834f5ec64c7e03b22b4944657dc1a269879cc712fb392c7e3a249b683ca35751d61b1594db893e0323458ada667086eade0410180c17788968be5cbe250eedc7452eb64d753c9a3a03c72e3db84ac61df3519a2858591d633d64a50792085b88f7960b1adf62b5e72a03cf1a5048be01b7c9c09734663c091893c3748982dd6363d88214ec1fc067c97803b088cb2ad31649a8ee3e126810ba60e1c308476f143846d0830430684928be4903e11f9da2cc70bc839f926c9bde50a89baed9005ca1bca0a42a48bf95ab60299c037f161b047b5d50acdee87805a80852ca80ddda0e379d4d61bcff656d3fb42af503b34e4f13884e153276b96d2b3b03cb9604aebce8c4750a8132ed6c16747a70b203ca53a36630d6b5d60f5eacf5e412cd32f497a25d725c878ee85cb53274d54df00357cd79e0d468277674fad490b771db497bc5d72ecce5d185ea38118237bdce5f03310a66f98440d853afd283f548ffff9f5f0fb33983f2a7ad8a0cadd32d2f68be03d16625110731fa105b7d6e281963538ce1cccbaa3b1f5fc4e7252f0a43b75cce05581e033847c530ad8cf75e407d436b34380c70320b31138a3f558ab7214a65600c14471359a586ab3f8905581d022da4953a82dd56c89341aced4e132286a070bfc908ddabe6f61698f60c0146de3815f655000459089e60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212208e345f925ec9141ac4c3081ccdcae590fd45b9f16fdd13292f84dbde1bdb5b7f64736f6c6343000812003300582002c8948a23fd951a8c7bf4e7661bc8ee87fc0674409dec3088a7cc01d1d1e9ca540493e0000000000000000000000000000000000100582002bf02baa2d2f5622d379b01ed48b2e87ee38a7529d2d0f08eba20ed348ab9c554104bc711530554f18936a12542192f8bd36166b10058200289c1e5e968864663f340ed2dba71fc12b58bcc2a79f2b1ce3f4469bf1f6e57447735940000582002963a2013d422c8dfd3fde7dae58e19fc0de4d5d0416cc63a6217868ac63e6741010219104c0372b0c426f03406cbfd22ac6ce77d4435925947d9047cb6368f3c7806f085b7ac035cf21fabf8cfeb023c2c090de1f701167bd799bce704310fadbab74990da6aac00582103a0e174cdf6e6ebcecc881e74268ba084f4a54ebba7f0564379202232badd205057886c98b76000000000000000000000000000000000000103b77ed826db151c0998838dcd26287d686fd6fbf202d3d29fd0b908519a2ef44c00582002df0bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d481548f5e39f234f8265e1db6bbb0fb961e4ffa7738d403b46410771a8108de09ab4f1f0877f7a3dc0c03880ba88bf73547a5e9e1d075df00582002047bbf768ba37356b36b57749133f52fc71f17699c9ee212a4d90768a635c35820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200241d97a732a1644d1e767cfecd43f3e1a8279db7fc859c90e2a58fc6b79e54654254010e880e04a27c98cbb8d241f8c3554d3784d005820024099967fb3ca0558d046e7b3db1c4326d6f06b73cfbd3b5e80acf4f5e7e63b5424bbc063def30ae81aecc659b97a8b2562b2afcd00582002000becc1446df1282baa22cb810ff42167097d20b1877868b9577cefd4df5d4899ca50c4c1c19feb0219542c0396e975faf48fed3190e6b65da2599155d467cbd89b632851c4b540ac61ba48ba005820024178b8ca98be2fb3e765b9534c1080ada798fe646f13b15f82d0b90ac5c1e254e69f676b2142fa05a3dc51a0e51d68a685ae739103ff121025c3793be83aad9e9e28194828c873eaa820deb49021614f854da87b9d00582002429031e6bf1beaaf0b7ff5525d0c665677faa551964824fdef1c8db4da7e95447735940000582002a08f52f7f05d65ffef6383f1cc3ff71fd521ad6a72e82fd73a6a00e6ae52d7447735940000582002b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d54e47a951f3bc6faf65a7a7074b9ad745f17084f9800582002d30ad1a65e84c16277a75d057555ed14a6cd465db804fcb6e4532a8f2c480f5451187757342914e7d94fffd95ccca4f440fe0e060058200285abc04d42df9f7ced829d1825fbca9de81187ea26f3595d272057b043bea754953a578c7ce8f3a1bf625d182a8caf7181fd4beb00582002121c6184420c27a06d18a5f14bc1e887ffb29eb468f0d6a6d0e39f42d1beee5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021912bb035d9d26bd2849ae1487a126b40fb52905ef636f871d09e2d11135dec2761125f103f899767234416dd4a0c1fa7f5a7ddb5023ef17a397686f9fda17bdc98689c042034fd00c7d040bb546d9199a338ae45010a21c1d792b23ea7b02d80108ead023e9005820021d047575b386ff1d5ad0080978a973fc3aeaf167d0da04b8d656aa54bc66eb4477359400005820020e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf641010058200278c931d8a4458a295cf12c4639ef1441b816d46d7f699110f351f5a44060a7540493e00000000000000000000000000000000001005820023086531848806cd212f949e8a54915c6714ab034e1029323116f8e61589aa3481bc16d674ec8000000582002539ac74c93ed003ec079ebb08c6b48a19abe93e14b82f59eb2ebd3e2a7283e481bc16d674ec80000021998030301c342507a28b46216cb524fc0570889dc44db6579dd278119b290132aecbea6032373f0a6193c777d669fc3c21d43ca5dbf949e1fa7e9efb9e8f7b8155904747f03eb44ace9944136c161ac36103616e547bf4ca2e06d50519185c9ae0c8e2a0ac80219dfff05581d0257e26931082e626df322734c21a26e4dfa9c431155313dc49e3c0d0e0f01489e20505d9e7520d019089e02182805581e0362538f74bebdfadb16d69edad2a74930d08a1c604bd729e2ebdcbb2f700c024707e4a2e07c737605581e03b46391abf6291bad9361e1a7b1bfd1f68c5f266ea9b0b58ce52e4e2420040105581e03082231893ca4fe10cc4a56105597653f76a350971a85f7dcb762a91630040105581e03d7442a2be2186926636079b25b1e793cccbd8e3ec0df5f6e0be10959800c02472f5c0f62f1118505581e03e7debfbe8c127854b0871afcbe852a55067dec3f574bb95fc8edcd37a0040105581e031d86c9f5900443f250bf4eeaf53b103a5ace00204feea642077bbee9b0040303f8ad58af7e01a4c1ba41b0c67d9c4d7144c277649dedb9f6a9034920698dbb9f05581e03f75d8f2d386a14cca04a8f535bbf9ed94c6f9c898668dc34128a9e2a000c02470260ce8d26ab5605581e032191dae8be706d6e8bc972d78c781057679f85792cfcf4d42a02b802f0040203ad82799a5bf55598cfccac8d6c9d5a8e172ad49d8cf6033caf3644a0ec300f5b0219ddbd039af717107b71b1b79264090d2b6c54fc83c0bd681e572e1bfbf77b23baee67da033804436c62c540c78b6d05e6a1e4e5a55c0b09c8603e6b03c2b1b4d65eb3c22e0337a2ff62c2c252c54cec5e61bab6a6d28445203dd0e79e5f433f4ab9ab3eab5e039698997ff54e26fd9f03c21545d2efa96bddb8ef05bf171e0b3d7ec752cd578a03899095c48e0426ad0a99355ff4ba98638d07ce36816c0ecff85a3968b50ec7040219ffff03cacf9e99a52b6ea014a8825a3f9ce4e51b20754785f52a48d90dbe129d7c1dd00392159782d771a8895414aa97cf68b14af3bb11730add79dbbcbced9a9351b2bd03a1c39f2bc9b25d22aff35e0581a3ffeecd7797cea754ecd21a113b60d7c9285d03fcd01f6dd40a642ee064057d0a5d948a02f078ba208cd011e2cb40acb5abf7540392e76f460d466d4af87c43bedc1d9d6d7b471e62f7992f5eb96354d87acea9f003c2fb69aa2e6d4e8d43d8e098afe8fe72838d2a342aeff3e91c48d62b71d35fe80333014c3ad79de32d9e8549df141f17fb0bbb7992b72994879a18b588d3fbfa4903dd8f9879e99323b3b6cd1cb93725841372c650637de4aa3184f912c9001c400e03aca4b986e320477be445f8454d757a80ff141117fc90558aa93740bc394af68e03d631c2256001742f9db5524d10d7e7137e2afdacc9a70d6257f819067f7b5beb0219ffff0342fe334caad51c8246936245f08c976a4d4fcad0a0feea33c703e44814a43bb603832ebca7a0ba9a3d281208dd7dea082256c09efab35a9abdd6b0b0ae8051c761030e1e993311d967bb1e64666f3a9d201b7f29b2ad48f2670d720fde002c96067503bc576543c8b63c5c77d1afd9960977d40daab0263ec0ccc77f1358b8ebce14af03f87ca0be54b9fbfadc1e984ebda16bf301ad3b970afd9168c3117709a41d062803b7e1f14dd92f81054497167c1dba9565b1313ed62cf1d691f8c04c46e2f178d703aed2125ebfbead64dc2ff068e810b860557a384fc4d46247f1db3bb454e38ae4033187e52a35634329890bcb39cdd997ee86c7aadf2e2ab2aa9dff23d0451ba63703953d1517ddb537de71bd00c2b7f4c289a54c8dc202d081d501e12de0e089352e035cc1242456138362084fa340b221147942ea9a99faa869a9d1fac05b9ee44da603ab9b997a52d130ad5d50bbccee6ae6c09d1ba396be268a7ee0dbeac1b7cfc5b9033e6874da7869147cc6a01665a65ee77834f3ec61135841b9fed2fd2a1234cd2203bcb465dd305900b3f2224cc84747ac3e9f8fe9359b16be7fad6cd7ac97db08b803bb1ef17a3510bcac8b5ace1c2fea2dbf0d467168474044239d1e1e8841cbb0e60219ffff03c7b143ff3845e7239b592375439e08eda59fda705090a915b58a3383c76d1c4e030e962df515a78564b6384f4723d4e72749773909609412ae8152a67fec8da38403f07f6cf22efaed8457101013d6f60569d3569820f379d4c5e4b5ef666c833e6a03adbee44cd665ccb87e930eab491a162e4ad41898c10a6a6ffdafc4ca405d0c42038a39f0d10ab44429bdf89fa570120384b01eb9e4e28fa9e48861c0240de9ce97036238eac2b82beffb40fd74c82940f7b04174190e5a7f055adb06fb8ceddb2be503b7b893b346731645aa70d06ef9ebeb16c254b60cf96060bfef1ae239a3e0386f03ebe48af8b9751527ddeb34c47a47cde048af23d078574e6e06a8bcb5e877a248037081ff6ab9a1158e42b17e87a730eee5868bac95420f926ae6170165c2cf3790033b9c0b94960485a147163d47dd0fb162c063b2edce23b527d6c0dcfcd3df4cca036ef1a67d3094d1c4be6e92e5120e2d6f250938ba5a9b0a847298eff37aa5e93a03ad6d12abcb29f3473fe7b29c4f429e0805818888932cac244f917ab7cea2d14803f74aebf58b9a7c42ce9ed2c8b9010e52ce8b5c4dc6e9b8a8f2fa7e5e3436bd99038022880289624f5716b5809ec1e2c1bc4750fe18b3abbdc6fee85d97bef8417403d1f3a00ca23967d69583337448d07e8a761eda5219a196036398bb03342f0195031f6f9143e638637cde263c2b0f508556324d6bde8bbbfb95e2ca23867e84f3a4033f3a1d7e292bbd6d788ee37ee846a1908f2d1fcc2b70de4ef883c118614f815403f76fd2c5d33c9090e13c80dbb8779aa065aade692e190864ca5be4742738e24f03f0617161ea1f4f291be8e25fac1ea7189691b595db8c45fab352397372c04659035f752aa899aff3444e79a00d7509c668611ffe501fe3c38a800961a4ae27bdd003958308b01197cefbc605f43b943a8663ff8292ace0a1df911f7beef5a0f335b8030bd6615477e1f8fffcecf2ff67b9e28d85cdb1ecb76b40a96439c7e25fe53d4903f6eb8dd31889f51c71b2f9018ea78203026629a3d9f022e1e7bed831c78abd9103ebd7ab25cdebe4cb52705bb1883523afad362469d92ac06b3780511c82f3f99f03c573a7c1714ae2ee669c483bdddb5e23dffabc47f65e244bd9554fc6990b98e6033657e180615f0a1ff09b8db81964f2ead75a6799df23f0f5406046f49fa8b78d05581e03b48b500c6bc81906a80a3251b3e23ce019e4d0f54bda8511a6580008900401034f191e4ed43ae2d5dea9cf6e4451b5432359f14035c0103c4bc2ecce736e264705581e035e4dbef9dd0715646c1d228076d00f76ffaf5a77c7726afce42f0b8be00c01462271acc1544005581e0398f8afbdbbbb702d39e572ab2d453f58cddd9397813382e994c2bd46600c01450195f2d4ab05581e03befd162aa37a5598dbfa8551e341b78042cba90f89ebd5d6ee69be02a00c04465d3ffa5cfd68033f765bd3edce7a77269ba6af7fbc7755e8894af39f97f01969b4817a3a02b83405581e03fa87c1fc235e3ad1085c8bcf4c078ed369f1c5af247681ba5e6b82b250040205581e031cc75cbb95ff8ee3915ffa02d55e8cc8ef29cc19fac682ec271d7614c00c014620f5d68a925005581e0390775d72c618b4efe8389b443d668710a3930ab6feac1e8275314d78c00c0146319537bd413005581e033c3833d746b37f456d7977bfbaa8a172bd962441a697b2f552665c68800c1a002026994951589c2e0215037efd0308ea6f8f1e4715a5f2a077055634e69509046ce80ca1ed33eeb2d6ed6e2a3f0205581e03be2a649f91a0bc91edfc8b766f6444bac02adafeb957d136cd1f1a288004070219d6ff03a8a50ebac26f5faf63bf3e6633e33d410433fc2b1797adb0396934aa7b0e08c9033c43ea17475ef52c57dbd1a78939edd04c5dd592c18f38936c2a217dca065a47037785f0a58e292e3de38cccb1840dab8f8a1c704362d1c32547adc35a3aa233ba03287fc8a90def0806a2cfbd3380fb9530bb4faae97a4829f6a95011d836d504c703be49546883425eb6bdf1ff75444cffc3a1c80198bb591893cd2e71050ec1202c03042044ae6135626d2b2f33688af7daaf37da3e121e9e6a58cf1a6b9b9da5d64d039a67c06f48ebd6294539a4d07e05350cd89a7d59cfb26cc8c944984d76ac630b03943a27e2c596538ad2e190c2b6b2775dfb2a57f52e0cfcf326cee68ada4dd93e0219ffff0359880616df6c6111740695a337831587c067eda41a732e910db16d7d472bc237030550f028668c922767130226c560b7fcc52f339f8280d1251ed788ffc9cf6f7a03380a989b09ed13b840787197ba0d958a6699910aa87b4a543d84cf4030459bac03b284143913429f7ef50b6c2f3a1c54f8a95ddcfd351f34dec2f1d7ba5569b93503297cae1ada1baac365f99f86b9405840febbc867b476aed32ef79cecce49680a0331d02b7605582be63ca29f29ecba39c6e152e5a11b13abb067b3aab0f58fcf6a03824a84066a15ffe1cc8fc547a30eebacb1193d3c18cdc162dbe9468ebcc4e6cc035af16f3135fd1630a91b56c1e56523e22060996b46f3c890b474b411b694c0c70219ffff03d4aee529a967aa54cbb0e31ffad4dea196f51de04eb20af9e16b83a44a55894f037b637099f3f3656ef50b37c1e286fd8aa1d3ee7edf79982514b8a7c6bc6e92cd03e891f80b17b6d426be01e5d10f967ff55a458bf6a52926a2ea20ddb6e97537510330da687408e34f23d463a0c1bda592fa45336b68d015af89384c8f0615bf10720315f1658eb8b9fd1881d766eeb61c67bcda1f7ea462bbcddf3c78065bbfa1f33403f477ae8d64c6ff526eaf2de2862977cf7b62a35ca56cfad6880def25f3e611770329dd37b56d3a8573cdb1d563f428478153a1f5fd48012018b8dd974a7fbf32c103412be24b1455345189e6e386711f8a6287aa1bb04a14b9b0a7f49d8589f7c8eb0219ffff03ab35599973ddd975d0432801863e803e58fd03898b7ad98f7f4c4f94d97dae9503c5383d800be17d0e8f49d34f9c7b4c6d9e85c63467a9ab4f7bd44d773024d598036396b96c4670ab1ffddfa9532b5234dbed664bf8feecc9a9f9b9727aac32b81b03e291b2e16912820fd52b2d645609c887ca4626a8f69da5653cc70afcd291ad370327bd87aee33081149fdd3e23c37c230c555bd351929ea22c328a1f32263c3c5d03b4fc254aa4fa6b32a63244cb9d76a4c96e6db8dc6155602992301fc8ac766bac0303d4f1d45bdb154fa454719110698ab32c34d0240dc12192927629c22b549a2f0339d15fe64fbd6e65ead4a316103f59307c6b885b7f76bfb58ccf418281a319cc03c502f6227f7a6ac735ebbffcb37646340e6723f1c2f43e1e223c6ae4ea1a6c0603cc16aa6437c943b6c7d86176eae6010988554aff7d866cd92e3a732c48bae68203757df83dc1bd6bc6e55aa97ad230d4fa91a587e80a0a8d1cb241580238a4ab9f0392fa44491bf4716d9004246d625af73c284faa130dcc7cca61c10c5a8cc33817031c356ba25ca75b0c1958ca94c3eee081c274809f5b43a7f253aeae6e74b09b7403040caab0f4fa86d5e9e71e4d04146e1de00efa581c1c78f776235a9fbc6c27b6037be038205db5d3fbf84acbe1fc380ffceededf73d80189d546e412fa8136118605581e032115661d55ccddbbeaa93f574f52552b4e594e07c13675472b2066d9c00c024704ee818799380005581e0338da3b2570222e334b1ef3f42b372c0fd18368aca86197043f897fdc400c014744b1b422579f5003be356560e368ae20ae372f74795882e219672beb997779be76f340d8e6f9263c03a730bf4ae8b8d79a8c09ab8d29b845fdd4c90f497f2b15089a8c5320d8cd7d9c0372cfb42e75ec2a05dd43793aebb84139728f1671bbd2a135d72b9e9f32b7d33105581e03b68e3c10c58ab422940bcd14681883d152106428ccaafcbe8c9f3b0b2007011bffffffffffffffff0318ccdad8f0f9d1e32bd12728ac45de26945100277b97d1763b6646b4c69f816c03ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e032d41016cb87c09c34a7a736d66afe21441044abda7d8e5f3a0b609807007011bffffffffffffffff05581e0396a1b7cfa12ab44fabf53c95ccfb3896993ecd85e4e88bfaf7844413e00c0246d304e84a766004593b366080604052600436106102935760003560e01c806377f5c01b1161015a578063abca4a92116100c1578063e10bd0cf1161007a578063e10bd0cf146108f7578063e7747ce3146108ff578063ed9953071461091f578063f9085b4514610927578063fb04c9e014610947578063ff440f691461097b57600080fd5b8063abca4a921461084f578063b2ce808914610862578063bbc4078414610882578063cfe60a90146108a2578063d294f093146108c2578063dc4c90d3146108d757600080fd5b806398f6b77c1161011357806398f6b77c146107545780639a06ce27146107675780639cd441da146107875780639d7de6b3146107a75780639e5b7105146107c7578063a94a1706146107e757600080fd5b806377f5c01b146106805780638129fc1c146106a057806386b9f6cb146106b55780638e3b5d6a146106ca57806395ce2f5f14610700578063969b53da1461072057600080fd5b80633b3edf68116101fe57806350bce91b116101b757806350bce91b146105de5780635226dc5a146105f357806355ce196814610613578063587f5ed71461062b5780635ea54543146106405780637216a5d71461066057600080fd5b80633b3edf681461051e5780633b824d6a1461053e5780633cf6b3f51461055e5780633ef07ff21461057e5780634e6cbad11461059e5780634ffb1bd9146105be57600080fd5b80631f034ac6116102505780631f034ac61461047957806321e0694a1461048c5780632b4dbf08146104b65780632de9952a146104d65780632fb22868146104f6578063363b2eb21461050b57600080fd5b806301d16b14146102985780630f76c9fe146102dc57806310c38ef31461030f57806314cc01a01461035157806314d9e096146103715780631526fe2714610386575b600080fd5b3480156102a457600080fd5b506098546102bf90630100000090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102e857600080fd5b506098546102fc90610100900461ffff1681565b60405161ffff90911681526020016102d3565b34801561031b57600080fd5b506103437f000000000000000000000000000000000000000000000000000000000000000181565b6040519081526020016102d3565b34801561035d57600080fd5b506034546102bf906001600160a01b031681565b61038461037f36600461328d565b61099b565b005b34801561039257600080fd5b5061042e6103a13660046132cd565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260666020908152604091829020825160a081018452815460ff8082161515835261010082041693820193909352620100009092046001600160a01b03169282019290925260018201546060820152600290910154608082015290565b6040516102d3919081511515815260208083015160ff16908201526040808301516001600160a01b031690820152606080830151908201526080918201519181019190915260a00190565b6103846104873660046132cd565b610a11565b34801561049857600080fd5b506098546104a69060ff1681565b60405190151581526020016102d3565b3480156104c257600080fd5b506103846104d13660046132e6565b610a46565b3480156104e257600080fd5b506103846104f136600461331e565b610b26565b34801561050257600080fd5b50610384610d20565b6103846105193660046133c4565b610da5565b34801561052a57600080fd5b506036546102bf906001600160a01b031681565b34801561054a57600080fd5b5061038461055936600461340c565b610e33565b34801561056a57600080fd5b50610343610579366004613430565b610ea9565b34801561058a57600080fd5b506103846105993660046132e6565b610f13565b3480156105aa57600080fd5b506103846105b936600461340c565b610f96565b3480156105ca57600080fd5b506103846105d936600461340c565b61100c565b3480156105ea57600080fd5b50610384611082565b3480156105ff57600080fd5b506035546102bf906001600160a01b031681565b34801561061f57600080fd5b50610343633b9aca0081565b34801561063757600080fd5b50610343611107565b34801561064c57600080fd5b5061038461065b366004613465565b611149565b34801561066c57600080fd5b5061034361067b366004613430565b61115d565b34801561068c57600080fd5b506037546102bf906001600160a01b031681565b3480156106ac57600080fd5b5061038461125f565b3480156106c157600080fd5b50610384611377565b3480156106d657600080fd5b506102bf6106e5366004613491565b6097602052600090815260409020546001600160a01b031681565b34801561070c57600080fd5b5061038461071b3660046134ac565b6113fc565b34801561072c57600080fd5b506102bf7f000000000000000000000000000000000000000000000000000000000000000081565b6103846107623660046133c4565b611565565b34801561077357600080fd5b506103846107823660046134e3565b6118f0565b34801561079357600080fd5b506103846107a23660046132e6565b6119cb565b3480156107b357600080fd5b506103846107c23660046132e6565b611a06565b3480156107d357600080fd5b506103436107e2366004613430565b611b20565b3480156107f357600080fd5b5061080761080236600461351e565b611bd7565b6040516102d391908151151581526020808301516001600160801b03169082015260408083015167ffffffffffffffff16908201526060918201519181019190915260800190565b61038461085d36600461328d565b611c6c565b34801561086e57600080fd5b5061038461087d366004613430565b611f4c565b34801561088e57600080fd5b5061038461089d366004613558565b611fe8565b3480156108ae57600080fd5b506038546102bf906001600160a01b031681565b3480156108ce57600080fd5b50610384612109565b3480156108e357600080fd5b506033546102bf906001600160a01b031681565b610384612196565b34801561090b57600080fd5b5061038461091a3660046134ac565b612269565b6103846123ec565b34801561093357600080fd5b5061038461094236600461358d565b612448565b34801561095357600080fd5b506102bf7f000000000000000000000000b20f0105f3598652a3be569132f7b3f341106ddc81565b34801561098757600080fd5b506103436109963660046132cd565b612634565b6109a3612656565b813410156109cc5760405162461bcd60e51b81526004016109c3906135ca565b60405180910390fd5b610a02837f000000000000000000000000000000000000000000000000000000000000000184846109fd8234613617565b6126af565b50610a0c60018055565b505050565b610a196123ec565b610a437f000000000000000000000000000000000000000000000000000000000000000182610f13565b50565b610a4e612656565b610a578261297a565b60008281526066602052604090206002015460001914610a895760405162461bcd60e51b81526004016109c39061362a565b610a9382826129d8565b600082815260666020526040902054610abd906201000090046001600160a01b0316333084612a4f565b60008281526066602052604081206001018054839290610ade908490613693565b909155505060405181815282907fcb1652de9aeec38545fc281847b3dbfc89aab56dfa907b1ab68466f602c36fb4906020015b60405180910390a2610b2260018055565b5050565b610b2e612656565b336001600160a01b037f000000000000000000000000b20f0105f3598652a3be569132f7b3f341106ddc1614610bb05760405162461bcd60e51b815260206004820152602160248201527f4272696467653a204e6f742066726f6d207a6b427269646765456e64706f696e6044820152601d60fa1b60648201526084016109c3565b6001600160a01b03841615801590610be6575061ffff85166000908152609760205260409020546001600160a01b038581169116145b610c325760405162461bcd60e51b815260206004820152601760248201527f4272696467653a20496e76616c696420656d697474657200000000000000000060448201526064016109c3565b60008080610c42848601866136a6565b9250925092506000610c55848a85612aba565b90507f00000000000000000000000000000000000000000000000000000000000000018403610c8d57610c888282612b6e565b610cb6565b600084815260666020526040902054610cb6906201000090046001600160a01b03168383612c87565b604080516001600160a01b038416815260208101859052859161ffff8c169167ffffffffffffffff8b16917f302b3ebcd58d43753be6657117391b4a3b8dc310ae7054a9905486dd23241676910160405180910390a450505050610d1960018055565b5050505050565b6037546001600160a01b03163314610d4a5760405162461bcd60e51b81526004016109c3906136d4565b603780546001600160a01b0319908116909155603480543392811683179091556040516001600160a01b03909116919082907fd2201da7c443ffc780844bb92267eecd254053cee6183556572d891f029db87d90600090a350565b610dad612656565b7f00000000000000000000000000000000000000000000000000000000000000018303610dec5760405162461bcd60e51b81526004016109c390613716565b600083815260666020526040902054610e16906201000090046001600160a01b0316333085612a4f565b610e2384848484346126af565b50610e2d60018055565b50505050565b6033546001600160a01b03163314610e5d5760405162461bcd60e51b81526004016109c390613773565b603680546001600160a01b0319166001600160a01b03831690811790915560405133907f224c573cdb8950a1cf5382cbdc4c6fbb5a94c2a07579e014482d20c77d7c8ee490600090a350565b600083815260656020908152604080832061ffff8616845290915281205461010081046001600160801b031690633b9aca0090610ef790600160881b900467ffffffffffffffff16856137a8565b610f0191906137d5565b610f0b9190613693565b949350505050565b6033546001600160a01b03163314610f3d5760405162461bcd60e51b81526004016109c390613773565b610f45612656565b610f4e8261297a565b600082815260666020526040908190206002018290555182907fffc60309bc0541f9cc67841ccfe5f8600c078153f74509d2c439ec1e40e8b3c090610b119084815260200190565b6034546001600160a01b03163314610fc05760405162461bcd60e51b81526004016109c3906137e9565b603780546001600160a01b0319166001600160a01b03831690811790915560405133907f52eae2ba1561aaf57acd728abc519e08906e6c49b9ec8ba4209bae7fecbcee6f90600090a350565b6035546001600160a01b031633146110365760405162461bcd60e51b81526004016109c39061382b565b603880546001600160a01b0319166001600160a01b03831690811790915560405133907f788d10307525180759bacde6500c4c7159d8e09bd79209dea881e3b43e27547290600090a350565b6036546001600160a01b031633146110ac5760405162461bcd60e51b81526004016109c3906136d4565b603680546001600160a01b0319908116909155603380543392811683179091556040516001600160a01b03909116919082907f12887552f8810a293cba3d436e02a0b49397e811c9b41187c89d7290d9bd192690600090a350565b7f00000000000000000000000000000000000000000000000000000000000000016000908152606660205260408120600101546111449047613617565b905090565b61115383836119cb565b610a0c8382610f13565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111a55760405162461bcd60e51b81526004016109c39061386e565b60006111b2858585611b20565b604051632f08b92f60e21b815261ffff861660048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063bc22e4bc90602401602060405180830381865afa158015611220573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124491906138a5565b90508082116112535780611255565b815b9695505050505050565b600054610100900460ff161580801561127f5750600054600160ff909116105b806112995750303b158015611299575060005460ff166001145b6112fc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109c3565b6000805460ff19166001179055801561131f576000805461ff0019166101001790555b611327612cb7565b61132f612ce6565b8015610a43576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6038546001600160a01b031633146113a15760405162461bcd60e51b81526004016109c3906136d4565b603880546001600160a01b0319908116909155603580543392811683179091556040516001600160a01b03909116919082907f5c4b9e5621878f91d14b060afe833a3597e6e5edbdd74b6161973f747c712ad490600090a350565b6034546001600160a01b031633146114265760405162461bcd60e51b81526004016109c3906137e9565b61142e612656565b6035546034546001600160a01b039081169116146114d3576098805460ff196001600160a01b038416630100000081026301000000600160b81b031961ffff8816610100810291909116610100600160b81b03199095169490941717919091166001179092556040805191825260208201929092527f375b189bc53525ca31c6fc74f38c76b308773d66c780a57fbb0b9ac94f1d2285910160405180910390a161155c565b61ffff8216600090815260976020526040902080546001600160a01b0319166001600160a01b03831617905560985460ff1615611515576098805460ff191690555b6040805161ffff841681526001600160a01b03831660208201527f543c07f3f8ff9852dd72fe83bc9f1462fd99575d6a23f6b3f523eab3654b03b191015b60405180910390a15b610b2260018055565b61156d612656565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166115b35760405162461bcd60e51b81526004016109c39061386e565b7f000000000000000000000000000000000000000000000000000000000000000183036115f25760405162461bcd60e51b81526004016109c390613716565b6000838152606660205260409020546201000090046001600160a01b0316806116565760405162461bcd60e51b8152602060048201526016602482015275109c9a5919d94e881c1bdbdb081b9bdd08199bdd5b9960521b60448201526064016109c3565b61166b6001600160a01b038216333086612a4f565b6000848152606660205260408120600281015460019091015461168f908690613693565b111580156116bd5750600085815260656020908152604080832061ffff8a1684529091529020600101548411155b156116e55760006116d187878787346126af565b90506116dd8134613617565b9150506118d5565b604051632f08b92f60e21b815261ffff871660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063bc22e4bc90602401602060405180830381865afa158015611750573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177491906138a5565b9050803410156117c65760405162461bcd60e51b815260206004820152601860248201527f4272696467653a20496e73756666696369656e7420666565000000000000000060448201526064016109c3565b6117fa6001600160a01b0384167f000000000000000000000000000000000000000000000000000000000000000087612d3b565b60405163f6ea14a760e01b815261ffff881660048201526001600160a01b0384811660248301526044820187905285811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063f6ea14a79083906084016000604051808303818588803b15801561187757600080fd5b505af115801561188b573d6000803e3d6000fd5b506118c7935050506001600160a01b03851690507f00000000000000000000000000000000000000000000000000000000000000006000612d3b565b6118d18134613617565b9150505b80156118e5576118e53382612b6e565b5050610e2d60018055565b6033546001600160a01b0316331461191a5760405162461bcd60e51b81526004016109c390613773565b611922612656565b61192c8484612e50565b600084815260656020908152604080832061ffff8716808552908352928190208054610100600160c81b0319166101006001600160801b0388160267ffffffffffffffff60881b191617600160881b67ffffffffffffffff871602179055805185815291820184905286917f69a58b4f1bc0b96ad7ed7c6519275c08221919b7a912310afb48f9f46c15bc10910160405180910390a3610e2d60018055565b6033546001600160a01b031633146119f55760405162461bcd60e51b81526004016109c390613773565b6119fd612656565b610a898261297a565b6033546001600160a01b03163314611a305760405162461bcd60e51b81526004016109c390613773565b611a38612656565b611a418261297a565b611a4b82826129d8565b600082815260666020526040902060010154811115611a6957600080fd5b7f00000000000000000000000000000000000000000000000000000000000000018203611a9f57611a9a3382612b6e565b611ac8565b600082815260666020526040902054611ac8906201000090046001600160a01b03163383612c87565b60008281526066602052604081206001018054839290611ae9908490613617565b909155505060405181815282907f9101fb4cb96b608de64eae79af26fc5fbe69904c5e3b6108204eefd9212f477090602001610b11565b6000611b2c8484612e50565b6000611b39858585610ea9565b60405163103dd74560e11b815261ffff861660048201529091506000906001600160a01b037f000000000000000000000000b20f0105f3598652a3be569132f7b3f341106ddc169063207bae8a90602401602060405180830381865afa158015611ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcb91906138a5565b90506112558183613693565b60408051608081018252600080825260208201819052918101829052606081019190915250600082815260656020908152604080832061ffff851684528252918290208251608081018452815460ff81161515825261010081046001600160801b031693820193909352600160881b90920467ffffffffffffffff169282019290925260019091015460608201525b92915050565b611c74612656565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611cba5760405162461bcd60e51b81526004016109c39061386e565b7f000000000000000000000000000000000000000000000000000000000000000160009081526066602052604081206002810154600190910154611cff908590613693565b11158015611d4e57507f0000000000000000000000000000000000000000000000000000000000000001600090815260656020908152604080832061ffff881684529091529020600101548311155b15611dc55782341015611d735760405162461bcd60e51b81526004016109c3906135ca565b6000611da6857f000000000000000000000000000000000000000000000000000000000000000186866109fd8234613617565b905080611db38534613617565b611dbd9190613617565b915050611f3c565b604051632f08b92f60e21b815261ffff851660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063bc22e4bc90602401602060405180830381865afa158015611e30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5491906138a5565b9050611e608185613693565b341015611e7f5760405162461bcd60e51b81526004016109c3906135ca565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166314d9e096611eb88387613693565b6040516001600160e01b031960e084901b16815261ffff89166004820152602481018890526001600160a01b03871660448201526064016000604051808303818588803b158015611f0857600080fd5b505af1158015611f1c573d6000803e3d6000fd5b5050505050808434611f2e9190613617565b611f389190613617565b9150505b8015610a0257610a023382612b6e565b6033546001600160a01b03163314611f765760405162461bcd60e51b81526004016109c390613773565b611f7e612656565b611f888383612e50565b600083815260656020908152604080832061ffff8616808552908352928190206001018490555183815285917f09cf37f97f4dae874e7cb6b93f49e96cdbe942556630d0c1c446f9de9b5682f3910160405180910390a3610a0c60018055565b6033546001600160a01b031633146120125760405162461bcd60e51b81526004016109c390613773565b61201a612656565b6120238361297a565b600083815260656020908152604080832061ffff8616845290915290205481151560ff9091161515036120a95760405162461bcd60e51b815260206004820152602860248201527f506f6f6c3a2064737420636861696e20616c726561647920656e61626c65642f604482015267191a5cd8589b195960c21b60648201526084016109c3565b600083815260656020908152604080832061ffff86168085529252808320805460ff19168515159081179091559051909286917f188e2234f6d184edf99d8c78e1fa948bb86c9ba285dc3059bdbe5704e48181aa9190a4610a0c60018055565b6033546001600160a01b031633146121335760405162461bcd60e51b81526004016109c390613773565b61213b612656565b6000612145611107565b90506121513382612b6e565b60408051338152602081018390527f0bd19e112d63748ab3d987993abf5208a9a80e2a5615aebf45188a1d1cc59be5910160405180910390a15061219460018055565b565b61219e612656565b7f00000000000000000000000000000000000000000000000000000000000000016121c88161297a565b600081815260666020526040902060020154600019146121fa5760405162461bcd60e51b81526004016109c39061362a565b61220481346129d8565b60008181526066602052604081206001018054349290612225908490613693565b909155505060405134815281907fcb1652de9aeec38545fc281847b3dbfc89aab56dfa907b1ab68466f602c36fb49060200160405180910390a25061219460018055565b6035546001600160a01b031633146122935760405162461bcd60e51b81526004016109c39061382b565b61229b612656565b60985460ff166122ed5760405162461bcd60e51b815260206004820152601960248201527f4272696467653a206e6f2070656e64696e67206272696467650000000000000060448201526064016109c3565b60985461ffff8381166101009092041614801561231e57506098546001600160a01b03828116630100000090920416145b61237e5760405162461bcd60e51b815260206004820152602b60248201527f4272696467653a20647374436861696e4964206f722062726964676520646f6560448201526a0e640dcdee840dac2e8c6d60ab1b60648201526084016109c3565b61ffff821660008181526097602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091556098805460ff191690558251938452908301527f543c07f3f8ff9852dd72fe83bc9f1462fd99575d6a23f6b3f523eab3654b03b19101611553565b6033546001600160a01b031633146124165760405162461bcd60e51b81526004016109c390613773565b61241e612656565b7f00000000000000000000000000000000000000000000000000000000000000016121fa8161297a565b6034546001600160a01b031633146124725760405162461bcd60e51b81526004016109c3906137e9565b61247a612656565b60008381526066602052604090205460ff16156124d95760405162461bcd60e51b815260206004820152601a60248201527f506f6f6c3a20706f6f6c20616c7265616479206372656174656400000000000060448201526064016109c3565b7f0000000000000000000000000000000000000000000000000000000000000001830361257a576001600160a01b038216156125755760405162461bcd60e51b815260206004820152603560248201527f506f6f6c3a206e617469766520746f6b656e20706f6f6c2073686f756c64206e6044820152746f74206861766520746f6b656e206164647265737360581b60648201526084016109c3565b6125df565b6001600160a01b0382166125df5760405162461bcd60e51b815260206004820152602660248201527f506f6f6c3a20746f6b656e20616464726573732073686f756c64206e6f74206260448201526565207a65726f60d01b60648201526084016109c3565b60008381526066602052604090208054600161ffff1990911661010060ff85160217811762010000600160b01b031916620100006001600160a01b038616021782556000196002909201919091558055505050565b600081815260666020526040812054611c6690610100900460ff16600a6139a2565b6002600154036126a85760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109c3565b6002600155565b61ffff85166000908152609760205260408120546001600160a01b0316806127235760405162461bcd60e51b815260206004820152602160248201527f4272696467653a20647374436861696e496420646f6573206e6f7420657869736044820152601d60fa1b60648201526084016109c3565b6000612730878988610ea9565b60405163103dd74560e11b815261ffff8a1660048201529091506000906001600160a01b037f000000000000000000000000b20f0105f3598652a3be569132f7b3f341106ddc169063207bae8a90602401602060405180830381865afa15801561279e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c291906138a5565b90506127ce8183613693565b85101561281d5760405162461bcd60e51b815260206004820152601860248201527f4272696467653a20496e73756666696369656e7420466565000000000000000060448201526064016109c3565b600061282a898b8a612ed8565b60408051602081018c90529081018290526001600160a01b0389166060820152909150600090608001604051602081830303815290604052905060007f000000000000000000000000b20f0105f3598652a3be569132f7b3f341106ddc6001600160a01b031663b1d995dd858e89866040518563ffffffff1660e01b81526004016128b793929190613a01565b60206040518083038185885af11580156128d5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128fa9190613a38565b604080513381526001600160a01b038c1660208201529081018590529091508b9061ffff8e169067ffffffffffffffff8416907fe0442d4e58b97ff2055e08df9305389520a00ac06c83a83131ef3d0e1572068c9060600160405180910390a46129648486613693565b9c9b505050505050505050505050565b60018055565b60008181526066602052604090205460ff16610a435760405162461bcd60e51b815260206004820152601960248201527f506f6f6c3a20706f6f6c204944206e6f7420656e61626c65640000000000000060448201526064016109c3565b6129e182612634565b6129eb9082613a55565b15610b225760405162461bcd60e51b815260206004820152602e60248201527f506f6f6c3a20616d6f756e74206973206e6f742061206d756c7469706c65206f60448201526d6620636f6e76657274207261746560901b60648201526084016109c3565b6040516001600160a01b0380851660248301528316604482015260648101829052610e2d9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613042565b6000612ac68484612e50565b6000612ad185612634565b612adb90846137a8565b600086815260666020526040902060010154909150811115612b3f5760405162461bcd60e51b815260206004820152601860248201527f506f6f6c3a204c69717569646974792073686f7274616765000000000000000060448201526064016109c3565b60008581526066602052604081206001018054839290612b60908490613617565b909155509095945050505050565b80471015612bbe5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016109c3565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612c0b576040519150601f19603f3d011682016040523d82523d6000602084013e612c10565b606091505b5050905080610a0c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016109c3565b6040516001600160a01b038316602482015260448101829052610a0c90849063a9059cbb60e01b90606401612a83565b600054610100900460ff16612cde5760405162461bcd60e51b81526004016109c390613a69565b612194613117565b600054610100900460ff16612d0d5760405162461bcd60e51b81526004016109c390613a69565b60338054336001600160a01b0319918216811790925560348054821683179055603580549091169091179055565b801580612db55750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015612d8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db391906138a5565b155b612e205760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b60648201526084016109c3565b6040516001600160a01b038316602482015260448101829052610a0c90849063095ea7b360e01b90606401612a83565b612e598261297a565b600082815260656020908152604080832061ffff8516845290915290205460ff16610b225760405162461bcd60e51b815260206004820152602960248201527f506f6f6c3a20706f6f6c204944206f722064737420636861696e204944206e6f6044820152681d08195b98589b195960ba1b60648201526084016109c3565b6000612ee48484612e50565b612eee84836129d8565b60008481526066602052604090206002810154600190910154612f12908490613693565b1115612f795760405162461bcd60e51b815260206004820152603060248201527f506f6f6c3a20496e73756666696369656e74206c6971756964697479206f6e2060448201526f3a3432903a30b933b2ba1031b430b4b760811b60648201526084016109c3565b600084815260656020908152604080832061ffff871684529091529020600101548211156130085760405162461bcd60e51b815260206004820152603660248201527f506f6f6c3a20457863656564696e6720746865206d6178696d756d206c696d696044820152753a1037b310309039b4b733b632903a3930b739b332b960511b60648201526084016109c3565b60008481526066602052604081206001018054849290613029908490613693565b90915550613038905084612634565b610f0b90836137d5565b6000613097826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661313e9092919063ffffffff16565b90508051600014806130b85750808060200190518101906130b89190613ab4565b610a0c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109c3565b600054610100900460ff166129745760405162461bcd60e51b81526004016109c390613a69565b6060610f0b848460008585600080866001600160a01b031685876040516131659190613ad1565b60006040518083038185875af1925050503d80600081146131a2576040519150601f19603f3d011682016040523d82523d6000602084013e6131a7565b606091505b50915091506131b8878383876131c3565b979650505050505050565b6060831561323257825160000361322b576001600160a01b0385163b61322b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109c3565b5081610f0b565b610f0b83838151156132475781518083602001fd5b8060405162461bcd60e51b81526004016109c39190613aed565b803561ffff8116811461327357600080fd5b919050565b6001600160a01b0381168114610a4357600080fd5b6000806000606084860312156132a257600080fd5b6132ab84613261565b92506020840135915060408401356132c281613278565b809150509250925092565b6000602082840312156132df57600080fd5b5035919050565b600080604083850312156132f957600080fd5b50508035926020909101359150565b67ffffffffffffffff81168114610a4357600080fd5b60008060008060006080868803121561333657600080fd5b61333f86613261565b9450602086013561334f81613278565b9350604086013561335f81613308565b9250606086013567ffffffffffffffff8082111561337c57600080fd5b818801915088601f83011261339057600080fd5b81358181111561339f57600080fd5b8960208285010111156133b157600080fd5b9699959850939650602001949392505050565b600080600080608085870312156133da57600080fd5b6133e385613261565b93506020850135925060408501359150606085013561340181613278565b939692955090935050565b60006020828403121561341e57600080fd5b813561342981613278565b9392505050565b60008060006060848603121561344557600080fd5b8335925061345560208501613261565b9150604084013590509250925092565b60008060006060848603121561347a57600080fd5b505081359360208301359350604090920135919050565b6000602082840312156134a357600080fd5b61342982613261565b600080604083850312156134bf57600080fd5b6134c883613261565b915060208301356134d881613278565b809150509250929050565b600080600080608085870312156134f957600080fd5b8435935061350960208601613261565b93969395505050506040820135916060013590565b6000806040838503121561353157600080fd5b8235915061354160208401613261565b90509250929050565b8015158114610a4357600080fd5b60008060006060848603121561356d57600080fd5b8335925061357d60208501613261565b915060408401356132c28161354a565b6000806000606084860312156135a257600080fd5b8335925060208401356135b481613278565b9150604084013560ff811681146132c257600080fd5b60208082526018908201527f4272696467653a20496e73756666696369656e74204554480000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115611c6657611c66613601565b60208082526043908201527f506f6f6c3a206164644c69717569646974795075626c6963206f6e6c7920776f60408201527f726b207768656e206d61784c6971756964697479206973206e6f74206c696d696060820152621d195960ea1b608082015260a00190565b80820180821115611c6657611c66613601565b6000806000606084860312156136bb57600080fd5b833592506020840135915060408401356132c281613278565b60208082526022908201527f41646d696e3a2063616c6c6572206973206e6f7420746865206e6577206f776e60408201526132b960f11b606082015260800190565b60208082526037908201527f4272696467653a2043616e2774207472616e7366657220746f6b656e2075736960408201527f6e67206e617469766520746f6b656e20706f6f6c204944000000000000000000606082015260800190565b6020808252818101527f41646d696e3a2063616c6c6572206973206e6f7420706f6f6c4d616e61676572604082015260600190565b8082028115828204841417611c6657611c66613601565b634e487b7160e01b600052601260045260246000fd5b6000826137e4576137e46137bf565b500490565b60208082526022908201527f41646d696e3a2063616c6c6572206973206e6f74206272696467654d616e616760408201526132b960f11b606082015260800190565b60208082526023908201527f41646d696e3a2063616c6c6572206973206e6f742062726964676552657669656040820152623bb2b960e91b606082015260800190565b6020808252601e908201527f4272696467653a206c31427269646765206e6f7420617661696c61626c650000604082015260600190565b6000602082840312156138b757600080fd5b5051919050565b600181815b808511156138f95781600019048211156138df576138df613601565b808516156138ec57918102915b93841c93908002906138c3565b509250929050565b60008261391057506001611c66565b8161391d57506000611c66565b8160018114613933576002811461393d57613959565b6001915050611c66565b60ff84111561394e5761394e613601565b50506001821b611c66565b5060208310610133831016604e8410600b841016171561397c575081810a611c66565b61398683836138be565b806000190482111561399a5761399a613601565b029392505050565b600061342960ff841683613901565b60005b838110156139cc5781810151838201526020016139b4565b50506000910152565b600081518084526139ed8160208601602086016139b1565b601f01601f19169290920160200192915050565b61ffff841681526001600160a01b0383166020820152606060408201819052600090613a2f908301846139d5565b95945050505050565b600060208284031215613a4a57600080fd5b815161342981613308565b600082613a6457613a646137bf565b500690565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600060208284031215613ac657600080fd5b81516134298161354a565b60008251613ae38184602087016139b1565b9190910192915050565b60208152600061342960208301846139d556fea264697066735822122055778d3e9990eb0e943db2a6514cb0a6f3cab95c6dbf8e545e19eda36367338164736f6c634300081200330605581e038f772282adf24307a73dd0d61835bf652dd5a1b34251475553a06301600701193b3602192c8f03af72b467407b1213edaf7e0cc12f803075b023810df8bcb6f25e90502d33cb2403f28252bd949736ee92775db4fd2dc1a254a35b1eefd0bd143a7a6ea8b1b7e3e90354e7c0f90c10b5550fd7b8d19f6e124a8ec69de8fc1be8a6f09b6aa7d75c521a03e566ca4d3dad2938a86e0ad71216b80c880a4203d3723c227afd597cda6059c603640e353a015b5f2c88603257ac2f85a46ed4a0df6e4bbefa917b515770aed5e103d6d7e1b2fbd6141858c16c332b99b304e1d7d74e9a69e7b42b4ed30ed37e87a503444e4e1d5b6008096252e7c54711e9fdabab3d9ec3c8761e05d6156fe577d6eb039d39c6620c6e08863d0f1fa970b62654cadf042bd18db8655db11c5fc68f23160219ffff03ec25b66661f525a8c42a8718c126045f965372d2e7a91a072d2a0100e6c6df0b0381d72413b034f0b76dd81d74832a6c625e658285bbc71ed71b1d6df3f1818fe003c161f2d54e1f00c968556cfeaab03c77f101b6c780f631682411d505d886ffa503633d32bcdaf1a05e1b545062393d7c06336a1fd456ae9b5c8161fa74aa76af75032589e76b3302e3ee5c1dca7858c31b6df0000a85a8a4ccf841397cb57cdc7415039ae231fa87682ddc1cde9c5ef69f80af0d4a4ff0fb928353321d1fcd2593dd970322603708742e2c28de5721adfe1041d1ca31c408272af558373b15f408fcad6203b74f7f17a52f20079ca1a1046e02ae0aa0544cda71f1a3704abab06a925af7ed03374790c7726bdce0bdbce4f3b95003a0a74c6e9eb4cbb350aeeaebd3b65a8df803b164f7f7b5913b443776c5bcf8abfc3be73132e677b42c874d3e3d86249a5ad7033af900bba82099982f34f039d96d261f2d07fed4434bf859e11cf0b5c1d30a3f030fcbe2c89e9df20637b2b7989165d00ff480a16b4ea32eb7886f620492650851037b4804ade045479f0aad3137fd29f10feb6f6f55917d30ac744c99aa5e7c0a0b0219ffff03251874c5a09658266f76211cf9904bc46eb23bc929811d7e8524f0e82dab94c50308f257511e2b9826338bd85f17f16a07430288785cb50e106f6133ac82dc3b6b03ffe80ae73d80991e026c87cc809f482bd5ff2febc4aa326149a45f7b0bb1ef7d03dbae204858e5822af4b226d8a5c66048e6057bc3abb3107db9c697274cfecaaf03b5be1e36cd03a582e52555d405e2a6558a8782d073e3f72b285a04b1156d2f6d03089ad6a16e1339185e01eadf7cbc53f28249b02d29b9ce61931ad792da13f5400351ae1f22625d6d83cc536b85649b631dcbddf5c5d1f712d188c9cfc8da026114032d443522a6bf40eca51ba1db57dfbb361e911e65ead96b7c412592f9499b773c03de46a9f6226c75a67a65ba71f4cba93b8ad604495ff2dee648194b3a71165de30306950424dea346af7e7e7cc685e2081969fc689d68a2020186edd4d400b0309f037407a70f40b5c8c804c9e8f4d1a4fdbcab8a1bbb00122f7803070e2a5c0dab2903734e8dbd67731e770533cf86059481e1fe10064abfed7b4da6d1d20334d4dd2003bded69664f20a3c8d620fb42eaaa3e1cbbba9fe0788ec4361ddbcbed4b026c7f03eeeb7ab27751efde4c722b6181e7cb65e7fdb6eff742b8d4572b83828b08192d033ec56de7a8250e00bdec5b94a2f0cb311f019df5a40ed1cda7d2e6c418aeb5bf05581e03cd85dae66dae15a4f3f64111988e70f310f4e396d611ac3b973b3a35d00c18184703e8f587fa2d9805581e0304dd29da83b4274ce806d8ba0fcd7660618f4c0a20c6e8a724786917500c01462bbf2769e80005581e0345f86dcb15fcc5f8a5e2aacaae2b28e8f74b7cbb9f73afe30df76901300c024671152da98fb80353384402abb71b9f5ae7cb3dff526d408983433fde7e4e56852a1905e6a5dec405581e031a37163756bb4dc8570a825b7f19ae4e02596fb977f02216ec9345a1c0040105581e0357fec90537977ac9adbf44ab7f4074829cf5b387a0f0dca08fdf3807b00c014605774fea440005581e038089f7b74655edca0f447ac84b0954be56dd84de6e3b32c8766303cc60040105581e031aaaeb099c949073f5f0eb4e5615f578d9ff719f5cffc493296bced670084703e871b540c00005581d02230b202e02623b79e8caa4582591f5a862e9fde6172ab2da8348a3820c024701fc3c46e7a85805581d029a4ec3c37dbb403f47afb64f637d82e32026fd2f5342ca3f078e6ab70c18774842cb2470144fe926021203a3f849b66a64d0697bb0c761b6fe997e7236a76b3d809109a50840db7793abe102196f4703822040ef063c91617c6082a57bf81ab932bfdee69586608473cac1a8f023d762039c4ca4f6de6b0378a51ca80f4387b80676275bdda6480683b022dcc7c53512020361ec36e0103472d45edb33ab48a9bbaacea4919ae3a166f4ca85bbee943e0ce8037fab0f517cb88643416e73dc11434e1a87fb00a620aa78b405dd48ce805d9f0c03824400147fe89db57b569bb739492db12e0eafbd743915f989e716374ea1100103586f45bbcbe396522bbbf6e5d46188a27acff4e81ff873b4acc9d202b9d626c6033c17cfecb498005b7a281de6306220aba1576cc35c8e78b4056b8f1f09f1b40403f256f4b0453fa349b77243d696e2802596ed370dbe896e3dfc3d587698a839c303a1fc3ad574c86aa2520c9924db9fec2d7d4f49119c1b21583f229acae9945cfb036bb30c37efa0bdbabbf6503f1ed1265d57cfef4cfae2ead31138369834da44f6033a71abf2dcb3b4f7cce867c63fe5133c9393eaa3ba457a7fc57ee64dd5abc5df0347e7593d8948705612e52c9dd8aef52d4822c6785ce8520eba62bc6b08a2b34503296ebc34f4d577913396ff85deed01cc5aaa1861c273dcd2905c7cf18920189003146c62c906af2b9edb0d999ed467f44dbe93ffa542b6d11841fb89a3fa2116b80219ffff030ee4c1f1c4597cf947b8825c8b26600078c3be52af1cfeb6c7a9e5e095ea054e0219ffff0353918aede00c9fddec1771dc1e172098d88ce0216adcc3391821cee1ca5bf3e4033d4a4a3e0c438c7ba817aea6210f50455ceae12ced0456995a6fb7eecb6a9141034adb767130d5c396756f3d55d64bd051a1f77a089300e43f4bd3e2e12b4d330b035870d6c4947140897faff5d8ba5410c2a62e948ad99c3e2d2eb69b63c2c7cc6f03158c5e9e8bf9d79ab041cb95f79a15ebe3e69a20debe3623a0957e4f35320f8603935a765a2169ebacc19bb51bb0e9ff37ef50c2f40ac4767b9476246962877f4d0346d057bf49b76e6346c41d96556c44417c3ec98df1ef9f4540bf372d8f5a4440036e7c737266cc0dfc5f91c19324b38134277d4e699f30a5ba6419e9a4be283e610219ffff03c9e12aa4781da4e60b40b8476ba33ec5b36c1381ad09fe29f7fbd606012dfd5a0300972ad14c5a501e29c645647bd73160e6549e30feb4ce01664440375c9eebd30219ffff031084dc5740a861ab9a49784bcc02d3917940928fa99fe409a1f261f89a21830503e22dbc8d589453579e8276c7bd1b70d5a5916a5b77d480d75f9e8ffb117549ff0353b3140718dc0cce44a03cae17aa276b2849674bb2b32bbc889e0e9d54934449033d35fa727b2ec9df007fd79c4595cfe0b3c83dee44f1041e81d83433a2282c4d0354814216849a0e71974758d7b5d8d6c3baebfc3d21abc17e03ef571c674a93a9034456976cb7bb0ba304619024eeaa2e5eea10f5905ae4b00c5ae557a3d625dc3503f24c1fb816804f8871d3670b83b7d6fd59187fc3635306674fe472cdfa3e1d63031f2a4b17de34c3f73585ac017ca8827c88b161f273218c108276db32ccaf7695030ef642bbdf4bb70baa0ac90fe96a1857b2904f695eaeb1e464c5198ec0c1d80f03000c0487df5da49e6e64f955709991f23cc18784542b3431c925cc3e4dd7c78b034bb82b2e0a4aabbc63e049b0acfa646ea4b70d59bcbfbad5e33fd385d86b4af4033c99910c015190ff26e99cbd207584369d6674b6ec2595d2886d0eab4bcbb913033b92a9392adfefaa133973a2c64e5ad74c77e6a9b4590575fe59def262aef61503e0ae19fb19e78f48b78bae6e753249b8213ff20b3f8dcc301fc1d99da3e5bc87039a2a53698232740bc384699381f35e560ff4192afebcca616c222cabaeec7b4d03d55b0f253617e6d8e33e7ddb3e40159b4955bf506bfca5f6f7ec3fe734ad40a203bc334860414877da54af1bb49f09f77d170e9377471357ab080ffd1f435496b0031184456a27921ea95cfb8ec08e8b203be54d0770dd8684fd80de2de2622a254003bea6fbaf4d29d6d7ed7d92ba0de391116989d648ab4ada8971604af57bb402210355f28d4cfc6cc6a3cabcf32dab152bd69a9cbebca4ea73ca982c70304b54c28e03f0117670963b201cdb614ad3849d934b32b98df6cc3abcdd97b0b7fe84348c370375220ea8fafe6420ffd572a9f5613c6d02bf28949abd081843ba5555abee90930332c3849c8809978e0fcf6c7e90721397df9694e5ee389ff8d2d0ab4e366267ed035c830dba91474921d90659b2d5b1b51e48d11e6476406a8f5d0f8c6cd8e48f9803444b5333162933dd7f7921d853f89757d603658b1bc0031adf040ad8f647c08703c2034a4d0f36db070f2de6ef1d9b995eddd16bf32ad69c72a7927a0ec23148a00388ac62c4f3cc68c016a4b7f3f570fde97f71294cebe88446a2d894f243f9575703b22bbd269e283776ac704b9e987f3b554255a721ecf2c340e6ca10c8736f4f6203f1ca78dfecd5b3ecf47bcc249370a0e56974e1351044e01e1f6d0c967b38784903d2cf43286d6d9ac545a3fc049d8bbd912b5e0208c34a9ce0975cf038349a036d05581e03b97606f67594a269540fe86054c261175c772c19087e1fc665995ae97008461b48eb57e00005581e03fcce60b83369f57989618aceb2ce2353242a8fbb8147d49d491b79c8200c0a46010e8c98e40005581e03a9b335805742e001def3aa45e64387f2a31f3f7c12f932760425b34b000c02470395e853bd540003d475a5b50fd5068a32a5199bf3d5b6ccc92b53154aec53a00f15c8485de10b24036029ae493970d839df1c07de4bf66356806c5dd29b9a0eef770de5f8e57c8daa05581e03f5ad816563d881c9c07a65e0a95be43258accf45ec3a0c8ac6240849e00c0447238fa5733928b805581e038ab0a45775a1f9ea738c902ad8817b0c773ffc7ea10cf9397b32b8d200040103905982d3bc98b3ad75d5ca7a92446cc8923fae39a2352245000f9d3e9dc0f3ee03bbd13d463ce2111713bb0d6ad117b0ba991bc32336d501e872703c4ad6bc3c9005581e0326350508cd2b5a49d9ddace0cc45d9e9c140b87951d62910439ac40bc007011bffffffffffffffff05581d02c9d86689b4f3e322e6d51f8649a80725dd333b0c5c5d3c700789896a0c04477362d43afd21b004590b4260806040523661001357610011610017565b005b6100115b61001f6102a1565b73ffffffffffffffffffffffffffffffffffffffff1633036102975760607fffffffff00000000000000000000000000000000000000000000000000000000600035167fc9a6301a000000000000000000000000000000000000000000000000000000008101610098576100916102e1565b915061028f565b7fb0e10d7a000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016100e957610091610338565b7f70d7c690000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160161013a5761009161037e565b7f07ae5bc0000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160161018b576100916103af565b7fa39f25e5000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016101dc576100916103fc565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b815160208301f35b61029f610410565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b60606102eb610420565b60006102fa36600481846108d7565b810190610307919061092a565b90506103248160405180602001604052806000815250600061042b565b505060408051602081019091526000815290565b606060008061034a36600481846108d7565b8101906103579190610974565b915091506103678282600161042b565b604051806020016040528060008152509250505090565b6060610388610420565b600061039736600481846108d7565b8101906103a4919061092a565b905061032481610457565b60606103b9610420565b60006103c36102a1565b6040805173ffffffffffffffffffffffffffffffffffffffff831660208201529192500160405160208183030381529060405291505090565b6060610406610420565b60006103c36104bb565b61029f61041b6104bb565b6104ca565b341561029f57600080fd5b610434836104ee565b6000825111806104415750805b1561045257610450838361053b565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104806102a1565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16104b881610567565b50565b60006104c5610673565b905090565b3660008037600080366000845af43d6000803e8080156104e9573d6000f35b3d6000fd5b6104f78161069b565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606105608383604051806060016040528060278152602001610ae660279139610766565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811661060a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610286565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102c5565b73ffffffffffffffffffffffffffffffffffffffff81163b61073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610286565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61062d565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516107909190610a78565b600060405180830381855af49150503d80600081146107cb576040519150601f19603f3d011682016040523d82523d6000602084013e6107d0565b606091505b50915091506107e1868383876107eb565b9695505050505050565b6060831561088157825160000361087a5773ffffffffffffffffffffffffffffffffffffffff85163b61087a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610286565b508161088b565b61088b8383610893565b949350505050565b8151156108a35781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102869190610a94565b600080858511156108e757600080fd5b838611156108f457600080fd5b5050820193919092039150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461092557600080fd5b919050565b60006020828403121561093c57600080fd5b61056082610901565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561098757600080fd5b61099083610901565b9150602083013567ffffffffffffffff808211156109ad57600080fd5b818501915085601f8301126109c157600080fd5b8135818111156109d3576109d3610945565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610a1957610a19610945565b81604052828152886020848701011115610a3257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610a6f578181015183820152602001610a57565b50506000910152565b60008251610a8a818460208701610a54565b9190910192915050565b6020815260008251806020840152610ab3816040850160208701610a54565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200b5100b6056e5ffc17e66039dcd723596f9fe3a99358830e95788eba2919cc0364736f6c63430008140033036a53e1f954e944949ce072d08f2b863f4af8b35f23fb2702bbb6adfcf8d2802503414efbccb83009971dd902e0680fd285d2cfb50aa9b9ec52d328e6af8a36290203dfbce560296d04a75fde7d87689aaa707043696d15caf126418bd8c6ebeaffe9033d363c27dbb1570281bb3fad2c8c836983ce81f679f1423f536d8ebdb390bcc203071946abff11332135527c456e4814da3a962541849db93b80e815e83fb0db0203dadc92c0c1c7766a2bc95c4ef4ed58ef79e7ba6fb9e5f3830e05b4690d3e83c903e5fde9157aeb01d9f9f508a9676719d8fb2da95688885d53d82d120eca7caed1035432c25ff183ae8baf9e26609ac426af276651c70591c885b2de313854cb6fbc0325f568831fb9c78c3dc6b55e77b157eb23879281c0ef69cd4b921fd0f54d1ca803034ece7e97d1275629fbca905711a7e6db5badb233c08efd067f06492fc5ca520370e856fef1511f3b0bce3d946ddedda17583f6b0c5697871345cd9e6521d8cea039b010facd48e38155c4d3465d9104769dda2d80ac6f60282c1e420e4f21d873d005820036360640725eafff2354af4e45fb4f4ef7247d38ac2d97e611603ccea69e630410103fba45f1b0771b9e404f6953a65072cf06f6178fec6316ae424dc841dfc3b32ae0343b34093ddcf55a948baef7415e2f6df4e0a38020027d0db7ff481afc78ef65703c06a21689c7cb46225ca521c07921f8f25da380e2b7ed998f3d8fc15b6b404a8034ba3cabc47b22bf10604aab326f8dacd05d084c5378a9c4161c535d6f2be27c8030be0405e1e85bf3f7f98384ac4de5c6ec445c222b523d7b8d5b1591bedcf07bc034e006697cd52d8fe73bf45681123cbf314a8e39aceeae7ca8d1ef91b583ab9cd00581f022674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee14a678c4f373959048000000218c0037fcf3bc5824f199258319ef65b81f9095ab414091c0cd2d496d800d7c0107f5703d9e24d35ca43c584d8b2f470dd9a0f6f371e125a111b08e1157a152ba83d77870219f7ff03ac7e092e351e6816214817c9480fb65478a6056e236ca1eab0aead0b8e75d02503199fd39d847512c8ea23839d6370346b032335b4c21fd1de9a2dea6f16708ba30377576e180faf01ee44c9ba4bbdf9bc84e2d48948d530b53bcb6c6dd02064660603485cd2d7c7fba0438cc53ed8e24f4d73e178c94e3712264841d536b42ee3251b032fc1aeac3e27a2045f9d6a7426fae61cbfd8781e42dcd4d0d738270ce9ce8a8f00581f03a600029e854e9b03b010a118ddabadc743ccafbcbd1450a9a6710c53eca0410100581f03230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe04852da00b1e0efc0fd02189000581f021ee9df6dacb1652de7d28b1da5b44b4ca450e45fd7dc5347a31ac4ffb92241010219120000582003402b7e83a402350b964302cec96e94bb8ee4dcc8dfea835225b3c0ab92d280410103040272b1db46c2bc9ea039308648855ae9527b5365616293b838dc47a5bbaaad037c327683bab617eb80999e7efa1cad5763e26726f6e623152cd6909579032130030f573d56aecf3757537c10fa7798b72629a9e399486c14afc8660c51e069b1d603a5716238742bbdd67877a1289a0e127b56af2e1949b1c0483fec749b0cfdfeff037667ece4d83f21db6a6331d998392eeb2bc7e02fc1383d8e3263a634ae1be0160359f5913f7322506062ad7599900965ac3c850aff82752aaf51e5f2de5cee4d710313b60ed7459d59ef4a29c46182c8a048c0f0b8eff63f996060a9247cfe8bd73403565b0c40393faddc94e2b12886cec360344e5f87462efa9fceb44237a6def0970394de436999f5aead37fd858f002f7c3cf071eeeff3a97dccbac53c9d74dad608005820032eb30a44afb69bc497fff6b66e8f78aa12737dae50edfb093373922775e60041010376176593ff373f40659176d587556936b736937f17fbfc0625b56f2d4cc279d300582003d9eab42eb0d1e2d86c0ca2b3156961e24b50d7aeeb94a41f27a7b468a16dc0410103106eab0e2073dacbb616ebc9a51fd02077792faed91e26475c012801578a66400219ffff032dfda5a58ce805068b87562c296190300bf9f07afff4f7b77d454d02a2dc185b03bdf9f1d1851c5f7ca727d5ea59273d1e21fbcd694abe5ac8dd5e2299194e46b703cf8a71da3426383a1ac7a83bbd87da13ae645cc593a4af3851b94219a8b17b7a0369e523ee552d381ad227628d7fbf8ed4276ce885cfb0550384e6a19c02503b0c031a226e73e4fcf5856db8a6ac614bbfeeca24cc5d94ac5730376b9a5cf3f7a642034cfad8d3c2e7d14875b8707b78fe2c8c69db51ba0125d999e39efa9ceee3035203117a616e6d3721bd38aeedcdcc89010a54269a270a6ccecc01807392992185aa03ac3ea2e4a9e4cf5ab03a1d9b35e4865364b7c5d28b17f028fd3b8df3fc4938be0219ffff0302057889904a0a1fea6ac7f51ebc99eb89c2fe357ef5f282ee5de7307c73ffa30366427c57f0d07844661f72e9b39c37201f2579b00257382293ad207c3dcc38d1033005a17a62033bea315d9a7a620761d73f20b79b1e82aac9f7f4b3f7702a076b03f10ec67a55041e15f762bd8575b0028a3ae9aef1d11ea9ccb7090f020e57794203ed3c28e62722204700783988fcdf996bc0f95d3cbeabaac415ddb7010ddc19ce03a55aecb0c4e576288aa1f98359f3c2aaf134cfbccee38351813d12b0c4b322fc032b17c279e1526885647ed1f477f8c0f56d4819ae602d2474e2c8b4f76e90b59e03c2312e31b753e336d819aabc2b985b515c21aee12b355ef19d21e2b216b1288203e86603150edb02915a5c5c2530277ca8830e46a2960cf46bddb16ad94eb530f300581f02a8dfd68431e33477056497f09169692a889300592cf3ab57b8297c7b37f9410100581f028de9989bf7441865ebdadbf7382c8838edbf830f5d86a9a51ac773676dd6548735049f496727f824cc0f2b174d826f5c40819200581f028e9a18b8f0ea60ce006b7806d2b8c760c67e96c81e9e47673f7fb1c4480741010219043003054ff1cb077575450fab5ea41e0748d58626a7d4ed8eea37832e666b292f474103ce5ccb86df59c0da1fc375f5758b99b9c72561b535c6afd52504b913d8ea125703fa50abae2eb9fc828d8013575f6de1d0945b86ad6149cfab49a1d9ddd70faf08030165c4c9c9a119776ef9574dd705233869e747d95ae94dc30a2d4a16f7244fe90391f5e78ccba51149050ba38cf5d05d2e40bead5041e84387e8ce9cee049c49de03c2248137732438941b3efb97b4230225f39cf3f70e5a63fc537358be54a86dbe03038f6bc15325ffd9afb9f23a83ed37314cd79a4fca42e70433bf74ef62922d8a0219ffff0386b104ba4a044bfddac39f1e8d1e8a4b2d2501bd18f47dfe139ac2b1a5270c9f038c762aba0b3b053c0dd29125e167d335039512aa53d79e6c4cc43075be33a664037308e8bbce832a6871ac0c155bd96f7ed64f9b7c0edb778eb88258ec444947a70141040334f0e3ae5055690f8c7e2b313260dba3c429f45b61853d51ed04b3d17afa586603ee6b33e05534e058cd01cb543a1761c274f46741f5b80a15f4d1f16b6854e61403954b24e1eaecf64c441f608b4400ddaf4b3c4a3982dc7147fdf4f694021d319303871b1b2c0016b0efc3d910a094567f7ccb4851cded7d1bdf84c1dfcbe5f8a9a803827fac3c348db7823af16d044764853e6d73c4e4c4fb9bae915f299ebaab4efd03873fbf95438d99c49930af66164368a1829e12153e6be8b8b1c235e7bb62f34b03942ae77d56d5c1380b87000f284b4b3c9d269abf7e546a8a193742f3ea7c969403c9b5a799f47e8cfb39da948f269ce0533795491c6a93b6080c699031c9d6421d031401fc9e7caee741c5453fd537b3a2aea37cbbe782f8195096046d70ea494b5203f3d392b56682bcda56985173d83fc455ab6cf9b2be96f6b96c208aac3e16fa3d00581f021e3fb75a4bdd8df4ac22c15f6d783190c2a7f39e249c21ac715e44f715d7410100581f026c5d584b339567d35b12a430f375c972a779a7e0d4ef40210b6837ccbb7f410100581f020bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d48154c26016f1166be7b6c5611aab104122e0f6c2ace20219c00403537afccbcb111e52aa645d1263047791fd7f81bb56e60823e5e0dec4edaebb4c03625c7342e8bd369ef9e8f0d811130f8520f3e214f14b0a078e6b922887d7708d0219ffff0353c7bee198b7f5f8e7c33c05000c76edf0b41c6ef07379e6725fdff24a0a7853030c15ec2ecb7d8fc18d0cf5697485c0794cc9115f990098a314ccd846eb24ff0e03c2e4538cf417c28b19d878d0e0f61f426e8c03c7cc0a7eea2b0a6b7c7925d9ed03b218fe377af03bf8c0c3a33cdd164a689654f2ce200589a61e4c226311b9433a03e29aeb993579f0f0855871c5b54e8ad0c05ed701833d3759ebc0ad4f9509e7a2037b7065264719f7a13feb4096523122c283cfdabe9f7910e79231d6526452d8700308ebaef1329503dd98e1f36132790ea22cd19e8877fbb39f7e7b89bdafc50c2003f74baa66ce2203008297f4b9864e7ae9271aeb28699fad4b07386b16afc8e94f03f5cab6c99d3012dabc4bb54b1a75c82686bebe9b7714cd305d5c332702342f4b037715907703b8a51cacecb86c2d32f52a05c498fe4d285974174b42180b60859903f5594c5561d75a8dccd76840a991bd05d4ce1d060233360906dd970995415007036657504e50160ddd61105a65897a00b89cc1244f09671186ec84663907b0589603f2685e5cb1b8bd1ca0c556272237f567b8abd006087e6fe387b80d9043bebad30219ffff03878a99112ff7df7329506d14e0e1e1be0e998125e992953eae1890b8c462025203ae39136324d4e8c770e9a09095d4388d3499888e4ea625054c153b2ec23661840360f3539b6d4c8178cfbead7fa9948812f80e6d3d42ca8f362afa4fb7e168c53203aac9195d161d64afbfca9015fb6b1f3a898cf2ee061d86ea7fcdbf24d863e1fa03f4a7f29bc4d9b76216e0cad410ef4156ff2bd7cc8bb212a0297ada47c4b053f903adf0e36b63b71e1cd837472a3b0e7415bc6c612c6ed9c53b95f1ecce23e0fb3403a822e7d649c0795e974773023b38be3c0e11b232189c7858f8c42ff8c81b0916037bbcc45d8e0a9657e571cc994254aa209e51f50c097b3866cdbcbf292063948f0356e36d389e8fa0679bcb07e797b77ca07c73c74d1f069c05aeb9a57572c6864e03d0c2d07657e1f5c3dc113ac6d86accdb69f55e7f7190b52708bcf4f62f98c52503db56a3c1d0f09f12a4ba988bbd3ee37b9d7ecb2c2413017954c38756ab4a5132038ca98c7c479d01bf025e4096ee991e2f10f49577fca3043a8ec4f67de94186ef00582003ff11fa346168edf4425d50f56aafdba5155eb6228f5c0d22fff180871230204101033aa8de711eb50e77780d936ab723928fbf53792d52a0a1e5687a1cd9c6d20cfe03f66ba69eba1b246be8d31ff64813d923edc76a5727ae870b8f529792bf6b0490039ba8e62e25d793dda80def484fe23b30ba7831b4a685db6e26386fff2d4dd1d200581f02928c65d42bdb0be8e11fc1873a8b2d65afeed7612d191482fe91e627d948410100581f03eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d054decacc56fc347274d3df2b709602632845611d3900581f0328291d1db1570ba85a5fdc66490c9de206df82e8df389298e8c02c480f804101020900581f02dd8b8c5cf24ca87b127874f6e46cda2b51509aa96131727aed9e218430d1410100581f021d29a66b5df7d542f4e53dbfc0dee739f36e9a9e1461d926dde6eb8fbf56410100581f02352237f186b9dfa4df1b484e0771f6e47272ee15490d8d8a44fb3851fcef410100581f029ac5f84552a3b599641be6d58f8e41b12884c27f015d9e410b33e6e86a8e41010219e04603e2600f5b7e1dd6d77a51479d79ffd4dc3c7edfa2c369bae7a48744151e3e270e005820032d81050adb7f98f7f8ed1173c058178ef1f6c1337a816c732c58015e29e69041010319715be8f6e1c93872c1107138c9fc9911a064181080c7bf110da037962d6d39005820034f60d091c8e6223564674472e3b96f43401b3e32305fbbf0a31f50e58e8c9041010219feff035132c9175150c0762072098e14975fd0f7b8c86f128b5e62f833517fe140212903363f01dd2a070b2e9a8862d00f2c017a4fa3ec75560c2bb0257c70d2923784520326464aec3a292ca7aa75de78ead1a4c81509cefc3317d6af27d08b2665ffccb003d9f06db859a33f5ecce1d6a856bac366f57ce408e934d7c89fd87ce9360f570c03148e7577e82f381f20ac79d890227f27202c882e3663b9d2c4b27ff8b105899003f74cb3a97066527300a9399beef16618d77533711342c125923d03d5c7bed0a003889a1adff6718a8413440acc124e4fae7383969fba5f12befed30ceeed83013203eabcc02a3596b65d6228abdba4e2756d65e8f692d1dda079fed31c97429166f003b21f5c7b81c4656a8b813f77e6eb8e313ecabd7e1cbb2a89129914cc93d98a18035489c7c081b6c17d14cd930caeb4ead073aa74cc8268bad7587d6e19907bc8e30219ffff035df84837d3dafd641ebf4989e3238d8a0e92abb00bba35922400e8479b5d16a70383f616f46723cdf95d62ef239461db6c5643700a928949c89d74ec7d4206097603db6656e67b185f5f9e81a8336a3f1f3b3c77876c227f9673901716812e73145e037901199458939470fd85940e039e4c147234931183cd4dc373b3041d610854e503882d105d1efa92e1ff1aba11a345a77a285bf233801d715fb1ab12a8baff908803e8fb2ce42a62aa7a70ba82d573631ff06a3b767144ef65a018c181d7a642ba7c03bbb632ce498f167ccacb70ca51434eba3d2de7c6493701b97cf1db84d9825e5103e382566925b65660565ad21af532e89355ae05f602fe303f6565c17086630dfc00582003e8a9a31728def91300fa5d930aa1491d584d72999d2e29564eb75545740c1041010368c32e7c677614376480091d241d8b07e82e13b395bb8c278ad8f1ddb7955c2c033ce158b2dbe53b48b30d862aa67616e8e23729c6597d1c7ccfda6742d6084cd3032f82345f20e7a9ef04850af02e36f806a7ad649fad6ca1caf0922cccb80ef6c500581f022aac6c9add880d00fa61dd54043166910dec690e33f24416279a0976d500410100581f02306b5af1453266bb2ad607191cd9e0d53b1f8f5814694b61f4f1219cbf4c410100581f027e12e2276710c601298e216d5a93a103c85fd605921d6e2d69df7a2d5c34410100581f02f0280750faf52dd937b3f65bb30a40a72f865ecf7f26eaa9b76f81aa3dcc41010219148403157e04261c8fe80a38f0fb6456fc195252c2bebf5452d34894d9ffa0b071bbc50308f294c861cf523488c502b8f423e56c88924142edc1809a10ef64c8be779f8303054801561014e856c2ac3284cc8dc912b71ef4616813efbe1561f0ca570dd077035f3946ea792b7d4773888d59d5ef22668f6fe8b5fa5f11c56d6e56058f66f86a03999ef4351f01f6ba6d0068173b9593d0946161cb9f24fc2cf351bbb4200ac34203d3aa52ea7894447ab88b460154b32f3a09cf2257f0edffbc0da59655467a23e90219ffff03cd52c121426ef3c75f77aad4e07b61ab2f168de949990fe2eaba8797ce3b427f0301d5b5ab8f9dea26dfca6f8f9cc8371c7d4d03ba7ba25e59fdeb914ac5e552fb038e3a8bc1c118c969d7ceeb25d68659ac6859ac23b629bbbd654581be288c7ace03951730ec553a9b0ef5de6eeb3c26ec1cdda677b36284fed1a66d7c62e042863203247120510fac0a240851435df2c5fa373ce3872ba38e717614ab07c3233d2f3b03e50adb8261825634f8bd666dc6ba9668103fd7b81dbfbffed56474f73eb3fa6d00581f022a6de2943a5aa4d77acf5e695d4456760a3f1f30a5d6dc2079599187a0715438fdf7b489316e03ed8754ad339cb5c4483fdcf900581f02852163413b8015c9d2cdf74a70a16f83fc0f7eab6a21c26dbfa103aee0fb410100581f02593b170182cc3c1a0d8a6c1067cc0eeac55473d42fb13c761925962e281941010219800603f905bc7cdef0d185b5148d2629c43167c1e1472da92fcddc0c6b3c214dfb9ac003c002b41772a421a53e65a651ef13fe52c324f8ea00a3a603672c95e8b10628620327a1af2b1ed1653d9572be4baa93a3ff5fd8b24f674de0e232a562dca69b2d1a03e94a117d2904737f5203fade6f3c19f9b0944ae89ab16f3ac8e9072b5067b49b030c72643f917861325796d6ae30b5dfce9b8a3fa207afb91956a5a458b2da8a6a031d0a6562045597cca746a950f88a920ff7e34b543c5729038fd216f27f7e023c00582003c4abbfd99ef0e735f0e483cfb018b00e9cbb767ccf43fbf8fd06e9bccebf90410103d0595a8d55b9cd138605c6bec246ad505f8ed126117b936c8ae0d28d7f889cc603a2b7843e039faeee53b935bc6c3126f5d9b1ee129b0a87d42f27c8e9ddef45ad01410d036b3cfe3ec8e46753787a54156169b3d25d06fdfc2e01dd9cca3ccf2fae8e16c8034ff3557b0af083a3f380d67f823b056a17525364f2b07cd9663950a3b6ec149703e0847cdfa3eb1f1a0e52932696927862f6e0c6724b0ffcbb7391f8f1f495a1bb0321f2071ddb33fe0715c48de4a9839e1d846e339cefa234665e1ee1514f2e16df03c43c997f427ff5a8251491ca97f41dbd99aa859948b67332a6509162d98ab2b00390a605458ddbf5ce88b2a7f351f8ef7c6e1c6d210c696e4f52a6313623cb21990219ffff035f65a4798cca2f783e82abbff806d44e1a72984644cd3130aa95a763a0374f9203222aa86d8146afeb34e906da07a7fc8d1aaed49883e310104e99cc40047fa8de0325a437fdf464b7197c76cf6d50e82ad0bb1bd4f8e1ae46ce026b77bf0805a45e030a01f7c2aa70e4322623c92cbdd63027a65973767429955b901c406025e64e1e03556cd42abe0f7fbe7e1fc95b481c4d5a0794e74c8f6d973d5f38543a28841c5d0219ffff03d51972b2c7ed5933f9f41d0710206bd6987b08502e7c0211d2ff43b184116e2e0341fa9174df83867fe3ec371c849d9b7edec242cb5218d0b1d1deadbdb592418d03c718830f6520d414b8fb6f0b454333690369f6212f4fcbd20dcca6dae18552980336de3cfb285ffabcabeab4363f029cb07c8b1875e9a0f186133c1d9d3a3eb8e5033510fdd7678cc722b31bc1282108ed45ba1cb8475e454424a85b8ce73aba012f0371aacd45a50fe56d852ed47f0573e45f8611d86e893905a41a91f769f8914791034ef4b58c85356262c1d0a67eaf85aa196e95a4af7d3b2afcc496a328bbd2f18e03814cae706416f48d95620dfb1cb2fdeea5ab75c3f784706d567ebe1f90fd10c003ef8c80e7703747bbd86d1244ffc8bcb14a0960a6f37f764b262e2869592b8d98033609c36d29c02b439df6621ef1f8ca4c803d45b74d6dff8717c7e6b45a3fe9e503cca0406948ce3e0d894bb76196f3c57c6f703b2a69158fd62b93cb515e2e7dca03eeb344b85b5ce5f30bfd60e8c98a161ed4190dee8a64012956964c3ceb0c53e3030f1fb45438ce543475639bcee45b2ae40876c23c6221c6f437c8971be4ac55a900581f02e26d96b1f2a9a18ef8fc72d589dbf03ef788137b64f43897e83a91e7feec54d5f7838f5c461feff7fe49ea5ebaf7728bb0adfa00581f022413c0864581b3df12d6c9d117c3386ce46964ec7737d3cc91298ed54670410100581f024a04b9d1546fc2146e2d9976bf1d65536a2c8c4ede66336df480d6e5afae41010219012103d094535eff950a9290a253e37955215d317cee7b1ba5b8c020887c771c745e9703427293ab7ea88066779be79ebf6a9d65dd363eae2a678b9fa1ab73ba1a0f0bac030b959f4923b980b28cd8ce80c7f3c54780694c9f821ad69b71f70938731a2ae1005820039a64c4bcf856ffc0565933557e6a176085e51dc4d6400586255360052d66d041010335c5364964991880e2407f1ccf65ee54de02bfc73bb2cfc1f23e77b4103f130b037b5e002f843a4e0419a9b987005d24cd09dace2d61ad1dc14c6b8000fc76b58e03cc45d6cea83ea81c8921b8f24ee9049a3e47690b1bcbceb12235cd66a921a6fa0219ffd703f95d34d1555a95a28c271dfdfa728f1afc36d2deb4fa379e42e3d54622efdf27037a87e7d20d581b9215a8c228c1c529663975d8bd3015c82853e1e6b8f691078d037a139ede74c6301d7ab7e48e266feb3c58afc90524bf5195779fa27f7d8b23080343c151464ad32973233c9073bfd46999f187850c229168d41632dfd63b1aef0f031700b14689c176247694d75fada69e32a48e3ded113aa2e19524972aacbdaa7003769ebaa61afb0e414a8e857d6e4cb2001653dc80bb4bcdf112a6b0fc97948a7e0314c25ba5e8c54c7e2d77416a074e1c264bd94f481c7efe0bba3588cb4ccc947903eb96085c8b578df39458d79a3848f4137e4795fd4dffd515a18d00efcab0c8ba0219ffff0311869d099cf2efc7e24d2a9aed504fe02ab8fba254bb67c8663ef3ecdcfa0fc403b9fc5eef49806d43a6e8503593804f3545a088ce4906ebb6a13c38e1a3c18bf503006bc686ce4b8f681d13f5d26d993c37b94fe83c505add9444bfa957e540c3a10337989870db27eda6c7e6fab72382efe12f408c11f5e50d05a56fea23d958fd5203206433744cb0c962c94209e8b283a5fcf445628b6ab2b5315051853efd37e6470357d2cac71499c3f89ded4546e3ba70a7ef26155173d2c849fc85fa4e6adae4d60316f6f890599a58fd2ad26f089c5decc0cf7b4e2707d0cfe7ad1c39f27bf2593403cd1b1babd9ed4dbf167075225b724a1327cb5a7a9e7f5e64cca9764331ffd1ab030091ada8b16a2e6dc71deb2cf4c143cc91c6f3eaefc6624f9bd66c40169a9db50318b7c901671751fc7b780ebcee202fea77b22798e73aee1d6aa9108468db53a3035430c1367f4f92dac961af9af6331663a8c8a8e5f74a726ce30694e8ffda33bd03303758989eeb9a99bb6d5d2e299eceb213687129a5c23b37b8461028d691d8cb036c8f59f77d3a88248f73e2a0813dd04b1e61915d4cca93065ffbbe4176afc69f038dab1b0d48a135ec17762839dd10d2b6def9301e85dff5f48d4c7c174a8b77f80354f7c12ca893a5d58bea6066d8e01831340aa9f293871e036d4b2b6469778cb903dac8d959ad82f7f90038096cc38651773b18d09133f1c52ba8c554719a5a774c033de0a85c65eb1cc075b6091de95fca7c2f151a7d8a7752936b4dd2871316c4ae036bdb774e0f25348bf7ca3b05aaf6d8b983f5a6aa7068dcdd446e0230de808649038703bb88ce01c854c2c5453506e04b2494f2ce4cc01ed54b8fa589e9571e9d650316a380fa05f55790790ce8c781b46eab4521158aeb897b088b763781d2587ca903e0afbd2093de66aa27359a7eb4f188bef76f44c4779b2cf35d2e9ee3305d4813031ce92bfcd71af2bda75d3cda8f6b87de2b590c6c9654c1dbaaf5c2babd6bf19803dd44303137dc47f91371bfc2e40160f87439de6dfb03e485c564edd938b98e1500581f02d954e2cfef495862221e91bd7523613cf8808827cb33edfe4904cc51bf29472386f26fc1000002190104038fb1bd4e544b8072a5a9fef839fa346a06a35a60267851c959e80cb8f53c9061034670fa99aedadc4628eef995e7cfc3ade3bb96e6d749982a179d481ad76d55fb039b5e9d37d268407911e39747884f7f73e5549e685c979616cf10e243cec33c290219bffd036acb5da41e4439cd7951779d088c5b538207c2813a61241fcddc53ca61bf61c60333141b504c17f2af5fdedb342b5201a03121c62357c0b18a0ea9ea3ed4c0a873032562bc08134dd243fe4214b00d797e699cc8dc03ce2edcb1924dfa93b330a4ab0219ffff03614608dd94533240a24cb2122c16e16faa365d7014ca0afe9af9f8351924891603ce7e12f6b76df802b0140c399baf11c21f97c7839bfb30219d1e69e7c60e840303b7282c5722412673b805a3e074e4cc536aba5715cbedd4cc608aa2fc85981e7c036c8c27249af3e18dd7630c1cde976a8e05a485907c13f81f3215f20499a93c0603b2d5954b1d5ee1704d54aa364a14fe04b16d8c706ebd8a9701c00136f134459f0312d5a4b52a03c6a9a43164d4b7ccb85c0ae468119a68985f7a1dfbed0cf5b95f03fca8ba2033cded521cc71f07c7d44a53a82e1a133b7f6192f73ec88291db2561035a24771ad86054ae6a7e50d2b0da173cb0137e9c6e0ef37ecb3d51640bb3d245030a04915b3d77104ab20ae10fd5ffd15a8875c87172789c6ac8ac833819e4818803389f1492a52c6856431fa5919529eb32e3cefc99e12003f0c530c568d39d3f9103c19d07358b06606d1b1f7d743985945141876435fbdcc00a405d279acd33101503d3f8a3052261cb24c5b1c048ef4a88a21a53c2898ea59d4c004307188964699203c7e86d2b106db810e3f779523d841996abe0b2ae5dd318eeab69e87027ed0c5a03d90001a72c0ba14613595461c0ecce1437ac296b695d7da6cb52b05daa077aa5005820031c00e98d39ac5ede9678a416a6b0a29f34756d8e0e9da839f17160859001e04101035760b823c2797697578bb81b09dc90faa739e7eb6c12596ffbea3be4b3c70c9100581f0276f7b74d6294d7ea05a53b7cdd4f1dd1ba525f26b7bada86747d4ed110cc410100581f02e615dedb369a4dbf575f4f99c777bf2efa3c6eab5e13dc1f0809d8f51783410100581f02803f8ecf1dee6bb0345811f7312cda556058b19db6389ad9ae3568643ddd5429ab878aed032e2e2c86ff4a9a9b05e3276cf1f803b7b2f44df7a541a336f69b504e23e5d494e85fd1ce29b338230ca2d9e789b856021904920373d374796ab055b4c526c6ed7cf9112f69aa7b9457c80a4dce62b77d6922c2b8033807f7eb33e862d7ae05d22a7fea3b3e21d2b72f489d6f3ac6d7fcf20165bccc0378e32378c02082815ac17f803210b473a6003085c79d014edbda0ba6522fbd080058200307e55778325aef8b6a66ac970409b71e48d5eafdf4ca2682f7017fe94579c0410103dd12894551c30a2d720c37e260cbde8d98fde26c13d3abfcd36e56a938c7436f03a465a9bd98226cad72a69d624ff2defdfe88a57b423a9ad6917a3373dc3d8f4a03926715e9ee5a5d4c64582f6e01dd8f73a1bd3a9742563a0f7f62bbc7c01a49b303caf0c94f32a24d08a6ce62bf3bc351e755ef23ade0ff2c1ba47dc4871eb7ee3203c571266c5d3c93a43c32ad3484fab6f3b9a92e0964cfef6aa0fd010c7fb801f50219ffff03562c3aa8351545b7db5b35f5cbcf187140fd987eb2681d29a3f93ab4133aa394036fe4354d646a83b1879bdb4785cd80dca94a70f7f6c3677397ba52470686b0b603fe9445555c2ce461e1d4d4fe18ee5e6e5470c6c0a69861b57fcfe1e032cdbba9036d6aac25d0435f4a3a96b3dbc7762639e965937942f0e26eecaa440ff7aed79203f91d34133b372584ba089bbc44a9e601897dc6ad52cc342455561ef0106d32e103df3c5c7f4169365e1a3be07f02b3ffc783ad939c94a8ceffd50a0dc59047e05b03557d1a5e2597853f566b5b160bddb74db282c4cb0bddaf2248b3a9d9b87528970334337f47eccec1cefbc96a14c225ac001a86dbf71521e4c03002d92128ab94ab0219ffff0382d4e10c1586d8c00fef729b59d8392e1bf8da60973791add5c7e48267c3225b0219ffff05581d0293d89a21bf1eaf96d56ffee36345ee5d76ff0b68b4e19dd24187b40e0f014852da00b1e0efc0fd190b420219020405581e03290ad6671028016055bcfc05aa3fd4587148ba49b4735afaa7b4ec0d200c0647072e8fcd81a0000219e3eb03f2ace4a3014c93383f01bea7575e2bc1eada45a41592f160382e11d886135c120219ffff0393909c294e407b6e2f777550508a30c6ab9ff7a952beea4424ff7e3631b557790353ba67ab64c39edd5f4fe89db7575cd05b4a460d013e5be964b542a311df0970036812ae5d44cbb2c25b5ecd841028eb599b175b8c94cab4c8e86be1e3a0a48ed0030b2e17c7bbe9250c18d8d3eb885949573f810f9839d6e526077f37876de43636034d340348740ab378b929b8138647c89fa4235d588374d4e811b4ecd302083cb403be9122f3b0ebbfe21f4197f096665967187d0072d151fc3aba045d3c51efa0910333d742ae404c7c06cb373eabc6461f3bdf98c86a9a62234f224dbd52cde851da03f0ee82dddf1107aef2fab1e5f066b0c0a27ddc800788eeab3ce303ed0290c13003c6cc757289415a68a6ffa9ea3d3ce29d51bd700a09e64852d20f48a3d321335d0377a967b9b78abacf7f15b71dd61047695fdb8cdfcf98ec84a6bb24e3de9828b603e7b0bc29b18ed8d145ee204a7f324980f5c61624d324b65de9bc096e90aceeef03ecb53301c295a448041377a2e43cfaa490c16b186a9e8a901d6355723e9876d40342ff8dbd1f5fbd901f1d8870d2cdb0134d350048f8b797b7bb1c6fe2815ad03b03a76eccd9b04eb5594a90968a5f902b789d4575d5b8d2f7f44952099de58169a3037d5a275c34d72bd9dc7d230d793de871adcd1bd5f2469ec57b81502a15d43ce90219ffff0333bf2d6af98b35394ff717f0043f4d821e6da9e5d35d7c521f99e806688bb68203884dedd5085b87c95352e0362dd5e65f64a357173a622dcc5400520ecf8db09803927ff7dc915be294182d8783721cdb285a221b60f2d2a767253749abfc20ad4903dd7b59bc6232e44a4fe7cfdc51555e4e96466a61da1f21ee5a8c2d62cc77ab6003fe7c1c4b710c7b44b6acf1c119b730a15421be73ecfd0861825c1bbc60c6813b032db87591c8720ff4a083fa1cd388419b21734b78912f3198318e0b0078dfb0390347ad912caac9ccdd77ebcff4946884ac89189236e29c7692d65dc515e20375bb0389b5b9f2b469572330fee8ceaf8afbe60ff30883a3a5197f0bf6ded843acdf2d03a71b5855e260f94af07b8f2d7fc551327842a38cfe36ffc5f38513ce406e37f20381c0ef20abd848f6c1e97531ce48061e76f607a1466016f442b4036c95ad78cc03287f810231ff7a571b1f1cb7990b1aeb20424b6d247dd092a5d6b8a359dba8b103a4ebd9b3594f7b60d183c302aba477cca14cc4ef7ab8b7f333018edcd65723b80310b50104b1b8046adf99bcc31bc3dbaefe8aeb8ebfd7fb8c49c2b3ed1d4305cf03f0b36c314eb658ab9af8258bb4fbc3a6ef51bf8a3b000544e3bcca34bd96a9880342b6631c85e315d9818db4c35d2434432ec2c9666f93020832192d02f945c354039027c90f5dab9ac1aaaed39ad9eebc4539a5365bd89700a4ab8a4b9b8d0f1f7a0383650354aa6c726a5322e6cf03eef5946a23e91c62ba736a9aa2286002009a9303a9135b92cb97263ba98d576487788cfdb6532c64a110e110edbfcae532e47e8a0343f2a4cf68c1d2d7dc062c744b9c5dd547f3e6558c1e05f02993a846db2e461e039cf139cd8e5ed1dadf98ce12697cd6af8497be22ad8cf8bda7360f1b8f06b2bb05581e03db432a2b633180e70918a7a1a4cbd155473bc5c6213ab18531ad75cd90040105581e03a749a1c50654c35220a193b18fad067346fa7425cdb1f17701f09194f00c0346abe4fddcd0000459545a6080604052600436106102d55760003560e01c80639003afee11610179578063c415b95c116100d6578063d9972b961161008a578063ea8148a611610064578063ea8148a6146108f8578063eea5c1ea14610918578063fee415f814610938576102dc565b8063d9972b9614610884578063e2a81602146108a4578063e941fa78146108c4576102dc565b8063c56924ba116100bb578063c56924ba14610817578063c9fd86ac14610837578063cc58002c14610857576102dc565b8063c415b95c146107d7578063c4d66de8146107f7576102dc565b8063ac41865a1161012d578063ba03e93f11610112578063ba03e93f14610777578063baa82a3414610797578063bb1757cf146107b7576102dc565b8063ac41865a14610737578063b413148e14610757576102dc565b80639907dcf61161015e5780639907dcf6146106d75780639f0514ad146106f7578063a42dce8014610717576102dc565b80639003afee14610697578063933f0f3c146106b7576102dc565b8063530e784f1161023257806367a1d5ab116101e65780637b103999116101c05780637b103999146105fb57806382b12dd71461062f5780638778878214610663576102dc565b806367a1d5ab1461057b57806367c1def91461059b5780636d9a76a9146105db576102dc565b806354cf2aeb1161021757806354cf2aeb146104cc5780635af547e61461053b5780636646a4361461055b576102dc565b8063530e784f1461047f578063543b92351461049f576102dc565b80632630c12f116102895780633f81a1921161026e5780633f81a1921461041057806344ba1fca1461042b5780634ed310901461045f576102dc565b80632630c12f146103d057806337e0ac02146103f0576102dc565b806317fcb39b116102ba57806317fcb39b1461033657806318f51fea146103825780631facc5d6146103a2576102dc565b806307223781146102e1578063109b3c8314610303576102dc565b366102dc57005b600080fd5b3480156102ed57600080fd5b506103016102fc366004614d16565b610958565b005b34801561030f57600080fd5b5061032361031e366004614ce7565b6109ee565b6040519081526020015b60405180910390f35b34801561034257600080fd5b5061036a7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6040516001600160a01b03909116815260200161032d565b34801561038e57600080fd5b5060045461036a906001600160a01b031681565b3480156103ae57600080fd5b506103c26103bd3660046148a1565b610cb3565b60405161032d929190614f64565b3480156103dc57600080fd5b5060035461036a906001600160a01b031681565b3480156103fc57600080fd5b5061032361040b366004614d54565b610ef6565b34801561041c57600080fd5b5061036a6001600160a01b0381565b34801561043757600080fd5b506103237fdd327ba0ba6e7bb0e0099273577340e52e9e071b1b87834b866bafccdc4c14cb81565b34801561046b57600080fd5b5061030161047a366004614b2c565b6114b9565b34801561048b57600080fd5b5061030161049a366004614799565b6115f5565b3480156104ab57600080fd5b506103236104ba366004614799565b60076020526000908152604090205481565b3480156104d857600080fd5b50601554601654601754601854601954601a546105009594936001600160a01b031692919086565b6040805196875260208701959095526001600160a01b03909316938501939093526060840152608083019190915260a082015260c00161032d565b34801561054757600080fd5b50610323610556366004614837565b61162f565b34801561056757600080fd5b506103016105763660046149ca565b611851565b34801561058757600080fd5b506103016105963660046147ed565b61188d565b3480156105a757600080fd5b506105cb6105b6366004614799565b60066020526000908152604090205460ff1681565b604051901515815260200161032d565b3480156105e757600080fd5b506103016105f6366004614d16565b6118cb565b34801561060757600080fd5b5061036a7f000000000000000000000000de6d4872c0c8167fb4f405c7854fd2fed7edca2181565b34801561063b57600080fd5b50601b54601c54601d54601e54601f546020546105009594936001600160a01b031692919086565b34801561066f57600080fd5b50600f546010546011546012546013546014546105009594936001600160a01b031692919086565b3480156106a357600080fd5b506103236106b2366004614ada565b611957565b3480156106c357600080fd5b506103016106d23660046149ca565b611aca565b3480156106e357600080fd5b506103016106f2366004614d16565b611b02565b34801561070357600080fd5b5061036a6107123660046147b5565b611b8e565b34801561072357600080fd5b50610301610732366004614799565b611bbd565b34801561074357600080fd5b506103236107523660046147b5565b611bf4565b34801561076357600080fd5b50610323610772366004614ce7565b611ca0565b34801561078357600080fd5b50610323610792366004614799565b611e08565b3480156107a357600080fd5b506103016107b236600461499d565b611ea3565b3480156107c357600080fd5b506103c26107d2366004614a1b565b611edb565b3480156107e357600080fd5b5060085461036a906001600160a01b031681565b34801561080357600080fd5b50610301610812366004614799565b611fda565b34801561082357600080fd5b5060055461036a906001600160a01b031681565b34801561084357600080fd5b50610301610852366004614799565b612153565b34801561086357600080fd5b50610877610872366004614a69565b61218a565b60405161032d9190615113565b34801561089057600080fd5b506105cb61089f3660046149ca565b61224c565b3480156108b057600080fd5b506103236108bf366004614deb565b6122f5565b3480156108d057600080fd5b50600954600a54600b54600c54600d54600e546105009594936001600160a01b031692919086565b34801561090457600080fd5b506103c26109133660046148a1565b612752565b34801561092457600080fd5b50610301610933366004614d16565b612c48565b34801561094457600080fd5b50610301610953366004614799565b612cd4565b610986336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b610994601b85858585612d61565b60408051858152602081018590526001600160a01b03841691810191909152606081018290527f4b49194a7fb724cb00f6dad71cf91c6da804179096aa90273c6664b59a5acea4906080015b60405180910390a150505050565b6000610a1e336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b60008311610a735760405162461bcd60e51b815260206004820152601060248201527f575241505f414d4f554e545f5a45524f0000000000000000000000000000000060448201526064015b60405180910390fd5b82471015610ac35760405162461bcd60e51b815260206004820152601860248201527f575241505f494e53554646494349454e545f414d4f554e5400000000000000006044820152606401610a6a565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906000906001600160a01b038316906370a082319060240160206040518083038186803b158015610b4057600080fd5b505afa158015610b54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b789190614ccf565b9050816001600160a01b031663d0e30db0866040518263ffffffff1660e01b81526004016000604051808303818588803b158015610bb557600080fd5b505af1158015610bc9573d6000803e3d6000fd5b50506040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600093506001600160a01b03861692506370a08231915060240160206040518083038186803b158015610c2957600080fd5b505afa158015610c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c619190614ccf565b9050610c6d8282615385565b93507f26b89b7c87cfae6e0c27cb572c5b1eaa577f2223fe8dca0d76a62034579b7a1e868587604051610ca29392919061517e565b60405180910390a150505092915050565b606080610ce4336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b6001600160a01b03871660009081526006602052604090205460ff16610d4c5760405162461bcd60e51b815260206004820152601460248201527f53545241544547595f4e4f545f414c4c4f5745440000000000000000000000006044820152606401610a6a565b670de0b6b3a7640000841115610da45760405162461bcd60e51b815260206004820152601760248201527f4a4f494e5f534c4950504147455f41424f56455f4f4e450000000000000000006044820152606401610a6a565b8451865114610df55760405162461bcd60e51b815260206004820152601960248201527f4a4f494e5f494e5055545f494e56414c49445f4c454e475448000000000000006044820152606401610a6a565b6000610e0d6001600160a01b03891688888888612f83565b81518351939650919450925014610e665760405162461bcd60e51b815260206004820152601a60248201527f4a4f494e5f4f55545055545f494e56414c49445f4c454e4754480000000000006044820152606401610a6a565b6001600160a01b038816600090815260076020526040902054610e8a908290615310565b6001600160a01b038916600081815260076020526040908190209290925590517f6be300d66e65741e7cc134f5e6b6815e65361424ab43526b3f51742a2b2ea95290610ee3908a908a908890889088908d908d90615016565b60405180910390a2509550959350505050565b6000610f26336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b856001600160a01b0316876001600160a01b03161415610f885760405162461bcd60e51b815260206004820152600f60248201527f535741505f53414d455f544f4b454e00000000000000000000000000000000006044820152606401610a6a565b6004546001600160a01b0316610fe05760405162461bcd60e51b815260206004820152601660248201527f535741505f434f4e4e4543544f525f4e4f545f534554000000000000000000006044820152606401610a6a565b6000600185600181111561100457634e487b7160e01b600052602160045260246000fd5b141561101157508261110e565b600085600181111561103357634e487b7160e01b600052602160045260246000fd5b14156110c657670de0b6b3a76400008411156110915760405162461bcd60e51b815260206004820152601760248201527f535741505f534c4950504147455f41424f56455f4f4e450000000000000000006044820152606401610a6a565b600061109d8989611bf4565b90506110be670de0b6b3a76400008690036110b889846130d5565b906130d5565b91505061110e565b60405162461bcd60e51b815260206004820152601760248201527f535741505f494e56414c49445f4c494d49545f545950450000000000000000006044820152606401610a6a565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038a16906370a082319060240160206040518083038186803b15801561116957600080fd5b505afa15801561117d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a19190614ccf565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091506000906001600160a01b038a16906370a082319060240160206040518083038186803b1580156111ff57600080fd5b505afa158015611213573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112379190614ccf565b600454909150611255906001600160a01b03168c8c8c8c888b613195565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038c16906370a082319060240160206040518083038186803b1580156112b157600080fd5b505afa1580156112c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e99190614ccf565b90506112f58984615385565b8110156113445760405162461bcd60e51b815260206004820152601960248201527f535741505f4241445f544f4b454e5f494e5f42414c414e4345000000000000006044820152606401610a6a565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009083906001600160a01b038d16906370a082319060240160206040518083038186803b1580156113a157600080fd5b505afa1580156113b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d99190614ccf565b6113e39190615385565b9050848110156114355760405162461bcd60e51b815260206004820152600f60248201527f535741505f4d494e5f414d4f554e5400000000000000000000000000000000006044820152606401610a6a565b60006114438c8360156132de565b905061144f8183615385565b96508b6001600160a01b03168d6001600160a01b03168f60ff167ffc431937278b84c6fa5b23bcc58f673c647fea974d3656e766b22d8c1412e5448e8b8b878f6040516114a09594939291906151d1565b60405180910390a4505050505050979650505050505050565b815183511461150a5760405162461bcd60e51b815260206004820152601f60248201527f5345545f46454544535f494e56414c49445f51554f5445535f4c454e475448006044820152606401610a6a565b805183511461155b5760405162461bcd60e51b815260206004820152601e60248201527f5345545f46454544535f494e56414c49445f46454544535f4c454e47544800006044820152606401610a6a565b60005b83518110156115ef576115e784828151811061158a57634e487b7160e01b600052603260045260246000fd5b60200260200101518483815181106115b257634e487b7160e01b600052603260045260246000fd5b60200260200101518484815181106115da57634e487b7160e01b600052603260045260246000fd5b602002602001015161188d565b60010161155e565b50505050565b611623336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b61162c8161344c565b50565b600061165f336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b600083116116af5760405162461bcd60e51b815260206004820152601360248201527f434f4c4c4543545f414d4f554e545f5a45524f000000000000000000000000006044820152606401610a6a565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038716906370a082319060240160206040518083038186803b15801561170a57600080fd5b505afa15801561171e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117429190614ccf565b90506117596001600160a01b0387168630876134b7565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038816906370a082319060240160206040518083038186803b1580156117b457600080fd5b505afa1580156117c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ec9190614ccf565b90506117f88282615385565b9250856001600160a01b0316876001600160a01b03167f42bd73ea702d7cf4505c06a7ac02a171536177d9cc2c7665443151ec91cc43fc858760405161183f929190615165565b60405180910390a35050949350505050565b61187f336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b6118898282613586565b5050565b6118bb336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b6118c6838383613628565b505050565b6118f9336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b611907601585858585612d61565b60408051858152602081018590526001600160a01b03841691810191909152606081018290527f4374e92441315a747b6c3e2c80e356b78d580bde720326dc3a9b45055414041b906080016109e0565b6000611987336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b600084116119d75760405162461bcd60e51b815260206004820152601460248201527f57495448445241575f414d4f554e545f5a45524f0000000000000000000000006044820152606401610a6a565b6001600160a01b038316611a2d5760405162461bcd60e51b815260206004820152600e60248201527f524543495049454e545f5a45524f0000000000000000000000000000000000006044820152606401610a6a565b6008546000906001600160a01b03858116911614611a5657611a51868660096132de565b611a59565b60005b9050611a658186615385565b9150611a728685846136b3565b836001600160a01b0316866001600160a01b03167f33be7eabd8ed368ca1aa14ce2ad1e90a0c9bf21edbb3820d5591546e4eb84157848487604051611ab99392919061517e565b60405180910390a350949350505050565b611af8336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b6118898282613705565b611b30336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b611b3e600f85858585612d61565b60408051858152602081018590526001600160a01b03841691810191909152606081018290527f8db23ab1f209b6252f45cba9848d0a1ebbb63e50328a308fa3aa01cdf151f75d906080016109e0565b6001600160a01b0380831660009081526001602090815260408083208585168452909152902054165b92915050565b611beb336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b61162c816137a2565b6003546040517f7100d05c0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03848116602483015283811660448301526000921690637100d05c9060640160206040518083038186803b158015611c6157600080fd5b505afa158015611c75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c999190614ccf565b9392505050565b6000611cd0336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b60008311611d205760405162461bcd60e51b815260206004820152601260248201527f554e575241505f414d4f554e545f5a45524f00000000000000000000000000006044820152606401610a6a565b6040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810184905247907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015611d9d57600080fd5b505af1158015611db1573d6000803e3d6000fd5b50479250611dc3915083905082615385565b92507fb4d99315c288c112a1d49da08c3fa85f78e2c83392f63f0a8964418f96aa24ed858486604051611df89392919061517e565b60405180910390a1505092915050565b6040517fba03e93f0000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b0383169063ba03e93f9060240160206040518083038186803b158015611e6357600080fd5b505afa158015611e77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e9b9190614ccf565b90505b919050565b611ed1336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b611889828261385a565b606080611f0c336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b6001600160a01b03841660009081526006602052604090205460ff16611f745760405162461bcd60e51b815260206004820152601460248201527f53545241544547595f4e4f545f414c4c4f5745440000000000000000000000006044820152606401610a6a565b611f876001600160a01b038516846138df565b60405191935091506001600160a01b038516907fb28d414fdc0dd1ebae12befebefd04f6ae5f8dec2a2fdbed9191be3c4d13715a90611fcb90859085908890615091565b60405180910390a29250929050565b600054610100900460ff1615808015611ffa5750600054600160ff909116105b806120145750303b158015612014575060005460ff166001145b6120865760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a6a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156120e457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6120ed82613a1f565b801561188957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b612181336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b61162c81613af8565b60606121ba336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b6121fb8585856040518060400160405280601f81526020017f534d4152545f5641554c545f4152424954524152595f43414c4c5f4641494c00815250613b63565b9050846001600160a01b03167f76c91e1f3e02d952ab790867a8364513b69ada16ed33a67dbcd80de0e8cbfde98585848660405161223c9493929190615126565b60405180910390a2949350505050565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081527f86cf984b44bed1f7f8b143f6052803e8b74964b2ee297832a77790be6d6308f1602052604081205460ff1680611c995750506001600160a01b039190911660009081526002602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000009094168352929052205460ff1690565b6000612325336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b874614156123755760405162461bcd60e51b815260206004820152601160248201527f4252494447455f53414d455f434841494e0000000000000000000000000000006044820152606401610a6a565b6001600160a01b0383166123cb5760405162461bcd60e51b815260206004820152601560248201527f4252494447455f524543495049454e545f5a45524f00000000000000000000006044820152606401610a6a565b6005546001600160a01b03166124235760405162461bcd60e51b815260206004820152601860248201527f4252494447455f434f4e4e4543544f525f4e4f545f53455400000000000000006044820152606401610a6a565b60006124318888601b6132de565b905061243d8188615385565b91506000600187600181111561246357634e487b7160e01b600052602160045260246000fd5b1415612470575084612554565b600087600181111561249257634e487b7160e01b600052602160045260246000fd5b141561250c57670de0b6b3a76400008611156124f05760405162461bcd60e51b815260206004820152601960248201527f4252494447455f534c4950504147455f41424f56455f4f4e45000000000000006044820152606401610a6a565b61250583670de0b6b3a76400008890036130d5565b9050612554565b60405162461bcd60e51b815260206004820152601960248201527f4252494447455f494e56414c49445f4c494d49545f54595045000000000000006044820152606401610a6a565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038b16906370a082319060240160206040518083038186803b1580156125af57600080fd5b505afa1580156125c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e79190614ccf565b600554909150612606906001600160a01b03168d8d8d88878c8c613cab565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038c16906370a082319060240160206040518083038186803b15801561266157600080fd5b505afa158015612675573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126999190614ccf565b90506126a58583615385565b8110156126f45760405162461bcd60e51b815260206004820152601b60248201527f4252494447455f4241445f544f4b454e5f494e5f42414c414e434500000000006044820152606401610a6a565b8a6001600160a01b03168c8e60ff167fa167c1255bafc7104c4249fd3b9e751bfc085a4865d00431b1184a2d0b71cebc8887898d8d60405161273a95949392919061519d565b60405180910390a45050505098975050505050505050565b606080612783336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b6001600160a01b03871660009081526006602052604090205460ff166127eb5760405162461bcd60e51b815260206004820152601460248201527f53545241544547595f4e4f545f414c4c4f5745440000000000000000000000006044820152606401610a6a565b6001600160a01b0387166000908152600760205260409020546128505760405162461bcd60e51b815260206004820152601660248201527f455849545f4e4f5f494e5645535445445f56414c5545000000000000000000006044820152606401610a6a565b670de0b6b3a76400008411156128a85760405162461bcd60e51b815260206004820152601760248201527f455849545f534c4950504147455f41424f56455f4f4e450000000000000000006044820152606401610a6a565b84518651146128f95760405162461bcd60e51b815260206004820152601960248201527f455849545f494e5055545f494e56414c49445f4c454e475448000000000000006044820152606401610a6a565b60006129116001600160a01b03891688888888613ddf565b8151835193965091945092501461296a5760405162461bcd60e51b815260206004820152601a60248201527f455849545f4f55545055545f494e56414c49445f4c454e4754480000000000006044820152606401610a6a565b6000825167ffffffffffffffff81111561299457634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156129bd578160200160208202803683370190505b5090506000826129cc8b611e08565b6129d69190615310565b6001600160a01b038b166000908152600760205260409020549091508111612a5a576001600160a01b038a16600090815260076020526040902054612a27908290612a2190866130d5565b90613f03565b6001600160a01b038b1660009081526007602052604081208054909190612a4f908490615385565b90915550612bec9050565b6001600160a01b038a16600090815260076020526040812054820390848210159081612a8857828603612a8b565b60005b6001600160a01b038e16600090815260076020526040902054909150612ab2908290615385565b6001600160a01b038e166000908152600760205260408120919091555b8851811015612be7576000898281518110612afa57634e487b7160e01b600052603260045260246000fd5b602002602001015190506000898381518110612b2657634e487b7160e01b600052603260045260246000fd5b60200260200101519050600085612b515789612b428884615348565b612b4c9190615328565b612b53565b815b90506000612b638483600f6132de565b9050612b6f8184615385565b8c8681518110612b8f57634e487b7160e01b600052603260045260246000fd5b602002602001018181525050808a8681518110612bbc57634e487b7160e01b600052603260045260246000fd5b60200260200101818152505050505050612be060018261344890919063ffffffff16565b9050612acf565b505050505b896001600160a01b03167f93d8f30ee317e072a8ef28fa15d7b971a88f92a36f75dbf70b6465b6773a3a418a8a888888888e8e604051612c33989796959493929190614f92565b60405180910390a25050509550959350505050565b612c76336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b612c84600985858585612d61565b60408051858152602081018590526001600160a01b03841691810191909152606081018290527fe5978c2a23ccc9af802b0a59f3e9d95ec28487eea5c5fa85557a26854e263f67906080016109e0565b612d02336000357fffffffff0000000000000000000000000000000000000000000000000000000016612d0b565b61162c81614004565b612d15828261224c565b6118895760405162461bcd60e51b815260206004820152601760248201527f415554485f53454e4445525f4e4f545f414c4c4f5745440000000000000000006044820152606401610a6a565b670de0b6b3a7640000841115612db95760405162461bcd60e51b815260206004820152601160248201527f4645455f5043545f41424f56455f4f4e450000000000000000000000000000006044820152606401610a6a565b60006001600160a01b038316158015612dd0575083155b8015612dda575081155b905084151580612de75750805b612e335760405162461bcd60e51b815260206004820152601960248201527f494e56414c49445f4341505f574954485f4645455f5a45524f000000000000006044820152606401610a6a565b60006001600160a01b03841615801590612e4c57508415155b8015612e5757508215155b90508180612e625750805b612eae5760405162461bcd60e51b815260206004820152601760248201527f494e434f4e53495354454e545f4341505f56414c5545530000000000000000006044820152606401610a6a565b85875560018701859055600387018390558115612ed8576000600488018190556005880155612f40565b6005870154612ef557612eeb8342615310565b6005880155612f40565b60028701546001600160a01b03858116911614612f40576002870154600090612f27906001600160a01b031686611bf4565b6004890154909150612f39908261406f565b6004890155505b50505060029390930180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909416939093179092555050565b60608060008063cfede73460e01b88888888604051602401612fa894939291906150d4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808a6001600160a01b0316836040516130229190614f48565b600060405180830381855af49150503d806000811461305d576040519150601f19603f3d011682016040523d82523d6000602084013e613062565b606091505b50915091506130a782826040518060400160405280601281526020017f4a4f494e5f43414c4c5f524556455254454400000000000000000000000000008152506140fb565b50808060200190518101906130bc9190614c07565b955095509550505050955095509592505050565b900390565b600082820283158061310357508284828161310057634e487b7160e01b600052601260045260246000fd5b04145b61314f5760405162461bcd60e51b815260206004820152600c60248201527f4d554c5f4f564552464c4f5700000000000000000000000000000000000000006044820152606401610a6a565b801561318a57670de0b6b3a76400007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82010460010161318d565b60005b949350505050565b60008063a231a78060e01b8888888888886040516024016131bb969594939291906151fc565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808a6001600160a01b0316836040516132359190614f48565b600060405180830381855af49150503d8060008114613270576040519150601f19603f3d011682016040523d82523d6000602084013e613275565b606091505b50915091506132ba82826040518060400160405280601281526020017f535741505f43414c4c5f524556455254454400000000000000000000000000008152506140fb565b50808060200190518101906132cf9190614ccf565b9b9a5050505050505050505050565b805460009081906132f090859061406f565b60028401549091506001600160a01b0316158061330f57506001830154155b8061331c57506003830154155b15613340576008546133399086906001600160a01b0316836136b3565b9050611c99565b82600501544210613367576000600484015560038301546133619042615310565b60058401555b60028301546000906133839087906001600160a01b0316611bf4565b90506000613391838361406f565b905084600101548186600401546133a89190615310565b116133cf57829350808560040160008282546133c49190615310565b909155506134269050565b8460010154856004015410156134215780836133fc876004015488600101546130d090919063ffffffff16565b6134069190615348565b6134109190615328565b600186015460048701559350613426565b600093505b60085461343e9088906001600160a01b0316866136b3565b5050509392505050565b0190565b61345581614134565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040517f6536690106168bdf4ba72c128a053d817999b1db90cae23f139b293bf862cb7590600090a250565b6040516001600160a01b03808516602483015283166044820152606481018290526115ef9085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152614189565b6001600160a01b03821660008181526002602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000086168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527fa2e97b9eea8d1168700e334304edd057dff89c0384ca6f920c73cc3e48c8e52391015b60405180910390a25050565b6001600160a01b0383811660008181526001602090815260408083208786168085529083529281902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001695871695861790555193845290927f519169f85e741141647fddd20ce1d573843e55c1ca650e85a3f82f3410ee5d04910160405180910390a3505050565b806136bd576118c6565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03841614156136f1576136ec828261426e565b6118c6565b6118c66001600160a01b0384168383614387565b6001600160a01b03821660008181526002602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000086168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055519182527f7f06c1c34ad47198873da9dcde2e40904035d41b23da3a9132df674a75022df7910161361c565b6001600160a01b0381166137f85760405162461bcd60e51b815260206004820152601260248201527f4645455f434f4c4c4543544f525f5a45524f00000000000000000000000000006044820152606401610a6a565b600880547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040517f12e1d17016b94668449f97876f4a8d5cc2c19f314db337418894734037cc19d490600090a250565b80156138695761386982614134565b6001600160a01b03821660008181526006602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f0b9ad240c35681e1d7a33b6b271c4aba6024a102ba32e826ae4f2e2010330756910161361c565b606080600063c63ff8dd60e01b846040516024016138fd9190615113565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600080866001600160a01b0316836040516139779190614f48565b600060405180830381855af49150503d80600081146139b2576040519150601f19603f3d011682016040523d82523d6000602084013e6139b7565b606091505b50915091506139fc82826040518060400160405280601381526020017f434c41494d5f43414c4c5f5245564552544544000000000000000000000000008152506140fb565b5080806020019051810190613a119190614bb0565b945094505050509250929050565b600054610100900460ff16613a9c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a6a565b613aa46143d0565b613ace817f933f0f3c00000000000000000000000000000000000000000000000000000000613705565b61162c817f6646a43600000000000000000000000000000000000000000000000000000000613705565b613b0181614134565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040517fd77cbc8d90692af17e598916f3d976ebb794bf776fe9a30fb64ad039c5d37f8190600090a250565b606082471015613bdb5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610a6a565b6001600160a01b0385163b613c325760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a6a565b600080866001600160a01b03168587604051613c4e9190614f48565b60006040518083038185875af1925050503d8060008114613c8b576040519150601f19603f3d011682016040523d82523d6000602084013e613c90565b606091505b5091509150613ca08282866140fb565b979650505050505050565b600063f9cf051f60e01b88888888888888604051602401613cd29796959493929190615249565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808a6001600160a01b031683604051613d4c9190614f48565b600060405180830381855af49150503d8060008114613d87576040519150601f19603f3d011682016040523d82523d6000602084013e613d8c565b606091505b5091509150613dd182826040518060400160405280601481526020017f4252494447455f43414c4c5f52455645525445440000000000000000000000008152506140fb565b505050505050505050505050565b60608060008063a9a80d2660e01b88888888604051602401613e0494939291906150d4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808a6001600160a01b031683604051613e7e9190614f48565b600060405180830381855af49150503d8060008114613eb9576040519150601f19603f3d011682016040523d82523d6000602084013e613ebe565b606091505b50915091506130a782826040518060400160405280601281526020017f455849545f43414c4c5f524556455254454400000000000000000000000000008152506140fb565b600081613f525760405162461bcd60e51b815260206004820152600d60248201527f5a45524f5f4449564953494f4e000000000000000000000000000000000000006044820152606401610a6a565b82613f5f57506000611bb7565b670de0b6b3a764000083810290848281613f8957634e487b7160e01b600052601260045260246000fd5b0414613fd75760405162461bcd60e51b815260206004820152600c60248201527f4449565f494e5445524e414c00000000000000000000000000000000000000006044820152606401610a6a565b826001820381613ff757634e487b7160e01b600052601260045260246000fd5b0460010191505092915050565b61400d81614134565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040517f68817df76a175ba84beeb646224c32929b792a33280e3f4bc3e8089552edaa6090600090a250565b600082820283158061409d57508284828161409a57634e487b7160e01b600052601260045260246000fd5b04145b6140e95760405162461bcd60e51b815260206004820152600c60248201527f4d554c5f4f564552464c4f5700000000000000000000000000000000000000006044820152606401610a6a565b670de0b6b3a764000090049392505050565b6060831561410a575081611c99565b82511561411a5782518084602001fd5b8160405162461bcd60e51b8152600401610a6a9190615113565b61413d8161444f565b61162c5760405162461bcd60e51b815260206004820152601860248201527f444550454e44454e43595f4e4f545f53544154454c45535300000000000000006044820152606401610a6a565b60006141de826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166145b59092919063ffffffff16565b8051909150156118c657808060200190518101906141fc9190614c71565b6118c65760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610a6a565b804710156142be5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a6a565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461430b576040519150601f19603f3d011682016040523d82523d6000602084013e614310565b606091505b50509050806118c65760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a6a565b6040516001600160a01b0383166024820152604481018290526118c69084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401613504565b600054610100900460ff1661444d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a6a565b565b6040517f9235dcf80000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301526000918291829182917f000000000000000000000000de6d4872c0c8167fb4f405c7854fd2fed7edca211690639235dcf89060240160606040518083038186803b1580156144d257600080fd5b505afa1580156144e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061450a9190614c8d565b919450925090508061455e5760405162461bcd60e51b815260206004820152601960248201527f444550454e44454e43595f4e4f545f52454749535445524544000000000000006044820152606401610a6a565b81156145ac5760405162461bcd60e51b815260206004820152601560248201527f444550454e44454e43595f4445505245434154454400000000000000000000006044820152606401610a6a565b50909392505050565b606061318d8484600085613b63565b600082601f8301126145d4578081fd5b813560206145e96145e4836152ec565b61529d565b80838252828201915082860187848660051b8901011115614608578586fd5b855b8581101561462f57813561461d816153f4565b8452928401929084019060010161460a565b5090979650505050505050565b600082601f83011261464c578081fd5b8151602061465c6145e4836152ec565b80838252828201915082860187848660051b890101111561467b578586fd5b855b8581101561462f578151614690816153f4565b8452928401929084019060010161467d565b600082601f8301126146b2578081fd5b815160206146c26145e4836152ec565b80838252828201915082860187848660051b89010111156146e1578586fd5b855b8581101561462f578151845292840192908401906001016146e3565b600082601f83011261470f578081fd5b813567ffffffffffffffff811115614729576147296153de565b61475a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161529d565b81815284602083860101111561476e578283fd5b816020850160208301379081016020019190915292915050565b803560ff81168114611e9e57600080fd5b6000602082840312156147aa578081fd5b8135611c99816153f4565b600080604083850312156147c7578081fd5b82356147d2816153f4565b915060208301356147e2816153f4565b809150509250929050565b600080600060608486031215614801578081fd5b833561480c816153f4565b9250602084013561481c816153f4565b9150604084013561482c816153f4565b809150509250925092565b6000806000806080858703121561484c578081fd5b8435614857816153f4565b93506020850135614867816153f4565b925060408501359150606085013567ffffffffffffffff811115614889578182fd5b614895878288016146ff565b91505092959194509250565b600080600080600060a086880312156148b8578283fd5b85356148c3816153f4565b945060208681013567ffffffffffffffff808211156148e0578586fd5b6148ec8a838b016145c4565b96506040890135915080821115614901578586fd5b818901915089601f830112614914578586fd5b81356149226145e4826152ec565b8082825285820191508585018d878560051b880101111561494157898afd5b8995505b83861015614963578035835260019590950194918601918601614945565b5097505050606089013594506080890135925080831115614982578384fd5b5050614990888289016146ff565b9150509295509295909350565b600080604083850312156149af578182fd5b82356149ba816153f4565b915060208301356147e281615409565b600080604083850312156149dc578182fd5b82356149e7816153f4565b915060208301357fffffffff00000000000000000000000000000000000000000000000000000000811681146147e2578182fd5b60008060408385031215614a2d578182fd5b8235614a38816153f4565b9150602083013567ffffffffffffffff811115614a53578182fd5b614a5f858286016146ff565b9150509250929050565b60008060008060808587031215614a7e578182fd5b8435614a89816153f4565b9350602085013567ffffffffffffffff80821115614aa5578384fd5b614ab1888389016146ff565b9450604087013593506060870135915080821115614acd578283fd5b50614895878288016146ff565b60008060008060808587031215614aef578182fd5b8435614afa816153f4565b9350602085013592506040850135614b11816153f4565b9150606085013567ffffffffffffffff811115614889578182fd5b600080600060608486031215614b40578081fd5b833567ffffffffffffffff80821115614b57578283fd5b614b63878388016145c4565b94506020860135915080821115614b78578283fd5b614b84878388016145c4565b93506040860135915080821115614b99578283fd5b50614ba6868287016145c4565b9150509250925092565b60008060408385031215614bc2578182fd5b825167ffffffffffffffff80821115614bd9578384fd5b614be58683870161463c565b93506020850151915080821115614bfa578283fd5b50614a5f858286016146a2565b600080600060608486031215614c1b578081fd5b835167ffffffffffffffff80821115614c32578283fd5b614c3e8783880161463c565b94506020860151915080821115614c53578283fd5b50614c60868287016146a2565b925050604084015190509250925092565b600060208284031215614c82578081fd5b8151611c9981615409565b600080600060608486031215614ca1578081fd5b8351614cac81615409565b6020850151909350614cbd81615409565b80925050604084015190509250925092565b600060208284031215614ce0578081fd5b5051919050565b60008060408385031215614cf9578182fd5b82359150602083013567ffffffffffffffff811115614a53578182fd5b60008060008060808587031215614d2b578182fd5b84359350602085013592506040850135614d44816153f4565b9396929550929360600135925050565b600080600080600080600060e0888a031215614d6e578485fd5b614d7788614788565b96506020880135614d87816153f4565b95506040880135614d97816153f4565b9450606088013593506080880135614dae81615417565b925060a0880135915060c088013567ffffffffffffffff811115614dd0578182fd5b614ddc8a828b016146ff565b91505092959891949750929550565b600080600080600080600080610100898b031215614e07578182fd5b614e1089614788565b9750602089013596506040890135614e27816153f4565b9550606089013594506080890135614e3e81615417565b935060a0890135925060c0890135614e55816153f4565b915060e089013567ffffffffffffffff811115614e70578182fd5b614e7c8b828c016146ff565b9150509295985092959890939650565b6000815180845260208085019450808401835b83811015614ec45781516001600160a01b031687529582019590820190600101614e9f565b509495945050505050565b6000815180845260208085019450808401835b83811015614ec457815187529582019590820190600101614ee2565b60008151808452614f1681602086016020860161539c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60008251614f5a81846020870161539c565b9190910192915050565b600060408252614f776040830185614e8c565b8281036020840152614f898185614ecf565b95945050505050565b6000610100808352614fa68184018c614e8c565b90508281036020840152614fba818b614ecf565b90508281036040840152614fce818a614e8c565b90508281036060840152614fe28189614ecf565b905086608084015282810360a0840152614ffc8187614ecf565b90508460c084015282810360e08401526132cf8185614efe565b600060e0825261502960e083018a614e8c565b828103602084015261503b818a614ecf565b9050828103604084015261504f8189614e8c565b905082810360608401526150638188614ecf565b90508560808401528460a084015282810360c08401526150838185614efe565b9a9950505050505050505050565b6000606082526150a46060830186614e8c565b82810360208401526150b68186614ecf565b905082810360408401526150ca8185614efe565b9695505050505050565b6000608082526150e76080830187614e8c565b82810360208401526150f98187614ecf565b90508460408401528281036060840152613ca08185614efe565b600060208252611c996020830184614efe565b6000608082526151396080830187614efe565b85602084015282810360408401526151518186614efe565b90508281036060840152613ca08185614efe565b60008382526040602083015261318d6040830184614efe565b600084825283602083015260606040830152614f896060830184614efe565b60008682528560208301528460408301526001600160a01b038416606083015260a06080830152613ca060a0830184614efe565b600086825285602083015284604083015283606083015260a06080830152613ca060a0830184614efe565b600060ff881682526001600160a01b03808816602084015280871660408401525084606083015283608083015260c060a083015261523d60c0830184614efe565b98975050505050505050565b600060ff891682528760208301526001600160a01b03808816604084015286606084015285608084015280851660a08401525060e060c083015261529060e0830184614efe565b9998505050505050505050565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156152e4576152e46153de565b604052919050565b600067ffffffffffffffff821115615306576153066153de565b5060051b60200190565b60008219821115615323576153236153c8565b500190565b60008261534357634e487b7160e01b81526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615380576153806153c8565b500290565b600082821015615397576153976153c8565b500390565b60005b838110156153b757818101518382015260200161539f565b838111156115ef5750506000910152565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461162c57600080fd5b801515811461162c57600080fd5b6002811061162c57600080fdfea2646970667358221220aebe3178f463767e86bfaa581a1cd71612c613330b00bb8d3df1940874637def64736f6c6343000803003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341ff05581e0307f06559b91740050b5b2126a7f7a71e04840df267b57ad871b1874b50070119545a03ab661fe7c7a97901564518a44200779b4baddaeb358276643d70e13587a7df1f032b4d1a65813e6a19838f5674eb766427bfcebf6c924095ac783b87824f81ffef05581e03f7cbcf56279c6114097589e22a20908eb63b6b88ebf081d7c2c81b1c900c014702170695916e0005581e03644ab4bb6928d157ec0ea89fe221d302123e29fde21598f74e8569b620040405581e0310847ac5df21c6d247197c16cd7b74b7b58a4d087bab30aa08bad156400c02463d7b5363eb680313e96c11aab829417c5c8e8b50aac10d6b2698aef59c676fa35d32b5752fe0bf0350868d89949b3397599e505d75df4b631ace30b6084957c24dfa52ef722e30d105581e039cb88f22ae408a97ae8a78a50e97682096b4c1efa5d0d1edba56c0d680040f02195cfe0359a57afa163978ab3d098307a970a49d8e17abf6f070f33c4240e3ac8b7115b8038bcc67f61aba8f33ea59efec14050bc312eca03114bd373fb073f97dd512ee7f0219ffff03e79e4dd05d9e45dd82252532319214469547866d2414d782ca075b0811a4fb2e03fe66317a0361902ff3f85346e33133b0c986f62e5178f9eceb9cc445012e81980365a3b2c792dadbd7eace0e3624fb2681d57be2a3414bd9c30d574ec13fdd8216034e09c2ba36de8499e4754080967094daec33863393eb5ba77b970359569bc76a034b7e4ffd7b9c94c21ed51fb55f0b9e0108ff2ef12199121ba1937c6a74fe4573037251ebdb3c6f639c98cbe1c2cd564b8942805118e0a7644aa4597cc039e580af03aa416103ee1fe27c11a80e7355a673efcb4f517d1e8c6487a9a9e4394fbf2a2a03745f27aa308c4717064f9e34aec57185ec4b15e50b135519e473e9acad58afea03457dde6551008ae4f3ec0c9fb8e3dcc0f509985268dcd36479970934f485afc10354152f1d5fea873370aae425ce9a1cd0ce16465438bfe42f8ee82bb94a03c8f00345060b0253e7e1eca05d006ccbcf64999db35ce056ce4784fe04c35882922d790219ffff033854a664d5d8c3e34e871cc962e9b87b532a774e70417465ab34e0449b87f7860300d786060c78b392f49f0d5cd72455dcb4cf8ab2e97408636d72e71b45d3252203ac7dae165dd1a21011271a97a597314099e2b477e2597dffc690fa63826abe3a0367e8eabcefdf054dfb98b2c657f9185457de7e943bb8d0b289d4d3b33a08defd0219ffff038102a1bd1290f3613f3522659f19b5e4aae102b4f84910221722ee4e8663bb61038028a36476527be32fe8489858839202aafb9cf38f0c3f3a8a9f28546e7e4d1803f89eb9f61df6a8f0ca7743f0d911301fb24f8c73d11a169487da020a8d3b4ca9035fc51318352b7ba1af5bcafcb9aca15d03fb7a84a961be7064d98d4f685184af03196fd9d9afb1a7e5badffee29514abca36303cb746a1fc28c4431649a9f6a66e030ae4eac4ba55073367d2537c2b1aa566ca34e0623f44af6baa4c3b5eda042e9303d114ca686f198fcf0a9834061ff0146a66583209324655de6b094a109530a83f03152a0ff2ea5698ca107f71f3dc0cb430fb937c5580def2a4b75f80ed3467b4320219ffff03a6e736d2d4567b5c129c1849f0736085dd0959ee937938bdd1f43596c50bbf4803322dd36d722c443b905167d03dcc00889869b941cf521ba5b8abeaa3871ab5a1039461dc5d75cbdfcbd9a4db09cfd907e04e39b0d42ca7530fc266f7bac39edf4903f5d7bfa1113dddf754b80fb1b0ed3fbcdeca141dc91a499f8e12e65b8e54bee503dbf9e6606b5b9153aa2f5de8f5f8d47ea7d4d057f26d2a0a15cb7c06bda588a70304b6002ce21e08c4ac79f9205c98bc546ba1524fd1a34acdc8f56f57163d718d03dbb88392eaa8437485fc4a56b2286b49584638db667e74d77269f5270904598e034935143839ca15a871c04d4e3a3f6d218814cef3c52e4d0d5db83de0f6e0be320329196eb7a3263a441141c487e272b84f60086c9c274c16104968140c6746598203edc0cb1f8dec77077944f5b1280237ac4afec25031652398bb528e44bf69bbdf034953f955c4fc60dc113e1371fcdf4afd9f36eb5c2096a74662f0e1fb6d8b74a403c23fb91d20e224b870fbb9cdc84106c3ec1af28eb53ac41780c648294c3a6e0b0301a8b15af48e50f749bc17350a2f512c8ba19380993785a651dc7a79bfc1702003f47fc0b3cd6fa509d08a59f33109e8a2cfa0890bbe8b21019ab0a319b54d99a30364f6527a710391b85e9e312b9d7c15b96dc691ae4cfd2ec73e8d14793926afe003b6afefcb1264f97c96a413b23f927caa7d2a5669ca5230f9b83c3fa64eea580a037ef7907d9852280dba2699c086e7de2cffdcd47f96481ca57e269b453aefc83903225ff195d62385a4aac10681b409075b04be1731a2669498c6ca8c172618b4cd03edfa9cacda2642220b7c36baa001411a40eb9ce3616bb48ef12f0a7905f6a22e035db8b0b57958485dbaccee751eeecb90562b9663a7470e40569b4e93ba4a66d203b90c6d01a6f06589f6465f8ed5eee72d34f07120aa86d2028dc1805dac884d69035fb5fca1737dda986d539486f62fa61f783e57a8510aa19dbb1637774e71096905581e038b1415be2c4dd1ac5aa5c42aab3cd807cef79d324aca9de3d508766440040203e86211bf1f6273727d910464a214c23bbc5e02a5de07defde2aef29e86f9528105581d023f6dc82ae103e3ae27787603292fec7fce1dfa7dee7ad1a64910593c084703d1da31e0700003fec0c7a88cd89ba46041cc0f5d5267959d5aceb71cc098d185212b9a88ae7a180387d975bf6caf18315f67648e37f78acfdd0d1eb029c911c54a1c5d87d1e8b91d05581d02d0f6a2ea54f43cc626af2e74446fce874c20b8c307a1efb330dca5c207011bffffffffffffffff05581d025afa68ab788a74bfe433c4939638905e4288e8db73ca76f55dd314e40848018f0bb6d4ab6b1d05581d02ec76466ee1b6cfb30b4c8b7c10ced5c4279db435e2ae6f59109256020c01473b5044c9d360000219250203381922615a9b981702aee27b0815cc88c4391d5e3dc1680261c2c52d955b17ac05581e0392740f0fab2fefd748d488413388a075064611fc11d82b9e492112c8400c0847108794d96bca0005581e037ff29e8386148c85b8cfa625948de4cd16b3630e1c287d35c67d018b600403021951510398719d8cde74041133cfd2b0d3511aa70e459e00f8768c495ebda11ed874c673039dcd1e8b28b772814aaa065838d5611f0dc9d2df10f2c275197ffd8d3d39f73903643a291fdd8ee3e77cc0278d72e94a93b9e90c7fec50c2267834118338367ff9037cedd20b616d3eb52662183428ae5aa05870fa2e2e1cf30184162eb1a7b918e10399a52852e2817ef8fe54418b5daea68432dd027a76b9657bcba8539914ea0a7e03a876b446c5b63ce677e388620b17e4d062d78e744d0d2eb09bf330db2b7383e303aace6b9aa87f5e13fc113e320e582610d81fbba522f7f8ea7b6deb53bce313c10323630072ac97c8c263f72611f8f995586a9406407fa0063134f5336bde7ffbe90219ffff03ad52f4972619a13c1a4f4fcb98bf9b0049df47fe42c0dfdc26dec5008b2abcd603f8c5fd1f3676380807182af3bafb08af1b0ab9e453dc4c01b5d986139e081db303bf964f02511f4bde067a10302630a6e1e59f40dea840d4e52aed7e7e016f775003d7b1f94af48c28ae73468aea3368f3841e2b2b04ef83a7f67e5b8c365a791b1d03ec7cbc6fdcea4d59b5bffb4a719ad8a6e9301187d211a7b36fa0e67efbb5a2ff034ced9eedb0d34a1a16e6341d838e3556f44aeb9fac5bbcaa757c770f7dd66cc1035c47cb158a0213eede0429eb6ff9b4147e3a1f6f3df89ef25f42ff7f9341e7fb03c2b9157e3aa325e76fb6d909ad02764853949a3351c4952b15a0adfac0a24df103e82ef9c7f9df1bfe44acb4bd18c6240086d0b9a759d9ffceb3d67eb21994dc950369813ec938be1d4a32cdb69df5e8f0a472d87f59ac175eb066b5f846394248ca03c19f608faea887c3e3483541c9d5002a45b75666ef6ca14beaabd6342171f4c103e6dbb2df20f385f3c01d0b2b65f8343b0fa4702026165d7106542d097828d2b00314eb67c0ea6064326dfd9c5f1e1245957f27470b0bd162bbd326223e74d26e8a037ce01e92928441a4a30964016d2af4177bbf2a4f2e4f30049926521cb181d52a03a748c1fa7e18fd10e96714ed12bc9f3b3a8fd53410c2801648d6519b892032b20219ffff03f13b408f31f8d3f0d93b86ae19400004c93b1429279fc946952767dc0d709acb03cb617dad8ec57e5b47c86b51cc183c775f4884aed1726476e664fc4fab0dbf1903f6427499815073bafd54ced639ec7cbb4a49250b4045077353b2bb48537670ab034a51a0ebf2d4efc80a37d5c7c3bc70558e6837aa8405bb33539932986a871aec03f9a0ff21911c8c6a2a385c83d5498a6e71548b8425182583474bf0bdacb84e130339dc1cc41c26cb916d74a9ecc9d60820e05a3d90938799e3cdfa7c4f81419c1203661c3388f417552f63bc2c32a0f4a1ddd7f56ee9f838946b6757d0bfaea3571b0219ffff03dd1feb7ea0dbb50d7fe213b8faa04f4fea5ddae8c86ad798e3752995554ec8b3039a39bb860bebde6448a795d16a01d81965b27a0a984ed1cd694ed2e10267dc8803d645958e866c3a674cc45b46d275b1d1bac08a80c0abefb3885ce22efb750c3403da5cc75c16f8ac520a75f144779abb6e0880c99106af2647bff7512effc6336d03447a1ea5f5c56a6a39866f058ac5b30d6448d1cc198a54f05353b0f39d4a6e3c03149c921222f58fc19cb0d1d8fb3c13df39c80450b2be32a9e7808d1050debabe03a4f10aaf09c415e6d73f36e2a27d88539a665f1594488947be44eb6fef4cfedb03d54895b2d5c32445bd3ed2ace1175925e5c17140a744038780fce70811bb715d0219ffff03900c54a0633c3b3b4975dcf17eef0ba6fe8cacf124fc3b38dcc1db3374e8309a03fdd9f5f0d972e7dbc02a74673883951fb27188e5f4e2f2efe56efd6694fa416c0352dea7bc5cac7d43a8b63c5abfd3121841a566613d2b6d30ce5f9b1f6f53b351035daa03e2e5dcac4f7a66281b960246a41ea6293a2d81dd0f151b9492e80d10880366cfb7fddc41cb434111465d1a326c728a4443f5222112d09b94a5972347f00f031aefa147a8dd4647596c79c762c83c3589fe3152cdd41240e8b6de248c1e69cd038f06c6497c1161d1b0e3c56280079040d6f6852bd34b36938c625cbdb1e8918a0327652c32d15711a59b123dcb3fc6a2816fe0958c5c9e20107a1bd86699fea512030f541b0bb3443a35382fd974848167de9fc4bd69ead0b796293eae64a051b76803935b8af9069c7b1b57d33640f6a233c17633e94271471a32ed58981bc7202595034b6e1be24f52d90822c1ab2697ff1d3bfe7d9318c5525fbfd9aa9dd93aa942db034f0781e979adf6db9975fe3775f280912cb9e905de1a1a94d18e54d3f2436002035f15c94c5ab0a77ac9b65071348a7efb6df97cc492a6276cb4f483fa2bb5fc53030c2ffb2c75fe27b39f0a8cd6a03b0ca4724d5207b10a3fb90b36ecc4595e5f190343c31f906aff4915e4ff6c661b38b94a4e98130a79f0dd6373d1fa0def55cac20314ae9f9072f0d5fa9150c3a4bd4665a82c14fb65470424f8b7ffab8a9bc16b2f039378f80bec2a2a64e0964c46be73494800bb1e6b5272f44935ef046ea0e9d078039a20bf1362c2c3cc5ab01fcab675db62cdb20b23115d3d9ab6d4f92321698fda032d678c8c4658146841bde366213357dec5bc529f8b34af6813ca3be4a894fd6203d71952e45db47426a39cf4aa5cdca3a8acae50de7ec0e7d47d0c38d3eaf873b60371a12cfba07e545d54cb164e57fdc7b046daa7cb7b9091d04f34b857dac36a2003c30beba8d947dc0a445f69a5e3f9ee9fab2c34a7766ea82d1c79e5d3e1b49ecb03ad9543d690789fa5f76301d94e1a941f07c72e62a3b55164987196fe4ae9fd1e036b03aee525e55c421cca02a9be4d47368e285adf6dece72004ed971fe264cd12034e5c511ac8abb4c4da7940884af9152cd2a16cbedfc2d06a7071e61710c1938e034af6eaf254d2d0e45f6a40f9a01caaad536b3b15b0647eb727521a50f3523093037e797f53c152e86e9c237d536a58b2e72f52f5310097a7eb652c87ed3b30bcb403df104259b66add050ef34d16e4897ac99e95d2119aca976697db40e3553b863103a93c1f5a7fa42d1726163ce64b712cdf9e6550420854d0e9a0033e9e83db25f10305e159d63940b166a9108076f8e36306243dffaa699f655ddd4f5d67afc6b661034e0b2b1a46dc0fcb53fbfdcb3ac2af0aa187183b14db325f70bcb48765b57b3e05581e033c41ea2f7d02cb3468320d92ba200695161e6b1717768dd1086e699d900c0147034d0889f8e80005581e03cca10a9fb8eecf1afcd67d4c076d1892a540ccfb904b114fd3731439700401030f3563a00258093868dbd931571478eee2c69572ba70fcb80042c332e5432af1034d9ae27733a6e19aa1270734da507990d74d9fc3a2b524196d51b4d25439f41403a730bf4ae8b8d79a8c09ab8d29b845fdd4c90f497f2b15089a8c5320d8cd7d9c0332fa5f01dea0b274e25d6847fa47e3c1e36b51018e35e6dd03ad11d32b6fa9d905581e03a7bec9cc0b554cea4de666434905ec25d1b20f47e101fc30998338a47007011bffffffffffffffff037437a81bc58dd292f56efc59ecdabfe302a4f128da8fca7dfd3e937b23b4f89e03393fe9bb3baea0b275f2bfc3055f19b396b911de9a2f486d933c5d45d7a4b90105581e03f4d1d3c530fc3f6699ddc7583042d0019273c0d2243d424ac4c429446007011bffffffffffffffff05581e03599ea741b26b875e0882a055dcef43b4ce29a9779d9f7fbf6dc3f6772004010399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe90803d4ec60a074eaa9a882cec05fa6287ace503b524bd1a4bed9a30f2bb3b8adb95405581e03967b04da93e20d277283779cb4141259f1bb167132af5fa24a820d900007011bffffffffffffffff05581e0373836413f1933e3049912545b95161b5aea535ff0c5f4eb9642d8a57300c181a478be2e0e3de527802199e73036148e220307288c87bb5d6b18921a0635fc2f3e4e6230bd84f9b134e2d8448fd0219ffff0354d1a3a3fdd5ffc125beb9fe23edef2ad7ac86aab75c43bba6af16afe017a14403b653c499dad71053ab1bdc91821aa98566d3cb2867a0d69fe3773fd2b28f2e1903d1436238dd0c288da1a7e02c3a586716c9992c0ae9df19e07f3991afcddeb2340308201d90729a8ffe3d6d84cedbc40e45164c85533ea840b835c0ef2f9952e50a0219ffff032fc115de1d276283da386a77af607218e701686fb5637813476df107c2ae88810337cbaf566bfb914cf7b3b1950421a7dec31ee49a92ecd394e9d21182273224e803733f468c1b060439461560075985bf535227d934bbed62fcf144f98cb23b46ce03b53f032a4bb126e4aaac2b54910dc92b6cb22102dfcc3e8787515a39f368f519036cb36470ca723a39f7ee82bd679d5633b1b37abc25e6a26d022fae843f1d0492034db0a8e3e7e32a05b937d0d29851ab8378a9e9834bafae86b2b3c555267658670303a9d458461630823c7ae4ed588c3a4128cd1eb9185c357a6bff8ec8a6cc017a03a4e225fe3530a70c8b44f85c8933c9e5dee10a7f595e75633a91283c00b1514b031469fd19985d06634758b940baa92f08811a243e32d81030787d4a6301c92ebd030339cd473cef2497aae7f33b71b15506d31e51ba039132d9c5fb2db62d9f6621038174fabff4f0e7856ae17a07d00445b56d457f5977cdffeef83a00ac0705c25703b97bb09d148810f97aaaeb343d47deec75d6f7f83b706fba89336695459bb2940371f2a7b9e1f61ae6a7405b8d1cf72f69d51aaa1047b445afc58c754d1709f1bd0219ffff03148326c6d734680f8e84c7210eaa4d49e4819ad9578178f10cea807f7b533c530364205db74d0ddadf5648e9a20cf471ae0364b39dfd9f4e09b5d35f58a6ab38a0033538323b12bf9c9f2a3a3e87fb7f86ad24f45bc7235244e5075096fda018613603e13ec05548b43ebed01091a8b6b623fa4f5cf6dcd43a0fa733a96ce4caf9ffd903f79e5d6448e8b331f949293572e716cc36ae1a244dff2ed05ac104744b664c3f03a0f25b6ba2ba8f638c0ffe52d45e92beadb5d6bf4eddcb69ee9bda0faa6d2b5e0328abce403c1eaa4d96567137b9bfaac32f744b6d6114a5b7741a39ca5c133d7803837c7cd4b01f98413624a777d70e426d1635e9bdc5481dd1f16771680b9e6ef603efbf60b176d29e95300ab96942f80b1625b049d779a76e738e1876738a4f742303ef83768e14bfa473090eecf49b2f7f6056082fc185931413e89796c164959ccf03bd41ad7b13caf70835ee5e09acfe7dfc861a85624384112186bbee62189c31c003c2352e7fcfbf214ee1ace5c4f1835e8d2639475bffd22977d29dffa84140170403a23fcd007a9c81274379e88c532ccda36777d96b20f0a01d53443f4b71f93b66036094d11e5d874fbf6d1b18042d4f1ad2b90291958f8a00b06b4cf224e9f8ece2035fa91b85e5dadb0c86c0ad77217b8e88cfa7ee0010954bbcdbc6daebf3f3216c0353aa25a6258a7e4921eba6857c4c73635e65e50a229e9aa7692b1cfd1dd3cabd034fcdb90a97cae03c45d8d284e880928197b5fd53d6ec42ae2a5ce5cb5d5fc98103f91fa921bfe167a717b156f5f9a29135a16bcdf1c162f5ba5dea47c0167422d403de21957553f54c8ee511cf9c14ee4d9ee4706713fdf7bfd7c7ad90d3e05d2311035f059c381b43890901fc219ccdba91df6c1f8459997d8cd30cde041c291acb89036c91fe59eded5b2135450db83fca3a3b9e15b51c022e885618a76d6901cb9b0b03d00b66847f9f78dfec1b37f4e900400d5f52ef7b3c01b7a865a715b61b9bc6ac03c4a81f7f7a90d584004075a938c96479463c855f69fc85e9e4ae37606a2a94ba037605065e72ac8d97d552b18d7cc66cc1bcb2920df922df69af0d527fbdb45b410354eb2e6cd765137c3ebde36d30decd3a9461e9245ac510405740a1307f700f8f0309b3401df44a885d6ab901ba7b789b290f7c3fbbdb2739ab487e33ff48bb6f1303b124c2c227b22040df405b92eeeae70b28f9f59cb355220a0184c2d26aebf765035249149e436d90e5fb1dff83e2a9f3d32c341a569b995542e518376eb7d90d2c030007fd17fdc3326a80364d9e820ca33580fa9e4641c3d9864a653c90515e32550337cafe196e17b32e366ccffbc6c5de8e9847b1528cb8ae3588754b171c38bcc303d1a7c39603704486613fe6a83d8fff219e1b4d71cecd01b460703f4d0c4fee2603990eea9844173fdc8b52d180f6c5c50080c7e7fb6f10a81e9d360d4f3ce2d35705581e033337fe9c20b581fdd4878905ff1d32dc7c3c3d803a13115e8f3b26d2000401038c8749c75e158292e70ecf6defbd039c5b739733db1105430b065c3d40dbafbb05581e03dcb1e941663123c5041ebfc2dc3616af2bc998e212c79f209a5774d0800c0147104446d6f7dfaa03506041def617bb58afe7185e0a67ab2c386723fc291a75cdd55b97e659668ef001410505581e03394cdab05c0917af6f659a5810db5d0d3e07b5819fe8b30de14fb457d0040105581d03485d5fc562e4fa71975bf7752d4e805b0edc0b7d7f967bf4c64f98d0040105581d03a393dbd067dc72abfa08d475ed6447fca96d92ec3f9e7eba503ca61008481a5fd46f92e550700219010205581d0262f882aa495464a20eb02f177ab90c35878dd4746d27104f1c94ffe1040102060307e513f4512674cfc773e861e6a34250eae5508f5a24b1af07e62583eecfc67505581e03a46f8aa96c2b53f5df9ae061cb918b289e536ca6957ed2a88d3c31b6f00c0d472d6c7ce4cfae93031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0304e091cd4ec502ae6bd035fe8c3f021e65a908866af55cd8977ac6e1b007011bffffffffffffffff05581e0371fee7af551da07c4837d311d6edc69fdaf1efe175285514b77143bda0040103f2d6a5c820099a8212b3af56264bda3b519af5379f1a09f2a6e6dc412a1e656103c82e9f321649f50e95a89db8fbdec55babc1a552850ee7fff4d22d9aecb5710f05581e03304fd0b47e7e22cf19ede0e60934d781026ce61cd6e946f33e8942af8004010219b7bf03ac026666c540c02a02838e725f62a41356e6617ccf16a930db35ad4b253253c203519673795d36e820dc6a8240905973ec32a70bd160780a3d8d193c3bd6aff47e03e7753f6ea587dcf653ee9ce04642694d4b3f4257819e0cfd99f57e6a7293ceee034f77c5f515627072576b8f66230a12d367c5c207a468a43293e202cdad4e8b36037c0cb601b82f23ed17e4a1239e8f052954bdca7fe464b0f711643c79e027507d0219ffff03229109880d1ff51aedbcd8a9874fad59bdfe7c570536f411c3b681aa0695041303bfd569ed6c9df1f284fb079c66bc0a70a79771c093e0f7b7060300318f6999980219ffff036af55c5c58c0767bf22593094a6f0708207b951f5c812a08566641b4ec11ff0f0341a4947e116e68309a4e11e8cd142d06fc7951cdd81becb8745ac03e94aba09703ea60c40750286fb6262dae54a0275872f5a6a7a861eed79b260ff019f6c69feb03d4292cc45d8f7d76172371b1fe1d50f0b5f5313975bc1262358789562feacc92039c0111918900d783cfff46e07dafd7404c62248a1034582daf0b4111d3de6db3031abc88bcff2a327a7ffef60433be5a613e38c1d9641a18365014d4986b8f197c03ad52eda0293be9a94ed28f4945334df95eacf8ce6d0e191b51338698bc78c151031119c3e913c8271341096d6c04268eb0653a725ade020b21617c278499bfebed037f0168ea1a8d06a99ded9192d11cb8252d7dee767e4a85e8398b8cf81031345e0219ffff03c7dc1e8a3baf85f182f53e16931c75dd193b2760ed93d326782b11f11762d98b03f88b255a094f14a8ebab6a5607c1dcbac0002b5c7b120fbc323f0def79fa8d3e03801ac1565c0084f7355f307ed5e8cd09e21b56a84aad37d21399d06ee70925d103c1731bdfcf7bb1a76f697608f2d1a86d27e8ed973d20ffafbe7aefae0872721003c1512d81953ec998c6e41ca76e1191954d24ee722ea97ccaf691fa6e2713ede003c87d68aafa783679be9dcd843647aef759b30048bab54acb76949ffae417468b03d0a72d43726288f31fc8615bf086ef7d2e150f78086804dbc937cc48b462e65b03307ea6a97898d4d9895dffa79ec670bc7c7fcc905116b01724639c17ac9933030219ffff03a41a87a6593c8db00917c31d5b265fde3adcde38255a056df6f3046489438d31034d482d15a7c5948d80ebf56f1350bf33b3efb0b72281d7948781dfa412627c0e03ed95db40f452f5df41f476983c50441d5fc05db9d40fc600aabb7532cfc2c71903c3b967b3af18514a612ae9dae3958bdd7417c63a19a2e8fd18cf7b1c000f4d1903fbd42189e9d5ea0d8c7bed58fb841f4d62b1acf7a259ea4e72b001274d52880a03bd4ab9527711d374e5519a9f47cbe20cfd59837c1994d78f0fd3ab27f7b2665b03be5f00705dfe6d045fd6a94a8b2fd0782107c0d485d1cb1e350b4a0dc9ea6600031df686a098bf5e1d8bea6889adb83356cfc99fa44a6576c59a6e57236ce3b17f035c6aa697df198cebf87bd101795db24b39f1b68c63a51859f2331a7c98c987a4033874d7659356200b5c5cee6c50182545dc6eee90383790a992920641bd22d28103bd4c0c2ee9066fad9bd86195d58d69d1dc691ee21d0ebbeee087bc638907d91103704f70b5f82e896d110f1cb990ae9c2ea4f96600a372cfb6f6a7750a8b03c20903599497587eee8a2e50c3c70d2fe6c012941e54c87b39b2f0d0a30e8e67524f0003b99709ae002f09d7a7f9683ed6b86e290f16ff9dc0385d1e4a30fc736d0643fe03895538a9ed7380fda67df9e2827b6a39ad6c0ec62fa618941b2bafadbc1ca334037df00efe1997d801aa50f7cc1e6081f9155dd9eedebf1f05aaf93a5e7eeb0f7b03442686363f789331f6dd414c07b8d733dbcd68756c3efeef5d4446a07fa89df303e2d67a0566a423d589addf9aca29f6edee5f363a1e127eea8bf7ccfaa10539f30315c1cb8281b9c61c90bec2ba613034af4fd43841a63e207bd628dcca74704d4403cc4b03b5c1497c0ce5b843a60df32a2550f5735f4fa2f258d7c9699e294c378503dbf2b599076c8ccef27737813183b9d0ba3f132d0c1ba2544bd2d51edbef66df036290bef107f300ec54abf03150ddc1274d7c851c390225144d5541365051a842035ed77ec6d2e693b57f22b712077300d27d45c902cec86fd471828d3c0cb6fe1d032f9efd15c94c6d43882aebde4e14174ffde3826b631657065cb2b0e25259e058030214de05ff2a922e9805db1a2c0b9aa247ddfd856c6e7d7440e4cfde43344b0f0315878f67361b04c8b3d64cf8c2dbe5833bc8caaae6fb542ba11d60c84ae10071030bae1583287597dd684bb1f3dc1a634fee07b5971a3a6debf7789587b2cb1b810320ec3a2aa3a8d369d2dbf648410d1eb9f5f37be37b4a90e199b4b564bb2e120503a2a0cad9957f45b32c3c1c90ac14830a5943b5d4e8ea49c9466022dba95cc61c0142002903d691436525dc0a3f445114789317f2be94aac053f4d819bdb315467045679d040354059f0bef0ae7b82cf20be3e01f42bc515e5187a9c42ff5b7d2c1908bd3b9a1045902a860806040523661001357610011610017565b005b6100115b61002761002261005e565b610096565b565b606061004e838360405180606001604052806027815260200161024c602791396100ba565b9392505050565b3b151590565b90565b60006100917f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100b5573d6000f35b3d6000fd5b6060833b61011e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161013991906101cc565b600060405180830381855af49150503d8060008114610174576040519150601f19603f3d011682016040523d82523d6000602084013e610179565b606091505b5091509150610189828286610193565b9695505050505050565b606083156101a257508161004e565b8251156101b25782518084602001fd5b8160405162461bcd60e51b815260040161011591906101e8565b600082516101de81846020870161021b565b9190910192915050565b600060208252825180602084015261020781604085016020870161021b565b601f01601f19169190910160400192915050565b60005b8381101561023657818101518382015260200161021e565b83811115610245576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209b8470f06e8a3960c912103fc2be177edaad69584ee3c7d2809ee737e79408e764736f6c63430008020033032d3d1298e229952932aa048161d291d0a04bac4b4843ab1bcab7156ad992a78303e50ae64b1a4012affc89d54b91d8b4153b89f4f8f432710cbff10240511e5722038d7aa09a0088077ffdfb074483ef5992aaf2cdfbc5fcba0ffc0627193d806fcc0366dc528d70cbeb901d6411a8be3712d65446a2aad596adf15fd99f3a7062926d03bd046587899246ec7d52d178673f6464a23a40ad67f96a0b66e2b698bbbd795503e76fe697388d5dc78205470b8965b2bce8447a175a2aa0111842d7043d04806e039c07515baff2e48b9308c5935696427e7106d08de27dc4b9dae250a624995f7e03105874851e451d10984b108c30cf150a5bdc1c6919d5992526b3cb614ff3cc5403abd657c851d34abebb7ebca7539625675ea7853919600a6d125d2b0ef36e344503aea077fe2a94c13ed86082519b23ad85df4ca0960909e360a01451dd04d8270b00582003f88d7e320bf5f3f800fb1f21cfe4d23a556e4f8b0680d6e2727c2e7f5067104a03be65609f61b0952ce300582003f5e20865aacfcd23d352d0d32704beb0aa851bcf0ff399a6bcea544c0b89d04ac915541f29dd2eab400000582003e1fda926d74c58d3a6b458f862506d18ff218ef2c9ec02a2105ea6240c94d04a022461f953149827b4e6031bef92623069531b016bb7261027ee2ea2249b9bb227735960a047cc278c131900582003ad1b415e1c95f814aa932639d6b9016e1f8d2a47faef3cc785c3bcf82196e04a0668c8fa016c47c3a000005820036706751cb8ac66760c43a7f5d6222896f4b5316db0f12187fa59089446b6d04a09033dd65381a620334d034f935462bfa6e1e01b15198395cedf08d56b64b5fab6f8400e352ef10b13eb77005820037ba8acd93bdbb00b2f525806f7e9d46d13b9aace219a267ef8d1b8fe8712304410b53dee038a70c63b371187a87aa75ac820e578100e0e5feb02a19f28c6441655598a635103d2af5301e36bf639219c8ad2b9c2d489aa2bd9d8711db7a365486444deb92fa603183aedfaa998d0b1ddd1bb42ffa8cba0a1dbf30d40bb36e9b2e9b1c198a149be02193d7b033efbfd95b249d7d77a649b8a74b151091c869fc641a024a4df64e4b040d304db031a324a6d7dd6b77e12ec9ea2e359a8e5ba91b054c75e0789f85c7a79f2296b8903094f74a2f0313a8d38684c62079ca9059965e406228e6e78f1e310213aa3302403e23b759e854aa5f0cb810b004592b1c1d4e42c57283bd67689ed7df088b5df2103821821407b07f40c52cec538a2c70595b40a5af09c6b9e9a14f3622982f675f503d2a6c4ce028644022a46ec17b86e4c491bc04dce7e2ea1b45bce910155fba1980219ffff036595838f4ce9df68e81a8d5467fa66fbe3e3395d1a1034e18eff250aba135f5203d0b317a78b8c7adb89782059685f699c0615dd717ec26874e5eb357e50d195b5038f0e55e5874b258f2c428f5205bd4abe041dd30138443921e6075b32c97ebc6b03045ab674144f7c12b6ceafcafac54f4008a786656c8df0a831a98338f9fbb0a1005820035f1e0c3956bb5d7205f9d0a6c2c641e564185222763bb53f4298c515fdc9404a3f3f0d9c27ca4aaf0000005820030e1509b1d134c93e838200e2acc090f9142f2132b435361d5b279f197f16f0495507013ed8ef230000005820031065f6a247bf8d46ebf99741871409b525f4ae4debbd817d8775531e5ba4704a049b14c57a758b600000038908e1de92976759c10ce07a54a108fadb617dcc1310a022814e04a9b704f89000581f02622c9e2b7a207f07ab69925f9e419e6f4eca743646b5640637623d8f427d4a05a952b925d8cb8c800000581f02892aedd1c59fc1bedcebd43afa8a1efa50fdf59e05c86586731034bb0d5e4c01705ba4a05e9dd64d73000002190210031e4b85d3d1f7b16cb21508f3db596862486254797d0e0a227f3b0fed0fe2e70601410700582003f6c2a4be8f4c58ebbd78da8d7f8becaba34f4cc6693bea05cb1370bd4a7eb04a038d7c1385faec8d800003c77a1106a29bc9625340364285d9a6d555f1871cc74286a699a8bfccd63f37150058200333cd800181a9e3d516d0eef22758caa6d8a14f2ff88fb0d1524ebf612945e04609184e72a0000219d31f03d05f4603b686f06cb2a7bb0fe33c7b1c7f6521bda39cb0f63641cb528426cd45036853e3f2bf90cad67301276878542ee9e9903d5821a7acdc85fe11830d32454a03a43daf34069e8c39af3ca65f056f7f11fd8f0199ebda72bd91a6c54a7b049c43037371a788fffab95695dc08aeb56542650b1ecf26cf22f3d08aec499a06f40c0503155dd190e6234babd72f260dac024a93c7fb46a31bd429b88b784560fe2f580a03499841b996dc749da25511afd3d86c76550736ddc37bddb407560ad4eef8dd8c033f1cda3eaf6c50dad6562c6708c2f0b7a74d8b8edf490c94e9bd485b6990b12c0331598ed8c373620ea32cb1d5d6bb157fb633cf3227014576907a963a278a939703ebff840e5ef3a9501877014245a62e7acab304c86f0e60d15ea072d8ebf029590314691bab85025765ad925dfd73668941339a60896f1ee51c13f245c6bc74f285039eef63a83f6920419713a1773af7c3a3428f0498d70e13212e4d80f9167bcbe1036a460e0dba677a4f1aa681ce5bb7c978114666276b73bf017e0b26bcfc12d3af03aafa17af7b4dae72205feb1c577c64fd473716675d91830ec3ba810d245f96f70219ffff03e696c1d0a7b71fa5e918544477b4aae92b6e64d09b60dfbc08f69f8bc76ae8aa03357dae389ac3f5ccdba61c7a22c83cfeba47971695c2b24cef591ea4c97667f90308ade91aff5fa16cb069b72af073a839ef248b2ba0e54b17c9851ea64c4081d10329f2e088df13ad41f38722a663579f0d2e65a5916353b8e07ef9f934d940d40503b57a102144c1908bd62f10b01b449e1769bf159bd9c6318395108c780e78d7560384c5a695ef2eee996beed628e84636a957fb982a2605c69b74c55c6ec4eaaedc033ff6a6c652315018a7107b87a281fefb6634c38a0d723585b0188380acde2d3a032896291d44b3f5a1b9934a4a2887f706f7768358506a291a5c509484afc6a4500325d708e6dcecf9140edfa3632654c63cc6a6ad7e588fd3d595f967df7d74a2d3038113613528553041a3118d336895ef940278635b45fc439e0a0b15c9bd8d92a1005820037d78a2cd04a380e15b031b1bb1d57672023fc55169d82a5415eba37bab6b404ac4f5886e3a9ee3d4800003d6b85561a1175695bb4f0ab935954da7ceced3d35f1da0b63b035cf30534a8a500582003ff6649599d96da515f7e59a9a1016214b3e27c96251ca194cba964a998cfe04a4b34c600fa8f7e14c40003da2dce8fe460d7a5a2f5dae720ecc60d9a6e3cacf0f7352faed518342f8766000318ffe7d189572c83ad14d74d7f93b086365c178615f9bb38215d6487181a2ed400581f020eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d549c056dbba1db552c72d1bf852882142dc5ebb5b100581f02343ef2efaaf1e4d0a2ce011da5bce154fe676b73425bec0d05b11f3310b34a2716cbb5916e0690000000581f0221cfd542667daa055621b8270dff757acf6baa6d6831f428436ea63bd5de4a0b3163772d476d3ad9d00219044403fcc0c9a163c88c6b5c18e79a4697d8860c9b772090e731ee7c8a6ded5702db2d03f204eee33ea02693885b2e5b6af58278428c84292bf419587ff2e31958a781a1014109005820034a11c443744d31cbe0c9ec5a9c85afdbd0c04dfb71fffc041e5a16af949b504a0b55616904738e6b1800005820037982643e0e016f42388d0f298310d0e568ee87bdd3b3effabab3eddbab4b504a50eaba7925b355a529430219fab703fbb148f00bd99a8a3397b32e2bc8c3667cf9bc5d7adbc7eb400dab82e7229c7a0370e8fed30483d8994af99bf77dca5d4b2385647cc2b91328d0f8713ac4e3371f0346d8a82e95e23521053708e96556e17b2cd2c41eb96ca6375c441ff77d1ba50a03ea9060abe4984263661513d450f0d6cef2b2a2876257da2a45262834cb01ae2b03fe090252144c37d25d55231da0fe300ff8ab3f001e3f23de4be6c13d87644f3f038595becfff15eec43222bddfcb1253c0e1dc7df085fd8cf39557f3fc58eb9c050361bf6bc0252fcbf6fccf236afb94fa5c4afae22f2566ec493e08f4abca7e958903d180a05ce40a70ce86e2e6309bff94290d90c7897f2a9117b95b6daac37a19d903a47f8c1e240d4333c0e4e2f8be0b35fbe42fc52b527629954e528a9b4d9f3fc603e7f7a3ff1c687847f1679e6f6bfb1cc68e54f681db9b62523c1383e106a8ce200219ffff0347c8e4dab22511f5697cd19dfd6e6616b550a7f25c9c2271de8fbaa6463132de032c740a030cb996ef3f2b6a8449cc7a72927556d6f9797cd6475c5006bc1bd544034520d5894a3ec04f0bbb60c6dd0a323e6fc6fe46cf63cb7ea502ec4a554df2c703101c8807c70a04eda44ee5d6d6a214e4518b3275b92665b7f82e96aa8371b0470323c4df6ed82f5128328a77fcbc37cc36290626c3db18bbcdf08d33703403a7e0037da392c3a20e2f5647da004f611bb2b48c5fbc80c43a556b3dce2eda8a28f23103bf98a247fca3d90ad141a3423d6e14db67eb5e9bbc5d11b840f2a79b9a3c63bf03923e719cc9f2185449acf1afcb5f4da140c59a64074f1d0c1b68cba2c74b121903d138e2f98fe873a302c1555eee47c0a5585b18b4ebe3b69cada4c36506e3b87d034df5990bbb053a287d3dbda2b699af107398a31deb131a32bab223e1b2bd32a403103b00d1d7cdbf909ab2419a04418c40f4df90d1a9a8f658080af4fee0b29d5503174a11a4e6c4356c9e9780ac20f519a82dd9187e00a27519e106e19e61bbca9e03bd6306c033a06bd8d1c95c3b40b44be4d71f5357e4901e068b36eaef7b24d94f03a28ff97709a59598cbe2f6b9ef1e2d9d7eb19a688b56dc52d0a698447a9f049f030b70dc9d8c1311a7f3657f05d07c8ec82c1ba5a46673f9f878fcc60787d8db08005820032edbc91c24f944c3be5cb040106c24ee2917f6635664d9d75650307a7e1bb04a017b92cfed07028d1000038f00d5bd83274644d24fe6a880b3b3aedfa6b77c0e8d27be785aaff136d4cf5400582003b6ee7177d47327b383e8510240097a2b943ed0766ac56f78351a895d9cac004a01dcd158380243a4a80000582003d4e4f5a071aef2787fc795b92e3ddb7a27d5560b2f461ef4fd184686fe5f204a01752eb0f7013d1000000058200342f8123b8d8696957bad67213a65148839118b94f2d1078a34ad1cc724c7304a0f49b4263379e2678000005820034e076a64c0c3f9164ffbba6a26a7cfaf7194593cd9944433227b48df1b1a505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003e4932a0b8e04a2bed3bf0d33c13f160accb21e58421d1a1ed235f127d194204a04026385268e3c868000031f6f480ceee233786d010fdc10b29b13daa9800fa1a82824348f2b1be3496fd10058200337f480202285785953034bd25219dd7da6f35712b25026a533024c521119b04a0cf94ff6bfdfa7b0340000582003dc71ac91863cbd802c529a1039f410143d392bead27f94ffacf4b23a505cd05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021975bc0219ffff0337902149c5820cce133051842501d6c17877075447789fe812329a672eb1c84703dd4b861e9a6c0f47a67ed5718d4c24d669c2e4e808ec57db963ed8cfc76191430354ec12ff6acdfb9e18c22f5b0341c0ce331ce1b9243a21ccab54724b1f7cd2190378a7c8a483a4ef3a5b3d32e31a9c95ddb46225225416ea98d4b34c14e14383f5032c350dd48586f1ee2bbe0ae788d8ed0b09b147cd721b36479cfb8196dcfab6900300fc0f09fabdd3fcadff256fba8c4a27692e5f8a42fa929565e9d39356995a9b0353209bce77193644f06e94afc7fc1a91e057c1f854e385a18cbdb308a9c9efee0219ffff05581e030cb2dfe127bea72ae389d97907a164fe9525cf6dbf929b1285bd9c768007011902a8031659de68e6a279da28599e113109376d848bf72a54b56d945750294b8c97e773030657e508cc6d404d8cc89513d451fab06b3288013a5753906560d9cbed22571f05581e03b9ec2171752d6b5028f9b384625b131b39ffc808b88116755bf732542007011bffffffffffffffff05581e0398976afa3c0b049dcdcc8facba7032daa6189954d1abe1ca563f368f400c03465892fb5deff803b9bfdbd9b29aeeee4e217f5aedeabb4791d65c71e831a16f0b06df58180a2110031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0385d926b9e844c3df28be759d39f6d4e4e180e2aafd83afdeddd9a2179007011bffffffffffffffff03eab45e80c0800b6b061c2de6e30845f0a85c9456934902ab194417bbd7a481ea05581e03f1d633faced9431d45c3fb2ccb5068efd6b0fa97e917072e1e7e9a5330040103a2da9cf57ba90e7a8ef5a096c3e2b3e7fbd6a7b41cddc5bc054b3892dcd48920021927ef03ef35a3ac69b4d10a6b17f7dd9a8511792e31bbf34215e43a0f569e7ea777e5f8033d128fb0e6e96fd2c069311e8b299f6ada5d63fc416fe3c47586f0a0c9fc39e803d06d468488c0205065ea5528d38acb2fa806a01b77109e36bb3efada827d01fa0219ffff038a8aacb5f08a0b0ca461d98e7f20e7cb213d79f3d3909aa5cf02a82497bd3609038892806daf236a14b313f34f6546f39dc2024965138cfe5b6c1d0300a78dec8803193c106cb760ecf926e58c777365918ff84c0f3f8f68e7502d94872131d409560322d5b80e013bfa738602b16996a45d9a85b0788b0f73fa964b5fd6e5784811120328d278928c7d23f48d2a500a012bf4d486217136e969bb3158c548662ca4840203e40d4b3cb2f6d03ee0bcdf7c6597d1cfd4049181cfb4387b956bee1e139308bf039438d1ae769836fd3af8f538d021dbb67fff6dedbfedfb2724f5b1ebb5d51dd9033fcb08059faece2798360019ec4295f302b0ec7168c406e08d4a9e90c0f2c27f036acdba09d34396dc45c60ed0e0c9365487e71a0ccc4942d9f0eca82cdbc30fad0219ffff034f88117428c8f29078f44e4021ffb0e4ca9ebf6d98e30dfae9ada01240e8c67e03b11cbe3df568c16cc777e15138caeeaf434186dcba26c7f53b9b2c0e366fcb7b0384f6bf4d50feedc020aeca10235f50ca5bc2dcfb6471ca6ab56601a37b955741030698d99595e4e0d5a060a4315732d7d86c5af397eae52fac7a4b644fd0033afa03265cc004381fb822cadc2f8c9c3b68fb1ad61b81dfa0ae43189dc2f0fc91f85603a551a428c271d292c25c9b3810b725b2a90d2f5b923d5b3091bfaecfae6db0fa0219ffff03bbb6271751a2a99c7648f3bb36d9e98121dbefb54f7caec1f205d05c262ea7eb03f54f42ad4910983dc4cc25abec7fb70489e43f01eaf44b99e4d9f9f85dd6bbcd03880f8ae26afec79f649537c5d6663af1c1be9979e638b47320bb52096fe68cbb032e94954955631c1539ea9fa0c558a1d9be32a2666fced7986e74748d0f48cc7a036c1fc027f84bf028b90d7b8f7fd1ce8c9483285dcc057245726f4bd5d3b20829032d0e7e9fdf2acb0d7a8bc9f83dfbf2d44598cdd2045678f332a42eb055f2a9c903d8dcfdb118a60ca94e6e9bdf792f3807ad50bcc2f95acfd60b8e2525de32040703d11177d72d19bdca6ad7130f8f4c82dbf7a625cf77fef020a4e28e2032fd407f03f01eb7e1028be34fd10de9c3f6d33d5f75afd707e6357d1d65388423fb0023bb03b59cfbb384aa990b61a3483841daff2cfe1beb4e1b10b3d939babb5486754a9003d0c3b6e13d854bc135d0319adbb13ce12d514e7802b06451f769343c68142ee903e3201d66ea4d64155b7f646ac41532fee0381a0f6090e245aa6c84bdde6c1cd003767cd4048ee619c65af244acbf5c096f787c98d0882e30376dd594e68cf960d903865e8b7b6dec90ca0282e59eb97b463aba53905919913c887130a6451721b8ba03a8018b48de5cfd57d4eb1b9529ddc657e7701d5312ecfcd358a22e9821884f7803b2a25c1f1d75316e97954239178cc0858d49562ea01f78d8785333906184dffe0321a50a059775c4f8e4fb176f646d5b9d507f9988631fda4df70d296f1e4e29b803dae75b6751b64054d33aee7dc8c4e57e1410ae5a9815b66f5e14c191a3156c4a03b271d5c4ffa320bb50dafbd3ff424996b9cba493135f1f0eb440a1b69ef5395e03bee7a6c041d49983b848ac436aa47e7bd9102da90f655b8c44730d8b4128f51a036d284fdffb2599a6eb54bf2631acb83cfdb688bce510bd391f7a1481a65684c203066ed42549e69ec0e0f62a421766ddccd057814b609f3d8a7ce05ee3bfde919303f12d71b487986da0b9899ec9495714a32f42339d23a3f1f059afb268e111f22105581e0316ddfeaa89690c2100a972351709384cc496fc1784864f65f7f2c65ac0040403a39df382a09327fc9959eb7c077e2f2485aa0ab8301c6a56223dcf4dbfc7fd8d0371f85cc922714bb5ea1add781e766ee0d6ff88cf31cf2829e143aab2a7c6b52b05581e03548bf88bba96f66143ae15aa11d8091bb4db6a6e8720b08fed9c34383007011bffffffffffffffff05581e035314d1a2aae0a7ea5deac9065c593b15e109b4dce23e0fe87bf750e3c00c044739bb1bea56a4b403de7a51827e140dc5760c607234fa2cbb2d7d2fc1a70533a1389238e843322db50357c4d8918ed296e5dd59009f95b7498c3b5db3748e48659c85036a48bfa73e0205581d0240b159cf35590717ee3b8025116f1b514b14937eefc1073abb2327960402045925ad60806040526004361061014f5760003560e01c8063715018a6116100b6578063a217fddf1161006f578063a217fddf146103c2578063ca15c873146103d7578063d547741f146103f7578063e6930a2214610417578063eb14f53e14610437578063f2fde38b1461044a57600080fd5b8063715018a61461030457806377f050b0146103195780638129fc1c1461033b5780638da5cb5b146103505780639010d07c1461038257806391d14854146103a257600080fd5b806336568abe1161010857806336568abe1461025c5780633659cfe61461027c5780633bd8db241461029c5780634f1ef286146102bc57806352d1902d146102cf57806357a987a3146102e457600080fd5b806301ffc9a71461015b57806302cba7411461019057806305b1137b146101b2578063150b7a02146101c5578063248a9ca3146101fe5780632f2ff15d1461023c57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017b610176366004611e5b565b61046a565b60405190151581526020015b60405180910390f35b34801561019c57600080fd5b506101b06101ab366004611e9a565b610495565b005b6101b06101c0366004611edb565b6104be565b3480156101d157600080fd5b506101e56101e0366004611faa565b6104e5565b6040516001600160e01b03199091168152602001610187565b34801561020a57600080fd5b5061022e610219366004612016565b600090815260fb602052604090206001015490565b604051908152602001610187565b34801561024857600080fd5b506101b061025736600461202f565b6104f6565b34801561026857600080fd5b506101b061027736600461202f565b61051b565b34801561028857600080fd5b506101b061029736600461205f565b61059e565b3480156102a857600080fd5b506101b06102b7366004611e9a565b61067e565b6101b06102ca36600461207c565b6106a1565b3480156102db57600080fd5b5061022e61076e565b3480156102f057600080fd5b506101b06102ff366004612118565b610821565b34801561031057600080fd5b506101b0610a4c565b34801561032557600080fd5b5061022e60008051602061255883398151915281565b34801561034757600080fd5b506101b0610a60565b34801561035c57600080fd5b506097546001600160a01b03165b6040516001600160a01b039091168152602001610187565b34801561038e57600080fd5b5061036a61039d3660046121b2565b610b83565b3480156103ae57600080fd5b5061017b6103bd36600461202f565b610ba3565b3480156103ce57600080fd5b5061022e600081565b3480156103e357600080fd5b5061022e6103f2366004612016565b610bce565b34801561040357600080fd5b506101b061041236600461202f565b610be6565b34801561042357600080fd5b506101b0610432366004612118565b610c0b565b6101b06104453660046121d4565b610e1a565b34801561045657600080fd5b506101b061046536600461205f565b610f93565b60006001600160e01b03198216635a05180f60e01b148061048f575061048f82611018565b92915050565b6000805160206125588339815191526104ad8161104d565b6104b8848484611057565b50505050565b6000805160206125588339815191526104d68161104d565b6104e0838361106b565b505050565b630a85bd0160e11b5b949350505050565b600082815260fb60205260409020600101546105118161104d565b6104e08383611075565b6001600160a01b03811633146105905760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61059a8282611098565b5050565b306001600160a01b037f00000000000000000000000074ae836d6f949118b4e4d0af79924edd0d6fd1631614156105e75760405162461bcd60e51b815260040161058790612240565b7f00000000000000000000000074ae836d6f949118b4e4d0af79924edd0d6fd1636001600160a01b0316610630600080516020612511833981519152546001600160a01b031690565b6001600160a01b0316146106565760405162461bcd60e51b81526004016105879061228c565b61065f816110bb565b6040805160008082526020820190925261067b918391906110c3565b50565b6000805160206125588339815191526106968161104d565b6104b884848461123d565b306001600160a01b037f00000000000000000000000074ae836d6f949118b4e4d0af79924edd0d6fd1631614156106ea5760405162461bcd60e51b815260040161058790612240565b7f00000000000000000000000074ae836d6f949118b4e4d0af79924edd0d6fd1636001600160a01b0316610733600080516020612511833981519152546001600160a01b031690565b6001600160a01b0316146107595760405162461bcd60e51b81526004016105879061228c565b610762826110bb565b61059a828260016110c3565b6000306001600160a01b037f00000000000000000000000074ae836d6f949118b4e4d0af79924edd0d6fd163161461080e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610587565b5060008051602061251183398151915290565b6000805160206125588339815191526108398161104d565b8584146108b85760405162461bcd60e51b815260206004820152604160248201527f4d756c74695472616e736665723a3a62617463685472616e736665724572633760448201527f32313a20746f6b656e732f706179656573206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610587565b8382146109395760405162461bcd60e51b815260206004820152604360248201527f4d756c74695472616e736665723a3a62617463685472616e736665724572633760448201527f32313a207061796565732f746f6b656e496473206c656e677468206d69736d616064820152620e8c6d60eb1b608482015260a401610587565b836109b65760405162461bcd60e51b815260206004820152604160248201527f4d756c74695472616e736665723a3a62617463685472616e736665724572633760448201527f32313a20706179656573206c656e677468206d757374206265206774207a65726064820152606f60f81b608482015260a401610587565b60005b84811015610a4257610a308888838181106109d6576109d66122d8565b90506020020160208101906109eb919061205f565b8787848181106109fd576109fd6122d8565b9050602002016020810190610a12919061205f565b868685818110610a2457610a246122d8565b9050602002013561123d565b80610a3a81612304565b9150506109b9565b5050505050505050565b610a546112aa565b610a5e6000611304565b565b600054610100900460ff1615808015610a805750600054600160ff909116105b80610a9a5750303b158015610a9a575060005460ff166001145b610afd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610587565b6000805460ff191660011790558015610b20576000805461ff0019166101001790555b610b28611356565b610b30611385565b610b3b6000336113ac565b801561067b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b600082815261012d60205260408120610b9c90836113b6565b9392505050565b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600081815261012d6020526040812061048f906113c2565b600082815260fb6020526040902060010154610c018161104d565b6104e08383611098565b600080516020612558833981519152610c238161104d565b858414610c9a576040805162461bcd60e51b81526020600482015260248101919091527f4d756c74695472616e736665723a3a62617463685472616e736665724572633260448201527f303a20746f6b656e732f706179656573206c656e677468206d69736d617463686064820152608401610587565b838214610d195760405162461bcd60e51b815260206004820152604160248201527f4d756c74695472616e736665723a3a62617463685472616e736665724572633260448201527f303a207061796565732f616d6f756e7473206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610587565b83610d8e576040805162461bcd60e51b81526020600482015260248101919091527f4d756c74695472616e736665723a3a62617463685472616e736665724572633260448201527f303a20706179656573206c656e677468206d757374206265206774207a65726f6064820152608401610587565b60005b84811015610a4257610e08888883818110610dae57610dae6122d8565b9050602002016020810190610dc3919061205f565b878784818110610dd557610dd56122d8565b9050602002016020810190610dea919061205f565b868685818110610dfc57610dfc6122d8565b90506020020135611057565b80610e1281612304565b915050610d91565b600080516020612558833981519152610e328161104d565b838214610eb15760405162461bcd60e51b815260206004820152604160248201527f4d756c74695472616e736665723a3a62617463685472616e736665724574686560448201527f723a207061796565732f616d6f756e7473206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610587565b83610f26576040805162461bcd60e51b81526020600482015260248101919091527f4d756c74695472616e736665723a3a62617463685472616e736665724574686560448201527f723a20706179656573206c656e677468206d757374206265206774207a65726f6064820152608401610587565b60005b84811015610f8b57610f79868683818110610f4657610f466122d8565b9050602002016020810190610f5b919061205f565b858584818110610f6d57610f6d6122d8565b9050602002013561106b565b80610f8381612304565b915050610f29565b505050505050565b610f9b6112aa565b6001600160a01b0381166110005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610587565b61067b81611304565b6001600160a01b03163b151590565b60006001600160e01b03198216637965db0b60e01b148061048f57506301ffc9a760e01b6001600160e01b031983161461048f565b61067b81336113cc565b6104e06001600160a01b0384168383611425565b61059a8282611477565b61107f8282611590565b600082815261012d602052604090206104e09082611616565b6110a2828261162b565b600082815261012d602052604090206104e09082611692565b61067b6112aa565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156110f6576104e0836116a7565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561112f57600080fd5b505afa92505050801561115f575060408051601f3d908101601f1916820190925261115c9181019061231f565b60015b6111c25760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610587565b60008051602061251183398151915281146112315760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610587565b506104e0838383611743565b604051632142170760e11b81523060048201526001600160a01b038381166024830152604482018390528416906342842e0e90606401600060405180830381600087803b15801561128d57600080fd5b505af11580156112a1573d6000803e3d6000fd5b50505050505050565b6097546001600160a01b03163314610a5e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610587565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661137d5760405162461bcd60e51b815260040161058790612338565b610a5e611768565b600054610100900460ff16610a5e5760405162461bcd60e51b815260040161058790612338565b61059a8282611075565b6000610b9c8383611798565b600061048f825490565b6113d68282610ba3565b61059a576113e3816117c2565b6113ee8360206117d4565b6040516020016113ff9291906123af565b60408051601f198184030181529082905262461bcd60e51b825261058791600401612424565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526104e0908490611970565b804710156114c75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610587565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611514576040519150601f19603f3d011682016040523d82523d6000602084013e611519565b606091505b50509050806104e05760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610587565b61159a8282610ba3565b61059a57600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff191660011790556115d23390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610b9c836001600160a01b038416611a42565b6116358282610ba3565b1561059a57600082815260fb602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610b9c836001600160a01b038416611a91565b6001600160a01b0381163b6117145760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610587565b60008051602061251183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61174c83611b84565b6000825111806117595750805b156104e0576104b88383611bc4565b600054610100900460ff1661178f5760405162461bcd60e51b815260040161058790612338565b610a5e33611304565b60008260000182815481106117af576117af6122d8565b9060005260206000200154905092915050565b606061048f6001600160a01b03831660145b606060006117e3836002612457565b6117ee906002612476565b67ffffffffffffffff81111561180657611806611f07565b6040519080825280601f01601f191660200182016040528015611830576020820181803683370190505b509050600360fc1b8160008151811061184b5761184b6122d8565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061187a5761187a6122d8565b60200101906001600160f81b031916908160001a905350600061189e846002612457565b6118a9906001612476565b90505b6001811115611921576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106118dd576118dd6122d8565b1a60f81b8282815181106118f3576118f36122d8565b60200101906001600160f81b031916908160001a90535060049490941c9361191a8161248e565b90506118ac565b508315610b9c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610587565b60006119c5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611cb89092919063ffffffff16565b8051909150156104e057808060200190518101906119e391906124a5565b6104e05760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610587565b6000818152600183016020526040812054611a895750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561048f565b50600061048f565b60008181526001830160205260408120548015611b7a576000611ab56001836124c7565b8554909150600090611ac9906001906124c7565b9050818114611b2e576000866000018281548110611ae957611ae96122d8565b9060005260206000200154905080876000018481548110611b0c57611b0c6122d8565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611b3f57611b3f6124de565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061048f565b600091505061048f565b611b8d816116a7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611c2c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610587565b600080846001600160a01b031684604051611c4791906124f4565b600060405180830381855af49150503d8060008114611c82576040519150601f19603f3d011682016040523d82523d6000602084013e611c87565b606091505b5091509150611caf828260405180606001604052806027815260200161253160279139611cc7565b95945050505050565b60606104ee8484600085611ce0565b60608315611cd6575081610b9c565b610b9c8383611dbb565b606082471015611d415760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610587565b600080866001600160a01b03168587604051611d5d91906124f4565b60006040518083038185875af1925050503d8060008114611d9a576040519150601f19603f3d011682016040523d82523d6000602084013e611d9f565b606091505b5091509150611db087838387611de5565b979650505050505050565b815115611dcb5781518083602001fd5b8060405162461bcd60e51b81526004016105879190612424565b60608315611e51578251611e4a576001600160a01b0385163b611e4a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610587565b50816104ee565b6104ee8383611dbb565b600060208284031215611e6d57600080fd5b81356001600160e01b031981168114610b9c57600080fd5b6001600160a01b038116811461067b57600080fd5b600080600060608486031215611eaf57600080fd5b8335611eba81611e85565b92506020840135611eca81611e85565b929592945050506040919091013590565b60008060408385031215611eee57600080fd5b8235611ef981611e85565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611f2e57600080fd5b813567ffffffffffffffff80821115611f4957611f49611f07565b604051601f8301601f19908116603f01168101908282118183101715611f7157611f71611f07565b81604052838152866020858801011115611f8a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060808587031215611fc057600080fd5b8435611fcb81611e85565b93506020850135611fdb81611e85565b925060408501359150606085013567ffffffffffffffff811115611ffe57600080fd5b61200a87828801611f1d565b91505092959194509250565b60006020828403121561202857600080fd5b5035919050565b6000806040838503121561204257600080fd5b82359150602083013561205481611e85565b809150509250929050565b60006020828403121561207157600080fd5b8135610b9c81611e85565b6000806040838503121561208f57600080fd5b823561209a81611e85565b9150602083013567ffffffffffffffff8111156120b657600080fd5b6120c285828601611f1d565b9150509250929050565b60008083601f8401126120de57600080fd5b50813567ffffffffffffffff8111156120f657600080fd5b6020830191508360208260051b850101111561211157600080fd5b9250929050565b6000806000806000806060878903121561213157600080fd5b863567ffffffffffffffff8082111561214957600080fd5b6121558a838b016120cc565b9098509650602089013591508082111561216e57600080fd5b61217a8a838b016120cc565b9096509450604089013591508082111561219357600080fd5b506121a089828a016120cc565b979a9699509497509295939492505050565b600080604083850312156121c557600080fd5b50508035926020909101359150565b600080600080604085870312156121ea57600080fd5b843567ffffffffffffffff8082111561220257600080fd5b61220e888389016120cc565b9096509450602087013591508082111561222757600080fd5b50612234878288016120cc565b95989497509550505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612318576123186122ee565b5060010190565b60006020828403121561233157600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b8381101561239e578181015183820152602001612386565b838111156104b85750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123e7816017850160208801612383565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612418816028840160208801612383565b01602801949350505050565b6020815260008251806020840152612443816040850160208701612383565b601f01601f19169190910160400192915050565b6000816000190483118215151615612471576124716122ee565b500290565b60008219821115612489576124896122ee565b500190565b60008161249d5761249d6122ee565b506000190190565b6000602082840312156124b757600080fd5b81518015158114610b9c57600080fd5b6000828210156124d9576124d96122ee565b500390565b634e487b7160e01b600052603160045260246000fd5b60008251612506818460208701612383565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65648ec07e268e32cae7f300b49ad34f20106d088445cb9d9b2d62cbd864638308b2a2646970667358221220a409bd9e9574da254aba6b9a5d70db75eb61aad8eecdc8c6bd43cd7caf29999764736f6c6343000809003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563410105581d0203ba1df2af3e45cfd96a7f627ce7a5d7ae2a1883584ad2675adcddaa07011925ad02183003647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d033f469ebfea9adcf3cf5994f94575a8d5359002ad23c5428dbc159d6080ab260b05581e0308fbac4788be6d2bd90ccb7424c82dbe8456149c081710dfdb7ea98d5007011bffffffffffffffff03616c7ccba688cfaa9acb8407dcdca012544524b829027ffb3b6d1b75abe1d91e0219a25b03e0f056eade9ee795455bb3eced2c22b7b1ec0b4381f316eecb4adc973b3b480c03e0233402a1480c381a89ced502f9351c42e35cbdc84cb4b26ed33223d058e5af037f87ed209fb2aec26b9a05859d5d0985c362739be4dac7f3603f50d647411fdf036718040e42a36505b19858496e5281975f3f3ae0b9c48ff044467823bd3bd8da0337502481a8e30d38c78c3c7c3328aca9c63162517ac4d5ca6021b9474cdac1c8036a02245ac3dba7d1262e5bf91049e52e638f43d869e8916665a5575ea06ff58403705560cc0b2ce7e80439054d8a93377485a4d8ff07c7e73555c842393f7a6a3f0219ffff038ca90bd612b719e637e6d6afe472ded9c8bb71bdf5a4ab5d814dbe195f1823f903295f5e079ca99685effa5a03adaa079586692bf1d86700b056672e4686d32b8a037906c756940f92f0731f3c4a4d5ecf47be68c7e67c6398e20375c211233790b60378e55da9b82a3bf9a829315593b89bfff04b3f6d3311a2e756ede5e85095fc0103960601cd516af46c794e2500ba164ed2c9523a4d26b616f0c001e604b7483f220219ffff03d1a0e5f9e0cdd6602890d1682b755dbedf0de869347a4ecc3aa80274433b8fc50383cc16a6a11933e647d318fabd410fcce23bc3e8db3c7a57fb7b58f575f1d6b103fe2d6079968355b528f2c87071ba5a3057c7efb73decb38d07f849dabaf9b19d03ae4461a2399b9758bdc404c50809ef94ecb380b38de6b475a9354e6c11415bad032a33a8e59b3989bd6e8718faf3c358c3e2545101b15156b974627fae97a29b010301600b408520939510d3cb7b9f90baf5919800b62a9bb5945da3207b478d85b7030b84d9642e0d6eb5e22be415a519f267a31a06f3808a8414eea3d8683ed14a6903de62d1757980d0fdfe2fbc49b2be7795ffad3a7f2dde1be977cf4e1c36e0d891034053187e44ea6ae04042d2ab960064226417d9c8152fd9f1dfe6db931cc6726303a6f550ddcc2507c3d8e7a3b8a7762c8a09472f97d132de38548f8f35ba59944e039c8c559c5fd07b02118685bf626c40a1a0171aeee842849f4ddabf5ac5f7d1d3036a380a4a24881f0c1c35e3f9e2a432ab56294b50ab1737aaa21686f301a6943503c8c4565c07eaf7a435557af5946eb196bd4b3a090f03911ea31397fcd16817ef03b7df6b769d8f166e4f1dea90f3f452e086c93a95cc3b9c563539452855b44dd9036b0979fad5496774bc52f36a499ca5f99448765bd530b1c683a6de1f1727c9670219ffff0322e44e7b601591a17254e0aa6c2ebe077eb86a7f9d8b1f4bb7e5de3d0ef36d31036e1bec13fcb13b299590efe3fe3a37994ae8e6ef82f820eaa607b84cfc6382b0038777d2f02f176235ccdf89cccf123e9a78e0378ed89e8248500bdde237af48b503902fb720bf74bbbf68219f688d382b03ded85d1d01038ba5c65827e6d9ae5c4103242aacb9962f6be46c2687afe946657e1a4c5b365553ff5e7b878729d0dc7978030b5ace9219797302064b1c05d6773c183fa842d935443eaeb310495b7f99e3a40393eb173faaa6d3f87ebff5055f4ca9e3a80e596a2ff4e9d96cab17c63f717fdd035017e33b431163aed77413892588b304cefae55b4f34f9c105baa361da9cdc9303f7bcc738d86deaaac1d5b3b2ef4998cdad28338d6829bd64e7cbe51264d7076f032d90024926eaf70203c88469e8bf7841a2356accbdc885c4bd43bb6a583f006f03e9792b228312d52c854ab196887566ef61ba35b7584e9cdc88e00cc9e40b12fe039a210af158456be4ea0ebc394ffdcf2ab488a38ea5ce46e6f1dc339eaa90e2aa030e5ebf436f4ece60b3c01a59fd4484b856345af2b327f8937061a5f34e1012880366f75615421133303ff8003ee7b2cb668bfa32fede14dc269c0d2545bc535324034c008ea2515c0e48f166b3b15564e3e9b6d3aa336fd38f48bbc90b8b0dc29a3003b20fa8ca6ff66b93a176acd047576eb1669475865c054da7a09327a1d55c0b2f03e9dac687a9bc099c5790f1f18389adb0c119232e5b3d15c36d8e1c269020260d036e93dfd3327cdbbdc731547989fec2ed3894fb5f3b848f931302194569b5d4d4036e1633bf06bce514bcad0129e7424e1ff5a715053ededaa7325cb81bb3f86be9036735077fca40d1dd9c55c443fcb32f731dad0abaf569a873f74bd4f19e69f49403ae9c2fc978a42bbb18c9500e454ee2cb5928635aa5faf560e157f6bd7bc45b7c03269195c24dff539e283ca4012ba601789e04ae1297ae047975683203b0a06bc803d5dcb1fe9a11ed50de3d5c34f0cbe40818f20f49bde6a7bb078ad7ea6026fb0d03ee9ca6289d38ac14d905fc505ce33468a231d25b8844b1e8b3bb22c435c7f3c2032a43d76d60e1da34762433d2c7ec1e688c9cc434c7fb875ff242091bed2d92b903a703e8dc6b1c6e754df48028cf900f98635c809190ad3ca637f71dc6ce285b5e0320af01d71af4cbaf8209f21b58d028d3824f9fcd049068fedb069daac433c82603ba61f28a9b67033ac977d121fc514ff00c42d71fd1761a0fc01391b036dcdd25034a4aac9a78511d5c5b0db496e0b3c786ca7f01360a8f4fcc2ea2855dc1742832037dc345bb14691d4da576b41f5d04f543c6d46dd082304eb241d2099a6ffc1cc303817d6a20dd6b4327cec985e3814ac2d4d67017b1bbe958b2034998395529767e033da029011e16c346b9ad3283a011e87b925e8651b2a5ffd977ef26023c0c18b10353cea0fe19d67cde61413cbb9cfac93191ea310d0fb703a4392304530253df5f0306b3920cc92ffed906888f76426c514a32506280c089407fd7bbb33f1c110a4703a8be68a078f43ec7cc312f74bc9b6554c9735a5cd777ee3f1c3750ae5dd3f08805581e03fa4718f538abf95406d3e8845210fa1228a789d9821fddd78783793180040105581e039e6ee778487e3d9a11d1d64a274968df1da41928bcd1d7ae760a17d4c008462af131251a0003a147134e2ac2d7ee7af677741e3b7da666ba7c0ab13974915dd83afc276d21ef05581e03cf8d4f00ad512f140c118fda8988481b801fb92aaa10322c8b5df60e500c09463fb3bac0840005581e03b5a1e4b1d1b66ab55a0af336cbd6844518fbd942adaaebff342b685870040105581e038a34c21bc4d63a834ce0cad52bdff2156c1063e53f4a1829b426e418d0040405581e0392fd66590a79f6a969a4e7bbc3f67a840e6c4cd7f82e423dff92290970040105581e03108820f04527aa0abcb63cf4d48c797d375622507d8f20a7063bda7bd0084702d0dfd628591e05581e03e44dd32b270f7ff05edbb56a96680d4a7926a2f28344a42ba28eb157d00c044655ba5a80dc1b03f5a9ab938789fa4f0cbebfeb2bf184441aa2e5cab2662274eee2f52ea5a151a80219adcd03fda61f8964a47b2ed86ab6c307b2504fdaa18914376e79f06123caabfae37d9f0302d3a27bdcfbad8e5ad176c09bb8fd64a0c62e3007554f0ee5200967bda3d7c303a22a00fe5be20387ed7c7ae9157fac0a01bf9d600ec7522bcbf1195d0e6770f703dd267ea61d6b17e59d5bdc737d152f3ca5cd7b34b785cef271be5799c98336db034586bb2e4e83c5fa2125f04df89f5c4063f8d877c798292482e85b578fef337e0219ffff0366d8263a2f135623d367d45b793f2765c375b6a7120f102b5f77f63b528f6072030d6acf437d45031349e0265741bdd718217cb5bb9697bb19ea4926e8ff8f735b035d0ccdbd40c5a6214599759dab6d596b35686c82f2c0aea6400079ab0088019503f9dc58236108da08b2ed5d9d0d69dbde33a88d72a8f962fcc4b59c3e2de16dea03e244d723cd968dc7599e750ca72b795fce6a25a760b94dc3bed37548fa994d0903396138f399a68e6d578d33936d14742f82de721d1c91b3f3fbafc01ef1bdd03003de19bcdbd7e54a1ccaedf3379df9a952509f80b44cc8e219e307af13fcf2c1a5035e68e444c6d61a7ebddcd4351b2f7774bf281ab7bd3ec07a746d12732cacf04903c10b9cde47822152274ace2b5a6adf422e12f660735e055f516f1ae275217f73036d0580c7823b4e73d6e0f31e438dbd8a5f09332438ab4e4018f9baf9d052a93f0219ffff0219ffff032b24fbbc885de578852725aaa981a8e44369f859f4ed8039ce2ee3a3f70eede803374603f3d74809e75787717697705fd7025376efb40f885acbb498ed552a0f950219ffff03fbd327102e5e3d57a6fe977b9afffa43fdf898ee8970cdd7009ed7a2e5011b89035829ca03c6dc20ff1003f855af206c191b4a78b9cfad2796c889680f287a1153033e58c8975d72d7934ae9c3864df15dd0e00f003a6c685e67ec4d439408431cac034c94e501991ff672a4af90dede7f5043c97880f44e29094c8b906d0c6b8e8fae03d3b97abd156f5a7597a1661ca12abf5cb27b42358c683032cf5e4fe31ae16eba03f291ce61bf7fa75bc89a93d0b0d8e624591f710919eca3040f05b68d1522caa10395662eb0031985fc2c9f584cddd282d0908fc64abd756c8efa106f2aab6c36e0037bd9700f363d0d336e1463bc8700440ae4a408cb9fc6354d2e5c0e43acb6e466036300ad7a54a19fc4133e38756a4d0af2f28e154e40fb3590cee962388ccd920e03da8b51057e5ac425fd01a9ce28ecd51db191b269ee9f172660c3b500193487c803f95de05b470394e6750cce5f3bcbe106b0c925bccf849e5c7285ccd59cd4931e03cb14184b92145b2894c8d54e5ee31b4cb764ddf46b4a6316a5cd549e30c76b500398d8521e25c810823a9bc3fc827c551c61d8b030a70d6185eefe48a7d58d45d1031128f9073fe2dcae2d233287c10ccb059c70afa1474fe436bc7a9392570f772303bc3ec0c9fb89d50352bace87e9abf5324a74da04dd0f3ebbb39dac802a11c860037bf1b236010ed628b900f113efa96d1230b528a6d407fa68419797cbebf6c915039cf13b4d98277098253a344af24cbe556dc9c2cb368f7ef64c93a54b2498a8fe039aa276304e1abcd87d5d06bed31ed5a8e20e5791b6e054d16ce5fcfda71ed59c0346e1340173362d492c284217174847f7def8e8a520785e5ed93d54da255b35f6032e5879d11305babdc05a2592a3b596881cf483057635afbb81c4aead0104007e033e2bdd21a50c9a0652585b0b06cb8a8f60c5e1bb203804c7de7840afcc923f73038641934f193e32d144e3a002d13e04e546a9a1350136245c235530fd9677056c03f038ab5f660e0257443f9fba624467181aac4430da8711947e8ee772f31ca5ad032669b3f05087e52e6387e0238cae193caffe9a9c982bb1446450bc306e18495503f2c806fee38fc950831f42f32febaf0eea8f0fd874e24119188f44a6e9116932030ad2cc8587c59b3756332511554ac233eedbfccbcdab5c9a9152c0cce22ed8d103f1464b55a3f19f4a744df5736f97de83ef026aa47e58ee377e80b1e7843cac9603758d5a763df05202dc1fd890b00cd19cdb48165d449cc04333bbb3950bffbfef037559f7ac0f22a906098bee37717543462b6d3a9b0c10d7044c7199c160dc3a6103a74415276740cd2f8e7adf9899552e67e645127ebd1b0aa6abf8743c17bca1a40398948390af316e7737e0d98ace0626dba03fdde852d21fa67cd04b800cb35702031298d77f9403b3512ed892b69055776658e892babac0fb66c8a52c83dffeedc505581e03d22043120f334e8f068cb5d71e08838f5c43a7e74ea24aca6720ac33300847349a370bc0880005581e03b7b404190c12ecb3593196b3637a03408b0cd8c2933721c589d5f0d74008474390064287980005581e03688e6d79343c6feb7e7d1d4974d6c0e8c66f5a9f8a8d349b1aa8840b600c03480383f9327627d5a10383f333322a3c4c77dbdf20293ec411d120a5349b9d4276583dc9a38d3a6d53e305581e0375e297eda395793d47537d156802c6eea4696012e91d456072456cdfd004020219131803a79425df37f2360dad986a9ae536980e795b613575fd1af42e6c64acbef6ef8c03c1208407708c02206cde1b8a146d488f9f3a17f393e9bcb6f32c64d706fa801003c04b44b7d43d64bfac23b3e72d7d6b748453c28a22caae79085e1443af75788503fbac7eaa3ddbe37aebf3beb6b5d48b468432e8d3b746ce1f7699d5da81a32ea003fb80892148ed8ad94dca264dd95d25d4d4dfa01438219a84686b60033cd0600c036a3847ced31dc902867c7b29a870ccfd0e03b420560cc7ce356e6f4bdb579360035ba7e5d18d8bbb42e2e7686b8df56a663e3267de0f8ab2c42fed8c190f2e1cbb03a77447c40f8423b0407103f194496dfa45dede22660a8bb7dc324afdb5c89a0f032c35c0c74f434c31bcff4dfa01e855f6827044ac0618ad8fcb0e0655427a39e503bc3f3a85c66c58e5137059ecb19023c89af2a696c70ceae626bf2ff68f8de3250350268ab3c50280fd439d53627d96ab0a45079408880de11d6693871a826ce92303c2bc0e5df0450dd2fa3d96f9f87e6421af5771f63fa0f7519b5392bd15bf70270219ffff034b64a5f7807d683ab17ae7b754ab5bb66640cb74c976c6acce131636497863370399f0b686b719aecaea90dc121d8966df6e660762cb9470434050527fee5ee7fb0219ffff0327d30a450bfa30c37b8fcdd66d8538bd05adfb882599fb4e031f9148ed62e75d031ea6939925ff86f9a308799b166bad40953edbd3bd94c657d37b2eb535b8c42e03c5747abd793bdb12bc42c8c7ca99e78cc79bfd2476ba0b06e0204fbcaa8aa62d03239a4ac22e39a85c0d7c89dc66fb5cd34b7d83eb124dbea1b6cecfb724cd50780326395a26d4c1bb78534718a5e3c6fb17f8b0efa6c5c50e7c71b1ecd1a2adaded034dbce25bf3a94efae11501182555f0b18d180fd20b39cd82983b54e9c8e3eeb6032eb362207857a70ca5cb5239542fdf405ec3274647cd7ac78a9946d0a1ddbbc4037132154927278c60229a6ffa5afdd2e53c1e086d13647a86248f0199d6532f1203ccae28c13dd1a75b5083ec57ff3cd2f05f10cb4149576cd0ef5b125eefceb58503a0b7d449810e724b9cc1207fe4baf27b78aeee3ffcb3ea57129eefb9b75f4ccf03f06b2e726568268c38100deaa1b0fc2c93403c722d9d55122e42b82727166594033907c59df352fa7ebb6f9e1569907e173f11b118806f269c625cd366995da28903b229f8e5b9512ab31800d451b695141027477ce015aaea5e6fd2742fbe21d7ca03c3e40c54e98bcaf45adc49f099112c9ec28469eca371357533c972d2cc33fb190219ffff0219ffff031dd02b5e0abdd6e6c17147281482e0ad252887ec13d1ed380167bf858e782f5703bb6ce166dec6e8c1fd9ce2e8ea5b8a7e4d0dfa2b433f495600c6b513c5f5d8a903ede0965acc973aaa4dd5dcba0c4a1d202e6f71e64057d3d6162217757bba54d003df3e90c512d3b8c4322f819d7aae114ae523769b129bb22ed7e193af24ca7ec203f4bbf54cbec419a1561c2464c6ac52ea282f5d17dbd5b3ceba314623f3836e70033edcb0d8430fd77283f02e651963561bdf36f47c910ca37e6db99cb1227fa47803d0a1bba6f188223866d05c3caddf24e1a46bff3d912f803597f2ac04dc7931c3031311c0f8f2bb9688f2bf83b08e07bb2cc899007893c4f986d30de453fd828bde03ec7f39ce2d8d6e995716de6c041b86b637209b3838113e814a8540005ebf020903366decbe506e7b2e019c627eda9bc23c633db2aa3d709089802917a4b798ce79032d177184d0420be7a8aaa66a57b4cfb80dd133869687ea94e27f9da2973cd0f4030668909791e3f7eb276a3ef7534d0d88c863164516baf320a677481b5e9947cb03457044ad9e90bf2b5b95f468b71f4029ddb9cf53af96dce4160d9c5c840c2fed037a36523de33a0bf2d380719afb4ae001374e159c5316d1244e940878204c581e03a120a94d2ed34c300d63017f8d42765de389459c51b5c7806dcef816a6cea1d2033edb845f9ec59d2a99d5372c9ce7746675d7492641c3709d63b7a9a3e3a1732d03207c48774bd02158a8a2402b6f143a9a8c633bc7893038d71c4ac4c37685646e031636d1fac37da0ca5f4265c6c1094491a9af0dda5c315d03f158fc46a483dba803e31b4c19fcc4fcb854b8e624b318ad21b022c57c58e30f80f27bcd9fe4e6164903950522557eb40bafbd082f0f5cc4be3bcdcb7f80c14eee43afd2bcd01f8d51370306344fc5ae8c6063578d0b997b0caebc50abb303fc195a9875c55a5d3e7566b40311a2f9312c3308640a0d6ceeae218747290f23806067456da1d444c65abae43703b3097a108bfce79af6699da4ae3003cd4929f0b4576aad655c31cb725bde84c7030975b2742460058745a4ee9f17d4c2cd50047b9831702204293a4648ea4e21d3030a7a0118e00981ab321049c9d340cd52c3a4781037540f7c48d0fdc27e899b32038537f2e248702a6ae2a57e9110a5740f5772c876389739ac90debd6a0692713e05581e03414b080fc727873288304fcbf831f5a62596fd36ec4ad76e1faf6163d0040305581e03b6535a3302779485a0479d8b1e380a306a541a1b5574e114de1f9a9d900401031e2a1ed3d1572b872bbf09ee44d2ed737da31f01de3c0f4b4e1f0467400664610364231d115790a3129ba68c7e94cb10bfb2b1fc3872f7738439b92510b06551be05581e031457658c1b1ea115fc593103711e849fee8e06131ecb6c1b2756559bf008480e648f084c05900004592b43606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461019b5780630753c30c14610229578063095ea7b3146102625780630e136b19146102a45780630ecb93c0146102d157806318160ddd1461030a57806323b872dd1461033357806326976e3f1461039457806327e235e3146103e9578063313ce56714610436578063353907141461045f5780633eaaf86b146104885780633f4ba83a146104b157806359bf1abe146104c65780635c658165146105175780635c975abb1461058357806370a08231146105b05780638456cb59146105fd578063893d20e8146106125780638da5cb5b1461066757806395d89b41146106bc578063a9059cbb1461074a578063c0324c771461078c578063cc872b66146107b8578063db006a75146107db578063dd62ed3e146107fe578063dd644f721461086a578063e47d606014610893578063e4997dc5146108e4578063e5b5019a1461091d578063f2fde38b14610946578063f3bdc2281461097f575b600080fd5b34156101a657600080fd5b6101ae6109b8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ee5780820151818401526020810190506101d3565b50505050905090810190601f16801561021b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561023457600080fd5b610260600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a56565b005b341561026d57600080fd5b6102a2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610b73565b005b34156102af57600080fd5b6102b7610cc1565b604051808215151515815260200191505060405180910390f35b34156102dc57600080fd5b610308600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610cd4565b005b341561031557600080fd5b61031d610ded565b6040518082815260200191505060405180910390f35b341561033e57600080fd5b610392600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610ebd565b005b341561039f57600080fd5b6103a761109d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103f457600080fd5b610420600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506110c3565b6040518082815260200191505060405180910390f35b341561044157600080fd5b6104496110db565b6040518082815260200191505060405180910390f35b341561046a57600080fd5b6104726110e1565b6040518082815260200191505060405180910390f35b341561049357600080fd5b61049b6110e7565b6040518082815260200191505060405180910390f35b34156104bc57600080fd5b6104c46110ed565b005b34156104d157600080fd5b6104fd600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111ab565b604051808215151515815260200191505060405180910390f35b341561052257600080fd5b61056d600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611201565b6040518082815260200191505060405180910390f35b341561058e57600080fd5b610596611226565b604051808215151515815260200191505060405180910390f35b34156105bb57600080fd5b6105e7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611239565b6040518082815260200191505060405180910390f35b341561060857600080fd5b610610611348565b005b341561061d57600080fd5b610625611408565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561067257600080fd5b61067a611431565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106c757600080fd5b6106cf611456565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561070f5780820151818401526020810190506106f4565b50505050905090810190601f16801561073c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561075557600080fd5b61078a600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506114f4565b005b341561079757600080fd5b6107b6600480803590602001909190803590602001909190505061169e565b005b34156107c357600080fd5b6107d96004808035906020019091905050611783565b005b34156107e657600080fd5b6107fc600480803590602001909190505061197a565b005b341561080957600080fd5b610854600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b0d565b6040518082815260200191505060405180910390f35b341561087557600080fd5b61087d611c52565b6040518082815260200191505060405180910390f35b341561089e57600080fd5b6108ca600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c58565b604051808215151515815260200191505060405180910390f35b34156108ef57600080fd5b61091b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c78565b005b341561092857600080fd5b610930611d91565b6040518082815260200191505060405180910390f35b341561095157600080fd5b61097d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611db5565b005b341561098a57600080fd5b6109b6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e8a565b005b60078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a4e5780601f10610a2357610100808354040283529160200191610a4e565b820191906000526020600020905b815481529060010190602001808311610a3157829003601f168201915b505050505081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ab157600080fd5b6001600a60146101000a81548160ff02191690831515021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b604060048101600036905010151515610b8b57600080fd5b600a60149054906101000a900460ff1615610cb157600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663aee92d333385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1515610c9857600080fd5b6102c65a03f11515610ca957600080fd5b505050610cbc565b610cbb838361200e565b5b505050565b600a60149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d2f57600080fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600a60149054906101000a900460ff1615610eb457600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610e9257600080fd5b6102c65a03f11515610ea357600080fd5b505050604051805190509050610eba565b60015490505b90565b600060149054906101000a900460ff16151515610ed957600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610f3257600080fd5b600a60149054906101000a900460ff161561108c57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638b477adb338585856040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b151561107357600080fd5b6102c65a03f1151561108457600080fd5b505050611098565b6110978383836121ab565b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915090505481565b60095481565b60045481565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114857600080fd5b600060149054906101000a900460ff16151561116357600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6005602052816000526040600020602052806000526040600020600091509150505481565b600060149054906101000a900460ff1681565b6000600a60149054906101000a900460ff161561133757600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561131557600080fd5b6102c65a03f1151561132657600080fd5b505050604051805190509050611343565b61134082612652565b90505b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113a357600080fd5b600060149054906101000a900460ff161515156113bf57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114ec5780601f106114c1576101008083540402835291602001916114ec565b820191906000526020600020905b8154815290600101906020018083116114cf57829003601f168201915b505050505081565b600060149054906101000a900460ff1615151561151057600080fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561156957600080fd5b600a60149054906101000a900460ff161561168f57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636e18980a3384846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b151561167657600080fd5b6102c65a03f1151561168757600080fd5b50505061169a565b611699828261269b565b5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116f957600080fd5b60148210151561170857600080fd5b60328110151561171757600080fd5b81600381905550611736600954600a0a82612a0390919063ffffffff16565b6004819055507fb044a1e409eac5c48e5af22d4af52670dd1a99059537a78b31b48c6500a6354e600354600454604051808381526020018281526020019250505060405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117de57600080fd5b60015481600154011115156117f257600080fd5b600260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115156118c257600080fd5b80600260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806001600082825401925050819055507fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a816040518082815260200191505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119d557600080fd5b80600154101515156119e657600080fd5b80600260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611a5557600080fd5b8060016000828254039250508190555080600260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507f702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a44816040518082815260200191505060405180910390a150565b6000600a60149054906101000a900460ff1615611c3f57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1515611c1d57600080fd5b6102c65a03f11515611c2e57600080fd5b505050604051805190509050611c4c565b611c498383612a3e565b90505b92915050565b60035481565b60066020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cd357600080fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e1057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611e8757806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ee757600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611f3f57600080fd5b611f4882611239565b90506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806001600082825403925050819055507f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c68282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b60406004810160003690501015151561202657600080fd5b600082141580156120b457506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b1515156120c057600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3505050565b60008060006060600481016000369050101515156121c857600080fd5b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054935061227061271061226260035488612a0390919063ffffffff16565b612ac590919063ffffffff16565b92506004548311156122825760045492505b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84101561233e576122bd8585612ae090919063ffffffff16565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6123518386612ae090919063ffffffff16565b91506123a585600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae090919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061243a82600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612af990919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008311156125e4576124f983600260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612af990919063ffffffff16565b600260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806040600481016000369050101515156126b657600080fd5b6126df6127106126d160035487612a0390919063ffffffff16565b612ac590919063ffffffff16565b92506004548311156126f15760045492505b6127048385612ae090919063ffffffff16565b915061275884600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127ed82600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612af990919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000831115612997576128ac83600260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612af990919063ffffffff16565b600260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050565b6000806000841415612a185760009150612a37565b8284029050828482811515612a2957fe5b04141515612a3357fe5b8091505b5092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808284811515612ad357fe5b0490508091505092915050565b6000828211151515612aee57fe5b818303905092915050565b6000808284019050838110151515612b0d57fe5b80915050929150505600a165627a7a72305820645ee12d73db47fd78ba77fa1f824c3c8f9184061b3b10386beb4dc9236abb28002903060c489c3f08828ee9227ceb5a3d3e6f4b6d9883a6ba8ee5b88b5b4c59f28dc10328c189632856ae40dcfeaa560f9448f1ce9814781d38652ba1c44b9ae6d79f8303a7547a90c61f23de92f9411cd053f77518b6403b95725896241b0fb8d4ca05a403fafeb5d5d1bf6e53283f661ae73d8f330187dfbe650b3e9c26650cedea8b982a0364d5ecb4e2ab231ace3183eb42b4b71a1619c4d4998701bd621fa74705f00ebe03db34f6b75590014afa9c501257e54322d50d6972106ae33b4f1681890a61f03f03b10e1844f635a49c341ae3faccc83fd900059ec788dc37e55fc71ad51536e42a03341196a560b07842a1a15126e79f29ce10fcead498a617d8a2afd44cbec35281031b9c7152871115d210db4edb3a16cfd0cd8abd511377ac683470c72c9936faec0344c0dfb831369dc2647048b4b9d51678a95a25e28cc86a45cf83c7d0a3699eef03ad62a7120444955db5228334caaa1d8801eb65586fa8d0368ab5c4fefe42ae4203523c06274aadbb7662da0d50ab371b797d74600d83a3bf5f5c58675c84f5ee8603156ff5ee580f467bf5b618463923caab7a7e2fbdf2011bca66daf9c2ccc371fd034abd58a8c0565a392baf26378ed4062d77a630e542eb0f8cf92a983c949aa75d03107af289e4de31d11ed428d726bd0ea37297722e0b5f7abc67dddd4639bf105903fb5feabbf6269a3155ef7540b1775de8e469f2b5c0f8f3cf2479a87c0894e6d3034071b868346e708739eba12e86d01464b5e38ca03c36d3c8e8bdaa9c8186b6df03cf1f44c571b7456492fc61d6db5b609bdfc12240ece6247bb3136bd70ec8b6c6035b50b916dc17b8fb0813ce015311d62c7702ad33032f83676c3c4ce40897ba940375cc10ff2be0d28fee8472f94a76f213915ca8f990caf7fae24395cdbf34935303a3e8380d74c5fc06da72bf8c341f9b7ed5a33a682bdf69151ff2927214af5ac803a7bc9242ee0b0acaf988076af80f876ef489229e29ffe7a0b36424ada0f4774f03bce2d65fec7a5df263241178b19fabbd531f28a31151e7ab2b151fe6e6cd9494037318a45931236e2337ef8de152bf411456ba827bd169754087f4cf2958caff7f0366bfdbcbb62601ea94d1907d3307dfa4aa43f63fa9c9076908f08df117c4629c03711b726ab5b2951c6b42983654e29d77a2409606d8ec5d680b9fa4c9a92150fe03792eccabcdf261707c2d67e024dcafdf90c2a559e6717fe60bda3862d9e7e836037d1382099deb4d23b58191e60ce5f246466fd3e7f91d3c7c773f164cb1eb380803e068ec0e6ab32429f0e9da1be45b85d0a115457f38ef415072adf4aa67e1685e03073b63698a67206dbf1539b922c1ee1788684c62b46fedc564c9ada8b95d7d7e00581e024d2c95525d3afb9a120888e53824a36befdd143a62d2f5948373179b9a581a031535a1146e4a4ba3f4b13555cd59267ca577ff76c214a3b82500581e0222d6f2cfa8b33f404048a77f8b6d0198586ba686c4ddc85f06881bf6c04306080100581e02a79888b463b9d423890b86e43258c9b847c7e53dab33a94cde45009f4e4404bf6d2000581d021a69dd17245dd09311f41cb86bc2b88c63439c5e767d561d1c6040d24537cdfd228000581d02040bf13080f9b4a8a113a29fcc2357f865113f7af454d7ca8970408c431dd3080219400101410300581e020c542fb2c77f01e15c803258272fcedf6d4a8e72c076d9c368bd817bd75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02682aa7aa73e8b62d303e63542d30863ef7f96fe07ff581fb5e57a4690b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02ab54c8d372b29cb45b6d50b962e3693faa3f43b4507ecb9e61c099ede844051a005403c4bc23337693882b33add4122120399dce2eaa949ced4488558ea1e136fc465e0219fc0b0384522fb5ebce89429ac1765a60077829da9d02b4d395288d6c50b4f5669d27d8035bb35037df7f06215f200ca74f9edfff8ccbea789f12fe97731f057047fe3431034163f805988e06289437c67f5dd8fd497e1f66dcf9b8c6603389f86c1f55fd7f034495aa8b2c10c6d370db323e8380c398973227c8b525fbbb6bacbbd82e11ab2f035ec1946bd41bc930df0b7a57f91bc79e89df5769e3b06c5f35f2b297c3600bdc03bcf9f4bad561ff0f9dfab763f8ac6eaf6582c0b0450cf1615bd45704710164e9037fcbdc07c1b87e72cf0ed7ab66ec94c3f50924fef26ee4f7054be7b5355993df03729e3ee7c0088290c4aa7ff4dff7653afd67a0cff9876375ee28224fb76a9b0303c30a0c8a20fe4bc432d4a5602c092be26557740fe629036fa8fd239974cb89de031e918a123787748a11dadf0fbf22be9f574ea33e10b17c2d9f8bc488ce3993670343c7be1f3970d5f9fd3aeac63662dd17861db1a02a3d01a69872f7d85d6c5b4403e1f972a03d77670997598e0eeeadfc990e1a4109b28140aaaadab61d9cd6050e03c923a7c6afab19fcd1d3df02263454af8ed939efa3a7ba4a9915adb40e8a4a3a0219ffff0313f6e7c096b69c1e0374ef96c897cdf22245dc7bd0fd9673d476380271d324c303b1003e14266a5c5f8420963592d0e085e2ab50dcdf742030dd406e4e45431104036b74887daf1fd845b401e5af6f9085b72074727ef3903da1743f50679ac80aa603b6f65540fdbd5097bb52fd930b2198e211857295a5f3215c13dc75d3ed0ac0060219ffff03f2d1673b45a9d05c379b9ac7b517b9ab36b3d0ad5eed98226bdeacf978b642a803d24c9863c9f51d8211076df3ccf025a5ded450490b18ee266798d58a3da516e80219ffff0357463f1dc73e083c211c9b1a21b2ab8a7f3d6a6e9a923fc08f69b5a1390bc73f03c4df844833f07b97c1e4245c8e80cb5871be413e7a39b61dd527db9de8481e91033958cfde5b9d398c46e83ab6fe3d88b795714fa7662624cc24dd5b4aca0f1e2d03aea7edb5b978921cf61fa9a9295615664b1987a9328e389ffaf8e3d8de796fed03daca145309f5c4b3d4d841476e5d09765512cebd7b4ea7cb4cd84641f20a63b003e3e31da2c85b91d2eb50331915f2d4143b4c27c7022d611b2c2b65b727ec2b780303ce28f1a8cf12c8611d93150926bbf843ee1ed2ee0299e8ef6fdbb9d7ac459f0308af3c925b826b1394a762bec5148e1344779c6e9b3adbedbae5f26f7fc83055039b2710146a72d4f0128884f297ec5bab0ad9f87e91261b59d15014c7dfdc7f5d03137ca42a00baa58b97efe6fc754192443d243cf61af2c062d73136308240daf303f6d8a224ae3685c86e43d9064365dffc21a0b5efde22ca80a74e8f1c4017c5f503970301ea309579f236cdd0cc8c9ed64c00c15b11675babbe42d2dbd1ec465542034443f70354f40252be496ca452d91aea369767c820a01f0d2ca280f4c60a29a0039de92c7d64de0749b61ae633dac9b04cb4f8327ec8f66f35766ea6785aca9f29038d2e19651e278b6a0fe11361ede534c80a4d9a5da85e7e51c393ddc58f44f2560342f48f0f87085e5bd3a070e85b316b836f9c8b6520e52bf9955886f8bb3ab9f703a45962640373bc2ac22db73fdcbb501b8cb5cfbb4e4caf277eecbfe36932ceb403222e3f9e4a92b1552f1a0e93da03195d762ccc8f38be53f02f6a8680911da698035248f30b50124e96693ac82f2c8afc2791592cb59fee35308dda8a641a3495cf03de857382ca41d3d5089855d68d2b3fa4945e67f193f035126a852cc3c98b48ac036e44216e3617fb1def4419ff424d33412ad1653f52360983e7edd6bf45fe99d1014105035ceaf091ca51ba3624ce4c6b1173332ce5908bdab5a0dc62685e81ec5e4f0d7900581e02d7affc791b6ad24a91cb17af3036072499664e562493cb6231287fc71e4405f5e10000581e02b1251b8a46d3442342ded77ec2f40c5335af295867bd5d30a27cd7eae35820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e020d806214213b29104f1430f6e32c55f1d6b07a295d06c5fd2933f80e445820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02bd6a0edb5ac99589ab37eeabfe1f2536d9c445db16303db6e13d96ac435820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219072a03833b1593039d510ac444314d05e85780e9920b51fc7a05aaca1361816b68840603b3d2ea377397bd4c938ba0650875fdec8f0c047510f16397f7b0e0b0d3061ca203e057423f75479ee24b09faab011125ea6dc9d83a7247f6f73563804663ae6f0103a1e2de2c8cb92bf24748849786c01914fc59f0f543e80a31961d4d0984c8417503be44d5932e5da5a9e58d0c2f6350a0a66458cf5a344cfa6408d69f6a0295f1830316a6e5e38973df152393ad55639f081ee1e0bb6594846cc0321fa17b018b0566034b1a856b79173c8b367fdf4f06373fe235531273b905f4c0c7a0d045d8afbc2a0368f5c634376502920f684433b090cb0e2d9599bf11e61a220b5047b07e8ab2c30385f8440cff9cbf522760be6988af575ce08c928974b004a313c42ca8f868ae6603f316721d387aa381f1e4a2522b7671679c1bc1a8b066506ae69289c7e02a4b4003e539cd11e31495991581b05b1dc63b0cce2c78a466960f6ca40e6a09c3e614f503f077cd506c0ec0a13113172c1b412af42ba66f6e17b3ee56e11fb97ae33ad66c0323f8bb32d3ef4eb24ec4add3e201163399fce872af1e69759e4f34a10884eedd037538380b9d3c41d5f9d5a31c217642bd173c3ee9da30339770d1795dde73055b0219ffff03a878755992cbd15a2b8fedea95fe5131d3d99778c22cbfdf972121c8406a2b3c038041ac6648e92e6a2521095cb24e8e3cace618cd0a90d03c71a1328d15caa287031d0a730b97d70bcd5e602cf2a6006548b5d69c0de8afd4c48240b4d9b77d212b0332aca8466b700d65c947c4cc9f29937a7dfddd8009cf519d5170832713b1b4fa032895c362c9d6f1b86af8c21db852875cd5c67594db1fedf6d95ea25edaec8d670219ffff0360c5fc89ffd46f91d7b4319f3f6794740cf5804a947d3cc3de67e6ea9a1a0f8f03a60fb50d27f87b9b2f59bfc85e268c7a5300579044579024b476ba6b02e3cdd503678fbfb02ea5d61456012859c596bb68d1f38fe1ec1e563d5efb5a2104d97dc903e846309188a92889344293faf70dd61f417b075dd5fa2638653926e76a59c1a00349ffcf49eb11bc2723de73800b32004cfd41a9b6ca9f8899cadcde5626a101130347306f2a7bdfffd384e52552da3910aacb2ec98b395d1eed6c10c59c0f2e201a034d3e7886f36aa5485333181ff42cfa82033ae1d03305acd57e2a8a7695baaa4e03ae8314c3911a7b60e72e29e6fd06b07a974e5bb0b0a92c0d42d2ae19cb45373d03f2de626f7e33120df895dafc06dd743380f20aa5b9e3fde098b7208c3e281a9a03c58a6e70daff6f018f35a0b32675a76f45ebefa86be193a218de185b0174cc180322168e00653558c601db53326389baa9bddb952709f37a9718b3177ee01eadf80219ffff0356c65aa0dd2cdb66925ae6c1ea1834c772ce5dfe04a92796cb39b30cf0ad6da0030269b9f590ef551ced148130ded31aa8cb98f0525c0b0a6d3d8c01af0d44320e03e4048fc6297c68391b88317b2a2cd6ace7f3402e7c91d4afeb74beb4bcfd62eb0315d077eb0674b157e54c71cb8812fc258123d09e28d3150895579fd8767113d20392dbc957678eb78944e8387b035c7464d03909f8a3917a6060c3f312f53befa90323cf7fb17e4f04a3f1b43806862baf8dd2109006111959db2c4acf933a67c55f03b51dfd3b4f8c1c7a73431e45591afafe0aa0931e430cfcf41e4e376cfb5ad64c0342451c93ac7c78501ef1f6f443f6b06264950efb39f2ce941451e40c13b9437503a7eb571eede0787a139863750a34dcb378ae925120bda112b2093e7c8110116603ea9846413164ca8b64bcc3d3d8804ec1cfb218b6dbdedcce7c1c0225c0c737ca03b84da3984e629e82f7356c2607dcf9ac8676c1978924e92d46c7f5c7c993a9b403abe3a34473cd07b72a22e56d7a3501dd090b4ed1d0c9a5f4e831e68fad54130803fdbfb7179166569d00adafdae41bc5589744b6071fd6e039a42aeadb3d4cce9703959eb6575f8fca1b9edd4ed58a67ec2a7b2195ff0de03386245151ad6a68fb8903d4974d3a3581dcbcf71fda1444116010d87f4ab038f77ec627b01e6762d1334d03bc8d8c2d98ca8d0997b7cbbc72c2452fa21530fd39f258323ad34321a89209ab039437e1ccb291b1e8ddb02098c7e87cf5a81e589cfca0a197b5223604f6e34806033404978b8671c29ea25686bd0a7102d2e623a574cbc4be26e5afd23f2e1df50303527f0007a808e83f0bf16b09069336ae671601798c735b983bc0f307d784c7c803fa178243647b761d9e8feef118dcb7bff8a88a72f03559a227955b7495583a01032cafe76dfbbb7e2ee35b893ded1a0c655616385c14573a267e77249a7ebc18fd03bed163d9d05e916135b623906d276a3c5126c31891f3cf23b46f778fd0ab8edb03b5201a13f1f7142aa0ab27370d53e6bb0aa437a3065cd5a1a76a4f600761afac036e3adf1004ee3f6f1a8642d5c8efc7c0bad468877a2e0402de9eeee9b57d637c03dc83be6bbd76956b16eb1137b63a0e57195abcc55d26ad0b8d502b7d674727a103502487738960dadde9797fe4ded0cbd179c52cc7dfd5ccf444d556cbaa5afe5f03ffdb73c348a5df01f2966bebb64b2594f234e911c272243f8bbd106e7237b7d3039dd2cd3240871edadc4b19167543118e339c4cc047b87513592d638c068c75ec03cc5dbdc95ca9a5d9b0884ac5a4fa4c25f4146657f019d23b0bb5f4b26e42cbb803edee9a5b7b4989dc438d2a917a2180eb430102e8902f04867e33aeae8904807e031929cb4199ac467fdb62204f06639ffbc513fc6b70497f6b37128d6a97320334030912acc7542b2012205a8ecf3d19232ca7963827283e0bb9cf44b77155bf0a78035f7127b85def0f341b29d3a34cc60e59979f61f568794acf1736d1587daf6f2800581e02bead32bac6aac30cc70de3cdcfb7276eaad80a99fb5aafb77ee51e4d39410200581e02b290fc8460ae110f66c400d767bfa2d84ec00d84af74c3ca2748a2c1c744019477ce0340d4237167dd5cf3840ccfb3fd3812ed38ac522890659bcbbe41a8bf0b65389b00581e026fc824d79a22162d35f9bfc505f258ead47627966d78a1df9603b0aab1430186a000581e0385291a559c0607756245d0d08e1eeaa32478b5fc9cd2f2166316d13dd04405f6491400581e03bc2af873f147c05a1ff49973adf3f0e87cf4d38a50593368e561c272e047018c71efc7510400581e031bc4ee00980dc80f4688af3e3738c2fbf169823ac729040be1438cf0005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02192900033bb6ca87db3423d5a00ca3eafbcc7a96128175e5cc9361641da8e91a447e4d3300581e025ba710af76d2238862ac35a9f97e40117559ff503cf8f8407d5cfe986241c802191a870366dbd77be22511bb8b0594a952cce31f474bd62e1aa8a28f1800c776a8d0a194035b9bd8c622a04a064ef6cd827efef85ecb2e62104eca06caf556e6d8836847f503ad58cd9fcaa1309c09dcf13f500e4fefb746ba589fbad7d37359b95aa2bfb10a03165ce4cbf7d70041f487adbf538d1914a111bfd4ff5f3372bc0cbff87879a62c031fd065cdd9aa16d0e3daddb4c36aa245df60c655596e7491e8d174b7b20ccf7003fc096f13fe64c617aab3c175b02d1f3723b446f8342f1111e233ef478c640beb03654c5e67edee3d81a1a4268f210e7a186304c4b1925f487370e33d326c5064b0037ff046ee4b972abf89532526844b2a17cad8c7e4e0702c9bb925394d58b84175038be3a380f6453e6ae8ad0726a7d6fe1d97aadf8f88eccc455f4d4b917ed0753a0399916080edae7de5ac168cd0d2468a5939a48829377b241f6bfaa435be2f6e5c030ed8df2d88bb7b7c6f23b8f8abd32464368f392dde0df8a5f2fbf70e9889228f0317120da53403991bc70d51f39b8d95482d7c7fd6085de7774431d2774593e9120219ffff03ef6c92e8795db22dc07f5cf750131af8429236508a3f41e7da125512b1090974032d1a453242629d54208dbe7147ae6fe3c97db01af7e1588d2f492ab30ce70ab40219ffff0219ffff030f343dd1ac0eb8cdbadba24b3cdc6b8557107eb47af368ef97d0ce990c55c9cc03da553332ccf78e2d9cd1291a6e4b146c4e8558d37c293ee0abc318b5f46271da039cb8a4cdf123668dab6821d71687a290c14aaaf0077baed37db28cae42935c18038c160c3310514785a9de8358737fedda2067e21d2ec4d7751ea4fa22b3cef59b035111e1bc58bc16d82a0ac8003bb5b2bcd3c966d00208f28ea6d092b097a0a28c03595482a422baaeceb1f470234c7f2bcb9c24c5117bdf09d2a5338be32b45347900581e02e4519778a3bc9c4dcedc627652526843a8c654a336aca7a868b275483e415c00581e022fda439b64abb015992a02281c5328cbb82f15f595eb15b5c50a12bf5f410100581e02ccd2960408b5205810dcd862d2c7b7f7c05ce2bb66d6dcda86827388fc434a1558035d3b877bf4880b7701219f78ba72c0a0f2c6864ef85c7b29564e273935bd7c4700581e027ac5b30a50c1d39c7c3046cf9a064f42eb1393599254845a3f474e074d445c4dc2c000581e02f4f1b37c943ede727c07056570f2ee66744b3bf411e138aacf6569ed325820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e027e747d2bf500dc7a3a7dd5b1698926fb1aebbb9381f0b93aef72b0ccdb5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03a0dcb8f98f7c975bae239cbbba0123d6f0faf2dfe553a42c8a145b1af0ab578f00581e02bfbbadf477d9f5b56c58cbc418876c49a035b97a04c624125d708ee7ca41f90219b2c7031f3c65d0dd4295e663c9aa5ca7157593a08dc7d71647bebaf6c6880ec8145cd803b64844dda2b2a5ff82b449e06ba67f390cb9f7a91c2ffcb566684c84a2b4b0e003d464016cf3fdfe7a17666baca6f42fda938018252fcc86095d875ce144e2ce1003aae88983ef20fe9ee0174d57e076962d9e36a0cf15477cfe1e7335b5a003221003286d3dde0e07a7b97fc9d8e2a3b85d08be1991a2db37230fc6b6f09cf018c2fd03ea4acf518db00ab8ea683016c8f9fa407822ce2ce4be9afb0e285136b73eb4e803c77267f6ab9aa0acf59d1f011cd9484f7a71752df05383621238f8a29985f8c10399a9967c19e9baa49b7f9f09e8eadc17b0c869ed4c5a65658e9f771099fd268603aace0ad7a1e7bfd5d6c948fcee00fce45d63514d9cbe815891c158f6da74011d03b191b7985f4151953b116e4668a1373aad874a2fc17f3cbe5b8d55cd3b07ac7c03b4d7b8166a7842549696e17c6aac560d03277e668b3d94d7f86fb16db5cd654e0363f7c9ec17f90ee4219d783ac9f3e94dedb1cbc4420803ecded236203d8e3dad033f1a05603999623d7f1ab76b4c45603aa687cdf5d0e7afeb227bb930330bec6703c44bc91ab6f04ca7a72819494559c69e18a613e6b4e894104d859500b47c816d0219ffff03626d3071e734feee63a872e1d317bd67aa4c7262eb8d8c701578bf76209c933403273b04d36c0e6975a3ce80dcbf60c361ba8e493d10170f24bd634dd48a184e78031013cfa0ab76aae7aeee36785d3d77995cc6a6cb081b9c8db566bac9d59e3e0603cf75d452f95b647ce1eeef69007e477b3599c2bc56d2ae86ba5e4aeaff8dbd2e03ee107e73085378c3a28082ffab7aa1da5cfe8a56be8931de3b52b4d4c99bc898032cf29cc57ef1bcac76c9d97b115e509dc5e3b89ca89acccf5ddfc0d2ecbd203203cc4d05f76b65ec17a4f06da904167769762870eee617c7126c8ae7bfa5b63abe0332c9e058cfe65bdf2fc0a82626645b8b1f89b66c899e4cf588be7f18e4fb6c8c0362887d2665a6ce8732d0c89a725c99ee1322b491a09fd62a6f5adf04eb1b414f037c23b38da19eb99fea0db6d6cddb5cf362312074dc6d2a72140419baa7874d020219ffff03e8aa020b1084d75e9e3b03c29e4e1c87cf1deb5e1e31c7e82184fefe5709c9ff033fa865d9dc106360cb19e0def4384b83708cb704a2c70028791049031270ff6c031870d5c6fbd2e89d45ba97d0787f56348741666de94d3755c034c87d6cb6f55d038ade4f0497d3543bf2181e5106a27a9a0a2e28e5e8f42167ea1b673fab1e3d7b03f3c4ed4631938e729fd7f21a48bd9df8e21db734a9abf3c82e3248fdc62ae1da037aced9b97d3a51f7f373002c2e950ebc2ed7d40483bda521c08b021b1575599103c46e0a4f864b9ac6716332b3dfcf94d6bdda0baf47f37681cd2c0a766774803f03da61075afe27ed84c8386db065b2c02cba59b33656a7c3ac2be45c2ab1fc8f6b032b042a14c748b2515ac86ac652a47452ef1e7da03d2439f2ad9821b349626bb003b0522a445494229563f8433c1df218cb05815264250cf4cbb9bf0595e7260b8d0334d5d88a60b446f9fbe8e51280ea6c4c8cedbd7a9f0f312200aa0244048dabf903eb94211209b012d1066a7a3367112648004ee008914c80d1bad85b6e3d9bd92a03ffccabaf9db65b66257fd83de19cc75eeb700871baf4763d24ded8e8882052550385acaecd88348b8f2557d23328e922ee6a4ed43144d149a1d4aa1cbd6371074f03a76d28e5720dc0b34e75fd338427741f171675ed30b8ab68516e126b2673bc830219ffff0394c494dcfe0f14abc85740971e133e4067695de9e429e4783c0a989e3f19c89503c974811f35a990b9c84d5965883547079c07e72345906213efe87a5311e1ed880379b058f264773fb233da6be1bedc60f3827a175f513c03119cecc9ed7e50c2b203e3e8f78584b384495655f3893021b56fb1544aa5b6c27e2e68d8ab916c5aa7cd03ca4ea6100f3432d1aba9c8f0dd649b499a5d863366214b57a33f67ef9d98c72e0396ff1265ef7e2906c933a1721fbd8417220ffa31fcac682ddc9649378f7576a80363753273f78a5a0790b2189a425b1a150bd195b05dc5376d8124d2502731f480036149e1106c19c225d75dbd5acaa77a9bfbe80985311e42c524acaca687835aac032bce7932dd0b21bf61d4c547a6248541a88b04a6202fef3727b3f2d5c3fee458038c43a81c96d83ee49adebecc625b35d83c1fecbfb08aea6764e424458186fd1203323be3673a8124301da72d4ace98374d6db9537f05260266c8140340d1d5c0250365dfc1e407a59fb0dd66a953049bae14351cadeb9cbe0cdb0a67c9f748b4d37003845829cd71fd1cb6a56e543fa3f820acd751c361233d2939185e7a3d92a2890903b9cc98843b2361c55ca9d9ef1f21ac444a5fa26f0bf71d7a648f1d3c51fc41ea0350128e91aec76c8e272a592e925ce8eec1bf1f9201a79a09e5f637a12c9f5c87036febe056f4cd81b5a96ff514b129e410d12a245c2863c5875183655b01db1728030269e6699bc573f080a79128b45635ec00d2e2472bccca6f659a4e588df712550333a3c8a81a1868631ea0727bf571f42f86c4861e6de1b4c11108af416ea5ff4e0342f68afc082ca27ffb35f03956ced23d7097459b8906718d57e560e88a2ae6110311cb31fc48c9f10c48dd7e3765c878d45a717df2aa131c7b09e69133147633c5035c5dff1d2ef7aa7c84bc56d3bd379fdb8a4a471f015d271eaeece9c1cf0a27bc03c6a5ebe13eea9adbedfe2dd762f0d40563340dedad6da7d632a07c719239711c0345caba9744410f83d7da5d4b62eddda768109edb5f4b0aef4c95f3ae31b0336c00581e02faf263671440bb23023e38675eed7b8098b02bc6e82b696f1e77fbaff85820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e024324c6888bee4258f8b47314e0dadd7504990c026317c51df28108d618430927c000581e0230dbc96fc0e89685442284ac8225997fbc880c24092130b11a1d9b5c495820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02a992ba9867741a760496cd18ace99dd1bb5e0b0bc5c47dcc66f32514024332fc8500581e02f027e7dcabe2ff36c001b3fd4594fc3dc774ceb02bc4a2e14d515d6d9e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff035d625440623d43098cbe55856ce6ef5f32f9b2dff7a938bda7462cdb890a60b700581e0258aab785507ec589a18d14b8ccfc60ae531b8a8a9d93b16d2485dfb7084405f5e10002196f0a0219ffff03b61a657e13ac84f8ca1548d7179f3226dae26ba76013c5469e075a927d74313203b812598e08ffe75b46fd00cf8b9bbfe779c9ae377309afb57444972e6599cc4703a4abd9cb2da5d5eb1ff0518a947a9f3359abeddcda421655fdf1bb3fd6bade4f0323d803d86be6114c9a56be1e265b8d736fe704fcb28c9e3b023261358c100ca303789e8ffa035c84d6a3730196d8b11293c56b61577150ab7e5338d9620f76e87c03a502cd84dafc898bfda2a573138587e6111638645c01e821c98a735c005c7ca2039f9bfb329836f93945f9680c2c78a730a62698d1f83cf4cabea6c349b25d4738038e27b7adb6836c2edd963f5aa13fddb91f309e8f82ba9b900b7371ee03b7a5700341968ba7934a2ad3d18dec2add64358b7977974e2e4dffc0fa406463dd1425c0033761172102e9ea68d0ec338fd48b7b757ffb9ed2835be83774dbd58fe04a8944030abc664a5c9705171c5965397f8c4dcac13635abdbcb1d94fb7fea636b4c91600219ffff033ffafe7c8987bb545728c90509fd6af389fb8e7ca19b0c30a18937daa694d5bd0382c6c187a3b50f1da49279d8e88047bfa653f14573498da01a8139f5a679f98103bf33eb061ea82ff7f7732099a832864905fd4615fc39c540b2def82d59110b68033cc59f1daae10cf3f1f800e82c38d7c4e764fa47b5cff9dd4d2c18026fdbb53203536c316f65a931678d5d38e5947457b5a72587f188db5926f5678430a013093e039daa4c53ed4d613f838e1ec065aeaf8bdc3c36b6890d7ee9dea7f91bd04ee6f2033839ba97d2a185c42b898e06b9c40bb95b0a1418f59fe57fbea0d02347442d3503f0a7c85e2c427059858112222dd67304f3c468223c05d094ef055349bd5b8e590324f1e69b65ec9587ec0770255a37978f4784d8a6bd7684ec718ed7d00879b74903a7973552b1a5d96dad2a03209571d36cb277ca4b38e215000fbee5fa037d12cb03aab2cef19373d969bb3d749499fb641683417c51ebabea7a4c4fc549aad47c1a03d31d4cacb2978ef552d58076a3e0f16fcf6bddbe8cb68262007499a8413c5a5103151492ad5de09a13b254397c3aaac42b166e0e6129745f8dda8900fc90f132f3035f34733c15adc57a2a67c197b861317bfe982e40eea2ade2192fd227bf779c2a03160545a354d069f9ee9a9cc8349ad540c910205edbf1a3ef32b702435a61030c03c0c40aa81113e73acbd7bfa19bc523e1cc3531a34623b3fc04f176b29b9426e10340e453c6110c21919539918f8b9cf9b78ad18ac380e600132dbbc4d931ee3b9303a0ed25eafd3a64d73b3ebc001456d0130452d4de0835ca579d1a52c836790b48031f52ec63c935a082211014fe649e872765b54f86e150875b1e94bae3e0037d0f03740896fe231f9d78720adceb67f3a8219e153f565ed1584269e3a95926de4c14034a91d7b219b912c8b743c905078beaed927f22159ffa819dc60770a18bdf515a03e6797479e15d7802a01776e7b5afeb1d73f41a9c47fed917a16fcd45f84dfb4f039ae274223249fb7a739c9a4d35328e3d430ab7878b480dbda519a6ceaf2695ff031adf4fae1c68553db03332dd0c43092a1f2035dca93017a0f429fbc7b908128903e26d2b7b0d9fd2df0ab2afe339406ba58ee678ecd74879d53f44bcd5ae61e99103466b9bdea6139b993f5116e730e6ccf5f5245a5b3577eafd7b352c0b30aad76800581e02e8b74d96e71e8ec9e7cb2fb6009ca5aab80c37ae46bef55763cef157cd430c5c1000581e0211ba6e890b8360ca1ef779de58a1723a5324ec22be5fa51123e6da0c344402719c4003f655bfb54d88fbe3acce31b5fef44fd2eaac348737c8b63474645c65b4581f8b00581e025e62df1d9cdd867af259ed5d6e25b3b802006b5124f45c500e97964590440aba950000581e02ab83d5abc69b55ee0a4e994bf02587748d016804cbdee4f6e91f436f8e4402bde78000581e023566ac614f9b5c9fd888956205381ac14563b4e689c6714ee41c6c58f25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03e62c24cb13078b551303b4b1e7f6fa4a185a1a3a4b43d159c1655cb2d5b7ea4100581e02bf361eaab99c8c6937979cc71ccbc02b3d8aceee655b9b40fa50767d745820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e026fcf9ab6dea7fa04ac8fe0d67921fbfdd56ad800323c5a32b258522acd430f424002199d0f035458443300597ff971fd9f1fa1b96d131469f7a6c90f0455d015a2f83dbc7877037b39db91e73bbccfb52f6128c66762c03662e8ab158b8a55f52460497ffd74010346a110894b961204e1ab1ca2af10d0a119f42646bfc31db5b9fdad877b156fc303f0ff54f7bedc80b5455d166721ea6e565b543f28c0170a17c493c344dd0c961e0387ec430bf15dad6e279136add826accb88d8bbfa94e710211a22a47413c39f5003e152e6c415a3a4030758b91741e060cb43775bd7449e0b6417599addb3b144ef03441f8dd4acdb3f0d89bad8c7f795ed2b20e9631cd396f9cd71ac1a665240d5f603a355bae630b65f8f65ca02b286d0182e6cf559e47a1b9f68df8ad25122f597be0378f1dcb6a327b695f467d6dab28073aa79ea1f2c597d0927850b95c77032c5f1038e3c3f009772e95788c0dedd1d585fa894318b784138539f479a75568521ea5c03743d82944a0876df122a60336af904cdba287e169442e2ac8fcb031f1c64e63a0219ffff037a77c5740d9889dfb0f463da0985480f1bc1621c3bd7f3e78e799b5a50985a7103d94be2fb0842ca7142c1748fa0445ff531226cfa4d627c4c89d62ee45699c8470219ffff035b9723c06c16f4d4e94558be9e4f7f6a10adff2d150a4cb98c5cea742589948d03bb32e4c23e08c69cb06f701a46621680a54050a9d157b773baa1b704d7d854500219ffff03a89d0955cbd811a9e9fc9d8bf104b2c5a9d489ed071af03de070c1060a0c05be0219ffff0368306bd1b15dde6867f6b87d57f81b1e86a7a61bac8291be34bbf59c8749269d03d776b7d728ed2a6c591c0a34f5de313238c5fe3d4940081e21b230cb1b9d788703e4200029e466cec76a0273f578303476f8a8fb0732a21424daca862f4c1222c003889c27bf86ee734561a51294110a7102f17d5cde72de3e1b8e2dd690ee9ea42303bd217a059c587c24e1dab362f49d03f94cb35cd1c14f21cdd66d87737c014f6a036841806814401c1f06bbee918c14973b6526c09f2bf4966bf9cdbad80af3a8d703ee44868f332a9b79f9746c8fd53fba84ae14a83c054ceed05f508153ff7c76d903e56ca3c2c00bf7b387931c0e062fe0533c010a63bacb5bccddd625ed94a024c00385b1722caec326f3aa0efe1fdf2e36efff8778f8598d57ff99e52d91b297a94603abd9b332e0589447f0f10b0ab6a44c5c671061f662215ed149ddda84452ada8d035f760734a7851c68bc4932dab4cfa54682aa2f67899e4ef9c835ac7901729109031900740d54d26e5b3a48f1e75c1ff5e4dd6f9c653bd410dbc582f36c425e123003b2d4602027bc7b990ba2f61df478fab9e0050c33df9a9e9d61a44e4c7ed72d210337395d0cf47cfcd437c41ec39f0a3c2a5a621ec07b4ab1c6a8672d4fba39aa4303bddb4815413a7aa28546a9eb54bd95930d5b3df0f32f9bffc92701c3616b1d0503449d96323b1aa33c2e219d32fd6d2270a29d42eee94dd70ecadefaa0782fb97f03919e4d03b7f08bb1a0dc8e7726db3a410afea0ce8b35ae45003fd09f94f5b5880382e008780ae222e3a41aa0ec55583b7b31068b9ab2e6842fe65db66b05b997aa03643326746a02e1772af5fd811969f042fb9780ef022750cdb50cf19012341919036ad6adcfe0892a29320d56289a5fb2f6400f1a9177d58ec30d7a307659e42c6e00581e0242bda55a82d4e80407713041d0227a6c38499f971b01a18f07a9f731f2432a730300581e029299d03f782e1274ac361bc0c5adcb8b006c48f3c32bb58f5aa2155bd1440620aae800581e0277cf7547b337805add03a0155e3dc6c80cf616b69f2ba54a2681d6e3485820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02116abddd9fa092fa479be1f9c7dde8ec32137d0b4252ebde301b21d0315820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0258932956875c62c8169167bb76341c89b27aa565ea4c865e727db864065820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e022048d5803886acac58457552e5d37aaf4892d4492374d61f21979f57aa5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03e646cbfbcf0d4642f2647405ead1ecb0aa6f344d9f3981655a2ccb36c0450567d29b9c00581e036bd9e557128f907b9c5ec30ac8e34cf13ec7dd4d04e25181def19a37f04401aa8458021920800219045f03c9f3814bbbac7c780f17dec8a0c07be4ecacec06a0d72333e1bd333d36661eb603e8e93b9d3ca248027893824d885fa14d5011fa327cf8979d8419ef5068019f7403e7f212d855dd48370f9730be3b4afd3d3fdd2f3399a97a5aa254d25595a3148603a59dc65c09c888ef16b042e8cda5a79c59ec9a4c97596086631e3e5a8291db56033d68a488b200c3034181023bade166aa0c59e87dee926381a424a2790968675003e960fcd032810e3dde8cc2fc2d473a69997f651480693eea4b0cdbaf3954221e03d7c3eb730180946711a6ab13d32b8704ac847206645687ac305624a34dd2fa8203822f78c03a5dab13f70e347eecd63b81904f3e6bd36c3fa285595f81f4a4104003277d376fec6b927affc9ae2f06da0a92bac1e2c236b9ac7c6abfacbfa2f85f5703e1b86c4cef38245beeb1c31e507f530734f51a7e57dca1f15b06c19d9cc351b30311988476680a401995b4e4ff8230a878688ba8662de95782a09bcb42b8a13cf603022e67a132a25a8b472b85d9a3d6b577252d4089cad2865b0d6403b114103d03039ccafaa6ad7416ec083861096c1ccac3ad78f5040ba51a2323d8f61d1e1294d00304faf6b9feb322f91101c8ad1c967badc7378e82626f36481e184f3cac3f6d570219ffff0219ffff03ed2e49a929ff03b085c116bb5e912ab374557bafd54a3b3f296e0b4eed06baf103a87cc4aaafc214216dc7c9ede2a0a736f2fe310f0349d3056273346802df5e7503624f4afcb8416427f41a0f75276499254a95e7f508c142926d60c1798bc1160e03f48fc6976ccd0974f7935f8fcad60a386209f799d8f6e5862fb602c82b821f4f035866363d54a8aac4804dc8372a89397b0906991a036f358005327604a188a3b6031ea12f99a6402aa445c3ca70965b89a9845b93be4e61d461007addb4466af06f034d07f4d983c2ab5647f9a7ac9a41aeafd6494777d34becc37fef0c45cf8e8f1f031bbf7c171dc88108e8c44b782725f3a4c0877382d6c10f508f0a8d3ac637d2a80347e3c64e898c2007c7a5875b5497c73ea9b86fe17ea9b7c7c89b7f9cc253214303332852fc9fd2cc0aadca7ac979cb69e17ad8e903caabd4f4e27e70df3b1544a10325f55fd8942c1adad918f47c852b3c6030abbe859c007f432a4fb3fc8f870f1a0324c578ff4c28e6f8ef5898cd1ed93b7adc119f2c7f4b456f313e02329f281e84035c4be48d818b3a1b7ef3add97473d46c191106281ebe7b3a256533876f90e27a034c58d18138a75edbb53dcb3e892e638342b51e1f49bec6673a9426bed94c7589031392bf5286e7f45d60a071c3522d750210dfe049ec9a475b58aca59e6738dac203289b377a39e38031125fd09258106492c42be36a3b401c279163d605b402be91033ea78bcbe356c282e0ae5aa2f685e98834464c84c7b5f3796bf6acf939c8ad0903f0d3f43c4ece94d7ba78e3a9856c53421031f33ff11861dbe23f7052632cd33c03981d5bfb51b9f0ad235d69f7c356929d9106e23d481127d1798be7edbb7683ca03a3977bed79747822f0692a4e2a4491304d7ab9c00fbd0f493c15f39c161085c60388f3899c04c724446a14fcd14abb05bbb7e3e37d180efc51be28070926df409603ef4cb4c7199df1b10ebd6c5b90e0490ee2bd4486d0d8f2f231b5fe30ce0c57bc039ca99e084dfbc32e592bf46e0caf2552a2bc899fd9890b0da1529d42c58bd07303dc4ba6a50644b3c13a82fcd54c1d9ca52cf12555cedb1945ecc784c401b320420385c7c1be957de2869d4ab8ade8093c3bd197807133960a3a8d9cf0a95732ca980332f97c8354f2f3cb99a57c867702ea0976cc4ac957009b5c291b79941467d591030b6994676dcc22ed07a124ca6655ffaa870dee23c56384f00673c1750a88093f038d7461a3aaa9b0bf39d43f392515eca50ec9d4c63de6acbef37eacb817dcf73f032fa0fd49ec2f733ca9ab20b4f965e2d856571b5290b225597ec88579165b48a10382615047a289b4632f58ad0174035476c51fdc6e4229604fcb42317982efe40f00581e02c006573a6c7ef4633466e9d022eaa4fe9bdee78f4a37f12266016598015820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff037745d5ac918e35993b7736f5f5e0d46ec422f86f6e75a13104165330e121816500581e029ba04c438d203a03418fa8efdfea78c34ff17ac7b37c7484f35fcea87b43ed10bf00581e02fd03c98bdb6403602b8498e362df14e0789e72c6a1fc5984a98fda73265820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021966900367cb8ca1af7530f6411276359c5663b685271bf15f4785aa968696f23a2836610383a9a2fa9c1a24ce84b22dd2223982c4c9bb62f862849a51fe712bffba265f240381dbff8f3ef96e074be040b0ee7158296cb9a38022c731bf483b120df73d047b03783b7c5be8a4f43823f39fb91a01434167ea002e27a01ba4f99564f69382f7830219ffff037233213f5a087b09f8c6c9ce25dd64c8ce1b1c8f2e4f28829708e20b5e2f67760379460d1854abd0b3ef9f260c791df6ce95c390505605af345f44f49114b124c7031b47fd32a5e2a54bbad8498121aece312b5435395151e1acf934099c9770d4e00305487e89f9488a5ebf4e9c5d378923fb993e4727d1410ab18ecafa9050fafabb031e56e345220275aa7c70faed7d492428205fe9486f844cf670d311c6170fc3d9039bfadb625f4b16f67d16df0508838a791430e1e407fe27e8149c66e2715a08c10219ffff03f9ab1584b786c53b17bbe479f5b086806cde4b43aa2d0d99df4295b756e9519503d291edcd4ea6cd9f27e5d53ee34a38f9c7f88255e2537a9e05e9843d7934882503efce78c35189bf6b67a71995d156f82cbf79faf70ea80b855ccccde08a608bb00219ffff03a60f5e7563d765d13eeac17102c04d41ddabfb6e081e70e15825f3ef9700e5cf03edecfb9726dc8acc35457410c82a67dd53f2282aeaad0d357759045a2b85c513033f4f1afd1b04f318b4dd19006af0f4871fa0c08d999e5041ef2da83f895f4aef03b896b39fd8ec9ecbc83c44447138e8d19c2c44f361ed9a929df9cb843755d85203b48061bbf7b6039b978a773cd261dd3111a884ca9723331107d4da7977faac52030771e0fe7620a922c7fb04237ccb80a403b49e7fed2e2a9d70c748caa245414203778f9d979ef40a43dabb4f93007ce83b5962aab00b0ee80bf2bef838c137a24303eafdabe37516d76263112357d7e25b453df353e7e5b4c65e2a87a8802d6a2925034f725ddacd42102c4bc98f618b3a2e0fc33d90ffbb29333b05a05fddccc86d00032c776057c9735d8e9a6fc4d07bd95b98fd1f4e7ca7109ae729440d872121aba5031a4bbda596e77e177516fc2c45f6e55b77892342a19be40deac1c31c15e607de03f10bb70cd0e10bbaff67c02e06aa04eb5975953bb5573adaee3963901c7e9507033b7bdd677bf58763a2cd5434d27f9a1232beaa39dc3060f549ac4bd4c231700c033d409151d8fe428d2331164bb620dbcbf2c44986839ee9561fe59b0cf43e78b60351dfd5be3356daa804257991e41d649b20af48ea36de0e86d848526cee9bce650355f64847ca0f97140c95e0cfe9d544cf853eab0d633a6faba80961ffafc45e9403bd0d2ed98fa9aadf0065a728527b0b38e11c5701810f650dda6bce9df19cd5220308a3c15d6e6c9ec591974623f33cfbc61a0c5196af7d42d637a07f6e09abb6b20305b6ab1fee04cae860b05ae9f4aa8337395e15933e40060dd3ae2dba05d75c2903546fbd5156ab487ca843370321f8afe116898a0991472faf48ce9517972360c503de4db3d7f084b20169eb2fb528a8f324cde6c05c7897fba2ecd091c1771eb3fe03a5b2ef819ee9597c641350f5870d22057a870323d01091c67653f47b6ea0303503ae389dd079110678d7a57c26d79bdde2b4b99f50838caaa73e824f48baccc3bc031cd89db3f112695a38f06ab039a1d40256a3d57c053457b0474877d4b193bdb50328f277390ada366693641964943a3306b927e23dbdb8502790b79c1580f3fb1f031afd8fb722b8f2ba1e19a363acd119ccadfb2628d83ee16c8eca870a45d1e48303d5f6e6455c4975c4de6bb3ceb6db3571522a84eff15af1b842007800c8fdc32103cc63ea143cc577a66e3afd909d4246097581ef1292b776f798d7e27b328689c703ae78d37c76699082adb04c5416bb6dc4a4659932eda83b9683254825c1d832c403619c833227d94803232496d635e18e8e37406e37d091f8610f8e052447300bef03682ba9b504e2a39aa25726638de08f368da0d8e25c690b6eba45cbe782886a9d03edc41bc9839fd51c9eb401e52d6bfe0de8c805b56e66439b90f67efd8a0b7432030fb82cdfd953e88dec1c2c3fe2620ffe5b73b9797981760c9cd6fbd060e9362f038fff5d32ab0101882d1528a910e24c2a0de4a686fb844b3e78c4fe6b119318580349c9b8e72676abb1a6afebb23eff8f588e9a83f58b65b6f40fc2e9d0da6b9d5803f0986003e5696064b6db47b9acb0923c5b3b82279851c593ff719f7aec99e05a03069812a75378f35bb30b4d0ea446fae58bc22a326466ab690b6d05798c8f77c703630c164fc50c162ff620cffba4a1805d78975c5532133a288f90e4a10f42bc8e00581e031256024fe9f4b585135217ed1622e8bb6a459f8782ba823c8426c057004435fbc17a00581e03367a2778f9a2dc5118b41c5910c0504877b9c0f3372f512f792a61b140430f424000581e0390f79e888f448ae281494c0f7caba76e638575f8200f529c44c48962905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e032b2562f2825f196461ed9ea52c9c3fd5958230aaff4b7aa4ad7cf68ec0410102194a04021990100322cfb7521e2ff01cc0ae6a92b5f156f2f4237928f4706a1f4e3e73e85779497403fa69f1c9084ac85b487c300c3e1a5ed03a4956c802ac61004587ff1268a3279203ec3eaaea11624ab9bffd473ec0861136da5d42ce92077dc7fffaf92364ebb6560219ffff0373b1cc6f38c039733cc941a297be21bf96e5452b1062aff0d8922d0e5444ef0c0219ffff0389639dc942038f6ab57efcd00b8affbb5b0ecc49597aef3b99f7861b0cdf2b0803564765c69d9e9556c7635d4c7939e385b21da054d591b0259ede9d8803c38f9403e946a41675cecb0185f3dd03ad2e67dc5e0a250c46e95f040a8cb4d30c7a6f3903578a5235d51bf26b776ba500b6858d20b6832d855509332e21a971d578809c59037629de124c8eaeb74da3b675aa97ddab97084a8f53a48cd13744cf9cb8b194460377f924aad68de37a0146eee489d922cf1fa862e90068c48d7f58eeee63f9bd840311c6c563ebad23b606d357d394a81b96e86f527a80476b0dd0fb391621e46ec7034b5b19d1437774be054ce4139bb727a02850746e161847dd9f8558966e81b04403d56ab4cae85809f6ae69ab783a1ebb1fcb1011703e67773a8ac1f3c87033082f033c6ab35121f0e8bdc75cce23edfe20cf99fbd5ca01d0efb918d3b30d927e64b803c7922c2720a4bf865afffebb24c3ac8e2e759a265f718e688d170e7d46a86d1d03c1ed9953988ddc24af9ef5e048b285aebc45c213c8c3aaf5c32234fae5558d8d032faaf1b193fb5f7d42ea7057b88f0962ad1d4528d4873ef2602ff976f396c273033a7b4276182dde0ea096e6cadc4899fc380195e3b0e929c3882d8846bcfe2d8903b45156d348fbd6cfa8d34d1b492cc18eabab518eb28764265dde37caa0f40efe0219ffff035723591449ee000a1473cb2aac7284958fdfc8e3f7c8d02fb2b6a81836e3fd1903125458e7bb40aa8833d30174be4b7c1fec677ee2a22a0400b888dba9dcd2b06603913dbb74061e14021e484c64852d2576417c0dd2b9d95f656086cee732bae1a10219ffff033ed066b198fdbd7e52ded91885b3db55e048a766add42e4e7f90a1d01df55cd20309588c4c67447806bee53858f95177eb3ba1c296833a39c2fd0de4164cadb09a03fb3bb957f7f67b00a25fa81e40562f048e1e25f12cfc8644c225cd18480a805e03d2388be00a3758a35f942608844a78d7c83125d0669ec0ee874b58fb82f263df03107c34733a95609a5a1b56cf2797b6acd3d300e2293b2f6fb22ab9279d486c7903cf667151fad50cc1499000025500914955f69bf06ed7393ea9d6deebe7910ee0038c68461088f719e3a5ac7a428d711481c3c93fa09a46d0f0dfd7b51d7af2d76c03f80f6efdc4891c32f4d75a6fe996fa0e1c19e918b1d5a83923e1db5bb9941c5903471e0244998d8cd6dc421ff1670a001a95ea0192f869574baba885c254aad8250396f4f66eefd8608bbb723dee90f17bdb015716cfa3848e282a628a5c49472a5503507de30541ce6f9afa1a271c335eb3b2c00c562af089a85bc94fea0b415b81f50355f3725e2a018304f4c091959f3f99434c5acb413632b3956ac198c3913033c003f3e5973821fd097a50b33af75b146bf4d16333af01c73c2550a9409597eec76c035fe5e6f66787151db80500a3aed7b40caf405e84e68aa67cf78f9f68b47e825203eb36910cdcef5ba359c97bfc65c93903a4d1a6669ad32ff8069e17f21125853e03ccc848ee6c8e72085a7d6b6b80fde00ce224a00cd3aa0e427581ed15bba46ffa031c73a7ea6bf78886aa190e79b983b6eac0a74075f24e3e9fe8d1616d3d69ff7103e5720aa68149f00e837ed966e2e7e9a68451a5d210c4750882ea8e528f74746d03f2975cf37902d104c73c5d3e6577a4dfdb0a78d30265e3358e9a3131674f0ed303eb7fb983679935433be1a30c99ed3bc19a9cadb2089640321ca63ab18798038d038b0d6405094e681ffd552928f36265f7eb78d3249dfe935b954d1217e3f55b0503e8714df5de7a2dd65981fb6569a42fa927c0c330a69828a0af9025a2ac646df100581e023074bd0af50b7c12498d82cf2f765aa1aa90b547b4c1253510c8dbb5094402cd29c000581e026d133a9395ce56c9fa592377e58ad07c5549c172653076c6d3006cfeb1581affecee2142a7dea9314b809a0c42d3e9560b1408a9f378b3292e00581e035a3f7fb411989c703fefe272e21be3e18459f2313debcf91c3d3a78e604398968000581e03a28af5a6859297fdc93e1f60c70c4bbd94631bee7ce58ac6bdbdf15cf04503b7e6fb3002182400581e021762823b7b0d37d87c255256b2b8d21d3cd506b3822bf99306c0d4381c44032c143000581e025eda860316d0be02c1acc12fbce3e8034d291c082bb5016175b8e5971143cc29a000581e0271abbae0ce7c953d2792c7264233463ca1f5cf7fadaf7142892be92f465820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03db87b64614bd77a66245fa92a2213ee16c4943615d046fdf97aad130d6b5b25600581e02eabc54d8f72aa7fe59322a9a0075c63097885bac5ad165ab6395d957d943596b1702190ab703af85fde54e8a3f8a31b26cbc2675d8424ee7905755fe4cfaae465ada51b8f47803f7de2b711c3f4250fb290a96882fb418dc74da263afa7aae5c2f8a16a8faf13a036065a7996e53183946a7549fac8220ba4eb558de1c1af6b88b4aac5f5ed1367903aedac8bf1f29b51f9c965dd5e3405e4f6fe4d725ce0e6b9c83f591f3453e03050361a06872b3073b63dc7c2d42cc53bceaa0d2eba935413db2ec340ceb8dfeb99e0219ffff03d681ce2df0a2ae9db1f4ebd501247dba577d33e588411b9738ad7998ea51119a033b1244e913b61df449a53b2843b6ca45ff6bf1d7f5a1e5e516e396051b82b695033678557522d4a06accefedcfb64adc52bb34e754cdfa7e209201462be93b0a970398512fd830b60f75c41822db07f4905252a36b2647c8a5462e4e68dd8b4dd31b0352bec573dc38f7b93439671c4368ca4276f4446c074204b6c6d4bef6ef37560b033857dad79574a0bba35f344c17aa4aecfb741e67d1402dee3d508f9f6828e064038ba0d25cfe0fa3f7f48199c2e45fcf10c9844757b0cc5cc74b04bea6801b112303ed005617bf3c2827086da86083d07d36cccc90bce0c4fb32f1523ce0917caae1039da6e513175219a72ff26a70fdf73fda5aa29106afea5958936d12966597748403e5ff3bfd643a4c10d12e33326a21f791d3da7b13ebc0d257e78f079f94f8d024031fecb46ce7637b668579bdc23e1909701683ff811c06ac93da504ae9cba3a8f10304e3fc84159109fbed2683e7eca64515ffb47e013eda6306926b6c3c81a7a3710219ffff03971b40758a33cc164564581fbe78898e3a1c48a61db45da83227212ad31acaa703de3ddc4148c75c2168093400e532c4e410633208a0e997d196e40bad47a15deb0317b352bebb28648d358c7334b17053a7b4af3667acf4494adc0f407bc1fc0bc803c65988f9814b20325424eeb31ee30b83301e16e987bf1f28b4e85925a1e7d369030caa4f6194c8647794b3045ccc367a0d69ad242b2ab27cb3c917fc173961226103bb0fa940d30c7e52bf929437c4acc00318839f6e08cf4ee9218822b6b11cdd29035605df085048ea57c7bd8407e8c7517f650e473dac28fa76ae4c8a19a76af604035fa64b0be94f062318f8fa0e8b55ca7cf8b9269c55f64c555da5fd91830a99eb038e17ba9fc6c71b2bcab30485175a4af4f5143069338dde01bd37b434862b3e1d03f145252f15573081a702108978951f8ed614ce3b2b34c8fc392fd24fad2488130369316d1122c45238d3ecdbc46ee6a0e98870b953fd103527295923236b749dc503447ccf8b82d968b1ea1d38cfa5fa890de049c8718ecca24ba85deeb3950b18b0039dcf122849eb06d34d7813b1f68c6e1a1cb719903a3ec4cd3c61e2f39e82da5d00581e02f7ba1e49f2f2c577c67d0018837db3eede49f00d793152eba567cf9923410100581e02fee9f52e3b0119f73f0dff094c13525a89446afcf7f84068018dddb93c44b2976d5b00581e021547c68de3e9640d3e269c522136cc682e49cf60f2e5cd36169d11f656488ac723044e4d360000581e02d0993fde7f3f15cf41c2cacc4f89f346913938a11081c48b7a7cbe171544031057c60218c9031a27c7d752cf735d47a910a8d40d428620c35100b72ed36330c446e8283d3df303b8df285e15df8bee6296ce9af0f7c159c81a36eee3fedd900760d2f7861ed87f036ae56f1078e894a715f070283d2b5eae5aa85f0c7cc39276f3af15631fe1312e0342ae14f14f65918e872dc2a81cbc4bd4c4b150865ffd93410bac68856e8bbded0329ab97ebb31e1cd83d700da747433a4748b4c19996baa82872c5c5386446c94e03b784df5b5c7926355113b5d3780f2fa9e4a4f41cd92808f859573046c06bf5aa03a948fef7c4f1f4c69039ecc17e769a18c16382e963a02a546014578d114e309a030bbec549f708bc194d690aadae0613ff70abba9bf6fd0c750b1cf4a814e0ce6203a8ba390f574bf2a3dbdedc961162885f935cebf707eb3bee6e0f37aa931f84680219ffff036e283303306420cb26baf144776a61ec2342f62b9c2d001cfd68f835c7d0a7a10390d6378675bece1b043b4723d03e014621c40268280758714cdfb2b0df5e1e4f034bb9724b0e3e28fc82b16813eca6fe9b1b8af3efa15e4356d106a4c6df79ac3d0384c31fbac91124accc759dd59709da562e1c0091fc1bc1e2080f539d08b82bea034d15b7f317e82dfe236ada26c19cbfa14cc1deec6b9f2fb9b34bcce6ef363e450360ce1674e90f80366dade703f8844230b084998be2b50ecf58e20464c3e63f1d0353ccd3c4b6fc573522e0ff17863c670e000ca133aea534d6c5f065fe83e94fc8036fc670cc34e02c2476a06d5efde9569fe207ceb3f1f06b7bf02982996a9a396303491e19ef0b0e3b3322e9e143564d77fcfb556adad0a1aac3481bd8b146707aeb036ee336788a39258fd3fc2547a21d801306d4731dcabfa52898c46e5f36d5857d033ec592ef51155519bfb614aa9adcf63f9743794fe0a20b7dbf16dd6b835c91a1034be883e713006305d7b0908cbedb17d6ff4979e1927b9354d2d35e80754a71040219ffff0307e1dc2b9db8aef2342a80d389b2af412e9458d5a328ab5bc17ac2576e332d3d0219ffff03a83c0c69baef99f5f822e539cad97ae47a4f8c65eb865866e3f996089ae5f4370384fe7e8255acc5cbd5f3af08347c6acf85de2c5624345f3975dfd02457a305490399774d9639d3c9496e349d78044195c46c5280d756452b65288ba759603b5c4603508c753040367d7e0b6207402831c043f1a70cbd2845ffcb08e01ddf47bfbe820388767260a0f618a4aea10a7763b7c90196a092f90c47e20664ec6519b121e04f03f08557d176d27df973de059d1fc821d3490f4d78553838a7e03279608d13087d03b85cb512fa5517ceb79e71a08e137c770a880706821e59e0567ddf9887fa47070333e6dd7a8982f30f138ac7fc08f33a7ba8d6ecc61b93b5c1707f904c8fe2867603b716e2be9e5176858484313b26a7e9399ca41e50e01ac53e3ac9b11cdb9c982f033e010a88d65327fa20aba162aaa4ced10d09642356626b557f20a3b40b7deec20395e90f3e37644ffd0fc1799cb80211ec753f221e9b1fb3c00fd044c7293240ee033a2f2d356e7aff4dae6007f15067b0c00961ea1338d753fb18a4cb917785cf8a03dbd45a79e0370a295d5bed9cf7c0ea6b20e5aafda760fa0bdea360523e0a2dae030cc3915de570d9d1c6496fc337d23052e1a0158a410bcb8c54cd6a31fb9297aa032fd9b109984b2046b4b80899c27f2eaded5bc028a27901b72a700e4f623a7c1903798fa9c8b9c2e7fc38f74a9186e676290b4c5868cf5adf30a32878064b8de93503c6db6c5cb4bcfd2b91e5f8ade2f4711e6e7f44e522378168cce7ac2115bb179b0364481c7e324be5564e7c3d455d8ae2c988a7bae068da60eeb5e55f83f76942a403aa80abb50fccfb569153418bb3c41ab6ce6bb232f431f3e3bf20ba0e43846f2c03d8646fdc65106d1f953b16ca0bc4c4bf61409b03c5cfebe23bd6c4b3acc55d5e0363bfaf920cab266bcb7e4b60301069e7eede3a0433143ef07daa536f078938e503ea593fad1f4367e33324b411b8a60aa081267fdb2d877596591b753c7c02841203e56c12a8a8cd9125b104f872addf05f477e415cb1cbaaab99b61bf276345a3c203d75a90073b369a63b20ad86c74809c0cf08218bc8cfeaec12256c2df97777d7c03d1e0472216f16c8a9c2a905d3f5904e4a6f45bec3ad37d80b8c35011998d1506031d53ace239389d63c99ca3794fc662fd4c4343536d65894d958ae2e55737ba1703f874d98f0dc9aecf5aa7b9409257ae829b2406ca399cad3ef4f47fa7e960e04b0304b1bbbf25a4630e17afea09148aca98c52a8285d81a054b7706b149bc1e868e03e739c972b31f238c1b133a786c3dee6c648d1dbab0d54bb53cc05ce53da30980033d376b97c0cda17fbe9aa9d04ec44bb7218e837cf6653aadf904c1eaf3ada3b0038532bb5a1708950cbf41bb60eaf39a0583199a50342524a775774482ad818448039f41dce965cb34ab6b42494a14a3fd14c77a651808dfd0c47707c39d0c87df62031b0e8d4c3c173127282ad35032c061ec9650d7abd92733ba4b24ec4a55c717e70335af70353c03527f5028e25aff86d5606fd4fe9ffb4b7121db3931b070fc34f0032d5c1c06d3a77c9f77a092608270ee7352b8817de0fbf2884a8afab04d6cb1810318022ca7cbc4665f49321614b66d1694922268983b456791e6594153a3e62a3803d91f00ece755f42bacceb7195a93b6c9bdb32887246f03428a497df0f12f4fb603b8cc8a84eedf7130a1a114897dcbbf723696ec4fccaa8f15aee54c26fde0ab0a031db986a9c62b64e355fc59930772e7a20320816382b424544d30f95354d7ce9b03736d7bfd085a5b16f3787aaa932385820edf9f393160af32ad3803fe80acf36203e41044d9559d507d79dc1a1ed90800634a80db39dfc368c32b90933ee110f4a900581e0221c279c4fc6321effddfc96a34bb8eae7ea4a956aa949399224cd3254d4410213458031ba5d9f8816b64dd57a50309f4efc5a141d683997359b820f8964a3cbdf44585034289538679434878f7c50d23b6f2962905c085cfd86cdd91e37d009c52509c7600581e025dc6645bbd8dff8a22a0058643135a342bd324f9fe03a1338271ddad6a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0279f178458e924b0866fd9a8cfeff1a61d6a2f840b857fbcb4e1c86a0325820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff035880f67f1d2bd1cec1981fac616d7709feaab2c2fe51c5a1e970d8ecf08e541601410c03189541c5eba4a30251ff36d6205b32969b5ce28863c49ca19ded91fb1f5cda86032ba896194eae5b9ca92ee80df0b4efff53609f78960f8a26bbc7962a4c9fc2d90219cd2f0219ffff03eb154237f031665524697bbe8e6ae1889f1ec4271eebcb216f744969c47c502103a562c3a7bbdb83dda27b1b87d720914bd83572e334698c39e31532b94191cfa20381b559bedd625820239f398460a5b5ebc0b8e5352c218a328ba03aa365fbbc4b030eba558b1067a9e55fa489cebedb1bb798659e2c11539993b20c5fa2d5ac810403b9c9cfae71ff2a6aedb871892bf78275ad55b9e9d5d63895d88e8ba29dc5de1f03058903002c576fb8bda82eab16305d1ef9a3736904b96c6e08fcd973ab6228ec03f81657889a61408ca11504da94623e9a904686affd367788c7249c45abc70e2d0219ffff0219ffff0326ffc16608c0b878fce899bd7a9f0bf4f1c1fc50d52238d80c9c5f12d59f659803fe602c66e35f84ea6494b09617941aae98cf649e624c45106b8bc3f6c78cf1f3034b0a805f75ab183204bc8f8c63e709240ddab38960fd720d6a24f47fce8411fe03e0b95eed2aed82612b1065a59644b5eab3ea3eadaacef3c85d448f32b840af680358c20fd130ded32bc77d5727a3113420de97c603c1690fab12c20a1d9555bc1b03c41bdd6596a79508739e9f917ad970217700cb77ecf730417dc75227529a6d500333d065f9c920e63e77c12ec6bedd96598ca5c8882809c1ee8b00144c92c2975b030ed3a512b68e3aaad4c8e3d74baa5a6828bf4620300a450172b442c643acd08703233dcaffa197639c51ccba40ee2aa61fc7f2f335298a7555add299dfadd5df1303239f6cebb2102d9fe98f4ae07320a01bf36987f5fb70be1015f7b373734d389703ef01cd4c0689f5efc4d78f3b56c2b0b7c9a49ae463618a5e3c55661ef09ba1560309627b70a7de2977036dd75fee9761fb2f1167bea741501d28cf0512636c5744038580f1a006163ad63c668548fe3af36b14f43d302b2cbeec70dbaf5b0d1416e503e5f29268dae5e6f0b2119e2bdd92e41d2985595d61026ae0ef8ce5aec4ee6594038586dd92adad44f1d67889a70d8af5c293a2046032bf0384bfed6e2781633cba03ab0bd2227a93254f77d074143a698f53d3379f1d059edcec8209d1be2d817e9900581e029123b8b7cd1e69bc6112c6751ee0842d6c7375e6516f4e7152c008464543018d3b00581e02a5747eef88dc1624919eef770523edbba49f75b3a9d4cb4df3c29c3659410500581e029c0ffeb1bf2d993dfba36d3ca1d6e7f2ccaa96135fca0f0a24bdd0d07e440605a326036bf310742d47a3e448a757ad1c88d32bca03439f6324943fe066f11815dfd3a000581e0315da2fe68f0afe2230fed8b62f2734e10d9536f92c7a73d64d8f68d3605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0357f492430f3be65f4191773e3b96943b5d48da707a58cc6d6e0044ee004501c8e4bd4800581e031898d7fe2056b4be05ac495937d8cbbe409df374667c8e65b4ac19ab004b52b7d2dcc80cd2da5813800219142000581e02ad5e09adf1539eda08396c897548e0bc935431646eefc0a60c4853aeed42a03a00581e02c6b0c2df030d0744de2444f9ec9dd1de2f8fe244f41c9ee1aadc9f53425820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02ab03b8f065754d9c536d122d01947f06e538a19cfe24f3e47c02dd7ff142036900581e02f748d605558636767284e4a092289cfffc9dde5a1eefe449f9d6797175440265d4d100581e0222d5b7e424fc0c1b5aaf3d01c6f4e0820aa398dc964d90d9cdd909d1b04402a5477800581e0258daf651c40e6f083c19135d7f0be4356eab5e5d056ebf9eeaeff73d145820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219bbab03e403c5f08a53d19b0158b701f003a911b412c4979c691d67e0c95a2e8cfc2cae0361a54c9ad66e93036fbb539fb5a79c390163ec1b211264cd29c47fa53d364d3d0383c1116c11acea5a43493165616de317b235727db51188db6ac5b78488cb031b0395a47f0611e11505a553eb000433b74b8d0d9bb6f72a8b9a6f47df3aefef89b20310ffccf265e08ce4ded6be580172281174f5b43e8f7df763e67c5ab42023510003b63a034c355d883614ae3c3ea4f1dfa691c7748a1f9397d0b0f888fe9f4da24303757d4b7f9ef46bd3ccb9cf6376aa162687286306d1534b1392d6fdd03e0e897a03794aec6751000709f290aea83a5ae08ddedbfddfe0d49780c08cd494ed214c89030f0f61aba6545171a08d114c606372de8fe25aef116f968bebc8c4b479b4ca0e0219ffff03ede1e8eff914b13a2d5fd1f15b0dfcb66ba006a5ce045a4e2e89bba456ddb58e039f6d5084ab34aa9da55f9d9083c5988f7372efd9bd9e9364d3b74aa2106b63ed032944335592b161f412c41bce0066c4b74516a304111bd9448150cae5f6969ed703211e4340cac1a5175531e03662e3634feec9b6e9a45c35eee9f9260b297ef72a0346d350357b074d929cf410eac15b469e51f6be45bae42865fa5048becd902a6103d63a4068cecf9006a5abc85a04a5a5bdcafeee8573c6a46f1973f4e7aeed27ed035095d5c1e0c7c256c2788cf4c9e8ab5d0e3663972fda55d83315cc3da64b9f61032af0ac00d5e7cce9f65473171c45306a1a4300ea491b39de9383ee25b26ec52003b48bafbc990c6c53f2834921e2044b8c2bc64b289b242e6694273d7601615e89033da52dd4bc3bf0cf52dbd8fb3d61b804d395b4b76afb7d1e6066416af2c18c08032f8137574f99469995353d98818aea60966041b876d6dc083a0581183bef13fe03f4a05d70f89f75cf5c5b499d4207c987c7433914628803c50314f5397b24026303b0420e53e4df47c9d2644fe164462d9e432fe7582c8428a29eb2741d017f3fe30219ffff03ebc553989012869d4ca7afb857cc5b65d4bcb4666f09435ee5c25e7200923d3103edac92c641627f399a10da683f11952712c01fd2dc2355468f6c23ac8e79caa7037f93ca57efbf16696d231a6e99fb4bc86b36da59147f088b624b7fce5c4aaa7d0303667a199075fb1428eff530923c4d16e8623675177d321929c27caa1120fe7b037aca1fc7d5998c79782a105e3bd6c26a81c79e2797637be4ffd34ada1ab7952c032e38ff804950563a8790b2568bf0ec3e89b0d9b0a94107b00ceeceddb847b3a603d026297acdc1610fb747796ae527915781f31c413bc9e9b7b2bb707ef130e6b50219ffff03351793502d4bc601c77409bc3586c2774177c2ebbf0c96ddc2d1a97eeaee210f030548c5902374cfc5983aabfec7e69c6516e5c8f34410f366dfb7a0dbdc23b1ab0317e09f5aa629273a21f5ebd9419bd77306e94cc7454216c2fefaf833c11b544903d0c5effb50a17d1b9e08114cdf5df93c870c3384f5a616b24edce335c0f4b4a203bdd2886737f475f7b2a98240c891c4eb8bc89db1ec854c4f861aae4622ba924203d1f9f19032eb0a592bd5cb00e6a40a527e958047ad6266de97a00f1e86225cd0036e3acf2813a00de395f23a705277aeca270f1751ebef77d02443a5ac1dae26340381b737d406fe1c476c5f68e5d33998180289ab3daf6a432d8309bdd1eab989e1039af04bfa010f4a00035f741237ece64d2abb2c1d881cb8b46ac7809b4554ea71032731b605c02aa36b6e26622029479405e59e61f0cf3e5d8935e51be936df815d035e116379fb24b419c472abc52853e75eedf6f8fcde0fc2627c71b3b949f89b1c036c4c5e28bd2c7f5d3e44103e1479f0490afe98341ed2c4ad87ced2cd4a40efe303fcff821574eff38a93185e6666dfacfca92a5ee264955674d83eea944988ad27032d2c7629f03c4e3ab405d0f5a2acfae113d94701715391ea5135d9431a93c0a40397cfc945b5c8b9fa2a8d8321191c5b9321a3cde64ba51cc09e6d7bbcb3b087ad0339fda941021d899837f8f754c45a4f7cdd0e4b8402d3941ab39006b4ad3a8cf603b26cacc9aec53bf1dade7b6f8a7010b006b28062b810461835c04ea7a58d84f303072c8244fd986a24bc3d59f1586d57e52eaef9f1d1901833f39af75e591431420325578fdd073703aa4168c7b8f56411bd4ac83767cbea84198adc78af0d8c03a703a8ccb537e89cb4e7f861eb3c961372703b4fa472fc93eb376d798e65e24f5a0d038feb2d9b0b66393177b0e61362225d7f223865df6eadd14d105581d688252a21036d16b5a2c47d016481021518e2588d7dd4d979738d9836feb3474a6d561da5fb0365b0a717238e79e658181b06f1c9138e25b2d6fe957a3269229b50e6dc0664640338ebb96b79f3b330e1c805b2a1ba5333a9d6f8b0ad9010ff641a174f5c45ba3d037f4005a1ee6171af9137460b2113f65bf10b7cff5ffc7c516105bf8b9ca18c720376bb7ffc464fde7f556423ac3743b11eb4a8ec06f80b0ff4e4268460621a05060321840742377ac4e6d3ba12eca89f736323647c285f0c4869f50857625ce788be039f9082cb60f99af6048000737e6c5d1d1cd46064a3dec0165c02402f3c6a5c3203e133f9ba22e3e15d3f4660e349b6331052d499cf39027b881af8bc0761bd8aa503950e9b6163ac0cba9ad5ee385c6c16f27a00fb29eda0dc73c903a6607f82bbe9034e41cf5c5c3acd7269ad6b4f3ea55b4788614a41d2831023a45b322a23d900b303144793ab42fa8c736f6ef9f3eb2a07358ad2ca9f2ee0103cf40d5426a93f831b03dbc6074eb55d697d0f6bda8cd89b7d099358600973c92f8808bb0d133ec301d3036a10c4e43bc5f3c6bbbcdc90c353de30e9be49b735c4ac1fa2b0f13b6c65491503cccebc107445d81a1521da50cb56a3fcef201ee76f6e7e22174c1bdedf410c8a035974ab2aa816b972dbcdcd70d06501c3aa581fa84207ed2b0edea317f34aef6e036dc3d55685e476d2ad2aa45bec8d25424c0e64e44d754d83e2c87414d5bfd04c036baf416df7225b66e0b309cf8a898edd6146d565e47eb77d5eabfd701aeb58ab03a9770c2a8aa74607fa9623a40cbbcd6ab9a9bce8f5600cdd937995fe5e7e80b300581e022e091aa12745143f03eab15c4d9e7f67cf47c733ecf774acbc4c80c3925820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03c495456330dfa3c16bfd34c3b3d8aaa423fa47e9f6e470dbef866cda70440965654000581e032c9a10b66b5f5d3a355f1ff26fe852f531dfae4bbfc5bb2568bb0c44205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219210000581e02aff0b16f016f0cadeb5565cd19455eb9c43ecab4adfaae5af099e3f684410700581e029dda7234de5a6c3341bba8de163d6f6a6392cbbc9c2c2d03d1af9b23d14401312d0000581e02451279a5aa7099025b1f4fb4f2ce03f236f3eca90ab25d74787e5f16dd430186a003ba563c9d7370428951741c760de69240fce345beb9da66a6a7ed6b7a2a9e28e9030a5647d889919be84549bdb52c4e0e2b5013aaf7abe8a4ef97500c83804ce50002198c4b034be11a499de832e12a489b68e8078c9a5d152a0af1d1ad213515901c3ff55b430219ffff0320a0869602d0877e06f5a0fd415481cf3d7540ff92396bf047d8dbabf46faf2f03ac98e850e5f1a4ec8832f88fc53aa13bd71ee7c37377bd8824e342d5ad89304a034887f5687fde1122b5773db8f87ca5b140ea1d924d3fca95450d2d1a24e7058c0219ffff03c0a4a50fa4e564efedee8d059b053139cd73fc3f6db0d2a0dfb227b26a392e4b03416c062a527624ae12f3e71c06fe8b9ff40328d0b75f48d407ec72cbb7dd873c038542476333f73b9e01803e2e37b79e67fa5389d01a2da74e281aee0dde1708010219ffff036c0576edd3e228804093a6c1f93b7dd0c9413e4ad5c0e6f51abcf39439d0789f03e9d554889ed99b00a2a74708d06519562286ce676fce11aebcd10e0a9a256efb03797b9ce1c5242682561c5e0a0432947907976060b3326fbdb73c975c880f4a1c038b6926c66c5346ed8baf23b90c8960bc9e20185d55aec4295dd7a3fb171c122d0395edfb8b9cc9cc19c0e8532c8526aa8f3678fca5cda2b23c608a46064f2c0199036b46a28eed7816ace33d696f4d5a54eed82e185f2e57633895418b929cdfc1630319f70a2bd9715ac1aefba901d5be4219bae0bddcd919619bd8a162a5e6fce4ff031566494cb4a66c3208bdaf6b6777185202275242981994e6931a30e42782fc3303bff343eadaa7c6606a31a710effd095a33291ee990010088c297cb13b886960303ee79a09c591bb537f3782bcc9b0e1ec646254c2508b71185a5976007224fa91d03fbf3ca6b770013dd0621976aa30f5ee5ba7d0dd6a110a514f764d5bb47fcbeb403f8ce5a09bbb1d354b8016d9150676fcf25f05f50f79f2c0505f407c840bf60e903c887de38cf0f8c6b1dbf42204f8ac21b124d826e6e3cc64b67226570b28ad0af03e7de28ff1ec2e3a311d4eae0dc2d8061a777525cf8f9abe4b4173ea7578734a2039dff76cf2861994fac0377919fa941acbedf22353547d87013a7bb36cb6da0d0034aaee9445718978816fe6a4d28f1b92dbc88f1c39f966c33a5009152cd6be1fb03e18c81d5711f9acae3813e974d50479fbd51f59dded12beab63df89b2c776d6503e1335fca9ebe5589c1ee6bfdb1d4910b7203e5ac3477de2cbd50b1932213b58c03fe5cdc9e7b84b809b3681baf03230e5716113acd9e4ac4cf30a4ce96d1d880fb0334be4d0dae95c6cba67322950ff65bea47d066387120412192ddd4e13adf3d0903068dd815b2e3c7f875ea780b3aa10a8ae71cf545922a3bf3f2c57314824b070003fc8e4bdbcaad90122a7baedd7c890941ae42ee664255c142479847375791100200581e03d7137447bdab5aa0cc20af5587222b0fe108adeb2daf437b33979319d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03c4db4167d00a4c3def8612c322112f54328f580ec2b085c245a89499c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219800203454308e6c6449a0120432b43e458aee42c46e9c06195ead2e94fcd34a6a45dde00581e02567b841351990429f7579e63716d7a936a51244e54161100c419654c95495562504d33a46a65950219c584032465d96ac5b1a92d74d18d582a48636177bbe5f525c43330443c94a72fb45b4303f196b0c03a247a669a5f476d96ccd379cf15519b904e70ec7ff0199c025283d903aab54be6c7734b3becfd11a9640a34144480b12ae78366150439b391d1977b270334273ea4d81bd4e1ba280c8843ce1c765190667aec5c4af93ed7b9a172be698903a890c2810121d84aadb5562508d51faf8da0f574bfc9fff3701ae948ac5d770403e797ef71874e43cef2987f1d40aea3a4f964b0de9acec59d405b8489481d513003e378ec1d24e1cabb1b3bcc7fe27fb48a01cbd7ba0fdb1019bed61333d0a060f4037aaede9ab1d608e60833dd15885a12e5e1f9f9d74b244f882245d6f09bb2637a039a747ab57ab48f7465ffed3e8673c143680cb63e46544f548fda6028dbfbc5a303d3a32c5e368f69fca7340fce80f9764da581d0688d5763cf09f27d245f0ce21603f0a10b82edabe9d0d1ac51c7c9bbd03ef08ad0664cb3dcda937d27ab17ed4888037c647d6116b0cdbfe5bda01f63c73fc41864b041726f10107723c0f5e4a800a30219ffff03a387d3a4c211304c96f8574e59284b84fefd75e9820c14810563d99e04dc10a6035255ca715791d1f13e2dfe2d936858ddeef5b293d0cde6518f1b3022f44cc6c203e9e98d6bff5ad5b9b7de5550b994710e9ba2667941601805ed826769397a039103ad54b7ce288f5ff6702adac0b7d36f6dc0bd934d7c3814fbe484d1bb0f4f340703111f7cef7605d02824b49bffe74e1666f500ebb34544e0b60882ed96b11269a90315638f2590d10d0696bd942cf72d075cd34a79c8d2f308561999ba11373e6bd2033ed924b7b094d1b47a67dce312bf01d29413136045b04151104a89f7c1a0c9c00219ffff03e563701dad4fa06bc38b6e1ac72cde44c62ffb6ce5fe4fc617447f164e803c1c03e00e22edaf8adc7e7193622f0a2d1fb7d9249c96a28ec6160b6bb1f8dca85491031282332c48b96608b27c765a4c2217812f39d83575db95fa76cc45d6cf4c6eef03415bb7c40d2eac69cf71bf5a6fed25820acbd14d21b2103b775497b3e2d8c501031c68914a4ef99c45495d93cc2ef508d58cd32de096dbbbce0eee326b725071d60318a3f72c00fa0fad47f2317202c8fe4770f52ba44a7883620c29fe92367a4f5d03d16b7a2ec6de57017f36b81a91cddf6a1e9ae46165691f56f988986eaecd01ff0346bb42bab4dba8bbf56d634ebb23ee44380fa32e159a6d30ad590e538b6939f20219ffff034f976ba21ac22f1f8125e085192e14b31cd68add8e9365f515f8b4f31213d15e03bfc1efacc16b4cce070058a7a20d4683924cfcd50941be5bf196f99ec4738de303aac4f6358128e22e13b28a42ac8cec6948a47ddd47b99bc418a45842f716467c03708c4bc98297dca10302644c9206096b661afd9be1fb5093a425838d3b9b798903af942f08b3b0d45e1756a3075d8435c41a74c6e62337e7681cc72efce3f75c6703ddefacc16eb957a76f314363272d50e6a77add8b1405f2f2f3950077f01ca9b5039f0928f2c35e3f5c2eedb9c56036e3b28956984fe1e79d92591666f09312689203c42257a05f008eb54ca83ebdbc02f16345b8aad4ee8c674559ac4f49c3d837f103ad6260c8a58aea55842f00cd9c21d9fe56207c574a8d2e2c9dfd59c8ad3f0c8403abdc12f06a93c21550148bf428bed896437a6be0df39f88d09797f227991674603a8b38cf8633f21a2e77c1659852d8cf225e3b8733e5eab9c4d8e947a510d52a70362e3264560cdd0209ae906d2382adcf0a7f061ceddc620a65b50dd4ddc3b3fef031181efc30d5e981a369bb3ac198553de54633b0b7147d74d052fb6b510015062032d4e0cc1fc90ef06cced12ad95d76869c2feaa58e2415c2efcef5a6ad194518d0300ba8d94c9b1a49b25eaa9e916fd06df7501ba7aeee3e4ed44646c435e5212330394aebf8b1c18769baf1bd1b6e0e59180130b1280e8dca04a3d012ac31574140503a3312ae24368ad32ba0fd0d0b914ac629249a550c49a139155b0f088dd4f2e8e03984b146abcf5a51354940f293e4f4bbd80bb92c5bec5def402a29a61f3aab64c03ad0cd2baeb49f68c9890265fe4a42701df511769fac69a01dfe3dd3b6253e06603f95b3dd51d3aa68760ef9d6633380deec058c5b0c2c2792528bf73fa165b2d7803cb764458d937662dd6f069e5b4fcf108e7a6ba97f4ae71e632a1eca69846aa06038b1c20a1d78357d6ea01a961e4bb50f20c2fda4d6ff6a0986dec42b425240e2a03f4e4f91cb1d221d7507e0392a006d7de0d2cafdb1e205527d8418fbb8571854603d0661461482f093b61933c9cec31501d492abb707922f58e987455d733cefb88037b85b765803ab009edd730e1e4085f1a8ea1b0634c3d3f78226d646bd51f4c4e03bbfbb7d19c633c7121f52ed028ca708674d29dc8b6a4bf20259d5f7d157227d803b08c024a582f3a2ec5cb79ecdece83d2cd46f6fc66415bb394f47b4870dce0bc03958d0aca13e307a86e63940e29104c27af183e0c7a8ea3d461a4e2a92f9ce0a50322b9d68ec893e46a41c316bde1406b19b1b15e51f5c35f3dfbbaeff3e302661e00581e022771e84716f4d3332c6efc137d9fa979719e70e664fe27935ce455381547038d7d8a1803b000581e0267cf70b783f01af559be446bb18f69b9469dbbec1647d92c0229be2841434c725000581e0240136e67576449dfca3590dac08ce1264d0f094237272d49f48ebce751465af3107972ec036634703c405b8015855bb7bea0084457878c1b806f1db3997ed8889a82f85c9400581e0372bb378b990733ebf795b262429534ca16e6859101436d9cd13249b7405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03e4038824e8ce5ddaf0113254645e60a6b9d292cadf4d894837679803704408a08b4800581e039548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563054c6cde7c39eb2f0f0095f41570af89efc2c1ea8280219280400581e0287cd34ed43f476f40ac5bb2778e4456f4fed830761aa182cc3eb27f1da410100581e02db4aba65e648cc05dcb2b9ee410c79b5fb0ffdfa38b5479f0607a9395858200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219b2c5033a37bb0f39fe9df08358a2aa1f38fda7309ad628c7551bbc657d6f634eb7adc10219ffff032b82e3f135e402cb12e145e0512a7e8dc646c4d806eee7964a63967e7e6dd86503051050063ad9576f9f67492def029e7f1132e66d3df649c4c1b0d4d6b764ca690219ffff03d4cd8a4624fb18bbf00ac6db29e9a36532525d828c93ea2ee85fa15c454691b1034bd373255a510c289c703dc1e77fa354aaae6282dd0ff0ae417be20fcb39da390362852139fe7793d8249a56f1f0fe2ce1feed605c19f178f49346303e09f16b5f03f9f3de725eb312191b39a75dc0d8ea249a7a4048a8abedbd9cce206a5612dca1035a11a7e14bec39ab202e5edf5b5ee72131b83ade0c2e7a956f001cc44275c2cd0336d3d13c4f3333fd3a45e14e4ff6b7b727ed6bbb58084baeaa497f9b02c9becb03f557183b99bdb61e6258f4e6bf9e6b93d3ce80f4d359d32fe182440d07a1747d03498870a9b149283a86b702200bbf5aa5f65f56616866c899aeded758bbf874a803774b163217de1fabb7b83536efb61ccc03a5b173f10ec2e32c5d70438dac8df3030b0eb7836b88b005380983844d145e08043b5b59d70e73bec47891d4ed58b57f0350bc34b50e4f4ae055cda01611bde34d2147d78149a0b7742d66e19e8945d1da03ce57e4a9d3b647d836861b7f0a436753f0e3d8b549ddb29c0b2ffd135f64f7b403b3c5f8dc8cd53d549e08a03e84c28c13dcc3c9e01fbad4b7810d89f75f8eb970030bbd2d3083f714db43347810c84239c453967d338fbb03ffbf438d6fd9b1fd2b03287b053c44f163673ee5f45e276426a5f679e7539208ae18bbe690b67a83928c0219ffff030faf27245eecb5ef6ca9b1674de19bb077246dd9cdf8c41b4b866447283f802703a3686629b1287d03a6c69a6110591b4395e5aff771905e8c030b562057f3b5e303db5fc47ee42634662d9a9d6be6a68e77183a80d860849a6d24262201bf4268d203fb4f3cbde81fff19dad1620b1e06dbb3663e0ae6f668f3a338d1cc6392020bd803a77bfbae0fa8af7a59c398dd643fc39c2bb17560c22211ca8f23e5bcacd62f8c03dde6264db0d0dd014905e17573de39f6302f8ebac82e64d4a486d81ace332c650219ffff037186d6fb59f00f0d99823f69465c158e3ddc83ec5cfd4c7e1bf293c1337b066e03986d32268e7e9767cd1302986aacc41b0f8eeff9481785c08a0370271f74677603026475fc8b3117cc860176625d4fe4153032772beddebf2b899d48b6282d236503313c5b403ea0ab2f6f8030dafec4ea9743c6e933fe50039d3142ed768e06edc0034b0d9fecf50b3b667ba8c44d9a3cfdc792187197d3a9f8db9fb4894a9c56ee71032214713c48dbcd0e2eea56b8c1d090a41b3720adb07f69bfdd60e01e5d1b01320326d9db54e009f9f83f74cb7a85116d40b186df2e286e0525ba27060ccb4e3e1b03539489024f83a93754112571204527fb521c476e352d7816dd359c048f9d56fb038cecba79aa7de0ef105985478a9bb3031feeb2d075c27673d55731439d5063c503224852cf6c9ce8544602368ef380519be623ceda93e7306ff8352f1d42c94172036ee34ab94afc664db020484a53c26b1c299a2f9a2bd11e4dc20658fd762e8dbf0388ed5bbd244c1c805076124dc8199463e8d65b0ca4f8e986f239d6d06dd9f00103103dcaf64023468940e782f280083ed32f266a5417f0aacfd70107ab8db6468403945cc0ab98f2e071f98a6cda36dff782f2e9ea5aad05ac16d5e634dc24976b720323a357957192a5093b953a794b16dccb7127d7d20ff06eb0c4cf122d92c7a1cb033cf56f57a9e99c4fd72b35f5b9ea743308e5f2e74b13452b2f0fec3412c6788a037f8f065ad42cdbd80d1121b8d9d3a066b4d3d715a91c172ea09128772611126b03484bd238705a7e60f3e566388d7115601bf19dfacc6a0d9cea9143784872a142034a3ebd00737732ea26a38fa905ebf991b1327674d53f50dc5cde8b0d37de2ef603b74595130dbad4d949aa4d87a3735e10260e553c7e8f01c71a880dbdaa48e6660357cb697846016272513557f5eb067c44aa3df9122c43c8dde16c6affc302d1ab0308bd9e47abc50a02f296f1d98cde49bdd4e4c00baf6b6460a67596f4a594cefd033c4fc27940e7bdd1d34de4579feefc8424fb279bd2f752a19c4dd4309c3ff6470337f46ceed921f9b0cff72f6643d949b2a27c7bdcefcda971f0f0484b045301cb0387c9e9d524771dabd8f9fecc9286c488dfdc78a1a37a807a109a743e762ad92803f3a9773469496a8739d1c4c9effd0fe02712442baf8171e54fe321669bd5172703d1fe3b85f1a1919c7df875630695335dd93a15b4daa8d7d4364f278f81c7eb3f033ba7bee95e623a520bfe40705db88b98204acc98dab4e2f6a96ae24571c528ba037e1d4d8352c7fe7a3dae0fbec7273758233936d0e52343fc3ccb48eae1b701a80335f7736502ea1a196ef726b0a61c17bfe6c61c07aace2f5f88295e5000a3a95003487bacaab2dbeb5798c6f5cc92a6c63dcfab82d1689bc1e5cc7ce63c0dcab683034cd7efcc8daec81ee931799060ca2cb57cccf5c4cdbf5ead8add87a09a2c864e03af5b3ab374b82c11a1308e3d5b16bce20ecd6539ec715b0a6f12adf52fecd26400581e02d26a7860a03a7e5aacf19fc53659869769cb0a26741f9577d60fbb960742558200581e02dda6227f1d092d98e3717cccd1d8b5b1c644bdf3ac275e36760b5b24ad4302cd55034a5bb988f87891cc64efeded679dd880085714918d7f6adb9563af45ada265be00581e02cf24e2c5fc467e173f64fa03a58a7b42ebbdfed4bb2c9acb4a2d9f08a94402625a0000581e02d4e6e0e587dba80c04541da6ec968d8be274eac3505d7762324c26a2955820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0225fa5b9d60d91860c9e4a70692b7f82e91f8112949f8302386566d581b4492dd98500219283c0219ffff0353026edeeed1df48980b78dc520b8a4a08705e1048113652103ef3187e84147f039559e1f03389e654bc0388791a0c70f25656f50642741853cdeec2d7ab7aed59030e7cc9f14a20f854803bb2ff5b518ad4fb1e62919d51684a91bfbcd2b17873ae03a3d9ec18c2ed8a683b134ffa82c03cf8fdbccef295a2f3d88fb3d6d5281d31d40380acbec3817c7c82f73cdd828772775e96d8518699f6fb6dfcf8211825e8aea303e57d2a176ea95a6c98d8124f501eb35d3c37088f05fcb4f88d81ade79de3fc0303ed6c3f15413ffefa68153c1cb632bbe5af7426010698671a2772ca1bbc6b15fd038c9d3a553e72efcfedc254bc48f554e478a0e4fe64d19cee4df469aa6637ded603b8521dfaeebdd8cb76539158057e05bb09efa4cc8fe3f9ab4994329d7cfc55f70360273d39c6df911ec57f48e2d69083d69871d8d0da76c5323cf230d6db3ec6bf0219ffff032235bbbfd1e2c44a425ae85074c0daad6a74df7a3af33e742fb60518030f21af03d4fd3ceedbc425eb35f5c78243befbaf801cea93d621fd36839cd4997c54543203c244614572fa806a1db87fd946473f46f8f00b771e000b2e31b12c3c1475049e0219ffff0370443bd867926b87b325ae89980a7de3300780db6ae6530335e1912c033364e003034ca8679af76598f687280f1709f80434409728f78c3239de836e0ace6381be03e5baddb823976760a78dd48c8a072aed6309394a3899b8f5e359b25d19254e14034943edfbef98e0dec35a3e6cb3a6e13aa2bf95eb971392745e29a7910bd077ed0306f7f92672cc9aecf686a5e24d547a183053ca6733d6cd3e6ad3abdebd17f2d6039e4616cfec1d237ac1f288ae74a861b1ed22d08303d0ad07fe119d0ef60833f10316d68ae801287cefc1fa10a101833fe6a875c5950b2aa97f24fbc32b48251c3b030b5a9e5871b0ed674bee4900cbe30ba6cc759501ecd33a6e82203d749a47290703860aca31c837d98b7ab01df073feea9f0ea28a76f280194904e0824e053e5b3b03618d19a775e3f170bb60fc379dba09c1c70f0e78e6ee552e33659392193ce8cf0342968f49b8878aef15da0a2125a396ad8927927770d9afebb8755b18fe2add78037ae06e4c92bf4df9062d5a0a702b71e7eb9d7347689dcf10beda8ddb7780c137031323881f45b0fa3a3825f34fd2b03612e9ecac88bee740be94c94999b4eeedce03d817f0659e205870416cc4adb96ca63d446785216bac936cfdf6b2ec186dc0aa030994be173fec1fc251a262a9d8cecbdc56e62b01030427dd28570f515ea8dbc003483d098b8ebff5ef890b4a495c14581020cb5d023d34afcf022ae255a5aaa80c03a78e28ad49aee9a6fc53812fb671237f75b9fe6865ab857e9b3debb4a57bad710398912d7d2d50805fd20e310d15a25ca1d7176942fb9a069960876bc1d124c6c603ee9f2716b48cb209ae728e1f237d96a93bd8000d5534ff620e2a82bd549bd2ab03d5ece70f2b47cdeafe3caece24742d6389397eaefa62fc446d3575b78e1ceb2a03f99e73bff11cacb9eab75614bca56617b89f0f89045e63aded9c6229c54ae71c033f45fce475dff906722320f5305ca29decc25712a61c37c6bfdf8962bf199c330309787d33f24a70145a7156f9f0b173db57199c3a805e00f230caab35fa39e5a1031960b0f70198742f9ab1b2da7ba54a430c8efacd5fd95c4ad5128d58dcc382b20308c4550aed25daef2ff69543b2ec7b5f88a6163b9b227a0aa31a77dd876f27790383918779559237ca5c7f5e2f2a9b98b57a9d858846d1b6e4f737df3984c891cb03fc98b69fe89fcaee46a108fdc394ebd989dd335e4fb7f1cec7e883491d9862f803919c3b1a545d32eb604bdee0db6d5621051a46bfd5019765a3e6db3177014aa803d89bd784e91733022497ee62e99223c4cd27d0baec36a2bae1e48b93038bbf6303875172013bbefae010c8d5e5899dc05dceb3d88ca4bcfc1a0de4f00bf98f9874031ba5dfc436dc2b36883c0034ccfbe60cfd1696f4ac7f3e42649e499a1bc692c203e9fd947a495faa5c73989a3c4163ab12892ac740af25311abdbc37bf8795c356032f04ab92c7440d83533744d449b5fd7ef8f74a8560a00c73911bf0cd2778d64f03acdf57607ffc3b526e5cd3962ca68cb2e44297f6ae25f87d56d873d4ac0dba92035fb3b00c93c535d91416dbc5fec97f96020d08d98e1c2e8a8309e09e37c42211033bbc159d3f1a7d423dc939d24fd128c032d6c77c5ba46d53b4ef104eaa71116c03c0c64a49f6a34a6058135cfbeaab2eadc66cc236b3c7b8d0adf235281e6c60ce03dfea457baf6ad00d2da80945707fbe94bfbb677689df5ea012f85944d1cf72e70311d11947c272064c8658ef39f259306bd83537c40bf271b1f9b12fa9aca4feea039be4549ecd8802b2b6b357646bcdac4bcabc6f7a996f7dea204e58b1b5b541cd033d9d468be63f1e6e239a03f1755dda1bcec428b942f3dee4050d93e751e4b92900581e02d089ef97430691b34f8c403f72e60b72488a23d283319fb58adfa12fa65820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e023b6c86f0d91ff52e872d9ddf48e4a4767828cb12be981193e131ac599f4404dbbb0800581e0265560990fae83c5cdfacda7e21580aef53d3f6d4c50c853eef545f09624305e84400581e022f49648c037155c881a50ca349dcceeb2b49b255f55e332657f451893a4352ba4700581e02ebe976c49dcaa41da48a0dc82d45b3ad528917048d8f02fd18c9e4d7065820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02fd777570ad62c8b21f06996c0a33a467085905789e00ad7bada02a03c85820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021989510219ffff034fab91dad819e1b7342429561a510af33bbd0549166a76ed8b01fdce354837ad0311dbc6a414f9153523543be6d92e5ab904e98b9f8a28e1c687395f8e32c2fe10030b54a59d78ec5d6653427e78600fac8dfbb8e1a5a728ae336f83ece3804292cf0373633cebe118ab0ff36225d8b4b4530b575f8205d088f71742a18bfaf2ac45db0219ffff03235b77a367e869a4a2123b43e6657e688e247665c7793bf852fe3c239e2d2fb00219ffff03231151a2c0b3a64f6b6931894f182e699fd00b17e2085aaa90542005392c4016038248f0380019e8128db8faf8c69bdf8096bfe3e4bede0dbc19bdc98c327f35cf03a5c4e392b7ac4cf3f2263a68e3274c47ae0bb86ae132580ee58e9b3245cb09d403b674c34eadcc50a135c8d0ac544f3cddc56862640714232c85d68374519ba16d036425b675fbb57fd44bbd61ce3a990f4c920193bfdd634cf6195ae0fb911309770369f449b2bb28b7e43e2085f8ff367e6eed6bfb9ca7bc218e5d2e58c3ac52e72203a32c9ceb2045de27d63a8d8ec80e05a1b25c81647fc17ca7ee0f8941b673e0f9033e7e42b3ce39b6adbe6655fffe83619086c334f1a2f2e372b5b9b3380ae23806037547fb86b39a510bd328e10fbd1648938087da8ef5785e30ff48e7a7f2d9110e03a33c651eae0f9579c72bb4bd22570f51a2d13e0f7c854162dbb84e0edb3026bb031c75c3f4fbeab8bb408d16272c627f4ac3545ac23804e87fe52fcb6b7e8a151b03ac9409d73767bf746d2d4e120ff18788b1b958b9c9130f6c9c4d33f4906504760379bc5d996bad6b1da402fed105f432157d280b6c158d543b372351f0b1bc2e5c03e046685d341b111357ca56ce53818d5f2a7962226526572fc77f885bd4551231035b42609227349d91430e6097fc3ccbee328ec2ff67f1aebdda63e3e39a60289f0334472603ca01d4bd95514e250c74012950ead9d417a5700456de29849f15232503313908a31cb1d20035622519ed20f3001f41819a843a41bb47ccaeb825508f38030a381e54bd66f34dda441dd7557b0a2573a198b53a7e73a55340274fb31a73e5034bd227067312e0adc91a469f4e4b6dadb1eb2b5f24b797b291142c9e502dd4d203262dd41ca8c082998cc7c2e03f58ca1b3f72280c484f3558075975d356656c9403459c211ba5081735b77365bca2eff92b6010552dcaf647ab7a90b2f2d3de3e5f03687e06b6b001cda6a45c08c5af8615b09c3a1115b89f80e719f073a7aee0ed4f03158a3e7bd5a72f97844a11030d2eb39b930ab189b54d130bc4f52d1e648e161100581e02c64180c2c732c3c19501814840e14ff0405d8fcba1bcc2ce6b01432d685820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff032108c417d7c899e986612303e139604dfb0a20191d3106a829eb46b3944c1e2a03a0d55f383df6eddddf0caab0aebab7a60bdb6be616796e21fab2f5e3f050b47401410f00581e025b401fd4564a374248e87a5a33e8e1099da4cced6983397aeca0d982254d0c9f2c9cd04674ede9c8ca6c0000581e03983d454f2cc85510052cd937b9444af962bb00b942e85655ee53001060452bf25f9a3000581e03e2d304abddff8bca0acad4879a90ff5a5e7f5fa42fb0613ff7f7a199b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020900581e022956677f9679dd6c7fd1a9695df18c64131f10cb9ebc5d3787336ee229465af3105df5d000581e02c2dbe044f122aba3e922de8e671e9f139e682f522f141d729bd0f53d52440a21fe8000581e020b2e206e37559cbf1587d5615a99509e7d8cc481327f3ab0de722b15d0458290694bf9030d2c53a31fcaf3ccc855f4f6801573a9756fe9dffe26c1bf3b0c79ac669f7e720322e6500283c55313b864af37cc1aeaea31ead02ab04defc465f0fd41600f845b02193e5f03587b118a37a80ea16536d6ad2f3e3929812b8130b4e7f7725c633a9a6fc4176303c358e4e8751b88d72585e3c2624f378bf3c8d207de48296442adcabd8f7b2562039a258ae5f5d01bf6ae5df6cfc5b58b4de027ca9d3fe26e5e33d7406567aa1f6403e8a413cc0755fe446ae23bda5b4b6e49edee5c4da8d25e4b8f8bc9bc899f61d803e9803fc8f42d0f7c92a7d3655d4f32af15fe7f5b0f6395ae456abcddea474fa203cdc0087ec3589d70ca0cbbc45ab6020a71baef81fdefd6033a18765051e1847d032b0f5b75c6b00f6186b85ce8693de9b5e543146849b2b2d2711f4f1602a85b940219ffff03dd3f3edad390ed72922adfdabd679891995e55c7f38e188675d04ebe5a80743b0219ffff0307691c63ab882be43a817128cb6eb0c1f2274bab576a5a802d219ba842d00d7503b810eeedec49eca7ebd3b4d5232f0984eea05903015f568b8cad50c7895dadfb0368b9f37f54c6253eaa887c37d1d96f186a0a24cc80427a3589351a86a26dc7ff03a26a7b5d42f59431e3d00cb709ffdbb2ee03af7e5163709fcad69ce7f6f7d1c50321d8d97535610578155eacd9b016d7ebf08ed542c848823aa0fbbb058b58f559038f07a8fc4a2b934ea523ebddae2a1ad6c427a717ef4b4ad9c0cdcf3464f0341d03699028a7f7fc1e427aface3894b79d9070e24345b54d5cb69d701fa71b3f3feb031199118b796c50073426f9e4dc27c29fbedc11adf8e07b2bcc12f37bb447f51b0355df0a86d94fb06fbdd652de1a65127098c42bec1f3b557aafe28e768803404303fc7dfa89dbcfb5aae94341c4f376a96708dba677293f3c62b8eefad7eb19991803c255ee285d23f0fb35a278be6363b3759c50456185c5058c4c6b94ab90a8efde0364d51d2e57f61c75f425c835424e29c207a0e1d2d597fc4e70f6a3baaf2aebb303d8ab36516c1d9cd72c287901f0ceb1fc85ebb81e80bfe83c75e540777570004703b98a87c7dcc1d1bba93d41f2fa2d1029d3c13705f869035c03b954defb28a546035143b084264609c087f4ac93afa75932fb158bf8ad63dccbd7bd262f980b243c0219ffff03d0f311c2785fa8481b07147051d60d9569fa543cd6e545bb4ee2bd609accb1da03f9df725fd4280d9576d67f80050deb51d59a3c03b9446ce15fd86ab2b3a43c72031eaee26fb0809485ea5a030143eeadc5ac57d8c2e0026ea248f03316da9362b203faf8e3b2e627ea1f8f66c924ba8da57c4da674dc061596bc76eced081e9da9d1035e84d735722e5d1328f543720b07ecea8a89cc322e6926e7a69b44b92ccf392b03e9681263a717c841b47a7c2441c8225c7697a5b4c0a5faeb9e8b58912c35209d0322a86a7c6883fcb4d83b3b7088690e75aada47d2f75ad6e92e449f8a748ff3d50382ac1e90813d9e4ca4c4c00ae063679cd4f24273f83a46c91fee4fab48e1a1e803e4602951e2ffd8db0723f94e6710990c90ecf63ee28074b3efdc05c069ae95a80309397ae0c2190aa78697a33325691d8891d3a6f4817c47175bd68764504ad20e036457bc1ab86e433778b98d09adb5938aa9a673cb9b2826439b4387a7c965c09f035a6f1d23b618c7ff3c869794ed31877949f27b592c187ce21969b4b4f30c8f5e03443aba9a89fd7df46c3d073be728f8c745663997c5f638e722750da885821aa5030cea32f9136092d1e4503a87c3bd49b53e730cb9223ebd448121e7ae3be35bf50320b12e954a3766a65c07542075d042b6c290de4b050f795dd8fc0b8548f157c6039cc290a8a9b5139afc0fac9623bc40d4461f2fa3d7dee991559ef57e99ddc10003807f7319e64762ef679f0230cf8b4cff2338c975963a374d419039b8a0a270d003dbc14e5b87b36c518558e9046836fc4d0c2160ad1c1bfa137a67aeeb2c6b5de300581e02c30196c44ea617cd0971079b1b7f5d95657f6c4c81eeb64a3c369e915f5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0234cf4a037431f7aaad4545e61c990b1f327b2319acd6e8a78e7ab7752e45bb1024c07b00581e0217154c5c07b0276d2ac50fa4b2f4744b2d22cb1d100466b77e6de3468b495562504d333192249300581e02d7178363422c62a4b83e4f46c7446cb7cdfcbd9db2fef801860f506737465af1aacd804c00581e024897202b34c665a822e06e721b396dd70df222e1a3346610140fe584b1430bc7a0021982a203575cce37eeda938cf94c95ad1cc120f20b8c895a081c3bc746b143a2d0f8f833038ede1ebf97a04f00aecea1a7b2da23cc2bdd7e32bb99dd9260459858d5d158d703532432574edcf7c15c76d2531b93bb580a397782c82253588dfe04e239ee27040304c880b2896be829d9f7f10983e38921c0ce8d873c1960b09279aba406003f1503c61188b85e13b65aca642d9e8353f9a1b5c2ce1bb75258d41785631c442dc7c403cb7155916c37cd6a32817e2c57ff69f94291db874a02249cd6e7ed575459475a03a1a99c4458ee53360106a33df014d9c84cbb0cb2d6b33745e266ec627566163b03ecff5aa8fffb818180347de59328ea87067616a7b27688e8a9e9aa6ff66dcd6903379486b908415fae2cacc0f717e5bf34ce7d795653953bdab2011bbdc4a6b82503d4a39e1b0ff87c36b0d79fbcd17273b68de290919113cb2745addbc661393d070219ffff03f7d71bf67f1010ceaf519515147d067167081853ed1b399a4067bb1d7d7292b703f6a18dd8d04d2e431ca41dc2e2a5771700a892cf464608a6e236f0b86f48da95037dee580c8aee2a3c69f7b356aa7fc29289c3035b9212b7e445218939c840505303110909108d0d8107719d2b3e14c7a5316160dc21afddb686373a8efaa5c39d4f0370747f0af2d1013e85f2cbec7451d4cd0464f61be203327e43f18ae3f57ce7d8030c24b13b8ab78225252d80f0bb2bb140d9e5f1073ffe1445aecea6fcbe856d980326bdf7d0bf14a8e654e27f0f60dc4ff37b2f6ad3f3f2d157049f543d2546eff903b0220c537540895579795ac14fe1d604f3196af84f722fa6b9fb37415688635603801a7d44426b7f09c2c1b42937958a46b37c5946e08623e3fa61f69ab7288e5303d97deeeee11c9a4e8ee84172985200d896830c1d812af9cd66316d114fbd32380322a306d622b316cfd5f06ee6b1e452d015d6bd82005c7eceda81764612a654d10219ffff03aa4202122c6af8865787859a5330cf589107ef4913566951ef6a609cd49ee3e6035695c07c080fc8a527710b177b273c209b47883fd2452b925a5e2cce90b0e0e603398f197b40718561018fdd3681eacd4a61dde9f5620c85aa8f0551ed3c0451b40364fe407cff2788060e40ed1aa31588d08002ec7975af6d062cee15151198a530037b3700c9f4ff856197996192fa290a0e9ee419ee9ab18f8a1c8ad46a2bed0d0503f496e86ee4f4f78046e51fbfb7696eb38fb78bc80d65f3d40ed9809a76dcbab003ef671ca8e7c050b53af47483142bf1744cb6dfcacaa044a55597ed03c399d755037f26acfbd1f1c3b1e0e0d4c54c01094156a4580de1c24c8885ca8107ac72919e03be421e05728019ec6eb31608fcc883be56e25a895434799a3a041eca2c4981270219ffff03370295a15ade2874f4c07e6b8a8badfc955577dd86864a25ca9216a5719952190370016cccf3726028a80d2f3a0372bee3317b784db4089e0920baaa20fbc513d503d195ef84734286478b421dfbc6583ddc7ef72d1b1a5a38d46de9456cfcae0d18039dec3970a39df98cf435a6c4b645c248719557360d69d48ae4271996a10e342303c1b30fb16a790c019bd0de1438184151b3c32f772940bb25a23fd871d5a4ca8d03da6aae22e8d02ca9627c16ef92026914ce23cc9875c172ac497b5565db34e95603a71d5534ab79d002e917b820e66df68ff5157efe8405ab16529daef222bb4b4103d3d201980cad4c439cbb8dee371c6cf5b59e939afe4306aa26099e0419aac70c03443673fa57ee7f21617b2f5b80c6f5ca851621e02b0939c502dd62ef1097d0d303dbe08f2b3da7f4f1c9df6eae5fb46cf49a498935dfd3644b4968d6301db610bd03eb5245db9e42495b7d355103cd61c994c99111f555da901a68b8b2e6733c7a46035745be410440c977f2651e2cb840ffbd1cd5c3c5d5fa6fd86398144b45da006e03184fd7269679ed9663cad7443ffef2ee6b23ba8d25fab8ce4295b1c7f108271503d14e6e8443769ffe721358129b95a70d73f48cf18e04a5fac3af50a0618abe470353ec50acb47e36d767492ffb07f869405ab8d524768db2f6da467deceeacc29b03912628e719e7856126bdb275d6f954dd9e933ac4c5812210e24650a93e7d319003fc0109c5462b4a661d71ba587a3741119314e5308f311dd020cc25867b6a98ba035d429b5979532a87ce643755d020d5f79cd43aeb19bab8782c9a60de862285e903f677b72e968e06b4475f4eb50728de35e295369bfd4f106aeb4a457b6babe51e03a1956f76c03f07eafcee1ce784a140dd2230a185b825657a8984c0682855a26f00581e026561cc8132ea7e4b64a0ef51eb300465604a7dd2e9cc1407bd8684d3b1434074c700581e02be0fb64703e0c47320230e7d562da484e0f21adec8d7f7ad3cca3bf49b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0225cbe0f9b6217c5a56808a48f6d1f5b425197e29c847b919f4320e6c3e410900581e02e7a9803960466530baf186876a4e46e7e0c45b36dbe1250c7e7308c10a4401fcaf790335fbf054d325f80f26e696a97bb6ab8670fcc5ffc5893ffe80a1db7a2b9fbd6800581e02080696b45a677ba0d677137dcaf808fba86eecf34953c4c91b2f17c40d431db45c00581e02fab34313706bf2bdc5394dda5c6dd95aac4b67b012d9c0f654dc4980375820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ac59039ba1f96eb152c2ec1bc1ceceecdf07fa5781bd70431a2d1390e02352bf66b628038d237b04cbe2c3b0b8cb42f42423e605368df819224f8ec411126afde979cb7e0305f58fa7a1304fcc8762d2f63ce84078c9f936927bfeba7afd55577cd82f9281036036bd742538b478b7a71eac36300d1f2acfcb4a66a828c6cbfab765e81128fb034ced7e907cf8af623ed5e74e4b12fb761f3e9b2f9841ad7f8f3dffe115df3af503ca7e120a545ea77eddc0b43753bd484e88ba7a29892696c4839ba8708414fab303e1c00c9cde22f20e12ca5fe4c3216cbaeae95cc75cada1ac5eeb503ddd8f720703e3f01367d79125abe13ee9efa689f5c59cb2397ee185381c16487640ea5c1027034785c768b928e8eb7185e74b9efcd2f6044b5b8a5de01b0310e995b4600db5a60219ffff032ef5afc60ad5fef9b6db001134b43e702b1fc6b1c637c2936a451196e54b126c0373d0ba44abff4bf9ec5d65844be8e375c2c977d5cfb3ddf14d5a2d7c69f6d43703e4bbbdabd5a80dde432ca0acbf3f899fc4e3b39b02f44cd0d92fa6e217e501c0039333fc79d74b9a472907d53375e724f4934e34db96b489606368efde32c6bc220219ffff030e69cadbe57ee070c710032ac29bdcf5d717b3e5cc777bc16f3ce4b1d211acdb0388d632977352e62f9428b69a9708dbdd1745eef26c8bfa8f9fa6c0722a497fe703e4bee60970db22f9b9c6177f90e29010b4c2198de9a4e882d57520ff4bf2896903adcc3d1d60c8feac725692c35803730c5ab1c3dd0098309853b7a285dd4aaade039f4d016d6fcfb1930611afb4b2ac20b21a3b1804a5bc36d440c274de2be133a903985a666bab5532753c6f46028bfa13fc00c00b68aaba2fdfc6e035d2619b775c0375917dadcf310a61731a183f9e887a7a935338fbdfa4656a7a78754679341bef03ec42b27601795401398488f4411337e90b249b9988d325a64822522d250230c103ad8fc0cca6f0baf33bc02294989219035d26ed7a66f4e214b64f04c09541c21e03a527cd90bbb2cb312f7f0bd376f31270ad58cfbcac0e9fa3aa7661cb1eface9d0358aa0f38eb77f4f27808bb9183e98bf9dc8d2c431b10b05edc3453a420d1e89503ea9384f4dfde50c301deadb696d3024e6c2a94fbedcc8d64ea6250844e42bad60306a20ce1abd47d28b7711c06355084a541b96cc993ad561669f18d757c5c5e200219ffff03f57649c1ebf06a72439361f2812a53012ff938545ec425e94a5a87c7191de14e031a7b0547793da5db57087ce91b5969a994c132dbb01cecb7b912efd3e1b5bd6903744d8b042be12fca24a8cdb4976c39eefef3ba77073bb262f4e30b949a7ac5c903b0369dcb86388d13f3921e921e32e50b43ca79d6b37baa14994551a9def5538e033fcaf05db1c0ff81f7d2196ea2dd8bedb0da89890ca2ccb9b0a1bbe2e951bb1b03f5588cfabeb8dd73547c553f6e67439fee93d11e6a47fb13c76c37617e1af407036a96f1f601b81457c118c0cc27d21f8604ad1879d95379af3dcac888eda4649b03926adc165e3a3463b86ac54510257e0e676d0be4b9dfbb8d597e4d4ceb3b7e34035f0c2da83fab90086d059c6fb5f39aa8be8160e3c087622fc97e86c560abac45038e752a2d70a341a40184f09fab925c71424825038b44218a8672a68255a4c93c03931a8bc65974dd4b362081d7d21eade01c07dacb2dbd842ccb66672729ef8282038b49442f8ad6eaa76a4a0b8d3532d835b06e8750c9631b8ea87b4ca8d470f146030de827721de513766925bea8cebb5ce338a9729715d346d95617f8830ae703a303fe89cec0c67129ffb15c9f54f0b57d72bbfbd947c5277b1c04f7cfc9442988ab03258bd705d27f5d2a081360bca97892fd2e071988bb36ca7ebb13331d001ea1c90364a93070faeaaff5a0b3318275a51f9c3b2e7e27efa91eb9973fa7cf49283ff103c2ab7e64a046c567d7e4e6728a79cc24c5780a58bcfcef55ddddf8d238e1ff5703afe57db739eb960af222673ddf51d96523a2ff252ca7bc37902569700d2112d6039f7271948c23f1885ac4e60b49a199cc0e1dea01db33e1566c6e9b181bdd5658038fd0a0d9f227a52e725a0d0ea14de4d2dcee1d6a9bcdbb9d1677f116a2bcd7790334d489faa8cdc2b62973e64630c1f325c40f578bb434486107979d0c0d6936d403f3d64bdff7ab6b59df033ab8c0419968f43ff229841a9b8d85426e2127c05cf003de7703febbab40929d5bf491755f6e72f41c7a8d10ecb7f9a583464c280068760312a669cf5706c2ed9273e8fb8e796c19f3205e7e7746e38300bb869f8618d1b6032341a0f2c8550a424980d0f101263afde65754008708407fb6b3bba2d77b4348038ebf8f2726a64e4895b60fa4800500d2ec1ef8d255767a12ce25d6a63c411a0b00581e02a49fc4c83ce6d3a9b5ada618efe7e55a1996f8c56a4f9d8232a087e41e430283d100581e02c589e55a07310de0a0286f4917d06a53553ef3b5840e6ceb8322b3a1655820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02899368f4622350fa907f639a18b1b7583cfb6775c7baa153fabbf6d0bf440764da1403487e23fa7c17c94812240c4b4b60d39f288f604304c00c44533cdfc654e31dfe0355dfebbfa0d01d3d90c8bb059f630d5669b99553ff9fc9b02910df8cf10cd44500581e02d39879158341933b640a12687e60e9a57456a07891792317d4139ebe6e420cf900581e02eb0993a2cb1b778d69a118966686d2a7420748b06fdbc078a29d8f9c344402bc43e200581e02407628f0fd72c403f7266885806492dd3a3475e7a137789d82478e5c48433d0900033d9d8a45553059ed09017f5506e332666e62b1523271d79dc317717a84cb61bd00581e02c3022269c1c46d807cbe914cdeecf0772cc25283a90a17c6266bafddee4101021976b303a296d7332c4d1075e8e53239af056a6f58e2eda9f35500877c6cc1e180b858cb0385f0cec72fde880d159e53fdfed7cec26b9280cafce9ea92e72adc5c2fefa4f4032b6d3964abcdfb5e10bffeeb8a45a91ae7ecc7a6f9d76a3384aa67188cc4606503530b9a7e43db7293508420f1c13874663c7713e91a31ac17af599f3ddb19a2470219ffff033366f5ac461e2ccc59e48eac4691ab0956a5327123dff02101158702917979e103d165b1f32e64a9940d055d5b30cb038a1b8252d53b4246b49cc5f9b1cead992703aea4d646e234b7c714b16a2b8e0f4fe74ea6b4dd2c6fb3e77735df111d4bedb4034017699133e9d65a7f415fb494cdaa2eb5c520dc6519dfec36a79db24b8349a503d6abb4f58a9d6435f14183423fa5d4702b200e55b4c46957a4a34630f344880e0326893bc19afffab9eed7226eb531f3f57e4845c03e1111dc48f2110cd9eceb79036eeb1eee7962c77f2d517cc796e1b5e8391cb0acbcbc96bad8e1417c664db9a5039f6b2688a24637b37d40eed69a608298ae65d1a7f73e426925e868e6df4acb67034c6d14f4b7877e7febdeecd9ab431749bdab07fbbdd599756f20bdae82d8e99c03158dfb9474dca0ee7c2ba5efeec90c02b0905e2d2f897c39f69db8276d95c2f703c4ee3c010fe152a6a1c24b769f6a0d5544d18226a19affa8f7e9e3664e5cc89603dd1c26b852d2abf3251313d110430b0600c3e29e62f24daa72fdf59b0a8f990f032290b62651feebee39f8c10e3497e1e0e1ebb6ad64f3ef18b502268e0c26040703f43941a28009793bef26270584313b9df32b92c793f15186235a038634ce06f40219ffff03ab79c1fb9d337b6ed0489c5f194088dd8710b2479b549fa512e7147ba62279c603cc465cb37ba1c6a6e7e3606d2c869ea7d299574d902f800e3ed397130949cf5b032237928c94162986819b956ad3a8a3f08fdc4c734b44c0f2a7f8bb728f09136f03ce8196e55246998702b660ff69ff46d332726787f0a94cb3c9aa0503eff806db03c89cb678894f8015171e9a26b1df20d0e8a2d4a9ec20ee0d170d88a1c554c0870308dec1070534605eedb482586809c6627ae40c69097bd2258a08431ae7c013ae0336d18aad366c8e08780eedc03e4938acd666e5aa2734d59b0c3076aa794fabd503bf6b1409f3bed4b6de1942ac9e1dafd4fe1afb57e26d9a9688752181959d4a0a03b2564e0a9cc4388c9fd3174e18eb7dd9e19df09c43983ef7dcca12fe734f05b4034311128623b99f49fec735537b399438c1c73c642acd4092e868ba2f4388532b03ff1f5e923db36e952fd73a90df0bfe8db02afbfd0cbabe1a515c01c564b4082203cf25e3e3ce64aac39dcb006e99cb580f2b11e1df941cc8fc9d04b7d5beb7677d033fc112d7b9347e711bafa8df8f7403ec5be1c3852a0433b353f58ac262f8918c0313fbfe06e3738a96177408f92d7850a9c2c565fb78a278ad93262d33569d57a803ff9c90702635f34f83119fc540012c378f42cb3d0564dd6ae16ce9481add611f039f329c01e51f2cb20e45c1a4e8b28a8c4dfce2d684d5d039664b7de137b7c26e03c8e808f404e5447b47a8db38c068b54c34ac9f2c3f2bb6fd2c4871cc002a529c03d9e3818c38b8db6ac123bc9673fab5f8f54e787aef56956e8315e9d6065d87d3039e50941e33996644ff043eabf68c6a817f0ff050e3ea1dd98150f755d88445320346479663a986f5ef4ee5818667bab4464199d432e812532e5f9894bd5e23d9d90308859a5792222333ed12e85f0d4878cf1fc0698bbe73ad46aca844bb7de7c9f403700554da7df1514e66e90d87a4419a2e9a604d69538acf2c9e907f9d45db539f00581e024948dc9b22b1ee9f99ecc9182b665fdc75aad860d7869c2297e667c64c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e024c321354b18881cf2db488dfb9d70710c03355287331ce06860f20f595431e573d00581e0211ec98e8b6eb0a01ecb6eeed24e3ec13c59a50abd460bc43d02fb28956440634ef2500581e024cb9dd116b13bc96458995e62096bb2e1ebe5dd917b944f35542eb28dc440323fc5000581e02afc948883dd1d9def42e079af6f3cb298d70d56b462f9dbfa74e9959f55820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02373f8aff5d3cebdd81298c4ff96c4784138189b6f2b128de1a3878820944015dbb4000581e02d2ee1c1f11e6f6f6e98e11624dcfc1f054c68eb939c03bcc1c0d227e3b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e036a734b2c0a9dbdb18dde7b9f3a420ebf98ab575497ec0b43752a6b94d04406f9474000581e03944198ad69a473048fe6949a2128be3881d8df81c94b6c23b120a8ce6044118615800218300219932d03247ead90ac538e463df05625a53d9210e1b240e684558dc6dfd56ca9b95d93c803677c71218cdbd74ebfbfd4a53fe994ba7f78130af9af9d2d955778a142dc2f7d0348b069b8644392a0f2f7c15d5e11c04801a0fbb6bd02a4bd9d7aff9bca194b020341b9c429b33af3268865ec2b999fc1de6719617cdfca81504bf8987d6a62c984039cab5a9d113e8c407dc3f656e05335ebde7bf6185334479dde918f30dae4f4f5031fdb618ca6c5545bb6c8d8c12c2807e7435ee239b24d91a55ecd3552654b9abd03ecaf1cd0985629ce56c82dbce4ec0187ccfa9e7bcb814dfb6a7aa5f30af29d7b0219ffff035d8c2b0d69247fddba342841006b67c89eee3494e73875ccb99512551c69c167031ebeebc36eea645fbb45fce2faa814678223b5b038835c4057b81de47587bd1303bd2a57d71c2d907fa8bad6cef03f60172572a2af1f02423a15ab1b1a9b5b8a500219ffff0219ffff03a7ba7861bf4293efb37a03a85aca8f44d0d7c6c15621f171beae46b4acd36ea4030cbc2b358ce5ee9dc5962084e4ca62eae2941fecb0f1bd81d161d967e5013e36035a9468ad8ea380fadb7dc5daad5488c2506f7ce6cddb750e064014ca394b635e03cc42aa40148d030d450358a3adad24aef5f5473e75077dfa029ba236ec08f53e03d2ab06a6ceb3596d5819c063bc9a9dc61862f63866d65ff74522ef772097b8d903a804e1e678e58954bbdc2de2b554f36e9c374660343f2c1e38c2e4abb3d42829037a3b66f891ea0cba0b940fe10f3ad6ac6bf74d770170defe2e0b0c7f417574f60355c13583e6ef0d9def030ca9ad95d3a56517aa693df8889d3e704ab2c07456a300581e0216b3e3d4d082272703d98db3cb04017bde498224c7160840935a6776f6440887886003507dba83083fc14e71b4d3cced71adb4bf43cc1141b694ba92d95a792ead74c300581e03c0f4425d21716779c217819dff62d0d96f0aea64b7c538fb3474bcc30045049239d10c00581e037ff7550913cb47a211531d0da06f9a281e4ad78e580a4bb25a9b31ccf043e7067502188200581e025324bf6a87232e03eef8e19f757f19e0b20fb6a33719c45bcad10c1797410100581e021233439edc43f64a00a19585aa471fe01cdd0b20e50e29e74868f9e3194416eb90d1038b1137738a07bce1342443939a8c9ee97801cf161b3cfca0df99ffec4d03cf8100581e0202dd22bb663af74a36eb48fcc62b05b4e18cfa604d8a05aeb4c81ac6485820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02192d0e03108412d9a7180a56b0a25854c9f53303725ed2645ed46884c2e3edf62e76b50f035ed9473689df46b66a3966722dc42c967551bd512bdb238f2c2708e9be3cb153036353fd9ea211ddfe29cc6efe293602d23165da71efc729875645a2faedaf2e2303bcf96ba1083bd38591334a51a4bfe2903aad31d901e04e3565435e5360f998ea033e92c5df60d6800d934fbbb20fcf2ba1a002ed3aca98ea2a05b288a07d62e0da03549778f31bc7ef31e107f80dc8dbd37073d0d06ed031a7c509cb561dec7851b503e504224600d5ee78f5c29d5282ffc8075d556a7764c6faa0946d4bf709772b72031bfc311bc3e131e1a021b313df1e618953b45071a9f26c40d542b3ce2558765a0219ffff032a5358d3348493a63e3f15d5bc33fbc8f449c9d34eeb7086d076c4300cfd86f5032ed18ed1c9ae38e309140899267b1fa59bd619c5dd6d6693c20f3256b0b8eab403ea4c22d8710bf921237b22d72c821c31c7fceb7cd52eb8fb7960448320e05e3f03a79fad0a8b33b0748b70e2c976e50bcf82fd6c6c56b19a2e77abeb6ab62e33360320200644a3f543ae5f3ae2ff2d9efd3cbb659c62e5d3fffa53b269cdbfe8efe803f4735d9bdc7db092bc7a866fb32cae202e762d0bf5a28df0b1e1c9951f54ff7a032342f8d1b71b2bb1b7f110c4b71fbd769e47f5921ca2b67c3d904a83335a587003f69d750dd84f6de6f395971c6e1e6444cd01505e5c6978deb7e0f92f5794df34032c356805449cff4864d2e71aae80c7ee75173f7a2b71a839cbbd948680db8ffb03580cfbbf32e98d774fab487f0474ebbbee90ccc29b7360ff001dc2bea0c2450a03cf99a3868b5df54625b60669835ebb962df3441b621fe49735a9bc5b700a8d7c036fb8a8e1f706d5aad54e03deab3513a7522f3603ce8b41a9238db69c4397f11d03418018bf3b13ec58a7b9edd56fad75f6266bfed81319b14403d80e5426cc3790030055ac6cc9090359bf6be178befb6aec203bb75b9a9fa7203c35af41693a7d3203e6dea28e7f218f8a5f8b4b57609e69d2b34151d52b8199cafc81a7f1c05dbed40219ffff03d24a009e29e3b59ec29958a0ee9d7fdd3356d0bf1c626b5b79cbae32b27cd32c0326f536b54d328d86e54d85add0806790ba82e9f98b1a4642ff6f9a6f8114cec103f227215e809952f9a342700fa0e2264ee8089b2e69493a23e05896a12a191a7d037018301c944bb9ba113074a65434a15baaa0d0e1c6798892d378c259c2d6d3b9032c93b622d07e605c8d98513ad42aafb8b55edc80110b5b83d8b784c23d5cb90703b8c0c663c7324c14459c34054149fd131062e54b180b39e136dd8e0f8112ddb703a8e5eec82de8751c2547207739e3c1baef4416c386be432970ae98775281bd97036e7fb069952a0455acb07cc3b41fe8034594cc169b815373c22019175f853a9503a029436f76ad2551b0058eaf00d1c9c0d5e89691a736bcd388efde516fb9b09903c274e4ee5f49a3a15cad4bcecddb3a2113bf05065a926b58c3c687db38454290036fe7c1dea743cebb0db2e4dab1f28561e9b9f01e9f99cd0d88fa608d0085cabf03481d0e2f44a4332ef01ec56448cb5ff5c9f5051e4f110d1967084986de5a93c903d65d8b6c88ffaa7ff9f3b8394c0d256f714ce530a381f3c90b48c7153c53120b03846c04078ed0dd49bff2467be53445a0a5447f8598d29bd28e52fa2dd19addcd0219ffff03c59e7f11a897e4db83fa9b83801d509a5d0d43718e4599ae8d07a756084073e703b5479a7ebb6cf7fbbeab95a7e5b2f4c2de911a11576316dd14a22dc0aa336c8903a322907f5074e9518325f8115452c0b0b2ca8310273ca0937542f7c47f4e7cf7030f12c5e4a4846ab4a18ac190c40b5bd2182abe314a9a5e3180a5c18c84120384031d5369305220c07fd3727aab79808c018874b1ad7ade1c1274c3cdf5163c90c403780c13ccfc21f95d9a7dd01435f6e18c14c19fad741f91e1d343adb7aaa45b7d038a693761eb576fed5f3c1f1c88a4082b7e266a5ee5927d2fb1d7a05b1f5ca6310342508155ef49a2b5a071dec5e966643997571bb1b7deff824b6a3ce1d18ea3c403251accb5967b98f52d62131ac32a158c279c5d26a3cf9bdfe995552e8622eff003eb93d42b192fa558dd50b2779219c54418850998cde1ee859995a75dfec307e0037deaacd9f32ed085f6a858595ee0556a9717646c3d996b90e6916b5788b1e35203b2eaa17cf8ee7858a3be6bc2d074e6f89124b665eebbccde7c17593cf0fb0eb50395e714a90127172665c4eb1101a89fa4b7f02e387bc79486026e7af290cec3e0039c23146d0c5aaf7e5b9624f461d79467222e28b6a09ce73afc44d2edd0b52fae03f225f67490e9cdeee9e6f046f57c615764b075f6879ea88f5eff78be2feb45b503025170a2df9712b2eed94babc174aa2e0d7bec5771569170681366c40eaa719603a8591c39dad0066b329adcf4e2e65ad3fc4dbe641f7b33668f8668982ef8f731034bcb680c220e51c937018b801786c358a13e99623ba4ad4e6b0535338007622f03da2f55f94158a7a1a556614c836396cfe5fdff2ca4333b73b3f7a3719c5275ea00581e028aaafa80385ef3379eeb55af4aebb267351edb99bd5d2a369fb290300e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e025585687b0bc5b9720d6a49176cdbb4d5c4bd9957291592fa7871308ac1422710033253728dc4f04108be5c06906b43d70014218925c954814cd0438bdafb2524cf00581e0274710be89f9e09ee880f3784c70b372e359f5fc06a8ad1f872ca8ba750441dcd650000581e02634d3b9c41791b69b5c0734fdcbce335069a3b6bf3cafcdcabaa203982430dc37c00581e028141ce522eecfcf8ce9a83890260de643d56fc0d71700b0f37900b03684403ffbd5800581e02f788610740f68f2d3890e3cf185d2cc65b35ce9491aced015ace861f3744045da60200581e020aa5f16e4238a49a657e50d46cd60487513cfdd3a7786aac406f28135e44017d784002192aea03654cefcea54b6e702350c74cc8290cc934537b1a09063696fc64aeb985d08979035c3058f86d8223def4ae6828ca384bff660ef8c4d2a6b6e446e24df76c782889032811846b8c46cc2fc4b8f7b7e8fe44b39619adf27b9329edcd414d0d4c54de4a03979337f72b5f8ad67e9fc9f5f807e75240f925b09f679ae191c327600a5056d403c1c30cb92ab94402fd2e16fc11121c9ce90a5d775ed8836cf1aac1e7b0eab0fc03c2e55f37b95194e691ef5e7a6da3d846491bd7bbde8133dccecd6dd2b517341f036330fa034ed79cdab66f35a7c30876d7f3c128a9d70e3299c9d4148e76f1d732032636612ac968b97964547aad85fd672014bab43197660f829737f56d22671a1e0370ddfe17ba85c9a70db9e670108c18d234b05e9a1ea9ff4f165d6327714f8ae003f7ec3f3a1b8d85f569c9250ec46ade0d4cc58e77eff716909afccf0f9bf7913b03249b3a507fec3452c88791ae0d882c16a2bbc8cb18255b16b5eebccf3e095ff60219ffff03205d155c62aedd1c982d1623e4a09e93caabf4a3139fd1577deb9b645ef91ac60219ffff036a2d25e888f0e47cb1d5541a6d52bb81703ff656b9cbf8d6fe090a94a5e6b704035117322715f6e7f0d6bf38c07cf97678f20bd4230513c7473420facc32a6cef4032f254ad7fc49df4f181c864d582936a833b070653741e4f6ff757ad6390993d203503c5f258d6a2700f8727b2e7a87589ab508c04cabc682169939268c1fb3592a03e24b8430bb5ba830a87225f45b06ba4f78aca645875dd18d333e0042cfc7f53603397cdaea472867d071d12879aa6a8141a0d3000e1b67cfada6229d12a21b89c9033113cf0d194a824df5bd7711e70671780af8738ad65633ea6a7abe220fc560ef037337e3fa696728e4d8c0705d69571559ec99734d63c9af361ffdbe7ede72766f03ae669b5d873ea49ca01293419ce1e7536a87058473d78b6acf691181861ecca603fe36a44c8f0d7d930d4c854130e64987267a1a53e9c2af857635db0a60cced9903a5f7bbbf157c99801abcd356a589b6cc59e90b15c888580b887b8c498606288d03db7925e4be9dbd51dc02096992912e2b0d36a1c4e19969bce311b3b4dd3aca7603b0aa151ba72396ec889b86904f3366ed67ac445ee44c4dfa8c0f701672442a8a03f753fcbcb72303449d9a1c1ae52e25407d40e52e37fa74c262307d1231bd0d61039ce5b5e7aa720f3aec5ec4ef9809d7dd43a17bd11602a337dd824118698699a7037b54c02ffec4c0ecb1af313a289227aa1d0554ea02651a4401194b66174cc7b403fe9425d6cd438e3f02acf931cc152f540cf19ffbfbfb5176245b9f40796893190353552fe5a56e734089054364f7f1c6f609c6ba0ec6753a4ff65724724337647703bfe9139c67ae26e232a43cdf20ec65bfb82ec1274233728ffb91fa8ad247bf1703db13e836f37e15e8845a5808d253ba0a6e12fb7a25bd049ab122fd4578179d4d03aa8c3add242a4652485272469f5cfe47c9d677e3244bb649a674f2efebb8b608038bba2da52e8ed6cf60f5cca7df24902024b45b13c1faca983cec98aafdd64fcb037d557e000985431a8a4c181867de042df7a32c224ca87618b3bf72c17788891f03e25b300082f378dee199df75633ec3dfdf6e235d869ed3d371a2c06b4b9b692803b17067374fe1f1ffbc7bf0518e7560e143d17e5f8659582ba968082ec85edab403a2350281e30f041eb97fc38067c84683aef51b300ecabe1e8e70d931f37f017400581e0291266ea95d37b16c50147bf1a1b26044d16115818fb65312ee0540be18440a4b8e4e00581e020f146f3487bdc73383bbf07c1a930fe1e5448ee007de5f2e05879cc86d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0273222af90cd7dcb256a0869424b0429438a4854483c2e5a5988ae3aea04e314dc6448d9338c15b0893c18a4000581e025900499020fc82cf817f605a8344b711a2e3e56bd15c40d525620e6773416400581e02dce1a2c9d5ac1d3e21783436fb6776a76d21cba7aa5b2149b68b06ffdb5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03bb4531a80535e8dc49d543451c6940990055f08371b14408448e4a9c2402ac6e00581e02e1ea730ec2e439f8115a918e98431295ca9d9ed48fe488e99ed3fd917b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0276a3a04734bb0deccd3dc6bbf8e402488d0183166b9f68a4a3481375d9430814e300581e0222ad125a22089f78599592b42ea08dfee9146d85a6e23e337d717e20024402c05dae00581e023e683b378ff793203e5f5fdf2afb7468f640f8acd9e83908543213dac741010219eaed03c419d2fa07e6b49929f7fc03cb281d08ee23d4d5eea3bf67a86f91d64d4755550383763307a5807db13c3320880d1ef427ec0c9573ce86bb28bae2f1671241e996039e142a96575d1709da781c6b00b87321d5543fb6841f1112f650f983d48a45f4036192d6ab13b9f223ff661199a6afcecb0493e4e689d8a60ce2e3f2ef92be6b900219ffff03789f1ceef8969b92e2ffb1f05b44317b257d8ca5fa5a0bc857ce31d011fb7b05038a1e9fb107055a75c91780d886bbac2c5bd654ad359474e1bf7c5f9cbe245eee0219ffff031523fb0a662d474f107f8c8be785864813a7fc4913a35e64b03d9a7b30f3f134032fd986ae425555dc925de852c14ca5ab387ea1ad0b6361b44e52c1b0285f49e60352e36516ea06c06e0fe436a794c5a6c2b9fccacd83442ef7b30d485172b2cf6c03325361fef558a2e2f01ed30fa705ee82b45d97829c516faeb6d330c3b1f327c503d4947b33473734c6a814debac7e55009725088e367e91200d3cf7acb845b5477034486be571fa1e9a40aef5428879114ffd71367753c6a48b81b749358a8038f4e037ab7b73492870891113192093f3c71894aa88eb9814e243b025e662188df93be036c4aa49be3b699759e95ce1c2b52f26caa0f605777cb7d534b759769521ac7de03ddc40ccfd515c7d2fe621e65ad5afc24e91d5296a18000709c414d2c4a37938c03f84a5a3dc7bb1264e106ff5f2de514b1eb9ee99de4848b417a9f0179fe1ae2240362f42eeac25128eeee9165242c8698b3c702e75dc1c2d71b5a180faa16ca308d036718d5036403997094294b813d788caa3dec44257e986c377a71979ef9660af30219ffff03c8106359b8c395bdbd393103bb9b511ff3d39d1962df17539797c020f1d354020219ffff0391a5bc40a5552fe13bdf209c6a152f57d2934c8cef8c9adc37dbdede142abfc4030d05e693867d197b9235aada6ebbff9a1ef6d2f103b45b6fb7d73ce7cc5f577503508579b73516ffdf11902884659d416379315133787c2d73d1ee1dd99e1734f103b07eaa6cb5bd8774fb3c5f920677234ad6fc2b47b9f51a0930171fc6930e449103509cb40ca4649a3f61a596adc1a81a0a2e34620f3adea6553e46d23f7b7d54b3039865d760e72432474eeb0cc327f58771f9a7690a1d0a2d8aed4441acf29f91b80358ec082254172da01a6feda69cecac383af4dab1843ae17c834bc11560fcca84033e7c20cb2f8de74f061d3dd5ab6a6525e544039f811bf892f36051cea49ee81d038c8bbea0b2f0717057e6a7952a94041028c9dcff494fa27ac645204db606cc990388019725b84446fc84a8b97067e8f5963ff02a7d070d3e1b4bd8fb0ca1eeeefb03af36bd90ca2c07cc5cd1a7ccbcf315c823d6e47808c0630b68e4e69ba768a6420352739ea634a38cba343a394b3f0e4a9e8c3df3964200ea7ccf4b85f21f9f768f03c1e1a660fb028b5a489bc758154655ab8455cb177ec1bbffc8508a39230a9a76035230b9c21c5f11e829b3d1dcc2aff6e85eecd04d5c9a3a2a356327a2f28c3803032158a627f7eccf85ca1b2f2183748a36d9911a7c0d74985743f5b82d455f64cc03ff9846588ebad88908e05c4a9b426494b56a19ea479f973bff006bdfbb2f239d03a6b61f7ab4d13391405091f8fada3c96a0d6a6d9f7b6fe7b752728ad79e1f51100581e022edd9cf91362643590d190f7e20c4d0c329499c0862a44b94774fbbc014407c1d7c8036d84a5dcb9e4d558ec98ca49fcfc38bd89b342c9e12f14e7841dc83eb9ad85cf01410300581e02fe4a22f8675d644944e7c81011e8ffd15bcc6ffe58b8431185267eade14212fd00581e02eeee0d38f765fb31003ac224ffd74ae53c0edb5424fdb82475ad87d00044155849a300581e036945fd50a5b62a2f6b4f85d6f09244561513a077527266387b69b90e205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e034e7d29f0c1ae7eb73452944d45159260bae7dd94479884c83016a94c00430621c002190a0000581e02ba356e28e177517d887b290bfdb8bfa38554bf87eea9500d2429bf5605430f0bc200581e02441f9f963cf2df2d361c302b9b728a66226ee6392604d1e0195fa4c7465820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0263dd44f4a6ac17a64d183de66559687e76fbe9c317fcd440a46479164543652443021987e103e0ab106a9cfa96354912f362a7dee4280043bb71b7bcb48e077ba62a69bceb21037497f2b2da314128bcbfc23039ec586dfe17a377d00db12c5dfbdb1f1bfe27e303cbefab9d04757ef8b5440dc760c4b0a00f62c5b870ecc857919c4b2a9ed7d96303143c340f5feb465f73017297706530fce9f3b530e38617cf95772a1836a0f12c033143249f2f5ac408ad4e429467410afb7c390c7348e37d02086e882aea5dc87d03b33e82e143d188914742cff015514bbfafaca7b6f5829959d0d6002a000d984903c7a2fca3dfbad64a913aed53860f50103d4a5c90704379adfdf2ff9a936d294d03eb79f4b70ff6ca7404e82c5ecd7f2b7afea32fbd0cc22bd92be407d9bb34be5203215fb004b099a365e718f76865513a955f3fc6bf98d705c681922a5064745c19035610d8b4be0aacd8a851cdb411ad5c69f22b7540e097a33dc2475d3344859ba003a835c3f5849bbd166f341ec334be65ccc9e954b1bc081bbc0f37fbc772bbf97503d2334ab57ceda2c83e9d1a4766d06a9c284381571f944974cf034d57d867a45b0219ffff03ee0e15ad1edbb36985c1dafd7da1d02dfecf0b91d6526c2c817bafa1f93d6c2c03efea8c26bf1e955b9950c0fbb79cc8a50b8d63ad106dce6fa5bdf304c90d2efc03f5c26df14306daae1be73ee27193a9e92a810a82579fe62ebfa7ed1425db83020346feb72d1acb61dd92715466464b93f9ac67f91bf0040eacb795c4019b9f846503f71544a84bbd24c72a99770c942f7c159e48c4624278b054fe537b2ac919a10a03c17bd28f1c19d0e6941b6332165ca2cf4fd9447027bc4e8e5f6b6af27aa272560312cf4575e468095044f189084aa513b4773c8c53c181cfd3def1005ae51c445103f25cfb8fbf8ed98e9f5759827a04f07257d766366b6653ca3e2aac46c237634003d72a9b4820e4b7b6758cf90947b022f96feda59a633fe180cc51661f8c6909b0034f4b098bc69153957f0f0eee080ad57785d128159f53cf2fda7e0fd43c843a8f038f0bffe2801613e794539c08d20b919aa69408af0a7966906666f65f0e5ca8dd03eb05f31899116b9f2640910569291d2740e2c645b46c5409e392984c2c5ba7130219ffff0309e98d80b3f84a1b33b9c98cb7253c0a3c3f2d8670e0a28191243dfd0d65ce1b03b79fcec7c182d4fb7776d185c0636bf4d9d2f28ef2fb452a343f49e607bdb69a031e3660eaaf0cf3358e5b140b9edb8b042de4a899eab21e7b071555b59dd6e8c0035cdf98dba7e87fa2415025953a2a9e1740fe225a8b38cfc84fc5a0b8636d1c7e03df73b238887c7b5c23718bb36d8f70b8edc2655c176b7eb117ac3fec26e4776a030e519e06f1853b7a45b227e699e790199f37fc28c47910a6be302b21114c13e703b0be207345fb1b8769940cc944b96a6a436c6e5ccc8cd064f16d26164fb14a4d0219ffff03bc879b0799615f705053a842899f99ad4026e87bb9f144bebc3bff2afdc2e6180317d3a1252b801b0c414ca15be6b7613668bd449db58ef24cbd927c618f50098a031b4e388b7030cea8a7f1dcaeceb6ddb2a589df112d414d83017e106170ad2414037f8e5cff60d3960e70e1e670f194fa7a09dce89d7496357762833c3d16faeca0038a958b3b614a8e0ca407fb98d6a2a841f10a9a78480e460bf08d237a8ce9625b03f60d08d56c8c9d337798db2a89844f5b3d4e9640c9968a2d78e4d6a5533adf9f03e4858d3e50157150819497369f4651e46ba6dba9880ef5c7181e24fc757f9360032a3fd76e055b30aab74967202fcc90c65d9153255cd826c02952ffdec94d803403ccbf6f9e12f307ef567094f14be3d1b2190995812d61d8a6513adb2aeacf284d0302bf50d2689b7d6d66ede1b4538af11f5b0bcab2edd1135c21564d91c1ace814031317572314f725974e697431ab388e2209692569c9047f18422aa7d45c44eb3e038f935410be96c6aea3d78f0909048e40b1c9e14836bb5c61012718ccc557517e037c20fd5df16d333cf7390c32af3efb77cbae85b80764a38ebbe5e343c50557cd039f7ddd4c2b64847bc1acf21e38aa1dec552dfa12311198e3718f1674851b64a3033df72e98b900b06db8d945fa2eb82fad796178614d35ae55cb2142ee7cb284e303ebb22b11ea66f1a14062994384ae6dbc7564b619fffae5b0f81de0b05b01ab310375bb8709f075e01efbe13fc06693f7bb93e8e337836cca01a817c38615ab7e3503ad07242899bcf9ef7a6d6db26e8e8e10df749a02921a6fb5584f370cc80effc303405e44d3c10891cc648be21fb92a05d0d046ebdfbd9cb82225170e5abb82582a03596d5b06cc546a73f446eb78ae460dd58ac148ab0b0bc468a314364646dcc34503a5cc0664f832793382eaab0e9f4f23aff90bc3e04aff9022006aa67299449c690380a52357914715aeccf223864b60a72d9ed3604e17be347c20db691d4829a44b03dd9555046950c1f74ab4103d8d9ce6cac0c89414b3371756cacfbca0b6019706038bb2c423ec628881c6b4cc51e972c8b5e5908a294108f49bf5a52559d0786b6603170ec3cdc0d8761c935d32e591cd47a29c7262ef40431e064e27af36f55975c40314d6b589a1998d56541b551407e77018e0ceeedc279711b56984ed11c1f7a7af036c7936fac6b47b31a9165fbea02881096d51fa033af6e4655be60098d18ead4803bfd2656365f83ef7a9a8afe9c6670642ebfa0bc536849ca2d4c787f142a1a678039665aa722257b26b05d5f8c33fbb6b154d080b5d17a312ecc08cc7c4b4dd275003c077cf09d2e83c3c858067d2d684872336a09ce6fb6f5010c71e485738d8fbc5034eae1e9aee72c868d06cfff4b8fe432d28ce878af191dab26404a0c894734041039fc93f4e90e0ff0f4151c51c5151ce583e422564b40d0877b82e3357a575b0210382f45f8a589da7715833af2a74aa627987d94b0b277988728d0713cb423d414d00581e027480ac10b09fcd881f77687dd90c5d0b1e4cbb1a5bf83f9b9fe173529e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02faa2ec09efaca42416dcf2ffccfa0cc47491e11ab9cf6f8b4c5fdb32ac5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03bb063bf544e909d33a08cb6c46ea6021ceddf352b4fcc167aaab23ff1796918c00581e02787769d7d7d22d5d834450be2a6d4d93ddd5ea27946499f320c605cda85820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0388cf7a5c6de15f7709d6f1c46aef5cf19796bdfbe6bae7df5b3125eb85dc01b801410403a36adadeefbb2d929b4e828f482b822439d79b1ccad5aee3e1c4b4303ef449ac00581e02d47d316fb3cb66d680f60dfccf017c7bc618a2c26bf99b6f9a5b3a8196451e20611e25034de4fc3d5e4cc684547bea8371b3a06f294598ea9a70f51609f086300c6fb64d0219a66503a25a5d68edf6b649ce23dc3444606d312d9d550fc82e622b085fe79d2526ba4a03c9cbc97758a1f0ac16be15e7678d5aa0c81c4de66dc9e49f8f1131bd9761b0480219ffff0398c856aedbcd1f5b560c7a299c5cbef74982894356a589647253b68fd429435e0219ffff03dbfa081c42c14d1ff9e02b099a9426f6b4e7c50c1634ceffdd1e0ce33c926cef0362567db4ccaaad762a13e77fcf925acadf592a43c57445c17a4de0b8d4a1dd6203d2cf80b1f01d1c2c59bb98fbc40392846131716d85f5a12317fce3ba88458e3503807a76266e6681d9467a2584bc1389fdda727f2fd6ca1c86e6651271288a670f0391f9549485a6e4e66a6fc90fec5ec0c57be7e3ae41da038b188ff535635e0837030578217911db4eb04bed83b51e2b21f68bd713d8e6b55a51d157269b95ac792003a2d454ca9dabcb7c10093e5cc1d0f7aad1536f9ddb6797998818e66259777f010371cb32450fdaa727f9a4cfd6482fc103ade55ac7e97b69739dc0b5df75391083034eb581b18a9cf6fa11e8ddf53f32fa1a0bc6c97a8b5102f9ba7a8f1ddb06c2ac03ec3b399297b78a8cbaa518cf01cf7a92418dd45f951f4847bdc6e24cd676c8940219ffff03d95996ebc434a19129939cce5a517fc9c39aeb8db88d9ea14367502482ac3a3103a4ed1a154e421c01e3135e8408f710b36b05ce8d1b5d3eece13c367fd99a8d7f031b64eb71ea916d40c8de28a562e1790f211678d4843b22f2e3aaac1c84c6a305033b58b11d1ad1d3e94146b142c888f2723c8be2f24f36bd2698bad3561bb6036f0344508474eb837b6e9cafa3aa7e497536734d3c7b5bd845a560ffbaedffe7790003aadd7977b1b79111942c1aa29eae97e47eaf584b6bd4302c7a09a9e2eedc161a036244fb54881970c3c7905d7bab7ab2b5743355c635c4499ee85bb615f556ce9703546bb5f9d23c71066187eef885f82950fd4072e9262fe678506bdd93f3e0e95e030136ab6a49a475cd8bda552cc8730b5ab5b6a408110a32011daefddb6b8182bd03bc2aa23baa172170b9cce440d7088e330f0e7800e072491bef39a8a2499a85fd03944cb02fdd768d1c4dee31ab44c9689218a8a5f5f94366c564bc19a240c36373030ef2d9f693a4af4c3d0cb8ec421653215c8c99cdd2359384b6a61dfb85448ad1039177ad24369861c482acc1d672a20c2da98b1bbbad1e5ba644b6b1969b91fb46031ecce5c6e50d02edff2782ea79803c03905d65962d39fd5785b17dc61723feae035e221f25b92ce4a444bfaa98d5cf240f8b525a1b2b6edb3796b773b39162a96b038f827b9c57c3eaf28677056e3601842f9fd1d767d59c14b6aadb9aec5d0120d6034ac4e9293d32294fccc5fc17f0511a25ca749083173207fed57b743fcc50d6530317857d44f09e6377b86b93479c2cc0e7169a79097a246219f0db50b9955fcfe9033575a25964cbee8125159747ab7e5451a27ed9ac95e0c1221ce6fe07b0731fe303f325ce3c8fe454a032a1ad02dde1f7b792b39c519039c2fd838fa821d4e6522d0355931eab705411c04ebc606c3c2e2ade8e1992dc1d6b11a285d9992eeb7ac8770300198434fe5cd48da2ce5f019552749955267c9155bd321a36b394bc8356c91603f05eb6ad4c34513a861c7712b497f8afbe4a9eda90cc4f395402df427f1ffbcb03cf773d93e80af696013a915c8f7be08268dc15601022664edd8a10b19f0d7dfb03d878f485acea96fd9df74f0d4828fd11fd131f9eb084573c2abe266d89c866c803b453cac3b551e5d474e8653a1bdca3b79ff68c41de598f24f4762900ffdbe3ff0355d7d741e91a4e7ef001aa8a1a0244a1a46eebff644a653bbb29bcf03623419a035030a8f85311872036c07ee5ef88404528b5e3c12ea7421a84a67fb94bd056f90389738d1c82f614d13f10ce558ed91a14c1bdf18771ea4891c030f1ce808666fa00581e02dca5019935e3401c1c490380aa63bb1474dcbdda445998c4808342be654401bfc28100581e0269aa5c42783a8cc58153a34a4875630bacf8a4821efcb449069fd29fe643a7cd4a00581e0233a045fab2782e4af42e89d8a636472a43b63fcd3f2b09701b3e077d7b4402faf08003dd9c817bd61b86a48acc944badbbf2dd14ae143b68a92ee1d1fabae5c43fb60000581e02e5e3c382355e04979640dd4b80e0b553f778ff374e7eb6388e4fd6aaef5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff039b3fe009617c48b20e71b7722f16b40a9b06c779218fe8e203e7f84f9eb2353a00581e0232a965a9993f36e7562fbefdedf15a653cb1a280dd79fae6c5a0e02fe64389544000581e02382b697a933c641134aff6b74e806f3ecd1445b4b2d50137085b80204f4405d75c80038dc1d3f4a6eeffac6b488e509cf7b1f03b00632d87bed414b55ed35062357b040219d2d60390acde54cd0e12191442f5b8fd91165793a34eaccca4ce5a770ea65cff162e3403710219b2022b8eb8e929fa8e23898d4f9710d00e48b7b022e2306321d8158c19031de2e0e6d5986c30ef28a6baf828e59a88133ccf1805018b3919eda4d9af21770337ae1fabae59f8de71d2096a4344e166a3eeab427ce4441ed5c90b1f476278fa037297658eb44908d6aae625a55805c8dd9a34fb3e8dadb8ce004bc285a5b1b84b0219ffff0219ffff038f63a66669cf805fd588bd60c9fd5cf8913e212a9febf724a8e781ff8c99db2b03f7683ecfbfe388ed86dd0e08b5c03204f14e7f2109860a4e25fc6df422a12d7803766b7a2294472293b11a39f59ad72cbf51c85df82d5553100c7b8b70404c2b8703d0b5f286a968df7dbf83aa99d1b0780e414b32ca429e61fa901ba3ba01ad6f1e03a79a9da6e36ca232be78b2b987cc5dd51c56bd491602fbe49de689ee8f27bd120336cdbd8819ebe13907b0b014ada613af4cc36fe678f9fce0fa301d74744dffaf0312c1dc81fec9e0fd1cd75fcf4af400c5db0fca06c4a0966fb960ed901964f729035b19a7de2b080323ee9f3a55eaa678cb56bfa8aec1e4469c07f513f8f8106d1603acec836b19f5d4503ece080d683ac64cfde26b5cfb2efbee424d126332dea779038942c057dd82686ea796fd5fde49852f01e3921e13cf1a9f6418d69819768c4a03820c272238f17c6844cdfeb9c39ca2ab7aa1523e4db30507d880507948cf12dd03042964cc89f8c28d8a11cb9b89bebec942b8d28c2d9c9aefd21fb566e90bf74a03d68fd1ffa325c0ff0f42511369fa50e092113012ba97b690fd67f6e444013bc103032621a42a1fafdbca27913a4f74daecb6736ea06fe7f6a51f3351994ac5cac003dd398bc30dbe1e3be845e4448e54ff0299a6ccd1c20566d4875ba4b10b573b2f030de9b4b62fb337e9e6e32dde28492706af847580e15a84dc002b7e16909828f403c108cc57f959fc0119d3a314383fbd7b3ae04524b9f9d406ce1ff0ba98d02b2203b9216061eebcdc4eb2bd2249501b23528de87f9ba5233a31ed7f854ad0838666036e91cd6cf22b2be554276ee40a93f03ccb9c60c013e64b6938c480644e1e5d7703eb9ecdddc387f30cf290f7735055059828fcdd500140d951b0f1707d5e1c4cad00581e020e6babed22e5a6266948db54a9035e5f91bb197dc80e1d40517a60f94b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02b19bb19874da76a69115f0c4d8d8afd723239b0abba40dd85fd124a7c6581affecee2142a7dea9314b809a0c42d3e9560b1408a9f38d12950200581e02eafab861e82cb7c0dfe81287132e794b4a548b7e6307e521832f889bf94407545f9003e4022a378f0d6b1649f3b48fd329854a2ed797b64e24014ae6ba29febc68566501410d00581e02f324bf43fadbad5c46ee27fc9a23cc1f30f0bf76fc65f8bddd996abd385820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03b97939b55e8676433e810936c1fc309feade75f2d2a749cf8fcca65dbcb58af80219621c035fa79be528027ab7092f34d54d989774f7ae3e202cb66fb94d782e7c607311cd03b36fb2119d8c1931fe7bf1c59363e010a7913c521dcf0bc8da7cce770c7c1296036a0031e574953f4ed7f89b92dc13ec4b29451f5580eeb69fc7f138c28086627a0219ffff0307ad3dea8e069c463bd83a40a64fce1c4c9c1597ae85e0912c2386c3912910aa031e98b0a4ea440c85e0556ff4e766675bc110edc141ca272ba62b4d2c7f0bd17403735af6a38588bc8c10df65dc35cc527e5ff75895cb702fd70d5a5c7adb986a2c03236669f75747b4e2e9ea42a3823b6c5f49b678029a4a1d27af544f3fe80db4bc0313909c3889b9bc0f353fa82257c56d7d5f89aa0d500eedde384204a700925320037e11173508a9a6fcd75b25b9c69be6a998b945860cabe436d4a157884493789b03f2a9fd69e1f821090428ba14b905401dfdf8f8d554b31b86277535bbf84bb2830327866a2c449bdc84a34240e7d774dfb8b471a7d6dfdc524f73a859076dfbeac903054559bec57083fc9866cebd39593eaf344b5fda871463e2d8d56d2db22cf0ec03bc61a5d501d45d414a86723f99f353b53ba30af41c3c67a15a66eeff72ebc66903fa3cb0b88b7d522d07472aa11060960acfd033acadb4efd26f73e3cad3a750ef03227de260c7c5736da6bd4fa76553ac0c340fea5c85ab0a88540d0cb2c28ed62c03ee16a914486184cc1db04d1da404a616d9b8d8ec7a4fea60bf89f5687fb1dc25038951786e50ff59a18543cbb1dfbe59200ab92cb88211e89902f0b3cf94392f4d0219ffff0399b24d7973a924fc4bbf3912df64f582fbba0dfe7787189427aaec53634b93e5034071f0c589b3ac534bc35ad6e2366a006308f1c52ba2e921f1b1d159ac15b74b03279616fc79d5a3a86b63b6891daf4d35a6e48f8ccaf2300e5ddff300158398d603df3eb26ffd4b023f07fca412f35cf805c0f04682883ec2392cc90bc1fa4fce120219ffff03dc05d59aa8deb00ff511189c6e22172107b3a787b36b761b2dc78171cd75d4db0380234bff6341ead6428b6846049d4104b536be6ab7dfbb05c3ba498a50b214d7030ef18da025c7716f5247a04e05e472f74b80dd488aa27c2b90b41a0821b25778033f8dffce4f8f83b53b9f5a4bb116cf828b4a1127b1136a85c0c3bcccede5adcf00581e025e1d05e87fe6114d26f68ff5eb3131f5bbf8d3897bc451dde1880ea43b4383c91c00581e0286d62ef07cda51488a8d563fedfb60ba396f1dbf5aa6888c7b4987425b430df9e900581e022c866837a9e0d5dfa065bb8eb88382a1ad4909263790381ba13e3c880d4b4a817c7ffffffd475b66be00581e025b190aea2d23b75d6e563a77b7bc466690dd1933fbc1af20c299c82678443b9aca0003f7bea50fa5e7ab1a6a00d8ac7f3e6540aeaa0172eb5597cfc70bb97b854881700353fa12ed20b709065668e4be10fac7a1a2ce0b4a6911bf8dfa47ea333ca915c700581e02be1325e37b280c5bea88ecabc92eb17e17f0187433cfd86197b6778f6e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219845b036511ffe8cd679d926b7402ac56684a4a40d043a5f74a172e26ad57bd10efb3c5033ee9b90a3889ab14f96ad65af417830853e6894c412c2b35d26a28c284f2684f030ddc29df533e3b1772d3f9d53135d1a65ec04bc01f4ec3fb08d9dc78fc4d794d03395566382e78593b9eb4f038a094db854a95147790c415987e508acd0248a56603619c45ff587f51d6c83ac9fe59f9d2de6f6c0d6f4f580073e7ccfea918047cbe039615cd26696116672014ec17ed87d190a3305b3e723c45716c8a263a4dfd55440328dbe6928616eba0e26a9d3bdfe85d41fa4e633ed081ce99e8c68970739bc6790387b012a544f1305bf72605effa08df6fed73db8fac778b5e8952d6c793e0148c03be6e78134091ff81bb5ed71b358a9d2241c69881cfd912a721f2340e82720989035ace3495be0b36ed9478b7c3bc4dd5bd8ac2b6b549da8b9dc9ffc4efbf43fa1103bb942f7768b635126250410ba39bede44dfd930b00305852ca6cc89e28be8d8d03d9fd4d00632511d2aec1ef705c2c697e1b6345f22128e05c9363eba3ecf711ed03a2b05729ee994c31cc8ce9f7ffa38a2377e1f6cb8cdf1904c03c5fd05548ff2d033d6d9c02ec066a5a86e8dd0678fd0ec1aba4b77900ce9139f4cca9d43aa09b140219ffff0303bf7f695008a1ace28caaa4c272d956b2494e7453d089fe1277f1dc128cf6e903743721b6882729edea53157aeba34dc421a4837e0637ec7242c310160214cdfa03387a2d106e04235e881442534cb96c6b0dc3412655688a32e6a14cad77be55ed03380c1db4ab6e29e048b658f55fd50fb6c4359af498c6f9ac0ae05d40637e238903617661401dc743ee14718d04f5ac42de9d38640064847f35d9d4989313884df503bdddfb4aec8a8cbe7a2a513e99ed2f782ec2d7fc8c9af88b00292d12b060a099036050460fed8cab792f909c6b28ab7bb6cc9d4ef0682b026f5737d98add0b315b035f12a1764ad4343e1159df3ea89128c66694a186b8fdd3b8d8e89867fd7cb2a10377ada9c4bbb8b7783bffb2295eac3d9993650f39e12d5845b2aa05d255d833f3035c71c0112c7b6f8d90d4b3c72e58f07dd64ff2a85421f577365ad9edcf309913030ced3c7e116a0c6d337ad5981b38478976b83e33a5247371c97b959b2c21da9f03fbbbcf979afecc6cf72ab8c8fe0029145e9a420443a0ddcde5151d26597c7eb9039fb54fabefac23a6235ce17c69ac3008374f54bdb5d695aa41d2944d3d4a01280219ffff034f8d15df2a46337d991dd69b480c6db4af1abe404217c94cd82d5db8f2b5ae1103a77a97a19ff03f024b21727cda285c4c539d29ee69f7688ec4b540f51df32b7903395d91ec9ac426cc49d495195d1bbc5954cae05d7e22e00d11f9a9ef8bfc63b503a98236d73f3c513405bc2e3b778fbb585e25f5766ddd54592289621606d9d50303240479c65346b2c4e958589dafa68e82190d0440f5a23ebef1ef6d09ceb0818f034d8fad90ca8feb24b04e1b9923f0ef1715c074bbc638df1c82bd37cdb087346003f3c62e1fee7f5c6c8d6e229ba44f79d2976094d478e32ef722c4af89cb13d10d03c0819835fca8ed4cf0f5a018bbf3ddd03fa981b7d6aa4d94f2b0c504d8f034b7038e9417c24f9a477d92cc60cf957423ffdac292ba7af1bee6432e4dc8648f3b4000581e02c8a54d14d7c4887eb0654859c78b67d43bbbf9508b3d98f43b66aa030b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02588f6ca9df42af358038bfbcba3b88d3bd68e3fdd13bfd94dd37a72d095820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e026f698b65ad303784f83833b9eb74657aa279e79893339a8cc96443f9575820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0228fb0b96c14ae46162cf654f3957ee3ed99c4559c8f65374af988044a04301428400581e02476d434e0a3a8fa6ad13d7d425efcb0cd3e72125e9ac39d2ae0e75b6ea43e4e1c000581e02506d4361f47456dfafc44f439ef2c85d115789250c01daf824a89bf3d65820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03d84c389c188c878fdecb86e9cd55825a3981788cd07d68a18fddf0b2205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e032886f97be3552cea56b84db63e04afe99ddeaec15a9647478e41b514d04404e5fc7102190a0000581e027ea28900e5737694a276f692f2c75e45f20a7bc403889c9b297775e14741010219e1aa03544a73b0e7d42cb8c4a839701e3688985ec32b23b39dc6b730c3149724081ed4033680562bf32b1f655d7685ad81cf43c273dea92ef60dd723c674095e6603084f0300264d8cd7609322233eacfaed51369af54b8f827548981a55d690540ef2c2100329293d76ecbb06281e3da9bffffa7ab7fb8a3a986bd6c6a1549de8991bcd6fd103a8a49a9fe5492a16307a5a7b18d8ac5bea592b04fee3763ccbda0dd660b712800391f40ef5a11511e16d55a5f3c0b7836cec1b1b30e1d537f863e42bc03ebaa84f030b362d5b5b27f924f71529d8dd6f0d10353f36415bd3c79b80313ee6fd58f378039517a027260f597f3264341f64b0780a3cc6d32cb2391fab401551920b0dec7a034ff9b7bd0e4cfc24116b0dd79fcfc6d8af65db54d78f2dff8c07a76d24c637b30219ffff0381155506f4cb55e1203bfa77fd8d4abda69be654b20b411a055dbdef23b57def0382add1e7d7745dd122c281b379d326f1209cd14e39900ac704478c3ca15ff90b0399c6b74cd1b2be87b402f51648e7dec9fbe32088485181fc2310687bd6fa835603d383b22e5a3fed42251dfecdc760baa01605dab0dd0a0b385a503a1bfa7568e903d81cab73e0d7cbc0c0e1ca5a5e98b3448ddac52907b5fb2766a72569a63903c0039c5f5e73ca7d5b31c05f09707ab67ebba03d895bf5c2383f2429dc17ba1e40f8033d5d67762c20b9bfc46246150ec6de9b4bfdd193b7ed92c779bada7d0f13f777035a6595cb4b8454d3f34c76f777e2d6b6cd33be16b92bfceae0c42c6584383afe0384a6db65058a7ae826b8fb8922d3d33bbc35551a7e40fbc2f77b750a406c32f1039277ce6db7f3d0f5b419d456a235783dd4f103c6a4b24e979c945a4b1030393b03b99aeb69ede591c1c06b192952e65a9eceddc2616ad64e7560eb91aadb15fe52039cdc6c83c4e16da481be4ee293c0c4b9834d1d87bb61bcdd886d57c99975f41803490bcf1d61bc78d2a058e856da4bec1c55135d048b6cab9775e01e0195baf8fa0370720255e810b05add876449088d5a9f0df8d8ad5b2ffffef07bc7d7ba7aa86f0219ffff0320bb164f5b3360c52001987a803d4e832192638da618386c683485a504f686e8036533d2dee54d14e5f2e001e12bde1c900b3074edb66984e807410025b1954a4603487c94fdb5015da51f17f7fcdb070e08745c3d890bcbe802a1a8af072d400dfe036c125b5af71c3e1d057adebbbadd7dbf8581b86df82007182bb723cd935155dd032e57132d69e37ba9d212a1fa844a9c8ba9a3f942f98a24c14b829095f744ebc5035db425e7d14233e838071ca79005ceffa56b93c1bfee4d5c4ba81afb6c2bd67e03e5c7c15cd412c352da84acb3ebfd6c635ade3a99102ab335f953d2eac1ab8c3a033d608e19cc9bc50235cea06fccf646d174d620763ebbb4351728242666981c15035c0e2c2085160d2cd37988a0a7eb907ffd94b4ecd2599bd3232bc877bcabc0890347736ebdfb813e26cd7c60086d291275a216095c6df7e22e56b33c362d4cb2a5038ed2c48ff529e1df7941fde7ac83ab91c0cfb9a3892b6b3da41952a85159bf0e0219ffff0362401ce989606d9f144d6d6d7fbfdda2b2dc3b28e62bfcfdde9bf010f618f201035a27c754310453cb92cecf5e76501a5522841f6892da27d2f859dc2017c6599e030a7f400c0f5278aa5a00b2f4e586e8a4d449132c35222edcac4d01c9c966a64203f405d1fef9ed5a419bb2f5140f1b89184547344ed2d74236b403f9cef9971981032beb4c0f66d38d49c3ec962ad56f77afa524442cd0145bbb8ba60a07902f4bc7039ccb90d1ece2c37e979d956b8b1f8d48501d870ab0d2d3958369b4c947801e1f03fc44419acc858da56ad73ef45620c633bd80cceab7c9175fa06268593161ec76033767d5a17e59bfd821e376df4a04cc88603e2ed89f98d40e99c2e7aeb5f5e47a03e13827c0ffc5c6a9a19d317fbcb63e7e28170f04f4dd8af195fbebc3b76d6689035333774c59fe1b341265e5c062cf386edf8873f6fdeb9db4458e06e09c189c52036c56ed8db6d95034c3e40245d7275e05d5c910ebcb97ddc52d58757dabd2477f033101ed40063a032b4f16d803ba7e7af5a31834c41e0abe635c35e18e514344f50371d99231db6dde042437aa8e138c467c316175ac1fc6875b3f2dabfe508f23270316a8047155f5574ec3d0dcaf9965e684f81352fd5bf0810f3fe520e561b0478f03f3243ddd66dc7ba285d72b8ec741ca2ddb1eba69e88863ab9f3a6d9250ea51b2033770c0874faa402cbb4ede9388745f2157b261302e96ddd1850849b7c3164ec3036399d7be4a800597aaf1fb35b6a72a1b526c5c0076b5b64277afebcc6aa635db034a2625255e9a836b43a1e4ac342e2aed09907d90c3dee221cba4ec65b1f2b17203de47ed65f35a7a507c6909ed2511c70176f58984045d9a96f3c5027ee87536ab0360282cdc1a550fb684258ef45d47485cd7ccc64a61677416aabb3d3b0674dd79035c734dabf1d3a07046d7005d9c4045144fc5355be396b33fa08b3dcc87f0124800581e021c18431b2b04f852fefe77130dbc7e3254d31011948084475f684f4ac243b71b0000581e025fde1955f408ce4350575d042859ed35d5fb3844ffb77b0f283b8078b8435b8d8000581e024fe87fcbbe249bfde4d8efe29dae618915279e09a37cee0f8e9ea19f07440210426000581e02ee5c1fa4fd9adf9572652965b56373250c8eea66a9ca779584c5a56946440111ed0000581e0236c392fc149df53e7189e8723f7fa48e3d789e0c30b5286c06feef671a440e778f7f00581e0253675322331109624187b899576954d0c69d8eab7cd7d74f2309e292564401ab3f00030c8a6fbe6960ca753a9760f21be525ab6d87b330ecc5f290b3891ec44f0ebbe2034660dfefcbbcb4f017f7064b7c2e2328c16da9d45dab58314b7a583efe22599102197e9003e61b73be0c595f58c33657893653f61de364b8a4d8aaec847e294a2694848ccc030eb912a8f7d2b5af31425e7727ce4c6779af425bece394f37f269f43876a1fd603cbfad3993a702b72f3b150911aa0c4fd5f476aed6b762d7d826923bbea36649e032631a26dbf45aaea27e957d4dc45a8b420944edab51e6246149a0e08ea641944038107fa9e47e723d18d67987e8f8c1bd87d0d6db2d9f9f148f06d66dfb9511c9903141d5f9a76737048a77e0f7e4858cc82c1bed547376b1aa2c38ed62e84fd00d003eb033b9f9b20b0ff052c33adb453ee75005ef786f5301d792ea38a518eb767b50372cd75e5faa0262308316a33db06bcb08f4943309ed72bec2574c84a2a40f01c03d09c0980f78b78739e42f80702cdcc726279017219512b6485d0834b2f253aeb03a5537f209d26aa390895d75914cee26a8a7def41c2a69ac424254ad1f33a610703a91736f66fd3b3ec6c0c44c161f617deee1ab62f4035766c73148f90ce19d72503a88479581eda742083e42b5965eda757c455799da8a87531e7e712af8908721c036f7532d670668fb84400e9e4b8822069a756afeb7c30f39586489168ab7c0c60034b716ab0246c036395df3c1e8d896dc79ff4db9f92552970ce745c6dde97e9c9038519b333493ceb9872ca6c503eda34b54a41297b3ea548c55d480138d7394ba20219ffff0317828b28cd14e55ede309b4fca1af04bd178be525f5f2b46607d67e7be1469f1035f8c4daae0044e40dfde3779e06ec4b50f0898b7c3f9e7461bbad0d3b968494f0219ffff03b95377cd87953f09aa1644d322a080cc8b334ef8c2a50f874d6cc9cd432bf024034b662ae1fe2fbf84342ca9d7f1d27a8182703e2a9dd1b5203a394bb4e5f85d66039c51506081afd00828105f741c0559208cabda974f8b7b3de3ed35136cf8d01c031d8dce5ddb0cebdac921b928cd4cb6982ee66fa31f4cea2a414452f719554130038ddbda4a053751a6f854dd93dfe608c15f5ffae97342138598883c0b5da6300903dee9eceeffb0ffc7673db498b1bec3c0c7bbe5445e77e0311dc0cb33e716d99403c2fefc8e1c6ef41c16c3dcd7de98fea97400ca6629a8119da640e0de3e4395a30373e51f2a072f8176ba4bfb27926fa39fb4a1ac5c25b47d8188794d4219c92c7803a0003e7f1dff6ead6ff925a5f12392082a0b9b365fbedd99fa73aae881be60e003e5d1e557d2a376cb68f621dead44ef2de11a1d2463aab6cbfcdb9f1aee5b5add03578af8e6e8f84a461ad16865b58f7fb091fc1852fcd67863090c471e188ee07803fb793e6d5d7b86ec963f4adc79ad56771803b771914a36f9c6d67575bc383d6e03002281bd74692e6e006a294a14956425a340b4203f3f0782a1c2c96c4203ccbb03abb66ee5cac6891140c1075f7b3a7306cbfff0e6dc774742e0bf297719f2859f031067d3a1adb079efbea8fe72f2c9764e5c5939ab025feeb7f51ea8fb2c25d06000581e02107ce453790c9853cfadefdc66175ca28030b8ec9291e85630ef9f9100495562504d3379b121800364cf5a84a4861340467df4d98329658b49d957761919892be661fe06a1e3cdfc00581e0232e4db262d74f0b3a3d0f666e0d4375ce345447181863f7bc6c6da3b795820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03125a79537f8a5717095adff4f9b6bc7cee35e2b1ed178c4fac4e807579b4b07200581e027a4948480d9d6619bf5566cb2c81a5a75f71f324d4e1f3034beba79984440546b3880361af0fc52697c58f945e581d90a4111de8f456bf32a8a1e617cfc3c0e30225130219162303327c5fb7162562b24ce6cbb19415b46395ee8ed7a89983697042438040dbbad4035937d96679c284518e9523332203a9e548a8ffac718ced89273f910643a1f3cf034214671a68a8f82910a6e64cc80c800c0ab05d5519b68b4ce043cc7d53394d88035ded3e31a12c5e2c9d3b382e47f3c86041c92d25c9dd53d562ec530c41f18f89031b82af8ef665bd9968c5dffb61a9730ffc24308d178e054257914fbd1f7755cd037d4e6cbd50230c1c236facfd607b870c4b507d8f2be785b2be12ee518cc749ad03b59301cbfef7ae8c4ee3f60c9575bf1ba1d3843c06e03221bb112fb5ec765d5c0362703f2ced25cc7c6c8081429346aebed1d83435a82f7c6d62a2fd433273458d039c024f4f5d2a9e6630008929e456134d520ced0054c7a40deb3bc0a751677db80219ffff0388e01841e9180af9310f5f0127e4ea15908ab4214826353348c246abdc1f4d5c03fbb946ca06871384ddb2fb8f73906e88003c1b7d0ebaffcf29621ee3e419e4b0032e18a5c6bed6edef3a4afa7fbb32d041504b58839cb1ee3d3ba2fce45b7f1a5303d6f1a5fafaa0249cf8744d2fdf61854f10f502bd19c40ce612690575e066a3780374057adc0418686559924d083eb8887efb1de1a7b125dcaadf9e45943bdba10a03a204a9f669baedbc8afcd5470c3e02f9cf886375c9898ef0930ebb23b57ae072036241861843fbdeab6719e47237aea60b3571da76a7a25a2d29c09bdc4ed9017303ab9990b14a1a925f1722bb80498843383d8d768b0e692c93e4edf8a219e805140355e1936fc8e5110d2948a430d26d8b2d3cbdbfd5b765fcad5498138f06323df603ba015d05814dff0d4640ee820bd934f069fef148262ddb8e1dbd80667740038a03e3dd87787f57a69f2aa0765c4e9f88f7ca8acc9eb70c0f5f2c71022fd186593803a1d97caba59e2b4949b4c4732193645f4f2883276fa6fe7c6fb526b5d19db9eb03b5d10d9db79143c90fdf1a25225da21d5719c74e0e35b059ff7bb70918ae5e4303ebf72530232850809b4be03924aac856870650cb8985aad1aeab6dcd71c5011403223da053c03c89fddeb1d74afc088c92c0ef0ee2f428e576c42e82ab0f87a9a603b1f2f1f55c27910b47631d4f30814e0342e3f1d4de928b2890151ada433e866f00581e02f01be46576780bb2942c881902fb4580a58f1263e67eae4e888bb1e7da45070f06d63000581e02cef01a69bc2baca1dc8638601dc6480a0e692c71f58cb7490019c1763a430f2e58031f9ed4ec60c8d4ea589cd40808c8f48ae02494aa47bf1cce8411f42ac1fa442f00581e0202b1037ac6efa76aff974eef65e7aeadda28f4c4765e9d69f0b19f4465430ebd8a00581e027d0b278e994ddccd4458e161355b96492bf99794cc6c099596cc716f2c4405f5e1000219ac03034b14f71cda05c4b8074f86759b9565bf3311ce8da9550027d96425de9759ec8403bf8ba39317c844f4cafbdef4efeeba760980874f9af92cb9769932600bd253250356111cd78132ee714b0c1baf247fdceb2974fbdd458ddf3049ea1d0e46007299039daffc773fa3876b92b530558e285e38dc39fa531e41ec57e9dc3412a67f27db03fcddfeceac8f768f326d784b7ea38b9d29ab932ec35484ec00a65cfb91a90c7f030630c7e00b084af763541eaea9163335da03471b5b18be03a51c0752a719befd0302c213f9688b80846af6b5b37933eb5cec236ea9e5ea77de8c89bc75c2929cde0219ffff0219ffff03761327cdde00fbafc2be3976f1d9ad05b828b184485c56132ab709846f889b6b038df74591f437a969a0f8905017151517d90bc1f0d72b9e49b91a06c6cf34e83b03828096e1bb2e3d16ec193a1ff9cd68114104d87f80e5125ce3905bce2521955f037f99af1110fe2ea546ea5aa947e61d6b4eb643ce57a91b10fcd3e1a217afec570348bf279a76cf7751c40056ed208aace0dd8daf6e392b12f4aa49adcf0f26285f03dfa856911b48701c4c3671031c38c403f1c257c952288f4ec719d3cbbeef3ff703308891fc462cac9f66df83a64135572f60f1c84237ca74c3fe4ec3df73a36d5e03a94f4555d4051970af7e6d3798bf37a7a9ede6a860bcf8cc09efa1cb803aee0703c2042cd5f8f9b2a5321a44e94cf99e77bc73df710b17b3e1b0c60ea640e4023903ab28d393b97a8e9e7a46ed56730d4bf9a95dc03d6734758525bec1563561c71e039f0e6462c30b5558cf3d3a71f18e4c44f4f710bccd1e79de6504190016ea94760306e3b6eefef850ba1f0fe4fe29645f92fd61d57d10b90d18fe4ed45bfd05bba00376b64dd78e9fdab06c86522c5e62912d0029e1fffc02228a0ad45f6165d29ea203d3d520325dbfbec8d89679ac35600c1c9ba8505568156759a77bde03a03827cf03f0c18571682c2b2a56db6bb58be352978ad4884286359fe24b9b9c07a2b9ea190394d8026369b6c5074c15857f6f964ffd420f2168070c907dab5ea1f9a21fab8803a2725ee5e3613a2e12358a9f2c02f4340d7132fdb93ea85b775014600299480d0396b5a15bed8dacd61bdff46c413be1d67beecb69486bc90c0f2c17e2d105de5b03bb05a9b610373d1aed303dc12e22d2d74ac4d07a31114d1875193847e29c5d7903cb63ef3321686daa12d1f5d1ba04a976939f3e1015a589478d199f720b26fc25038c11f2547851ac4460d24536e494d33e062ce8e9f09eeec1946e65e4c892549703dedc1a496c705b567f9689b3776610ba91c178db42d1492ad6841a395893b91100581e02a618466839af6aff8921cc202f25c8f299451a9c372e47107fe3df3f805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0255dcc2f12a3dba2faa23ce7e448d209cf583e7e661bcb3121d67339b9a4404a62f8003b26d3100f96649239728d0218ea67b9f5a2a689598b4a0f9c8fafee677987ace0142007700581e03f53fb39f44999edebcbb9dd34aa84fdd2c54723c03b55e95cd43568d9045267192d49d00581e039b1b41907681f016199b16d1f10a319df99b4023901d87c37c04a074705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02186000581e02d1578d71f1ee66d298b6b1028f451e8a946da6ad4ed22832c1001031f3436439cf00581e02b1f9502cb8724ff1e53c01cd991faeeff9440a38721fe20e4553dc413b4309fd0302198a52038768e395f3d4c3f7f0c9d42073486330c8b31e50c8b18af13a1ffa6c2af7431e031cfd47c29e5f01ce1beedcd2bad1955146d11a52cd6d076f6240fc0faa1b0119032e12dcbaeadafcd3eada9b857b7573dc0ea8ff5854e26efaea89a3e8e7dfd5e80308c24b916c06d1c103c0df3640e3bf78d236e3937f1bf8c8aa5bfd5d865f3f4203456cb8a3051fec931d4f569a5e0da900a15d68a9c86d23a96325110db7b7236403c144dfc836f1a2831f7560850e60c902a37e01e03896850da624b702dd971c2e035a73f68b6e71fb2ecae72cb3c9dbb196425d10db7470d192e98098bdad2963fe034286b9b0fa4db7a3ec9a1ecbdd1940bb121748ddd8681eede932738726550f9f03361e646b53bae1db379a8f29688cdc6afda12d668749f9bfe0d0d287a3d4c96503e3dd74e50c579bc8cdc7bdbced40a7e8d1692cb34843d930b184a21174201d440219ffff030abddc4055b8a72c65f81638924cf3986b0f41933cbc7bc76e6506d8fc9f989403199ddec4defc698000b3a7ea09fff4ddbb01ac57a6122d8b566a3f94cd0b888703d1da331f401cb8c8b0dd1ad9aa7af40a5e6a485b816bf8b1e9926d7504b3b4a70311a92bb9ada60785ad351fe5b00766ea95d2c05254e789b9aa96688b7f28e44b0371257bd61fad7071271e44d253c81d7fa00547dfa49ca6fe6f1557f2e29ffb4c03cd21ed00f798bacfc9b40e6e47bf90cae5263556fb012274cefbbae1f6d4b3b803fb98c9e51e71600416d9d353b8fdc01da4a39ff44340c402be71f22e1431a33903c279f95e3de88d0d34941b6985cd9ce1e7bdd6165e1b109b12bf597f06539d44034bea103ed8026d5a9ca2c8019f89f41a22c8808dc977d1c27a73fa716936c7b503b054c30e54b74997790000dcd1af59c77e4954636c5f04f31794dabfe918834000581e029a70d2a03d30c43b23569961630c85c4acfaf1995f064ccaf3746f356a440896b39300581e027afad9c79dc7dcb11d0caac3421173f9e3e2597b773b5d566466a7748443a1491000581e02c4de1797e111de47febc504fbd79bfabaa465e8fff7938c087cdf519cc4408f0d18000581e025c2424af725cf2402468e40c23ec03e10369dedac8e8f000d0a0ee0a8b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e028fee8c75821b6945023c36661dba1e566149e2c194ba46ecb2665f0ed8470ed2c362041ffa03c3f507a9aada6630a07d268a888ff76bb31f6bff4b27b44e9bd347ab54646ab700581e02e4acf23acb3392d276524e57a7c987ca8ee4c3f890ec9336aadb58853f5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e020e45f5402eeff9d1f5d2bda56dac33d2b024fcd9dbff07e1020b1944345820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02c9acaaf85c561689f059af1cfcee6bb194289e1ba2769592ffd4b6f5af4319d5ac0219b2da0396b4504edafc16d760f3572fdbbd6021324d9bc46d8717afc19f75a37896b9a70371f2319ee8f66b3dacfe0c13826521f779e5685cd3de6de575e3cba14341f3ec037da941acd877239f860c84d3cfa4b04b35fda290b66154a06316041dd5c77d6b03f4b59a29ee9254bcd87768e4d91553326845bf2bccd45c62b044a8ef23ceae6703ea95decf8ddf72c2907f3e3b0e438706d22b4957e597dec7000c45102448ec4a037914b81de8dad3242dfe23235e635f596c95e6b6207f993aed88ba9cb8d91c3e0219ffff0362ead60f5adacd60b721732c6e1d88cbca77a64daf57aa5c0c1c9b43474513bc03a70af1bd7f9b0ae6555ab6ba794f3920f5226e0eabaccafc386957b02ed28c820300003261560748b3b9e929724214fa4afcbc7c267f957928df529bb8cdfad3f803e860057c97374cbc938bb7fd07f6ccb7606a0e644287f61be238ec8a3241bf5c037033c9db70c2ed88bdb65a54929bc573bad097bb6eac08e261148bf53379e6c50219ffff0219ffff0219ffff03c8207e354cfa60c63c9b7801c198a495d9a019082434f1c699e46dc6ed5b702403a1d4a78dfaa1e1e3085312cdff23293450e2529e9504b3e7bf41ed5628ad2aa503975f414538a4a0a97926cd8172012c96181bb4aab244e1bffcde6483e01876b70325d75a9684c36963e07c97195d75c6f9eb34a509670f31463dbcbf314b588e7e03244184fb54f8d8d1844cffb3482a179c25f7d9f121ed9dc73e36ba0e2f160b380385a7bf0bebbfa2c8e0e10e61ea55a0dd7e6d73f7b1b7caa136805c903b01710f034b86f668e9209ef0a8d5692574c5af675459ddba9687745b667a0f1441b4b39e0380f8e7acedab9b8fce162f332244d6e1336a98be6682f5df9f80a70e8ea958f1033194ed68670dbe06a14b9b413b67c9b5e55d2dda81e171f943de0b4e60f13a1b03a5a1c9b422e2f1df953ddcfe4c47c25b29437839d2e52a7019ae5e09b23717530394a6639346be95e60c05bd403bbb67920cd0da650c03c41e9946bab88713f43a03f64ec9f8a9dd47b941f8bdb09634f3a530a19b1bc1348f1d7574f8e7f6a7653803ca68a0d21da4247c4a32d10aa24ee6d98e5ee6f2af77cab141ae9ed4aff6b2640302e7e04909bf11ee6ca80a8df50cf222f655a8c06b4f35971039375c396c0a6b03a82fa9226d4152bbff8a0af39f7d479de5813fc9e4570f44738a86db83de4c4d039a597d6bf97dc1d1453321ce71a0677ce42dda31c8d37ae088f3ad7f497b517a0387a8b85f17a1f9b7e11d91063974bca7a85a37a5ab98f3ef7615d9bf63f2e107034b3178ea91e95624431b66e9bd4b07d50d700e40f8695808cdf7384d6268abde0345ec158731e7244e354fd3b8fcf358a7dff94f56cbd84555755ef1a81d5bfa9900581e02f5b4403b8cdcb2c4c0144ed46772d709288c3fa17acadb179cab177ceb5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0278a7efa1c842fedbd714317afdcd91df86b6602e4ae683b7e6eb637acd5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02637231ce67a953dc2d280cf84d40c34a5d9ff9efb06e5ccc4f4f355e5b465af31079f1e000581e02348d23a5b14b800d35e3f3c25d2903626372515e706cb8918ce16c13745820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff039fa0587b57ccaadcb204eec1cae8267d5f4236cee5b7f45ef4119b9b3b43aa0400581e028c23d4a0fe04e5bf4cbf511e39b6e2b5443b90f8273d8c70de03988f29442f24603b00581e02605b77a083d005c6352dfa3b09956d4e88e7bc1b0b60348b19d094626b4401481060021958f4035d7e4a6632fd31dff8461ab3a74697837f09951becc85525c9fb31f38ed0dca7031fba6f8488d988608cf72b43d9f3031fa4902146049ac917e60f7ee51b556aaf034e10443cb3ed947705ce9a6bb5df6ae27be6fc723bab7266aeb8ba6e616ad631036b65d86e1061b680ac21e259ba27ec160c41627bfba4f4c231641a1cd689ddd4034804321d848b7ee1859f59ffaadfd3b2adb5af4e9450e70883e0b04e420bb1bf038d931daf9d5c7a2faee9143776eb4312ca6c3f988e84eb05fcac988974fe94980371729d22966eee23a81101d784773dac01171580d8ef883fcedcd917ec2af6f9039fedfa986a7852e7f880d7824817e4c329586c6a0ed1e1f94a9c3f4e819748830314e39881457497bba3e323818998d7132b88fc00d6119ff7de3cf3c742c5f58303b9a5d8d63f66fa5944907064f5a7f57a7ce2ff2e2144e6417c0f9752b808af0503ab5ba5e07d64432286a0e95164d4f62de5abca83489330a3a0226885c5a5b7ad037bbb68aad00f3ba16083f56a317de870fa33085067f75e8344963e4e96d7b35703db5fa9438b092f35be3053f5c3e2a9e2a25aaf4b3d7e18fe1d37482a4099055503e9914524b44d220da58ca8c5ecdf4fb294b76855443d54ffebbb3574558eae6f0383503d3a2f97bc8c582d7d28ab436e4a8e7e429fded70975ad70413a42a0ba140219ffff0219ffff035784dc73b17ee7ceb3b2c5caa275885fbf00ddbefa10e8598be93985aabe580d030aaf7c3d6c2c4bac6f222ce6a1021dc3305951769312bcd94ec18aed3cdc78a10342e91f8d6a1c76e7450b4b5971bc56cd2b1af354ce389eca5f3a8b72c4e7bbcc037bc4b5bf4afd3821e0bc6a1561ff14b58db6ccc649b79d3e950c4ad5b683877503559cbd00a9d4f247f48016de225bec42984cca6ab5b708505c210d042a9c1cd8033a8c5418098145f5540de0a7640a40f7b2122d5c229b03966f6952feb4631c9c03250f4204120ebe9a3a5b8df7012f23217dc250bffe561c038845af0d03c45a0b036edbef14d1bef7e01e487fc2663b9aa337bb40c919729d993253dd873ae4f318037b9cdac12e8a67b977099c2bc9a91e9d87d04f37b77d9f91b32197790e660566034551cf1cae9f0242de26203dfc1323fafff852a0a092a615c77ace08014cc2e903f223fb6839d248b88069b9f8527c38f33b711c224db1cdb6db05c90037b7ac5403b51c5a7c077535df6c76c0687f51246da75c09876717c50a3f3a9c29f1f8adf503d6e221d350923f3f2ae6b6f1e23d65bf45e4700ee8ff023dcf2bd3c12c3b01d80219ffff0326f3e43adc112dee38d5dbb72843339907d442ae009015470b12b4b6b9ff8c4503559db9c11a5d957d99162c9d9aaa7600a0fe9e309b73008e68f1e92afd78ea8703cc68e676261f83b5a4c18f5161cde3f0d62fbaf714f528ffb9aa9d3ec4f74aa7032ed861f3911612c4ec97bf24f2ab43bf9acf0f4387ed87bf722c37e11f2def0203b3a622ebd62f2710754e27c7e1010ac43053c4df731caac79bc2af1810bb8c1003649ad82a79c1cbaf3156ad253ef1ea1bde21128155390c5b22ca2e45dc44b7ce03922c4604afc4aed45b367f495b1596dfa38cf22ad424c7473ee21a15073d8b4e03fabe93063fc8be4530fd5d4a7bbd1a31e783467e11572741383d20a74a7d89d90336c6dc98a5a3705bef3bbbfa264f0f4a72cf1e8a4420ac8ec6b4302934dfca4b03199fdc057c6a5adbe8fdb6d1a0df4d8e7b239875999ef88b75b1ab002ad2c16703469cd00b059af7fcc8a7371beeef2bb65cc6bca10d56043209ce1d95fdedf4b103b15a4ba0e867fee264e002023e8e1e8d4721046491cc34a48b591241dace0b6b035f43275fa3d502774ce77cb1d7ff26c3e26a25c521ea9febbb214ba20c47effc037ba755d90f0e0a457533aed13f3b3d4e49351790136de1b4ce75dc7be3354fb50358ea3968954c70d8613a020497cf27e3f23458941036df7a193ad34c8a86ae9c03fa2d4541480f8de16a826ec6401b45aafa407ff6e106a0404fd915df6072f95b0352fac8b3b4f69ff817eabfaaeea716d08a18034bef7b2c77005ea7e011d2177503c6b527e014fa0c7ae5952a2937b5f999cca594092c8112fe8d69b98b1ca3d951036ac249e58b7dbb9a683fa54000761cde2cebcd35b1bb228e55fc168ed6b90952034b77a00e5b64bd124bea7548b37562f729b3456d2937905ea20b80ed6c122a09035a2de115ee66aeb03f273f0b6a81420d1437eb36d67ea8b638b689fea3885e6f03d66974f50892e5b92bedc90778c7d5ffbcd37aac45fd2b5c79c86bc9691cee6503d14469ad4168adca6a2067d1baeb8ddcf5782745eb94254df895aca567aea50a03e7408b6da965a8767eb26b09e1fee4093b29a1b45c3463205f5c46e3a7c811e700581e020cbcaf34c303e3b149af0b159cdeb2c093536edcb479734d60fda5bfcd440bebc20003565020d7f5a92f00891060e5b6a7e0313db523c6b00b6ece6987f0beb5635add00581e022a00ecff9e8c0e98874b55ee3ddc1973f2037ebda3f5820df2a7c932e15820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02695f25d59242005fd70d4ae79f583a1254b7a6d71b0f68dd4613ae22ee5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02c6779cec50c34acb0f6c7ce1a7f7cccb7fb01e50e5c6931c3acc440eed430f424000581e020fd42b8f5f4d6c628d9f54d9a4756ba12bdde894ca5e12f0312f70d1475820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02185ba98d78795ea5c669e2fd83f70aa9277374192887db1466462c8966410100581e0282948b44147f03faa2f7090086faf6310b10744eda42d6a34a23bfc6095820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03ea0b7f059d2027c44f111190f623f92bac34061688cd9872a7720417c8cc331c00581e022170932017b88bb23e337aa1eeaff6b206a9036fc218862771a9382b6a4307b0b10384e3d0431d1aa2626ef6161dd2788f9a078c7b57f6af75533e37492d5064863c00581e021f2a0a81a747f33c970479c8047b64323416ffbc765f4775028630e69d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021975fd03ba901e879dc67f54c91242d641260433aabaea60a5272558c58160ec7d7dad83038b61b54e940618ddfe4df1d019b767c3b1e7b62e7b43d7617aec29918d29e3680353e0e3afd868607da0537ac1d6c49015414b4fb1f953f5a2caedb66bec00512d030fc3567b569571037e8c01cc4903f7d650ec664dfcfb7e0ad9915c63c1fe98340398a58ecc5c41c2ddfbdf9971067b126c319bb68109444e74691a655b569755a403895d1bd60563d60d2bc1d2d2866691c0acae43384b6cf126d4d5a820335b3c83030d9aad2caf0a01359ee03f1269beeaf62bae2ad395d31fa6cd4ee5f6fc4f54f30219ffff03d7d99e3f53277cc4c3d197307036ed503aba308d3344ef47cfcc10ed7fca5b7103a97f660ee86bea01eb553a8e05891df63266c7eaf2f187e53627572e24a619f103b1824fee6a849e85ccc6b380fda228ec99f0c0e417e73451754522fbd99cc44603a974384ba4819d4dc290f1e9a7b63afaf9ee0cc792b77d8b2e038772885662710324976b93dc337230e695ab294921d208f66ca138fffb80e8ce7bc835e1075e7703dd3cc30f08321d6ebc995c51273a1d3b1cb8dc30bc10bf99deb6d45458582288030972b91d7a770852b0792626d860b1c6793bc1a39d5c5e4a096b0a9beeab148a036a1a08e36bbddf760a813f0b53a49e7109b6c706f607eb46f31e803c4ec23f930376933959d15247a51596c13b62f725470124e1d669d2fa43495f05b1cfed6249037a3b5493639378a048aabc512b242cfd583fb3e5f0c1c503da9ef47cc6b7392a03d8f65f68e95d4ecc2882fd55901205957c6d1e239f7040d501eda0de9527a7cc038d1bbd3704387c55c501e5a6439e30f2b5fda55967c44bd65fd39a95aea11a590219ffff03df0932eb8ce69c290afeda59ea6727e96fad20a85b6a528ad8ec3e24ea14fb17034e626c96e92a3ecaade50ce52cf8482028d537162f3b869678ba0a76d5d611350326ff44b29b9e8e5ffca09dacee5a3a35ec413f6e34f1a8aaf0d1f6f6fbfd5cf803d077fa6f0b564a5f25bd4f9789ca5cb2780f3da5dde12c1547fdd3d1b8b8dc390394a5836601c2e284379848ead52011cbae363745a83a8a96514e3374e3f3c2950325f54268cacee5c779012b64b4076979353ab6e902b10a728246c6dc0b9d51b903246cac3887914739f227a2a86d6269e973e140dd03f62859703a6f5940597e59037806268a89d37177af78a4241d64a7a0aa94d5dcdccdafe6a45779dd76b617ec03b55989e0980db8198fe46dda6b62d74ba815dcd4890cd2fd27cc65e6a45be6c003dcaeea681865d48b3fd0752a21ed6e24373f23d3b088d2f8e984e825789493a80389c48c2a135c91e7802ebece83c0adad25676d05176f53e594471f2f44c6d22b034c9dbd3880e0066a87eb8983d66722bafded2ec3d85796e1c4599b9a8d1f4c2303ab40fe1e48c6d25d45febfa27cfa3e9ea8637ae495993bfb20e6f7782680b3b700581e028a23764257d278e3513f6019a467f220da339aa921efac5d3c8bf8b87946080eb422800400581e02af951766cd3d282f3f7327eb5fef00ff7ea0d60c3ee2cd9d08e4b235c442183600581e02bcbf129f4714aa664481814a7871492a49e4f039e6ab375dd012e6bb8f5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03df12896948d7b7bfc2ab721fccd7c1417da1aebf9f6e050c20e2c2e10a0c2caa03234a6693bb4efbcf3c9d1a20cc69f4e5718c418ea0e8565f62d39126057429b000581e02c8de89b64e7b7a35094a63168f84b44ff7f3dbd494c27c729c7ecfd039441f33797d00581e0250f62c29c798bc60fb119e91e2e0fa838ea1f3d02b168bb55e1e00f29544061501c000581e024e5e701fcc2086808873e7db4a144d1c4685de5e3cfd3d1b9026fb930f4a021e19e0c9b9ff7ee44003d6f96d607b82153c3674bf5645940c6fbc17dd4952d174bfbeff4df1898f85f203376acae45e104eeb5184ee48bad0559cf85b4abdc7886fda16d9a474b3c75a4802190bfb03cdc8b67023e71537224714cbb81d5d8ed3015bcb511239cca74e49f226a96de503c6e9617e7b8166f76655cca24ec9edf51f9f03880f3d61a9bff36694c0318467034082d3614f7b207a0d4b77f6bd2b19ffba856bafe20b98c3a500fbdb9e026439035e4c6bcee0f4cfcb28acf098cd771e0d5ac46251b61cfb05fd0c79323cfdad2d03f886d257527d0fea3cac0f72c470a6251f7bb0cf61f07cfa80536d76d1ec91a303c3ca3df8cc23686031f27e0b027fb2da5d216fdbf9e8ac047ec322c32ce4044d03aabd722a05510379a77b9773695ec8b0613b95d125c19814a2998437b9bcb9c403b66c28282c599245a4fe4ebde189a372de4f289a810f27cade3bd66c1d3f9ae803585d39f60e5a195e19fa1efe4133b988c88c137871cb5423c531b5e18ebc023a03c77abb4fdbc9bbbd69f2f3f62dc42a9af496751ed7c3fbfe213d073035ae45e9035b121ac183f1d33ab7d1b789bb5ebe6542c23ee6f10a6910d7412235fbb90343039f64bb16b7882e33a277c9371be6644945ebfae6eba1d05e2823b28b80b59e3703f90c3ff61e5c3089ebcec2125b769ef9fa1da82bafddb42abc9cc3e1b79c54cc0219ffff03d57cd9f09f2d66deebef7591794d14c1d1b53853e76bf68166495349e9bac6bf036da8d0350091b1b1da2c41dc61f63204ec7e61a925ae6773f184e8b2b705099e037b2c4bd08beb8af1a9f20d21cbc77b0138ebf9786f1536bbe5207e5ca8a0d0c003ef77c2823ce4a552f01eae3c23b231517a442b656e5cca79184c4f01ac18124d0376f7a6c0b5596234ee3265d8a66d55244d2e042f2bddecc59ecb335e9c90fdf80219ffff035bdadaaab4d94f52d0a8759fe334f38903ff646881af80a3febb496c47e4bd5d0380400fcf799b305f917a698350caae5a06e1ca7b8435235322a77a3f7858595f03cdf49b2a4f337794788aa4e0c020c677cd19106ae012da23db0c3de61a61a56b0219ffff03f8d6e4a61647072d24832e040bef2af9a0ce2b731e57237367852009fb614c190367e9ac27bca498d4c8bc6d01890bfdd5067a94891f38d21497614f5b50f4774503cfc6da440e8098264623dd647a4923fe486756f71d3e677bea7258871b0e9a8f03497e1624a33ba13127892879435259d0b7346a7df5ff2625ee39ba99d9d2d3b6030d87b4ec91aecd32d31b50086f23d02abfa69c6898ba8f7ec1e1dae542ce98b003a688e8bd4ebcebab6321487c999a5d2058176d6389cd8bc34103bde405d7142c0312c5635ab27134727d13b265b40ad364bd2ac2391dcdfc9ff5e75bf30e320a7c037afbdfc50d19617d14bedfa6c050c7b634338443bfba48c9eaa8aa524407a0bd03099de2107dcf1da5be8ffc3e1a10884774f7944d8affe40158965854d7cb7b1b0387c179fd2dee0889c5966a349ac39525b58fc5363229b8286a8f1774a9a547f903f1f41c1466c2b827d16ed6cea8bc850b1061f7fe87b6a78ca4088e1f371d78c9031df4ebb8dc3fc5a2325987d8ec08036416657137f603a4676f33b5369be5901603e15fc459b459983061ec452193aeee874ddff461839208baff7f59550db2be5c03c31140804715673e1e9892c0e686b742716ab89ba4278ba6b23a5f349251ce0a031dded9db491f3238c27823ab06d7672e625e9f5b28252f5e6fb311631a0f1a1200581e02d7bcaadff1d231c7ac4821e7fda032437126eb2d12e4318bc42bd66cef440280de8000581e0281f9abef6d2a42c55f87ae8e93c000851bebe71b297d2edf9e2007804a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02ef5b7b31fc350ff7cafc5c96fc9d0e46ed359e4016817a2d84d4eef74d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0390cd8b80447a8e8b83d2f1f230dad52db5c7cc9abbd8cfee3cccdbc484d6cad100581e028e9ffcf576b6c74a57a9a0905f9c684af250b096f0f69509b0e736afc55820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02b3dcd251883de9f0540a9ff198aa23297cea91bcf3fb5bd063cbd0e45d43f6aa2300581e0271568db2349428431020428b7dc033d16815125722505d85490bf59544440754d4c003d4f3a1270f25d91628041e1d9363bb3860286db6b8a8b147b942a416b5c0968a00581e022714569c1532be7ec68fd4b34bd9ab76065b300078b7d731626642908d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021931cf0396aa2a934cde9eb165342ab37ff74bcbf808c41a8446b3d15478b7c03b01820303e21080fd77e8d1448899dce55b5700cb7040729cadd8bea3090553086a93af3603768b64d34fed84ddd6c2db228d8d66be1103d198adfa1f6f7669992a7540d68303e546450fb8eb35ee401bc9d1f37cf612ef63cf2fe8f3981a19e53cf40cea5b9703dcf274613e93b000690706fd0a3105637d3a491d5a27fed2f092934f16206d1503ce75c5cf0bf426d29ff9b4b37c75ffe80fc937741b37a9daba69c7ac0d57c23d03f2e0d073660b6b53bceb1af03ab6cbcf1b7058ac2ad337ca840f2985be2346ee0374214cfa452b711ac78fb76d5845eda0e26f01ac48d82c46f0a646be6f3cfefd03a6717d3ba0ebc93a6420176ce26fbf883851992e7fd2c2506e457ae9efb3a53a038185d3788f55d679e4ffa57bf463b7ff66e5e833413c166885c8b3e3245d2c870358540c63c9c0ec8ed30d4624bfe76eecf9dbffad5397470a8e4893ce926d224f03d5596fad61a75844d83aad201916561e13aef04d56d5cb33b6abbd152ace2139035f534d515b336b6b8ff5ea2aeb7fd991ca2eb705008896e7bb4b8b58614068ae03a3c65e7012385ca764d9c7b23d092f5790d30fab12c82e1de02f8badc7dc6fca0219ffff03de8c4fd20c1bcc98437862dbeaa9a45cd2d1318d3a24cdff3300057d80feb95103e08ca22c73a4b13cf9d368c9bb329041d0c0764eb05dee76755d87a22c510d4a03dec73aca5cbfdc0b0f7d16d01c5dbb0ea941cf7ce3e7e0cd4f55a82d4b6ebaab035969a976647f7333101aafae184e0eca4e14be0158ef8702c24aa87b7fedba0d0219ffff034da04eee2b9fe0ca1a1ccf67f446fc5407338e611ac3afd300f4f721e63e223603e56570d1a16343b7f041b561077c0a35738977f25f7c81cc282e43b26c0ae1a803aad923ebb14ce558a8b10f34e74a4c6c2b2a1348d31bc22e0621f4ee2b9ba4c5031c0df5420bbee090bba9528727cc1689e79bf51706a44617aae5095466a24b1e03c07ebb837852b6ff912cc04a31920d78de9cceed3d937a944c0137fd415a7126039e08647f125d6372e3ab95fb60feeaaa93745a65a71520c81c3002d609dfe9a403bbb27db846c727e5a8155704957804e5514df535bc87fc9ca18d33b7d72124a7030bc247189dbfb839fb5c7e330a8a235cf430c8e7320ff7045550138d4589700f03ecbfcf6353fe6fce885c27e3bd9b2d0a2b4202bc7bd9d09ddcdc0bebff66ef2403463268b1d6543e27223be266a2183575256cfb763148d6b3fc862f1329b9c39a03487b86e757ed2dd4fda3c4495c7cffbfafbcd885f6f978570e715701cca908ec036a1b4b43bbb44fc46fa1875e9e0c8b508779d887dbfe137e47ca9cd3648c2fe20219ffff03f11b62c17e621ad7b61e08e63464b98eb6a767299d632f4e82d3f2a982d3a26603f2daf3d6554840f319b09c2f9782f30f0930870da9303ff324e1406a62e94ffa03e507091b8c27126b3235ebf1676f7f6ab53511033e63e11f8c0d6ac616a45002030a486ad7f0d1cacd0bf543f2bbd84a0c14ce09d54301fbf080b337aed9359715032c5753f6e8cbaaead7324825b7cc0527fc86298a9e561f03736ff6b6421a72ce032f4d7cf7ce7b45644d38412edefb87a591491dcb148cc2749455b4b6805635bc037ee162725ae97f58db6959ea9292db9d7890ddd7c4a8d074c92780cafe006f270310bbe348bace7ac704f2d180a43f3ef941df8d0482e66987d1eb5d7f277ab59603fd7aaa568f33afe60c3e570139c7ed10fa810d414bd1e95cdbf4e1dad9f934da039f4cd61c8686ab6902dee4d5c83386af6902f61de41abbf8d21e63c29b8d780900581e023a12ecd133b1fe7eef5ca894eea417681f871b63501d4350f8dd9280b95820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0314b8be0d909689c0380a5c311d347118a9e9500ed2d22500f192fb8cc7619fff00581e02d6d2f1c93b9d8413689784a463bca74f6dbfbe2c88a5ad19f34b8f20755820d7890677fba7eaa11348953858da5508e9f5f38d07757bb90ce00249cab0e7f700581e020d0f44eb533c3602173a5353505a1c042f74dd5bc421c80f1a4a1771924435d2afc000581e02af40238bb5500e5aeda413abbf1f7422b1892f3f9ae7efe015cdda2fea5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e023bf5b898085b20d5057015e048d961e36e8193f764ca18f15e7ea821094402625a00021981b903b5458c3330d995db24d3add81ce5821f895ddbfcf192a2210af0305b24f58155030a2eeb5804b935d5b8c2984b9ef880d3badbc441745e2f0cdceed830fed8e18b035cdf4daa237159583f8ba40d02fdd66eb06711890b8c5daf02c39e13c9d11889034839a82fbd65d1b55398df861368d7767f7d59cb0cd34b519649b5b317efaf8503f39e8087c3050cb7a1face2c096ae38557d1c101236a0d021c5ca52512ef07e5036bf3743923ab70ef078360d8b63bf7f1920c9a330208b24b4b08849cf9edee5a039b3ba158b5596c4d5bd20691649fb0dd19215b8e1d6e6a341331605aa610e480034217579cd087b5132403cdc97171c291d91f4d629e75951d39a06c8af1cc2a830219ffff0378399954d8b2d4f7ffdbbf7ba4db2c8d086e73a66de6b8d9042f8a97743956af034ece9aff1cd7ddcac04beb6daab1720f461a18dcaad5d1388bad9f359a94b3f3039651328d4d0c2a92d39cc999fe9c0caa924197aea610bfc429e8f720cc98afdd03aa1f65273f76e976f8f2e1c2df73fe2acea335266631ae8f46521fda8134922803ba1d40af69732540ebc81db1752097713415c7b33072e136892aeee78a0071bb03d337b77ef4eb4e9a7c6b01bfeb1877055c691d57becd0dbad0929e526704a25103e0033dbf7d4771a7cc1bffb5f1707a5fd716d282039bb7d757d231b18b6420c6038a8c94a8331d8a7bd13331073ce93a83a59a2c2dbe7536afe82a97edf41ed0ef0303cdc9d25b1f2710fc65f2055e053f4dbbe9cd1117cf6a23405a4b3a5645847a03473d2b55b9b5dabef6dd27fabf2dd0119e2a828d2848b197ab9d9c06d3b6e67e03aeb295a07e1f9707481382c7add781f41f9579a197287ae21d2f6d41b38d4286037ceac132e5553efc1a46d36e5e6721f910f5ccdf061a0c9018ee22e2f5aa2c97037c3afb64fc29656422a67d909dfd830f4f101563229216c8e52fa139c5dd1fdc0219ffff033f3aa91e04a69e55a4cdc2e02728b1b30b86ad76a0e3d389c1a52593d20ef78e03a6d6ca38e13042f1236693d56d86d0affeb7379a35a1bb542250aa17ae1eba8903b4a42d8f67251b32efabd4170bd91bdb9ff09c96d4c3fc78438e8bcd2d53addd03883cb2ba68fc8a721ad298e98d031281d16681bdd3c9d257fab658e57b38d4f40362d1b3b52851de3def702bbf3eee745bec3feaaf0fe2dd7b471e2265f7f855e403f5d483ecb14574b57c5884a434b0a55e4149630d85a83e28a08efdb5c02f6bb2036b103f06a8a00c44d6b5279a840288593937f9011da24f9fa71f5d1f5f3fe6b0033465193e3574c0c8d11d7511d1291fe698a303cc145478729e99385de184b092035fc658c5305a6222c2c8d138ef92822c9fb74f087616a5231228e13caccab64d030cb8e69f0a6170d0e5a4cb1706b7fae69f96af6587e9853f8d370bbafaa1b7ed0381d582c041fe6e97dc31c28f83a47bd6a97194e2cb4693147cad7ec53f2eecad03c5e1e2cd654385342efc2aaff1257a816c327a6c5afac7a12d3319d73cfbed3503fd2faaaec9ad31e895984f77e5b8fe8ee07102fc46643e58ef46bfac4c4dd99f038f0ce2a8d2668435b13fd8aae60abebab8f4679c363ad3b336e41bd6106fdb8903fe998a0d81c47a6e1b68d8cb2b49d0869a2d7e3144c8a7ac507078c0deb0a4f00219ffff031fea580da8c8ed0a1f5c6a66c855a660ea7c8bf6cefca94ce2b47aa872b7dab703d3013e6a7fbf1c915ed3e7b22b64d0382d664fbbf9919f92beba535c56fcb4d9038f2da9a8a6a756d56a2f45a75298d8c2ba56f064b1b66e3dcfa76d883a43249b034975cdae11fab9ae0a997bc3af88c59acbc828160c2eae7e4ff815a7ff2960c403c0bcb3dc44110c7440916c72e7f93275be9b907247732a3c7399ba559c2d20bd03de6dc126ee1b694f93d4ce02e0becddd4c78438b32524e8ab02e1f3233a4648e03278ca6b8d961b34f2c4908847a9cf5d60eea4db3a15b8bb87a7560213bf2f9770301a180c70a748ea47bf4c941605e904ce5b04d9c72d937d3f9c06a7ab974ccf8037e1384c76c4a1544cb1439f98e062b0d80e57d0c915fa3ea1535eaa2547c9d2103578c0726be9e9849e3705f03076a3ab62ef52a353c46068de6a026b02f0dc5d603a56e2c1b89eb30b6f2e38e38568d81bc617fabcee4b26305db9a3ae8684ea1dc03fa113db95ccdd21c83a6d439536972c84579828f6944f98a2ceb2f4ae6d8e4630363a78841ea36f4d5d6f2fea76d7fac20c9d17fa2e3566bd073a4abff8cefbfe10304ac20d299419c2f7a4840da5c9c84fa06d3eb533514474be1a801afd26aa8f3035d21ad64941a9ae46cd14766361bb9f527977580ef42e3d5366924d3e14faf1703d6bc1d570d260bc4401f2fca75b11dd66cf2ce7c32759a61b9ea1eab0af4615c03debc947581cec230f333bdd8df2d100fcf972a562ad559139e93ceb7d738706e0395d9991ea73d9949f35590daf34de5f39bc55851e8ec75a0cd3f9369f945c8a503c0fbbd004936b6028ece3c80aa9db47bcd883ae0173ba1a956f94e9566981d6703c9914e6945fd780a8ef12c0d21574f150ba1405960067f1bad271fde37a947c0035bc259a9255386159ec5e164b427bcde90780a5ab03dbdbcd465c0e6fc19863d030853a10aa26c9526c7c37f0a8427fbbc5a52f337bdbb0c031fdd99a7e24d7847035e5adb18a2479d05fc2e1490fd3ccf5649acaf2bea9655c334e3ad26ca21210f03110d8b9d3f4efb2ed8ce0c24c239f3cf539b5dad03c60b258d29ab9f31fea531036af88bd43addf9677bf62d7a4f42140f62af9932d719fe45cea0cb4977c868a00342a5dffc2a73ab09b8bfd857b95077664dda9dd2fdcd5fb86d4874e3786e7df703b3c506370fea6fcb3049b90734faf0bba6e909fc5464d31b0358998dd080b4d703a74557e99633cce975007a250367ecc7b124769d705536b9c8136b39ac46a458032e609d612925888132dc3feca84c05e4c404b7ded67ed43a02bea7939f987737036237c64470781e49baa8f36f3bb672c139bf75ed3f4e16189ebb82881bf9f60303a94ae2738d7138c48f91669391aed61ae6c6b59724bb18f0272cc2e7bd28a76f00581e02c0ac654ff0ea73fe00f1f575d462f7e82305a764b7fd98d7d003e143a25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02172f4fe1bfe1aaf1ac47007960703c26e27eb93255b1521dfd8ffe0d0e440378d5d500581e023e4991b94fc85f83e19f859268ceb851403dc3a0d0c02c05fcc0616f7d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0213e88de26395de49cad62763383e61a97350f9c7ed957153100945e9dc410100581e02407749c220d89d6395a1aac74598f31f676e700da22b1b346f09bf57dc4406422c400219b20b038d9493dcb7029e609c01adb3c7d59c7c6120169fe4214e56e58b14155d13a9e903d721d9587ac2a037c972e61999e0fbb41e04a36fec970fd005d2a00520864aae037cc61c486aa7feeb7f28bf5ea32da358622cb74388a68644cdb628059eb1206d0219ffff0305f5cc8fecf2ec2b348a0f2f1cd7ec416d454a5329de1fed99a49de1e76cdbb60219ffff031c5628b61a3206df944b9650f90f79bf53a5feff7fa24f37c9bcce40eeef4e5b03eeb4b94bc88016d00e04d013918cc961d7d43f5e9842d1b3eb89b526dbe14f99039b5b21d4bd8aa0edada505f44b6659617c538870529d1ab43990d90eb46ded40037408a44352d5a3455f54bf1c0700dbbf1561db9ff1ba8485a699a2203d237542037bf6ec4b84c20fc01ef1a63637a22efe5b5e69223d101d4f8db6879d9f849f4e030045116e6949af2a5a3597ee35202747f556921691a91027b1b4547ac81b36c8038925404030853bc0d7fc4ab1cec5a8246397d08a3af97b554d3419b136859b0303b9e98fdd1e12a8163f66e024d9e93074fcdcdf4c4e9b427d8bff014dd572309003fba43a2ce6ee92c5002f1323891607b5dedcde9bb27ac2fc81645111adb512d503bb49631a73309ef4cde4b6f4f72f094a54affcaed085dbd6f5ae294f3f999ea903a8e4f295dd8b1608d3ed799c16acf85c242295bac6c00a6e7c513c94704370c103ca9058009fb91cb7da94306892fc5e51768b000c6609e1b9b7b474aa9fd149d80305e037d8d3c10e5c1812cc69bf52b1336e292149715286317699a5d3e26da3ac0342962f06bb625d0874302291775590dfc09d1d5ca8906195b82eec0734e8feff0219ffff030bb0170d988327fee94b33e78f3cadaaceed35656c090e90be9f643a1b7f637a03cf017f0da69710de424428cbc411cc67f830ff770cc4dc3fdd2380f3175684ff03d50de5259ce0a8b157e6a6ed1da14788028ca11d58422cbebe83cfc9cbcbd5a303b04df73ec5c72199fd34784f7da1ca37f45c3ce9e93c55a2427fae440d1b45530305fbac809de1f71981e27e20ff4fd2f4f21edebbe7379c35965dd84baf346ef10304d4875d15889882441a2aca81b8fb8cdde6e0712f62096e815a3d6bf23eabcf036e665cee7ffc8f7de4b4d6f7f9e3483cc25399b0fcaa5d75416a0835340e6e4e03c3de742fec324deaf5db552f557c313cd290d8bb3490f8b6213ec7106aeaf9f803ede147b777dc4ffcc60673703efd537bec7812e437545e9d23140c8be35858a6039f442f6f39247948ef7614078da3c80f64f26bc41a115874415075f0701ce14903fe95b4c787c699f8fdf393f3b730a4de96d0c3baff10cf53ba756a9d1a94a877038a18917226ae92bf8095a935e3ffe062b570c504696a74cd483952d5d7ebce08031f4fb544630668a8f236e4bb3c7f5240d785ac3cc5cc93cf740a25909945c7690382dc1dcfc7fefdd47e0e14a43e304045c7741e7c9a97f712dac4b147131dc479038bbf11c01cb015a5a81eb556450207fa26469c3b959fdfbe9bcbdcbfd48a6cbe0312182e90afe09206218b90be2bd539616c11668cb90ad2e271464bac90929349031ac67abc3db6baf6635791ba1dc7869d060a1a30ac9bd1b835ff4a97906a855103b1302fd8eb0caf95f810ae946065f89f5fefa221fef0557c4c8f68e86e2a822a03b1edd485183b9151562b297798f969781c34fd8edde5802902310133d81d4915033eb3e50fb34b1182fb8cafff31a32001fbed153f95a0e00da01b418a20a05ca90353c8037a465f1fc24daa224dc7f9eb17797862aacb8f2402f8cb043c061ee70f0360e361a9ce945331628f957d0ab9cf170f524a87103abb9efcdc34d084ba2ed200581e02ba6135b7bde11748a54b61bfdc2a070776fc0f024b70e72729dc21e8f449056bc75e2d5a7abc0000581e023d248fa8e8dd7e5b204179351038aa7ac2330241e3efc03aee266321aa5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02ed2511136713991185ccc8e9f0707777dd704a9fc60b6dce17df94f47d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0261acae44b25810ab0d9cb145492372aaf0a93253a3acd514dc038d1f3c416400581e023a505781b05d0c24bc964377c266d0b37583d82da0cfcb6432d06cb041431e848000581e0287168aacb3cbaba4a328be7ac3f5e06c4d856f0111b51d10d8390e7409434f3d000219ca8203e240eda9ad48af2c2fb1fc21d3da800cca7f3a9a6dc5d8b9e2f45a6ad1c8183a038dbcde3cb6575778f62e687a0d85d6b37307d0a07f656301065af7b81b664f5e030572af9036bcbc418abb11c1983547344ee2924b8f13e71f586bee7218a5e43c0398c6274d5947e8a8d2433ad5896d07c37374ea7c6dff42c1390100cf9f577551039ced3cc63cab92738d27dea818f197c5f35fd81681f289bf1c475f1b267bd3b403e89656b08dcbaf19e909e3d779480382ab988af9d545c90673481ea0e369331f0346b0e891af8485b5447768d0b60f638d83a156489c44cfae38aa80e641c295e503dbae80d004f26217f4b9127b404e1b88c840cf02899dcaed2169a75457cc64190358dd42c3487507dd5bb9f5ea718bc7b60ccae8bbac903547ef3b5600d798bee6035d6f93cdb218802c4aa0f1a9a298f30f942c6b548d5801286c2335446d14386e0378ee079f983885a2f200efa495c07ca3f9103eade3185a28ed362fd772b54a8c0219ffff0219ffff037e9341180cad2a240becb8888e90124053d3787565ffb68aeec709fff6240c0a03cf4faa354dd27fe385a8e4f3c6ffd261483c99144ecb9f3b211721bc576cc3b7033a11e3ec9627d9eaea86b02273319fe7e7e056b4561d4e96a7bfa13db878ea57034e8457cca5f4e55dbbe75a37cd4e5355fa93e367c68f31698007c5cac96ceb690344ea896220885fbaf1c86f4b7fc471e0f8f74621a1297449d0c9c7a4e87e366803aba3f6aabf3619a571711a7797b656ffc8c78d2c0dc3688a0d96088035d8debf03e99253f36f4041b8752db4e91a46edb77ff4fe2df0c0fe839b5c2c601d46050a03d241cf42cf662ec262b13e0fcd4d473e62ecbcb964d56e2804e39f2ead341b250363b76e291e675a190bd1950730ec439ad36c21586eb5421e5d38e7d898cd5248032227548d968f0e61e1bfe3bf82d5736a3d79caf1754758bdef45e83f6aeb38a90305b587ef1ba6ace05b45dd21e0585b4839239d672b6144d6d4b15c6b8ff46945030e541428ecb14c40a8f1ab3ae69339a33297339ccafb4759b9ffcd5bf9c7c8c003ccb6dfeb42265584c7fe748a7bf020c855be50c386762f60e61385bdf3c23c6c0368f445ad2b17f138cf9f2bf84c6a68d78bda69505591808ac5084be2fd172e2803d9f01bfa7a73049ef2539391d30e075aa3feca11a4ee121de4a9b266d08d70270219ffff0389ee27d00d23b5a72ffce2d40f343e3232f8520feb522f5b1f2ecaa25cd0e1570219ffff03922a96df8506985ed0375d48ffc6652a89fa6ec1ae305aa208b86f8f59f5f2b0034434db94f73eff57a14c71ddde9b00184b2dbd99ee7c12ebdd8c062b55d65ef803e9e4bea3022b8b14cd255106fff65ad9f418b5f1131b202ffd504e8b35454ca00307e50323ce6e380a71c9fdbb5620b3b064362715fda3d7449efbe77073af6b98034ea9f2bebbd18e11c374eb8efc1b7410ef22183717b1187eaf7c599a5a4ffcaf03ed3a296dc52f9f6189d9218596f8ba2cce12a3ecaa21facbc6fc2263639a3c0703b8a03bd426b2e17eba3b935fd609e5a2f39d77f935a37ad490d66d145446f7520346d2f88cb496c01dce77ea92d3aa1fc4cf979caac982246e06667a675275cec9037f9ce56403ce70a6508f044639d46f8284b6e6c7e814608008e77cffbfebd2ff032f1ef0ae883cf5a3a0050aec7934eb94fed25fc3c3bc4f8e43de4a8f788c75f703cbd4b026b1d123af3973993407693c54d8f786c3100a5d6cddeb8d188543a6b7032536aee535635bd2d01f1a646e6bba8016182d8898220a6e34c0923b00e08aa1034072b800dbaf55475f4316ce8525936bd59f81c72b01846a1d789dc3ebd4a09400581e02f388ca1aaffd1fd9a613d2423f3fb1f4bd537c7526ec2e3622a152fed8495562504d33a338105b00581e02d581fd2e5b1518cd69502f6c80396bca0473b45490fe77d5593b9203345820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02a32c65ad6ca0bd0ef068ed5a19c7717d47910e8e59eb98bf8f067896ef43f8478c03f9f2da915978b1cec6dc91c683d34d02a3967f8677e922a27d2154fe5cd4394b00581e022d91193eb9309758f446756dfc9d241c779fd1a479b2480c84d3bec1a745012a05f20000581e025826df3e30e21844d52a873bf7839e23998f00ea50a995ebaef6e3e5af5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02070ff9774a66de998455dadb34eac77b7eaa1f1f0af066852d30c7341c4c033b2e3c9fd0803c77c90a7000581e028d8418b33b171f821ddbd6629629d0d3983d506da902b71adf6e36691b43a293af021952ba03aa58c2bcbc007e0e77802c81124e0266bac23762969de70466fa67b6550bb3da03d28abce2bad564e84f6cbd9743265db230cbdf7d3378bc6019ba98b7d54278b503eabde53958278cd1b4773cc82edfbf2119e98b6849ef3d5691e55df5d58a5ad703773400dc40dc3cc07c41fe066695212b97f306b7cb9d0372b1329d6774b09137038dad09b0841d912ee52c358c6aa4cc8f04a58ab96cd34a2ca9b3104e477b87a9039c2a528cf64f38e9d7d0321d67f6771db42e6440b4de90e120a2aae9672b281403d686b21256b1dc40ab64dd9ad4ce7bec9834fd05393bbc6f7b4be01fcaed5c6c031a66161e7fc9d5deb1d7b1f06284816faf9c9efdea83c4f2e749725d86081b6203342daf551cbe187d1b72ad890636418944c0e7fd401a86c1bb8b766516c53187037a4b9bee1854772cb8169941e45f18f551303a4f03b1d0d66c619546866cd04f03debcad05c103dce201fd9b41c9eff9672ed7b816f0eac0e2140b24c2943f59f703925f09c9fd2e7cb5da72ce423a3045fcdefa0d2c440c0c66ea56724e2f0874e00219ffff036ad507eb4805931ceadf1c42471c96780ea9d0f8e8a0bbbb2f209cffff8cd596035766b9ba9096bb9c250b2d8d994591e58b69cbb33bd45ef31c82306b914d377103c7310794e738b074b32b11060563573a7b3c59c7cb59452a97b38f50ce8d650a03a7efa89334b4207d510eafb4e47c0b6b287e925ae96a5b23492b7767b9caa7a60349842014a7a822e26493c78fd690b9ddfe904ffbeb73cbf1a8c92fedbf81110103e33079b24166e7cbe85d11a02031e0de2dedc105d5b336876b50980cae2723b90300b3c6ab2b384c8721cb28198a0e6564955e52aae7d34e953fff8802898f2a37031488ad415b62de84aa20d4749a2faff269e435915002e3b954b65db1d8d5f4f7036c4ab7679c4c0f0617de92481de74088e126616f0ceb97fd0d5692a6b1ed10060219ffff03627176e0d69f4061c90c088fad7347010f5a4f7a2dbd3f8874a4ae539ca32c28033cea40bcef941a179b8eb20d93c54888b7285b8c2d891d7537ca6fba138cbdd903e60d8f35038b0ab6fdcbca952b34ec560bcad22c93e33c780a562df9f1cb8d1d036f2013418f2e3af5f4a908e285002a25de0df3fede1e9a2b4858d35a52d324ee03d903e185586a9492c30c3782b4614f2ed553f7a26347a2c7c88ea361611e45dd03eb7203dd8d9640ade2b7e4fd487b9c5007d7010ba7c619d3894fe8cd05d8648c03ed5faa310ce555cf8ef459ef13db7bd5e92868416675fbe728f5b2b79372dcff03ddeba8807df3d36bc9a081fbbc81e23af16ba4386db5c23b91d9df4f6be28e8a03fac47e91db4decb94c0da19d1d333d5a5f94adbb3bb259f98747f122c6c53f4d03401278915969224d292a7082b48a3f54f642182fe43c358e343d6c0ca97c70f2038626befc094075204117d10b958912264f61bc47faf976b54165a607fa7900720219ffff036d2b7d215f966752864d7d7f8505f1fd31dc3435b6de365595cee27f52f48996037bc2fa235ccb8aa784ae00b2675f8713044732b74f1162fd807e173a3a6a83880350ea8b8988f3cad604d5e7ec444617273a3bbcafd564d76f9a26d70f1b07110b03b3accc7e747404e802b997f764632f005fb9c14b694b230f8fff470b5a7210960319a3353a0b0ef7e80892d63a6f7d21d0b887ad164718ab42cfece81a73dc07f503f36161856c78804350ac00733b2c2b3ec21f8f2c12011be0dc92b474a5b6543903b4bbd13de6e63d24bb145ef59eadc9c31ca5cde84ddd6ea9534b140e42a0f25e0398a5d4650e55219d78963fd65a91558d29acb51387719573a9439bf3f93d73e7037808857aae99bfc0f7a43bf2f2504a7c8c54741bfc41e19fef6ba86bb42943fa03eb54ab5167ca9d138717b2b92f844ca731d622b858dea48b82cb5fb31deca8e20370969f0bbf3a336b39f56f46c8d1cc244a8d182feb02755408d8fb370b7a91d8032b5ae360adc5c64fe9997b4dd5972c12ff0fa223c43436dc41bd8709b83c97b8039e8850703ac9e2412971e22ca5441a8407291486223fe835f387abd72ca2ee8c03aaf2354fee4c50d54a5bc1ef7db438050d8c16fd6fe12a5e029369fd93d9fd4d035a129020c1d009d7129c109b4aa780662f843b52ae19dbbe2249e49e787173b20382a0715f6ec533dc8df5d5f751ba229d0f9ac3d243efe5eb44e5c0be66103e1500581e02fb49dea449553290fc83bcb9b91d4b0009b5b9cb1ae8f53a5ae5bbab505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e021619b8bf3e791fac74561d5e3fa0a37f4bba18e2f5a27bc0015d18f6b3410100581e024f4eecca4c1411bdaa5d2e228b627e1b7d14cbca16378d04913587eec45820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02b86f6ced59b6fc4e55803886f2532736cece43ced754399ecfd5ad5f105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e026809573b7dccba7e1fca4e50ee80d12660407ed1bcce8075e716aab0825820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0250a6f20eb6128a8f146abc636b84945b2650822acd1629534ab4bac2d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0371a397daa6c014531f8a54b3c877569f647d932434335fcbebc22271f9d0c6a203e9c9ddfcded7407fdff8cf259450e49fe4f46fcfab3a2ce92111fb9a5b6e192800581e021c9311e5cef6e5f637d18a91974edc6961e5d4e63de45caf6fde894fce434c4b4000581e0298bb99f8885fd4d2e7df00503da723aa592b5614b69e318134dc3ff8a14402625a0000581e0285985aedf99b7b54bc7a28a938f4605721e3abf7e8d3303089f94301704305f3d802194bf70383681e2631479a858bf3ca104a067f24ba0a8ef0fcd6de09a20598935566387a036463b722fef7922b2f791b9464a10468815419e6065d1bcfdf617952521a77d703fd325a0a2688b97ac00c7d54403597d9eae23d874bfed1e40fbf042208ae68c303a25916694acdc3ecbad3273baf50401bb97ab2c354da9b6aeb5dd9c72cc1a18203f27d2e48174f4a61d1333316e43062ef3cb58ee446b355770ab316b17aa21e8f030ec792fb4da7a03dc0235b3846a253304e2f1ade377132d51c8d616b9028a2a803d0d9067421b34b672ec343272b54dbe192edff23f254df736a7f2fae37619fc103824cdbd0c9d3c0cda305767d00bf7bad16972a68ff8a60e845575cb88f500db80219ffff036d5940e3dc7ef150ef41cdd4b1278d1f3065e09dbbae6ea07d04adca5d9f79e0032407168bf73252e97fdb4414ffe0bd418e6eb4bc5486e0c83ae52ac930f6e6bf03abf97dbe42869639c666dcdbf90c0080649a2d70a6b687b4402da41a29de0cf30336b872d17fea502857cb60222c9921cf039c379b014267a85926171c6f1468e40383c93ed8c0129b7ed2cf187ae9c2330995ae0c410a54aa9b8d4d809ad9152aa9039f5eb5e7f3297f221ac60c6bf5894fe8dd9825ea668c2de5823ccf40a8c3257c0352990fe7bb963e68287e736c04d9082b54c6ad63e2945357cd61a803fe6ec0a90219ffff038bacf44e5ba13ea0579343a563981de6e85e3a3291f246554e5feedae3c7358e0332bce0a3b11be8ec32044f91e50d140a07031b35233c489377550f60192338680364d63b8608f781d17485d4e1608b4c1186f50f86f7ec30c2b5a4b418fb4d106803b86e3a4f540fa46cfdabbcabaaf28ce83b3211f2b3c427e097960f0a6c9871420324e02e9fb5f9eefc4435ee715f8c36f1d98b731828881205d8a5b7e3aa84e25a039c19d3dda5165a37b5cd3ad16a4bf968af60dd5d38e038f141657527e715e32e03547f027dcf89dd5c9a2031ee65d3b425b664bfbe799a69da5c261b9f699e87e50397006982448f7c5e20ec5105fc738169eed08081cb2db8df4c7bfbace8f4b98a03c85d12ddc7b112debef8f9ac5fba95ebd5d1d694e48b7d3d85e1b7e6979d6a23030e7ba4335f921fae0865f5211271785d121c96465c20fffe151344512a3a0f5c03feaa43bd014ab7dc77fa28814db894cfaa1de4ea05d79827395504422bf5c71003b527f2f586464ccadde74f7c1893dbd78f6fab411b9759db9e65280122dde04f030bec324ed6ccece182d5dcebd882b6ffa148f7c5e7a214d2d12cb3a0c7388e1c03016c1f14d710b0942ef0a31e2b6e1c791764a5c7514c7170c2b3f1ba86b599790219ffff030446bc855031d5a67be4578370c640052447a8fc0c9eeb9ec316a2077e1ec7100358d306ce7da1573c3d13e0ce20dcabdec85d8ae8817cc0532c7f1b90857f9cec03246a15a3216bbf1047739be6cfb1be5e7b3f98a8805f324e30e135005f4f486803796d489d0d3e3f84d373fb65f53c2fd2ddf9120786b1ef09f4962aefeb07989c03dff98f79c74567b9f1d7203da14a102b0854e4e86e4adcc17f607b577532ee00039f5fb1d501aad6cd2fdff2d9f1055ef8592189504d49ad30a5df93557e60ec7203de70683242c0a470a0318cb539b74b87ecc1a5be1efa85041a30d364f5ce1ceb03dff8d3c70bdd0e7ae5c28aa3bf49e04bc5f2aa6de39c82585162307d34dfa5fb03129de0c6f5e88afd255f0aa55c75b830319d442386cb2fa7e4a18597ce441737036f920917ae6df918dfa1758064652d209da84901e8b15799591429abacc736b6030433259f9365a77417ff3204be824bd00f3cca495e8b13cae445757857ee53770344f373509cde1f7e01f27432e2351f6827e84dac8a733a9cfb94285068c98ea603a423ac5e1c5ed620244650d46eb862958e248c5b627dbdc258b54ea1bd5b8c84035de32785ff2599fbbe8790c90ec38abb4cc75f6a0439d5794f0720ca40518c0b03e4906ece563c652859726cb3f9a814bf1d1b23458d0d7512362ce3a4b45acef70333b4e5be092976664d71a9b7e6024bd901d23d1742f1340578e2de368ad7e14503d26a30e8f3d3e0b6fbd106dd36ef37250e2c75f347bc1da2efab68a8b026ef4503f5bc46b4a521a6388b05a1c5d2a6f56bba7131e34d70444d1d10b326e59a00a4035bef9abbc85023bfea452095c2c9f9516d9c65b0e945835f0f3174ac3346d511034bec3cc680bd11ef9d905325e60688b9e5f3d90a10e221e571bfa64cd8c70d170365b307ebfe04bda5b0e91e3aed859c46c0b9092ba2a2914a33d1fb8e6a952bc603039c919e7dedfcf7822dbab06061f3a71837a6e3fea4564cbc99fa925da403ff0395205031e79b32ddce8e1d41f33e466ff6892097196078766d438f7055745b9b03c7f89a0ab8cb336744ded1fbc58208ecf92cbbf7d69219ae00f204e8d0e31bc8039e5c2c24724081950f9c1f846d449dd4e83d9e975ab15a34c758195c35dcf73603af076c2b0b7d02c6abe9dddd41309ad7ef4a8c1cfbd50ecbb1fab841513d26160353bf9aa3511afba41489efbc584563299e20a7a5f32faf89b9f2883b8dd2074e03595282dee1b8846be2295ba0b094ac0c017555078457fc2fba3193d0185afc5000581e0211110cfcd022ba91b57e32eaea2cd2d1f281222b9d308fa3597d14122a4405f5e10000581e02ae5ab13c9fcfd750a34f1efa29980c17a680e3f7b5156a2e98810df85c4526cbb0435c00581e02c1d3104c19f4ebd39cfc69ad5ce3c39a1ffcd7f41100fee6b1bda3ced4410200581e026200fdcd574bd07239cfbc39f116fd188925f866da8a89817c88f3b4c5440234934000581e02f00397d3012d04394260449b78cda248126ee78325084eb949d5e920c058200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02043e0a12783ac893527bbcec2cfc28f7b7b91629d42cc48e6a31944bb64405f5e100030b101b8f9e5660e3d067a70cc78bc511a6a144423eb797a44d3369a999bfada700581e025625a90712726ff7ed0997af059e993859a591a4a4c2092ee5fd48f8ec5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e028eb87471f5213d366c0586f118eb25dd644d0d72c111a899fb8d364cad412100581e021e580ff66d550c2a0321e69761c0f7c0f40dca950fde464b5353f6f3e84401eee83700581e02144b4b8f8554ffbcd5d4ac1b581b1e426c891ffac4cbe14a69fbabd1dd4d0c9bf16e93a6a46dad5800000002195cdf03e9354b6d9e82d12932a07517197c92c3724b3290eef5976ac01b247820366c77036dea98b143e6b0efc2f6d35e482cccf0ce427e20e7f9e95c54b1832cd54478eb0350b81a796c45db1bd58abc8bebe22e27a54e82df471706e64d982bd1561c17d90219ffff03d8ed1e94999b8b6f9d9a0dbbda57ee06d7e567788d8c4b116620bcf804fce2f2036c93338a437e8912cf97d5e206a343c796592d7a12e2024f08f07720293e3c400380b742c467446531e1f4d1883449790c461dfbcabf66feb0487548a0da3ae12103775e1d6a7474561d7af212b7df33a0fafc354439fb43043fd7a7db67afca443603d777598517a4bc45b32273c013cc6fd8f46995e8c9fde2e02d61e47b8129834a0301d094d46c35e693a117fecd759ab2b788fb9caad51ece8a38a8e2ea6a80d7d8036fd3f670d961557bcc0c2375fc407b8da5d4cd260ea0a44ed3ac122034c93c9803869fbdc6213627474a4d18efdbe30c12f4a982a50f03bb913dfe4ede01029bf203d1ce85191235a9bf909ff606771fdd10aef537f36793b213531273d0c951c073033844238178e1abb7541055a56be1a6e6aa01b2b5afa86096329eb28077b2b9f503e11118dbc4961e20e9bf8042c3a363054359f30f1833befcd5991e3f251bee7f03a84d1c647a25d6196008d1d2d3a897d3a1cd87c066591db1c44f819069ddfb940342ecbb9470e2faff4a49ed8e99c88645d1d48a142d128b7e01c79cca38ec9e220379ef762192a56ae5d0acdf43154e85d062ebf2e439875f8bd8e97c95237ec5b90219ffff0219ffff03ef492252039d61efbf238110fc9cd70b9ffbab15d5545051d0e0cc8a68f9fc780330f9dfbd24ba1b2a7a4fa18cdde07be2e01f5893120930a1f40e87e548e80f6a03980f6b74d07c3871e5935ec8985042015f2afd53ad9d3ff446fd3f41d3f62f8503551868be7182c0fd2704991ff6a53e84b5b5bd997d96b39515b91692d54eaca403cd8e5d7a9c1243a8aa4da0c509844d6b4a7f28451fc058c9f0cf8ac9eab1220403a6323f125399ba5ba25f16bebd08ed8956086590fcfb5eeb17934b5182f4281503ce1b40fcfac6ecda796cbe8557620c9f30c466848e94acd39bed66fb832f5361032701f98d03999ba6c7a55b107ea03c7a365efc9c1adbd92030623bc1a54b680d032e52f088f1f4cc3de90a7d0a7cbbc7570cfd3a8cd9ca06ea64c8170921d5d82e0300a9670da8b2df460600d2e36021d3dd65f92c32a17672690750f29e0b0cd5e4032875f36d3817b7d0033fefdf43a9d9105c379c768a347ecc64f39a8b0d392ad903a940807290292f8773eeeacbfb6ac2321e1c763bb53cebdc7a9bcb47b5bab70403fe927c09fec11a11869ad78f72959f8473237debebd00afcb4656838e66bf78a035ac11226841939572cb4e335161b0f8fdfae40248fb2ced02cc3f7b36917393e03650be19065b35ba12137c7cb34f4ab4c14c6ed91efd9c643665cf6d56f96ba3603adc312f0a829312efe39cef5c3f0dfdc72572075e96590e0cf5c2bbf1ecb534f03fb5bd1e8157ebbb29fd876a6d1a2204793f61c38ec48f875c60a9371cc3c885303daa5c8409cd10657eb9b74b25c5764dd0aca3bd7977f4117a1f8c65334c68c71037f82c394ca4035cf04610e3ee3f3550d071bf4bb5ff26dfc9537b6b5f616423a037b13fb5068e97c6d5bcdbbd7e5250e850d5e0fb3269fd852d4bfc2747871eef70343dd01e75965c056a7a8a4c46a3cf71714b540bce5dcb25eb36f47d2b70a560503a53c8cec73c280b5c8f27f57c4f2e60edc6dd63f0056206a202d743d5ed184b103339c23371b5c6fb74a68e97a00fca59eabbc9dbac9d1089b6565851ab7583adb00581e021cf40b88cbb9123f1876f955e5d2ba3ba4537cee5a928b48adfa0ba7044401d905c0039b3dc905389a64ca3a532d7686826067e8c06056c7e45ae58fe823ac7441b4fb00581e0276183c4aff588718bc0f00a99e13633177ee2a6bf7b25842ece6489798480de0b6b3a121d3c003b8753f6f6e862e579f7d6f0380a5a076bc8582295fb390f159ea211f45eadca700581e02b108fb887ae70fd1bd092ad85b14d5092669d581dbc443ca8ca449b5eb4583a6de58ac0219640d03f68c4e0661a77b8ee2a4492d951e08da0ee019490e9f3c1f25876a9492713b4b03b8fec39924c22125fb9e47e09d85eecd4a07aedebd3dd62a226ed0d52b85827303a5f61e6c6a9931739f174c57cffe96f933e7c1df245f8f88ab1f9053befab53e03e2af7054e8895cecb0f75f6946358f07f1982887bd6acaf9e7f74f65f713823f03a5f16c0fda086b75da6078e8d8ac9e8fcef52b72c727839b697040c1b3742a0303bfca02b7ba04faab3b9e783da662f148b0e6f54071668fb8548aef6fc09c75ad037e0b55fa5037e89301415aa2d2a7244baf1bad97c98521bace86eec9c24767a7030977e2ebfbb9e191906bc450d72605b5929518f8e82fb3ef189b8b038ba95c2f03f00f1a8ffbdc57c25d5e37dae61db8ab5b960596d8c240c34c42fcff025cd07203de497e606a468b2df4a299d13b49f4616afe58b7fc79978b90a2d4ceb926a1510219ffff0309d0e8443ec84c20c36fb0912504c5e2f43080a60a407496bd4a6db765a13bdb039bea55700a546303ffdaa478b177c099ab8c885793dea0fa0a2f6a635289dab603940e95ed1e310a7d189559305e2f22dcfad92dfe1a8c0c3a132e65de1d95cb8d036509b6b2e3a23c3f3183398941cb5a5659396d2c2a33f0cc2bd26f67097ee9cf03412c7a466f04f1b3a9a9d287a43c6229cea919374be258de838bebbc276c5fff0219ffff0316419f9ec448ffad8eac9f0041d9fba2683c89e860826c947391b2738df71fd50320a9533f2e94ac5d9cf61eb4dc9f4c9651d32851d6919a7848de5921c4dfb7b603684b61372fb628cc6342f891b63357c78efcedd212e84935390368f73d0d6aa403579923de48c4a042a2b0771e966958cd82bf51e10e19ae97e3ff3e1d09ddbe2c03f14f3be1c7eaf9e14508b3a335586de130ccc50f019018dfb680d614531a7d3d032e63a00a55e9e4386a857c070f86a26d522306cbef275ab0baeb1021bee7b03503475e7a0499f02bf11d711b393de72931d2d33867f24a97d78d2f4e717fc39c2803ce44fedd89545224bb2428e8d0981add7b107cac24daa2a64153af375347a53603a2e9d857195798a5b73f1e4cfa0cb7d97d25f580a35e525e3ef83d93d4c84f50036a1bb27c44c223e0f3fab4324f8d10a96c4e42fbeef655826f0c745f98304e8e0328c3ab3375e9907c59f0d03b1cc3097de66fa5501fc2def7547da889947a3f4a03bfba7cb6d2b82cc15d688d09a00f6c9654347528256b3a2dfb70cda02492d8ef0319bcef4cb881cf273644ea75ceac44944cc19fae2062601b2ab386ee06a543130352683f7962fdaae9f005e1125ad7c162d09703da72a2ad1e43b09a106e4811de030938e3ed45bd14bf6fc6dfa5a2ed071d001b206ba456485bf38533881be0eabf03d8bb05f67208ab918140b9ed51c6298398e976e18c0b5a69b2664262363408f403240d71d781b234d7b23f4a2099eeecbca15d051cadb04245f849249a2a48aa5603f37e8b8e2925c6afd06f988552bba1444f6ec8634828189800c52a0637e901170323db90dd337df67a5851c96d3faf1a081b9b670ae246310d214a9c81d75575f40349933837119a549b680279fbb4f79950f7c8d2f66574885a5b862aba10e9304e03d389638af93f149eca8b726d01f1b0cf941690ad1eec315e5b41c6c74bfe2fdc037580794296f81b60c60734ea05743440e19b959e1f498473b9744166a74345cc03cc43e500497bd89ebff1ffeac25d61f645bdae2aa43d5f3437dc27a65c0d0ff603c0f8ed6396229d851bff2fef23455c1eef3b1e70666821a4e93b75ada7321dfe0385b0f1165c6bf1ac4df7494d7ad8fa608bc959603d5de4ff8f6c4087c562eb1203f1dc75f6f974c41da436922a549703325b3fcf09dd3f9897b513b5e35be9946803638d7ba5f52661737e12f4699c2626b2792aa8d87fcc7bd58f2945a7d247485003928a742488f0727988297033cfd73d80eb0c551a73066bdbc27e491c4ae5f03803c55456e68d7454f1871c6bcf92507959bc3aabf273986fd508c3cc97ed77859f03cc8db1eee4ecf735d612208a6fa8275b84d66407a59e18231646a52c90fabf3600581e028ab3d3b10ab3ceac930788b50651cf303c1648c90941cf68832a987f1d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02dc12d9fd808bebb2abf239fc241de9929571cbae3bfed78a6d973e6e89441ab9ba7500581e02d0d62d779dfc5893fb7d7210a590350d9f746b6ca7b788430f6f8a1385447735940003b0f4c0b5b427a837a66498e6722a63925192bd0477dd98c9613ff8b93c8cddcb00581e02c0b944a279a2f1414a46c3a2dead713770351fc308cfaa1e34ad4c066d433df2fb00581e026e2f0e79d9e85fd1ceae3dcf678573fe774e2467e899461e702675ff74581912725dd1d243aba0e75fe645cc4873f9e65afe688c1b588b2100581e031fa26315bc43798e9090b4d5de8c977692d2fc289fd5153f1a50a4444043310e1f00581e039560432fb37af4c5034b434aca004b9c48faaa4f9f4f9b823f2aa94a705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02188100581e0285039b387fb9a72c40267468a9420d89b5171babf0509412e6465985d841010219598d03a7a60064070080ebdbc4a7cd92aeb33151b97939835077252bd721f4f1cd2bd4038c0bf1c7ac82228c94b3095f7842a5c9942fdf9930a6ca4488142f377a267cf903ace5537993a75c1902d20afb42a92a1a7cc685e6ca7bc579f286840f7de5d5820219ffff0219ffff03fd915e98443e745913f81353fbf2d1bed165eefd3da52ca02db65f0e2c143bb903b7910c938d77fa47219eb7738d53232280d1503a450c2d11cbbdfe58aeac4f3a03095078a859cd86d9c6513c48fd493936f4ae5794a018f66d4e57ac111590da300345eed538207cfc8b59f43c0658ad5a90a0145d5c4375d5677150f9bfc0775f53031f8e438e2a8aed9ecd981e917a05dce38b5e0d3fc67aa9aec35d65ff0b5ecbd403c4c83f6f7acaeae6cd47d562b78501195b4bdeae71ab7e58478bb38e88116f7003a90d0a70022212d63012f6d53e072d8b7131eab7ceaa30c49b41befde871236b039cd1e9a59baf0e1e6de6f6c6a6762a451d6aa9dcda5a691dc5ec9c740a0a65c7036395ec2ecddd3579cc05e4821df66d0104ead88ef6a753a05e981915fd121f390219ffff03f730e22f33f5f3c19eb62821998b35eeec81d16c5740b62461f9c5ba2ee1e6fd03d865747e736cb4e1d6a27025a485ea25d6ead69818908d79848df75d9bd238860343b8c51696181d8440fe0c51589e6473573dc0c664400706ee16e1c9b554a57303bd144098c28517d151547221fd4a06a970c2c61917f7f9f9e079e49242e47fb303b442f531876e16260ee09e340363e4d294835545e4962f74107e5b629fac6aea03ab40e28bd461fd245f4bb0f605defffcc31bb42e4127cb49144dc02764415ee603402891216297ce3c95fc2be652ded95b9e6dd146bf39d127de6a2d50733f935603fea8645652b74deb54e8eee9d38ce998a6c2f05bee5ae8dacc18229d5e93ab24032a49ed786464052301c5753161546755763cbcabd0aa3eea0ebc8b948fb1d0e203fd2a56034b6eecf7875ce256a42ad357fa9284b3bb9cf32304a9c01d82fe0e760331d4f68a759e7705fc096ab48809b9fd2d663078d3b9b55fd1eee1f1962e031d03e2cfa6d56760b1c5ea9aecc40135575602997a496872a4d469e36075e46072bd03fd91d43154cd89e90574c99f44c9a978f02934b90bd771f50a292556ef79ed9d03f2cd21cff3f610ab038ec2dde418ea69f95f6e10ea2356dce719af886706818603324ef88f3dd1c77ab8410e6e7f6a8c714321262843e3aec63a047cfc29f6c40a033259b503c0c9dc608140480b2fc208d1d20f2f2609c4fa841120825ba46ee8230317b9d8c3e4a0f438c930eb84de00fce25bfa4bfc19b4c617146068d749de571603faaf3445f18e700f5166ecd595f863663668e1da0df3644e5734ad8e93d27ea000581e0233a2f63169a38ab9ba563f75dfd48b003a7c32abf8586425b4b6c4061d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02805f147c83f9caa24c336141933e6e559302b170d39b2c153e2f13f92c430d1f6000581e02c90abe6934d10efcac5ec8b865e5da861cee4d312d39eff7bd9249096144025317c003500ee4b6e41c523f80028049ac2e2945f85c4d93050bd57f614e22504f19f41800581e02e8998696ff8bfe95c78150909745af5d84deb66fb4132df8ff0af7c61f4407e00cb6037f14afe23501097ac5281e4b28c7b317064d808285ea1c4ef56a8188d1704ba1021963500381b16d841bcea0caf8e01418534633fc435ce654613cadd92d52eb212fd2a6d5033aab2b66b50b27e877c6d7536c06103814b931d440ff1199311aa6b9b03ce36f039d13aff15cff1705477353d801439fd466094686a7950235d1e1d6f66857b68f032be3c0767d371b9d5e95827fd30ddc9fc55c27830c3c60153fe0f44eafbda724033746cacef86c04c9d55fa6db63ec10933244c9b7f3e846e44cf2ccfd823cc99c0372368257bdb55f1324eb1aec7c0daab0643e8617662335a26249e9539af0198f03a83274e37e2a72df0dc929cd113da2bd9f8bee59df9489491d7d1946c3b3f4300219ffff033f8457bd1517c134ac4f5285893ab849250c5e76b41d67489ced4ab6713a9daf038411e9f3ecc14b4b90861a1766daf8169c4051faf2b927729c0df69daaba200203a40b46048687968bcf663c80c9e4a5f981d620a9ee5c18c9a350959365f663d803c59a914bc794dfa0f61e728380f9d1fd3b0b88ac70dd0da48e3f4c7dd85bafc603615075849a35a3ec066085b1e4da8945ad2ae6b5eb231d1729d7e7313efd0c0403a99c59dac6bce1c1fee24bd7905c339b1041e1e39584160afa6c1e4c90e060b80370324b3ee890dac94bb137698ca2be78a23d0273eb0630af3289c1e47f8d6e2903450c9d3b1196073d7325d0aa090aa9f96d34762f5f601ed100c66eea726522fc03b5f8cf5a1a17abbdb0ba268888de9385b06b439bf387072247f4089dfa9cfe2303f8f8ab05a2e98395b439ded2ceb14f704606d7d075a040028413066a5a62448d03448c1afd744bdc35aec23fb0483805b20da63beab0a61611faa0dcc21a52e4630357c2880da19afeea263555dac6fc9d92638b833a2ad64a9f8ff3bc318684abd40219ffff03d5c9183f11b131ba0f7f8c0d5e0253c946eefae2c92f4200ce7d8e4eb7fa4dd9033dfdb22123bca910e7ddde6af110616c42837c420575ed319d73b7291c91bce30363485b8540e5367f03b8978e185a87779546cefe867454860a410b268292a36203493472aca72d11284e36aa29e289e5278292cf038ab73c60885e27c000792f9e03402d6a7f538613924a45071fcb067f08dfe7da469ac1b1ab8c54ed48400bcc9b039bdb82c097ae561abbdbb2bf13581f770812d3c2514797aed0c44d4280e9a8a30306c8b9212792ad7e4e4d055e9fb7e71754447bb6c3d7382e5bf336b0067751cf0322020b20e55b2082d37e3a22f012597456570c6cd2c445cbce3e817bea6f99f80366b38b9e9f48380acd3a3c02d894fe2eca5f26d2ec08c06d493a82bf90af0257038150bfa54579c6ca829d131ea71db6e83e82eea5c95d878ed477d8e72f0d3a520219ffff03c1fa6c5228bd0abd91c438bf64148911466c55afe0c26bb91162f31ff23ed15203d75cd879a7fd5c91b1344fb4edf871466fe735a46509da54bcbf439955a8f2370362a07cce64e905b3f339b028f8bc575c2219cf09f69ca6b2eed31fc34f875a1d039ac4d3e3f0a4e4c1c6e121a6c8394c5e9ddb78548c5c4c55430883e267b155a303e02a5f993dfce8103c98940da3dbcc02af2bee9aeeab0d1d1ebd5fdad333f01b03638adf6059e5f572b9a59dd6f36bd4e89c797ae7d90e7c3863ca88b5ba2d4fc803ec8cc321f14dafe6b498e5caf527a6efd7b70bdf056b1f03d2fa0cba4055ba0203eab87bc6a3cb0bfead6763b534da31c6c63013f000beefa0d78963950bf7b11c03802971c2d582826a5f4a151601bdfb4af19c1149ca7260763076a2704323e343037c1c98c7654dc5378bebd023a3e01a41052f53e56c992633fad142cbdb99191a03b9b1d26c6856490a781509ea8665f0035846b35d79c16681a9e85e0116cad2d60348eaa83c21494aa551c84fbe0dcb1fec588113cd073c7519935116bbecd6bf1903801b1a68fe9239b2eee7888059b97d0b15e769e62a8f976533f4b74a09352522033395eb3e3daeabd08b046bcfbecc9ada7befa65dfde5dd79e3397bb7db2f766e03726fe2edfe88957c9e7180e92f7d2a52dc188feb1b663d725a0b23463f28371e0317943602e2aa84bfe3f1de80d8efd45a66d792f94fe57a3b9e77af865990cb8b03aa71dc9be3494c0545681c86ae43d728966bba11fcdecbed07ae64bdc1d7dbe4039361676253214f1676bff4444fd0fc5511a18a2c9bc7810e343aa67d0464859d0379d129346d0c37d87369f32102a16f733fca02845ebad43d4c704b24ec6450150321a55b88f7a96cadd08dcd4a03204b4591c96eeddb8c63b81c40971d4420e1ad037d47b5bbdaa01e6c7481aa92ec338005094b3ebfada84c811cbe1f1b92c3814d0342e1ae3b1fb6c71b25dfc624c0dcd99a16349ca32dc81a710b7a9defc4214f5b0391e61b342945d1acc4a3fe8b56c86e7bc67288d0c6a388e7cdaf33b7cb0a380901410d03a6012757b7327e6c965b9ceadbf1b56ba18c86d4ef8ac54e656875caae0d7f6d0301cf9c1d7481dcd126263767d4b1246af348228655aef886a2ee1ffe2400bbeb030bb149226a90e0b28f632515da4c3ced7f7ff8a626bce34eb265b8d4d759712a03c092f17c4ee2e90105e92a627ec20f9f0e9ec5324e2280f0a4c197d1405a3e3f0375ae7962935bc576b630ee6edec5d9dc6032a45e09109764bc242de3ea7129cc03d91f18eef12759ec5413a7ac5a30360c7dd1b5e2e5383e42f98f7589a66c7da203a1ef3c191d9bcf439a8287fcdc266454fba206d520f5e7b9f3c5610514f9ed35032774d95230b0bbb1f390ae9e94e637b9fc116706fa8c0960b7f047274826d0b503942c80f2ec03227cf57e62d92707da4b2e3a74e69af96cc36c049dfba3d6c29803f635e229ab88330f4132f9b55e44b7b87ea81a7239d46e2ca069bdcce2399e1a035d36999ec5bd0e48fc3d8d27b7f19b0597d32c461c950b3adc7bb4d835fa585503e7de71b01747ff136b5e4a486002463f9d449e4b16bb3be2573d3a8f74af2b960361aeb7352ff191f8b46668efa161db97cd7333b1feda6fec1979ee4a6ba2738000581e036c18c1cab4d7409e61b9003e3ce83135ae0091fb5b0f50b67648bd96605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0302c1683b3a20be13ecd82b38e28d04c6aad024385c47923440c06237a0451cd8952adc0219104003178450f724fb09a2b6ddd2147cdd4b3b05b23838fe001e6bf2f027ab2bc1cf7903b177abcf5073e97fb0bca461d221b1977082afbc14a0954758621768ec506fc300581e02019fa5ca429a30f0596ac16cb57d63207462369433076475d44eac362b465af3107a400000581e02e76597762512a7b66d8c8799b640d64a6e75ee070e7beb3b4e89f7f3c2440f95f1c800581e02f9763e4bc60f4d2cd4876a11e4405d28f02431ebc9844f922f9bc7654d4707a11fc4d005c000581e02e21dc1a34f286e3296876f39408334b163e0afbd97045b4e9f12297d415820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ac4903887cb24846e03190f969d898e69dcc08de51f015d038f97e127d5f0f4d38f20b0219ffff03843a071e69562021d0d5a05ee5b9445d7ee50a15cbc566e1b2447b4f363cb3d003ae11d77e175ffba5f2de7712295965cd36371f511ea40817ed4fcadbb3106df50324de79a615c73847028e1ff37b957353acf3df6ac7bf3ddb33ffa78dc859b62e0373c1c724055b71dc22f3f7718e4214d70c73bbb094231134f14a0bf047a16204034b959330f3ee5b7c52d3d2f64961a134d3b3257dff0010da5dbfcb39e0bf3c090386c26f2777de07cd6ee6e4051ebb93dd0bc8ce61c841fa465b26899e6de1fab503aa3a5d0c0afdc20e5f5896be649ba5e938b7ff30774c1c47b3818d47b74512480219ffff03acb4ae9558411ffcef421eddf5f1bc2ab9dec0f23f2fd0af72a748689b10335a0219ffff036fcffd213c334904b8b96f88ae9f75a454d324ab353a2e31c5be06c224696e95037ad2379996c0a9bcf2f6085f7608d008e8d4b20e25d477c5d34cae1eaa913ef303062a2188fda2c65ee5d3a7d6f636a72ec2039ddb03d3c16452fecb4139712e0e0219ffff038b3f975c4ba21c3142e7b8813fc8690c30a64b3080a608f877841e3c08102ef70386164565ca719c34f191c79db59130885b852fe021a10c01f4cb30a2d92063c303ba0bc950aac0faab6170718f70e9e0d0a07571d078697b66c6866b61cd3f8fc1036015fb35516e9c8b711590da132c159578856b3fbdf36315e9906ea03acca28b03a873e5a3e1a186127ea8dd21124e7217c71a44f658e9700df563b46e35748457031d7eabe7ccf1c593e5a771da11ef17dbc1f79ff2a0ef39985d14be1f6182a742038798efcaeca2f1e835ba18c60a8c60f06bda936d7bff7087259514c02bcfad7303bcea9acae3a8f7649d86386a6b18c2e72552e53c6e4b47b48b175410c2759a3c033631cff7989095f25df63b7710c274be02c4e18d4a3240944dceed715ecc3f38037b0c7e6cb63bada1772a334c48dc825fcb9860599272eb8da70db74a198380c300581e02b27035b3e7f02ba18ef1eb597e17112043eef4ac583fdada72e2b0da42465af3107a400000581e02126c47df4ce82f0550cb543a546a86c29eec8c9d3914a7419175999d564308b17a03b87ed218f732856ce2b61a8ed444e3915df1e8981f80fe3a57483bf5fa056d2c00581e0272cc0ba13d0f3660f6220a52296c35d012cbbdeb3b231e9e76c29eb4eb430f424000581e02d6a1a7025485eff1dbb8489802200e6815174fbd9c4c19179165bf11fd4cfffffffffc54e25bf4080000031ea336a08997d3e0ef1df61de4b83a6fecb80ba9c080c1ac7de71158b5a66457031955d62cf24e612acade91770d002963c9b440e79b868cbf7488c3a1d358d37c00581e0288066a56b3d75755baa4d19d75a19362737d024020f5a8688d3d8034334302528203ddffb44b60b3d83282af2dbe82b006337c5cc8dc515f0862e2d4a227bba05fbe00581e03808048d4b117525c81f0574938c8f20c4d21a768b75285c527305fa6f04422b8563700581e0377f83f4ca51448522748dd1f2c3fcd6a8e11de0b0c009670816eadac305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219400403c9ae6f0585da31c7cd16597f333e5bbb5caa8ea3230d3f3939c3b3b359deb28000581e02f3b3ee137d7353ee47746a94a2769c95f44262aa937cc42fb39a039c9a438168d400581e0266cbad2e8f3d177320a3668c3816bfd864aaf848a52e4368c39b39c0b9430e0afa0219fe6f03a95d9fd651b266628b8dc31dbca4805fa8cac62b547a6b6c85b3127e696d7d9d038f22e37216e42e18cce1394b9d0894521dfd12238e082baf94ed69c5793d39e103cc53e32003432d8641cdf6000a228b018039b68cb21791e302b895a461ffe8190378fa12978ed91827d747477cb7332929c9821945a6fda39640b84336df1974e003bd4acffeeba0f906dbd642acfc3d961cbae5837eb6a777a981ba24826082223903ec59f289c0af1cd746a7d8fe1985ee069d3b87d944ac919d52104122f7127708038410bb9914c392f91bec29a5f95c81ba3b8a4f181be790d997609c8e35a342f803acc9325a9e66105477ee2237baf8ef61f657577e70505f3bcc86b41509b270000219ffff033a5b1da9366206e385d14881bc8746df7ba88fdd43462375c30251fda95c6a8d03d1d14561254fbb263044aaef6f36fb2f86541585467a067917194f93ba9ddcc8039288dd805d516c4789125040f22308dc71d55390e20e6644bf82baf6e245b76b03f0ac46e761d280ec0abe818c487fd5603a8a6110e09a0c226ca7595358a46da703009870c98d8d97220a3dbbf68be3f972ce4a7afe63d0989a43f6a5d65348a0c003792c434c8bc3480014b93ba2c368070d94b2a58f3d402ab160e58b50b861632203a238d16cf6b6eded369452a8d73c0bb2df553b89a67d8ba5a9e839efabba530203e4c63457e794f03c73f48e1aef14d756da094e0b72af905fc90edd9707d80c9c033197dbeaf2603ecb453cea4a6cffe66ed8b4fe473c63a1f6d5675b43febc75da0308414c24788798afb309f5dbb321772ccbeaa3be83fb82c1f23ca4d7658a0895033dc1c8cba8ecdddbd7ac0afb6547de4b0d55b0c19ed6362d4c6cca216e3830d503efc21eda20f32760bb6b734c9b5ead5b4ecd834c26124784a979c2c4a71ee9310389b3c076e698365fe71679db9c83e649247add2408452c4dcdc0f0589f3edbfd03534afea3ebeffcd6826caa628a37089e9c289fed21ec46d01a6eb065b421fca603da30332f1c4e357f34621f45d9d006b92e2652d0ec6b288b2f78b21b162aca990219ffff03627e7478f79bc3fbb8627351cecb55a1891650e19d20926cbfb9f76bb4e2217b03a81f4164f1e117db8ef8fc825602bdedc92c45fbdd0454febc5c33998ddfb62e036a3c8ae7cc97932c674b8e212069cb594d401b6ea43ddbcf2db8482cecdb3e7a03e1261e0d02dea038c78e9428615c16c0d26d91fc93b9e74d5db84d4b1d791479033aa1ae6a6a8109be250611e6dcb3db5da217ed1a3c23bb456fc3fdcb03adf90f035edc06202dcffc88856931067a8ba424dd99986a498edb048dea776facc5892203a3fa9cab8b531f5d5a35c51c35d609d946b2d0b84cf9849dd7189114cc4d8b4b032b31b1fd514b76ad683113cd21d6832f064a2eb501c6dc3889dbfd430456a297032488150904c846c66a2914c83e8b91d2bad5e3ecf7fad0f9061fad14be32ac66031e85d51181d6fd610ddcf74364c9e8d50be3c603583cfa7a78440b7c5d63f7a800581e0221662a8c3f245b6810d191819f98cf4b41949aa3df54ee182ef3ef8c485820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e025e100d599a318486412dc996c7f1a0d1a3c5c235a947c80e29d2a4a66c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e027fde71aaa5271fa80087508c2143312569d87225df0446226f0143e7a15820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02db776a5950b37920d5645639ed16d5d933fb52a10807b9f7a55462e390430f424000581e0232945f90694875d0ad6d597f8cb8de1a1a724e869d775c1a364856dddf440101901100581e024381f24a9ed3317d0d743b9f0206c371f52722a630388bb58e46d500224334f85302193ba40316af10d8a82747619b047f5a8620610ed036f878bf594a56cc178155ec759af5035c6f5d32ee4c913a45c5e5857f5c961d6adf295d62ff9f099f7829f86a7e6732038a8e44f75dd75152b13f52cd729d471c7126f394ea6198f3fbcbc6ce62606f42032ac9c513424711c8f2c819659374e430050f3cbffdcb9fca5a99b0b7a67cb5b103b6f286667b001bcb0f4ccb081da3e5eb4225352971de3af57092044198e0218d03cdf6474b16fbd3723cd553dcdf883a84baeb3651389bf9357ee2ff07aaf92fa303d646b1986e81489e669a74ba1a83f081a2a25babd190c11ad28eeb518b1f1a9303186f47dba833bd61a8a73db9a4c1d7ed4a2dec4a45400c16245fab86d7ef22e503f3c680b636b036c7604806d6088c562bb6d3fc9b8ecae1c4591b36bae443a6f703f03da3965744eadfd033b3b81df4a0f8dd9bd973daac817757a5dc31ca329430032963da8af87c855b42e434be68710a246b9933e0c8a3fa0dc09a3516e60605a70342171016956f759604d1ff458182ec61ccbe7dabce8f3568c402f4ad8442e31803d41182ce471ae8ac0ebe7ecba6a651c942f0950402a921d45ddba345b179af5d0219ffff03f4104a2c5063e99537159ff88dc8f0182984bf90f5f65934c3259f3bce1e58e503e6063d7ff610b3d75018f2b686ac181a8b51fc2e655f929bc2a9c769e4199b7f031350795a815a31b6ea269038c5af88cf8d6fc3ea2f84fc602b7b85a2941b427d03373ca142f0c9af0822458f0ccaa7d7a15ae9e10be650155e9146f88f94aaf7960306857ef1ed9d528f8d38c8a0beda1269509fca623ccfca3bd80c1ee12593e31c03e2309676a38354907e10e3e1ecbd40129a3d6d0b78bf9879479a264356fd321903cb2523e68fec00f3079f6f72548f0ef55fae1c1224feca460f9244c907afca3f03479ccf3c6005fe9e6e946311da7ab617179d5ba0c86156c4c8b1d9b39b2fe14f039f82653fc29e110840cc6b3af2ad17c1e9b21f5eb8bf62cd1a1b36066e1113d503c78374ec4728b34136b6bf3564efa3ec613ba7e51d1a718b95a47bfd251eb98c03a0d2dd0901b78f2711fbefea70187452bc50041f0d4f429b5d3f7a9f8a2574310355eca74b9ca2bcabbe1c71708b90f2f2b28c9a57f9d73e7b5675f742c126d61f0391e2d57c1349b69ae78c3995628e8729992f76881db3d3a03bafc7b2cabd21d4031c57f27bae1da5d4be80e6c41dfa2b3cc4cff94312d40e83b24dd65bd59c40ff0219ffff03ed9290ba2efc06ae6d5b0d7af3b70b1196451150a5271e0843cd7cfd2d4b5e0e0332c9fc94e75788580ef58e82d3eaef4406830ff7b1d14f80fea5bfda7263405403334f4013760776577cf6f2c4e08c0f2a57a43b4548cee5d98683ce906d7c369903bffaa6a91ca404c7c669a6cd1c5ff914654818aec74aed6baecff63e7f747c7403c1d1ac7b999a612ea07d21eb407ecb0344ed45cb6143fa620e2ae11dc6f19c61035419ccb7c06e29b1a6df337bf7ed47d5b45ec2054ce3bfbe767b1f1f30ecf9b30219ffff03e3f08b2d624d3d930b69b263e366164b9c4194d4ba790c1e521025eb24ae9df1032395bb429859dd035ac20def329d3a4eb19805342e343c2e2fb940d152fc2e3e031b4b1d744798e92447936111804e738b08c6761cf98340bfaa9dd757154148a403bce8fd0e2a9cb2bdf6f9732a9cf5e4abbc68b9b86218ba73fa027f68d571e19203d5c932cf6dbc69aaf7dcf1300e5bf7a2b701fa63d9edd65cf83150e5bb5455d903343591af22d9f92efb01b155699790f655118cb387e154d13aa86930503efaa903eef966a5c9b40d75d43d180b448122de235a71c821d493faa22d58cb0ddbec0903d759db06b6c03d6e825940765ed9d7147dcdcf9a67878a6841319e9640660e0d03258fc23d44e3877baae731e2b458382470e5bf71c283a806a0a873d766c043f5039cfe7ddd3604ea4ef0201e54784e5b3857dad3c2cbae043f00abee1fc1e63fb803afb6b352fa5e8b4ed4fe3c9e73b336797a4435fc0ec8d5aa1936781501ea28ef03131e48c63b9e25d27146f5edb04e3b56dc7470ca6452e17f8e66ae56339c036700581e02eb107981154074079ed1a244daaedd3e7dc733ddd54533fb141ee7812644059a73da00581e0227799ccc27ab3713000d47df4edeaeecc8e66ee9541ff6b53833f33ae25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03fc8f2547b4983dc9de87b04b4a0ea455c6035ffff1b601d602b8c3897b5d49e000581e02a07f87f170c4198abb6ffb9bfefb7cd63d90e3ca581d8b32ced6aced894427d45ca200581e02367fca5a1143abb41d64ec2fa1fdf52211ec25b9ac95fbae7e00d7770c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02bdd163dd927bf06fdd4cebbc2c9155737d43732909da24d94631d3e5b1442ad6ef5702190da403139c6219de5afda3650e7c9da1b589385536d2e94a4d277686efe022ec363e9103ff9c8ae82c7824dd9efe48d2b9357ff5f670ec9004837274af7ab9c41402888603e2d612da3b07f8e4ec8c9dc1978a271e8251095d14ab2899ca1fb74b2d9a7021034f0d0bbc99de20b5aeca3d396ff007136827d21e22c5ca2d7de44304964db95a03e573c199edb39621f2116fecba0502fce1bd6a9902d09f6ce0fef0f994c26d4a03eb550a58dc6ce5ab1766a4f0448171cd8e69d68231a78da1a03a1cde481b211d03b053858d85c3f08c3ce062040217239cbf207856e4d4c33142d58aec3d6ca78c0322baa2a99c290152da4fbc42df3d57cd0eab84cda48bf74aab530eb18023d9d603d6d968bbd6914b935651387163f01b627f5c0a71416a5ddb6a6cdfd7315e03c303c7a7de4a3de9e71dfe1ec709f177138d9982c9e1088d625b9ca8003fd829b4cc0219ffff038cdffdc208db15df3b5c19c0aa7ee186a582239af88f11778d3e2dbe74f3b51903af4c8c480210340624ca6517a25ed2d8c54fe54e632ca23e237e8837832acc6c031b180a3d0a8b806c5fb05754881278f27a8ca21030c95ad33c534bd24e6086d803dc30195b33298cb636fb82c4123327f3c748cb4c271835049bd8c3da7d2afc0b031d3cf8a29963269355f2eb93e2cc90d995a8f0c0ae77d22537f7ba97bb52475603fc3d8465e2beb57841db67600d5795a986d4bd2397129d3094c2b3541bd47a250310427d0f246f48dcea2cbbf1f156c4c62c8342db2c2c3c82d5e08fb3ede883340337de608928e2fdc2a7c31aa0cd81c0ef7b2e8dccf5c3c17b2b6b2c71bb79c84d03f0ce48869f9fe4a59b4c3ec5e4988f31367004e5e598138b061f829dc3cd822903e5ffea4dd0210f82d04f38f84f3c2592ac5ddff605585a6ea3563cd221a0cd2103d192c7244879bd17a82bd69a93d203ab61d2eff475c120382abcd49da73ecc4d0219ffff033ea1e5a0dd163c271cf97f876823322e3b4802768b3c8331b650d719403cdd87038ba756d397d7039ceb4e96d826b5c21c0bc20d3380fccda6d72ca9ea9879bc200357b96c5c6303c04c2d486c573b0695154e9b308f15f108efb2c58419338ec9ad031b2dc50b9b3737961d497e7b79962b750f9eb9153233bb7e916d8af690a5340e03a63bd941e9ef3719492f85b8413a6b2bb7dd189236cf9a60d13f7d15334eeb580310c7bf96768cd5ab31b50c8f53faf3da5f3dcdc6bea63c3cb1d66a607c263da703764cdfab3088ee6585bbbed9a0727adac3014c9b16e2ca3de01a2bed7fd2dade0320fa2faa37c5310ad356c1a2ac3b512afda17adebac8af79d10d2a63d8fb3e0b03df21cccb52148cd34265ca84fde31e69b9dd69b15444f10080c0144d5cb3d5c003d3cc3aa9b01a5ce631a684b7d4b5caba24d4dee5ae6f2efb18b5356cfa76d8ef034021ef774c9e45642c89b4f50cb132cdcf38d77fe23b1b489b3e10aa1e79f86803248ec4c25239ff1bc0cf6dc525cc8930daf67bfd592175e8a16b6bbdc7c2a34803bf6ce7b950965926023199a08fe86a7054ef03785871855345922175c0696a1e034ae3e8e2090ce06940726ab242592899b3af7c68d1ffb4f89e1e2e37d4a189e103f1209ddf1071fd5a078f57b85523b1cfcff0b680b80be0c978cfbae802ac9f4303fbec8c877ef46b1c14545d000d72aff2291c7fc32b1a519c8984d97a653b767603c9e6d4979a39e2b22de18c4fe25c7851385fc5f9796ce69c120bca8096fee1e003bb6539d1adf2e0e5fb4739747bbede0ce439755c8293a36c8f26e407fca447b103911f666ba4b27a57f6ccd970a50c05f6bd2a4b51426844a995f4c897c1b278ec03f7f56871b40fff9086c6cf7530e1999532f333d34db45574f405a652adbb08e303ad0fd118ffb6e80f5047f4a91a4d6310660480951b85d2c6309f1b9d7f7eeaab036e6aa9180087431706f8f8cef6e65185cae22896f3fa54a85a213c43e365323903b5f29a0ca30d24699b03307d967e9ce314d790bdce3c6ff3fe39d83a1d5f63ff033e16696e680ac080a67b16103de5cf9f95c631b2e922d3e97923c6cc0fdb361903f5707075e9676f7ec0b92a238c18f10723991f09e84ebf0195ea7b6726ac567900581e02e23ec0470d752e40a3a939e942ed814f3f4facf93b6786c7fc4fb182784405f5e10000581e0213429c25688092ba59d556898236d165f0605ff64e58dc7e50c14677b24305146400581e02716ebd90fbdc982e51967767fe2b5c20a3ab19e638312f1efbc455923944047645e000581e026296df8196a61eb32928003673e5769fbdc95e6b4abc54be2c1e8e1c5e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02877f18deb79c9e992d08f0be4b1baccdc930d6351d59acdad61ef5e33b4408f0d18000581e0208052916b934e6c4b75ef0e34b8b8866b6482075a052453d0ef41a6f7e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e022c151c81a384e8e6e1484d550f3910da8a962738227d66367aee1b849a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02b14b4489dfc5f387f9c986128b74bbf5d55b736671c0a539805a5328384b4a817c7ffffffdabf41c0000581e02c886b604c60388f7325a92170a53a5d7c8322325f77dc86f3569ca4fe95820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff032aa0461a2c29e04f54078a706785004e6fb50b2da6b6495a25c8f4f0644468d4021978fa032bb04eca87563557d6b5dc085ad561477548b8e0b917b62242a71010830b153803915c12821a02d49785b8e210cd905b20000bd1ed4fc11ebd6cd486dbcd3aaa6d0349f0bcf27a177a0c62cb09fb59d3643971adabbc30a61c84401246e3cf4f36020219ffff03ddf673deca22b0093abf901532211c5c570921ff2c3192b9db1293dd4df29a680388fd1c32913cdec4a07cf3f8cd1f0e24eec7d9dbc8715079279627b08e96e114038fa54a1596f14683003e716ba7c6fc9b63738bfe1dbb327d158be81be64bd7040219ffff038f047b6608255a14d586118de74916a21d9bbd85b54a15610297f0c66807b402031aa9fe2d1f7f59b5b2a5522783e7f4d92161ccfd097547410cad951991e1cf5c03d0549b89200fa9ea49369b08c018c8fc34d2ba596390df4d5cbee1dc5fa0a132031434a2fe10be8766041b8b4facd5a35f2482ee6deee1348c9c61e6bf0d77bec803bb04402928ac4ccb44b87092b42977e24ea0a15354148d9b823e4b314eacb48703d0d512416f510c670dd672266181a368e7298504273780d90b90cd89daa3289b03829474ce0aad74e3093c23007ec2bd1119c609b441b525a166ff6539eb6f66da03708478803c29f9dba0054c7913d50bc5ec150e44e5f3fa446c7d1b840becd7e7032b7a4ee49e5d7ee58409e3ae9e7054f113fa3a00d2fbba6331435ea8212cc7ac03fe1fbba61ae604399565248d50c2378123655dd6bc46e604754ce90fa0b8c15d0219ffff03cf69df220d0489fd6cdf27f39eed5dd535140e81c7656dda6c5cdfba82dc2752034f982bb986149f0c9c2922c345ac834e5164c5bb0d2c490a374e092846c8c92e031e66a5128f03aaca06efc0d8d910a2d306ff3d0c8b64c1e75fbdfb5a6415fff703da7a163d36f29e93bc4235e798755f1721ab4725b203fca626e9a1fc64dfa31403d6b6d28c16df54ff8af4b81ac93d3a8952ec5b486c4198f38db439955e2ff3db037e22eaaf4f9b6a66849dc8b12946114aee4cea30ea0078aa75c5066f3091b80a0375bb33df0fb903f40b53c24423fe6564ce92f044e53d15b314c29b90f1dbd5cf03465eb981d3322eea97a610d562ab4b4bb0c00af832c5e04a5f6c56c09714e0ee0366d53d20d99d4d3fe82c01900a783aecfbc65393ddb7bd2cd858ec5a35524b0a03ad2a573a5ea32809a59801f166cfb91b7e5bcde32af58df3218408d8124486a403de3cf10ce6b60027c550679e5ff4b2972170e97bfb24d5d9f9aa5bc6e1b30dcd03faac76f902a83b78adb8af847fc31202892215621a194fdfcd126c40a8f0b8ee03782f8c349095c154ac443efa6de97bd92182d7fa2b6cb926524e142ab7ee71ef0372d9b6edd9e219ae031e58efaf5028790d6f28ec7b28b00bf9480d7035f4ce31033cf1e31c05e59dce1c4182e8e7c31eb658c93deb70e5b4dce0d5bfeb553bcfaf0348632c2b2b7c6d37db52fdeee03ef0b490cb054158467c5f92d2327e7a149a6103a2c4e26976351ca7f1f62795c8f7a6a2cf92f4eb6d1869dec1a612d0e5d1544c0349b5f6d416659a7d5d1b7eb55509c4c2fa20365d29b8af4f576880c7e2253ee503259112b6648c56f964a9aa08d355156600e06b5d5143d1ca4156e0ebcd63b11003cc92c9b09a362570b6f38ee5bacdfb0c9cce1c03b5d71d9aadd646b89827cfb403aa9b466f8914aee196b007a2a0c7661267a85ebf6b35425383f4009ad99c38e00381c16d993bbf92a29a88c9a3cce6087eb2e6367be7880b6c2e6f9685664e95f003050c78fc912ff8a4d3312b59d77c0b3bf37b297ebab6e12a9621ac47a6556c0b03a88849624314d455da3594de13c71dfc4eb5498a994d80ea6cbf48f0124ec41603e13445eb733a2bcd577971206389917c326f6957de8369242d668e4aaa007c03031807c7ccb2314488a9a79315e03c9e582363f6fc6723cf87451698485310d4360343c99fbffc920812134ee96393dd4d0ac3594a8f52bb53bd348bac5c0dd6eda80388e36fe743e81737ab34a045a6f2cdefa369b869dc14246099f59b2d2b3a7e6203fd6da95f74a27530f884e63f24ce554431338f8dcf53a4302dcd276e10cea14403e60835dda1eb6ad8a1532d23247dfa903adbacaa6d6345d1e1b0bdf48ad0e2bf03fa348b165e2e3530306caefc89466314340964445dac3caa5a812472b14f7fe8036358100c39e65b6ab815313b07744a5e2a3072cda4479fb129181711e39deedf0346fae0e9dcad1ea003d78869b9ea2c76de5219a9b0d5f4a5ec9f52696965560403f1886cc7e3e709e0a43f874324caf3dd2504ce57da15465ececce8f8ff84714303b74f92b08bb090ec817577f2a8f6ef12cb100632cae1768fbfce8e66ffc1b99903257f963cff3dc07767d4b8f0337771fb6fe72deebba338b778a67265ac6196c6030848085b78eb0d843ab828444318502634851c67086d5de086d6a44ab51756de03318d3c45f775c17e707f5098d7867f60ca89d42c6c0fcc5f1d4f02ed556b787d033a9109542de8d9286943daaf4bdb2f52628df80071bc02c21f30261d154aa841038a186609dac65d822b1482ba58a60dfe7c703a49f96301dc1b1e50ceb5be809603def5e318c0cb9273178b189650c4edcf8a00f9252f403743e033edec9fc90c030369d8b9984d2db8be9abefc3f95990b386890a8cffb5611c904d6a7e71bb8c74f0348df0de0d35b36406bc49f56369be8bd613e8948dc284b3b020bccf0a2205f5003212f5fec75c40b344c788fd31d3320993c76e45f04b7c813114877cc1772a44c03b279205d737c73eb960567235fd90b94b93af39545a85cad6bc9c2d0869c39620301762378089d2c488564024e1e5d8d333ed6a65f55e34856fa594e159e99806603db4c86f3045642cdb0cb99baeb5d6d5587a421090ef04cc885842a400476f1f703a7efcc080cc6b07483bb4c867be8a826e5c2aaa28241987dcb2da073f9423df400581e020beab26bd7c89d7ce888a9607d6703f9efb6eb9e3de443523739afac0044eec15e0a00581e02dc3466c5237b81d536c4701365a87aa5b566f4b917a8c2eaf0d38731465820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e022aef848d65819c28b9bd874bd3de03e0956070efa648890264a38f19445820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0296fff8c915025e1ac6f835aba761ae70e8833f1084c525d6443d737b8d43bcf9670305674b0bf0b14728c41c7d27139085b2b527b49739071d4c3fba949031ed7ace00581e027fa2b9c0baee35cff928c095ed8ca54f547554f3cf65f2bf503f0e0ec25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ae60031d2051ef48160412e8fa7770fb8e6aa15b36b1423aacacc4b50368ca0ca19f7b0219ffff03f27c59f99f52f536d65e701408aa1682fe5a2b7d039320fdb2a43ed4fc6dffd00219ffff03333351b3696eadf68659f2569b363026010639cd729b7336d2077d7b0a99cab00311fc2f5e444dcd55ebc4fd92877d9ee851936a1730fb5d31c537f32da9aae84303424b659ad6fd0fa064b4fd9f5a7b7d92176744a893a67d4f6359f13cb759f3ae0219ffff03c31e8427337a5df3e578e5b8f9628fa9e7c9acaa12076015f498af33d6d2f575033e52775b4a52906d09479fcc432efb03cbd5796d174991afdd3c72f95520e4ed0367e7b28f3d8fc7886de96c403cbd940801b78904021ff981814fb8dfb42492610363200a7ff75edf406fbefd7591eafd8f9641014236d78d892ec51f80b1b8c67e0310318cadc529949a9c2b0237fe2b7d29910248471cf6aecdf1a9c8ea9df2ce6f03b034fc7a4fea860b127b0031d376e113ae1eeed27fd7f872c5c4221b98438df60219ffff031d102b1e786acba2101552944ac5556aef318089a1e04cd809b6e1eeac9786c1036ef6298d7fcfda355537e5a020e18d2f07914f8f3dac7abe38c4d698a2e8e59a03f64488bdd7d4ce1225fb178f055dc8aaad1b1c97298ce403076f2730908f56bd0378c806600d20f66784b5097f292c892335274657b776582f35817d5608e5d8df032b1c222190a609e7846174ba089444044366ec77c14158b2827a45b6b55512b7032f38d9974e26404a08fd6f9a05f83d5ec280791841962053abf56620440499bb032e79b4515de33ab7915a0fc31cb0a047eeb135108bc4bedc1b602f306c293fe8039189e0f65a0d0a4ecd2c0ddb62633b741d8b94f9d98b939e7c8c5dd71dc9d632037587f17883aa3fa5b69c435aa586c1c96605e2902426b406605bcea8220a29b303e50dfd7b2fe73d362eb153d7f7f64e2b9c7e78e5476797a905db7ad8eeccdb5f035d79b18e291f808d6fb2952834d1b0d92dfb666719a6456e1ae02f5534c9aa0b03b0f282f33dc14c9c61931c37b5b47a4e6ca268f933b999f803fad3ec863e751a03b97eb94b1c41de8f7bbe624e0652b078a42ad7b2fd0c957b939a36eb429df92703ce23ccbfb5af9c138e92bf43bde8f949661adfedf43709d5a372a271bb1e054703757e98004ece3ac8f5b6d03713f754d823babab29921a553bccb09375e70555b03458c8c9f62a5f9c480bc169facd34c9ef847cae90139914e82100016be2880560373c81a52aaecdfb35eb060a08f5d6fea6a172dc3457dfe06b59c6733c2a6786f0335aff725f33d58cba2696c8c438cc8768484a9fc6458dd78c6e4ae765185de4a00581e0235591eab091edc5ff6f0d6887f3c1fa35240d9fcca12f07ccdbf36d7dd42084b00581e0205fc9a6c88ed4079faa7bd19c68b5c503c67446e67abab26a93ff4bf8544056aec7800581e03b60e7febdae62269b75533211f441810b0173655d144b34e7e0b76d7e05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03d8ce17758fada27a27fbbf0422efc2e83768baafe24cc3a878897548c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03d2cf3e64087205920eac33115208e94d139a95f34312459c44e995d560441e0a6e000219810100581e02e57ef6319c3bf2f99d433734727d2d57bf79f0a60e3ed2d38cb361e3ea42a29200581e021ff8ef585d1e0d500ccbb916d4cbf1a4d343a9474954de0bfc20b1d4095820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03921eb3bae3fb7dd4f9c0b337d68c6013e396f1f23e455ecdfeda9fb3c107303a00581e027405bde5a03cd36c40fd91b42100c6ef071e76b7b4df9b01e77ce771a9445bf6bf3802196b50037008bba73140a767f49574fbcd63847633e28890d690666163757ec6902b057c0383821749dde53f0e576def141e4a2481919b48ac9e005bdc55edff529006651b0346dcb941bf1c031ce40f70096c81bb95d684b96ae36c0fca5f3ee5130c3590fb0219ffff030ad8823d70f1998d137512ff8bdfeae4ea427dc24a55949fa43948afe8eec95003668ad616218fecd80dc2325e10e38768650f91f60663e4706ba456873225b10d0364deb35c88255778c821ea02a356bfd4657f044b72d4105a3d9ef8e01f65a61e034d86ae38a0bb76cb893059ceb6ad05c380337432d7038075ee354d191940f6ae03b9d084fb61d2b247a5beefc28985bcf2f5cb5bdbdf059e76decb8dbf0c3aed6a0346949e0c123203754486f33e2d3b2675e22ccd752407b365ab1db7ff6504e0d1039649b2a0a958474a11d6549e3ab9495c776bd1798a6b0f8cc21d5a4c886f052703654a4f2ecd74dc9248770049521cfdefdcb39058686a315ca25f7c9dae4ef7c103be3d75ce5ecd05d3240fbb75381d566d9d1613ba7aa7282eef0a2835024cfd8e0219ffff0359013253fa5dbedccc4801b2b6f0316b6a0edd32d715b67ec21945cd6c10e21703d4b6a72b95234549d187bef1fa09e9594811bad9d9972fabd22382ee93e8db95039f90779654519475414280765c6c5fb64bb2f3a309295660867d7b49863cac350371c105a028b860d4eea694f2a4a4c9ca6e36bb6af53a2c21e4fe26527b7e592103ce5414380219c4b37e8a33c089fac0bea4a8f97188338ef85997c6cfaf7ecae60352213407bbb4cd27bfbf4531cea335d3462057bdbde5bb159acae37d157778ee0344d23bb786c509cd785432f75b547cacfb5602cdf7babbcadb779c621f7016210389940ec1fb21172f7ea88d6aad1a920e8deb948df10985b51829633893a1e2bb03fb92dcb530c0f5ffec4f6e6a37b0364c3791646e28f1cdd4bbe89ac827073902034e5c13eb03b11ba479ddd5c593c8702dd9c8b6d25e2c703f30f0fc3d6e49e95b0310298e4bd0c6f3a0554a20bb6c831071f43c106bc84cfbf2484119a5dfcfc1360396af02a91b23a3c906e984ac304d6d747bff5294ae459321e5cf39267a387cee03520f370f0f5f5ef937599370d744f9a3bd30069197aef931cdb1f2f11eb86e9203538cdb00e0659e03f269c7a7e7cbf9970148f76d9fcdff3588db494bab8b0728037db78731c803568736b069f2ff0c8c955043965a4425cf1f096d22a1d5fa31e203a84fbd741383566165b0d3be5facc0affd060352207d65e151c91dd3eef957a9037f01bae74627f5e4dfeb875468c7b31c05cab2936ab28a5c2318c8242c33a9c20395e2c204f6629a666210c73c3be7ec6fc0adba79956f0a41547aab76c3ce0965033c9f2016cac3d9bd7e613fc019b8d0d3aa28baa5169bb248e85979b6fad697b403af53416b533571cdcbddc71cfbd7cd2f2bd520607b7c808b976d775f54cad55003ce11323c04da67d12486ad276b99009f8eebe201c1a14d719501e463aa42f4020370e236477e3bee5a8beed9cbc6639932425af495447fc453eca12cb49785aed60395d0588057389983689c83f67173ead802e3a7956fc9b2adc0e284f5cea7ffc3035bae1d94991bedc9aef418325d0af3f193d05b1e74f5b328fed8a99884dd414803cc7d990c6459a63ec3d29684dd16ce9428dcc90bb9f642b3fc02723448e24bdb00581e035ac6aaa52115a358929cc2bbddbfafe282173fcab4d227c28cabd339b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0352fb102ee644320670b8c4a2fb1ed65ac9db7d0c7d511c317d8b0b54d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219400400581e020c86b494cc1c6734e4c89029845bf48e525440773ea7e3cc47f0b9ad004407de290000581e0245c9cdd07bcb81e4b5338037c3cd44b52a98318ac0422c399f3ef49fcc442151a9c003f41e0debeeaf965078da0a83a74ef361e28ec2d4dd101725d317b5289fea96a100581e02a8fb6072a11317f4aaf416c81b5991261e2f3e05216a5e725241f0fb255820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02193344034b0cea1c31696313deee47913447fa9622c175ab22222f47efb0f6aee0bfcb8a030d8bb8b841458eb40b4d5f21fe293218c5fe27b81d0d62b16d1983f6078a41dd03ddf562e4f06fe04a55ea5ab0fc5114c20775ec74844e160352709ed4f35b1d77035231acd5981c8b7cfd87ef0c282d4c2fd1cc45df8cfde41da34fc5b25d2089720394cee21184421d8a0dc6c03ae81b3e17ba1c275ce995da98cc80c0b7a08045bb03cf83de326f4247a25e0873fd8ff645a8ab353d4f1d7b46a6ddf3c829a182aa7f03eb1e2e8fda89e624aef026267b2b40e143da511dc8987d9acdb80422dae6fdbb0219ffff03d7e255fc6d3a9e9485c861079eb14e8eca069db3c3d33272aacdf5f4bf60b4e1032be2c5dae91cf5cde962c6f1397f707f4bba892902d5513425c4550c76e9ae360379aac1912dea2d82c1119bdea07d44e9db93586d7645900694c2076ca934d0ac039443fabde42a908c94e402334ee0bd9a64896d4bbbff3a2064b30273f3d614c4034f6401454e7c2e4c07cd9d665931bdcdf058428f06fb67356d76b5a938731e99038d7fb2554e8f09fbc5adc7fe3d196fc0b3bc9784c060fa2f0790683736dc5fdf03e64f37b4dfbfe51eb03654d50be509bcfe36429bd23eba2154665d523754e85503c9b1689bee33f6e899119e5fad5aeffa81e7683ebfde14149a5696ab837a56ee03a75188c767cbbf71e2f157d8cb997569f2b26d93efebd717590597bcb5463d9403aff35ffb1ac87d96ed1578cb7ab6d770c60d508d8376d7d8d92609f58d33548d0219ffff039af123f05ab5ca45ac90b15099d06eb34e3660168005c8525039bf3d94f7ffaf03af1a947d4f9206a2138e9446de9c9fc4c85f97aaf9b3287c1e81488df945749a03c316e9291d873c206bb5e6fa8dba933464ad7e9ec49f024824588e8ef9ca6c200219ffff03461981d4bc29a56054f0d25562b1e96bf7cf727a6165feac32c5be3af22959e403336ad6964ab1118a00038d248950d5836d138a4a44470297b5c9820f935ee49f0390645552500ccbc36fa45d80ccbb8f9e03272812762e92be7cf7895a2549cd6103ac92c7a97a8472182a69eacd5d91e6f2d35be4692e084d5350d5d76e3034ea7103791aea5cd9969518fe013b195c66d493562d1bcbd9a824a08bbea6f55747350803a576dd3538d6586be170a8d278c2853a60f861956af1ae90e193be0f136247e9031f781fca3f6ac87451a2f6afa914548d895ad30a1cec878afa96b0545ad1969b03e3e2b6db019a018a56fadaa878518ebf6506972c626e0e160db5a341e996ce2403f354eec79256674039542a3767e2585c76be64400cd674365427bb69cfefa17d03e54fd4b41fe78c74c24d5d5acbc82d7dd3ad261824b09a8612e06baeff178070032609ffddbbad6f7197f3cce57237e4fe4e5d2828c5c05d5b093278e67841902e0333fd9753769f16254be925f71ff007e347ce6369fc7b3581a9be5bff8c96f7cc0308900720e2e8e8ba1d2985771f01188a91dccd4b56fdcf427a6a1a62dfe62f8703d68940be3f85ccf2c212af05d65a3eab7f72dc7b47452a685eb89fac82c8936503b90be32a52cae9bab53ee121b16376036cbd45f03c6e2eeba3f5e72f967bb1f40372c6caf0b0ca9b00e7d544ad84111fcd25441b4627c2051de8a0af22d79aceb903f8d543ca9d4ef468f2ab5746c04e2cc9d405c7622cfeab6765d9d79e6e8be33b039f2434a5ef3207c5687db1bb56384f57c8a8c6ae59acc040ecb29be5265e8b06031e20ec778b628a786fb3d24a599079d9bf43988f0af8d83cfaa0bc6c20e1396e03477bbf31abdf522fbdbc8b47d8b02e59dad3db5aae822800523376b2dac3b22a03be941b8d2e29dc13b5fc3b03c10d2a860564ed5d4c24208b8e6f69500ea8035603a0d7a190ea5764a0344ff25282414d582b1f1d2fc1e02061f9147d6bfa2e523603b727e483289b39769917f1ef8da31a1af85902e28658c9dc7fe73005f45883730349b98ae3db10df9179450c54b01190b067d8c9f81cfdc07727088cfecc5b83a80307aef7d942383b39e3b7c619e27912c410abea948854caf5780a9645749f1bb50359c36334eadc11cebf2f37c66da97015b29e42752f416158cdd1ceb88b4984490343f5682f09424e9cab027d1652bcaae30e47c9948655bf449ea8d297f944001f03611860ba5c7ae525d334702d5dc33e899c5b2bdc0bc5698fff0df4fa543dcf9d03784106c79c2d04269d2ca52d0574affd99ef224ce0215f06367e6b749a89116000581e02f93ddbd216b126154a178a1c307a80c469d4b1a4975145c23d08f97aa54b0845951614012cd0a6e4000306ecc3127535e11299395be18ef1357a0666a2acd956df27f1caa92eaca0f4e203e33ffe76ebd3aecd5b07c7beee63d73d8adb49f71d4b56da65d1b2e8ba820ffb00581e02a39c5609a00d5b66bb5879d655cd7053b6ec39b0924c916ec41976bfb25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03d14322a360754c31de2139fe1fc087d48e72af96e4d659451e872b03e0430748aa00581e031d341ab6a4f8e66c82484ebec887e4f55fe55ea65874e0a24c849367b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219808000581e02b654c235acabe1e694b3b25f2ec52334f0d2d26cb45a875e5f419276474cfffffffffff096fac1cb4244021996440348ae2fe9d959977223d53362a1ef0280016fa9c6068f72a1b2e2de8027f3cae8038cff5a78841ad347926b0e3d2ba38136e6ec46cdcb314bd13336aa0fce0661220219ffff03ed2db939bc5767991216a15610b375c89a19243029df63546fb33b43bd24e43e0344b1b16ab3e3b0188c13d6bc6cd2dc962fb1208cf37ed9bb49f8aa8ef94fed1b038fdeeb86d4bc32253ddd29888b9cf1f7a21229fabb93d668edf759ca869066290219ffff031e4f5a34e37f8f4027a5412e6ba23802f15ac0a9adb1cf084dd2006e99af5e06033f8c5820dcf6cc4c7885099eecd044db245972d0af39798c1ff7bcf0cff31bab039e5a42334af846ca928ca94cfb328558a7f9042265c4956e4035bc93159260f2031391fdf974563818babb89b39ba1587daf7a177613fc8c051c154283071edabe030a8d6e2a6b577b0a4b8f4ec38815889646c49c221faf771ad4f87a025e9c27850388437188223cd8b85d4323c034adf87102e63b15aa9bd7f4efc402542fc6993403c8444564cdb9fd53b7e7f7075177f04c572892119d217d8a586246a0f235b3dc03e49e2eef577b44c6aed3fcc44641cffed3539655bb718ade84e115453e79f2fd037ce536defda13e9cebf811cde1415c4c89edcb81b18d2ab19d4624365b9fa36c0331143f84aa4d4a0dce3cb59097d4803980dd7a0446219e18c6b67d7b8ec9afcd03fd1dfb5a1bcecbb10500d56714599897189a815eeee7eff8df73464b6da0968b03969adb7e3a8955481a566cdff591a6a126746e45a470a661b10cb3d3df964b5a0365a4fcea1337c8d9ef5a8179240e85ec28ca28a00c3cadaa1cc516832be5577803c66ebfe913b1c18645f6a5f2ae414b11fe921cbaebd29a1db0666c9373ca3adc034135fac1fe90885b7cf94f59efb68c4f5831d3fc14da70a9350b4bba99d741fc0338e17d0c2172ed7af6a6396b544b2eab03484ed063a8cfee0c6799d948c03a1f034335f9cc48360b5fad8271b46fe32c822fe931039a82a8d29a16790df5c9336503b94c3e28f64cde838647f35e177ebd3fae9b1a4c9700a0d52d06cb33f979e38b0360aa9ea834fc7fb4ce52a465e9b807e5b5be5d44fef5fbd74d20276a8e7f4d7503679c97cd3395c8886d682508448e482edcd77a7862df04b1c6861d81a8dca9b80339b73317c43d02e47d307fbf9a45b6d4408e21274200a35b957aab7e004563a5039c8c4283f48865acb48614b4a9b546700267182020c138332980efb2907da06803a75fc5bc09b9f4c4cf4c65cabcedeeed0e94262dd92af316f4eba8a869b4c3d4037fdfa6657df2ca92e826445eafdece2d54b28a5a5995aa76f01b702983b1f447037854b92376adcf181f8733cc0ab79a0cd97fd4fa6af0d7d88ae93d97204e180403e6b02a0420cbf96df128dac8dff382ba07435434a8a96e109f853be6554efc38037393a9d9118edfedea43874462f9ca42b21cb5f1210d5133f256e6cb95807f1403531b2d5dfd648ab66072da119dcabe0c3036e775847853bf9b0c0e3e1a493566039a6a59a56427cd14fb382aacaea1269f8581451e0119952cf0a51179c213e26d00581e02aa3b8dc4d3c7729dd0468eaadde96566cc001b6aedce17fe4f556c6a8144034a9f3500581e026646fa97172e55c4a5fa1666e335c67446e33b5cf74f44fd4ff1d8bbf3488ac7230235ccd9c000581e02fc5cef9ccf3ccba6a341f7f0c655b659acfa3e8688623d9c85479f07e644031ac0a000581e029dfb43be78ef31d9c483e790441424ed17cb98f300fa896188da99c34c581a031535a1146e4a4ba3f4b13555cd59267ca577ff76c43377421400581e026f2ca48c0ebcc26a70d8290ff43cbb368f4f501e43a7435cd7f6a5602f44132d456b00581e021849a8a29d24fc9bd040cc4d80d5e5d30de38404c91f05ab2259c396b34321d21c0361e16bbc0aae65e2ddba26aade525efd12d48b85178a51eec9438d7444c65fc700581e020b9e9925edff8b2af8264d58edf47d882f71037db6c2fc645bb8e2f6325820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03e063dba3f8fd28b8f9c0a7e0a3a0441e09b205c27e782518fe1210af077b124a00581e0359fcc88b771c3811885d6e77011f80ec7703ee06c4ca02f309638fa9a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03597b876be39a1be448b1ed21e0ae672ca5f5d8f404dc8623a87ba6b6205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e033e5feba0a01244e2ebf447b94642f67b2b7c6265db966dc41d6d3b3fc04637a20ac17c3c0219218002195cfd0310fd6ccdd8704e0c2ba5463868cb74d290ef467ec8650ba3b9ed3f1444924f960364ae13a011893ca14924f9b86a897e94c0d5c7f974139ba08efa3b85a9c5cfa70325fb34ff3bb877e4e75c3079f6f51ee6ea626e955b672c29eb9723190a56a0c303e1c80ea2ee45208c3892a47d84f263851345870a52e8f08e845888143203e7c003b7f4afbc560746e872db339c24b67e01793f1ba84e93a1f442651beed5da034503b95312739f51687400374cecd8044c2c6577aacc626f44228eaeb1f64e2a72d3038135cc14f620956e58149d1ec64173932c9254b798066804783e49b5294f59d703a78bbdff35498a921c8516126751123711f7512ce8471159615a5ef42016d52003c7bd5230f3719469f6ae0f977b4b8e668ee812003f7671eaf64ff535b7428bda0219ffff0346748b76e14ccc7bf7b894871ef73319f3974b1ebbb39ea1eccc6fba0e47834c03064e0d85c15fa837a187a0bfced1a29625c29aa80c99cfc83968ea147ad2bd120219ffff03dd15ec1dcf3a0c2d0e56c45654fb2645b058f92a08bbcc98774be1302bd6cac503e1289c506e0b4e9cc45322430b6a5e4cd49d7ba6d163d4bed08fb492a4e54ff90219ffff039ff2f5125505c05523c77e5161d9b4499d18c6684dbfe13ff10dff702f6e477a03a2f4fc2c920a604e918faf2024bd24c763e7d0d63253dea138378198f353e3a60361927ba281bb8eed74144e199702029fed1e5b94d9999bce7e42f6e849629d2b03e8e1e02eb048ff8cef94cc01d6a2bf2cbaa88dccd5ce0dc80c1879460e5aaaac03e26050b8881ae06d27b57bd143e406ec20366f66fc11db953d578113448653f0033902b44fd3879e98ea11dcefc131c1ed9dcc747944b0d5464b40839a3b5988b103658a28d1a2c6c2133c49c4b6231ab68aa34911c220a0e3f338c0ea05b055d85b03a35361ea4129c76fee0f2f1caee06a81b125c1ddb2760a293ed8f30fb898454f03bd97dd777809850ab8a58d73d85b6f7e4e51bc69b74d1a71789e6ac4d608f8de032332d86ea2a9a3a74cd73b3ce4afd4531abb72030baee3109c65e8dc1311949b03cbf7db400f8615956a0c195984e17c9ef25e25a7b4b9a4b95f333d3378e1f9b7033c87d8f7bbd530a78e9a19dcba2bda8e45f4f8a3a6dda61937fbeb03d434bf6703e3ce98ad2134b31d378b8bba4e58e99aab3a9d5282d0edeaf1b7a26c62b533840350f4d4f97e8c365759c091628888c0df036704f6a910a105c47d8f23e45c50b003363a60c88609bc75b8157beafa6642c3c3e987a599487d90d99573d6b13a8dd403ef5b52eca412edf8a617f7b4d5475ca475fcec523bd37a9c4ad0f2e3ac2fb77b03d4ee556fe69603e9b156ee840910c1dd0cb649d0de1e329c7e4a12a252fb2beb03b94c6221e1321a9bc8cb40c3a46962014fe693ea26ceefeaf2782d2d27d43ceb03c385c5b1953f89146dd80fd7df885f1504d5a04191ae8ca402d96efbe91b28fb038f0e8ae9d3957e5caaf8ac02c0339467a10103a95848c9e97c97658b2380f83c03331c2dfb39f99bebeac05ec663f247a13ba764192f4b57de31f497fa877939280327c0209307cb44ab04bba8f2fd7e65550bb1796518df8c4ed51e336473c646120385f0cb9067a112b2696475d0b186b2465022218a139930817631003ca0caf78503305b7fcc6ef63f89d5ee485253be60da933decf21d978c6d04688c1f530e77be037406bc3913b9ec429526584cbbf1e004671040c45c5de7d2eb40eb0f97d62469034f042eac88df57ece5a33d720707c5e6d598ca213206f0584d410503bebf8713039c7e39d7fabc5b8aae417d916435c06a0807d73f641dafa3e79f015800b7176403367725ae34b5ecde9b46b95938ffc002838b2013b95a0f5574667e43e76ba37603ecf99ab38fe90d2b5d12f7751549a83672561dca5fb0c66ba2ace76ca01f532e039b943435a90ae52d7ec755a181dc6c1d852dbc67a17ec0f352af8625b8eb5d350316dd1ccf465ff8bb875614b4a9f840a0c950babbae70d15c54cac07ab4fbf4c5032f67aedf8b3933d28d82a7b2d2ca6607a627b28763665abaea85dae54ad512b5035322a19f4625c5f3a57260ae2b8bdfe6cd12ef06ff2f336275918ccfceae18ae03e0c0083ff0fe5d10db8575ee9a9b740708e4590e9501a757ca1442db26d3505d03a4080f05db5e09f25478a8a9a76234c61891b983819723f2a66504d5cc8ba94003537140822bd532a135dda2d7e7f0f332467d3a481886e113646a5456d11e61e700581e02172145c3b945270be1b6460c4cfd9fb2cfdadcbd8518314fdf581666a644075ad62300581e024c3402f1681e9ec52f176fc5a2ddcf2360e0df80d1a813ef67b06530ab44041cdb4000581e0277150f6ff9cd27c6b01e5d135f1086099116e8880012ca1aded4e904f3450264cf76d703059fcb7fc4b1c1f307f748dcf7e0f7801b8b0eba39605f204bfbca0a55f5f86900581e02dcc038b0d764ebe7e61a8257dcc15ed27da494140c7a0828af5c72b6e24403145ed000581e02e98ee21d8f5c015392305d8d275958d2739f67af79d1039dae66cf6a005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02b41ce66b0f042bbd357d495a1d8952e2a8bb7f12e6964838b709f6f7c843d9990f00581e028c361cd06739655ea83c911a2a6116f498e72d4e9f8a7edb9ee9432835440121eac0021919370341ed7d146334237be8b42d81f924ea954c7701990a2c2c94a5ab78bd185becd3038668bcdab03ed0530f17a3b0885dafdab4f0f89c672d256c84ec2501866c011a03c93e10e3be87f8ba831e987fad315181ccc8985c6fb26cf6334b15b70d9fa8f00219ffff03ff001e4acb8ad46cfeb496dd8dd9cf284edf57eecccf0bda2db2ec75ba7443ba03ae1b7505b7712a97a8514b8bb6c98c07cd5d4c81052132dbb3adf4332fba1e3503dfafe3bbdaa45bfe2f30d5d0230ec7623bb94cfdf1a40ac85cde0a2cc23c51d30367a8385b9d6bb4d702c5ca120253b5ac1326442f3ec82ee2693ba4bc23025db80301b2ce13afb7e735f11a2a28c20ed8d2f69a8df23d1854e26074f0f769dfa5f403e92395f95eb0ba088d1a4e62efbffec608b714b8b8fae24e4b8e1148a90a58020219ffff03b51101703ddc5daf4119209d9989449d55931a215c38df9462a93d5d95140d910219ffff032fed810cdd4378a80749bedff6761d9b988abb1b00c99d06921804e7e5dbbd310350e6df2726eaa1604328f2cf2a33bd1718a263f1487e591a39836c39682b71f603b838e37ee1d7c9a7a36963cbf842f69510285cf36990c365c296d7d0f61fd541034b72dc53b4d8887ceeff5a44e52a65591a35443765fab4d7b20d2c1430f7dd3a0315042fd272f6a5bd52772c19dfe707914ff2f78ebb9a2b9b97a2440290d568ea03d684ae3bb96c21b7e69f1da02cdce9070ac0d23180f91331b0d56639f9bc8d5703b439f36ba0f2325d606410ff28d14498f1a64517a596bdffe019a5623046217b0347739f62690e8c0d5044a06ce436d16ee829d179fe04bd2bb75dd95c3a5d89570371694db76041363065536cbd8cbefe59b40e00b187b1a7360f7218a8b77cabfe033af241569372a4a00e9e2dc924c8047a046c7f2e41a07e4e8fdaebeecbf52f0703c9573211b7d82c0f063a716615a5ec90242f226625b42f49ffdc44defab775d3034d6538e18738d8236f7d9983d6300446fc99fe550e17f7742ef856d6b98c6e240375aeaeb9f6fbc88941f3d0f53cb341ed733982ae3f7cc19a1242fc2c740f7cad03235f6072f9665668cdc13b7a88ff5ffb8ec28034e3f77c12a0a39406239d0ee403c7d218f806ace74692750ad42cb05e7f2c713f2bb75c6c812e17ada4cd05f33703464de873ae4c10f013c6f60297454d2a029653c25ce8a6a32997e5e67b8b89a2030df9cb78763d91c4f3c7b9aaa65941749e0cf71b613889b12e4e67cc214d6aff00581e0222149c38e85bb74500b5e3a5d03ddcdc2981ae76eb326db1f84cffb8075820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e022238b6106766c65a142c4a2780190b896339aabd731c1a7220afebfa2242271003ee08afc16234c5ae3d9510617d458283dff3104eb21230816b61721ae6b7eb9000581e029835c667d86cf27f860f56723ff36aa98a6e48cad8ec2eaaec4ee115f05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02f60530e8d5d0b634d1174d146b1d96f267300abb88c2029db94e190f88440aa7822e00581e02d49be8acfabf5e5ef3bc0d63184b2905774bef0f221acc11de4614ade7430ecd1002194674039016cd4aab3ad3e15c900af22d42a0c063086c23cdbaaa8932edf1ae400a51210301dd21684e5c36bf32ac5b59a232ed747981e21e81048e52b14c18b3b3c02eb403b71ec0ab48581dc942dbfc79481408bb0a4df1e90f02c08f6f7db0c75febd82c03bc984ea8030823afe3bcb9ecade05b37a1233a066681a74528e58ff320c6c6db0328c7a66bd751526dd8f5ed0027e1e6df91ae0499f5477e2059368c21b9bff509035f1615ae540d2ef66d0fe2b15e786570a9053af40a774ebd8d931f0d303aa6d203d2dc052c9ad4f1713c2b4e7656270aa123087f65bd431e686c1da9c150c5df3a0329622026c8ec0733bf9476b49578969aa39ec7c12b73547d3ac7b5449717035303142ce26e0c8af3220c9a631e505c696aaceb3919151572b3e298d17a14ca15a403503e18c83cb07453c295c65aeb816f1f58105057cf20526b1694c9f3ea77aa8a03f8d1bf4570295835485241f63c42b7c9aa0c1d93dd6a72a4e2c1bbd77a9a9a5b0219ffff03925265a06c6f959fd979f3a9cee14f1be01303cf2f305d25d0e4d5ba4e94fe8103d09caa41e15f6cc72114a05d74ab26e84c904685d98353f022d750c5551d4f69031bfd38621749a28580effa7bf83b6f36e32fbd240f9a30eb3ad5dec4c99e7f9b038edae3c228a168761f7503aa0da28eecd2dca1180c6dad93d51518c2378ac6450315812aaeb6126ef2c925366d01e25b986eb1a6c2a8216093f3a70b30d0f3ffa0036fe46ca86215951446daba935e5702a74cc26798a3c859a9cfd18bb383a7a53f03016123c5995e7b6aaf0e7f83c572bb13db1be62ed7aa11e3b166538b929976b603b17bc013e8bd2144e50e4d5bc3ec3db96c0da7da8f0809b5e068564f6cfdc38c03f363e59bd3102800a91a2ed6a2b0a2bdd1a97d2b9cda63095c688da706f80fd4034c2dd2b3d4d102a2ab54e15e8a98c05f13924f3635268d48623d02e638b353910219ffff033bd87d37b3a17d0159d5e43c112fc1f889bce9ab6e1ea6270de8aabea67bcc8603aafdd5d8df56befc0ed77b44f717403d3523702b12c3e722810d93d8caf86db203a66c840c9a004e609327f55af57331bb4ad3055f6e0d574edd9cdaad3e5191d303ea6539f39ef784807fc239be71c5aad943a557b8d27d4a072389c6df52a0a03403408211ca386f38a2fc84af191c793a438d5e146a4b342c6b04099ace6b93c34303b6df980c7e35afa0342fc83e2ff7308dabd93ff417d062b1477debe3dfa034c30374880e9bb4e815a3fee01d1ff4f6263efd100ab1863d80c59011ec5f79a45e4c03bb1170a64ec2a30e8c0844b979e33a82334efb10c8db53afbedf42271a900a560219ffff03926c72d15fefd658e4c9cdd2f177d52684d8e9806dc71f2ba0749c68b052b83503535dcc44a6e49512da7b73c73fa97f51526d06a6a8ed9182dbe5a47f297b5179032e1f423213fa845145d965e439e3ab2f3c0ae20090f38ec7c9c7404e765d78ad032d8a4f984366c5a75a96689e8e2e4426ec85b9272c7422c54f8e1f40ba71062c033981d9fda4387cafdfcae9104eaa2bd28309787f44f55196b5a6ca34c0f4f65703bcdc3f6a2406f66c2018ec1f6fadf7dbc98aa88f780a7057f3beca0671ef2e15036b25d6b8a24d2840b02094d5a715b9809ad60ca487316846da8259f6b734725e0337c3ed5568e850f9de5bb738b93f2b582bb2244256e9fecde950fb1bcf32988403a8973b1aa7ffc4c6ca3eb656022ad2dd8f9450df2c57229b09a27e305e0a78ed034ef51311195f6b85f902c99a298f5ea188f8a4c6f3a25bdf2848feea3fa863c10310f8d4d4ab8cde244698dfb0e8ff07191144dce0ba7cec36916a85fcaa4d93e20390f8e62b3fbe782f1bd6d158ef1d233fd0662085aecb0246cffb443489f352f9035b632e3a566a6bb19d3dd4091b4763db5fc78682f29f2f11da889ee4ca1e9be6033a708a602625a611589b1a936c4b801c099013b5d88ac06371ca16e8ce7f458803570243399cc607fb2784f45b94471809d002f27d6fa1d4638eb8ebb33db4a3370351ad5f06a756df5c13a369c1daaa785a54b4e7027361b1947187e7c4ff339cc0030e1e7990cb9b95ac8cb82551e4318947d0c3e7c1a78936f8c06615343a27ff2003aa5401d02338cc61d9b0657cf1c4792b94a5d3750cdaa80f01f5ef03c4e03f7e03d938c757979a41e4c971fd7c021119fb51aac875a07ee809ad6f0c03e79666e1030d6987e1d988a1395c23568a61638b7d5fbfe8a16d4527fded9d84079bf90a9a031c4426a5c930e57d08430af48103a5355bea13e55aa283e0ad94284bd2715b940363b9cdf29642e8638537d6d1738d6b1ed61f3f21ac755fe8376bf1c0bb26f28200581e02b3b29a59ee05d43b7c49aa934417a35c61c2693ba9c1e9f75745d636845820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e021ec2d5ccdd7d68f225bc23b7221d5e9573ab4e9ba15b6fe288679d802b4408913f2203fa60bc86d247f44a26985b46980ea63e5723d0b85a5401640ef668ae5090fff600581e021944bf70af64141e56ba75cb080dc964a577c4f9b2d2075c6372dffc615820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e028b53cf7a408a0451c5313a3b6e5bf6b2c65702e164f153275be5ec7ec543061a8000581e0221e132212ea311ab05abedab3c905e2394cf71c1b08fa75b7a4d3f520658200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e020b047fd85141b5819a474faf9198cdff595d580afd94bebf35ad2abaa2449bb796200219713203248cac967a837aade7280dfec989e91b8b4549068ed79587347c26736842245b03d701b526a53a972c653fb93325dde288bcff88442e9426b6038b3f6d24370f2a03c16ac2aa52b6ec9002907eb6abacd6044435be59d6ad1f09ecf17f1a7b40f15c030f0c313f6c67ff74d1235ab8686079dfafdfd2df92d375391abe29e655f8e3ac032078d91a0afb5418649cb9d16448a57f4d3dbbf1c25caa18760ff2721d82dffc0219ffff03a79ad0aa19607cb9b34bc3e06222834cfd82d324af957e90522efa638aa44b6203957c57a6d5b54b93d78ad2006c4294de2f2ed31cb1c32ef0a2846ae92b3131ce03ac8e8c8a7e7da7326a751db70eca75b23198bcdaa1e82b6dc82754099e7ceb980314ec8fac7c67384876d0ecca9200f044bb09fe045bf2fd90504590cc8cd1a8a603be01aa6f681da62ca235bc27d4a9309eae898aa1b8ffc41681bd5545775fc3bc03a340aba37e024519df23f5f6875ae46201834328c8bc162664c28b5f91223f5203959b3fa2ae3e098323b2f60cb10347af08572423cf14a077afc7861d5b070b2c03b6789b6c5ca467bdd7a49401d0648aaa43b68900296f2c319f1b6ba6904c405903d54a473095cc00e010e2557f8fee280df732cd640cb48ca81cef58074944fcf3036384032b250ff8c7ce23324c911cec6a3731b51815be91ae0be694fa30473c920219ffff03e9738d99ffc6368dc7159126e29265fd9557087cb85a36a7488b64befd52a0da03a41d6e6bd173aecc8fee98a077feaa82e475e333ffbe706e585b364a5ce243ba03767f47e61f6383c21243477b61145026a13fe4876b754dff2b32c3fbef38a125034a8246af3a900b3c8dd40de2a5cd3438b7c66419d5411dc84704a8e474baa6d303c6fb033f46f54d3e47108fbd45869c036798ad85f46d80c8230b8abdc1beedc30359f1f30a3a79a01396c617f3745019b317e58840f2dd5abe0ee6c50b1763ee75037b33afb06aa84c3b021cc77fe8e288e96e55c97fbffb62aa60f2df8847cec2a003e36f8d6f4619a2cac2aa8712d53c55dde75a790b30265ab5981407d27c8a5619036ac60aa5d5a87df273d2f37996c0627b3c7792c9f47afe89bbb179adfd7b6f4703ea206441ff88dad43de887ed49b5ac384b40ad0a11b84fb8a4cfbff8a60f92b20327460a76c42a41686c18f2da2315fcbd931c3680ac43f3ba2eb6f371bd71f7c303625bf604d927e803191d8e8eddfe532b8eb7a034b709691472c295203188aa980219ffff03870b91937272b3931bdaad3eff706f558d229de52a46edbb9f30a019885c46a8035e7735084487e8718285ab394ac6ae9426ddc6b779a4232b917bf7aa8276f343031822018977006c4811f84e4c48366e36b257db57a8a60c7e39599654e6cd79e803e1009a9566fa28c8ddf6dd8cb7034de9128021923acdbd8b4820b0aaaf9f564203d3d700b5da07467f35fcdfb136dd8d70da86924ab28250334017c002c88044150219ffff03fcad4215202a61b621fef87b0314a5b9653750e3d409be55b1c6991abdaec7b60317193a9e572e7b9a699d1c14a09406c2646e9c3959bfbb77807733f1f3e14e6d031a790dff94ec59d534512060bf0e33d467266323bd31a5f692fb2284f72cea8503e5395220952378dc5a5dc74a9f1ee14be5af3557193e956a19df0a97ec92a6200363c2191b7384764e1a5cb095b702cdd246d4161b4fd18e906404e5d0ea52651103112a528c2e733a03f059a16d462525424809351a0609afe36642ce0e174e888c034d53aac430460e69087b1600018b0d3ddcc212998355f00046c5c57f3df02c1a03e8ee87dbe90215d231a19a06c921074affa209859949208030a4134fa9601c66033116325c63860a54df0faad487bc2acfbf08fa844f8e09eb57d0d98ed3bfe81703897e01aea791a2eeed583a12e0c2d51029e1d04ec3d2378ad29706a6b6cb884703e370541f96df2da6313d7125369d652f86e5156772af3951eb040410d60181a603151a5b1702cf0a9bb3ef2bbc571c5f013b6e015aa820f2519c1c19c63bc3fa5d030a9a609e7f0fbfcec75bd5aac73608effd61e1a55d7e5219a66e4ecfc7418f7903ce0ff42f5f8c8ce32d968df156b4cbf69b4eb3be1274476edc721252f7f7500c03dddf39c54cea7576a9871dd42bba74f2e00d1965e783c1c92950aa4306fb29dd03abb5b1637a57984eae05f34137fc4d37846d16c9217d71c56acf6e5bd2697f6003dcfd7a624b5fa0fb9182346daab6984daaefd9f8fb574523dd69090ac99a72b6033759cf18605ffcd3c6ec17978cd4f97ffbf477872955b712357d0517d554f953036ddd480eeba10c9e7e9def3a9169deed888711076f6845b738d841d284751a1d03764313128dc20d06d07bd00734b16993e93e92b05a2f393d453d686798acdd1f0389e885d7f58454eb8cfa4a55e6727ee32fca4bc81895df3e90f00200c7243739037b68f233a0b36dde15908e4f876ab6dcad59dfa200c8a28e12c46c121e5867b3030ac183e2df0b81d2df291caba10be54e6c4d4d599592b08323f5534c4d87e66c0379b030c1a409d058b04b1142d7f48ec6867c8ac1f445757d5e0c439c9c97790803b6674e870fb0328b0ad7ce616147da1e4ec3afa539ce8dbdfa9afdc900ad267903ee5054b051beecf69352dd00f89d1fdf65ac497a15ecc0019fa4b22eca835a5c03cede5e65a59aba09891bf71e62be6365a2cb36f292a03a7cba31e296a5dd05c801410a00581e027ff05304896c069a3730ecad2defe933ab65d4ba447fdd44aa092e7d2244062006d300581e0242f32e81eeb32b22f047fc2e2900c6777a2d5db4ee68d693c944d112c85820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02dd3dafd354fbabd33d5a67833a2e4ea56fa3d48fffcc598ba67d9d9b4b430f424003e7ea8f3c6eae37133dce65d2960f29cc8e9ddb33dd6793246380dac2eec8c30700581e03db3be71696422c80df078d7d8bf141b391de3a83a1653acc0cc8a44bc045015fc188f600581e03ffc300290043184a47faf21adaf2c01685c724d5d266b9acad8800cac04406422c410219014000581e02341e82bbf3aa2d2ae5d506c51d0b36705e1a360e2cb49ec1beec53569c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03887e30fc46be8b017a82aca0e0df5fd995b98eee9ef5a63bf66c7d4611088368039729ee8b09d7628c4f39a0a63991411f9300e78a03706c3a6968a3f0510e2f6800581e023422edaa29ccad3382d412d858f58e367907c4d67b44f5f49e3b65790a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ed8d03a362fa5cf148e725c1c534c3bed64753e36e6992c63118fd507ea099d7389268034681254cef31f75b98d43abf8d3f99a4ac7af3d282a2ceae989ff5ad84c93ab0036cbc11e0dde1aef91ec289df69507210755a14832177ab3abc0937b9cb75e788032b20a2333b4a840367c4d6bc0b79c94b6684a73cd4beac98725ab0cda9c0408a03fd5f2985407e6014ed85dc0c3176d10372421a6a00b8ecf54af09cb0827e89e403180f57c3dc3fd1627c987b5884902e47860996ef2d9d6486349b91f23e21a28603e95eda4e9f778d754e5ff1fa9e6089ec9d4d996095a67811357ec9b1d7c6f6880219ffff032f5f3790c5e1df8010310e3dcdcdb55f929c8b3e140c180797f9c30c4d9f8b85033fbd4262346e6795bb67f73af58885fad73ffe0acf5374408a2327fa1b5a83c50219ffff0359fb7cfe568deac18db739f7255a5d5d8b6aa65de8403538595caf4ceaf8d02103cac36fa6ef293c8bd25ddaff10816d36d5ee31d07324502d4d8e330475c8d0c60356620fdfe289f3d05c6325c696227177e9bc452d28ce3cf52d8e526dee61158c0386bac588eb7aa877ee282603c263a433a84309ad56c3b80fd5fbaaccac2d5d2c03d9464ad5e4c283c3cfb105ba44893b85469f37ba089bb14c736a5fea7e2fff8b03028dcc32a86e8f20e6e91b53c0f19bada7f1e5e545c2f5ed1ae88785a3abd7ad03605516453a2d031c48056af21c73e116e019db7dc58c5f9c381e2c7c1802e9cf035efe79438ba4decc86b71ccc4ec993468555f75ebde58131cfdc0e3d12427953031f9e4f1966b785650248d306b370c9693bae791d7e31021d48da69aff772895003bda59043edb9b8d7c759133fabc83e9808bd423258732c656615c9fe88df90f20303e93cbadf5bba3c3b142a8854549e443715fa9ff0b29af26e90ef06b7a419b50397ea409c70e2c1eed1a4d8f8a0b1eb234fefac0c9f98e501741266ed96bdc97103d00fdc298478251dfc01e01cb016900c78791ff8bda0a4c389340c454a8490a20219ffff031cf9a23dc8bdf5f82d158e5626ab51d5e4dedc416aca2ac914c60912504d4275037cfd40da0f784bb8a32539713cf960a2467102456a31e99a3e5fb9eabf867d0003fe1fa639d9beb15b62d0de0c0597eeba0b14a24bf7facc258782f64d9c34510d03e2dbdf7393ee84e298a74ef7d267cf50cd27ba6a533f88f10f5dadc86d94d213037e6e9ea854cd76e4f012cc2082848001eb62898310e4a710fd6f8795c14caa0e03b2002af846df5728162995b40c60b4fe7d73273deda99af46a894fe6c86adce4038944438ab2471e182f15c0bfbee9cdadc5aa40da85687c7a5f97b09aa54e49b603936a87d3a7c9f43c58d375ce4a686992a269bbacc11dc30b021ee2fb771a4c9300581e0299d5f090ed0e42cdc38c96b00b440a5ec8d8d05d77a28a649f170467ac4405f972ac00581e02b6403fa05822dfe718c1ceed59ef7921f9335403c937a7dc29d0604175430f424000581e027a0936eae00f5da1492584276199399895c3e7dfa29307a07f7aa58e915820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02cffa43fc80b85e502eb3be94acf672c3874e0b6102a8b77609f2490c2e43010ef000581e0219ca0847170839722cf81c2fbb977841101d8a3e57b37faa6d54f828564340865100581e023ea051eb926824325cb27373d29f1897900a12771a768cfa82d8869d6a441e0a6e0002191b2203bc9dc3fee7f061be74f024b4595799c8e1a24851b849baef0cc76ba2dab47c3203c607d2616e90aa9afbb78728f047cad7cb3cbdea108d6fd4152e0314c79fbf8d03a4e3c101ef7daa95b23c98d24972b73781d067aa2bf5f32d97fd02c70b86c20703615e5f52b88a7c6cc829a0b6fb6599136a72a11ae32528a0aeaf6863016c441603c690f88abaedc3afbcead77300172d84560e1246ca9157c5c05a34467330a2030330dcb87a8052f1e7d6f1dd912f26466d9f3b96f9e43df92e170276b01744334903e91b412d8f1492099a09385f402f124bd8ffffd41e57830149145453fd52e4aa03dc0de3648e6d4a59521ddd6abd989a5e3f41a68d830e491eeefae9ff162889cd0351e1f1c4ae4c61c155d70667f66edb898c0e650e422d9bea9f3549fa5c55253f03c11e2f7310702fc207a2b122b67ba7c8190082cefe0f7cff22d1cf6326c0548803e74ff32786a2c7db341723d0c183cc0d9d7e06e74255fc0f896b2c7e7cfce1c5034519ecf9907978b0b0d92ffe0d4a8b899860bf8453ebd5bc8b8fc7b673dc09780219ffff03d910d4031137d38ce00c474c37179118304f8e7059ce03e0a02730eb3eaf057403649eb45dc3ca24d153a149bf5f74ed488e1c64fb1e5c1bad642d1c7cac5380f503ce55f4005ffef7e7c283d3e3eb6828163e7b4d3b51129cd6b9845f8aa2da836a03744290d62070f1aab83661c98173dcfb574ddf2fec330eed15bfc10d7ec9943803789de4afa4663a1731fd62e77134ce950cf3dbe2d395baa807b69d7806f9644e03d15a387cbfd3ea1afb9f33c0545e5573a321857012e77a33cfb1d97d9f74e8cd03b934e6d37738ba278abfd737a79de205401a95033314e84e0f3239a81933c19c038ac97311cf3a567a0c960bf700154bc90d644d3b0bf19628a36e46418d92ddd70396a8f20a1090617bb0f05aea0a41936364c22bf4e116ec966f664a8fb43c7e790391dcffe3d42364408e3fc676c54283066f9d212c00e9a121b693e0a79e712ffe039eee93a727e73d2a72ae7a65545c7629116f86c303105758f0b0f4809dc03e19031b60e7f5287cdee226a897789019e96ac448cb76543ecccc48b6fae1e0a68e0d03e6be9afd2b1db46ae0eba17c0a68d5a5a274bae83efb0082465ed4a9786ab71b03f3be01013f4053950cbe52614bebc9879ead92e44c71c59c3efbf5983889a35e03a49ef81b2aa4599777b45a72c2df5a11b006992e79266cea7cbde683055725ca0219ffff0332a72773a1ddfc38f97ec86b145e54544e3c5acb97494db7ac7960a12a31ca19031a66d170316b0d15bc0e3d16e9b89a04b696dd544d587751f31c6a2c0b9c13350303ab39d710da388ac7f5d6a802f17a10c8f38026376412c22cd3448834489f4603381821f641e0d588dae051276afdb323e0cba1502b3a40702584a58860359f6f03f1f02f9f31c693ede0bddc3f7420b0d7bdcac8816dcf66bc1dc9f435f16388c7033dae0052d24a0ba4e8fb7e6e806577ebf21a807a310c15319a161d5ea964844b038a38f602da7a6ebbbc8c835fac69928bed465aa56d603d8d8b2f343d7489b1150320d5ae08e9081cd6872effdb37dd0560f0b2d84ee36d92d120e0c523e8480c8c0344d469326cd5695fb18b746cae5d925de7e9ed432124c993b90247dda139179803641de7210284316ac94d12eeb59da879d55bbb761c253930556cf9dfdcc976610219ffff03a2af6ba229eed0ffaef5b84a474b43fc239b707e00144a360c7cbd354fe7d0f30384f0a947d3369f6db8772794519947f7e0aa9ad0ace6bc28fc9dcba9f14b085303b9b36a28bafba5031bfc9435ae990e68cb7eb18724e54c67ef80c9ca6b01c6a20317375b9f3506151daad91a0cf359d17b130671d8dadb8c123d63959ba395aa3003b86de6c6b48c1c60f17cce7b94e120661e5dad91f4eb462eaa54c363ccbd70850321edab4924e25d2b451d4ac4d8294a563990e0effeb8ccbdde3e9335e51b035b03b73d9a596b066ef8a6118bc21735fda3aea1b4286a2671063b8a8a546cbf2fcd03d5d6388c1632798ef3523a4a220d09715613a43e30124b38bd6947ae7004d39103f2ad6e81083f73de522a0636a57d8982d1db98e215be570fb2acbf4358e4e2c103e96d5e259506e3ad2456e079aba78fc1f2c056f154830d8153397e63252554c70335ec70f95d055e46d88ba4d6f750b4649abe5534f86b54cbeca3ba773d98fdf003c3b19ffaf607c231262708db6bb4126a341e86e1fa946538c9c8af31b24d2b7d03bee152e596a8d473b7cda336e8b11d112fa700efe2e978ab47899e1523c0fd4e03ccd139c01eeb86beaac4df32411e45fc3b5a052793eff07d2039a9b5907ec4fb03c3f5b1fc470b0882b31d88bea62f52516fcbc45b05524586b051094b23691f0b030eedf11879a338f36de4bbabb6a4817a08e74b0636d4503070140187601c96ed031766f13481090e0ae42a9730d8852c36c47f44a25e3364dc0dfa3a64ffda29dd03ae660de8316d7af6dfe864f826f84d6d1b94bccaf6d27b0eb0a9d4155233b6df031f160fdbb310c0091e7a7c22f0d59a0932e06f72e0a6f3cf59968e2867e864d903e5bf0bc66858d15dd4f785e4c5883ddc206b6ad8fee41c114c61ad32bfce256f00581e02d37aaaa889d4b06133006c92920c11da4b6e31cddde037f557b2a82137410100581e02e9f6f59add5e4b22d34e1384e2a3c52ed10e2db948faff466a38935f6c5820fffffffffffffffffffffffffffffffffffffffffffffffffffffffe5108964100581e028cf705315bab6c5016d91748df5427e0450a9c75e13f987999a2d72247440199d85e00581e0259f65e6ddd1b166cab64aac1fb71d8e367210acb8b179aca852df0398c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581d02f9880e6b5194e104d23c9aa66841617d9385c5c403351258706d6b9542752700581d02c4a474fa2b3ed459ab67843e0c508438fd1f2f67418ed5f52fc1a9a6443211620002184401410c00581e029d316a45ddf7d44bfcafab996ea9a07cf8c2db2d342f2525ae861fd6565820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0266722c40f6dd3561cd35d51dbddde5c7c0641b0fd0bb6c218013059dc4442edd954000581e029b26f815f201c426d7e11df208d3722d5f611be979f259e027ae72c1ce5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02b3847c263c51e239a76fe30e3e3816ed75ba1db987025879a8cb7cf9e3430f42400219cc6f032da25ac826711b72d76456a487d7171325c0e6842e1f68ef38188b42717cc68c03094f13c1f8ec1b72b19fb740b81f30733d01195278ddb48b5953c6d17d716e100339332b1c09debfc3027043883695189283cfd604244e644286b7976fd9b0eb4103d82b51e58407b329f0f8d1c0936162dd4f56151356e51b4e3ec914b9c7273a2d031ec441d5926c3cd03ec299c3b81a82f4664147503ce157b68abeaee995d3466f03783649bf3b78d2e9b7f8836f94fb977f5f12a046db460625f9989976a1598cd80398a5920945c6d2f8687d0b4febbc0ce35f5ad43b171a135ab5f98e45928bb1f10302154eff419f3a9e297bb1b7d9016b4af98e238b2f0b45311ddb47ee4eaa4aa5038daf2d9298964c396b5d575b7b9fb9b552b2b5140f7b4be7674795cc4e33e32d03c80e5c151caad097e4453b70d9d471d6c33d68207ab9fb23e2464b3ee16f655003aa40f6c9d79c78ceebb0d949cec3155e2cbcfe8cde6da962788ff94c0db6e1c703aa6d98ba91adb539067181991a061cca8be9e1fd7a142c8da99d4de7e07f725f0219ffff03f1cd680830bd48d58a195d650b034040215883634a4d660bc1a89fca0b925b3c03fa47451b87109d361f6d04a995a6df69c4edd1b1a95e0c4d0c7253623750f11803fc986848a6fce8f650781f8a7a1d29a078b2930a48944d097efc892b8c02b9f5032cc74bc78ed3f7572e3ec32bf4767df44188589074996ebeb2e3a20fd40162d9034ca0714fa4c6754994f7e04ccc7f8d6db61ae9bcef56cc75a9e8063c5077d61c03bdf6ac7d1c970a47c4f54fa13a35178f38470bdc8c61c95dbb7ddc653d00fa33036f993bc1a8d681080432c856d06b52e1eb534519e79d7a4332054b7321e2acae03e50187f5871f8c764ca7dd7600dcf808f15b92c719bff30032123863e01979a903c0996318c21ea9141507d891c9745c35d51239cd698928f813e53773e7bbea4c0219ffff03e4f093d3cb5f6eee3e6bb4b7d4ee606ce3fbb268a97daf0e53f218b10d33747b0312c9be45b4a4a96e6fbba5c99eadc9c05fa3d59d2b4c99de2301cd69f33f7ccb03ed623aa153e451ac9face45b12358fdf8f8603321d2f02cb70217d97e63659b10311430c5b1aa87e124b1dea28b2489c22e886f080d35c96236839f7fd25458b3803f9553493ba657c3e9a1306e9aa89a22656cdee8f26fc546f89ba2eb16495ec3e03d4c07f5c3054c7fe7c422222e4c678a65bf6d89e90d8809793d712452302f31303a820b41cebd55058a1af4b39713cdee29c827e288c812da1878827d05a9fbcc40307a30256d01ddf5ff2a30e0a294f4dece075f069960a88efb60c7eae65c1cd730219ffff0389e506b4893568f9a308edd2743311cdf8992b34785535b145f14f1ee1b89b9903c404fa84c5f1a6725b01058ea6c06160cc8267d932573d4f9a5b8555004f7e44035dab17df6149e2fa0a31719e28a817441ec38b34dcb2fbdca7f0fb8396283e1b039e76d811b926cf520d641ac7b242cd841cc8984ed208f40036055733c7edc35403d7ec0e78c5dda2a37fbd0661238aebe1660e1baa76a6938626c2bcb9a37cc146037e7aa11f047c7e8201bf4c3999c13ad47616104f894021757f483acdddd43d40036985f0a4fe04bce3a47bf93a556292ca1416ecec7687f5a4a9c33ca367a40af503ba88380361a912ec74f1ee2fd8c53cdead98f48950fbac7d68c9febc32204fbf032927fcd2f788204c55420d634a3f362088de518f46462d064f3d5834d34da7eb0369a471a603afd51aab831f6f022582cb35ced2d4945d74aaf48d38aae0c99480032ccf7c503b9bf4c9fcddf6cf06db821ae566e77e1debc292c0e61fa8fffb5e8e03fc5cd1f69288887d9a5f7fedaffb4defafc1f7f6658023acb056db64cc64593d03fa19d9ff81c092520cf7a70cba7fdfcbfd23babf6cab32d9d1d4d10ba5fc9bda03ad77b50f9968266ba9a9becacb7357c469e3a883ecd238386bcbc45adef2e20d036b3be4d809544a9bc43844afac8ea81952e35429b1b145749e68e8c7038bc19503e1943e33cbaa689306ea1824b13c8894661470f9d1a81f1a1fa3fb9825c01b1703bcbcf7b68ca36b01619461b3b4129bfc2c25d6414c56e0b93ed40354164f6d1e03426f95b9ad438bd6166b54f5849d29f8e3cfa024d6921a40ed81ea02532810ce031346f7053b40671486ca13bf538530794c040ecbda948cc61165380966ebce8d03b8993c5782df0e9e3e235344300a0b1a316188421d757487f7b15f9048a735ab033e29a3d67533d50c7dceab8ccc64fdc68a1c56b1f7aee7fdd557ecd963cac30f03bba99d06f60167257227434435d049e3208a12e70672464ce67c1e4fff2c3f780339abecfd9d199e2e4b34341d9475b2bd122853f12066b2a2392007210b02513d038c25bbea73c0dbb15ec68feb6116d974192410fd3cb28e563966411a964d457b0379ff4f0eb822e5237b92b2ede9dad814b2f4e05c2aa52f00cb82b9e97583379103996c0b6a3b7b2181b62d7156bd6a4422988a0364e1d79c4db7b4b713c4ff936e0301185101f3ab94db3dfabafdec2e0f7480cbb2831eba5e21f89cc0809b34ed6e03701867fd446a043e3b6cbe2557c8e030bec9e313586e5cf07d8dbad1d3342e2e03cb17f2f506fb543e46f4c6d8aea71001c1f7ed9cd2d7d7879af8c6f38c9e743303b06c1595dcc5fd140cd54ebd2de4bf022b75d504685bcb080b80683a11f2ff620381f240860f6623e082c185ecd9babec530e17bddd2d8ce0c03c8573d40c4e4f100581e03f5035376ce14b2cf9e298a3a04b74238be09e0cce845192c185aae68a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03adb5cd0ce0981c264ae5a5c0fab1a86e011fa8dc3d2406b0f69776b1f0432916e00219480000581e029b1d5937e1cdd7c277f423aa2014492baa365211ef0361efe03c1d400e414c03b57d294c2b76e54cdc794f65461a5deae91f2d684602027ecc97132aa67ea93100581e02ffa8139c67e4c08d1b5cc8298f405a50f4b58798367745a2e8a54879175820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038ca8728059772d268416f3f3029fe256e6ee252c7f8688f1b86e904b403c7ac103bc4ec1634ed88ae7c49592b7f4015033701a51dab45d0e3514d7c1ff7f555550032bd6675a8795d48ee4bfe02de1cf1b9ef91898ab79f8b7f1e63ba57f72f3c0920397324e5db4b4a1b0c4ea9e8a1171b3f3905223f0ea1c40bcdea21a75417eed3f0219d26603cd3049069384557476cf844c20e0818729a4de77bd28c3a0366683e87058df5c038cc7b6843e6d9e6a0d959815250d47a3e3e511a6ce8d575a7a2e7c00160e382603386607d530b8eb8a8bd6ca2714d3ff0de2b5a0f50c9a3c7eb4785858c0ac1b04038afb639044421412f2a70d925f30fa8217142ec2ed47128cb1c343e45d25d5ba03e2960d0cdf1142989a356c2483dc19d540cc2a0f5f33a92a22ac8a28cfadb6b803cc3a5929bc0132078f48f2a4b79a81ca5de1fd50bc0e53b4a4506b37a113c33c0219ffff038e8dbd587da784a5f51af88f91b334c2fcaa63db17fb5d620124c4e13a8e90ec03e9bc4158543c3e6f235e98c9fb9b9bc3c480f9c0aa61e2e65c4d29c74b61e2c503a8a044348329055837f13c0c5f556fb63dcd6e03df6f3c61ed445e04df6368cd03959317c4af7eabefd6c57e55f3d55048ce05444f362e230e499adb06a7ac76b9030f53cd73592e239278872e50dba92ca121e61bb08a0872f4371759184e04958103e2f8f133ff4410a811fdf3d286e7c55ebc2a5034c5e18e8b5a0ce9c59ad12d9c03982a10f7dfd550197cc6bd66c1fa1e7fa5ba522d05a17ae8986a0e3b8d3b970603b2cdefa9fa41acf94bc0af617d626878a3699ece8e251fb08acc88f82231ffb10378b47446b8d1d7db7873d77054e45dd96f69f6196c6a58397da65e57b4be548600581e02853f10fa24e10553f6d1bfb81245262c28e23e308275b13e87fc4b61ab443c04a7d4036d1e5f38ac01c57f65fe880314d7580a09575ffba2b7f584257453fd023a2e3100581e0287d948c451222475ff432368d30d25856c09e50ba7628255a8c70adbfb5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03ed6f3d1a9fe688c0d6e8019c4a7c53ba4366df848b466647f2b91894b78ab29e00581e0283d79094a525042e1704940b85a24e93d33395688a2b4edfa4151f80935820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0218a5c23ea7fba033f384e2b9cee3dc574c7399abd6a98f993e6dd9b254465af2dacf109e00581e02deedad4d3f3c188dcf0a56d4976add8effb8155be983bd0664dfb10f2e4329294800581e027c6bd4c0ba6f62f626532c94b387b4c83a67d8b4eb593354b043ddde905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02c514823b61e9d1d46798b7cfedcb15cfffc631dae771e48b1186da5bd05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219785b035034664f46d5d3203eb18c82977062a3745f00a07e713bb1f156854340a0b90603de6b1babed3bcc7e98b261d55a971d40b43a451c192af6779d029fd7bd5ea21b0335bf485426b7980da32f33bb0c663c10d021af144a2e1f1c7788a01f7ef84a75034f3a5d18c1a38115bad46460fe2fcf40f8cb03de49838daf6aa4e4e8078c1645031bdad6807e263f21e4b6ee1b09ada33aac3facf131aef49ac7232233d6d010a903c0096c2c668f368fc6dbcce9e81a96cb033e194a8ec9213b62cef19fae3dab360373d32d3362d1b850c3b02f4d88c4b54b2945b1b29bb2e0fd6ccf38b903864375031da46f78d3359eb9e33ede2cb3cfd4622fad80af46b74ea16e32267cda5767bc0301019b68bf798d2710ba8b71afca593da6c647722ba9b981f969de94e0150da20219ffff033495959e41fa238bbe0e58b0727958d65937e5752f9646737efb7ec559285c8d03c024c304d0b47e41dabe1ffcc309c1ae556070004259ea0b9908d7a4bc7343b20305426c83c88f0c90767525c2c467326964ae03be02ef6195a5ffd86deff477ac0219ffff03fa63022b2a2c97754edde30ea4cb9f4993b3e47efae682a80b2cbf8a1548e9600332344ebfc2fcd5e522e5cfac113e8f590a288bf6d08908e02b7a1cdcf606b4e903e7747abedc76e3c0424a12921f4f87d34df737491aa3e8cd792772c61ff310860219ffff03da6a21eebda1b275dc0a1f15cbc5e2338217ebd6ff26f8aea2fe1e7ef4218435036b30406ae01b4d9fd23ccff223b76a175a2f380a5e7a0566e9560b7257a6fd2f03afa43c02e57c612490000178f31f3b773bbc90631751514f82edb3cd3ca7a830030625502dd6551c7282931cc06aa68c0d4ca362b99f2493589bee2d075416065f0329536610cdfd532d8ed2f82758c42b0d94b9668ecc1dd0dfb6c20d2db761a5b7038f2d8ffe04c76bcebe65165f261a5a62d79a58d0ff16f08ab51f5c116d6313f20392f9474aa308dda47ac8a68fd99d8919af8cfc3dc195f2c1e901c3dc052e41fb03935f8fab7dbab1eff3ea996d57941469db219fdad56f25ae547912a92d6202f2034e555ea0c20d419aa88845e3f015f4aa296490e591a4fed6f909d5229950a5ae0389cbcca1b93fe426002ec10ea39bb5e43a8a59f66bfeab40a52a0a979a00fc1a03bd59157f95e68e5f9eeb09155d2cfc067d6b488905bc507f6a59b77f21b2f89100581e0211f6463b62f057e301515ba815f6079a5afcba5fe1d61082ebeb9ae0d6439447ac00581e02b0ade0a24fa7c57ca3d3b5f464a7599e42282fa7d46402fc42a1e24bd15820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff035e325dc54d6f4451b6e2cb7b28d9732fdd3407281ddf6dd12c49e7440f90522400581e023881d7105d5fe3ae831a120c4b9d62bdaf7b39b0c626f8eacfdc6c9ad14406715d6500581e024a6c9682e54e4c54b163adb5cb173dff653e60eebf28ae481297fbb19a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03c636206ef3cdce7efa4c785f22a83fc9e0ccbdfb83fa2ef1f4ed42d4005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e035e0f9b242ab3e5df06f54aff5a9556402c9c23a27455e4b3117007a460444225be0900581e031c5124b288a96bf3b0e9cf74d46a315dbb31c17e9b100cf61ea222bd905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0218460219891a03d8eaf48c7fb13c806945b7b245385de87c24b51679e679aa01d924acde358c9f034469035faf9b9aec417e62ed4d5d2dfc72d0e253550ff89ba9c2b36a307a3c1e0398b73639d42f708011a4fb62642e7af0d711a7974465011294405a708f238f1603a9a72cb236360425639d885c4a40fa4d4e91f49b25e5af72732580e834e22f9f03727f381dcad9402abf7239e9b2937517c80893363fdd409c63066604eb15a42e03135bf95b9e0541572517d796bf2e7d0b4ec6f7d62e1c2a8c6c621917b16809a803332d865f253098b6d53d50ae5abe34ed765c2d7166e454d1b7184803108c5f9f03d65223be5b48a267dcf3567126d34c65905e7f6fd22487074fbcbf1b79b273560325da0183744a4e81082d068e42320ea87737d1771dc077cf508033227aac90fb0321745091984072f6ae4ba25543cc87d359a378697173d8167449be81f75c184e03968d16c667cfafb926cf0f072fca89de73d9e1e2d865b9aa146d03765a12007f03d75b16f8a7670fa9e3dae87459a320ce267d3ed9def5d870d1c0f2c883551f2b0219ffff039a68596fc5987764e489117bad556f7f0c010faa88064c4350b9a3f8e9424aa90388ed07d9b61bf3f0765507ec781e74b8e4eae444282ea43a9dd4e735869598760369b5e1ad076bbf5c5bf08bfee52a8d9f43dba0a4a1948ddeb1f368dd51877041034e38516874dbbf306bd0b5c7e15ad42d018ac543995bb284a64220d5feb312a40368c3258293f5452d824aef092a681dad895df439c1939d99f8057d0c2b1fca50036c345f0ac520136f6474c44a60c255359aaa2003bb6b3a455be7af183d20106003eec902c8bf925a50d62aa39a6b4fb446282878375878642fb54fb940f8ae9a9b039b7949574fdb1d4afd0a5b6b039bcd5641cfb794f7074bbcfbaf256f156e342a035736c39836b7c76e8b94a94b76c997c3d71671938c8f2a22d09fccc1a8761c5e0310c9ac60b409c764f6480ba4f8d7cc74280d2b61204e5f962fcca779c89697a80335da9d99dfc18fd9b624b287f2ba2fdf8597ce827711277505d1ac08e8b11647032da9d556319052f751723ca7393e22b837a50ba099c7f945364d7c9437dc36ad0219ffff0301bea51356bf35b90e69067718dcc3f1e9549aaae3ed87a2ce4206ec3a48daa0032831d1331ba546ee271a659c6c89e1e4ed71c768dcd1dfc5bd5fe7c34e374abe032dbf6909ec9b790554c36916c8181ba74bc00b62dcd49b0f96354f9b6bcf626503662681119a328cfbe9abfcab48d20e017fda2009d63ffee1b52963e6e83be27a03a9e0264f92cfc76e12cb15d587d861aa85e27808893b995d649521ebfcb5b1ab03fceab41de64cfa1b43087df31973c2f7149e0e9296c98e3a860287e0e5d0cdbc03cd855381140eaf1f5f33d044980b9f12081621cfdf7d7d6ef8f5928f411aaac103deeed34b6d4ba34d9cc192d79d408cf06cef29f00f71005c13b4738cdc2a2e2403b21469bd0c63759ecbaf6c14f9e1b18f2c9d98e14b50afe4fddc1ba33ca1b08403cab579a2a7e9cbf5c561bb477fabbc39e5c71488eac67fa457de85cdc1377f5803a993e1865155590e33a6279edfe10c382c092a27878cd347204a7c6683151cdc0307a81ce7ab2b175ebf41972f3bb89f31eb464c9fb78d59e1a9e46f77d0fb012a0219ffff03f36dda4b23416a947f7d5fba406da63a2792cc085324594687125da45988410d036797294ce7e5985d327bc1c6fcfb4b7a674c4222b3824e8df7ecdf9e102503cc03cff2ed73022d682e4c584885d471391c82ff7ee0ee63968a48990c6a5f99f9d50302bda0635d4e9de2ca36ff1777d873dd768a74c712e85b5c8685b99ac4a9094003d7002e3644f63a492cf835bc598a9550a412c4d414f5f80651b81483b281dd1503e6083c6aa92e041c47fba858c04fff17fdcb28f1badf09317282f7bc97996cdc0308de4e9398be8f33d6ec712d3970a01f2e1e82a0ae019cc82d12d685f1d048070340086357d59b3ba6823941caa5886b94fa6bb61abb41e23604e6d39270d602c103f52c7f0be32415a0e191f9435ac9837f209f40d82946a967519a756c669103bd03457a148910a4c2d8938ea0a028e3c48187be42af974f121f07a0a5500f4085d00341aa9c0ea097deacc8ec48d1bcd87cb87b9a77e2f29cd207ffb98a66f3a88a18035b8b703927b18b59c6ddca33ee420653dc63dccfcb3e96f3f0d3b01201fe79a603b6641666c55ea41081fb33e6ca9592a6b10bc8c03a82b00b8b93459adfb211870371a91f22144c4d8813f6991b5b64b364559d1e83102f4609fac610918e195a0900581e02058d8488abf7ebe29a12343cfb798035a214c4074f6b19e8c7a1b9d5e14398968000581e02c6de484f183a24651d6836b7d03d57816fabe6a2c9ce56ebaef9b0e474448c9804b800581e028d47ef7577a06283b24606310a49069348de4c966280e844bafc54339b4501798a0ce600581e02dc5aba41b173b32a642c1603389db1ed2a7b0cb96976214cd0afbe4e095820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e027f0998825c737c0f489273a87c12cf16bbc78113fdc2f15e0ef806156e4b52b7d2dcc80cd2e0c9046803a1fdc8f11dc37717cb0a6bb863ed42230c190382fa62eb45ec0ef3ac3346a653021916c803c4524a73afdbb1c26edfe9c763d10c9446fa179b7ef0bb00869429504f2aa67403a7223225ba7229779635e4be1130fbb67163ede93c9781ed0ce2cd72e71324d603edb9cbdeaac1f0d02a8ebbefa0079f297d71a13554f436c3babfe8cd2f73509e03d8cbe9d9ee6ca40f8df0f70b1e6bed7becea4729c5d7cf997e69db82fd8a43390313b3c6b11ec9eadcd8f05efb40b968af4ee7918258493e3993d32fad8ed2942c0374957ac080bac6de1fb717be6fe7fc5214e7f31a4c812bc62ee77eb4e1f598a00324b52c7a467b48e0ebe40dca02b35f0ffe451afed6d8e7a10733ce7f6ee882f403b42bd0ed6e8d1aafce57346efbc583dff5b455951dd3455f1a2a99384c6d54a103f29381ee6a599567ba1121596f7f30ea271cb1b509e96999d55a8461f189be3803ac07a8a9074c6d5022ff70aa3f799fe9ff299ac9d39e686554aa7e49776cbbd40334182725921cdcd3b5386ab9929b14394ed5f1e5c65ead52712d2ad6bd568a86038781f196899b5d2cf87e605e80b3023a68823a01370cf2ad2da67e2d5539b45103e06fafaa9589bb39c9a605598da5ddf9e2fd594cd67f398a12c830426f8406670219ffff0338c68b0d1166153d353609ca481536cbdf569377e3352a845e272ad9c2a0493a0327eaa6a652d393b90276f54d8df6eccb13693ab1281d4413425f5ded36440bcd036ca2f610da5b8c18e670f9fcfb8a12c691ba101cb7f82c8724f113afec8e145803c3959798986ba67d5ad4e880142850632ac7a05a5b5ce7712ac67066ed2dd94803cf6db62715ec2d8b759d4e0d24711d6a90077306fe98ac84ed8037f572a541ae03e6a364f18f148de2039a1c9ca7d9fe06a71313eedeca8670a48ba02eb6c085f90219ffff03faff981c50b8eecab5edc9f9fb9c96ec3aa4c9aec6665908013f508d03ca24df033183f28d6833fcac232e53215fbb3b612756fb8669f4ebadafdc4dc1bca9f47f035a950ad7b2a289f4a554985812ab1b29e494a3e9fd3b9fa2f568b9aa58f23cf2035606e9cb1033e02357e285688446af20c3a6e18878d5071620558c97e2bcef130337f2d44c621d31e8db00ff3b10d0e56e2746c939c646e653864832947bf4c5aa0324160e401e06bf9f8c5defe899c49aed12625287b5ccbf41457d351475c7f6ab03b735496dc2de84954b5ae8cf3d34018334c522a4f2aa4d36b2d846fef076e9a60373fcf13f6aaa71dc2d7c7f0cd23bcd2b1a71fb53e63e1ba0f6512f620d1c8e5e03df7e0ac21001b53ad04bad8648fb1c8084d616815bf0b02f2e6285c45ba1c01003d49f5c06d452a868d1dfe8d9550d5ed45e70598be04487e9e0a45123ee6515f103d636c2cd18439bb09b8281992a4881fff2769b6eb1a4bb38107d6594254199c00377f21432acd3b0138ce1b8edcef1f8546f708ff7b7dfe63aeedbb40fdfafa9dd0219ffff0219ffff03f4018a15050f43c0dcdee0072f55e961823b16e726ac5c84529633e052c88d6b03135a3097af1207f8718a550cbfd1bae267c78405d47ab923c78a7128a852433c034c8d2b3ad80b5f04bd869df46cb9b42e34e32d6decf1847888989c48872102c4036f92df9611fdd6ce0899e965f4cb38601592df1de21192cb7db16fd82157382303a39a221d6160bc222f3906a958d3b769725bdf4aba6bfd797b186674032e8166036d1d719248b1b69be6850ff0689fb0632093e31d45c5c6fe4005b28f48ebfe1903d7792af32aa0d9fbc54b63cc0c202ac4e1748cdce7a6350255ab7f2b0c1d73210312e9892593475da42efbf3c153e44bc1bb57e8fe1da221a0c077ac750728ea5103beea27eeaf35cf1c65148da398e987ea59f8ac9ef58480a4464dec0ecb43fa3703bd7e2fbd313023da291a5ae5829a0ce7060f63928a3d1ca83b896e11ca84d5ff03dccbc09dd73a46581f45ef1d745972141c22a34aad6265c0fa11523545d7930703dd56897784eb1342cdb252edfb8d1c060dd78e13dd89c03c89477ea65e367f2403f7a524b2051fd33911ed756cca7a2b4fff9b97444bf2d0fb3b57c41709669cfc03d5f5af87f65577c0a00f43108f7c7f9eddbc18543e236c52fc3b59da3af55af4039ed18dd5237e8c02078722f5f93f33c537f202683f735ddbd5836191a21af6250314b3315abbb68f6398dac8b11e1c4aec4a0914e542849241272a22c4c46f1f2a03273847b7c3dad00a6e58fe5e736edbca970e19b1d2df975b9ee86408af562787032f51ca4969081a1a0ae94b3eb1d9ffd3bde865bc8f11238c891a9578d477501703153685822a8ae3370aa9fd1ec1ef85612580aa0df56c6c1929bd440c678f318003c589f6bc1ce731baff22b435b9c527d33b7b186f486710ca26257d00b4da850600581e02bd1930a868831a68ccee29b8196a573df30925bdb5a34013bd6e80c891441cb9d4dc00581e0254c1e4a0353157790bc804f8ec842a2646d87fc7154792b31149aaa9205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02437f8518ace9c0d72d6db2f5601c8bd131a6d7308b2ac95834de6521f35820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02338b32ec501ed0d32bab9c57c78fb70f15e3e1cb57506c825d81be2a755820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0392220d6214b37fe7bfc42414e6e87a4e25c8abdde67be388031c3ccb0169f3bf036d3a20d3cb7459bee48cadfeeb5a34ca231327d30178fe35a4eac5db7174283000581e0231ef054aff849acbadde6abc351c257600508cc21e3eb032c3a9378d395820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e022328fe90fbfc6a0d568b6408b4e0221f5f118f06687c9173cefb89faae5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0227a1ea2cc0b2e5f43f8fbee00eea560912c7d4f9dfda0663afec04f7f64402d225c700581e02e658adb99533ca2593962a3882fd28dc6e6b7376007f52d708039bc4015820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0298de05c5c225d1f2d39290ad79f78b6b95ce22f7588cbb34afdb44e5905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e021ad00c5d5b57d3da4cf13183b614484cc1658d7103ed395e5d9efc396f5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02c627d35517633d8d2d9824c5695587454f6973370a8df1c49c705ac3d4581bf316271c7fc3908a8bef464e3945ef7a253609ffffffffd941c97f0219bfed035ded1b58d2362e916a113756914780c2b5d5790272e799e982cb430ad91137760366fb1fb72d407bf77471626892992b4990fb4749d297ed01bcfa3b64d23d15fa0354098d4737509b4e5ef41159f872a5b43129211247eb18a80ab8fd5749e5668203f9735a226e9b845d8fc3d4202a3b5022c54c82fef5b2e61754ea8c41d177d3ea033a7f56c77bc6d13630a58299071ef33fc9d49347d55ac0fce0a570db244f5efa03a5673307c5d45d5d3155f1002fa76b8c47762e1860e49f7010fb89dd5a3badbc036091abbc9a6689f2f89be87de8a8d4e39c423236bf05f7354a4b574876f76435038cc7629fb2c5d3c221a2e86370d1d5498c3d4813e838fa72c1ce2513296f04130339ab702c6ef1c645f82c06ff051e71711a26a802f5fc0742e6b6a90ee8e431490361030b76580cb011ee7452b7a7c1ccd0ad28f670da32b9dd787ee67adea47d6d03e0a1d7e6d104363708ee734867d64f3cb396214c186ab32506c3641319724e63035b119e5d65f94571aafd66d208d845ee946ea54a57b23c3b5e5da52c5b3d1bdf03f3094e53c733478b04fec46018044a9198678483c547565b6d24941ab5ba1a5303182e620d2be3c580415ccb46e5694df22ac44cab2a4872ecbef40d1af15e84dd0219ffff0318446c415b06b7b4bc21672308ff93f8e5d262a088b4bc6c993123aa489085020326d292157da02b3641628e0c67f0dcc66a4ad2b00c1ac5f6d715107ebb3ab66f03998f5b43e3fdd98b9e58cadd17c3b1c00fec94507d55ec7d9e59b96833b6f7990219ffff0390985a4be782bf3464076df522ec84f4c5935c4ca95276ff1760bbcc28560b56039a90a56b5a7fa1c6386db07dc50f854ba1ca5bd4dd6314e444435244b8d7ece50313cd73aeb770960cf5423f2e7e95adc76ce237df9efa77effb8fe11c7706f96c03f69e4563d84c1c567f7165e1c70f5ad598acd73de55e19966b31718873bfedca03bf103919d56b6cab7244cb4a95ea9ef2255af2a9343f9b5b08c3b2e3698689c0034e65cc37bf915d7734bc12fb8f6e0f1d30147dc483bf003152805c77becd96e803e10f8b5c71c70c0b81f418a342e6cbb11d2217df74f6cb7ccd52c8b9de2df3ea0329b9c87fd3d9513bba6378f73b9ddb1ef307198936cb679fe6c43d33de6c137b039ddbc9212c0e08a876e79c2116a37019d7bb6f5b8e6a95efdffa14e6628a8a47032394bf1af15eee4b39abab5fa4d2455c163c4fe6a0306989c6b09b236ac0a872033041a8a566bea3697e889ae108fdcb0fec92475435eb05d7699e3e115c132daf03f2dada0b13a81b757a33fbf8eca2912b25f371c65059a1e3d182e3296bf2c75e030105aaa77266ddc94a823818f2c2554667e311f1a1da59a7a9f40f53cc9b70e0034ed7e8859e4486e55693609862a9796f7c23d3fa9b29d905e8acae38fe75d13103d26a476566c41829e83d3b2c91bed39e0219f039112328a7c779be51f9e434e90219ffff03350c8f1c957d80b6d6620728d705acec3aebd2412d404f95efeb7f516702402e0375ea6b727294d842908b12aa7bebc4a1c97dacbd18db5ecd607efc541d41a42103e7f4e6c95e8a1b3295a708f9f1d90a88e3d3bf08857d8ce60f8b958175ae566d033a751cdc08d050edaa0d8f4e0bd48ea1b1075940eb175d0a3f8f3bab602d6979035977413f63a7b6915817f0b16b3508e7342ca0163e5572c555ff3e848a7e7f16036073d1e6b109aed619b00df61cf8964c5e7ebe5e10007941b9e7bd7e5cd2ad11031fd789ed2fe893f5a95867fe23a0f1f5c483cc62778a96584898239f23773d5a03e18db053d631cd3da75dd2b5e4dddade07cb6f5327f3b62b779751e644fc8fac0307247b8bb059f8f5fca3c3a7b158ca8fd83f5bc36cf71cf6652c8d92fdb5a10a037a6b278ccf43190fb8f6285acdcc83e93edce603712a208d6b7277ac48548dbe038a44cda888649fbbd599c449df4de62b94b927f889c76c1f996af2abe39f29ce036244ffbe027db2f1868d4286856a96e2d400890370e397df4fe65fd90f94a0b603821da3e54cf4e552d1aee35395b6f4ee72b10c3e0033dd10c28da4d290108e6403e48d2a77d169f6d48d08f7fc230cf211a4b3122a2056cad4f387666db397f9a903370d2efaaff4ca889d24954aba38ad30ea69cee44541ffbf49e2df3c28a3ce01036a7a4fd7b4a0fd3a83882bc9ea607dd6b69f81f5b3de2985dc40398435182d68034e25cca8c4dbe690987036481e903d5bc23fd0f955aea0289c73c911248c67a903e1adec4f7c7cfa8958efa81183947d6651a565c1d52ec9d42505a6f7773ecf7a034aec8a2c83f27a473ae0e0575694a78b553dea7cdf2e4e35beb318844cce94dc039e74fb8208d8c47230af2cdba447264cdcd596faf748fb63eb1a087b082433f103f2fba0c6ac4f5a07a89597c0d07eca9ac6db13d8e579b7e3c364f25b93a2ba0b03c5a82feaaf8731940d6ff38346e3a9add2c496ebe4325d1ce55664fbc8c2799303a1d8352afb3d0b9052f3dc9db076ece7ebc2f766bd5731e120afe220eb7677ec0378361865ecd8acfe69a149e16c27a159e6f62270d1974ced1d4e3a1bebdc443f03a5e505b2ad5d47eb25cf1db6eede15e6dd7046c5310412229ff25ddad8dc82a700581e02f2c041826fc1d6ba128fc50d6391785775fc92f3afc72c5a41837cabac440bebc20000581e038b45323fa9d5bf02191b021f9e5c6dbd6b2d5e9a4483f4fd685f40c50044d7c4d10000581e03c51c41182d9e2af7306e6584f252b69b0b9a2c5400b3b8029f82103a3043d59f800219140000581e024286bd815260d286864f001a88e764214273c0fd187003c1b793e038855820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02194b2003bbb0bda8c7f1476f9752dd79eba083840b5200189977bded99f46219f40d6e43039055e9b188680048a27e4a4f479bbe4ea60639f579abda35bf3210a8375803ad0321f1d47f43f40db2d09903d583d318ddcd848c3f1ee0d57c679b75d278b8f91703690f6ea3cf41a922979482c1a5662bf99b9f9045595e753f4f2f238a1ded1562030e1eba0d26908b7984162d44ba3b89d7d4c01a401b68c7dee9e262a9f66a355a0331a4d6051257403a4753d41f5238bd02fba516dd969ea1ae0daa9554908b9881038b291f3273b99f4ff38a55e10cea95a3c7c30d993b8249353ecd984362374409031c352c65b07eda1b38635628ce1a0f8c8759d92f3249b1e8355b9403f048a0020219ffff037c299023d46a20950104f511d353f330b8134294054a3be641089b2641bd202003738f757c0f30c67c6864ce07ed1f264d66b9c3f5580ba212b45b0109d9aa906103602cfc99a438cf235ce9f38ca461c276d0e2acd12e3875932b75f4c7f8553ca5033c925c3e42c10e9ac55810277cf6e1beb42b36be4b84d93a6ebacdf845d70c58033ea9cf2a1abcdf0bb646002a66f4209fd8ef3b9bff9702ff91e09f273c24b6ec0392e25a0e5caee5e07ac1d7716a83eeabdea2c3e8c33d1881bf496a5fc9a43d9d030010424d3c94e39b378821df75ed7217a3f2148ca725e1a8b242f206d2c4222c0318319bc71cba93c56623257b943e394aff25bcb5fb997e01c8c02723b71724a003effc62a779600694641f07bef8a8ac468260ad25af4b2e9328a2f9e10b36409a032632ec1302fef6082b691b93a6c755a964bc18f35c172874dc082c4df8bca13e0219ffff0329836410e6758106a8a438c571f845e70799a683a6d0e4f7863777f6cd30e95803eade95ba15d6d4819bdd98e7c47591564cf3e900daa262ddc2c783fb84d8247703b3770898395a1231db190d7213426480b1f528bf9d45ef6cddb6036a18a44890034ec36ecab020f0a1fdb44085907ec9ea4848b1fd9a2bb371989d627683af4a860219ffff03693db8f7b4d6f7f92e6e2150796d43086614b8a97575de670e2c1964f2bfff0003c6452cad98f9aaf4b15c707359ec5c7aeaaa7462379cf11494d96f340d109e0b0358e795c581c641fd58cb19518e10dfcf498ae34fb17bff92ead11a40dd70115a03312a4678e1383d78241e32c47ce6aa67a69ee98e588c477b4327d6de647c4a4a03a4565637661073243de18b769b186fbd7d785666fbb893275e3c3cf2811ba4cf03f8f53e42ad2fa339762e345c6b955b58f405f6561b81a89ee542311f2dfbd74a03e9d14fd073a0e8a20255c629dbf07dbfc28b21b242540bf36b79c9fcf65e3b5e03dfec7065a3a803e4a0f5a45bee7da642184f23e465c0a1a6b045b17b8ccd4375035e132c276695a99ffa859f086d57a438018507b0d2c69f69e7e92f3d29066c7b0316af81493426573ba47245cf4ca75f5d664f60425c6cc608757a917a6c6406e30381af3cdc64ec97a5384b37bff1a5a72629e4e030690cc57e88c69eac984fb1d903bd297c4369b87e7ce91dedc36c01e6f4a513392786d13a26d79516dbf2746ef103163866f17e00d8dccf57cf948c230955320c15f51fe226782d4db21831815cd3039186e2f2586620cafdd2ebb6045e1bca298bb5e11821aded9d885599c7380ec50371e9af8d3c3ada264de5408f52382e1925fa1aa0db6b4b9bcbd2d8a35df8b05f0385c85d58b6a7eb07bea599d380d82279ef054bd6542bd9f58764fdb38afc882f0352ae011ec931ded5a96605dd5ec4229ea31409d65c9d901c6fd3caaffde1225b03de05f9ba8bec15b2dae57b622e5cc6e90633d5ca879ed00db51ab24182e46b9f0374fefb4b1dada8bef4697c6e0f034fa793b1e8df7d9bfeb29552e30433d5dfb803dfa7a7bf57a37a2221c2115f36f7c0b9e8c36cbd6fcf46ea830de062a6f2f49e033aca8d6a418979061882397b7dbcdb53e0412cebba857a215d9ce257c73601580354360a47754c9f37a3f6880fe4dc62515e0bad1a5c1c81246c599077a28734f803ea0d0d96fbef57d973c56b64c6d71e905ac40dddde3d6fabd560db206c96963b00581e026001371b124c2b285aed26ce8acd4f5e0f02315068f002d836f3dc10b85820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02582cad81346b21d7a6027f255a83f20a5a8709967c25f72b97f9a862265820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e024de49b4ad8b76adea63970828b0f58eb8fac6ff513d70fcfc5d325d9ff4c19d971e4fe8401e74000000000581e021cd72a1bdcd4eeadc415a01ecb6bb4b0889d7040f85ac904d678e0d9ad43030d40034ac6e124706c662b10ff25cd4d69042e85fe518eadff0d21e42a2b523c7d4d3800581e020455e6352749306b41aa30b2b1d75e0bf27826f9ef793288e04178e8115820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02cf811b1fd0ea2dc92bbba388509e5d608946d74670432e640521da3a084503d517ab0002194d8c0331bf561499475de119e8c4e13c12a53605ee5c5958ffd031e22c03cde78473aa03cabf884c8b60c796fd9ebc5b6ba691b37c9bb99d6b0fff7164ab88f4fc3086a30353b1419d5298e2e611b4d2b164fd16d04fba2bc03948e809a18a14f937205ca80336b64a6f2fb4e5366af838a2ac2486c9dd72092ed8614043c01eb772c3c1a57b03f1410e0472c01ca8c4a2db60012168f888fa20d0f688b66d09e705068ec50a9903685997fe22e21534058dfc18c2a4fcdd027310efcd8cd0ca2b55c57a5722c07703152c9c25a1ed8c8f94bb87b102cb81e0b7e35013463725db7481218f781119cd030e25c50823fcd6a1584ac08bf640da9934002a96e43542f3ee3ba62e03382daf033c68b44091559b37ad7650325e4926986cba54c85a14b53711b7bb9d8aa41f220219ffff03155faf3e81ca2249adefc8a8705a83c8b9b52127852c1dd5dee1c0d91d97a65f03b22673fa7528ecfff114cad8876b85270c8713672b3332ad0133fb43cb4cd1c60219ffff03b24dbee66ad130edf3ed6b09d66639bf9e6170d31931fdc2e4f753fc4392fee903f2744999d78d9de98b661f0dea89c4177d1f318f378cb063cfaf3aba4686d68603ef8c22a9bcc07837ba3740aa7564c86793e0bade076a1de5436b9326e3015a7b035aaa6cdf62c27183324cd8fd82307fbd98e71042c0f081eb3b4390186b35857403edb4a3fc912996d9cbbabb5d5af8da60eeba3910ba46fd53574ad69723c6be280364ac97bc7be3989bc0c133569a7a8015d3f52da338982e61b71645ee2ca8fd310389dc72c2862012a970384f46e6df07627997498d67b53eaa21aaa61444c614c3032cda91957440735023a367a4d4db2466e3d9d94d5d1502977a4e3ae4b064447003a120a96010ede3dcd431a90312335330bf91e458661b10377ffad442d49ec7e8039ccc9c73929919ead8fa8c57436e58c0537bc538813cf2d3ccde7bf093e4c986035cc271817b0b41204c15489cddfb97aadf38f53e50eefba934c478506e857e2003c843941298e73b96559048fa0b8db5afa0972cb37292072659e3726f3c1cfd4303295fc79ab53090da283288022e0d662512c0a099d8d0eb9fd3c279bef61a948203a3d752fc426a2ce66f69f39c8fcef0266cd004a615b68643d4ae57b77ce202a40219ffff0314768a223521694af643718c4c32f29db436bef7639ab87339bb83fde44ac877033820844bea704cdf48ea2df975edcd06e65278608bfc5ba6867d4efe1775345703540760753b99dacb2e4405b51ab776010f68d65c5da33cfb8c17f406bee938a90219ffff03fa3e1ad9a807c063fa48486e374725ab920129a9c8497970ee68cd986ca85cdf03bdf94f0b7d708fa6e05395f90a3f665157ae95fbeb7c99e4a25f2c0b69b19b84038abbbfd8b08d7563bd7a34c590468070366dd64986b5b45c76998431a51b66e7032a6226114f88a2359a78e1deddf53f850996817f7fa210c6bf2e793a82e3c059030528f7ef6577784482aa7ce25eab0b14daab3094096a71603e9c2899922e90d403a3d27e0a6c2319a48186ee61496149fcc6cec7e49e2f7cd35e23aa6e72e387e3038c84e604a0059039758a4ac05ff1230a70a684f3ae834ffd45ee4ff5a00f963603f24be8c5ee0befa11fee76d8e0c7fd33952512c1c24cc9a795ad6172e2f4d55203cf98b6078418ebf021245e4de00f86a8733a3a4e9ece2441a001803aa0fc099603e5da1a44f588cfb6d5d3eac30c03333ae32ba67d7c1bbe60e346023fd15d7e1d039b7492cf5c2b13ce2a0c94a6675e165304ee81d9fab98b758dfebbf720ff03f0034390422cdd8cb504f16e80b20fb6bd2ac4343c4c53e1fbfbb3d65ddeba8c6748039b8cfb8560ff075de2ad372e9769993f909954c0ce23c84bf8a7419858ad6e65033ddaaa948f8afc317234b04dc12a5a98a2d92ef1ecadda111bc35088504aed73033cca29ac4e7b4dd6e90221912d78badac2ffbf77726935766d42859fe37a03be038f4751c28f5d5e3efa64af2b7b7ae342fbfbcf7dab030cecf9d33eadbf35ff3e032ed550b1fa790aafa9befe5c155fba21f488719b241c2d0e514f0b31d1f2abfc03a5aa373e6b4768f13e0a0f7202f86459c08253d82ba5b0f5789cd112a33930380338b9294ab3236ba5424032799fb5de792c4427347990a903157baac5679382db03ce7845170c4dc547d8344d6e2da4f8df3aad44ce6b85260b9b530d7714b56bb400581e02e9c23187bef2bb8d2023590dc649e45c4d292cf54bb34f20edd94ef13c45746a52880000581e023d40ec907b36fb3613e99a6fae032c45917b092e5bfcb4c426f808d3455820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02039f4f957147654b69a7504e7694f4c32417ed5cedd3e56f1441c3410b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03f539af4f0c77ae0eac5932b1918ab6e16b7fcc1a6a3eae77cd8f28232bbbf34b00581e02e6163e95e0e418bc148e5be2715aec694434b6d97d5ab57b8b5f07554a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02c04230306550ed118837875820d19523c5ddc2e6025534925a7e9dcf485820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e027d0c9c0a2e61cbc88ecebcb9bed36995f1bf8ddc121c1ddcc45852ba4a410700581e038025b2bd9252afbf8784f0155bce05900c47ba27e6ddbe3e6b99713c205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e035e2580f793b6152bde3a4db24f3f15a51e67f05e61fe024c9157163750443b9aca00021980020219cf0c0393075b1efe837a8e58ee7cfdc1aac889eef58191d735446e043c16de2b6ff3d703591b0367566e20733b6b11e3bc27f6dc692cd8d8ae8d19e216393d4cfddcc6e203ec3357b3e9c512552e751cbaba367d2557ca4a6853c468c4fa9b9d2bcc410439031e1ad2750a0ca9c0fc20989a798b287a1a93cd1206b984235fb1cd13b7b161a0031b377428b15fc6bbe6ae4b80e4a153b216840bb93c4ca105afc18be620aceea4037427718791923e19f1bed32b1118ed2eb57b7fb82d04b7e74b02daa51431e6fa037dbb3ca606ac579e58182e025bc3a7a7cde9e3d51bb49463d341d4cfe450e7dc038e5658a19c92cfed8be30b058703c4325b504b5f3f9575135d882dda4ee1277d03769bc9c7fbe574dae5a1501b392407d007c4cae34df594ded3a6dfc54048fd85039cf44075c4b21383dec8d006f3a760fadd5f0801e6009c677cebce833c1c2663037bb496b5585a332cfb97f4f2581a611568d2d85ca84a81bd944cd7d7cbae90960219ffff034abf9c82a0da57021ecbf498dcf3e15f02aaa967d22a5d031d85e09ea1ef09f903f2b5211b080fc339efeda11495dd373559b9f259a8bd757f39b57cf9fba12f3b03a7a2797602761a28eb4e310d48e1dcc2d9cf437358982f72b2a4ff6792b2614903b2b2726c9f413630584ca199ab4c65c86b5e340ab9f56590c4fb2e2bde8161d8037495a0fd9d30e50d8adf5c6d7fef2b2730e4f58c98463066330b99dc3bd3e3b6039f5ab0a0c8422ed64e1a9fa7170500f21b5feb30c63283ce15f8b2533b48cab703561d244137c34ccf5576b3b8e6db5285c01f7327785db0c60c922cbaf2b60bfe03ec38dcd71ab100a0bbd502554b67cb7f19842e07ab0b2a6cd1ab9940f03a67960219ffff035bac59646771b5305fc272532000419089c9ede21d5e3d4a2acd1d44108e28ec039a2f67fdd46eb942c64901312cd020e699d701d9b090d3d4150d29980c9a5203030ebe3da50c008351b3639d1177907a9314329553f5737e324f339213d049385e034fd1ab5951c04b52eed7552d8baba43c24a6d9dcbe155d76a8bfe0bd036d579c03db9ca3e593793110631d09a1c228b0b71fbefc2cf0550b9332a54a99f0e9ea83036c3ef5e86c6c674f29abe33dcb00bc763c1301a08b4f1d5dcfac0833e639bc770219ffff03331849c4cce049fadcb1d45e82667a85498385f54f57cdf49fbf43426c0ca0ac038b60e3b1be5a857d21b126624809ad0d3154b39bc8b0113adaa04bde9f160b20032cfeab21f94879f45074d14e909f392067caa18b74df95785f2f6bc63185a9b3034e51e58c633e0807696f26045f131135dcdb52c168dffc407c1bf7519fda8b5e03e67d8ee703ce6ac6e76ce955599b9248d30cbcf5431a45827ea7fa36f871bf8003cf7f74ce1796f3c06d4bc663270045de09fc82bc33a3d3ea1f7eae54a4100308038ffab9d13a99e8020d0517f8539d2221a857820a8a70ee99df7995941cea3974036361d9eb49ac7e28d1c404f82f0786215b4c8de926298261fa0207630b2fe5f803d48dea5cb69182bbb663acfc02dc2c85848a700bd756b39271aaf3c353d1e6da03dba4b10564b72104296b69481688e221862f75026a5cd41b5523fef52c290422039efebc085bbd49ba3524846aa5bbf96b5ac05d744841e725a3d395539e35edc503ad93dffd9f4172d7b7c209f047bd279b9896b68de583ca6ae7b518e21ec00b7e035052297ed3450593beb11ab69ced747b7aa2e1a33fbacc6488eb2bcdb45d724203fa53ff48fc0c2a3c7319c4701d5c240bd9ba2e60acdca41295f9559048c8846e037de8e51fbb76f5a402ad13ba045c4bc5b5d9fa51c87ffc6382c5793d023f9bde03bc400cbb6bbe1deebe07ccaf84acbc99bed9aa6b71fdf34474301c975c6bad8f03ed6ad7f1e9cad9a5e26e3ad2a14a62a734b4dc4133d035363699157f6ab19fa703f14c883f4981cddb4404ee42fd77745159cbf23c73313723af8b1664b67865af03bf0102a9bf5624bdb65b035b7640bb8af9b25ce9e1f3127892ee4ca9404aae2e03f21c80b09aacf7971f4fa3f71f75a8f3ca784451651ec45208e32481e1dc1e4200581e026982cd352f5356375372db656a5d1482eb74198b8a80ce33e1310b98f243e4e1c000581e028a4aa8adc919ab4c606a9da7bd070a7354d5c9c29eb6a87327d44677864304e14100581e0280eac48a9ef3ffce8c4ed63952f9abcb66891078628055db86889aa3405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03b510fa0dea179f8100c00e7aaff0a5f51782838690832720d2ad7be2660fbbfa00581e0266112ffbeaafa651f035fc13c934b957063eb934405d16f10f67d30f7a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03a89d20e17fb6170ea8cdb0aa75a964c54704277f439965c47eca7e6e7c59611500581e02c0cd436fec34ba9e7aec2ff1a297ebdf613b49b39cb405fbacea77b7165820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03b4be28c455ac6370fabe6c0efb327321d997c70b61028c0f2c7ad3abb6742b3703a2a79167abeadc767deab0d9ff3960a9743fcb7c412c63aec3a31da3b64cca7f0219f985034dea112047cf51d78ddff4d189d65f6f6be93fef0b934f68635b0f9a02836af703d6340d7e9522444482f71a3a6efc3cff5e5e0cbaaaa13b8c73e06fef8c68b2ef0362ce3e99d8677b95923be35e2a069dd27ce385cefea017fdd3790ad0e6583248038879619ca242dcfafb6ded43fbee89ab3dd5c806fc47c5e7141cd382aa0d3ca7039b60c68470c05aa5c858290d467ef6e66ed3b7d5aca620df0055f16979c1c103037608dc843b83a910595fb71591ba53789b6ee99b9c433ff42fc9d0fdac5f55e6030de8ee41fe5ed7f506756f0c8043aaa99528faac1b5ccd4f2e1e997a328b57c903da05452051bf26c72e52c5ef46f8fafba41137c178e81cc0ff30555acd59380b031e41d9c77778462e2f5a70af61994d583f2e43da5108e80ffe082bbf30849485030c1770e36c188727747e67ce47ef39cd0179e91ba835417c4f24ab728c9f66e80337584703a6c8ae51d05f9dba027bd6c990ac68843b316adf1eb8cd1d4dc6d4b8031f59b7fc6032d6f48f1d9b7d3f9f10fde472bff7afbb44cc3c9dc2fee2854e4303dd755f55b0a943f7a4f4ba5e4d736876a68e7eaecfa3f6ae1673a202368ccaed03f0a3fe9396824a407c86699b84720e5f3db3ee3a9f833e5cebee7d8192f854750219ffff03625173663e3fdcb4448ef487fe44b129a6aa9b8273e2a6badab6988957d632ac0339846267033755a7aa7055364306249e440cc8f26a3f0dcab220f3ee902483e803315c00f3f1d4e77eaf1bff30a712d1d97eb85cd6b4aee158d366157a69da47830353a4030f8684e06aa5289bbdd89604f73c563da32f1e54e634c750f90b4f463b0351b0eabe4b5c693555d36aa764c3ef39591692863d273d3ebf75398d9395278b03a2aaa0c1f20676d1151f2b143fc1a398941cad76d49a41f33ff50a9d2d54841503586115aaefb51b4cc6d42794bc6a6f7c22735ae59872c7fc5f795f8539b73d9f0219ffff03e0b829bcc3d6b64ce8c357a97c105ca949de0f2d45658e154974fed030c6e240036a9576de65258e82b8fa8a47d7d40ffe039f66ec5ee3ed90a6a658430edc344b03db8f4bdd52f69f0dc6cf2c316f5e60dc7fc1eea596eb72faf787cd23e7de7d4d038996f68953dd5bff8a5576b5608a8e0fb15ab49a627ce436e72c68c17072352a0219ffff0341638b8b2040912073f8d06f81879905455d57cc711860898ca93472303f6e7e035841e68f99f521103550e039be613a9ad21aa101147d696f4a2f18a06425cd0d030a21027bd2fd36cc8a259fc241bd32b60e8aed2343af57724781ca68e84898e103473841da21711eed40c9b42e1269d6d447329f7de138261765903ad4e54f12b8030ec46dbb66937413d3b0b60aae9d4275f9637907f1240ade0b3b2a3cd4317a5003986079c6384ff93c97fc48fe77a3e91c8d099833826887210f323379353a9e160316ea9e4e63f26924349b622b910ef953bfab80a9f4dd038c91fea852c9d9201a037c3d7b3332fb261311ce627940448e0557d6893ee13bf1b5198aca2f047f14b403ff96fbd05fc5f6235dd809ce896ad5c760eecbff8d574d6392884ee87ac75996033404185114e3496b2490047bd18969267529b8133fe2354277aacbfa241deb7703070180cad1082e867e0a7375f8e452a42cb7016b6216d6068fd4e5530ddecc28036a95b9f00771b62f4dfe8f49c775ae5d46e792bd81f9bc5758a6f15a7c8bd6060398c1e7e17c3bf90841eb859a6065d0e5e48fc4a0fe71c04cae8d0756493810af0346b6553769ab18a0049d9bd158894b515b8331e4dd1af049ed0028fdb832131f034bfc1491ffe2489645fa42178363cf96de3c40729c90f1e35340fe8545cf47e003912afdd49d5cd8b746f1672873518830f3d24bb4f01f0f9acf708a0d4c1b76a403d61e1dc58c89e5f9aa12914e2480351ef7ee96367c0810a414701357e6c0159403969458c47ce4fcbb78da374c6ece8fb424051d26e93c9293c354131bbfb02da300581e023cb30f2184c08837d8b1f8b7eae74dfb3133f80d2ff8a87e60db8937e34402c9a75000581e0233427d04eb11b3790ee4060793040d36b284e7996d211c5f369caf10d14398968003e598c96dd077860b4ab1ca4b72e4edb3f2df3745a5387fda6130857dde6d4fe70354e0616258c2d800e1fe4982dec24e1be4c2921e15668145e2938a909207770e00581e02ed072ac18bebc3482c1f951a08ad196aab617d83807b5de7c79d68e50f5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03cca9c11aa7a17b7ee32a47c2b56dfc015bc9f2c9ab0a40868be0a4cba4cfebf40219718503ab939a8d77ffb805543a32875aa3a40e5e7fa648a65c6eebdcd9a266e76f6882037fc890b0f75a91233ba42a5aaa7b59030e9b35ae179a87d1242b6416f2d1cc0a03ff89aa34af20b829da5a30c319e8bafebe2a95cd9bc7c1675815164eaf9062c70219ffff0396851ef5edbf901befa57b7e0e8691e5ad0ba69b20d2ea23ab85b2a2008bd0660315a51ad8e3a827f46a6955109c5f43678aef9433cb8918548c9f2217642b896003e9caacc0f492e165dc503a05f32902b3d00c094326017af2e92e5c22b136e13003796383eb1dcfd445da27b32853fd9334145da79a8a3c62bd381c4dd7bc447443031a987f9fb89172b7c665bc48d3b375b587cecc983b8d83b6582b9860010acfd50367aec6b249df6ddfeda9a6b285569133a5a22f8141edfb004b01e257bdb74a4c033f5f847e16fce70e4b8ce0b4bfe80c76283efb41f954e2cb8eec2d1a806dd16c035d3af82efcb199aa4077c09efc0070b44f0ac6fff73125eebf456e9a94ba21880315a5042888d4e8e062b16b1da81f160ff5ec5fccd2a3dc9573ead5ae237618e903d0d16055452c93c75f8a378697415a3265ea6287c8917bd389b2153e0b5508a003128794ff0fbaa07f98463f42aa97af111ec8db16adf6c09e9501bfa09a442c9903f84ba7638956656eb96bb1cb66aa13e9ebd2c613404704f94e6db0399ec8a1a103a72f57aef9eab873b440ee9ccb130ec1069fa8a83b9aad72fffa8e9f6dd198ca03243f3b20584f31ebed27ba4339fd356fc677aa608d8ce054504fb03bc96ea0da03e13ba4bb4194182bc8148ff20f31007f2b3c7d33ceb5e3040c4f3b7ae7169bb40219ffff0376abcb098a5b583a08dbb8f5c695053531a96b5b2bc4dbdb2cc4a66e4db8d844031e2093d99564a122642ecdcb568a184104f88b7289f7e318e3bf6f0ae61075ef035834d531da14ed02a1c9488e45633bd30c9ce94dc0d4e3ab478048473f4c2909031bb95f7e6633299e0c286072825cfd0991d4bdd504f2683f35e371eaf1608ab20370d35ec24a8230aaf8ed33455753a289758c33b8d7ee8ea6aba57b8430d3dcc10361c73583210ef1e8161c77913f159e4ae32ca6213465d7d8516e60dda7bd155f035cc67b72c23d73c49fefb94961671561ca6d67e9e96126785061b03dbde4831b036805ea0b6a67a216219851116212ced0148f4c1a58ee8d1eb6838ccc00a4fcc703f5c38d3bfbea208ad10f3b003459d8224f24f886d83b27bd840b6544711164c403ff1a2377bf00862a6dfc24811bb1dad7db8f83e46b7a05a1f1416eff4147077503e373a53bd1c8c02b8261aaa6eb7d0c9abc1319cfe8ee4061c73a878f47961be903e6479c154a8376684db4201df877467c44aa48707d3384fc33d843d47de63cee0219ffff037fe8b4f1275376a354480c4d7cbbd5a5b3dc8cecad4ce8d7d580ccb894a8c91f03298c97ed0a38e06e0286e27e909c356d578263d0e9db04008afeb1ddc67e5fd10339816b0060ee704664ccfb0a55625025fa78084fcb35b5c2d26f5a6fdc2c63f00325cec408ba0d73eab544da758a584f8d89fa5d378af6eb32dfb6f70388b54d6303ed8acf06a1201f66083265dbd69e25d10b08d7078d5af74ecaea2dbafb2e48e203de55f3454791a27cc0359328f22156b106dd70b3d8d0e809c119181b713ab2e603d56bebf09e0fd084f11fb3e9fdd89887d99ed49df06fc1418c7922826b417f69037f9a8b18fd0ff5969882cdb8a787779d2a2a1733d61fa6e20698d8f701e75c3c03c7d25e4d956259f1a31082bc3b2c238bc6802031efeed026e891d4707d9852c7038df8b344d6faac753de3480c89439102818d9a981213b0173a212a5cff37b7ab0360a8b09f0d7edd0ba6f3def4b164bcbbf4a06fde59f29d55aa33cd66cdf91fea034087edb0298abc842f75c64636ae13af6c340e4a307462458545a637a4caa78d039d5591e65a910910d6863bef03259daec97e182120f8e3054d5ed7bbfe453c1b0350e61200e2d1b7f34be23326ced53208f0c19e7c1c99192def1984377c49170203a76001725a9915db84eb9cf5065a3cb845729560d27964f6125f6e859c78d46a03281341f5761fb7e9b926348d14208131e258fcad3ddd9a64ba84a621f2c5d93b034ec5071e4a3bbb126397831dfdf3b1b512f5aa10a66427c114a205777f694d8700581e02ee080f39ec9962e24ba013ebc5dd6efea5ff28a918bcb0d341f60f3a7c4405f767a00331e1febaf10847d0eb5a6f84a3c9175eb49c2a795961964f0c594fca9e71ab9f035ee2f051ad93facbc9d63a5484e156d39a1b887eb3a2f5767ad1a3aff78d265300581e023618b4a7cedef569c50443e9b7520ca78324c0734ec21a8b7f345697015820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e029b2558675fc117696d6ac1fd693cea55105831511ed56ea2c8bb037ccb5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0397e7e5ecbe97b31bce0771503538f02caaa2c2712bb046f926d137684b1a017300581e02113fc11fcfb2b30cc3f6a71af0f892e87fc24a4a6d29e970da2f604abb5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff036d433a0584ab2aba54a6534e4f82354fbca6d9ce502a12ad346324b9713d0db70219793103f53cc0c1376477d3b2360d7352d3f19644f794804817a2cc4196967852d6e7bc0392c5786e788418590ef8820359106df615666a3c7d192406e58d11ff2defbe9a03474ccb490aada2d0e86331917c9d319761c5f013b1e5b5d2b148134edbcb439503b0b46ec8f1d39398f45e8694601ee4e3ec656bfab70a95626e433f0f2a360d0903e99e958212539340bf35fa44c373a689e6e6b3952cba4a8de67b64934c3dbcc7033fd027e3bd816823a6f2b7c74d1def9727aea9e79d6308abea54ccc6e17c96330357bdbeb3251469977290f7a37f4979898eb8917ab45d5afdcf64be0bb208671503d4c149b3714e117a3e682bc823da55c3e70e07939fa2c7fa23fa8e3913d81b9003464f3b4462bfe29b7e7f4abfe7488663c63a81cd7796fb65ab116613a499b81a0219ffff0349cdb08b851aa5192ecf585b1be75b1aebd75952db3fd9db4cfdd345a63d8f59036bef1d15e12ad07df94308ad90d2460316663c99e7cefe4e738f39ac5692c0700353b883b76c3ed97c25fb5708bbd2e34de3e8258fae0270edc18230ec9a69336203345163557ae1ddef2893994cbf5a9fea8b3092cb54767d637564ee105dc132e903cfd2e871a29d9ebd6a959b993468967fc0f178da31fcaea3e73829d5b3c858e5030ed64a304d1f3f82423203640b8da7578294c264ceb0c3babab0e369cf3f3b5f03ace07015d0bbedcdcd753c6dc7bc8f8bd20ab835c820cd189755a8d066df0f7903071ba171cd56efcb23d619c7d0c89ccc3ffc50adf834eaf980d13c7ca4a096f803d927a143038bbca020124f676175169154acb9ec84fee45a2d6a5ad95ed8878303b16b2705a275a4bf8989ab8bc45a5d10aeaf546547a174fedb19ef5552838365033947a5732673b1aa54eacd09cf94160542b7a3fd33893f188be8fb1e4626bd88036fa1891d838f67ba5759462669a5689cae598561fff9ba0bfc2550203c2d45870379f5b37daae30c31f7bc5b2ddf04ec277d7281a752c96bbf9bc320eebe6d5a2c0219ffff03ad43e5c7aac9f61e28f5a78ff9c99b01e52b7005f966c05fb80aba44a317f73403b01cdfe1f4e86859d8e55dbd0844c045f749328b785bfe1b792bc9f16ada64a3037d3543e795318df1b215a2126705860580ee460f4aca8e8e4490b21cf5887a7b03044c7e6d41becc81e87342a11164d5c3e4af5fe37b7246d90f3a8bb0c9037efe03edcf3a3f6cf0687e28a2933160c2005a39e3ecb83f4af51796e13a32743a903a034225af9ff5c68587cd764903bf173089e9ba16dc96d744f377043c98f7fb202703f24de2e431847772087700f51a85d9388913eeb34b3224d43dc3053126051f0203a6272d12bd3f588794006999062377c7dc65a9e2d1a1d941eed6ddcd01d7879003b2689f2f688b0a2f0c26733c7de4b2bbbf3e8778b166e2ef925b13b06c67248203780fa7bb304f7f5ef5bb8a08d0300e09e61c1d665603f00e04d58be0e1bd018a00581e023414aec581a99bed3d6b6db116023f3f92753de3cc5f1afa5698b926fb4405f5e10003369e901c3703b81992ff4b66f2a70f5051300ba90b1bfe834aa097fbaf58864b00581e029f39b8e734c1eb49b58c8450072bb222579063e0b98b138a11614c7ea4430d6d8000581e02354358b86281b3407497343a9bc54afef2a73abd130f60989063afb2b8410100581e02dd97f0db52f4ff2a8c1de6ca94195c738436baf754701799be5f0a4ff55820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02102b7bed7281a687516a7f6f8fcfcde62d5f6e1e5b1472b0cda56e81b34f01bc16d674ec7ff21f494bcf84c90000581e02a6e2f1c68fc65839e2a5d48d4a4d2c1c744f5496a599b4e56d7318929b43e4e1cf031b4c6068984949e50ea8cccc0dc0d2ee04bb1fdf34819491c4d5db3cbb8300910219a33903b03679151a88396564059f5af49347cb908315cbd100fa2306ab96f878a640bb03cd626a02d81d70b203f8f87da779f57e93917aa8491925177fd14addd653b92f03209a1a393ff56d6752a44666069d51ddfa15f254fa6fa54723e01ed0e1ffe8ec03ec8a5f6e0b4cb2caa331a464a1f900a345fe21f03a8d4435b379d9df3258b1e403547428b2bfa693e2f97176ed89c05d7020c76246ba69bbaaa880a2b7df04fbaf03ccd15be230d245843dfd805ff2133c804e8bd02853ff207a97a98ebb36ad8b41033cd8209543bab35d0b636c140e78fc8911d812749b79c3935f0d6cffcb04e5f303dbb3255c840ddbe84ae7580b638da2658bac7d88513b0cbae220afd21656abbe03e9002f8e41647c3b791b833496bb780ec5c3b53745611574f7cf116b8dd48f5303e8cf1bcb735b0217ba692f200a7265390802d7ad0a8233024889e0dda3c3053f0219ffff03c17261a7944c2500c183dbd4d9dce093f69f0ceb3e5fe19d9f43248b1fcdf60903c0fcee67c569f1521b59bac8ce31b157e98d538fd8051b6309a2d57d9b367930037e886d8b1c99e8dfdf16f511acb18b9d60734ee474e18370da4cfbc16c85a3570356d32879bfe8a20ace3cb548264cf7de349212afa67206166e66baf1082beccf031799b078ba735fbe762f2223ae13b4f59ad80f96651dca2defad073332f6971003a48661e6e59ee89d696b20913f8620fd17f5bb4ffa31b4eeaca03c3839a4651a033e0a0390db5eeb6536c3a0220be8fdc8d3739c23a37dfceb653cae4629dfb3ab037b6656ca1782f9e8159079ce7c5cc902b9fc03880373fb7970ec8bd3c47c8b0f033db016698397f061a0ee22e9f12ab79b428504297250ea7731374647f8a1154903838c6b8efacd2c0f42aa091322072ef4dc365c7f9e8f5cd2113c85f73473af2c0219ffff0389498ce884811872aa3bb58826fbc5625c41c76278b3511ad94338f4179ec221034c83e481edaf69f35c5d50506e7f2c3ff722a3c364b5dfe7f19db7048fad673903c3740438365490f14666cbb798789db4bfa80bf61b4678fb4b7d714ba3cf8b4d03877a05b1c5054391aaffb09491f6e04c620ebb14fd31ade72472658cdb8bb777033f7f2ed755632de5d54b184806a0a08f11495e6c413678843cafde443723480b0219ffff03694b09c9aae78f97e48c6eecb6f5ebee00aafda3351e88ba44c4018d2891e186031dfa137390c8318cf49eadbea4ed821617b10f07933d86a2c168499cccb37a3603999485108685414c55b24856c924f0b1fba39a784c7ede7b5c0c2b2b38dc125403db6b5585c9579458f12537e3daa3018aac35d98939d9afab136c41067c09d7c3035624b38265f8e6877bc7678459b9c50d108ec6ea7e6e5f097643d00b1839c65c0301094fa09e33a6c9741957931d60177c90e8ac0310d70dc6fbb0fb7c60a192e903872c6e0b3d8cca0fb53c1e940b0e8e3ba30861273eefdab4e06dc691e9020063031ecfd66ecd95d9421ebfc4e0a106851435cffbdea873fee0fb22659dd966722a03dd624f8dd24b83b8de806521351583cae6e871b9a20abccdee057b4f73438be20328b8371478e656f2ddd535e8600e694e0d0e0214a660ba7f6f313106c8ffef2f03fbe1c9bb7e5c4322bf600d339e59cfe83c640c7435393ee354819e604855b7810378cac4bb0ae283a8183a31eeb17d5acd9e5f41282531528fc4ea83cf9e650ae1032f2f581438f7463a096daab494c303894ccd898ddbadc092f1c3c68fee8a01c803e3b523cf64d3aac61d1467bdc3dd8d1d92285294044c3b5122ef45969245bbed03a427e384be0217589a5480a927834a74de3d552999963608823de84eaaac42ca03b2d3e1f8fd784eff37901a2d275e8116b5edf3cf61581e398eb3401fcc6ed07303ad211c3e09f44e93cc5014200c3f8d777783f988a48568c2c021d3cf06680d9a038af150b8fe873c7764e0aecfefa3c5859f930a866ec78d8ba1a903979cb0522c03193faf15f1ce1e5dde22fb35c10607e5dcf3db3c709f7b3b4f34c4cced5aab1303512214b60414b71f97e8087ff371b9d03690b64f388b7ae9c125ddfdd9d63d4e03c77caea97534d820771cd63c67542d5ff48a024e1fbbb69f36bdf900db83506a03dafcc287491c36bedfa071fc86ddf52cfb27c19973d6aaf4e70219eed91358fc03b0ddbd3593afa1ced0f9896fc80f90fa2bd0e9c5ff2095a4724471567f5c1b4d03b381421265f1a16a7b5885e8d8c502bd120225c3afd8a51fd9b0e1722da620ef035aeb5830570b9947285d967e6571047c9ae6481a4f899f1042e2b5fed7493f1803b723f9730b82f223229102f9d6963775270d0f8f9733e21be4cd79a4439d5a5b00581e02ac4af55e48db4d01420887cfd9cb4fa8ae80aab91b104e8038f7c4751f5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0298f426ca8ba3ceb0b414098f7c222b553cfef11dae538e4b3215b6482a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03f28a6a0be5503d88cda28a2a41faf48e56db89f427921b0b78c68b2294d70d3300581e024fbe77f5e5eff410370363b8831b1061a5eb68195eb35d82be613053045820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e029e3016c58922ff7d76a256749b0193116e2df2f571f4d7370e57ffa3044405f5e10000581e023347563106dcedabe17c6fccabc8b5ca150b75bb801e0f8f9b2db342cb5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e026cb353937bdb8d2ea37f3c709cb29dc0ce0ad34d6a64c08ff5306a30fe47038d7e7efc6d8000581e02f3e1cbd46d921d1017611b4eff15e68a8721878ae899c936d15a2be9d45820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02192ea7038b47a71f44287bc36735a92f6f07fb0d0364bc24f3a6ada691374c4863f5a1c4032627060c67df8532350e42ff04fa7a493899f5882ce4c9d5fabb45d1dbfa5f1103740768e495dd23a2ac768c57192b2bc61c2485b0a5e91c2a75ac67904fab6fc10219ffff03e41cb234515b2fbfec5364ab8dc4b7f8ff209a269bfc9beb1f6fa4b36d4232d803cde256c6b103f6b40541f08d5006fa11f0ede0a427c57847ec121d360cc99de003af68557a679e0c7d97fa44044efb00172f879fa39f3228458abb432650754e490304f7fd7e98784fb52674fedd680abdcdec1b9f8497c3870bb8b6e5a7eaa88bf103f521dd278401e4488df65dd16887a5bffe0f062212645493e7de9c27e750ad520219ffff038fe20437ab0b382ac566cafd7a9541a9e641e0fb7443ae2c6ca51ede9647078203f038b6ef21a0f09025b7de10ea3568ec797cfd811296903188c6a2bd7d7264a9037191accaf65f5ed35c146567211092d18e70320f8780445b65bbd485f658dc6f03c6e64135324847bdd0d0831aef63405044a23bd93c8f68116ef6d7aaed2b1cb0038f95b54d11ac33118ea0595a82e25751ab52419d51fcbe230f6db5ed04cd050d03002c80e49b308a8f52775cd38f5fbc8725236f419247c151e3bc36979f520f4d03bf73d65f52766339ca14cbec4d130388f6f5fd99cf7bcdad33773494499d751e034744f27b8039c13830bc8881ee06aeacf4da839892022460807a7bac5dbec199038172bf2c37516ac61cf242f46bc22d5f6f8f429955f63bddb7c0b3affd67591003b03ceb165acd46fd2e48c53ddec3e8b0d68437983549d8c268a241be8c6de43e03a54bf72e770c1f811fcdfda1a4aa74e4ef6835755fc549faf0652a5cd3a30694036364438662748aab9a9cb7d5b22bf172a5f847acedb406f0e2449edda899f6c80219ffff03513f7bcd4dfd5bb4ff2fabb29d94d46104252d27a60aa111b85a6801b0f341fa03d2bfe6ccd76fd38e98fa594d2f587b4bcd4e1f9e1b1bcc1b42b3948afa0bfe84038eec6d09abab5a3b0fa1bb2f3b8192ac579060a628016da3b39b5216fd83a2a4031012c55b8a363d68e7c33ccdbe9ca7e3b2485b64c017d0d534e24985dd7c69be03dc32525f0e020af7f5146cfd24d61f8906ed03e227fe9acd50e54313b300d0b9037a5b6f55e7f4e05a4b50273ee0af06d6332dbf691d73169b2bf7d2199ff97fe103cdf5520feb80d4eca20de50656050a4d889f5719dc4458d0729a2c6aae72620c0391b36516d1f81699865b126e9728dd684480cac4c2e13d2400080e5c80c562d00395ee3a19ddb6579d525e2f930d3537aa432c8f80381e3d4d7ddcf232138c84f2030975fe6352c64f38263ed22bbf23e51e97ac75bda1f8bcc85dffd96a8eede10b037e106d56545cf12137f64ce0281c9707bd0bf650731201f718d1911969f61fce035d2cb9bf6223d5489bb8d9f16b9e186d1bc478f76414116231999d75b7375c6603119edbb27fd1966f858b95c3f6aedba4606a97519b9e999b054c41262ca06bd9035b4c6a41d98a4e7934057b7526e2e0179327e3d6cd1de8abd684f987de6e599c034f683055fc8f463514bd980e0d66f456c26a3e0e00a74709915bdfb798ef18f9038da01b3b4177b2e73b9711b92e2339631fd642f264fcd34cd8325b26fd9b1a450314787643e11d030826e4c95c1d0ab3c6e4e029a579f69feb683c5945f0a0aac703565b68fd8c5a99f9d018e07402fcf3200bb2f2a80baeeaf6dbce8df3af25e366035a8a4b375aeb7d99973b2c75538961a60c407ab7182af99fc57507348e24dace03d577d536e790b499d6884c2a6db38d0554cd6f06ee0bffa0ac0fd2522dff458403f4e5172f1253f568a7ec2a7203bf5264fbeb3c4b27fa30c62b909e7cee4e2c80033b42814041a523f8042fead1943c5054e7566081527a321270846f5b71168fbc037c4069664d44eb64f39ecd6e2ef535a5519ecc6dd6a2e8f1b7474d186882fb9403526f566d820f4ecf7c3560962cf74ae62e2262e343ebae75b5ab157509a04a660359419332cd5bd18cc278b93d64c7ebcc49e2ebc3e3121680525a7ee0896d1cc000581e02fea120fae8b6d4b6027d4f47da8f5ee0e156930eb721f2c99f1ff9fa37442faf080000581e022589fb15964b055ddb98f9c155df5426441c263e7738c0989f4589cbfe5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0280de754f3f25f9deb11eeb57c7aa4b9cc847b4936abd87c42c7ae3e58c450412ee4cbb00581e0298173eaf8a0e25cebf121fd280689616aa5246d4acf32470fe0325e6114315fa9000581e02f47723786388587da54ed01251ed185f047aa043adf35d4d24552a98c5443cdc0d700331c37b8deeb52d130d18b347aa665f879f253f1c6a0b8c7cf6627f13210f649300581e02c4a8f79db847b253237822e4f78007991f967946ea5bd5316105870abd410300581e02a386281bb82188a7c5b032f6da28593dafc378f027ade5467502857ed743496ed40219ce4d03e2fb62178853241ddb7bfacf06ef082d61054a813708f5184a0543242275f4dc03bedaa67026b29da357a6429477b7c8896cc2c46b9dc04600a1ba32819a8ddb5903a5052fee76951d35d0672ec7e9f352a68637a244f191c2ce98884473ddb1428b03bccf4f847852fe1f5c0e6748fcb40f4d20378d2f4210755e5d76a0070c83c18603fa5c2a89cec722d147ca194de91fee2de3210659e8d9b02a15c27482dfec7c3903076bf03b7a3e02564fe9ef648181a1aa6207c368dd0ecdfe6b9f66940d0e144d0379a1cb16ecc6edb0633d26fd018a923b74ae8e1098e9e71376a5cf85181ece5103e958f9b65026cec4ba6121d908d2f7973f17e287e808261019a31861719a8afd03d22e39a49bb9e01cf0dc3c3ec38c028978671a48b0d72fda47675d728da169a8039a735780ca4dc53837c131fec7c18fb75af23725158cdf852c13c8fb0a74f0d40219ffff03c4fb03a3de8852353b75f982198fb021523a09fcf68f7184bf1fcb08adcbbc0203d412be1c311e8f7fe1f1341d968350008852b15cf0209d973150af7c2dd65a5503f48904fcfccb6c2c577022fb16fad1d184ad8191e952e159994611173576a06403e0d5b4b58541674c857e31f0d1c3204375ee8ecfbc7803ddff07dd26b65a0188030a2f29cba53423c350083c1b30011a3e5ea72bdfaedcb730036559c101e79c9303b4870197e3a99ac3b5ee6bd6e5fb47b6bad75e8cacb12c2d0aeba3a19a16340b0219ffff03aefd1eeb3f17c063047643490426ab9f29ec3e9d987ec62c6b8e66cd0a079615036b6e166d87f8db54aa4e6ec45ad55a71b8d5997a0153b17e39c897419bd2e430033d197210c2f829159f9c45ebe36b65fbde8a2dc5d35ea4769e114bfbd6c7052e03f466a4f32366347c2632bce4a89e0624613691828244cc7c0c217070e06b0dc203ad665b2131e5bd8be1d8e952aca8232ef12f57f5d88d7602353ceba5bfb63d3d030e5199bed1c3da3fd6d7877b65ceeeb6ca5262e4ac9585fa13a84d0c348a4a990219ffff03bad5bd0d27adcf675210eab35a15ab2eecfe51a394fdea67d15c30e118d197d103aa99affb1b913ca6a261299e06b2effdaf722bff6fa11ea14344e74e3bf2f5920333592e398393a11df314693a954707f11c30e6074b70a441606320d9f4e26d040372fa844e60d744b5a351887ff662536a910cc32c599df0dcaa4ed818fc9672860353d8898a911afca6e791fc01deb66f040dca8dbe197a87d9626dad4b1ad4bea9038ab417b9c6d553fb0953c1cfcf9f9a114f8f23c24ae38f34f9cbcf331698f64c03aba0369a2a436a441de7ab086581c5434f8740a03ad87081d51920c4d49f906503e12822ccce9fba4abefa573e412a4507104f126025b63f6a13298d96d8bc7e6a0363d184e1d63634bad7163274d5c6bb2ad0a318a97c55d5f7d680cc65cd6d6f6103b022d5c5600bf136f5ecbfd41482cfe62a6f41aef1d0956cadc19f714c016f00032056c582f89b6e88a42bf8f26d056b42fbf40b5161dda2fb839d7148c6ef7f4803eab7416a95b9eecf4dfbf0c8b4e1f61dd14a915da2c7499ddc3006928bfa26480339aa73289c50b7b34492b7995f3f54f649378c3f90a3ca4616be80ecdfdebae103bd044aac0b21350e28399df72031fa5427c2be571807c33d25a8bc5ba5460fef03fadaf9676dcfdc2dbc7de229b53b12ef53fb094a097989cf05ff24f7e73384c30396808a67cae218d3649517eb3412888c11a031d0a794782fb0e9a27d2ec5c107032c0ac499813fdf80e41a33470e03a312ab97b9c5db586862c27e14c451a5e31403596687954c40a8dde78d0d92a8b804895ae3e48837b3c377a4abcd5c992a1e1503514b480c4540829dedb1d1d59fbe36e2dbbef909dc5cfb7aeaa71adc16870e4a00581e0294694af6a8658b8f0c7bf790ad9db254a3dbb1b61066dea7a8a2fc4e5144048acbc803ed53edb55c209d75a0d35b8737d00b21d1bb65331d03cc947120e035d084122a00581e02f68d71bc07c923a0868f789fbe5f9cab0165589bcd4694d465a08179c25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02da82dc0ae2da433b70dafff6eb1dcc8b72c253a02883ed46bfcebfa6845820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0250eb2fc76abe00d3018ff413a00c2476b701e2f5dc5a4c818cb008435e4401b7740000581e0276731c98925a25c0f0e5239a800b080461f048256712d752ea6f14a1504398968000581e02c695d423dd0d2cc594e7e3c16c609c01a23ecec998a0fe02a3ddcdf3cd5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0220b9dff47a767639465c3cc9033ac765fa5feec8961499ddce8177b9c3443e53769600581e0204cc03614bf54b2a5b53861f7741cafad77cc6ded1ef2faef821b2cb8a581affecee2142a7dea9314b809a0c42d3e9560b1408a9e7d0ea518e033bbc76d278cccebe6012616da440b7faaa807b68c9a94f76707f96d995aa99cf00581e03e5222523bbe2a780202299801e5b89d20fb57b74d40983121c9cd0c4c043e619f000581e031dfe2f67a6b4c01a55201ad2dd0de1782d5c4e532882c1b7852d66bee0440bcd3d8000581e03fcb27a7a5aedea3345cd31cb32ea3759d64ded9a0ec8a8a2e817aa7390410500581e03cc733513ab7b45c13e3d46a3f199fcbe314b60bf32f74dbb4319339140581affecee2142a7dea9314b809a0c42d3e9560b1408a9f3b79347dd021980a2021979bb032067bf16619f101bbf26c5421bd7a41dcdf6b4d3e5bae5209ee40d73b5d4b11103147b1df80a5e2587c3e8bb662e15b323b00383b26bbb6da77e410c1fa200164a03c7bd0bbce16d9a8611fa9140de0c9a9b050f2a552613c1350a268e5f06f4f2a5037d1a816d867f804c06edd886ffbc906e7e8b7d26861aa33f1f3a56f392be141c03c2115b48e3d7bca6c4e7ded4e99ba27700b8ecf273445692756f2cf72bc6327b03fb133a0adfccc4b7dd4cf69caa24f3f0008a0b4c876a6ec5b7984a6c7b7e2d5503ad85271578560a5a2d15b32a21aa055d24cc02dc049d5fe0fb5a4faeed10c77103382e6bcde401becd3ab8101bc888bffb063f27c24908a1910750ae541c99c88303b0dadd1fc706fc78351ae360b6cf4eef604014e45ec66025b630dcec95621dc2035aa155acb858671cf964dca2ce9d8b97ed1bab689be7ed1f128bbeb495da67c003b83b79c560b8a0d6b654e145b26fcf93c1df873f652e0ee509a4462c3a39218f0219ffff03a4b52d9507716a91871eaae92dd12d0936398fd899577167e79baa7b04c34de803d0bfdd83d0d1fadf2589e21dd2f80080ff845e377ccc990ca28bec20076a1abb03a10c49ecfb973619dd963f11438f062bb82d349ae7e727b32a2d8d441e854697035bd4ef2a34436a1947fc0333fb3e6c414c6ec9676bec7c64b30d69bf36ce4c960344144525816d49dff3943b8860d63f51ccadd2f51b1d48ec93b28049ca0cb2b703ef9d8370fc8270a26eea593d89e8ddec737407cd6332790c32c19929a70fc3cc030515871efd6a4b24309761f9263891e864481dbb2a16a4d69778eeec30d768490219ffff03e005ce64aa0d2e3bc787c94a60fc6437656ba717c02e19a8628cf737528cc9b5033a3b2bbf4fc2d3a55d5c77e49c02a706c6950b766193cb7cf116dcba8171c5270380b56e1fb04f140d136de3288ecd597715c7f29c2641bddc4b70df20ac873ed703184162472a70b088369ce8ebdcc6cae2b0ef7fada0f81cde46f280c3e1a0764b03d36b345fbec837a500a5fdbfdfc8b4590e96791cff331e01d2183631d3dcae9b03bfaa352c9bab21993692cdc321d45f543256c2bd75e9422d003d66c5b15ffb1a032e27e16780499ea081917f7589f347abd7eba14e589b4f5b4c399f6b5632e2670313c58eb250c472a01307143e9fffcfc2e4ab9c716b31f824a5e1cbcf5d35941a03b9caf89a4b4f112ba7a5202c9f459562c08be88e985e2e24ced108d14c3b7235031f96886481c33cf0803a3b7aa18d727ce885d039118fafce2369cacfa70aff9f03ecb56f500a529e8ed6996e85c12589fdf2e6bc407bc00bd927901c58777d3dac030e852f620e1c38ff9868e082fe5d0ac1b549aee756ee29b9047efd5a34461b3e03f28401dec9f0e32c728a1ce507adb282b01f969cda19136a2ccd72ab528621c70219ffff0334d6b4406bec7108d02d004e58fec9da0e7d9f95159dca166bba2734d9516ead0219ffff03a06c0ee5826482e6faad7d5b9212f61fc9929c7f3c2b288282d011c6ad6a4da803a5c3bc395f33ec4d24777d2744d1a60f185a3b3b79f8439534e7be536cc8a8fa03c1968b3591ee85f3fcb99c881321dac255c0e15faa80f5ee9043e01eb3e2721603e3015fbb66f1ec1d61f3afe3c82c7555a2bff9558bde47f1ed0da5e110b653ab03b50fa961ecec0447f18b3146ba7b3c94728612ef0b20fbf0943eda6909d0b81303d4b4e17811753fb4ad9bd69948ce5a3c3b79eced8d7f1ef85633adc5d144e71303a8f7e1d2d96c2b147e054c2c688bb4b7f091d429f4ee7db4171574f36e6cabce03cce7f30cc94ca0e2f139adb12e980aec687f52c200152a01bfcbcfc0332ffd6c03e285bb9d81b6e2dea5140dc337cb1644ca977759ae50b92cef08f7bdcc2f1605038dab823c1baca0b8f2631f31b9417ed6c802f2d6a987217378abb7e167f5778703e1a887f4ec35c3419b1fe07b40b143b801d15c786ab179b4e74679c62e11c01b0362881a88676285da0f22582b9cc29c2fea6e23ef7f4adf733ae9c9c9b3594e3f03c9d3586d81ddb861af7826e696aa21baf2a5c5227e1f5064b9a05c4074d886590322e22cacc6b595692aea4a3d7251f3df9ec46f222f462a1d66ff6e0a13ba8e3203409ac745c81002e3c4785bcc3672cf7a57f0f915d64f4fd53e9a3ea600651525034ff636ab964b4929253d0791e4842631226fc4bf1a8cad6fb39aa9edbf63caa5031ff9f5c6761a24537338af8efcf98c1f6258355fdca718359e7cdaa9be2bf38903a022228b193e1c8667de6cb893b5840a267bc29838b0333985a26ab351043bd903ebefbe3b498d588a8aec62231bb13759cac637e91c20912fe3b14d503e8bdaac037f1b95e679a3d93dc05c01291bc3a04696c227c71aed56a84e6570126fa62dd403f749f2e674321a1f6be084bceea90715cd6fb16beb017c6c15cc7dbf83165c9603bf288a0fa4dfc11303cbd30fd9ea9c472dc5454b977fec061eba37cc5f6011a203c3af0ced655f9c586ba399db17f9241496f5f14f969d2a78dddee4669269d27403fc9d9db9d5951e9d53472b9f40ab716f05d8a10568fcb491ff5169809880270e037402e91012e0c7734ec9481db81cec36ff20ade20ce384c01ee2bbb0f6918e6c033158a71c31eedcedb5a31492b4e810893dced720d3a7086efae4db6f14eadb0f03c10929dadbec20142a8b850a90f4838f4e7cf8bc4124f5b1b31e2f94221d217d0368ee0b4eff9483c19cf8ef595ba77e0e7afcf2064773eb16a09fb0884b7be6bd03e574806f1d43f51bff022ca75b0dfcb673d526e9222d4fcb6c08d80148bc65f403ee48f8758644a52155d86fe3ff4a9dff0a857b9617662cce07ca6e039131487d036033ec23074569266645a4749eeb1c9d90a11a20faa724032da31109cbfaa7c5035aa0ec1f705f97fb52a5187519da4d264a26fa537342903665a5acd3a5c15af003970da3cda08c2242767b3b0822aa5ecfd340618146264fb57141cff213d92db00308c08a78aa89dbaa47d8ee2cd51dea8d3ab99d0511de03a93d8a47eea2ebeb0a03b2ece796da582bc689cb5292ca16563fb1eee45cad1447aac09a4d32772ea71600581e02933db8b3a9f9c2146c05dd234ecc30b7169141c52ce0ca1a9e83d24e4e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02e40a0ce137a5c64cc393fada0dac4f1aaae42c817623b1283c134c2448410100581e03291a4bc4cb57092ce74696d7b95f3a0da219ba0d1bb456e58e4db29ee043b1460800581e03339b82ae452e3f706de3509e11e1f9e1c552040df3f65e63dbc3b03be04441668a6302190c000350b74cde4b85026d2d2df27815b2a3949a0afe11be449542d86b74ae41894a8600581e02e4f73ecd02c18c5cc7d0d21ba8946b54535f27224168d27593ba76470e4403016b900219ea0103690abdeb8bf88bdfeade24530bb3de8d6f84622663d6b41f43801ab481bfbd720219ffff03dd7111693ada5f7b3df3b75492eb3286a9eec3fe65e57e5feadf330e84036a0903241e50ea9add13f028cb5b3671cc052fe7d477e7262dafb30c2fd87313c54d5803ff45f63a283db71808c763a2a03fe9e322318e641ecdd64d7a9629fed7353daa03b77ba6e4bc7738517c6c45713d25b792e6503c041f90467d9d12cf4ee103d98603c0f373bd940c771cb45c071bc889afbfd649580b5a9ebb07e20defbbc734d92103cf59ad7d36ff1426df38b434edacbbc3552c5e771307f359e33f622d6778db1103f4541582be971e77b29d21b6718a389cadd8648c62584f8cf7e2251197a63c44031fd865c3a65a23e0580571e032bc3fe07205eb9df711caea72e0a3eaa1debe310219ffff032ae1571b727580e243c7aaf7f69dbaf4c10a38c7d36b9a2066dff76dc538a421034a97c755fb308599a3f509078bb539a9e2beb5747f66badcffca4be325c1e5210304bf413ce773b5b9426c8f92bcb519ca0102896f5013234c0000459faf6c8e5a03cb44b39980acc0547e8ccd39effc0e7dc596cd4ff6c7de426c93f4819caa83b1034f2457bc613166cbaf0c6a4bc30c6c54fa36f9c694082db2b3457f094fd216c60385550ae1c9dc0a586853a69f109de897f8cbc5964b887686770f1a33939f89150399afd3509dcaab367f43d802d545df6c052a0ed33a393238bfff1fd1bab64d650360c0855ef6ab9278c1324fa9a67594e5a7339c072ee67f76a3715a61c39eb86b03ecb08016a060696d260e1b139d77590704aa9311e4856e396c1a5a8bab5d7efa03635c75f1ef6009dc8c7d3f206b915467686b43967e24c1b87fccb38785462100036d71c40579878bd7dbfc95073a1a4e3dd5cc43f68db2ac3bb09a7aa20851a423037be1cedbb587b34d4073f84af6cd5e0e2d4db741ff9c7c6f3a02e1e15fca975803dfdc60de730ac1ea1b503feac10be9a8fbe407ace1f80d75fe0065bb6c4d047a0345c8d86020be54caa72e65b56aa507ced0644864191489f89159a55e846d1d44036420eb0c7831c5179983e9936cf10f4e6ba97b54828f898bad2ded4b5f50bbc803a34fce4d0be7a6808f109b3d88b53d01e51ee9a4a702464cf9e2cb89cbd70dfd03b49a0c236ba421663a5f67419475fc76e5403721386ce278cbf34f266a5245e4037855789124d7b4425d9ccf9d217ff19494f4f0a5d7b4b17e3b729e7709caae8603e1e6d539868a13d507c941e603f6d16e8778b9ff2a85e7772578580f1cfc79e200581e030477779c63917e35385a96575f9750c234ed79adad63fefa5b3c15d9604401c9c38000581e03d2fa9e508f337560e355ba29935b70bfece06612b38ac17db3a19f2630450e2841a2b902191004031a6768bd19737004d743fc24ea20edef5a1b2ee46a06db361a9b83897f588e2500581e02e7cb309004fdaccea2e37818d14c06c15de28a7bca6d9b417a2e6316664401748e8900581e021db27848c07ea53d6f3b8fdc57f7493ea58f9adced05dc1dec531c3c78430e03d0034d200113c4d6350fca1271247258e6769ad323d7d3cdf1b274d79ebfee8c639200581e027ee542d766a19f8a06c278a516d31030c3972e54669f8879abe67556b8430f424000581e02b5232042c3a1876c31733cc45aa2a72ae8bdf6bf2370dd2eebfc868bd25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02b6373da968a0c1c649dd839e7450cba8c7ace78ed1b57252893b2d7d3c441fc404e000581e02812a3eb60f5f9f2f6544757beb2d9a6f58c825c10cdef567fb36f4f71e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e029c4d3df4443b44a4eea7ece9a62df79292408914fbd962e56e1662b315412200581e020e2d80213a657ce8d4ac315f4fb4077f00641fb432a9998f353baf01d75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ae7703666f7b9aaa471ea244e0018ee23cc21eca467e820ce0bb0826aeef4bf04b47f6034caa69506c486ef88d833ee35e6ed5185db5ff83ba5f10b999f3875a2e84d5f80331796632d1bfb098ccef3a18f5d65bd31a9d5c475303b9f8f9dada1bb85c19d1034b4dbae661ffd2ee4300e0553ef6a6d8f1d86b6a18cb381bb7d16314e6c9548203e90825fe7faf4f155f463e73822b0042c434d48ad70397533f2df8bac5dcda6c03c27c75e23b088091282ad959dd2a6f641084d16de0ec2727d5f9ae6820f179c70389d4a1d80cd7962c2f2beb6eeb7a5deef506a60b1fe08f2ba9e981218592ea6e03a3264d2104cedcd57fa79da739861fb2227690876c220129e7704add25ce21aa03b81ef64a03d99d85ceca356bb358f3749dc3deecbb54e35db82f83dac58c27370371cf4a57ac22c08ba973574603161e8b781ebef17f35aef8c9e3329d8c96b01c039ee7c886cef9a737bd65455974242bb2232eb3854570570578311084fd08adcc03cabb5b03f29bf9903d4f7b014821171d81a76040081268cb6b740032eb5336a80219ffff0219ffff0219ffff035ede262dcfb60f068635766ba46cecbcedb2df942ad3087237f4c4eaa7b1f2dd03dfcdd3df7f248873a1c25c34a73bda300df1931ef82f35b5efe792b42f4e2822034e7f4c7c3828dd10201e6e1e441ba10ccbe9cdb465b5885087db67b10aab72ae03b7662698f55a5bb2b388b0b1588106a9b2ee430648cc1de1bd92c1427dbb1d6e03bb4fe0ad1167e78dd087b441cee00b2a744f08214be509db66f1312a0bf63942039d6f264631e6d64b9e63cf881102c54e90077fac60bf883bd7cb340912558cc70336b0cb02316ba8d997ff76aa1eaa0db61f74159365179e55c3d83ac93526702a03ab12fcdbd752fa676b40fbcc6c2b2a59ae81ea1b47e55aeb7c2d01470dbb98eb0376ad4ccb8c1c4dc810b8fb03e4d485cd135239a61bf854184a7ee177850b76dd0340aa16e5132799d268db21dc9f9f5019aa49cec6577bacdc51334a92c528cc3403a7855f8f2570755073b1b6807b719ed1e685fc58f024c560ee00f2ae89e913350328889aabbfe62203279d4c6182abc5abe5de6b08c65deb28d4f593c840983fb10306b59d5760ffc72512baed24e7394516a61d4ba329d76ccda901240954c7059303083d1ee19617ff03aacdbe0986ab8d3092b7ca95e39e6fdbc19b8d5c18bca32a031c0bb8ff4cc6c41db8148e2e6196b93992e4cc70e02605b407e5a1ebb6bf4827031647a452a530eb13186e87d9db7b5d66ce97754887459c3231159b16a758b33e037fdafe5b70d91149f9e6ab6be7036b9ab93611d721bddf8701378481bf5178cc037cbc79d95021b6bf4cb65816a86f236d15d8a77099f2791a70d8c06bd274fbd900581e023ff0381478b5f690ff8bd4b329b56c01b69b83efb9d9fee9238ec3588d4b4a817c7ffffffd6aa07a0000581e0251acb55355675577d22118be87a8f921610866e11e3004c5d03751836744073712fd00581e02e12371e58c1a593359275d2d51ea7b9940c1051801fc041fa08c2fc5404398968000581e02a9cfe56304aca2ecdda55f3c90c4065be155f705088110ac4b2614b8805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0254b632f778a226214521af90162b7d410aa0fb190164f39d71622d63a75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02c8df6c6f33a37eab13a3d3077139c8f9cbc936d456e0bda328a03d5ee25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219be00035078850bf27c76dd988d6599b97178fb2c4c6863b859acd4cc176a19a39ab79b030cb63fcf533299f6d883b851f7e5146395337b8da3d651ae21b41151a0f1615e0358adaf6670d26399638ca46ac5fd671b81915d2d578db745525a52e99b5b9b2803d129a5dcab1812db7637b4eb932cb5d5b8e26f3a7ef8fe2724e76482edf4818703a4a480a4a341af1ede39eacf816315067d918dbb98414b20b7decab20c9d5b4b037f9d2e0dd50a5536d40b710f4317535a3a7565fb4d9b4b5b5b605f139dbc298103c038c6f13d9b4254875531ff6602ee908a9e798759e06e1c852bcd2fb9e0991c0311390c3bca0904dc739babc331a24b22fcc451c585e005351effedafcd2b33de030b05d783edfb3e222cd24afdf4a606badb005f263b46a0c52032c240a62a3a82030cc63cae7bf1cb8ec0278e1d72a6ee06dacb7562d6afd0dc73617caee09286ee0219ffff03704e4923e71049dabb4300094698dd9b588f81482c42189c43ddd569e52178410321dfa152b41af781ab242bb7f289bd3e8e1205041185728927570650c3b49ac80391df497e8159b0699f001c729b8dfdce8f12eaf6f6f7057d3c6e2ac5b89646dc0385881d272bb7d640d4e276e63efd9435d4c45aaf11434a85afa601b7fa920aeb0333d25d7e6a42c28653b05042231ed8958e2f78ae0cce4e3071f95cebd1586155033224040202b6ba970e33407952c81e21e44614de0a62487d912caf0fb5a7ecb703419ae6c61d185932ec8a305999e3dcbccf2236b043bbea3ee55e326e6ea9487403398d1822e54ac0ff66eb18bb0f78ad949f5019d7e28a14cf625b2b148a09ebc20219ffff03b78543dcad752ffe7881703f585a7ee7b305d7c86bb2a66fff71eca8f9f7eca3037684c83e1eaf9bab2cde62a83bb33e7634090fff6b63a5362e290412c651bf2c03da82651a12228af1d69e324d24f2e5f95374e64ad165842225bba5bb9f0bd0e903fd2cc2b55599c5aa7c2508e97e2be64a71edc28e3cecce7873fa01ee39da5268039842bfc8a2b93d7fe5f731fbc7d2af7c31e1e1886ae73263c6b706fc2377ade60359afae276a1e072eb22afe2048a6ecb981ced1df7f15aaf25c37c5148e304f710394611c3062cf0bf01972a9af80696938a54a1df9a7b3ab32b138478699f16ece039fa8e0f49cf5b698d9bcb8c9dad79240315442fae04a74f0fff69c1ec4a4a01203b647c890d001ecb47f6f81b870dfea6eddb30b606b814fd10016302c8c559c37032a78137562ed8615c33847800c2c052120e039773078a04c86b8e2f252afcf510219ffff03a1ec39ac7284788b75af4e4153c5bdca96705e6176497fa0a94eef5b1a349ab703147eae50706722dd6f1b199dc0d04bddcf5df40993c6bfce5739d9dc8dc62b6203a121f6d3a5adb36c7ae295d551c3faaf96659e95cfc3f02e163a72a4a3b0b27503854745f7a0e34592d2e8595024144a04e30fe3977cdb5461906dc494f6dded1c03f6cd683d732c62325f4c9a9e2d7b1f2737caed4076909fe3e4a2c822273379fd03b77cdca3ea931ea7210b1d0a98f4f5d6ece57fedd72ecf5a3757283608cb70f603f313205f8dc85d6f346c1b80e15e6c8be1c4f8a5efc398696c56c728b0981b6e0339280547e886c2075d9c566138c5aa8929602497d6e1ae01e3dc04e56619ac2a03f2a93df8926a4fabd817f408066a8190084ba167bedca5f7ef46d24108b326570326f2502d9dec5016425cd5f53f4f93133a67617ccadc27a3206d6fafa8136ce6038e3966b4cc191dafc09c024b2969e87ac07be335c1656d302a2d783396abb7310311ff4f07eb0594a40dcbebfb036deec6362ac8d265192c598560e3efdbad180f038eba16106abc054a409165b54ab0a2fab33347aba62e164bb837a97e0c0d09a603de6ad477526ecc4c72e567f20f344710421a2a195ac464eb6befa41240502f4303a8521bfc5615075398fcbe93ab095d6931f6e68ae8c09fa725510f78a49a3f3103a4b407f62d3e9ee5cd7f3a4b3f6986b4eff1dfdf769e820372aa24442004131c0375e601e8c03ca07978ce6a53074b60876d3a9523ccf8874a588ae7024212619e03b2e260844da83f512a777afa6ee72a7c314a40978e62af4aa6ac2aead87be0a703514cd43b4fbf6bff9ee8887cce794b1b4ab5116e1f2fb6e3d8b2405278436dae03c100776891bcef9cb62b68391de56bbe068ba6e09a8979f8fa08caab983b450d03f7481edf806727cc8aa290f0d092802cd3c327648ba989d8e4cfc8f82b0929ea038a9b5fd4ef8ee6519b083f4f9835494dce4526994637ed4c4d142587aeb0be5c00581e02b08575008e4933efcd689ab8a5ff7619703c77e5c47a9d9a6660722d8f4303df2200581e0230d6d59a152cf79d6a1d81f2ed01d2d98cc92979d2b67d304dd46571a85820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03266876557c2305ea08373f703d20f85438bef12e582d806685297bafaf06364c00581e02788fa29ca15e506ee102b252a45b7b650afac9fe553b2205c1fbfa3b044401c9c3800344a40f0f7fd9df8ea85ccc40a1477565a739c82c4b2a764f10a822e97047543a00581e02ffd536a4e76775adea604a01f61e9c63fa966885ccd7af296fca3904465820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e025c612794ac0e04dcb9272b33d469773397862c31bd0194e5c76da11cd6440708898000581e03a83282b06465238c8e88eed30ffb56fd670c515914478a64cad7a84cd05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e033e2b1d2c9158c1f3462112d60790f17dfdd954269e8686bee940f458804501cc5ccba20219804002197c0e0307727525033edb0b33b0fd367735142b9f738fc3287d5951cb861cf9b0e17c7d03ef0de0f3b6d238aa2645483920c1bd822126b86c7961d42d1d9120b08f3d7a1a03a6e84e72662ff51cba4125567e7b71fa2799d19a911aa0029b6bcad51e6a9eee031c39f49a98a32c9d0176198827c9bc2f838dba7bbf769588eaed9e3c4f86b75c032f27be73a3a444c0a46467de84cda9e01f4be9f4f66ae3199492ff16dc10ef6d03eb77228015e252418985185a976249963266d81b4cc07b0c46a0c6915527b176033388ca2de93e4748811d0ddc0e5e2327ed337dc442f11297b4fdc9fc8a96c7eb03adb82c116987dcee0ed11e001664576ddef5345f66ff084a7cc4cc1f054a881903489d922f284adcafca5d4989ad684b2ca9f35f4b7dde89c587d34ebd4e8a176b035c3177dc4439c46431a9f3da272f52c6e285f7d0e89a5ec0e37ae37f86b01e7603dc6021b528a9eee5c533710f2ce9e268d641fd1c3538e7edfd4ce50e2a90e20e032f5c1adfe0dcdb2bd9cee9a3f8d6412eff5bad788f8dcce0073aad16b3dd499c0219ffff037114d62aeb68365270e16da1a6653302a7aacbda933abc581fbbd1e1dbf0341003c26ce7c662a234430e6daf6278fe8a811ce04dbeebc6219de1db47abf60c538a036b6dbfb899c0d778b6d33948419293ed6696374f3e7d7c3b45f116dbaf2e25b40385c0e075d8222bffd4883f67d0164d1a0b11d105a90d1ba2984a399b60091ef3037193a97b8ec41a73002d9d7f3fc52668559bf51ccbfab7ea6c59bf64668cbd2a0219ffff034f147ec7a94f241d0dc1bfea2d032b9db54d354101f6df98db63105e5eb9ab59039a97387cbb1c5a73890f587420ae0fb917abd860457cbb0e52f3b2545d24c1ce03101f608497f78c1d43cd7a5bea51509b444ef545fb6de297b081bd75620266e80316d2146278c56d6f0ebbe22053602f9db1b8bf416b908a82473f52fe6dd7877203ed8ba4482d9b6ebfcf7fb12ffb112e3c66482e554e70bef1a8003018a32ef60403f32cff37545b2d012b3c0083066da5256b75b16f8dbbbc5a147a9134c571fe6c0219ffff03bbd70d7e1737a461d3f785169cb85a5e9478448288bdc8ee5f2548c3e194b1d003835fa193d2ca2cd89b1234f95a8128696326abedffbf4f6a28ddc44ad0f8c36703ef4e346a0ab4c2857b2d892646c3c93f64ac9152292d66627253151c006e293e03e3eefeb7363a12d619fd37f5d7be8fc9a79cc4b9615b4a70dfe860c31798479c03186cf6bb819f883d1b94334eed394702a54a620fbcc643089b7a85de1e0ca8e803a19a540b9aaadfe641ad1ca79be0f01ce06f3becab7860635ca0caf9ebb31d4c0385e4b8811f69251f170ba14fad3f4f0dd5af04ab9e82e50cf3829ff1a0ed2b2003256afffcd8ad6bd9f1ebff0b6a8a36639d5bc7a62eaa1437a5d9375164b270020318a271b2c586d0bf9e47915c598b74a9986ad639a927e4bace50c95f644257ba03eda004d59409a13452d3166efd38cc54a76f040fff7ec02164db5c79b8ff08b503e90d8e9f2a8e6480e0f288b150b3ccb072808eef30f9dd6daaef7cbb414dcca403b511055f6560f8218352598ba668dd57b364108f388c36f5d99161f26bb10c0f039150bd57fedc70c0f5c10d12d826640393944ce2c6c39b9bf34a8b87e9eb730b035c3db9c814339cc180874ed4ff79bb792e6c35f49c183905c1ed9e1819fc298803183ee0c07801e22b86fa77e0ac0992dddbbf4937d8e387bdd552aec809d7bf4b038a8b4dd85ba68387caa1a929ca83b34b1dd1fa38d6940e52ff11a515acf8aac303c9d6a62ec0e32a263901445aed8d3220ff10feaee451332d03f7df9fe255dcbb036784563713b2af7b9dd3bffe14c9248c9b892e91f4849b0c866a1ffc3ce7a3b103ad41c5691be909f125fb0638966eaff7efed606885f9f334d7454dd27a6d4ff1036a75e44a55a5e545229309f41f300417a98ac5f3896dcbd2a967748b94341f03034c10fbfda46f12d4ff563a6d1b77d186f184265b67420d0756ddba087fa9a61d03f9bb8838f24f2101251631f32f2939704198b36d8cb4dfac2db76c0f74c271e403583d7b91d2208f95b69f523b5cd1b6fa35de18395b836e01d6184ebe6a998f4d03713ff5ee09dcda3db157a19f37d61b578c012967cfb177464dae382842014ffa00581e0299abc6d928b171273304cb80e1a1f154280ef885ab075d00aadec26f454398968000581e026a8b39d15feaa36581f1c3288b0b0fd02b11105dcdb49229092f7be936440510ff4200581e0321500ba924979390167eeaf09d6125b1c4d8c7cb6d5b7c7d546846b9b045e8d4a5100000581e039f855b4d918ad036ea4fb4993126863938c1be7f48a3951698c0c537305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219044000581e02bc75fb3a138873c2c25d00a7084e15c1d9af521442febfed0eb58f11815820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219e6040398b64df677e062825a7c359df1cc2fe3b401271db95c41ada474fc133d28f37d0219ffff030e568ca0ba023bba4efe71fc7cc1b7ad4e72b6e93dec686ef2e031da05141185032685ffc90ed03f7fbf48f38192bbfe1a05582f7835128f8662fb61a75fa1bde6037f71d34b83832f52491465ea3692132b6a572d9d2975572d13345a1a36dd383b03c5e91df04a15db46cbba2b8ab07aa48bb14fccc73321ce198194304ea363a7f003af8f9b4e05783f256f68e3be63a866a198091e11e12d71eef86440aab788045c03e7cabce634c42e832e143406b163702351aa397f905db8e898699d9dc31dcf31037d761df6db299a9514b89b76d928aeee1c521a491351418c5db56f1b99ee0cb30309af1b0e756c4aafe133a46b6e3d88c6c3505825bf6ea3fb12fa09597c60d45b032c471043904e0a3e1148f4b6441642a3ddd33778030384791f1595c547c75c2f03fde2a6ec50b7b1fd41d10b9f775d6d307d0abb9ba6dd0b986c60d9914ac0f96d0219ffff031be2c77f431e99ac3725e99dccac8d8de8f3f021bb128878853ed0315511c6a203c1c4093dd95a654d815f021765fb9dc7ff31601919225f6ea02d1ce79c0fb87a03365a00670d9e4f82bbd8e890a3a4a4dd7f3e1f3161add90eef751637cf84ed56039e51d92ecfeb19b72ba16e4fddad5830e98b15341fdac12d03eb71f39dbb8847032290390da0295827688af3d8b2d9fcd8eaa7334a5f22f27905ba3e85dd8a76de03325e2899d2c9d9dd10ff809ca728f5bbe641b54f2a6fecc63994ccfb0ccf324b03b6e26fc2b674e2ba3d454f27d5c4015673d1f8bac92a626502d20671bedc4e2803e3d2e2cbb9f36364f139c45e9bece376a4f033774f9f5b0aa7f21af5a681bd7b036b7b6f32c9a1c314ba29d3c7371ad4957a737aea285aa7319374372d02a5b37e03d3dfb1a2a1e341079201ba9be57ee9ef3f315b1d4403422ea4a11c879150ca5303ddd1bb312731454e7ab6f39684fd64baa37dda8a1e65f59ca8cfd41538ec192603d56b7ab55f5b2180f6b8298b239dbb1a2fa897a696e713d3b6e201dfc7002bd80365c220e40e2163e8c55ddd86e114f7969cc2120f6a8be7747ee99f960db3f1bb039b6f413723da36aeb58a3adebcdab36239722eb05dd95b53635428b3525db581034810c4775f6084b51ba4bafae6536acf7bb5ad52d897ec32c445b2943123175e0350180c17c21d39f056b9c7828e61a84e3eec6a62c411464043de9d115877deb9035f25cc5bb9643378c47a5b01813a00461a4e308bb6810d1560350110761b897603acb530778d28c554a76a82ed4afa2aa99f04cad0c2347e4c55cdf2e287a06f7b03ad6fa3d9d91f68121296f342313fb04844d8b9f1e9fa1d125dc29a8e81d02d5603884fd506a8540793d07c5fc4eb143da6387ca58524dcd11103acfbf030a037ae00581e02338105914103f4c8f5c4bec5eb6369e351de9b38dd6cb26fbc50b5c6244306410500581e025c235f42f8e0c6b024de3486b1a093a7e24d2fd28381f1690c7dcc20c25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff032f6255430890d5c26b7fae36e97d5604ca4275f8286068f86dd36f73da8c2bb100581e027f50d4997298f69af8de6953fdca7675a6dc64396de339b58fcd7f4bf05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038d66e7ecb126f5a94a76224c8bf8c95e923b9b04447ea6bac6231eaaf016247700581e0259aa0ea1dcc914745001ebb4f7342c9a58226002ad80e74950be63abf84402dc9310031dc8b12dca2bf5991fb5c32228944884d05898d46fc1a8bca4afda2da07a31eb00581e0263df22a0e142a321099692a25f57671635492324bb2fdb852cbb7224524355970400581e02a6bbbe870b72af4316e14ac4f487d20b7ef714bdab786655685b89d36744055d4ac000581e02a785a770287a6bfe4b2b9b03e0c37998cbc386fcf83eb80526f7017b0745e7b094ff0002193e8f03d12c1d02016df13933af4a74b200512a58c9f4c853f8f8dc1d8137f665c96fc303a447ed0da224e1dc808b37c70b12005c5492c01a5592c0ff10137a6294e12eab03b805fdf7a64e54babd019ddab4311e4ceaf97866657ab1cad28916f5f795740703d89e3483058c3748b3bfa66aae527d707278b0a73229fd8d8cd73fed0790bd4403d551ce75f48a8242bb80f014d1e9dea6b3aca663d877972796f8f632a44b840703972a85f080061831f3c5d1672c3262b26a84c2ca9c28c6104a7c2073ce055f05035050a6b126d677215b719eb5576bb0f372a07138b03a30c96eaa5835cf4dc3a90310b2f3bd30fb2ff3f5a937fbffa474bcbaf73bf1e91b12bb3d44cda3c1a459d40219ffff03b964c647e531d29bd85f6d5fd2439a407cfd826d1596c1f225b112b946bfcb6f03ef862341437f987b816e90a5218e75201514af57fe6d1f23b4c389fb289eee2d03f6e8795db0b2bd95c78bb91aed958623be938b8934515f158fca0dacecccf6e303c647072022fd801c99164b41142c6ac442c247ba34514b7116e9865d8c31d93203e12c487863a1585799bff6992d3d879fe27cac8f68312adc45eda9b7c51d0cb30219ffff0345069a10ea2fafa35a4e38542cbf0673b2babd4edf33b78a013283958e01f2f8031e2336e6b80585cd69014a09d86e954467cac164ad53150dc4a16f28d445796b035b7a7a4fc8d5531e00b52259de8020d57a373edaf9842bacbb867ab12e4db8fc03be6085bb0b23bc1cb501f0c167d70fae9372196685566923fd76c3793c24279403189650358bcc117171dbecd2cb20ff73ff6599e8a818fbc911b4deded86cafd803d453240f49f0ab62b276233986d82bd9b0a9d3b3990d359d9a50501d76b42b5003e0178c6d9dea7148c4202a6fb7ada16fc0598694bec9cecfbe8f475a083436e403090c707b0908d234aed2c58894f3a673f9f6f39816b0b3b4b7283d500a50e5a303c1bedbd80e95614449085905d532f343db77c67e78a7bb9279ec8db59ab116b303c064ce02190618d148bcf52144320cfd5a495fe9265247f0f56e8fa0b4bfae2f0219ffff03df52027467b608512b2e2ad07e4c1784b2858d0444c40b638a9fa34a07cf755103c83cc9f92b714c94358da052ca8413ff88c5c0bf00d8aef6d10a3b999e7ba2b303e71135ded58c71a808322d661246c534689d4f6258c8d18103916f9617addb1a03393417ab9d08950fd6632f94789fad670d9fa148be942dfac7cba3963067792403ecfc9267a0c1e3f64e8f0bcdb63c42648c5be7826ba0d60788dfba756678a1ae0380e26209c46af2b69f09533a5558f32feb1cc8e97c82235adc9c08ca9080588b03536317446ce32586dd0c349b23a831a70d7add3f9edc0f4dd160c51f0cc52f3103f59d67162fabbd5abd6d562095ef9cb6b81e5bc0e797ae37fe02cc11f2346d0e03bc4dd9e32b0d555c31d70cee81a07f6effd84e537d27ddb2de359872fadd507f0343e9acc3f8a46863bbdb37acbb0c5f548780b4574cd0cfa292ab686052c74b4803adc76ca6e769f6cb73e4efc3df37e7d865c6292fd79660b36caa9254a5c12151034b902ad23e94a31b9327b5cb83278972ff0964579d1e3b8ecdcf99cf90c80e8703a3b366bbdeb48972205017a7c1f7989dc73af822e51c17ba2dd0f696feedc5d103e952b18af84e2081a5fd7107f56ef3f7903ce6442a91f575e812e9ae121cb777033e33fe15983a3162531b9fc703cd10370553fec16a222349c087a1abe666d9a6036e6a58af88541d2c837591705d194512f9950a3bdc19af9237d2c8a2484fa901035536517137fc1d8765b4e9185a01b4d5cf0ac2498517b6fa13948d2ff86da14803c32d14c496e36fe8ee062cf028077fc618d60171b6ee95b7e93dab0c6f50032603d46110db5327bfb0e38cfa37144e9bf0b53ab1c3c85d11fb4984707ca76cdf4803d24ca3f6ec9a934a34c0a2e57df70fae53be001462a90d5e8ecf36f5eae69bae03d87d73223db6eca8672d099b8f4bea44d514e4d346b7baec1d18881d04c04261038f098512e685819d235dcfd511247ce9f33efa0b58085d61e3401f323b809ca1036ca06706ff652a610062993b3f4f15a036b28b52a0a3cfb9df958c6231d066d203caf9760be412593a771835f051f58703fe8ae80d07fb9ed5f8d2b2af6cab0022030f265d2c55d7fb86c591b5b4876e6028e814e84164ab578e23527955a20fe3c40336cf4756536df295d88466a3c3da96cc5dd8ae72b1a4a064fac9312a63caa35d03ebeba37e402383749fe46bd0b431efe0e235ebb57f1d1e2822f445a5d8a2cc9903e3394c69f5109c163f718f7261b3fef268e0b4f0a626296d4cef09344a46429403e5a308dfebc1ec5516e42c20f9d8fe026a883256729789cb78f82ef36733185f03f5d209c7be42b3f9ff9049df180a34ee79cfe287995c25cb7b34cdc11e932e60037bd3c2ce33e1992e6fa466779489b5d8ccc1d9bdeccf7e51acad3590b19fdb6100581e02d7b01b3c7c5ca8d895088ee832fcc1a011ff62804866a59fc6befec1df410100581e02e0401d03e80273453901275a1cedf55673f1a76b96a52c2eed4ce2e0624d0c9f2c9cd03894372e7e446fc400581e02594bffe58dc249db1dfeb07f0f2d4ca6465e2e77090001b0dae9cecbaf4601c4e52ef5b7021929880219ffff03665c6be671d44be2250dba559ff33af94b2553fd73a162f459ccae3c57ab6e5c03b86ad08f98976a0998dc1ec029b8fe6c49a5f0dc641f464fe1abc67644573fd70359a314c7ad76d633d7a245234daedb0e7d5d3b6e0218fe010c357cdc0c693bf103d30c2ec16666b51ef100e416e4e439d4c24a5133d4d2e3117b5d4ccb3dc427f4036d72e4a7a447c3fd65b8fa310821d13f9e73b3ff121b90690d59fbb31c3038a803a766cee64b1f5182b6fbbf56de720eed69e8ef8339e1655e77637e452572bddb03af2d7dd2a85279786d596fc24a913417fdcf15378f632c1342d78fed98e7dce6035209a933c8ac8efc639a2ac869eef890c5be80daa033db68b1f26551e37d991e0317a79425593f932e549b3dd3983e810542b0db936dfbdbd9d75da2b5ee40b83203c9168048471c351baa94b1c8592478ad37fa1ebca900c32a7751399cf42c00c80219ffff03e453917691048fec1b55004ec9dfa7b5d2c8ea4f1b94484c8f22f10319c5fdce03768e6d6765fe77179bde0e01fbaf0235b63df8336b1595ae8a785e0f86f5c22303361de90b90efa142b68936e0e859771cd4441c07187dd521883017b80c6ab1f503e62e9616d35c0afd2d0c3363bcd8702f7be0d0e3810321a4ecda3d33307ef05d039d6474d54a305b047482fe10ac2d22d24c7800aeca2d456c9915d343d00b80ea03e1cc9ef63ee28d88a12b1c415e55ade036d0068a2d47930c1b636304e2cd7e7103eaf17835a1aef9c9879b4ab9a3af0ce310aa57e0b1ac2ab61bbfdd6f9a2f9b6003fd0d750d717a14193f38591b4a97866f332c12ad37c34c09174dfdf56fb723970219ffff03a2519f9969255d2bf77f2959d202e4ef5cdbf23a8493dbaf556be3333f23159803c91386a81062dc14f3a876019318754c2d288733b913e60f29b5667e97aaf3920395d0643157c145a3268d14c0644448274dc2261819f9bb396bbd7f385440de1b03dd87e69148916f283242f273cf7406a13b43da626173a639ec9c05ed38ba67730385e50e58f78e51e5520dec1a247fdae393844193b47bc0a7e53691d29377b0f003679971efc396ad81c8cd205aaa2edbc98b030e00b530f893a8189e9230fb63f003cfd3c948c6ab60f8ff230b80aa433b901d5ee10f7b4eeaac55e18fafbaa5d56803974923096826f8db9ef28a8901f06fb0d4dafc16d2ef5a75b31b0fa28f7860dd033b2c2b9dbe7bf5b905d484db592f7c029601ec248b437f42fa488c1d9da2354a03fc7b1677de7c9f33cb2343093904ceb09abb9458baff8f338db9cc63b0332550033a72643cf1abf67b3613169efdf5ea59a82a0dc4abe5112d2a213ec1576bf63903899fedca505781066bab32e663eddf18f519de03647eee5b3250a3fcc402a634030df6c67706cc7a474a63ef1a4856594128e32a635190c977ece47ac1d634b2ec03faf2261cfa4466b81e466eb5dfbc8d242b2ef7112602048170f9a5877b997a890312aa59b3ea0b2fb24ec2abe7a21b42a94453c7697df0e8dddb6047cd0411ad1d00581e02ccc4e8c5a87ebc52905f4b3e75adc404e15ccb717b05384e845cc4b5285820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e027f98d5654d94cc89f664ae5704d2e5c8975f067ba6fc7ab4db20033c30410103fa547872ff9294f2244335415aa5475f95f9c1ce7f5210e94b24b6d1bf35bc0600581e02b1d7d61326a7dce6fe7d33c4a898dcede79dd0f7a4a687792f73202e814401459f6000581e0273542c18d49561f93e31cf8bc05e2f85604b8af06e7c6187a5085d0847430cdc1402190ce2035242fe260f6295bf16ce7d6f9c667fdab33314e3806231a09265bfe311e0edb0031e712348a04c1c74b1b83e7f3751e1d707b2f46bd324fd5bb431e36385486a4e03eaf4620506b1594aa447c2adc4498126414f14b57abc513a6f2ee00b143fb5fc0332d71d5c0fb5e90209eb6d2dbc8f140eb43e9a5435572345cc768c5256ca37f7039d77d86ba0c6f28e07e6b5ab8a57dc1d5fa233e3ab1f16b5b891e2d029c1208d0381b714769b32975dacf20c0cf3989ab773a0a901e04fcdd281b2d50a81b5ddf803c82a1226109636a1731f121744568644c2b07ee8b8fbaeeb7bd7c8e9f59eb14b03a956ad852907933449eb18632b30bcc7f551052e7510c105a1ba2089fc3f29e40219ffff03cd01fd5d0b71ef7cf351141c25cb95dcde190bf88255502b562ef87c5ee9ecd703d7cd3d6c0c7ea4d9bfe1fc1246bf9b6bbf140e231efb87474ef8f1c2a2cee87c03bc717af601903f2d90c46ce9e79d6ac2aa8475f1fba6721dc257dea26ee4fd3803fd1fafcfd5995620cee6ce0d861eca846c2a74372262f8c21faa067d2c9f4ff5032a2673b7e1202854dae061e74976d0edb4e0fb3b9320d3d5520188730d1478d40380da990de6c54534f510f494e10993c25de27ef8679ce6003493d51f44cfa006031589e2a0f19e5355484315c7b31b81e0611a2b3fb272223339104c9d9ec8ec2603046ddada1c591e5925f79e9af75ff5f78c05778feb679f48a51ffa41e034870c03b5343812a390d4555ccb3e41197982918fd9bc96e0fef99313b7ecb32753bca803a12f2617f96bf52bfe64b7df8458ac7d82321bd23669cb8bb14ae0a41c7b7bee030592e76adcc85a7823d9cb4ec403fc66c18d703b08d3edc9370372eee832285c0219ffff030b0dd2cc389331357a5a018f2ff864e7276680a35226ee2739b83444301bc83603a1ac45d5af90e77dd8bdd7bbfd39a65f669f13637dd595d096ec16e63909bdec032d27a7442a2af82cc37074af16b5114525fe258101ec0f0b47674989df590e9103b6dd0df3c787ec8f38bef39386f8e036ddb75605a5b576a7a50157cfe499ed7503eab8813736a0b543c7e8c5703843523b303f2f368fd74bc9beb416a1a5f3a5a7037913d4f4655576d0757e1390af8da81e74139b238fbac41b3e7b6a95a56f30e103b824e3ee4fc455a000ca51bb90ba43ffbd389d43fcec99b46da98b6c52c8629a0373916d50c3bc00d568f138fa09cffc99f2d6159e0e05badd7c4c0758aaeb4c7203b3feb538eee2ce7e9b74581f0d2843c901607bed34b0b746e982df6fedfb173d038cf31c0118a0545b2c9bb2aafa6d2d0bb548f7524a653734b6db12e61bf215b30371a384e6e264316486035ef21f8e93b0fa9183613fdf8b6c982a65bb637e9db203a7ea7d1de1ce71f2445f821dee86c0b6425862bb7bba64effc539019e802902c038bfcae78bf3bbba2a7828d72f441009307ad50026c2db6b16f668e348a616fc403a787ceac2a2981dc6a693871b06b64f74804af3c57235003c9ddffc46818862c03fc0929c7646dada9070544cc9dd26b6ee3bb6d202274148115fcd75a62c1b5340219ffff03456ef69f6f0472795eae62ed65db21e741a505b1e882507f16e6ad691e6f352c037895937ec89d519cf790832895600552efab3bfeb11258e7f698b2e3df3f46c30219ffff037fa9a6d1e3e7de2701c200a4d5e107fefe0a6771fa10091abf0292ff020bab2803db44b53073bd7161421d6078d32e6078aefb87138d880431a6a56406f11267f003d89c51e59b21e820e06b2b22dfbcb8b38ebbd5b468244ebf8ec27b6347feb6b0033ff22e2352ee11d92dc26f3a03fcdaa5f9cf4fa6c9c375ad352e6bb90e4f271d0320c2d99f31bc8b97d7f4d1140fdffda23795120efaa0a6239d9a59758878825403f024b107808d11e8e9078a9701477d255e4f6eb0cddfc97594379a337da1eca903399c039b6a4dc10b824683a07a703f8907d17d68b3977a13aa64e52f21f69d8203f86091678f2aa6d409ff2bd451e72194ae96b6bc929e3b8cf63097c297c16b55039e1d41923cbeb7f0b53f2a209d6f8f98a0498c09fec70de1b47c6d7fa3d9dcff038326fc4d8e8815a139f406bcf721931362fe57c9bc6f171bebd0e393b77d06bd03cf5ce50f631b57a60b05c954a3cec430127e5187f5114d21453b7c916f481b66034364b1324d061010847718e2fede2eb3ec5170c288c4f9934a45de8aa65a2a9103930a82b115cbc9a30f8c5b4db65954de6027d8dec9b3c222c7c946662c5c91470309c3ccb1e9efdeb7c3ed8853edff618f151a8432d274e82265993b2262f45f3a039cdd52d362eb5c293bcc3caceff1f778c7c70307b0e56ab23247078f17c71fa50375ef2958fc3194cad5798caf94fcff8f35af2a73f70347f661daeb52df74883a03c1a7af26cd590d518fb11c943295ba7b19196b3a315b88fea09d16a500bddd5403c962926069fce3f8be7419caf0cce40f93a21a2f17f099cb3eb4fc9ab90fbd900319b5f3f969fe42bf64bdc7b6eb6f84da3e0f66a893b26ff95b4248fede768786035def19d8fed7ab67f20e40903f30e07726f3d5ec7066c752127eb5851579cc5503054239baec0a0a65367afa2dea2247c3696f2ecd6d2fa629540384db9c75686200581e02786d302c4eebdf21eec98e19a892372b212af2b27ffd29a29a4157005f434ef31a00581e021ca7bb1917076b2637498f83bc6e09c48edca2287e7c9824b0f6357ccc5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0202d7c99b4d074cc71dd0c1fdebfebc9b7a292a0f92f52fb6da3b77bb6558200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02fde69f9442e2a2f4c654b6caf16fa03ffa8f85af9189726b7aa902a0095820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021991180324ea4fd921812424b8027d4319b969bb2639fb25ee35a3cbdee5c603af306b2b030fbfd85802cf27078063318d8093322a440c7f7787a9c38ac9187334ab3ed55f03d27cdd507b0c46c88be920ac817ebca88af00f2ba96df86495b7c7c2251db4f20380707ae966ebeb560f27ea79774089392e93fc2a297afab48581e30dbc7544b103758c55fd300c99bc02ba4b7a61749395c212920e96e93b959de5f774e0a533b1030f187b27b5f14d6aba84366303ed376ee9f75bd975c7d1489488b61d905e096f038f8a144d75535f56ca312446cf823159aad7b46d5de54889f2899a4962296dbc0338cb26cfb11b1c6c113f985f187c90740f58f9be6e5c6b24dcb8fe342f3713c503e3d5006d747d67ab3a14ccaa97648ab0e2908f4c7609b2e7599ff4872d355336031d31670b4a2b59aac3f245d6083ac3da6a82b7d236ba651fc306600447db799503c91d277feda3921c04a8eebc21e0791574296305cb9fc0962264c91b784e96fb03c4c916add5436011dc9528d7e4c1bd2d4d2bfadaf08ab53d897df74b2e6552970317e1594bfefeef4648c9abd8f6b4842b018d631188b4918e900c68cb1cf9650a032675c99573eb21ee1e064a82e9783213a97131ffedb31f1762507590ddeb56d40219ffff0356feae3ef93ecda4d673a8a580c86b12bae6a73509bf05eaf19adca837721061030cdb59ce85b5ac54a8d671a3bdd5f38d939768184b6ae69547f63daf99b5796203770a770b451abba86c312e9508a7bff365184dc3b5a37b849db7b7f592c1b660032da038d508f1dce9389b3d655b12268677163a26efe6a929f024ee88e03a8cdf03a64e846a3da8440b5485c5f87af041bace902880c4a2771fafbd7e26f46ef858031d9afd712465547b7a538786f9ccc60082879c779ea7831ec5de5f34bbd6a49e03e93141107b7698a1dec4632a4c50a681d15d3fe12a214f0e55fdc6f95232eb6103cc2d0f46774dc6904cdcfcff1fcf500ff4fae54c9948dd1a4166b46c99ccd87b0338f81fdcdb65b950e40d78982293db04c7d5956228985b94da65d96b0292dbef03adfe29eaab5e2a39776964de10bcba41cbed6c94af322525a3a890f5d103e17c0318ac614b354b4ef672c69d4bcdb7a27ada4a7a6f77cbca48c37153b49aa6d5d10219ffff0304bf977dd07805db56865d8d2982e29a64f562210dca2dac35b78fcd812815d9032a94daf6f4056bc4f5736342bafc14424c3de41c8ea76e8954458c57bdc912dd03506d79625725e9223e38e2ce7a3859533d629dd64ff7d04332f5a5d38abe47430219ffff0310450a96bcf9771546498f67fa5a533d7eb6200d872442f6a2dce64671c1e9dd03c7c176914ebceaecc9abcddf1eb78efb49ed26773ffedcf2754dd8c4179743aa039d167f96ed72b99a1b8f8a8c0358a67ab181ca72c3bbd34f3b9484a4e0ce18a90363e5370d132fd16ffd7df6d4ac18093437424f0985fec6e229c0184261beb45003b7c848798a8ffa4abe4e5bce7bdb9015637fd24ecab4dd862dc40e692f0894c6036815471f59057ff7d36c0a91a3d7df22bd490be10aff203e847beef4095f9eff035db46e0f6fa985d80cc5a3c8600663f43c56f3ba15472910545afc0d62cf76d703495f7075034e33214e4d846ce2a6cc18edfb836a19fd1b9383651496cf8d6d320368fe16506e66cbfc649c3d74921d6e9f5e8c84615bbf0de936a81c8590f55ca603659dd9b1443b02bacae03fc14f2882b6fdc42dbba096051046fc70caf444d01003f013c59eda3712f2ea94ca5130f33c1f139a5720658497a915446eb447a2005a032634a7f9f342086e600010b827f01e7fdac48981e8fb5a5e1221d672f10e87fd034e61b21e19b85074b92caa3c7d4251bb086a4db328c95221925912e151f6837d03647b8b288c83139b562d72df961bdf1ffb14c897cb15fc0bb853f537e9651ef503ab3d05b0fc28b68372ce7a5d2b0effada493b040530e4a20e78286483fc717f403ce7601b9960c4dd29766b6ed2ea06523cbe7ff054bc2e8ff16502df2ec597ce403e74fecd301bd0c335985669fa0faa41c4e2b2822c5ba238725ec9afa50fcb98d0370b83d3f2f01e34e8767f04db08c3ac1ee094f2dfe7048e08c8fb22aa519ff0d03c176b4540c42b45d329a88d314ae641ed6e619d076f841466a865e1bec399dbf031483819872041b7091cb18915be8317b14aab62c48bf5f3efa979d27cdeca4fa032be4957261b58f7000c8f916b7a763a77104888219fcb772b1a8ba1f9b4ad320034a1ba377c36910cb25e1c2cfc167a9f970e1420f0db3b5082660ec732657fcc5030df1f1a0828503fdde83b4c7c5f458a94efdf5527e5eb97e0b0f84027c1e787803dab5a5be5f0e72b1fb9e735143ae6579e6889bded7941f01d656ba2d24e7a5e903384437e69e5dcca48872743108ea2cffa56d301c0814fb3a807f6461add78d360318559df8b2e8a4ca58886c49dbea64869ed555f50899bdd29ad068f4110f6e9303cca218e6a54b3380c891cea4d3fb6dda9b9b99df5d6b2de67605ee9a1ce823c500581e021c0777d211344082738291bc9db356a0cfbc118bfa74331eb03c60226d58200ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe82875c00581e02e5d867bd22197a312a247b8c727e7c00ab7cf1113667c4698a8e43954145b56f45ac53031f07924ebb5c2ef9b06e71f9cf59ee8b6b5ce2b223296eed8e797b74aea0e92803d199dcb443c7ede79d6d0ac01ae39564b94c9bf259cbf09334ed126380cb8f9403fef6dff5e4cbd7d112d5ab1f356a0a8b33556ea4383835ee0c1131dd13177eac00581e02622608fb1f7236d099d8f544a76944b9d94fbd08ead35e7864b5d65d645820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02192d0c0333e4c9237782d0e42c1e1466b606891232ad0d1c27c0cbf4c7d1d1f974d62c27036f9687886831b0d36cb52cc4146f8b78e9af81835825deb9ed764b465aceb01f0378758c8c796988b71e991d67d18ae013e80d627bb106fd2db2d9e4593e3beeae03cf53cf2393b0fd2dfa86d921bda8dccdb1b1a49a899911de814ff60efd0c267103c5f91d674fda8ac2107b8a3e3692d1821cdf042069259ce5cc71e75f2f19778b03f5dc67301bb47dc6611054bfa6fa0989f5cadf6d24d6cf6286dee1d1c46dbb4b0310b3ba9a32744b17b13175d4aa9b19c12487d8fa899da246f4d71b50616dabdd037be654d9265d63dd4b787789b8f858f339270ef1701aad440bef8288d3e0b4270381569cfa1d56980f3b8dc68c891327ea132d58767d56d3ad95d32ab0efe42f720219ffff03032d0f96151b5614a5ce6e688ae36e9ce9c5d713c48f10cfb3618b59a76c244003f984a50e4e3d3c75316c120fd75776d6bde6367eaf88621c72868aadd8f7a323039f76ebaefd973eb1ecc40e2ef2d6397a43504d0a15486ec4bb2681a31b3964b0037b1b00c9e12be9a5331eecc095b1bbd039a43033b83b65c110daede6280404e10219ffff03065083dd076c58dab9f171bc4e326a56339aaaedf2e03d361feababacd9c015003ab6b86b18f3947046016559aaf77bba470be312be70c773f4cf3ab04c803f61303ab7fb6aee741d6b5f65fa2edd3f098e81ae02d8ecc5ba2e9d243e5e0b15b7b9d03b937982d0b211b847d8a264c4b008010cb6cca1cc36b631bea5c1d0bb34e947f0360c86e8cbd74eaad4b18ebe0b2dafb74f33758a826794fa732c26936b204168503c42dcf325d3abe548d8a2533ddf9d92a0dea1a58b1a1868d53657b1386e04eeb0377aedcc1c25195aeaa4c99aa420cf583e40314af337a6bfddab0f9b8094a94ba0219ffff0394763c9e89917ceacfb11cbace1eacb0214a9fd6e8a8d9af2d9ab7e00fda4ac50346097082dae4a88d3f9ca23799b5c1a8c77b81f6731bba25581c9aee761677f303cc9b08af02f68d2bdc3654746d3f638bd82d2f9eca9bc3b45fc73c9659ce221e037ef4c44ab61d1d078c512343085a27af6d50268d6c8db93bafae3e39637c629003c3731445495985f3223df7b67ea5f5eddbc1e90b6cf62f605252974d83d409c20363d1f100a1480bab6c8c743c008b529f58082d8dd3728f1bb69cbd463e62b50e039068484a66ce7dbb96f128d5340a9153042cc1fed16d31f3b76c64a49a519a3d036cbc3848b3bab1f304702ab1b9325e823406821b34be138e52ce168a365b4052034880410983afb24d5cb788929917859c5be62dd403c1b09b8cb10ef630b65d480354088b6c53a090dc5f92fbf2e46bdededf89a6dcad80977c0a76b07f574a4384034b98e9375187152f3b108df90aa7dbc4d00f53479269ce6a04bc9671965576ce03ea5cae40f54a0cd6c3dcba7e3275ebf56f0ad908e7c1e9eb0cca742708aa435603d742505dda41918e2a040b587c591978d0faee0e1f0a90484b747c07618107a4034664586266f7bbbbf759801c417ca3cca90f7d212c8bae290635a90c064382d9038185c3566030fc839b216c13e7970f3c38111d3e6f5ef8d3cd9d25fbc6e5ff98037b7233fd2240a1624854fd79cd150fb8ddfff8d1d68d88b8a032a14cb0fde139037ac3d0a48d95db382bda3d61b5f18587d81a8299539a4abc86f88d34f309ee4203f9dabd08c498cb87670a62f29e92a9b2bbb304ef8d1fcffd276b867a3a69811b035f5c55bfbcc63f820c9210da6ece9c4849e41f44d0b7fa37f118521592f6a2f503e01029edd2bfc668b50c123619685ddd2584d32d2856502c1cc29680047a326a032167f7bceabe60e76d2cb481af1ced7015c1ba1abb3a71ec9f497b36002f571b03bd13578b6273ac35e700e4574e7d87df26bc7d67436d1b4f34cb8cd95a4c1fdf037ddbb64af01486e67962a29c4ae5982f9564a71c72d7a416b9bc05041bb49bb600581e02624a90cdd81708f2c606955c53efa0f56b11b969c6b753c3bdc2b9525a4398968000581e02fdec3b21ecf2734e687060fc5ab0b8b1cead39c7370ac54413a0ac635a4398968003e59d3c0e9f37ebb3bf83516fb8ee6b7653571c356a7908c5f4f75a18446ce6cc00581e0212e07c6e3eb7e915d009b60606e819937e60e48d14aa7b1c3221b6c5725820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0237af69c453fa7caf50428472930b90f2838bfb38999ac3f1c478a40404465af310792a76021991180312027e71beab10b8073a9d96b4d004a8ada8ee45dd9dc6119510d186fc055e840219ffff031cea71e73c00950a7e87f5b4f8e8e78b575e195ecb7f301482a742a2f1912e3603c5cb42fcc068ab3b3788b2268d09d8d50f252664b45f5754b0ed1d8c9a0aabab03250c120b22a831e2130a68b0c2fed83c930619c281d1fcb0ce043cb201e73b6203451f2af739274e7eaeca2805e6caecf4ba1d94034f6d2e11708cd58e8a2184b9032a95b87c7eedc4b9709a69dd757d86ded931549c139f10e609ffb95c858b743803a8df2091edf790622875551abb2f4688d727e63264050b61a20930727fb231890345bb86ce0b8f61d964c15fa1e2c8e6b7e42804c80dda2bcaebc47ed18e948ee003b235b4e327ca249e347619f9889484c506fb97a3e34f53089cd6a22448baa7220329767a5b0aed7bf673d3e5cf6c79aa959315a32a0b392e2d00a90c579f80e09c037bb292b5687b76109b30c0b04a88ecde2ad0577998416b122d5fedd58ee1827a0219ffff0333cf3b487b001b6c6e996b4a52e94886aaad6f4f931da33c0e9ffe8afc98a6c703d4cf492d467910c92d9470f4f2ba799ba64023bb3b1749a9638e339073bf1067032c0ad8f9bbdbe02b0a7553d921d5482e94badae6c2fd6b83c52876df6dce322103c0732fcce443f33d45ca3ba8116133021004fccb68a85d1041c4d2e88cb1e7630349ca347e859b7ba78dd23df0a751c7e4d8996e503c0f4782697f4fce4fdb36d803d7c4a7735ffb97cc5d4d298a93a768554d9053c664bbdc5b85864f3ba4de6d0f033e8bdb5b302c994dff5d404fd4d6c62363a942e31b96dd58a8844896fc8615e203fdb732c0a04747a47df33826cbcec304a351320f869413e16e219999e0bf0385031f80aa6dd0359aed0e5f6a768d47c91f75d8d3e50ef67ba43fd35c9b5e6c088203349a1ae6b4cb11f2564f60c3c3aa335236753e9085feb048bd6f9a4d2b8b1fe203dadbf151a19a30f943b6f37d93722600e6a3a4557b15720a84eba460f069606b03c7481bb5769a8ce4803889a3035205b088b4f928521e9aa872e8b1c70bc2e5160219ffff03e85cf56c7a553533a32b9452ba44cb88da69c5845f66572395faf00c06f0f8170340313e0c20747204a5ac11753b656cbbcf822cca7f9dde1c08572deca5452333030c57fdb61a1bd3c5e6d3176fd472aec121ef3f11dffa4100666c0284db2bcd0d03a5f6691c9c8035c716e151b6aadc29556287826a23436ba044fa44302433496303f90bc9fbb0fa74f0b5107de6648678b1421292b78bcfa1d2f958d8c8ce836bfe031723449cc823031cf77e196b0e9da24eed4e7e0ff623fec62faede5bd069ad9203fb64e24a008dd05d62623ddf0e13f1451cab636532d3fa16a642b9a6c49d3b8e0337ca0112f8cb39a756682fc6682ff3de47426172ec5b69bb73274187b48bdcdf03d943c87b24e70a03658a3378966f5d2fa8f5a39c7a98f1dec77005caf60ef5890375bb2194b3ba5b01994ea7032dadb4791785e6a09d627ff2e53de4971473223b03ca53716ae6455b294bd19d85b34a513faf0771c2d0820b88b99207e475feeec2039ffe005659bb62f6656e4a6f4eec52ff3bab31f56e6590b4a3e5abd943c34de603f74ee97bfc7bc75c40214c6f355c98cb1b757488731dbeec7d97eafde89aa8eb03644b614bc796077218d904bd5c3cecccbc381cc6d4fb85407c2740aa8b98a4de03a64e15ba3c0bbb874d95bb2db8c4f46e5e69b5ee32fde4d9d6993c4d62aa62820374d6ef85cc2ddbd201b49012b8681a43f5bb01034b70bf0786299e3eb21fe4130307969d4ad9e705dac374a6bc04eac141ecb09e82c00d8a3381de49cf1dc0f07e03c20ea17ae69534b6372ff2feed7608233dfc9410c742b305ed7cd1ca0a7a081103f01f7bc5d0419b08b41e73a04ba45f85b72e4ca4aeb4d73fecac7b1fcc6de9f903b2d475b9a72b6dc0530387f09aec1a968e8b924190ddd08082245e523df5a0da03b9ee81443734e4f0cbf951096c1f749dc077602779e356e3687fec7e310708f6035d16852e0d78e473c988dbb994dba9fbeb9f9c45c849460885fe91eefe76394003cee9a6bd807d46576bbc5f1cc3ea4f0f577efe19a742f2bd543628c164a6086500581e02510ff27cc3e65c329a0e82e0e8e74062beeea3dd52ca0b7a0469fa078a410200581e0262bb5034db33fc800cbbe07d38eb09aac04d0934e619879c2de20726695820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0297d6fea7a936ecc15140ece1b3d4ea5642b7dd1a40be1bd407bface4715820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02e5e8b951f76275508fa1b7d5e05531873113204545153c4ba2aa7f706d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0246c0c7286228dcfb578bbe38bdb87ac35aeb5659ad7f37e6a6212fae19443d0263d800581e02ac646192f7c7e9b332a15e7ff2b264679466b500491a3dc25a4d326de75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff034f78bace434317ff3d8954715aa2d2a02d5037a97f35dec4ad5963dd917df1c000581e02ccf916aea4d9f0d1a6865879410561020f713a1ab34002956277fb6a40440702961000581e02d6445ea196caea0fa5063410d8bc6b45f40c93ebdbbf98bad376ec6b185820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02baf4d9de532025fb3436c32a30f9d08a2e7dcaad27f1f20cd6ffd154ab4401295d6c02191ff80371d96c9e345b54ec00213b801d5f2b0a42b2a7f2a8ff03252ce16c88801025db03f13cb7edbe5a7dfdd73ad96694a4bc40e956e8424522660af73c4e824c233d87039fdab8ca5c8054a1aa5d327448d91717c80ef90fa4239a112e30dbe183d775d803a7a0f9f4eee6c895f45ef04dc3391b3bcdc940c3dba6622433771a76744d948a0382f97e76dc576dbcbe98fe59a3f333a226fd41256170da072f5c43982aad023503a680d35931a96f003f860e9ae5a9f0fedc2e0ae6c9e03806759df4f2752987190356097d073e9088826d92e7c980a3f1dfb9bd7393e105ea78cad3170cef65f75903740a686e0d6ee6def07a428c8890adba7462e8ec399da9510ba9d137e6edb41e03e1f671777a66f7b7f9a8988d7b6b1014ab3143a9a2e12c6a71e4433a3806d879031793f13cab22588c658d0cbe05e14efae07d85f91cfc0a4aa9a92e970f46cf9c03517b283204659e586b00fbfe1a3a5eed3c1f01ab53297ec29c97675c035b6e6c036abd2abac60101998678dab83bb37177cb71103f78ac79b8e958fcec79f1cd1b030cb853436a5aefb2a9c68e3f2cc02a64f8b544399111e2bed413732c12e695110219ffff0219ffff03c9e9c863b30fd091cfced72b1507bd6a49fce26548da8f784874bbe3238bffc5033d1aeae3c6fd824e18e8cd390464c7ef58e4d0ce760a17579ed4eaa2aafe1d0d034adeb65418712e1e13f60a7c407d1f68c939d510431f651fd25f8b115c7016b7030454f83fb4b83784ab0fb174f028c593784353b72b3e97faba83cb9663aaeeec033d920e5ebb1f43ec5ad7082f48feb2b13de59492b5958dac5a406ba009b237af03be046b8b9a10d0e15bc30c96f4f8dcd56a6555bbae0c168fbded67c348d062370376f493520de605574bdaa21b4d3665561d3cddbb2a019e800ebe8f8bcd692aa703bbfac646dd0d0fa248d6e5534a4b364817a76c9758fce0a5560b63ba9b39aade03448c2d314b8f2805ff9d30736cdcdabff3fcc87b622eb3df06e72569eec3cc8d0391d79aef07bbeb7befc0af007b67ddbb9fc3b734edc53a411d9de40302efdb450367f68061e4a8a5ce54e3e544a2ed5e179b867a09b7f65a0861a31d7a04a64c250219ffff036e72635e30afd8ef67fb464c8bc74404d8064cb5fe8e2b6e768cc7f65911a99e03f605273ceae47ad339ee9ae7485e2b984efa6ffeb5ca402014204f883d58d15403fb8e9bf682a8b544452e5f1948d317e66e00e719e7e34667e0ab80b75dda2c9a03dfc582b53c0d897465da7b2b93aef10d1c6b82ce9c770ee13053cd13ffd743840371c6856ae3fdae8cfdbe5022641945f591dcd30176e942f5f23f13c74116204503853af7382f02867a80c2307e6147f63de3228ef59eb59c9c331ad40d77834c0d03e5a423610d0cc7d310c74bafa842c965d30739f0e73b396337741282b401d3850322fda9226f26593df2712906ed1f8b9bcbc45d5d63b319c3b6e601f45fe12bce030fbfe144ff3991947a472b84153c04507ec7c6ff3bb0435dc7f5253f68a1767503530ffb61c47d16dd29ab711f43a5f7be8f0f9ec53954829480ce9ff806423e110390fd072f738457a0a14a91d1440a6f29dfd55731c5a8297bdd8de812e03f286003b450fd2233fade6c67d6e42c160798e380b5921b5aa3eca91ec00d69961de00703dd6a8a24d725ce485063ed87843425465bfc39b12da97f08aa726e3535f86782034b982c3a651a851140cbf3b3321dfe25a246441b63381bf85c39528ffcf2a1bd03757ac3498f6ea683cee6a5372123e4061071445a2b73eb89a0f445f69860588b03dca136d5db45b467c27cf5d883ef73822e08597120529b09d07b871df486ccd203c968d5062aabdf6eb1308b9f7001a426653dc03579815a66b6f69c5565ce6c8d034ac8769b0b6bfe79d956c6814d5532e0f130baffc643d5e103434bcf4ff3249303487a682a2fdaa22649169f833bf3e7cf489ea3c2688caf811934996517b3a92b034f6c8ffc08bfb0b2affeca0b0ce1f6918a69fe846a3170fbd9933d8ecbefe8130310c0519ad3319dd1962fc0ebbc37ccc049296f9e8359f4871250ede3ec2f96b3036529a0f67cdd24e17634f0a1e216b80e52091abe3c65520504049cce0b27781e03b68d274943e7678958eba9c0312e1e585d056eaae8b4d27239e22fc4597c1f0603959c380a030a6295907e55e354ab7fba36bfce4ee96adfddb9dd120ee524a2cb03af370a145340f7251cce124a4709a469659ffd99baffefa0a98880c4030b20c1031235580e6b4ec695239100d47330af217cd3b762f06995ed21ac3294f363c5a503f2e1f62ba9475b92cc122f7036393cd791b6c2c60ef8c322ef321cc90a38ab6a0358c0f592c3ff1ffe58b8797d75256e2069989fb0d16530e9d366f0289d8b056203db211f3b610f914513925fa7e20d40cd76031c1c5732a6c3a84b3bf0e216db0c035db550f5dbd7235c39e814ea446f1fb3a7189273785aabbc0107196257efe3bf00581e02608f428f38f2fffca89ea09d8ba93b49768f153444e2d26b417822c5445820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02b445d6a446dbd0315526724d5ec34a2487beaca80840c4c706102975145820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02d95925000869031087c044cf5dca8b93c5b8c71b0d97682926567ed37c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038a4607c16a02e477863ad00deea719587ce89c6486c86716e4098b9f7dfc1c5700581e02d82748d54e3067bffd76bbecee1952a91a74c1453c6ce928e619d54547430cd95900581e020de0b4e9e69f41a6bb5945f1d28938afc893210813849b03116a431e00410400581e02af47ae3f59123ab33cdf7e353c410ac5fb01ab60a596ebf689658171444203840219c447031f670ba2def6bd1db600be55a985d0e93219d92ace9db0e25d0a3ebf428f431203552f42ed9c04cfcd8ad623160b2a9984fffc92919c7cb03918f5e2360ecb37560219ffff03708aa336fed7e8316cc9b9724a1b2940c95832fb1cea320547d94d265ad31b1c03f420b572910b3dc2f30596e56c02664974d6834bbaaa29775f04ab921cb6f76f0371bddcefd1ad09e0b3e1c7b9c7cd49d8da3e15387a05e3a6ddb5f6759a9f92fb0219ffff032bacc595a3fd89ff645dee1e36baeaf2cb65f27330b46b433dc364ec030ac1b3034bdf57679c49a29e1f53c4f93bc574cc383f6dcf867eb52fc613fed69f8363e003ad64b9c5a23f7cd1cbe3962ea39d6635af49a918db6f62e0c95193b083e519ba031eb78854fbcd7ff0afe2fe49321922951da13bb21d28c4c728c4b59ec709853b036da832fa43988f607df47681935d9d98ffae18c0fb1f655e54341d06f357142e030b1822a9cec567b3ce430f445137f6ccac9727c752ca5e577cc518f209d86ced03736d3b56e040ade42d1ca38c8e8366975bcd56eac4093209b188307edf2878e503ebf33ad7f38fffcea549b6283ade61097442bc9c3b21ed945e776f308da312f00344ca5de5e2bb0e085c566b70956227b3b8c6c84c44c5696e01fefad52187519103aff1d233b9bf2c866d0e9d4e1deca72f64e12e4e3ab1ae27d318180634349c8c0219ffff03b9c42fceac4c1a237cc978dc771e4b808ade3e60ff9b865029f41d65bc724c8a03b30de84d17f9c1a4232ae4f8c2522f6e9baf8ff8e2e2edee01ff7adf3c567310035b4fd4aa330caae542bea9c7ba44d00d7ae927d3cd20f12a78702bd4aeec8e7e0385df4a29701e583e92bae9bed00ad0011ce758d018895a446f579c72a54455e603316c9452c8a77073341d442e85ff912b187f6ecae56f38154544048af5d9fa85037a062d174a0acf56cb4573ff3accbefd99b33c0b8a71b9f3abea7d0e52a5169c030d737e322c9cd3e94bc6ff58b0eeb38edd2fb6af8ed3bbbdd7d067050c5fc535033001c8d1f4035a4fef5cfa8f86931e5a743a6386c70c3a2a623a9b4572b69cae03e5c3cf41355a07f15ebe61749fa76d4d0f8cbe0648f8cca7720106afc1e46e3d037dd8eee1eb50a7007d687c6b6529cd1b1babfcc75e1329fb0fba9103c32b66bc03040010cba5c2867fefb407153873c1b5e4f527dd9023422cbd560bb1298bbc9b03a68bfcaa824324bf7fc0eda1ac25e2e5900746ba19e680880f6dcdf76f89810f03ca352c222bff9fd59ea04808f7e87af5a946db01b3c0e709db770f7d1ef85ba8036d3875bd663a0bd60422228c3ccc5db14ab1bbd0e8b7e18beb559902101e02e603a701ba84d4a4f11776294212822226d67300d8d09e3e4b7794319380c35846ba0349836c6b1b17e5e64e4fc58d2ed58855ee50db490983f54f89b78e99ea72dcbf0386ddcf1f7bb9aed9bc5905d9bd7f86871b82d55dc91057a76e7b87d7b196832c039027055fe982b0c4eaed97035cbe3da043f5abd375efce6335cdfa7f4b1a980a0347ffe6a5816866c10e313786b80e0dac8acc0f1c136235e723df804f030c618d039bb92870fa362e95929263d8c2a1b20bcd80402653b5f9b8ab613b62197a4ed103b4192ee651d386ecdef417bc9881e4cb2b47d829e92b8859699c854843c314990333bc10ef1ae565b1dcdb5ec57c33d789f03f4128c95dc995eeceba1a435a0050033ac7ed256bfa32212f71efa8206e0a040355c3d0d92a12eb2f6f4182598bd1b4034dd89b7530ed31e728331c9f935947727fb0778f344bf79fc7833cd477406735035bc941883a5100f6f0692fa8039af371f9efabd1158f5a9309898e849b6d14ab033fe47870d075f7f37acd3aa0028523dcbfba6912af4bcaa876b10a16e0f4907403b478208aaa69f5aeb522dee88750176216a5bac1fcbce0f08c9bd3177a014e6e035e2e1945e0883f9ab55b421a485524a23c2c867712b10de694c23fc25129155003cb230967e7d4675d7f2069db6f4fa3b874c04aecf6af8d27209a4ab3e5d46bc5031ce918fe3fb26d83ac19ae1a8f2d41c721cd780c1d87f41b4c2ce1bdad8b658003536f1d9d3d2e07b69d0fc0c9b107b70a30d5414026be874cdb616708a19395fc0398ddf3b20b2609bac9c2759bea3174cce6d9d8ec15ac9e285229ebb1b4bb0d4500581e02cf62597d6fd9c4d52ae2480945f2bdbce50245af7db5ff01cc76dd804d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02bbd96b7e9f21e6d058346adde4dd18fcc99d4e7ded168899a829b408a943e7ef0003d3073b83816ce8ce55f9707c2a37b06063de01cd71b4b9a8f0d7774f1f256a9f00581e02d20ce74dff235fc96ca6bf4336d3074d33dca95cd383ba9f24ede2ec63430186a000581e02a77a82fd80779ef1d885fd9aef54c9d8ec57a1d7424efc3470d943f78a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03babb896d5af872e1dc87cc532f11a48b30b272b632354a7542ad19a3932239cf00581e0262131257cb098c2cbb51320bb5e75ad45cd56857e7ffc4b2d7d3018f37430f424000581e02f6648ef633614133f4e7ba8896971742863dba0c6a198ce361d5eaa0de410100581e02bf0bce5a0cfdb81278746e65b4af5df98e0af24cc27c7db804b5acf3c64406cdc2ad0219bab40219ffff0219ffff0355c8a4d41239dbb2ce944b409aa700755cd4ae597710486c986f0e03f6537f8d0327a8a8632af871108b0e706b2a841153d33714b4e682e7971afe4f732c4f2cde03b551ca8bc11f20190ffb68490044b70d9bbd648d985dc70b97daa65ea274d2b903b1e283829c86cef07972db5ed4a2450dd1206b84e82c67a7ae326449c64d8177039962dd4737e36746e423c07a77fb23deeccc788fee1e49288b5f3cff1b2c417c039f67a8d49c899033ea0a357d807f6f8aef0768f4bf1d964f32ee8e75d01bb71f03a0f569a0f5e2203855165cce1ce7d55aa8560f91229c358d9258ce715556f04703da23a514b7b56b4944188d637abba146c8997be0298e6db5426722be4bf019c0031957aa9fd72960ede95f0e6cd150c6feb7c5c03236ef0700835e1845eed9a1130310f6e04d85daa55054bf6930595ef425f97340a60968144045c51f3982e8ec40037502086eca749020cf2fdab020d9b0c844273f6ae9243e69e7bfdfff54172052035f1afddabd320903180c4d64735c79bf2bd1c11ccd15ee618ba7d32e14d8204c03e365733a64fd29bfca2f21a347d7506e341d0e4182c66a49439259e5e204397a0219ffff03a4f4968bb5eb732c0e3b8955c80881452ce2a9cd3de73ac16f0856aaacf7d15203710a83f8e8004c23f4aab0ff36b008522b348b16940573cec6f603dc7cd9106b0219ffff03ad2220e40566ae6a656e8b54460bda03b5e10a49ac699ba9b68c5ccdb4854a4b03dc53df039d5e962978e9b12a85a258ea3bc429daafa9db204fa85de6f3bfcc18031188e0115f8660132f822345dc7036beba29ea76b113a5ace3b9930b7a90b313039ee03c7909375f7fd54fb1c64dea1aa414a9e9b8e295895a988092cbfd7cd8ec03bba299f3f866095eb9ce841f7b233e9415710a1bc912d66eed16dc8d6a375781035ffeeef3968adf630f6e68b9a614c36e72403594804a91b839f0602546ea5d98038c402d38e7a8a77dd9ce62e7df2ab6f87b045fee89a2dfaf0b099cab2fa3738903194395c5088c56db0239ed12afcf056148e7f81172c1266859215fd2bc864f77032e557b484765bb8e67c4982ffff01ece3baa7b0620f165331dd0a9fc77a5e17c03a3d155468f11ec128e1be5cbf1958e6c94a0ead094137c89724fc42d03e1306e032f73bb8f512f3a0276264bcb1abbd5404b2e7c3444d4fefb91050dd42209faf100581e02935f173a722a2bddc15139fb6c889384d65612eb2d85cba2a7cbc1799f4502d7db6bbf00581e02ee0f776e29bc5765d2cdc8764df9bd5d996b78a343a990cd237fa5b2b1440723a61e00581e026741b51025404dc02f2b76918ae96b46d2909b299f63b2bbbe6f50587f430d7aaa00581e0200e0cb299d492a8732f056eaf90229dd04dc285ba3e3949e0d5d6d5f9742591500581e02a24cdb1ad8cdb633cbee7d1a860b523225f556dafcb21b81e72c139f5f4405f5e10000581e0207fe5edbac2582bfd8752c07ee55062cc7543f27ccc34d7ff5f6e3721c4402d5e04100581e02466c6cd6855d78dc4d77db08e4c332812965f39fe11cb23b1d7115a4df5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02fd616b7f8de48cc438a7dde6e5a0c0f2d94faff74c33bde7aac7a285c4440164401a03d072d2a70f4899e8e0c597421aae924fb9263b2be9d11da5aec4a3a1cf656e180219a57c039a73a8a19c431eca3de022ec756ac593b3ec03ea3e9075e9126c30dd3cbc17ac035c38fc2f5226d7a9d437ef33146aaecfab9eee7190145447a3dfe8147f5d4f26030e46ac2872cb814fbe144539c4c641b3fd1f7886f3a9b9e705afc42ab1a4db5803ca31b85d9b19b7a4bcb74efdaf144c0629256685a854ac9fdaee56b68fe448270387f0f2532b65fb3d9a9cc190a378eceb9d0f9ffdb51ad088556a681357f513b103f0d92f0501749807cc0cc2461eb85c66d607b753b940c77898155c6ef118e1e60324b3cb38d1c17ee435183e391919f8e60ba545c1c259bf077e43f2bb0f012d8503a118eb3513b57609ff25e757ef35396729ba8adfed267b5b7b47d5491a459ef103dc9fac06595a00c199fef646d9bc5c5eb4fce2c9265049a7785ac7d96eca98490219ffff03bc00e8ad1367fcd21f50e747f03e0d9b690cad6eee05a6791e189448965fc7b203437963da073723f88a0d43991aceb3ecc05088a37963467defda742919ee8b1a03425b3d7a07dbe36fcec273995dea597659bc4f7ecda8c89727f3866f8b4f1e7603fc1b10c089b810d6f1caa2bb21f38d8ac27a7f4d383a68457a7792266c778805035f2ba026063c47ca57dd47d5a0a19fbefbbfd088937ccf3a2ccdc3612cee23b303e1e3ff1ad41ab32bf4e6528f54d6463ff322ad9e1c669d590c3fde7504ab12be034dac74d3b47b4921e78aed336ce5be74e556a637d7a243905279a5508b86ba3603ac97f97e9a0e6f1e1ab4c4de05caf6233a11243c7b7d17ca925ecdc1510327ae0343b7265a52f7db8c3148f86f516e161d05f7572e378fd8768a65beb37adf08140360cbfbb8d889e4a85e226395c747c4887fdc93d395cc6bf549a240bcad80449703287d2c119362b847ae7b4d90c6378945d6eab638675956d2279eb683b982317903584de49b13d1979c27581c24cdb1156a8eb9ff1ef53e3d605965cdb27242ce560219ffff03d28407a80b3689845811cb54ea677e08d59a199925f1d7faf089a01a11e0a97103e089c3e35efb0c2825800ec2be8b52bfc47c2d5f83415f69e171db44fb20fb14034eab5872ad1b8c4b4f2e46ea1cdb500cd43db736f451e9090e1149f9797259c00351523672af3c05dd0f82aecdac95e93cd2e1915fc7d82dec8db911d62798aaca03acd0c1ea0f98416a7bd6dc0b8a03369ac8334f071e99b48a1ebde9fc19fb160903196e47349e183adedb10dab8cc25981c0f9902061c9333bdbd0bd9a6a43948e403e382d730f56dce7dfdeaa0a847ea7921c3ddddb6002caf89894c464bce3922fe032de1a5ac49212fb4ac924f51d91481f58bd7da90af8c9b7328c719cd7e1acf3403f9e07426519ac66f21a49f2956ba1775e55e33d72520fed21222e0b6932d03be0315e2f7393516d56c59385e42285fd2a8c6ea69038b4ff0d964d5cab503944893038af19e937625bdf83274b3c64e10e6ca8df5fc62a5c55e05380baa9cf70b1a63039276f433cb42b4646109d2fbde9e7680b1b063f5ba6f2d38d3c33c1c66fd338703752a66ea202f6282b7b5df936d7dd3d7e4fff049b70566cede6896c89763cc3900581e02cc3610dcf3a9a1a16fbf6e53238fbf16be5504944c915e0b274c6bf4d75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e028450571f447379de9939a853b7058365e9fad547aa5dbd3324c39dd1d0430479ca00581e02cb3d47423c5e86e729454fd4f250021fcc5d138a2044cfc4816b9eb03244047868c000581e039c468cf0e4e5521b57e5f89d3110b294198f76688d2537406174d9190044395bb97900581e03ae40f0c4ce9dcd5e3836f6398cd7c6e05973196e67e6bb470a91819c304b07a11ffffffffff894e58b00581e035f55cbb896d4308fd17183a5c945bc501cdf23f49531f00adebb5e4280493635c9adbfd64f9bf00219020300581e023d2a8aa4f95a9f98928291ec5890029c2ebada259c11bd2eceb40d13e94b52b7d2dcc80cd22678dd9000581e02017d25b9290f1beccbe9d74a2c8ef99241a73788d3c8e6dff17323675a44014fbdf6021919160311793e2aa24e8907377b7fb118b11e09d7d48769055cb8a47bcc97e91c0e051c0348b6df2115f4a39a2022431d55a1887e685b84c3ca0c273d80439ccc63931b9903a51f257fa69dc96735fedb83c19523a5824482466685bf0844f2894f2a8391be03067881b1c01612161e06390df231348dc26320398fb32cec76a552a577f8779c038cbdd5243755f719bea54bc1fd79b588cd1e7e908cdad38d06a435ba9e272f85035928e15f50ac3460eddabc51ef37c361db4139dba59584f5cdfa70aae281faa30372f11f5bff3bc0bef2d3e750a8f727f90a6c60399809cb1c22045a0890d7c3a00219ffff03d33fc6db7f24eb3dd67cc5a4301ec301423318246d4ba9b5ba014217f7251dba030f88d40edd0ef3a5094a86ac0e5bafe0fe159839f469d0bd7b4295b80090b21f0316d60a7949eed988416e563ea04adad7bd2de635cb304e342d968fd63a0361a0032d2fe870d6a37ca6278f2dfa168eb998bc9490f70dde443fe32605fda962a0a5031c7ea0cbe303ae4c31e133c484a9ecb027739f183ac60aea132f976ff2c9f1e403f024129058aefe33bc1cde6537d6af06b9102fd7a8aef523a8adcbff09fa503c03a43821d4fdb51b9d45e059195689018afee8b561d00017901da75279c4c053bf0332bc7c85a76626ac07bd8b440cfbabbf610f761d5121e8135a4093e475f30f6303263fd85382aa98bf8a1c3745e8c47a1548c7feebf9bef532f6fc6428e7da2d71038b5d9b9b08499759797fa1fd0220d6136ccf91849c37e42712c0343040e0cdc5038b3fc1a3f25083b0ac329bde1a17d8410863fa04ab8f51040e0028bb3b089da0035f5db2791b7dbdd9a2bd74a2e4e611039ad5a2e491cba1899c1024c9b98f26c503abef1c111edff5c34bb055b60b6881e52e455764f1403c664c8daeb73e0873390219ffff039fa556e1e17b9b3ebee281122847fd8c0cffa37ebcecb05844cc9174094710a603feac965d3dc3ea9c2dcf26369cb48d6e9693526c8b07f683ede9902dbf4fc25a0331c2e76d7d0046a8841b64815943aed162f420f4e03580c2abd202d04835b19d03849a68f286e57eb7fb784f1a535fe8e5adbfce810595bda68aa11c9f80c2ef7a0398ea82a44649c90b44592e7da12f9d114c8b3b9c03dd203e1832ba048f060da203bf36f5dafa9fafc6e0f72c92e2b636dcad0002e1ae6ff1ca74aa1db1d594aff30312ba18d53075cfaac2082ac7ab29ffbf3827fc0e5bc434e8b7e9c8bb9c8762dc0369e8dd5c5082f40e47b84144fede474ed0766ea2e67694429342c40e505db5e10352ecad13dfc2e897709dc49fafc5808b2f84c0238f044da0c1df66f4d5c7f1970219ffff037f74946dc094f40ec9fb9d9981b294f2394d4d14a423d2fcadc5de50bdb0c8f103f5491ecd5aa3c0dada2dc1f3ba889729fa971d3167204c5bf82733584912058d03df60bcd5d261505a06664184fa10f739be0c3e97f77c4bff7ada7ac99ba1e12c0343b34f6efae1dc9c150803192262aef65694c74e9711a9269256927aa8c50fb4034e03a48ec81c90dddec0fa9dafec886c2cbd0be35702c14cb977f58a4b61726603923e0526612d6b9233b43541df094831bf6e9c142178effbf2040146544360ad03074ac9ab5197900f0e8db8d9c1c508303ce09d4c5b52f36c3a171f48e04e56b603d5c61b593519e2a9f1f8a8c5a2f2411146c3a2fadc8167ceaec4550083dd62e103ba3d53c0fa51720102bf20407a671168d55755e79698615d74b6acfdf43cb14c03f064bbbbdfb124c8563088e236940bd0e5c203adf936001807440f7fc18a33720350fec42123ed784467042b03d750828a7e12be86effda4447550328107ff409d03bdaf8b4807eafbac0d62f05f98733eadcb9d5a2915238f9f7a8d45057e83751403fe7e7ee71ce3a7df89ca90d06d4d553bc37c33ba757d199d35cb82f328627a3003411f828ebd931f254caa5c6d0aa210e6482b57b6dfb4745bb5f069e98cf8f13603789e111a32f86b46f86737d8f5f420ec99c231756f23189531072002eca918b50321854bee790e126cd5cb4fd60a01effb28c2e638a9370c8fe55ba6c9df1f758c03921003ae638281fcbe7aed58e402e78838e3db1a85a1c90b434d47fc2dd504ef03f474f0b0032f1673f78351beb26dffdd52c9922bb3cf05c74ab0ea32bebf4cbf03fceb75d0a9963410e9dddb76010f49638bcca90b3db4c10f840692c2d27f02bd039109c9d62adbac5a94845f84686b3623f38a4f5181cebe9b76d4e4f5a795fa5a0379be149426c160c046ad7bf80e540aceb95d706b883191a421a78cdf6ffbaa88036ea36e7f74ac1d1ee6c9496281b9e09edd807c1c8c3139d8534716b651413197030211164f3fb5ff976e924f78f514bf5a1ce9fd0bc1bd3e188b3a7712638e69af03b90d0d656a1f4541bb2c41c1a38411900a1a63c842ae68c23c80e0cb51d73f0403e605b404f32c43153a01278e674d2e44b55ba7fe0eed6cb4ebce3196d7832648039adc166f3cd5ec345b7938fd7cdfba038b4288b72a1fb06352bb0d916258791800581e02773ca8e55046a71e5dcbdb6acf1540802ed0d6ffb9e359cbf7551d3d8a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02efa8c5e16c670a17f0f0f275bbe077ee0ff5dc0eddf0d845e80412cfaa495562504d33a2f0368000581e03ac975fd1bccceb98f15e09e0f77a5c57e2a437da330a0e09a5afdc1fc0495562504d33950acd6100581e033dc9154a92867e13793761760a4c316ab0a714097dee1361bffc88ceb0470189745a7f98760219240003239ab91287627c6356d680d6f30e66789d3a439b15df4d117fc2ef37a73d9eea03821d739e3404b559e8b7c9c6397cee7fe539bb51a970a5b8a95b0436a83cde0200581e02db0fd950d827395408e355a27b71835299c29a26bd01088b40e667e2374b4a817c7ffffff9c335a9570219dd4c03975eedd8db510d3509d8dbda07bc23469eca205056565701a67700f168d5f77c03c3e95c0b7787ae1ca3c9488844a41fa471809ec8f5978fe348124393ce29a8a403b046d0473f00599a4cd7df1b6bc32f95084682aae6256abb46c56f3165024ee40326c766db17ffd37c97d82543a2af5d2dd897b4e47112a7112bf39375ed7a13290317127187dcd0cafedcca768d0f1651ea32ebc26cee60649bdb79aadec758c166031cd3ea37da2e5586efc4df90c8988c777b131840a754e7ad29e0e2a5e7e950de03ff8b0215942ea400b1ad107a7dd6f41c7cece01c072a18b0fcfa136008a981040356d7b0512542f38edfb906ca92b869fbdf6dfd1d3a9c29c602ea62ced01ade47034ba57b88defd5646ff0f38cab0e93ea49bbd5395383d896f9e3da4250204d43d0375ed2c06fe6a939948fb76c3431e77bcba30042d8042b8db3eb06631a3195086038904e8bcab468c45dfb0c00f6959ff43b0e8b635ae1d01aacebe9063226f263a03e4fe126689fcdd0d8987fb144fb12297502b22ccbb2ca000ffa2f1b2dcfe0bec0375933498a6edaf3521bcd3ef57f3bf9f4724eea2239a0bf3a3733e93fcc7fc0503bad2eb257498e2668fdfc1a3830f29d8cedf8378081244e81e306dd7ab63cafb0219ffff039fb2be31a96035fc201f989b85434963fbcae4574df8e5866bbd95df4d3ef05a03a2fb28a5731319e8c6bc88f17580f40615755df52cacef36108c10bb809913ec035202046a3417e973db8b9d23254463e04f443746ec52c7a926e225fc9b4ccb1d037a1ed19a858c198a6b2ce7ca56eeef702dcef9fd49b32867c9984c9fc251efba03470a4c952c2ebf53f07d49bcaac488b2d6512c77fdb9132e4676f089157a598603047a68e7a5ff1e514d8cf5855344f7782e12a26c1e60b0fe4870081e5ace519103179ea7bc2daccbdc1be09127c1503655f997ed22ddb587db37e0b662112088f8038a0984f0413ab932e80bba9a4a73617c5e4ae4723a6dbdc1563baebf4f14c5c003ce87102ae7b1c9b9dc8c6469a2369bb7bfe4922819953a86e85ab84ad4357afb0219ffff03cf9ca87d7e6cc445cd7b0c0ae048ef12407802705662ae4dc478df6c56128c4c0310e832f57aa68fd5f1a8df479bf39018e1267bf77d8de5e30df294fd6511aa330219ffff0353ca7761fcec5908f27442a0d4e531a592b562d8b30cc70a2b4ab74c1f4868640376543f84844ed0985a8c9a5e836d14f6f310cfe533940edfbd8d63de65f2c68b037fb3acab4afa8fbda2151d7cacf56d7f188e908028f9f2f896ccebf31b827610030a4932e7023ae05293fed30f12cb4d18916a94bf4e2ddfeb5ca25383a6ebaffc035fc636fe7588aaad582460281a0a8387ed067167d0b5332f55c448eb466dfcb503ce84c9920428f03900a3e0bd5b8715812c5962d98f7469d93e4f13c3d987375103c40f9ba161fcf2a392760080386127bef79a1300c1c4171c1d7173fdb884298103912e7f04d35f72f3a91793dd2987800d4cd3ca800031f0fbdaeeb5f52dd0e1d4038d37af8966af2221dcbac4ea74b40ba34129f2e98c2ca4f53810892db95dd9e2030bd3b982eefac2d82cfad55672e21bb2fa7c62c448baac1ea68216ef16273f0b03b3e5d81cbec53083e3befb595c6428c27a8b5a16af0e9ced7e50f23aa26a7f0c0319a09432881046f5fa13a152108ba927ff2407dd5ae81d67f3f425031cf6bc32038e001d7c5fb4bea1762de0da474a23f3bb26de0bda9088a16315f11fb406b98803a7f13ef98dadeaf09cc1600c12161038e7125905ad6202e4eebaf7e2ebb32f55038b4167c74cb655f5250a2c199c0f1f90810186c58d9c92f3780c157d931af5c003e70cd7beb1d278b79a7331a3495ee6db5f172677d2e95d2615b2e2d8dfacf367032e8c93fdd40160a875a5a3c1d8e7997564f3d7165dfed3a5108c5101fcfb758003f1dd76e450d66b0ea74a50fa9e66c622d9adc6c565f3b78947a35618d3761c2900581e020bf996c783f73098f048f0b4fe0111addccdd62ec80542079471413ff9465af31079f88400581e02f8a32ccf3ff4be9281582d6ba3bc151663ea0ffb94b9785e6da0137d6f430f4240039b777fc282e6b4eb373cf8399ec87622277c2bb40ca49e9a227f52896ee18da900581e02df2519b0153848b787f61c271d0c41e95ac0a950a189d85e790d7b16a75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e023f0f27ddbaeae4b043717a38a14bf5a5b3e32ee9d917a6293bcc7aa4cc44028f995700581e02a0d9c5bec30a3f0c42a6c2599263da8c630d9592f5aa831bd42f1991ca4b52b7d2dcc80cd2a6d87b800219d4a8038573c9744e4ec43b731a3547740744a6a1a031106fbda5e5874bb8b718002bce0344c71ad3c0d8962ba92e0d6812df8cf0e47318f615ae1a69d45a33dbe4a7e4150317fd311aa0d098614e3ebf1a0e0d25f0de2f76f059dd1f460b4e557bb9b4c94a035f9a2785520cef861aa9f2fe5c85f5905c6add841ff93aee71637031cda63bf10338c4426c93e6ab9a421bfaeab1dc7339378d07b65055410779ce3683c169060e03b921227f6dad54bcb9594274767889c8132ead7b669484ee9757c8fa83a4163503d6e8bb304f8fbe80a864a49154aff906dce8376e62b41003b373bf9d7d863afa030d1715e723705cdb1f6376e5c68807256e983bdf9f1f56af9005c73af8e74a0303a1a9deb1d9e0f483bf2821989e3451dbbdf8f5023b89b2257023da002c396a3a0369450fafafb06ba20d4322b3d6db5bd9c9931416fae7315c8485ff1edd8b73d50219ffff03fb56b3ea02bd6e503c7504af28c0a86e84b2805793a6463a7825f2e858ab797e03a6fd9e78150ff3f97b570453655bf2e9616aa04e763c5a041fc60dcb3ceadf2c0391b5c26071ea4375b5cbc23e18e309d6d14c4e2aa1f98a0e3e71a0b23bf9730103d0c9e03ef86ceac922594f286623b06ce7cacfea538a8f015f095b4151d1107b037ea5ea419d9f74ee2ed81a6612a15dc86ab87595741c2a053f693ab760ef694f035012f206ab1203db67188464da9d3ca81c92aa7170e52543706b8a695e372cb70219ffff033c4766bd72222227df7cad4dec502c767f4f47fab2a8e87a0dc96d29b86daacb0396b22af6990ddf3cb19d7588443dab4436a63f6b07c55792a457bec429c5152f03f539ba20bf7f451f74b435b4152efc40f26c101099d8286b804cac0eb88f719803225e7d596c7b81c9e790c566c6b58eb327221124b6a2200cc0ec41ad5af833e80312b7ca5d496756c0622c8fee2991fa345c1dd523ae8303a3d327424ec29c0638039798b378b4c3253aebe5dacabf9961d58830b54b1912558019b0c5455acdf3eb03a79260c267f13ff6d05c1788f344ee0ca762e410eb652e445ce1f38c91ed157f030667944c2a0ea5c482f2f006dfd40196f191fe79f3f5990049aefe813732d350036916272db0c841a15c3fa0dfd1736c19b04f3857efe0eebf86b769debe784fba03d9301fd954f922ad60912acadea741c18f609161e297ca9ce77b7856bc584c1903262a01503d2339e56f1edc8435ed508838e97ee9eb127afd61b60cc9c0f133b7034f0aa6bb6afa1d21b54382e424f1b0bb06b937d4ef9533f5777d53a82e15f71f03e43b5586479099f828aa34cffce93e3f4008e93a39d1bcfb9f12921928c3c81603861023a65c7e0ccc8e038c40ca8c31a5a4a1e125a274d9ef0c50c5d246850e7f0219ffff03da095ba4389da777acc91a7580baebcb1ab8e51966a4a7522aa7acd15d0742ce03840f32e9960f8e3433dc102659e180d288c01b521a4872471dd928eaf969907003b41871e3d756e653390439256e8d51f0add8e3141fe10f47646b96c0b3085d2203e35bcee2266545223ba288e0a5527f1fc7f49366e768e009e51793f972a2d35503a571c6e09065a45801354efe2c322bbc08c3d7d1959b116444690d2e7d3495ff035c38343b4d8f102f54e4854edbf056db94db0902058b901565ca36cf3569b40d03c4f0440b4b75529e9a5a3b0e75cd88eb0fd2dc708c7a82e392f6323ea223fc100308ed80ed07165753f90cf92e52de7e17452c04d4434f4dc4a8b3671a0b9c2d550329817536cae56ee32da0b32b9156bce6cf047965a9efa81d8c6862c977ba3f9003a4a0090ffd6ea96d4243b49afeecad62460977a1106e378902f4b6f0890746f90369bf0a6334f39496a1e2c98a74f368df463d57dc079a909a445460272788353503596cd4ddb1292641f517bcb623275d6c4f80faffb29089964f44196696bf1c1603d2259f37c1c7d8300453369500493273731bdd2744a323d3b3f2cb4cf0c9955d03265fc81b9fbfdf2c20903686543e045ab45ba38c013210f1cfa50c2c0879f967035493d532f8b84a87e1ed6aee76897f5ed9f685ae6536f7f43f5b40a82d703a780380d38108b74362869de17288ed16cac138bca95fb6b4830c7aa13b11cf10319803522b7c661b079340c36a0d052400960139286ddbf013e0f4116820fa7d40d2c3030ee06808ef05fc398e442950c25f95cfc49860e236068976f71ee02c23f8f66703ba2a33d7bdb5677138a1cabb485b2ab9044a1364ed557318859290bbb120210503b3c6702ee707aba3a39b358bf48308a8f92e60e5f4ff7b283e42b5c51ed30e92030a9a215a4461a0c9dad4d403f202e2229bd3a8247fab28b0849adfcbcc7f350f03a269334e53e5f988be3f75c3412feb8be5e7b045fa05d7d227c19225f48c2b9d03ed51cd7d884d50c4efe43e7ae73f3cb719d963403194ee5fd5826dfdf9c55d0e030241e002eb84a6208fa732669fc62c0c71e77596ff966250193dd06e69d6e9da03075c40ba49053d41b8b62b01d2223fbac8c064f0018cd6de67755674214cb1dc0390c38746ac40ae66198671f2d5d823604eff0d98bfa0e5f70f89e5c4d7fe175f039777d58c6b27c67408a7530fe37bde180868b055d27dadb1f94693bff5bbcdf303aeb5c4e00c10fb7386566c1dc8e72f2e2ae5c7d6825889990fcd7ec45aad6b1b039fb4cd9b593182d46be3b17d875f6dda7f1612455766f99466ba9bbdd9824dca03c749640de33500c7542fdefc349a1d11b6e3c58473b58d9e2cac1282cea3431100581e026b933efb876dd27151e6d87fcaed5df385df162d52ad1ce6d71a7b376f410500581e02b278076afbc71cdea79303cee0987663cf159099bbd92395e0839d50475820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e023c2891df06db8a8e537666ffcc72c26b8fa56dc307fdcbaa4f63576d4f430ad2e000581e02a76fa2b4de48e1714924319615d08d664d9cd4250222496e7f534593635820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0263f22a6ae50232cf1fdd8d4aa0c41283d3de9825ce16568315f02c352244400e79a500581e02513db1c4e054885b24e32e13bbfae313af723205a0990c8824ed4fff89430c04e00399250202193f932bbe591424fd5bbc675a23ed209aa647455616ce9ae39884460219944703e7b154739c40fb40af4d9bff58208710d1b6ddd5db31d74d4810a55bfae203150340f168e23117ac125e1770d38477d0371a3a78a139a1c2cec1434a551883456b03859b50beecc020746790fe141d3c68dbdbae4f21b8d69a8a5c8f18e706eb52ff033f9982929162c7db3b421d2e64e1a4963659eb9f65291353622fd9e786574860032878e2022462de6735a04770c118c6a9b01cf79f3a7d4181b84155bc82ef5dfa03147031276951ba944a8752e372b8cc86cd4de36764f620072dab1f456eacbe300219ffff03c4a448788aefdf5bd9ac3a7c143dad77af9c54a0f84673d4403f7afcd645d12703d3d2e5a49fc54c065c66d418b3a045b2b7f701d75a45c97d12be465be8e7f87503b91a495fec23f4f8b19ccf6c18296be58a0edb926da570ad837dd0cf4ede34a50305f1e414f6a08292bc2b6380f5944e20fd4b84696f4e176c4027325731e9a65003bbdf2e5ef6374803cbc0f273823765a11cbe5fdaae4f229386f187cfd3b7b1d203b5738d65bca66b968c1eae1c9865f7b8136dc4560d3049ac5b050bed95a1df4e03c6ea83bf1a1156576da3547a371085c39cb20f8ee045bd0b3b81bce2c395c0c703bfb43a48600ecd32c5a528bf762e315871d8a34290866b8db4d882f23aac905b03cca051c529a5f7bd818cd07a188b523ea9302cd05a5dd4dfe92577af80726f350219ffff03eed41626b1fc960eb3fac463d6f0a86f5ab02635af5ffc7cae16104a12aa1028032c1f999987e88f6c6ba46192b2b8504a9def3b34fe90a8ed0859d46716d4648303b21fe1dbd65a9d2f169e46ba6a85fd5e8130482a17c370e62d63c873fe3991fb03161ed64e4a1e2df4efeabd6336b2a6a827b5cce8b7020da49b2000cfbff0d2bd0219ffff03fc04df7aeaa680601dd82ade9b9dc40ba754234154b4a7e4920f8207e51b518303f02c42630c66817af206a2be1e15f34107135ca5414f88adb7bd1f53e4de87db03dc3653dfe39f54368cf691e1014f87590dbfaa34914cb0fa8344679f4ff88d4d035e948c3f191845cdd31f459dfad1dd86addbb3eff3ad91260d961cad9ab1b93a033e45d3dbba3a6474fafcc4f7ea9aefe77f48dbdcd462af2e81c2b7c66b22c14703aa58115e89540ee53bb16423ebf9e3b0667b0f1c62e9440ce0e56dea7be44abd0338fc143b09f56e9c6eb1618426fb0f849a11f32794e7e2c7075b955e07dd37cf030ca26785fee7555a04d0c2e785557fac562a0e915094cc4ed7584c278b93c0450343bb6d60eade3b3b8f76e4fadec3793a9c5e3c9e343ac3320559e1171128d0c6033982e6f03a0a9998d92da988692f4055f64da1304063286d0b1fc06c3cc447a2038509768a4eda77ee4a074f5cbeb3bebcb0a4fe667a9ee262571166c4929cf54a0354c9d005dbee88333cbfe9e3d89ee8cc2bd2b61a50e27b1d079b0efb99fe42bb03cb72625e88419609e5d2a8a6326eff5b73b5952e35bd350e0d55cea8097fe03c0347229bd9c14c65f62bbd640dfdaf7f5b65e241d35531aeddeef5e5ecdaa23ba80309a3ed1c94b103b1fef5a90563172857da90e5e102ab0d41ac7d279fe4312702034943cb6a54ca30681adf0e7a66186d1405a4b2126415f160614adab0e8190f950372f80ad870eea9eef3540de9ebb213a195ec403f0d7d6cc6053340ceb6c1c8410342e7db89ee7d6420d14509c3900ed747547908a5dc2184ea8cae53de39890505033eaf065f1a100e1a1f8efd2f141156ecfccc2bbdb313e779f9a2d80986e0eef300581e02d780cec8592f8ca1f9a8ec853b373eaa81e046fd4967784634758bb8c643f4240000581e025e43f1965826767df4c73fa320481755f478360f1ddcf0a2db68527b804e04ee2d6d415b85acef80fbfba5e500581e0264c809d482e866ca0a4139f5e223c6956b8137554a1a12fe93f488e36d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0300034867b928fc237defc350cd8a5f0ac5798c165589e3889d9c50a4ff9876ec00581e02199d872e31eb9178c072e8c930bc7accde065f94e785d981b62326453e431e8480030516fa0297ccbbf52e8d3440d0169968eddfad3ddf2d129250fd32ed29df28b700581e0219b4523efbc9a9ce323342ec05f613d839c746a42eb8d709250e8f6944431dcd7800581e02dd3b05efa32842f9316bc6e9bc5be3761ca1af2e6a7b7393ca867aa7ae465af310792db603ccbdd9f3d6ddc621e091b04ebe487913ae2c583d7a09ed80a27b111881d73493021997a3030f4b5f61732b9579f8b555769220cb4420a7bf5730458c3e80ad43e1972ee63f03bfd022a20a276a7b013b5afcf689ba3f05be1fa5a997acdbc217eddba0b6ec3703708f8451738d05df21103b9d9f9d7c6bf8a3404889129adbef3968a8f0d31ed8038bed666bc2f5f558eec11abf7a597b1331752d1ae427fd67e9e3e8a70788d85303ed21ece3e52702b02f9747945002a1caa7703b844f3543449772fdf3acf4a7e50219ffff039f7c414b214d021d6941793175cd955e74dead4bc3f0510e4bc52ed05320573603d646b96ebe2b5e35e03768d6f7f26695b6223d4d794b6a9964b7f2280f49a02b037304184261dc5152b40f3454bdf6b5abde73574596bf347b59cdec298963b3cd03cab0948943e87094d7536f55ee5e6a905626e43774c92d64c5047bdf988e909d03636f745854b3eff5c3b875ed15092ebfecca0ad70a470ee6b136c252dfd174c803881deef1f656fff952fecc000eddd46ff20b79360340120dfa27b9d76500e6c60219ffff03d8964391be1dde2123254c62dd3c115a521ead1c033d2f3a63a7aec44831dfb703ec9f888e0dfdb8c06df23a9af57e23125980096d7690887c56322af3c2e87f0d03256e506866ac76efbe2e04069b6bce1df2a329ebec39cb55c6b2ede70081707f03be4a18713bd0508d711e9c99d1f09aa4f7cad43f9f7bda16721e47b5332f83ad03ce2c28bbb45ae6f7997d803eab8155f4f988dbffaaa906f1cb12b0d8ff03876403ed10bf96fbe0f527f21b53bd2bd6ea68ff4a56cb5aca25bbec66f89e9f92574503c476106a597a5a45c4992e83eccc335a950e39a54447d1852acaf607b4385f630392dc3de34a2df5f0710c12ceb1dd15521a1d3443848b982db42e2433d290504c032fb8c67579f4a29c04b0d0399f587bad90158bc4f5cdc99bf1a7bd100bc083b803ef7543d1042099aaf8aca3afbbde0821809a62174852ed506a6d5531bcb524a203deb04ccd3e6d680e2da308fc3eec17fdb2f4325b85cbe285fe26f40b9c805cae0394e7853a8ad48c1e85e52b98c71fd778310f0d29869446142229edfc39beafb6034402b133c5736938f9cf254c283f66ed68b54e6d7efd3867368fb245d08a7c63034d672542a9e584570add95c6a2666e3378c117a8ddc80b1c01d79e41a4fd51360339d26b50f57e487bf02744435033001d6e9360631b76f2cf6d158ba4696429ad0219ffff03b981fa8988146cf44cbfd2e26246a9904369cf5cf355a69999f945eaf067193f0349a8cb087833cd5ca06cc8a9c1f4b56c8c3ec0111d480b98dc87d2fb4c20a7bb0219ffff037d011eaa9f8e08b49f406b05c647a728c671aff1142d252339e7b73b09ebfc7e039ccfedb57d9b0f80b0f742df21b001a5ae56e71a9460e73a4776d07a1caf86c70360241dd80519b834bfc15bdd6697c4887a13b8b7027916147c51026d8a0e565003b5a8134b6365e0118469fa73922cc3c7a220ab9b7220fd1697553035ad9884960382e915086f50aa6ad8e3490d82349c7b8a1ab651fad54df50abf8915164275bc0385a9ab60f5d11a18853b2839a356182ed84edc39bc2feafccd065aae169708f403af8f0c7016fdf8ccba2c67c14aa6d76d8acb9162b1a9576631d4777d8d94c25d0361af160c4df3085e0869b42013cb69a1311af5e305412829231ba4ee1f840aa403391bde829b93cc7556eaa64dc19852f631411b85d44e227b33ec6101c4dd6b4503cadb0f4992cc45876aaee7221ee3033a0dc2958f8ad510e71b85f2630d6407ee030351a377e3de6de63d26c038fe9fe0f8649aa3af0209236770f330c9debfc35f0372e5a7797860e2b36616e6ac2b29f874ea4a7657601c439c885725b84a57ce6103afa57f33f5d55f88c0fe5b6c8d1ec7a3e658b9ae4cf51b3024d7fb184b1b9a2603ea3b10e5a86b785a2b45dcaa65e380b1f922b5b495bde14eb2fb8c92a1471aa7038b7a83ccc89edb89d939a6cd46e14e735b70ae500ca99e8c556550160ef991ec03ecb1e8f22584779adf4657d8759c62dc9bb4727c224fcd3c68f079fdac753c1c036d3b3bbd6d607984a3213561177ae808b48ae600214cf2f6f735551458a6420b0372c354856626b8f76edfa91aba4ae77ee9623246864dc1e0aacbfa8ed824c37e035bc92f4e1b89c2f863dd9d7137e4da0eaac9bdbf8395ba71e89fd6d89ce6d1c303cc40dc0b48488fc02bfb1978c873ced4b66fb10739f276c19a98f2dd85937a9700581e02b730514226685217b1513e7760985ffabe1d4b95088d4c0ef121de40055820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02fde04122eebdcf9a5dcf439a9463bd9147624551e038c82200be881db44401a5dc3e00581e022694cc7d11547f600f7386927748c5bc634a0e8c2864a39971514fa2dd5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03e21067c292ae63375612d6e3fb1ca53b96bdfe18baede298347af479704c033b2e3c9fd0803cca329b0000581e0324b4872b09a204fff0863837ecf48583cba06240fb99dbbe2ef02e0e104506fc23ac0002182400581e029e4318fa86b448bf1ade9792a278bf4499035c34405ee95f98fb7459d75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff034c10fd56bbc3457b414223ff0165b2d691c39db44c7f7ba7022c2bf74e92e83500581e02c835c8526fb279ee9eef92f814bd44aec25c7f562aa3abd4606c3b15a75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0216a58a0b4471388334ad3dc667675a689efdaf6ee0539a2809de9e35bf432783a002199cb8039ba3df1c867bffccd969923ca3a63a8377f780171ac6eeb7707229cc46e608fc030d444470e7e021f16e117710d0bd2de458c158b118b6a6a3335f02cbc5d30ba30371e019cdc3dfa54d5934c5b602e11ec282f5abaf4200fe87cdb012e02e1c77e403e80595302f386797e80c1b05496354105a9ffa71c0161392bdbb99023919d0b7032a97014478469d12cdbb3a91d644eac69f5ce6be829de4c8b240515b78c8e4b20219ffff036d828cf47ee92c2a33374ce1d15e172ba832efafdcd2581f39ef1d4e73703fc203c555979fb43dc10c9070ba6d06454f053f9229a2084a18d7d91cd0291fb92bfc0304c156c15f667a8a3f4b312f12e83482cd7bee0a9f22c7cbe1f28fc0848c699b031ab3d3611d8d5aee5c4a390467c2aa1b1a4b7d062f0023ef381d56b229a6352303f4dc3caf25eb4680d9d9f7378bff49642b638cbd3311750120a0221539e64b6e034528c0d0c06bda25537863a37d22a24b5cc543f25f0f2b8928d0ed4d4cfa7f340337206e00a39064ea10e5bca0f43fe34718e87ae937e5b198395a00330414cf16036b1ab0c9e17f69844dfcca49e85bdb835ba2a26c837ca429b72df465040db23b03ae36eca48fc9feccfef1320080f88259008f428ee684da7fc9f308f5bdad4e53034ca92d4144fb9f6441dd0635ab19d61eef25c8c674fa01a24ee6d2a58eb684f0035204ff9ea50cc0ae7784c9a22e3502d1f42b3b063165727121696d91d6b663bc0219ffff03d08a3e63c420c196a1ad4c3470c7733660146cc1a08c36f5db09432fc4ed8b2b0393dbd853c3ff6869d3fe790c838e9e36003343b31e2e762e7cea8b0640873bc2030d55545af3f5999b59df75848354a295af5fd39e77d17879de322333ae56298f0387cc79a940905d85b5e731da7b482f7a10bbeb80d8f1550be508bb03b0adf1d2035c599c2a76cdcaa39a4192d135a3a239de6433d148d5467931909a0d94ba236503fece370edc0da5a048c71976cb48c5439c870885fe8576584c1f28ae8f021d220348fb477e0320ff9ff3b01b914c7cd846d4350447ad48939e810b94e67d8a2f79036ab9fb3b6525042b76dcd13df578137adba58f53b25b9b11c85273f194327dc603cae2be0b40773ee1b18c6b3722a5560b07f44446449d6d9a99e1b64f5b93d8eb039e2330bb83cdcf65812708fc48447a1cf970e7c708e5e61393f77688d3dc881f03c7c6ad905eb97dbc1a3bf6852936fe6b0752d914541fca6c3925b970dcf3f4bd0219ffff03aabb360873461b65d6027e5cdb235e79a7522848cc9e5ef38291cc9844d7e82b030722e8741a95506b6ed675ad5c3eafd75dfc6de153ef89a4e92f189d91d7dbdb0393ffa3797e0b6c8a9c86b94401990a12f95d9fa032d338a93febf2ba6150fe070335342aa6b49e87f7056bbea787270491cfb474acd57dc00e151af5f2421d76e803cc75d189508b0a01eb9234cdeac5d33f364ff88e5f07405ab0eebced06883f7d036a1be0c7f4133fb6f912d0bb8b23384350aa8d811050ba760406b442371d43e303806733bfcd80baf5c8b2951ec97c8aad1fcdbf5d56b9013f018a71a7d6fb038f03d70f97dfc16b6aee4319118cbc09f5786d3ad5ccdbab70b381cdd09837a05d7603c0ee11431411cb0bd9f380894cc3357c27a5ddc52b6bab9a7376a3f08d9cd05403fb8374503c0858256526d8aeab77e56b335795a2c28071a3e91d38b0f758823d0309d8a6357ce15cbdef49b0e10e5fddd8bda0c5db6d02501c0921f1da902ff4a003f0111a528db279d62cf7905131679d451dbc8817ccf6266d567c453cefd027160370fafcce135e03371100bc01345acf5a5dc5d4c5db19bc578dc8456ee7351843031051cb00244573a977612298f7f9c6eefa29d875c558058f5b4a46d0d5a9cd91032321d378c9d731e22ee9494c5d50864345264c30d4d77d0f78b84ba932f9f96b03f23a6b4ac3ea13b7044a4e9fa98f9686717368114c03bee96c818f52f07dcc67039a37f5e5cccc08b747621925a62b0419aee95d3e395eb657a3b8a64dd26d5428030cfcc724f7c46d4872b58aa3a58e726c7496b33533b1c4fa73e4707c668fbaa203e09624632c5df39f8629c22d1b64498f1fb5b52c9b553aab22ae8878c4cc6cd303c9e12e62e5ad57c55d5cea82c882bda2da00127ddab715f871d114f140419ff40395b0680716b7bf5e24ee6a33e9a60691e76d59a4e2442d5c11ac2a8a4382c5e00350b5b9ee0dfa52067559fdd6d23843763288dbf9fd5872394c9f6a17974c140b03442a335945c74da838a42eb761d7eade2e62574423a1b7b355c0405c3aa5550503c32b87ecd3f31927f073345389ce4a5e93e4b0dcc2de6a9116b632615f2e230e03b0b8555a4c67aab55ac4c5d3ee31e657404da14ea5c1476c2371efb66212623d0327c25b0dab15158865b5f446bd8044693b6828d176b88928d44f9008eebb562c0395e90741561d21cbc8c8c2c5ed216aa546951769512b81f823cee97b8e94666703352b8e93716518cbbf4840452a7fb344ed3cdcf03737ae1427f47c92c529c6a303811883ed73f9b67b50b8c88603d5835ed8a173f2c27f6f1a03013852740748f603e9e05f1db89f640d464fa1576de87297f3b4b410b50146c1a0c05fe8217ef09300581e023f2658cff87c751130598d1f8be663793cfd48164f1b308cb083658ea15820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02e7f3e66d06c79627107e5819f6a69c00771e55c1522cecd53d9188456e43031f1400581e0212756d6b1814cdfe586df4b72443bdb7f3e580ff50d341df357f6e33b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219041803555eef7da761fdf084fd114f7790895f5ddaad88474dbfe08f91f386f0b489c103a2d76f1d5a61f73b5913421656f812eb84838c0febd0d05fca0c3af65cddf912035980be116ea4593c1abad4fb908998782005c04d8b8357ed65db4bef6d98db2803b69553636f77d9265fb8e3a1914e8bc63069865acb72fdecd3ef5ddff42bd63c03bde4a4ab2e204763a315322a486677419036161dab6c0add82a40301062d5c1b031ee5fa2ba65b25187f2d986db44877cd90db94c9a262e65e024fc5f1cd3ecdd403fb98116fa840f188ecff34a79b556e7448267421215f89cf55eef82c706f6fc2032fa938db7a19e11c8c008a304127a54e1d39ea4ad0cd650ff78fed5677524721038fce474175411b23f9f555d893da7299785743f30c8bd4ba44b56a2999e736ab03f34a95b4cf06e0435e33faf208ecf58dbc4016f2ec409bd1a256d07e14f79e97038d4bd1abb898fa9158b8f9e10a2b940cd019d61abfd8bc75bf46450c8d1acb690219ffff03072a175a30c52bcd994b8fe7f464dc17b48bbffb5e3ab30ddc5a17da340c25160370bb29b06ef953a2fa2b8bdf79f43b3fde2124bfff1c15644ba09266f235de570333187761ddd14496133e75349aea800a5a8d0181a829ee4165b0131c74286ddd03fbfffe5dea11b6484cd94ea97c94e557d4d4faf44fd0f7d60c8b5d5d894660b60219ffff0360ae6a7230a23bc55c01e1f4c8f3114624684a7205df93484eb67540679f77f80219ffff03ed67e4a73864b35cf5a1beb5a9e34cda7b8e0629cdd39754dd9438559b36692003b139c837067cff8d527745c94c36bf60e5b5b4f26789942f4226658fcab58a7c03096752bc327e5a18ec74c82724e4f369b102c1cec6b6576372308b0654a8314f03d87069614240261f07d0d50d27e1843bf194660ab48f3326659e3be445956edc0380a440c9d8294ba4a1ebfeb5ea7b36ba5062ea3ce1cfb4d4ad777e298254992f039098d22d4325253775c1d02076d5da98f65172098c0976e3ebcbf2ee836f957803e52547a96e545cf78f0af4a53f5dc315a7a5126a5d6497cfe76d16ad0d6c25a10360808f9cadff4a33df8febebb9be71b885f24b8bf48a7c560d8a0ec79049675b038cf5a24b65ea24ff8110c341a5c41357ea85a31db91373b72c8d2dc3b5c1d04c03c9acc952c22e311527d8157f94a3c5ca555783f492e92ea3dcbb476711e8831b00581e02b1ba2e01ce388d6eae6133f41f0c5bb69c133d9e0f02c32bf082c14ce1450eb1c5b7c500581e028b2d256ff38671033d0f6b85150cb188418896079bcae09d657ae5eacf5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02014d4afe3b881d638e8bfe427419b6d493e4c682293ca99e40cf198a5744019a817e00581e02adc07933cba728287221d45e4844a576c7b344bafc9e465991f305c5295820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02154c7a1de4e6685270ca280b231368154d2f45de732e001b4ad8f5ce424345f62800581e026b1c5f7e195493ea5c394eb1e7255174c4ccc68ecc0f7468cef399580f441172535a00581e0203e2963f99e0095afdc518dc3fba97372872af470f2cd08a776b85ac7f4402f2882800581e029d845294c6c09f96c223931167b792ec4ea6a84a98c178c8572f124aa7410200581e0289948633feb57d8ade9bc019d2841f11ac572e3c9f11dd374cc852997b433d090002192f7803446a3f4326549bb4d0f7f74fbca6de7ac786db78e80706fbb48ffef7fb97318003e6fe6c74bf04f620fc79031331a0f8c7cb330c956f104a7166c21a409ee5faae03c47f5c30dd202b8674ed7bbda180aad2008e2b3b0ac6f46c722446b9d0180692039da44d6801f8dd88b5a410996594a4ac04f5a6b7c5d0568e08da5d890fa03d9c03ba46ccf794afaea87933d0357b2ba42f7791af3b7991326ae3ed282db33aa92803a31572c7b50e591ade767eae1e252796aa0fe18902a2f48c1d1dcfa31f08579803f656a7b22d94a318ad2fdb70d969d222583949168db97cdbc88539331ca709b80219ffff032e1369e21c84e673b47085247e25f0a475422fe7df11799b97de9ab10e6a79ac03e77a0005c95d366e2da5070449c2bd5bb8f9aac7b83760b6997dc3204179bc0303a196acc7ca31ea3b9d6661bf778aac0d11c4540146cdce9ff3500569a175c995039a299bb1e8368cf0b6298a5b150a8f0ea91f27ad8ccf3b7c635c947c4a4945940382de3e5ed7d8725c4f386ed19e5cd0e61f7f15031c4cd15b6319ce66f54be26103599a79368346954699d00bc72f7fab8e4d68084e4e40a895d2c51fdfd9227d3103d55257129023f2007d4204b5b90a519977e2c75e780617724a04e884bd8745fb031abecb731d4a25283b79316a079990a4c91e514d1cfe25dc3002e6e6f8a4d4b3036fbb5e10266f69e881f211fe367812e304e431e21d873a7b00d672b74e7b125f03a5ae5fe45c4c3aa29d1ba740e96777f2cf2f95d7f3cbdc23c18947ef9f5753c703cb78f199c5af968385999a276f72d4c6ae39387e3ae7a33b368228a43160f97f0351d57bd8d05d84c6868a6cad63ad3a0001739a03e905968cca3a7ebf271bc74003428375bb6eb23cb91dece6f0618c733cbc98398574f67ba2fa0119894094a9f703ee901dbd5c20f85a49165449a867f3ffa62f525f26ca986b8a3ce3d626b2e87103123963e0cf6c6793efd13471e84d1a0aeae344f1488a4b16529fb39c0708e0a20219ffff036c71dd65e2a770557f894aaeef0a26eda74e0d6bcbdff5770012e7a969c449b9035b96a5e21273d331699fb5bb65dbe620de46424197cfb42142fd399db85946f603f33c15156c9ee96dc5c1e18b5f3d409a345eec7a81df574d2a9706a1bbd4bdb20309c82d2d35e53d1122f1410545ee1697f6cec2c23d4ec1c271885a924b31bbbe03cb55c84d0ad0e31717c3e99e3454bb1c55d9faf3f6a69a738297ec4f0c9b175a03d718396c82587d138b222b29ab86d25087276f4cfd443c007fef0aabf6e319ee0310b57eee5c2d78f9fcab32dabb3e95f5c4bf75908785e8640d89d4a4f65fa193039ce281573a2c5e4403916fff86b5e0d659b7d566e4d884e2c2bf730f77416d5f031b93bb8288f961ce0ac1c74909a58fe8c075482d7d0000ca2c04fd72fd6127b303972c3967a7127460d58b0d2e5fda74ebe03c68901bc4645140e2f037b42539a303303bef4cfdce0bab70ed9afad0c156992abfb6ee63f033585e72cf98ae273b950391ad01dfc914ed82dd75f2a9e0ea0fe8093db879c6b525228c6f6f690e1b083d03096383e67477a9c0d8e357811f4212c6a142d47fdf6e87fcdd70fa371994ecb3032a7c01892df0b5df788c44424f015a4933bc064b4c22d3c067a1dae1c19b57c60350c0e5ec7a5d557b8af7bb62916e42c9a1c58f70b132f042e1fc2608dd5024610219ffff03a265c4029da11318a8209f2303ae5199167ca913bd0cd80ec6e786e454776742032ecc1825fa212976b07480ba6026608ba3e6eac51285f3b92dea786c8c48e1360360212fbad62bc0c75ae123ea650c3f0c492f9ca29df3986e6ea2d2714056e0f303c44d0a98dc73165f511ea9328c133bc15419cf7902fd90c5627ff46fce8bd56003680b1e7518c3600818fdaf211f0a8427ec2201bac10f6e588b660c4d0642e63a033d20dcffd3c18e05d5c4d04ad93b1e359d151a3b6365a027c5df20c145ecb07d03a9569effba9ffb0dfefef18b0840a7de223faec13a9d0a95d5d6501bc167b82403203b9cda3e5e93bdd61375555be6b47df538e63f8c3ad0b166ee3f220b0b5c68033b909e6c7fad9462c807d41d93b0fdc206826872b1b549305da9d61da83bfded033bf1cba9a9812dce2aa90a7a014816d05d90affadfdf35c9e2631bb5c93c09f703d789473527a8b09836abd86286941061c3fb800d4f2686233b19bf695efbc71203e635d08587c9d4a49b57069cce683c9750fe162bae6a0df4097e679f4c2b6b47037bbc15cbb9e2f10e98fb556699321fb1a9576a24dcfc0ff93fa99e245f7f25e803e88d7dfc336351733af8521eb25a82758245ac5fd0e34aa7527e1ba20ecd1e7203f3d6f86f2c3f29b6b7c48d751f5486c72da2efe49367940fd9a973195341a07c0343f7d4a9a729e4f07d8b1ee2802f7962162d3eb7077021e4dfddb1f9cc5d6cc003f4756b893ef5782cf5082ddf88ab9d816930a943479175167872f9b54a53078803162c2c60479ae02e073501cc2afa141390ef5a3b4f14bab710163528f71fd8ed03e355fc8cadec0d79136dde2ff17419e8de99da939548e9acee53ecc5bfbb1fc200581e0212f4fa2a9c4c91147b4c33114be58c066fc90c0815a8167a2a94614b94432a3dcb00581e03879b5128474e71f958a68ec528ebb93a05e427eed5bee6b45ee0461e1046059ea0fa542e00581e0368b89337d40441b7c8dfe1cfa4e68026b9d61f1b2e1335926702e1a880430186a00219042000581e025d58de6a65e7c8c8d1197e74debbbd284347db03f0e1eae9b6815958e65820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02f672e050d77bbf84153d305ce0940d72273d0861bf80681f6ff55fb11b437625b700581e02aadbdbaa5e681b9f76f20a45e7d6c552b997713de11249bbfbcf0e27495820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e029202daa073a3901b4ac30c4b917a212b966da1ca0f82e79bba1f0f17e05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02195283036522f874ede30235824b13f399cebed0f58dfe73b05343e0832e656613b96959031110724530dc3a955cdd6b2f362d3f70f23ac251a6827f257505e34fe9fe9d110376ceafc81087855ff044c595975e28d49f1b8a2c5e96e7c2693042b93b33257c030a09258649ddc03520329b0f01a1e7cbc33449e57e5640f693aed880526479c60219ffff0371e75f12c0f77e6dd33b99b8e65f8b208709369122a943ff402c014ef6252e350314c2339488164baea01b2754937e896a33715f955c3dde441354397708ac5ed603ed6a139d43b119dc96e8b50b2a4d154c0589f75511339d5c14f609777c3ed2ac03d1618f588ca1d756f5dde45f8d463c86b13dd1adfcf95b0e9dd47ffae028f12703996beecf69ab82d5b792eb4f92da15d281be672eecbc05ddae1d04d73972e53203cc4b343d87496633c8089b53cca28c08d8ecb69fc0213c9260002ad119587c8203200761dd73429df716cb0fe236505f3a8ea467bc3f4eccc6b7eef6cc5e8d773503197e099d02c51c61f921c6be15560f0629acef5fba9786de07e7cea4e1b6168603ee05b37613844bbdc1f309be69f01fd60317fe600d22979e9504ef3aa35c50ad032687265e1407299573a8cbcfedb1caba9850d8a34c905747656ffe978064c66403d75e3c6a14dec204a2170370aca8140592b4fee37ba284f94c5bc4887c318c9c03ffab6f30fece9f3035ab8ee2cf0578bb103f2e389d2a1d26da34109888be943d0219ffff036f203dd304807cf3c479df5888c8bbcd041e8ce0119c8b132360cc7cb88491c603672f77faf3cae2ac1c208eeab5e3a8ddb08c10766a8cf9775a6d41b7c44b61df03492bd4431f099f5ba97bd7cdf34dcb30211c148091e9e018ad887e1742bb7cd103e448f8942aa446dc8ec5e2cd98faf71e9fe5b0f35214ab142c819be3f2a93baa03017e4e381f106d53252f27e193f184b6cabb9355a1fec2a38829b8a07d2d1e9d03bf8cf7cde2c5b216ae4a9efdb31313fc42d0a37fa2984fc48060d7d8e2e4586a03c3218f394574bdfad9c50bd0f3072eec8fcbdf0a935bbd2bbc9a6b7ec467ce020382112c62c75b4cbcbf59ec89fd1871599e03cf3dc9bc616823bd671bda5023ec03cde782b73e085294e18a67e7e0b83fd1988292fffca453e1effc1dbac94aac6503aa9d9f11604deb6c49356928b85287f695394d41946460494e3a82f25ce9a8a40395fcc327f42bcd26a953bd92bbdaac29dc31ba938a12139e43c8aa283e35493b03e3bc9b5a91a81709827e291105d96d1c9fbf19297792e493a15c0b554a0c07c203876dff542af607a4b2aac3373da8ef730e024ca321f8b7dd957e62f693798ebf038d0d10d9385f0e7f0af1a453a32be02a56ea9bdc4079c12b333b8035ee6a963e0395936459d60c050674f430b5ba22af55986f3862f834a73aa01f48f3ad4eaf9a03348837e0a3c342190a044a421fcb3e70efbe43be8d8cc5405204106368da94110326171c8563397a3ee12e8d20a2c635b9adfeb57711e2dac4ed5fbcec94aa7fad038619010e0f4633b11197d569e5d91c3c323b368b29774a7d891b45b39b8948920358953d45ff86a7ff1fd746bfdab863cf46b42bac3779e822430b9b2cc0a19a7503cdaf9b05319635038e744071590538c699d9b76e80176c3e779fd04c140ae80203830224d6a1e790a402ba18e805c293b4b8a4c95065731617760e55d3c6d145ad036bb14670adba80382264500da6821425c3cea98ad2be2ab31e741c71a4bbb20d0302acee2056a18ec697782ce15a1c7ed65f4730500bc9e8a9cc94e3ea83de64bf0302f14498e89a2606f842f3edf5396d6728841c254ef0813d5affcb13d0a5f06e030b9f6209fa0a4dcfccf34e953b366a78645f48b2f8046c7bdc71ffcc938381200319902f9ca21b00b7e30bd838fabef387d04495f8fc5ca38188c76551ce48d52303765aa7c400dd52bd359ed17e353c6e354b3e9a628798409484fb960ccc762cf3031bc6f3ebc16be944ee60c155e29394ad0896f58a655405830a240d63cdbd111300581e036b116ce423ba814bcdc0d5e48f79b5f69e2a48cf0ac7e7032850801f7044086a4e3c00581e03a1492255ccf722ee11f175761fba32b1ac4b8dbaaf5438b38b6b4582105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219100403974fab13ced9884058f9e88d52f98d59937a2c09bebe119485dd44798ddd512d00581e02de345860d1afe15f749c215671440b65fd14be9139c78250dc5a00db8443799cd000581e027809757324970fd75c2f559630bb55c0658b86b990b05c84095c28c2fd431fb5f700581e02934af0060a3c366b5cd195dfa4db9ce7d29ae5a6c5a02111a0e32785125820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e022ac6cbeed79a7076431b907852f279080719fc00f92be7d52ab87dc52c43f6e32000581e0257a5be16062c41bf9345310f2660e7aedbb80595b088cb8502179c11884402625a0000581e02f2bbc30322f24afe200dec6e1fca08642ebb4221e3e4b393bd84b40c195820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02e03c1b9a14b0768dd83afe5693651d444b8352456ca6a55e19dd7a77154398968000581e02ca1fe55f6432c0237dbf119315e1c0388ff4e3fe27046b66813e773429410200581e021543b687ed506fa2f2229cd86005756ec52fd6983bcdf1026f5458de685820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219eaed0318c12a52a99ceb17de70b54a6c995a70d641c965161d52ddec30e332322c289c0351f9e9717f635948195016027718628fba415f2a8f858f6297fd69641b117b3103c4dfd830b459f066524204b71cea9327c89e8426624db2cf5ce0e2ea2b891d430367abe0ced4b48cafb9576ae1890d49201135aeef791adc68c5c184aabeb88cc1034eea06f92d595a0fc4bdedd91c992614766e2f869077f0843922f606096bc4fc0360e1ff5210960fab33102b840067eacd13b18c58a22348824b4803b15ad2d08f03ee1ef9d6b8c1e2fa4a7627c73c6375803d273b5651a3639b89194995c51ac89903c9fc107aa3d1e544195830815f74005ebbb21fa2ca62825ef1487eb70fd583de03eb0390093c50fc0b8980a6f194952efb78eee8bd2fb7a2ccaa6121972e226180031b6f7ff3b1afd50071411e9bae1ed7f3c921fcb1f74008cb1881176a9a1370f60353c8d3b08bfb7ededff2a94492d2fcf064d97e8430696211fdec377664826b3d0219ffff0219ffff0219ffff039007138188af8ba0393bf2cd3718daf13d9663cc5a25b044c7992e4da955e0bb03bf0e5cac5ba8ff86bbc6cd010b7db184a98d66b2605d8ff5bb713dd0d78e1e7c033ba667f3017f26fb3833680c0185dfe3adf2bf09f9273138dcb109838537f32303c441f7d50bbf93d7f52a71ff02949d9352d34f8c0018d6835f7c8940d6e21bef0350536cc749f2ea964eaf21d4540ee46901211d2de7670a5dd29c0401d23599c203758b314fe7b5181caeaea71a75c1a559ce49300dc8daffbb1554d814ba2f882f03a0e7b397b34bc9b9a4dfc23d8e83367a5766f41882aa03dfa12ea1d79e5e793803e01285945c53839c68541d3408c0f68af74301cdeda800bc2cce35cf13225d8c034da9db7d7810693c1d70270b461f819e0c2fd818c59e88e7b5684367de4f595603c095b62206d2dac6881a19ab97c98344205aadd28432e2745195edb12609673a030e6134e6db1c0f9aaaa49214dd1acbd343b95527cfb78438d6b434b799ae4f4403c4c91f7cf7685e8d601ae9efb1cc7fa1d5d13c33b11198760b2b84380cc5a799035e46a4520c2f41ae8bab122420da6b0370c93cd96746cc9c295abfbc61150cd50375726db597752d07307c51d8df10aa8ad9abb368c94c96de3b7a49367b41d1b903e6c6dd08d036518b586bb0f8e6a107fd2b5fc2330489b838c8c689d3e39dd7b20325bd50c71df2d564d114b1fcc770db28739ac55fe793d5e67ea8003e8c61ed3c036b83a1512f4387b13e7478475ac982a9c17d7484223dfa081c504c2aa3d6ae63035eef2fdd0c5aab062035d33f8cbde5f94e9da02193343017d2a1f3131a53de150381a6e0fbd56afe7e3ed391303c064e9a972918471a89cdbf320de656fda6a10b03abc2ee65c421d660223f2d494d61f2de526dc517127a8ac32262789bb90431f9033f91ab2b253f5dacd9d04377ea353aa42156665c8aa03865f4c8a8c204bfed17036d8b03d4da988a2678bab4982f6818972b33dc1cf9f03d666bd19377c03b825f034526eb67242ffc443cdee3297fb75b79d4d06dc6b2c1f2813ea6eebb61f1dde203bd4d192e50e11aebd4a9dec49adf47f9a19a638314289a5572f35c58bb8c04ff03168730347f2eb52f485f5283d204c8fa8ae9c89f8b4ca115c924d3b3281bde7b00581e02d46376772016629556267648d0a638a875473c3be452fcc9f18a498dd0430186a000581e023c3c524c966c82af3ee8d0ccffa23347e51cd7382dc4c56d5379f2f35f4429305be000581e0209e11d728936d2f17c9e23ab8faed169f140443504bd01b7351f217704457d3eded21400581e02d38dbabb39a70f13f81cdb08f1470863e004e8c1fe2d6575864266a18643e4e1c000581e0292636d334bdfba781283588530ac82f495dd69d3343b9476e60e183286440106738000581e027d8271393bc64e69c88f2fbc6414ce80d698d07ff4d1aa5a97d6e37e625820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e027db29e9f0457d0c38702e274bf60cb63c0df557594ff26f3174e482d28450111ff47a203d2db25e1b072152197054ce9925d4e8ce7631265d1a022e557440c76a42ad68602196a56038f8dfe4c38dc869ef58b7be43a020909c8f26b665a8490e5d4ada34ebfbd17b603edca6bec5aa62cc91c8e0e3d20a35d51ed58870b7a46e577f2466ecadb4448050219ffff032c6d13cd14892ba34fd2df3f47c209a324734d476ccc022a95a06fbd42eb24c0039d4d092cb5e142765c075654dcb176d96422d5a222ef78b4a8871a53d2e61ff103ab4935358235756c9db3f65389bb4d139e512a8b8e7a4e5a5c3f69cd7e9aad48034fb45a59953c7aab6ac10eac935767b54353ff46ca5c434a31d097c50c6900b503a225a6ef0e441f978a1c3c4c5ce3612f0dae20498dc914432e1658209f3934000383596d7fa35106534406ce96a79662c8280b3e4546b176d5122c8e01179f97630319752a06e60527a18668bcd826a50a3501e45bf76ab39d7d7323c48d527d35cb03392b001c431752deb7efce1a175fb305ead2a069018810fbb439244a10ac991c0301d2cbd7bd6a19d23410e816d45d02cbd34e22075de41a77588238f82ca29b2e03c6b244f0201521984e83a487effc916560eeb2a4e09cf78f47427be28966717503e7ce1b711e5425716c93d70dd39e70488233e5ec0080c130a535714053ce7079032d749548a9fad9e85d8986e4a4bf1eba33743be460f9063b244bedeea6c4f06303fa7f4487a84d723992aece2763df26219794a011cd3bb36732aab61a77cbb80c0219ffff03649180e0ea42770d77849f55464310d1df3fe7555210b67e2440f34d8b8ce3bc03701605278b5022bc509d5fa889749372a55e0d93dc5398aac5cf46e33494a59e03817c6203ecb08c687b18f876a24a2695d92fd22a50459fa35fbb182ab6d0f55f03d492528eddd0e3ae1271158dddf81743313dbfaae7ad02bf8f7fa1c19a3aef3a03a41a4a834313cd5f689edb898bf86c1cf1971c927034e9311028f11ffef2008e03052288d3b5dd1c306949c0f2c441647bf084c4d48b0aec673dd5390b0040b2ea0219ffff0357f969a112426ce1d55e6e27bc0e8569e7c9b320049e933237cb97816e67e8ae03485efc8a9783db0378bfe016091b55e18cc9a86f512ea6e425666fecb74e80b503cc97064c282627206486b75f599c2d03aff72a4baa76149f9f1ce2f09ece522503dda0c5386ee70221eecf33f497fcc75f6e24539361a481349c222286c55223d003c13907290e7afaa97aa7f51ae77ffb37e0816fd1f48a7d33cd37742f2164e242038d4b84de91683784deba00b245110d4f1149792d574696158b3a36db14d8a47f03d115ff7d341df594ab9128e5073ba8cfc0f32b8dcc22d101ba231ae9e25bd333034deb44223f884d7286640bc7e26b662754ad41a7b77d852299d86b5d0197820803eb52625653a2ae8bfb73d0ce8f022001c001ce25f7c1c5c95ec90da0a5d543f203e6eb174f6b12b96f81fac80c94243f3e0f8080629553e8af12822b76b32c52fb03704dec41eae4337d67df9739eedc4b4bc050dea80391701b6ad5c4479ef00cf703ee5458ec78fe0faf4c4553111ebf0561e7f818aa9e660dedf01cd3e523f9b10800581e023a0049059c24717b3fe43fea3b7ea322145445cc5b5f13694d34a51c9a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e023d2f8cfc242c276dd93035fed0fc4245edf68768229ab7a048862441204504f927bc0000581e02e5def6a78ba6ed981fe4c68410d4f3db947b170098ac39c17e9648298644041b1ecf0219049003b3f786b1bf531ab8db55a7477f64f12b43e2166296e1f889a8d2270c85122153035346f7fd957d788877baa3bd76fad7387d61e1002dec0171ecb6c97ed23a6bf10321ff5ca5bce6e117f93c118ab2f5712498232d3a490b783b3fae97f7a4abed7403962b9e3b9b24bb686e714b37438969ef9574c21872644521e0d16260024275ee03bb4a1883012442ee559876241e29f87def76bec3567610e690fd4084b7a463100399e70374f0f03609e22b48b85b91a06b6b1fd59ee0afa07bad31e9da02e02c64037013ad531b7731b083a77697f83b71ce567c4311bd6357d30ce1fd29fdf0db57039558e667cf7549c073383994fbeeb9da2de567dcdac40bfbb1e52003d4fac80403e0f2607944424941d6c18d71707b2df0fe62ecb4ab6b553cfb2dcd1ec230e39103c00585287870431c81b9fbbeb09df131999ba63a18201399193c8924516df83e03990803f8b8b2ce52121c01e0ad66fc83f841cf1fd700cb5afff2620ac4e5a0bd03a026344b1dd7cca7a5a9621078f712829b98ce6ec6d71f49f6672c554b3047dd03478d25a999068b30f34056cdfb768748ed1ea6d06e22bb5691c02a93104c1bc00219ffff0371018b1d75eb5d8a4e8b6ca1912d8ed2feb1d5fb2852ccc06942ec4294e8565703d57dcc34dd9efae53b32da9847d9cf1d744db8499c8c4593e3553d6421f4bc6603e215e73057bb51631a8e89811c088166607b268b7e811d53e9dc7618f7e6377e03315c0c9980161926963fc6152347c50a88de0866a26bc67852cc48766ffd7d0b03f0a828afa8007e08b37199dce7e91ff7aa9586261d9fd095b7da5492999d952d0219ffff03f30d71094ebeb92ceece6b47f22a07e96c806b2039f257440b135bfb94750020037e34a8dd972bfff9aeea19d9b9458921a3942031eafc5bdd03b5847ca59aa01d039ce8c29510f96e776eabc43b874bc5b828c5ba785c56f5653043dc8857ab81f703708f359bc85e2be5392c55d24f325deeea6b46909392671123b0d16d468c57550310711624a4a61103593e2770053cee52dc3c28c277f5352ec58eee66686c561703e981bb6598f0aa95c0fdd551e2af295e5ffcab9dcff00b301673eb18fca18b840399cb6ad1ff3d806eb8031d51672439379a8c49f30dd0c369751810993b2709fc037f64ad9b1d574b847f012ef96e0012625d44991c9a0f5041b5fbed7c24f929cf0327c57ab268d4f7fc433943d83678e39ad1f88f555392fd3b7e006b5b0bb6f769034636ddf1b0ed1d37494f4ffad640f897300b1bed9248514a416119d9a7042e4703c7c15d85fb655e1561004323a796e348db0eec353b90db3b56d2b7af2774d2fc03844a7834c063a6fcfb48a1638b99fbd70ac3e538a761dd4027098f3c30ea391303b6ed32b7a3b7fcfbdeff7303e15c5d2dc01ac57dae6a6bd01526abb35e0d67e70331c3dc6e95ad751899feb231581530a4af690ada3a477b705e5d983c265c629b03d6e08770233cca37dddc969eb1c48e56ec210abdaf1b4ee1b3da2a93bdec594c0219ffff036e602d9ef690a9edb39cf617c87621f1128811cfe7aa5dec4325578a6fdf1d0003ef64762ad46119ed7105201dada47a986c925b95e07278f03cb194d6988bfad6034167af05949044121259e76e6a77b5c84323efe893f9e84220a248db205420b703a118163ee7ad262b9752128c6965a4cc6ea2d259c55f84918cdb4821c5e084d503fab04529dd7b4b1a4b9d538a9c6cd335460e47d47d88ea0918703e1469aa51a103726a8f8d1001b603a53826dc8530af3a3c788914b0424b6e13a0c7abd5ff606203f044e48ccb07f4028c14781a9aefc5ab85697ed7bdc1205d271d167feaaa5a33032222247e3a192af2498c822766501cb088c6ae0751b3126cafeccc0e0831d12103eb73f7d87726af290e6eff513f5906ff95a18baa44980abaf86dfc5727b441a8038ecfc53802473ccd662eb33178787473d8351d08a4b0a863a98f6e58fd98b1fe03d2a846f1215b3f195cfd915482b23e6ba9825e77181f471a24d0558565fc58ed03c2faa73ed67c53f6de2b0c6f78bbe17044babf9dee78ae9a90ecce8f672cba55037dd3e1d0713fc5debba83e8efc287dc28ee8176447ec968b8f9c57ed2bb75cfd0383a0efc451593065fd8eb1b7992c5f10e6e206eb8e0830ec345c0e24eb553cdc03fe949fd0a1383587c75cf1e8e9ad9add758d5b7ffb0418467b3d4b4d5afa900c03746685016ff0d5048bd4ed4688c7d22f178131e431e6e2316d756e6ee2c124db03a2d883748d3db06cf984f16825f9eace949a65e13eee59501a3d6aa4fd5386b700581e02df47dc88b35072ee9db37fc88510d9fe29fb3629446857b82afd3fb14d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e021198b6ec5505c384c7485a698fb47a2fac0208fc7c7eb6f3733a33b8f644168aa62500581e0203a8965a0472c34da6445286a6e6148425d01dca1a34ad3c9deaaacba6442faf080000581e022a67b99929e3181188e882e059a9c656d81e29e3c00c2b7a5ff34781c65820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff039c7b87324c91c2415e968483f31678b30a122b28f77597dd1ed7bdc5ffac36cc02191d10033709ed41f3e21a7495f37a2a419aaab4bd4272431e36f216186b78b538e6a52e03e6e098d0861669306096bf4fc599fa9a4ee4f85f29a960fb9478e6b70d77aece03e0be6abae345e932e6ae9280d227c18da3ee2ae5b1b3d2b62ccc9b90da0a090003b1c653b955f7c7e7a75e141079cfb393cdcd17956d4725135f7170fb2806f4cc035dfc60c850b0ac4bd9a94d8a08a08a417662c31f3b006f5d1125f9f54ddd682b0332bb9d0d55ff016134d81c3ff50f0d8923846959e24a999257f4e569573fc4d003ff3002e2432f11e4ec27b340819378edf863de4c5e8a50e890724609297c26180303a78c09f6d75b27fe841a488187c60cab10921f6bed738fc9a0efee48f43d00032e81b7561930f3d71643092e54ee0578db0555013266e708d1c12f86d0a045ac03488c80e70202ffaeb5e6ed902e80af437d989624382cba3f0ee8a8b8ad7854da0354ec57f714aafc28fbb0f0c4aa216123bc4c19acffbabc8d7bcfa3d6de431df40219ffff03ae6d9dfffcf785827160988045e87156e4bb44b0fb0f1e617e1ef65a8014d996034397053861ccc9f54920185836ef0faf30265cb07398a820c5c54713f6ecb7f1039bb30aa2a04ad176d5cb9d9d7fdc6ce7fbf46694ec0adf773191aba6357e84280305787b6305cc480c2f8bb497ab50b63cc198299b7f7c137ef9df9ceb1c8fc0e903fb0af8c85563ad64358f0b5f11a7e36c54b0b6a8ef1f93196c4111f405e1dec903cab6e7026f232ca7e7a0799c39fc71bae7a069e8bf02a5563e1537d75d05b849032e7b3cb83424901f86b18325b2b830d1596973e0fa8d1c9e205154419ef240ed032dce7d8fd612f60de8766dc6ac6d8baf227d790f28f38cabb96806d310156a8203e4e73234a77ad8d482799f160b44637360123c3356cd5737540ca8213dd027b10305dea83a18a1910136ce11230282337094218f62e019d95d082a7cadb62444ac0219ffff03dcaa29316e331986ab99d39b992fd5dd023d4ef2a69ea7666191a7d6d04f797f03ab347d806f3c411545f919b3caa7f947be8fbfda9da0babeaf4837b9e46dca070314121ecb27eb544719959581b12047c5de8f84c71e55b66598dbc085d155dd83038b1523709f4ee63afd59f8ec7189c4b3ca96bf8a6fcd496376c5247656cfc5a0032d9b43842a9934b43d72f6d87f2ff2cda914d3137b944dcf95235f5011c8310d039b23a9d087bb254b411de25488de11cdf0a53d4b3569549208d9ae37e6442784033e5ebfe3d4d8d030c3e88bb02e836f78043c431d73363eb9b9e1ef00504f08b50320be15291c613b445c35f9bd7af4cfa4ee9bd56d1ad80dd0a0728b18759c51800347391632c7bcff4d5645c75975f847197e724e8258d979b66dfe11373e723c6b032afc5a3f0c3b2082c4311a09ce72757e2e238cc6eab8fa2bec815577fe978a080219ffff0219ffff0219ffff05581e03802a763f7db875346d03fbf86f137de55814b191c069e721f4747473300f014101192b4305581e03ed41b02751507a69be5c8c241e3750749282f6640e4722cccc632c3b200c0246a9f3a93029c805581e03eaccb25c3b802599534e062dc2e93db54aba393318310c1577e1daa630040205581e03c5e948564ebf9b9a17980d6eaa6524d93aafb4fdd34166baf652cca1800c02450f5de81400031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e038f8c3e9b5c4c6544d216c2e7a83776e591264e1c198f65049bfc74840007011bffffffffffffffff02193bfd03392e914c6ab5987bbcd8f5c9e23b4948ee28dcf45dd72273bf6cc106036f852a03a7bbe5c7d23562fa1577db79cf77c262d65862d50241de2b147a9b5b318aacb4037bff4eedea913e11c281bf9631984344780fcc3dbcda40cab7c25dadbf13c2ab030b3757b624f3e65e3cadbd9b61e092af2f6086fe846ac6ed51a2f0261d21b47503b7d528fc41c8fdc8ea18c6e7d0099270c777ec1403cf879d1f5134bdc12a6c6c034382be5d1766702f4ba15e120f3799421ca93e9fbd4e2f7d43216a9bb1c61d1903251c695862941c0ccb2313831b0f637e2b60301268ebbfb483afc5c821221e6203c5fa30673798625171fa89a7f413131bca535c09ff4d0b38350c0df769787d4e038bd2b242e992653fa60521d04209d0f948548de03ed9d063f6c847212da606f40219ffff03901e7b5631221adac5424d4a3a63f7a33ad01172f2a04d45a568db634e68d469033eb1e5040b38fd5517eb98729f74c5e294679784c22af0e26326cd7fd6de3d1a0219ffff0364b7e34ec6ad8063fb8da1714974fcf22d6df30944c0689b6a362f4006a756c603c8bf83535f9676667697fd5a668027e62c2e525b5a4da570aeb2fd254a606f37033a627fd712263a65999b294998569468e6f4c217447406bca09487d38fd862a703e5d20d7d05a68d4c1f3bc64526df1bd97bc739f794770dad57ea26456ad5c8780314f5f411616343dc631592a2ba7f6dbb51a29b624e32fc8b0171bdcd8c927338031d9035b623c5bea83ec4bdfe732d5ead8b5012e3bcf09dfc1909df65cdb9b03103bb52f2327be8bbad60b3057ee9c76f6e2f30b8d9c9d08a60bb4bb8275fe57fee0313254682dae97818162473362ef6e72ddb46466ff555ffe3ab034aabe07cb44a034b17f19a1b48c324092d3ef15781025fd21c401b8a85abd266ad78883c875ccf0366a2b76e49f4104a381abc6c40253b9e5310782e8baf5e201f31727efc189fe10389bf848127957341d09af13f0d69b288ec5f238c9886f805bab0024a8f4fd9c60219ffff033971ca6857d4399c447fbaca14d560405a1f366ba422ca20784054123cd37fe503e99eee41e122801d29b90924a91eaa6b23619b2fe45be8c9955720eee599b68c030781797bb2908de65cde4ca2bcebb1be8c96761ac0b9565c4c96e17ca8511dd3033be573e05d6accfcdd5fb77f358ed3eead9640a32432da166b666c4846081af503e2ee85dc3e3a44ecc64cc3123a02f1c461dfa764fc601ffe977193f83de651c503ce43376d8830011e0344c517a1a65d4ca6a8ef64f2c30f39325fe603d363b6c003ad46e48c4084d0a5479cba98c59975efa599c800667e7ec45ea932de0393917803713864197237b48b63b5f419fbc5aa13b1c44047028ae432a97f85b5f28bb24f03230561a8417fef9ef32f6be9ce15723464decd58dc5011a273627dbf4a0770ea0394fdaab3bfe41e1511b0cd10f9df159f9fece2001ba8aab3f2e86e7db4a2fdec037e8ce31eb7f2b3d015aff9f4db69e1417d3fd190d182e57431d61a035a87371103fecdc28ee7fdaddf54a46b82305c04bee3aa8988f0e008805cd18b896e48144c03b2bb519ffe602b34148383f84aa40d26bcaf5196a21b7f102f307273ce7696d703a6c292f5073b38ede32d6f1ef26f6ba31a7642d36068a37975df72aefb1fbc0a03c8dffffb85973186b2dad67f8207a40ccc0d715916b4052cba1461d5d493799f032aa2a638cad1d65a1dea3e87ef716d28640411e8317151bc1d0feca970c6e84603210062d57c6f0cab40575cb78e1d312e90d463f7e55ccc7272ddc912801903a4038c042a3400c54290072d53feaa35924dab56f2c95f1260ef98cef5c49c7c4ea703de31f588ec2bd84aad7d48c46799fbbe716a995721f9eea4aba1c8162dfb10e5035a7c0c548a38115896189c33941464ea035c56b35f3bef00a35ea125ff7d7a6903306375f8e2e281ece0096ff16ed92ada9a3eefb591979d2717ce2a1858f18fae033bd2fc5be2b98106111554e32ba7783ff7b12685eef8fc009a6d56da5533e81f0338b57ed0d350c1819a7e9fa15623bdf23c974896f8b86dcf160fbc74f476908103d91946dbd48a946d368969359837180eaef7f60dc8e20f9dbfcf066048d18daf035451e24cbbfa23b62f8e87b927fae4d011f5410bd23577e35fdb8eb814e171a00356cc53e6752472fc1b756f69cce889bf197a5f8a3ee47de1dac332dababaff2e03492d1527945923f5e9c71555d4d410261dbe9a2d3cbf4b65d362802c1d484896034dee82332102605284103641fb795e51383142b69f5a52d7602fdd12dd21ed0003541f09a5d03e39328af1d21bc43daec442cc6ccfb2f0d7d82851aa10d1f836e703649f2479d4960bc2b623c767f33ac32a6a0cf97d6f76effd618fd636875d73d503d7311dba57445232c565477fafaf1889629a743ee8789aef27a9a59687464239039c875a77f16ac93de510fad4d3cb89556260edb27cf85f048d1b437859a9168803edb6bb10cfbdf94bccbe927ba3e99d829c705908080398da062d52380c6c4c4703b5cd47580f0ffe471939a597e3351aa4634a8f33752216791238fa27be6f71ac0329b825b730c4ae0118857fb47461404fd2372c72649e94ae163ac7d4e292f166033030c39be305873a6301c7ad5648c60648dcfba90810f20d42c763012d6e5d6c0361a3b3eb283e47510ec7728a6684fbade3f07e376be7e5d295c81cf7106530cd0330c415127c153ba543ea7cf5320008d5a157790a65d4c090a020d05ec18a2a380312743f5f948e0f688a489f6f1e0010c988664096af36685cddc570c5d69f2e6b03f1fe1d4b6f7a39462cf8a28f4fc15caad5d9a7480cfec6bcaea090602406dca003bd32998458135423e208af06dbd5af58152c2d34c7dd8a24dcbf310c10a773cf045947306080604052600436106100745760003560e01c8063b61d27f61161004e578063b61d27f614610331578063d9caed1214610365578063dc4d776a14610385578063e4aed5da146103985761007b565b8063332cdf8f146102cf57806376ccd9f1146102f157806381660d8c146103115761007b565b3661007b57005b6000366060326001600160a01b037f0000000000000000000000000000000000ffe8b47b3e2130213b802212439497168114806100e957507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061012557507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061016157507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061019d57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b806101d957507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061021557507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061025157507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b6102885760405162461bcd60e51b815260206004820152600360248201526234303160e81b60448201526064015b60405180910390fd5b60006102978460048188613d1b565b8101906102a49190613d45565b90503081036102ba576102b56103ab565b6102c2565b6102c2610664565b5050915050805190602001f35b3480156102db57600080fd5b506102ef6102ea366004613d45565b610e82565b005b3480156102fd57600080fd5b506102ef61030c366004613d45565b611155565b34801561031d57600080fd5b506102ef61032c366004613d81565b611428565b34801561033d57600080fd5b5061035161034c366004613dc7565b611734565b604051901515815260200160405180910390f35b34801561037157600080fd5b506102ef610380366004613e50565b6119a3565b6102ef610393366004613edd565b611c54565b6102ef6103a6366004613edd565b61243a565b6040516004606435018035602081018284376020818401016040525050600080828060200190518101906103df9190614044565b91509150816003036104be57600080600080600085806020019051810190610407919061410d565b60405163a9059cbb60e01b81526001600160a01b03858116600483015260248201849052959a50939850919650945092507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29091169063a9059cbb90604401600060405180830381600087803b15801561048057600080fd5b505af1158015610494573d6000803e3d6000fd5b505050506104b484868386604051806020016040528060008152506126d8565b5050505050505050565b8160070361059457600080600080848060200190518101906104e09190614168565b60405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905294985092965090945092507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29091169063a9059cbb90604401600060405180830381600087803b15801561055757600080fd5b505af115801561056b573d6000803e3d6000fd5b5050505061058b83858333604051806020016040528060008152506126d8565b50505050505050565b81600a0361065f57600080828060200190518101906105b391906141ad565b6040516370a0823160e01b8152306004820152919350915060009082906001600160a01b038516906370a0823190602401602060405180830381865afa158015610601573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062591906141db565b61062f919061420a565b905060008160405160200161064691815260200190565b6040516020818303038152906040529050805160208201fd5b505050565b604051600080600460443501803560208101828637602081860101604052505060043591506024359050600080848060200190518101906106a59190614044565b9150915060008085126106c0576106bb8461421d565b6106c9565b6106c98561421d565b9050826000036107a6576000806000806000868060200190518101906106ef919061410d565b60405163a9059cbb60e01b81526001600160a01b03858116600483015260248201849052959a50939850919650945092507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29091169063a9059cbb90604401600060405180830381600087803b15801561076857600080fd5b505af115801561077c573d6000803e3d6000fd5b5050505061079c84868386604051806020016040528060008152506126d8565b5050505050610e7a565b8260010361093957600080600080600080878060200190518101906107cb9190614239565b60405163a9059cbb60e01b81526001600160a01b038087166004830152602482018f9052969c50949a50929850909650945092507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28216918816918211919063a9059cbb90604401600060405180830381600087803b15801561084d57600080fd5b505af1158015610861573d6000803e3d6000fd5b50505050600081156108805761087989868887612777565b905061088f565b61088c89878787612777565b90505b6108ac8783158330604051806020016040528060008152506126d8565b60405163a9059cbb60e01b8152336004820152602481018490527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03169063a9059cbb90604401600060405180830381600087803b15801561091457600080fd5b505af1158015610928573d6000803e3d6000fd5b505050505050505050505050610e7a565b82601403610a1a57600080838060200190518101906109589190614297565b915091506000826001600160a01b03167f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031610905060008089126109a457886109a6565b875b604080516001600160a01b0387811660208301523382840152861660608201526080810183905260a08082018990528251808303909101815260c082019092529192506000916109fb9160159160e0016142fd565b604051602081830303815290604052905061079c8484158830856128c7565b82601503610b3a57600080600080600086806020019051810190610a3e9190614321565b60405163a9059cbb60e01b81526001600160a01b03808516600483015260248201839052959a50939850919650945092509086169063a9059cbb90604401600060405180830381600087803b158015610a9657600080fd5b505af1158015610aaa573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b038781166004830152602482018690527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216925063a9059cbb9150604401600060405180830381600087803b158015610b1857600080fd5b505af1158015610b2c573d6000803e3d6000fd5b505050505050505050610e7a565b82600403610b5e576000806000806000868060200190518101906106ef919061410d565b82600503610d0b57600080600080600080600088806020019051810190610b859190614355565b6040516370a0823160e01b81526001600160a01b038088166004830152979e50959c50939a509198509650945092508189167f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290921682119183916370a0823190602401602060405180830381865afa158015610c06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2a91906141db565b610c34919061420a565b985060008115610c5157610c4a8a878988612777565b9050610c60565b610c5d8a888888612777565b90505b610c7d8883158330604051806020016040528060008152506126d8565b60405163a9059cbb60e01b8152336004820152602481018590527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03169063a9059cbb90604401600060405180830381600087803b158015610ce557600080fd5b505af1158015610cf9573d6000803e3d6000fd5b50505050505050505050505050610e7a565b82603c03610dbe57600080600084806020019051810190610d2c91906143bc565b9250925092506000836001600160a01b03167f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03161090506000603d83604051602001610d8291815260200190565b60408051601f1981840301815290829052610da092916020016142fd565b604051602081830303815290604052905061079c84838533856128c7565b82603d03610e5b57600082806020019051810190610ddc91906141db565b60405163a9059cbb60e01b8152336004820152602481018290529091507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03169063a9059cbb90604401600060405180830381600087803b158015610e4757600080fd5b505af115801561079c573d6000803e3d6000fd5b82600a03610e7a57600080838060200190518101906105b391906141ad565b505050505050565b336001600160a01b037f0000000000000000000000000000000000ffe8b47b3e2130213b80221243949716811480610eeb57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80610f2757507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80610f6357507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80610f9f57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80610fdb57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061101757507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061105357507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b6110855760405162461bcd60e51b815260206004820152600360248201526234303160e81b604482015260640161027f565b604051632e1a7d4d60e01b8152600481018390527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156110e757600080fd5b505af11580156110fb573d6000803e3d6000fd5b50506040516001600160a01b037f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc16925084156108fc02915084906000818181858888f1935050505015801561065f573d6000803e3d6000fd5b336001600160a01b037f0000000000000000000000000000000000ffe8b47b3e2130213b802212439497168114806111be57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b806111fa57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061123657507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061127257507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b806112ae57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b806112ea57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061132657507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b6113585760405162461bcd60e51b815260206004820152600360248201526234303160e81b604482015260640161027f565b604051632e1a7d4d60e01b8152600481018390527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156113ba57600080fd5b505af11580156113ce573d6000803e3d6000fd5b50506040516001600160a01b037f0000000000000000000000000000000000ffe8b47b3e2130213b80221243949716925084156108fc02915084906000818181858888f1935050505015801561065f573d6000803e3d6000fd5b326001600160a01b037f0000000000000000000000000000000000ffe8b47b3e2130213b8022124394971681148061149157507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b806114cd57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061150957507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061154557507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061158157507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b806115bd57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b806115f957507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b61162b5760405162461bcd60e51b815260206004820152600360248201526234303160e81b604482015260640161027f565b6040516370a0823160e01b81523060048201526001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2811690871690811191600091906370a0823190602401602060405180830381865afa15801561169a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116be91906141db565b604080516001600160a01b038a166020820152808201839052815180820383018152606082019092529192506000916116fc91600a916080016142fd565b6040516020818303038152906040529050856002036117275761172287848730856126d8565b6104b4565b6104b487848730856128c7565b6000336001600160a01b037f0000000000000000000000000000000000ffe8b47b3e2130213b8022124394971681148061179f57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b806117db57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061181757507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061185357507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061188f57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b806118cb57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061190757507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b6119395760405162461bcd60e51b815260206004820152600360248201526234303160e81b604482015260640161027f565b856001600160a01b03168585856040516119549291906143ff565b60006040518083038185875af1925050503d8060008114611991576040519150601f19603f3d011682016040523d82523d6000602084013e611996565b606091505b5090979650505050505050565b336001600160a01b037f0000000000000000000000000000000000ffe8b47b3e2130213b80221243949716811480611a0c57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80611a4857507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80611a8457507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80611ac057507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80611afc57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80611b3857507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80611b7457507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b611ba65760405162461bcd60e51b815260206004820152600360248201526234303160e81b604482015260640161027f565b6001600160a01b038416611bf0576040516001600160a01b0384169083156108fc029084906000818181858888f19350505050158015611bea573d6000803e3d6000fd5b50611c4e565b60405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905285169063a9059cbb90604401600060405180830381600087803b158015611c3a57600080fd5b505af11580156104b4573d6000803e3d6000fd5b50505050565b336001600160a01b037f0000000000000000000000000000000000ffe8b47b3e2130213b80221243949716811480611cbd57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80611cf957507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80611d3557507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80611d7157507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80611dad57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80611de957507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b80611e2557507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b611e575760405162461bcd60e51b815260206004820152600360248201526234303160e81b604482015260640161027f565b60005a90506001600160a01b038e164114611eb45760405162461bcd60e51b815260206004820152601260248201527f6e6f7420746172676574206275696c6465720000000000000000000000000000604482015260640161027f565b8c8e6001600160a01b03163103611ef85760405141903480156108fc02916000818181858888f19350505050158015611ef1573d6000803e3d6000fd5b505061242b565b6040516370a0823160e01b81523060048201526000907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316906370a0823190602401602060405180830381865afa158015611f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8391906141db565b905060008a67ffffffffffffffff811115611fa057611fa061400a565b604051908082528060200260200182016040528015611fd357816020015b6060815260200190600190039081611fbe5790505b50905060005b8b811015612072576120428d8d83818110611ff657611ff661440f565b905060200201602081019061200b9190614425565b8c8c8481811061201d5761201d61440f565b905060200201358b8b858181106120365761203661440f565b9050602002013561296a565b8282815181106120545761205461440f565b6020026020010181905250808061206a90614442565b915050611fd9565b506121778e8e60018181106120895761208961440f565b905060200201602081019061209e9190614425565b8d8d60008181106120b1576120b161440f565b90506020020160208101906120c69190614425565b8e8e60018181106120d9576120d961440f565b90506020020160208101906120ee9190614425565b8d8d60008181106121015761210161440f565b905060200201358e8e600181811061211b5761211b61440f565b90506020020135866000815181106121355761213561440f565b6020026020010151876001815181106121505761215061440f565b60200260200101518d8d600181811061216b5761216b61440f565b90506020020135612c86565b6040516370a0823160e01b81523060048201526000907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316906370a0823190602401602060405180830381865afa1580156121de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220291906141db565b9050600083821161221457600061221e565b61221e848361420a565b905060003415612246575a6122358761985861445b565b61223f919061420a565b9050612260565b5a6122538761791861445b565b61225d919061420a565b90505b600061226c823a61446e565b90508083116122bd5760405162461bcd60e51b815260206004820152601460248201527f726576656e756520696e73756666696369656e74000000000000000000000000604482015260640161027f565b3415612423576103e834106123145760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420627269626520726174650000000000000000000000000000604482015260640161027f565b6000612320828561420a565b604051632e1a7d4d60e01b8152600481018690529091507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561238557600080fd5b505af1158015612399573d6000803e3d6000fd5b5050505060006103e834836123ae919061446e565b6123b8919061449b565b604051909150419082156108fc029083906000818181858888f193505050501580156123e8573d6000803e3d6000fd5b50336108fc6123f7838861420a565b6040518115909202916000818181858888f1935050505015801561241f573d6000803e3d6000fd5b5050505b505050505050505b50505050505050505050505050565b336001600160a01b037f0000000000000000000000000000000000ffe8b47b3e2130213b802212439497168114806124a357507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b806124df57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061251b57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061255757507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061259357507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b806125cf57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b8061260b57507f000000000000000000000000ec2c5c305806dda5e2852571ae974dd38cb265dc6001600160a01b0316816001600160a01b0316145b61263d5760405162461bcd60e51b815260206004820152600360248201526234303160e81b604482015260640161027f565b6001600160a01b038d1641146126955760405162461bcd60e51b815260206004820152601260248201527f6e6f7420746172676574206275696c6465720000000000000000000000000000604482015260640161027f565b8b8d6001600160a01b0316310361242b5760405141903480156108fc02916000818181858888f193505050501580156126d2573d6000803e3d6000fd5b5061242b565b600080856126e8578460006126ec565b6000855b6040517f022c0d9f00000000000000000000000000000000000000000000000000000000815291935091506001600160a01b0388169063022c0d9f9061273c9085908590899089906004016144af565b600060405180830381600087803b15801561275657600080fd5b505af115801561276a573d6000803e3d6000fd5b5050505050505050505050565b60008085116127ee5760405162461bcd60e51b815260206004820152602b60248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4960448201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000606482015260840161027f565b6000841180156127fe5750600083115b6128705760405162461bcd60e51b815260206004820152602860248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60448201527f4951554944495459000000000000000000000000000000000000000000000000606482015260840161027f565b6000612887612880600a8561449b565b8790612e81565b905060006128958286612e81565b905060006128af836128a9896103e8612e81565b90612ef7565b90506128bb818361449b565b98975050505050505050565b846001600160a01b031663128acb0883866128e187612f55565b886129005773fffd8963efd1fc6a506488495d951d5263988d25612907565b6401000276a45b866040518663ffffffff1660e01b81526004016129289594939291906144e7565b60408051808303816000875af1158015612946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058b9190614521565b6040805160038082526080820190925260609160208201838036833701905050905082600203612a9c57600080856001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156129d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f99190614577565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150600084600014612a2e5784612a32565b6126f25b90508284600081518110612a4857612a4861440f565b6020026020010181815250508184600181518110612a6857612a6861440f565b6020026020010181815250508084600281518110612a8857612a8861440f565b602002602001018181525050505050612c7f565b82600303612c7f576000846001600160a01b0316631a6865026040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b0891906145ba565b90506000856001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015612b4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b6e91906145fe565b5050505050509050600080612b838484612fae565b91509150600086600014612b975786612c17565b6064896001600160a01b031663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bfb9190614690565b612c0591906146b5565b612c11906127106146d7565b62ffffff165b90508286600081518110612c2d57612c2d61440f565b6020026020010181815250508186600181518110612c4d57612c4d61440f565b6020026020010181815250508086600281518110612c6d57612c6d61440f565b60200260200101818152505050505050505b9392505050565b6001600160a01b038089167f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290911610612cc581898989898989613022565b949c50929a50909850965094509250600081612d8d57612d8685600181518110612cf157612cf161440f565b602002602001015186600081518110612d0c57612d0c61440f565b602002602001015187600281518110612d2757612d2761440f565b602002602001015187600181518110612d4257612d4261440f565b602002602001015188600081518110612d5d57612d5d61440f565b602002602001015189600281518110612d7857612d7861440f565b6020026020010151896130f6565b9050612e12565b612e0f85600081518110612da357612da361440f565b602002602001015186600181518110612dbe57612dbe61440f565b602002602001015187600281518110612dd957612dd961440f565b602002602001015187600081518110612df457612df461440f565b602002602001015188600181518110612d5d57612d5d61440f565b90505b60008111612e625760405162461bcd60e51b815260206004820152600760248201527f616d6f756e743000000000000000000000000000000000000000000000000000604482015260640161027f565b612e75831515828c8c8c8c8c8c8c6131e2565b50505050505050505050565b6000811580612ea557508282612e97818361446e565b9250612ea3908361449b565b145b612ef15760405162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015260640161027f565b92915050565b600082612f04838261445b565b9150811015612ef15760405162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015260640161027f565b6000600160ff1b8210612faa5760405162461bcd60e51b815260206004820152600760248201527f546f6f2062696700000000000000000000000000000000000000000000000000604482015260640161027f565b5090565b600080612fe4846fffffffffffffffffffffffffffffffff166c01000000000000000000000000856001600160a01b0316613b85565b9150613019846fffffffffffffffffffffffffffffffff16846001600160a01b03166c01000000000000000000000000613b85565b90509250929050565b6000806000806060806000876001815181106130405761304061440f565b60200260200101518960008151811061305b5761305b61440f565b602002602001015161306d919061446e565b896001815181106130805761308061440f565b60200260200101518960008151811061309b5761309b61440f565b60200260200101516130ad919061446e565b1190508d15158190036130d2578c8c8c8c8c8c965096509650965096509650506130e6565b8b8d8b8d8b8d965096509650965096509650505b9750975097509750975097915050565b600081156131045781613108565b6127105b915060006131168986612e81565b9050600061312e846131288a88612e81565b90612e81565b9050600061316d61316464e8d4a51000613155856131288f8e612e8190919063ffffffff16565b61315f919061449b565b613c37565b61312885613c37565b9050600061271061319a6305f5e1006131868e87612e81565b613190919061449b565b6128a98d8c612e81565b6131a4919061449b565b9050838210156131bb5760009450505050506131d7565b806131c68386613ca7565b6131d0919061449b565b9450505050505b979650505050505050565b6001600160a01b038088167f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29091161089613612578460021480156132275750836003145b1561334b57600081156132955761328e8a8560008151811061324b5761324b61440f565b6020026020010151866001815181106132665761326661440f565b6020026020010151876002815181106132815761328161440f565b6020026020010151612777565b90506132ca565b6132c78a856001815181106132ac576132ac61440f565b6020026020010151866000815181106132665761326661440f565b90505b6040805183151560208201526001600160a01b03808b16928201929092529088166060820152608081018b905260a08101829052600090819060c0015b60408051601f198184030181529082905261332592916020016142fd565b60405160208183030381529060405290506133448884158430856128c7565b5050612e75565b84600314801561335b5750836002145b1561344057600060018988856000815181106133795761337961440f565b6020026020010151866001815181106133945761339461440f565b6020026020010151876002815181106133af576133af61440f565b60200260200101518f6040516020016133fe969594939291906001600160a01b03968716815294909516602085015260408401929092526060830152608082015260a081019190915260c00190565b60408051601f198184030181529082905261341c92916020016142fd565b604051602081830303815290604052905061343a88838c30856128c7565b50612e75565b8460031480156134505750836003145b156134d2576000601489888560008151811061346e5761346e61440f565b6020026020010151866001815181106134895761348961440f565b60200260200101518e6040516020016133fe9594939291906001600160a01b03958616815293909416602084015260408301919091526060820152608081019190915260a00190565b6000808215613548576135288b866000815181106134f2576134f261440f565b60200260200101518760018151811061350d5761350d61440f565b6020026020010151886002815181106132815761328161440f565b915061354182856001815181106132ac576132ac61440f565b9050613596565b61357a8b8660018151811061355f5761355f61440f565b60200260200101518760008151811061350d5761350d61440f565b9150613593828560008151811061324b5761324b61440f565b90505b6040805184151560208201526001600160a01b038b8116828401528a166060820152608081018d905260a08082018590528251808303909101815260c082019092526000916135eb916003919060e0016142fd565b604051602081830303815290604052905061360a8985158430856126d8565b505050612e75565b8460021480156136225750836003145b1561378557600080821561364e576136478b866000815181106134f2576134f261440f565b9050613668565b6136658b8660018151811061355f5761355f61440f565b90505b604051632059836360e21b81526001600160a01b03808c1660048301528a166024820152604481018890526064810182905230906381660d8c90608401600060405180830381600087803b1580156136bf57600080fd5b505af19250505080156136d0575060015b613711573d8080156136fe576040519150601f19603f3d011682016040523d82523d6000602084013e613703565b606091505b5061370d81613d05565b9250505b6040805184151560208201526001600160a01b038b8116828401528a166060820152608081018d905260a08082018490528251808303909101815260c08201909252600091613766916004919060e0016142fd565b604051602081830303815290604052905061360a8985158530856128c7565b8460031480156137955750836002145b156138ec57600060058988856000815181106137b3576137b361440f565b6020026020010151866001815181106137ce576137ce61440f565b6020026020010151876002815181106137e9576137e961440f565b60200260200101518f8f6001600160a01b03166370a082318f6040518263ffffffff1660e01b815260040161382d91906001600160a01b0391909116815260200190565b602060405180830381865afa15801561384a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061386e91906141db565b604080516001600160a01b03988916602082015297909616958701959095526060860193909352608085019190915260a084015260c083015260e08201526101000160408051601f19818403018152908290526138ce92916020016142fd565b604051602081830303815290604052905061343a88838c8a856128c7565b8460031480156138fc5750836003145b156139df57604051632059836360e21b81526001600160a01b0389811660048301528816602482015260448101869052606481018a905260009030906381660d8c90608401600060405180830381600087803b15801561395b57600080fd5b505af192505050801561396c575060015b6139ad573d80801561399a576040519150601f19603f3d011682016040523d82523d6000602084013e61399f565b606091505b506139a981613d05565b9150505b604080516001600160a01b03808c1660208301528a1691810191909152606081018b9052600090603c90608001613307565b6000808215613a06576139ff8b866000815181106134f2576134f261440f565b9050613a20565b613a1d8b8660018151811061355f5761355f61440f565b90505b604051632059836360e21b81526001600160a01b03808c1660048301528a166024820152604481018890526064810182905230906381660d8c90608401600060405180830381600087803b158015613a7757600080fd5b505af1925050508015613a88575060015b613ac9573d808015613ab6576040519150601f19603f3d011682016040523d82523d6000602084013e613abb565b606091505b50613ac581613d05565b9250505b60008315613aef57613ae8838660018151811061355f5761355f61440f565b9050613b09565b613b0683866000815181106134f2576134f261440f565b90505b6040805185151560208201526001600160a01b038c1681830152606081018e905260808082018590528251808303909101815260a08201909252600091613b56916007919060c0016142fd565b6040516020818303038152906040529050613b758a86158430856126d8565b5050505050505050505050505050565b6000808060001985870985870292508281108382030391505080600003613bbe5760008411613bb357600080fd5b508290049050612c7f565b808411613bca57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b60006003821115613c985750806000613c5160028361449b565b613c5c90600161445b565b90505b81811015613c9257905080600281613c77818661449b565b613c81919061445b565b613c8b919061449b565b9050613c5f565b50919050565b8115613ca2575060015b919050565b600082613cb4838261420a565b9150811115612ef15760405162461bcd60e51b815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015260640161027f565b600081806020019051810190612ef191906141db565b60008085851115613d2b57600080fd5b83861115613d3857600080fd5b5050820193919092039150565b600060208284031215613d5757600080fd5b5035919050565b6001600160a01b0381168114613d7357600080fd5b50565b8035613ca281613d5e565b60008060008060808587031215613d9757600080fd5b8435613da281613d5e565b93506020850135613db281613d5e565b93969395505050506040820135916060013590565b60008060008060608587031215613ddd57600080fd5b8435613de881613d5e565b935060208501359250604085013567ffffffffffffffff80821115613e0c57600080fd5b818701915087601f830112613e2057600080fd5b813581811115613e2f57600080fd5b886020828501011115613e4157600080fd5b95989497505060200194505050565b600080600060608486031215613e6557600080fd5b8335613e7081613d5e565b92506020840135613e8081613d5e565b929592945050506040919091013590565b60008083601f840112613ea357600080fd5b50813567ffffffffffffffff811115613ebb57600080fd5b6020830191508360208260051b8501011115613ed657600080fd5b9250929050565b60008060008060008060008060008060008060e08d8f031215613eff57600080fd5b613f088d613d76565b9b5060208d01359a5067ffffffffffffffff60408e01351115613f2a57600080fd5b613f3a8e60408f01358f01613e91565b909a50985067ffffffffffffffff60608e01351115613f5857600080fd5b613f688e60608f01358f01613e91565b909850965067ffffffffffffffff60808e01351115613f8657600080fd5b613f968e60808f01358f01613e91565b909650945067ffffffffffffffff60a08e01351115613fb457600080fd5b613fc48e60a08f01358f01613e91565b909450925067ffffffffffffffff60c08e01351115613fe257600080fd5b613ff28e60c08f01358f01613e91565b81935080925050509295989b509295989b509295989b565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561403b578181015183820152602001614023565b50506000910152565b6000806040838503121561405757600080fd5b82519150602083015167ffffffffffffffff8082111561407657600080fd5b818501915085601f83011261408a57600080fd5b81518181111561409c5761409c61400a565b604051601f8201601f19908116603f011681019083821181831017156140c4576140c461400a565b816040528281528860208487010111156140dd57600080fd5b6140ee836020830160208801614020565b80955050505050509250929050565b80518015158114613ca257600080fd5b600080600080600060a0868803121561412557600080fd5b61412e866140fd565b9450602086015161413e81613d5e565b604087015190945061414f81613d5e565b6060870151608090970151959894975095949392505050565b6000806000806080858703121561417e57600080fd5b614187856140fd565b9350602085015161419781613d5e565b6040860151606090960151949790965092505050565b600080604083850312156141c057600080fd5b82516141cb81613d5e565b6020939093015192949293505050565b6000602082840312156141ed57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115612ef157612ef16141f4565b6000600160ff1b8203614232576142326141f4565b5060000390565b60008060008060008060c0878903121561425257600080fd5b865161425d81613d5e565b602088015190965061426e81613d5e565b6040880151606089015160808a015160a0909a0151989b929a5090989097909650945092505050565b600080604083850312156142aa57600080fd5b82516142b581613d5e565b60208401519092506142c681613d5e565b809150509250929050565b600081518084526142e9816020860160208601614020565b601f01601f19169290920160200192915050565b60ff8316815260406020820152600061431960408301846142d1565b949350505050565b600080600080600060a0868803121561433957600080fd5b855161434481613d5e565b602087015190955061413e81613d5e565b600080600080600080600060e0888a03121561437057600080fd5b875161437b81613d5e565b602089015190975061438c81613d5e565b604089015160608a015160808b015160a08c015160c0909c01519a9d939c50919a90999198509650945092505050565b6000806000606084860312156143d157600080fd5b83516143dc81613d5e565b60208501519093506143ed81613d5e565b80925050604084015190509250925092565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561443757600080fd5b8135612c7f81613d5e565b600060018201614454576144546141f4565b5060010190565b80820180821115612ef157612ef16141f4565b8082028115828204841417612ef157612ef16141f4565b634e487b7160e01b600052601260045260246000fd5b6000826144aa576144aa614485565b500490565b8481528360208201526001600160a01b03831660408201526080606082015260006144dd60808301846142d1565b9695505050505050565b60006001600160a01b038088168352861515602084015285604084015280851660608401525060a060808301526131d760a08301846142d1565b6000806040838503121561453457600080fd5b505080516020909101519092909150565b80516dffffffffffffffffffffffffffff81168114613ca257600080fd5b805163ffffffff81168114613ca257600080fd5b60008060006060848603121561458c57600080fd5b61459584614545565b92506145a360208501614545565b91506145b160408501614563565b90509250925092565b6000602082840312156145cc57600080fd5b81516fffffffffffffffffffffffffffffffff81168114612c7f57600080fd5b805161ffff81168114613ca257600080fd5b600080600080600080600060e0888a03121561461957600080fd5b875161462481613d5e565b8097505060208801518060020b811461463c57600080fd5b955061464a604089016145ec565b9450614658606089016145ec565b9350614666608089016145ec565b925061467460a08901614563565b915061468260c089016140fd565b905092959891949750929550565b6000602082840312156146a257600080fd5b815162ffffff81168114612c7f57600080fd5b600062ffffff808416806146cb576146cb614485565b92169190910492915050565b62ffffff8281168282160390808211156146f3576146f36141f4565b509291505056fea26469706673582212207297482c1160a9764960dc13eed91ff1f0b54e2b14dbec7d633a11d6d1b85fb964736f6c634300081100330605581d024780b016f673c28d72c2a0b25e3b1b34ea52d75f6bcab5568d2f75590f014307511e19473003e41647b124f4469799aa32fedc4939dd35c7e9a9803bd2792615b9efe4bbdadf035fa478d0ec01fe5889e2698ff84413375296646e9e8ccffc42deccca37b1501e05581d0258a0a9a121ce6f85398c8d418825c3489cea4a26c283f7671b065e7607011bffffffffffffffff0219810005581e037cc6cb3bad304e7cba2026e682aeb1d32bc79bd21ca0e37a9ddff99e8004020385a6d4395ccc68711e87b27ad47bf1e62223aa6f47ea001257fd12a0255c753d05581e034d0b4b88ede4590d20e92d56c0048699b7123f64d772ddb2c871b8e89004020325255de2572bf7cc340b0423033ec76a1f5360f59455e22b6f028463788b58f90315c9b0c449eb5f7c6c53d46b70c7abefc89446c9ae129b1c9bbcc9287d00356f05581e032b3288ed96f83f8f4b66f7e9fae2bd7990396661950d7570bc4779a500040203ae1af30a21312b72edcb045f5268155e027b81270fe04dc2921f94bb804705b70321754bf7895b8714445d33ee8983b68a6ba8fdd6d4e100c0d35d03c09ec29a0d05581e0360ea973012cc928869fc6ba7fb3a96ea93662a9afb25d4117c26c5805007011bffffffffffffffff05581e0364c8f8aa07a81ab6a8489f3bd05500e81409f60771b3ce6a242832e3b00c024601001d1bf80003e8946f33b0aa21057f8bafdc6ca1c56bfe762de2909a2b6b0591af775188a07e05581e03a45e241205e275862b9ec636ea77005b94954808628462c6e28eea231004020219d9f703e1bdc0399f58ed0725334bdaa9827a1ca7b9b7eafc8779ee8bf3f8d9dc19401a03a7a00cd25a717a40556c25f6cb5e816ced2bb6acff3b50a02f69d0343d893db103c05e9f0d0a6e953add7c99892a3a393b93339ac9c323e3c823caf5ada66e2e030382066068d053c1b60bddaffe6ab2e8d48d22ff40971d5ec302583d2348fbf7820317de30a6c7d170f8d75bcd34709aeb104849f7f20d26152dba79d76097c69139037b0de7d4431fa725d70272183b5ac4437acdb5d1778a424929813bd877e3d1960219ffff03a9651848d03a67b954e499b3ee16ebe80f7c1221eaf24a8d907567521004d53a03bc9b8d26f7608e9b3ba5229ca7a72f7a250e64612e9b1d641c743bd9f2a8456b03a2bc247e4d85d749c456db870b57d96911d98389ce87a5bbf983c90769d307db0335d5fd4b589e04445d82cb4a06f1673cd102b74442ad831be63d091722e1cc300347b7b005a780fbc6e4283becaa77e36267ee47fafa987f4d6d02dddc80813e6a039282afc00115dead8a51239070769a2700e57777a70b6172fb68bf0d8ab14e680300a8bd847ee9db06cc62ec96430bb2bafc7f6de7672c6064b4157da5b7d2918703f992e31e6cca0c2509a7592ab2d407bc53cbbb5e7c586f20a5818519487661c703b9f4160b402243357ff82c43f531f616275b26fa34311bb2aa154d69bd66184203a53aa14ff81adc81d55c91736bd6542c62495d7b180265764687d5b50573552803a3b4dab63b7b6a3b12739fed87d0d2347397e59919296a4895b763449bf3cdf30219ffff0219ffff03588daa7123b5c599dcc11452419f9f6eadc9c47eb1472ed19a6c77de463cea8d0219ffff031654593080e822a000f28ba5fd49a2f21f4095719c0433ed5e5a73c65523e6cd03bf04e9961a3ab0b56e115c31b350cf9a916b65dfc90c1f1983c9864ba254493f03ddb3220f5970c730c2a41263f0291e1e534191822c4e9aa0bd193485c7378caa03649efe438e579b0168f46e89093ff2608e73fc554cf52dd597ff231251b68efb035631df65bb0aaa2f9868aa98731a0f37a5a47b822b4a88e6642a70d66e688109030004ec52512f3711c1200adbcd36712c9c9fa64947ae565b53cd82c598ca800e03f2f218f24c76b3619b1672722ea24b94a24b54c0e9b0362b0860d356cd6ac02103cce717324af845d3987abd840762692c09581afeb0967c47a5233fa019c12e4503e86e26c6d7acbe8dd15d23675c514eaa154552b43756b2cfdaf6d12697eafeba0325a6017d3d462ce20b57f28a14de0ca4e1907d2a3c164a2d54100a6fee48ba2c0397153aa22ec766dce8781c5062597c7814ca555c68fbc15eb58c9cd63225d3170387baa0660396bbb4c909b81907da50e6c813f1a4ae09e60a7123b289411ede3203c575c30565ab99275c2708599722e442768ee101f8c13d5cc7ec9d2e18e436d303b26903da0b523290b3c343b2c96ac6d8450491b744b8029783342cd413ae25d203a6bc70222b45ca0cec08a02f77459bd61645f4a2a9da6a77930cc0b9afe15a05037abfbf428ae0dd0b5fb8c167e964e4f7fc2e7dd2cfaf45f2a9b28adb456dac8303c2c5cd15ce25b7bb19b3dd4f3ba2c0b39a1d745268c9ac1df9cfdd99b0ba832203ab6b5c7d9be139afa48d27e9dcfd5ccedb758bdeeec35b04690eef45dfeb7fc203a8090c564f9d890628bb290dafcc2cdb9058267552fad2de58ff3d7fabc1fa9503561cd7fdc05e144557db5d04cf61cd5a56d608d168066f3eadb2aec31dd6e61c03b8fb904f7f620cc749cea450925ab1252c668bcea2c40d5d905b2f7d2ba0230a038107e9b32b10473e26af328bdd5ddc960e5085d00e3758142526e6a3429923570343feca1081e8798b29673073d8839a04c7e46c11a0068f2ab5a525bbc82ba6d603c154a69179256c22a2d22d5b69abb4b7e57e32363110a10c96e41e36ef5636ca039a05ed01630c6ca9894d35d47fb95bec5f3af6079d002f04ca2dfc1b883a0cc503507a46280ba92439226e7492dbb650ea8cbb6902cf10a6d71bda48c781af558c03141b7d614c9ef887555e6e4a31da77043232531f61894892d6a752636304d2f403db5839d2678e93bd23732e71688ec7c9644df3a0ea368bf88e342f82be188adc03289be04f8d30f863959795aa8ec36b54e05b6f98e48541cd469889e4b51fc59c0319f21168dcbadd9f2ef793f28ba6c7816da83faf18e2603c170d71b3c00a34c8039422b5b7dd5453a8d2cb33049a9f214da3c772f34a9beef61aa5bda9e45bfe6605581e03f061439ae8b0706b1e686a669a486f3564e2110fbd57002aaf23a8e1000c0346fff9594f0b6805581e035c171cb82d355e8ced53a356d86a019a55068c34e5cb628fe57beb35c00c014773e4b61473320005581e03f8e4551ef498f3aa088fd22f62c96eac64ac2a2bdf7f0ca4ef9c99124004010349c07081580fef2a366f5565c7ac0c105d3d698ccc9ca71f2c305ed88ebfbaa3038ca398b7bcb18dbb94adebc256f9c8ef828a8995bb2617b47ea3ef0e201778c805581e0398ddd927ccc3738ef875bc4d1d1d00cee7040f68aa2814583785113f100c0346e76c6e3fa120032b2f4da7bcb7314e94077cf64b6d58d79417d48b8cbc8139dab35c933abd198305581e03a654e65f68913c3c1824c5fb96afe9cdbe176a0a7b083633abfbf0e1500c01471f180321426c0005581e03ad631c122d028050d3f1ab31f23562fe40d49d4552b94923406e9139200c01471476c2ee2eed980397cd4651013a8fb31ad96ed42ba774dff528a78f7c7e244ed3cf92b9d805328805581d02375edf2928d4d6c3ae534a9fa4caad005ea32562e6c40139702775db0c094821702867a4a3ec1805581d02593b0fd1e6c3f6760fabc03d06a1a3a3496899ad4ff3af3a41bd509c040502192004021997de03d4190fb30573a8c147acb4d1a3abd61c3ba3d6220ad3defa5926a74b44ab75bc0331f94072300d4eef1e06b9f1a211f0a54b73c1be2767ae2a22444537ef81a77a034185f1d3079d94e04abf6057a8d843e92bea2ea0caef5f5b83efd2952753319d0383ca0626ea8a1a100eb01a58021d5b33932e3cb82749be430e16530ba4d646d603aed04338c7aca912251acd0d644447f42cbc084abab46915478e8ffe8b902bcd034cc349d9fc9cc15950a076a899409e9eb2af226c8358a83d9be588ea26332b1803412080c7f013e9120ee2b88432c24d43bc950eddb0c32e2a28dcdc521b8518c503cef9cffb6f2709a36836c76556034db785ec16f6632f0b9c10f278b3598f7d4a031e1e4ec945f7c937e43544df68e29b03d4ccc92c7ba14b155efe81b7b90c0f8d0367cfa8d704c1349487d288befea8003dbfd46d0b05cdda563b5f76a9f50d4a1f034826c172fcf1c8ac59085cc9701e6dc940f98ca4a8e583534d885f773090c35e0305efe86bb93d51dac33b4dee5b45aa1a82dbb225a5bc9f2f3dcb06d64aea0e3f0219ffff03dbf8979ea503d3953df15209574294522e7e55d50c97c3cc029dcc8b46e3e0b1037db07a64ec3f856dfe6ca35215f5774f4f45e5e3deb4ed796b008e8fb9847f1603f91f2fccfe5ac6eb631266fbc0d3005ff470753038a4435c139b05a8ac8171c3036caf0eb86c03ec2f8f164ee8258220e97e76a444bf8e09ad2a8cc363e3c3a4f1033ce4f0f95bbfd7f7d505b570c5aaceaf1040064c19e155858b648e05136dc896036f110def1da542ee662c815b5348a0b2691db7c7db0509915cde9b9fa39c35e2034ae536118150f5196db1015baa099b774f37f7cf6c190d9d09c5b4bd97bdf8d70326fec1bca038113e1248730a5fd79331b1ef8a1416b2ff55066a6d918a80f0a10219ffff03621de8be64e36da78b4393c23549c3308120e4382b11af5959b3a0acaeafdbf403ce9005222732db086f3aa1641ee2ca4084e5a408c1b7f4bcb735e17c9b2fcffa03ea3933e848f315e7c45487180c3f1404ae961c758174333dfcecd7c3da6ed35b039d08aabb519ebd18aac0dcb41752b5dd11e19ca859511de548680bee6dd7de8203135bd5ccf071b9b451b3c85bb9c5f189cf75086f2d835c9194da522151e44e17034511b788a4e74815a53bd7913cf8bea3b9bc212b95aab07328bb4bfd75e6036103debd09893d31e86f93adf12a1234bffec0c058c1d792715231aaf1595aee372603f5dc50adc19a9fe700c79f026783c9edee2769794600e10b4da58decaaec73f70219ffff03a05bed8d9a0834184144fef2a19ae37b9e7ec34ea18dc1b189bd77c8e8995b6d0219ffff035e3b9f22276a2cd8e6cf6341c7c93ec6aa2f35464b0ec8f4a9c33b43f47b6d9f038d19f15330f29c6f678999bbb9f300ab14c8a75a026b74d43734ff35ccf0899a03fdf78b621011510bfb478827deb471699d8aaf30d619357b9421ea033878c06803a1794476cda86644d09e2fb477c978f7c049ff94aca71db5b3da5253e5af518503efb79f4995c2ccc5091a9e86f830251b5e31ef81fbae1f4907d1ab7abbe55b830318aea6a25be40006ac8986c5dea939f85064df31b7778322e160c497d8cafe2b03a754a362945d49b2c215e4f8f521b4b474d3c5d7175a2e1748252202d8ef801c03335fbbd67eed801ba3cd66a05a9b885a2cdfd174e1be720fdbe69620857fd4cf03f26c4b5fe7156cb6b0192c1988161cb90845ddcfd2dc1e82bb4143da4db07de10328e3afc3f5fe77d97ad2196ad1b84f747da2246aca6dcb33aa2e6e53c473cf15032489b27b0d125a69639eab70adf02b41ec03ca891cff84a858c5068eb4c2045b034aa6d79e6cb8b918fa1a00860f780df616be498339e30052e953cc5a0f2dd0b103e5f8dd0555ffe87670128b63e0acad9434d64b71ead4b531e9a4a83320dbbc2903e0cacabb8158ea753b882bc963109be587cf346eb828b3f8b10332e629d0139903870463f7b7c4cf3d400e270ac6a432cca81427c310000f77e5e69c71c4323a070359ef20e3a150464576f3ef1c8b8d6a6b39fa4253bff3b71c831240b6c0b9469d038afb0eee761b0fa281c5f1f030ff32f47a5489f5813619b5d6db03d682098ea703c852cc8b1d1053fc5269108ea828624bfa9daf96b669d6626c1003002372334a03380e864a1e30b9f3786bd3ec9ecf529d94c312d3c9f70eaafa11f9a2cc43916f0390c4bac665f917932ea4b6517a7b7397ffb8a3df8b5914d23f8ced82f03c433e03d45316ca178fc0de4602f8d6912c3307540ac192cce9aa0733cd22879762548503adf1f5d3ec343cc834e542360dbe16e097daf42fe64c835c6208e0e21832943d03a01dcdaa7f0137233a5727f884201795ff9887fe59d8fbf04cff9a6cba53a7c803edd0e50005768db2cd700c02764a6eff7e8033d5551d616e1b757e0af74e3f1303832e6bbf67aa7a1849d07ada337b9361e65fa76284e878dd26c87a5f2028e08a0323bdc877bd8d1e738f97ec82f9f91260a0777ce2373a56410a0bd51f07ae88ed034f3a67a37f01b1d04b3b3e274b7f6927dacbfa89f0ba3568cc1741814548fe7b03e01767a2c23c6433759ff868bb86e9d9da00e5aeeba3dc66c0f31ec2f7dce1f703ab1a7cbda6a4a894683d64ed57f56046235b51d48ac00e4fc12e78ed6f12128f03d81d98dfdef492ca23c10102d44a0dbe8725f8dfc7d8c0e8f6658fca657c096a0372013159cfd44e88c5da7345d6864c4fa8e8a8227ff3a48c9416ee0980356b9205581e034e04f5120f3df9092783882d83d1216ff43c34196bd4a6c0fac67309a0040405581e0388c9dfb171b7d7c768605edca5b852d934b39ae9e8c5d59116db5979200c014705a5beb013a50005581e03b6011d280a2d896e06e004acbbe16c50fa852e6fd417f3ec85a9a5d3100c0245915fd60740035a62485b9d109e84dccfdd8c050b5a6d8cd3584684fa683f5bc9c12ee0bf031201410405581e030fe4648b11b20124883181106a6161245cacd74b647cabad8292a0c9f0040105581e034fb3e762f0b373e542cd910846b253d05c57abdb0e3c10cf9301bcfdc00c1819482a8df24949fb9da203d80cd839dd3957d572b90780ada202a13936fa2875daea94216263371e9ef1d20605581e03370b14c878c2fc4f9a2d0ade93e8f0d2ad39de172cb1eba3bce4dc4c3007011bffffffffffffffff0366a4ff6309a49b7dbcf4a027c14095aba522a06005455c5bcd2ca794641992c203619e2d590fc3a1ded007b9664798d2b39b9f69ee085247d41743d8629ef8d7f605581e0325898714899fa216c8138ad0e9f2ea56bd555d516718f37423d9c7eb1007011bffffffffffffffff05581e03bffaa889a347cf308f5213f396255e44a0f8bb92d96ef8135a0a6c08800c02470f3486bfdf3c0005581d02d0395d57c388241ea96e5c7766519259015883379a21189f8dca116e040804591143608060405234801561001057600080fd5b50600436106100725760003560e01c806385eda2de1161005057806385eda2de146100e8578063af15d786146100fb578063ccee33d71461014757600080fd5b80630965d04b146100775780633ee5ef1f1461008c5780635886216f146100b2575b600080fd5b61008a610085366004610d52565b61015a565b005b61009f61009a366004610dbd565b61017d565b6040519081526020015b60405180910390f35b61009f6100c0366004610de7565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61009f6100f6366004610dbd565b61024f565b6101227f000000000000000000000000a0844e046a5b7db55bb8dcdffbf0bbf9c6dc654681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a9565b61009f610155366004610e09565b6102f1565b60408051600080825260208201909252610179918491849133916106db565b5050565b60003373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000a0844e046a5b7db55bb8dcdffbf0bbf9c6dc654616146101ee576040517fa454419900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205461021f8282610ecf565b73ffffffffffffffffffffffffffffffffffffffff90931660009081526020819052604090208390555090919050565b60003373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000a0844e046a5b7db55bb8dcdffbf0bbf9c6dc654616146102c0576040517fa454419900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205461021f8282610ee8565b60008573ffffffffffffffffffffffffffffffffffffffff81163014610343576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000001111111254eeb25477b68fb85ed929f73a96058216146103b2576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8284017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081810135918290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40810192918101919060018801908881037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f01907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80810135906298968090610489907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0013582610ecf565b610493908d610efb565b61049d9190610f12565b97506000633b9aca006104bd63ffffffff60808a013560a01c168b610efb565b6104c79190610f12565b905060006104d6866040610ecf565b67ffffffffffffffff8111156104ee576104ee610e71565b6040519080825280601f01601f191660200182016040528015610518576020820181803683370190505b509050602081018688823786018381528a83016020909101527f01000000000000000000000000000000000000000000000000000000000000008c8c60008161056357610563610f4d565b9050013560f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361064b576105a3602089013589356108a3565b60006105af8587610f7c565b60601c90503660006105c4876014818b610fc4565b915091508273ffffffffffffffffffffffffffffffffffffffff16631944799f6105ef8d6020013590565b8685856040518563ffffffff1660e01b81526004016106119493929190610fee565b600060405180830381600087803b15801561062b57600080fd5b505af115801561063f573d6000803e3d6000fd5b5050505050505061065d565b61065d858560208b01358b35856106db565b81156106885761068873ffffffffffffffffffffffffffffffffffffffff841660808a013584610936565b6106c973ffffffffffffffffffffffffffffffffffffffff84167f0000000000000000000000001111111254eeb25477b68fb85ed929f73a9605828c61099d565b50505050505050505095945050505050565b843585016106e98185610a66565b61071f576040517f4b57606900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061072a82610b37565b905061074766038d7ea4c6800063ffffffff843560901c16610efb565b6107519085610ecf565b9350600061075e83610b70565b90506000845160a06107709190610ecf565b61077b906020610ecf565b90507f0000000000000000000000001111111254eeb25477b68fb85ed929f73a9605826107b1565b8281848460045afa50505050565b60408a013560208101818c0135818d013560601c308114156014831017156107fd577f5b34bf890000000000000000000000000000000000000000000000000000000060005260046000fd5b506040517fe5d7bde60000000000000000000000000000000000000000000000000000000081528c8e600483013785820160048583010152818382010193508a60048501528b60248501526040890135604485015286606485015287608485015289516108718160208d0160a488016107a3565b84810160a40152600081878f016004018183895af1610893573d6000823e3d81fd5b5050505050505050505050505050565b80156101795773ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610909576040517fa7fd379200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff92909216600090815260208190526040902091039055565b610962837fa9059cbb000000000000000000000000000000000000000000000000000000008484610cb5565b610998576040517ffb7f507900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6109c9837f095ea7b3000000000000000000000000000000000000000000000000000000008484610cb5565b610998576109fa837f095ea7b300000000000000000000000000000000000000000000000000000000846000610cb5565b1580610a2f5750610a2d837f095ea7b3000000000000000000000000000000000000000000000000000000008484610cb5565b155b15610998576040517f19be9a9000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003681610a786101208601866110a8565b91509150600181830103803560001a6004820391506080811615610a9d576020820391505b813560e01c4211945060031c600f16841915610b2d578060180282035b80831115610b2b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe88301927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec013560601c833560e01c888203610b24574210159650610b2b9050565b5050610aba565b505b5050505092915050565b60003681610b496101208501856110a8565b91509150600181830103803560001a60801615610b6857602081033593505b505050919050565b600062ffffff823560b081901c82169160e082901c918491610b969160c81c1683610ecf565b9050814211610ba85750909392505050565b804210610bba57506000949350505050565b366000610bcb6101208801886110a8565b915091506001818301036000813560001a6078811660031c6007821692506080821615610bf9576020840393505b6004816018020184039350505086868260050284035b80851115610c95577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8501803560f01c9990990198947ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd013560e81c428a1115610c8b57828a03428481038302908c03860201049b5050610c95565b9250889150610c0f565b5089610ca75780870342880383020499505b505050505050505050919050565b60006040518481528360048201528260248201526020600060448360008a5af19150508015610d01573d8015610cf757600160005114601f3d11169150610cff565b6000863b1191505b505b949350505050565b60008083601f840112610d1b57600080fd5b50813567ffffffffffffffff811115610d3357600080fd5b602083019150836020828501011115610d4b57600080fd5b9250929050565b60008060208385031215610d6557600080fd5b823567ffffffffffffffff811115610d7c57600080fd5b610d8885828601610d09565b90969095509350505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610db857600080fd5b919050565b60008060408385031215610dd057600080fd5b610dd983610d94565b946020939093013593505050565b600060208284031215610df957600080fd5b610e0282610d94565b9392505050565b600080600080600060808688031215610e2157600080fd5b610e2a86610d94565b94506020860135935060408601359250606086013567ffffffffffffffff811115610e5457600080fd5b610e6088828901610d09565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610ee257610ee2610ea0565b92915050565b81810381811115610ee257610ee2610ea0565b8082028115828204841417610ee257610ee2610ea0565b600082610f48577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015610fbc5780818660140360031b1b83161692505b505092915050565b60008085851115610fd457600080fd5b83861115610fe157600080fd5b5050820193919092039150565b73ffffffffffffffffffffffffffffffffffffffff8516815260006020606081840152855180606085015260005b818110156110385787810183015185820160800152820161101c565b506000608082860101527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0915081601f820116840190506080848203016040850152846080820152848660a0830137600060a0868301015260a082601f8701168201019250505095945050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126110dd57600080fd5b83018035915067ffffffffffffffff8211156110f857600080fd5b602001915036819003821315610d4b57600080fdfea26469706673582212209c7fa27ec20c16ed309e2009a17458ca2682f2e05f31b135d716c14e5c5730f464736f6c634300081100330605581d028dbb57d09859f98d4ef1c12609c6dd81ab9cdf67a9ef0107ae88fd5d070219114305581d02367e83bdc5b2540dc7ff0e4f2c4834fdeb560e843f073e345332d47304020219844005581e03cca4043eafd1273cf1cd2a25d2ca7fdb91e43eb4996b837a13ae2361000c02473f828135eeb60002193abf03561e9a443a45c68b38a1fad181f3e7f854fe69b9cdaf541366bd9faf1b1302890352f99df969526d772bd8aa4eb4f078cf2c9254bc8b70c4996ba413d828edefcc03b3d60a0bca5c222214d5cf9d8fdc5c8b5a4373daf1572c0d7feba426570984c203b8cffd5fe4a33bc628ed73c1e8f2049db16065fbabbd0754623dd8b9d791205a0219ffff0314eaff90f275ae8f23c34e0ab323befdc34fd385e1d5be0fd9b7a12358f3216a0376359bac74abacb13a0b310476f0defa85bb36c989184411ef7a840d680d6a3c036095c9e07401b6c3c66acc2eebd4345ddbc666a945740a4cef6ddd51cca7fd3003900f8a48e8b3e8c5856c2836be92d70f7bad2892547bc03f5006ccae6889c6d103af978ad16333c422be237b0f9bce3931ea3b55749cb366953c73f92975e3315d03e096c4857db808e2aeffe298c3530f7fbaf09a61fbb6c44795ecc8920876a10b034a97f0296ef13f2461bffe215915928653b89e0cd819be406311bdfe8cc78dd103df7467eaf7c4c0caf5f7cdff0f52eba1ff1f4a142234e6783ec75cc4b9ca4c100357d4ad45dacd7a904a3f14e1b8f35cd7f56fa13ad666f8fb95a9fc0001b356c103575f31fb93261c8fc104d28f90f9ded3072f9ec8fa5ba2245f2bb03ad6f6577f032cacc79172235c3d0ef8ffd304fce38cea82bcc9e2d8cd32d0d828979c5e70ea03513b6df8e33b36dea29d8c1f84cf5fa22cffab0a565ab2a36f60ef7c9964ad5c03a6ecbfc2d6ae9a9cbab6645475e737785b2c1f1544d4d42f210245d86629ddeb039e513540038ce79417d5d5bb24a3ad2e42a5ba34e70157c34c13aec7cd970a5f0362207f5505fcd27e675523bb87b722981277562a6b7658ad5c5533305a28e49e0219ffff0377090fa538cf14a62917212e1ae8575b958cdc5bca8c87d330717c15afeaf535038841102bda775686fd9bdf43f301cd073ea59a4869580c5bf88f9a5a876f3d8e0219ffff03ebee6c87ce7de17a5ec4fcd3f083cfd21e58b6a97bae49c6fd37fc2ece6d8dd7033131de2b0e426f7ae88bd9e735566b8ea714fbc404545d3f10acf619c6d8aae7036db1e356bea189efdafb1d9cc72ecf16d0b2b356ebe56d73b5f4b1bfbd04b94003398fc12c0837ac4052c7c22bea2b6f1ccb2b48c7470d67db18e600c3ecfaccf903bd10bb6be0c2507fd852746354723f52f1aa0a1f004bd9aad4548ff453dc661e03750b2ce7394f296630cade5010ef98674ae103666b5b98ed98575ef58ad01d440396797fbd90c73658a345c8f2ed11fd1c93a64affea0dcbf1a9893fdc1dbb7ab303a4aa43ac6978097446b330f4da8eab8e6f528292c82a5143db465fad2474891d0310411cbdc5f6bad77d44eecc38079e4ee0affcb3e117f020734bd1773a08c4c1037d912357114de4b06e1adfaaff89c0802c8ef363519662df91bc18c6a56a1e1503004d96b2494162c4c7bc5019e246ec0170d72a83d4069b09d8afb125fc744f9f03b13093905ef0f4d8e919bc19a0d4d6ca5558edc35883cf2777c774969b492b8503fa1443c72230eb6f73fda30fc10621346418afbb249717953deb72441b3fa53e03755058b0e0e8d972c0b480e4ed45967642900bac76e2309f99091a95724ee5ba03ed84a494fcdd8e21a4c328a9708e1a54c6923898c126e076f8954db9d8980a9c03913d9f9b907ecd58396b1358a74279a72480209098b0885d1c41fd3548389d3503643b75e4cccc3e3b85ec6e9bc66832377f8e9d2961a472c60d13115b30ed30a003deb6c9a78aabbecaae127e413e596835b3ea6994bd13cde5c89faaa4dfa41bc405581e03bdea24d695aa98d70afd2c0fc1755ea29d5d3428fc4ab98384d8774620040803628390aa4f99ba0ce4cc06cc94697c84abd98649f0ba23eca032c4df1a9b640e014109039133a498aa2c822adb198e8a5244895b66e3992466d8f7f5f76bfe391180a42e03cb05ff78db8c0b1a2549378cfe07335d87f7e7622a607e241fd4e096c6c32024034b19192fa31da37f5fe22a2d59581cccb8bc3641aa05fe605cc37d9a8619e0d704595d036080604052600436106102385760003560e01c806370bce2d611610138578063abe3bb66116100b0578063cf6b0f521161007f578063e30c397811610064578063e30c3978146106ff578063f2fde38b1461072a578063f47b77401461074a57600080fd5b8063cf6b0f52146106c4578063da815cb5146106df57600080fd5b8063abe3bb66146105e0578063addd5099146105fb578063b0e21e8a14610629578063c42cf535146106a457600080fd5b80638129fc1c116101075780638da5cb5b116100ec5780638da5cb5b1461058357806391bea840146105ae578063a4b2c674146105c957600080fd5b80638129fc1c1461054e57806387cc694d1461056357600080fd5b806370bce2d6146104e3578063715018a6146104f657806379ba50971461050b5780637ecebe001461052057600080fd5b80634f1ef286116101cb578063627cdcb91161019a5780636992aa361161017f5780636992aa361461048e5780637034d120146104ae578063708ef9aa146104ce57600080fd5b8063627cdcb914610459578063653608431461046e57600080fd5b80634f1ef286146103f157806351114ffa1461040457806352d1902d14610424578063579077b81461043957600080fd5b80633925c3c3116102075780633925c3c3146103515780633a16b768146103645780633c2ab6bf146103845780633f8fc233146103d157600080fd5b80630c340a24146102b3578063133ba9a61461030b578063336d82061461031e5780633659cfe61461033157600080fd5b366102ae573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000a39bb272e79075ade125fd351887ac16146102ac576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b3480156102bf57600080fd5b506101c4546102e19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6102ac61031936600461520d565b6107b8565b6102ac61032c36600461531b565b6107d3565b34801561033d57600080fd5b506102ac61034c366004615355565b6107e8565b6102ac61035f366004615370565b6109f2565b34801561037057600080fd5b506102ac61037f3660046153d9565b610c29565b34801561039057600080fd5b506103c361039f36600461540c565b61016060209081526000938452604080852082529284528284209052825290205481565b604051908152602001610302565b3480156103dd57600080fd5b506102ac6103ec36600461543f565b610d5d565b6102ac6103ff3660046154fd565b610e26565b34801561041057600080fd5b506103c361041f36600461554b565b61101c565b34801561043057600080fd5b506103c36110d3565b34801561044557600080fd5b506103c3610454366004615585565b6111bf565b34801561046557600080fd5b506102ac6111f5565b34801561047a57600080fd5b506102ac6104893660046155ca565b61124b565b34801561049a57600080fd5b506102ac6104a93660046155fb565b611306565b3480156104ba57600080fd5b506102ac6104c93660046156ba565b61134b565b3480156104da57600080fd5b506102ac6114e9565b6102ac6104f13660046156f3565b61172a565b34801561050257600080fd5b506102ac611931565b34801561051757600080fd5b506102ac611945565b34801561052c57600080fd5b506103c361053b366004615355565b61012e6020526000908152604090205481565b34801561055a57600080fd5b506102ac6119f7565b34801561056f57600080fd5b506103c361057e36600461572c565b611b9c565b34801561058f57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166102e1565b3480156105ba57600080fd5b506103c36104543660046157c6565b3480156105d557600080fd5b506103c361012f5481565b3480156105ec57600080fd5b506103c36104543660046157fc565b34801561060757600080fd5b506103c3610616366004615355565b61012d6020526000908152604090205481565b34801561063557600080fd5b5061015f546106759073ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000900461ffff1682565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835261ffff909116602083015201610302565b3480156106b057600080fd5b506102ac6106bf366004615355565b611bf8565b3480156106d057600080fd5b506103c3610454366004615832565b3480156106eb57600080fd5b506102ac6106fa366004615868565b611c70565b34801561070b57600080fd5b5060655473ffffffffffffffffffffffffffffffffffffffff166102e1565b34801561073657600080fd5b506102ac610745366004615355565b611e01565b34801561075657600080fd5b50604080518082018252600381527f312e3000000000000000000000000000000000000000000000000000000000006020820152905161030291907fdd526a4e59bb74d0e4e4ab849ded32647b3bcf1df3acc01f4c21e76a8018c7c99061590f565b6107c23382611eb1565b6107cd8484846109f2565b50505050565b6107dd3382611eb1565b6107cd84848461172a565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fa60726e62c50af45ff2f6280c468da438a78371630036108b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b7f0000000000000000000000005fa60726e62c50af45ff2f6280c468da438a783773ffffffffffffffffffffffffffffffffffffffff166109277f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146109ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016108a9565b6109d381611f54565b604080516000808252602082019092526109ef91839190611f5c565b50565b60fb54600114610a5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e43590000000000000000000000000000000000000000000060448201526064016108a9565b600260fb556040513381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa00160802061012f5483908390823590602084013590604085013560f81c90604186013560e01c90604587013560601c904390610ac69084615960565b1015610afe576040517f58bd553e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815261012d60205260408120549003610b5d576040517fdb8d1fb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bc0818984604051602001610ba292919091825260e01b7fffffffff0000000000000000000000000000000000000000000000000000000016602082015260240190565b6040516020818303038152906040528051906020012085888861215b565b610bf6576040517f2f58c7cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c178b600001518c602001518d604001518e606001518f60800151612240565b5050600160fb55505050505050505050565b6101c45473ffffffffffffffffffffffffffffffffffffffff163314610c7b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fa8161ffff161115610cba576040517f499fddb100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051808201825273ffffffffffffffffffffffffffffffffffffffff841680825261ffff8416602090920182905261015f80547fffffffffffffffffffff0000000000000000000000000000000000000000000016821774010000000000000000000000000000000000000000840217905591519091907f1d9e390a0f55a4e3251a1de541b3da1cb012fd85d9b4f0098bcffb70c4f4032d90600090a35050565b805160005b81811015610e21576000838281518110610d7e57610d7e615973565b6020908102919091018101516040808201513360009081526101608552828120845182528552828120848601518252909452908320805492945090929091610dc7908490615960565b9091555050805160208083015160408085015181519485529284019190915282015233907ff4092a7c54e135dc5f273d6675327b7b7838392537d2f7b63f7acbec8c7cd2969060600160405180910390a250600101610d62565b505050565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fa60726e62c50af45ff2f6280c468da438a7837163003610eeb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016108a9565b7f0000000000000000000000005fa60726e62c50af45ff2f6280c468da438a783773ffffffffffffffffffffffffffffffffffffffff16610f607f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611003576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016108a9565b61100c82611f54565b61101882826001611f5c565b5050565b60007faf92fd8295121c3ba2d0dc4f6af18edcd0b3aaeff05fc72c591de6d457ee0c05836000015184602001518560400151866060015187608001518860a0015161106a8a60c00151612418565b60e08b01518b5173ffffffffffffffffffffffffffffffffffffffff16600090815261012e60209081526040918290205491516110b49b9a99989796959493928e92909101615a15565b6040516020818303038152906040528051906020012090505b92915050565b60003073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000005fa60726e62c50af45ff2f6280c468da438a7837161461119a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016108a9565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6040518181527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0016080206000905b9392505050565b33600081815261012e6020526040812080547fa82a649bbd060c9099cd7b7326e2b0dc9e9af0836480e0f849dc9eaa79710b3b929061123390615a96565b918290555060405190815260200160405180910390a2565b61125361247f565b80156112885773ffffffffffffffffffffffffffffffffffffffff8216600090815261012d60205260409020600190556112b0565b73ffffffffffffffffffffffffffffffffffffffff8216600090815261012d60205260408120555b8173ffffffffffffffffffffffffffffffffffffffff167fcc852792b7afae13c99037685c90dd3be44073d4bc32aa8c1b72fd07a2ac537c826040516112fa911515815260200190565b60405180910390a25050565b61130e61247f565b61012f8190556040518181527f7706177c541ba1b858371bfc568aa77450b4713bbdbba62c730d4484ab6c1251906020015b60405180910390a150565b6040513381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa00160802061012f5483908390823590602084013590604085013560f81c90604186013560e01c90604587013560601c9043906113ae9084615960565b10156113e6576040517f58bd553e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815261012d60205260408120549003611445576040517fdb8d1fb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61148a818984604051602001610ba292919091825260e01b7fffffffff0000000000000000000000000000000000000000000000000000000016602082015260240190565b6114c0576040517f2f58c7cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114dc8b600001518c602001518d604001518e60600151612500565b5050505050505050505050565b604080517f454950373132446f6d61696e28000000000000000000000000000000000000006020808301919091527f737472696e67206e616d652c0000000000000000000000000000000000000000602d8301527f737472696e672076657273696f6e2c000000000000000000000000000000000060398301527f75696e7432353620636861696e49642c0000000000000000000000000000000060488301527f6164647265737320766572696679696e67436f6e74726163740000000000000060588301527f29000000000000000000000000000000000000000000000000000000000000006071830152825160528184030181526072830180855281519183019190912060b284018552600d9091527f426c75722045786368616e67650000000000000000000000000000000000000060929093019290925282518084018452600381527f312e3000000000000000000000000000000000000000000000000000000000009082015282518082018390527fa6bc598dcd11f5828a3f69fa224d3a8ef75a327fa851a1085f35a5213d2139ad818501527fe6bbd6277e1bf288eed5e8d1780f9a50b239e86b153736bceebccf4ea79d90b360608201524660808201523060a0808301919091528451808303909101815260c09091019093528251920191909120807fdd526a4e59bb74d0e4e4ab849ded32647b3bcf1df3acc01f4c21e76a8018c7c914611018576040517feb12798200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fb54600114611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e43590000000000000000000000000000000000000000000060448201526064016108a9565b600260fb556040513381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa00160802061012f5483908390823590602084013590604085013560f81c90604186013560e01c90604587013560601c9043906117fe9084615960565b1015611836576040517f58bd553e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815261012d60205260408120549003611895576040517fdb8d1fb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118da818984604051602001610ba292919091825260e01b7fffffffff0000000000000000000000000000000000000000000000000000000016602082015260240190565b611910576040517f2f58c7cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c178b600001518c602001518d604001518e606001518f608001516126bd565b61193961247f565b61194360006128f0565b565b606554339073ffffffffffffffffffffffffffffffffffffffff1681146119ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016108a9565b6109ef816128f0565b600054610100900460ff1615808015611a175750600054600160ff909116105b80611a315750303b158015611a31575060005460ff166001145b611abd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108a9565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611b1b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b611b23612921565b611b2b6129b8565b611b35600160fb55565b611b3d6114e9565b80156109ef57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611340565b60008160000151826020015183604001518460600151604051602001611bdb949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b611c0061247f565b6101c480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f5425363a03f182281120f5919107c49c7a1a623acc1cbc6df468b6f0c11fcf8c90600090a250565b6040513381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa00160802061012f5483908390823590602084013590604085013560f81c90604186013560e01c90604587013560601c904390611cd39084615960565b1015611d0b576040517f58bd553e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815261012d60205260408120549003611d6a576040517fdb8d1fb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611daf818984604051602001610ba292919091825260e01b7fffffffff0000000000000000000000000000000000000000000000000000000016602082015260240190565b611de5576040517f2f58c7cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114dc8b600001518c602001518d604001518e60600151612a57565b611e0961247f565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155611e6c60335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6000807f0000000000000000000000000000000000a39bb272e79075ade125fd351887ac90506040517f9555a9420000000000000000000000000000000000000000000000000000000081528460048201523060248201528360448201526000806064836000865af1925050816107cd576040517fbcfdca5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109ef61247f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611f8f57610e2183612c86565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612014575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261201191810190615ace565b60015b6120a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016108a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461214f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016108a9565b50610e21838383612d90565b6040805160008082526020820180845287905260ff8616928201929092526060810184905260808101839052819060019060a0016020604051602081039080840390855afa1580156121b1573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061222c57508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1561223657600191505b5095945050505050565b6040805160808101825261015f5473ffffffffffffffffffffffffffffffffffffffff811692820192835274010000000000000000000000000000000000000000900461ffff166060820152908152602081018490526000806122a588828786612db5565b885191935091506000806122ba838289612f33565b91509150612315604080516101008101825260008082526020808301829052828401829052606083018290526080830182905260a0830182905283518085019094528184528301529060c08201908152602001600081525090565b61231d614ae8565b4760005b868110156123f0578d818151811061233b5761233b615973565b602002602001015192508e83600001518151811061235b5761235b615973565b60200260200101519350612373846000858c8c6131e5565b156123e8576000612388878787878f886132d2565b909350905080156123e657836060015160200151898560000151815181106123b2576123b2615973565b6020026020010151856040015160000151815181106123d3576123d3615973565b6020026020010181815101915081815250505b505b600101612321565b506123fe85858b600061338b565b61240833476138f8565b5050505050505050505050505050565b8051602080830151604051600093611bdb937fa192ca867b0af2744eab247871e1a6c69fcaeef80ace07b70395b60f43c0f4899391920192835273ffffffffffffffffffffffffffffffffffffffff91909116602083015261ffff16604082015260600190565b60335473ffffffffffffffffffffffffffffffffffffffff163314611943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a9565b6040805160808101825261015f5473ffffffffffffffffffffffffffffffffffffffff811692820192835274010000000000000000000000000000000000000000900461ffff166060820152908152602081018390526000806125668760018686612db5565b8751919350915060008061257c83600133612f33565b915091506125d7604080516101008101825260008082526020808301829052828401829052606083018290526080830182905260a0830182905283518085019094528184528301529060c08201908152602001600081525090565b6125df614ae8565b60005b858110156126a1578b81815181106125fc576125fc615973565b602002602001015191508c82600001518151811061261c5761261c615973565b60200260200101519250612634836001848b8b6131e5565b1561269957612646858585858d613943565b8160600151602001518783600001518151811061266557612665615973565b60200260200101518360400151600001518151811061268657612686615973565b6020026020010181815101915081815250505b6001016125e2565b506126af84848a600161338b565b505050505050505050505050565b6040805160808101825261015f5473ffffffffffffffffffffffffffffffffffffffff81168284019081527401000000000000000000000000000000000000000090910461ffff1660608084019190915290825260208083018790529287015190870151909201519091906127368860008988876139b6565b61276c576040517faf61069300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061278089600085602001518589613a4d565b895173ffffffffffffffffffffffffffffffffffffffff1660009081526101606020908152604080832060e08e0151845282528083208751845290915281208054850190559091506127d3826001613ae7565b9050806000815181106127e8576127e8615973565b6020026020010151612826576040517f045c4b0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506000806000806128418760600151878f60c001518b613bac565b9350935093509350808401471015612885576040517f356680b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b87515161289290846138f8565b6020880151516128a290826138f8565b60c08d0151516128b290836138f8565b6128c48d6000015184848703036138f8565b6128d7858e8960000151878c6000613c37565b6128e133476138f8565b50505050505050505050505050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556109ef81613c93565b600054610100900460ff16611943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a9565b600054610100900460ff16612a4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a9565b611943613d0a565b6040805160808101825261015f5473ffffffffffffffffffffffffffffffffffffffff81168284019081527401000000000000000000000000000000000000000090910461ffff166060808401919091529082526020808301869052928601519086015190920151909190612ad08760018887876139b6565b612b06576040517faf61069300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612b1e8860018960600151600001518533613a4d565b90506000612b2d826001613ae7565b905080600081518110612b4257612b42615973565b6020026020010151612b80576040517f045c4b0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600080600080612b9b8760600151878e60c001518b613bac565b935093509350935060008c600001519050612bbf818e60c001516000015185613daa565b612bd2818a602001516000015184613daa565b885151612be190829086613daa565b612bf081338685890303613daa565b8b606001516020015161016060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008f60e0015160001b815260200190815260200160002060008a600001518152602001908152602001600020600082825401925050819055506128e1868e8a60000151888d6001613c37565b73ffffffffffffffffffffffffffffffffffffffff81163b612d2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016108a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612d9983613e53565b600082511180612da65750805b15610e21576107cd8383613ea0565b835160609081908067ffffffffffffffff811115612dd557612dd5614bd3565b604051908082528060200260200182016040528015612dfe578160200160208202803683370190505b5092508067ffffffffffffffff811115612e1a57612e1a614bd3565b604051908082528060200260200182016040528015612e4d57816020015b6060815260200190600190039081612e385790505b50915060005b81811015612f2857878181518110612e6d57612e6d615973565b60200260200101516060015167ffffffffffffffff811115612e9157612e91614bd3565b604051908082528060200260200182016040528015612eba578160200160208202803683370190505b50838281518110612ecd57612ecd615973565b6020026020010181905250612efe888281518110612eed57612eed615973565b602002602001015188888885613fdf565b848281518110612f1057612f10615973565b91151560209283029190910190910152600101612e53565b505094509492505050565b6060612f8b604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081526020016060815260200160608152602001606081525090565b60006020612f9a8760a0615ae7565b612fa49190615960565b90506000612fb38260a0615960565b90508067ffffffffffffffff811115612fce57612fce614bd3565b6040519080825280601f01601f191660200182016040528015612ff8576020820181803683370190505b50604081018690526060810187905260808082015260c08101889052935060008767ffffffffffffffff81111561303157613031614bd3565b60405190808252806020026020018201604052801561306a57816020015b613057614b53565b81526020019060019003908161304f5790505b50905060008867ffffffffffffffff81111561308857613088614bd3565b6040519080825280602002602001820160405280156130b1578160200160208202803683370190505b50905060008967ffffffffffffffff8111156130cf576130cf614bd3565b6040519080825280602002602001820160405280156130f8578160200160208202803683370190505b50905060008a67ffffffffffffffff81111561311657613116614bd3565b60405190808252806020026020018201604052801561313f578160200160208202803683370190505b50905060008b67ffffffffffffffff81111561315d5761315d614bd3565b604051908082528060200260200182016040528015613186578160200160208202803683370190505b509050604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200185815260200184815260200183815260200182815260200186815250975050505050505050935093915050565b6040808401518051875173ffffffffffffffffffffffffffffffffffffffff166000908152610160602090815284822060e08b0151835281528482208383529052928320548651855185918791811061324057613240615973565b6020026020010151838151811061325957613259615973565b60200260200101519050600088606001516020015190508789600001518151811061328657613286615973565b602002602001015180156132a057506132a08b8b8b614033565b80156132af5750821982820111155b80156132c357508460400151818385010111155b9b9a5050505050505050505050565b600080600085606001516020015190506000806000806133008a6040015160600151868d60c001518c613bac565b935093509350935080846133149190615960565b8810613373578084890303975061332b8c8c614123565b60006133418e8d8d604001516020015189614365565b90506133618d878d604001518f60e0015160001b858a8a8a8a60016143ce565b88600197509750505050505050613380565b8760009650965050505050505b965096945050505050565b60a084015180156138f15760006133a28683613ae7565b805190915060005b818110156136d1578281815181106133c4576133c4615973565b6020026020010151156136c957600087610120015182815181106133ea576133ea615973565b6020026020010151905061342b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600061ffff1681525090565b600080886001811115613440576134406159a2565b0361348b57602083015160e08b015184518151811061346157613461615973565b60200260200101818151019150818152505082606001518360a001518460200151010190506134e2565b8260200151836080015184606001518560a001510101018a60e001518460000151815181106134bc576134bc615973565b60200260200101818151019150818152505082608001518360a001518460200151010190505b602080840151908b018051909101905260a08301518a51018a5260808301516040808c01805190920190915260608401516101008c0151918501518251919291811061353057613530615973565b60200260200101818151019150818152505060405180604001604052808b60a0015185604001518151811061356757613567615973565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16815260200182612710866060015102816135a1576135a1615afe565b0461ffff16815250915060008a610120015185815181106135c4576135c4615973565b60209081029190910181015160c0015180518183015160408084015173ffffffffffffffffffffffffffffffffffffffff841660009081526101608752828120848252875282812082825290965290852054606085015194965092949193909291906136309083615960565b90508560800151811161367e5773ffffffffffffffffffffffffffffffffffffffff8516600090815261016060209081526040808320878452825280832086845290915290208190556136b0565b6040517f56f1733f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050506136c48c83858d858e8b614599565b505050505b6001016133aa565b5060008460018111156136e6576136e66159a2565b036137e5576000866080015160016136fe9190615960565b905060005b818110156137575761374f8860c00151828151811061372457613724615973565b60200260200101518960e00151838151811061374257613742615973565b60200260200101516138f8565b600101613703565b5060008760600151600161376b9190615960565b905060005b818110156137b8576137b08960a00151828151811061379157613791615973565b60200260200101518a6101000151838151811061374257613742615973565b600101613770565b5086515188516137c891906138f8565b6137de87602001516000015189604001516138f8565b50506138ee565b6000866080015160016137f89190615960565b905060005b818110156138525761384a8860c00151828151811061381e5761381e615973565b6020026020010151308a60e00151848151811061383d5761383d615973565b6020026020010151613daa565b6001016137fd565b5061386230338960200151613daa565b6000876060015160016138759190615960565b905060005b818110156138c3576138bb308a60a00151838151811061389c5761389c615973565b60200260200101518b6101000151848151811061383d5761383d615973565b60010161387a565b5086515188516138d4913091613daa565b6138eb308860200151600001518a60400151613daa565b50505b50505b5050505050565b801561101857600080600080600085875af1905080610e21576040517fb12d13eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000826060015160200151905060008060008061396e876040015160600151868a60c0015189613bac565b93509350935093506139808989614123565b60006139968b8a8a606001516000015189614365565b90506114dc8a878a604001518c60e0015160001b858a8a8a8a60006143ce565b60408301518051600091906139ce8888878787613fdf565b80156139e057506139e0888888614033565b8015613a41575060408083015160608801516020908101518b5173ffffffffffffffffffffffffffffffffffffffff166000908152610160835284812060e08e015182528352848120868252909252929020549091613a3e91615960565b11155b98975050505050505050565b60606000613a5d602060a0615960565b90506000613a6c8260a0615960565b90508067ffffffffffffffff811115613a8757613a87614bd3565b6040519080825280601f01601f191660200182016040528015613ab1576020820181803683370190505b506040810185905260608101889052608080820152600160c08201529250613adb83898888614365565b50505095945050505050565b60408051602081019091526060907f0000000000000000000000002f18f339620a63e43f0839eeb18d7de1e1be4dfb9060008467ffffffffffffffff811115613b3257613b32614bd3565b604051908082528060200260200182016040528015613b5b578160200160208202803683370190505b5090508551602087017fa1ccb98e0000000000000000000000000000000000000000000000000000000060e01c81526020870260400184601c8403601c84016000895af15091979650505050505050565b6000808080613bbb8789615ae7565b9350612710866020015161ffff1685613bd49190615ae7565b613bde9190615b2d565b915061271085602001516020015161ffff1685613bfb9190615ae7565b613c059190615b2d565b85516020015190915061271090613c209061ffff1686615ae7565b613c2a9190615b2d565b9250945094509450949050565b613c666040805160a0810182526000808252602082018190529181018290526060810182905290608082015290565b604087016040810151602081018201925050506138ee818760e0015160001b87878a60c0015188886145ef565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613da1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a9565b611943336128f0565b8015610e21576000807f0000000000000000000000000000000000a39bb272e79075ade125fd351887ac90506040517f23b872dd0000000000000000000000000000000000000000000000000000000081528560048201528460248201528360448201526000806064836000865af1925050816138f1576040517febf03b8300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613e5c81612c86565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606073ffffffffffffffffffffffffffffffffffffffff83163b613f46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016108a9565b6000808473ffffffffffffffffffffffffffffffffffffffff1684604051613f6e9190615b68565b600060405180830381855af49150503d8060008114613fa9576040519150601f19603f3d011682016040523d82523d6000602084013e613fae565b606091505b5091509150613fd68282604051806060016040528060278152602001615cd0602791396148da565b95945050505050565b600080613fec878761101c565b60e088018190528751909150614004908287866148f3565b80156140135750608087015142105b801561402857506140288760c0015185614936565b979650505050505050565b600080826040015190506140588360200151866040015161405384611b9c565b614973565b60608401519092506000856001811115614074576140746159a2565b036140d25760008660a001516001811115614091576140916159a2565b036140ba578280156140a7575080602001516001145b80156140b7575081604001516001145b92505b8280156140cb575080516020830151145b925061411a565b60008660a0015160018111156140ea576140ea6159a2565b03614106578280156140cb57508060200151600114925061411a565b828015614117575080516020830151145b92505b50509392505050565b60c081015151606083015160a08401518051600091908390811061414957614149615973565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146142415773ffffffffffffffffffffffffffffffffffffffff81166141f757828560a0015183815181106141b8576141b8615973565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050614241565b828560a00151836001019350838151811061421457614214615973565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152606085018290525b8351608086015160c08701518051600091908390811061426357614263615973565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461435b5773ffffffffffffffffffffffffffffffffffffffff811661431157828860c0015183815181106142d2576142d2615973565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061435b565b828860c00151836001019350838151811061432e5761432e615973565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152608088018290525b5050505050505050565b60006040850160608101519150604081015160a08302602082018301019050600086015160008201528460208201526020860151606082015260a08601516080820152600183016060830152600160a0870151036143c4578360408201525b5050949350505050565b60008a608001519050808b610120015188815181106143ef576143ef615973565b60209081029190910101515260608b01516101208c015180518990811061441857614418615973565b602002602001015160400181815250506040518060a001604052808c60c00151838151811061444957614449615973565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020018981526020018a6000015181526020018b81526020018a604001518152508b610120015188815181106144a1576144a1615973565b602002602001015160c0018190525081156144e75783858703038b610120015188815181106144d2576144d2615973565b60200260200101516020018181525050614514565b82858703038b6101200151888151811061450357614503615973565b602002602001015160200181815250505b838b6101200151888151811061452c5761452c615973565b60200260200101516060018181525050828b6101200151888151811061455457614554615973565b60200260200101516080018181525050848b6101200151888151811061457c5761457c615973565b602002602001015160a00181815250505050505050505050505050565b6145c86040805160a0810182526000808252602082018190529181018290526060810182905290608082015290565b5060808701516020840151604085015191890160a08402016060019161435b9183918a8a8a895b600087608001516001811115614607576146076159a2565b14801561461b575081516020015161ffff16155b801561463657506b0100000000000000000000008760200151105b8015614643575061010085105b801561465a57506b01000000000000000000000084105b1561488e57602083015161ffff1615801561467e5750602080830151015161ffff16155b1561470657602087015187517f1d5e12b51dee5e4d34434576c3fb99714a85f57b0fd546ada4b0bddd736d12b291889160a89190911b60a089901b1773ffffffffffffffffffffffffffffffffffffffff909116176146e284888c60600151614989565b604080519384526020840192909252908201526060015b60405180910390a16138ee565b826020015161ffff166000036147d857602087015187517f0fcf17fac114131b10f37b183c6a60f905911e52802caeeb3e6ea210398b81ab91889160a89190911b60a089901b1773ffffffffffffffffffffffffffffffffffffffff9091161761477584888c60600151614989565b602080870151805191015173ffffffffffffffffffffffffffffffffffffffff90911660a09190911b75ffff000000000000000000000000000000000000000016175b6040805194855260208501939093529183015260608201526080016146f9565b81602001516020015161ffff1660000361488e57602087015187517f7dc5c0699ac8dd5250cbe368a2fc3b4a2daadb120ad07f6cccea29f83482686e91889160a89190911b60a089901b1773ffffffffffffffffffffffffffffffffffffffff9091161761484b84888c60600151614989565b8651602088015173ffffffffffffffffffffffffffffffffffffffff90911660a09190911b75ffff000000000000000000000000000000000000000016176147b8565b7ff2f66294df6fae7ac681cbe2f6d91c6904485929679dce263e8f6539b7d5c559878787878787876040516148c99796959493929190615be4565b60405180910390a150505050505050565b606083156148e95750816111ee565b6111ee83836149c7565b6000806148ff85614a0b565b604184028501602081015160408201516060909201519293509160f81c614929898583868661215b565b9998505050505050505050565b6000612710826000015160200151836020015160200151856020015161495c9190615c9a565b6149669190615c9a565b61ffff1611159392505050565b6000826149808584614a6c565b14949350505050565b60008173ffffffffffffffffffffffffffffffffffffffff1660a084901b60f88660018111156149bb576149bb6159a2565b901b1717949350505050565b8151156149d75781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a99190615cbc565b6040517f190100000000000000000000000000000000000000000000000000000000000060208201527fdd526a4e59bb74d0e4e4ab849ded32647b3bcf1df3acc01f4c21e76a8018c7c9602282015260428101829052600090606201611bdb565b600081815b8451811015614ab157614a9d82868381518110614a9057614a90615973565b6020026020010151614ab9565b915080614aa981615a96565b915050614a71565b509392505050565b6000818310614ad55760008281526020849052604090206111ee565b60008381526020839052604090206111ee565b60405180608001604052806000815260200160608152602001614b2c6040518060800160405280600081526020016000815260200160008152602001600081525090565b8152602001614b4e604051806040016040528060008152602001600081525090565b905290565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001614b4e6040518060a00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600080191681526020016000815260200160008152602001600081525090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715614c2557614c25614bd3565b60405290565b604051610100810167ffffffffffffffff81118282101715614c2557614c25614bd3565b6040516080810167ffffffffffffffff81118282101715614c2557614c25614bd3565b60405160a0810167ffffffffffffffff81118282101715614c2557614c25614bd3565b6040516060810167ffffffffffffffff81118282101715614c2557614c25614bd3565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614cff57614cff614bd3565b604052919050565b600067ffffffffffffffff821115614d2157614d21614bd3565b5060051b60200190565b803573ffffffffffffffffffffffffffffffffffffffff81168114614d4f57600080fd5b919050565b600281106109ef57600080fd5b803561ffff81168114614d4f57600080fd5b600060408284031215614d8557600080fd5b614d8d614c02565b9050614d9882614d2b565b8152614da660208301614d61565b602082015292915050565b60006101208284031215614dc457600080fd5b614dcc614c2b565b9050614dd782614d2b565b8152614de560208301614d2b565b602082015260408201356040820152606082013560608201526080820135608082015260a0820135614e1681614d54565b60a0820152614e288360c08401614d73565b60c082015261010082013560e082015292915050565b600082601f830112614e4f57600080fd5b81356020614e64614e5f83614d07565b614cb8565b8281526101209283028501820192828201919087851115614e8457600080fd5b8387015b85811015614ea757614e9a8982614db1565b8452928401928101614e88565b5090979650505050505050565b600060808284031215614ec657600080fd5b614ece614c4f565b90508135815260208201356020820152604082013560408201526060820135606082015292915050565b600060408284031215614f0a57600080fd5b614f12614c02565b9050813581526020820135602082015292915050565b60006101008284031215614f3b57600080fd5b614f43614c4f565b90508135815260208083013567ffffffffffffffff811115614f6457600080fd5b8301601f81018513614f7557600080fd5b8035614f83614e5f82614d07565b81815260059190911b82018301908381019087831115614fa257600080fd5b928401925b82841015614fc057833582529284019290840190614fa7565b80858701525050505050614fd78360408401614eb4565b6040820152614fe98360c08401614ef8565b606082015292915050565b600082601f83011261500557600080fd5b81356020615015614e5f83614d07565b82815260059290921b8401810191818101908684111561503457600080fd5b8286015b8481101561507457803567ffffffffffffffff8111156150585760008081fd5b6150668986838b0101614f28565b845250918301918301615038565b509695505050505050565b600082601f83011261509057600080fd5b813567ffffffffffffffff8111156150aa576150aa614bd3565b6150db60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614cb8565b8181528460208386010111156150f057600080fd5b816020850160208301376000918101602001919091529392505050565b600060c0828403121561511f57600080fd5b615127614c72565b9050813567ffffffffffffffff8082111561514157600080fd5b61514d85838601614e3e565b8352602084013591508082111561516357600080fd5b61516f85838601614ff4565b60208401526151818560408601614d73565b6040840152608084013591508082111561519a57600080fd5b506151a78482850161507f565b6060830152506151b960a08301614d2b565b608082015292915050565b60008083601f8401126151d657600080fd5b50813567ffffffffffffffff8111156151ee57600080fd5b60208301915083602082850101111561520657600080fd5b9250929050565b6000806000806060858703121561522357600080fd5b843567ffffffffffffffff8082111561523b57600080fd5b6152478883890161510d565b9550602087013591508082111561525d57600080fd5b5061526a878288016151c4565b9598909750949560400135949350505050565b60006101c0828403121561529057600080fd5b615298614c72565b90506152a48383614db1565b815261012082013567ffffffffffffffff808211156152c257600080fd5b6152ce85838601614f28565b60208401526152e1856101408601614d73565b60408401526101808401359150808211156152fb57600080fd5b506153088482850161507f565b6060830152506151b96101a08301614d2b565b6000806000806060858703121561533157600080fd5b843567ffffffffffffffff8082111561534957600080fd5b6152478883890161527d565b60006020828403121561536757600080fd5b6111ee82614d2b565b60008060006040848603121561538557600080fd5b833567ffffffffffffffff8082111561539d57600080fd5b6153a98783880161510d565b945060208601359150808211156153bf57600080fd5b506153cc868287016151c4565b9497909650939450505050565b600080604083850312156153ec57600080fd5b6153f583614d2b565b915061540360208401614d61565b90509250929050565b60008060006060848603121561542157600080fd5b61542a84614d2b565b95602085013595506040909401359392505050565b6000602080838503121561545257600080fd5b823567ffffffffffffffff81111561546957600080fd5b8301601f8101851361547a57600080fd5b8035615488614e5f82614d07565b818152606091820283018401918482019190888411156154a757600080fd5b938501935b838510156154f15780858a0312156154c45760008081fd5b6154cc614c95565b85358152868601358782015260408087013590820152835293840193918501916154ac565b50979650505050505050565b6000806040838503121561551057600080fd5b61551983614d2b565b9150602083013567ffffffffffffffff81111561553557600080fd5b6155418582860161507f565b9150509250929050565b600080610140838503121561555f57600080fd5b6155698484614db1565b915061012083013561557a81614d54565b809150509250929050565b6000806040838503121561559857600080fd5b823567ffffffffffffffff8111156155af57600080fd5b6155bb8582860161527d565b92505061540360208401614d2b565b600080604083850312156155dd57600080fd5b6155e683614d2b565b91506020830135801515811461557a57600080fd5b60006020828403121561560d57600080fd5b5035919050565b600060a0828403121561562657600080fd5b61562e614c4f565b9050813567ffffffffffffffff8082111561564857600080fd5b61565485838601614e3e565b8352602084013591508082111561566a57600080fd5b61567685838601614ff4565b60208401526156888560408601614d73565b604084015260808401359150808211156156a157600080fd5b506156ae8482850161507f565b60608301525092915050565b6000806000604084860312156156cf57600080fd5b833567ffffffffffffffff808211156156e757600080fd5b6153a987838801615614565b60008060006040848603121561570857600080fd5b833567ffffffffffffffff8082111561572057600080fd5b6153a98783880161527d565b60006080828403121561573e57600080fd5b6111ee8383614eb4565b60006101a0828403121561575b57600080fd5b615763614c4f565b905061576f8383614db1565b815261012082013567ffffffffffffffff8082111561578d57600080fd5b61579985838601614f28565b60208401526157ac856101408601614d73565b60408401526101808401359150808211156156a157600080fd5b600080604083850312156157d957600080fd5b823567ffffffffffffffff8111156157f057600080fd5b6155bb85828601615748565b6000806040838503121561580f57600080fd5b823567ffffffffffffffff81111561582657600080fd5b6155bb85828601615614565b6000806040838503121561584557600080fd5b823567ffffffffffffffff81111561585c57600080fd5b6155bb8582860161510d565b60008060006040848603121561587d57600080fd5b833567ffffffffffffffff8082111561589557600080fd5b6153a987838801615748565b60005b838110156158bc5781810151838201526020016158a4565b50506000910152565b600081518084526158dd8160208601602086016158a1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60408152600061592260408301856158c5565b90508260208301529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156110cd576110cd615931565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106109ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b615a11816159d1565b9052565b8b815273ffffffffffffffffffffffffffffffffffffffff8b811660208301528a166040820152606081018990526080810188905260a081018790526101608101615a5f876159d1565b8660c08301528560e083015284610100830152615a7b846159d1565b61012082019390935261014001529998505050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615ac757615ac7615931565b5060010190565b600060208284031215615ae057600080fd5b5051919050565b80820281158282048414176110cd576110cd615931565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082615b63577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008251615b7a8184602087016158a1565b9190910192915050565b615bb3828251805173ffffffffffffffffffffffffffffffffffffffff16825260209081015161ffff16910152565b602090810151805173ffffffffffffffffffffffffffffffffffffffff166040840152015161ffff16606090910152565b60006101e08201905073ffffffffffffffffffffffffffffffffffffffff808a5116835260208a0151602084015260408a015160408401528060608b0151166060840152506080890151615c37816159d1565b608083015260a0820188905260c0820187905260e08201869052845173ffffffffffffffffffffffffffffffffffffffff16610100830152602085015161ffff16610120830152615c8c610140830185615b84565b613a416101c0830184615a08565b61ffff818116838216019080821115615cb557615cb5615931565b5092915050565b6020815260006111ee60208301846158c556fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000a0058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563041ff00582103dd54eb7c61a072ffc126a868cc90c59beab89ab79cef19f5005c40328b8e7e8041010219200405581e03c9328cf5f20d0b3b2b85cbea96f2ee5390df79522977c7065434c7d1600701195d0305581e03d8c18d5f0587d68b2f5bbbefa26a0773e2d8028fa16bb5ed4414feed00040303c405268e623543af8d6ca00f5b1f521cfec0b628afdf2e45ff90a48d521ee42d0219197303b40c49bd1a23b5c438d1df1bf34b7548e170078cb07a22a3dbfa28428d2e42e503ff765b53487f2440b9fed07b6f3a5f7fb640f0cef886c3db86f49a6057d327700324a1b19c41e2605e26c36a5871e88e2b1feaf6d6569a642a81f399e489968acf034b54993f8f0723ca661f9257f28645341f804c31ac0785aa3af494bc3f1fbea603dc98763315eb2071ad7306fd9eba01827257834fa1e26afcd6932a1f1bae45b60309c04ad7f89863645d2dbf19632515179232c500a664520a0cdf517691b9f5ce03e1a101ea2581de1aad6d5b702011f51af1fdb9e958ece0b3b2070336c5257d2d03a52c562242d291b1b3d4914e773346bf884974a8826714fe6f4c2656f1a9338c03989200fcee1601d2a69f0ceda6e257d44f1765946385a09c5d4e1a6b46839a3903278f3fc038976d51421d03141d451b7743352d779448ad0ba451808ae3b8344803bf7210b0f22771f9d8ebd9c2e00ea3f4bc28bcb60f70b91a11e07de18f8575cb036cba69402306098ec82d509959754e05d18e754ef8217bacbc75685be60d9df103cf331b0816733ecd0034e7bb3e4df918eda1de47b997acbc8d6e8e95ae044c920219ffff03ab737e55fb6e9cf3d794fa86caaa02e982baa0bd9fbe590c2178c3fb1e81a7a9035430e4b582139bcfef589e51a98c3754b3e4107bb073cfeb42dbb58c48c9b21a03d773f6c974bf9dc69d2f7866e4b7b3795b8ad7262614f74680178847c5a854340383b4e5c78dcfdd458c6abd11f263a7614ce6d800f516a1636e1714d7b7ad178703095c3e859e8666480d65cadff09d99668cb3714e6c789b4dd524dc21d3584994033e74faf9d930b8e6ae944d3cb102b89b83c441db1039f236da7b3f091c7c978b0219ffff031f3931e6b40b3ca7ff1a3906050f574c4215be4b7c29f5e32a4d3c9a1744e78803e6a8a0eb55cd05eea44ec7995c8cc160f1aa395f54108ed65f4b09589ace7677034887f31afb4ddace6445fd2f87be578ac98c6c4e7bd3d4e797cffbacc340049503da21d22360e81f912bfef490c8c0ce8d08209b9e0873b10440a1af004875ee6403f62e1d0c56ac39cf3586b70de29711e0440e7df66ff9c37fdf82ab19f662561103a75a9a5862f0aae50931fb228bcdd87af4e1512e1885fc174af82539c33d0d530377218190685bc948473669da94be16133ef492201eab99824f8f34c42b1fcbab0318058af21b33dfeb3f5a1b44089a928bcec938851303015681b0a9e8dd43d1a603ca9fb3190f92442a2629e0c01ba9eb47b070ea4bac003c429d2f3d97dff1be45036d430d2dbc5a1e2cb6ae6f98dca80b360f325f9c783a1884b3ecc763bdc906cc03c26719a2f4976ae1d274f600e81a574f93834d22b6545a36c407a410a969d43c0219ffff03340a8b00603d63870c00e6cbb8a4a7f8f133f7154d3e0e475837461576f5398e0321376e0b0039ed1f6c35fc6781be364eb98a53a8ae00cb260f75d9836671013d03c732d602a62fe04a5d968c890898ba4989901b3e02c9752268ca42df142d3d380324359cb048f51398393bd5262116f8327553b97cc7d0039c2611880912d2a66c0219ffff0381b9c164013efbb22b069dcbafe5b753cf9a72002609dab719a64ae813980374035ebcb071fcd9d37f93576bbda2020459b089bfd1823cc241d676f8ecbfda7fb3031b17722829643329e10a5da2461bc5aa67fcb59187e7886420a6f3888ec90e5003a1a8b087c19cc00feb207954520354b385009c885d4ced629edd64ce1b5091e9034a1828a48205ff711f2629c7d0f14292146fbc6ddc7802242a5fb0604eb061f003721bb68b27f3b252a9c5c57ffa11313213d748abc4f564bdd14841aa924d484503c4165f64c1232713e6416f6341e9dc82ac305091078fd0cc800aad0aeb02b748035b9f659423d7e914b2f96d33bb270d68ed6c7be52f7c53c1f697d7776632da0803492cdfe36ab69cf14110555d78a73f58100846e7b51dc30dcde1d19bb474de6503cced2923a90d6276ab31a34b64e5b43ead3c308efa5dc9c8e075ca537aeda34003c35ae85e73ec73598615018dc14cbbe19d24f0b8decf6e4769ddbf635b73d22703ef86f12b3095474979f07d9c2a042c7e06c573ff3e1050fb527610b3eb848e8903bc6349de12e9f1bbc8f37bae2e7874a941fb2fb304114b3039be76dceac385e1032a0adc09108dde8b1d7f6c9d051aeec53d02a3ac8d8c3d1df30c0d80b537cbcf03284eb71f7ea12b4aa2c59d01b6aa57416f8478068368db3d0639f33b07ac3a080357c827cbe3012cf9ae82fccc2ba2978a0f2d7e38e6d68be18eb723feb4c5b7f903b4fc2ade993890349ce0868c1af7430426a9ef0f48b3f1a09f3dc1ca8c43a21a037d0d44f45d466f4ff02bd0663eaede9361d91f832c630b3b4cf152920973ce2a03407b3068677a566336713dc9a7fcc083723750df14286c518ab6b923da98b12505581e03861498fc893f5be873c3d9941c5333fdb10e220d8e46c5a624798aa7f00c0246c7d2b0f0c64803fef330597d8dbb366369d17f80f904eb4f26d8cba92f8a76618298d59bf925a90345d1cfe17035c5ea8358145bd4a0c45ecc8494e2b366bd387393e88cc33e2fbb0370c007ccd8907e51bc2a62b691e57986ab5f98048e65f771977ec57518d0228305581e0326545743a7b81fca8d388380775091ed1083f4830891702594faddbd2007011bffffffffffffffff05581e03e577ab43eaa5596be3d70b39fa1180eea1771e4781752107eae45149000c0247053fed75d1400003c8980044610eb5fcd734ad473006168e8c9c7dcb62542c4565d59e80e3f9e16c03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e033e241cffcccc23354053adc7b8e734bcb3204ec40f7ed075e0bceec4d007011bffffffffffffffff05581d02daf5e74286033e700ef97c442c96f8beeff330c85345d815eed981260c1347c2809d687ea664045909045f358060e01c908163fa461e331461016f578163c89e4361146101225750631944799f1461002957005b6001483a03640277cf2a0048108060011461011057156100da575b506100d55773a88800cd213da5ae406ce248380802bd53b4764733036100d0576004358030036100c1575b5061007932610267565b604435601b19810135602482013560f081901c60ff169060f81c600581146100b3576006146100a457005b60266100b193019061046c565b005b5060266100b19301906105b6565b6100ca90610267565b5f61006f565b610246565b610225565b64183cd7f100481080600114610101575f036100445790506064604148029102115f610044565b509050489060011b115f610044565b5090506064604648029102115f610044565b5f80916101443373ad7149152a65e6ec97add7b1b1f917dcafcf9b21146101f9565b81601719360191826018833760401c6001600160a01b03165af43d5f803e1561016b573d5ff35b3d5ffd5b505061017a32610267565b610182610761565b909133036101f45760843560f81c915f918110806001146101e957156101df575b821590816001146101c15750156101b657005b6100b19133906103c6565b916100b193506101d391503383610368565b60b23560801c90610529565b60243591506101a3565b5060043591506101a3565b610204565b1561020057565b5f80fd5b62461bcd60e51b5f908152600160e51b60205261462760d31b604052604690fd5b62461bcd60e51b5f908152600160e51b60205261232960d41b604052604690fd5b62461bcd60e51b5f908152600160e51b60205261232360d41b604052604690fd5b73d267fda7ecbe322e64bf807de06e8e2284b72da98114730ff82acd0cd11bff58729e7dc9cdcdbe1fcf7a7482141773c47eff2d0b444001dfc2121aaf9b6d6db76af010821473c252ceec3ad24c47657638c323d96249a9f1b42a831417179073ad67d3a4fe6040ccb8ae703a443202ec6b9e4a0f811473d66570edcdade24edda902b28f2172e9ef8395dd8214179072d2f4eb459bd4f7b175fd0cec578229bfa3bde781149073ad7149152a65e6ec97add7b1b1f917dcafcf9b2173d1742b3c4fbb096990c8950fa635aec75b30781a82149114171717171561034757565b62461bcd60e51b5f908152600160e51b60205261231360d41b604052604690fd5b5f80604492602095829563a9059cbb60e01b84526004526024525af1156103be573d156103bc5760015f510361039a57565b62461bcd60e51b5f908152600160e51b6020526201189b60d11b604052604690fd5b565b3d5f803e3d5ffd5b905f8060d58194604096600160ff1b908103016103e16107e7565b9197630251596160e31b8752600452108060011461045457841461042f575b5060a0608452602d8102906011820160a45283190160f81b60c4526010810160b260c53701925af1156103be57565b8360245260445273fffd8963efd1fc6a506488495d951d5263988d256064525f610400565b5060016024526044526401000276a46064525f610400565b905f8060d58194604096600160ff1b908103019461048981610865565b630251596160e31b875273a88800cd213da5ae406ce248380802bd53b4764760045291979111600181146105115785146104ec575b5060a0608452602d8202916011830160a45284190160f81b60c452601082019060c53701925af1156103be57565b8460245260445273fffd8963efd1fc6a506488495d951d5263988d256064525f6104be565b5060016024526044526401000276a46064525f6104be565b6370a0823160e01b5f523060045260205f602481845afa15610594575f519182106102045760445f80809360209563a9059cbb60e01b835273d1742b3c4fbb096990c8950fa635aec75b30781a6004526024525af1156103be573d156103bc5760015f510361039a57565b62461bcd60e51b5f908152600160e51b6020526202313960d01b604052604690fd5b5f1993909284840192905b6105e760158502830135918260601c92818760051b610100015260581c60ff16836106f1565b9084156105f85750928501926105c1565b919350945092909260159161062f601582028501966014606098610624813560601c9360809785610368565b013560801c90610529565b5f5b8181106106415750505050509050565b5f8060a481808886028a0135818a600189018a8114806001146106d15785146106c2575b505063022c0d9f60e01b8352600160ff605884901c16146106ad578760051b6101000151600452826024525b60445288606452816084528c1c5af1156103be57600101610631565b826004528760051b6101000151602452610691565b028c01358e1c90508a5f610665565b5050505073a88800cd213da5ae406ce248380802bd53b476478a5f610665565b5f600481606093959495630240bc6b60e21b82525afa1561073f57600191821461072d576103e8602051916103e5815f515b0302920202040190565b6103e85f51916103e581602051610723565b62461bcd60e51b5f908152600160e51b6020526201189960d11b604052604690fd5b6085358060601c9063ffffffff609e3560601c918284106001146107e05783835b5f5260205260401c1660405260605f2060ff60f81b5f527f1f98431c8ad98523631ae4a59f267346ea31f9840000000000000000000000006001526015525f805160206108e483398151915260355260555f2060018060a01b031692565b8284610782565b60b2358060601c9063ffffffff60cb3560601c918284106001146107e05783835f5260205260401c1660405260605f2060ff60f81b5f527f1f98431c8ad98523631ae4a59f267346ea31f9840000000000000000000000006001526015525f805160206108e483398151915260355260555f2060018060a01b031692565b803563ffffffff60198260601c93013560601c918284106001146107e05783835f5260205260401c1660405260605f2060ff60f81b5f527f1f98431c8ad98523631ae4a59f267346ea31f9840000000000000000000000006001526015525f805160206108e483398151915260355260555f2060018060a01b03169256fee34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b540605581d0212a74504d7dd026674c6c714968ec5970132171393f7c54f4d167c1707011909040219200405581e0389db36d2b71deb729df9a20124084f63a9b3041e13c7b6d62cae6536600c04476ab8fa4fcb49a60219ea530384e95f38f8676b94a1027c372ce95f05c6ab034a04195f5453b9bc58bf9edfa80356d76fb12d561e56b541b0fc35c8c102e0fc6762846988d7321d76ffcc05e47d03b5b1280460eb85c9033cb14dbff3fb0dfbee0c1295555357ef37f61ab63eab30031f991c967991c7a1e63285a198bc99b014ce3ecf336530ec142ff8bf1614d909035ba0c2cc0a9ede9fe6d382bdfa1bea8f143ca4e0fe0cd6443dd45fc76ef94ad103b7e2a816e7b7c8d436434dea2eec100ec78d5db4f3f82b55ac6ef81dafc9e5ac03a8c6319648a5bc2c59c53254d1b3fcd9e740949f1f7bbef3c242e0af703a89140331fac018636180affc24976e6d503b8cf12d6358f08c2a338ad66ceba7ae2beb038bad3a11ab007b2ac18b59594404ed9293e20084b0c785cb84fadc35a0121c510219ffff0320d1e790ecef0b910e9310583a58f238458ede7f983d0126942156df0a4d3c1003aa3405746ca90ac11d1af809305319bc35da80f7165e83a1ef76639c1eb6fc8d03cd912f48b7a73c91d1a3813e7393cfcea4cf1441a5f4d5d9144405636ef06498032df0b5cf5ffa7dc5ffe5c32913018b5b34ab548c1762869545d73c519807d7af0317977c8a262466f9e85a6daa982a8636af9a5049ef656d7daa28d6e980f67a5b0306ae7a4954462a63f000b98ef7bb0526e341838de6d325fd42d9b30c00011b9003d64db195674c55035dc4ebd373bbccd044990302e99468d8f718f2963828f0ec0361eb1272cf6a4ad3423e9d9cc1aa65cd1bf42c1de04684c359dbc6a4cdbb3ad50219ffff034059023ab99417fff5d8487f7d5dfb62dc0cf7242010feceb485e7dc8fad9ae80393e576226e9581fba5e09b1ce06348366625485a5a19c16317a14726e72dda27033e82c15d7e06501b25ad9c423fe13de0be48379bd1f5b132d9d2df97684bdb5203b55ba5eb967bcabbf1abdb4dddc7024dca15f8025884f95bb464a19543db055403bec08d2095b3513fbd553954c699b84bcbbfcbbbe38ef5de5d03209663a6efd103d5af622ae6cf30ce63de792fa6622fdf72bc894351540cc72bedafbfbbca654b035c1b395578be27ce6a8ad13253e9639384d4684b44e0ecdcc64c48c4115ad066031eadcae03c789dd1b86e4569ad2f8f63c89a9ba114f0a7a110b13ec16d6fed2303f3af806e0e6b3bfa1a0a13711473e6cfe135c2a7276d87243580eb127b14a6f003e83a27629bc47bf0377b87fe8e288805a6d748b69a96ac061b5702c54ff0f6c50219ffff03313a46bd184feeefe9a5cda82443b763f9da860978c46a0425ec343957b13a3a03b73ad08cc1ee9def17a3fb5c4e77dd45ff9085f22cb38c42d9cd4f83343155dc0346279aece39c8337b82e5850be4a8322b95e3b2d182e783ac2949b45093d87da036b5a7ad787790b4b55eb7321507d1b7d1909926a2a8498c3eb23a8c39d8651cf036cbae41527b04828d2fc1fe7e55f11517761b514fb280942dccd4d6bdce9bfc403c6da352acdc829c561e7260d4b2ff3f35678153245f01a44f4759fa972f497bb03151a039cca43c4228b21aea248c4596bdf4ca5b8d80784f07efd1e57a971c2b00318f1b50b795f18b991238a4c751f85d32433ee83b2dbc1af790a76da2edeb4c4034f677b2f5cc08d3f6de9288d67f0b81488d1d7b227b889e12a9d5dcd0921b469038c9dd652537b45880e2ab00f57a812f9c210d5be78b24120883746a192ef3584031c1a3cde0f6064a2864c954cb8a7661a18ec67164234745379d2962ef9725b5d03b8fa6e3d974b0a6e83c0d463f66d6143b18cdda041e10310ee25e402cfe8123603db30a12b4f53cffcfe4c19731d2c256b8243ace41b4e8113648b14eb69648bb90346e5584b3636788ea938e5aa5c20461c3612ec875a2c85c3c753cb3771bb403b03fcfe129123af7691fdc63ece66c707df8580ac408e9616dcc47598348980473403785b20ac723f35dae99fdac585240e4f802e0f8e04f7c8d60dbd344f90ebecd003354ec681635fd9420955bb67cfbf825118f8de55f92330cc674e284c4dc8286103f402fa51b6b3cdcf4756a9a1818f1dc3c7a443e94a637dd020e1c126da4a0ce503ed7291179d0d9bdacf187270deb02c0c2ce9b8ca7812e204ad9c493f748aa7f30345c5ced8fbd0a65e83dda299b61988fd8380da6339576607f58fdf9fe64dcfbd03cbcb476e55cf63afac56384ec13f6c53083bcfef04d88c1d369ba362efb95b2003c26d9434025b01bb01bd2b1475e30529281c5331bac174db621a2eb65a0ce6e803f4dfb65e97a20c35a35f0982e9403ef3e34203a78d96c8a4d8b8ca62b987515103f9c6a06a34215bd2906eeba363886cf995852312c69c3729afd21020f88ef5b1039b6024dbd9122b4289d741b34b60f219a9d7a1c7e8e2a56b18384f0913cd3120037dd768c1088fe83edacf82e8d314af9268724b42e3a1955ad0c7345fa608d19c03651a021e8aa8ddbd22fe0f1c28866974d89adf54b97f5089ca112b72d799a2ec039cfde0fc306ab97ddc258ffb530f774f6a0dfb54c54741d197858abd9a891e6603130e5fe1739eededf815c8c20887fc446d8fed09a00431e7808d0b7abfd16ba80336a6d9184d891ecd1eb9d1ebbdb23ec4966df21153bbec7eab46bf8acd66abef0330f1f3b73babadac65108743215a361bf494a2a7e29c24d45b090ce50a9207a003854facd3db225d43a480d786e1b66c6bc4bcb35f4e0c3e166c277beb213dbe0003f6ffe8296965d64be78378713a0018e690c9d706f7e959ba00dbbf712a6bd65b033b73041cd4b2fdb661636160f0f5ec1286ba7710d5db6dff54d66403cc8ec6da01410805581e03cad92bc71fe5ad8dd87622e80e4f2ab8f4fee20f4d3f888c9abe58e0b0040105581e0310622317060834a07097d6b7ab4c605dc40677c75f43ebd7e1b4b312f008470f38e5c7b73a0005581e03c50f175ebe487211306a6fa59cb2e8341fa686e1525ef5b328b1c5d32008472cd9c381546df505581e034dc515c315f4877b5ff0aff1ffc6874276e3cc977686133d0675e165c00c0147332734bed0d20705581e037bdb1ba4826695aa9072f624aa9fe9b59a0681ed449221859910d284f00c05474b23d87ec4480005581e03b5506ce4534bcdba265edd7c1562f4e731f917a8c5a24b3b20dd1e1d9004010339601d2f26e05b0ab2948e56bd9278f1b51094425c531bd1b5d620b47b16290f05581e035fa15d6e11818962f9a956fba2e436cc03d5f755066bfd31640e8767100c0b462dea344b826805581e03df7e2213e69f8c25545bda7f32abd9c7107938561a7ab3a85653bd16e0040102193f8d03b11e5e3cbd07fc83bc549b8a977d5eb03ab2b293068692f90329039702dc2ef20219ffff0376783a4e96f13d6440db46247a47f5aac1136e6dd22d504a9cffadc13944b10f033f80fba79e9971640606417df2c889076b322b5701557b920f4899cd7a7347b50382ac7936905b00ed0cff8d855115c777013ff8d6ab05665365ea75f89a3772a30389f228326c0efe8b73f5c89418e7275f18ca000fa4bdfd48021595ea9e1dd8e8030ae000291989b1b8e07156408d00985c4824556764963d6bc8def5a6ba60b71b030d01c5dd07a50eb264920e597fdded2a0d4c52310f4f6d882f92bda3f72ed6c003e814381fdd874a848572370535273cdf6bad60bcceb70e81d78ebd97e4377268031fb76e6c5fcb00c04a680fa3022b8b5bae329f3bf18c2d69bfe4064d157f734d03bf619e39b5b3a68fd774617f5b9d2d7268009f9a45ffbd3a72c8c3b13282556403c342eee7cb2c638d04e345f53a8dae0824fdfb401d6bb68ee70861bf0cebc81d03cbd5d383614a584dce1eca6d272017480fa8cfe55a33855ada3a74271064bd8403a9ab8fc2e7e189c266110ec040f4c29e77eaa7560e524de763f3c00d953dfaa60219ffff0219ffff03f93c1517385bbbda489b2220c61272f013808e4e5f313b9b85567ca5bd74a4a20350ffc11a762d18e74fb386a67daf8c115f197b7c9056370359464d9a8650561a036797aa11ba0c82de465d83e813b02f428d2472179b7c075c89965a58b743b55c034effde68ac6fa06b95a172bd7b2dd73cf1c96af937ccd7b8584d932801ea184b03696d27ed57f5fee8922b3bb3f93b4a9324adcf8926f0b08aba713ea7023364ca03c31fdc9719fb6e0f951da370fb249c56549d40f93c44bcb9d955eca4348b6cf6034173092638783eab42fbfb253c147fd4cbe852d29ce26c0342a31a70a82448980380135e7112a81427661823528cea8623816f9fa02afdb9f4b46c6ae4bf49b1f1039ccb81e468ee47b3a496e41bc76d386f81c44012e52301170479313273d4687303f4cd41f5fc3b5f848561d74d4563f92b753b5211afeb7cb2164bebf1017f5537031228337c58f5e847043f01b94fd9e8b6b9e08f1f5da0413f24a90c5c3919b48603d22131acd7ffcd3a370056409a5f91d966e9ff6e7f967a890d37db1ac436340f039b7a3f45ee063fcb1b83cc6f086887298db6ead0b770cd3d7ab5e3d6d4c9f8af0358e734796392ab36bcde583f8c2992c9151a18f4ea17875e6b9def2b27dd2baa03d7331660e0822a3c9e2df33dfe913a3f0d62c8076f49ccdef96b3db475aa5e9b03b3b638561df45a7e65a7758ae1799a594b6f1ecedc0efeecfd04b404181fd0ea03171cef6e8b6465c40921bc7d446cc95b030608b7159cf1ae46bf47a387f92b7d039f15de3d6f176c2aaacd108f005ac5538ddeffde8849406144fe977ae77c8ca4033264053f2007206f69426db23fa81b6f1357e882e21e23942630fd3df460d07b036babfa52526d10178d11be13f0a7e726326eafed842e9a734e33db7cf4068b770391e437285a56e4beaac7a8713d61617142f70d2af438b150f7703d85b41e99fe03c854be4af6dcc7ec27c7a7041f0fda0f3104ce976eb865eb13f1d36bf71ce4dc04594dce6080604052600436106103845760003560e01c806375796f76116101d1578063aab483d611610102578063ca15c873116100a0578063e55d6cc01161006f578063e55d6cc014610b57578063e94ad65b14610b8b578063ea452b6d14610bb8578063f1ec1e9714610bce576103bb565b8063ca15c87314610aef578063d547741f14610b0f578063d70a6f3114610b2f578063dc29f1de14610b4f576103bb565b8063b91590b2116100dc578063b91590b214610a9b578063bb635c6514610ab1578063bc3950c514610ac7578063c151aa7214610ae7576103bb565b8063aab483d614610a45578063b064d46114610a65578063b12de58614610a85576103bb565b806389e80ed31161016f57806399dd1deb1161014957806399dd1deb146109d05780639fd0506d146109f0578063a217fddf14610a1d578063a694fc3a14610a32576103bb565b806389e80ed3146109295780639010d07c1461095d57806391d148541461097d576103bb565b80637dfcdd29116101ab5780637dfcdd29146108be578063808d663f146108d4578063854a63f6146108dc578063891ef43e14610909576103bb565b806375796f761461085b57806378abb49b1461087b5780637dc0d1d014610891576103bb565b806335ead2a4116102b657806353e105fc1161025457806360a0f6281161022357806360a0f628146107d15780636daa01a2146107e75780636fce8ab214610807578063729d53341461083b576103bb565b806353e105fc1461074b5780635890c11c146107615780635915ded1146107815780635940d90b146107bc576103bb565b80633f550b3a116102905780633f550b3a1461069f57806342d3915d146106cc5780634461ff05146106fe5780634a7d80b31461071e576103bb565b806335ead2a41461063557806336568abe1461064b5780633937c0b31461066b576103bb565b806319efd5c71161032357806329e84867116102fd57806329e848671461056f5780632bf67650146105c15780632f2ff15d146105e15780633101d91014610601576103bb565b806319efd5c7146104eb578063248a9ca31461051f57806329d487041461054f576103bb565b806304f36cc21161035f57806304f36cc2146104645780630633af7614610484578063080c279a146104b25780631943190d146104d6576103bb565b80628db05b146103ed57806301ffc9a71461040f5780630208e4b514610444576103bb565b366103bb576040517f34352c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f34352c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3480156103f957600080fd5b5061040d61040836600461402e565b610c05565b005b34801561041b57600080fd5b5061042f61042a366004614047565b610cc7565b60405190151581526020015b60405180910390f35b34801561045057600080fd5b5061040d61045f366004614089565b610d23565b34801561047057600080fd5b5061040d61047f366004614112565b61128a565b34801561049057600080fd5b5060d05461049f9061ffff1681565b60405161ffff909116815260200161043b565b3480156104be57600080fd5b506104c860d15481565b60405190815260200161043b565b3480156104e257600080fd5b5061040d61138c565b3480156104f757600080fd5b506104c87fe30bb2df90b65284acd0e8b5ebe3483bb2bbe65a08e43f0f9e8300fd8607ee1181565b34801561052b57600080fd5b506104c861053a36600461402e565b60009081526065602052604090206001015490565b34801561055b57600080fd5b5061040d61056a36600461412f565b61143b565b34801561057b57600080fd5b5060d45461059c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161043b565b3480156105cd57600080fd5b5061040d6105dc36600461402e565b611583565b3480156105ed57600080fd5b5061040d6105fc366004614185565b6116ea565b34801561060d57600080fd5b506104c87fe6ef7125bfa79685f3bd2e4c4cea243c1e988ebbc0801ab7641ae36b9e2c529181565b34801561064157600080fd5b506104c860cf5481565b34801561065757600080fd5b5061040d610666366004614185565b611714565b34801561067757600080fd5b506104c87fa6b5d83d32632203555cb9b2c2f68a8d94da48cadd9266ac0d17babedb52ea5b81565b3480156106ab57600080fd5b5060d95461059c9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156106d857600080fd5b5060d95461042f9074010000000000000000000000000000000000000000900460ff1681565b34801561070a57600080fd5b506104c861071936600461402e565b6117c7565b34801561072a57600080fd5b5060d85461059c9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561075757600080fd5b506104c860db5481565b34801561076d57600080fd5b506104c861077c36600461402e565b611938565b34801561078d57600080fd5b5061042f61079c36600461420e565b805160208183018101805160c98252928201919093012091525460ff1681565b3480156107c857600080fd5b506104c8611a74565b3480156107dd57600080fd5b506104c860ca5481565b3480156107f357600080fd5b5061040d6108023660046142dd565b611c23565b34801561081357600080fd5b506104c87f5e4bd437d29fad01c10cdcfff414f0d6b0e84b96d2dade88d780d45b5630696b81565b34801561084757600080fd5b5061040d61085636600461402e565b611e8c565b34801561086757600080fd5b5061040d6108763660046142ff565b611f43565b34801561088757600080fd5b506104c860d25481565b34801561089d57600080fd5b5060d55461059c9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156108ca57600080fd5b506104c860cc5481565b61040d612094565b3480156108e857600080fd5b5060d75461059c9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561091557600080fd5b506104c861092436600461433a565b612131565b34801561093557600080fd5b506104c87fdec9d30de0821ad67aa5b141b13a539f584a19f99319e6041698a892b0e7955981565b34801561096957600080fd5b5061059c6109783660046142dd565b61213d565b34801561098957600080fd5b5061042f610998366004614185565b600091825260656020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b3480156109dc57600080fd5b5061040d6109eb36600461402e565b612155565b3480156109fc57600080fd5b5060d65461059c9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610a2957600080fd5b506104c8600081565b61040d610a4036600461402e565b61220c565b348015610a5157600080fd5b5061040d610a6036600461402e565b612563565b348015610a7157600080fd5b506104c8610a80366004614368565b61261a565b348015610a9157600080fd5b506104c860ce5481565b348015610aa757600080fd5b506104c860da5481565b348015610abd57600080fd5b506104c860cb5481565b348015610ad357600080fd5b5061040d610ae23660046143d3565b61266d565b61040d612a62565b348015610afb57600080fd5b506104c8610b0a36600461402e565b612ac5565b348015610b1b57600080fd5b5061040d610b2a366004614185565b612adc565b348015610b3b57600080fd5b5061040d610b4a36600461402e565b612b01565b61040d612bb8565b348015610b6357600080fd5b506104c87f8ea5b4dbd68db0bf23bf4cda958b61a749f8c5aec6f2912d75a03246753ddd1681565b348015610b9757600080fd5b5060d35461059c9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610bc457600080fd5b506104c860cd5481565b348015610bda57600080fd5b50610bee610be936600461402e565b612bfc565b60408051921515835260208301919091520161043b565b7fa6b5d83d32632203555cb9b2c2f68a8d94da48cadd9266ac0d17babedb52ea5b610c2f81612c9c565b60ce82905560408051602081018490527e8db05b00000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610cbb9161451b565b60405180910390a25050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f5a05180f000000000000000000000000000000000000000000000000000000001480610d1d5750610d1d82612ca9565b92915050565b7fe30bb2df90b65284acd0e8b5ebe3483bb2bbe65a08e43f0f9e8300fd8607ee11610d4d81612c9c565b60d660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eea12ab66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde9190614562565b15610e15576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82156112845760d354604080517fc5f2892f000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163c5f2892f9160048083019260209291908290030181865afa158015610e8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaf919061457f565b9050808314610ef2576040517f1497ae93000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b6000805b858110156111105736878783818110610f1157610f11614598565b9050602002810190610f2391906145c7565b905060c9610f346040830183614605565b604051610f42929190614671565b9081526040519081900360200190205460ff1615610f8c576040517f932c5b0d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60d15481602001351015610fcc576040517f172b315400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60d2548160200135111561100c576040517f184a72de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61102161101c6060830183614605565b612d40565b600160c96110326040840184614605565b604051611040929190614671565b9081526040516020918190038201902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169215159290921790915561108b90820135846146b0565b9250803561109c6040830183614605565b6040516110aa929190614671565b60405180910390207f15f16c2e13e50235799a97b981bf4a66c8cd86051f06aca745c5ff26f39b330e8380604001906110e39190614605565b85602001356040516110f79392919061470c565b60405180910390a35061110981614730565b9050610ef6565b5060cd5481111561114d576040517f1eecaf5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060cd600082825461115f9190614768565b925050819055508060ca600082825461117891906146b0565b909155505060cb80548691906000906111929084906146b0565b90915550600090505b8581101561128057368787838181106111b6576111b6614598565b90506020028101906111c891906145c7565b60d35490915073ffffffffffffffffffffffffffffffffffffffff16632289511860208301356111fb6040850185614605565b6112086060870187614605565b6112156080890189614605565b8960a001356040518963ffffffff1660e01b815260040161123c979695949392919061477b565b6000604051808303818588803b15801561125557600080fd5b505af1158015611269573d6000803e3d6000fd5b5050505050508061127990614730565b905061119b565b5050505b50505050565b7fa6b5d83d32632203555cb9b2c2f68a8d94da48cadd9266ac0d17babedb52ea5b6112b481612c9c565b60d9805483151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091161790556040517f04f36cc200000000000000000000000000000000000000000000000000000000907f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e7490611354908590602001901515815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610cbb916147cc565b7fa6b5d83d32632203555cb9b2c2f68a8d94da48cadd9266ac0d17babedb52ea5b6113b681612c9c565b60d760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b2d42b466040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561142057600080fd5b505af1158015611434573d6000803e3d6000fd5b5050505050565b7fa6b5d83d32632203555cb9b2c2f68a8d94da48cadd9266ac0d17babedb52ea5b61146581612c9c565b611472600a612710614842565b61ffff168261ffff1611156114b3576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61271061ffff831611156114c9576114c961488a565b60d080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff84169081179091556040805160208101929092527f29d4870400000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610cbb916148b9565b60d660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638b61391a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116149190614562565b1561164b576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051339082907fbac6b2cb68f9205537fb1489571de5d98c9492cd5e1c7581b81cbb5932753aa890600090a360d7546040517fddd5e1b20000000000000000000000000000000000000000000000000000000081526004810183905233602482015273ffffffffffffffffffffffffffffffffffffffff9091169063ddd5e1b290604401600060405180830381600087803b15801561142057600080fd5b60008281526065602052604090206001015461170581612c9c565b61170f8383612ec0565b505050565b73ffffffffffffffffffffffffffffffffffffffff811633146117b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610ee9565b6117c38282612ee2565b5050565b60d454604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916318160ddd9160048083019260209291908290030181865afa158015611837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185b919061457f565b600003611866575090565b60d054610d1d90839061187f9061ffff16612710614926565b61ffff1660d460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611914919061457f565b61191e9190614941565b612710611929611a74565b6119339190614941565b612f04565b60d454604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916318160ddd9160048083019260209291908290030181865afa1580156119a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119cc919061457f565b6000036119d7575090565b610d1d826119e3611a74565b60d460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611933919061457f565b60008060d560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f3a009a06040518163ffffffff1660e01b815260040161010060405180830381865afa158015611ae5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b09919061497b565b9050600060cc5481611b1b91906146b0565b905060cd5481611b2b91906146b0565b90508160e001516fffffffffffffffffffffffffffffffff1660ca54611b519190614768565b611b5b90826146b0565b90508160c001516fffffffffffffffffffffffffffffffff1681611b7f91906146b0565b905060d760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b69ef8a86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c12919061457f565b611c1c90826146b0565b9392505050565b7fe6ef7125bfa79685f3bd2e4c4cea243c1e988ebbc0801ab7641ae36b9e2c5291611c4d81612c9c565b60d660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fdcada5e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cde9190614562565b15611d15576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cc54611d2283856146b0565b1115611d5a576040517f96b0c75100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d6482846146b0565b60cc6000828254611d759190614768565b90915550508115611dcb578160cd6000828254611d9291906146b0565b90915550506040518281527f9d04ecb465d2c8754acb798a22293dd26215a1c2f7a2a56607afa215c1aadc779060200160405180910390a15b821561170f576040518381527ffe89805cf5299ef9fbd1d1ddefb8dcc3fa9408064d2ea31e3fca6565768f52179060200160405180910390a160d760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634d13bfa6846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611e6e57600080fd5b505af1158015611e82573d6000803e3d6000fd5b5050505050505050565b7fa6b5d83d32632203555cb9b2c2f68a8d94da48cadd9266ac0d17babedb52ea5b611eb681612c9c565b60db82905560408051602081018490527f729d533400000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610cbb91614a45565b7fa6b5d83d32632203555cb9b2c2f68a8d94da48cadd9266ac0d17babedb52ea5b611f6d81612c9c565b8173ffffffffffffffffffffffffffffffffffffffff8116611fbb576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60d880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091556040805160208101929092527f75796f7600000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261208791614a8c565b60405180910390a2505050565b60d95473ffffffffffffffffffffffffffffffffffffffff1633146120e5576040517f031886f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040513481527f4cbb9d73b003a252cee3f2ee51d8d65a562af35eebb23730dd4a76d68127b3709060200160405180910390a13460cc600082825461212a91906146b0565b9091555050565b6000611c1c838361302d565b6000828152609760205260408120611c1c908361332d565b7fa6b5d83d32632203555cb9b2c2f68a8d94da48cadd9266ac0d17babedb52ea5b61217f81612c9c565b60cf82905560408051602081018490527f99dd1deb00000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610cbb91614ad3565b60d660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ea7ca896040518163ffffffff1660e01b8152600401602060405180830381865afa158015612279573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229d9190614562565b156122d4576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60d95474010000000000000000000000000000000000000000900460ff1615612320576123207fdec9d30de0821ad67aa5b141b13a539f584a19f99319e6041698a892b0e79559612c9c565b60ce5434101561235c576040517f2c2843b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612367346117c7565b905060db5460d460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123fd919061457f565b61240790836146b0565b111561243f576040517f273ad0e000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81811015612483576040517fb5903eca0000000000000000000000000000000000000000000000000000000081526004810182905260248101839052604401610ee9565b3460cc600082825461249591906146b0565b9091555050604080513481526020810183905233917f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90910160405180910390a260d4546040517f40c10f190000000000000000000000000000000000000000000000000000000081523360048201526024810183905273ffffffffffffffffffffffffffffffffffffffff909116906340c10f1990604401600060405180830381600087803b15801561254757600080fd5b505af115801561255b573d6000803e3d6000fd5b505050505050565b7fa6b5d83d32632203555cb9b2c2f68a8d94da48cadd9266ac0d17babedb52ea5b61258d81612c9c565b60d182905560408051602081018490527faab483d600000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610cbb91614b1a565b60d4546000906126589073ffffffffffffffffffffffffffffffffffffffff1633306fffffffffffffffffffffffffffffffff8b1689898989613339565b612662878761302d565b979650505050505050565b600054610100900460ff161580801561268d5750600054600160ff909116105b806126a75750303b1580156126a7575060005460ff166001145b612733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610ee9565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561279157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6127996135b9565b81516127a790600090612ec0565b6127d57fa6b5d83d32632203555cb9b2c2f68a8d94da48cadd9266ac0d17babedb52ea5b8360200151612ec0565b6128037fe6ef7125bfa79685f3bd2e4c4cea243c1e988ebbc0801ab7641ae36b9e2c52918360400151612ec0565b6128317fe30bb2df90b65284acd0e8b5ebe3483bb2bbe65a08e43f0f9e8300fd8607ee118360600151612ec0565b61287b7f8ea5b4dbd68db0bf23bf4cda958b61a749f8c5aec6f2912d75a03246753ddd167fa6b5d83d32632203555cb9b2c2f68a8d94da48cadd9266ac0d17babedb52ea5b613652565b6128c57fdec9d30de0821ad67aa5b141b13a539f584a19f99319e6041698a892b0e795597f8ea5b4dbd68db0bf23bf4cda958b61a749f8c5aec6f2912d75a03246753ddd16613652565b60c082015160d480547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9384161790915560e084015160d38054831691841691909117905561010084015160d58054831691841691909117905561012084015160d680548316918416919091179055608084015160d9805461014087015160d78054861691871691909117905560a087015160d880549095169086161790935567016345785d8a000060ce55662386f26fc1000060cf556801bc16d674ec80000060d181905560d25574010000000000000000000000000000000000000000919093167fffffffffffffffffffffff000000000000000000000000000000000000000000909216919091171790554360da55683782dace9d9000000060db5580156117c357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60d75473ffffffffffffffffffffffffffffffffffffffff163314612ab3576040517f7154fc4300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3460cc600082825461212a91906146b0565b6000818152609760205260408120610d1d9061369d565b600082815260656020526040902060010154612af781612c9c565b61170f8383612ee2565b7fa6b5d83d32632203555cb9b2c2f68a8d94da48cadd9266ac0d17babedb52ea5b612b2b81612c9c565b60d282905560408051602081018490527fd70a6f3100000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610cbb91614b61565b7f5e4bd437d29fad01c10cdcfff414f0d6b0e84b96d2dade88d780d45b5630696b612be281612c9c565b3460cc6000828254612bf491906146b0565b909155505050565b60d7546040517f4f588bf100000000000000000000000000000000000000000000000000000000815260048101839052600091829173ffffffffffffffffffffffffffffffffffffffff90911690634f588bf1906024016040805180830381865afa158015612c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c939190614ba8565b91509150915091565b612ca681336136a7565b50565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610d1d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610d1d565b60208114612d7d576040517f9b0ec52700000000000000000000000000000000000000000000000000000000815260048101829052602401610ee9565b6000612d8c600c828486614bd6565b612d9591614c00565b90507f01000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffff0000000000000000000000000000000000000000821614612e36576040517f08ebf5650000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffff000000000000000000000000000000000000000082166004820152602401610ee9565b6000612e466020600c8587614bd6565b612e4f91614c48565b60d85460609190911c915073ffffffffffffffffffffffffffffffffffffffff168114611284576040517f1b4d561900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610ee9565b612eca8282613761565b600082815260976020526040902061170f9082613855565b612eec8282613877565b600082815260976020526040902061170f9082613932565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003612f5c57838281612f5257612f52614813565b0492505050611c1c565b808411612fc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f7700000000000000000000006044820152606401610ee9565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b60d654604080517f8b61391a000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638b61391a9160048083019260209291908290030181865afa15801561309d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c19190614562565b156130f8576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cf54836fffffffffffffffffffffffffffffffff161015613146576040517f3b8dd38000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000613163846fffffffffffffffffffffffffffffffff16611938565b9050826fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff1610156131df576040517f3aff96a90000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff808316600483015284166024820152604401610ee9565b60d7546040517fb5475cf60000000000000000000000000000000000000000000000000000000081523360048201526fffffffffffffffffffffffffffffffff80871660248301528316604482015260009173ffffffffffffffffffffffffffffffffffffffff169063b5475cf6906064016020604051808303816000875af1158015613270573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613294919061457f565b604080516fffffffffffffffffffffffffffffffff808616825288166020820152919250339183917fcbb10a3603d92dc1f9db6996b88539fbd521bb4144891e34c75b05c341c18379910160405180910390a360d45460d7546133259173ffffffffffffffffffffffffffffffffffffffff908116913391166fffffffffffffffffffffffffffffffff8916613954565b949350505050565b6000611c1c83836139e9565b6040517f7ecebe0000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152600091908a1690637ecebe0090602401602060405180830381865afa1580156133a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133cd919061457f565b6040517fd505accf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a811660048301528981166024830152604482018990526064820188905260ff8716608483015260a4820186905260c48201859052919250908a169063d505accf9060e401600060405180830381600087803b15801561346757600080fd5b505af115801561347b573d6000803e3d6000fd5b50506040517f7ecebe0000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b81166004830152600093508c169150637ecebe0090602401602060405180830381865afa1580156134ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613512919061457f565b905061351f8260016146b0565b81146135ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f5361666545524332303a207065726d697420646964206e6f742073756363656560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610ee9565b50505050505050505050565b600054610100900460ff16613650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ee9565b565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6000610d1d825490565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166117c3576136e781613a13565b6136f2836020613a32565b604051602001613703929190614c8e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610ee991600401614d0f565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166117c357600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556137f73390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611c1c8373ffffffffffffffffffffffffffffffffffffffff8416613c75565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156117c357600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611c1c8373ffffffffffffffffffffffffffffffffffffffff8416613cc4565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052611284908590613dbe565b6000826000018281548110613a0057613a00614598565b9060005260206000200154905092915050565b6060610d1d73ffffffffffffffffffffffffffffffffffffffff831660145b60606000613a41836002614941565b613a4c9060026146b0565b67ffffffffffffffff811115613a6457613a646141b5565b6040519080825280601f01601f191660200182016040528015613a8e576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110613ac557613ac5614598565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110613b2857613b28614598565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000613b64846002614941565b613b6f9060016146b0565b90505b6001811115613c0c577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110613bb057613bb0614598565b1a60f81b828281518110613bc657613bc6614598565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93613c0581614d22565b9050613b72565b508315611c1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ee9565b6000818152600183016020526040812054613cbc57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610d1d565b506000610d1d565b60008181526001830160205260408120548015613dad576000613ce8600183614768565b8554909150600090613cfc90600190614768565b9050818114613d61576000866000018281548110613d1c57613d1c614598565b9060005260206000200154905080876000018481548110613d3f57613d3f614598565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613d7257613d72614d57565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610d1d565b6000915050610d1d565b5092915050565b6000613e20826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613ecd9092919063ffffffff16565b9050805160001480613e41575080806020019051810190613e419190614562565b61170f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610ee9565b60606133258484600085856000808673ffffffffffffffffffffffffffffffffffffffff168587604051613f019190614d86565b60006040518083038185875af1925050503d8060008114613f3e576040519150601f19603f3d011682016040523d82523d6000602084013e613f43565b606091505b50915091506126628783838760608315613fe5578251600003613fde5773ffffffffffffffffffffffffffffffffffffffff85163b613fde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ee9565b5081613325565b6133258383815115613ffa5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee99190614d0f565b60006020828403121561404057600080fd5b5035919050565b60006020828403121561405957600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611c1c57600080fd5b60008060006040848603121561409e57600080fd5b833567ffffffffffffffff808211156140b657600080fd5b818601915086601f8301126140ca57600080fd5b8135818111156140d957600080fd5b8760208260051b85010111156140ee57600080fd5b6020928301989097509590910135949350505050565b8015158114612ca657600080fd5b60006020828403121561412457600080fd5b8135611c1c81614104565b60006020828403121561414157600080fd5b813561ffff81168114611c1c57600080fd5b73ffffffffffffffffffffffffffffffffffffffff81168114612ca657600080fd5b803561418081614153565b919050565b6000806040838503121561419857600080fd5b8235915060208301356141aa81614153565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610160810167ffffffffffffffff81118282101715614208576142086141b5565b60405290565b60006020828403121561422057600080fd5b813567ffffffffffffffff8082111561423857600080fd5b818401915084601f83011261424c57600080fd5b81358181111561425e5761425e6141b5565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156142a4576142a46141b5565b816040528281528760208487010111156142bd57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080604083850312156142f057600080fd5b50508035926020909101359150565b60006020828403121561431157600080fd5b8135611c1c81614153565b6fffffffffffffffffffffffffffffffff81168114612ca657600080fd5b6000806040838503121561434d57600080fd5b82356143588161431c565b915060208301356141aa8161431c565b60008060008060008060c0878903121561438157600080fd5b863561438c8161431c565b9550602087013561439c8161431c565b945060408701359350606087013560ff811681146143b957600080fd5b9598949750929560808101359460a0909101359350915050565b600061016082840312156143e657600080fd5b6143ee6141e4565b6143f783614175565b815261440560208401614175565b602082015261441660408401614175565b604082015261442760608401614175565b606082015261443860808401614175565b608082015261444960a08401614175565b60a082015261445a60c08401614175565b60c082015261446b60e08401614175565b60e082015261010061447e818501614175565b90820152610120614490848201614175565b908201526101406144a2848201614175565b908201529392505050565b60005b838110156144c85781810151838201526020016144b0565b50506000910152565b600081518084526144e98160208601602086016144ad565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60408152601d60408201527f7365744d696e696d756d5374616b65426f756e642875696e74323536290000006060820152608060208201526000611c1c60808301846144d1565b60006020828403121561457457600080fd5b8151611c1c81614104565b60006020828403121561459157600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff418336030181126145fb57600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261463a57600080fd5b83018035915067ffffffffffffffff82111561465557600080fd5b60200191503681900382131561466a57600080fd5b9250929050565b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610d1d57610d1d614681565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6040815260006147206040830185876146c3565b9050826020830152949350505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361476157614761614681565b5060010190565b81810381811115610d1d57610d1d614681565b60808152600061478f60808301898b6146c3565b82810360208401526147a281888a6146c3565b905082810360408401526147b78186886146c3565b91505082606083015298975050505050505050565b60408152601960408201527f7365745374616b696e67416c6c6f776c69737428626f6f6c29000000000000006060820152608060208201526000611c1c60808301846144d1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061ffff8084168061487e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60408152602160408201527f73657445786368616e676541646a7573746d656e74526174652875696e74313660608201527f2900000000000000000000000000000000000000000000000000000000000000608082015260a060208201526000611c1c60a08301846144d1565b61ffff828116828216039080821115613db757613db7614681565b8082028115828204841417610d1d57610d1d614681565b805167ffffffffffffffff8116811461418057600080fd5b80516141808161431c565b600061010080838503121561498f57600080fd5b6040519081019067ffffffffffffffff821181831017156149b2576149b26141b5565b816040526149bf84614958565b81526149cd60208501614958565b60208201526149de60408501614958565b60408201526149ef60608501614958565b606082015260808401519150614a048261431c565b816080820152614a1660a08501614970565b60a0820152614a2760c08501614970565b60c0820152614a3860e08501614970565b60e0820152949350505050565b60408152601d60408201527f7365744d6178696d756d4d455448537570706c792875696e74323536290000006060820152608060208201526000611c1c60808301846144d1565b60408152601c60408201527f7365745769746864726177616c57616c6c6574286164647265737329000000006060820152608060208201526000611c1c60808301846144d1565b60408152601f60408201527f7365744d696e696d756d556e7374616b65426f756e642875696e7432353629006060820152608060208201526000611c1c60808301846144d1565b60408152602060408201527f7365744d696e696d756d4465706f736974416d6f756e742875696e74323536296060820152608060208201526000611c1c60808301846144d1565b60408152602060408201527f7365744d6178696d756d4465706f736974416d6f756e742875696e74323536296060820152608060208201526000611c1c60808301846144d1565b60008060408385031215614bbb57600080fd5b8251614bc681614104565b6020939093015192949293505050565b60008085851115614be657600080fd5b83861115614bf357600080fd5b5050820193919092039150565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000813581811691600c851015614c4057808186600c0360031b1b83161692505b505092915050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015614c405760149490940360031b84901b1690921692915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614cc68160178501602088016144ad565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614d038160288401602088016144ad565b01602801949350505050565b602081526000611c1c60208301846144d1565b600081614d3157614d31614681565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600082516145fb8184602087016144ad56fea2646970667358221220f4b835c80b0aa35d656bd65254e8b76ad80656e16868f7a6f1728135968b11a264736f6c6343000814003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341ff05581e03afab172f5f95293bbb26f4716b6435250918edf01f43f1cb2ff3e124300701194dce038dbc6aa5f8355144df3d7863810f8c589c3a4d953f6f7e6e06ba6276fa3517be034ae9bcd83d8da1b77f20e0da7800c2ea32b7eff2bf20a3843344d54dfca7ccf205581e03b37cc519bf407ebe252fa522a1a74df99597fde6a01a10d529a6fe00a00401031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03d4918597b268ededc65b735ab17f72ad9f017eb732a26f4cb8b00fbac007011bffffffffffffffff05581e036078bd504d9281ac9800eb45268babf2920d46f6e838cad9bd55bc2400040b03843df43241fee5523d083bb34a41929ced48e457d956f61fcd2165414208b45d0219698b031a6e9602ef59c463eb69466baf23497bb420a357e3fa5b06db54fbf8089828260399a62ab8eed6a65a4d3630e3c89b5cde560351ecc3a9a5e11f7e94932aa7b48e03b0b865f4838186e0c60de06097443798b3738342ec0191df38fb14c5918011c7034e3bdb3e85c8d8144c631a1cbd0850861fb2383b72d935a4fc798b1f58ab8ec603aa47f5da571ce2ec3b1c82cb79ca03c249626d1b00b137cd4f97a9b92477bad90219ffff032f9eb56062a798c7ada1bb14f91857a84e9403ed5b8921682c1f45de9f9fe7080319aaa0995a0726db2bf88da30bd3e82abc4f4a8ab015b00af83ab764e7d60dae0367964977f822970f71cadfd64270061c193efab96680d57bfc4145a040695aa70362602fa6ec39bb39bec3e8a399987e7dfe08ba1cb5982e987fe946bd314216e503f6454833583f040bd23755118e085dd7a49bc93db7553e4ec4e811b4bd272a5e03690f11b0ee196446f41f28ec3dc852eb0695a8e5263f72a847679a66e38daef203ecb8ab2f29bfc2308531edc835886875ef4997fabd69fd8beb999d5e720e0ca303e7de45dd881f900017f234d518997c2201ecff7a3764dbe21bfcb6a742b9e4110371ba89e88adc0688404e61928a50953049453811bfe76f3e0b3f94a8d5233d9f0219ffff03d63ce98637d9afd11b4bef3c93c1cdccb1feff6c91fce2f06b52c69f22eb458903a81c5d6967b92107274534c197a5c2b3a4e36801db99267739b33c59c8a67fe60349227c0bb8fa27caf815c1b04f175b36913380623a827bc45fb1bc8bbe122db60339c57e90a15fe7cd412eb0587d5c7af6a1cf494f8407ef049961c0ca994e2bb4035cd46b8662706d37ca891b0f093f39dae9851df6a60e0ec26736be0a2175dc3b030031cf5f8d71c929c16611db52160a84824ca9e6beb1e77341f7631f3d04f00e03b5dbd5d07ad6256580d93db25defeadf6aceebbcb8bba2749c5e91540844ca3b0328fd6f4beca09e389ccd1b3d6648d533ba1fe3245580d6ba59a5d9b4ae2d2d5b033e8deede20777d8887f21ab6af7027b80e3256103894e28eed3e44574bacf7250322bae1b03f6527e675f1da459d5a9ac7229807b2b877703095deeef6dad8725b0300a569e5a0c87ca68727fb816ce7227c6973e8f09878570889bbc9011cb8069d0219ffff03ea5945cb2da33777fbaca97f5ecfb80ac1ffa8a076540e6791b663a22f747ebb03da744ca48a25a85701babb366c130934529107ad81c30a99334502490110d41a0322b73f3e53122b2659e7e0f7c43f192938e2129c98cfed379b05a580c4b10c200316c1c8a7afb21431ebc374c54653d0f245d337e29b72b47b408414c7821e1d3503953dfbf9a20abf298b17b675a090d0d9531b1e4a81504a8737d2583a6da29c34037781baeeee99b2a92defc26c6f03878cea627e81d2a0a25b7702e92c10ab7bbf038c04961376fa9a2df926aa16cff462f10f6fd9c1d9a36084b421de238b17fdd103ad4008840c6e9eb031e32b78efae92bb8be08d04b415a6e518e10bab83a0b78603cdd4dbcaae654f74b707e1a9af7b5cf180ca685341f0b3ddd447eb23d34ed8ca03ec20e6d8f97a16fd48da1dadb5c924cfe5a5ffeb74449a64c7f38d12adde487503f91a8d2113f8df4a0eb92f214453251c1c0cd308c85a8bde9ea4ed3e361b96d8038ad33b32a73949ce8eeb7ff065d224c2cf5498286cf6a42f2bc2b618742a924c031890e56a51edc71e63f0d8d104d67402ae969348a0baff75f19b2f591a3b43ec034105946e4f55ae207760615e2157396eb6e95950cd58780dda09f98361a33769031fc101d999caa607e1b8e689842c612035c83d736bfb2308f0212131578c59fa031e0d5e77b45513cc80f7920ce664a3f3d84f527fa8da61d5e3ac7a745b5123390325a11a651abac9ae574a67c0b02048576f02b8e6db5df7659067353a12180d2003b135c451dae9814848da539a984616ca45afa921812f96a3c2231ca8b55720540300582b3fcc94b874135f97e249e76c3859d2305346c3e1601df03c6498604e4f036ae94efc8fa4b0846ee5265c1d540f9e7f4f6cacae40bcaadd3995bc563752db03894677f3715a28fdeed39fa78549a69ed7853be7f034353007afaec9c84ad3150339ce478fcbde59779bdbb30f006426abccbe3f30e3be97162d8c1f96a8d4817405581e03c22020e1ab66911aa8f91d068dd1a6dcadd60c6cdffca4022b5c99f570040105581e03e09027b4cb1ac6ddfeebd946825a65baf569b6674897a3930df84148a0040305581e03f7bd6c0d883b0a24edcb352560bdb7ea62bb34882ac0213f557e3da4b00c0142138005581d02cd7dbdb83466d6dfdcccbab5346c5fea2b3795dec596f876d94b57ed0c014638bb2a0d8a7004592220608060405234801561001057600080fd5b50600436106101a95760003560e01c80633b70c18a116100f95780638da5cb5b11610097578063bedb86fb11610071578063bedb86fb146103eb578063ea5f084f146103fe578063ef6602ba1461041e578063f2fde38b1461042757600080fd5b80638da5cb5b146103b457806397fc007c146103c5578063b571d3dd146103d857600080fd5b80636989ca7c116100d35780636989ca7c146103635780636d46e98714610376578063715018a6146103995780638a336231146103a157600080fd5b80633b70c18a146103325780633fdeecb2146103455780635c975abb1461035857600080fd5b80631794bb3c116101665780632362f03e116101405780632362f03e146102b45780632571098d146102d45780632b7ac3f3146102f457806331fa742d1461031f57600080fd5b80631794bb3c1461027b5780631d49e4571461028e5780631e228302146102a157600080fd5b806303c7f4af146101ae578063059def61146101f35780630a2459241461020a57806310d445831461023d578063116a1f42146102525780631325aca014610268575b600080fd5b6101d57f000000000000000000000000000000000000000000000000000000000008275081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b6101fc609c5481565b6040519081526020016101ea565b61022d610218366004611d00565b609b6020526000908152604090205460ff1681565b60405190151581526020016101ea565b61025061024b366004611d6b565b61043a565b005b61022d610260366004611db7565b609c54101590565b610250610276366004611e17565b610643565b610250610289366004611faf565b610996565b61025061029c366004611d00565b610b42565b6102506102af366004611db7565b610ba8565b6101fc6102c2366004611db7565b609d6020526000908152604090205481565b6101fc6102e2366004611db7565b609e6020526000908152604090205481565b609954610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101ea565b61025061032d366004611feb565b610bf5565b609854610307906001600160a01b031681565b610250610353366004611d6b565b6110a0565b60655460ff1661022d565b610250610371366004611d00565b611342565b61022d610384366004611d00565b609a6020526000908152604090205460ff1681565b610250611399565b6102506103af366004611d00565b6113ad565b6033546001600160a01b0316610307565b6102506103d3366004611d00565b61140c565b6102506103e6366004611d00565b611466565b6102506103f9366004612078565b6114bd565b6101fc61040c366004611db7565b609f6020526000908152604090205481565b6101fc60975481565b610250610435366004611d00565b6114de565b610442611554565b6000811161048f5760405162461bcd60e51b8152602060048201526015602482015274636f756e74206d757374206265206e6f6e7a65726f60581b60448201526064015b60405180910390fd5b60008061049c85856115ae565b9150915060006104b0836001015160c01c90565b6000818152609d602052604090205490915082146105075760405162461bcd60e51b81526020600482015260146024820152730d2dcc6dee4e4cac6e840c4c2e8c6d040d0c2e6d60631b6044820152606401610486565b6000609d8161051687856120b0565b8152602001908152602001600020541461057e5760405162461bcd60e51b8152602060048201526024808201527f726576657274696e67206d7573742073746172742066726f6d2074686520656e60448201526364696e6760e01b6064820152608401610486565b609c5481116105d95760405162461bcd60e51b815260206004820152602160248201527f63616e206f6e6c792072657665727420756e66696e616c697a656420626174636044820152600d60fb1b6064820152608401610486565b5b831561063b576000818152609d602052604080822082905551839183917ecae2739091badfd91c373f0a16cede691e0cd25bb80cff77dd5caeb47101469190a36001016000818152609d6020526040902054600019909401939150816105da575b505050505050565b336000908152609a602052604090205460ff166106995760405162461bcd60e51b815260206004820152601460248201527331b0b63632b9103737ba1039b2b8bab2b731b2b960611b6044820152606401610486565b6106a16115cb565b60ff8616156106e45760405162461bcd60e51b815260206004820152600f60248201526e34b73b30b634b2103b32b939b4b7b760891b6044820152606401610486565b8251806107245760405162461bcd60e51b815260206004820152600e60248201526d626174636820697320656d70747960901b6044820152606401610486565b60008061073188886115ae565b915091506000610745836001015160c01c90565b90506000610757846011015160c01c90565b6000838152609d602052604090205490915083146107b75760405162461bcd60e51b815260206004820152601b60248201527f696e636f727265637420706172656e74206261746368206861736800000000006044820152606401610486565b609d60006107c68460016120b0565b8152602081019190915260400160002054156108245760405162461bcd60e51b815260206004820152601760248201527f626174636820616c726561647920636f6d6d69747465640000000000000000006044820152606401610486565b604080516020870281019091526000805b87811015610889576000610866848d8481518110610855576108556120c3565b602002602001015185888f8f611611565b948501946020949094019392909201915080610881816120d9565b915050610835565b508761010060ff830104602002146108d95760405162461bcd60e51b81526020600482015260136024820152720eee4dedcce40c4d2e8dac2e040d8cadccee8d606b1b6044820152606401610486565b600060208802808185032091505060405196506001850194506108ff878f60ff16611872565b60c085811b600189015282811b600989015284901b60118801526019870181905260398701869052610932878b8b611879565b6000610948886109438c60596120b0565b902090565b6000878152609d602052604080822083905551919250829188917f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f91a3505050505050505050505050505050565b600054610100900460ff16158080156109b65750600054600160ff909116105b806109d05750303b1580156109d0575060005460ff166001145b610a335760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610486565b6000805460ff191660011790558015610a56576000805461ff0019166101001790555b610a5e611885565b609880546001600160a01b038087166001600160a01b03199283161790925560998054928616929091168217905560978390556040516000907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd96908290a36040805160008152602081018490527f6d0f49971e462a2f78a25906f145cb29cd5e7bd01ebf681ac8f58cb814e5877a910160405180910390a18015610b3c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610b4a611554565b6001600160a01b0381166000818152609b6020908152604091829020805460ff1916600190811790915591519182527f967f99d5d403870e4356ff46556df3a6b6ba1f50146639aaedfb9f248eb8661e91015b60405180910390a250565b610bb0611554565b609780549082905560408051828152602081018490527f6d0f49971e462a2f78a25906f145cb29cd5e7bd01ebf681ac8f58cb814e5877a910160405180910390a15050565b336000908152609b602052604090205460ff16610c485760405162461bcd60e51b815260206004820152601160248201527031b0b63632b9103737ba10383937bb32b960791b6044820152606401610486565b610c506115cb565b84610c9d5760405162461bcd60e51b815260206004820152601b60248201527f70726576696f757320737461746520726f6f74206973207a65726f00000000006044820152606401610486565b83610ce35760405162461bcd60e51b81526020600482015260166024820152756e657720737461746520726f6f74206973207a65726f60501b6044820152606401610486565b600080610cf089896115ae565b915091506000610d01836019015190565b90506000610d13846001015160c01c90565b6000818152609d60205260409020549091508314610d6a5760405162461bcd60e51b81526020600482015260146024820152730d2dcc6dee4e4cac6e840c4c2e8c6d040d0c2e6d60631b6044820152606401610486565b88609e6000610d7a6001856120f2565b81526020019081526020016000205414610dd65760405162461bcd60e51b815260206004820152601d60248201527f696e636f72726563742070726576696f757320737461746520726f6f740000006044820152606401610486565b6000818152609e602052604090205415610e2b5760405162461bcd60e51b815260206004820152601660248201527518985d18da08185b1c9958591e481d995c9a599a595960521b6044820152606401610486565b6040516001600160c01b03197f000000000000000000000000000000000000000000000000000000000008275060c01b166020820152602881018a905260488101899052606881018890526088810183905260009060a80160408051601f1981840301815290829052805160209091012060995463cc780aa160e01b83529092506001600160a01b03169063cc780aa190610ed09085908b908b908790600401612105565b60006040518083038186803b158015610ee857600080fd5b505afa158015610efc573d6000803e3d6000fd5b5050505081609c5460010114610f4c5760405162461bcd60e51b81526020600482015260156024820152740d2dcc6dee4e4cac6e840c4c2e8c6d040d2dcc8caf605b1b6044820152606401610486565b609c8290556000828152609e602090815260408083208c9055609f9091529020889055600985015160c01c8015611054576098546001600160a01b0316600082610f9a896011015160c01c90565b03905060005b8381101561105057610100818503811115610fba57508084035b6000610fd08b6101008504602002016059015190565b604051632afb09e760e11b81526004810186905260248101849052604481018290529091506001600160a01b038616906355f613ce90606401600060405180830381600087803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b5050505061010084019350505061010081019050610fa0565b5050505b604080518b8152602081018b9052869185917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a350505050505050505050505050565b806110df5760405162461bcd60e51b815260206004820152600f60248201526e1e995c9bc81cdd185d19481c9bdbdd608a1b6044820152606401610486565b60008052609e6020527fedae58bba15aea52a58242ef195db2cc4de2b75de265dbb0d58482df22a9597854156111505760405162461bcd60e51b815260206004820152601660248201527511d95b995cda5cc818985d18da081a5b5c1bdc9d195960521b6044820152606401610486565b60008061115d85856115ae565b915091506000611171836011015160c01c90565b600984015160c01c600185015160c01c855160f81c010101905080156111d95760405162461bcd60e51b815260206004820152601760248201527f6e6f7420616c6c206669656c647320617265207a65726f0000000000000000006044820152606401610486565b5060006111e7836019015190565b036112255760405162461bcd60e51b815260206004820152600e60248201526d0f4cae4de40c8c2e8c240d0c2e6d60931b6044820152606401610486565b6000611232836039015190565b1461127f5760405162461bcd60e51b815260206004820152601960248201527f6e6f6e7a65726f20706172656e742062617463682068617368000000000000006044820152606401610486565b60008080527fc5dc36ae4e7617e4c4d23ddfcde33c79e9ed64c300aed766a9288a6b9b31f63d829055609e6020527fedae58bba15aea52a58242ef195db2cc4de2b75de265dbb0d58482df22a959788490556040518291907f2c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238f908290a360408051848152600060208201819052839290917f26ba82f907317eedc97d0cbef23de76a43dd6edb563bdb6e9407645b950a7a2d910160405180910390a35050505050565b61134a611554565b6001600160a01b0381166000818152609a60209081526040808320805460ff19169055519182527f631cb110fbe6a87fba5414d6b2cff02264480535cd1f5abdbc4fa638bc0b56929101610b9d565b6113a1611554565b6113ab60006118b4565b565b6113b5611554565b6001600160a01b0381166000818152609a6020908152604091829020805460ff1916600190811790915591519182527f631cb110fbe6a87fba5414d6b2cff02264480535cd1f5abdbc4fa638bc0b56929101610b9d565b611414611554565b609980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f728af3d16a5760405e27a082c98ab272e9f0a1d02f0085d41532a26093aedd9690600090a35050565b61146e611554565b6001600160a01b0381166000818152609b60209081526040808320805460ff19169055519182527f967f99d5d403870e4356ff46556df3a6b6ba1f50146639aaedfb9f248eb8661e9101610b9d565b6114c5611554565b80156114d6576114d3611906565b50565b6114d3611960565b6114e6611554565b6001600160a01b03811661154b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610486565b6114d3816118b4565b6033546001600160a01b031633146113ab5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610486565b60008060006115bd8585611999565b812090969095509350505050565b60655460ff16156113ab5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610486565b60405185516000916020880191819060218a01908590611632908690611a68565b90506000805b8281101561169457603c81028701600181015186526021015165ffffffffffff19166020860152603a850194506000611675856038015160f01c90565b603c95909501949290920191508061168c816120d9565b915050611638565b5060200283016040526001850191508260006116b58784603c020160010190565b90505b821561179b5760006116ce85603a015160f01c90565b90506116de86828f8f8f8f611b1d565b955060006116f0866038015160f01c90565b9050818110156117425760405162461bcd60e51b815260206004820152601d60248201527f6e756d20747873206c657373207468616e206e756d204c31206d7367730000006044820152606401610486565b815b8181101561177957835160e01c60048086018290208a5260209099019894019093019280611771816120d9565b915050611744565b50509b8c019b9a8b019a9790970196603c9390930192600019909201916116b8565b60975460206117aa84886120f2565b6117b49190612145565b11156118025760405162461bcd60e51b815260206004820152601960248201527f746f6f206d616e792074787320696e206f6e65206368756e6b000000000000006044820152606401610486565b8c5161180e88836120f2565b1461185b5760405162461bcd60e51b815260206004820152601e60248201527f696e636f6d706c657465206c32207472616e73616374696f6e206461746100006044820152606401610486565b5050505081900390208852505b9695505050505050565b8082535050565b80826059850137505050565b600054610100900460ff166118ac5760405162461bcd60e51b815260040161048690612167565b6113ab611c6b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61190e6115cb565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586119433390565b6040516001600160a01b03909116815260200160405180910390a1565b611968611c9b565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611943565b60008160598110156119ed5760405162461bcd60e51b815260206004820152601d60248201527f626174636820686561646572206c656e67746820746f6f20736d616c6c0000006044820152606401610486565b6040519150808483378082016040526000611a0c836009015160c01c90565b905061010060ff8201046020026059018214611a605760405162461bcd60e51b81526020600482015260136024820152720eee4dedcce40c4d2e8dac2e040d8cadccee8d606b1b6044820152606401610486565b509250929050565b6000611a75835160f81c90565b905060008111611abb5760405162461bcd60e51b81526020600482015260116024820152706e6f20626c6f636b20696e206368756e6b60781b6044820152606401610486565b611ac6603c826121b2565b611ad19060016120b0565b821015611b175760405162461bcd60e51b81526020600482015260146024820152730d2dcecc2d8d2c840c6d0eadcd640d8cadccee8d60631b6044820152606401610486565b92915050565b600085600003611b2e575085611868565b6098546001600160a01b0316600080805b89811015611c005760ff89169150600889901c811580611b5d575082155b15611b6c578060200288013593505b600184841c16600003611bef5760405163ae453cd560e01b8152600481018a90526000906001600160a01b0387169063ae453cd590602401602060405180830381865afa158015611bc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be591906121d1565b8d52506020909b019a5b506001988901989788019701611b3f565b505060ff60001988011681811c60011615611c5d5760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f7420736b6970206c617374204c31206d65737361676500000000006044820152606401610486565b509798975050505050505050565b600054610100900460ff16611c925760405162461bcd60e51b815260040161048690612167565b6113ab336118b4565b60655460ff166113ab5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610486565b80356001600160a01b0381168114611cfb57600080fd5b919050565b600060208284031215611d1257600080fd5b611d1b82611ce4565b9392505050565b60008083601f840112611d3457600080fd5b50813567ffffffffffffffff811115611d4c57600080fd5b602083019150836020828501011115611d6457600080fd5b9250929050565b600080600060408486031215611d8057600080fd5b833567ffffffffffffffff811115611d9757600080fd5b611da386828701611d22565b909790965060209590950135949350505050565b600060208284031215611dc957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611e0f57611e0f611dd0565b604052919050565b60008060008060008060808789031215611e3057600080fd5b863560ff811614611e4057600080fd5b8635955067ffffffffffffffff8060208901351115611e5e57600080fd5b611e6e8960208a01358a01611d22565b90965094506040880135811015611e8457600080fd5b6040880135880189601f820112611e9a57600080fd5b8181351115611eab57611eab611dd0565b611ebb6020823560051b01611de6565b81358082526020808301929160051b8401018c1015611ed957600080fd5b602083015b6020843560051b850101811015611f77578481351115611efd57600080fd5b803584018d603f820112611f1057600080fd5b602081013586811115611f2557611f25611dd0565b611f38601f8201601f1916602001611de6565b8181528f6040838501011115611f4d57600080fd5b81604084016020830137600060208383010152808652505050602083019250602081019050611ede565b50955050506060880135811015611f8d57600080fd5b50611f9e8860608901358901611d22565b969995985093965091949293915050565b600080600060608486031215611fc457600080fd5b611fcd84611ce4565b9250611fdb60208501611ce4565b9150604084013590509250925092565b600080600080600080600060a0888a03121561200657600080fd5b873567ffffffffffffffff8082111561201e57600080fd5b61202a8b838c01611d22565b909950975060208a0135965060408a0135955060608a0135945060808a013591508082111561205857600080fd5b506120658a828b01611d22565b989b979a50959850939692959293505050565b60006020828403121561208a57600080fd5b81358015158114611d1b57600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115611b1757611b1761209a565b634e487b7160e01b600052603260045260246000fd5b6000600182016120eb576120eb61209a565b5060010190565b81810381811115611b1757611b1761209a565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60008261216257634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008160001904831182151516156121cc576121cc61209a565b500290565b6000602082840312156121e357600080fd5b505191905056fea26469706673582212205e9a5c17d13e5b042b73d7bb1391289157c1816b53fbc4880f0d2ae5860a92e064736f6c6343000810003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341ff05581d02ce212fc0aa5b1098a233032a1cfb4781fa8ccde94b9e8c7b50fc50fd070119222005581d02328250a95c0090fc9d9d955a4dd66334d33059b379f0ac58ce0dc67e04020219012203db7585331abb4269c878a97ed9dd0982a1ae106143a55be243ce0b9095b3a876035fb54783b3fe8121dde407b4ed35930f7b059e61753be042913af0de8976c7ee03b671726f4d9f7af2595ea6427ab8f49a16c20db9f536f1a8ed610abfa820a8cb021938c60328e8ab79d5efbb419bfae711d0420a4964913ebc48f82013c44092c18e7ca9a403b39cbf0cfa94fd454c4ea25f3bc562dae0e0b2f16848041065cab3b57b017372035365aa2bb077a74119bdcb9539e3eefe1886b30f22aa71857d5f2801fb14924c036e9d26bef86ca5df062f93676fdd3f69825c00e5cb97b8484637339e5f9d97f4032781b0225984064d8f4275fe83395ecf929e1f40ead806b06525833750247d5a03ba8d865206c7208acb715bcc6fa8abc9c5a3e75b64a731d10af41558f73ae2230328a18ad136bb2d916ce100823ba7cf5854028f2ab84308bcaf0c1dedef73d64c039119082228614db1f151622de4b783f38bc634363115b1456ac1018dff1c4e9103523362be5b052d6a28bf62c5bdda606558f0ff565d4f3e0a07fa264c4f61989e033bbda5a3844023ce2c2145df4c1697796b906df4e31414a9a0fef4529ad05b0b037da90f0185e03de3db3d5fdd61111078253677caef424a33a909f526218aa14903eb012122411a7514a84dbe441d5af7eee4bc4236622c3fa91078399f37a6dd840219ffff0337a8d8740b49369758e462c19a312472beb5e2d86354688f33fb061d9d42c13103e488f2dd834d174b8c81c98c026bba10889d8cfe4f2bd0e268a3f72ae781cdca037df2bf7921296ff26102ac49d05d3d04e9c2e848030704bc41c783e2a0a517610386cf045ad86132166456f065e583ac1dbba6e1d5cd1dda95306cb67e09af208a039c2773c488420b78c367f151963677f1f4db0ae9d455db02c3b59e1c389ca3de03a3f7160be3c21a09fe79338cd4710e9cc2f87dc46d7c14d4eaa0949a6881117e0219ffff0359ebc8041664b0f3e46eb04aa8b0db900cd824386e92c2130e03462969da387e030b6e82a8cd84d32f57cecf0e9ba5551fbb2495d130785d61f3eee9f765fc8b8a0303a8c87d7b22b9b86b91c148e5b116b7f5939742e6e490b730894e4d185fea83030eaa30aab2769362db9708aadaa66abc8b34e43330c0a77729c5243f95f2c28203ee162c958ae2fae1e481dda12ad64b11157ec12858bdb9099bb848ca75b2ac8d035ae46e7baac845337618e919793413680c7ff111e5fda489f1ef0efc92bb7a3d0354e0a8dc84ce60e294052fb93ea34175d3adb6687239b7a731602b5a989d430c0309ecc8a6fefb2704055ed36af234813b0fec0fc4beb7938412aba1acdc0685b903ab26f8ac6a721674b672fe5d14a38910e8ecf28b313d68d02d9bed876679b443034ad46c873986701d80381903f046d13b7bbeec9341da8865abb7e35bf604300a03ff945e394ad5b90b050feabe4ec27816981f06272da93a607c2925a70754e7de03b143b75324bb94fb17d96609d5ae001cf2b5eacc6c238381bddbe65cbeb9b8aa03e2c6c5a9adac5881e60ad69a86451c123414de2a18fc7f5e6bb3f0f91a45581b031a03c0c8d4b7e1fa03187d970c0edb135ab9677e266e9ce9e2933bacc16b52c50322c10fce67adefb6a7edfa16c2e8bba445923bcf5ae86848cee0f2e1f270147c0219ffff0219ffff03c90052c9fbf837e97ca39c17e7798ad865a7d97ce91eaf8c0b8b4a8c89cc00670319c91258b1e4649902f9f5ddf5c1ab7f24ad8fda8d166c7b956bd4199a784d3303c442b06476757c1f0e9eb0a6ba2d1600fbc47cc926d5e6d753e315d2253f2ad303e7c4c12b0dace2f45a324b7523227bc76fd4e405d869fe95aff05480696d7175033b9c7c10dbe54bf158dc0507c27413b09084b9c76ed484cefb518395dea44208035d374c38fdb9d6ceb85b89cb80a635fbcc81ff815bdc3a7c00b27d84468b809c0330bad5d9c93b56c841973827303146bb2d524b1631a7ad1e5b55384687b8393a03b298f7086c11164985ecae44f79cc4756e06a688169ab148728c318baedf017903d845315476fb2d17797a8297a6660622fe5ae5ab6facc856ba368eb49b19774203deb4016fd761fce9681365e50a400ba4271751d00191e8f4fe032953fa0ce1c603b35f2b639f18ef8825a3337bf5a94ecba00c90ad5cc8140d7d6d1b3e2e5357e503a662023ca816072bcbddfbdd94474aee2986e9c9ab46d73f79e00e9c893f4291038952ee3457fd1d2cfbad336da4c1a6d9da91ebcfc339552d58a2dde5e5ce148e03e9d5b2c77db9a9348291939ec3cff632c4ac517827696f47e1968ef702bc16d4031e3475af5fed402a058ead6f520537e565a8ddaffb6f09929fd60576f13793b0038fb4e5cf9a527a61120672441e6f7dfbc51a06901bb3293e096d2a957bb3cd1e0398c87e97b6b055f337f64ce78d61ca16b94b18e938ae4267b788d3f5637040df0392dd46c2c0c4390a65ca3945b053e262c71959049bbc0ab6cb621bce4da237d2030f0eace076cf13e2e315de3c8eb4b50749ab10b0a16945ed5bed8cabfef4e44f037c4cef46e49a129e3a82537ed2a15d75ffa4bcf8390b56f8b6b52177ed8aa96f0374a5f95b9a165e41e8fd89aa13ab51d73f5d3c2f10921800d67cb9334e307af503b556e589fa840959562ce68b3444aec7e040d6e89604a5df0cd2c836ce6c7a0903c055a71981886a63ae2bd849a357b24b4a3201f5e7191d5964065a068c1cd71d038ecea6278f7f121d952581885829b531b7bd8cf668867276fd37fd70fb9185ba03c8f27fc766e5c3b1a490f600c067fa6ef0bcef5f2077e665fe1fa186debbe8fa031837429b1fbe54f77d845d5d1e1eb900666d8f95a42bcfa03b8746dbc021ffb2033e3c149e4e25f69a74e72adbf199fbcf929e893bf75dc1cfd6b422a9ac1727ed038a24bc4033c3bb367726263069d2311aec95a9ae20f582481887020ad75483e803d724244ca8a18928b51d17d6f90f95493657a135487a670a6735a34b940fdca10345a64713a00a6baf5eb53308df7f48d573cbd2f65350096757e8b29f5274e8c4038040580872de051d0296a8d2b02c01c5ffa5460c7e460b039de25bbf038488c803e378f13e3918f3f3861ae117bcc02719b1e2b4db39b602278f26b0d279efc4b0039e8822f8c8cfcf77cf63d9bba80c8be65da794457ac6addc49bce73d37fcdb2d03a6cd272e25c886a9ebf700ee2a8a63b48aeccb73aa42e386c3f3da11324c04d603e360bd4270b4fb7ea06422d36d8feba8c236ce082d29b389707ba255a503988105581e03a3a1d181c945696934ed127581d34fc3557d9622de0a6cacec9fae7c00040405581e03087db2ba6fc13479fdf2ac5e5e07fe6803d8b200bd574cb55126ac9270040705581e03edfbbe5244862482ea805ec0ed03279a1d00a40fc0513794bf0b7e32c00c1818484266e90da39e40e605581d028c9f27e30e1a2cf1ca5a0d166a6da26ec4c17a9cd8518745dda414bf0c18714839ed02b9aabaaf4505581d02b47a26fb210002ce55b9a2c322c0d1cf9f0a5499897722e63609a7fc040205581d025e8e66eed05bb3de31e03e9b27737ea5d325e46db092f6ac958a8b730c03461738385e84b70219044103f9d9f91e15cd121ed07bc3f4345655bf935120fdf053ef0fbd60a8a020c27a0301410c0337c0119771231164f1bd6f0ad59ebb207301499b82411511dccb2889d924791405581e03ef5e6e069c3c6322436d7819d811d066e5e1a4c7e9bfea31e92076aa900c0144ee6b280003e83646646652f786de7199aa3767cb4deb096c776fb528fb6ea54a9858d2930e03f6bb5bf3981bc0ae028f5be28bf5eec36ca3185db69ad8aab560298431f740b605581e038ecfd8813a3b44ac410c04a8d0fd3642e567066500e67605e7ae8c40a007011bffffffffffffffff03dea687a7b345d5b28144d8260d681b176bbf52a0aec66ba196910c3eebdc4afa05581e036441d2382a462092fce7d81852a7fb36abfa4d9e0553519cce890c5b8008470b3d3211cb1c0005581e03df149fd6079c4dcddd5ca2dbd61c0fe55bd1a11058385917789b33d3a00c05471bb9429b4aea0605581e0319a520430faeae846576dbf11da466892396765390f84d0224e33e59f00c01474384347c9adb6402196efb03ddecc2f1b1f73fc8fd27ca21aa679659b54b7e123d4ad24bc188074fa4126df003443368a5d14828b185ba111cc947fda874ce5de81b3d2ca0f9eda5fb87daebc203936e78ff1899bfccc70b7334b6204b832d9ccd0bac92b04b725b07952a61c56b0345ca39fc813787c118043f14a203e5330e779ff0fe10983375f1e10dd5910cb403677acafd812a931b7823795962ba012581a967dfc775aaae4a301f1e114385c7039dd411d0db7367e551b283953c85f9fd075cac7d1ea4e89c152bd2a2d0800ff90313bb73b889a46c2eeecbf74ffa9512bd091612a95dd04ae876ee6ac24d226f9803e1bdafafe7455f2750d4e9ff748fda17b24183fd3ef0e4222bc607e32d5472250219ffff0219ffff03972407dd82bb5dc50688aff667e219140f82e4c02293421ff305ada3dc80a16503bc6c6efcc9820ce0d25202273abc727c34868898cb6418eeb8266764af87a15003b87dab694e24c9e53059269f4e17b6de6e116bacf61ec71496bbf0797991de520219ffff031bc463064da53170e10201513430d775d2fc4ec915bc68c9d382e42e4befac76030804d2711d4200e1b5696211178b2feea490def9b1194009f1d06fc09e3b820f03064d7198168b196058f77f969001fd8c3ea4164dc48118ff5875fe7862d85e8a03dac440c973a7dba2515211114bf26e6170c384d90ba50ee8f7feb6e0344c96dc03d11c5df0b890cc942419d84ad4a00ba85dfcc0b71483bf88e3905b19f20aead403fb1bccd1e48eacc2efd3b7838b4f6b76ed64454144fdc801a5b5ac53e3e0cfb403e7beb6046ae50e05c61a7c95993ca6021ea8aacd64acdf18aca81f4471ecd419030f22ef56c6b84e82db12020d61058ecb427dab669dc589ee0e237a01db2978d603062adcb0b480209229e933f0f03b2254e8e29c03dc17f0bdadfa58ba2411c55e03655dbcc616031384b449d3b121edc49985d041709c4028ba5a31381529401644035aaa19f8c7101267d11e6db99f02659ed980bcfd51ca777c7939b28613baa51e03da52ac0cb446f340f4863e0f0a6ed26f1613e1aeaa9b9bae1277ae323f15466603d160c38d19a2a4a3b3168388542c742437d9484761b6c5b3df0d248698d3080103c28a431e634c11ec1c03ed57bfeb5793217f57016a9745df8a9deca71c911ee7037822e2ffeb54ce303355f3c36ae90314a82f4db3c6f2ae403c07aee38e3fc66203b5572deb78fa2a89e442f0f8471c8d2b8bc13d7396ad912f3405900f27d8c5850387e15662cc9bdd3b2e2a6804bff8143f7d7ff879102c3ad037a5c1d89f9c5fc503144ae3fef8f3cb94f87ad33ad7a832308af8608a5d74ceec1bd1b51cafc18c76032e3092af8b7caafeb4d81cb298a59d508bff710033741daa5f7b479a05341aff037ecb8fd63f88fc8d75f79fa422c516c7947ac5ceb163f65c1fb8db889c80cd2f0375efe69ebbb6d2dab98fba60fce9a5c3ac516e1dc16a9952d20aa762b9f31abf0318a5ff403b56f28ce9e6523615236906b4fda6175885afd24fc2a4f76fd09b6003b23341392feb185b4be58f3ad994d02e8c8c1dd349e203cd5c1475e5819b947f037b4dc2c65142fa9c5f6949cbfb8fd6ed495ff21113ca3aa5dcd6b6840cb9cba203e08b005331d9a155b3a53e3af4947cb6cbab2e307110767ed00c4b110bbe675c03c63fcb369f52e844c813ed445f9ecd99b66ee4785f8afd7696eb64111d61e31f03f6b51de761fedb7ba1b61b42c52bde6bab333f557e19de0703523189eb58d647035c81fd90926b7640ecb60865934953fc9d05e30703ead9ab28704fdd624ac3a303f8382ae717e1ad23fb9df39a5b9a84467acfaaaf78081019e0ca827572cc885f03987a247c70c8c349875a86c78e91ec3275d4b99cc5582befe256f2b3a02e301503f210fec669d781cf7099154212027a7b3b30b8863fa1f0cef9fefb7372f971000363c9495af564be65650547f5dca35801c5cdc07497cf04284b608c67ab3752b7030400da4fe9be8f12d0969bed319e742fe4fbb92f3dc42877171712140c61b0d803bbea75f3f934f69a651e4d97c3df703d357ca64c47e6d3802b81b49f2d359a20034170526c2029bdcd0a951fc3c63d0581ce93a11609c6686767eaf71a477ea3ac033e55098bdd03922c18069d52051d5e9f8e4dff0f1407c9b92e50903e47629300034643205ba42f7236410f6dd185dc1776415f707851b9557c90692cd98d3ca99c03fb7fe9c4a2472684b7397c3965ae1c1f0223ab063a0e71a26c2114eb20f483d703a391c070b426670d56c31d19d609d0bf19b552ba51cbc354012b4f6eddd1477b0329976d9caa6bd8e413166ad103723fec00e0f61443498298c332416a6260d4c6036caf9fb16747b365d24930c07b0b3cfb4f0076a9653bfdd46933c27902653c500323a9ee77f0264a76ef7b7fc1aa65270b659c1d452f19fdf01114a1d5aa29062903c5cceb862c017fd1d027db617f6f6a1508de48712b7a8ff3ef45e47c453c4bce03fb210dec11d887314b0f455d762cd5389182d0a85b9129459f28e9b521e0bab003c7c3cda20ad22657c80d943a5416d6551a7de6562cea481a450e3098c97dc2fd03b572b6e06fd77d9866d6f573b51b1174586dd7a75942020b9210b7eceb1817c703299022ca8de45754776e3c4371e56c0801d037e317bfa2d20967916ee2ed418305581e035cdbd9b3de3ac09da9aacaf50cf750a8c114bdc5ab8f6fbe8bea5c62a00c04432e248005581e038686ef50b56cab2923d5b55dc00323499440ddbb9982662b9b66dd9b6004020330ca680e0667e4446d217d143a1255e355d9ffde5da0d3f474fb5d1ed01653e405581e03879dc477122f50292fce7c0e769de36903a0af13f823ca649b7b7fe5300c0146c7f8793f2c000315e5fc016662cf8aedaec5a7a8358f2c538b0c7c4f15cbd1b2921407893847b803ded0756f0d5d622860abac834730598af55ac514b97f8600b3075fc998e9702c05581e031e72df7e9411e125070c86b1aa8c5807fdaacfbce8e3d70e040be4006007011bffffffffffffffff032c0a7b2d338e1792ea583d0cc5903d5cc50cba2c923bf2d362e8a68a9c2a383105581e03ed50b02d0ff63b9b26d6385157c7901dca336fb834ed62bc3b3ae77fa00c014702504141ff875805581e03097aeb6c6d5cc0c5294ba9f5ac7ab8c69f392e9b6ba310774288777b000c01473e6c36fde9000005581e03f7462291fa6f0684e047385b2da5b08c359b6179fe222e354356b47bf00c01412e03388ab1a7a268c7974d1b53ea7140e2d8705ae6410d34132e2dbb89e48575a4340219faa703b978d3c818ca98a94ce803ec04a6bbe34718c31603e4e0639bd13c37b18f21fb0219ffff03de23850e5f4ace7c1394f9898d7c0f536128f01ea6b918198e8f8d736b58c1da035a209703b77b1edab49a38a840428ffb61cd67f25c84ae603d108e745dd3fb870304331a95f0e09b14f3def4a0aeecd9a65a41e6e702c5ed0ea1411f3de5da89aa0219ffff0366fd82d4c11d07767bb6a0c30eb2c6d1937119950bf2fe5c953a5a33d5a8e2d4031e5c5bf06807a7ff0342dfe376e5a0442e2bee05606120248ec4f5ce06fb4e1903b75dcac483c60f4b1b00cdc93dead3ee1f0fe015adf356f69dc36305bbad448e03dbd52ee91fcc99b442b2281fdf222272d5a0b007a3a8073f3358ac5fa62c3435039f942137b7ab8f0fcd8853fc1010cb51d27dda9d593330b2048f9a9e3f59e49f0219ffff034317504778f6f8c8d906b60db3c9b7ad692dc37c02683b92d7d899a1cd82c642031c7a5d37f23008aeb5740b427da1ab59830cc2dbfe2b87261b8ee29b9cdb043d0347ad37618dbd83a7b6d3e86662cad2496e13e778164e39d097a7bc6462e8297f03efae64149c416d21dec0986175b4c85aaa7b49b3b40ca55769d77d6227e3c54a0364f71ed58fe128df335d4979bdf747a1a8b02959b6d400ddb74167db84caca93036eb837d817e4ff6cdaa2d4cac7025c7028d05034be475ff7b058a3c33006cf5a031d7e1f634e16dead7f94f8c24cfb0b15f454d11dc0f9f587403f7afe746be89c03774578cf04fc739f39df2ae43513a836951a1d7e221c277fd6288b0628871fea03c6af577ab81abdcc0cb9d2d333db5f1245d8ff0ab48b2fdf37fc9ef78e48e1400331c75d1482dfc821fe571fdcd35e614087ff2cdc3d9a87fb888b47be6ac078d2034c708e7daff03a733888ea630e03be4813a24879f37008e9bc0007802d5a067c030522f1eea6be325491043a7bf96b437f79ee9d2641bc27020a6e15c3beec5f160307f885211eff55853d41b2cd5fbc87120b163d65670901c16a2768c6f128298f03ed473d3460ac7c4eb4b85b0750a3dbabd70b6b06465d2d300e7b66c7399c889f037f03363c24ac085623cbc176580836aa59cae92ba6fb7d0669883df2cedc8378031f93fed0f25bd2590a9652fcd5333bcbd22b7d22655848eb24f1182c063981b60362726175ba4bb75ef61aa423996b84c5e66e07a4e5b64c9f14ce95780c6bc8c303c5d38245ab991852c948fdce3a2236724466b31874c958909613972c332852a903c13470631aeb1d90828567bdeb558d73bb9206241f0d27335bf7ae9e81ea6c75037aae72f01631ecbef1184ead33dbad1bcc32e079ec90e7e3e40a35053b2e6b8f034d044d02ed14ddc5e9ab4ea40507350aaf2a9a770545cb1183c86181b8ffff550351679badfca74c46c4bcf6504ded42b6bd09539affd32ebb9d765559fa23c2e603e95ee6a35083708d40962a2a2bf4440e327d222c9557f2d179ebe834a32617b303a578421450e66ccd6faaba7c90c0255303e9839bc4a0359c165247676063d130033f8f89d5704514c06ad021a77a23aa93f56378094af719f388950d648823493c03cd290880d4cbfd8cb993d06a85bf0078ba4a8542757d14cf36c52740cd36707f038e083a2a096f322ee6202d88520436e1085fdd9e959f519ddc4dc07a0f875627034734656a863a368753eded67d4537866f50949ce5f47d0b428db1e246d6e67fd034ee25d85b71acb9bf5f5d27301df71c55fa1d09927c77bd0fc07481bc8db14a403fe7d1792a7b9fb3920c2fcda507027fce22aa429f6dea702e2e73ee07b391a1303b9697c3ede4ee6923403ea9e393e83b42a886de5a541e940e829a3d2b04b2f8b03c0d055f151258c430a7b792a96c60ad65c075400d4c8cfb7e471ef055013c550034cafe7f562f7e8003c3792e2f3a7ea227d89334819fa00c5d3365c6cd2c7e7c303f05d47888c746a89c6c7deea5f056c394e4d561c3eaabce6465d13f55046820603fd7d2ef2b976d20669a67e99a90bfe5b44f835a7c6612083070e9c3fbac346610376177886a2e580fd9895a7fe036f95c6651e9ef7fc29d883bad98d982f89d41b03ef2833ebf8fc07754cb32db78fa630cb02c2068c521fe61e4fead44ce693fbab0605581e03e7c33dc591a517216d87b46d13688190e93e7f52fec16c5b54a493ac9007011bffffffffffffffff05581e0388aeb1b75edd0b1307183e90de4445d25a112b99bdec7c1ae9d9b11b500c0247023f1d4ecef5e803baf1f38a32ded64b92b20e157c42689ea18384748b127c2343b2695fc428d21105581e03385192262948d97caa0215d413fa22ba5b81c2f621ad010e8cbde18f600c024701a8509f4a300003ff8d6616e632e4eaea26c0dcd74e49649ed420dc1cb1684589ffa5074c8f4d6f05581d031e5e0c90b595c26971794e85cb783852731e5d49454eec286baf93e00c1a0006f4a64913542cc95eeb3dda0605581d035c4867ea19144446d53d834072203b685d6fcb887a19ea4cd596374004010219200201410005581e03600117c319bf9863de3722d33c7db40a0eb01f8edd8da698477060c0100c01464c5ec0e4c94005581e03ecaa9ed54842f9e3030006e9bf599e8e7937e5bb836425eb85cb52d07004010219079f038fe4170cd8e1b5ea620103efb96c4475b6c31bf6e63fda0631e3914ad7aae47503bc83ba0b7a0dd0368157d8f393fd347cb06324fa58c5bd00679c60e15315764f030e60df3eee041138c2589dc63d21a172cfbaeb74f7ed8f613170808a474c8d170323e1eac4a6b66a3607b85ed199de55c1f49d672b36b5c0a9c1be96af6bb063930391cab3a9d1de363e621f32d388c9f59b9fac218b035f10acc07f2ed1a2adbbd60219ffff037596e497dc10c38b9f79eeed001672044803f468817fb1a205ce0e14d68c19ee0219ffff03f0cab9c036d845a30bc146c794055835bd96fb2c9e2c1cdc0e66f453314549ab033ba09dccdb823272f992390597f310346e633d84ce0b2da523ef2f340d7e247103e3ed1ebe0890ccc5f9b4162fd4e43a05448c71fd0ceeff29495545eea1034e6703c274e8acb80b1e05c9575b8e5b0e58950d5683a8390e327e4825270ea82c203c0219ffff03d9df9e53007c74665448e0c3b0f61fa6342d8c515d9e16c6b6c849768f55941903bab0686953ab4858bfc7c21732f94be00214caca75f18c9cac987aadb908da6c03c727296d78ef4e6b38384de94244c82c46147295985f6d113bfc26324dd34c56039d66e4c559eba320d855fcd1c5eb3e53cb02ba0a6d7063c90c075707bd9b0190036a60479b0e2c611305f2a5c09b8eda2942e63c5b1e28d2be38d70ec3dd0894fa03a0743b66408d94981f31a4da162e6abe5f37866c5eae08b904b0344c045289fe03675b25c62375d4b9fae01d63f989ef50419698fcf5d13a5121c755322bf4418b03ad12b89b42c5f1b0438919c45b15ab84772a19808cd21545a766dfb425a5f5ce039339f78707a80a5b68867e4028d3bb8ed4b0056f27503c5f9a2a77a50351b85703f7791b650f9c3cd4195e98f45b2fa6750d6949c47850cfaea4c8bb894476dd58035657a4d34cfa67a3c93db5c4c21ac6ae7ffc605ae9628c4ea3222ec29dbd3616035fe42e544f02d63365295bcc7ab8c3be7a1ce536462b165c0422121c3e8f53cb03db8d9b7fc161c199c34912d070c658083607b81b4fabd9fa5a706a784d4e74e903c38b368e8121d3e63a6bf59055a1d25d08127981cbf8fbfef20f269b3804ac60038379ba7e716944e4e8552ddfa4acc3d6de7385a23eb293122a53efaf3896f97d03bc9883dca6ac8973ddf8951552ed1afb7a1d5ae9d5375374b24cd8018c3242240305fc2242525131ca2a7affa5fbd71567b0d48b424fe37f6c630defe755f8823503907e62fd7cdc8b3556ff0d2888719bbd60fc966b6bb538353f10fabc7e4db7900303b9cf1e5711a379933b9300c02073052f618489cf9aff1794adf2caa71f80a503ebe55977997137a59ca07c4220ca9f3b321e314a7f1eee36c4f643e6b25bd95c038120e8ab6e16eb33d6f4adcbb6afa4070a64ada70702eba19f132b9b0c90a6d103e875ee7976c9fcfc8eaa5fbfe06eeb7c382011d805a6b2b49d381001552de4890331f988ec98dacbdbf2df1db04772badd61b6a28731aa9b341457e7c16336428d03d3188e553850824948b874c4ceba30c166e6604429e4da5baaf112ac1bb58bc203ea197661d97f44255aa95b3c4a738af6b4d209c496bc7defa6dc0cc2b1ac507b036a782e05d0db04af83377063285121d3cc6a1e54546f66af8cd808b946682fd203e8de0873386a280e03c63e039d37985c4af6014497758b2c8376e4f92a2d0ce3039564df52cdb7fb8c407bba601f70522ba539b9141a23d96d35486081cff179e7032d0eeee199614c210f4968c1361c6d10c2481288e81db8cc2eaf5e9db629ddb2030dfbc63aeee1df57d6a4c41d888ffa1d53d9e37e520694316b37a1475ffc179a05581d02cdbc40ff1bd5b1f310028c435e5675a4844f46e66b82ee87e93cb6840c0346c1fce86b00b005581d02c8d4226b8c5770ab693060067721f5b722a4543310aee2c9ed14fd8a0c0246485f1e98ea9805581d02f476f8434b82367522825b7a4a42c37b1ec252a18f1ee8b4b65c08bc0c19016d478b42b40142937405581d0276ba984835bad1f54653f496782c88602b19a3c2abb28c774695a36d04040219848805581e03f72aa9970ec8a577a8bf4631788184d9925102f76a6de17f1463509fe0084734af2922b8a40005581e030d9375484c49deab3568b3ca3e3382ad7da9f1c02f8c85ff16e854d2200c084703980cb19e54a003e208d1d09277c61a1482f63fef0db6ca24699dd1af788fbcf968fed3cf189e2b0311f1797a40aad498ff7163c18cae6a5fefb101bc9ea1303302d347560ca2436005581e037e2bb0b5ada51af45af33daef9682cdc07ff5f06b8aa6d7d65f75821800c0247587f032ef5600005581e03adbd5f315a3f602765a04fe99422a5e0f6e13b36e6c973235793ef1c300c084803e1eab3072f5c2005581e03519c89c4e9196e49f4a1306edec0d6b9090390284a8e7e9f29ceb7a6300c034699d77a928cb805581e03e32031b7e71ea864deebdcd34aa185e8bc7f2bcd37b20cabe58a0284b0040202199dff03ebb35f4f27f837e9869472b5a5f59f261364bb56768d8e7342e451a4313a4fa803982e5e7085fc7ca2344aed67cb9245906702e913241afba6e63c092086db672d03aadbf1f3890cc657db03830acfe7446ff3d5f6001d0b7c69a2c38a72974c6abf0219ffff03eb6c2b5dd4fbe87bb3bc3e6c358bfb2145d518dacb54e97355c6c3820444149903f206a5c293b5af68fa03f33e434436570f26a749037250ed6cbbb4d8cf3f0e9303ae5152d98a1774d28446e3687f1cd51ba6a9140431c7432924ad17b862dc42dc03a185efd0bf2ace2ad3a1ef3d204dc2f54eeb2e9bc982227520dd76352a0ac9d9030bf61c83800d841762210fbbdcea5caa4a21a2e8513fc69c1c040fb246c711f40219ffff03177bd8f4b97c47b02581b0b2e573c0310e016e0d09b7dff53fbb6cb8c49da62003efb92312a4c2010019529734bf6085762c558d2a7b68feed03dc587ef80c6dc1032764f50f5cc9e90754d6de6bef245041caa8a3cd8110f422952c8e28fa546025032d27eb0f45120d6b0a550b66a2595744c15ceef7c92d0ee0d91748dbdcc73f5103f33ed87eea59c355a19013af9d81da5c612684721c8946b22d7d0cbbc9d14a3d0361b5665c085d41f2a82c06fa57604e3a3d78056ec92c8e7be6d99697a9e0e16403f33d780eccc1f82b7823ae1252713d5303a4e9d2b6dfccd16f07b2204081276d032a904fc8cbdd253a811c0ff4bf7382654cf790fb140acdfe673fccc4040970ce038ce9368dca74dbc9ef0e806feefb3320d0bf870245f58f0ba021672dd632be3d032f7cef12512197d7adedf3b461a133b02a31971215013d883b7b397ad0990d5a031e0083b416d090847fc271bbb9ad722403147582436c281511e3d49af7e13d480219ffff03e54051b745823e5419cf836054691d73abd2e86894f95da483a9d6d2815203390219ffff0219ffff033b91857f7987d80e85ce185fc662dd2b91eab3841eb32339f1bcbe53729f3d9d037c980f1c33d67a86b619f0c06a3a88435c15d4e3ec158068ad0a80ec82bfccf403a41069de5d8cabb8b0ccfdeb3fd16559458b9e00d929e809f54541c8dd7b54eb038f6c8b0ac8bef1567e50d0e96888f9c15df32357bc86f5bffbd03315d6ddef4a03cbc9a74c39ce6c225937cf72fc5edd25c47ecf50f24f6f902bdf22d5d7ecdd6c03f76c9377008f4172f9f34b7d4c37da0f335b88515068ad378cc88e4d4b83e74d03943e3d0defbf1fb9d1451140259b47bd28f3719abe3827b8ef2108134d01974b03df7905a89f3062906cac28252829e7d9d81a5dca4404ead86dc3eda64aa1ef7d03ada60682f2eb4bc402e4c590615f4eb1320ab87f26e16751fe0a8be3f56cb3750346d3b7c8840678e1abf9cf346e3bdbf9aebce62ab0900e7e03c419d02c653272034a36616290f72b41fd7e1747863dea62797e8fc8e037f10cf99c64eab53ed300031b291f65bf15893ee59121af6db03c28505ed7754f16fea0395caae4eef0fa00033058fad1e336d6888e1ed8e922a4dfccf7910d0d888009bc02901930b9e32851034262b353691fcb0b1c43928298a718717295daea138d26b38d644556d85d92ea03268de19cc001cc2e5364e27474748f30d34953afca6c00beec8b1b930a3b81e903d053399c5c0347ad9deeb36b2e86e47833ed35c2f4f84b3999cd89610a4b4b7c039560da2febc3b9d243821c3d112ee7479e3c837b5501017a9e04393d734ca0d805581e03d06613f55e10d0a6302d6c6e13dce6019612668e8b6650e988f8a949c00c1826472aa41c257e9c9d05581e03e9b4922fa95e959d6d88a6380c2b603ebc1c9a6b1f8645e811c00f59100848686bde632d8eb00005581e03866f74b139b3c9007a0e9e08ee7372adb901b60e08dac7d36d3fa638500c024801f81ec086c25b0205581e03e533e9ef6f35cba7cc7beb0e1d6cbe25d05185cd56ad24dad5ad30e5b0040203562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e036b1362069a11f5061f6f7a1c8fe8e7729604c07754f9d8ce88f856535007011bffffffffffffffff03a545a91d4c82f1dac7cc1764591379f34d6990e87f9c4a969eb2c3dc7ad5ad2a0303b1ea1a6ace258141aeadec51b863dffd5f573404d12068eddcb005250d68f605581d02242fd69a043f39b2942cc82887547cf5ebd8eb5745b351677cfdaf9d040204594bfb6080604052600436106102085760003560e01c806370a0823111610118578063a457c2d7116100a0578063cba0e9961161006f578063cba0e99614610776578063d9e2b9f6146107b3578063dd62ed3e146107dc578063e2f4560514610819578063f2fde38b146108445761020f565b8063a457c2d7146106aa578063a6f9dae1146106e7578063a9059cbb14610710578063b374e1c61461074d5761020f565b80638da5cb5b116100e75780638da5cb5b146105d557806395d89b411461060057806397b4e10a1461062b57806398118cb414610654578063a0be06f91461067f5761020f565b806370a082311461052d578063715018a61461056a57806373ece43514610581578063762bb282146105aa5761020f565b806327ea6f2b1161019b57806336b19cd71161016a57806336b19cd714610446578063395093511461047157806349bd5a5e146104ae5780636402511e146104d9578063664a1ad6146105025761020f565b806327ea6f2b1461039e578063313ce567146103c757806333abd028146103f2578063350829331461041d5761020f565b80631419841d116101d75780631419841d146102e25780631694505e1461030b57806318160ddd1461033657806323b872dd146103615761020f565b806306fdde0314610214578063095ea7b31461023f5780630996f4ea1461027c57806309c58ac1146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961086d565b6040516102369190613ea1565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190613884565b6108ff565b6040516102739190613e6b565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190613757565b61091d565b005b3480156102b157600080fd5b506102cc60048036038101906102c79190613757565b610bb6565b6040516102d99190613e6b565b60405180910390f35b3480156102ee57600080fd5b5061030960048036038101906103049190613757565b610bd6565b005b34801561031757600080fd5b5061032061109c565b60405161032d9190613e86565b60405180910390f35b34801561034257600080fd5b5061034b6110c2565b60405161035891906141b5565b60405180910390f35b34801561036d57600080fd5b50610388600480360381019061038391906137f1565b6110cc565b6040516103959190613e6b565b60405180910390f35b3480156103aa57600080fd5b506103c560048036038101906103c09190613917565b6111cd565b005b3480156103d357600080fd5b506103dc61130b565b6040516103e9919061422a565b60405180910390f35b3480156103fe57600080fd5b50610407611314565b6040516104149190614163565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f9190613757565b611328565b005b34801561045257600080fd5b5061045b6115c1565b6040516104689190613d9d565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190613884565b6115e7565b6040516104a59190613e6b565b60405180910390f35b3480156104ba57600080fd5b506104c3611693565b6040516104d09190613d9d565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb9190613917565b6116b9565b005b34801561050e57600080fd5b5061051761183b565b6040516105249190613d9d565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f9190613757565b611861565b60405161056191906141b5565b60405180910390f35b34801561057657600080fd5b5061057f6118a9565b005b34801561058d57600080fd5b506105a860048036038101906105a391906138c4565b611a01565b005b3480156105b657600080fd5b506105bf611be3565b6040516105cc91906141b5565b60405180910390f35b3480156105e157600080fd5b506105ea611be9565b6040516105f79190613d9d565b60405180910390f35b34801561060c57600080fd5b50610615611c13565b6040516106229190613ea1565b60405180910390f35b34801561063757600080fd5b50610652600480360381019061064d9190613917565b611ca5565b005b34801561066057600080fd5b50610669611d50565b6040516106769190614163565b60405180910390f35b34801561068b57600080fd5b50610694611d64565b6040516106a19190614163565b60405180910390f35b3480156106b657600080fd5b506106d160048036038101906106cc9190613884565b611d78565b6040516106de9190613e6b565b60405180910390f35b3480156106f357600080fd5b5061070e60048036038101906107099190613757565b611e6c565b005b34801561071c57600080fd5b5061073760048036038101906107329190613884565b612075565b6040516107449190613e6b565b60405180910390f35b34801561075957600080fd5b50610774600480360381019061076f9190613844565b612093565b005b34801561078257600080fd5b5061079d60048036038101906107989190613757565b612218565b6040516107aa9190613e6b565b60405180910390f35b3480156107bf57600080fd5b506107da60048036038101906107d59190613844565b612238565b005b3480156107e857600080fd5b5061080360048036038101906107fe91906137b1565b6123bd565b60405161081091906141b5565b60405180910390f35b34801561082557600080fd5b5061082e612444565b60405161083b91906141b5565b60405180910390f35b34801561085057600080fd5b5061086b60048036038101906108669190613757565b61244a565b005b60606003805461087c906144c5565b80601f01602080910402602001604051908101604052809291908181526020018280546108a8906144c5565b80156108f55780601f106108ca576101008083540402835291602001916108f5565b820191906000526020600020905b8154815290600101906020018083116108d857829003601f168201915b5050505050905090565b600061091361090c612611565b8484612619565b6001905092915050565b610925612611565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab90614023565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610a3f57508073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b610a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7590614063565b60405180910390fd5b6000600c6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d6020528060005260406000206000915054906101000a900460ff1681565b610bde612611565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6490614023565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610cba57600080fd5b505afa158015610cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf29190613784565b905060008173ffffffffffffffffffffffffffffffffffffffff1663e6a43905308573ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d5957600080fd5b505afa158015610d6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d919190613784565b6040518363ffffffff1660e01b8152600401610dae929190613db8565b60206040518083038186803b158015610dc657600080fd5b505afa158015610dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfe9190613784565b905060008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f47578273ffffffffffffffffffffffffffffffffffffffff1663c9c65396308673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e9957600080fd5b505afa158015610ead573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed19190613784565b6040518363ffffffff1660e01b8152600401610eee929190613db8565b602060405180830381600087803b158015610f0857600080fd5b505af1158015610f1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f409190613784565b9050610f4b565b8190505b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb290613f03565b60405180910390fd5b83600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b60006110d98484846127e4565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611124612611565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b90614003565b60405180910390fd5b6111c1856111b0612611565b85846111bc91906143b3565b612619565b60019150509392505050565b6111d5612611565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b90614023565b60405180910390fd5b670de0b6b3a7640000620f424061127b9190614359565b8111801561128b57508060095414155b6112ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c190613f23565b60405180910390fd5b806009819055507f479881bf41e329f328c21c2cbb11514b05a021cd33ea4e5a576ea6bc03874fd68160405161130091906141b5565b60405180910390a150565b60006012905090565b600b60189054906101000a900461ffff1681565b611330612611565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b690614023565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561144a57508073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b611489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148090614063565b60405180910390fd5b6000600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116896115f4612611565b848460016000611602612611565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168491906142d2565b612619565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116c1612611565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611750576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174790614023565b60405180910390fd5b606461175a6110c2565b600a60ff166117699190614359565b6117739190614328565b8111156117b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ac90613fe3565b60405180910390fd5b8060085414156117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190613fc3565b60405180910390fd5b806008819055507f52c7826ed27bfb18ed3130f9306befb9572f2333e36e104330587d66b2f0d6c68160405161183091906141b5565b60405180910390a150565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6118b1612611565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193790614023565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611a09612611565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f90614023565b60405180910390fd5b808284611aa5919061429a565b611aaf919061429a565b61ffff166000108015611add57506109c4818385611acd919061429a565b611ad7919061429a565b61ffff16105b611b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1390613f43565b60405180910390fd5b82600b60146101000a81548161ffff021916908361ffff16021790555081600b60166101000a81548161ffff021916908361ffff16021790555080600b60186101000a81548161ffff021916908361ffff1602179055507f749c1e19e7730253c4c79e5dd6cf9f440f959897930d2d7afbb230284ec7711c600b60149054906101000a900461ffff16600b60169054906101000a900461ffff16600b60189054906101000a900461ffff16604051611bd69392919061417e565b60405180910390a1505050565b60095481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611c22906144c5565b80601f0160208091040260200160405190810160405280929190818152602001828054611c4e906144c5565b8015611c9b5780601f10611c7057610100808354040283529160200191611c9b565b820191906000526020600020905b815481529060010190602001808311611c7e57829003601f168201915b5050505050905090565b611cad612611565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3390614023565b60405180910390fd5b611d4d611d47611be9565b82612bba565b50565b600b60149054906101000a900461ffff1681565b600b60169054906101000a900461ffff1681565b60008060016000611d87612611565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b90614143565b60405180910390fd5b611e61611e4f612611565b858584611e5c91906143b3565b612619565b600191505092915050565b611e74612611565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efa90614023565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611f7357508073ffffffffffffffffffffffffffffffffffffffff16611f5a611be9565b73ffffffffffffffffffffffffffffffffffffffff1614155b611fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa990614063565b60405180910390fd5b6000600c6000611fc0611be9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061201a8161244a565b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000612089612082612611565b84846127e4565b6001905092915050565b61209b612611565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461212a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212190614023565b60405180910390fd5b801515600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156121bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b4906140c3565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b612240612611565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c690614023565b60405180910390fd5b801515600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415612362576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612359906140e3565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b612452612611565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d890614023565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254890613f63565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268090614103565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f090613f83565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516127d791906141b5565b60405180910390a3505050565b60008114156127fe576127f983836000612d8e565b612bb5565b600061280930611861565b90506000600854821015905080801561282f5750600760149054906101000a900460ff16155b80156128895750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156128c85750612898611be9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561290757506128d7611be9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612954576001600760146101000a81548160ff0219169083151502179055506129308261300d565b6129386130fe565b6000600760146101000a81548160ff0219169083151502179055505b600760149054906101000a900460ff16612afd576000600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a695750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480612a685750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b5b15612a7357600190505b8015612afb576000612710600b60189054906101000a900461ffff16600b60169054906101000a900461ffff16600b60149054906101000a900461ffff16612abb919061429a565b612ac5919061429a565b61ffff1686612ad49190614359565b612ade9190614328565b90508085612aec91906143b3565b9450612af9873083612d8e565b505b505b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612ba75760095483612b5b86611861565b612b6591906142d2565b1115612ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9d90614123565b60405180910390fd5b5b612bb2858585612d8e565b50505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2190614043565b60405180910390fd5b612c3682600083613376565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb390613ee3565b60405180910390fd5b8181612cc891906143b3565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254612d1c91906143b3565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d8191906141b5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612df5906140a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e6590613ec3565b60405180910390fd5b612e79838383613376565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef690613fa3565b60405180910390fd5b8181612f0b91906143b3565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f9b91906142d2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612fff91906141b5565b60405180910390a350505050565b6000600b60169054906101000a900461ffff16600b60189054906101000a900461ffff16600b60149054906101000a900461ffff1661304c919061429a565b613056919061429a565b61ffff16600b60149054906101000a900461ffff1661ffff168361307a9190614359565b6130849190614328565b905060006002826130959190614328565b9050600081836130a591906143b3565b90506000479050600082866130ba91906143b3565b90506130c58161337b565b600082476130d391906143b3565b90506130f5848387846130e69190614359565b6130f09190614328565b6135d9565b50505050505050565b600560149054906101000a900460ff161561314e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314590614083565b60405180910390fd5b6001600560146101000a81548160ff02191690831515021790555060004790506000600b60189054906101000a900461ffff16600b60169054906101000a900461ffff1661319c919061429a565b61ffff16600b60169054906101000a900461ffff1661ffff16836131c09190614359565b6131ca9190614328565b9050600081836131da91906143b3565b90506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505090506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050509050816132f3577f1c43b9761b3fba5321ca8212bfc231945f668ccc0c446f333999eea9ce8fda81600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040516132ea929190613de1565b60405180910390a15b80613354577f1c43b9761b3fba5321ca8212bfc231945f668ccc0c446f333999eea9ce8fda81600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168460405161334b929190613de1565b60405180910390a15b50505050506000600560146101000a81548160ff021916908315150217905550565b505050565b6000600267ffffffffffffffff811115613398576133976145b3565b5b6040519080825280602002602001820160405280156133c65781602001602082028036833780820191505090505b50905030816000815181106133de576133dd614584565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561348057600080fd5b505afa158015613494573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134b89190613784565b816001815181106134cc576134cb614584565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061353330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612619565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947836000843060c84261358391906142d2565b6040518663ffffffff1660e01b81526004016135a39594939291906141d0565b600060405180830381600087803b1580156135bd57600080fd5b505af11580156135d1573d6000803e3d6000fd5b505050505050565b61360630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612619565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613652611be9565b60c84261365f91906142d2565b6040518863ffffffff1660e01b815260040161368096959493929190613e0a565b6060604051808303818588803b15801561369957600080fd5b505af11580156136ad573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136d29190613944565b5050505050565b6000813590506136e881614b69565b92915050565b6000815190506136fd81614b69565b92915050565b60008135905061371281614b80565b92915050565b60008135905061372781614b97565b92915050565b60008135905061373c81614bae565b92915050565b60008151905061375181614bae565b92915050565b60006020828403121561376d5761376c6145e2565b5b600061377b848285016136d9565b91505092915050565b60006020828403121561379a576137996145e2565b5b60006137a8848285016136ee565b91505092915050565b600080604083850312156137c8576137c76145e2565b5b60006137d6858286016136d9565b92505060206137e7858286016136d9565b9150509250929050565b60008060006060848603121561380a576138096145e2565b5b6000613818868287016136d9565b9350506020613829868287016136d9565b925050604061383a8682870161372d565b9150509250925092565b6000806040838503121561385b5761385a6145e2565b5b6000613869858286016136d9565b925050602061387a85828601613703565b9150509250929050565b6000806040838503121561389b5761389a6145e2565b5b60006138a9858286016136d9565b92505060206138ba8582860161372d565b9150509250929050565b6000806000606084860312156138dd576138dc6145e2565b5b60006138eb86828701613718565b93505060206138fc86828701613718565b925050604061390d86828701613718565b9150509250925092565b60006020828403121561392d5761392c6145e2565b5b600061393b8482850161372d565b91505092915050565b60008060006060848603121561395d5761395c6145e2565b5b600061396b86828701613742565b935050602061397c86828701613742565b925050604061398d86828701613742565b9150509250925092565b60006139a383836139af565b60208301905092915050565b6139b8816143e7565b82525050565b6139c7816143e7565b82525050565b60006139d882614255565b6139e28185614278565b93506139ed83614245565b8060005b83811015613a1e578151613a058882613997565b9750613a108361426b565b9250506001810190506139f1565b5085935050505092915050565b613a34816143f9565b82525050565b613a438161444a565b82525050565b613a528161445c565b82525050565b6000613a6382614260565b613a6d8185614289565b9350613a7d818560208601614492565b613a86816145e7565b840191505092915050565b6000613a9e602383614289565b9150613aa9826145f8565b604082019050919050565b6000613ac1602283614289565b9150613acc82614647565b604082019050919050565b6000613ae4601883614289565b9150613aef82614696565b602082019050919050565b6000613b07602983614289565b9150613b12826146bf565b604082019050919050565b6000613b2a603183614289565b9150613b358261470e565b604082019050919050565b6000613b4d602683614289565b9150613b588261475d565b604082019050919050565b6000613b70602283614289565b9150613b7b826147ac565b604082019050919050565b6000613b93602683614289565b9150613b9e826147fb565b604082019050919050565b6000613bb6601383614289565b9150613bc18261484a565b602082019050919050565b6000613bd9602e83614289565b9150613be482614873565b604082019050919050565b6000613bfc602883614289565b9150613c07826148c2565b604082019050919050565b6000613c1f602083614289565b9150613c2a82614911565b602082019050919050565b6000613c42602183614289565b9150613c4d8261493a565b604082019050919050565b6000613c65602083614289565b9150613c7082614989565b602082019050919050565b6000613c88600e83614289565b9150613c93826149b2565b602082019050919050565b6000613cab602583614289565b9150613cb6826149db565b604082019050919050565b6000613cce602383614289565b9150613cd982614a2a565b604082019050919050565b6000613cf1601d83614289565b9150613cfc82614a79565b602082019050919050565b6000613d14602483614289565b9150613d1f82614aa2565b604082019050919050565b6000613d37600883614289565b9150613d4282614af1565b602082019050919050565b6000613d5a602583614289565b9150613d6582614b1a565b604082019050919050565b613d7981614405565b82525050565b613d8881614433565b82525050565b613d978161443d565b82525050565b6000602082019050613db260008301846139be565b92915050565b6000604082019050613dcd60008301856139be565b613dda60208301846139be565b9392505050565b6000604082019050613df660008301856139be565b613e036020830184613d7f565b9392505050565b600060c082019050613e1f60008301896139be565b613e2c6020830188613d7f565b613e396040830187613a49565b613e466060830186613a49565b613e5360808301856139be565b613e6060a0830184613d7f565b979650505050505050565b6000602082019050613e806000830184613a2b565b92915050565b6000602082019050613e9b6000830184613a3a565b92915050565b60006020820190508181036000830152613ebb8184613a58565b905092915050565b60006020820190508181036000830152613edc81613a91565b9050919050565b60006020820190508181036000830152613efc81613ab4565b9050919050565b60006020820190508181036000830152613f1c81613ad7565b9050919050565b60006020820190508181036000830152613f3c81613afa565b9050919050565b60006020820190508181036000830152613f5c81613b1d565b9050919050565b60006020820190508181036000830152613f7c81613b40565b9050919050565b60006020820190508181036000830152613f9c81613b63565b9050919050565b60006020820190508181036000830152613fbc81613b86565b9050919050565b60006020820190508181036000830152613fdc81613ba9565b9050919050565b60006020820190508181036000830152613ffc81613bcc565b9050919050565b6000602082019050818103600083015261401c81613bef565b9050919050565b6000602082019050818103600083015261403c81613c12565b9050919050565b6000602082019050818103600083015261405c81613c35565b9050919050565b6000602082019050818103600083015261407c81613c58565b9050919050565b6000602082019050818103600083015261409c81613c7b565b9050919050565b600060208201905081810360008301526140bc81613c9e565b9050919050565b600060208201905081810360008301526140dc81613cc1565b9050919050565b600060208201905081810360008301526140fc81613ce4565b9050919050565b6000602082019050818103600083015261411c81613d07565b9050919050565b6000602082019050818103600083015261413c81613d2a565b9050919050565b6000602082019050818103600083015261415c81613d4d565b9050919050565b60006020820190506141786000830184613d70565b92915050565b60006060820190506141936000830186613d70565b6141a06020830185613d70565b6141ad6040830184613d70565b949350505050565b60006020820190506141ca6000830184613d7f565b92915050565b600060a0820190506141e56000830188613d7f565b6141f26020830187613a49565b818103604083015261420481866139cd565b905061421360608301856139be565b6142206080830184613d7f565b9695505050505050565b600060208201905061423f6000830184613d8e565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006142a582614405565b91506142b083614405565b92508261ffff038211156142c7576142c66144f7565b5b828201905092915050565b60006142dd82614433565b91506142e883614433565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561431d5761431c6144f7565b5b828201905092915050565b600061433382614433565b915061433e83614433565b92508261434e5761434d614526565b5b828204905092915050565b600061436482614433565b915061436f83614433565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156143a8576143a76144f7565b5b828202905092915050565b60006143be82614433565b91506143c983614433565b9250828210156143dc576143db6144f7565b5b828203905092915050565b60006143f282614413565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006144558261446e565b9050919050565b600061446782614433565b9050919050565b600061447982614480565b9050919050565b600061448b82614413565b9050919050565b60005b838110156144b0578082015181840152602081019050614495565b838111156144bf576000848401525b50505050565b600060028204905060018216806144dd57607f821691505b602082108114156144f1576144f0614555565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f5061697220616464726573732073657420746f207a65726f0000000000000000600082015250565b7f4c696d697420697320746f6f20736d616c6c206f722073616d652076616c756560008201527f2070726f76696465640000000000000000000000000000000000000000000000602082015250565b7f6e65656420746f206265207374726963746c7920706f73697469766520616e6460008201527f20736d616c6c6572207468616e20323525000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f53616d652076616c75652070726f766964656400000000000000000000000000600082015250565b7f416d6f756e742067726561746572207468616e206d617820616363756d756c6160008201527f7465642070657263656e74616765000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f496e76616c6964206f722073616d6520616464726573732070726f7669646564600082015250565b7f5265656e7472616e742063616c6c000000000000000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f53616d65206c696d6974206578636c7573696f6e2076616c75652070726f766960008201527f6465640000000000000000000000000000000000000000000000000000000000602082015250565b7f53616d65206578636c7573696f6e2076616c75652070726f7669646564000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f6d61786c696d6974000000000000000000000000000000000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b614b72816143e7565b8114614b7d57600080fd5b50565b614b89816143f9565b8114614b9457600080fd5b50565b614ba081614405565b8114614bab57600080fd5b50565b614bb781614433565b8114614bc257600080fd5b5056fea264697066735822122022658e99258a004215a9d5d1286f630e9c9f0af565d69c8374698cf8b782d22564736f6c63430008070033038b31cf37708a5bafb9b7ccba652f1a345a83a67e03d78732ca698a42aa683f520326d5664e81e344bf728658dcf1806bfe6de2ba7be00438238084792ce9fb691003de8e6d7a2b5569f2de9e0bca5f698d2ef32e12d75f58d9329fabe95b4996f7b5031fdae64311f16a51c5cee1da78a047e64092f9e23cc1281356d9fd9d9089d17503afb1ad5966a97478980edd0992f642ec7214a46bea994b1918382870a63ae9df035577c4135e871353c5a4ee598dc2e289c2f86a9051f420a630751fd5795aca18033657b4fcd7d04d8cec27581d717526f4782d53ba520be9f22686cc25855b2b9c03efcf810a6e18074c5ec1c21c13d817f417347378ac925582ef87f43f82e5239d03e6f688b2cd7e772ec3348b9b988aa5532844dbd258926b4064554a827b87bcd20340bd917e26d607908faf20210e92f7cf00440ad21f913f3e39801f48d5e21df1032e3548f89c4375722bc4fcab288e2e982d824211a13d3dad7c275629e4f8ae4b0300192e3f2752f86d2f3299143be35f8052acf2189ab0c38cb29bb4e20459461a030fcc81b890486ddd6caac936d7f58d2ac4c615dd9d5791aa3f70309aa10de543038ea481a45841621b321ea09c48cff196b1a92533d045ddf58d74693e4715007100582003674d47377d05f438821e139a4f7241b8ad151316c80c54b88a170b8904a3005820fffffffffffffffffffffffffffffffffffffffffffffdcfe98e04e98e2ffcf700582003e0fd4275d27eb807d12140b8802aec762e3d6619802773cd344e3ec4eb8f004a0300756f1c777359be4703056fd3188d64c478759ad45b84ab0e14ee8d6744b4a5942d071ea0a0a95fd89f03928187e77ca45dc9761618afb57845075f0b35383086ff9de9ec277933c23be9005820033e39548a83accdbd2ad4a32cda2699923a0ec37f4bbcd27b1019e8eec37db04a06216c6b7c0f805cf4a600582003b60466123d5e8e3bdfdcf0a96b47b7c0484753e72c7b6f421eccc7f3a4fc504a018b9b60d2319f5368d402193d2203ae6ad9e7fa1fb9c3fe391ac3e2f3d74655c17bcc3c6f1cca1641b79b210957410322dd23a18add903e40a4fdff289b9d4768488f69ca7cb6743019ded14fd972d00219ffff033915e885fb308bb9bbc84f5cd2826dffbb1627450b588f7410d641b3c03ac8be03af7b5f4754f4de8c89d071919daab5baf914730ce6f3d91c529f87fb405159e5034d41c0d06cafbd1cbf346057f77e31f32efe52340b3e6631b41d81d9e9ed9c7e03a92c6715cba908f4eff3af7262836a724151750c9c32fe80b7be9fe9973102c103d116d9f3b89a075fcfc763aa7566013604bb43dae550a1816eae6ed020f0d4c8035eeb7075bb5b356cc564bd05edd363cd85a1b53c2cad06a78208aba09e34c63f032a19f9847cf8ddfda0203ca56287a0508bed95412dcaf8a4b8ea07bedead0ca003a9a38b196c7fc02e7c6a49d68bab33b42b9cfd099e02dd8b29a452a00a8588cb03b5f702b554fc61094943ae2e8efc9ecc6dfadd213f71d38c8bb38bda05e65ffe037b24259980db8add12f7b516bfa6dbf273fe59a496e9bfdb4447bdf69cfdb46b03b263a0b942345b13cac4eb4ec06e989b75ece8258fab4ed86a7d2f08ffba1034036a845e83f1d4519ccbbe942b91a70670557dcfd5cda7df184d0d27aab01fe6700058200311ce579bba98f56100690ea6643b0fb3ee820a9d48f1513ba20a20322d54f05820fffffffffffffffffffffffffffffffffffffffffffffcd459a06e6b300e077000581f021aea60a559104d9ddf01cad98111b4dd644612132929f153d225d1bbe76c4a1b37dfe79e80abd4000000581f021fd1b83efb49eed5e76429add11a6f0b26cf948f39c1019ae8ed4cd154c35820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021920080058200306f1263749edd31644b641dc2824523d6382de858dfc4e06eff68e86f7ecc049a2bb9301dadb730cab005820034b581a706c722c0718e0e6a961599a208473ef30381344106c6e78046784e04a02aa1d71cf0681f76964005820037732d8a1396dcdd64addc466b2b286e70f756ea99f0451a4b2e9827d5813005820ffffffffffffffffffffffffffffffffffffffffffffdf7ebf924ddb030fffff02190b0603b8ace1431ca6365ce8c80cb264b945fda610127800d39f943b34fbf0d89dfa6e038dc565e92e3faba15ede033ea12b3b9cc0773559d56c31d2ec6dc7579b74ae9f03f7329a50d410e5d766914ca20ad93fd6695be5ef4ffad068b8b29b07ce0c09a40358909f68d98dcde799a261d12d1ce300d782718dad21d63175b2462660d1bd79034bc9d9eca4b7dfae1e4c8b5350e6fa3bdfb4f24f004731fc4e63c28dd358bd1a03962d722a96d9f3224304d7be37c2bdfd4b6cf9e6ad0b235be4e203176fa9c7a60219ffff03360e55649d04ac404c486259382f340970a77fcd5386f99de55adbdf31d911ea03ee84392072777b9e1f9f761ac6b168aed190f3202f1e382380852f374cc35240039142bacb32e43495481cc0a31982b28ddce624948592581808a3eae4afbb208c03950acc2fc575186ac2b2f3b9b3e081c0865b075a2fde7832f13bdde13035406c03ab3d0ac4736e71c4db042666a49a5b0c5913eae7ff99b78d083cd4a46b205e86036166b924b23a78da97253066da0490beda351c1c35d0c2f0a100cd0de9907214034d1606addf64805aebced6ea6faa489c6a9f1c7098251b2abe371facbdfdcb080301e7464f5d01a6c5698c0b779330be4d8db55ea8a7ef06ef17d1c55d3aac9d1a0397a19aa8b8bce710860260adf62901f5d8ea6ae8c3b958369eadcb488faa7bf703e971fee19a94ed609af22853ebdfc0e678ad7d064d686d8dc14d20521dce5d3a03c5d1cfa3a63d23ae37125e1d0d68f22a44ad213e397b7459611014ec2c9d46e303f789dec46a5074ab585ceff2a9fc5ef5a49377c218195b4e803ab307568aef5003a4701a3705eea84541f6c627259fa6fcfc063f426a633dba2018626d20f3ef8003d85caebe526ecaf8eea55263bff0af7dfb76851304d2d80aac694699ff00746403582c44292bff3ddb908465577a33859790b90c25ad12b2164d6f679b038eab6200582003540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af04b52b7d2dcc80cd2e4000000005820038b9817b70094d7a628cc0c3d00060c70df6b1548039223208c0d32074d67104b03dd89d58a243f01a59f5f035d6ce7c5413fdb3115c91fb426f1fc6ee5e2e223e884274e216e391fc427318d0219082203e32da7b42185b3715e42707f27d12c5e41b690306235b07c478dd857743bbe390219ffff03f975536c56ba2a26f24cfd3d9459d3ed2cdad77d85f6e9d14b9d856bc7b4cafc035e175c502275b031cc35ae3498a38a74b8cddaae77746cb4282d9537ad00960a0369ca45a2466b3af4cd0dce1ed989a5839b9ba75b5f3b737419d51b3b9a765486039729d12e6faefb36e5da8c2454a3a6aa1b458bfb793a35330c7cf1fca2093d1b0340d87608ec4a8ace7eafacf27449dbcd9fd8a3c1cfbf08be12773a6bf23e4390035bfad2494c07389f21eadce693ebb894b34c5c63666af9c2591175446f67656a034f9dac75d346fa8703ed1acb188949d871e787aa67675311b1f99eb73380ca6e035252a41299da8842af5f231edc376c3ad18a73850ddb64b0d9f595cdebe7fa4c037ca710a2f7f6fc88818557f66b250f7ed552a8ee87e8509dd0c611f6bae18cd303ea62789a025c0dcbbf134ef7901ae0ab5d952dc286a0125811f89f760a0e27f403410672dd17644ef610e7d354a5c12884a050a9466ab7e9fcc543e7e4e775f7a103e7d90094a4907158c9f4021283e824e63c36533067cd0d8acbf412d4eee7dc3503de34289ae70ab4f45531a4611142acedb052b0c6f07a9eb16342268324b9b4be03bb157649739110ebfbd7770f0c22555c9702af55cf95d05ad7abb84b5ca453c800582003511307eb70e0e48b7997f8cafeb0c64d29e925a44d6ca588163b59278f02905820fffffffffffffffffffffffffffffffffffffffffffffab4bf4e07ad425fffff00582003ce130825ab9eb34db0c0d7dbc2e282fb3207f850ec7e3056e94525636c0b105820fffffffffffffffffffffffffffffffffffffffffffff6e9eabf76747eebc2ed00582003efe450e5096c4c18c5da3c89d9549b7ddf4ecba0b248ab036063c780c3eb804a03dde6afbb3f50e9548b0219012803e992f48e06da96431eb62259690418bab362b8061e25c12bc4bd2fa06e2c244a0219ffff037a69046884b99455c0d7e4a63de663e70ad097383bae2efda0cc997d8de464ea03a9703e8185ef0f66a49a9c3051263d2ecda6af84f946bf9dd020e5770711c9d603e71876786460fb3ee84cd44e6c531f955e2450b933ff7c05634e3f9353d97f7203a18d5d3b76096ae3601ce8a694e41d4be6f8f03ffd89223883e3ff8c4440011200582003864f482cb66774b1f89a2cbde3ed07b0a919e3f06ff5c1ca7da4724c905e10493ba1910bf341b0000000582003067cd6d5d2b4d946dfb2c70ca1b90e0d2ff81b09e8f8d2b912b1291ee009c04a0252584b998deb138809005820035590abf3bc188a8e8040e47d4e6bbd2f0563c74cdc773421be84a8bdc26d904a0b010d6bb51ec6af504e00582003df4fe3903e7b011af13acb5c1a51fe38f1576bd450e3220de8e412c538eff04a043f355be78dc0af56b9005820037a4a69f41bea1051e74ab3eed24cc1399dac7e7906f0d27cdb39d26e2ddc504a017b7883c0691660000002191262035f45c835d885bc2edd776ebb2109747538115d7f48ff88c996adea8e673666c0036c4cd93dac92ff2f4649c3381e90914230902f5d8c2c8cd44bf3aa5acf1f1fe7038fbd284b67af1b3cb270877ae30c8da9e4bec70854a5edf9d11cebec1f94e669036c098f1b27d68c7f9fa2f680aa93eeead9b5ca818b6021496f1faeb17c36c5c5038dac4a998a6172b601205391d799d15749778a416b267680d3bda54ddfbd52560310470aa6ccbcc0f2cfa7ce9097a54aa05c0fc5beccfc85f139d4e34ced87702b03af134093c6752246de2b08f52a2349296d9a16366b3cad4342d5ea0110032f3e0399b536b110b25cc31e2783170ddfc5f219b37ad9f787ec7f22d4b112d990f33c036835fe27db831247419c5bbb9729247ef88d7f73ab3174782dcff5899c6f4a670311561c3d61d348eaa958a158d2dd2e9febf1b9f66b90d17eaa081626c4473e4b03e2f7cac54660de8a90ac44975fcfa3baebf29220f0c4113cf056dc918aa9650803cb79458dd145abe3f5334b400c125aa1984f07cc1248dfe722aee302da7e9d690219ffff0392c63c1b86492ba96057ab0baae478370817c64e916e2ebd6e314ea1f72dd7cc035a0c23c1059e96e7e7c5861304fbc8631077cb4f7b93ba755fe539dd6b4892a503d97f3bd2f3df81aaee4f1ed746f8cc634a4615c201d86930781f45295f99cdf103d658c0920b237f2573254f5fbe4b6b7687074aba823a94bd3b0086b79aa6679b03ef7921247b9c07617e6be9bb75ef33a8de41837f44b642e520ced8851eec814d038ba95122917f11fbb28a2816d3e41c733e18aa350a98c9217a23bbfbcebc56a3005820039f6ed5e36a324096fc5aa5a4544aa4d15ab703a07acae948ccf7228d503af049bc04ce59879280dbde0058200300fc3c93fae6bcb513376d3c44f19c32ebd311c87dc15075e7111c8da95550493fb2028981f3388c8200581f02da34a959eaaa8768f625475483a02d1a54eea567aecb59910cba33f951f84a01da2cb8adf27a3316ba00581f02c928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68854aba189f517c594c4c1a49b361262511672ed222c021910040058200394b8b049face5a68158a59b76a46ebfc1e7cf465888a8a4b9744c962a9c8104a0a197be195ba7afbb6dd039aff875fc73f75e3215fba6eb86a5efd9ef465e865a2e8ab8a158ed0e689819b00581f02470a6349d002d4c006b704e9e6f3b2ac54f5db29a0b9a98c7d32f2b772c04a6e1d41a8f9ec3500000000581f0278500c2b5ae7b9bfdfcc3c64ccff056d604f9e5f79b7af930ccc57a5473d4b066cf17860aaa8cafa5e71021980040058200361210ac7ee3baf014f923044c0a3cf0014154c0d9d64e1488ec4f88004e4605820ffffffffffffffffffffffffffffffffffffffffffffed55ba60b09885ebffff0219a2e403b13d6d90baad71f0978f8fcce0cbc68f898f7e511531ae3361522067638203760364e988a96771aa058a512396bba85e8746c35bd6d4eec8777fccd0879f984f68038ccafed63bb39a5686d0bf0e1b578e272f7a71fe56fc0c0a95fd2204afa16e1d0396ad1fd7a913c4b08c952fb0b0cb266863bbbdd82561294ad805e269b8a0c6d40397b6b84029c8e41466db7649a361f4c5475f8f55e2159ce2bfe89f8727238e7803a0d8e748848949de40ff31d669eb95d7233f644ecbec75f382df2be05a6e739e036f7ddf579dd0f9c35a0664028c1d523e8c3f783dfe0f0a7f22fbde8c2f3ab56d036693636b6a748cfdd938a1047c45a87f3c2c1b3f4eadf2bd7818017bc12aba500362e35783067f1828d41f491be32cd20e730427f2328fcfb0e2901a2f6f498ebf0219ffff03f1b123ce61a7fe4e66f19842f08307bb1d822749cf495fa9c8364be1a41a4481037c07e49fcff56a86627ca16fb0e83880fe65d6033135aac28c836f1e94106792039fc0aa92b10cca58d992be9bd7ed58ac8318592014a4df65c80529d035a7164d0338efecfcad5bdb0d99147dd2a40f3e43c8fd3fdb229820ebd2bdeec8e8ced4890393e09081b1b7fc9b8e1f1c8527a8f33973a3f8886c8cd95251c80e623acdeb0303ca3cb9f93b3e946b50b002bde3fdd17cfbcd5f16df73a72b719c2d25ee451bf00307e9d3c66cc06d7b17a515382fc29c5c991883075ba9d9121562d5543733cff30397f3928265116e38d9ccfba515ef630947515b172a9c90fe6617c7bb23e34b6903255f5b5a7f9b0bee9f5e3eb45a7ac3d681eb724bf5a618c8a942274263abaa1203c1f77e05a92b1e4ad4a3a7b1ba2728dd2ddc23da9859af1f4c59abe6c948de94036ef02ad7869c1e3e520304a8224734cab482cdc831a6fcdacd79c7e75c1144b403544aa1e0e56185db315a4d6765f0a96a2fdbb8439b3937cbb71e804817a82af30388f9c9486ccb4031a3e6c5c7d5db2e166bcc94f721abf6fe168cb6c50c5fa47a032c278caceba27fcc92409b0a98ada5f247a0352bb849e42b718296b5341392ad033146bbdd7db4de8b515f4e33e3b406b3b5eccd5cf16b965007e4b7d17e65b8ac00582003af5fb6f01da88a270d78c939baa04944345a36a7bd75f66444b0fe85bfce405820ffffffffffffffffffffffffffffffffffffffffffffe172100ea5bdbf976ceb005820037e62e9e62e4613534d7918d0a18696a3039f5270ac54e13d0ed619676deb704a1e09beaec1bc7929aa390058200394f62954c302a5717c8c5f85d02181be66c2e91f3c2f23da734f68d48d20a04a02e9bc7e36faa056708c00582003f010c43fcaa2eafb843d48ffc82b05229f2f2a05be64d7f3ccfb74448be8704a0e7f7f69ecaa8f853f5a00582003c5347fd879aeb963fc411eb5fff5b4f71d1df51c006d41ecf584630276b5b04a018239746aabcdfeb47402190a580219ffff03b4cd87b89e1f431917aabfb644414bb26a67fe2ef095c8df3de0e0ba6d88bccb03537ad22a247e723a6c4a1306e6d625b9603b6bdf8d41208553d5c7d7a4f47730033a56e0f60aefb4f3f472dfdfd58d5a146bf32b3e0e208b1a1b20397fffc36dbe03aa4f94431d0a1eb19add65fe9c03c621259648895f192f2097dfd61280708907032d585755ca910a745276cf0292fdc0a2c94bfc72e4f5dd1c38d42127431aac22039ef93b3174dd4ef354262a91f788b236e197b1530d83792b027ef39d1829e7eb00582003fd659698101aeca7cd1456cf18f81fbb6ae69ec34492ff98e6573eb9062ab04a080c57f1506f8a2d45a100582003b3371312b1a4dd59a246649313c5419d393df9f647707df110bed9998b0ff04a039992648a23c8a00000030237b947d334a71df7f1dfa3b8b0b1e08b0d88f338d2f08d5748e02c3961859600581f020962d31ee2cd0acf9aef556f33ddca6b9a2e72952b42ecc751836f1595e44a011f5a1b4a96ebdcb2cc00581f02a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee34a152d02c7e14af68000000218820219a08103f5eac531be08f501ced40076648c821d86aa01c2b37a743c586d3acf1c957f39033dbd749d2245721ba3c1e18f6ba6ebac8ae7c5b0d03daee6adabac9ae1590bd903f75a364854c08aee2cd8f848aed695b85ecbcae7612eb0f6705a141da31ec6f9032bd970241acf8350304c5f8a6f2274a18b34a6a1994f070d85519b384ed512bf037f040c38f2bbcdc7d559d8d4dfd2283933f4cc7d67dbd8f91ae2cca133ccbfa903c13a4b4c60b7276698369ed5b684cd861b462d17949216d0a9cf3fe8b07382d2031fb3d9180a62c4c9dcb25eaa1e0dc7c40d1b0b7c581866f67a6b36131dcd6a23036a4d28ddee436fe1c93426f8d613785962e27639697fcbe6a340fd85a7b34818037cfd89e85565eb4c550f6c48e89751ed4a62464d4dfee551d89f41d74aa0d3bb03e466f93e806089b188427a7375a3edc79cb2cd971f82ef516d6dcfa2e90cc568035ab3f62c2ccbbab5de4a75bf367823fa96324a2d0ab476053597af8579ba2ea30304eb225e366b5b5e0124f0045ddd809f204ae076dcf3907160b906f4747c2c8d0219ffff0219ffff05581d023ceea1ae4dda1c0ca12a1b87dfb7f44f77af173a8fe8218565219f960f0147bfe606956362e7194bfb0219100403b7824d9e5701fa8e57230308698740d2903bcbf3dfe460538072048dd8d9834f05581e0327fa0ba0441ee39f7261820bb0f25e0a9ca255a7c0001d63303df99ed0084704dd84053abe000219a75d0358c5998d184ad72be478590448514aa8f06eae347977c324a9912dc11181ca12039d35c3113e97698396d56b059925a7b24e8e91d1d1f793d6715229fc8fc516e10387a2e719cfb9369ff585dd167993dc8915e04f783a417e05ce0e89ad97c3e1d103dde5ad066fa9010b4ccbfe54fae5beb0ce5f2a5625544a25a864456f4688f99903adb69829a908d7f26a6e013554dd4adaf8abf8eebf86458ac3442aae02e482d403307dd4d8fd889aa781db4718a4cb17ea714be84d7c1ffbb53f01651be66042e803e95e06c0fce22883aa4bf94be59beb86994075e02260a7f77def5aff2e10f8d0039340e84ffce699a80317e7618c112bff75207bc7b66a7c3b826d7a06af28f7e0038fec05e3991d618f0945e95eedad59217b050e00133a17835278f38b8494329703f4beb3164aa49d0a5c2803e7988e569477547a7b81787086953ffde35736521f038a0ce9e9999cd88b41dfd6771f981eb13099456281b4c3fe1c96e57885c7a352035b704e7d3dfa08ea7fa8d2547d3f158cfe69515eb79b764d5fa470643a5ee9d10219ffff03794999d6e8a55751eef77e471a1a73071e71344df8892f19d7d058f546838ddb03bd8460066e8fdbce34fbe90d6578c43a6c73d81cf41da52a7bd97320434ea873036d21efe8e503d61a3abe075d95249e9e7339a26a7e98f7319988db0daf80e1c90377d72598db3e70f5ae54584c4fdfd852891cb720764ede9bfe667c3f4245353603533edca5753a62bfaafd35b25bc896344f514d317f85619748ebf74f3d7c806b03a984389bcc41bad3ab6a5a9a932a50cd33e81a0cdcc689f5d7e820a03b4462fa0316686ccad6bf79df8278f8012d07bbd46680b2f176f0200ec7f6a9d958b1294003b861a00786d574712fbb4aabdd2877e6a4567fd8725960304819d84add1e442203b22c5c76f92c2f951fe1395dfdc634b1ba4f0be3aeb6f9329b4b308dab0874ad039d29486c92aaf032a6de29fdc356ac493795b538d583174815c460054b4d30e503c928e80dfbd2c817ff072ff0dfa8ae7e587e63427b0be72259d55b2b03a0c8d00219ffff030939f2e0c3ef8b0875e76c7b67b3781598230a7dc639f5df2754b11c204a1c16033af91f3111829c0afbfb1c0860fbd8508bf2f88ef944de82c423e8592b33151703cec0c0cc7f2d0f51aadda93cdbd5f9f6ca686fc995557298557d771790fb7c0e0322df8b31b953d9db42bea8e7d663ce0ea6178dc024c466ea9930cf9802eef238030d2bd8696fb25be60c6fe22362e6659e870486f1faf6ee582f3d15c8ba2773cc03b6ad16d46723db8c4acfecc6d83bb335113579d995639eda64bf71dffb7c6df303be4b23e14675506d08cfe17abb3f7e31d68540fe554638d9b940b06cd4ea69110346ed9f24b4f8d7e98bc736bec6325e50ccd8366783b5f82df87b71696e5c15d903a32fb0bceaf7a14e6b55f81187b7224460d833c9905264b1682b5660b8dd615d03402a5cfb71a0bd5cc1a1ff1f771f75550375a5198020ae5a74c15b83025fae96033e4f5216c3cb04ac958e15a3be98227d010667450d8643cd18d83a1042ff9f6c038534df22dd88e3ed849fcf805b84cd14612bb15bb6cf0c7fe161781a9f047f180219ffff036d5f3f628873afb39318cb0316bcaceeab5f3239ebeedc1304bd8c0d279f0b1a0329cf716000df60025d297e88ab053b0c9e57a732d09224214d9f8be0a8b2d30d03fdad29cde7ecd5bc661fe6dc5375f93536fd5dd237ade0d38affe5341a9c2a3b03ea6871dfaa78fde623ebde3043a5d665534ef0249fe891788f80a3b2843d8d610342c7a8a359cff4e7497af0a7d8f340de33763a30ffcf8e5358664d2768d7494b0316c8fc0442c313e57b2711181dfac1c1a36e935a7b57cb497e68c71b0618844b03b4df264690fb9f4444fa7ee10fd2f34383192904099dc392b0dfd7689e04520003cc8369ab3841f04fffb9f45cd42c7ba63da9dcbb93f961d0a5a45848f9dc472803231818d75f2337f9c3091214b96deb7481a7ae22ea7b3ef9480fdb2f403a80d0037a282d2c208c92da5ab7339c9d4e32cc01f11ebe9c42fea8eeda3063b9b7f2380380c36241ea5180470a98688a908231a496cb96616d6e9389a267c7494c27f4df036802db6563fdf77b1473cbd1d8ef7998625b615a6d7ef8a5d15c8f953d2b288f03de3a22a9d4482eda734132a4708ab1546aec31bed5f943fe26a8083f3ebf0dde03d0018a41f61792195642d2b1d07f6927fd3c5e82295615cf4c98248470ed83bc03fbd53b45538bfcae992572d316eddcbba1cd6c2e760782173d6af5cf387d859803f33f16659375a096c41cb597bcf82e716448c3238ce9a6d4bdd002b2d8e2823c03ae42af7968d06afb6841d40a990cd49ac2fcc1e289d2202bb10bea9493c3d82f03e2543010692e1632e867cbb077e328f5a4dde5a0e72f94066604d450fc48ce0305581e039732a9cfbc8eeef81d2219752fe6ff95b4b150d065ca950b40e44158400402035d4de6eb7ceafb8f8ed56951703784dd03acb9f0a0b5642c757f693525650d4301410005581e0349fec22d5674a7ca1f034c5129929143a5e3ffbeb6f5d0a10f714afb700c024682f052210e6005581e03bc22e0542fa5da7dd803a8da296a4fa5c413e34d51a98e0a49016784700c034704953f87c2a00005581d02c547286e9f5e80d6ba313a5b7ee7ddaa1fb0412524b598ecd1ca52eb0c181e48463bb92bff673e9805581d02d438fef62bc9e689445c1a9163111d0f0bc77e84d3f5932f644b2b4004010219880005581e03ba440761063cade39d077a894fd78f411c2a2172dc25a1d797a49583b004020368d82b1c679583b2b029c0e0a6790b0eabbd97cb1b738cf90541004118140811021989d803c4d8a7bd3b0edec812ee226e3c07d3d6c7bed725ad4876b1eb9f69da6d5409a40371abe4cc9155b3ab8a7ed151c31364143dd520147557ecac47783a16fceb32ee031404d4c41dcfb2d56335a336f49dba53666155455f8d2637c3ab2eaef9df2b95038ef2a7e71fd7c9ce57bce79c97031ff7987f493d6893adc3d2a0cad58c857b1a033d248621825537835fd5128a44b78eac40a53898babe587a4be891338e537eb30219ffff0304f9485bf849393eae9d72eaffbe8312a6ab6ce2d559baea1c16d292c3830f4803ae4c76cdb037cc2550b50ca65f1846dccd223e23d6ad703b5dbedde4f0b5c5c803cfcdbeb538785e16a942b596aa3d9a9875ddec67a20f10e80ee7cc33f7ba2013035274d36c96ae5d488a4022137b3c1eadb3a402acd2fb622fef6cba9576a99d2303003e9608f6dc4a78b80747a6242b7595b8a140a90370f82588b9221da6f938c30364681a0dc5e174f8752e14cbdc352faf531604bf0fcae218c6cbbecb2953adae03ae39c33c5887a8c02d0248661fc034f0191205e9eb8be44c46e0d0383603423703442aa58c2359264dd7cbec0d8ea4c5d62135f0e11cdc3727b0c543d0572d7f8d0391964d24a5282a98f8842963bb7a772d4d6c9552f79a08af916e8543669ba91d03e79bbd33a2c1082f8020b929afde91d136585c7b8b350ac0cabea93ae3c68b360322ec5d7b9bf2edcb4a02f27fd87729e50658832dd1f6a012f6461f54417bcf0c03ccb37909fc7cfa92db2b5b040f4de2adee7fa2c240fbacb48ca3946b21180b1b0302337abe1a86b88fc92555f556bdef1d003d13bc2cc5397dbb7188f0f5b5c2e00219ffff03f34a67dc90fd153f79b5e2112fa4c1dd822c962cb29b18a93fe89480572d0c1a0375f0505868f5dff36d73bc8f174f166052b2afb54178e0a24ca943532de6a47c03aba0e4c99c444a81394623f136613c70f2df17e3a302dbc264d98a9a07e9a5f30369279214558c710ec3ef426f68d6e8557beb652d56614f2c22750d20abc6b9f003454446e6e7b4d607b9e50657ff15f4703371edd51637223b5c136d18579693940399c082b6dd889c3b0782fe4269d52a428bee690404e9a644cc8a0ee665b08465039df70d7f42275e4a4a221deb8b9dfe9d1c847a332f6e6517fbef06073b1e620f0356add931f7cd3cda70895b3dc43b0af5d060a6c18b8281c3192001add305301f033249151cad04409a537296bab23efbfe5c3ced9ed0263ea57f9cfa61b1bd6f8e03812097d1f662a450924437bac26b3e22067d16cebcfd2eef3ee5a2526836490703256888209f9b63f5254c3509f25f62027f5e21a17f01ce06a742eaf91ac7e39c03820a1a97839e80865540dd651a32de84485fdf1c6ca5370a93edb3e34adb5ff30219ffff03efc649acd7a24317db0723497745e3f36cb15659a27b4d7893e709a48d5cd2e303d92e47d1084bea627005f87b43765e1d4779d4498c07a871635cac532191c97103efce599d2a15f306f10028f3c3b4c702a7e771f9bc2410176aa57eb336f615e503cc69ff22ac8dbaaac96ff887ec35cf692c6b5966299a8ffbb4d9662ffcd2f70903982c52807ee6c2c5c09330ce1986e4fcce90be2509c1d70c7c312cd6f3ed841003df54c4bd9ef483ff0531ced0a0cf88745a4d8934b57783db869c349ad4f317db03e1951dbdd4940518e41dc4be623fae1b7eb0017dddf1cf948378912fef2a6c50038a6f4f69ea7280812cda9d5eb9d8b3490a97d907862a3fc5ebda063d54e779c0034e667b1197af378c4c2b219c221e5cafaa5cbe4652455d0eb1b34057d84372d403fb1bbe8874298e7cc36025a8ac980d4dabd8b21c29a8f3a1329dd87c44f7b55c03d676a3dc50ccd772a4d82ab5eb071cec07bb22c64513af3c66174dbfe72fd82c0361593d327df8a4e61916f713be95be5d612a1ecfb4c1384b59405b5a8ddc91f203e1b5c7c70d5c1b98b4583e39e439d79a13d83e339ec2251a3fdd8596e508379003fb3b12ef2088a22e00c9bf607e3d6b9af006ac16dd425dea01e14b750c7c81970341edc092238cb5fe3253784229c00a839d3ab263eb3e732c3f42936d1e0c31b20392c01f5b510a7bcc6ed4775577e653a96f8fa81839952cb7fba69e5cbd4918c103b74eb2362b265aa433050c4b52d51e594d3804f2fc28b0b6b3fe877e0ef2fe1803e1cf8391461881147dc6f7adbcb88a5952755668e0508d228cfc930f347d1b8e03f04c60fdf7fb8aa30e660a612169a83fd377d4e104d514f2c80496fd9c05576203ec75b46c1190cf9ad35629e77d45bf93df25d8b46b7ebed6e89d820a7e40b1b2037a30a18e4f08c3018f9917e76246b2250ae056216ee21c84bd54290366e38ba5033a718adfdcf90f432fca61b354848e95f8a32bb206f73e7289ab4dc806e0348f036f8da0fd7a7faa71d4512932283ee52257013c870b794c59fa8193e7ee2f36ac03c79a31c9ff3cf71ba3b41d88f521c72bbaa4ed3acde1626891b9fc57ebbdb2c80357ad5c88d05e95e7b8c8b57a7bee998ac164b17c691efe77ef03f9219a05084903bafaa5cbc99310e870dbc80025f9ebb04af325aea21a8b94c68eb17c8b42440503df1573d7bd3b3b08f159f72b3a54c3a36c73280fb081e364bbf5bff85748fb000346bd12e3185af85f7fe11cd657c0315dca2dc63799f1118a0734b28af0247e750393da4a75fcb2120f6589e408c1428f5d6bfdfc5b8d3130fb773b521ff58d639e034ee1bc2b456549bdae04be2b9288a970f38be0114eee6923ccda322919692e460393b412d8bfd61d9fbf4d68e380b30e7dae0248f3f85b8a1eed07932107dc1d8c03e0c70b5673075b12a57cedb23847f9cb5581d6b3e044aaa9a83d8fcb1b34652a031d5fde42c0c3faf686a3612c3a502a7bf23d4f7ab5975e602121064ef32c49b9031dcd6efbfd8b655401fef582014aede03438f77e68f2f8afcc4dde7d93b1ae5e03168ac39784ee3835937266cdc6bbadd25c51b37aa94e8eb6e33f0790e5e2d43f03e97b2300bbd7d27a5b9994175adcc67dde5036024ac9467cd493971ef50c1bf503827ab68f846134b16671044655f23707f9ccad4e6bb60d5ede858d9820cc052303ecee4b34ce545f7efddaf665b72396cae753d21bb369843d44df37eedabb1ce005581e03f91a92c5ad29ac6e9d9f78185607569c9c3afdeeb0a29ab14cecd4d74007011bffffffffffffffff031619790310bbf082b3f78a77eaa7ab043dd8b38075b4c6b0b6a8e4f9015d0c8505581e03bb838dd86b18abaebc1f14f790fd106bca6e6e05ec5d53c5923f3bc5b00c0147017539f9de420805581e0394bf92b516c1b67a139f9f9f848f99b38eda1a042b644530a7df0a8ac0040205581e03465339cc9dc0869e0474aa491908d3b6d16263889449b3b025d0d2aa000848ea384f84b7458e0005581d026ee86edfd4443948883d6fa6aa15f9265fb3c05d8cb96d6add94b7f90c014701a85890dc3a3805581d020cffeb00d994cb71f539242363e842e0de5442b3b60d27baf0d3ceb40c0846537a8365d708031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581d02a464ec734989439847a2c9e27ea3a24a6961185fad70a76fc51a2c3207011bffffffffffffffff0219058003fd5384d9fa47d866e07fed259e2ac4f9522c0d7b76fd741a8704569199cf8d1802192f8503349900c75123f3d0b415f26d7e67794b91d62e830aad273d738031abade8a4ff035075b55d9b3c1e26a4f7918979d38db6bfa5ba860b1aa14f8fe4ddcc272c82c50219ffff0377942bf8fa1bb0e44d3f61ee11b0f816123e0e8f1892846fd6962a98f8046bab039f90a80719dbf55159cbb84eeba171139d706deea963393603319a6597efe29b034feaebc279066ffba0af82a58b801ea9178f1f89d5d867023c03a4cff373b71e03681c016594a61aa994d0e647813da335565dbb9ddc8d7c7138ebbe775c6fd092034cf1589b92b74fafd128d1ac7674a6760995958840682069e94818a1b8ef3c9b0219ffff03921b113e7a5485b9f5a03159cc4f936856b61b1fa22482629af5386a4f866e63032dbce92ff09af21bb3ea9125c979585f699b00df455972604f72347c98f9c43903489983fbe0da4f681dfcdef34c5f52145eb17913988990df5c6190856cb10b6203be578f5696467431641d206c1625bd85fce00f1c8b93c684fcc6e6606dd0f348038a1e78dd40d8032a33d317b8b73cea4dd8b6c74ed715648f2ff8ccbcd88d2dec0219ffff0391694b1c40e9af3601586e4c846dfbd2c1938a30ca0cd08ea406775909c9a0400219ffff031295496008693a5362e06dc085377c283f3ccdfbfd940590caf7660ef4dc73cb03059d5a93616017ac569cbd2c5ce78fa423dc0178204f10a76918c49e283d0b0a039388204ff0dbfcd02a82569f15b79e4b20a4ebf4e4a086dcb25ea770c4813b81039dc8fd0aab38fe2af06a7947f3c61361a4a86cba0433c84d0f24f69bbf06128f037892a6d0efc3032bc0673b82344ab49abdbfb98e03368a50167e8b759656069a031f2a3fb7bcaf1e2aad2b103dc62efbd0366976573b200cc6d61e0311baf3bd8e035dd05e6e90a103fbc536530d089c092845779fdb3acddf62a175415e2dd15279037e67d3705d081ebefd1af40e2a3508aa475692a30e4a6a5bf7399cb7acb3235c03a87d9c29838192908f3f84fe16bcfc24063f73839fdd84f4935357156009c50a0340859595c39924688bcbae956713f19449007630257c02a14c73c3305b2cb0a003567c40a0222f74bf4d15800804839d05ac819b7da8f6a4dcb6e88a2f03d30026030d03f2e00e9c013b634e7c31fa51784c640150b5e7af4d6dce1e5f310cabe34b03fb0e220feee895a8ea23c5205173cebcf821c18a3404b20f82c85aa8175efdd2034bfc6798c7e8500598a537ed3343b1c457654c8c0bfa91e2e639bffda891777c03bcfe153b303c85b010f46f7623d94ceb5e8e693dcd0ee603475866020664684f032bf6647a3a4347f2ac0275e5e930bd6c33ef5b1e2f0385e78353f3908ac68d400389ca396ecca04e2d0f75913b8dadc1cbf36d76bec0f42c5d94ee6a1e005db2a703502ccd3088f21597b6e17ef3daf6bcacfaddb998b1f42b8839b0b08d9d75763b03f4c6d5d70ad9bfd4e8c7d3af248e7c7468cb9b4aea866109a390f127a459757303c0beeae73f36167e66ec468c96a73ff3d7a38f9384ea6d9190ca82eab46d30d103ab3c347f9d8148c4fc0739ecd36877838e5e9b2d7deda657c7743204887f4cc103cdd6fa95e93a32593fb54943137d0fcc2ff105381e54971ac220b19ebd82c26d03187ea97ac8cc9a96d13ff237560c351150cf49522ccc3038d9b4cf75ebca7a0403575dea950a745cacb9b533b6a8f55ab3716b7dd5319596cd67d104cc8e429c2a05581e034b026e0ccb2886851b799fb2b5f10d3e77d5a087faefef0a6a45ede3300c01473cc974501b60000346800dbc1fb6ec0e2b1dfcef70ff839b2a015c7bdd007253c5cbbe9a4cce945103fcc4b66d8b1ce1a615475d63a6b3bb9ae3fa662c157980893623757b42262eaf03a42e1f8a55d7e1a02a312cc4b18dea5acf9d29efd701dbe71c1dd9370454150d05581e03ee12c750bae47089814604fafa3ca1f0ea6f9a832a0bcf7a0d13785120040105581e033e91cdc54d108b5a705fb0dedea4b38231d13d955a197dd11c0032ae6004020396b462bd510ea846da6a5acb9818ba3a024c32cb479fe540b7de60a13446df5105581e032e07157a071246d69789d6487b68a47e34cba8c7da20a324b16d9cd140040105581d020e423cb308b8d4088d3761da8aa432077d674ef7fc243d55031c138a0c1929fa47145bc31983787a05581d0208841532d59200c6fc16c9a393a46e1ea86d62879b645853276c98930401021940800219f27403130b943af1324d7710f68ff1fa630fb2c04eaf5bbb3a4026b031cfdf73475cb003b5bc3ec27e7577ff352b61ff8af10c03113599797265a1ada1d85655db31a21903959a4af2b73cc2e293ae3e71570d9398fef3fc18c7af935a6acc1af11601d0df03b61382ea4ae932604214a28d80cdfaca5286d11c6aaa41902520a44444360a490379e38872c49fd5d6368cd064f51835d7c87dfab44dc2a8e154190177a0ceebac03425b40e513d34cd2594a4dc3079cedba10fa67022f4880aad785a1589e1df2a503f7406911e8bb74608fc76c594dc7d3c6be5fce216c1d9573910c1c9e404ff81b03b76f497e1f73f03b83af36ae6135d82fd7b7a565e4447df340a6eacaedc4e5ea0325a91fd6d3756ea5171558a6569c34d1922321327541f865a34a080e08252a7a0375922bf3945954581426d9b61aea5469a6b31df867473dfb5971ddc3af99857603a0235c69e35b4aec6ec5ad2fae60ba0747e304ac8f4d14e39d305c52a2a581e50219ffff03d86c8def19f2ee37561c18cc8d6b60ac5fc7a3196351b502bb3da8fd8e7595e4034ac0860eb6f93e548e47aa260c13d2c19e9682f52d97b1cc1cfc7399bff6946603a97baea6718636a35df4016bffd4e124dc90d5610c7d984cc3f6d3aed9bb6c8303d07bcf6adb4c6d8cdb9ea038562cb14c0c71e84dd62c57fa75401601e73fee6c03b55cac79e9786a4e1e62459419f0631c0e8f3e0d374b37a6f6df16ca975bb5450363bd07471f5b799d921f5802db0a9be6f12bf14f20bc1ce91a5b136e831e476903c1332e3e84a5d666a01ca6aee44f0cc5ac0146cc3ffd8438840817b146cda9e203bcc4cbee38ab69452840c3497688df2e104b8821640b11efcd9242919667ce58033a936040618df4afbc0b00a086c0730ff49b5bfdaea6051b924a17c61c0e3a2d033f5002726fd03eee462a9e4d3f7969a4a5ed2ec1d3e4600d48158ba7b61ef8080325af8c698442089e569641868605c9197c9d885fabe17989b2c4140c069c83640219ffff0341f9834f0b874405f4218aa5e789fab8b4d827ef20071a438c408b159dea0191032daf69f29e59a71df73b7f7066758a6fb3a625089f561d472cd5374272e9869803ada55d27e2c35216885d0075dd2d3f75a31fc36fc0824e95bb74dd68e36d96b303b44fce8fd1d37ec861e81f5873eff6cd0c2e800423c6376930b441c4f66e8146037788925a12a1b97d547b5f981365b132c6ded9fe9abe072a04d020121a92de0a03f51a477811c3858165c46650dc6008afb981261781a8974a9b7ecd97208d83010386611a23a61ee0b03217ac2d6ab3cf7bed711e298f068fc6aa4ca648e7e5b4aa030f47e3618788357d539102379e8ca45afffe9c889ac0aedfa37d35b92709181a03880ec1cc508cb5923591168a0ee4535c548a539c3fa9489ed3f6199437bd83f103a155e26473f2630c7dd812a379374d6b75598eeb8657d7b97f73cee84cdbc2850219ffff035dbc02db5e62de6f832e816711e1ba2a47599448900d3fb22bf98c1bd83c9cad0339987e9993691afcd10c1181edc1b79420842f55b58b240a93f97998056b989d0354405d61fb0dfe0006db4d8a870aecd962ba89c7f2a449be68f61db4716b728103872fdba6f9fc7e4cc499df93285a4c717c709afb34e438672230c7adfc8560c90219ffff03a7e9fdd4e8cb76bf491b5e015a0945675b78b610bc47f63ca52cc08ac665508503dc8d210bda50f4b810a828809d99f9180aa7c528a1c1ae2f3d6d8279f36c8df5035f2075ca7144bcd565851a17175feb5a0bcb87dcc118b1409db0dcdc4f77701103aa109588b757ed8798464982fb2710a672559f18d9263dd3a9620821e92db612030706d2935f5576b6ba6e7b2db92de4fffb05d29de39f152951911cb43dbf9e3703ff144bf7b28f125e5bd53bd7aa1f67aeb6ca9ba4e2548e67112e1c4d7155970a03fbc982122ea113c84fcce8f1d62a0c71c9da9dd5143627ccf900e55807d8f3d503d7f3bf4f837acf6aaacf0e6dd933de4552a6a30acdb1e7af3ff75ca4251da0a903ec0cd0469a54dbbe19fe6d986ea574d7cd15e1ecb7586e357f229930400ab190034781ac32513bd27e5e685a0a3480cbe04fb5524015d3ee899f19d991a75168dd0305e73861fe72da2d240312857056a7cec82cf5bd049de36baa258cd27f384bbe03111619e0567902cb439beff7977a966ce77a1e12d3a18e6c6dacf175c8e17bc503cba7598b6d3aa2ba10af0800604aa61d03c11d71d99fb1caaace90d46dfe602903c85e87bc99c46a60698f02e61d1523d976dc5dd3cef6f97260ca01a4fe4473d203b40ea124644584d4b975d03de6afd87336ea67101bb179c5d408aac8889832a003c03a0ae24da493012e207909bc04bd24a86b36f6ef664050f91b345c80bc1eed038e22da616736964b1ff4d3eb7737890ee9379318cad0bcd76e592fe65991a9b803f3dc62dc20a237faa4f38bf81970276b8cec5954b21bc4914e321cb68357360803c271902cd9119bdda06cdc4ae78d98da418f374eb0b33e7689ebf9f4e9b695cd03e28658bbb2b290c59188e212fd023d69a7b0af55431ed205c1188c9662a8b0a70338df73db21a6632f2222191b51a2f9516a66a517925991a4143c8e15059d28b7032f99440b4c78904dd5e94f30f0090e20bebcbe5408f521655011d05a693a0e3d03188c0381462ff408ccba4a94ee9cd449e2eab21664cd9840c2c604c0a233671503cb2f3953cb1dfaf35dc0719b90e805b71b3f2abdc1cd0f18d193848aeb14e8da03750dd761657d6e7ce030c14774f463f7fd4380953e8f487c5ab1aa37b9f5a77703d8c216fdfc6662517a60f540cfac819d714526a0a377b80b3f3f98284db5dafe0314a3af7cacbd02e6b31eacd40092f51549db096ecec9e78c05178d7d95c3d9b905581e03adbac62da7e85fa3dbfeee08c58caae4f9be053cb83f5fb1c6b0b47d30084722243e7c4aa00005581e03b81a22b7a2841921a51c2c10888bce43d14349fe3cb406134b01ba4f800c0146135f74a82f0005581d022e9c01a0bb8b3d5aaa8ea6f8ba6ac1347b235e26821ea86c7b1d93df0419011c03647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d038fb4c3c27f6921c644ddfc9424975b91b4588247ca2a1dec3696da65a397bbf505581d02a3d0221690b2d1426548d7681e4bdc429992a24e198cc8e194b2e6cc07011bffffffffffffffff0206037662d2b70c3e16c8ce58c023806fd2f5842f69ca8087a9f8e1afc3591667857703e457a7d448c66b50cdeebbcd35dfe9317da3373375f56d63e49111c26c6d112405581e0352098ec0d4a47b14108b2c1797d0bbec5a44bf408c8d647dc371eb4b400c01470160ee0b653c0005581e03240101d8cb9babe5e90dd977cc5cd82db58bf5a4695306936345fe64b00c181a46f4449e1da9d902197702035460926050397e2e5118257e735f0a2cfd3510884a8adb6c3118fbe8d542ceeb03e9f3401b75a739efa01bf147227582e7fcef05ab339db66fbb5a0a9af8e6b1870219ffff03722b1ceff6729733f72bf5b6be513e281cffcd434745c9209405359415469e98036d09819c65bc21a6ea1396230abd00cfb97b12b3a0f3cd4651b5deb6ead14f1103108b79651967fb272fdcb6764ae8be3ac694e8ec2fc3a3816c54b491d54aac9903f1cf2288d68379fe91ea6bb51e57152e97a7b886dae582b4d03a47e086593aa8035b3adc71089e0b4dea0da9dd167423c8d997c08979f1dfb537179d0d93c781c5032dc6e8a35bc5f7a4df5b6181a32b37dc9c38d915e5b0132f09c3a2a0da30cc390363582dd5ad799c5d5f1c5f262fda33e261115039ca94db3d68e4af96b417cf9603ecc386f163eb6725ec2d61893c636d5c62a9eea7f544cdf8569a29b5dca424530363e94484164c7d2543a795f65e210d5340b3ff803408dfc09d9f6dcf5533e49e0219ffff03755d109797c4d6545f3157e941698389ea67549f6e0ea2b4a6416a8a91044920037b727f12002e71105d143db605a76921769e32be21058217e4657f5f0d254de1034fe0fef26325d02af93044a7e0ecd65569770ded08f0024596e801929bb04515034b268cd276ef5397032cd09a9ca36858a0fa828c3a45179fc3128def0a7a4e0b0339594ce86d9d567d71ebcc7b9ef88d6a68cb8d78411e0ad9853fae4a7fe5ad54036bb37728c57a68df92606569755fbbeb0aa958fead58fc83f7a63654ea86bbbc03b69819fe88c0092d5d119552cec164b21841ecd37e0eb4efe057d2e61c2b142203ae5f87cc646c3d2261c1a9ec600810555e968296c980114f1659c89f6ce93ed303a7df5b15624276df1b96fc365a462dc5791e3500fddfe8982f0478a31109c6bc03ff1653d591da3c488de8b7c71fa6e4cb6b54684530bc0d430bfe246b7ec2dc0503d80775958b3a8355209f41d8b23a7d1abff8d06ca0673c26c95348bd7b1ce6fd0333bd8da457aa9f67f4ea26cf34057e0a4aea1efa271ee62845fa1f7d917aea330219ffff03c396c1be1ca21159072a2c954a292d16de9f78aa2860b7c964b76ce2cdc8cace031cd8bca8b90c36b3e5b2c395a35ca86e07c48feb1ff456df141f3f780a8b5e8a03c5114a8fbdf4f2a41254722ac94cfee4a770e7b64379fdbc13ef0ff19554fd3103d68624941a26ecb04da1646513eb73a3082a48bd5875b81eb90e35f364b977b603fe109cebec5584e4383314ef1152c7ddf938bf18870a4a749a4f6aec6d961a600387f92ec55eec2b63c3e10a2207bc8057b9e1d2385e56366db30c4d726f98b87c03f94a2d66f72d639b0c2af2e33daad62d0d516456c4de42674feaa83c4af17bee035e0ef69f2c874d71e4995793575547a4e8ed1927f8ad960ffa0e922828a0e8ac03bb2f7e4badea4e24d712869133f33b0fb05c4d7ea44889207e20a51f8e0ca595038ec917a03c78a53ac5f8ac9729baeb63a7e878def1864ef30f867dfc68745134035787d835c323d224f213f3611e5e3b89577f6dd71c83b227679619cdaf000ed7032b1114493d93104a5cb5dd502611e2fbcaa824490a63a2c0579f3ea6d1880703032d97c62a64368f4323e2d8f242dc22a7d8acf0b05e348d47763834863f9b2def039c29b6772fb2b7581fa20224a6284fe47df38ccee81a25809ded7b08508e259c031c6df08cc2b0e9311689ac7ce4bad8d562d51910f74fdf0bf181172f28ea3b9c03aa3b1f7da7946e482a8e6e3e0fa4977a5fe5491142133795ef5b7622b0be447e03336ecdc9605859ec19befafe0379cd8e7456cdc05fd8874dccef3666f2f531e503da8c147b6cfc6487d62f2ed3ecaf457c88a07c0d62a10ad121b4d94150831f1e0373619ad61dc429afdc097c04351078335287635532ad372ec7a14c5dfe5dc6ef03ea71d6efc5d0d25cc652bb90c3301a0fb7d18f054ec9ba9eccb066f40c709e070332695c40bc837352447ab4a972a3700f027d135043c90768519e7c5eff4c426903e151c2bd995b1cbe80fa3dc8564e97df63d24b23f1e4d2c78d7b7454eee66c69033b740f329608164819590b8ddbd829693a2b08be84e6afa34759f65c0115244603fd7b651690e06a6cc88fed603affbcee6d1822621697913371697da180bf0f73035e95c33254c5cc266c95541c71a765c25cccabe0640dfa08a23d3473faa6717f0303cadb9b180d11b60218bdd7c1e3229674a5a8b9762380a4c03d009730db573803fc078ab15b252ea6684744f191a20518c107c57947b83276eddd8d4d2a2db69803f9fe0fdefc1f2765940d6e05780acd76dfc5aae8c72c6ddd4930c27b9224fd46035b3c0280fbfb348dce26c7c18601c2e2e0c0836e48eef5419cffcd64fa290f0e03490d06ceed91773a3a4455189f43c2170b6457e928992d27c4c2a7a6fe28f2ff0350ee84b9d77258f9349cd7078cb1547cf98716b9a28cfa67cca2291e487c2c9f031b22031352e99d50dee73ed7802f0cf91e524289460124926763ea733406b5c30320891bdecfc40973554bad634622234afe02d67cdffb8d1df68302ce0931630003be96ef12200600ade7936ca6edceeb09e3e6a481e23dea421840c0549da43fab03e21d7569c406aa67f41e5cbb245552aff79688301214a5ce4e76188bda25e73d036d5767a3fc025ef9ffbb82564316d1f91e57b66ce39c42af32954dc2890e107403ebe29037f16368d171354f92863b18c82c049b85b29bbfb0ab3b4f2d5f5fdd6f0304e045a8496927e61f3bf19e0d990998723de09d17a1c04f58aa6e35a785f7a705581e03f08e9758d7d2fcb3a73a23ab4afeb9c27f706100e3781351760bdaa930040405581e03718774056b561f07097a923ee997933483bd621cb54822237a4d6505c00c014705c479bb89a400031c7a455cbb5a2a863020eab3d237f60203fddcf00284f854f273ffeaa699770f030ddd3383d9aad397feb109a02a50d8698efd83d16d7963872231a1201dedb9bd01410f03a730bf4ae8b8d79a8c09ab8d29b845fdd4c90f497f2b15089a8c5320d8cd7d9c0347604f36d7923958465d2fbf6a20ad2289c8a7b99170a9eb4f8e929b1df79ba705581d02039f308a9b2ebbc252971f836ea844eb884b3936b34d25c4e919407007011bffffffffffffffff04592687608060405234801561001057600080fd5b50600436106101005760003560e01c80637ad168a011610097578063b768bb1711610066578063b768bb17146101f7578063c17b291b1461020a578063cfdf677e14610213578063e561dddc1461021b57600080fd5b80637ad168a0146101b057806381eb62ef146101b857806389a1d980146101c1578063ab59f7b8146101e457600080fd5b8063461a4478116100d3578063461a44781461017057806355a17f8a146101835780635b4d90e2146101955780637aa63a86146101a857600080fd5b80630bf3b5f2146101055780632169f79f1461011a578063299ca4781461012d5780633cb747bf1461015d575b600080fd5b610118610113366004611e24565b610223565b005b610118610128366004611f03565b610322565b600054610140906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b600154610140906001600160a01b031681565b61014061017e366004611f66565b610602565b6002545b604051908152602001610154565b6101186101a336600461204e565b610689565b6101876107ef565b610187610808565b61018760035481565b6101d46101cf36600461204e565b610821565b6040519015158152602001610154565b6101186101f2366004612083565b6108b1565b6101d461020536600461209c565b6109b0565b61018760025481565b610140610a4a565b610187610a72565b61022b6107ef565b82146102525760405162461bcd60e51b815260040161024990612159565b60405180910390fd5b61027e6040518060400160405280600b81526020016a2137b73226b0b730b3b2b960a91b815250610602565b604051630156a69560e11b81523360048201526001600160a01b0391909116906302ad4d2a9060240160206040518083038186803b1580156102bf57600080fd5b505afa1580156102d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f791906121b6565b6103135760405162461bcd60e51b8152600401610249906121d8565b61031d8382610aec565b505050565b61032a6107ef565b82146103485760405162461bcd60e51b815260040161024990612159565b6103746040518060400160405280600b81526020016a2137b73226b0b730b3b2b960a91b815250610602565b604051630156a69560e11b81523360048201526001600160a01b0391909116906302ad4d2a9060240160206040518083038186803b1580156103b557600080fd5b505afa1580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed91906121b6565b6104095760405162461bcd60e51b8152600401610249906121d8565b60008351116104665760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f74207375626d697420616e20656d7074792073746174652062617460448201526231b41760e91b6064820152608401610249565b6104a46040518060400160405280601981526020017f43616e6f6e6963616c5472616e73616374696f6e436861696e00000000000000815250610602565b6001600160a01b0316637aa63a866040518163ffffffff1660e01b815260040160206040518083038186803b1580156104dc57600080fd5b505afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105149190612227565b835161051e6107ef565b6105289190612256565b11156105ae5760405162461bcd60e51b815260206004820152604960248201527f4e756d626572206f6620737461746520726f6f74732063616e6e6f742065786360448201527f65656420746865206e756d626572206f662063616e6f6e6963616c207472616e60648201526839b0b1ba34b7b7399760b91b608482015260a401610249565b6105b9838383610ca4565b6105f7838242336040516020016105e39291909182526001600160a01b0316602082015260400190565b604051602081830303815290604052610dc9565b61031d835183611002565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac1906106339085906004016122bb565b60206040518083038186803b15801561064b57600080fd5b505afa15801561065f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068391906122e3565b92915050565b6106bb60405180604001604052806011815260200170212b26afa33930bab22b32b934b334b2b960791b815250610602565b6001600160a01b0316336001600160a01b0316146107415760405162461bcd60e51b815260206004820152603b60248201527f537461746520626174636865732063616e206f6e6c792062652064656c65746560448201527f64206279207468652042564d5f467261756456657269666965722e00000000006064820152608401610249565b61074a816111b0565b6107665760405162461bcd60e51b815260040161024990612300565b61076f81610821565b6107e3576040805162461bcd60e51b81526020600482015260248101919091527f537461746520626174636865732063616e206f6e6c792062652064656c65746560448201527f642077697468696e207468652066726175642070726f6f662077696e646f772e6064820152608401610249565b6107ec8161124c565b50565b6000806107fa6113f8565b5064ffffffffff1692915050565b6000806108136113f8565b64ffffffffff169392505050565b6000808260a0015180602001905181019061083c919061232f565b5090508061089a5760405162461bcd60e51b815260206004820152602560248201527f4261746368206865616465722074696d657374616d702063616e6e6f74206265604482015264207a65726f60d81b6064820152608401610249565b42600254826108a99190612256565b119392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093591906122e3565b6001600160a01b0316336001600160a01b0316146109ab5760405162461bcd60e51b815260206004820152602d60248201527f4f6e6c792063616c6c61626c6520627920746865206c6962416464726573734d60448201526c30b730b3b2b91037bbb732b91760991b6064820152608401610249565b600255565b60006109bb836111b0565b6109d75760405162461bcd60e51b815260040161024990612300565b6109f483602001518584600001518560200151876040015161148f565b610a405760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420696e636c7573696f6e2070726f6f662e00000000000000006044820152606401610249565b5060019392505050565b6000610a6d60405180606001604052806021815260200161263160219139610602565b905090565b6000610a7c610a4a565b6001600160a01b0316631f7b6d326040518163ffffffff1660e01b815260040160206040518083038186803b158015610ab457600080fd5b505afa158015610ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6d9190612227565b610b2460405180604001604052806017815260200176283937bc3cafafaa29a9afa3b937bab826b0b730b3b2b960491b815250610602565b6001600160a01b0316633231a7f083604051602001610b4591815260200190565b60405160208183030381529060405280519060200120836040518363ffffffff1660e01b8152600401610b7992919061235f565b602060405180830381600087803b158015610b9357600080fd5b505af1158015610ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcb91906121b6565b610c115760405162461bcd60e51b81526020600482015260176024820152761d995c9a599e481cda59db985d1d5c994819985a5b1959604a1b6044820152606401610249565b600082604051602401610c2691815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663f523f40d60e01b1790529050610c7473deaddeaddeaddeaddeaddeaddeaddeaddead2222621e8480836116d4565b60405183907f8ef5d07412def056f6bfc680f359c8a0370cfacb2becaf67d01e2e372e08964a90600090a2505050565b610cdc60405180604001604052806017815260200176283937bc3cafafaa29a9afa3b937bab826b0b730b3b2b960491b815250610602565b6001600160a01b0316633231a7f08484604051602001610cfd929190612378565b60405160208183030381529060405280519060200120836040518363ffffffff1660e01b8152600401610d3192919061235f565b602060405180830381600087803b158015610d4b57600080fd5b505af1158015610d5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8391906121b6565b61031d5760405162461bcd60e51b81526020600482015260176024820152761d995c9a599e481cda59db985d1d5c994819985a5b1959604a1b6044820152606401610249565b6000610df86040518060400160405280600c81526020016b212b26afa83937b837b9b2b960a11b815250610602565b9050600080610e056113f8565b9092509050336001600160a01b0384161415610e22575042610eb7565b426003548264ffffffffff16610e389190612256565b10610eb75760405162461bcd60e51b815260206004820152604360248201527f43616e6e6f74207075626c69736820737461746520726f6f747320776974686960448201527f6e207468652073657175656e636572207075626c69636174696f6e2077696e6460648201526237bb9760e91b608482015260a401610249565b60006040518060c00160405280610ecc610a72565b8152602001610eda8961173f565b8152602001885181526020018464ffffffffff16815260200187815260200186815250905080600001517f9cf3ad24eae3fd6d461e2f566b35b95b6d671871d9fcb45f8ac8030e4a8d21b382602001518360400151846060015185608001518660a00151604051610f4f9594939291906123c0565b60405180910390a2610f5f610a4a565b6001600160a01b0316632015276c610f7683611c1a565b610f9b84604001518560600151610f8d9190612256565b602887811b91909117901b90565b6040516001600160e01b031960e085901b168152600481019290925264ffffffffff19166024820152604401600060405180830381600087803b158015610fe157600080fd5b505af1158015610ff5573d6000803e3d6000fd5b5050505050505050505050565b600061103c60405180604001604052806017815260200176283937bc3cafafaa29a9afa3b937bab826b0b730b3b2b960491b815250610602565b6001600160a01b0316632cd00d536040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561107657600080fd5b505af115801561108a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110b29190810190612403565b905060008151116111055760405162461bcd60e51b815260206004820152601860248201527f67657420747373206d656d6265727320696e206572726f7200000000000000006044820152606401610249565b6000630fae75d960e01b8385428560405160240161112694939291906124e1565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905061116f6020602160991b01621e8480836116d4565b42837ff533ef50019763ee9d95ad46e28350b533c11edd472ae7be93e8fae83c1b6d9986856040516111a2929190612510565b60405180910390a350505050565b60006111ba610a4a565b8251604051634a83e9cd60e11b81526001600160a01b039290921691639507d39a916111ec9160040190815260200190565b60206040518083038186803b15801561120457600080fd5b505afa158015611218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123c9190612227565b61124583611c1a565b1492915050565b611254610a4a565b6001600160a01b0316631f7b6d326040518163ffffffff1660e01b815260040160206040518083038186803b15801561128c57600080fd5b505afa1580156112a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c49190612227565b81511061130a5760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b2103130ba31b41034b73232bc1760611b6044820152606401610249565b611313816111b0565b61132f5760405162461bcd60e51b815260040161024990612300565b611337610a4a565b815160608301516001600160a01b03929092169163167fd681919060281b6040516001600160e01b031960e085901b168152600481019290925264ffffffffff19166024820152604401600060405180830381600087803b15801561139b57600080fd5b505af11580156113af573d6000803e3d6000fd5b5050505080600001517f8747b69ce8fdb31c3b9b0a67bd8049ad8c1a69ea417b69b12174068abd9cbd6482602001516040516113ed91815260200190565b60405180910390a250565b6000806000611405610a4a565b6001600160a01b031663ccf8f9696040518163ffffffff1660e01b815260040160206040518083038186803b15801561143d57600080fd5b505afa158015611451573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114759190612529565b64ffffffffff602882901c169460509190911c9350915050565b60008082116115065760405162461bcd60e51b815260206004820152603760248201527f4c69625f4d65726b6c65547265653a20546f74616c206c6561766573206d757360448201527f742062652067726561746572207468616e207a65726f2e0000000000000000006064820152608401610249565b8184106115615760405162461bcd60e51b8152602060048201526024808201527f4c69625f4d65726b6c65547265653a20496e646578206f7574206f6620626f756044820152633732399760e11b6064820152608401610249565b61156a82611c63565b8351146115f55760405162461bcd60e51b815260206004820152604d60248201527f4c69625f4d65726b6c65547265653a20546f74616c207369626c696e6773206460448201527f6f6573206e6f7420636f72726563746c7920636f72726573706f6e6420746f2060648201526c3a37ba30b6103632b0bb32b99760991b608482015260a401610249565b8460005b84518110156116c75785600116600114156116605784818151811061162057611620612551565b602002602001015182604051602001611643929190918252602082015260400190565b6040516020818303038152906040528051906020012091506116ae565b8185828151811061167357611673612551565b6020026020010151604051602001611695929190918252602082015260400190565b6040516020818303038152906040528051906020012091505b60019590951c94806116bf81612567565b9150506115f9565b5090951495945050505050565b600154604051633dbb202b60e01b81526001600160a01b0390911690633dbb202b9061170890869085908790600401612582565b600060405180830381600087803b15801561172257600080fd5b505af1158015611736573d6000803e3d6000fd5b50505050505050565b6000808251116117ae5760405162461bcd60e51b815260206004820152603460248201527f4c69625f4d65726b6c65547265653a204d7573742070726f76696465206174206044820152733632b0b9ba1037b732903632b0b3103430b9b41760611b6064820152608401610249565b8151600114156117da57816000815181106117cb576117cb612551565b60200260200101519050919050565b60408051610200810182527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56381527f633dc4d7da7256660a892f8f1604a44b5432649cc8ec5cb3ced4c4e6ac94dd1d60208201527f890740a8eb06ce9be422cb8da5cdafc2b58c0a5e24036c578de2a433c828ff7d818301527f3b8ec09e026fdc305365dfc94e189a81b38c7597b3d941c279f042e8206e0bd86060808301919091527fecd50eee38e386bd62be9bedb990706951b65fe053bd9d8a521af753d139e2da60808301527fdefff6d330bb5403f63b14f33b578274160de3a50df4efecf0e0db73bcdd3da560a08301527f617bdd11f7c0a11f49db22f629387a12da7596f9d1704d7465177c63d88ec7d760c08301527f292c23a9aa1d8bea7e2435e555a4a60e379a5a35f3f452bae60121073fb6eead60e08301527fe1cea92ed99acdcb045a6726b2f87107e8a61620a232cf4d7d5b5766b3952e106101008301527f7ad66c0a68c72cb89e4fb4303841966e4062a76ab97451e3b9fb526a5ceb7f826101208301527fe026cc5a4aed3c22a58cbd3d2ac754c9352c5436f638042dca99034e836365166101408301527f3d04cffd8b46a874edf5cfae63077de85f849a660426697b06a829c70dd1409c6101608301527fad676aa337a485e4728a0b240d92b3ef7b3c372d06d189322bfd5f61f1e7203e6101808301527fa2fca4a49658f9fab7aa63289c91b7c7b6c832a6d0e69334ff5b0a3483d09dab6101a08301527f4ebfd9cd7bca2505f7bef59cc1c12ecc708fff26ae4af19abe852afe9e20c8626101c08301527f2def10d13dd169f550f578bda343d9717a138562e0093b380a1120789d53cf106101e083015282518381529081018352909160009190602082018180368337505085519192506000918291508180805b6001841115611bf057611a8b6002856125d2565b9150611a986002856125e6565b600114905060005b82811015611b44578a611ab48260026125fa565b81518110611ac457611ac4612551565b602002602001015196508a816002611adc91906125fa565b611ae7906001612256565b81518110611af757611af7612551565b6020026020010151955086602089015285604089015287805190602001208b8281518110611b2757611b27612551565b602090810291909101015280611b3c81612567565b915050611aa0565b508015611bc05789611b57600186612619565b81518110611b6757611b67612551565b60200260200101519550878360108110611b8357611b83612551565b602002015160001b945085602088015284604088015286805190602001208a8381518110611bb357611bb3612551565b6020026020010181815250505b80611bcc576000611bcf565b60015b611bdc9060ff1683612256565b935082611be881612567565b935050611a77565b89600081518110611c0357611c03612551565b602002602001015198505050505050505050919050565b6020808201516040808401516060850151608086015160a08701519351600096611c46969591016123c0565b604051602081830303815290604052805190602001209050919050565b6000808211611ccd5760405162461bcd60e51b815260206004820152603060248201527f4c69625f4d65726b6c65547265653a2043616e6e6f7420636f6d70757465206360448201526f32b4b6143637b3af99149037b310181760811b6064820152608401610249565b8160011415611cde57506000919050565b81600060805b60018110611d1c5780611cfa600180831b612619565b901b831615611d1457611d0d8183612256565b92811c9291505b60011c611ce4565b506001811b8414611d3557611d32600182612256565b90505b9392505050565b634e487b7160e01b600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715611d7557611d75611d3c565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611da457611da4611d3c565b604052919050565b600067ffffffffffffffff831115611dc657611dc6611d3c565b611dd9601f8401601f1916602001611d7b565b9050828152838383011115611ded57600080fd5b828260208301376000602084830101529392505050565b600082601f830112611e1557600080fd5b611d3583833560208501611dac565b600080600060608486031215611e3957600080fd5b8335925060208401359150604084013567ffffffffffffffff811115611e5e57600080fd5b611e6a86828701611e04565b9150509250925092565b600067ffffffffffffffff821115611e8e57611e8e611d3c565b5060051b60200190565b600082601f830112611ea957600080fd5b81356020611ebe611eb983611e74565b611d7b565b82815260059290921b84018101918181019086841115611edd57600080fd5b8286015b84811015611ef85780358352918301918301611ee1565b509695505050505050565b600080600060608486031215611f1857600080fd5b833567ffffffffffffffff80821115611f3057600080fd5b611f3c87838801611e98565b9450602086013593506040860135915080821115611f5957600080fd5b50611e6a86828701611e04565b600060208284031215611f7857600080fd5b813567ffffffffffffffff811115611f8f57600080fd5b8201601f81018413611fa057600080fd5b611faf84823560208401611dac565b949350505050565b600060c08284031215611fc957600080fd5b611fd1611d52565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8082111561201057600080fd5b61201c85838601611e04565b608084015260a084013591508082111561203557600080fd5b5061204284828501611e04565b60a08301525092915050565b60006020828403121561206057600080fd5b813567ffffffffffffffff81111561207757600080fd5b611faf84828501611fb7565b60006020828403121561209557600080fd5b5035919050565b6000806000606084860312156120b157600080fd5b83359250602084013567ffffffffffffffff808211156120d057600080fd5b6120dc87838801611fb7565b935060408601359150808211156120f257600080fd5b908501906040828803121561210657600080fd5b60405160408101818110838211171561212157612121611d3c565b6040528235815260208301358281111561213a57600080fd5b61214689828601611e98565b6020830152508093505050509250925092565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b6000602082840312156121c857600080fd5b81518015158114611d3557600080fd5b6020808252602f908201527f50726f706f73657220646f6573206e6f74206861766520656e6f75676820636f60408201526e1b1b185d195c985b081c1bdcdd1959608a1b606082015260800190565b60006020828403121561223957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561226957612269612240565b500190565b6000815180845260005b8181101561229457602081850181015186830182015201612278565b818111156122a6576000602083870101525b50601f01601f19169290920160200192915050565b602081526000611d35602083018461226e565b6001600160a01b03811681146107ec57600080fd5b6000602082840312156122f557600080fd5b8151611d35816122ce565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b6000806040838503121561234257600080fd5b825191506020830151612354816122ce565b809150509250929050565b828152604060208201526000611faf604083018461226e565b604080825283519082018190526000906020906060840190828701845b828110156123b157815184529284019290840190600101612395565b50505092019290925292915050565b85815284602082015283604082015260a0606082015260006123e560a083018561226e565b82810360808401526123f7818561226e565b98975050505050505050565b6000602080838503121561241657600080fd5b825167ffffffffffffffff81111561242d57600080fd5b8301601f8101851361243e57600080fd5b805161244c611eb982611e74565b81815260059190911b8201830190838101908783111561246b57600080fd5b928401925b82841015612492578351612483816122ce565b82529284019290840190612470565b979650505050505050565b600081518084526020808501945080840160005b838110156124d65781516001600160a01b0316875295820195908201906001016124b1565b509495945050505050565b848152836020820152826040820152608060608201526000612506608083018461249d565b9695505050505050565b828152604060208201526000611faf604083018461249d565b60006020828403121561253b57600080fd5b815164ffffffffff1981168114611d3557600080fd5b634e487b7160e01b600052603260045260246000fd5b600060001982141561257b5761257b612240565b5060010190565b6001600160a01b03841681526060602082018190526000906125a69083018561226e565b905063ffffffff83166040830152949350505050565b634e487b7160e01b600052601260045260246000fd5b6000826125e1576125e16125bc565b500490565b6000826125f5576125f56125bc565b500690565b600081600019048311821515161561261457612614612240565b500290565b60008282101561262b5761262b612240565b50039056fe436861696e53746f72616765436f6e7461696e65722d5343432d62617463686573a2646970667358221220a5535ff5cd353b344d35a54fa67fb2411baea65e6004476dc7c0b0750c418bc064736f6c634300080900330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630546968f3f16c3e64003f02e121cf0d5ccbf5625a420058210305787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace043093a800058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6054676a795fe6e43c17c668de16730c3f690feb7120005821032575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b043c023800219181405581d0290266879d3c6bd25af6235b73732f326cfde050c9e8412b02f11b83d07011926870219440003337eaf318f6178c5ae2a9287ff3719ee7712ddc307d7703ffe79dbcd90cef75a05581e0350bfd395d9fe7e1f5bd7f171aaa6cce46b7040bc74ec12617b49cda69004030219d35003a2cb9357a221a1463816337d90a8d259427ff56146936083f92cccad099cdae30219ffff0341864b6e3ee6f51289da81c0556e6d8757e3562b9652be362be4309f40101b7f0219ffff03316a728426201e1c62ccdee837ca1464fd778e22a05d744ad60365151d796d780302f79ebb967d764c0234f3c00f9932665b70033b3c26a74b260751d27c4d3c7a03f04673bb07428df5718e23cfc47c2f5042aa1deb014a1f0f289f41e21962f963037c3829925e7e88d411637bfb4268f8af5520c043f9ad09919e5ed7715944ea3a03f593f068448863cf6d7150057c3dcca1c91d3c799f581c9194fe4465615362c403b597fb9e4c4e01b220f0f0869cf2f314bbd9fa389e68abaf99d4664317284e5103847702a76ab2e59560c85c4e86b39f825d04a4d31f4a3d05dd838eab3a822326035667e89a8acc1b1643a4fe3c1fe4cdf3bb3bd11d52c05fff22669814abfc79aa035adc02cdcceca38ac77fdd819979e47d99b9a30bfac6075527829b86e0105f3b03d90f6fb89e0d3bca55b19778cffe118fa160b703ff2edcd93760c4fe3438671903ad5a03f07a6a89ff7f749ecdcce4933814dfdde5b69cf8cacc1b3c9114bec60203cb8c53245177b437b9f999a636cd651766eab6af16a29684ff293da0f9d3c3b90341cdfcbaf16ee2623fec0c07214f377c6e50fab86d4fbe8c19a2da00b74c080a0219ffff0375b5ad70221754b71d28660ceba1bfd6e9b19b783fa650707d532da7d7b09ad603ea756de0c91581d5a3631079ad8e29e4f940e8f029e1d1e0b6613a431647d3d503e01e3741af99ba53ad770c600df58a71febe576a3b9df5a7595386af1cb9cda8038a21231c8886d3770928a25c73503ba86001889b073fc0751c28e490a4319002031a13057cdf5484b8f228f71e3c10ba9b4c7a1c2794c7be3d966bf2e637b0edfb03bd0432067b1347fff1e88dee7cb891f18d226ade6a7498f9952b74d4b0173c0603caa9278f2baa760ad172f6bf6039ab46ced6fe287c684d80d3779f20e138e276036aa82105ad512f12939f8d72f060827a3384d1eede9420b068a7c7abf9b7a0a603f71f079a17e2a557d444fff4fd274c50f78c02faf08caec3aa11078788da9a8c03f011b90f06da9cc71c4f133dd67297777bb7fbcc05ae066d9b3194b31d03be690326ee8d1cabc953d2dc33f130c4415f429da51edc52117a06685292de08de47b903e5f9f30c7fa6a4f345e9a20014a9f2f6adb369c3bb715bbefab9b832b2dbd131034bf278a57d60720dfd3e347eba7bdefe91d41219e951e3277e2c5df574f199be0306e9e73fbc31b359a9f65066fa150410b0af1409210ce7058274c6591b58cdd403e73cba4a6738fa48416c64d8cdfca1fbba079956caaddbef708078a2532da6cf03b5d70ad1100b7969c4972fdb1060d12bc29b1f0e12817e4565ac93f2cad65b37039c6c5dea2a68057eba499c01ed9f41406bed135f707650d3695bfacb6c5348b303ec23635f7f241dc48a89cc991217b44953df0f87ed8af37c2c492b1f24ee1560033e11aa97dc77d616d4e4ca286eb5f034825fd82383f31f3577a83d8bc566251c032bbc5ea9eee1ccfd8c66f76a5d4e51758532601b4b4cb3c3311e23e8a8e603e9034854d5f43a7b2004854c38b62e0ec9fc5f81b383dfe4b1466b28f3a1308c52a30397259fbaca69680791e9b089df05e97e71c92518aff5e9062b0640ddd3b3d76805581d028afac297786bad0b82ae253b8d202d6ba5ef1a4ac1fdd69c7487d5c8040805581d02604e439cdb3d2bea3db8b7d04fb6c085ad27f661836cae1f5d08dbb40c0147595e100f83500003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581d02acac4edcd170194ba21a10fcafe1e345be52a9a8f8d6072ab2414ea207011bffffffffffffffff0459567e608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d9281565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000c88f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000271061309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d928d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000271062ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000271062ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d928b8b613b86565b8715611aab57611aab7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d92908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f00000000000000000000000000000000000762d10ef955d55b7d038c7a7231cc81565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d929087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98481565b7f00000000000000000000000000000000000000000000000000000000000000c881565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b7f000000000000000000000000000000000000000000000000000000000000271081565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f00000000000000000000000019c1f6c7468ad4076b05a5f79e3ee80ce00647181614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d921693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f00000000000000000000000000000000000762d10ef955d55b7d038c7a7231cc61513b565b9450614bba60058c8b8d8b8b87898b60017f00000000000000000000000000000000000762d10ef955d55b7d038c7a7231cc61513b565b93508415614bee57614bee60068d7f00000000000000000000000000000000000000000000000000000000000000c8615325565b8315614c2057614c2060068c7f00000000000000000000000000000000000000000000000000000000000000c8615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a0355d48f8dd6b8a89c7c66268dbb3205132a7528d49b2fbb403f15aa117af96b5e0395b214d8420ebfa41ff187ea80690b4eb4daa86a4285cd10beda8f357dd53ec303fcc7e8146d4f28a5dc49275ad3f935d1598a85c513815c3016aa110f6f68ac13005820022d6f21785236a5deb6f08e71e529f97b2b8b54d0affa0b217c22bbaec51d4e501c07e53a2c77b9b7c55151e50aab092e0356fc8faf426d97d14c9912d4bf1f26a891609cbe8f0e6ecaef81b7becb2a1da50058200213253fca3b78cb92e4ce137a1bb9e3327d1e740739a6a0ae0a889b05c3621350fb2ca1fd502c49c7fa31b6c4e516b49f005820020c9f88488b9d14a7b9e360e432c341565b404b4f06a0278ef5fdbe5276869e5820ffffffffffffffffffffffffffffffffffff8975aa35c502682f1ec61f936a5e005820020aa3ea6c12e537ee82afa91e12b4de6cf3d6362d00e54dbe38db91a31d146c5820ffffffffffffffffffffffffffffffe9d75983ee7047452e68742f4176ae6e9400582003decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630581f0100000100010000fe0fe5000000000000000000727edce4c62aa01f28a1ef005820039622fc41d71f73e7b15fece71b3602f8ebf0674f0d86b1ce9b3b302171567051379b1ed119314af831584a7e87c8e611520058200382ae9f245b6015b9dccc2558d78bdae2a0f6590fcdbe53f933c61a699672904e1191a37fa71b64e3a9c62c83d949021885005820021eb962641358d2d297e97b8ac822c3ceaf7abfaad6b172f90ce87e3207edc458200165cef25f00000000000000000000002e9bb153d28a0e9edafffffed2cbcae00359c8d56597f224e8ab941aa6d52e1a815f324721cd8633dd6c79f8368e68e8f7014301e0c003575a015d45c292ca28b4e287cfeea0dedd7b18372ab2c550cb228d6567690bdd00582002553bd82d10219a202080f6d1824d101b122a5452cf8d3042f76fa183f48df749ea3405be1f96015e4702196f4f03c3083f0e16eef41aad731922959eb8d4fc6352cef68457ac7ba4c857272b1ac300582003787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace04f23eb7b84a8e8484191abd38fc3fd0f005820036ca2fc91f5efc140250c375d5c3855ff7dcc3968cab052e84edc112f98a5805820fffffffffffffffffffffffffffffffffffe6404155705c49ffd615148d71ed70058200359c9bda206defa413c73c3736a85b8732297ee0774debaffe943be1eaab76051d4af8ac711c63f3b14ca1cd2933b2f2a3f021904a000582002fa686b9984faab0b9dce5bfdb568d0ec5bf6eed86f998fc816b4543ab740124f1476de7199c5814ed84c8c37ca57a4030738a0289da0f4e799686e370eb8c81c7e5489e7f7c9217e0495cd1451388d0a03e76dde3afe01a15072bd4fba29e1fcf122d87820fa1f7815fd30de8b0e10da1701410f00582003153a89da85ae01b3e6740f8ff25fbfbd2c7fddc300353f12f7b404ef3e95b05107626f9abc281d58c6274405db91ec3bf90058200340d2674d4a3b8fb8b8271c176ea98146ebebf0e584eb77239a3c5890ad17504d69b5193949237c1b89dc57586a005820033e1e06859b73e49492b3c27b75514574e4c70ac611a048f5a5ad3002862910581f0400000400c00c8870030009098310a840043a0280000018000000000000000219540003016eb7ea5b5fc3e912109e17d2c619f393654d76089e2711ff99bbd1a6698404032838969406066bceb8d6118da5f7c27917a314e649755ad135ec64773ec83a9603c968c6bca7a47577924be7bb32a49817484f22a77bed76aa3da5a60697385fa8005820021b426021667a30147518a05eafa19409158121134b9485f06cb56ac0a05e6f5820ffffffffffffffc4de0211876d3cc888000000000000003b21fdee7892c337780219fb81030cf0db67e86d348aa8237f1fc63d51a68c48225b099cf128f9c3a8fdfdca8010039b1096119d8005b59d44ff02e9db8f760af1ea71a9c708e2664009a11efb62ac03c9c06e6102ef73046c2304fdc6f3c1813f3c361ddcd4c2b4291bcc0cc3fad77c00582002a973ebf8140cfb5b9c69ae17d58233dfc11221f0904b2be392dd81332a4f1a57031c7f14665049000000000000000a795ec74f6269f8ec03fa7bfff370df986e011e605d75368b4c8c6dee75efd999818edf762ca1591b2800582002f4a721c7092e1dd10b40c45a6bea85faf08214c6695b2f4b8cee701d693e9b581923bc3108a2086e2aa90000000000000023bc3108a2086e2aa9005820024058e73fdd58f3fce7d93aabfffaeec5e814e05671fa26c4896079e32567b149b5501086770153ede8036c13b91b044511705ceeaf0074199db84f9bad809188bf5a0369c4225fe97d43005820028b2d09f510a2b922d7dea9ba1b326dcb21991b833d0e1eb824cea0352745b54f019bfbeaa8fa3b60029eaeb728e129038f88299e2d8932bede5e54525472d6ccc17c3778768f3392158dd9f6d63bf6e1005820035acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b04a0d5323c032a1f933762d00582003174ba0dd3651a59c301825dce01ee21355e09cf35b24cef4c2b650baafc7a05101469dcf42e987c8b55168ed38de18696d00582003651355e6b636f2cabeb07e9a3cb999567819fc1a9db8c001a0e67b62a0a1a04f1cbe63c3f9000f95774fc4dca15a160219018803361761d7930087150cada3dc0010efab953dadaca5ee64bbe0ca451d43e89b900058200240e8dbbcde38d4a85a672c48ed76b9d4f28f2337e3a4dcb8d8fe18b0bf21b24a02fc533f5d1ca94f3cb30058200222682d226a7ea90015756451ac94b71197308a31580f644356bf65a4ae594b51d1df2d44843f614376eb16c0672a112ba30058200244252c5abc09ed7a3858c3bb97e25f95ff81417b002cae6904d986c3d8c5e25104279bf179171f133a8be510050bf763df0219efb5037a9445a50bd2d4029471d8e9c9594b9ebdec2773342afd4c17d1bf30a0c94fb60343f6a386528f06d4e3bdae1b3ecc4a20f0c7be726edbedfd3555a5b3eeb25bef0373cb4c0ecfa231235e163fb858070b6b4db409d5aa6a7617ea86a70c76862c0a00582003e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6051ef3705659104e66ebeccde7221ed767a5600582003742c02df23a8c5a854e1a8fa3678fa7f3460e860a3df8c7f2a61bba101d5104f07fcde60b99b30e2821d8d75adf3b5021904010058200220b2a1a2219e9bd55e8a4228e54f616f93d2f1c2983f0a80d0dd132d9765845819e673be8b3b2339ff8400000000000000e673be8b3b2339ff84035d90663938f0fe929c5e2265827cdb81450caab874e789953dd021dcc874656200582002e105bbba5212cc9cd7c487c17f2c7a603ca7be185ea8ae00aa5bc1fe1c161c5820fffffffffffffffffffffffffffffff847d7cd54abdc2c3cee287f17486f9e04038fffc129383817597996103cd5c0f912f296c7eca40c5fe7398b40b54ffe7aba00582002b06dd19dba62b0703c18d86da3118519ad054b9b6279517aae527feac5dd584d01f3d7d7d2ac74fc9d9af6e488030e1ca6407f9be804b33f695cc1072a9fb1875a36d9927d106458beaabf03672803b96f88127a912b9547d4b25ffe69a17136ea246819e6e0e13c95c847bfc96931038718da57070817d6eb8d0752d0c55af2c0d820c6ec49d5b96c6f99c231fac3790058200213e5897fe792062c0c2e456813c68d706c574bd6263a1e5fed101c75e626cc50488db9a5362c236d071eb7b1583350f702196cf70359cf53ba9a731a243555facd836c736565d8e8ebb94943a42ccdebd8ae46f2b4031e784b340d0503d5c3a2485f670af0b166487a7d6736f79a7adb4209c7c2e57a03654d555595e86826c7797caf2e1b9fa6c977c8130267df0fac50b963b71383e40359da29b477444c8d9d1bf817586549ef2576a08c26338e47db33f8cfd299c7ac01410900582002aa1ba2efb657f3e9cc1937498b8d805416ba97918a177b45dd4ce7d9adf1e84f0ad8da5c2ea0c3d1a94d3a637f22ba00582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee358200100000000000000000000003464c548ce5311ce3bfffffe088243f465cf5ddb005820026c60d5e1544c1ff7b5c02bda11df5ba2fdf44dac4b16041df47b9b5afcf4964e453123a64f1a4615611f335feb09005820024ce3deb0cc89874ba4e040c091bb9455267793d0baf62b7a2c13ea0f70f9584e059f76b521d9e279ff8e5c9d22d3005820024f00c9b42716dc3811d791f08bef643190bca40f22adf513bf2d3f770bd9d149d2f3fee45e7d6fa7f200582002ae2b21fae2a47eb96ae85e05a29f69e57ac7a3bb20d15f8aaf2f09cd4643c44f015d53011b79f8b14922dd27b2ec920058200220bb282c3c0b794dcf8e8fc2d686f9e62890bf7755140074ac20080236f65549190c9862db56ef88e900582002b5b3e9402b9b0f5bebae5d2300382d5bf25d22d1c8e61a7a3f54fd9c1a96cd5819b5501086770153ede800000000000000b5501086770153ede803851dbca82400ee5e33704d2ecab63f21659e4af4cd28178e66994fe687dcf1ab00582002c902c5ab9f233cb9905e6dd79382490072ed2ddbbdc9976bb2bd57ad8349b8514dabb018bea714f956baf974f3ac1653910058200272da2f2cac6b5fb7282427aed65b8e37427a9737d24567b78d91eaaf067f145819248901c3dafe8f400d00000000000000248901c3dafe8f400d03a0112465fbffa9d91ed477fe56f5c9d734ae884a22c9ea551fd31bb4dd7c93ef02197f7b0219ffff05581d02ad0c86be73f4db53310cfdcc50958f91400e8eebab12532084fb7f99070119567e0219e80005581e03c24a1957b3fbe147938f5f7f5eb05d4e6d11c9efee992b8a4a5f8a9f80040205581e03dc941106efe640c584026f75de5192a0fcaf71201d0f909a54b676ca000c0646b5b45c0fad4005581e0355c1e539302bf026ce4892b7f1807569be6ff1941acca89dcbfae1f0b00401037874e1f01f8084c7324322c72e3204e3e41983bbc539514aec1cdb93c7d086e8032d8c5ce3c2bd7939946fce2ab0f89c0e1997fbcaab2ff41da0d7066c788beadc05581e03d474f03554b025cd09c91e9319a0fa7ae179c3e28340a2aa3860001f3007011bffffffffffffffff05581e0315b8816d734d92241a0609de13b2364623f36c722a5ff0bae719f3c9d0040203ff76a46668559ab9747729ba37dcceca096387242ec45225771b2dafa092ee1801410803b37787a9a7dc4cac686a0238234981788d9bcb2180cf6950b036f4e4969301b205581e03363c77f7b37681e4cbdcc18adcd49d12ecf02e9bf042558c855a58b9a00c024701cd9929d62c9805581e031870a107acfbac328185f18341e65ce3eb6f74381c150baffe8b586530040305581e03bb0b809d93963f9a90fe0dc9d1201a13b718ed7a573775b3af443ebb600c02443b9aca0002197db5034626d9667205194b69cae9fe2e93c45ec7ffdf9704595318ee9f6646500df50f03375d43f6ff4e222144c09744aff33131b345912d7f645fb1d18a9383665a21fa03e8b2f052ae7734cf2c7aeda80cb1a9a2421e985fb73773174011c6a6f2053d0703549ffbef1442ecece0c69f90e10b8262d702b52c585fd19c9f78a4e9f5fba6090396522d6a309709d8b60e810393a0ef8cb0d737a571158d6a59cb8b82d7bcb6ee030bf41c411246d96e0c4630a62c6a712ea2d9072dbada0ca0111e27a4ba53b06c03e8b0676ffadef50fb4b8515ab61444f74a797f987d9de9864150ac454a93be4903010711622b7c25db778a406c9f7f4d99fb9d6bd0434c005de061b3ce37a2bdaa0335027e13d796b810a1104060648ef459f1ec3c3faf3643ecc74268640e65bc23031bfe56299456e0929cbe7dc71335a22d979094e8fabe44f6ed25e98228af5ca20219ffff0219ffff0319371cbedacd6c3d11b154c0ac5621367e08470538b30341c8eee6804edd1167032574956114c7e26353e0139802ce7c3b43c7c8ca1cfa77e5f2662755a2611ca903adb44cbba4fbe2575eb3b4d33bfb5b6d8fac7be1f566790cca979da110c16dbc0360558eaa5e9cb7f5a9bb80bccdcfcae23507c7bbc72d69ffe4e55e0e5d2e8a77032ad981a423658e074f32deeb8e08e9d9874092b3ac7c147b97f7d33d96fb4f4f03d9a6b02bbb7f0754714ce2a802575631b1f45f8b4e48a4220f92dedb2aad0d00038a64cdfb289e3c348c27e3e9e2b4f1407b825bf8fd645ff66ce7326f5f5a5f7b03e6fe0520ed6009c2a02dbdb4648baa73ef058c57eaae6194620a732795df9d0e03d84c6a3a6423f587b290e5b6128e02d45de50fba9798d984ebd89550eadb34920397184b301d8b5fa8250dca6ae1448fe5b57a25af056635d4b40f07c6ef307b8b03c0756b29e8fbeb9e4a9c707740e9972d1981451434c8240631f012010f165ea003df078f0b8e57860ce59995b8f0ea460c70b3037357de63a154f7197038a5e68203c16e48794e68a9cff1ddb9eee86a8675ba78611bf6b59674cb9dc6c02407630e0350811b220a683fd9c0d0cff421136f2eddb84993f132ce8b163a4874ec8a531503af786f93f846139ba56420edc8cb1f6dcc15536ceb23fa2bfcad114c3f2701620219ffff038c935635169664731b3f8e0a0d5b426737c41d8fe1e305522de70789a918b1f80219ffff03aab814696b377c6b8731a213160fb69d4bb7b70498a4041656fb41800170ad1a031063ca3ae6b478819c51838e9916791a3cabde71d99921f1b6d6b923f1a50034035ed1e151a0a2ce48112afbb67b4d9d979e4e1a29349edc71899d4dee6d4ebb68038013198afdfc9f72406da3c9c788c131a518495b0024b974fc525b2e0558d795039b153181ef6d8ab9ce7c202e97f2428f6cb6ccca005f3af10357bd729f083556034a3acac18b69251b0658db6cb7799e9f7226968584470c257dc9d45895b9784103586b31132bb9d371b52263a7f8ec21a82f0a6747ff7beea5c9cc1a7451e92b270318b528360f198a1a4366e9d481c1b41336ccd4805b85184c3b31673afbf5f81603e2054394ac6d4fda06c18154ed48ae36b3aff3d82bb45084062c749687555af3032d13f22e33b02be3742acbe6a6aeb771e3a16337e4292e50f1fb99eb9df73672033215247769e96a7bd85db78e6a51edf2c52ba3fbb1aaf58255f2b47a386fb7ea03f8cf486fb2db515d1530443f84c0d927d2e273771644655dd8d51357ca87b1ed0390189be89c94291c40021656b21bffae95c696a6597eaad07646ea78fbb6c8db05581e03d469454a21ca6c76ffe58c4621ede8d3467835831e58ecfc9fceb8da60040105581e038e3a1c68ddbf98634baf5959cd67797d0d9c90b15cbd62738faed97b300c185048011c6b3b015d4dc205581e0370350c57a4aafbb33108095ccd1772733bb2404eaef280bb5ebd7c77c00c01471d70f1d22e86f805581d029241d7d19422ee01f476db1a37af00800cfca90a79e3ce1520039a900c0147052fde9a35900005581d02edd672d38a905ef72a0d91f50c305a03ec1358b7f3a9586322c993110c0247069aab17392ad805581d02947c62b078bf9a75b77ae14d04705024d211182f53b6f476ce341d2e04010219806005581e039246c491adacd5f419ac881b07171f98771fb92cd632db89a9af142ac0040105581e036e829366a6bbc19c09235324666371715074dc6f4e76e8692bbf454e7004010390ef25a93580cf7f4436b33bfe907579fdf54b50158894b436cad04edaf779700219b60303e6191eaaaa3a8dfcb42f68a31dcd9fb8c0d27e444443027a7cb134b0f03a3d1d0365d5462a8d59922a34b2cec4b0a9ffa742992f8eee71756c8d9d2bb0d618757403e6aaabcc5585f45ee94a0085dff44ff5956d0fa6cf5a41c9b36c93dc731c77800312cb2fa8fcc110307290c32d4399140e5c9b4978007a428e722dcdbe3c3d74100347a8ea62b5cd6efdeccfe97f0e464dd7e1cd63f6139330ae92d6ab371bd1600e038185d7d51faa905ec692443e05b333f4e4b0cb7a48063f6defc6c6baf50d0d9103c7f5ca80faaec9b238a1a8eb045bcbf0e45cc7e292fb801184e96778d24b4bac03724349591ecef99e72a749440cb57ac86e434e934430f83e511cd645a1288f2d0320210d95d7cae4921fe57fcd215eec8043eb961f31dc4b8279accaad9452852003455ab6a5bf2cbab9987935b792ae88d64e75b660b294eaed9bcb9f0d07e3d85f0370d374e4e3f0c8e5428006178eb0a6636c6cb0c734b206cb35c5e772d420d434039834a759938273a61bd6fc0805729ad7c40a21d52ccda91b0e3751c0653f813503efede111fa103c55e16386ebc694635197d80f31500cc4fac2e3796e1634b6ba03562e1d510e149f9579c6733a2f95245f42bca36514b7c63161656e60d060bfe0037658994c37dff9873d3be5a857acc42103d65c26c079effcdf644d1e3cffeae30219ffff039dba5e096636feb1632e6b2fc8aceddb14dca3115224858124248f001440b7c6034d0c86be3c6bdee008390929c494264ca297f7ff7a881a961db8571b66ca01f7034184f1f79ccbd1c6324ec3f8470bffc873ded337b7ead88f6ab625a39f4d146103fc3478c7c58cd45b418c8c8c6a8bddb52c9076cf27d5d368db7117758b5a9bd8039d536334d4a03f8f2c07e0a35774833ca9c6cb7c407581194aa47769fd6fb72503e956f2cf8158ae62bc5669cc5ac7c4b4084bdfae453ef055286a84bc60dcd43503a5c2645fb1e716dd5c3142266cb76ff64f61f5b23ed73c904bb9a05b01b60f5c03bcba23ff1a7057f4a43a2d8bc11377c3ce4ce514663770afe4b2451c5722beae0322f17033c6d25c51789d4c2148bd3bfa87d228d273a7689c21d37b9d2dce282f03741184cfcae9f28713358ea18ad953dd339f46ac9c1d77030e2b4df9bc70acf20219ffff03ce3eb27471529da8428b452c95a70ee912a3435679ff048d6e5465006c56acae031407cbf74c3509d8c49f2105abf3164106880ee62a6c6550ee981f9d90711475033c97d19af5599677fe651bd0f9c90beb3656ec50d071fa2fdc0657679851358703adf673d19396220a80e014768f5ad89ad03d5d6129576d5fff0339f431fbceee038e58457efe868437d7f4a0f89ac478e7f470a5f97762073cf40feded20326831032927a9eefdf7665f82d0f6dec32e6563fa3e287d0168ad89d915b0fea16487e903fd70ba84fd7e4ba04412a8fb24f7dbc9d0f27a630920acfd464a9f70ad09878f033bbcd21564d0397471f8ac03c039f0fd85c08ecc971e06a3ac5789dc71449ae3039de33c534cb7478eacd85472ae539370f09e7a57aefc190697296670f0e5134703966a36eab9926c187aaa6af27a7531e4cf2c931ba9c789f15a7cfc463857ba63035dac147bc11ee382c55567cece2fee3746c96e806f41f90ab329611568cb0460032338a645695cb1d3ae5e418aed53e50109f5afb2429625de631ed2b59e527a2b034ee59b02110ef6918ada370e2a3ca2cc9ec3461693507a5e0bd3883fc8d61bec038e0bd241fd3dcb2ffa453e63e9d8c42d3cb61ee91c74d79cef25ea334f61121d0395b9839ccce22cf816bc38af706459b32bed3ed488c36e922fcdbb3f7b12f1b80219ffff03546660ee51df518d72926e642f80adab211324a726defa6ecd6a7ed200de57720326f6755f85527e3cf28189fdcf4bcf2da7424edfce2f79fb873ec924baa2d1560346276e5e2e085bc23ad5020c965ada873eee9c8db8328ddddbd6d022e17d21ce030bc78144fad4bcf85d0c998eb908b961ae1f80ab04b1dc8d770b3d3fb61d454c034085736ce7c42d858794aa2a1cbf365201c5e738b74d4880ceabb482a0eaa8630392a8b5072d1b74c4117468ebf41c370317418d6cc47c4d7136f756354fef659d033b1129a17f7aea7d0e72bee2e740554df40757134b0cd099caefb454161d865d0219ffff037b589df5f46693143fb6f0459308ae8c40fe26fc548d4ef942dd5b0c43c4f9ba03a4f5d928f4cf8e61743c75a4fd76ac5211bfbb5c1e11d459e719df90675bc69a03959ad472963a4afa4bcbde5dc777bc55bf7cdf55e9ea171a231151c3f727936003d1dfdaed301ba0e6dde97924c4c3bc99a87c43aff7b02f1e235d5f999bf19b48034c6ef4fe8f791f317f1c4b184606632b46c69a252e4a29bf47bf2d4ad5120cae0339511feb15ed22e523483331be8ebddd2cb95c72d7f90dc185286bbb4274b742035e136f21101afe732a333afd77db90e4269df529997bda55c7a62e3af5fda53803f5ed581de7b9512889f10b89a7c935e7d29dcd04cf2204023b013fd62f28c4b1030fa5d32eb44c82074da93cbdf311f4ed158da8676e6b1af4855fe2daf3473b72037849cee41de5966d6286f7cf4421943554e6ea193d531cc1079f291e2691b7de03e9eec972b05c00f0ceb1b04f38d0cf22ed3340483f2e104faa8b71c751e1fd0f03fc2df3d3bfddd5eb63df98a9b8a2330d18235ef76f31eae2df6c06482b8b22bb03db7367fb182071351694b02d012534ccbb97235190b54fdd386d6dba590689fb031c99cd986be818f21f896b0dfc55055ed4d8c19615e596dc9e6aba24a4104141038cbdfb26d526b1a918387caf65077b287acdb8fa9e11d3b23e7076955fa8f4eb038691bef0664130704a2b8ef447f5066a599fe7d901fd4b1dd789ece30af275450332c27c049f757e88d8ccde0ebb59de0e9b7c981b7207c09d70eafb7fe635ab9d03d51d1e5f429c679d99c7896d949801b6c403d8f9e833b4e902373d1ddf01dd2b03f16aa4da3e3a5798dc6753d7df1be77dd01d3f8b6f3b9cded23122841f3a512c033c6b2819b69f420e535b1fd6e80064ddaed351437c180363d49a7247de0c7b2203dfa53cb6e512a2a7bf561bd0eb59466cf33393527ff2ed8864f3a42c2b5fbd560353b2c3274b16b695a882c2503b8069241fdab4c2293f2dd22923dbb3c9daab7303c9dc0dbb29f123d11aec12c476ac03206f793adf8337005f44eae55720e2a7a303e191ca3e31f2ce3cf7862778d73826c6b5c5d9ad0ec89ac3df0cd9557edbe52803861b298541a739eb76fd0b4e936baa357420215de9ec1b0082e40bd7f7827c8c03b270957e7fcd9f9af8c5b9f4b3593b5b58120feb77e1e2105403894f8417264c03356b395b2a079e7312195110daa146fff911383a81d153d525e6310aa803469003e21387bcc2bcd92a0028af92f5d0b0c2e41b787fc48cc9ae15078d77be6be41003880490b69ba5334ae3c805744ca26d1caa8afdacffd9e507c9b8af851bde6c7c0392d0ee4ca3f3fbc055585c3177af0a9a7ffdd7d6529bb31a607335ebf800a0ea0314475da9e8266431a484a2b2b04eab73f5f0a3c850ed66609e7804beb448e87703261ec7d2a89489498af125d8e4b9c501a904a87b0cf9874fc4b32e0e49f268140366f6f418d036d783c916c1e7bcadf5aee5c6272853b1b4cf3e6deb7c64536ebd03f5e1e5f761e890e3ed20ed1f006b2c450e35d7fd4b6a1dee3303427c438c680c03413a91d547dde66e5240ffa0ba83edfccae2e8a37cd6636b82a1987814b74a320356b3a2b36d511d9f11dfec61b746643788148030a503515627f4cc42c16c6b1103e74d5c5781d5fb5ae65d1d8b1e0cc125cc8c2ea625526b0a57cb621bcb923426032c3cc406cc9a65e2fdea120c55bc9e7234a70d0601467a373a625796dce6d4510301c3d9af69ddf6a246cb67edb57f5215a878a6c7c0cb9e2900901a14fab22b4903143244658cbd15b01c1ff8a4d7ceb85c6108b7a7496eb90ef7eda7612407611b037dad14556289dd648e3f98d8cff26d08f8da64f21b35761f1d9af4a1237f69a60371a2229e2b413c0d1ed8d74eb3cfddf0afc4f350594b7daf8321d24448fe2ee903263817a7288ccd67bc58e30fd8421a229b831f0d18fc5c12d7a0bc8daf0839e2038c502fea7204c84b59d892f26cdd4852a3a6ba22da9b2b38459d476b827b4ae5037c207cd854d7c6829ce153a321888bcbf12b7b1d17f7d87cd8cdecaf39c131ce03de3b0e458aaf1bed9adb8391b922f3e60ceb040a564ff5b48a31f624dd3dd7a003b34599068e7bba94132d8a5d0309a74a63fe7b91e481512c89b4d4ae588f870e038134689b4cdd488b161ef9a5068790a3e98c697ce2702c99491b32147f2ba78503364c8f3e4049c96784dc5e9cc6c65ad8aebfb727868631813c1b3d103724e87005581e030955a1b59981de4668e62b94f50396e415275ca57044bb2ab34471225008467e6b759fb0000327d524b72c0f23017e966a79f91e2879c60645a1d0320bfad63a662e215271280363e44f48f706c1de93d1f922f5dcb70bfe5fb986fcf5c4d5600d4fa1815c3c6605581e03565a4dccc3f0d30c69ec0cc987f85b07f5bfd4d0c300922957416bd6800401038a93e414a90a9747cff4087a463b650cebe36eb1552c180dc80b4e1fee48864b04595f2f60806040526004361015610023575b361561001957600080fd5b610021614f96565b005b60003560e01c80156100eb57806306fdde031461016957806346423aa7146101605780635b34b9661461015757806379df72bd1461014e57806387201b4114610145578063881477321461013c578063a817440414610133578063a900866b1461012a578063b3a34c4c14610121578063e7acab2414610118578063ed98a5741461010f578063f07ec37314610106578063f2d12b12146100fd578063f47b7740146100f4578063fb0f3ee1146100eb5763fd9f1e100361000e576100e6610f50565b61000e565b506100e66101c8565b506100e6610ec8565b506100e6610df2565b506100e6610d8a565b506100e6610cc2565b506100e6610c05565b506100e6610b81565b506100e6610b17565b506100e6610a60565b506100e66108d6565b506100e66107c6565b506100e661059d565b506100e66104f5565b506100e6610474565b506100e661042e565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc906020828201126101c3576004359167ffffffffffffffff83116101c35782610240920301126101c35760040190565b600080fd5b506101d236610172565b6101243590600382169160021c91600183119234158403610420575b60038111907f0203020301010000000000000000000000000000000000000000000000000000811a9061024c8260a0850260240135887d010102030000000000000000000000000000000000000000000000000000851a888a61121a565b928060051b6101c4013596610260816106a8565b6102b3575050604435602435176102a55761028b9461027e916115b5565b61028661166d565b6159cc565b6102956001600055565b60405160018152602090f35b0390f35b636ab37ce76000526004601cfd5b610286925061028b969161032a916102c96111a8565b9384836102d682956106a8565b6002810361032f5750610325918a6102f060a082016111bf565b6102fc606083016111bf565b60c060e08401359301359173ffffffffffffffffffffffffffffffffffffffff33921690611efe565b611738565b612105565b610338816106a8565b600381036103875750610325918a61035260a082016111bf565b61035e606083016111bf565b60c060e08401359301359173ffffffffffffffffffffffffffffffffffffffff33921690611fff565b806103936004926106a8565b036103dc57610325918a6103a6816111bf565b6103b2606083016111bf565b9073ffffffffffffffffffffffffffffffffffffffff602060408501359401359216903390611efe565b610325918a6103ea816111bf565b6103f6606083016111bf565b9073ffffffffffffffffffffffffffffffffffffffff602060408501359401359216903390611fff565b61042934611d42565b6101ee565b50346101c35760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c357602080526707536561706f727460475260606020f35b50346101c35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c357600435600052600260205260806040600020546040519060ff81161515825260ff8160081c16151560208301526effffffffffffffffffffffffffffff8160101c16604083015260881c6060820152f35b50346101c35760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c35761052d614f7c565b3360005260016020526020604060002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43014060801c018091556040518181527f721c20121297512b72821b97f5326877ea8ecf4bb9948fea5bfcb6453074d37f833392a2604051908152f35b50346101c3577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6020813601126101c3576004359067ffffffffffffffff82116101c3576101609082360301126101c35761061263ffffffff6020921661014461060982600401611cd6565b91013590612423565b604051908152f35b9181601f840112156101c35782359167ffffffffffffffff83116101c3576020808501948460051b0101116101c357565b73ffffffffffffffffffffffffffffffffffffffff8116036101c357565b60a435906106768261064b565b565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600611156106b257565b610676610678565b60809080516106c8816106a8565b83528173ffffffffffffffffffffffffffffffffffffffff918260208201511660208601526040810151604086015260608101516060860152015116910152565b90815180825260208080930193019160005b828110610729575050505090565b909192938260e0600192604088516107428382516106ba565b8085015173ffffffffffffffffffffffffffffffffffffffff1660a0840152015160c08201520195019392910161071b565b9092916040820191604081528451809352606081019260208096019060005b8181106107b0575050506107ad9394818403910152610709565b90565b8251151586529487019491870191600101610793565b5060e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c35767ffffffffffffffff6004358181116101c35761081290369060040161061a565b50506024358181116101c35761082c90369060040161061a565b50506044358181116101c35761084690369060040161061a565b50506064359081116101c35761086090369060040161061a565b505061087961086d610669565b60c43590608435611813565b906102a160405192839283610774565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126101c3576004359067ffffffffffffffff82116101c3576108d29160040161061a565b9091565b50346101c3576108e536610889565b505060046108fb63ffffffff8235168201611aba565b90610904614f7c565b81519060005b82811061091d5760405160018152602090f35b8061092a60019286612988565b51805184608082015161093c81612934565b61094581612934565b14610a4857805173ffffffffffffffffffffffffffffffffffffffff1661096b82614762565b90610980826000526002602052604060002090565b61098a81846158f0565b5061099d610999825460ff1690565b1590565b6109ae575b50505050505b0161090a565b6109f4610a1f928460207ff280791efe782edcf06ce15c8f4dff17601db3b88eb3805a0db7d77faf757f04986060890151516101408a015103610a3b575b015191615199565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055565b610a2e60405192839283614e56565b0390a138808080806109a2565b610a43614c68565b6109ec565b50506109a8565b9060206107ad928181520190610709565b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c35760043567ffffffffffffffff8082116101c357610aab368360040161061a565b50506024359081116101c3576102a191610b0391610acc368260040161061a565b5050610afb610ae463ffffffff809416600401615ec5565b92610aed6110db565b926000845216600401611c52565b903392613b96565b604051918291602083526020830190610709565b50346101c35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c35773ffffffffffffffffffffffffffffffffffffffff600435610b688161064b565b1660005260036020526020604060002054604051908152f35b507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6040813601126101c3576004359067ffffffffffffffff82116101c35760409082360301126101c357610bfb610be363ffffffff602093166004016119cd565b610beb6110db565b9060008252339160243591613f10565b6040519015158152f35b507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080813601126101c3576004359067ffffffffffffffff908183116101c35760a09083360301126101c3576024359081116101c3576102a191610cb091610c71368260040161061a565b5050610ca060643592610c838461064b565b610c9663ffffffff80921660040161186c565b9216600401611a2d565b9133811502019160443591613f10565b60405190151581529081906020820190565b5060a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c357600467ffffffffffffffff81358181116101c357610d0d3682850161061a565b5050602435908282116101c357610d263683860161061a565b50506044359283116101c357610d7b61087994610d453686830161061a565b5050610d5963ffffffff8094168201615ec5565b92610d7381610d666110db565b9660008852168301611b44565b951601611b44565b608435933393606435936126d4565b50346101c35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c3576020610612600435610dcb8161064b565b73ffffffffffffffffffffffffffffffffffffffff16600052600160205260406000205490565b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c35767ffffffffffffffff600480358281116101c357610e3d3682840161061a565b5050602435908382116101c357610e563683850161061a565b50506044359384116101c3576102a193610eb0610ebc94610e793684830161061a565b5050610e9f610ea860643595610e8e8761064b565b63ffffffff92838092168501611bf5565b97168301611a2d565b931601611c52565b91338115020192613b96565b60405191829182610a4f565b50346101c35760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101c357610f006125a7565b606060005260205273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000f9490004c11cef243f5400493c00ad63166040526303312e3560635260a06000f35b50346101c357610f5f36610889565b90610f68614f7c565b600091825b818110610f925783610f855760405160018152602090f35b610f8d614d23565b610295565b80610fa06001928486614cc8565b94610faa866111bf565b907f6bacc01dbe442496068f7d234edd811f1a5f833243e0aec824f86ab861f3c90d611075611006610fde60208b016111bf565b93610feb60808c01614d16565b60048633148833141715911417179961014061060982611cd6565b9261104a61101e856000526002602052604060002090565b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016610100179055565b60405193845273ffffffffffffffffffffffffffffffffffffffff9081169416929081906020820190565b0390a301610f6d565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519060a0820182811067ffffffffffffffff8211176110ce57604052565b6110d661107e565b604052565b604051906020820182811067ffffffffffffffff8211176110ce57604052565b604051906040820182811067ffffffffffffffff8211176110ce57604052565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff8211176110ce57604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209267ffffffffffffffff811161119b575b01160190565b6111a361107e565b611195565b6111b06110fb565b90602082526020828136910137565b356107ad8161064b565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101c3570180359067ffffffffffffffff82116101c3576020019181360383136101c357565b959392919094611228614f4e565b61123061155f565b6101643561014435428211154282111761154b57505061020435610264351061153d5793907f42d81c6929ffdc4eb27a0808e40e82516ad42296c166065de7f812492304ff6e6080528060a0526060602460c037604060646101203760e06080908120610160526001610264359081016102a060059290921b918201526102c081019283526024906102e00137610160948360a0528460c052600060e05260009260005b83610204358210156113315790604060019261010060a060208560061b9a818c610284018537858c61028401610120376102a48c0135179d019860e06080208a5201988a8a528b60c08401526102840191013701969392966112d4565b5096509192979690976001610204350160051b610160206060525b836102643588101561138957906102a460a060019301958787528860c082015260408a60061b91610100836102840191013701351796019561134c565b50925095945095925073ffffffffffffffffffffffffffffffffffffffff91501161152f576107ad91611528917fa66999307ad1bb4fde44d13a5d710bd7718e0c87c1eef68a571629fbf5b93d026080528060a052606060c460c03760206101046101203760c0608020600052602060002060e05260016102643560051b610200015261022090816102643560051b0152606060c46102406102643560051b013761036060843561145a8173ffffffffffffffffffffffffffffffffffffffff166000526001602052604060002090565b54967ffa445660b7e21515a59617fcd68910b487aa5808b8abda3d78bc85df364b2c2f6080526040608460a037606051610100526101205260a0610144610140376101e09687526101809687608020976102643560051b0191888352336101a06102643560051b015260806101c06102643560051b0152610120826102643560051b01527f9d9af8e38d66c62e2c12f0225249fd9d721c54b83f48d9352c97c6cacdcb6f3160a06102643502938460a435940190a360006060526102643560051b01016040528101906111c9565b908361430d565b6339f3e3fd6000526004601cfd5b63466aa6166000526004601cfd5b6321ccfeb76000526020526040526044601cfd5b7401000000000000000000000000000000000000000060243560c4351760a43560843517171060186101243510166102643560061b61026001610244351461024061022435146020600435141616161561152f57565b608435916101043560e43560c4358315611627579461067695604051957f4ce34aa200000000000000000000000000000000000000000000000000000000875260206004880152600160248801526044870152606486015260848501523360a485015260c484015260e483015261223e565b925092806116366002926106a8565b0361166057928360016106769503611651575b503391614fab565b61165a90611d31565b38611649565b919061067693339161508a565b3460643560006102643560061b815b8181106116bd575050508181116116b0575b61169a81608435611d62565b8082116116a5575050565b610676910333611d62565b6116b8611d22565b61168e565b806102840135948086116116e657906116e08660409303966102a4830135611d62565b0161167c565b638ffff98084526004601cfd5b507f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9190820391821161173057565b6106766116f3565b919082156117d95760843592610104353360c43560e4355b6117cc575b8360051b6101e40335936102643560061b9060005b82811061177f57505050956106769596611dae565b87876102848301358c856117ab575b918493916117a5936102a46040970135908a611dae565b0161176a565b9891816117bf60409695936117a595611723565b9a9193509193945061178e565b6117d4611d53565b611755565b3392606435608435602435604435611750565b60209067ffffffffffffffff8111611806575b60051b0190565b61180e61107e565b6117ff565b906108d2929163ffffffff9161182f8360043516600401611bf5565b926118408160243516600401611a2d565b6118606118538360443516600401611b44565b9260643516600401611b44565b923381150201946126d4565b90604051610200810160405260806118c68294604060208201602086013760a084018085526118a563ffffffff918284351684016118f5565b6118b68160608401351683016118cb565b60608601528382013516016118cb565b910152565b9060206040519263ffffffff813563ffffffe0601f82011692848401908737168452830101604052565b6118c660609161016081853763ffffffff611917816040840135168301611927565b604086015283820135160161197a565b90641fffffffe082359263ffffffff841660405194818652602093849160051b168601019283928160a0809402910185378086015b83811061196c5750505050604052565b84815293820193810161195c565b90641fffffffe082359263ffffffff841660405194818652602093849160051b168601019283928160c0809402910185378086015b8381106119bf5750505050604052565b8481529382019381016119af565b906040516102008101604052611a13819360a083018084526119f963ffffffff918284351684016118f5565b6001602085015260016040850152602082013516016118cb565b606082015260806040519160208301604052600083520152565b803591600592641fffffffe081851b16604080519060209384848401018252829663ffffffff809216845260005b858110611a6e5750505050505050909150565b8083888093850101351683018551908360a091828401895287608093848484018737820135160101908d60018884351601901b8851928184018a52833782015282828801015201611a5b565b908135641fffffffe08160051b166040805160209384848301018352819663ffffffff809216835260005b858110611af55750505050505050565b808388809385010135168301611b34838851928984016101a085018b52611b2581848b81860135168501016118f5565b8452878a8201351601016118cb565b8382015282828701015201611ae5565b90813591641fffffffe08360051b166040516020928383830101604052819563ffffffff809116835260005b848110611b7f57505050505050565b80611b9587848180958801013516860101611ba1565b82828701015201611b70565b90813591604080519363ffffffff81168552602080641fffffffe08360051b168701019381643fffffffc0869460061b16910185378086015b828110611be75750505052565b848152938301938101611bda565b90813591641fffffffe08360051b166040516020928383830101604052819563ffffffff809116835260005b848110611c3057505050505050565b80611c468784818095880101351686010161186c565b82828701015201611c21565b908135641fffffffe08160051b166040805160209384848301018352819663ffffffff809216835260005b858110611c8d5750505050505050565b808388809385010135168301611cc6838851928984018a52611cb782898184013516830101611ba1565b8452878a820135160101611ba1565b8382015282828701015201611c7d565b9060405161016081016040528092611d16610140918281853763ffffffff611d05816040840135168301611927565b60408601526060820135160161197a565b80606084015251910152565b50638ffff9806000526004601cfd5b6369f958276000526020526024601cfd5b63a61be9f06000526020526024601cfd5b50636ab37ce76000526004601cfd5b611d6b82611d99565b600080808085855af115611d7d575050565b611d85612681565b63bc806b966000526020526040526044601cfd5b15611da057565b6391b3e5146000526004601cfd5b929193949094611dbd83611d99565b611dc781836120f2565b80611ef0575050604051926000947f23b872dd00000000000000000000000000000000000000000000000000000000865280600452816024528260445260208660648180885af1803d15601f3d1160018a51141617163d1515811615611e36575b505050505050604052606052565b80863b151516611e2857908795969115611e5b5786635f15d67287526020526024601cfd5b959192939515611e80575063988919238594526020526040526060526080526084601cfd5b3d611ea3575b5063f486bc87845260205260405260605260805260a05260a4601cfd5b601f3d0160051c9060051c908060030291808211611ed7575b505060205a910110611ece5785611e86565b833d81803e3d90fd5b8080600392028380020360091c92030201018680611ebc565b906106769592949391612359565b919395909294611f0e81836120f2565b80611f375750508460016106769603611f28575b50614fab565b611f3190611d31565b38611f22565b815160649693959394929190602003611fec5760c0906001906040845260208401527f4ce34aa20000000000000000000000000000000000000000000000000000000060408401526020604484015280888401525b02019360027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe48501526004840152602483015260448201520152565b5060c08682016001815101809152611f8c565b95909192939461200e86611d99565b61201881836120f2565b806120285750506106769461508a565b90606495969493929160208251146000146120df5760c0906001906040845260208401527f4ce34aa20000000000000000000000000000000000000000000000000000000060408401526020604484015280888401525b02019360037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe48501526004840152602483015260448201520152565b5060c0868201600181510180915261207f565b906020820151036121005750565b610676905b90604082510361223a5760208201519160c06064820151026044019260405193602073ffffffffffffffffffffffffffffffffffffffff6000928184927f00000000000000000000000000000000f9490004c11cef243f5400493c00ad631674ff00000000000000000000000000000000000000001783528584527f023d904f2503c37127200ca07b976c3a53cc562623f67023115bf311f58050596040526055600b2016976040528180526040860182895af190805191156122215750937f4ce34aa2000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000060209596160361221557505052565b61221e91612345565b52565b63d13d53d48691612230612681565b526020526024601cfd5b9050565b9060405190602073ffffffffffffffffffffffffffffffffffffffff6101046000938285937f00000000000000000000000000000000f9490004c11cef243f5400493c00ad631674ff00000000000000000000000000000000000000001784528785527f023d904f2503c37127200ca07b976c3a53cc562623f67023115bf311f58050596040526055600b20169560405282805282865af1908051911561233657507fffffffff000000000000000000000000000000000000000000000000000000007f4ce34aa20000000000000000000000000000000000000000000000000000000091160361232d575050565b61067691612345565b63d13d53d49150612230612681565b631cf99b266000526020526040526044601cfd5b9060649492939160208251146000146124105760c0906001906040845260208401527f4ce34aa20000000000000000000000000000000000000000000000000000000060408401526020604484015280878401525b02019260017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc48501527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe484015260048301526024820152600060448201520152565b5060c085820160018151018091526123ae565b91909161014081018051917fa66999307ad1bb4fde44d13a5d710bd7718e0c87c1eef68a571629fbf5b93d02604051604083018051928351926020809501906000915b868684106125665750505050506040519160051b8220917f42d81c6929ffdc4eb27a0808e40e82516ad42296c166065de7f812492304ff6e9093606086019481865101906000915b8a83106125245750505050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08660051b604051209401978851907ffa445660b7e21515a59617fcd68910b487aa5808b8abda3d78bc85df364b2c2f8a5282519383528451958552865261018089209852525252565b8380827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0600194510180519089815260e08120875252019201920191906124ae565b80827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0600194510180519088815260c0812087525201920192019190612466565b6000467f0000000000000000000000000000000000000000000000000000000000000001036125f557507f0d725b53ccd7c23735755082eee9d43d3add450d3564ad51af0d29aa16eeab3c90565b60405190608051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f32b5c112df393a49218d7552f96b2eeb829dfb4272f4f24eef510a586b85feef6020527f65f792c4319563f3a8f1ce154ef783f165de90334a87a1918514e159542a735a604052466060523060805260a081209260405260605260805290565b3d61268857565b601f3d0160051c60405160051c9080600302918082116126bb575b505060205a9101106126b157565b3d6000803e3d6000fd5b8080600392028380020360091c920302010138806126a3565b93959480939297956126e692866129aa565b93909187519681516127006126fb828b612e96565b613328565b9860009a8b905b8282106127cb5750506000925b8284106127575750505050509461273b949587829861274c575b5081511561273f576136dc565b9190565b61274761338b565b6136dc565b82510382523861272e565b909192939a8a6127738361276c8f8990612988565b5189613408565b61278c8180516080602082511515930151910151141690565b156127a65750506001809101945b019291909a939a612714565b86916127c5916127be85886001979b01038093612988565b528d612988565b5061279a565b90949b6127e7896127e0888598969798612988565b518961339a565b8c6128018280516080602082511515930151910151141690565b1561281d5750506001809101955b01909b949b93929193612707565b879161283a91846001959a03916128348383612988565b52612988565b5061280f565b6128486110ae565b90604051610160810181811067ffffffffffffffff8211176128c7575b604052600080825280602083015260609182604082015282808201528160808201528160a08201528160c08201528160e08201528161010082015281610120820152816101408201528452806020850152604084015280808401526080830152565b6128cf61107e565b612865565b6128dc6110fb565b600181529060203681840137565b906128fc6128f7836117ec565b61111b565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061292a82946117ec565b0190602036910137565b600511156106b257565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60209080511561297c570190565b61298461293e565b0190565b602091815181101561299d575b60051b010190565b6129a561293e565b612995565b9391936000936129b8614f5d565b6000357c400000000000000000000000000000000000000000000000000000000016926129e3612840565b508251936129f0856128ea565b9760205b6001870160051b8110612ac6575050907c4000000000000000000000000000000000000000000000000000000001612a329214612ab9575b83612fb7565b60205b6001840160051b8110612a485750505050565b6020816001928901518015612ab357612aab90828701515186612a7f825173ffffffffffffffffffffffffffffffffffffffff1690565b8287015173ffffffffffffffffffffffffffffffffffffffff165b906060604085015194015194614232565b019050612a35565b50612aab565b612ac1612f94565b612a2c565b808601518215612c5557612ad981614668565b918d82969215612c42578501527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019382519260a08401519360c08101519060408101519e8f519160800151612b2e81612934565b60048110600052600110179e60005b828110612bd757505050606080925101519485519560005b878110612b6e5750505050505050506020905b016129f4565b80878760a0612b7f60019587612988565b51612bb789898c6080850196612b9788518a83612f61565b9186019889519089518214600014612bc7575050508088525b8751612eef565b8094520190815190525201612b55565b612bd092612f61565b8852612bb0565b8087612be560019385612988565b519c8d600051905110179c612c28878c60808401938c6060612c0987518984612f61565b92019687519087518214600014612c32575050508086525b8551612ea3565b8092525201612b3d565b612c3b92612f61565b8652612c21565b5050935050906000602080930152612b68565b906000602080930152612b68565b939193600093612c71614f5d565b6000357c40000000000000000000000000000000000000000000000000000000001692612c9c612840565b50825193612ca9856128ea565b9760205b6001870160051b8110612d45575050907c4000000000000000000000000000000000000000000000000000000001612cea9214612ab95783612fb7565b60205b6001840160051b8110612d005750505050565b6020816001928901518015612d3f57612d3790828701515186612a7f825173ffffffffffffffffffffffffffffffffffffffff1690565b019050612ced565b50612d37565b808601518215612e7557612d5881614414565b918d82969215612e62578501527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019382519260a08401519360c08101519060408101519e8f519160800151612dad81612934565b60048110600052600110179e60005b828110612e2657505050606080925101519485519560005b878110612ded5750505050505050506020905b01612cad565b80878760a0612dfe60019587612988565b51612e1689898c6080850196612b9788518a83612f61565b8094520190815190525201612dd4565b8087612e3460019385612988565b519c8d600051905110179c612e58878c60808401938c6060612c0987518984612f61565b8092525201612dbc565b5050935050906000602080930152612de7565b906000602080930152612de7565b8181029291811591840414171561173057565b9190820180921161173057565b929092838103612eb35750505090565b612ec983612ecf93039342039182850390612e83565b93612e83565b8201809211612ee2575b81049015150290565b612eea6116f3565b612ed9565b919092838303612eff5750505090565b600192612f1883612f1e93039342039182850390612e83565b94612e83565b8301809311612f54575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff830104019015150290565b612f5c6116f3565b612f28565b919091828114612f8e5782818309612f8057612f7c91612e83565b0490565b63c63cf0896000526004601cfd5b50905090565b506312d3f5a36000526004601cfd5b600211156106b257565b516107ad816106a8565b815181519260005b8281106130c05750505060005b828110612fd857505050565b612fe28183612988565b5161301661300260208301516effffffffffffffffffffffffffffff1690565b6effffffffffffffffffffffffffffff1690565b156130b75751606081018051519060005b828110613089575050506040018051519060005b82811061304f575050506001905b01612fcc565b8061306f6130696130636001948651612988565b51612fad565b60031090565b61307a575b0161303b565b61308481866131ba565b613074565b8061309d6130696130636001948651612988565b6130a8575b01613027565b6130b281876131a6565b6130a2565b50600190613049565b6130ca8183612988565b516130df81518781101561317a575b86612988565b51602090613101613002838301516effffffffffffffffffffffffffffff1690565b1561316f57519060409081830151918401519263bfb3f8ce9185015161312681612fa3565b61312f81612fa3565b61315c575b50815183101561315357509161314d91600194936131d7565b01612fbf565b6000526004601cfd5b9050606091500151636088d7de38613134565b50505060019061314d565b613190602084015161318b81612fa3565b613195565b6130d9565b63133c37c66000526020526024601cfd5b63a8930e9a6000526020526040526044601cfd5b63d69293326000526020526040526044601cfd5b61221e826106a8565b906131e191612988565b518051916131ee836106a8565b600383111561324d5761322e8260046040606095019586518015156000146132345761322490878701519060808801519161326a565b14600303906131ce565b01519052565b50608085015151156132245761324861325b565b613224565b6394eb6af66000526004601cfd5b506309bde3396000526004601cfd5b916000928352602090818420918082019181815191600592831b0101905b8184106132a857505050500361329b5750565b6309bde33990526004601cfd5b8351808611821b95865294831894909452604086209392820192613288565b604051906060820182811067ffffffffffffffff82111761331b575b6040528160406132f16110ae565b91600092838152836020820152838382015283606082015283608082015281528260208201520152565b61332361107e565b6132e3565b906133356128f7836117ec565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061336382946117ec565b019060005b82811061337457505050565b60209061337f6132c7565b82828501015201613368565b5063d5da9a1b6000526004601cfd5b929190926133a66132c7565b938051156133f557846133d89181519373ffffffffffffffffffffffffffffffffffffffff608086019616865261348a565b6060810151156133e6575050565b60006001928160208701525252565b63375c24c160005260006020526024601cfd5b929190926134146132c7565b938051156134545784613429918151936135d1565b60208401913383526040850152606081015115613444575050565b6000600192526000608082015252565b63375c24c160005260016020526024601cfd5b50637fda72796000526004601cfd5b50634e487b7160005260116020526024601cfd5b9092919260009081928290828351905b8160051b850181106134c957505050505060608293945101526134ba5750565b600114611da057610676613476565b6020909695960190602082515184518110156135c4575b60051b8401015180519060208451015160206040840151920151158251821015176135b9579060209160051b0101519660609081890151998a81019a15908b1060011b171798976000828201528b51871560011461356c57502085189060408b0151610120820151189060208c0151905118171761355f575b9061349a565b613567613467565b613559565b929061012092949750806040915185526020810151602086015201516040840152805160208d0152015160408b01522092602085018281186135af575b50613559565b82519052386135a9565b505050959495613559565b6135cc613467565b6134e0565b9092919260009081928291808051600590811b82015b8084106136035750505050505060608293945101526134ba5750565b6020979697809401938085515187518110156136cf575b841b8701015190808651015191606092828483510151920151158251821015176136c3576000918391871b010151928301998a519b8c81019c15908d1060011b17179a99528b51881560011461368357505060a0902086146135e75761367e613467565b6135e7565b8251815281830151818301526040808401519082015260808084015191015260a0909120965083018481186136b9575b506135e7565b84519052386136b3565b505050509695966135e7565b6136d7613467565b61361a565b9092938151936136eb856128ea565b956136f46111a8565b9180519060005b8281106138ca5750505060005b86811061379a57505061371a90612105565b478061378a575b50613734575b5050506107ad6001600055565b60005b8381106137445750613727565b8061375a61375460019388612988565b51151590565b613765575b01613737565b6137856137728285612988565b518561377e8482612988565b5191615aab565b61375f565b6137949033611d62565b38613721565b6137a48186612988565b516137c461300260208301516effffffffffffffffffffffffffffff1690565b156138b4576137dc6137d6838b612988565b60019052565b51604081015180519060005b82811061384c575050506060809101519081519160005b83811061381457505050506001905b01613708565b8061382160019284612988565b5160a08582019182518061383b575b5001519052016137ff565b61384690858b613944565b38613830565b8061385960019284612988565b51608060608201918251613872575b01519052016137e8565b608081018051908b90526138ab8c61389e8b5173ffffffffffffffffffffffffffffffffffffffff1690565b6101208c0151908561395b565b82820152613868565b508060006138c46001938b612988565b5261380e565b80613925866138db60019486612988565b5180519081516138ea816106a8565b6138f3816106a8565b1561392b575b604061391c602083015173ffffffffffffffffffffffffffffffffffffffff1690565b9101519161395b565b016136fb565b47606083015111156138f95761393f611d22565b6138f9565b63a5f542086000526020526040526060526064601cfd5b9291908351613969816106a8565b613972816106a8565b613a1557505050806139ba6139a1602061067694015173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff6040830151911617613a08575b60606139ff608083015173ffffffffffffffffffffffffffffffffffffffff1690565b91015190611d62565b613a10611d53565b6139dc565b60018451613a22816106a8565b613a2b816106a8565b03613aab5792610676936040820151613a9e575b602082015173ffffffffffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff6060613a93608086015173ffffffffffffffffffffffffffffffffffffffff1690565b940151931691611dae565b613aa6611d53565b613a3f565b60028451613ab8816106a8565b613ac1816106a8565b03613b2e5783613aeb602061067696015173ffffffffffffffffffffffffffffffffffffffff1690565b608082015173ffffffffffffffffffffffffffffffffffffffff169273ffffffffffffffffffffffffffffffffffffffff60606040850151940151941691611efe565b83613b53602061067696015173ffffffffffffffffffffffffffffffffffffffff1690565b608082015173ffffffffffffffffffffffffffffffffffffffff169273ffffffffffffffffffffffffffffffffffffffff60606040850151940151941691611fff565b9193929081613ba89184519085612c63565b9190805160051b604001937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082018051907f4b9f2d36e1b4c93de62cc077b00b1a91d84b6c31b4a14e012718dcca230689e760209788835282a152865196613c0f88613328565b9560009889915b818310613c44575050505093613c359487829798613c39575b506136dc565b5090565b825103825238613c2f565b9091929988613c6585613c57818f612988565b518581519101519089613cba565b613c7e8180516080602082511515930151910151141690565b15613c975750506001809101935b019190999299613c16565b8591613cb491613cad8560019699038093612988565b528b612988565b50613c8c565b909192613cc56132c7565b938351158015613eaf575b613ea2575b613cdd6132c7565b90613ce98282866135d1565b81519460609384870193845115613e82575092859288836107ad9996613d168360809a97613e199c61348a565b613d208351612fad565b613d29816106a8565b885190613d35826106a8565b613d3e826106a8565b60ff85519273ffffffffffffffffffffffffffffffffffffffff8c604080613d806139a160208a015173ffffffffffffffffffffffffffffffffffffffff1690565b613da46139a1602086015173ffffffffffffffffffffffffffffffffffffffff1690565b189701519101511894169218161717613e73575b50835182518601511015613e3957505090602083613ded613ddb613dfa9561296e565b5193518c518301518551910397612988565b5151015191015190612988565b5101525b015173ffffffffffffffffffffffffffffffffffffffff1690565b60808351019073ffffffffffffffffffffffffffffffffffffffff169052565b8495939492509060206040613ded85613e54613e659661296e565b519451015188518551910397612988565b510152519086510152613dfe565b613e7c90613eb8565b38613db8565b9750505050505050608060009182602085015201526107ad815160019052565b613eaa613ec9565b613cd5565b50805115613cd0565b63bced929d6000526020526024601cfd5b506398e9db6e6000526004601cfd5b613ee06110fb565b90600182528160005b60209081811015613f0b57602091613eff612840565b90828501015201613ee9565b505050565b92613faa613f7692613fe295613f4060046080835101516005811015613ff1575b613f3a81612934565b14614f6c565b613f8884613f4d83614414565b9098829a9296613f5b613ed8565b96613f658861296e565b52613f6f8761296e565b5086612fb7565b613f7f8561296e565b51519889613ffe565b613fa4613f936128d4565b9183613f9e8461296e565b5261296e565b51615aab565b815173ffffffffffffffffffffffffffffffffffffffff16602083015173ffffffffffffffffffffffffffffffffffffffff16612a9a565b613fec6001600055565b600190565b613ff9610678565b613f31565b60a08082015160c08301519796909593916140176111a8565b9689604086019384515190600095865b8c898d86841061411757505050505050505060809260048487015161404b81612934565b101661410a575b6060809501968751519760005b89811061408e575050505050505050505061407b919250612105565b47806140845750565b6106769033611d62565b806140ea8c8f8b8b8b8f936140bf908c8c6140ac60019c8e51612988565b51968701958651958801958651906141c0565b8092528b830151905281516140d3816106a8565b6140dc816106a8565b156140f0575b50339061395b565b0161405f565b47106140fd575b386140e2565b614105611d22565b6140f7565b614112612f94565b614052565b998561417e9392869798999c6141596141338860019a51612988565b51948551614140816106a8565b15179e8d60608701938451956080890196875190614189565b9052528c61012061391c825173ffffffffffffffffffffffffffffffffffffffff1690565b01908d939291614027565b90939084810361419f5750506107ad9350612f61565b93836141b46107ad97966141ba949686612f61565b93612f61565b90612ea3565b9093908481036141d65750506107ad9350612f61565b93836141b46107ad97966141eb949686612f61565b90612eef565b90815180825260208080930193019160005b828110614211575050505090565b909192938260a08261422660019489516106ba565b01950193929101614203565b929094939160409182519460809182870191875273ffffffffffffffffffffffffffffffffffffffff94856020921682890152838189015286518093528160a089019701936000915b8483106142c95750505050505082828594936142c493867f9d9af8e38d66c62e2c12f0225249fd9d721c54b83f48d9352c97c6cacdcb6f319896036060870152169716956141f1565b0390a3565b90919293949784836001928b5180516142e1816106a8565b8252808401518c168483015285810151868301526060908101519082015201990195949301919061427b565b9092916000938285526002602052604085209283549260ff8460081c166143ef576effffffffffffffffffffffffffffff8460101c166143de5760ff841615614374575b505071010000000000000000000000000000010001909255509091506106769050565b6143806128f78261115f565b9281845236828201116143da579262010001949261067697986020846143d2957fffffffffffffffffffffffffffffff0000000000000000000000000000000000988387013784010152608435615199565b918594614351565b8780fd5b5063ee9e0e6386526020526024601cfd5b50631a51557486526020526024601cfd5b90805b61440b575090565b80910680614403565b80519061442d61099960a084015160c085015190615184565b61465b576effffffffffffffffffffffffffffff92602092848484015116938560408501511693608083016004815161446581612934565b61446e81612934565b146146285786158688111761461b575b519161448983612934565b6001809316158688101661460e575b6144a184614762565b976144b6896000526002602052604060002090565b946144c4610999878c6158f0565b6145ff578554938a60ff8616156145cb575b5050508260881c848115906144f8575b505050508460881b9060101b17179055565b98979893909192936145bb5760101c82168885146145a757818914614589578882910297029702958701968688118789030280910397039181871182841117614543575b80806144e6565b9095919661455a614554848a614400565b82614400565b80150180809204980492049580871190831117614577578061453c565b601190634e487b71600052526024601cfd5b925050508495940194848611858703028091039503388080806144e6565b9397509550505083039383388080806144e6565b50505050839493388080806144e6565b60606145ee6145f7945173ffffffffffffffffffffffffffffffffffffffff1690565b92015191615199565b38808a6144d6565b50600097508796505050505050565b6146166147ce565b614498565b6146236147bf565b61447e565b50919360809396506001915061464795021861464e575b0151906147dd565b9192909190565b6146566147bf565b61463f565b5050600090600090600090565b80519061468561099960a084015160c08501514210904210151690565b61465b576effffffffffffffffffffffffffffff9260209284848401511693856040850151169360808301600481516146bd81612934565b6146c681612934565b1461473657861586881117614729575b51916146e183612934565b6001809316158688101661471c575b6146f984614762565b9761470e896000526002602052604060002090565b946144c4610999878c615953565b6147246147ce565b6146f0565b6147316147bf565b6146d6565b509193608093965060019150614647950218614755575b01519061499c565b61475d6147bf565b61474d565b6060810151516101408201511161153d57806147b973ffffffffffffffffffffffffffffffffffffffff6107ad93511673ffffffffffffffffffffffffffffffffffffffff16600052600160205260406000205490565b90612423565b50635a052b326000526004601cfd5b5063a11b63ff6000526004601cfd5b60609060408282018051516101408401510361498f575b60008061481f614818865173ffffffffffffffffffffffffffffffffffffffff1690565b9786614b6b565b9082895af19361484f8673ffffffffffffffffffffffffffffffffffffffff166000526003602052604060002090565b958654906001978883019055821b189415614981575b61486d615dcd565b9490919586614973575b0180515182518111614965575b6000905b8981831061492f575050505281519083519180518311614921575b91906000925b888385106148ce575050505050526148c057918190565b6148c981614c57565b918190565b90919293966148dd8884612988565b516149156148eb8a8a612988565b518681015187840151106148ff8285614c77565b179260a080910151910151908091149015171590565b171796019291906148a9565b61492a87614c57565b6148a3565b90919761493d898551612988565b5161495b61494b8b88612988565b5188830151898201511092614c77565b1717970190614888565b61496e88614c57565b614884565b61497c88614c57565b614877565b61498a85614c57565b614865565b614997614c68565b6147f4565b60609081810180515161014083015103614b03575b6149d96149d2835173ffffffffffffffffffffffffffffffffffffffff1690565b9483614b6b565b9060008092819282895af193614a0f8673ffffffffffffffffffffffffffffffffffffffff166000526003602052604060002090565b958654906001978883019055821b189415614af9579060409291614a31615dcd565b9590919687614aeb575b0180515182518111614add575b84905b8a818310614ab75750505052825184519281518411614aa9575b9291905b88838510614a80575050505050526148c057918190565b9091929396614a8f8884612988565b51614a9d6148eb8a8a612988565b17179601929190614a69565b614ab288614c57565b614a65565b909198614ac58a8551612988565b51614ad361494b8c88612988565b1717980190614a4b565b614ae689614c57565b614a48565b614af489614c57565b614a3b565b5093505050918190565b614b0b614c68565b6149b1565b91909160408051936020928360e083028701018352818652839160010160051b92838701915b848410614b4557505050505050565b60c060a0879285878c01528460808083893e606083019088013e01930193019291614b36565b9190608490614bd2604051916398919765835260a0601c84019633602086015260806040860152614bbe6060614ba8604084015185890190614bfc565b9283608001828901520151838388010190614bfc565b018094608082016080820152010190614bd7565b010190565b8051603f0163ffffffe0169291610676918491905b829060045afa153d15176101c357565b9081519081815260209283808083019301918460051b0101915b84838210614c29575050505060071b0190565b8160809251805185528281015183860152604080820151908601526060809101519085015201910190614c16565b63939792856000526020526024601cfd5b50632165628a6000526004601cfd5b90815191604081015180156003851116614cb4575b6020809160608401516080850151149060408601511416948451149301519101511416161590565b506040820151600490931460030392614c8c565b9190811015614d09575b60051b810135907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea1813603018212156101c3570190565b614d1161293e565b614cd2565b3560058110156101c35790565b5063fed398fc6000526004601cfd5b90815180825260208080930193019160005b828110614d52575050505090565b909192938260a060019287518051614d69816106a8565b82528084015173ffffffffffffffffffffffffffffffffffffffff168483015260408082015190830152606080820151908301526080908101519082015201950193929101614d44565b90815180825260208080930193019160005b828110614dd3575050505090565b909192938260c060019287518051614dea816106a8565b82528084015173ffffffffffffffffffffffffffffffffffffffff9081168584015260408083015190840152606080830151908401526080808301519084015260a091820151169082015201950193929101614dc5565b906005821015614e4e5752565b61221e610678565b90815260406020820152614e8360408201835173ffffffffffffffffffffffffffffffffffffffff169052565b602082015173ffffffffffffffffffffffffffffffffffffffff1660608201526101806040830151614efa614ec6610160928360808701526101a0860190614d32565b60608601517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08683030160a0870152614db3565b93614f0d608082015160c0860190614e41565b60a081015160e085015260c081015191610100928386015260e082015192610120938487015282015192610140938487015282015190850152015191015290565b614f56614f7c565b6002600055565b614f65614f7c565b6003600055565b614f74614f7c565b600201600055565b600160005403614f8857565b637fa8a9876000526004601cfd5b600360005403614fa257565b61067634611d42565b929091833b1561507857604051926000947f23b872dd000000000000000000000000000000000000000000000000000000008652816004528260245283604452858060648180855af1156150055750505050604052606052565b85853d61502c575b5063f486bc879052602052604052606052608052600160a05260a4601cfd5b601f3d0160051c9060051c90806003029180821161505f575b505060205a910110615057578561500d565b3d81803e3d90fd5b8080600392028380020360091c92030201018680615045565b83635f15d6726000526020526024601cfd5b9392919091843b1561517257604051936080519160a0519360c051956000987ff242432a000000000000000000000000000000000000000000000000000000008a528160045282602452836044528460645260a06084528960a452898060c48180855af11561510957505050505060805260a05260c052604052606052565b89893d61512e575b5063f486bc87905260205260405260605260805260a05260a4601cfd5b601f3d0160051c9060051c908060030291808211615159575b505060205a9101106150575786615111565b8080600392028380020360091c92030201018780615147565b84635f15d6726000526020526024601cfd5b9190428111428411151692831561154b575050565b92919033841461531a576151ab6125a7565b936151e882867f19010000000000000000000000000000000000000000000000000000000000006000526002526022526042600020906000602252565b908351926002601f601d860116106102e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9d8601101660001461530c5760018085169081604103927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf600593880101831c93808952880160209384820151928560238560e81c94019460e31c1690815285845191185283925b8684106152ec575050505050966152e69161067697986152a5604060002092615514565b600052526040600020907f19010000000000000000000000000000000000000000000000000000000000006000526002526022526042600020906000602252565b90615320565b85859101938684821c841b16604060002081528786519118520192615281565b506106769495508190615320565b50509050565b909291926000948580528051957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0820180519188604103908091600181119687156154aa575b50505085148515151697881561539c575b50505050505050501561538657565b61538e612681565b634f7fb80d6000526004601cfd5b909192939495809798508452604082527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc8401938451957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08201976020600060648b519c7f1626ba7e000000000000000000000000000000000000000000000000000000009e8f8c528d520189845afa9a8b615448575b50505050505252523880808080808080615377565b600051036154565780615433565b3b61538e5761549c57606001906041640101000000835160001a1a159114166154875763815e1d646000526004601cfd5b631f003d0a6000525160001a6020526024601cfd5b638baa579f6000526004601cfd5b9091925060408601908151926060880151851a906154e2575b8752845260208360808660015afa508484528a86525251388080615366565b50601b8360ff1c017f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841683526154c3565b600981106157ac576011811061566857601581106155ca576017811061557f5760177f403be09941a31d05cfc2f896505811353d45d38743288b016630cce39435476a9114027f1d51df90cba8de7637ca3e8fe1e3511d1dc2f23487d05dbdecb781860c21ac1c1890565b60157fbb40bf8cea3a5a716e2b6eb08bbdac8ec159f82f380783db3c56904f15a43d049114027f3bd8cff538aba49a9c374c806d277181e9651624b3e31111bc0624574f8bca1d1890565b6013811061561d5760137f54b3212a178782f104e0d514b41a9a5c4ca9c980bf6597c3cecbf280917e202a9114027f5a4f867d3d458dabecad65f6201ceeaba0096df2d0c491cc32e6ea4e643500171890565b60117f2d7a3ed6dab270fdb8e054b2ad525f0ce2a8b89cc76c17f0965434740f673a559114027fc3939feff011e53ab8c35ca3370aad54c5df1fc2938cd62543174fa6e7d858771890565b600d811061570e57600f81106156c357600f7fcc4886e37eedd9aacd6c1c2c9247197a621a71282e87a7cbc673f3736d9aa1419114027f1da3eed3ecef6ebaa6e5023c057ec2c75150693fd0dac5c90f4a142f9879fde81890565b600d7f8df51df98847160517f5b1186b4bc3f418d98b8a7f17f1292f392d79d600d79e9114027f6b5b04cbae4fcb1a9d78e7b2dfc51a36933d023cf6e347e03d517b472a8525901890565b600b811061576157600b7f32f4e7485d6485f9f6c255929b9905c62ba919758bbe231f231eaeecf33d810c9114027fbb98d87cc12922b83759626c5f07d72266da9702d19ffad6a514c73a89002f5f1890565b60097f6f0ec38c21f6f583ab7f3c5413c773ffd5344c34fde1d390958e438bf667448f9114027fd1d97d1ef5eaa37a4ee5fbf234e6f6d64eb511eb562221cd7edfbdde0848da051890565b6005811061585257600781106158075760077fb58d772fb09b426b9dece637f61ca9065f2b994f1464b51e9207f55f7c8f59489114027f7ff98d9d4e55d876c5cfac10b43c04039522f3ddfb0ea9bfe70c68cfb5c7cc141890565b60057f25d02425402d882d211a7ab774c0ed6eca048c4d03d9af40132475744753b2a39114027f1c19f71958cdd8f081b4c31f7caf5c010b29d12950be2fa1c95070dc47e30b551890565b600381106158a55760037ff3e8417a785f980bdaf134fa0274a6bf891eeb8195cd94b09d2aa651046e28bc9114027fa02eb7ff164c884e5e2c336dc85f81c6a93329d8e9adf214b32729b894de2af11890565b60017f832c58a5b611aadcfa6a082ac9d04bace53d8278387f10040347b7e98eb5b3029114027fbf8e29b89f29ed9b529c154a63038ffca562f8d7cd1e2545dda53a1b582dde301890565b905460ff8160081c16615941576effffffffffffffffffffffffffffff8160101c169081615921575b505050600190565b60881c1115615932575b8080615919565b61593b906159bb565b3861592b565b50631a5155746000526020526024601cfd5b906000905460ff8160081c166159b2576effffffffffffffffffffffffffffff8160101c169081615988575b50505050600190565b60881c111561599857808061597f565b6159a3575b50600090565b6159ac906159bb565b3861599d565b50905050600090565b6310fda3e16000526020526024601cfd5b9190608082019081356159de8161064b565b33141590600460018211911016166159f557505050565b61067692615a236139a16060604051956317b1f94287526020808801528460408801523382880152016111bf565b6080840152606061014461012085013761014060a08401526101e060c0840152615aa6601c61032461026435615a6f60a08202918261016001906101808a019060051b61020001614bec565b6102a0810160e08801528461032082890160006102e08201526102c084016101008b015260016103008201520152019401926111bf565b615d11565b919082519060808201918251926005841015615b66575b615af3602083019473ffffffffffffffffffffffffffffffffffffffff865116331415906004600182119110161690565b15615b1b575090615b0d9160806106769601519085615bf7565b91519263fb5014fc93615d79565b60049194935051615b2b81612934565b615b3481612934565b03615b605761067693615b549184519460808660601b9301519085615b73565b91639397928593615d79565b50505050565b615b6e610678565b615ac2565b9493919260c060a494615be3614bd2946040519663f4dd92ce8852601c88019a1860a088015260a06020880152615bcd6060615bb66040840151878b0190614bfc565b928360a00160408b0152015185838a010190615cc9565b019160a083016060880152838388010190614bd7565b01809460a082016080820152010190615cad565b9392614bd2906101649392604051936317b1f9428552601c85019760208087015260408601523360608601528151608086015260a082015161012086015260c082015190610140918287015260e08301516101608701528160a0870152615c9d604084015193615c886060615c7261018097888c0190614bfc565b9283870160c08c0152015186838b010190615cc9565b019183830160e0890152848389010190614bd7565b0194859182016101008201520101905b612984602092839283815180845260051b948593019101614bec565b8051908183526020928380808401938560051b01019101915b818110615cf35750505060a0020190565b60a090818481835160045afa153d15176101c3578501920191615ce2565b6020909391937fffffffff00000000000000000000000000000000000000000000000000000000845116926000948580938180525af1908251149015615d6a5715615d5a575050565b63fb5014fc90526020526024601cfd5b5063fb5014fc90612230612681565b602090949391947fffffffff00000000000000000000000000000000000000000000000000000000845116926000948580938180525af1908251149015615dc4571561223057505050565b50612230612681565b60009081906080803d109060009081908280918515615e70575b8515615df8575b5050505050929190565b91939750919550602094939480920196604051918360c08302840101604052818352839160010160051b98898401905b8a8410615e4d5750505050615e4293949596509501614b10565b913880808080615dee565b60a083879284878901528181863e60608501518286015201920193019290615e28565b9450909150604081803e5190602051913d81113d8411179485615de75794508093506020915060003e60005191602082813e602051903d8260a0028560071b0186011161ffff83861711179460008052615de7565b908135641fffffffe08160051b169060405191602091828285010160405263ffffffff809116845260005b828110615f005750929450505050565b80615f1685848180958c010135168a01016119cd565b82828801015201615ef056fea164736f6c6343000811000a03701ee8dd6db4e7eff48eaac900dc895053b85dbff1db1be0401a4ef63ad6e8930356de618c6097fb43281765fdfa8a2478e75ab64be4ab1b2aef66f3002296db0a03776c97919019e01dfeec91e73158e95b202935cf2ea45ff98351869a04407453031d9d9708c3c3c6a8436e08a130f45b7b3a89a4a57ee3f201e291d7bfcb34905a03467c66cf32616fedf9611c3e340a6e8389d25058aa53c1ebabe7248900aa9956033bef189ceca4fac85968b676b2a7c2827c6cfe778390c2a38aa9fe327ac8dd50036cbf0fae34cb6d3bea40e12b6a4b86d5c7d9b016e365954f82532e6627138bf9033d22074ee36facb83587f7d75509b1e294f156a91f070dce00f50cae3f00521a03eb32b3df8a9a57eadb7cb6c168372b3952d1e46e85ed05f60c7d4e16f593be080398ed4b4d17487a7becf13857997f2c5ccbb999de686be738bad74d7786d6bcda039e6bb9d4ea2b181baeb00663fffb17319b026a64dc8b2be9421be050764d543e0365ccdd5a18b8290e510775d44c4f0e972662586a59288d728825a5eefb954237032073df29cd4ebcbbf683a14bbe5ca93c3b17bb8028a70f260b3d99797e5cfd5e03262146acb91627029eb0db1f2c88575e10c531fda801c7c3c85e7300a7d1ce6603d18af6a80a19e23eb616f195ae902522026f5580478a175f0df7930453374b8c03b92196d4ab02e44edf6c3bf9ed0d2952d260327b75107adfa5a71a8354e09bc503dc7a71fc8bb4b58555cfd53c40206bbc4c45dbfdb2efe0b49230248976c8355803cd43d4d7291f535b1266bd5a6af85f549749d9858ae855004807d87dfe2f483503e7226b376c0370438a38fdac2ea8108357c93fd071773df896ba768d794c9abb03745b8169cafd9c0abc4f8535243c8befa3bea3699b1adc7b7092a97ddfca243503dece284313a57447f955e8d186af8ad0be8891c86f281946648f6566d629d3ba030f8417d2969c0acfaafec0a2d9d4203897799be0bf571271149f8ec7ab1728cc037cfc1504f2e4f04a7358bb650a0ef7cee37d34318cd87fdc59574de78ceb7e1c03435f75d06666e299ac50ed4a5a0619e936f2291109819d1e734a38a22636e9f803095fe34ead9071026ab429875da05f91bd59acf2a42a27346967b0380f82009d0334be7ee34b5769be11336607aaf31b7492c5a40847965eb79357722177f03fcb032a12ef6c48fca858c60569700ddc78e6763d3b551c7fa144c1a62e56aa6bc8450314bce0d4bd601d79200e14e636dc57468134301ed1a190b87895f7c2b80cacc703d5f982b704ae670aa2b5a903e6df66bfd85109d8e88adffd975907f6756ab8d603eb0b90b37c6042ca351e3b48660b1e7206c06a3503e3ef381e918d7eed16bdcd00581e0254f71079d23840d1f2b421016b85c5e41ed812922c4cd0edbb4f58aa4452010000000000000000000000000000010001039d8954d1480899a749480d91ba74459de87e721e07832be8419cd0bdeb3ff10300581e021b32f3332a6110b683075ea80b0558a12499c525ad337cda18eeedb4b442010000581e02ceab8bfbe0bc2718ce80741b81e5ee2f0fbf7e8884d5b7919e5475ff94520100000000000000000000000000000100010219c00c037175275e671afa120cbebd01554cb01605190b6498bca8b4aa7fcf554192843b03f77d3bcb5bab08ad332c9b0cf2e96d709d02350c486988785ac3faf9f31cf05c0308a91665a5576ef09b3990dbe94352b88633f9d6a8853cfaedd60873810a5ef7035b145c5cb25c583b3e610391dc14e163806f8819ea6191e47389762e45856b3c0300d36fdfac7edd6a3034dc6563b8648884842d013221603dc8a1b76829f96c35031c50bbcf42d81438d01918adac0b3d27d1de2bdad8c5c2c86118e19ede1db7d9038c38574bdd8b4917d24563d3f67cf0a107debffd64de77d02cb4abfac7d20faf03236c78b44b63b519aa20c6ebc52d42eebd615fcf38dc1c2c1e5203a4f42d4d2d0219ffff03b7914dcd06a9ba5736be169fdba7bae70462dc4551b91992b722af6884372d2c03338377e08afb4712af10ee389d81f0c6998d9b5a9003bb330d0065038a9dde920336e091da3156d24504dcdca0e00f1d64aab910f6f12acf5041f1ecde650517bb034aef10999ff48db2273f22a824ed1fd609e17081c1a6dc9ac2e7a60a8b047429034de45a0421f85e7d1fd128cb114d38b4e0f24c9ed98fa0e39d151506fabcbbc60314d1059f688ca5c86607d48d148cbf372c40cacde113535d415d3a15af958f2903b6ecf0484a7cf916f0a724345c0062b2f1bd20c68181d1cc8419f39a1617057f03242ae5eef8805b612087b4fa5fad127ccec52ba67d4ec76bc21a364d77f6ef43032fc855f5d7a9d158c8d56ef91c33d8aa889e1cb159f91f25b31ae706cfedcff103482f84db1aa7c39b92c5508db6d40121dc00325e5e162c44e634ef4eb1f0e82c0219ffff0399fc2611083dd331e0856b300f978a40d1ee194fd671b10bfb7c3d47a53292860219ffff036d9fad70c12595cc737b2c586f1cc1a7612aeabaa3e7556fa3852b5d6472e1a203acfa3571e0bcbf5cf4cb7af046cdda04ca7baf978afe7d2eedeac332dd5d4d8a03a0c8e772b2b753a63ac86ae380301a4501af1cc5b1edd18dbe252f0eb04fb4af03122a554cc9fe9db81a2cc7886547e97dc0775f42b5312c0961f0e0fb74005d5c0383986a7c4ed2ec567f213f20b1df271b5c341a3e513b8b4159665428db829b2203b6a6dc837c0124658688ab6c367838504d491a4ab4e9051c34e586ca53e0e12f03cdff84b00cde3f474a47b96398604b382a7d5a54de19fcff0850fe9b7d0fbfde03a5a615810363a6f8df2b21ce58fdcc3de91bbd829d26aff1b9b578b6a5711dc70338599b4bcab6cdaaeffa9735a30ab5cff1349ab3a2ef0ac3a45f7ed1331a754d03051705c9387a8d996801bcd71198ca193f16a871dad855ea65c3f1b5f5e31d1d038a0d752b4f96d613c4dc855049df2f7d622708e9878b104dc8617040e383a5b2039c672194848cf31f77a42ec73d73644b1d7b4493470cff1511c936db58cbdd97033087adef0d0a478fb76e98d3768fcab713dd8e10b646cf96f3fba93dae3f109f0307031cf46d02e37f6a748fed48b46866133dfe03c1791eed2fa22a99faa59e1f031c771155bba9825546e4e16abc7d7abc5a2d4a840b5f9f51751d5336328ae90c03276386851076f81240763bfc0c9585f0c26065f6f956b99f2ec6b305e790d40a03a601d175ad600440919b530d7cc1afb72793c6ebfb3372f976a7f75da089589c03784ac55a3668fc3c8d366327374f6af4052ece077c1f8eee70fd233dba07a33c03a5417a0d0ef710fd70efeb67b3512f26bcd4c173cc22d4b19590eaeb2d49792a030b90518b5c9a3df6f0fd78ee4b15ecc4c3f3cae3cf355ca77cd6c5daaf15463b0323c0921f7261cdc17f5d918d542eaf52ee0777daa5a731d637bf3f15c319671a033ebdc9f8e51c53f8ae380a89bffdf5d0bdff130527fab620ef73a88571559aba038313e4a3528aaaf4c7ffc1e908711f9d931178c9a261140c37cdf61c2ba7432403ceb1c0038058ed138891207fd71ca03e48b9e3f42e4983d542c62127f51a9d45032b9df6510aa72c0fe82835ff7fd23e894d4753da5f753c208e0920a695e8a46a03c6a52d70007263dbb97552cf200e46c68d74190cb6aceabc333ca66758ab5b8103aeca39f2305b58c09a39905f1f475c9ee23f538366fb5a3cf105a4cd955e252c00581f030abe77de96f577bbee507ad86e77b03c87003a0aa392f5aa69d59c87762050b12a04f8f9c4c2609b0c162fc7ee3bbe0328990d80c5b693482ca9b2e28e6dc60e9dd0284ea07859d857f0dcf215b8cb500304b2ade47b12e0b53579b359b3179f45af72c8f0928978b2d98d5e1424b1c00f0335772ad9866aa048adfc39b4566c28820078dfb53a176254e54bc222b4fd641703c2472956ec4301ce877f9217127c97f8959733bb26990329124c9975257ed77f0312d332ead3009f01ded3c31774d8ab7b0430b946c1bce4a408af93862694820e03f34da8ce2ad00bbe23f9b51ce1009e34b40da0bcc8406d5037c142ab6354c50d0349815be2ff426a5fc837e2104dcab33826119ef036dd6c26ab095ff22ff88ab50389246844cd765a787cfc0dc2f3d53355536f8d7f3d4e8421ec01220f42cd302c0219ffff032ab703c8280f17b83891348716b000a4e84aac6174b8eceb5863ca3b64fb4fa703315631656c6709af4347d7303d996803245305115c3cdbdd826722f5148ebede039581faf535a8b7a39ee94c48aa9fff80c2ddbe919816e3a5d822b1995a3da0f7039b0ed292064c162790c6d19ccf8d4142c0fcb68605d4afe2b23e3bed8f3e86710323771e6a3aa15c4c884366b5cbb8e657a3c616213654ad1a5c81dfbaa7c73e4b039d56759667c99e92fcb6cead294d8047cd7582c7c3c40c2ff2b2bf86b8f79a6803404158e79decc88ad58ccb1a90e088e4fe8747ac3f49da25b47ac7fd1b4bc180039ea55a6d69339788d99aa8faeb26cc5fdcc43a0af7798e7ef2ae113f419ba9810324ac04dddb5766e3a2ec7f7a68dfcb09a369ecd942bd2cf59db192a279b92bd503ff7662bdea67ae5dd90f69b022ce651c754540993f531d4b7bcb06d09c6bddad034463c30e44d4b2dae81d23b9a90b3b4721f970ab2486f44f89800720ae9599fc03df9c7c0b50a2201be1af5c7587488659ee68c25e9fdb57135cf2f9dd89c7b39703b2ea62173ac92d3f86a76c98ce58a45a532d8726443454559b2b6dddcc86e4230219ffff039f0dea0f20f21cbfcc6bbe591c47978d230b0ba5aa1e7f391ba5a694ded6c5e103b7175b0c399d43e0ac47e696b0c527ab240e24eafa4e3c986e9e15ddd5da7bf60219ffff032c2d57570c41f5efb6f419dc082f75c5053bd9ad29fd9f159c407b54d58afbed034366a8ba149df6fb4e970e26600ce2f378f6cc0a2e3fc5cdc27350e5ae013c5903a910fb49e881cc56427a6ac2b9c81987223a9ff10a21cc6886c91901e1177e2f03969777443e2f41c98c3bbe894772809839d5ad00ec3e52fb7b62622b479ba5e603a7e47644f70b866c18b863584657065991fec240102dcaaf90d57f49e8fe6ddc039c34dd2916eab07581deebcfdf2c7d3011f790df4d0ec5930f6af135195ff5110219ffff03ca188a60500363855fc5bbb21354deb538e080594f715b872862fc99e798bf2803fd3787d9241629acb62c3735cb7afc0a7d74342693a21511e22eb0eb89c278d903ab62d6660460d3e59f193fe27ca6a8ff7d64bbb2dcf1c2047282c8343f9895ae039c673cd462967d087d5abd5825232a258d61b0599d396fef172f002bab4e445603e16d2b8011ef357ff70a483cc89996f515291f4922e6eab908c988027fb7cd75035334f4280601c67a4bc949f31d02ce7290516e6c0d8e517940db3e85151131da030ba2b225a1b32326e66c2227b86967a53a4b2e8e1da2837e3550878d4a25f994033d3cfac09848bd090d5a2d21454cfdbff22170831b6a53c905f541b806a844cf03cd129516778d0401308558a5f136c3cb6c934afc6a5bf8f60087c98a8797e9e603429bdf5f52998d25ed42bd9fb1e8f9cec2c919c3566f55ca325086c3f5070a00038bf6855cd98fe043d9a630f35ea2378e3ced7f1a03b2b42eef53b94f2079080103fd1d2fec6c2e7678f50e459ef0a87642cdda1f2c3e6dfd76081620c935655c5c0370c526d82bfb53b37f5a377aca9d02d202cebb84bcf0c57e9ed9c1d88f3aece903a1d8a80d2fbace8f37a5ee1aedf9751b72815c4e33e3d019553d3c200fe717d00344de591f827b5c5b246d0b78ae7e5316e592c32a61775ad8d8f8e38b38c0f76003a7ceeff0d89080fa816893e5b5f9a7e2ece705a83192d32c9366581eba97f61303c3e76fb53fe31a7c9389a014037c01ab7f3cc2bd13669446340d8ece3811e8b00302de76ea3a0915c5afe94e692078041a0a61d85cf59f06028c4bbe4e7e02f2e603b55af22b909c430e0c448df41428faa7478d60387eba77a22d749dad3ec4f3cf0375f401eb0fbd16fcc0c429d111f9cbe6388471125d83610554ed4a79e5fe215f03972125b540e0e2170ab7a813b9aacab7bd37a4f1f24e3d5a60ba3668c195f5dc03319e314d94b57acd5a5fb99f81f1a183568146ecb7ccd52dc2fc153f7f205bb90303022f88624d6eca507a2979d45e8983e0ff3fe350ebbce27b5ba97e6b08d5be0335837f17b851c5dfa5f4667fa3fdd4a5a0c903746e5beee5ef8f14bab1913b8003b076bf06723e199eeda1f465948f1b019d5b9cc7b7b85ee6d5870764201fe7a203ee112afd6ae70653e421331486c4df899bb49aa13648a0be105252935885030b03ecd72ed5b19a9177b12a93f1ee99c9be35ac8c8be5cf8124abe91a31579e5b0f033df78579a32b4ed930782164153597d14ce84fb817beedc78c380ecc9d2ac42603fa0531e8f2ff67dd66466819ef56c8968efe12eac8412fac513b91e5039fb55a034ac2de642ea7ba7a8543d03a41f7bdfcbdfa1fe03976786a601e0ffb6bd570070316632e44f0bdfaf1a5eff39073f5bbb300c88177906934bc38d835719a2b9e2b03e5dfdccc9964bbc59636c30fd065e602d4f9ae21d6bf52a214da6f77f11cb1fb03c4ba02827c7225332d8431e8c3bccd1cab12d03a407587d91397e5a0dbeb237d030c16df9d2ca2cb473e9c8db334742db9cffbd2ab310e14d091bcd78f41bf9fce032fbea971991aa9ed54be7a1a69183f512c9a88509b9aee8096182f5efbf94faf00581e02009ed213cd12c974865b4209eee79bad42865bbdf05f300ef9f0dd52a35201000000000000000000000000000001000100581e02d9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563410100581e023d8838d9684cfde6da05738b93b70115caca6e5e65da09b5a4f9088a76520100000000000000000000000000000100010219320003460198836166c4a65379b3591a6a25b2948e188886da6e8d39d15c920a7e73b30219fffe03f79ce8d9fa8d2f580abd3606d108f4df1821fad06ebc076bc47a6f4e9a2d6e71037d17b09ade02895c65b77ac7a3a65b0a7ec0b98926ba549b9689b0ed08fb95ec0219ffff0385a4d9be87acc3bc7e81747195a4d703ef602d3a234f73de8143b7287a48272103e77f2648cd33830db38a347e9e8ac8d72f30305b8fa02a1f5c41289317f7ab6a0369802797474fe469b3eac6bc110cd659ad5359c6bf353e621becb9a4a77353d5038f6741c1e956df98867806e5c26f93eb1690befcce1811e115393650e883dcad03ee6d8e6e75c18746261ca648f5296513a163e0276f8245338e6a3eefd72e6160031e4d8a0f7919ed28bd71ce342b8fb13eb093e1bc1b0a97f3c47882ac080bb174030e42660725bc3657a0ec6401551139f7faa40019501a41956ac20db290bea3d5030e4a09119c6a6ebf618d4425ab933a9c13ad03df687269d02df56a6345f464c403296eca936d2f448458dffa3086963a185aa4d6168f89b916be08a3cf052da03803cad95392482493aaea245f6afa2b2b604c3ce296b88ead638bb779afbd12d7010327b08518d4a431e42e0be18cf2aa04922ad87273b2c325775835871383a7983f034fc253eaad00e382e605bdb5f3d60f4328a9140078acbdb1ad8f6cc61476eaac03642f3882d314b3997a66da4b3bbc7c6c8ece7a1f3f9afe3eeed8820b36d80d5003b5a7945a5cdbdc0957288a14252e3ee9401273c8f9dd1067602b6ff9d992ca9503b67454950f75936111ab509dd2a5cea8624de7ce01107f44aa6e3252930c9f8b0219ffff03cba5653b687b09f18614187123ddd780eff70a21524cbb1c2f22d9a065aa7fad0345d8e931548e6e4c08c2d284883b09a9a234d0f8a94d95c723bfdb661d10d89603e1db2b6c98708aebef696cff57dab817727229313869d52c86d3ddec7d2af4eb0361e7af4092929f8251da9898180fb46d4071d92e23863475ed778172c3d10cb50357ccaf78c1f17a107d0329529383aee7d6dd3877fecb06256257e47547f20ed8033bf1685e1cfe333c01468bdd3edabe982fcae4fd6f5f21be4627f616eb8c8d420219ffff036161586f0be0f8fb062d717c99f9da5e04b3f91f41d93a89f8786a4743ea2613037f4bd6f25297b03cc1ae9fdc0c5c175be2afc9673d07f4d31e6b51d6146dfcc903530686e7b25e4a1cc2c8720d8dca0ad132df9a989c723f9b510ca048e8ba8856039776e8652af575f86bb94a4b889c29c83c66839bc695567f498c149ad0603e380307c0f193753e9eea0a1a6eee7aba91931b026605ff11117afef8456a99d75e03031e50f1533ebf237b6718c80accb28be193ef4f3ab6c4f7731f7d0eba4c15a5dc0335e37b26ca993516af1565411661fd11ad4c3e15b179ce74aab641ea24dba8d403049e5b77d1ec094d09cf78fa2c93d491a26a7834a3039a6e201d388ea560b31303a3a36a2c12292ccb17fcff01b2b604cccd2f2a7b9b28512d98acc390137d8a4b03632a996bcf121fbdb03c763e59cebb1e5bd8fc9b262df9e13d315f635bb42a190342370983de84115964f09c74cd27194e22bf0df4ec6965f6002704b76844c4010383a1b641461021cdd6c453e723b14eca3ecb69b182e068c91b28f055f9967a3b03aaac3164dd4b93d9f6e30becf49ce48938b674fef9976c3d9c9c3a441bcbeda203f97d36120700fc8f27c2275876b6845f9dac6d60cc3ca6e64679eb992368a3770333baf7dae98e546ad1c689211273c7eb88bb27e4073897579b8b4532e21463c1032612ff347a784ee53d634be39bca0e09249b9a5f16ff6f49c6a564c53f6cab4d03a90735ed51016104bca17bbb1a64e0696b7bb4c057b0158b434f19afd56655ed030b83bc7811a3f89779df88f90c5d17069e3796a9e3692559500a8d1be6ac34fc03b90840dca53eb332a74a24ca31541fe572ee71d1f15f2f48731d328e0f09e0c200581e02412ff4b2a2f668892e3731a6ee8effd0f847dc3fdbb28447f87e574bb15201000000000000000000000000000001000100581e0201460f415b774bfc02871de8d9723e326dd8561e2d8f286e6e0a8facd05201000000000000000000000000000001000100581e0257902c1bbe85e3e284b8013432d195f4bb95db2d4798ab8b0bf71920585201000000000000000000000000000001000100581e0214587fa40e766125e51f745229b4ee6785f3c9d688f3f211c93aef4d9d5201000000000000000000000000000001000100581e0213a897466162839dce91a60c566d5dcd6149f339079430e4a1630ffd245201000000000000000000000000000001000102193b0003d4cc840734793f05208997dcaf9d4fc47435376ef4356934c0ee14e57f82642a03ddce8e4bdf436f0d3a5ad5726b9d1b8f8d65aac860298b6eb8e9bf355f4026d403744fb56f790566784e7cf5a9454235c07725c82914d068f7046b6c71f681dea903e9ea7e86e92c487942d6ff7cba5f2932b151156a4eb4dc316dd554f77d094de1037819234c7923c77fcdbbc802f5eff8fe54b244ad1a122c8cd22a4d2a5281829c03be9e991ff152047ba630c7aa7860bf7c24473761f66178ae1ac33bb60643d08103a1a2bc483d3ef9d807169134cf23f6ad74686484ecd6bc0af85ad0072cc04fc3032756a8c572e10f30e401501e3910ac63ea52027f8c6d9fe732d5cef6ea99efd0039e1b9aa7925746fb451880732e1937d524c2c9168d5b8e3b972ffae00b616d9903c676a2818a3fed0e7c621b8a33b271b827da8ff6d07ac3108d68fea9b6fddbaf0359629678efee619b85de0fe72bd7c69126fafcefe3a238fb28052eab433e7d67037da11fedd13b61d64819ce75861dc6bef3ca5a9cb037264fe392a6d77d734b3403cf0acb82b054a06b5c95f3c1fbe8d77de8ebdeab133037593458e92715b66c230219dfff0384aac4916709cb3751a2a65832ef45973b8fb7a196f4b78640827ae0c728d31503c273996f2e33af1d05cfda8035be1df77efbb6cba923f492f29f51d4d8b8649c0334cb5efbbaf03124a2967f13d36b916a9a62354dbca584bfaf3b41203795d8b90327e71e1bce549c06566068acf00af7092d7ec7e797a5573544474c39798ae32b03de678e3329b963fd881fb5051b5416af645fbe3e897a60f9af45e19d5e0de3380324c13f485a66dcfba2b1120893a431edd7f90791e821112b5fb6cea5b06c2b3c03d8827c991adc4454be99c527cd8be2f827149161ffef0d4e7b57a2543d9d04380219ffff03ece8a5c0d33685ec6f90e43fbaf72ee4eaedd424a834a869ac8e09b9508f18aa033859aa76e03db4f67eb07f0d718235531cf7434f1d51d6625994299c54f9505403595faec962187528ed022e2c59e6f1f36d8dc2cc61cafc74c5bc66d79021769303507a0c9ef0e11ed22fcbaba9cb9e42653c0a027ace4cea548f3af8207c1188af0399af94354281ae94d31da8cbedd138c5833c677f0a5e1d78491a07e4f95cd512030074fabb73f63867a4df57bc0f0d5a8f5da537aa4f81782ce77010ea28546e3203dc5bd362634de0ddc5077541b0244270f963389713185d6d4ffc5b07ff8e92ac0380231d5c69a4261a5d4ab49afd982ffdad677591aff3b76d1db7e8e95e880a0f03bda1e899967aaab98a4deb33ff27e53a69784704de78a16d9724416a42bd98600219ffff034218700f6a233c9968a18dea0f58b345a9a757ae7d0be4254adeef3389a4a16b03c611c57bca79e685c73ab29b997f32e81724bc168fef162005b5a6d47094f3cb030a7a5cdff3f3b9234c31b8c652b22884a847c63e8712732bb4342fb5ec45519603a2444a55bc48f49f4432722cb96635242bd6412d1f7c0fcd34f490f8f1f0606503a945e63f52eba5af77d1cd6322cd2c95a29db1efeb3099e0126f1e0a13b041ba03b47a98ac5d3b0b469abaeb737720685110a0ac2ce5403ea31d7d7907c8353a50037c8fbb985a769184905afeb23b1c57d6e3c064e3ef6bbefd883ddf217d1cf66b036b51e03070db1ec88e32624bed33bbb31faa850475511bd2c3b4a3e35671b55e0350584ed4b0eff9462e116da195f5c101276355f953335fa83e62ff51c5e717ad0349301c3fce38d5bde145b92a6204e66c19ae93f138fd3383f3b46a078e078cc603722ff672c8b00c46231331725a063e0dec472ce1917b8e7305a3f4010615ab85033ec5414799c1dc67bbf874afff3adb68479e77cbe4dc52a42c520213b308d1a203033f8728ccc119add7253bee6266aa815d6115d5fc2147ef2c9649a558cf041f03c394aa4ac68da5e286ca80a4649b8f52702742cf898b502670dc7c729fe87eca0219ffff037a170cfb2c6d75eb37ae704625af78e1ddc88605eb02cfacc679553cdc95b17103a225597a26288167768ff3533ff8ca697517cb8b9dde1f1fd266aef68aa2d82303761b4d776b880afd35be7daa84aa1c72c02768045105a35fae95ffe1b01977920305853e867aa8530dc0fa2b18b4dd66ff5410876d984be9084e440e760d50cbd7038a9277344fcfe530c399a3ddc8c704fe00ddb95a412f10b511e7ff412d5717de0319d489a6d18d98a9425b279a8c570f0d71ad235dedb7470d2d2184bd1af0de9103c5c125d9382fb234cb86453128a9dcb6219753ba356671c4bb86d6f493d1f6d10302fe646060c2f6a364d8c551fa9a03744ebb58c6c37876b958148c66784fbcdf034795520cefd0bfbc8c532002a1ade8cd50c313299d2eeccb0713607cde17c3f103ba685f4596923b44686e132a3bc7b380adb6d9ec7abd4bf4c5d2839b3a9519700366c0c3551ad54ba3fee6e5c43beecfb6da2794250fcf707c965f1e4007de9e160335e9de985fbbe97bc2f5ec845003368d14f5d0f9b87fc09bb6e2265234bf857a03f5629ae23fac8dd1bcc3f1668f2e7cdd6d4c8a237a0f64c873c4b91f7b83832403d3a6d4871a9fd1a39d2be9fa8b3609ae5132c5c9ddb9f7013cc0d793fc6fd1c703d98a45e04d087f59dc3c0572ae395ecd02236e61750695f04b43652a392cf1d3037612ceab86d1e925b06f7a0cd2141b0d81b084fc6b441dedfc36d4da690fc60803bc9f2afd07918e589e77ee1c4c916bc3f43660e811cd5c6e5ddd37c96e3aeb2a03b2ed7e2525b984943cc6f184bc942ac33d6a2f440595a15cd1d3b1a43fbe405603fd89e8a99ca030f93efddc476cac001abbb678109c46e0fab1155ca58016bf730385b30e6543cb1928f8dbb132b224ef30f6e1f146275767e7add8c8aae59dc8c003885e2a932653ec713594028174075c4dd9e5f01dddefa0038b82c5b9691b81dd03f7126d662aaf2198b579ba455e7ac55adf7a47a49faf6cf6b7b0a5884fb3a3ab03152c13aaad189d8159e631719fd96a6a2023f03efcf845499088c9a764c619b603520ef7818be9128f7c0c8f663e8926a4d67d273a49ff77e35c07f254478bdfa603b24b1abe032b709004defcda1ce6f4be192a5a3cd69e6192d872aa78b8ea328a031ebc17b709baff0c1f97360be145e2fcf162fef0f2087816c6386fe8efc1218003f167fc15de356caa786b037d8598f47ed1c7cb0af15e26561fd232fd781ba8650362974aefa94fab9fa58ba1026e48d9aee98f522a89011c0028da5aaf2333861d00581e02f3bac9e938ec4f69625bcd564585200ecc52b0397400cf3e0d8bb5bb3e5201000000000000000000000000000001000103c2c63ebc63d7c6813fdb2d18d12e4f565928a72bef04a56f9736fb19d47a7c0300581e02cf151faca298e283357e503d262fac7b5bc6a8664a2365dc89b566053f420100032a922050e299144758739126046c9f870bcb42b8625bf31bc5a263dd24967ea100581e02e8d32ad6cec7a04f68d15ec5091c5ed157c22359b71bdcf2855c9e02875201000000000000000000000000000001000100581e02d76b8ad13824468b070f85b4b3af151bdf89954690a02dd17abfde837e520100000000000000000000000000000100010219204f0353d0c751cc0bfbe24ed0b65cbf801f37928a3b1977300601fd14a11b05217553031f0bba7f2320efdd57f5f8d80a4ea43f6abf91758434d96e36c32c3b945f8c6c03f3c0267653cb1e11242db90bb7b2bc91cb4336c252bc3a241ac7ff2fbff2a0a600581f03c362c7c8c51e7077ae6206801695ccaaa53907b410413fe5e1ed00a75f60520100000000000000000000000000000100010219ffbf03420c8666d03717e99249f730fb226ee2dcb9683e18c619a50f5f161185e7c4e803271aeebcc367496304818ed91fc9acdbb28f1f04c383dd3d0a2b3da672dd9b7603da42caffe85764d037c774b884463e0dadda4467348c7383fd36c206c7dc7a0d03bf2d61027a1052f3b7255394239727cc2cdf858ce57c1f1ed7c41fcf6103354d032e38bd59780b11471131b9c12b57433bf72fa09271b7a90bdaa653585c2cd85a03341013c12f2799361bfa28077141c20ad3a053556e2b66ed1c39b2a94135b5ce0342725757e7eef12bebd1df01b8eaa64e1e888cb147ea4cd2e394051e1d225de503197dc402dabd2a533f4fec38e15cd09ba0df4f58744f01bd9596c13c4badc24e0219ffff038ab1b91d0910f564085d639e4d0d5e26fc809b5594974d973b1925375021416803e6baf6a3d783fb55bd82928c11658476fd7cdacb65a702290352f17b5b1bcb300324840e87e7c330fedf36e8726c35e992b1cdb1074f6fddf62dd208cb612fa1bd03044e2e8ba106a2d8aa3b8a0fa9e53fbe397b5b67c86bc64a8a4e22356910f5cb039e3848a2549c297d134eb1e9945834fad25334723eaeab4c1435213091b0584203af946cb4eece4da01619cc8894e1dc48793df4fe2bb7d4a7d3e67d5d19636d15034726ba17a1dc2c4c79d5e36bee426bf761976009e899eb459efcd086ab730b95039b8b5d07857d69ca9d5d0bdb9144b66a54d10e39b2446d33780dd078da345504036a38c01e74dbc5452c8253394969fa071cc353bd3c23d4f08708c7287aa435430219ffff03006fa74d22e358ebcdbf4b94a7355f5b0c7d0cf0ea3fca02800dd3126bb028fc03c447eadb73b0d6973d22f57d6fceb30d8cf9412a0d65318029475045dc261b9d03ece4e15778a3dd95b784f8214c85b5bca2d1adde39acfc2354542bfb1d5a3240034960413cd738a7b3ae8daa68dbc9fa860d79d8cf68be6d4c99b5adf85c5ffdae0328bb80ac84ac1cdbca21432c4384d06d628e7344ebf0e42626ff241661405175037e5aebb0dfd1224166dc7cc5f08c2994dbeb57966aa02fcd3ec785baff0ad02b03d8ac232b8ee16512495268f0e58970d1e48bd0f637f131f00a4e40c348a42584037de82648cbd42fb05b46ceb1be0f15a137c11fd5f5e7fce3365171742dd305940336e58f4d3c76633ec14b39f6727f2863e3139cb758461286238611ca92a1c1bc031db50c6e70c6ecd2672e47c2099a942746270b34f436976d42cc3b2b181f0f000219ffff0355b15b5e3771a21978b04e328e555bcdcd2d1c67a1169de467e0426718a4581703d08c500701646dc129c46c38ebbedc9433fc56bb6027e47642df00c5ee4b6d2103e047e5f935daf4f37028365dba2f3f901cf612eff7162d9b9fa78adf8226747e03a9d621fec82e407710b4f198a7c6fb481b44485cd49eb573000692d414421ba8036ebe213cc791353d6dbee66484a28e299830fa61c97f70f72687d76d04d6b6b1031d9c68982628fbefad43242942ca67f0b03df425321986117ebfb6c206d60d43037e0bb2c7a6c45b17bb94167dba444fcaf82513f81e3b9dc949379a0e5f52059203a1ab8d32e07227c97109e98a7aaba2b5aec40db4b99070e1d108151afdc5ff0503bf6e0475e3cbd891c8e55fcd78693d96f2a37cbd5f9ed5c4df9587bcd4e5f8bc0375c7ca56687eabc1b21cc6e39a3aef1b4c6e1747a378884c8954eed631f4470503a254ff606d70cbe862a6d1c52a5ead65685772ff19c9a0a670446060c3ca16a60341bde99b591a078cf631456362443c15c820548922872be480d55803e6eb80b20320decd649ba8de784bd78a02632aee0ea2af3076223d5c97537b6c72b6ae772103fb944dd095345ef73a8fdc4a400b32c1ca9cd7cf9e52e48d6e8c265aae2a931903c8d22db9935ee4cb275353d937a38705cd11663dd24409e662a203241a29f47403fd006e43def3cfb413dccd984ad600b7d1269f7fed89dad7ac1301b7ddede96903cc0fdfa1965ab0e426e8859a2bb2325727a4386365bf488ec73552a8e70b6e5203c7b6ca4710aa074a4e0ee3bbae7a5062533bfedd60a736a242c1dfb75ea2ae3c03a141f26c38ae9cdea5eabe296e6784c75206484629b9f4d5a9e26d51e442c9e60360c33d2396bc4f620e2b15edfe581205aaba752ddc2f3132e25bff6ef14297cf03e1294c2b604ff8f619d54763cfbc6553da9d7e6b3c06595cbe2f8e9759e9090e03ab4b43dc09bd4e0b13aa7c8ca71820e9d7f6c0c49932d0c71965917e34af060803763a37787858bed2e2bb6d47038b77f1e33e42ce377b229fe20e61dbaad89e7103a764786ec82d028130955de8177356d0b77ced9f2b15eff2c77540d4b5a64d0e03ffba0f9b0fa9c116673597d1fa2ce2f012ea1a3ff6e085e483c7049d0dcff31603749cb98382b81e0ae562d4b8231fbe110a203ab65dfd17df31e36a63c6da3a8d03545971da274dd6cbcef9aa145e06f5213c26157e099d4970bad660ab6b285c0203ab1d9690f49e6fb230f9c9b1ad92e29c9788e2d5470aa822464592d8d2467fc003f552774c6b3fc78cdd47dff330ff9eb6301b509d4acd75388580dd4a345f45c30365f26a231ec09fe8dcce8d42f2d8d3d2098f09f6f137ea214b7372f7e50072d003f778091730ea60083e98705217492736cedd6f4a501f0a7703162e1cab57d6a403ecd8333201e56d9cbc32ac25aac6a9e97c63b3cc8076826f1d0f787aaefd625d00581f03ff58c240e7879deb05309cfd102a18ef8c2d9d1b7ba4032023021387a1a05201000000000000000000000000000001000103923e3a467a615c45f3486fa14f9b1f29f1d549d5577c1c0135c3b308c68f9648038f2337edc5e6049455ceddcc3cc5e038ddd8e442451ffa5a6a10eb1bb68fe182036c81abd6b616ac0810b88b82c0c0c4312987bfc7268080714e85daaf865d50ba03752ed7526bd4349628cdd6ba562bfb09f22fd2ccf77c2eba3c6686c9d5501e9203675909f4ade14f246cf54e81b577745a6b54cf2f43a8300b12fb01e798b335de03a4b8f7236b3620080471d21efa16e882fb63bf3599a4321777ab290cb448b27903dabcf7aa017c727f48663c21c6bf65e5aa055193057163f76a45674f881e0d02035ef9822afec639651b56965f2624189c2ee17f7e8aff030214d4c37dd1be527f00581e022059917fe5bf113d013a1d0655e71f8d8b36db7a3cc4f44eb4792a20445201000000000000000000000000000001000100581e02ee625064ca8054df5a7e4ff3a16eeb2d04073a1be86c27ea7bfcf96fd65201000000000000000000000000000001000100581e025c7ae5ffb27779a1a8011a4e71197a305af40e73c85031d0501df44635520100000000000000000000000000000100010219081103f886fc08f5b40cd60c9e3f8b8f202dfb2fa4fabafb9329757cb5831b61249cde03b4b1e06d12f52818f81ff8f06220d563ed5c114d20cf8bbbcf8b6796bc8731aa0219ffff03ee18ebbecda75db5de91f08dc5a8c2e27e2cd3953e7779d0fd4e6de46131a28e03318d9553bc276f7afa9867cd2b7ff37252219c40e612dab88603125ac43943740219ffff0315252d1b4a0f783ff88100862ebe8613ae44fc291e5409789ad297bd9914e5e903f9e541f1d1dd30d7faf3575fabffcda4dab0f781504684f7ef76242b87862d160385f6340e13bb19f9c445afa1a00943723c96acc17692d4ae6882bf261c43684c0352cd571ff44216a6733de083b28a61c6ca3528762542fd4c3bba7b5f4be521f403a93d8bd4b7024dc7b100f58cd521a43f39cddfa8ccf06dc2ce016389192a3e66032cc7f39ab88257e2980dbc1303144fdccde218f48f4c313be8c7fee85662648c03881f3bb75c41478abc4e467fdf2ba2d174a400b62c5a9065f7c0db49141df96803daec99206dd338999c7c4383d58108ad2b9531aa240eabee2db64a13adb09075037bdadf7f57d0805ef70d85965b989bd9b9a64230395bdb6131b3259ed432bf94033b8db446f70b3780849fccf73ac396f60584fb2ccf53897cf73b356c44df003403efe5bf2554bd3d736bc9cc679dd9d02c644051cd588d4c90614b63ee77e02de2038c9fb0990539ed4a35cc6d6cf048438b34dee7a141bf7fb02fc3acc4da2ba6a503b62240b1f616a17a191d2ff4739f4194ac4561696def15f524f3aa12ff391fa80219ffff039b0533161007a84e38f924e2796fc5fdc22febb91c7e91ac4f70360e482fa39003d124a06b8fc96013f29e7820d7a1871e8d2357f2a463414b11a9ec4188f2e7ec03b504687755ae367cfcc596319449fdd26a3664e0768b10ab2bb2f8f8a44401560219ffff03e2ad9243fc746d491eba69843b9f6f55ce3fb586ca4f503e957c241ac59fabbb039b2166c77291ccef6b3f2e8fb7517b8889105aa1f14b69debdc3ec063e052c7c03b0a2a88ee305d1f79564a25f953e3ba846372ce7bee9ebe7af1718f92eafb4bf03da62a515a0d5207a300224117da677c8d051095b6becff4f52c7ab6d06db7e4403e4f867ba01a90cda737f6e0e719805d83f04fada441890d0ee85f56581fc0deb03e9284a9962be2256313ce6ff273d3b4ef9b749a3353abb9e8a5e06edf073fe65039a94fe92dbee83945c20244a4a021113b984075dcef6ff9ebfc9082e5f7d8295032cc01e74670ae212774a8856a51219da17139ee1c02bad1b026c900a4e6a191903cb3bd15bb6e0439e9cb765822396efd92ca003819a80c9d3a851b276e8d30c5503ba0084f51f9a821f6ccccc41a441c5446d8b14910f887a59aab5ede02236d26103c53bd953955658d617e0c41556946df29c280902b29932eeedad0fe5380e217a0352551fb5333344578cf3b93de7f061f0e92ac91fc318aa4dfcc7ed4786a76c7f03010dbe8b0f358fcfc3135e4ac947025460f5d3d783d46a55eefbf66d156c0c8503e5dc91d59bcf48df74fb38cee8528cfe419c94df5b753af369e918320887f04a037d05ab06a84f60d8ca89f5ef734883da7a0f84bef2765f73f749fd982f621662031cc04189334aaa0ddf7b05e63a9286b5ac76b3ea72ae390f7f0dd9210cb2041d03cb35536f8e4d37ec13b898915ddf49fa737bb68498bc2db55a3e1411f67981eb03f4a0a9a17e7cad64a257e4286d254a00fbedd696b2690344ed1a1686f4f5031403466f089377103337544dbc7194a10e46f3ca4f11fcc5e6ea275b905b1c2a847803524c0e9f4bd670895340c8da8d30140c0d5f9ad43abf85ae303993ef4d64a2cb03c055e68179b31e4e2f5639b6eb296e0a3905df84cab90e48a9e0302a5bf48a6803a6189173062b5b9467c965abf32bf17c2883003e98b4391e87806890881a2b1a036b0472137e4b925ab57a77be85ee0c3ee43ffff04c904ba6f61677bc02bc960003215421ddbf11ff4b53cfcafb56466c5f63b03f3b1fd45b18a5e8917ae00d6bb7030aa8ff33ff0611ca3275a0e2199dc459deaf487bd6469bc901e2aa5860cf174103175a17ffb875272e1053e03e40124b43e4950977551b9fc4c30ce94d1c39e3ce039630771007d8098909a1caf6520805897370e1d669d792c2c2135e6ba65aff7d038d819e0b336d19af8c2a9611e09d0d7c8238aec9d4415074688aaad9c43c9c9c0324fac9462160faa6258e9372d723a7361ecd46c45b6b49ee6c90ea48eff30e1503a19fa76285d4a6b9780a94ad998bf85774f38d9b6892f45341437037b8b288bc00581f0378d54f2721b2ce82d37799bab11930919a9b5d666ec5abf0fd33b47283305201000000000000000000000000000001000103daa593fbbdeef84cd218fd751c8e55955fd566e5f170863555e55c475db5e6f30358337004f4f2233839b7776a9d54b5ec8c38584e8299197af363ab595d15827d032d3a90a98ca64a6daa14d6ea4b8741373470672f328509be854a716fcaca97f503e213e744e28cf5fee312e4abcadbe2a74081ddab558175eee466cc1d08cc79a40300c2e5be4362446e7955237667d0c38883184ad0f33bb53a12ede1f19c076c6303350cbb5a5caaf8957828313ff492723e1ea76c686ec098ee315bf1ab66b5662a03a7e77deb05291ccf73f7426a51156ab5502468662bb1fbd075baec352cba944a0219fffb038ec1758bde6d12c7bd1bd80d2a9c34b38efb04eb32830eb5b66515c4eaa3202e03c13309610fe39f96761e6a815afb4dc9f31bdfb3dfbb06c20fdf60c6570a0e5f038db3c27206758d0015a7da44615d5dc829a655cd7a0131f931ea7f66c6ae1d00030e18bb26c23d998226ad236b3a51fb52402e7fe5b4dd33e750f1abd6213c005c037c0ac0dc9060c29009d4fbe3a738ab890754f4e6ebe96b7ee8a2ac412b7e552f036b361adc1b728a0d76a80658753f12817e49c4532faa01940b720c920ba35903030057b8530ad46d548736cda2a56066e90e9c7da411c0107e6c18149fee911e0b03f67f7b550b6ac16b095c99a3205d20ee4703b1d9498746323244a2011ad0788c03444966cd7c12857379fa15db9bd437bb44e46e611e204178b4527b41d74c582f03cfe0ccbdae98eef3833606aca4aa21f9893d83e1dcc57403de2153587ac2de130219ffff03c984ed72d9b2a6988f2a62fba442e98043e19f0b539d34105ab2753975b11c060316f3636ae39ebf7105ac8d7b22e787e0a9cf3cc6d096ac499042cba96d679a9203803c384ed81775ad383890d9bc98b6bce9da48b5269494ac6c833fcbecf67ee803cadd3b0bae10e54a7a01459725736b38c56bdc27a547b4a8491b6b71afbfe30403a722fd3591d327f8113d32b10676ff29503ede7ae2a2ea33a8c9d0dc663ae99d03b4681f36e9b6ef9ad18eb13a8e894aa6864d536bbe1a7d8a576b5c308d9aa658036dc43d5a7fe851b64e4e250ced4d1acd50da03edad5ee5bd4631d70035028566031825228b56ca77238e698d9cd39220b39e7f607bd4c7d06ab018480fd580e8460383b0c68f1b27ff51cf6b207847716aa611e72078c0afe9bffa43c59292cc4e79032e7f23cf151038dca565e57526e005f3f71e580a80c4e0de66e1a6c8ccd0326103565b0e7657c845c8d5f14168de863a7606fe62e9ef7fcce706260ef4f3b5a70f0219ffff03ffc324879e7020321ff0bb2348503a3506ef06237cbc16cf68c874565ce98c570219ffff03d86258320240b8ba183b9d9c7b63cb7d2d6be56135e8c700eefd24bbe18a7a7703c5605bdbe4d83aa5627694b3c8505a87e682abb69f188989807bd1e9492461c103120d8406eab1b1aa87fa0755613a79c12a270fbbcad8d716e56a5d1e86bfa63b03ade4320eca21d7dd037ef9c952125c2a201a61a5bb53fb3fb040aa3fabe7277803fb9902799d9ec2139d7cd90dcbeb4f9fbbef784fa965f5d58356fb8ec9a2919b032993de45bfd3534df586d175316789ca288035e0f8dc49564d2d48928288e3ac0395c58c74c7571c21dd9d5869ab884bcfefaf1aa3ed8d2447a41fa1e3c35d96d40372c9632519fea8fb1d86d1239560bb3be75a397b4b33653b88f3f7416b56af5703e4d08d5f1fe3e43a64de1636e0d8fceed266d61fe3be80c7757a8e2d53cbe5e3033e9e2fb28d1f1aee8e6baafcc91f30908daa90fe71c2ef6f88ac7ceed01d4dca0313b92fc0c4209733fe40d534f4fe18c6bce5c1ef3e22a263321ab6dfb087f2d9032d377ca76266f875f005c227260316490a01c43aa9023c520b522f79bca43bc403a0aa718f11ea5802229ee4565b637572e7c4fce92f3647552b77836b52d2ff7903364ea30c0c421077893d98036c9490d2137538011907783d7b63e5102890070c03836f3f757054da89f08e8858fe58e6ec3a7010c251c2f6141e300f0fa2be6ce103cbffcdf7b26106bb20ca967e86478cb04d74dfed4648150dd99393a7e3ded1ad0361f6e608a992fc76803a7cdd354d5bb97715c5e23b3b8e9ec6766f6eba09e614038c6947e39e5652853dbc8f99487efb2ca4f1f683327ef4acb86ad8028cd07e0a03b1700777b51d8d52473f112d62259a61dbae2d1d39f7ecf05cc1e8e77df788d603e60fb58dd82cd567cca75c3404dcbceb2d5487af8f6c268e60a6fbcecb37dd8403c0f45822b7b62ff385cf5fc7bbb963ca11ff58a81b348d5ef81443a25278aec60321662975d3c09a96876590d6f6dc1aa385ee51f4301fcc3b68c3beca71fc7b7503c8ba406066b9cdb04bcfb622a6b6482310af9ad7f7e6c69b2da0d69bb004642203acbec0402bdc88bc40e4de26acde27dcd18527d7e9e5956151c35a2ee11e7e0d03c11a0f313bee131f6eff016e98e411bb6c1852c36a345938f4135d611ca3d73803e0113e4720430e87fc700058fdb450b90868299937f2d2babae000c1b66ec59a03884e82563f7955daef56b20ba1ebf8393a348f5131af2fde0fee6fb3cd8ff27c038567ae96ec2802272ad97ec9524c29c3cdcd9272ed4253dacd67c3c0cd3a45de03ee85f8e2b9db0a83ae5ddf29914bc417dc371847fedfa9e4d8c36cc51bebca7a0334bec8ba39ca9c83317b3214e41e92e08d03865b6dde6ca019c796c3713369f803021c942058b88d7a1dacb0c42fab85ca0607d03afd3309c57f6da253fd60cdd2038d7f606a83050ec6f616a48291ca72b75dbab43884182079aa0c117cbe4e652c039d47027dfc9e02bdc8be529e9b36f068249764eaaeb03b4f92a01e45f1f1ee1603cc090ca465179ce8919009ee9ba76090b8f3841a29eb63e08ad2fe3051f505d30396c085964b56f0fce7caea56367e1a96f8f1b55fc2f2548f1d1ae0a7d530855c0343867e23cc7557216e5b1728e3cdd8b300a4548f06f7cb12628215da88ef9ee20385d66c80230b6b75e27dd7fbbb535ae3228ecc69a228f654c610a83911226e5201410903468f0e4265b6d342141139fa159924380e3ff7ebcb8c0ee3d89b163093ae3d0803632e8cb54e2a698accf5d886b0f1e7342eb0e46369f30cc45ef5a52a1f874d870333dfb2e0206b0e6ee2b5584a4f654f29a81bf6e12b49ce4b326020150859b84a0307998c71a69e358fd6440bc93253cb4b498322d980d3a4fef95b8ee94ef78abd036126ea6d67bd91b0645c76abf9e9ebfca96f2f955be560333adb8dbce888598603703a3938045b3714a25799e6d743a8e60b1ff6539f0c642b4ee6b1eab8301a1100581f03c8ff9c6c609c2055eb8f4f88d74796dcbb612beeca71571d8855491070205201000000000000000000000000000001000100581e02ebb3d74b73cd5704c78f2409eb6287142f3c5548f02d210dafb96a17f05201000000000000000000000000000001000100581e02d86b09cd5da322c87d17d3c65041a04599e7287cb853b349071e88bb5f5201000000000000000000000000000001000100581e02050b3f157605ff946103b5ebe0afb904e66fde90dbf2960d70ccef0c2e50402a647c5ace1bbacd31d2918f0798ae00581e0209d094a050095ee857cd0c35a36f6436aa700808499736630c0826b8d5520100000000000000000000000000000100010219042c00581f036c945f355f45a7f8cbe019b34951e1cfa3681699a53b3098a0934ca40a80520100000000000000000000000000000100010219ffff039a121cf40e2b3ad8b707de94d8913bac703d86b9dacd93e0e44f41e5cf88f0000325fb5d8d53a824c54bc73282b1a0db5c0725aa37272b48e5a167f0d581e8beea03de78c63ebe5966265aa38dea562cb811822d73d0c1451d1ecff5198c5c25409d0398b4d8f2ae85b21260d3321c2c04363ac7f8fb7a5df465f6d4fbc8e6762958570219ffff0390629a7aa4548a2ab344101448addb91c6fb3532e1184451e9fc169730b308b103f0a18d5a7c721e89b70804dbe30f934ce89f8a8b331c9727866fe0db28f093db0332b5a911fbb58fed124b9964283ac590560bb63b370013b6dd8b81f561b83cec03f9ed02b42a7827a8d255e087fb34ba100835dcf4c1f8a2e94c4885b07b33064b0342d52e8cc53bc4818af0a2a9654642d32745863223afd3f4c82e820baadae58f03b4b79f1951ea4d22c73aa947f3ace315343501b55ce164357ff8b5ed0c57cb2803ce0d69862dae2c6bcc19a3049f62820647d34d1b3d520fc97cd7c999f109c34d03d05500ab02471ceb22ad4bf87ab67b7f2a260016d0c8c4c3b5a52c7a5ae755ce03ae289cfff5788456ea1cce53798677bdd77b164b157ed3e0f4927491dda464bd03f0c5ce233f586c34a4c406adf19a7f85abf0d56269273947771e53e4955249a20219ffff03a16e998ffb4a831baf526a642e0043a32a46297eb1f0f1bc9d43dcd6a91d9b3b0219ffff0321f02e05896edd0b1faa2ed97d1dbd9157da3b5b029da9e8336e6a62dff7e748039f32d5c4d8ceaa3eee40a104c8a3d61f88b0c6150a0a3fdd8be8cd6fccbff9ee0346e1ef84ae506843f20f99b31ca3376b85a228dcd9b8504f42fda8b29e42099e03d775161072a70be72134559610547fcbad40cbd2ce55a8246755dceebeb36a0e03315c1edb7ee8f2df23263d1d827b25d88e8f98aa2f68b671f5875a5d9682b41c03b98f44341b755d2a46c50be41dc6496885262c12da1ebd4471aa9369959f66570358d767f14f36ef495ed934ba19c66b7cffa33c95147fc1085593f203df046f050304aad862cd6a0393ca540d6a9ede83e211ffa726a59257f3277b9968f68f2787032dc09a18faf36f9f549db3ee724fba6faf0ddc53bbff5705aef3cc2cb593cfd9031f95ab27bf1cf78594966030ec558e66563fe0f5a1c092e7e4fcf608d4482ec70346527ff7fb7b6365f2dcb09f4f7d105e23a8609eff156f25b9cdbb8159094fe603ec542007fe5c092669f8b5aaa8aeb11da11ce061e46a33469974e6c9c96e0a4903265a956fd5882abebf1f9ecbed5029f33839a4893fb3ac97725b19da447b541203aee1b9ca518d30a8c20e6a1064a7d4423d526ac8938b90142d0d041efebd7867034e106be3cc3080e8087ce66edfe599af7c865b1970779fa70361af6b9ba91b1c039159650d02bb21aadedc2971164923e0aa0c30306a23a8767df5a39d9e92f858033c1b5819509594968665adcb8b7e2828f5facc6637dfc6e137ad8b44a0fc2cfa0349d2df82a069ffff41d024a400b855ffe1a381a48223675eb58966d0f7755527033599f2843cc528a27c6f82dfde5c441b4c20a2d80fb46778468eaab6070e69b70324aae2dcdf450d4037027731b934daf44a16e9dd42666c84149c9df869a26e4a03ad5da7ec3429909c9203725ee566288e29683fd5c54cdbb6f93fb2e3161c70c2030489ac2b4de00c7ea2267524317480191b19e19ed1085907a1b392cf6e98a1fe038d9bdae96d35707767221cfe7ad019f921854219715edf31dfa8893376a875f803bb0780a4229895d4e9f44a5f5a9a1091202e58316b7dff57186031a6ef29366f036f2fbee9cd21b85297ab28b110106286c5d79868269d3a7531c4e3fe120671a303d837eedaadfc8558b9d727078b8db2b861c389c3043a8111323aa13a982c1af5030b08ea37090d55b501dbc7d34d4a9e008654b8dd86719231ef32dd3168d1373b03cb27d0703a19f8dbfc674c928ae96ac79a131e636873acac3736d53c57b45f5903d3aa96d43bb1a736365b91867fcfc4a75126abeb5da5042813964a41a328b1b700581f03bfc720c9b200d7ee06f3016fe4307963493efa429cbf5cc90fe0c6800d105201000000000000000000000000000001000100581e02251170583e440c38aff7742bb19cd07d9c21b2824faead8b929c5d341c5202000000000000000000000000000002000103639281bf36e0922cb29d863458fc48ee76b091161a90bd5a4aa8067e8b7c9d9b0219080403bc5d1282107b3204e0ada338814e49ee9b32c562e2d4c8cc2633d60ee3ec48a103380d8d6d8b7f935721f1e110a48a0d7bd833f01f93c269accbd4eb86a4f8d0bb033bdff82b6625a9da06b0d9e5591794994c2b4cfddfa299233fd61a097a00148903db78fa2044de9bcd807f7cccceb90a92fe1bd8fd29997292d261cf2918f1fbe603adee51040d6f8bb2222fe30fab29088b2650cb2a09f64348a75b7cb099a23e51030770598d70d1c463dae41888cb288fcf5d7b809dad0d7d1e8ee69e30409e8e7b03c432f6ecb9241c31cc4a11c3a449d822594207af1944978a470d8adc2d3c4423032ad1b49f3b508a7429f965ac570d70be8dd25f48e96ffdc44baac7d8c841fd4f032a062fbb555332e35e7687999add3d860dfe747d5009f33f4797f66dcdeac55703e2518435064621eb24f6743e52568ad893de72ddf4109dda1b7e0a9fabbad8380219ffff03326658540a9fbe57b887dd16ce2d5a5389084f1ae26af147a120ede40703e545034edc8310de62a2bf7d31851046b4f39b161fa3d877045dcded26626eebb055ca0319b5ebdd3e28b164b6d7121f8ffb0baf46abd3cb8aa712c83a72aef466ede01a0219ffff03edbb48e6ca465175fb7de1ba6733ff6aad3202518f8b43c516fde66693576a530312be22d7fd3e65de3f935e64529fd7c51a7b242fef38b4076015a715978506d603bf9b7f53718a4d2579a092dde25797ad9bc0ed4fc877d5cf1d8c6dd5840ae9a50383da51c5a6940bc037ba3af7cb58f5ffd1d969ff1cda787a4df1867d5aa394130219ffff034c59b6b5b5041b3a33ab62c33b623d8f88889e805fcf421ce3a206127883366e0383ca3fff6a845b9f6997d7b9acf995171c8a68790ba7e0fe8f4faf45f5dca83803e008b10693c3c48d8891a4c930bcde640ebf48639b599a653629db20a303f69d03418a48564064188bca0bdea2e1ba3c8693c4b1cbbe63be6495ffc7163f99ceee03e1bcd56320597d5153a95a990280d35f3a9dc8529ac23bbf1574f88be76cf648034db0285754ef442b88b496bd393f1fe4a91d64e1e15ccea875bef0d0d7b7c4ee03ec4731076dfe6d937c10be67c506ed853c3f615f708e894d121691d44ecaef6103d43c7618da0624764da764e7b5fed201238541e5cc45c7e0587ce00e4aeb95b7038e0988338973e59e5343ecec3878c7fbf18cf3153dcfdd6bd3a4fc5ac94c57260380db45ea2e79e07fdadb141beb835f3897797397c574dd654f08a7322239c19303ae539a9422a70b6b776fa5c3ae769c9f646541406f018bcbcae116519c8730ed03d3ce7de547875f04027512f9245cf30542c0016ad2dd65b570aaae889dd467450313fd7001e8f10e6e2b1790e2e6cc2799a5f76483945d48049d3d548f51ccc9420344a83603513350c50d1ff38900ec2eff7e20c423cb51b9d8cfcbe60cc83608550219ffff03567d177f619e26af95121b333243d1eabb7ef3484e8d731eabb39e7540a551c9034f799e9b9bb2137fe56815576e3744989c12365bc7ce2b99468047ebe046c6fb0219ffff05581e03c5b5bb0687c0f6826873183c97b85ba3ff50c0a1d06565bf8453120dd00701195f2f03d949a88887bb4678e68afdb17e967b5f20c6d74a214a89260604944b6ec1a63305581e03541ef4634fdd29d8d6e2342aa40e49e500f0c13487e427c43d58304e900c0147020024318d4da003c918be2dbb8deb3debad2a1fc40a6c65d761dd86334c6008044ca8402950171f0219b33603d2cfa407b563480fdd154aaf6078bad51fcb33bae0baca88c17f71b02de422d1034846b5ae3d641101dc30ad41128b8b5842f7dd77103c9c0301f0d1709c844be00356656d2346a90143faa1c7bd0b8595441bc73e597779235f6ed7b960d85d97d1034f86e830bd9d3207acc5b14d8a3e1b6687d6097d5c17f969ff24b89af3bd6aaf03d867100860b1c6a305c1d5ef5a60736cea217691f93f23079b622577bc7145a90219ffff0330c902001fdf8b547083bb1d3ee2bc2f06c0024bd6208ef2f4fafa374256751a038b027e194f41977f639aac24eaf904ac291db90cf071c9e819761a13defe1b98033635e951b989e5ffdeb48c5e90ecb9534576545c20d01e2f971d72fcadefe55d0219ffff0323922c2b81b994032c5150ac2672cc9ea3e13fd8569b80ea67385a48cf2ad49003c75ff4471bef8af0e3864eeee5608885146edd52e9b0f52ba7f5b4bbb4542c3f034da8f5b24f793ec8bab0971c51a8b17504e2220cadb506ea267d634ae811b682032b2e7709aeafc515b5e432acd5b6e3d523824b29386a43dd8a24ca6b0cf5c60003eebf91de4c8e2a60fcbfbbbb82dd11e60e2183eadbb467d284f4d1bfa632c0a203d72737b0c157aa6e7cb7cace22b6b212e26d2da9c9db980790cbe3ca6a154c31036255bb156820686f533b0f2b0f3007278dd61c1c552b39c37f74b301040238220361420eec6f5eef626ce67085e16ddc6c9da25c9291c01692399df4384cc915a9033611fb734c6f7318ced8ae30bc09bbb0f7a36d8b022466aaa0f09d1d1ce4121b03b612c3ec39da7826244d1ff2d6cb83f7ff6ea49aa176ffa0f31547303e92049303e52fb68901101e2e68fad6948fd7ee81c962be2e959ae572cc0205e2bdd1b8a2036f2f2c4164454380277efa5a72169748145df4cef0255b713065f42d11f37d4f03b075bf0cf263456fca09d6d4aef57bd77752e73531cfb74ce59ea6e7d55558730315fc36db2107faa56e818f81a0b75906898ea80484173be5a0e2a3c92f1f003d030ff4c44efd84f13ce9fcddda74d3da63f3c97e89cea9cf13979b21eb9cbe4db903c26bc239ad209e85daae18469c5e10c7810e28c7727abc7a4706ab96e4a1184f03c25bfff3a14e7396df799e03867956b0bfbb08ff3673d460dc2d9d42166b4a5c03afb1e80cdc7659a004dedecc500c4d458f1b9e4fc299bc2db3968c0a0c65f14f03b4592bbc7795169096cf2abb42c6fb73c8de9c6c85ccc7d0fd30dcbc08d100ce03c6f1b738bc825b1fb513bc000f31a8e43bc6843f47aa7e9975163256f86f23100347ecb53492bece4559454b823a537411227b66c1bf22cbc393c0e7320fb33c3803f3388baa4464b7fe6dd47f14e0f3f9a691bc9cfca90cf47a7b7bbea61272ca03030d681b013fb14bdfb5e32ffab2ce0a514225b645ce394ff561a719f028784e0403572cca2d4fa5bdc2722f34bf75e8a9393ccee416d1a874bea5871f3e4730b83b03ea7f02ff7ea76b623890ca4a2d976fcfa7159db01e51351a6812fb7c0fb1ffc803157e1d35d95b46acb1af1b9b932240064fe219de88082164386f522787cc614b03547474aaaa8454f10d7325be17dc62682fe05c08cbac2ddfccbedafd04c2f78a05581d021f3ccfe74f6bcb56653100a4c94c1e138a676b11d509b79e8de9a3e407011bffffffffffffffff05581d02975782ee90afe0768e48a07852b659430e10370c77dab16b3f24d0a10c014504a817c7fe05581d02f2c6e47d91e228cd24619c636ffe21b7f475795d0f6b8d64d5161298040104592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032038f86061b59f86888664d88cef65aa3fa3700e52a6db5426897b08577d86e24190315b823c1634592585abd6c18feee8396c9a1af4709a7b99e9db986e5f30dcf9d03a381e1758f6ee342666920d681010d3261ba2eea143e07d9f936d0f0ee43061d038c8691f61b28c27da4a6e78aef11cbd2c0df34cf694e8af534a03503b89b298b037cf542cf1e0fe8c9e022f8565345274a016069d7f7d8721bf70a0f716f1a6a760398087f8f59026df026f944ead2b8a18a18f6480818279bfc206e7138d32a8a6b036c28bf507b1c198cd7496a7dd963a819c85e99ad68a1b7d75f13f14166a8133803794f16453fde6165383258c60d98167cc48c5ab3c905e749b613b248aa8869a2038c2a8f1009187516fc0bd781847de1f7d66b4479990068a36310fe6ce41901aa034fe8ff20d474fc2a43d827c266861c134a65e5d1289b9be9b4c9308adfa560c30322964185bb8eeaece4b4908719f1f2336042fd057f817ba2425afb572ac83ee1039a4fb5d98590c4c1629351aaefa00adff1c4836474282c8ad060b912a5ee36560330ae47a50b8622c1630c46de251afdb8729b4156d0cb8a92b0ca4a589b3de92a0361d8f40fe586627a137e058e181bee265319e43b9f20d90606764da2babb2b81039faedc3965f9e2cccbcc9904cc37bf390cbca57c10f0bd731c70feb04e109d3803c2045ed7d42c0e13d35e2f5a958e70ca147a1416ff5bc2d80145fcea6de96e3803854996540330e5d07c91799a53f327e26ea7ab227533da28e314b2b6453b16c70337fa7317b432ba547415f2571465bf5725adcd5b30bf3e301e706980b73b0b730329fbbba0ee8793960f5e05b43bc6f901656447449d251a647489077f22ded73b0383339304a2dc1356cfbaa4a13aff6537b3ad5f7a5bf0457bf4bbe7e93517ec3300581f0240171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5076a750b978c2c22cf8056a177f7f4a4300581f024f7a637a645ad90208b398ea2a22d1cd25916b6f69c0696798ee29f5e0a2481d3c86448fef6fce02190220005820038f84db18e8d6f2db55d6e47ce8e1672a17fc5b611ce25f1a663f9cfb9311305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003f53e15d04f89389b7873468fcb4255680230ef15ff36cffee84c200844cb105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021950020350a4d037fbdd0c0fdfb49ab14c6bf966f93569f2628f153911a9615404411adf0219ffff03c33230f164ce97d081a61f5525d469d7ae1ab71a1521a3716cbf357b3f16eb3103f741aced1bc831503a2080428017cc1e641c821f2d894300c34212dcb3b5bedf03f40eec2adeaf09b296c90ce70ee0a945062093f0ef802ca06ff54d40d85139ae03760dbc3c2bd07474f79f389c14ea626ff9c4e033d82a0f2ae2944b00ca75ea59039822356bb06450d24a7e9d4c3d22b17add8a374916f388c2167e45b0212fc5da03915e4047413f2c4329ca9d65a285ccb438f0195240fb17565a8b207a0170a3840339a7bb160d02bcc3578b8c10b1238740ff1bd8a8955364a22c1f02ce14c330ca03e49bdef3f3507081f6b9e4248bd5204011c56658bcf9c49b51cac120cc7cb78403b06c5814a164c914e1db8a53d21ad9c34d486bd1eb367d04a9f643462b94650900582003626ee70efa382a46fab72feb1bbaf5e56bccafe45c27131e3d2511023ffb005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200352a9cc20aa1dc4ec54179637ec8d4de38afe53bb0344a2a0bd7dbe4a52e2404404d15e4a00582003cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20334d98810fb4ceb572e4a9dbeda5c73134c8c6cf678827584cff479d47819eb62005820034c0824bf06cb19078f44c3104e3d507eea84679608f18c29ca95cfd55869405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003e58a5343d532e038472833cc73ffe02d5075ce4ae0318e6d55222835263820410102198361035cb388c962d19737771dda0bac31b45184ec9821bcb21dd54521d787989327a90392689ed9664a90fa687b08ff75867b1328044c173643c404bf77c36de4eafa810300377993c82adf5362830ad765c033ce6083a4fed78e295cc4cb2b383cbad67203b879851b07f83e4ec4cb1051ab59fb5596edb8e8763b8ba713c3dfb9f39daa3903e719e854486e66f531e6f94b5e28a4002de061a75d1931a7052a2f7516f259c4034958afeb0b71d22bc5a0e8d90301fb4bdb6eec0254fe6f6f6152439814e00f47034c5e60139b92fa3086389ef45d03c6b4661813e5cbaeb3dfef970f8688711ba303cca7ce65364afd8a225b4a1407cc77b2c5667d6bf1e42dcd7943be58d73e8d1803649fa00a61395c256e10d64bbbeb0596c7b0d386294f3754299e02c41c370bc50219ffff03e00d81303518b3cbf9e802ec8b10c55b49f34f0dfb63f54cc5908ff516894fca037a13d06ccc5ed019a9f7709431399a18d96369cf70a44f650a4c4ab6c60b93ac0314d65a52c3c7cf558fd6f9e8b3fb1fe29b636608419af6cbcec61b2c5e7c8e9d036a6f3324af3ef2661088d1f49c0aa4f8d3bfea97d0c86d8809ecb894a8ce0c6b03db7536afdfeed903aaba6caa3f29bd2977594f65a572b2018d76218727971f6803b2b23152e78cac7d250de725a928614075fc214213857f46d2ac61f96ada7c6003724408fa6f634f29a10bc0f0b632bb336f2047ec70d3232be66bd8187dfd08660058200322acc5fc9f9f5240f0bd16f9cb970058597e41a00f743ec36942be125523405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003ff3abad47a4f83fe96236940ccc8c0b2511eec3ce0705d5031d96756e112a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02f6e0233cd5effeabbe33e142aa571edf53b5b077127c91a56703c7d6092144a272d11c00581f027bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a85347d12562491778b357e42a8ef9c7275eac031f021904800354411b8ddf845f97d1e0298cc9e770b8d7b0a024a0c15fb78e314a8efe7d34560058200353504dd588833887a5004ddbfbd1f1a26ca7a0aac9f08adb2301f6125f27105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200329b845a5bebe99a877301b88ce80fb56cb114a45639838455ab4d2c79035b04423b99e12005820032d3395d308d298702f2e1b847687e385e2605e042ef5b62a566fecfb86e6d04102005820034c4002437669a916e8f9648fdca254341eccc009759393e0c61dc9f4c2fd10410100582003fcc67c2da855fd31dd8a1325d2f24f1d59c9ba39965824ab7fe72cebf6bac041010219736c03b7196e26d36a10381d7de9a33cc644424ade8cf090cc03926d0e42f73ed8b90a0321bfc9de20ab8d795c99d22ac8b0f45e0b766db2ab853d0fa68058f75b9079e70380a348b4788c54ef973da48c2d414e0d220c9c4dcdc9558e00c440c28b27653103f4edbd4efe332359475bc9344cee2d872b70c2e3fe4b064a322330b80fa6ae1c032f8a5a2f2aa77ec520994a26a7101f711fd90934ac43c9239401be60c1c803c4033c3477a5f49fd7d3f3ab425e711abdbcd534148e3e69be71580ebfd3abed26530343a77e23027ddc99003c08ccb1a8450ab7883e1f2ed1b0d4a3697a2cc783053203220834f9fad623d859ac4b4afb6b3fda738741d350986aa5be9e7da67a799fb80386f0cb9aaa324924847e60b67246a7c76cd8bd6a3181cd8e1915d1511c446b4e0219ffff031c9aac1708acde4d0367a1aa234ab07b27e30b005f34933d6e3771b184684f8a030ab08dddb45f9a9c0431d16d30c286c993d82553ad91b868f617e6becb91457103abb0d40190f24a74f942dd1bfa6aeadbd64d78bce91522621e014cc8ffb816f303dde2265e6daa62f9c3bf60a8c782540680160c93696a419590066e6dab64ade203970ebe103bb4b729e86889179f8e1bb10e6b54838e304964225335afa71052bc03ddbc49fad12f83deb971a8f807770646fb28127560a0712eb2ab298ab11a1f5503cf45de6ae1ab41bcc5ec80a0a5a2739861ff790462fdd17a0ffdb9e3748e6ccf03d9fbae604ce048dfc1c4b4dad965bf5e2447ee7be19cb56f5c2fbb191fa893df03f64a86ace7070f4bce35d87481185193415fa16b7863657ab7a711856c1c7b480375d0e483001443e51f12319ff9d9fe1af0784ed3cd5743d029746d8a236d6bc8030b6f16b52c050a3c348233ca376022922b74613288e5d48e42929809f6ddf65f03782ed4b687692b194c728d0e8266f33e6ddd08cdd5b2b3e8ea6b17f10e27488b035bc90ae5e4f520797cba256b391dd5e18ebb0657974f1998bdc9bba13762297f038a7e3a14fa2f35aac8a49a748278b4f93c91216c0b0b85100db4754351269f9003cac351a25d256ac9c33cf6aecaaf70718f8b38837071d4742063bc893156e69200582003f8a8b1f4770f92aa4757c489264004734add1a4d9ced96e622ba755d2772605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820038aad37fa830ead099733f854e7761e192274d57bed449adf150c9434d8c3c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff031cce5a553f6e8456113f718c35812dcbd1b2f3c431b4b620d45fdfa2e7ee2a7c005820030bef416d4a7fe5a505d99471a3852981187eebd17b521d3b07e51999f5e4705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c704101005820032b06354cb0516ebd6e200f90877e54b151c2a5d1b6b51eab2f8f97b868ac805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200351f30b274fc4278e37af7e819f1c664d007e73d86e76620ca6bb44254730f05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003a8584fbd49d585d477f7f6aee4a8c8b227e2eefab3a150d9b7ffa438428d605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219545e0219ffff0327a9766502712231c635ea957c482f4e7e4109f4357ac416f9ed7be11af6028b03bbbbf4f2c1e726419e6b171aa645d521ab80390a0e06e7541b0778a363836173034844c10c21cc2dc8dcd45f49590bb6296a4ee3d91235e67d6ec4f5a4eea4a150005820029ac88add30dff77a57100c9f804b968f4247d2c53607c2234010576c28bcb65820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003c566393cc9bb3835f572dd8def838d46bbb37fef3b9cb6e273a70722ee12905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200354fc1e293f548080ed52a8d3954611a88ce5f2ca5e3cd449ece32785bce9505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0323f0c4afb1b14e2e8d2cc21e34af783f79834e2b052a42192c215d822954c08200582003fb9639f22c3e09c5e603623e3e6d6e9ca547706348913deee731ef47ba28505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820030bc5a0e47d7fedd40109cb80238439adb189cb4230a18bdb48da4dbc6e63905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02ea93d66103a5d9c5a950a591158b8f0f15965e22df5cecb5a0034bdb60955820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5dab00000000000780728a85bc216b6e00000000dbd4fe90af9d4fccefdf00581f024016a2445d517c0a6caa3fce1b5416dcba9a782867fe9eab2bba407b77275820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021904900219845c03cada4c92302a44d94f6cfb140a9aea2151ad62b9246aec340c9b6274a64639e7035cb79dbc6c23d146a6032eb2f7b250a900e7c9a28f32a682febbec160472b857031bc71d290c3f6757809a11cd6c27eee2e11dbc76a29cf551bf192d12575d91cf005820032222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f054993864e43caa7f7f12953ad6feb1d1ca635b875f005820039e3d3778666cde5a3d2fe8ce00d5b465621a5ff7045f4d2767b0233355a9f0489320911471b22e6f0219803003bfda99886a22fbe96b2add2b3cccef1eb9f6a7801b0b6067301a5e001ab0d3de03bc447fe726cda578e776fac1991bd2c61842ad359a6c5468bcbc736e3152d000036849903a5a8b57efe82a24069e9fa24d19e9b5c9a71df5c52485d3b2db9ad9bb0367830638bdc5a34a0737f70e13cfa74431f58ab8a7b815cb13a627ad644f0b6c00582002d54e10d240ea914fceb0352ff34287936a27c814d984f2478d8c60450a2a655820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03aa0225a4a4e0f913d1ef860f47bae066220e95d56598050e5cfea3cea26b4a7d0366c7f10baf86c5d5220373168025264947f9fdabd40eadb9e50399846f03431103e2619f36a6b0c413ad85ef95d353e414c34903e706dac63a0fb51c9916732d5703854d3180bb64768e2ca0a48a018dbf09518f262c6f81811f7472b09ea5134ec80219ffff0219ffff05581d0244c6e97fdd9c625af630571e7ef24d6a21e56c8a8904ccb825857fa70701192c1d0219801505581e03a09621b44675ec8f4e0ee96c344647d5bef1700030da5b74000296b240040205581e03487638ce9838588b84a55394a347f3da51134473d7b9f86b7276461940041818031b0d2265061a823736e597e2c49e4f3c8630095c75384814457bcfe86ae51475036c667c9515ef02634aebfb7890d27ab9f1260f7c9b68924987f665850fa6f53205581e031fd2b863180ddbc981b63e335e31ffe54eb1b7e73a0f06b90a5c0e8680040205581e038e9ae6393ae2cded59b8cd1470e9f3b7d95c754d2d0b498536f6af57a00c01470262b4e344e60003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03f702523fbd17422827fbc42ca26f7270494f3a5f759d3f0fe40ec8932007011bffffffffffffffff05581e03306b506a0f567ccc82c38f87d92f4c73a8c801ce0788b00da01247b270040103742083c569dd0ae6fdd66d3a647ba35f5b9c02db17a3c49de16fc4c80f6502a103ee34157c5ee9fd4ebd9b920912d4bffb0eb8b89a8a0ed49957c0e3f1b0ebe08905581e03e9cee74eb81f370525243824e65c64e2483c791a45fa25da60ba73717007011bffffffffffffffff03677bc5d3b6795ffc0a38704395e348f017330e2ee9f2ac5a0cee410b9c9c004c02199f6703f8326302db79453f4610691568d41b2f676eadfcd140fbb285b386f20db7b5ef0219ffff03aeb49cc0bf2082b5e1224816b60d8b7ab0917eb87fa3d128a084d5bb80ab20c903604aa163a91eda0a211d55209b44a3ce4b40a97410ce50780faf1f2a75c2d2030377a1a9685381e3d1fcf6bf1e256eba9165cf231e0f83961d28a820ca27573b8c0357c986be8ab7bd1a688b75a9f189c2a3035af8fc922bab52548e7f4f856b71a90219ffff0219ffff0389869132fba5774e0cfdd71b9e357e9af2910f9c283bfa495f4c89ac9c968310031bfc42eab4af220728af2bed3ff00a85c739f25473b02676ec9db5537ba7b3340219ffff030fb7623b4777277a53b74ffa29c7f6959024d4091e368da434edcbb90798d2af03a85bc13d8049c4762f42a862f8168aa99f46557ab5eca52c546b8949ad46747e030f5c6d4b221db22b866fe223557e006bcaa8c70cac83eb7c04f6a720b2c47fbd0355a27277b19f797602d656b137f73248b219c6344bf89a201c954faf2001802803dc0f4bc35a1f2b1539422f08764dec5b678df700712a81053c03895261d7cf3c03f4db8088b20467c1f4947731b16eeb06f69f1966f862fcb0f5582c375d479d87032dfdde301d58a1d81d05bf06eb5c1bf10e4109c629f6d56216558477dcd901f403bee5756bb96ee4eb64965518ead6d638190a13b8d2821efa9441aaeee88bf0ca0363788f342d8d973a3f3d348981f532a4ffa42c526e53552783b63ea8d1443d20030077f5fcdb729a18655d8c247f6bd222d7d1cdaaf40f582da2de18096244649d0359e99c4cc0e8c93ac8102c83fd731b0b808018ea4568c12602666d76a35affe0032d8e3e016068ec71e551f97803535a4e2abb7496abd1a8763bb4eb6e205420f5039dad8d22730d6d2d81ed0878877f047b39c4403c0ec7da5d604c6a7472b16d2e037b10c71a85f51c5dc8c33eceeb8ae8f4e773131da0746fcd3bbc639bada91801031c527f1d2f33b16ebbf488174a93cfc6779273d88e202b2974a07fd23de72a050353b2d60ded3d546b17f032956421cf56b754ff08abf2343c1a2f2f24dc59ceb0033df2309463295cfb0b634199c27f8150063e799b7e4f4db848cb5a39fea8db8703a97b5f5ad33c99b803ac73cb273a276736b0adde557178c33a97705c7e1c7d1903274e41c14f941ec901a549de078db73558595d2e4d4c33e76756a3f32911922d03396265de463097f43e0ae5793d05dca10693a8bbe0b1e1ab7ce61b196a654a8703e670da78e44df3d72495ba17c8ec66701ac8ac9ed89b441a25513e25bbf7612503781d310cbf124dc708fff9931c51899f7ef4e90767c4a17bcda1f1a192a8e39003ada5557aa2a88cbbd7c9f36188952af48d4c5e38c224acfe7879f6be1ea6e726032631d3efe78e336ebf454b884c5f60683ffed7e7e286191781867d2463238e2003f07f4b462cb4d089013fcb3ae0cd4ddcc5625bd59553a93dc1651b4b3f5ccf2403f7d5c499919d5346defc21dd0fde2cb3d02b7321e0724405650b5dc220f8bd5f0319442f6df2fa68cb43ab5e836fa66df20133ccd721f14574fc9bbf97a0f0553c03681cc385f42cbb6c1ad85bb1b0976a3db0ca9bb581e92739c72123d9e897a4fe030ca87d23d9d962a449d0ac843ea58b14c6618f51764e5a0641046e3c744a875c0383f13a721a0f53b651b6ea131130e7cc9a5a929986e016841eac9a67198f7e2f03cd47d4096c3ab0ec02876c5f24f37c6ff6d6f2836445e3e6393cfe83af28daea038d1f000aabf7fb439c3fd69c2d8b41b50d8ea74e94f36a3f726bb3622218c63b031a969d207844c84f5270005a6a50c68c09e91125a93d99117ce10b8523a2db24037a4abec028abe512b32a327a85dfb11017d6fcd62cb841a4320308992c450ccd0316757b74b9404b4756c01767d06b563ad623fabeaae445139945fc9ca5bfc80103cefc0ba830189a5fe771048bc5dd493dca4300c62820fa979c235be06caa8c3103342f38333c151c42089e9fdb2db5cb23ee9a2ccdc0664801115fb2afa58544a8031e6385914b2a72c27d2ffe28f1a0dfcfd7c91dec841f4d8bd819a9617ecafeba03a2ade4a7735fb3af57b59bb71c506d26a6fb92ae192d8c58f8f64e06aac3b2a503d39cd0d9bf5818f8b2ccaa08a934cb58b0fb329db3a0232296b74546da2b3f15036657ab1f70a7e7da31316c3eedac95b08f449f1f9bbd7144ccdc020275684b6103cdea66e99ab1f6e581cef0b610a1e296a736d558604f808e63abcee9fd46ee69032a5779ce766dd1fe9d2962e90d9eebf847aed6cac58eed3b789025648d63b0de039d893306086ab2f3214643e7b3b7065ea52eaf7eee392a3c7f7a11b3f2c723b603fcc586e6d7c64d3c4e704b2bed6e42574460a1da8b79fcd8ebaba8875381377f032f2e028eb16e91358029b256824f0fd3d2ce5914422f0b21e7564ae277cf6fcb03a5f9cbde19780e46549bcd802be5743c57e8828b9a63605ebfad69b8ae1f26ce03762480d058368da2136b9c00271e8dd67312daf9876ee4d74b9bf6f590156d2c034841ee7858693c3a4c022c799aa00aad42fb8f34ee781efa5aa90a69ba80f24105581e03c48d48b9856010c9fc0f81d2c996d1f38306f1d4d3bab1a9d78cc7c8b00c0147029602dd47ea000310ded103920083d330b14d0143423a1a08181b96218665cb61325a6b82a01df105581e037756db131297bf060834404998ebea185a4da017584f5cc1ce9b48c4d0040105581e03f2510d5103560190a61967ba314cf0479e518fac36fc9bfe1f08d434b00c0247010f0499d32c7005581e035bef1dd2bd2bdb90da6c50ed1323731b4806bc37e15fb85d1282371e00040305581e030b95ef9f2ae1f83397b513598e29b466797aad696a33d456f3980e5f900c014703639b06357232038533f0c91772c98b8d82a8228f38aa04024141430bd0945987d24dd63f119c4a04593f5160806040526004361061010d5760003560e01c806395d89b4111610095578063b386eafc11610064578063b386eafc14610286578063bf123116146102a6578063d9caed12146102b9578063e06b94b8146102d9578063f2fde38b146102f957610114565b806395d89b411461021e5780639ddf93bb14610233578063a289dc1f14610253578063ab373a2f1461027357610114565b80636d1e4d6b116100dc5780636d1e4d6b14610194578063703ab0ee146101b4578063715018a6146101c75780638da5cb5b146101dc578063921e6709146101fe57610114565b806306fdde03146101165780630a7b09a4146101415780631888f4ab146101615780634782f7791461017457610114565b3661011457005b005b34801561012257600080fd5b5061012b610319565b6040516101389190613431565b60405180910390f35b34801561014d57600080fd5b5061011461015c366004612e52565b6103a7565b61011461016f36600461321e565b61073f565b34801561018057600080fd5b5061011461018f366004612e29565b6109e5565b3480156101a057600080fd5b506101146101af366004612ee9565b610ab3565b6101146101c2366004612f90565b610d31565b3480156101d357600080fd5b50610114610dbf565b3480156101e857600080fd5b506101f1610e0a565b60405161013891906132f9565b34801561020a57600080fd5b506101146102193660046130ef565b610e1a565b34801561022a57600080fd5b5061012b61118b565b34801561023f57600080fd5b5061011461024e366004612da6565b611198565b34801561025f57600080fd5b5061011461026e366004612ffa565b61138e565b6101146102813660046130ef565b61166d565b34801561029257600080fd5b506101146102a1366004612ffa565b6118e8565b6101146102b4366004612ffa565b611c70565b3480156102c557600080fd5b506101146102d4366004612d6b565b611f0f565b3480156102e557600080fd5b506101146102f43660046130ef565b612087565b34801561030557600080fd5b50610114610314366004612d51565b612328565b6002805461032690613eb4565b80601f016020809104026020016040519081016040528092919081815260200182805461035290613eb4565b801561039f5780601f106103745761010080835404028352916020019161039f565b820191906000526020600020905b81548152906001019060200180831161038257829003601f168201915b505050505081565b6103af612399565b6001600160a01b03166103c0610e0a565b6001600160a01b0316146103ef5760405162461bcd60e51b81526004016103e6906138ab565b60405180910390fd5b6001600160a01b0388166104155760405162461bcd60e51b81526004016103e690613b43565b6001600160a01b03831661043b5760405162461bcd60e51b81526004016103e690613a9e565b6001600160a01b0385166104615760405162461bcd60e51b81526004016103e690613874565b600084116104815760405162461bcd60e51b81526004016103e69061359c565b6040516370a0823160e01b81526000906001600160a01b038a16906370a08231906104b09030906004016132f9565b60206040518083038186803b1580156104c857600080fd5b505afa1580156104dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105009190613206565b9050808811156105225760405162461bcd60e51b81526004016103e6906137a4565b61052d89858a61239d565b6040516370a0823160e01b81526000906001600160a01b038916906370a082319061055c9030906004016132f9565b60206040518083038186803b15801561057457600080fd5b505afa158015610588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ac9190613206565b90506000856001600160a01b031685856040516105ca9291906132b2565b6000604051808303816000865af19150503d8060008114610607576040519150601f19603f3d011682016040523d82523d6000602084013e61060c565b606091505b505090508061062d5760405162461bcd60e51b81526004016103e690613687565b60006106b5838b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161065f91906132f9565b60206040518083038186803b15801561067757600080fd5b505afa15801561068b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106af9190613206565b9061248a565b9050878110156106d75760405162461bcd60e51b81526004016103e6906137d0565b6001600160a01b03891630146106f2576106f28a8a8361249d565b7fb990db8edf38c10c19dfa3bda4a2ba7141712147ef8aaecf20e3b6c3276a3ea08b8d8a8d85604051610729959493929190613bde565b60405180910390a1505050505050505050505050565b610747612399565b6001600160a01b0316610758610e0a565b6001600160a01b03161461077e5760405162461bcd60e51b81526004016103e6906138ab565b6001600160a01b0383166107a45760405162461bcd60e51b81526004016103e690613a9e565b6001600160a01b0385166107ca5760405162461bcd60e51b81526004016103e690613874565b600084116107ea5760405162461bcd60e51b81526004016103e69061359c565b6000871161080a5760405162461bcd60e51b81526004016103e690613729565b478088111561082b5760405162461bcd60e51b81526004016103e6906137a4565b6040516370a0823160e01b81526000906001600160a01b038916906370a082319061085a9030906004016132f9565b60206040518083038186803b15801561087257600080fd5b505afa158015610886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108aa9190613206565b90506000856001600160a01b03168a86866040516108c99291906132b2565b60006040518083038185875af1925050503d8060008114610906576040519150601f19603f3d011682016040523d82523d6000602084013e61090b565b606091505b505090508061092c5760405162461bcd60e51b81526004016103e690613687565b600061095e838b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161065f91906132f9565b9050878110156109805760405162461bcd60e51b81526004016103e6906137d0565b6001600160a01b038916301461099b5761099b8a8a8361249d565b7fc8854de35570b6f6099dcb76f9222d8cc66e4a9663c16a11d9cb1c9fe1f80fe58b898c846040516109d09493929190613d54565b60405180910390a15050505050505050505050565b6109ed612399565b6001600160a01b03166109fe610e0a565b6001600160a01b031614610a245760405162461bcd60e51b81526004016103e6906138ab565b6001600160a01b038216610a4a5760405162461bcd60e51b81526004016103e690613874565b4781811015610a6b5760405162461bcd60e51b81526004016103e6906135d3565b610a758383612583565b7f566e45b1c8057e725bf62796a7f1d37ae294393cab069725a09daddd1af98b798383604051610aa6929190613331565b60405180910390a1505050565b610abb612399565b6001600160a01b0316610acc610e0a565b6001600160a01b031614610af25760405162461bcd60e51b81526004016103e6906138ab565b6001600160a01b038716610b185760405162461bcd60e51b81526004016103e690613b43565b6001600160a01b038316610b3e5760405162461bcd60e51b81526004016103e690613a9e565b6001600160a01b038516610b645760405162461bcd60e51b81526004016103e690613874565b60008411610b845760405162461bcd60e51b81526004016103e69061359c565b6040516370a0823160e01b81526000906001600160a01b038916906370a0823190610bb39030906004016132f9565b60206040518083038186803b158015610bcb57600080fd5b505afa158015610bdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c039190613206565b905080871115610c255760405162461bcd60e51b81526004016103e6906137a4565b610c3088858961239d565b60004790506000856001600160a01b03168585604051610c519291906132b2565b6000604051808303816000865af19150503d8060008114610c8e576040519150601f19603f3d011682016040523d82523d6000602084013e610c93565b606091505b5050905080610cb45760405162461bcd60e51b81526004016103e690613687565b6000610cc0478461248a565b905087811015610ce25760405162461bcd60e51b81526004016103e6906137d0565b6001600160a01b0389163014610cfc57610cfc8982612583565b7fa17db8f15af02c582aa3ecb40e93f5aea888c6fd35c67072b883723dd38a06f88a8c8a846040516109d09493929190613d02565b60026000541415610d545760405162461bcd60e51b81526004016103e690613b0c565b60026000553480610d775760405162461bcd60e51b81526004016103e69061383d565b7f4ff54f2cea3d4bf1bd0b862f9523caf146060016e04133efed42fd0cd461ef3c81838686604051610dac9493929190613d78565b60405180910390a1505060016000555050565b610dc7612399565b6001600160a01b0316610dd8610e0a565b6001600160a01b031614610dfe5760405162461bcd60e51b81526004016103e6906138ab565b610e086000612615565b565b6001546001600160a01b03165b90565b60026000541415610e3d5760405162461bcd60e51b81526004016103e690613b0c565b6002600055610e5d81610e57610e5285612667565b612704565b9061271d565b6001600160a01b0316610e6e610e0a565b6001600160a01b031614610e945760405162461bcd60e51b81526004016103e690613650565b6000826060015111610eb85760405162461bcd60e51b81526004016103e690613a1b565b81516040516370a0823160e01b81526000916001600160a01b0316906370a0823190610ee89030906004016132f9565b60206040518083038186803b158015610f0057600080fd5b505afa158015610f14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f389190613206565b9050610f4e836000015133308660600151612741565b8260600151610f878285600001516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161065f91906132f9565b1015610fa55760405162461bcd60e51b81526004016103e6906138e0565b610fbc83600001518460e00151856060015161239d565b60a08301516040516370a0823160e01b81526000916001600160a01b0316906370a0823190610fef9030906004016132f9565b60206040518083038186803b15801561100757600080fd5b505afa15801561101b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103f9190613206565b905060008460e001516001600160a01b031685610100015160405161106491906132c2565b6000604051808303816000865af19150503d80600081146110a1576040519150601f19603f3d011682016040523d82523d6000602084013e6110a6565b606091505b50509050806110c75760405162461bcd60e51b81526004016103e690613687565b60006110fd838760a001516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161065f91906132f9565b90508560c001518110156111235760405162461bcd60e51b81526004016103e69061395c565b7fcf42d78bc992c96220dfff0acd1dd10211a68fc1a55b9ac58a4ad18fab4d2a5d86606001518760000151886080015189602001518a604001518b60a00151876040516111769796959493929190613c57565b60405180910390a15050600160005550505050565b6003805461032690613eb4565b600260005414156111bb5760405162461bcd60e51b81526004016103e690613b0c565b60026000556001600160a01b0385166111e65760405162461bcd60e51b81526004016103e6906139a9565b600082116112065760405162461bcd60e51b81526004016103e690613520565b600080866001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161123591906132f9565b60206040518083038186803b15801561124d57600080fd5b505afa158015611261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112859190613206565b905061129387333087612741565b6040516370a0823160e01b81526000906001600160a01b038916906370a08231906112c29030906004016132f9565b60206040518083038186803b1580156112da57600080fd5b505afa1580156112ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113129190613206565b905061131e818361248a565b9250848310156113405760405162461bcd60e51b81526004016103e69061347b565b7fff04d689bf84fb889ac85790b7ca000076f5825d54cb01b6c030e6f55296a2ce8589868a8a604051611377959493929190613c0c565b60405180910390a150506001600055505050505050565b600260005414156113b15760405162461bcd60e51b81526004016103e690613b0c565b60026000556113c681610e57610e5285612831565b6001600160a01b03166113d7610e0a565b6001600160a01b0316146113fd5760405162461bcd60e51b81526004016103e690613650565b60008260800151116114215760405162461bcd60e51b81526004016103e690613a1b565b60208201516040516370a0823160e01b81526000916001600160a01b0316906370a08231906114549030906004016132f9565b60206040518083038186803b15801561146c57600080fd5b505afa158015611480573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a49190613206565b90506114ba836020015133308660800151612741565b60006114f08285602001516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161065f91906132f9565b905083608001518110156115165760405162461bcd60e51b81526004016103e6906138e0565b600061153c620f424061153687600001518561289b90919063ffffffff16565b906128a7565b602086015160c087015191925061155c91611557858561248a565b61239d565b600047905060008660c001516001600160a01b03168760e0015160405161158391906132c2565b6000604051808303816000865af19150503d80600081146115c0576040519150601f19603f3d011682016040523d82523d6000602084013e6115c5565b606091505b50509050806115e65760405162461bcd60e51b81526004016103e690613687565b60006115f2478461248a565b90508760a001518110156116185760405162461bcd60e51b81526004016103e6906134e9565b611626886060015182612583565b7fddafc3cde5a2fb54af3cc7d67ccd44874cf4c6129f9f90c822327a26ddb321f988608001518960200151838b606001518c60c00151604051611377959493929190613b7a565b600260005414156116905760405162461bcd60e51b81526004016103e690613b0c565b60026000556116a581610e57610e5285612667565b6001600160a01b03166116b6610e0a565b6001600160a01b0316146116dc5760405162461bcd60e51b81526004016103e690613650565b600034116116fc5760405162461bcd60e51b81526004016103e690613983565b8160600151341461171f5760405162461bcd60e51b81526004016103e690613760565b60a08201516040516370a0823160e01b81526000916001600160a01b0316906370a08231906117529030906004016132f9565b60206040518083038186803b15801561176a57600080fd5b505afa15801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190613206565b905060008360e001516001600160a01b0316348561010001516040516117c891906132c2565b60006040518083038185875af1925050503d8060008114611805576040519150601f19603f3d011682016040523d82523d6000602084013e61180a565b606091505b505090508061182b5760405162461bcd60e51b81526004016103e690613687565b6000611861838660a001516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161065f91906132f9565b90508460c001518110156118875760405162461bcd60e51b81526004016103e69061395c565b7f0c324eae1f3cfaf7111beaa969c3293dae7805cc567151a849ee30076053003b85606001518660800151876020015188604001518960a00151866040516118d496959493929190613db4565b60405180910390a150506001600055505050565b6002600054141561190b5760405162461bcd60e51b81526004016103e690613b0c565b600260005561192081610e57610e5285612831565b6001600160a01b0316611931610e0a565b6001600160a01b0316146119575760405162461bcd60e51b81526004016103e690613650565b600082608001511161197b5760405162461bcd60e51b81526004016103e690613a1b565b60208201516040516370a0823160e01b81526000916001600160a01b0316906370a08231906119ae9030906004016132f9565b60206040518083038186803b1580156119c657600080fd5b505afa1580156119da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fe9190613206565b9050611a14836020015133308660800151612741565b6000611a4a8285602001516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161065f91906132f9565b90508360800151811015611a705760405162461bcd60e51b81526004016103e690613a52565b6000611a90620f424061153687600001518561289b90919063ffffffff16565b602086015160c0870151919250611aab91611557858561248a565b600085604001516001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611add91906132f9565b60206040518083038186803b158015611af557600080fd5b505afa158015611b09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2d9190613206565b905060008660c001516001600160a01b03168760e00151604051611b5191906132c2565b6000604051808303816000865af19150503d8060008114611b8e576040519150601f19603f3d011682016040523d82523d6000602084013e611b93565b606091505b5050905080611bb45760405162461bcd60e51b81526004016103e690613687565b6000611bea8389604001516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161065f91906132f9565b90508760a00151811015611c105760405162461bcd60e51b81526004016103e6906134e9565b611c23886040015189606001518361249d565b7f3394026ba6bdafd66c468801a6b3896d0fdc2bd26c954eec3f215c43e42069d788608001518960200151838b604001518c606001518d60c0015160405161137796959493929190613ba8565b60026000541415611c935760405162461bcd60e51b81526004016103e690613b0c565b6002600055611ca881610e57610e5285612831565b6001600160a01b0316611cb9610e0a565b6001600160a01b031614611cdf5760405162461bcd60e51b81526004016103e690613650565b81608001513410158015611cf7575060008260800151115b611d135760405162461bcd60e51b81526004016103e6906138e0565b6000611d37620f42406115368560000151866080015161289b90919063ffffffff16565b9050600083604001516001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611d6b91906132f9565b60206040518083038186803b158015611d8357600080fd5b505afa158015611d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbb9190613206565b905060008460c001516001600160a01b0316611de484876080015161248a90919063ffffffff16565b8660e00151604051611df691906132c2565b60006040518083038185875af1925050503d8060008114611e33576040519150601f19603f3d011682016040523d82523d6000602084013e611e38565b606091505b5050905080611e595760405162461bcd60e51b81526004016103e690613687565b6000611e8f8387604001516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161065f91906132f9565b90508560a00151811015611eb55760405162461bcd60e51b81526004016103e6906134e9565b611ec8866040015187606001518361249d565b7f56bb812dc2ad56c7b5b59dec48dfdf339b352a6a19e36f82f9ee40a631d6ffbe866080015182886040015189606001518a60c00151604051611176959493929190613d26565b611f17612399565b6001600160a01b0316611f28610e0a565b6001600160a01b031614611f4e5760405162461bcd60e51b81526004016103e6906138ab565b6001600160a01b038216611f745760405162461bcd60e51b81526004016103e690613874565b6001600160a01b038316611f9a5760405162461bcd60e51b81526004016103e69061392f565b6040516370a0823160e01b81526000906001600160a01b038516906370a0823190611fc99030906004016132f9565b60206040518083038186803b158015611fe157600080fd5b505afa158015611ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120199190613206565b90508181101561203b5760405162461bcd60e51b81526004016103e6906135d3565b61204684848461249d565b7fc744dfbbb7893a3d0c97d117fecc1b571791b125732aeca513b0c760cf65f1fc8484846040516120799392919061330d565b60405180910390a150505050565b600260005414156120aa5760405162461bcd60e51b81526004016103e690613b0c565b60026000556120bf81610e57610e5285612667565b6001600160a01b03166120d0610e0a565b6001600160a01b0316146120f65760405162461bcd60e51b81526004016103e690613650565b600082606001511161211a5760405162461bcd60e51b81526004016103e690613a1b565b81516040516370a0823160e01b81526000916001600160a01b0316906370a082319061214a9030906004016132f9565b60206040518083038186803b15801561216257600080fd5b505afa158015612176573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219a9190613206565b90506121b0836000015133308660600151612741565b82606001516121e98285600001516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161065f91906132f9565b10156122075760405162461bcd60e51b81526004016103e6906138e0565b61221e83600001518460e00151856060015161239d565b600047905060008460e001516001600160a01b031685610100015160405161224691906132c2565b6000604051808303816000865af19150503d8060008114612283576040519150601f19603f3d011682016040523d82523d6000602084013e612288565b606091505b50509050806122a95760405162461bcd60e51b81526004016103e690613687565b60006122b5478461248a565b90508560c001518110156122db5760405162461bcd60e51b81526004016103e69061395c565b7f147a709b2272c3a4dd779df2e0d8e395f7043e8e36c4d4cfbc8a21f9736011fc86606001518760000151886080015189602001518a604001518660405161117696959493929190613caf565b612330612399565b6001600160a01b0316612341610e0a565b6001600160a01b0316146123675760405162461bcd60e51b81526004016103e6906138ab565b6001600160a01b03811661238d5760405162461bcd60e51b81526004016103e69061360a565b61239681612615565b50565b3390565b600080846001600160a01b031663095ea7b385856040516024016123c2929190613331565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516123fb91906132c2565b6000604051808303816000865af19150503d8060008114612438576040519150601f19603f3d011682016040523d82523d6000602084013e61243d565b606091505b50915091508180156124675750805115806124675750808060200190518101906124679190612f70565b6124835760405162461bcd60e51b81526004016103e6906136b0565b5050505050565b60006124968284613e6d565b9392505050565b600080846001600160a01b031663a9059cbb85856040516024016124c2929190613331565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516124fb91906132c2565b6000604051808303816000865af19150503d8060008114612538576040519150601f19603f3d011682016040523d82523d6000602084013e61253d565b606091505b50915091508180156125675750805115806125675750808060200190518101906125679190612f70565b6124835760405162461bcd60e51b81526004016103e6906134b2565b604080516000808252602082019092526001600160a01b0384169083906040516125ad91906132c2565b60006040518083038185875af1925050503d80600081146125ea576040519150601f19603f3d011682016040523d82523d6000602084013e6125ef565b606091505b50509050806126105760405162461bcd60e51b81526004016103e6906139d8565b505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60007f74ab4fea15fda9e8fa75cda1e30aaa378d3ab31f019c9a0cd8e8e0b2135cd0858260000151836020015180519060200120846040015180519060200120856060015186608001518760a001518860c001518960e001518a6101000151805190602001206040516020016126e69a9998979695949392919061334a565b6040516020818303038152906040528051906020012090505b919050565b60006127176127116128b3565b83612976565b92915050565b600080600061272c85856129a9565b9150915061273981612a19565b509392505050565b600080856001600160a01b03166323b872dd8686866040516024016127689392919061330d565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516127a191906132c2565b6000604051808303816000865af19150503d80600081146127de576040519150601f19603f3d011682016040523d82523d6000602084013e6127e3565b606091505b509150915081801561280d57508051158061280d57508080602001905181019061280d9190612f70565b6128295760405162461bcd60e51b81526004016103e690613ac8565b505050505050565b60007f8381f2c9fede58a653c792ac5cb359514ac1059ebddc99f03817d7d43dd13050826000015183602001518460400151856060015186608001518760a001518860c001518960e00151805190602001206040516020016126e6999897969594939291906133cb565b60006124968284613e4e565b60006124968284613e2e565b60007f000000000000000000000000000000000000000000000000000000000000000146141561290457507fa2a5c78069edfda125b76590cc68193efd130e7db0e18b2b8ff22a90f46e6088610e17565b61296f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f867e3ea2df6cbfcf43f2a6624818423bf8d8116264a8cb9ad066c8da445c38b07fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6612b46565b9050610e17565b6000828260405160200161298b9291906132de565b60405160208183030381529060405280519060200120905092915050565b6000808251604114156129e05760208301516040840151606085015160001a6129d487828585612b80565b94509450505050612a12565b825160401415612a0a57602083015160408401516129ff868383612c60565b935093505050612a12565b506000905060025b9250929050565b6000816004811115612a3b57634e487b7160e01b600052602160045260246000fd5b1415612a4657612396565b6001816004811115612a6857634e487b7160e01b600052602160045260246000fd5b1415612a865760405162461bcd60e51b81526004016103e690613444565b6002816004811115612aa857634e487b7160e01b600052602160045260246000fd5b1415612ac65760405162461bcd60e51b81526004016103e690613565565b6003816004811115612ae857634e487b7160e01b600052602160045260246000fd5b1415612b065760405162461bcd60e51b81526004016103e6906136e7565b6004816004811115612b2857634e487b7160e01b600052602160045260246000fd5b14156123965760405162461bcd60e51b81526004016103e6906137fb565b60008383834630604051602001612b6195949392919061339f565b6040516020818303038152906040528051906020012090509392505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612bb75750600090506003612c57565b8460ff16601b14158015612bcf57508460ff16601c14155b15612be05750600090506004612c57565b600060018787878760405160008152602001604052604051612c059493929190613413565b6020604051602081039080840390855afa158015612c27573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c5057600060019250925050612c57565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b01612c8187828885612b80565b935093505050935093915050565b80356001600160a01b03811681146126ff57600080fd5b60008083601f840112612cb7578182fd5b50813567ffffffffffffffff811115612cce578182fd5b602083019150836020828501011115612a1257600080fd5b600082601f830112612cf6578081fd5b813567ffffffffffffffff811115612d1057612d10613f05565b612d23601f8201601f1916602001613e04565b818152846020838601011115612d37578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215612d62578081fd5b61249682612c8f565b600080600060608486031215612d7f578182fd5b612d8884612c8f565b9250612d9660208501612c8f565b9150604084013590509250925092565b600080600080600060a08688031215612dbd578081fd5b612dc686612c8f565b9450602086013567ffffffffffffffff80821115612de2578283fd5b612dee89838a01612ce6565b95506040880135915080821115612e03578283fd5b50612e1088828901612ce6565b9598949750949560608101359550608001359392505050565b60008060408385031215612e3b578182fd5b612e4483612c8f565b946020939093013593505050565b60008060008060008060008060e0898b031215612e6d578283fd5b612e7689612c8f565b975060208901359650612e8b60408a01612c8f565b9550612e9960608a01612c8f565b945060808901359350612eae60a08a01612c8f565b925060c089013567ffffffffffffffff811115612ec9578283fd5b612ed58b828c01612ca6565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a031215612f03578283fd5b612f0c88612c8f565b965060208801359550612f2160408901612c8f565b945060608801359350612f3660808901612c8f565b925060a088013567ffffffffffffffff811115612f51578283fd5b612f5d8a828b01612ca6565b989b979a50959850939692959293505050565b600060208284031215612f81578081fd5b81518015158114612496578182fd5b600080600060608486031215612fa4578081fd5b833567ffffffffffffffff80821115612fbb578283fd5b612fc787838801612ce6565b94506020860135915080821115612fdc578283fd5b50612fe986828701612ce6565b925050604084013590509250925092565b6000806040838503121561300c578182fd5b823567ffffffffffffffff80821115613023578384fd5b8185019150610100808388031215613039578485fd5b61304281613e04565b90508235815261305460208401612c8f565b602082015261306560408401612c8f565b604082015261307660608401612c8f565b60608201526080830135608082015260a083013560a082015261309b60c08401612c8f565b60c082015260e0830135828111156130b1578586fd5b6130bd88828601612ce6565b60e083015250935060208501359150808211156130d8578283fd5b506130e585828601612ce6565b9150509250929050565b60008060408385031215613101578182fd5b823567ffffffffffffffff80821115613118578384fd5b818501915061012080838803121561312e578485fd5b61313781613e04565b905061314283612c8f565b8152602083013582811115613155578586fd5b61316188828601612ce6565b602083015250604083013582811115613178578586fd5b61318488828601612ce6565b60408301525060608301356060820152608083013560808201526131aa60a08401612c8f565b60a082015260c083013560c08201526131c560e08401612c8f565b60e082015261010080840135838111156131dd578687fd5b6131e989828701612ce6565b8284015250508094505060208501359150808211156130d8578283fd5b600060208284031215613217578081fd5b5051919050565b600080600080600080600060c0888a031215613238578081fd5b8735965061324860208901612c8f565b955061325660408901612c8f565b94506060880135935061326b60808901612c8f565b925060a088013567ffffffffffffffff811115612f51578182fd5b6000815180845261329e816020860160208601613e84565b601f01601f19169290920160200192915050565b6000828483379101908152919050565b600082516132d4818460208701613e84565b9190910192915050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b998a526001600160a01b0398891660208b015260408a01979097526060890195909552608088019390935260a0870191909152841660c086015260e08501529091166101008301526101208201526101400190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b98895260208901979097526001600160a01b0395861660408901529385166060880152918416608087015260a086015260c08501521660e08301526101008201526101200190565b93845260ff9290921660208401526040830152606082015260800190565b6000602082526124966020830184613286565b60208082526018908201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604082015260600190565b6020808252601b908201527f5452414e534645525f4c4553535f5448414e5f46524f4d5f414d540000000000604082015260600190565b6020808252601f908201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604082015260600190565b6020808252601a908201527f4e4f5f454e4f5547485f544f544f4b454e5f46524f4d5f444558000000000000604082015260600190565b60208082526025908201527f46524f4d5f544f4b454e5f414d4f554e545f4d5553545f42455f4d4f52455f54604082015264048414e5f360dc1b606082015260800190565b6020808252601f908201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604082015260600190565b6020808252601e908201527f4d494e5f414d4f554e545f4d5553545f42455f4d4f52455f5448414e5f300000604082015260600190565b6020808252601e908201527f414d4f554e545f43414e4e545f4d4f52455f5448414e5f42414c414e43450000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601e908201527f43414c4c5f444154415f4d5553545f5349474e45445f42595f4f574e45520000604082015260600190565b6020808252600f908201526e11115617d4d5d05417d19052531151608a1b604082015260600190565b6020808252601e908201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604082015261756560f01b606082015260800190565b60208082526019908201527f56414c55455f4d5553545f42455f4d4f52455f5448414e5f3000000000000000604082015260600190565b60208082526024908201527f4d53475f56414c55455f4d5553545f455155414c5f4445504f5349545f414d4d60408201526313d5539560e21b606082015260800190565b602080825260129082015271494e5355464649454e545f42414c414e434560701b604082015260600190565b602080825260119082015270131154d4d7d512105397d3525397d05355607a1b604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604082015261756560f01b606082015260800190565b6020808252601e908201527f4554485f414d4f554e545f4d5553545f42455f4d4f52455f5448414e5f300000604082015260600190565b6020808252601e908201527f44455354494e4154494f4e5f43414e4e545f42455f305f414444524553530000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602f908201527f544f4b454e5f414d4f554e545f4d5553545f4e4f545f534d414c4c5f5448414e60408201526e17d1115413d4d25517d05353d55395608a1b606082015260800190565b6020808252601390820152720544f4b454e5f4d5553545f4e4f545f42455f3606c1b604082015260600190565b6020808252600d908201526c2622a9a9afaa2420a72fa6a4a760991b604082015260600190565b6020808252600c908201526b1393d7d1551217d25394155560a21b604082015260600190565b602080825260159082015274046524f4d544f4b454e5f43414e545f545f42455f3605c1b604082015260600190565b60208082526023908201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960408201526213115160ea1b606082015260800190565b6020808252601b908201527f4445504f5349545f414d4f554e545f43414e5f4e4f545f42455f300000000000604082015260600190565b6020808252602c908201527f544f4b454e5f414d4f554e545f4d5553545f4e4f545f534d414c4c5f5448414e60408201526b17d19493d357d05353d5539560a21b606082015260800190565b60208082526010908201526f04445585f43414e5f4e4f545f42455f360841b604082015260600190565b60208082526024908201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f46416040820152631253115160e21b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252601f908201527f46524f4d5f544f4b454e5f43414e5f4e4f545f42455f305f4144445245535300604082015260600190565b9485526001600160a01b03938416602086015260408501929092528216606084015216608082015260a00190565b9586526001600160a01b03948516602087015260408601939093529083166060850152821660808401521660a082015260c00190565b9485526001600160a01b03938416602086015260408501929092529091166060830152608082015260a00190565b600086825260018060a01b038616602083015284604083015260a06060830152613c3960a0830185613286565b8281036080840152613c4b8185613286565b98975050505050505050565b600088825260018060a01b03808916602084015287604084015260e06060840152613c8560e0840188613286565b8381036080850152613c978188613286565b9590911660a0840152505060c0015295945050505050565b600087825260018060a01b038716602083015285604083015260c06060830152613cdc60c0830186613286565b8281036080840152613cee8186613286565b9150508260a0830152979650505050505050565b9384526001600160a01b039290921660208401526040830152606082015260800190565b94855260208501939093526001600160a01b0391821660408501528116606084015216608082015260a00190565b93845260208401929092526001600160a01b03166040830152606082015260800190565b600085825284602083015260806040830152613d976080830185613286565b8281036060840152613da98185613286565b979650505050505050565b600087825286602083015260c06040830152613dd360c0830187613286565b8281036060840152613de58187613286565b6001600160a01b03959095166080840152505060a00152949350505050565b60405181810167ffffffffffffffff81118282101715613e2657613e26613f05565b604052919050565b600082613e4957634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615613e6857613e68613eef565b500290565b600082821015613e7f57613e7f613eef565b500390565b60005b83811015613e9f578181015183820152602001613e87565b83811115613eae576000848401525b50505050565b600281046001821680613ec857607f821691505b60208210811415613ee957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220fd9a0eb8afd08bb67eb36621a7830aff21b3b5f2751eab56cefeb524fc347c2264736f6c634300080000330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563041010058210305787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0582041676772656761746f722056310000000000000000000000000000000000001a0058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60542e0b3afb185bfb3ddf3b7c711955274fd6412666005821032575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0582041474752454741544f522d56310000000000000000000000000000000000001a0219181405581d02f0ed47ad685ac2e5982376e7780e8f99e83d58618684cd4f49e799bb0f014810bb66247c2e3b00193f5105581d02b336093ff2566d670c36640b875c7e445e0e215b4dafed0c5228a78f0c0246c8b3b974c5f80219010105581e03d7645600cd85a5c1d5125c573c21ba396eca90b7f3cae08ba8cf7601a004020219dd260219ffff031fbee40ce132cf778f5902d250f2f735e3448eb72dcfc4650288884158a730d6031ce771247247fa9e33a730a404bbffb094d6b4ee8553b455580ccdae9060e68b037d8af1c7168d82b0361c01588ced6c62c0ab3b60363b97e114009172de0993820346635415f7b44b224a6b773d7b19181e16d410e44b668f8e9cd5ccb1b9f3225e03a33ee3dcb9a6581b0da0f5cb55958c40f7b638ca7f7b156bb932c5912a06afb7032eb8351252a16438695187853119a1cc130e0173b0c33c069646f50378d7893b03a7b4e453a6ab211e9bba8148e5d7bccb49cfb407c04e2142bc927fb9ef5c43ec03cdc7722d4afc43d2cb19b568e4fed1ea9923fcfd5ec5773e640209f63613b7cc0219ffff03ac6215cbaf73bc7c3dd07e9d618fd6ea603cf1fbebe1c85a84d168d076f2394103c9c45bc71b1b234d3f057e4b549059757b817a0794dae0dc30ac13a5d29f440803c795b3e8114eed60547a25022abff4e1645a84e31dfd63e544d1cd8cac5c2f9a0219ffff0219ffff03b9d715b420125cb314777ea13a43f049f0b73ac0944a2d0d687b9df2cbe2f99a03152560f2b734347d2be3fb0b4445fb71080b089452d4889369534f212cd9e8ee036df120f495625fede084d967bdc9dac54a5572498abb24f45fd5716245986ce00360eb41741b5819d55156c6a8f869a39f42dba69be2edff5718b4c8abec9c089a031b65e75d87999209ab86f91c7431113aac441a16c057e7a36189550fc6b91c57038802fb3e69447cec19e9c528f9590b72631229e00097e2fa18bb72c99ed256e303d5918f5c4e6ada431949295a0f4400d5cb9638f0ff571324a66b24593245ec2603f3b9719973eec4438719acb10ec7cf57d372e2dbc02665b464406f1464c989bd0348cf158fac328c0e41a353937fb591e7f3c5a12a1c15886e9755181422fc6c6b03a797e194880973cee9f8c919b7fa37a2d9f602fb5b6b1062736721aade6d54a60371370d35e9e59968fe5cfb2629f16e5c9052f9cd4ba751e58899f7bc17f02c2d03886ab3f404cb03c92fb0dcbd917119d196402dad325b0e3ec34c8ac8433c87de03c7680c89e4055c644bd265c7789ed64ca546a605d2d09b2120f7805ca2b01d450377468df4fc3aa7f65055396432114582c1214051dcc228a669a748bcb211495a03b13ff8d76eb008cff87a35c4725308e96c58b7d63996166f7bccd1ef2aae9a5f03cfcfd592d5e6dce26a6ac76111e812d5d6a509fd2725e35059781a5c9bbffbb003016ae3d785ddc9a8e4b902e2d7c2c604ded5abe3c5608298a851b5d23e12aed0039f5fb3e6b1fc6ff4a54cc99a3b696ac66d7c6b352cb3b40ae23618e59746bec003442334682a7e3a59a042020e5fe79c97bc93678b8f89ec4282681d1c5bab8e8103cae44bccc7fd655c94a2210c172a17a3b29ce2225b33631d6b99cdda80092fbc036c5221ad6de996227b1901cff4e6d1653de3956fd5a80bc70fdb577c175dc32c03c340449e5d66c260492f4b9f267b8ef5b88739f63d43cd256a24e6c053b8a420035ae9a524a3f3fd26b7b35ac0cb9bb065e74663702b6dd674a0c3cc665a6144e4035af70ae7e830a571b63bac64e35521a4555a3b9d2903b46236b17b2fb36fd5e105581e038baf90bb94d5237de253d04798bdbe9ed4a22ceb552e98fb8698c8673004020339d652c1351cfbdf41bb050ee73436ba00fc68a78d6e30ea196c9d63f1d8a66b03e0bdaea94c439eb7da1bfc537f0d047e55c1a888c6eb6722ac5651723cc55428039fa0a5c80495ab51a5867e322b4810677cc67e5c89b681273231b24128acfa9705581e03e34bb15d409009f380448bbd205362f2f1cff08f7c167095f96753df900c05465177d8ada62803941a28b98d7e7eb2c9d4860a46b4a1f0e3d8d7f5b8e7d66380aaa00245738eb20605581d023ba2a2575390805e45dca5b844119ab51f3f8bb533d59478687b51eb07011bffffffffffffffff0459527660806040526004361061031d575f3560e01c80638a8c523c116101aa578063b62496f5116100f6578063d85ba06311610094578063e6819ba71161006e578063e6819ba714610ba8578063e884f26014610be4578063f1b9ad6b14610c0e578063f2fde38b14610c3657610324565b8063d85ba06314610b18578063dd62ed3e14610b42578063e2f4560514610b7e57610324565b8063bbc0c742116100d0578063bbc0c74214610a60578063c024666814610a8a578063c876d0b914610ab2578063d257b34f14610adc57610324565b8063b62496f5146109d4578063b70143c914610a10578063b819a1a914610a3857610324565b80639c3b4fdc11610163578063a457c2d71161013d578063a457c2d71461090a578063a72f458614610946578063a9059cbb14610970578063a90eab8c146109ac57610324565b80639c3b4fdc1461088c5780639fccce32146108b6578063a0d82dc5146108e057610324565b80638a8c523c146107a85780638da5cb5b146107be57806392136913146107e8578063924de9b71461081257806395d89b411461083a5780639a7a23d61461086457610324565b806349bd5a5e116102695780636a486a8e11610222578063715018a6116101fc578063715018a6146107145780637437681e1461072a578063751039fc146107545780637bce5a041461077e57610324565b80636a486a8e146106845780636ddd1713146106ae57806370a08231146106d857610324565b806349bd5a5e1461057a5780634a62bb65146105a45780634fbee193146105ce57806361528e271461060a578063644130d81461063457806366ca9b831461065c57610324565b8063217580a2116102d657806330a136ad116102b057806330a136ad146104c05780633103b39e146104ea578063313ce56714610514578063395093511461053e57610324565b8063217580a21461043257806323b872dd1461045a57806327c8f8351461049657610324565b806302dbd8f81461032857806306fdde0314610350578063095ea7b31461037a5780631694505e146103b657806318160ddd146103e0578063203e727e1461040a57610324565b3661032457005b5f80fd5b348015610333575f80fd5b5061034e60048036038101906103499190613c1f565b610c5e565b005b34801561035b575f80fd5b50610364610d48565b6040516103719190613ce7565b60405180910390f35b348015610385575f80fd5b506103a0600480360381019061039b9190613d61565b610dd8565b6040516103ad9190613db9565b60405180910390f35b3480156103c1575f80fd5b506103ca610df5565b6040516103d79190613e2d565b60405180910390f35b3480156103eb575f80fd5b506103f4610e19565b6040516104019190613e55565b60405180910390f35b348015610415575f80fd5b50610430600480360381019061042b9190613e6e565b610e22565b005b34801561043d575f80fd5b5061045860048036038101906104539190613e6e565b610f31565b005b348015610465575f80fd5b50610480600480360381019061047b9190613e99565b611040565b60405161048d9190613db9565b60405180910390f35b3480156104a1575f80fd5b506104aa611132565b6040516104b79190613ef8565b60405180910390f35b3480156104cb575f80fd5b506104d4611138565b6040516104e19190613e55565b60405180910390f35b3480156104f5575f80fd5b506104fe61113e565b60405161050b9190613ef8565b60405180910390f35b34801561051f575f80fd5b50610528611163565b6040516105359190613f2c565b60405180910390f35b348015610549575f80fd5b50610564600480360381019061055f9190613d61565b61116b565b6040516105719190613db9565b60405180910390f35b348015610585575f80fd5b5061058e611212565b60405161059b9190613ef8565b60405180910390f35b3480156105af575f80fd5b506105b8611237565b6040516105c59190613db9565b60405180910390f35b3480156105d9575f80fd5b506105f460048036038101906105ef9190613f45565b611249565b6040516106019190613db9565b60405180910390f35b348015610615575f80fd5b5061061e61129b565b60405161062b9190613e55565b60405180910390f35b34801561063f575f80fd5b5061065a60048036038101906106559190613f9a565b6112a1565b005b348015610667575f80fd5b50610682600480360381019061067d9190613c1f565b611375565b005b34801561068f575f80fd5b5061069861145f565b6040516106a59190613e55565b60405180910390f35b3480156106b9575f80fd5b506106c2611465565b6040516106cf9190613db9565b60405180910390f35b3480156106e3575f80fd5b506106fe60048036038101906106f99190613f45565b611478565b60405161070b9190613e55565b60405180910390f35b34801561071f575f80fd5b506107286114bd565b005b348015610735575f80fd5b5061073e611544565b60405161074b9190613e55565b60405180910390f35b34801561075f575f80fd5b5061076861154a565b6040516107759190613db9565b60405180910390f35b348015610789575f80fd5b506107926115e7565b60405161079f9190613e55565b60405180910390f35b3480156107b3575f80fd5b506107bc6115ed565b005b3480156107c9575f80fd5b506107d26116a1565b6040516107df9190613ef8565b60405180910390f35b3480156107f3575f80fd5b506107fc6116c9565b6040516108099190613e55565b60405180910390f35b34801561081d575f80fd5b5061083860048036038101906108339190613fd8565b6116cf565b005b348015610845575f80fd5b5061084e611768565b60405161085b9190613ce7565b60405180910390f35b34801561086f575f80fd5b5061088a60048036038101906108859190613f9a565b6117f8565b005b348015610897575f80fd5b506108a0611911565b6040516108ad9190613e55565b60405180910390f35b3480156108c1575f80fd5b506108ca611917565b6040516108d79190613e55565b60405180910390f35b3480156108eb575f80fd5b506108f461191d565b6040516109019190613e55565b60405180910390f35b348015610915575f80fd5b50610930600480360381019061092b9190613d61565b611923565b60405161093d9190613db9565b60405180910390f35b348015610951575f80fd5b5061095a611a09565b6040516109679190613ef8565b60405180910390f35b34801561097b575f80fd5b5061099660048036038101906109919190613d61565b611a2e565b6040516109a39190613db9565b60405180910390f35b3480156109b7575f80fd5b506109d260048036038101906109cd9190614060565b611a4b565b005b3480156109df575f80fd5b506109fa60048036038101906109f59190613f45565b611cce565b604051610a079190613db9565b60405180910390f35b348015610a1b575f80fd5b50610a366004803603810190610a319190613e6e565b611ceb565b005b348015610a43575f80fd5b50610a5e6004803603810190610a599190613f45565b611dac565b005b348015610a6b575f80fd5b50610a74611ee6565b604051610a819190613db9565b60405180910390f35b348015610a95575f80fd5b50610ab06004803603810190610aab9190613f9a565b611ef9565b005b348015610abd575f80fd5b50610ac661201b565b604051610ad39190613db9565b60405180910390f35b348015610ae7575f80fd5b50610b026004803603810190610afd9190613e6e565b61202d565b604051610b0f9190613db9565b60405180910390f35b348015610b23575f80fd5b50610b2c612181565b604051610b399190613e55565b60405180910390f35b348015610b4d575f80fd5b50610b686004803603810190610b6391906140b0565b612187565b604051610b759190613e55565b60405180910390f35b348015610b89575f80fd5b50610b92612209565b604051610b9f9190613e55565b60405180910390f35b348015610bb3575f80fd5b50610bce6004803603810190610bc99190613f45565b61220f565b604051610bdb9190613db9565b60405180910390f35b348015610bef575f80fd5b50610bf861222c565b604051610c059190613db9565b60405180910390f35b348015610c19575f80fd5b50610c346004803603810190610c2f9190613f45565b6122c9565b005b348015610c41575f80fd5b50610c5c6004803603810190610c579190613f45565b612403565b005b610c666124f9565b73ffffffffffffffffffffffffffffffffffffffff16610c846116a1565b73ffffffffffffffffffffffffffffffffffffffff1614610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd190614138565b60405180910390fd5b8160138190555080601481905550601454601354610cf89190614183565b601281905550604b6012541115610d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3b90614200565b60405180910390fd5b5050565b606060038054610d579061424b565b80601f0160208091040260200160405190810160405280929190818152602001828054610d839061424b565b8015610dce5780601f10610da557610100808354040283529160200191610dce565b820191905f5260205f20905b815481529060010190602001808311610db157829003601f168201915b5050505050905090565b5f610deb610de46124f9565b8484612500565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b610e2a6124f9565b73ffffffffffffffffffffffffffffffffffffffff16610e486116a1565b73ffffffffffffffffffffffffffffffffffffffff1614610e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9590614138565b60405180910390fd5b670de0b6b3a76400006103e86001610eb4610e19565b610ebe919061427b565b610ec891906142e9565b610ed291906142e9565b811015610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b90614363565b60405180910390fd5b670de0b6b3a764000081610f28919061427b565b60098190555050565b610f396124f9565b73ffffffffffffffffffffffffffffffffffffffff16610f576116a1565b73ffffffffffffffffffffffffffffffffffffffff1614610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa490614138565b60405180910390fd5b670de0b6b3a76400006103e86005610fc3610e19565b610fcd919061427b565b610fd791906142e9565b610fe191906142e9565b811015611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a906143f1565b60405180910390fd5b670de0b6b3a764000081611037919061427b565b600b8190555050565b5f61104c8484846126c3565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6110936124f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611112576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111099061447f565b60405180910390fd5b6111268561111e6124f9565b858403612500565b60019150509392505050565b61dead81565b600b5481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012905090565b5f6112086111776124f9565b848460015f6111846124f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112039190614183565b612500565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5f9054906101000a900460ff1681565b5f60185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60155481565b6112a96124f9565b73ffffffffffffffffffffffffffffffffffffffff166112c76116a1565b73ffffffffffffffffffffffffffffffffffffffff161461131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490614138565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61137d6124f9565b73ffffffffffffffffffffffffffffffffffffffff1661139b6116a1565b73ffffffffffffffffffffffffffffffffffffffff16146113f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e890614138565b60405180910390fd5b816010819055508060118190555060115460105461140f9190614183565b600f81905550604b600f54111561145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145290614200565b60405180910390fd5b5050565b60125481565b600c60029054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6114c56124f9565b73ffffffffffffffffffffffffffffffffffffffff166114e36116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090614138565b60405180910390fd5b6115425f6133c7565b565b60095481565b5f6115536124f9565b73ffffffffffffffffffffffffffffffffffffffff166115716116a1565b73ffffffffffffffffffffffffffffffffffffffff16146115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90614138565b60405180910390fd5b5f600c5f6101000a81548160ff0219169083151502179055506001905090565b60105481565b6115f56124f9565b73ffffffffffffffffffffffffffffffffffffffff166116136116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166090614138565b60405180910390fd5b6001600c60016101000a81548160ff0219169083151502179055506001600c60026101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b6116d76124f9565b73ffffffffffffffffffffffffffffffffffffffff166116f56116a1565b73ffffffffffffffffffffffffffffffffffffffff161461174b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174290614138565b60405180910390fd5b80600c60026101000a81548160ff02191690831515021790555050565b6060600480546117779061424b565b80601f01602080910402602001604051908101604052809291908181526020018280546117a39061424b565b80156117ee5780601f106117c5576101008083540402835291602001916117ee565b820191905f5260205f20905b8154815290600101906020018083116117d157829003601f168201915b5050505050905090565b6118006124f9565b73ffffffffffffffffffffffffffffffffffffffff1661181e6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b90614138565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa9061450d565b60405180910390fd5b61190d828261348a565b5050565b60115481565b60165481565b60145481565b5f8060015f6119306124f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156119ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e19061459b565b60405180910390fd5b6119fe6119f56124f9565b85858403612500565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611a41611a3a6124f9565b84846126c3565b6001905092915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001611afd9594939291906145c8565b6040516020818303038152906040528051906020012090505f7f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e67000000000000000000000000000000000000815250805190602001205f604051602001611b8793929190614619565b6040516020818303038152906040528051906020012090505f8282604051602001611bb39291906146c2565b6040516020818303038152906040528051906020012090505f6001828888886040515f8152602001604052604051611bee94939291906146f8565b6020604051602081039080840390855afa158015611c0e573d5f803e3d5ffd5b505050602060405103519050611c226116a1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8690614785565b60405180910390fd5b6001600c60016101000a81548160ff0219169083151502179055506001600c60026101000a81548160ff02191690831515021790555050505050505050565b601a602052805f5260405f205f915054906101000a900460ff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d2b6124f9565b73ffffffffffffffffffffffffffffffffffffffff1614611d4a575f80fd5b611d5330611478565b8111158015611d6157505f81115b611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d97906147ed565b60405180910390fd5b611da981613528565b50565b611db46124f9565b73ffffffffffffffffffffffffffffffffffffffff16611dd26116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1f90614138565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f9e3da7e72199adc414f24e73d3985f288cce5edbc5c370e29af583afdd78c2c260405160405180910390a38060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60019054906101000a900460ff1681565b611f016124f9565b73ffffffffffffffffffffffffffffffffffffffff16611f1f6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6c90614138565b60405180910390fd5b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161200f9190613db9565b60405180910390a25050565b600e5f9054906101000a900460ff1681565b5f6120366124f9565b73ffffffffffffffffffffffffffffffffffffffff166120546116a1565b73ffffffffffffffffffffffffffffffffffffffff16146120aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a190614138565b60405180910390fd5b620186a060016120b8610e19565b6120c2919061427b565b6120cc91906142e9565b82101561210e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121059061487b565b60405180910390fd5b6103e8600561211b610e19565b612125919061427b565b61212f91906142e9565b821115612171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216890614909565b60405180910390fd5b81600a8190555060019050919050565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5481565b6019602052805f5260405f205f915054906101000a900460ff1681565b5f6122356124f9565b73ffffffffffffffffffffffffffffffffffffffff166122536116a1565b73ffffffffffffffffffffffffffffffffffffffff16146122a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a090614138565b60405180910390fd5b5f600e5f6101000a81548160ff0219169083151502179055506001905090565b6122d16124f9565b73ffffffffffffffffffffffffffffffffffffffff166122ef6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233c90614138565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f455cf943964d06e77e44126ecca5a66b2c9721f4576a31f8693127282c55700f60405160405180910390a38060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61240b6124f9565b73ffffffffffffffffffffffffffffffffffffffff166124296116a1565b73ffffffffffffffffffffffffffffffffffffffff161461247f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247690614138565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036124ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e490614997565b60405180910390fd5b6124f6816133c7565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361256e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256590614a25565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d390614ab3565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126b69190613e55565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272890614b41565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361279f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279690614bcf565b60405180910390fd5b60175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282090614c37565b60405180910390fd5b60175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156128b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128aa90614c9f565b60405180910390fd5b5f81036128ca576128c583835f61375b565b6133c2565b600c5f9054906101000a900460ff1615612f72576128e66116a1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561295457506129246116a1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561298c57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129c6575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129df5750600660149054906101000a900460ff16155b15612f7157600c60019054906101000a900460ff16612ad35760185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612a93575060185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac990614d07565b60405180910390fd5b5b600e5f9054906101000a900460ff1615612c9757612aef6116a1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612b7657507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612bcf575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612c965743600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4a90614dbb565b60405180910390fd5b43600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d34575060195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612ddb57600954811115612d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7590614e49565b60405180910390fd5b600b54612d8a83611478565b82612d959190614183565b1115612dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dcd90614eb1565b60405180910390fd5b612f70565b601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612e78575060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612ec757600954811115612ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb990614f3f565b60405180910390fd5b612f6f565b60195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612f6e57600b54612f2183611478565b82612f2c9190614183565b1115612f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6490614eb1565b60405180910390fd5b5b5b5b5b5b5f612f7c30611478565b90505f600a548210159050808015612fa05750600c60029054906101000a900460ff165b8015612fb95750600660149054906101000a900460ff16155b801561300c5750601a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561305f575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156130b2575060185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156130f5576001600660146101000a81548160ff0219169083151502179055506130da6139d0565b5f600660146101000a81548160ff0219169083151502179055505b5f600660149054906101000a900460ff1615905060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806131a4575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156131ad575f90505b5f81156133b257601a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561320b57505f601254115b156132a357613238606461322a60125488613b9f90919063ffffffff16565b613bb490919063ffffffff16565b90506012546014548261324b919061427b565b61325591906142e9565b60165f8282546132659190614183565b925050819055506012546013548261327d919061427b565b61328791906142e9565b60155f8282546132979190614183565b9250508190555061338f565b601a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156132fa57505f600f54115b1561338e576133276064613319600f5488613b9f90919063ffffffff16565b613bb490919063ffffffff16565b9050600f546011548261333a919061427b565b61334491906142e9565b60165f8282546133549190614183565b92505081905550600f546010548261336c919061427b565b61337691906142e9565b60155f8282546133869190614183565b925050819055505b5b5f8111156133a3576133a287308361375b565b5b80856133af9190614f5d565b94505b6133bd87878761375b565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff81111561354457613543614f90565b5b6040519080825280602002602001820160405280156135725781602001602082028036833780820191505090505b50905030815f8151811061358957613588614fbd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561362c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136509190614ffe565b8160018151811061366457613663614fbd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136c9307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84612500565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161372a959493929190615119565b5f604051808303815f87803b158015613741575f80fd5b505af1158015613753573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036137c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137c090614b41565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161382e90614bcf565b60405180910390fd5b613842838383613bc9565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156138c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138bc906151e1565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546139539190614183565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516139b79190613e55565b60405180910390a36139ca848484613bce565b50505050565b5f6139da30611478565b90505f6016546015546139ed9190614183565b90505f8083036139ff57505050613b9d565b6014600a54613a0e919061427b565b831115613a27576014600a54613a24919061427b565b92505b5f479050613a3484613528565b5f613a488247613bd390919063ffffffff16565b90505f613a7285613a6460165485613b9f90919063ffffffff16565b613bb490919063ffffffff16565b90505f6015819055505f60168190555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051613ac79061522c565b5f6040518083038185875af1925050503d805f8114613b01576040519150601f19603f3d011682016040523d82523d5f602084013e613b06565b606091505b50508094505060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613b519061522c565b5f6040518083038185875af1925050503d805f8114613b8b576040519150601f19603f3d011682016040523d82523d5f602084013e613b90565b606091505b5050809450505050505050505b565b5f8183613bac919061427b565b905092915050565b5f8183613bc191906142e9565b905092915050565b505050565b505050565b5f8183613be09190614f5d565b905092915050565b5f80fd5b5f819050919050565b613bfe81613bec565b8114613c08575f80fd5b50565b5f81359050613c1981613bf5565b92915050565b5f8060408385031215613c3557613c34613be8565b5b5f613c4285828601613c0b565b9250506020613c5385828601613c0b565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613c94578082015181840152602081019050613c79565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613cb982613c5d565b613cc38185613c67565b9350613cd3818560208601613c77565b613cdc81613c9f565b840191505092915050565b5f6020820190508181035f830152613cff8184613caf565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613d3082613d07565b9050919050565b613d4081613d26565b8114613d4a575f80fd5b50565b5f81359050613d5b81613d37565b92915050565b5f8060408385031215613d7757613d76613be8565b5b5f613d8485828601613d4d565b9250506020613d9585828601613c0b565b9150509250929050565b5f8115159050919050565b613db381613d9f565b82525050565b5f602082019050613dcc5f830184613daa565b92915050565b5f819050919050565b5f613df5613df0613deb84613d07565b613dd2565b613d07565b9050919050565b5f613e0682613ddb565b9050919050565b5f613e1782613dfc565b9050919050565b613e2781613e0d565b82525050565b5f602082019050613e405f830184613e1e565b92915050565b613e4f81613bec565b82525050565b5f602082019050613e685f830184613e46565b92915050565b5f60208284031215613e8357613e82613be8565b5b5f613e9084828501613c0b565b91505092915050565b5f805f60608486031215613eb057613eaf613be8565b5b5f613ebd86828701613d4d565b9350506020613ece86828701613d4d565b9250506040613edf86828701613c0b565b9150509250925092565b613ef281613d26565b82525050565b5f602082019050613f0b5f830184613ee9565b92915050565b5f60ff82169050919050565b613f2681613f11565b82525050565b5f602082019050613f3f5f830184613f1d565b92915050565b5f60208284031215613f5a57613f59613be8565b5b5f613f6784828501613d4d565b91505092915050565b613f7981613d9f565b8114613f83575f80fd5b50565b5f81359050613f9481613f70565b92915050565b5f8060408385031215613fb057613faf613be8565b5b5f613fbd85828601613d4d565b9250506020613fce85828601613f86565b9150509250929050565b5f60208284031215613fed57613fec613be8565b5b5f613ffa84828501613f86565b91505092915050565b61400c81613f11565b8114614016575f80fd5b50565b5f8135905061402781614003565b92915050565b5f819050919050565b61403f8161402d565b8114614049575f80fd5b50565b5f8135905061405a81614036565b92915050565b5f805f6060848603121561407757614076613be8565b5b5f61408486828701614019565b93505060206140958682870161404c565b92505060406140a68682870161404c565b9150509250925092565b5f80604083850312156140c6576140c5613be8565b5b5f6140d385828601613d4d565b92505060206140e485828601613d4d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614122602083613c67565b915061412d826140ee565b602082019050919050565b5f6020820190508181035f83015261414f81614116565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61418d82613bec565b915061419883613bec565b92508282019050808211156141b0576141af614156565b5b92915050565b7f4d757374206b656570206665657320617420373525206f72206c6573730000005f82015250565b5f6141ea601d83613c67565b91506141f5826141b6565b602082019050919050565b5f6020820190508181035f830152614217816141de565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061426257607f821691505b6020821081036142755761427461421e565b5b50919050565b5f61428582613bec565b915061429083613bec565b925082820261429e81613bec565b915082820484148315176142b5576142b4614156565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6142f382613bec565b91506142fe83613bec565b92508261430e5761430d6142bc565b5b828204905092915050565b7f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e31255f82015250565b5f61434d602083613c67565b915061435882614319565b602082019050919050565b5f6020820190508181035f83015261437a81614341565b9050919050565b7f43616e6e6f7420736574206d617857616c6c657473206c6f776572207468616e5f8201527f20302e3525000000000000000000000000000000000000000000000000000000602082015250565b5f6143db602583613c67565b91506143e682614381565b604082019050919050565b5f6020820190508181035f830152614408816143cf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f614469602883613c67565b91506144748261440f565b604082019050919050565b5f6020820190508181035f8301526144968161445d565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f6144f7603983613c67565b91506145028261449d565b604082019050919050565b5f6020820190508181035f830152614524816144eb565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f614585602583613c67565b91506145908261452b565b604082019050919050565b5f6020820190508181035f8301526145b281614579565b9050919050565b6145c28161402d565b82525050565b5f60a0820190506145db5f8301886145b9565b6145e860208301876145b9565b6145f560408301866145b9565b6146026060830185613e46565b61460f6080830184613ee9565b9695505050505050565b5f60608201905061462c5f8301866145b9565b61463960208301856145b9565b6146466040830184613e46565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f61468c60028361464e565b915061469782614658565b600282019050919050565b5f819050919050565b6146bc6146b78261402d565b6146a2565b82525050565b5f6146cc82614680565b91506146d882856146ab565b6020820191506146e882846146ab565b6020820191508190509392505050565b5f60808201905061470b5f8301876145b9565b6147186020830186613f1d565b61472560408301856145b9565b61473260608301846145b9565b95945050505050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f61476f601183613c67565b915061477a8261473b565b602082019050919050565b5f6020820190508181035f83015261479c81614763565b9050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f6147d7600c83613c67565b91506147e2826147a3565b602082019050919050565b5f6020820190508181035f830152614804816147cb565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f614865603583613c67565b91506148708261480b565b604082019050919050565b5f6020820190508181035f83015261489281614859565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f6148f3603483613c67565b91506148fe82614899565b604082019050919050565b5f6020820190508181035f830152614920816148e7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614981602683613c67565b915061498c82614927565b604082019050919050565b5f6020820190508181035f8301526149ae81614975565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614a0f602483613c67565b9150614a1a826149b5565b604082019050919050565b5f6020820190508181035f830152614a3c81614a03565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614a9d602283613c67565b9150614aa882614a43565b604082019050919050565b5f6020820190508181035f830152614aca81614a91565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614b2b602583613c67565b9150614b3682614ad1565b604082019050919050565b5f6020820190508181035f830152614b5881614b1f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614bb9602383613c67565b9150614bc482614b5f565b604082019050919050565b5f6020820190508181035f830152614be681614bad565b9050919050565b7f5b66726f6d5d20626c61636b206c6973740000000000000000000000000000005f82015250565b5f614c21601183613c67565b9150614c2c82614bed565b602082019050919050565b5f6020820190508181035f830152614c4e81614c15565b9050919050565b7f5b746f5d20626c61636b206c69737400000000000000000000000000000000005f82015250565b5f614c89600f83613c67565b9150614c9482614c55565b602082019050919050565b5f6020820190508181035f830152614cb681614c7d565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f614cf1601683613c67565b9150614cfc82614cbd565b602082019050919050565b5f6020820190508181035f830152614d1e81614ce5565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f614da5604983613c67565b9150614db082614d25565b606082019050919050565b5f6020820190508181035f830152614dd281614d99565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d617854782e0000000000000000000000000000000000000000000000000000602082015250565b5f614e33602683613c67565b9150614e3e82614dd9565b604082019050919050565b5f6020820190508181035f830152614e6081614e27565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f614e9b601383613c67565b9150614ea682614e67565b602082019050919050565b5f6020820190508181035f830152614ec881614e8f565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854782e00000000000000000000000000000000000000000000000000602082015250565b5f614f29602783613c67565b9150614f3482614ecf565b604082019050919050565b5f6020820190508181035f830152614f5681614f1d565b9050919050565b5f614f6782613bec565b9150614f7283613bec565b9250828203905081811115614f8a57614f89614156565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614ff881613d37565b92915050565b5f6020828403121561501357615012613be8565b5b5f61502084828501614fea565b91505092915050565b5f819050919050565b5f61504c61504761504284615029565b613dd2565b613bec565b9050919050565b61505c81615032565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61509481613d26565b82525050565b5f6150a5838361508b565b60208301905092915050565b5f602082019050919050565b5f6150c782615062565b6150d1818561506c565b93506150dc8361507c565b805f5b8381101561510c5781516150f3888261509a565b97506150fe836150b1565b9250506001810190506150df565b5085935050505092915050565b5f60a08201905061512c5f830188613e46565b6151396020830187615053565b818103604083015261514b81866150bd565b905061515a6060830185613ee9565b6151676080830184613e46565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6151cb602683613c67565b91506151d682615171565b604082019050919050565b5f6020820190508181035f8301526151f8816151bf565b9050919050565b5f81905092915050565b50565b5f6152175f836151ff565b915061522282615209565b5f82019050919050565b5f6152368261520c565b915081905091905056fea2646970667358221220a8e335bef26e0a1415aac7b75bc79c115ecf6c7df2ce86115f0bda3c689f6ed664736f6c63430008170033033a17824e2f2989452c64d1ca4c3486d98e3cf2b9509f95807c5eea73c9f3ece303d909f63efa187f7f0ae999382e58b55dd6968a91b1e894af2898773ca17c448e03a5510322981dd8ea0b07d8f9b62e84b2b1cca932256be08db1393c400de7dbf0033044723539f8aa09d2e88b727e580d63c97f12a675e57992f5c8c77c7e1cdfa503fbb1e0b68987e5191c5f71bad86033cc4e649d2dcc23cece8447d607f359ad7503d88c740fc7f4502ea0489d49fe647984b1cf367adaf4bed67fa15bdcded65d4103e6f5a12ad39e80f1d076663c28bb9663473f605305e89281d36e15388fabef0900581f0240fb78258dfbc7dd003782b8c046eb86c1c2281b726c37d3027a3261d4ec490b7fd77af7c148c72100581f02bfcba8182f0113097c31c8b8d3450aa99920bdecc2ea59a5157bab9c03245820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f028a9126a890e9deb13abbbf07f5ea0cb0ca57d15eb1104204d314f5f756104a0133787e4d1d00248e8300581f0245bdfc58d9bb99c78be88a5180407b0736b2310ea2326768ffe453ba9190491d06dc69af41334d8f00581f02eddf37f75442d423e1d841ed4687e2281a83dff086a5dfcf87e9d67a8d5f49081d961f2c80792c510219230703f77b2dc3bb7f151f7f1869ca9a0ca5b84997862e0ceecc26b78850fae63ed41e014107031c61fdb6415b790598ba97d007bc13bc29a0de15a7b95345286e21a99bb072cf03af0a2fe165cbe557bc52e259f0fac87b8224919fb212a1a0c84551b156eeb4ed03297409a516c7cb88f0085dcb0d43c8e7b80533f5794a2abb642aed67527d2c860058200331a7af3854413d84f7ff10db25484f5c9054750ef8e6c4a72b69c8d5016c105820ffffffffffffffffffffffffffffffffffffffffffffff80dea06c264b0bfc17035657a481e32d37157862c98079a6a7f468348c9dede08a39a7581dfe8a5b81eb0058200349e2721396f371ae5a9a64d198f6fa3ef8576b4794127c57b6ed7af2dcc1b04a0129b8c50a5138fa3e9d037bfbce893c6ba80e0c21d5ce8a2ae92621d09577ca7cb9b01ff6b2d0ba103cac03a3b60b2090953d8c5a8eacceb330b1d1a42624f553d4851654422d46e33edb96005820030ef7e1b056e16b5d914abff61e742671972224bc1f8b1da8efb5eb53e9be10491a8b85de1703ab659e00582003bf87fa841e14ad0e7a38e91eaea85786d856fdb908922a02a7b39c906fb5105820fffffffffffffffffffffffffffffffffffffffffffffca64ca8659a0d6555f90219ffff035192cbdeafee39a383a84785405a1a6b288c2fc210094900f11f5dbc6af1a4fb0376df7123d5bad54a3780177a86b002175e24a8f0c90a7af18594fcfe8f5ba74203c62c751570cc39fd0c0e38dc9a9fab7636315cf5144a1526674c28e584d9e74703af4dbf83d14c8d956c4f6dbe6f6f724b04bfb7fafff7e11d4b1544f92d0ad417032f4e658b089d9fb5430bad45c3902b1c8735adda70966b6640615211b2f0f8170312b38a6e1667222b53e41d59b2ec9bee582d3ce087742a09c6c495bf7309bb9c03e3004bccce9515e0832d0b879ee9c94304c58ec7a9365e74de2e0f6a6dfce56100582003ec224446f3c17755860eb5e4e77142eaca4b502bbd2b338fb42599d615acc04991998f8c1bdfead5ee03c14d5e562d00c73fac2db00abdcc2289815166f14a55630041aa84b0528fe67a0375e82f4a29977b466d950859680fafbe2bc33ccb07cb6e4f3c5ace0e28f18cc503c1c1ec21db0ab34f677700bef421f9a9d5891f9bec47ef8d4a1f2d4161a9f31003a66a2fe0a42c39dbaeaf1748a143553046485bf6a8a961d36002d54f7d47abd0033aa8838c1b80b8cd15cb6870172e0d063881e2879222b6d95a7e31ccb0659c6e00581f0215fc7558b472d1e5a8d08a36125d57353d6877e77e25e01d7a53ebe3b27c49a2a15d2d72e21a2b6300581f02e3e7f033c4501497cbfce183a9a14a36f5d1ef1135a0a3236bfbf948ec5f488ac7230489e80000020303b2d126d25d1364be78d8488a16a9baa0eb52db090c629fd1870d00922d260c8f032b272c986b32ae83242aa99a18f30c0d7e4bf8002e97adb4d28ef3e5131ee69c0353e82f328c72da35b59987f1f3dba59438864288d4720f74bbc0339e5eda214b00582003382de4bcde0cfb4bb2a88f4655616b372c2057def4bf210f9fe32846bd4030490770d96bfb875c8d94037c6158962abe2c6b432b338ddd11b8d0f0c696ab9085db3581e7cabfe8e87d8d00582003441b966d48345f5e38921a1505369935f8a9c0415bb1a331aefba3a1d2a0904a08d8184a4cb637506c300219ffff031ffc65cc34612965a58edd59fc4fa2ce167a75076291e8097811ed3bc879a12603966933a71590c7019f3b25bc9635f922a6739ceb810c4c0fa91bb4531356c8630350bb3268aac22a65e591ca1cc5066621e7ad6f8926e9161961d72371a3e804e6038116080fb3e96f4488888f57fae9efea046fe7339e70601e9e61b44fd590813c03cecb88c4c0662d9676f8e1d76e5af4e24846fc77f6f98203c7c6cdca788d89e60359a6c9ba791a375a333ac172d7520681483fa9ead9ad45b6a150fb6321bcab1b030c5048275d716bd6750fef6bbf3828d1977d4c85e49c98a7a4569159a81e757b031db236cd9e7c2dc0e3273a23fd23906b88bc6678a21f738218964000508ce48c03ae4f07b541fa166249352c6d32f302db23071a7f8f84cb35ea75df73aab6f1fe0219ffff033a581d7af6c28524a0b304c1aad42bd5a55af6d3a7e859eaf1cf256ac93b618a03f7e5cbaf269cbbd9a3fbc8e0d7282d801f920d6011922a3001c61f827d018f53039b31d3281b324443e62686ffdbad9540a20f94f7c910e019fba903d9f3847da203f4376c755a6f1ad5af753563cd3a72fd5f54f7d8180558f8166ad8b36471d42403f8ab8efac47d61b0d9ee5a568e287fabaf4aa2246cf93fe8a5c973da22334084038694a73df94f68e7d41f69eba97535e4764df796910a22b88a4cf7b141d626c20373e0c6c8c06eb81b71b30b01e7fd139f8e5b4a72d54c1011af006752a5deffe6031d23cbf642c75852c1d3fb72a343bd89a5dce722fce7f79002632a9452f8cb73035b35d7579e3242497b5ebf3337c91b868b0b2012340bdc08ae16170f20fb9a31037e09e77800f540f1c35c2dded7a7d776dcb3247e2f1aa58e4b1c7253af7427d403e4d3d69121c0eda5ee3a18e324669ca1449995908518f42f04e771fe46b3caad03e4c8b86aa235470d8a5b307c704ef4b3e7206ad1616c95122510b153789c9aa0031b7429757429d029d8335293a4a85f00743f306804b7744643d7a4029e160083035d91fa92e861519198df7fd26647b66b57498732496230190564e8fdd60483f1005820030c5e77d9df05132326eeeacb2ffeada230f11fb0723dc12ee9dac185c8c6305820fffffffffffffffffffffffffffffffffffffffffffff7ccb136702dd3a8a2d800581f026008eee6780cbd2c3647c0ff7fa24cc68d6277c5021497139a7d2057d4555820ffffffffffffffffffffffffffffffffffffffffffffc275b6a14f1dccc1407500581f028867c4a6e84090f91621da1c4e59291d7976a3c46ef64a3d6a231d90ec155820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f024f16bd0960420cb41e0de70b1e0fa8702a3e003b8380a0970cf0cc289aa449822b516c5cdd5bb3f80219082203a9324a7c73c1a0343f80716d9ad6eb59885f17812aff5e8482a0d0b28d5bd58403fb1c7d9451833be458b8c2f469bdff588bdb141138a71fee7413f1840031a3af00582003163dd391b964fe9688846232e9cf111b730c565437c6e5a6843575515de060495e08ca471c3f1a1d45005820038d63fdd0877fc1183e674d80a69077d64b30d2b1b3547e6516b81cd38b3fb0499d393fc318da20518b03b0deccbd3f73f29436a6854538f9ec99546c97a2d945b7dda9c3964656192066038f1d9fda859080edba84373bff9dd8f921e83d9ddfae46a4fad5176f583139370351eb2715029054159301a0388ab9bb8aaefe3077a1a57248ddc2f0ee67e018570311322a0248cb7bb79698f26ee04da1e8f82f86be60516ff8a4e8250a5c7804ba03b43fd8bbf047529ea2b135d1da336a498da89052d70e68f503e5c8c6ca2ba70103ba0946884b778f6a54d066e902a313afea4706b6780763838a22d7cb689c0c1c0393db7bfd2f1dee96ac5688a60d0276210a817ec70e39224d0c48dea079c1b85900582003b6097caa59fe5d8ce75e62e811a1dc18134a8ea770db7886b631387d34cef05820ffffffffffffffffffffffffffffffffffffffffffffff5f6b6d6afed10af0bd03481acf9a7d47493c2f4e2dee8f1c92d3fe811070be5d65de2c525989a29108000219ffff03de556a0c3033dffddcf2a8a0a1ce1b92f8c45cc51add8b3ee9831e8b2838448303930cdcb1a3f2e8d12e9fc377a6ca41e7ee752cd16dfa767c0a9debd64b699a1403611bc9d91babe93fd4a039804a63d02c91248b2324231b955e58826429f72d7800582003edb7fff1dcdcb0ad4d40696a7fc9c2b31b4514c04b1d6b9cab53f21105a6005820fffffffffffffffffffffffffffffffffffffffffffffdfd6cea6572f9aed85403bbdc0679260c367df2648a4897f69a1a9f3821e6cddc242e0ac35d1d11bd9dfa005820037d877132573dc43a5b8151d74871df410a7a2eb07d8b94738d6a3e0c5556c05820ffffffffffffffffffffffffffffffffffffffffffffffa8a2ea6f5fea721bff0328d3502baeef05c30c87020485966439030ddc4f215441bb17fa64cf4aa4973203586f8064cf6e3e3c79c53641f0a304539c5eb8042475f33eea6ddce0a266fdd4031d3839eb161cb2befb6ed46b0ba9cc80d35a0260bf2b89698147583564aaad5b035032d63f7dbb2f7c1f45d94be3314031843a33a9247a9d0c11e990afaa2efa4803f23af3d9acc99419499ee1009138a1278ca2be7e23082e90ba9398a229274dbe03d1068a4c12072fa38dd48bff702f132c2707c5fd047be45be12c3de03893005000581f02574433f445e514e268265ba580b06b321bbe669b8e770fee0fecfc7ebe524a043e6badfea5525d95f400581f023271f52437c441949af76192ca80060a8588cc4ab737c4baf6001e82149b49219588f75fb4eb846c00581f023dab19ec30c26823779cf87369bf716c5f69c1916c854006e168156480904a01b1ae4d6e2ef500000000581f02eb24446f7f41c51a151851adc31e05da0a8500971a0c4521eb51f1747ca14a043c6812afc14a8f294402191a80037b4d74b08bbce7346017d033930ad9b274f6214c1b6af18d9cb86a9288edbb4b03287cffcbff58feb83e3beebf8a5d01ae9b6facf2b1abbe16f185f5ec55ede02b0326a1573f74a14406d1ce769d317bcfae8f66a0e4fbf5e33fec6f5bdbd12994ce038c8fcea6e957d2d05c0ab0da4a635f735b887c33759ba1fa82fe9de0894e5fdf03f729ea9647bb945e687937db5b563354004f2fc914d6a574dd960d730d148f190219fdff0219ffff032bf4340fd2fe75c9c8abf0bcbce0f52ae8931b96e6a2298dbcc7942682d943ae0058200316b19131fb1961a29b5fc673ad2c70ea5fae7ab5f04738bc647be7442d4c004966c92423f666cd6cdd032b43403442750bdcbe2320a2c21da5848d44661b79c14c68657f4badfdcfc789030f731f5ba40a897d94110287eae7520de30f5f63b785ec3d524441ccf53a5ddf03d00721720042c3e9cb8a7c93e5694fe4c6dabdb54499e3a1e58996baa4e1802103325068ec76fa176519a1acd9a3e99146957dd06f505ba911b1ca4c75a51b3af403297391b8b770ccde2120402e5fd7fa812487076d290b9c52f814d7198f32f2e803a66b154c330ce0ea856616b42b86cee57bbd4fe1502f2c2705079c1f1cca17d903e8fd2c1e6c56c6ef6a66066d41a3a98bf442c648d19b3e6f4ce2bbe86b07387e03a13f8577d11028d603969a4f66a2a45463b89888de170fc526623cb86f40a30f033a804e2f63f6bb5aa36c9bb04d7bf5c4b2cbe96bc037c20edb9b3e2753037b2c03572ff04fa9f742479156a3c589b6a6600629360ab45e57a6b0181b3e1ae0e6ef03de36c28624ea38d27ac9f1dbab7fa51dc0a89b0a28275df276427b7b3c0eec9803d7776a34fee17f2866b1d11a8113c1a9c1db8d5e8585a0d414641ad37a8266800219ffe7038879075c21793e59ce5dae2394920a2da732ef090ffadb465f04d0bb883bc54f03599fb4fd2b3fb6d157bf5e6e33f4917a1d32d54b257e6162cfa55e7ca03e889603c7c4bce684891b9fc34dd036ca1321dff6c34241cfb9465ca63fb9d89850ebea0342b55adabc772094b28c5c893a0ae0fe994cda31987f34dd18191f2ac070e04b032088991f9daed1cfbed3794e0ae67f23cbbbb72b64ebbe288335791e8b2b13f103196ff874a2abe270b4cb9be57f439f2c294e891e00b1e041e25dac2ae84a563e03e7ff57ba8aecdcdfd1317711563ec09e686d26542baaf2d8e6d70c5ad1d1e44003cdd8ffd681251d51da44920880822c6798883600991962f4448fd961b3109779032c79ba683f5af3dbb21b68694901169fccc4205cae145a0c580f160ae56b833a038bfdb09f95560bc254a2b0df68a3bfade4d808be0289f65c59f4c188478ea0af0319703742ef8a8d7e86dbfeba826d1cc4101bb16f082be6f8e838876adb244fe203d17a3b110a26d690427ec3e1acf5397de10d6b2149ea6788c16df06eee265a5f03ac5f2f695be4e7881e9a356cd2229e2e6163bc8f985beb299130102f650d019003ce4a1e1dc341753c5f7a959b5091c6bcfb02b9d14d8a4c0572316d7780889740038b9581c356355cbd4213a9d197c226955008ef5c2ec8a0c66f4ad9673fc6b081039e457773ebd22d4707e49c48472fbe47f32eb080e2c039d2789cdffe54566d1203ccb0cd40715c660dfe98b02a4b63a59996293d0ef65ff261dd578a218dc200eb03ce3ada872d5641d24981ac6298d04545c23241de3dcf67cbcd5ac6f103117e6900582003c40fbd5324b4aeacf4811a227acf2c88c8194d73fa75c091e4f4bb455a640049061a026b7c1bf23c2900581f0290d5985cc790a6c6eecb8dbeb1155824c0baf8b2ca83019f2d5d51f7fa525820ffffffffffffffffffffffffffffffffffffffffffffffd277bcd7dd157116e300581f02aa01ae5924bb16f1dc8c3558fe652638d8ccd5a7d620dbe6d85e0b5a8528520b7abc627050305adf14a3d9e40000000000021828005820034f21361f8875847ad87071fb13e89f27a3f1a88604f9b0e3d949ba20d7d7f04a01b8fad25a53285ea66803070decbe31257a64a1c7ea7d5162905e6638aeb4a450789823705b15a9b878e40219ffff037b909a9901acee9df5366697618931ce53a59d4b5c2c93e26d31176631b71aaf03d1a40a99d75558d27bf9b90e72e3826f6e43b2fc1d6cefec01d114cf1b363cd00324019f235ba1db52d9a4901f44fa1d1a9312444b066076a680cc670ecd4b802f034d7865ffa5459a7ba44428e3d5dfb1d103c43c19e9d88414b6632c8dd49d342103271703d6daa3119dc381a82e07572aff2808ecda53bf6b9ab308dcd848587ccd03fcfe1f6d7ed520e18225b7e773cfaeb4aa0014d0091d6e934b6e83f74b370bc2032ecaec1475c51d3fff18dc77a718cdcb7d3b8b97f7d9217c60363696bbfc384f03a6d9db319b0bc081edf4a58450414b84683b6b5e116ea9b36ed77dd9441acb8a0219ffff038a9cb48759afb9aff4767e20ef5f330c7e3934b26f00dd56572d3151ba1598c7031ea9b95e679233354e7584d4417a9e96c8fe46c5b178462277a098c630468204033ecd68b45baf31ec637ff20165436e7f211d42cd522a0c40a7ed67de651e8f100326f5086a6bf177efe4c5ce03f9dcec2a6cb534c409cce82d7a971cf45fed76cd036eb320d6bfd20a2aa672e1375bdd3f7d4ef5a28654f18bdebf7e7d684d8d71e703fb8636db9b29614762efd8b1c541c62ade4c168992dee0640f23df514e5505da0322e43788caae06df924b0ad2edda446b6350679bf37b6d8169fd277569b9d3a003800985daba667b3d822ab0d143de5218aa2cdce3a20afe70684599649c70cd310395a0428960e590084ff637a166c98ef2ef7e7da8957c018c5c4de53f1f882b450370f475a89d36d4e9aab9663028e47273957ca66c9d82d38ecc90ac3bd82984f503352e4fe296a27a9d0eeefc38c0ec4bbfb96797e015a02f56ecbf818df9313cd10383fa3c09ea0afbee465264d9581a07b9d6d4a0a8bb173ae7455c3ecc87b8696f03bf2d143cf43deb0b0534373bcb84c7ec092739ae80f96498f7899fd4335fac6900582003ffb9142e0ef71eae3b6ac0d6a5a282e4f01005ebc8648f2b36583dfa6c4f2049077d7d8fa882e5268a03577af3c69ce0403ab30ab82162d9de9ed71d41892489dfe6c165f4f925c8c651038371c8242439bf5f8828d511774b69f07c869097f6608d76f9aaa5e734da6a1100581f02d5e96b4ee31783b72953fd0ab2a1a1c7507bbfac203ea469bb0e8312a51e494275cabeacc8679e8d00581f0225a56c6358a6eefcbd71544f0eeceaa9ecf91ca476e51b096b2526f1e4a54920ee727ef2e46bc89b0219048003c87f1f4ded1b2bb8912415a7639d4ab13bc50664da5fce6f3338b5cb3c4ac3290349cdd1f8c93a66c61b7a1fd2e226b49cb22a248ddd5998f5255f24282af1e9d603e302b8c790e85de6c872d006cf7e3c6661b241a89deec348eaffd7ce187c7f1c00582003ca172956806cc2370489cb96a6e7d53ec08c20713ad5b956ee3249b737ef805820fffffffffffffffffffffffffffffffffffffffffffffff99f3eaa6b4eca891f0219ffff0380dd662be00e490d6362c18837fe093fb11833dd699a1ca1ac2c4af32ed0079503c2ef1e7a164f15af95eb98d6603e27b6407a834c5bfc94dcee7ec2ff7edb09f2035a3e3a64409cad54d369c02f52eef54d5d4a0f708b331ab96a888cf9f41cc9ae0334d3199e47bd37242f0a3af20553b390539da04d63054c4823bb4d125a38e72c038020f8bcac3618d689f670978c280967c6f2d056b66e3c3eda2eb7f41519c370031f9da9a1d027488ee7a5bf98ef3259e7ff09f435a43c6144ef2ea5c99bcead4503cb3b73e0932352d7fd050f07a85aa2333fce297444dcf7b4d82ec48f914bc541033c72a4a22a40fbf1d3612c16e12f4d686a8a135ff5185f02049c87a312e97cf103979d58f7e23c68d31fcf51e633ebd674c27777d9cd47f88b0fed45b558058c6b03cd078f088f0636ada60990c2021f595d73673e9078aeedd91b7593655000afdb0219ffff03c0443955d0473e5f703f9481fa47ddfcf72947ab99723bee0e9409c440cda4fd03238070cb67c2581a16c85a2601b13fee58def04216f07c1e63dfbb530b96126403f632639715deec7965bdd92768c9be386cdacefb041077401b8ec1da554c87e0032d2f4df3bc630cd4635f1d987debf975205675c3e0356f4d269ddb3caeb5fa03032e2ae474d5f68563fa93602750e3728f2401314d2a7a6ed5d54534a558dca48a03eea22bea6fa63bb3512729bce764c28b1f4a6edc9ce9288f5566136ef32e771303bc4cd0abbfd7ad244488a5290950e570b001842e6a1fb51261f4ec3a6d604e9603347a3ccae90722bd52e9d69bf5c066eca6b5619d5656c9a81c965c35c8121c990343d694ccd972ca906c894b3a632f3dae18738692bd804a9f2ae9dd1c35b2dc1503d906a5c1d2d5b68ac5f1101c5469c06091bcb0a6ea43212b93eab390601e51310307d2937d3b330bf1bd56a92291abdfc89e6620919a7addc9c66af9af4840b5e303d49204d7ead2d89028b404d1c5f5b861f838aefd4a52db348c43e6533d9cb83403af7cc177164d4f9cfcad9e8e265a45ab461d75f7a348fa484a0550b4d93d0c0d03870f007524ae7d7a819a0752ebd7fda830e9187828ff9c73a2d9b36b0ae4353203f67075878c0ece85b4d3bd275d727834cac7cefd856b6656b852e60492af9d3f00581f02b1efdfe53df83a4ed5ebd562699df9b8394e132c52559318332783838c9749c532fd957d52bebe4500581f02d7955397b38e7a92ea4ef5a28ef3a9acd8330526dddc621022beca507c3d49e26cc54b2ad774c51800581f02013b23c19f6a59211a6dfc1776c7e283de43867fd813443063607c8035024994f87feca3112942db020b03979c221b7caff211cb191cfcf6f64d0f82bd5ea09efd847b98de72015009ebec030ffb18c048a2230e0c93fa2cbb7c4f53b00d9487c818b9b91d671089d65b5c71033ef030b89abb174485c2f6a376712720f0b3b0779fb8298dfa798b8989118693005820033e2049c905bc6dbb173d5428d6a2473ee7e707740ac9d94144c5de4e922fc05820ffffffffffffffffffffffffffffffffffffffffffffee13d1ac5e0b6fabffff030dda0abc4c5b5da22986958d12ab5929ffacba8c84ee55ded6a5ccff7acc009c0367ae1e4435fb9320f7cc8dfe34eb6a9b94feb5f6664cf2ae29817d1aa2a0167a00582003445a4af475ddf29517e90e1c31ed5ac94f28cbaaba225706671ab08566a0204a010f0d06da4f717d242803758ec6c46bc2bd03b89cdc7105d1592c68f91ad85afc5cd6d7aedd6b8beb3b17039b9f1cea2acb1ec498e1467c14af0f3e75a1b725a20877cc6bcdfaf9612fdd47036cfc03b72f99a768c79076dc0eb95fb4ccc2d519740641088fc25e847a1c7db80058200389ee01239d95a2e6124d04a5c9455d736c95d870ab456df32983ef273b76c04a012666f29d690afbcc3a03d969b639a02bb38810dbcb9ae9c5409deb1df23406954b5a8e0eda6f2bd028b503b74d5cbbb1e3572fa95c5d3795e5a2f700de256be97c97ec2b1300a3e4602b1b00582003219edbdaf2387098a7bab1baa0b59d61c28907d8f64b95cc57ed5d904590b049756a5171dcd70d38680219fffe034665d89fa1a6158417edd25cebdba4f645e06979f7d3c0910bc7ffacf0f0e15a03765f93406fc1144d261f6f3e0ae28533c3f728af40b11aae82c3272b7d8ae6f50219ffff037adbb6385a7ea673a2edaf5b202c8fee6fcb877a28b794f6a9f4df95c32ebda403de0183abdd527ed039f75b90832be4f742eb147f1bbd136c497f3978c757481c030d65fb88e349173786471505b2b9c16ae2e2054939cf706060eacf3bb64102d4034f7974ef85fe18f325e6965976924da11615873908197c7930c718782446ef3b0334b8352721538f4e6008d935fc6ef7a108acabc36f4b8bd8e8dd54d291d5c37e0359e46a9c3f11cfcd34e3a5bfdd48f04d594c7330c966eb5e3e056a0933af53e603baf36fcfe192954904d2a6acb0ac1ff8f1d6db2087987eed3f4a35f0d5d72f2103292d86f714caacf6c32ada06b049b22bbc9da05d572ea0a531c2c8529663e9cd032023bde89e094061a9c385764c10f1054cce7864a68913093c4768eaf30db1ec0367d4187221e4d8544cdd27fcc68b3d345a7232bc5985f5a8b53e2f52a614fb71033c335d4f8d02e66586cc78b98259d668ed0fcf746cd2de79db32d5b5e397dced03410c4b6e3fd857c56f1163b3abba486ef22eb595acfd3b6beb6c515ef831738103a0cddbc96ffd87b663fdf7390b944abf9f173ada66fd87da92db3d4d1b8d8cee00582003b110b74c1e465f302fc4bf3214e3f2f76db57e41d052323f18a9086093dd004a01c6106445910de7186e03b418862dc07de65c867005feca8159fc1316ac7420e43f0da4748a391b812825031d9b6ef8ed9af85cc8e90692c78e5f7304fe4f63743b9607d4d421b40bde64a703cff64b08fcab288a65e16790fdf408d6257d3e94dfdc959b9b0be1ddcb205c9603d16b4b42b645daae0286f23cb9e1859bb572240bdbe741fcbf1230ce064d521303dd1cc2ee4ff4d2ccd2301261f2d1821f9acb27856aac508c9e40feef063124f400582003198f3db4a32a13dece4b0e8b2e224c6ac93c33dd17d8d533134f11df5146a0491fbdad6db1aa58f4e503c5c0bd08b67292f53b36c45c8d39a8d001c48c2f13c24a1d7c606b21500c646303acba1e2e2538805e2a5655ab1004fcc23e14a2413c19406c0b714bb7e57831ef03e0151393c2d179d61178a8367abf52e8f17cc43a8540df556a875d20bb89598c00582003ea4a0a5f447e8bec35274a8e6fa5898834bd73c4c0196b7322af9932ac09304a05654008ebaab773ac6b0219ffff03ccdefbf146c904535b57d9d42033da94962ba871dcff22ba22ff9efb4df6927203cf5e24640ab1185b83113c1974bd910bc8501c1c50f879b26d555a2e38de0f6b03dc1c2d4183f4487dd20b47ad6cd041f4cef3347c8e826ba1ed1d1ad2e1d69def03828d3ab42bf0ba1f89c8512e25749b27cd2f3ada6e9edce69680b77e1bd4367f039798995f62993fc6f917ab198951388d0772a16c9133a6ea2e0975116dc0265b0334dcc30a5b57faac9d05d5cc20020541d24c0112a4baf00108fd8edfda8a784203499c13503537c709e658d4caf39e8ae32ca5efbca698e2494ff61b68239978280219ffff0378b7bcb3189b8e89b15be5bc6b3d1b45107ff3e26cc093d7c7e1f1a47eb03f72037b93cf3f16a6938bb0b911f5e5bfe04ca16451c4272347c08b4fbc8ceb3411be03eb680b4d4cfe44d1522e7a44b0eaed4f7d2f990ea1bddc093a3accd8e00b327d0301f47b54b5ac28135f9a3a432d5f826212edc5ed6482e6dafe6c93952d52fe3b03b4259a75340902619d9ff8f5b2d5562724c447454a1aa7e9e9aaa27fa9d253a003a6172e52437523893a60482496d12cf3371b88ea00f49e6f1f276769593fd8f403daecdd6d6263ccac122d49c3e4455b0ba0eca5b94f33563d9e262ae6fd5bc7f4034e005576d95a9b15f99118241be1d94396486fc7d303ca69ec4a8dae3c796d3e03ba87c3d1475812ed6f65d7d67664b41a5d1491ff0d1fa7bab06cb813cb97bddb037937997933ca199a4881feac4fc6bdd4d651f7ef7e0e797f799be5d19086f64e03442890f7292925f21f43fb4ff2e2eb6790151c60f86969cdf1448d2e1388b66101410a0310d2575b85b6d0e30463eb4035ba780fdb0c9ed8cbcd3fdfa3fcc79b00a7936200581f027ea974bbf2a6587fc5bdc6a1c30c3a059266ff2bdcdf0b6a4a947b0023515820fffffffffffffffffffffffffffffffffffffffffffffc82e372244a7f73ffff00581f0266a083395eb473bf9a037f4b04a248cc88423f138c5083f3a086394445cf4a0878678326eac900000000581f029af002c7189c39d96507e9bbbbf0bdd36f8c97c2d0b19b08338408e28a74496194049f30f720000000581f02b5c9b116b2cea6cfe895d68b9c60f6db6101ba71f5197d7a5ce56635ec394915277ab4c8152e40f900581f027bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a84a0a968163f0a57b40000000581f0265e1fd78a7b4d00f340d8bac778d89459c414f83b9b8142fd21f7ff11f155820ffffffffffffffffffffffffffffffffffffffffffffff952b06fb4c95e3c6320219246503c0b3593ef94087cfdc08404e81d94ee4c1a0360973faae9c42c043d2d6150cc803fb377643c91fc1bbcb0c63e59e319ff1c9411ead45976c22e4ab197fd14765b0030c6188ae8f1705fee5033b4a0b5b5feed326e71a193ae2171ea70e3d3222f54e005820037892e20f5fddca3d767762f23641e5ad4f6572e9bd4e273e0045be66a4bd605820ffffffffffffffffffffffffffffffffffffffffffffff21a786cbc0931d5e5703720221b00ee5128022746c630e0c041be9fca64f29fa06ae088a28050be990a203972805906a5c27f184ecd7d0dbfa28043e2bc5672d434fac3e7bca33a1d3f2f200582003ed885bb73d1caa544507604c8c6770042e5b82e3d606a055fd1ade18b697605820ffffffffffffffffffffffffffffffffffffffffffffff1b22c1640e17dbfe1c037dba07414bbb85810267f287fc14c73956ee7d78e09b9b0a8e7c5a940c0b2a1a0058200377300f944a5fcf85663c59720aa0b420dd8a5dcc67ca5d3faca0066a50c510495a7c7d9cb67914ad20038eb17df80127782b3b813410546df6f3d12e4e5f5ff0feab509d491c519eafda0219ffff0376a2e2fa21c047022eb391902d3be26348ce69aaab27f79427b4331705099dfb03500d0fce70eed9fa46cccba812cf1cf28629795addac5c05d91f29de5bd7b52803f1c8d1d1d27ecb3978d020178f13f27c18dd55408afd5e8224fc9fa53eccc70c0364c33ccef42c73f4901d132c3fbc2d58624aae6cae94b926a435806eb9cda64303ff1c8301bff47982ab4456b8dfff5312bfb1662400429d531866b8dd60564ea9035671a7643d5070027aa0a0809caa9b4aafdb6c9d1b96e17fcd5fddbb4e50d147038872bdc54449bd2211ba53fb6b3a203742d6804443cf740e7b0a456adaf9d43d03f31cde65e01492b66028164a42afa2a89a912d70440e4f9844d0685d5543db8103a1f98235bf209f2ff33827e6e527af01aec69f9b1fc50e66c3b758cd938340390219ffff0346617e17761032e3d76f184228da2f8f1ac484bf972d061995a26d41e3719fa40398a152ead4ac45fa6304ce9b0ad7a2786d6f6639366d6a2245a554e4ea320c6a03bd41b046d39c8d4035134fcba08a05bdd683aabbc83c925a7482d833abd1d5cd03c0af100c336de86576110467484b249bec01ed6813ab842e00cc712da596053203252c0af149f461e534fa73ee847296d1649be4ee59a086d5acb958e73acf2f1703ca0a94af8ce6dc3e41590ce00abea5ab59cbe93e532a4744cefd9206ac7294d20327d77c665ad51e10fb68eccfbd635a9fceb20de10b2cb495d7bbfb4d5bb175a903fa0df7efd72e6442378173bf2a49b15276dae92590999edca29c85c8d40d7e5003e004713928b3a856b77a208c1d9d746b5114fa14596a1ce851049ec3ef5fda6d03e1951b60811eafa5e5d0c059351b6b6d7660b4cd5a8dea3030a737d50f5424ea03349ad6a0b8a3eeaa0da244cddb7e3e1f73d8eb30bce9fa8fc2530184768422ac03743e7703e0c443463a74f83b2691f783cc7d1ef7ffb67015983cc056808c043f039e053a22e22ccbe322eb55d330c89d673a25b17efa5beff058fe56cea39b6ad703cf76c64829701d4cf2248f93f5cb6921e3e1d652d1fe8faf99c6e3d527c0c2e703911d64f37796754c2581fe31374a291a8ee39e140e12babbed7d5576522f70bf005820037468316efc1f95e4f66f179a68103d2fbbe895880106ad15414bbd264c4e2049619b565ef5df117b90005820038701dc6c843f89539bcbd30802fceed4c0919ac1a33b219624c2178a620ea05820ffffffffffffffffffffffffffffffffffffffffffffe8ca1f2b7412af27b03a03862c6bf6d10eaf700a438025f036e2555ecc3c036a77174bd1052c3832ce7d8d03479e59853efb2d6c3c234c302803e85ddc1b73ac1b2902172ed68a2edce1093303a9780bf8b4e7247ea8525075cbd9a9f2c4815a5b5c2da17f14f36160d440e17a0058200364563659a85d72c9b772e631ac65e7977ad9920c3d6de4fa194cd2ac3f83504a03add1dcd921ba634e8f00581f0266c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c74301010000581f024923cd5dcad54455cf763f18426711d67419eaafddfbf55a9fcf9306fe9347663cec7db1f81f0219060003dd86b8d1b6c677f4971380735701c7763253d6358a209e073c5be0de62d339500338a0df6debdf82a512db406022714eb65f6ca2e87934a9399f341f178c89e45b039849cad2bd8678a35fa61f4dd49a17040db1fc47963708fc4a6b2686f3369b9f005820038b796748cfe3328dc4ccae1d8ebb8275f0cca97a2b18f8c5e15be4abe787505820ffffffffffffffffffffffffffffffffffffffffffffffb12281098a3ea264d503da006f1b55448d826f35e4720f00fbf8cb578e11ae672ca695c134de382e59c300582003281bf4fbe003d0173885d22ef07a6115691045b8c9793a8361a50a4c0bcca049120e3c6acb84f750ad039e31fdc416ad38efd424c5e0611a73a8a2551d6605b12891453e9584ba0654a103f2dd749a5e4e3c14449706b72b6b8502b45ef44e44f97464755eed2850a5d2810219efff0219ffff03f2c385bd300d2d76c9c3a14cd40fd4001fe7b647b20cde4aaac09474c61c8382038a3097030c50102a77d9778248dd13380de09e17bf83ab5cff0d1fd8a9dadd1903feffd07032650a56253fc70a08356976ffe2ee814a677b550c45f90b68db266e0331e6804b644af714f8b5e23d2654e5c9de66bab98a23284f722ce1aace8620a7034b3f54898692fd553f002438f2d4d2959eccde825180fa9a893d51f6fa7c710303f96b79447cae576f1eb81e0171c3782fa1446787063f71fa2b47620abe8236d003304f3a119e5e7ba77ccf6fd02d3171012923197d6bc91361e534e52897817cd8005820031e3be5d8cd06f441c24d234fec4e73d67a63f2a0ec676095d5c47629dc19f04a06c8e822db115605d5de0377eb6ba911df91e5cf26c882f36da3195bfaeaf5c9d29258c92d9c854fcf3969039188c3a689d0aefa5cf798f01710049197f0369b93a114cc19bb954763e29c1a03a3db2b5f451a6695eb18a083ac87017fe219e40e630debb42ac296b4e92eee4700582003038d5a6c33940f6c7a3554923a7a143c9903b40a5da17bb91272ee598d0090492bd8b8f954f0d178bc00581f02f665e53f77937026b53d0826e1a25d015faabfb0e20ec4151155dd3d2a245820fffffffffffffffffffffffffffffffffffffffffffffe33661cc4c8cfb023a500581f02222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f54515d459555f8c1fcf2791ded819b73b60a80b8e30205036af9f4a05ae34df55b3aca748a87d3d418ab980e3f0e7dcc11b921b72dac6d48030b17c4013714bdb3fc8885f9f5acf5efaf2f200c2437864c65802a309f50bbd7005820039ab55d172a8ef52264e29ca2ebbba72b5d2c4c32309d96f4396cfd9f2a9110490a797c074ad5e289dd0342f56e6e7ebb52cbb9027170d8eb29fa9c46d583b13a9455a73ff226abd41667034fdb3fbb7ba3bd3627e79e3e9417046668d260e8646ac06f48aad77ecf33d454034a3fe4deafe5c4864120fa04d576d0d2d64f1b7156b92b3d623404c31200e6cc038b25c141f6069799ec8c423c27b122672103f78ed099561e2ac640f9243febad030eaaa439f330801088f21311d8ba6fcbf42b0ed791dee126a7881d8e83ebff2203fafc118fadac197cc918403fbf8b25390d6ac63890ed9b1a92db551f0a151c8c0219f7ff03f5e25b00c400f8b1a382e09379f3d94f6b6355422c02e2b77f415d08c6c70e8c03ecdeecc0c8a0cb080f4a69903d9029cfb6d047da5f7172ed497e69412950088403e884cba361f3a328781ed6a0e6be9fa267d36e39dab66d700a84ca8680d90bde03328831a9f5e72bee6ebc5a14bf9e4496c5d232e18554759cbcc0fe80dc912c0c03cf59ae5b50b6e85b762b0d2d1bf5be1790f9a4f1293fb9d8e617ed855f795596036e28c8fdde50e7da7a9707607cbccd1747e17b3a8d59c3069ab0d2911f717ca903500e67a0afe18cdc4de2b71789526a09a94b1c3a2c98a525f81f85a88e96c59a035041b5043a41261bc2c030d0b002ca36a7627260fb0e72b00f82df91804bc5b5032433eed804fa9903bdb7120118a33fd2090cb6a2c762dde44838b15aa54288d40219ffff0219ffff05581d0340879b2d5b5e737f2a554d4136062a4bb26671f48961db0d91185f80070119527605581d0370bc9dc0343235c316cef8469130d1008dd9c69242405189dedd8ac00402021942000219208003716660ca66a92a6eba382b15b17d3f631bb2d877b7ed5e9870169bf2805d39950325cd133467e4093f0ff8838053bc2a3835d582f8a963826ab3411b475ea79da105581e036e3ffb9132dba319d68253401446acfe030c4a3398edd9370ccb827b7004020219f56503800c29703fa123a270169530e2c26fc0b3184f4eb6e7db987180dd307bbe0854032da5586ebe0292a1b1b0ca0fe99bf9398bbb1d849bda1ec323ceeadcfeb8006b037322061d1d7406caad244783b98121c33bb8a36700ddf39e18c55d420237b68603da90d96739a917088c62ca3ba173c65c78754c860f51fb694000565a9d5bf83f03805304a0456a2b69366b8299ea4a3a3cc645b8ecac4af38e710c7ed6b6dbeaf003cc88068457fc1aa2bba1446bd5073c09fcd6cf0c47deea1d8b4c302015243d55031c8c08ea2d41db6d24243f7f8922c3c96bb606e954ab969c308e9d69ac647acf03aa598dbd78adebb2c316b0bba3f197b63670bbb12bdd0189bc594afcd4c8d94903bd88c6cbbd28a4f8c0763005389f38cac7c6417fe5d77eeea197357708cf14f00219ffff0342d823b668529a39d598a8750409121fbcbff121e6400ac6304c81dcbd3e139703fdb191ef11db7340d691ee78ccac53219d113572687282525a48286d137d9f85031bc75ee94e216ec4692d2a772acece04866c062cd4b8396b31b7b894c955959a032ae847edde360b055399c8b8bb6614324a5cb3f8a3296ff726c6d3d37a8a91a003c01fc66c5612cf90dd1ec4c9433017c751fd58c1c6aefc4fb9714bb113abebc103e5516893cfb4f7981c1582d108bd974d05a0dddb3881827ad149a33b6d9f89f8030a2504c2ccaba940a246f11441924eb2dba32b249075550e85d2acba1271105e0219ffff03e1cf018d252f2fdb0c5283a9653bb0a61ee1d74790c9054d379afc014d54357a03e0e8a68cd47a25c9e13d3c994397430ecf0ecfbb2f9cf1e4d4997af852257a8a03e6c7bd338cc1e54bb58e7c7806805d6d895a1a2081b776f21d47c9d9f077d3b8034cd383cc6f30c6cab11e44ae1976f3d3a6ea962a7a30eff80c68c1122f4dfbe703407aed16d5c9ffe69b4e2eb48062ebb3e775fd316cc44d3114757af5c23ec6ac03add4ea69d606edf8f02b06438f99f84deb35a274c84b9f3249ccf3685286d8c5034a530e7f2dacd12e7d580205ab47b848e62ad57f3d4b148bfb7fffb878a880f20219ffff036d5fa69e873c6ce7f7cb8a87e90bd94e636941724e54813d9fe8cd3658ed69ad03504feee347250a2c6001929f47c7dbe9c5df6ef7d1721ed82ec71a6a05107355036719188ea3abec19c454cc9eedaeece72cb139a00907444e93a14d7125b0b81103ce8949b7b5b8571e8ec038ed51d5d3fa9155416fecd2ffbf2199ab2d6dabdaa603f7d8edde34a5727268123ab1f4897446cf76452290d74530acf8e8dbdddd5a3003a9bb6314ec89b2a46fde80ec9ecbcdafaa31eb0cb61e13f0af8468bccc0c957d033d31db3ddfccc38f86964c83f005252a5392d5a0a806b63cbe1f7ab31641fedf03e572db957d4b5db0bc016bbe67a0402090f84d8cff5ec83c201b5c62f5c7a522033bd2c5e8b26a0b0ec6a6c559d07cb4352889ecad2c811131d89fdd0c47ff694c03a58f13c4518828ac732e28822ecd8030895c1a49116f1140dfa30e0f97408a9403f5bf1acc34cfcce07210cfef99e674f7394db1e39cb79b68d80bef2113b8794603802b7b6f5e822fb3e403eb480dd66f7642b395437e27a45fe8440ab4e1b9eb11032cadd9bfac86b4bcd9d1a74c4f354dde54dc3bbc9937961106456a4b16dc884a03cf9c85f7e385d8d6248d0c59edbdfe0254d8042f649253428e8e57bab8b7170b03d2fc0d5c159b519bfc6119c5fafb421217f29517d31124c232d08e7c0ee422a6034c0a8e53fc6b1baafa230ce63cde626e53ea85dbf06e45d90ebe9a360f077e4a03218871c6ddf9c9eb0506cc6c1a859b2f8dc98d31dd36f7439ec7f22068909abd03c49d939a1eb9cb76416a57ed0492dd8dfa667df44823c4882d570c4ab75ee946030ab4b9efd9b1df9ed758bf79f9183089a5869fe58c9c401e0de2918c9af30d6705581e0310719485bda2e2b18e84557b1dcb182165d4bc6ae1bfddf855abb04f000c02467b0e0f079de0039806751c796d16ccf17046ff2b5433cf4b736ea335883ff3eedd0f774621958203e194085c5cdc4f7c024ecdc329bab538a571095275e2960236e97ab5db335b8503cd4300fe5ffe783c0d516087b20e235a8ec7046afa299430e39453e00ec7c44305581e03b7ef227fcc4aea7ba76149ac5a020c2338188906b4cef32edf5a5e09500402030bc41b437519b74f55e41c933ee08195b2cd07505a43d754b4f64fc4790b918d05581e035260dc5fbd7cf9a20348a2c4e4bd5fc9b1bdc0dd83791ff45ec11bba0008480ff56e1a8275e80003fb29904da24e2a77ee6f2d2c1180abc8978464d047d685388abfaccbbaafcda505581e035325e6c217135f6760a11f77019b766ddac682c1f7c12b817425ca12000c181a470fa1c6d503000005581e03ab78749dcdf820111b69c88d16ceece25232688e357f486f7487f1fe500419037805581e03be92fa1dbcb555d8b34868cd812e7b98c4955097e855f477c2cf79768004020219ebbe030a53bd03c8d5763590a0c7b0ac9419081741f14edb3302d824d1d3e28b33540f03239194cd0a8beb90c68cd4b27579f59b7d28bd5c80c62f491159f1741356d31403f285a071be687eef15dc04b8850d104dc46c5155175d937d6952788db27c95260305f2754c2311c6a5e9cfd1db83e2f099b692b1c9ba35504fda9b13fe2816367c035fc469f9e6c2b1c591bd3649eab4fe97e1ebc9fe68af91955b0556c137dd8b9d03686fd7ae3d5dcfc4be60dfc5b036d1e710755afd63d94193ecc950535a252f5b0349be6c8d5be4e8e6f63759769b1ae24dbaf1ef21f524a913a0355ff25b13bba6038e9f831d5330d3d0a171314120f8a5ac07ff104e274cac413d5e697ce60549a10356bc72cb1ec1f5813734f30680119b7b688ffa256a80053c2156460cbeebe95e03dcd4c762576d0434e1e73d2e4e24972232bbff6e98ba5175f3b7d4a02cd7536703c3cf2cc20aaf256f32db7c2a191b2661c6942df84ce4c93da244d7717b1bb114037c39e5b892fb620f6526a38bd170681557117ddea1324e14594d7c57c918662b03a1f4e1d6927157db16681d65157138013231cb062ba3cc01578569e5b49d3bb80219ffff036c1ef1809dce31f1b07954e77aca092ecdf7b5ee8a786134940bb958561e5aa803637e9968243554f9b35f12bb2d7228fe78b74b69c9e2d8879f0b08558772760a0365f5a4aea16b25558081d76cf13c1e82066f727fb298584fc355e6c96d325c4b0219ffff03b80ea9ac249b161cfb497d7f370f4a460441a280bfe74dcaef1f8968ab924542035b96c8f055c4a657be425d945a0d0b5870378c22abb77fed028465f2208c4e3a03476aa6167907b877d8764a0478709a9bbbf00eff6de7e20a4bf5d870e41ddfaa03992953300ba1a223cf3832818dd07655e6cdae9de961e86ca83b635126fb38ed0365bacfd5754c470f5fae5d1697260cac111d597dd6c6e40e0ab76e928f2197c903d6d97717f65f2bf26b0ab936c803ffe3731d4225f12d8de9c0c51240b1d64642033b73ae10df202f6d3d32b2a3475cfe6112a5c6f0cf2cb80033ba31bb74cbb05303b0ad58baed9ee5ec10535d436f2941d0deceb366d2ac4c2c6d64160a73e76da203d48f51e0805db58e7a65826e4c7ae487a8c09e9506f40621d39e8db04bb3d54e03541f87afaaceaf897a561e582df695f2ba1149e98dfbd7b0f6a8ad891403a13603a94fb90d432b8a15e70182e950c57ea42fcd7c12e4dc90bf6e5d89b82e86c41b039bc68ec78d40899bda5e0144561c324b9e62abebb2958749b2178cb747dc65fd03cb956384061c27c1021252a19a041797a5c08dd411c0ad69c73ce08154f9a8ae0219ffff03b8bab1c23c641762f0054ebc7e793e116c6da13ed9ddcc9d3a5e6c1f631ae8470311d12e9b9c8338a3606c3811ee5f06c5d488a9d08cd590be561d8c6095cca6e403f384f301c5d00cd615b43b224037cb3ad0052dda425873cfa89dd5f12575076103ce475d37b8916d7c505c832c9b7b4949075e16cf5311cc9a33d8e3a1f3bbb3fc03f6a8f683594132e74c02fdf0eb46fa6f50ecb0a40bfd3919107e8918bf46b1cf0351d4e5c68c1d422f0469db96391b027b75143bcd8a07cf64904e213589e3be09033b535cc8554c23b496dd2695116efc848e6dae7529259e2c7ba3a96f59bff9cd03fd98d055d3cc5180268289e22088d6a86bad7b30380adf4717fda308e8890ab4037c0484f66b73d5983f0d42491f5849a97ffb330f1713ba3d98ebe27199f2460b037c40d30985569e61c5d5c486d45b4edff7f44dc2128fb586cd13ff3ffa7dd82103de7b8ca7211c87991752673f88ddb7bfc6fdcd9b801cfcaa655c11608996323603120b0d4306b4dcbdba5cddf678c6e131e9e64da6b5218a8017755fd1257cb35403aba9925dd1d475a5aa568d15f985f477b95f81eeacd46b41791ac384ea233f19033f29a7bc1287572ac42daa97bf2d751f2edcda1780f20935aa268b5f64827f3203507baa7798adb3571096a7947b338f62b2a76132178ff2674b614bd2af0124c003c9da82013d6ffc1507ff336df8f531d29333b2e310e61ba420d0705ab4c8951a03c4d865e681886ef60a364d4d812d7c5e98c4dfa842ec55f917f695b4167404330350533d28e4bd2c1fdbd29ba2879727b8cbcca3a800909e2ede8d75a92e87fa7703c58e5f56fb4e94ec8aaf76db71210dd9967655741eb129b42c173deeb8b19fd803a1be9d8c8b82cad731d0f9e3fb1aab6aec5f2d01cdd9321eaba9d6b5b21ecf6d039d95126b70f4c17f50cbb61602ba4e6aed21c8e13d3cdc2d0a5e25cfbaabd94a039ee6ac3050783f38971a7b7f6e3f5ecf6f613fa9fbc2170eb76a2348e3b391be03debb05d0980f46ae691debd6fd5d620bfcf2aac5dde8eec089f8dff71a9a5bcd03a0d959e0c4c784a0193364479d039bc5fe0e4a1fe607e48a1c058a58583267dd03680bd909645c49e1e4057d6fe0b39686acb6be9df0099634512d025c19a272e90394836ed982e61b4f46daf028f7241a23cd14aa5d938eaa867e09ea3e613a621a036d19c3c27c6777d7efd08fe3d5727b98e86d729fc97219cd3f2ee8101a74156803c77863a89af9841a6a65a59aa1ac4007a289ff63c13c5c626a397ea01fb955260309ed7380b6508afaf48e48a51e51df726de96b526f047754c10895a5e4d3bdf903c60b7b9e533ff82ec3439977d7d236e71f33c409d6196a258096a5fbbb11707903432a5bd63817ead2c979d1da510537391e3d6c62f559ea3c18aba3444480b91103d5cb23822b6cee574a7ec1c84032a5899aa86350d373402bea15fd327b03668603c668f636ebd8cd97d6af4e0d668e9c6eda1aef3714baf317bd5d90caea9bbca105581e039fd11d1baa9beb1b1a06a80512b23a813dded1409c44a1ba8d57888430040405581d028be83679e7f4e0316d9c5557fb7a5cdea8d558bd8e7b99a08818c2510402045904cb608060405234801561001057600080fd5b506004361061007d5760003560e01c80639015d3711161005b5780639015d371146100bf578063a20527fc146100fb578063e6c09edf1461010e578063f2fde38b1461012157600080fd5b80635bfa1b6814610082578063715018a6146100975780638da5cb5b1461009f575b600080fd5b6100956100903660046103df565b610134565b005b61009561018e565b6000546040516001600160a01b0390911681526020015b60405180910390f35b6100eb6100cd3660046103df565b6001600160a01b031660009081526001602052604090205460ff1690565b60405190151581526020016100b6565b6100eb610109366004610401565b6101c4565b61009561011c3660046103df565b61028d565b61009561012f3660046103df565b6102d8565b6000546001600160a01b031633146101675760405162461bcd60e51b815260040161015e90610460565b60405180910390fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b031633146101b85760405162461bcd60e51b815260040161015e90610460565b6101c26000610373565b565b3360009081526001602052604081205460ff166102115760405162461bcd60e51b815260206004820152600b60248201526a139bdd08195b98589b195960aa1b604482015260640161015e565b600093508392508291506001600160a01b038716331480156102445750846001600160a01b0316866001600160a01b0316145b1561027f57326000908152600260205260409020544311156102775732600090815260026020526040902043905561027f565b506000610283565b5060015b9695505050505050565b6000546001600160a01b031633146102b75760405162461bcd60e51b815260040161015e90610460565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146103025760405162461bcd60e51b815260040161015e90610460565b6001600160a01b0381166103675760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161015e565b61037081610373565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146103da57600080fd5b919050565b6000602082840312156103f157600080fd5b6103fa826103c3565b9392505050565b60008060008060008060c0878903121561041a57600080fd5b610423876103c3565b9550610431602088016103c3565b945061043f604088016103c3565b9350606087013592506080870135915060a087013590509295509295509295565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea2646970667358221220103dcafe2c1ab4188249fc5484e0e70c346bbce3909234a1dc9453afc30f03a164736f6c634300080a00330338482e0a7cd0a7906290bf914831766af1d2c58dd71e959723658be680a7cd090392446bdb2ecff1dd5271f30fa0755b7bedb0c24dd4e2cc1586035c0c4a7c6d1703e0d6b7bde3036f501610a618be3dcbe18e5475909629903d169ac73cf0b48e5d03e10445746471e9bb0a34e6b596845b41b14a72c4a85b836d7756848b98bea462037e1f4a5d13818428ce075339478494fbc223c9821ce5b4e36e26a6d9bf4ba91603486555b0736047466efef1613cb037f58780ab67cf28a49142124e55c36c1a55005820028b81ebd6607f2d555c6a6b3c9f45aab8a74e67623d98296bc03470958541b144012552f70058200202487d749ab63d74c3005ea030c022879576ef0390c4788a7b00ae81355dab440125689e03010ac0a6d116d3710711896a993c878dea41dd36247dd0dbdf1f0b71291854c60058200237a96c66fa855617b06102e33768ba25cc2f66606f5a3e894cb1e79c2575f3440124a8710310b86e3d70f2b626b96bc9f4ed481d0a089e844b369b0e601b8ea8f107688abc00582002eb8c3430d4b0740ea1c3fc2fac907c914809dec3fdac493f230c6760d326874401257d6f005820028294f25378ca72915d52dd502f50da3d574b30a113311630e3c96f71a9fd4b4101039fbd954bad5bdfd462b21315db293ef1cf857ee7f62ed665bdd94cd1b78a96c2021974ad03b850a2757e3d844986a816539c6996b24e528937f81dbac3a6eb5666a9adaae20363b516a71be58168b8793f9706a7b6f78e73ba096946c37b7e9157cf2aa05294035e86829444f206e3afdd48b4f687359876b8750c16bfbd7eaba8df968f5da649032734e2da849a97aa68b37d55b204e5a42942115e60850008e0ed0917a444ba59035fd24c0062ea0515a963b89598588fe5af370acbfd8adfbe363b3269ae765cae03a2399d897268e450935dd5e8a936c35d20513aed379aa69a8b79dd81219ceaf503342397610afa9eadac0c78f7a6a7c0a0eaae70928bae507f29fa80072355171503a9df0779041c70e3ef0a5227771c95c1b6a1b640f5169c4764388b5f66b142e003e380d31999d0b40c3422949cf7bd51419273737301cf63c1f10e8a7512e881060336f050f410b2f98af90560c3cf5e8a5d514c8d20be83fc9b99e7ef3f00a639bb0219ffff05581d020ffdb6f4f44a755a7b6e06f01d805040489836dd9ab6b6115b5c200007011904cb05581d02bdf88ee150988c5cd14514fd99095aff5e7cede614bd802756ea598c04010219301005581e03b11aafb46e020a3677d05569b3ea053edac9ab1d1f992015b34786e7300c18a84672d54184f10005581e0311ac90d60413aecb695d19bbf034d2ae06cd0f140d81fa626fc2a735f00401033bb11cc08570a05d067bceab7de1585749b664eb4622f67ebe9d0a85ff1a1a9d05581e03e3a9669398ce0550e738be5b57f409f0408ea6eb8f4d669e67f07ecdd00c0f472e6aeaa61e3c2505581e031ce86332c3043bd95e8f8edf4c38416ff71838b9073747c54bca45b2300c03471b3f6b6f2386bc05581e03b471d4b96769ddcc5b55d394d04775d4915d1df74a3b648683e381cc000c181d4649c1d1563e7005581e038cf2f37d35e7261564041209aa3cbe7b2299e096d4a58947926981afa00401038f096757438292d1e45e01a38510cc95960fe65eb1a617c81e501d4538f178b005581e036c913d59cf751f1e93eb354988e274999e82e1038186fffad6680491800c104702788db670f80005581e03dc95ca18aa08d40b52c45160345ccf206a97bf734c812af0676293bf400c181b4701bc0fd71124f80219dcdf039de4571e8b922a16ffd64cde1f84bdf468134f4333599f6e560d11eef18f6bb603fbcaee9abe5af18c8e1112f758105c6c4daf224cc063ba583d481f3127fe998403bd335e61d68ee34cf9cbbff4d54607e736e644b21e1802e58f48d1bef507ce3b0368e4649e441d9c563349a910518d21f4fcf01dc4ca54320b8b76a57da0f39cb803766bc18056b4a481d499bf1eb721dbdbd7e05bf8cf40d5f7c2d10891ff6ce1ff0399f376db734cae67d1d7ba49bfb92607239df7534873cfd6ec78830565c2d05b03c8a8059315e2456c999ce9ee620b020202c7f3489c78ac5e65995652a28237f903f417234ced24a70c3d1a56cf3ed84a908f5f947d8e1890f693f9b9df2d42bf7f0219ffff0219ffff03726fc4a77956fc1dd84b1ab3e6d4df446947ea933af22d2b434ab5444f49eba60382c0e2516d570a44169ad23b0921cfd22f8b88b5552611937b418b12e06e718e03e1658e0e1f3aa85037d34654f93284d1677ef8a2cc89b2f3237018a0ad0a4c22038756ec80394b86090f7cea808d4c8d8d7a98c2f6a2813f6966a994b3722083290345020a966e48b3a4168f370a411eb4a384f198fc27bcee590a7d095ab66df97a039ee5f45a0eb2731b7cad122c3d3901570113b589e75815c5ba273e7a1d934ca9038e226eeb103a471238a00116918f9dc5fbd3d426b9fcac729f2ed7f613d265d603e28b090ab3cfb0134091c37def1bf2e6af9b6eee94d525f395b1f7ee46bafcb903e1afd39e5617253d6dc4384aa3e726a6b0d4ff55d096126c61a8d27374671201032aafdb14e157e54d64c2589a319eeea4f6d2080b1f8c588fd56c72e5010a5b6c03068589075f8cf5fe481e7d37cd62ee4f67cfa34edf4b1f5cb6d600957bf09ded03f6186105600c743a294f6e19a9397a8f18cba6cf840b567d40db43d66460531b03b31ccd0e4987672e85651e2e8d85333042b67ae4d8dfb380e87d47e695b8d6440219ffff0331c101ed6b4e59f4708268833b6b455fcb3741067fe97210c92f75e2e33a4fd40219ffff03974f915ac0621d2251d4fbc3d67e8e32543495ac6dc0e1543e6bc7fea5ad7082032918c5322d574a419508f59de28e173701a00960d2de62c3c5c65ec687e292b4032ed099b50f08727bfbe96cf2342e0946d850a424025c3ff6c37e5ac8b6a5bebd03f5ba720c9000bb008e8f2ab59c94b5c7b72ad533ca461508e3e8c830766786ec0315df0a5411117e2f26faff6d94364dbb64d7f4ca7bcac23279149b76667044750381eaa67c1d4c32814e19ec022dc81b909f6b44cc9fd47afb4505de1159363c4c03be203597fc81f7275338abdd1877feeeaed9b7aa39d9758f2af025219a60c19303770c5861d79a6d056f6366a3c72fb81a70ce45a05e5da261ad991f31d9543de40365d4aeb72c1bdd125e1e7c17fb29e2cf8b54b2ae03ccdfd4aa141b4354766953038ad7152cdeb451539d6ddc34efca68d33c61663c38741723085cbe799e256f28038abc53ac189904cf43b05d70a872cfdc669e8bfa8903f064826e3e5f4c4ec891037c8c01d8a29f2a4b22adad122d14a704bffe71ddeb6800ac9c75c7a645a08c9d03d86c0a8f5d1011a273f2137b79fa395ac7a13abcd0795378644eba450cb4450503b019ccbb5f121f1cbe24b3187d5c8eeb783d9cb1f1ec20ae7bbd04a35c8dbbe4032bb03e5aa30780999b4a6953034eea464f8088c7407c321784a25659b118e06c03a76fbbda8099d038878c0a8460651beb4d0e130ccf89e367be546ff44507c826034285c17476d431ce1489d750112038abc33929525345f1e767df721476e2d62603ae5af259152511f953f8526bf3b5a01fe3d5563432656b142b035470646b3978038a699e9a48b79be2734682f4fe9ddf91443c6b4eea3d24ddea83e3a8b4644ba303d40f3b3f1ae435a483906909b02c1597b326d434a1b907d31e00ddc7f2fa52420370abb791310319587c42f9c8636e82cb231807a9ac67a20a8f7efd958fdded3d0325baaf5af998f577e2ee87cebeee88d89324a87050e6b53289a277547d0725f803af267636c6b38b39042eb71c04840eef4c67e38fde1ccdeab3d081641ce0ac970332655acde5ebc8ed46ac76ba668c6f3c3642755d7483a42e4941c8f7d8c522be038a9798a74786b03afafb2eb8d7e0a1204d01626a6faad5227330b1f60746b63403887fdceb4eab82e0334dd04dfc3334085f967fa35e025b761767916b18d3afa503a6f56b69d6b49b48e93da96b7c4f625ff078f249a450d6373d96f6853ac18c71031fd6242e2bbdfe759fc9354a7b80dab63c1358c4ec0fd5abbaf71399f9bc40f4035dd53d890a827581c994cf22859c7d6e013f49c889ef4a8d3bcd3db9a53c0c6d030c2186522bf9f4fa2ae4eb525dc2d90dcdc0af345ea146824587d6c9bd02be33037b4af6f0b8b7baa1340ab430d810286610a54b1b847741d3f29a60b59dbe176503c0f1568ed2f8ba3d71ac17732d54597bfce92d4d30ed05060b5465f47901ddf503d838d459103f57d94739bc2cf263cc176c983713a409755756aa53b78ebec6a503f52566be39533ac750ece1a750dd72e908b3b1df7ff036aa7ec29be1ff8c42f705581e03294d72419c8129d34c46cdd908dc329b8c3175612f7efc4680b9e904300c024636f3be42d5e003975605c654f3f24e28616e7d49daf15b343673ac97f6d7d63a0e688e6df8004f036645a7f99acc2a2204874ac8434f3de00bb2cdcc03eb09ecf1ce7c2dea42e72503e85e2ba81e7ee871fd13fb41081b86bbdf8dd1af20e8c493891b9e2c73f6beb205581e0357e53d84dfb3b63e0230c01ae61b7c79f7eeec621d7c6842f2c8e344200401045948af608060405234801561001057600080fd5b50600436106102745760003560e01c80636605bfda11610151578063a328f135116100c3578063c5f956af11610087578063c5f956af14610771578063d1efebfe1461078f578063d547741f146107ad578063d8427cce146107c9578063dd62ed3e146107f9578063e8738c9e1461082957610274565b8063a328f135146106bd578063a457c2d7146106d9578063a9059cbb14610709578063adc557d414610739578063bc949df81461075557610274565b80638456cb59116101155780638456cb591461060f5780638705fcd41461061957806391d148541461063557806395d89b41146106655780639f4e14b014610683578063a217fddf1461069f57610274565b80636605bfda14610569578063691e44091461058557806370a08231146105a3578063769ac726146105d3578063826e14a0146105f157610274565b8063313ce567116101ea57806341275358116101ae57806341275358146104a557806342966c68146104c35780634c67fedd146104df5780635600f04f1461050f5780635c1161761461052d5780635c975abb1461054b57610274565b8063313ce5671461040157806336568abe1461041f578063395093511461043b5780633f4ba83a1461046b57806340c10f191461047557610274565b806323b872dd1161023c57806323b872dd14610331578063248a9ca314610361578063252498a21461039157806325daa8f9146103ad57806329012777146103c95780632f2ff15d146103e557610274565b806301ffc9a7146102795780630369795d146102a957806306fdde03146102c5578063095ea7b3146102e357806318160ddd14610313575b600080fd5b610293600480360381019061028e9190613552565b610847565b6040516102a09190613af5565b60405180910390f35b6102c360048036038101906102be9190613369565b6108c1565b005b6102cd6109df565b6040516102da9190613b4f565b60405180910390f35b6102fd60048036038101906102f89190613459565b610a71565b60405161030a9190613af5565b60405180910390f35b61031b610b2b565b6040516103289190613ea7565b60405180910390f35b61034b600480360381019061034691906133ce565b610b35565b6040516103589190613af5565b60405180910390f35b61037b600480360381019061037691906134ed565b610b93565b6040516103889190613b10565b60405180910390f35b6103ab60048036038101906103a6919061357b565b610bb3565b005b6103c760048036038101906103c291906135c0565b610c35565b005b6103e360048036038101906103de9190613495565b610cbf565b005b6103ff60048036038101906103fa9190613516565b610e04565b005b610409610e2d565b6040516104169190613ec2565b60405180910390f35b61043960048036038101906104349190613516565b610e36565b005b61045560048036038101906104509190613459565b610eb9565b6040516104629190613af5565b60405180910390f35b610473610f15565b005b61048f600480360381019061048a9190613459565b610f52565b60405161049c9190613af5565b60405180910390f35b6104ad610fe3565b6040516104ba9190613ada565b60405180910390f35b6104dd60048036038101906104d891906135e9565b611009565b005b6104f960048036038101906104f49190613369565b61111e565b6040516105069190613af5565b60405180910390f35b610517611174565b6040516105249190613b4f565b60405180910390f35b610535611202565b6040516105429190613b10565b60405180910390f35b610553611226565b6040516105609190613af5565b60405180910390f35b610583600480360381019061057e9190613369565b61123d565b005b61058d61135b565b60405161059a9190613e71565b60405180910390f35b6105bd60048036038101906105b89190613369565b61136f565b6040516105ca9190613ea7565b60405180910390f35b6105db6113b7565b6040516105e89190613b10565b60405180910390f35b6105f96113db565b6040516106069190613e71565b60405180910390f35b6106176113ef565b005b610633600480360381019061062e9190613369565b61142c565b005b61064f600480360381019061064a9190613516565b61154a565b60405161065c9190613af5565b60405180910390f35b61066d6115b5565b60405161067a9190613b4f565b60405180910390f35b61069d60048036038101906106989190613495565b611647565b005b6106a761178c565b6040516106b49190613b10565b60405180910390f35b6106d760048036038101906106d291906135c0565b611793565b005b6106f360048036038101906106ee9190613459565b61181d565b6040516107009190613af5565b60405180910390f35b610723600480360381019061071e9190613459565b611879565b6040516107309190613af5565b60405180910390f35b610753600480360381019061074e919061341d565b6118df565b005b61076f600480360381019061076a919061341d565b6119bb565b005b610779611a97565b6040516107869190613ada565b60405180910390f35b610797611abd565b6040516107a49190613b10565b60405180910390f35b6107c760048036038101906107c29190613516565b611ae1565b005b6107e360048036038101906107de9190613369565b611b9b565b6040516107f09190613af5565b60405180910390f35b610813600480360381019061080e9190613392565b611bf1565b6040516108209190613ea7565b60405180910390f35b610831611c78565b60405161083e9190613ada565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108ba57506108b982611c9e565b5b9050919050565b7f74088672d183ee797e5da8fa05521697933bd36698c07546fac57bdf4023d8776108f3816108ee611d08565b611d10565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095a90613cf1565b60405180910390fd5b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff969c24a8a0595d2bcb85bd09a812f6187445db55920ea0fc903af6b6d290b19826040516109d39190613ada565b60405180910390a15050565b6060600380546109ee90614130565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1a90614130565b8015610a675780601f10610a3c57610100808354040283529160200191610a67565b820191906000526020600020905b815481529060010190602001808311610a4a57829003601f168201915b5050505050905090565b6000610a7b611226565b15610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab290613c71565b60405180910390fd5b6000821480610ada57506000610ad8610ad2611d08565b85611bf1565b145b610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1090613c11565b60405180910390fd5b610b238383611dad565b905092915050565b6000600254905090565b6000610b3f611226565b15610b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7690613c71565b60405180910390fd5b610b8a848484611dcb565b90509392505050565b600060066000838152602001908152602001600020600101549050919050565b7f74088672d183ee797e5da8fa05521697933bd36698c07546fac57bdf4023d877610be581610be0611d08565b611d10565b8282600a9190610bf69291906131b4565b507fa526605fac7f1dc4850009685abed44eab6662a9e27088bbbf0f04c64a3510ff8383604051610c28929190613b2b565b60405180910390a1505050565b7f74088672d183ee797e5da8fa05521697933bd36698c07546fac57bdf4023d877610c6781610c62611d08565b611d10565b81600d60146101000a81548161ffff021916908361ffff1602179055507f041d550054b18d2619c4d3ec3b68c38bde809d82df4014821bf9c550b161adf582604051610cb39190613e8c565b60405180910390a15050565b7f7100d427dec4d84128633ececd9e234641183788c2749fc3a4aa24ea8f5cfaf1610cf181610cec611d08565b611d10565b60c8848490501115610d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2f90613cb1565b60405180910390fd5b60005b84849050811015610dfd578260096000878785818110610d84577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610d999190613369565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610df590614162565b915050610d3b565b5050505050565b610e0d82610b93565b610e1e81610e19611d08565b611d10565b610e288383611ec3565b505050565b60006004905090565b610e3e611d08565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea290613e31565b60405180910390fd5b610eb58282611fa4565b5050565b6000610ec3611226565b15610f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efa90613c71565b60405180910390fd5b610f0d8383612086565b905092915050565b7f74088672d183ee797e5da8fa05521697933bd36698c07546fac57bdf4023d877610f4781610f42611d08565b611d10565b610f4f612132565b50565b60007f27f406f19fd1b378cfb619bc553f0cd86d17e85e38ecad46997fb68ad17b7307610f8681610f81611d08565b611d10565b610f8e611226565b15610fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc590613c71565b60405180910390fd5b610fd884846121d4565b600191505092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f27f406f19fd1b378cfb619bc553f0cd86d17e85e38ecad46997fb68ad17b730761103b81611036611d08565b611d10565b611043611226565b15611083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107a90613c71565b60405180910390fd5b6110ae600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661111e565b156110ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e590613c91565b60405180910390fd5b61111a600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361222b565b5050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a805461118190614130565b80601f01602080910402602001604051908101604052809291908181526020018280546111ad90614130565b80156111fa5780601f106111cf576101008083540402835291602001916111fa565b820191906000526020600020905b8154815290600101906020018083116111dd57829003601f168201915b505050505081565b7f7100d427dec4d84128633ececd9e234641183788c2749fc3a4aa24ea8f5cfaf181565b6000600560009054906101000a900460ff16905090565b7f74088672d183ee797e5da8fa05521697933bd36698c07546fac57bdf4023d87761126f8161126a611d08565b611d10565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d690613d11565b60405180910390fd5b81600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2da35e50a3bb076634a9153a1c564dc96f7f0c271659aba48da4d64a345862a08260405161134f9190613ada565b60405180910390a15050565b600d60169054906101000a900461ffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f27f406f19fd1b378cfb619bc553f0cd86d17e85e38ecad46997fb68ad17b730781565b600d60149054906101000a900461ffff1681565b7f74088672d183ee797e5da8fa05521697933bd36698c07546fac57bdf4023d8776114218161141c611d08565b611d10565b611429612402565b50565b7f74088672d183ee797e5da8fa05521697933bd36698c07546fac57bdf4023d87761145e81611459611d08565b611d10565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c590613cd1565b60405180910390fd5b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2eec4955c60aed203f2c6110d271447fa13486ce3cc790d2babb1f430333f8b68260405161153e9190613ada565b60405180910390a15050565b60006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6060600480546115c490614130565b80601f01602080910402602001604051908101604052809291908181526020018280546115f090614130565b801561163d5780601f106116125761010080835404028352916020019161163d565b820191906000526020600020905b81548152906001019060200180831161162057829003601f168201915b5050505050905090565b7f7100d427dec4d84128633ececd9e234641183788c2749fc3a4aa24ea8f5cfaf161167981611674611d08565b611d10565b60c88484905011156116c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b790613cb1565b60405180910390fd5b60005b8484905081101561178557826008600087878581811061170c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906117219190613369565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061177d90614162565b9150506116c3565b5050505050565b6000801b81565b7f74088672d183ee797e5da8fa05521697933bd36698c07546fac57bdf4023d8776117c5816117c0611d08565b611d10565b81600d60166101000a81548161ffff021916908361ffff1602179055507f5a1a778683f8d6b7d9ecf2c638978defe0e5be8eb3c7e8b44ef5739af7a263ec826040516118119190613e8c565b60405180910390a15050565b6000611827611226565b15611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185e90613c71565b60405180910390fd5b61187183836124a5565b905092915050565b6000611883611226565b156118c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ba90613c71565b60405180910390fd5b6118d56118ce611d08565b8484612590565b6001905092915050565b7f7100d427dec4d84128633ececd9e234641183788c2749fc3a4aa24ea8f5cfaf16119118161190c611d08565b611d10565b81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff167fcfe46c62af295af2b77073f8acd67671940bbc7233cf706c8c3121a4b433d6ab836040516119ae9190613af5565b60405180910390a2505050565b7f7100d427dec4d84128633ececd9e234641183788c2749fc3a4aa24ea8f5cfaf16119ed816119e8611d08565b611d10565b81600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff167f47854abc7d67450d5880b73dc960fdfcd0384600ed3c6d699087db79f44ae70683604051611a8a9190613af5565b60405180910390a2505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f74088672d183ee797e5da8fa05521697933bd36698c07546fac57bdf4023d87781565b611aea82610b93565b611afb81611af6611d08565b611d10565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8390613d91565b60405180910390fd5b611b968383612883565b505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b611d1a828261154a565b611da957611d3f8173ffffffffffffffffffffffffffffffffffffffff1660146128ac565b611d4d8360001c60206128ac565b604051602001611d5e929190613aa0565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da09190613b4f565b60405180910390fd5b5050565b6000611dc1611dba611d08565b8484612ba6565b6001905092915050565b6000611dd8848484612590565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611e23611d08565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9a90613d31565b60405180910390fd5b611eb785611eaf611d08565b858403612ba6565b60019150509392505050565b611ecd828261154a565b611fa05760016006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611f45611d08565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b611fae828261154a565b156120825760006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612027611d08565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000612128612093611d08565b8484600160006120a1611d08565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121239190613f04565b612ba6565b6001905092915050565b61213a611226565b612179576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217090613bb1565b60405180910390fd5b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6121bd611d08565b6040516121ca9190613ada565b60405180910390a1565b6121dd82611b9b565b1561221d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221490613df1565b60405180910390fd5b6122278282612d71565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561229b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229290613d51565b60405180910390fd5b6122a782600083612ed1565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561232d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232490613bd1565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546123849190613fe5565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123e99190613ea7565b60405180910390a36123fd83600084612ed6565b505050565b61240a611226565b1561244a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244190613c71565b60405180910390fd5b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861248e611d08565b60405161249b9190613ada565b60405180910390a1565b600080600160006124b4611d08565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015612571576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256890613e11565b60405180910390fd5b61258561257c611d08565b85858403612ba6565b600191505092915050565b6125998361111e565b156125d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d090613c51565b60405180910390fd5b6125e282611b9b565b15612622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261990613d71565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806126cb5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156126e0576126db838383612edb565b61287e565b600061271090506000600d60149054906101000a900461ffff1661ffff1690506000600d60169054906101000a900461ffff1661ffff169050600061272e828461315c90919063ffffffff16565b9050600061277d600a61276f600561276189612753888d61317290919063ffffffff16565b61318890919063ffffffff16565b61315c90919063ffffffff16565b61318890919063ffffffff16565b905060006127cc600a6127be60056127b08a6127a28a8e61317290919063ffffffff16565b61318890919063ffffffff16565b61315c90919063ffffffff16565b61318890919063ffffffff16565b905060006127e3828461319e90919063ffffffff16565b905060006127fa848a61319e90919063ffffffff16565b90506128078b8b83612edb565b600082111561283e5761283d8b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612edb565b5b6000831115612875576128748b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685612edb565b5b50505050505050505b505050565b61288c82610b93565b61289d81612898611d08565b611d10565b6128a78383611fa4565b505050565b6060600060028360026128bf9190613f8b565b6128c99190613f04565b67ffffffffffffffff811115612908577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561293a5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612998577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612a22577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612a629190613f8b565b612a6c9190613f04565b90505b6001811115612b58577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110612ad4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b828281518110612b11577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612b5190614106565b9050612a6f565b5060008414612b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9390613b71565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0d90613dd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7d90613bf1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612d649190613ea7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd890613e51565b60405180910390fd5b612ded60008383612ed1565b8060026000828254612dff9190613f04565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e549190613f04565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612eb99190613ea7565b60405180910390a3612ecd60008383612ed6565b5050565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4290613db1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb290613b91565b60405180910390fd5b612fc6838383612ed1565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561304c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161304390613c31565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130df9190613f04565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131439190613ea7565b60405180910390a3613156848484612ed6565b50505050565b6000818361316a9190613f04565b905092915050565b600081836131809190613f8b565b905092915050565b600081836131969190613f5a565b905092915050565b600081836131ac9190613fe5565b905092915050565b8280546131c090614130565b90600052602060002090601f0160209004810192826131e25760008555613229565b82601f106131fb57803560ff1916838001178555613229565b82800160010185558215613229579182015b8281111561322857823582559160200191906001019061320d565b5b509050613236919061323a565b5090565b5b8082111561325357600081600090555060010161323b565b5090565b600081359050613266816147ef565b92915050565b60008083601f84011261327e57600080fd5b8235905067ffffffffffffffff81111561329757600080fd5b6020830191508360208202830111156132af57600080fd5b9250929050565b6000813590506132c581614806565b92915050565b6000813590506132da8161481d565b92915050565b6000813590506132ef81614834565b92915050565b60008083601f84011261330757600080fd5b8235905067ffffffffffffffff81111561332057600080fd5b60208301915083600182028301111561333857600080fd5b9250929050565b60008135905061334e8161484b565b92915050565b60008135905061336381614862565b92915050565b60006020828403121561337b57600080fd5b600061338984828501613257565b91505092915050565b600080604083850312156133a557600080fd5b60006133b385828601613257565b92505060206133c485828601613257565b9150509250929050565b6000806000606084860312156133e357600080fd5b60006133f186828701613257565b935050602061340286828701613257565b925050604061341386828701613354565b9150509250925092565b6000806040838503121561343057600080fd5b600061343e85828601613257565b925050602061344f858286016132b6565b9150509250929050565b6000806040838503121561346c57600080fd5b600061347a85828601613257565b925050602061348b85828601613354565b9150509250929050565b6000806000604084860312156134aa57600080fd5b600084013567ffffffffffffffff8111156134c457600080fd5b6134d08682870161326c565b935093505060206134e3868287016132b6565b9150509250925092565b6000602082840312156134ff57600080fd5b600061350d848285016132cb565b91505092915050565b6000806040838503121561352957600080fd5b6000613537858286016132cb565b925050602061354885828601613257565b9150509250929050565b60006020828403121561356457600080fd5b6000613572848285016132e0565b91505092915050565b6000806020838503121561358e57600080fd5b600083013567ffffffffffffffff8111156135a857600080fd5b6135b4858286016132f5565b92509250509250929050565b6000602082840312156135d257600080fd5b60006135e08482850161333f565b91505092915050565b6000602082840312156135fb57600080fd5b600061360984828501613354565b91505092915050565b61361b81614019565b82525050565b61362a8161402b565b82525050565b61363981614037565b82525050565b600061364b8385613ee8565b93506136588385846140c4565b61366183614238565b840190509392505050565b600061367782613edd565b6136818185613ee8565b93506136918185602086016140d3565b61369a81614238565b840191505092915050565b60006136b082613edd565b6136ba8185613ef9565b93506136ca8185602086016140d3565b80840191505092915050565b60006136e3602083613ee8565b91506136ee82614249565b602082019050919050565b6000613706602383613ee8565b915061371182614272565b604082019050919050565b6000613729601483613ee8565b9150613734826142c1565b602082019050919050565b600061374c602283613ee8565b9150613757826142ea565b604082019050919050565b600061376f602283613ee8565b915061377a82614339565b604082019050919050565b6000613792601383613ee8565b915061379d82614388565b602082019050919050565b60006137b5602683613ee8565b91506137c0826143b1565b604082019050919050565b60006137d8601183613ee8565b91506137e382614400565b602082019050919050565b60006137fb601083613ee8565b915061380682614429565b602082019050919050565b600061381e601383613ee8565b915061382982614452565b602082019050919050565b6000613841601983613ee8565b915061384c8261447b565b602082019050919050565b6000613864601783613ee8565b915061386f826144a4565b602082019050919050565b6000613887601c83613ee8565b9150613892826144cd565b602082019050919050565b60006138aa601c83613ee8565b91506138b5826144f6565b602082019050919050565b60006138cd602883613ee8565b91506138d88261451f565b604082019050919050565b60006138f0602183613ee8565b91506138fb8261456e565b604082019050919050565b6000613913601483613ee8565b915061391e826145bd565b602082019050919050565b6000613936601d83613ee8565b9150613941826145e6565b602082019050919050565b6000613959602583613ee8565b91506139648261460f565b604082019050919050565b600061397c602483613ee8565b91506139878261465e565b604082019050919050565b600061399f601783613ef9565b91506139aa826146ad565b601782019050919050565b60006139c2601183613ee8565b91506139cd826146d6565b602082019050919050565b60006139e5602583613ee8565b91506139f0826146ff565b604082019050919050565b6000613a08601183613ef9565b9150613a138261474e565b601182019050919050565b6000613a2b602f83613ee8565b9150613a3682614777565b604082019050919050565b6000613a4e601f83613ee8565b9150613a59826147c6565b602082019050919050565b613a6d8161406d565b82525050565b613a7c816140b2565b82525050565b613a8b8161409b565b82525050565b613a9a816140a5565b82525050565b6000613aab82613992565b9150613ab782856136a5565b9150613ac2826139fb565b9150613ace82846136a5565b91508190509392505050565b6000602082019050613aef6000830184613612565b92915050565b6000602082019050613b0a6000830184613621565b92915050565b6000602082019050613b256000830184613630565b92915050565b60006020820190508181036000830152613b4681848661363f565b90509392505050565b60006020820190508181036000830152613b69818461366c565b905092915050565b60006020820190508181036000830152613b8a816136d6565b9050919050565b60006020820190508181036000830152613baa816136f9565b9050919050565b60006020820190508181036000830152613bca8161371c565b9050919050565b60006020820190508181036000830152613bea8161373f565b9050919050565b60006020820190508181036000830152613c0a81613762565b9050919050565b60006020820190508181036000830152613c2a81613785565b9050919050565b60006020820190508181036000830152613c4a816137a8565b9050919050565b60006020820190508181036000830152613c6a816137cb565b9050919050565b60006020820190508181036000830152613c8a816137ee565b9050919050565b60006020820190508181036000830152613caa81613811565b9050919050565b60006020820190508181036000830152613cca81613834565b9050919050565b60006020820190508181036000830152613cea81613857565b9050919050565b60006020820190508181036000830152613d0a8161387a565b9050919050565b60006020820190508181036000830152613d2a8161389d565b9050919050565b60006020820190508181036000830152613d4a816138c0565b9050919050565b60006020820190508181036000830152613d6a816138e3565b9050919050565b60006020820190508181036000830152613d8a81613906565b9050919050565b60006020820190508181036000830152613daa81613929565b9050919050565b60006020820190508181036000830152613dca8161394c565b9050919050565b60006020820190508181036000830152613dea8161396f565b9050919050565b60006020820190508181036000830152613e0a816139b5565b9050919050565b60006020820190508181036000830152613e2a816139d8565b9050919050565b60006020820190508181036000830152613e4a81613a1e565b9050919050565b60006020820190508181036000830152613e6a81613a41565b9050919050565b6000602082019050613e866000830184613a64565b92915050565b6000602082019050613ea16000830184613a73565b92915050565b6000602082019050613ebc6000830184613a82565b92915050565b6000602082019050613ed76000830184613a91565b92915050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000613f0f8261409b565b9150613f1a8361409b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f4f57613f4e6141ab565b5b828201905092915050565b6000613f658261409b565b9150613f708361409b565b925082613f8057613f7f6141da565b5b828204905092915050565b6000613f968261409b565b9150613fa18361409b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613fda57613fd96141ab565b5b828202905092915050565b6000613ff08261409b565b9150613ffb8361409b565b92508282101561400e5761400d6141ab565b5b828203905092915050565b60006140248261407b565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006140bd8261406d565b9050919050565b82818337600083830152505050565b60005b838110156140f15780820151818401526020810190506140d6565b83811115614100576000848401525b50505050565b60006141118261409b565b91506000821415614125576141246141ab565b5b600182039050919050565b6000600282049050600182168061414857607f821691505b6020821081141561415c5761415b614209565b5b50919050565b600061416d8261409b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156141a05761419f6141ab565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f417070726f76653a207a65726f20666972737400000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c6973743a2073656e646572000000000000000000000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f426c61636b6c6973743a20747265617375727900000000000000000000000000600082015250565b7f42617463683a20746f6f206d616e792061646472657373657300000000000000600082015250565b7f66656520616464726573732063616e6e6f742062652030000000000000000000600082015250565b7f62736f20706f6f6c20616464726573732063616e6e6f74206265203000000000600082015250565b7f747265617375727920616464726573732063616e6e6f74206265203000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c6973743a20726563697069656e74000000000000000000000000600082015250565b7f737570657261646d696e2063616e206e6f74206265206368616e676564000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f426c61636b6c6973743a20746172676574000000000000000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6147f881614019565b811461480357600080fd5b50565b61480f8161402b565b811461481a57600080fd5b50565b61482681614037565b811461483157600080fd5b50565b61483d81614041565b811461484857600080fd5b50565b6148548161406d565b811461485f57600080fd5b50565b61486b8161409b565b811461487657600080fd5b5056fea2646970667358221220a49323b2f8c8b27cbf9dd2346b5a7df5b9032f55ed4b9ce73edcd7f6b226aaa764736f6c6343000804003303dfecd36b901abc7127d03be11b14027fca3c623a65674050db9f032f9e53117f03ea9a7ef84ae5ea38618f37955ffd71c12b4253e199c7c394e5ec65c31f99930503d13f82873759aaadc16abb9bd7c4f8c364ca57153dc92da06102f4b9e8ac08fc00582003d70b148d11f17b6effb97e3dc611449506ca624d5f8fc11c29896eddf45bf04458b1d75000582003642ffcd042ab49d1ede000e2fa96d6043fb442a833f38953d9c925320b5f30447188f1000058200302b5ce7a88ba3615b5806be6af0e34ae93c194a3d1e5dd9f01626fd809e0a04408583b0000582003ba175a41ce5b28c537867a2026d4b27c3eb06e03f0f26ea1206e190d4eed80440e4e1c0000582003db9d63e0cd5c3ea3d878ae4c2fbcbdfb3985d6637add29acf0bb5c4fd85f80410100582003ebf90460e25eae4753191661526ca56a6a9ae7840dbe42d6d204690f4cf52045017b9d65800219544603d90f32137e53fc265c5ab133ed9474579c295c6ced92ef167b9cad614be4349403a4ab8a9c059a8741f8124fd7a359ae22012ff955276a920fd37ae182a41b16210332a23eeb032459f6d26184e6a7a6d770bf2e8ac47294c7bfb2d7c8d9682505ed03900f5c15328211e625a68adbf6f4b06307005ad9fc97e0180baafd3ce45dab8603422c93832a58c25432ad5e02b18f10f859ee2c9d28a79343b0fe425e81c493e303262ad0c9392963145c17929c16a11d38417a542ad58f300261b713bfa832624b0354a8235392f52c48aff4483d0724ce9598c02df01fd143b1b93146baf21d9537038248220b06c195bda181715d15f08d920283b123e6a8019f622c2184a6fcca39014100038deafbdbd32ca06c265c37ab58947c09e93398cded1ce65f4187cd2716838a3b03c8056b8e318babf072c7c9bc474fc3fba42291aa8a8eafbac93b1eb745e0067e03462db3d886dd76538e7c499b2578e48f16525a906c1708f93d67dab78b727018032bde24bfe5a191d3a71ecb6f26cd169e816d2d3cf3c348639e52a2b1736d0a710219ffff03e987546fac4f3b0cab2e0a2e22b175c8e1e9aee2ddd9936b21f81a3b7d12048503bd6eeb22f7fa73fcd7e1657f3e5fad483cb064d028002dfe717a7c2b29e7a86d005820029976019a81d81a1f8f1f9e67bb5597e9f7a3ae152436185711db0c1e3cb07c44086f431803996ce713a7fa79eef586ad87bc56ff89ab7d4cbd55ebfe3a465cf18eba60f5ba032b5511195e6d37ca6214e034a995ded34f4641847da484424b9530a1dfcf242400582003ed796869aa8890bf65fee3fe6f87da446e3c34c15332fdf71def68d6011cd0442cb4178000582003f3c8a27b080496a29d94877c87ab9023254dc07a70314e2bf930e6998b13c044042c1d800219108403db885404c2d8190524a464285ee6554a1e0526e04e24ff59c3542fcf95d209480305e1f13719620b9327c3337064fbdb8afe9f427ffaec5a272ca1fe70cb067ed903d461f5e9fdc98887dea670575f5a1f0ad15fad29b616a9f6f6530624be4b98c4039f48352505568472829699fc788cd88302f5923db1ae807b450b2e50788a939203d3de666c422459d3d0e2d99f967a8f24a4a8921286d83ac0fb6e4a60027bb1e7031535802e0b648145d1c5e5244773fbaf0a5d419a550ae31474c2cd99b8267abe039d8e9810d3ecc40ad4efcaab591a5026ecc7a035f7b4d0d3933a7a71c199407703d228b1b87f40df8fe7bea61c055671fbeafc0f1f3d401d67fc115ec616e24b11039d874fbec0f317544dbfde624275fe02de1af8f354c7d76d6a971d0eb5db9634036eda774d8af3a136a0540c0dac3bc85c3a5d3d7e666d6dcb23fee766be87ee23032d95e53c90dbdacc71e4b99b054f179acbc1b5a7fe3553e8829c783e9833d9ff03e63f0268086f45c6fb7366affcb4909302c54457f5e24f4a5b3305bbd36c916c034b90a48041be18982cb967087a7efe3478c1c7027ca7a08396b8a0431218a8360219ffff005820025787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace457d38a2bdee037137598dcdcef1d0bde494978467b14753fdda8fbaba5702f1ecd168b1cbe8db03d37ff30b5922b6a9a4baef80b32215ad72466b2da44bd7039eb7b812aed08f5303d9eaae683dedd6ba46c543fde11e0d40f69f2ab8d382f6201410ae97db14caa30339f92b83705cb8b385ff5bd808d8a2ccd76e44f7d33e85597da0e985cbd0b43d032302cc4b8c52030e98cd1a37a2d8c1794644b54805c25fef9adce3109e85c439030192f56fbbb8e714648a07903c2990cc9f6492a98ae6d563e930eb4f5137369700582002c0866069173943da205dd7f8b8ae04501624817de4e1b82b28cdab08bbd2754101038a768569c68e16d941797f361d274fb151353c1eae179f3ac9c46d92ec5d5af003d050a2d4197ffd5a992fe53912d4a751f96d13f8dd80fb094236f76a9249b80700582002d858399ef383d9f2ad4597aa00b5a28028dd8710dee54ab789b0d2cd155e204101005820024ba4259ea772f607a30753e2c821353b70b88a2ea3303a19ff3b53ac1a0a4b4101033641cbcc0d5794bc281271bc4cb5a2b91b5b9e02a3af1c4cb70df1495148ed6e03c8162c7938dbac10a266079be19c86c963e2d8516b02a4ec40b10cb8a659def603389540f8b353e906e444a01ef8e7e740ae05eb1ce6d8b5ecd65ea9d3651d355c0219ff7f036ead6fe8e2a4cc1eb326c137c31fa6f3c43945acaf3fa4e83d72a7088699fee703d7742ff74141c1283d5f64b17339d5802494c9231d4ec8d33fc696a99fd74cf603816c6395bd4ba1294c7f684ae81bca0ad071d6288219c71806cc3653008df70003733bb322b38a5f4bd5e01bd9da42af57131103a0a20021d6e6f093bbdd49752c03d272f416f8245ad14dab2950a728c34bdb449b9b38c7ae447b812dfabf563df103663efaa3f4206649cb4760a1da32fe5d644f5b635b4bd94867fe6a52d90c291d03b0dd75c34f0e37963d883c66b6429b9e6c5ba1e53d60f7c3a9c762b2b9068591035609417dafa740a6a8d55cf5c87f19da01a6aa9dedb2f0f05fb60e961dee45d3005820035a79d921150051bb3d0533b0e32b03d9fe3552449b95d4062eeabd5a674560440c79e82b005820032d8b255ab155a340d5a0f8d1a31c658938e2f59d34f7a3c2113af14f6a6a00410100582003aba4545a4ea5f0f45476cf2f03b5dd0abc4d174f99a0e3a1d5a2409cd9bc7041010219818000582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b582045426c6f636b53746f636b00000000000000000000000000000000000000001603c850e5114a43ab8f87e61604dd75d3ccc74bf257282539207cf9a34df90d685d03d4cf23807e40670249f62d39353b72cad80b7e48ed06e89931d2f351c40bd8530348d96d851f1ced5001218757179461277bbea32b41eaa1e588c737d3ea07abc203c967bf025e891805f5db8d63802489c2010234d109ab3f5822fd89ebac19883f036492a4026be8a2536bbef1fbcb55fc359e1f56de2f636b3250527ba510418187032d66a1781018b00886979cf47e857b66eaa00d19722d58199f1d11703858f8120347a28368c98d7f79cfe5ab1babb1530e2fbd814987634b0524def111d1d148b303401d36b82b093979be4b5ada088281988694eb5ce090aa207c2f2350d6c5a8110341fffc413bb9f063f43d0f0034b7a7745a73883005145184f399e2c08131177503cf27a52f6153546860e54cfcc89691eef6767d0ada67ab1559c0f18eb291a8780303a4a2d4447c63578d5398724a5fd2441bd4ae711143ab0bbb7f74316a5a040b03f93f2633938a72d799d01ee111ab6219465b53f433949e3772ed3ab2ff24e86103394ce2aa247480f4e43e18cc1ac3253e4f31a7f6dcb68a83baf5c2d990812a000219ffff030ae1f9bcfa5a3e74131d09fd7f6bb75d3b13d3fb8481aa5c814e062e3474f49d03131edce79111961a50a61bf3078c54e2ed14f364d55efe412aea4a4c1e7fb01e035348cc12e23780994930300d17dab7259890104d9717aac6cc626e4b139233930219ffff05581d02d40b57f909aab74710a9bb94989193a1ffc7d92d3e35db6d8e098b4407011948af0399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe908035fdb415623e63e910dc0849559ccffbd40bb8bb5d9e3f5e9392b097a564da2b205581d02466b13545c3f614ac9a82de41a11614909dcd3fd7b386eb55a9d07ba07011bffffffffffffffff0218480219109d0219ffff03e8183cd7a0229961bbfe870cf4ffb9198daad5d773ddcf9b7df5044410fb0c5f03cb4cd06f125f7517835247f4e97860b53393bcd303945a06ddcede106889cf82030bc376b699aeedd3f4de332a1d8b9ba671020e1c0ac40110d6f59d0d5e0019bf03a3fc6d4ca069284a1af372f2f60d192509d21cbe72b275e556db129ccdc5c42f038ad6e798dfa1a652976b217aa72c283f8f7578efbe2f00742639ccbec4b95127032f4830c4cafd803f8216c6c18d7513d19f04d9087917a58a80ebd19f35a13f15033041ac236dfeac06d2e772c5c13bc35340cdeeac70cd977c10d1b32f0c3f74fa03c98984b43638bd493397c540c2d8fc40d8d571df5be88414db829fc64eb1c4b7037a0a836618770acfdfd6d3e9e1246f2586b6de76d127a75b320e8bf650faed98034b117f7844de3a41b9b4e8c30129608e05f18f709b3a4ce8e387ec3882549ffa03134aef4a2713501aec64872043d0a7a4d49e93a509f55d907f0f736c4c0ac0d2036b820ffff5f67526bc8175c1721b3c9ee3a68e94fcca4e15c39d44efc7a68a260219ffff03f4809eee5565c7c57598a7a043f6144f7e1f40ced00eb0224c95ecfadf0bc62003063e0cc95e41c6aa907e7ce0a3b1f51b825c2aa25058505a571823e6c9cd2e9e03148f6608811c2550e4e237749aba6d4ca249e0583bb3de4e6c9ad2a1f1e85c7203ab1c0b97fc829514faab7bc2f17e7ae1fcbee7f8940cfa6a87ed249dc32c005b0345ee71e0adef8a644f4ccd03fcb092157be64be34c06261554c8ac02e5ccb6900219ffff03bf811b53a97cfc4eb4d919be88596d3e8f1719eacb5529b68563f7b1ea9566f203fd14467506270a23e7bafce24670ad50256d479911f63d5696fcd3ff0a831e3703f8297c588dbec88b56b8613904fed917a798fd618b0c4a5bd91aaebc2cb3855d032a1d83c68dbb524716a82b4db240ac235446606504d0db459d45391ece5006a903341200a63107c9d7cbe14087ca663d9a5ac7d1e37385b260b5ca57b1500a8d7a03595adcec0db25164758fcb0f10e1e06e11de5c90562b39c53e6dde7e568699cf0363266175e729323703f6e78d095b43b46ea1f5e88a37791ce558b656bb411a6303735621e69d1236d13e229ba3cb3e558d27f6929b44f2c0ce9b31b4731b51b9e7038f998a6c811cb41bfff9a3b79cd4f0fab29e1927b11d1915c2301b011cb4a05c0219ffff0317ce904c13b01ba7cf8d376bb94a0b9fa59748c0b70993f92822f0bb6703fd7b03350001b6f3411cd1f7075610916f2bbb6f236deb293b0a5a1ec77b709de9400003ed44d834517115d3139f655bf90843350bfa037c17a59c570aa7daedf8e85c0d038a9aa01473b667988aa3e32de289076456ba21c9e69f6709e4b6be1f4f7ef49b035e17c8bb2bfaa43bae668b09bb1b5239f8300812511bd2139cbb72391b8a51fe036d64222ed67b9bbb9745ef7f80abaac27ad7bdab52b963f991c00f2ff3b1e093039edf06b202a9814e55308f7ba10f170f45e0bd5bbfa2fcba54c8c0e10b62df570371615744f6402cf030c21839d26ca079971a716b9efca577460cf46e097154ad031e62b90d6c96b4945eddb72ebc0b16fca6e57d80d6d8b4896f72824f692e8085036f5562455c54a2d98ed4e28f8c6d1a837577a2a965bd01f00e4fef4743fbaf1003f4ad9a51e587d7df8bb929584ccce00f87c83339ade21abbbe429c770e413e3c03805592c9b6b769e3e165512d7e43b2f9984338fa14d364fcaf56a94646dc480603c7b74ba25d1f4eb7ac2f22129b6a9ad640637d27beddc9f4fffefa335de3c5070300321cea87000d0c18c8666f66fcc872ba66e404da23534f7c8ff98f8b7546260328923f083610d707af9714e586993fc4e3966d3b25d2cd0f3f56ca5e0a2dd4e80352fef6f893fc44f395c20c97da1dd10b564f7ed31951e772213697396a3f6a110372779dd171e3f680083a6d99919ad7c72de0f4819098ce825e196f3802420eb503e20747c9565b3850b31c93ca2e7cdb0c9a43836d44e6fd679a5f24cae743bc8f03222faa8c3092bec862a89ce8313dc91c3da2c42d615a281543c6459ead64de1703a0bac49616c7f00e021f72a663feb83fa5e205d27001762ea79bdf68fc17919305581e03a500211d7b0d852d6ddad7543d929474651f71688390fac77eb9ca93700c01472ffe36ec35358005581e03897c7cd6bf1b0a976fdf50f1f2d55dbdf3d5df0b81c98affcf2826b5a0040105581d029c382a8460cd0c3cfb47e6633957c9ecfbd58bff55e9108d0799093c0c184547318491fe0fa6b805581d02f068eebb5fb8f482ba64796c7a100eeb291c3e9182bf93c9294b56d604010219410005581e03e064dc6ef3313a8028d5019ebdc905a2af4937b5f91722103d4e9310700c01470415c9f3b4b61805581e036ffe3f9014452a8fd200626e5fa4b33fe5341a4ef78f469f33896dd3000c02460ae430b83d9003c7888858a3c654785bd36c9f7290ffb80d36c166382df1c614a681bdccbd43e80219761703505274411cde98fede1eb464c8106e711ba856ad525b8bb91bf9191813b7d52603b80b693bacca068c7f65be0749d70776fbaf5861d807d21e1c8081676661209303eccd79750209b689d28845ea8a9023a24ef9b0a119f71eaff00395b324c00a6a039a583d57658e2e869496f29de18de6fdd5ff22d580552e15270dcb51a38c480403da940ac6e6bd8d8805177424aac1e3a545b735f8983b50b235b1baeab54ca0b7039b930d0aaaa182f7279cd44abad7df8dba8d249bb7b2dd3cf4700eb8de87393d03ab27965c833b0c934c1725cdce4727d58c398725aef5ca1c155b5d6ca9b45a0f030b991dd8addc9105dbf26f62f32d4891e82aef2fc898609092e445ad09b38fa203dc87ac332b6e550d399191262e0f95752d49efdab4da1647fce4499c4081fd0903e8ebd7091504cf7baf224bcd7ca1e386fd48a48e344f859815f13779c1e134e903f32a4a291df12d68ad84a10ee877a99f9270553ce33d10edf0551cbd807c14f103aeb40bc498065d640bb20219d544f8aa34def3bb54b1b5a743195f34ab157ec003cb1d0b51219594f02df025a89cd988e65b18dbeadc9fa2f8011851392ace863b0219ffff039b37b3b22831bed86db038e9cb4c9d738b13fe98453fa2518269468ae50ed61d037d95713db305a8bedd0589d82f4231aa3af3c432df3e4d5ab4146c4cfbb13771035ca2b9f31e43f7e11ff62cdaf8cb6a9f876ec98c2beff9371bfac8807e58de6103d57f771536d0230e3bb0ba1879968dc39eaab95f176b1d222de7055a84e4a3cf0219ffff0364e4fba07d9ef992eaeb21114cd60967b72fbd5892bb1f8fc14fe4e0369d937d032c8cbd8527702993f3986cf811b0a6473e0b104fbefd0d954ab04833bc2fb3a60341cc8a8b751d4809567355fe8931cb9d314b5f81cb769c2d8b7a5c3c22d490a203338fbf79c419c8ee085334581ff9ac1ac3ab8e630968c394ffcbd54560a43fc803e660260ffd093181fb4232032a53d99c61620956f85efae9f8c7e49a49fcb0c7039d83c41a388f5806fb8b55d81a289a2306d36e791bb5f3ddf95f14ebe4a005c703a738ce31a72e691f8ef753750820c3a583f4fa41b7eb95f4e528a339d782f7fd030d2c7f54343c380e8ab90dc66f6c60354171e9b2e5b106a10dde4209c29f71f9039d2ddb500d68348cdd72a30e4cc270b801469f228f521d8d4132a8c982771f4803b266fc3a474ed8b1a13a9a533d9f4679c11517907b746c372fa33a9c464d139103e75c89b21433d25b5d6eefb3f401c4f62261245da79171df9d121bed73eb3c670219ffff033b58a778a94565046b239ab9315f8d6ccf62c6cb10d6f4ccd3ca9cc92ed5374803125d017bdfd5ec17d62c13c0e41262a0e09319d5694cf325e40506d008f5fbf9037d68e8c47ae8ced7e9f7d0a748540abe23b69e41284d9b8b90f82875336d00a7032f7826f63e4ec118b56cb785740293ae33e1162d262926466677501ab047cf3d0360efa9f479d7cbfe673ec7a0d42163c6d0f1a5126518f4c486892e491b40ea6103dea31f154bbf1ce2b2568af0b08cc6a9e1593e36e381d11200897d941cf5a0440387ae566e7b18118d02d0bac4809b8356c93aff12dc6fb5d0aaecc328515738d903b3a54f89d7014641ac37d3b3394a74ad30898300427adb7abd7bf65dd1aebf8e03e2cb713690d6fa1e4069481a81699db801d169758b7bc07a45d45c8c57a5f46c039ad4ea75af5d20fb01a8e8dc1c2fb1a6017ac79f99fdf72fd27160f6876999ae03d39eda48e80db8780569f0d7c8e6839b04de1f802e02fd52af75196f7a9cf1ad03926ed1a6dc9362d8b3571b61fee9ece72bcfd25e4f8771e9050dea396ec5d4bb0367e5c79ce2bcf6bcd02da6cb69c1ebd2353f78244a692e81e9a61be4f60a98bc031d1ddf10e9c192ac4977a471932cc30ccab77d304a9c04b9c3f722f81759d08703a1bc1d7a21272ad7f122f6d31a27b90cbdb6721d7172d8c296f72a52044b80e1033663ae9e9dc39d3bce12f9173880897655bd643eea62902cc91900b649e4365403ee100d1630a1e29f1112856dd48521f36738ddbfef83ac18bd733329aa2bec4a0394e5a0ca0090d968057234f54a6b7e00e2b10f9d96e631eeb5c356b1fae85a9103ec33daeb00f65fae73f19db36244a0f139422b274565080ce966550b2d17b52f03984b31d8b382a01cbfc6d2d7b4119505883661ed4708c732adb178517a76b84c035180481ac4643422f7ec0e44f04cd1155fcc19056d657c45a849b9b743df3fe5039e765d343aff35bd5bba25dc89dc39e876309c8d99579aa427e84dbc84ac0ac003ef66812d9a9ae6b7ae0c47a89eeec5085c894c43aa9203136885612ef44e7c3905581d028f6b1e95d1af422a18d5c0dfe1917f5f0b5402b440d9e18dc569675d0c18f64733b85864c77ad805581d02d1bf237054c445a68483778236d9dfa01d32550815c9612a2239a95b08472bfa0fdabf94000219800103a08e97a712053c63c909b881fce48e9902efa760c0cbd5690fa707c4914dbd6305581e0363a8f5e4341b8dc4be04301c18e2160ff3be99c624294f9dec02b32900040105581e03d01a29001ee7208d9a46f9ffbdf383cb1cbf60539028f62ba10236aa300c1247163ccc6a61017b038573ffefc54f7ea93c6579eff29975c9661d76135ad2e3ea33c4acd0fbb4246d038fd87505ec5fb7c7476dda4a4a2d8250b1e6b8e4c59c31e70cad6672a4ce5cfc05581e033685ebffa2ff836cc5bc64d16b89f96cbee8718eff6e24935fe60741c007011bffffffffffffffff0386c0f74e056b7eb8c7a4a6143e0c1087a04788ddce99c53b9a617fd6452ebaa205581e0373d92eb5144ef53f1fe0e5ed6a96858a1bc1eb4d9c3c6a31de79739b30040205581e0330cede8dc2866f33e31ca753df416ca7a70a71eb1bd1a65d2eb637baf00c014708d013ff81dcec021945b6032c0e9c3e6bccfe5551fad7f127105e038a75126b889c6331bab7b4fca21b8f6a03516a43e73713df87910eb2acced9594d3732dd01400566c67a316741d596ebc10393156d75b51918e612e8458c90dcf512d8d18c08d3ddea1880d0c6ca9bd78ff90344f8012a54f42efc8623ff3ba5aaec17777a0b494ad4ef0414c31ac0bb79a58c0349f1bb434eb9f496711ca1cd24c8bdbf125f5132b29acc890bdfe4f07fd00a050319396e65c3a6fe64064d542a710b91328cf0873348b8e620fc5d2ddc51f3cbec03761afd745fed0aa0050aae12a5071d222b68087d5e42ef33157390b64e29606703cec321d24951d5b7798f29c49ff6dfccbadd4283a63613b7f2eb3ceafa947ce0038d01d913df5e9e0a32628d4b00cd21949dee6061735925acfeffeb99c6fd309603f139d9122f9b8cf2538279911cd3fdbfb6fb8c3fad86765077c241fee4cd20e00370d572257d2b43e69dc024a77e40a9dded202c25f65ba540dfaa43652307fe4f033e0be30b536723fbf6768cbcf5770d912f4088f92fa93e4f09cf59936c6221bf03f84b5bfa69dff4f121e948f5152c68a8b3fd0bba2a024327d29b1f2e4171fc360322d5fc1c0186ae5b9a488ee52db6726e300130568952ab378544797fb4d2d88103de6cc980dad5b24fffd60b7e66076127be0d9b2eae6ff3617d6122463496d9940219ffff03c29134715ae11a28a3c6c885c19d103030634f111e9533f99be8bb6f3ba4eff1039e87d6f502aa06c9bcd9c38a086fc9bf8623803ebfe3a9252b0195597f609133037a614535c7c5d03ceb4645d24516ff7c02897c8cfbeb1be3067d5260a8ded08103d1c01d6d4cb76d29b9f987f68bca83df8a3f2a5f4c9af633d18c5f567f9df94b0312f713aba71585eba7d663e3ccaf4909c39b38a38fdd5a598b09817ff6afa1da036e396c6a33064f995a7b2b013e26dc6b95115d5895c576bc206816bc81290514031b5ea7b4d72b4f6e50444a27c7610f36444385c70b628d2ce0fca7b916a988e90356c7d73b2833e047ca863ddfcefaa6a807c655fdc478065ddf84d24d168dadff036e5147a0dbc80b6d72fe5855ec0b2ab8192ecba0f058308eb813b8e09f535059032e0c5bd247678aa3b45f503d757936aa1445f143a866ab2125f47017bd8bdc370355908caf0b8d19f7e62ef27b903cb4f761c1cdca8d7dcc0752910b53128c432a03c817180f81451d171aca921500cbb495bca202cd3c68d30d1fdf4175b82ed80a039163bd98304e6d860da03f98cc83abed76926547ed14aad08015c9ec13d12d180219ffff0219ffff038f5a8e97270ca6a2bb35ef2d5a77af9cd7b2a4e35c9f105756f53d43ad27ee7a036f9c2b03f187351a5ea4000d6f6ec9249d095eb4cac168004b7a176e88d5f45f03ffad1bb5cbd38b0e4e0ce0e66f8d237c2c21dc483b7cbe9532d2fd9da830f1a8033b8e1957019a34b38d1d1cbf0efdfcdab6ca8518357148caab508a8decc8ea77038346ff53a73e7f30390d4e5b24cd23c3f7ccbd2667afc9f0d474dacc1bdfb87e03ae94bb745d0f28ef6c2f302959ba5bbce7aa790ff3d5ad426a040acd19fced250330a266c436b66891107664c140c9516abf54ba11d4e4fdc3b2241736d2f3f8a80355b7b33556125a80b4639776d4f50998d1aa80a7474ede53316bb2f996a386e30219ffff03c579c7f77fab1bd022b75e7dc573f96d7a2006173596223c1f879832969f03aa0379d70be59ffae23f1c925044bf5c56cf2be59924bb064ca9edf42baeee14467903e833ee39d96e332f1e85624a0368b7d664445473356a3d7c208108a559d4c62b03d37d5b5f040060b07f60f2c9cdb3d4b9105f4f5fb59ff31a02f8836bfc696b370358ee1b3a67aa64f18d413eaaa786ac0c6816d6a707bee4ec34edb13de7a0c34c038943eab3678db1e14246d21a5f3baf5087d3e4793c2782d132dcd0290866ba6403209b13268c96bf74e8e13e007bfeb9ad335d3f49de102b7b3af4d1597eb6d8af031a80ddbd34842389ef9526cbf0a92e15e3470100c0292b1b6e8fd64eb21fa8260356409b75874e3070c77491de73a304c2ce08320720b0b9e438e46aa278eb294f0361bfdcaa4e1950b8e5a9fac13fd51905c1de48647b4d3dd48cd1310b39bc3e2b03e2274abe84e1b62b6a85fd54b2ad83716e7c87f87a5fe20daffc1c0af12537770338ff606e9514abd0f1f6e0557bf93cd2b6f73092246a8b45a6031ce2ee557f3903419b06f4337349ba89f34a6bbe41cd44fab69972866a04202f87bbaacc0f4f690367a57cb287646b5ece0b644f24a88d07c5ffb6a26a10da1021f8322adbbc869905581e03442e30236bc1c39a428bb7b7c7203002ef0baf5df51cd6a5a6243a30700c024619c8bfadec0005581e03e2abf3bb21276a092915308844cfce4da257ad0a5e7051f05d14cf6ea00c01473069ade2ad7f300374ba03ca71ce8424884bb49414a8535f25c1f84cae34a88a719249666edb72810385dbd7b3353b0919defe906b27e343be7bc182d78c8a9651465241060bb1fdd205581e0382fb0c6c33703ea4a2eefe874371db3c93535b5677d418a77e62c15dd00c03474b70260fc574f003b062764c715a4d1282ea79b6b18b76e7b97d4437c745345b312fc43e664da98301410d05581e03a41332a0033a540cc27a49bdf9162ddb9035351310e743214851593ef00c0446c02c2f05c0000313b76be1f3108deef65292101120fbf8d4619c7c225ecdc0a2eb70a7161bc38f05581d02607a69edc048e55c909aa157278ce470726246407159b74e0df1a64c0c1a000322704901961edf11a86e72ac05581d02f43e8a333fe17dcef4fa8bab64ed97b8c90d8b4dee7a8af2e7b9f3c8040105581d0272d0f3a8c392f0100c69d02809e92a55fe233a24db51f6660cf728630c074701b3cd42cf27440219420105581e03de9737db66c9f311c7acc425e085d34e1476ccf0191f376ec351cfe15004020219eab30321a18d5159c6d88caf9b0299f397d0ce538139291e783f4c8a43f6c8e3267af8033dcfaa5295082b7aca86f04e919e0b6f602ecb9beaf86cdea0515bef0985ba83034f05f4d3f6127c00ac7d8e2fa9445fc9e5ce974525cf974672e70ee4514a3b9b03cce0eb954aa820a067c76b109b88fa96a3a39dcee49a9b3990524de3b0732c0403b18a29531561ba2d39372a84efd5bb0b434d8b32545972a06dbfa40140287060035d9d4a067947c7c0855ece13a01e74f684e3e9c759d992e47503046c712145ae03dfcc35b04f2d4423802013924607c3b2851ddb6b61abb320b9969653c841453903ea2ed8fdcc7ca3cd7faf62b75b4c64bedd5361cd2ed964a618a7e5908e2111bb03348679543e5c852f0376dab321cd6aaf5e78b282388c46d7d4540257b8ed7f240219ffff03fcb521e303dae8937c56a686009465ffa16a446993f3314f567675bf151a5942037b2f71d9f23fdd4003f7dffd577030a0f7602f7303b442da0cb91706f22d7f2703c4f5e7097be124017b6a8acab15c87106064bbbf40bf2e9a14a7c5697b9d7f0f03abc10cff0a2a11e70680b3325858e107f0f04982eaae4a0fc08f65eeea32d237034f552e40669e736ca332d84447ed8ba3b2082ea71155d44e0d6787edcc92bee8031e360fbaa8a6f16f4e0d634e378500dc76117b12bf079967cc5bff2ca21edffc038491d1ae59579e2f19f05dc1299afaa82956266efcf5985f2cbcc66ce36051dc032f09ebe8e18362dd21ffe9af880468280e7c8fdbf06f311355d5b762841109a303f2eb32f88beccb353af98845bf6bce105f62d5dfd65cb6f241ec6281ccdb348503a138a20dcc7c919108d5d4c1cae9f30570160fc489691cf9647d24be3ca4894d03074d2d5358458c7c4587337bd4e8640afc6fb1619ab92346079da3a920f69951035f6c6b006aad8411f19c2c7732728d6e29f3af6fb75f64622fa0cee15efd4c7d03fb75f07f791fabbcd2aae7730cee4a390e4ff21111c0d77af5f065237e6b2aa60219ffff03f755f182f4113d5d89686fb965451c58032336ef152c0c35c3e7828f01e946770321c5b97ba7c1364da1492d0a7750036030da864dbe1fa1e0b6c468a163569b6003985515bd989171a8808738104bc38345c6192e2b05dd64261bd70bdcd2c118e5038ab2f8da600cb3a448a866f663e03a86c4acd6ed915bff0843732ecb85a8ce1b03c53b899e564554d06331247f031f7bc6ebba57e94363ff18fdfa5b57bd57b7e203bbe6cabf020c785faea3039cb2d10c6b896973e65fdca9848ba598dee2c59e6503f925add498c75540cee4d79b4bdad1e38eca883121c89e82122fb190d9ee515f03f77d3314ec904abd3d4c7d5c1e89ed818e805d253fe8708e71824ece718b7acc034fb602cb3254e26f2ea3db7224987bb0214c170dfc690b304b2877b8421b1439030e92387fe06f23bd02c3f0f978220af31e56839529fe2a367fb3e5be3524a78e036f436cf6b3e72090968565e318b8d3d3d1719e8197e18683dfab288de883c1da030736ff45acc11e7089a161205e3dd2afbefe1c1f110ee27149aeb1694f14de3a0219ffff03ece5d4cb6edac665f0aa210c2d4269e2cee08dba5ef23db43a4c903340c21b7f037631f032a11550ca8f3edcb9d211177509430d08a674d9eb1655e9b5d592940b03ef284d5efe8eea4835dd6a5349244cfe28abf4b0ece3d339b0311687b07ce3110393578997d35cca44be6bb4a9d7d8b031ba7cb97dba07bded53ead7ec4ec2a446035fc832b98adeb38d5fc5c07735f237ad37fbe46c22e3deb69a2c03e50987696703c62f65d126a259f24d01f97344ba98e557596b20d8016097b6c1c99366815217037f575a158b078e102399bdfdfd3640169b7fe9fbfaf778ca8568f4f1e05d221f0379cd496f7b13a6319d2aa70da69370b92b3511425a30cef50cc340578496817b039f41728a7437f380bbcda6e2df8daad5b44c2aff050a3a47f0f6f6025801c31203cdf4aca516217ee5899ff9269cf01f8aba211b86eb6d959cf8bfaeb5621625d10368d7a456763379bba0ad2d50e6fcf59bed7cf6f389b5b43b4bf638e265503af1030dcee45241fd315547a1dc00a0041e40e574f50267b2e257b0444b4bade41f8903338990a8f9a53c7bdaed78fbe90d58bb1aec76b6e234603340976f178cfbbc1d03bc1ce51ce51512293245a95286cc4c539ea6332c2f405998e6b13a62dcad483005581e03faf1550e987712a803b71591f576b6cf4e16275de261e81bf8cc00de80040205581e03e8f5de9942df724fe5298245e6513c3740d821a25908ed6883b31f0a200c0a47019da107a0dd3205581e03a9883ab8892d48b33e311ff6519ae09a423d2fd5fda645f0d728e07240040105581e0356d5958179ef721156342b21e96fcc40bb9e5d2a141d3394f82d37aa70040105581e03f2f903a1b2e68a5698a09321fe41b3fa3b6ab7eff9b5f2c296a3b75510040105581e03717096748532d9f1b68b4388ca611e5884343dc02458272c9fa50577500c0146363e79d6ea0003995da38ea59da59eb50c0af9d5dc116833a4b8ee201ad6845e8f785dc1069a04035b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce50361b7745e678a02250a51364d575badd13f7fff59ee3dee640687fe21f2efc0ce05581d02a251ebc4514f5dc1dde4750ea3777af3af3a5593ae389762bddde8d107011bffffffffffffffff05581d02566b5e97570a815a39b42d7267f41a79875586e9b051ba2d09d786620c1851480f7116126e0f641c05581d02798ba36e46d7d4498b8a52d4130db501683d574aaf530e1718a987990403021950080335551a33c6946132f328624ad488435dd091e52f85871c16c1600158fccf5239030e6c9088985c73a461b9ac9479ad917a5abee87ebdfbce6230022ac265bba63405581e03687b0f0e2cef7dca9236340aba9007cffa0aac17a9fd6e7b0b6aa84a0007011bffffffffffffffff021939bc0370c797057fbf94b492427c468bdfafd98a8ce7e5c206ccba53189e1f59bafdb8038b242bc417a4f906332878e90a8842d18667ec9713050ca6c5c5834bb27f94ff0336c5c75f242f5a2d622df033b05dae3e6edf082c4527c235074a8096e069af26034237b5e3e7d3e8af2f10e30090efb09dfea9b559f6212c07ea5f27f6d79eb8800395c0efb1ba97281b6d58598dbc0a70cf158cc9f467ab3a158dbdda2ac13ad95e03b679ad1683a3cca5a96e6fd3a2c16f52f0f2295def96b36f2665689586616e4a03414e089af302730c7a5cfa9d6ae37ab1bf2fcdf766c220851403bd026c591a6e03352ba41ec233b5d24aac0bf45adedebf9a85752ae1fd9afe335e74269a5383b703640e60dd1cc8693beb92980331939d5fda9868bf9d65cf9bdb6c9a41c6730f540219ffff03d088ed8f9c15041ba34b04d8608e52fcc1eaff270076daddb01c8a6cb46e90930342b59a95219ce77d60bf5c6fbcfb4732dbfb497ba89245fc029fc2e855dc1527030186e383d38191e665303cb9b2dc3ef2e86dae5f1b6b91b3f9db2c1ab4988f0e036deb48853f88ba8d958e1d72b5a055a1c4a60272fde9e10ed3702a23b42e8ea703796a798be58a51582dc524452709da0bf797847d76ed9f279a5e1d41aca8c91c03089e6ececbda52ab40952a197f353f1f79fabb089e2bffc1f0def0c50f7fb79b03396b5ba456863875de99dc5b3d3b1d73f275c974fca2d72c1732397836b365c003d4d8a7d6963b66a6ce83a37a9baa1f0c0360907ee118a76fe94127c5d9cabd040312237e1c36b728f472f70ec06b1e241bc10a73150d5f47849a08bd75fdad21a90359dd871233c397a88f4870332be480318cb705a6451ebc15ddf961bda571ed1d03de2d96124f02d28012a11bf40fcb3ac7c1293a1a4fe2cf6bc564b0fffb629f1a0350fb4b3a915bf2bb512e352cbc26e4724c7e1632458e7d107e6c03beaf6682e703b3950dda68de9a05f4181e92051986d7f002d011c6a719048d72ab7bc3ae75cf038e06d0189d74f16206dbca368e7ce0a9d82b3ccd9feb8bc25899ad08d62e1989031025d3a28e2daa3e05378688e5493631a05bdf59412a45e6a51d61e90054313b0219ffff032f7cbb635f21f944b14a28205dbaf0a56fdd9e2b2f108bfe23bb370fee6308a603372232c49897d953c58d31db13389c64619e8513c1fb2afdd41c5b0d9d39c9a403603c4037a37bc62f2577bda5d4157737bb63e2192a4daef7c9cc8a1d8e1b27820338e004f1dd39188696930dbe7484ad3ec10b36d5079eb0ed124d2e3aaa8cd77703b9dd10a2df3628f3b745c0399d0c3d3dbe3bce874f4c4dcb202858200445977e030da1a6e55040ddbe33ce23c98d3624c286b6e11e7d435977d6016ed4446255e8032ac17fda6cbc6d5ffe87d5db8cac4736316cee498fbf4886c0ccd133099248f903c7f767801d7eb185436958a3c7af7f2e86a5a2ebe50d25a6b5c828f58968a72f03216607b08f4a045c14f84def6010d0f12ec5688545f16618d23ad5ac5675bfe403971be08d22fd4a6bce9b62ba8807b88049ba154051fe63c19969ecfe2f731340037b4b012d7857fdc35bac44e18ab43a5a69ed2c5bf9c4210574414711ad4aa6fa0393fd6d12d0245ca5b81dea55440be870cf0e93c42e64018384291f707a376bf503582e1ca88c4fb66ad17a8b85922dac6a78f2bfb12bd6f7efca45dae721cbee7d0219ffff03a9f2ef38ca6c0fa2c1646b4cc3d2528a54203d6bca01be235a844b0205ae3ef803dbd126320be5236c90f6acba671d57a4691f2da7028088e89fd4270cc8d46e7403ebef1acf91b6b0ffbe1331987d80a54e42081093be1c03327449c506381f828003cbd2704297cdfaf1b87bce1480b3c166029ad09d3a31aa9cfbbb24cd154b1dc1036bf43b7e13a4d676269d3f6abd70062f55bdc302b7186129461dda874a75b3060219ffff03774aaa8655f7a7d6b883f7e579668e0f02391b4e4808f3b59caa83cdd97953820358903503c968721dce01e4493dadc2423a38205b00a703345a81294e2829fc2d03329573b39a06d56ed86e1efd4a11c5eef0d0473b6edef9070491b78508288010032e8c6150f0aa20798327cf13cf132cf43d3cdcfd1869ffbb0fab8153386347e5031a7b82c0bcecde73b2437dbed3a9345b19aa503e507f2049a244996bb5b8caa403c15481737491b42d9c8d6129cf2beffc8da8da23641ab4edfa519baa7d39773d037d1cf551e2345786e75b129618ed4a31de865b3ba437a4699b044494a4f9ced40393add131ab656578b582951d8562684f9e29a34b8474449e5f758f7e40a0fb0b03e831f0a22e171dd4050b830beac9eec348ca5f221531a697e21675f384703a27038438f88288896ecdba297c37790fbc3cdcc82d38d6b8e1f1f1a86aaee8ed7f7f034995a27f569eb175f46264b0529b140feba88ebeb373e26acd206ef12a43c63a03fb5ac72cebb351482263cf124c64d7f2baead34b107ddbf3ab365a25cd2e435903567f595427e759194a188f00340d64789c02233f89fc710e320f72a4dc72140c030a93e15869cc81fd71cac5feb0897e250556c7660fffc497b6c0796b3acad73d039e7f0043f3771f7f66cc1d15a1769c20dfc65046638c581aaf7a13ff56a8777803d005c10dcce274650a0bbbd12706c63a4580fca73857bf6591c19e28acb3a2c803cb5a4533f28d91a519253c10fd1e8b984fd079fcffbfb81a8118ecd377fe88630351fcb93e204c442da311b53853a0fc25cfc700ac07be3dc4d108825f759182f9035b9db4c173d4e40e0f3bd25f7f39c4b3b3b1796136aa1235660e9980ccec43710307424f2a121a167ce58cbf1b2f0464c331046f20f2f27bd8de81fa48768229db037c91f569fa18818723d499bad9c92944a71716aa83f33781ece08d819708e13f036f9a47bfdfb48efb9405fcd43693a19fb8d717e6169ee1c45c5543cd3234109c032d475ef659e6e23beae728053729db5a517007892382416415b0d6af5ea697de038abbeb47289a06474104ccedaa1ae9768f7036a32e84798ac19851fb0e5edf7e03c9a3309e59a44b391c5426d165d74741b544402df164d284169dce55c045fcba03b8840734b0eab75a31ac933a7e015d362d691823229d8ec0fee8a4066512b659038ff4b41ef66d0ff55218e05be77235a8f3dc9cc2f124a46f31f552184b1fa74903d16a6ebaf80a804584fff01b072b077cebae885d6b669db884a931762217df07033243420b481e86e26bb6518db0731fc07009993b8e7f8bcc6d97d2a30679edfe03845eac79a1fc594ebc1a1d0f4865dd6ee0f13c25f38b15a1a4e8159f16867d56032c7a0ef6a534e73866351f1386dac876763a97b99a22564ae60ab23c65102d7603eb6b17dc832d36df8202899908a086f3b95400878dcaa3f079a9dea3276fe5da03886cbebedb990a21462e83b2d2e18a47aa029b6e8ed54f8a228988f134b8c75c033e90cbb40a8cca0e9b47c19e4d62bf97810533417e4388d8f84600ce0c2cf4ac038fc3e40564483fb98091d266def0b20f9a3aa37a61aeb2733f5251d451a06ea60306d49cc7f7b9c19408202a828a5cdb94f800dc4cdfbb3bf74dce0c5b9c3e323003ae6e245c551675745f56f10b7ccbbdae3719673d4d4ff526a11da25aa636f1870311436cefa97914cf99e94529341a34fc085b5d7809d61d1cac7cbe24925cc37403a6cacc359ffc9e3d8c7331f74e64c8779ba5d61c2d51125d4637fd3719686fb6034bab0017fa00af26f9ca9816a29741932c3fd23dfce62bfa69756664af08ec1a03ca886815e0ea15743cea47bd13afb22e9920f19cf646990028f50bfd71ebc2e4030b32d28a92089cb9396e0d3de1191ae692279d7d87947883e42967ebf8acd76c034d223fee6b0e0d7a456697f518aeac39bc367b823cdc489a1abfdce5da429ed305581e03da99dd6ad27b75413494c528bbe8227161eeed8c06edde39704205b2d00c0147014c890e00390005581e039e3448192972b510680b4a57308a2348284f0d8143a5c646b871252320040a032f7090ad776ebf3f912482a14ac011bca66d1eee9714684f1eb1f3c5c470517d03b31967cef88b6b897772d0ad549c61783d747eb5b496705dd5c474a7f40e4d5b05581e034addc37ed788cb70b8261d89c984550b929ef7201936b2bfa86e2c7b4007011bffffffffffffffff05581e035a1a608e7c24b1b2ae5c78278a373ff4273569cb90bc980a4aa77a7f300c034728c45c14bdfc3c03cc37e156257bccb6e61bb505ae3d09875e3ca10ae111dbef0ecec3525b83f8ee03c013464a2373f96520e67e4c764abad32ae2f401fe44e5168235907dcf386e4805581e034afae17cff2e7c46e7c1413295f99d791b8cacfb1fcc2fe456db09e7600c0147061cd30bec698005581e03cd091104b525886a0fb27867e9dc403964c9fa9c966126a9097c44f2a0040305581e03236aa59ae00b25c8efe0dd1dc43a52c7b928d9bbdff944e1d12950f3c004040399954a15e740220806dcd2b7f709e3f0a1e3494ba0b4d1e852a3254e4732e8ac05581e03b63ff37c2188de8382a6f937e27ef1d8836caceb772908a3bc33a74e600c0847310262a90fff78045916866080604052600436106101345760003560e01c8063ab5d8943116100ab578063d5719dc21161006f578063d5719dc2146103a1578063e76f5c8d146103c1578063e77145f4146101e9578063eca067ad146103e1578063ee35f327146103f6578063f81ff3b31461041657600080fd5b8063ab5d8943146102ef578063ae60bd1314610304578063c4d66de814610341578063cb23bcb514610361578063cee3d7281461038157600080fd5b80635fca4a16116100fd5780635fca4a161461020b5780637a88b1071461022157806386598a56146102415780638db5993b14610281578063945e1147146102945780639e5d4c49146102c157600080fd5b806284120c1461013957806316bf55791461015d578063413b35bd1461017d57806347fb24c5146101c95780634f61f850146101eb575b600080fd5b34801561014557600080fd5b506007545b6040519081526020015b60405180910390f35b34801561016957600080fd5b5061014a61017836600461134c565b610436565b34801561018957600080fd5b506101b961019836600461137d565b6001600160a01b031660009081526002602052604090206001015460ff1690565b6040519015158152602001610154565b3480156101d557600080fd5b506101e96101e436600461139a565b610457565b005b3480156101f757600080fd5b506101e961020636600461137d565b610762565b34801561021757600080fd5b5061014a600a5481565b34801561022d57600080fd5b5061014a61023c3660046113d8565b610887565b34801561024d57600080fd5b5061026161025c366004611404565b6108cd565b604080519485526020850193909352918301526060820152608001610154565b61014a61028f366004611436565b610a34565b3480156102a057600080fd5b506102b46102af36600461134c565b610a7f565b604051610154919061147d565b3480156102cd57600080fd5b506102e16102dc366004611491565b610aa9565b60405161015492919061151a565b3480156102fb57600080fd5b506102b4610c01565b34801561031057600080fd5b506101b961031f36600461137d565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b34801561034d57600080fd5b506101e961035c36600461137d565b610c27565b34801561036d57600080fd5b506008546102b4906001600160a01b031681565b34801561038d57600080fd5b506101e961039c36600461139a565b610d9b565b3480156103ad57600080fd5b5061014a6103bc36600461134c565b6110c9565b3480156103cd57600080fd5b506102b46103dc36600461134c565b6110d9565b3480156103ed57600080fd5b5060065461014a565b34801561040257600080fd5b506009546102b4906001600160a01b031681565b34801561042257600080fd5b506101e961043136600461134c565b6110e9565b6007818154811061044657600080fd5b600091825260209091200154905081565b6008546001600160a01b0316331461052f5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156104ae57600080fd5b505afa1580156104c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e69190611579565b9050336001600160a01b0382161461052d57600854604051630739600760e01b81526105249133916001600160a01b03909116908490600401611596565b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a28080156105945750825b806105a65750801580156105a6575082155b156105b15750505050565b821561063f57604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b031916909117905561075b565b6003805461064f906001906115b9565b8154811061065f5761065f6115de565b6000918252602090912001548254600380546001600160a01b0390931692909190811061068e5761068e6115de565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600001546001600060038560000154815481106106dc576106dc6115de565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610712576107126115f4565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6008546001600160a01b031633146108315760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156107b957600080fd5b505afa1580156107cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f19190611579565b9050336001600160a01b0382161461082f57600854604051630739600760e01b81526105249133916001600160a01b03909116908490600401611596565b505b600980546001600160a01b0319166001600160a01b0383161790556040517f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a9061087c90839061147d565b60405180910390a150565b6009546000906001600160a01b031633146108b7573360405163223e13c160e21b8152600401610524919061147d565b6108c6600d84434248876111bd565b9392505050565b6009546000908190819081906001600160a01b03163314610903573360405163223e13c160e21b8152600401610524919061147d565b85600a541415801561091457508515155b80156109215750600a5415155b1561094d57600a5460405163e2051feb60e01b8152600481019190915260248101879052604401610524565b600a8590556007549350831561098b576007805461096d906001906115b9565b8154811061097d5761097d6115de565b906000526020600020015492505b86156109bc57600661099e6001896115b9565b815481106109ae576109ae6115de565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018190559398929750909550919350915050565b3360009081526001602081905260408220015460ff16610a69573360405163b6c60ea360e01b8152600401610524919061147d565b610a778484434248876111bd565b949350505050565b60048181548110610a8f57600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526002602052604081206001015460609060ff16610ae157336040516332ea82ab60e01b8152600401610524919061147d565b8215801590610af857506001600160a01b0386163b155b15610b18578560405163b5cf5b8f60e01b8152600401610524919061147d565b600580546001600160a01b0319811633179091556040516001600160a01b03918216918816908790610b4d908890889061160a565b60006040518083038185875af1925050503d8060008114610b8a576040519150601f19603f3d011682016040523d82523d6000602084013e610b8f565b606091505b50600580546001600160a01b0319166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610bef908a908a908a9061161a565b60405180910390a35094509492505050565b6005546000906001600160a01b0390811690811415610c2257600091505090565b919050565b600054610100900460ff16610c425760005460ff1615610c46565b303b155b610ca95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610524565b600054610100900460ff16158015610ccb576000805461ffff19166101011790555b306001600160a01b037f0000000000000000000000001066cecc8880948fe55e427e94f1ff221d626591161415610d595760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610524565b600580546001600160a01b036001600160a01b0319918216811790925560088054909116918416919091179055801561075e576000805461ff00191690555050565b6008546001600160a01b03163314610e6a5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610df257600080fd5b505afa158015610e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2a9190611579565b9050336001600160a01b03821614610e6857600854604051630739600760e01b81526105249133916001600160a01b03909116908490600401611596565b505b6001600160a01b038281161415610e96578160405163077abed160e41b8152600401610524919061147d565b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a2808015610efc5750825b80610f0e575080158015610f0e575082155b15610f195750505050565b8215610fa857604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916909117905561075b565b60048054610fb8906001906115b9565b81548110610fc857610fc86115de565b6000918252602090912001548254600480546001600160a01b03909316929091908110610ff757610ff76115de565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600260006004856000015481548110611045576110456115de565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600480548061107b5761107b6115f4565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b6006818154811061044657600080fd5b60038181548110610a8f57600080fd5b6008546001600160a01b031633146111b85760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b15801561114057600080fd5b505afa158015611154573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111789190611579565b9050336001600160a01b038216146111b657600854604051630739600760e01b81526105249133916001600160a01b03909116908490600401611596565b505b600a55565b600654604080516001600160f81b031960f88a901b166020808301919091526bffffffffffffffffffffffff1960608a901b1660218301526001600160c01b031960c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a5909201909252805191012060009190600082156112775760066112596001856115b9565b81548110611269576112696115de565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b60006020828403121561135e57600080fd5b5035919050565b6001600160a01b038116811461137a57600080fd5b50565b60006020828403121561138f57600080fd5b81356108c681611365565b600080604083850312156113ad57600080fd5b82356113b881611365565b9150602083013580151581146113cd57600080fd5b809150509250929050565b600080604083850312156113eb57600080fd5b82356113f681611365565b946020939093013593505050565b6000806000806080858703121561141a57600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561144b57600080fd5b833560ff8116811461145c57600080fd5b9250602084013561146c81611365565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b600080600080606085870312156114a757600080fd5b84356114b281611365565b935060208501359250604085013567ffffffffffffffff808211156114d657600080fd5b818701915087601f8301126114ea57600080fd5b8135818111156114f957600080fd5b88602082850101111561150b57600080fd5b95989497505060200194505050565b821515815260006020604081840152835180604085015260005b8181101561155057858101830151858201606001528201611534565b81811115611562576000606083870101525b50601f01601f191692909201606001949350505050565b60006020828403121561158b57600080fd5b81516108c681611365565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000828210156115d957634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b8183823760009101908152919050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea2646970667358221220d17069b386a4ac377f74e491f5de3f52147ad89de5975e9c3ce797ab135b5aec64736f6c634300080900330605581e0335c7c62f1132ac1eaec4df26b88d5eb1840fbcbf56677e499ef2acb21007011916860219c7df034b324871219b7b4ee4e8057ded582ce3249e4dbf72674c44bde4e6c68fa23f8f03fdc543f74b4bc17a63d908bab83fec0d2aa1d7ad72b35a86a2d052e6e6387373032be86c4bfc367866cae977fb1e71f1ca3672878a760ef2059e0d73d94a64790203488902e1cbf5af8f7123a307aff19f2ee390d44cec167e074b6f88b7a2c5a8ff03c54e98a8cfb229a23b94c72ae9549961df90a3083926d3b04ff02b4d3e3cf7c20368b5d33007966047dc782613991c55532abb61a49cde68fcbec7d359f792a6490319be665e02052af74287f8eb15efeff0c10af6d7147bf3cfc201779cf4758101038551ce64d75a69b44c896d1f93588cc5a6abf14f493fb9a901faae85949e649603d5f0de8f5d9abb8be4c1935d75fb0a8a9754395c9597d8ea54c85ede223a338803fb9787e132b7af5424bf189c7ce7ccfff268607cf7d7ed67f0e3a8458a25a69303c7469583235bf2a79aedeaaa6df5bf4506008fdf1f8599ac12e9b18fac1b50f60304f2be71c135106541e9acb4be39cf9d231f67a4ec5d39f29e3bd21d2bca20330219ffff039f12f9c8dcd555523d20fb559b180bc12026055518d321d16ef45b0e6a4996ec036bb345650f34ac41fd4f423d79ac7bdb8ed469003f4650d22704905f2c6fce3703781677fb0de85f4e9b2b7d5163f65147e99a92c4bdd31df8db3115934f4656730219ffff0219ffff03219c4f1109786c0cfa2c6085d6ad51cc44178697d360157e0266e8b965fbb166036ca275062f19dc554c7192ddd50637fa9f67b06f42a5b33a230003052c6ca7fd03c59b7d3bcfe97374d2b9d1d39fd60498fa68d93743928770bfed4a08c6f6639003cb8bd08a4b9321f228324fc38a2df9679621754895769f98ec41cc3e548ad8470336c880eec2f88dc6e5e1fc7860df06b83a02a184a525a4bc53c96bc6c3c53d9b03394ed1f2257252326bb8ab1de5aa99089db452a8176ad765cc74fc4b8fb820f1031dae41bf144d372163bc3e18320d598db6653bfc98baf48896fabc8a8623b02003d311068cb1cf2ebe0ae46803788e8caa82f3997732f85a9d98125a85cdb42c6f05581e03ac9f034eb21f1dc9bb9befedd530074008ff6d1d44edb7a6c7cce2e6d00c0147022e3944dd805205581e0317e33dfb37dcfa03b90466b8fc8a00561c14f01e5cb04d1469b3be0fd00c01470a80239048b00003c8f1fe43cfa49aba25c8813884786fd1549e4b7cdfc2f0586d7a1e45f6c4069401410f05581e03e19cec05bfaa588d703a7f44ec796c81630ba8638f12f927ac6100e830040305581e03e61f68ffb7d781609c16f01316e8c8e31df2d466a2b644791fdd63d6100c0146a67a7c33f20003bb1f9abdcc8aabd7d86ace9c97e83f67c4e8ea4d8bb18a35874f091d3d9c485b03ddddc21feb9c59df1d4f1d710fda5c5a4fe382690604e0e6abf06781b74d3fc905581e032a93423997020786fb8df262dee6952dbed03ec3ae656a7180b713d9b0040205581d02ff18ca2ea72e725de3f0a92f50f6d52650986b03ef20c11ad5da9823040105581d02d5bc6c972e2dae673867bba760d38d7ae5af6ff86affeda3563cd3f608471f7eaba7ef10000219440002192fca03b32a19cd2f554c7373470e831d9a01673ce6c6956ec8fdc0c01bf70027ba2ce703168635c86135c5638b1b58cb7234fc2ba3cf5059c81f535ccf0b02be46d60c62031a1e43b26e535be6bed3cfeaf0c2a29996341d043d2c85d888af4018d52a271a03f1d44f08cd1046b47e73e13a9cab94c613db31989274417b61fd49b45e82481803cf89d499f32178cf079b18d882e93007baaa6b56c09fc59c83c066ebc5c0a3c00388e526bb5e952300d6deda922860c720fabe78c35e41f2ebfa6088ed3da6cc01031dd7073ab740554836b1f91b877892faba3fdbb3f900078dae309e7902073fcd03c35925c02d961f6a292ed724e96b272eff759149b357cb1a4c7a3de9d35c41c7036d1b416411cfa8152c40f3bc5da03accaa6e886f6ae05d4164a06720c913001d039354922721b0be076d1f6532b861a2a4569c4fc68e573759d1665c8dda7b447f035051af23dbd80471d44711bc1ba8912e1b36078132ea711353038d5ac65f01db038052a65ef3e6d30df0c7bb9dd5f478a03edd0350442d779108d598276f1c02d80384b21da4b59bd15e8d302b3df9fa50346d0ad3b2fb44c293e8ad986d728c98740370cfb4de233c32b1cb55ce5a5ef30ec7e3b82a853bcfdb7d09f11deba4d8ddea0373b8cfa3a3edd489d106b076e8fa5aa34116069e12646827350ed061d9a9ad790219ffff039e3ba9fc1e5f9a2dac8f5be0bb46b9193193556307f7fc642ce0003a2d1ae9a7037dca39ce9e21230e297a29a6a11e4d284e2d90c98b734f716941b0a9b4efe68e03239b24d760663289a2ed21c5d1d9db5a2621fb18e713a6baac26f75e4cebfc63032328fca70bbd3ad7a1dc322a874043b38ad5935a2120f3c16ff41534614afce003507198f773a5bddddca81332f4595448a2ca24e57da2cec5b25b2e165be164e903e188b72c22268e37cf9cd6bc78038732e1a28ab96e3cb46db10d8a67004dfbf9038570763f4043021298c3db871091f70670b662a02076a44f87ba2ae02cb282c703faba6540c10c6d9f3820fb98ec9417b1afe8c07df7a4c6f1711c423aca3c749f034bdd35ddb977dffd989f1cc57ff8293e539f85928700ab4635dec7dccfe598040376f9fa36cf0345864db5dc2a462bc1ad93b7c678f4dc45bbe2bef945513dd93403811fd82f708ccd48ac5f79776be7d35557711fad4a833d0815b278053e1d61960304cfe26e784b0901b8e2b7e41047ee13362c40ce39452e2ee39817a1fe7ccf9b036b7470c1444b763a9447f6762721cc490d021305374567315f5ac916996e5b9b03a023d0e96147ce4aa3f6c751d8953e87040d2bdb8219698b001c6c6d8e6c9c1103c48134a63226d56ba9ec50efb24bfddd40493d0ef6d6ba79f147e4b32584b1750219ffff034ce78f4720ee9858cff8dcac36c5ccc8fc89ff05baea90070abda95b855e24040311647a902e5c95be67dab14b571b7cd82e42742236ac97c95c5a77c0dd69a60c039630e1bc4a752aa2d78689a394ede1a1d3b18ca1ea416aea1e44e48ba1382648035d834abd2ebe8a4ea6cb9620d101073a80b82c597dc8c8f580c9a72aaa51e7e703151c14de0b346b2747be2fe74d9e8a5a417a166e25543717da5b9e7a0262ac1f033091a92a90b43cc9132957ef28ec0d8f3caa2236dc4f1e84c09b56a1d7860ec7031b4317e5361d0f1b7a43e78bfbd4a229922f98fe29a232a72be7c159b2be4b110219ffff0354f3aa9a5c8fd733ea155055d89fcfcba0568c766df068aa22c307cece2c93970219ffff03aa3c4cb8ea6f61dc5ff9986be96dc691de68844b38ec8b9efc162940b693fdde0317ab1c278991dfaa958f061857f3f4b778f8d678c3a6b1383fadd1a492def49e0318c5d006457cee46c1809f4c638e8eed4d70b3846806c76a6d534cc66abc1355038438645833588ded99a9064f8371edf62ba2e1bcd97cd89fb689ba9efb00e51d030f3ac54b0e8073c51ef52c9df489fd3e7554e2e85c0e96b9de55f37ca43e6f3703ab4f73eb0475ebda957834ae58036785f066f117e078bdc18119fbf068d5afdc0366d64d8b07864feda1ef60c5656268270283f3ad279017b267c36fb443b9ba810347b737684bb4ee8296dab2118486d0183abaaa07529412aa8fa8794b6624732403173f0e9a487529b8f800b47e53c19fc2856a54044df364da46839d34870e02f3036821ffc7b0dd7eeda35b81aa7c0ded9e7577d397f81bddf57389983890d0bffa03f767b5b7028d03913a18bca4236cb3d55a9961c6e6ae3384e29450cf51a099bf03c3fb4581699ec45263945a7080327c417b78c699836f517a0dcc950d192aa4d603ef2c18fc068172df15126f7ee7b289b4d91a679ab44e592436de978a718d3e3003bf1bdd99489c7dca33072352fa8de9a519355eba616e1c65ea9fcd1396015e67035476a46bc52bb14e07ef5173076d2d24856496c932c5dec93a305fe985b128a4032e4e5682115046de09a0edd5003f8d5b1ff8190982cb41ad8587d91f003d9a58030b3578a86f684151f55adb6ee559c966586394b011a6ea75bd9ce86283b5f2ac03a359e88e2b5c2e6789cadaa5fa39d5be563d13d04c5f2a93ede7898715e77fac033dab1763f236828f82b70d4ca5ef8b8ac322fb11e8935a01c8e27a69ea3400be03f75446c3b4c913f58ff44a00e136e1d5e9fcd194273a5cf60da9906c298e2f4803915ef551052f0004d33708588f8962ddbbc3e8d4c8dfb2d9f56087b7dce69c65035031b571bed61a5e2944e724408040fe3a1efd7c50b1f003b44305a25b2904c503d14bbb92ef469941f24384e05785f81c68e02482d03c020b5ba22bb404a0968d032084b2d6dd7f05e359e8d4d0c2052a5c700e09abc27f1e936500ce9c87a1b02d031b1ed21d7ea31017cac66800efd51945be0592493204825ff06c304b4178554203742162dd47d7f617648826a92247a7dd1207968a2bff72bb3f9b50c02010e72803eb980c267733029182beacf3d5f310155fe8e6577729bbc04a78263fe8003ccc030679a957e49c6fd01d5d900b20b1a0427c96ad7ae968124374841a06468cbd6d03d4e9a4749a78dbcdd10b1bb9da681e92d870584266e64e4b3f91d62197001a6003a3759ccddc40708e83d1cd94e266017d62a6ab78c6cb440a972e4895b39c9162039771442ec3280b2eb4defd643c3c6fb01fe10a2e1a3f896f913d353c503cfe360374414dfe1dd397e7864df321a53cc914785125cd56e7cc01d305106bfaddd1b7036ed20f7f3718fdfb363bcbd412be6540191768e6bfa91aab17e2a39d6bb8f14303a8ce2e0b044cd39f7081d5a5a140af77d6a2c54904e34e353938eb1ff56ad78e03c42c9768aa2b036137b2f7d2a2924a3a5e428bfbec33f4c33170d57c8681245e0325cbe355b73f6aa65fb75cfb9b101197cceedd5e21cebd88b8897f6af27c97190319117eda34748df4bf0ad8c8118e68b6ed7a52c0f3e9660def0b1a4e22db1b3a032e7adc0e27aa5fa8d9cff4e651e283f8d3683f97793db514a0688a64bca939f703058833603f9e7661768b8d374f157e5988e68cb762719b6c0ed8cc62c19321b603a4f20583c2953fe33f858bc93651bc4ca1a7bdb20aa1d7c4479d96ed2c91c6cd031f30d809f3b140baaf1a1f83caf85e4a541ef4d313df6d8b7e9aa4e33254b91905581e03c25228aa3e0fc0fd7b3cafa10a2902661c556d0de9cf11d0f9d3b5f2b00c01470a97ef1c9aee0003fc102dffed8f5f30850a6fa59f7f4b8c94719c5e531bba1b7bac9df1869f6ccd03bdb16d0b6cdbd0446a8ee712e14bbd1577ff10599fcf655cb7e51d209cc3574605581d027395e1e902594ec2bfdedea132e7a982c694ef62d27fc32de05a8f9507011bffffffffffffffff05581d023581460d722dd959d16ff6a27f25c35093d48d7ae604a3a446613f6d0c0a47122847f9fc5a53021908040306bee0bc6d86ff9362098fa51b74472dd6b9a9a21ff3dbd655b14decd734d7e903d749b3c1c0b68a5219ed75edae41ee3901fcdc25e26814216a1a76828f2c63ce01410c05581e0398435aa459377af96294986383524d36b9f5033dfea1d2c3d2766c36700c0246d52c6419436a05581e03b0e2f8daff1506cfba555e75269037018748f5c2c0d5c597aadc3c6c700c0247038d7ea4c6800005581e03c7626f56ffdb31e69bb0403ead6fca64402648d21166c8451c4e988b10040203a7e48f0d73eaf7c47528d6ab59ffae7b4aec13c5eb888b7359f014521767c84803f4894f5d93a9fad81ddc3c915bba04e8b24b153184b4a38622d4e353288b537905581e039894f2981d1e44c72d7d8cf8307f6b5c84bb59c74bd437eae78fa39b3007011bffffffffffffffff05581e0313b7b77db1ebc3eac81139c183bb97e6ab3e1b659a3e4c4c568284d1200c014703d6f10ebc11a70306eedd8a354d6ffcab22ccafe34ce39240087e65e85796567a189340aceef2d1034bcf0f0bcfca3d7eb3aa153aa191ca5cb5a4b6f8ab5e2a548316e8fae670d7ad02196dd703260f17bbf7ea6d52637f025f3f8ffc95f5c816e1e1c8b2cee7224042dcd3aa41036bf2269a710f17e4febe554e7e4866c07bb83ec5629af81259b7ba94b0d7631f039c93e4909dfb6554722ee525d8f5b0f53e0348116a6856809094f4e7d74cd8260219ffff03c103192d8b7607cf14912bd8decbf3a4326e4e757baaaf2fdb8dbada7f65567f03f79395bac88818dcf1b112bba36234c95dcacc6612d662ae4d341f85d69127c903d56f27f63d6a9f2c44d0cd754058c94941e6eb1de749af59908b78cdce7a31e103828e61af7f4b1dc1e36fd0db44e26667f6b75f2341799cccc94a0ee436b639640219ffff03f5a2335af632a842144f36c7160cd281e9f615cbdb92bcc007ff3513b82c2051038ea424be6da79c6f08237d0266c94d0a9c3ab511fcaca3345c71830d7dd8f2b6031902f0fa25e5d81707fe9c42dcd984c2606b36d6521b8bfa1819a74f32bae36b03da9919867075b1029dbe8d1aa7f2a3ce7b0d96fd548a22cd9711090e148733dd033137d62238f6d2ec24920b7ae89d9d1dd4f1f778de104b07007f7126e4197a040219ffff03039b8891a8884437971361372e0eb906b2b5a4f756f949b184bffdd5474b9f330308819ce3dd8053f69438c12fc2853b44967f4db6744770050cce50d259faea8003f24dd9962fff1bbe0f7b596b5cfc9d42e386929c1e4361606127d40cf3ee8ad203cbf061a1ffcb4bf3cd144d463af80b369ce209839ce3fe9ad20bb0714edd70910332c5a2ad6ad056363784f6af2d9f00a1af39963beba611c4961fbfd75de762be03613109992ed0e2ad0664bc3c6e2edeb6ebe4658fd32017a8e33b8812721596d20330a373483d802f9a564ed1634bdeaece3a5aea165baaa152b2b845cd89188ee10219ffff03f626389fd0268a78b7009d5fbe79f54ba17690099e27c4ff2527df69919272f30354ad6a2b2406b5ef05902703e0d2f7b4bf7d4e88ad3c0c91e4ac3ee6e4bcc1a8035c5b6a430df039f06528bd20c00fbed3781b83b9ebcbe28b8e6dec8e87fc46ce03abd2254acacffb19048b2905c65be1d6de8b7382cd9da2f6d75944cc84b27b3f0348210fec7ea16e6d475c11f67b9184bf7cc82c04d0b629b0ef23f955e2fdf19d03a944c8304408b40bcb8c9a017838ff1faff2b7b5026fa892fe34eb21522f3271031372948a3afca78d0e69875f5a5af1cd07616ae40bdf878351a38a0670003b6a036176ecfa0c5012a391fa2914724aae87253f9baee92a889f49ee7df479c76e5b05581e03bf3d8e9b7c09ae8b83e912c30ced91bb907e92f890ca5cdd1e4568676004010330d48c7f9098573d652f0b71ed5f14a03f057dca4576bdf5c516b12aa17947c60605581e030b0c8b7baf1e08f37bfdde30594db28aacfddd98f2494e56be8dc8f83007011bffffffffffffffff05581d02ed25e34ecf9afe0c6db04604e260e2bd1eb5f91195348795533f55fa040204593226608060405234801561001057600080fd5b50600436106100415760003560e01c806344ba1fca146100465780637b10399914610080578063a231a780146100bf575b600080fd5b61006d7f3689005aec026df754d93d88502592c01be0cfc074fb2a14f1cd3f426b51aa1881565b6040519081526020015b60405180910390f35b6100a77f000000000000000000000000de6d4872c0c8167fb4f405c7854fd2fed7edca2181565b6040516001600160a01b039091168152602001610077565b61006d6100cd366004612c29565b6000808760ff1660058111156100f357634e487b7160e01b600052602160045260246000fd5b9050600081600581111561011757634e487b7160e01b600052602160045260246000fd5b14156101325761012a8787878787610292565b915050610288565b600181600581111561015457634e487b7160e01b600052602160045260246000fd5b14156101675761012a878787878761032a565b600281600581111561018957634e487b7160e01b600052602160045260246000fd5b141561019c5761012a878787878761037f565b60038160058111156101be57634e487b7160e01b600052602160045260246000fd5b14156101d15761012a87878787876103cf565b60048160058111156101f357634e487b7160e01b600052602160045260246000fd5b14156102065761012a8787878787610664565b600581600581111561022857634e487b7160e01b600052602160045260246000fd5b141561023b5761012a8787878787610883565b60405162461bcd60e51b815260206004820152600e60248201527f494e56414c49445f534f5552434500000000000000000000000000000000000060448201526064015b60405180910390fd5b9695505050505050565b60006102bf867f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d86610aeb565b6000808351146102db576102d68787878787610b07565b6102e7565b6102e787878787610d38565b905080600182516102f89190613164565b8151811061031657634e487b7160e01b600052603260045260246000fd5b602002602001015191505095945050505050565b6000610357867f000000000000000000000000e592427a0aece92de3edee1f18e0157c0586156486610aeb565b60208251146103725761036d8686868686610eb6565b610288565b6102888686868686611115565b60006103ac867f000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c886610aeb565b60208251146103c25761036d868686868661128d565b6102888686868686611869565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009081906001600160a01b038716906370a082319060240160206040518083038186803b15801561042c57600080fd5b505afa158015610440573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104649190612bdb565b905060007f000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee576001600160a01b031663d2c4b5986040518163ffffffff1660e01b815260040160206040518083038186803b1580156104c157600080fd5b505afa1580156104d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f9919061288c565b9050610506888288610aeb565b6105667f000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee57856040518060400160405280601781526020017f50415241535741505f56355f535741505f4641494c45440000000000000000008152506119bd565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038916906370a082319060240160206040518083038186803b1580156105c257600080fd5b505afa1580156105d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fa9190612bdb565b90506106068382613164565b9350858410156106585760405162461bcd60e51b815260206004820152601660248201527f50415241535741505f56355f4d494e5f414d4f554e5400000000000000000000604482015260640161027f565b50505095945050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009081906001600160a01b038716906370a082319060240160206040518083038186803b1580156106c157600080fd5b505afa1580156106d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f99190612bdb565b9050610726877f0000000000000000000000001111111254eeb25477b68fb85ed929f73a96058287610aeb565b6107867f0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582846040518060400160405280601481526020017f31494e43485f56355f535741505f4641494c45440000000000000000000000008152506119bd565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038816906370a082319060240160206040518083038186803b1580156107e257600080fd5b505afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190612bdb565b90506108268282613164565b9250848310156108785760405162461bcd60e51b815260206004820152601360248201527f31494e43485f56355f4d494e5f414d4f554e5400000000000000000000000000604482015260640161027f565b505095945050505050565b600060208251146108d65760405162461bcd60e51b815260206004820152601760248201527f484f505f494e56414c49445f444154415f4c454e475448000000000000000000604482015260640161027f565b6000828060200190518101906108ec919061288c565b6040517f66c0bd240000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301529192508291600091908316906366c0bd249060240160206040518083038186803b15801561094f57600080fd5b505afa158015610963573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109879190612c0d565b6040517f66c0bd240000000000000000000000000000000000000000000000000000000081526001600160a01b038a811660048301529192506000918416906366c0bd249060240160206040518083038186803b1580156109e757600080fd5b505afa1580156109fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1f9190612c0d565b9050610a2c8a858a610aeb565b6040517f9169558600000000000000000000000000000000000000000000000000000000815260ff80841660048301528216602482015260448101899052606481018890524260848201526001600160a01b0384169063916955869060a401602060405180830381600087803b158015610aa557600080fd5b505af1158015610ab9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610add9190612bdb565b9a9950505050505050505050565b610af7838360006119d6565b610b028383836119d6565b505050565b606060007f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b6457600080fd5b505afa158015610b78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9c919061288c565b9050600083806020019051810190610bb491906128e1565b90506000610bc389838a611b6a565b905060005b81517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01811015610c6757610c5f84838381518110610c1757634e487b7160e01b600052603260045260246000fd5b602002602001015184610c34600186611cf890919063ffffffff16565b81518110610c5257634e487b7160e01b600052603260045260246000fd5b6020026020010151611cfc565b600101610bc8565b506040517f38ed17390000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d16906338ed173990610cd5908a908a908690309042906004016130d3565b600060405180830381600087803b158015610cef57600080fd5b505af1158015610d03573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d2b9190810190612b88565b9998505050505050505050565b606060007f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d9557600080fd5b505afa158015610da9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcd919061288c565b90506000610ddb8787611df8565b9050610de8828888611cfc565b6040517f38ed17390000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d16906338ed173990610e5590889088908690309042906004016130d3565b600060405180830381600087803b158015610e6f57600080fd5b505af1158015610e83573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eab9190810190612b88565b979650505050505050565b600080600083806020019051810190610ecf91906129d8565b81519193509150600101815114610f285760405162461bcd60e51b815260206004820152601f60248201527f494e56414c49445f554e49535741505f56335f494e5055545f4c454e47544800604482015260640161027f565b6000610f32611ea2565b90506000610f418a858b611b6a565b905060005b8351811015610feb57610fe383838381518110610f7357634e487b7160e01b600052603260045260246000fd5b602002602001015184610f90600186611cf890919063ffffffff16565b81518110610fae57634e487b7160e01b600052603260045260246000fd5b6020026020010151878581518110610fd657634e487b7160e01b600052603260045260246000fd5b6020026020010151611f3a565b600101610f46565b506110276040518060a001604052806060815260200160006001600160a01b031681526020016000815260200160008152602001600081525090565b611031828561206d565b8152606081018990526080810188905230602082015242604080830191909152517fc04b8d590000000000000000000000000000000000000000000000000000000081527f000000000000000000000000e592427a0aece92de3edee1f18e0157c058615646001600160a01b03169063c04b8d59906110b4908490600401612fbd565b602060405180830381600087803b1580156110ce57600080fd5b505af11580156110e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111069190612bdb565b9b9a5050505050505050505050565b6000808280602001905181019061112c9190612bf3565b9050611141611139611ea2565b888884611f3a565b6040805161010081018252600060e082019081526001600160a01b038a811683528981166020840190815262ffffff8681168587019081523060608701908152426080880190815260a088018e815260c089018e815299517f414bf389000000000000000000000000000000000000000000000000000000008152895188166004820152955187166024870152925190931660448501525184166064840152905160848301525160a4820152935160c48501529051811660e484015290917f000000000000000000000000e592427a0aece92de3edee1f18e0157c058615649091169063414bf38990610104015b602060405180830381600087803b15801561124957600080fd5b505af115801561125d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112819190612bdb565b98975050505050505050565b6000806000838060200190518101906112a6919061291c565b815191935091506001018151146112ff5760405162461bcd60e51b815260206004820181905260248201527f494e56414c49445f42414c414e4345525f56325f494e5055545f4c454e475448604482015260640161027f565b600061130c89848a611b6a565b905060005b82518110156113b5576113ad83828151811061133d57634e487b7160e01b600052603260045260246000fd5b602002602001015183838151811061136557634e487b7160e01b600052603260045260246000fd5b602002602001015184611382600186611cf890919063ffffffff16565b815181106113a057634e487b7160e01b600052603260045260246000fd5b6020026020010151612139565b600101611311565b5080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0160008167ffffffffffffffff81111561140357634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561146957816020015b6114566040518060a0016040528060008019168152602001600081526020016000815260200160008152602001606081525090565b8152602001906001900390816114215790505b50905060005b8281101561151357600082828151811061149957634e487b7160e01b600052603260045260246000fd5b60200260200101519050816000146114b25760006114b4565b8a5b606082015285518690839081106114db57634e487b7160e01b600052603260045260246000fd5b60209081029190910181015182528181018390526001830160408084018290528051600081529283019052608090920152905061146f565b506000835167ffffffffffffffff81111561153e57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611567578160200160208202803683370190505b5090506115738a612361565b8160008151811061159457634e487b7160e01b600052603260045260246000fd5b6020026020010181815250506115d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6115cd8b612361565b0290565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018151811061161557634e487b7160e01b600052603260045260246000fd5b60200260200101818152505060007f000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c86001600160a01b031663945bcec9600085886116a460408051608081018252600080825260208201819052918101829052606081019190915250604080516080810182523080825260006020830181905292820152606081019190915290565b87426040518763ffffffff1660e01b81526004016116c796959493929190612e73565b600060405180830381600087803b1580156116e157600080fd5b505af11580156116f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261171d9190810190612af5565b905060008161173760018451611cf390919063ffffffff16565b8151811061175557634e487b7160e01b600052603260045260246000fd5b60200260200101519050600081126117af5760405162461bcd60e51b815260206004820181905260248201527f42414c414e4345525f494e56414c49445f42415443485f414d4f554e545f4f55604482015260640161027f565b8b6117e1836000815181106117d457634e487b7160e01b600052603260045260246000fd5b6020026020010151612401565b1461182e5760405162461bcd60e51b815260206004820181905260248201527f42414c414e4345525f494e56414c49445f42415443485f414d4f554e545f494e604482015260640161027f565b611857817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0290565b9e9d5050505050505050505050505050565b600080828060200190518101906118809190612bdb565b905061188d818888612139565b6118d96040805160c0810190915260008082526020820190815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001606081525090565b818152600060208201819052506001600160a01b038881166040838101919091529088166060830152608082018790528051600080825260208201909252905060a08201526001600160a01b037f000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8166352bbbe298261199c60408051608081018252600080825260208201819052918101829052606081019190915250604080516080810182523080825260006020830181905292820152606081019190915290565b88426040518563ffffffff1660e01b815260040161122f9493929190613016565b60606119cc8484600085612453565b90505b9392505050565b801580611a7857506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03838116602483015284169063dd62ed3e9060440160206040518083038186803b158015611a3e57600080fd5b505afa158015611a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a769190612bdb565b155b611aea5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606482015260840161027f565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052610b02908490612590565b815160609060020167ffffffffffffffff811115611b9857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611bc1578160200160208202803683370190505b5090508381600081518110611be657634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060005b8351811015611c9657838181518110611c3257634e487b7160e01b600052603260045260246000fd5b602002602001015182611c4f600184611cf890919063ffffffff16565b81518110611c6d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0390921660209283029190910190910152611c8f8160010190565b9050611c09565b508181611cae60018651611cf890919063ffffffff16565b81518110611ccc57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250509392505050565b900390565b0190565b6040517fe6a439050000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015282811660248301526000919085169063e6a439059060440160206040518083038186803b158015611d6257600080fd5b505afa158015611d76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9a919061288c565b90506001600160a01b038116611df25760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f554e49535741505f504f4f4c000000000000000000000000604482015260640161027f565b50505050565b60408051600280825260608083018452926020830190803683370190505090508281600081518110611e3a57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250508181600181518110611e7c57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505092915050565b60007f000000000000000000000000e592427a0aece92de3edee1f18e0157c058615646001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611efd57600080fd5b505afa158015611f11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f35919061288c565b905090565b600080836001600160a01b0316856001600160a01b031610611f5d578385611f60565b84845b6040517f1698ee820000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152808316602483015262ffffff87166044830152929450909250600091881690631698ee829060640160206040518083038186803b158015611fd657600080fd5b505afa158015611fea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200e919061288c565b6001600160a01b031614156120655760405162461bcd60e51b815260206004820152601860248201527f494e56414c49445f554e49535741505f504f4f4c5f4645450000000000000000604482015260640161027f565b505050505050565b60408051600080825260208201909252905b82518110156120fd576120f38382815181106120ab57634e487b7160e01b600052603260045260246000fd5b60200260200101516120ed8684815181106120d657634e487b7160e01b600052603260045260246000fd5b60200260200101518561267590919063ffffffff16565b906126a1565b915060010161207f565b506119cf8383518151811061212257634e487b7160e01b600052603260045260246000fd5b60200260200101518261267590919063ffffffff16565b6040517ff6c00927000000000000000000000000000000000000000000000000000000008152600481018490526000907f000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c86001600160a01b03169063f6c0092790602401604080518083038186803b1580156121b457600080fd5b505afa1580156121c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ec91906128a8565b5090506001600160a01b0381166122455760405162461bcd60e51b815260206004820152601860248201527f494e56414c49445f42414c414e4345525f504f4f4c5f49440000000000000000604482015260640161027f565b6040517ff94d4668000000000000000000000000000000000000000000000000000000008152600481018590526000907f000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c86001600160a01b03169063f94d46689060240160006040518083038186803b1580156122c157600080fd5b505afa1580156122d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122fd9190810190612a8b565b5090915061230e90508185856126b6565b61235a5760405162461bcd60e51b815260206004820152601c60248201527f494e56414c49445f42414c414e4345525f504f4f4c5f544f4b454e5300000000604482015260640161027f565b5050505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8211156123f95760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e74323536000000000000000000000000000000000000000000000000606482015260840161027f565b50805b919050565b6000808212156123f95760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015260640161027f565b6060824710156124cb5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161027f565b6001600160a01b0385163b6125225760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161027f565b600080866001600160a01b0316858760405161253e9190612dc3565b60006040518083038185875af1925050503d806000811461257b576040519150601f19603f3d011682016040523d82523d6000602084013e612580565b606091505b5091509150610eab82828661276b565b60006125e5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166119bd9092919063ffffffff16565b805190915015610b0257808060200190518101906126039190612bbb565b610b025760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161027f565b6060828260405160200161268a929190612ddf565b604051602081830303815290604052905092915050565b6060828260405160200161268a929190612e29565b60008080805b865181101561275957856001600160a01b03168782815181106126ef57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316141561270b57600192505b846001600160a01b031687828151811061273557634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316141561275157600191505b6001016126bc565b50818015610288575095945050505050565b6060831561277a5750816119cf565b82511561278a5782518084602001fd5b8160405162461bcd60e51b815260040161027f9190612faa565b600082601f8301126127b4578081fd5b815160206127c96127c483613140565b61310f565b80838252828201915082860187848660051b89010111156127e8578586fd5b855b8581101561280f5781516127fd816131c9565b845292840192908401906001016127ea565b5090979650505050505050565b600082601f83011261282c578081fd5b8151602061283c6127c483613140565b80838252828201915082860187848660051b890101111561285b578586fd5b855b8581101561280f5781518452928401929084019060010161285d565b805162ffffff811681146123fc57600080fd5b60006020828403121561289d578081fd5b81516119cf816131c9565b600080604083850312156128ba578081fd5b82516128c5816131c9565b60208401519092506128d6816131e1565b809150509250929050565b6000602082840312156128f2578081fd5b815167ffffffffffffffff811115612908578182fd5b612914848285016127a4565b949350505050565b6000806040838503121561292e578182fd5b825167ffffffffffffffff80821115612945578384fd5b612951868387016127a4565b9350602091508185015181811115612967578384fd5b85019050601f81018613612979578283fd5b80516129876127c482613140565b80828252848201915084840189868560051b87010111156129a6578687fd5b8694505b838510156129c85780518352600194909401939185019185016129aa565b5080955050505050509250929050565b600080604083850312156129ea578182fd5b825167ffffffffffffffff80821115612a01578384fd5b612a0d868387016127a4565b9350602091508185015181811115612a23578384fd5b85019050601f81018613612a35578283fd5b8051612a436127c482613140565b80828252848201915084840189868560051b8701011115612a62578687fd5b8694505b838510156129c857612a7781612879565b835260019490940193918501918501612a66565b600080600060608486031215612a9f578081fd5b835167ffffffffffffffff80821115612ab6578283fd5b612ac2878388016127a4565b94506020860151915080821115612ad7578283fd5b50612ae48682870161281c565b925050604084015190509250925092565b60006020808385031215612b07578182fd5b825167ffffffffffffffff811115612b1d578283fd5b8301601f81018513612b2d578283fd5b8051612b3b6127c482613140565b80828252848201915084840188868560051b8701011115612b5a578687fd5b8694505b83851015612b7c578051835260019490940193918501918501612b5e565b50979650505050505050565b600060208284031215612b99578081fd5b815167ffffffffffffffff811115612baf578182fd5b6129148482850161281c565b600060208284031215612bcc578081fd5b815180151581146119cf578182fd5b600060208284031215612bec578081fd5b5051919050565b600060208284031215612c04578081fd5b6119cf82612879565b600060208284031215612c1e578081fd5b81516119cf816131e1565b60008060008060008060c08789031215612c41578384fd5b8635612c4c816131e1565b9550602087810135612c5d816131c9565b95506040880135612c6d816131c9565b9450606088013593506080880135925060a088013567ffffffffffffffff80821115612c97578384fd5b818a0191508a601f830112612caa578384fd5b813581811115612cbc57612cbc6131b3565b612cce84601f19601f8401160161310f565b91508082528b84828501011115612ce3578485fd5b808484018584013784848284010152508093505050509295509295509295565b6000815180845260208085019450808401835b83811015612d3b5781516001600160a01b031687529582019590820190600101612d16565b509495945050505050565b6000815180845260208085019450808401835b83811015612d3b57815187529582019590820190600101612d59565b60008151808452612d8d816020860160208601613187565b601f01601f19169290920160200192915050565b60028110612dbf57634e487b7160e01b600052602160045260246000fd5b9052565b60008251612dd5818460208701613187565b9190910192915050565b60008351612df1818460208801613187565b60609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190920190815260140192915050565b60008351612e3b818460208801613187565b60e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000169190920190815260030192915050565b6000610120808301612e85848b612da1565b60208481019290925288519081905261014080850192600583901b8601909101918a8201855b82811015612f2b578785037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec00186528151805186528481015185870152604080820151908701526060808201519087015260809081015160a091870182905290612f1781880183612d75565b978601979650505090830190600101612eab565b505050508381036040850152612f418189612d03565b915050612f8360608401876001600160a01b03808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b82810360e0840152612f958186612d46565b91505082610100830152979650505050505050565b6000602082526119cf6020830184612d75565b600060208252825160a06020840152612fd960c0840182612d75565b90506001600160a01b0360208501511660408401526040840151606084015260608401516080840152608084015160a08401528091505092915050565b600060e08252855160e08301526020860151613036610100840182612da1565b5060408601516001600160a01b03908116610120840152606087015116610140830152608086015161016083015260a086015160c061018084015261307f6101a0840182612d75565b9150506130c160208301866001600160a01b03808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b60a082019390935260c0015292915050565b600086825285602083015260a060408301526130f260a0830186612d03565b6001600160a01b0394909416606083015250608001529392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715613138576131386131b3565b604052919050565b600067ffffffffffffffff82111561315a5761315a6131b3565b5060051b60200190565b60008282101561318257634e487b7160e01b81526011600452602481fd5b500390565b60005b838110156131a257818101518382015260200161318a565b83811115611df25750506000910152565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146131de57600080fd5b50565b60ff811681146131de57600080fdfea26469706673582212201276fa20c151edde8d508834cffc50851e6222e93b02a9f2e45cdd4eba5e833a64736f6c634300080300330605581d027d2bfd0499943b5247529d6968b803b1ce2fc1cef552ecc3b67561d707011932260219010803779448045c53e92c15db87f19855f55bdff0f14b2cca87640d56cf3f9298a8e105581e035d4b0d52bbc447eaeda5651d4bbaf15fdb394762605a7fe1e2eef17ce00c01466346dc9ae80003b0b255c6b190879e2aa3053eb682d8eefd13e8e93055eaac752ceda7222f950b05581e03cae8aeba41dafd7b550fe76800170194ef8fece84a4e010dfe7af5ee40040203fdcbb0780357b92345127ff3244b76276f109e8ef5c6ae9e51e618918ddf7adb05581e035dfbaed306c997e1925cd414c73ba160f85e3037dd1cb1a753549571e00c024805d7aa4ca10513b005581e03f992abe729b9af19a3021339e0519450298f1746de9f0949b57d3344900c02471631661b095a3c05581e03445418ed62fdf0c6cc58744cef4733c20a34dba7e429b91d23fc4e82c00c02463e4dbabb53290219fd3c033e5d525baee880b6b8fa9babc7a737e5dd9df1debb2b716438dea4c5537313d50340a6ee4cd4e4586329ba89d1924a333ae10fe5972aef4d3901268aee6367501d03943d0bd21f30f9208fbfd25a46c44615c32ac903c248957bb2aa06cd529aa18f032048ec3a0892105d544a27afd33485c822daf5623ae0996dbeb691aa97994ffd03ca35603603ad7043e283a3fc8497f29400e2a1af3bb81684ad249ce48451ed20034380d02dc708a7cb68ec39c3481753e77ee30d934cd3444cb0b9b3cb084f1a680341dab8facf2cdd16204f9adeacefac37d01cd8b8d32ce6010a9dd949427c721703dee05a97ab0fd2ce5b6b43f221303b45738d00bd94886544b62f9e365d0dd0ca030d868df8fdf67f0036028650855e83d0bf7d4222b4736e6718e89d952f16ef4703c1c319a18129173e3910bf26d1078ab9a7793269cab26624fb77fb66ac70b77503c023531dc256176611d4cde3d128b13cd735978b8a8fc84e3a7987bbe74f7dda0219ffff03aa757cd398f50603a9443b8fd349f9108ebc5a5c3eea88f3718af0b161630e2e03eb372beec4a3a10af435dcea66b9e536570c2f0cced38f62d1672b015f57fd8e03b568c686f93dbf903e84ef26294b0d1aabf017f63d194d9d3c5371b75079bc1603081bfbc170ff9a8d53fdd84cd4ddbcbae42b7be91e3cf744b024411ead845dde039fb962cbd5138662da509a5cdb1015cc43ac7c51e418209efc4a9de52424c28803ae5146a085d9f0f7abd1460fa04e1d85c6db33bbc3b08103e39f36bc61a16fc503b8c871d9e8f91561b5c1ef03a110e5444dc5929eec68cffe75da65adbdf8dd5f0326288aa1394d5a700560966437c754ac9bac34c744d3b0dc9e1bf2104a4b755d03c01f16cabf3e23807fcd142822bceb72abe235d1266d2b41bb10c5761e79750c0367cdef9406fadfe1477543cfe6cc0dd488c4c00a825ae146e43161011b4e9b5503e25bf60a526bbf9413e3a6c642806155661db1354267b41e2eae7c4e8a220db403675999cefeec3ea8ec1e5a3f7e1e85e4ed780b2cde4b1099c55e48266dac42270367155e64902b8a6969d2f0625c84ce3110bba2366121b82a7e1417fdbd66516403fdb95a6c39856214fed4fbb2cbf25e7a19d0201f6f9233a30a11f4a54e49c4670303efcb166747886b0c472a9d3d836897a38b10f50252823e7c559bda025f31110219ffff038faa3d6497f2e68806e9ec59105afa4085ca16a7316e1fb6133648335adfadbb03aded1f2493e14bb3b948bdf018c2ec80f48c3fd4dfc4701ec86047e4bb1ca9620330a14238aea1902656140858fc9097e9de2659bda9f4dee188024f44e94426270384af12de252c4435db52000f0af5ce3444bd9020f8751175ee102843b5cf964803c8b965bd50c36dd9316128cf31a4f3d2ac48228333201f62e2f34b6957cd1227036a2f931f7578a2cf40027faa1e5f6eba3d4763ebc18d74a9cfc8ba7708ae2ebd031f7ab7005a32474e14a8b44041ab7be1cc5883b94fd2ff1cb811cb90f3505de4030b296c39b018b79a8e5a6cde110258387eb3a64e9332d39b3ed3bc0d019b862e03e1d01826fa807ed0f4ec8629485861115be0d320f15a39187ca2356f2cab76db030e57b7304c20a5e27dbf80caf5315f83b2111c63f924c5346b75ef8c1dd0ce1f03bd87a8e642df62c305e551aa0c1251ddeb9f7f519608e18b4594b2ac82d68b2803a0170ce4ed578c85336dada7776883e10f52469afeb03d8e87ac89bee494d87903bf00877d8444cb88a2a3fccca25e332a1ae3df7642579255d12334f76ea0e5e3031abbf6d10cde320112d58f9fb3470837405a3569468a52205a2162f06f71ce73032974f83c94a7739ef64ac33a7e2ad4c75ba0479d72a67bd219c0f2c416d5bbbb03487b447c6fb35cf2c2805c6a6311410558ef418dcbf8959d354089caa853c519037e73c71a616804dbeb87bdcda752910cc8e63fb50e47d995969c898173ce1aae0343e69c31fa60a8147a88336ab7e6e45c766db17895c8c08c6f24ce358b0b7da8031675ae7141c2a158c6180344dfa8969ee58adb9353a5a94cfa56c259350a0dbb037cf96c61b4655b1e8466d8b5c4971b9af9dd7070c0972a5ff645db56e5d3a75303aaffe50109d507de45ecb62f46d5441225f56ae57a91527f50ef6de57ec869900605581e03afe83ddd6684b589b5cc4297a289eb8894fa19483859401bd14a985d2007011bffffffffffffffff03fd0004922f2b6db4126904102cc1fd78982e1c20c5a41a96ce55a4f1caf5506e03d704d9ce33530d9cc5199935d520bd76507ec0130bbc260df582706c417f25d205581e037352573cc166d33ca0ba8158c327ee9abea5fd5446355f02e8b86fedf0040205581e03510b545d201b47cf176850a430fcfc38a8ac38d5072e54a86061af66e0040105581e036069bdccaa6fa8af75095f57cc629890e6ae714590f6677f464b244130040a03b89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b00003a25722179c681a18328e54f53a1b2c3e4849be27840c64193a429d4d5d2501e505581d029ddef2d3aa69cfd8010d8b699e18227c6f3a7832a1312e0180484e640f01470e35fa931a00001bffffffffffffffff045926f96080604052600436106101805760003560e01c806370a08231116100d6578063a457c2d71161007f578063d505accf11610059578063d505accf14610430578063dd62ed3e14610450578063eaeb679b146104a357600080fd5b8063a457c2d7146103d0578063a9059cbb146103f0578063c0c53b8b1461041057600080fd5b80638c2a993e116100b05780638c2a993e146103865780638e5f5ad1146103a657806395d89b41146103bb57600080fd5b806370a082311461032657806374f4f547146103465780637ecebe001461036657600080fd5b806323b872dd11610138578063395093511161011257806339509351146102d15780634000aea0146102f157806367d71a321461031157600080fd5b806323b872dd1461027a578063313ce5671461029a5780633644e515146102bc57600080fd5b8063095ea7b311610169578063095ea7b3146101fe5780630cf2e8081461022e57806318160ddd1461025b57600080fd5b806304e488871461018557806306fdde03146101dc575b600080fd5b34801561019157600080fd5b5060ce546101b29073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101e857600080fd5b506101f16104d5565b6040516101d39190612073565b34801561020a57600080fd5b5061021e6102193660046120b6565b610567565b60405190151581526020016101d3565b34801561023a57600080fd5b5060cd546101b29073ffffffffffffffffffffffffffffffffffffffff1681565b34801561026757600080fd5b506035545b6040519081526020016101d3565b34801561028657600080fd5b5061021e6102953660046120e0565b610581565b3480156102a657600080fd5b5060125b60405160ff90911681526020016101d3565b3480156102c857600080fd5b5061026c610596565b3480156102dd57600080fd5b5061021e6102ec3660046120b6565b6105a5565b3480156102fd57600080fd5b5061021e61030c3660046121c4565b6105f1565b61032461031f366004612291565b610681565b005b34801561033257600080fd5b5061026c610341366004612316565b610888565b34801561035257600080fd5b506103246103613660046120b6565b6108b3565b34801561037257600080fd5b5061026c610381366004612316565b610958565b34801561039257600080fd5b506103246103a13660046120b6565b610983565b3480156103b257600080fd5b506102aa610a1f565b3480156103c757600080fd5b506101f1610aa1565b3480156103dc57600080fd5b5061021e6103eb3660046120b6565b610ab0565b3480156103fc57600080fd5b5061021e61040b3660046120b6565b610b72565b34801561041c57600080fd5b5061032461042b366004612331565b610b80565b34801561043c57600080fd5b5061032461044b366004612374565b610fcb565b34801561045c57600080fd5b5061026c61046b3660046123e7565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b3480156104af57600080fd5b5060cc546101b290610100900473ffffffffffffffffffffffffffffffffffffffff1681565b6060603680546104e49061241a565b80601f01602080910402602001604051908101604052809291908181526020018280546105109061241a565b801561055d5780601f106105325761010080835404028352916020019161055d565b820191906000526020600020905b81548152906001019060200180831161054057829003601f168201915b5050505050905090565b600033610575818585611156565b60019150505b92915050565b600061058e8484846112d6565b949350505050565b60006105a06112ef565b905090565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061057590829086906105ec908790612496565b611156565b60006105fd8484610b72565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16858560405161065d9291906124a9565b60405180910390a3833b156106775761067784848461136a565b5060019392505050565b60cc805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082161790915560ce5460c08301518351606085015160a086015160208701516101008801516040517fca346d4a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff95861660048201526024810194909452604484019290925260648301528216608482015260ff9094169392169163ca346d4a919060a40160206040518083038185885af115801561075d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061078291906124c2565b5060cd5460e083015160ce54608085015160a086015160408088015161010089015191517f2d67b72d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff958616600482015260248101949094526044840192909252606483019190915282166084820152921691632d67b72d919060a40160206040518083038185885af1158015610830573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061085591906124c2565b5060cc80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550565b73ffffffffffffffffffffffffffffffffffffffff811660009081526033602052604081205461057b565b60cc54610100900473ffffffffffffffffffffffffffffffffffffffff16331461094a5760405162461bcd60e51b815260206004820152602860248201527f4c31417262697472756d546f6b656e3a206f6e6c79206c3120617262206f6e6560448201527f206761746577617900000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61095482826113fa565b5050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526099602052604081205461057b565b60cc54610100900473ffffffffffffffffffffffffffffffffffffffff163314610a155760405162461bcd60e51b815260206004820152602860248201527f4c31417262697472756d546f6b656e3a206f6e6c79206c3120617262206f6e6560448201527f20676174657761790000000000000000000000000000000000000000000000006064820152608401610941565b61095482826115b0565b60cc5460009060ff16610a9a5760405162461bcd60e51b815260206004820152603360248201527f4c31417262697472756d546f6b656e3a206e6f7420657870656374696e67206760448201527f61746577617920726567697374726174696f6e000000000000000000000000006064820152608401610941565b5061a4b190565b6060603780546104e49061241a565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610b5a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610941565b610b678286868403611156565b506001949350505050565b6000336105758185856116b6565b600054610100900460ff1615808015610ba05750600054600160ff909116105b80610bba5750303b158015610bba575060005460ff166001145b610c2c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610941565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610c8a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8416610d135760405162461bcd60e51b815260206004820152602560248201527f4c31417262697472756d546f6b656e3a207a65726f20617262206f6e6520676160448201527f74657761790000000000000000000000000000000000000000000000000000006064820152608401610941565b73ffffffffffffffffffffffffffffffffffffffff8316610d9c5760405162461bcd60e51b815260206004820152602160248201527f4c31417262697472756d546f6b656e3a207a65726f206e6f766120726f75746560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610941565b73ffffffffffffffffffffffffffffffffffffffff8216610e255760405162461bcd60e51b815260206004820152602260248201527f4c31417262697472756d546f6b656e3a207a65726f206e6f766120676174657760448201527f61790000000000000000000000000000000000000000000000000000000000006064820152608401610941565b610e996040518060400160405280600881526020017f417262697472756d0000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f415242000000000000000000000000000000000000000000000000000000000081525061191b565b610ed76040518060400160405280600881526020017f417262697472756d0000000000000000000000000000000000000000000000008152506119a2565b60cc805473ffffffffffffffffffffffffffffffffffffffff808716610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff9092169190911790915560ce80548483167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560cd8054928616929091169190911790558015610fc557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b8342111561101b5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610941565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861104a8c611a61565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006110b282611a96565b905060006110c282878787611aff565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461113f5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610941565b61114a8a8a8a611156565b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff83166111de5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610941565b73ffffffffffffffffffffffffffffffffffffffff82166112675760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610941565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000336112e4858285611b27565b610b678585856116b6565b60006105a07f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61131e60655490565b6066546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6040517fa4c0ed36000000000000000000000000000000000000000000000000000000008152839073ffffffffffffffffffffffffffffffffffffffff82169063a4c0ed36906113c2903390879087906004016124db565b600060405180830381600087803b1580156113dc57600080fd5b505af11580156113f0573d6000803e3d6000fd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166114835760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610941565b73ffffffffffffffffffffffffffffffffffffffff82166000908152603360205260409020548181101561151f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610941565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020526040812083830390556035805484929061155b908490612519565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016112c9565b505050565b73ffffffffffffffffffffffffffffffffffffffff82166116135760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610941565b80603560008282546116259190612496565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000908152603360205260408120805483929061165f908490612496565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff831661173f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610941565b73ffffffffffffffffffffffffffffffffffffffff82166117c85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610941565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020526040902054818110156118645760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610941565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152603360205260408082208585039055918516815290812080548492906118a8908490612496565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161190e91815260200190565b60405180910390a3610fc5565b600054610100900460ff166119985760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610941565b6109548282611bde565b600054610100900460ff16611a1f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610941565b611a5e816040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250611c74565b50565b73ffffffffffffffffffffffffffffffffffffffff811660009081526099602052604090208054600181018255905b50919050565b600061057b611aa36112ef565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000611b1087878787611d0b565b91509150611b1d81611e23565b5095945050505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610fc55781811015611bd15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610941565b610fc58484848403611156565b600054610100900460ff16611c5b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610941565b6036611c67838261257a565b5060376115ab828261257a565b600054610100900460ff16611cf15760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610941565b815160209283012081519190920120606591909155606655565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611d425750600090506003611e1a565b8460ff16601b14158015611d5a57508460ff16601c14155b15611d6b5750600090506004611e1a565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611dbf573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611e1357600060019250925050611e1a565b9150600090505b94509492505050565b6000816004811115611e3757611e37612694565b03611e3f5750565b6001816004811115611e5357611e53612694565b03611ea05760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610941565b6002816004811115611eb457611eb4612694565b03611f015760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610941565b6003816004811115611f1557611f15612694565b03611f885760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610941565b6004816004811115611f9c57611f9c612694565b03611a5e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610941565b6000815180845260005b8181101561203557602081850181015186830182015201612019565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000612086602083018461200f565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146120b157600080fd5b919050565b600080604083850312156120c957600080fd5b6120d28361208d565b946020939093013593505050565b6000806000606084860312156120f557600080fd5b6120fe8461208d565b925061210c6020850161208d565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610120810167ffffffffffffffff8111828210171561216f5761216f61211c565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156121bc576121bc61211c565b604052919050565b6000806000606084860312156121d957600080fd5b6121e28461208d565b92506020808501359250604085013567ffffffffffffffff8082111561220757600080fd5b818701915087601f83011261221b57600080fd5b81358181111561222d5761222d61211c565b61225d847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612175565b9150808252888482850101111561227357600080fd5b80848401858401376000848284010152508093505050509250925092565b600061012082840312156122a457600080fd5b6122ac61214b565b6122b58361208d565b81526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e082015261010061230b81850161208d565b908201529392505050565b60006020828403121561232857600080fd5b6120868261208d565b60008060006060848603121561234657600080fd5b61234f8461208d565b925061235d6020850161208d565b915061236b6040850161208d565b90509250925092565b600080600080600080600060e0888a03121561238f57600080fd5b6123988861208d565b96506123a66020890161208d565b95506040880135945060608801359350608088013560ff811681146123ca57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156123fa57600080fd5b6124038361208d565b91506124116020840161208d565b90509250929050565b600181811c9082168061242e57607f821691505b602082108103611a90577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561057b5761057b612467565b82815260406020820152600061058e604083018461200f565b6000602082840312156124d457600080fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000612510606083018461200f565b95945050505050565b8181038181111561057b5761057b612467565b601f8211156115ab57600081815260208120601f850160051c810160208610156125535750805b601f850160051c820191505b818110156125725782815560010161255f565b505050505050565b815167ffffffffffffffff8111156125945761259461211c565b6125a8816125a2845461241a565b8461252c565b602080601f8311600181146125fb57600084156125c55750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555612572565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561264857888601518255948401946001909101908401612629565b508582101561268457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea26469706673582212204a8cafe76189836ce935f0d067f82a4296ca80afd7934d2d61e92ea0d4e4808364736f6c634300081000330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563041ff005821035c8cacca08149f8e470cba15299bd71145fee518c13dd9de2f0f88dfbcbd24e0481bc16d674ec800000219800405581d02f414e53ee66fe19e25485a4299afc863dfdd17f003c822012506a08d07011926f9020303a2255780e0feedbe1e9debb4a1687918d6861e558a3bfa11a0fa0a9b4b7a44d905581e03e1eafe32a955b5f7d2eaa4fd47bfad143b2486273c9648db5dce90d2a0040205581e032df86c5f75b8ca3ab22fbcd3733941af4d2b8a86086494e8d6be03645004020219fce103c02fd4974ebe6847a9ec61141233dbd9087263ae6ef185abd8025b21a6793605037d0a4dd9574369fd2aedf3092fb750ffc8899187770bd7f256c489f43afd621603b20e323055dfb0978ac179e6c1e1645fa287ba19d55d12b2928774abae70268103e0ae6b18f75a2e3d093ee91d4a98addf52b2b2f899f2e7fcf4064245ae31138a0219ffff0302e6cde99c3e8c2afd65b9327406f27541685186dea15dce18531f730083a71b03bce990d220f2a04a4b28efb9f48aa14940e870dc33891f953a22646946fdf4bd031151da3e9f34b4ac89d6e75ba799e6417cd8b4951e7bb066d7ff4ab24706d34703e29efbef17f27615e3e27b87c5b9f84593bc2e11d4eff9cd1cefb9856bbd428a03b5b513e66fe039c732954061ac3c390f709c689fb891c0f99ae3f1a6399359b2039ff6ffe1cb705b26570b11a67718ec4323c6d067de0fbae28e22274efc338a3203a8f1c2fada24c5862fd7d73b19b30b1b5fba4d7b2a1acea652c9b5c1e09c768b0312d98b83f9bc1d4a2e5e8f118545d34fe74e196984d223a3b7acaeeae1f2f69203c68dae891469db584e5371b6e23bd86773d41acd16c0299af88beb6d2635389503b55e877ba048a47b8d671df93faa097378a53ec70e2d8e3bd468dd906629fcb10386f0da2bd4d2e7506fb913a57f43e580c3313af998929eb00e12d985159641ed03d863aa35b509083bede625e033944e99c9b204e8ef7c9db4ff283e2797c07a4703f2be662292900c1690e15ddffb81a123e6d72e18d063848f09f7c0ff5e0798df032b0aa330d18de9897cc192294d65dff0626b089aaf86bf5bac39cd41a17d18990219ffff030b1e34280f2cd25298b17a0c7e1a25e2c4c86152f9c550ae179ee710322bb74e031f5359c891c2d160d8fead2b9a8a8bc7ec798339fc40aec519698556c80a3197036dd5200a45dced46cf896bc07fbaf2802a00283d7c7a2c4c7bd8d1042e01474203fde6bd746bc4cd8c0c62185c3dbaeb697d2215f4c262ffd34bb4547fd1748aaa035167502f103c356f3ba1a92a371bd2f75283675081a5149382477d9078cf557e03a5871c563ee114dd9a37f1d920911a5072c07fb6da90ce31a75f2365dd6f0f2a0219ffff03207cc5d0999130e7985504d10be8ffe0d980deb06528d96f4eaec2740154b56e03d39455800b8692d0c04daa419de85601a8611885b8dbb9e37ee75878f0761cc703b730ac8b59de57e72940b1b79f9da383d09720e6dacf3963c87aca04ebd12c5a031fc02dcf6ca7e46b2a3ddc9100c2218fabd534ad13ec0927224f7ec0d789d87c03d6539fff2c69b03cd926416398082f5ac804d5c7e6b5cfeeef55832c0b475ae203b4c482122069054f0177380c3e5d4d47769a90a6a6ff75247f639ed7875b190503b8600f4a53f28718643b6119eb03765cce9189111c32b7ca5888fea629740610032f7fec001626192dacc26190d45608495a5261a15ff2e1b5db4039e451dd939303d9244ff4303301c19ae64e4835d94265591fbdd92a6e665aa7fbdea6a1e8f96e031267910086f78429cefcc7729f0137cee6cbcc7b7df7879cfe6d599dad1932a903f24588a10be80cb9dd0045fd0d58a7c83eb81f13d699fb6c2aa15e145c56a95f03ba156697e034bdc1abe71a392b61b308c3de4b1fe63a68ff266ed8d8411e5b4d03a6633cfc5181322b6d84443a7e68270e6562e7c02822824afad1b20f0e7f6eb2031b2af5472444e7f5dac62f149e8f4f158055e3d7f7cee270f52ad16a922f291e03d3ba25836ee83cf5e3fecb83bb04af639d73528eed130b525a6bdc65ace6c5520311e24a48afe640e1cb95e597a4ddda39003d33aa416c0a2ae02ade8637a2d80203a13452e08abac2a4d0e1c604ccc197c57ff5fdb29263795babfe38231a40928103082b4cffd6cd45f9f0c616eeda22a6737fa88551521c6da08a22fbe33e652cd70338e4307f965944786e848f48c56c4b6be2be02de99855baa0520f19f8775f9bb0303c233e14621438a546e9fd20be3bfe0df0b407db10715f73e8f8d021faf4fb9037d1c99133ac42b7f19af45edbdf2dd1e81c8ef7dd00282a52542b2fc46cae11105581e034599c552dcc0d7e4f4e345bce5c43d20ffe469fc2fbe0af7d2051df0e00c02477a0f382e64488305581e039c5a40504bf18f8f26441d3e143e68071ccc1f2b42b720e1b797f25ef0040305581e035d1e0ed6379fc9bc9fcd09088095a601225ed6923764ada73e16e12f000c034705773f5e67107805581e03925cfc2ad4ab368e8f2cc2806671bd5a7afbc0db867f716053c49d32b00c0147015fde37c8de0003858d8b8b72de2f8dc21ddfd364f48a4c7c4241bcd69ca7b1defe751e62b4ae8605581e03cc0c95920e5d9ec0366fa84e6cdfc50bb62cf0b7c0fbdb54e2eb33f4900c01465d6c1cfc7fe803af1a05950a092824ffe292ddc0050dd7c3eb6c518ea70aaf6519c5de23b9747705581e03c14f2999e60be9ce3a1b382878870c9c8f66179e478c20555d28248f000402039c8723fb98d01a49b77f37b060ff5fbcf2f7bae3238b9a5f4d8db86e4eb2766d03aaffe50109d507de45ecb62f46d5441225f56ae57a91527f50ef6de57ec869900605581e03122e5ba98d880f40b0d811258218af80c77820b73a92063332906bdc6007011bffffffffffffffff05581e03ab0a4a374a72dcc39a305608af02881253d01ab7f2d7be882244730fa00c0146a3b5840f40000219ab6f0391f04fb0353fd5b5673cd0c488c2b23026e18207a56bb5c3cb47ebdc78a51273032c5fd85fe3de06512b9e2524020dd8609c1860cd8e775bda9b17257b7760074503616dbcd6fb8b5bd927efaa77e5a957f5b470f2fb98d21cf572d1d154295b5e9303f9582ca91c8d788c42ecc3887a258c817f7cf364b3b222b9f34be57c8028e59e039db6885613fcfed61825b8b2dd88d56af00ec6ecb5585a0d8a832ffbcdc7ec1b030d5f9a8e218a1243e5ebc8bc0c40da03c3ee3de052f2273131c9c9470fae129f03df0342dc89366e8dbd5f1d4894156958f8e2db0e55274e794fbb998df609048b0219ffff039e159123a96ae6bdb24cbd5668c0c57e04c34c5aad3a8f758f87d5db9f83b8ba030d5441afbbf10903156d86c89fe31934b632228798487083237523ee651257c603434ae9dd5f9abaf38d806c76996cf286a4a7e1c728c33705286ba37febe430e903baddd11e2c342cac9585b9ed57139abfb06a9fd82cb73c613cbad9bd24537f1703367654bd5d26dad0d010ec1fb01d7a7c49bdbb5bb05869452870c2b828dd5fd0035fe3b0901b5ce5b1adab01e487ab6c7a884dfc41d3fe0661f4d60bdc3109ff1803c5d3d8fbf87f399bcde0c5f728a1a64d8dbf2eca8607392b64c53d791009971c03e9e56c90ee33ff9cf66bfa464a697151a2dfff478e5085fc4073dc0c7d7d11d90219ffff032d5a4fb140207d9d0d90889c4d2d98797079d424ede85af49ead399407102e9f03a8c8a6162b6b910903ebaca6228b6f5b1f26e38aeeade41b8870101cf0ebe73503c943143c91ce6e748d64f98e416c98654cde9b815edfe6e9d311600ab0adecea0341b3c56f07e195c4e9fd2940c37c941c0c76c921513458167c73fcd8bdbfc9ab036281d1b6c0affa3403a85fecee5c2e5bc3023c4863bd2e8044fa42becec956c0034eb2b981448418c002fdbe2f9d24e4205a2b08b22f0207af53855f59afb8a0f10301817c0cb5c3b28f5f40703c25b78573b2d462d9b253e67d57873bdc73eab8fc039e84a46ce925ce7bc2d21d37dbecae88a36a99f3bd76085e38db038c7e203ce4032a5889b0976e71f126e9f2e18fced7396816ee7725263739ce61a0af8d0075b50397fcfc72587d647af07ab2c6cfbeddc9db0a26750b61d98ac6380b1db6bd110b036c7319ca88bece6f5fe1d99c8184e104bfc77a312d3d2b3cc7e2d86b88b346db038bccf1a766b93d8f94cbf038c686a5239240c7a956030f5bd68744f8bc7e428f03acbe2e056574c3dca0af48b466410bc9c5e90b61ac6a3d8095528377b03a8ef1033dcb27098a8fcbe3471130fd05dbe3dcb7e07c6ee4c47351bc26fe1c106ba3b603f06b0b86ca57415d3d97cca20a055fb79f93a599fb179a8945bad0c80666439f0219ffff03c25aff7369537d5d58d8b2a1c06411098a76c21c2eafe2de8924a9def2e4850b03fb0a75972546897cf7105f30794421ca62af5eeb504844301ec4aa60cf40bb2e032ef5ff45dd885e72a9a794d7b55cd986ec2694b7849e642e1ced6ac603d5818c03153947670c35979f0106822e6fc17949b13226e3e7783c7041462a92ca9d5dd80219ffff0219ffff03871124aa9c73a3a3842abe173dfa2613499d409b66c04f948fe76a9016dd849603046ffc7e3491231c7ff70aa19ad6eaa4d2c11cc4537186700d272967c49e3e2403c90a4ac275633f8597594ad60d46c2a3b763455451f18475ea6953fba6e1757703b7aa28ce2c2717f4659836c55759d051363f4acd149fbb35181dd0b8b689779b03e55273c47d8aecaabb310f56ada5ba8a88189002736ff64fceed5e1835f668430339af8e5e2293dff471a42a19f44eb026edf7c05251f2b1f9b0dfe1511217e6270385231d80e7e4ba5649feff64cd34217f77912d63fc204c883e670a129f743e610331f9925ab7eb8d68b09a0d012c98453428c097a31df323f4a9e78b7005740c5503842bcb6e5ac0329f93f89bb8dcc2659a470d18bca4dd0ebcda085eca37280382039ea68244ebe8964a034b96ebb6f32a14e92ccef37514467d09754e30b9ed00160366613fbf57b3e42461a5ac761652541b0ade6b6528268c221c45bc9e318f57f30328ab32355d82084b01ada3f7906c6973da607ea611d2c570d364e3f0a74817f7037984a742841e0bc6139336a90eace0fd48a9bc4bb6a4c0a89318566dba0aacc103640aa18c09612ec7b1b89765f62eee0fcac23058683178052d61b260036b07ab0308c46187d9d94f830f4baf26aeb18a1d48461a3618a0267c4ea36202688f6312033c23dba3a5f8a530664e07440825f54f9ae5d96d398167049d51e59a2ef0cdb703cf18feade0bc2a8afa6c56fbde586692781b1333e575c836b68aaf65b2b8f87d03e0f87b2f9b5a5b0a5855eca24e1c1c8d2f1c36d0a38de94fb447c47f5ebd839b0338301a3203d7468bf191b967678bd27bd418f9248cfc5244b5708371ff2f332203ce9056a300e82525fbdbafad81ab5ef545aa77b57764adc42746dd6f9d57f3400326e2773cbb3757797f1a3403c8a13657b5756c83619131c6c1f0745ecbe237c30317bc896b230fb596ef9c29a39c2f3cfbd144ae268a244b208231f3c06ea523370367e4b9d683324ffc568f5b94c79f109725a309d41c65c4ad97d6afd5e8968f4f03d2f3b892d542ff70d7342d56c1b0406dab462cc13541f4fc295bc2c57ad8491005581e033814acd177c4694ff94964c5e69f8054e78458a80cb6a7e34f6ef34e3008472010f3dda880d403aef1deccf6e058140fbb45e9c972a946f0c5bf374bc31306f29bc0620fb015930315f4ae278573e4aaa80599aec4f8a88d9e1b1c285d97ab76ac8aefe7f578fe070345c858877c1da6a943f27113401dc4927e9df11d6269be4535d1c430c3c11a4105581e03fb658c681503fa3a358b2fb4bcb9fe1f1b6e0587d73ad4060724d007100c189a47088f8dd0f32f3e05581e0326b8f894ade22ffddd229bfe4fad21616fe48fff2c4d4927aa6745a8a008480184342ef56f346705581e039ecd4f022a751a3cc405c4d1f71a1743ec8153640d3788de681e3b4bc00418ad0318e1ae0a5a216c15843c324a4a06cbffe949351e238802de3f5b86b3c09730cb038020cc4aaceb6f41ce5c199d66cc15e4ddcff922e0dc8d9d87126e4804b15bd405581e03dcab54326f50557083e7b4c8392af5cc0da963c0dfe3b5c0d04b77edf007011bffffffffffffffff035a169fb4dd296857d0ec3a50ae1ef9ef6691e08c520390606a5cb773eecbae0905581e03a41615825514a046763398c49a5eca17f736dbf1ef2b17439cb9f1ecc00c01467b4b9136044005581e038e768e1d3fb5ec589ef30fa2cabf058198132cef0c6b45aa66c1d178f00c014702277eae79c6000458eb608060405260043610601c5760003560e01c806309c5eabe146021575b600080fd5b6030602c3660046071565b6032565b005b60405133903684823760a48101805160c48301805192859052602082029052906000803685846cadc04c56bf30ac9d3c0aaf14dc5af150505050505050565b60008060208385031215608357600080fd5b823567ffffffffffffffff80821115609a57600080fd5b818501915085601f83011260ad57600080fd5b81358181111560bb57600080fd5b86602082850101111560cc57600080fd5b6020929092019691955090935050505056fea164736f6c634300080d000a0605581d0213a201b2bfcbde077199bb3a299da8f1742234b818e9202f7b89fc58070118eb05581d02e465bde8bfb534acd9655c23b73a3c07b605af05a31a58c4467a62370c064711d8733a0247d5021904080219dcfb03d42039a3bef84466cda263573beacfb3990558c752083c70474d190bf630651303e4f947ee79c225215b4cea991a4cfb1e8e45fec257151379b9d9083dcc1abd9c0345abb8a151a5ac5a8218b1541a4e1fc2f2b3d6cbe9faf9ab106bdb39aa9f90d1039517140624908f587b56debf0346d003df632e567965b9905b952ece01ebc404037a411a9084c868738571f561283982fe8767e00493d4667e7847d89ceb308d4f034a5e2141234771187fbf9eb628befb2255eb0b4697f8bb0d5154e12e382edfa4037002725bf1953f061a721f54f66cbac5b9467a03fa43bb8b1502d19c04cf14ce03aa938374f605b50ca0cf50cc28b15a6afd615e486bdf05831c48a3e1ab41dfde03c44643300e84d8922a3568c6c2f5cdcb93080ae24330b7e6a06d5a53d01ee9260372e0577218e33c09c53b02ed92b058ef2b4c73112c4027ea2bae0053cc0fc02703f3f03d9d9d25b2608caf4f75f01c3faade4e1179c5215568eeac27d0e837167d032d6397a67a1a9a1fc1a20ecf823b2b6703be683066d40e3b27e0661b95bc2a940219ffff0381f83da347e49f765baab7374605108c07dc159851f25b7adf6c0d2af3f3f28603a71de2af910c73ed95dc339f83deffdf05911d0c331e72d56e81244f497072b3036573581c421ba7c7bf735d1c081782bb1ef0ad6ba18ad1dee73c352cc6b312fb035fa8f97f90cfd02c659c8be31aced6e1d84c1581d62a18e9cc28aa350e84d417032d5ae3709e665111ba44c56be3334cba91ed97b659c606a53bead77a6677df5a03d76516d773368568da48164b582a940b7d791ac71e67213c3f0081e750e29d7c0347a0450a66f17b173890ccde47800fa902942eb5e3864ad7f408974486b7cb6903c26eb82b3561678bd58828a1b0588400d050d8ffef809a7d27107bbab7c1869903e92d010e1d962b84ad972e0174458fb54b6f879259408d4a483a5e229170d9ed034aa2841c70c00eefefb17bd90a6483f67f7b72465cabcaac21034f87720785ef03d944ceefcf0c5875afd77d167c8404d7ea91252910197079efc5c5972c0c44ed03d675c98e4a0eaa87a859692e8e36743eb9a0475629294f71915137453a4390d9031cb011b20b3f34d2cd7304b28794d92eb462515b1039ebe325432751a34578140219ffff036f398d0663438ab4acafa6bfa9ea9655039f6c3d5228f2de9f7e9588953b013603078dcd1f1a2a5737810c48249dd5f4bd24b80b17e6f859222011213054074ef5034c8f5f7c63ca71a2953d06c3207f44d002b797989aa2e1ac23aae1aebe881c3a0307830f55d5a8155954709d6fcf2ca5385c080ed877cf7f8ede35dde13d49012a0219ffff0347b60bf9da0f46df527fcdcdb30edbf33d18502e9fd01f7bcc696db62120ff0a033df5403a7d7d8be82d15a19d03cf7ff0d1336ec851931cc450231bb0550e0dbd03052bd8b329113aa27225a198eec5de8ec9afbbbfdc40595f6697ed79f8f75703039542be8134b4bf185cab3a6bf1feadc6bd58885dc336490ee14aa07945096be103bc40b67f83b2010cc823782908cbf222ea141d9e3064e141e9453bd880289bbf034b6c551a95e7a2b33d70740f118aeeafb423290438601c72ac67a6b5c30da9b60303f838e5a019118d41bce348c77cc24904e7fc5d92d7b35d7f42905d11bda0f60219ffff039cab39e7b02a2c4333c7b0c2729d19e395a9b319f409062ba6cc9491f18f85bf03f7f486985bad3a625f327b6bc8c51ccd9a026282b7ed3949d24178268984ac52030975e6936e6b475f5c72300b9df34c69f9b7c448a40ba7de03f3cdc03f3be8d603885512914865bc9799973dfadafdc336eeffd96e042cb407de39df7e0214c2550387f03db237a45ad6f8be977900adcc18c1bf7bedb78ecf59085c79aeab040fd903e132dbec7518f437359e85a63d160c23e6ede306f7e1f2ac8b799f45f0bc37f0036eb35623eb49693b005ccc7ce4eb79a96e0ec2ba5965543128b9e12e5be1c274035da1e578cb8a1b4efd97bcdf6dc94c919a66371231c76877a029dbaba9a4a946031b6dc52fcbe8acc9e7fc3c2a4be5530c21771b281f33dc1bafca8e55696deae0035d961456f8a5d3578248d74bf8c19cebb6f84392032976d630197a164db49dcc03c64487b59c817423fa322f166f8cd261764e183cf0a2381b14133cf2f1b89221031671598768f574e9fc127f607da2100cff35984217cad18338035890915a76b603a7992a08942829ffd08d353305c400fa719c99267ffde2355667551a3166f81903ca4541f61af67dd3614615efaac640d49685d50c13e2083f84028aef4d311bfe031b4d95c59810ea5e49fbf6948893db798551353f3ec9e5bfaa274bca2ae66b0603d830d37afd492a3bb0e0df660b1515b046a252a006143281629ccb903fdc9597037614a69fd21ebc896fb4a9eb974da7f521916987deda25d9ec1b3b8c692c0fcd03cd94d0876da693c5e7f696361d43aa3e93fdb9fa74dcab02274bda77b30b3bb303d7a99e113248e9fe354fb691d5c3c766b887c07548bdf792aecb1999a5f72818031771355e7e9b549b4c3cb6770e53c462bdd93de45bb1b88bffddf7316f831ec803a6b39b8a627c4eaa9fe84ca73f2f99b669997da9058f6fe6d2e0753718f32780030bcc249cf0c81598ea72e7c9d1bcf8f0b6947f1cf7a9422f31fde6fbdcfeb18c03892731ad0d23ed793400425f5c1dadce661620ff32e21d0cc5b372f437f72c5403da0f770dfcc49083510e6bc0ed43ced307d30fbe261a6993f84e71a5d1e6c471037cfc2345672a1a4114f8ef805834b4aef8d632120bf326ca8d9a4ee989c070f00388fdd3c94d77479ab5b70dc97de2a0f2748e40cb88aecc8398c300b7a906692f03891282608e51e2457dacefe2b81b653973813a7f3c409e600061f0b9995e658403ae349c9b8af401e6d08d348897a331c7a68d6bf376c2533201a4793032a2b8dd035f0d6941d549b16b6ab39ea8cfe8689b85532c6a0ecf9d6bf59d5157244f5d7603e5b8c0e0f4f5d3c6a9487a19f860dcf268966529f6b8ec1748f1a00d14fb3879039e8dbb36654fa3535b241236370bad2b5908f120c915dfb07e86b2f9def0cc46037cf7c49dd2e79aff899c555386d2124ed397c5efb68956aa0e019d0331edab7b036085b84b9b62547b5434e8d3a2531d28b82e86f4ed7158272cbbe5fcbc53754103c4b211b6824ab9ebebf14105d43e3c034e46e0afa29def6de6b6fef9cbea7c45036a0f94b2c760092477c1127fd57da13bc0050193ed2aa9e71654defd7718cb7e03be16b9d69c6e97216b301770d7db2f24e7489cccec163e7c9acbc582754d7a3101410505581e03ae9d7f7a88a1001b910b31785a020ead291775b6cf49999747ccb4a7400c1901a4474e58862ba127a105581e036eb827109c0b5ea447dc85a23f2e77232b2a24b50554a1a8287f56b280040b05581e03cb97e01a502c37b632d28617dc01c7ed5620be39a945a70f80b4d65c10040205581e03a3ca447a034fa1e4cf903ae1c100c025650fa8ec6f716d1fc8688fa3b0040103e60a4fc67cf4abb5d097795acaaccac3c80e7cb63b2565a0e589922c616023da030dff6b5e7c9f182cb34d739c5a101d607a0efc68182787dbc193bb280bcb1a9705581e03516cd9568510ef806edd6a3644a12a61e6f7b64b76b57fb2743f28b9500c014702c75a370bec6d03a081637bb621750fb030e16afa64edffdd14270ec5d68a968a7fd86b22d09f1a05581e03b59f094993c753285f4268cb04a23ebde2cd632df3d0cdac599bdd0bd008460a85d9bd740005581e03067efd8566fefd4e2d19fb1eedb51b2641e7d9b2df19d77e21e010d3b00c01470e3483c4859f3e02197bcf0399f396f31813f52620c1d01338efc1010aa5edeaf839f9236e24213eed12a1ea030b881643e2fb712d216c3c8defef6ab1196113f9c87f78bcf5440c9e46d73f100312985a10eb9a453498cf2bbfb548d57af288be1849c9fbdcb83278447ddf3bb60389122b4d692337a777235bb5d09a3e78b2ce91224439c962e197afb970150a50038bd3e0740e8d39e1e49644b64412cc0a6f5490ba585b8ab7ed914b3aa312d60e0219ffff0322389819de3a5873a2c073cc0dbf28eb60ee9d3ca5a205c139eb1ed331d5d8850333f5ecd8d4e375800e7568bba05f801263e1513784eea30f0db0fb11af43585503066197349487b5abb89c2e6e0110f158b953f8e39f435a8258f7d2aaf590446303a0f2f4a7b6e5b918fc3b0ffdb3d32a9d535027e2ae515d75056c9b092544a4750360d7e51d4e35a338684ba6098f4eae8c3d8d68e613d9c18cf7fb57d4a517c4440372c864a706850e5f16f66488b349b191475318f30f7e35c8b678441982a4861a03dc16a56ba3f757d16aebea94987ee3763149d69fd5d24dc90ca34491192eb3fd0366a366a36929e3754cb90992ca45422542d815c629720470f7e5bd92cb76b6bb0219ffff0219ffff036b57a113629265d100bc29c4450c4e6baea2f2ab9d04f13fe13be9f89bb82af503737fc08b7d34b885ff37bf36efeab90aa0b11c1287594f00e1b6634240989c3d03cdaab5ffba56aa1cf1d1c7bcf53d011e5ec36bcd8d62074ff0c58103f1853c7e03523762e2639ea1dfd7400cafd1aa7771d5cd96c6768d899ebc0aa001745e63940365e263bd280b3d509979959baa8c1a7a41fb7e1cff147f8abb3fd3deeeaac472037fa5a1f30bef37d41f582f48f266eb1b2add24309773d7c21cd3e56cfb7baed703292018f3f5d972ad255f4bcb0aed6f6ecbc3092e9e0e5d1432c3795a6a863a93037ddf6634cd2943b3ce49aa8874184c0daeb4d008dca640e6f3f9f9dd245206300397825d1db7f695bc6d432e279881ac65d398e8b933f504a6e78a7f1e93e8e08303844793cbf50094e62cafd925ac5d8890dfc66fdc846f4214818847a9e4072d2003cc193a47b4edf900e045b8c5e4c97ad623a99588f294fa454740a37c0087891d03835fd17957c31d2c036986f2cf10551dba026cf56ab391bf6dac26af711f98d803079d062024da6eb7b94274782da876e6ef7b913b492a97383588a314ab36e1ef0384550d0d099c7b9a5c749b0843b5dfd713c73ca292e0cbb6d5c7111d51eca9f7034db58753eda31043c5773779d02d07c52d7c2698c35b897336fae897f4d3109e03bc5ba0118ff991bd701b904e8ecfb59695ab878e7e644de00524c3ae01d117f8038ce3f6c1710e5a9247ae0de715eeebd97dff6d645abb59109662a5e23aa4e67c031b574fb999b36eeb350c96b8b60c52f420df5d1177ecef4218bb7851bf4816d5039fd5f64ef44c27e3f9beccd6b169804652a15926ad590a3654b4f6cd7e2eba93037078dfe2aeac3bd34a2cbe8225f4868cb9de558bed02fe28f01316d68abb3f74035f21b1dbeae18daf2dfa7c7fa5a251f0c36c8624be6abd91f3ff8a0d328898a5039ea77cd712eeecc62d2a8934ac5d14739ffa66fdf7fb334f9c195b3d6f5b662805581e03b217dacc1e506e1c891b5dac0a548c26bce0a889bf5de85fa3323130c0040105581d02b9b39631910301908ca3e8881d6be51ee06bb006b0e15ab0a2fc6a170c024705cd45aba97400045904cb608060405234801561001057600080fd5b506004361061007d5760003560e01c80639015d3711161005b5780639015d371146100bf578063a20527fc146100fb578063e6c09edf1461010e578063f2fde38b1461012157600080fd5b80635bfa1b6814610082578063715018a6146100975780638da5cb5b1461009f575b600080fd5b6100956100903660046103df565b610134565b005b61009561018e565b6000546040516001600160a01b0390911681526020015b60405180910390f35b6100eb6100cd3660046103df565b6001600160a01b031660009081526001602052604090205460ff1690565b60405190151581526020016100b6565b6100eb610109366004610401565b6101c4565b61009561011c3660046103df565b61028d565b61009561012f3660046103df565b6102d8565b6000546001600160a01b031633146101675760405162461bcd60e51b815260040161015e90610460565b60405180910390fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b031633146101b85760405162461bcd60e51b815260040161015e90610460565b6101c26000610373565b565b3360009081526001602052604081205460ff166102115760405162461bcd60e51b815260206004820152600b60248201526a139bdd08195b98589b195960aa1b604482015260640161015e565b600093508392508291506001600160a01b038716331480156102445750846001600160a01b0316866001600160a01b0316145b1561027f57326000908152600260205260409020544311156102775732600090815260026020526040902043905561027f565b506000610283565b5060015b9695505050505050565b6000546001600160a01b031633146102b75760405162461bcd60e51b815260040161015e90610460565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146103025760405162461bcd60e51b815260040161015e90610460565b6001600160a01b0381166103675760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161015e565b61037081610373565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146103da57600080fd5b919050565b6000602082840312156103f157600080fd5b6103fa826103c3565b9392505050565b60008060008060008060c0878903121561041a57600080fd5b610423876103c3565b9550610431602088016103c3565b945061043f604088016103c3565b9350606087013592506080870135915060a087013590509295509295509295565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea2646970667358221220103dcafe2c1ab4188249fc5484e0e70c346bbce3909234a1dc9453afc30f03a164736f6c634300080a0033038e5a8150576090aaca00b7c5a3e1c0a34508737d7953a8779ce376ba1a76a90503943b609e61dfb5b24f49ca4568c6ce00bc743962361710e1895d825a6d911b1603d28ff051f0aa4bd9c583061227f78e5fd1213187007daffd9b7e8b4a47aa256f035c11dbbf5785e9a1301fc68124f3ba38d86be6e565f05a29a79bd29baa7e6c24039033b957a97218f858fc42de271e3b205316e633a4e5853189eb7e54e97d64480349f544e799aa61ce069da5ca7fd5ca18f39a3521bb94748bd4babced971bde5403a367bd845217a978a7b5c072752e3b441aed6a0ffc92c0b11f0a497e00761f630058200217502f419f72815340ed97d8dc6aa81d8c25d1247a2771308853f8dc5f95cc440125784100582002d1fb4c8b55f7e935b46b18f994d93d9e7e1d30af282ccc09f7a0c6efcd5eb8440125492700582002f28d61fa1d86b58e9a2f6bd45b2870848f3fcc039762c5285c12b1e215f80244012549500058200294f3090e21a7b9dcc3b07203f4161aed0dbd3f7eaa77e9197145a592babb674401254f6703ed3809e394f5e7d961b81d719a3408ecb280d371cc52eedff71c632c557fa7ac03360e1b35c7918119fd87cd055015e9fd1ff481886bc29d40353572ae7975186200581f028e1f4f0a08a3f06d518a9e6dfa134132527a853383d847a7da7c99438b76410100581f021642e8d547fd8250614ef3c580570bd06e78be0db0089975cbea56d118e644012549e00219100201410b005820026527cfb2b8c05cb9e166c0f4200265374a5e8949d91c8282ccace8a3cbeafa440125492f00582002f6ed96e91925a8cfd7ca6ae590d59ac7983a521fec132665925141beba5dea4401254eae021983de039f8fc53ec3e469208d14dd7dff95f468661e3b7224b8c5c04273f0d269a48526030c6e1d8aafcefa5d035d88904922fb1dca4ddb3e91f2f891a03260257f40a2cf03bfe158d6599d31785412d2968cba0d273cef9269121cda15b3c69a3cebe1cb4903d884edad37660175a67f9f90bd898bae329ad902f70533d9e0002338b748810103a38c3ffbc631ca8adcc106443cba160216aa6b2f4cac971305450e936ed5fa1003875864eeb4cece516d090d70325d7d6489b358586a5ff3bbf3670dd61731cbfb032960b737a8cb94bff18202a066cfab53ebcd45b9e0cf82ee6513ff923ae4114703a496296e471b3ad7d4b020e97e478a0a09fd9f9d194677e7cb3620311b2da0430219ffff05581d02042247dee65428b74ccc57625a9621b697ad1c3327adccab74c3e24807011904cb0219480003dd7a4c85282c38539b9702af4010c6c650aa50f97b23ac730816240c2433c32a05581e03a331ae22fbd465f83c383db30b78154e419ebfcdac3f8e0fbfbcf7d510040103293daa252f866a60304dedbde1c68aee799db87eebd6dd0a5475aa7594bb925f031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e030495c8d30ddb6b83bd01db2b6f4320204ab5b8a45ae2470cb07314753007011bffffffffffffffff05581e03d159c755872506be6365de5f30f867958d81d1156eefdefca6b1ed6fd004020318bd13d5d49304316cc4bbcae7b2ab71a85c5878331570c7c4c1bdea0f159fe60219a53b0329970766eeb183373558666938d2da0550353453b13591dc44c4bdbe7059fe940219ffff03b26641dc516f0d0b80b253b428864358bb862c5e5abd9e99235e4090eb66ab1b033d5889922104f0b47f0d36f618ee9838405905231fdbee74fbc87f04f07fafea03ae4b9c738066e0359180f5e6e2dc534367a67adb5406196ea4df4f7906fa5a6503499e12a2e8936a89f5d4142dce1c9e9cc4e328a6740a71b7d3977836050916c70369bcf351b27e019bb3aca2dbcdf28a10484b50d15f8c607ae62948cdf9de4f2a03437d45748bea136495fb5511196d4e3b6ba50cbaa4327c8d5526b6f83c1c222b03d8f3c7934c0440e6a80cb31eedfa78831c2bb6417992dd34f376a11a2af97c2103840135ba5f4a176b1defc9d3c5bfc78e48fc8472dde2e8a870ff519861886ae4037612adfee1cb31f2e6910d3728d7ceea067b64eda6bcc0455c2da2e6555656a3036e0fa76c30d6e9383a44a8deee75aa120cf758f56aa0675bcefa3548415530aa03b18745c35da0433f6ba398fe6d62c98056c016d8910dd90cfbb28db50216972b0389823a822f2c2e1efa70a1cf7c2aac98a1487e53462a2421973b1590bff6fd9e0301fb6a40110863e6fd68bfc7f42186d3860cd1e8d0f79509782bf7450d7f0b5703a9c82c81ec372c71e8a07ba0656694cb15548ce76e5d5ebb1e534996407a89280219ffff03b1d48f932c02064cae0999523cf5413863bcb13c0191090bf9d94375f3a57bd4034aa75e37d71aeb03dacae68b8eae8c9e2297b52249d3b52aad6c4eea4d69b7e803725ae7d4944b6783ead5639637100d8ef67393414bc9612a55d6ae3f1bdeb59b03723311aa6cb1f5aad5f0f2ed154152a4271ad9123d9f6ee628153c645fc0549e033e05fb292d3a4eb35d04e1223fb400c50506ea1cff20d6e028aa1297b4fe7248033463554b71db0b2ca1f06e23490ff842a92eb9d70e84581404e9695dfb138a10032140fe6ca03f2b895b5662885beb8d6c6b0da73a82a5f832f282b9a4436b4c8403cad80bff55b5bd987d6c135feb59c7ea50228c6ee06567fac14b192a37d3b09e03785183da34b2eef749335de9df0d79f918aca9734dc431ef3a0edc43fd98a53a03dda8f683a5b619e7bd1dfe09ddea857ecfe661341c73bb806d809b2a65910f7c0219ffff03c28918be173f1f0e583916e9f4cbc44cdf016a597168b73ba2e03a2b63129282036c84376e3ab0e527b6325e6aaef13a60c4f867aaaa706016cb3dad043230e7950301b1bfeabdf769bd97ee4051c36aa93be3601657462e6cc1b4fd1be25f1e677603da44d6dfcc58184ecec612533bddefc7d0b9707de7121f8d41a9180070dd0d3003f6d20ec7d567738f60807ffa5cab2dcaf1f9c8d7628e4e820b2a1db404547e5703928129e5da27f366f5a32b86fb432f5b2b1f262d3623e2f4b0bc1d6ebb0f5a0103d8cd44c22a9193a3816378bcfaef972b6662b88b9a6b14e58583d9499d6a9b63039e1b7dd7ad89957f8b03ecaf0ace23245f008df9f2711b0cc63d28f150acf6bb037c625b10a11f1ad4ac3986604bad10168002167a54e6f447d72612a493a8c4f60316ed96f1f0aedc6d8cdb4e851f2444387fd93ca7f8a10752b870d552c2b0b8e90335819f4cfc9c6151a0c84d1c7171f3373a3f95f1e13963b910133c20ad567564036a7d2f2356eeb6481d6fe55642f543f6bdba2e70109268f40c5e174fcf1ac13f0396ca031317855cc741a68794b7d55cf9f2bd5012181b04a494dd5316cb512ebc03013119f0665fad5c30697abc8e9f7dd5eb922bae286f185ab79b2db0c345c1ee03e65a65455b3aa21691cce0cd6b768a33b910a77f36e53d369e3a66ccb75877550385b86ab462eb801f8680196935388cc06ae0062d1591dcbebcfc8b24ca3a67f803ed8d151e5143b9b0b404f3f295e594d5d0943c2dd712af70b35eda4a1dc0a41a03bbfe27b5ee7751dd2dbc825572bb8f1c3c9bf7dfc05863f0e02a009cc772992b03c6c8abb85af7571194c953ed7080827193e858bc0eaa4c4e728dbdab567c5e0805581e03c5f1e0872cf734784e6ef4ddf53c66abba5fda4a626b0559fd102873a00407038991b52246b49c3c3c9379a69d8107f961644c6632ee1047e148f57e911e882305581e0381541596fa0063bb7252adbeda821e78ef8d990bf51e1946441aa67240040105581e03d4031d91fdecdb3eede9e21bf354b0950ecb6c56ecf0f3e7fd143b0b500c01472f4d092040cd9005581e0314e42463c3fb6a1df488cedf54ced36d8fb4691b925485cf9fe447ea400c01476425c22b29056105581e03a2e033ea31981a815091f13c9ca38f0f362a29dc57018c5fb435e93c4008470e8fac552b580005581e03af43460e1b023ebde7b8b9ff14f5487a6ee2445b8bcfc22b61f9c285700c0146559cd06c080005581e03c71b5aecb39b5da19f8851f835c21559c0a1ecf18ed93136453333c4c00c0f471ac9e7e27769d005581e030dc2a4947bd0366f8cd495936e8a65041b33b093b7ad1b749c0245b3b00c024701a7345378b80802190e7e03d2f707df517567d770bc03621d5eb71607c9ec0027cd6bf65c5f94172a11a38003ce8959ed3465333824ce5e832ba98ca61b281a8536436ef51fdf1b7fb792865903d7f1e55f19142b354847460538f13526e5cdbba9baddb3c31c6c2b682069c92f03c3de98889169cea537e15ba2493ce66384953c2ab292e4df7089823354c27ad703f7a333f9e67b84cfa7afa84e63e792b618463ece2d0b3654426f254618c50c17037ce963e6e0b4390cbf9b17f366781f3cf54b6c55238c30e944ab383a934dc00a03ce247575e7fbab095e5be666ee5f12d78ef274482bf688c4af2e0ca8cae0538e0378cc0a67a2598c7144b5660fca53ee7f7dd843f0f1658047560e33e407b6b604033b99cc08de2481aa5ed045baff033496a3c0dda241ccdc27e679230f0518c47903827a1d1ac7ac693c41877d7de9e47b8036a4b2f23326f73f1cb22cf1f0064548030f763e1f3207f6fb10f3e25a26aeef6aa5679c7fc3a85955609b0de07e1dc47303324f9a3a564956d7bcae9bfec5e9085cde33aaec877c2709c79c06fe31a0453c033b0043235a857f60a020dd9b406a24d94ede96e4b0f825b3bad5c479f9e5feba03cda03fb536d7a80edc0ea3b00208f8d7d8e1c80a75abd96bdfd98afa1694fa760219ffff030ccf3d55d06de044c4feaa1f04f28a31638feda13f9fc41d47758ad2ed244682033e10e347f6650d66c108fbeb5fc4c4acfff1643851def4d89b60d28d8e0a7f1103641f4fa7c913889b8d74c46abcfeebff4ea63f44051eed9cfa5cf4963ead184103e630df53be3afab203f1ef68b0dedeb5e9651df1d3aa831b90f4928ab7e60309038fd96cde3fbb6694160fa02e91ea58beadb4e1e8fd5515c1254fe27fbb76ed5d03fed6d3a1300d38711f475647e684a41f8fba81260e429139825f2cf8b75e9e520219ffff03196fc3cdea7456da4f90b90391a046f594b1590ceb7e6add6f7803086451f90703af0f8ddecaced1d15e69f6e23c109df6d445764234602cf4cca8f61fff82bd750374c12d27597108da7f36743de84845e37c4ad18b22f9efa31a041c7a5215a23203260aec0c4ee4ce32a1422fb63e0d505446d87cdfa861737d54768f83ed65b8e6031e5575744d065daa86a6943a4058e8d8d0183fc5fd426019987e0b1609f7fd2f03a72295d2583a3cd16f3ac378de5c71483550c967fc073767224d91a9540a8b910385464054a36aa8bb2af49498f1792a48b1280bb5757fbfb2e8c1d18046ec887203333fb74a8d6a5076a251183419a4dec958030dc03882ada5059d0d0229471ecb03d534306e3e40dab3a5024881dce405a1e219267f5e8dd155a1024f63a0f327140219ffff03206f157cead5abefc92887d6cd31ebaa9251433c8f8b00fffe6f2d70487f1f6c033a29b77338df2c48308f72de26442660d6e93f89472997d2baa367d80fbf43e703723798131ea03fe53d99d076d9ae4e0fcdf053f332021f4cfe657a0c459597b903d4db995499cc515bb5228fc22e37a9b7add1657a56dc5a211ffd391b1be4f127039f05a463262c890dcf63dcb65c0dad516f7f5793e67607ef4c2896200267ff3e031217afce16e29b2b7422777d4672dad62910b288bb545276dd204d4546b9ab8f03e3b750862846a382d36efb8dc505a45619b4f6c9ac7670f95561d7fea94fd4f903d3b1d77e82e392525a2711fa84fe9dbe2717c7513c8d4d01dc3b06ece1d1c8d2035268f574ec2e1a1a7f3afdf6158753030a8be767b83c33f8f752f4a36ea6f9b1031979289f8c80bbe1ec8768b15611daf1b7b09a8a9f52c6e64b77212804c99880032880911f44f8107db875908192301cfc6d35fe80354b47abd2f5cdbc767be4660326ff2baae4d3b296fd98868f82a4202da73e39d915a21dda4af1e4496ddab136034cf686a8d6236017eca59efea415ab2808d76c5c8a3a689ac52d72ce659740d2036f0deaf7d7be89d7c71dfaa4b84c2d375f08334c9770f80c24aa80f272241b3203c78d2ee9aa979efb43da9eb149ce56d5137d3d1f1f0de8f0fc219acbc153fbac03bcb313210ed2de67df29264b5edae34a724af811ecb3a4990db02720e6edf7ef0301d17b36f8e9cb778704ff0ec8b43a875c95b3ae521b81f386c99c8d4fec241603c96c9d9277ba495b0f621bdaf5d8653d355f0269491168e71f551f4e223f62f503bc22e00c07d9bb6eb640671886b0fc47a001d60688c5a04ab84f4f001af6cae203f9d6251e41f5499a9396799b6192cbab5a9293d98b6e2c8c233c7c8e9dc03e5f03ec1362164469859ef98fe47d23a71ec19892501655596fbb94c2dc882871b5d003564d7acc8ed563b1f66f1216fadc9c9c8481134c30d8f8a5a986aafa7da129a6031279b8232236cc4c5eb0f38ad827fab845ce00473742577f0ec7694a579607bd0335d9aeb83595781129395a571f529bbd151509f9c7c0eb11df0cfc2a7d67693203385de9a1dafd299e0c00ba4a79694cd9ecc2d772bdfa782f2a5c29f5d4e0b6c803f4cae05f743025381f9157b62b44aec1f78a02201278774492e61d7afac4880b031c1d409b2f4c003708f636868b2e7be79adb909194d4719ff4f918bfbdca7eeb034e114929ff0cb51d4ffbcb7666c7bf6fbff7b3f7bbe42c3564de4f40a7001baf03d0b8422bd96a0d07b38ac37bb863c9c710fbc58f7df95c305522a140390862e303ea4e5ff97393ed4548246d691d1f0f5ecbd649e2448f290b37d2a4c8387fad6003e110e4b87f45c95b9a94aa2ad0b25af5b7e71841307c7489c2832fd24e521ddc031c31caf901e96fd3f9e728a3beee2f82227ee1b51a6c4d39be2b270acccecc2403c7fee5badf09a21e44c6f1bcb92fa12a955ff061bc56988a23020b2b1485cbe5035ad6604866babc9358b174e9337bcefd8ce247a5431c9f703c8f49c5e88cd155030706aef7b7fa853fb1afe325f896fcab2aa09b5c68794d923889113838faac6e031f0780b7be7d0c17eedc26d8b29024b601104a9d354052ccf1e5973ab3e2041b05581e036af5adcce3ae6f8e02df4535e52bc8d32319c70b6bed07225e8bf705d00c014708e26c90c27e4005581e03ed98459bc147037d2d03e093be0b0003bd38d8006d3c106a608c31f8b00c02464761520a7990031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e034be8b67208da9f4d905d4741220df1429047abfe9000ac2bf044384dc007011bffffffffffffffff05581e0324de61a36ef03025f65c033a2cb433f8c753544ac1b4d4b5b578087c200c0246ed3d96641d2205581d0288ea134ada9360a1dd0c084beadfa06249189d6942295c3d95f2106f0c01460de0c3464e0005581d0254a09b3336d5128a661ba992039a69c221d3e61ab641a5b0a95650a7084807d00d8c6147f400021944000386c863f8898a0b9f79eb6c5641ef038d99cc19a48d0782dc60f1e0a4bc29579705581e032f746dbfe6c10065583f764cc50fab61ab87c553d32754aa81a5a548200403030542aff8c005495f226cf9af3ce401279a361d83ec2ea2edafd1a9f773fbfb2f021947f803e4dbc18f2e87b70c80dca28f19617a1cc254b933acd0980cfdaa38ef2fa8b15d0383163413aac016db20759e99b1c19a6e795b311d126800c1c4312bdcc579588103e2e6c4eccd11b634843629843dc550d37ca0ddc0f3b436bb84b6aaa0b95f0a430325a7eeb213189cdac94e7c11a0bce972be98a3f489977096c2a89d19e684b91c03f0c2a9e109d7d31cd8985e85b16299a9af295e56bbb2c28054551c1b753867b503a627f99ddb4dbb8d187a872610d43f5a908be8707fdd0786566159f627c9a45a0219ffff03b0f0b00ebb49b710e3b5d5d5eb5e10b0c2ec34e92915b5be16efca11d836d93203f0f6c8fe14b33f960ee7652fd1231eafb8d5e7a635804ae5b986f7dbbe406f7103290f7639ab16fd3edf6dd219c6f9af8f285565f651f9bd67435c4c7c4da4788f03836f44287b22549cd0a907872b505348804d02481399251ddb3e754dabf38a160219ffff0337d8ceb0d17f5a038cc2cdb80b835d263ad81ce94fe4995aaede850c3f6f89780327d7cc5926b12e0b3b7331ccb15d00fff063c48e7dcdf78ebd33bdfd50bf180e03df569a49fe50b920c94f538d13952f38285d5f7c948039211589f5675359bd7703767d3ef65e676d16449d4ba0d610290e8883a5e29e01e8137b91c83dfc9991620336db2e44a9bd9eecb3707757d457e92289ac76642b899d0af9adcae3e00b862003fe1fb6fbfe12e9913a36cd2a737d0a2e78c3de1b0c5633eaa569e9d0a2773a3d0314b14865622e39fff99c82166acb98030557bdd403f73d92e93146395fc606420219ffff0219ffff030f57db31a48f00488499964b0f6ab0104a0e56f6f396d6f9772da2f8d66cf17e0306f241b9dc885a6bc46174c9e5d27ba3443494d8929ada046362067c6c677b490353cda24590da16d1886d0eff5b359e03946c2a5e9c00e7148086cb68523bd9da0365f8ba078630fd3795eb860b85848960ef30be12310a8ae64593bedab648382b03482296750a59fdbb4817fba6b0dc2ac4e4e8816efe8d2c249b5bb6decc75a6c0038cf5bf24c16a99a236a1f6ec693b37b2cf09c50bb4be0362141f4fc9fd06679e03d2411604d4d34d7585f4ffe2e7a6cb0e687dc8023ef17928280944d1e343ae38037e968679d705e723bde6bc1b3e85246afbf034860489d2c3b91c1b04470f026e036a2ed6f75126c3b855ece19f93ee74fea32f776c63187bfb3b616c6dea20c23b03cae823618501e1874fda5a93799eeaba753e744d92496f7171b5daa7dcaa35c303bd18fcc1683028ef8975cc833d8b86ab2c6997a65e1c80641d9b203f2b846d41037c6a9515601e727d5837717db0ce0970f7ce3bf00f955acc424acd320d6772610342bfb7dec7653b529714aa707eafc6d6a394b6a5d6897c84edd3603a873a8f3e03b7246e0fb93db621d0b0e2826974041ec98e0d47f6801524a441ce68fdaf92260311d812583ac06203b6cd95282a33cde9ffe0f915a0115ed946e212fc8e742da2033610e3030599003e311a675bd7bb89f6291f4d060ad309e3c4f70c990e120e92031db78ae9d42d119a8906bda20b9fe791de1b0571611f38ee4838d74c0671044e03f59b9460e3d4f69dac8420c365b5473229b9059b5697eda6b6a150168f54f33203626b69be92952681eddf58e92fa460fc4462ce94698d4d5aa3b584481386a2b203a2ebda251291471dd28dea7934b281d0cd5408c69d9dbe09c76b514132b2bd66036ab505804c4feeccdb2b4802f980bc96e45cf3e5d48ff7b8d377678a7ebbdadd03bc758724e5eadb23c2cd8ee3019dca9808c41b0cb4f4576380e2033be7d444d4036a3905107f7b9bad109affc700b13d26cc83a7b133004d8a616610164359b1c603d73d72a0cfc8f641ef13dac749ad7cd5067a1ff6fb53cb1b900345f5d049d63a030160ccc2bd2c0ab8bc732a834540b441f8e2bc8315973452ea92972d7a68994103262c15fa7e2764ec98b868f523a75796a97c63686311642dacd2ad421929ff830331f8cbc2cd7dedd384d977dac1875d37144041f6e979e5ab39d8f8b1488577fc031d6222a0a0902bec9359dbc540024d449bb197417958fb43553cd594394af89b03c03251833406d50c5bc131f25e0b279bc6fa390bafa69bc26e22f8960fb05072036ac7df9993daf568a92695d79925acdd6946048a34c6b9bb998d8425eb84f2530326007eb1e7047fed9a380c268a2ae7ad3a26b53e3bd8068f7a51fc6f0cec1e0303d22219d961da8f57da58a8970193ddc2265bf6b8483795a38c51b04c527761f8031099e929d1d57ac72a6a12e4eba3063e104f6a00e4eef5c860af1f6f302dfb4503815f6f60b2a83c2cee7aef8bda01941defcbd85c3bcd37f7d5ab9ef6eec188cc0397afbf15a49f8987290051faf0987c097a4eae29e37f40a9bf5de20212d744b0037feefc42732a563851a1513d3ac16c79494651b066cc0b6d13af35eb75214752036c413f4a2bbe84a9b35ac8df405d20498dc2245a618e1169523b72df23989d3403228fa92b96b79dc02a552af96f46e7b93dd65bd7378e9b1c52e0a889b6022732034ffeed959492971040c831c4809ee0c3fb2cec448e0bf7f48f7e2654ad21f5ac03469955114e5a9334a0f29f8fcb6c3810f18db2bc94bc12379237e73d491b988c037837bdcd127ac23627422d2d309b4aa7583796fbbb950dc42b1aab001a8a0dae05581e0318501ac41ab90ddadd0bd30263e4f4acfef16488d96b281a53aab94f9004030337a28683ae9614d4680efbc3e3518fa71b21fe4b46541c094398cb0e1814cab005581e03c8d9bbbbcc695896898ea6a23f72e975c2b5f7a8a91b2e6b7c953466b0040105581e031a4e4636764ee011f2f65dba5f56bfa54315da079d932e6d84c6298e400c1905284801f1ffc1018723a403377a192f9ea3c3f60fc1304b909203201a080a7d2a7939e33c9f076f257a7b3d05581e039adc401ddf830241f90a95aee8e68b6d81b6d9062ae8aa0df23f3b96e00c064713d2fafdd8c00005581e033229abef047bc05df178e6dceebc9f410f4ad0f517fb484d99383216f00c03473e68c115c99fcb05581e03d79b8820dfae881ed63bdc0233fabf89dba0c7a80eaae2bd6857f14cf004020219c4ab03304ba5d10da9aa7801cd459473867fdae73940c6c42089f21613ca7dc84d66a503b57eec12f50606974114d4e2495fe36b930e4819e8720bfff25ea4df8f591f5303eceeadda9f3aaa942b6ec3242c7bf2d233dad1aff215789c4cacaa7601bffec20323cb80704905d75fb3e1334cf1bf4215f28907c89f20ec187287a6bab715530e03f82ceec66b21f5eb8d3a4f235780ab39e057502fce6deb99c99afbf0355cdcf903b4c6e048a6d14678c3166940cbbdea2abe886ba089141c5efe5e5d94396414f80350b688b19ab05f68841cb8ff60e1857195584fa0ec80b8b2d02e7f1c77c8c58d0219ffff039a55377cd71748196dceec394b3bb39170e1e8d3f33825718f8b019ec7c58ff903c9b13e9a2e287d8f2c62d781dac310537999c34d4a7cadb12bf0e8605be334cd03e257d088bf3e4ca77811d4ada547bbba68e259b10775c54bce013b1d7c9bc2bc039b9ba709e44e6c1d96b7106dcb50a90123d0f46bcafcf722e36cc85c795e1c8f031df1026a5ab0f323242262e6ca0d2fc07fd60a79e92973b58f6789c23fc006c8038b9d4a230460a0bcfb006636d0d4cdb7c4b43f723d333b0758347c8841dd491b0219ffff0351adaa811b59caab31c553620f5e5e494674a3f082adf55fadab18a40c0b7d830219ffff03dc94a52978975ee240c71e04b2d5e81337f79f31bd3fc7394ba143761f10280603f72867c0fe21ec369655823ee6ac8e27e88673bcace597d83a9ab94b29a6ad240315915faec7b5910433fe916473028622ef58fe84d3ccd73d6403777442fad339036aa7daf97b1cf5bc37a38da8df4dc3e7782c0488e169c2ef4c19081244ff891b037960177a2433efac788214711b2606c49c60a15092e1afac96499726e1a1db790219ffff035869bca9a1647c92e6aff642a29fcc5ff126e0c8132a69841a9b3f8b2080826e03f4ee781aaf42d19662119722f102398fd4a9e1df40b47d48d77592f89145918003511d3fee1569d98ae476e8c63cbe4790fed0954cd0b1e6a0b53167d24db28c8d0396dc04a191ee41870bcd16a7f61106a860a0bc4d86ad34916ba712dd3c173b2f0389da8446fe6f8a9a6240e60de4d44c5ec54009595dbc730973be5640c42c74020353921c71a4e66ec02fcb82c46a247b5e56ab5471a723ea9ab7c4c4a265c8c238036e55f8e823222da9f20dee66704c8fc95a94809b3079c9652da16be85bad214a0353eaa645a01ba62d41532128dc1cfbfac6650e8fd1c2bdd443f8d3322e146e6803ae4ab5cae9bc5f4bf42fa249c0246af0ebea887bb2bcd51d1a9a58094b5bc4bc032af6eedb3a715bd7e684853a53dac5f308640ca816ccd76c6441413086591a6a03ff886092546b184a264c21331a396f1bb619263b182b826298f040bc287acfe803e83a93bc6bbf4f49a8b9094463397e60732222a8ffebcbadc80a482e74387fa203416c53c1753babeed801f4023e8597befc3608bbce0b95052a6cabeccad9d65a03adb9256838a720e051bae0ef9bdca2825914e1051031eb0cdefe3a5a04d401ac03dc0eebf6af5405360ac9a6506408bb1faeb4fb2331f1017a6e6ea66fa76e6d7703cb47532a6136a7d85e9d4278df3f156b869db6146a2b33bb4e77974a1683df20031613c3580422dee8f8edfb32958e4b354a83cf438a6aeac7d553bd149ea663e203fcc1b4a2f6b57384eb8e702202caaccaf029a5693106a0417048cfcd76dec8de03236b48b5a24d057e49819de5a1a4f9f0a045e42df9ff34984543fd93d1d8df1703945f0699b4373654a9539d33a94a54977ae9425b5339c1455f757d6da4f7cb8003247f229309732c606f0d1f99d8af23d75cc3e67ce7e3ebb643f1fca27356adab030999b8d9add9affcf197c8f5acd2f8c36dcc557196f8bcadd2e50c34ba3aea68035c8f0e4ad2c2fd410cf52016d603c9eb59b8fb09cf93b86964ac57f2178dd37603baa2f17821a39fd6d9b59a51a9eb0aaeab8d2ed3c7e0b58ab95bac96b151d85a03291b04e2b0eb24c30dfc166e68b293da2719df9c554810921fb824b95afd880905581e0383ff8974c44ecfe4f0d0c2366bf35f8728077ddb9299aecd50de9a9530040405581e03928c492a15f3146730b35f33375b53c923090d6f070b4c62cfa45f89800c1840465d8e5efd78a803f421990a67d71d4ab19271c75aae6e62bd00cac6622af1375898c5df5ac7fdbe0336dc0adc0ec26b7c885cc87e740a3db97b5329321dacc2b29e586990ef92e00d036bb118f1127f8cc3985a6cfb01ecea24192d8725d7403979896526cb7f6f340505581e036bec762cfaaac7075b2b34f3dfe21c6a7041513124785abc920864914007011bffffffffffffffff05581e03de3dabe6a82bfce0c275a76dce84a85e50a95c1a9747377719db8b52800c0147011ba6b1e9d5e00459089e60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e4b32c109fd08ccf9742c7e09ffa8cda2bad608f5379698a7c1f93a339aee46b64736f6c6343000810003303b3a3af0dc1b8e0ef5604b13be93f222ae77819a669da486b32011bee567cfac1005821036501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e94354054d8a791fe2be73eb6e6cf1eb0cb3f36adc9b3f8f9005821032df0bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d481054eb803eb3f501998126bf37bb823646ed3d59d072005821035b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d054b93ac04010bd61f45bf492022a5b49a902f798f300582002a1a1c3fdf78f2d96a0fefd210ba9068d8d7feaf6990d21a100b9324822f00954f1af3b23de0a5ca3cab7261cb0061c0d779a5c7b00582002a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a8254798576400f7d662961ba15c6b3f3d813447a26a600582002fbe9f61d6d04f7c30fd2c1dfdc36f6e54225533b2f6861e27be755a6f20e07546625c6332c9f91f2d27c304e729b86db87a3f50400582002f97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c7547f2b8c31f88b6006c382775eea88297ec1e3e9050219804500582103b9bf400935444717603858599ae4425bc6a3ddbeec8fe963e5c7ebcb3c0ed3c05467260a8b73c5b77b55c1805218a42a7a6f98f515021911b405581e032400711e220159e3ce16470f56832a6b62b8e43970a9d215168ed6eb90070119089e05581e03b0cbda2b60120afc1c1b503b4353d83714981198c968728cd8903c05d00c0245012a05f2000219ca74030f6c2bd42c453d24ccd87ce7228f7f0d97dde508e82cf601813e1c3907e538070309057844a6dc152be159b2f594a1a9b38fd444455352770ab81c2694cdabbb9603172a90e799e551e6ed03fca4581fb712c55c896ff94c34f40d0915dc3176b2bc03a45c035b6967754fa3f9d2cba0e2c7e48123439c3fc62ff43a1680a1c218968f03554c9ec7f634b080dfc1e28a73253f04a6ecb9866e688e00c9d70722a2072479031ccb2692ed70ac77c1398040ef69ac5f49bb7a066afb6f959d5188a34462504a03d67e5c936f8c408a72ba488b0c91857a960315450d1e64d90a5c283fba600b2e03bd05e8e0f851c69f5682a3cba3a0298f3c573ee95bb0249e42d0f1be55c6fa9803112b4b867ba580885723beb46f7a1341f810bb3264f1b4d49a648f5f6b5a1cb90388ac806bf2706a26975b1cf7634e21b70032b971d18d0722505a1d194b0d72460219ffff03b91966eee0ef121751e45d8e5f7e0a5350f885eaeb9df5db27d96bd3fa940a1e038dc938f1fb77c6701512456b39cd89bc2910359f7347cf1d2dd41392798fe90a03875703ef3f35ab6fa034f0b4d20c0c258cc587882d7bfbff22a736feff75c23c03278b7eeffd303563ae75db99cf5114d1ddfbd95dc723fd1932765f7dcd63941803c3714923de843ed96b20e501e0a3f9026c465cbf671531454221ce5cdda597c803279690ff87deba99d01ad53488caaa27bf8d9b59fb60aec6758eaf70a5ff6f4b03dcd62baefaceebaba76fe730e0f383b7cfb87fe59ae477d223bcf458e112faac035b506e4a5e1fc9b9d6c01f438bb1e795ee59c90e2f38477f5a37b46329a0b94d0219ffff03fc391327f09fb0fd5ad4fe84bf26f767b88a4d26c530d7c42317bf7a9f4fadd10358e5880bb3755398d9c8aec0632ef5370c6cf492726a0eb4197581aa9adfffb003c1cd10303d6b5d3eba06c1b4d69e70f0787f41170a4a8fd473a4f277ac94fdc20219ffff03c289492fd0ed28cc825afbf3567dc23f764257afe98afb5c4aac7eb792849792038babc5dd3feaf4d29bb44e7c43efd0e3ae673604517fe639d2b23709cad148d4034430d20c5f24fc4adf3bfaa02b47f4a5d4f4616bced02225c3dea61e229fc2e7034c8ec0e150b6de0de066b7a722547d21197c8edff53e61dc4fe1d3cbb94f5b9e03243384d2c3b8294095017eec6f6c9dd8e38e16cfd4af8efe56244b20647f9f4803a60673a1deaf72acc925462fe54a7512a81b72c02ead984730427c4dd16db3e6036a61447f8d1bcd45c679c82fb6708503ac0e36a742da1d255e6bd07ddd75c3720314b751aa50e715cf6a48605036bc5784fc1b50e2f5a3c6dbe684d4cc8e184f1003166d2e5a9072b03d02261eae2633b5df8c21bd338f9a2c9e0e530e67f48cbbf9030f026ed81b7c48e45e9b41b3494e7b4fa1049b7a87c199952600cf6d0d61758903e236ed8a8cfe4d16f21338cc5042e24512ed919b4d3371b0a3cc3a081f9a75b7030093e2ac589f6021b3eb1028596fe04711746931f2263dc6dda88cdb1cfe99c503976492e76a4aeebad50a52a0bcf4a1f54ea465c0e5212c5dd78231bbb83c286803591017cc13b5c84376e6c9dfaed3cfd9920186d6eb3dd8f5c6230a6071544883030a9486ea12518f4620ad9adb58503ec1ca1081471add050e45a5379d99d8d1b3037085de6163d53b3037868bd55da0cd35ed3cfe00c625798cd73aa8c52c11fe40034a906a33a06e0f602af4f95fa410c1dd615e7d06320ab44e961388e02c87f99903eddf9f7e90c7e679abc53141649b9a756d2a659fdc39e50c3c96bc1181859b88037af54cdef910b5c18a5d532fc00abc888809dd7026bb8f0ffa7e8bf122fed44c031e62f9dfdae34645d46733a1a828b6f9d3f8af98dac985c30dad05d5c34c872f03fca1e6839a21e96b605106e93a5cfb6d75def31d88d366d59b7eefb8f5105a1003f0b332bc44312957c41e1c20a16725fe869fe75441fd6ffd6bd0e13f2703d1ea0388f6c90814631203ebcd879b9b2a01f894d317d77528d0a411dcdc9664a288fb05581e03e1203a09600041563ee0d2cf85a275dfe2c2325ed67f0fdb4b65dbe29007011bffffffffffffffff03b099699db3b5919de5ae5fca5a189037f197b15042a801a6a5f2d574968e595905581e030c405bb3857eaf3585e0d8318102c2e55c3e00d743f519d70e2dc263500c06464459558625e803415d588ab5f0dcaa55b2bc37ecf2168401a1cf783e5ba674fb4f95b82efda5e60399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe908031a964cc1840294cd41060016ef1f8ce5852ac19a5ffd97bf13d5abf517b6123d05581e036237d96faf9cd70786ffbd07535665fe63268991dff0d302f22b00f33007011bffffffffffffffff05581e030d5d6e05b0e28db1f33a2496bd94d717cf980cd63e98e7467571eeb3800c0147021714d55f5200045938eb6080604052600436106102a45760003560e01c80638da5cb5b1161016e578063ccf3dc82116100cb578063ecb96fe61161007f578063f23a6e6111610064578063f23a6e6114610797578063f2fde38b146107c4578063fc525395146107e457600080fd5b8063ecb96fe614610746578063f0b9e5ba1461076c57600080fd5b8063ddb382f9116100b0578063ddb382f9146106cd578063e4dd4b8a146106f1578063e6041f9a1461072657600080fd5b8063ccf3dc821461068d578063d8579704146106ad57600080fd5b8063b7ce33a211610122578063bc197c8111610107578063bc197c8114610629578063bd38837b14610658578063c5cadd7f1461067857600080fd5b8063b7ce33a2146105e9578063b92779631461060957600080fd5b80639f2ba09b116101535780639f2ba09b1461058f578063a1b62797146105af578063b19337a4146105c957600080fd5b80638da5cb5b1461055e5780639a2b81151461057c57600080fd5b806326e2dca21161021c5780635eacc63a116101d0578063715018a6116101b5578063715018a61461050957806381ea4ea61461051e57806383206e801461053e57600080fd5b80635eacc63a146104d65780636335f25e146104e957600080fd5b8063452a932011610201578063452a932014610476578063565528d7146104965780635d799f87146104b657600080fd5b806326e2dca2146104365780633a5750b61461045657600080fd5b806311f8541711610273578063180cb47f11610258578063180cb47f146103a4578063186b100c146103e45780631bd78748146103f757600080fd5b806311f8541714610340578063150b7a021461035f57600080fd5b806301ffc9a7146102b057806304824e70146102f657806309ba153d146103185780630a9254e41461032b57600080fd5b366102ab57005b600080fd5b3480156102bc57600080fd5b506102e16102cb3660046128b4565b6001600160e01b0319166301ffc9a760e01b1490565b60405190151581526020015b60405180910390f35b34801561030257600080fd5b506103166103113660046128fa565b610804565b005b610316610326366004612d22565b61085e565b34801561033757600080fd5b506103166109d7565b34801561034c57600080fd5b506006546102e190610100900460ff1681565b34801561036b57600080fd5b5061038b61037a366004612e18565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020016102ed565b3480156103b057600080fd5b506103cc73cd0313fd7cca5648d2948c42c320ba50cd0e6cb681565b6040516001600160a01b0390911681526020016102ed565b6103166103f23660046130df565b610b9c565b34801561040357600080fd5b506104176104123660046131e8565b610c6e565b604080516001600160a01b0390931683529015156020830152016102ed565b34801561044257600080fd5b50610316610451366004613246565b610ca3565b34801561046257600080fd5b506103166104713660046131e8565b610da2565b34801561048257600080fd5b506002546103cc906001600160a01b031681565b3480156104a257600080fd5b506103166104b13660046132bc565b610e6f565b3480156104c257600080fd5b506103166104d13660046132fe565b610f39565b6103166104e4366004613337565b611084565b3480156104f557600080fd5b506004546103cc906001600160a01b031681565b34801561051557600080fd5b506103166111ad565b34801561052a57600080fd5b506103166105393660046128fa565b611201565b34801561054a57600080fd5b50610316610559366004613426565b6112cb565b34801561056a57600080fd5b506000546001600160a01b03166103cc565b61031661058a366004613443565b611326565b34801561059b57600080fd5b506103166105aa366004613480565b61138b565b3480156105bb57600080fd5b506006546102e19060ff1681565b3480156105d557600080fd5b506103166105e43660046128fa565b611446565b3480156105f557600080fd5b506103166106043660046134c1565b6114b0565b34801561061557600080fd5b506103166106243660046131e8565b6115e0565b34801561063557600080fd5b5061038b610644366004613556565b63bc197c8160e01b98975050505050505050565b34801561066457600080fd5b506003546103cc906001600160a01b031681565b34801561068457600080fd5b5061031661162d565b34801561069957600080fd5b506103166106a8366004613615565b61165a565b3480156106b957600080fd5b506103166106c83660046128fa565b6116ff565b3480156106d957600080fd5b506106e360055481565b6040519081526020016102ed565b3480156106fd57600080fd5b5061071161070c3660046131e8565b611787565b604080519283529015156020830152016102ed565b34801561073257600080fd5b50610316610741366004613426565b6117b8565b34801561075257600080fd5b506006546103cc906201000090046001600160a01b031681565b34801561077857600080fd5b5061038b610787366004613643565b63785cf2dd60e11b949350505050565b3480156107a357600080fd5b5061038b6107b236600461369f565b63f23a6e6160e01b9695505050505050565b3480156107d057600080fd5b506103166107df3660046128fa565b61181a565b3480156107f057600080fd5b506103166107ff3660046128fa565b6118e7565b6000546001600160a01b031633146108515760405162461bcd60e51b815260206004820181905260248201526000805160206138bf83398151915260448201526064015b60405180910390fd5b61085b8147611951565b50565b60015460011461089d5760405162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b6044820152606401610848565b600260015560005b8451518110156109b15784518051829081106108c3576108c361371b565b60200260200101516001600160a01b03166323b872dd3330886020015185815181106108f1576108f161371b565b60209081029190910101516040516001600160a01b03938416602482015292909116604483015260648201526084016040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516109599190613731565b6000604051808303816000865af19150503d8060008114610996576040519150601f19603f3d011682016040523d82523d6000602084013e61099b565b606091505b50505080806109a99061376c565b9150506108a5565b506109bb826119bb565b6109c483611a68565b6109cd81611d93565b5050600180555050565b6000546001600160a01b03163314610a1f5760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b73b7f7f6c52f2e2fdb1963eab30438024864c313f66001600160a01b031663ddd81f826040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a6e57600080fd5b505af1158015610a82573d6000803e3d6000fd5b5050604051631538f65960e31b815230600482015273b7f7f6c52f2e2fdb1963eab30438024864c313f6925063a9c7b2c89150602401602060405180830381865afa158015610ad5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af99190613793565b600480546001600160a01b0319166001600160a01b039290921691909117815560405163a22cb46560e01b815273c3f733ca98e0dad0386979eb96fb1722a1a05e699181019190915260016024820152737c40c393dc0f283f318791d746d894ddd36935729063a22cb46590604401600060405180830381600087803b158015610b8257600080fd5b505af1158015610b96573d6000803e3d6000fd5b50505050565b60065460ff16610bee5760405162461bcd60e51b815260206004820152601260248201527f747261646573206e6f7420616c6c6f77656400000000000000000000000000006044820152606401610848565b600154600114610c2d5760405162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b6044820152606401610848565b6002600155610c3b81611f9a565b610c46878787612082565b610c4f846119bb565b610c5883611a68565b610c6182611d93565b5050600180555050505050565b60078181548110610c7e57600080fd5b6000918252602090912001546001600160a01b0381169150600160a01b900460ff1682565b6000546001600160a01b03163314610ceb5760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b60005b82811015610d9b57846001600160a01b03166323b872dd3084878786818110610d1957610d1961371b565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b158015610d7057600080fd5b505af1158015610d84573d6000803e3d6000fd5b505050508080610d939061376c565b915050610cee565b5050505050565b6000546001600160a01b03163314610dea5760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b6040805180820190915290815260016020820181815260088054928301815560005291517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee360029092029182015590517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee4909101805460ff1916911515919091179055565b6000546001600160a01b03163314610eb75760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b6040518060400160405280836001600160a01b0316815260200182151581525060078481548110610eea57610eea61371b565b600091825260209182902083519101805493909201511515600160a01b0274ffffffffffffffffffffffffffffffffffffffffff199093166001600160a01b0390911617919091179055505050565b6000546001600160a01b03163314610f815760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b6040516370a0823160e01b81523060048201526001600160a01b0383169063a9059cbb90839083906370a0823190602401602060405180830381865afa158015610fcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff391906137b0565b6040516001600160a01b03909216602483015260448201526064016040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516110479190613731565b6000604051808303816000865af19150503d8060008114610d9b576040519150601f19603f3d011682016040523d82523d6000602084013e610d9b565b6001546001146110c35760405162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b6044820152606401610848565b600260015560005b815181101561119357737be8076f4ea4a4ad08075c2508e481d6c946d12b6001600160a01b03168282815181106111045761110461371b565b6020026020010151600001518383815181106111225761112261371b565b60200260200101516020015160405161113b9190613731565b60006040518083038185875af1925050503d8060008114611178576040519150601f19603f3d011682016040523d82523d6000602084013e61117d565b606091505b505050808061118b9061376c565b9150506110cb565b5047156111a65760008060008047335af1505b5060018055565b6000546001600160a01b031633146111f55760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b6111ff6000612481565b565b6000546001600160a01b031633146112495760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b604080518082019091526001600160a01b03918216815260016020820181815260078054928301815560005291517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101805492511515600160a01b0274ffffffffffffffffffffffffffffffffffffffffff199093169190931617179055565b6000546001600160a01b031633146113135760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b6006805460ff1916911515919091179055565b6001546001146113655760405162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b6044820152606401610848565b600260015561137381611a68565b47156111a65760008060008047335af1505060018055565b6000546001600160a01b031633146113d35760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b60405163095ea7b360e01b81526001600160a01b0383811660048301526024820183905284169063095ea7b3906044016020604051808303816000875af1158015611422573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9691906137c9565b6000546001600160a01b0316331461148e5760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114f85760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b60005b848110156115d757866001600160a01b031663f242432a30848989868181106115265761152661371b565b9050602002013588888781811061153f5761153f61371b565b6040516001600160e01b031960e089901b1681526001600160a01b03968716600482015295909416602486015250604484019190915260209091020135606482015260a06084820152600060a482015260c401600060405180830381600087803b1580156115ac57600080fd5b505af11580156115c0573d6000803e3d6000fd5b5050505080806115cf9061376c565b9150506114fb565b50505050505050565b6000546001600160a01b031633146116285760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b600555565b6002546001600160a01b0316336001600160a01b03161461164d57600080fd5b6006805461ffff19169055565b6000546001600160a01b031633146116a25760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b6040518060400160405280838152602001821515815250600884815481106116cc576116cc61371b565b60009182526020918290208351600292909202019081559101516001909101805460ff1916911515919091179055505050565b6000546001600160a01b031633146117475760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b600680546001600160a01b0390921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff909216919091179055565b6008818154811061179757600080fd5b60009182526020909120600290910201805460019091015490915060ff1682565b6000546001600160a01b031633146118005760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b600680549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146118625760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b6001600160a01b0381166118de5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610848565b61085b81612481565b6000546001600160a01b0316331461192f5760405162461bcd60e51b815260206004820181905260248201526000805160206138bf8339815191526044820152606401610848565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600080600080600085875af19050806119b65760405162461bcd60e51b815260206004820152602160248201527f5f7472616e736665724574683a20457468207472616e73666572206661696c656044820152601960fa1b6064820152608401610848565b505050565b60005b8151811015611a645760035482516000916001600160a01b0316908490849081106119eb576119eb61371b565b602002602001015160000151604051611a049190613731565b600060405180830381855af49150503d8060008114611a3f576040519150601f19603f3d011682016040523d82523d6000602084013e611a44565b606091505b50509050611a51816124d1565b5080611a5c8161376c565b9150506119be565b5050565b60005b8151811015611a64576000806000600660029054906101000a90046001600160a01b03166001600160a01b031663b1283e77868681518110611aaf57611aaf61371b565b6020026020010151600001516040518263ffffffff1660e01b8152600401611ad991815260200190565b606060405180830381865afa158015611af6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1a91906137e6565b92509250925080611b6d5760405162461bcd60e51b815260206004820152601760248201527f5f74726164653a20496e416374697665204d61726b65740000000000000000006044820152606401610848565b737be8076f4ea4a4ad08075c2508e481d6c946d12b6001600160a01b0384161480611bb45750737f268357a8c2552623316e2562d90e642bb538e56001600160a01b038416145b15611c5657826001600160a01b0316858581518110611bd557611bd561371b565b602002602001015160200151868681518110611bf357611bf361371b565b602002602001015160400151604051611c0c9190613731565b60006040518083038185875af1925050503d8060008114611c49576040519150601f19603f3d011682016040523d82523d6000602084013e611c4e565b606091505b505050611d7d565b600082611cf857836001600160a01b0316868681518110611c7957611c7961371b565b602002602001015160200151878781518110611c9757611c9761371b565b602002602001015160400151604051611cb09190613731565b60006040518083038185875af1925050503d8060008114611ced576040519150601f19603f3d011682016040523d82523d6000602084013e611cf2565b606091505b50611d6f565b836001600160a01b0316868681518110611d1457611d1461371b565b602002602001015160400151604051611d2d9190613731565b600060405180830381855af49150503d8060008114611d68576040519150601f19603f3d011682016040523d82523d6000602084013e611d6d565b606091505b505b509050611d7b816124d1565b505b5050508080611d8b9061376c565b915050611a6b565b4715611da55760008060008047335af1505b60005b8151811015611a64576000828281518110611dc557611dc561371b565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3991906137b0565b1115611f8857818181518110611e5157611e5161371b565b60200260200101516001600160a01b031663a9059cbb33848481518110611e7a57611e7a61371b565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eee91906137b0565b6040516001600160a01b03909216602483015260448201526064016040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611f429190613731565b6000604051808303816000865af19150503d8060008114611f7f576040519150601f19603f3d011682016040523d82523d6000602084013e611f84565b606091505b5050505b80611f928161376c565b915050611da8565b60055460208201511015611ff05760405162461bcd60e51b815260206004820152601060248201527f496e73756666696369656e7420666565000000000000000000000000000000006044820152606401610848565b60208101511561085b578051600780546000929081106120125761201261371b565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b900460ff161515918101829052915061207457611a6473cd0313fd7cca5648d2948c42c320ba50cd0e6cb68360015b6020020151611951565b8051611a649083600161206a565b60005b8351518110156121915783518051829081106120a3576120a361371b565b60200260200101516001600160a01b03166323b872dd3330876020015185815181106120d1576120d161371b565b60209081029190910101516040516001600160a01b03938416602482015292909116604483015260648201526084016040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516121399190613731565b6000604051808303816000865af19150503d8060008114612176576040519150601f19603f3d011682016040523d82523d6000602084013e61217b565b606091505b50505080806121899061376c565b915050612085565b5060005b82518110156123a0578281815181106121b0576121b061371b565b6020026020010151600001516001600160a01b031673b47e3cd837ddf8e4c57f05d70ab865de6e193bbb6001600160a01b03160361220f5761220a8382815181106121fd576121fd61371b565b60200260200101516124e0565b61238e565b8281815181106122215761222161371b565b6020026020010151600001516001600160a01b03167360cd862c9c687a9de49aecdc3a99b74a4fc54ab66001600160a01b03160361227b5761220a83828151811061226e5761226e61371b565b602002602001015161267f565b60005b8382815181106122905761229061371b565b6020026020010151604001515181101561238c578382815181106122b6576122b661371b565b6020026020010151600001516001600160a01b03166323b872dd6122d73390565b308786815181106122ea576122ea61371b565b60200260200101516040015185815181106123075761230761371b565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561236157600080fd5b505af1158015612375573d6000803e3d6000fd5b5050505080806123849061376c565b91505061227e565b505b806123988161376c565b915050612195565b5060005b8151811015610b96578181815181106123bf576123bf61371b565b6020026020010151600001516001600160a01b0316632eb2c2d66123e03390565b308585815181106123f3576123f361371b565b6020026020010151602001518686815181106124115761241161371b565b6020026020010151604001516040518563ffffffff1660e01b815260040161243c9493929190613863565b600060405180830381600087803b15801561245657600080fd5b505af115801561246a573d6000803e3d6000fd5b5050505080806124799061376c565b9150506123a4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8061085b573d6000803e3d6000fd5b60005b816040015151811015611a6457600082600001516001600160a01b031663581781688460400151848151811061251b5761251b61371b565b60200260200101516040518263ffffffff1660e01b815260040161254191815260200190565b602060405180830381865afa15801561255e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125829190613793565b90506001600160a01b03811633146125ea5760405162461bcd60e51b815260206004820152602560248201527f5f61636365707443727970746f50756e6b3a20696e76616c69642070756e6b2060448201526437bbb732b960d91b6064820152608401610848565b82600001516001600160a01b0316638264fe98846040015184815181106126135761261361371b565b60200260200101516040518263ffffffff1660e01b815260040161263991815260200190565b600060405180830381600087803b15801561265357600080fd5b505af1158015612667573d6000803e3d6000fd5b505050505080806126779061376c565b9150506124e3565b60005b816040015151811015611a645760006126b7836040015183815181106126aa576126aa61371b565b6020026020010151612845565b8351604051633894ca5760e01b81527fffffffffff000000000000000000000000000000000000000000000000000000831660048201529192506000916001600160a01b0390911690633894ca5790602401602060405180830381865afa158015612726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061274a9190613793565b90506001600160a01b03811633146127b25760405162461bcd60e51b815260206004820152602560248201527f5f6163636570744d6f6f6e4361743a20696e76616c6964206d6f6f6e6361742060448201526437bbb732b960d91b6064820152608401610848565b83516040516301be705160e41b81527fffffffffff000000000000000000000000000000000000000000000000000000841660048201526001600160a01b0390911690631be7051090602401600060405180830381600087803b15801561281857600080fd5b505af115801561282c573d6000803e3d6000fd5b505050505050808061283d9061376c565b915050612682565b6040805160208082528183019092526000918291906020820181803683375050506020810184815260405191925060059081830190600a8401905b81831015612898578051835260209283019201612880565b505060058352601f01601f191660405250602001519392505050565b6000602082840312156128c657600080fd5b81356001600160e01b0319811681146128de57600080fd5b9392505050565b6001600160a01b038116811461085b57600080fd5b60006020828403121561290c57600080fd5b81356128de816128e5565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561295057612950612917565b60405290565b6040516060810167ffffffffffffffff8111828210171561295057612950612917565b6040516020810167ffffffffffffffff8111828210171561295057612950612917565b604051601f8201601f1916810167ffffffffffffffff811182821017156129c5576129c5612917565b604052919050565b600067ffffffffffffffff8211156129e7576129e7612917565b5060051b60200190565b600082601f830112612a0257600080fd5b81356020612a17612a12836129cd565b61299c565b82815260059290921b84018101918181019086841115612a3657600080fd5b8286015b84811015612a5a578035612a4d816128e5565b8352918301918301612a3a565b509695505050505050565b600082601f830112612a7657600080fd5b81356020612a86612a12836129cd565b82815260059290921b84018101918181019086841115612aa557600080fd5b8286015b84811015612a5a5780358352918301918301612aa9565b600060408284031215612ad257600080fd5b612ada61292d565b9050813567ffffffffffffffff80821115612af457600080fd5b612b00858386016129f1565b83526020840135915080821115612b1657600080fd5b50612b2384828501612a65565b60208301525092915050565b600082601f830112612b4057600080fd5b813567ffffffffffffffff811115612b5a57612b5a612917565b612b6d601f8201601f191660200161299c565b818152846020838601011115612b8257600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112612bb057600080fd5b81356020612bc0612a12836129cd565b82815260059290921b84018101918181019086841115612bdf57600080fd5b8286015b84811015612a5a57803567ffffffffffffffff80821115612c045760008081fd5b908801906060828b03601f1901811315612c1e5760008081fd5b612c26612956565b838801358152604080850135828a0152918401359183831115612c495760008081fd5b612c578d8a85880101612b2f565b908201528652505050918301918301612be3565b600082601f830112612c7c57600080fd5b81356020612c8c612a12836129cd565b82815260059290921b84018101918181019086841115612cab57600080fd5b8286015b84811015612a5a57803567ffffffffffffffff80821115612cd05760008081fd5b90880190818a03601f1901861315612ce85760008081fd5b612cf0612979565b8683013582811115612d025760008081fd5b612d108c8983870101612b2f565b82525085525050918301918301612caf565b60008060008060808587031215612d3857600080fd5b843567ffffffffffffffff80821115612d5057600080fd5b612d5c88838901612ac0565b95506020870135915080821115612d7257600080fd5b612d7e88838901612b9f565b94506040870135915080821115612d9457600080fd5b612da088838901612c6b565b93506060870135915080821115612db657600080fd5b50612dc3878288016129f1565b91505092959194509250565b60008083601f840112612de157600080fd5b50813567ffffffffffffffff811115612df957600080fd5b602083019150836020828501011115612e1157600080fd5b9250929050565b600080600080600060808688031215612e3057600080fd5b8535612e3b816128e5565b94506020860135612e4b816128e5565b935060408601359250606086013567ffffffffffffffff811115612e6e57600080fd5b612e7a88828901612dcf565b969995985093965092949392505050565b600082601f830112612e9c57600080fd5b81356020612eac612a12836129cd565b82815260059290921b84018101918181019086841115612ecb57600080fd5b8286015b84811015612a5a57803567ffffffffffffffff80821115612ef05760008081fd5b908801906060828b03601f1901811315612f0a5760008081fd5b612f12612956565b87840135612f1f816128e5565b815260408481013584811115612f355760008081fd5b612f438e8b838901016129f1565b838b015250918401359183831115612f5b5760008081fd5b612f698d8a85880101612a65565b908201528652505050918301918301612ecf565b600082601f830112612f8e57600080fd5b81356020612f9e612a12836129cd565b82815260059290921b84018101918181019086841115612fbd57600080fd5b8286015b84811015612a5a57803567ffffffffffffffff80821115612fe25760008081fd5b908801906060828b03601f1901811315612ffc5760008081fd5b613004612956565b87840135613011816128e5565b8152604084810135848111156130275760008081fd5b6130358e8b83890101612a65565b838b01525091840135918383111561304d5760008081fd5b61305b8d8a85880101612a65565b908201528652505050918301918301612fc1565b600082601f83011261308057600080fd5b6040516040810181811067ffffffffffffffff821117156130a3576130a3612917565b80604052508060408401858111156130ba57600080fd5b845b818110156130d45780358352602092830192016130bc565b509195945050505050565b6000806000806000806000610100888a0312156130fb57600080fd5b873567ffffffffffffffff8082111561311357600080fd5b61311f8b838c01612ac0565b985060208a013591508082111561313557600080fd5b6131418b838c01612e8b565b975060408a013591508082111561315757600080fd5b6131638b838c01612f7d565b965060608a013591508082111561317957600080fd5b6131858b838c01612c6b565b955060808a013591508082111561319b57600080fd5b6131a78b838c01612b9f565b945060a08a01359150808211156131bd57600080fd5b506131ca8a828b016129f1565b9250506131da8960c08a0161306f565b905092959891949750929550565b6000602082840312156131fa57600080fd5b5035919050565b60008083601f84011261321357600080fd5b50813567ffffffffffffffff81111561322b57600080fd5b6020830191508360208260051b8501011115612e1157600080fd5b6000806000806060858703121561325c57600080fd5b8435613267816128e5565b9350602085013567ffffffffffffffff81111561328357600080fd5b61328f87828801613201565b90945092505060408501356132a3816128e5565b939692955090935050565b801515811461085b57600080fd5b6000806000606084860312156132d157600080fd5b8335925060208401356132e3816128e5565b915060408401356132f3816132ae565b809150509250925092565b6000806040838503121561331157600080fd5b823561331c816128e5565b9150602083013561332c816128e5565b809150509250929050565b6000602080838503121561334a57600080fd5b823567ffffffffffffffff8082111561336257600080fd5b818501915085601f83011261337657600080fd5b8135613384612a12826129cd565b81815260059190911b830184019084810190888311156133a357600080fd5b8585015b83811015613419578035858111156133bf5760008081fd5b86016040818c03601f19018113156133d75760008081fd5b6133df61292d565b828a013581529082013590878211156133f85760008081fd5b6134068d8b84860101612b2f565b818b0152855250509186019186016133a7565b5098975050505050505050565b60006020828403121561343857600080fd5b81356128de816132ae565b60006020828403121561345557600080fd5b813567ffffffffffffffff81111561346c57600080fd5b61347884828501612b9f565b949350505050565b60008060006060848603121561349557600080fd5b83356134a0816128e5565b925060208401356134b0816128e5565b929592945050506040919091013590565b600080600080600080608087890312156134da57600080fd5b86356134e5816128e5565b9550602087013567ffffffffffffffff8082111561350257600080fd5b61350e8a838b01613201565b9097509550604089013591508082111561352757600080fd5b5061353489828a01613201565b9094509250506060870135613548816128e5565b809150509295509295509295565b60008060008060008060008060a0898b03121561357257600080fd5b883561357d816128e5565b9750602089013561358d816128e5565b9650604089013567ffffffffffffffff808211156135aa57600080fd5b6135b68c838d01613201565b909850965060608b01359150808211156135cf57600080fd5b6135db8c838d01613201565b909650945060808b01359150808211156135f457600080fd5b506136018b828c01612dcf565b999c989b5096995094979396929594505050565b60008060006060848603121561362a57600080fd5b833592506020840135915060408401356132f3816132ae565b6000806000806060858703121561365957600080fd5b8435613664816128e5565b935060208501359250604085013567ffffffffffffffff81111561368757600080fd5b61369387828801612dcf565b95989497509550505050565b60008060008060008060a087890312156136b857600080fd5b86356136c3816128e5565b955060208701356136d3816128e5565b94506040870135935060608701359250608087013567ffffffffffffffff8111156136fd57600080fd5b61370989828a01612dcf565b979a9699509497509295939492505050565b634e487b7160e01b600052603260045260246000fd5b6000825160005b818110156137525760208186018101518583015201613738565b81811115613761576000828501525b509190910192915050565b60006001820161378c57634e487b7160e01b600052601160045260246000fd5b5060010190565b6000602082840312156137a557600080fd5b81516128de816128e5565b6000602082840312156137c257600080fd5b5051919050565b6000602082840312156137db57600080fd5b81516128de816132ae565b6000806000606084860312156137fb57600080fd5b8351613806816128e5565b6020850151909350613817816132ae565b60408501519092506132f3816132ae565b600081518084526020808501945080840160005b838110156138585781518752958201959082019060010161383c565b509495945050505050565b60006001600160a01b03808716835280861660208401525060a0604083015261388f60a0830185613828565b82810360608401526138a18185613828565b83810360809094019390935250506000815260200194935050505056fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a164736f6c634300080d000a0058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563054fa9fb502534761dbddacf5b7e2aa84684815f1bb0058210305787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace054cd0313fd7cca5648d2948c42c320ba50cd0e6cb60058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf604101005821032575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b054e9cf0d3e77fdf08bb74da6400094a313064de58e00582103652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0563a574bac669f3b1cb54b92ccbaefbafd07054d9601010219981405581e039d03815ad28b8510534f96f811bd44a9993f51924485add90b576eb8b007011938eb03d43c0be8a58ddaceb6e63fa63f7d7644dc3cc4e08eb3a9840a5cb56f8456914605581e038e6b996e7b1841e96ab4e39aff2ddb192a991b1ca235392f675fa542e004010310107374bb8fc4f13ca569a526397ab765928dd8325f93043f4467abce2e59d4038837a5ad7b37eb9bb8c7b731964d855b7c14a8fe67765cffba4188991678975801410e0219f8be031d53540f5d1799eea6f4299f6ef382af40ca4d6c78faa8b1da2ece70ab3b4de703daa53db28b4f7df017bdcfef2dfd84cc3c163ad062d25eff1cb3a96c7e68ae7b03493044b883927b5d9d55f80b975a0c2ec171f92558c21a2ae376ca831741376c030d9d39d004404fd784b7e343cdb9aafae4e03240d9c44f572cf8706ec00a9756031593b4e0e0c0347534c3efb33cef24caa58f192d98a8ab1cc6865a54bcc3c4f603423f94ab34c7f9eac8562f75629080222c02bf706a1fcdfa0d26dbbb3c07815903d75b623193a5f82cd15e997db912daf046de873f08f23ad8c2971d5ae512ce0003035c88d4ee0ce3b54d0a193adc50eaaf7ba5deaae2121200c81a9dd9dcfb305a03fe4a583aca302bb80bce008d3383618edf21715e9927f1e73eff7caa7f055346039e9c5ef7d4e0463cf3e4246b48ab874af918b70f7b3bfd0709108585b3fb512b03ef0713acd2b0265e6bc1f61f3b32cb503ebcca2c08dc69c5cf8b902a901fa7570219ffff03dc482dd82989f2cbe79c8cf4d1387a50daa7b5f6ba410aa7eb3dcd8aabd1b5580325f5cbd036bf37f127bf247acb2b4ce0aece15f9475066192d5e6e4f6596295e0347bc565f70c7c0ea0b32318b993dd5b5ff5100b6d360667aae13cf7d9ec3fc2a0363bbb55bfa1dc79b598c7f478628fe62010ce37cb154d1059b7cbd3d335d177b03fefc1ff1f345ddddc4e96a68dec2f920cb038ceefc5b812d3d6602b647aa11a20354ef5eef47fecb1b6ac07a24f65fde9866e9add3037946922d140ffab6bcdc1a03f08c28627a4e635249c13bc2524513ae1b0cca2a383170cf9181d64de69ccd0403558b28878c176294d17be8883f4c8b0e93ffdae36e68c93b81a0313dfc5ae73f03bcfb05fac35c5afa3f8d24d0c81214e4112092a9580565f5cd60c77585d3312003fe149b259490ad717a208b608b53b0d42b2514076406d9b50fc5421620332d7b0219ffff03b6ff75bae337316ed9bc2039468b4263dd183f24e68c6c07c27d5c8748d6086003cde76b2ceb7229fa8c5543359e46fc3e89be7ebe6362fd2f9ce4c580e7b8307d030d54b474a4fc4fd991c5d7feddb73a427f19c51cb7a1bdd3f38863f89443915903cf68524095de2f47ea0a19969998fe4fe9fc3df5a95c539dc65d2e26c1958acb03ae4270a9404f2dc4de04923215cc5807f4c9479512f222842afb050c960003c103529792d1f96b9f0d36aa306be855ec801fcd4bafd1af61fe32d2fe2e9c7fa96b03798663ff2a1d4e9a142cf048c1d727dc419de6137f7965d402a6661d696a3dfa03b98f00b63a0eb81398f9d6b2de1617373f9fdeca84c7cce7c49a935579f1122c0341412579675bf53d73ad0fd5eea4bfe84faad0ba868a6c720180993e2277e9d5034e338b9b2d6cc36e336a38201ae1634eabc8a69f097b82e87d3014e10b5ccc2003156e96d3080c92ddefb092ec8a35921c8732af5942efa0ee17dc58d616a179700312df36a6dba24fc395829a9976e5e428550cbb661469cd43cfa954060921da9d0219ffff030ea17b4851b2946dda364b43bed74ffca773abde82593ab12a5b8c2f5af1a75803556516ec710b31310a2ed6ea7903b89de3aca0571588234b047f2ea46750520703268015f74b74fb1c29214871f674a182ff1d8ca9960c9e2171ad8ef020dbccb9035f8a4dced7c33e20171c23e5e115d710843927ddf64e0fa726520dfafe09c3260372fbef248e5b76a17760e5db7127e7a79bc53676091b933a13c5d8ec91cc58a503991d4407049c62ae4b130f9d44fdadb954e7e12715f4d796e1d678295f8f34560395834779277ddf8cf3edb4b9403f8130ce25c4424f9b7e4236c59f7dfc352aac03a3fb0963aaf99348c31d75660856464bd96be6739ce7ba18880a928d153c545703793068c043ceb9ed6ed976eac872b83fe1559e03ee04f5f05daccbfd9b10135f034ee7fd0b290ffd856ffd87a722272a737b89ba9be9e8cc9cc4f26808789c578b03ae5391d0b334432965206569e776d502a6f900168661135a9278eff50080b60d030ea74114c137e809cddc06651e7893dcc71e162ac55af6e4bc9b1102d3f6085003c35cd654dbd0904ad88f8d54ca37eccbee289e0bdf77c9df823d336a7aefd10603e5c3a6a4418121b7d3486b80dd3c73263399579388ccdcd7e6baf9b821777f3d03f279da5c8e847dfde05759190113a338040446994ab8e35a13737d9f701b9b5f034e3ec1cdc760e3b0cba12f79b4c3aeeafb0ad64a7d6f65466cfdab415a8b0e6a033799b0b8e3ad6c9a7062e0fc4a4088d52c349a4ca0f3e516fdbeb9fc03a09dfe0302f5f80af0c87cfb186110795c4458cfb0b94a4e1ad0a464b44fba4e15bd1b6e03928ff168acf8f9751955206f4476993912afa20d2f748b68a3199eaf9758dd5703ee743714942d5834f7d3442018e4dea4b9e4a1cc4fc436f1b948ca47ef81d31b03dc5262e9e36de25694ff0a4c80a8655d948c76b2495556c8264217d3396eae380312c11fa3bd678c4102be9b84dcf2f840eb5f0e8b8f5565a87d788b8d51b5bfbd03c0cb47bb2b8db3363c7029271b2eb485f13cc06d6d962d32f89cf8b0eafac8c003e3e53a9c66fc35f5a568d2d2f6c4d64dd2c3dcbab8f76bc38ce3097dad881742032ccfdefa9667ede016c07d2c7e39110cf862a4f530ef4143173fcb9686afe51c03f8527b11136679f100e86b64f550dd9358e1b1eee4d3d757f1dbc83331c76fec038bcaa3cb649da598dd928275d3fcbe7e0bcf9c701228a27f23c8b789ec98d62703620d0201b0e649188b558622a370a79980a6dd2892e16f6e7fe543133d539d4b03eca65ab3cf26f2c3bea55224e1b366f7d7b8205bbe4107b40bafbcf736e94f2e0327e063892110c5d174261bbff00d3264535db2a09da4591ad05f424e02c6c01503aa228d7fc91edd5d93b49b9a773633c86e9d3a09af9cf900961821118c02007803f66a313a0f15c3c5f1fc57f8a5c18ad5188acd7f28fe1d1f54f6511306e20dfb03cd925a840c87bc8f0ac8338e9edeb4559c3654285a30878320d5f981e71dd49703dbe575bb48de2dfe5fcc68a4971788cb3dc1bc68d74e66d54cc8ef3efc76d9cb036e503c78d47f03c260667f0603972f2900d0f64686d6ef9587359f0342fea2b603b4e5be75803eb6ddd6cd14999379f77e5cb847b5ef7739c36c1e46764ad2a84203eaf39235cfa3b2daa9ca40b5fc65fe2259f4fde1eb0457279c8983fab42491d40393d89430fafb305a18fa297bb8695068c70f100ace47f91be226550d63821aa705581e03a0fcd9dcac31a5013f84a7bcc9fab2af8854fecd3bbfdc0ae6522c0b300c0147439adc162758f005581e032c4c33614f5a783736347ada65eb52ad5815382325886bc87e1a620a000c0147031024bab11f3a05581e03b40ffd041b6584bc7cf5b3c16b2a18834fa6b2924155e3725472fc25700c01476b5955a3cdd3ce03d2b80c4077bb782d9e20a6108366e4a401dce9d01960fd87f6ee9bc03332aa3d039cffef9599f468257709b0dc557ae76be4c99129a87ebb444d4d4552f0558e8505581e03819e2c0e969bebbe1b3564c1455781d8a2443bc1aa697949ff72d812b007011bffffffffffffffff03247c3a8bc666e8b2ceaca38c0b7e000aa3f4e3c92a1399ff0b1597a394f25624030532a1bee9e99360f146cc29994599b53d82691243c6d63705f3c6dae89b5a7505581d02869f3c7d1ae08c579376df23322874a3b66606d1c87900b7e7a4746c040105581d020eb7eb916faa9a78b07662b6cdca92213be74dacf87c7f06499285580c044801adef9875287dd005581d02cf363f50c6167923464e246bda3a1f723b80185847220877aa031a080c03474097febb03421005581d0211040f98ea48200c814f572bbceffa11e024b3e058a3320a95abe4d00c18984808c1d59552063d430219141105581e030f1994635f6c99a6e02e6354f7b77429e2e448c050dc60f37fe30efe000c014704dd97e33436dd02191bd103dff99139ee5c9b2851f21d11c1cfdcbcc02a0806ce246b0a582f2f8c714ad799036097891b976facf1972e8a47ebcde2691d5264451170dffe1eaaf2c2be634c2103db3796d35cb042b9575083077c0eb70f2d3461ca567ba4572ebd6ccdd3d145c4032f39a47474fede0f36e15e1376c048f7a157774ee2c58e1dd09e748f2e7a000903f7f1945db230cdb196ffa3c9634f06f4c12b69e45dee5527014bbb9b312f401f0219ffff035f64d7b0513a089d0d18d785dae239cf56715bfad096da00d4fc44db670f1ec30219ffff036ce319e0bad269fe8f203220fdf9f5eac88725a5032acbf69a9a629284d5effb038f4a1377082cb7c3af8145a78e80143b5d61d8ff6e300c5c861e5055972b4d4903ad89b99528413004fed622921a5d8c0ad4d28cfca575f506f75aef9097a88f24032c6d86683b83c4f925c5c3ea4c15ce21c9b5f18b5830b0bfe1bbfde2930d8df80219ffff0363196f38639657f8beba069640283c30519c414fe7755ecc5ff53d16ea223f470219ffff0361e6af5353d3d3743df4c0695346a33576223e90f6033286b8f0f3fe6310e99a03c1b369e26a45ec54032d9a94a78e0b11b53ffa7ef7de71084dc970406899971d0313ed3602018cb20fe527a70a9f166a662a0f4540e546b169102fcea78a88113203ec7f13802361acfa6099434068d5f1efa0e200c2ec4638748fc7b020569e336003d69cd12c6e318cebea579a427bbf563bcd2a8c6b854d86c6b5b6e27d238f4fda03ac9654f67243a9e6436938a5313b5fb23667dee25b997625b0d173eeeaa459c9037fc1a2c3c5372a3799ff2c7508662dc7fc141ff9eceb0aff0fc9119a2f1ecf11037a73e9e5f7740c3ae0ee5943fe9944f4952c5c1456ad93f643d2c4a0e609d2cf03e6b3066da13fe7897c149e7df920a1f5d67cb1a88fd06c0fa94b3765e90a9cec0311d7513ed24897a34473d5766234c6e417340f0eeb53ec3209ba0412fad8df4d03a30c6b8c0761cf5a99fcd1592da32d18c43f040a64ff6cd090aa04c84f582c110358e31bbba4e9dd36e7fede79173b5a15e94a5a76a6bb64bd6740a96f5b8df0c803b0b71b011c54963b7768debf771d74330b5b082b652d6793d49fd96d25adb41203b1d0a559d544a37c0afaf46ae8efa41fb1ac2d8f7c84f2e3640cbd51ac5452820314ec27d0eb7a28d9bd2182edca978ea1168195c519a26ba42438ac501621ec85036d747c91c941cccb1974993e565018fb06d3ba16f2a01700d6fac8a33580602d035a8592ddb2a8f564e2f203612897b338a63e2c9342d299026aef905ba8af765b03512b37f7b5b007eceed9b0ce223cd967029ccf7d5c3ddae9f50d460fcc5695b303c4e7271b6ca6a86f704331dcb017e5366fde30a31edef674e9d107ffe5aeaa9c03817363e2098e6799205127a99a027a7ae3571b222dba42fce435d2dffa8bc92a03faaa57d28aa4b2db372700c4a0f6ac39c00211ce5b21e52b85c78c589d15ab6e05581e03f050d252aa0ec545f7ab41cea4f18cfa2b095f008aa82734ba6b9ec0100c0347451b029e6e0c20033ee5312908828ef4a8ad820e13bdf8e1c67b1a97a90f5f42304dfae0dd47e71005581e035ca46959087768a899989f1af9bd7f35ef607b711dc2b7c07033592f700401031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0339e6d1ed59de3552852dd6504d4be4a73ab53fe4131d2a11b39a4ff74007011bffffffffffffffff05581e03f3615cf008c36088750885f967c1b29856f789f48adf91656196a090900401030e4b10e60678691238382ccc561a1dad398599176a628a51e84b1a57e667d6580370a2490804f148a0d0fc8b8da42be213e020bb0d4da62ff1694a0c7ced7707e70300b6f2e0d1c6145a78317c864f99738e5c09f9db509a662cab50cef123dc83dc0395728a69792e25b94b0b131526d7b9755de844572df20e65d4eaed4043fac6740382472170b470e4ae3aa704d3db38519bea26740cbca0ea14bd1aadba2e9384e305581e03b90b788a6a7e5f8a456d95a2beed373d3a711f6afb181cba131b9e54100c044702ce3ee2cbd62c037a0822b834c55882ef78b3ce3accc7acf2ec37586cc797a5e7cbfc72efc464d903ff4500827af8ddc06fdd434c9ee90eb7cc71466f640f72a2419db45d41ad8a7a05581d023e46965f858d13416443bbcaaee2887c7c7ce643542e3a8538fe126f07011bffffffffffffffff05581d024de75415422fea542fc2a3ed66ea7892bd922ff6081fadebb14a5e600c19015e473e2d4de73a277e021906000219ef5d0336f04025b911aa30442984b66aa27e389ed06637081bdf49cdfb5cfa2f90ce1703e54ceb650fe162a4b53c8bd7d4b5ab56cb671facf166a8b0f5596a31f7a79b63034da94717f407e0a1cc491f06aff247286c0eeab2b6f32762c8b840b7d11943ed03f790279915dff9ace01068bac9657213bdd6f158706920e427821b4a4dcf970803172cee638d8173735302cf4a6da3aee752e83993f3ad1f7aae4e9b3655ec251c031bb421c735f7afe9571cae3f8846d1243da66b3c48fcd8924df3f9c586a2ad00030531faa0b414d263762edd1ec47a8a68917733230f4ce758468b87353fa4a8ee03d0a5e2fbccce2e41b4864fb703406fa2064f0d5048feaf8639cc32a8dc94dbba03c355a04fabb62fab3627a02d4df8e7800f1dcba5b7bce34727287f5633651d730219ffff032d542ce27069e07f4da50c0079eb99adaf9fce931a104928394f94577a68a56e031d95bad244522fd1c5c1263b61dd7bf63d62f42352184a4d586f1d6e9265cac803290211b9affbfe685160e41fd2f4cef9a13fd10fbf3b10e3284d1760c42d59e503015217ac1972b1d4fcd5af2341fc0dded869d0b871ebfb55368a58d5126ecb7503c6139c3b844b61c3382ca34f338c7e81d5176d9c22dde8c0a92b2129c3c104c0037cc7f0cf9ff2cc40820438ff76bb45cc3e562a0daa6a6615ad1f734807994a3403c4ca8638283a7402cef25f6412be045b543e720b73de22ee8b497fee9d03991c03bcb78b021123e8bad08962545664d509285e17fb988c9e2e5e7c790b0f147f6203f0a08b86e1c6c8a7d427626f7796ef90d3325315b204513d2c1b7cbc9aa388530398a2e0e1b1a93aa843759ad2d7b9c180a45040eff0ad56dc997a6db26a745cb6034ff0b85557722604b08d4ad012eacdd90c4e2f3025a5c18eae6abf7f404b2c1c03072bb89a4fde263820a37c17efca983a387bcf3707385d0bb9ac1413cdb9f3c10305bb31d6f43f6a6e4ad61ff033af36bf02a8b37b91dd29c105318b4d13e2127d03331f5a11d812ebdd2e84d8f66599cc1610aba81a5d1b8592218bac0bbeb68359039f9af457217de87b5c32593657a43ad5ce599afce9255054d1034d15bcff81b90219ffff03a003c317e2cd1440a53e61946e21fd2a4ee5fa872b7820d3aa7aaffc768b1a5403f9f07dfa40346387009356eb60170a140f2a14148c074a19e09d836f1f05e29e034c6a0877e138ce4382b98dc7ac98bedba620cfc336a0150301af3204834d223103c5b0b8bace7fa575af5d9dd29204cf42c12b462587275610dfc4df0dcab2f27f03eabfab1ed10b746c0402a47df9fe6b3bf97c2fb59d65edc61d5612ce746d20070219ffff03666630eec201b88fa488355247c347f1f2eb9bea02fb44f4b81331532a17688d035fd00c2d7a1024520e9c03b28b346c4281e6b47571d6346b1b7caedfeb8586cf03df08b7367fdbf37f242a47a4b706d40107ad5bf05fcfb51c74b22ff54434b5f303857157ffea90a4f08b3fc4b651130b76211cb1a11eb84c8f4e97db777401bd4703d5dbd73f014060de9e84ecd7ecf9ddb6488864c0507c93d2ab01cb6dbb314f70039c8580d9514d6f12319ba9f1be2959f74bef14105d11a215ad348e5c7d34929f0362275078ced5ac81eb707d5336fba1cc24721a68ec368edeaf61b790e519076d03fe065825325657ef9cac23467f835a2eaf2da973e48bf6c37e26c92fffcaebea03c71cc829c509b8e0ce5caee7b4901e1d2e238d7de961ebde9fda13c8925b2cc703f2d8671846a3896690607cbcd5cea19d64dbebf27da6fac854f8cbada5b94b650219ffff037a45fb604d0f6afd8c9e94dd95c1102158c95c8f9d4a05522e6db69923e60f2b0312c93461f1f57fc83188aefe647f4b0c0db2cca7a77bd572d615cada12d716d50380dc2e916eecfd8584fa89d084f4d034ee80acf40c1f6e14a741388c30e69f6d033c40dc36e7ba095c1153a1ab951ab86d58cee2c0ee7a0b5563cf73402d51bb2f03f2a991d7b1aebe49196c74779fd19a448fbc356120368254da893eb75c881793033fda1cbcd270414790aa8856a03523b709780ef540ab13d86ddcb9d4ef0f7e8303034b7d7b1b76a17681e71df05a7e169ed39b50a9383b7f7f64d66cb28a7b4e5a03070e46b66304c82e5d0525192245e31b2b7c794bffd01328d015521df4915fea03ec16cc9374bc72198970de2ed33da01d233b58fd409d8abe57a4d3accb1b207c03e9dc5c0233f58d41e3ce595b549d6abb373dd63029dd880e8b26b7a0d06b786203f014f8daf4eb176c53bf94d8198d98769146baefbd82a64fc73ace3d5807631403c3d130abcaaf8ccf68c6cc2285ebfe3a97e1b337aec094962b28becf92fc441e039891936e9ed43b32e90dcfcddbd0a67f04329365c62885e89b58481fcce809750384ad1d95fc89f54622af452214c65df49131f8d06e2495623e685aa43ff07a8e03268e7112e0b379a1b7eb00c3742699ffab55040fdb66bd3de4f770dfedc0261203fcb68719dce239c06c86a7c4ac8608d70a672ac2f1e36e3948fd0ba23c2df17a03ae975fc828587136e7b5efc716a300f4ed16bc11dcbd765c6aeba3c653bc88e20329d513314151e40dcbdaec238680ddc59b28cc27609ef0551caa9040ac5b7d7003d8eafcc62dc31e1ed2076eb460bbd15aee3f034ecb75143201541895366b149403ee16ada32f4ddeeedea2141ff97eeb055ec7c9cb3afe5b17f21e35cf32faf69d0374abef9d4e68fd61060733fd6eeca0be5a01e27e1cd028f7647b1e44a8da133103336912ad6c6e481283c46a6e527a051a545f419620985786cf405cb373fa92a603b9636f63791491650135d1cf0c3505c1c99a95e7261f4a28df9dbc245a95f4a903d95c99efca363a5bc5836c8900d3b0e8d063cef7b38c893a5dc462773eeaa1f10389f7cbeec55743e8501e621570764a27a4f0d9e910c9226010a401142e4853f003e5e96fa42da9a45658f9b4f121beaff6087de55ec3f0cde98821edaf25a31427039e697fd7224343bba005121472a685569c1f30b2a5923d9db474c57c187b4e52039ed9e289c04626507ebb87715e7cd56d4a7168d887a83d407519fb9840ff6e9c0310b2d8b519274c5f8c71a7b271b22d2e62091bd5928987de56538e2b1aba004903f5e31ee70db3856723133964f29d2c6ea2c5629f741fcfe7f1fc3029bc65cce603b0e6cbc9ab961ad4bb1299f359953d6e2d1615d967ea70479f82be0618b3c3c4034f2d01362ff8e0449baa020a037f49b6b62d994c364f190493cf746fa1128ec60343b39ff0e0dcb1bf4340a525fcf5335f1904f93f08334f88f8f93d3d745424cd03f85fee76c3b8f199af684c1d7eb6514e3a5b3ce351accdbd1a8e47122a05f74b03ec290d5c793a57b646a1dbba2c917ff8223afb8d421ebf07eb2f347e5da4a61505581e03fad8e4914a6c6d779d699e0df3ce61ea2519b29b0884fdddd4178697d0040105581e03b4534b5125930bba52386e79ebcacc6796760a806d77dc1df72d3b46000c024629beed31f80005581e03c25d2098dbf1e2e143be91cde0dd6883b93c7d9858e0971528d3928990040105581e03f22efa8224fd9ee57fc7f45ef63505a8a3d8cd781f4f13a740df6158a00c0145e8d4a5100005581e0371dba93da2c09048769554d7fb5e1f0d4464ec1b4edf0c85db1b339ee0040105581e03152190494a284c00ad4c1cc2609566e226dc1ae953848fa735c3b1b560040203012f3423f273e2b6a1f2fd3f1fa8038849abb71c9312ccb6eb50cdda2e8e564905581e03ea74af7a5e51248d1da3ffb7493f6bd6448dc9fe51d35e2d0136a8b070040105581e03e3014cb2d5ee49eb3065e1ae271ebfd7721dee54a157577e13d067f0c00c19a74a48180f8da7b113b9bc02197f07032242f27312b7b5a58e4ddcb20ac0510cf4d8f86e47c9e6a86805bf34f43dd4dd036de8f3efb90cbec0d6135e3b5d2758b68193e6219a4b1bc998d23ee458a1acfc0367ce456848d8e08ad5e08f04f1292bf5aee90ac373ab1095053796edb860f469030a14ea9b5144536f21316ea66ccfad8de31cdf94c6cf971371fe1727ec31e9b4030f91c7e44a489b43fe4d2ef0319c1c37fbcd650c4a9b2295033b955f8cfa9af703736b4b5957a9bc52a6741cc996e4dc55d31746e0d8e8d4922d4e34cbd0135ab103bc24e93dfbe0fda705d995cbdf4791f288f4bd1ce9e9b85da755cd1a144031f00219ffff0318bfb57f516b0da9117de6f07690c0dc8c37af2713e01b5668430d6defc0bdec03f95cb33ae8e20516f2764c5badb74b8c400dc7bac7888cc14f22706a4729faa90324fe7ff0f5cfa580ebd8e1e39a0c3b3302d88dce18f5505a962db8e543b72524036c4322cc7d2b827cb22cf717bf2d0344bdb5156100146438926302a71a76bc26035c10776c2edc224c5ad4000126d1618d7c83ef2d0c8002912f2444b2575003c20324e894348c06f49be4c151f020aac1de2e84607a2c8072aaaf7e0637211db7f20219ffff0219ffff03b436ea38034bba10387065172ce751abd9dd448ac20eeaae7afbad66cab9a58a033c74418d2003f55552577991d795a68aa98cd03cc40c5d867303f3057432f9f003e6dc3473b120980746ce6f193a8a54bb2f7200f6bb7c8af42d64fa8b177e4ce80387bbbf42344d61fe2d4369cf6b63e3afb5c0825d3b2639f2e41c538c238445e0035a1217a93630f4cb871cd6bf9bc7f88b07f3ce61f27bffe1392dfc84c4a5980b03d15d3b1beba6da5863cf4360ca2fe4e9d1d76a89f3b905bf0efd724b97eec12503356b273de0392b191229f73f090db393bb6b178d24cf50e7186bac28c974fd9103eebec8f3f79a066f47e4aaa180293766670bd9c106567a7a17e1241129918e3403e0eb0555bb2b2c157c9b417a73184f7c1f30e415afa2c6980fa7fdbf31c3e2e703bb11ed8403f82422d2526c8db534092ac8c8379d9229f433a18070fbff978bf8035e8bf1485897578fad762c1b87761bac2022d2e9f07856794f88f982e318303a03d71366661b00cf8c13225d786fcab8d7f2a2edfca8c06bd4771a71e44dbda302031609852d61be3d808882bb26b5f9f422feadc1c26f67137ca154e6cb4affff570302100fc3a774103194a8abff51e4f6adaa6925fdef988ec32f58d6eb9daa008f03c76fc0dbacaad26d4aef5bc38365ba17d92733b7e031ed097aefe345f69c245d03498fc5c7e05a5e15e855fa5b1bcfbe9a89f4d1dc5cd1a43116bf583de35845a603340febcc364425ef19302c73ee8c8b7f791722d5fb06e5e9157b9f0eb2256e4b033f389f005fc9ad3a372a61f8484a58772f14360b342575a50fd4623b4de2391903c02ffc7cc2da00c5b10138fe505bf757c95251409ed9bbae65257aa6393745fd03d8fb7722e241a79cd54cc7923baf509eb1d176325134085fb87851aaf0a5340503601bf162a5aded4c8eb522dc50d1b56dee23b129039a36971770f87e018a694403f56776f4b5ad5b7f6a47cc531371032ebb669606d89f93717527d191baedbfcb033d82799a3d215b0f1115af49bedbcc2db032b2892a52c2685120510d7249b60c0309ddfe55e8ce8a28accb81e46b0c274f3ca5bbd077c22986836114efb6f37b5a031f8f2ffe255284657af3b5196ba7bae1d74bbb82ac98f120ac01d2b5e8af926a035a0a46403ca2277458bbd53969aca727cb5ee31f8fcc2f0b81cb747b81a5784d0385892f5046863db56f3eccdb483a9e57225cbe83238465e2d85392360244c69e038051195e2c114fe4ff3a14042772edc17d07453287efc474f0401091760596eb03fe453b37dbbfb8755ec21debf8d6d0efe58819ed6981887f1b0db1008eb43e1103080bfbd872f66deba448a190863d6364b5dd8e91c77c0e57640e6c8dcbd1f2dc0367578c8df0d2e5d0a77ee9c23fd616dbbe69d5aa826949c8b45e69957b9c0447030bf071acf0f5422656bcec3162fdd2fab40b2e628051589e397c67484669dfce033e689fcd208e95be0b9fcde64a031578dd4f715d5de929957a26a6a1e53db300034297677f68f61bedcc0a97fe28bbe1a1ae3a44868d9a93e5a6c49d296331b35803a41fbb49e0908869c880625885ad4e86611fb74402df9164955ef31ad639c46c03c3d6134906a00691b83b54e3b9fa9c4f864b61793633d52f55d27d697359167703edb6cc0875199aefb8ad2220e448bf2a8780c43618844f626e85a8f9517681b2039011df6b6882128d32190c29990e5d5db6ab0ec625ab5fff64df8d1857ba434403852d061f7696dee462f11feadb3129f7c85a52c2354ba0fbdd48678bada82dc40335810db24ceb31609b83309d8f8a58a0dedd934a2a43dd02e3c44809a901e627036892ab6e903d46049666948d8b2dfe52ee9b155458fd993095de34f9e10974da05581e03556ac72f3460b7b3a55b1274de7f80864b31503e6e3e1f3b704700203007011bffffffffffffffff05581e03eb1bb62c973927e318572d23cae7cd0cedf44597dba034642df1e3bde0040205581e03c0528528f74c064c1500d9b903f59ffb77baa5b156c136e2043ca9d770040305581e0350b845033fcd5b0fbc3b4010a1f87098c999d1f9d6fa5e71a32a44a9600c01460746a528800003e86526196f4fa1440501da66ec8c6a53b4a626a05d2affd3a8f182e4065483ad0381cfa87b0c714362f379a9fc0ddcec445988ee2f595e7270f24296db97cefc9105581d02c661814d51f7e6d66fe5fec90282991e38271a041af011e595ccb834040305581d02b0a401b5f75b3963fd16fc702bc81f55e39d89f5cddd92ff1d5eec630c0e47063141d2b6cdbb021941000219e2e10349bd15b2874161e63f99b1d1c3efdaac98c068dbe4ce8b9637144c7ee0d2a02a034bc521880e546e5fe90d531d41d20e9b9bbcc6cf9569bbeb352a33c2f406870203ab01b929a8d01ababce6d3115326640f46886a19103570cce1d8285f89173e9c038f530599c0c1485326bcdeff2c66bd774eedcced56f4c42dea7f53372bbdaef803be6ade22f39643a299ceab1977850de1c09f4a27798de86416df0cd3b8f86dc503344e504aea3be71854399e3ea3b08bf3a3051f4419f4ff6362b113bf2a0571550219ffff039d772fc9a750577383744c4f44dc4a26b18ad83177f19c343133cd833f6657fa037f5055e2cfe63b100a8efd1e06ad20b88df7a60f61a0530cc938eae9d9bffb4e033d6bfd1511e312ea8dc7fd7bf63393a7d679d4b97c9188e3d961a55fad7ed5ea0219ffff03810e34f918a4274ff8a07d502654d7dfb8702b81339c2f1c275993eba4f360360385068e9da7fe0af9aba9589b04c05596b459f1f6533da89fc7f8c9378be366e50363dcb9268975eb280e96c686f033821ece8c97a5e76867b45472a35dde636e5f0376a8bb4867d728f469189941e6ab302b038ebf2210632a41ad7cf9c1a3ec0921038aee18f13a6dd5b4532de5d624fafc1864b4f5e9cd4d5d3161acbccd9162d39d0219ffff03e8768b70802abe177518e813635e1298044459f67188d2c9cfbd187297f1b0c903aa305c2e07aa687b1f1f7c126b199f9f91356cda34f9a63dae58987ca1863dfd03ead81ba4d865f823b848053ddcb69edff153400b69dd4976ab15d0c6080e8f1e038328fc197ed82b802957980e2e307a073d4461317b6109435b6d52c0eaeaeb0b03a2b5f83b9fa401836ac0b814e61d8b458facdf799072b8fd79a26d4fe7744a210219ffff039707f03c56818da080eb3faaa395f9b4137f6923db4a996cce2bab36b56117e9033179bfd74c0e7248f09572782e40769dfe68a807a35980895d1a3a18716c4f050374c056be1d954ee6bac10efa911a5e4bae87958cabbd0064f3d01c513a180c9b036f519be5bf68ad1be69ee20ddcee72dc058a5aeecd1352831729c3a3045efd330327060709928de988d1d4ebe3d29692b466f0ef120078edbce7990d7dae3bbee503b090645ea830b46a237462a45cc4d3e6e9c39d5024075fe85a5c98a06be2202f03b4ed8fe1b2b3286ea55c48664e0d1bbe6c438a3adc454b96ec1e1d278789a19e03f985aaf0e9378bd1448a418512b1f877d2852bbc75e71acd188eeb7ff9292b0803d63595402808d17135833018164266c53319266c945b53d20e7b3766424974b3038c1c7cfce1bdce26547750a88de0d1ae2f4a19fab1e924cbaf62033670d742cb03780b1a5b64d632c04af26bea59b69fe9e14770c9d54986dd4eeaa7bd790dc6a103eeca891f953c778586184f75b4ed227afbc87517d2cfac620b90d3b7d6815abf036e2d0bf8dc6e674c0591c720eb9f2f38f77fa3a356bc0df6c8616dbe91eafb87032f954665c63fa1f176e9761e51070de59bf20347f5f5cf30665d3921ea50e45503c6035d07493d2c76485c6ddbe0167e4bb82b90270a4305ce2a5085ef9c1ef88e03ec781d7a2f1f305c5b21e32fdd5016e42aa4b361855cf803416f5aae057e975f03909646b313b078a40086a6414a4c3cd9b4594d3544d160df9572f8c580c8f70c03755ceac27a6c81ee7b10f41cfe33ffd31b6bc34cba389f6df23e5569fbb90c1403ec5e98e14dfbc90eb46fd51562e6b148ac5ded713c0a94f730e5787d54f252950326a8b434661dd7f751a0106d730678ce3805fa572295336eb8ae3c0f952eeb050317b4c10d2ba669947a31a3deb5c328775561fa60515495d3b12f04788fb483a703faf9d803ab56773756298c25904854f89a5ba23851798b8536f50ecedd04587303ec3e90542f1b2073ac50ad0a0416650c44ed8a597291670fbcb9242ed21c6d99033411ffbdb84e6d4e59f2a7df103f50408914066c73f3f6f53632c27635eca204035e1482193dcc977cf58e7108ce2b32587dc42ea8ec379fe7172ec7f74da5442403622483e9dfe82dfc1d4a81adb651ec6deaa031dba8ad452643fd6ddc4b369fdf03776d40cebe5359b85f62f9170889a8aa9a516ef5342b8d6323f0420b40483d0003900ee424e0ffba5f1f83ef94b59592b63fc7393635d57de49b81a3c64d5896440384545919f1d8aa7dd6f919584d3c8cb85ff96b43ce464d71ce1d998340a226fa05581e039e91f3985aa9356f17b1269ffbea7276bc875c1f87632a88b1df07ee300c0147277af8187b7cfc05581e03df83fcf7887910a3fa90b9b14c8650855296c438aca012151c87b173f0040105581e03f1b426288cac2eb41e81d7068c9b47936f232505ab58f39977656f365008480320db8cffada80005581e0315bae696893ace6979b9463b8af411e9e7ee73c6e6a773ccaa74ba26d00c18224758e3312d5514d803702d223c6e51ac63ff8ad1620c65e768a79f24c12c9e82a52b20776e7ca189f205581e03c7bd9bef4670c155a21164dbbf8528317624038383c62aaadf8687efe00c014609184e72a000031271f1a3c827e8250ce21f4c5501d4b57e4c30e3a914445a92447b9aed8a04a705581d025a3c668361a652c79f070961fac3e9dd7eed911a6d6eca2b37de71a704020459462660a0604081815260049081361015610022575b505050361561002057600080fd5b005b600092833560e01c90816301ffc9a71461093d57508063150b7a02146108af57806324856bc3146107e85780633593564c146106b1578063709a1cc21461044f578063bc197c811461038a578063f23a6e61146102f95763fa461e330361001257346102f55760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102f557813590602435926044359067ffffffffffffffff918281116102f1576100db9036908301610a97565b919092878613908115806102e7575b6102bf5783850186868203126102bb5785359182116102bb5761010e9186016136d0565b5060208401359373ffffffffffffffffffffffffffffffffffffffff938486168096036102bb5761013e9161415a565b959097602b89106102935786359260178460601c98019561016d62ffffff883560601c9660481c16868b614365565b3391160361026b571561026157508186105b15610197575050505061019493503391613ac2565b80f35b9395945091929091906042871061021b5750505083601711610217577f8000000000000000000000000000000000000000000000000000000000000000821015610217577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe961021194019161020c33916141b5565b6141e2565b50505080f35b8480fd5b91969550929391508454841161023957506101949394503391613ac2565b8590517f739dbe52000000000000000000000000000000000000000000000000000000008152fd5b965085821061017f565b8483517f32b13d91000000000000000000000000000000000000000000000000000000008152fd5b8382517f3b99b53d000000000000000000000000000000000000000000000000000000008152fd5b8980fd5b8286517f316cf0eb000000000000000000000000000000000000000000000000000000008152fd5b50888813156100ea565b8680fd5b8280fd5b5082346103875760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261038757610332610a2b565b5061033b610a53565b506084359067ffffffffffffffff8211610387575060209261035f91369101610a97565b5050517ff23a6e61000000000000000000000000000000000000000000000000000000008152f35b80fd5b5082346103875760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610387576103c3610a2b565b506103cc610a53565b5067ffffffffffffffff9060443582811161044b576103ee9036908601610ac5565b505060643582811161044b576104079036908601610ac5565b5050608435918211610387575060209261042391369101610a97565b5050517fbc197c81000000000000000000000000000000000000000000000000000000008152f35b5080fd5b50346102f557602090817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106ad5783833567ffffffffffffffff811161044b576104a1829136908701610a97565b90818551928392833781018381520390827f0000000000000000000000000554f068365ed43dcc98dcd7fd7a8208a5638c725af16104dd613675565b50156106855780517f70a082310000000000000000000000000000000000000000000000000000000081523084820152907f000000000000000000000000f4d2888d29d722226fafa5d9b24f9164c092421e73ffffffffffffffffffffffffffffffffffffffff168383602481845afa92831561067b578693610646575b5081517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ea37093ce161f090e443f304e1bf3a8f14d7bb40169581019586526020860184905294849186918290899082906040015b03925af193841561063c577f1e8f03f716bc104bf7d728131967a0c771e85ab54d09c1e2d6ed9e0bc4e2a16c9461060f575b5051908152a180f35b61062e90843d8611610635575b61062681836135fa565b81019061388d565b5038610606565b503d61061c565b81513d87823e3d90fd5b9092508381813d8311610674575b61065e81836135fa565b810103126106705751916105d461055b565b8580fd5b503d610654565b82513d88823e3d90fd5b9050517f7d529919000000000000000000000000000000000000000000000000000000008152fd5b8380fd5b5060607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102f55767ffffffffffffffff8235818111610217576106fb9036908501610a97565b91602435908111610670576107139036908601610ac5565b92909160443542116107c0573330146107b1576001958654958773ffffffffffffffffffffffffffffffffffffffff88160361078b5750509185949391610782937fffffffffffffffffffffffff00000000000000000000000000000000000000009586339116178755610b54565b81541617905580f35b517f6f5ffb7e000000000000000000000000000000000000000000000000000000008152fd5b90919293506101949450610b54565b8585517f5bf6f916000000000000000000000000000000000000000000000000000000008152fd5b50807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102f55767ffffffffffffffff8235818111610217576108319036908501610a97565b91602435908111610670576108499036908601610ac5565b9290913330146107b1576001958654958773ffffffffffffffffffffffffffffffffffffffff88160361078b5750509185949391610782937fffffffffffffffffffffffff00000000000000000000000000000000000000009586339116178755610b54565b5082346103875760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610387576108e8610a2b565b506108f1610a53565b506064359067ffffffffffffffff8211610387575060209261091591369101610a97565b5050517f150b7a02000000000000000000000000000000000000000000000000000000008152f35b849084346102f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102f557357fffffffff0000000000000000000000000000000000000000000000000000000081168091036102f557602092507f4e2312e0000000000000000000000000000000000000000000000000000000008114908115610a01575b81156109d7575b5015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014836109d0565b7f150b7a0200000000000000000000000000000000000000000000000000000000811491506109c9565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610a4e57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610a4e57565b359073ffffffffffffffffffffffffffffffffffffffff82168203610a4e57565b9181601f84011215610a4e5782359167ffffffffffffffff8311610a4e5760208381860195010111610a4e57565b9181601f84011215610a4e5782359167ffffffffffffffff8311610a4e576020808501948460051b010111610a4e57565b919082519283825260005b848110610b405750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b602081830181015184830182015201610b01565b9192909260805282810361350d5791906000905b828210610b755750505050565b8382959394951015611b4c5760059282841b60805101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe19182608051360301821215610a4e578160805101359767ffffffffffffffff8911610a4e576020836080510101988036038a13610a4e57606097603f90818989013560f81c166001976020821060001461317157506010808210156127b4575060088082101561187e57508061109157505050610c2a908a614198565b92909860a08560805101013560001461108757610c6173ffffffffffffffffffffffffffffffffffffffff600154169b5b35613854565b9960408660805101013585829d927f80000000000000000000000000000000000000000000000000000000000000008314610fcf575b50959c95505b7f8000000000000000000000000000000000000000000000000000000000000000811015610a4e5760428610610fc85730915b86602b11610a4e578d91601783013560601c9083359462ffffff8660601c96610d1573ffffffffffffffffffffffffffffffffffffffff92839260481c16868a614365565b169084881015610fac57806401000276a4965b602b60405199604060208c01528160608c015260808b0137600060ab8a015216604088015260a0875260c087019587871067ffffffffffffffff881117610f7d576040948288958688527f128acb080000000000000000000000000000000000000000000000000000000087521660c48a0152868a1060e48a01526101048901521661012487015260a06101448701528160007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4088610deb610164820182610af6565b0301925af1928315610f71576000928394610f2f575b5050610e159310600014610f2857506141b5565b9a60428510610e5657309085601711610a4e5760177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe991019501949b610c9d565b50985098606091969597949392509160805101013511610efe575b1580610ed1575b610e8a57506001019291929092610b68565b90610ecd60409283519384937f2c4029e9000000000000000000000000000000000000000000000000000000008552600485015260248401526044830190610af6565b0390fd5b507f8000000000000000000000000000000000000000000000000000000000000000828501351615610e78565b60046040517f39d35496000000000000000000000000000000000000000000000000000000008152fd5b90506141b5565b91929093506040843d604011610f69575b81610f4d604093866135fa565b8101031261038757505160e092909201519190610e1538610e01565b3d9150610f40565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8073fffd8963efd1fc6a506488495d951d5263988d2596610d28565b8b91610cd0565b60149192501061105d576020602491604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301523560601c5afa908115610f715760009161102b575b503880610c97565b906020823d602011611055575b81611045602093836135fa565b8101031261038757505138611023565b3d9150611038565b60046040517f3b99b53d000000000000000000000000000000000000000000000000000000008152fd5b610c61309b610c5b565b6001819d969d9b989794959a999b146000146111b7575050506040926110bf84836080510101359382614198565b608051840160a00135156111ab5760606110f273ffffffffffffffffffffffffffffffffffffffff600154169435613854565b946080510101356000557f8000000000000000000000000000000000000000000000000000000000000000851015610a4e576111319361020c866141b5565b9091901561119c5750611143906141b5565b0361117357507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000555b610e71565b600490517fd4e0248e000000000000000000000000000000000000000000000000000000008152fd5b6111a691506141b5565b611143565b60606110f23094610c5b565b9194929391600281036112065750505061116e925073ffffffffffffffffffffffffffffffffffffffff600154166111ff604060608560805101013594608051010135613854565b91356139d0565b9193916003810361157857505060805181018084019390604090850312610a4e57823567ffffffffffffffff8111610a4e5782608051010192606084860312610a4e57604051946060860186811067ffffffffffffffff821117610f7d57604052602085013567ffffffffffffffff8111610a4e57850160208201809882011215610a4e5760208101359061129a826136a5565b926112a860405194856135fa565b8284526040602085019360071b830101918a8311610a4e57604001925b828410611513575050505085526112de60408501610a76565b956020860196875260606040870195013585526040846080510101359067ffffffffffffffff8211610a4e57602061131f92611325966080510101016136d0565b5061417b565b909173ffffffffffffffffffffffffffffffffffffffff600154169473ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3163b15610a4e5794929391906040519586947f2a2d80d100000000000000000000000000000000000000000000000000000000865260048601526060602486015260c48501935193606060648701528451809152602060e487019501906000905b80821061149a575050509461143e9285949273ffffffffffffffffffffffffffffffffffffffff600098511660848701525160a48601527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc858403016044860152613537565b03818373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3165af18015610f715761148b575b50610e71565b61149490613576565b38611485565b9197965091929394602060806001928a5173ffffffffffffffffffffffffffffffffffffffff815116825273ffffffffffffffffffffffffffffffffffffffff848201511684830152606065ffffffffffff918260408201511660408501520151166060820152019801920188969795949392916113d8565b608060208584030112610a4e5760206080916040516115318161358a565b61153a87610a76565b8152611547838801610a76565b83820152611557604088016136bd565b6040820152611568606088016136bd565b60608201528152019301926112c5565b600495509193508482036116e757505090916040606061159e8286608051010135613854565b608051909501013573ffffffffffffffffffffffffffffffffffffffff908116933516806116145750479283106115ee575050806115de575b5050610e71565b6115e7916144d1565b38806115d7565b517f6a12f104000000000000000000000000000000000000000000000000000000008152fd5b9391908051937f70a082310000000000000000000000000000000000000000000000000000000085523083860152602085602481895afa9485156116dc576000956116a8575b50841061168257505081611671575b505050610e71565b61167a9261453f565b388080611669565b517f675cae38000000000000000000000000000000000000000000000000000000008152fd5b90946020823d6020116116d4575b816116c3602093836135fa565b81010312610387575051933861165a565b3d91506116b6565b82513d6000823e3d90fd5b8103611714575061116e925061170d604060608460805101013593608051010135613854565b90356138a5565b9091906006810361184e57506080510160608101359060409061173990820135613854565b9282158015611843575b61181b573573ffffffffffffffffffffffffffffffffffffffff16938461177f57505061116e92506117786127109147613984565b04906144d1565b8151907f70a082310000000000000000000000000000000000000000000000000000000082523090820152602081602481885afa91821561181157506000916117dd575b506117d661116e94939261271092613984565b049161453f565b906020823d602011611809575b816117f7602093836135fa565b810103126103875750516117d66117c3565b3d91506117ea565b513d6000823e3d90fd5b8482517fdeaa01e6000000000000000000000000000000000000000000000000000000008152fd5b506127108311611743565b83602491604051917fd76a1e9e000000000000000000000000000000000000000000000000000000008352820152fd5b819d969d9b989794959a999b93929314600014611b85575050506040916118ad83836080510101359185614198565b92909460a082608051010135600014611b7b576118e373ffffffffffffffffffffffffffffffffffffffff600154169135613854565b908615611b4c576118f385613a94565b8760011015611b4c5761191561195d9161190f60208901613a94565b90613c34565b907f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f613b2c565b938481611b32575b5050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860193868511611b03576119b9946119be73ffffffffffffffffffffffffffffffffffffffff9687928a85613a84565b613a94565b16948651947f70a082310000000000000000000000000000000000000000000000000000000091828752841693600499858b89015260249460208987818d5afa988915611af857600099611ac3575b509160209695949391611a1f93613cad565b8751968793849283528a8301525afa928315611ab857600093611a83575b50906060611a519260805101013592613ab5565b10611a5d575050610e71565b517f849eaf98000000000000000000000000000000000000000000000000000000008152fd5b90926020823d602011611ab0575b81611a9e602093836135fa565b81010312610387575051916060611a3d565b3d9150611a91565b84513d6000823e3d90fd5b90986020823d602011611af0575b81611ade602093836135fa565b81010312610387575051976020611a0d565b3d9150611ad1565b8b513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b611b4492611b3f88613a94565b613ac2565b388084611965565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6118e33091610c5b565b919492939160098103611f66575050611b9e9082614198565b608051840160a0013515611f5c57611bcf73ffffffffffffffffffffffffffffffffffffffff600154169335613854565b92611bd9836136a5565b95611be760405197886135fa565b83875283901b820160208701368211610a4e5783905b828210611f44575050506000946002875110611f1a576040816080510101359680517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908111611b035790815b611ca757505060805101606001358611611c7d578215611b4c5761116e9585611c7892611b3f85613a94565b613cad565b60046040517f8ab0bc16000000000000000000000000000000000000000000000000000000008152fd5b90977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff89019750888811611b035773ffffffffffffffffffffffffffffffffffffffff611cf7611d6d9984613a70565b5116611d2373ffffffffffffffffffffffffffffffffffffffff611d1b8c86613a70565b511682613c34565b819a917f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f613b2c565b90604051907f0902f1ac00000000000000000000000000000000000000000000000000000000825260608260048173ffffffffffffffffffffffffffffffffffffffff87165afa9a8b15610f7157600092839c611ed1575b5073ffffffffffffffffffffffffffffffffffffffff1603611eb7576dffffffffffffffffffffffffffff8091169916905b9880158015611eaf575b611e855782611e0f91613984565b916103e892838102938185041490151715611b0357611e2d91613ab5565b6103e590818102918183041490151715611b0357611e4a91613997565b60018101809111611b0357978015611b03577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019081611c4c565b60046040517f7b9c8916000000000000000000000000000000000000000000000000000000008152fd5b508115611e01565b6dffffffffffffffffffffffffffff998a16991690611df7565b611f0a919c5073ffffffffffffffffffffffffffffffffffffffff935060603d8111611f13575b611f0281836135fa565b810190613c77565b509b9092611dc5565b503d611ef8565b60046040517f20db8267000000000000000000000000000000000000000000000000000000008152fd5b60208091611f5184610a76565b815201910190611bfd565b611bcf3093610c5b565b92945091600a81036120cc5750608051830160e08101358101946020808701359450909291611f9991908703018461414d565b1161105d5773ffffffffffffffffffffffffffffffffffffffff93847f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba31692856001541691843b15610a4e5760409587875198899687967f2b67b570000000000000000000000000000000000000000000000000000000008852600488015261202190610a76565b166024860152808883608051010161203890610a76565b16604486015265ffffffffffff808360805101606001612057906136bd565b166064870152826080510160800161206e906136bd565b166084860152816080510160a00161208590610a76565b1660a48501526080510160c0013560c484015261010060e48401526120b1916101048401918701613537565b03815a6000948591f1908115611811575061148b5750610e71565b600b8103612296575050506120eb604080926080510101359235613854565b91807f80000000000000000000000000000000000000000000000000000000000000008103612266575050475b8061212557505050610e71565b73ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216803b15610a4e578351927fd0e30db0000000000000000000000000000000000000000000000000000000008452600493600081868187875af1801561225b5761224c575b5030908616036121b4575b5050611669565b6122139460006020948651978895869485937fa9059cbb00000000000000000000000000000000000000000000000000000000855284016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03925af1908115611811575061222d575b808080806121ad565b6122459060203d6020116106355761062681836135fa565b5038612224565b61225590613576565b386121a2565b86513d6000823e3d90fd5b47101561211857600482517f6a12f104000000000000000000000000000000000000000000000000000000008152fd5b600c810361242657505050906122ac9035613854565b9073ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21660408051937f70a08231000000000000000000000000000000000000000000000000000000008552600430818701526024916020878481885afa968715611ab8576000976123f2575b506080510183013586106123cb578561234e575b50505050505050610e71565b833b15610a4e57600091869183855196879485937f2e1a7d4d0000000000000000000000000000000000000000000000000000000085528401525af190811561181157506123bc575b5030908316036123ac575b8080808080612342565b6123b5916144d1565b38806123a2565b6123c590613576565b38612397565b82517f6a12f104000000000000000000000000000000000000000000000000000000008152fd5b90966020823d60201161241e575b8161240d602093836135fa565b81010312610387575051958361232e565b3d9150612400565b600d8103612681575082608051010191602083019360208260805101850312610a4e573567ffffffffffffffff8111610a4e57849160805101019182011215610a4e57602081013590612478826136a5565b93604093612488855196876135fa565b838652602086019285849560071b820101928311610a4e578501925b82841061261f575050505073ffffffffffffffffffffffffffffffffffffffff90816001541684519060005b8281106125b357505050817f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba31691823b15610a4e5783517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201529451602486018190528592604484019290916000915b81831061256f57505050509181600081819503925af1908115611811575061148b5750610e71565b91938395506080602091846060600195975182815116845282868201511686850152828d820151168d85015201511660608201520195019301909187949392612547565b81856125bf838a613a70565b515116036125f6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611b03576001016124d0565b600486517fe7002877000000000000000000000000000000000000000000000000000000008152fd5b608060208584030112610a4e576020608091875161263c8161358a565b61264587610a76565b8152612652838801610a76565b83820152612661898801610a76565b8982015261267160608801610a76565b60608201528152019301926124a4565b9294505050600e810361278357506040918251907f70a0823100000000000000000000000000000000000000000000000000000000825260208260248173ffffffffffffffffffffffffffffffffffffffff806004983516888301528886608051010135165afa918215611ab85760009261274e575b5060805101606001351180159290612710575050610e71565b517fa3281672000000000000000000000000000000000000000000000000000000006020820152908152909150612746816135c2565b9038806115d7565b90916020823d60201161277b575b81612769602093836135fa565b810103126103875750519060606126f7565b3d915061275c565b602490604051907fd76a1e9e0000000000000000000000000000000000000000000000000000000082526004820152fd5b9150915060189b95939897999692949b808310600014612d435750810361282a5750505060009250906127e883928261417b565b81604051928392833781018481520391357f00000000000000000000000000000000000000adc04c56bf30ac9d3c0aaf14dc5af1612824613675565b90610e71565b6011810361288157505050600092509061284583928261417b565b81604051928392833781018481520391357f0000000000000000000000000000000000e655fae4d56241588680f86e3b23775af1612824613675565b601281036128d857505050600092509061289c83928261417b565b81604051928392833781018481520391357f000000000000000000000000941a6d105802cccaa06de58a13a6f49ebdcd481c5af1612824613675565b919392509060138103612a3e575050909150357f000000000000000000000000b47e3cd837ddf8e4c57f05d70ab865de6e193bbb916040600080825160208101907f8264fe9800000000000000000000000000000000000000000000000000000000825260248781830152815261294e816135de565b5190606086608051010135885af192612965613675565b948415612a04578273ffffffffffffffffffffffffffffffffffffffff612993921694608051010135613854565b90833b15610a4e5782517f8b72a2ec00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9290921660048301526024820152916000908390604490829084905af1908115611811575061148b5750610e71565b505091925050517fae9bdf0000000000000000000000000000000000000000000000000000000000602082015260048152612824816135c2565b60158103612b4f57505090604091828051917f6352211e0000000000000000000000000000000000000000000000000000000083526020836024816004976060816080510101358983015273ffffffffffffffffffffffffffffffffffffffff968791608051010135165afa928315612b4457600093612b05575b5081903516911614918215612acf575050610e71565b517f7dbe7e89000000000000000000000000000000000000000000000000000000006020820152908152909150612746816135c2565b6020939193813d602011612b3c575b81612b21602093836135fa565b8101031261044b575190828216820361038757509181612ab9565b3d9150612b14565b85513d6000823e3d90fd5b60168103612c765750506040918251907efdd58e00000000000000000000000000000000000000000000000000000000825260208280612bc160049660608660805101013590358884016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b038173ffffffffffffffffffffffffffffffffffffffff8886608051010135165afa918215611ab857600092612c41575b5060809081510101351191821592612c0b575050610e71565b517f483a6929000000000000000000000000000000000000000000000000000000006020820152908152909150612746816135c2565b90916020823d602011612c6e575b81612c5c602093836135fa565b81010312610387575051906080612bf2565b3d9150612c4f565b909290601714612c87575050610e71565b60409073ffffffffffffffffffffffffffffffffffffffff612caf8383608051010135613854565b93351692833b15610a4e5782517f42842e0e00000000000000000000000000000000000000000000000000000000815260805130600483015273ffffffffffffffffffffffffffffffffffffffff909216602482015291016060013560448201529160009083908183816064810103925af19081156118115750612d34575b806115d7565b612d3d90613576565b38612d2e565b9396938214159050612d7e5750505061282492507f00000000000000000000000074312363e45dcaba76c59ec49a7aa8a65a67eed391613717565b60198103612dd5575050506000925090612d9983928261417b565b81604051928392833781018481520391357f0000000000000000000000002b2e8cda09bba9660dca5cb6233787738ad683295af1612824613675565b601a8103612e2c575050506000925090612df083928261417b565b81604051928392833781018481520391357f000000000000000000000000a42f6cada809bcf417deefbdd69c5c5a909249c05af1612824613675565b601b8103612f53575050506000612e4481928461417b565b9390604094818651928392833781018481520391357f00000000000000000000000074312363e45dcaba76c59ec49a7aa8a65a67eed35af1918291612e87613675565b92612e95575b505090610e71565b73ffffffffffffffffffffffffffffffffffffffff608083815101013516612ec4606084608051010135613854565b90825190612ed1826135a6565b60008252803b15610a4e57612f2d94600080948651978895869485937ff242432a00000000000000000000000000000000000000000000000000000000855260a060c0836080510101359260805101013590306004870161380f565b03925af19081156118115750612f44575b80612e8d565b612f4d90613576565b38612f3e565b91949091601c8103612f8e5750505061282492507f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f91613717565b9193929091601d81036131175750506060816080510101359060409173ffffffffffffffffffffffffffffffffffffffff612fcf8484608051010135613854565b9435168351947efdd58e0000000000000000000000000000000000000000000000000000000086526004936020878061302e87308a84016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b0381865afa96871561225b576000976130e2575b50608090815101013586106130ba57845161305c816135a6565b60008152823b15610a4e576000946130a486928851998a97889687957ff242432a0000000000000000000000000000000000000000000000000000000087523090870161380f565b03925af1908115611811575061148b5750610e71565b8385517f675cae38000000000000000000000000000000000000000000000000000000008152fd5b90966020823d60201161310f575b816130fd602093836135fa565b81010312610387575051956080613042565b3d91506130f0565b929450925050601e810361278357508161313560009392849361417b565b81604051928392833781018481520391357f00000000000000000000000020f780a973856b93f63670377900c1d2a50a77c45af1612824613675565b9499989a92506020819d9792969d989498146000146131da575050505050508061319e600093849361417b565b81604051928392833781018481520391357f00000000000000000000000000000000000001ad428e4906ae43d8f9852d0dd65af1612824613675565b602190808203613351575050505090916131ff6131f7868661415a565b96909561417b565b929061324160409788519760208901997f24856bc3000000000000000000000000000000000000000000000000000000008b5260248a01526064890191613537565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc878203016044880152818152602082818301951b82010195856000915b8483106132d357505050505050505091816132c5600094938594037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826135fa565b519082305af1612824613675565b90919293949596977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe085820301885288358284360301811215610a4e578301906020823592019167ffffffffffffffff8111610a4e578036038313610a4e5761334160209283928b95613537565b9a0198019695949301919061327f565b929750929593509350602281146000146127835750604080936080510101359060009060028310156134e1575050808491156000146134895750506000907f0000000000000000000000001e0049783f008a0085193e00003d00cd54003c71925b6020838251937f095ea7b3000000000000000000000000000000000000000000000000000000008552600496878601526024947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff868201526044968792355af13d15601f3d1187600051141617161561342e5750505050610e71565b91600e7f415050524f56455f4641494c45440000000000000000000000000000000000009260206064969551957f08c379a0000000000000000000000000000000000000000000000000000000008752860152840152820152fd5b036134b8576000907f0000000000000000000000002b2e8cda09bba9660dca5cb6233787738ad68329926133b2565b600482517f5461585f000000000000000000000000000000000000000000000000000000008152fd5b602492507f4e487b71000000000000000000000000000000000000000000000000000000008252600452fd5b60046040517fff633a38000000000000000000000000000000000000000000000000000000008152fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b67ffffffffffffffff8111610f7d57604052565b6080810190811067ffffffffffffffff821117610f7d57604052565b6020810190811067ffffffffffffffff821117610f7d57604052565b6040810190811067ffffffffffffffff821117610f7d57604052565b6060810190811067ffffffffffffffff821117610f7d57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f7d57604052565b67ffffffffffffffff8111610f7d57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d156136a0573d906136868261363b565b9161369460405193846135fa565b82523d6000602084013e565b606090565b67ffffffffffffffff8111610f7d5760051b60200190565b359065ffffffffffff82168203610a4e57565b81601f82011215610a4e578035906136e78261363b565b926136f560405194856135fa565b82845260208383010111610a4e57816000926020809301838601378301015290565b919290613724908361417b565b90938460405195869384378201906000958693838580955203918635905af19261374c613675565b9284613756575050565b73ffffffffffffffffffffffffffffffffffffffff60608201351661377e6040830135613854565b91813b156106ad576040517f42842e0e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff93909316602484015260800135604483015290919081908390606490829084905af190811561380357506137f85750565b61380190613576565b565b604051903d90823e3d90fd5b919261385195949160a09473ffffffffffffffffffffffffffffffffffffffff8092168552166020840152604083015260608201528160808201520190610af6565b90565b73ffffffffffffffffffffffffffffffffffffffff908082166001810361387e5750506001541690565b90915060020361385157503090565b90816020910312610a4e57518015158103610a4e5790565b9092919073ffffffffffffffffffffffffffffffffffffffff16806138cf575061380191926144d1565b7f80000000000000000000000000000000000000000000000000000000000000008214613902575b92613801929361453f565b9050604051927f70a08231000000000000000000000000000000000000000000000000000000008452306004850152602084602481855afa938415610f7157600094613951575b5092906138f7565b6020813d821161397c575b81613969602093836135fa565b8101031261021757519350613801613949565b3d915061395c565b81810292918115918404141715611b0357565b81156139a1570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b919273ffffffffffffffffffffffffffffffffffffffff91827f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba31693843b15610a4e5760009484869281608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af18015610f71576137f85750565b8051821015611b4c5760209160051b010190565b9190811015611b4c5760051b0190565b3573ffffffffffffffffffffffffffffffffffffffff81168103610a4e5790565b91908203918211611b0357565b92919073ffffffffffffffffffffffffffffffffffffffff8082163003613aee575050613801926138a5565b8084959411613b02576138019416926139d0565b60046040517fc4bd89a9000000000000000000000000000000000000000000000000000000008152fd5b9173ffffffffffffffffffffffffffffffffffffffff93613c2d916040519060208201927fffffffffffffffffffffffffffffffffffffffff000000000000000000000000809260601b16845260601b16603482015260288152613b8f816135de565b519020613c01604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826135fa565b5190201690565b73ffffffffffffffffffffffffffffffffffffffff8281169082161015613c585791565b9091565b51906dffffffffffffffffffffffffffff82168203610a4e57565b90816060910312610a4e57613c8b81613c5c565b916040613c9a60208401613c5c565b92015163ffffffff81168103610a4e5790565b9260028210614123578115611b4c57613cc584613a94565b9160019481861015611b4c5791613ce360209461190f868601613a94565b50926000935b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84018510613d1c575050505050505050565b613d2a6119b9868685613a84565b92613d3b6119b98a88018786613a84565b936040908151957f0902f1ac00000000000000000000000000000000000000000000000000000000875273ffffffffffffffffffffffffffffffffffffffff80941694606092600493808a86818b5afa998a1561225b57908d9594939291600091829c6140fd575b50508780916dffffffffffffffffffffffffffff8091169c16921692168214998a6000146140f7575b8651958680947f70a082310000000000000000000000000000000000000000000000000000000082528b8883015260249889915afa9283156140ec578e6000946140bb575b5050808303918115938480156140b3575b61408b57826103e5808602958604149114171561405e57613e439083613984565b926103e880830292830414171561403157613e689291613e629161414d565b90613997565b971561402957600097905b898b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe820181101561401d579161190f6119b9613eb9936002613f039c9601908d613a84565b8198917f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f613b2c565b965b988551918d83019367ffffffffffffffff9484811086821117613ff057885260008452813b15610a4e5760008a93613f8382968b519c8d97889687957f022c0d9f0000000000000000000000000000000000000000000000000000000087528d8701528d860152166044840152608060648401526084830190610af6565b03925af18015611ab857908d969594939291613fa8575b505050505094019391613ce9565b909192938095965011613fc45750505287903880808080613f9a565b6041907f4e487b7100000000000000000000000000000000000000000000000000000000600052526000fd5b876041887f4e487b7100000000000000000000000000000000000000000000000000000000600052526000fd5b5050508b956000613f05565b600090613e73565b856011867f4e487b7100000000000000000000000000000000000000000000000000000000600052526000fd5b866011877f4e487b7100000000000000000000000000000000000000000000000000000000600052526000fd5b8689517f7b9c8916000000000000000000000000000000000000000000000000000000008152fd5b508115613e22565b8181959293953d83116140e5575b6140d381836135fa565b8101031261038757505191388e613e11565b503d6140c9565b87513d6000823e3d90fd5b90613dcc565b899c50899250908161411a92903d10611f1357611f0281836135fa565b509b9091613da3565b60046040517fae52ad0c000000000000000000000000000000000000000000000000000000008152fd5b91908201809211611b0357565b91823583019161417460208435958186019503018561414d565b1161105d57565b91602083013583019161417460208435958186019503018561414d565b91606083013583019161417460208435958186019503018561414d565b7f80000000000000000000000000000000000000000000000000000000000000008114611b035760000390565b939193602b841061105d578462ffffff6000614267946142ee6142999935988960601c9a8b9a61423b601789013560601c9d8e109c73ffffffffffffffffffffffffffffffffffffffff9e8f998a9460481c1691614365565b16968b861461434a576401000276a49a5b60409d8e9b8c93845196879560208701526060860191613537565b91168b830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826135fa565b848851998a98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528c6024870152604486015216606484015260a0608484015260a4830190610af6565b03925af190811561433f576000938492614309575b50509192565b9080949250813d8311614338575b61432181836135fa565b810103126103875750602082519201513880614303565b503d614317565b83513d6000823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259a61424c565b73ffffffffffffffffffffffffffffffffffffffff92838316848316116144c9575b62ffffff90846040519481602087019516855216604085015216606083015260608252608082019082821067ffffffffffffffff831117610f7d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80613c2d9183604052845190209361449c60a08201957fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54907f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98488917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608101845201826135fa565b909190614387565b600080809381935af1156144e157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b60009182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d116001600051141617161561459257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fdfea2646970667358221220b2d6a39827110492aaa15cba3556e23894a51f2f635dc99ae66d21764ad4d90b64736f6c634300081100330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6041010219080405581d02367b74293bb052cf32dbf499b5c69c98fda9beb40172c7513283aa71070119462603eab71320eeef085932d28d44e0baf57b58344eb1e00ad28043fed2773af1d7eb0605581d02fa23563862f322c7e205623469c0b78f515b247fc070b0a8a7a361b207011bffffffffffffffff02192210030c975042158b302d08b687b5ad55407adea0f6c0c8e2ae9027af5f2b66a90e2503db731c607521cbd787386a1fe342cdf1bac891251c300135c9c48e15f96572ae021979ab036f2ee834e1f27ab29334718c1891c1fbf7b4905b5c3c8413a6455bc362071e0703a6e69c4e7f6c01cdbd2a57007b66d03fcc4d915e823bc0128e46df6d003bf27103886f7645e367e56ba68b766987c56dfef14001d37ea052544e5bc80fa127574203d5e6f2c9fedc019daec57e9f9de99606ad6622acd7e5752e59cce941342141550368fd523bc7a98534cd05165476e5f4aff3d49d9353645c45a3718810935c63b703a2b47f7b9bb8970017b462680a3019b86a20a3053c28d35b35d8055c6e9ec09f0219ffff038d82a113feec5be1befcd1a92c6b71e128f238629f74c895b40f1b0d31970eb703e32cc14941b0c0e26fd4cd6a1ff7904594c84aee9ebc8ea8971e9e4ebb4e11630365a9fd54eea42809ad5d130b0257ffc59ecea4d36525c5f059f0ba74e12d97da03281a34dfcf4c9272ce28f683e1214c28e3bc7320ec32034b66c88950440b6d29037acfa0a74627f84ecc785940d286ea2f47d8719391be009f1ace0ba56de41b970311cdc47e8172f6af544d8b529571110c099bc95182cb9fbefdbfa94a345b453703f2b6daba9341b5868251a1ca9c40c9331d0458fd2860406a2d3b2c2429368f0103607f0de0931910ba9ecf0e19204ef4454c8f293039132d816a94fd013c53224503de0dd51065e16214b69968bc663ea47bd1b58f4a23def0cdb9ce7826e6b5798b03208d267634ee7ef8b6dd028468268e4642393faeea95298b745a6d3793a910240219ffff0338c61070304c5a56b382ff5fe8279b579ba528f8450ef0972671f54aaf8a1807033df2a9b7c7835a37cae5bcacb6bd5614801c723c65b8c038b6895bb8721005d30345f5378f333db1e4dbc4ff7bb03fb174652735acc417491426ec1d5b4b7c962103f624a84b5da7da6f6d297359ff86b3f5b7aa514c3c544d10b7cdda48c3b6538c03d2ea0d5257ab5b2e9d684cf536fa24090bdbf8144370ff8296130dd05fef871f03649f0628bacb781a5e38fe229e48f6333d3fcccb12e8232e0ef40894f79bd01403265f0d31dffe3ddaceb1a6264373b2071694a42cdc8deac6f08e7167e3b53b5c0348755492522f9d4186ee1d2ef54e05eb48ff50167faaa3cd8bdbbdcd0f1dfb270388fcd11bfa6af7102fc26c75109a9bfb91b18b098abdf9941b4fd719c4b38b51037533c5d1f2537cd73c1a0c0a1183a5cdeb495caa422f3e4a6b7f647c78d10d1103f1f869a4f7853a567e16451e77c8fcd41eb35442dca17ffa169117e376b12f52035315b68e12efbfd7e425d1303ac50276124043bdec90967756d20c135a4439030219ffff034fe4674fca460c6b0d3775f93ae770fd2f8f6adbf3df8a38cbd20f6858dae166033b639f1b5ee67870c75e82d93c15d6dac19fa9032003659763667789ade54be4038402d921caba7cd739124af69355319beec4ba6bceb4c5d319df0068b4606d110219ffff03075b3c322e1444763026cf8e19dc932939339319936b195bc8b1b4e8c7c0fd5203afaebb470bdbdb8966a9af599815f3189366d47713c51d8fddc097533c1f1d450303b7620487d778673246bfd2fb48a5d3460600a177a9569ecb74e0b36ed51778034e4bfb4afc5221ebd0bc9c19c2fb64741090276adcf5164b5cf5eac27ed8284b035327ae81282b29b86e27fa319ddf9d457cc2079eb6f37df36ab38d02c1be9e3903ff6d4231ed8ed9fc5801d7d1922ebcd6f93b95336eb59fd376432c4b9769c0cc03d83bd820595ce556e1a765c877c0f0e78270b34ec06dbf99c4beff21a53307be03e1a8a9b1ae4a215f722ecf7f7ff1dcf25d03d77f3b8c77837b86e17cc1613d9803ee789c9da5abb603eeb6d470ac77465ef37171c07a77cc29db35313844af248503bc38b1f1e718670c14e4dcec0c1724239210edc56ca62bb9955d378bcb2cb49603a7f0be3ebaa2baa0b529fcfd6f3bff1fe388430078d73937651709cd6a634591032d10d069d76442bc70428d06db0479d76181d80e5c5684ec805003d6661cf33f03da2374a7eaf05565243f4b6ce1abdb486afccd4b803ad12e0d71715f74290a0a0354be9e584b0ab6838dd4ea2e3ed127335e4ac8e9f36f940880282e784153802f030c3a93e16f6a1a8ffc36aab9830f7b5401f8f0f2733a6907bfafb575a5f78a8003909b94d6a17403b04312212548199b522a026b4b1e3b7a1f691b0da673777bff03a563d6e6b8f7c14fd1e03aae5272c668f05316fe67a1c3733acacb9ca5249a510323a5e57420689614f1b01fd6cade65d4e6a784a85358a4151490582483b20ac2038f1ae1ea2584d2afff04a6b23a299d247db5e93e5bcb8f61c45ee236710c8590032c877fd5ab8fd02ce576689526c7404edf932e5572f07c3f5530df4acd1bae8b0357e6aecb57a48cc53b5d4979704ce97c6c81d49dbea9390314788199deb34a4905581e03f377e823577311b41d3bf3eed34107eb4dc8deeca69fe4ace7a1fa28d00c0146d5b4af06bd2005581e0365c005895cfac907a04c5efa7aef7eae632a4539167be6fc114e4cb8800c0346af1f16606ca805581e0331b02f1c5f8e364d12712a87636642f741740b9d52988a540104177c2008431b774005581e0319f5192c0d975415a76b3a321aec2e530a71ff6118e18915ba41017dd00c01470437e254545d7c03ccab7f3e58fa16d46829e3c8ea41a59c3ab1ebf67dd16a40d3a294dd0267078b01410703c674231ebbd69f4d8c2f886073c229dbfa9927495ab4457b124b5953793cd0060349f9476466c3eab3a1400b6e932d192388ff9a511f270bb3febe948f05f89225038f3d41beb738272ba9251426576bf0f427b75475f29e2840f79118e9d3dfeb0105581e03256683e39c3925aff63e4c74740d3b2efb22f7901c1a2ce897631104d007011bffffffffffffffff033314dc81d8f8afea34fee0bad0c1b9d495fb5b23681bcfe296dfc16df00a2f5b05581d023923fffda15087e272c8ec6ceda0703ba916ce7443a802261de4ca4b040105581d02c0751810434fd38c9231acb92ed7e31d5787d8b93c40bd72afeb94530c0146b159f9bb30000459245060806040526004361061014f5760003560e01c8063846d4d7a116100b6578063c311b6fc1161006f578063c311b6fc146103fb578063cb23bcb51461041b578063e70fc93b1461043b578063ea7ec51414610468578063f2fde38b14610496578063f8c8765e146104b657600080fd5b8063846d4d7a146102f35780638da5cb5b14610355578063946130d814610373578063b2267a7b14610398578063b604bf4c146103ab578063bedb86fb146103db57600080fd5b8063550041051161010857806355004105146102605780635c975abb146102735780635f7b15771461028b5780636e296e451461029e578063715018a6146102be578063797594b0146102d357600080fd5b8063088681a71461016357806329907acd146101a85780632a6cccb2146101c85780633b70c18a146101e8578063407c195514610220578063478222c21461024057600080fd5b3661015e5761015c6104d6565b005b600080fd5b34801561016f57600080fd5b5061019361017e366004611cbb565b60fc6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156101b457600080fd5b5061015c6101c3366004611dbc565b610537565b3480156101d457600080fd5b5061015c6101e3366004611e2e565b610780565b3480156101f457600080fd5b5060ff54610208906001600160a01b031681565b6040516001600160a01b03909116815260200161019f565b34801561022c57600080fd5b5061015c61023b366004611cbb565b6107ea565b34801561024c57600080fd5b5060cb54610208906001600160a01b031681565b61015c61026e366004611e50565b610831565b34801561027f57600080fd5b5060655460ff16610193565b61015c610299366004611eee565b610d31565b3480156102aa57600080fd5b5060c954610208906001600160a01b031681565b3480156102ca57600080fd5b5061015c610d86565b3480156102df57600080fd5b5060ca54610208906001600160a01b031681565b3480156102ff57600080fd5b5061033561030e366004611cbb565b610101602052600090815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b0393841681529290911660208301520161019f565b34801561036157600080fd5b506033546001600160a01b0316610208565b34801561037f57600080fd5b5061038a6101005481565b60405190815260200161019f565b61015c6103a6366004611f94565b610d98565b3480156103b757600080fd5b506101936103c6366004611cbb565b60fd6020526000908152604090205460ff1681565b3480156103e757600080fd5b5061015c6103f6366004612001565b610db3565b34801561040757600080fd5b5061015c61041636600461201e565b610dd4565b34801561042757600080fd5b5060fe54610208906001600160a01b031681565b34801561044757600080fd5b5061038a610456366004611cbb565b60fb6020526000908152604090205481565b34801561047457600080fd5b5061038a610483366004611cbb565b6101026020526000908152604090205481565b3480156104a257600080fd5b5061015c6104b1366004611e2e565b6111dc565b3480156104c257600080fd5b5061015c6104d13660046120ef565b611252565b6033546001600160a01b031633146105355760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b565b61053f6113e4565b60c9546001600160a01b031660011461056a5760405162461bcd60e51b815260040161052c90612143565b60ff546001600160a01b03166000610585878787878761142a565b9050600081805190602001209050600060fb600083815260200190815260200160002054116105c65760405162461bcd60e51b815260040161052c9061217a565b600081815260fd602052604090205460ff161561061f5760405162461bcd60e51b815260206004820152601760248201527613595cdcd859d948185b1c9958591e48191c9bdc1c1959604a1b604482015260640161052c565b60008181526101016020526040812054600160801b90046001600160801b03169081900361064a5750845b604051639165246160e01b8152600481018290526001600160a01b03851690639165246190602401600060405180830381600087803b15801561068c57600080fd5b505af11580156106a0573d6000803e3d6000fd5b505050600091825250610102602052604090205480156106c3576000190161064a565b600082815260fd602052604090819020805460ff1916600117905560c980546001600160a01b031916736f297c61b5c92ef107ffd30cd56affe5a273e841179055516314298c5160e01b81526001600160a01b038a16906314298c51908990610730908990600401612210565b6000604051808303818588803b15801561074957600080fd5b505af115801561075d573d6000803e3d6000fd5b505060c980546001600160a01b0319166001179055505050505050505050505050565b6107886104d6565b60cb80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f4aadc32827849f797733838c61302f7f56d2b6db28caa175eb3f7f8e5aba25f591015b60405180910390a15050565b6107f26104d6565b61010080549082905560408051828152602081018490527fd700562df02eb66951f6f5275df7ebd7c0ec58b3422915789b3b1877aab2e52b91016107de565b6108396113e4565b60c9546001600160a01b03166001146108645760405162461bcd60e51b815260040161052c90612143565b60ff5460ca546001600160a01b03918216911660006108868a8a8a8a8a61142a565b9050600081805190602001209050600060fb600083815260200190815260200160002054116108c75760405162461bcd60e51b815260040161052c9061217a565b600081815260fd602052604090205460ff16156109205760405162461bcd60e51b815260206004820152601760248201527613595cdcd859d948185b1c9958591e48191c9bdc1c1959604a1b604482015260640161052c565b604051636bb825d760e11b815263ffffffff871660048201526000906001600160a01b0386169063d7704bae90602401602060405180830381865afa15801561096d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109919190612223565b9050803410156109e35760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e74206d73672e76616c756520666f72206665650000604482015260640161052c565b8015610a895760cb546040516000916001600160a01b03169083908381818185875af1925050503d8060008114610a36576040519150601f19603f3d011682016040523d82523d6000602084013e610a3b565b606091505b5050905080610a875760405162461bcd60e51b81526020600482015260186024820152774661696c656420746f20646564756374207468652066656560401b604482015260640161052c565b505b6000856001600160a01b031663fd0ad31e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aed9190612223565b604051634d8acbc160e11b81529091506001600160a01b03871690639b15978290610b209088908c90899060040161223c565b600060405180830381600087803b158015610b3a57600080fd5b505af1158015610b4e573d6000803e3d6000fd5b5050506000848152610101602090815260408083208151808301909252546001600160801b038082168352600160801b9091041691810182905292509003610baa5760008281526101026020526040902060018c019055610bd4565b80602001516001016001600160801b03166101026000848152602001908152602001600020819055505b6001600160801b03808316602083015261010054825190911610610c3a5760405162461bcd60e51b815260206004820152601b60248201527f457863656564206d6178696d756d207265706c61792074696d65730000000000604482015260640161052c565b80516001600160801b03600191909101811682526000858152610101602090815260409091208351918401518316600160801b029190921617905534838103908414610d20576000896001600160a01b03168260405160006040518083038185875af1925050503d8060008114610ccd576040519150601f19603f3d011682016040523d82523d6000602084013e610cd2565b606091505b5050905080610d1e5760405162461bcd60e51b81526020600482015260186024820152774661696c656420746f20726566756e64207468652066656560401b604482015260640161052c565b505b505050505050505050505050505050565b610d396113e4565b610d7e868686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915061147a9050565b505050505050565b610d8e6104d6565b610535600061185d565b610da06113e4565b610dad848484843361147a565b50505050565b610dbb6104d6565b8015610dcc57610dc96118af565b50565b610dc9611909565b610ddc6113e4565b60c9546001600160a01b0316600114610e075760405162461bcd60e51b815260040161052c90612143565b6000610e16878787878761142a565b8051602091820120600081815260fc90925260409091205490915060ff1615610e935760405162461bcd60e51b815260206004820152602960248201527f4d6573736167652077617320616c7265616479207375636365737366756c6c7960448201526808195e1958dd5d195960ba1b606482015260840161052c565b60fe5482516040516308b50fa160e11b815260048101919091526001600160a01b0390911690819063116a1f4290602401602060405180830381865afa158015610ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f059190612275565b610f4a5760405162461bcd60e51b815260206004820152601660248201527510985d18da081a5cc81b9bdd08199a5b985b1a5e995960521b604482015260640161052c565b825160405163ea5f084f60e01b81526000916001600160a01b0384169163ea5f084f91610f7d9160040190815260200190565b602060405180830381865afa158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612223565b9050610fd08184888760200151611942565b61100c5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b210383937b7b360991b604482015260640161052c565b505060ff546001600160a01b039081169087160361106c5760405162461bcd60e51b815260206004820152601c60248201527f466f7262696420746f2063616c6c206d65737361676520717565756500000000604482015260640161052c565b61107586611a1b565b60c9546001600160a01b03908116908816036110cc5760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b21036b2b9b9b0b3b29039b2b73232b960511b604482015260640161052c565b60c980546001600160a01b0319166001600160a01b03898116919091179091556040516000918816908790611102908790612292565b60006040518083038185875af1925050503d806000811461113f576040519150601f19603f3d011682016040523d82523d6000602084013e611144565b606091505b505060c980546001600160a01b0319166001179055905080156111a657600082815260fc6020526040808220805460ff191660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26111d2565b60405182907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f90600090a25b5050505050505050565b6111e46104d6565b6001600160a01b0381166112495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161052c565b610dc98161185d565b600054610100900460ff16158080156112725750600054600160ff909116105b8061128c5750303b15801561128c575060005460ff166001145b6112ef5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161052c565b6000805460ff191660011790558015611312576000805461ff0019166101001790555b61131c8585611a69565b60fe80546001600160a01b038086166001600160a01b03199283161790925560ff80549285169290911691909117905560036101008190556040517fd700562df02eb66951f6f5275df7ebd7c0ec58b3422915789b3b1877aab2e52b9161138f9160009190918252602082015260400190565b60405180910390a180156113dd576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60655460ff16156105355760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161052c565b606085858585856040516024016114459594939291906122ae565b60408051601f198184030181529190526020810180516001600160e01b0316634778999760e11b179052905095945050505050565b611482611afb565b60ff5460ca5460408051637e85698f60e11b815290516001600160a01b039384169390921691600091849163fd0ad31e916004808201926020929091908290030181865afa1580156114d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fc9190612223565b9050600061150d338a8a858b61142a565b604051636bb825d760e11b8152600481018890529091506000906001600160a01b0386169063d7704bae90602401602060405180830381865afa158015611558573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157c9190612223565b90506115888982612309565b3410156115d05760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e74206d73672e76616c756560501b604482015260640161052c565b80156116765760cb546040516000916001600160a01b03169083908381818185875af1925050503d8060008114611623576040519150601f19603f3d011682016040523d82523d6000602084013e611628565b606091505b50509050806116745760405162461bcd60e51b81526020600482015260186024820152774661696c656420746f20646564756374207468652066656560401b604482015260640161052c565b505b604051634d8acbc160e11b81526001600160a01b03861690639b159782906116a69087908b908790600401612322565b600060405180830381600087803b1580156116c057600080fd5b505af11580156116d4573d6000803e3d6000fd5b5050505060008280519060200120905060fb60008281526020019081526020016000205460001461173c5760405162461bcd60e51b81526020600482015260126024820152714475706c696361746564206d65737361676560701b604482015260640161052c565b600081815260fb602052604090204290556001600160a01b038b16336001600160a01b03167f104371f3b442861a2a7b82a070afbbaab748bb13757bf47769e170e37809ec1e8c878c8e6040516117969493929190612349565b60405180910390a3348290038a8103908b1461184c576000886001600160a01b03168260405160006040518083038185875af1925050503d80600081146117f9576040519150601f19603f3d011682016040523d82523d6000602084013e6117fe565b606091505b505090508061184a5760405162461bcd60e51b81526020600482015260186024820152774661696c656420746f20726566756e64207468652066656560401b604482015260640161052c565b505b505050505050506113dd6001609755565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6118b76113e4565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586118ec3390565b6040516001600160a01b03909116815260200160405180910390a1565b611911611b5b565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336118ec565b600060208251611952919061238e565b1561198f5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b210383937b7b360991b604482015260640161052c565b60006020835161199f91906123a2565b905060005b81811015611a0e576020818102850101516119c060028761238e565b6000036119dc57600087815260208290526040902096506119ed565b600081815260208890526040902096505b6119f86002876123a2565b9550508080611a06906123b6565b9150506119a4565b5050509290911492915050565b306001600160a01b03821603610dc95760405162461bcd60e51b81526020600482015260136024820152722337b93134b2103a379031b0b6361039b2b63360691b604482015260640161052c565b600054610100900460ff16611a905760405162461bcd60e51b815260040161052c906123cf565b611a98611ba4565b611aa0611bd3565b611aa8611c02565b60c980546001600160a01b031990811660011790915560ca80546001600160a01b0385811691909316179055811615611af75760cb80546001600160a01b0319166001600160a01b0383161790555b5050565b600260975403611b4d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161052c565b6002609755565b6001609755565b60655460ff166105355760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161052c565b600054610100900460ff16611bcb5760405162461bcd60e51b815260040161052c906123cf565b610535611c31565b600054610100900460ff16611bfa5760405162461bcd60e51b815260040161052c906123cf565b610535611c61565b600054610100900460ff16611c295760405162461bcd60e51b815260040161052c906123cf565b610535611c94565b600054610100900460ff16611c585760405162461bcd60e51b815260040161052c906123cf565b6105353361185d565b600054610100900460ff16611c885760405162461bcd60e51b815260040161052c906123cf565b6065805460ff19169055565b600054610100900460ff16611b545760405162461bcd60e51b815260040161052c906123cf565b600060208284031215611ccd57600080fd5b5035919050565b80356001600160a01b0381168114611ceb57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611d2957611d29611cf0565b60405290565b600082601f830112611d4057600080fd5b813567ffffffffffffffff80821115611d5b57611d5b611cf0565b604051601f8301601f19908116603f01168101908282118183101715611d8357611d83611cf0565b81604052838152866020858801011115611d9c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215611dd457600080fd5b611ddd86611cd4565b9450611deb60208701611cd4565b93506040860135925060608601359150608086013567ffffffffffffffff811115611e1557600080fd5b611e2188828901611d2f565b9150509295509295909350565b600060208284031215611e4057600080fd5b611e4982611cd4565b9392505050565b600080600080600080600060e0888a031215611e6b57600080fd5b611e7488611cd4565b9650611e8260208901611cd4565b95506040880135945060608801359350608088013567ffffffffffffffff811115611eac57600080fd5b611eb88a828b01611d2f565b93505060a088013563ffffffff81168114611ed257600080fd5b9150611ee060c08901611cd4565b905092959891949750929550565b60008060008060008060a08789031215611f0757600080fd5b611f1087611cd4565b955060208701359450604087013567ffffffffffffffff80821115611f3457600080fd5b818901915089601f830112611f4857600080fd5b813581811115611f5757600080fd5b8a6020828501011115611f6957600080fd5b60208301965080955050505060608701359150611f8860808801611cd4565b90509295509295509295565b60008060008060808587031215611faa57600080fd5b611fb385611cd4565b935060208501359250604085013567ffffffffffffffff811115611fd657600080fd5b611fe287828801611d2f565b949793965093946060013593505050565b8015158114610dc957600080fd5b60006020828403121561201357600080fd5b8135611e4981611ff3565b60008060008060008060c0878903121561203757600080fd5b61204087611cd4565b955061204e60208801611cd4565b94506040870135935060608701359250608087013567ffffffffffffffff8082111561207957600080fd5b6120858a838b01611d2f565b935060a089013591508082111561209b57600080fd5b908801906040828b0312156120af57600080fd5b6120b7611d06565b823581526020830135828111156120cd57600080fd5b6120d98c828601611d2f565b6020830152508093505050509295509295509295565b6000806000806080858703121561210557600080fd5b61210e85611cd4565b935061211c60208601611cd4565b925061212a60408601611cd4565b915061213860608601611cd4565b905092959194509250565b6020808252601f908201527f4d65737361676520697320616c726561647920696e20657865637574696f6e00604082015260600190565b60208082526026908201527f50726f7669646564206d65737361676520686173206e6f74206265656e20656e6040820152651c5d595d595960d21b606082015260800190565b60005b838110156121db5781810151838201526020016121c3565b50506000910152565b600081518084526121fc8160208601602086016121c0565b601f01601f19169290920160200192915050565b602081526000611e4960208301846121e4565b60006020828403121561223557600080fd5b5051919050565b6001600160a01b038416815263ffffffff8316602082015260606040820181905260009061226c908301846121e4565b95945050505050565b60006020828403121561228757600080fd5b8151611e4981611ff3565b600082516122a48184602087016121c0565b9190910192915050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906122e8908301846121e4565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561231c5761231c6122f3565b92915050565b60018060a01b038416815282602082015260606040820152600061226c60608301846121e4565b84815283602082015282604082015260806060820152600061236e60808301846121e4565b9695505050505050565b634e487b7160e01b600052601260045260246000fd5b60008261239d5761239d612378565b500690565b6000826123b1576123b1612378565b500490565b6000600182016123c8576123c86122f3565b5060010190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea264697066735822122095632ed92734d5d11d0dc2f0a85b350f69d2fe206ff850498cd746b67dda174364736f6c6343000810003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341ff05581d02f9269f38729585cff50fe879616c63a2bffdd0fc9be9680c03b06aba070119245002190a20037edc4964e61d398a6cd8bbd28a4015d14e65be72a4b54d2933f46c5c016ed85101410a0219d3b70372de2dd4755938a9e8fc2ab52a21c94401f4063b1cb838f3890437bd20fd90f8037befe3b11ae7bc76bd462279833666ccb787308f99bfb3b104c48f36be4e5f0803918558bd840c45165b11f40a257ce53d06512f53d7412490a277ec3d063cf4a003c97a59006acdec1eba5a7ca1a8636badce826999eb39f3be312ecd57f1885aff03fd00668946add2fc4822716e6c4b453f399c39678d0207ceb57d654c6e06dc5e0354bbbe3cda31cd60f6546b2a1e29cd686c9fb18fff761c4728552c04b547ff96033bd427a4c420efdd9e086095fe90a6e7d3740ed0784235f002ba6e1fb9b9de010383c4da6fd83410077b4d498367415d55874f78ecfd9da82c363313a8601b4aad038b71be76b39acb94470238ed3010a761d54749e145001e8356758dfb8cb2724303f7a959aa3ba65faa107693c86cd148d1f6070bd61c0a64fa92379790a6e816650340e8ee34e514a156c74d27fdc852627fdebd2d6f3dbba90e9601933a69fd1e1203fbc075a8cb18173149b3882c701f47a6c32e8eae0da41e4992e16c91843bb16e03e62a60ae1c81e2ad3e9052987403a01dd51985654414d4045985f520ac20eda3030d71922863856eb90d3bcafe98c2b88c99e2d11c6d76e7e9ae05fbafa2038944036035321f39997befc8944601f96dafdd13ed871a498714d48ef96451c3e25a390219ffff03baa41bedbc3b0ff20d9276d4fe10972a7cae35913a95e1c54e9556b4229967060349edf9f533a67d8cde8cdb21d1a0e32c5afa45edeb76994d53ced36f5c9b5582032d712802139d17d72087b0d1a264d1f636c83b0e7a88a736d309b78b3894bfbf0388cf399d16be757ef38c718ae9513274230242df278fee7aadec78d2e50c8e3e03c87a880b7a606392f8910cc96e9fee82d15cac18d3cfb5d6c82b03733e8a45730219ffff032e3fe68774a1a3437d6ee699c8848616ea196395f8dfbfbbad37f2d672f1717403c9f0687054a7b70828d25a75822361035989eba90e89c5cf0aa7e69fffa2e59503775e28481982103b91ee346ab7e3d8276b6890fee60cd66e17d0b42a8a86d73103a934d3dc9faae3b44c2ffed495a2eb39dc184a997b67054719814b3bd23733280393237d2bf3c835821855bef5221b1e3b17bc033e9576679d294e469f26f30f060306962ee49705a11f470bc5ad4bfa488f881697f9a898eaee3b627496699ce86203c1d867000930f0939196022cbc42f7dea3d5f856da3131d6a4bcfb99220ea8b4039f6263ef7daba2e4c2ad8d482781a5df69a2070f9be093c598004d686880608d034597b107212060512f7afecc256c276e945f72e06620d73cb63ee9147f790443035e74722a9d2722a468eaf5ff295721641b9f01f99bb1b2dabab7f164e5dd4e27039a82981fb924b9eb0c0b0efb8e892e14fa2ba808750d365bc3e625a154e76c54035127bc035aef4f188a1de4ad5a36fbf942b2571adf749532b1f05050fc791dc70219ffff036d855e925661d6cac0ef7cf7d0e4e5a2de56ec09927e61f5876f6a4b43b222c9039683747b1443c1de2c3d876d42c4b465edc7b47807b10870fb18bc68126f103f035dc354200e6c80c9e52ff4e8ed1158d5e67041bc3cd13446ad9399fa05a3a0460309e882766b6dd8df562f30fd33f6830d948a78d7fa0e9707fb9f5b53d83e12e10373d69ba895f23c51ca750ebe5d23ac161256981c6c27e7ad6348314abaca5a9903d319531af413a329ea7e8744ff296bfd6b1411e99a21b417d2ff4e621de33016035141e72156a89eb2de86fc3ae62fee5a9b41e5cd9fa939ebb677202a1133ba0903c1512228d971d461839c57eb31a0eb2b0a781d079b51af29a98fc62e76d06ee40219ffff034d4ca44e3ada7240e4bb5dc24444f2b5d7556fafda2ec2130629a63b85da74e8037c8eb8973e6bad4b9d7aeb6f9ccde3399187511c1d500ab14a1b59459fac80f503a07e766e226f7eb2afdf31cf90f0bf518e769481c957b6cd719c1f52ecf52ad90341e4ea3a2f0aaa7df298f3a8e3eeab7f8c3e131779ef91255162723f3266e731037471e46e346742fbce2fc009c5f75282b85533bfbe678f655b3d2b40044da1880368a928274108e302ec75aaff02de5d16a0e7a7c22e82977d73839ca42ea4c70e0341ad7c74bcbb3740cb714d733c423137f4327d939e5a5e681ff0003f4a7a5c3003c2fbac48c5da550eb8a3c89c403e8dfcb48ab61f2ac11062c787f93e562f99bf038af40b15af4ce72b315dba7c0128d527201ae8a76837e0fac10968ee4795711f03885f8a43f0549ce58db3324898d47472068024dff454b7bb5d9910139c36ea0903374d24b4fafd70503ad49eadfe24689f77f317a82d8f49a129e0efe32efaaf760366b14c495320ef76a6c35035924caed95b0cdfb25ed8d2126b5ae9eed1f36c41036de214079b90bc22347c23a5807cfab3e8580d34cf0b13bece7cb7729344066b03f49ba17a90ff7a0c27ae7e839733db7caebbd8613dd9843f4a71bcc8abfa281903fd70d5811cdd82f1f8c24f124b2283ee35fde0f3db2689c0b5417b5f245969700305614756601aa4a72b4230fd6c3cb4c987ea9e744a517b531eb93129a9c62da903052392fa01d89b95df5410cdf9800c38175f1c5b5dfbd181715e764fa33e89d603215bf88bf3cab140ba19f39d5f9758e18d26894cd1804edda857b7dfcbc65c4a03fbb6bee77b32b8d4bcee943336ac1b1be93b943f8fda54b976d0dd84e8f7fe800306429d14da42013ac7fca8bcd527deb4715ce6d5c5fa83d74bdfbdacc7d535e105581e033eb7e863fbc14d28566066e98ad344a0eccf7d23e0863aeffee732d6300c181d470290fbe4b04e6005581e039b289a89865f6095ec8024d47bca1cd36c5ec6e055528ea1acf9a81a10040105581e033cdb15393e90fd6a1248d77ba186942abdb26a76c0259f887f16f5e7700c0247422f87b6d3e96b05581e03f053ee50572cc3d28f8f484441c4326b7ed13497cb1d3184e32d1576000c0147247643b16e7c3004591ddc608060405260043610610198575f3560e01c80637cca52fe116100e75780639cc3535111610087578063a9059cbb11610062578063a9059cbb146104c8578063cb7f97d7146104e7578063dd62ed3e14610506578063f2fde38b1461054a575f80fd5b80639cc353511461046b5780639d8740cb1461048a578063a8aa1b31146104a9575f80fd5b80638cd4426d116100c25780638cd4426d146103d75780639213c358146103f657806395d89b41146104155780639bbc2bb614610440575f80fd5b80637cca52fe1461037d5780637d1db4a514610392578063893d20e8146103a7575f80fd5b80632f54bf6e1161015257806348ff2b8b1161012d57806348ff2b8b1461030157806351bc3c851461032057806370a082311461033457806378109e5414610368575f80fd5b80632f54bf6e1461028b578063313ce567146102b85780633f4218e0146102d3575f80fd5b806306fdde03146101a3578063095ea7b3146101e657806318160ddd14610215578063229b6a5e1461023757806323b872dd14610258578063293230b814610277575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b50604080518082019091526009815268456d7520566964656f60b81b60208201525b6040516101dd9190611972565b60405180910390f35b3480156101f1575f80fd5b506102056102003660046119d2565b610569565b60405190151581526020016101dd565b348015610220575f80fd5b5061022961057f565b6040519081526020016101dd565b348015610242575f80fd5b50610256610251366004611a09565b6105ef565b005b348015610263575f80fd5b50610205610272366004611a88565b61068b565b348015610282575f80fd5b506102566106f3565b348015610296575f80fd5b506102056102a5366004611ac6565b5f546001600160a01b0391821691161490565b3480156102c3575f80fd5b50604051600981526020016101dd565b3480156102de575f80fd5b506102056102ed366004611ac6565b60046020525f908152604090205460ff1681565b34801561030c575f80fd5b5061025661031b366004611ae1565b610731565b34801561032b575f80fd5b50610256610784565b34801561033f575f80fd5b5061022961034e366004611ac6565b6001600160a01b03165f9081526002602052604090205490565b348015610373575f80fd5b50610229601b5481565b348015610388575f80fd5b50610229601a5481565b34801561039d575f80fd5b5061022960195481565b3480156103b2575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016101dd565b3480156103e2575f80fd5b506102566103f13660046119d2565b6107d7565b348015610401575f80fd5b50610256610410366004611b18565b6108f7565b348015610420575f80fd5b50604080518082019091526003815262454d5560e81b60208201526101d0565b34801561044b575f80fd5b5061022961045a366004611ac6565b60066020525f908152604090205481565b348015610476575f80fd5b50610256610485366004611b55565b61099b565b348015610495575f80fd5b506102566104a4366004611b55565b610acb565b3480156104b4575f80fd5b506008546103bf906001600160a01b031681565b3480156104d3575f80fd5b506102056104e23660046119d2565b610b30565b3480156104f2575f80fd5b50610256610501366004611b7e565b610b3c565b348015610511575f80fd5b50610229610520366004611bc5565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610555575f80fd5b50610256610564366004611ac6565b610c32565b5f610575338484610cae565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926105ea9290916105e49190610dd1565b90610dd1565b905090565b5f546001600160a01b031633146106215760405162461bcd60e51b815260040161061890611bf1565b60405180910390fd5b5f5b82811015610685578160055f86868581811061064157610641611c11565b90506020020160208101906106569190611ac6565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610623565b50505050565b5f610697848484610ddc565b6106e884336106e385604051806060016040528060288152602001611d7f602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190611318565b610cae565b5060015b9392505050565b5f546001600160a01b0316331461071c5760405162461bcd60e51b815260040161061890611bf1565b6008805460ff60a01b1916600160a01b179055565b5f546001600160a01b0316331461075a5760405162461bcd60e51b815260040161061890611bf1565b6001600160a01b03919091165f908152600460205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146107ad5760405162461bcd60e51b815260040161061890611bf1565b305f90815260026020526040902054600c548111156107cb5750600c545b6107d481611343565b50565b5f546001600160a01b031633146108005760405162461bcd60e51b815260040161061890611bf1565b6040516370a0823160e01b81523060048201525f906108819060649061087b9085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610851573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108759190611c25565b906114b3565b906114be565b60165460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af11580156108d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106859190611c3c565b5f546001600160a01b031633146109205760405162461bcd60e51b815260040161061890611bf1565b601780546001600160a01b039485166001600160a01b0319918216811790925560188054948616948216851790556016805493909516921682179093555f92835260046020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b5f546001600160a01b031633146109c45760405162461bcd60e51b815260040161061890611bf1565b5f6109e061271061087b866001546114b390919063ffffffff16565b90505f6109fe61271061087b866001546114b390919063ffffffff16565b90505f610a1c61271061087b866001546114b390919063ffffffff16565b6019849055601a839055601b81905590505f610a416103e861087b600561087561057f565b9050808410158015610a535750808310155b8015610a5f5750808210155b610ac25760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610618565b50505050505050565b5f546001600160a01b03163314610af45760405162461bcd60e51b815260040161061890611bf1565b600b839055600154610b0f90620186a09061087b90856114b3565b600c55600154610b2890620186a09061087b90846114b3565b600d55505050565b5f610575338484610ddc565b5f546001600160a01b03163314610b655760405162461bcd60e51b815260040161061890611bf1565b600e879055600f86905560118590556010849055601283905560138290556014819055601554610b969060016114be565b60125411158015610bb65750601554610bb09060016114be565b60135411155b8015610bd15750601554610bcb9060016114be565b60145411155b610ac25760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b6064820152608401610618565b5f546001600160a01b03163314610c5b5760405162461bcd60e51b815260040161061890611bf1565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610d105760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610618565b6001600160a01b038216610d715760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610618565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6106ec8284611c6b565b6001600160a01b038316610e405760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610618565b6001600160a01b038216610ea25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610618565b6001600160a01b0383165f90815260026020526040902054811115610f235760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610618565b6001600160a01b0383165f9081526004602052604090205460ff16158015610f6357506001600160a01b0382165f9081526004602052604090205460ff16155b15610fb257600854600160a01b900460ff16610fb25760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b6044820152606401610618565b6001600160a01b0383165f9081526004602052604090205460ff16158015610ff257506001600160a01b0382165f9081526004602052604090205460ff16155b801561100c57506008546001600160a01b03838116911614155b801561102357506001600160a01b03821661dead14155b1561109b57601b546001600160a01b0383165f9081526002602052604090205461104d90836114c9565b111561109b5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610618565b6008546001600160a01b0384811691161461113a57601a54811115806110d857506001600160a01b0383165f9081526004602052604090205460ff165b806110fa57506001600160a01b0382165f9081526004602052604090205460ff165b61113a5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610618565b6019548111158061116257506001600160a01b0383165f9081526004602052604090205460ff165b8061118457506001600160a01b0382165f9081526004602052604090205460ff165b6111c45760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610618565b6008546001600160a01b0383811691161480156111f957506001600160a01b0383165f9081526004602052604090205460ff16155b1561121657600160095f8282546112109190611c7e565b90915550505b6112218383836114d4565b1561123657611231600c54611343565b5f6009555b6001600160a01b0383165f908152600260205260409020546112589082610dd1565b6001600160a01b0384165f9081526002602052604081209190915561127d848461158c565b6112875781611292565b6112928484846115d0565b6001600160a01b0384165f908152600260205260409020549091506112b790826114c9565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061130a9085815260200190565b60405180910390a350505050565b5f818484111561133b5760405162461bcd60e51b81526004016106189190611972565b505050900390565b600a805460ff19166001908117909155601054600f54600e545f9361137c936002936108759391926113769283916114c9565b906114c9565b90505f6113988261087b600e54866114b390919063ffffffff16565b90505f6113a58483610dd1565b9050476113b1826116d2565b5f6113bc4783610dd1565b90505f6113de6113d7600e5488610dd190919063ffffffff16565b83906114be565b90505f6113f6600e54836114b390919063ffffffff16565b90508015611408576114088682611822565b600f545f9061141c906108758560026114b3565b9050801561145d576017546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561145b573d5f803e3d5ffd5b505b47801561149d576016546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561149b573d5f803e3d5ffd5b505b5050600a805460ff191690555050505050505050565b5f6106ec8284611c91565b5f6106ec8284611ca8565b5f6106ec8284611c7e565b600d54600c54305f90815260026020526040812054600a5491938510159211159060ff1615801561150e5750600854600160a81b900460ff165b80156115235750600854600160a01b900460ff165b801561152c5750815b801561155057506001600160a01b0386165f9081526004602052604090205460ff16155b801561156957506008546001600160a01b038681169116145b80156115795750600b5460095410155b80156115825750805b9695505050505050565b6001600160a01b0382165f9081526004602052604081205460ff161580156106ec5750506001600160a01b03165f9081526004602052604090205460ff1615919050565b5f806115dc85856118d3565b11156116cb575f6115fe6115f086866118d3565b6015546108759086906114be565b305f9081526002602052604090205490915061161a90826114c9565b305f81815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061166a9085815260200190565b60405180910390a35f60115411801561168d575060115461168b86866118d3565b115b156116b9576116b93061dead6116b4601154610875601554896114be90919063ffffffff16565b610ddc565b6116c38382610dd1565b9150506106ec565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061170557611705611c11565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561175c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117809190611cc7565b8160018151811061179357611793611c11565b6001600160a01b0392831660209182029290920101526007546117b99130911684610cae565b60075460405163791ac94760e01b81526001600160a01b039091169063791ac947906117f19085905f90869030904290600401611ce2565b5f604051808303815f87803b158015611808575f80fd5b505af115801561181a573d5f803e3d5ffd5b505050505050565b60075461183a9030906001600160a01b031684610cae565b60075460185460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156118a7573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906118cc9190611d53565b5050505050565b6001600160a01b0382165f9081526005602052604081205460ff168061191057506001600160a01b0382165f9081526005602052604090205460ff165b1561192a57601554611923906064610dd1565b9050610579565b6008546001600160a01b03908116908316036119495750601354610579565b6008546001600160a01b03908116908416036119685750601254610579565b5060145492915050565b5f602080835283518060208501525f5b8181101561199e57858101830151858201604001528201611982565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107d4575f80fd5b5f80604083850312156119e3575f80fd5b82356119ee816119be565b946020939093013593505050565b80151581146107d4575f80fd5b5f805f60408486031215611a1b575f80fd5b833567ffffffffffffffff80821115611a32575f80fd5b818601915086601f830112611a45575f80fd5b813581811115611a53575f80fd5b8760208260051b8501011115611a67575f80fd5b60209283019550935050840135611a7d816119fc565b809150509250925092565b5f805f60608486031215611a9a575f80fd5b8335611aa5816119be565b92506020840135611ab5816119be565b929592945050506040919091013590565b5f60208284031215611ad6575f80fd5b81356106ec816119be565b5f8060408385031215611af2575f80fd5b8235611afd816119be565b91506020830135611b0d816119fc565b809150509250929050565b5f805f60608486031215611b2a575f80fd5b8335611b35816119be565b92506020840135611b45816119be565b91506040840135611a7d816119be565b5f805f60608486031215611b67575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a031215611b94575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f8060408385031215611bd6575f80fd5b8235611be1816119be565b91506020830135611b0d816119be565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611c35575f80fd5b5051919050565b5f60208284031215611c4c575f80fd5b81516106ec816119fc565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561057957610579611c57565b8082018082111561057957610579611c57565b808202811582820484141761057957610579611c57565b5f82611cc257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611cd7575f80fd5b81516106ec816119be565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611d325784516001600160a01b031683529383019391830191600101611d0d565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611d65575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122092676d0cd0ac4d67c7d2dc4b4aa7e708bff9a4af3c07e73844efada565b3c1b364736f6c63430008170033034e3420342f4bc87b8f8b7ee3259a16a2dca1b5713e4f79179d0895398f5940db032300db90e9b392622cc982ce69f374f15f00275a4e17566725b7a8c28705e22b0396c28de8dda3f985f89cb911c764d81dc4073752fe6e028da7f3e3393164f2d50058200261432765930fe7a2e09822c5f032c75728b412c19139f44abd1c6e787495f9520b7abc627050305adf14a2e781a5795f879300582003441e4271223260cf94d3bc5c63116b623c24af6a7b4f3b78bb1ee6ec8acea04889e4bf27e25574e3005820032538fca120eab5b77aa9fdd50987efdf8cf6e07488a029b0fd0fd28acdbc304101005820030bc961dd579e9d775a9aec24b8199017f85ea04a9c2197f28b41db26220fc048182a626ec68913370219402100582003c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e0488ac7230489e800000058200328d90ebf8bd0fb379ff13134aa0a0164679436d771ef639036d8feac9b3b805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820033e6a1b74f2ee75fa86be62af8a1bd39f4fb9f635762c82d88c419dd82808a04801bb2dff5578ec5b02190c8003f59b9f58ff1a5c14269a1cfb64f158dc254e656ffb38eae37e7b7c1597474a4d005820028f4874fe27c573685cc2631881215586e50e3868a9ec16561a13d632322fc25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03d0b3896f274d53e8508b0e41d9e56b3a670a996121df301efdc42c65e9e2d082005820022ae24c925c179abe5e686441064c3e43ab5db057021b1026589063edd2c54c4750dfc536b2ff5300582002a6dd5ee3f7807ff52beb73f5e1da7524a7d0e7fd58543c0c295c80b09f4db15820fffffffffffffffffffffffffffffffffffffffffffffffffe3c4542c3e0638e0058200238c5155444df5b14051f6c97e69ce0abca50b1c3a51643a87099a73443d34b5820ffffffffffffffffffffffffffffffffffffffffffffffffff9e8853a5f556bc0219677f0058200230ac179df464118586816b1b2d69a837a4436043b58c7e69c8a317631a8e3b5820ffffffffffffffffffffffffffffffffffffffffffffffffffd30310a04bc5a400582002e3ad26af5ed11c774f1bc87c2bd6b349353c62b0ba811e2cefa1d2d4b4b61a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038a60d5015b4216b8e86a1b1160fe0e634dea82e6ec1ea2d0fbb1607f4b32148a00582003362d02ef88b4dd52c360680fb50809df27bac8fa619920f09a33bb78e13f90410100582003271173280935841debbcad30a8d1ba90d032ec463128c7fbe651cfab39bee05820ffffffffffffffffffffffffffffffffffffffffffffffffff4e3d6fb8931b2002192080033758827ae656e6de9f1bf3dc764c14a9a9c71047152e76fcba01074362a1bda003ee5fd05b01135a20789c1ffa1f153876121a1f129564e153575a9890be5298d901410e031663a32fbe696852dbb360acbdaf82782c3df70e2d37378c98ebe5272e80cb8e03b138a4440fe9d9b27530b0c447a1b5831bdea4706d24e76ad97e9914bc55049d03080c522cd87280968b43e361564811362e36250b8c8d4040cb347b97a49e123903172fe5dad23944faf2291b3e465f06dbaa3de65be378d5cb0cb472b498e7ca300058200361f819439ceb5043afe456ab4ebc973b1451dd399be2a0afd0340faeb9b8e05820ffffffffffffffffffffffffffffffffffffffffffffffffffc8b69fcba626c500582003a70aa234d085a35a174b166fec2ad180a6d2c9d87447aa81257ae9fdf3f8b047d31134e890fc020219808000582002a2cdff7a6d8f08eeab0e30695a9a1c64387ddfdfd58402ff2d50f161b903475820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03579c97b63b2093db627f37cbc1f816c671430a07e721ea2d07f084655ac1461a02197fb700582002c5115b4b24977201297128f37b4b429a67e5055027da80a95ad53aa91827c2419d03bfe8f2eaf4be5aa68244611c0e9bfa0e492040eee32b148793290c6425320d910309206bb734bb593b586576cc7e0c41ced63e8623bdc7af494318688688053c6603e66e1330bdb563af2cdc05583fcc5a6d2f88eb8526d6a184132d2c92fbf3418c01410d00582002923a19eadb2a20737d0e06f420dce746b53ae6c8969d6db8f19144335f231c477e0acddc0c4eb200582002b4751ee45d348724aa8661918e1be0fd4f6fc5e81bf702ea4f13e302585771410203041fc6d008771b9b71b4a8d01edf699649dad906aa41fcc33da40ea85ddfcf01005820025dbe13a350d4bb64f31d66d2dda091cb3d9c25ef36117f90653c3aebd03c9e474b3a1192b9214200582002daf1b01f4da6fabeb6de1c0fda44e9454bca94ed1233bb2b8573d6b803a297478889f4990ee8d30309639acdd06c1785032b83857760f863361afe2b4ec9c665b33b6d70540011b903b73c83feb9939ce20349dad07e33fb568a7e927a5449072526eec622428c52380361c32e5fa1f53460890f0e3beb7ac78ae877f9c5658559d8b32cad0a07f0f74f0219eed700582002aca3fe35ee247a8a8c54c4fe129f22cd965bf2ac8c279f7051ae735048af7b410100582002417384ec59d40e7f23330e5fbb1110d65d1937bb74c7f56e0501a9b56100755820ffffffffffffffffffffffffffffffffffffffffffffffffff85a371459b01e80058200277e4eec0913ef4268104ee38e76c32379ff5bfd7255fab20b2b0ff46fe943e471b6a08d81e1e4703eb8f02be240886ad05f9dcc64e7f4c15e0cb3bd76126a019f45a5ce48bcff58a01410703c4f518ce4da3416a9ea8d638cfcc9fda4d300a1bdd341722573524e2ae69b326036cbb91f4757f9e5be815a1daa74fc1eab068741e2332f368449372075852e48400582002a4bfc4f2f795d95a709ea47611436aa4f51dc4d2048f9ad5f778472e15f26047bf836a1521a49900582002e68021b5ff1c43d8c4305e51098d1aa7b1d171ba1719978fb651dab34c274947f8b0a10e47000000582003179a1f8c857f59526685bbf8a9e3f3023b6ca89f07856dbcced56eb42d46204737858b5d37ee160058200370debe9a2ee6dbae68a08a358fe0efa50c041443f2b58dd7bf893b2ad88f304721d6a2d6d925cf005820038aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc10488ac7230489e800000219250000582002bb93cc408c4be1cc77a59958bd598e5e952ec9bfa2e682ca9b2877ce58525f4802505196234982880058200230924607df53ebea3520f6da50226307ad8fd624f5b00cbf3ce9249d9166be5820fffffffffffffffffffffffffffffffffffffffffffffffffe0e9ebde371ffff036f54d165cb80fa97ffb34e1d75881a85e14f952d902ba72cb73628ffc8b5ea5c00582003bc6f98b658721d3c8736043c1e327b150ad3fdfbce6a55f8e88d8d1a502db04101005820032cc07222415544c3e3a11cc63dfddb808dde52dc56961ec3a11b85b78bb2a04801f161421c8e00000058200305e37e237458eff6f34c4dbdb0145d56a3031adc55421d6b94ecb35c5f8b704801e190239e2da63300582003f5076cfdc65cacef8859447996b364f501d82a583e999d1fdc1dba04160f80470dbc2435340e41021906280058200287df7fbb7235b8180a55727e441b66aec2dae37b478245ff476af41900624f47310d48c4a012430219ffeb03c0fb3dc1e81287af7e3399be5cc52288d33342d9e158f1c0f7c8379dc793f90c03fd685baa447b29ff61ff2cddfaf2ec3103e5c891699809cc3faa45b33848faf10331f7b99fe267c5ff4d0f5e22916a7fe9b33e74fc9263f5a3a80b7d79fe05347e0358ba6501be77e220699d471ca28c3c8e3f9008629469f8b22f357505fb5fc62803b13045eb932793481827e5e5cc5ab95aaa3a27ad744b756509edcddc32b071c103193b5f90faa38bc4ff8c5ac64fc43b8e3b406878f01c95a81d989ef6ab00b7eb030c04d1155cf908eadccbba86c0895a522fd90234f20c2ae2364ee606f599f95a0058200289057c1cc840fb6bb97980d57b5aa84338ccc529142a6a0bf885cd8f3bbe415820ffffffffffffffffffffffffffffffffffffffffffffffffffae623364d10634005820030bd7dc92d762599ec809c48348bf0167bf6cc441b3e6e96697a7a1e8072eb04796e58f931b19b00058200373d7a4aa683ea97c001116b0178689050a548503f3e3a5468ceb5cf9c469a041010058200353598a981cf974efac620e4f9809a7fab77d092d9ef16953a46bc1aee04b40488a7512af92dccf980219100303c07cbceabb6073012409a20685970cea5d6b4717b19eda80508d47e83980547303f130f2bac7990a7c24433c95cc9b86d74d7dda49a770e4750a4e076925910b31035faad2af76a6b1606358ebf7f7cb3b5a59be1e1604dac674e8f2504be3cea53103300e84076d68b0c521d6bfad0ad7291ba62fa102302088c6ef29637ed14dffaf03fa134cdccbe6f3d7d9b190dfaf35414c03768f4d1eff7bedae0eec11429ab8f800582003540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0417b005820035437c09086399e4a75107a4fa24d79fdbc7a967d4286636545e141b4bd00b048032d1177830dc345021200582002c579ca6e26f2fbecc7b975457d619a1fd9203c203421b2239018c84e2ec6a05820ffffffffffffffffffffffffffffffffffffffffffffffffffa2bfa1319469050219f9ff038c697d89c8dcaea68308fd826f99a670315dea4b95b4d0c708955217c4cf53f103b02c3224d43ac718a8107773ed5caa7bd039d1db68fcbc41c660a88e8bd3d1f303161dd8dcbc605bcd6aeb265a0246f307a960cc0ad42b8ad3309cbb40ed3f8c7003d92474eddee2d5dbe79d80dd8e43b8a8e459bef8a55d2415022c32b96ffdb7a40365771da5812249db8cc9406a5ebe16a6e4f885b2627c4fdfd7977869c98d892200582003efc3abc65ae403b55375fab51a4edb362595d5f8040919c7094d3c790e6c20479c66ea4269affc00582003bcaf0d85f21f553552bd94d282b4cfedbbfc462d3e33211f4c7371736137c04107021822038d580800670c63d6e185fb6a5b069ff2a5e450acf2bbfebf16e472ff5f8ba11f005820020b6eab9775363ed286c5258282178bc6e1b83cf65de8b3ba21efa534d26bf4472b1b9e70e7b79d03502f8e15575e8107cfbfc6c1bc7f341f122c1c2e5f6dc88749a21cfec5755cc103b23f6ff56df118d66b15df5e32d1a61b94269b87dca38f089999751c3e206cb300582002cc4f4610bee127104418c4797383d85c7525676ea0e86ddd8f5aba18de86665820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002ba7f0340f9ba733e74875170c7ba6e87869b9c58248f0e25a662275d1e7bd85820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03df4b791e1fa3612aa85012a708dcbd59fc5bfa2e34351c131ead75688c92487900582003cfbc53fe131f34be4b532094168e14804144d981b20f513bfd59d1bd4dbad0480121c389e78acfbc00582003a19356b0fce9137d5fd2aa0b41beb2360dd078dc158fe031399ce7a017785048016d288c5e6785a90218420219bedf005820025fded78a2971fdbe4b9ec57efdea0b009d3d41f4e6aedc74599fab69e566765820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200233b78fd20ece47e513e5c4bba376a4fbafda479a39059183903e912ae03acc4706216aef1df011005820024cf9e4620a0fa3b06ab047252a15c25977e3fe4ebd39c6e6601b7e6bca9f604801f161421c8e000003f0fe2615a30cd9458398c59cf0624f99fa6c3b436044f627c7f6c3dc4ab54401005820024998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695488ac7230489e800000058200236df7ee92c442e4222b36d817a80299c6c04b3344680f2f1c499efc1dd35c24101030294d4969290615028461ca457801eb122cc61e3416e6b846587c230b1c4c16b03a5f0cf2569ff61f25b7967f28a56731145db3bad40c4cba83ff22df252f2ed9f0371d178a16a6454de350568e13139e9c9ac513afd29a41f215d71c954cd8c566600582002b51e93d6eef7af81eccaa2d682111830eec36a302381b684ee5f707a4ecf6a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0337d9a252287b7c6d4ec25bf6cf2a3dc3682d93fdbeb0206d70a0fc01a56a5cce00582002c8029172621e653d4033d95ac82f15340c08918793866e5dd7fdbd4d84d3e5479536c70891000000582002094374426c3470525e7e6afd6d9233bd5ec0fd05a9901b331cecb8ee5ea70a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219d6ff00582003df19a189730ddea87af8271dac2b94d11516dc20a7d6dcd1fb44b646ec4c505820ffffffffffffffffffffffffffffffffffffffffffffffffff704016eb2f3ada00582003258789e1b7adab3076313b7fd6f531e63dd7b0438e7cca02f99831560224d047324a2ae9df268202190a0000582002105c26b4cf0e6d656bc41feef417e3e3edb94ed694f4b3f085f22e24a47b1e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820029970de1af15d7fc6dce8a7549289bf01a58c90e314d2745d488b2566eebe2c47072616666cd18c039752dcd87168b58688dff35d4025657ae1fdd655882bdb6b2f6ce843c4c72e6f033da581b6680d3d440295bcd3ad8c7d0dd5787880f05c8af372f53af7735e4c6c036b2c58c066c7d143cb1ffa794c6edae1b740846af0841dd5a63088ef4f60d8de03299292ad287a01713db52a2dc6d756a86e3673ded4ccd0f6f9aca5aaba4b0f0603bdbe3ea622a216f1b486ab3fcaa638a087238b830a307dce433fd829768d794b039dd335f0d192b6c6e6e9c87a4499f4aea79f2d2613bf4ec2ba04b769c9d249c0005820025abad28a673ca69f45d20659313ee7c82cb339e08b9d3d19f56901b625bf1c410100582002110dca18dcd0fdd891a6288311ca11e3977eedc6ea76b5c56e8ab6234533f45820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02199b5f03416c8e7f036e7dd79f7f36cc471c9ced6cb5096ca56131f27ebc0aa2cee98f100334841dec6c57727b17ac2bac4e7e014617afaa9cbaedcb3a47b7cd8349c482fa005820024862d359c594038da7bcc054dfa3bc524d721f0b7290583bded5250b2ee0fc48010fde68f96f2e0b00582002177ad5e1963b954da186cd74d6af3fc605e3cf5f4dc86b61c3c25de448c88d5820ffffffffffffffffffffffffffffffffffffffffffffffffffae21133a0493b403ab85857ab34b37de2228b5964de411de8435be4384f0f609bc9c06ef589fd6210396d61bf7a3fea39d3168dff2aa98fd576458059ba228d5a1a09f6ca17c227f270354ceb2f33b7d4637c7568a5420f3c148fe16ff8e5504b1ddc2d4134cb5c742b90338b5798429f301995ab50cb6619afdd708f368083399c3e33f3ecb4969d8fd1a005820028bfb6b4eee831514a9560fd1c8bf9b254f0c0af351ab8002b113578e04d8364727556a8620b7350376ec63c3832c6af1a8ec80563d673dbcf730ac98af28c7607f392c6b5cff997500582002e137bbb40d5cedf8702d1f1e804297fa692d25cb8234f84e43786a334d08f9480135dc56c2ef2ff103272a4b6451b22c592c8a377a6812e0d6118b8d0be65a643fda7ce9981fdfddbb0219f7e60338d0012acda50c02a3efc767f58bc5aaf4a4f7438c52612cb249c5567373e3b1039cc40aa3cf3c0fed8a446275315c310b85a0b813cfb477b33d9fac00b1d7d36501410e005820029a7b254c276d7d1f32fb0e15b2be67e600e86866ec1b79fbb07eec30c9678f5820fffffffffffffffffffffffffffffffffffffffffffffffffe0e9ebde371ffff005820034df6ffeff04914b5afa595d32165dd66b9618454efd89205737ecca9cb5f504878dd1cc1fa4980f4005820035061599955654e7ae5e063882443ea26a24c5a4f4bf3de7eee1669a1cfeba05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219100203553ae8ac239fa1808315c3127ad20e827d3f2c1d4feb07ec9c0d1c0c96517f950058200224b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15544c0a7a63bfee83953b2872ca7a74b839cadabecb005820024104714c93acb0a8d7d995462a631dd535ca177115324bb37c15c2fcd5281d474da260842f408d0058200259f3947a201fe7ea7f09b8189ca36424aaff43b9609c4cd43157f3a6fc143847a770d33abfacc2032d6db55f8460ebe50175b6a38e74984cf4d4e02139a6837ecba44293be7eda36005820032d345f0e5b5318cc8e5626d9571e02b15401d0600bcfc2bab0cb42b6ef6d10410800582003aed3cd7191c6cb81a94ca4e536ef729dcc87078a3c82fc08f3a83d6a4df0805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219101003e21688d57e63d4d696fcbdd9212ff3c42f665cb5702b831e34d1e9fdc8acab1000582003793f1f47b7f75e7d458eaa61b23f2a14f31fe51b22713c154480697bd45500474c0d77ea94f13500582003306b442cabec8e658b8730a638031f1120c73e6cce0c9e3724da87348b96b05820ffffffffffffffffffffffffffffffffffffffffffffffffff89a03d4a29b371005820038101493d5f1a4bf6bf61fc48061ba7f0ad5d317c0a62a0c8d86f553f30263041030219124003c92511c373fd8582dbaa6e1ed72a88cfb65319c5e9248ed7386ac7673e0e9e510219ddef00582002b695b26f19c29ebb416cf28b5fd835edb1d58b88c918cbaa226ec052c580744801f161421c8e00000377f7fd6b2044852679425d728869b7e34dbc3d25f9b0a9dbef22a03df9631481014105030bf9f9102513305f87800fd3ab7f042484ca59b2d91f3868d6243aece4c92104038e71e6997f3182657629a76b8b5c8a36409a75d6670f3e804d31e091ebc491bb00582002547d146d2f09880ffb78efacb51c0c4576c263b69312842577102c9a734123476b06391e3472e600582003815770d002732fb6743fc86cb7ef4964c973389669d4ef812b10432c30dea0471eb9bbfa9ad9ba00582003c6505b722d1015cc6b63193ad07b3c17de44f785d2c9e5582ef51d0b649af04731ce5e1bf9e15b005820036990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5047b1a2bc2ec50000005820035966f8b7f2152f33fe2dceeb395efa50c297905a397b6a9c15f0773b9d9540472e8970642b9f310219880603bc076f09e7ddefc1822738dcc8904f3864e9a5fac9ec572e97acc778a08996020352025a4aef558a363caf6fe64602bb451de3aa5c6e0599a1dcd868762454e11f035d38ec6adfcb1d91bebf3e0a9e1b2a664ec67d20e45cdb61e21ab6f9a68ce89903ab4c9f9868dc986b580ac346a6d93ad03ff4aaf62d89b02bf5dfb2a01f340f48033f6414481ce7c990a4ae359603a89289a8c0fa26bc6cb41e06794fc6b72ce98c0058200314bb7a16764915711223f724bdd99f85f1b86f3c2c22cd2c4757569effe1c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003253ecc46f954d5297257cfbdf56ef20db479cb0d65f15824d2c9b2fad35c10475209f625b47e2800582003966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7048016345785d8a00000218580219f3be038ba1c5526f539c55a3cb9d1b6a63e6e9d65208c59f96ba881d17a065a03537e1032f8678c46c76f0f4689aa4a8ef874f4fd1257322e5ba6c1553f43410ad48658c00582002ebe216d156214057cff20c988314876bad1ecb9e486d5c4eac3f8c4cdb10c55820ffffffffffffffffffffffffffffffffffffffffffffffffffbb494860985410005820023b248a16a4406cd19272d673e5f4e491a4ad4a6d798342218dfa87103a2592410100582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35601012dd689bc44fbee35491f475498c443d88ae63418005820024978ba92cc5efb6b9db84603b5a963b38348f538011d67865839e23d86b40e47690d2add7fd73000582002ed91a61e13b9526a8e2feeec99e9001b9ee51f0362266246c35d6209b9bfde5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03061967076184f580c2355b7bf6fec25beefe789035bb3df00b0c510bd59763cc030625db46b934ba71388fda550bf1f37daa149e431e6c1d1a977825077e36ff50033cb363869d1238347fea7d60543a7442a64fd3947561d3aeec55a8a059bcf31d0373a6b6bcea9feb7c160fb11a3206c14b77eddc0f8d68b14ae1f9de1ce0a9bd2703f8f902ae8d46a59aa3791c127d26c2c32cc322ccb03cdf94e5704d38431df3b80058200380e1b723a9597273259224a74578ceaa96d4918aa96b386e37066a326df3105820fffffffffffffffffffffffffffffffffffffffffffffffffe4c669e4925d72600582003be2cd72a47d89890ef09718979669afd3561ded7064999f11a865af2f10c805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820030940a70b43df9bc9092b70f798a96a2c2e2f53b74c8081836f5ced324248504801014a31b3928bba02194500034acea69e8ec64a14e4188a795201cb8a4af27ad37487f1a13d16186cbb907cc00219dd7f0219ffff05581e0325f8fdd85ef54fb4add96b313bbe132afe5c2ac554c9fd55847b6a3c200701191ddc035dedec9cf87ed175256570780f32d1142b9372100ff131bf8657b1ee601f647a05581e033d177ccaa9eb105be2927d49387c047c0306cc94dee6419e5737c506000c05473ae75bd0fc850005581e0375d453257950668934bd04171f2425ee800e83f1f82e6a722cc08f10b00c0246b9efe593f00005581e033793e335e5b7a2b213284e69fb9124d25cb011b75e19ac49b9a7d427f00c034713c327bd07100005581e03933516b77c638f50b111b0f24c2a65c5e028acc7f864a10f0098e01190040202196f3f03aabc3873d24f199a18a85ae778b567c02a2ef4566e6366eef7b349d368bf808103cf5742694cd7dcc1b49aab333dcee19400c1a815a413bda3b3b06718b4a876c0039b6832b5840c13dde37fa408e3b74f0e69ab9ffdc2b5e460bdb04cb49139f45e03a5c1e42f2d2a7c7eb56809d340bd5e1e634e89796a130fbc3ae5e9c6d30ac6d003260319aaee71ef65cdc9047d0b52f5835418b3e5d01fccfa018957e7a985ca02038dfec1af2a1dcd5b0465c1a03067d946467aed00f5a7af2cc0d9fd1925b1b3d803977dd491e5440d99b46ff5f552024ab0db959102f34a0792f32551783268feca03c7be3dcd7974e3ea6e138e602a0564193e876dbe3fec85f6fc65341d49e4fc6d035ca6ca23f4b873373d9a54ab0d0ed0e4c0031dc5519c83413470c1b1d02b5720039570c8a0165aef08eeaad390c25134f8cbc2d527867ab553635448d26109a03703b3275073a1325dad1f90d8d1e2d49056fcdc81c9c97f6648149f37c8582d489603ddfc3d989727a05b3423f1ea20a9db67419dc2dba3a3ef43706063df365a4fbd0383f8736d48ab21f31a8d482de55d3586779bbafe1c2e1f3942537680b06c34130336331c34f0d956595f511fa474a5cd835658dabede50cd8ca4f4f473b4e2c5ac0219ffff03e986fd3ae733201a831ae629691582a0f1999447c9c16a978a9c71e5702c58970318c1fe1da517bb161cd4d99805596041d5fe8366f35e14deb1667be70e35575a032dea1059c95adfdeee03e743e4c10818b45c88a27c8560d19bcb1e53d2ece00b03080aa35fc8a277b57d5b1b6298b57fb76f773385e384366270412849043afc290369917c520e47f48b6da3a4b3798b38a371bd9406c8824b1c18bfc0717529d3f50219ffff03ff3c6874dd21245731632b15ef701ae36e38a9efb8e6df118e66263820d39e9803c9e5330b97a78489974e4a71b2f1c6de51819357e2404c6a818d3e4d83b13b8003377e48f05dcc8f0aedeb57987af44dd3d605a2201f1c1c1abc63bd6511b13240032059004eff48f101d380852c50e432939d799916707d1e136f418a3652c53ef003f5d548547ae2629144725ea67cbaf97b4db393a37af325d70f2786acbbd8b7da0300f8749e0b2be33bbc5913c713cf6b22cb0e045b4f937659bae355c4e2ea62cf0323b9b88572239fb65f73423354b8df802025763d2951c8321dd1361aba0997cf0364bb0c3078ecbc913d923b57b903d633e1886b8f1c8a89db0b9300906d0240e503fdb123d291fe9424fba768d77bc1adb9b2a66b9c103dca6ad16dbeb40f68572f030e2b6fe9706f27797ee019de6b831b0fabc40fcf4c22b58af802350b68ed371c03cc13b260c1f9897b82ab09a6b5c14175f2b686c100374f52b5f45997ad98f352035667dee4bb9d06d9805796dc1b77c74ade7d044a37f1c3fe0e0bcdc0521dd6aa0219ffff039425c7d59fbf1e7c585630cb6a612e9cae9a55719fce2fb10c16858df28cc24b037cc4b5cd5c23d8a2a9d556f521f0bed9c593b5ad4a7d3393bf499e7aed29a7c5034caa412bf57633088185815005a6c8ab0f76c282ed54b472dc821c6c1d551b2d03f9fed06da6ea893587080d1fd91013d15007ddad9ea96198ae79d841a864664103a2e7cdcb998b3a7f97a3e77e3cf09189c2fbbffaaaa067f895d8b2c23dd712a6034e15487d8be159423ea2c875184035f0e3c850f0bb9f749f2aae18ca3ad6437b03c46c14eb50e19fca06e0369b093d52eb7a8b2a056db5e4a22a19a636d532d26e0303d176134b59c632e2ec03f3fcd274093d4f46820b753a419a6bc8b824736f28033ead4aa5a24b770bb78f307ced0f2cfb05338a6b4e5ec1110ffa1fc29e6c1f06035c4025f110517424983bfdafa0dfba572a07aadf94059ac9f40e9bf4b186942c031b83e43084cb2a52dc5fbfd82752377a917187ffaa4128bd3de225af0ad30f7c03caae87297f1d4d55b4c71b3418c1f127197478dd077e3105fbafc9da1db09d930362787009d249d991c033bd2d14754c94c39c751309129f77d2734f3d906eed2f03f990fb129e612f14fbe13c121f3318e080182e0611fa169efdbcab251a6d8b3b0330837ba6b997949533f8ccad24314be7f4b95e1270702edd8399770cfde8a8a5033d2b4f9ef781e18d1959c6c068c43d3e5eede438ab8634ed26fdc088e7a2d40e037d69be9a229718dbc6b1db74e1fad25e405a82bdded6cf33af2218770029556303ad9b2f633b42af210a3307b8b2a3700ab0a024d800cc6916e6ce97aa0c8d8d9403ba317140e7a998b87d15d16b490b87950d3a3c6cfbebb90f8a6e6b40d5baa3ca03d061a7381299b6c860260871b80c152620735d1bef7526331fe80d9c88f8cd5403058f15a09988c937cc23ba75e1a906b27d842380a6d371c7a656315b3fcac0920348fd5d43aa513fa0c4d30ebf49bf88eaf6fdfa6a41b3361ffc5679a8cf2a517103a38da17f928810fa90ebd81b527845b2dc21d59db1edf7e738e0e7b623c7ef9e0343025d3ea2ac30efbf44d9af21b5adb0e906c82086262cf4ebfbe3f232ce6f9c034b3567475c9fe2c0ff2f14874d43c4de8b58df1b1f8ee0fb5f3d6b5fe3c2673a03df4806d95be5f9ae6f9d277b94f2c845439405a5177d4479f69a240cbcff0f8d03068cbed3006110f8d17df9db262caa3a39254f1ab164ff4ab7b08de74d891fee03279150b08dd714b6c507730fe2c3a16188788c938fad0673686bb7c6c58ce62a0387192f6df81146f2429475f86e116f458914028d84e04c96d7d152ab3388926903de8a5444a21e31c0a5419aeebf5e022b6f7832198fc738a9f30b61709f1bdad303ec1b44eb904736888cdb0836971c787b6e076e473fc8dfaec6a8632d849de25705581e030d48c15b1fb783c8ad93568358d3f5086e5709a663e40723716f8b2290040105581e03f447cc522c13fde9beaa4f5b7802daa6e720470004d16254928f8865a00c0348014e663d5f58000003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e031cfe9f0dade9470cd0e2f514a1f1395fc4ee32fbfdc780ec312795f45007011bffffffffffffffff04593cf8608060405234801561000f575f80fd5b5060043610610283575f3560e01c80638da5cb5b11610157578063b9c4d9fb116100d2578063dfea951d11610088578063ec5f752e1161006e578063ec5f752e14610682578063fe102cda14610695578063ff35819b146106a8575f80fd5b8063dfea951d14610632578063e985e9c51461063a575f80fd5b8063c87b56dd116100b8578063c87b56dd146105f9578063d2c0fa5a1461060c578063d85d3d271461061f575f80fd5b8063b9c4d9fb146105b8578063bb3bafd6146105d8575f80fd5b806395d89b41116101275780639cb8a26a1161010d5780639cb8a26a1461058a578063a22cb46514610592578063b88d4fde146105a5575f80fd5b806395d89b411461056f5780639b78fdd914610577575f80fd5b80638da5cb5b146104f9578063906571471461051957806391ba317a1461052c578063931688cb1461055c575f80fd5b806340c1a064116102015780636c0360eb116101b75780637860ca2d1161019d5780637860ca2d146104825780637c7acba6146104955780638c0e8349146104bc575f80fd5b80636c0360eb1461046757806370a082311461046f575f80fd5b806342966c68116101e757806342966c681461042e5780636352211e146104415780636933e79a14610454575f80fd5b806340c1a064146103f057806342842e0e1461041b575f80fd5b80630ebd4c7f1161025657806323b872dd1161023c57806323b872dd1461038b57806329f87c381461039e5780632a55205a146103b1575f80fd5b80630ebd4c7f1461031157806318160ddd14610331575f80fd5b806301ffc9a71461028757806306fdde03146102af578063081812fc146102c4578063095ea7b3146102fc575b5f80fd5b61029a610295366004613150565b6106bb565b60405190151581526020015b60405180910390f35b6102b76106cb565b6040516102a691906131d6565b6102d76102d23660046131e8565b61075b565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102a6565b61030f61030a366004613220565b61078d565b005b61032461031f3660046131e8565b61091d565b6040516102a69190613283565b61037d60c95463ffffffff780100000000000000000000000000000000000000000000000082048116740100000000000000000000000000000000000000009092048116919091031690565b6040519081526020016102a6565b61030f610399366004613295565b610973565b61037d6103ac366004613318565b610a15565b6103c46103bf366004613397565b610a50565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016102a6565b6102d76103fe3660046131e8565b5060c95473ffffffffffffffffffffffffffffffffffffffff1690565b61030f610429366004613295565b610a67565b61030f61043c3660046131e8565b610a81565b6102d761044f3660046131e8565b610b22565b61037d6104623660046133b7565b610bad565b6102b7610bcc565b61037d61047d36600461340a565b610bdb565b61037d610490366004613425565b610ca7565b6102d77f000000000000000000000000612e2daddc89d91409e40f946f9f7cfe422e777e81565b60c9546104e49074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016102a6565b60c9546102d79073ffffffffffffffffffffffffffffffffffffffff1681565b61030f610527366004613489565b610cc8565b60c9546104e4907c0100000000000000000000000000000000000000000000000000000000900463ffffffff1681565b61030f61056a3660046134e8565b610fa8565b6102b7611060565b61037d610585366004613527565b61106f565b61030f611094565b61030f6105a03660046135b8565b61110b565b61030f6105b3366004613620565b61111a565b6105cb6105c63660046131e8565b6111c2565b6040516102a6919061375b565b6105eb6105e63660046131e8565b61123e565b6040516102a692919061376d565b6102b76106073660046131e8565b6112f5565b61037d61061a3660046133b7565b61133d565b61037d61062d3660046134e8565b61141a565b6102b7611425565b61029a61064836600461379a565b73ffffffffffffffffffffffffffffffffffffffff9182165f908152606a6020908152604080832093909416825291909152205460ff1690565b6102d76106903660046131e8565b611450565b61029a6106a33660046134e8565b611499565b61030f6106b63660046137c6565b6114c5565b5f6106c58261153b565b92915050565b6060606580546106da906137e9565b80601f0160208091040260200160405190810160405280929190818152602001828054610706906137e9565b80156107515780601f1061072857610100808354040283529160200191610751565b820191905f5260205f20905b81548152906001019060200180831161073457829003601f168201915b5050505050905090565b5f61076582611674565b505f9081526069602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b5f61079782610b22565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff8216148061088257506108828133610648565b61090e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610850565b61091883836116fe565b505050565b604080516001808252818301909252606091602080830190803683370190505090506103e86bffffffffffffffffffffffff16815f815181106109625761096261383a565b602002602001018181525050919050565b61097e335b8261179d565b610a0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610850565b61091883838361185a565b5f80610a3873ffffffffffffffffffffffffffffffffffffffff86168585611b54565b9050610a4587878361133d565b979650505050505050565b5f80610a5b84611450565b94600a90930493505050565b61091883838360405180602001604052805f81525061111a565b610a8a33610978565b610b16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610850565b610b1f81611c32565b50565b5f8181526067602052604081205473ffffffffffffffffffffffffffffffffffffffff16806106c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610850565b5f610bb88484611d1b565b9050610bc582600161110b565b9392505050565b6060610bd6611fe0565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff8216610c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610850565b5073ffffffffffffffffffffffffffffffffffffffff165f9081526068602052604090205490565b5f610cb385858561133d565b9050610cc082600161110b565b949350505050565b5f54610100900460ff1615808015610ce657505f54600160ff909116105b80610cff5750303b158015610cff57505f5460ff166001145b610d8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610850565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610de7575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000612e2daddc89d91409e40f946f9f7cfe422e777e1614610e8d576040517e9035c100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000612e2daddc89d91409e40f946f9f7cfe422e777e166004820152602401610850565b610efe85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f890181900481028201810190925287815292508791508690819084018382808284375f920191909152506120ae92505050565b60c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff88161790558015610fa0575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60c95473ffffffffffffffffffffffffffffffffffffffff1633146110155760c9546040517fef82335f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610850565b60ca6110228284836138ac565b507f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad82826040516110549291906139c4565b60405180910390a15050565b6060606680546106da906137e9565b5f61107d8787878787610a15565b905061108a82600161110b565b9695505050505050565b60c95473ffffffffffffffffffffffffffffffffffffffff1633146111015760c9546040517fef82335f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610850565b61110961214e565b565b61111633838361224d565b5050565b611124338361179d565b6111b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610850565b6111bc84848484612379565b50505050565b604080516001808252818301909252606091602080830190803683370190505090506111ed82611450565b815f815181106111ff576111ff61383a565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050919050565b6040805160018082528183019092526060918291906020808301908036833701905050915061126c83611450565b825f8151811061127e5761127e61383a565b73ffffffffffffffffffffffffffffffffffffffff929092166020928302919091018201526040805160018082528183019092529182810190803683370190505090506103e86bffffffffffffffffffffffff16815f815181106112e4576112e461383a565b602002602001018181525050915091565b606061130082611674565b611308611fe0565b5f83815260cd6020908152604091829020915161132793929101613a9d565b6040516020818303038152906040529050919050565b5f73ffffffffffffffffffffffffffffffffffffffff821661138b576040517f49860fb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113958484611d1b565b5f81815260cc602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716908117909155905192935083929091907f296490d14aadeb9208962e029edf126e34fe835b4ed9dc8c91602df4d0476695908290a49392505050565b5f610bc58383611d1b565b6060610bd67f4e465420436f6c6c656374696f6e00000000000000000000000000000000000e61241c565b5f81815260cc602052604090205473ffffffffffffffffffffffffffffffffffffffff1680611494575060c95473ffffffffffffffffffffffffffffffffffffffff165b919050565b5f60cb83836040516114ac929190613aba565b9081526040519081900360200190205415159392505050565b60c95473ffffffffffffffffffffffffffffffffffffffff1633146115325760c9546040517fef82335f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610850565b610b1f81612459565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a0000000000000000000000000000000000000000000000000000000014806115cd57507fffffffff0000000000000000000000000000000000000000000000000000000082167f40c1a06400000000000000000000000000000000000000000000000000000000145b8061161957507fffffffff0000000000000000000000000000000000000000000000000000000082167fbb3bafd600000000000000000000000000000000000000000000000000000000145b8061166557507fffffffff0000000000000000000000000000000000000000000000000000000082167fb779958400000000000000000000000000000000000000000000000000000000145b806106c557506106c582612684565b5f8181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff16610b1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610850565b5f81815260696020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416908117909155819061175782610b22565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f806117a883610b22565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611815575073ffffffffffffffffffffffffffffffffffffffff8082165f908152606a602090815260408083209388168352929052205460ff165b80610cc057508373ffffffffffffffffffffffffffffffffffffffff1661183b8461075b565b73ffffffffffffffffffffffffffffffffffffffff1614949350505050565b8273ffffffffffffffffffffffffffffffffffffffff1661187a82610b22565b73ffffffffffffffffffffffffffffffffffffffff161461191d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610850565b73ffffffffffffffffffffffffffffffffffffffff82166119bf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610850565b8273ffffffffffffffffffffffffffffffffffffffff166119df82610b22565b73ffffffffffffffffffffffffffffffffffffffff1614611a82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610850565b5f81815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526068855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5f80611bac84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505073ffffffffffffffffffffffffffffffffffffffff8916929150506126d9565b905080806020019051810190611bc29190613ac9565b915073ffffffffffffffffffffffffffffffffffffffff82163b611c2a576040517f8556197e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602401610850565b509392505050565b60c95473ffffffffffffffffffffffffffffffffffffffff163314611c9f5760c9546040517fef82335f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610850565b5f81815260cd602052604090819020905160cb91611cbc91613ae4565b90815260408051602092819003830190205f9081905583815260cc835281812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905560cd9092528120611d12916130d9565b610b1f8161271c565b60c9545f9073ffffffffffffffffffffffffffffffffffffffff163314611d8a5760c9546040517fef82335f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610850565b5f829003611dc4576040517f5a3ee44200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cb8383604051611dd6929190613aba565b9081526020016040518091039020545f14611e1d576040517fcd47065e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c98054601490611e4b9074010000000000000000000000000000000000000000900463ffffffff16613aef565b825463ffffffff9182166101009390930a838102908302199091161790925560c9549092507c010000000000000000000000000000000000000000000000000000000090041615801590611ec6575060c9547c0100000000000000000000000000000000000000000000000000000000900463ffffffff1681115b15611f285760c9546040517f797049f00000000000000000000000000000000000000000000000000000000081527c010000000000000000000000000000000000000000000000000000000090910463ffffffff166004820152602401610850565b600160cb8484604051611f3c929190613aba565b9081526040805160209281900383019020929092555f83815260cd90915220611f668385836138ac565b50611f71338261277c565b8282604051611f81929190613aba565b6040518091039020813373ffffffffffffffffffffffffffffffffffffffff167fe2406cfd356cfbe4e42d452bde96d27f48c423e5f02b5d78695893308399519d8686604051611fd29291906139c4565b60405180910390a492915050565b606060ca8054611fef906137e9565b80601f016020809104026020016040519081016040528092919081815260200182805461201b906137e9565b80156120665780601f1061203d57610100808354040283529160200191612066565b820191905f5260205f20905b81548152906001019060200180831161204957829003601f168201915b5050505050905080515f036120ab575060408051808201909152600781527f697066733a2f2f0000000000000000000000000000000000000000000000000060208201525b90565b5f54610100900460ff16612144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610850565b6111168282612795565b61219a60c95463ffffffff780100000000000000000000000000000000000000000000000082048116740100000000000000000000000000000000000000009092048116919091031690565b15612220576121eb60c95463ffffffff780100000000000000000000000000000000000000000000000082048116740100000000000000000000000000000000000000009092048116919091031690565b6040517fa2cb84bb00000000000000000000000000000000000000000000000000000000815260040161085091815260200190565b60405133907fd3747e9bfbfe48316cef75f276e53ab68e800a3fa1a0d4540245a64b85c25988905f90a233ff5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610850565b73ffffffffffffffffffffffffffffffffffffffff8381165f818152606a602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61238484848461185a565b61239084848484612844565b6111bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610850565b60605f61242883612a30565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b8063ffffffff165f036124c35760c9546040517f89a313660000000000000000000000000000000000000000000000000000000081527c010000000000000000000000000000000000000000000000000000000090910463ffffffff166004820152602401610850565b60c9547c0100000000000000000000000000000000000000000000000000000000900463ffffffff1615801590612526575060c95463ffffffff7c0100000000000000000000000000000000000000000000000000000000909104811690821610155b156125885760c9546040517f07f4133a0000000000000000000000000000000000000000000000000000000081527c010000000000000000000000000000000000000000000000000000000090910463ffffffff166004820152602401610850565b60c95463ffffffff808316740100000000000000000000000000000000000000009092041611156126085760c9546040517fbcf4db270000000000000000000000000000000000000000000000000000000081527401000000000000000000000000000000000000000090910463ffffffff166004820152602401610850565b60c980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff8416908102919091179091556040517f5633fd1915094f39ec7d395ea541662e957f3fffdcaf492b661373bf00da98fd905f90a250565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fdfea951d0000000000000000000000000000000000000000000000000000000014806106c557506106c582612a70565b6060610bc583835f6040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250612b52565b60c98054600163ffffffff780100000000000000000000000000000000000000000000000080840482169290920116027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff909116179055610b1f81612c5c565b611116828260405180602001604052805f815250612d32565b5f54610100900460ff1661282b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610850565b60656128378382613b36565b5060666109188282613b36565b5f73ffffffffffffffffffffffffffffffffffffffff84163b15612a28576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906128ba903390899088908890600401613c4e565b6020604051808303815f875af1925050508015612912575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261290f91810190613c8c565b60015b6129dd573d80801561293f576040519150601f19603f3d011682016040523d82523d5f602084013e612944565b606091505b5080515f036129d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610850565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610cc0565b506001610cc0565b5f60ff8216601f8111156106c5576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd000000000000000000000000000000000000000000000000000000001480612b0257507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b806106c557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106c5565b606082471015612be4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610850565b5f808673ffffffffffffffffffffffffffffffffffffffff168587604051612c0c9190613ca7565b5f6040518083038185875af1925050503d805f8114612c46576040519150601f19603f3d011682016040523d82523d5f602084013e612c4b565b606091505b5091509150610a4587838387612dd4565b5f612c6682610b22565b9050612c7182610b22565b5f83815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff85168085526068845282852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558785526067909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b612d3c8383612e73565b612d485f848484612844565b610918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610850565b60608315612e695782515f03612e625773ffffffffffffffffffffffffffffffffffffffff85163b612e62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610850565b5081610cc0565b610cc08383613095565b73ffffffffffffffffffffffffffffffffffffffff8216612ef0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610850565b5f8181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612f7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610850565b5f8181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1615613006576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610850565b73ffffffffffffffffffffffffffffffffffffffff82165f81815260686020908152604080832080546001019055848352606790915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8151156130a55781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085091906131d6565b5080546130e5906137e9565b5f825580601f106130f4575050565b601f0160209004905f5260205f2090810190610b1f91905b8082111561311f575f815560010161310c565b5090565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b1f575f80fd5b5f60208284031215613160575f80fd5b8135610bc581613123565b5f5b8381101561318557818101518382015260200161316d565b50505f910152565b5f81518084526131a481602086016020860161316b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f610bc5602083018461318d565b5f602082840312156131f8575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610b1f575f80fd5b5f8060408385031215613231575f80fd5b823561323c816131ff565b946020939093013593505050565b5f8151808452602080850194508084015f5b838110156132785781518752958201959082019060010161325c565b509495945050505050565b602081525f610bc5602083018461324a565b5f805f606084860312156132a7575f80fd5b83356132b2816131ff565b925060208401356132c2816131ff565b929592945050506040919091013590565b5f8083601f8401126132e3575f80fd5b50813567ffffffffffffffff8111156132fa575f80fd5b602083019150836020828501011115613311575f80fd5b9250929050565b5f805f805f6060868803121561332c575f80fd5b853567ffffffffffffffff80821115613343575f80fd5b61334f89838a016132d3565b909750955060208801359150613364826131ff565b90935060408701359080821115613379575f80fd5b50613386888289016132d3565b969995985093965092949392505050565b5f80604083850312156133a8575f80fd5b50508035926020909101359150565b5f805f604084860312156133c9575f80fd5b833567ffffffffffffffff8111156133df575f80fd5b6133eb868287016132d3565b90945092505060208401356133ff816131ff565b809150509250925092565b5f6020828403121561341a575f80fd5b8135610bc5816131ff565b5f805f8060608587031215613438575f80fd5b843567ffffffffffffffff81111561344e575f80fd5b61345a878288016132d3565b909550935050602085013561346e816131ff565b9150604085013561347e816131ff565b939692955090935050565b5f805f805f6060868803121561349d575f80fd5b85356134a8816131ff565b9450602086013567ffffffffffffffff808211156134c4575f80fd5b6134d089838a016132d3565b90965094506040880135915080821115613379575f80fd5b5f80602083850312156134f9575f80fd5b823567ffffffffffffffff81111561350f575f80fd5b61351b858286016132d3565b90969095509350505050565b5f805f805f806080878903121561353c575f80fd5b863567ffffffffffffffff80821115613553575f80fd5b61355f8a838b016132d3565b909850965060208901359150613574826131ff565b90945060408801359080821115613589575f80fd5b5061359689828a016132d3565b90945092505060608701356135aa816131ff565b809150509295509295509295565b5f80604083850312156135c9575f80fd5b82356135d4816131ff565b9150602083013580151581146135e8575f80fd5b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f805f8060808587031215613633575f80fd5b843561363e816131ff565b9350602085013561364e816131ff565b925060408501359150606085013567ffffffffffffffff80821115613671575f80fd5b818701915087601f830112613684575f80fd5b813581811115613696576136966135f3565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156136dc576136dc6135f3565b816040528281528a60208487010111156136f4575f80fd5b826020860160208301375f60208483010152809550505050505092959194509250565b5f8151808452602080850194508084015f5b8381101561327857815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101613729565b602081525f610bc56020830184613717565b604081525f61377f6040830185613717565b8281036020840152613791818561324a565b95945050505050565b5f80604083850312156137ab575f80fd5b82356137b6816131ff565b915060208301356135e8816131ff565b5f602082840312156137d6575f80fd5b813563ffffffff81168114610bc5575f80fd5b600181811c908216806137fd57607f821691505b602082108103613834577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b601f821115610918575f81815260208120601f850160051c8101602086101561388d5750805b601f850160051c820191505b81811015610fa057828155600101613899565b67ffffffffffffffff8311156138c4576138c46135f3565b6138d8836138d283546137e9565b83613867565b5f601f841160018114613928575f85156138f25750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556139bd565b5f838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156139765786850135825560209485019460019092019101613956565b50868210156139b1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60208152816020820152818360408301375f818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b5f8154613a1c816137e9565b60018281168015613a345760018114613a6757613a93565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450613a93565b855f526020805f205f5b85811015613a8a5781548a820152908401908201613a71565b50505082870194505b5050505092915050565b5f8351613aae81846020880161316b565b61379181840185613a10565b818382375f9101908152919050565b5f60208284031215613ad9575f80fd5b8151610bc5816131ff565b5f610bc58284613a10565b5f63ffffffff808316818103613b2c577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6001019392505050565b815167ffffffffffffffff811115613b5057613b506135f3565b613b6481613b5e84546137e9565b84613867565b602080601f831160018114613bb6575f8415613b805750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610fa0565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015613c0257888601518255948401946001909101908401613be3565b5085821015613c3e57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b5f73ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261108a608083018461318d565b5f60208284031215613c9c575f80fd5b8151610bc581613123565b5f8251613cb881846020870161316b565b919091019291505056fea264697066735822122062bb98edc0927318d9c675a6b229fc439609358fa5d3890423cbde9d73f26ac564736f6c6343000814003300582103585cf9928072cd8fc6111506770bc15ecb39777d1a0b80d75c571238837966a058204e465420436f6c6c656374696f6e20496d706c656d656e746174696f6e2076360058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56304101005821036501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e94354058204e4654763600000000000000000000000000000000000000000000000000000a00582103ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c7041410219011505581e03887c43bc9a101e8002dfe025165c7fbfd766b4e4824c162880cafaae900701193cf805581e032b161c1794b0645935baef959ec1e2f341fafd5d947b5a9fc15dc07b80040205581e03fb062272a80cb29daf7bdd48dd9918571899894b780a557948278026d00c014707c106999279f703205e7af4cbe625831bd6c9c48f40f50ed58e35871e366a67db5e03046974e58305581e03356f78d5186bf0995ddef1c795128ebb1d177336ff7024f2684fb58c000c03464672d4c377a002193c5c031d780de25d81e2536f22287ea71c7d74daad247d30fdfb251ea166265689e60803bb3f3b830d62e4e04a59d6c10ae3ec95c305a82e304c13a6b6da6cd873bab43d032ccf769b60a23b76c6112ce2b7953dd210f18ed199699a68258954f09809a64e0335a2f7e01ba460dd5eecdcdc8fc6cd31d29055438cf183d850c976f28088158c033ae4da27ef3e59345dcce1b49faf854faf5020637be5c6846ab7cb8bda002dc203790f1e6be0c6d92604f6ce2557d46bda195c008e73b271420ca733835db3167e0300317b8dae690cc5a8dd590aee9220ba50fe9ed18967d08de1ed9845d41fbdec03e170742ccc2fcc0b906a904f4a7f6baa080b3bfec3e42bfd0c11539940544ef903b83675844a4428eb70d02c8fa80705d1e34ff31b6720288b3ae71a34cfb17f370219ffff03541d85883ca2a288ae3878d14bbf2fd88abcc86dae5adfe5dfc21ef57a735ae203839d67cf7f4353424021d0d35c56748ebf2349932c452e3688f93d10c885e9f70383df9ec3fb63d54a3082aaac3cba0b999eb86d15aecdc32d79b8c16e0e510a6a0219ffff034459ed4f836c4c84f460119c13ff4a8acbf3a1d336d23f61a3a16b1978067468031c084bfd95746bd1e2241ab8a0c82508556ac0b8e6f0e6c6109ce533e31e876503d31afd276a145d721f55a0eff392482efef2bf6ed763de1584363aa84cdeed540219ffff0328a2f2ca5b2917aa3977037483d3be47f25f37aaf329cc64e5abfd08c5cda42603245a8c44b6636ad4d6f94d07a0ffb9c63a8f9abe925b94ad9aacb2b7748bdeb603797b4cf9f8d121ba151ab56b8b647f81db5e96daa005bad1a90ee47783e867f8035a80d6a10a6960b646f42d0d5f493eb3d7252aa20e7b428e2bb98cee4324591d038e01e2a461cfd2da268ed22dc5e608258afd70993d7515a7da5b86c5172efe240374535041c4d936cc33044b41df7fae8f184dc945d844ea800a4b2c915743220e0397b5a12b1ffd211483d01d701e185059284f6a82bd6c2d029e2f9f2a46733c750366c724a4bae7147b0344b22e85af38c6586f04fdc21e407966a2b8e4b8c2d4be0325cb6429ff694b271024d55639fa580a26f53a53a8e6fc5cd8624b7f16990e6f038df45e3eecdcf4f1cbc2d3457b02828af16bfdba48e3a12d6b7ac2884685fd9d033e7194399e4191e4da5dfa74253f036ad7c40b518bab05b0b57592a8019e3a08030e1071efc027a2ae6a2785dc02dfac1e2d90b5a80b9ec589a2520dc3f19c4c9703538043e5beec3738748080babcf3e516be05c6fadb7186d237e7e37e729c89490329b3799a5d938fed3a895962721c1aeb09393bccc0036c1fcc170fd06773836e0363abb40b6c8eb42c5189e195896421d8241955393bb04f7abfc24a1ec06bb7bb0309ff26fd1ba2a44eed7a350bb336c74c9eb8c67be69af3c54038cdde4e8ac24303a8ea523b0e8a39b623dbc4b57fcfdc12294e100b02f8228dab3d1a3c291fe94e03ef8039bbcaae8a144c5ecef108f9b5c50fe88644c515eb57bf87693ffde273b203027c2046e1fee0c1f9d423cbee3a1426bd4d755074b8084a6bf29693b663702f03d0555cd45273121b659ede28fab68d713c91ac40f0670c50172b8428c659dcb703c68ce222ccdb502bfc4246497170e4f34ae8ca7a998b111d9a503c67dab268de05581e0387718ac6311ce57db5fcbac110d443b24435e50bf414677fa59655d0600401033b91ac772dc92e2e45bc106ca253d0c33f04308e377848865ec9514cc8936b1a04595ef16080604052600436106101a55760003560e01c806382230446116100e15780639e0bbd9f1161008a578063a7fc7a0711610064578063a7fc7a07146105bd578063c3540448146105dd578063e42e0ea9146105f0578063fd32692114610610576101ac565b80639e0bbd9f14610529578063a67f534d14610549578063a69685b514610592576101ac565b806390ea7413116100bb57806390ea7413146104b3578063915ad7e9146104f657806396f4130c14610516576101ac565b806382230446146104485780638c95ff1e146104685780638da5cb5b14610488576101ac565b806342cf35271161014e5780635dbd8f6b116101285780635dbd8f6b146103d55780636ccae054146103e85780637095d47114610408578063734427c814610428576101ac565b806342cf35271461031c57806352283e35146103505780635b94db27146103b5576101ac565b8063263af8e81161017f578063263af8e8146102af57806337c6145a146102f25780633bd1adec14610305576101ac565b80631028c2bd146101ec57806315b9a8b81461021557806320f99c0a14610263576101ac565b366101ac57005b60006101bb813560e01c610645565b90506060600436036004600037600080600436036000855af490503d6000803e8080156101e7573d6000f35b3d6000fd5b6101ff6101fa366004615aab565b614659565b60405161020c9190615b5a565b60405180910390f35b34801561022157600080fd5b5060015461024e907801000000000000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff909116815260200161020c565b34801561026f57600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161020c565b3480156102bb57600080fd5b5061028a6102ca366004615a90565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6101ff610300366004615a01565b6146e8565b34801561031157600080fd5b5061031a61479f565b005b34801561032857600080fd5b5061028a7f0000000000000000000000000f34a522ff82151c90679b73211955068fd854f181565b34801561035c57600080fd5b506103847fb3dc8da40000000000000000000000000000000000000000000000000000000081565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161020c565b3480156103c157600080fd5b5061031a6103d0366004615834565b6147fb565b61031a6103e3366004615936565b6148bb565b3480156103f457600080fd5b5061031a61040336600461587d565b6149df565b34801561041457600080fd5b5061028a610423366004615a90565b614a51565b34801561043457600080fd5b5061031a610443366004615a90565b614a62565b34801561045457600080fd5b5061031a6104633660046158be565b614b4f565b34801561047457600080fd5b5061024e610483366004615834565b614ced565b34801561049457600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661028a565b3480156104bf57600080fd5b5061028a6104ce366004615a90565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561050257600080fd5b5061028a610511366004615a90565b610645565b61031a610524366004615a3c565b614e39565b34801561053557600080fd5b5061031a610544366004615a90565b6151f6565b34801561055557600080fd5b5061028a610564366004615a90565b63ffffffff1660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b34801561059e57600080fd5b506105af68056bc75e2d6310000081565b60405190815260200161020c565b3480156105c957600080fd5b5061024e6105d8366004615834565b6152e3565b61031a6105eb366004615978565b615431565b3480156105fc57600080fd5b5061031a61060b366004615851565b61553a565b34801561061c57600080fd5b5060015461024e9074010000000000000000000000000000000000000000900463ffffffff1681565b60006101818263ffffffff1610156145c8576101018263ffffffff1610156130585760818263ffffffff161015611b675760418263ffffffff1610156110f65760218263ffffffff161015610bc55760118263ffffffff1610156109345760098263ffffffff1610156107f35760058263ffffffff16101561075a5760038263ffffffff161015610715578163ffffffff16600114156106fa5750738cd6bacdae46b449e2e5b34e348a4ed459c84d50919050565b507331524750cd865ff6a3540f232754fb974c18585c919050565b8163ffffffff166003141561073f575073ed9b37342bec8f3a2d7b000732ec87498aa6ec6a919050565b5073e8704ef6211f8988ccbb11badc89841808d66890919050565b60078263ffffffff1610156107ae578163ffffffff16600514156107935750739aff58c460a461578c433e11c4108d1c4cf77761919050565b50732d1733886cfd465b0b99f1492f40847495f334c5919050565b8163ffffffff16600714156107d8575073715497be4d130f04b8442f0a1f7a9312d4e54fc4919050565b507390c8a40c38e633b5b0e0d0585b9f7fa05462caaf919050565b600d8263ffffffff16101561089b57600b8263ffffffff161015610856578163ffffffff166009141561083b575073a402b70fcff3f4a8422b93ef58e895021eade4f6919050565b5073c1b718522e15cd42c4ac385a929fc2b51f5b892e919050565b8163ffffffff16600b1415610880575073a97bf2f7c26c43c010c349f52f5ea5dc49b2dd38919050565b5073969423d71b62c81d2f28d707364c9dc4a0764c53919050565b600f8263ffffffff1610156108ef578163ffffffff16600d14156108d4575073f86729934c083fbec8c796068a1fc60701ea1207919050565b5073d7cc2571f5823caca26a42690d2be7803dd5393f919050565b8163ffffffff16600f14156109195750737c8837a279bbbf7d8b93413763176de9f65d5bb9919050565b507313b81c27b588c07d04458ed7ddbdbd26d1e39bcc919050565b60198263ffffffff161015610a845760158263ffffffff1610156109eb5760138263ffffffff1610156109a6578163ffffffff166011141561098b57507352560ac678afa1345d15474287d16dc1ea3f78ae919050565b50731e31e376551459667cd7643440c1b21ce69065a0919050565b8163ffffffff16601314156109d0575073c57d822cb3288e7b97ef8f8af0ecdcd1b783529b919050565b50732197a1d9af24b4d6a64bff95b4c29fcd3ff28c30919050565b60178263ffffffff161015610a3f578163ffffffff1660151415610a24575073e3700feaa5100041bf6b7adba1f72f647809fd00919050565b5073c02e8a0fdabf0eefcea025163d90b5621e2b9948919050565b8163ffffffff1660171415610a69575073f5144235e2926cab3c69b30113254fa632f72d62919050565b5073ba3f92313b00a1f7bc53b2c24eb195c8b2f57682919050565b601d8263ffffffff161015610b2c57601b8263ffffffff161015610ae7578163ffffffff1660191415610acc57507377a6856fe1ffa5beb55a1d2ed86e27c7c482cb76919050565b50734826ff4e01e44b1fcefbfb38cd96687eb7786b44919050565b8163ffffffff16601b1415610b1157507355ff3f5493cf5e80e76dea7e327b9cd8440af646919050565b5073f430db544be9770503be4aa51997aa19bbd5ba4f919050565b601f8263ffffffff161015610b80578163ffffffff16601d1415610b655750730f166446ce1484ee3b0663e7e67df10f5d240115919050565b50736365095d92537f242db5edfdd572745e72ac33d9919050565b8163ffffffff16601f1415610baa5750735c7bc93f06ce3eae75adf55e10e23d2c1de5bc65919050565b5073e46383bad90d7a08197ccf08972e9dcdccce9ba4919050565b60318263ffffffff161015610e655760298263ffffffff161015610d245760258263ffffffff161015610c8b5760238263ffffffff161015610c46578163ffffffff1660211415610c2b575073f0f21710c071e3b728bdc4654c3c0b873aaaa308919050565b507363bc9ed3acaaeb0332531c9fb03b0a2352e9ff25919050565b8163ffffffff1660231415610c70575073d1ce808625cb4007a1708824ae82cdb0ece57de9919050565b507357bbb148112f4ba224841c3fe018884171004661919050565b60278263ffffffff161015610cdf578163ffffffff1660251415610cc4575073037f7d6933036f34dfabd40ff8e4d789069f92e3919050565b5073ef978c280915cff3dca4edfa8932469e40ada1e1919050565b8163ffffffff1660271415610d0957507392ee9e071b13f7ecfd62b7ded404a16cbc223cd3919050565b507394ae539c186e41ed762271338edf140414d1e442919050565b602d8263ffffffff161015610dcc57602b8263ffffffff161015610d87578163ffffffff1660291415610d6c57507330a64bbe4ddbd43da2368efd1eb2d80c10d84dab919050565b50733aeabf81c1dc4c1b73d5b2a95410f126426fb596919050565b8163ffffffff16602b1415610db157507325b08ab3d0c8ea4cc9d967b79688c6d98f3f563a919050565b5073ea40cb15c9a3bbd27af6474483886f7c0c9ae406919050565b602f8263ffffffff161015610e20578163ffffffff16602d1415610e055750739580113cc04e5a0a03359686304ef3a80b936dd3919050565b5073d211c826d568957f3b66a3f4d9c5f68ccc66e619919050565b8163ffffffff16602f1415610e4a575073cee24d0635c4c56315d133b031984d4a6f509476919050565b50733922e6b987983229798e7a20095ec372744d4d4c919050565b60398263ffffffff161015610fb55760358263ffffffff161015610f1c5760338263ffffffff161015610ed7578163ffffffff1660311415610ebc5750732d92d03413d296e1f31450479349757187f2a2b7919050565b50730fe5308ee90fc78f45c89db6053ea859097860ca919050565b8163ffffffff1660331415610f0157507308ba68e067c0505baf0c1311e0cfb2b1b59b969c919050565b50739bee5dddf75c24897374f92a534b7a6f24e97f4a919050565b60378263ffffffff161015610f70578163ffffffff1660351415610f555750731fc5a90b232208704b930c1edf82ffc6acc02734919050565b50735b1b0417cb44c761c2a23ee435d011f0214b3c85919050565b8163ffffffff1660371415610f9a5750739d70cdaca12a738c283020760f449d7816d592ec919050565b507395a23b9cb830eccfddd5df56a4ec665e3381fa12919050565b603d8263ffffffff16101561105d57603b8263ffffffff161015611018578163ffffffff1660391415610ffd575073483a957cf1251c20e096c35c8399721d1200a3fc919050565b5073b4ad39cb293b0ec7feda743442769a7ff04987cd919050565b8163ffffffff16603b14156110425750734c543ad78c1590d81bae09fc5b6df4132a2461d0919050565b5073471d5e5195c563902781734cfe1ff3981f8b6c86919050565b603f8263ffffffff1610156110b1578163ffffffff16603d14156110965750731b12a54b5e606d95b8b8d123c9cb09221ee37584919050565b5073e4127cc550bac433646a7d998775a84dac16c7f3919050565b8163ffffffff16603f14156110db575073ecb1b55ab12e7dd788d585c6c5cd61b5f87be836919050565b5073f91ef487c5a1579f70601b6d347e19756092eebf919050565b60618263ffffffff1610156116365760518263ffffffff1610156113a55760498263ffffffff1610156112645760458263ffffffff1610156111cb5760438263ffffffff161015611186578163ffffffff166041141561116b57507334a16a7e9badeefd4f056310cbe0b1423fa1b760919050565b507360e10e80c7680f429dbbc232830becd3d623c4cf919050565b8163ffffffff16604314156111b057507366465285b8d65362a1d86ce00fe2be949fd6debf919050565b50735ab231b7e1a3a74a48f67ab7bde5cdd4267022e0919050565b60478263ffffffff16101561121f578163ffffffff16604514156112045750733a1c3633ee79d43366f5c67802a746afd6b162ba919050565b50730c4bfcba8dc3c811437521a80e81e41daf479039919050565b8163ffffffff16604714156112495750736caf25d2e139c5431a1fa526eaf8d73ff2e6252c919050565b507374ad21e09fda68638ce14a3009a79b6d16574257919050565b604d8263ffffffff16101561130c57604b8263ffffffff1610156112c7578163ffffffff16604914156112ac575073d4923a61008894b99cc1cd3407ef9524f02aa0ca919050565b50736f159b5eb823bd415886b9271aa2a723a00a1987919050565b8163ffffffff16604b14156112f1575073742a8aa42e7bfb4554de30f4fb07ffb6f2068863919050565b50734ae9702d3360400e47b446e76de063acab930101919050565b604f8263ffffffff161015611360578163ffffffff16604d14156113455750730e19a0a44dda7dad854ec5cc867d16869c4e80f4919050565b5073e021a51968f25148f726e326c88d2556c5647557919050565b8163ffffffff16604f141561138a57507364287bdddaef4d94e4599a3d882bed29e6ada4b6919050565b5073cbb57fd2e19cc7e9d444d5b4325a2f1047d0c73f919050565b60598263ffffffff1610156114f55760558263ffffffff16101561145c5760538263ffffffff161015611417578163ffffffff16605114156113fc575073373de80df7d82cff6d76f29581b360c56331e957919050565b50730466356e131ad61596a51f86bad1c03a328960d8919050565b8163ffffffff166053141561144157507301726b960992f1b74311b248e2a922fc707d43a6919050565b50732e21bdf9a4509b89795bce7e132f248a75814cec919050565b60578263ffffffff1610156114b0578163ffffffff1660551415611495575073769512b23aeff842379091d3b6e4b5456f631d42919050565b5073e7ed9be946a74ec19325d39c6eeb57887ccb2b0d919050565b8163ffffffff16605714156114da575073c4d01ec357c2b511d10c15e6b6974380f0e62e67919050565b50735bc49cc9dd77becf2fd3a3c55611e84e69afa3ae919050565b605d8263ffffffff16101561159d57605b8263ffffffff161015611558578163ffffffff166059141561153d57507348bcd879954fa14e7dbdaeb56f79c1e9ddcb69ec919050565b5073e929bdde21b462572fcaa4de6f49b9d3246688d0919050565b8163ffffffff16605b141561158257507385aae300438222f0e3a9bc870267a5633a9438bd919050565b507351f72e1096a81c55cd142d66d39b688c657f9be8919050565b605f8263ffffffff1610156115f1578163ffffffff16605d14156115d65750733a8a05bf68ac54b01e6c0f492abf97465f3d15f9919050565b5073145aa67133f0c2c36b9771e92e0b7655f0d59040919050565b8163ffffffff16605f141561161b575073a030315d7db11f9892758c9e7092d841e0adc618919050565b5073df1f8d81a3734bdddefac6ca1596e081e57c3044919050565b60718263ffffffff1610156118d65760698263ffffffff1610156117955760658263ffffffff1610156116fc5760638263ffffffff1610156116b7578163ffffffff166061141561169c575073ff2833123b58aa05d04d7fb99f5fb768b2b435f8919050565b5073c8f09c1fd751c570233765f71b0e280d74e6e743919050565b8163ffffffff16606314156116e15750733026da6ceca2e5a57a05153653d9212ffaaa49d8919050565b5073de68ee703de0d11f67b0ce5891cb4a903de6d160919050565b60678263ffffffff161015611750578163ffffffff1660651415611735575073e23a7730e81fb4e87a6d0bd9f63ee77ac86c3da4919050565b50738b1dbe04ad76a7d8bc079cacd3ed4d99b897f4a0919050565b8163ffffffff166067141561177a575073bb227240fa459b69c6889b2b8cb1be76f118061f919050565b5073c062b9b3f0db28bb8afafcd4d075729344114ffe919050565b606d8263ffffffff16101561183d57606b8263ffffffff1610156117f8578163ffffffff16606914156117dd575073553188aa45f5fdb83ec4ca485982f8fc082480d1919050565b50730109d83d746eacb6d4014953d9e12d6ca85e330b919050565b8163ffffffff16606b141561182257507345b1bed29812f5bf6711074acd180b2aeb783ad9919050565b5073da06ec8c19aea31d77f60299678cba40e743e1ad919050565b606f8263ffffffff161015611891578163ffffffff16606d14156118765750733cc5235c97d975a9b4fd4501b3446c981ea3d855919050565b5073a1827267d6bd989ff38580ae3d9deff6acf19163919050565b8163ffffffff16606f14156118bb5750733663caa0433a3d4171b3581cf2410702840a735a919050565b50737575d0a7614f655ba77c74a72a43bbd4fa6246a3919050565b60798263ffffffff161015611a265760758263ffffffff16101561198d5760738263ffffffff161015611948578163ffffffff166071141561192d5750732516defc18bc07089c5daff5eafd7b0ef64611e2919050565b5073fec5ff08e20fbc107a97af2d38bd0025b84ee233919050565b8163ffffffff16607314156119725750730fb5763a87242b25243e23d73f55945fe787523a919050565b5073e4c00db89678dbf8391f430c578ca857dd98ade1919050565b60778263ffffffff1610156119e1578163ffffffff16607514156119c65750738f2a22061f9f35e64f14523dc1a5f8159e6a21b7919050565b507318e4b838ae966917e20e9c9c5ad359cdd38303bb919050565b8163ffffffff1660771415611a0b57507361acb1d3dcb3e3429832a164cc0fc9849fb75a4a919050565b50737681e3c8e7a41dca55c257cc0d1ae757f5530e65919050565b607d8263ffffffff161015611ace57607b8263ffffffff161015611a89578163ffffffff1660791415611a6e575073806a2ab9748c3d1db976550890e3f528b7e8faec919050565b5073bdb8a5dd52c2c239fbc31e9d43b763b0197028ff919050565b8163ffffffff16607b1415611ab3575073474ec9203706010b9978d6bd0b105d36755e4848919050565b50738dfd0d829b303f2239212e591a0f92a32880f36e919050565b607f8263ffffffff161015611b22578163ffffffff16607d1415611b07575073ad4bce9745860b1add6f1bd34a916f050e4c82c2919050565b5073bc701115b9fe14bc8cc5934cdc92517173e308c4919050565b8163ffffffff16607f1415611b4c5750730d1918d786db8546a11aded475c98370e06f255e919050565b5073ee44f57cd6936db55b99163f3df367b01eda785a919050565b60c18263ffffffff1610156125e75760a18263ffffffff1610156120b65760918263ffffffff161015611e255760898263ffffffff161015611ce45760858263ffffffff161015611c4b5760838263ffffffff161015611c06578163ffffffff1660811415611beb57507363044521fe5a1e488d7ed419cd0e35b7c24f2aa7919050565b5073410085e73bd85e90d97b84a68c125adb9f91f85b919050565b8163ffffffff1660831415611c305750737913fe97e07c7a397ec274ab1d4e2622c88ec5d1919050565b5073977f9fe93c064dcf54157406daabc3a722e8184c919050565b60878263ffffffff161015611c9f578163ffffffff1660851415611c84575073cd2236468722057cfbbabad2db3dea9c20d5b01b919050565b507317c7287a491cf5ff81e2678cf2bfae4333f6108c919050565b8163ffffffff1660871415611cc9575073354d9a5dbf96c71b79a265f03b595c6fdc04dadd919050565b5073b4e409eb8e775eefeb0344f9eee884cc7ed21c69919050565b608d8263ffffffff161015611d8c57608b8263ffffffff161015611d47578163ffffffff1660891415611d2c575073a1a3c4670ad69d9be4ab2d39d1231fec2a63b519919050565b50734589a22199870729c1be5cd62ee93bed858113e6919050565b8163ffffffff16608b1415611d715750738e7b864db26bd6c798c38d4ba36eba0d6602cf11919050565b5073a2d17c7260a4cb7b9854e89fc367e80e87872a2d919050565b608f8263ffffffff161015611de0578163ffffffff16608d1415611dc5575073c7f0edf0a1288627b0432304918a75e9084cbd46919050565b5073e4b4ef1f9a4abfedb371fa7a6143993b15d4df25919050565b8163ffffffff16608f1415611e0a575073fe3d84a2ef306febb5452441c9bdbb6521666f6a919050565b50738a12b6c64121920110ae58f7cd67dfec21c6a4c3919050565b60998263ffffffff161015611f755760958263ffffffff161015611edc5760938263ffffffff161015611e97578163ffffffff1660911415611e7c57507376c4d9afc4717a2baac4e5f26cccf02351f7a3da919050565b5073d4719ba550e397aeacca1ad2201c1ba69024faaf919050565b8163ffffffff1660931415611ec15750739646126ce025224d1682c227d915a386efc0a1fb919050565b50734dd8af2e3f2044842f0247920bc4babb636915ea919050565b60978263ffffffff161015611f30578163ffffffff1660951415611f155750738e8a327183af0cf8c2ece9f0ed547c42a160d409919050565b50739d49614cae1c685c71678ca6d8cdf7584bfd0740919050565b8163ffffffff1660971415611f5a5750735a00ef257394cbc31828d48655e3d39e9c11c93d919050565b5073c9a2751b38d3ddd161a41ca0135c5c6c09ec1d56919050565b609d8263ffffffff16101561201d57609b8263ffffffff161015611fd8578163ffffffff1660991415611fbd5750737e1c261640a525c94ca4f8c25b48cf754dd83590919050565b5073409fe24ba6f6bd5af31c1aaf8059b986a3158233919050565b8163ffffffff16609b1415612002575073704cf5bfdadc0f55fdbb53b6ed8b582e018a72a2919050565b50733982bf65d7d6e77e3b6661cd6f6468c247512737919050565b609f8263ffffffff161015612071578163ffffffff16609d14156120565750733982b9f26ffd67a13ee371e2c0a9da338ba70e7f919050565b50736d834ab385900c1f49055d098e90264077fbc4f2919050565b8163ffffffff16609f141561209b57507311fe5f70779a094b7166b391e1fb73d422ef4e4d919050565b5073d347e4e47280d21f13b73d89c6d16f867d50dd13919050565b60b18263ffffffff1610156123565760a98263ffffffff1610156122155760a58263ffffffff16101561217c5760a38263ffffffff161015612137578163ffffffff1660a1141561211c575073b6035edd53dda28d8b69b4ae9836e40c80306cd7919050565b507354c884e6f5c7ccfeca990396c520c858c922b6ca919050565b8163ffffffff1660a314156121615750735ea93e240b083d686558ed607bc013d88057ce46919050565b50734c7131ee812de685cbe4e2ccb033d46ecd46612e919050565b60a78263ffffffff1610156121d0578163ffffffff1660a514156121b5575073c1a5be9f0c33d8483801d702111068669f81ff91919050565b50739e5fab91455be5e5b2c05967e73f456c8118b1fc919050565b8163ffffffff1660a714156121fa5750733d9a05927223e0dc2f382831770405885e22f0d8919050565b50736303a011fb6063f5b1681cb5a9938ea278dc6128919050565b60ad8263ffffffff1610156122bd5760ab8263ffffffff161015612278578163ffffffff1660a9141561225d575073e9c60795c90c66797e4c8e97511ea07cdada32be919050565b5073d56cc98e69a1e13815818b466a8aa6163d84234a919050565b8163ffffffff1660ab14156122a257507347ebb9d36a6e40895316cd894e4860d774e2c531919050565b5073a5eb293629410065d14a7b1663a67829b0618292919050565b60af8263ffffffff161015612311578163ffffffff1660ad14156122f65750731b3b4c8146f939ce00899db8b3ddef0062b7e023919050565b5073257bbc11653625ebfb6a8587ef4f4fbe49828eb3919050565b8163ffffffff1660af141561233b57507344cc979c01b5bb1eac21301e73c37200dfd06f59919050565b50732972fdf43352225d82754c0174ff853819d1ef2a919050565b60b98263ffffffff1610156124a65760b58263ffffffff16101561240d5760b38263ffffffff1610156123c8578163ffffffff1660b114156123ad5750733e54144f032648a04d62d79f7b4b93ff3ac2333b919050565b5073444016102db8adbe73c3b6703a1ea7f2f75a510d919050565b8163ffffffff1660b314156123f2575073ac079143f98a6eb744fde34541ebf243df5b5ded919050565b5073ae9010767fb112d29d35cedfba2b372ad7a308d3919050565b60b78263ffffffff161015612461578163ffffffff1660b51415612446575073fe0bccf9ccc2265d5fb3450743f17dfe57ae1e56919050565b507304ed8c0545716119437a45386b1d691c63234c7d919050565b8163ffffffff1660b7141561248b575073636c14013e531a286bc4c848da34585f0bb73d59919050565b50732fa67fc7ecc5caa01c653d3bfea98ecc5db9c42a919050565b60bd8263ffffffff16101561254e5760bb8263ffffffff161015612509578163ffffffff1660b914156124ee57507323e9a0fc180818aa872d2079a985217017e97bd9919050565b507379a95c3ef81b3ae64ee03a9d5f73e570495f164e919050565b8163ffffffff1660bb1415612533575073a7ea0e88f04a84ba0ad1e396cb07fa3fdad7df6d919050565b5073d23ca1278a2b01a3c0ca1a00d104b11c1ebe6f42919050565b60bf8263ffffffff1610156125a2578163ffffffff1660bd1415612587575073707bc4a9fa2e349aed5df4e9f5440c15aa9d14bd919050565b50737e290f2dd539ac6ce58d8b4c2b944931a1fd3612919050565b8163ffffffff1660bf14156125cc575073707aa5503088ce06ba450b6470a506122ea5c8ef919050565b5073fbb3f7bf680deeb149f4e7bc30ea3ddfa68f3c3f919050565b60e18263ffffffff161015612b275760d18263ffffffff1610156128965760c98263ffffffff1610156127555760c58263ffffffff1610156126bc5760c38263ffffffff161015612677578163ffffffff1660c1141561265c575073de74ad8ccc3dbf14992f49cf24f36855912f4934919050565b5073409ba83df7777f070b2b50a10a41de2468d2a3b3919050565b8163ffffffff1660c314156126a15750735cb7be90a5dd7cfda54e87626e254fe8c18255b4919050565b50730a684fe12bc64fb72b59d0771a566f49bc090356919050565b60c78263ffffffff161015612710578163ffffffff1660c514156126f5575073df30048d91f8fa2bcfc54952b92bfa8e161d3360919050565b5073050825fff032a547c47061cf0696fdb0f65aea5d919050565b8163ffffffff1660c7141561273a575073d55e671dac1f03d366d8535073ada5db2aab1ea2919050565b50739470c704a9616c8cd41c595fcd2181b6fe2183c2919050565b60cd8263ffffffff1610156127fd5760cb8263ffffffff1610156127b8578163ffffffff1660c9141561279d5750732d9ffd275181f5865d5e11cbb4ced1521c4df9f1919050565b5073816d28dec10ec95df5334f884de85ca6215918d8919050565b8163ffffffff1660cb14156127e2575073d1f87267c4a43835e666dd69df077e578a3b6299919050565b507339e89bde9dacbe5468c025de371fbda12bdebab1919050565b60cf8263ffffffff161015612851578163ffffffff1660cd14156128365750737b40a3207956ecad6686e61efcac48912fcd0658919050565b5073090cf10d793b1efba9c7d76115878814b663859a919050565b8163ffffffff1660cf141561287b575073312a59c06e41327878f2063ed0e9c282c1da3afc919050565b50734f1188f46236dd6b5de11ebf2a9ff08716e7deb6919050565b60d98263ffffffff1610156129e65760d58263ffffffff16101561294d5760d38263ffffffff161015612908578163ffffffff1660d114156128ed5750730a6f9a3f4fa49909bbfb4339cbe12b42f53bbbed919050565b507301d13d7acacbb955b81935c80fff31e14bdfa71f919050565b8163ffffffff1660d31415612932575073691a14fa6c7360422ec56df5876f84d4edd7f00a919050565b507397aad18d886d181a9c726b3b6ae15a0a69f5af73919050565b60d78263ffffffff1610156129a1578163ffffffff1660d514156129865750732917241371d2099049fa29432dc46735baec33b4919050565b50735f20f20f7890c2e383e29d4147c9695a371165f5919050565b8163ffffffff1660d714156129cb575073ec0a60e639958335662c5219a320ccebb56c6077919050565b507396d63cf5062975c09845d17ec672e10255866053919050565b60dd8263ffffffff161015612a8e5760db8263ffffffff161015612a49578163ffffffff1660d91415612a2e575073ff57429e57d383939cab50f09abbfb63c0e6c9ad919050565b507318e393a7c8578fb1e235c242076e50013cddd0d7919050565b8163ffffffff1660db1415612a73575073e7e5238af5d61f52e9b4acc025f713d1c0216507919050565b5073428401d4d0f25a2ee1da4d5366cb96ded425d9bd919050565b60df8263ffffffff161015612ae2578163ffffffff1660dd1415612ac757507342e5733551ff1ee5b48aa9fc2b61af9b58c812e6919050565b507364df9c7a0551b056d860bc2419ca4c1ef75320be919050565b8163ffffffff1660df1415612b0c57507346006925506145611bbf0263243d8627daf26b0f919050565b50738d64be884314662804eaab884531f5c50f4d500c919050565b60f18263ffffffff161015612dc75760e98263ffffffff161015612c865760e58263ffffffff161015612bed5760e38263ffffffff161015612ba8578163ffffffff1660e11415612b8d575073157a62d92d07b5ce221a5429645a03bbace85373919050565b5073af037d33e1f1f2f87309b425fe8a9d895ef3722b919050565b8163ffffffff1660e31415612bd2575073921d1154e494a2f7218a37ad7b17701f94b4b40e919050565b5073f282b4555186d8dea51b8b3f947e1e0568d09bc4919050565b60e78263ffffffff161015612c41578163ffffffff1660e51415612c26575073a794e2e1869765a4600b3dfd8a4ebcf16350f6b6919050565b5073fefb048e20c5652f7940a49b1980e0125ec4d358919050565b8163ffffffff1660e71415612c6b575073220104b641971e9b25612a8f001bf48abb23f1cf919050565b5073cb9d373bb54a501b35dd3be5bf4ba43ca31f7035919050565b60ed8263ffffffff161015612d2e5760eb8263ffffffff161015612ce9578163ffffffff1660e91415612cce57507337d627f56e3ff36ac316372109ea82e03ac97dac919050565b50734e81355ffb4a271b4ea59ff78da2b61c7833161f919050565b8163ffffffff1660eb1415612d13575073add8d65caf6cc9ad73127b49e16ea7ac29d91e87919050565b5073630f9b95626487dfeae3c97a44db6c59cf35d996919050565b60ef8263ffffffff161015612d82578163ffffffff1660ed1415612d6757507378ce2bc8238b679680a67fcb98c5a60e4ec17b2d919050565b5073a38d776028ed1310b9a6b086f67f788201762e21919050565b8163ffffffff1660ef1415612dac5750737bb5178827b76b86753ed62a0d662c72cecb1bd3919050565b50734fac26f61c76ec5c3d43b43edfaff0736ae0e3da919050565b60f98263ffffffff161015612f175760f58263ffffffff161015612e7e5760f38263ffffffff161015612e39578163ffffffff1660f11415612e1e575073791bb49bffa7129d6889fdb27744422ac4571a85919050565b507326766ffebb5fa564777913a6f101df019ab32afa919050565b8163ffffffff1660f31415612e6357507305e98e5e95b4ecbbbaf3258c3999cc81ed8048be919050565b5073c5c4621e52f1d6a1825a5ed4f95855401a3d9c6b919050565b60f78263ffffffff161015612ed2578163ffffffff1660f51415612eb7575073fcb15f909ba7fc7ea083503fb4c1020203c107eb919050565b5073bd27603279d969c74f2486ad14e71080829dfd38919050565b8163ffffffff1660f71415612efc575073ff2f756bcecc1a55bfc09a30cc5f64720458cfcb919050565b50733bfb968febc12f4e8420b2d016efce1e615f7246919050565b60fd8263ffffffff161015612fbf5760fb8263ffffffff161015612f7a578163ffffffff1660f91415612f5f575073982ee9ffe23051a2ec945ed676d864fa8345222b919050565b5073e101899100785e74767d454fff0131277bad48d9919050565b8163ffffffff1660fb1415612fa45750734f730c0c6b3b5b7d06ca511379f4aa5bfb2e9525919050565b50735499c36b365795e4e0ef671af6c2ce26d7c78265919050565b60ff8263ffffffff161015613013578163ffffffff1660fd1415612ff85750738af51f7237fc8fb2fc3e700488a94a0ac6ad8b5a919050565b5073da8716df61213c0b143f2849785fb85928084857919050565b8163ffffffff1660ff141561303d575073f040cf9b1ebd11bf28e04e80740df3dde717e4f5919050565b5073b87ba32f759d14023c7520366b844df7f0f036c2919050565b6101418263ffffffff161015613b18576101218263ffffffff1610156135c8576101118263ffffffff161015613328576101098263ffffffff1610156131e0576101058263ffffffff161015613144576101038263ffffffff1610156130fe578163ffffffff1661010114156130e35750730edde681b8478f0c3194f468edd2db5e75c65cdd919050565b507359c70900fca06ee2ace1bdd5a8d0af0cc3bba720919050565b8163ffffffff1661010314156131295750738041f0f180d17dd07087199632c45e17aeb0bad5919050565b50734fb4727064ba595995dd516b63b5921df9b93ac6919050565b6101078263ffffffff16101561319a578163ffffffff16610105141561317f57507386e98b594565857ed098864f560915c0dafd6ea1919050565b507370f8818e8b698effecd86a513a4c87c0c380bef6919050565b8163ffffffff1661010714156131c557507378ed227c8a897a21da2875a752142dd80d865158919050565b5073d02a30bb5c3a8c51d2751a029a6fcfde2af9fbc6919050565b61010d8263ffffffff16101561328c5761010b8263ffffffff161015613246578163ffffffff16610109141561322b5750730f00d5c5acb24e975e2a56730609f7f40aa763b8919050565b5073c3e2091edc2d3d9d98ba09269138b617b536834a919050565b8163ffffffff1661010b1415613271575073a6fbaf7f30867c9633908998ea8c3da28920e75c919050565b5073e6dddcd41e2bbe8122ae32ac29b8fbab79cd21d9919050565b61010f8263ffffffff1610156132e2578163ffffffff1661010d14156132c7575073537aa8c1ef6a8eaf039dd6e1eb67694a48195ce4919050565b507396abac485fd2d0b03cf4a10df8bd58b8ded28300919050565b8163ffffffff1661010f141561330d575073da8e7d46d04bd4f62705cd80355bdb6d441daffd919050565b5073be50018e7a5c67e2e5f5414393e971cc96f293f2919050565b6101198263ffffffff161015613480576101158263ffffffff1610156133e4576101138263ffffffff16101561339e578163ffffffff166101111415613383575073a1b3907d6cb542a4cbe2ee441effaa909fab62c3919050565b50736d08ee8511c0237a515013ac389e7b3968cb1753919050565b8163ffffffff1661011314156133c957507322faa5b5fe43eadbb52745e35a5cda8bd5f96bba919050565b50737a673eb74d79e4868d689e7852abb5f93ec2fd4b919050565b6101178263ffffffff16101561343a578163ffffffff16610115141561341f5750730b8531f8afd4190b76f3e10decadb84c98b4d419919050565b507378eabc743a93583dee403d6b84795490e652216b919050565b8163ffffffff1661011714156134655750733a95d907b2a7a8604b59bcca08585f58afe0aa64919050565b5073f4271f0c8c9af0f06a80b8832fa820cce64fada8919050565b61011d8263ffffffff16101561352c5761011b8263ffffffff1610156134e6578163ffffffff1661011914156134cb57507374b2df841245c3748c0d31542e1335659a25c33b919050565b5073dfc99fd0ad7d16f30f295a5eefce029e04d0fa65919050565b8163ffffffff1661011b1415613511575073e992416b6ac1144ed8148a9632973257839027f6919050565b507354ce55ba954e981bb1fd9399054b35ce1f2c0816919050565b61011f8263ffffffff161015613582578163ffffffff1661011d1415613567575073d4ab52f9e7e5b315bd7471920bad04f405ab1c38919050565b50733670c990994d12837e95ee127fe2f06fd3e2104b919050565b8163ffffffff1661011f14156135ad575073dcf190b09c47e4f551e30bbb79969c3fdea1e992919050565b5073a65057b967b59677237e57ab815b209744b9bc40919050565b6101318263ffffffff161015613878576101298263ffffffff161015613730576101258263ffffffff161015613694576101238263ffffffff16101561364e578163ffffffff1661012114156136335750736efc86b40573e4c7f28659b13327d55ae955c483919050565b507306bcc25cf8e0e72316f53631b3aa7134e9f73ae0919050565b8163ffffffff166101231415613679575073710b6414e1d53882b1fcd3a168ad5ccd435fc6d0919050565b50735ebb2c3d78c4e9818074559e7bae7fcc99781dc1919050565b6101278263ffffffff1610156136ea578163ffffffff1661012514156136cf575073af0a409c3aee0bd08015cfb29d89e90b6e89a88f919050565b5073522559d8b99773c693b80ce06df559036295ce44919050565b8163ffffffff166101271415613715575073b65290a5bae838aaa7825c9ecec68041841a1b64919050565b5073801b8f2068edd5bcb659e6bda0c425909043c420919050565b61012d8263ffffffff1610156137dc5761012b8263ffffffff161015613796578163ffffffff16610129141561377b57507329b5f00515d093627e0b7bd0b5c8e84f6b4cdb87919050565b5073652839ae74683cbf9f1293f1019d938f87464d3e919050565b8163ffffffff1661012b14156137c15750735bc95dcebdde9b79f2b6dc76121bc7936ef8d666919050565b507390db359cea62e53051158ab5f99811c0a07fe686919050565b61012f8263ffffffff161015613832578163ffffffff1661012d14156138175750732c3625eedadbdcdbb5330eb0d17b3c39ff269807919050565b5073c3f0324471b5c9d415acd625b8d8694a4e48e001919050565b8163ffffffff1661012f141561385d5750738c60e7e05fa0ffb6f720233736f245134685799d919050565b507398faf2c09aa4ebb995ad0b56152993e7291a500e919050565b6101398263ffffffff1610156139d0576101358263ffffffff161015613934576101338263ffffffff1610156138ee578163ffffffff1661013114156138d3575073802c1063a861414dfaec16bacb81429fc0d40d6e919050565b507311c4aefcc0dc156f64195f6513cb1fb3be0ae056919050565b8163ffffffff166101331415613919575073eff1f3258214e31b6b4f640b4389d55715c3be2b919050565b507347e379abe8ddfea4289aba01235eff7e93758fd7919050565b6101378263ffffffff16101561398a578163ffffffff16610135141561396f5750733cc26384c3ea31ddc8d9789e8872cea6f20cd3ff919050565b5073edd9efa6c69108faa4611097d643e20ba0ed1634919050565b8163ffffffff1661013714156139b5575073cb93525ca5f3d371f74f3d112bc19526740717b8919050565b50737071e0124eb4438137e60df1b8dd8af1bfb362cf919050565b61013d8263ffffffff161015613a7c5761013b8263ffffffff161015613a36578163ffffffff166101391415613a1b5750734691096eb0b78c8f4b4a8091e5b66b18e1835c10919050565b50738d953c9b2d1c2137cf95992079f3a77fcd793272919050565b8163ffffffff1661013b1415613a61575073bdcc2a3bf6e3ba49ff86595e6b2b8d70d8368c92919050565b507395e6948ab38c61b2d294e8bd896bcc4ccc0713cf919050565b61013f8263ffffffff161015613ad2578163ffffffff1661013d1415613ab7575073607b27c881ffee4cb95b1c5862fae7224ccd0b4a919050565b507309d28afa166e566a2ee1cb834ea8e78c7e627ed2919050565b8163ffffffff1661013f1415613afd5750739c01449b38bdf0b263818401044fb1401b29fdfa919050565b50731f7723599bbb658c051f8a39be2688388d22ced6919050565b6101618263ffffffff161015614078576101518263ffffffff161015613dd8576101498263ffffffff161015613c90576101458263ffffffff161015613bf4576101438263ffffffff161015613bae578163ffffffff166101411415613b9357507352b71603f7b8a5d15b4482e965a0619aa3210194919050565b507301c0f072cb210406653752fecfa70b42da9173a2919050565b8163ffffffff166101431415613bd95750733021142f021e943e57fc1886caf58d06147d09a6919050565b5073e6f2af38e76ab09db59225d97d3e770942d3d842919050565b6101478263ffffffff161015613c4a578163ffffffff166101451415613c2f57507306a25554e5135f08b9e2ed1dec1fc3ced52e0b48919050565b507371d75e670ee3511c8290c705e0620126b710bf8d919050565b8163ffffffff166101471415613c755750738b9ce142b80fea7c932952ec533694b1df9b3c54919050565b5073d7be24f32f39231116b3fdc483c2a12e1521f73b919050565b61014d8263ffffffff161015613d3c5761014b8263ffffffff161015613cf6578163ffffffff166101491415613cdb575073b40cafbc4797d4ff64087e087f6d2e661f954cbe919050565b5073bddce7771efee81893e838f62204a4c76d72757e919050565b8163ffffffff1661014b1415613d215750735d3d299ea7fd4f39acdb336e26631dfee41f9287919050565b50736bfee09e1fc0684e0826a9a0dc1352a14b136fac919050565b61014f8263ffffffff161015613d92578163ffffffff1661014d1415613d77575073d0001bb8e2cb661436093f96458a4358b5156e3c919050565b50731867c6485cfd1ed448988368a22bfb17a7747293919050565b8163ffffffff1661014f1415613dbd5750738997ef9f95df24ab67703ab6c262aabfeebe33bd919050565b50731e39e9e601922ded91bcfc8f78836302133465e2919050565b6101598263ffffffff161015613f30576101558263ffffffff161015613e94576101538263ffffffff161015613e4e578163ffffffff166101511415613e335750738a8ec6ceacff502a782216774e5af3421562c6ff919050565b50733b8fc561df5415c8dc01e97ee6e38435a8f9c40a919050565b8163ffffffff166101531415613e79575073d5d5f5b37e67c43cea663aedadffc3a93a2065b0919050565b5073cc8f55ec43b4f25013ce1946fbb740c43be5b96d919050565b6101578263ffffffff161015613eea578163ffffffff166101551415613ecf57507318f586e816eeedbb57b8011239150367561b58fb919050565b5073d0cd802b19c1a52501cb2f07d656e3cd7b0ce124919050565b8163ffffffff166101571415613f15575073e0aed899b39c6e4f2d83e4913a1e9e0cf6368abe919050565b50730606e1b6c0f1a398c38825dccc4678a7cbc2737c919050565b61015d8263ffffffff161015613fdc5761015b8263ffffffff161015613f96578163ffffffff166101591415613f7b5750732d188e85b27d18ef80f16686ea1593abf7ed2a63919050565b507364412292fa4a135a3300e24366e99ff59db2eac1919050565b8163ffffffff1661015b1415613fc157507338b74c173f3733e8b90aaef0e98b89791266149f919050565b507336daa49a79aaef4e7a217a11530d3ccd84414124919050565b61015f8263ffffffff161015614032578163ffffffff1661015d141561401757507310f088fe2c88f90270e4449c46c8b1b232511d58919050565b50734fedbd25b58586838abd17d10272697df1dc3087919050565b8163ffffffff1661015f141561405d575073685278209248cb058e5cee93e37f274a80faf6eb919050565b5073dd9f8f1eec3955f78168e2fb2d1e808fa8a8f15b919050565b6101718263ffffffff161015614328576101698263ffffffff1610156141e0576101658263ffffffff161015614144576101638263ffffffff1610156140fe578163ffffffff1661016114156140e35750737392aeefd5825aac28817031deebbfaaa20983d9919050565b50730cc182555e00767d6fb8ad161a10d0c04c476d91919050565b8163ffffffff16610163141561412957507390e52837d56715c79fd592e8d58bfd20365798b2919050565b50736f4451de14049b6770ad5bf4013118529e68a40c919050565b6101678263ffffffff16101561419a578163ffffffff16610165141561417f57507389b97ef2afab9ed9c7f0fdb095d02e6840b52d9c919050565b507392a5cc5c42d94d3e23aeb1214fff43db2b97759e919050565b8163ffffffff1661016714156141c557507363ddc52f135a1dcba831eaac11c63849f018b739919050565b5073692a691533b571c2c54c1d7f8043a204b3d8120e919050565b61016d8263ffffffff16101561428c5761016b8263ffffffff161015614246578163ffffffff16610169141561422b57507397c7492cf083969f61c6f302d45c8270391b921c919050565b5073defd2b8643553dad19548eb14fd94a57f4b9e543919050565b8163ffffffff1661016b141561427157507330645c04205ca3f670b67b02f971b088930acb8c919050565b5073a6f80ed2d607cd67aeb4109b64a0becc4d7d03cf919050565b61016f8263ffffffff1610156142e2578163ffffffff1661016d14156142c7575073bbbbc6c276eb3f7e674f2d39301509236001c42f919050565b5073c20e77d349fb40ce88eb01824e2873ad9f681f3c919050565b8163ffffffff1661016f141561430d5750735fcfd9a962de19294467c358c1fa55082285960b919050565b50734d87bd6a0e4e5cc6332923cb3e85fc71b287f58a919050565b6101798263ffffffff161015614480576101758263ffffffff1610156143e4576101738263ffffffff16101561439e578163ffffffff1661017114156143835750733aa5b757cd6dde98214e56d57dde7fcf0f7ab04e919050565b5073e28efce7192e11a2297f44059113c1fd6967b2d4919050565b8163ffffffff1661017314156143c95750733251cae10a1cf246e0808d76acc26f7b5eda0ee5919050565b5073ba2091cc9357cf4c4f25d64f30d1b4ba3a5a174b919050565b6101778263ffffffff16101561443a578163ffffffff16610175141561441f57507349c8e1da9693692096f63c82d11b52d738566d55919050565b5073a0731615ab5fff451031e9551367a4f7db27b39c919050565b8163ffffffff166101771415614465575073fb214541888671ae1403cecc1d59763a12fc1609919050565b50731d6bcb17642e2336405df73df22f07688caec020919050565b61017d8263ffffffff16101561452c5761017b8263ffffffff1610156144e6578163ffffffff1661017914156144cb575073fc9c0c7bfe187120ff7f4e21446161794a617a9e919050565b5073ba5bf37678eee2dab17aef9d898153258252250e919050565b8163ffffffff1661017b14156145115750737c55690bd2c9961576a32c02f8eb29ed36415ec7919050565b5073ca40073e868e8bc611aec8fe741d17e68fe422f6919050565b61017f8263ffffffff161015614582578163ffffffff1661017d141561456757507331641bafb87e9a58f78835050a7be56921986339919050565b5073a54766424f6da74b45ebcc5bf0bd1d74d2cccaab919050565b8163ffffffff1661017f14156145ad575073c7bba57f8c179eddbaa62117dda360e28f3f8252919050565b50735e663ed97ea77d393b8858c90d0683bf180e0ffd919050565b63ffffffff821660009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1661462a576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5063ffffffff1660009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b606060008061466786610645565b73ffffffffffffffffffffffffffffffffffffffff16858560405161468d929190615b2e565b600060405180830381855af49150503d80600081146146c8576040519150601f19603f3d011682016040523d82523d6000602084013e6146cd565b606091505b5091509150816146df57805160208201fd5b95945050505050565b60606000806003816146fd6020870187615a90565b63ffffffff1681526020808201929092526040016000205473ffffffffffffffffffffffffffffffffffffffff169061473890860186615c67565b604051614746929190615b2e565b600060405180830381855af49150503d8060008114614781576040519150601f19603f3d011682016040523d82523d6000602084013e614786565b606091505b50915091508161479857805160208201fd5b9392505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146147f0576040517f7c91ccdd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6147f9336155ce565b565b60005473ffffffffffffffffffffffffffffffffffffffff16331461484c576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290600090a250565b60005b63ffffffff81168211156149da576000806003600086868663ffffffff168181106148eb576148eb615e2a565b90506020028101906148fd9190615ccc565b61490b906020810190615a90565b63ffffffff908116825260208201929092526040016000205473ffffffffffffffffffffffffffffffffffffffff169086908690861681811061495057614950615e2a565b90506020028101906149629190615ccc565b614970906020810190615c67565b60405161497e929190615b2e565b600060405180830381855af49150503d80600081146149b9576040519150601f19603f3d011682016040523d82523d6000602084013e6149be565b606091505b5091509150816149d057805160208201fd5b50506001016148be565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314614a30576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6149da73ffffffffffffffffffffffffffffffffffffffff84168383615646565b6000614a5c82610645565b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff163314614ab3576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff811660008181526003602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000167f0000000000000000000000000f34a522ff82151c90679b73211955068fd854f173ffffffffffffffffffffffffffffffffffffffff16179055517fc203fc627a1b6dd6b6dad3f6b7a313417bb01b1b5ebcd77ed25aff6a0b1608659190a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314614ba0576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b83518163ffffffff161015614ce757828163ffffffff1681518110614bca57614bca615e2a565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663095ea7b3858363ffffffff1681518110614c0557614c05615e2a565b602002602001015184614c19576000614c3b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401602060405180830381600087803b158015614ca657600080fd5b505af1158015614cba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614cde91906159e4565b50600101614ba3565b50505050565b6000805473ffffffffffffffffffffffffffffffffffffffff163314614d3f576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018054740100000000000000000000000000000000000000009081900463ffffffff908116600081815260026020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff881617905583549093928392601492614dc9928592910416615d18565b92506101000a81548163ffffffff021916908363ffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168163ffffffff167f7977983873e5c968018b0deaedba28f6ce6253277670e94e627fbc08efc50cb160405160405180910390a390505b919050565b6000614e486040830183615bff565b9150614e5990506060830183615bff565b90508114614e93576040517fa24a13a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b82811015614ed557614eac6080850185615bff565b82818110614ebc57614ebc615e2a565b9050602002013582614ece9190615d00565b9150614e97565b5068056bc75e2d631000008114614f18576040517fc963e34d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080614f2b6105116020870187615a90565b73ffffffffffffffffffffffffffffffffffffffff16614f4e6020870187615c67565b604051614f5c929190615b2e565b600060405180830381855af49150503d8060008114614f97576040519150601f19603f3d011682016040523d82523d6000602084013e614f9c565b606091505b509150915081614fae57805160208201fd5b600081806020019051810190614fc49190615a77565b90506000805b868110156151ec576000614fdf600189615db8565b821415614ff757614ff08385615db8565b905061503d565b68056bc75e2d6310000061500e60808b018b615bff565b8481811061501e5761501e615e2a565b90506020020135856150309190615d7b565b61503a9190615d40565b90505b6150478184615d00565b925060007fb3dc8da4000000000000000000000000000000000000000000000000000000008261507a60608d018d615bff565b8681811061508a5761508a615e2a565b905060200281019061509c9190615c67565b6040516024016150ae93929190615bab565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529150600090819061516790615142908e018e615bff565b8781811061515257615152615e2a565b90506020020160208101906105119190615a90565b73ffffffffffffffffffffffffffffffffffffffff168360405161518b9190615b3e565b600060405180830381855af49150503d80600081146151c6576040519150601f19603f3d011682016040523d82523d6000602084013e6151cb565b606091505b5091509150816151dd57805160208201fd5b84600101945050505050614fca565b5050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314615247576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff811660008181526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000167f0000000000000000000000000f34a522ff82151c90679b73211955068fd854f173ffffffffffffffffffffffffffffffffffffffff16179055517fc60cf0bdf6c913c2d080d151c29909503abb49cdd09b459a7a10a16a466d02da9190a250565b6000805473ffffffffffffffffffffffffffffffffffffffff163314615335576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805478010000000000000000000000000000000000000000000000009081900463ffffffff908116600081815260036020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8816179055835490939283926018926153c3928592910416615d18565b92506101000a81548163ffffffff021916908363ffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168163ffffffff167f7601ed90c4c6f485f9633a9355c473c63ec60dfb8e04d060dbda9a80cf48eb6860405160405180910390a392915050565b8281811461546b576040517fa24a13a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156155325760008061548e88888581811061515257615152615e2a565b73ffffffffffffffffffffffffffffffffffffffff168686858181106154b6576154b6615e2a565b90506020028101906154c89190615c67565b6040516154d6929190615b2e565b600060405180830381855af49150503d8060008114615511576040519150601f19603f3d011682016040523d82523d6000602084013e615516565b606091505b50915091508161552857805160208201fd5b505060010161546e565b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461558b576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f193505050501580156149da573d6000803e3d6000fd5b6000805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216811783556001805490921690915560405190917ffbe19c9b601f5ee90b44c7390f3fa2319eba01762d34ee372aeafd59b25c7f8791a250565b60006040517fa9059cbb000000000000000000000000000000000000000000000000000000008152836004820152826024820152602060006044836000895af13d15601f3d1160016000511416171691505080614ce7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c45440000000000000000000000000000000000604482015260640160405180910390fd5b8035614e3481615e88565b600082601f83011261571f57600080fd5b8135602067ffffffffffffffff8083111561573c5761573c615e59565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110848211171561577f5761577f615e59565b6040528481528381019250868401828801850189101561579e57600080fd5b600092505b858310156157c8576157b481615703565b8452928401926001929092019184016157a3565b50979650505050505050565b60008083601f8401126157e657600080fd5b50813567ffffffffffffffff8111156157fe57600080fd5b6020830191508360208260051b850101111561581957600080fd5b9250929050565b803563ffffffff81168114614e3457600080fd5b60006020828403121561584657600080fd5b813561479881615e88565b6000806040838503121561586457600080fd5b823561586f81615e88565b946020939093013593505050565b60008060006060848603121561589257600080fd5b833561589d81615e88565b925060208401356158ad81615e88565b929592945050506040919091013590565b6000806000606084860312156158d357600080fd5b833567ffffffffffffffff808211156158eb57600080fd5b6158f78783880161570e565b9450602086013591508082111561590d57600080fd5b5061591a8682870161570e565b925050604084013561592b81615ead565b809150509250925092565b6000806020838503121561594957600080fd5b823567ffffffffffffffff81111561596057600080fd5b61596c858286016157d4565b90969095509350505050565b6000806000806040858703121561598e57600080fd5b843567ffffffffffffffff808211156159a657600080fd5b6159b2888389016157d4565b909650945060208701359150808211156159cb57600080fd5b506159d8878288016157d4565b95989497509550505050565b6000602082840312156159f657600080fd5b815161479881615ead565b600060208284031215615a1357600080fd5b813567ffffffffffffffff811115615a2a57600080fd5b82016040818503121561479857600080fd5b600060208284031215615a4e57600080fd5b813567ffffffffffffffff811115615a6557600080fd5b820160c0818503121561479857600080fd5b600060208284031215615a8957600080fd5b5051919050565b600060208284031215615aa257600080fd5b61479882615820565b600080600060408486031215615ac057600080fd5b615ac984615820565b9250602084013567ffffffffffffffff80821115615ae657600080fd5b818601915086601f830112615afa57600080fd5b813581811115615b0957600080fd5b876020828501011115615b1b57600080fd5b6020830194508093505050509250925092565b8183823760009101908152919050565b60008251615b50818460208701615dcf565b9190910192915050565b6020815260008251806020840152615b79816040850160208701615dcf565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615c3457600080fd5b83018035915067ffffffffffffffff821115615c4f57600080fd5b6020019150600581901b360382131561581957600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615c9c57600080fd5b83018035915067ffffffffffffffff821115615cb757600080fd5b60200191503681900382131561581957600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112615b5057600080fd5b60008219821115615d1357615d13615dfb565b500190565b600063ffffffff808316818516808303821115615d3757615d37615dfb565b01949350505050565b600082615d76577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615db357615db3615dfb565b500290565b600082821015615dca57615dca615dfb565b500390565b60005b83811015615dea578181015183820152602001615dd2565b83811115614ce75750506000910152565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114615eaa57600080fd5b50565b8015158114615eaa57600080fdfea264697066735822122093c6c1711c7bbaa65a0ad618d7520eecd440e73f899d95a64a5099ad5df4935e64736f6c63430008070033036395b434a73549dd87fbd5c47af4159045bb61fc6e1f9716c3a68eb5f03f66b5034be728c30c15225ad7a6d57f972c672883179e135db501be845b21c9c7c9953b039bd183e2f628665dda5cd4f316107c0ab714f28807d6908f4de07a361e51466100582103cb588dc228487273a59029e9d293ed2d8570ea68cdebee0195078d9a96ec94805492416cea3b1ecc4fe8e4a3298893d67b3724d59403460b17094c210ff543ca3444838ca74f30dd1668d96a35c086fc00db9d1f27c703e4ca8c9b009041578e371391d5fd5c13d6d46580ccc3ddf90932d6b561db4b70033ad37659260a92f562fc17990b44836e40d069f335e02a3ce30f937d066ebb6c03d9559a17f8679503afb3fcd415d07bb14e0d4639c45b2861934e761e8894bf7803eb4198b5b6f5d053cbe103d5d3f51386dd5b48e7dc492d5b18b9c564413ee84c0340bb794bf4f0afc1636b8fb2900066d15102d7cc6df5e7f1d5db8197f14241c800582103c65b6e566b798b7954fe4cda44a05497b8af383878a39c76c9e50c6cfbbec010541a9ec5ed7363905c0a096dee577c8fbb400c99d003a95f019e89e597202cd82c97cc0ebffa9d40b1dbcfefbb6c210a8721e330d5820219bef605581d03e3aede33f99c4ff7ba06752f0d83e4a0896ce4f9d1d00386ae425c200f014702c6b5538438db195ef105581d0316f2d6bb8e38eb644751c783ad155b7df1619fda777f2bcd1810c4000c044705b02e946ebfee0219300001410005581e03c11462da8cd2774775591f7e6869a35ef136ea26ec16acce06480de10004020354c07d14aff040fcfacaea62a01d59dfc7ad21415a2d26e1ac668c2cc400a20103315c09638c29f8693b1c5e7c30e5096b16d186c81902abf5cf2d26f815eb46dd02195252036ccc29a70bb7d1a7f7af542153c78ead115428cd3ec7e3b13cdf11b759f7bcf803e8cd3ed4121da1544e3aef1b735039361c2cb14f747360ef03203a954806cb0a03e4731ca86ab1f4239ddf68c6c900dfad7077ea6c798b16635ba74671376e6d14039d5abf4e0061a529e64a765e1941beb904dfd043d0a56bea49eeaaf9665fd191036682735c86dd335d0844774eadef3042080e5b0e0f77c80bc87ac638266ff25e0307ce39468c9521bfed06838c86a00e85c28f615cfd3573ea1f232d9bb8a1228b030d72f9f7dd814bd2d0075cb659a409e621e22c37d778edb26fbc11aa4bb4f2af038532171e9c235188cb1ced4ec564b8214a3a2ea46e9dc9242f1807142883398903b8cce79c02937f5d8585ad294b64dcb3071e9c85aa1877a2d6300cf08f19451a03f1cb833a0fb4926a8ed6e7f0f5f382528e9b1793d27ddc1d9c76e717b73899ec0330e5fb3b894b0013775051f7edcd57948636a897fa242b7921b84409c7f494c6039d65118ef9593568a128eff93cdf45ab32599e46540bbb4836b19b4d21c4911e0219ffff030a163930ca3ebfbd49292aeafb10470fff69d2673fcc71677fc950358c92da7903cb368e82f8d5850d005554290f33cf702e86bffa2a19a972ed850b07144a813803c07e74412a2534010d5e3c601f7cf996b40d2a0e1bd9dc913e874e3b35e17cbc03fcd083d04a984e89f55a50e1fa73c1715be93035ae4595b0ee96d1b748bda1d203883672e536a37372113174419005871e59977f49f19f10e9b5b9a38e400f61e103a952de551d370ec8b52f224871add7a952cf9f0ebe2547138a2a0f4f5aae09d20363d597666a8454b14cf1ca0e2fc83cc57d7e21575e29a195ecb0dcef79018f20031c5f3575d22d4959fc8f5cfe6a2308330f9586bc8cc1890884e85c7a3a16c5e2031476c2f92a85b4ca471d2e725abc8ab5faf7fee3010eff79234996ee472d168903396ab7c6971df0643b00536a9becd3c97a75208ef234167a6a5026e5cf124a6e03358256feb468d54d22e42d19d1d7b1c6d744a4216371dc0aabaf078148de334f035a7991daf84b9fda70b65c3c65ef793912f08aebafcb35088cbec3036004dd5f03227c242ff281e6f37e71b5b7e9456df5fcdefe7863e1bbd1f4249fb57126149b0219ffff0219ffff03f4c71373eaa7358f09d2242b8c2dcbc45b4f826dee89c297ee8061263a0a914d0306ec47d8bd8ed0f0c205aecc30de7e30411bf1ed604e6ccb491c7cd0242220440320738adfb5b6258de882739274655ebb2132190428c9407a41aa3ab1f90805570313b12df68c5ca2c0496cc935bfd565e6fa7fa2f39165f6798a36fa6d56e9525a03d34039b4516c3ead567a36ddf3b77748642d0832506acf41d28083130526df4603c4b40255b176da35c0daaab997c31fbb04f4b1e81f9ae1cc8e2adde088ed3b9b03ddf8bacd9b1527dc5822248637878f8e38cb447996853490657ef97c19cbf65103b691a6b4df3a1b3e3e7118d592bc656525f5cfc0d59fa252d99ac734f9543a3b0380b48f307ce48fb7e3ca4616946d3251a7a3d0329589d5b3aa68c85408c89b6803fbdbd37dc921c52d16a9b87d7987dae8cceb9708f853ceb84e5500c6a0c6d6c403013f72c6408471513b25a443905f6c470c87e0236e8f56da1a872ebfed15184903c8e2b5b13ecd418733b47ad75f4242c4ee9643ec70064a7cc2f4f11d1816f21005581e03264d188c7f5420480f3666db40cfbbe35f28c99e4b4c3062165cb312e0040305581d02d5e4f10ec5fe6fa8a18637165e2ddc7b40cce8dc4f13bd6fe1c790c308472386f26fc1000005581d02011b33430869d829ba87d4128a8e7fde48c7b97c081117a8ef46c5cc0c0145012a15344003288939d9feae3eae660db09129ec005d74c070dd69bb2fbf032bcb9b11644a5d0605581d029fcb36697e8f17c539abbe38f12ec0e0bbe174a2e2594865ae934ae307011bffffffffffffffff05581d02bb6106070680fd43a815c8ba1a82abb7bf6aaad2d8da6917767ce6b90c06470dfbee7a21ec6f05581d02fcdc6eb5bc53fdbe7bb88cafcd239e170108305f8a923da11e2e61ce04020219070903ea3634c782febee7b8364545960aa8ed17ee22da72de642a899305db8d086dd9034f5a5f6706dc853cb3ae2279729e0d7e24dda128a77358144e4c0fd3e5d60e980605581e03d2451f7a80a2a28e5e5d9b18effa7a6075b88835c6b3101f62e629511007011bffffffffffffffff05581e03ecc91a931feec401b567ff78b1ca88eaf22734b1ad0b38087cb2546ba0040303c27f39a8e4fa2b559b316bdf89508ee6a3a98da971c144af28a6c150532b6c3302199c0f03de03ea5edc6f761126a9a2d7655b475a1df0a2185f9c8425172b75affe600a1d03f6cd7d50571b145e94d2edf80c6519622f745d19346ff9dc284653c4952070410360864a868d5d67311a5cbd37123556b82e7b320586a281729393733e51c48bf103c86d04610358fd86202f4fc47e56081e95f4fbac99cf16c17b46259d43f428dc03007d813f3611c9430e662456edc5fa30996a0c5dbe6ccebc10cf8eee77aa022003673554ac028625fd399f4038e88c22491605a8b6f2665aa39d3c19eec79401d803aa86aac8031ac6bcf30aa5c328d76c1dab1d8c51b434bf6266f95feedfd53a88032840697a08e0f70defe861fba5c8cab0a55f58e5e3302fb3c05bf0a3106237480333075ec4aa55e5e2ed4571b0aff82deb766fa343c9dc44669d9b8a550f29d1cf03c476bb0b6ed91d2f73811c4ce8d5e4e0c9559450c6921fdb665d32d809451e180369a7ebe80acfc7be07bb7c44023d96010aae62d5789efc8fa4af6402868c90e6037d38513eb93e9b26cbb759c44aac201f535d08b8ba72a55fc43e016dcc4535e1030e2d441d27304867325e7e2ddee5eebf0185ca946d0c50a400da7744037f7b5003270cce88f19c392c8c6ccbb8aa96beadd0f5403e6903dfbd4801918d57e8fbfb03d79bfda74ad6981ae2924818c2d4fb3270d9660c15cae4644020519acd2486c50219ffff03a712cd02f0a1e7198c07c15a6194375f337a1d4c9b6fd7a534d49694213db48b0392590ce9883a73b1fb67a80c5cd2abef56d0609c1cd9a64e13112f7626d9b07003f733009f7cbb20e958545effccb448d3cebb9e19ff1682f9ee275637b4b8583703748bf16af52fccd0dbf6417f1ded7142988a658a96ca32fc41b30f9890cb7c0e03173fce463917a6c058d9a67887c926116f3a3ecf738daac7029bf766e45c3b6303e5e3782223c6679f2a193f77407d01aa4817f658db6ebe3adccc672c9d78a2ab0337d693d6a3465384f9f2193b53531802af0ef39c5d12a56979a634b98251802403ecce0fdbafcde3f8a4a62371b4aa9a8ab4866bf052dff6c2a2e93f50f75377ed0327ab16eabed3560ee189a1d00db78afcc2334d6cdcf30121126d311772eb0e7e0219ffff03d232ceb9c0214f454da573b703730e5fcabacedd2793dc4a368b30002a11085d03f5997de42082e08478df363b5f3d4e2d8d9f8775aa9d9e94c11aa9f9d6683665034e355a8f5cf9044a83bf3c47f6ee3b77e2d855eb75987e3a9b62dff0f062587f030a2fbce5360d00187e191d375e88e0f8cba7fab0046a39e69c2743ec7b31935d030ce44e264541cca1b8f258266a8384e851bd5dea6aa3e295be546a534f61acdb03300eb8e3010b5c6199d7496d5c7dd8508d2b7d5f1fbae7c435fde0f5964b033303ce06282b34ed2716752e26cddaa17d922699099ba3718fa7dedbbf32c1c311b30342a8b530b4ce1ea44c38cc490fb141635c7a7e81380f71a63a71c980dae7b8770387a5a77da3937f7bf3b7f6b25a7acdd700746b5bce3d00dd9baf72bdc2f9e6a103a74002e9cf51ea009758425a76ecbd6bc87285bcddd4e1060944112ebe1f9dcf03fe2caf21c4d4fae085ebd8e278e0f1ae40970a638fd5e9d5cbf59539ae12ea760219ffff03d4f124fee634352f3c26a90b2de180e246a39ddaf955bebc798bbf802903432a0305909561adcfb05cdbbf0c628988d4766c3573023400e1788318da114ade9c0e03b67d0aed4429b96969e68857ea2b23de20403e21e267429cf6fc696b2c2e53280327c925e63203d62d15458652e28020d0344ca4d77890725dec776d02d7f7eef4032de757087bce9b12fb7cd4b1c0a4479b4fbd9cfeb57a3e1b3910ca9ce52d9bf603767a0fe76f3cdbb7cfabe998d9807482774857168f59b7c8a8a0a3972bd22dab031df6c61249f5b47566581c9a3c58d211844ff3ff49f5dad7915b527a5930aa010341faa9d8e5b44e27e7a66a5e91baa25010e39e6ff10de0986e2de7dd6e5e6635038d7169bf0cc8cdd17c5b5663affb3d4bd9b0874a4db6618a032b993890b9823903bc340807ef2faab8b1e00ca51386010d326c6ac1e121e3b1f0e559db94ba50e4038313f9179bc0d7048b65eaff911f838cd9939a289bb2156fad90e5912dd6064e03a51d4d2ca2ffbd149b6eb395a8e362ef50d9e6d14377c64cfe004572b2da0f3a033bd495ebeb494e567623d30475db0956f22bc8627d9c08bbea9a4a15a6c6dbff03602cd3c9198f0d33300fdad67a436e9b458acfd666c2ed089174199002c0e46e038c046c318e6376964b3d4f15eab4bfe4d1becdfbaff7f5174988437f471f9d2a037514e171b56cba6d32745a4f1a5be2c9f2157949a2dbb76a105501e0d87aa69a037bd94b4fffbeb72227b12505fa1d9fb05c0abd0395de37a0972f70bd08315282037e74f78ce48e78e450f0ed5ca6e8a869c825f8231b5eaf7cbfab0a2f3a199f33036e84237c154074eb5447d5da36d4b819aaf3094ee560efb817f9bff697768b0c032c1d1082ab1fc8d6173b9c7750a2ab7a4d3ca4db9382d88a42c245e623e2b6660386f486d901a0219fa2ba35392c003200dff6e9fc77f3d329c0d79d9b4f3be0f90385d6b31dbe3660ac664e5c9202e57445c9a432953505aa9948796faa87da4c3805581e030834c344c96aa5fe5b40f09c0378d5e0070c241c58674022a87235a6100c0147325e9b87852e9803962f2235f31d5036735beb99633cc9a9b7c2a612d9af01a620a7e86d11691eb405581d02ab94c92fbc2e0dcbcdb8ee33834305d7157e7584edf94391d574f9610c0146e4ef5a28924805581d02c5a690963e6b410772888486931a3bc27bb5f201b73c88703d8d5e6b0c1903ae4801a98c1149b4b8b005581d023e5253c27c42f2af89c319e534816a7c5bf9fcb77283c65ac6722a370c04461c8833aae6000219062403a5623f9dc3481ee9f98ebacb624cdd95fc9656163c9abc645a5625b12d81b2ad05581e03c54c098d84d2c260dd5e836a5a6f726e1e046269b2a305b3636d5f15f00c0a48023541dfac69371c05581e032560e8db755ef5d19b6bcf1ce2ead6241223e1aef84a6639e1925226100c0148014fea3a683b757b05581e03ea526f87acd189f42efdd0d975ef774bddb2b09f4704cbb7601146b8900c03470711220625aaaa05581e03deba6b8982fce4f6152a2690052e1d836664a794b76c77371fac6f31e00c0147038108c06f4062035b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce503e91a77fce60e61d9f7ce96cf23c298a2ad975089d0277faf49d2883efe0e9a5205581e0313bdac0331cb9eac813fdbb05ba2ad90baddb4bdf48704661b10d8bde007011bffffffffffffffff0219ba830387be7ee9017968736406c8cc2e1352b92f5c49f04b78d9820fba385aaf31ab4d03d8026cd734a1f60b0a3bbb19833291a797d9ab2445cb72211aefad7f2484e3ac03f547e7107d1aa1d1816af72f17732627fc1e02589118e7eaf0c0c157e3047049031fb064f12b484babcd1866898250d98ddd91e5d24ada21174a6a5dc065c3c293034f015bb3143414799ec66b89bb08d2ab1c1824bf51312e67c5ce558ee5bc397f03b6007ef88f0d7de2ff864535d4ab8c9301373e86fb4393c8714dc67c657ac3140301e030c97ed4ae7cffb2851c232c125c576cb86d2bcd442aadfe22063f1618460219ffff0363ba696c7987b174b95f2b14bce0c12077d011bb0f285125a68c1bb3ebf4f10a039b4b340b11f78c731082cc91250b582e76491487c995762b6ef792fa2eeb46a9039785d5e54648743fccd5b4754600fecc383dd1293d8a7f706d981efc95d622c3032edd659ca287bfdce308461a8906dfd81545cb62c6809afb8210e6e7de1d4bbb03da79aeecbe479750e12e8c4cb2ce11b1b6e22c124fbeb341ecdb8832439ae0a703a88e417682de57a88ea910acb8c44443438f408c9a2e4896b3a0bcf1d5725bd60332681bd662c3c5c8f386f46cc76f3635f6f24bb8f8af3f9d2117c76c03c19b95030023693390d5b65335510312af93ac4c0b4dfb645caa1c8d5949bb6932dcff2a03c4a191a0ccdf17d3c0de17e5ec0cfcb0355effb3f2efef8995eeedfa9fe38bfc0385297716a52b0b51d9a9134abf1dae62dd9a8c04d75ab76972c27264f135af7303c1b255f2b200d6abc162f2a351c0bd29c49e4b59bcf771010593843e6eea9400034ac902a3b588f7d1182cb3ee4270d247ed2ed16bbe4990197e83fd954f464a6f032b79c2b0969270d6d035b4e9c311941c0a148cfe49ca2955790723adc1717e4503b7ed890c5ba83d00e7c2ab9da3323f8aa2f85f178539a33550f2d1029818b4df03206b8f0e95a648f53f7dbc0dbf5430a0a61cc769df766501bcb15b79bf374f2c0219ffff037f618e830ea8cdede62011b66d7560bb1c6338549f1f19da0e12c68335f1524e03272322bcdda578a4cc9d0ad679cee719da39488dd20337e9b16278bf9167d03a0375ac81273257e3674d70f64811581da9762b6b7661e505186d5656c01ee5dbda03366a51317609f6a9ae0eee696b58e4b984755b06aa1d35e4eb33495cbacf5d550219ffff0341682dd67775077a77169a9bb3a3cc0cce80ee74c285f1957ce0febf235e2a4a03d9d3395176809a1bb0b642c690e801d76e73484f27caea6c4c9f56dfb649bebb0219ffff0300200a53a72df28e25a54db0dc4bc6adfbdd4ad323035f78210f4cccd7b252ec036c5773d732bb6006bf2992d8f4010e946fc637e674dbc081e0a5faeeee083c6c039252ad8c89cad04ef2692384b42457ae7a0199d25a690836fbff8b56c292842c0383fa591822af6344119bd1acb144eda8a4052343190eb1f8c540fcc28852cbea0354765d3c02f3787a8dff04d84fe23b691b817df5a00a82ab515f6314b96e5d6d03f48d412601e862b8b69fe031a0c5ec2b06ffe4987c318c8d8d6ea7d6eb9e97f903f02d19fa33485b9cedafaa2af711901e0bb0596272234151a9becc3d71b269c4033b0c6fb2a51b9649c8bf8d5c632bcb586b5ee88e7151200e644e26ec3ac84caa03413d6dba7ebe5f66c2eeedfbb6de40406b971e3ab34fc98f34e785e2385a63150335eaa625088dc4b73fd9e725c240f56619508fb02f70153a25b4567340403e560374f4db2343894c01b4f0b347acaf77b4ed23ae416b75cdcbfd1c2d70d9c5f7f503f8e0686737ea3b7294713975feb7b463841b57b4a93e610c34a1248fac422d6f036c6d949154b1bfcc9e04b883893287bd56eb73703e631602641cdb249492b9ae03d5964c076f01d2938aadafd46d1f77c2f8be1bbcc76c498beefe49577d38762a0343dc2992bb0b2e6c582c8a32360e1651a4681df0ae23980f306fe053fb311a210337d816a9ede29ae44cbf98c677d0d45b0f1557272714cff67d7f565908dcbc490393f80f79c8d03c5ba89f524219be1d65687f011cd4cc0e5fd3a395a0c71c461e035eaf264b57abed5ae0908cc47ee438505e6af4dd0b0c79dc96cb808a6ada946f033e7d440d14ef74257dd4c9cfe9392323bfada30d52f4bcf121a6b2c18b15feed03035ee0e4c43e8d07a088c984456f19649f8ac9da0c69d8544ed3f0291342f4240384a6dfc5346bfbbd54c41d4b278e78e8e7e338bf55f464c008208b501a9d3645033af0d3d9817c0789db5574f398f89bf999f4cb9a7f799951ab9cb3008eee661a034dd6c525acf6458317240881d53c1797c7ff23ce76e7ffdcadbbf2c2af15da320325f948d6f5c2bd9ff95df1ead520192bf28762b37db74e339a57ecd28a384ce4039f083043f8a182e4127454a3a6b22ea36437368e45d1c68486f904de8ee2559703d6495a6bb374b89e59daeacd3fcab5c3002d78e429b73045e6b255c42136fc2903e5615be6df0759ac8c9a4451e4c989aca276f077df6fe67276cfe222273124b7031644bc345c57b413c6dee0f35dc31163e93e0709df99ae754c737bbb76f9a75303ba792e3fe2fdfa6fcbfc01ed91734d1a36f8679434ff7b8c926938d539bccc97038c81eb272a432a865512bc6427cac3de55e155c5bdf30dcaa181fa3e6845df3f0345c421dcfec15c6089ff9b1470f749ceaa1073c15ee35f36e38631493b55276403bb0b4c870447be8ea6639a49138d18db3526a77485e7d1630f30158586e7a4e503238c61feabda5e145b6e6722e56056096ad7488d53c3f319c18297a50c78c72903fd4556d1bf6034de155fcbf0f5732a0cfdabb7d8dc76c00a61bf9f24221e4dfc031811e7bea1de9536bba3e5d7323c86e2ca6c891a3f1179c5b79200574f6134590321429ada8c94755a77f322293886d70d5f18fbfe844bfe8dd601229facd1eede035d4ede20fef2bdb52c2c22563697db2cf078051efe740414de93f9df33e006b105581e035fa48bf451040b1d6826cbcbc3b0e0d1b318d74fb951f76286701475900c014701aefdc910f00003a429b70a73da17abbebff84eee040917b7a179293a1cd9417546178aea92249305581e03f30b0628a0dd47abfbe5462c6af4ce619ee80fd7b2268d08af63bcc050040105581e03e28c6356d323a7fa16788d69e9d2a20afca7036add54c32bad42369f600c0147019ba62df4a24305581e03cc1267c03f31a265a69089cefa79069acddc1b9d9606385b31837c7890040404592287608060405234801561001057600080fd5b50600436106101a95760003560e01c806379cc6790116100f9578063adb6183211610097578063d505accf11610071578063d505accf14610357578063dc0f0d121461036a578063dd62ed3e14610372578063f9e5423414610385576101a9565b8063adb6183214610334578063adc879e91461033c578063cea9d26f14610344576101a9565b8063885ad0cf116100d3578063885ad0cf146102f357806395d89b4114610306578063a457c2d71461030e578063a9059cbb14610321576101a9565b806379cc6790146102ba5780637ecebe00146102cd57806381893c7c146102e0576101a9565b80633c8d76d1116101665780635c23bdf5116101405780635c23bdf5146102795780635c975abb1461028c5780635d4545a01461029457806370a08231146102a7576101a9565b80633c8d76d11461023c57806342966c68146102515780635aa6e67514610264576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101ec57806323b872dd14610201578063313ce567146102145780633950935114610229575b600080fd5b6101b66103a5565b6040516101c39190611bcb565b60405180910390f35b6101df6101da3660046118ca565b61043c565b6040516101c39190611b39565b6101f461045a565b6040516101c39190611b44565b6101df61020f366004611815565b610460565b61021c6104e7565b6040516101c391906120f0565b6101df6102373660046118ca565b6104f0565b61024f61024a3660046118f5565b61053e565b005b61024f61025f366004611a4e565b610652565b61026c610666565b6040516101c39190611abf565b61026c610287366004611a4e565b61068a565b6101df6107c8565b6101df6102a23660046117a5565b6107d1565b6101f46102b53660046117a5565b6107e6565b61024f6102c83660046118ca565b610801565b6101f46102db3660046117a5565b610856565b61024f6102ee366004611a16565b610871565b61024f6103013660046118f5565b61092a565b6101b6610a31565b6101df61031c3660046118ca565b610a92565b6101df61032f3660046118ca565b610afa565b6101f4610b0e565b6101f4610b12565b61024f610352366004611815565b610b16565b61024f610365366004611855565b610cd4565b6101f4610e15565b6101f46103803660046117dd565b610e39565b610398610393366004611992565b610e64565b6040516101c39190611aec565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104315780601f1061040657610100808354040283529160200191610431565b820191906000526020600020905b81548152906001019060200180831161041457829003601f168201915b505050505090505b90565b6000610450610449610f2a565b8484610f2e565b5060015b92915050565b60025490565b600061046d848484610fe2565b6104dd84610479610f2a565b6104d8856040518060600160405280602881526020016121e1602891396001600160a01b038a166000908152600160205260408120906104b7610f2a565b6001600160a01b0316815260208101919091526040016000205491906110f7565b610f2e565b5060019392505050565b60055460ff1690565b60006104506104fd610f2a565b846104d8856001600061050e610f2a565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610f05565b7f0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce6001600160a01b0316610570610f2a565b6001600160a01b03161461059f5760405162461bcd60e51b81526004016105969061206c565b60405180910390fd5b60005b815181101561064e576000600960008484815181106105bd57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f9ef90a89b00db1a1891a357dc96b2a273add9d883e378c350d22bad87a9d7d3082828151811061062957fe5b602002602001015160405161063e9190611abf565b60405180910390a16001016105a2565b5050565b61066361065d610f2a565b82611123565b50565b7f0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce81565b600080610695610b12565b6001146106b657738595bfb0d940dfedc98943fa8a907091203f25ee6106c7565b6e0c2e074ec69a0dfb2997ba6c7d2e1e5b604051630178b8bf60e01b81529091506001600160a01b03821690630178b8bf906106f6908690600401611b44565b60206040518083038186803b15801561070e57600080fd5b505afa158015610722573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074691906117c1565b6001600160a01b0316633b3b57de846040518263ffffffff1660e01b81526004016107719190611b44565b60206040518083038186803b15801561078957600080fd5b505afa15801561079d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c191906117c1565b9392505050565b60085460ff1690565b60096020526000908152604090205460ff1681565b6001600160a01b031660009081526020819052604090205490565b6000610833826040518060600160405280602481526020016122096024913961082c86610380610f2a565b91906110f7565b905061084783610841610f2a565b83610f2e565b6108518383611123565b505050565b6001600160a01b031660009081526006602052604090205490565b7f0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce6001600160a01b03166108a3610f2a565b6001600160a01b0316146108c95760405162461bcd60e51b81526004016105969061206c565b7f0000000000000000000000000000000000000000000000000000000060176ed56108f2610b0e565b1161090f5760405162461bcd60e51b815260040161059690611e61565b80156109225761091d611205565b610663565b610663611271565b7f0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce6001600160a01b031661095c610f2a565b6001600160a01b0316146109825760405162461bcd60e51b81526004016105969061206c565b60005b815181101561064e576001600960008484815181106109a057fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f77a7dbc6ad97703ad411a8d5edfcd1df382fb34b076a90898b11884f7ebdcc05828281518110610a0c57fe5b6020026020010151604051610a219190611abf565b60405180910390a1600101610985565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104315780601f1061040657610100808354040283529160200191610431565b6000610450610a9f610f2a565b846104d88560405180606001604052806025815260200161222d6025913960016000610ac9610f2a565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906110f7565b6000610450610b07610f2a565b8484610fe2565b4290565b4690565b7f0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce6001600160a01b0316610b48610f2a565b6001600160a01b031614610b6e5760405162461bcd60e51b81526004016105969061206c565b6001600160a01b038216610b945760405162461bcd60e51b815260040161059690611fe0565b6001600160a01b038316610bfd574760008215610bba57610bb582846112ca565b610bbc565b815b6040519091506001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610bf5573d6000803e3d6000fd5b505050610851565b6040516370a0823160e01b81526000906001600160a01b038516906370a0823190610c2c903090600401611abf565b60206040518083038186803b158015610c4457600080fd5b505afa158015610c58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7c9190611a66565b905060008215610c9557610c9082846112ca565b610c97565b815b905060008111610cb95760405162461bcd60e51b8152600401610596906120b9565b610ccd6001600160a01b03861685836112e0565b5050505050565b83610cdd610b0e565b1115610cfb5760405162461bcd60e51b815260040161059690611d56565b6001600160a01b0387166000908152600660209081526040808320549051610d4e927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c92918c9101611b4d565b6040516020818303038152906040528051906020012090506000611901610d73611336565b83604051602001610d8693929190611a9a565b6040516020818303038152906040528051906020012090506000610dac82878787611375565b9050896001600160a01b0316816001600160a01b031614610ddf5760405162461bcd60e51b815260040161059690611ea8565b6001600160a01b038a16600090815260066020526040902080546001019055610e098a8a8a610f2e565b50505050505050505050565b7f0000000000000000000000000000000000000000000000000000000060176ed581565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060815167ffffffffffffffff81118015610e7e57600080fd5b50604051908082528060200260200182016040528015610ea8578160200160208202803683370190505b50905060005b8251811015610eff57610ed3838281518110610ec657fe5b602002602001015161068a565b828281518110610edf57fe5b6001600160a01b0390921660209283029190910190910152600101610eae565b50919050565b6000828201838110156107c15760405162461bcd60e51b815260040161059690611ce8565b3390565b6001600160a01b038316610f545760405162461bcd60e51b815260040161059690611f65565b6001600160a01b038216610f7a5760405162461bcd60e51b815260040161059690611ca6565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610fd5908590611b44565b60405180910390a3505050565b6001600160a01b0383166110085760405162461bcd60e51b815260040161059690611f20565b6001600160a01b03821661102e5760405162461bcd60e51b815260040161059690611c35565b61103983838361146d565b611076816040518060600160405280602681526020016121bb602691396001600160a01b03861660009081526020819052604090205491906110f7565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546110a59082610f05565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fd5908590611b44565b6000818484111561111b5760405162461bcd60e51b81526004016105969190611bcb565b505050900390565b6001600160a01b0382166111495760405162461bcd60e51b815260040161059690611edf565b6111558260008361146d565b61119281604051806060016040528060228152602001612199602291396001600160a01b03851660009081526020819052604090205491906110f7565b6001600160a01b0383166000908152602081905260409020556002546111b8908261150c565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111f9908590611b44565b60405180910390a35050565b60085460ff166112275760405162461bcd60e51b815260040161059690611c78565b6008805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61125a610f2a565b6040516112679190611abf565b60405180910390a1565b60085460ff16156112945760405162461bcd60e51b815260040161059690611df5565b6008805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861125a610f2a565b60008183106112d957816107c1565b5090919050565b6108518363a9059cbb60e01b84846040516024016112ff929190611ad3565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261154e565b60008060076000611345610b12565b815260208101919091526040016000205490508015611365579050610439565b61136d6115dd565b915050610439565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156113b75760405162461bcd60e51b815260040161059690611db3565b8360ff16601b14806113cc57508360ff16601c145b6113e85760405162461bcd60e51b815260040161059690611e1f565b60006001868686866040516000815260200160405260405161140d9493929190611bad565b6020604051602081039080840390855afa15801561142f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166114625760405162461bcd60e51b815260040161059690611bfe565b90505b949350505050565b611478838383610851565b6114806107c8565b15806114a457506001600160a01b03831660009081526009602052604090205460ff165b806114c757506001600160a01b03821660009081526009602052604090205460ff165b6114e35760405162461bcd60e51b815260040161059690611d8d565b6001600160a01b0382163014156108515760405162461bcd60e51b815260040161059690611d1f565b60006107c183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110f7565b60606115a3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166116939092919063ffffffff16565b80519091501561085157808060200190518101906115c19190611a32565b6108515760405162461bcd60e51b815260040161059690612022565b6000806115e8610b12565b905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6116156103a5565b805160209182012060408051808201825260018152603160f81b908401525161166593927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6918791309101611b81565b60408051601f1981840301815291815281516020928301206000948552600790925290922082905550905090565b6060611465848460008560606116a885611761565b6116c45760405162461bcd60e51b815260040161059690611fa9565b60006060866001600160a01b031685876040516116e19190611a7e565b60006040518083038185875af1925050503d806000811461171e576040519150601f19603f3d011682016040523d82523d6000602084013e611723565b606091505b509150915081156117375791506114659050565b8051156117475780518082602001fd5b8360405162461bcd60e51b81526004016105969190611bcb565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590611465575050151592915050565b803561045481612175565b6000602082840312156117b6578081fd5b81356107c181612175565b6000602082840312156117d2578081fd5b81516107c181612175565b600080604083850312156117ef578081fd5b82356117fa81612175565b9150602083013561180a81612175565b809150509250929050565b600080600060608486031215611829578081fd5b833561183481612175565b9250602084013561184481612175565b929592945050506040919091013590565b600080600080600080600060e0888a03121561186f578283fd5b873561187a81612175565b9650602088013561188a81612175565b95506040880135945060608801359350608088013560ff811681146118ad578384fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156118dc578182fd5b82356118e781612175565b946020939093013593505050565b60006020808385031215611907578182fd5b823567ffffffffffffffff81111561191d578283fd5b8301601f8101851361192d578283fd5b803561194061193b82612125565b6120fe565b818152838101908385018584028501860189101561195c578687fd5b8694505b8385101561198657611972898261179a565b835260019490940193918501918501611960565b50979650505050505050565b600060208083850312156119a4578182fd5b823567ffffffffffffffff8111156119ba578283fd5b8301601f810185136119ca578283fd5b80356119d861193b82612125565b81815283810190838501858402850186018910156119f4578687fd5b8694505b838510156119865780358352600194909401939185019185016119f8565b600060208284031215611a27578081fd5b81356107c18161218a565b600060208284031215611a43578081fd5b81516107c18161218a565b600060208284031215611a5f578081fd5b5035919050565b600060208284031215611a77578081fd5b5051919050565b60008251611a90818460208701612145565b9190910192915050565b60f09390931b6001600160f01b03191683526002830191909152602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015611b2d5783516001600160a01b031683529284019291840191600101611b08565b50909695505050505050565b901515815260200190565b90815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b93845260ff9290921660208401526040830152606082015260800190565b6000602082528251806020840152611bea816040850160208701612145565b601f01601f19169190910160400192915050565b60208082526018908201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604082015260600190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526017908201527f544f524e3a20696e76616c696420726563697069656e74000000000000000000604082015260600190565b6020808252601d908201527f45524332305065726d69743a206578706972656420646561646c696e65000000604082015260600190565b6020808252600c908201526b1513d4938e881c185d5cd95960a21b604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604082015261756560f01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604082015261756560f01b606082015260800190565b60208082526027908201527f544f524e3a2063616e6e6f74206368616e6765207472616e736665726162696c6040820152661a5d1e481e595d60ca1b606082015260800190565b6020808252601e908201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526022908201527f544f524e3a2063616e206e6f742073656e6420746f207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252602d908201527f544f524e3a206f6e6c7920676f7665726e616e63652063616e20706572666f7260408201526c36903a3434b99030b1ba34b7b760991b606082015260800190565b6020808252601e908201527f544f524e3a20747279696e6720746f2073656e6420302062616c616e63650000604082015260600190565b60ff91909116815260200190565b60405181810167ffffffffffffffff8111828210171561211d57600080fd5b604052919050565b600067ffffffffffffffff82111561213b578081fd5b5060209081020190565b60005b83811015612160578181015183820152602001612148565b8381111561216f576000848401525b50505050565b6001600160a01b038116811461066357600080fd5b801515811461066357600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220043c43bde5b4acd90be7aee5944f4d06f58b795870731c1c144b7c808b4cf01f64736f6c634300060c003303135676aa53a5f5eabcf6a0b3c77f3436a51a439537f5b5ddcfd0b940a0b53953031cf1ea165038d938f4c4c3345bbdc3008c4f5121fc2f29b973f04d5a29f26eec0364758a249fa8390e8351332697754adf49f413a164440132d444e02e46dd7c5303adf5302ad7a2942c2572815e842edeb2ddff2b6eab60451295b19762cf4f7d8903b87de55f83d80d87ce8c7a403eb3a9563aaaeed3b6e71bc23b685d79077e040a033530eb83c6fc50f7f0be33595ec7518292a1aeaed14bcc52cd1fd2f8f0c3a0d103f0750866b3410811ea831477c55d2b4a5d31163344045addf486aac0d5e7741e037a2e34c22f3af8060e1f077b60c897e56ca45eca51670f6e69437fdc59d06b4a0365ca2d6cf468349387edaed55378c5d738cf29747e72ead1b8536974a663516003b75ccfffcd1eb90ab06472640b36315c6c275fdd84e591b4b99baff5a9620a85037a3e9226101f05b745d1bb1122993be5bbfebcbe6867e305e8cc832ad7d3cf57039c1049b6753d7bfeff63a2423b38edc648e7a23a5de58d19d88f73f5d7d818e4037c08130b3fc38fa52b7a4ed9f39c8e55f4cb642f07b3ca9ac93e73ce89f0e1fd034efd774da5e87776bff8f054eead97a5a195ae98a78d011fb63c64629af8c97f0368b8d0fcc02b0770308cd0327e87f6f87733b416a976581458fad4043fb97b4203c94473922a147d3995c82024ecdf43985caaff7e14fcbc18eb1349fdc247aaf00338cbb2a0e5bbd1ca194a47aa155bd1271b79b9a5bddb5ab2d6710ab490303e4200581f02de2059c3a95350c847ea7210c9a3b5fa27dc53c4a17230564d0041507f954b4a8179ca1c50e6fa6c1c0003523671bb0e7110c7a33d97c60dab0685ff0a037f5f11c829d5abd0c24dc7d5dc00581f021752ae2301e5fbb9b3991bd89f8640095efb4d7a3a2a8d296cf51feba45d5820fffffffffffffffffffffffffffffffffffffffffffffffe75f4b0c63d1d9bbb00581f02722de913c16d7ec0fa1560a22c9c0f60b7f96c24ff625e14ff5ec78efaba48023e1e5803b40000036a6d26094ec7601895776caf3598c4156c9057bdfe39537e95390c0c9437440500581f021eb94d723e38ee266d49385005ee3326629bf1949e7f71794493ded09376410100581f0278a2530515e616a9d0e41385f76021cd7146b647dbcc4d432686900b536748da4ba054fefa9af00219b9150352614e6c7c4c97acb0c90b3f158706034161ad41ba96a5ce21f671fd89e9f17303ab66514589e80858a8ab9fa7fd6d5a0c7e697f835446b3712d02b926fc51e29303abd937a350816253460376060186a44e7dd122974855e3d22be3f09ea4266c8a0350431543f5e2fea2eb47a25fe724f2a2be6933158e3b29053f26843df6616eab0219ffff03e8271831857827431f85e6e1f873db9c9766172567dd38f3f80ac7b3f551df84030e62756b3775ca5ff347daa5eacad10806d98d1f1669d34d3d47d2e812559bd403c234804664629dc1b5bef7e6a0c9a6935905acb48f28b96312b1163b99c3384c0345843418c0b003388958d5f4cf93689a108bdb7e94a212b1fa6516d214ce4ce203631b1d54eccacd2694cd75d8a9ef4884c7ead0ee815e1f55af276dbc05b989e303e329e692f40ec10e7b5a1d751022e2816d5b9950359e8c63a88945bd032203600342b18f2e17ef2b20533572bc7cf6db72c0de3882e91e948c2966a6a9b8ede7b5030ad679b24c10a8974ed6fe8b5a4aac6e45168523cf79ee8a761dd6bbc102e62603087eab8e09f2805da3f6fd90918d8de08fea80773018ac89898cb8ed55d5a44403f2baf2044f2365fb88eb31d32f654c71e63d8def4537a176b5d34fb90e9ecc78037b218570a86a82cb94c414eb1e7002d73852bba3049156ae94602ff78ed4b0d203088901f9eb7d95e434c2b619041d42dee5e32c234d900337233985e09bae77a503c2bb8f4254fd769b133d0dd1726512a6c2817c3599474d8e0859ce9d94f35e370219ffff039b0b10da811657d6510e78e8bd777073347c27697f7767fd5a259a2d5c3aca9403d30fb0c69ae5ae86899ed74f5ed05446b1ef6d1faf8390e2b0583470fb712d7703af2c7a35dc7aae9f00c6c3fc374199c8e3c7170adff8502e8a68ccee5f7b0f69039bf8124cc9a36f9cb85c367cae0824b337be22c9a5df793d60651526d743240b033f03c5c2681bf81ca3c4bc132c5ab695eeb56e81ae649aab3dcc3bb7a7cd94b8035e4618e636322850fd1b8dedcc0a28857aa0703d6a349070f8fa365a89e6725003f325ecba4837d77d3ed5f9b1eaffaee4d44019983959deb9a9c80576c386b7d803a02234c1ea6608a9a15d52c6b3c58c1edf0f2ea2331a76d2e294a60bdaff8a24036c62c1c6a3fa6b16a289a8e1aa9c256dd5691bcb15b582dfdfea8a66781c07b203aa079bc54cf0b4bbf1274a2cdd4c4009d362f0d202b0b95502aa5cb4beb9b1a203d8d73adf96818cf3ee5bb8f652fa59c4d3132488ab6516df20baca857db5e6c3030bff32c8d2c6996b31a86be9c83140a4087d3405af5fdc53368cc5c0d79c75ff03a07ee81cf9a60d7a9f33fb38f908e8acdf973cd5f41f5f7e8d3185f4132858430380fad90aadb816e1ca19695611a7ed32f2a64843ceec00426dc25bf425e6ce1803af3eb376e232218373101653b45e46b2a0e6cd5902094ab5ca836f1c3f795c76033d9a0e9f248a59721099553def99a391ee4c722afcc4a3ed3f762e24f7ccdf16030d7c84a66dc47c59402e9b5dc58f552779744d5bdb3fe766990ced222374f06703c5d2c5ad12caa39074dd963df600de3acceae07e3d9d115e8d8e9c556a60665b034094b09ea911bff293f5e48efe934fbbc76b1db20949df3310c4368e34b22bbc031e0a351be0bab17f6df2494979746c1bbf4e7d9f3176a5927c6db4fae7a6a29a03db1cbd6cc1331388766c9c37486f36799e04702bf12cb889cc1c86d5dc4bf1a303b00edba919432c53104034c0998c2bc5ac67f38d187efc5ff2dbaa69f9c5b3ef03c4dc445f1a58d882e6ac9b6f5cd54302f645b2d1f5038197c2338e9f498ab8c103e4a6543a18e72530e335a6cf8aceeb6dd46d7d07bf11b11c9b27b94fcf8e6620039517bece20a31a77637b43e27bde24d64ea0a55fa484cb4f211134b99e65e83903525875d0a6a662acb789364e4d5c7fca75f94caba942fe40d6785f49832b56c6030d788b32fcd6b5a0f86c30b44812c2c3b8c0b00b7c98acf454e8bddbefb544dc039a06eaa21784945d6afa1b98686853eff2354aa3c519951abfb07b5c004e4f9503776c925a55cbe25fa1ee92693f68a398ec87b03af57c569dd29ea1bb986669bf00581f0256c36bc93869f595f0ffc944c41946be385c62f900a8c788944c55bc27b45820ffffffffffffffffffffffffffffffffffffffffffffffff9415ce6fa606a94200581f023485bb2c6410715d1c26b23146f1ade4e39ef9552d0f60ee5d2e14f8a8f04902170b598da912ec8200581f02d7c345e7e14153317420bc6da9f64d146cb67b5a84f77d9f77cbd49cd9ef410100581f027088bc1f94d3290b1dbb35c001049c5bf844865daeef20e45fc0879876815820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03c7d055839f44140fd3a95b0908504cce8ca462c575aac1be67c0072f09a9bb5600581f020b9cfe3fa5f2764ea56e3a473736671af90bf2e5d28f3b35591a91f85da05820fffffffffffffffffffffffffffffffffffffffffffffff2f55ad8710e18cef102193a820219ffff03f427c44cce224fa4480b4e6d6cf204a4f8c32228ecce592d4b2bc8c183057dc303fbab610a4b107999a5e6f53d61111c17214b0229b1ac2272c4e0344d3fed124b035a73d3e3cb32d6aff80037d0da069bd28225cd9bacd7f206a3a3afb15c69ce61039537632227dcabd0dc9361cff32f3b239332620ff15ada78b719adc33be7da820398fe83ed8471967361bbb779f323509246f44bd42794f8ab5ae5d10da99e1bbb03e13804819a8d533ca90597a2faa0769ff97665ae2c4a4ab6cfa896eb76f64b5503f2effc33e7113f42c584e78da9ba36725bf3110274a9d14d9be9a13fd1e6a041038a81a1ad781d892af94bffc5769b930bfe3d6b7cdb539731819134211ebd23510358f61f6cc138deb751fc76684815462af8043cebe3fc5067fb4a711bcb3ba5da0360945ec259e4c8f0342ac1a4f073e37a13486231ae976ef504bc74e136c53832036d2b2da6958e82d6667a188591a4c44c2e02535e65897bc66284838fb0fd8095038a6447b84634b5c259f11aa4f3d3b5d7cd46894e28541ab2ea280e6ee56e87b4037e2c454a6fa890e645e442fd68d2936d6fb249f4a41cdab604c6ec60659ce122037c70889f13d68868b3d79401910e4e213b1058283b512cd3e0bb20ac97ade1380332782bdb1346dd003de9bcb8efbc74e5a5159476cf99c000f0110cfb455e5cc00338e924507e8b804283b7a9e678a45ccbf413e9848047e714d04cff550c749288036967b92f45f04594a066d0c63ad8da8a5f9fb59abf827135117041b15035e41f0304b35492a460ec170eb80fe496c46e4e1345fa35f9221ed6d3761d2e80b58fc403da281432d08e7faf32da0e07c65069453595f641dbd1043cb1867cf661f74ddd031062f076d009f4acd507efa3e27f940f59e9e3a58a87220cb879c15b2f1668d7039c0247d42cbf2d5747fd984451008ee943816eb919d9647b67b140a329db0a3d00581f02f615b06c40784de09200af5e4a4e63e3692c17ba47f9cf709072c2ac69e6480c6a48cd983449a900581f0291d25f11a94a09b938848e1c416184575eb83eeb29b7f96f4ee68ed0941549012314ad25ace0baef00581f025355bcc4a1ad5c741f08b7961d9d2ba294aa09e6196c2351f3b732b127f549a385f85018c1bdeb4600581f02e5c0f2f1a763097e5828f81ce420af18e906629b3bb71f2cb67b81c88bca496d601cd0daeb58800000581f02e4605798fad7d75a77e34a8b1efe2fa276032633f88f0a791cec5fd7e60c5820fffffffffffffffffffffffffffffffffffffffffffffffee82f27956bcd16b300581f021e26d45d14d433772145dbb1d45036779cb8c98f5416623ae8dea07676525820ffffffffffffffffffffffffffffffffffffffffffffffffabc16204bce55d7d0219319a03df12317f08dd06c8903d1752cd7e94e3f812c914f4247c27b28dc8c193d6d8300219ffff0380c546d5bab3b3465251b03aac7f13ea5344af6c68353aa8b201e72a10e8016e03b3245ade6712960e08a917cad14de811e81e7ede2dadd95066812fba6ea93f5003bdb5151d15d0e11bc7f39710b63d384d048e13188ad73494e26bcdc56f72af26032361be69e41f0f1b224eef55127f9e1c94fb0f1574da7f22f9f3c8ee67a9618a0364352ce1fdb847e4c047c843db4380d36629ed0abe89824a94776ec38465a57e0219ffff0219ffff05581e03ff7da71936c9218d6e02c7dd40314b24664b79db6bad4d8a00998aa270070119228705581e036659d89edd1423723977e154bb8ae5bbcc129877af3ee277552b6e9cc00403035a2036813b55be2eb62d7fed6d6464ca46b6deb9683ad10330acc2defbac6a9805581e03fd52a7d998c9a78b061bdb2d1cc0d204d8ddc789fcfdb3bcfd47f98bb00c181a46c52ba0ed14f805581e037cdc938ffe726fe31795fb4d6a7adbf1465f0c3f91ca1896953f01e66004010219f74e036d26e79204f0ddea429267ac5900e31cc3c73b345969ac412c503011612c1eb9035d80fd73631bfcd96ca7311b274760a4bc8498ed8a1396c56162cf3cc5773ad903e3b4a06a995b0cf7365f98954983805c31ee4e293e4bab390df342604ff73bcf039bec60451be393050befc5d580e6ecb61f9def52705726aeab9924d5c1ef3d070325db8ad2eed3b0532478c5466268c4a6c2fc924b6d236968b77cc6a4b61354e5035803ec68b73126eff4aa64e34d4835375e704057874e3a122a7a4354b128080a03faa20f2893ff109d5fc5ee0bc687398193ac26e060ef47e28428d42b8ee7143c03e96b17a6d00975446e01cdbede4e0a1bfe2f7fa35e5e730f9296c0b751f6608503f865b103add64fe3906deef2858881824cd2c30b29d427439f15bd341d3ee0e90219ffff03e6dcf8e3fddb49780f71ef26216dbce3d30b7ee91a675ef0643b63891d9c775a03392982dad7a7a98344c3ab73d664f4630e53737015bfd3843ada9b91ebc1476103a19c2b640952574c0aa03348c69cbe1a7fb2f2fc3a0c4ca78bae569f73412d5c0300b60e11d51b361b28e15b80791e4b4bf80b108817ec28feaa5e748206bfc34903f4d485983b2cc4a3df58d8a932e335d441b27e43a1231c173377a2f925d10cc60348462cd3e3d243ab98c72596171e248029438422dc9ea3b8c05a31fb1db30c6003e8fbaf31d7256a07c7ed5cbc65a929f711d6b7553e26dead3e53b91c002cd70503ef04e4687e634b8c53f6321ab59ef38cbe9d629fc4b521ba5da8368a1211c1da03fdb165aba089cfb034f0fcc07f46c5f19e5de6f378a11016cf45a636c33dadff0219ffff0347e234ac2035ab8fc42fd69bb04ef7ec28b037783608f1feabab562ba9aff84203b28e80ae9aed9e58b044b3312b89b46804b97da798f023a3a9cf7bb62f4e27790219ffff03613949b05358dcffa02b79385c523947b71e27c5fd650b112cb63b34e07f3aef0397701cbc91f6b1439488d20079ed853aa227f1f3ac18373e6e56b20d55bcc4c0039d4c347b567538111d6ec2c52ea0cb4cd82cb35d99adb84e10126962f095efe6030d721b606ecc7cb76f7b1cb74cca6200c2d2c063bbccd9ef9b85cd535d2faa6e039863249144f432d8f84b4f75e00bfbba29298e4ec0c19ab8395b62fc035cbeb003862ee2686176b167f44ee3611ef2564cafb9cb30d4f5dbec29140c3d4eb3005d03576e6209f2468aba4125fa0b5088918cf259421580cc8fbd4504443be65f88bc03599fbfff300d55af71c77277d3104d0f1c10e013e30f08157be40afecd2990360342968a15455aff3a621f18bfbe1746695f2a0d12bcd48fddfb9c889a4defa28b03b5b7fec0905e4c7a22d272da9f43e10c02997ec77f18da3fe882955eb6dbe9ce034e7e3e264ee56797ee95336ba5e61543bcbc9450b23bc18c52663c87c6509bf6031c4bbab27d7e2d8382125a3da071936199bf47c73cc8c1093f79f14ee01d3757034d22abe8600db50083b63f947dfd544d12aba38c493b4025e923c0718117f75c03367c461f201395ad7ddf4ab7d16b289a177ca3e9079e39d43e00c2527212bf530395f788bcb186a713d0b779879bfc4b62e60786613a999e82c7b298753e5a84f30320de00b1a94b49d2f75a875f32c946c267f048b51f9f376343d7b31773fd0629038915aab0d25e1aa9ae1d487b06513a12b5249b28cf6cc7984cec63680832f64503364e3e379ddfc982616ae48e89e3cb79dfcb93e13c5939f370e61e54ffa6a8f70396f940801fbf77210dd17f89454309a85eeec65f1eb0223ed40ba64e19078875033667e373c9512cfa66ff9c3834572d408043f8b1d96016e87c0904d6aa53fb060396dc179b6e5026e8f3975d6d4a6f0bb380a7bc0377c0536460cd2403a7093aa5037ec9fc1c0f46be4efbd940eba1efbadbb846512648db4c861825538d48dc5e0803f74fc41859b005ad0e62060448906b7f008945ac7604ce7301c3d933de0270ae03d3675c8bb5b6a6dc959bead4e7376b006f3729f7fffa28700ab61962c2d13dc60345c87e326ac8df3656c6fb55f7727c4838ff458768218e6e368b1ef01026463703c7c2b062e5032e0e881937aa781c2b8d61846b0ba92c26fee1b09f6820ec340c0347b856edd75adde79658fb7c1c6d7d61bf4869d4c7dc2113f38ca39cef9a366a0352d92b5b590156ee6e0321cb7c4a8e1539246aa18a2e76d9b9eec150d25c34d1035dedc15f2ecece78efdcc7543b0f4cbdfee86a8e5eccec3d70b699fcc92565f103d605d46458581205487357f3c4dd7cfaa65b929e8564a09fea9793d02fda80590303c67a88a55baafe716c01ad92cab6de2500bc2f4f524dd0656f01c8e7b345e405581e0333708b93971ed703fabc037f35e8c3b80e2cc44fbdfbc9aa9c884161700c01470a472c02f2ac9005581e035e7ad5734e6e69d977573314d897f9e454cf136441888a5afb0cba164004080345e3b31790606801aadc27594b862e10f0d87f0f888278a1ef26614737266db105581e0380802af99c7eda8548ec383e939ade84a0cf9790f594bae8672596eab0040105581d02534a48ca32f3b2ee3fbf38b5cff2a83ae6911745598f26a9591d155e0c024702fa28380ccc6005581d02735970103933b4c74b2d4417c7afd10944e1bc5bf1f780a0adb1d22c040304592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c6343000510003203a7a2728498ebcd4864e07180329270831822e284aad72ad37e8ea7c51bf3b4bb03bd7a00854d6319244738f1c0f89f91d35d0edc172ba24a4dd0d81cc074a60e380324abf236557e4583de983f3a01c620f867a5e0f35a82f8d49e7cbf56ccb2f37503d06301c6b8fd691777117ea508f0d3209abc323735e7f54f0b06a0103e08f833038b5819eea99b20285d18144b753b629a6691fd96195dd0ea282a6b30148648b503636ba9b4304da01c949aff04a7255aba508940aa7c960dba6739855e6918f5cb03db59b9c89220f5672729da0f7bf930075660f730d5d5a01c4f6d9e490fc33038005820023c0dcae340a8c72f1bdbaf09cc4b6144a0ce2fb353d668a3567f5cc3ace0c148505899827922cbc8005820025e6824732aa4a3d58502895b2dbd8f1070e2452b2f5fb642abf625c5c20c315820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200231dd03b46e87901e1bf7a9b917252d428911c6fb27c4f9ddd5b26fabad71f35820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200266f0530c309706bf38c2fa637cf8640029e31ea8a28902c4e215d775cffdef4102005820021540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5051518a8b25981e318273206aec447d740219722103be2ef5ec0a6004f1ec893ada0170b6a5f3435fee60310f6bf698ab60e3a42e8703ade9c0d31fbf46635a0218f9afefc35f1c2bf9c51c5fb7c121094aa84de257d503d3cd40f45293666ab3d26401c22e401c70fba4010325705fa4d2a0adefbb300800582002fb2e22e55412d74c982ae0474cc6cb40160b0fc87dd469944feee91d5b330d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820024c0cb12804687ed2043c2143a9ee571510d23e8a3dd8e1ab67d39347af7aa35820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820026cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68854c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2005820021cee344ca01544aa7f680a45507a635bb6d9ce039f717b5e8116297dc28c984a010e04b85cd20342d3e3005820023e06f1f02bf56d5459eabac1bcafa9a0428353152f5a132fd33e671528386d41010219245803e349835c1f158a4160465525157c79acf475d0d2f5b95b346ff754366e61d9f7031d72af3a1725976f68e18493350ecd7d2c99e6c5a3823dda155be5d053fe90db00582002131624b8cf39c21d85323642a0b7ea97617352982cbdf05f8152e7106ce2ee4101031b7756575529c1d7b162e8442968b63de4418532eee7aee1b2fcd35b0be8ad4e005820029d4a0bb2ef308cd17444c16b70cb79bcbc0d48af1f7f5cfc92cbddf4e417b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002a1739a1989be00aff7dc16e9edf84718207d03490dff5d3dfe0f4e894bc2075820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200285b2f6f0b1dca9e1f67d8e5fa3cfad54c3d098990cd241fc56f1c6b4f1edff410100582003a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80530e10e8e43c408c8e997c3beb78d4b8ef999a6c005820034cd83a24dcc9068136e15c4b58594a87b9ac5a983a98f685b492475a2f94d0410102186000582002a0e16dc3c6f190aefb07827bcc4d9ba87a3e5ec9b19d13c86f9a98c41e88c15820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820027010074ea8e7d579f38f33d7c11b5bd43e8fe2ab4076a514cb4381d310873b4701b4e89d555a510058200230c761c09a135cc942e81ea5275fc06c4ab36caeebc125638a472540c8eda35820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820023f83b638b8b7ab99ce1b52e0a9305bf24c43f4bf63a05a3747ea9b36633bea410600582002d8144f1eef0a886a3e830e4027ecf0e8596048386fcc9f7ec0fea47ab38acc5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021969ff03935197c218ba3836c1fda4cfa9f5a4b0a05b26b6d97cf9d35c42190c24c5077c005820026cd8b15118ae6d01bd9ffebcd11fd06ac2630e4091c3564d620451fe21afa34913e92e721e825b05f900582002b81b22057b69536426ebe183ebc0783418ba0061c34597d29361c5d377a30d410200582003966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70410100582003aedc358a84ca41416f6e8d9cd6037d4651f45e99b5f6670240e54c83c078705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021902400219a2800389e6afa45f8d924ae1785853262e968a77f2a88e75ffd57f72c8958919b832a00058200313acaf907e5d583e6c225ce568f59d4dfff0cef5506724714a3acf22a84d5042ab10005820037a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30582065cf5d0f0000000000bf43e72908277a67300000000161f77997cd9f6dc10eae0219801000582002c61be049daa7007f9b0f1eb9b4fdb83f59d72daf8644693344053a905cdb3c470fc564026d2fa70058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5301a500a6b18995b03f44bb040a5ffc28e45cb0005820024b7805bea4210b15bdeefd6fc7729304a412717fe8563d53b60ffab2b690de5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002bfe61efa3417b1b57945b688dd70139258f725cba1f765f3f177997f6656bf4207b7021918680219ffff05581d02a6bdece50e06b755e8717b10428b87dc3fb370f06d24765cdad7497b0701192c1d02184505581e0388b8a6fcf52cb600789dd289d8fb88cdae6d2636952d0aadb3ad9c2bc00404039de81c57a6aab2bc75888d14b91271983336a9d7177328378225b59ccd6477d205581e0396554c90fc5271a4897a0ccebbb48fcc4dd9e60787994d90706b0080b00c01470f91988ac6ca0005581e0384297d7e9a32c676a6d77abc791d081f74990ac26ea9e07ac94e2d7c60040202197dca03727eace38d956ad6d24c4509273898983a3e5db247c5b10354b291ad128dfa62037a3f2abd92bec74e81c27befefbba4144a20232f3bd4949b78d82ee5ae564ba6039ba6ca5661c510b681fe0cd5f6f0bb0d0fe10ecff31a10a79c41d418adf079cb0308a4789bd4e308f88073a4d352074988f085d2c9f962c4eb6ff75dfac731275b0219ffff03551114e17c057e1aae325e9ad7ca0f4c7f862a36826a30ad6597799b4ae4be9a0398b1481fb10980dda8a8221f3cccb403ca58f427de5eb253edef3fda4dcbb8020219ffff0326f2cc2a49820db7782077aa5cd7e8f74107b29e9f63790b2a375e443ca8cca7033c02c3574749c6c01c6bd37d08fb31fa87b3f0b5a5cfc2e389aebb01fcb86ec7036d0b952337cf0959f1f121eeb769a291fc9cd907a05e3debfd007ed01658f1db038e933dc72439b5ec93b7536aa6c9ead3c481782b3793ef32b18003faf3784438031a312cdefea7a273546663f6464e00306a023b0ea547ff00a702284fd594f10f03abb453506fc57aca475a99c4c2b3f57a5e7a2eb0cc3da3820e8bef17701ac8180326fd8df1dbccc5c715b62274aad9c92e7f49e47364af611a86db9e6daaca521d03a94f31dc96439c1ca597cba94e29ab1e307ef05fa168425ccdcd84083da691ef034f493b31d642c1cbdf338767c013dfc1c4c86e9f3bd7f3d794cfe6714132f62503502406da848444408e0b861dbb610b0eb4c702e53ebfa49b13ff0c3eca06d00503d9716ce322f107b656a01ac24728e979977676955740e89ad2fce85ce4096cbc0219ffff034fe78d071d67ceef49662bbd0f8fc0a19dfa5dedf5234e2be1103f215e415ec70219ffff0331cf6b1121b64c23ca80a5bad9ad76bb31973cf8a070fb5e504048023c0406fe03f83c7a63b3c53fc4b1c5b0e883af2329a3325921caba974d0a107e13f09270940399d6616f832deb12b9c7f096718defd8329c0d39b1116d72ec033237d8c8c19d03eaa7ff59e7b59acfc274134dcc5ec2f273cc5be6c4b36c8013ed1bf55f4c79540344b0cfa2c7bda3bc2e87f526617cb4bfefc95a65c1531796c92551afaa7fa1cb0361a913998568ea878b3d6312af17858cddc3f59d92ddecd06f8d2061f5d5f288035a492f2eba98e588a740f3939d77f48394e8527a75bbcdf20b8aec23bf4763f303f7d0e23de96588161c7252fba01c8ef8d3989b6fe6b0f6b19e2a49aaa27629f1037c6f54938c4b140719d9d9cbac275932f8957fa90316e5700a5484e4310799ed03b8ccf898c14197c5e16d7d31534ea734dac1b12317ea1b434a8e7f3969b9071803238e705a846fbb245f9d192a45f1171d4b28a9d3069fc960f27241db31a9d1f303206d3dd31b0ae128410055dfc494e3a35f69a156f9d770024b1762594205a1000368b49008d819c1dd9d929443b8f07fc9a937212e59fb6d0fb8054334cb99693f036ee5a8d06f06d4a73e5a7c7dc58a178ae02c89dfc9b7cb40252088c67f943ba903e1f59f23ba3213ac302c99934a2a3c7a3a840fa4355326841eeb518243b5694103a4a9276807faccd89832ac78fa16fea269a9921f5538c74360b7be30b005002c0362d23f23d7b2bc6f0a5c3b2203abee94e7769d069817fc41f9129784f60793b003eaaefee82db3ac180b6169d42dbf922fda301cad9dc5f1ccef26c748f77bd5ff03c266e7e948f5ec7b87319d56b27ca97d715ad9108ccdb4cf05bc8744321df9350376bee6296c0205e4ddc4007db8da71588a9ccc79eda170782b209ca4df03b1120368f352b88ddebac9c00b814dfa43f89fead937dd226f445d724279fed8411327036a88bf723840ed24b4a021885f674cc4b1e87ef30f919c1463021100095ecb9303d0b6e3898bb58e13fa87e0edee9d400f4b0e26f80780135275a7d677324aaa9203d4044ca578474bb9fc015da0eff6be3247f274608918d3fcf87aa583f8960e3303c2b2061efa673067896e821bbc575b1ec116edd1bdb50db0e911d4a80306c07703f46a2cb772e25ac09837ae0d960a86e704942f68d139f71e61b0fc80ba10bf3f036b4f6597140d988673ea8ca033b2afc45b764d1638d406d08c4e4edfad258f29035d17280804c60629bdd9ddee8fa8fbbc651ed50f6d38f16b8061e953b20c1e6a034cbb9cde5410817c57eb6cb4eebe1b2f752785c716ad8017e0592569f3b17d7c03538fa373ab328945acaa05f71b451502020acc57dd055488d1b8630a7aca6706030638494b4454a89ab868ed0e89d37e1443e3d29b9c114da8dcbf4388d5cb3a5a033d4d5b63b3882c774d4ffb1d66370ee7fafa2eeb2a125fb49990dfc7211dcae903f58f882a85f20161dff681b215a85d7cbfac41ec3f83d11e74b76cbf53e67a3103a01e9469cf4e4f90ba1a98e87eba134aeb31ca6203b3f28e17c68eb76429eeea038b46ae6fb1c88591eb006c672c31725bd50ee7403fd9975f35d9c14e834c917a0605581e03a168d6f8900fd6bb4663969cd7240cc1651576250352cfed60345a333007011bffffffffffffffff0320e965fd45d6d1337ad54d9a8946d1608873ed24ba7f3758e3549a0eb886898503094fbbcea209df1dbcec053ad6ca0db223e43e2490a9c89afb78bcb136a8f7b405581e0378d9993d8cfbb0690af96ac56be599a6386950403105e4e3c25e7038500c0146b5e620f78d4005581e03472975f08749c24ab0c58371276a31bfd774114550b49c00ad843dc540040105581d02a29f90499a439a5c62b83616811dd5662e60c27b34dc53c433c82a5c0c1a0001c92a48e09460f090161dce05581d0273ae77dbefabd076a4e8fe856c6be182a693a9bd275c636e61963fbd04010219400405581e03fa3181d25dab6c4a8e969ce0f6c58ebb9bd845b39df49988621463cd70040a03545819e61a9d347d95e610716af71cdf60e37f2f89e9f6032ac6c60cc126ea3f030015f0a06a767ea040fc91168660759a2576d16c60d2f666d00ec89ee8f7932e05581e03b0171dc8714577acc9b524e8af8ec1ceb790326b527cdfde8140875aa0040105581e03700674286700c11e305cf59ef67054a4f46d2bddbcf05fa544b5176fe00c02470b05b06a52a00005581e033ca9618f95d7a5bf192b44e74ecd7a830a40601fb3f033e72863f88d70040203bc962ab923c4f000a648858fcc6b8e86d8edc44314cd67755dbbfb837427fd690605581e0359bdf74e4988d4f2dfb908fef6aca78429171ee3b074c41c86c228828007011bffffffffffffffff0219bf5f032ecd51419ff0ee7305c9b367848828399288de0ea59f2c45e90b86fe56e499f5032bb35a5c086c104c7855671d119f6fae3bf870b04beacabc03f3a8da59b25d9d03a740d369f73dd6d861527e3e245f959334246cfaa56ca04796e81291f6331b0c030ef9d2e86371564f4843cb2182f2db6bf01424278328f3ce9468c952aeb9fe8603d0a8fac4f3cac33be8fedc0854cacca8ecf83faad94236694f1e31320529207203aa851a4f788edc4096c6268de15306f3383ed06cb4c46cfe459d20a76b0191e40219ffff0306cc4520001580e898b63db2b6882865a57fdd5fe54a6b578a4e0de985a8ba43030622294880eac1b428a57f22715c605ac0e0b8cfcee64fb8865151ebd2a3879103f2b147ff4db8feae43d5d7fce802c6346d58b6492e637e66fd7a95f945dc6bdd03835808648fd0338df5901108f4ccae807b56822aa7e8e9077c95dd4847fd61bd03ad96e1304088fe46840b7615e4036df8ea984d9adbd614b08521ca91db6cfeef0219ffff03070f0781a437dacd22978ea47442fcad92604b39309d2efc53c1a9ec032fd14203d813a629de1cd1cd4d323fb7991ddcb651bad729bdfb8fc08fc32b676910845b03f97f75488117782701a574ea196f4426e1b69d57a8a21eac121fd6499c54e2e30219ffff030480e861c79904f8859ddfcbf32cdeb5338221859affa31222b6bd6f63d13ff3036f38bfb382c4ba906b04290e81a5fb7901ba5a57a26440cdaff6e06ec26abc8703abf30662f2d41498442132bbf896fb67347f49f053d7adb2480ca335ce5efcc8036ea030479c9448ddff132663004c084690d5a09d448335fb5fffd9b7774aaef403b33185368f2ff2698cc2142c72210049dd9aa8d6646eb3267b693fa0bbc2344603b150e8c1e416cb138e02d15fe7b45fca1ef660c0f6d425da759c36fb8943c18e0300d220dec5f908bcd9de20fc83dc9271e61f72b32be3338aad5d175c4cdbc491034fbd27e40b89ab39b0c2c192241a68726ef9bf5b38a77ca4a707c0803ad661390330274689b47ec53a7ec0681d1ac7edacfd7740d091f835a4f7495259d886300b03d1b87ed5a3ba4ceca700dd4cf953e5b037ac9f5eac75bbc13523bb14417f01f503a2392e09a91c80162fa44cc3b6e5ea4861b459efcc137b03f9c24c7eb702d8970388e664108b9852ba277ec984c8dabdbb78325d9504a6d00cedaaecc1159ca6e303bd0bfcea9f703d6afcf5e008190c2691b1c55d9a84c7d4aaaa1b6c534571c9c603bbb51813d571da13654ffa6b738bd08428f31f5ef6c7a31c3848e6e15fbf940f03d3064724ed1033f2b7473498e5d6c2be995bfb4db010054873a909b413b2e5a003b07595bda20119f734efcebdc28eed7ae6b301ffd5ed959fdbeed5cfc051ebde03d5eb8da053873d53d5cfaa436ac91c7be781c3b68557da2261b1f1262406d850039c7559d622e8c406f70435d4e927f00603c45af4222dc801c0bed615d38fb003036a54d3ccdd492b50207a00eee6dffaa985b4dcfddedf9c01284aa7d28e4e220503b19186f381e5026da882198064cb3a54c83717001458a5935c5dc7cb2f90e5c2035e7e367af035ba87f4f8792fdd3e0c150d9ad8e5604bea2a91d75dd7c12156c0032402f62647ca71612eceeb565901f404a1c2ab26a657c0a2750aa191a2379c67036ea355bae0d5b97a2c8be2f630ee741796cb8fd9ee649e4ec79ea3064600b14f03558c0d28711d02522bd1087b65cad1c5e4a4268f5336ae31cff4e68f1c5c3cbb05581e03934e712774b523968dbd82b13e8568163f39188137d82f703e69c5273007011bffffffffffffffff05581e03a4ac2eee4fa6cdf40b548f1e10fb22bf11fcf4dd9e82c189d35b9be6d00c074728c8e79323700005581e039eed636562c396929dfe319eb31c1e0c2596509274d4b36ae4a3ad85800c01470488f2f666c7ce05581e03ae3fbf6b3709d2c002cd51b323d82e1ba4615c4654ac8c18f1f7b104700c198cf9490399e36c63a260b34705581e03ba22253dcc442190235ca3915649eda0008214c01baab4bf05e289c3400c014742b44cc3cd087205581e0326655343f15c7d02be25131b57239cc193b9969abc936b280baa0a7a800c024203e805581e03fe28b74a0c80daf931e19561944fa0b946e647e83ceb4f0610947964500c01472e08ecd086a9550390d6d1caa30e1bbc12737b5a5f9035ed48a03aad25b8e2bb5fe385edf56642e90359283ef07bac10ff2ac217a43f625d6804549d159fdeae00a3818b98f0ef225a05581e036989f90428e1a1077336e69715987115a3f5afdf71bc245ab7ac4ba890040602193f550317e30962fd21961b59490839f43e92422f778ef2f4043b8ae515ee98dff1f527031fc3415b306698c6812b803da27a2c2b0147d17ffac2f382f5d6fb2f4122fbbf03c658185057068d8ac6e3bdbdaaa7f581cecd105e6ed2152dc5cf9c2c224c48be0354d9adbcaf0323b079d9d3361d4ca84cd47f46d7c6ed7bbde2f1fee8cdfd8aee03e513303b233eb506f330bc3f8bd53b48de2d87c585aaf19d9842caed20ec0464030e8e96eef2dd178481f2aca0e8e29ab6268d479e683eb6be7f928d23da7b84960219ffff03e4aa54d0f7cc7f6e8e98c2392c6a9d74dfb79f85bece009b841d5a8d9b39972b039f393fc603489ed045829de8066a3a8485c95603d1793021ca7193ddbf1a6e0203dfb9fbee542318e9d21aa1ae0f3b798f000666fbe7672e5969d98419575ab25703bde63437d26e8c3aa33a0e0e33642f9042d622cbb10adb5898ba007f5a82ae1403d70047458bbc9f3361e9019fd95ef4ee97531535aebfc942dda2d51297ae0e660219ffff03cbdf25f77a2d6096a3debe9691edc2ede1dcfdb4429d44eb2d1958f804c31dcb03bec0262acc34d841913a9f98f3e0b0d64afc0638778be734765df0ade8f87e920349d0a04e3f695c366874577a3658ef74c777f953b63007e0fe02264ff0542e7803bbe1da2d2e5388cb58e0b0351ce2677aed4f3d675c527f61d618d327be85635e03bbdb8c3cd3e28b6f59298a2d028ad9f0943f057474000308a2d6eba4497ce32f032a405f6f4a3bfd17a7185c6f6c4ec1bc28bed60487d681da0a9e4335c8c09251035a8a7c597295962ed8d8d133a0a731e03eba3197470d52502ee82bbb117b9676037d261071a167aaab74371dab514b68de66b3da033f9c060bb7b391b72b158b9503fe6323d94e9ec45312ecd4409b12c10fb198a240a143fef64f9bb2f4b76dd0fa03484b4eace2e5341a2e87af724db5c8017fce6473fd93017a31f04819f12f978d03c4ad0d6f18325aca4f5af79d3642be268fda2113ac4ab3e98e2eb349bd17acae03b0aa49f0c90df012e1b393dc34dad5de125fc0a33d336572425dd225d0a412aa0304cf24cfb1c3484648cc74e475aa9320ec5b504aea8d6c4cb4ecfc0191a1002703207adb04e48182ca813bee7d0d60d751ac7e84106f046521b7bd098aa9eb8a880219ffff03aa52fa27c23dc8b54b0e2c8902d6a906031e12ebea3a392b3152c6196dc29d85032637bd867fe9040fc884288fdc9aaa2cf6a4611a2c33a9e80fa79436e0fe7b4503ce23ffbee652c87e5b31238a86136e6cb385e32a591101bcec5d4548d3b4b66003bbe25aabf2106e2b40a73344a5d986c65d6cbce752b47c55aff2b6d49101617d03a8e3a54a306ee2d1c0bcc8165d0ff5f24065c175fe56100da5a4b418b0166a65033fba622c31f636d6072719692c4874210fbd9843e0e551516b2c7359d2e95d3a0317a9c48764322bd0d74e6fed9282a23658ed0ed11653a8dd0ec91d2081e30b32036888cbcd41e312c14993e65c92855b18eeb20ca0e109824ba103844085238b7e038eb3f16af1314b00428019810f94d4cd029dde03488e32fd4b6c62739a9077fa03062013d582290a63f2a3036e27a767c9b156d249d3ea6bbb6f61fe2efa95d4da03d662ed3d31d805825f16635baa250e49d6e6abf39fa34ae20e9612d1bea2ed1f03c8aa9120db9e4bf872f294c5118f47c3e4c23c2b63a927cfa1b5d4d692295a1e035ac5abb3aaa8a9beda4070c90a625b70d2569fd2551d65dbd89f587829e7078503b47d06549ecba4b7b6092805684a4799a609f87d2af75c5ea90190f366818f4d037a89bceca60732f9ba942dae678fc63f4286cd9d7a76dff9f14a6ca06002255803c1d093a0e89dfb6aaf98bdb8b0ac964233edab95a569bc970e2fcb9ae9d3d6490380bc9fe72eaa8da1760741dc79457c346256e5af5ced12dd3b3b2dd2be5a46880324e0c6c780b7ba75f5d2813ac1a414feacfe6711d5c9b9ed2dc22b2a4578adf90384ed9b62aa5140f27967b4ed00c352cff3596c50401e6eb18c929f44e5f6491c032949b084492587ca52830f7837c1d42beb39b98ecc0e515f361ec2b3a993d72503a3756a02ee3420e4ce6dc3fd1cf739734bd93caf805fa9c2bb4cd45e701af842031d0437debdeca31d26fb8957ed2704035ae6ead3442fdd717fc210d80022dde903cc47169aed1cbf3078a9871687c3099bf6e90cc451ee48ce385d1b22c01ca3f003622cdb01152af18079c94e98de24472d59d4729e6683375dc69db19d6442332903767ca9c4ebd311ef8820cb2c6810db3e687ed7484d8310f43f778bc408f8400703fab134429f419f0c42715caef57010aeead81afc24163ee88f50a2cd7233618b03d2ff3060a3100af08f63ce5f19cc94fdacd632ed0fcead09c9b10af77514248b05581e03bbbc5cc2d5f99b9ceada8e6309b5427ced186073566517d0220e8613700c0147bc0f4aab72620005581e0329676b80ca6bb1bd1100526154c6efb9d23299de11d0c2f392a36491f00c0b452d66e7de0003722bf8cf651658a1a4d684c697c738a5d6d21ee541a0094fd97770aad415b05f05581e03a9a91abea3888a4d28939a5fb248534d8bfb89e560a20112d191973e30040803f41d285731a876cbacc32e5b9741bfb5d0505916d1196acd00a0d219a7a9caa5045904d7608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100b257806397ad09eb146100d2578063f28453e6146100e5578063f2fde38b1461012157600080fd5b806339cd70d214610082578063715018a6146100975780637c22986e1461009f575b600080fd5b610095610090366004610458565b610134565b005b61009561018b565b6100956100ad366004610458565b61019f565b6000546040516001600160a01b0390911681526020015b60405180910390f35b6100956100e0366004610488565b61027f565b6101116100f3366004610458565b6001600160a01b031660009081526001602052604090205460ff1690565b60405190151581526020016100c9565b61009561012f366004610458565b610335565b61013c6103ae565b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f9d1718ad4362863c494187b5bc7779357412ed66223197e206cbd518b50924969190a250565b6101936103ae565b61019d6000610408565b565b6000546001600160a01b03163314806101da57503360009081526001602052604090205460ff1680156101da5750336001600160a01b038216145b6102365760405162461bcd60e51b815260206004820152602260248201527f43616c6c6572206973206e6f7420616c6c6f776564206f7220746865206f776e60448201526132b960f11b60648201526084015b60405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517f92a2ba05b24e29c93740ad08a206699c531780ff746cfb8882d1d46dad70714b9190a250565b3360009081526001602052604090205460ff16806102a757506000546001600160a01b031633145b6102fd5760405162461bcd60e51b815260206004820152602160248201527f416c6c6f77204c6973743a2063616c6c6572206973206e6f7420616c6c6f77656044820152601960fa1b606482015260840161022d565b60405181815233907f37f9254ff1973d24d609016d6bb0aef8e6de91808811a546fad8eaa0e481d9d99060200160405180910390a250565b61033d6103ae565b6001600160a01b0381166103a25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161022d565b6103ab81610408565b50565b6000546001600160a01b0316331461019d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161022d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561046a57600080fd5b81356001600160a01b038116811461048157600080fd5b9392505050565b60006020828403121561049a57600080fd5b503591905056fea264697066735822122016f9b4ff0f679e130d2d808907c631457fdeb6805122f262d0c0e52a1abb3ad064736f6c634300080d00330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630545ccb403182598e2bc3767ebc3987e7f4c511a5a800582103e27046236a807f35f9a13a22c18272971918692725318d70831327278258d16041010219400405581d02cc92040d8c8fa2904d193140895654e5458bf93ac25950f1a70a070907011904d705581d02337822b9abcf61be756ef5786793ad0644d591ad646969286c58e2110c034707125edb278280020303a7e48f0d73eaf7c47528d6ab59ffae7b4aec13c5eb888b7359f014521767c84803f4894f5d93a9fad81ddc3c915bba04e8b24b153184b4a38622d4e353288b537905581e0347aaac4b28b99aab7cf5ab2523358f5fd0bd5098df4cd66500f7d3579007011bffffffffffffffff034120dcfff075b2bed6a690fde2f580240e2a3f9f1a695216f007acfe995095fa039182ff82647bc6aeb9badce4b8f23d359068736f0535d1c805c5bab07fbd472c02193ef003220ceb0eee82be427c55ffb998104701bf3933410dd671abbdd30d87e52130db035c3224b1ce27f8ddb458e5c4cfb6af260582a5c6d533ef8914645bcaa11fd657032e189e963c1bb1c1feea521e6d1e77c56b1d1e3264b56b03356d2f011d0a26e00305bd34d818c2a55e69ab1a3aa9fd128a0b69aed4249b10e8bf5ea1abebb90dd1030d1e6a5cb3a63567602f1ed7e0e61dcce8e5e0f0c18a368d5b8251985d9af0d6031960b025829df674b8939ac27d0d871da45ff183048028a714b0cb126a5f52c503c75c03765a9fe045d27afb0002048c829d6b65a7fe4dc529e79a883123f0ee7603284087cdcb2a32097c2ba4a555828c06e7118d7cd6e03ddad168614aac724b2b03628d183c8c1a6388c15182a6823acca58c6e1e72011fcbcae53d040291e2da1b03dc42cfd3367761fdda0251645ef5778ee15180988915bdd509962e9b1e23520c0219ffff03ba41eb058dcba16d29c88d4e6eff45eeb5ca8aedaf8d2eb94725666c650bca2e0357e8713c58ea2af4ccfa4f0ddca1095f0dbe70eac711ab789c25a74ae039c8260301f8d3292060db75b9732d3abe259688720a67ea0167ac68842c878d94c3227c03e54e42871ca8d6742dd058b10e65a784b6a597d73460f794c37102ec7fb0397d03aac62b1198e898e6ce01cf6cc487784d11caeb84a5757af1b442e07083401712037e9bfb63fc3f978dc7e976720b696b1f1cb5a5754111bb7cfdce8ee6ca6649ea0380192ebe12dd00d8d93c7dc903e71827f3525b5d3717372754ef426a47cdb2d303a24720496a846700ee96a0cfed354cef06215c102b5917add7e05bea40e87b4603c3c208eecb4e64c94c4b53fa6ae00c8d4b9c332a7cbcc89b9b9211d142e9f3aa0378b2010d26d6629479def888bca74df767e80c3955c01d80bf8a4325b42e842803f7f9f9c705a89127781206fae63b4053972ed909a3b2dbfae085733724c4303e035dfa411cbbada9fc944825c6891ee4b4feacc360924b3ab306941881c540a52f0219ffff0395aa47c395b3a8fce4ee9c5c4b37e0fc25849af1095dd9f5cc673a51d31f4ec503c252015af19b9f3a856732694545d5b8cf833104bc982c4eda3196d91ecb411c0330922ffaf159c92526e0c11e2a4b0fbc66d1e70273d24b5ff2522e3a06c0102c038f166f28e009972eb5ffb5879a5f4e1eb8209c2893ea6ef3f9c7413dfdf59c830219ffff0219ffff03806f24138d8f223d5deb51d9be7df9af7243234d2c24d36ad38e1965a723911303dddc568850c99fae53e0d633aa55890ca0bdeb479b16bc123b1c831d97512e0f030a026dbbd46225916afd382f772baeb1f7ab73819e0daa18bd974ce8a62673640309dde2ba85e33bcff9a3c59cd1820abdb29ed72df650335bd7a23029fa735cc70301261b77583a0d34bcc54e4a7343db7307eb9f4df81ee641fbef6efdb8d25661039e831e4260cc6239a8ba3b318d6fb5a979062f9c713e572dcd961b7cfdcfe5ac0388154029c638beb35171f0505369312ab35e31798d0840bcb0400fe2f4ac25a803bee0acbe077532c70f506395b4eabd29c91562bf20141d7c867a0f2d84f20ba30331e28d181dfe6f504cd26ee45c8f1e2a7e32674de8c9726d6cf1f4c136101d2f03739e81ed741c56fad7b6584e0d30c98ff6bded3b3601c27e510df0df6f37cf3f03fb79ec911c5bff86f79755c88c4801d3583df08a9f77733fbe1636f5565be85f032058ab9340d3bd9efaaa566f8fe93f19f4b7df50ccddac8b1ccbba5e46ceee1403b3ac6c1c12c4226db24b2da02fdaa82c5a4ea85569b39b6102746114bb9392bc034f5df02dd8a182355803d4eae4ef077f36bad48ff189211ee302ef799d356e1103679d54a170387dc40e9bda26f344c859695ee5755f96f01e3d32fd175393ca6d0303be9330122b9ca9d16ba237fcda48f09a1942c0879bb40dfbf19ea4fabe7c32035502b43c109364d6159b2e28fed6b0a948c8300f45a6f9c77e18cd688622d627037ad4327455220e4a43e34070b6fe4e1c71417d5a9ce24176cf765303cdc3df9103c22507ed05192b39d21a5deeba0f97a755205cc970fbb4c10b4cbc38eefe18b903b23c3f2e1efa030dabccab981121694e2c8c5dcf9101b1acd4f6d1287e9894870395ed7a291f7dbc044704a9ee6406d7646b482d3a54e325922224c71fa21e4b210314eb429e263ab386fb08e4aa2c232ca642032523852e7fbf3d668d717f9b774803b73d043d284288eec6f21ac249d180acd2168f02e9d9a4032cf92d15244ea69a0308b481b553c1dd4b42604069794087423c6935558feae5afb377040121841024036abbb216b506ae2208f1eaeef05865b0870519d6d877590fbef61deb1d7fe2e803b4b013d0120c8afddd529c01ad5211e5f5dedcc989af6bca33ccb205399a83f703722c330c325760f1009719a12fc863295b24785cd525201c5e0b99db6e4822e20311ee10140cae18efce33e055fcc5f68ebde8c708c5945ad058931ba42ce67080030eec47bc60b263df3a1bbd7796702f9a32c38d03113dfabce0b2afc0724ac62d03c22c33936ec4a9a4209046a63983344bbfa8e2d7e2cbc95f9f896518684a902b0376d397a743fecff68f58dcf366161725381ef5c3ce6e85a5f7036da33ea8c03e03acae0b08f979b7933407bb9da57974408903d7da8972a12b69f662563b34645405581e0398ab768ee93aa085e25769a60d5da1e388fb9ae6c7b1c98cad94bffa80040303982f618beb01f6c90b3d205fde49ddeacd9d1ce6a709a934708dec1d60b7092905581e030eaf68b27a57ad10439d9863c06eca29daabbf20a1280c4dc917601840040203d28257ea9453289d42b17c076ee10706d9391c5a9c7faae2f84207b8ca91665705581e039cf3d8bc477453862e767e31337bd51a1f43a8d67aa5d0203809d53b400406030978ae96a9ba1a0ffe472bdb655bfc97607df219b2ec28952c9d2335a1d8799b05581e0322ef28c90a98135aa418b8c939099ff57013a48bd7b592c61e3a9aa6f0040105581e038bf783eb9f1ad5571bd4ca1562d7717681f1080a2faa60b1bb211c3f500c0547538d26ddedec7803ae1af30a21312b72edcb045f5268155e027b81270fe04dc2921f94bb804705b70321754bf7895b8714445d33ee8983b68a6ba8fdd6d4e100c0d35d03c09ec29a0d05581e032c9b474513ae9280a5859fe41e4741db07559cf6b60ca22bc8ee747b4007011bffffffffffffffff05581e031670e3b539d74936df79a8f6943a5b328b1f98edcf4a68949061a630600c15471f4e939251700005581d023bc2390da945295dcaf79117c7fdd5e8c14e12ffb0e361fe7f35e7e7040204590c1660806040526004361061005a5760003560e01c80638fd3ab80116100435780638fd3ab80146100ac578063d925a56d146100ce578063d9627aa4146100e35761005a565b8063031b905c1461005f5780636ae4b4f71461008a575b600080fd5b34801561006b57600080fd5b506100746100f6565b6040516100819190610a5d565b60405180910390f35b34801561009657600080fd5b5061009f61011a565b6040516100819190610adb565b3480156100b857600080fd5b506100c1610153565b6040516100819190610a66565b3480156100da57600080fd5b506100746101a3565b6100746100f13660046109c5565b6101c7565b7f000000000000000000000000000000000000000000000001000000010000000181565b6040518060400160405280600e81526020017f556e69737761704665617475726500000000000000000000000000000000000081525081565b600061017e7fd9627aa400000000000000000000000000000000000000000000000000000000610932565b507f2c64c5ef0000000000000000000000000000000000000000000000000000000090565b7f0000100800000480002c0040100000082000000000000002000000101080000181565b60006001851161020c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161020390610b4c565b60405180910390fd5b506004803560248101610a0052610a208390527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2610a40527f000000000000000000000000f740b67da229f2f10bcbd38a7979992fcc71b8eb610a60527f0000100800000480002c00401000000820000000000000020000001010800001610a805284917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91013501600080805b8381101561055e576102cb816105e1565b6102d7600183016105e1565b93506102e284610606565b6102eb82610606565b108380610303576102fc868461062e565b9050600094505b836103d95773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee831480156103c1578b341461033157600080fd5b610a405193507fd0e30db000000000000000000000000000000000000000000000000000000000610b00526000806004610b008f885af161037457610374610743565b7fa9059cbb00000000000000000000000000000000000000000000000000000000610b005281610b04528b610b24526000806044610b006000885af16103bc576103bc610743565b6103d7565b34156103cc57600080fd5b6103d78c838661074d565b505b7f0902f1ac00000000000000000000000000000000000000000000000000000000610b00526040610c006004610b00845afa61041757610417610743565b60403d101561042557600080fd5b8792506000808315801561044457610c20519250610c00519150610451565b610c00519250610c205191505b506e01000000000000000000000000000085111561046e57600080fd5b6103e585026103e883028101828202049a5050505060009250866001850114600081146104c45773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee871480156104ba573094506104be565b3394505b506104df565b6104d96104d3600287016105e1565b8861062e565b95508593505b507f022c0d9f00000000000000000000000000000000000000000000000000000000610b005281801561051c576000610b045288610b2452610528565b88610b04526000610b24525b5082610b44526080610b64526000610b845260008060a4610b006000855af161055357610553610743565b5050506001016102ba565b505073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8114156105da577f2e1a7d4d00000000000000000000000000000000000000000000000000000000610b005282610b04526000806024610b006000610a40515af16105c2576105c2610743565b6000806000610b0086335af16105da576105da610743565b50506108ef565b610a005173ffffffffffffffffffffffffffffffffffffffff60209290920201351690565b8073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8114156106295750610a40515b919050565b600061063982610606565b915061064483610606565b9250828210801561065e5783610b145282610b0052610669565b82610b145283610b00525b506028610b0c20610a205180156106ce577fffc0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac0000000000000000000000610b005281610b15527fe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303610b355261071e565b7fff5c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000610b005281610b15527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f610b35525b50506055610b002073ffffffffffffffffffffffffffffffffffffffff169392505050565b3d6000803e3d6000fd5b610756816108c4565b156107ce577fdd62ed3e00000000000000000000000000000000000000000000000000000000610b005233610b045230610b24526020610c006044610b00845afa806107a4576107a4610743565b5060203d10156107b357600080fd5b82610c005110156107ce576107c983838361083e565b610839565b7f23b872dd00000000000000000000000000000000000000000000000000000000610b005233610b045281610b245282610b44526020610c006064610b006000855af13d6001610c0051146020821015168115178216915050806108375761083784848461083e565b505b505050565b7fbca8c7b500000000000000000000000000000000000000000000000000000000610b005280610b04526040610b24526064610b44527f23b872dd00000000000000000000000000000000000000000000000000000000610b645233610b685281610b885282610ba85260008060c8610b006000610a60515af161083957610839610743565b600081600052600161010083061b60016101006020600020061b1780610a8051821614915050919050565b82811015610929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161020390610ba9565b95945050505050565b6040517f6eb224cb0000000000000000000000000000000000000000000000000000000081523090636eb224cb906109909084907f000000000000000000000000f9b30557afcf76ea82c04015d80057fa2147dfa990600401610a93565b600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b5050505050565b6000806000806000608086880312156109dc578081fd5b853567ffffffffffffffff808211156109f3578283fd5b818801915088601f830112610a06578283fd5b813581811115610a14578384fd5b8960208083028501011115610a27578384fd5b6020928301975095505086013592506040860135915060608601358015158114610a4f578182fd5b809150509295509295909350565b90815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000092909216825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b6000602080835283518082850152825b81811015610b0757858101830151858201604001528201610aeb565b81811115610b185783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526022908201527f556e6973776170466561747572652f496e76616c6964546f6b656e734c656e6760408201527f7468000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601a908201527f556e6973776170466561747572652f556e646572426f7567687400000000000060408201526060019056fea2646970667358221220db2978db29758b0bdede9f7148568a66b29027c69f656f56ad4e3b624415657864736f6c634300060c00330605581d02a678b839f4ec7c8a70b3f2d10ae9db7bf4792eb7f711e47c9f85f9d00701190c1602198800021997fc033e9e859a5fd3ce8c4e6fb0304c4d77978b6aa4594a77b75a653bd3ef01059b0203b0d9b5272f0f347b59a97c633110cc7e5226bf4930dad7624ea16358fbfcb98b03399053d183a944f61fe0958d70ed27cde4b25ab6018963847541319db92f63a9033848241be97235e288134c5d8a8c721c3b17a6142139a9e2190f2b40234ceb2c03409b93e17e0a64e056ba58c64485512b6e737af476a279719fdeed3f0475c2ef03fb2899f6f1a23a4735f71e3398d1dee5d61dc482ccde6aa2fdc7fe6009b8ed7803aa50108c27d3919f6c92a44e11d2781923b48e91ae79c36ffaba891a0699293b0219ffff031dd6d9fe6872bfdf5e78cecce78f2f6f6953a646d42503f5033c00591cb56451032c692dbc1479773b000fd0cefd9ad576348440a54348f448bcce393a5601d1a203dcecfc03ab9a82bf67a5cdcb891d7c64abe4247f82fdb302fbb608ffdf80d9b003c70328229d7eb6355c17e3731db69d7d4d12745ead1bb896a27bc568c072be1003c3f6822807fcf20d7e54b138698fb24ce8b14df48d1df99385a5bf64b1dc430d0310dd4ed679950e628012c7c6dd0093fd7319eb434f9a4b99ebd3b862ca23e57403314955bd5001d7b07833e5d0094ef4edb30bb19139c10bc28ea34685b6b066ea0366d017483ab28bf112605728ba26a58b3eedae6a72c2caec8472f930caeacc7f0219ffff0219ffff03f6bc5e170c5d38978d0d9917b6ddd884cc53eca132e323543dda81149d94c4c803053ef5e5ef515be3433e3e7d82eba331fed481e6c903563b19a39a21a513c53003bdd000de56bd86de2dc95ed7d33dc405b451b497fd544bf8835d96b1f94822a003ac9e159ba208251205a7ca38fe32c9aa1dd8451c422441e45b2977da6262b7840301c7f71a8c915762c8909093e6cb2e5d5cd1d239ccd29119ad2487df5c9804bd03d44b08c96bf5fdafbec913435dca89cc7b9f81c8c3259a89ac95f116db3ecf3c0335fbc0a0d5a5bd14a95568b56e0976ac5e93cdf191ccbc6bbbe7cd33176e9aa60337dcc4f1abc973e6dda5c04e908a13e3baff39de392c3d5cba3aaa070040db5703bfdf7621e6d460c5a0a232b0ee7c222393d9a803a75e5ab221d453f0e8f45e93032242f9f5697a25a4ee4c9d3fea5bf7ef66a7326d5f25f4d5e53255fa9ffcc45103228fd024cbff7bd947d6bcd45a9da26f96cae2e1be90ca6047c77483e712c778039ef4c992a3d7f6558807c90a52e749d3076ae8dc3183006093f08f25d7144cdd032c2f240d5ecc7965b41ddcf5ce1b266edf958eab7ce08ce9d7cde74f8fd4f37603b4bed97c2007c66bc320541e53287e682527e2c387c7fb54080252ffe6149f83039cdb78c3d0e2d61494099a6e8a4e19baad3908b94941340d37f9d3de0f44d6ee031d7fb23def4c9d95d338cf5574e922934ac68a0a8661ce6eaa57d833d3525ab203a65d381f26d292addeff8b1fe1405524943cea777e4aacfb1b65125c1ab22d0b05581e03f9d2f0eda26eb3c59d86cf3cf277b2f12fd181ba1f0f55453a8951f25004040387efdab910ea23b17c99296469992e18b6c4d862c274e4bfe88721affedfd05903df2b7b8fe32a280b77a21d1388a19097dd4da394a5e99925ce2de76ff249c40203be95ea5f15abfe650a49341517f1e9bcb8a1b8db98663d3c154011f5ca257c9203003028c73a17f62d5fc79268ff967fd0066d257a55dd1d3e442f4ae7e82e97b803d17999889cf9c96ad99cb229ba719da8f03e581da1ff6dc8fcac29da8a53237404592f56608060405260043610610117575f3560e01c8063751039fc1161009f578063a9059cbb11610063578063a9059cbb14610368578063bf474bed146103a4578063c876d0b9146103ce578063c9567bf9146103f8578063dd62ed3e1461040e5761011e565b8063751039fc146102aa5780637d1db4a5146102c05780638da5cb5b146102ea5780638f9a55c01461031457806395d89b411461033e5761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce5671461021857806351bc3c851461024257806370a0823114610258578063715018a6146102945761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661044a565b6040516101439190612048565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d91906120f9565b610487565b60405161017f9190612151565b60405180910390f35b348015610193575f80fd5b5061019c6104a4565b6040516101a99190612179565b60405180910390f35b3480156101bd575f80fd5b506101c66104aa565b6040516101d39190612179565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd9190612192565b6104cd565b60405161020f9190612151565b60405180910390f35b348015610223575f80fd5b5061022c6105a1565b60405161023991906121fd565b60405180910390f35b34801561024d575f80fd5b506102566105a9565b005b348015610263575f80fd5b5061027e60048036038101906102799190612216565b610641565b60405161028b9190612179565b60405180910390f35b34801561029f575f80fd5b506102a8610687565b005b3480156102b5575f80fd5b506102be6107d5565b005b3480156102cb575f80fd5b506102d461091d565b6040516102e19190612179565b60405180910390f35b3480156102f5575f80fd5b506102fe610923565b60405161030b9190612250565b60405180910390f35b34801561031f575f80fd5b5061032861094a565b6040516103359190612179565b60405180910390f35b348015610349575f80fd5b50610352610950565b60405161035f9190612048565b60405180910390f35b348015610373575f80fd5b5061038e600480360381019061038991906120f9565b61098d565b60405161039b9190612151565b60405180910390f35b3480156103af575f80fd5b506103b86109aa565b6040516103c59190612179565b60405180910390f35b3480156103d9575f80fd5b506103e26109b0565b6040516103ef9190612151565b60405180910390f35b348015610403575f80fd5b5061040c6109c2565b005b348015610419575f80fd5b50610434600480360381019061042f9190612269565b610ee1565b6040516104419190612179565b60405180910390f35b60606040518060400160405280600e81526020017f5374616e6b6d656d65732e636f6d000000000000000000000000000000000000815250905090565b5f61049a610493610f63565b8484610f6a565b6001905092915050565b60125481565b5f6009600a6104b99190612403565b633b9aca006104c8919061244d565b905090565b5f6104d984848461112d565b610596846104e5610f63565b61059185604051806060016040528060288152602001612ef96028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610548610f63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611aa99092919063ffffffff16565b610f6a565b600190509392505050565b5f6009905090565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105ea610f63565b73ffffffffffffffffffffffffffffffffffffffff1614610609575f80fd5b5f61061330610641565b90505f8111156106275761062681611b0b565b5b5f4790505f81111561063d5761063c81611d76565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61068f610f63565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610712906124d8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107dd610f63565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610869576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610860906124d8565b60405180910390fd5b6009600a6108779190612403565b633b9aca00610886919061244d565b600f819055506009600a61089a9190612403565b633b9aca006108a9919061244d565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6108f79190612403565b633b9aca00610906919061244d565b6040516109139190612179565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f5354414e4b000000000000000000000000000000000000000000000000000000815250905090565b5f6109a0610999610f63565b848461112d565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b6109ca610f63565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4d906124d8565b60405180910390fd5b60148054906101000a900460ff1615610aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9b90612540565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b403060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b2c9190612403565b633b9aca00610b3b919061244d565b610f6a565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610baa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bce9190612572565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c789190612572565b6040518363ffffffff1660e01b8152600401610c9592919061259d565b6020604051808303815f875af1158015610cb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd59190612572565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d5c30610641565b5f80610d66610923565b426040518863ffffffff1660e01b8152600401610d8896959493929190612606565b60606040518083038185885af1158015610da4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610dc99190612679565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e699291906126c9565b6020604051808303815f875af1158015610e85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea9919061271a565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf906127b5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d90612843565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111209190612179565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361119b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611192906128d1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611209576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112009061295f565b60405180910390fd5b5f811161124b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611242906129ed565b60405180910390fd5b5f611254610923565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156112c25750611292610923565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117f95761130360646112f5600b54600e54116112e2576007546112e6565b6009545b85611ddf90919063ffffffff16565b611e5690919063ffffffff16565b905060065f9054906101000a900460ff161561148b5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113c3575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561148a574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e90612aa1565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611534575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611587575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561164157600f548211156115d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c890612b09565b60405180910390fd5b601054826115de85610641565b6115e89190612b27565b1115611629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162090612ba4565b60405180910390fd5b600e5f81548092919061163b90612bc2565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116c957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561170d5761170a60646116fc600c54600e54116116e9576008546116ed565b600a545b85611ddf90919063ffffffff16565b611e5690919063ffffffff16565b90505b5f61171730610641565b9050601460159054906101000a900460ff16158015611782575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561179a5750601460169054906101000a900460ff165b80156117a7575060115481115b80156117b65750600d54600e54115b156117f7576117d86117d3846117ce84601254611e9f565b611e9f565b611b0b565b5f47905066b1a2bc2ec500008111156117f5576117f447611d76565b5b505b505b5f8111156118f8576118518160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eb790919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118ef9190612179565b60405180910390a35b6119488260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f1490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119eb61199f8284611f1490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eb790919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a8e8486611f1490919063ffffffff16565b604051611a9b9190612179565b60405180910390a350505050565b5f838311158290611af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae79190612048565b60405180910390fd5b505f8385611afe9190612c09565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b4257611b41612c3c565b5b604051908082528060200260200182016040528015611b705781602001602082028036833780820191505090505b50905030815f81518110611b8757611b86612c69565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c4f9190612572565b81600181518110611c6357611c62612c69565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cc93060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f6a565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d2b959493929190612d4d565b5f604051808303815f87803b158015611d42575f80fd5b505af1158015611d54573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611ddb573d5f803e3d5ffd5b5050565b5f808303611def575f9050611e50565b5f8284611dfc919061244d565b9050828482611e0b9190612dd2565b14611e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4290612e72565b60405180910390fd5b809150505b92915050565b5f611e9783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f5d565b905092915050565b5f818311611ead5782611eaf565b815b905092915050565b5f808284611ec59190612b27565b905083811015611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0190612eda565b60405180910390fd5b8091505092915050565b5f611f5583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611aa9565b905092915050565b5f8083118290611fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9a9190612048565b60405180910390fd5b505f8385611fb19190612dd2565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611ff5578082015181840152602081019050611fda565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61201a82611fbe565b6120248185611fc8565b9350612034818560208601611fd8565b61203d81612000565b840191505092915050565b5f6020820190508181035f8301526120608184612010565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120958261206c565b9050919050565b6120a58161208b565b81146120af575f80fd5b50565b5f813590506120c08161209c565b92915050565b5f819050919050565b6120d8816120c6565b81146120e2575f80fd5b50565b5f813590506120f3816120cf565b92915050565b5f806040838503121561210f5761210e612068565b5b5f61211c858286016120b2565b925050602061212d858286016120e5565b9150509250929050565b5f8115159050919050565b61214b81612137565b82525050565b5f6020820190506121645f830184612142565b92915050565b612173816120c6565b82525050565b5f60208201905061218c5f83018461216a565b92915050565b5f805f606084860312156121a9576121a8612068565b5b5f6121b6868287016120b2565b93505060206121c7868287016120b2565b92505060406121d8868287016120e5565b9150509250925092565b5f60ff82169050919050565b6121f7816121e2565b82525050565b5f6020820190506122105f8301846121ee565b92915050565b5f6020828403121561222b5761222a612068565b5b5f612238848285016120b2565b91505092915050565b61224a8161208b565b82525050565b5f6020820190506122635f830184612241565b92915050565b5f806040838503121561227f5761227e612068565b5b5f61228c858286016120b2565b925050602061229d858286016120b2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561232957808604811115612305576123046122a7565b5b60018516156123145780820291505b8081029050612322856122d4565b94506122e9565b94509492505050565b5f8261234157600190506123fc565b8161234e575f90506123fc565b8160018114612364576002811461236e5761239d565b60019150506123fc565b60ff8411156123805761237f6122a7565b5b8360020a915084821115612397576123966122a7565b5b506123fc565b5060208310610133831016604e8410600b84101617156123d25782820a9050838111156123cd576123cc6122a7565b5b6123fc565b6123df84848460016122e0565b925090508184048111156123f6576123f56122a7565b5b81810290505b9392505050565b5f61240d826120c6565b9150612418836121e2565b92506124457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612332565b905092915050565b5f612457826120c6565b9150612462836120c6565b9250828202612470816120c6565b91508282048414831517612487576124866122a7565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6124c2602083611fc8565b91506124cd8261248e565b602082019050919050565b5f6020820190508181035f8301526124ef816124b6565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61252a601783611fc8565b9150612535826124f6565b602082019050919050565b5f6020820190508181035f8301526125578161251e565b9050919050565b5f8151905061256c8161209c565b92915050565b5f6020828403121561258757612586612068565b5b5f6125948482850161255e565b91505092915050565b5f6040820190506125b05f830185612241565b6125bd6020830184612241565b9392505050565b5f819050919050565b5f819050919050565b5f6125f06125eb6125e6846125c4565b6125cd565b6120c6565b9050919050565b612600816125d6565b82525050565b5f60c0820190506126195f830189612241565b612626602083018861216a565b61263360408301876125f7565b61264060608301866125f7565b61264d6080830185612241565b61265a60a083018461216a565b979650505050505050565b5f81519050612673816120cf565b92915050565b5f805f606084860312156126905761268f612068565b5b5f61269d86828701612665565b93505060206126ae86828701612665565b92505060406126bf86828701612665565b9150509250925092565b5f6040820190506126dc5f830185612241565b6126e9602083018461216a565b9392505050565b6126f981612137565b8114612703575f80fd5b50565b5f81519050612714816126f0565b92915050565b5f6020828403121561272f5761272e612068565b5b5f61273c84828501612706565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61279f602483611fc8565b91506127aa82612745565b604082019050919050565b5f6020820190508181035f8301526127cc81612793565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61282d602283611fc8565b9150612838826127d3565b604082019050919050565b5f6020820190508181035f83015261285a81612821565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6128bb602583611fc8565b91506128c682612861565b604082019050919050565b5f6020820190508181035f8301526128e8816128af565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612949602383611fc8565b9150612954826128ef565b604082019050919050565b5f6020820190508181035f8301526129768161293d565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6129d7602983611fc8565b91506129e28261297d565b604082019050919050565b5f6020820190508181035f830152612a04816129cb565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612a8b604983611fc8565b9150612a9682612a0b565b606082019050919050565b5f6020820190508181035f830152612ab881612a7f565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612af3601983611fc8565b9150612afe82612abf565b602082019050919050565b5f6020820190508181035f830152612b2081612ae7565b9050919050565b5f612b31826120c6565b9150612b3c836120c6565b9250828201905080821115612b5457612b536122a7565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612b8e601a83611fc8565b9150612b9982612b5a565b602082019050919050565b5f6020820190508181035f830152612bbb81612b82565b9050919050565b5f612bcc826120c6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612bfe57612bfd6122a7565b5b600182019050919050565b5f612c13826120c6565b9150612c1e836120c6565b9250828203905081811115612c3657612c356122a7565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612cc88161208b565b82525050565b5f612cd98383612cbf565b60208301905092915050565b5f602082019050919050565b5f612cfb82612c96565b612d058185612ca0565b9350612d1083612cb0565b805f5b83811015612d40578151612d278882612cce565b9750612d3283612ce5565b925050600181019050612d13565b5085935050505092915050565b5f60a082019050612d605f83018861216a565b612d6d60208301876125f7565b8181036040830152612d7f8186612cf1565b9050612d8e6060830185612241565b612d9b608083018461216a565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ddc826120c6565b9150612de7836120c6565b925082612df757612df6612da5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e5c602183611fc8565b9150612e6782612e02565b604082019050919050565b5f6020820190508181035f830152612e8981612e50565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612ec4601b83611fc8565b9150612ecf82612e90565b602082019050919050565b5f6020820190508181035f830152612ef181612eb8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d5521b374afd490d039849dda3c0776d71d59fa4f6fd15539e6f1aa24820eb5c64736f6c6343000814003303a5c75166e6999f9cf0810b38d1474c37127cb8a5ca1fcd54c36f399b2b13411a00582003fb2a5e6320c3d6f78f92c3caa76abfbbf768a254316307299689b8f1ee167046b22277f4271d00582003068cf2dac3652a993972f40cd090104a6aec2359f876fa5f2bf20668d65680444db9660400582003258417fa4bfe73c7a11d5ee51a10a2792b2a5d8760fb72928895c13fc5e0f05820ffffffffffffffffffffffffffffffffffffffffffffffffffbd2bb7879fa616005820035b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9041050058200361741f403abc0de563bd62986416f333ef4f903a6b2301f4f56979db5bc9c04407921a2803066154b3920aa197ad99718c1c069ebf21567e92b9be21d09d431d73094df658014107005820034aab011f161e5e462743fb5afef81394016eb6c63719bfa61c8511642e01e0480ddd02f0f0225c2400582003f8c3c3b0317c6bbd84bcc1ef42f29dc6f2a32dcda3c6bb710c9d9e74de7d305820fffffffffffffffffffffffffffffffffffffffffffffffffffb0286dc0874f300582003c29aa785f7dfaaa34937068197f2c475ad5f16c6f9632c311a2cbf45d811f0440a578f3602197c9c03e156db8f8d69f885cb6344799e2ac3d842ad36f9a85cdf6d5d8b96731be220c303c31408730de2519191d187e5fee1042f23e720ba755a301da3a26e3ec1c6f3e0032334f80e75b2ec82f61b42f6ecf0809a6be398a3bf02f5994314ce589a863e2303d3efc12991bd7ec9545360ff4b8a50bfdc56db1f3bb3437c048523a8ac65a45f03e26c8efd9ae4a4c864357708e318930af3506e4cc65d099fb5fd4854943f12e203728210b2f0140d7d258bfb9d7305d21a3975300b84287203ec41ecd49ffa54ea03f49ec177c032aa817fefd450655e9731a23e2d297eb4da10f80a2efd84bb5b6d03184481e7d92b77bef6b140fefda0a2c7643c525c73764f8bc8fe63d224816e3a03ad4c650866f3f672ddb7915cce79eefa93f5f3c6a4f064be1ed22d57a15b80e9032051dce3a5d4b148b4423a6fb08e2a54cfe13852482965e6685110fd9c34b85303cdadcd0239626552f4bfb55871156ca74654734e1bfe3cefb8971f9282e54e9e03e0d50ce021309ac29eae1bba2b81a4d0fbde1db8f57bbdfb89f3fb5492f13cb803d9ab30641448369db29d699d7f56d2c20dfecc17da03ab0cc1c844b27c82359503752df254da10838079d644883054486ffedf36a196f8e2d0498d2d6d3ae8f8ca0219ffff03729d5bb35b13e91b3fbc2398cd59ee32527c90c90646bed4b6ce7cd3d7b89652030dd914c7f0b87741311e6def29419fcd7c644d0d7298b42c9ef2c0c7447fb01f03d6656b32e935e2511004688b3e0aa9f323effefef478c7c684172066ce6983390382242195f94dec5cf883fbbf5ca0723c02fb88b3aeee8182d6f96519c6a6d68b03503193f1e6732230193b646672d769273dc448c18fa7ddbcc011e83b678c49fb03b85c9ffc892df8658439e24b24bba9868db2217e6a84c10134b6745ebb6770a3031f29563b00f61877fa9476c058f702a816f758dca8d787419892d3112cedaec703aee23456e618c4a5c66567451d7c736f7b5b9319525e7435a40d33796110af220314d94553b2a5ed8cc7f8868e295ddb867155d0637a31c3bbe8ac81a971e8a49e03c4f575d1b6f2a809b741f4abdf21143d74203ab5b4895006a90fedf0244c1f800382fb2a793ffdc48ea7ae81a53c555aefd76c32cb714fe300d19929c2bea29a1c00582003d76b0716f279778aa6c45bd81249d89512da5d45b59617faa2522bbaa0d2e05820ffffffffffffffffffffffffffffffffffffffffffffffffffd3b3cb29b98b3d031335b1efebccbac7e76b12611c600a16ac510f7d4e708086169632a5cd22342b00582003c9793673d67f61d699e3a5c5136f58858f54adcdc4913955f872bdd1ee999041010058200394277ba5e2b9ea6f67ff9194880c00c4686a56abe5b99babced1142a3a58705820ffffffffffffffffffffffffffffffffffffffffffffffffffdd196c81b7254403ae4a445dc8acbd260dc6c85b97f6af5cdf7a5b1c0350548f089b43374804d8f9005820037b121f134a4aba5d380ef5aec052a02b5d9a249f3c4e20d95b8553285abe405820fffffffffffffffffffffffffffffffffffffffffffffffffffb4c10f65f213a032bd65668bd31048150a529ff904c106f71896a14ed1a9864a43a79584c9eccde0219671a036d6fd7521549b2a59bbe367f5fe529f17a0553eec233e56bdc563914dddf2c0e03317a5a71b1fa86be7ed17a2eabd04665c16cbd201440547540eb1d71bfb642950348371d950710472626ff2af4dcb4288c7382dfc3d7be45412d36a39cffd8efa803cac5ce5757af430e4d03d0044a57d21878221951e29815bfefc2bb028898bfee0313168fce1b1991988377b902f8bf56e9cb24adfcdc4955417d0faac7d56efb600303c65e7383cad02aebcbe39b6024f07903af43e4f3a92bed36979e1ff7a203230219ffff03d68eb960e94cf19cd81906af9c547a9e64f70a80fe6f5379574d852848a43dda00582003cf90f31f1bab95c62e321ce68ebce362606dd405f1bd7ad14153d1e955afe04709c6138bdcf8f8005820032ae74af2a4ad4f0d132795f64df4ace353e956a8dc044cc7af4c15304fe4c044195b92a3031aa2882e5c56dbfdbc0fece409da37b49ee97b649386521611cef0dab14330e3005820034e01001780d322e84c2b3a58924ba8ab7c8277d751d51c4ebe7fd7840d2f70469b9035aaf6e303c984d22e4adce5420c555836021132b75505f9934087b3a0da76788bdd8109bf00582003cc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68047354a6ba7a1800000582003654b142e14a649cbc39ee0f311153b9823641669faba59849444f510591270442ae6c1b30219c44703b4badf35dc10394b1a4d19e4eacdc600cee444019b35e502e271ee3103a220e903c77c81a550be7b3e73b160bdbcc7bbc4e19d4313920f2cd0386ec78bb20c8787038894a97070e1de884b82d814d9517adeec9961fd2703f721f7f9c38e5cfae275033daabc1cf8aadfac8a677cba9e3de452d4b57cb4d512d8e97dd567e6cc5ae4610306b54cdbe869f8ceeab710b30a0bfee65a1a3d0410024b5e4cb5f5c0406613c903b281782c62fd3e89557e6e198dd8cb5ce5c3d925c1c5402250159ec79bac3a19034cedbfd5716b7ce9930e1e78a90fe1f7dc1528207f68449ceecf08c8c390ebf5032035667d301ba77cfea00b206672494d269581ea8e79afe78981c08dbd2a1e1903b35a081667eb30b746faf38f35af8740c1bedd17d2b74d0e6aa74b71225ec45703149c08beb34374642b237b529f98973fc3b22cac6fd5ea76980b3211ff16e0b6030a140e5fd1749b4e153679aa0a369440ea32618501cecb694fd01924a99660e80333208612aed3d54531bad033424b100bcb340cc4be7fd34cad1426ba9790821403d934c18719392246e24271b192edbc3877f81529a3079012b6c7daefd33f798403acd2353f7d8c33ccb1df966b3a6a659447b4be4d218dee266d0259a47518bd2a0219ffff0351989524448fe7d727199ed809390456bf74f99a32f4413acc0c8641ca436dc30398117814e29130df41ef228c3642eed47042b8cfb5cafbb31b0b85e02423920d0373df2148a9cf9cc9eb13c64d1e40973a9a5d5cf80e15b8b6c42dcefa329b62a2032897bbb13f4af21dd69002179777cb4813a28fd5207f3ee7aeaf4a641e8888660396a52405cd9d2286ab9ce07b8ba37d086069149cb97a1391a4fda2be3b4056f203f199f16230ad1959a003f1f4c2fb85d9b2fe9aad2d5eb09ab650a424ea4cfbbd036cc35153a764f1fe96fa6c44d2aca7a9c082f9f4668e537d9d708158397a3f84037f157188b72f995aad497b069e326bd2e9b10b0844b4aeac27115bc0de1282f003e55a9102116bd9556c0d14e95564f1ed78a93b7cdd55220334cb66d6c899177403ce26db9d21d1e66e93e72bbe857b475e6e3a92ef87844b7457550adb8f00c27a035ee6ae6192813a6e06228c830423b2d88aa313bea454109c876eb18b0aa64824030dba56984fcef684de00f083c14ad79df94ceb8f4ab694390c73db824be6ddd70369873a97a21ea1992b4f4a0dc73aad3fc6a3bd28a622bdf400e495b59166238f037b07eb58755f0d25adc3c8a9a0e89c28666c88d06fb5c85506f92a14cdae9a4103d8ed1ae5f0c5ee65babd875d02eab17ce7fc192f6f2e82ca827fd7282c83eb820339e2c63189b4d75b9b52d5c4afefcf1e6673ff809026fe806851f61eeb444d4900582003c5cef8f3ea6d4e680d96afb9624e0c3d8411e8295efa7cf14451666280d8e05820ffffffffffffffffffffffffffffffffffffffffffffffffffece7fb3d21d09a005820037b234d6c3d3a6096f58bc52ce7433fade17156121b3fad8a6e554a21f140405820ffffffffffffffffffffffffffffffffffffffffffffffffffead60b6895d5ff03e894366dd700943cf9d04cbd5862b0612570d90fcad429c8ebf885cfb7ab539600582003f84bd84d11893038b40985986fe4d362d1bbae45611500dd6f9f638c636ee046e4fe04a3df65005820037024d1d896981226ea8b2b002efa65b2d623bdadb75dc070a1a9193a84d8a046b9c309a4ef7200582003f7a783264ee98415b2c69c53e7cc6fbe151a76c850a8aad890de2e67a736504802e290ebd6d9a4aa00582003a88bd6140443c1139ccd5a833afc752ec14a9cde2b388fd6782854d7d9d1105820fffffffffffffffffffffffffffffffffffffffffffffffffff40c54c841ce5f005820039317a683c853da84dd4d7b6f067b2ab94beefb6d9be72ee049b91c578fd280469b6d4e76642900582003a11791b321d3780d6185c1923885c37fd8bc6bfdd7dd0e5affbb12d7b137f05820ffffffffffffffffffffffffffffffffffffffffffffffffff3e7cefbf683e220058200377048a022f285557147ab6730ceb49120efd9754b4863a1d92c34d370d9670470383c2117e1a3d0058200328986f3068cf0060a9c2119fc50d214a3fcae1db378ca67b15b7ebce2402905820ffffffffffffffffffffffffffffffffffffffffffffffffffe3e7656f0737000219f7560219ffff0355a4474ee24ed658f0947c9f7e8bba1508c4312db0d4f329b6fa64d45c6a50ed03f270fe0bf895a474544778dfdac21793ca1e2ec70902459c851570df4b66c05a0344ee9a747b3238952a79d472be3b2086254741116c4fdc08d9753461cbadf64403d15ef1ab6488508ecdc9b9be54ae480eb807646a7823f2f16e796c4d96afc02b037619b51533e112970711b69ffcfce929599113e84f55c9a4c378ddf75ef3826c03ab0d0d8b7b6ebfd909742659e503573d85d53f3bb8d55512a81f041f1d5720f6036be879eceff5e856becf79d890bdd39c67ac36100f3b6c334abb0ab3f731dd9803d05eca49888c5c736b0581cff64121f6f94e23ab0295c10258a1a266c8c994c1033bd21a76e879a1fccbaf9b08b6935bb590d65debc42d9549b4333014669eb23c03047100d97da1f0a8575f58ce759f1597633b71a6fdc04ebf716e66b32f95e74503421ef8edd35ec4aae6a1d6998134420d570dcc5985d27e414e747a06e458b05603f25fa2e7805b54f746232e43ab9fdba364975add9f5fbe597af7c6ed67be81da03a2fd2d13e0f57dab495c0da9ebf470e8940036916ad38295fd9716df41fd6323030ffef0b15bede91e04b980f96bb65a57cb07cad55688e8b372f5c0a7fac603d000582003540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af04101005820030f7a6e6c06c4f95ce5116ab661a0640860025ab1e087b67bc0d5716bce4cb0470369c524eec960005820030d8b9200d1cc3300978b0dff53482a4ee51169b9294fabb990b640284fe4305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03a8579e11e2cab5de8704329e692074d978e9ea9421a43878c272af79f4b5d40f01410b034664085901b9d53192a364c5724c4b488ebf09399d05eba2a5742987dd2b36b400582003d48ae611b4b9f6b011bb40e98de9af0a71f3fc18dd1fc61e8aa7b1e07094c0445099b0de00582003f21d8fd75dfb1131375c51568fa8d0633b7798b29f4dabf29239ecc4e5a5905820ffffffffffffffffffffffffffffffffffffffffffffffffffffd97de4fdac3a021961e203db1883b874fad977be84ec5dcbf6555ad354865db5bedebf70793806c31541800219ffff03e823799d9dd9d5e2de1c5471ca3b954430a248f3bc850c706887510aacd08e8403adbc8668fd61f71208cf8fac7c4717a6b281fad54207987c9c26996214c500cd03191a8fe4d2556f56ecfccaea3315920707c3cbad6ca57064f435edeb1748451003fd60a1433d6fe8349ba89ebdffa62e44d3dc2d0856e0b37ce26fa22682999b0f030c2963437884fd980011a97fff4d5b0a38340ecf4b612845fdeee773cf9d30ec03d90f47d1eac9e156b97615825bfe20ed820f4bd57ed7248cdb01cb7c989c526f039ea430e10b1ad45edc9d6bf68514ba40504cb5f989847ed03ea342026b6a077d0350155bc3cc5b4e34be1db90a83b900f063ceb65a7af50d30d661d0d1144642cf030753764596e4f17f59f7d71e27ee49448cae6a71292b8790a5a5a48f192d45ba0343c235e9d33a4d699b7c4b4f3b5483767930556a6483823c06f7ec79d9adf37c03ee4ed28e867a0e013b79f42ca9412c764cd8d47ff5273255643439d2d0cf9e320333caa314b8e854eb1d1b62c49c870a09a3bc2386c7cfbf769908c2e911fe6074038221cb8c99b12cfd4244963410f342b2422e8f8f329293e2f9ebd2280c5178020302a273ac58522fd802452737f1b5d8617d7947de5740af262206f578e5f22cf7005820039f651a8d76cff1f727d186cadcf8cdb59b9276976c5dc825f4df91e9862020440110470e00582003c19946ac445110bd7330669198af1baca7814f6853e70351a899fe61e6bad0480de0b6b3a7640000032026c4186322ee26d69536559aed9ed3cafbf1fd15762af849384ab724cd005300581f020c940b1aafea4c4e091fbd8d62ca0640a262edeb79575c6c36ce27f7f1675820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02be4a89e583e25929bec18221cffaba862f588ba02270140214d2b34d94f84705ab8affe529a602198800021942490322251828874742d50b14906d5b2ae3d1417c75859b31c2aa0b926fa050bbe33803dba5b9253c3859368ff25a1e6ca12c4a73be43cf5ada5331c0a8c66406c0760f03b62d259fe2821edc012d9aeef37a27bb46ff6755cef9bbf2fe163438621865f20219ffff038bd607d8108a9609cee7dfa55b7ee2f0bf5fc73cc4b8ac011a7f10cefcd9db1c03a0eaccf63aeaa831c1af11cf44ef26bc33db123e218181afd92ffbc05b31d50003f9cf923efd051449e47e6a642dfba3de6db6f5602993d1a68488da71b9f40ca0037fbb604b502a947d354dd919fd32a73368e1b79dda5457036346951859ef1936030e2f88227138b9e6bf623d372323cd9b8648be4963a64d913a3fbb23dfb7a373036d294d0c86c45beb970e9fe0e0655c6af22751587e17271d2ef82ecf2046d3470377af91fff8d04ae5360d404832ebdea6de811f482d6482e72ce6ac3b06f209e903951a51ca5b010b58f68cf0206b27e7de97fa56f980bcc9fddcd8325ee312d81d0303994d9feadc9b45fd32cf9da9abc65635a1f5c59aab4dbaa170bee29f8f890e00581f02c33585a9d91d39c91baeee8920914d4b04a8aca72851fbebd07f846c6d6b5820ffffffffffffffffffffffffffffffffffffffffffffffffffdb3d7cf18002c200581f02e283ea4c19dae948b187fe5f0cccacac5ce71415793796ddecdfa2e069e9471675328a3097e90219110000582003901ff1236fe902fb46f82f6f61152c7d70f568cde79cd5c9ba8ffacb50ce705820fffffffffffffffffffffffffffffffffffffffffffffffffff98d683cd913ff03b7ce97a97fd41a4621f37ab4c1fb9c27b1e65d0723cf30b4b908c1e637c614640328d976ce9bca6842ba08f1be623a6f429db17c3091f80a060954d8ecb994ae7f00582003fa7ec08fdd3c9c44a05446aaeb969a936ab447069d9e6c363f8ae958ef7d10442bedf83a00582003e77876d003dcf7542120d641c5c49460f7e8754987f45c5cff1bdc396ed0e05820fffffffffffffffffffffffffffffffffffffffffffffffffff61e8aef4da93e0058200385f19a65fa53a237ff6cfbb96616ef3fa6fe3a5a1e2dd1526cfa6fa4c0bbe0410102191497035e8601163c7569f39e2f78a02e6d97bdcc125c725bbb1a9140abe6cd02874a04030ea10bff1ce190c2f57eb3de405d075492ef1f3a0cb1480133c5cf57343ae78703d7e9fae56252cfa3bbc2645e36ec5364b84dad79430fb0a4395155c8ff542d3300582003f3206bc38c396b72e5a09a9f2b6bb862ff7be9d44025094bb6701c51aa7f805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0339f09580a0237812528093a81f034e9d33dfd54e774184df05726724c14e966a00582003334f4bb9229422d50bb66917b4277f04b1bda25318e996b2d2ec69ea9af3005820ffffffffffffffffffffffffffffffffffffffffffffffffffc643156ed24c1e00582003d1c3f411372019df8e6509f1cf5a23b912fb4a5444c84c5b090d1173ee05505820fffffffffffffffffffffffffffffffffffffffffffffffffffe6b48dc97ff7500582003d7ee1641ed18242ec50d2b1d630ed757025a59f0e2ac9287154099a2aa04a0440110470e00582003b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0420d9c00582003a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444047354a6ba7a18000005820038f7da1a213a75c452d5de846f5d8524e02a47bf2eeaeaba1a54fa6f621e6605820fffffffffffffffffffffffffffffffffffffffffffffffffffd611e236b0bff00582003a3261e5477cc9f114d8fd0e25224406e7e5a11fbd78bf9884bfa0deefcde704403ce2f2900582003ac6e97fa79483fabfcebad347a6ef9b6a14b7a5af9685ffcf3d723744427f0441f1a169c021939ee0304c1ebf36713e35d3644a02e9769fc5594a27a46164a7087784a50293580c5e1035c0d75e03095f47e82322da356ad411dce560fcb087ea132617b714edc3e6b07038c72bf37ad3ce259f47068fd55cc4986295c10a6de45e81539708036ce698e9803d23dab7812fd51bd7e023fccf63dc8e6e7245026a7dc0ee062671589b8b2d78b0219ffff0358e2c63de3bce232243058d5013f5fe5de49c07cad1a2bbe36d26c12e2bb0e70031b4a601ae99184a551308a6667a4ed4664ef34432f9d1e3ce78258bd991bd0f50347b4425693bc6f06a03559cacba3246fe9f5144fc3ae7daff487c42c1bf6189e0330ab878d90f8385385c252c0117c3852df4373ec4587683d81db9dd253be5e8403191510bcb7361655f25a6e6c996a52d252b2dec380357060762651fc27d53a730300d4c1e9a506bcbf9c5d876fff58bcc1fe69be9930b54b89e6151a69aa6b5f110058200382980ac99f273d999c2ddc91702f98e9605b9c7c15ba71a60c2613894e06e0463f3cef0ebbf6038fb088f86e15a48c0e1bef2e2bb72ac05efb7dbcb086eda75af14e0b62d3060300581f022e97d346ae5921d9e57f9e14d8f2d3690f7c52ed62f6ae582dfe5963df1d5820fffffffffffffffffffffffffffffffffffffffffffffffffffddbcf3132e3ff00581f0235317ba6976cfc4cc9453c154316bfff7a0ad2fdebefa14c1d0ef9ac84035820fffffffffffffffffffffffffffffffffffffffffffffffffff99b2124e3d52300581f027bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a841010219045000582003285bc7590971a0cb0aa6e5eea9576ed0c8c7eb6e8c26934b57d7d914175f305820ffffffffffffffffffffffffffffffffffffffffffffffffffff3512c44ddfb0036342dd5ff14456a127df1b3c77dcb5b13d105078a4a4001d9527a52d4e21eaed03f826a41706e1a52a2b6abc51989f6fad78617757f09102c6945150587c828474005820035e58c6658e22cf8940fc42d81c76b05c0b659a6e01d518897c06df4f52bb5046813dab46331d0219aa290319dbda6a00261766c96d6157b5b71da796306937835af550be19d9b9007f874c03cd69837a9120f48c60067c1363df7410a10fdcaa66258c074c4fcc428773c5a303fc52ba807f9edd3502f38fca04908f6818f75d3f5d5085f9581e2ad876f4c03f03da910634670a3547c272037b8678d483108306903d5c982f08733e190984058303ba6c9aac932285c842f24c0b8623e22705bd02b621f273cf14f13ca88cbbd00e0316fe29cebd4ca96d0cdf2ee0bf616f01f5492b7d3a389867fb94aa1eb571cae8035ed80119ff48b3dd1ab8d0aced166f3d313787b4436494b83089e160f6e62a18005820032fb2f5304808c5d432a57975d9742db896baa115325751c2997d2c0e01ca8046b7ff4c6c746d00582003d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec057010001036be6369d4d2883f3ce8da65e10bdfddbfb7d5d00582003d3988e30a1d8a9e83102637568578fa275d58c9df827e602303fbffd9a7ba04420b1ccf500582003f4505b11cc8db6d250753b69221e8bf1fe4beda3e66988494fbb88c9e346b0410100582003c94093fdd01994764f8425818b8904a78a9a06bb2ff8590aeeabd02100cff05820fffffffffffffffffffffffffffffffffffffffffffffffffffe2183552ca3ff0058200389c3140ccc689cd5c8dcd85568dbde6b413f40cfc7eb665c64cbb23d826d804427cc2404021985c803df5b173f086e446092f0d07751811e43fb96fd9c3dbec521830542d444f3a74f0219ffff039bb9c2da99711b4c7f4476e3f10db1d3aa81371e013f3c637cfab82c97bcb279038dd52c7a68e1e82e60274bc6dbd83d6edc64a6cb423a0ee9c226cc36e027c3e703d58c4e882234840f5c4427d4e7a822ad05176b9c8d168016800c48f52a10745703c42e8df5d659850229555c2f8520348ecdacc77f339a99d59148643b2b03da250389bdcefbd8bb416a7f92687ed55ef5a283c52987edc559aad033fd7782821d2303d58c17a718b1c4dc7e61febec78a9ef53362655d2a5036a30a45f0e1225e664c031a1c26a0f8a352da649cd5c8b8845f2fe2dfa81d2ecf893b531a42a96e3da81903170cd5ac836bb92a37594c65366b595f301653b996c4a7a7cbd59552e4f6dd8903fd8ef3f4a67e790171ad44c308f2d9fa8c5327004f3492c9786de5ea0919cac903912e07ca6eb5be19647a0d8c5548228114d2d20ae2222d08a51ea26a8ab38b2103c01c53aaf85bde38c99fa36fa394ef31c1a0e0328eb161b41b184e3b4f09b05d0368d21e587173269f1fdf64ce4f450dd0af4ed005b2ffb842b2a90a4bd97db8e9032f134c752aa1c2decf7d21083a7dcc1734e4f1bda0213691a7ff424d0ad2c664039f097062fda77e3600b551e8bfc759ca5fad08d8a8ae8ac2692ed8312d94a19503022cc0443d9e9cd8f3534f07473b823542bb4e78364761bd0e33c92ca4e4b071005820038d226afe799aa3e13e60021a8fcd0b3d88e6a0ef77ec661bbf3e62b925f5d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003617fac31c5f04e51734728978ec8d3d56e051aa7dac7e4409f2f3b4f962e404701d316e87b330500581f0202a6260014ae07cd76a8386a204c381fd1e7610f06ea4d1a2725514707114420d7790100581f023e078f3f0d7d05bc079eed7c4eb734d0e28ec3001b7570b8397185664a3f47014182a5ee1f0e00581f0266c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c74114021902c0005820031414e136176c49b4efd672092f68edb28de918bf9f6b4ece3dad33bf5936205820fffffffffffffffffffffffffffffffffffffffffffffffffff17ea293698f1103a8cb6e3bce6d8798efe9972f657297c0e960aeb7627bbc2c6db95e8e37cb4b7c03c659d1c269d329a9fae11d1e795ed769954fe3b83af415e262706c3c161f13030219c0f00219ffff03c873c7ba485756052e0fece232dc58598cfb608417560380b3e6992559b4ed7f037d87d97c00e2b88233fe87a29295279d8de9a9a955ac1259840b6ef252be88cb03387a6b2ab43c07d7e981ecc970f70705ad377cc011770bd6fccee951f051ab7503edf578d38539de9cec4bae2842573cf0c9ad15f889cb0eedd51088c53649eaed037f169ed039d41b0aa0b41d24b15e67dbe8b57c0cdcd08113d0b94ee5ef2614840396586dae464093ac915cc12329d4103d481dd588e73e8e8d6150fc38cad4bf70038992ae80a3952066c715220628aebf3a506aa24bba45224da03d4eb38798c16303229f76ba69013dedd36149c6c1e8702e0492a383c55ec6d54e3768f42a4bf59e005820038a95252b6e964aca44424e0bb99198a7e937aa4ff2934d9f533e92c23b4850442f5e57b0005820034067b8fd1d757f2e801613d42003a7e3f584a5163f39049bab89596da3e7505820ffffffffffffffffffffffffffffffffffffffffffffffffffff4709c035ec0a03a0c3c375bd7ebd3996a901b1e8a2be7a3257850ce785ba40ff735a41b07ffd72005820032222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0552a9d85c2e2d2df097bf615f27c3bd320d973edd10003904bd27d27de77c57f4118592c39e5ea576674e455a4fdcf00e556749b1e4a2700582003c3cab86f78bcdad32f1c13321358fd410d445e64636ae1d4d71bd14fe42360468a0507f4904100582003e386a21c4ed0a8afd663946e3be4d97db3ea4bcf88880f966ac629eb6950904436c9571903a6106a10b192073ba63a4a5e105c05c393b3348a187acc1e26b2c705ebe39c8e03d6cad9df5559f5707840df52aef0b4d880abfc1b22d894cb11e36cb4922d973d0219b93b0382d10df337fd7e9857dde80d22654f2e346abaad6789fbe98c94c431e88b545c03b018d2b2267d59afab5ad7d32393786855c04585477bb49602c8146b3f91ad1000582003eb3de5c97bb003768380ef2fec562c4038bda7994f03da90f1444b958c1fa0440fb01ae5032d564d2e80177e8967a3850e42c0eb2ffdba2de94deb5f0951274ef3bf51f186039985de7e24b9709734dce873f284f23278f81ff4e042fcd52ea947d2d443e09a037ff66db4d700ad4bef266f9b8ab1516d61c44fdec9ca65b7b43381a9be77915f00582003af4bfccf002906f7e13d79f819158fe874455aad40a2d779fc2c69e8aa01a05820fffffffffffffffffffffffffffffffffffffffffffffffffffeff9ff04713bc03f503bd18e210f5072199e90cedda598087c5a79dd5ba37fdd796b993241ec28500582003abead40c6207605ff735017e0a7f16faac9a7a53081a68f7bb935c4dffdad05820ffffffffffffffffffffffffffffffffffffffffffffffffffec9bff017684f300581f028abb9d510a794b8a053740d96270d28f532eb15869d92855fc7caa59507d5820ffffffffffffffffffffffffffffffffffffffffffffffffff09ed86cd8e410700581f0215dd3d8cf9782646eddd3efe9c965f946bfff83f4568849ddf4db73d246c5820fffffffffffffffffffffffffffffffffffffffffffffffffffb61a829cac00002190140021969a3037f1b4f2ac19c612714f2b654b5d81c6e38748bb935946a36abbcba24a233f35b0397b7c9fe74ab64ee1dad508ee23633d977b12a189ad20988c249b8fae3300e0203a7bbddedd78cb81018be87210fdb5f456164923ed88ea81cca09bc43f1052d67033899affd14ff199e6d514c17ff8583ea076ec1422099a529ef96268b8a61e9e4039ab0dada378b8c2467c7a909a0b2efa1b0353a1defb0ee10ebd236e448c3eb5203413265446002460352fc654fb5b6ca8d9512a77419e7cb048ace85bc6cf01b040219ffff0219ffff05581d02ae8b6d83c543d53c5b3c2be57d8477f9021d3fcfe76cd51ea1da46d00701192f56031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581d02290008e326b20007c152228e8faf0e68df22db8e0ad0d311d791576607011bffffffffffffffff0219020802193ad40345ae5219923b07e8cbd43429047be2fbd93bc6f58158f4eba993ae95c21faac003106f13c075ee3c0f66aa6f884564a438e34cfdb7b9d2dc71afe0d31c59aefb36038eed8eb32a27d26b02412931f0e0b7622e8827d36566f243c2ac504444bbad63035ff05d9bfc181101d15ebf6edf579e2667c90eb9cd04bc1ac3544e60f2d5f91e0369046e31134098252149d69ae7b3ebfdc288b73d4d883413bce4198177f9dda503041c498f3e67b2862989dad6b0cc1f06efc9c25917a52c084dda5431e88b4f38035abe0ca65aa733e82cc0d09ba0d74b52ba4e687e2c71b51bf25ee607aa72bd490219ffff03d77decd48cfb6ba15dae00e0a1dd43aaa13869f87424265dd3758f5229102a5203960c8ebd009333acfeb6dc53ab22c1555c4e173bc36260a2d3e0ec5f69dd5d5d0306f054b6a3694010ea924c05c13dae2c505abc578799068e9eb3c8a908223f76035bab5a664b3514256f1c4885a58d731c8e4933a32b3afd485dc399df35ea99c503fcdf1f5d2c8be2fcb5439ec9c699a7463d5f58b4c0f5ef30ec667ad8f6cf5bad03928b5e295df8b033f46d11318bb8c6a808a54e5e4d5bef656f60fe434a97c9a3030f280e12a3324ba1745776fc804632caacf54fe659638ef967ec5324ff8ddafe03b2c19a659d3031dffd451ffd77237eb443cf0ab2124dfb9f63c810b19e2fa4700219ffff03a077a989b5ccb2cf4431cf8ecc44f1106c2139f5081c38d2befc12c84a2fba160365230f505f14dfa773ad9dc516da35b7c930984b40fc7e8b9e67440a12c5f06903d16396e2832807c130fcbded7c41daf8d29b149ba5a49988ab28abd9ad20fa2c0303af39a8213ec9cc2f0c76444159545c589715a488e21daddf62a63e7a185c2f037b8fcea2fd5c0c0c2b50054df0b0266d29bb717a436c200f7e38ae07abf764910383e85d0a58a5d9d05842c97e9ce68fbf61b777342f0f69136cc7ada5e84d2d9003f1f725108770c6aae8ec150bd3931b4668b0a0c8e432f34599df517fa057981c032174606510d229c6f30f088ad288947187eb842f2eb020562511622594011a0203bd1a4dd40b43bd1be6d6338cf3d122215ad149dd4b59b46d8ffa2acd0564a5b4034231a64f8159c793105c31031293843fccf0841a7347d2e3e72b9954c5c18d180378949669426cef53836d2b484cb3bbcfd54829e41478f06edab09abda975a2ae037b08c890c946dc7e895b7202daf0bbf3af447d972d15b0f1a2f1bb43802b13600356c1a5e6b1321a53b53d311775183b9eecf581bbf0196f2d0e18cbc540e9812803b0febd9f7342b98d2e0406b1b797421c95d6c0fa6cd289a1d48833609305c7bd036f01a48e39d411dcb88e6dc840fc6ae18afe44dbd86d3614c44ae2df840501720219ffff03820d79ad54c8bae6daeabf00f76d642fdf0941976b5464ab7ea475bcb3771a2003c9f9be129a82c988b07224328080433625af80c4498f0388f888b247d1c4ddbf03d6cbd4ce3c2c6f5de2be4c93357f7e45211f2dba44c44713270c626967266549030360f85b79720f149882cf5d1e8cd38d8155a9457a96370ad46a685d73bdcd6003860fa23f33b98605aff1b0a6a472e7c5812080453ad231d74121b7839236c26c03569a8236fc039ff65e2eee7bc9020dbbc19070770bb7e215a037bf3c47917994036141b7a68bf5b2ade5014fa1980c6c7084ab72e35211a8bec62b45eb45f2fba6039cadbc87cf00f43aacbb99d0f4180e235f3caa0e97e692512379ab98144d57e10339be36b087f716a50c9a1d4ca7e1b9c98f296a591f8a7fb1b96c01c4c82f459d0307713c758cacabaa2713726a60e797df4b53d1294948b83e65f7173c19b1254903a6628ffcb24a1442add27f0aeedd681c65742c9d6d269a8c85f1a5d998d5fb470376040a4b4a83672a0d9166adb8cdd8caae005ced13e81ab8bde3c6a8d2cf8f8b03110187f0ed4e98b5581f37995afb3522f611016ef76505dfc6c969abba94116e03ea3c5f95ff16e2b1ee865a43eea63d4dcad92681d5781034a0f3f04636d8b69f0321f8359b544afb1cc482f251b8483355bc98810cf05db65d870b99621e9bf4b00358575a9ae08805c4ec0e20436d57c2e49bfba1f1cf5692723b94ec1618d5766a03a82f59fb2c37d3c47a41252185bc1a89603898dd962820bc81d6c76ff79010770391ccc82a7ecf3ca2f13bbe0c5494c3245f95fbfa6015cab681c0683b819da57503c9e03ca92c23adb70887494693d2f883c757489483c4a53224a78196fc8ec5e1030d9a151493083a04b57e0a87cb5d6eb8304a6c8b60966a17df262bcb9c3394c403faec52e3d99acce29b8ec528af106eab4abb5fc25533eddcfda65c7c18a018ba03ab629eace70e8c1f80ed96a412b9e4029e8e703149a4abdea79957dd5f26c6ec031f57bc38d11df8bd986c547750474a18bb264993e8012c07f2ab1731fd25da5b038c9282c39224f8b699dda2b91a5e4be75a21a6909c74fc11b39a1c1bc827f166031d1e176b254ad292fd76364bd92b12b89a63590979bf6a1e93deadea604ef878031449df5c6c315d0fe39a4d0cb219061e1a5fa7e419df6766cf2e4e6c1a6234dc03af45b53451155c923e9087c3b00a8585bb0c68007337b4c7f4c6dd6590f666c303931f48e569f4562cbc59f4111f2effc5fd2f8f13dde6c37d60a6ec60795e6bda038920a7f29e843c1263c2eafa34593c745e98c8c62350e6d801af9b64311cafda03b7c560efedb7b8d108a39bad1ea89d340c9847ec86d69d67cf70bf2bef4ece72039831ba864d91ed45963f4798dc7a2edf226180ae01b06b24e7cf1a301a13bc850394f03efdf1fae9be0e2448163711c597535d3d74d1a7eedc164566014c702bfc03cbe700c311ca43018c96d071413df8eed80d3ab3e576602d69bf815d21af0ef30354dab92185316c6234f8a17a87805cf56a0e7ec40335eb5d488b3152eb6f298a03ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e03f849159143bf86e3c8816f0b7c06c06cb50dcdc97b0c1d7029a5f22cb007011bffffffffffffffff033ac1ec019c3e099fd32839e1c926bedd8a3ab0b386f6a46fdaa221c0320cc7b603629887f138f3e50bfdc51029f2b2b7178e55115251bb3fd66d24844f9cea351405581e03ee6a53b47a35fca721a133c1bc83c292c321208f133635ddeb20e024c00c014701764c5030a71405581d02bac4f2ff295ef0db3eb5843538c7549f9b9f8b395b8978d51beba9d80848883f99ee6915f67805581d022a2ad87965e93741d0fb0a6342cf592749856979d451c66ac0da884a0c024718dd40305b70000219060005581e0333c2db02721460975b5ab08e8e39df6f787bc2eb5120bedf393dbf73d00c0147267592def3c6d305581e03e20b51052e036e50f6b76b7471ae054b70736646d35a48f06bf506d3300c0147045221e24e608c0354b8b2ae8cf5b09128d249c89ebfce7acf64fe39c3fced3a930222d5ac03bd2c0351bf02318d6ce8cf274fe80c5c7a2b4db2387debafbb6504c7123aa47b79f77703a12811f78672d6f30e44850484fc0db289edb2bbde27998f96f8449791b93a47037319ce2704da6cc08d4fd96fb6e916b85863f4d36eb7b56f0b87ac0e1e0ce94a034aaeccf8355d3d16132c912e976a9d3c59c0c40f48e01d75cf6c640269b47dc0021947ff0325c18b4080601961f9c29335cc03ce088666e8bc885ad879b93f0f0fb7d58fef03ca93de39b496d398b72c365b5e6b2e45b985be7e802597af2000c7dc835b40bc0219ffff0312d58dc1ca128a7c436832480da406e0d72141c9734e0dc18c8947ea16ac1a8103e171baa3bc5188fbaebb9344238e59e93cdcd28b8d345928b762ed67f03b511a0384f2b9a997014dcda8e6b7f99469b2e936814df55ed689930e33f1f2579f85ff036d8fab09c8d0eeb552309af6ac8d27f7c5f281c3fb999aeca4ab77695b20b9430219ffff03d13fd11683e369e0d3c27b550b958481edd09bb344b1638f34df54de0dbb8d3703fc4e1afa21a1ff9ef7ebd4d776c153ca7105a80a7adbd2c071e45de50f67121d036a06819d60b5e8e3506c1777a1f923ab2017ca15cd91bb51f394ea7874d65aef03763427e6a7045cba8397ec7b5438291722622b9350f953b31ea28a7af1a6ecb403b7cf0f3a52a25b087d63afcce75aa99342dadfef5b42d41505fbfd956da416b7037e623c440d8e955515bf90790e78f40c15d7e9076d765d0cc3e3644d5c52069d038551f9f068a759b03bc57c97c0c6feff93686096bafb7d045521b285c32dc2f80219ffff034d6a6f99d14fdb01c0195e8962abbb06cb3a88754f300dd98eda46f686adf7100357668589fc15df5e2915673e3147e58570cd621b006783cb14e2b5f7de7417f9039aedeccc768ca0a78d30b32e02d30ac521c38472c83e335a1555796309e64138035d22f818c11df89efc5910bec67df264323642ea34fa519f2940379837e64fe903d6d7e5e5a845744eafa64a0894c9895aa757b9836ca40985c8cff47374ac479203727a96afa45c1561959d244234172fc578eae0e2f63161093f6401b2b535416c03ab834640f9c101b6e3a67a1871da4c054342994e01c938be07fa77cbf3d1b61b03d0cdfce3fd8e279dbd19b05d89bcd824e1241ad6282695712d27257091d64c3503a6257350f359ec221f624d5ad33e4358772b4e79801ce6d95d5ef19a5f130c1e03dfc6b0e376130f352f82e0f8e0a38fcfd33024ec081775d52cc2a0f0682e122003363dbc6840449a59194e562a712ed97080d18ffcafaf882cd824abc8863c15de03273663e15f9c6de94f718337341baaac27eaa8dfdf6980cb55deb46c8f048132030599122166603fff9b6e2f46ac9766e7e4090bb2870c2b73dbe8296598740eb305581e0319b3aaf72f46fca16f4214674422fca41f0f76ea14d68b056999a51c800c0146220c7a31404005581e031447922ad94513414487e4ac23092b4fcd405a571e9be107051983a670040205581e038eb9080ebf56a01a91c9c9ac4a3a199684c042c00629992e69c0184910084705ebd312a02aaa0367c7bf54a58d560dba8b35cd0b500c09946e2323f155fb0ca944d02dd186f8ca05581d02d77d983c789d1e5d593386f2f8917eb4e7ae4361f729129084ba8414040105581d02dd105bae87cadca4ae7ff6d7641fd05bac28bb37ea542f83e5276b2b0c185448218eebf3297b6abe0219090003d505d6550f55964ccc8709fd289b3fe530c5993f3f883061f191bc24c47c21c905581e03d0f96caac3ff18ef084a2d9a8254a2915fc62040dbb49d0dfed9a9ecf0040202193de00323a8e655b5c246723a7a67225e4bef31a1ff8a2a47e5e0e34ea090f5c8414f68032628e700e94d5e44c58e36fe784bc30c317f2f3b79e6eeaa7fc23734e9feb22803d932972cab1c8e9efb2a56ae83a641559957aad91e45bf64aac4d8a9c64ed433030295b1253097a4b306c5a428171333aad3fcab1fa9970b1eb7575f7ecf7ba73903fe95d2ee7fe71e9fc1be0580fb2f11c829e760976816bf378f86c76817087b3e032b49c5e8e3b5e9498b3edc4eab0aa73bcdf95cee169cb9d65f852f2edb49f55f03e5ce1557f22c6e317732355bc84e56a689e794cb3a9d4d37b5ae28c9f29a7f920303e3c4312d7c8c449d9cf399ae9f0e05ec11073fd1c479578688b8008f56fd6203f6315ec5ed0eb71b6e38e090dbf616b0ca98026161d7249b38e90936461a381803f9a57707477de7e0a4ce7d1e201efbe45428ac1604497321761f36d5b358f2dc03b8e16f28a8954c80f0e2d4c62c65bde9f768a3344c12b5fb4a15e6008494fef80219ffff038e7d9b28ecf9d4b69e7d61c05a37746409c9353bd1dcbd9d269df4635c28b06c03c2c498a0cd248f5e37f1567f57b79e61fd7c11d2d0c1a06c1be363829fbeb4c903f8059fb818c88f47b653b4c7611ac0a502bb72972a33f328039077f3582faab003188d725221047f2e0ccdc8683ae7116ae849aaf21ba403c7cc2721b6e1cce90b03d239f406f39899cf610e17d111a7ce3ace1d875ac4eb3df7229564c1eefb51ef03158dc7454a83a6a067a84fd229b39733651b0c34e804b7c61097a0264065087e03b2c710201a00b9819ba26016e6ca86516b4605777af9a5f5aa9b8e57f339de23038b30b8f4f25a95b9fa43b879e13b8720932a8c964bef6a11b68b9f90942c5afe031b3ba64efb5b418e797b1cb259df52913ad7ce0c4784384c8fdc3e294a6672ff03ad35ac5a100c0ad5a126983fe3ce0c5b82bba2ce7e36b517cfb5c8d2386a3f1a0219ffff0340cfeaad80e3845dfc3a108acfe6c928594e7e826ca2da9ceff48f89716573590381e3ac405593cc7acffdd7f55eb866b37579fe0f91794df4d8a2f90095d0324103af0289a5da038bac9177232d2484985584103d5aaee86a093f56afb56df2525c031d17aa44012a7246d070551dae678e347472dfe03d24a0aa7f0a827fea7fb288033bf093c66d0463c89967aeb0085bb8c761df4ea9cc75cf4ce975804d8d973deb032a52efd515cf572c63f6cd38ded97cc323aed81223ecf3c782a1ee411472260d03d3b5e22c5e47d0904b8ef12b3c212ecada68ab6745c1477f047baecad4cb17d903fe1933418ce60fc773fc6dfee3836a9e870702ff348b5856b14299526dbe083203612388712101431440a59503ab3e165642bbb8dc8916e978b9703e822dbfcedd033ee882806da21a9bc1f3b4a63a4cabba14e96481b4ee160450b06985a6c5688e034d1a58b2c103dd755894efd106a6a1dcf4503b8202391783818dfe6d21724347030061ab5bb52e9c4292871873a4d5e68b21a01a336eb7a1870975ce2b8170de5a03368230dfe880004740ce5f45ebf35aff140bb91a6eeeb0ef38b92a440b99e07a03bbf49c6f725bea210760e9a78c32d960c859a3ce09ecbdbd1c6348fbe0a45f270219ffff03c72c0a152b576498540d51e4dac4d0d1db1f17e099ef194ca9b58433668b6d34039494ca40bbc813610dd4750d6546b3c0b557e52d6cd0c6b80c256c36b23626ae03027a9fed1b808c3a3758af0f8eed023fefdeaf0b6100c74178af89953452c7840342b9a32cbdfd0ef8ce928b6787d5582a7f2a1faf682642df0b352397ccfeb8d603207c5f18994fffacab7938819f4363272875823a5b630aca4347de55c1bf03560219ffff0383aff2420a0681838482a8a9d00b0492c4495382f8b3d903e59bb284c500ff0d03c2d33ec4618d243f94850d3d50b0b1803deba8908588671f9743e081ebf812e6037e38a9b8d33f479bbf4b7c861f9b8ea4b06b83f29b46523ef82f233a3e382eff03cfe2c0075d85626777c664f0c8451101ad6db50e6a6b6b3795db81bd3e1cf363030b52bda19b569b69d9a016677f8d2e35b6ada3658d68e5f8ec2473b730d7ed0203365fe00b9c61b8647a893952982baf183fab42b8591297bbecf830ea72ceb28c03cea1e36dc1afd5247de4cca52cc12fc82685a9640b4515f4b2cae1c6122a631803595a5916d07d2d6a48a389c93e901a529f64ea8268727310646dbbe578f435fb0342d2b9fa589c0d08c8ebb45acc1818163d16533f24600b36ab2d213252417f9903196a6ceefe08525fe00250e511752726c76885bedc112406d4405c43dfe375670312981aeac82aba4b358ab975ab6752f689e5e7c4d0474ab478c8a3ac2fdd358a03f4270cca821b2393e512427e93061a81f3d15d4332c87b9f293a1b6f183f823d03aab6f0550928bf7695e0c95db4ca40a6d1dbca1e2b8bd171e979a3cf794704f40342f4f12abdf06a051a8420a08b9dcde101ed75e5c8e3600da6aeb6761a02c9d103f357bb0f72ec57dca62760d0a4f6db7d2f98a5b8d3bd26c584291524a585bb3503ec9a145aa764d10adc90978f98674a1d56e756959e3b117256eea6fd5253a4200395aecfae57a2492bdc7bc2de8a9a1fe0c17fcad47eab891bfeac9c33a8d4e8ff0310e9a84cd093eabf784b5e5911b1a012abc8718548e37021b4ba4a27cbc1f528037ed89ef212f4282a5e98d56df249c206b161b145a4c5f8876b8dad3a631cb3e9030530f62f4bdd6dc31faf922aa4a1953e1d7a20c495578407138bd3e6ef2b61fa03fa77ca7959766395e859153a8fd08d8de82a60b3d06cbf22628fbe023d970d1703908abbc86cf949cc52f9425cda33753f9a276524020ea6985d73b3f067382fe103d1ad8cc398184358f9a3102344a69bc456ddd213bf3498161881a6cee7afbf78030ec3cf1ec012525667d2a749837146aa425a6b0e4b23c25f6ee7842cda8dd0c103881d1d8b42e8aa0a473352f7a28f7e3ffb23ef6ecb3e4223761b7c774535f4dc037a3670f78c75958f13f8579474b348612a80af61fa9b61b2c81c415523f170590605581e031f37fd6f2af7a3cdee7070dd46ebbfe3ffd965d0575ceb819732a888c007011bffffffffffffffff031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e030d8d6d6b70ea167989e974a2e8a8cca0c984186d522f568371bebd2e6007011bffffffffffffffff05581e034307622d305db4fc04dee6dc219904fcc85fcd7fd163241ff2391ec9c0040105581e032afd85a6758bc8449dc97a741e75a5255d2f11fcaeb4a8ba37662858f00c02478b704fde9870a40370ad4b67983a7155fe3bebdb663903770c4e05bd23671cb1fe7bab63ceba31f6038cbdbb5211ce4aa63cddd1860bb28c0c184b10e2ccc7c47f1cff10164577c25805581e03cd33e20703427ba76ed8b8db474b0b3a412d66f9a65a3f08f1ecdb584007011bffffffffffffffff03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03091354622dfa33c28f47e6cfc8bd9f5cbccdd125b987ce00457fd53cf007011bffffffffffffffff03c08450170808fbdd1f6454e26c25457ea5cd0214fbc8fc61d416375d8963b00705581e03bd32ef8dcfdc35bac68412dd4e10bbe30b812032a0b76771ca82742960040203702030b248c2a74e7c78fd51e7ee01198e6550644537507bfd9acce4a919cec5034f982ecb368927134589635c7b9c8553c4aabbb97f5adbf15b4b0e2ad6bcbc5505581d027643d411fc5a5a428b02360aa29856dcb118bdeadbf5b61c79f126940c18d7474d2646f13ca42905581d028899d75fbbe6393efddbaff88efc9d99305e787b7de1732ed004fe6404030219800802197f6d031943e4180e4b6110b2ddf7b91c9c70cd5ab03abdb274cd627e6ebd2dca7c9ce70219ffff037ee32c64c34794a06cfc4f5f85c6cb7822d3dd2b0fe5353d2ca2b053a8bbd00b03828431a73e2fec474cb7f20e9a14fd8baabb88e47f757f990e5f6a24f03f13eb03c96f4ad33c19e0ebe4897e8eb475467e3f498a7c10bbd10a0f9970a23ae7d84d03b832f1348cf5d1c07f271520b690bf3b73686c06f7b88c31e55d1d5c84f9177e0350543ea49eaebded98c385e7e6d0f236a9776b70f4b354ed3fc131e31b9d6023033616a3d1b14814a686b9466a3edb8ba467db1de52a7ecf5e299dd6d5d764d98503e1dd68baa09ddb0f6bdc1c9f2d331a844bd5195aba0d3769b222e1e8e0dc0361039bd085f1cf0191136cf751a9487204234067310c51f44ebf81d742cfff69851903115dd590ba9741152844e08c24584ff1f49610e9f3c2c86c01f33dbfaa19968e033ea6ac36417b79c98f2c6cb23b4bb4eb9ba1f961d8f0941436bd38c48d3e72e60219ffff03a0b48a74388c5f6362ca111a15d633dae17327d4f41ad4edec92230c5c3bd0ab0395e5f69890f46eb426fd76caf350f4c52c0752f25511bf0909f71090ff063935031ab20ea2bdc713e310e626fbd874660461603f0506952481044829e7575f62f0030e445bc5c2733f28e5bc328f3cce6397e71c600036a7c18b23a0e12ce95a5086037c89e09e6e27dbbb47387dd8709923ccad5bc936ca246138f57ce382848af926034a23988a89000108ab6aa13d8e1d2d2051327ae07bba9a2754a981d417e73b20037aa645ce2dc1e9725e107632acaa59df9b48f0dc0450e1ade13f1e399d0e7c60032f9e009d15ceaed2cd9d67a3027348378f72c42ef1ac28fef9f9102c7d918ecc03b650ef5c48f8fa724d8d75d8f8c7da6d8f7b3dd8c1dc80236723b39ace478e8403f129f4915bef831c9e2aeaf9ed51ceb28df4dbd2e226760361a9872ce464e05a0219ffff03dcc0db9d3bcc11dfd64269ca6f853855b5863d7101f202ccdd21d08ae62267d603e0bff19788647acd2a6040cbb54dbaf819744a70d75fa5adc18b15c49ab0b11c0338a5fed4fb8508a65aaae52ca1e903fa279a68ba30a533fe6326e431477b798a03084a7db0e981f7a7893bd8a5bdbac3f9ce21f873712260f527bb13d1fa5d2f76038dd7e001090112cae237fe42f11afb01d40c1552604a951c49e2c6c858b36ae803487d387d697e7dc7395b47645f3f85c2332386b224ca8b14f8d101fca88dcdd70381be711235b71fb2c4cad4b93a3dc626fa9e04dd41636fc43cafc54377e2034c0344fe6cdc3b8a046f0d04fa13f209c0bceb4e51614f552d6643160d8b48cbf4220327781d25958d01b11257bf38b53ccb3cbed9216fb8606734df60a1e0df4aef6a035134deb8bd9d8a7fab97dc81b7d720d576d4d3e5b7ed67d809daeb2a171c5efe0352f11932927370b6779db8af32d480c0db5f2f4df4aa1b9c8d263b685ab4d7e803b1a5f1f7d4a885ccfe915bbcd50966b9dbce5b849b8946520c1c94b885e65c49030917de98f2c3e543218788dbd2f2907005c15e2b8e703992c1dba0a92c8d4d5403d6b110785e20155f3f1ffbf6076674f91a5c756445fcb2082038edfcb46b4799030bf2052b33f0e959018a2ec1edf079382ad9649cfe7379201c60316189ec2774030008f657c91611c1e3ee778e97110ab0cdbf0e2d1cce5acd1060023e81f521fd03471079951cef8602f6daba6782073e9bef002d96720c688f6cd541cbbda06cd503d7698bfefbe3d69221f2aa6f0bf88aef43414bf457c63fc8b7c803b35f4f108b039007103521cef0ef385acacb60aba9ab08920fb28152b34351687ed8f450bee703ca2ce1e38729ed1baf3451874b2e4ba8243b8221f93950840c02c79edd26b102036b0334f65c8735e1b74a5cc33834ca848f35ce11f769d402b280de2fcdc1d1a703a73b8d19c7fb876c9a9693710acd41c72b2b94cbc1a1209a26a925d1976ee49f03b795e080ac163d8f472827319ac58d0192994f7fd46f71c3fd4254190314629e03c340cc146f42f955b333d394cb084715866610976f24542c02dcce449175c6e803cb0d3b9e0783e1a6047c81f1844f16bde833e9dedcd07f5cae3a5af490a4f24103e14a46720b1a64e5247e84d94ee322028fd68ee0dddf6484b0114748fe9264e403d635f4ccbd34104ae690471031e93f485c9462887c51ebcbbdf6347bf84cada303e06166092682337f8d71268046b523c656c9023677adac90d1ecbd558aef56ae0310e451679c063f623c4672bac8e2724352ca66b2f9e18f68969f3c8075b477e6032faae7c8b89aad40ba3b28af2886c0c059117e0f66387e615d86fb180fce03a90378596f13cc17ca7a801b1639202aa7a316aa7ee95c227aa53362f28631aca77903f59a9f129e1990764c7da7987c4e634634e26f6ae1470cedf4d25fc9e10fff3b03bdb7908a8a713adbd3ca78b96b0fd5b40c9efd7ca028b648fdfdedbc30abc615031fb8da8612a16adf80501c835021cb9c88aa33793c127b2fc8bfb3a24ab1cd450316bbdb95a4eda91cbfc2bd5f2c58f06621a2f9098efe60c8d754129af72e933a03858f7295b1b8568718e2852aab16f337f7e0b8608bcedfaa176e82f713fecd8403144f0448c8d2b8e4502561963f78ee20c8bcb227155a0594ea5fd0b2f764df4c0355d92c17add6751d796e7801b8e5bed83b844cf59ba7c3cb7dc43294bc1b86ad033b3d56cda8bd25fd54cf5e52a09a099e8f35f929773cbb4460194400ab0184f403355a96a4fa0369f262692aa121707c45ca222ebd25c74ca53c8561faaacdbb6005581e03e3cf9a19ef3c6fe5900932f91fd2ae94500b4f1fb7ff545d3e3d3eb3e00404039dbe5724bcc359145efe10c531034f7b479726a64f78c272c5ef9e12dbb1a7cb05581e03bf079394c606c7dddfdeca6deba124194d7857148257ad2f6d3f3026a00c0346f94caa5bd9e805581e0361995d1221a6416423941a96f26a459d0ece62f6ce905bdd81381304900c0b46652ffa28ef5803a7e48f0d73eaf7c47528d6ab59ffae7b4aec13c5eb888b7359f014521767c84803f4894f5d93a9fad81ddc3c915bba04e8b24b153184b4a38622d4e353288b537905581e0306e086e93a7aabcc3faa37564d8e4f56e85e13b7007907c62fd91e615007011bffffffffffffffff05581e0385a0f331b7e2ccee2f0ac545e7de4e3e4330b7a8fc119dd1c706faeee00c024745b7f74e4af29805581e03278e95d481a269f16a7d3b32136a0fc7b06d3f3dd97c0ff2809eeb2c700c0847496bd91e3140360459084060806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106ca565b610118565b61005b6100933660046106e5565b61015f565b3480156100a457600080fd5b506100ad6101d0565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106ca565b61020b565b3480156100f557600080fd5b506100ad610235565b610106610292565b610116610111610331565b61033b565b565b61012061035f565b6001600160a01b0316336001600160a01b031614156101575761015481604051806020016040528060008152506000610392565b50565b6101546100fe565b61016761035f565b6001600160a01b0316336001600160a01b031614156101c8576101c38383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610392915050565b505050565b6101c36100fe565b60006101da61035f565b6001600160a01b0316336001600160a01b03161415610200576101fb610331565b905090565b6102086100fe565b90565b61021361035f565b6001600160a01b0316336001600160a01b0316141561015757610154816103f1565b600061023f61035f565b6001600160a01b0316336001600160a01b03161415610200576101fb61035f565b606061028583836040518060600160405280602781526020016107e460279139610445565b9392505050565b3b151590565b61029a61035f565b6001600160a01b0316336001600160a01b031614156101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101fb610519565b3660008037600080366000845af43d6000803e80801561035a573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039b83610541565b6040516001600160a01b038416907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a26000825111806103dc5750805b156101c3576103eb8383610260565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61041a61035f565b604080516001600160a01b03928316815291841660208301520160405180910390a1610154816105e9565b6060833b6104a45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610328565b600080856001600160a01b0316856040516104bf9190610794565b600060405180830381855af49150503d80600081146104fa576040519150601f19603f3d011682016040523d82523d6000602084013e6104ff565b606091505b509150915061050f828286610675565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610383565b803b6105a55760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610328565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b03811661064e5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610328565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036105c8565b60608315610684575081610285565b8251156106945782518084602001fd5b8160405162461bcd60e51b815260040161032891906107b0565b80356001600160a01b03811681146106c557600080fd5b919050565b6000602082840312156106dc57600080fd5b610285826106ae565b6000806000604084860312156106fa57600080fd5b610703846106ae565b9250602084013567ffffffffffffffff8082111561072057600080fd5b818601915086601f83011261073457600080fd5b81358181111561074357600080fd5b87602082850101111561075557600080fd5b6020830194508093505050509250925092565b60005b8381101561078357818101518382015260200161076b565b838111156103eb5750506000910152565b600082516107a6818460208701610768565b9190910192915050565b60208152600082518060208401526107cf816040850160208701610768565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204675187caf3a43285d9a2c1844a981e977bd52a85ff073e7fc649f73847d70a464736f6c63430008090033005821032df0bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d48105472de36c8ebeacb6100c36249552e35feff0ee099005821035b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d054b19a1f4949930fdc4dd1d60bc475db158dd412230218a005581e033b19436bcea496c2aee002353ddab38b194f412c184706a51ec561d680070119084005581e0377f57036a7fcf856a19dfa659064c4bd70c2d2ac863fb981f124daa5000c014436ed0cc00303b0f7c7c10942d0c2199b1878a3bfd87e241f2c28377f9647f405c2f7549c310219d67b03052ad53e0ca8460bad96ef908d8e9fd2936b54efa94fa8370fae26343c448bda03cf17c86fb86186e53a494539ffcc64edc31d5f43b87729ba79b03a12b8e6d3ea03d9eabe0840b8eb5d2728314369c08325dc14296c69bbb9859bbfee013b9270fa03d0aad7dac75d8293b85432ea9c175799fe0b0e2e5ab158c51fc12c1a6a7ac612033f1797a4ecd1a6a303c4ef7b69174c30a1e11922fb0bf555b464f50a7abb73e90342ed76a206b828832d2c089b4dea936420f1bbf4a9b3745b0291b7ad4e3b75f10382b8bb0db4381f4a3a0a5f3e10e43defdec5860bf6d251bbda8d669dd8a49c010219ffff03b3f5664debaadbf77ff63ffd832f6e2fafcc1053b074529272fd250f4376ce96036dc20e65c8e1153f59dc09129fd5c51256a38b6c114b5d2f67416c7ea4ec2d8e0219ffff03cc4472ae244ae6d38d73677fcb48c3df4c1f70ab8b3508801518d58c3d21634b034021a891bd4eeca5cc83724d3462d3369e6cbac853d064ea39a089bbecda245b032f0a7f48e19da010a25f0c1b58f9bc0e38fd463883b3ae805d60aebba3256fa30219ffff03b0e5f2015b20bf121146e7d47d94b4b14bbda07c437c2b4c227bcffa1b3521a203c7ba6e03dc0e0a2c45dc4f6acffbc3099fab67782aa1f0a08a5df8dbe31f372e0328151c6d99da306e5c4b1a068494773c7477824306210a71e3caef74c5c4694203b8fbe7703a4ae4f383ee3171158c2956f2ffe16c4b365c6c1e2be64fc65947280331d87a2ea228085c7e269819ead6ec9b213ec8748a0753747ddc8140b4562ed10358e731236ea79ea74e8ad29078e6e8eec650314179c9f0701b2d7dedd41413760384c9670a4ad2e363f18544b7054fd403b268d0e8bbdc7f9bb1b8cead51efa6db037732ba91041f33a191a10b513c196ec663aadd16cb371ce7c8b407f612e0886503e37a397a020238f9f6081361792d864454850654a8bdc929d2846d633e68e09c03bcdb5bcea268fb7f1a19832cdd6d3abaef83a5dfe7d0b7c7b3806549f9f98eb503fd17b0e7646b5608d68e3771227d3c78a74c6dfb227ac8bef65a54a31da028a5036df3df444cf849704bfb45b6d262886a94f90819e587740c61f94dea658901b303e1507bd036b00adc896fc82fc26eacfb161e1a4661ce6d9154d787e666bcaffe031e24ddb1dbe22ff1b0108a9ca1203843b57747a97d8b6004ca1acc66ae1c01bf03ac97e5ddec245959b722f96783d223577097f569087dfb73837814b3ad1d03720338333a0a188df5a9bd70da0ab7473df6c549c3224ff8ff8c7b7322ba4ad4f9a40390806ae0b7c9a6d236039f76cbbc823511683ced5022d0b42b82968dea9e3fd503ce81ef336f9a2383d9b0c11d253bb795ca8ed4cb1a3081105ac00e52ffe29cef030e8c376d77657c18eccc0082e869563b955d419c1bbaa5cb4914e4b5e363dca303bea69aebeec18ccf086cb0f16414b36b30bd603d8721deaf472a59535ccc1cfa037c3514d7f4bbec457035feec233c249ec59d46f3d9a456ac263b3909279037fe05581e03a77314f1312048a6ded058a9c939954894292504c3f723c32c9953e3e008472ad7404194d80005581e0370d97d80c99d39ea7fca4f1031a948073fc809ab4dc2eac26d51f562100c02420aa90338b1402c0abcd20622f0d322303fee16b71b65a8d3a8898c1de46d832aa64cc905581e03a4491bc09576555fd7a182ff48fa7809b8b3ea2e352a517a6482f02aa00c034715e879d6d901bd05581e03e6c36cc1eb93d56034ea706f4883b39cf52d1cae86da61fe63218c29e0040205581e03305cb4377a479f8af1dee3d75710c5bf14afb6f51e86ddd38381e498c0040403e2a7be8dc666d4ab00461c3a249e968f16b21dd5c82aff5738824e9a06a5d46e014104033cb0b3895ef5e4b7eabb3a3c618fa46f742e559b10e178c5ad7cf116e2df0f8e039385202e83a0cdd1869d9175310327dfc5d2c056c31034b1dbd830b54196bbf70219c9e703628d500fabd4eaf7f906008f8f2578a9620190643cda667b62ac127c0721d8e303455bedb39e0e8282afbb360f73e48c36c988b72091b887ae6f36ef9d460eb42503e748af91fb3a69236c11c876a1f13a52def5edd1194899730b206bc4861430610219ffff033d4a4aadbda562c5860082a90d315ebf5ecb198f35d598352d3ca8b1364b433703963ba64693535d51a7cf0897efded9652b69469ab19c6dc6a9a0aba9485e2b020316ec0fe29dc47118e3db000451014011437399f06a7bce2c27790a743a7ff5590365694a61da0979cd26c8234057e03468117fe4d6bda21afa63c5157286454f94037345dd5e709991a8c00f932a8433cb5d6dd2566347792ca7ec64c025cf43d89a03c096873f469163b49ee2eab58c440b1ad49da5b74bc55612377d5b8e073d9db703e5aaf84c4c1f41bd8b3cdddbbe538a90224a10f428164fe8862799e5862dde3b03f0f21fbcd7122aae92cacb70b700ebb4849fc17912be1dfcaee5aa16833e885f03dfc0dfdc0a26b5a590bea2ae09092d84d50aec3c73ac6454a7207270dcf293b10219ffff035a9b7ccd8719ef705837d31910291ee22d972db948df19b95aab35f76120cd5f033c5220689bdb3d60bc76feaf52b84923eaf6a3985c327ee1241e7373d8c54049039af9deb1fbc8ec2aa08b4b499ffe81aecd1f9c8ec02a9ddbbc87b453b0b1b97903f0002c83226044b971cc3b1de322b4ba85a228a862d9b177e3fa58ca0f28c46703500a4481b2b97f9844d6ed76ab1ec653658c8da8ebacaa7bb4b723a862a9ed6103405bfaac09dcdf2c693ebc095d6feb6e5ace0541a4778df6e8603060db9b6872033740868f9b1827d319244d7f5b3d2dcc3620154e5ae437147c4830dcf724c31e03dc5e9d7e8acb12daaa4880d25e1bab0307601175bcae0d540a8cd362b8db842803c433d23279287909d104850ac7cf7c233c76097825ecd39bf818d997642dc52f035b7a88e009e03da6d1cda8f8e7e7c443ad4fdc53e200d5dbaa639b2e18de4ce1032da38bdc1100838dbd61dc1f7452240c996d4afeb7517b01dd4ef47662f1de8603a484632d3a68bd60161fa157435f56cebfdc45499a0b440678a1850bed73e121036252eefa86ac8f9d1f2ec2ed4f1253784343dc00a1234e1e4606ef07eeceb339035beb23d4814fd40739ed61b635bf355c214e2b7c2c14f478d6caf733e99562750219ffff03e04c1d5df102b45d2c286795adc8be4144842fed09ea364fb4700264cde95f250369360118b6659bf7e227f12dfabcaf1c844fdc08bee8d5d8acd1129e9cc37d19039b6b9b21bebb982e0cfc90904520ae1b80c16b28be52bd3cc0a193bccb015ac003d875704a858662ca5adf710e1955cd7e8ffdc7915cbe0bc4afba2789c5151b910387bead2dd983115c5f3657811c8389d28f5d758517590918457dfb6946472c830368da8f4a4073e4e9fe3f7ace2d04736dc9535180709487f26f52156945903e350219ffff03b2bfea8389ee2f62732b7658745634161e8aa94eddfc9baa22dad6c31704c926038b8e2d5c2693568889321248295b1d0f4f58d76a6da2173a026ccdbffe8083ff0346ff194e0f46c524cf5f8e840027b7fe3c4e2f61b6f8b06ce7969201d1084ad203e03f1e8c30b2a522c8d9d03e87c5beb1b92484be49c8be09f8427e7f44ef9aca0304f3fe3a44de0fd64cf38d99dd4cbbe7ce71adadc71d1bdd31d747c434b5d9f503e75328cdc0db76f93c284a9978621223d5eeef279e72b8872bf380faf51773c20326bb8fb29401cfd2b91442ce50f57c9af0c1d5d245e730a81baf3c9133c9085403a561c8d81e7630b97d9c59c5d8f8054294237906fd0a55275380d33ac10948d00330c43ca59d75b8363e1b76f6014ab76d781fe1fd51aa72f6455f83ec78470a77038d435f39930a9d486a09d94536d7114461222d9e9d2bb7f40442137112609726037fbe48c467ee7707eaddd7149821cd144ef2c0062aef1bc1ceec00f15f02964b03ed82e2bc51cb6ba251e5e592d7ab04321fe8dda50e54a329b6f1bca027be7d2b03fc10dbce566e509dcd09c89b2b06edff91ac1feba372daf7fcf0ff832a50faa403b7ce3bad2df49036f0f344ac21a9a740a808f414cb1bb1ebfe23101a625d1da50374e6bf1a1f02a254ef1a9fc4ac20f15aee2bcd2e2ec61fab300945b1fa252ada03722064792679d353f452f30ddbba2b69368cae0ce052c3c00021fdbd739fda5b035612863fea93b2fd6e628955a53b7e0c25cdbfc978a5aa38de443e1503affc63039840c68b82ce008670c1f10b8e43f8c9ac4dcff02a88315728be7c5ab753286c034d651042ce6c99937d96498176a27b81785c270a3b1a0098a1cfcbb9e6cb25cf0373e5f0f0ce6852e10e4a300136958e8037ffc5cd6c9a7ef26965aaa62fbf481b0376375728477bc50f7b8316edbd0803628a683ec562c2a1b86f921169bb270c3403e68b41648207fd861a27c6b800b6f51b56f45ccd59dc6e1a54932d1cbf40b41f03976fbe7730d35d77bac2a3054b820b588a058fba43169f7b45aede7b1c5b20ad03d45bb983044c1554827f4432a8920b3617ac9b23311fca9a0cee5835d4b61c6b03e79837277ee27d3b7d6d0eb77296ff05cd7a8287ba084b6fc8627a52d99e71210376fc05cf59608a8e76b25e124d87a834b62b41c0a03ddeb6f0f4c80c07f08217032d524d0065062550e37204f529742c0bb1669a1f678a3a393e8038047bbbfd1903937442d4c001c18603b6a579d2bf915e0f07e18a71298dff337b346fd96aee7b032ad5831960751f3a9b97dca090f8747b4656b7cc0d83bbc9b952ef6a1d344d1c05581e034c4c24710eff40df54a1795d3a6e33ae7f1accac0b03c325c54006ffc0040405581e037c317c45725e0bdcc23ce2f8d41f82325610f9df126094228b78e3a7f00c1957c4482ad7741c77328e980301dfa12157392fc2e76b22b2764770390dcc1ffc00d8f8bbedc3352a0a636987031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e0310a7843fe6d762a104fe9bb050b8412fe3597c80ca9fc1865ce777f77007011bffffffffffffffff03ba0807bc578a1d17c0603d05143108bd8d66f2df44b91ec4c3feeb364d3ece7805581e033abc3585174d5245ea6df78ec95c3bdb119bb939e77a37f813b9d82d100c0245012a05f20003106d1e643c359d1ba6b0f6d32896fde775a3328e4460dff4d3d0a4940b1d27af05581e03706e8ab4d96cb7fa491d76d2644484fbbd88b09d8d3d3850575d814e5004040219ccf403e3322b85f2ea30fb5c288835ecb6fcc2f00e02fe9ca05a6e7835caca80d4470b03477d8b1e572f5f079e5a203ba22edd14f1ee90906ef525bbd7c377313059f0a40305abb9a17e3ded94048bf75a46e1b8c611f29c17b76e157a9f5984d8f44e11fb033ede188747210552e68b37ac851435a22754ef9995d4050bf0f2c740114f115b0379241449b90d2eda0591bfd333bb780b9d506eca24ea3d5221b3f56703873293038afd955fa1f57ae1fb85e105f3f2fe8be44d2fee2dc7000ba18dde9a79c27ef403d5759e57e2abb569d786940ce594b38712ee1dd944f7686dab2950e508a564eb030c41cfb76b9f40763a0a5bda63b9ffd42128ba4d0ad8fe76c14c5389e2d8e26403a947d3f93b169d33e15bf4ef1c0ccb1403e9910b8e2bd0f0566e5745db5249c303455f3564e0f8f6be0cb1e9c1fdb0614fbd9c2626af4f444791988f6e57d1d3ef03c2d1047a1f384c80704046313657a2089339679a75aba03cb986196eb334755503f05456093775c1809cb3d757de0ce81ac807d7fa6b7cb93b86035df82c11a11a03dcbd4ab0df2b3d5600b0b87fbb1696a30826aefa57f5df48f9a2a3ab20e25c830378a014fea2db8fcfefaa35a92763ba6b2ebce952f9f9de91317351d6e07104c50219ffff03ec36e9d1dae7d96382d6978d2ea4de053c29c15a2869724c76348bee664ea82903f5e52635b27dc2d648952a7f02034e1df82ff77e643a50a5e37f7c9fea06c3ce03f0920983acce621b862f9a1b22624338af9f5fbc8727da5ba42437ed3ccecf6c0316bbfd2ce93ac1eef72b2ffab150ff4d4b6d658fedd318661fcb1b3e0faa2742037e368f5916fea610482d926f96c3110b5f6d6f51f42ead932be3e09dfbc01279036eed3b75992ec7e7fb1a407fd887ac903ced07bf0daf4e57d87630cecc291ebb0219ffff031e56d724f60b827f2ba6dcaf0f75131a99a0cbe7dc34236454976803ca03b2d503684f15ea041d69dd63b1a1c4afdc97683bfe870b73045eade45eeac1eb06755b0219ffff0308cd1c1743cca246c21e635cebeeef999333e4a1864258fab4db359a70f33009031ec2643af5f4298220012aa3a3d47bb5340d8ff5b29b8f1358d94677ac7ffe2a039d3f25c3fb75994b8a7a6ae95ba85ba0013bea6828b8a8708877e81b6d74a79803958d861e976075a25a2be5a9e7f02704af98db32b4874cab2e731e4f169c73750385fde905f73802cbab38f0ca065af860778ca92954088191c2f3efd04981b68b03bdda68f5dc973bb1ce40a2bc93c38423b69ed8e1c166155c346f7acf52ce604703c8462452527b591f2990c5a88235a8ee54c047fdcd401961347fbe5f2347ac77030a3ea46540020bf404aa6e0f06ffc342c799bc901d11de92e275e0ea510b8746036e38daeb6577d962644997c9adf123636fa13c971c88d80253feb02b7240bdf9032a35e8e4d199b5fb6826380958ae17f84abc92f3aa3f0605a423a497ee9d0eab0219ffff03d3b1695416e8516db9dc70c539bec3a7ef4e948bdd8e4c8bd4a8142647c425910322b7e5d07fa43f1bc2c83899ed63d7867e5b08d4ac0065f4c45439fe56c1c3b903afaf8fa68933f7c219371e9b794639374cadfc45796ebd92602aeb17882d4a2703e8990fb473397daf4e6e26881bb6e5c9510ec4317b0c99c3bcba969d2fb3016503703bd04b3a2caba127c12dd43a750b917cf5a63d8a57bf87c8491310e90049bc03a8ef94e7470a59d7ebc2cba18796a51b7f9b9463cc9cc84fc608f551cce62555033f0eb5e73e4f5049d8619d9f0ee346f981d1ade03e696d92b46d20827496e66c0325cc5e0b8679aa6abe9da2226b2f91452ae5ce793d98dab12ca7d07248da9a8603505a543cc115bceabd3ddb7c22d11ca540fe7ed00ef7d055afaefff39a31b114035cea0c114494d45080d8684460cade1e3b1d0726ebf70902f576723d206d255d03b4e44ac86081a214dc891ce4bbe5e8965ac0096464e5f5796e440e1213ae1c150325cdce4db5d8715d44dd09c5681e22ae44bbccee9d4be8035fd97065ac999d58035abbacfc99f8fff8000889f9e0997abde75c04f327f71606c06ef5adaa64c5310395d3fa14b785be168dd04f7c0f160a7a9d70726d3c3675d5deffb58d24e6df0d03724980022b355d1551a7502c6026343d53381940e4cde126fbd39082ef17a54903f72c6fbe9eabcf1cae2a6f0e9254fe5ad5023b8322252c04ad6d705fdeb6af860398cb346fb86dc6f5b03466a13e302e08245d39492a46485de1c8769125083fbd034a5d1fee5711199d0252f2b38fcb6c3abd647229cef8dbceaed6c15d13c8e48b036031037c16879c3b95fd853a46db328829d7384373f8063680a0bd0e31bcf9c7030de2da7f5d91941eba9958cd006dba4674a96e326c3c828874d17e2a9845da1a036b81c996740058e9e11296d02f390921dbc7bbd6443e020003d93e2d8c7c9d300330c517802bc119247c3a66d7041db361b6fc7d323deb159f4d2409a598be29bd03891af162c164ed94c0c55552e7c6692f1418b441d9d7b57a43c880dd737243f003dc098cd3ee8e81344bdca6f3df068d4ac5eb9b1dc74979e82219ea6eaaeaef680348c035c5bd5655ae631848a49e02ca916f6b7dea4d858b019a7782f6e4b2059f03bc8b8a41871c702447d7f3926e4f9e2d6aa145c42ffafa6e18472444223a23c0035ec4f9782a17475e769ce20ab42ae63d5ff08052cd26761f9274916bfde3856a035ab5b845d5ed10bc11a247b830cff5c3f16b08672d86c3109fce7c6c424e71d8036fd0d4b717af69ec850b973256ebdaa9d8eb3981375454455b649b6146b3d644035d3d23f56515c6a3b02bbb873670de8cb87a4fd431105126b6927a797d1a6218034b363f5f8520065fe8d20e747d9c2b7dbf44187d463839de04c50854d4b5095e03e8b00a0fb4fbb55533e6c97fb872571afeea2bdfb814cf820602bea41cebd16b0375bf701a8d9f3ebf89564ef95f5997b9f0038e346483c9c14046b503a2e0eca6035852d187c904ff7b10ee9c2078648f9417c629be8573c0b3a06cdd7542406e6105581e0383dae6355f2e01f96b687317b800e32afa93f0364e16172a4a836dc1800c024701a9a4bdc1400005581e0377ff4586c2a1928cc60a58817f26042e2659eb2c7903cfc5951e9161800c024501aa6a2ba005581e03aafe70437175e75f6a980e4d1ea2641dcb35aa0d50e2ae68aa477015200c0146bc288c8a2fc405581e035e318bd32a5f9adde01331e9cd62545c0aef92171e2224b8c1d03b9240040105581e0361c5cc74fb4566b736b0138a6769ad7ca31fc06e56d32a79078b2c7b40041104590a2160806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100e6578063f851a440146101065761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61011b565b005b61006b61011b565b34801561008157600080fd5b5061006b610090366004610895565b610135565b61006b6100a33660046108b0565b61017f565b3480156100b457600080fd5b506100bd6101f3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f257600080fd5b5061006b610101366004610895565b610231565b34801561011257600080fd5b506100bd61025e565b6101236102d4565b61013361012e6103ab565b6103b5565b565b61013d6103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481604051806020016040528060008152506000610419565b50565b61017461011b565b6101876103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101eb576101e68383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610419915050565b505050565b6101e661011b565b60006101fd6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103ab565b905090565b61022e61011b565b90565b6102396103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481610444565b60006102686103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103d9565b60606102b183836040518060600160405280602781526020016109c5602791396104a5565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6102dc6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006102216105cd565b3660008037600080366000845af43d6000803e8080156103d4573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b610422836105f5565b60008251118061042f5750805b156101e65761043e838361028c565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61046d6103d9565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a161017481610642565b606073ffffffffffffffffffffffffffffffffffffffff84163b61054b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016103a2565b6000808573ffffffffffffffffffffffffffffffffffffffff16856040516105739190610957565b600060405180830381855af49150503d80600081146105ae576040519150601f19603f3d011682016040523d82523d6000602084013e6105b3565b606091505b50915091506105c382828661074e565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103fd565b6105fe816107a1565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b73ffffffffffffffffffffffffffffffffffffffff81166106e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103a2565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b6060831561075d5750816102b1565b82511561076d5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a29190610973565b73ffffffffffffffffffffffffffffffffffffffff81163b610845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103a2565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610708565b803573ffffffffffffffffffffffffffffffffffffffff8116811461089057600080fd5b919050565b6000602082840312156108a757600080fd5b6102b18261086c565b6000806000604084860312156108c557600080fd5b6108ce8461086c565b9250602084013567ffffffffffffffff808211156108eb57600080fd5b818601915086601f8301126108ff57600080fd5b81358181111561090e57600080fd5b87602082850101111561092057600080fd5b6020830194508093505050509250925092565b60005b8381101561094e578181015183820152602001610936565b50506000910152565b60008251610969818460208701610933565b9190910192915050565b6020815260008251806020840152610992816040850160208701610933565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205f078eeb5690e33d91e7b90c18c8f4a8b449ac85285d1fee003c4e18e239c87764736f6c634300081000330058210336b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00543fffbadaf827559da092217e474760e2b2c3cedd0058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563054cad7828a19b363a2b44717afb1786b5196974d8e0058210305787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0544dbd4fc535ac27206064b68ffcf827b0a60bab3f005821032df0bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d4810545613af0474eb9c528a34701a5b1662e3c8fa067800582103f1e9c6a48907b8e53957e32f046cce4131abaf245bb57ee9f742f864a3308f8054912ce59144191c1204e64559fe8253a0e49e6548005821035b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d0544e8c24617c4592895d52ac6df29d9647e9d01bb50058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688041010058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf605472ce9c846789fdb6fc1f34ac4ad25dd9ef7031ef02190cf505581e0314cf533ea77ef5e0ff142a62f729cc6d1d6d64023f88d4795fa1c739c00701190a2105581e03ff7be0c10a509341d28e814d351cbb7710d053fc5b972a11ee88bb90d00c014733823cc3569fc805581e03df5bde497e78b21ef20c922ea6366e7d06a210f5cfcb1fe7c144cba4700c044653b2a11de0f0030389310712326e492601ecf16650976993299f017071ba802f6f48ec30f75d2105581e03a50c966c7c2b09f6b2cd69d3b9325b9b3d358483a9cd6dd718a5bea990040203e371ae9adba6e386ac532e8e6a51c874aac8f74ec9967a5f8e64d903b2cc163c035164f22255aad1217fb7dffed77d16661156d29688f495adc1ab2314051b3a910605581e039731068be4bba9bdf61876626665be9f85a28879f49357c661ba1a65a007011bffffffffffffffff02197b3f03cae5b7c8be4166af903fe76bcacfc43e20caf56aff90fb1ba5256bc899b63cf703b338f1a28b5f4f649d7974576684c82e17b4c9b3015d3df6efd3c5358015a30c0219ffff038961255035508fe5bba8b04b55bfc3b4106d0be86454fb3c2fd49da30e63f49f0316622720944acd4382d1b464ce5dfa08a162b8dc56575e1fdb65f1bed21b7eff03aed567d6ec39c8fc8b6467ef615141fa19a2dfe47a8bec981359282f85000c9b03960f0f0bc84af7742647ac8c8ea0ccfe80bececf855b90716a10ab6dd253a06403722a1c16168413f901ccd4e39374f4030aa90e05c80b5f0d3928e871c25aa1250219ffff03f2433b6028ef9ece08dd0b6c5c51f438e15e68457afb225d8fd28241eb978560036c83b4c243f5efac8f49ef9a62f3f562f6213430b98140f4005409b0f096dcb1036c04b1b137e4400c819df1aa8227617393f26dad46ad2fd8074e01315daaee7203af5f068b2762992e7650eb2d943d0e4719ba854d7310800f33c797b9036f7ae003b904e9270354f27b9325269a789458daf9ac502318989fa03e1fc667c5236f4e03585601e34ada74169d8b076f3492e6ef3f59f8d010d538062610a96dbf90928003da811470f8ee2f0500013f5fc0d7785c24f1b0115729fee5c18d027fbeaf8c3703b9199afea903a23e105d62a74b0e0c4f005313b0903f712058be512e82875ca003e7de811aff124e68ab6db8d1d166162cddd985af254fd4cb1a60a4b3a1068eca03830faab92e30d5141c2843533281f77ca7b9c3e62eb797929e06a791e860a27d0318bde1cc2a445fad414868338c03923100fdcf4f1897cb48e60096e1da6a25fa03e6140cdf256f4a84876bbd3dfb243c2222c1d6d343374dd4981142edbc26117e034bc784b824b76738437c15de70862c1998985b95aeab4e581f0f0c9327d3a5330219ffff032eaeb3da3dac6756eea63edac0c2ba094acc287870be089a82fde761530c78e8030051e746eca1eb6ca7cca49c505e98752154f0e12e326ab396d8f1a8d9a7663603cf2bba71e30c8900f523bdb6c49adfb42501928b0fb6c7de7440fdc83acfc4ca03acdb2426c9580f115c4bead9680e3ffcc766653dc7d2f6b906581012f06486fe03c164d74a3bb1a9938e0d1aa8cd0f5d048cf6b4bb2e677d7ca15fd3495302d0f603ff4da1216c42f54cbc4f8083288637106b730812c8bee23c43343bee1b35c0ce0335a08483b41be050960ac6ead6f25c7f4096ec7d69d4d1b4b240c2f24ae4aa1103b1e3499468264c3b0f9d47b896472a2d4133cf82d5f2c1e48a4a6764a01fc19f034c37a3fa365e0a35bf10f928ad0163480a28e98588340c024d667d11a46858de0377ae1b3705b977aacd377522dd6a0c1d7db091596913dfb388f39d33ed71d45e0390002fdc41917791cca89e8e61d7a63b3781999852c712e6bffc76489ce1f2800366fafbc420eb2632a9acedc7d580e722cd86ea795a5f19846e05e8f9c61bd7a503f1b164f57cd110712610de2fe57d0b171051b42be5d237d35fd4e4ca3c52f46703ec80b1a68fb06ec9af995ead679535a20bf2a3f2126fbc7fbc5f2b355f53d3a30369c2b2f277bc27a0c41b31d9697cbe85a5902fbc7f385a4b43c41198779005c003213c2b0c978aaf8127c2cc20c143d5fc358e4cec53ec3b5fe3b0f6e5ed16799003b9246b3aa815a63587d58db23f4c4946a432aeee9dd89a464ab2e48cdb614f45037627690a8ee0ca53c97dc7cd243b4da33f400d5b4bd849ffb3e9abc5af8bc23f0367d3fbbe00333d9e2b7bf98abf3af4542ef252d2ec41940c3c4c9e68b31a0a96032fb00ea3638f75ad9abef3a6b8e56a6ebec8a933ff7672810fd34cae74532d56035d3425a69c95ea2053df6e2fbc041b24fc2b3aaaf28f371395048ff13bbf417803053678c488be912d0c22b932d956d72cd074e4bed9b9adc7288b0c38ce9eb13f04593d32608060405234801561001057600080fd5b50600436106100df5760003560e01c806387cf3ef41161008c578063c9c6539611610066578063c9c65396146101d3578063e380f7281461020e578063e6a4390514610216578063f46901ed14610251576100df565b806387cf3ef414610190578063b19805af14610198578063bb44dff3146101cb576100df565b8063574f2ba3116100bd578063574f2ba31461015157806372e5493d1461016b5780638252c4ed14610173576100df565b8063017e7e58146100e4578063143669ad146101155780631e3dd18b14610134575b600080fd5b6100ec610284565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101326004803603602081101561012b57600080fd5b50356102a0565b005b6100ec6004803603602081101561014a57600080fd5b503561040d565b610159610441565b60408051918252519081900360200190f35b610159610447565b6101326004803603602081101561018957600080fd5b503561044d565b6100ec61055f565b610132600480360360208110156101ae57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661057b565b610159610672565b6100ec600480360360408110156101e957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610678565b610159610acb565b6100ec6004803603604081101561022c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610ad1565b6101326004803603602081101561026757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b04565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff163314610310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604a815260200180613b03604a913960600191505060405180910390fd5b60025481101561036b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605f815260200180613c9f605f913960600191505060405180910390fd5b6004548111156103c6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526069815260200180613bad6069913960800191505060405180910390fd5b6003805490829055604080518381526020810183905281517f0848a37db6722d2184f41f400b94deabf111bc1e91cabe803c3d77c55d6c2156929181900390910190a15050565b6006818154811061041a57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60065490565b60045481565b60015473ffffffffffffffffffffffffffffffffffffffff1633146104bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604a815260200180613b03604a913960600191505060405180910390fd5b600354811115610518576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526060815260200180613b4d6060913960600191505060405180910390fd5b6002805490829055604080518381526020810183905281517fb77bbff2aeb4499c58b9cc772626516a974fb6e0974f0c5b25974b28876328c4929181900390910190a15050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1633146105eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526049815260200180613c566049913960600191505060405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083161792839055604080519382168452911660208301819052815190927f83b887657b0e2cbbed6d7b9468d78fe27ce257d950e1c7e36572b3a24f82e41c92908290030190a15050565b60025481565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561071557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f43726f44656669537761703a204944454e544943414c5f414444524553534553604482015290519081900360640190fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610610752578385610755565b84845b909250905073ffffffffffffffffffffffffffffffffffffffff82166107dc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f43726f44656669537761703a205a45524f5f4144445245535300000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526005602090815260408083208585168452909152902054161561087d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f43726f44656669537761703a20504149525f4558495354530000000000000000604482015290519081900360640190fd5b60606040518060200161088f90610bfb565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f5604080517f485cc95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152868116602483015291519297509087169163485cc9559160448082019260009290919082900301818387803b1580156109bc57600080fd5b505af11580156109d0573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff84811660008181526005602081815260408084208987168086529083528185208054978d167fffffffffffffffffffffffff000000000000000000000000000000000000000098891681179091559383528185208686528352818520805488168517905560068054600181018255958190527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a35050505092915050565b60035481565b600560209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff163314610b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526040815260200180613c166040913960400191505060405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083161792839055604080519382168452911660208301819052815190927f8f93286d6f131e956d1aa672d3ecdc817f24efc20b223b0de5d591f454edc34792908290030190a15050565b612efa80610c098339019056fe60806040526001600c5534801561001557600080fd5b506040514690806052612ea88239604080519182900360520182208282018252600d83526c043524f2044656669205377617609c1b6020938401528151808301835260018152603160f81b908401528151808401919091527fa48bada1449373da82f0e667f132d2b1fd6cc7d50959f25c21df1ac50ad3f2c5818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612da0806101086000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610def565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610e28565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e7d565b604080519115158252519081900360200190f35b61036a610e94565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610eb0565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610eb6565b61039b610f95565b610400610fb9565b6040805160ff9092168252519081900360200190f35b61039b610fbe565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610fc4565b61039b61109d565b61039b6110a3565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166110a9565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611463565b61039b611475565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661147b565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661148d565b6040805192835260208301919091528051918290030190f35b61026161192a565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611963565b61039b611970565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611976565b61036a611b6c565b61036a611b88565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611ba4565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611e70565b610257611e8d565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f43726f44656669537761703a204c4f434b454400000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180612cc06027913960400191505060405180910390fd5b600080610767610e28565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612d1f6023913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43726f44656669537761703a20494e56414c49445f544f000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d612073565b89156108e1576108e1818a8c612073565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff16636c813d29338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612c706026913960400191505060405180910390fd5b600554604080517fe380f72800000000000000000000000000000000000000000000000000000000815290516127109260009273ffffffffffffffffffffffffffffffffffffffff9091169163e380f72891600480820192602092909190829003018186803b158015610c4757600080fd5b505afa158015610c5b573d6000803e3d6000fd5b505050506040513d6020811015610c7157600080fd5b505190506000610ca6610c8a868463ffffffff61228016565b610c9a898663ffffffff61228016565b9063ffffffff61230616565b90506000610ccd610cbd868563ffffffff61228016565b610c9a898763ffffffff61228016565b9050610d056002850a610cf96dffffffffffffffffffffffffffff8d8116908d1663ffffffff61228016565b9063ffffffff61228016565b610d15838363ffffffff61228016565b1015610d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180612ce76038913960400191505060405180910390fd5b50505050610d7c84848888612378565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600d81526020017f43524f204465666920537761700000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610e8a338484612634565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610f805773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610f4e908363ffffffff61230616565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610f8b8484846126a3565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff16331461104a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43726f44656669537761703a20464f5242494444454e00000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461111c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f43726f44656669537761703a204c4f434b454400000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061112c610e28565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b1580156111a657600080fd5b505afa1580156111ba573d6000803e3d6000fd5b505050506040513d60208110156111d057600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561124957600080fd5b505afa15801561125d573d6000803e3d6000fd5b505050506040513d602081101561127357600080fd5b505190506000611299836dffffffffffffffffffffffffffff871663ffffffff61230616565b905060006112bd836dffffffffffffffffffffffffffff871663ffffffff61230616565b905060006112cb8787612784565b60005490915080611308576112f46103e8610c9a6112ef878763ffffffff61228016565b6129b9565b985061130360006103e8612a0b565b611365565b6113626dffffffffffffffffffffffffffff891661132c868463ffffffff61228016565b8161133357fe5b046dffffffffffffffffffffffffffff8916611355868563ffffffff61228016565b8161135c57fe5b04612abb565b98505b600089116113be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612d42602a913960400191505060405180910390fd5b6113c88a8a612a0b565b6113d486868a8a612378565b811561141657600854611412906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff61228016565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461150157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f43726f44656669537761703a204c4f434b454400000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611511610e28565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561159357600080fd5b505afa1580156115a7573d6000803e3d6000fd5b505050506040513d60208110156115bd57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561163157600080fd5b505afa158015611645573d6000803e3d6000fd5b505050506040513d602081101561165b57600080fd5b50513060009081526001602052604081205491925061167a8888612784565b60005490915080611691848763ffffffff61228016565b8161169857fe5b049a50806116ac848663ffffffff61228016565b816116b357fe5b04995060008b1180156116c6575060008a115b61171b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612c96602a913960400191505060405180910390fd5b6117253084612ad3565b611730878d8d612073565b61173b868d8c612073565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b1580156117a757600080fd5b505afa1580156117bb573d6000803e3d6000fd5b505050506040513d60208110156117d157600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b15801561184357600080fd5b505afa158015611857573d6000803e3d6000fd5b505050506040513d602081101561186d57600080fd5b5051935061187d85858b8b612378565b81156118bf576008546118bb906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff61228016565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600881526020017f43524f2d5357415000000000000000000000000000000000000000000000000081525081565b6000610e8a3384846126a3565b6103e881565b600c546001146119e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f43726f44656669537761703a204c4f434b454400000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611ac39285928792611abe926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b158015611a8657600080fd5b505afa158015611a9a573d6000803e3d6000fd5b505050506040513d6020811015611ab057600080fd5b50519063ffffffff61230616565b612073565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611b629284928792611abe926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b158015611a8657600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611c1357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f43726f44656669537761703a2045585049524544000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611d74573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611def57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611e5a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f43726f44656669537761703a20494e56414c49445f5349474e41545552450000604482015290519081900360640190fd5b611e65898989612634565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611efe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f43726f44656669537761703a204c4f434b454400000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905161206c9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611f7557600080fd5b505afa158015611f89573d6000803e3d6000fd5b505050506040513d6020811015611f9f57600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561201257600080fd5b505afa158015612026573d6000803e3d6000fd5b505050506040513d602081101561203c57600080fd5b50516008546dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416612378565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b6020831061217957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161213c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146121db576040519150601f19603f3d011682016040523d82523d6000602084013e6121e0565b606091505b509150915081801561220e57508051158061220e575080806020019051602081101561220b57600080fd5b50515b61227957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f43726f44656669537761703a205452414e534645525f4641494c454400000000604482015290519081900360640190fd5b5050505050565b600081158061229b5750508082028282828161229857fe5b04145b610e8e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610e8e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff84118015906123a457506dffffffffffffffffffffffffffff8311155b61240f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f43726f44656669537761703a204f564552464c4f570000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c01000000000000000000000000000000000000000000000000000000009004811682039081161580159061245f57506dffffffffffffffffffffffffffff841615155b801561247a57506dffffffffffffffffffffffffffff831615155b1561252a578063ffffffff166124bd8561249386612b98565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612bbc16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff81166124fd8461249387612b98565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546126d9908263ffffffff61230616565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461271b908263ffffffff612bfd16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156127ef57600080fd5b505afa158015612803573d6000803e3d6000fd5b505050506040513d602081101561281957600080fd5b5051600554604080517fbb44dff3000000000000000000000000000000000000000000000000000000008152905192935060009273ffffffffffffffffffffffffffffffffffffffff9092169163bb44dff391600480820192602092909190829003018186803b15801561288c57600080fd5b505afa1580156128a0573d6000803e3d6000fd5b505050506040513d60208110156128b657600080fd5b5051905073ffffffffffffffffffffffffffffffffffffffff8216158015906128df5750600081115b600b5490935083156129a457801561299f5760006129196112ef6dffffffffffffffffffffffffffff89811690891663ffffffff61228016565b90506000612926836129b9565b90508082111561299c576000612954612945848463ffffffff61230616565b6000549063ffffffff61228016565b905060006129788361296c868963ffffffff61228016565b9063ffffffff612bfd16565b9050600081838161298557fe5b0490508015612998576129988882612a0b565b5050505b50505b6129b0565b80156129b0576000600b555b50505092915050565b600060038211156129fc575080600160028204015b818110156129f6578091506002818285816129e557fe5b0401816129ee57fe5b0490506129ce565b50612a06565b8115612a06575060015b919050565b600054612a1e908263ffffffff612bfd16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612a56908263ffffffff612bfd16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612aca5781612acc565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612b09908263ffffffff61230616565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612b43908263ffffffff61230616565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612bf557fe5b049392505050565b80820182811015610e8e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe43726f44656669537761703a20494e53554646494349454e545f494e5055545f414d4f554e5443726f44656669537761703a20494e53554646494349454e545f4c49515549444954595f4255524e454443726f44656669537761703a20494e53554646494349454e545f4f55545055545f414d4f554e5443726f44656669537761703a20436f6e7374616e742070726f6475637420666f726d756c6120636f6e646974696f6e206e6f74206d65742143726f44656669537761703a20494e53554646494349454e545f4c495155494449545943726f44656669537761703a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582072febb9060e99697097d30ad78467c0deb02dffa096d3e1e0b5f205a8bec5dfa64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e74726163742943726f44656669537761703a20464f5242494444454e202d206f6e6c792063757272656e74206665655365747465722063616e2075706461746520666565546f4261736973506f696e7443726f44656669537761703a20464f5242494444454e202d205f666565546f4261736973506f696e74206e65656420746f20626520736d616c6c6572207468616e206f7220657175616c20746f20746f74616c4665654261736973506f696e7443726f44656669537761703a20464f5242494444454e202d205f746f74616c4665654261736973506f696e7420636f756c64206e6576657220676f206265796f6e64204d41585f455645525f414c4c4f5745445f544f54414c5f4645455f42415349535f504f494e5443726f44656669537761703a20464f5242494444454e202d206f6e6c792063757272656e74206665655365747465722063616e2075706461746520666565546f43726f44656669537761703a20464f5242494444454e202d206f6e6c792063757272656e74206665655365747465722063616e20757064617465206e6578742066656553657474657243726f44656669537761703a20464f5242494444454e202d205f746f74616c4665654261736973506f696e74206e65656420746f20626520626967676572207468616e206f7220657175616c20746f20666565546f4261736973506f696e74a265627a7a723158202438d13eecdd867ca485519fe3630a38dd47fcf6b74eb29ee809d4273b4e9a5264736f6c63430005100032030109b6ad3291a3586b0c828f4afa7017f5b51e00b1911a38ba6e593acc01843203fe7a57720e9dffda8b5dd15a53c05b6f8af39552cd1d5fce8f2b282ed7e66ad603c8498524035bc7539def4d991df803b1ad44b9e3cda202477a6c22caf4037e87036c3e155d085ba0adf42bd2909bb00a79944e096d61da81ae0dd46291a02ddcbd0322067ee7044481f1ce7a058d533ddb7793d2572fb5954c1866559830ef752c9e031d4693e352125125416840d2ba7b9faf1c05758453594d7505bed878c6896fc9039b74dae51a7b33eb6866e209d3cc48b1a70ac6fb0afbda90331f14c0bfa85a54039263d1a17f46ccf978f44aac352deda241650146cf29e50b3660122d49c239bf03df8fc5cd4cb395805ebfb297fba6e1684b8b33c10c730011640c41ada96ead3a035c544aa2ca08b36822700b3cbff52632161cbfec6b5763b7d7696ca3bb7dee4203a0778a27f119e2cd6b55ff470e1af327a7cd328a1d42a7ca6690d1b3f0c46bbb0308d79ab420a39e026fe38d0b3b895c1cf1c37fba445f2e55ceb98faff919189b00582002c0c4ebc7267caaa86ad1ac9999594abb7fe18b2bbdcbd42491a7d2618fa91354b71153e1629ec113ac43d4c92f63bc8f84d0cfa3039c70642f9092d5df3be8c3120a218b927e95b88b3af9a554f13f7beb6ad9cad00058200375a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0411e005820039d69518abd0c0f11bb67f31715dbc89bef59497a9545add1ca791e7db27fd0548b59be2fc6fccc2256cc4841843a13ce29da16bd02194020033784dd7b092c29cf2db13da84bd056c0f1bbc32aeaf2fec752b32823c8f8b69603ed2c17bc0f0407fd4d3c74e0ecc4acda9826e9ac29c3606f0d933a02f56128c103a74b84c9519b3685988ad2486b84d26117d3d65ba711b91bf8a2427bdd611d64031b5b3316687bde1edda34f2453c1b39eb39fccaf3d98fcd654d20c2b0a37e0e300582002aada707ee09a831e478b54a2261444d24e45db0e77167333a1d197d06acdf354d3bf46376bc1f497020e2ed58e1e62f940a09fad0058200290af5ccfd4a5e562b4ee7d448c5ca35d2cfbd6944053e3fcfc5f594d68d909544811c9384bc8447945806a2319159054b228fda703815f976bab2ecebac4b01a624f6e0f7e36edc70c0ecda07dd7e6136272027589005820029d34a13207b524c3dac953bb9cae023b49d68bb252151f594450e14be2cef654343d73a133e8e3fee2e98576bf54c79b100e7f830219575f03186080e4309bd1b52bfdaeced97be84cbc3f9dcbb592b969fd26c40b1e3c7c6e03547e77b6493eeef479d42ec3327d73df3443b1b7bbd3af1c40b4e31e3bc2e7b10361d0bd69d33c5c30ebba7b5d1f30e702995810d36cbf0acf169fa8786f8ffea50219ffff05581d02625fbcedc497d11b7189b13842bcf9344a56062a9a10dcda95198ace071864193d3205581d0219ce003fc05c5198965a513f6017df6b2958d0edfee52fc9c927f2d30c0147022245595128000219040105581e034a4b89e7527901602b3015b0ff8fc7eda00216186dd46293cce03a2be00c01470380550856671605581e034b0f3ae9b7755d2c8a42ad86ca94cfd4fe09f1fb1974ad87a7d7dcc7a00c014704f3d5ead1200005581e035cb5a1591a9352aa9f4b7836e2e66bd08cd33bbf288729cbd1e1b9b9a004020325514f0f2432e6cc82b2539cdf822713adca5c17c554cf21151b6cba41becc2103be8c5012933e4c98113a4ba2f0a0b8eadfa27e0454bdffaad0c873583aedcfb103dcc675306a86cae9375839471558e73c0a3637a7826f29cfc1a834353fd9d76205581e033cff1c10cb201644d6ad8bcc4026d7c5ec318880fe4bd6c6e9869530100c0a4663d0e192ce1005581e0374f28de57ad8ccf7f7c2cef5cbcbfc39c8e13b38462d1bbc291b006f200c183347041f8a7eaccf480314812fa746757660372440e92e32b0925355c5401519172824a61adb31d8cc5e05581e03d6e00686610f8c32e341e7eb3ff109fb7611dc66a223d8d06ca09351900c0d4709aa993dc5938b0368fee821c5714d199a87057fb70822dce0026fb84c45bfcc0400ca654cbd1a380219dbeb0329bf2a612efd058b9595d3ff27c4e79870de198bfbc5de59f64697b1cbfbb10a038ddd87ee158fd30e2f5ab03a682bdbc12a40d6d258e5e128728107069576a02a03b476c67896067ee0b4c06b4e2623642ab89420a3868986a78db562772583a890039ee0aa84fd08180b25b4da1e2403bf48d25f381a71a6448f0a26edf16f237c3403fea71f46166a15421ed98e0b3a860fa11659922671c8fd6ca4b1d8d228028244033a864476df91a20aaaee9620dd6887fed8ee9e467d02fd79a78a6277874cebcf03752e0f0b04eb33125555284a4e54178336bc5ec0391ae5ceab65e0719b0fbf2c0387cd59976e14ae86aa51af0f8f4b907ce1c02d4df8b72daf43e9996bfac93272031d1f63b6caf94c09d9528e14d8dfcdaf07015b644ca2d0fccdb20632ab9ed8e90219ffff03855d3397d026102875e3e26a0ba5949b8595fb3a12dbe8384cc0ff0d7e7c13a503f75a8f3ebaa2d342d207ab6bf9dad063462ddd3e1f2b436ede6c9f1f3537149f03523e08fc4e00a0e869e0d4fd599f46c1513284b8611fe24d8a6cf2bebd18869403be48c8ccecdebc82efd7679f46fef78ff0829a9c3c2caa3500cefee8a19eb72803d426a7fd265acd51c5cbe373b7e7f988919fd0bfcaafb9cf1e2c1379cad351a40363ccaee2f568c509480b000a4fa491f1b69c89a6132e74dbdb8cc92e8d04c5a003aeb7ebc34762c3be83254d5dde10d31bd61b36c65319d456b1fa190e9856c41403a461889388369b89ef6ea014c849f531e134634b5f73a976a9cb0a9684bec29203a85481cd290d19258bda6bbbc53462830602013e30fb18157dc05c5bf833825c03edbc2f64849b1828e6272150396dcef294644c7b9835100da429a2a9ed0c4b2d0332618cc6cddfb7d931d675269bf89bb3e53ac960240b264cf6773f263eb4b2d303c96c48b7cbf43b713b76acd11051951b94573464f5e8bd8a1610235c7320824e0390223d7801d39c9ccdf3d6f6c673d0271ab7a289664a515863d1e9f326d501a303bbad8eb3c23b229d0de0ecaa2ec6b2e255b49af1fb35cf4e0903c9df25c55faf0219ffff03db5dc955eced89c1fd6dd445d9c00dded7cbc173ac833d269e0b5feda1734dd80367b94c1cdabff542bbccdc6ff2a9e0dca701187e4a4f2802ca1eb8c69b6ef17e03eea4774c410d45f500f664b3c94d097f49d299fa087e75ea45195dc380d5df660219ffff031ccc06c0a80e8b6cdc56447b749df54fd1609f428d8607f70d49866576491ac103ab8f4ce8a3247a00eed4b680e1863e756302e4b95388243a1a1c691c46602b16033fd9762b9de7ec4b24cced6292b3038659b97eee9605356c9d9ea989f456f39c03323742894a86b2e7e329ff25b793c796080f7feab7caf2932f9b5f88f610ab96031de4c89457869352912dd1119304ec18ed19143fca7153193db93c4841b42470038690594e1a6bbab211679774d464a662646a5064431ee13bf5c0323fb472204803707f5b5ce13067d541fba84dfc7dcdbaf834a8042fe03f604c519020e530d7cd032364aac05c075a0b34f15f0d7bc2dab39299d1bbd414335dcd0665ffafbc4c5a034d49978c0e825bcfd182d0695a3c65875570858f9e23585ad097dd4c961e30c303e6906112e5cb638383ca2f2ad455a209925b5b324a222812af13ebbceb0fc0f903450da3eb579d2c8ffef3cb931861e61a3cf710712aa500ba43106c522b2085780312792ae6e8fbedc3150335983f3ec77cad4fe612c28eb866c1ff378e81ae636503687d0646c4f519ab11fc3ef8a8de698443a9c1d5491df184ac9e26bffe1e89f9039c271807b9d3cff27af3649409ff123dfe1b859a6a239146d142640a7b6a4175037a25630bf7de131be267b2a17ec797975e3ea9b3a1da469732df29fb6712f4a203be2aa18cf4dfdc05ccb828c7ad70fb0fcbdf20cc7251641272f91d58480b80e30330f7e81562e394eed99fde562db51365c675d3ad2ba0bd11ba13370bab6f937c03f416b93ce867d4a0d0db8711bf5e433d9bc813ff422d396070d4aa57901ba96a03d3577af5ce20423c140f64a763ac155986839ec2f731758278679d37c28d84b903c524cfe153cc5af1821fd9f8b05ddb4e88f338b255876c67765105d811eef891032220357992429250a776af826c2bedd76712c53caf5c36d754c2b0af84b8dba60375a8307d27b33714cd1b4707c8572e55e8ef4feafecbb5f16fe38f501af55a0305581e03257d5b64b6b0c47befabf56514aef16900a548ec67ea2c4a8726e527a0040103c778ec54979decc34e1f6a6d4c015977c8af1d3badb1741a969beb07db968b1e030be1d433cf44caeca76b985f407425068acfdcf245fa918e5d7e1e16665f5a4e031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e031ca634f64b4125656e8bd9987288b8a2a8f920d5ea6ce2b603c0631ea007011bffffffffffffffff04594859608060405234801561001057600080fd5b50600436106102e85760003560e01c806391d1485411610191578063c6b861b9116100e3578063e69e47df11610097578063fb483fb111610071578063fb483fb1146106e0578063fb961583146106f3578063fdc482e81461071a57600080fd5b8063e69e47df146106b2578063f0402cbf146106c5578063f3a009a0146106d857600080fd5b8063cec5afe7116100c8578063cec5afe714610679578063d547741f1461068c578063e41beeda1461069f57600080fd5b8063c6b861b914610653578063ca15c8731461066657600080fd5b8063aa5180e811610145578063b5d1990d1161011f578063b5d1990d1461061b578063bf3b91ab14610623578063bfc69e1c1461062c57600080fd5b8063aa5180e8146105c9578063ac43459d146105d6578063b553cad7146105e957600080fd5b80639fd0506d116101765780639fd0506d14610598578063a217fddf146105b8578063a78dce76146105c057600080fd5b806391d148541461054a5780639f407aaa1461059057600080fd5b8063491e0bd11161024a57806367d5f337116101fe578063805d64a0116101d8578063805d64a0146104fd5780638543d1a71461051d5780639010d07c1461053757600080fd5b806367d5f337146104b55780636e710e05146104c8578063771eb104146104ea57600080fd5b80634cf088d91161022f5780634cf088d91461045b57806357ab17031461047b57806359d3005d1461048e57600080fd5b8063491e0bd11461044a5780634c62d42e1461045357600080fd5b806328e8f400116102a1578063303929171161028657806330392917146103f357806336568abe146104065780634253e0c01461041957600080fd5b806328e8f400146103cb5780632f2ff15d146103e057600080fd5b806315afe1f6116102d257806315afe1f61461032e578063245a7bfc14610363578063248a9ca3146103a857600080fd5b8062a4dcac146102ed57806301ffc9a71461030b575b600080fd5b6102f561072d565b604051610302919061373b565b60405180910390f35b61031e6103193660046137ff565b61085c565b6040519015158152602001610302565b6103557fb8921042efede08ea4fb87c7cd34c42ab1e134df6d8ef481f71c91910346d83581565b604051908152602001610302565b60d2546103839073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610302565b6103556103b6366004613841565b60009081526065602052604090206001015490565b6103de6103d9366004613873565b6108b8565b005b6103de6103ee3660046138c3565b610dbd565b6103de6104013660046138f3565b610de2565b6103de6104143660046138c3565b610f29565b60d554610436906a0100000000000000000000900462ffffff1681565b60405162ffffff9091168152602001610302565b61035560d45481565b6103de610fdc565b60d1546103839073ffffffffffffffffffffffffffffffffffffffff1681565b6103de610489366004613841565b6110b9565b60d55461049f9064ffffffffff1681565b60405164ffffffffff9091168152602001610302565b6103de6104c3366004613957565b61117c565b6104db6104d6366004613b74565b611515565b60405161030293929190613c10565b6103de6104f8366004613c35565b611a57565b60cf546103839073ffffffffffffffffffffffffffffffffffffffff1681565b60d55461049f9065010000000000900464ffffffffff1681565b610383610545366004613c59565b611b4e565b61031e6105583660046138c3565b600091825260656020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6103de611b6d565b60d0546103839073ffffffffffffffffffffffffffffffffffffffff1681565b610355600081565b61035560d35481565b60ca5461031e9060ff1681565b6103de6105e4366004613c7b565b611cc6565b60d554610608906d0100000000000000000000000000900461ffff1681565b60405161ffff9091168152602001610302565b60c954610355565b61035560ce5481565b6103557fced6982f480260bdd8ad5cb18ff2854f0306d78d904ad6cc107e8f3a0f526c1881565b6103de610661366004613ca2565b611df5565b610355610674366004613841565b61213b565b6103de610687366004613cbf565b612152565b6103de61069a3660046138c3565b6122a3565b6103de6106ad366004613841565b6122c8565b6103de6106c0366004613873565b6123c4565b6103de6106d3366004613841565b61277b565b6102f5612832565b6102f56106ee366004613841565b61295d565b6103557ffdd95c635b6fde1e24676722ae45d4e9072f4947c3c68d69c7de01654c84050981565b6103de610728366004613c7b565b612a7c565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915260ca5460ff166107aa576040517fe8907a5500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080516101008101825260cb5467ffffffffffffffff808216835268010000000000000000820481166020840152700100000000000000000000000000000000808304821694840194909452780100000000000000000000000000000000000000000000000090910416606082015260cc546fffffffffffffffffffffffffffffffff808216608084015290839004811660a083015260cd5480821660c08401529290920490911660e082015290565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f5a05180f0000000000000000000000000000000000000000000000000000000014806108b257506108b282612bb6565b92915050565b600060c983815481106108cd576108cd613cdc565b600091825260209182902060039091020191506108ec90830183613d0b565b67ffffffffffffffff166109066040840160208501613d0b565b67ffffffffffffffff161161097d576109256040830160208401613d0b565b6109326020840184613d0b565b6040517f999e007a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff9283166004820152911660248201526044015b60405180910390fd5b80546109a09068010000000000000000900467ffffffffffffffff166001613d57565b67ffffffffffffffff166109b76020840184613d0b565b67ffffffffffffffff1614610a3c5780546109e99068010000000000000000900467ffffffffffffffff166001613d57565b6109f66020840184613d0b565b6040517f56ae644300000000000000000000000000000000000000000000000000000000815267ffffffffffffffff928316600482015291166024820152604401610974565b60d160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166360a0f6286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acd9190613d78565b610ade610100840160e08501613d91565b6fffffffffffffffffffffffffffffffff161115610be457610b07610100830160e08401613d91565b60d160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166360a0f6286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b989190613d78565b6040517f8cf753bf0000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff90921660048301526024820152604401610974565b60d160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb635c656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c759190613d78565b610c856080840160608501613d0b565b67ffffffffffffffff16610c9f6060850160408601613d0b565b67ffffffffffffffff16610cb39190613dae565b1115610db857610cc96080830160608401613d0b565b610cd96060840160408501613d0b565b610ce39190613d57565b60d160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb635c656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d749190613d78565b6040517fbb5daf3a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff90921660048301526024820152604401610974565b505050565b600082815260656020526040902060010154610dd881612c4d565b610db88383612c57565b7fced6982f480260bdd8ad5cb18ff2854f0306d78d904ad6cc107e8f3a0f526c18610e0c81612c4d565b62ffffff8216620f424080821115610e50576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60d580547fffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffff166a010000000000000000000062ffffff8716908102919091179091556040805160208101929092527f3039291700000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610f1b91613dc1565b60405180910390a250505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610fce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610974565b610fd88282612c79565b5050565b7fb8921042efede08ea4fb87c7cd34c42ab1e134df6d8ef481f71c91910346d83561100681612c4d565b60ca5460ff16611042576040517fe8907a5500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f4b640a37d59363bc1349d416626728534e5c58049e5f64f50f1090cabf152ab160cb6040516110729190613e2e565b60405180910390a16110b6600060cb81905560cc81905560cd5560ca80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b50565b7fced6982f480260bdd8ad5cb18ff2854f0306d78d904ad6cc107e8f3a0f526c186110e381612c4d565b60d382905560408051602081018490527f57ab170300000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261117091613ea7565b60405180910390a25050565b600054610100900460ff161580801561119c5750600054600160ff909116105b806111b65750303b1580156111b6575060005460ff166001145b611242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610974565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156112a057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6112a8612c9b565b81516112b690600090612c57565b6112e47fced6982f480260bdd8ad5cb18ff2854f0306d78d904ad6cc107e8f3a0f526c188360200151612c57565b6113127fb8921042efede08ea4fb87c7cd34c42ab1e134df6d8ef481f71c91910346d8358360600151612c57565b608082015160d280547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9384161790915560408085015160cf8054841691851691909117905560a085015160d08054841691851691909117905560c085015160d18054909316931692831790915560ce81905560d580546801bc16d674ec80000060d381905560d4557fffffffffffffffffffffffffffffffffff000000000000000000000000000000166d640003e8000002e72a000000076f1790558051610100810182526000815281517fb91590b200000000000000000000000000000000000000000000000000000000815291516114af9391926020808501939263b91590b29260048181019392918290030181865afa15801561144f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114739190613d78565b67ffffffffffffffff16815260006020820181905260408201819052606082018190526080820181905260a0820181905260c090910152612d34565b8015610fd857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6060600080806115286020860186613d0b565b6115386040870160208801613d0b565b6115429190613f14565b61154d906001613d57565b60d5549091506d0100000000000000000000000000900461ffff1667ffffffffffffffff821610156115c1578060d5600d9054906101000a900461ffff1660405180606001604052806021815260200161470560219139955067ffffffffffffffff909116935061ffff169150611a509050565b856060015167ffffffffffffffff168560600160208101906115e39190613d0b565b67ffffffffffffffff16101561163b576116036080860160608701613d0b565b866060015160405180606001604052806036815260200161472660369139955067ffffffffffffffff9182169450169150611a509050565b6000866060015187604001516116519190613d57565b67ffffffffffffffff169050600061166f6080880160608901613d0b565b61167f6060890160408a01613d0b565b6116899190613d57565b67ffffffffffffffff169050818110156116c8578082604051806060016040528060248152602001614800602491399190955095509550505050611a50565b50508560e001516fffffffffffffffffffffffffffffffff168560e00160208101906116f49190613d91565b6fffffffffffffffffffffffffffffffff16101561175d5761171d610100860160e08701613d91565b8660e001516040518060600160405280602281526020016147b26022913995506fffffffffffffffffffffffffffffffff9182169450169150611a509050565b60008660e001518660e00160208101906117779190613d91565b6117819190613f35565b6fffffffffffffffffffffffffffffffff1690506000876060015188604001518860600160208101906117b49190613d0b565b6117c460608b0160408c01613d0b565b6117ce9190613d57565b6117d89190613f14565b6117e29190613f14565b67ffffffffffffffff16905060d354816117fc9190613f5e565b82101561183b578160d354826118129190613f5e565b6040518060600160405280602c81526020016147d4602c91399190955095509550505050611a50565b60d4546118489082613f5e565b821115611887578160d4548261185e9190613f5e565b6040518060600160405280602c81526020016146d9602c91399190955095509550505050611a50565b505060008660e001518660e00160208101906118a39190613d91565b6118ad9190613f35565b8760c001516118bc9190613f75565b6fffffffffffffffffffffffffffffffff16905060006118e260c0880160a08901613d91565b6118f260a0890160808a01613d91565b61190260e08a0160c08b01613d91565b61190c9190613f75565b6119169190613f75565b60d5546fffffffffffffffffffffffffffffffff91909116915060009061195f9061194990869064ffffffffff16613f9e565b67ffffffffffffffff168464e8d4a51000612f7a565b60d554611983906a0100000000000000000000900462ffffff1685620f4240612f7a565b61198d9085613fca565b6119979190613dae565b9050808210156119cd57818160405180606001604052806031815260200161478160319139919096509650965050505050611a50565b5060d5546000906119f39061194990869065010000000000900464ffffffffff16613f9e565b6119fd9084613dae565b905080821115611a3357818160405180606001604052806025815260200161475c60259139919096509650965050505050611a50565b505060408051602081019091526000808252909550935083925050505b9250925092565b7fced6982f480260bdd8ad5cb18ff2854f0306d78d904ad6cc107e8f3a0f526c18611a8181612c4d565b60d580547fffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff166d010000000000000000000000000061ffff8516908102919091179091556040805160208101929092527f771eb10400000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261117091613fdd565b6000828152609760205260408120611b6690836130a3565b9392505050565b7fb8921042efede08ea4fb87c7cd34c42ab1e134df6d8ef481f71c91910346d835611b9781612c4d565b60ca5460ff16611bd3576040517fe8907a5500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516101008101825260cb5467ffffffffffffffff808216835268010000000000000000820481166020840152700100000000000000000000000000000000808304821694840194909452780100000000000000000000000000000000000000000000000090910416606082015260cc546fffffffffffffffffffffffffffffffff808216608084015290839004811660a083015260cd5480821660c08401529290920490911660e0820152611c8a90612d34565b6110b6600060cb81905560cc81905560cd5560ca80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b7fced6982f480260bdd8ad5cb18ff2854f0306d78d904ad6cc107e8f3a0f526c18611cf081612c4d565b64ffffffffff821664e8d4a5100080821115611d38576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60d580547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001664ffffffffff86169081179091556040805160208101929092527fac43459d00000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610f1b91614024565b60d060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b4a550376040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e869190614091565b15611ebd576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cf5473ffffffffffffffffffffffffffffffffffffffff163314611f305760cf546040517f612c001a00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610974565b60ca5460ff1615611f6d576040517f452d764900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c954611f8690611f8090600190613fca565b826108b8565b60ce54600090611f9c6040840160208501613d0b565b67ffffffffffffffff16611fb09190613dae565b905080431015611fef576040517f1fc3452800000000000000000000000000000000000000000000000000000000815260048101829052602401610974565b6000806000612005611fff612832565b86611515565b92509250925060008351111561211d578460cb61202282826140cd565b505060ca80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055825160208401206040517fc51d8bb32a3937963ee762598769c0e402bdbed204707576884f84040cf542cf9061208c9086908990879087906143bf565b60405180910390a260d060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663595c6a676040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156120fe57600080fd5b505af1158015612112573d6000803e3d6000fd5b505050505050505050565b61213461212f368790038701876143f7565b612d34565b5050505050565b60008181526097602052604081206108b2906130af565b7fced6982f480260bdd8ad5cb18ff2854f0306d78d904ad6cc107e8f3a0f526c1861217c81612c4d565b8173ffffffffffffffffffffffffffffffffffffffff81166121ca576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cf80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091556040805160208101929092527fcec5afe700000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261229691614414565b60405180910390a2505050565b6000828152606560205260409020600101546122be81612c4d565b610db88383612c79565b7fced6982f480260bdd8ad5cb18ff2854f0306d78d904ad6cc107e8f3a0f526c186122f281612c4d565b811580612300575061080082115b15612337576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ce82905560408051602081018490527fe41beeda00000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526111709161445b565b7ffdd95c635b6fde1e24676722ae45d4e9072f4947c3c68d69c7de01654c8405096123ee81612c4d565b82600003612428576040517fcab1c3df00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c9548310612466576040517fa2720e8300000000000000000000000000000000000000000000000000000000815260048101849052602401610974565b600060c9848154811061247b5761247b613cdc565b6000918252602091829020600390910201915061249a90840184613d0b565b815467ffffffffffffffff90811691161415806124e157506124c26040840160208501613d0b565b815468010000000000000000900467ffffffffffffffff908116911614155b15612518576040517f30af5f6100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61252c612526600186613fca565b846108b8565b6001810154600090819070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661256c60c0870160a08801613d91565b6fffffffffffffffffffffffffffffffff1611156125de57600183015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166125bf60c0870160a08801613d91565b6125c99190613f35565b6fffffffffffffffffffffffffffffffff1691505b60018301546fffffffffffffffffffffffffffffffff1661260560a0870160808801613d91565b6fffffffffffffffffffffffffffffffff1611156126635760018301546fffffffffffffffffffffffffffffffff1661264460a0870160808801613d91565b61264e9190613f35565b6fffffffffffffffffffffffffffffffff1690505b8460c9878154811061267757612677613cdc565b9060005260206000209060030201818161269191906140cd565b905050857fbf4fd4e67b3409061e5be46d3e4b2b7c8edfad56ccfc8131e0cc7ffd79e104a5866040516126c491906144c8565b60405180910390a260008211806126db5750600081115b156127735760d2546040517f8846405d00000000000000000000000000000000000000000000000000000000815260048101849052602481018390526000604482015273ffffffffffffffffffffffffffffffffffffffff90911690638846405d90606401600060405180830381600087803b15801561275a57600080fd5b505af115801561276e573d6000803e3d6000fd5b505050505b505050505050565b7fced6982f480260bdd8ad5cb18ff2854f0306d78d904ad6cc107e8f3a0f526c186127a581612c4d565b60d482905560408051602081018490527ff0402cbf00000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052611170916144d7565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915260c9805461288390600190613fca565b8154811061289357612893613cdc565b600091825260209182902060408051610100810182526003909302909101805467ffffffffffffffff808216855268010000000000000000820481169585019590955270010000000000000000000000000000000080820486169385019390935278010000000000000000000000000000000000000000000000009004909316606083015260018301546fffffffffffffffffffffffffffffffff808216608085015290829004811660a084015260029093015480841660c08401520490911660e0820152919050565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915260c982815481106129b1576129b1613cdc565b600091825260209182902060408051610100810182526003909302909101805467ffffffffffffffff808216855268010000000000000000820481169585019590955270010000000000000000000000000000000080820486169385019390935278010000000000000000000000000000000000000000000000009004909316606083015260018301546fffffffffffffffffffffffffffffffff808216608085015290829004811660a084015260029093015480841660c08401520490911660e082015292915050565b7fced6982f480260bdd8ad5cb18ff2854f0306d78d904ad6cc107e8f3a0f526c18612aa681612c4d565b64ffffffffff821664e8d4a5100080821115612aee576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60d580547fffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffff166501000000000064ffffffffff8716908102919091179091556040805160208101929092527ffdc482e800000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610f1b91614544565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806108b257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146108b2565b6110b681336130b9565b612c618282613173565b6000828152609760205260409020610db89082613267565b612c838282613289565b6000828152609760205260409020610db89082613344565b600054610100900460ff16612d32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610974565b565b60c9546040517f3c2dada747e62514e16b7263ff08ee5566260a1a36eb50e2752f577f8f29974f90612d6790849061373b565b60405180910390a260c980546001808201835560009290925282517f66be4f155c5ef2ebd3772b228f2f00681e4ed5826cdb3b1943cc11ad15ad1d28600390920291820180546020860151604080880151606089015167ffffffffffffffff9687167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909516949094176801000000000000000093871693909302929092176fffffffffffffffffffffffffffffffff908116700100000000000000000000000000000000938716840277ffffffffffffffffffffffffffffffffffffffffffffffff16177801000000000000000000000000000000000000000000000000969094169590950292909217909255608086015160a087015190841690841680840282177f66be4f155c5ef2ebd3772b228f2f00681e4ed5826cdb3b1943cc11ad15ad1d2987015560c088015160e08901519086169516909302939093177f66be4f155c5ef2ebd3772b228f2f00681e4ed5826cdb3b1943cc11ad15ad1d2a9094019390935560d25492517f8846405d00000000000000000000000000000000000000000000000000000000815260048101919091526024810191909152604481019290925273ffffffffffffffffffffffffffffffffffffffff1690638846405d90606401600060405180830381600087803b158015612f6657600080fd5b505af1158015612134573d6000803e3d6000fd5b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003612fd257838281612fc857612fc86145b1565b0492505050611b66565b80841161303b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f7700000000000000000000006044820152606401610974565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000611b668383613366565b60006108b2825490565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610fd8576130f981613390565b6131048360206133af565b6040516020016131159291906145e0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261097491600401614661565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610fd857600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556132093390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611b668373ffffffffffffffffffffffffffffffffffffffff84166135f2565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610fd857600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611b668373ffffffffffffffffffffffffffffffffffffffff8416613641565b600082600001828154811061337d5761337d613cdc565b9060005260206000200154905092915050565b60606108b273ffffffffffffffffffffffffffffffffffffffff831660145b606060006133be836002613f5e565b6133c9906002613dae565b67ffffffffffffffff8111156133e1576133e1613918565b6040519080825280601f01601f19166020018201604052801561340b576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061344257613442613cdc565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134a5576134a5613cdc565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006134e1846002613f5e565b6134ec906001613dae565b90505b6001811115613589577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061352d5761352d613cdc565b1a60f81b82828151811061354357613543613cdc565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9361358281614674565b90506134ef565b508315611b66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610974565b6000818152600183016020526040812054613639575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556108b2565b5060006108b2565b6000818152600183016020526040812054801561372a576000613665600183613fca565b855490915060009061367990600190613fca565b90508181146136de57600086600001828154811061369957613699613cdc565b90600052602060002001549050808760000184815481106136bc576136bc613cdc565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806136ef576136ef6146a9565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506108b2565b60009150506108b2565b5092915050565b60006101008201905067ffffffffffffffff808451168352806020850151166020840152806040850151166040840152806060850151166060840152506fffffffffffffffffffffffffffffffff608084015116608083015260a08301516137b760a08401826fffffffffffffffffffffffffffffffff169052565b5060c08301516137db60c08401826fffffffffffffffffffffffffffffffff169052565b5060e083015161373460e08401826fffffffffffffffffffffffffffffffff169052565b60006020828403121561381157600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611b6657600080fd5b60006020828403121561385357600080fd5b5035919050565b6000610100828403121561386d57600080fd5b50919050565b600080610120838503121561388757600080fd5b82359150613898846020850161385a565b90509250929050565b73ffffffffffffffffffffffffffffffffffffffff811681146110b657600080fd5b600080604083850312156138d657600080fd5b8235915060208301356138e8816138a1565b809150509250929050565b60006020828403121561390557600080fd5b813562ffffff81168114611b6657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8035613952816138a1565b919050565b600060e0828403121561396957600080fd5b60405160e0810181811067ffffffffffffffff821117156139b3577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405282356139c1816138a1565b815260208301356139d1816138a1565b602082015260408301356139e4816138a1565b604082015260608301356139f7816138a1565b6060820152613a0860808401613947565b6080820152613a1960a08401613947565b60a0820152613a2a60c08401613947565b60c08201529392505050565b67ffffffffffffffff811681146110b657600080fd5b803561395281613a36565b6fffffffffffffffffffffffffffffffff811681146110b657600080fd5b803561395281613a57565b6000610100808385031215613a9457600080fd5b6040519081019067ffffffffffffffff82118183101715613ade577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8160405280925083359150613af282613a36565b818152613b0160208501613a4c565b6020820152613b1260408501613a4c565b6040820152613b2360608501613a4c565b6060820152613b3460808501613a75565b6080820152613b4560a08501613a75565b60a0820152613b5660c08501613a75565b60c0820152613b6760e08501613a75565b60e0820152505092915050565b6000806102008385031215613b8857600080fd5b613b928484613a80565b915061389884610100850161385a565b60005b83811015613bbd578181015183820152602001613ba5565b50506000910152565b60008151808452613bde816020860160208601613ba2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b606081526000613c236060830186613bc6565b60208301949094525060400152919050565b600060208284031215613c4757600080fd5b813561ffff81168114611b6657600080fd5b60008060408385031215613c6c57600080fd5b50508035926020909101359150565b600060208284031215613c8d57600080fd5b813564ffffffffff81168114611b6657600080fd5b60006101008284031215613cb557600080fd5b611b66838361385a565b600060208284031215613cd157600080fd5b8135611b66816138a1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215613d1d57600080fd5b8135611b6681613a36565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b67ffffffffffffffff81811683821601908082111561373457613734613d28565b600060208284031215613d8a57600080fd5b5051919050565b600060208284031215613da357600080fd5b8135611b6681613a57565b808201808211156108b2576108b2613d28565b60408152602360408201527f7365744d6178436f6e73656e7375734c617965724c6f737350504d2875696e7460608201527f3234290000000000000000000000000000000000000000000000000000000000608082015260a060208201526000611b6660a0830184613bc6565b815467ffffffffffffffff8082168352604082811c82166020850152608083811c9092169084015260c091821c606084015260018401546fffffffffffffffffffffffffffffffff8082168386015290821c60a085015260028501549081169284019290925281901c60e0830152610100820190613734565b60408152602260408201527f7365744d696e4465706f73697450657256616c696461746f722875696e74323560608201527f3629000000000000000000000000000000000000000000000000000000000000608082015260a060208201526000611b6660a0830184613bc6565b67ffffffffffffffff82811682821603908082111561373457613734613d28565b6fffffffffffffffffffffffffffffffff82811682821603908082111561373457613734613d28565b80820281158282048414176108b2576108b2613d28565b6fffffffffffffffffffffffffffffffff81811683821601908082111561373457613734613d28565b67ffffffffffffffff818116838216028082169190828114613fc257613fc2613d28565b505092915050565b818103818111156108b2576108b2613d28565b60408152601e60408201527f7365744d696e5265706f727453697a65426c6f636b732875696e7431362900006060820152608060208201526000611b666080830184613bc6565b60408152602b60408201527f7365744d696e436f6e73656e7375734c617965724761696e506572426c6f636b60608201527f5050542875696e74343029000000000000000000000000000000000000000000608082015260a060208201526000611b6660a0830184613bc6565b6000602082840312156140a357600080fd5b81518015158114611b6657600080fd5b600081356108b281613a36565b600081356108b281613a57565b81356140d881613a36565b67ffffffffffffffff811690508154817fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008216178355602084013561411c81613a36565b6fffffffffffffffff00000000000000008160401b16837fffffffffffffffffffffffffffffffff000000000000000000000000000000008416171784555050506141b561416c604084016140b3565b82547fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1660809190911b77ffffffffffffffff0000000000000000000000000000000016178255565b61420d6141c4606084016140b3565b825477ffffffffffffffffffffffffffffffffffffffffffffffff1660c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016178255565b6001810161425e614220608085016140c0565b82547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff91909116178255565b6142ae61426d60a085016140c0565b82546fffffffffffffffffffffffffffffffff1660809190911b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000016178255565b50600281016142c261422060c085016140c0565b610db861426d60e085016140c0565b80356142dc81613a36565b67ffffffffffffffff90811683526020820135906142f982613a36565b908116602084015260408201359061431082613a36565b908116604084015260608201359061432782613a36565b16606083015261433960808201613a75565b6fffffffffffffffffffffffffffffffff16608083015261435c60a08201613a75565b6fffffffffffffffffffffffffffffffff1660a083015261437f60c08201613a75565b6fffffffffffffffffffffffffffffffff1660c08301526143a260e08201613a75565b6fffffffffffffffffffffffffffffffff811660e0840152505050565b60006101608083526143d381840188613bc6565b9150506143e360208301866142d1565b610120820193909352610140015292915050565b6000610100828403121561440a57600080fd5b611b668383613a80565b60408152601960408201527f7365744f7261636c6555706461746572286164647265737329000000000000006060820152608060208201526000611b666080830184613bc6565b60408152602860408201527f73657446696e616c697a6174696f6e426c6f636b4e756d62657244656c74612860608201527f75696e7432353629000000000000000000000000000000000000000000000000608082015260a060208201526000611b6660a0830184613bc6565b61010081016108b282846142d1565b60408152602260408201527f7365744d61784465706f73697450657256616c696461746f722875696e74323560608201527f3629000000000000000000000000000000000000000000000000000000000000608082015260a060208201526000611b6660a0830184613bc6565b60408152602b60408201527f7365744d6178436f6e73656e7375734c617965724761696e506572426c6f636b60608201527f5050542875696e74343029000000000000000000000000000000000000000000608082015260a060208201526000611b6660a0830184613bc6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614618816017850160208801613ba2565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614655816028840160208801613ba2565b01602801949350505050565b602081526000611b666020830184613bc6565b60008161468357614683613d28565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe4e6577206465706f736974732061626f7665206d6178206465706f736974207065722076616c696461746f725265706f727420626c6f636b732062656c6f77206d696e696d756d20626f756e6443756d756c6174697665206e756d626572206f6620776974686472617761626c652076616c696461746f727320646563726561736564436f6e73656e737573206c61796572206368616e67652061626f7665206d6178206761696e436f6e73656e737573206c61796572206368616e67652062656c6f77206d696e206761696e206f72206d6178206c6f737350726f636573736564206465706f73697420616d6f756e74206465637265617365644e6577206465706f736974732062656c6f77206d696e206465706f736974207065722076616c696461746f72546f74616c206e756d626572206f662076616c696461746f727320646563726561736564a264697066735822122002845a4478c76356a45bf685ea34fff773bdbda80424704dbf5973168737016264736f6c6343000814003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341ff05581d03e70bbc977f18b536fa7a4a72fed78aaee93ebaf3cdc046f9d1dc1df0070119485905581d03b3cdf736366d9c0a35bc4842f701ca1ee3c3fdbf2aa949fbf682a5700c01468f5bf8dc8f0002186001410705581e03a91ff704b71f87e6b5ac70dacc1c638c8d55ffb8a642efa02cc7f133600c01470d1c2bffeafc0005581e03204eea41c99c83fed6834b329852f7309da86eef804e80f42b40d63710040103ec4c3ad25c52eb88251b43dd5b01fa534588b7f138775bb960a157fb10fb62ad0333e7c299166c8c5131a5281c62ae626b5884de54861f504720b954cdeac6c7ff03dd286998a61965c9c7230d015a0bc2043a3f8ab983e9fc2df8000dae29fa4fca0219d6af03a0d7963d8e1cc0be1b259f627b5d7996ff087e659cf81932b1248cc63624364303545f574bcf15c28d1b2cc741d426904f39f8d2f113ddb97f4e61000c2188febe03c9ce8d3a89967447364be18933f72c527b0f8f58a3f5d0f192d4fc20bccdc80b03e32e8de16488d62e4bbc62d7d67e24163fb3e879d4c37b3c4c0387ed8af5667003e634a28c87e4a863b857b315aa8ff9383f72def8ade09b3133e14ee417afd3d40219ffff03e7f347be4c166e91033d503e95e1b07c5025be97afef6c48f28691aaa396d71103db755d40996569233682a5bd64f34898d2d13089e8c563435748bf5adccd792b032145e2b26309f2667ddc14ada3ac5e4eeee6ce72ed32151c485e06c08799674c03ab869a7d0d3efc9f22b5f83f926ded43fc42f89042d633e2a5137b65315aa8300383f798e112d25605c6c230e173ea8a242c83c8d65ea14246066d895089a35343032154d68629d668f7c36a8f77d2149f1986a16a463ac64508667cc18f229c5a9c036090ce4582bb4f31a9a6a442acd0e5a5eb3eda0aaf24cad574765dedbeb08dfe03cb50b1b34e369c77d2f3ced26bfa5694ff59fda90bec9f27b4c653f6eb090b5a032db14bf37041a0707fd363716dde5167a7adec8839307200586181e64e79aa0f0392d10a41e3e538ae7e5863da431b283946acd450d3d8945480b01f05a132ba3f0219ffff0354d9d440bf349be92248105fc45672386a9fc781168cac2fa792899f32a36e6803de81161ed7997f6001acd8b701d60d930a682480192de4de09e9def14d7f2cc90393de5015b4f90aee024d16442bbd8ae8fb368d1de642f31903f2b61157a14ec603694cea28b4fabe571c78f00cbffe03f332fabf8a6b42f130314449edeec0b02f032ddcf8b2b050c56740529f5ef785cfe7260fbb0e36acc58aaccd52849026c3d603be08f6b09f3b4c628b4812c36e63df2aee8cce783d59832ff90e2ca145b8110f03902794ba777bcf4a21efdc5b7e5ce23001363efa2feed3cfdd57fd4b14d907f00334147f2c73c65fbefb4cf08cbf90083cc380ed1c9a800b9f4eebcbdc1033937b0333a8969b5d9abf3c0eda97bc0892356b50abeed349f25d1bd67f898597a08473037ecf174726f342397674efc06411f2222411d5dee049f82c9eb7d0a1887c84030219ffff0219ffff0219ffff0387d4041509e8348a0240424ef7acc30438dcccbf633dcd47e2ae4c6ceb1bf0860371300f59acdbe84b8745920180d3bde7a1890414f6dfca1ec5567f1446d9b4a703e3cb306a566d8ab99bbce46f537dcc5d97f00e29f341b07a6f14ddf360a97f17037cb9c51cc47396f753774a40a01ffc2f2c73bb35fb99854f9901022aa3a2f267034ea5d581eb79872819af1669c6017857e2459e944962777cf3dc1e4039b1f46e03184bb297b65b2a8bb2e946a757e61061af845bf41b4880b82d5ea4d65061d27403a591afe478dbf13f83ba0b58382edb3628fb0e111686e0e3dd48413b0e34810703a3838164e503feb9c1b9856cb7fa08db473d5fc0ca3f47b97d6816d315bd6bf603b7ecd4823a1b5790ef85ae5452dcadc949c099100a6fcc6fa19b56ae88e897fb0397d53df7a0014fc31b29c67bf52fffdc62248367eea9df8f7a5e3113c0df11ef033aa95454a2ce6603f697b2e4ceece90985b0033c4145f2ebc4ab52e173d36616031c4ffbdb6e2195a3b82d43edfe39679186f68d092933e576447c14f2e4c5a40403be388e56cfb82bdb3703ad8576d127fb80f22ee61464980a91244de5142ba6c003d603131ddb1114f1a2268b801fc41e7a53d4c4fbb064d7c31b22d5ce7a9b2b75036fc51b83709a157bfdef08b09177028a58f1dd6c7d2c53acde8c7f5a8e5e681003f508f0ff0c04ad86af1054c428541a4e49d31c02bfc5935ab98933599b304c5603d3fd4d604612eb6f4dcb562a12e755f18bcbc1d271208f5548ca0d0dbb5a099203329116e0e0b8e5a0a1e7116029dfe873fc26a56e7c6d6e5fba1fb56fd2e564af03ada1567ea946bcd27469abd1571f53e73816acc0aa2625576e87e6ac4e957d800318bf1fc8db3df1ff72bb45413f4cd64a6cabe4a8a238da1df65a4f2ba651829b0353ef7144cc66126d5ac4d1c4cf8cb0bbed334b6f80db3dd0993cfc53400e999203ffb01b594703fc47401389a82764d7a1cfcc38b136032969211d51027ed7d7d3035b6e7088985f7bbe5324e0f51189685c1103d92bd01844a856a687769ee9ea48036cd89b60c5ad06d5b7e70ea7f09cbe13baceef1e9828fb91d8452d61d5b59a240369786a47d96e7d1628797f6dcbf1f575d33dd67eebed412a0413279b811d412903a41715293200324db469c801e23974a174c06d0e15759c29f0e88fca15fecf4403d33e552ce0c7f8780e65dbef396b056b63f4b5825c9f8dc4c9d636e2c4ecf39503e12ce0386317075ae210068c9430d9f91a6231648b75588d70b57185eaa41cf503037eaf986c7992a149f463b5744b6829a17c22a55eedfbf0505b5a94e9cf58e103aca7c9bc35f67a2cc8f08549729763a70ee54c470306cd5e969d69898fc41fb803e56fa38c8c69eeb0473c6228820e370db5d9603275972a48e06bf77dc3db8e6503334f5252fd8d0e383cbaf8cee9df38a52d499d43f8a37a46bab9192d0646e62b03fbaac650245188d6dd1559d7623f51349efe7d8ccdb453eb526b043f2e56dbbf03dc8c8d4b84e8a01e1195fd40ef8644ed01553096feda49a320146afa29d6213303db6206e626db217bf1b9dccdeb3e6a6115f6915933250a7c80ac894a8e27ebef03999ab4602c8abe89d8d97b43bbef506e7d006fed7918027850baaed62bd3ea440385658f71e87b513d25f1864e24e84b2f6d49d7963012a11f564192de4347aeb40323248b59135caae38704df6541c59c8868d6603743d6b69b0d6c39b482b11d4705581e03c788dbeccecd3b3d2acb182d8e42448ba133b36a53ea5dc16359e1fa200401032b5c9b2089bfa81ba9d5c4049d31c3d25c682db528f1c2e0f31711f1080dd5e8037598d1048150ca04d83819b1b55166a7ae79807b5f19704bc7a695f391eda44205581e03a67e2a5355b0308d742f3d091c73d942524e64f93f396054897beb1f40040103b7a6974bbe01d31469cb67f25d88733eecb3163d0f21154eb579dc8fbf58aa7503b1540287d007d744705e0f793ef547d3c64ba6236526ae86ed34a65af448c1eb05581e0328dc90ccc69f6164096c4d9256d934c91426e4da6a503dcba13c018fa00c014709edce2cac928805581e035fe5fd3f4aa633b19c73320cd904bb6c74efde2407ab0f62151b8f0130040305581e0335f9b5c89a82261b19be640cfb01fc7715779654b3aa84a4112a150d400847b3b8f43f04880003093d863711e568be5ac69be8bd34c57a3f4ecc76718dc1cdabb472c93a94036f05581d0203565b466ebddfcafe4e100c2e197d19459a85d1de9b3d094bbdb8f40c04480205e8eab5fce80005581d022d042d59f3f740e99d7028f4aef34cd605ee706516ae67e4908782ad0c19013d480853a0d2313c0000021910800219faba031536e5fadab8e6d124d6f065cd06476a1e99595d7158e91f59d276d8aed2ead103d2e258c636fcfc861c53c9eb309a6e98f2274f77af30663b08f9ef32f20e530d03085c6c1985db86414254672f6681990d4a50fb5e23f9927e6dc40167afefc561035678ead2169202cb2b9253698d9a5333e31401201408dea8fd723a3b1010e0f8038128eb00c492c177c9f8ccb3dccdf9ef1d5a98fb2b44cde98133aef60a72d59403f696727e4f1ebc1fbd202507f1de24310fc9510a301406a1a689b35aca8e9ca10219ffff03915caae74ba6cd6893205dfceab71d72ab10b40c2c4e10ff23f6a3b82c3ac5ca03b9ed71220a499f3c6302ebea6090455006354ba6e2a31a4c1b3739c1c742256603eec585197db17c8ce510ef93634d70e5a23e6b070d807c8816bb4b8b49c40642039ab9e7823457fa9bf9d40532e4e654c757426bd067976da4c49af0f7aa4f87a60333e1abd0b9b3e28a459fe94f28dbc46d869747c650f4f075d31b381ea48e7b67033a3e22a4840211105b561b3b2cade308eeadf1f4ac9829eab5a6adaa6bf1f43d03f2b4140370ac625d6119357cc593b119cd49976c6075536cbb3ca236a896e17503b80d64192a82db63570fca4c2576ff5fff0c2207895e463283b48c4e99e35d0d0219ffff03d97b387ac7908e15fff352ac366d15bf21028bfdfaaab12775ae5596b8d1f8f7030280e6b42f5a2f13ccbb6f5d8a0cd7db7d549ef4fbe1d8b4da7c65fbd433dc6c034fcb33c4cdbf8e2cac5e54cb1ef39894932f0d0710b9b7c4c03360bc1ae3727d0219ffff03d92cd06846bd08852773a97acdf44adb53cef9140153f95f442815536c4c84c703d5e8742fa334aadf056db75f59f2ea007ed6579be35de0ceffac8058b978425d03eb2b6d7943b9812e8c88bf60d9acecd6bd7366415e152681a52c31e935c3f7ca0314d03a7bd60fa931918a98bfe6622aea4b6f7dc404322669a130c3d8b32382c403ddf694739762a11fbc37db3beb901910e10128767c0a0c89c1e6ae7f95d9c3c20352ab058fff7b9559907f35731fb14ec06d4c253acd83755ef76c8f0ff345a34c03afa9823f388f1a0ee2c7bbc452a4b0d11bd012a0b7fa62829e4ff6c09a522b6a0335431e631a20283e5a832ec701ecf3066618b76cc6a22f6d20920e66966dfd3a03f937ec9e4790feaae57b3463812d49e265e0183ae73a557a0645c8e58dc5f4750351ed9867003b86566e0a11aab1c369a662da13ed2c8bb646b0864c92e6e54b480353d236cd6ded3cc3e14bf6a158351156b14e6d3e46aa730978db2594f9f869ad0333a4b985f5462d11b4418e7e4da20cb474e902819e26b38cfdda96ef4399bbb203ef8d39016f0ceea8d53821e356ea82e5ea1ae3179da1682a9e63c84149c0a48903bf72f74e50f05d25ff457e9e9e6553756017d7963c65dcc6c2317d3328ce8c1003a5df4a156879977847434671aeef544452c164003a08e6a6bd5e6197a7901d720327fb54d2a1b98bdb35662e03db4e0fa3298752d89149465263f5da87e98bd8bd036b69956bd21d11b16ee82aa46ef5892a4c8a4d24c39823c93bbaa746275402f3032933fe934c69b8ef1ce9b01495ed1963d9058d5c2b2441fe91a3335b8d54c1b503ac5651ed988caa8968c199a1c42cf17f2af8a5c461da5c68bc665aa13f734fcf032ee7c0a0effe7d1d8f2cdf107a0124e8c13da9546241d451d0329c326d7a0c8c032de15e981faafb9b78c2f65e032504db8b4821aeee6e6c4544b3423d5709ef3c03975c9c4faea4c2fcffb399ffe348f72a26d556663eff2ea8d396e04b86c9352603738e8d6995e555f42c49512bca263bf278d1898feef1930c32a563e16edecf1703f65641cf66704770bec65ab083a1a04210da306a02f4a1e28f8962d35d0428a4037b3c5fb406817107abd9763afa180a4f87e20248efc199fa8f920f61ad82ab8a03a183eb85128629add482919ddc41aa0c66220d80ff85529ec8dd06eb8430bcee03367f6ef4ef40c3c7856716b5174cf4505ab484f658b2290627a2978713a781a604592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032032e2bc0c0ff22609eac8f10e1c8736f3e780dcb85055451e7ac674e2667ce4b570058210328c9b369ac351c2084946e349887c6b1e8c79404f775a43f983883fc5f7508f05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff030383ddc31a9a6c7d64ef6052112ae8d7658d03ae63cb3d337e4f91c14ad69a16031bcaaaf2bac067ab11be392be33cd2275d78f1cdb7320e74e9357cd89a5e31ea00582103e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af04f1eba241c115de20e079a194361f43c005821038429ca5ba15a11962ddc6f54d48cf2f25ce5d8189ea48a3684daecbeca9aca4041010058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b582047d86bc1611a52a93d15b86bae6f3bf3fee3e232ced858e41ae4a60f92595dde00582002f8be445510e05cf0714d50878d70174e52f46a0d900b7e8382c36cb814f52b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a854c1abee5f1040b81d57ad97663d004f5df074cf3800582002abe0af27a1a9d3d887c8a3cd6f40ea873feae1218aab1d6146e1a7c157aaba41020219014c00582103f6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c704101005821031f25289b5c9db29d46c3566463f71796d2e07c9a7a96a888214082f19288cd004a094c2c05a83ac830008300582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf4aeb000000000004b8ff39fcfd51003100000026415b09d48b3d92f0880d0058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f54a3ad8c7ab6b731045b5b16e3fdf77975c71abe790218480219f55705581e03cd72a9676aca3ae4f9edad2262d2366015f79a7917e8aa2ebb8ababbc00701192c1d038875ce9c4bd170e3e20bb8c35f086ce07f477c5538e9bd5ac2e024563e80755c05581e0337ec6904f6a8ea84d7ca70dd44a78004dd9a276d782a3099c3797389f0040105581e036cf6c9c6a66b7f3b7aaafd1ecc35918f2115043d5036b2456cd3ac60800c03470cd871f132732005581e03c0129fc434e29f46be0c71f790f9d813f51663ff5bd7a093a2c1cd6b8004010219f48003a1f0d77fb0dc0a4ed36cc5def748b3858cf44eb874aa5194964cdef2f285bd220394cbcba0a65dc34d29352900afc83b80b20d1d8a6562f9c3d8e77ea3559161540391dfdb646d79c9ba7fa474930d7003cf557c662ce1bc7663e21b6f0842bb60ca038cfcc8c3b99783e1d9001ed01002dc710536aeda726f5664e4d234775de9a64703c082bcc6ffd64595a7beada63333c15ad8138d6616add6ebfbe2f2b45fd0098103ba27c391b5553fedfcef2f4435f02f40fd15464be7e15effc7a961a877bdbf4e0395d1291cdebbb782a873aeb5729e80c349472a941cd5516859d65c1772927fa30371614c8d4c462202cc92681c2fbf8f0b1b0a6f9f296cf265c6089fb3d57496510362d88c27026632656c7e608d1df4ecebc526953b9011fc9131bd4d45ff191733035231a2697bc509b7381a8f570ca3243b0d88567d69e223cc781d3a58aba18502033f5cb57dc0a5a7fd4a876cdf38b9c5567080cb13ebf28eb7938443a97730c73e0219ffff03cbdae5a07842a3c2f725a0c13adb11f801bf3e90fd6fec5934242944985d385d036199712109c9cd81aa89765d2324b45e1b59ef945a0c35871bf29c6fc1a3cd750389d9c433b3733cec97291e403e74521bf16ffd70fce58b1eab4a42e64304a52303a74f6a61ac36cc780fefef3636abb7ce1b0450c135dc0cc70e9d1daa8abafff60356310242462085e21dc2efeeaf1e13dac6dc49c4009c8c50d7732e7a1344cce30340f9d4cc62639f25515257c7c8fe0270615a4a4f0c575331fb3b538e266b878c03dd796297f2c30dde22b7354866e467202de79585c5a0256834728a18eeaf8d610388e1b89cadf8435d6e811509c985d8f8ac2544c683e36f2765979b0b5dc16de80341c9e4c72a6fb1ecf65f5445d581b9bc5133248b13e56ba90f3fd317a1e64d1a0219ffff03ce305a6a8ae5676e974a42edccaa9f6cc774a4c5ce0607b42049578f626f29ae03ffffb6b7360753d5d9ada1cd82d6fa6df93eeec8582d50c9df7ee4c5b8ffc9b80219ffff03304176b6892825f375b90e6a16712994a6e590555e215e8c100dffdf9a17aa0a03015256b5c23aa6102cee1d534cdd49c681bd5f8500cdb38dc8783b40bbe193df031dcdebd82f092e22428ca1909cb2a73e41e86af14adb26fdeef62e1e79c1678d03d921fafcfb89595ac2d98d3d2986a4ead231997970c84d8ff174a9524498c1db0339fb904e109ef43ce07f9b14fd47bbf6f0250025a5e7cdd98fb8481b450d205903817c8c0c9b2fe19190f75482b73c4d27ae109318f0ece093e73b4baa4038523f03fbc4dbfd8b5133e4de4170172f3d8af305d7a34fc7d3a7b6e8317c26b561b3fb03ca2952604bd230b40422e43dceaecb5c593ce04157bcfb05871bdcfb8b4ceedc039d7e4bd520b4400b974a3c37331255253971c3d6205cadfa96fe415e9a84895203d0d9825033807cfe0c9bf5d0cc253296c1a67a638fe4f8ee63dae03fd79dbb530393d1488cd884c483edb1d6b34d285de481efd9aae952ce5fea8f8ebc852f7384039d0d77c5f3753534f0be2212ef62c5ae9c766cff12a20e4e41ec834c2cef59da038f8025bfa55ec8227bb36393ecce0939c2eea35ccd4897b204ae2b12ced64f2603bfd7b473f04de6c9c22603d7b74a332cab0c786f9a6b43eb6dbe7076342cacae039a7d063ca9433a129d1e150858181071fc09e9c8467efac0343b27ea1d4e318b03cde737d4157f54dd1a49d9010b0f9b282693a57e1da92120aa295dbc82a60eef037a0e3cc2267aed359453da16260277beba44d769aa0cb2e54d4f5f21f932449003ed893a58c087b9ab74a8f7e83b50088b513dade29ed17f3a5697ab5ae9efcfc70383838af113bf75699c1cfd30691310560ac49ffd99aebd492e98cd54c729c02e03d85508f657679d5d65afc43b76f6b9442b1e7c5a57542eacb5ba0c5f9b9da0d905581e03b013f793ee9eab1bfac8a89631fe355e1c70c72bf499abcdb7e555e1b00c054770c7d3835bd6c805581e03d8400e05be57c8ed9436030141097ac4a389636a594cfd025b846551600c0346de62ac966a2003ad18a84450f980eb559ca01a2c881d36cf195ff2a0046f4baed52dc824bc034c05581e03bf454c38c35fd2a2b3cb68b833ad68a4dd4f3b6f7d6a6355e125996d50040105581e03a9706261d191a252bb58f1bfb7b03311738668e01ff0176df5b52ac2f00c1838471fe7ce287b78b703b7c2f191ae78dd918a6de2b2e6751b0b21ad0563d773199a4794bf3c3986813903585d44212106115297dfa7fcce9a74b242b8565702da2308be5c85cad23681c003e2ad3419708eb9426279402fbb43ead8d81a4eb7d63c1b4f5123a98eb414830205581e03b6bce02674579af0c0737d5398f139004d8866b70b1fed9e808c8acc10040305581e0333e7a91552ce9cdbf57baaa10598deaab8b016db91f977152a1a6264a004110219e27b0353c719f77ae4c06736e81d5d9869fd966d0b5f512c61734371a4917b3c2ff29e0350b459ee6df332d5d26d9caac9a5fe403ec59560f0bf319337be31d63e65abab03edff7487cc0fdb0673560cd47ef68f43c74b28a0bc5dd4f09b2db7e485ef7e55032e575add5579d32929bb0d1099aef7a90ecc4375aca6fd7d9e29f2836f525d060375e4878e2450d8890b3088fef2cda1274d44dc51f8e7c65a11df905bee391727032bd4b967b48ad834e2a42e6a0a1c189f37f8ccc306b0f02a7f6ccc249c64eaa4032f34bcb9fa9faf35066d280d0ad311ae9b685ce6028e76bc9f63efc79b338cec0340148778aea3454db6a5d1e77e92a6f370576d1bbc1d82f3091f6515abdf3c810357a6d7720db246a173d0744061da1c2cb4e4f97f21cc56d729819c7303bc8c3b0219ffff031588f400993430480cab3309f46f18c14e9acdde7ba3b877bfb4f5fbfba610c8039d1be2928848d6189aa080c997fddf2f8d4c997634f8c8888f436e3b859aac0203db409d332240b078f9a8a7ab52df54dd57827b59fdda1b5e0678f6ac254343300371a8ceb8b300728a74acc847f72ff7e879ce5e8d8c822e8ab76e72a94c09a328037618ed8a7ce995fd70c6b962af2fbc4f717cbfc450f1c571a4eb6b975f475ec403c60890d71fca1dc9525a04d681ca80bd3bc660489603287dd334b766bd1215c3039f80b68aadd9bf85e5e2368caed3e492a884ac5af5127a14878239d478bdf4e7031c222846ce4294785bf7893930d96386946d2aca0faf800d2c75474b2d91aec90219ffff0394d6377f1b61c6f550983b498a73cd0850c641e3e7a65f96d6260cc1d8aabfbb03747f12b0c9e2516248e185ef1b779578246a321ca5dcdb0b74ce42861ea95968033942a6c9d9e7e405a1785b3fd9802837b86c52e87ee0c5522626594c7277ed320398f9de04be8a8b236e602c8a64485961f2666b2daac7ed933b5ad8153e08315e033ec1699cb6d8ce44782221fa57263ace81792700945c4b75ff12a390a467782e036e36724c161aa264b9c832fcd44b64c4a8ba62848df155763e28693c4d0ae89503d79dc2f5d7e222d1d560190be33d7d7e3e3e48acfb9d1ad096fc85e25fe5933503483dd993c0a66b05af4291d7eaf9e7bacae1269fb5beb40cb6281b3f3b429a5a0219ffff03f904237acd05d17489e62210f6d7243dbce9ac105373ae1b144d2a226fb787e40343029c015d44b22aa5743763acdfe5ca142e68da35ff38fb6f74e014f95b2cb703d77a281aef6efa199130b0cd17dfdbd176d7540046fcaffcb826d935d9a3977603183cf437be05614aed9882a02bcb4d9cd0a65c0b1e09042380469b7793ab762903b30f209d30c41f15ee7e3c119434fe2e1356870037f71b77a7dbcfa46c557d73036ded38cbf16d1ae5c49b23408b89ce19e8b5e85bdf95906b06f4f0590c0f71d1030c7d7bac92930f58f85a2d9ce8cbf8ecaa1e8c25ce14cce7a1945908d24ebebe03874013b3e8a4ea96ad114fc943b39d239a11d954012d86dc0b8c8a5624b6bef003aa75139185ef0c4bac6a8acb8819bc2b8a56ccda5b01446f2dc1a2c4681a4d39033f5aad2288382ec6f1b7a2baa334b22c181dfb8fa444001dbcfc5da6b6517d4303eeac900e2e5e1999df675157301639439ccbe0f01ff6dbbdc4cb72b5251eda6c030b066ebaaedaf9000f16aad5a2ecae3f215d374cf12cd5b283a5c994bd170e3403bff603cc3171f25888530c2ca1f153f8859ba2f770e3b3571015a4ee6f7753bd0398e232f2f3e271ab493a84851f260f95688d995ced4b0379d43a1fec9e8b310903aa70fcc7d67eb735a93dc656d81f5edc1c97bddccc5f81ce15eb77e0dc96fef803726734718654720289151852059f0424a8ef058c7b2182e59e1708c8a499744e030f44aa294899a9e685fa001545eec269cc8e30c42fd2b6f6c8ac9822d9fa72cf03820eee0eadb9ea315f38e914d834207c434c59001def9b8505653a3860aded8e036c9d702d83acad5cc1b17dcbd69a698ac3383085bf8a1ca20f4085e40e595b3503e11946ad9e6ea7c2555ff65b3e701931e63de427fba6aa88d9ae7d7d5f1a4cd703d1ee064c60f93a197ed065312bb0b1c4d708b35f81fd70403755b49b08cda60a035bcd919d5fa49c5d6a2ec563fd1051a21ff7370d6f9f763759e1c18efb6e14bb03fc164e7d6019b5ee7e3b0dab4cde16a64dab97e99100a50752a5e4e42119b08e03aa18a69313f9148d08d0835d5a6afe74c244200525051c640552d25fcc63956505581e031dc2091fc5155187fa146ed94267df3b2f066ba73e1c62d314d000cbc00c0246c64c4c4e160005581e032095b6327a715ec2b6e4d13dc039eee4fbcdbf68047ecb48c1c72a10e00c02465f3c5d073570036723ff841a59e3c574292d87f8c95e42727fd40a6755e7932f02bebad18eff1705581d02257dfaa7e1209c2a4620567f9c146e27420eabe7693181189d5befd8040104592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032032e2bc0c0ff22609eac8f10e1c8736f3e780dcb85055451e7ac674e2667ce4b57005821036c4ca4403633c75448c606ffb199d22fd3376660ef6f6c2fcfef82e0dcf8ae205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03d171cb5ad9581a21838e775c0dbf99cc771522b9fbbb873d6274b96c2819009a031ba5384d895bc36659a5b40fbf5b34336e212570ea4e49aa7455673c8e3750950058200251a91fc4a823971fc489168743fafaf63fbcc9c47fab9eb9ff1941b87dc86c4101005820021540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af553a34e76ad274e234417e6cf959fc649c560cdb3ea40219400200582103747e586a94981f78bf8ffa78522169d28ac712718c8218808e309f80e3d30c605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f028c34de90be6da6338f1ea8f62974fba05334d60749b4a6c48effb7be48544501a31b163000581f02c928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68854c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2021910200142006600582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5820c94ea91c8acbc3e2daabd2688ffb7d075e15cd6d4c23d3193acac2ad390410e3005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a84e076a0ec774dd264209b2c86013b402184400582002397ae88bbc04e9ad6417341798f7eae27ec4d6cf01c6dcb500d8c0027d7b92470350dc99c99b22005820026966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c741010219840000582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5dc300000000000122e4a8374652e3740000000000000000000dffe7823d0058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f547b37a55ffb30c11d95f943672ae98f28cfb7b0870218480219b4cf05581d02f22d46e333feb7a433144957260590fddb74a12ca6243fe3689f0a4d0701192c1d021901080329e5e57fefa82259846fa938c9424ab604ebcc826f1150a80ee346fa2ad44ee705581e03159949fe376ba04c8d5656185121dc68707cdcad9b977d3a01065bcb400c0347010bb09d5b13a005581e03f6f1689bc652ec75627c929059d1f01b196c6a3e4bb49ef96b8df015100c0247028226907a90000219bf2c03361c3477958c4282d5c38ddbddac1c1eaeda7cace3284bbf52409b341cad01ef03c04f1e41298770f9264eefc378dfed1816b13b95a989a2c1ee8704ecd22ec87303136b36a7cd396a36aa226d48ffe27bc646ebb409747bf3b3723966d66360c67403b8b76b0b02cf9aaeee3d0afce135efb86eaedd3347bd2f9072f763212a16205f03f9efe33a97d92bbcd5ac58966e1a27eae905dd679ac59c41c5a172b3324077b703d8e2a4ae8497646231b64170f7cf0a822597e4737e348408e5eeb73d428e09e70219ffff032c01ca11b0e85fbc61ce4e9b449b941e0639444d01e4bf22aaa4579a8afc096803fe85430d3b58782de25410c236d6c7f18095208052b5a3536747ef25ac3ff44103c6953871c84d7943fbbb8627599b27292acd1b10e7991bd26921ebbd6493212003adeb380e26992b66fea372104098825224a84531d822d39da830818b6e3332a70219ffff033a36b1c28708af8bcd7bc05650dc039f3832f1cd297ce0940b34edbd96b383490334d3491cef37fd741ae830082809edc142d5038babc1b979c435e69ef54c9d4a038b36b1b580ed653f2faabf9f0954b919e17eeb4279476df18140d0d04f05df3303ce4bcd2be7f9aa88461aeb43441be9c204e72ec61e5c019a5550406b81a6992903348baf48b1990ef69f3f3088e960c4286dbfd7f8b50728e9c24635ef3464b42503641281d16fb2b35c0b9a0fa9c7f82fe4e464eb9ebf9ca9bc0eeca5e2673a6d88038d1d1817a90521ff5fd8ae3c5d9bc3eee7fda32275041bc7f705e640ce9ed6e10329757c8243decbf8b44156cdd95147e26be0d68385b7080873209099d785af480367b6bc797b11304c51fd607ebe5f93d1936a9ce82d0cc894e234b35c9c5ef53903ca79fb2c017ba21292821116ac707006ec0e42c0f7921595b3150382e535146903961c0ef5b51cb09c27eb8ff4500a4241b9db14a3d500d55da83713f9c18b177303f3c20e5f1d67b7e7d1a8245f7020b8659d5c795d4716e532b92b8afad3fb8d59031888cd85aaf1d7cce2b55220d667de488a3cb008bab6364edf191d7ca5200cc703002a6a098db13b20341763bb7a5c05088f510939ddc1fa312220bfeb529296820219ffff0219ffff03e482ebd114d10ebfc09ee2a110c2f440743591e8934cf8387a299147985154c70313523308c8618aef593a13bcab49fce888deb30fc48a3ca970227d762e1eb2eb037484264bd427815c4be63c7058f5317acfeef4484245dadf1205afd4d3e4f26b03de8d394c08912460fdd059497859485739eacadc3e4b829ff08cc0a1c233742e03fec5ab1182720cbd406251a34a27ed3d233ad43696c61d9fa9da10fda0871d1803cdb7f0387714ddd5fc94f4d7a4ed3a95c0dacdf704bb6b1b3c26bef7228aa5880313fca104be442f69d57d93009e3b3908ca376a26d3d1b70083e36aa17b529f9d03d3da02814e4e8908f5a8c64360595a48f7e3e4ff457847647e1b3546ba460eda033a02f08f88829d9af2839448a3979bc37b1fbb18721b4e08b6fc4414898de323037e5d432f2149500e222df08a8d096a17cb3881c20ee3a8a8deb1b11380bdc0d40306449df3252746d59470a11f7218d759e560f81e06880f08ab7841925d09f1bc0377b4e72feecb6107389b155be6ade11d75ed7dbb18e674fa509f830495b787ff0355ca93e5c21bc834e234215520eb37d4c06497c979ee7ce57797b1d3901c23a703876a249d17eb0b39b3e88b4cf6935e61864ad6030891b4801db2aa3d2c78d1e003797464d7dc51dd309c59199c833a7933c65ebc6fecb2f28184c662b3b93ce24f03fd05a263e9c56110c2df56110feb7519d237f6d81a6098c252c318ed50ffadec03c50244b00df8847fdbc33821b74abcfb4b3701356bc582f3a8b9ab89c45bf8f6030f382fad974f8d37e259d4612dcd5c656345408f009fc81d9c13d921c761be2203f6d91ba4721c3392d208f67980ca49134fbd5f4eb5f30e51489ac3e18dd0755f03fcacf4ae1768f728a88a09b9cdd82116636910e254d16dc1543e08e30863e6c0039fd6d355bed03d2a3cb58d9d9d7e26a6c8f365dec0e9a5edc3060b6021e8585003a5cd402ce2c4e5c7090e6cd7f0dfd8f23e542411bdcfa3bd8ee7b3c6cea39e5c037a90dc3416de93dcd5d6f6bad553b4287319ca94fb9755d5504395c97cf0d26b035357db48f75f06f6cc6761e94fd0b658f6b27a428de02c1f9bb1f263bb52021703fab8f62ac292cbc3577974a0fe02bcf454d4222c42e0659c3e9e8a5c5a3d11f303c2c95652341774ba86b31dc871c2fd5805fc48c834dda3fc8a8d8813eafa37f503b2065b7f0ae3b32edbac8ac7806708d044096f03ed49d8548d6828b0755becd503969f7d142d9c5a3bc8b51909df1bff9547c5d02cbf7d402cbda3b3f8941cea220361dad25b20111af8333652e47ed472c36c34350e98f165e4d7f4c627f53ee52a038207a749397691d0c3e1b050baeedfd2554cf8f50c0d63b0ba2deb152e0b1f77032e957dd08b30c05ff6ac9a9a784ce8f9d2f8220a242ee6d1d51371137eb97adf03196ef9afcc4de86d0b4054db6441aaf117bd935504e5e33b454a83878a7322360349d351535240f35fc5c311ec3cae1fcf540e1e66e3ca3cf89bd73c6f3cfd078b03e652039e64610a34f63f443f1d42cccc512e9be8dc017f5741ec579ef94f0e900349f02623203548484f455c3099e33931eb1d42749e5ef20c50e88b435dd368520374a5294203bad5de84d4f6cded6674feae9fa8191f793d1cc6d54cfe00382d3f038a73726f586cfde273430994fb2558a396b9e3ec2578facd2322b5cc3a09be3e03419e834704f276f06e55a84b41e7e37362167cb727a1c389d75a58ed91d8330b032c578d448d3d00480dbd533135fa6d6db2a032633111cf8a701d94254baae041034e0e75dea2b601864927374d31a7b5afe192274f69b69b8dbc1d6f3499501bae032c8df099594459e2b8861963d440f3a085e6bc89a39b3032cfce629ce6f2a1fe03415d3c01a067ee5b8c156278cc84f1d8621c7ed0196f3a7ae8fff689d5d7dfce033c65ae558a90ebd71fed00476a096cfd9ee26c1340a2b6051fc78865ccc59a9b05581e036d0d7e807d18cd585bf6b46909ff047862bbc961763a72088e62f432200c182e48014edbe72372980003b3be9d5b3d793f7881040d9fa5f7f517be67fb3629b9b05e5db6faf724524b0103cc041b3206de20df8e392f332ddebcf25487931fd8ba019e91e003214fea1d6c05581e03f28a2499f8a47d093cf590c2f6e9e1d8e47bbbcc5ebffe8fec8ef8dda007011bffffffffffffffff030d26c2ed8167ad0d8b890a064934d840ceeeafb8c4981f357552ecec088f520905581e03b3bb3b5179c0d9f17d365e4bd6417f069ba0efc75b03a10fc8c81d33b0040705581e03fe7cf1a9ad0ede236ca96b6c253c7f437094b8b59a2f96e8d9b0d481d0040405581e031ce8989ac4726304b4ed7002d00ebbf8a880627cd92b3026f3f97c49500c0145174876e80003f3737260f94fb78dc17734e4c75fdea2a2c8d91a7b598c2cf1c753f98e978fd10354e11d607c88f2e3bbfd16800471161fd271fff8089777108b3ff4797461b76d0322a4b97c5e94ddf5119d0162053322aee0886b2b82b17a9e54ec31337e0d525405581d02348bba966a4a4b5d4e80297eaf5a16758be702041175321946cca96c0c01464c65c629400005581d0279103195995da8140c9877951584c9932dd27ac23c52466f9990fffb0c186748053cd8cad67b831d0219010105581e034abb172b73cf78614bdaaab2263672add862e69f53c347fa60ccac8030040103e1ee00e8912bc74ff0f5c8122fdfdbe216746e79db0f5d3d3477d6708e99f265032d19ad35f695f771fb863d51711fc33dd1679de8f7ae21307410fd630b304dd2021997ff03d4a86361a562cee76216c7b6cd3c7f8d808ff2888eb43ed81350b20d2657817703a5d76a92ae1f1bc95e095fc617eeda922a7df22ae5e3a8b95fba7af6b167524603b436f794708d26006213d88af78701d8324b6963515f90559ac2beff98ac412003d8500ad09e898a72ef6571c5b45e8994f95d111586e1f0ba9c087b24df28406f0326b41be3fec771ef1680cdc7d6b4c1a6f785d03d9a165db263a4c0969e87724d03194f8853d4c1021589518577a1ce66c7b5e8a378e9a3c61055167081d0acecad03e64ec19f99f310a2a224494790c92e1a31e05a61caff738db1314857117164b4038d49e683799ff1c3540ccd953ff293105204e253751c97fe4c18923abaca4a2d03466dd2b83c156fa26d7a5f18467c1473a2c17f5547f1cedbf5ab84edaf50c270038867ce1d86a31c0b60a5b3f2c8591d4ac1cd90d98434dd118241cec7fe78285a03e46822b01ea2737746fd6453d2abf5ff82c9cd7ea388851c93520dd1628d30e603e09c985679afe54698c0e2c0abe95a57e03f0915f86431c4cb4cae3687cba7f20219ffff0219ffff03871f4af9ba7aa0bc5ac639cd09ebcb2680a08f18fef306cf26757780309246ee038e58c3ff6f1f6a3dc254517d595632bb1d3ae712b4c945cea8376019a5838ae2035417895dc363011121aabc47824ad6904e149085a830f6b65ea73c6a4eac6f3103edffa5b9e0657b816ea17ef538db76b619d716a19dcb114894359b4975b57ae60219ffff03d9a879cda2bf07d8e36413cb8b387ff044a4247d8705064cd07a5e471fc2d5e20219ffff038979ce4a5c8b15cc3a6fd2da13bd990a6d211b38ade14cc608d16a1529479709038c34f0c97050cbfd326d337e7a9b17b1dd8809d1f85f8c78d50d8c79d469946a03200876a191060637fa9ed25e0357325b566936ed22d77b7ae170caefff3edc7a037c33bfd2ab0ecc2bfd13806284bcd4eba0d8bcf349f4417ec1a635411a02c6f103cc77db78c199dab504d7d6ad6e63fe1666481259d5bfca5c8bf3701bf3915ec403eae49b237ffed9c3a1712c4916dd2d6479a3c43eb52edec220369dddcd96277803c2d8e0ff7b2755db71598773497f1dc150a42f10d08057560896cb2b739b54fd039568559f32210f5a668aad8ff808f8e3330e89230fd1e0ec7fc0948d2e8f763c0311ce3f3dcf59715781d12f67f1b770c8b333cd63d58a55b4fe1e475c2b7a9b1803e1104f42124ed06b2dbd227c1ef7b2be3a7b4c40fb1b512ead4eeabab6adb16f03a0dfb20e8f73cd456751f8a4e2d525cbc37df62f9145b28c1cab322ceea2d5d6037d3684f325e6e8ae4a7bb89166ba38b2f21c02d1823e425087dd1cf7480f9a9403e09dd974030227b074e93e372a03683a35f84ec67e95f4eb2c5af6c5adfdff8a037541694d29e84a1466e01009f1e7fe9bc942ef41933f9ca214b2cd7d8953bb230390583e6612b597648a2ae0224b2a86bee02dcd9b69961e94bd1605064b5f5fd803370a28ca50741cbee165cfd31fe39eeb1ddf3922ec30a43349c2498553c0deb40345751fd8aa2ab19a9be0696aafb8bbcf56730d6222c270c1be29b1a466fe0b63032aca62ddf23a3bbf5d6b1d7ccc0f85cccfd677b11ddc4d672d9aef088527c9980392076f20ab252371b618ded7cd1828a165a510ba7a31698b002fab5b6617c2e403efc3b306208be128263437157beffa587e760e28e192ba511c7204614767d3f803856447c5b7b20bdaac8e96942db6a72447f74258a3308efe7ad056dc7667e67c0320e51309aa6aa9802ab26c5fdfa488d3dbf54e1636974f3c9dddb902973c5e15036fcd791701cf5036d8c5b7fba16713a04200a0e2841ce6b2cee36b36d042490e03851fecc0168b3c19181dec5f2cf2f6a40519a016582d899b95bf792f701f673a03da4bfcd9389280b292b60a6d03641f43d2dad31c9b37ab7275793ae670ce60aa03706d28b3fa565be69c39be4699c24cca13ccbe8ead9faa19367a4526843ae78503a90bd7fd30e90cd4823917a4dc151ba77194f08278497562da279926c613fb7e03a81447e497605ebe4efe9c5235f4bc9b11cfc029e18c22b62c2f4d02c8aa946203bfbdb563e0ab3c6f09957d90aba10d8f8280a0a04e5698161e26aba717aad64805581e03ced9753ec7e551abb29b56458da299040e747195e59b14e55e21ebdaf00847cac245b887ec00031e4366082444073b4bea23568c108c4288f2293bf126f5cd6359c41ec52fc7fe031c5e8f368b5983459479ed902b8827ce8feb312b0169bbf1c838605197c6769c05581e03ffdf582fc711c41a5240eb84686ce63338b780d412f53870418cd82c200f01472386f26fc100001bffffffffffffffff0459480f6080604052600436106102f25760003560e01c806381707b801161018f578063cbd1642e116100e1578063eecd57e61161008a578063fa2a69a311610064578063fa2a69a314610814578063fc110b6714610834578063ffa9286c14610854576102f2565b8063eecd57e6146107bf578063ef6ebe5e146107df578063f3f480d9146107ff576102f2565b8063d5ef7551116100bb578063d5ef75511461076c578063deace8f51461078c578063e19be1501461079f576102f2565b8063cbd1642e146106ff578063ce803b4f1461071f578063d44481631461074c576102f2565b8063a35962f311610143578063af215f941161011d578063af215f941461069f578063b162717e146106bf578063c7525dd3146106df576102f2565b8063a35962f31461064c578063ab033ea91461066c578063adc9772e1461068c576102f2565b8063960a7afa11610174578063960a7afa146105f757806398c4f76d14610617578063a239f5ee1461062c576102f2565b806381707b80146105b75780638d8798bf146105d7576102f2565b80633a7af631116102485780635a7e1083116101fc5780636cff06a7116101d65780636cff06a71461056d5780637398d28214610582578063767631d5146105a2576102f2565b80635a7e1083146104f95780635aa6e6751461052b5780635d475fdd1461054d576102f2565b80634de8c6e61161022d5780634de8c6e6146104a45780635325937f146104b957806357344e6f146104d9576102f2565b80633a7af631146104575780633b8fea2814610484576102f2565b806323c452cd116102aa578063302830ab11610284578063302830ab146104025780633408e4701461042257806339ada66914610437576102f2565b806323c452cd146103a25780632b85dcc9146103c25780632e17de78146103e2576102f2565b806313948c76116102db57806313948c7614610339578063149420241461036f5780631bbe15ea1461038f576102f2565b806304e6c2c0146102f75780630f7aadb714610319575b600080fd5b34801561030357600080fd5b506103176103123660046133ac565b610874565b005b34801561032557600080fd5b50610317610334366004613509565b61095e565b34801561034557600080fd5b506103596103543660046133ac565b610abf565b6040516103669190613943565b60405180910390f35b34801561037b57600080fd5b5061031761038a366004613747565b610aeb565b61031761039d36600461362d565b610b31565b3480156103ae57600080fd5b506103176103bd3660046134cf565b610d9b565b3480156103ce57600080fd5b506103596103dd3660046135bc565b610ead565b3480156103ee57600080fd5b506103176103fd3660046135bc565b610eb5565b34801561040e57600080fd5b5061035961041d366004613422565b610fab565b34801561042e57600080fd5b50610359610fe3565b34801561044357600080fd5b506103176104523660046135bc565b610fe7565b34801561046357600080fd5b506104776104723660046135bc565b610ff4565b6040516103669190613938565b34801561049057600080fd5b5061035961049f3660046135d4565b611009565b3480156104b057600080fd5b50610359611026565b3480156104c557600080fd5b506103176104d43660046133ac565b61102c565b3480156104e557600080fd5b506103596104f43660046133ac565b61110e565b34801561050557600080fd5b506105196105143660046135bc565b611136565b604051610366969594939291906138a8565b34801561053757600080fd5b5061054061119a565b604051610366919061381d565b34801561055957600080fd5b506103176105683660046135bc565b6111b6565b34801561057957600080fd5b506103596111ff565b34801561058e57600080fd5b5061035961059d366004613658565b611205565b3480156105ae57600080fd5b50610359611222565b3480156105c357600080fd5b506103176105d236600461362d565b611228565b3480156105e357600080fd5b506103176105f236600461362d565b6114dc565b34801561060357600080fd5b506103596106123660046135d4565b6117aa565b34801561062357600080fd5b506103596117dd565b34801561063857600080fd5b506103596106473660046135bc565b6117e2565b34801561065857600080fd5b506105406106673660046135bc565b6117ef565b34801561067857600080fd5b506103176106873660046133ac565b611817565b61031761069a366004613422565b6118b3565b3480156106ab57600080fd5b506103596106ba366004613687565b6119c4565b3480156106cb57600080fd5b506103176106da3660046133c8565b611a06565b3480156106eb57600080fd5b506103176106fa36600461344d565b611b83565b34801561070b57600080fd5b5061031761071a3660046135f5565b611d0a565b34801561072b57600080fd5b5061073f61073a3660046135d4565b611e01565b60405161036691906146c3565b34801561075857600080fd5b50610317610767366004613658565b611e56565b34801561077857600080fd5b506104776107873660046133ac565b611eb1565b61031761079a3660046136df565b611edc565b3480156107ab57600080fd5b506103596107ba3660046135bc565b6121b9565b3480156107cb57600080fd5b506103176107da3660046135bc565b6121ce565b3480156107eb57600080fd5b506103176107fa36600461376f565b6121db565b34801561080b57600080fd5b506103596123c4565b34801561082057600080fd5b5061047761082f3660046135bc565b6123ca565b34801561084057600080fd5b5061035961084f3660046135bc565b6123df565b34801561086057600080fd5b5061035961086f3660046133ac565b6123f1565b61087c61242b565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602081905260409091205460ff161515146108ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613d0e565b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f4234ba611d325b3ba434c4e1b037967b955b1274d4185ee9847b7491111a48ff9190a250565b6002600054141561099b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190614518565b600260009081556109b86109ad610fe3565b8e8e8e8e8e8e6119c4565b90506109fe81868686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508d95949392508891505061247e565b610a34576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e19061428c565b6000610a4088886117aa565b9050610a4c818e6125e8565b610a59828f8f6000612688565b8d73ffffffffffffffffffffffffffffffffffffffff16827f9475cdbde5fc71fe2ccd413c82878ee54d061b9f74f9e2e1a03ff1178821502c8f8f604051610aa29291906137f3565b60405180910390a350506001600055505050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600360205260409020545b919050565b610af361242b565b6000918252600d602052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6000610b3d84846117aa565b600081815260086020908152604080832086845260078352818420858552909252909120549192509015610b9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190614109565b6001810154610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613a87565b6000610bf3600e5483600101546126af90919063ffffffff16565b905042811015610c2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e1906142c3565b600382015415610c6b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613c54565b4260038301556004820180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790556001820154600090610cae90610ead565b90506000610cbb876121b9565b8454600084815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff9094168084529390915290205491925090610cfe90836126f5565b600084815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff80871685529252909120919091558554610d3f911683612737565b6000610d4a896117e2565b9050610d563382612794565b89877fec2697dcba539a0ac947cdf1f6d0b6314c065429eca8be2435859b10209d4c278b604051610d879190613943565b60405180910390a350505050505050505050565b3360009081526001602052604090205460ff16610de4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190614255565b60026000541415610e21576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190614518565b60026000908155610e3f610e33610fe3565b868686866000806119c4565b9050610e4b81856127d1565b610e5781868685612688565b506001600055610e66336123f1565b610e6f3361110e565b1015610ea7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e1906141c3565b50505050565b613840900490565b60026000541415610ef2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190614518565b6002600055610f013382612737565b610f0b3382612888565b3373ffffffffffffffffffffffffffffffffffffffff167f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd82604051610f519190613943565b60405180910390a26001600055610f67336123f1565b610f703361110e565b1015610fa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e1906141c3565b50565b73ffffffffffffffffffffffffffffffffffffffff821660009081526006602090815260408083208484529091529020545b92915050565b4690565b610fef61242b565b601055565b60009081526005602052604090205460ff1690565b600760209081526000928352604080842090915290825290205481565b61384081565b61103461242b565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1615611094576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613b52565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155517f2cec73b7434d3b91198ad1a618f63e6a0761ce281af5ec9ec76606d948d03e239190a250565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b6008602052600090815260409020805460018201546002830154600384015460049094015473ffffffffffffffffffffffffffffffffffffffff93841694929391929181169074010000000000000000000000000000000000000000900460ff1686565b600b5473ffffffffffffffffffffffffffffffffffffffff1681565b6111be61242b565b6138408106156111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e1906139f3565b600e55565b60105481565b600960209081526000928352604080842090915290825290205481565b600f5481565b600061123484846117aa565b6000818152600860205260409020600381015491925090611281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e19061445e565b600f546003820154611292916126af565b42116112ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190614321565b600481015474010000000000000000000000000000000000000000900460ff1615611321576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613bf7565b6004810180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055600061136d856117e2565b6000858152600760209081526040808320878452909152902054909150156114485760105460008581526007602090815260408083208784529091529020546113b5916126af565b826001015411156113f95781546113f49073ffffffffffffffffffffffffffffffffffffffff166113ef836113e9896121b9565b906126af565b61293c565b611443565b600482015461141e9073ffffffffffffffffffffffffffffffffffffffff168261293c565b81546114439073ffffffffffffffffffffffffffffffffffffffff166113ef876121b9565b61149b565b61146961dead611464600461145e856001612999565b906129ed565b612888565b60048083015461149b9173ffffffffffffffffffffffffffffffffffffffff909116906113ef9061145e856007612999565b85837f4a99228a8a6d774d261be57ab0ed833bb1bae1f22bbbd3d4767b75ad03fdddf7876040516114cc9190613943565b60405180910390a3505050505050565b3360009081526001602052604090205460ff16611525576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190614255565b600061153184836117aa565b600084815260076020908152604080832084845290915290205490915015611585576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190614109565b600081815260086020526040902060010154156115ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190614609565b60006115d942610ead565b905060006115e6846121b9565b600083815260096020908152604080832033845290915290205490915061160d90826126af565b60008381526009602090815260408083203380855290835281842094909455805160c08101825293845242848301908152848201898152606086018581526080870186815260a088018781528b88526008909652939095209551865473ffffffffffffffffffffffffffffffffffffffff9182167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161788559251600188015590516002870155935160038601559051600490940180549251151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff95909416929091169190911792909216179055611720868686612a39565b857fa57b3e1f3af9eca02201028629700658608222c365064584cfe65d9630ef4f7b856040516117509190613943565b60405180910390a2505050611764336123f1565b61176d3361110e565b10156117a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e1906141c3565b505050565b600082826040516020016117bf9291906137f3565b60405160208183030381529060405280519060200120905092915050565b600a81565b6000610fdd82600a6129ed565b600c6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61181f61242b565b73ffffffffffffffffffffffffffffffffffffffff811661186c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e19061454f565b600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600260005414156118f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190614518565b6002600090815573ffffffffffffffffffffffffffffffffffffffff831681526001602081905260409091205460ff16151514611959576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613d0e565b6119633382612794565b61196d828261293c565b8173ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a826040516119b39190613943565b60405180910390a250506001600055565b6000878787878787876040516020016119e397969594939291906146e4565b604051602081830303815290604052805190602001209050979650505050505050565b6000611a44848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612bef92505050565b90506000611a5282846117aa565b90506000805b85811015611b165773ffffffffffffffffffffffffffffffffffffffff8816600090815260066020526040812081898985818110611a9257fe5b9050602002013581526020019081526020016000205490506000811115611b0d57611abd83826126af565b73ffffffffffffffffffffffffffffffffffffffff8a16600090815260066020526040812091945090818a8a86818110611af357fe5b905060200201358152602001908152602001600020819055505b50600101611a58565b50611b2182826125e8565b611b2b878261293c565b828773ffffffffffffffffffffffffffffffffffffffff167f78e830d08be9d5f957414c84d685c061ecbd8467be98b42ebb64f0118b57d2ff83604051611b729190613943565b60405180910390a350505050505050565b611bc787858585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508c95949392508791505061247e565b611bfd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e19061428c565b6000611c0987876117aa565b73ffffffffffffffffffffffffffffffffffffffff8a1660009081526006602090815260408083208c845290915290205490915080611c74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613ae4565b73ffffffffffffffffffffffffffffffffffffffff8a1660009081526006602090815260408083208c8452909152812055611caf82826125e8565b611cb98a8261293c565b87898b73ffffffffffffffffffffffffffffffffffffffff167f84eb21b24c31b27a3bc67dde4a598aad06db6e9415cd66544492b9616996143c60405160405180910390a450505050505050505050565b611d1261242b565b6000611d1e84846117aa565b9050611d28613323565b611d328585611e01565b9050806040015160001415611d73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613b89565b80518414611d7d57fe5b6040810151600090611d92906249d4006126af565b905080421015611dce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613cb1565b60208201518251600091611de291906126f5565b9050611dee84826125e8565b611df88582612888565b50505050505050565b611e09613323565b60046000611e1785856117aa565b81526020019081526020016000206040518060600160405290816000820154815260200160018201548152602001600282015481525050905092915050565b611e5e61242b565b6000918252600c602052604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b6000878152600c602052604090205473ffffffffffffffffffffffffffffffffffffffff1680611f38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613f84565b6000888152600d602052604090205460ff1615611f81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613d45565b60008611611fbb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e19061395f565b81861015611ff5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190614666565b611fff3387612794565b606087878787878760405160240161201c969594939291906138f0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcc29a3060000000000000000000000000000000000000000000000000000000017905260008c8152600a90915220549091506120ac90886126af565b60008a8152600a60205260409081902091909155517f419cb55000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063419cb5509061211090849060040161394c565b600060405180830381600087803b15801561212a57600080fd5b505af115801561213e573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a7f0a0607688c86ec1775abcdbab7b33a3a35a6c9cde677c9be880150c231cc6b0b8a8a8a896040516121a6949392919061472a565b60405180910390a4505050505050505050565b6000610fdd6121c7836117e2565b83906126af565b6121d661242b565b600f55565b6000858152600c60205260408082205490517f99178dd8000000000000000000000000000000000000000000000000000000008152879273ffffffffffffffffffffffffffffffffffffffff9092169182916399178dd89161224491339190369060040161383e565b600060405180830381600087803b15801561225e57600080fd5b505af1158015612272573d6000803e3d6000fd5b50505050600061228287866117aa565b6000878152600760209081526040808320848452909152902054909150156122d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e19061404f565b60008411612310576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613dd9565b600086815260076020908152604080832084845282529182902086905581516080810190925260468083526123619288929091906147949083013960008b8152600a60205260409020549190613026565b6000898152600a60209081526040808320939093558382526008905220600181015461239257612392888888612a39565b87878a7ffdfb0eefa96935b8a8c0edf528e125dc6f3934fdbbfce31b38967e8ff413dccd896040516121a69190613943565b600e5481565b600d6020526000908152604090205460ff1681565b600a6020526000908152604090205481565b6000610fdd6123ff8361306c565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020526040902054906126af565b600b5473ffffffffffffffffffffffffffffffffffffffff16331461247c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613a50565b565b60008082116124b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190614166565b8184106124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613f27565b6124fb826130ea565b835114612534576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e19061437e565b8460005b84518110156125db5785600116600114156125905784818151811061255957fe5b6020026020010151826040516020016125739291906137f3565b6040516020818303038152906040528051906020012091506125cf565b8185828151811061259d57fe5b60200260200101516040516020016125b69291906137f3565b6040516020818303038152906040528051906020012091505b600195861c9501612538565b5090951495945050505050565b6000828152600460205260409020805461262e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613b1b565b600181015460009061264090846126af565b825490915081111561267e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e1906144bb565b6001909101555050565b61269184613199565b61269f8361146484846126f5565b8015610ea757610ea73382612888565b6000828201838110156126ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613bc0565b9392505050565b600082821115612731576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613da2565b50900390565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604090205461276790826126af565b73ffffffffffffffffffffffffffffffffffffffff90921660009081526003602052604090209190915550565b8034146127cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613eca565b5050565b33600090815260066020908152604080832085845290915290205415612823576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190614401565b61282d3382612737565b336000908152600660209081526040808320858452909152908190208290555182907f0c3d250c7831051e78aa6a56679e590374c7c424415ffe4aa474491def2fe7059061287c908490613943565b60405180910390a25050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040516128bf9190613801565b60006040518083038185875af1925050503d80600081146128fc576040519150601f19603f3d011682016040523d82523d6000602084013e612901565b606091505b50509050806117a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e1906139bc565b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602052604090205461296c90826126af565b73ffffffffffffffffffffffffffffffffffffffff90921660009081526002602052604090209190915550565b6000826129a857506000610fdd565b828202828482816129b557fe5b04146126ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e1906140ac565b6000808211612a28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613e36565b818381612a3157fe5b049392505050565b612a41610fe3565b821415612a5757612a52838261321b565b6117a5565b6000828152600a6020526040902054612a7090826126af565b6000838152600a6020908152604080832093909355600c9052205473ffffffffffffffffffffffffffffffffffffffff1680612ad8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613f84565b60608483604051602401612aed9291906137f3565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ffd31c5ba00000000000000000000000000000000000000000000000000000000179052517f419cb55000000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff83169063419cb55090612bb690849060040161394c565b600060405180830381600087803b158015612bd057600080fd5b505af1158015612be4573d6000803e3d6000fd5b505050505050505050565b600080825111612c2b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e1906145ac565b815160011415612c515781600081518110612c4257fe5b60200260200101519050610ae6565b612c59613344565b5060408051610200810182527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56381527f633dc4d7da7256660a892f8f1604a44b5432649cc8ec5cb3ced4c4e6ac94dd1d60208201527f890740a8eb06ce9be422cb8da5cdafc2b58c0a5e24036c578de2a433c828ff7d818301527f3b8ec09e026fdc305365dfc94e189a81b38c7597b3d941c279f042e8206e0bd86060808301919091527fecd50eee38e386bd62be9bedb990706951b65fe053bd9d8a521af753d139e2da60808301527fdefff6d330bb5403f63b14f33b578274160de3a50df4efecf0e0db73bcdd3da560a08301527f617bdd11f7c0a11f49db22f629387a12da7596f9d1704d7465177c63d88ec7d760c08301527f292c23a9aa1d8bea7e2435e555a4a60e379a5a35f3f452bae60121073fb6eead60e08301527fe1cea92ed99acdcb045a6726b2f87107e8a61620a232cf4d7d5b5766b3952e106101008301527f7ad66c0a68c72cb89e4fb4303841966e4062a76ab97451e3b9fb526a5ceb7f826101208301527fe026cc5a4aed3c22a58cbd3d2ac754c9352c5436f638042dca99034e836365166101408301527f3d04cffd8b46a874edf5cfae63077de85f849a660426697b06a829c70dd1409c6101608301527fad676aa337a485e4728a0b240d92b3ef7b3c372d06d189322bfd5f61f1e7203e6101808301527fa2fca4a49658f9fab7aa63289c91b7c7b6c832a6d0e69334ff5b0a3483d09dab6101a08301527f4ebfd9cd7bca2505f7bef59cc1c12ecc708fff26ae4af19abe852afe9e20c8626101c08301527f2def10d13dd169f550f578bda343d9717a138562e0093b380a1120789d53cf106101e0830152825183815280820184529192909190602082018180368337505085519192506000918291508180805b60018411156130025750506002820460018084161460005b82811015612f7e578a8160020281518110612f2557fe5b602002602001015196508a8160020260010181518110612f4157fe5b6020026020010151955086602089015285604089015287805190602001208b8281518110612f6b57fe5b6020908102919091010152600101612f0e565b508015612fe157896001850381518110612f9457fe5b60200260200101519550878360108110612faa57fe5b602002015160001b945085602088015284604088015286805190602001208a8381518110612fd457fe5b6020026020010181815250505b80612fed576000612ff0565b60015b60ff1682019350600190920191612ef6565b8960008151811061300f57fe5b602002602001015198505050505050505050919050565b60008184841115613064576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e1919061394c565b505050900390565b60008061307842610ead565b9050600080613840600e548161308a57fe5b04905060005b818110156130e057808403600090815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff8a1684529091529020546130d69084906126af565b9250600101613090565b5090949350505050565b6000808211613125576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613fbb565b816001141561313657506000610ae6565b81600060805b60018110613184577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001821b01811b83161561317c5791821c91908101905b60011c61313c565b506001811b84146126ee576001019392505050565b60008181526005602052604090205460ff16156131e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190613e6d565b600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b600061322783836117aa565b60008181526004602052604090205490915015613270576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190614018565b600082116132aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e1906141f8565b6040805160608101825283815260006020808301828152428486019081528684526004909252918490209251835590516001830155516002909101555183907fb33d2162aead99dab59e77a7a67ea025b776bf8ca8079e132afdf9b23e03bd4290613316908590613943565b60405180910390a2505050565b60405180606001604052806000815260200160008152602001600081525090565b6040518061020001604052806010906020820280368337509192915050565b60008083601f840112613374578182fd5b50813567ffffffffffffffff81111561338b578182fd5b60208301915083602080830285010111156133a557600080fd5b9250929050565b6000602082840312156133bd578081fd5b81356126ee81614771565b600080600080606085870312156133dd578283fd5b84356133e881614771565b9350602085013567ffffffffffffffff811115613403578384fd5b61340f87828801613363565b9598909750949560400135949350505050565b60008060408385031215613434578182fd5b823561343f81614771565b946020939093013593505050565b60008060008060008060008060e0898b031215613468578384fd5b883561347381614771565b97506020890135965060408901359550606089013594506080890135935060a089013567ffffffffffffffff8111156134aa578384fd5b6134b68b828c01613363565b999c989b50969995989497949560c00135949350505050565b600080600080608085870312156134e4578384fd5b84356134ef81614771565b966020860135965060408601359560600135945092505050565b6000806000806000806000806000806000806101608d8f03121561352b578384fd5b6135358d35614771565b8c359b5060208d01359a5060408d0135995060608d0135985060808d0135975060a08d0135965060c08d0135955060e08d013594506101008d0135935067ffffffffffffffff6101208e0135111561358b578283fd5b61359c8e6101208f01358f01613363565b81945080935050506101408d013590509295989b509295989b509295989b565b6000602082840312156135cd578081fd5b5035919050565b600080604083850312156135e6578182fd5b50508035926020909101359150565b600080600060608486031215613609578283fd5b8335925060208401359150604084013561362281614771565b809150509250925092565b600080600060608486031215613641578081fd5b505081359360208301359350604090920135919050565b6000806040838503121561366a578182fd5b82359150602083013561367c81614771565b809150509250929050565b600080600080600080600060e0888a0312156136a1578081fd5b8735965060208801356136b381614771565b96999698505050506040850135946060810135946080820135945060a0820135935060c0909101359150565b600080600080600080600060e0888a0312156136f9578081fd5b87359650602088013561370b81614771565b955060408801359450606088013593506080880135925060a088013561373081614771565b8092505060c0880135905092959891949750929550565b60008060408385031215613759578182fd5b823591506020830135801515811461367c578182fd5b600080600080600060a08688031215613786578283fd5b505083359560208501359550604085013594606081013594506080013592509050565b600081518084526137c1816020860160208601614745565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b918252602082015260400190565b60008251613813818460208701614745565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff851682526040602083015282604083015282846060840137818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b73ffffffffffffffffffffffffffffffffffffffff9687168152602081019590955260408501939093526060840191909152909216608082015290151560a082015260c00190565b73ffffffffffffffffffffffffffffffffffffffff9687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b90815260200190565b6000602082526126ee60208301846137a9565b60208082526027908201527f4c315f4252473a204d757374207472616e736665722061206e6f6e2d7a65726f60408201527f20616d6f756e7400000000000000000000000000000000000000000000000000606082015260800190565b6020808252601f908201527f4c315f4554485f4252473a20455448207472616e73666572206661696c656400604082015260600190565b6020808252603b908201527f4c315f4252473a206368616c6c656e6765506572696f64206d7573742062652060408201527f646976697369626c652062792054494d455f534c4f545f53495a450000000000606082015260800190565b6020808252601f908201527f4c315f4252473a2043616c6c6572206973206e6f7420746865206f776e657200604082015260600190565b60208082526028908201527f4c315f4252473a205472616e73666572526f6f7420686173206e6f742062656560408201527f6e20626f6e646564000000000000000000000000000000000000000000000000606082015260800190565b6020808252601e908201527f4c325f4252473a207472616e73666572496420686173206e6f20626f6e640000604082015260600190565b6020808252601c908201527f4252473a205472616e7366657220726f6f74206e6f7420666f756e6400000000604082015260600190565b6020808252601e908201527f4143543a204164647265737320697320616c726561647920626f6e6465720000604082015260600190565b6020808252601b908201527f4252473a205472616e73666572526f6f74206e6f7420666f756e640000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526025908201527f4c315f4252473a205472616e73666572526f6f7420616c72656164792072657360408201527f6f6c766564000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526027908201527f4c315f4252473a205472616e73666572526f6f7420616c72656164792063686160408201527f6c6c656e67656400000000000000000000000000000000000000000000000000606082015260800190565b6020808252603b908201527f4252473a205472616e73666572526f6f742063616e6e6f74206265207265736360408201527f756564206265666f726520746865205265736375652044656c61790000000000606082015260800190565b6020808252601a908201527f4143543a2041646472657373206973206e6f7420626f6e646572000000000000604082015260600190565b60208082526028908201527f4c315f4252473a2053656e647320746f207468697320636861696e496420617260408201527f6520706175736564000000000000000000000000000000000000000000000000606082015260800190565b6020808252601e908201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604082015260600190565b6020808252602e908201527f4c315f4252473a20726f6f74436f6d6d69747465644174206d7573742062652060408201527f67726561746572207468616e2030000000000000000000000000000000000000606082015260800190565b6020808252601a908201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604082015260600190565b6020808252602c908201527f4252473a20546865207472616e736665722068617320616c726561647920626560408201527f656e2077697468647261776e0000000000000000000000000000000000000000606082015260800190565b60208082526027908201527f4c315f4554485f4252473a2056616c756520646f6573206e6f74206d6174636860408201527f20616d6f756e7400000000000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f4c69625f4d65726b6c65547265653a20496e646578206f7574206f6620626f7560408201527f6e64732e00000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601d908201527f4c315f4252473a20636861696e4964206e6f7420737570706f72746564000000604082015260600190565b60208082526030908201527f4c69625f4d65726b6c65547265653a2043616e6e6f7420636f6d70757465206360408201527f65696c286c6f675f3229206f6620302e00000000000000000000000000000000606082015260800190565b6020808252601e908201527f4252473a205472616e7366657220726f6f7420616c7265616479207365740000604082015260600190565b60208082526026908201527f4c315f4252473a205472616e73666572526f6f7420616c726561647920636f6e60408201527f6669726d65640000000000000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60408201527f7700000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252602f908201527f4c315f4252473a205472616e73666572526f6f742068617320616c726561647960408201527f206265656e20636f6e6669726d65640000000000000000000000000000000000606082015260800190565b60208082526037908201527f4c69625f4d65726b6c65547265653a20546f74616c206c6561766573206d757360408201527f742062652067726561746572207468616e207a65726f2e000000000000000000606082015260800190565b6020808252818101527f4143543a204e6f7420656e6f75676820617661696c61626c6520637265646974604082015260600190565b6020808252602d908201527f4252473a2043616e6e6f7420736574205472616e73666572526f6f7420746f7460408201527f616c416d6f756e74206f66203000000000000000000000000000000000000000606082015260800190565b60208082526019908201527f4143543a2043616c6c6572206973206e6f7420626f6e64657200000000000000604082015260600190565b6020808252601b908201527f4252473a20496e76616c6964207472616e736665722070726f6f660000000000604082015260600190565b602080825260409082018190527f4c315f4252473a205472616e73666572526f6f742063616e6e6f742062652063908201527f68616c6c656e676564206166746572206368616c6c656e676520706572696f64606082015260800190565b60208082526026908201527f4c315f4252473a204368616c6c656e676520706572696f6420686173206e6f7460408201527f20656e6465640000000000000000000000000000000000000000000000000000606082015260800190565b6020808252604d908201527f4c69625f4d65726b6c65547265653a20546f74616c207369626c696e6773206460408201527f6f6573206e6f7420636f72726563746c7920636f72726573706f6e6420746f2060608201527f746f74616c206c65617665732e00000000000000000000000000000000000000608082015260a00190565b60208082526027908201527f4252473a205769746864726177616c2068617320616c7265616479206265656e60408201527f20626f6e64656400000000000000000000000000000000000000000000000000606082015260800190565b6020808252602c908201527f4c315f4252473a205472616e73666572526f6f7420686173206e6f742062656560408201527f6e206368616c6c656e6765640000000000000000000000000000000000000000606082015260800190565b6020808252602a908201527f4252473a205769746864726177616c2065786365656473205472616e7366657260408201527f526f6f7420746f74616c00000000000000000000000000000000000000000000606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252602b908201527f4c315f4252473a205f6e6577476f7665726e616e63652063616e6e6f7420626560408201527f2061646472657373283029000000000000000000000000000000000000000000606082015260800190565b60208082526034908201527f4c69625f4d65726b6c65547265653a204d7573742070726f766964652061742060408201527f6c65617374206f6e65206c65616620686173682e000000000000000000000000606082015260800190565b6020808252602c908201527f4c315f4252473a205472616e73666572526f6f742068617320616c726561647960408201527f206265656e20626f6e6465640000000000000000000000000000000000000000606082015260800190565b60208082526028908201527f4c315f4252473a2052656c61796572206665652063616e6e6f7420657863656560408201527f6420616d6f756e74000000000000000000000000000000000000000000000000606082015260800190565b81518152602080830151908201526040918201519181019190915260600190565b96875273ffffffffffffffffffffffffffffffffffffffff95909516602087015260408601939093526060850191909152608084015260a083015260c082015260e00190565b93845260208401929092526040830152606082015260800190565b60005b83811015614760578181015183820152602001614748565b83811115610ea75750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114610fa857600080fdfe4c315f4252473a20416d6f756e74206578636565647320636861696e42616c616e63652e205468697320696e646963617465732061206c617965722d32206661696c7572652ea2646970667358221220059efbacfa8e4391e713a70ec9b5c2c2563c7f47558e9ce3c7e1c29a5888cbe664736f6c634300060c0033037e082bf0750bc3f4caaaad48d56276be344cbf28d09890bf1bc7018f1637df770379724039373688e782e4490ae4468698811131613efd21fbb58340bf6145861e03adc42bd1e8267e8bfc7b6d123e04bc48c7c798f29744b1d90d9086658a6fcd4903f8ae9c854a8a5b5f27fbb1b531340bdcedd5c30a0af329c0ce6c77212e0696f303981cc8a40572ae6ed7a7106b4387c3add10a8c389c26ce547635f416dc3f0197030f6a4f97937c693ad41f183138d31b4e975f83beccae91bdd3544097ee8b76e4038c31a4a104475903f94743dcfb0349cded7ec3b4dd29a50c11be8390f0e115d90312a5952d82c5fd24b3d4975f847629d85d94faa31d91877cdb595d084bce8965030c11adbdff0ffd308b193e1bc56efb4d01c530e5798423a1321e8ad74ff7fc8b03ae8117c37d49d0dbbee7baceb2b76a70ee7ab685657014730b631133147faa7603829e485da804bb23ac15f22be863f5a57358f50d91407da207e1b5c56472e8aa035fb0bc7646e10e598511fb50d66ddf6bc773a48c2fae5e8751d4ac67e60b38ba03c02010763e4c5f894bbf2ace38dcdc3ecf2c86d31b9472dd26ce49545d0efc06030f5f0a80a7ea0431e79d63e7f3d3decd39b1d6af5c84d924b0919685a837f7eb033daa89c32b0ec992e8eb012e7c4e8380e0fd1175e6c1abc8deb6342d6b734ed003d8885150bb6950731e06ce830783e0bb0085f2fcd9a974fcd36ac082d41395610316cdc9fe0e05d63c4664c7c18c0857b252466e85cb557f5029f14a0f0d3d8d0a03d714d71f08590c8590886579c8932dd1c61961bfd9a92176bd22c056de93c9a5035933ff7992bcefd60fc800c0409dcf47d77bdda3c98c097a878199ef991dec1e032a889d039695de8934b5562b4f964f5add4eeb013b75eecd10dc93643ba98c99037ddfee6443c65b96320273c706ebf3d1be60a3cc9c3350767c492d38f7348eb0036c0f802b202407cbd18e08eeb70da1290de3d2752054950ed3b5d629b1b662df0308e660f12428ed7d1b5c97115824caf75cfc4023af17af4966dfc10afc55e87400581f032aec98d756f4bee2530a28a327799e76ba53d906a0a40c2dfe69430ef4a0410100581f03ad93c0fb1a69f11d6ac09075e7f526baf42333c7a40572889c646f17a8e054dd378a11475d588908001e0e99e4fd89abda543400581f03a85fc330a2389173734c17c89028b7e9577766987f410521ddde35817b804101037e9114480017f2ed0aaac53afa681b9599876b198b854acdf597ad1c4f03c52e00581f03984c7882124c5b516924637f6c389f27a28434ccdabaa17f26e70ea58890410100581f03db30888bd7b5179a170554eb31725e75569a8a19a1bc60bd5cf1ad68ae80410100581f032f35ea1070ba786257bf0f11015912a38b0b074bdeb48f437d23ce0863c0410102196ad003660b3d5f8f328229988f9373904ec6b38d3dc17a47228869410975dfc56e08f603eca32702d676790d067f1c6531339a3ab9e204a194a4181371e8e44679056b5d03be092704a21f9676e76d0ec589da060ec91bf0cf8c8ff642377b18a165196d2a03bf6b5ea4a4e132ce3e3d46540242022fddc8cd5ea1c76240fba1034d3fc72a6e0219ffff0364485068c6b0b4666998184eed836076d9b17e1a585091a8182d3e395d6053b903f7f58563634f433b9abfe0ae6d44d78b7d26a970227eb75fcc22528e9225642a0343e64e1f18f4c6b5cf0b781389c8dd375a9e8ffea571bdf5a4adc5f5175750580321b0bed497ee45000d9ed1ff59d7fb53a6b2af4f0b60a67514fdee0c18d59d51036d06da764fdc4331416b4c6304b937374cb57211c79b46be299d05d30ed477080389db2150a9f5109c1124f62545fbcc3afd82499bee09196888dd4753ff12e2ee0219ffff0302e6130e534ff989ab1fb5fa77aa768da51ab9a213da8683e32d0de98a8482d403354ac923d1ca0265f86f3114cfc18d0d4ad3fea7a29b1fa497a2174fe2381a53039c160f2441e07fdca96899d3bc74b2190545be8daed956fe357ddc6cad88b5fc031b6c8a4de8c658d72a4058a903f7fb7113ccca2685a403511d4ee601526ef6200341de965752b460cb7b077c69c27cb6c525ba2fe552442b0adfea5be52bbf2d0603b8ee0a39f2d7741728c3db7c4b97558ea4a08594832ae2c00b461ba1182c0cf003bac9c2401e01ef70f7492331046ec9a50bdcaad1e075b434c5485e72e338421a03e3cd635d0f4363c819fdda7264a1206448d51f39617cf2bf0de1b1c94e36986e0332c4ae083cce8dd78bba16a518fc81af65152e6cdb64ec87e732f96c3bb2e6e503b55a272c8109d13bc41ede0ed851283e7c93ee1a0369cc82c4d2ee8a25c9258803804ee891388a637f1cd98d33317f055173c989563e464fd853ce71d57c1be55e0381dda95697c81f657741dc06a91c27d01c88739abfb572ef1d8831482706415103c4c1c4b9cfd3d2995e436c41f3e6944f1f7963f5115b1c9f873adc1dd9f5cb8d0219ffff030644a35031aa49c2e2f658d73b2baaae22099acd6cc37832640ffe60c2a26bd6033f10b6366eae82b3aace849a871e44af4d368f4af8627e6bc27d3788d0e051fe03b0b02c8d05644ac6479bc1b445052e29db40c3f9c02efe2e7012c12e5c254dc203e45d78c3e08b0c509cd1c0a1beef62f5a020d1fb4b9dca94eac8dc50651a3e73034455c48af5e9e0158b15212a5cb57d83a938a360a73ece90fc99c56fb1f0e141032ed4b7997419f0ec7fd8a70391458fa29f720ec19859c2de9b7c1dbe6ac980d40329afec60b0be642b2a228cdb3a2accc7f7b9e43b1e294c369bed55cca5aff21003e3ee3b2027e5fe8226d5c933372da655f2245c394dce0c2d8160e2d30d36f90c038ae19497bcb147af7aea81b68d9096e6f38bd7baf46afa8e6f7850809687c7d90319527f8baf5be28bdebc7800a15da633105f8be1c67b7722968f09d3952cb33f03955d2749f86cf44d48c3114517042555b40620f86f6b7385f7fb2acdc515818d03995d2a13d0f643c3b19384eecad3d53c83c134ecce132d27eed312c19ed83ebe035130f07072543cb4e951ed59a95c6182e1243321143d45aa9e05caab00273655036a1f27bf25f2e8b084a7a1997d8276a263615f910c202000e17eb98384da34890328ec23589d395d2f2d84bd960e79845f189c8ab3932e0c132d9e3f4ff8844e5b0366a2875f35152992b21e13b5b35eee3b7ff6c47b060fce64b517de48331b396a037a65cacf96cf98175641dfda97ddebfb222de099e6790694f4c65490432ad08a0356f1933a2b0bab7a561ed905a53868914aeafbc9bfdce7d8630c0a9356796996037554ee8d9fde884b65a480436c40d3530ebc7b6cfdc4108ee332dd4a995cc5ec032de9ac661a1d9e2ee4d734ae2774d7e594c774dfae0e1c0899a26b7c5044836d038f36e0607c762d6e6a56bddc2130bcaafdbac63ea91e8b1b3544337aadc58e4900581f0354af26371ae64a0eb44d1c8ca206d5ded7649905d14558325be2c52a9000410100581f03da5e9d5f2a281bef274fd35a1b1ad90d7ebd2a7b2ff7f48d6f5fede69480410100581f03df8db345ed1ef06463273d13132492e58ba4aa9c6a90515bc8d019f8b38041010349745fa36648a69be7d0e1cc12f8bf025a5a19c60649f7f0e57dbb65bfea585b03633a10534fd9059bd9d3be07020d7e1dd1512a81502917c45fc9cc8eb0ae0dbe01410c00581f03acbcd94d28db2636f3b81975416671202eb9f14dbcd705036b304664f9a0410100581f030eba8226fe5ebaf9470d0dbf363464b98a068805058940831d48d0efd330410100581f03917ad6156cda74f6a909ce8922c9d3c3bc8b1f7eec0c536c6ef083bd45604938a5cec2ad4780ffd600581f039d204df4b361636a6121f9bd8ee82074f4ecb1773c627e17dd334eb757a041010219abf80219ffff03c9ea7f83578c3ceb1dba40856063c4958092746a9c825c4e6a267b831e9d81ae03ae666dc7d7ab69583678f86700dd358474678000afd6531367338775ae601a13037df449a731089b4bc2a0fadc7ca7e73c7fdf384c3af0c51ac62d5c05dcd15b0403f105c01c60490d4a20a0e05ce787a9a14df824b1613bad409d6d49bec004b2b403412a629bdbe9109eafc7d41d6b261fcd136b556f574c4c292a05a3d5b6623104032cbaf87bb9ff12839a0ec236ef75377784c8bb8adc383cea2d004fb206a4c0cd0324d557caf61f1c2b84d7906e72b99ef0f0a08a66c8717b1c5457da773e3b61c0036f52802c12c432a8f52f70be442a98c8344a59fe3ec0de096fbbe288640f54df03832db314a64cbb68bb7859a1be73e24305c7e615f1ea8fc30f99e71a1888043a03948d35184fb2f9b97018c83456072c9e4033cb03e422d61524575011d3d4638f03e0b474cbb2ca832d8e95b5da80e96e8bb71b1274ffb4c6a01ea00a85b8765ccf03e4356c11f72df3a7033198f1edf0661c322ad4c27a16b4347da181467263cb4f030fa0e769ac157229b8361208458c55414e58e47a986c393d72c414feb5fc80e00353fe387454d3de467b1452678046d0c716fa7d4ceb9ae782004b6badd16e45290219ffff03f16e692595ea2c6bf633795fc7b73534a0c6cac965aca372df1f466df5181510039a8cf475272adaf5859cae506c04bae44aa907be1a1cdd31ebfcb8868f17fc3903becc6bbc0520163ec3a8e4d5ecbb8bae5734b7ae474d7f300c1bc470e8ec2dd503c4eefa1bec6e7f061044bbf22587be7a4132f5643281f3b1feb5eef5b06cc34a03fb523a42f50bfd17752d8e1180f6daf3a3ef637bb61737b5ed4a1e862bee47b403d07ab25f3829e81b2c47ac7ef91181c7047a073708bc892b65ca9db4023325c80307e3edb5a1b7ffe45964281dc9439fd8d57bb9cc778a2d7d20051ae890f629530331d4a1f9a282bec7b5a93a317ed327b8c97add47fd78d9f1d3ec9a9b5e890407037c026792f9fcfccbe80b0b9cbd1f51daf14cc97658165ad16de59a71f9f485a303a18915caa126a7f949f25ff609bb7301df677579e74bc992d2e4eb57d33169aa03b4bf027fc300097ee26afd3d545697aa99ebbd4d09599e461b39f43eba459f8f039cc1c3bc1be39c4fb94a0ac177d950a223bd9401c0a8a1080c1a124e2fadefe903b9027264619d3713ec3412e1b0c1123aa78f0c974faee88df6afa44271406a2d0323b9b15133eb9f90278c7aaa25020c44b577527bcf07303f4e16b60597928bff0219ffff03ff7170ba5812135481cc1835f722a1e57d36641c6233793d5e7854d58c40259a03254bac62c3e7fdb3d5eee1b6144f66f7e339500ca4236d510d71927b7cb5cc1503c1de7ec47dd69a6436b97d39e0eefd84eb047ee868c6810c635c003767fcf2160390ce216481727402417a4f9e3d3cc827c8ee2945a54f5b12439780351860881803bcbe2e5884aaebc0c77ec67083cb93496eee369102dd9f966f2a1a37f23e20f903a31837b385312af56108b8abb43dc8edeccc3c56b476369fcd059225a4787cb1030d0e295c834579566c3956475f97153a65ef42e0d73ba05a0738960038aaaaca03a5f1e2e840eeec90814e4f5ecb4ee0f6cef8b240bf28ae02bdebf0998c5bd1d503f3114c9db8b9bdb127e6ae2918dc3726cfbe49fd8bb38c6534c6d853189c04b503776872b1867bcc737633d58d768ef93a70a761bd246a8f6dd36e98498989ef39032848b839b146f7cd1333ff9a10c96cb8d38c673e333db627477d337cf939584703cb95b4650383c6cd71e4cff596d39a20616c00f6fd2682b95594a293cad8b81b03e264fc9ecad72b42b712117b479b3bbafb8d6a85a4ae13160451fec92d918cee0343205d47dbeb9aacaf20c10d8521fb4859776cfd54a0ab4376410e8af6f4d8fa00581f031b1a64ec7f7e42e18dd41c70ff81429bcb1eaa65072765e6e6cb0c448180410100581f0372f4c1deffecd4139732e9ef6bce529755ca9d1fc1057eb62b2d73adb1004101032d1ed34128bf8fd738b4959627a661bbb6bd2dfe0095a072ea1fba7ce0a8608e00581f036201758576ee2e628c34e50bef7aae05140c840d97b8da96eea9cfeeba30410100581f032aef640907ffcc422a153418a09a12f7306831773b50a4ee351e78db46d0410100581f0366a6546457b37725810b770c084118cd1f4ca2bb79f20652bcdd62666950410100581f03a874451a20e8111d6fb3c53ca258507471bb039e3be7971e538c1256b8c0410100581f038359238b1ff10fa1e52ab43493d82e7d2346f9c4b1348170bdf607be8f00410100581f039561e1518d5ee168fb80d8e7a18fdaa26070fe7fda4cbdc2f80435acb6a041010219ad8d037dc1239cd836ed9f802c802fc7f495f9b89486ede3e8edb6683d2dc576c6d0d203d076c30095d384575838a37753a2a22d29a25515021c765f7a5d2767440ff4e40378ed49bc6a37bf98884acb66e3845d94b12504037bda4c15fceecc42cd11493a03ba8c9bacb90bd5f9812910ed11769506e48e2f7b522adda2c588cf1a80128fe703c39e469c97e8e08413ed859f83a97d1e8641818b00b5167771e2bc572e7e2f940387f096e8482b6f9dbf84728a96494f672515af16ec5863292fdf95120445a1d0032ee6b5ff9a8e69efd1912bd8521422a656236c090c146cea417a0ac6e910a30103869029d49a178a15eef8aebb9b8233d627e96db66f1a6c7a8cc894e047d7257b03b557c39a7cd4d2d60fd156326f419cd053e57807730ee0fa2bda8160da1d956f03b6e9c143565726749a636a63b70e9d629e30a550f05c55218af619c724ce8ea30356fd5e9730ea67d446565029fadcca504c9567e94fcd73e79602bba1e0f1f7ab03e850797916764abcfd166dc9181afa72e1ea0e31d263de3007de5e6d875d37ca03ec0b009891a876efb0da6848118b05c2e907c4f363b3fba70f2656e66f1ebd620219ffff03e6820b8cba6db6d1410676c10920b518b9849cb50cf40ed6b6b8d61e3fc5ddad0374c6550995391aeb882297e63fe2e28787f324c8ec814f064f5e8dbb5899506f0396ff4837bfb8e631a0ae831f245b21f8384a725ebfcda934d184fbcd70ae751c037cdcecff3deb1b336aa9eadaed11467df05b29dd71c167b796f87b1c00eea9ed035662c057ba3d90b5deb5d1e6b405dc9710d76d48c2bdeacf72cd1b664734f8fe03f0fd746e54af72e9b547e3075005bb592ae977db2ca592307bb4176bad3b182403544308a9e0910ec232a444975e321baa68c69cc6a968f50e27cf97d5af97f57203442c5b0d5bae9b0d1186b79d23c57f6806a6a47ebca6fb01a26901ce034d3815038ee4e75f49dab02fa610ce27d1a6d68ba537d9745a6e5f67b682fb4b8e4d54ad039c4d849e1d7a3571d0f9e9b463b8321a11cdd6a06bf90527cd048ff031304d1d031c46361513b71b187a55a27f7c54bdddd77a1b5071ac1332c84b675ed435406f0372b62f619921453151daab828f6bc37c7133e34937e9d7eb0c0d0320bcde88060219ffff038ab8730433d5d952040b076b1cc04f0140bc6251eaa435a870b22b559c7614a503727c344ed9be1ad2e1ea7367aed6cb2acd821f448f2ec7e889d55e142f260a5b031c4c68202e3e62863eb9d5c3511b6ab4e8c81fbd3db109aab48bbd05fd51ed7403250a63d4b29fca84fc81323c5b2a849aaae50fd6905b30eba0ecea7aa168d0a403ea5581d62c60c9cfb481c67c9d0c48f46df490217c08218a45f844f1313a3fbe03e8e7360c1a1c063051bc41ce3052b1bd8964fa0b12239043a21e133df60763fb036872b99fa48d86c807aec18a9b82c082f141865a14e326c51e770273431267030219ffff0342c1ca2354e6d87d9105f5742b83d0f910e7299642a8cfc1daa32e02999c78e9039c9abd5337fa9f5d344300a8182b20e925fa938d7b3ca0cb0dd8d067a045bb48034b9fc63bacff7cde7ad3d1395e5ac6fee9dcaf14f8e3d91d89c5e4adcd28d3cd03394289f670eb7b1e388ca80aa62b7a264e2ab3628d38fe773ee630d8f0f9e775031b1fd668daabfc77af1bc069946accfbe0fe34cb3bcce2815c2285d16ef494e9030f8038e9b1980b292b4405be10338485bfedf3079c64f93df10624f79ed7a4ed03954c4b9b5f6c0a1808ca35123999ce04483afb44997255f09a61ec063885e5f80320365325945c47c17b8a5ec647d2e3b0caab0f6dcac4b3a651c98e247fcf6583036ca056f82a6ee2d44992d03f8e0bed9736a650fd3556a17b1011685f8a98791103309b671b5da24948801f3903991e865f9402dc727182bc6e78a5fddfad94bc3d0392473a7dbf1fa880c1eaef4963ca49958ab6f61296bb6bd797653d21a3bff68d03e65e8d10fc5013617f68264ef2ae5f171ab17baf8f8327d710804f47ee18422e03206fc310729afb47c51407db1635f6f42ecdc1dc2623f6a9bf7b556d75a1635c03cbe8063ecb38e84a47e6ac18df62373fa28be2712b3deee70c14adb1b29bc47803d071f3dc23bed8c075ee14fc87ae0b57f11769f57285508acd8ee69cacf195ab0334cfe79ce2b65b3cca4f55804da35e4e63fe4ea3d2d234615ff2d6a7aa7cd62e03f3386a9c2c153027350f0461055726f4579fd9368f8fb4a36b0ac8a7fcacdcb000581f031b8279d6750cf35a9337eff62a33a5647d7486e1a9d14eb6438a7feba220410100581f038c942548d130a02821f396d2b93693b84c2b562e4f82d65004d21abef240410103a787db5b1863d71642cd6f45ebf2f7af72d6f7b0ea9c58d954001779db115f0f00581f03e8f09a0c4dec17853625d398c05aac900f6d80ee3161f848be9b955d81f0410100581f039dd88232f7cd79d6a946888c6c71130dbe5e5fc7df2c51fbb5b186f5d250410100581f03272cd35550810ff7794ee77a8533faabd4cf4f30b210a3ea061838794790410100581f03f8440159d1300dd51e063b743d480cb0e15fe2b8f7e5b4f2c51e8822a75054710bda329b2a6224e4b44833de30f38e7f81d56400581f03ed555f0aec23034155b4ddedd74280d40a424ff9d25e5951eacea95a5400410100581f03facc292c4467ced3614bd4b9068d3cc94fd3a42f96d0e5b7c3c5ca32bde041010219a6d903e06acf640bdf9353236eed5d8e3377d3c45bdc22b9d418c2b4ece6b2048d14cf03a2b72222222e9bf911ecbc973526e1de069781c7d5092054e21b3b3f95cfdaf8030d3a340fbd8b1b7adeac88ab1bacf37242fde9dab22f1c70d011aa84224606de033611aacc1101b2a58f39c9c243d243d68580adb0d7f283695dfc734ea3a2f41903898cff3830805ec621e13857f404e895e2f29b8ca7a161bfa738f678acb2ec1d03a5414264ab3bcae68dfb570de0d77810bae68dc9c9bb50b1f243fdcc723b41df03e1baa47f71baa5d7d73b2a99d42f2949153a6e02de0212e426a7886e3e2fe3e203130574b9971210bb3fcba7d2d765f0f4bc31fe1d83f70beae12bb3d5df9d221503b87c48f0bc519cc50f436d037c61152af4ab0b8beec871a1efa9991b1b011e81036a93a550d6825afcdbf581c63cf7e6a0a483b9f72ae6130b33f4a9bc42e63add03261c453ba8178497fba073ccc6e1116ce0bff1ef338f7331abb3c071d4ca92d803954e1da21910cb9ec459e03ae0b6825881a3450f0a2f3692318a1e1724ec4d13037f98f2d5b5a1f1b2d1c39d83b89e8c5ba6cd881b6ad0a6ebec388cb809f849bd0219ffff03298918f52d146f020f11e0b13515b29074427ced949b50fcadf99751c58801b70383b134f1d93108e5393c179a91855dcd0e1cb08abf4d1a61a0fd6424105352b3033e948c393e7149720083c52c8d24bbdeaeabc224da43baa284bd87fc1689f6cb03ef3bd77eca0960231b7fb8c34d1368583573a40e77e6afbdb306810fc5658aea0219ffff0304f5e6f471febc299476549b8b500c4282e2d69bb880417006317cabedc6e23203f1fae67893cf43b22183ecd325458f54d6897359a6ad52020b0e93595eeed3c303a52b6429ee82be64d44a5ba8bbc6d0f1f0de481a2cadf4adf7df260c7ce36d7803b0bec06b303cbc21a880473cbc1d90d95504fe6b134a969e051139b6046b600803e3186a26ec26e6924a0771a06eddffa92211fb514bd88add9c87155e2382fcb003d75797a5b58fc0b14e8bf8f3d031e6c86f3e7af47259133df46e0032d57b3d2d0319cbd23a7bbc7a88000a6a20062ad9f3f856c58a950b6bcb31292b661462391a03b8d1dbce366f49aa2c0b32df3fbf0100655d8932dbf966d77d2cb7b70ebaf941030df723fa6bb6026c4a1e4b4924c3ce55f0a29d416ad5e6baa00621735e154781039dd5e8e5d7f8fd210f941c1a5c2f6e5ee5a9da9630af76e95e595a34da65cd0b033835577fb3c909ec423f772d519c05f9e5edd7cd07ec2d45ac209431805c5f5a0219ffff035ddbc748ec22f47ddc677f27f8dd6247a478ff14ea96fdf6f5438d34eacc92e503d263e001bf55176e8b36345b12a6cb05e56fd4664a495ceaa386dd51429471db038dbfa54abd146e02f1e6c60bebb50063fabc8ac0dc2157414d90f94b9bb089f20380afc7c14087c297b3cc62a821230d0cecf933f748d9f45ac59d7aff49ead58903ad1dbbe92b8d7c50b84084f6bea855386b0d0fb07d4f484c2f62fe583ef5c08b031ff41bca5d6af6caa9334110cc3cfa93604b9fbf0365a09872eef8ca676b425503e8465c44b52da29d54de338ecd7fce9ccb05540c6b0049c9ea8a040239d5ffca03f66268f3c08707f00139b6c92931dbb141f1deeb6b82f3c6d9dafc542455981503e7a9dac9257416d8e8c03ee44387c5c2606aba321aefe86964cda622421a5f93033e5b164e0965c5b5a68dd8545a2a890c9c74b00c587c8f65377f8c5116664d10036eca79c9ca739cfd1b56e5f2ede303d5f5af3daceae75b2a0ede00a8fa8aafb20305fddc4d50604a744698282980cd55b9698fd9e10d2b42bd07e33b334b8b2c7003d7e89226c72749deffd04aa86f6d06e5438341be677f2b5b51a890acfc304e0f03606c0e45e00029ba8cebee7c117222220b8ca071cb1d1f635a42959b338f74b30329da460bc8ad173b7e901e68d785d38e280604cb236937a592e81a9322f4437003d89872f124bceb220702fa3ff860258f562d01920c8e730b2564614b3e3133a803c230cd4c4117e57a3288086bb772f9418f7af3e21841643d8d751f4f59a171ac039c699987013c08451e8298ea1e90d7f8a7632cc546d937353c86fd8dcadfca65034cb578dbb3d0e51e7623d2dfe4e797c41f7bf05115b76c4ba9c7c33de24932eb03862c88f31b22ae046474ea55f51c29d14cb42f3b710b2b277e458d848ee504c0036ad1b0b6828cdd67025d83a356dcf3d37c3e0b5affde1bfa5d123a9faefc22ad03c8caf33c02134db9adf7b0185aad2c1c3d3ce918ab829f88b7f66edf8ace203d03a5c46b8ceb1710614c2dffcf0b3278c1884bb7a1f40b38b83a3e2fed8ada784103d5ba5ec684696f67c5f60d07559e911357ceb8d40830e2d7f3d2ff29f5f2d41f03cacf5e5782045029dab827c9cb15a60264bd7c09199427651696f81e180d4cf3039363985ab1a087738a1a72f3b478811b6b4e81f4d9d5b909559109e0b9d41ae3031523d3847509e77bb4d36c69dfa47febaeb038ad92ee311e17795127e52b75be03927d9d2288eaf5a409910210f725c6c52b1ed93fd5fc2a7118cdcb2cb0e587c0036b6326ac74f1eac6ea4eda557e4ceff75f571bf261ee6ab06d1ff418f949432e034d761ab939bd9e795c5f9ec037285573bbf97d56eb775321158b5c0ac4a2121403c0ed5a667148059fb30bd3a3ff96b061fc636ea7728f24488d96be753653ef4a03c0312b719b4d5346aad3b8832a939683b7ed27bec9e34eda5c2081a51c5195ed03d1d750f0c319645894ddfe3d19a5d3491a7916e45d8934d14e42be54242c0e3203a824b614c475486e95b07232591b3c29baa69a73b2bb9a28f5763c8157c6b43a03748cea684e02f0cf0d9ee5bb13910487fbf84702757b8b7305956edd8e0bedad03a3d49e6c0f74e597d5ec8316f8fd546586fecc87a5280ceca9e4cf42ca75939303c7a0e23d104f74b9b914225ebf6ebe0e29e67d1cb41d08e42724601974c65c890355b6b113057d7d74a23bb5f93b6e4bb73926ba3b06521b7883fb8ec4d174e20b0380b7170f767693a13579ad0e4a45cfaa777bd5b81192a922fa99d6337bfa244f030557dc54361bc25b39811fb0868c99327c91d525c3476e3023421810977ce86303e574d82031e9acd5f6b314e45b448870eaf9d0350a0c9e61cb085cbdf763eafc01410c00581f03ba95e8c4913212c64d494ded89517592a35d48adcb04e776f6dc8ae67af0410100581e02868f506656039d15b2cedc9c591d4261f7ae797be84284526d1fb50a1e410100581e02c7f796e8d8633eaf5cbce5fc3ed52712661caec0159706f3063979fde649d3e3f56d804eba3fce0219010100581f03f8fb3f289eaf2b93bd48083bc375f46883c704a7ad8197778aec0f4729a0410100581f03376bd7966f56d732e81cb936dcfe98ee43bb7126c0007bf801ff4e85a360410100581f0354aa6438d8bfe6d06356f7274722cefc295f811d08cc5f87c99cff0af4c0410100581f03f812afaabdd1de3938bf92ca2ebdcd20f091d983f5f5281a44ea63a9dba0410100581f033f16e1dff9b78ab52dfc499c5ed655424c1860ab2d0ac34705defbfad730410100581f039880718b5f565711698537203a23dbba2bb89a9c3218ff98dcd9f0beb130410102199b4e03f132c258d8d443e453975d34383c46779f80a4d1ad89ed0a4126cdad6b20b4b30219ffff0219ffff0378595a979bf0bc5d69d1d3962ffa20be7697a93b1108e6b37d7f6ce28fae321a038d06c85af92b37251225434593657ec92472ef5d37c4e30914ea937889ce02d503723e2c0a8b74fbe6abefef479a59017e7eeb7a2030165b615c638d24b6a7720303a031497b18fc541cb8e4097e187ccc817435b1e9ee31d45390ac0ab580ca48850219ffff03cd3f1d37a3e9bfd6142d3b6d3c6dda26449c640610c73e9b09cdca495b814d2003a086522f8e8dda9bf018ea1e8b2edcc6d89a26ee78c5f8c8aa69bcecebe859f703867a4f7b5e5d5b5107313b61730ade9c95590240a62f37894cdb3bdea02940180369a45336f664116726ee6dbbed874721405de365568d2c73a89efae7a9920c0303a0d081051687a9e895736ea91a901b86fed7bd78b1de4548c429e249a9957a37030fb729a406eb58754fe38e523a41b934241e38af31eeb46999b918806d40da830345bad7ea630640e4b011533d263650122f8af0ce7721f6227119232e85aef7e90308ebb668cc851c0996c806ff02c93c986afa7e4eb72149d8bf37dedc9ae877cc039bb684815f95aa24b0084516e7533b9adc014c7ed28d5c0951066831178f468d030a4414432eca917ca8be8aa02aad4093ebb3b1b087d64ff2a1ba2252a808c9a403be681ff65442b486509cedb2518d46bce78f09b5114c5c860cd6a5861fdcd9b803d0afec0fc826c7683c49f4926c2e064aa45ea75a1cd468f6bde76a78498bf065032ad60cf60f0254cb2c7837d5aae26f7a308a48a1dbdc3b1cae091936058fe9b703c8d8219a2dd83250df8e428f8d2ec4686346c28d960c575703b42874b9bd8a4c0320d25afe16072e7558405d4c23dcff32a9c3cff5e6adcce49cefe725d4f300ea033bd418cc06742f09f1d78e3e12bb0c8d4a7aecd1e472214dbed7e674351a860503393625e56cae1f56aeb05f78233be66a4668fc3f9e04d8ce4bbc2f697def969803a60dd6e073e0b86cdd3e7c58b4c2d897eb1a9e69ec5a1e28250938bc5b07bdf70314ccc4a81332c4ed6d52a97d783ca2b919f03e0895115f2c39ddcd99822e21eb03346398606db021845ff24dc4da3daac9f97f04af72647d0950192f9bc66c1722033d032855b84701c1e9c57db4483f6149a4d38267482f1b0d89a3217340b1294403e621498c1d7429ef2858af03f1d0c890abec63f37906de0a2adbe0e23bcfa7a603af9455515cc54d3daa9306a3d6a8412225c085e2c6dd6337e6bc43ef60ca636c033154514575a3aa3c3d05e4700948f19e521ccbad424369e858954071c2efbc1c03cf8f2ecc9721e2f41840c55c8ad6a67d4de1a43d8132a15a92d67972296279fd03ec857bdf474b2db776c065cffe8e8cc024070decc0d98019ab295a78241866460361ec0ee893ed90d2dccf8cc4adb11bebeab420ecef4d2f9cca281e4afdbe7aa40331872c4586fd825f3a510b558f35189854485663c87a97f582acec3fec525cef00581f03595ccabbd319a991890d31be2bfa6c6affe9020de37ffc4ab2faf643e3205426a1fddacfb9f6f5072ee5636ed3429101e6c06900581f0310d344c147fdd4ba9c86bf67b8994568651d78adb07fb633168cd1532ea0410100581f03e159d0f781604237c8cb25fd56ee23ab1202cb477ec1f6d71049000e9240410100581f033689a7271515c833cb366a3cba6b1d7ebff4b568418786dbe354d9cc28c0410100581f03dca5cf27d4d7079289654f52868241fa278339fc35f30eb047f760974210410100581f03b6058732e28df330f0ed90b412529bdb2617db4ad20f29ef2fecf6c3e2404101021912ce03738f91ab5e46232b2e88aae2f28a3f70c41cc950e0cd176fb86f021d36087f6d0300b233ab927f0c903378e2fdac7d1692070ba199a74e67a0ba0957156f534aae03fca2dc97359a751f8de7d89ae8483a66234ab64a6290ac57ed20945d5b931e5103759b6e0a9b29ae9819af8a46a8a1f247683685b19f1d7564c38ed9feb0747db2038aefcafc5910dea0edfbe3d053f02631392540f9e7111d0ea53bc51e2f4f577503492bcd9dd40313a777a5ace10d51bed0e1bf994eca064302c3c30e4c1ae8321a03b58eb5f0215b2388b4dc04b831f3d26a29e89ca498227ac608835a6a201df4490219ffff036981b655b3ca8a99ac10c7d44e9fa435dbd33f92da2ecaedd85bb1944b5bfc880388715697ae5a931d9de372e9e99a8f17d950cde53d0a94e1928107f02e5b5f5d0219ffff033969253d82b77d351bd8df440100493cdd5b2edc9d19367297e6a596abfc3a8103fef89313772f587366d5baab5904746a1e0ceb87c65ec7ecb7b6dc6f501a1e17035ce19a3580df9dd5f5dd4c9c62e62963593555a35a7455db53b96938b4ea3fe203aa719b15742aa0c4f35a06b8f8bfc44ba37357349b1b3ea4090419423b7cb51203995ea0e71e7baab7925ab3d39b266cca5e2c314796468eed6b4269af11374f8e03b0da43c5553113954d2988d91335591191dc4b4dc18c9686341f1941c3ad57de0354a32e2ae1df2b7ea20d6642f0a10809a9490bc5690a1a9882e2b784faabfa56035b4d7d68254cd97693fab6fa8ec37fcb5fee9c97eb27794e072b1d15029c40ab038a50e119d3e256ae15bfbb86b47804b15c0d030afd01de270d1ff244646f588f0378de943ae30292637622ce791454e4beee899bdcdca8e8122d804149ddf7eb4f03d9bbb8c3b5de654e6469d6693cf9a34601c6b191c56b61a904444bb19bdd24960219ffff0355f99cbc28799866a3d3402f4cd842d32e40500923cc32f3c04cb8d14031413303842f1f653b6fc3a2858cf0cdcff79ac8effd796fa447d0f4dc17f56a0d82439703516ded2ae9d0c5f02f9db13afb1c2d476c94a259c74f1d0e67c382e36e0dac630219ffff05581e03f2a6f06c8efa9b74299f1bab55351048368e26000f89bdb89dc0fc30f00f014a025c664973ac9463a11c19480f05581e0359a6d1d1049e1efc695e62d8171a13c416c35e5a159e5049ef1a57281004020303df455887b91cf9e03c9355267404fa76ba57b7429d3ed46a60614fbe3ae4fd0322ee3afd37aa5b0dfebd9c1c586d81a1b49f02117e848f3d8d72c57c2c18718405581e03bf748e887c8867efb714eef71dc92591a97cd9151fee51b2fd0f4f42a00c014714de5f3369200002197ab80306486510eba81049d84520b30328eb0ef5402d62d223b7b585dfebd61f8bd39103185c256b919ac8ecedf8ef4cdd8f12fb37c306e000fc0f05d6003dad533c03260312b292b823f283b1fe9787d4c20da9178f7be03d0f67aab99e5bebaaa53c47d4032efd84a6078b6b44c952f4e76256e96edfe2a939ddb8f4c63ceb6f164af1da3b03b3e27f1083ee788dc558a4fd609bb18f35b4b4800c959bdf4c40f01b72b93fc903f589469abc4f1270c53effbd2445ebda18daf4e4837ec3a8799c0d85b5098f6903c534d166266fd94eea24c170f657df3c37a2382304f5081c325bf62660538a3703f581b3e6a38c0417c5021e418dad04427d9237a7f78229ea9e6dce5e970717be0315901bd38eb4c8cb6bf912ebac792ccc0238421f5ba7c3ba470764326358b9a50320a29196ad684e565588521d5a43ea1ad60c586a15d39f0fd44cb8ada39fd9e00219ffff0385413a2e45453085204ed8820d5afca1ff70be2235da5b5b399ddaca1ca9b10103fde6db77cee3940e60dfc6ade9f003d6f8471c2915499102b5c5fdc0afa80c5603e95904ebbf59a5aa14a38b0b3ea30060a31e53cd020c1cd142cd1c81b157ae5f03d3d43bee9d1330d0de14dcb4489524c0920b9c47603e293b2d8cc2794af928db0343be9c0792f5454211b769c3d519e40c05cdd96379c52d8ea0af083fc0a0587f032a97c335f3115132d2950b0ff8071f59891809ccb369e3af4d3334d8caf272a203dc2682114a532506720dd7ca508f85f1955446f1480b07fcc512cb18d0f5a1e60219ffff038395ad3693361533dcbca50b198cecc3aa8c1074fd50fc6400cf3ef20600dce403cc698e42697aa27d4b5c0ba12795d126424553c737062117fc32dd6964f91ddf033dad961e59a623b4d6b746964d829bcd24f11c2fe1c733ed34eb9562e04be997039c0b483a6baac519c5c1c15431ca1df0008cf5985557879e2ffde85c21e1e99f033dcb8c4ac0ad33db68eb2cfb9eff2e96a570ab2fb5055f87be6381107d0c628003c6c6e43d4f73657b85340ccd3457b4fcbec35c927134a93e041463306eba475c0219ffff03ad22954005889aaf4f454f20cce6292791f08e36c35a4da8ddefd7cf50192c4b03c6097e4ea91830f7831111e89175abbbe08bb66486320f12ca36cbc353958d2f036944839a3fbcf93978a44bca502cae39b41851a553f832dc11316b2e69bcab9103269ef4d1b368e5cfcac8c1f9e4660d14ca61725cd0d1abebc02d75dace364a41034e84c8b3af2617dd3a0789463edadf1ea7d03096955ca57cbfb900ce5a4a35c203fba7789e19a35269253864984220fd68d46d696c1b333bd14e8e444a8ded69ee03d9d87c2958ef5c09100f1f6bf4d344bb84dd5f3d6148056f9d87f6d55a36847503d6788148e86c678c4b2e8a344f9f822b520e29825af34626d7b85a6389003a3f03ff47d8c49fe4ad536533e521b65555871b210ec090d18499b391fb65ee3efec0031df9f120c317b1ceba5398dd82bb1f747a94aab640c8bf005900a49edac13f89037203b10a5a26164bc803184681a33b388c529fd2d7c6c2665fe92e7bf319a06e03d830403793ebdf58569146edac80cd1408bf0781027ae65f62a91a24240c6dc203b0e5d0fbc4f9c585d97cccbe164a477307f392c2580f459742c4b5b44b82f2b60338b595d0d10f7bfc24061de97e8359e5002734f64bc32b42b90827933e1e3334034244641cab76e561b9aa364b07cfcd326fc47d4c3fec37d1d8f7ec4f1ed9a3c6038cf5c988d0b74159be8735bc946106ab6a370ee9799378480a88937b68d9f7850379201d402880d175900d785658eeedf4f9fc4ba9582547d9d1996f8d51fe6f8f03d23033522ddc78c115b4ba64aceef642e20e9d0846cf331d6481a7746c3af22e030a40a09e3667c3f7dce70c84b45a8b50aefce263cf3d6585bb7ac54b0190395f03d2c4eb4ae3bc93eaabfb96328f6527508d8713681fa64cca14d1b18b7c3e7e4a03e720bcc785f26c9dbf9c5f1f1ce48a8be601fd13470a1e535345b233e9a5b3cc03a3a3d2acfa7fa23e3da3c06e47935b22782688359089cbd67a4ee2c897d05f6f03644f86ca213541e961f8f8ddd6cb792cfaa46c4eef49f643330f6a707683755d05581e0365d673e622119bcefdabe865787de9b8e68dae2624b30ba5f07762ee300c024803fa9c69ae3a400005581e03d4317cb7620e30cc1b3c8fc9b2c15a8d7616959c47fd0fd5f452fb73c0040205581e035219bbc572c2b35c440d0bde99811cd8889411dff8bfaf244f707ea290040205581e0387539744c607e3649d6342648bfef7e7575439081f9155ac5caf8121e00401031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e030ad47c731113e5bf07b24ce1830bb25bfab0baff36ea38bbd487db177007011bffffffffffffffff05581e03fcd48dbc4def0d3f2d25101af0aaf5d653868e529faa4fa4ccb81d0730040505581e03708d11bbc587b158c072a4302599aa9d5a509cc1a1e6716362b7d59c400c01471d2958d45ead2c05581e036ea6b08658a92ce5be4f30a35d8bd8d3b77bbf72a74555213abb92e3900c01473cc76c09b0efb803197506d6551b948e13201746f78ba7bec7c6404eb9804b477e6203f31a4b9e660605581e0370b3c433c22600673e3bc42e6485401dc00ccb5f305c824cd04bd7d8e007011bffffffffffffffff05581e03f230fe347f3b0b314b05b9fe8a0351e8e2aed485071e562923584522500c044702ce80355f67d00339461b9a93954585f8d65a8349c7c0c2bf15ad4ea9b25f70b439ad78abe19b7c0219efc903c48d1a152b56a72664139b2627de3db979e658c32ebb076ca9e5a18ecd1ddd9003398760c4fd8c2526f68fa30ef81c369d2d49bbf21bb0b4ed68557a01e18ae0cc03c5d2f6f10b6e66dcdda9425850310dd272a1c086f85a683981425844567f1d8f03e8dec6ff52c72bb98947c3b78d2057aefae906b4182e7f8e0351c265e1c0892903d7ea44a76cbdc5328f6389de5c5961cedde7710e043689eb7dc87c425ed51e3403d6d15a6e8d716d471f937a6bb160f6041c4e9ebdc1cf5aaa71e18f869e62ecb303731520fa82c5e3d9384cd2b849d7bb4ce60bcc7a638d07eba1b4f619fb1879ee033f53b0bd4470f621b5e8971a166881b986777bea75976a7167608d0003724f6b03d905bd67171e5d1788707a343aef09ac98fc86d08de2037a5ac51c9e17a9c1b50321469d36e0472fbe6e75783debcf742d0c50d635b782268974493ff6924c43d60219ffff037a31cbfc89e88d5d11ad151b8ba27e4ed319eae247b9550c4464383c6fd0180703072d4357b9f089a7c750616e17cfdafbcc750c54cd9bdb8335057f8acbba1ad003ced7bdcf38ebcf830271eb01a7e6aa438b08698817de5d5e193d0ad51ec6469603887fbb97322c89bc475785f7cafc50ada6da30b1a3d1a536733425b6a89f532303a9e83c913de07fe0cb494edd75aeb637bfae467aad480693f55431f471e6323e0219ffff0304b144ff9e8cc9fa07c576043e1dc6a8967639fee104da227dbbb2ab441836b30336f5e6a063113a2b8951c928c053a32370d7066b248e3291492f02199dfd201a0330a9f47b5067b77350a90dafd7b8807fcb4251fda068981ba3d40afd22916f2f03ea948b0223b8f61ad1ced8ed2b9208b609681dfa47c64a83fadb2526ec13f2ee03348235c1105a19f74eb8075811ec80bd4b8c56d9c6863c611f668ddcab7c98d40318efdb8d57356b8c5ee8994a5d64f548694581d1d557ce99937b6116d3c2668f0337508c82900d4df5b04a2de58c5a6cc0494c713305332d3637ffdf1544aa3e470219ffff03a3958a3b511978f132560aff12866cf305c5d00275182b6b030456555eba036b0389964655d37f2d8bf8b03bad0bcff8d9637fc24a784b2196574c43120357744403f8c5197e4a464ece5efc06af038be7c2c4fa62b1b66bfb37741cf8f2da6e9da90391b345db127d5cf17bf1a290b76952a725f155d56802fca9845d68bf4c4655fe038473a38fc79fff2dc037ed6fa12a9723d8f8dd45fad21132797405d7b36b9e19039c4dcd5133112a9e1fbe887927167af5b7dc1bf03a0db3c89b384b9a287de00c03728759c5f6c9d59b8fa058abed1e9d5d19efb49d4174ae5be6833f43777c8406034f5bd7a71509277131f8627bbc917c1a628e6dc1f9785ae91c0d1143c87b381a03e033e9efe4a2dbf931d1abf28968480280265750628e0d5ec53cee68e2eff1ed0219ffff03433349782ed167177a7575f7beead8b4979e2da669ef7467477f97641470359103f38610840bad54d045db840f8e57e17a187dda8a38b1d16ad98963ae517eb01f03d7a7ca3687ff36424335eb2ea06ff24a56cbee291b8d694833aa9e6730548467038656e1846e4832b63b8a95d78a45889857a59ddc59ad41a1596e9beb1191d53e033ac7f47ae7356d4b10c31d88ee9526787014eed57f0bf276662ef65d186966f003a0f32c37a1c4a987844f27cfa480f9532b03ec8128ddf84e1f103ee29627c1fe03af6e0a243861f706d9cde0693f6fb26774ca2c6752f61678c4861c8a70b091ff03b8af46311a9cee492fb2d90bae4fa1309f6716ce24fb4b05da79af3af250307203c247e7f350c82cb446845e7004aabaa799cda56c56c0ab6c3c82f3e542f80043030b172a31074d315618813e655493a6ffb728b963391145512f54c74f26fea5ba032bf8be708f133f49834641fddcce8ba47e18e9567f4b46f79c89b414206eb8db032032ebefdfd5b719ab8da2345ceca02a26e934af0b673600497b9484b8e1c6a203643aed791dda8b538cd329bac51d5dfacf391488e0a97fabb6a17b95c64bbb0403b0af14fdaa65fba073049129418ad52bac62ac040a883a81b3c2aaaf1f543cf403081a56c515278dab220542b5e63d82feaf92df2d59c326c863ed15a62a0299660393775bc2529a801b30d99fd605508b6d8a8b05a6b80fbc76de15f3288a2c2c410395c3de3ce082ae9bae27ad4259423ebf349d7503d323049ece83c3a63727e033039c13eed0b6b432f7916bf80a3d2f70644fab8cc032e565f5453488d0bcdde46603dc83dd5d16dfadc23f4bbc5e74286e96a2421d7ca4c20c216e081c57fd72fe16035a2335212adcb6bf16de2ff4b6487de9248b54ba2385960735b55f63f80b8ea303118d8d8ee0a56378cfbef372f9407ef8ffb2b7e96841cd8c46a79917a239926f03eef0e3dbd26e7c2f6eca7a03274d315057b933555824aef1d76df0cf92ef3e0303c5b3f744dd057bae3ae64c56a70f78821f22c1138091278eee02d7d4588958dd037c1300bb879d54772f2930a492319378a88045e048d97182c2444b164225472505581e03a665912079fd202ad17c8ac03376eb15d0d3d1236938bc3c7095ef97700403036acc8f7abaaaab24f212b16bc193dc735a24ac9e375e733ac6fb64606d080e0505581e03d612ad0fdcf660e87aab3f575e10a7d80e91685bdffd0a3cd76c5a40f00c1826471de57806f27c0005581e037dcf6d1c1e2e1387a3cbe30bf196c1b847853815c777d892f087c54300040705581e03e7d72ae7db49fa2f2d228dea67bd1c793a0b4da33685700e768048d9700c0147430c123f5b135905581e03bac67f79adaa5fabc83a41deff91801e990e231f1e367a3339c10a45e0041505581d029328b9b27be022623b51f48ca7187f9e8b80e24846692a8bcc7231340c044743b1763d9370ee05581d0216de41f2c5e9ae3f3b6bec7cee281dd3971959d6bacd9f6991625f850c1869480a3e1181f96813c90219080102191c5603c31c157344a3c11b909e2cb9226a4b6a4d41cb8010ecacd736fdc24c41a5e1a003358cc03cde7bac6d6046e0afb0752bfb0174a649989b44d4f65ac9b3e54d68190307eb58cfca9bc23d428ebb4aa5e8b2c6764c55b6e4fbb291aa277aca293c43fa0387729b8abd6f714b914383c63d6812e057289ff88586f58259231b1b0cb8716403ae2020e7621e573259ea10fd2d5de5a446fb1d3e9d0a8ed5c82f057396c099de031293f85cc59e2488f58695e0ba4a83e26b8480c06720853228279f7c03470a2e034d3103793875a2e3f4c069d8f0f53586bdcb62c21a26e7a13ea602e909da5eb303850d482f47bbce6ac75048fa446beb196bb3908dff2128d25384b01d9b036e3d03599efea780cecca4471b8579864d60af4eb60c30657a54b87f7e2cb59d91acf60219ffff036540dc1ce01173147000b40fc91c558e5d0bcdab2903f70786724081fe2824b503a519432e709a23ba08a567a3def3c6a0381f8fc4eac982952efd511bba831e09030aba1a00d592b32c90da40e954a98f867fc6f32becc3962b6263f9332aea8047039c06b1b5ccba278abdac9119a8de1ffacd92f6629bc7f95969dbf5cbf48c353103d36bb5df880275b90e86fd74c8fba4491f84a4384ceaeba8cfa13ec9a32f54960334055e187dfdfedad8d6ab4ae16ecd7b3579c10a36f90a72a332eac4037ce87203659d3e935bc6b53d3c77bda828fb7ad313a47889517e5048191304984dd9c73b038fe8a6adc5b1afd76316ef8cd251ddca7b02381a9639db7985684a2ef7bc16c503eb90511c0d2346b059effa3af970b35881c98cf5c67c76c4939e8f63cd7fb998036e9baa7c43a9aae69354faf0d9aff95495bd365ed5fd5d8e72867cf3256edbb303f6507e75596e1cfa66cbf88bc63befd3483e01d49cc30a8f7195a97a3a23ff740219ffff0388ab07b54c289b4c44337c09ba34fbc30b1f1e2fcb6439a8984c162b01fafd0f036c52fb7bfd6111e068d0a68ec5329a09f1076a0dc0e1fabef3834ba5201a546203594f243b436d05a2847e731e66b5dfe50ae67ed8a0aab4cb2fbbcfc313039c86035c961894b94bcc6e60304b9fae3da91fae8c087269ee99b4c111354860af8e9c03f7cefb855e1b44eeff99aba88cf822beebdcded40abe486b4142446a0c59b00603da97174dcc8796d751e31b822f3f93e87294be4e72cff7c08e89cd6099b272b70395140c6ec5bbdeba72a975d4ec97e48631cdbd60ce35a8d047cc126f9b9310220219ffff03c399193e8cdf3837b209bb3c840900c534395a84101231e8def97762223bd2cc030a354c0c2891a2e7481956e433360c8d120b5fe2dfcb36719104731de776f8ee0348b4b075d383bf682305b86a26acf271250000f2b42162e36620246e62424e300334db5be6d5ba6533ae0f70d2ee7b419ba9ca4e090995f0aa0fa31037e9e4d2fb0397299a1f5507fb4903e929b3eb3380bb3f8d1c448453fb6c60b01210281c77f803a3eb0d3b46d4617db43c6d378017726500e2e615100a4a72de48d0dffd7b1fa203f606dc4d1577838d8c14d3d00eeec0c522862b03ea7124b02a5b30cc74b104c003d29efec835fb625108a950f44902ed7a374c3f21417306b416bd715067d9cecb0382948065fa93b4b05eae2acbb2e8eb7352b3649fe51b77d9a7d3e6561b31f07f0219ffff03431693b93249c767d99e92d7d4e86673cdacad1ed4bd0397dcf75c525fa841d203ca4dda1d4a4b237e9bb8f5bd034104de6b683f0b8321945284b07bcd33d62034030a556d66a296197f3639d1c2e5cac559a21b976fb994573b578eceb14f53f49803c92567d56af11aa66cb38bb8e892ab574c83b41560a87611b432f687eff4ef9103d45f393dab53b7226a977bea4b2fca1b41d3cb0b06f654a8b77a1ab266221d2f03a07249ec46ad56814204a4f9b1cff1277955ded29be41995b59c8732e8130d42033ade5d3559602c4baeddbe602f94ed18261e43fb75206098e669f523c32d8a6803332742e3c4a571ef89704f8f49e1c70e94302daf8d3b18f460daf41d5bb1027e03e361ec74f0ae64fe46ff8e0e8256d4d0af5964769531304253d9a6712ed9443a03e76e98e628f30c21212d36bd401c43d914ce96a1954944023ff5ec12b22c6ca305581e03fdc3696b692cc5296f799dd31a3cdc9613c8d6762503dbc805b91a404008480646d5e6d597c00005581e032078b3f422f1bb75e71db3d5bbe805f0a395291efa7aeaf22ca885eed004060381ebeebd2aa160a72935680ee574185a2d56364bf2fcde34738765cbf02a4b00031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e038dfca3edca07cebfa08f334235def92d6264b250f5b4748d85520319f007011bffffffffffffffff0335810db24ceb31609b83309d8f8a58a0dedd934a2a43dd02e3c44809a901e627036892ab6e903d46049666948d8b2dfe52ee9b155458fd993095de34f9e10974da05581e0375bdf8ebcee8fcc405109cc782c8ac9b616683368a72ea88963dff9eb007011bffffffffffffffff05581e032652413215da3224a46f89b29e0474c55cfa108bde0e199008c4d9b5b00c034704b1408241895805581e038a8de9598958408a1f49daf4497016fa24b16cc2a6f5a6702c62cc08f00c0146049ca931750005581e03dd821fbc18a3645f52a02cb52bd1cb9a821bd44a860cbf31147590fcf00401038e5f78559f1c87ba0d9ebf71cdfd0984468ea972b1583b209511219ee664128405581d02010551314fb0fdd4e01467f7345dfd20c558d90cbc36a2e329ba6bc90c0147031ae5fb88a000045925c66080604052600436106101355760003560e01c8063a0c76a96116100ab578063d2ce7d651161006f578063d2ce7d651461081b578063f26bdead146108b5578063f68a9082146108ed578063f887ea4014610a44578063f8c8765e14610a59578063fb0e722b14610aa457610135565b8063a0c76a961461051c578063a7e28d48146105f5578063bcf2e6eb14610628578063bd5f3e7d146106ee578063ca346d4a146107d957610135565b80632e567b36116100fd5780632e567b36146102fd5780634fb1a07b146103935780638a2dc014146104aa5780638da5cb5b146104dd57806393e59dc1146104f257806395fcea781461050757610135565b806301ffc9a71461013a578063020a60581461018257806313af4035146101cd5780631d3a689f146102025780632db09c1c146102cc575b600080fd5b34801561014657600080fd5b5061016e6004803603602081101561015d57600080fd5b50356001600160e01b031916610ab9565b604080519115158252519081900360200190f35b34801561018e57600080fd5b506101bb600480360360408110156101a557600080fd5b50803590602001356001600160a01b0316610ae4565b60408051918252519081900360200190f35b3480156101d957600080fd5b50610200600480360360208110156101f057600080fd5b50356001600160a01b0316610b19565b005b6101bb600480360360a081101561021857600080fd5b810190602081018135600160201b81111561023257600080fd5b82018360208201111561024457600080fd5b803590602001918460208302840111600160201b8311171561026557600080fd5b919390929091602081019035600160201b81111561028257600080fd5b82018360208201111561029457600080fd5b803590602001918460208302840111600160201b831117156102b557600080fd5b919350915080359060208101359060400135610bd2565b3480156102d857600080fd5b506102e1610e53565b604080516001600160a01b039092168252519081900360200190f35b610200600480360360a081101561031357600080fd5b6001600160a01b03823581169260208101358216926040820135909216916060820135919081019060a081016080820135600160201b81111561035557600080fd5b82018360208201111561036757600080fd5b803590602001918460018302840111600160201b8311171561038857600080fd5b509092509050610e62565b610435600480360360e08110156103a957600080fd5b6001600160a01b038235811692602081013582169260408201359092169160608201359160808101359160a0820135919081019060e0810160c0820135600160201b8111156103f757600080fd5b82018360208201111561040957600080fd5b803590602001918460018302840111600160201b8311171561042a57600080fd5b509092509050610eda565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561046f578181015183820152602001610457565b50505050905090810190601f16801561049c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104b657600080fd5b506102e1600480360360208110156104cd57600080fd5b50356001600160a01b0316610f5b565b3480156104e957600080fd5b506102e1610f76565b3480156104fe57600080fd5b506102e1610f85565b34801561051357600080fd5b50610200610f94565b34801561052857600080fd5b50610435600480360360a081101561053f57600080fd5b6001600160a01b03823581169260208101358216926040820135909216916060820135919081019060a081016080820135600160201b81111561058157600080fd5b82018360208201111561059357600080fd5b803590602001918460018302840111600160201b831117156105b457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ff1945050505050565b34801561060157600080fd5b506102e16004803603602081101561061857600080fd5b50356001600160a01b03166110f8565b34801561063457600080fd5b506106526004803603602081101561064b57600080fd5b5035611116565b6040518084151515158152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156106b1578181015183820152602001610699565b50505050905090810190601f1680156106de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b3480156106fa57600080fd5b50610200600480360360a081101561071157600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111561074b57600080fd5b82018360208201111561075d57600080fd5b803590602001918460018302840111600160201b8311171561077e57600080fd5b919390929091602081019035600160201b81111561079b57600080fd5b8201836020820111156107ad57600080fd5b803590602001918460018302840111600160201b831117156107ce57600080fd5b5090925090506111cd565b6101bb600480360360a08110156107ef57600080fd5b506001600160a01b038135811691602081013591604082013591606081013591608090910135166114eb565b610435600480360360c081101561083157600080fd5b6001600160a01b0382358116926020810135909116916040820135916060810135916080820135919081019060c0810160a0820135600160201b81111561087757600080fd5b82018360208201111561088957600080fd5b803590602001918460018302840111600160201b831117156108aa57600080fd5b50909250905061153a565b6101bb600480360360808110156108cb57600080fd5b506001600160a01b038135169060208101359060408101359060600135611558565b3480156108f957600080fd5b506109b36004803603606081101561091057600080fd5b8135916001600160a01b0360208201351691810190606081016040820135600160201b81111561093f57600080fd5b82018360208201111561095157600080fd5b803590602001918460018302840111600160201b8311171561097257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611570945050505050565b60405180836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610a085781810151838201526020016109f0565b50505050905090810190601f168015610a355780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b348015610a5057600080fd5b506102e161165b565b348015610a6557600080fd5b5061020060048036036080811015610a7c57600080fd5b506001600160a01b03813581169160208101358216916040820135811691606001351661166a565b348015610ab057600080fd5b506102e16116a6565b60006001600160e01b03198216634fb1a07b60e01b1480610ade5750610ade826116b5565b92915050565b604080516020808201949094526001600160a01b03929092168282015280518083038201815260609092019052805191012090565b6005546001600160a01b03163314610b65576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b6001600160a01b038116610bb0576040805162461bcd60e51b815260206004820152600d60248201526c24a72b20a624a22fa7aba722a960991b604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546000906001600160a01b03163314610c21576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b868514610c67576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4c454e4754485360881b604482015290519081900360640190fd5b60005b87811015610d7057868682818110610c7e57fe5b905060200201356001600160a01b0316600460008b8b85818110610c9e57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550868682818110610cfe57fe5b905060200201356001600160a01b03166001600160a01b0316898983818110610d2357fe5b905060200201356001600160a01b03166001600160a01b03167f0dd664a155dd89526bb019e22b00291bb7ca9d07ba3ec4a1a76b410da9797ceb60405160405180910390a3600101610c6a565b50606063d4f5532f60e01b898989896040516024018080602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600083820181905260408051601f909301601f199081169095018381039095018352939093526020810180516001600160e01b03166001600160e01b0319909c169b909b17909a52506002548154999a50610e46996001600160a01b03918216995016965033955034945092508a91508c90508b896116ce565b9998505050505050505050565b6000546001600160a01b031681565b60026007541415610eba576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600755610ecd8686868686866116f0565b5050600160075550505050565b606060026007541415610f34576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600755610f49898989898989898961187b565b60016007559998505050505050505050565b6004602052600090815260409020546001600160a01b031681565b6005546001600160a01b031681565b6006546001600160a01b031681565b6000610f9e611bb8565b9050336001600160a01b03821614610fee576040805162461bcd60e51b815260206004820152600e60248201526d2727aa2fa32927a6afa0a226a4a760911b604482015290519081900360640190fd5b50565b60408051602081019091526000815260609063172b3d9b60e11b878787876110198689611bdd565b6040516001600160a01b0380871660248301908152868216604484015290851660648301526084820184905260a060a48301908152835160c484015283519192909160e490910190602085019080838360005b8381101561108457818101518382015260200161106c565b50505050905090810190601f1680156110b15780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909a1699909917909852509597505050505050505095945050505050565b6001600160a01b039081166000908152600460205260409020541690565b600360209081526000918252604091829020805460018083018054865160026101009483161585026000190190921691909104601f810187900487028201870190975286815260ff841696929093046001600160a01b0316949091908301828280156111c35780601f10611198576101008083540402835291602001916111c3565b820191906000526020600020905b8154815290600101906020018083116111a657829003601f168201915b5050505050905083565b60006111e9888860405180602001604052806000815250611570565b509050336001600160a01b0382161461123f576040805162461bcd60e51b81526020600482015260136024820152722727aa2fa2ac2822a1aa22a22fa9a2a72222a960691b604482015290519081900360640190fd5b8315611284576040805162461bcd60e51b815260206004820152600f60248201526e1393d7d110551057d0531313d5d151608a1b604482015290519081900360640190fd5b6112c688888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ccf92505050565b811561142e576112de866001600160a01b0316611d60565b611321576040805162461bcd60e51b815260206004820152600f60248201526e1513d7d393d517d0d3d395149050d5608a1b604482015290519081900360640190fd5b6000866001600160a01b031663592e2070838b87876040518563ffffffff1660e01b815260040180856001600160a01b03166001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b1580156113b757600080fd5b505af11580156113cb573d6000803e3d6000fd5b505050506040513d60208110156113e157600080fd5b505190508061142c576040805162461bcd60e51b81526020600482015260126024820152711514905394d1915497d213d3d2d7d190525360721b604482015290519081900360640190fd5b505b87866001600160a01b0316826001600160a01b03167f56735ccb9dc7d2222ce4177fc3aea44c33882e2a2c73e0fb1c6b93c9c13a04d48888888860008b8b905011604051808060200180602001841515151581526020018381038352888882818152602001925080828437600083820152601f01601f191690910184810383528681526020019050868680828437600083820152604051601f909101601f1916909201829003995090975050505050505050a45050505050505050565b6040805162461bcd60e51b815260206004820152601d60248201527f52454749535445525f544f4b454e5f4f4e5f4c325f44495341424c45440000006044820152905160009181900360640190fd5b606061154c8888898989898989610eda565b98975050505050505050565b600061156785858585336114eb565b95945050505050565b6000606060006115808686610ae4565b600081815260036020526040902080549192509060ff161561164a5780546001808301805460408051602060026101009685161587026000190190941693909304601f8101849004840282018401909252818152939094046001600160a01b03169391929183918301828280156116385780601f1061160d57610100808354040283529160200191611638565b820191906000526020600020905b81548152906001019060200180831161161b57829003601f168201915b50505050509050935093505050611653565b85859350935050505b935093915050565b6001546001600160a01b031681565b611675848484611d66565b600580546001600160a01b039092166001600160a01b03199283161790556006805490911690555050600160075550565b6002546001600160a01b031681565b6001600160e01b031981166301ffc9a760e01b14919050565b60006116e28a8a8a8b8b8b8b8b8b8b611e23565b9a9950505050505050505050565b6002546001600160a01b0316600061170782612037565b9050336001600160a01b03821614611758576040805162461bcd60e51b815260206004820152600f60248201526e4e4f545f46524f4d5f42524944474560881b604482015290519081900360640190fd5b6000611763836120a4565b6000549091506001600160a01b038083169116146117c3576040805162461bcd60e51b81526020600482015260186024820152774f4e4c595f434f554e544552504152545f4741544557415960401b604482015290519081900360640190fd5b600060606117d187876121d6565b9150915080516000146117ef57506040805160208101909152600081525b6117fa828a83611570565b5098506118088b8a8a612283565b81896001600160a01b03168b6001600160a01b03167f891afe029c75c4f8c5855fc3480598bc5a53739344f6ae575bdb7ea2a79f56b38e8c60405180836001600160a01b03166001600160a01b031681526020018281526020019250505060405180910390a45050505050505050505050565b606061188633612300565b6118c9576040805162461bcd60e51b815260206004820152600f60248201526e2727aa2fa32927a6afa927aaaa22a960891b604482015290519081900360640190fd5b600080606060006118d933612300565b156118f2576118e88787612314565b909450915061192f565b33935086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294505050505b81806020019051604081101561194457600080fd5b815160208301805160405192949293830192919084600160201b82111561196a57600080fd5b90830190602082018581111561197f57600080fd5b8251600160201b81118282018810171561199857600080fd5b82525081516020918201929091019080838360005b838110156119c55781810151838201526020016119ad565b50505050905090810190601f1680156119f25780820380516001836020036101000a031916815260200191505b5060405250508151919450919250159050611a4a576040805162461bcd60e51b8152602060048201526013602482015272115615149057d110551057d11254d050931151606a1b604482015290519081900360640190fd5b611a5c8d6001600160a01b0316611d60565b611a9f576040805162461bcd60e51b815260206004820152600f60248201526e130c57d393d517d0d3d395149050d5608a1b604482015290519081900360640190fd5b6000611aaa8e6110f8565b90506001600160a01b038116611af9576040805162461bcd60e51b815260206004820152600f60248201526e1393d7d30c97d513d2d15397d4d155608a1b604482015290519081900360640190fd5b611b048e868d612352565b9a50611b138e868e8e87610ff1565b9550611b248d868d8d8d878c6123c4565b93505050818a6001600160a01b0316846001600160a01b03167fb8910b9960c443aac3240b98585384e3a6f109fbf6969e264c3f183d69aba7e18f8d60405180836001600160a01b03166001600160a01b031681526020018281526020019250505060405180910390a4506040805160208082019390935281518082039093018352810190529a9950505050505050505050565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60608282604051602001808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611c25578181015183820152602001611c0d565b50505050905090810190601f168015611c525780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611c85578181015183820152602001611c6d565b50505050905090810190601f168015611cb25780820380516001836020036101000a031916815260200191505b5060408051601f1981840301815291905298975050505050505050565b6000611cdb8585610ae4565b6040805160608101825260018082526001600160a01b0387811660208085019182528486018981526000888152600383529690962085518154935160ff1990941690151517610100600160a81b0319166101009390941692909202929092178155935180519596509294611d569392850192909101906124f5565b5050505050505050565b3b151590565b611d708383612409565b6001600160a01b038216611db8576040805162461bcd60e51b815260206004820152600a6024820152692120a22fa927aaaa22a960b11b604482015290519081900360640190fd5b6001600160a01b038116611dff576040805162461bcd60e51b81526020600482015260096024820152680848288be929c849eb60bb1b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b03929092169190911790555050565b6000808b6001600160a01b031663679b6ded898d8a8a8f8f8c8c8c6040518a63ffffffff1660e01b815260040180896001600160a01b03166001600160a01b03168152602001888152602001878152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611eea578181015183820152602001611ed2565b50505050905090810190601f168015611f175780820380516001836020036101000a031916815260200191505b5099505050505050505050506020604051808303818588803b158015611f3c57600080fd5b505af1158015611f50573d6000803e3d6000fd5b50505050506040513d6020811015611f6757600080fd5b81019080805190602001909291905050509050808b6001600160a01b03168a6001600160a01b03167fc1d1490cf25c3b40d600dfb27c7680340ed1ab901b7e8f3551280968a3b372b0866040518080602001828103825283818151815260200191508051906020019080838360005b83811015611fee578181015183820152602001611fd6565b50505050905090810190601f16801561201b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a49b9a5050505050505050505050565b6000816001600160a01b031663e78cea926040518163ffffffff1660e01b815260040160206040518083038186803b15801561207257600080fd5b505afa158015612086573d6000803e3d6000fd5b505050506040513d602081101561209c57600080fd5b505192915050565b6000806120b083612037565b6001600160a01b031663ab5d89436040518163ffffffff1660e01b815260040160206040518083038186803b1580156120e857600080fd5b505afa1580156120fc573d6000803e3d6000fd5b505050506040513d602081101561211257600080fd5b505160408051634032458160e11b815290519192506000916001600160a01b038416916380648b02916004808301926020929190829003018186803b15801561215a57600080fd5b505afa15801561216e573d6000803e3d6000fd5b505050506040513d602081101561218457600080fd5b505190506001600160a01b0381166121cf576040805162461bcd60e51b81526020600482015260096024820152682727afa9a2a72222a960b91b604482015290519081900360640190fd5b9392505050565b60006060838360408110156121ea57600080fd5b81359190810190604081016020820135600160201b81111561220b57600080fd5b82018360208201111561221d57600080fd5b803590602001918460018302840111600160201b8311171561223e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250969b929a509198505050505050505050565b826001600160a01b0316638c2a993e83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156122e357600080fd5b505af11580156122f7573d6000803e3d6000fd5b50505050505050565b6001546001600160a01b0390811691161490565b600060608383604081101561232857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561220b57600080fd5b604080516374f4f54760e01b81526001600160a01b0384811660048301526024820184905291516000928616916374f4f547916044808301928692919082900301818387803b1580156123a457600080fd5b505af11580156123b8573d6000803e3d6000fd5b50939695505050505050565b600254600080546040805160608101825286815260208101899052908101879052919261154c926001600160a01b0391821692909116908b908b9034908790896124d5565b6001600160a01b03821661245a576040805162461bcd60e51b81526020600482015260136024820152721253959053125117d0d3d55395115494105495606a1b604482015290519081900360640190fd5b6000546001600160a01b0316156124a7576040805162461bcd60e51b815260206004820152600c60248201526b1053149150511657d253925560a21b604482015290519081900360640190fd5b600080546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055565b6000610e4689898989898989600001518a602001518b604001518b611e23565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061253657805160ff1916838001178555612563565b82800160010185558215612563579182015b82811115612563578251825591602001919060010190612548565b5061256f929150612573565b5090565b61258d91905b8082111561256f5760008155600101612579565b9056fea264697066735822122067ebf86384f04880506e06814056624357ca16813d33c083e0e0b19c41865a8a64736f6c634300060b00330058210336b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00541c8db745abe3c8162119b9ef2c13864cd1fdd72f0058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563054cad7828a19b363a2b44717afb1786b5196974d8e0058210305787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0544dbd4fc535ac27206064b68ffcf827b0a60bab3f0058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688041010058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf605472ce9c846789fdb6fc1f34ac4ad25dd9ef7031ef02190c1505581d0218539fa1ee008fb619ed213ae9678e1af0b1be9959dc6f32c0a8333c07011925c60219108002191ebb037bda7598ddc628035a21fa53be0b1871d8c59a602bc1c5ada40fe21c8638184603cdbab90dda0a0dc64b6ea7dd895a63fe7239a9f5a489f6992a568483b9e722360386266d73ca7d65ae99b84886ccab2aaa96b1d2438ce00b4eb04db71a0ed4fc3203ba26be56d59359397bf09e41bcc75a31513d23c3262cad4f395a043ce917e6a503a340c370d92bc3b6324640e33d6d346725f29b625dfbab684961e5dc1a44ab7503a6a4644292795517ffaf1da10560f1a8919a7bbafdbd4e8ae512d29ec5498345031e77b7bf8993915572943191c13d0ae7d8f008720ac9e28fb4ac31e6f4f625a0036458e34ad61ef6e0aefb35241a3820738c3374259f0bcc82c1a4b78efa0db03103298c6d6bfc50da9a045053bfe96e260870401f54e3684e9bc306f0213e3e124503bb71fcbc91c76a6399ce36e42de18c17f401e5910d4e24b2105976d4c2378d94030e3896f69de4a57b49aa48fae6151b38f395006f1dd26e09238d24580c7faba403f1c35a4f52aa9e62aaeccf9946f151aff93c7187d8105b5c700ca92c57b08d4e039d79be10147f1ff7bd4da06c4a19944df4fc9c931ffcfdc74ec117f5c60be9cc0219ffff035dd0cccb483f23e3c02e0f8c871404fc4930cd40bc7140b152d30d66c64d36b8030c69b33acc09d9f63fe1917ea2a3e7db03bc82858ad6d6f719cfbb4b2ce625f6032e5771d6fab3ad00d2687de857ce3a737418d0d64b1f88801cd4571e4168acac03b29c72f77d4d3b028e16b9be90b2d62001877099f2400799d7017590af47f24403111f409c284f1065474515fd510265e95e250b32a531bc47a252e952c8a451d603febb9258bfe4793138dfd04fbfbf8f8a876f8333a209a0c29abe7263a73c52950355180314f419a6c4e449328f981c2a7441eb02179fe24bef4f501e39f4a97ff903b05f4025ec3f9c5770689deb491106debb6c2e908523d12eefe84196e02e5b460383eeef8ea9fd262bbd2df6a54482062be8693159eca49eed134067b04ae86fc7030c37d86b4e72c43d3a11d021aff362f91b3eb14b66589a0ecc5c9cafcabd63540341f3322e861f8cf79eb853c6a1ccc077effe60c67e332b3779837199525603f5034a663305e133163edfb984e344d776bbe7fef5cf190404eea66d98a78a5bda1603db93f8e09fb32cdb9c991bdbf277746e6c412be34ba3e4f07de34ea838812b160219ffff03850719b9ce8422dee4ee07dcf5de80491316cd370c615ee478568321b3c94c9203b0369ca28abf1632679063985b522213013f0ea2e7975e3c87179e03199327c5031c2f99b6387c9f821200169a6df66e7d0c48e5d3360cbe71dd07de073dc1012103240c781f16e87ec78b6e740022a25fd89778d28e8485f6be1dcbf663cd3891810377dad02a291e3e7a1c33429884b21f111a9950693f40706f7a188682ea18b625032a919277bbb1370b7a2c3e1249410cba93b4051824a0276637f5102a8df9378303ecf211b97f568e67ae377a0b87c10996efc3c745084023bce2107a371649ca4b039fe3449239f8c3f8e34ba72aab3f5773c8ae31145bc8493a59fb2e4ad5b91f450306cb02e063a63e4d710a07052356a1764e0a50b577912a19f14ff85347195559030941645944efcd139fdcbb7f888da93bba6d117dd5ff11fcd40c37a1e24e33a20370a27d0d3a2255c0ce38898159fdf7a0d47739a02d7a5f02dc76800db1cb15fb03fccdd9e7c5418ff0f6f4504167a42d6cc940600d421f692a505efc7fe23ea3650354297dea163db7ebcca8f3eca541b49bdf958ceeaa972064cc11ef4524bdaecf03a2d1fa0feca07954062df5a85d2f34e0030ab28d98b5d9673ee0c395a13afe5203e25ff7bf268e1e8fa25370041390c724be9e41f043ca88f94d93f872509b6ed5034fb309ad5ced35d9d2f5c9c0435d9f2869fb08389094e1e4918af107dadd20d6035bd5477fe67caeb1fec458f11015286bd4619930b9f38554d54adeb962ebf582037dff94d51d7ba4ec0d66cbd9157e5f847de2bcd0fc2717f4ac65a5e1e07fd7e30319d2136a41d69ae853365d42518f36c28c59cb5f1e603020ef282f1a61ca6df403b46b9a554cd420349f422504222d5abfec68c6f2fe6aee5bd3a3f2e1fbbb943903cd14b9261de82dcdfda8a135ac5ab81656a83014a391bea6421371de091966b205581e0346ca002a20c2eb0f3d2504e1f610c85f23745844c372e98a08efdd2a60084820b3df125c8c380005581e039d559258418a4f2bca50534a15fad6c0b7d843bf16867d981d888de690040805581e03cc562f0bea75368a563801fb6439ff58c5777f1f229a4c62b9ba7a4cc0040205581e034f8f71e2e727249796b3df4293d93d3da0778ff1eb7ad54de968a486600406037a3670f78c75958f13f8579474b348612a80af61fa9b61b2c81c415523f170590605581e0334c934a0663d9a3f79213eb72d9329980c8a0a7bbf97dc03d84fdd9ea007011bffffffffffffffff039f8e6807af4d5ed234d223fff2fd5266a723116a49484814f4df939ea4c6331b05581e038897605cac441e2336ee7e10ae41a11f2e726c1b327469a502b2e6fd200c04465028414c207005581e0395995077442c37b1663c43c7d5439a78fbaba0fb45545dbe3c7b8857c00402031e63abf502d5fd18aff5d76812ded729a8dfa7d89cb3bc99e8ec5f997987d98905581d02f854b2074b512cc2ba1217511c7d97d7f54d21b1c8e39ddf327b1f280c0141010459082c60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610262565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b031661029f565b34801561018857600080fd5b5061012d610359565b6101996103b6565b6101a96101a4610416565b61043b565b565b6101b361045f565b6001600160a01b0316336001600160a01b031614156101da576101d581610484565b6101e2565b6101e2610191565b50565b6101ed61045f565b6001600160a01b0316336001600160a01b031614156102555761020f83610484565b61024f8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061038492505050565b5061025d565b61025d610191565b505050565b600061026c61045f565b6001600160a01b0316336001600160a01b031614156102945761028d610416565b905061029c565b61029c610191565b90565b6102a761045f565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103055760405162461bcd60e51b815260040180806020018281038252603a8152602001806106f8603a913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e61045f565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c4565b600061036361045f565b6001600160a01b0316336001600160a01b031614156102945761028d61045f565b60606103a98383604051806060016040528060278152602001610732602791396104e8565b9392505050565b3b151590565b6103be61045f565b6001600160a01b0316336001600160a01b0316141561040e5760405162461bcd60e51b81526004018080602001828103825260428152602001806107b56042913960600191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045a573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b61048d816105eb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b60606104f3846103b0565b61052e5760405162461bcd60e51b815260040180806020018281038252602681526020018061078f6026913960400191505060405180910390fd5b60006060856001600160a01b0316856040518082805190602001908083835b6020831061056c5780518252601f19909201916020918201910161054d565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e1828286610653565b9695505050505050565b6105f4816103b0565b61062f5760405162461bcd60e51b81526004018080602001828103825260368152602001806107596036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b606083156106625750816103a9565b8251156106725782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106bc5781810151838201526020016106a4565b50505050905090810190601f1680156106e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe5472616e73706172656e745570677261646561626c6550726f78793a206e65772061646d696e20697320746865207a65726f2061646472657373416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65645570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e74726163745472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574a2646970667358221220175110956fa0a7ff1615f55e1422acff6edcec0099d7ea0bae101f4f6228c8bd64736f6c634300060b00330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56304101005821036501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540541c479675ad559dc151f6ec7ed3fbf8cee79582b6005821032df0bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d481054554723262467f125ac9e1cdfa9ce15cc53822dbd005821035b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d0545aed5f8a1e3607476f1f81c3d8fe126deb0afe9400582103ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c70548315177ab297ba92a06054ce80a67ed4dbd7ed3a021901b405581d02f505b09555d8024801488141bad8bb8c0242bb2c6f9116dc8bed51ab070119082c021914000219e6570333093f50fcfd544eca8155c4893908a8b8df164b25c3474ee59afa1fbcff506403410ab9e529acb92f103bbe88df6c1480810af1bad21c12ffecf87d13aa0e036c03c369eeaf134c7af14f6a15d955e96e67b1d36d56e4d2e5467772188017026ad0031705e9bb5ba79102993f56950538f6f11c49c80247c9cc4d2c7198074f948b5303156a1524f23c06f813b3377513d3da35e52a684226061502e93663961d3816070219ffff03f54937a81c16068a57fccb811f35ab8f0ad3dd94ac17576d078c139bb3e4431c03aa20f66c5f8ccd645379c5f4d5bef17ba07d271db01ee7641186ede6e82916ef03fa943292bf7059dcbb7cc8ee1dcc95d14a54dbc2cb3c004ce649d8726d1105f30384b01d02e6814744d8e66870a5fd6191861005ee89b9234d4370d8935b2afb5e03ab1db0e8554cd34e74214a503c1b79008b587c77a08d2c9b79d8bbe9722a4cfd03bd1a19346abcc126aa0345750fb9f9960f668b7882ebea7d18873cc203bafb2703767503112e09ba23f5086dfd495093e14148a84bdb03aa3a9c74be263608fa5f0219ffff03ca4b63808068e87b94b4ee3311e6dd2d9b415db8aa0ef22cfb1c3ee9bdd35a3003a2a4f48c64d46d67347ffcc9cc5b8645178d129767339263fd9458b02e84890d0342109da98f1ff948c136974629ae686330250e260ce8116f944f9ac5089095b203cd46676af4f48070c6a3f8bfd51f94a3345ba2257ba34c7862b47ab2892ad40e03e0f21cee55c8f744870354b437354af0232cef930eb7035893304ff7b5385e7b03e17deb370037a9ff7c192d65920c7f48a0d3121f81d4363aefdcf08df587320b03fee367db2a0bc43ce3ec6d83bb22a72cbb0a80038e31a441a8131b036f29a14e036d57f87f13647213ddf20e295f3656f96a340a2ee5000e147cc5028a22dc007f0219ffff030969249d78df7a536a66543175e04d83097fd427257df5d715b0581e342415f303e0ef13307159febb98201548bb551393ab09e0508f4ba8ddd2916e59437621c6039ba9c769138cc63c8c55ae5b005cc721473a76ca2cb72f29a61f2f3f85f1380a033d48507658cb29a2744c265f2b461d3e9f54b26ed23cfb874ddae0050f7c506a036fb8629f92e353a7580a3141ffe0f570fa9e0de0585ebd6f0cbd1f05c4470aae0304a92ab4e8ddf99310c68ff8a85c3c754e908ed837f2dfefeebec7aa2c46be5e03ae213d4095e5fdeac075b22a292c535537fb6fa86a2d18d81b09ada501ea7a53030e9d6f349e993010b913b7f0ed2cacddd04e63817be52ee32a154f7f9525619b03390fc9b4562ba8c671d262e7e5f8b7e9abec67d52ef48122ea3495089c2a2fb903c7307bca24c02984cf53b433f795c04505d290cc2695e99ada08e5f37b74bc020324c6d273ebc37d0ad4e51a9dd6fae817958018bd76c36885e0987c8b2c6ab22d030aadeda7f790427b3d8e882fe68e0e05ddfb0d8bce321332f05f39942dea741303c875d334ce84cd46402f792ddb19f4fa1a50b5d31fbde5ba8dfa1ea25ca444a803e05cca167ee17956e9ec3bdc8fafd1f15740e4785cdc6bba0f8b2869f9a5dc5d03c09062cba091be851bac35fd195df14ae0618ebbfa9d0a5c1e3394ed2e3a2ab1031e798110c5a0aa02f0e4ccbd7c064be1b9790b351d40e4f69b5c965f8c31c9c90392332dbaecf412598eaa6cbd739d5a47a887373c9a796f41e211d3497aca7a9a03f2e116372be261fea3e4e2316f0e35caaac86996858cd13e4a6a444f41251ba403fb4ef53ca38d15255b5af6aa61ba5a0e14571db07a771a8fd9472abc3bcc31bc03508a2954f9bd715adc5510df44a8d1731d8e2113838f0dafbf4e0bc4eeb7213c038aa0e938ca644ef45750343989ae9692478836680cfa14db6580f1eb637269bd0367ad0d663bd0be130c44c7b770afd0e0499399496f15322fd58f2057b817c22a03446630eb08e7e1e0b0cb42253c16560e7a2f3e53469bba61a8a9005244b8c6f9032fb75c6f0459eefcff2fe284257e201107927e3255fa14008a5b1d2f384590c103e4d0a4d13fad4c6491be1a198fea8891dd78e62fad1035b2ce56607f53cf9c5003674408137fe353e3a14e1e69f7d781521d486e167eee558f789dca3ffd5939f8039f32c342e1525cfc20d46b35ecca5b0733bc248f32b661ef979b9cbe169045ef03dbb61a53e1d595b4b80861fe1c2b96c2ca3067725f75b1a7cee8e645ccd7acf503bffe66c1f6a7add89dd43918e16a20a53c6533119af5d3bfa80f76e26eecd2270310930e83c11453d56fa50abdb5dd862bce72638cc55e35c75135dd0d1c23aa4c03cbe3b34a9fd247c525937a33bb599a969183b45d6303879c1097e93fab965af703168daab0ece3df4be307c9ddffbfae6036a0a44fb1e1dddf0279148ca3f4a0b103429dbe96357258cf30af315140a9a5366af7be176b9760a51971011a08fd85a0030771a0c53ce845111080fc385b694a28695b2a09619875a84954c63033fa53d1033fa738c391d40779781ee584ef6d3eb819df9990ee5726c9f1f9d7771392160903782825194c1bcdcdb2d0a339ec4674317c04929ee3eee5b74b95dbd9c8f005710321b103d2abd0c1933893ab87bcd7e9fe95a534880c56b8754814a1a42c6111090317d9e6744ae1fbd854c99ddd10669cff54c226bdb3a02b6dc164e01b10c3707603ca0d1ef0f45df0057edf2802bd3bed3d1bb94a54cba1a148f35b0e67b4d2bf55033743815cc63583e41fa4d9f2d5e0800bccb0a709387325956a6e7fc26c533c6a05581e03decde404ced1be21eddaa4b6f6e6fcb57e3c5df6d2fd2586dea04e89100c034702161467941fb803e7df167dd6d1155b99cab978ab98db3207de1203084a06058051474ed77e3d3805581e03138f6053f541009394c6cf3097273803680449cccc23a5df9a0d646100040203ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e039826155f8ece692ad50bedb77fd952a37916cfa91d83a203725b6b7ef007011bffffffffffffffff03f5e801193ead1f13681bc14383b7dd9ba3eb7d08fdbb005abb516a47e094f38905581e0337490458e072e687b25efc41ddbb6a84b3a7729e3463631d7d7c37dfb00c18654903c8e46d47274ca9d003d820df7cafb9ed2f0c9e8b68d1116aea540c64535ad9c77b40a03396b75bb43605581e03eb02efeb44a449af957a1ec29592b7fd65e46dd614dd66943dccf69dc0040102194e990350b369ebedd83f85379874147383f80f43663f2b69342873439344e3ee822c0503def1f5fca809f110d6f4ffb38dbb455ed70f30ddce5d9be4af4b71139f238926033d53d1e333e273abc75ef93f51c69e54b2f6d6d5d82a9f30916eb703031a098a0219ffff038129cbf4ac9d455235ed3dc3819228667f582948e3e3dad868eb70b3334d85720219ffff0399838a119d9f0795898592e808f60bb726cfb6de28da8f92fad53b05d08c90b1036ca9bad2bc192b371f4d10324d65be62454d7341bd4b0d80730faeb4fad4ede403b117a8f33d6d1456e30a4b0e4922402f72c18945dedaf6fb5cf075713dbaa550035813ef202499f11d9756788e80d04598c8e3c3a8e8d3cc4585ce8fb74b99e59303a35761bad1fdf9f8e8f586a5eabb3cb9f5908b6b58cf44971d689b38489812710219ffff0322066bfeecebd5ab1fafdfce004ef9a292673223fee868b57641eb153e7e952f03107636285bb86bf90a89204870c4387e0475b1ba087d49eb8261a34701ce33b9031647bc659c1035648f200350f6b1aa27e24cad787f9fac8ef2fb27feb5c815e903ded214c9176811888171036d7dc03dbd71dfdd5b1f7e1e76a4f8eab022f5d9d203bb5866e194cffebfd2261e23d1ec43f9ab8da93ba0f9a036d7ebbd88d7dc6dc3033671318f99b7519aca76a0dcf856d0bfa496655201a3b2ea091d93c2cd2f8a4103272ebc7ea9e3123264380e81eb9e5bb4b27e1ee161f448cedb5f9636945d5dd80219ffff03b2fa48f16bd0b9ae70a8f22000ba382bd4846005ac0502ef55cb892f85350bf303907fcf86fb3088a5afe17110f3660f1284854e7dd4a89ada3f8c857134dc2b1003f67a42b881c3ac04f4ce912214b57c48d96270e9b710fdd7420eda5ca7919a9e03b529057209382a0439a18d362b3d64d7e38c8592100e9297c1254006d03719cd03db674d44b6402aabd60405ce0e0529ab039e19105a69d6e9dfa589a86b80906703f87f7a0a0aafb361f2693b6cba4e519b8b4c0c255a8e62663f3ece8ad3399cd603073a165bdb8203a1ee2115fa146c3883c916b94679d6a93c9385b1c89b8d4261035ba3ae9b179a3a0cf091b58955464b69f5ca8858dfa8bf5603f9d7eda44e604e03dd6e319a1f919db2319a0ce49b4f1f265a74f52fb1ec935211ec796ecb808ff303b4cbce084b33a7b33ab74d22b6fab2641cf1ed08a99f4af612b7079a3f60de93030625397c4e12546887751c93651c5a55c85d6bc20e5d097bc02c3f74810eb30b030dd0cc276c15c1d296125134577bace9e0baa394f9afdd14b34f73a7d911b65703884548d8059ce9a62c340b1e7cf750cd5a9b9892c5c20e17c5578c2b7bfb5fb1034fd678b5828d6df4d93e935486aefe7557c167acea8d4a43e14ec1af569ab41c030592c4a1229d456cd1c63df33fa4309496da6bec2b5b6fa40dd3ca8d5f7dc2e90386ba1a842f5f9fea3d90908c5e8d5b8abb31c9305576f73dedb3f3bd78875a10037f66560b48305bd7179038d96c32612737b7ec9009dcae9338495dcd8754888405581e035999660b81f36548cda90c2c89600c085c6aedd6d04783d43bdf1da4300c03482296ad4f52d7200005581e036bafc82c5b3bea8cfc6ef854e44484c1eed8ca58e6eaaa502c06d624a00c0147032738d6786c00035b787c7ee2419a790361649e4aa5eac22ab7f185fe61cbc14ac7144fa93b8a5603bc263ce3236021eef9861513b01fa6aa41c0e0230b837038566c9e020aa53e1605581e03ef00a2024c762b2a6ceed39ee9097aa915ef5490539d38708193cdd8100c10480163e6f02fc1000005581e030e97ecffc4b289de1a7f75b55b93e04f2f0dd114e02e472685d36341b0040104592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032032e2bc0c0ff22609eac8f10e1c8736f3e780dcb85055451e7ac674e2667ce4b5703b3b7d2d29a8f1aa463b0a7e9b3a015ab843bf548107cee95023e144dffb8815c005821033a0d7adc1d2f52756e2888523862185f301b7c9850b43b1a7ff609003edc8900410100582103e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0500254a4fe84d237927940db747c8975680058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b58208bdf3cc0a91e1087fbed8948b94f999bcf44ff14e2d74a2fc9f791a348e9f4b2005820028df79365a243ef878ab8b12b91c9c42b955b0b08a4a998ac7143960c3e070f4919aba3a4c4ac40c378005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a854033bfa23929a4a34c9fb082b382625820b2f5e7802185400582002397ae88bbc04e9ad6417341798f7eae27ec4d6cf01c6dcb500d8c0027d7b924a0251d78c71d96dcf91eb005820026966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c741010219840000582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5cd3000000000003ba0b3095dc8098f300000002d9bed5688d33593082850058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f545dcd6272c3cbb250823f0b7e6c618bce11b21f900218480219b45505581d02ca5c556152633a3a4f6da2f31243664a313178fe4287106758f5f0440701192c1d05581d022cf63439a0b5e02e536dcc4cbad2bf016464fdda3f24e576671d66a90c094702ed9e40de3f4005581d028dc44a9ced1c97bc31276a09b1ae0df1b344ed6abcf51f6c9de3d0170c0c4717e785d3eedc07021901a005581e03ff21774e10a97845e741d0bdd47a168b90f17cab5ee16c1b98e68de8200c02470150835691200005581e03e1acd61124bcb1fca6f92653a29a2185e77a2f3a6f7d78446735dba2700c014704c664ee586f9303dec4dba88a68c91f99f0f632aa4a900575e10db586304ebc40cfeb6d2090370c0219e7e2031d93570fad9b0c5d2bdff97c1f9a29d03cb91305d1f69e52398783f1fb061ea903c15c7b59008fe7342610d7dd8c252abb8cd35fb4f05dabfde2b3c1d1868b0ab40388bc608d880a1659047a36113f80bd152f576ad17ed965f483f5b8a9b47924f7036c4399ca00340aa8dd037e19b9a94f223eb390736661ac70a3daa2b235300139036a76c964c7a592d29d3104f1950c0b876f06172400ed237237778fccd0fb74980219ffff034adccff87630fdb9a81ee828a6f8310d822e0b8ceb4904bf5b5275d2bf22c6360378699a526087c689a1dc558df68930d6b9ac7f62b166d1cca2254e386675204703717ab34c4ae0e44ec110e4c446edfe434033acef3563a2e3e404d5696dd6896003ff7eb9b9e61169a441c1b1866b80a27383283ccd6fd9338ecb1449cbbb31c00d030da114ea15300baee631b6b9fa4d84de8e6f0f67ce2ca2e0b2848867bdabf7fc03efaeb2628a4dc233ce1f5e7f9760c356715d579a2d222ae433262a303b80f51b03e037c34258561fd3b487f8848bf1a4868eab241a33ac29014c2f9c99cce98cd50354b72874c27c525876536fe5fe101d52504897e6335b2079302e517e37ecd964031eeee879a5cb9527733d1a14baf45d8301ad523fef70a58c5508571564ab0fb803e4a779e2ec7e7ff11f9af69aa75a985e4bfa1496a8364a9eccf69a4a68aa9291034f2151379e0b55a499610a5a1c7297dc9a2fd90bcd2fa4d7401e71685794283c039750f0a382d0609ce2791b2b8f99dd26b2db96220226b19177d68d321a7e90be032f67842f91657b1a9a828b24291d12c142bb996703c02b321144b9a8e37718dc0219ffff03cdc9da5fa8e690b198e56834c3f2bc5b43379b9b4e373263b42518875f9708bc03bfd3e773ffcff3758c98bec82955fae1f4b28bad85154a44e5e7738b6746b873038ad7af1fa2c64bcc432c6dad9b11639d5dcbc784c276dcfb93bc7919d6b6cc6c036b2c7534cb9be86d128b689ae5c7cb804893bed798754e39e510962d147592d9032638853b66d26c725257a27bb61de1cd73d03a635b05bad45fb2362877e3cb7703b1bb8aeb9d3e29c23f93be5bfe7572dce515e0f07d5eb3b5883e981a839ba8d7033657417e97b22a72b625e19fae2262178ba575ae7d180c570c4e331811a026850344e024145f37680ad5266e6e0c80e77b227231603cdce8a7055d5f31b758df8c0357ec511c4a04d5a9380fbca1a79acab63f4113f940d0a9aaedf8ddbe7bcf130103ba17da6dcb9611566e6f83d9a89df1dcdf23af33972ee6336a6b2497bd56bbc103b730fdd39c0fd0f37a41debc4b03ed963b0030942589fd317e340169b720c7da035321af662646adcfc20dacc228b86d18ab2a17171fda38af7bd7088ab9f7978403471f90227d0e4c6ec1b6cfb1a7a1ab18cf334f25924b12b3f6c2f2bec159348003232d672026045eb285d60d2700ea95d0ec3dcf7b46ebba5e68ce5f057051fe0403fe4026fe02eb09ec4c6dc9b0148b526d64d3bcf36c17f9cf323e98865e8e29d9039d06a1c950fa2377e6aae7f64dd9fa2a0a4a56dac0df8df58ab4a369dc1df1ed03c34a8fcd6f63ed6a78e7219c2d1339c9d4e0155ae84f704eaafc5ec8c2b38b1203902f37ed81d9523f0a5628cb4e75131eb6823ebfef86bc5f46bb3f0885bddc2b036e09754c9975181e039cb14c3a9d3eb3458d6e92821594f6712e4463c0dab38c034580b31879b317a88b123d47738eb3e3b2e4874fe3cf292163be6db82ae6d73a03f8f5b400dc35eb4a0d483e67d7243a8cdeb382f1ec71d41b779b7508ff443b37037b5a0ab02300b9dcf962c0575baccf8c8cfe6d05f4d581c9b6e588c049fd906903e8af69ad23bd4eeb446e9cb3801740919cac1d2714f45a0ab597af39b441a9bf03728916cea76cff9cb333a21cd9ba3cbab7e6922af46a8dcb1914f748148dedc90318c1396d3ba2b812c686b50541371a9f629a2f8ce05296d4c0fbaa51b48df38503522a60aef833b4037b8becf911b482ef5a527aa296d6ddb1891ee5ff3847939b03b6c38c0d138fbc3e8826d1672f3211777e1fa301a90077551f0e98f0a1d88acf05581e03f0553ff24e9a78d2e29fb79b8931782363ec26841ee5346e98fad2c3c004060320768eab7c9f8ba1fe58c5e1202b34259909be6aeae0b1056c9b34ad24497cf205581e03297728549ba8fd37db00fe882d0fd3458e03e7230e68c375c312174350040205581e03d74464c03092ae8eab640957929a57fc1fbc06e00fe5b446e0ba2f8dc0040303ea5473412210406b82c502eec33ed7bb12240c90ec265fd08e57475172aa43f505581e031d91f4ff5ea71a498b880e423f8e563c1b9788005f439e3115d3ff36500401035ac7e6a6fc73eb635ec5ea50949db0f77bd80ee8b5f51dd453e737ed12219af605581e030977c92549a1137d230ce3198094156a896f7274e8837a266157ab4ed0040104590a2160806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100e6578063f851a440146101065761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61011b565b005b61006b61011b565b34801561008157600080fd5b5061006b610090366004610895565b610135565b61006b6100a33660046108b0565b61017f565b3480156100b457600080fd5b506100bd6101f3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f257600080fd5b5061006b610101366004610895565b610231565b34801561011257600080fd5b506100bd61025e565b6101236102d4565b61013361012e6103ab565b6103b5565b565b61013d6103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481604051806020016040528060008152506000610419565b50565b61017461011b565b6101876103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101eb576101e68383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610419915050565b505050565b6101e661011b565b60006101fd6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103ab565b905090565b61022e61011b565b90565b6102396103d9565b73ffffffffffffffffffffffffffffffffffffffff1633036101775761017481610444565b60006102686103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610226576102216103d9565b60606102b183836040518060600160405280602781526020016109c5602791396104a5565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6102dc6103d9565b73ffffffffffffffffffffffffffffffffffffffff163303610133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006102216105cd565b3660008037600080366000845af43d6000803e8080156103d4573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b610422836105f5565b60008251118061042f5750805b156101e65761043e838361028c565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61046d6103d9565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a161017481610642565b606073ffffffffffffffffffffffffffffffffffffffff84163b61054b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016103a2565b6000808573ffffffffffffffffffffffffffffffffffffffff16856040516105739190610957565b600060405180830381855af49150503d80600081146105ae576040519150601f19603f3d011682016040523d82523d6000602084013e6105b3565b606091505b50915091506105c382828661074e565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103fd565b6105fe816107a1565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b73ffffffffffffffffffffffffffffffffffffffff81166106e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103a2565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b6060831561075d5750816102b1565b82511561076d5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a29190610973565b73ffffffffffffffffffffffffffffffffffffffff81163b610845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103a2565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610708565b803573ffffffffffffffffffffffffffffffffffffffff8116811461089057600080fd5b919050565b6000602082840312156108a757600080fd5b6102b18261086c565b6000806000604084860312156108c557600080fd5b6108ce8461086c565b9250602084013567ffffffffffffffff808211156108eb57600080fd5b818601915086601f8301126108ff57600080fd5b81358181111561090e57600080fd5b87602082850101111561092057600080fd5b6020830194508093505050509250925092565b60005b8381101561094e578181015183820152602001610936565b50506000910152565b60008251610969818460208701610933565b9190910192915050565b6020815260008251806020840152610992816040850160208701610933565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205f078eeb5690e33d91e7b90c18c8f4a8b449ac85285d1fee003c4e18e239c87764736f6c63430008100033039f6b2e308dc0c0e0844f6ff66d8654184667a60f218999ea69c16ac58c7810a2034d1daffc0f515ef64d11ca6477195e615a2700d776705a62a4d5f676089678cb03ffae5c91d52d8b58de328d9e51b26ac0fdc233651a45a4e172f701b4f5fbaa89030d92b501038d454c860a518825a5716a5b1702448577a6e1f919d2076a31c36703b3448afe4d749dfe6596abb9e6bf18e7674666086d011aa3a30d5222174391040311dae59ec3845e20c6125c850dcde2588c5cdf5c860bfa366c7edf43b9cf3cdf036241a4aa494f4dee809566a1cbced93669c9d0ee8381073fa0d4195b4652fbd803fb2586cb5fd8ebfe7fdddb258693086c8d11cf65e4815eadc1b560b75266928203709ec40257c08fb54ae2682df81b0b9f0bef243552f6b83c814e06aafc5af21b0305aeed4918d438c8daa2d29b3d29cfa1733a81f1e9e04b6d1733cecd77b18a480329ff7cae3fbc22b2103ff6878f5c3433805056d4c075085525d37fabbb0099a2035a846115a3d43695bedcacbbddb6e1f7f441c80f1f6b070fa9c6caa4acac221200581f027c1577685ce864e7f5da722e8af424f316c05cf23c32abfe57ad3085df7b481e07fea1030b02ef00581f027f175f68a71a66d6325fd2e0cae6e3a293eac1c6e0758dd17bf79b21075c49029a1a91f19ff4a95900581f0222e798654ac2cad0e3385b3fdc8e7447de088becc6e63b4691d3eaeb41c54931c62eb91bc95cac0000581f02d7a27556a08344721421175c817f3faaf03fc7ed069d0b717255957b1d52490761627e4e1ff3984300581f03230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe055bbce8aa77782f13d4202a230d978f361b011db270000581f03e8d527df98e8a5cea6844d083fe8caa26fb3f49811d5e6e029440a4888405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219028003191109f885b9760f0cbb63f8f4db390022f557d49ecb190c1c6cbd6ef0254b850353b5d520816d549e80ad38b514cd00b4e325e031825b7720eb8ac6b06584a160039f0c328fcd01c991a6117a0a5de9d77a20950e82ce02b8dffe100f7b8792fde90219b29a03a8ad48e7c7c393959e6cdef2f2a7d67b0d398420a65642aa46bf4475a27bf4ae036f407f21a5bad9b354b3bbf45ead440ce1297ffc9c71256b8bc5bbd8c097ce9603b06849c11d49248447b1f17a8c1ffe467338cbc09a661df29a962eb069af493203c637a37dbe46ed6da843163c4e587af21246f978e57cb1bf32c3329d18355956035fc50c12ea0718e84525766c492c4edd89739d0c497e49d7c22a23fadb784c940386a7c8874d632c6a11a20a13d4a100c863b76e85d276e9d03836b5060a381d5503849eba30d57b6d8629eed3cd08c4d4387b6d17edb71e16b73b48fe14cd463e910381e8166556838897e3320dfa48e5a381b63021e96ce37cdbb66d5673cfd3b3830342e4d2be00b9a726d7ddf25faef56becf2da8e007eff475be37075ee62885b7903cbf5588caaec0d243419e642211503b981fdb1e503a8e979599afd97505f90f103c851a8e35fa3c432e9824105f24f66b4494efa5afced193d91e52f5d141d3cf103b878c6d78e329a8cb306d8f5274195bbc77bbafba184e245605ddc9fa8f04522035d536e26816574838ad46bdcfa22f2cb5e363134075f2fc4b57785c324ddc93c0336bec46b29bccbd88fca40ca6ddfe9dcfe56fdfe0ed755562a48b12caa156b6d0219ffff03322fe10067007ca70cad2e99e1b7bb7879b1263895605513fc0d4fd315779f4c03e8a044b373228c647dd168504d046eb504c32e5aea93e8b57ad59f8c6e7863f80316e4be8b5b132d71d57c72d33a2fa094a9c31f55f579d7e90b9ad956dee5e3db03cde919705b193b29b1e6d9190e6c2d80b3ee148de7425c2851bb902c7abbc67a0343ec25401e1cac140656b4a493f04e8370e864932693639cf65650063ddb36b7038222808af815649f0d5371f3e9b16d46e179d12b30b7dc5dc9e0c88fbda50d5e035adc96fd89a709d14ec944ded9a8e7c01e3e40d5527324af24e9bce9c96f6b4a03569f41f43a70dde02836d99f120ce6d9f4e1fbe3f77d420443bdb31a1a9ab09e0219ffff0341d5e33291218b87cf07434de605dec737f9adbe22242f097668aba7ec98cc1003a5bc9fb1255c9afc9995ce5b6e019728372e3fd06a90b396a31ed8570d3b49d60360331e5cc695fa8873edf1fc73a9ccd5df1a14651918b9b036834fec47ed6d3d03804c549c35b053ecc95d18de1a7f8332744aa999edb4264e272b9215952c81a2030b61655ba5f2e27f949a8085d09d96d97417f0babb775dca2da9e9cf73a897fc034e3dacf064cb3341dc7484438e6db1a2fe78723e2a299921717926f4fe0fdb8203861524b07b12cf6a0b91508781c63028edb27519f4d7dae63ee8b165e0ccd9c5035816e7d4798efed69d219148cd4d219a0908c21e42de751c37e48199fbb525f403c4cdf48194d6c1413ba9d881c128863499c73ce1c53b8e60b4049100200830a303c898a1550364e0f4960ad6dfb124b534d3aa272f8366e25bbe5ea196b8e51a8c032550131e8207fdde127f900cea5ffd4eff455fdd7a0e322577648c418510a873031c6b5026f40a67c56cd153b7704fd7226fe57fff6004e4f48089fda623944427038e3e68b3db9eecec083aee45a032e35c61c2b7b90cd471b2361404b0a46fe98a03936d872e9d0148465eef6a1f799f68eacb9a2bc4dab663cbd1ea87b463308f7403fcaa36c806f55ec462dbfb401ff798f29937e98d16cd59f3a7e07a0baf30670f00581f02cd7d594cf52b35340891c17ec2f6ed370c9b23ef89f108bd23c8b65f99a45820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02879058b9b4bc59a8b9eecbec2c384bcf2206c1bb22f910ad102a6952cec0484563918244f4000000581f02e56a78216728058fec7644f88008296c483d5ee6938aae395f17bc4d3f5f480f7a1805961cec0000581f02a87b283df81031157ce31d51ced56c5c9c61f13c5dfb77a38bb56802f786410100581f02d95edc206eccc704d44329391611ef7dbb6a3740ee8b893d53be2d41b9cb49027cdf606554d2c683031bd0b70c31eded306a04e8e238378c84aa47298f334b73895fbbe81ee859cb2300581f02c1b561f41e5e93d9575ea6cd54b87e8aa2457c51e94199edecc17f00f11e499119c51c010800d80000581f020bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d481545613af0474eb9c528a34701a5b1662e3c8fa06780219d2990357143b0b1b3530d8744dee63a11db7bc98d497534b70e0e66f9548a981271d2a033d0c8450f615211e25cc688d19cace12b9487c2ed92fc680ff8258a9ca55907b0219ffff032b356334c77ac8a18d8d40b591df14640896f767e68b775b537b2bc4d6e5b5200387c8edd8e1542ab02f65f4bd41babfffc01f3954743a0fe5edcc06e9c5ea0f88031664e7d13b0b99e64932eeab712bfc5a04b4035bfe2392b49a155974a8d7eda503d67d9ce15bebce3ac1eca11083d377c539071bd41578cc8d4b19b6af019e334e032f1a86b536f7cbcf028d2bec6cdf16f65b24ff0a3feaa64042b3cc43dcf7fc300317c09ca4df3387bff52355feebe920acd89b8f864732762c3c393b0f281932c7030885c6f1459ba8ad0e48d23d714f33c15101feab7464f1a8e581ea303f71ce0f0353f16d57031b96da0479518bb6edceea64bbff8c24827cdd69323818328d6dd9032f9829c603753bb0b61ed1011cf16478a53e58d641ecd52072dc9ce33fd97b6c03227a66896eafec06d7b65ef29eafee111063d012ec5ec35bfb4868c1cc12dbe603176b4c5dc74d4b400ae33f659b1ba39e81e07ad9ad823d2726d61d44d4b186fe037f3de896badb263a7dfeac24ad5f2e856e722db4b7545accd35e8f96ba83b00903dd71115bb6179df0b1e3cc48a480d8c17b9bc3660fc7a7c0c0d69b9815b61b030219ffff03b543b8e835450d2bcf57b3f7ed97dea7633a6ba95b467670c23320fc03ce74ff031ecc0ba1e9730b83ed9232dbc4a450ef8bbacfc9fdd17470ea7b19fa1587ccca0362daf38af1c38ae152bdcc2f22fbc130f4f1b2ad0f10e022208838e57145e37f032f2c0d1645a66d9f74f2bdf7a51f1171d65ffe5a73d161b1cbde0c975901b054032c09ca1254c5818aed1aea799f6c0e166b7f1163455b19a2c90dba395ea564240376c2529e24d199a258edc5e269416e1bd9c48a0ce1e79f06a35086808501915f034c7ae3a52c39ed149017b1a9674b3af14d80e602d6fc6b767f1791ca9c99327f03aa428cf14da547db01af680154e0106d7496e1443a9c6226f80e0151c1a6c147033ca6d52fa9379bbfd5d6c1f908c998a46fbad4562ef58ca342912c1226efd6d2033e78e545e940a59ef68d9981018c351d9c20b1fa497d64ead5b7ebadc2f1b1cc03587e2a5eec89c0a53835f24df2dd988f12f2c5fdb99bea921beb96e2b69a2f55036b6ed2c102dd5922311ec32dba4cfabe14da103ba378c3851a8f7ad58c4d64ab0359817251cb87cd14423a7201329bca68579266a9aa9ab07a59e24089fc86093a03972670dba29164b21164efe6cce97d3ab142acce7ba68361e333cb0c7d3ee9f00333293db26186ca364e9a029f045a661dbf161054db8c8408d9831f39fef9e3a503d13ec362ffa22afa07a06b569630b38349e437260d34c7c1129913114326719b038d88bbd37326762b4cf4d903af9c583668de4a773c2c0ac33d66772d6eb21cef03011aefdea90098c4a2918cae9648203ca73e695f323afbb4d2577edf029b4f9400581f020eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d54ad0c361ef902a7d9851ca7dcc85535da2d3c6fc703f86bf54ddfb73a6323ff131a7985a70f09e1b70a632f9c1b0f0d694d53cbed0300581f02f7ee67847b929075f9c5109c01c25c23b786c258fd1e4fbeffa4e3ecc27d49030431290b61b7c00000581f028b23a2b6f24cb55643a1311d331a779a71d645eb7a3158c63f5c95bbd3304853444835ec58000000581f02a7d4b79b18796d835893003f18672345bda004e94a7e5ab7130fc37ca9715820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0393b8fe86a665c3f4629a1c628c7feaeff5c96cab6576dca4444671b091e0aa7700581f02834d4204bcdcda54670d4f3b2d7043581c6e6fbe3d9d459252107d62c7f448c65408acdc0ba43003dd5add0832e225c0efd2200b8172a0ebb026a1e945333ddbd8360b6d1c27b28c0219a73603218432c1f775093a72ca0097dd12a374c481fa4b166dbda72e9345f47b1b1dd30314ea99b94a9d5c4cb49b0bbdbcb40a3accff8854a271d2f1ac818d4dce83cbd4034176ed665a7e2d0645701c22244406a86cb32f57c84fe73f99249e9b09a29a120312d72e29aa2190a7639734d39978c8b4df99176142d781cd753093959d9a76690219ffff036a9c4d3624ad9bd6ad703744fd016451396e454a875b36e24f82ca41de3f887803632e1d5b9ee792e03b5dd0802cf2885e3db0a6620f33f43d9ab067f92e49280e03b6ef38d8545c470bc6d5b0daf3cf9c8666e6328bd86fb79ef27daffe5e4de80d03ac9e68332561dd5dd66132255bac05fd7c52bdd20ad9f62b3944df8c3d3e68ec03bc80a5d374b7b6e4c2ae1b432d64eae3d9affc5a08268547be71ccc33fa825dd03cbeb043cd1bd0fd6b30f0bf0c94e28f05bd81c5c1c8599b95e6e28d5a309b1fd03abb57573194a405f4706d87f95a58efdef6e25d34e8222857920ca78e6d9460003ae00bbc65f047e9dc3494462aabda0de6f29bec6b1f579e1a64a324a917d999203f811fbfff1ca9c31e34e839f6261629f522e00b86a34948f041cefa21afbedf1035db3f8fa9ece7a0d0fe5b1b2067df24707e6ba8495b2b78635ff19ba9b6340a70219ffff030da70d6996be631baef8bdb262c946c3db6151d9685a7f0f3c072a101ff4a2e1035b237f05d5381814fc123db7cd06b906c888931d61575ae286ed8038f0ffb4370367a5223271b0952d056dbc5fd71180f13fadaab19b9a3c601ac2b7a0b5dee99b0391aea58df18f02ad4263231d55a181ef9f93883d5623548985a5f92551f129040312ac3c69a8016dbc5581b1ba5854d29d848999ab2a3e94a9372eb0c207593877031b2512cbd5134ee12c701551fd8903e42cae7d8c1c7bb8b1d201adb5f6f39903035eaf3f29647b53f84d3ffe41d7f5d5bf4477aad1764d65b12116cdfe2d19281403757558fa3e4b28d42f8015924fdc695ff63e2eff43b296a61637dce837eef124036ff22142a722433f34afa5efacded5063b213a5556e1070f98ac348cab61ceee0307bc719946a12f6c3c1cf9e94d0eb031982bfbf1435f7040568d19d40a18048203227b0ed53db74819bbbecaeb17d1ba9dd4b3caba13c1791353c80aee3993ba39038925f0b576daf7ba31a08a9972676acc82e8bbcbe4605832fd64b6754ba5ca0e0376ccd625c9364392e2f7c634e77c52d2b13fe1b9390fc36ed90e7c080e1bc24b03af95de1385479dbc39fdf5f44045f50339d013de6c2b7386ec32e44ee2bec03b03f608729a5855aafb2ed5ccbf7f88397fcfd6b5f4a3f4027abbc28d92645828e7038f72c11852cf3d08fb3721212d991768ba611d37c16974d2288249aca204f39e03131549c71e0419d748f9320f2aa122f8a736fe625df7bffb901c983fd4dde976039d12506f1293d0a366e4466a08b05927b1e20f01bb7936fd50401679e02962fb033ad370ffa6e0513827c83e72917a892e0258fb5064034dc4a2b8e7f4e970e29c03929b9494cc6d0d7fc121581f70c81f9574fb51a7a439b5157b4ccb823703286b03b23cb8cdedb6f18c98f3e62ba259f3bc6bae340afac1f08e529838a9ee9f26d503b23542cd0cfc37f55b8ad119a8cf8e9f5ef64a436bc30a955559a49eb695a5c9031feb38e80386d648623d6c0450b20afd9b2fb7a47cc1347f21f5464ab6b425d103f21a9ea12881c7ad3b09ddee6c020ce1ca570244fcaa0939d130c1fe9106b5fa0345b0032d27c07a3618d6f7aae9db322a2cd09258384682c464f9c67a9435e92f039d5d43b9176038fb92f4dbca2ab3ff70b4ce344fe3f14a5d592fbd2b77246a6803d9a6bbdf615c78db399e1c2e5cb0224da43a49b06b887f05f4de5811f41d793503a5afed0223e3ac1381f36c09d1bd9529a213f9c977f2e2076df5fd9240afec93034e6b009c8e53c2c01bacaaa0c8c63866a522b9f98888f386d2e7d825b8f576f200581f02e22f0458d56be129af089a7ff959f3c4128e93b01a086c7e58e6b9b58ba45820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f03e8363b61a32d6d996d3db4dcb6514f8d329fab886e3f7f22544178041ab0480de0b6b3a764000000581f03ec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d04b1f057b26c1c5acb51548c10219080100581f022f18d513474daaea9477c9229e6892b56f134cbac17a57ed529aba423b155820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03f2cf5e4a43f7e55c72f2c63c4040c1cf53090597a3dac1388c1b996c1802469300581f023430810393fde03e657aab77248fde02b471f3cbe0ca813f23feebf07bfe482dcbf4840eca000000581f02156c7487d5fc89365d301a8bbb2c5e721c4848fbf481a402b9e2c430e9674813403be1494595570346ea4f658cb69ccef16b93a2d17e9c4cfc8a87042ced6c34238481c129b0f4eb00581f0212467dda121a8a8289c16bebf93f4d6f8e475f4eebf9424e5abd848c30db47f3a120fa43f37100581f025793ea1e649ea03caa9f9d5d6cdc54018882a8e966a97ac663b1e92a6556483326f285719cc00002195b7103a27ea2e615bf67b22258d1a24d60d2f99c2139bd46103ca8fccdafd8563c002103c95672f0fc0e59d7748ce1bed65206750a5bdbb81a5c6cf55bfc0c45ad8d9a7b03990ba982e7ba47677acd8c72d961dcc195b5f9ecab9c8f10d21dc0ff67ae008e03f8fe2d9162f818ecc1e5261e06cb96a2495046822eba6c3b1817351a99a4046e0387fc429187a412cdb67fd4490f1b72e497338c10f9c0e869692bf8619d9190e50219ffff0219ffff03f36c9e4139395886ce6fc45707a42573736eddf3022530c9d2aae919e3240d7d0309b7c34a671203518b8fee35912a121e64c19ca3649c2115f9fafc06eee0d76b03248259e9f09d4f46938906cccf3d2458c199a25ed9bc9d81805356b3c38371300310cb1dffb49733ff71d3df67e1b8ee75f9f380a55424349a66635a56e5119a210311c8f2eb900dcb40f964a45f2bc361ab8866da4ee08194ddeef7efa4e1b78dbe03a841b3c4507bfa62056d54cf3588e109eb9e01a4eb38c9009435e6613595df1f03d286628e733633c10060b8d4052352f3170f607523749451da936c6236e42153039b775ae80378d88b1f3124edbcdb0ef7e7f557564755c01972f86f1394e708f900581f0279e283fadbc2dcf78e73d1eb8d713058f09a07987f26816c3b48f98910164872f6a1ce631a87a2034133d52025704542481b50594ea4776cc7051aeb49c46eba762be397e7d78f6f00581f02f28a7da5147b34456bb63cb4d95ecc73e089ba601e4d2fb7728342b7e8075820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03ca7d03609939551a98ec3e95e0cc570b80374e40314e76c2a9f6e81471a46b7d00581f033fdf01c1e17e1afd5669e6738bc935b98ffe817987afd8c611a0251e35104a07d2714602b5b621136500581f03221d2fa403af988a5243b7f13dc9759f03e8034748c1df517a5bb6aa2d904867aac56c182b000002182803662a789fbc3c14a7f5379f1a1a7895964a7192b51fffe8d526fa3bb647f9f51b00581f02945221c90a00445b04d766fd2fc3337031b15961b56a7e1eb5af5c8cbbc54905862ae18bb45016be00581f02411ed834680e8b76a6d2b9e88f4c5c48bf8f49556fbda52cc16a3c49c18a485f5fd1a1f9b514000219b05e03b82259fdc94a6519da767f0ca986ae89a0489cada69d139c118a33dde2addaf603c56c4f6b291845900f75dc636656b384d7a14d8bf25e28f303b9f1e5e04427fc034164caa2c90e11c17a9337cf6c3c0762f111db9fbd9e66a6c30c8b574d28fcc003d4adcc21144aff2ca1088f03549cc27443ace765ffadd8c536b349730259d7f003dc15e9c3921ff6685553e092ce719470dc68edf28e2f69abe9bf32527b6f4709037f495f3ff56ad8554cd951d2f90da2871b317927b3a0a60557ac72e9fb3100a20357cc01d4ce780506bb8d18ea37ed16c8bd113560d86c0573f2cf099eb637c20803e1bccfa3031e9bc29feefff78e034228855a57d116217f723d84b2c37a0a1697032d6aded5c09ca4f72a17f0a887e90cd72b586e03f7155b10dd577d24ea057dca0219ffff03eaa25bb1f121c05dbc45d549775ca551ebe7e116cd938c716dda78e3b31aed00034767cfd50b2615ce98af9d0e26b824dccc535ff44cc33fba548d1f3a742216a7030e70e896e4ab784567f2ab0944437d343412d684173c9a3761c41304ef952d5103d272c72fe59383ed999f7665a7847ca06bcee4168b64a0ec7223ef4a9cab072d03a609c366a7209a8d0a121171e823b5fa9ad751fd31ddb3a6dd7ca54803c3d898037010493a5eaabff4cccfe27e11e5a0a0f5a64885db555d73b30e9946bf77cf5f03cac9b4269f403d99067f37944a88cea654e52ca327901afee00fa9a265117bdd03ae67c005587556d69a637084acf89882eac686fd34ee56947d4b019c5eb1d7780307c3a2929499724f8a9e4be0823c8307efd8810b7ad54c4f3c186816f6079ce903a6a03b0ec8b3a09edea6c4929243c1eb7e13904d362f2d8ce47c149119c9496b03049dca444b93c6cf9ab5360a47bcbc6c12e6a17e44e23698efab27788b23e59d03fc41089b9063ad2d78e50e7e47aba04f470223423af62e5576ffd4eccf7f238703a37d2acec660c13aa097b779376224534fa028590e011795a84f00c484ca36690389e5a46b0a88f4d11de932a1474b35854ec1357279e4beee0d9181a0dd00f1b70219ffff03c117e76f9fff34d845620350e4d9558279b4df24644dff3342b639fb6b3044840219ffff05581e03b23cda97009c906b384f32a5ff6fce6b839b5df0c37901c332973d13800f014203e8190a2105581e031a1589ecd77160476021088fe10d275da885a8f33f6a5b8c02ad83a7400c0146331432b6d77003cac7032381959530f3162699fd0cdcf63c86b5a8b0e4e39c4d15da5ef9640abc0219e6ee032a3d8ef12d9cda453ec0af2a197241c881b87d70d9fbc4eede473ed5b59848060351bb968b9c5b4a31dea3affdc8d0afe1d486b892ec230192cc2f944250dae1bb03ca359f19f5442a881817be66911a2b5d229c24510c1032c14eb3eef113245af303a7122d6794cd0ea2fabce5ed57c2ea9b02f7330f4ee0937431044e5b22b0d0cb034c376b78122f7f08df10affc201024f21af6852cebc2f63b5175c4589ae232110337cff7667909522a29d21e7ff452aa4be05018a9528974e6e1afd78a21848bb5032d2d2e01af75e2668b08cd98d1d46b0c11bf7c55b1dc9859ed65957ff4fb44610219ffff036c8cb4ca38f03874db1bec5653690c36e3f954b497115012f11c80ed4a45be2d0219ffff03140854586587741f6e7008de80283a699de83e83ff0b533d56a6f0db801f7d7703249deb0181d67a09e9594f60cd5fde6097719b58e6bba438c59d9a970e2f06a8038554c780658918716f420d43edb230a54c95df24feb96b5092e1d1d6ed9dcb57032ed3db788239440c6e8fc3ac2b53ad83d12c68de8927061deb4a1fcb265518f203f91fb0981ce16eea55f70c0eac115da1a88b4bada4475568077e27214eaa9492033477d7d6c51e7d473427678a3cfd6a3801a1fb0d8cd4e588419120c0f90395ca03304b95d42ff7986a9779f0fbc0cb262e48fd4a6a2ecdf794482ae698f70d7e5b0219ffff03e9a5c1496da15967ee7945dba99e732a6ad5cb0472ca617962c9c4b2e3eb62e0037443a09ed1e77deaa5234b0666be9ca92a67b73f2a14cda63ca02a6c481689f703cfd03ab46adaeebb40c9335634ab2b4deb6adc08a079012eeae8ad7476d80a51037bd9f0a21ed2f147627143af878f90b3ff4b0e5eb6a360816c51f1533121860903f6f811229213199ba3b7ba343b37ade46b8ae0aedd7111943bb06b48cea5268f030c54c4c4e2b9347181667e5025142950210bcfd5d8198338e1b6478a0560e9cf034299ae0e8a68802cc675536f5d5af08f99a59d3bb2944df520caed3d278b81e703eb914ff59452ca41a2383340d5056e97171596ba3339f8ac3a6fad6ac370c0f203fbbc561c1365f7cdfc90f38644c2bceda839351e47a03d90d7d73f9d15e9896a0347d8212e1237ef027dbd53160e28a8cf3f8137953caf28bb7d8e6e9ba0fca89203258a5e50d4716a4a405450627480c72dddfc8b777280151f84a15528f4956dd203d92aae702eb75d75a4de524041cc0286065d81ac2b37d82910b2794ca0405ec0033b5118ac3ea0d527e92562f609638fd60d7e2f271c302a8afb3fbe1139b997dd037a0faf7c89a1239b71f39eb5e3f383ba0e579e4c8dec4bd9773714d6f7974a4c034d3da7faf096726bc26d215f545f55a20304fc917c4817befa065da185a88ec3038469d4a1974dc29e0e2242d3f228d56ab7bfdcd7b4a1671ecc7c35eb1751e05d032ee968574f1403980ba0eb9acdf761b3fb6412aae03d9812c94f8e6366e4238c03009361ea52c15be4c3ec256771581f08840944bd1120b55a72c68097591664a7038710caaf63c7efcc7a1c68edc3fae4c3227613e1928d4dd0a110513297e8204103b3ec2802f746fddfb4afcc895dc625e5075ffdf2c09fa8f161c638c52771b6a0034e67de363a69cf64c3adeae4cd83af7e27797e1c6d3803ef41be3b8fde4d8aff03209708aa2e7519c62063557842b9572db91e9134358a905d6d83043b60d8b2a803a986c424af6b68d517ffdfafa3acecb1e33f11d513e929a375823ffe0f2f400f03a630352a10febdb1d88b7838adb037b42feb7f534d2aa37eefadf07f7c59339103e1ba2e3322624961b52eefdd530d19c6123d428733aa7c311b29c52b69443d8103905982d3bc98b3ad75d5ca7a92446cc8923fae39a2352245000f9d3e9dc0f3ee03bbd13d463ce2111713bb0d6ad117b0ba991bc32336d501e872703c4ad6bc3c9005581e03c6ca33d1da37273bde82c768553ef71e1ea7eae24e1166fe1ff0bccb9007011bffffffffffffffff05581e03cc8b5efff59172c7415e46698cec64e508f0090e7e65d9787616f182b00c024236b005581d0282a6cebb45bb0c0208b42cda8a6240bf43baf9c740d98d9c46ca8aa00c05471c45cc0a84840005581d0200eea6ee1ba1de20796fb06da227f3e6ae60ffd1de5a6d87a78838f80c014702d157b31071860219401005581e03da8a27a4735c32dfc5085af3326fd3595065fad429173dbde8464f31500c024674e89ea30ee805581e03520c283df622aded98e0bfcb97a99ff7c5cc4fc679367ef55b0227ecb00c01462ac5cad6d2000219d5830382e401b0fa3196babe574285083f90ffbce55312c48f65096d3f957f287403c803fa93002afb17440b79e7a6686625f13f603f11d42ccd5a052ace8c1f1a11484c0350f9eac8dca749464f817878d476203cb93f10d80fe3f6005a705f95dd8f162403970312ee294c01d30f0d0aa7231cc01e01e25539992202ab92cf0e071fa3b71e0219ffff035ede94595e82cf2bb46053ad4cc4cbab960a8923aa931893baf87187ceeef66303bc6672d28e320753500c99bead4c6c080cbb22d3bbc0c64e670d6440bd9edcbf030cfff7c5ffe055546d911212fff9cae54ced0c66cec1981f7b8440b203d56cc1039a0e85492920c1a93cd6cc88da5cddc9fa216f98a8af29f0895e555a639cc22403a5943a3212126ede8fd4080d1a90547325710684bae3fb529c327ba138248815032c268fd1d7851a0e355321193a0e2f668fc8f98aabfabbc570d4ba73f7f078de031aeeaef31efb4d5d8a224fe731c49a3da09d93398e8e8be1e62317dd0881f8630372a98175857aee632e11440405e2f116598b1b3690d392ed810eee6b71373fb1035fbcc11a73f536cda930ac9b1bdad237e5a7e6c93f427f0bbaf44135c16e1fa903c78206c8b99a4dba0ac8f5fb5e888f3fadec7abf59247e3f08b8eaad44dd758303b1a02aecc152998fcc0dfa6f7ef3c561794b6bc906070ba0fe31f49394378d2e0219ffff03c9ee8a4ec63bc3c0f5fd85752093a6e2c4152c8787c93e31301749cf4bd1969b030ce6621da423c6a7e2baa31e0d2f657c941f04e60cc52d55ceb0a1a9d57749d203b3d4853b7a19e7bbf8eeab6cd95028e0aae69f55f4489fa334696098de4a574a03861a9bbdb1b2acf5c9016cbe42955cf460574992171575fa5c97628d5ea6a43e03075b24955e04e513bc6cf626c8ea19efd91fc9f7492c01a48a46054365fa6c0103fcf5f6b967370f154ba1ce96d90334038af78d23e9deea9c70d5a4807527625e03d7c880989d7b8ec80854dbef750dc51de3899731cc97fd67c9abd99d7eb09db70386c423b68b773144e581c07ee58a0b98abe9c6aa109e4d11cdd056e82ff1ee6303b03948fcbe2e60d713c2d7d4bb8244d665719e9db2bd6ba52a68e963e56ba7c90219ffff03d09e4c012aef89f4936937578a1906317940f602830b5287cab1ab29e27fd31e038fb9ee07f0a1504e86502dda2c7d3fe336f3bd9f9f03fcbf42f534ae56a3769a03710d5f93154811dfbd2fa66c50027becb38eae13b0d976183d403c4187e6958a034836b2cb5f0e45ccefee5dcdc7cee107fb4ed08b6aa247b2cc8cd24db82fc78703b1b477d6557bea625860e8113727dff08565d9221168fccb050f591ee0a4f86c030749f7dd03b35a5bc461e5ad5cd7382a7ba558719088b149f2f4929cbfb6de060365ee586d9a8f1ab062b36c41b0b6462b64f938f739ec7c991f986be6a6309c8a03df54496fa644c147067d8172f8213ddff5a7c18681cc8db745145909852ff21d0329b13f19e9afa1e2e8335e59cffdaeeabd24c2e8d78183e60f71022d22ee49c203b2cbd95682a0d99a77ec2c530a8cbc79556c56a951b794a4921ccdecedbedd2103bc9e452451d2717c4ed885be304af32f7338be8da2d9092b71a28540241f82cb03b8ac842ddcc6da8aa62caa4e9cf13f6e0e221b090df69a9fccdc772e632f91d3034c787ab5043efbf5d9f651d07a8109985ee4df86bafc9c9d2fa42d273ab2573b03faae0b6023a5f5a0baabc86d437631b3bb48367993de1f5fa594cec79c1f87b5039430d6c2695867dfdc15e1a521cc51039000c94e4746db4cc3f4ed62b7151f6d03d341808001d6ccf040c3261b0e4caca0086e403dbbd0c68ab516cd20ec2ffa2f039926c9b70fd52a319f7e9fba6d28e01455a62882a50274f7fbdc776df50e6fd30389755d23f94b3d2d1f6d67821eee8f9a9f680160536df3899420f919cba5882503bef31fd5fbd8fe2c6cc8259e9526854c0514a10df0ac39fc33220dcf034218f5039ff71e6377379fdf5a3ef94dbeaac07f0d283d644491e221fc0955e9233d986503fa1c66318028e97c7ca98790d30fb264bca3d02861d2a4f52538e35632dc8a07031797df57712ed0527d9f50e59746fe50194bce6e262b0467336c6544ce8a227303d43ec8e93886d7c4fa515f2ba2ae266b49c4e3059ca3a8c294da6fbc69dd02fa037d1a2c1f04f73b38f66b9664e46ecd2b15fd034a6959671fb3d18c79b759a47e0366276be042a162ec95780b581d6925cf6a4db50f9ed0cdd2193bb2e39c9af84b03eebc9edb71d37600ca9302f5892a84eb117b8be5603a791af3f0ce8e4dba23a1033f5471c3239047a58cb9fa6e5590711e9cd90fd73a49312020aac4cd76985f4d03ec1179624ed2dc012b7b78211d3a27f6222ddaf774fa7fb6f7013069bc327ef70336d96720bae1fa52b1881b43343df1ddaf4e0823e2010f59408c4ae69121298603d94e6ca39bcc93d7519c69f2351ce2d5763d40c838030518ba989a277e6df66903e8069fd8f001447e192caee844b6fa7f6ebcefb42c8de51ded5e401e49dd7fc703f774966aaac406a628b226d170dc073f2ac3351051a179a9e4655f4e4b5e67060351bcf80e9e5d285b15bc4cb927cab9c37666c22068ac19d0ea8ff13378e3ad7f0342fd0bd7c9602c250c07a2e211099a2ec0a98f8b7f9f4a8417ae51da5da9ec0d0316837b9814f2b3838c0bb80501f15a664b1ab72e40bd4c3dfd450be87b7b734903c59431bdd702ac22faf3a77b640073a7b477c09625b21e61455fb9e9d2c9427a039a708289af687e58f909bf75a5c9a01bc1ce366bbae1ca401a0f6ee8c510c2cb05581e03ec406dcc562d6cd20e7a52f20a175a6bad74c9be7f8ea876e38710e5300c044704f59996510f880326ea0c60ebbf6ba2f8d2c4e352d9518ac69d7c9ef4a18dab35770aebe0c9a56c05581e0335ec1ecaba21834690c8648489bf062fa8189eb2667254fc6987e2a710040a03207e37bb730246e6dfd95f5d7ad3a9ce6b6ba51bda26151da70c28355c1f544d05581e031a521db64361127cecbc92c90c11e509785f60a7e2143271257014c7700c1899477fdd54fe37765d05581e03d17863ae702d8785c936cd60bff19a1c1ad60c890000e48fb4ce9c58400402036483408cbd4159d972a768031b5e67f7064cf465f69d61b0a4a4368dfbd778d603056c45fe1dcf87e83a9eb01010f9f99156d1946b00aa03135457866eca27732305581e03c6e3568eb8192839e0ea0f5a211a9a008f437bd734d9c1a355b0de59000c04470d9f8fc94eb22405581e0319d2b94293c40dd2d96c8886424d856c4ac208fe7fe039c3ad4de14f8004020219bcfa0219ffff03882a4a48ecb154c3cfef94eea82c1e60181cabd41ef1e41cd6ff5b7bdb7338410349dd275b8c2c4f76600a8253e6d1d5dcd4c914557abfdf4224ac5a3564a020fa0373e9b8531adfd85602846ea3107de11a5afb9b7b0889ffd60b177465d89b21920339a0c909cb09ffadc54f60205cd75d29491119ed0c6503b84b1cb66eb721028203e51201193be7dd2e3f68d48f4a2b8b7619d34d3313df0553380a40f23f6facff030abdd5e11a72ab453d61a0bd382e6c207d3f0076cda500a72eacb7604481216e03c8fdc2fa53efa124d129c7b9b577317e65558ef5ce77db199c45f7bacac671ec035daeb844b3b54aed2ff432a7a0e53f3527154b1381f659dbf000ac521e314b9b034be151df9daa19f7aa3fe9c2d7f6eb7d480862aaa236a7b4b894b37d3f1e965c033e9038701dd109c428acb5af14aa7e2d2b3928e2a2e9b1cf4dc9293ae167472f0219ffff0219ffff03ee21310ab9a7507f21b5b15a44c1cd56ed5bbfb863816a0ebb99092a534ac3040331a978032ac836bc940fa5bf5b022e123ca5782806c8ac5408088d9fac3980610327670905e1fd20b8de4ba875c3b50632b6477c39e7a4038f46840d76155ccb030371f79e98ff0ec1a160f219d6d47f6b920e898c29ad31dd845d9b2fa08056c08e030bddc2436024a43a254858abbb20fb66c1bc9d617f0c5f7cd8001b3b772f490203eed94b2b1afe440717a86b6dfd4cf9352c8ed24399d470034dd33570144f9e50037bd45f52717702d095860bf6fbe7aaa5782e747f274c7790632ac26438a6284303d8708c591cd7dc42a3a870d89f109c75a2c28c3d04c73de191bb38c656906cc10219ffff0326a885c68f7a28d1c92e7f5c67e3f53bbdfd5cf8b82e1d1c4ebb1902c337b1eb03043e529bbc7fecc50ed42568ecf17bc8d53940dac403fac65128a9b529b7088103e617a6957519dfc9f9e89f850cab57ecce321e99e0d8ee9af87a881e8500658d03fbd53ddc8308a9758cd33e81faad445602d174c348b12dc1ced36b72f15750ae03ec34137e2110fbd3080aa13fa245e45db4f998c76c8263c69cb218399ef2bc8d03bb5f29c117d40b68ccadc718932d85253f0e712b5fd6f64005637fe4fd000e2603df3e2e815cd4f84ff6faf02d20585cc846f3a0ddad7db4b0c8fe96c010e7fcc6032fe1394a36c5022eab42f1dadebfa2cc486c22c51b0a32a90c2f97c26b3a9343039a7f11dae8a9bc8c0ff9950d8b9308ca77216fa63ecaf4175638ba37bd100c0e03bc52ee7866fa997fd56c1b94b8b459527f475c8eec18507424aaf2f6f27f021303d24ffe5e960fd8c0aed2267704139e9f8c7d9514a4a1055c7e4afd5da322fac603066995fd9f8449edb1b708642c311c73c5fb4709c938f32bbfe403d2216d3543035e508f5a4f1e10abaa4cc9c6b276ff5b7d7cf4150af946b0dc6d2e16e28dc03e03a9065cbb99f1b49b1c1eed4d09b73103bbba2a57f164d21e07b0f047b51559c903a339cd43384eed839f680abef05c9c16af34a49b5a015168a078b5680b433b340356e841b10506218f8feae9c9e56210638baa80ed38b6d08ec05af18384a115ca03dea7fad7d145a41c0368bdbaf44114e5399181ff2bf0729932b43840b7ef7daf03134002db3479553c3ca6129788abb54ad7236f0777825ed4a0e287e0ad98a546037ba1d982fe54b0cd59b63fcdd4f46885a93018455bb3ec4833f12b7e438777ca031509e6433e02efa760d251d9f24c940a8aa440c3951d408233d293fd47b87c52031e69d9761333157b29e259c6578700cef98c04813b4e1ceb2d2f6e99929960cb03dfb54b59996644620787a61a53a3014074ceb8ef518d42289621d5cd79a0d9b703f45b85068ababd6256c28a492e9459e9df89a80d7276c971de975947b09d78d0032da0c4198d2039afdcc742a17ba019b6a8fb463599172b78d63aae6a8d806335037d8025faf595ad7b8bc5fb0c17cec6a4f500c94a03b9ebfc103f3f1c19187f0b03ae9e470af3f0de0557b672513f48750b1943fbaeb1ed796fd27445647dec00dc033ed91c2889c54a3ec21e9a78060c577ae1c35d77e82d9afe053d5cc92f26d74b05581d0209eaa73344216c3c7c26096dbd0ce3e39469e5925f2924bbe9979fef040104582d363d3d373d3d3d363d73e5dcdc13b628c2df813db1080367e929c1507ca05af43d82803e903d91602b57fd5bf30058200275b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9420ae8005820026b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0420aed020a0058210305787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0420aeb00582103e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0420ae900582103a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0420aec00581f0360883dff31a7bc7e4b95d2145683cb653e6088ec19c88d7a70ee68110760410100581f034618cd025942cb0d260f2d9a63b9840722049bda9a26c510c0bea4a041004101021830014301bae00058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880420ae70058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6042010000582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b420aee00582003a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80420aea00582003e251a19b290cb66e832ab866b7d8ea806c322cf9cbd519821e0ca77be6a06041010219042002184400582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3420aef0058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f420af002184802199f5105581d02da96821da78e96605ea488766a27cb2ad25b169d4994cb04ae74481c0f0148032412eb40f84fee182d05581d02c1f5849e77b3a5d496482914f3785681ebc3fb955d104513582fd9480847a15e471b7a409a020b030e2c01b852f2df44316490001fd015f18ea428867a0113b17c96e41920123a5e03337c29fd9976d67b66b28034c1414c04861ce13b19a267c6e01d66f2cdb6bfba0394e449cead735841c8271c0c73e48927ffd3cb7d20b5b40e9fcdeb3dd9c1691805581e039df546f3056eb133a6457f9f70a82a3781c24d1e9e14c48a30d726260007011bffffffffffffffff03168bc41cea6b1edb2f9ef424746b59d3b6f90786c3e3857faa9ac4fc9959f5ec05581e03ff4729efd95e55462a2fbb2aed9997e610409b3ab9904abec246422dd0040205581e034d62a58feafb944d810ac0ef812f3dd4e281be04123d5a9fce79e2e270040105581e03aa43c5ac99d6529c46beb55da10bfecd20218cb02fe345097ebe304ac004020219f4e00363a0709147e48c1ec0e6b14afac6084583dc5aa6a3b30d566b5f99daaf97c3ab036fddbbefa370b69ddc9db5856d623b480089ffcfb91a6247264aca808713eb7903a3e6f3a9049635b5d9a6d3918d4186a18d720976b4ce7990ac4c6da0b080594103c8e90d416ec12e101749db6b7de9a3475d752ea11cc3c979d852696c75b9d05d03f6291527f9424e7f79511951ad786d48dd79caddecbc104b0b4b5cccc5ad0585036c785336a06db4fbb274a6726dc7bd62e496d702153418b4c53ddeb2265f1dc703d1c86d060e468aecf457035b8303e3ccd04f72bb3c5717e120b3d50898e29f8f03e276021e720d630a054bbfb83ac71834800bc4c5ca3a3524dbe4a03368c6921a0300e5c997dd7c9ff3dcf39b59033f091dde312dd035cbbcdb760eecbf16e48e580373133bd83669177ba9050ae482d7f829664cf22db7c8ea2890e792b2e696971d0219ffff03e88d3af7888b1e73ddfb0188b3fdb6525a6508a9834db06dd0dd2cefb5b4a2ac0321a7d7d3f4a8be4335bf665cf659db8b4e2bdb59163e9fe6c305bc1b42a6ad5303547925b53f4267c4ecbea5d0aa3cf838ec0f48de2db38f8dedeb653cf54ba7f1038865810571976c8b45a75324322ef71140764575167ccf1301211b9412c4ce1f038e29d25c5e76541287dec21dbee6a8e521c7f9f62349bb94acfa8f8e17fed1050322f310219a2ac5459ccd1f3a550828fed9e6743220e31057191da993aee7e1e60219ffff0353404866b080b25e85517e0857b6014315b7500b13d6edc34cb2da04c640e67f034923766e10e528efd9924820d3ca2666dca4ed9392a3203e060203e4a6e7465903870f988a85d7337e8f810e1273649843c69f997076d7fde5fa7863b25610dace033a0a83bf75e7c63432d87728e8c5f59003b0b6c84c05fc3a7b41b0742a8fbf9c03f3bf6f6eea70ba184a50bacd0eca4d573af8828b9c402718b98acbd698405ce103817cabc1dfc8eddae9bbc6e51e3e032215bbe3ee83e60c7e3b8f52733263a94003bf9ef7b7a8e765bdb8ec9aeffdc7f60cf306122b89ba336f1b5ddb48adbdc00203f3293c5e7741152f1463412e90e2beaf9ce4ebf55da5cf4050f4281045dc1f400219ffff032b1f4e879c3672c8d62754c46f1469071c4427f0c9665f684df6764e20d92b77035764e7d19a6997a4877cb89f9804a1b4e3b1cef00923cc7fad3d6a76b2bde20003c478cf30ff3b5acc86bddc47d9ed2a0d9a75fa313b0fdc6ceb458fa338ed6abc03da25e080afc59ce4cd0740283c91b07a057df26194f573f3b1bbfde201e3915f03acf875960e2b86a10054fc206ff206bf22f3c286a024ef285d96173cf36d623303dda1187c48dee4bce20a0d59e2d2578036e07b2ca850650e32e3c09bc9f61cf2031954ff899788b0c4ec6ecbfe53175c82624476c94f9f55b2c1dbb7e5a8ec21a60318568d2ad8f867feb21a0bdf8be23fc0460c6be37a7c544a465b3091e6d8cdb10371494a96a50fb261fd50d60a133dcd4f57b2665e59358a2b583eed865ac412c80378bd81566adae71f703722d83fa6e90d4a4704b75c7bf9710399088800709bdb0219ffff033abf44d6c31a49e8a89c3ffd9b19a2e4e67c677abf0fbc51f979bd9a59d2a7ee035ff3d2795893fc327f9e4eecf62cfbbb9db7ada78c21bac81193c62bdf5c3d5503f54c0690d58abca7128bd0642e815e5d79c176c231ac3805c8024ac22ee2a5c003c3064b6439d6e26612eaf753db79ee54adbe24582a95e23b35d57bc8b0d22ada0359b00cc8167f968f512a971078364ea5a176bed1fb0a21c4e0280e739459bc730326049ccc01ff5fcd53ad840ed9d3bd4856873aab15c8ef88c019ba74d4f36f6303e060af440b7a5f3809387a282bc18e147cb673c86f52966898deb30fd07ff06203771790b57b182f01ba0cae75ad35a1ff6e65ce7c78b9ec62e8def93d50bcdde70378e6d3c61e4ba4e8ddd0ca9db8f6069eaf7fbd18bf4ae034dbeb574acefe2a5f0354f8ad98708cf930daf3dd72bf45ce6ac9b2550ee5d3ce7eaadb6e8bc96ac52d035119c8808a3f0fd08f5c732083168c4f39de88eeb7c050e00fc6364957d77c3d03cdffa889c348e7e1a3c4e39e4d6ec3fbee0e24fd856bf776c5bab302921e1b3803aa253be36eba51bcc2ea9d6280faff6bd4fc92db14a1a487a008e9fccab93b770300e01e027701eaecdab2e779e93d8a320ef9ced656baf2d2cd87bc12aca623eb03e7654c9f23c8aa9720fe6f165cc9bea740db7beb46ca3bbc059034b2542912fb03c7acf1f4380171927c8917477ebaf2f28806b8d38dfa89d7678ad5f4ec4466540362bfd960da7e63565058f357d4651e86c6205e539c79bac5e2baa5070fcadbdc034f8b89d6ab9866a91936270e5bae1899b751aab27a901c299f906a29acf1227a0374d0dc7460042bddde41469835dc2fc48da71f337c368a6528e2c83604c9688b0305e113b30d18722bbe0c7b84fff9fbc8c781d4f61ea1f05a72257ed9eaeaafe60329032d31c3a8791ac19c2e3619466140d07ff673cd61624d2e92277a4859f6ad033a53bc59b288d945ce86f2343f07a063308081307f153aa477f713c097c3ec4d039c6348813af22f28e863770898adcdc343d0052ce5f24474f5973e98641d806b03c1630bf410f527316c0fd5e9707e95dd8df548816feca235b0baf845d0f1611c035aa035c9486218f78a0859fbd8f3cf31ef274749d2176c7e81f31464783bfe790387df12d5c5ce2f4594d3fb124dd41b33627c8e4383d46562b4a56babe4389d9603f578d519b9219785540d1366da5aafcef63cc69267fdb37c9339a97905d3fd8703b6eaebf6c23eb1d1ce79ff60f065e758c771ab752d2f7ddbfa611f1ed96289ca0327c933f640013c64958b91a835880b785508fc4669b77da360a07d216f57e1b003aa5a41d722094d16f3945542256cb34b6df910195c0d3f2b99f2fb85fa7d90d4035c0b5efb8aaa85358706de693545267fe9ac7eca94f439d277743ac2de04305c030c3c69132168913676a29e10e780e4d44bc9cba946b747859d6287bfb35545ae05581e03379f5f9e7901343429ced75528fc4a744adfde7f82f9c99edc9fa1e3900c01462ac5cad6d2000372ad3133054e8f687f4d09dc63266362b7c394418ffd08d4fbd6a029511c463305581e035b5aa49be1cc283f78c187d638c07e61f709138bddec092e91cde67420040605581e03fd9ff2dd1490c640c83988a60dc724d6d086d23168ae165fb42ba31ec0040105581e03a625496c2cca07fee0b41df0d7de448c54475fb279df52427e766b2de0040303714a7341cf90dd8873677e451666e2b1b3b0410ce58304a44831d644fd9475a405581d025e3b9f29acd735d34f4308d7e20f7fbd1797a8142a2c39dde9006a5e0c0146965eaa9a6b780459567e608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f00000000000000000000000040a7df3df8b56147b781353d379cb960120211d781565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f000000000000000000000000000000000000000000000000000000000000003c8f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f0000000000000000000000000000000000000000000000000000000000000bb861309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f00000000000000000000000040a7df3df8b56147b781353d379cb960120211d78d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f0000000000000000000000000000000000000000000000000000000000000bb862ffffff16620f42406141a9565b90506000611a2f867f0000000000000000000000000000000000000000000000000000000000000bb862ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f00000000000000000000000040a7df3df8b56147b781353d379cb960120211d78b8b613b86565b8715611aab57611aab7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f00000000000000000000000040a7df3df8b56147b781353d379cb960120211d7908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f0000000000000000000000000000000000023746e6a58dcb13d4af821b93f06281565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f00000000000000000000000040a7df3df8b56147b781353d379cb960120211d79087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98481565b7f000000000000000000000000000000000000000000000000000000000000003c81565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b7f0000000000000000000000000000000000000000000000000000000000000bb881565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f0000000000000000000000000f2e5e488daa815361ada55ef816b476799188971614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f00000000000000000000000040a7df3df8b56147b781353d379cb960120211d71693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f0000000000000000000000000000000000023746e6a58dcb13d4af821b93f06261513b565b9450614bba60058c8b8d8b8b87898b60017f0000000000000000000000000000000000023746e6a58dcb13d4af821b93f06261513b565b93508415614bee57614bee60068d7f000000000000000000000000000000000000000000000000000000000000003c615325565b8315614c2057614c2060068c7f000000000000000000000000000000000000000000000000000000000000003c615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a036eda7c1400cfbf38f70ba3ddafb0279db665e90a99b4da4b0650b8b731b4773b03e0b8d61c6e32b26ffc267d33c2cc192a9d64d309c8f8ee3a7deea3b29565f21700582002658ef8e666bb739ea49642f9944c1a151efd17b9345b2fc2fd1d8d250037d24f05d1d09f9234343955ceaf25bf4d1d005820020decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563581f0100000100010000fec9d1000000000000000004d4bfa5a65ca2ab24ecffef00582002cc8e910be85537fefd1dfae29f0ec675b9e2e53a9b03b03760625fe4d2b67b4f187257ef79e507faecc4b262eb7c8300582002b99295bc641f69f0d284ba6cfbbf3a6be1f3b7588b4efb61b8f61831b99a434d13b5889bb94c9531667eb73bab02191a4003a4065780ebf5c789a070ea6d32d270cebdee69a3f23f9952611d64ded29339e7005820025787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace4f233c7a27fd836d6d0daa124f16d966005820028561d0c00d09ab3dea3d91750bd66f75c39944c1f0abb7bf9361e1d16505bf5820010000000000000000000000000000000000000000000000000000000000000000582002b68385768701a0604fbadfe9123b24a2c22800a2239df095f7d8eac99a5f5b490c85c46a4b6b673e1c00582002a93131ed642919a765d9cb0181505daad70796e9d563ee773a37c8fac6b99a5820010000000000000000000000000000000000000000000000000000000000000000582002f3c48b53894d93d1eaa684c69e2d51afb78eec1fff03d50c1d5e59777bbdd54f21e78b8265614630e07ffad2f34baa021909510349c744d16af87d7d0617778ba6f970d6276220e211321a68e5039bafbd6594790313768f7488a09dcc1230a53d0a683a59bf23dae077385e2edc8c4e2c9242d45903e3d03d2db137ac64d75c3ef4453a32340674e1a8493ac833b3c3f8bd0675cfd700582002b6fa4ad4ec2aabddc3fef74b485bceaafaf85b767696345cc81d8d3ec007074f07209efe001242e5946216d109c3d700582002f4dc8588000943862e6ab6537d170f4f868994cbbde26d7529e784c5e54b974e0e1a6997aeb93b461ac27037df5200582002877b0c330f71cf3c27c78f1a5c2388e6812fa5ec5bf13d166ceaa750abb3505820fffffffffffffff37a3b95b49498c1e4000000000000000c85c46a4b6b673e1c0058200210153cf1eac80dc6a1653cc19c0c88862b0175d242429233dd882c2255502b4e02f88a8d351bedd64355e8ac40b5005820027dbad57520b7be56755a0c2a911257b45feb6446ca5360e5785b26808a045558200100000000000000000000000000000000000000000000000000000000000000005820035acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b04a03736b307a89b443b0130058200359ffe3c8e58fcbc9bc04021d756e4a97b9f635dd9949848951fe9196a1a7b0500d9b29af1ee0f3fe656d7d63fb95f9280218280058200222bad9590ead1f56dbd85c72c81b184ad084edb1024eabca41e4b584d819be5738a6be2575f9fb0000000000000003e80f459a485dba180058200280523d2a535f57580a07fcc29cb918be31687d16adddb0568e4d07fbbc07934a02cae6c3e6b6aff54a6000582002f06708cfd217daa258e9af5bb7c80d9a80d55b4de1d79936adee3026e100d858200165c861ff0000000000000000000000ad16c02cb16d8f5c17ffffffd5b0e4c802193c750380a6ec8f8e2527f4b405ee86fc649a8a8314ea4f696baab6e7fa41732e22b4d6034275f76c7b3f1122fab6338ce882fa901cb7e900a1738217323b260186868ed303adc25d4261d89b7e42bb23fcc58b4f424377b41dc8bc028417d1f368393ec83b038a7ff82cc4f9b03d8b52d52c654fe7dea001c1e6acc1c52e923392dfd00165710375e6dad12afe29c18740b2d4ac13f64f60bced2fc6d0c3099cf50c09e768510c03ec56ad25db49ec8d71637f8f862f0ae2f1fdfaaa977dc29769b6d409af16336c00582002c344dee5602e06eba2551c1e65c5ea93aced624e359ded97df0ecd2d9bacf350bc26fd8434df1b4c553742cbec69385500582003fead333123e5651d8b7faba1885eb15d8db40042349d33e9e90a3ca3de17904e033e1f552019efb4e27bab909d9e005820030aac876e83959c3d94c67f4e92e3dbb0f8a07ec0a1867b0074fb93c6810c30581980000000000000000000100120000000011000000000000000005820033f421926f7d5881d97251eb77185a541f373d71a9ce7e4dcc04ce7126c0ea04f1dd84e68c834cead5710126b2ce9490219808100582002c9a22543e093d9eb78b2f3a5f11c9766438576ddc61924e9c3d174dc84d3d14f06a62b55c4aad5f4bbbe56a3c11f1a00582002fcb0e80fa86ff31627462e86f5e656e48ee6f091b1012ec772516468ae03c249032338245868d8540a021940d4005820020313cbaf7ed55d3ccab2273cf959961e05df98e5bd4212b6261c820440376c5066bb88b1281f567d62f2666b7374ac5803d8c53e7c9246bfc76146e3b1f612765a91efad31cec765a92d7c159de373078300582002df6c2751d6c51bbd887dee790267b318ddf4983dc07cba709146b9215e012748200000000000000000582003150610e67de163d74df9efa6d3e5642811f26e0d3c71acb6fc6e74e3531cb04f02d13b79588b2b88fb9cebaa0fde83005820037a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee305820010000000000000000000002e558a0dce58dc0c998fffff6fd45c54065cf5d930219804000582002591a3e38d36da28a1b06bb6fbb356fd6de0f98374bf9bd0ca2a0a256d7668c4d31964c0c189236087b703bee6500582002724ff6918e91f7086b1fa4fc35e7be487f1a1e000a912f0eabbfe13d5873054911ed2d3a1b1c0dd2500219120f0219ffff05581d02534655757cfc8702f9502969b6dee478a22c7276744d5f3ae3828668070119567e02191100035e536e7a008a7642396c6e7d424e630069c75bd0549e1bbf0b3a1276fecb3d460219cda603a0aa1e8485d30a7c72101f1322f079c71592a01c7138581bd9d458a358dc610303d8936e2c76e9c47e26ed9b2492e66fa48235b649428094283a92b19ea515e1f203257abbc6237581b7f5a494a259b6cf49743e158d3f561d6241c15e7a304688b103a020ba0c5935888381a8488fea3c57d6cab4fb21fa9568fd5d16f14c0403d37c0334d10bfe3c9e015abe95aa3caaca808139ca3275642c88ce491beef7a0791ac503a997256dcc60909ec360382a349792cc3a013843bd9c5e7cf3551ae497f2ab3003c2b9f46623a1b2b1acc23fbb07c2a2fa5a22ae42862831a3cfc2879640384469038d2c40458336435a926e7b226457f2155b0e4dc511eda7ca11feeb7cd29f3a5003d048090c5ca6cf8255942c67375789a0bafaa16fea6415eac634e49409468535034e18d9f5e6ac743e55507c5070797b0dbcd0f45b7e45bce60c6d68e2c4449b3c0219ffff03f980c27a60456d5ef94d2071da3159ce02e11a91393a91b0ab24cd008057c08603057fc7a0b172c39e0d30b431d4b63ce1fd5f2c12db827499cf7407c3c00c69b10380d4b0c0dbaf27e56b92bad03f925efe077fc67318184da4cd50a5d3235511d6037d9cbcdd51dd5dce4500b2933cb85dd6d01eec76a16086b472d6b53cd1089fca034d2a5137d90cca2a3e304d4e15fd43d1a06d8dd6200c2534b41b424bedc3fe7c03a5ef8a09cf4e8114d854c94191a58970805afacfabd690e7511d2f4669e0834c0219ffff036d5c806a9ba6ac690aeee9c6d11109082461d62dde0fde49a9f653182dbb136203daaa799d0931929127f9561e0648b9704628508d7a9b8f07349b884327bea6a80303001107eb56fe113675426003c968d62080ce90bb29afd8c38ba29c8e77244d03fb5855c81c583e07936bbe4adfd5973b617e43ff9571dd2330148ab96f272f1203c9db45556e4de245d2640a68fee527f60f06380b7b172093de53cfc82c33cebd0219ffff03b21a659694ede529c3b65dc72179b66b306d24b9402a57119678695d870a575003b24a95cf86e6eb7e8d487b0a1e6be009c705c49e1fed5af53aee29bd8fba7eec03f503d6026d8ec0dbac02e2710903df8a9c64cb2d7b351f210fd67c473722a02803c2a4db5024ce0024b1153ba6145dc75a4b09e388972e7b34c07de74ef65c314803be978177624eba5454358ea5525540569fdd2ba0c8fc213b51e3567ddd788e4303aed27095d64173aa7d45d14dc4f426cd89e1a063ec8e1574cfa1333b7998feb0034a591cf9ee163a8d90910cc87b7188b91b6078a08eb11977c73cfe92a65b1cc2030f7f019eeb609e2c4e77daafea5a20748dbb4d35e5bb7a733691cec5e3299ea0037889ab98a87d3aa45fbb348c090b56730ccc6fde4fc889c2c46d23d54cf873510219ffff035db203c2d4124b55e859bf13560da2dc759486be45282bf7a76b799d3136679103b131759890314c63e7f15a03ac74ad964452ad60a88db134867ff9933aaf151903fcbc2b1ebb26141420a457bdd9f1a3166f840d96c0bcadc772a1d4fe7bdaa921037921e864bf20ea6a701cb5362c5e95c6d9169e3207480f1ca350a374b68110cc03325385e0bcd739b857225ece348b9a22732e55db62e55e125108b0038ca21345030cbeda4a5cbfdbcd5efa06a6c7964f0b736e3126eaa5b91ed5ab6d93d3c4295603a04ad52393984403c87364649d32cd76e946c9b9eb9001fab0396b7ccd744bd203e2cd8346387023a393419655f0f57c7db41b97c43acd0ba2ef1ff1b95665a70705581e033dad5bab6de6390ef59686512c86f1298303ff13e6251e87d02198eee00c0347018cf1e1f776a803647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d0368b87e6690c252633001ecfd0680e1530687d60cecccb2b448743e4e3860593805581d028e3efc9a774b5ae2bd447dd84d695a71bc656bba2b141d9ea8d18c5207011bffffffffffffffff05581d029e0677ae558ace5483f874cb4e0cfb754f1a18a1d52c9a370f664bb60c0347015cbdccd900cf0459289360806040526004361061018b5760003560e01c806370a08231116100d657806395d89b411161007f578063d505accf11610059578063d505accf14610404578063dd62ed3e14610424578063f2fde38b1461046a57600080fd5b806395d89b41146103af578063a457c2d7146103c4578063a9059cbb146103e457600080fd5b80638129fc1c116100b05780638129fc1c1461035d5780638456cb59146103725780638da5cb5b1461038757600080fd5b806370a08231146102f2578063715018a6146103285780637ecebe001461033d57600080fd5b80633659cfe6116101385780634f1ef286116101125780634f1ef286146102b257806352d1902d146102c55780635c975abb146102da57600080fd5b80633659cfe61461025b578063395093511461027d5780633f4ba83a1461029d57600080fd5b806323b872dd1161016957806323b872dd1461020a578063313ce5671461022a5780633644e5151461024657600080fd5b806306fdde0314610190578063095ea7b3146101bb57806318160ddd146101eb575b600080fd5b34801561019c57600080fd5b506101a561048a565b6040516101b2919061263b565b60405180910390f35b3480156101c757600080fd5b506101db6101d63660046125dc565b61051c565b60405190151581526020016101b2565b3480156101f757600080fd5b506035545b6040519081526020016101b2565b34801561021657600080fd5b506101db61022536600461246b565b610536565b34801561023657600080fd5b50604051601281526020016101b2565b34801561025257600080fd5b506101fc61055c565b34801561026757600080fd5b5061027b61027636600461241d565b61056b565b005b34801561028957600080fd5b506101db6102983660046125dc565b6106ec565b3480156102a957600080fd5b5061027b61072b565b61027b6102c036600461251a565b61078f565b3480156102d157600080fd5b506101fc6108fc565b3480156102e657600080fd5b5060655460ff166101db565b3480156102fe57600080fd5b506101fc61030d36600461241d565b6001600160a01b031660009081526033602052604090205490565b34801561033457600080fd5b5061027b6109c1565b34801561034957600080fd5b506101fc61035836600461241d565b610a25565b34801561036957600080fd5b5061027b610a43565b34801561037e57600080fd5b5061027b610bc8565b34801561039357600080fd5b506097546040516001600160a01b0390911681526020016101b2565b3480156103bb57600080fd5b506101a5610c2a565b3480156103d057600080fd5b506101db6103df3660046125dc565b610c39565b3480156103f057600080fd5b506101db6103ff3660046125dc565b610cee565b34801561041057600080fd5b5061027b61041f3660046124a7565b610cfc565b34801561043057600080fd5b506101fc61043f366004612438565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b34801561047657600080fd5b5061027b61048536600461241d565b610e42565b606060368054610499906127bf565b80601f01602080910402602001604051908101604052809291908181526020018280546104c5906127bf565b80156105125780601f106104e757610100808354040283529160200191610512565b820191906000526020600020905b8154815290600101906020018083116104f557829003601f168201915b5050505050905090565b60003361052a818585610f30565b60019150505b92915050565b600033610544858285611088565b61054f85858561111a565b60019150505b9392505050565b600061056661133c565b905090565b306001600160a01b037f0000000000000000000000009c056dbba1db552c72d1bf852882142dc5ebb5b11614156105fe5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084015b60405180910390fd5b7f0000000000000000000000009c056dbba1db552c72d1bf852882142dc5ebb5b16001600160a01b03166106597f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146106c45760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016105f5565b6106cd816113b7565b604080516000808252602082019092526106e991839190611411565b50565b3360008181526034602090815260408083206001600160a01b038716845290915281205490919061052a908290869061072690879061266e565b610f30565b6097546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f5565b61078d6115c5565b565b306001600160a01b037f0000000000000000000000009c056dbba1db552c72d1bf852882142dc5ebb5b116141561081d5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016105f5565b7f0000000000000000000000009c056dbba1db552c72d1bf852882142dc5ebb5b16001600160a01b03166108787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146108e35760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016105f5565b6108ec826113b7565b6108f882826001611411565b5050565b6000306001600160a01b037f0000000000000000000000009c056dbba1db552c72d1bf852882142dc5ebb5b1161461099c5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105f5565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6097546001600160a01b03163314610a1b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f5565b61078d6000611661565b6001600160a01b038116600090815260fd6020526040812054610530565b600054610100900460ff16610a5e5760005460ff1615610a62565b303b155b610ad45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105f5565b600054610100900460ff16158015610af6576000805461ffff19166101011790555b610b52604051806040016040528060058152602001642632bb32b960d91b8152506040518060400160405280600581526020017f4c455645520000000000000000000000000000000000000000000000000000008152506116c0565b610b5a611735565b610b626117a8565b610b88604051806040016040528060058152602001642632bb32b960d91b81525061181b565b610b906118ce565b610bb433610ba06012600a6126c9565b610baf90640826299e00612774565b611939565b80156106e9576000805461ff001916905550565b6097546001600160a01b03163314610c225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f5565b61078d611a24565b606060378054610499906127bf565b3360008181526034602090815260408083206001600160a01b038716845290915281205490919083811015610cd65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105f5565b610ce38286868403610f30565b506001949350505050565b60003361052a81858561111a565b83421115610d4c5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016105f5565b600060fe54888888610d5d8c611aac565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610db882611ad4565b90506000610dc882878787611b3d565b9050896001600160a01b0316816001600160a01b031614610e2b5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016105f5565b610e368a8a8a610f30565b50505050505050505050565b6097546001600160a01b03163314610e9c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f5565b6001600160a01b038116610f185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105f5565b6106e981611661565b6001600160a01b03163b151590565b6001600160a01b038316610fab5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105f5565b6001600160a01b0382166110275760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105f5565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260346020908152604080832093861683529290522054600019811461111457818110156111075760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105f5565b6111148484848403610f30565b50505050565b6001600160a01b0383166111965760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105f5565b6001600160a01b0382166112125760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105f5565b61121d838383611b65565b6001600160a01b038316600090815260336020526040902054818110156112ac5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105f5565b6001600160a01b038085166000908152603360205260408082208585039055918516815290812080548492906112e390849061266e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161132f91815260200190565b60405180910390a3611114565b60006105667f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61136b60c95490565b60ca546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6097546001600160a01b031633146106e95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f5565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156114495761144483611bb8565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561148257600080fd5b505afa9250505080156114b2575060408051601f3d908101601f191682019092526114af91810190612606565b60015b6115245760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016105f5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146115b95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016105f5565b50611444838383611c83565b60655460ff166116175760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016105f5565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b609780546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661172b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105f5565b6108f88282611ca8565b600054610100900460ff166117a05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105f5565b61078d611d3a565b600054610100900460ff166118135760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105f5565b61078d611db1565b600054610100900460ff166118865760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105f5565b6118c5816040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250611e25565b6106e981611eaa565b600054610100900460ff1661078d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105f5565b6001600160a01b03821661198f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105f5565b61199b60008383611b65565b80603560008282546119ad919061266e565b90915550506001600160a01b038216600090815260336020526040812080548392906119da90849061266e565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60655460ff1615611a775760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016105f5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586116443390565b6001600160a01b038116600090815260fd602052604090208054600181018255905b50919050565b6000610530611ae161133c565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000611b4e87878787611f3c565b91509150611b5b81612029565b5095945050505050565b60655460ff16156114445760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016105f5565b6001600160a01b0381163b611c355760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016105f5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b611c8c836121e4565b600082511180611c995750805b15611444576111148383612224565b600054610100900460ff16611d135760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105f5565b8151611d26906036906020850190612368565b508051611444906037906020840190612368565b600054610100900460ff16611da55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105f5565b6065805460ff19169055565b600054610100900460ff16611e1c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105f5565b61078d33611661565b600054610100900460ff16611e905760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105f5565b81516020928301208151919092012060c99190915560ca55565b600054610100900460ff16611f155760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105f5565b507f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960fe55565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611f735750600090506003612020565b8460ff16601b14158015611f8b57508460ff16601c14155b15611f9c5750600090506004612020565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611ff0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661201957600060019250925050612020565b9150600090505b94509492505050565b600081600481111561203d5761203d61280a565b14156120465750565b600181600481111561205a5761205a61280a565b14156120a85760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016105f5565b60028160048111156120bc576120bc61280a565b141561210a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016105f5565b600381600481111561211e5761211e61280a565b14156121775760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016105f5565b600481600481111561218b5761218b61280a565b14156106e95760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016105f5565b6121ed81611bb8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6122a35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016105f5565b600080846001600160a01b0316846040516122be919061261f565b600060405180830381855af49150503d80600081146122f9576040519150601f19603f3d011682016040523d82523d6000602084013e6122fe565b606091505b509150915061232682826040518060600160405280602781526020016128376027913961232f565b95945050505050565b6060831561233e575081610555565b82511561234e5782518084602001fd5b8160405162461bcd60e51b81526004016105f5919061263b565b828054612374906127bf565b90600052602060002090601f01602090048101928261239657600085556123dc565b82601f106123af57805160ff19168380011785556123dc565b828001600101855582156123dc579182015b828111156123dc5782518255916020019190600101906123c1565b506123e89291506123ec565b5090565b5b808211156123e857600081556001016123ed565b80356001600160a01b038116811461241857600080fd5b919050565b60006020828403121561242f57600080fd5b61055582612401565b6000806040838503121561244b57600080fd5b61245483612401565b915061246260208401612401565b90509250929050565b60008060006060848603121561248057600080fd5b61248984612401565b925061249760208501612401565b9150604084013590509250925092565b600080600080600080600060e0888a0312156124c257600080fd5b6124cb88612401565b96506124d960208901612401565b95506040880135945060608801359350608088013560ff811681146124fd57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561252d57600080fd5b61253683612401565b9150602083013567ffffffffffffffff8082111561255357600080fd5b818501915085601f83011261256757600080fd5b81358181111561257957612579612820565b604051601f8201601f19908116603f011681019083821181831017156125a1576125a1612820565b816040528281528860208487010111156125ba57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080604083850312156125ef57600080fd5b6125f883612401565b946020939093013593505050565b60006020828403121561261857600080fd5b5051919050565b60008251612631818460208701612793565b9190910192915050565b602081526000825180602084015261265a816040850160208701612793565b601f01601f19169190910160400192915050565b60008219821115612681576126816127f4565b500190565b600181815b808511156126c15781600019048211156126a7576126a76127f4565b808516156126b457918102915b93841c939080029061268b565b509250929050565b600061055560ff8416836000826126e257506001610530565b816126ef57506000610530565b8160018114612705576002811461270f5761272b565b6001915050610530565b60ff841115612720576127206127f4565b50506001821b610530565b5060208310610133831016604e8410600b841016171561274e575081810a610530565b6127588383612686565b806000190482111561276c5761276c6127f4565b029392505050565b600081600019048311821515161561278e5761278e6127f4565b500290565b60005b838110156127ae578181015183820152602001612796565b838111156111145750506000910152565b600181811c908216806127d357607f821691505b60208210811415611ace57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220de0a647a856110df25fd3029b88e4df09fa3c2efa08eaef3e8b310c96400e51964736f6c6343000805003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563410105581d0225fb29df94b1bc46900e99b229a4942f8482fb91a1f801fd9ba04ab9070119289305581d02c628fa58b4e8ca45885677b1b41adc360762706f766b5f33d67cbe8b0847465ca8b10f58fa0219682003fa3669895c17f6e74ddefda4785b3cfbd4464f048caab04cdeb24c0e154e8028031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e03a8060481c71ec9014f3a46d3519edcc973b82f21be0c0a21c740076c2007011bffffffffffffffff03a730bf4ae8b8d79a8c09ab8d29b845fdd4c90f497f2b15089a8c5320d8cd7d9c03b527f003f75fc793829873894468f199ab39308b964b7398f244d4d8da6e974e05581e03dacafe4c38bfee069f4f46fdc357d4b8bd91489c3d567202945b6d0f8007011bffffffffffffffff0377ad9c377411a935c8ad9cf1015bc8dd236490114b18fc969f40503e3680bd27038e56578ac65072d47e096574eb3e2f9930fb6fc970d49aa44468d2092474d34202193f02034c47e5a73f5adf07adc03f92b6d8d5d3be73224d0e0b18c8134dc9680a057db2035c5920ec48d875723ab539c9caffc82ce5eb7af65069a994289777a043894ee90327b95b50586327b01a20aaa6225b0e5283ba7b63b86b70df050f7ba88d77ae9203f9773e005b28af5e1735b6bc9fc2772d778978244316faca84678e97719e071d03d6e04c511ce40d9d8b3c75b06f206728eaeebd86e040cc6ec6152d223eec098c03784d3da8cf2a201d62aa1924554d7d39dbcf0af3e65b4f2d8cd75572db0be1a703888d9ee236bee6717dbf9e7f197648f629b2ebb61e12d04006bb31ae54b9e0b603b6269aa8fac03088889818f9e59a3774cbd90df859ceaf98320d782358d9b17703562691f2bcf2dada373aa5d502cd8dfe0b3beb999521bdff6e6107bc52fd269503bade183521d7cb84afa28c02675829532805f31f245cfbfcfa82e1f48618b0c403ef2b442fad63eeaac600ced4c2fdac43ad5a7e8fa3275ba354ef233b75bc8c0a032ab3a0176830ebbc19505dd2e4af40d1bd1737a377507ad21651f8e26937d9b1035ccdaf029daf60a11217a5e3160d7763153313e3fd7712fbbde707d9d63be0c2034f9ebfaf699ab25c69b8dab638ca22647b07d72527554dbce8fc184ecabfc0ab03b7acadb36181db138bf4168f7c76804b7e66ffc19a3faf8ecbc51e9b7174af320219ffff037636351a3984d4cc8500d1f9e88075d8b11bb571bf811777441fd4b81a7b312503859d412d17744c2f6605129247bb848012e7576d374c99ac4d8fe84ec041215603ed3d83970f4963060f8695e3313255e4d8cea2d1b8c07784bc79182187319738038ee19f67e8341ad938073f2be4ff780fb6cbf79cce1461aa4b1ea2186107d812039bc86ac2218be9069925ca6308126da1cde3d9f96fef8843a2bf8d242586200603164476e7bcd33a67e4f020b74a8f051615089ec376c227cee189705f7488bb1b0361409274482df1ba2482aee5b08c9df2415215e20780a1c8c0cdf92fef84eba50355e816ed373b06d9fe9c30686a774f764d2c30a82405874ef27c6c2cc20a8601033944441eba15e815e0e605ac606d49deec76a947eef5b4f929c70bb4cd1bff0403087982d4944b42c618be49f897799400c7c0b5dabbdc211b17fb9e45ff2fcec003161c40f9397e68d466183a1e0de18deed646b032fedd415a4c4869957cd788d80340987a4188790aef777d8b016ffed1f241544b265ecd5593e9f01ce2153ab80c036d949ef912c62acc03b460c7f906ebd6293a7cc4f671f87f892538657833dd0903eeff16eea4a1a207dcc925130bc8746b7b9683953a56e66a76b8f6f41f01d80b0219ffff038c700b9eb13b5e97001e8ca1c5d78db603daefdae88d5d94b17345c06cc7431e03ec0abdaa1377b604f47d6594e71df6f1970de08af591e5972f6e3920741e9bef03e0741ff0a4986399b023c82068478feee14271c7dcae247313fe5b581409b118030e90989f868e5791b5a1c66a5edcfbb5534b96b3147cfbbd741f0832eb7085230309c333af60e03feb964bc86773938f9e5f2e0f50dd5f84abea73775f395068a703cba7f3b7482bbba719e6c3510befbb4671a3740df245808f20616715af9e242203500cb117ee84fb50367f048efa2f75b1de2e9bc67247420a5694330737e48d4e0356bbf40f529b85d751cef27e81feaa2c78e6741e5e8024478c8da04c56f510af0219ffff036393b15e5e3a79eccbf49f26a06e8c9e2b8f110bfc11b516bfd7b240fcf3427e0353187f2e6d7222e3365babedeb1be48e3176837c20ee5b5eb172d9564959455c03eafa323cc38174b126aa7c7061189ff859445acd5cc5d5e1c36ce06d6f2cc24f03c6bc1a81d793252d9053962f6199047cfcdb88f879196447e86bfed9528130f90382b06917f4954f10a1a11767636d28aee9685e21f754f15b367d8f61183e9c02030786d98141e341ce439d0a586ca9cd2010aebf761a49f96d4307ea02d9eb8d5603232e2cc0ebb34b958732fdb078691d596823ddb66d7c5c9342659b60c2b343230384730c163a9323aa7b819e8aa2245e057f464dc343da3cf4e04273014dbf7a2003f2cfafabb33c5c6736cdf42e1017c8758dca69feee266214a169966f0c5eb24103bc3125691a4ff7afddb48e19d5f2715f5043209cc634a0123e1fc022fd18b42303b5b4631146d3f0893091658e55178cf4d9c169c0bb78b88c91bb90620d761a6103f40cd3b781dbfb6c96c605e98f62240f3fdfbc9858c4766da80787e76e070d8903791ba34b3bfc0a9b276ce805cd1f5da43861ec1d8a8ad3ee13b80ba7670fa26a03c9f9745ec9439a7064835236ea7aec20dfcbd46f058bfbb3102e7cc3195bc98003c250d916df6f4e9d86a1dc14f3f931cbbeee466cddb337bb669e3b540bb4d14603c18203a55c871b951fa99392820b2f7d6eaa5e612b7654968d8fe6f486c3f10603743977f800023feaf36bcb259290a950e52a1a04c42aa9e59b2a2689935cfb1f03b7c38c66ac965b535911d0558515b3aa23ded75693665b39bba0fd3d4d98ef4a03bc9ccd2198526f17294449ec8413acf9893ac7b5cd0bd12c056d8a0cd199efab036683b189047a741c996f5dda71ab8dc62917c51ac46cbe4a06c89d7dfb926552030b3c056eafdcf1a2e98ad90aa99e669d3506ce4765e201ec3fb67626dc7b8b2503758816553b892f97c575d9078c77983732ecb25f2bd3dce0d1e0975b6b94d49803e236fafebbac6cd3ce76b0e9bc0f1cf256007c60e81dfcb5178b9a5af4fb1824034b99192b6d40421a17cf02d4cc9f4c3c9a1fa98b1d313add1f859071bce34991037ce6488a426e174528efc05c46e702b44b115d4cac38d679eefdce1e4b20a5d90351c19d497d99a525a7f3ca07bcf568a2ee16eccdc4e7ac07a45e19df20cb311a03a915c6377cdf8dbed9b73235e83ecc71aad16256e0668ec16ab027abc479342d033a56dab02eaed108d12afaca56eac3dbba0033f018820ec43d7a621ea7e23ce403d15338d9f403586bf5150a33beb381c37c11634ce3fe700fa9129e8c2ddae9a2035d9f86e804a7bb9ee954fd3223b4ab9531922f11513760d83e645f0aae5f7c8b03edeffbd9d0bcf3ef465c980ab8160b150e5c944f5ba52cc4e231591d99fff1d00333a86901ee2e88906a829043311eb5df63724d73987637192803dfd6080e91b1031935d13c1a3eb2ead490f0999904b5c5eb7eeb7f176439855701ef762813b21a03b238717128d0b356b164db1788f0d72ffb186d1ac394344a8189f23e365ff6b205581e032d8a4c165b2d79d5232da656199254d4fdaff7b2b99d826f509e987fa0084701c6bf526340000399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe90803bb510f1fa5d098f5104870ec0d084731d322b5e47d6e785a781524d74314ac0405581e03a39a3c727e027235875e0306eb7db8386b41fe2a269b0a78609ff3dc7007011bffffffffffffffff03ee9252398c9e8afe49a81246cefcf9e99dd8419db885c402a98d2e5825597d6305581e03a507a7ae5e51db9e0b085522c79bca31e40fbef5f79de44a4f7f44a2f00c03472642ba5311550005581e03916abae04cee64f030ded86929ec6053becf7491659ae5e0531d4c86d00c02468934d6106b6805581e0381c5819ae25bc9a4c10dd734053570e6f0e40b414ce8d81746122264d00c014624907d88ae000459089e60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e4b32c109fd08ccf9742c7e09ffa8cda2bad608f5379698a7c1f93a339aee46b64736f6c6343000810003303b1fc9aebabd09a730fc43f4d8d23b58e72957765a34977388eb7fb7dd3848857039fde55803a48510b206e0e42ed10d3d99506ada8fadfee26d1ea785f01c76003033294f5165b3f8f76843dbf20e4cff3eda63ce091d12458dc59eaec9fa37459cc03846d28aa45c8358ad020926a2094f84978e0e0537c11d2d721c574d989ac2e6e037ce5e9ff82a664255827a66bd068a97223de67c046b6897e3b34698c75cd6fac039d35014a3a90c1ce807c952b0a00c4a50f7716f2b6c5702d86352639646f961d03230ccfe057606923d541112fd5af6595f8e94f1efeff4856a5a36bc8cf623c600310b46edb53d7b6e2ceae63b04c62e1ae82d94f291c88b27a47188c2f28129e6703f28b3cbf0c3a1d28ce5784f4cfdd57e330282ba83cc7cc1ac4011823d3296587036a295c2be3a5cbf63e6904caa879b49d132447e87a39d6879df60929bc9c5b81033c6d2321ad4589ea87b1e83353fde9fdb5a5f6a3e9c1cc0410b55367ee845a48030194aa178c4e5f6231db4d72cf3ec6c3a20937f19a23ceca0a8f31b69ba9e91b03e2942fabab26e3a8812b20fd568c6c00b89503bb3f2eb36442cdda4248f9d958032362708699d0db209fde8c886c1aa4d603d0063cea6e3ecccc0155c070ac077303ca01e3c1c96153f3a909e0e5021161c998fa24caa896aa6ae1eb5da3da37124f03c992cc8402da32b808e5f93fdb7fd8c1f04f66c4aca80157ec948a5e85234b8d038cf598c9fc302eafcc30366c89d084cf227b166cd8d4b5550d4fbd8b3675b81c037d89b450594ade1de7ba7a17f49e0038c81fa281784e256db773824d50570fb0014200e40393a34728e8a7047055542cd39aa6296288c6635ada669d4a52e99d7c623d1b1803580864bd1160ea9327ececab4b801fb1c9c5addfee6af81265ccf232c80dcf5b03118821667618604936333f20e7acb58a4c1a4ee6a4dda49415be5c6fdb8761ee00581f033ed9988f79f6038d4c7a7dadbad8af32f4ad6df893e0e5807a1b1944ff90410100581f03411f04997c4029c86d50636e97c2da6660df9426b0932497072832fa0d204465350eef02190500038ab3719cc2fd883239967435b47f17b1e77be461faeda92fda37e661f5ba810603d0fdbe48ca879eb8bf7848b76d5a25e851e7b5d12f8aee83b7058f790d30125600581f02d16e2bbc676162f82f01c319b4d075de1fab2413266818ff1637ce08e6534465c0a63b03e9f2770cd665bdc088072410610f33aac1d3dc01eb809ef4444a217f15ed0c6f02197ff70376a1d732b9bb99a513267e787e8f239f40ec2f65d1e490bb08448cfa6c12d96203321490e304eec748bdc5b63c50c149b18de42c98a066b5d107699ec9282ffe250361b9a09f443b298c0ce8d14c630b026d22905a3410e838ee9f08c29d9f4c5f8603b97edb37d362b6a38b1f55d88a0bc9c25524d5e9d97c81868fafaee16bea447b03a53cb4006646374aee5d826db7cd3e783af2b3a20796ccb8f206212e0558b64b03f6a27064c4a37d72faf4c63925f0cd47bc407c3665c2e72b915a644166be1f99031831397cae7850f4f6c46588a6835534990d3d9707b454c13b81e4b9fc8708b803571b6bad1545eee4ec65af15807f55574358bfc3fdb33fb08e0efe04ff13aaa203f2c6ac2f4e1257b4463a377285ed7639e9856dcaead139b6d5994657d9a2e4480339170700dddf11a6dc2bf9faa5297c271375ff23de8ae22d914e8c6ceb295d22036ae04582057b0a2c601f9d91892e35768d92cab49412677f7eca1c5969818dd80219ffff0366cc136db24d91826e923364d829926c6e5a6b4edcbeea9f24e1bf4b40c752f0034a64db0b485ea73f29715ed7956d639be51cb480771990c2d83c4b37f99fd9cf03d48de7a8c8f6cb1016cf60299c8e8ac4e5c5cea4afdbe3c72fd9ee17688a4d2203bb924d4b1b7972afa1a5b4b088a6391304d47f84583396a8432fbb35eecf6ffb0301acf61dfac2a2473bda94a6b3d6790e7d9840993bde388c1f29290ddc6f388f03429be97c30595543f46a3e677e77c3c2b0236ce4afb0695b25f40f666d5e9491031cdb602d821bb98ee2c1ae6c3080cffb63f5d18844adb6a0b30c97ffcc5d3279036c8975693d5a70716c068b6f02c3897e3e00f098ddf03e05ab0a687f764ff5aa03bbcd8e652e12851c92ea07114928687976f4c7928d700f88ffae1163f472bff303f0b98269be305061e567e2837013cfe2103b672c4045e70b4c97f6d854b8843c0219ffff03a972ad6b2938de4372d048419b2be1e265ad7fcc54098c22e7d7b105590cde9f03a6a2dd85040f7b0445fd61107cbfe0321b40ba18d404c966fa695f6fe4708617031fad0599e3c1f8065cb09b46afe909feb4cba40a7c04537c88416b982971660a033f685bc24ff6ebefc74bc412f6cfb06ba4d217a35b2ee0da483a6bc6a6bfbf8f03e9b9f403d9348a529c3974c7bc3eaf60e3beaf2607a380eefd9a7020c398222b038942b79117dadf1499a3130270dac763a622036222a38f9ed764c7b1de138198031b5f05e3f99683be85c6f17d3653774973b62bd85ae5c1c5c997f05e16c6d1b603420b76e013cf6f6fc9de2af0bdcb6080cca574f82e7305f5acf9b3f7ae0d071403f1f6039638a7ff7e9dd4221e39e21a8bbc378f9c700ae6cbe1b5b489a080bed3037b909fa7a08c9d9cc1ca789b98ba6d10e312f845a55b472e1ab7fd442c2a54d003f601dccb00b415f020f2fe709a0c5256433d9782b6e6db3d2953755521ed2988030915e85dbcdd16b44eccbfb40287b08484ac0c523bd019f1e73aa968a8afeea303c23e8b67ea46cda13492d630796376abc1ef7de8b8c9bc68897999c62b59c94c03a03a6652538a3dd43b32ad7e14f06854780d2867643f6f83df9f1aa9ac6552fa036ac8dfe942203de15f994ce426c8f35450f1f0af1f2bda538059f78aa03d6df800581f02440d430872b46b23095d6d57f4a792b2add7abaeaaf5b4d8918088ae098444654ac9a303927451e202da77a5321e0f835c2162dc3f61c2361e5101338e3f23cd7fa976ab0141060337063c2d83678d6acad9826ed709bbda21a9864b8fbed57a8e6617f009e9d6b403a6116f9973bc0ca10b47041d03143244affa261fe7e63f6ee895dc2312286d210374236dee37cbec810214c9835b6abcff1f6af9106809ef8a9ad9b7c3c7a1458b036502e21963f543d272f3fb7ec16fbe840ad57dfc5f8ac2f4c7da5da880d1c2e700581f03674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee1054781e90f1c8fc4611c9b7497c3b47f99ef6969cbc00581f0335a474b69fbb4d19734afa6d9d79bead0c40e69e5de2e3533fbf523e44c044658bc93b02192004037961bf50043f3e4385141ec141524f30244d23d4ffac365d234be8db9730e9df032ca457a809a8aac62bbbbbd71c876cabf2e882f8dc54a26fa83d94e6998d408e032bd1a7a5784b043c204181f36ec65e8787ce37707487fdfc92af19373c794449031329795b1b3a448ed79d4c4a6addb710bd9a31f3f548d98b622683185b591a1700581f02f3665c256cb5d58900fd671d93d590eeec5f95f4536e45839e2f727b0bec44653baf9f0327b327f6bd3b63ae3324e9d172c6a463e97913a50ce948a463fc7e3961fa81710219bbbf0380e1630417fc45ca36e3e85dc2009be933636ecb4832d11422f75c58ee7dac8e03c9588e5e8c12a4d4c1d8665b1d0dcd4640d0a087d6d747ae70dc12447d6209cb0219ffff0332f5b5f496e21eb50d5a1877f12400432910dc9d04b0a639fba3f8b00649f6a903a84a5d78ca5ea2948bcfed09cc627d0379d96145fa693e303f7c6c8b040f6bdd03f6f86fed32993399199446bdd51b4416a2f4e333380c6aa63f0501fcf5c46d6503bbd4645570eb76031d9c289c52d7eaa760ae79ce5708348cf63bd6d910762a5c0324527a65cbacd51c6a850710993aeee62c33e004dc6a02cca73a8d55915e344e03cb47d261987a9cb20687f28447e0e1c676585f6aef34b51d26710a3a57865b0c03a1037aaee716c7cf029a2dbc90e2a31401402f293c2b0c72f56f8d2634dbc2790391b4ab3a79496b154557b1b437a35b6d4f5591c3193c9baab88e975bd4ccc8ed03de5c359bcf46dddb68f628d8e49b4e1a68dc3d5d6c0e490bcba9291853a2c2ab03fd31f19ea291a368c7c8f82274e12054b5f480212b5fb07ba1db4ef38bfebe3e0387e340479c509e080cdc0f85e145d1dd4dd6fa118fe6c7d019db3ff65f09ca51030c2b8b4abe07643f2ee49272c989fbf3da39fe38f9110b7adfb017e0391559990363c4a51da5a9adc4f97954f350adf6ea6bf1923fa25a8d603e7d771aeeef43510219ffff0370487cf4df270c0408ddbb9d444e2b6679df4b3cd0ef79320975d55c965f677203bda420e6238a761efc7508d985f2c6dc9dcba4403da703f253396add6d2a0635037bc0f64b4b80ef9af758612021fc94f820eea2433e3be9d05ff4a7552ac015670399fcc0d5adb1e5fb69d68714e8a7a23178f230cf72e41c170f9e0277cb8e447e03758b9b84024c69903cc571b04e78d77ed13ca9c3cfd1ecfadcf243a77a22a5a10332737cbf3cf61ac86dca0bd8b465f8179d668aeaf3d79301b35e85bdaa2a39250355f3bfa8de1ae672b850dc69ea15e7658270ccdfa94afea609d1210ffeacd7fb038957a7fe70523753dfaafdb051384f51db981d4f68d46594040e8c9fb969dd17038e8796861d035eb32dad1a94160c0c254aae7ac09d9cce43d49c252c8566495f03c67e17be0911a4dca0ff1388c792282c42d32f3af59cd8ebf59fbd41abf3f326033489e1e6da695a2aea3b957336c693115f19d56aee10ee61487e4fc9683bd967034683f046e1ed2698b56904f5406ac5493718cc8d37c2b1efbcbd097b09b6db5e034ac849b9405e6879ca89a7b75d13bf979310715623a09b18e9baf45d1a10d9fd033b3b4f658538b56dc287c3a0fb3b3f601d9ce2a23ac231d29a28ad2480a4e36603321ffa2d3fa352d7559035df91e6766c6456d4567a2f4663620f437a4050843a034f91c7fe85a700a304ac526e3a8cf0ea54cc356a048a36807da4f75964a61bf003445dd4ef5bbcf02ffe438b138a723b96bcfe91ff31f6c7d1f25a8c5224254e3703eed285a0768528922e1794b4d5ac6f78a1e7a97210a14d8d60e45af22b6d86520311ebaded46e83b6f92ebd719260fb7599af60cde17ef0e10d288503653261de40372e984db8cd77e9e0c21ce9e656cc10e251e790f9c31753b4ab5e31de4a1a4f403b1d2aff535f91e4637e5ff20be7daaecc55b4d7d651d30b890cabc054c3c5109031700d78d6d87ad2da9d1549dc8edf7b979b832152bca8bf255b224310794c9d6034e5dad861fe23be28575ecb6770ac8924a658518fea8ee2263c74f208ea94c4a03eea673997e5b4fb86508efc47e34467d8af014dc06bf4d2dd11e02b1ce24e31b035fb802516ee146325bd6df182fa7a718b19963173f5d1b484aa314a73119432c00581f0241ed18ca8505bc1e6c8a1e1cd9d5602446a8da9d77ad719dac187a4dcaa7410103df79b4e4801fc944cc982e191e158dcf913c45af4edfa9012466d42c50e9adee037ba59034411560cafeee2285b12617996eb0b5313706a00a5c75c5f766709ace030a1a17ab52cf2752952636ee89a227524be873a26f065d7fe96593c949fdc82b03fe065ab4f20f1f6f14bbf816c5522cd82875a617e0bb525210e27dadb89f366f00581f020bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d48154eb803eb3f501998126bf37bb823646ed3d59d0720219ffff032884dd6d113ca2f452d39307e7255ea1bfeb6ac544be190b2b83dfef2e21720c03e4dbe54dc745a8885cbfa9adef2eecb5e2ec6bc0369abefa719728e43b00365b0219ffff03d7d7161009438e714ab3daaed431bda5357c4e185028d34a39d9b015fff68b87034cd035d219577dca5697c5a924dda8fef339745cb5ec0b3a898f74d7ee9063b70357a372def16f256b8c9e66472044d5f0ba1fbddb7d841cc359b277a96a02bf2003c8b0f438960f9b2ad5ec4664dfb2348ef94878d17a7600e773187d22e966ff4603d44fed98cb3203862e3b96af94595b657a06d496859230cbf18d10f299797818038bb188b5087635e14c06a0504aed03dd000a5be142dc816d8be4ee4a28e9d900032311562585a461ad862712deb73f3771ea33fa509f6985c0bcb4c21d06dc6da3037c7491bcb3b411f2e67cca75b2fab6be9572cf655c66099fdf4ec728e66d903603b537047c669c70f6c2c0386179ed51c0e2bf8fc3e951c9f702de8919afb53517030eb8445512a281ab6d8e1c5581a301d2fcf5d29e15d6c69c4cbdb657419e127703bd3fab9d3f32ef009eda31dc474adba57f0f9ffbfd11401dc10937e27a7019ef0383dd61c51ecfb7eee4b6348978b7173b15c6ba938ad5d7fb1c1576954e9cf16303a7151f4468a2ce44a8c6d7e4093a8a7ed4665608195107b6a918651e8bd1dbfc0219ffff0323818b3e22d29e43aa0507085cf0df6a0866806d12576a092b7801fef7f62b150377f32f608b5a6c4da63acb024266f217c7f242c8fce6621da9ad22643daae3b1036ae1322dcb39c5d0e7889d2c6f2daf14b6f5caed2b8acec7a5fece6a960921c90356477c0dce299da1faf690894fcc9b7260b529c301c66f3c380e148327bde782034cd53969dcc2d934072c78349f0e00d4ed249e35539d593ccf799223ac55c1bc033ba7443655544b5a7bc3192ff111ee67495bab6d25bd98eebad8cc0e9be19f8b03ea8b56744a79192fdc02fe2a6be0ddc6170b77ba1ee1fb4a8d3bd4c227a0dbf60338ae48a377b68b6078e4b12f0c2464366902949265e196f3e3f850603082a46e03055859980cb20e705e906d29b4b76c5fd2e7fa2faf695bf526ff496e08ac7ec503380d2a1d949fc1e8d65ed6e27675b280c19e56588c0a475a3e84e2d5746fca1e03963b8c5a357c173a06873f75afc03b08de88410612adf0968f14bb3116b347bc03f12f4ad2a15040c66a657b4ff857d51e8efebd0bf656be33587bf831bbc03e6e03f0bf16df2257eba7c9d1bf5eeaaac029bc06eaf8d91e3cd7c707bd3e4f6778b003cd444da7e4ddf8b7e817c30e50036c51acb8d804c2a32d899805c7332ca51fab039112e5571c2a29b57fc1fd1ff7e8928009c12babf06fb7a69aa47834b0ce3f8603106aa0f33da74a0a745858af22a54c89657cbb5805b96ef091d0d003a2367a4203ed52ff76db429de4457f1b57d6cf42b60bc705b473ed85324b28f17d94aedd4300581f02499e666f4d996261c350d11dc667b8db6acf22a9e556e845c00f778d6a7544652fd4b300581f02ae3b73a05f22412bb6c50df3ffc27e0878b09b6fb9cbe25ece812b0d402d44654d364f00581f03eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d054af2f898a8680cb52766abe0588ebe6b9bfe3784500581f03d31bfbf4e805bbdb06cdbdd1062995665e82d5a04ab12993611259d5df90446538f80b00581f03224258510639b1ab7ae0994820d224cf729c6e15031d59d2ba935a9874d044653ac05f0219020903a027d800d397fa6c85d5538d50bf803cf17fa02bf38ccdb7c97ae5c3d269813e031db177cc26b3ceac5dbd05f89490d377888c93b2ace14f359700e60f1916316603d6b7bc88d202eda5d12c8e06ab3550200559331ac48739d02891a8869fa7926903ee3a088da00c24c831f2537a1ca676d27fb085461a24bfdb2503628d61e8643d032fbf852284cc3dd2d334f9f2bf2a8100f7c36a2d7aa1fdd7aeca7909ea6727a4031bf5f8d49e029667b3b5d9ce9b5c04962ce7e3e3cb29584e5c4cdb5b47675558033106ae42cf6970af24c0787559af9c8630674142f913a160a00b0e387ba38e3803ecad79a9f196c47b5beccb2e9cb56589876fe878ca015c9442b7e4300222ffc80388619e7cd46b29ef747a169bbf2a4b06188c079703611efdac38e4ca4c7885ac03b33f4cf98c2771a5010ef2d2d013e65a88c23baa3c66579ef54ad831a528019b00581f02ec7e379ef418b872e5fe2a5ac96b55610c6e991a50793e5c8c271477603444653372ab0219ff3f03cc20138f78ce78135afc17acce5a45c7546b7264456ace67c83725f94f0fb6a203f375092be6f840e8a7d54e6df597d720d48b36577b45f4a6c3ec41e490a85f280318ecc8d645640ca49c262595087f4cfdfa9bb618626ea1db2b5059b0afe3505f03156ec42b88e12316a22b4a3e2600b048fa5fd9b21cef6dacd0c3cacd6e01a9d20219ffff03cd14a47f0f937873b317b78b16e93767cf5aab5b0891964941eb57f96d79c91003325c7fed144f07d894cc2aaba968b38c1b19501d24796a431a2b93567a58c7a903f672252c19ff1b6e2a34301d8a592beae9ba002b1e0696f563a6b42136ff1b62030fa1574d3df3005f9f8a8c94a48418316074015cea5e37032b4e03ea91cb3d9303163d06d99567c2abcf924666ff4085a99bd46a8173b59642fd144df1bb581b18037490e7028c8e1b2e5f46d61bd512f45341070a9aff06c38ce53d711c39c7a282037776ff6025b240f1abb9cf6d7e4b1a2eec6b2e1f3591f2de772faee295fdba0a0363d8cf3d00899c5b1a80b1344acc1148b322ea168332fcee40c34a617cb6c71603046a29a9a1817164fe3d9324dff69cdff3ad023d6b536618faac1dacf171d14003f82d7f7bcbb9805cfe067f348af4ded5eea51c1e9db18e8202293789f16bd8f60219ffff03a608973f89bc297259a7e16058ce714d9b6b694762fa8ca489558b97a2e57d3a03bf5121862760cce786a3f36f1ce9dcdc3e2c78385de6f97e94c8673597e566a6031c73d94e200e177215327c021fc2d4b62514567a8742f1bea15619e95928d85803aecc09a18be9fa12b569ec9ccead11507cf382f23cf053df255c8f916cd38ac7035f22b31b0e236d086f2d7de2cf9c75e938748ff095840b2559a4866ca6de61d60375723627be54610d43af6713c7ff237a3760761cd891bed7f70d1ac05429a8aa03438e07526da192622367b1c6e2fa83fdfe94ecb04ba5a64c16a31dbd57937f37039c28a09d634062d60c1692e4d3ef552edbe59be63b09a90d61a02fb4075f81a20366472e70352357ed369840b6a90c136efbeabc9a84d1ba51bc3abcd04dd9476d036251890352e8b327a6b080efb378be375a6a52b8a0c59c2f8411470f8c553ac8032eac87cfcae162d8dcb87feecc9174affb1d16dd7bd7e0d263fb4a86c90a363c03d46268dcb76fada7d4a3ce0ed7b69ab920fe02bfc3035316cf1c38190c8006100399e64137696c6e0b64de1a23f5990829d429b17c05eec931cbe25d3ba80877ae03bdd83ddc8a8ba52dcccafea9839599065131b33ca8586794bc8be96adf3efd5d036f2f262775220c25a047325fea311ea6536458435c36abbd973c102d57fd2f5403353b0cadccb6628941161455186358353197367d9eccb564e1fb9587bb55b1a403d8622e9ad23aaeb88b7043de4b1ae15fc400bbeca0418ebf476a151e537d543c030e13a7351cd43e3e9c706f819e8e0ec9a277e20619520b17127364a5ae85617c03e08713b07cb5163937531c67ba660ee7296b712cbc6c8a3d837fc209059a269503a0c891ec17b64e152fe5b0a87a038d75d3b0d0707849af6ce9c1262467dda17203b74308e06fca967df23f868b699c0c5607a2885755b657d66d2a43fc3f0df5fa03829d2d758b0867caad607240b2dbde4377c429c7658bdc8e00aee9e2d5dd1bff0379273002fe4eccf8b56a894ec1cc9591c27a2c83d9945efab257270e393a05d60327d28741da7de28c8f890faeedcc264d355d7d0cf935ed1f7491527dea7e482e039d5dd4222e4bd0581431de8635c28c5081ad19fe6693847d72d76c876223b846038e675e0d59a8d41a2df454d084540e16d3f17d37109e32a781dadb83a483a6d30372ff69633bc71f56e2880b45bebbbd588e12e3f70a9ac41a8bab3b30811a03c7034780fc10877df16289e4cab48099a253e86c137404fee4349d567b1f37db98e8036f3c70308bdb6575247d86ab3d690acbfb42145a437a6a31998e0acfa2c431ff0317830b768c5f050d9e4abf426e70b648a686fc7acfd203de94506ab2adeeb9de00581f022d68d4bf3e0a4dfcb861279d8cf587cf2bf665e441ab2878cec4d6ee28344465bd74d3039ade9b5b2540cedb292c710b6206c847e108fe726631677c3d798d79f015ddfc039296802487f145ccbb73768e123fb53026305bef1a9b70465691f3a8e738d30e03c238ac6020447f010e979fee2fcbbd40b8820c4c23d678e2b5b09bcd17aa5317037729a33404a129c7dffd87afafbb96c0bc1f6c5729a76208fcf4c3363b366e6c034ea4967e5d9da7c521cb38994a41c87c311d83328932d706dc46f60fdc7393690332d556b7e547d4172683af9caccf72f94060ea666fa55c4bb468a567d1ab580400581f031ba9259ddb4058b027f016060aa3dbf916bed7e9fb7cb0b045a58b450160446534bd5f00581f03ab7733338c2f41dab9a7a702367c1ee47f75bd08d8bd72232fe01fc0b8704465269faf00581f031e743da94875e9f07390642466d1e18db6b4f557fec87611acdff7f82cd044653deda700581f03c57bf5711f2d9905b2623a7e7fb1e51e229cf1c3db2356fdf21a126cf7404465cae62702194510030754ac185c0b550c7b3925de0f1669b98d60672c0deb90f35d8c73ec936e429003fa6fa9c5c35bbc45f63114de8d6ceeca55ae5ba573d27ca0968dd0bcc86ee48c0318666ba87677eb08c81112d47a48e07cdb312c808a7832d7c33d16d90de110ab0313c1a676b8caa4847d9eb98e3520ef6b50377fdc9c19e79e997dd8d598dc40ab0219b67f0219ffff0219ffff0345a54150445a6e7eba0e6a4b3228b1f6d65ff451dd74ccfe2fd4661f5e5d1e8903c8c2b6b48a7db977f6db21c35b7bcba30d8e76761790bb8ceab99eca3bf8d43b031609eee7f4616db0f180f955bcba9d35a1eda80ac36b84a57d2c5788e63af6ee03833b83a99526e0d344f65644a5b28a7904be24b0a10526e1992c9cea8098359b038569b09f1b4af823dcbfcdb29e494af1512d24a5ce4b67cd44b7c9a08f0ddb39030edd2ed7afeb3ba29e854abb72d7f6ad69e72c6bd3603606b26c41026494f04503e9624da73a4c8a7c3ee7ea0295323fbf39de9958d2f18b5b855e325a9f36aad6036deda459948d94c2975354684db6906ab5b6bd0a15a66c515f3c5a2e8d12391d03824b729f2f18a003e6194351a50e3e9ff8361b16f31c8153ae3a10ca3bbf3e6b03ea95a1a70d29f64be82fc207d93decfb28bc798e4ce71907a2787306920c76870348d78436734358b02cb3bb28904eff47ca451ae5bb4f682f7420109d405a639c03028480a2fe7ea84c395c4d5f01e8861821acae742015c237d71a1961a0e75a2203a75067e68a1b479168cca62bb3975beebaa140dc55afbde5be931e9492be3fc40394e3b45db3ffeae65e2e3174a1a4d43f8ffb4466fad29f81b179ef30595d05ed03c96b2174a4bce224873e5a31752669729317b059877eeb130fd34c384e75313c036b3e4dfa9808a8ba5b9f6bc77e6b27e598b12d5050ab1c4b59e234cbcdb6e776036c6ae6cf444ba4d8caa7e76aaf7bd45728e89a70de844c5d5bbb99ce80d92a30035efb63b7ac934bd550b7cbbb5402fcf50c2c0905e8764169eb3f83ef43b52b26038d27bb65c5f607ec6bcf455cc4d21e2eb53baac149e83c4120954e2184ea10e003bbc1428ec5edfdbca297e4e4d3f5d11c5579cdf17559f41efc672c3d88183d3e03308aa65ac543ae13c3d169c3fe7cd9917925403eb35f1c2d17c511bdb1451ac200581f022a60eeb7d33a7a7ae3167d2c473649ccaafa109b867918142fe1772e41a3446547584b03978f673f3a21b672f4341e96c347f4eaf305a881f4249a96d7e9d447b37429e20318adf56a93951a3a0f503de46b61aa75efc8ff11c75b3168b4d407a1cf8cb5fc03de3ad500b0da2bec8f6b3ee04390c9cb47b019df45b84ceea908b00ef5bc638800581f02a23b837d385eabb1c1e2b537022da174bb5e4e9f8856748e508214b0cb8c446596816f031c5028fa42a911d1965933bb53e3f55ca8c0a5632dd0aba2caee47fd31aafe6500581f026d3da8d980d91ede4c2f77ca4858ff96f88cf2d5da5e0899e91eefbf663c41010339d077d24a4d2ee0472fd37c28dd9f7e42337ea453555b46aa6e7b40938c50f700581f02dec36049c9a48bc857fb548f9a6706973492932c66348dc4c88fd0a700af44659bb17f039a62cec55b59325890e927710a39b1ee5b6ecbef5d3c5c04b58bdd2f13e36c5b03b36983d023b408f12d2ba3598c13009f2bda9ab153dc957b8e7f9de16d7b0ac100581f03e4834f0bc9e464b25e4d9ab01dacc6b70abdef54208550070986f2e3734044659c2af300581f0319cbd505cfb23a8f4e86f83e89a511d269cd6f5d398f68076c6efb4bb2c0446555b27f00581f0336d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fb0548fa3b4570b4c96f8036c13b64971ba65867eeb4800581f03c3c0c2a26b446e1b40907cf5dd75e19ce05e9a6580bd741b6d11bde82ee04465b373270219814203b1e5ca0b06ca086705f0df96f6c8a685d2206a6ba543a91adfd6db7526d4606d0219dffb03443ab2ac3827de0b02923a1773bd90fbac4d32edfda81f1e948c4fc217e68af403ebf1e0874ca5cf720903f0fe9059858906b0eb52a5586a957147faec383d86a90374a14baf30d913ef11cb8f7aef50ea037e145e78c5fcf5f2a232e733d6f985330219ffff033ff0d079ec895de32ce5503a7f4c111f069127e4b4d4fd21b4e3aa0326d9c27e031344a1fab1b049340390c3f9bb435810171dc980561772e49992a08674a72b0603f69a3e52efa7f77eed875c2aa520d87fc39a7c106fe29a3d60ce00210d9f850c03edd542ccb8d33d09bd9352f66fd0628cade14f24bf60f1196ecb5b3ecdba8dcc037f6b616f9c5debc935a2592364718f9b932d917e446f7479111898259a9af38003575289df9357453bf379895eaf3e1fd3aca88f7ae7b568a62c0199c72fa37f990381ce580a22eb21822f167ab77a9f1ac059e5e3239054965c84cfc8f38839cce503d245a32aa802f12faa5037e2d52e79e0f436c8a86e40000bcbb850103aa38d890219ffff03d92d831c5339ea3754e302eb9491e97626e559157eaf3e14dfdbdaa913815cc60331087ba1e3ed42923cbb2d86209590464237062ff004e572fe4b773e03fcea670342239b3af76097d35ae969b4c0ab624df4cb3f70e992644ac730df835596c06703b5fcf70f53fb2cd8333a6032eda4b07df0ee6c084921339e6aa64750e1272e5e030119029a4bf9dcb43fc643010c382fc7b0ee0094ea82ce1f6c2d1bfe8bb01a7503da1a316127af952265747efd506095df09514551eacfabcf66baf6b68f84d03d03cbd052e59fb82ad8b8fde784fa7f597c5dbce46d0de0c95e4dd0eba88b5aab9b03e0771eb0af2f7abd86351708da44bd669696d43c81e9b7ece797a4be8391322803d99e0be6a3b42383dfcbc3f7ff48d24864140ae515fe1502d2880aebde79c9ab03aa1adcb35ec33c23b3f5185077fe9b9d508680cf9ae0fd1d0c30498c2eca66d10332e4645637b3ffc8df25e7fbc7aff44370219b00cac3e8973f83223f4e22decf032e15ab49c0678143776f699c042845ce68b03de1557d2558a72827ff3a3ed35d03285625134491420e04f2d40ad30f8a019e9ae9bac43912090ce26794d379226503565bdf1e56633f3851add875db401af7dee4980795ba6dd0315ea58a200c3b8b03f122848378fe8949baeed9bd643c0e4b84647a9b7f0103528e6d794911369351032374e3416a5ba325dbceb924ecdc6ac3d2297625ee43dc773a26d4246a7a4e56039cf48625f5c789d2d8109aea5f411019418e6149f493149e3913575aa561b38b033ee47fbceb4d2d993c49f332ea63a9024f789a321b9649b036f5e4af086c2356031c13f751ebfd76c24b7da05198dcc0be69ad874eff40619b7badab33ca3a978400581f02f4a5498eacce3071625b2ef791d6f4900c0943ffd8bce5b5b95c8675e65e4465442b3f0300c28b5823f3bc2797d60353d99108e8d50b899149540382790e8813b999d0ec03eb58fa08be5cbc199ad36045225e69c029931bf4a4408610691692c6a6c1e9230332957339519528eb69e73c90d449506edaa8d0144c4370a264dee9446cf5b7d600581f02fbf11b8472d91261a45b35d9a4b1356d454e4293c8d45f5e76a111e373db410100581f03c24496cfdf0e3e91d29727eaa56c3709e12ad56c1f04c168f0eea2e3e1204465c9c05700581f03c584ef24abf22e037005c2f14de232428d34d8df0574d9685bb14d0e23d0446546c1d3021906000361f33d8156d70d2cfd28f0cec8b9692d783308d59ecfa1ba86450f0a1b6795fa0342b73127424b02e42f2f33120667a466430b60e68c3e2ff2bc9ddc4b026cad68034c5ff06e86ad1aa509b3b8cf46456d57946241c056d27e05f097516566b3abe8032ac1fb81e9550be746faa56995ec915833b821b4f3712c099985a2910d100a180141000348bdbef503bbf58f238037c29b25b1d09af2d88bfa9d887e42f7b001aa47118200581f02d25e5f3a382c49a5fe51723b0e54e8c7ea44518819c41870b09b255b817a4465b08c5300581f02dbb1cc4e070fdb75d27274591e39da4741504098faee017b64916f2ff9b141010219fff703b52a4cb26cc0745c9091a9627765a8f143585d4c00831d3cb6d037edbef5137a03377200fb9d35529027f61c23caa6623dc9bce83f10e3ee61bf86f0c94d3cfa0c03c9d45da9572a7b5965749b3d20856c6f5781b453a1ccbc9ef7b596670fee14f4034baa12c55049cb751752fd20dc3cbc7aab380a6079aff286516888843f453158032a0347f55c0b64bff78241a0966418447287555df013b72c742c7e3479bddb390219ffff0376a286030c560a8458604a88929dc91bfaafeb0608066423a3a6d90e9366f8b903fe3dd9f5771da2e8e4ca603f256de5ed245fee81c84a1937f80fa943bb2209430352c4585a34241ffb27f82c8c7a938259aa8d8b629bd579943732adbf02001cb80304e8ff161585af2f169388afcee366eda70324b14653d3d72bacc7a7ec4e8f63035e2032eed88c0c3794a1497ec22e5677ef80ae483c22aab3192f37d81ac39cdd039278ae0aac45501a7643e1cbc874ea5ad1a2d388607bfb36f251f8ebf89f1e2d03d2cc766ef76949acb83b35ebca185fd8b6be7b3638915c0a0dbe29a9d83cf17a03e802929a26de8d3ade2480e1d32e1c1c5b8a68529594e85043d4cee53e2e1eae0219ffff03bda58d2c7ca1b7931d16d84a324fabe9304094f8903aad7b24bf9904d596e9af03c791b2b6944123c75c911c537c6156f0e2aee1a0ead24162bc16be2a12c9daf9030e46b74fddd3899f1fe45e946b86697e02e1b9722012a4c5acbc2f786ef1979a03e846e6f217cc474b309cf9d33de89a0fbf94a8cf9c1a3765cbe2b5019171769303801579294ba9c89169fed2916bdd051387dc3a0b94c527720576bc35e04967bf030242f8df0fe3553bc0f52e6955142941791cd1007198c28497b8ce89c631760603ed138ef018a0d5640e19836727ac0275008d7db0fceeeec51501cbf6924ba32403b443e7cbfba7ec840581603135a113ec7b926c4df2e3aa13ac911865b002504c03832b04b738b97b9ab241b063d36a633475bfe05a2d49991b2f7935eda30d4c4203c32c245c4360613a1315bcbae7b100182e9620b5c9497efb0c9287c9783eaca603f6da48cf36cc7d55fad0b7146878f1053a04a2289d3abf858bdd677deadbc4d703f7cfe775875a335e3b2873a5a4c92aa33b6f6e33c7e31b8aade67029bd5f5eee03e9bfc53f0deed2b98e4924485792a4bb1969afc4653e8b1d7e3aff8af95920ad031a23a1d45898faf2b2bf95affe90e26bd903dfd511b2a1270faadd9cff707d8c03cd19d6e50f353203b715a085e76ff3bf1ffe884d0622cb1e6cd2ea1026e94bc1039c912b0a5b24437f3658608e932fa63b0fece454752954b54759a002a4cc0977031c0c88731b87a6ae6abe79f9affe5663db1149c4373b8c5d7275f5cd9e454ed403ea3f5a858364f00e1912314f1bd877dbcdcc26c463e4b721f805dd3635346f110306fc405933f3503f66d53f111550ef455089c21b48ea7153780c9258fa5ce67903defc36b1e7ad05ec9213ae5ea7905070ef11f81491627c0289602732099fe61d039ef7bd6ca71d45304ce7e50ae675200611406511910b08d7aaba96a4622eb2ec032d18d669c1e9a2eb6769fee3d28ac2be5f356ba867eea0b52e5ac69824ec081d031f612f0354b74326fb81edf858b7e4603faf85fd403b6647dac8381ab5d03aa70381015c7b09358f647568be6c99ef29cd8343ccd0f2b29a4791b6a54155e89f7300581f030666b09f06f1142b167057c7b8476818d3370b03ba1cfcd4f7b16721fbd0410100581f03e9a0d417d304ed156bb57f14bec2afe49c04705c477e8e4c2e14598ddfe0446574e0b300581f038964decfa5268315371c85e27e8c1816d6a9d4b02e49e7d5cff6bb1e54e04465914f9700581f039d6bb121b64df6355cb0fcad0de9a0bb45d5368f6a0859623ae8c6d69f30410100581f032af2cfc251225e1968fd6ca21e4044f129bffa95bac3503be8bdb30a3670540d7e906bd9cafa154b048cfa766cc1e54e39af9b00581f03f89049208eb6930ed75b6aff366505b1ad6bb9e9e1ca2202ddb45d478970410100581f0313337148e3f5daf4bfb50289e4d9a0edb34fdf0d93f05cc58899369f6a104465ad0fa3021970b4035d564c4a771fca907148f4468ee1301654fc7c2dd1351585d83d65dee523594d0219ffff03d7fdbda8d9e04ccc27e72b80e68f8a599afe0df3f8aadab0a0a9b03e5e900f38033088f3fa99bd4cb2230ad7b0bcdf4012d6657c13983a8300d05373ef6f435ecd039e15d5ba803ae31abf7c17fcb287d69f4767103048e269fb8904434e880efb4f03770210789b87e52ec0e75bf296117f8891725fd31d9aff652e917f3cb4c630d403b0783c7bbd66b3ff33a39a47bf55f583e491287f0ec7f004294f6e1fcd689302034ffcad5d785b80217d9aeacd2b7df7e066d34b3536da146a6e9fff8d11a8d88c035504c4f5860f2a2175908699a181b33976e10eec7e74603432f9ff67b8effba70219ffff03e16484d046ea3657e604744aff2b55a7c91077c82b5bf1599e6c626fcc601deb030291cd7da108429c72bde00b54be471c0b627eb6fd287a6f16d243bed7234c2103e3a7c95b171943bffecef8cec59ad7d6a7827c602d4f3259263b30ad317b2716035ec10e8deff87253b33e8699ce28d3b11608717c8f2254661320faf5403d62d50356da27d879380e297f54e7b125a363f0a59251c3666e758794e15528c1306e7603d8b2a61fbe491b1bf00be07c5508d2d8db91fe5a7fbfdb2f4ada7484d00d73fe03b3d4b9eb568ecffd8e0122e7f0885794ecbbfc19e30e7ebf8489e273c167bd3003db28f505736ef8147c2edabcadeb13d24655dd4af07a4c6189b128d68d593e970313fa405a6353e2ce1bb217c6b3f5ee44aeecd94778abbe5851033a5c335f5a28030e307c8ac0d44e0467e80a591f554ec7cc74942c501df38be44edfac9597e83d036d8820431b9553ae2c2ab409b4e8f425454f4f34278fd33ecd8ff6037804c90d0321e6fd6a3088fc5386622cef8e0a09350dec81c43018661031576f9bb57a320d03ac6a7a0b1dba11d8e576b2ccd00ecdee401644333515f53b40c318ad888cc29303f51c3352e9a0d5a97de18686a5c3be94e93610ff24f1edb88871a88bcf934da3031fd99f6f73d8c1d233902d71fd9aa3e8bd0835cc576989ab738572fcf3ed3ac40219ffff036b1f9868419993ae19f5b75f655b389b57e703a69bbc25eb86070a560e74b2fa0219ffff05581d02f54a79ac4d4c234c944365ce341f9f959038aeb6b8acafd1b18a2a840f014a03b09dae9862bb99c8ff19089e05581d0286729529c620a9a42947d7fe5306e0cfe92ccef52db87dfbcd91e1380c07467966dfe5bb80021908800330deea36cbbc0c7494cc464022a43b9180c29c54be96dd3efd4a8e5663c3d39303db79b39cf5358e93333235f43d313939677275db1db5d8f9f9f2659a51955cdc0605581e03aa257be74be5a3009db3107407a3e2d3fc8b8cd24507b7050b9c6f020007011bffffffffffffffff03c2c1c98a181af426699c528dc6444bc79000475c357b63f8eb385efd657cbc6b01410e0333b9e9904b660a01f6535369c4535c723e7964544b53a035f0cbffd0927c4dce02192efe034b0e436cdbccfa75ed5ea1c42db2bb80cbe4ed8984c3476b0aef607cf0ebf49203db38a17046a0dbb054913d3e5b55b1599078c213dc08af9e2d8b52fbeef3d7e30219ffff03fef89da0fa4d5de57e5e5743bc3f59154744f6106570def2766fd019b38ecedd03e7efbcfd6b1952d86e5981365459d97e8ccef826744b10fe437425cf3a298eae03e73f5d7420d5db7d625e2ff7c2d853e634b03330f186e645d4d2cfc6b34481640368f8e99846ad5a3867e8442245d4bc61542e683c3908aeec01c8f2ab5c4bb38903898adf45db69296760c88c6560913c1f80947705aa92dabd32e96f1edcc6086803240c3bf0055ffa8b6bcaac9a870fdf9abe789060902b1e65862631315d86d50c038736c8bea55f18d035fa164b58c1d0d9be9d55511912b85e212651b5e9b12e1a0219ffff037e7ff4788c19159bba5e644022eedea143f3185ae5ffc6603c885828ad97446b03632daa3d6d366ed0e3e4ff743bdd4907e35b4609db452d1f9fe8c0ae1374e489034bc1b5c967b23e6cdb557a8c5f33d0684c81e88cc81282d003f92e9f81a7a15903abd8fbf0ba72f9ba749f8cc99273816b17d24fb83eb508e2a7df755c36ea61930219ffff03e4fd6359937cdca552d1c70c9d18b5127328b328d544ce8244ad3fe838646a8e03556b777eb2c41131ba0edd906736105ee028c678983b6201631d18aeca524cc603db8f116dc7254aa46ff5a384bbc536b139be2d96cfc0e8baab6f00b133e456f703f2b9d2402fc68805b49df84a89d65175ad313f24c204f62172f9e0dc90f5bac603b16d7de895bb84fc7ad36ad3a99f67c9588b34fd35cb5d8263ff2cb01757e13703fa87169c5501e883df6f8a4b74b204951fa1220f14bc1119d89ca08050aed6be038b9f4ff1a3d74c6aadef828343a61e61e251d732478dfe065f0fc93c93902a980359b5f5b853bba23a1dae9ead2fe275d17eb388f0cc2c9b7ece31ca58d735b8e803af2c765a3decaab2d4ce5b9b7813a2bf9a35a245b7a389ad3caea9952a3d1b5803eb5d02c452635210b94ae6c44878afecda1b99dc590e5c97216706b595c71772037b5f373dad446be569b5a5c7213427a34607c816a6c12c27c008b138240aa2d5033cf6b0ae7fd0b44998758cca25ee9d6b5ff976f72c9ba47f4220ec12d23b6eac0219ffff034abcc67eaf12cd8050c2d2f1766838c879cd52c7d76bcb04592497491f0f2b7103a979e76b2c99185f2e5ad82d0cd3db744fe61712cb3ddb8a05490531a4a0f2a203fcb488bf2d2e453dcdefcb53bc05ab4ae2efd852c6c1f714e0b0f34a722b3332036b4302f275610337111c7f052f3731b175e5fc334c7be928dbf9ce9e9ba0909003b5fadec03d5134149fb210ffd65fa3e0954d3fbf5c0f64ab9fc17c8ae142f8a10367308ca4d04415c70462ca4dc2c50b3693128129dc9d5cfc294d09e77d6da91503b762aecc8429259c8b9252c19e2efae33d4b0a168f87e2751ac0781939063c51037566aa9d466a78ad9a4424505287cd4091ac5469fe1065dff7cc5d068e92446303f17dac6be9bbe65cfdd26ccd9931549382fd6b0fa51b70b2a8707301192a51c70376e819b3939c1209f43412dda9985d514bfe413be98c5574a0bb8d7112fb7ff103b578f6e16692e2388c92f05423e080e6a8406a7414b8bb586cf57364a1236eb90374cf50c3c626a748e1fb5d8dfc146a63a878a12129f6545c93d02e44e5dc8a3203340c8334b786f6e40635c4a353a064a3142d5c069b893af662e199634bb7184203bf48de3be1b2eb469e0b84ef4fa5e9787a0fd700c5659295b7f6f3708d3a54e5033a0e63b7aa4486c052e38d7a1445f98e12aa0367f38d909cde02ae46dd1f8f91034b260666db5d5f1066fd9e46cea25e771c0c9dcf4e96fcc8e4f1a85e9c855e610369aa65cee9bfeb6a41a2e0b9dbb9c6faf4fef290a8cf9c9044986593bc57390c03779ce951bfa5e7c336ff8b2bcebbffc152de44be8832c150da7efd9642dfa3840396a1117f5ac74dff07ce59e13110f5d2707d52bc88ba9f21bf57ace1cebf8e5503cf10880a8237da5984e26ac1a13377b42533adad704fa58be34df073b8ab5b7a03ec2a8393c090f3b9d4fece02cc1182e017d3fdeb3466c6caf6f5bb1c3c544cc203394d0c93ee4c7f60a981ddd4a543929ccf5cc43de72232cd41469ab60e4f80a2038b8cdcff427a10ae71a25473caf0e62a0e64c89bc0547b3e525e8e19eb27b74403198a733388b4e717fb2144765327c14dc9efaacd796492e3560ca2c322964acb03490937be980a66cb2770c50d18d274c8da294b5016ab752603d81db7f27ad9dd031227c93345cfc7fefc7f5f7682b284f0e4e3d30a26c49c33b4a61629b9ed79c1038fe20b658d1a9c5a9203542e8c8db4bfaf8f3814c38912cdc93813f4e89681d1039c6e92aceb6ceb359364f3f11469a0ee5df44d91b0a98997078dead898180abf05581e038bb375964889e026554ba3015a3b4606ef77ce014fb42a86f80eaf21d00c034801444809d36717d504590981608060405234801561001057600080fd5b50600436106100f55760003560e01c806354823e6611610097578063873fd08911610066578063873fd089146102b7578063a832c3ae14610300578063d0087d6114610313578063d8a4e5af1461032657600080fd5b806354823e66146102415780635ec6a8df146102615780638129fc1c1461028c578063828622751461029457600080fd5b8063366b2b69116100d3578063366b2b6914610169578063422815841461018c5780634e04886d1461019f578063524232f6146101c257600080fd5b806307663706146100fa5780632b27e93b1461010f57806330b9477014610146575b600080fd5b61010d610108366004610880565b610339565b005b61013361011d3660046108a2565b6000908152600160208190526040909120015490565b6040519081526020015b60405180910390f35b6101336101543660046108a2565b60009081526001602052604090206002015490565b6101336101773660046108a2565b60009081526001602052604090206005015490565b61010d61019a3660046108bb565b610409565b6101336101ad3660046108a2565b60009081526001602052604090206004015490565b61020c6101d03660046108a2565b60016020819052600091825260409091208054918101546002820154600383015460048401546005850154600690950154939492939192909187565b604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e00161013d565b61013361024f3660046108a2565b60009081526001602052604090205490565b600354610274906001600160a01b031681565b6040516001600160a01b03909116815260200161013d565b61010d6105a7565b6101336102a23660046108a2565b60009081526001602052604090206003015490565b6102f06102c53660046108f6565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b604051901515815260200161013d565b61010d61030e3660046108f6565b6106b0565b61010d6103213660046108a2565b610740565b61010d6103343660046108a2565b6107e9565b6003546001600160a01b0316156103a25760405162461bcd60e51b815260206004820152602260248201527f726f6c6c75704164647265737320616c726561647920696e697469616c697a65604482015261321760f11b60648201526084015b60405180910390fd5b6001600160a01b0381166103e75760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610399565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b0316331461044957600354604051630e4cf1bf60e21b81523360048201526001600160a01b039091166024820152604401610399565b6000828152600160209081526040808320600290925290912060068201548061047857600683018690556104c0565b8086146104c05760405162461bcd60e51b8152602060048201526016602482015275086d0d2d8c892dcc4def0a6d2f4ca9ad2e6dac2e8c6d60531b6044820152606401610399565b600087815260018301602052604090205460ff161561051a5760405162461bcd60e51b81526020600482015260166024820152755369626c696e6753746174654861736845786973747360501b6044820152606401610399565b506000868152600191820160209081526040808320805460ff191685179055805160e081018252988952888201978852888101968752606089019586524360808a0190815260a08a0184815260c08b018581529b85529285905292209751885595519187019190915592516002860155505160038401555160048301555160058201559051600690910155565b600054610100900460ff16158080156105c75750600054600160ff909116105b806105e15750303b1580156105e1575060005460ff166001145b6106445760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610399565b6000805460ff191660011790558015610667576000805461ff0019166101001790555b80156106ad576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6003546001600160a01b031633146106f057600354604051630e4cf1bf60e21b81523360048201526001600160a01b039091166024820152604401610399565b6000828152600160208181526040808420600283528185206001600160a01b03871686529092528320805460ff1916909217909155600581018054919261073683610922565b9190505550505050565b6003546001600160a01b0316331461078057600354604051630e4cf1bf60e21b81523360048201526001600160a01b039091166024820152604401610399565b6000908152600160208181526040808420805460028083018054888555848801899055908890556003840188905560048401889055600584018890556006938401889055875283872090920186905590835281852090855290920190529020805460ff19169055565b6003546001600160a01b0316331461082957600354604051630e4cf1bf60e21b81523360048201526001600160a01b039091166024820152604401610399565b600090815260016020819052604082208281559081018290556002810182905560038101829055600481018290556005810182905560060155565b80356001600160a01b038116811461087b57600080fd5b919050565b60006020828403121561089257600080fd5b61089b82610864565b9392505050565b6000602082840312156108b457600080fd5b5035919050565b600080600080600060a086880312156108d357600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000806040838503121561090957600080fd5b8235915061091960208401610864565b90509250929050565b600060001982141561094457634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220a150566bf21c920790adc62952b4cfcc82068ec5fe990be17f7397ad067e2c9764736f6c6343000809003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341ff05581d032181d8ab113d125522e31e7824cce10fe4b0a34c9d7c9ffd6e9b3fa0070119098105581d03f12decdaa39602ad4d1b48fb36c0e84d16e59f36e3be423e8a70a4500c04461a610d5ca0200219a00001410303e7759b915176a44a9579c4daa501f5f4009f2d788cfc60caf06ba8b87e80e58203f1b574431f3838d9cdff6e701afd5a058652dab5ae5523288a83d5fad7696139035d1e21f700a49be24991d5b20b17b5bd6c9f9a8827fdcdd22ee081f8bbd1bb9005581e035885fb5bcddf061d18afbd62ea7bf7f161688455518509b5e369983fb007011bffffffffffffffff03a9cd017922bd64ad659c22de710af2fc8751b36ba110a2336164b190417474dc031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e034839d65521920035347e7920ab558fb9bbad95853a9eb5160d19b04c8007011bffffffffffffffff05581e03ce4739f1746669c0be2c2201885bbe9747f6e0f6b9efebaed426660af00c034621969a2b5ddd05581e03bed97a14f1215870cdff4a916237730947453c361c1eeb44417d85f670040705581e034d29926d35cbad9a608c2b0892f1553553191a6237d54a5b1f71e827900403021951f903e617f2e2a118416a4da41e0ef450c74ad8e18da3c45214a44730ba6a40f05ea1039632a58b204532b586108b4ef7dd0bf696c50f0e26ac1db1351fb3cc232d8bf103ad4dbbe9a659bd844888f60f734cb5b8e6932c9ab49edbba5281fcc89063917a03f4f8ae032e89eb16875c26e94d1be69e6d3b4eea7365ca80d3f452f76810d3a8031f252d6c6437af5213cb9c94c9bf266b0183a62ae09c61c3fe5c2a1300587a46035ddb1d6d44b8b2745b0bf450efbc07833f6f4777c68b82eea8fdc5b427f792b3039e5202ab3ec33523e33dda232d9120cdb2f15d08d60fdbb4ffe51398b71097410219ffff033b4ce528bf2aea214f069f86a4098f9ebe1849a3720ceb89914c2c6d5cc9a0ed03e6bcf5c164ed61233f4a2a5581d666811f3ce84dedfeaa9066dab7adfa7af0d40219ffff03c6290273038dcf5ee2e841ab22ff56ff8924032697ebcd884d50d1b8043c9d2e03a56a321a33013e98f56685ce066b9d689875131a012c135b37dd727396a5a27e032da0230a42826cff382e6e85dfe21be2451d687c1fb6916f5816db0e7495bc59039d63500657ff978f0ad45b8d03dc45d308e74b79c314e174fcfabbbd1d63856503a27553aba7560e02e9a0d3529bc6737adf3a9f068f9826bb708f0647fe82748e031d5f550b6d4d2a66840a537f7e50dd967e6708ec7b8e88930aee11210943f9f703c4d3daec3a9f3e400ffb624c037618e8d126ad458fc8be38a2dcb58d25a21f280356b62cb4848bcaff1903a75b2504d99fe1e11437538bffbe3f1f46623e2d63370219ffff03472d47a298b049fcf893ea9914c905352d965e9d41ae787188ebe7827d010a4603239c8c4d9b5d14711b31573ff019c4dc9d5fbb300fa14bd7b73e306c1160e9cd03e58d15db62068bccabdbabca9559ce0500469d03c58539316bd84f37892a083c03d47b820ee5d2374cacbb847517e0f340370d83bcd05ec3517016091737263db7032ff54da8bd0dfd50a76582f4708a5e38dad0f630899fc97472daf08438c18629031a9c7b8fa62b61cacbe075856dde59603db97dbbcc7288130963edc334f5a703037e87c3801126722d304844b2db562ad06b21a5aa95bd3f1f4f4a94c1ff18e55b03f4f3ae8800d3555ebd793cf578fe44b4db4a828becf7f765c7e49d0dc3343a5203bf81903b8c60a3b9d278ab4ce1904fb000e8f19d6eb0a4ec1126a8ed27b4f2110335c8e6e885f85583180a63173ca615fba17670e5c4680b42c251a987ec4a708f034c07ae938fdc9c16bd047fce7bb2b063adf25811abd2aaebad542b174e68663903ad007bcf3c9d678ce2521ce5670f5e63373136bcbc3b697c9a85c864a4fe2503036c6b87beb78281201e7e84e730d7a1cc6941df144445d0346989259f1fc93159038ebbbef3b967032e7243b124ac57a0c23be4948506d7d654dec2c69464974229035765c9f1a4d9caf0650efe0c57e869554235704c6374028126c12c1d05e1ba3603722bab62e16d2f3f4ff2fc54fea9e0f7d8f640c0a18ecbc9580ba9d796d9497d03d802a8b9bfa537f0d55f2c30fa318e05a0d953e6bea26b8f749fc8c6b278ed9c03ffe74c1634b015a3100c28d2eb7f26c81add98e8ef0e788057d25125c0c6586803b9de27a951e9b7f021520572362268574e0c8248ce910e7608412d9935d4386103c29d26b8d9ee17ce5062f2072b5d3146322c1b80b5ab3f6de65e07c73a7bf8a1035f74c809eea816ba72a0dc98e75ba998d915b10d70ee521000572686fba5955903f60ebcef3c386d89394fd3c8edd84357543237b6ff7faaf5ce6dfa081168554e03ec7917fc0841cc06940a240c07a0477fa0c785558d1a55c9a953dfc3d802edc00329dfe65c4dcce35767fd46c000bcb2720de66433d8cf3320b8c0539dc17db81403050504b32d3ec5d2d91e0408181c2b60a0f2906077269d65423dbb92f0341611035997e144d23c34771d74f3031d12781d1653c03552f8a29f47aae2413f86656d0399c5b197d953328ae122635af20d4ef99606f26d77b59e6663623f9d27ba79f103db4a481aea80eb4141846a1767c62c3c070ba6930573f4d0e1c58021aa63633203255661dbe32659c6a734205e95e675766068387514d3b775ebd1aa29a3edc7e303fc16faa01297dc35f61dac9c64c49c7ad0c1aadda63ed76544cd52d42f5a0353033ff5538d63f3872949d16f02b139289a57999670ea71304815913d42b8c6484805581e03277d5e8e7dc2c98bbb48a1671bdac21c5097b66faa61c3606048def750040205581e034a3b2eb603fd5b402cd3f70e14e2985b5168de28532ceb90a9670677000c183f481793d2ba3f686edc036f48bcc9e9dfcaf3548693a64496916d487aa0369b21f3747fd0d67154e4db7705581d029ce9c007930120e5835c3a6c70a76f2c452b17719f86457a3f35a933040c05581d02ce3ad57cabcfd2355ee6b5d8c77d69ffe242f94ced2f03278890ebb90c1909c348c4c5c46584747b4b03a7e48f0d73eaf7c47528d6ab59ffae7b4aec13c5eb888b7359f014521767c84803f4894f5d93a9fad81ddc3c915bba04e8b24b153184b4a38622d4e353288b537905581d021d0fe88af4c768d99d0894801e6f3e717b409aa5b097a0e962d6427607011bffffffffffffffff0219a20005581e031d4ad982841298afa8b74f6513bf92b36a1e3a0de28fd38194aab113f00401030317f8a1c47a7b63e7aa5150e788841b54a8410f9737aa54c729d4c2aeda09cf031adee6149f5c3a73d0e75d99f15dd40ce24c542803290999630f5f6842113923033980451255e493e58008161f3645447b7f50756ea57a9af29b3dae54da936f0d031d4510593fa092258548b30d70f66adfbe48cf89137596a4314c88961c34663d05581e034e41cf8577f4c6e63b139e0a2e9f5c6650a50e677ffa9e3ec857a6506007011bffffffffffffffff05581e031a6ceafb63495f71414ae2f4a27645b53cfa1e50375bfd4c2cd416cac008479b16bc056004c805581e03f9f7ea46c9f20102092c15c9c4a511017d68cc70ec33f6124ca0c1d58004010219bed903d28429dee85b8869dfa60b147d4b292ec92c779392928b6d3812489acb21bb2403f64168c01d182b87cd79f8a0fab7e45736a5a86cca9066426e87a344bab69a1e0354b6f25948fcf39c4fd13dd4ca1781915249b4d7649be8b2088954dfb0dea1a3030ddebfb6625e1ae528b98896a305b95e84d89992e4e1c28557e953acd4d7e24803eae66796bf51874321086b66556e7a35a69b0b8826b814bb06f0dda0e5c6e14f037e9bc5e68e831881a97836371520db3a2582f9dc35291e4d597a8313bcc8b7cc03a8e6349e002fc91ff9691b17d511f582fe4f7bcb72296735a0bd62120f2241790314f71e27525674ca24c05b317cc9999da53dfccbe4b79ee7ccfe0fafab5274600219ffff03e98e8b2ecab154dfe7dffa02e88d881fc9260b9820f2851eb62fdbe4b977d6170359528dea1e7da4ac3fe1bd48908ea5bda3fb9314ce590eae69000294a24e3a7d0219ffff03cea9a36d813c9dbc7eb4e9739b3f5d6b6f12550de35c484f8f4d286ca5107d5303735fc0aeb5f0f6aac56fbd147717f6a3db14a6bb487fcba42f2810f54dae091d039f82ef05da8f93bf8b74e075a7e0efa172b2fd076e8c2f76e4b8622bf3f8d88203d74f8d59ab265efc175aca6b1eb450b37b782b1075d1b93ee33075c8b320198703e4f82ecb2faf321e7c3bedede98dcbb8c17d7a3fdb598c47a0145e479b0f9e290219ffff03c743796eab4d588cd6a342137c4016a5840066d5ae4828c2089669a6a897f7aa03aeea73ac9d6e3e0f91cb4437afc360099321c82f41867663a500d8dd6d6f1e4703cd85567090804ceae1818317f4832ac11258af58fca64a6950223bc97112a95d03092cf7f37fd5d28c9f9d634096ffbf16bb33409e8399a8678d6db186a2cddcf0037c83df59e9c662bd182c1b612095680fc995aa59d7bf142c3015c8e6a0886dbf03c60806b96b432ccaba55585d0ff2f55efe39d7a57b92326835ba9f62319920d303867ad68f369f0065a92113a7a81b49a2cd38447011d6811c1bf3869136e2356003c033c25f17b620d01a24ec522bac6208509ff40b19b6d4204ee7888736d3517403748006c51de28565717fcc25e0aaab90750f736585b3ea53fda33546a3bff7b603444b1d81c8ea6a37e392157249dc5c8f64da9a6779e48fedfde4722bc4ac783b034a591eef95a68f8136fd26d59fc62fcef49778b5e2961ed4c73562bfd07c6f1b0314eb32cf6ae440c9809b346d8f526efc6b6c3fef362968fa0d563d4483779056034c673bcb778b8c675b55c66abfab8860cd25b57e513bdd11d83ed4c1c46f52dd0354d562c8b0f83416ab3ec1be533693709b8d8a34b95653adcc91e824324996810335688d94eeb5ea0fe96bf23312a58aa2f5828e6bcf16abc404d00b7d1207794803538ab55eaa9c3384b73084bb80563f444fd4672f4245f5065ec76ac1dd63625c034b07985e5d83b892cc07c48ffbbafbcd111b3a8366e86ac43d94b1252c0da2e8037951c57816b30d993874daa74f0d28932b193ea0dc1a3533c2ef4c246aad3c61039dafc5e995093309cc0ecfa17e3e33dba1ddcef0208f92199e97e8467d13eb5e03ff30da48f782314df1debcfc85b4eee676d1d497fdb542012d8fc6a9ff37a70003359b39ec06493e454f47fc432489f29fe3aff9bd89707e778d217784dab199530335b81ede8feea95377acf5dc70f02872d5498d2df19c2808a9340c7dda401534030356d4db97bb25f0d7b09a0553c6bf9a12a590752e04ecd1b757e9e884a2818b03b3d9e8fd2f831ba123a8eb9471be6c3279bfa77791427d9dcd671228ec19f57103fcc6e071c8bf64dac46696681b41cfadf446647b7afebbd3fa06733cd7143e9d03c1779e3db8620a28e97896b9bf21b7e5e77829755613e0cd019a732a76631f10033f4606d6094158e1eabe89b2dfd766d8e01094a92e7d651688e069fb08f60357032599f9702ef7469ac23d0471f888eee251041b4a4c9f977a3c9d2eac578af651032029ac691ee3f7f93a4a118e60c5bb28743107df121c73666306d77404c7931403e9bc71adf06f2ff1de5ea1deaa8f5021e9d16a3ccd9cb61f6da1016e50cc31910397b64bd970e1abf53d51c210a75868f9a30024b00b54646da2e00a6b0b4163d8036f2d1ed57b16305b2e5514e7cd3ccdba7b83672cb7a356d20fb9b87d6e7f1ba10300c7963d4f671c0d450c91cc47cc2c0b1fd2ff9e6159dfa34571298410d9983603330efe553b55ec5b536d834298429488cd7bab554d5aac96947aff2abcf5606303d0255ed6fbcdbe089d6a58bc555722b8c38600e2b406b156682407b2eb09ba6b03cb468102cfba4a31ff5d8b3f6609fa38693e3b891102f2aa2dc3a69c042c630403d5e0b2a47fc9008728862db87f8d75a54d5ecbba9b0f98c6cc441c5b9766d5d803e6c86831dbe61c22ff74e574a9c5681c796aef7f97aefc45b8add699ccd032a1030ce5b9dc334e45558885dff66cda8db34499142c68e42ca2eaacd45a432d732003da8c531cf30766d65edb83bf495131cc2498d7bc98f006a01a28ecc55a6b7c9703e035b1d76896290d782f18ca4fd7970863c959dc027095648ce3b4cb4e265fc00349a2633024b121b4cf9e48461b36ce2d2d7383f5618785814dff023e048110fc05581e03f89218e1fdbff7d6feec9777448e98ed5020a679df5d0ad9d76b206f800c19018248075da122f4b70e3105581e03409d565c2a510ff7bc1b67960fbe0d6ccce7526f837556db155fc089e004020395416af1b89f4b542b1bb52009d9212153e92848a6fd02e75de5d794b884bec105581e0368053bb4900e8c8924a7059ae414ec749b30eb94a8a37391e37ede0f300c01484fe008ccebafa00003695a299632c1e73d8aa4975ec0ed67e69aa41d924b29b1f137be3036e98735b805581e03ea93326b02e6b9121b36730bf8b4b0f5009f3a95d14f2a44abf2e55f60040105581e03230c76bd401afc804c97b5e9b9569933dfa0bee8304468cfaadaf959d00c034701f533cb8bd9e005581e03bdc025ede84452b1aeac89209a7c05dff089651d1d5bc684317b5c1b300c05463de807b17acd036351b6838d8cb3f9c17df56376f656bec62a31bbd85956041ef0d1c25ae0e611034192379a5cb72ca0bb13ebe1c67cdce14e68c1289107887aedb6e2f2d3f16c5802196bf20372bfd94525c35573f53c4cc801ff5b840d713097893dade1c9a2014679ee2a6103c5e49e5791b1aae30876df1e3fc77e1c9d4f94b8ce82ae05a9a4871e6886a51d0346b8ece904b2e8c42cfbfa50617e6f82223fac9984ad484afddc8215fc71d96303ae03bf140a4d7188f791f94f34e1b44566d891927a4ad86f9c587ae8b75e734d037fa2b9b03c28679c1c7c3e39400eff1e5eaaaa4bd86ea29121e09954d557066b0219ffff036840433310c6d4d476b779ded4f3e815e321b00b67caf3d62c4dcf85ae52605c0307ef713947d72d8d1b611408a73f118bcd7e54082ff96c91e5ffa019b47877fc032bb5a74e4270ad6f2300557b6243399edd01449e5bd1bea6b0ec7550c993826803cec7f6e6139b7ca0f58bf3f822f87e71634b24ae54d7d827760ed6d076d9653303dac0e536eb679ed9b4bf037409e0d5593b3ffa79f1da5ad7bb39a97c42fab30a0309cccd2dbc5a971c982be2fff577d8fc93cf306c9999589c170a5b04c759af2c033b4f7aaed44f3bae81543c3697c798634d1562a373d9dd94c8e6de199d3be05103de19f860385e4e58297ebdab4d33654290b5d63f6162812fb5e6c0de49772f1b0386451f5aea9373396a257fad5fb797fa397005335d6f2ec812c4424994afa4e70219ffff0219ffff03ca806715452ec03603585c665686c668304d7ca30bf2c16d779600258940a64203cca4235bbe9ca40ebd8fd087498e96696ca530abe5fe78d291c10d1840e29e490219ffff03ba9b48179ffc2db00282913ca909ebcffbe060b63bccd235bd936f37e0dcced00399c85b08afdcdaf1b32648de70428fbbf52121da785cddf14dd948e08970d8ba03638574cd81b6f200b930c9f2aac3eae19e3705d8b945acfdc338ec8a03d71d1e03984cfe68fe23f6eb3dbe46100e381e2377b8a8329b6c4e2c97327a21319072e2039c16eaeb2ce4db4f1a312d2daecf268edd8436bd31e9729681cf87220adee948038e8087ba73c926ccc1df67fec66b1fa2442299c0ea515e2f5f4acd5d3276800a035d692cdfc4867228ca92ce0baa36bcac673a2843d4bc26966fde97c60b77d5eb03a70bca783c3ced7b754e0fb11de4c1d7f0582bef7a52ace71ce69bc05031b2220347cb5767cac6b3f490ad1ad3ded207ab0a514e97b39c69394d58f71c726d841b03361d97e5932422505bfb3bdb2606cdefda0bbb8f6fc86c6649394a3e98c8543503dbe5d12a2a8f17583eba5d684d066b919059b318e8674902086b84e24fdde2bf03eca1b83a0af905c04bf5d6a48a3dbce8f52225b533e5cb7d69e894b9359d9964036a74fc614a0c39dfa661d76780f1ecde9af12c2a073f8465dd9f1626b8ed1c6c034ce592740823d8c76089d9214169b63561fe3d9b345ec43a56a9af9669f2fcdb0377b0341d8148b3d0dcbeb325af4d64c50f30f87b6c5624f7871c8d3a8ea2c1560385f6a2fccdeb2e1c14bae999505bb3f5628b36086ab7c2745899870a9e95744e034038493a20f4988edfe1e9476493790f114ffed392f2f7b005f44e86a0ba4669036a2e6082b40516248e131469f6566c590e677c52d90645dca1ac87a831f74acf039fc6286d2ea64d52dccde757bd9530b4afc01b1c5c1590077bd63a41d18d20f30374afc06d5df15ee77f3416fd28f7e37ff498427c0056121adbd1aada03ec416e03fc91995a819e5f9b3436756bfb7e5d67eecdd8917c147876d835fb4ff022e0a705581e0337b319e73b23e27e6db36cdc315093bcd16aeb7517eb0f62bcda2a74a00c0547062259da12b4d103964934a6e315052258e773d30456dfe26dd8e9afca7ace38dc0eaf8a909fe28d05581e032451d618731a5e0029604dc41a3d64f276b73a98a294f9ee88c770e8d00c02470167646b6fb09805581e03f039c0e58193751d2ffd39546ee0760197b4b5110fde3bebedb39516600403045908b360806040523661001357610011610017565b005b6100115b61001f6101b7565b6001600160a01b0316336001600160a01b0316141561016f5760606001600160e01b031960003516631b2ce7f360e11b8114156100655761005e6101ea565b9150610167565b6001600160e01b0319811663278f794360e11b14156100865761005e610241565b6001600160e01b031981166308f2839760e41b14156100a75761005e610287565b6001600160e01b031981166303e1469160e61b14156100c85761005e6102b8565b6001600160e01b03198116635c60da1b60e01b14156100e95761005e6102f8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b61017761030c565b565b606061019e83836040518060600160405280602781526020016108576027913961031c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101f4610394565b600061020336600481846106a2565b81019061021091906106e8565b905061022d8160405180602001604052806000815250600061039f565b505060408051602081019091526000815290565b606060008061025336600481846106a2565b8101906102609190610719565b915091506102708282600161039f565b604051806020016040528060008152509250505090565b6060610291610394565b60006102a036600481846106a2565b8101906102ad91906106e8565b905061022d816103cb565b60606102c2610394565b60006102cc6101b7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b6060610302610394565b60006102cc610422565b610177610317610422565b610431565b6060600080856001600160a01b0316856040516103399190610807565b600060405180830381855af49150503d8060008114610374576040519150601f19603f3d011682016040523d82523d6000602084013e610379565b606091505b509150915061038a86838387610455565b9695505050505050565b341561017757600080fd5b6103a8836104d3565b6000825111806103b55750805b156103c6576103c48383610179565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103f46101b7565b604080516001600160a01b03928316815291841660208301520160405180910390a161041f81610513565b50565b600061042c6105bc565b905090565b3660008037600080366000845af43d6000803e808015610450573d6000f35b3d6000fd5b606083156104c15782516104ba576001600160a01b0385163b6104ba5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015e565b50816104cb565b6104cb83836105e4565b949350505050565b6104dc8161060e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105785760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161015e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101db565b8151156105f45781518083602001fd5b8060405162461bcd60e51b815260040161015e9190610823565b6001600160a01b0381163b61067b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161015e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61059b565b600080858511156106b257600080fd5b838611156106bf57600080fd5b5050820193919092039150565b80356001600160a01b03811681146106e357600080fd5b919050565b6000602082840312156106fa57600080fd5b61019e826106cc565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561072c57600080fd5b610735836106cc565b9150602083013567ffffffffffffffff8082111561075257600080fd5b818501915085601f83011261076657600080fd5b81358181111561077857610778610703565b604051601f8201601f19908116603f011681019083821181831017156107a0576107a0610703565b816040528281528860208487010111156107b957600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107f65781810151838201526020016107de565b838111156103c45750506000910152565b600082516108198184602087016107db565b9190910192915050565b60208152600082518060208401526108428160408501602087016107db565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122012bb4f564f73959a03513dc74fc3c6e40e8386e6f02c16b78d6db00ce0aa16af64736f6c6343000809003303c25cb2b54222278b4ee0172f1dec5ce19290f1aeefc266439701f4e36bf0abc1037f2d2c030868c4be49e5effd3a316575d05ca2970cb497f86517bb6cb2b915ae030752e502dc6bde2f21580a42a58c843b6363830fa06b2339a8072445282d9912032ef2a5498751c6163f18d54011186f6eea7c2c8179e63c6e1c072f9ccd440cd1030cf3b5d7007c3720e743d88b0188edba1d3225883b17d4970e4842ce5e7736b303bafb593a620d1b3c383f26262eb7738b110b530661204db3dbe28db9413ab31803a4174021e5c28a2a19bb0a1613fe037e07d1cf2dc4de6a6a6f9fbf31847f1d6103283d5249bd8e37557bc9c48061adf3b7405152f8b81c1235af5d46347945b7a20382d413c6e96889208da2dace20937ba7a0220d748ef514c58f58dacd33dd735303eaa1519d7378afbaf64331dfc2cd02b6781a2d85a3af7334872e5ce1d9a97e4f03bedfe23fd86c6a795cd1cc1dc6ecda110a073d6e0e8f4d7952cc18eac79c1d0a03e23ed39709ac4a513e12c7fed58189746336d4fe2e5d87b6a8bfec814fd14b5503e1fa584796d7bd82cf8e16c2574c737a3ea3e50de3e0949ec8eab779565ada3b030716ac5617fedf6fb5b8c44ba0220e7ec269dfa648d390e074865ceac0e663a903d8e1a75ed555253fd15d3ca85241c980c6abc05365c76b3b867d5ef973c45b95037717865bec716cde6940fa9d62dfc2c7310cdd3e98dcb9de04345343d913b12b03ffa4938944f889aa558064c07dbb30519b183309c957fc8c2ac26138359ba8540314fd8b675b3db920ad75a12e710fca4a2bfdaf4281de2f27d72b5c96d77b14c203a15a17e1e71bb3c871dd6ce2b993ab48277998f6dbdc833560f084351db13578031badfc8addc9057b24eb34e88564f207c859ab33d46bcc3c8f97923dd2ef5ccf00581f0279d9e0a78eb8be97ef0721278b5edab0c68e06641212cccb066769240df3410100581f0266857470237c2cb8d5bdf5588dbaaa59979871e7ef3532429629d4e62e67410100581f028a8448529108c6b736bcf07c595444cab96c5eb6f760b61c87f36365198e410100581f02c68cc852883ed771fd234e94896ce8aa8d7abc93ad14d0bbca9d0a911902410100581f02e5a06e6bb0e6d6cf857b6279f5a0ab8515c02676867167159a73e38347874101030915d64ccc1481ce6fc66e496e81ce1b104203aaa2e93743a9717d3038cf5b5001410300581f03bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d48105472de36c8ebeacb6100c36249552e35feff0ee09900581f0326213adef1d6f0e3120e069086f3047561376d88d71dcd89fdc20b4e8960410100581f03d1dde69351efd58e96ecedac74b1b8d5d9187fd90e76c9a6e114bf51c7a04202d00218c10219a0ea034f6ffb9aaaf93eb1c929899669ef9f144d3ae9ff91be0cdffb6825d222d7fb5a033c7fccd1ebe9b8efeb99848710bf747222139ee67a64960d41386dbf9e8be44c0219ffff035c9e89407f7b65cd92eddd0635af9ae35c9f1f1c6b8404c321dfdada3d3362b30355ca0dcbdd414c15ad96fa90731386baf79621891465fec22817e3a6e3445144039389ce2a1040de4d74e89db728b38e327a18e5934e68e9431a4b74ab8fe08a9a031b07acc7f989c239a8b736821b79c4e548d3ef73648d36d5458b2f1742b74bbc0307ab5c2f0257be6fc29c00fa50d98318d8246225fd50b81e366b0916da625807036ef9cc395da3681981de04b693b81e5161735f06e7ef29ea21dee3d3f96eb8c00397bab3f4ea6cc9997fc569c02fd4fc6e1836ba02c26e1be66a9c4232d5f55f420387489725f1e27d8b745074174276791eb7969d9a7dda4aefe88c75b74f552685036dcbb3b1fd2bac6d93777f947dfd03c637e2372528c40348155ca3b92eba7d1603a7da3e5d0a39c29c974436476b8055d8fbc5cc209d3ef644f72fb9096b2e93e303226dafbd4836e6151bc749a33016c3df3ccfab6bdd6bf1063e41532f6c98750d03b02a1eec5748b6d4fb9553fcad9b63ae80368ab717e6e0bb299b3b9c776e1e870378cf0ce6737a69d532f4c87064d91795833e69ee32d892b7aed502a6686716a40219ffff032622f6ca97aee2de0ef03abdb6f5a6c3ce2688f06ae0c6ecd1b2b0b2a20d735503b802af59f4c2e694a7691b3a3324b306aa930194551ead1d1ed4bc2af849eedd03dbb38439b4f311d3d5d3f2fb5e521d87b45d6efbdbce1765616f341019d491720373de8f6ead1139c3015e641f55e028ef582223a1b9fc431259e161b00816f01703c34e1df2a532095ecd6a7ebb3a335f71c771f42a371957f3a8fa9c92c7854ec603aab154af462fce37399e5e5811ee84cc7a09ebba0be91a6e1a3e802967204dfc035cd1bb299775612e10d659b70c3eb9c2b48445afdcdcfb5102b5c567f839ad8303f5746c054c65074d80e8224b6809c409d5cee0d4f30f2200de1e4725f60cc3860384a13caf56732b8e3090a66bcde8493c1e9a71f7a59063776d0219cc116355eb03b6b82d014b10ee074db66ccbebcb823226f782e44145ad0623516116b7d12b10031337235ed742fbb3f755c29a6ba5a66afae154b78c20cc25134f8fa9572185860380bb35f0273a537d9fbc39987844212f4ebede6c5459360af5efe1a228a3ce310356f1d768d03af8ae7d4ea98e208a9fafe7a6655f66599dc2ed581ea2efa6d7a303a443f270873ac76914ab4849e8e5e6c455ac8f865ef1be3835627f76fc377f5603a91448f3cb28311202c682e7710f5207324732939a569c1cee9a57342ee055fe03999535dcb73abb5dc051c16bfe813a7fb46dc5f8b6884b1632ae3aa70351014c034ca6743f07305ccf42868683b5185a6dbd971c3477674d2af7082fab885e45ba00581e02ae27b6f2e0ec92c42c572e7f4dad01342503d6fe1577ece1e01be6046c410100581e025fbf4082135a44a736bfcb2b01201a90a7be45ad14a33b9abe0354bb72410100581e02ef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d54b253b0c006b68c3a5a7906fdfd380aeb90abea4d0219411000581f034e5243d02103fa66ea244892340209dcd0bcd773f654a25d0aee86c20eb0410100581f03680a193e9cf3d19e76ade7d86d9e039c9a50a863ea3cbbc34b68d110d2d041010219100900581f02244d27c5997695a5d2678902395fce05d2246523b837ddf1161fad345c76410100581f02a87937788e9f2ac5d9c8e7edf0432e01940e1ae71cde164c37136430424d410100581f02947fd273a6a46b878bedcbdca9061395cff41723dd96d2a82fd514c5ddab410100581f029d365a86dd700ac3372b8ea3de726a52df14ebfaee269066c7a626c60de341010219034c032a8842f5f30621d3784abe927f9afc8d6c54ba4c45ec3083401f13cda0128faf037e8c91be7f97a18fe7b6d97e24ba3a2e52b3150010799bc96eaef9538f7c1134038387309c0d19e96f3a3c71063748a873ec1f4c4d09dcc92548959141f82b78710376320d7b545eb41b11b7909bf570f1fae52d732fae462aa30882aa5f919d0af60219ffff031e15598f50de6d26fa2f1cb319e75e1ea182a12fddefa55ab6bc6f0d2746e563032c11705916d6aa9168ebd2a366029a3f2faf342ed9195ae7f3c301a9c56226910320d199fae6b898ce1e5bc8bd977d3fef95e42063a28243806a1d86c1a4e7df2603a8530209ac4b0922f73de78c89a48bc38626c14494a918be83dc1ed72722811703f582b2fa92de97ccb8342575f8acad20f9a3966f10e1012d5af9d0e8f9532bcc0350d2de3a37f17ed73771e371b75f87bc435dbadc40da21b49da6ee64e874c553032ecdbd15605936497e9fde8c5b7660ffac6e667ded1ad1ba48559d30b6ce71c9038fffb52b5d286674c25ed48366343425b5ac22ac8738f0f0b882b662dec4995e034a57bfc7f3382053a37f3b39ba28ac089d2f1ef7241869400e91e1576be9e31d035c0240a4d2af31baf822b796f3d18782b131efe89592421da11507c0bf0a78810219ffff03091d93c452044d68f6802fed672db9e03d69b24cfa0edf84be7517aa1a031c940337b688f090a22906ff7f735f52665ac909edb25fd26d6aa9fe19f8708d8d89dd033ab95b94017be51e07682a1b29fd27293651c7f7b7742eb10d13f8bcd888fdff0301755032da423de8380843f75923cda9afe0ffb5406c9c952fc3dff79197779f03682b79a5e78f59505cfc4c633aa2709fc30f6df626fc6a5571987ee1d86ecc5003c4334599553fd7db3be37325b67b1c88aa8a69aa51c2ba2a25b9b1f5cfdda6eb0354fe811f86c14a7bc2801d8cad580e3a425064bba1f6f24469bd30be1196647f03d02c234550e1b3ebc394a9180522d6f5b6b068e4225bfd679519b9ad6725d9f403f42b67fca3c1a42bca2b1f940016bff322964910c4edc1d927a1fed152e91883039b51ea3574a01a1d2526e2b21244d4998512d8b440d63acae6722a578f8d9caf034fee3f324c19fd4d58883a1245568061ab080081547139d622b6a925def0ef1b03ec5f7538c2c4cd7fd895fb032063778a9379474f525d646ff826b6d81feacb0f030a761b2fb67b4d8cce03df40624f575fe85fb9a58781c31cc8348f9ce7533071037d286c0773827e306e35439dc7e024f4a8c3f8fd54471da1d502d3bf03c3b8a603a5ce8fa8899553cd29fcee4f62fd4eebaa4eeed42d455503fbc0c5f1c6fca4e60315edd37897e0dc28814073c31e513f89aa994547408450d91c822b7d171d343303f1dfa31fca225a99d92a395a11799ccef62c46b21c729cb5e418403e968f7988034ed4338ec58ca0aab797884ae9a75e38160db0b8b2a9b39d74d4a4571d53f58d03fa0f386e393c9f6eba93f8827d3cbbfc493884317354fb60712cb0519ae291ba03a47be4765d5f759216e6fa6197d182b78e3b69644a79197b2d74f4ae13c4cab200581f02b7c47a56d13ed1fc1e85c895fd24237d55d08a5dafcfc41c99aab1a5b2ee4603e80000019100581f02fe41d7fc9be6df1ec096d9f4069b022ed5bd9f2d36aefaae39f20e7fd2c4410102191280037fcc9cfec58b038db2494b0f23a099b38d782967d384f9679806d43f14a872d30219ffff036e64f35d580df7eb04ffbef5fa3ed7bd72fbe21f2385add4d3827244188b9df9032fc6289eb9ce6b09aaa2d9f741a745c43677cce1c14c5fddb513bbc12511b40903de2d293e53f6a3fba8b1cd7495f9025e104bf838d559ebf895106d0c6d96df5f03d10bf51dd52195beba7e455986aaca4e74efa8a0e969356a1a989585fc87a5cb0340871080b27abd1b4c47675c55a2b064c0d229d6ea71294a41a62a240db1d864034ee77e3209776ac6965192bb9d9e5df77941bc4586f0a3936b8769219c8b35b003533d539d8cd989037a7ef7f55131f6e85e180b2d3814c15525024b13caa0f68203c880afbef930a24ba79a58174993019193f3bafddf514811e7db9d9b77b73177036c9fbe4c9e2b296bbc5e79a1bddf8e5059dbabb7a8b2df39fef1b3a77fcf266e0359398e4c480cef04134caf38137da467be9ef2c994eb9873a12c313d852cf2e10219ffff03a61f087f3d43d82745355b9b948152256f885b02dc83ca8f87e52aa1a43d82c503803f83cd2b2acaf3f64fde53cc1f8dad7cd1f7b9aa557e28a8ea210618f1f6830332f4bf25295042c9e44c5e51a995c17182073cef463ce8037d02b91cacdb686a03bb7e2a80b915705dfbd4c5d9271d7716cf11fabd0c326a74799fbccdf09ebbd20304eaf82257cca7b9ffaa57d6be6a25f272a916dcb1b8a6e83bab315ebc2b1294030869d7768acd6ba736e7ac31d5a2cc7ef9e90b4861c92846d52349c2cec091e803c6244323f5ace1f106efc182fb4174717f8bb391a42e8469f3c2f27944fc801f037c53aee97b2d9087ff877d30f4943fc26f9f40d13d6570007cdd26b57a3df64a0311aded5bb6d6bade971687461aad75d7026ea997613b0ad6dfee4c4557882ab903797fdb8ddc10177295c86aeca1bc04c237b1b3551ce84ac0753c6681d15812f903360551ca7c04176827563d8089e657eb0f1394a4b7531cc0e51bdd2583992462036b240778dc2facfec030f8b1ed3336feddde768a5facd225ae6b50cc70510acf03b808f3262284749854c6a10f6a82a52fc9e9dba667131a0b635a6ce4ae2273d703ebebbbf15a15acef41037dbfb32c8a3efbc354a2ce78de55763a3890a87a0e1e0363bda46d719e4a1c514e0fe4b52806f98f26448c953a2d8149ff0f24cf10201e03397cd307fbe10c30e7eaf48b841296f34a86c9f5d4f2b2cbd2863bb0baa026a403087d8390200e1c7aa75517a22c31a98f3fc15605999747aa0d32009e735d32ba03e5e8ff5ed3b6e2eb171ae600e4c30210e30c961bc03fc57000e76145bd541d8d03fb2fe73ecb92d10be98c3d17d4c227c8c4249b67d95fbbf7fab1a624bf743b7d0360373be28dc0bbf3306ebd3483c1a0de11eb0cc8158c74866a7c00e781b392e9038c8a63f699a777555dc758752cfb743f8d138b64dc21cabbd72a7884ace3ab5003e3996d15e9336a8eab83f5efc4a7fc973458683f199f69f8825966447d7e4960030f83f3f8fb8a7f927c600305160f96f5b3daa19e8c8f53d1830b8479481f62a503d170d9d2ef820d4506d045633d1ba0d17b93999b3ee65f4516db480c44d56ec1037344f7d7ef1cc8aac4e920a10bdea48847e94a4b91c7ade3e3aad91f103118bd03d306911587338e31f29c9bf30f8b2379f37f106488a68926ffa6fae68ed5597203ec4246c2cc5de807d5ecde3beda48e9710fe0a5da936efdd733abfb8b0ba467d03172bbc65c6100d66f5016ff35f5da8bc22b11b37c02c5c33d2e44c645355bdb70375c41659dfee5ae6ebb46cf9cedcc4a6ca0e903ad9fe75e3c1ea13aedc2f734e03dc89ff107bc9e04814dfefba5c9146372385992193365171786929e5b98b1b2203b4f076e484f2a0edb27d7fb401ada5d25e4996d47fdbcbfdbbf57e13f3414ce803a7ef3b78065de4e69f0156d4c37f129b014a11f28d1aeaefc88361839b24b4020379ba4d8df7874fc74bccd6e820141fce63f7dc28d9ea966bc1a69e97684b218a0389a072243923d7ac7e9d4e502f04eb9792f4fb22a75955b41d654016e705e5f700581f02d786106d4490917053800cac1d9e74f9bd413f0144df9401c6864422f9ab410100581f027eed206e103be9cb088a30d32b1cb567493afefa63e12280a4926baeea4a410100581f02c65c078e8e95188599abb4197917d5d125017f7395d470bf4204d1ec767f410100581f0212489773ed90ed8b9427ba0a0d482940785ecb15ae75a8b5c0e3ea210a9a541251bd1a79a00b7e1474a1d71ded1000f3ff914f00581f0270d24dd24d90f7fc630d576299787d60c468e172a6959170ed0b13a4d838410100581f028afe8c6fcf3d82570d28499bab490ee6f4b02391a3aeba513ab27cd2ad064601f4000002630219069a0219ffff03f438c90a55bcb0dfbf9cce8631d6af02946a185d849302d8e551a3a9750415a10219ffff03a518b0f2e94cd9d97f9c311c9a2c39b0ccddc9aeebe650acd3816cba6c9c7d7c0219ffff05581d0275142e8e7fdfa0b9932dec51732137e973accf3bf636a63e4182d90e0718291908b3033eaef034d29480c2820821c5d085c633d73c8e6b5550f9de6175ac09d68809f503ddab6ad988a4c4bcfc94df03966e0028a149e635c4b650f8caea946924bb1db005581d021705defc09a20b9ffe4c109567fc169a0922c116bcebeb62495e0a7c07011bffffffffffffffff0219090005581e0330be74dde26ac10b4816db10991e75794112601af00683c407a90ecc100c014744cddf71a6b74005581e03c9cc0816b64c294d250df56a0b82e038f28b9f47dd4fdfa013c0ebbbc0040c05581e034a2fa933d01607fb07594ea6087bca70a5fd8cdd0ad08b7f5922948110040105581e039f625bffeffe8b7d95c12df22d8c5cf55639b76083883ad11246be998004030347b4fcd679f7d70d83c092cc353d5aa4f7b9792238b87a35d1676fa5a7bb81ef0219d7870394925d9d57c3a08135af818f76afbec2ce0d3233a2f15d3731edd98aae3d549b0219ffff03890667ac22a005d5cfa400fa5570bdb28fec4526dbb89a2ea9592503d3aebf4103cdaf5193f3cd524ed344b893cffe493ee6bb8c6e1591b8f54f1a70050f15d5ba031cd82aece9b0b5cf7f6635e7d60c4125737bbda2ffc5087f59b8b5b76722c030039ca0fb422b358624ffab03ee452462e316c920128881dbea42079f36ff83dd6a03043e539aed78dc56712f5f3f768c85d63befd1d55457d60371a7712966f31f5d030e71b0a022211535befde6866e5ee9edf3e9dbb5c4263144d16f649a850d264003e4491359ef2991025caf6626990147d590ed16329888fc09c854c246f88d7f6b034aaf3e9a588ba64bc1756883edda01b4fb6f9db41b5ad39e4fc533a6b71ba6b603d7612bcb07a2e955c3a053a7a7e5405be70ad0f74fed343c996a8189bd1b3b880307b6971c902fd65063c2e754761dec37e1ca48e97c84f40fdd441147161a987f0351efad3ea5ca6634bfe8a69801e9b43baa4267ab85193b3771f8aa0b722989350219ffff034fb64c28c9268a9df05a406a127339733d64b43c3583c9fcc8cea28983d2b661039aa099aeff9a4f306729281b59cab0d0488945f6ce1007d84831e6ee2d9a17cb0388c6e4ba2764b1a1b0a4cc8be0b6e70614663a034f6a8b433eb5928605617bd803c5f5e1508e94bc2c8734024404ae36763d5c65ed29f8459f2a636a520c1d72fe03242aa393d3b89f2036dc2d790b0a96af6b8e8228a0479c9cd6b08cea71241c1e038e1e45cbd163b1ece83944ea60917316546d9445cb872e4af88cce5819bbb91703cab0c14febfea95ebbd0509ddf3818cca62fe110965ce40b5f03313bec0dd252030e782a6fc1adb29b10af043a7b65beb40efdeed7b8dbd02d6ce75a13256751da030c41bd31522dab9c37c61eea9103ee92e4369038d7d1b3fbc21d68ecb6ac105603f30878d3347fdeb53eaff567cf2b9122174f43cae45894364823ccbae17637c30320c8120be3074dda4a6fc5674a5cfefe13898b13288affa6318c87d97aab9f45033355b3c3ed4279ad8bcc9141dad83ae1408eee1c57d49132ad2657e5288f1e550219ffff03cbd899c489f7698f91917e55592d78a89950ac903d1b77e2bd9f3bde907bd23c038cc3682b389798f5fc7ff1b3cfa4063f106241c9dd6c89bb089ec728a11b27f803083050269ff8582f6bb7169c7ec5d76a99c879caf58c437166e4cf6ef5bf955803543dc3d0670ecdbd7aa939ac8cf65cf6b84d3125cad6b3e0cb5d6cabb5de1483039ad17289f665bd8d118b2e5bbcc12c7103aa940da75da93ed1823e719a73e614034877e567219581bbf61e4704677d6e386bf0b028d7f32f7e181da69be43770d20367b2d28612a5d156e2b7162e43b173cb40517405e030b8f8018a3fc008bbbd8b03ef1c208185006c1e355086e49ba3e80c3bc188209c59014ad685a7664951e63803ad36cce1e92549f116b5004771bfcf207d630e6f53970a01d1afd18a333031620300f8dc6f1e5eb9c45548d36e5a9dab974245f0bdfbeb0b579be30b15403054b1037425b8e4cef4d85ddb728779884e176d9d57381009b424f6e6dc1666e6daf03203d723087b41574b1562e5d528fe84071097aa3c17586ee8c8cb4ac76662dc4e2703ffee627f0ebd63c3b058e983cbcb9e0200c0da9c66c5b0b86747aa7fe96196a703f155115377506f431a56d1791648febc57216f1a6d2232cecf2bb51cd376949c03d65a540e75e7517cafd499eec5e7dbe0548639b465e08999fd585b78edcc0ce403f4bfb18310e069efa4aeabfe123c6085f716041bf7186d07a418ddc7b5a06bcd039a5a8ef22fd423137c2b86e438045b2a4e55f6842818d64d0246ea6b91c849a203d3f0d4b451a711e9a92601a15a3bebfc5935013b389a1c71d074012cb5cdf26b03c649bc645a9794ffdcf6e4d54e114335e0f3c34fd75d1dbe97af2c8936c4ad2203ea11f27fada794ce907a4a1e49e34c33fd4323a472727860cb2d7ea48dde1d8c03c0a8285d6d15bc20d7001a4325e4d84b69adf211e59c009cd4b2ab5dc5024cd703e318ce51c87e13982fe59fd8ee5c92c643652dd34de17e55a31a0de84489682a03fbc2c5db1ec6183e7b9bfe672c04339302562411a6aade19ee6160d3592946c503e107de8a8ae260e3d6365246870cabcb2ef32201e8b385a78f58a6669ac9951b03210401eea9091e589af1f38c7399fe043d9e6eff10a90e8066212e6baca58dfd03b8513d2c61ea509bc2ca6ec2404186625d3bbcb415f2e19a97de7421cb69dbb503b88f41af8e1f2457356ca7f541b60bbcbe65286b40a09ff5c17275ce48024dc703c65f54eca79e3ded4f7ecabb64613d1f8d191fc7c0ba312f90a8e118a5f8618003140ff4d5a19d2e04843a3f1070dbcb6e68b43c592f72acf37eed1bf3f9b0e41b05581d02d49f9bd23140de08e90a3672dfa0cdf14b4eaf5633014e46026d4c6c0c1903f8481da605feebadd57505581d02e2bedb08c99a78e6ee2a03053587a48747e142f8b23afbdee7b3a830040105581d02eb8ba5878eb2b6dff09c676c4c27c5fec1a6c85aed1830934a68388304060219410805581e03f63d2b251147f03be17c9b9086eb5709439265d0faaef8d438bc4b36000c01474509f83fb4513303c9b6f2eb5ae1b612c070731714843678cb9fba9a354f6e91e287d526972c192103fb602fa2344f6be6f5bbfdc82d3d71afc308d92c40fc5dd5bb1d11ffe7b44d2603871d092485f80e0115c6b552f1cc464cfc8c73be19842e46a7ff02f2f3baa93605581e03d26ba662e597f86fd6cec9619a8e345948dc2fa476a836134a9554e2600c02471284b594baaa0003d80cd839dd3957d572b90780ada202a13936fa2875daea94216263371e9ef1d20605581e030e6a817aeb562d42f0aefe75f2f0861e6fa5b71926304fd9eea1b74f7007011bffffffffffffffff033c44b1e209401a7a3393ef806c8a0d2e619deb8cfd53b9e2a8f8c105f67dbb790346224e606ed84d57f442f76692f0127bad2fd9957c0aa9244157fde911dfa6ea0219b793039e133ee8ec3a5272b41c29f5a71a435d16b1fab79ec10e3043ed69b86992a6f003ad7095eda4258211265c41c0753509b9b1bec0c417e6f3f2281f0b3f812d49d0035375d37ee1e95cf5f3dd36f7c663c485cc789d4ae9b7179f8aba9fee718679ff0323419a80ff37ddeca30aa7d6fcd4ec114bc42826250d7fbcc36ec5aaecd91df3034ff3a65d525a20e983e37f47d389ae999782dcbb5721a6ac267dd3fe52794d12031ae1da25acf2d5777e18776ca1af161bb4af0ccdded30244cdd0347948ea68b903b7a10441877e36b2979ed068ce01ab2681d634ef381e3bafe1da7ba097817086035cf4d4c1d1ec69f2097f0a06937d799d782c3bbeb41f5f1779c92b354b8d5aa303dc1e14ff76760c9215cc94c41d475589300802cbb8d3dce38740509fb6faeea30219ffff036c7d59322c5014953ddc349bb9bc630614bc51033096d2b48293f76d289147ea0371ed64d83ace5287708ea10fc68d78fd256eec6fa522959e840dcff154b037fe032c8506eff97eaddb9e17bfd25dc364e6aaae609f27ad0a1027dfd7febca93894038b9655a08b49103775c81069889b10bb85e3c36f3c927f303c746c366f9097cd0393d9171f89b0add26cfd44ba542f88929e74d147007a3f8202137d6c9cbc7bc30219ffff03e7f3d43f6169957fd187e626e47997a757e2d9b0c0fddd2f0c1a86666451cd01038eb9b8eaf6c316ba288ed0ca0c2aeb13eb1f97614af80f52b2c01f685a4214ec037432dfd08a044829cf948f66a8ae5194fb444cbf690b532d70974fbb879e2291039397106777618a148bda03ed2aa025763eedbac324398aa405647f206b1ea54b0219ffff03f7eab62a484f1b5b70ec53a02b86676f16e743edb17bea79cd19d5c1f200c76d03709f3b215baf0d267622132ad85c0aa4c9020a1034e40b8a0ac27372f98329a103929ae23da23867cc0c32e0d68291bc3315653d50de8dceb11c92213605cddb10036eb2db32399abce0077175a892b5164cba6cff862882bc869240068a07f0f6cf03cba0fab3ac976ff61c0a5347223157236401cd7b9c189f79672495bae200b92f039ea1e78c43e0c9f42c39098c9163ea268ed0a3989a00c910e95c0d0a83c72f2e03fc4675a288a8b45ff07b3da1c4668a984663afa2cffb9c555dd6b02f66d1226f03761731be045c779c34a888ba9ae744096afec05f61a828c5782a5a3ccbff1a0003cdb2fcff13a8acdd46c31521d934d6b009fa1f0c480beeed5eb247e4c0c7d331039341487aea91378522c0e5a9b1cdb35191d249b0b279b269fb5792a7832f6f2903bd6312fbbdbc532a9497d9bc0f3db04b63eeffaf8b82f139e61f54bc6c19ec720327a25f1516fa6b965012b9fdef0ac50c55a0b6228d953f75cfb7b2e538dc4ed103596d29174133fe1cb2db3be97c1b8ea6159cbc2d27f4f3868d3b44642bb8f2b603aa642c46e29f8ce5c619c65f230cf14f207a261657b9a0286f22eaeb3dd748bf03a19e7c06b27e2839b12eb1aabd3f47a73433f50dbe9054c9781f351502c605320345c732b98c889171e77253e1c4f61f0f704e62bd341a98caeae2735ffba99d6103509258957c0b5dba8315ee8bb079b5cd7b4e4884a01ddb1a0435a58b9d515f43033d53ca0b4288c343d13b37ea90f36a3c424ebccf8b96a1f864e61c5ba007b75a032ed9cbacaf8980495ac43f7a97fd2ec5f436bf7d51d20d30175cf0c16aebaa58036b55e526b773edaf30c016e5b8ed9226de0a28121086ac54ca90e4a067cc7c97033bf836660b81e0967c2015c82e220e1e843fea7bf6eda9aa9f748306ae3646ef038ec830e28089db1d7aba747ed04504087c32d729cec70eb6818aff9c5ee2c11903cb3a0ff5b2753503d42e414d688d1b4d52d7944aed5a9791f8149c8e9b4862530320fd77a01f18150105bb4d7dfa5245666fa0f90ad59084c1425b2f211606b41e0360b62042dee0eb231c9331c59be53c42d15b3745afecc68f5a33a8025d30f9c203fd736f9cb7e9c76782f4c0a1c4dda0d99450b3a1ce94342fc16c5e81a55874ab035705de0650cad9483f4f22854ce426147e7644346338a9a6eee73db06c65aca903f10f4c7174b826e09162d4ade3f75e62a1abde11b88880aeb3a958060c87cbfd03926b251f168a39f5d34f2d1e509a45fbdfc15dbe99d58fbbf6b9cb19a8ab6cba03a3666393b010afbef4c8de8c532368307e03afec805b4726adf29a2789336edf03f8a6d6ee92293c8337517c41c260cebd23d0325f0a6d77977d9923608682bb6d033a3342fbebc666b5e855340dc86f5839b3f15fd29d249926ce8c05307c3e329d03696861fd300d2dcf397230972ba5332f467392a55d9df7cb1ab596a3aa7f8ac50300c607baea8243b237ea75e989ca20adc6c47c0a2840d2fbb60d0cbbbdc677b103a99727bb59a9a8ab334f03c030ac61c49bdf6389840914a5ab5d6de37c82adc003c9a3ea05addedecf51c6594203fd60cc016cecdc5928362975415215d659417d033c65325eec79242b29113903d8c600ed14796a9d802e7ea3b8d6fc9c9bb6ce02030264e81e375008af59e4b3ee23297cac0ef5890a863fc80e611280d34160b3c703ce6ca0816be5468f836160f1d059795eece5f2e9777c1f1f71394b53cdbc12c203fe0176d989cdddf4c64d2dc85bf6b078a96810dcccb91f5e17ed952e8e31ab2e03d82cd12829299602a8fec4ee7d2f6adf3d01f4e37109aadcc8bf7e031ff33f1903fa930293b2b346c564385b104bb0020a06d35481e8b6e5d1097a4b5273fb36d703f92358f39529a147a1dfc781c9204872136afdd14cf872257cad7e6c6fac019d0386c8291e12d82b2d76120dd94df9ac7b8e2906c0613639ddaf93f33aec5aed2f0399fc386b6bb5851dcaf045542a30c4fdca98e27d5b385910b8682fcf2966fd6a03348641a8c05adf9f6fd0a1418523bb081f2315b8893d72a4dff8139c77ce3ca603478d19c5113339129d201d15893d6e1fec08ff23ca5a09297990e32a43239296036a03e910a4efa9c0870b51e511a39efc6503c8584cb6e6935cf0338ea85337b805581e03d56c64fe0828abdedab22ec2ea89a4689ef209b2aa2c82d8205c80d8b00c1a00012bec4902d8a7d0fe2baa342103e41647b124f4469799aa32fedc4939dd35c7e9a9803bd2792615b9efe4bbdadf035fa478d0ec01fe5889e2698ff84413375296646e9e8ccffc42deccca37b1501e05581e03497050662cec513e7979b79efb9200f057628bf192204cad3229aaa09007011bffffffffffffffff035840992aa6e184ed5a6f5a1f5e96c998d3d87d8e5594d719015574a771d3e9bb03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e0362d9a8e26cb4e383700ad04f9a7f6696c80c209e73e34b7326e5769ba007011bffffffffffffffff02193104030b33930e03c210c8128c8abbaaec2016307478328538330510bb69e3d58776210219ffff0219ffff0384aede2373c4122666e2bbc3227d68ec5577febce6318aa41ca9ba496d986fec03711e9b871eece591e427793986f6f15156b0d70297421a36f363d3e35d00361003ed199afca45b3c3b78f86ee1ca5945a9be2ed6f31cd12237e842f8cdfab2da510219ffff03bf160f1c7dcb5d9ac31bbc6c76a9d687aad3188b31626c4da4c7fb324e34259e033f5794a71d2d7dda514ce6449f2711b88a75c50a778bcc287e00aaed98bfc05203e9ff2369681695930f8f69e385f803ba01afb8dafa2a7f72d80b5da4f3478f4003ed4af08eddf7a1a6541962f02e813b34bfccf84f10667649623feeceda3074800358fe001f87c768df153a4cecaebf118799f9d0a9ae44d41018bd71d891e813c30219ffff0305f28c828189637c7d205bab26169df9759896a357e4618a8ea7e5008de2b1b9038e7f8eeffd11d37b8cbef68870a5ab090aea80c4428f5675db9d528357e8859a0324529cc58f38d618297e0e133423e1d9599f8789a081ea17b28f99a1485bd78b0375d3528d0f5f9d02eabebe5fd03aa95b1082a07da941c9deac4b47fe848a019c03b26c0e1d71d69a2620e94c909651a9220908ae35a509535ee0fd4c594368f096039143c8495928dc046b1a5a6c590a7b0da40d4401895aa52219b1a15e774e6413032ab2cf346b480e9369d8e52d04b60f51a3cbb00a19726651939dd4d37148bed9039cea088fd86ab33422c9045f446d7230093c122ecdb4c8ff7cd2ed59f1a5aa480329cbe344ad4cdbfdc6b40cd2cd2ef2041443d8f844aaab24d390c34ecab6edd7039957864385849e5b6ecdc17d00e5e25b22155cb7fe72142b5e1541574d180767031cd9d9101fe3a898acb636e552fabd22a7cf43dde1eabcbda5f40b326428f6b7033046f178a0f62c5d4e8c5d5df95112cd4191362cfa6bc77b7827f5b25269b35f038f71c5677f3d5db72b4678309f408209cf7b018cf32427781b89c1b5f2c9e78803c6d61adba74ffd7c3ce1097ee6b3ff028001090b837498f7e71b5ae29f17a02d03648e1b5dd4ca9b4083570348e37a424d0adac0235a3e3dc9a7fe0795b401ad1c03378a21940b32395191759225ed4f64eb7e0725268250c0533d528e238654c6410399ddf21306fb13a184cf9e034cb68a7d941278cf2de9e0addcf6d40125553bbc03de492e84864e267636893ab08c7e0efa674c334c86505d116caf04f2c65c3876035139769035ccaf42a0ceff449c2301f7812e14d36f9da0265ad41051640020b4035b5f3cb23b73777f73754c6b3ab7128dcc25c3ea615cd628196a029b458b59900338157ba999bffaf24d29a5fef3429624150e43a2a37ba5cb4d0ccd1385d66e3003e82af6b977c8dab490761a5f3758576e5cf569806ee156ea2e112d7f2c3f5055032424158d684e33236a9aa1a7585483418f40b66151835e3fb51e404e002f849f03bc2de8cd96b876badabe812ff3ae5d71de003bdc4f19d0809dd1388ed1543dc103a44963b0cbc20cf423f6ecc88d223b851baf1492bb9634b4a4184431f4ef374b03360441aabab12fe46b8a987d07f6d25ddf7f703ed40c888d4a6e28d51f256f7a038af7b373ab74c162881ecf58cad60b0e660f456e72af9b1af8d6f14c938373a10387cbf8527cb4f762eb14f3feb7e1b46e5d39e0eef7689453ff572c9c0a6da23703f7aa965d1f87ebde702b98d57371c2897d28219cdb39a3ae699f3b5d131689ca034912de6b1d7b62bc9da42645b4ae9e804a4808f6e335129dabfb17ef656068f5038d07618205151273060a9cc3212e7dd3f9042083d2d322a22e8dac574bc4e73003308abebd066d457ccda5d940f65374706d5d16b08a6b041eb1f5a7f9862b211d03d25abfa1bfab0d8c31bb41ff3bceaf083da13265657854d6e2e46a03fd6dac670355d7116d5af9dd095f300e11d5d641d34ad93cb76a718e005bb35789f3b2a55b03e44071a54e07205b84fd4063244f8949128e2741f18e6912f3a43db49cdfad0303a2e602ab4187550d96b3b689c8e3c66eb6f356f5bcf46b3041879fda26ce165b039e946a839062d3ba0d1aa84ec0445c3fac33a225e7a5c9e3559efa1677c554f203b5b23421def62e167ed2ff2cd44bbeb4b027e23761300e7903b10b05ddd1f37a03d090157d2f0ee5e7b59686c831a58db94db8dfc6efe4992347e9b47895f73ff60399ec8b7838901baf1a5478d8a906fcd06ab1202999285d9e239e10c9cfdc6d5703555140627611186b806c25f055db50ca5350a1dbef1b9bf28dc1ce982dc2d6ed03c96bb9d91e27f83d04980e64c7b9b79f2c0f406f14af7781135995e596d518f403411bc4ffc9bad3984e5d894d2b4db597b2eb8a6e1d7c51257993a572a1fdf45405581e03cee014d8cd8ca9966728a60eb270e135691e06a2a8c156e20c86584e30040105581d02c647fd3dbc87f45d0e7591fc108e709b853098262480297e7f563485040105581d02f3721a782a5b92e5e52f3e272683acf506ae930613244355c4fd00480c1a0009af414929a9bc877cb800b2920219014005581e0374e606cdc7b8b5d3376d802627b4ff27a14fbe1df4ab035cd69f30eb100c05470770e657d7b81303562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03290f7c26fb6d24538d867149e77502f51c27612ab771f07c3f775a893007011bffffffffffffffff03fd4e35eb7af833e26c3bef1f57529dd566afa2b55258b383a2cfa097547e479003b32a6395c759cc0bebe6992002b7cc6334dbdba53f9db43ed20342e4d4521b5f05581e035dae3e01ad300f03337b16c268b0c2592bb437f8e59e35ee6ec66d80a007011bffffffffffffffff031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e037a7dad94ccc4b59b1e86dbcb942543b0b3ef2bf3e6c2afe16d9b33b79007011bffffffffffffffff0304f313311f675dcd826e88b6aa0eec37775bdd96be6e18b22a1069e5053874f00320b857ebdf0527473470a338aa0c27c50f1f48efdbf9b59b3be93857a271a1e10219bb1a030f620f2786d0a072d0080f2214fce5fa848e934e055ccc6597a862a8bb15fc6803c1e26fea6f253e7370190afa352b70a67095533e25979e0d14148517341af7110362036c85451b4eefebc2ac227b63a44a9d8a8eeec061fecdd9c7248549327cf103804e55ccd50e7e8e2e8136b7dc1c705d01de9f2adfe04ca764a437cdc770980c0219ffff03add9a9020f446516f52c70afce71474305a64546147501106132c4d7e51be9eb03dd08bdc4d2aaeb1de4f7046c6d718d8ddeb8a53c3279d95c8ac3f16a4db26f9a03f0464a5565dbf30bc5a066c66228443d3afad935cc22ab3230276c9a7be1ec220219ffff03c11b451a108480e9d126149473cd3922f6ec176d34b45df29617980375a4084e0325cc3000a9665242b399605b286f5a7d6322e83636840082ac2a8f3565cba7cc032d7515ac4730a6554c62175554055237a64aced432600989473ce0317e2c18f2039afa7e7b9678b2d246daa4fc6c60767d7ef83754b3b3542f31f9d50dc7e852a20219ffff03bce66ddfa9c1662487e96bb47a31c655e1ae9cf6fa0d9f725bed6520401ffae8036638355b88925d847663310d4765ba5927a0649b196c9079c6eb5098f659ca970304218e412057029c4d0662bb0d182a58e2e4129c7c0a029791bff73993333aa3035163ca16316c2ba1fdc3ed314a1ac40747e34b57dcc3b3040750bf602ec98bc0036f7f88b802bd8b1d9c8e3374644504a777578f4672538edef76f032595f22ab3030df858d1ed5009d3de99d32a8737c89e4915ec2606998201aab27d62801716e6035d9876b74d9478b1aa0f17cc2fd3c000c83c2e6146abb58b6719cb10254d8117035de7cbb6d87c2057e6062f25c31a6e6b6e9af537e370c7ba9a59789ce12cf6d703f44021f58da77163af624994327b7c38a5fb68d934fdd575f14856e19bcefda103b9323f871ea714d201dc343a2bd2be636ec8941973852aef565e9ae4c36de0380396b0e557bf644cdbfcf2d9731fff50940644351db0f6b78c84f8946db8dd03c60387a7e232dad9c693a9a95fe49465f8993a26480c1b8203b9a556d36168ae181e03c7dfef65ddfb6794b678eaf5d2a3e34fcdb90bd31599d2acafa141b60520dc9b037c36b9515587a73ff60b8a4306eecba189b91c91499e9822e3a875b183f0edbb034b4ae6103c945f2b0342ca102147bdc880d79f2665b707df45844d68327e304703b0dc3da01ecfef1a442ff2b21fe425bf04ab4ae3e3c7b9713e92aa2ac87ff12e03c0bbe46dad020d477be1a8f91b10c620059cedaf67d4bd21892d38b310545eb303129e232240d12490695744d705d6902d2ac5cab17b6a04b8d522c78c903b79d903aa4faca3c90f6d56f7540381e9ce335761999a037d75dc7b09002a18d9ff7ced039b987c3fa3e8968a5df6ddd91cc2aee0ffe4c3446526da5e9ba2df0dd8518b4303e93e9b81d70799bebce40bdbbca1032934bc075ff42393ea6a570af7ab91117603de3887ee238bbf7977f7cfb385caccc8306c1c5a8d7ce450533bea51ae01611503954ffe94ba0caff586d2da38e6332bd20c606c47690dc8141a89b5e4e744693103a6f73cff6335320337e0a1ced41b0c37492c0e651cf27dfeff5c73ae5bccc308032ba0c2470a9d11cc5147efe4861649990e2d99c9e45a0a6593836dc773556958031aaca606e1239894fccce9f85534c90c329dcc7ec67a9a9860e5bef18aef8bd80382dd7445ed7c9d56e4734274baf128f519c960fd3d58891a0299204f3c76425103a54d121026cff23f73529287e2aac227bb20ee64eacfe6f2ae6631404befc6b3039ccb5ae31862a2cf68ead93e4c2a49c3a6b7625b961f949d096ecaa7fe0685610341539588587904b87df09bdc7b8260081ff7216201722d3a68972eb04b190a8003b7ce86e974c87f04ac7f61bfbf9dbe8cefcf077e32d805aae9b4c243c29844cd03f0a0b63b7bb543f8dcf84e8ab1ed79c884764f151c18684f05e80e1bf35952030323704b2933f24f60606471404f15ef84debd47062d346bb7b2bf052c1e72785c03b08f7f2c4fea70cff8f50083955d85ca21de071f59e11150790e36156e86828203067bad2c969f761dbaa96f034dc1c0fb129e3bfe1b3a792db9e02805495992a605581e03116dc46b03e47cb81da50c266d0035e23260c9135b69574cc3aa84e4f00c06464a68bf04a5980324ef888519ab532e8a0796fcd9d93e91a5d530d3845f6f3559c154d9419cfa97045914f36080604052600436106100a75760003560e01c80639f8420b3116100645780639f8420b314610163578063aac476f814610176578063c0c53b8b14610189578063ce0b63ce146101a9578063f2fde38b146101bc578063f887ea40146101dc57600080fd5b806314298c51146100ac5780633cb747bf146100c1578063715018a6146100fd578063797594b0146101125780638da5cb5b146101325780638eaac8a314610150575b600080fd5b6100bf6100ba366004610f23565b6101fc565b005b3480156100cd57600080fd5b506099546100e1906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b34801561010957600080fd5b506100bf6104f1565b34801561011e57600080fd5b506097546100e1906001600160a01b031681565b34801561013e57600080fd5b506065546001600160a01b03166100e1565b6100bf61015e366004610f7a565b610505565b6100bf610171366004610fed565b61079f565b6100bf61018436600461100f565b6107dc565b34801561019557600080fd5b506100bf6101a4366004611073565b610826565b6100bf6101b73660046110be565b610989565b3480156101c857600080fd5b506100bf6101d73660046110f3565b610995565b3480156101e857600080fd5b506098546100e1906001600160a01b031681565b6099546001600160a01b03163381146102565760405162461bcd60e51b81526020600482015260176024820152761bdb9b1e481b595cdcd95b99d95c8818d85b8818d85b1b604a1b60448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190611117565b6001600160a01b0316736f297c61b5c92ef107ffd30cd56affe5a273e8416001600160a01b03161461032c5760405162461bcd60e51b815260206004820152601b60248201527f6f6e6c792063616c6c656420696e2064726f7020636f6e746578740000000000604482015260640161024d565b610334610a0e565b630465d0e960e31b61034a600460008587611134565b6103539161115e565b6001600160e01b0319161461039d5760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b21039b2b632b1ba37b960811b604482015260640161024d565b6000806103ad8460048188611134565b8101906103ba91906111fd565b5092505091503481146104045760405162461bcd60e51b81526020600482015260126024820152710dae6ce5cecc2d8eaca40dad2e6dac2e8c6d60731b604482015260640161024d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610451576040519150601f19603f3d011682016040523d82523d6000602084013e610456565b606091505b505090508061049d5760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b604482015260640161024d565b826001600160a01b03167f289360176646a5f99cb4b6300628426dca46b723f40db3c04449d6ed1745a0e7836040516104d891815260200190565b60405180910390a25050506104ec60018055565b505050565b6104f9610a6d565b6105036000610ac7565b565b6099546001600160a01b031633811461055a5760405162461bcd60e51b81526020600482015260176024820152761bdb9b1e481b595cdcd95b99d95c8818d85b8818d85b1b604a1b604482015260640161024d565b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bc9190611117565b6097546001600160a01b039081169116146106195760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e746572706172740000000000000000604482015260640161024d565b610621610a0e565b8334146106655760405162461bcd60e51b81526020600482015260126024820152710dae6ce5cecc2d8eaca40dad2e6dac2e8c6d60731b604482015260640161024d565b6000856001600160a01b03168560405160006040518083038185875af1925050503d80600081146106b2576040519150601f19603f3d011682016040523d82523d6000602084013e6106b7565b606091505b50509050806106fe5760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b604482015260640161024d565b61073e8685858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b1992505050565b856001600160a01b0316876001600160a01b03167f96db5d1cee1dd2760826bb56fabd9c9f6e978083e0a8b88559c741a29e9746e7878787604051610785939291906112ac565b60405180910390a35061079760018055565b505050505050565b6107d8338360005b6040519080825280601f01601f1916602001820160405280156107d1576020820181803683370190505b5084610b93565b5050565b61081f858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250610b93915050565b5050505050565b600054610100900460ff16158080156108465750600054600160ff909116105b806108605750303b158015610860575060005460ff166001145b6108c35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161024d565b6000805460ff1916600117905580156108e6576000805461ff0019166101001790555b6001600160a01b0383166109325760405162461bcd60e51b81526020600482015260136024820152727a65726f20726f75746572206164647265737360681b604482015260640161024d565b61093d848484610d19565b8015610983576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6104ec838360006107a7565b61099d610a6d565b6001600160a01b038116610a025760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161024d565b610a0b81610ac7565b50565b600260015403610a605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161024d565b6002600155565b60018055565b6065546001600160a01b031633146105035760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024d565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008151118015610b3457506000826001600160a01b03163b115b156107d85760405163109b953160e01b81526001600160a01b0383169063109b953190610b65908490600401611332565b600060405180830381600087803b158015610b7f57600080fd5b505af1158015610797573d6000803e3d6000fd5b610b9b610a0e565b60008311610bde5760405162461bcd60e51b815260206004820152601060248201526f0c8cae0dee6d2e840f4cae4de40cae8d60831b604482015260640161024d565b60985433906001600160a01b0316819003610c0c5782806020019051810190610c079190611345565b935090505b600081868686604051602401610c2594939291906113d2565b60408051601f198184030181529181526020820180516001600160e01b0316630465d0e960e31b1790526099546097549151635f7b157760e01b81529293506001600160a01b0390811692635f7b1577923492610c8f929116908a9087908a908a9060040161140f565b6000604051808303818588803b158015610ca857600080fd5b505af1158015610cbc573d6000803e3d6000fd5b5050505050856001600160a01b0316826001600160a01b03167f6670de856ec8bf5cb2b7e957c5dc24759716056f79d97ea5e7c939ca0ba5a6758787604051610d06929190611451565b60405180910390a3505061098360018055565b6001600160a01b038316610d6f5760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e7465727061727420616464726573730000000000000000604482015260640161024d565b6001600160a01b038116610dbe5760405162461bcd60e51b81526020600482015260166024820152757a65726f206d657373656e676572206164647265737360501b604482015260640161024d565b610dc6610e25565b610dce610e54565b609780546001600160a01b038086166001600160a01b0319928316179092556099805484841692169190911790558216156104ec57609880546001600160a01b0384166001600160a01b0319909116179055505050565b600054610100900460ff16610e4c5760405162461bcd60e51b815260040161024d90611472565b610503610e83565b600054610100900460ff16610e7b5760405162461bcd60e51b815260040161024d90611472565b610503610eaa565b600054610100900460ff16610a675760405162461bcd60e51b815260040161024d90611472565b600054610100900460ff16610ed15760405162461bcd60e51b815260040161024d90611472565b61050333610ac7565b60008083601f840112610eec57600080fd5b50813567ffffffffffffffff811115610f0457600080fd5b602083019150836020828501011115610f1c57600080fd5b9250929050565b60008060208385031215610f3657600080fd5b823567ffffffffffffffff811115610f4d57600080fd5b610f5985828601610eda565b90969095509350505050565b6001600160a01b0381168114610a0b57600080fd5b600080600080600060808688031215610f9257600080fd5b8535610f9d81610f65565b94506020860135610fad81610f65565b935060408601359250606086013567ffffffffffffffff811115610fd057600080fd5b610fdc88828901610eda565b969995985093965092949392505050565b6000806040838503121561100057600080fd5b50508035926020909101359150565b60008060008060006080868803121561102757600080fd5b853561103281610f65565b945060208601359350604086013567ffffffffffffffff81111561105557600080fd5b61106188828901610eda565b96999598509660600135949350505050565b60008060006060848603121561108857600080fd5b833561109381610f65565b925060208401356110a381610f65565b915060408401356110b381610f65565b809150509250925092565b6000806000606084860312156110d357600080fd5b83356110de81610f65565b95602085013595506040909401359392505050565b60006020828403121561110557600080fd5b813561111081610f65565b9392505050565b60006020828403121561112957600080fd5b815161111081610f65565b6000808585111561114457600080fd5b8386111561115157600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156111865780818660040360031b1b83161692505b505092915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156111cd576111cd61118e565b604052919050565b600067ffffffffffffffff8211156111ef576111ef61118e565b50601f01601f191660200190565b6000806000806080858703121561121357600080fd5b843561121e81610f65565b9350602085013561122e81610f65565b925060408501359150606085013567ffffffffffffffff81111561125157600080fd5b8501601f8101871361126257600080fd5b8035611275611270826111d5565b6111a4565b81815288602083850101111561128a57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60005b838110156112fd5781810151838201526020016112e5565b50506000910152565b6000815180845261131e8160208601602086016112e2565b601f01601f19169290920160200192915050565b6020815260006111106020830184611306565b6000806040838503121561135857600080fd5b825161136381610f65565b602084015190925067ffffffffffffffff81111561138057600080fd5b8301601f8101851361139157600080fd5b805161139f611270826111d5565b8181528660208385010111156113b457600080fd5b6113c58260208301602086016112e2565b8093505050509250929050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061140590830184611306565b9695505050505050565b600060018060a01b03808816835286602084015260a0604084015261143760a0840187611306565b606084019590955292909216608090910152509392505050565b82815260406020820152600061146a6040830184611306565b949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220f310fc2986695769222ada97a097bc66df7799b18b1a62d8b7f5ce0033cfd3c864736f6c6343000810003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341ff05581d025bef676d86863de77e5358b3686dcae6d5c938292938748ba67ed60e07011914f305581d029e1f1d250f6a14a16d7d322891538132ff627d985bfbb03db825807b0c0847602c0c9b91b43002188805581e031937532dd871dfa9adb8cddf31629ca0ec129e0d53766502cb545e0f200c0347388c77c1592db205581e033e123976538c4cde78725cbe9e8bd871d19f1b61bf43ca536336d3df900c014607adbe74817805581e038bea6559ff697b240e7339828cb93a64e288ad34ab403241d544db2530040203bbc00de2a0c8f09f67a4d4a39bfe54126158f16d54cc83f6d7ce2addea30040705581e0310f37e473747c2f4ee58bcf4a220f0e3d6f2bc5d62db2c6ffdcf576f500c014628ed6103d00003242f7c81f5862e5c4319c7041334bb9467ae4eb034adfeed28288069c43beeef0219fc8903aa61d8e0c7c2a7910f5d0b75aa7b87e2bd0711a0ca3766ea7d4ebef2992f9ed003b9e3d0cee1ea750781926f9b2f89441dd8d45d646e0f785e204d417e8adc32a6031e81a22c6e18b0fd3b0a347dcc90a6b10607ec84a49b52e13fd98dffec0d3e4403b9b05fa75606a37cfb3c9e954a85c2540336e58c051d8c96590b73b283ea6ba303bcef27fd319fabf080a085b57aa929761d3a530db1fc510986182b4024cf94080219ffff03892c04d6d49de72903b84338f7a49ec549bce541232f7c657a7ef4ea31b7f059030c61e5c1955ca971f632617fcca7a7128d5ed198fdfec377793d98e62b3815e30219ffff03a6e0d327a0db7127f67786f6453dc0e76651043343b8604f557879eac2c70a0503d7b451b024b327f571ba5398cce84af90741e5b485ad8fc41c18aced75a4ca6d03959ca02c96647833dbf71fef1da24f5141b8f7b84ee6f54497a1f23d3cd384b0032c0b4721b0712a449f6f7e21175b600c2958c48be7501df8e290554a8974a7140219ffff038107d788588ed6878f2b3b910cef913533cc946e0fbd1438acf0d996e2ea752703869d4e940c2ad5e9bcb6a6a3c889da93ba6c189ce2bf00a77a9e69e6144c2f0c032425c1fc6e595d6b0f645accc4c21083cfefd1a9efdd87172767bc5ee6f59e2303f6720b9a35ab2688ea15cb8d7f02b6e1c19e2f8b9b731dd4260dafc291e0bddd03cdf2f8cc3905022ee83c38aad4d4647dd1be7c49f98d71a26db66f2a426a284403493b52030af78f050984c35467cb55da9d662df99e7a9bcc65beef8a9c12c6c003562de812d11cfc444183443f56aea6b4fe492d125cba9ea937f71051db83fc5e031170d15fab26800a0f80a42b1b294d9ed67dea77ae383f7f7eb2e07cd3ced8ab0306d657a9f9220226f71ffb6a98e68431e579f13fabbfa188fd338baf6a97744e03eb55b743943f869a548326d8486b65e3b12f872b9213963e92eddfd584d07d2603280f6396e7ec09b649999eb7b90fbb9850ec85203eff2662dee6ac05345b1fc5031844f0aba7445f99b4bc8147f88fe15ddae93f80a4ad3a688fb25e0c2b6579a5035c9cbf9868fee5206745c5212b72847bd4b8b25353915eef1c2fb65728e83d5c03834207f11ed3a7efefebd813b5ea1fdfde444b778a8102d6f7986877e5429ad10358b3a075ec106ad2d29ab124999dd9d023884208764aa937b7b20bccfd2685c1034f26b135f63b685b73a65fbf22c13c741f5a41baaf34d9ade497444a8fd5bf9603003435c60247f1eca0f057a3b6af3e8328bd93ec58421e7b6e4f91a5a170701c031d71a19ba847a622a0ebb1a583bf49a32dfda5bea2c51b349427334352acf7c9039d553590ef4f7e4363d39873195395593f05490cdc8fda36fe37ea0ddbaf1c1e03351df946443175e8d854ef1fd14f29b06fa6935bf230f291dc62e816f28f2ad9036e3c26a5f4abd8bbcbc608b4a9902aefb950099c3de921184c86884c7e8f191c03097088e6d752c0fd5220e48d8506139514e2c598ddf9c3c83ee41242acd61992034edfe3e3553cc0e71657c7d4f24a7c966031821e48f2078d53b4df0d02b9eda903345c9ee330f0034c2ed8ba2beec8ea559cf5e2ab11f0af7c08f41fd8b1ef29d503638e3b1046c42f855b4091861ef74dcb9bf19baec21aebcd623b15abd141969e039a59c23b6538eb749f568fe884a86ce98d5cbf876d628b0469d0612cf73ff1c20316df6e0790b73cc26917d0019efced7094affeaf632c7adf75a82a537b5e2f8803a72e7a71614e31e740afe0eb0fcc80d09b7e6791ffb56e29bebba3f9a68fb5a9034bef21f9e794f490c6b32ebdca539e7c6304b241f4632adc77f1ce60063458ec0605581e03a00624792783d56eeebe0d96aee377a9f66ca2a32ecbbef3f9e1c8287007011bffffffffffffffff05581e03a3be5e46f1e63c4853a7a0c2ddb8d7726d5dfd07b16254952f2e3833b00c02460143de0f960004593266608060405234801561001057600080fd5b50600436106101375760003560e01c80637738034c116100b8578063b1b1b2091161007c578063b1b1b20914610255578063c4d66de814610278578063c6b94ab01461028b578063cba4c652146102ae578063d9ce1901146102c1578063f2fde38b146102d457600080fd5b80637738034c1461021057806381ada46c146102185780638456cb591461022b5780638da5cb5b146102335780638ec6a68a1461024457600080fd5b8063461a4478116100ff578063461a4478146101cf5780635c975abb146101e25780636e296e45146101ed5780636f1c8d47146101f5578063715018a61461020857600080fd5b80630ecf2eea1461013c57806321d800ec14610151578063299ca478146101895780633dbb202b146101b45780633f4ba83a146101c7575b600080fd5b61014f61014a3660046127c9565b6102e7565b005b61017461015f3660046127c9565b60ca6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b60005461019c906001600160a01b031681565b6040516001600160a01b039091168152602001610180565b61014f6101c2366004612939565b610332565b61014f61045c565b61019c6101dd366004612998565b61046e565b60655460ff16610174565b61019c6104f5565b61014f6102033660046129e8565b61056a565b61014f610704565b61014f610716565b61014f6102263660046127c9565b610778565b61014f6107c0565b6033546001600160a01b031661019c565b60cd546001600160a01b031661019c565b6101746102633660046127c9565b60cb6020526000908152604090205460ff1681565b61014f610286366004612a73565b6107c8565b6101746102993660046127c9565b60c96020526000908152604090205460ff1681565b61014f6102bc366004612a73565b6109a4565b61014f6102cf366004612be1565b6109ce565b61014f6102e2366004612a73565b610daa565b6102ef610e23565b600081815260c96020526040808220805460ff191660011790555182917ff52508d5339edf0d7e5060a416df98db067af561bdc60872d29c0439eaa13a0291a250565b600061036e6040518060400160405280601981526020017821b0b737b734b1b0b62a3930b739b0b1ba34b7b721b430b4b760391b81525061046e565b90506000816001600160a01b031663b8f770056040518163ffffffff1660e01b815260040160206040518083038186803b1580156103ab57600080fd5b505afa1580156103bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e39190612d2e565b905060006103fa8633878564ffffffffff16610e7d565b905061040d83828663ffffffff16610eca565b856001600160a01b03167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a3387858860405161044c9493929190612da5565b60405180910390a2505050505050565b610464610e23565b61046c610f38565b565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac19061049f908590600401612ded565b60206040518083038186803b1580156104b757600080fd5b505afa1580156104cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ef9190612e00565b92915050565b60cc546000906001600160a01b031661dead141561055a5760405162461bcd60e51b815260206004820152601f60248201527f78446f6d61696e4d65737361676553656e646572206973206e6f74207365740060448201526064015b60405180910390fd5b5060cc546001600160a01b031690565b60006105a66040518060400160405280601981526020017821b0b737b734b1b0b62a3930b739b0b1ba34b7b721b430b4b760391b81525061046e565b60405163153f8c5f60e11b8152600481018690529091506000906001600160a01b03831690632a7f18be9060240160606040518083038186803b1580156105ec57600080fd5b505afa158015610600573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106249190612e1d565b9050600061063489898989610e7d565b9050600073111100000000000000000000000000000000111130016007602160991b01878460405160200161066c9493929190612e81565b604051602081830303815290604052805190602001209050826000015181146106e75760405162461bcd60e51b815260206004820152602760248201527f50726f7669646564206d65737361676520686173206e6f74206265656e20656e60448201526638bab2bab2b21760c91b6064820152608401610551565b6106f884838763ffffffff16610eca565b50505050505050505050565b61070c610e23565b61046c6000610f8a565b60cd546001600160a01b031633146107705760405162461bcd60e51b815260206004820181905260248201527f6d73672e73656e6465722073686f756c652062652070617573656f776e65722e6044820152606401610551565b61046c610fdc565b610780610e23565b600081815260c96020526040808220805460ff191690555182917f52c8a2680a9f4cc0ad0bf88f32096eadbebf0646ea611d93a0ce6a29a024040591a250565b610770610e23565b600054600160a81b900460ff16158080156107f057506000546001600160a01b90910460ff16105b806108115750303b1580156108115750600054600160a01b900460ff166001145b6108745760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610551565b6000805460ff60a01b1916600160a01b17905580156108a1576000805460ff60a81b1916600160a81b1790555b6000546001600160a01b03161561090d5760405162461bcd60e51b815260206004820152602a60248201527f4c3143726f7373446f6d61696e4d657373656e67657220616c72656164792069604482015269373a34b0b634bd32b21760b11b6064820152608401610551565b600080546001600160a01b0384166001600160a01b03199182161790915560cc805490911661dead179055610940611019565b610948611042565b610950611074565b6109586110a9565b80156109a0576000805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6109ac610e23565b60cd80546001600160a01b0319166001600160a01b0392909216919091179055565b60026097541415610a215760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610551565b6002609755610a2e6110d9565b6000610a3c86868686610e7d565b9050610a48818361111f565b1515600114610aa95760405162461bcd60e51b815260206004820152602760248201527f50726f7669646564206d65737361676520636f756c64206e6f742062652076656044820152663934b334b2b21760c91b6064820152608401610551565b8051602080830191909120600081815260cb90925260409091205460ff1615610b285760405162461bcd60e51b815260206004820152602b60248201527f50726f7669646564206d6573736167652068617320616c72656164792062656560448201526a37103932b1b2b4bb32b21760a91b6064820152608401610551565b600081815260c9602052604090205460ff1615610b925760405162461bcd60e51b815260206004820152602260248201527f50726f7669646564206d65737361676520686173206265656e20626c6f636b65604482015261321760f11b6064820152608401610551565b610bcc6040518060400160405280601981526020017821b0b737b734b1b0b62a3930b739b0b1ba34b7b721b430b4b760391b81525061046e565b6001600160a01b0316876001600160a01b03161415610c495760405162461bcd60e51b815260206004820152603360248201527f43616e6e6f742073656e64204c322d3e4c31206d6573736167657320746f204c604482015272189039bcb9ba32b69031b7b73a3930b1ba399760691b6064820152608401610551565b60cc80546001600160a01b0319166001600160a01b0388811691909117909155604051600091891690610c7d908890612eb9565b6000604051808303816000865af19150503d8060008114610cba576040519150601f19603f3d011682016040523d82523d6000602084013e610cbf565b606091505b505060cc80546001600160a01b03191661dead179055905080151560011415610d2757600082815260cb6020526040808220805460ff191660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2610d53565b60405182907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f90600090a25b6000833343604051602001610d6a93929190612ed5565b60408051601f198184030181529181528151602092830120600090815260ca9092529020805460ff19166001908117909155609755505050505050505050565b610db2610e23565b6001600160a01b038116610e175760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610551565b610e2081610f8a565b50565b6033546001600160a01b0316331461046c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610551565b606084848484604051602401610e969493929190612f14565b60408051601f198184030181529190526020810180516001600160e01b031663cbd4ece960e01b1790529050949350505050565b60405163037f703f60e51b81526001600160a01b03841690636fee07e090610f01906007602160991b019085908790600401612f51565b600060405180830381600087803b158015610f1b57600080fd5b505af1158015610f2f573d6000803e3d6000fd5b50505050505050565b610f40611142565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610fe46110d9565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610f6d3390565b600054600160a81b900460ff1661046c5760405162461bcd60e51b815260040161055190612f78565b600054600160a81b900460ff1661106b5760405162461bcd60e51b815260040161055190612f78565b61046c33610f8a565b600054600160a81b900460ff1661109d5760405162461bcd60e51b815260040161055190612f78565b6065805460ff19169055565b600054600160a81b900460ff166110d25760405162461bcd60e51b815260040161055190612f78565b6001609755565b60655460ff161561046c5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610551565b600061112a8261118b565b801561113b575061113b83836112d8565b9392505050565b60655460ff1661046c5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610551565b6000806111c36040518060400160405280601481526020017329ba30ba32a1b7b6b6b4ba36b2b73a21b430b4b760611b81525061046e565b602084015160405163011343b360e71b81529192506001600160a01b038316916389a1d980916111f591600401613019565b60206040518083038186803b15801561120d57600080fd5b505afa158015611221573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611245919061302c565b15801561113b575082516020840151604080860151905163b768bb1760e01b81526001600160a01b0385169363b768bb179361128893919290919060040161304e565b60206040518083038186803b1580156112a057600080fd5b505afa1580156112b4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b919061302c565b600080836007602160991b016040516020016112f59291906130c6565b60408051601f1981840301815282825280516020918201209083015260009082015260600160408051601f19818403018152908290528051602091820120602160f91b91830191909152915060009081906113699060340160408051601f1981840301815291905260608701518751611467565b90925090506001821515146113fc5760405162461bcd60e51b815260206004820152604d60248201527f4d6573736167652070617373696e67207072656465706c6f7920686173206e6f60448201527f74206265656e20696e697469616c697a6564206f7220696e76616c696420707260648201526c37b7b310383937bb34b232b21760991b608482015260a401610551565b600061140782611490565b905061145c8460405160200161141f91815260200190565b60408051601f1981840301815290829052600160f81b60208301529060210160405160208183030381529060405288608001518460400151611554565b979650505050505050565b60006060600061147686611578565b90506114838186866115aa565b9250925050935093915050565b6040805160808101825260008082526020820181905291810182905260608101829052906114bd83611685565b905060405180608001604052806114ed836000815181106114e0576114e06130fd565b60200260200101516116b8565b8152602001611508836001815181106114e0576114e06130fd565b815260200161153083600281518110611523576115236130fd565b60200260200101516116bf565b815260200161154b83600381518110611523576115236130fd565b90529392505050565b60008061156086611578565b905061156e818686866117c1565b9695505050505050565b6060818051906020012060405160200161159491815260200190565b6040516020818303038152906040529050919050565b6000606060006115b9856117f7565b905060008060006115cb848a896118f1565b815192955090935091501580806115df5750815b61162b5760405162461bcd60e51b815260206004820152601a60248201527f50726f76696465642070726f6f6620697320696e76616c69642e0000000000006044820152606401610551565b6000816116475760405180602001604052806000815250611673565b61167386611656600188613129565b81518110611666576116666130fd565b6020026020010151611d15565b919b919a509098505050505050505050565b6040805180820182526000808252602091820152815180830190925282518252808301908201526060906104ef90611d3f565b60006104ef825b60006021826000015111156117165760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610551565b600080600061172485611f2b565b91945092509050600081600181111561173f5761173f613140565b1461178c5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610551565b600083866020015161179e9190613156565b8051909150602084101561156e5760208490036101000a90049695505050505050565b60008060006117d18786866115aa565b9150915081801561145c575080516020808301919091208751918801919091201461145c565b6060600061180483611685565b9050600081516001600160401b03811115611821576118216127f7565b60405190808252806020026020018201604052801561186657816020015b604080518082019091526060808252602082015281526020019060019003908161183f5790505b50905060005b82518110156118e957600061189984838151811061188c5761188c6130fd565b6020026020010151612275565b905060405180604001604052808281526020016118b583611685565b8152508383815181106118ca576118ca6130fd565b60200260200101819052505080806118e19061316e565b91505061186c565b509392505050565b6000606081808061190187612305565b90506000869050600080611928604051806040016040528060608152602001606081525090565b60005b8c51811015611ced578c8181518110611946576119466130fd565b60200260200101519150828461195c9190613156565b9350611969600188613156565b9650836119c1578151805160209091012085146119bc5760405162461bcd60e51b8152602060048201526011602482015270092dcecc2d8d2c840e4dedee840d0c2e6d607b1b6044820152606401610551565b611a7e565b815151602011611a23578151805160209091012085146119bc5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6172676520696e7465726e616c206861736800000000006044820152606401610551565b84611a31836000015161243f565b14611a7e5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420696e7465726e616c206e6f646520686173680000000000006044820152606401610551565b611a8a60106001613156565b8260200151511415611b03578551841415611aa457611ced565b6000868581518110611ab857611ab86130fd565b602001015160f81c60f81b60f81c9050600083602001518260ff1681518110611ae357611ae36130fd565b60200260200101519050611af681612467565b9650600194505050611cdb565b60028260200151511415611c93576000611b1c8361249d565b9050600081600081518110611b3357611b336130fd565b016020015160f81c90506000611b4a60028361319f565b611b559060026131c1565b90506000611b66848360ff166124c1565b90506000611b748b8a6124c1565b90506000611b8283836124f7565b905060ff851660021480611b99575060ff85166003145b15611bd357808351148015611bae5750808251145b15611bc057611bbd818b613156565b99505b50600160ff1b9950611ced945050505050565b60ff85161580611be6575060ff85166001145b15611c3c5782518114611c065750600160ff1b9950611ced945050505050565b611c2d8860200151600181518110611c2057611c206130fd565b6020026020010151612467565b9a509750611cdb945050505050565b60405162461bcd60e51b815260206004820152602660248201527f52656365697665642061206e6f6465207769746820616e20756e6b6e6f776e206044820152650e0e4caccd2f60d31b6064820152608401610551565b60405162461bcd60e51b815260206004820152601d60248201527f526563656976656420616e20756e706172736561626c65206e6f64652e0000006044820152606401610551565b80611ce58161316e565b91505061192b565b50600160ff1b841486611d0087866124c1565b909e909d50909b509950505050505050505050565b602081015180516060916104ef91611d2f90600190613129565b8151811061188c5761188c6130fd565b6060600080611d4d84611f2b565b91935090915060019050816001811115611d6957611d69613140565b14611db65760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e0000000000000000006044820152606401610551565b6040805160208082526104208201909252600091816020015b6040805180820190915260008082526020820152815260200190600190039081611dcf5790505090506000835b8651811015611f205760208210611e685760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201526939ba103632b733ba341760b11b6064820152608401610551565b600080611ea56040518060400160405280858c60000151611e899190613129565b8152602001858c60200151611e9e9190613156565b9052611f2b565b509150915060405180604001604052808383611ec19190613156565b8152602001848b60200151611ed69190613156565b815250858581518110611eeb57611eeb6130fd565b6020908102919091010152611f01600185613156565b9350611f0d8183613156565b611f179084613156565b92505050611dfc565b508152949350505050565b600080600080846000015111611f835760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e00000000000000006044820152606401610551565b6020840151805160001a607f8111611fa857600060016000945094509450505061226e565b60b78111612024576000611fbd608083613129565b9050808760000151116120125760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e000000000000006044820152606401610551565b6001955093506000925061226e915050565b60bf811161211357600061203960b783613129565b90508087600001511161208e5760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e006044820152606401610551565b600183015160208290036101000a90046120a88183613156565b8851116120f75760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e00000000000000006044820152606401610551565b612102826001613156565b965094506000935061226e92505050565b60f7811161218e57600061212860c083613129565b90508087600001511161217d5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e0000000000000000006044820152606401610551565b60019550935084925061226e915050565b600061219b60f783613129565b9050808760000151116121f05760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e0000006044820152606401610551565b600183015160208290036101000a900461220a8183613156565b8851116122525760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b210292628103637b733903634b9ba1760511b6044820152606401610551565b61225d826001613156565b965094506001935061226e92505050565b9193909250565b6060600080600061228585611f2b565b9194509250905060008160018111156122a0576122a0613140565b146122ed5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e00000000000000006044820152606401610551565b6122fc85602001518484612573565b95945050505050565b606060008251600261231791906131e4565b6001600160401b0381111561232e5761232e6127f7565b6040519080825280601f01601f191660200182016040528015612358576020820181803683370190505b50905060005b835181101561243857600484828151811061237b5761237b6130fd565b01602001516001600160f81b031916901c826123988360026131e4565b815181106123a8576123a86130fd565b60200101906001600160f81b031916908160001a90535060108482815181106123d3576123d36130fd565b01602001516123e5919060f81c61319f565b60f81b826123f48360026131e4565b6123ff906001613156565b8151811061240f5761240f6130fd565b60200101906001600160f81b031916908160001a905350806124308161316e565b91505061235e565b5092915050565b600060208251101561245357506020015190565b818060200190518101906104ef9190613203565b600060606020836000015110156124885761248183612651565b9050612494565b61249183612275565b90505b61113b8161243f565b60606104ef6124bc836020015160008151811061188c5761188c6130fd565b612305565b6060825182106124e057506040805160208101909152600081526104ef565b61113b83838486516124f29190613129565b61265c565b6000805b80845111801561250b5750808351115b801561255c5750828181518110612524576125246130fd565b602001015160f81c60f81b6001600160f81b03191684828151811061254b5761254b6130fd565b01602001516001600160f81b031916145b1561113b578061256b8161316e565b9150506124fb565b60606000826001600160401b0381111561258f5761258f6127f7565b6040519080825280601f01601f1916602001820160405280156125b9576020820181803683370190505b5090508051600014156125cd57905061113b565b60006125d98587613156565b90506020820160005b6125ed60208761321c565b8110156126245782518252612603602084613156565b9250612610602083613156565b91508061261c8161316e565b9150506125e2565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b60606104ef826127b3565b60608161266a81601f613156565b10156126a95760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610551565b826126b48382613156565b10156126f35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610551565b6126fd8284613156565b845110156127415760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610551565b60608215801561276057604051915060008252602082016040526127aa565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612799578051835260209283019201612781565b5050858452601f01601f1916604052505b50949350505050565b60606104ef826020015160008460000151612573565b6000602082840312156127db57600080fd5b5035919050565b6001600160a01b0381168114610e2057600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b038111828210171561282f5761282f6127f7565b60405290565b604080519081016001600160401b038111828210171561282f5761282f6127f7565b60405160a081016001600160401b038111828210171561282f5761282f6127f7565b604051601f8201601f191681016001600160401b03811182821017156128a1576128a16127f7565b604052919050565b60006001600160401b038311156128c2576128c26127f7565b6128d5601f8401601f1916602001612879565b90508281528383830111156128e957600080fd5b828260208301376000602084830101529392505050565b600082601f83011261291157600080fd5b61113b838335602085016128a9565b803563ffffffff8116811461293457600080fd5b919050565b60008060006060848603121561294e57600080fd5b8335612959816127e2565b925060208401356001600160401b0381111561297457600080fd5b61298086828701612900565b92505061298f60408501612920565b90509250925092565b6000602082840312156129aa57600080fd5b81356001600160401b038111156129c057600080fd5b8201601f810184136129d157600080fd5b6129e0848235602084016128a9565b949350505050565b60008060008060008060c08789031215612a0157600080fd5b8635612a0c816127e2565b95506020870135612a1c816127e2565b945060408701356001600160401b03811115612a3757600080fd5b612a4389828a01612900565b94505060608701359250612a5960808801612920565b9150612a6760a08801612920565b90509295509295509295565b600060208284031215612a8557600080fd5b813561113b816127e2565b600060c08284031215612aa257600080fd5b612aaa61280d565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b0380821115612ae857600080fd5b612af485838601612900565b608084015260a0840135915080821115612b0d57600080fd5b50612b1a84828501612900565b60a08301525092915050565b600060408284031215612b3857600080fd5b612b40612835565b9050813581526020808301356001600160401b0380821115612b6157600080fd5b818501915085601f830112612b7557600080fd5b813581811115612b8757612b876127f7565b8060051b9150612b98848301612879565b8181529183018401918481019088841115612bb257600080fd5b938501935b83851015612bd057843582529385019390850190612bb7565b808688015250505050505092915050565b600080600080600060a08688031215612bf957600080fd5b8535612c04816127e2565b94506020860135612c14816127e2565b935060408601356001600160401b0380821115612c3057600080fd5b612c3c89838a01612900565b9450606088013593506080880135915080821115612c5957600080fd5b9087019060a0828a031215612c6d57600080fd5b612c75612857565b82358152602083013582811115612c8b57600080fd5b612c978b828601612a90565b602083015250604083013582811115612caf57600080fd5b612cbb8b828601612b26565b604083015250606083013582811115612cd357600080fd5b612cdf8b828601612900565b606083015250608083013582811115612cf757600080fd5b612d038b828601612900565b6080830152508093505050509295509295909350565b805164ffffffffff8116811461293457600080fd5b600060208284031215612d4057600080fd5b61113b82612d19565b60005b83811015612d64578181015183820152602001612d4c565b83811115612d73576000848401525b50505050565b60008151808452612d91816020860160208601612d49565b601f01601f19169290920160200192915050565b6001600160a01b0385168152608060208201819052600090612dc990830186612d79565b905064ffffffffff8416604083015263ffffffff8316606083015295945050505050565b60208152600061113b6020830184612d79565b600060208284031215612e1257600080fd5b815161113b816127e2565b600060608284031215612e2f57600080fd5b604051606081018181106001600160401b0382111715612e5157612e516127f7565b60405282518152612e6460208401612d19565b6020820152612e7560408401612d19565b60408201529392505050565b6001600160a01b0385811682528416602082015263ffffffff8316604082015260806060820181905260009061156e90830184612d79565b60008251612ecb818460208701612d49565b9190910192915050565b60008451612ee7818460208901612d49565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6001600160a01b03858116825284166020820152608060408201819052600090612f4090830185612d79565b905082606083015295945050505050565b60018060a01b03841681528260208201526060604082015260006122fc6060830184612d79565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b805182526020810151602083015260408101516040830152606081015160608301526000608082015160c0608085015261300060c0850182612d79565b905060a083015184820360a08601526122fc8282612d79565b60208152600061113b6020830184612fc3565b60006020828403121561303e57600080fd5b8151801515811461113b57600080fd5b838152600060206060818401526130686060840186612fc3565b83810360408501526040810185518252828601516040848401528181518084526060850191508583019450600093505b808410156130b85784518252938501936001939093019290850190613098565b509998505050505050505050565b600083516130d8818460208801612d49565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561313b5761313b613113565b500390565b634e487b7160e01b600052602160045260246000fd5b6000821982111561316957613169613113565b500190565b600060001982141561318257613182613113565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600060ff8316806131b2576131b2613189565b8060ff84160691505092915050565b600060ff821660ff8416808210156131db576131db613113565b90039392505050565b60008160001904831182151516156131fe576131fe613113565b500290565b60006020828403121561321557600080fd5b5051919050565b60008261322b5761322b613189565b50049056fea264697066735822122063c7024ca7ded8cdabced3c0d4897e94132ae114a75718c668aa1bf77465918864736f6c634300080900330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563055016968f3f16c3e64003f02e121cf0d5ccbf5625a420058210354a83ed9988f79f6038d4c7a7dadbad8af32f4ad6df893e0e5807a1b1944ff904101005821037197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe042dead038294c345ae616827d2e80a06f3d9409ecc461252035a6a0d7c41600f46ad06cc0219011c05581d025353f831dc6a25b89b855cd82bd89f57f59827788fde78ce3dbbff990701193266031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581d0249e4765e00a6d1e982e71af3ff3007f47e7e28ab8ac17e843141547707011bffffffffffffffff0219010105581e03aeca9bb892d4b164e60349621289784c65243b0379dcefb9d781b22740084723a1038ff58cc2034639213ac696a328b53becad0adf20981f36c46e406d9c85d68afb8f46ab5a4f0605581e0302a4edd7a6c684db6f2ed4fae698e22e6ae4d5d5284587518fd0c66d0007011bffffffffffffffff05581e034f50baff1f5b5f0a8d32462c36ae1d14e8e043accf106e311bcc8b33500c0145bc97c3240005581e033a9ed44f7e46711ad4d7639d5a4d8e4debd89ba90e9e2e4f2b08a2d6000c014703f7ed2a5d5af805581e036f9016a6c532b8d1741de22af177fab3086896603cc93e1fbb2f25fff00c02470404a4280e0e0005581e036dea2b4a52756a9c7bd05d6b9c91d7379204a2cef78e2816c9da7bcac00c134702dd5cff138594021985dd0354eb951a29af32058e5ef951bf093b28bda790ca3a046f2485f29f5f41ac7c3b031305474de95325fc428868e907f63a4d6b0a0065e132e4b3383408c9c3dec62303edfcc3f124083bb62fc7f34b7a3aa6dee99e55ecfb3ec06f5b8e68cd0171826603746b07fa4dd409f1ccbb2d8a0b8b4c64cfe51ae195720b4c1f92a52fe0e3bce20219ffff030828009497c71bd8187747a5da601907ffc698521475bcb2730f8e4b8b69bcce03bbee6b5cb024fead93b9aec51d034ea134e74526ff4afb3181b2a4a25d0481850360d54924ede748be6a7f728bf0f7430a5ddf3b0c417e6caf804d3356dfd4aea90345a3f6fd413a1e57ef425d3facb761b996876937990a992884eba1391c6ef878036522226a2286602b59796fd49e77e6dd31cc714ea871992932abaf4248a1d0980219ffff03932ca8e116dcf678c642c772ec8c8f950a9c1c48d8f1133776685d7f02125c350336bff16b9c7efe3b1c8418efe3386f971d23c7c996306fbf27f62f142063598203ff869ff88349d5c0dcd3d769915bcbfc63ed43c545b2ffde28d7fce5ce5ecfb503c495254fd4ac87582dc123b4e8226f848a17ac534b0aa33e88743b861914bbc703039dc6509042d56de809a38a3fac57cde9cd5ab113fbfef5d03cd3080460fd5a03f5e8b28740f6bccd70805e54566eb537bec86f018b8705e686a6a7561d53553703e46a0884d66254903aa6e7765c0ef22b589d263da25285638cc4f448d29d730203871c04c9b239374fef9b2fc24c59e54ae891cd0c7a8c1576b1666dd1537e6cfe0219ffff03490d489c68c9407da05e77abd400946e2d68d133c9ea02ccee015b26a73b3aac03f8ae45ed2290e1fb2e321701a0a8c9ce86e331fddf7570db08dc8f844cb9473d03d43909ecbec350e8778025539ccfefa9c8801bdd80710ef9e17354151ae78f2b03352e7e1425f85e60b8a344251129cc8ddfab282fd16b31b4c1753a35a7a881c30219ffff036872b09f297d9ea28b1becf99651196f3d399742b2bae811455ce3f949aa9826037215f76f136a4da73870004e62f729651a348f3702a14ccd517c59d6f9ad68c0039134b7a404add331039befda97079a808de292583bdae294c15b186e5cc0e0ec039afa8da8edf2c76bc9a8563051a5741edf97f29489e3241377c0aa7047ca0b1303f515d7e4f20c4bec328b24c9b4992196276431068e006eadc0a3a208c956b178034508a36b4ed8ca6ebf74576439089516b66385d98867585d497d2d9fc4cc13bd03cc75e6aeab68633cbcbc7036aaac343a25c4b7938acf04b7ad7c5815cedca17603bd9501f42e9fc198c8c89c8fbb9cbd3bfb63bb57caddf331cbcfcbe986ed7e9a03e83fc1ab819ba8445cab086c46f9cd6408368a2cf4f446e4b8c8b5ee3ec3213a03f48a73085a959045f74bcb73fb35c1cbc09f6b364bd23124a99b3584b77898f103b769ef0da3b09bbca2572d6bbb80fd445c35933a7bd28be6e5c2344bb9017969033c4163051a20bd584759d69767a3cd5b3b1da79d97cea9cc712ea44786413446034f4289c2cbb2fd4cb1141a6f723775132b852d0a9f7d86a48d58bf7696b46da8036249166c62d6240a446db420ee926a64640d4aeaf42e6a1c1104275cfa26bdf3032600e38d2ec74d0cc7766b1c1ef25386824af9496a88a1ccae2361180c4a1ad7037262fc2d049a7f5b874dd21c6a1b36d521a5af46130c9647f06b494ae56c7d0c03efcca1654d1a3d73335e9a200bfb5b19560ce84f44c9cc82d0c46e6c11ba0b5203f9095760d05b245ed8de2f9ee9cffe85e847e566566eef14f0bebc867365bd3103d5b91d27ee6f3bc13694139fb8ba552f441cb3ce2ca6a3d0fa86d35f75dfaa44036384ef50e94b1c7bf7a0540f6de916048bb25c5e34561ac4706c32545defbb8603251f610b622e7494b381ee4f9257a9f0be9162c822c7590336faccfd3de35dac03918c24a1b30b7d2fbab4fa960bd3bceb26e49c49e4b7bccd8562a325b2b055c503f32c1a55233a1a58112477b5d9670da2572b41cd75c8701de2e44eb5c4a03aff0324c98e5edf59edc5cf6ceefd7c12ede5a595f1d0da4d3179bf8efaaa38dc58ea03f27bc7decaf7127537a8da8fd56aed7678f7259cdc1c383bd9f08b326d8df8e303b5934f13f7704509a9bdef58e1d1a35812a2f86ca23da5a83713e816bedadf7903ac7b1f49b3a312a040baa61c7cbea10b939427f221a0954de6c6c7fe21501fae0388a86f7715cdcb750a54d3e0f8eb0ce01ce54919a7403ca505306d666a40c5dc0333ba999d106af5be292028a8bc848776c51a9cb7c0463fe51668b1c18be779f703f90ea2bcceb9754afa687993d4164827abcac53fff307fd6309999061120712705581d02fbe6faaeec2c2226902fc74e1c748b544e96c841f8401c8a507db8740418220459567e608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f0000000000000000000000004c9edd5852cd905f086c759e8383e09bff1e68b381565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000018f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000006461309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec78d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f0000000000000000000000004c9edd5852cd905f086c759e8383e09bff1e68b38d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000006462ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000006462ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f0000000000000000000000004c9edd5852cd905f086c759e8383e09bff1e68b38b8b613b86565b8715611aab57611aab7f000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec78b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f0000000000000000000000004c9edd5852cd905f086c759e8383e09bff1e68b3908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f000000000000000000000000000000000000097451ff859c3282305ffa26a9c581565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f0000000000000000000000004c9edd5852cd905f086c759e8383e09bff1e68b39087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec79087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98481565b7f000000000000000000000000000000000000000000000000000000000000000181565b7f000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec781565b7f000000000000000000000000000000000000000000000000000000000000006481565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f000000000000000000000000435664008f38b0650fbc1c9fc971d0a3bc2f1e471614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f0000000000000000000000004c9edd5852cd905f086c759e8383e09bff1e68b31693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec716939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f000000000000000000000000000000000000097451ff859c3282305ffa26a9c561513b565b9450614bba60058c8b8d8b8b87898b60017f000000000000000000000000000000000000097451ff859c3282305ffa26a9c561513b565b93508415614bee57614bee60068d7f0000000000000000000000000000000000000000000000000000000000000001615325565b8315614c2057614c2060068c7f0000000000000000000000000000000000000000000000000000000000000001615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a005820033ee8e345751e7b07d8998266658acb8255d7faa047d939469fc680541b322058200165cde85b0000000000000000061600d82b012e650c8618cffffe2dd4964f5c00582003849a5bccc9058fde6e35304819b6cc75384ff76c1976840ffeab77b4431f104d017bd57e51f05f8f962d14d0330218900058200291dcbcf639f2247c1f8667774d68ec933d55f13264e01270b50e71b162807d5656543c4c556d0000000000000000000056543c4c556d0366d822edae2ed2311450dd37f15e31652d7cf0d732a1da6e4a088c9e72cdc3db0058200225e256108aaa58c7eae8165c93272683dc26e2ef85c2f1aa69565314d5f04d51035b75421ad9d7ec06bdf900119d0ba4b603fde7144df4463d980ad65084930eca32ed8e1078b6b874f38677bada6994d03e0219802e00582002f08e0a9fbfbbddf2ef90cb77f8619924f3773c77a01b79bf22bff061cbe70d4f0d4ef09717e0b6cc8838868fae0aeb005820028bab8b621f7d1779c672a45269e0203835de046c986cd4b327f1700e6d6a685820fffffffffffffffe4922a0289bf35c180000000000000001b6dd5fd7640ca3e800582002c2463c3ec391f488cb693fd79e705c323bd17e271ad2b2dfcfd45fde8f197758180849cf4a49d1a20000000000000000000849cf4a49d1a2000058200260ee4f506dc12edc6f5d9ebc4a86782be941508fafd4a7b77b568a6c9345d14b38a1bc25fcdb0362d602ef0058200279d3ad0bc9639350645a7a22465eb1a37c28664d1754dcc1b2018fe61a030a4d017dc1c6e62930a800a7e2652103ccf5dffcd8af74492dcd6361970284f752e8bd91e8db5fbc3f45e3314c812808021926e0038fbf2da8d2f971fc1e503ab3ffaeda648d0f0d7f768e5f494459a47014d39ca900582002adb6de8b2a428c1d923dcefec7ad86e6fe8c87355a14f89b9e75e080cd4bbe4b4cca3cb0939e9e2a0566da005820020decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563581f0100000100010000fbc8bf0000000000000000000010cea808839b8aa9f31500582002315f959e6160c6a9344ad71cef4144979d3247de12251ad1559b4da9421ad648029ac8d57ab0873f005820029a783def89b6ef5163197b1c37f7d8f7bdfa1c880b020be43624a6f304d6d94a0158844e2b535b1c07ea0219a214005821038687fb403e8a8693e46b7a66f2ca387161d22873865d5e580037859d02dbd26058200100001878000000000000000000000e1f0571482e6095d104ffffff98da123c0058200354c75d0603760102947ccd8d778da29e01163fabca25b67480133b647bb7404c0386cf19b2b2494bd1eb866900582003787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace04d018259cdb5c894adfe368f599e0058200345d11d58db7b9030bca224e87a23335629af07eaede0b7f8efdc1221cd5f604d017b007eaae063b8f5ddd803e202190222005820024d52468fda1be4692744658b6d46c88d69044139daf7fbc32a8b67cf5e24d8526b0d0000000000000000005f374c4f1b0f27005820027d01bab292495ec81b638ae38e79b0da1a273691089f724bb2ae5261bca042581d0240011c06010040c00104001000000000000000000000000000000000021980110358f9d4664f6a8317cd7573843570f957050f35ea63652adb45c0608c2cb42f4f0359e55d3c4ee47deec21891b7751b203d38d07763972b96108842eb04cc395e6700582002baf555eb54c796011c1a7026cda0373faec79c7ca6c75fc47974d2edf3e9294d011f1b440ae400f996b9ed393000582002add6a30e8b85ba61c8fc2450b83a4af389efc2020704cce52d2dfaeac77adc4b0257bec81063fec91ba856005820021ae12513d22d73d173b5d6a15c4bf6172e75590328631211630adf9eb3816f4c027112130f756760976603e8005820026f08cccf162a3f41d9150b6c253f4c5b08e9d2e5d4bfaf232e20b1d6afc28858190c0000000000000000000000000000000000000000000000000058200347685288df73b74eb97fb563cf28f5569ed68355497042b22219eee7aef52051a02464221541b35909cfc6bfec2fcfb7bf00582003fb2ea33512323d3b15214dfc9abbe873af57a164e04e1901e8f84f2661f0c04d017aa09b591ae1a46c8ffb1c34021890005820022242e8664b8e35ba0e0af4d42b74c28e218723437bf5d6d37bdb7e04aec2bc5820fffffffffffffffff7b630b5b62e5e0000000000000000000849cf4a49d1a200005820026a8529b773b711255c77fd8bd3d5894ac954c27aa41b463bba66bf0f6bff444b0720723bda884cf232e8f702190cab00582002de48c3b0682f04571d34f6431b15545204003c6ac360be6c0f296bf8153d514b0ce58a9a1592cc07657b3e005820022ac7797deb862806c49683eacf7a6a07c81f66fd01d594330a9a4fb864a2844b17da73809926d6c7b7203600582002a6951961bc377417b3c295e67e7a7e5e917c5b3ea5b53e3895274e4b67b596581802f5c3bfa44b27dd000000000000000002f5c3bfa44b27dd033975dc827f391556d708f435849f9352a1e14a340e9b33e8b3507ba2ff6b91470058200235acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b4901c7b0f10655c2e8bf00582002754c5658c716afde19ea201f9a860c6e97cb9781aff5fd69ba1207843fe00e47c14058e626767c0219444d00582002a4cccdb17452babaf7f0bd883a130b07e48a3d030c4120e25fee428ddb93c1514c1564ef224605f112729fb0cbe6bc41f2005820023472d600011bdc9e2ea639bae29cb212f4d6ed402178f106fb0562043e306050e4bf4987565777ced43635f38a73eb20005820025674de4e2c146d060527dd2b6e2db79a8609f48da7a1325a330423da9e751c4804ca36a561868dd800582002b5ba93523f707a7ec617571d02409324ea20e54f74bcdbc78441981c01fb055820ffffffffffffffffffffffffffffffffd33a9cd00e14ae065b695f5d164bf8d10315444f7ca08f57d60822e37bd6087016a0bd5d9272b5fbf0b6581c7896c3140200582002b92a26ad7d706ab2f950412fb3c17cb1298ba36c99cd526ff0b09abc3d568d5820fffffffffffffffff9320ad652f4af62000000000000000006cdf529ad0b509e0219d20a005820022a548cdbace7c1bd1e92e3b3082d0b522d5d0e31f30c599aa791b6cb8e4042519f65235fbc4903b95d7bc20cf5cb84842303f08b81d62012e5868a34e50067e004b2acea90ddc0ab3cd1f8fa615eed07a718021860005820020e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf651a43e184bef6dac171302f28eca9fbdb3a500582003317ef0371dd636043bbc55ddeb6449ad4e659e7c96a7441f7169db8f265c105820fffffffffffffffffd0a3c405bb4d823000000000000000002f5c3bfa44b27dd0058200323213632978042a51d810d2a89812d5ee1228e0119ee6854d7890db7bf2bc0519d7d194b829292bdbacb00cc2381d4426e021981000058200282a40efa93a472458a90648663a1edf097b5011ef3710a395f7a911d9ba5ab4d017ba63b505f915d7aabb5778503894a02a7e672e5d5e300d2fa2f6ebe40cf56080d7093eec589bf9269104386ca005820027e763d11c1ea95622c514f9f5970b98bd7e81838b6da3237d3316d2ab925ff519dc91166214e67f0843d42cddd7fc5b68e005820028cbe5f9c307c0c98f968a2c34dda4c4f593d41e7b1a2a3ecc6d57f607ab2ee57fa8c6214b2dbbd000000000000000000fa8c6214b2dbbd0058200284fdc86dd8b7375065a4eb6436156645dc2b94ee1da368de6ad2b15ed2e391582001000000000000000000000000000000000000000000000000000000000000000219d70200582002f42a75bd95770aee18f3c2ce9d88a52561da0eb8a1fcc3221373cae3a7a1b55820ffffffffffffffffffffffffffffffffffffffffffd070a380196bba4ff0bf0d0058200281b0565db7a88bc474e4d506c8d71fd49e46e1a41fbce8331aa3eecdc757ce58200165ced15f0000000000000000061687942b8fbdfcecc09af6fffe29fe2406e8005820021f00820d6e198f0357a2d16c8a77af475618b9a03530223bcda01e1a5fca3358200165ce51bb000000000000000006163d92843a073d3c748eb6fffe2c184504f800582002b760813b7ec168c6a87348c666368555a3d83a24ff0e172396745a3882f59358200165ce3ca300000000000000000616315a08045b36a28578c2fffe2c713508b400582002538ebff9df9a8c33bb8909c27568932e507f6ef916c7d6a7f0d22e418e673a4c03b645a09c7321ea69d3f98c03ce940e22b388f73a90b43b568917be55983afd6e23f7ff256277b64d4ec9df6f005820025f0c0328de6e1a82c72b6180334f7a2048ea2841255be42be0de492fa18afc4901b6dd5fd7640ca3e8033c8de75b81c1941ec0ecd2baec2eb39d19fdf13281c8b7e4c79d73f1badd83b40219386703588a0e006ab5f6d667535834220f48a278b99f5d1ecd29c00cff412723aef0c600582003fae95fc1d964edd9a257b7150010c2c54be06b2892c986e3d424a5423363e0581804ca36a561868dd8000000000000000004ca36a561868dd800582003bdb8fcc1ac182569ecdb4746a5e33d3abd5a7af64e2d3d5190cb12aef7acf05820ffffffffffffffffffffa9abc3b3aa930000000000000000000056543c4c556d021908200058200208b00d0c179580f61c204eb3adecbd5c517269153707c466908d60d667d987581806cdf529ad0b509e000000000000000006cdf529ad0b509e03f269bf468f8499391bda82503e319baae792949e265226ed9624c95ce1d2be3e005820025e9213548d5e152c103a9bbc97f89383e5e8cc685e5c15781fa1f8453779d758200165b2479f00000000000000000605e67f1bffd571473eff2ffffea25422836800582002573934c12d6d26d95fd59618f886307f1a94d23ac26942fb0036f379e5a85d5820fffffffffffffffffb35c95a9e797228000000000000000004ca36a561868dd80219852503de9b9850d1beb316d05c27d1bae5766d6150e58fd0953d9d93b2e8cc3d4342a900582002b9c545f03c8119c8f2097edd3207d62ffc1d14e1d4537c1ef70e4b35c225ae4d017cf3ea36a29b816fe8ae08dd005820039de29b15f39d62e2ab1c58dcc8d91c7f426e9bf103a056e9cd66caefbd55b04b8a63aa464d870307adaa1d005820037a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3058200100000000000000000616d874a3c4ef829f3d6dfcfffe27aeb29e6865cf5dab0219800100582002e14ed33b3de9a4b5997a30b381dc01c1e494771ce2dbd388f0e8289bc18f7b5820fffffffffffffffffd65372a854f78c10000000000000000029ac8d57ab0873f00582002673a6257a8f4a1125117072691eb4cc3df091d8941e7ca288f2df8025eaff65820ffffffffffffffffff05739deb4d2443000000000000000000fa8c6214b2dbbd0219028a0219ffff05581d025463bfc59773d588d544670dd59862a5b10618e793105e1e0ff7976d070119567e0219600003550af9025fc7d2e9ea6c35e14254d50b73e14bea31c4cb31b7b7d60280adba6c01410303cbae83161a6e0fd39b29e7c3ad29b8150ea975966f086a3931b1fdd14324914405581e037866076d784713e4cbee19166faa52da7aafc7a98fe33d66258eafc0e00402037816051dee336722f4f285dee8270b4ab78614632687d9a3c8216e6f98291fbe034e04917cb9c8769e19c30e633ac7588cbc0c1a4043e885b5dc0a980ac8e6e4c105581e03dab81684f2c19341dced1ac1889e909fdee5498c04c8f1fa369bbe76c007011bffffffffffffffff03cea82c8ff3d3e38008769257902321a2c93c6edb5e2597308d4f6261112eec4a01410805581e03f2914b407e741d647cb2e8bd90a2ac26c58f939b42a20501100ca1c7900c014701e781e1b1480003d68d9e9428c31f78dcda4232271b56d83765bad0376ff7f285b26b2a6ef1510a0219b88b033486224d2c0a179ae1db61c7aea5802d52090d55e1bd667f9bff4d7b907cd1df035b31bde8d133e876f42e24683e3cd6141f7e07c7557a7182e482e93ac50b556c034a27473f6abd22fd3730f692c8ea422edde2bf72f833293e96bf94bde43a0a2803424d4392c09cc886888baadfedfabf9c00b91736c40a59ea3b9105547ff9d18f0350aef75455ff46de3ace15e8da7955eaf1db8e2f0c6025dda0ce25406d970c20031b825b3323509dca7552e08762f0c6a676d40a8095424d8289b78f286dc4df11037416f0880a6bdfe8af7c54fd749cf9a1635aa6b897d29cdfe37ad6f1c9ddcb9603df5fc68d68ecbd8cce76f59b161e22da8e964faa29e1bb37c25fbaaf57e1d1ae0219ffff038339f95ebbb71321e7f6998b837aa1fbb2b726aca7701ce62b4eabdefe689c7a0359e276b623253b368adcdd330fd6a919024aceef1ccc44224fb492ca5b16ed3f0343613764ed9072a9902e179c923017dfedc3df3626c0030120de3c82a88b939703afe9064b5c0e16cee304f3af8eaf0a11a93667988989198b7052f7e83e265f90034182903b331b2ad1856dea285478a588d32cf65b3cf9744c5a3e133fee1edf5c03fb0df3ae1880639e7c3d5c72d380044f0795e98ea5a424709b778dd72da513fb03b0aa7af3228c139b34fa28b20b024a407bb8a4d3b2d86eff6d0d3cc963d4cdcc03505c5799edf327034cb64927e5a92a6beb1d4b5781471e6262ec24e7efe3f2ef03e7a4ce5eca82c43d830e1c9a51e0d6604656db8ec2ee3dbf5b91490556a96ae903342ae9091d13f505e8114e99c3644118b8f978db25e3c11e44ac20f5e42150b403308079a55443426841cb4ed1b7a7cb626d396379286c66881c4e51eb65af3fa603a25c4dcafd42bc5238be178adc49e94c44f128007428a59c04cf01de6a061c2c03977ca725675dadc09c22b504764d0203b84c2e803a7fb69d68865c533df62db10304511e029d60b77ceacd2c23dde7e1c92abadb55339f6afa0edd437cb1d096c80219ffff038acc7e585fbd68d0e3bbe9c573f050269bfc9dc1014789722e6a02b9bed8513d0391aa312bbea65c3dc8b65c2e5e9a4e4f424025193184d15613caed7ef954b2a7038d1283394c896f62827c8ec0346426c3f7014febaf3ba644d7748db536fbeb1b0219ffff03d8b8c21485bd368b3a0840f32b389db85fb7311713d96ba99bdf9e9a2764878903aff9925ebdc7f4f7e4af94f0664d5fccbea43b24a23ed20a93759d5f5b07c83f03913bc1cc5aa9a3be1ebd5261706dccaed2141beafcbac80a209390bc86d794cf031897af6ebfefe072207b984c07753a9834be59fcf1c0af94683e4e70eb13ea59039e28e33ffe4accc4161c8aab5574a03177b92643ba341af6af981debfb3cbd5203fb9b684ef02fe2f5108def19ba8a1dc50063ddb696cad72b3dbedc50d03cf9660219ffff0219ffff0326f04afcef85b41cdab68c5716e5f367880ae08b78aba2625d80acf46e572fd3039eff1fefa232fab30bd6bd451e27eb45dfcd4f75f7227d215de92a5a1b120a7503039157eaf9b1121fd8dd1a7f4ad7a70db64d6d5c026cd4f60be6a215bf3e906b03d3b423cc9447bfe321b7e1dd541823a2ff09438de811f89f0cf3bbed3776db060318691b7b3abfbdc2786f5f2c400156bd95efebd93d98dd909aec0e1e1928678b03e43ad096dd38657cac5d5795fd92518332540071de9d2d585bd5546162222e5903b0aa3c0c3e0b7337673b49b7c05fb73cab947cdd4e4ef328280efa543f4a3e0303108a488f628fa4e73ddb24672777f78285d5fa4be4aabc734d9cf6dac9607a3e03f271840bca73c140bac0a8a96c76a67c3e7c566b0dcb6be7f2b360cd653f94fc0312ae83e3eca27ed53f1885c201e4fed9270278ea37a552173e1a6e711f469941034e63e049d8f1aa0e3ae65f16a418eb3f861c976324d637f8e2874d41f44e7c8703220c6f988c0884e42508599efa0e7a52d4b05f6be11c18bf2da7f2a1cfa8f04303a6b9fdadd36669a30f452f1278b8136ce0c34f5867750bd4f10570f8a75561c603d9ee720eb4e6cf4e92c9faf11affab2cc2c098adfbafbd9049cfcd5349636b69038546971b59b2896e1af4b7fa02801d78eb2ca91ce47fe698313e071cc049f23f035fcaf5ca89eff0ffc2646f6415678a596761f4d39151b98e7739f9b568a1573103920903e78360abef086875f83c1dfd6431d362abcb06ea6d16532eb28f5c2fb803da63435a40b90c6c775863b84840260162306c08c6dea3718fc91b2870f31fc4032edd337a0e90cdd5d78bfd72c1faf964e4fab2f048f1ecf0ce9d8e95d9303a6a03082da8451b37ce9903ca1b3909491f1e9e81735f12df1e8ddf71b0a9610591a003c221e64b7c647c6a30cd14a8169be2274eb49b91cdf2a9c36b32b054a7656f0b03c60fe1d44f79452fd164828498330f58ef1b561c49289008e558473b6c9b27d90345d4aa9f593e181b5ebc44c6527efd573e916edc2a7a403f38f7aa60f8d60278030eb24bdcb48ae2a3e0791b90fc1ddbd47334d2238ace2b842c97f43f84ce9c9503a969fdf7fc1b9163e323dc16db5507e6a9a7303f73479748676a995c051472c3032382add2fe256a345654cb29517a1bc30af88c77bbbdf020adc3facfa7ad8e700319559aa2da6ed29c75eb6dd3124ec449cbd416f7eee31a28245da3be095cce8e036d627f0895057089004046809a12f237bca3aca447a86f34359d8ca7ae64028303f02ee6ed1d5a440b245c9619a739538f1ae7301d95d720bba3b9d95b51badc9203d244582d9936cb3bee20db3eddd8744c6e273c8bdc6ab49a5546f8c252e58b69032641d8da345ff2584adff6948970af2740456af1d0f5987e9a0a96d202b1a16d03fe414af4370532ffeab19cfaf732f4cbe750dcdf7107f0a348c6fe881ab14c5f03d509880870a7d7b0b06ba07721e321f316cd5d21f1998fca8dfe88791bb2f97f03b192daba54fde57085bdbd07cfdfb05db0f9c6633880cd4cc93ccbd82848efe6039f8d43da7ebd5a1b5c5f782ccf39e21acc9ef453021905b1bac57fa844d7eafb03573a171d4d6bec9436dc55cf43b259dc42654ef927c849b90fe8e0ac2f0fa0fa0371a805da9a76274c8f5ab750aff44a970635b000b8eb8bdaeaa291ec1a59075f05581e035cd643940aea42f0146e869903d4b896aaa5f73d93ab916ea3e5a775e00405030492eaa80311fd6ea9156166088b25e1dff4a500328f5b18e2aa83d815445e3103555004de0bed0a91f578d8e4338d86cd77bcb458e848dcc6b7d1c6ef9fe6a9fa05581d028c62965f294dcee7df9c3077ad775c8781ba78ba32e9c6069f6213790c024769297ec13a6b0b04591a2a60806040526004361061011e575f3560e01c806377b54bad1161009d578063a9059cbb11610062578063a9059cbb14610315578063bf474bed14610334578063c9567bf914610349578063dd62ed3e1461035d578063f4293890146103a1575f80fd5b806377b54bad146102795780637d1db4a5146102985780638da5cb5b146102ad5780638f9a55c0146102d357806395d89b41146102e8575f80fd5b8063313ce567116100e3578063313ce567146101ec57806351bc3c851461020757806370a082311461021d578063715018a614610251578063751039fc14610265575f80fd5b806306fdde0314610129578063095ea7b3146101675780630faee56f1461019657806318160ddd146101b957806323b872dd146101cd575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b506040805180820190915260048152634d41474160e01b60208201525b60405161015e9190611606565b60405180910390f35b348015610172575f80fd5b50610186610181366004611668565b6103b5565b604051901515815260200161015e565b3480156101a1575f80fd5b506101ab60145481565b60405190815260200161015e565b3480156101c4575f80fd5b506101ab6103cb565b3480156101d8575f80fd5b506101866101e7366004611692565b6103eb565b3480156101f7575f80fd5b506040516009815260200161015e565b348015610212575f80fd5b5061021b610452565b005b348015610228575f80fd5b506101ab6102373660046116d0565b6001600160a01b03165f9081526001602052604090205490565b34801561025c575f80fd5b5061021b610484565b348015610270575f80fd5b5061021b6104fe565b348015610284575f80fd5b50610186610293366004611668565b6105af565b3480156102a3575f80fd5b506101ab60115481565b3480156102b8575f80fd5b505f546040516001600160a01b03909116815260200161015e565b3480156102de575f80fd5b506101ab60125481565b3480156102f3575f80fd5b5060408051808201909152600581526405452554d560dc1b6020820152610151565b348015610320575f80fd5b5061018661032f366004611668565b6106df565b34801561033f575f80fd5b506101ab60135481565b348015610354575f80fd5b5061021b6106eb565b348015610368575f80fd5b506101ab6103773660046116eb565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103ac575f80fd5b5061021b610a98565b5f6103c1338484610b31565b5060015b92915050565b5f6103d86009600a611816565b6103e6906302cd29c0611824565b905090565b5f6103f7848484610c54565b6104488433610443856040518060600160405280602881526020016119cd602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611212565b610b31565b5060019392505050565b305f908152600160205260409020548015610470576104708161124a565b47801561048057610480816113ba565b5050565b5f546001600160a01b031633146104b65760405162461bcd60e51b81526004016104ad9061183b565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105275760405162461bcd60e51b81526004016104ad9061183b565b6105336009600a611816565b610541906302cd29c0611824565b6011556105506009600a611816565b61055e906302cd29c0611824565b6012557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61058e6009600a611816565b61059c906302cd29c0611824565b60405190815260200160405180910390a1565b5f815f03610620576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156105f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061061d9190611870565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a16004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820184905284169063a9059cbb906044016020604051808303815f875af11580156106b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d89190611887565b9392505050565b5f6103c1338484610c54565b5f546001600160a01b031633146107145760405162461bcd60e51b81526004016104ad9061183b565b601654600160a01b900460ff161561076e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104ad565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107b79030906107a96009600a611816565b610443906302cd29c0611824565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610807573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082b91906118a6565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae91906118a6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091c91906118a6565b601680546001600160a01b039283166001600160a01b03199091161790556015541663f305d7194730610963816001600160a01b03165f9081526001602052604090205490565b5f806109765f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109dc573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a0191906118c1565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a56573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7a9190611887565b506016805462ff00ff60a01b19166201000160a01b17905543600855565b5f4711610afa5760405162461bcd60e51b815260206004820152602a60248201527f436f6e74726163742062616c616e6365206d7573742062652067726561746572604482015269207468616e207a65726f60b01b60648201526084016104ad565b60045460405147916001600160a01b03169082156108fc029083905f818181858888f19350505050158015610480573d5f803e3d5ffd5b6001600160a01b038316610b935760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ad565b6001600160a01b038216610bf45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ad565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cb85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ad565b6001600160a01b038216610d1a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ad565b5f8111610d7b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104ad565b5f80546001600160a01b03858116911614801590610da657505f546001600160a01b03848116911614155b156110d557610dd76064610dd1600d5460105411610dc657600954610dca565b600b545b8590611468565b906114e6565b6016549091506001600160a01b038581169116148015610e0557506015546001600160a01b03848116911614155b8015610e2957506001600160a01b0383165f9081526003602052604090205460ff16155b15610f3057601154821115610e805760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104ad565b60125482610ea2856001600160a01b03165f9081526001602052604090205490565b610eac91906118ec565b1115610efa5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104ad565b436008546003610f0a91906118ec565b1115610f1b57823b15610f1b575f80fd5b60108054905f610f2a836118ff565b91905055505b6016546001600160a01b03848116911614801590610f6657506001600160a01b0383165f9081526003602052604090205460ff16155b15610fe55760125482610f8d856001600160a01b03165f9081526001602052604090205490565b610f9791906118ec565b1115610fe55760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104ad565b6016546001600160a01b03848116911614801561100b57506001600160a01b0384163014155b15611038576110356064610dd1600e546010541161102b57600a54610dca565b600c548590611468565b90505b305f90815260016020526040902054601654600160a81b900460ff1615801561106e57506016546001600160a01b038581169116145b80156110835750601654600160b01b900460ff165b8015611090575060135481115b801561109f5750600f54601054115b156110d3576110c16110bc846110b784601454611527565b611527565b61124a565b4780156110d1576110d1476113ba565b505b505b801561114d57305f908152600160205260409020546110f4908261153b565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111449085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461116f9083611599565b6001600160a01b0385165f908152600160205260409020556111b26111948383611599565b6001600160a01b0385165f908152600160205260409020549061153b565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111fb8585611599565b60405190815260200160405180910390a350505050565b5f81848411156112355760405162461bcd60e51b81526004016104ad9190611606565b505f6112418486611917565b95945050505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112905761129061192a565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130b91906118a6565b8160018151811061131e5761131e61192a565b6001600160a01b0392831660209182029290920101526015546113449130911684610b31565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061137c9085905f9086903090429060040161193e565b5f604051808303815f87803b158015611393575f80fd5b505af11580156113a5573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b5f6064600654836113cb9190611824565b6113d591906119ad565b90505f6064600754846113e89190611824565b6113f291906119ad565b6004546040519192506001600160a01b03169083156108fc029084905f818181858888f1935050505015801561142a573d5f803e3d5ffd5b506005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611462573d5f803e3d5ffd5b50505050565b5f825f0361147757505f6103c5565b5f6114828385611824565b90508261148f85836119ad565b146106d85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104ad565b5f6106d883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115da565b5f81831161153557826106d8565b50919050565b5f8061154783856118ec565b9050838110156106d85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104ad565b5f6106d883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611212565b5f81836115fa5760405162461bcd60e51b81526004016104ad9190611606565b505f61124184866119ad565b5f6020808352835180828501525f5b8181101561163157858101830151858201604001528201611615565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611665575f80fd5b50565b5f8060408385031215611679575f80fd5b823561168481611651565b946020939093013593505050565b5f805f606084860312156116a4575f80fd5b83356116af81611651565b925060208401356116bf81611651565b929592945050506040919091013590565b5f602082840312156116e0575f80fd5b81356106d881611651565b5f80604083850312156116fc575f80fd5b823561170781611651565b9150602083013561171781611651565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561177057815f190482111561175657611756611722565b8085161561176357918102915b93841c939080029061173b565b509250929050565b5f82611786575060016103c5565b8161179257505f6103c5565b81600181146117a857600281146117b2576117ce565b60019150506103c5565b60ff8411156117c3576117c3611722565b50506001821b6103c5565b5060208310610133831016604e8410600b84101617156117f1575081810a6103c5565b6117fb8383611736565b805f190482111561180e5761180e611722565b029392505050565b5f6106d860ff841683611778565b80820281158282048414176103c5576103c5611722565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611880575f80fd5b5051919050565b5f60208284031215611897575f80fd5b815180151581146106d8575f80fd5b5f602082840312156118b6575f80fd5b81516106d881611651565b5f805f606084860312156118d3575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156103c5576103c5611722565b5f6001820161191057611910611722565b5060010190565b818103818111156103c5576103c5611722565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561198c5784516001600160a01b031683529383019391830191600101611967565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119c757634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200f378175c9337a72dcdd44102d9081505a6fa7d76f54f84cbb63be33b16031c264736f6c6343000814003303423e8ae7c5f0824b82f059c5429cf101e620f1ca04e32e9369c59185df04121203a3ecad541f7cac53f5172b982fe2a16767831a24ef83f597df3b699198ac179103718e8b0ebbe9bceb4aff888e194748aa6bd6dd15706170090ce3b075e3b15e670312bf0fade5f97f4819c69814a757ab38a31ae7b978544cf5424a0e169dbef2d7033272500a3383219e973eb42dbce376067531f7fa5da2986825832bcad3c9870903dad047ab10277ea9f9cb77ae6bb90d77966636a4dbb20e2ccd5e16ad799f5091039f5f52ba50fd47f00b92d539517287aeee2ab68a5b226cae94c176a99d01ca5d03311a41b2de80e3e6f3f829ee314a26020d4459edb1f1c4b6de6889a0a3a3781400581f02829cf6465ec6d7d67c2ee1471c075f79479cb79036e86ec067bd1f81a6524531765eae0500581f02b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9410100581f02511a0b4b92901d7a91b5f39e66e966325962e1617247e598e0f31cb8218c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219402203bbf77188bdf7990ec7cf148d7b764e9eacd8e65a2d80b8fd0205b240ae068b760370af103d9f3666ad8b2f8ccb7a8a3e284ec4846040374db1bd7d4379d0b10b26036206bde1abbb87c91584353663fbf41a34106626333cadfd96e827c8d0c72e9803d8f0e1a5dfc59b341815b40c08238427d8512d3dd59b8f58c24f8474ae41d170005820039eb61f4fc1c9c178ff94cf5cd8f39ef6a720979fa9edca38e6d20879183b005820fffffffffffffffffffffffffffffffffffffffffffffffffffffb08259a08f203490c48fcdc05726089d68dba28e78750a5db674a7cbfc606579079c731fe62ff03d9e2c629c7d5354bbc63207ff43a0e9d1960b27757769b5df27adc5935af0801039d5b061408daf170bd046ddeef66fcb754eac9bf7d017b3bcae8cf1d095ad43401410b0219ffff03dc259da4c8de70d1f8c3f679bdd2c1ffa7c081715c5df8c39e66a56eb8e74ed703924357ef22a482ad56e4de9dbfac47fa9ebc612d37234828467198744eef60750379cc32e35479065e2a2acf309084ab3aee75541bbd8b51ee48f06a60b8231f5303489a822832bc22a2f52f55c4a41e77fa3694e79ab7c4e070b5ccc5e4eb62fd030397a82f2d6c70c51a4266cb1e988e05370b24ae59f9ec81605a9a84d21fa688240394007e38bd3966cf4ae7525c2708bbe4502e0782f22586dc61ca6f6e164e6d0a03b22cc2abca7ebb74d1eab3aae0af23ed38fae0f03099f1e0e0b1cd8e6c38783b03a54ed65ddfb32294c05780cdc30831a5b1f0bdef6391db74b86a7f6d8c29930a033cd7020752e3aaa41c7ce7c6bbb4139f2c8bc9c1ed3f0de462fa284ea9c83ba703b03e64a7decf6563f4f2479cd9d16cc518ba62671ec70c9f10a55e21ca24138b030d974f4b024af1412f67562b9cd389733522d773697bf51bfe57d28f967f7b5003fa0e7c0ce6e1d1178c87fc49ba8cacea8d6fb032a6a0e4429874b36144d9c312034fe2009ee012e20d4d83c488e337f01f91a452114887cbfba6b2cffbfd9ad560031931655f768ef45a2689d11023f55981654a03b979c11ffec159261556047d570219ffff034be415c6d664752da7ff9661e90f6b9aaf865079950bcab2639734ad2b25bb7003204621ffe3ff60b2df8291c93fa7d29a13a23286da5fa11febd10ef82a19c15f03e27082ab0ca413fe27ed4708ed8208371e80ac4ad6fd48fcde02ca40bfcc54d303f07929ac4983cce7ec6289122f4de950c94704b2d70aad5e9b78adbbe9815228035ad1644880b9d8652af128ce8c41f9219a6780cc4b0010434320ac5612e7f4a40393eb0b02d839553b2117e22b85f92ee82a184d6ba32c9b087da7add30149442d03f3edc69a561e247e80cd547c50eb1cdd940b19ce0e2e495efccb84f6855be90803bdd3c7216d012022f0cd80468a8505bffd1b72720412212ec07d33f938fc7ef603c4618717b275eef0a11a3244440ac1c2a549ad5bf263b44ae6009e10f8e426f8036c697d71a89235d204c447bb8c88c998223f5c23f787bb4b3465a31b2bfd9360039c61e3be1a24618044ccbaef2f0d00c5dc35c9b141055d6ce264427783019d8403d3d8ca847db424986d24db17cd704aa93f6e87660755e15442d853e85772a33d0315e733f7b2461df907157d26727ee48c1f8021343e9f2d4c06dadb379099c66503dc2cb6c1c22942d6d547cb4bb367d86879fc13349474fceeaee5a01581ced2560319c1d9d1c3c6c862b872e9dd52bed59716cda21acbf0cc20703c6d95fbb2b50c03b8f9ee53f1abed6c90297ab934afc42909487d7bcbc270f63897190b6211e32d00581f020a7f935474bbb70a9e9a3388322ea1535d2a4800eb4659911553d2dc0a6c5820fffffffffffffffffffffffffffffffffffffffffffffffffffffff6afd06fff00581f0292fcbf03853fa8ff420a1767fd952eedaecf53997aa15bc54855c4d657705820ffffffffffffffffffffffffffffffffffffffffffffffffffffd25e925685f100581f02ecd7687ed3347493bf141806d0d59652745e67a3af9b11f805120f1ee4b845019396535700581f02c5d98b8ed6bcc92042b38e7623e229808152584b610af295fe9f12c2deaf457b9008cde200581f02732a3898e6020d26ee3d984782e2730c856e2cc6904ec2532172ef6e08265820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0280ed4b083eda46b4206de727834c179d1132fef7e5bc53ec5fd773f18e5647022fcb301981720219c03a034b340a82a24885fa99e3881370003b86935041be835149b526aa7977ad8525ee03f51d47a390b50e767509e8617e86976ba3c61f5e38542f93375a88197eed759a03a04c26d37819a17f67c24420a74c91c6a052b7e8229b8d5cc958da3d4269fe5b03268a5a7aefe7505e606e007f67499eb328f3f716ce64dff01da212fd2103a0e003f40d8de758d2841c2caa23acfe140f4d31c92e839c2eed8155e7fa05be89e5dc005820035525b6449a327221657191d5c46bd03cbb8eac274319c02cd7eeb48117e98045d795b4ef5a00582003bdb900c7c2a0cd9215d34ab91f015db4c35dd353ba2a0815b3f611e2ca2f905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffe6d07a696d03cc87a315188774850ed34cca19551c56e90a34af73e93fdad621f69a547781a70219ffff03329810dbc087bb6d301cf3ea2406d0015d420aa08871046de9aef68bfd494dbd00582003fd48fae1c5e6018b063cf7afeea837d70e9673a0340d632ef5e2bab14253305820fffffffffffffffffffffffffffffffffffffffffffffffffffffe7df2a62b9903e85800a5570d2b7faa63500d133155147940dfa14772a174fc7947a55cf2f1740343389e13cb32f72ebdaf94830c63ae2f96a848bfbf4a878738f0d8175940c3600311ecb6be1c4fa5afc5f4e5b6c2a47d3f0fa4b34eff9c4f9ad63ac59846d2312100582003258e9505d521d74d6d05ba09f89e089f12ae82568d57d4dfd170602d079e9046048c3a7ad4a000581f020d1502ee5f5edc8d54fee4fc0ed03e26cdcd16d6d3613eacfb19d813b2425820ffffffffffffffffffffffffffffffffffffffffffffffffffff70fa6b6eb5d600581f02d122e0eb01f1eb0feae3ee4d22d215433c2e567dea820006fd9fc288f26b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffff8afa224a7700581f0247dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672428de700581f02e543b7ff477a52c04a41954518fa9d5cd37c2fde7f880ed0c2d99f6dd7fe5820ffffffffffffffffffffffffffffffffffffffffffffffffffffa23cca5b2dff00581f024c225851fab6412d84952a747a2147bdeecb3a8227e15293827b6ededae342024e021983c0035e2681d4524cc9dd6939d905be145bd38ec626c5131e42bb6131d9e86518f449033d8a4daf85934e540c0b473104fd1836f1d26c36e23e292468e5eff7a83e3cd00375ba649dcd8ecce84bc45b698e4c951cdc452aafd9f9951b450a49050b773e3303558e6628d58b713b673c1b245725ccce4b89242f7bb8146554a8b1a83696d6ed0342a24d8ef9e00bbc25158b063844e9f88504e196a17403215bbad63e8843b9cd005820032d4baf2d113c159602db1d7afbc038136a50ad4198d86c417dbd9351ad7450458478c4247d036602c6baaffbff6c7594fcc525fe5946d6b420d51b883e12c09e720460531f8e005820036049de0febd2e4a512836fad56b715ea48dae2850fcac8a4106e375af5f050440b02296503e0be06b833e99481645c33e48254956e7d85fca14b25e5c8f1165d15b5ca797b0219ffdf039ba427cf84c1b0f4815c0f93cb116ae3d0205733317310a05059b20f59bd467d03975308ca405088fd91f3e17630eaa48b45d304fa68e21683e5948cc0a9f1f1c203864b707832463584fe43055ad4d8fc2772410ad17973f953d634ab4248bc273d0330c2a507a36a767d71a3053e0292702d880d9d0616355c543b0d52b06508a4e20219ffff03de239520a65cea142dc8538707e270f8db8657ca440d54d50de57bc810ebedcd035216e5a8d72707f73fa96b7eea25d47234754d815e0ce6a2872154aeeac1ad550359b9e0d563288f51f8f3fad6e6a0ba6f23fb066f0d7b9b2206498d70174a0fc2034170e18186b20b6eebc2344b08903c5ddfa2cda9f01d1f866040f66c7e7cfbea0348d828cb1be4c8d0bd40134630ee5d869d02e9d1136678c669919de9759aae08031da63560d33b35e89b31b26b088f39a8762d5e856eb0c36fabd0ece9aa5b8261032353f8b7f3e62d9a57ca53db345fb8f09bfced0eb60138b96eca2f868a8108b703e9e978b8a44df70dcf971102af31d9bb9e047be5fe6ce795e427ab4b629abc28032dd7cc8f9e6c7a965db797a588200bab21f72030eddc2822de6ae6cedd83306800581f0281219a4ad8b0aa6a2758d4cdb96e7473f9c639473b7b73660495ba3b8a6f452bae557aec00581f02b8854310be5355c31e0aef73db9682534481d2de7e023a421545bc8d2cee452ea2760bdf00581f02e373b03029a72fb93b2f20ef956ab36da4d03096f94a558da8f497da61994505e2d32a9f00581f021cbfc7cd5c33dbaaa1b4249ea78cf8d9bde533e663f49fd4ad6180c575b445c815adad0a021909110398d49e55503101083bf4fd05014880475786f3872c3bd887e3d061bfc08d554503ca374df564f73b6062a302c74f0f155a86ec1d8b99d5ad1cecd02498aa0547ee030eeeda04e210684e3df549e9fe584abaf9225f2b713426164cbe35427688869b039a97354c4782af987ad8994eea9441108bce4b682f303dbf5fd4a6c780d2af6f0359468cdcf598886af14a8aebc95b7141b1f188e26a302273013e14be167e24c7030391f6c48537b45833ac3b8271700429e8f8e45cb6ac114e39154f2e2c1f933f03d34f517d7b39cec59787889554ab9e074683a48672faf255671da24775b279b501410803a14585496c4d04db72326ad3132ca7426d39ae75684897b666bd45d47a283cdf033779091370daa4de577a18761d38648de22e1675577162245cba3355b00388b703786391c3b0da57fbb09717d6077a9daaacddb306bc9b814ed4bf21fcbf6cf2e9033a9b0409ebe98dcfd56f61ccc29a150e39843870656633fe60e5d52b29b68d31035fee2edf177913238f0e8bdddfed84bb3ce940a9b47459ff4cf2d5a607716ad500582003d31bf4f37f9e4de60bafada9c66672e2804e98c7045a17b822cf624cb8faa04627492edf4d060309203e88220f403e1f50c2375fdfb68fac0b62ee06092eca90ab40eab6eae49f0333eafccf7e4c4186758c93179ec3b491ea64c00134557bd21847c11239024bbc0219ffff034a9f7e54d317048f7df58e4790568f1e1b1b2fceb1a16654cbc015bc288edded03b2b9f924144aa1ae08359626031c7129bc919f49b2b4084c907da366a922f79703838093c21c7393e29f0b5eb417d38d20c0c22764d3907f9841ead11e162a0ee70360bfba6025b19ad5e3d9dda63279db202808447b24945a4b3fe6a4062d008512038daf0607cb6741a9daf3d22f32e996c1e893793527f5b9e918acd851cd5bb8c903520a241b161f40a057c63ec63937aa5196a183ac64df4cea622ff1972732147b034504764c437f5af561c93a9702763a7cd470cf610b42957bf68b827c1079efed037c4dd3f6006e2a2cdd58686c8a9e3f4b6a41f03d648a719756f8afe8758a400703595965eaeab5d5ba59b778f4d444c8c2964f6e057a78258d7f06c10b609e57c4031ef278aa1f92862a51f0d050666597e26269f7b6d4cf8a25ac2f5d64b30f384403965da882dc59b78cfbf3419c6e5e7dd2606ae620a1869b71f2cb1559d0e5048b03dccbad0a76f261a2e95cf7008baec54c6e4b053615312de4452c89bbb98071b403519808e90670a61a4175b853ea1c83d25957ac2ff52878674a01866294e1f8b5035094d2a234f41e28da0cfb568e371905b2e98f73458f35b680167c93db6c65ac0368c86b9c68ef5ec884c222357d8738188ce0e2071cbfc9d49cda4c9a3489e2c0035c9f4edc1127a9d4cfd92fdbfd252763f34224d9ce7b48e43a16682873679b5203c1fe17a7cf7e156963954060d6813d3d5c3e1f638990fab2fb0aa7b36b144a6700581f02a7d9a2570ae5890599208adb19d7aa7473ad0bcd752d42f5fb5806b4093b410700581f027e4aff3188dc875172764383af9efc8bc363689398002a375451b9c36d8e4607419d981d7400581f02b4824cf81ce67e60667cc4f635d5a1fc06c36d875e0a1787e5918adbff8f5820ffffffffffffffffffffffffffffffffffffffffffffffffffffac7e5c97c2fd03cfe37c11a1a6bd5daf999ba0c617b15cbcb119410c837ac8b145b785e276570e00581f02a1beb5c12673a85e7b9b652349a28dca3fc60ec1a43f36f259c567164c714553221ca70d021960170314be94cda2c5765a8f15673760f9ff3d0012b2a7204c8f8eb6f7f43e82d103bb0335910d8a4da83501dc430f0a84053758ee62d84baf5286b5aba8c341377695460219ffef037f7a42f8e3cb98d956ad48125d019e91cbe4762d56b3a495909aa75ba96f66a80219ffff038e87ca8f1e3ea96fac8dc776141aebbbbf5cc2f76209aa311a1378e7d7a885ea032ac86b75a2950381c89a18a2600410993165c71b86e8684368e010947cba629b037bd3edb4beec35778b9fc6fb538f7aff41c26f2cd31acdbbc1bd507391dbaedb0364301ef5c2d9b43f7d9e7299a9cc2fb3f934fc2e44baa35994e4a8b692201eef0339a86c60fe80eb2d4f6eaaaaaf9a2f3587de224f7c0e81287333759792825288038276c3d842333a52b11a4542f74b3ee51c0ac74e9eaff4d35c52844bfe7fc91c0342c324aa1b5ea62cb004426809ebee048d3c13ed82eed9023361d434bc8c454300582003ae7cca4f556ee2b6901a7bce8e6d9f2cccbb3085da2a3280c7a72dbbdf10e0442e9a6531034007ed6123df6dd77b36a3112b0128ae042ad225b8eba327c0481f2b1cec20bc0352e04ff28580de819f7532cf0290fa884c39035408211859d7bdfce27195ec5903e919835804d6c1966c56a86cd978e7e954f97449117fab7c876c9dd8e7eac22a00582003d72e87ef54faa44805bdab035b6537b07eccd44cd38dd81e87307ebe323d205820ffffffffffffffffffffffffffffffffffffffffffffffffffffe76875cb644a03b9360f553725aa48b8b5d87ec46393e76dca2f9ab6e62990e164eb552647f1ac00581f0248c5685d22a4825729a3d51ea921bc20ea380ed6ad831e6c5a2a4b52844a4207ac00581f02fc6326a4c7dfc8a7ce9397992783a1736e39782a46910138e25ab70ccbbb46028608e4d7b800581f02c21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6847a6fa404071800000581f02fd03d3aa9fbca6cd19b7e6afb00e5e59c5383b0435cf53d306266529343145c0acdc2dd90219504203be139b5badd6c1938587ef2c16f49e816d00c10d0ba6b433002fdfc798b657a20219eeff0376c2c1cca07aceb8b0e2ae3070c03efe2d2ba5f8cc0021b8c2cd8962de08e08403de0bf0195227b89b6be3b005677187a53b7c466dbaa2bcf1180395e182dac135034328e8f102efd8b0eacd696dcbb7123afc09bf0c9ce07c11e574670d892eba2903cee71963676d602b802ceed5b5283d9f4ae227865e4ca027d0b83b3a68b3954203aadfbd7f1956840b536471cc6c91c01e181ce0308079846f10643f4d66cc2e0e03072c9983c7100fa9dadb614e478c0d7598384deecc24c52a92d61d0b4fed4a8203faf1212c65837fbef9e27e1cd637e062a27b2593b4f378ed2d7c694031c5750f031cc26f8488d14bf90356fc1db9c248b53bb5e2bf240af7e78c653e70941bc97f034b77119588e91ff006e0926cdfcad321af93c011926c1f3f28d083dc71dce7ff03f2f00ef94efc9cf8368abc35c98ee7db7cf15275a1bf5deb29af9ea661f5c5300302c6455e3155d371180db5e34c52010b91b9aad278fd3230f49476387b3e957603bd0bad4deb660d59eb1e1b18b042d5b02341ef844e1c5910ad1ff472892a5d12038cf34f506ba271f902172653943dd8e1cb43ec5d92abae72588d9c13abad7a50037b83827aa780c264fa77364d9f449ee671764240f8bf33c653fd9d2b275787b80219ffff035f074bdd464a12d11afe0c66150aa8118d37c24d7eb1b185ff67fb16b44c69b803caacef3ab0aaad670389a3e525cd9be63673034b857539fc5cfe9d37f10d8b9503accc2dbf9e8f2e48ffe5996b0afd7dfc314aedeb573cef4e64124aa7f25b73ce03080120d020a433e8e335306c086e3492c12bf09c93b0b92a50cad592e62296170327c534eb3c88bc897eac7e8b9f73e2713f1d82e3c97c2424154ea0d0278333fa03a2b1f6eff5f12a74374c1611050e01e903f2904483723637981d8e917aca9df103eb3417104eaed3f295f28395c676799deffe3dc807b1a5a9d643f7ab7527a0f3033fc049e8917501bb590d207c9b5ae766a411f4553807621fb6a0c7d754cb86f00058200376ee5de63b84b0cc2ec3f1d29d5d2bf8b8836a28bb7c8f8a084050f5b6fcb04583cb0a0be6034326711386cbd850ed6e3d10a20d2e097e02d94de53114935a807b9f2aa8deee03d5b852430ead8734753cf450ddc051414e9947cafbcf2b41927591e95c1a86a60348b6cc789c94149d0a826c1b3af4c91cda7e4ae7cb2de875983bc32db5d62f7e03c2717d1a68de64cdd763897b6d5369636eec2be0e34d2b4bcdc070573691e4f10343ad9fa518693c798f065c6e1d573d85e5ec514a813183a8c655f9e9d5362a4a03d07dc1075282462f6f702c476ae5b6a77b5ff110d56ed0e84d1ba0df066af9bb037802ad257f6243c1cb91df228a9870d110b8f3f08f4c255323ee657ba6bf1bde00582003325f7167dad5e37deba8bc1b3ef51b8acc04ac3d6a72b6548eb9677afe68f05820fffffffffffffffffffffffffffffffffffffffffffffffffffffb45e81f3cf203b5f1932397e001a612beff094009a9de5c570c5792a11a7f87393190c3df8c9000582003e96dd33dfb13d3961d76d39becf4dce0ccd4a0642951dabb6eb1d0e2ab4ad05820fffffffffffffffffffffffffffffffffffffffffffffffffffffce2fa1d8ef30392c2e5eaf6c2c2c85689d8b15441b809a0e6bd4662fcf80dade0609b528a645e03d3c75b6ec8ae577498b5797b517c2e3247e7cb89eeca4845eca60dbf1f6c302e00581f0280cb2f49421b08bfca802ed5a76ac87d0b41cf2621729c4e532977eb19be451e52f75c0400581f020410dc58d6af809cce139095469d83fd34ea7568bd8d0fbf4f9d0460c8a646028c17aa591900581f0248fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475547a250d5630b4cf539739df2c5dacb4c659f2488d00581f022c178050e0d2eb4618e2164824aa099b4bfb54a955bbd132fda0e2b86c0d450653ce1cee0219041a0219ffff035431dc9249622ffe61a3e66aae76785e28e7fd0596f008921be955b3c29e728f03dd3e8cbbba825bf198a5f56b0382431ed70365787fedda907bfe55689d8ec8fa038af749a369287faceb294dceb2efbcfdc265d605670cd8b4116afeb65c716b9a03cfaf3458bb452376e5dab1a436a2ed2f66d896f08672cbac85b4e75b112646fd031c9e53743c8cc6791c6e1818aec8ec18b13e6cf0a74e263861e97f2f8803d7980317b6e7cdf288a98718810bba7b51e7d2ad2535089e2493e5271fccf530062bcb03a9edbe9218b4f8edd48f2e4b44d2ba8e18709ac6dac4cf2367d44c133734f97803b4cc3b18bb179295f34b2c3088a41155c2b99a31a324aa0dce019e698dd7c03c03e97406db05813b0c76568182cc909499eadc6db9053b2ceac84a5863e0b41ded030d9de913fdef2fbf78de977387a07f3a68cd061d23f6464692a143d160647ff10219ffff03913b7565777e1b88749993c769b583de16d8f0f9d6602373120a53781e265fd503a67f18de0408c998508104e0bd1b089be1ea5bd028626c3f9eb35c2e12401ae00386f9458aee37e9e953492ac6209f82b7a8fe9250e65d592e73afefb6bc2cfbd70320bdd3347c2a934dd74a089082cc39b82a10f2d297d7c00f9f44b890da72a8b6039e0bea385c6f0dd96938adab9ef22ec32ee6928c2e4322bee86c102cf3e8385503dd034f21e53fac062095c3ce360aef4b5166d9ee9b771ea0e6bc855320d704430331c7be9da8a53e29560f471ee2354f465b888b3f3354d59cec3e2c66daa394ce037431035854ac98c6222bc914f08cabe40249d573232df22901332c5bbd8c454e03d0c7711eac4f09702ab24e27435923d3f581b28ff63483e77c8d6b08ca2038f1032fde313e00c9f0735d5fdc786265d5461b9972718eb868e102a87a5bf122f683033f1e9d821ca39dc0f79a62e809930d18d312984457678d1d99f0ca5ee8819da203b19be411515482ee6959dada7b0d11f74652fb7f29e8a99f209902d8e49bf231031530683e264fd157658d4f7a8f754783807e3474cda0a4076004ff490d2794ea03ca14f5b5de0bffc0b8a2cc5eae0c49c4df8ba25f8edeb50f556cc5d7c872959f03e1738013ca8950279279f80317bdc60b5eb038f9b5f80ceaff7726f48bdf2e02037c274141b3f24501f0fbcee0461aaf96c1a2a6f00329f5c487bd9dd300c609460341faf280e310224261c30657e29906602cc8ed09816ae8149ed3424582f67718034b98dbaf2c0f2dc45f43615fdc16733ce0eae2dae459360b3ade693e2b6c4f6003b617327eaaeefbc8f3beb59daee1bfbf68666b1c6c6f261e4e5480f95cd5e33503ed396f7b91de1feb3a83c7e36edf3db94c7253b478e5819806bd4e04bf5b39c003cacbc56d938868783180c9d905aa140ff3ddbe1fc6b0e93a42096c0ad41c842d0345de57d31da125ee584131d931ef79f4f9cac68d5d72d3d955f4dccc9be22fd4039006610ca0189bf6d6b2c36c4ea0a9c5d75d203bbd541219e59617bdaa7af8a80314fd83a8a40794dea7589a1f06de106d798278657b4f3c6b48a3e74e5d26dff903712d91222d86815cc7609ed6f53cda15ac3c2bc4201fec43cbacbf0d3c601bf7033e768d08b40536ba5e0ccd41d3c79c8c91553c80f0e59c1437062ae6e36db1e603cf5740f126a4ce9dab3a6adf7dda6842953b55768b8ed1bb0748653f0de3f6290362582059f8659ccf7707877fea61d1b2f09b91a5523ff7e507c631697ae4782d03e9ceb16521d45d55a8c0c39cd2636ccfd98a3f440ad100f97cf541b3abacdd99005820035f7ad5dd7a3a68f46a4dc633d98c5df6e9eab319b5934c36ca553d7c80044041020308da7bd17bfb0a92a593d99fa21ad5b3bd9c855976f55102ed30ac07bf4e2c7c030d57478bc8e15b0f80c0fe6f419c32c2459aa3cd2480090f5f188cbbe117fe4300581f02183652d52ca62f257da061cd4c307633767cbd71137eba2db54bf025ee73450332bd40b600581f02b401ad4414d8330b647143ef844f5c4ab8fb90fcda472a907ec2c5ec3aa2460365890cca2a00581f0215a97a52efa6076e1dd75e2e50db70716d6835d8a8d4fa4962e1957a6256452dd0bf72dd00581f021855eee8f9d0e632ed88780c9657e704950a0a16aa2194e384051c4216b645175045cec00219a0180219ffff0348b2a47788cfe250b30a90496fd682a4e684e1f52f5987b0379c2a0d37ae2b79039425bc87e2aed7797740bd54d7b256f73bcf79b394b51dff7802709b774413e90219ffff03ce000e7cd2e68e793f5e13e11966f35c1dc7a773dd4fb90b32c35450e2afe9f303d2109c4c16fac29a8232b428dca33f8c3e52b6eb4144e9c686ad29b789c7df17032be8ef567272b34d3ed2956c0e3384eb1c0a52b65be1e27bdf06147e5bdf381003c2c083221dec88089c5469d409fb58856490aabb0366c52a6f1d0ab6361336c703a805015f28c298b4ad89da831f7ed323a135c44a15fb3acdaa7ecc7fcc7225cc035958272fbb80358452859984c5c55c0f9e21409f48b1c398b28f345cdab37ae303aa799bcd0a8dcced9465e95e6e25367e008ace5397813c7842fccc0036dc04f603774897065e390b91c5d151ba170d5aa845b5ee2bc9107e7b4ae2e4580e4f2c7003c417b0d0ec28f40f8460f76320a8930de24b63f1131d0c69469c03326e765e04037aa73675f43efc15d8bb4e36e54dc2b8b8ac2514613ab7c9de31ccff9e95056003d375a87fcb176e8efef88632d96bbfc813e67069fb0172c6941e6a087a73f5a6033f759354aebe6a639b6f85fbc7276f463c40e844fabcba02e454297da37dc88d03af3ea8c21dbef457854710606826764fec473a76f043f4618c169da89627bbbb03008b0c73c01005c06c1c6b320080ce41290167e0f27525be9942a023962839e400582003d1057a9fba425f83010e65aa5824a8b606db536adf1da63b9cca44a20bdc804423c4808d03ddb238d5ddefc323fc1de53ce74e5db23edce28ba5adde1341031698b618a3450330d6e10c8ed55f75eb3b3253a6deb3695e3e5c6c919ac854e24d05156a3406b7036e32bde7f502106128bc0d6c1cee841fefbf4ac6b2966ef7f7433943eafb42d903922ad881a150353e2cb4cd79114f620af04546c81004f245f3d1032929e033a100581f023873c185e3785a2a8f52a0758f0b263e864f50db669495c4dfee9ce3bbd641c000581f0260e03efd6995a17106a7030e51c25ed62a5e75dffd39c4e7b0df6760caee4602a9783d84ca00581f026a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec344447a6fa4040718000021905200320df938e6688bd4cbfff7feef88a35e6a7b9112d1ffa09a542bc00d2c7cf1e5a03d8ff43c94b1e4871862f1e0404b720ec9397827a481da607339754abcf888d6c035277b88666ab93baaec4b71a35c2284dbe33fc1ae29b4102fc15fec6b5ec44c00319322bc1f78dc15f6406cd30d5b804b49eb0495025d8f37e02f23ad3eebab8b8032bc115611222afa28da18e3b43f24da099d59051812bf740de0994b5e4b1740b03e0a13eab9d84594502dadee157d71f5f1ba4e86420e9ccfdfb724a3c90ea92b803becdd12c9c4106c400cbb1a25d0eed7297ae5bf69ba3f02095c7b848cfaa19e40219ffff0378515d42d8dcfccc5ca9a3b8aca823ed50fba60e9eb29066e08e72d1acda16e603429c033daf25f94193aee7efa0f5d9ae2aca6956f62e10863dec507d743c574903ce70f720a93153d3b68487fa0388f98be27af423ac022aa03e2f04f3b95cd54503e0d048c1d48f38df0714c179f5ad0d26bf7d5e35e74b6d738b4dbfaa45dd2fcf0219ffff034a6e40300867e00f4ce166d9f348408e40f3a99c80623682b3156d5c1e9cd11103a4c55a3bb4d014623f5baf0a7dd66c92857d7dd6b0972fb88fd09ad706c9fda6032f23064fe43331c098205394af55bc1020e0329b059e185e82b190f8b74ce6900351e8e1f4bdac3939d391c74c833cd73146d28c00b714084b756a86f6585e8183033c77814231eecb86092390068c3826ac539d799302c87aa7bb9dcff0770126dc03a27cb88c2bfc4226173ab6017b66fbf4bbe7dc6b199fada17852ed1b0d9616ba033080c14b1d6a1c754a2892c68c8e107400067a303cd1c5db724b7605c0d5cb97034f561934b41eae071a56b56f838cba54eea1a172ec8e273b0658c57922e074ba0358c10cbf195c264728f8b9a32842f86731ffcd7ed396b58054a955d4cc57507e00582003b3dc525a4b3d5be33be41b090bac93af4bf3064417db43e8c4928748fc9040410103d2e8815aee82713f746d8f40037d606c5efdb49addecba3dcc9955269303743000582003188c1499bacc5a00b85f118b8e6c4080edb463c597da67c0768e457f16ca90461ffdf15f45ed034fb69379a0353847e3738b10790642ecae68e4848deaf9195cbd6ea2573b673903ebb93c038d85846dd0caac3404cb17711bd17a619f13fd973b66518dd28c184303c3827b06e09d544911e2d8672be52f3a101c5ad89bfb74ce242079b16096834203a90d814699f3dde462a81dee7c7877d4cdd1b11a7446fc957045c813755c8173031df0e2d623d5971840fe155b72a549907d2b6952cdb0575b6651089a10c1b8ba03f6f1c039b2e31fafe2e869afe7e3c647926f3afbb3d5139dfc1b4704cf9ef61b0332de27b53fddf2c80cf3bc518e24a0e98bae5484684fd6402f8907c0f6d703f800581f02ecb0929d9f52357d36abd2e20a5e65bfc966ca4433b87ad54a0499219b31452801d0329f00581f02990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5411400581f02e35c9c3faf9025717e8935e53f6b26203e0f724240b7e39c6ca6cdca612c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219204203847b7fa3beec9a06744110158b1dbbe5d5eeb6481114c1d7380e78f669900aa203f0052c8937aeb8b162a41f7a78940e85eb5e031d0303f593dc83faa9aab28c1b039c3cdc8044ab628482f2196163e828074fe7e60f668b9faeafaf3d81bbb74dc603f5ba19ec725b18bc83597817667c26c72efed39a920dd188f7c93a752719bfad0219ffff038b3dab272e892833f241c85b29ffb4bd8a8cd02d8fecdcaa04f61286ed676a4003fd94522b4d6cb8998bbe5c37936a47d8fac9c77d05dfa1b342c426379237673503545949262510aeafc9b235d4635ef749d11b435a51651f18c3bb3890c431113900581f027f30c5d8b6ef161672d69e10458fd245f58f7ff8878f47b30eeb031aec5c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffd5645999ff00581f02147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b512428957010001e4b8583ccb95b25737c016ac88e539d0605949e800581f02cd72aa8159429b845eca804c743ea97bf79aed33b414eed0929f4b688d2245015c4acdd900581f02e2656aa9018484103e53eca1f0860ae6226fee8c3f47dfd09f34d44321795820ffffffffffffffffffffffffffffffffffffffffffffffffffffffa211ebd8f800581f023ffd91c22bdbaa24467e0b85b24aac8e19b3ef932f9c736c850e5d37ee0e42dc5a0219428c03dc88b338dcfa9e9124cb9ccfa3b115eb4de664c010cca491c20beab1f7bff56103b3a189f3314017ac751ff489d2e48e68062ecfe1e9517b28c4de348f58c8737803df99af45e0221c745337ca58546305117f9d46258e6af83fe8d49a670abc28dc03b94957db9615b697fd63c45d0e530f94eeb079b2dc9148dd8af6e55ab08bb99603f81cfedb79edcf498d18f9b3757884a53301d997d8e8de2b358dac71facf455d039ccb3d14e5c143ff5fe7c688c74e0288360e10c3662be1ce64d47350e7f8e5f800582003b16bd054e574ce087c3d5982ffe5e23793efd19df13fabdf61d368ff374720450ba593f763038c37814865212aca239aea43d8962e93dd5b280ad604a6704c22986394dcc2ce00582003811568fae5e2d414cab4ac199b3b160764862843a211f78c592107d7f39e405820fffffffffffffffffffffffffffffffffffffffffffffffffffeef3ce1762b4603b5fe4bf59bed1c570ae1e186cc231d36ccfb5ee1c72789105ca73ee29fbb5f6a03811a121cde81167932496d3970de9eab8559474d3316a40da62b09db3446a84e0219dfff03376ff17d489fa6ed4de29f11e9c74b71da592c4329c50052394aae607c18a6e403ce68850c2e4c84090e7a847386f0eb6c2845c22f21ed982ac9cdcfe64c6968dd0325362e00b157e1b8c6b6bfbc6a5183b17b4cffa56583fe20e50268e3bd0646d303c767a91b141ba7fb566108a67a2226e6e00477d46b90e2701bffd11c19ace16d03a6ac7bce80be64c24fe6c25e52d7eeef8adad2c807c2ae3843cf3d95acca7c1c03d0b1dccd207be33ce1f1284fc5d68ed5793bb6332bec09421124d7aed727e03a03c5fcd89654b08ea761d36cecea63640c1581c1362c21c65eceb807bcffa937fa035c5f6b9446045a00b472f8866f163dc36ef0f42dde2816db72ee68ba156f9c6d034b8e01925ef0aa04b89b76e83450248e94b1f541f2ac77548a4a0de7fd8d9c4200582003277f87b00af83708050a856313333cb957c6662baa781a713312532e0614b0452e1ea8c20d033011444a75155b4e7dd3532268c70df330f4b200eaf0148522d078f45bbbff47036eabc467867f6077217b4193af0dadfd38ef28ce6494af545ee724e55e9853fe03546770367b1c864ac6442792560f3ab1358e2c17d9464f374e68960a7bc82b6603da567d82d8efd33264283c5c2e663bd4c248ff08bd0d2ce3775a1fbd88183d5200581f02a7a88e8c5510865191f0db37d28808318738b25d57f1842130ba4458f1435820fffffffffffffffffffffffffffffffffffffffffffffffffffffeee248bd91400581f022b48028bb91e443bcfc9dbea0fca20580f6040e80679161855920e09acb75820fffffffffffffffffffffffffffffffffffffffffffffffffffff8f1718bf06c02194080031fa0fed02d1179dc88fd01ce791db6bdeee654b7e04c79f4f9ac4f4a474030bb033058574dcde425ea0b138002a5121a2514350c8553c95742275e9b271d0770f1037a7c8d85465c5a37baec5ea5bb6b47acc292a7ce6cc9d80125e80246a73dcd0d03bb9677fa6bce9c1b6241935f3fc05873d941849fb0bf9d6eba28b92fd882f1b3032953346e620d21b4867041030f1b42da1091170b5887708928508aa506d367610219fffd03b25dc3fd0769d423a11c800120664c0c209c993a9b4a32842b64d314b52209580219ffff032acb4d21af30dfdf70292836972d12cf62ddd7fc97bec9d3900a850488ec8eae03cc411263d3cc8988a9eb54f29e0e1d4619130a8f0d7e27be9828df871cb6cfb4033df6a4c6dd03f9d7c49bd92f1d7297b797c582edc2d57de095daad338f52887903bdab4be8100fc8b95572afaf090fcc800df9dfec4a9e45402fbd079cccc581d4035f39217aa6d7fd2c3ce7d694916875fa76b8ddfc54e66a48c63a5156e22bf0e500582003ceafb29550044cc5f0fb14ee65cfe24cee3bfb40145ad0d3ea36c2230459f0455beecd325103e612d8a4af531fbae795244e8469657ef623465f459dffaddfcb32223c939a2b03a68b7ee3bcbbc1bd64c2a86c4f0b44a04b116195e3a5b7444c03b041209b1fb3036ce87b481d2cbdee2dc4b015fb7546c8159c50ebc9adb499a8ac35b65af18b3503269e74bc3a6b7d43ddfc7c27bb7722353a540e8da0ba48408f0276e957c7f30f03944ee2e24454075b841b30a36e7ddf4e246d6ca74530c55459eec70f8ef119b1031e57200fe6c140fdeefc757b3d7069137550b2af9e24d60c49cf1421b36b66ca03ed946b638e7b9bfd229dcd82a01423a35658b31fea595819002cebcce4b48e9f0341d8d1f84b1731a12a354d0b29367a68a06ed01bdc32d97d9cc8ee072a9f1eee03448252da6697e9233f5d4a3c719946be868b34ca42711e18e45beb9e40d2d87803b18158eabac7565c9b2f8770fed1a07692394b987ee02ed6f2a02ca0698159ce0342411ec7228e569c5850cbd550a5395faad10fb2d4eb5be2e3181af6c79fa22100582003adc5f3c6b6fe7970be2f316a8342eb8a0f661d6bdd4fa17275ff4bb06ad2205820ffffffffffffffffffffffffffffffffffffffffffffffffffffea2a576f70be00581f02414d54d79d3090f8a659e6d18bb0e68bbd16ed4d8624330a04c665dd7179410100581f024d953d6ce1d08162817b0f88df54631a06cb7aa78dd85d1053accb3dade8444d978c1700581f02a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee34401110ce000581f02cbc1a890caf5b6fc46c5e6f5c39c6a95805d7ba48eb67fd4cea3831cf7ee45023248d00800581f020b8bb53384f17236b218bada61156b9bef2ffa3897be9eb0290fb526f5af45474f8c366e0219a0a80219dfff03b85076abc7934033d2ce14cef3c1fc4c07732a03b340d168b61747791dda809e03ebb05e23daf99c6df49c9bc151d248b52de12197f237c9a582f27df0f8272d28037487dfb6cf6054e81ffa361a443efaf612e9efae29f764b774d6fbbd5ab6f0100333c4a8d6273f23c8c78c6d464c77f7aff147c00d6e39857581a2939de37c2d5003d34193fa7a5c5401acb611f6395393887dd302e82713adb320481b9bb219fd3c03c5547725641931c53c5cfbde61ab8715298e900a768f408e5068a83b7ee4546f038a596727000ab6051a55b24b0d71584e4dd55a03afc7596ee7d3aa7563dfb5c603c4b0c6183b7a05f7aa0648ec3d9a28255425c870982b4253d8b618355f7b97f103ba2bfa5a7c4d32c55550812006af0a5eca2394226c2cca400232043ab052c42103053242e35f4776022bd0e8e3189df27d18e8c09d9dd828624995f8a5994c792a037f40286ec9b34c3da062aa688c4de33fed9879678a6d8bc99c70ca001be5950f03646f91751e1903a727596f7b5661c9a0b24b097617b48c7d97111ec15f5a412d0219ffff0219ffff05581d025a8fe65f86e428ba621fa355d546c04e501e99a5eb8ff4598e9585280f014101191a2a05581d02f0ddba0e917cedc5b7d7420a2b334e2439f28594f74f72afb83b91360c1647021144356151c0020705581e0300d94569eeb726d57788a38c5745bf67c9648c161323c04e6ab89598400c06470bd898dbbb584303d67a5bf5a2b2d04b4b54130a1c66926937c8be4d5bf70e8594c291da0791250a05581e031767cf4d499618a995b675b7f31d2ad10c9d004dc5f610772e2e8731600c01461330ba013800035e84da026fc0a4febea8585835faa1f29485e782fabbe08a7fb4a4115b40b42c0219ab56030b7983185a297b9008f51785f34f71f9afc3c6a8e7c7c44a152c3c4d901c05f803c480fd314ff138e238546cea88e67d1811b05630a7fa420413e7324fe95eb0860303b3eba11a3b4141e43edad5a17215e2256c60227841ee2ad41518635160291803a7de8f36f901e2b9feafe0069f065d8547fc9ad25a9a392010df01ffa1b14e6303bd2e9fcc85dbb68137b3c6aa62adae540b4f78c590c5dc3b5dc61a3225e9163e03d99c8fbcff28948a4702fc99ac18e2faec61e164de9405a44ff1a3407e9aec6b03f92237b9a25112081bf9ae6d166eea486c607217ecaf9809cfc2ec4291cfb93003bf720b88428b718bbdebfac565b08717fb07e2c1618f312d8ce7afe8f5eabdfe03eaa8d4ba0ef59a288c780260cc2c78d6873e51fe764e23ce42543907876c373c035e9876c8de084c0357e6d6fa7dca89103444298ab791b4de6505d04638441e4e0302de49eb0972871ae05852c068e29f34c738a458c9c250fc1115a98ae51ecc550219ffff03326adef79be230827d69053b22ffc26db1173204f07a3d02c03ccd0de263a0a8030e886aed6101f644e73692b1819bdc3d53cd854a7c02dcf4ae5c5e46a44ea8770328bc5c95b6f97277b9279f83b25872f4be2c1377541a8fc7e89e863a8a393d190219ffff033a06eeeb150e22e0c96652eacbaea2717be5c6cdcc06d43ba035e88dfc0f8bb30219ffff03ad968e29b63cbe6c5e37ca1c8bfe5762e61da52cd4c2f4b2e21e53bd97b3633b03b8a132d2a0b5dc1375b73c398ac895a768ac8391500ccf206ff8d359ab7f1f5503538c2ead6e795a12a136326e3a803194437faf68f0cbfef80384091691511b4d0325404b8ec9e08824b0315806bd0866d457b1059f69eed54fab7718f2a251aed203446fcbff019825d6e4f0efe26c1f836d42755509e6935f01737fbb2556f21ef303b5296520e53d043b1aa47a0dab56fb91d7ed55d9d3249d537de13aab9c40fe75036f5f93f88929510beeaed455925e988ecfe257a0b921eff56da165983c487592031b5ea1c08c52dad275f3593e3fda2fd3c5a9a2717b686b9b4f96bcf482ad6df003f526e3be76d010dac3066ad0dfde42f0a75330b936eb9d0f95990bf6dfd1dfd6036ce11ac8ecb4062e3dfbb0597a9a5ccc2a740bbf74c89f203b68b89ea16058cb034534f7546db8838a365375a6b3c7d2f5c65364af36fc0e46c0f1ec7dbc81d252031730147b88f1332ec7e73f7b61b021cdb5aba0e17b99038b23732550d0e58efe03dec69b3399c713465d32838b4810bd363aaab18f330d90268d4b4b46ec54e52603feec837042b77e84a8a19ab7607e13b73159881eafe088b1e2943c446e5b2a3903dd5bd4e7eb921db18bd1857afadc4c04c67214f6319e688d5db45038ccb00e5c03cdfd0ee2be7e65531308d2c9f66d8ee136190cb6341c3ab687cb166441e8064d032df3ca8bd6e0e1fde1ba425283f3e3262c99744549d1e9e7b52f54b28fc1f3f605581e037f8ac2718038643385e109e3de1cf633658255f6d330b5f851d96e7a800401038b583a939f1173989a82839259b542556df2c8fdf0de26314b0a9576b4b0e69703af134eb4a5da4562d6c7b2d6f7caf10ed4c7f5dbb1b06bd2eb3992355525c4d403eead5c58f680359cd4f2117b971528735b2bfb924199389fc69c2d9d305dc44d05581d02a910735695302ef948a47246fa30565d9142e99818cf6253b3b49ea107011bffffffffffffffff05581d0209d2d5048c735b186b364791ab055974f2053e0a0f0bf977c40b46f80c194fe0486555929594d3dc8d0219021005581e039b6e3e5a0e710f074b4ecd6357060abb8533e7423f919a92a331360040040105581e036eb3b436efc1acbd579858b29b0eeabbee2d6d312d03f53b26ab6064f00c024709fbd10883fc00037f3057e308598339a6b23703233e51f82b11a94d0565f3796b3cc531277e394305581e03cc987bb86fe6f6a400f0b6fcd66f010816a52fb736cdd3f7969829adf0040105581e037fd6bfa2448bbca416634e80e6f0600a55d464e4d2c72bee2cc13ac200084804d412da4be7700005581e031f113d8a9dfec2daa381e240ea0f29dbb36e2565b8e6d3d32ef4f152900c024801c59167ad045a1005581e03cbc1ae98c6428e09adebe2e18f0decebddfc4a3af18d2e4d1cdb15b1100c014702a9fdbda0c68605581e0331cfd4cb15e6145f1f50c7ff0d196b64bd5d209fc46ca58cbdc5c10a500c0447031f58e59d340002192bfe03384d8ec34dfeac52507d9019d4cefa365b519af1e1606e70a480d24ec99b1a64031c8f8b96ac71bd3a80cf1c2a690499049d948d0ebb9b46d9a35ab68a1e85c3880390a0667da7607108175b26e0007bf6643ead45e8c64eeb808935ed6a427af8fa032890fc18be8df7f423bad95f31fbdbc6348ff3006a4f47921070c130b4571b37031a194e255b7c188029058d7f266d1f2080e6527cdc4e5bb24f8596abf6af6520038ab8644a100a7ac1fe65f47d6d03779f8aa613cc28916d04d5c8710cf9834a4703600b381767cb87ec78cad8e485ca197705b4c120ece410d2460906668426ee210304ab3b68fed283b8d1ac15c1c676f4407d66d55ad612fa5416d92c840b045f75037b83cc23ac24436c3abd0dceb0de1c6b0c4089100056da1d8cde6be079494f5f03400e5d8b4a33e92486352ef7375a14a2ef8cbcf22947eac69a3eb6e77799f06203616bd9643fc9c04fa895dce22da4a4381ea81384372f22ed7b072686843e0a820219ffff03e07d7f479fb4178a39d234a735674b9602b694baa7d8673db90daaca75127c9c03deb9fa17bb946f09b9f68204afca8299ed445b2c1e0ab528f50cd182a5f19637037ff1f452db6b834216fadeca3355768b3457130cfe7546811baad9f68659083d03a37793261dffad1d1c4031f5ff42245f7db7126544410adccc75c360e57c15b303762122a309f6854e9083c5c9966b023e6f6cf60bc2cec9de2e37e059ca2dd0310366cbf838a709596593ebd1702c8023d658920e775534735a5b7d827a0a50b067034cc30501fa2000ed7c9145424a5796900c4618a86da03d691ee80a2363b2fe0603f31e0799de1c6c2d03e0e0575fe0aa8a23fd4cffd1b4553ab2782c75faac6d6c035ea141673adfd20a455ba47bf9560712694f906a524dd105b1a3f79f05b4d3d4031c8c8bafbbe58642bf78be083f88e0cc2ab3c5d56df763fb27d738750f125dd103783d32c86dfafe2d0a36efbeb6fa5267d6c1b16cff6b4eae963594081cd19988032dc971ecbaf7ea847b8147ea2b497f680fb281c77ee179a127f25db461ea72d9030dd5a4f2b63e91c05c2e83960fdd0279c5896518a2f46b512b3a9483315d3ecd035ecdd664491cbbcc7219ac5023390907d846d00c32e2650877e18f4f9b98e55303667e149626055021d0a5d61cc7263a701e8e0fa0a17ff690709732f28e9f67f40391e70812211ecf52c944c0dcf0c7f3dfbdbbfc3092114d43426b9244fb0df0fe05581e031e44681fd7c3321ed0e5498ee00bd9448906f0ebc8e7e76cbfae2d43500c014713bdf89a8d680005581d021c0624d6891183063cc8ff978a85bfd94d90088fdcb8b4b5311745e20c014702d6bf6e02f72005581d020a0f9efc5e53579f31af694ae09a092af658efd40ce9569442076a1f08481bb170ad694ac0000219080405581e039baa32a718f9aef03ff2fea765da98fecfb6b72fe4f8b55a38b9b7b0400c02469b574948352803fd84161afa9d5155e65ca878da1c79cb9d6f3ffa1fbcedbdf0074c9f6a3357aa05581e030b00669539a8272f298cefdf308a1d50920ca8862fd9838314fcd50090040103964f82b2f51be9203597b41cc26cdfa5575ca0b67ecaa6f3fd5830ef2ca5e1ab03f456e8685a60fda4918fe58ec4053418a56130202b719a8da0e3af07d94b4376014200eb03362896012d32cf978956793698071e4b424965a9dc2d5d48ff07363367d91bba05581e032e433aedd7297a791b7e8feb5f7e831557efa1bc62297c0f624e15a2f00c03472779895ed1be000219fa8503e5ddacb736b04d3d567508a475d5cae7877d0ede61665f35406a941765285d3b03c089523026aebfb8596186949b10b728a8df03396ac4c3863f4acca946002ab603398858ecae3b155602d84e0232daddc13cd01b9c45b749c26b3ff9984cf9849c03fea05d37cf03c43bcd15dfe6470a05fbcf4d70cf70a2d83fbb518a6d8db9c683039676d9b9f2a1e4f38707633ac9a4b3c79e09ff6852fdcaa5deada951cf15e38a0219ffff03be9d1d4026b56d4f2193e2fe23417b051fda18836b8c95a63e317b8a3e44d5f003c965236c6cc960fd4deb371e4783cd0e85f5cb512e24afe8663d1c7940cd7b87035ac086c49ba5c9609539120bd20ab8ce5e0e66b10db0b0c1c151650e93f87766035cff2aa840ea83fae9b407cc6043e10306c1795d6e9631b2d29b73c3baf4fdc90219ffff03a1dfb70c3c24aaf43581c5e2e70937fa0ed5a2ddcffae2a46ef97fe4510c3599031e2c9ee488cfb31517e6b8021401410151c564e67f77ee90041dec3e110039b00382771549f3b1a8b0d6caddab4f9dbf5b235e79ff74a7fce2d30fc1dd0c20f5df03fbb955ee464ae86001ddb4c9b88b2f838f4ea64f3340ddca0bdac48357a18fdc03b154d57007b807ac104113b6ccb0a4c3eb0ac0d96abfbef15d97d67dad4566b403bb624a2610665d4e420e09748f59da354d95cc7479dc622586b7ced093525c0503f301d8dc1e9a6ccf6faf3a2452bc0d3e143a6110f2945a573ddab10fc91a9bfa0360f5d5ea271515cf309028a5f38b6a76e259a72e697284177cf0d44c5f916ea103674de71804fa570d4e7d56451c2f8ff9a250d8995d8503e151321a1d1b106e82036d29b14a919405b7b8db99339a6b03b0df8fa35e15a6fc80735aea0a9f8f4cd9039b91e3e082d45130ecef6c3204249a032510460693fe8f019323c96ef09e9fe203740c5519360d7bda9a84bbf40ba14dabc9c0bc52e8878bcd416d8b8294cc065903b7367303e0acbcc4816a2cf7a9fabd9cf01208f664d18e35826897082be3a51203e7f7e8bb78f1159cfb165f28c556d203a00b48a1614db1c7b763fbe8c814428f03cae41835fadb3461e500893a8f49ee5f77d2f4163ea8408e67ab551dc4ea2b8e03e54416ab69e87e1510c7ca71a936af73af8b70f1618d966914b66cd0cd2c3c0f033f496fcc48260711a68e664e37b3cdb079edd8d1dbd557b8f1358249f5a7f8b003af1fc4a1c6d84b4eece21a84cda1b7dcf7843285d9fc12b4f71c462b09e9990e030ff9c97fc4502f533ca609290486f730056b21e355e4e007fdf8e04189df431c05581e034eee329f94aff3dce7934b323cbf9686aa7b0ecf7633485c99324ecc50040205581d0261f51e88d63eb18e9e07301c7aad9c36814ae5b2cdb00ece7dd1e851040105581d025e0908301e92a07ca34e78cb9d37564208524998c0e19a28c62f42ff0847b1a2bc2ec500000219210005581e035a8b7a02a29d950c60e5525b52212a6d501bb78f0778c7400a0670de5004010349968ffb874ec66da0e4d4175cc80ab5c5a1a6d69864b36e43e9ede5c3afa5cb05581e03f2359b539eebfdb90bf5513220bde3a9d0cba09e116ef76b8e095220c00c014701a4904b452d3605581e03955c8dca7015bd26687ab4b5c5830f8f4d286de08374d40e8163e98e600c01470d8291039f12c003483aa035e62a1510bff3ffb395067fa174c305d8cb8163119d598944526b87250141010219507b03f80620b58b717b8be19563dc446db6785a62148d06eeee27bd6ec6b5f6492ea003cb68b4e3cc0683af8cadd897df87ff6348084fe77e9edc05aeb168437e885adf038850deeca52df785d086af29a52cb82c372e2a47d48d606f9dcb184a80531c36034db9de6a8035fcea42d2445f17f92d9ee49ebbf8eb0317810a8d29b74b9b857903f629ea68158fdcf7c25e8abf86e8e19fddfa37e616b34d654f7db616fec177cd03252b4e7302219b0238cf52dba1a09acfd3d1290434a6f59d08586f12242c685a03e45e28dd622d8375ea6dc94d99c7214259887218936ea0e65d1a2a6237f7847c03252ba7c5e4fbd539bcd2fffa8bdbf00ef38933b4ee430646435e7c3f391f8518039ddcd4ed5d6073b6e5162149a155d53b1594bfc85e7f86f21ead3f3874453cdd03ee9e82bbd00de532a2849824da5ad718b21a01349eeccf6119781b1cd056f1290219ffff03e7d37e61edd44717531baf7cae0c086e999d14976d08c255f26b3f278fb6a0a6035da89b680be6008947c5aa54b0be8a570a0c52072c754f8df1764dcb4bd8c4be0342e59f375e8fae1392a87b19e34ed95dea323b1fd06ebbfd008311bd5adf4f03035b124929300b887ecfa6e728d50d9ef06ebdeace746d1060a21541f7808a93120219ffff033e3aec80eb8c8fb9e2da8543d04031a2e6a7cb003bd01c02f7c1a59f9d44ccc203b805af41a777b58b7fcfccb8b2517d1248a416d116163212a5fad33fa37c6aa70368c51bc487440c1d4917e85da450fdcb195a201d8ed4a2874a9de4fd09d23cad033cc06450b26770f21ee4d40394728bdbfcfd35ed43ba16db1d4878635e03d5e4030a4319b1a4cae24c110dff7868d3208fb0de1eb68154799cc0107172325e090503976173e363631b7dd137d801c36a5e0d39c9c3e82101a1bed0a0686492ee7a8503e10fb9eec6263cba5a629932d4693b6f9a02572cdd39bd258f9dd781738bbb6403980b1fd0db0669b944dc2aa55b5ef2beeb17e9558813ce273f9eec7077f4dbae0219ffff03561ab03c310dc549bac23687f89c1a6bd83eddfa561897591384daa606fca90503d260e333268472671e8416d0e12b2fc97384c3867dedc8df12b7b5e4400b62c8034dacc054c971695331aa1093f2747ab35251df10b8657aa7ff4c6a6601b62ac20219ffff0333126672998d9219a88e73248b90570a48aad9ba71e0983b47860e9e6cdecf5b03cc4a9e409648361b93b3dfce5c750fe5866e8d01204934cfc77275ae863849770340d79e2c57efe1b24bcf5516217ebd740a217fff752757a648187f47e1d075960358b9d67c694b80e024c759b0e720ce6bab8db16f13264d32ad66ed4ca927221c037a20fbbd3bca90b0a031ee5d52453ec7f155a0dc97335cd4636dab7b2c8c3b3f03c85a6ed7c32b9210f648b24734a4efedabd37db8d49b0c1c5525abfab3149996035e0507b84a9f06e18af52898d361823cc0968028af42f344b3c76607b313b4df032bd3ab04374f1ebdf78843e5011b542eae01a1ac10738c05bc76480e38976c1003ebb269629bd341c7f34d97fb5ff88f47fbd0de8ac8c29b0f1f62147772f2d62503dcb84f788d324880f95276a2df4c568d7fcd37cd2afd763257aa98a651ba95ff03701534682961a80bd69a9833d4cb76b5606dec0b46a72cd3d7a7e1c2bae685a003c313d56974fc2455c2306df538d083580b7fe51b7f140052b75d15bd3945b27603b6ec60fe8ba140f937c6691b90bf3870878dfa28bf0a13f40da8908b86485d6f03fa017a350f39d34469dd014be321eb5d832fd962b6a6ff38fdb0118a3cfc310f03bfdcabd4b14ced4ff580b106b1ef11d2854b3c831e6cb5435cc588f80e44228a0355d8d07cc28ff642d3cdf7d76cf49a5dbb364dc0ec532e386467a27ceb54843b0325984a465b58fee20105e7d522b4e615e3a8021f495d89e616fd3eba128d47280310c1724429d0a08efc14b41026b32195c38ed7ed9c4b0edd4c7aa0c4a297092503ce3f1b3157d69247ee94ac62030375c6fecb54b407192769be0b6cec73af9cb005581d02661d3fb4774676e5274c4c277efb3c1ec842fd6bbcc13c90143aebde0c0347019ce91cba600005581d0385bddbc95f117f911dcb20c8fbbe71a5567108a99c2dc6c2115b7da00c181f47ba0bbca85da08f05581d030c8f5c9f1048534df11b1c179a86d85957606490e018b832dc3d7eb00c0447012065a55636380219012005581d027018597bcaed6b40c4dada76cd172153ae590fe803cab1c6db8ea79d0c02467192213e0ab00219012803995c1d23caac863284e1c9cfa06f64ae3cb9cc6e301cf8f20fbbf170a621e4f405581e031f7f258b85a0424d5ac579ba99702802cec169fd3f57195c6f8b5ff1000c024701125dc23312000371ef343d0413f03e70ab328cfe1e558b3c73416eac68809160378c53c08b0f7e03ce47c06923ea953af02a08a5e1c0e029f7fefb757b5b84677eaf32988f36d3b205581e032cd6c8008900c7ada77bd41f1c0209ecc9239e9f117f21ec72b6959e90040105581e035c500c380eeb97027ccffbbb5e1973b4d3e62c568de932ba0404dc6d50040305581e031ec8d3132df358e74d0f6283da6755ebd69d6380dc99cec48dc58d90a00c0247441f29339543a80335810db24ceb31609b83309d8f8a58a0dedd934a2a43dd02e3c44809a901e627036892ab6e903d46049666948d8b2dfe52ee9b155458fd993095de34f9e10974da05581e0391d043665c0a52eb9d525b6b2fcc4be47344d973e76d3c4648633c2ef007011bffffffffffffffff05581e03a55346536fbd468d4ef8b9b41e7020481ff8d2525cf452ebb9bc9fef100c03468042224ef9f00219db6903416ff2e01a39bab40b0dfc947dcbf6004b7c2827b529065ac65c03693ad268c10345ad9a163b5aac0c961d81c5b2ab5bd169c51443c0474b9efe9c07979782666f03408241b576840da0f1454fc7e8bd32ef29acdc00e8de9c94d4fcb5cf22daa90703b114e86030c68c4142dd47b8ffefd272437aaa0b6a5404711118c846fa17903a037d190e2f988f012646dac97533bec9a944007ba81e366bbd6c705ba9a328afc60320c6133fcf04cc4ac9d59585f3e8fb82199eab5df02b90763a35f433e6f28e9a036c254b508b072d76c8a57b65f3344b040e7f99be4cda871d2b3583e6733d5a61031b8303a1b4d4c7d3f87948f1407b459db9db76b331624bd13fe30b9c0f6b760c031e0386b9811023255c20f0e4710eb114c835f79e831e7344dff2b68058a173570219ffff03bdc960cb9394e03e82b5bbcab7f2fdf6334c81ba057c364058c95fdc07e87b420311e6c20e0a06124c0e468803b5597e4b0d43d2ba7ed9cbb6dbd06babfe3dcf2e039568949659d313e508b87ebb7c8cfb029a6e5e14761de394de9867496530d352034533720d56e5940120b2e968c71f860b8c7628499b63dc0b7ec35dcf314c8d0f03c23af0aba951f4ed82493d832ef6565291ab3b44c41bdf0220d1867e427c6a4b03d59af7e68b79f918c1da87788ad8f12673cdc349de40d4f439fc872d808b06e603bb29168b45a310f937afcda8653cdf94eeba7d87f858bfe332a94cc8655520f8038427c046bf3644c94063c1f90c6a91b8b3e852d5ca6e664b6fbad1033609125503c4a93813d6d9085f9aefb1eeded650ea4b9108627b932443da06bebfd431350703cf172bddffeb33fe1f6212801849fa1421d8777e6811d1d0ac6712b84b0b49ca03c1ee9aa9352874761e77ef5145bd83f5a7c3f43bc846064ed8389af765b9b64b0370a6a65203b66c029e9ad817739e24a3ca6d2a30df81a3372f957a58f1372bcd0219ffff03e9415951b1021bdcc073d7883a378b122873eace94f880f8da0bc507f6e315b10334ecd954c5a8d45ddcb82572cf7951f05fb323851ed510d55ec89ac78af699a003ebccc5145536f54d4e23df3f9da11861f4e83c4ac9df5e91c2bb1896c2a7756d03123b317fea5d81358ec394d4571e70c011545c29b18a3c7a99b946b7aa672f3f034021b21036bb32a952365faccd8c766e1aaf44e90a3d99bee718f7cd69e24fd90219ffff033ab7856813049ef658e0169a3bc8fd2565b1f9b2b80fde5674fc00123d1c624503597da01c49d70329bb7a87f2b35f3f87147213076736cb6c6a1bb94cb1e2dcb10367b038979d6478c5a538d0a7930ea24afaf2b4b55342bce17b5fba68fe9acad00389b9d45c1a936f07eb782529a6a0b7eff5efa66295a1975943590ef0d2b61e88034581275bd4f9f3aa9e073ffb8e01cfd5f212508b46abff5249b6d568f3a0d85b03288c8ecee3b075a79b2ab4b76a6c0b138adf660b50fc6c5af8b2b22dabd1eb980322ea01e76983544a7024956e9223e27e62d4dc53c08390235d65877a65eab474032efdd2ca2916d0b4a19d2946c54ecc39b2d9110e3938c3188a7a4aec8677dce603085936b2cb073303511494dd4b871051f9319dffad0a68f0c9d039bf6d8fd0e603047001d5130b998d7eb960c3ebbeb38e2cbb256b86924f616d3da435ba0cb5b00318a2776abbddfc0ccb71b5886c77bf868f129eccee70e7f9b149a8ae47e9f03503ae26b65f8167935c72e2ed18f4940af18eb583db2064096193bd40b0b9dd9bc7038c5b9850e09b2e0900351da5fe67d05b7044ed3ae949ac790f0f2a3b2aef169a036fb5636587f4580fc2e2b1c8c6d26e81064351a5d5fb4a223e73c45e2d250d9b030181365d6f8bac69047ebfb29d7e5db4b75716148df23a1da417bb5ac47e4f6403197506d6551b948e13201746f78ba7bec7c6404eb9804b477e6203f31a4b9e660605581e03af6d259b46889abe19c9c44a283ff34690a6074bcc1952dc78eefff5c007011bffffffffffffffff04595bd55f3560e01c6005600560068306026152ec01601b395f51600760078260ff16848460181c0260181c06028260081c61ffff1601601939505f51818160181c14600336111661004c57612988565b8060fe163610348260011602176152e8578060081c61ffff16565b60206154b560403960206040f35b602060043560206155155f395f518110156152e85760051b6080016154b50160403960206040f35b600a5460405260206040f35b600b5460405260206040f35b64012a05f20060405260206040f35b600c5460405260206040f35b600d5460405260206040f35b600e5460405260206040f35b600f5460405260206040f35b6004356010548110156152e8576011015460405260206040f35b602c5460405260206040f35b602d5460405260206040f35b602e5460405260206040f35b6020806040528060400160206020615ab55f395f510180615ab58339508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b6020806040528060400160206020615b155f395f510180615b158339508051806020830101601f825f03163682375050601f19601f825160200101169050810190506040f35b601260405260206040f35b60208060805260066040527f76372e302e30000000000000000000000000000000000000000000000000000060605260408160800181518152602082015160208201528051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b6004358060a01c6152e857604052602f6040516020525f5260405f205460605260206060f35b6004358060a01c6152e8576040526024358060a01c6152e85760605260306040516020525f5260405f20806060516020525f5260405f2090505460805260206080f35b6004358060a01c6152e85760405260326040516020525f5260405f205460605260206060f35b6020615b9560403960206040f35b33611360526102ee565b6084358060a01c6152e857611360525b60043580600f0b81186152e8576113205260243580600f0b81186152e857611340525f546002146152e85760025f55602033610dc05261132051610de05261134051610e005260406044610e203761136051610e60525f610e80526103546113806144c7565b61138060035f55f35b3361136052610377565b6084358060a01c6152e857611360525b60043580600f0b81186152e8576113205260243580600f0b81186152e857611340525f546002146152e85760025f555f611380525f60206156355f395f51600881116152e85780156103f457905b600260208260051b6101a0016154b5015f395f51186103e9576001611380526103f4565b6001018181186103c5575b5050611380516152e857602033610dc05261132051610de05261134051610e005260406044610e203761136051610e60526001610e80526104366113806144c7565b61138060035f55f35b33610a8052610459565b6044358060a01c6152e857610a80525b60043560040160088135116152e857803560208160051b018083610960375050505f546002146152e85760025f55610492610ac06131fb565b610ac051610aa0526104a5610be0612fc2565b610be0805160208160051b0180610ac0828560045afa505050506104ca610d00612c96565b610d00805160208160051b0180610be0828560045afa50505050610be05160208160051b01806103c082610be060045afa505050610ac05160208160051b01806104e082610ac060045afa505050610aa0516106005261052b610d20614778565b610d2051610d0052603154610d2052610ac05160208160051b0180610d4082610ac060045afa5050505f6008905b80610e605260206154d55f395f51610e6051186105755761060c565b610e6051610960518110156152e85760051b6109800151156105f757610e6051610d40518110156152e85760051b610d60018051610e6051604052610e6051610960518110156152e85760051b6109800151606052336080525f60a0526105dd610e806129cd565b610e80518082018281106152e85790509050815250610601565b610d2051156152e8575b600101818118610559575b5050610be05160208160051b01806103c082610be060045afa505050610d405160208160051b01806104e082610d4060045afa505050610aa05161060052610655610e80614778565b610e8051610e6052610d0051610e605111156152e8575f610e80525f610fa052610d205115610a5c57606036610fc037610d0051610e60518082018281106152e8579050905060206154b55f395f5180156152e857808204905090506110205260403661104037600a5460206154b55f395f518082028115838383041417156152e8579050905060206154b55f395f51600181038181116152e85790508060021b818160021c186152e857905080156152e85780820490509050611080525f6008905b806110a05260206154d55f395f516110a0511861073457610955565b610e60516110a051610ac0518110156152e85760051b610ae001518082028115838383041417156152e85790509050610d005180156152e85780820490509050610fc0525f610fe0526110a051610d40518110156152e85760051b610d6001516110005261100051610fc051116107c45761100051610fc0518082038281116152e85790509050610fe0526107df565b610fc051611000518082038281116152e85790509050610fe0525b670de0b6b3a76400006110a051610be0518110156152e85760051b610c0001516110a051610ac0518110156152e85760051b610ae00151611000518082018281106152e857905090508082028115838383041417156152e8579050905004611040526110405160405261102051606052611080516080526108616110c0613899565b6110c05161106052610e8051600781116152e85761106051610fe0518082028115838383041417156152e857905090506402540be400810490508160051b610ea0015260018101610e8052506110a0516010548110156152e85760110180546110a051610e80518110156152e85760051b610ea0015164012a05f20081028164012a05f2008204186152e85790506402540be400810490508082018281106152e857905090508155506110a051610d40518110156152e85760051b610d600180516110a051610e80518110156152e85760051b610ea001518082038281116152e85790509050815250600101818118610718575b5050610be05160208160051b0180604082610be060045afa505050610d405160208160051b018061016082610d4060045afa5050506109956111c0613142565b6111c0805160208160051b01806110a0828560045afa505050506110a05160208160051b01806040826110a060045afa505050610aa051610160526109db6111c0613320565b6111c051610e6052610d2051610e6051610d00518082038281116152e857905090508082028115838383041417156152e85790509050610d005180156152e85780820490509050610fa0526110a05160208160051b0180610340826110a060045afa505050610aa05161046052610e605161048052610a85613f1956610a85565b610e6051610fa052610e6051604052610e6051606052610a7d610fc061298c565b610fc051602b555b602435610fa0511015610af7576014610fc0527f536c697070616765207363726577656420796f75000000000000000000000000610fe052610fc050610fc05180610fe001601f825f031636823750506308c379a0610f80526020610fa052601f19601f610fc0510116604401610f9cfd5b610d2051610fa0518082018281106152e85790509050610d2052602f610a80516020525f5260405f208054610fa0518082018281106152e85790509050815550610d2051603155610a80515f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610fa051610fc0526020610fc0a3337f189c623b666b1b45b83d7178f39b8c087cb09774317ca2f53c2d3c3726f222a2608080610fc05280610fc0015f610960518083528060051b5f82600881116152e8578015610bdc57905b8060051b61098001518160051b602088010152600101818118610bbe575b5050820160200191505090508101905080610fe05280610fc0015f610e80518083528060051b5f82600881116152e8578015610c3257905b8060051b610ea001518160051b602088010152600101818118610c14575b50508201602001915050905081019050610e605161100052610d205161102052610fc0a26020610fa060035f55f35b33610b0052610c7b565b6064358060a01c6152e857610b00525b60243580600f0b81186152e857610ae0525f546002146152e85760025f55600435156152e857606036610b20375f610c80525f610ca0526004356103c052610ae0516103e052610ccc610cc0614abb565b610cc08051610b20526020810151610b405260408101805160208160051b0180610b60828560045afa50505050610160810151610c8052610180810151610ca05250604435610b20511015610d80576018610cc0527f4e6f7420656e6f75676820636f696e732072656d6f7665640000000000000000610ce052610cc050610cc05180610ce001601f825f031636823750506308c379a0610c80526020610ca052601f19601f610cc0510116604401610c9cfd5b610ae0516010548110156152e8576011018054610b405164012a05f20081028164012a05f2008204186152e85790506402540be400810490508082018281106152e8579050905081555033604052600435606052610ddc615002565b610ae051604052610b2051606052610b0051608052610df9612b8f565b337f6f48129db1f37ccb9cc5dd7e119cb32750cabdf75b48375d730d26ce3659bbe1610ae051610cc052600435610ce052610b2051610d0052603154610d20526080610cc0a2610b605160208160051b018061034082610b6060045afa505050610c805161046052610ca05161048052610e71613f19565b6020610b2060035f55f35b33610a8052610e96565b6044358060a01c6152e857610a80525b60043560040160088135116152e857803560208160051b018083610960375050505f546002146152e85760025f55610ecf610ac06131fb565b610ac051610aa052610ee2610be0612c96565b610be0805160208160051b0180610ac0828560045afa50505050610f07610d00612fc2565b610d00805160208160051b0180610be0828560045afa50505050610ac05160208160051b01806103c082610ac060045afa505050610be05160208160051b01806104e082610be060045afa505050610aa05161060052610f68610d20614778565b610d2051610d0052610be05160208160051b0180610d2082610be060045afa5050505f6008905b80610e405260206154d55f395f51610e405118610fab57611042565b610e4051610960518110156152e85760051b61098001511561103757610e4051610d20518110156152e85760051b610d40018051610e4051610960518110156152e85760051b61098001518082038281116152e85790509050815250610e4051604052610e4051610960518110156152e85760051b6109800151606052610a8051608052611037612b8f565b600101818118610f8f575b5050610ac05160208160051b01806103c082610ac060045afa505050610d205160208160051b01806104e082610d2060045afa505050610aa0516106005261108b610e60614778565b610e6051610e4052600a5460206154b55f395f518082028115838383041417156152e8579050905060206154b55f395f51600181038181116152e85790508060021b818160021c186152e857905080156152e85780820490509050610e6052610d0051610e40518082018281106152e8579050905060206154b55f395f5180156152e85780820490509050610e80525f610ea0525f610fc052608036610fe0375f6008905b806110605260206154d55f395f51611060511861114c5761136d565b610e405161106051610be0518110156152e85760051b610c0001518082028115838383041417156152e85790509050610d005180156152e85780820490509050611000525f6110205261106051610d20518110156152e85760051b610d400151611040526110405161100051116111dc5761104051611000518082038281116152e85790509050611020526111f7565b61100051611040518082038281116152e85790509050611020525b670de0b6b3a764000061106051610ac0518110156152e85760051b610ae0015161106051610be0518110156152e85760051b610c000151611040518082018281106152e857905090508082028115838383041417156152e8579050905004610fe052610fe051604052610e8051606052610e6051608052611279611080613899565b61108051610fc052610ea051600781116152e857610fc051611020518082028115838383041417156152e857905090506402540be400810490508160051b610ec0015260018101610ea05250611060516010548110156152e857601101805461106051610ea0518110156152e85760051b610ec0015164012a05f20081028164012a05f2008204186152e85790506402540be400810490508082018281106152e8579050905081555061106051610d20518110156152e85760051b610d4001805161106051610ea0518110156152e85760051b610ec001518082038281116152e85790509050815250600101818118611130575b5050610ac05160208160051b01806103c082610ac060045afa505050610d205160208160051b01806104e082610d2060045afa505050610aa051610600526113b6611060614778565b61106051610e4052610d205160208160051b018061034082610d2060045afa505050610aa05161046052610e4051610480526113f0613f19565b60315461106052610d0051610e40518082038281116152e85790509050611060518082028115838383041417156152e85790509050610d005180156152e85780820490509050600181018181106152e857905061108052600261108051106152e8576024356110805111156114c45760146110a0527f536c697070616765207363726577656420796f750000000000000000000000006110c0526110a0506110a051806110c001601f825f031636823750506308c379a061106052602061108052601f19601f6110a051011660440161107cfd5b61106051611080518082038281116152e857905090506110605233604052611080516060526114f1615002565b337f3631c28b1f9dd213e0319fb167b554d76b6c283a41143eb400a0d1adb1af17556080806110a052806110a0015f610960518083528060051b5f82600881116152e857801561155b57905b8060051b61098001518160051b60208801015260010181811861153d575b50508201602001915050905081019050806110c052806110a0015f610ea0518083528060051b5f82600881116152e85780156115b157905b8060051b610ec001518160051b602088010152600101818118611593575b50508201602001915050905081019050610e40516110e05261106051611100526110a0a2602061108060035f55f35b336103c05260016103e052611629565b6044358060a01c6152e8576103c05260016103e052611629565b6044358060a01c6152e8576103c0526064358060011c6152e8576103e0525b60243560040160088135116152e857803560208160051b0180836102a0375050505f546002146152e85760025f5560315461040052600435156152e8575f61042052611676610660612fc2565b610660805160208160051b0180610540828560045afa505050505f610660525f6008905b806106805260206154d55f395f5161068051186116b6576117ee565b61068051610540518110156152e85760051b61056001516004358082028115838383041417156152e857905090506104005180156152e8578082049050905061066052610680516102a0518110156152e85760051b6102c001516106605110156117a45760306106a0527f5769746864726177616c20726573756c74656420696e20666577657220636f696106c0527f6e73207468616e206578706563746564000000000000000000000000000000006106e0526106a0506106a051806106c001601f825f031636823750506308c379a061066052602061068052601f19601f6106a051011660440161067cfd5b61042051600781116152e857610660518160051b610440015260018101610420525061068051604052610660516060526103c0516080526117e3612b8f565b60010181811861169a575b505033604052600435606052611802615002565b602e546040526118136106c061398c565b6106c0604061068060408360045afa5050602b546106c0526fffffffffffffffffffffffffffffffff6106c051166106e0526106e051610400516106e0516004358082028115838383041417156152e85790509050048082038281116152e85790509050610740526106c05161012052602d54610140526106a0516101605261189d610700613ddf565b610700516107605260406040604061074060045afa506118be61072061298c565b61072051602b55426106a05110156118d657426106a0525b610680516040526106a0516060526118ef61070061298c565b61070051602e55337f347ad828e58cbe534d8f6b67985d791360756b18f0d95fd9f197a66cc46480ea6060806107005280610700015f610420518083528060051b5f82600881116152e857801561196057905b8060051b61044001518160051b602088010152600101818118611942575b50508201602001915050905081019050806107205280610700015f5f82525f5f5f600881116152e85780156119a757905b5f8160051b602087010152600101818118611991575b505081016020019050905081019050610400516004358082038281116152e8579050905061074052610700a26103e051156119e4576119e461506f565b6020806107005280610700015f610420518083528060051b5f82600881116152e8578015611a2c57905b8060051b61044001518160051b602088010152600101818118611a0e575b5050820160200191505090508101905061070060035f55f35b611a4d61506f565b005b6fffffffffffffffffffffffffffffffff6004356022548110156152e857602301541660405260206040f35b6004356022548110156152e8576023015460801c60405260206040f35b611aa36103e06131fb565b6103e0516103c052611ab6610500612c96565b610500805160208160051b0180610860828560045afa50505050611adb610620612fc2565b610620805160208160051b0180610980828560045afa50505050610240604061024061086060045afa50611b10610740613142565b610740805160208160051b01806103e0828560045afa505050506103e05160208160051b01806040826103e060045afa5050506103c05161016052611b56610520613320565b610520516105005260206103e05160208160051b01806040826103e060045afa5050506103c051610160526105005161018052611b946105206139b1565b61052060043581518110156152e85760051b60208201019050f35b5f546002146152e85760206004356022548110156152e8576023015461012052602c54610140526fffffffffffffffffffffffffffffffff602e541661016052611bfa610200613ddf565b610200f35b5f546002146152e8576020602b5461012052602d5461014052602e5460801c61016052611c2d610200613ddf565b610200f35b6004358060a01c6152e85760c0523360405260c051606052602435608052611c5861526c565b600160e052602060e0f35b6004358060a01c6152e85760c0526024358060a01c6152e85760e05260c05160405260e051606052604435608052611c9961526c565b603060c0516020525f5260405f2080336020525f5260405f20905054610100527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101005114611d1557610100516044358082038281116152e85790509050603060c0516020525f5260405f2080336020525f5260405f209050555b6001610120526020610120f35b6004358060a01c6152e8576040526024356030336020525f5260405f20806040516020525f5260405f20905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560243560605260206060a3600160605260206060f35b6004358060a01c6152e857610120526024358060a01c6152e857610140526084358060081c6152e8576101605261012051156152e85760643542116152e8576032610120516020525f5260405f2054610180525f60026101c0527f19010000000000000000000000000000000000000000000000000000000000006101e0526101c0805160208201836103200181518152505080830192505050611e2f6102006151d9565b610200518161032001526020810190507f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c961024052610120516102605261014051610280526044356102a052610180516102c0526064356102e05260c061022052610220805160208201209050816103200152602081019050806103005261030090508051602082012090506101a052610120513b15611ff8575f604060a46102603760406102405261024080516020820183610320018281848460045afa50505080830192505050610160516102a0526102a0601f810180516102e0525060016102c0526102c09050805160208201836103200181518152505080830192505050806103005261030090506020815101806101c0828460045afa5050507f1626ba7e0000000000000000000000000000000000000000000000000000000061012051631626ba7e6102405260406101a051610260528061028052806102600160206101c051018082826101c060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081015050602061024060c461025c845afa611fe0573d5f5f3e3d5ffd5b60203d106152e857610240905051186152e857612038565b610120515f610240526101a0516101c052610160516101e05260a4356102005260c43561022052602061024060806101c060015afa5061024051186152e8575b6044356030610120516020525f5260405f2080610140516020525f5260405f2090505561018051600181018181106152e85790506032610120516020525f5260405f205561014051610120517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256044356101c05260206101c0a360016101c05260206101c0f35b60206120cc6101206151d9565b610120f35b60043580600f0b81186152e85760405260243580600f0b81186152e857606052602060206154f55f395f5163e31593d8608052602060806004609c845afa61211b573d5f5f3e3d5ffd5b60203d106152e8576080518060a01c6152e85760c05260c09050516383aa796a60e0526040516101005260605161012052604435610140523061016052602060e0608460fc845afa61216f573d5f5f3e3d5ffd5b60203d106152e85760e09050f35b60043580600f0b81186152e85760405260243580600f0b81186152e857606052602060206154f55f395f5163e31593d8608052602060806004609c845afa6121c7573d5f5f3e3d5ffd5b60203d106152e8576080518060a01c6152e85760c05260c0905051630c601c2c60e0526040516101005260605161012052604435610140523061016052602060e0608460fc845afa61221b573d5f5f3e3d5ffd5b60203d106152e85760e09050f35b60243580600f0b81186152e857610ae05260206004356103c052610ae0516103e052612256610b00614abb565b610b00f35b5f546002146152e85760315460405260206040f35b5f546002146152e8576122846103e06131fb565b6103e0516103c052612297610500612c96565b610500805160208160051b0180610860828560045afa505050506122bc610620612fc2565b610620805160208160051b0180610980828560045afa50505050610240604061024061086060045afa506122f1610740613142565b610740805160208160051b01806103e0828560045afa505050506103e05160208160051b01806040826103e060045afa5050506103c05161016052612337610520613320565b610520516105005261050051670de0b6b3a7640000810281670de0b6b3a76400008204186152e857905060315480156152e85780820490509050610520526020610520f35b60043560040160088135116152e857803560208160051b0180836040375050506024358060011c6152e85761016052602060206154f55f395f5163e31593d8610180526020610180600461019c845afa6123d8573d5f5f3e3d5ffd5b60203d106152e857610180518060a01c6152e8576101c0526101c090505163fb79eb276101e0526060806102005280610200015f6040518083528060051b5f82600881116152e857801561244557905b8060051b606001518160051b602088010152600101818118612428575b50508201602001915050905081019050610160516102205230610240525060206101e06101846101fc845afa61247d573d5f5f3e3d5ffd5b60203d106152e8576101e09050f35b61249660c06131fb565b60c05160648104905060e052602060e0f35b60206124b460c06131fb565b60c0f35b60206124c5610200612fc2565b61020060043581518110156152e85760051b60208201019050f35b602080610320526124f2610200612fc2565b61020081610320015f82518083528060051b5f82600881116152e857801561253557905b8060051b6020880101518160051b602088010152600101818118612516575b505082016020019150509050905081019050610320f35b6020806104605261255e610340612c96565b61034081610460015f82518083528060051b5f82600881116152e85780156125a157905b8060051b6020880101518160051b602088010152600101818118612582575b505082016020019150509050905081019050610460f35b60043580600f0b81186152e85760405260243580600f0b81186152e857606052602060206154f55f395f5163e31593d8608052602060806004609c845afa612602573d5f5f3e3d5ffd5b60203d106152e8576080518060a01c6152e85760c05260c090505163a63530bd60e05260405161010052606051610120523061014052602060e0606460fc845afa61264f573d5f5f3e3d5ffd5b60203d106152e85760e09050f35b60206154f55f395f5163f851a44060c052602060c0600460dc845afa612685573d5f5f3e3d5ffd5b60203d106152e85760c0518060a01c6152e8576101005261010090505133186152e857600e546201518081018181106152e857905042106152e857426201518081018181106152e8579050602435106152e8576126e260e06131fb565b60e05160c052600435606481028160648204186152e857905060e0526004351561271457620f423f6004351115612716565b5f5b156152e85760c05160e051106127465760c051600a810281600a8204186152e857905060e051116152e857612762565b60c05160e051600a810281600a8204186152e8579050106152e8575b60c051600c5560e051600d5542600e55602435600f557fa2b71ec6df949300b59aab36b55e189697b750119dd349fcfa8c0f779e83c25460c0516101005260e051610120524261014052602435610160526080610100a1005b60206154f55f395f5163f851a44060c052602060c0600460dc845afa6127e3573d5f5f3e3d5ffd5b60203d106152e85760c0518060a01c6152e8576101005261010090505133186152e85761281060e06131fb565b60e05160c05260c051600c5560c051600d5542600e5542600f557f46e22fb3709ad289f62ce63d469248536dbc78d82b84a3d7e74ad606dc20193860c05160e0524261010052604060e0a1005b60206154f55f395f5163f851a440604052602060406004605c845afa612885573d5f5f3e3d5ffd5b60203d106152e8576040518060a01c6152e857608052608090505133186152e85764012a05f200600435116152e857600435600a556802b5e3af16b18800006024356004358082028115838383041417156152e85790509050116152e857602435600b557f750d10a7f37466ce785ee6bcb604aac543358db42afbcc332a3c12a49c80bf6d6040600460403760406040a1005b60206154f55f395f5163f851a440604052602060406004605c845afa612940573d5f5f3e3d5ffd5b60203d106152e8576040518060a01c6152e857608052608090505133186152e85760043515612973576024351515612975565b5f5b156152e857600435602c55602435602d55005b5f5ffd5b6fffffffffffffffffffffffffffffffff604051116152e8576fffffffffffffffffffffffffffffffff606051116152e85760605160801b60405117815250565b602060405160206155155f395f518110156152e85760051b6080016154b5015f395f516370a0823160e0523061010052602060e0602460fc845afa612a14573d5f5f3e3d5ffd5b60203d106152e85760e090505160c05260a051612b3057606051156152e857602060405160206155155f395f518110156152e85760051b6080016154b5015f395f516323b872dd60e05260805161010052306101205260605161014052602060e0606460fc5f855af1612a89573d5f5f3e3d5ffd5b3d612aa057803b156152e857600161016052612ab8565b60203d106152e85760e0518060011c6152e857610160525b610160905051156152e857602060405160206155155f395f518110156152e85760051b6080016154b5015f395f516370a0823160e0523061010052602060e0602460fc845afa612b0a573d5f5f3e3d5ffd5b60203d106152e85760e090505160c0518082038281116152e8579050905060c052612b61565b60c0516040516001548110156152e857600201548082038281116152e8579050905060c05260605160c051106152e8575b6040516001548110156152e857600201805460c0518082018281106152e8579050905081555060c051815250565b602060405160206155155f395f518110156152e85760051b6080016154b5015f395f516370a0823160c0523060e052602060c0602460dc845afa612bd5573d5f5f3e3d5ffd5b60203d106152e85760c090505160a052602060405160206155155f395f518110156152e85760051b6080016154b5015f395f5163a9059cbb60c05260805160e05260605161010052602060c0604460dc5f855af1612c35573d5f5f3e3d5ffd5b3d612c4c57803b156152e857600161012052612c64565b60203d106152e85760c0518060011c6152e857610120525b610120905051156152e85760a0516060518082038281116152e857905090506040516001548110156152e85760020155565b60206157555f395f5160208160051b0180615755604039505060195460208160051b015f81601f0160051c600981116152e8578015612cea57905b80601901548160051b6101600152600101818118612cd1575b505050505f6008905b806102805260206154d55f395f516102805118612d0f57612fa7565b600160206102805160206156355f395f518110156152e85760051b6101a0016154b5015f395f5118612d595761028051610160518110156152e85760051b61018001511515612d5b565b5f5b612e8a57600360206102805160206156355f395f518110156152e85760051b6101a0016154b5015f395f5118612f9c57670de0b6b3a7640000610280516040518110156152e85760051b6060015160206102805160206155155f395f518110156152e85760051b6080016154b5015f395f516307a2d13a6102a05260206102805160206158755f395f518110156152e85760051b6103e0016154b5016102c03960206102a060246102bc845afa612e14573d5f5f3e3d5ffd5b60203d106152e8576102a09050518082028115838383041417156152e8579050905060206102805160206159955f395f518110156152e85760051b610500016154b5015f395f518082028115838383041417156152e8579050905004610280516040518110156152e85760051b60600152612f9c565b61028051610160518110156152e85760051b610180015173ffffffffffffffffffffffffffffffffffffffff811690508060a01c6152e8575a7fffffffff0000000000000000000000000000000000000000000000000000000061028051610160518110156152e85760051b6101800151166102e05260206102c0526102c05060206103206102c0516102e08585fa90509050612f29573d5f5f3e3d5ffd5b3d602081183d6020100218610300526103006020810151815160200360031b1c90506102a052670de0b6b3a7640000610280516040518110156152e85760051b606001516102a0518082028115838383041417156152e8579050905004610280516040518110156152e85760051b606001525b600101818118612cf3575b505060405160208160051b01808382604060045afa50505050565b5f6040525f610160525f6008905b806101805260206154d55f395f516101805118612fec57613127565b5f6101a0525f60206156355f395f51600881116152e857801561303a57905b600260208260051b6101a0016154b5015f395f511861302f5760016101a05261303a565b60010181811861300b575b50506101a05161307f57610180516001548110156152e85760020154610180516010548110156152e857601101548082038281116152e85790509050610160526130fd565b60206101805160206155155f395f518110156152e85760051b6080016154b5015f395f516370a082316101c052306101e05260206101c060246101dc845afa6130ca573d5f5f3e3d5ffd5b60203d106152e8576101c0905051610180516010548110156152e857601101548082038281116152e85790509050610160525b604051600781116152e857610160518160051b606001526001810160405250600101818118612fd0575b505060405160208160051b01808382604060045afa50505050565b5f610280525f6008905b806103a05260206154d55f395f516103a05118613168576131de565b61028051600781116152e8576103a0516040518110156152e85760051b606001516103a051610160518110156152e85760051b61018001518082028115838383041417156152e85790509050670de0b6b3a7640000810490508160051b6102a0015260018101610280525060010181811861314c575b50506102805160208160051b0180838261028060045afa50505050565b600f54604052600d54606052604051421061321f5760605181525061331e5661331e565b600c54608052600e5460a052608051606051116132ae576080516080516060518082038281116152e857905090504260a0518082038281116152e857905090508082028115838383041417156152e8579050905060405160a0518082038281116152e8579050905080156152e857808204905090508082038281116152e8579050905081525061331e5661331e565b6080516060516080518082038281116152e857905090504260a0518082038281116152e857905090508082028115838383041417156152e8579050905060405160a0518082038281116152e8579050905080156152e857808204905090508082018281106152e857905090508152505b565b5f610180525f604051600881116152e857801561336a57905b8060051b606001516101a052610180516101a0518082018281106152e8579050905061018052600101818118613339575b50506101805161337d575f815250613592565b610180516101a0526101605160206154b55f395f518082028115838383041417156152e857905090506101c0526040366101e0375f60ff905b80610220526101a0516101e0525f604051600881116152e857801561343c57905b8060051b60600151610240526101e0516101a0518082028115838383041417156152e857905090506102405160206154b55f395f518082028115838383041417156152e8579050905080156152e857808204905090506101e0526001018181186133d7575b50506101a0516102005260646101c051610180518082028115838383041417156152e85790509050046101e05160206154b55f395f518082028115838383041417156152e857905090508082018281106152e857905090506101a0518082028115838383041417156152e8579050905060646101c051606481038181116152e85790506101a0518082028115838383041417156152e8579050905004600160206154b55f395f51016101e0518082028115838383041417156152e857905090508082018281106152e8579050905080156152e857808204905090506101a052610200516101a05111613557576001610200516101a0518082038281116152e8579050905011613582576101a051835250505061359256613582565b60016101a051610200518082038281116152e8579050905011613582576101a0518352505050613592565b6001018181186133b65750505f5ffd5b565b606051604051146152e8575f606051126152e85760206154d55f395f5160605112156152e8575f604051126152e85760206154d55f395f5160405112156152e8576101c051610200526101e0516102205260603661024037610220516102a0526102005160206154b55f395f518082028115838383041417156152e857905090506102c0525f6008905b806102e05260206154d55f395f516102e0511861363a576136f4565b6040516102e051186136525760805161026052613680565b6060516102e051146136e9576102e05160a0518110156152e85760051b60c0015161026052613680566136e9565b61024051610260518082018281106152e85790509050610240526102a051610220518082028115838383041417156152e857905090506102605160206154b55f395f518082028115838383041417156152e8579050905080156152e857808204905090506102a0525b60010181811861361e575b50506102a051610220518082028115838383041417156152e85790509050606481028160648204186152e85790506102c05160206154b55f395f518082028115838383041417156152e8579050905080156152e857808204905090506102a0526102405161022051606481028160648204186152e85790506102c05180156152e857808204905090508082018281106152e857905090506102e05261022051610300525f60ff905b8061032052610300516102805261030051610300518082028115838383041417156152e857905090506102a0518082018281106152e85790509050610300518060011b818160011c186152e85790506102e0518082018281106152e85790509050610220518082038281116152e8579050905080156152e857808204905090506103005261028051610300511161385c57600161028051610300518082038281116152e85790509050116138875761030051835250505061389756613887565b600161030051610280518082038281116152e857905090501161388757610300518352505050613897565b60010181811861379c5750505f5ffd5b565b600b5460a0526402540be40060a051116138b85760805181525061398a565b6040516060518082018281106152e857905090506fffffffffffffffffffffffffffffffff81116152e8576002810a905060c05260a0516080518082028115838383041417156152e8579050905060a0516402540be40081038181116152e85790508060021b818160021c186152e85790506040518082028115838383041417156152e857905090506060518082028115838383041417156152e8579050905060c05180156152e857808204905090506402540be40081018181106152e857905080156152e857808204905090508152505b565b6fffffffffffffffffffffffffffffffff60405116815260405160801c602082015250565b60206154b55f395f5161016051026101a05260206154b55f395f5160206154b55f395f510a61018051046101c0525f6008905b806101e05260206154d55f395f516101e05118613a0057613a4d565b6101c051610180518082028115838383041417156152e857905090506101e0516040518110156152e85760051b6060015180156152e857808204905090506101c0526001018181186139e4575b50505f6101e0526101a051604051156152e8575f60051b606001518082028115838383041417156152e8579050905060648104905061030052600160078101905b806103205260206154b55f395f516103205118613aaa57613b70565b6101e051600781116152e857610300516101c051604051156152e8575f60051b606001518082028115838383041417156152e85790509050610320516040518110156152e85760051b6060015180156152e857808204905090508082018281106152e85790509050670de0b6b3a7640000810281670de0b6b3a76400008204186152e8579050610300516101c0518082018281106152e8579050905080156152e857808204905090508160051b6102000152600181016101e05250600101818118613a8e575b50506101e05160208160051b018083826101e060045afa50505050565b6040516060527ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c160405113613bc5575f815250613ddd565b680755bf798b4a1bf1e46040511315613c345760106080527f7761645f657870206f766572666c6f770000000000000000000000000000000060a0526080506080518060a001601f825f031636823750506308c379a06040526020606052601f19601f6080510116604401605cfd5b6503782dace9d9604051604e1b056060526b8000000000000000000000006bb17217f7d1cf79abc9e3b39860605160601b050160601d6080526bb17217f7d1cf79abc9e3b39860805102606051036060526d02d16720577bd19bf614176fe9ea6060516c10fe68e7fd37d0007b713f7650606051010260601d0160a05279d835ebba824c98fb31b83b2ca45c0000000000000000000000006060516e0587f503bb6ea29d25fcb74019645060a0516d04a4fd9f2a8b96949216d2255a6c60605160a05101030260601d01020160c0526d0277594991cfc85f6e2461837cd96060516c240c330e9fb2d9cbaf0fd5aafc606051030260601d0160e0526d1a521255e34f6a5061b25ef1c9c460605160e0510260601d0360e0526db1bbb201f443cf962f1a1d3db4a560605160e0510260601d0160e0526e02c72388d9f74f51a9331fed693f1560605160e0510260601d0360e0526e05180bb14799ab47a8a8cb2a527d5760605160e0510260601d0160e05260e05160c051056101005274029d9dc38563c32e5c2f6dc192ee70ef65f9978af3610100510260805160c3035f81126152e8571c8152505b565b6fffffffffffffffffffffffffffffffff6101205116610180526101205160801c6101a05242610160511015613f0f5742610160518082038281116152e85790509050670de0b6b3a7640000810281670de0b6b3a76400008204186152e85790506101405180156152e857808204905090508060ff1c6152e8577f800000000000000000000000000000000000000000000000000000000000000081146152e8575f03604052613e906101e0613b8d565b6101e0516101c052610180516101c05180670de0b6b3a764000003670de0b6b3a764000081116152e85790508082028115838383041417156152e857905090506101a0516101c0518082028115838383041417156152e857905090508082018281106152e85790509050670de0b6b3a764000081049050815250613f17565b6101a0518152505b565b602e54604052613f2a6104e061398c565b6104e060406104a060408360045afa505060225460208160051b015f81601f0160051c600981116152e8578015613f7657905b80602201548160051b6104e00152600101818118613f5d575b505050506104e05160208160051b0180610600826104e060045afa5050506103405160208160051b018060408261034060045afa50505061046051610160526104805161018052613fc86108406139b1565b610840805160208160051b0180610720828560045afa505050505f6008905b806108405260206154b55f395f51600181038181116152e85790506108405118614010576140df565b61084051610720518110156152e85760051b6107400151156140d45761084051610720518110156152e85760051b6107400151671bc16d674ec80000818118671bc16d674ec800008310021890506108a052610840516104e0518110156152e85760051b610500015161012052602c54610140526104a05161016052614097610860613ddf565b610860516108c0526040604060406108a060045afa506140b861088061298c565b6108805161084051610600518110156152e85760051b61062001525b600101818118613fe7575b50506106005160208160051b015f81601f0160051c600981116152e857801561411d57905b8060051b61060001518160220155600101818118614104575b50505050602b5461084052610480516108a0526108405161012052602d54610140526104c05161016052614152610860613ddf565b610860516108c0526040604060406108a060045afa5061417361088061298c565b61088051602b555f6002905b80610860524261086051600181116152e85760051b6104a0015110156141b5574261086051600181116152e85760051b6104a001525b60010181811861417f5750506104a0516040526104c0516060526141da61086061298c565b61086051602e55565b6141ee610c206131fb565b610c2051610c00526109805160208160051b018060408261098060045afa505050610c005161016052614222610c40613320565b610c4051610c2052610bc051604052610be051606052610960516080526109805160208160051b018060a08261098060045afa505050610c00516101c052610c20516101e052614273610c60613594565b610c6051610c4052610be051610980518110156152e85760051b6109a00151610c40518082038281116152e85790509050600181038181116152e8579050610c6052610c6051610bc051610980518110156152e85760051b6109a00151610960518082018281106152e857905090508060011c9050604052610be051610980518110156152e85760051b6109a00151610c40518082018281106152e857905090508060011c9050606052600a5460805261432e610ca0613899565b610ca0518082028115838383041417156152e857905090506402540be40081049050610c8052610c6051610c80518082038281116152e85790509050670de0b6b3a7640000810281670de0b6b3a76400008204186152e8579050610be051610aa0518110156152e85760051b610ac0015180156152e85780820490509050610c6052610be0516010548110156152e8576011018054610c805164012a05f20081028164012a05f2008204186152e85790506402540be40081049050670de0b6b3a7640000810281670de0b6b3a76400008204186152e8579050610be051610aa0518110156152e85760051b610ac0015180156152e857808204905090508082018281106152e857905090508155506109805160208160051b0180610ca08261098060045afa50505061096051610bc051610ca0518110156152e85760051b610cc00152610c4051610be051610ca0518110156152e85760051b610cc00152610ca05160208160051b018061034082610ca060045afa505050610c005161046052610c2051610480526144be613f19565b610c6051815250565b610e0051610de051146152e857610e2051156152e8576144e8610fc0612c96565b610fc0805160208160051b0180610ea0828560045afa5050505061450d6110e0612fc2565b6110e0805160208160051b0180610fc0828560045afa50505050610ea05160208160051b0180604082610ea060045afa505050610fc05160208160051b018061016082610fc060045afa505050614565611200613142565b611200805160208160051b01806110e0828560045afa50505050610de051604052610e2051606052610dc051608052610e805160a0526145a66112206129cd565b6112205161120052610de0516110e0518110156152e85760051b611100015161120051610de051610ea0518110156152e85760051b610ec001518082028115838383041417156152e85790509050670de0b6b3a7640000810490508082018281106152e857905090506112205261122051610960526110e05160208160051b0180610980826110e060045afa505050610ea05160208160051b0180610aa082610ea060045afa505050610de051610bc052610e0051610be05261466a6112606141e3565b6112605161124052610e405161124051101561470a57602e611260527f45786368616e676520726573756c74656420696e20666577657220636f696e73611280527f207468616e2065787065637465640000000000000000000000000000000000006112a05261126050611260518061128001601f825f031636823750506308c379a061122052602061124052601f19601f61126051011660440161123cfd5b610e005160405261124051606052610e6051608052614727612b8f565b337f8b3e96f2b889fa771c53c981b40daf005f63f637f1869f707052d15a3dd97140610de05161126052610e205161128052610e00516112a052611240516112c0526080611260a261124051815250565b6103c05160208160051b01806040826103c060045afa5050506104e05160208160051b0180610160826104e060045afa5050506147b6610740613142565b610740805160208160051b0180610620828560045afa505050506106205160208160051b018060408261062060045afa50505061060051610160526147fc610740613320565b61074051815250565b5f606051126152e85760206154d55f395f5160605112156152e8576060366101c0376101a0516102205260405160206154b55f395f518082028115838383041417156152e85790509050610240525f6008905b806102605260206154d55f395f51610260511861487457614916565b606051610260511461490b57610260516080518110156152e85760051b60a001516101e0526148a25661490b565b6101c0516101e0518082018281106152e857905090506101c052610220516101a0518082028115838383041417156152e857905090506101e05160206154b55f395f518082028115838383041417156152e8579050905080156152e85780820490509050610220525b600101818118614858575b5050610220516101a0518082028115838383041417156152e85790509050606481028160648204186152e85790506102405160206154b55f395f518082028115838383041417156152e8579050905080156152e85780820490509050610220526101c0516101a051606481028160648204186152e85790506102405180156152e857808204905090508082018281106152e85790509050610260526101a051610280525f60ff905b806102a052610280516102005261028051610280518082028115838383041417156152e85790509050610220518082018281106152e85790509050610280518060011b818160011c186152e8579050610260518082018281106152e857905090506101a0518082038281116152e8579050905080156152e8578082049050905061028052610200516102805111614a7e57600161020051610280518082038281116152e8579050905011614aa957610280518352505050614ab956614aa9565b600161028051610200518082038281116152e8579050905011614aa957610280518352505050614ab9565b6001018181186149be5750505f5ffd5b565b614ac66104206131fb565b6104205161040052614ad9610540612c96565b610540805160208160051b0180610420828560045afa505050506104205160208160051b01806108a08261042060045afa505050614b18610660612fc2565b610660805160208160051b01806109c0828560045afa5050505061024060406102406108a060045afa50614b4d610780613142565b610780805160208160051b0180610540828560045afa505050506105405160208160051b018060408261054060045afa5050506104005161016052614b93610680613320565b610680516106605260315461068052610660516103c051610660518082028115838383041417156152e857905090506106805180156152e857808204905090508082038281116152e857905090506106a052610400516040526103e0516060526105405160208160051b018060808261054060045afa5050506106a0516101a052614c1f6106e0614805565b6106e0516106c052600a5460206154b55f395f518082028115838383041417156152e8579050905060206154b55f395f51600181038181116152e85790508060021b818160021c186152e857905080156152e857808204905090506106e052610660516106a0518082018281106152e8579050905060206154b55f395f518060011b818160011c186152e857905080156152e85780820490509050610700526105405160208160051b01806107208261054060045afa505050608036610840375f6008905b806108c05260206154d55f395f516108c05118614d0057614e63565b5f610840526108c051610540518110156152e85760051b6105600151610860526103e0516108c05118614d9557610860516106a0518082028115838383041417156152e857905090506106605180156152e857808204905090506106c0518082038281116152e8579050905061084052610860516106c0518082018281106152e857905090508060011c905061088052614de1565b61086051610860516106a0518082028115838383041417156152e857905090506106605180156152e857808204905090508082038281116152e857905090506108405261086051610880525b61088051604052610700516060526106e051608052614e016108e0613899565b6108e0516108a052610860516108a051610840518082028115838383041417156152e857905090506402540be400810490508082038281116152e857905090506108c051610720518110156152e85760051b6107400152600101818118614ce4575b50506103e051610720518110156152e85760051b6107400151610400516040526103e0516060526107205160208160051b018060808261072060045afa5050506106a0516101a052614eb66108e0614805565b6108e0518082038281116152e857905090506108c0526103e051610540518110156152e85760051b61056001516106c0518082038281116152e85790509050670de0b6b3a7640000810281670de0b6b3a76400008204186152e85790506103e051610420518110156152e85760051b610440015180156152e857808204905090506108e0526108c051600181038181116152e8579050670de0b6b3a7640000810281670de0b6b3a76400008204186152e85790506103e051610420518110156152e85760051b610440015180156152e857808204905090506108c0526106c0516103e051610540518110156152e85760051b61056001526108c05181526108e0516108c0518082038281116152e8579050905060208201526105405160208160051b016040830181818361054060045afa50505050610400516101608201526106a05161018082015250565b6031546060518082038281116152e85790509050603155602f6040516020525f5260405f2080546060518082038281116152e857905090508155505f6040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60605160805260206080a3565b60206154f55f395f5163cab4d3db610160526020610160600461017c845afa61509a573d5f5f3e3d5ffd5b60203d106152e857610160518060a01c6152e8576101a0526101a09050516101405261014051156152e85760105460208160051b015f81601f0160051c600981116152e857801561510057905b80601001548160051b61016001526001018181186150e7575b505050505f6008905b806102805260206154d55f395f51610280511861512557615195565b61028051610160518110156152e85760051b61018001511561518a576102805160405261028051610160518110156152e85760051b610180015160605261014051608052615171612b8f565b5f61028051610160518110156152e85760051b61018001525b600101818118615109575b50506101605160208160051b015f81601f0160051c600981116152e85780156151d357905b8060051b610160015181601001556001018181186151ba575b50505050565b6020615b755f395f514614615261577fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564726060526020615b556080397f1c54f243822e0e9a0a377610b81577e771b3efe79964e76636b0d5d10247950d60a0524660c0523060e0526020615b956101003960c0604052604080516020820120905081525061526a565b6020615bb58239505b565b602f6040516020525f5260405f2080546080518082038281116152e85790509050815550602f6060516020525f5260405f2080546080518082018281106152e857905090508155506060516040517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60805160a052602060a0a3565b5f80fd0299544509065753650a8094530a0d1cfc53ab0c0081548407076c53ff0ad40ddb8c15e0652081066c00dc059c4258c4011a053931ab521a4f2554fd4d5001c90576a9cd3e25b8455e604cd215f085b72df5de043f651a4d01d20c616567df02ca20d16529357750006705e2e7d26400f425ec0238621a9825fd0684b1254c0518160ddd225b05a9059cbb1c324570a0823102372530c540851a4505ddca3f43009d055e0d443f217d6506fdde03013205a7256d09044985c66106570075258edfdd5f00a905ddc1f59d02dea5cc2b27d722294590d208371a7b253644e51520bf05313ce56701be05081579a50c6b851ddc3b01012605d505accf1d8ae5bfa0b13302c60595d89b410178051be913a5010e057706db750e7c65fee3f7f900b505095ea7b31d224514f0597924e00565bbea6b291845907a016b1bff05b4b577ad00d0054903b0d124b82523b872dd1c6365687276531baf252969e04a160aa5551a658827bb051405228800e8055409491a00c405015c2838285d454a6e32c60e86857ecebe0002a0257e3db030035d85dd62ed3e025d45bb7b8b802270053c157e64265d4576a2f0f024a8053df0212402d485f446c1d0248c053db06dd8237c65afb430120367a5000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000006a8cbed756804b16e05e741edabd5cb544ae21bf00000000000000000000000000000000000000000000000000000000000000020000000000000000000000004c9edd5852cd905f086c759e8383e09bff1e68b3000000000000000000000000f939e0a03fb07f59a73314e73794be0e57ac1b4e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b555344652d6372765553440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a5553446563727655534400000000000000000000000000000000000000000000387b51582196fc0905653e18614c8ee439a67ed5d5f8850700ab11ae6e43601300000000000000000000000000000000000000000000000000000000000000014493f594ed8faf6d4742f6bed96febdfee42ab8e7fb338d97bacd1f1b11f44038107cc22129fa97de0763265d6ee509f8ad6a6d54703dc210d8c8c375dbfc01d033773023aad550457ce741ae8ad31c83ae8ce36f35aa2f83baf0e78074e3ee4970058200314a2a9925316b71b68aa46ef953b23ecc8920a27f716910ea45df6d5bccb005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f03696aa92ac057304616b8069270926a356cc864909c7e4a95b4bbd54643a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f037a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90450ba43b7400021908200141050058200396a11f1296f4a7ab19015f635b2c756110f789a969e718ba5d0cc1b98818e0480a158983e61ceeb302190488038864e51f61c2830cf47fd9d106fb32fa1639d8a917596bfe4fb50bc496942b3203c9b51b8ec49acaedbbec9ce044f7aa3d044bc787ab8c075efa1cad6abdc03c7900582002f19d725db95f5b53ba1839080f47e3fa7f149699eda834b9052eae8789ea9549049346ab4de74ee0dc00582003c73da66c75655ba185bbea3330f7520341a8e74d5ea4fa1734ac2c5337b6405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200355d1b2336ebbfb183f6529ccc6ed1d7aeb91bdd5ced5038388ba177205f5c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219020203d08468a2f63ae095d55bad948eabaefe7f91bd0abfd05acce3b6cf392eec289a03ab5c512b28c0d4bf757f1ed6f041d9c9dd0c4cbef922daf1d14922a5bbc7a9bc005820023aeafaadeb1652f32bf0439c1d03b699c8e109b3684ce5df06a268869494635820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0347f6d7f21b6be96c6d2526f7fd9e9ac6b354006268e2b7f908c7f13eab14dc26032706d0fb80c77b8150f9cfe26de509692c73e22c0ab4ad698e61f4e0a196a41203ff8cc01c8cfb83671b77a9b0d72ef2a1561f6b4e037c4c8ca719e9775b62f03d0392ab4134ec8ecf624f579a8bebdf65eaa51aa18473db637d23aa6608c8aa8999038cc9af5df5c8263e7c6cd6af696c502003032c99bb1938c28b4eba3948e336f30307d4a8e0fff01df5a81e01681f950d3c6d0a6d01ea64b3d36203429a1a7329bd03630dedbac1de528a7e207ef18bdbf596d34f819bbeefa8b888eee5549c8549ce0219ffff00582002994578c1c8c13d645897bf71a2ae97e7a8fa54ebcb0727b0be5a954fca5cdc5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002c44e4875b74d31ff9fd779bf2566af7bd15b87fc985d01f5094b89e3669e4f581b0350cbfc0ff18c19d3719300000000000634810f8b02f0682aff0703f7aba074447ae9bbb0326ac53921a8b5130a802608445582f0fb6538d8db04c400582002e3fa1653c124adffef8d854cb55d11c0cacb5f41c3f168bdfff4cece92ef0d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0385e5a4ca088bfe7060809e338786a4f4850b040dbd95db2a3a27e806a8ab7adb031092a67ad5cbb041fabc581b8205a571e85b6f6aa837d258e42037a425b3f95b005820028c76cbd47dd39a6c1e67f66b59d60fafac6e25cfe3be547585bd750c6a054c4801862656d893f99d005820024b4fa63c47771c781a7f1a9c7c5638eac3b0657b07e31d29b03221586688bd5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03f77ce748cf506090263b4ef76c21c1cf96155485581ae130f5b010640853757c0356d40c7b861d12b4663bd4b74f25e2555072860d1e3e894d59b08fba04e3ab7803b1433c3df6e4761bef2fb8b0f50395430948426762a3a46d546f5a5278259e2b00582003847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6720410202184103d50476843ad3a52ceec66041d780a730130dba3bcf59ecd826143d93e8e83d8d034466a428602dd20619894e0a4848973ce9b2ac02afe38e95d72a95a0f16cb29803bf91d1628575cbe566a37db81c0cc90dbe23bd00cc78d036012dd352512d01420219beff032b61b31f1a67484ed96fecd867916629e178d7920d594d6589a91cecd8f51a5400582002e608e80f88df8768033de7881bfe22da5d4176a13511e6bb7ddc1dd673bae15820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03b31746b997d9658b5a74bbba4f4c15bec00251419e0f4529e1911175c8a991cd03f48471c952feca68dd1959d3b65d4bbd1ab37a454eeb1fc5978db3bdaf39d8320058200222c638e2b1b316680667aefa2ea1f95722f6f9d9669c040074ebb545b250025820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002ed0a9bc10a6e1e61bb9c62555e52fd1cee808166ee6f2d852fd9353ae526c15820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038d43940c0e74e3e56a80ec5e8112e620f52ebbf5111ad9c523028b211ab3d48a031d2622ea38b808cffae0103a3199dc251bcf1db064bdee2e29f629919408886803e718357e1c5965a49a9091fdbbdc9fb2a6245c55caef6684952644c4ee64463500581f0271d0d61fe362feac5a64c0186a63e2000aa68e6a982aad540a31271c394448bb59a27953c6000000581f02ecd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341030219240003f87a467600dff8502ea0013757ba7034522ab0f6481a877ba448c0629e7f1e77005820037a85bb2f7664a3933acddaedb3df84cf46e72e5ec846fb98aead4b11266e605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820037d445365f6ca1e92af6c1b9f7c2c6f3ba241cf04d44be9d7292a7e86f6f6705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021902290329d8b3f781e80e5ecb6450eb6b0d1e53deac6e9c7a88a7569c635a742e779c8103675dbc83e92d4e13506bc2ac2191079cbef3bcc90b1406d9fe61dcada290e6e303d99c56e44a76e9c37d0f6c3a1d7f8137b2e61369f44f0d8eb2883c0a00b1d4c3039a0ad36c7124f65af277c596fb0fd22f3c564ff618b32dea59c5425219aea74a0219d7ff00582003c8081971a10520e1819694874e3add72a34b2fbf49154ea787e9b0d5ce87005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820037179750dee4ce85e24c1689b4d976e7864605ca5d51c4e4e8dcdb03830630049083257adb12cd1630100582003cc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68049055d9108f81139169b02194005030fd4f975c36aad33526e251c7f278b4a9497d8153177efe44e3bbb1e64103d1f03d12f9a779bcffef094783115098f9aed9993958e903e1e74642e6fac6d3dd7ad005820033fbb7e074073e27ea57ffa769caf5c9a15950fd49ff2e79648c8ee246a7f5049369bb07facfacf1fbb0376a5dfe86366c0e680c32029a4ad709dfaf7df1f36ad3d8c8a331f13467ec314014109005820038ab300d6557042b8d16c4e9ff8103dcccdd240dc720498365f91cf9c94f4505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003682be7ae2ee71362db2d9c118ad87ffb0a2f707d753f102663d3b29c0cdba05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820037957b9a695527230f80201a4ef116e00a4bcd26869d2efeb03a88d1dd1a9604705c46673ee1761005820037fe52afc6729bdc8dbe7b65d86306dd86f391718f6586500cd7e3336a527405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003a166cbdbfbb1561ccd9ea985ec0218b5e68502e230525f544285b2bdf3d7e05465cf5dcf00000000000000000000000065cf5dcf0219988e03f59cbd089d35a6e5fab0b962d12f8f9439a9b42557c871b45b60000d0978e6eb03caf7721934cddfcaa9cafff9dfe9abbd9d1d57629f8d40256c375d9bf18046d30058200386cf1a7e1a68f105d912d90b4a9d6e0dfd6c18e5405d9eb89ffa2c3f173d7048013fda3f79a1e03100582003ed36aafc29342c70354cebd8a219221e32eef316085989d5bdc54ea9ed53805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820038b121d836dadc25b0b2efc09337cf7c2854b6b08db9f2ebeecba272e57dac05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02190114031cf5f916ef308072840b02e32a9d1dacf150280639a95a97930838069a75e67d038016deceb60044d7ae83af101358b6bf7a200f2df7081f184e4af4ba2ba3dfe2033d6397d55f288e8e4848afc8b3bdb596a6c1ac6672ac515670354a8dc6924ae803ba657e060f37fb969c85ab0db81c3395bffb6b88a32fb3f9754be236f03bafdf03e37d89dfc781ed1ac2a3e06b853aac38d976add4104ea21107262833ebd655a70219ffd200582003bd4ab785b0b92412aca6ea5769bdb46abb0c75d30595195bd391dfa163ee805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace04b01cc76a1d196687abf042a034195b022063dd90639988139be6c6cae03a579d64553cea443db8c3a47ec24e10218a403565bd3f78bbe780482fcbe9f96cd4045657999cefdc76f6ca8222f654d95d467031abe86005919db1b980e26cb793ed3a8887bceec456a26121df457c895fcd6d503145d897695dc037e96a6d3a3a3b9497666fd85bcfd65457e2b37356ac880ac3b03760359357a90be29a46b499bef3644453fb77662cf70a3ee4b9ae8c9a23a4d21031c7124d9c7015f54b88346d0b9188a3395237fa02ea4e50096302f7fe2613af90058200268c1484917870d43e676f4845001e59d496fd621da65130f0116efb9476b5c480a4ad97888b545a200582002763d3e9dced6856493d0d93f145d150fc3ec13a46a592b19c6639de4f250865820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038e0b2937f87e189af8a4110a47435c9c2b6a310706590ecc96be69abe6805f6c01410400582003cc91ee622da3bc833a54c37ffcb6f3ec23b7793efc5eaf5e71b7b406c5c06042f3740058200351d656250c08d3bb51505ddec2a097b6a7a4e54c7fa54f3c6e4f0435045c105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003d570aff48ae16cdfaa7ee8139a1cc8f84171562fb058b79a882eae4e9823304903751a0f581b30a93c0218a403415cea451dd513a43638a52fbd520a9d639e5ef0011f142543f34ceb7957ec1c033aa2d7f59b500d7011cd7e1ab6d2fa4c4dca5fed5783c30cacd62528484291e4032361516a69b6b5dce074dcbb545a2b9cc56cdd1dbf6730f7062e91dbdcc63abd00582002479e2a09a68b8ef36ec92e58c9e6980f77589e877b78cea6f8071b48ac231c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219dfbf03a1c165e8af4ecb701c9ca504e7432de2aaab361bb06ec96aa5b2d2ce57a8bcf5036ad71f974a7c809df6b7985501f8013dc8d29942cf56003e4724fa816b64b2110355035cacc5f1c8450b79eed11043344f869583795e45d8201de072118690113503ae57567e85f14c31e88aef0c09eca0f24396edc1d5c4f453521e1aab8ed96b520317fa793ea45f3dc0f1e3fda2d401872c5faa758844875392c4c3e616305abcfb0338fc063fff1c47c48e6e7bd1c78eccad7f43722d569b85902e18441d7521b0bb00582002345562b8537a0fc0e6068547c366e50a55c19c4ceb925a639e19c3e27171d9492bbb8e8ba0ea3f702c00582002ffee22dcda5e9e527a8ecd8bafb77f212d754f89b06ea16d84db58a51aea195820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff031cb5af72cf3f6f07035e3d2ef1f35a089ee43280dfe3dc7764d3b597dbc1260e005820039289229f8f516d64af1e4ca43297289fed66f293d2b9575654951b20cff1705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200367f5da8b9e4e2ca4315bf1a753ac04bfb7ac0c0d48e35973e54c34c56168705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820032705507d788648696a93667a42cf2cdc7f31433d1d3745090d3b954210ae605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003ac5cdc79f99b6a8d3950777604d2de3edb53cc2f7488b86206bb72586b7e5047038d7ea4c680000219303003cbd2ab2b0e89e7fdf86a27dec9227219ab4083f81e06ece501ed4d32831eda4f031bf410ca811e70d84ca1e3c39d405311dd07bc6f69a7775fd445aca6c280b36103ef93a40adfd64268ade8100caf115219b418ea339d3862354fed4944ef8cf202005820027c04c0cd786b9ff6768948436424e28b8f167607d22e3fcb70ddd52b8413a64a0144cf851ba3f30c2a120219b7ff031e00e62fff69a72c40c2d1818267685b6189ae4b290db9351d5981fb77e3f11b0058200335b26e3e9eee00e0d72fd1ee8ddca6894550dca6916ea2ac6baa90d11e51004101005820034ed994725db446305e002e0446de3915ed5e887a433c7df9741e20bd9010f05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219100103f36054bf05d6af149eadad2ab23d0391b27b16721d7f5fe21f075320e81e9c8003095424d11c626a6a07c94c56086a7c4d07852221c86afd42d4652f8eed1542b7039313514847fbc2016bac3a5fe677bf2f9c5a9a72adfc89998d22c848d02c1d1b038d89e70e23fb5b95407b1a7b6124cd7101ba9b6e95589467ffef128c8f31547800582002318fdff7de1d17ddf8439430d2b5e51e6c39b36c7b8933c24347c2253091fd5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0333053108926713766c8084bf6707c7b597357d897c834b1893035f541288e8af0333e2164b1e7c817dd49be7473d33b9ddcb622a4af86a0fefeac791ccf8f0f794034d05db277f3ac0819d13312bc77a22b182dc8c30a2a971b8527e77e75824660a0058200294a170bb56b26b0c624585ab42458383e59f36b5a0ae84489d28afa2bee4585820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03ca15d86a5145823ba9e2200fd529fca379fbc13193ff6965f71155bb0a10725603e4560a1800e4a27dea0866871dfda09821ad644b19e4c4fe57fe4673b39d581f00582002f75266a9242d8d2c244624734ecbd40d4c51a257b4dc2941424cae7471bfe85820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200203a3b1b7b670e44daea3ddc0158a30f608941e82b73e86efaa0927fb2c08d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ffef0310f91a632ac1b1fa31f0dcec7cf76aa8f0ac6c3238a9c461514048edba008a8b03037a116a04d4681bfb2d01449b3fcd88aa15a7ab4e1603b8d7549c251d8ed23f032910853ada6f822d81022068f0939db5a4a3cba1d017d84260896d8fb2fa5f57039bc30983f6fa37e17be52429ff7b33dace49e6e4ba21975c899f9c5a05e43e6b014105005820036c943b4a09859521022fd2e90eac0dd9026dad28fa317782a135f28a860910420362005820039c05d6c7522fe1411be0115313911ac4eb49c127bcadf6ee1ce189b5e589b0491dbfcbd4d9934182be0058200354fda52c3b178accf6d35e191afeb8cb8853f0770a8f6aa549be85bd5f2cb0490424c1bf564cff903200582003bf8b0580c26edfe41dd2f91749929bd722b36592d28b1f7f1cbedbb5d5bed05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219424203dac2f940254ca47a95f50d4168a8293a407a8cc7ad2bdb6c032cb5928e3c260700582002e3bbf84785da9f484a9ddf8193cd41890d24bd1338950f0feb7d938c167f835820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03bdf194c758ad5a70b257054e35674e3ddcb7049945d03ea5305fb16ce47f2f530349cd6ff4b10c2f866196ebe927f5a7b5cae8ac8b2d62a9f94936d44c9f71bb870390363b5fb9e26ee4de5d2f25252ff895a05fb69fe53d0a8f49130693f4493782032a86b92f0a0bb66b04196e3f74ef48a86e32b3334ae53668d37f5447b0f9eeb303a67366e657cb2f6b6e06c5f260b66b0078d206907a0a6ebac3abbb653587e185037da3ec49f2363bff6fd45b0c31533b7c4447676d924c5ccc3e9b9e264531630c02199f7f0322e9b493046adacbcfbf72d64172c9a51deaa4ac342ff63d34d6fdabe0c614050141020058200254c8f24b1eedbd7e4412818b1e58820fe9f5e28f9bacd3b6bd0f7cf89bdede49355cf8363fcec9800000582002939741b8142d7881e61c60b5b1c974cd559d21bb059586d9832af0c2e7d4965820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff039c4d0c55fc04869f1eda77985375866e7cf667571ac18314309f3c234eb6f63e00582002af8beb7caff9cad7cbeae89f1885e688350521eff7eafe8edc4ff72eeb78645820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03df2023f6c4a710331372ac27e3e970c829a638a08a8e7887ef4e6eea9ca57f840058200229f700be8dc991e1c501d4c459f68162f3f1857207b0162378f4850fe123545820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03ad7a3987cbe4aa4ca9a72585b1b639ac024e26d0abcceed9bd40a3a49e387522037c38fcee2acbff8ee24d667ae812b2a559ddf98833f7992d99db1c1394a706a200582002b434af13c5feec68ef7b98b9ad2a80d617c5db62d55c1fc867e4ca1e362e995820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03d0f2cc95879b4d638dfd44920df7e6c8b10dfd135f15ffa73a9448b14bf464ac03a4ff8c4c01fcca72f7abed5e4d990d855cb1113fb41ab583ab6de79cb7ea87f700582003987ad49d48c3d7ea492e34fc142c543316729cfbaa6a57f10460f6384e47d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003d3016cb8be393f8650146d91be387f4bd055d26bf49a381685b77e213527a04906cebb73949b842eae0219041003f5b80bef065f6f889aadbc14513ab2bb43e4a3f4911f4cbcee49e2be7e5e535803789e9a215ba2b73bfc0acb8b54443e9f08ebd097b7a75188b029ce2303bc47790219f7ff03ac4dc76276f017c3f0702c311ea9729bb3a449ffbe91a255ac720068afb7661d014100030680190b1c40683f70e610b30fe84e05e0429f572ee1f7893a6351c2845ebaa103a9244eaf83f15127c0d0830c11dc12ee26f02efdd3f1d28b3d20e728d5ae37990343f8a76d5fa860b805a4a423f1ba598e9aedd34743745c9ddb1e63c38ce3b3b400582003998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c96950410200582003ba0d54b7d9cf3c74ec392967a6d061303297a5cd35cf22e8bae95d0bb700405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003ff0181427c67e32979d6638f59ff8bb98fc9f2c79f2883140258d1ad3657f05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0218d0005820031e4f20166668b7f387765e15b9d5e2d58d07d3d9ae229818d7f2f3156e85004910d0f2a8ee827b68ae005820031004271effda030fdc59d505066d6d536541a40912d8e5b718d815669431905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820032cbf1ff73210fee9d4f4b855fbf7c00dc0fd9dde3930976b7b51b6615891a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003a32a6f97ecc9cd4f7ae27cc4319fba3f14115ed4a8745653e63bc14db43a505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820038a272c91615429d80f68a96706a6fee9dc4abd870533bbfa7372da9edbf9205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200314793711e509183d6f500627e5963b5c2a7488c5f2124625d571ff0a5b92304970f0200593da08dd3102192274031941b8f86ae3f568f11806ea1030b76a803ebc86f9cdfd04edbdbe52e2e350b00058200256610cb8adfad79cbd8ad9aeff61aa28245cac4b4cac5398a5ff95ac134e6d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002c8c31d2c63549bdee56ba50b97ee7a1ff6d58f40ba71eaf939164561f7fbdb5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003da87ba4e5c26fbd7897a51fcd9707d34aae3921d09b977ed92d47ff92e7e305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200302549d11de8610cbdbf152886ac9c070e79dceb817336d587f8311360057a048d4eb68e45fca18b6005820038e3227bad7b3f030d8f2b04580e028da5c4d6f44cf2e42a2e4e653c200ac504970f0200593da08dd310219204800582002a50811e08af94fe145de86d20974925917cfd494823fb40f7695470db7ec5c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03de66873ebb4f949755663bea76808a3bb640573ee847d123b7899fe9eefda7d203515c4a79531352688e55436811d50bf109a18801fa7e2057f1b1c9fea28747cd0376fb3d61dfa937e1fc7efebb34caaad35b61adb7a6cb226eba27b026e0a5124e0305646094710d031fc79ec330d3eab821cc483b08b5f2527b79242cb5e2df65be0219bfff034b3292eff72f8a89c0338b2e0b8ea682f0ae5419c0a029b651145f1edb0c014703ada9f1a19fded9d6ded18211b4429a20f6135489ed50c9750267f59c27f8df1400582003e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60410200582003b42583c396844df4ee404149ada2a570f0de72c1df9c658a6c6403a90bae305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021881034b01eeb28f33a1404c8e5e5a680d57dd81337acb196267aea379bdffa071c699005820023ad9674fcb819bfd56d8a4b9a49784fa141c9adb2b570cb4892ecadc29c98d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff036789a7de718c791469b5e2322c2110055d101057359f896376cbf5d9e9c75eb00358ae228a41293dd2b5f2c3c304ff57fa0f42284a5d43dc330b433e7013ecd615005820035d4fcbf0e97019a0c3e1016c37d86cf3f041dca943519868d9748bf5f017104b05e1deb59288d7b73ebe380058200354d3440617e23510ffd5692f4f0ecd4da89ac36298495ca4cf43663c5492a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003f8f77dcc4571fdbfff38f6f2e6ccae8ff6cb949b4401aca44229b6b2b4d5704703688f1dc839f90219031003011912e30ea1f61d1cd3249b280be64832ece5a222c9e588fb5d926f04ec45cd035a094045285c3c427d8687f0c843dfb13659cfd54156bff6ed512a7cd72f3cfb03e0b38156ee18eb66b453055b13583bdb70a3b9b18f4a0abe31117ef84cbe85b50058200314ece225c5cfc61546d292b27db5ed1d7960f0b53ec6fa06a09accbc5e24805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec344404902fbfd3da5877bc53200582003d9ef09fa64da0d7681fe8bc94a699f1f2aae5355b61e07d5538958dc3480105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219034003b902df01ba20c44a629c2befc4388b2eb8ce0de21acdcd6a77941dec05c7a3940356d03abdfce9418d231e184cf35d55e6eb21eaef73f987e1988dee6d8bae9439005820025b13c1e29a8c7b483eca1cc6a749eb4b3ef068252fb21e1268b5f7a6b34ab84716ba13ab55322002197eff0372b900f29d47b3b6e44099b861c9d45af7efcd963b9931dd8203a32c141c3c7f03869ba4611fb9f88b507b8bdc27ec5b92178a97f47570fd694a800044c376c3c900582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b4b0468a3c46ce1bcad322b5803ea3d67778f1cda63068082ffe8c1c797c10c69894d1684ae5e3df7efdd08f18003e65bc714dee56414929de0869ce835648f3ca4f9fbce079e6d6b5578fe9fe58e00582003045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc04b0633fd5ea750fdb0eab24600582003a1c82d8943d4d9eaa1fca92acb4f23c998d03cef9d9ecce37d3b1c55f54d905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021920100058200397dfd9192624e4e5f4c98ad432ef53cf1b9531bc64157495fc96c8bd1386305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003314f24bd8b01b33f71c70d93735c817a68a266720f61824d8b1069be17f7705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80430f4240021823005820025e918c827867615628cc812539b7673b4e7587d92d87df809a282dd5ad59974801862656d893f99d035c433278d91cf9fb4ac81e006ff0253f9dff40d0d9521a0855ac7dd78d1c1af70385a7ed7ac6e9e943a32fefb289bbab4efb0fe57d1c4ec16b6675f051d247fa7d034734bc40b63ffd4457386f8cc2af13f7ea0274833a6445d03b26fdec726f64a503385b3386543dfb6b583a8720b520825a6c396548124e705190f8c31fc54edc5003b1a6954d648852da7ed829522300d3105ec9ec4a7caaaac9c2435174d539ba7300582002779d82763e07d41e9a48a6c59bcf6b8beb82f3d15a6ae11c65a823e568d521480caab9599a5ed3de03cb897fea10d8b14de97a6a994ad7f7ed180ef80dfba1cea4492b0c770c17ac2d0219bfff032764c541b6b622b65accd76a361f01ac7d9c32b2c84275f06822f5f26f335d1700582002ed7becf2f8bb0e4b0d742b50e46b66ef541e820bf6cdcbe60927099adb69375820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03418d3f2f0b7e7a32b941a74378551a0a7952a866db1291c1012c2a70a40fe6c0005820022a78c28913c7b8058f28319ca4caf8e57fab470e493d39886d585cec10366f5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003a99be01e73b691da90efbeb84a6dab5232ac9c255ea5a92dea9c0f46a8d5504901deaf3adfad7da08100582003b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f4230058180dd1c579e9640ba700000000000000000dd22263e18d148b005820034e706ec6778af4e748cf55e1b2c7dbf378d4d477cfc10b360ca294ee4f7c905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219018200582003fa0ed3625aaa03821186f3e387947828a6117c461b534f092ddf987f8788b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003e33a7990f138c70cb7284519c6fcbb98bcbb5950aad7ebf51007fb7d36a5105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820036990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5042753000582003885a2f052b75375a01e4b8495676afdf8168398be8d7fa4304a4cf12c7a5e049a4fac2d976cdcf55f50219498003679509b810b0c1d9bc0b90beb4afa0430fea5904a6166a5e7b68c123fa3468a800582002815278e43e16fcf7b45150e379497b0f2e7c0fa8d7aafce8c2db7480469ed249ac8e8b60bb224fdbaa0058200283d8e9968be9407207d2f0e86ca4ad55a06710fad883e2e278c7f2213dff7a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03be952bdaebac00985672dd65d2a759d2276b782a64357006a44f6dff4bac23d70058200215640cc603dcccfb4332abd8638e222052a4584ce32ad9e262fff01567b3c14844bfb666ea2bc45500582002e7794679c72efab86a6d844d0dd46e952c3a4bbfdb64608b4b0466f7e9b1335820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0326d9871bcd95f81695a7649b7e7f2ee8111996ef5e74eb549b7ecb8b3d6f72d90219bfbe0376191b81c9e4e408d59bbbbde3bef16e0e597bb3c563846174fc4e77813eb7c303c07f412b057f82bd58dcab608c0548b9657c9dfd87f323b258c0459efba185ca0219ffff05581e03e339d6d412bbe84bc3d2bcf150a25ab9b80f0311da75afb6c299a49ec00701195bd505581e03ee011971759a56468aa08a6cf658436ba47b0bfc373fca536707072d10084805f7fbd97d8a110903cb9aa79a5399981e332d354eb4808f4e326c0b800166d2b9869eea2b218ac9c905581e035d93b5494986ae290820a5d31bffbaa39d6cf785afc3475b97397a26200402033f86697123b0021e6a08a664652f18c7959ad9d3024bf981b9c3044110349d8a031d089ef85ae411313c6acfd799b1c0f751adf618ebf3bc35ced36b85c90c340a02194af403a375d147a768554e321b187859412ae3f2685628daa6fc9f242737a7ddf7b18d0352a36487ca7a59ca678707d170d88406c76547835d0ee14dc80f88cec73f30ae0376c82dd75c696247b6fadca0f6fb8e05e2ed7e8b59e21fba4c909598a07c4c3403aee71e29a1ddcf01c89a4b9fcf24df311d7df26579039ade091404dfddcbfab40353cf534383fab85ed18992afe90b4623ab7787f716828615125c4c2920c410e903b3855d9d4eaf5eacc548139f63b86ebe7999365b64c87b3f85adee0b5de7a8df03099f59864229cdd1afed1da5c7541c8cd38fd99edfa2f0449ddf6a610333417203936a675e1e9a33fe905434383f79e9e2c1998c6f4d9efc7bad4d1461d7fd455303946d014c20c8b6f5d4f02be9ea2d632ef6e023fffb69849b5d57117fcb2ce4a603c999debc34a27547210babd90ddd4fd384d892763f5a1bc8e4cbf9687fe318eb03887ed86df28eab775113aaa587a52ab174da2b6a234659acfb596287ef991fc30394b8cb8ebad290ebc019f34680f06540d2dc80343ac233be4bf365eaa20630120374b9b375455e5ad219a1f1fea2a9d0411b48bdb84d6ebdd7faaf8f01bc0a62140219ffff03deae92dae22d76e72f8cdaa9aa99dcff510ca5cca0553e24e8ce2e9b04b7724f03c564575b964a39d3ce28aa567e2e8b069cc50a26989707caef3cf49300d622880341b4815e7689f7c83652461d6401bbe555de966a973269a84c72a63a87213bba03124be049be691119be6f105f47677d21d9416278d9b4e64459df2a67a39192550312ef71e5621c0f131cab78ae8197a69484cb1718ced9edca4cdc16211b8e0ab603db3fdd001f08235643092fe16bbe36e217ba41bac8e3d160722953621351ccb603be9282e14b359cc52592d78a3f6bf9bea4dcdac99f2c8382e5f7496e99e3687303474c83d7d90dc3dea553f6596f614d3d90a5d05f229a8276f5bab346d86b066d03910865a73cf204b16e46b7ef12bf725804ac1dd0db552c0fdad0a3ba434a0864038c8dfe1ba66909fc7a10261b181c55af6de9cad90688f1c8b2b7226e0ea3336c033840b38f56bbccff1281a8e6d75b2f7bbf1393de077bde1952688d9c817742b60330f474261961b1fe353baaf72b8c7d4451d53814cb8412deddf5488e7abe8b5c0219ffff03b4493e26caebed86450c5fd19162a7e8cf2081df9ec0aa9cd12e4e848ddcd6c3037e3ce7de23c4e2e4b57cca972345ff479cb5d071362b3916ab08c7f6dee96d650361e15be518fa072a0711ef3c7764ed534823fcb4660cb9fa6a886112ba89890c0377c9bcd11d5a1d5c55a5d0c5ac7a4e7e214c16d9193e3d12e1fcea2d3d56e811030ce511707bce3d8166b4afe2ddcf150584bc9d91d9238c75c8bf17a5817b73f805581e03f153abc17882b3d003607a11dc0aafe0c205882adffd1596e44f9082200c02471195ffafa3600003f00d89d6ea939bea37b2a08d3d9e6a685054eb52e5654e2fa2611f3ce01ab24405581e03193f499da75b955331c0eb3d2dde4512dd4714b8cd36a341bfbc3e21d00c034901925d918a78d7200005581e03011ece7520f49d8420188bb7e37ff5de74069c10e4f821a258285d51f00c014468632c2605581e034fdfb3626d80ad6e946d3e0deae4aa0f9d911e5b1ae0eeb5b7d293dda00c014701bf24db8eb00005581e0306dd0bb4f274205c1ef0ae4a7eab61d3258a502031b565b4bed26da6a00c187a473cc77d6033f83705581e03dd5e0dae09e60a3f0484813c3a3383fe1c579c88cb66f4caa146a119b0040105581e0330701326af6c60bc08bda9518eb83ce7a0865b4e3a3a3b887cc483c9000401021947b20328669773bbde226121fa61413690988a9206d2e7f1443465ce6f109d204335be03607a6efaec06128b9ecdb36a16ad44ee28f6aa8c7ce29f56f54282bb6af3d8920338e570c0e7aafcd44780258ac4797d463721fd37d2b03c02ada83a3747883be903c95e6eda83ff57dff0b19660606071b8ea9749d7d3c6149b2492289ca9b9bc6d030fb51b06352dadd2436ab693ec6b2a7758c554896032de11df0ec72f7c01c60603bed735aac6812b95e1709a20b57f5e85db084dddaa35ded31e9675d810b79c89037cab83a445075df75be54f210816e46f919c797eacf91bff7957da499621bcbc033152bf7b8298eba57b153c1f5705cd69312a10400e7d6e50200290352ac05ad403fc7f5ee6ed848e7796d93202e41f860d4099a895b463c3c3a00a80210367747103033b657140d22983098efba1db646712b7a6ffb0488c2e175168efc5e90c88e40219ffff0381a6012785a53129c0def2c652c2602984625ad0dbe3e8123c5d886aaee8b0c603099b321e62afe2d74a489b0ba984e85b15af675f6013966c3a921bd236ca0b5f0345e946dbc26b238996f114e8e5f1ff4602cc5b0396b32026790106491b86b8d4039d3c43ba4566c984f3fdab4b97af224f116dd19a1c158522e58e88e83605d722033c02214ce949f9c0ddde7b634db1c1f5162bdf527d91efd13f8378e861e2a60e032a2871723e129cdb3ca5cce601d0ee1661a2e8bc164fccde8bb5c84534c4830303cadb3f2271c7fbbf39cdd53c9decae93b5c3b943976d57d368e871170b06baf50311469134f7024dd9a76f80c1606a9157ae7032ab7e0eb98440f336b947f831e603f052f01746a2b854daff1caf8c13abb58d74169978a5f4c249c5c77e2da6c54c0318be379dcaedbd334d2564a8cbd5e45d646dedeaca65d06fdfbdfcd8e8acae1f03abac3bf7b401f658c5b94c23d2d769f167b53dfee58505fb5d349b6c43e1c21e03d70b9d9fab90bab60afe606d52b11b11136646f674f2c52b7eaff2c042524ee5035edaf4fcf8107c542e9f02473f445d5b24b39315e5731eed1150223c4c4ac12803da7d4a8b04a3e6d5a86ffb5b4f2669eca9e7cc44aae56364993d22d935e19e050387db1acf6cbc52e17fffcceeb692845ebc348d3582ae5793b64f23df2905eaf60219ffff035147b024c25a75aa8de6be2761e279285869ca706fcd0b2b0f9c93a07838b83a03b92df572c26fb37d0ca02558f1790a4554744d3d9ce052979d62144a18617ff90377c4de04467e0c28f1554d97ea40fbec61020e55200670f1970881917517958903863af800c89aa2bc8d2810c4829b03b6db9097cb2f435e7da55529c69dd8b45a03a4c29ca16040c18efe2b9bbcc11ac7f787330dc5f65898d6f92b699fc4f785fc0341dfaa14260a7ea3bed9026a2cbe1a8b760d60c537edcc079f6a57bc8eb6ef1c036e979ba66cca9fd2e66f20dbca8607b8c5b0eb73ef345dab8afa323ce12d53bf03f41c1793e5e026cc188882301d931df45c0a112cfa71fb73f0ca85894eb4dbd403928f643cffa8ff5edb9d49016cd1250a883b47f6df891daf17343b96b6a57704031cae2e759df28e64465ad101ed603f165f594078c81e5928029178b97e62bfcb038ca837986b3ce631d0a9bc662f52da88763e4fe96b6df9a080e13bf7f244ddb303a2f6327f840d13ea7bfdc20635a360a87feddccd9245d5118202c9783b289b7e03f16cb9689dd861b806e7b50b16ecc4caebf50f322713f9d090a87cc3f5242aad035bfe1fe482493ebb85a3e98c0490959a44597a27a81339213772a131ece5097603ebdc0ccd0119bbe3f3303f0ce413631338eb3261e5b2838015bca1e06f52783a03bafc3eb3e28bbbd5def9a89c89733580dea279aaba3c15b75413f50f9e87f914032c6c1d362c404b5994684ae34da9bc70169cc0d439299efad4fbe3de5da3b1550345394f8f33d7593493affef7b87271aca2dd8447e1780271089b9b538e919a34036b019b7b6c2ac2a08280a35a4b1d75332412e3cb3cac2d93258f827d004ed4bf03728241d91a664af852561716845835fb8f302fb40d3629f4f3ea7e784b27e1f103b51df8a1861567a20b284e5e9a9009b624adebc8b8d0869325e06d6cec41762e03226e1bc428df0361c31ccd0e197c3e32a44b9833d9f075786c1642013cad9390031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e032e8d515ca18424d00b11df1342775a289e61728fb67a647634da86b5b007011bffffffffffffffff03d7d633a58946d00ec7a1f93c1ca631df0a8673eae96370b6b72631a2907dfb7705581e033fc85809662858ef84da3bed357c869ee43c4d2819a83a2937915c2cd00c0147ae93a8ff9e300003b40cabe387ab1ae0428e6acd4f45febed642e349e6ff78e5a0c05562312e524f05581e0305d5e239991ca957fdafb6c81e43e290d6f76e225d6a2eab825f7b9740040105581e03ab5b2d37e3e36f18459c8d739cf4cdf28c3dafab87d3e2a33182a651b00c03416403cc80a46fd86aa7d5f4c2bc76f1e6fa171f6370a7220ad8b37ba5ecc254a992d7035a4c1af179adaaa7f3f14e742e56aa80a3bb4cc0f7652031b83a918e921c878704591ee0608060405234801561001057600080fd5b50600436106101425760003560e01c80637ecebe00116100b8578063a9059cbb1161007c578063a9059cbb146106b4578063b753a98c1461071a578063bb35783b14610768578063bf353dbb146107d6578063dd62ed3e1461082e578063f2d5d56b146108a657610142565b80637ecebe00146104a15780638fcbaf0c146104f957806395d89b411461059f5780639c52a7f1146106225780639dc29fac1461066657610142565b8063313ce5671161010a578063313ce567146102f25780633644e5151461031657806340c10f191461033457806354fd4d501461038257806365fae35e1461040557806370a082311461044957610142565b806306fdde0314610147578063095ea7b3146101ca57806318160ddd1461023057806323b872dd1461024e57806330adf81f146102d4575b600080fd5b61014f6108f4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018f578082015181840152602081019050610174565b50505050905090810190601f1680156101bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610216600480360360408110156101e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061092d565b604051808215151515815260200191505060405180910390f35b610238610a1f565b6040518082815260200191505060405180910390f35b6102ba6004803603606081101561026457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a25565b604051808215151515815260200191505060405180910390f35b6102dc610f3a565b6040518082815260200191505060405180910390f35b6102fa610f61565b604051808260ff1660ff16815260200191505060405180910390f35b61031e610f66565b6040518082815260200191505060405180910390f35b6103806004803603604081101561034a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f6c565b005b61038a611128565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103ca5780820151818401526020810190506103af565b50505050905090810190601f1680156103f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104476004803603602081101561041b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611161565b005b61048b6004803603602081101561045f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061128f565b6040518082815260200191505060405180910390f35b6104e3600480360360208110156104b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a7565b6040518082815260200191505060405180910390f35b61059d600480360361010081101561051057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803515159060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506112bf565b005b6105a76117fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105e75780820151818401526020810190506105cc565b50505050905090810190601f1680156106145780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106646004803603602081101561063857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611833565b005b6106b26004803603604081101561067c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611961565b005b610700600480360360408110156106ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611df4565b604051808215151515815260200191505060405180910390f35b6107666004803603604081101561073057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e09565b005b6107d46004803603606081101561077e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e19565b005b610818600480360360208110156107ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e2a565b6040518082815260200191505060405180910390f35b6108906004803603604081101561084457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e42565b6040518082815260200191505060405180910390f35b6108f2600480360360408110156108bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e67565b005b6040518060400160405280600e81526020017f44616920537461626c65636f696e00000000000000000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60015481565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610adc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4461692f696e73756666696369656e742d62616c616e6365000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610bb457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15610db25781600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610cab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4461692f696e73756666696369656e742d616c6c6f77616e636500000000000081525060200191505060405180910390fd5b610d31600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e77565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610dfb600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e77565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e87600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e91565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60001b81565b601281565b60055481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611020576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b611069600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611e91565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110b860015482611e91565b6001819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611215576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60026020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b60006005547fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60001b8a8a8a8a8a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018215151515815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561148c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4461692f696e76616c69642d616464726573732d30000000000000000000000081525060200191505060405180910390fd5b60018185858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114e9573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614611593576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f696e76616c69642d7065726d6974000000000000000000000000000081525060200191505060405180910390fd5b60008614806115a25750854211155b611614576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f7065726d69742d65787069726564000000000000000000000000000081525060200191505060405180910390fd5b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505587146116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4461692f696e76616c69642d6e6f6e636500000000000000000000000000000081525060200191505060405180910390fd5b6000856116e4576000611706565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b905080600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a350505050505050505050565b6040518060400160405280600381526020017f444149000000000000000000000000000000000000000000000000000000000081525081565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4461692f696e73756666696369656e742d62616c616e6365000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611aee57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15611cec5780600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611be5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4461692f696e73756666696369656e742d616c6c6f77616e636500000000000081525060200191505060405180910390fd5b611c6b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611e77565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611d35600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611e77565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d8460015482611e77565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000611e01338484610a25565b905092915050565b611e14338383610a25565b505050565b611e24838383610a25565b50505050565b60006020528060005260406000206000915090505481565b6003602052816000526040600020602052806000526040600020600091509150505481565b611e72823383610a25565b505050565b6000828284039150811115611e8b57600080fd5b92915050565b6000828284019150811015611ea557600080fd5b9291505056fea265627a7a72315820c0ae2c29860c0a59d5586a579abbcddfe4bcef0524a87301425cbc58c3e94e3164736f6c634300050c003203a67d22e190dd3c649324efb73cfacdb91376a2653c3ff311380a653688ce0e6e039bf411f3d4e713b8e8285c00db3bd6196a5472c09b57b7a15f96f5a6bc929cb80397182a90cd97eef866b9f33a315e00e7747d03b90199e7898daa51ed514faab203b6df142dfb80d670b0a2afc233154d5f9a41be1d0f5ab630b9478e859db5218b03d2440f8e8b2f2555cace0c69547c8e7f9ad82616a48ddcfbf334936e8008a86e031e20190389ad251a43ced6aaffb21fa3de088d31fbd15c1951ddad729110c24603a26e96eacb8fad6fb8f0b0e5f5445ca6f1d2baf80151940842d10cf6959c09080334577fe8824c20db357b041c7b3c68015055bb27271413172d2518abfe8adfaa034200aad7c6d80c48cc55179b5b0898225813a13b28643cf31087dcc2a8d600ad036a0dbcbb4dd2c126b2d920fc111345a523bbbab3224af80ca516b13e28e69cdb03dfc394f4b649d776359c556b2531f241249be7f1cb60861482525bff8ed7087203224a037bbb5f82e4b793142fa4f922361f64831392b570cee94faf736f48bd790346b84d53d63e8b39867f7612088324cf7ded158dad51a30ea46ff1ce247975d9036b4cec017548dc581f5013c249e698f989a70b884d34cab7b64df4e6bfb89f000359894352d47134e21834136a810fa224a63953f2d98577660f50eee99b4ebe6c036d799be99c43045e20b4a1c5b8dfe8014ccabf302fd99f6ac52e976041ef460103bc30d4f8fe6e8a78936ed682b651d0b8256ba58379a66b5fc9225f0474fb15df03365b11b589ffa23848616794d6b2ca1db6c051db62274012c6d61d56264b3d72037837184c9679a31dd5aa6cda97278fbb42dde9f703b1614d0989d12b09d3a6eb030d8fb114d3f568c6fe93e8e8b12a457d4aa6c44b4579901a7f2397ffb1f2484c03a05c7c24080d4635b06ed9a3f00518aca52fde359b3bd74cf315297213ff3f25033cb6bd0f119be67bfb21b1375a6727c402cd97b878812d0e84bc6b49575e4421032119653f7fecaa0559b1dfdb73ebe701f5227220c9c3cc6f1c9d92b54c3ea0f4037ac279f211c5084f4590551380fa5f17e45ffa384e9f6f030d5f3b8345f85bc7032898e3b85bcaf9cf1ef463116f8a963a9a6840aea13afbdb107fc1f89dca2f3703556f87d741482255a91ff85016c565b5ad811facaa3305c700cabc051a2eb7fc0321c2f62150e72a42b660c4fb318c27479a998d78c3f1768cbd9ce9b1c25021c30366955d245fe6e3a308e651cc98e44787944a6011c312878101bd9a081da2903900581e0266d03649bb6dd1e0d14b4b8aef2edf4972fb913eeaf63a66216c9db1664909c3532ad0c543800000581e0254b24b72ab241f700452ed69a3364295e83d0bb15cb2b3b782a7fed5b75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02190810031311671c574cc69767bcca0a30b6f84adbc313be2ffb58fa7dcaead477096ff200581f038f978b369968226daefe9804456b36c140a69b836346f85cd61536e3bf505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f03403b1979aa2682c38cfa79dfbeb4af97189b8fb0fe3428ed9fffb1de3a20410100581f037420055e02019dc63091eec5b884f2f9a44a43c405c46943043d70ac4de0480ca358a869197c000389e15677e54ff3a10de129c6a2197a166b0bfc1acc9bd4daaf3d5a4a30c06f2000581f03be3daefbb6830a69eb9a03a89ad6227184c8d10279069e5f438699ddcfe05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff033b825344fa5e73067c112d40a3257b8006cd6af7a65802049f270ce0ab05b896039c117fcf4dbf244470e980f198293c101509ff10ee9acd096677e3fd15185e550394d83d2a0b28001fc6e9a651c555bed4b368f35efb1c75eb12dc2ea186af5f1d00581f0391c2a74ff7723b51e3420419ebb6ca35eb87ca2f02e6c23bf8d22fcd61a0410103b1e071c36f4e25ec306a65b13118e9e0d7381dcac974f5e5378a16c511b086920219ffbb0219ffff038968c58d013f6c818132fa844ae2cb11ad2ba9233b2174340497770ab4c54f19034baf58ecd36f0fe9dd70e93eada4a5fba26bbba425b566b8d3762d39da7bede203202f1a06cd1d87ca98b5e3a6bc86a98207425bbdd661254c0ced8d5cbe37ce82037e605623d7257f8be9f00de1067f08ec4bb3ef2975747b0a1ad6eba5bd88191903fdd05ad0a73675ab18297210304b90dcacb883716679afffffc59a1d6a957fbd03dd7e7519527f6b7ad001825846411d9d2dcfb47dbf3df7d338d5b14aaaa1be4f03d76230532b961bc1fcb6b6c22d841247d983bd94b1924ce932c7e3bb510f647b03e7fdf85826d9fb0564c7a7a6d9c5b0718a0dc595b77bab7f2ecf57a6dafffe02034f971670b232a83d71af8f19d9f407cb19c2ed8402571d378d10d5a732c05f52037d294293fec0e00f570182b9486e7e4a08b29a142a64f1baf7357587c906ad3803c301decdd9bae4cc5c844addd6d1382ed52aa235efa9fb7e8ff06cb4c10d1f8c034906383fd12ea2fc7856b6a45cf217a12e465d5a07353d74f4fccea5918493e0039f56d5688b23f873490a72e16e1f04c10b1bd1dcbd0e1832a46a3e1e50f151b10219ffff035e90c78ae3fe33fac0cf271ef1133e53ade995b3cbfb37b4c82f792b5bf86a91036e388f1afe10f71c56641a1a45a401cdf72c3de29ecbd7a0129c9c348c2282d403a4b1a8d9336eff4df6a033e4e849bd0e2fac18acfbf96a26247b545f59c0a274031f42eb2c78a0625d7826c10ed09300d353dd27e3ae3e2e1be8e1eea38c46ea2303ea3062d705281c115fbe22842be309f0e230bcc8dbf4a5296f951bb0c29870fb030556bfb0c2b0c2a9c4cf9f89505704eee7a68461211e7dfb0dd1f062be329c67033351fe60fe81ad401215915b4866013b7626a4c711bbc157eea7ea0d2c1df19a0219ffff032cb637eb01ddad2230b515aaa3da422444cb6cf7968c4a5b04d22cacbd2633c403c6ac1fa0f0991ad925981fddf23abed69f4015a6a74d5d3396dba6101cd4e511039e0159ebe78bbe12289081139ea6d6340fcd4bdf901f1b2475fa87d1f99c2112037e0d6d26ff41179ca3cb6059d57a6138dc1ca2691567c54d534e22ee20756197036993f64149a05960618829f0e954987d268bb5b6cd9ad069e1056da31f624d7403236afc90db727026370600fd017c0ed09298f18e18b0962e6697cadd1d752717033d33c897d2c6b5b9302f640d49d4f3a95171f9f436ea84c02bd91cc42fab3c77031426df51ef24555c24974c6f8bce142cd8f91e7a739863bc6ee8ca5ca9f33d7203e112e1a7ba5018b90343df81240cc33dfe27d5d306760001f0c190bf41da68c6033c98b1f60083f5349932ef3868f7b5d5fe634cffda908bef3d4f658f9a66a553035c7dc7a6b48f3f9eff9fc7415d5f3d26d77bc932792a0305cf889c41f1e8dac3035def3ea7cc71cc211e621a74cd12edb9a43d45058395cd4443a545d7275abce3036da19a1012f23c981192a6d828d2c710c0d4930c11d5a562016cef86678179a50302b85aa6035677e56e273a2e001efba8f1169e6c2ca88eef60a3c9e1e21e103c0219ffff05581e0338cfc997a82252167ac25a16580d9730353eb1b9f0c6bbf0e4c82c4d000701191ee005581e03720393ff9f9a5a3113b70ecfdd01ec81296fd5c7434cc8c89bedae0240040105581e0326a1263a49385849fc3d264449cc387a96dada0c5160f58c608505d9100c01470383de5d371000021935f703b6d24974cb69a155cf5d3976614ce2feda891c6021765e7627133f0043ba264903d125fa8a25c68dbf5bce7618f508bb8fef9a7e8b88add792354acea0eb6a9e3c0219ffff03ac1df92d134c87410b9e6465a029555c7f52fbe7404809402e846819fa507113035c746a3c8213d2ed50facb9b70e6ae0cb9085faf4e9605d701b6e632437f186d03101ec5813d6290f5ea899ffda10e17cfe68af375e6b3069c046689c1c0dc297103366be99ff5e29e75d0fe6d29979e7f2457fd80774f5a28d2d3f80b1637ca7f8e038311ef492f5a12524d3666ab3feee420abc507c5304884f2eee960b80cf5c0e50345a87aa8f42a2353e9d7847ed73ea2e06cfaf21097e4d9412c56f80d3d684d720358469ff393173de8f86fac5b581ad41161421e1809494abcb3627ddc607ea64503c746fe4a4a40aad13249eca73ac66aa04b2b2c1b81a93ac58ecb14f39dd3f79c03933e1ceccf0067ff6dfe7a95cb2d0d2d67f2618e669592812b56383102eddb260219ffff03624d50693579822ec4e4e2a80d2385087398f1fe67f0d5a278c8c54ee8f49e1e03594952509635a48fb746b9dd5324d637cddc3993c52e802339ee96e8c1d4369703f7861f2ca2a48d17e23f34e9e2cff4de20439d92e7fac9942b00080da411a79403753c1718e579d2e2d558e9ccb1bc71752d2a020790248ab77ea966b176848cd8035ddba3a209c7ec693432e655ec8a87f191ec42a554a335e1381a319b51c7468b03d1d1ea53751cde37251be89f1bed8f7b4cbce013d9b607b1f0e599ac7b51d7a80219ffff034339b7243fd0237107d9dc7ec71a7560b7e385d84f8913cb3339576592acaff103a381f159f7815dd6ddacf460be529d8a5e2a08d1ef71767067602a3ef9cf94d20395a3cecf3ad0f15c29cdc68f9c8b92b1ea0871e90fee2b63e775b19a4758f4d203f2d41849dba279a70b0febfb2fd58c5af6c483f6192f8db969720117561c53cd0319a629e60ba2f4a8e59705e8dc003353a95010bf09479c59aaed78259050974f03ea8b1535e1a57a63724856a141c56dc766124f04fb9fe5a0e67d9cfad72da2a90331ae2cd5053df4cd9bde7af262aabfe4808e16eab1581ee0b3ff911d3266adfd033513d6d031a3bfa66538afdf78044ac128f8fcee0bc491a7e6fb55821732a7330301def4a614c78d4fd021464ea17ceecc4985b8a8254b7eadf7a052eb9df3ad4303e4dcd7e7702b2afa8795b5c533c0c4616bb05c670abea70c7e47339011e50b90033abd17b2c41c4e413180c5f14308fc08dd2757cb04e6230c83c44b649d76b57d03ea57e19b3eaf177f20aed37a9b77deea0bba05f3c645ef9b6364db569ea6d30c03db23839918972e749efce4809345e4f58175ffd75d2de0242a6a28b6a9feb2c00367b5da4abc78afc4e48e4891257c39bd28a62265a7fd411c1859fa49544c9b6803e3815c18691c0d5edac1eb5688035c3f63db525d675f96eccdf5be802556887f03c938c1db3a213a424917699c4101545891f4f4b7fc4353a5792100d82f42365f03147a5ef50b5cc49a531de1392617e5ac90f3aca1bf07d5ad60edfc6baffa3b5603263598d4f1ac09545c7687377a82673776005312573ba3bb891553d28418d450031238f7b8340d635b0c4ae89a837305c1651f89b9afd784bb74b60e62156bf86603dc60dfb3537272285dc56d6671214c12f3946262b83cce17a4e37ad5ee1d682203e1ebcdf01ee444d02af05afc898e7065eb6cc5e650be0c65250b552099282f7c038f72c15ebdacad347404a1676f6c6d979fa7591ea9e615103a02526f6fe66ce8030dff7713c72e0c59d7c896dc7e8b4812679d97309b824b55dd3a862f3bfeafa203e64052cb187956fca7049ade864cc46a930992ddcafd707b35a4d1c5db6f9350038c117b1ca83b0549761442ac57e14cf532a970741210e5b09a26d074bdf52ec6038a5d4fed3ec3e6ee25b4ca9b904fd91e8b26e3cf1672b928f51a3da3b4bf8045035a883dde3ed620c8199d63ab124bb08fea8702566924f45d1db7dc251b03c90403f9da7c4c326b23639668ee6577632946aa6d8fe227d53e3dbe4142b3c627969203a4d000450c7e255fd22cf4a3b37214eaefd38054e682919ca9484e34460ac61b039a39b30d98eb89cb654fa1816312e889b5dca496200074a51635b23dbe9233dd03999eeb2f171ecaad1ceae7937c01a1cdb478063db52cdee54507c41ff0c1315605581d029e57747766c13db9698103db92c0920d3287c57eb629bad1eb83b301040105581d025a004d63392738835549b31d112913e35a54c051260f3c0cde8fe26d0c014710b79747ce080005581d02bccd0aeb538facad012ab5f912081f8eadaa524d1bbe595f570226440c181d475c9acd95399165021901600368f73ec49da46396ff96823c3d7d574e1139cc80ee873e00e21246163ffaf27905581e03c313a88219052f051591a8afdcf9972ea5f0a69b6e7f75aef4b7699f200c07470a1272c8f7279805581e037d9f772910f4f5c2c8d587d8376af506c03519df1a2d715e0ae6bad6400c0246bca6ebb8257803330c22a44f976d79410b7e71024b1f1a92d2390c7ac0a33a1f989136cee3536c05581e03cc408d9bba0af408321924746a32133c8939937cc7b20b0ab660bdb480040305581e032834f69800275d10125b5b43991d4f5b58813a666f1c1e96f055ef40e00c0146544690ae2600039b2b3c723d9356388bb21dafcbcf1c769d3f73006b198a1f8c2dbcbfd881168e03d89892807c2045225f1167484393fd7b852c67ffc2382cce487b15b708023a9105581e03e1764558482d054558a7b73d19a95ba598b206edaf7738ba7522a1dd8004030219bb76037a5c89eef6a68b4b7e091f5768e52aa298759ff9ee7db41cc4afcf362ad6a0ed03886d203587fa0f46be41555707281126eb095c5b6615e6a6499339d49adeb9730219ffff03c52a71fc79fe92e44a74431339bf7f294497495ccaca4152a4e54d11848012b803b62bd0f25f937e83606b6132fde3b041763dcf74e0c8015333d057ade23e922c03db8403d76e4bd1e1be7587806e807a42d6c0077a484b8120820834d45cc4acf7034bbedcdf61f5ed76b4beef458478202b051f74a32a1af84d3ffb1f53b39d062103971ab7b5538f6dfefb8043df521f1175bb120b3816b5f3c94ffcbcf5bfd2fb5103b28d5e2488c4f688c14319bf353c24fad10658c734b716e2f3a9a1bea689bbf3032366c8689e990252526827206905710933a329c03f3d55e217622275c1a34ab4039880bbc143eb7e9bd305d82ad50b8602dd978a0bc3e681fd397d54a5caa3e87b036fdca9c7550c1af8c739778b45b5ac8f278aa1c31fd6c1fc115a27237bdd3fa003d499dbf6dbaf91fdedb5d3d65eb658c7f6fd96c1a34652e504fb491bb96790e8039e418845c80580a79fe3cd52ab29211af45c291b01291f519b17780dc4add5dd0314a273b9508478104ff406425b3b5641cbc433fa311f7423e244634eab653b220219ffff03bfc9fd7e0cfef879b0272f2f7dde7e1d700e32b09b5e90d231934d3c0bf6b23d0327c5223da7b89839ebc623493fdfe79cda26d7c97daebe5450bf93567b4f213703ab1355a3f7dae7e3df8a69bd6152cf2ef4b9f50c56e7580005684a7c2c64000203605c9ccdd47eb42019a07cfb7fb505480f3aa52784ac22c2d616af08890bfd7e038dec8a995e587046601a6d188c6c5d9b927eb608fda97b2450f9a07b8e93a9ac038dd606ef5954612a4d12debf70252ad10cb7434036c67817fa64028886434941035f42fb38b61f39463af23d5dfa5973e3ce7f5f5ac3478888c7b8bbd0f71999a60219ffff03a3691625ed8846b62185461fef277a7672ff42b32fdfb238dc8bf75b02c99d4c03c9d7c648459241ef00f77ceb4a556107f059e09203c8febca91bb5d6c6ace2a90219ffff035104ba871bd8b4790b7aacbdc25f2e37421ff34d7fb7ae2987bc8f4fced43773039ac14ea8ada9606e52990f767227f89b5e54bd67e1600ae6f927c9ec55f0f43603966179b718174b214ecc7bfe4e426e0c3768fbb2726ddf0d85b984d5e5fe072d038a6588c8ac6d8c04f2c4810491d9dc4e4a393ab614c8d42a787e2bcdd0676bf80331311efb1070e2091387f2120754526abfced255f965e1c8f4d92c3bbfd6cf15033b308f0e07242ecfafb97a77fa835fc534398e5ad223877d55e8c41a63e0d4c603dcc029c00d8a4edee850073f6991d8ab43faa3e2129d29a804d027fc288db790039c2ceeed56982429f9b45b75a4156894d630dec6b4349653ce935dbf9eeff7f4037ae6dc03b29f6ff117164a1521496bf60bcf2c6c59d5f2059e3c06db832bca4903520b36b69cf7b252890c3f1b805a99a87808e3be5a5342ba50d2fb849eba915b03cad58dd840119f674aa029f2dc461720988ace105bcbe6084b0165394139b28b03509280c9924faba5a6238e12e25438cc9f12a75d0abc6cc8e8bc063284fca08b035415d9bf518f2cb61390cffe3eac76c96300b853ea31a4f1c5f483623d51984f03a81e998d5e8d08e1a0576b5b6a8a54be9cd7be3b67aad99870e659b97e5a71290325db94a4df1103de4f524d04193e062a79b9c397fcdbacd0c0883273b3698fbd03061626c78bf141dab9a84acb65398fc4910a3fa9cad3f70d69d8e586f7515369036cd2a5ef1a11ae337740460a540e6a8c2f36f79a34920167f928e656d9a37deb03ed2f90d40893246b64c222382e7bbedc751865f6ae2fcafe6f526790fd7e06aa0379e30d05c8765b73fad19b4aa4eb65340256a1743437b39c37d917833143bdb005581e0309faabfaf9060b41f35070c451a94b84524405a763e19c06d850b72850040105581e03dadeeb4cbc7cbb2859035499afd9d61846e19791e6da9ba579990142a00401031f8b67be329f6419c9282095843235301b6b3475e42bc9e3262b646aba8072060605581e032b352c9cd244c92af05b093e78f50491f770a944b935c19be75800b54007011bffffffffffffffff033d0f860f98345cad535e4f859a664ca2f250174d55759b88c13192dfaf7f469403845ffa9307e44b834ffdccccbceb7c571238e416323a16ff4983663e2618bcd30334193c07a12f1090b169f381cdb0afea364eebd3be992e458dc4b7264ba3155805581e03bb84aa584a09444f6c6f7df1bf5cd57cb1fe3c03616fd73e8e8b3be80007011bffffffffffffffff05581e03c97c8a0b6618aa22800344a2b1707aab1c6cc8a31e034809c5744d65000c024501dcd6500005581e03ca1bef436a08af023d370715693f9a3a2b1aa4c551f2ab31cdfd053d200c1a00068c4a494f179b9ef58c1c29b305581e035cd247b357b90f83a5b72352cda5171539d3ed6f7fad760477fe51a8200401021944fa03ecd4887e2539f997ef8a9c7e07acf09eddbed74bfa1b7b08a920bfebc94b9e6c03868d60319f2f1f63dacec2bb38edc8f6057234f036dc5e8bef92111e02eeb8a3030a116215ced5569b55b446293330e140f273c4563090518283ff7f67b8be2c9203e06271a526b339f206bba16ebc5dd33b4385aaed1955c76b0a2b5279d0fb95f303503c6c7eaa19628fb9391f66bec3b53e21e063d526b5cfd16d50493e3914598f03f1a2668ffc444a08254e3803f7d04c876aec955c30e564234f4838cf6c65c74a03d0057c04df8b4472073c654360dcb77122ccffcfe69823aa102909779bcb23ca0219ffff03fb5e9624e55f0f0c641c87c6b09c7f0bb23526f405b939b067e259a056ff47e1037d9dc9a935095c51a7ab2c238ec51707417f56ce357d3a73cfe2fe83a850d93303626069341f86450462ed3438342d107eec55106430a4d7a3515f7a1089efa5b503e311d569327c990523f9418767188e91a033937c413db89d6b31da61bfd5697703053f9701128dcbcd031e14ce915d441c89873ae32621402e005cada82a6e22ae035d3804623e3c0fc068d332114d207c9cfbb8eb4ae9f34b1cd0869c235085da760308a71e736bc2d284bd4270ef794817c31f03908982d2e566f4e11dc0716e54bc0219ffff03fa5e292d750bb6f108d037ca578f208bf3a17194c550233908b62d74795b1c1003e963ebe37a7cffd45b29e1608624fedc416cec334a4bd431ad6edd7fd62bc6b503d47a4ed6e0c38fb882090b0dea656063a7708ecc39baaf4b0d8523559dee0adb0370f921ab859eea613c9b76c567690d316c01fe0898cfc66f541a85a166ff350a039842ad19411626aa3c8e573805cfa10ee44dc041fe27ccb95429977fb4f615e903281910acb3cbf5262d74bb1cb13789cca47552bf21027a61604f69093c912bc8038a81c94eb58c58e1ffba0d4fcdf7cd6cb6a712f583718d512e5f0010e0c0589003ebf5050aef407616db1bc150bdf026d04994b3b12af74b205c6d7ed89438097703ae6894fc9858de26aad9a3fba6f170643cefa883a114726af55ed2d669f7a7c203bca34f2d79e3f5e65853c3001a03ea4c087875344993a4aadfda6941c2731b4b036e244facee9dcf2d44244c736703d8b684acfbebadcf795830da100c5e8a72dd03fdd63e8bd5b871b1bb77dea019967e72645f70d693658de13a2fa2e7c2c89ade031250d8229f28d9305534bd830b17e49c11af62e77645dacfc81afac9a43eb9020219ffff037ef1ece21e44ab825d8ecea9e2d56a9132a6a4b9d54fafc65d70a73a5def0115034b3663a1850f5525518e66b5e306f474aa2f18f0ab3eca1f78b00dbc2ce1af6d0300a05d4c837fc12810c0ccee474690ffb6454dacaf6c3c8909b1b794d876033b032dbc9f25e0e1707d2666b597f3b00a0f1da7e2d9f3329e6eb50cc2df6884101c03b7f17735e04be31fdea217eec4b01ecb8c93487674518243f99210f6f5cc371603359935ad907fdf42a20235dbbc5b087fce48762076ca25d0ab9fc1a65f5c5806032c563056f8f964036a01cab80632c04bbc0e4f2e64b2ae2cfc7f6f019163fead036aa5d0c224ed72ad8a9a0a8732a7ed5e3a0cd59cd08df6fccc3276340ac9e6a703fedb156fa8c45c3c4fd38b0cd4ae6720ba024b28e582d0e05297fe4d355d750203ff7634648093ef9e8286f4f8eea5202ab1b6999a709836c5ab2679e73d9fc70c03f6af0b9e56dbd02b9c6587f96d8acb5c756b105be21092bdf7a0ae84c701e2390391398b34ec052604c2ecc5315e6041035f05a1ed5b2eb7802745ccee14454078031effe813e79da9cf66ca0c09ffca252c23322ae3588ceec026d8376778028542037634ba337fdcb080cf75ad0e3fa9553e2b90be9d9c6d104788ba6f4858de09040219ffff03e1d2bd8ba45ba25a395f82a760ea3abbf33794428aa270715afcda46adaa73f903069bd66d030e35784f82cde4597e49c72de02ed10364fe6cc8ecbde8821b13b003435d4ca6e69ec48a926af1ef0464481855ee1a1978ffa34dd56a84d5dc21f4e8031a1aa630da0c87a0409bceb0afc1a6c130dd60c87a80ccbc8b6579f065c6c88503565326a8b92870813e5793e46847597934454d34104f5ffdf841e347bcdeca1d0360025096eeae2ea564f59baaa1da80d1ae94912c083c2dc5bc7246ff8977893b036648d77a12a0e585d7b9697a533251bfe5760b2d1125e73ce93b165469425c6803a59f77eb825a02c82931b6459eb3fefe9a440c242d51332312cbeaba30b846c103501ceaa47e2bf18aaf06a9ef27a0f5f1375a6c80300fc6d198af1bd4a2bc6067035ae9b60b801833b9cea811e0cda957bdddf82c4d2f780d20a5998254e6be4b190393b7e8366554bd03c36c8aff25af27909cf297147d78077d3db44038f5147698039cdf09a6f6a8e9cf4b5030d81837ae7a51b3794c018170fabcf77467ec28bcc803e8da51dce8d69dbb8c670d42aa453c9c0daad0fe54183a088a4cb9c4d06f142d034c755779f7685f83ec6613257f66f99852dfe88b65e997d1fe2d784957587200035ad304666fdaf8c77ec0855a7f8fc08dbb4b1fcd4c8a056dc4edd2d600b5c23603251522750ef8835ea0d6e1502b4de71d95312d1be0ad2734ebd213702f9fa99f03712a3df5e885e4c7c077159f683e4fa4926b8843fc1b285357cd951e9dc9838503400b93d289c22b5c493c9f592a2860f489534771db51632210179a9a9bb4ecaf03c5617a7053124ea454e92f367c2bac43338e572797d97a3faa3f5fceabe27bf803e6624f2fd587703614ead922a0e8ec314b3c2d9dd642e51bae28ebe58e66492e03b7b2fcb267f1365466c028354a72b6bd9f1c6dafc5b5195fe5505eb43509c7f6030cd717afd1e1c23a4ba629658a1f3b3455f031b71a74867af371cad8e818e82b0372024f75528d26309ef8cb1715dc63b25d5548e7631218bd6ddc081f0a3e36ab0316fab73753905129b217a3a2831be4bf28e45b077b25729fd5d34d2f1ae66b6c0324600fd0d540031171689347b7e1bde49622ba9a8c7ba85d6e7d2c5a76f038680339ad493ca17253e950eeb03c6015e4c8f5adfe44cf2248eb77e785b9de3cadaf0395d3a33ba22a9ccbb33a656d4ccb275a27fc947c41101b082ded113b4c32835d03435b44d8bc1ff9d810c16e8c8b70d927233845154a1bec6ad15c625b87166f130346ab3e7b454a72f4ba22f9612835147359237b4aaf26c1c7baf86c85c36c589703ac42ecb01e4bc85497c13d2c5513652eda8c494e3f848a9a743616bf44695ea403a4edc593b246afbeed37d0c9241ad3b49051d69572a39f3452730336fa389cf403e506d741b15b9b1036a9e9b1d1f2660577253509d24803832dcd5bb0f9710a6703fa6b9100d9580fbc26fad898a2d011802eb6b4352728774ea110c6977bdb77f705581e03161f35862c7e621d949f1836543233d97ea1bbb3684356cf2bac033cb00c02472e6517601f218503f51fa52fd1b3634073cdac532c263a81791eaa8d2e5b553ac6196b0a6bda534e03874883f8524e91da36394da57a2e90edd7727a73ebf0966e57227896f6072f2f05581e03cfbd667de264e2674f3a4ab678025ce7455e50ceb6af9f8801eb67c59007011bffffffffffffffff05581e038a948b155fd7e877ac39e2f26b8ca6bdf4d6ee3dec008204f77a14e440040305581e03b246aa2b37475290a8b89177654ed4cfcdb9d2fded0c6cd7ce179ff1100c024701e92cc996878805581e031fc60e7474750b6524888b8004e63230dc5ed3717e665c68067665a96004010301d9d351158d5ce69f2f6752bc673820783a9c9482e4b1ed1cc4f0f3dd4e108e05581d03d789758bf81ef6fbf72aa933799211792d5dd91e014913dfe4f2dc300c0147033f40a8224e0d05581d03f43dbe8cdfe013614a1dc2326a30177508fafd34bff957172fd41fd00c181f4719419a66c72c410218a001410705581e03a90c3b39f77545f9f828a8bd978ef42de1bf2eb25d6fa5fa00af028eb00c09470113f023b050b8037ae606e2fe6938c9629067e5bc65b3c1186869d67f27af39d3d4542bda49d47b014105034526d7057b1d90a5546c6b61ba42fdcee7fcee1fcdfd83f38fc6723a9304f55105581e038609a1d07e3157d3ca26d9d68987d7dbe05b873e9612eb6de397d7d000040105581e03a6e42f874d0606623ac92cca7586f24453e0e5f26c52b3653ad816d8300c01471ed3382b55eb0002193f3f03e5923ead3d47b673125338fecab0e8c698068435562ed0245ff8235f1bdd7f7a031749798c86a85453bf299f1db5590a8aaf39952f21ac2d9c6126718a5b42fa4403f44ac6f2422cc23f9f9b1722b734de3e735dd7f94b188cbe288daf0d4406d0e70371792562f5ac710146b0bf5d2c31f11906bf7403c27154796178ff08b0897440039741245f22a175007818ef2d84d39a5a67d9218d1a974b99efeb00410256d6a203b9785827e9fe6c94fcaf3f037c3b6433cad13722cf53bd54c778cbf39772ade503e6e12d58f22e03ad50ccfb374e544b14598731fb1c7ee89c4832785d7c2e76ab0344982187db96cfa3d5c945f24366ea1a109d2e64d19543e5cca26924a687440503963803e20516ac1ba6d81bb2a8f5de8c9a448a9be9edcd2ee22623f4a4770a3c0377eab4dfa6b60147e3fb728042d8d48f6a12d908545045d7005a55a8f18b37d803738d33df1f0495c37a85ef2ae70515df3221ac097116ff0cc7ba14f6681809c40399339541de10506b1a436bccd230f4c064f3dd424b6f9dc4ca87eb404773c88f0315288015302fe0fe75ffd6e7b1d05c03943a15858975b9255968e240cc28579f0386a51837dd53435a25b2c69c1aa7908c9a2c03a853745f0e4a68a8e6ae5865a40219ffff0362af26c3227852319827a83756a9f289d515d0b56e80f699d1257386a8ece251037c266fe872601ec14f25f9b06bb2cd7465a9503df05424364850bd60855bc22c037180d3ab2264dae80cc6aa37e33e7ce8f645fa29f673f3fe6a2d57546b1e8aac03b6d86bb0a5629fdf1ad731e7cac94e210bf9997d585314e1dfdd9fdaf3118fc103577b992b6fa437589741af8d52554da3b2fd9d84761047a1d9590dd0a3ac169d0368fbf54d46bc9942d887dd768bad5b62f4ed2b675122d9e3df4691cc7dd566300219ffff03069371eb260b5e55448e1a2ed36403a5e5eeed40ae4d13e621f731872bba0deb03e66b6eb9872d71b0f1856a0e798f6d88e6363ef0bcf21fac3dc6a75eb26fd9d6031a80ac50b25ab116d9f7bb1dd0224af90bd8536941be7c35a806f7bbce9f59fb0365a5c60e43d0780d2cbd5d7eb09f7734ed62b8cab680d2dbd854ba5fdf4744540219ffff03a584737200bae8a47bac63471a65d35491b2590d2ebd8bcc4eaeab0d97645c370313a979d70833961872d8d3a90cae1e723e810e3523bf2357ab3396fea78d6cbb03c03386141540c9576e16817f662214c97d10df65e1f4d0b0a3da0ec25e75cec803d6159b553ef74e3af78ef63707537c028c4b6be9a96a230ea850245ede0032490219ffff031093e2b73da85c6d517cd05146cda6d9a8d68391f01979ca0764d05ea0a42cf103ec8027259696fcf636dcde4db94f26f077d2f00f6273a9c63df7abac112e4e5b035780f7e86aec135cfa72c42638742da42f269c9b3aa44a39af317ee5405b6e870358741798628aa380bf9698b3a3a8bed919966f1800074a263845f8e9f17ac09f037ad113d5ffc8efb3e0cace95eef3f0ead9199be56cc030320978d55a2ac3811a03109b3f5e1b0e5203f6fea3f18ab59e11b8fb0ec9254a0ff0593d6bc826b80d3a032619ea83b28684fa4edefd3ccff8635c87d394a7373f1b0d1b483d5e50aadac3036f1110cc0e622c82fa80fb13f7ec8d7dd74309f7b1b23582f01b16362e270fad03d2fc35fb66485a68a5c7d13ae0cd560caab9176eb0e880efce79bb57cc66d987033a10401894876df294b98f916cae8153216f8fc91ee83ad484d27c203298c32403d031f51320f28e21eb2f8763341179b4d90b9dbc165d636be9e42fb50481a431030eb90ba708a5acd8bc1a8c690813f4fd5a28d54f8d2bf0f1f20536b83567e9c103ccb3c45f8588e319c2cd889113d6b8ab3e6583e6072c645dc2e1ab4b7a82880a03d63956ca3dfd04bcfc09586e370589395ee55d7e6e9da2309424f64d96847a2b037c657542c7438e980153506bfa49eea0c01fae12c7248970ded6f5dca0755d68036b9ad029915ae1e36c70fa79d6da319f036570707e5b738408835f8359cd225b039c4b2e3419b43c5ef95a477ec5db3e37a4c8a0fcac150f3dd05a7ae0d72f0b9303b7a32ab3a1003f656c698e77cab127f8b073fae817b174a0bcaaa21dd272cb69031d822b7b83881f46a2d232826cf693d39adf8fad6c73bdd85b4248a7517c2ea303a346601bcaca7205aeef94e1187b6707809ec1e182ecd50e4afcc6d52bc1399503d5d3bf9d6c78855ea448e3dbd961b9f7c48f1925edf82ca0b51fa708b40006900391a673f3a6660735a0f3d79e77f835a5db94b35e051acfe747b1399b5782ee2303937c60d1c46bfdd1acfa75718b9e51cd85dd9a520c3bb7a0055fb7c350f86dd6033c23c6405ce7f0cfdcc214d3457b0b716ebe47e0a637bf9d6ccce934dc12f5e003f4ea3579a9b8c959f1aa19412b74049bacb462a4a35cb3704d207d2445b9b96c03788a3b4c99adb5e09f1ae0a17892a2c7f6a8ae89d8ed0a7768f3deea4e3c006e039d4f052f71ee65fd0e97e95978bb396930ebf2fcf421dcf33ffacbc785e6fea50368289f068303217ab65661c6d3325f199028a6689ea2ffe837acceb05770724e0331860a86cf1c9df09865ffffe7f85dd5c5eb5fe967ca3672395772ef4920ac8e0362439620da769d6fe4202f59732ba886b013c20e27589eb334fd9ebcb58ef93603680844d5763a8df428c410de7c71534b75563a1185a89ad13f00b5e95b8ec796037246a61220e29940830397369b5a49a466c83a0e73b7f1b33688606377e20d8e03bc19fb1bca5cdf5117ce884d53649e11c05910e2ef07433d71f64d50ccf1a6b2030775e15c1a38b969ebe9643d151d2f5d9142d0d2c8a605d7fe5cfa903e0e126f0317bd864b5b76f497c6d304ed0e7e6af4333a085b4ce73ea7f080a09c7822b45a03899332b9e2f095e77102988c697de3c7c1745b36c3a370965d49acdf24fad0200360ca325f553d5147d5854ce13545342c7d6ac22cb9016ea8efdf34452842d246037040d6cd64039fbb6d0e9bb13d0f6712256da4c03282a2b2b84e421d168491cb03c94456f73cd10bde44986968aee3c157f7784de0f77ec59fb23fdcc5806ee9c50369d02e9bb381d672f3ef2cdbe3406894dc7f507fdda719faf42c71fd8408316a03a717716eee6bc6e1fa66b652d03df7fc4b87badd0d3c6744b3a8df8888bfae7b03cf13376bacf45a086cabdf8c296cca38b8ce40bbc9a763416029a24dc10cf4150308724edc7c2a1134d9bb69b02bb257127f221bff75770862dd984d1e61adf53a0391b2834e2a0bcf69c721b9072cb0a1334934221ede21c3ac5defa3fde928f16f035416c93ca49c95152091a09b11023c66bd00ead7f940b73e0939264dae0ef2610310b334b4de031509481d99ca540df5338214b478c55ef4f8b0d54a79008d402503caacfeb92e257007b67abe4ca1d91a66afcec7a6b07afacef82baf4aea7fff22032fd00100753f23ff4be863b22e3472f80ec2dba828c048d7fa66be3e75fca4b3034f5addb902d1bcc10e1e9203284595e56ecb4462bdd18b6205f3fa9d06b37d9a03e48bc9c08fd83734802cb9106ddce050fa026d9299698fe4d08175bc066a801203fcb82fb9b986d6a38ce8ac491bbf1fdbd2e09e55fc6316c7494e772b7d267bb303740f8204158867cf3dfa3d58e6fa40eae3c41eda4830ed90eed82ced34f7c4e2033a782a829bf1ab70f83d3e2c64e6a0cc950bc81fe7f079500735677950a62c9905581e03b0bc4a44c09417598485a0d965901b445f6ec5153b4d5c80784d8a94a00c0147105008fbbc081805581e03b408354a3192c6e762955b67dffa650d3b6ecad4ff90222c245a04ebe00c02471a52bbde79f9e105581e0314b12c2a48667befdc7883d1d96a820cf3f1c152b287b4e90371875af00c024706c8711eec742c035ee6b8d21f50d822d4666d18e88040f644d42b8652bd2bba66f56cc2390a2adc05581e03808ae3983281bad51f150dac22553c97e3cc4bdafdedfcce9b21d4c8e0040305581d02e453c008a844af4c8c6d6c048870e57ed8eb75a4a7b0490eb41f5ff9040305581d0207b616a149cdfba20f68293803a01425166233dc98c5cbd8304694040c014501aaa2ce1005581d027588578b75a6b7081c37f6fda66a46ce3ac21e8b14ef4d7da3e330b2040105581d02d5037a07a795d5b12134d6b58acd1fd5d218005ccd039898da25ada10c184647537527906df673021914180396fc0509822956e352b7031c658a3796c02946a7578efb014affdd79de84e73d021984e303f09dd2769eb12e46c5ecdadcb62b7d251378b8a9ea899f532ceecc599ae3864e0311ceade43f22fda76cf8a5a4e13386b1f3cba445fe40293f4871549bbbc3124b03368e40e7bcd83eb7d4478ee1d0941fc40795a14303a5fdb4a1d21fbc5b29f1940219ffff0219ffff03444d7d50906193f813ab5ed78203484990a0186c55fb7757620262fff9d2d3ec03665ecced0656d8adf5098d0d429a884eee3cf62b11ffe02c82bdee95726decfc03b7d2e28513e8626918bfcfe6417b9ce0888771bd95f4b846d98fe8240e72248103db1acc36d6b0f357f169d94bf4bc924b4b0f378011078de83fe1c490389bf5f40219ffff03f8738e08198c9f8b7a7eb7f6023bbc528c0ef73dbbd4c90666ac303ab6ec2fdd0219ffff03b0c390152d709d2250e6102ac5e05216cddedd44d08feb9b762888457b71768403abadd5c3fa89cc53ba9debe3f7717183797f7114cb71af91a0b2ec5a0fc97a2a0340896c16550ca1c016d7688f530cfb99c04116285f8d2cee3d6162f068e6ff5703706df3b84fb5ca16e28edd485c2150a35cd9699fc501f061d2d1b993120be65f03f9dc5f47ab9722cf22cc2a2bdcb2921345f918a1642ba1466f81d2af3175ea44030910b86d2ff7b13f0642dd6905ac2bc07e36c1cda8f5be48fa069f8cf743cac7033abc3803dd3dff13536d4dd29516397408388f14ce9faec62a1ad15be081c58803562d60bfa83a1cbe81ac6101be17f47dfbe61f641f59d415dcb20aaced4544f003f36c2f16901c1efcac13b048bc17c2626b8b0c0c06c2e69372fe6cbb8993969b03f64721023ae11fafd17187235b60ef34c732eeb160c4287fc60d17f06ea93d310395743c2a833e0d3225ac4cc854698b285985c0f4448e76d1d036818530439bdc03bef153e377a7e9634301857e62cccc28a158817ff955518ea48e8e3028266671036abde08008c846ed510d80933674dae1d5ddd63bceae0adcd93b93699507942603b064a0d82f36904dca9e4f76bb81a4d9e400c80ca840185929bb1dc1fe99754d03d84f60b95ff2f4c72123166af6351afdd967690f8a06bd8bc3749c690672dbbd033559ea9f9716c39a74230bd76039cc6eef1cb06ffaf0448b385c1beace8ba9b90313f3d0e84b6ea508e07d288695a5b3072b3655f6846e68a3db69a3c576ce1450030ab58d9ea3a5560a0f6ea2eacc71184071a2e0ead8cf169caec73f1af24860f003fb38d79278f1b88fc75e6509bdf0580ded619ce5440c0227fd6456e057bc17d003f5763225e6f800ce4950f616f57a8e8008c8373e5cf1c7145cafe6e404187737030a04e8283b9d0cbae96fdfa030649192592f966e651a51af29cd38d37e9f6f2803f755b02f894c4c80c667f049086d04d821f3c7e12d553a95596496c2ebe4109f0338b3b192e2f586afae88939c480ba9909d9bd0c8f2aae7e8d652f69f6fddb8eb03056f69e31a800632276444a666e84d6b075ba0f8f50a693a6d844a1394895186039c4a51141a209f3f6f083a2cf950620eed6c0531b3ab0fc025467949285826f1033e27e5617b23713c3fb292dcfb09d4fa91ad6022d14ebab120c45a339734b0b403ec9c6e04692086ca7d6fab1a231d82cc8ef08d19965c2a969cca2dd17d6651e4035714a70ec759dbd95f4cf404f92e31b75b0808f99329476677f191b271ff4211030ab4a3c3cee2a023b3bf8ec223f09978f80cc3fd8d6af84d11ead8ed13829b9c03aa47eff16cdb13cbbd4cd470a1aeb349745c28e93045237853c6af0f92b9cad503f98dd585fa797304561b40a3dcb90e907fbdc0ae2f4af83639d1813978ddc66703b4801f0ff56c7d890f284fe06545a0ceb376f14c07510f2f3fe03203982560510348f0100c40f324b0effb02d6c888401b37362654d4526eed3f583261f5fe0c32038b77151b16616de5d5df76ac53a6bc91011cd8dbead97b1197b1f419cc01de0103d96fd23077c01e07da9d9dfe32829746c415556f223f271fb9609501e1eb1790033f3f8c3e7b6181db2d420f476ed18cdcbfa6818bc70acc81ce605c41c92d3b2303a262b9a3c9cdb9a54cf8ec1a6a8bbda80f1ef2906af2517dbfe4cd2b2ece726903ba0a0b0a02ec429cf8482692da27fe46b5ba7a6f634ac76e2ea350ef9396f79403e99b7c0686400bdc4730619d37c5f76aa78d136983f50f040578b296ed25f06e038dd9ecc660f9be1fd6f6499cc9ac4706b4a6f280034715e668fa23896269e9b1035dd288174b6e6ebec6adb6287d77205bc7ba30dfaa3158eeb7f041e3d8e8024b036d2c1465d91590d99d99f877037edcc3c67ddefcc45f31e2a16a19fec54f7dc2038e0c4a84e09bd26a1cee4f351b878298ad84d4a6f97de3a9f3b272e85a720a1d035a8346a58202a9cb9287ef0dca1feb4f9ecdea822d68a16faa903b3818683a5a036828f2f930f5a35bf812be34ab82fa7be596bb08da09c3f8d7c76a80ed06b15f039ca8953df88937b4c385bdd7028f810a51393c9ebd1cd89fc080902ec468353503551c58096e6bbaa96817e38f80e95da31b09d46c99cc2dd4c76d7e7f2f627a5303ee175ab246903f31fd795bc560f9d354b0055a02a50ee9da51a6747356dff1a1031ed386c0883866d4ff5f5d603b3d2fa09d6feb37ce841bca1024c95d1cabb15e03b89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b00003789ae8616e962fa1c81e4730d24dbd8ba16ed4b8c8e04bfa527f21a4aed000b105581e0303a2e9dbeeb9e1d4d6f72ac1f45063e41f3cde01fecf348b171bea990007011bffffffffffffffff05581e03e6f26d02e279d0d837359f99f6c0bfcee635fa637e2f428d54b56eeff00401036fc59d8ec2935d21adc29e5747192beec7518e8df38407f9ed9502877ad153f205581e03d4c65585dab789896c06b27c26b36e117ab9acb3cdadfdd4535f8a4a4004080320de2be42a37c225ff8f54614c5396f752720fc3ee23cb190664caa53cc977f80605581e035a95cb236e3227b5498806eee9ec078ae2a23499a1d0158c08dd8b5ed007011bffffffffffffffff0376f5a2231c97a339809e111c089977fdea9e4c75312aecbcfbaef9d18e7e7b94033968e6e8b17a7cb2ff7e1c8bc16d8a0343936b42527d7b163a7fef919092d43f05581e03d37645059223100de4673c67c6da867507fa02bcf184e5a09ff8a520f00406035b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce503cab76c96e2304fcaf5bc08cbff60db0740dcca4e96a92b536ca7b3758add85f205581e03b453500545c5448b75cbb101f3b8af0986ba3e3257d4fbfc3024e2d66007011bffffffffffffffff05581e033daa87b11655a14ae41afcda8072c98d0c6c2d6b714a839b83b09c95a0040104592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032032e2bc0c0ff22609eac8f10e1c8736f3e780dcb85055451e7ac674e2667ce4b5703d1f0aa9c759e0ec162d16bec524ac18a31756608f4e37771305f6d7d2730d32d00582103e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0530229958ccd3c7ea25f26e53c9011986ae252540058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5820860d311dc553661224ebe0070ffb3dccd5f1271b393f0bb530f931803318c8aa005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8504481bce70720f66e9fd7a229ab6d6a0c021844005820022768ea60f9835e1c2d0d9c18e3e7ffa883b78e83c59eab99db136f9cc750dd4101005820026966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7410102198400005821031d5979134c83c317b3cf212be1bef32d25002c19b461e01576a6b4e3f782854048b6623eb8427d6d7000582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5d03000000000021b7e77b71075bb00a00000000000004cd3f874a1a09d60058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f54a41d2f8ee4f47d3b860a149765a7df8c3287b7f00218480219f44505581e03eda748f3c5bdea6cbdf60e6811f915ace8262b791c3854667c058032700701192c1d0219eaeb0219ffff0312c584232509b7fafb8fc7871713fd7955315354651d58006de3f4c9806e4b0b0219ffff0335ce5c4784379b0abc513e2136ff3e32dbc05ec13720692af9e8b9cb137a6c3d034335a5b54815d855edbff02196437225ac496c454631d794dfc662fa9d905b5403de1eea5d2e254e46c552b20dc74a063237a90f415c35a0d30e59f5d19345db6103e8588cca0c82a8d296121f84401aa77bc225fb175cd53826a99fe3bd09b5cfe40355d5a24445762dd72841fff57c6ecdc57a720da4e7747ba6bc09de7c6edff34003278fe30e82cd8a5087ced0e4fcea8db9a78310299c809a7a6e94c5769e738e680219ffff03620edf70016b5436d935bc065f19fb7eadbb6ec57d3e8e036594bbb827e3e86d03dffbf27ea20d836e429a1e372787cd3131509eeeed027d762890130fd5265d8603c1e4515f6747f019e50b76e77ed50930975f19fad16c965746accf049fcf944f033c42f42bc129843c068205250a242f5714c42612f585ee3c6962657652d2568103828ae414464e79b613fab90962fa3ac1c404b0cc967193c0d4c1c8ca6c74fa2103ad43370f73a2669f4901e1876576901a1a6f0ecb1bcad8439a2751753f53513c03ec804b915588e0fa18ba92d8e0637c3784d7de3393c777f108d7f43c1e2fd913032420ebe149371af5ebb233bc33c11f923d52fe4d20b3b57c6ad5bd71e0a690ea0357055d72438d7329e6e9720d810f5d19f69a7c21f59f1e8426fd6bef538de49603a3f69c52a328613df88caa35d0fd03d03d54cd7ca9f934512746177021b39d3903e07a41c9e721d78b4e9a08bd16383c5f0570c2793e71bcf07f00e74098831c8d03689574461b1c1cafa64027773e3e8ee68d18c461a2c27e0135661ffe5af6b62e03015cc8c69db59393da97c24ef7e3c0d318eaaf9abef5af6684aa2fb7b642281203e13e0e5f7991332d5fb028208e0a8e1d4d1043692be479cc1e0e2ac062d95271037a0f4964c6406bc57635650dd1e0270bd07b6a6c36794b9e9db002afd970a7c30346f94d0b34355b1a996518243286f831b58b945c8f53dbbe744b0543ba34aa6c03fad9eecd5e399708ab7c68f37bc921794ee61f7b4cba46a220a7c5988967458303b68c28c0896ce9159b36c02ae2b1c75cfccb7266e57c4528b93f2eef7dd6b707032dd30800eb23b930fb2ef4c8bbbb5cafade3489a4d70db99678d96314d595d910334a31ca07e4905fddb6d600273ecb293f626b3abdaa231f0e941f7fa544bd378032a114b44a574ea22c39f9b277d3d15701c76a8e17387593f68c5ebabdfa29add033c5fea75cc3c001c3fa46c206f2cad034b012cee3ab44eff95f9c6ce8aa3a0bd030766911e484ed963d0ef41fcd76a68206012e6c94279142d130e3b618e6502cd03564ca0a14710dea498dcc17199c77a72ae228394d1477e35dc0713d3253c145c03b8d47d45994104838bef638b3b3869da2aacbd0deab4872875f617b1d7947046031de15b16059f676f62892ac4ec9466f78f590650a073cbbe38a0862569328c0c0393f4f851f679d7fb0b6693155ea8cd5f95d6f1d19523b44ce8d1dcd3f265f27403bf9ba4ae179dbe717c88de7d9d19ca336436b23b04b9a30b14d31e7830e67dd203faa52897f3a196d69c38fb9dbc2984419619fe0f41309ad4b0d5a6e78c877e7403c8ed1ec37449ed020f656c974156ba11214a6be99118304c972bb8284b497f9505581e0356e6273ec55dd49f2592b3c6180879676c7b2affbf6a841237fdcb2d100c034747b38107ccb1a805581e03613437bf64d078bfe93e4329adc7d998441fb7ec7cc358df6cfafadda00c0147014c4c66a49c0004590a2d608060405234801561001057600080fd5b50600436106100a95760003560e01c8063461a447811610071578063461a44781461012f5780634651d91e146101425780638da5cb5b146101555780639507d39a1461016a578063b298e36b1461017d578063ccf8f9691461019057600080fd5b8063167fd681146100ae5780631f7b6d32146100c35780632015276c146100de57806329061de2146100f1578063299ca47814610104575b600080fd5b6100c16100bc36600461077f565b6101af565b005b6100cb61028b565b6040519081526020015b60405180910390f35b6100c16100ec36600461077f565b6102a3565b6100c16100ff3660046107ab565b6102ef565b600054610117906001600160a01b031681565b6040516001600160a01b0390911681526020016100d5565b61011761013d3660046107e3565b61033d565b6100c1610150366004610894565b6103c4565b61015d61040f565b6040516100d591906108ad565b6100cb610178366004610894565b61049d565b6100c161018b366004610894565b6104b1565b6101986104fc565b60405164ffffffffff1990911681526020016100d5565b610242600180546101bf90610902565b80601f01602080910402602001604051908101604052809291908181526020018280546101eb90610902565b80156102385780601f1061020d57610100808354040283529160200191610238565b820191906000526020600020905b81548152906001019060200180831161021b57829003601f168201915b505050505061033d565b6001600160a01b0316336001600160a01b03161461027b5760405162461bcd60e51b81526004016102729061093d565b60405180910390fd5b6102876002838361050d565b5050565b6000610297600261059a565b64ffffffffff16905090565b6102b3600180546101bf90610902565b6001600160a01b0316336001600160a01b0316146102e35760405162461bcd60e51b81526004016102729061093d565b610287600283836105ae565b6102ff600180546101bf90610902565b6001600160a01b0316336001600160a01b03161461032f5760405162461bcd60e51b81526004016102729061093d565b61033a600282610606565b50565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac19061036e9085906004016108ad565b60206040518083038186803b15801561038657600080fd5b505afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061099b565b92915050565b6103d4600180546101bf90610902565b6001600160a01b0316336001600160a01b0316146104045760405162461bcd60e51b81526004016102729061093d565b61033a600282610630565b6001805461041c90610902565b80601f016020809104026020016040519081016040528092919081815260200182805461044890610902565b80156104955780601f1061046a57610100808354040283529160200191610495565b820191906000526020600020905b81548152906001019060200180831161047857829003601f168201915b505050505081565b60006103be600264ffffffffff8416610656565b6104c1600180546101bf90610902565b6001600160a01b0316336001600160a01b0316146104f15760405162461bcd60e51b81526004016102729061093d565b61033a6002826106cb565b600061050860026106f1565b905090565b600061051884610708565b9050806000015164ffffffffff168364ffffffffff16106105725760405162461bcd60e51b815260206004820152601460248201527324b73232bc1037baba1037b3103137bab732399760611b6044820152606401610272565b64ffffffffff8316815264ffffffffff19821660208201526105948482610744565b50505050565b6000806105a683610708565b519392505050565b60006105b984610708565b805164ffffffffff16600090815260018601602052604090208490558051909150816105e4826109c4565b64ffffffffff1690525064ffffffffff19821660208201526105948482610744565b600061061183610708565b64ffffffffff1983166020820152905061062b8382610744565b505050565b600061063b83610708565b905061062b8282602001518561050d9092919063ffffffff16565b60008061066284610708565b805190915064ffffffffff1683106106b35760405162461bcd60e51b815260206004820152601460248201527324b73232bc1037baba1037b3103137bab732399760611b6044820152606401610272565b50506000908152600191909101602052604090205490565b60006106d683610708565b905061062b828260200151856105ae9092919063ffffffff16565b6000806106fd83610708565b602001519392505050565b604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b805160208201518354818317929190831461075d578285555b5050505050565b803564ffffffffff198116811461077a57600080fd5b919050565b6000806040838503121561079257600080fd5b823591506107a260208401610764565b90509250929050565b6000602082840312156107bd57600080fd5b6107c682610764565b9392505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156107f557600080fd5b813567ffffffffffffffff8082111561080d57600080fd5b818401915084601f83011261082157600080fd5b813581811115610833576108336107cd565b604051601f8201601f19908116603f0116810190838211818310171561085b5761085b6107cd565b8160405282815287602084870101111561087457600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000602082840312156108a657600080fd5b5035919050565b600060208083528351808285015260005b818110156108da578581018301518582016040015282016108be565b818111156108ec576000604083870101525b50601f01601f1916929092016040019392505050565b600181811c9082168061091657607f821691505b6020821081141561093757634e487b7160e01b600052602260045260246000fd5b50919050565b602080825260409082018190527f436861696e53746f72616765436f6e7461696e65723a2046756e6374696f6e20908201527f63616e206f6e6c792062652063616c6c656420627920746865206f776e65722e606082015260800190565b6000602082840312156109ad57600080fd5b81516001600160a01b03811681146107c657600080fd5b600064ffffffffff808316818114156109ed57634e487b7160e01b600052601160045260246000fd5b600101939250505056fea26469706673582212203f93907b0eed4c7e0fcbb761dda4387c9f9f9de3202c7953b24792f8ad1de09064736f6c6343000809003303dfb6ea9e17ca82c168a4974650fedc9d21969e4c2317c63674aad67ce54747aa03b4261d98877ce223b8c5adf07ca2ffafd4b9146f9e7534260cac523e5311bcd603ba0e4863930250976e00825e5d00fb6bf181fa0244a70c10a409420cb823c9ca030e4efab476d7f5910de643b2ec2fcaf9756a7a4cae6b05a048b178c95acbe28803487fecaefda4933873cda1bce9a607c6cef01220e433ba7b88dbee2f4816eb7e03d0dd877583782c88893de2bb5069821dbebc326d7dad1cdce73c4acab15e7c6203091eb513e626b27192ae282640d003f5c6a079f969a153ae4c79b9dcf533a3b203064bbf86ddfd0f5922c0bfbe0840612f06c9e0fa5354d65becf4e11987e2d2340311b1679daa7fcd39cfa40b06bda173e2a45509096057bee38dd7b7a90a312a550391324b70fcd1720eb40b3e63a88702dab785d92717ff98aa11b39f27c413f9cd03e7adcc3383a59502866a714ad06c7bf181b8cb85f785e5455b09356e4f96be8b00581f0222ba0153b2244316f3a30887a2046a7716a5c608d7cf0f778cb2b6587bd55820a2766d519cb27f0485c9a5d26fa58173843da8bdd87523dc5bce3717be9de68900581f023ff37070bbf5ca21efc39d290e72f3c29eec0a9fb97684247af93189edb35820534bb96c5e001dfa88cbd72dd5accb42ad8f7c392601e423949708f544129f8b00581f02ecd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563546968f3f16c3e64003f02e121cf0d5ccbf5625a4200581f0278574bf0c57e9199b5624dcab3a10e37fbab0e1303b440c14cf49586663258208bacd276828684485fbb9aa637803941ab74abb0b6993c6b9aa4e3dbb27024930219a10803e7ee5da05dfee3de88bf828f47043fe5f82b65007d2b2a79543182eff2cffaff03249660c9c849b010e17c53b76844561ff1c464719fc4694e29d4bb495b414c830328c5b023807348df0c31013594bbb5cac88f20c92eb8a5486da328cf8586b8f303f3c0d051720e5eae8d20617a5e74c955e83b83345f1d3082be0cdd500ca3982403c5609cc5645086592fb7195c5694fe1b9738414c8e55b1bf60c47c0207a3487303b1675b0f2399699a085d05c3f697c656c934ff72239819c8d91df36285550394034f359ba403bcb11598f0dcb9f37f79304122e59e4017daff981dde43a014a5f8005820036ced58041f461f4aa29b87923dabdd23a5af3d5d1dda3b3eb7451c32e1f3b05820ccb0b5d9ede91ec67eb5fcf44a968a6e95ec0a288a8d2ce640f17f1436b0441d03b48b64852124773774f31cd591395d64377be6806219ec30acf62c174349a253036652853eddea3d2fe816cf5378f0dfad97ca5cbb33f7527e8ab8a0dc219a4cb103e70110ae61b276c49bc2fda77a399839ae53729d3db1c98b271a189301caca560058200302ef389c74effe40d13f05de599fc904098cb32001a6029a36e106f95b75305820574199c36988cea2afe982dfba3ff5c80402365484a4933ddb111c8c3bf185c40334310287a63857d8d8fb37fe39c310a701cb0a01d51a06617a6991bc02e95ad403e26f26c9363bdcefffb8634b3cecededd6e8003f1e5fda78a7274b3075b1852f03365c5376816699b8948a9725def066d424bd65daf9754256cee2148563c1b1f50219ffff037da5708de2ccd9413875ff260c9348ddf29b1507893c7973583330bdb26ba83b03bd8d1d09c30b4528495c11a844f6239ef8fba596985c2213ef45e20eba7a1bb1030bda19c76975194f8708770ab9883c61b2c1d242b714ccfd5f2854879126d05503c61c0e32084dc048a6651f34f94f7b779a4da4675c1ab2d0a58aff0a8340afec032f49decbcc65cf2c5e9dfca86c142525c7e4b09f37360d1b6ae4753795633fe303ba3bec69d4992ef4e433724ddf0f2ac2e8cbd235e981a65e61e9d3ebc95461320219ffff03e5297a3a6934ba367c867f5c36e0b7afbdefa8436d2b21948c177cc30fffbf4f03db09a23acce9ca0af6490009aa6f331d4513d98293e74c5f7d48bd664fab94d80369e5172b36eb0f445b948378f99403287c1e168467c6244db64e99b212e995d3038507072345b662e6a1753353b94fe449a21fd3fde556a51512351f2c22d7fa89035cfa8450e15fcaa72d5a9fff4855f65ecaaba7be2fae5d5480bcc0fd3a3cf143035d6d29063aa39d5d5a72907ce75316d1015403fc4317d434a0e749a6bbda9fe800581f025b49e538f35135f4630960a54b82a2cc3f3c46e6c172bc255022349d0cea582051418d531dd000e329a188f50fdc4fcfb68e18b7bdf0ee03087a6ca56c83905700581f02833b3f25e3d57e12862797c001e4e940dc93165ded63f72357a8c12ee3855820b81564f20d53e1b67112d5d674a085a0912c0c4da4583f36eefe0323de26e70900581f0287fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace4e65cf56bb00035053f5000000454000581f02c18aa26aa17cfc53a07e49febfac6027ca3b92206bf0e465a69b25dd8c1258205fc8178249677e8ea1d1a9838877bfc653ea1ce652c99e1edaa22ed80f557ffc021902a10371a2d634a6ba864c9ef2cd6695b84eb74c9adadf75d9b36e8c03cbcd9011803b0332057cbecf65bcde8a4abf62bfa0f6445b1f982e229a1990a67ba97191ecac3903798c91765949da7502d88daf841f9c0d145133d8312f6cd990345bfe34dbb47e03ec4d1f23920dedc38b0574f93661ad022102dc691eeb290b04161280f3121e17037383ae658fb82660fd06ec4b9f6acbb22d408d9e664f61be3ae41563b082a3ce0306349c5102769d70bc9426604fa93b49df9cc47cb1d13010d5bb0a28e5eeb39803123a27208342c89dddb4e64c6a870930be67a11f3b0902f8bd2c6c1fc625b87503ceb3ae968579fae79ee37b557ab25b7c10ee3b023ee384e46b63115b72778c9b031e582a809c9bd445c336801343fb1416988b45d13a9957ea199c34ed9be6187d030c84e69037a98f46990fb209b3785d68d1806af1ab19481f81f37fba92d845180219ffff03952a7147027ff9d801192afb2d08aa0c6563bbf7b877a12d752e1ab7ed982b830337049520e241b4940758cf7d96d846d7747b1fbc50a03019cea0c2c99ad31ab1037fe7468693f06ce82a27a9d235925694ebea20214ac9bc53b5682b89837b487e038383bb016cb7ee6ad48fefeeb9bc8e086f58380653e8a10b8df16149ff7d7e730349bf195c16de2679471fd6703e3a69ffeafd372f036c8b84b515876edf40bd360327b6e0b74a7becd8d92fe09052537d02ba5a9f9aaacbec7292f367226d1606a003cba8214bc0ec835d3fb9e0d21c9e1a31de5df4a476050de2cd08a8d01b8ea5c30306a07f3ec2ea3f6fa0b321aa8a6e9d6c7994cc397ec82d313cfc06e0f948e07203db53aefe050e37ca686af5e7a9bba5d457928befea859d727ece54fa9c1dbea5035e0f3afead39e0cf54f1a4678157d9332c60401462d68e95bc95744dc19ead9403b1907483eea4dd8a44ef50c1caaf85f02a9ef9c90084329c25d9807f6bf9916303f9ee57bcd66c34fc83d74ff1cdb053dd9c594e33f59177ade7c755fd5278080703ce92d2879923c316b9f2cdf6a254b95d0d4543a85fa2c571eb743e98a27c634f0385176db192626b0f6cd5c3cc04052ef3c3eb8feff4cd152463d36efe38cf0665036e4f60e47eaebef2ea14c172ebb5026c9b3a4f9a7c7c5af8c3a6726b6433ba540219ffff0369a719168b76f395cc162baabe81f8a6cc91c5ea34a45634f25ddf8299b090e30380ecebb45798b66f90d1e961cb524abedb6fd5fe066bee1909c3f7bef57aae280372d4925bdb1825fd81573488820add81b2ac6f8e3dd84fdf33e0cfffa08ea43603a9825daeebcf301b7e474d1c87904bb918d8676039fc0db655695792eeb55947038fba8ee9bc42dc0f640b5ea52736a0782f4ec8de45ef454dc60b4eaf00a5f37e03054975c0625a654b7474a730b2c01389ea4a43c245f82315eac25a075586912a033574764270a063a50617366e8a991cc02cd9e216ae1af240e20f8e60a098302d00581f029b38e1a188672831ec22232499853de6d86bba0fc395fce77901be3b5b0558200f90987ec7f6da3136fa0cded8d2713a284ce76fc34de71d912c1f904421a6f600581f022d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf658205374617465436f6d6d69746d656e74436861696e00000000000000000000002800581f02b1343b40ca0ea27d9e18c6f715f8c0749bbe5d1fd17d4353d3170fd6a4d158208a39784fbf8c075885ffc04e38c94b24a7209c1d63bfd282b907c4c3ceb193ca0219c100036ce0d7d2271685bf87585c45c8c5089d62c52190f2d49714dc9090ee1d7e191d03655542f3ffebd195bf42a81230e30b4ee871c2035f123fd41b8806f0727fa5aa030a5403622d4cb5b162ab7e06b4ce77e80fe7bbe9e79c2ce72c3d3e0a96c91d710330f3b95179fed278c91dff4acb5ed86faa03d71e763c9f32f2abc06a79c87f0203f0599f887b34e365faac4b52a5843c9176ca2497f165f3b9819854a9997c66620313903fa0bf737eafccf83b6731e25bc76f39449ea30d33183967529d2faa880903a749a099a4c22f34736ebe650e7ad1a6d8fc233195b377c4a33b7847ac541d7a0058200340cc4f7678715f6af3d96f702fe4feb932cf41d81ab41ade70155888534aa058207ba0b97e222d86d1b94682ec420540e30bf1bc2eef3dfcb85d3f1f84e5790cc200582003aabca3eff5ec3d6bfbcae6c9528d12afc7234e12350729e4942e172f007c505820c84040a96fc3fddf8e792d2a5e5bc31aaa2bd7cc532ae45e12ddd11247bd96890329edad1d81e8372f6123da9ada739467349e37fcef6dff4ad7bc5ee9e534988800582003fbe56e9ddec3423186482fc45e6d23cf6a0586b124b1a5df7ace3351b10fc05820453c759840aa502b70fcb88f09b1b52bd8cb224d0967173aab18e9a6baa50202034c2a225df8585994ea187fa50ba753ed327c49da5f11ae510a38d22de241371e03d6c50173078e99eb46ddf0b7221da2d219634ccc589a9c7b0e746ed7a1810ee1036f383d79e41915868c8155405069da856b0c29f75f73caa46cf543ab5495befc03fc179462051e3cc14b4ec4492b649dcbd2f5ea8849987bd397fc423916ce21820219ffff03c182f5742a29fac98436ac14318ffb1e6acb4831612153f35b94d156345399db0376f274694d1dd1f1b6c0c4aace44250e14528ed3e09ce2a6e73b677f5c38adce03dafbfb11c82a055fb0ed5fd1cb7daf942b1e112b9f7b5b5b0d96bba9d643c3550358e90f97f604a33a1991defe15d3567b756bec2399c4d5d532ca3a498ab2574003b8f0e86808852a3b0f9328ccc9e9dfe38525b5af07216a40502d5a1475664b610385d0e437abaca0f959189ee3f19a636dc6c1b2386f3825b8a35fb5e7ba31a63a03f0e574eab44029a92a6d82d5c2b90c0e03ac7052f0c38f87913dc053189d5915039b3953acf52b3e142e40a512e5ece8b18ba734cb26083601e35da8d6c361178503f93f61284ae3a8cbb48333ecbdb5697ebb89d0e8eb475f62250c73bfbc6924380352cb2f2acb30679d661b4a0c17a91449e31b7b240dd8958ea657ebdf57cd074b03d4dfeaa45c6d6b037caa7c08e3d4eb122afce4c62b8b81b8d5e72f823e6c2c8f03965af71bb0946efd2fbb87b39498e6bc1f24d3b7b78eef87283aeed3b694499e03a11ff873c7f77dcdbb41f9a4e2edfa45e9326a980c23380ed57b032f2e0957360361943909f15e34f5911691173254638cde22c7d52654a27337b1040f9d9f295b0219ffff03958fcf3c48b79662ccd11da102acbbca8e50ed27dbebb6fe10580f28f1a16f5903dc3101abd878482530320a1672e022b77789ebd264ef91d8cc97093715b6d60603d9012f0d5a7f055bbcf3a90c344f9302fc35ea9579431986c33539591b07cc2003296581b34536347b5b6c945b6f1237d03ac032a12401ace004b7d4f050599e4a00582003e5335ca7b09f3f0f34d47deada092ebd913c042d112b709ea77363b88c73c05820d02fae1b9b8d95aced8c9ef71e89c249a59437f95d8d34903befa17e4cff67ee00582003fa20c9115ae0ef68b1b11d859c858efcc59dfc18643c57a18d8e54f2f99a705820e9ee901148b3ee14d253fa48a3e711845e4432e7ea64f359105ec02ec2ce129c036036c6ace2ec1dad07206be2ccb340656db0603aaa3bcb6b5e3d261cba0f7567034a2969771459db91d4fbc89d776a050303710418d35902754d7880ef4281752003e30bd4dbf7d5b840fa11d65f0e4a5eb2dc9462442a0fd4da76b2029b8a241cb00349a58309ec2e579f21023c35e806a37ea0a65664d30642ed409d1ce654d95cb000581f02d20deedc4ea0d4577bde94b73790305282d31dc6fbabfa9f9ae07c6e9001582079eaa385173d2c6a5eb9c7644797697100c65df46b0852f2ded5e685b3e8345b00581f02cb589e27ca8ce951526c0c96c9391713dcfe3a82a820f55a965cee941e485820bdcef086aa095b2ce8b3409db3539c93db61d3bfab2a18854e847b9674bc6fa800581f026c857e0827b796c34e7b7f1bba0dd5dc3272cbd0c704d0d8892a544b6469582063e83755752587607167df4ac73ae8191897ef0bb277f3370159e679a62a0972021982020387a1daae3eff2e8cca45cbb895dfd89d5efefb26692a174ae8e3ecdd94da210203372d74a787585a309a3fd8696c0a10731ad2dfe7ddb5c008668a70f3c4c1998403d44e14f49076deab730e3bc5395f27cf5de661ce0793e0400da847d30ac57f55031fe50206d4a939f37b41a4dbdcc012196b7eb9ceca05b28137f59a44a25c601503a0866e301cf6015e7af61a7e6cec1c463877fdc677caf05299f83d0ce8a27146037513efebcca84508840b4c2d8f5add10fdb42f58138f4ccd1d49662a677e4923037b4188fbc36f2b9c1d7167b02c7a7cd7af1d4f1b04b490e560b979b59dabebe903c7e39a7b0ae177433de30597c9c3f5ea0104edf5bd06638b575c1e3cb39aa30c03f7b2920a855405192bd0fc0a154b9e6a2dd20a6df7cc4824b1420692d22050700219ffff03b05cdec789d501df269ecfc290d326b5f6c03f2a9d82c1ab004aa787bef94366036fd850630e3bb9d42be1be6da28276ee269e52449a332f7b1ae268fe95c42b19030decbf4e41d29c3100ce647193b33ede91345d5d07a1b35cf23ea0f5794211fe03141b7fe4fdd5e6aadb7227ece8c04c0644bcbf1675035c13268363e7afa5f4fd03aadad3b06426c31fbaa75b43ad245fb081e570135963c23157d386ab15af89bd03bc4c208f3ff601846e57c5f844974c01b09c107a40a3a77de3fe543173938ee003b83683ea231da6ba8ac21bac678591fb914be2ccb6c61edf5c5e26949fe2814003b87c96e70b0125e0a1406d11e35b5c1dd767365d78091fee821916d18cf03fc703b1996ae0fff242330af029f296ce3d19dfebb83cfe99e02089ae766c75ea4f3d031a8afbdcd0854d1c0ab021f28d59d625ddc4c893ebc5aeb7e464570a0b5466270364a2235c5ad53690978cdeea198fa4701f288809109d4fd8215a31dbb0e12a8803e727ecb067930fb4da84527d31e595a360cc97e4b279f217ae1de91c93aa55ef03432ca793ef1bab6be80fb06b9ba0c6c9dc4836d02a3729bea7cf795a4920609b03799ff3cbfc14b1296b8995a32e80d9296446131db65e55c6565f840abbc417370219ffff0219ffff05581d024b74563de844f2561927bf54d1af681654da557575f4ff2438336a360701190a2d035d2216dc2690644067e22ae27d5f0345186f19ea6439d06737e0677aa8a24f5f0605581d0271c8d68db5ef6595ae408a11050cea92dd2d95e25cab67cc6469e82007011bffffffffffffffff05581d02b7c6d8f38f21d2dc390b87ffa91a3ac74830ff594a3f1c01bbfd26b7040102191810033f8cd85cfc4449316c207d292a2bc989cfcdea259f283355a272b3f661943177032c1d780e35f91262781d9f1ce16da3cee08685f9cc5ba32bdaf74dde54e4ff3d036bd2f6fd673bb1cac2934f93f94c2de4f98be4868e24ffeb6eaa388ce5dd025003bfcd56320225029b68c4e867535f02bb3c732ca2361014fad4959087f63c93f505581e03ba96037ef4c2c4aaf802e48228d53f525949ca06e5f1ea6956f6118fe007011bffffffffffffffff05581e030c3d68cdcdb13a9dd92e9bdef3cae0c9fa39e4f502b790106760f4cc2004010380b4199e3308a1a2fdbb6da0c7e2f1c81fb1e9565213050c4b84c71d2828d017021956c6036c4bc039c47c07c4248dac2adb6e2c27bd2e3b2f597799298ecc8108250bd76903c12d2aa79bbef4a2a946a6864f1e1e0dae77d796a76e042bb3625bac9276bc5803683748164ebbb4fbdee3ea17326c8e0b8c28e8caa90684170d6a68910718a9c80219ffff0300eeac7e36d0d9e002f382b76f759f8e0dbdfbbe21aaae4b58752fb5250fbc1c035a1fb2e88e0d1a3877647c55a9a0e62a266340fee333f904892aa86dd8daa2340371fd7aae0cfa73f6231e1239d988a1a816dbc4d1ad744842c448c609f1419fd60219ffff03a236846d55a2f903ac647d56a28f6022f374c381b71ef6105439beb0c7d7405e038ad1ae606111c775a71e5e9880b9338d7015c40623a6b44ac2d59e0b08c8c288037dfee7fbfd5efdf0ff2cc8e13984afcd3e5ef6e82e2bf95e4ec7466a4bc7ca2c03575650b1314179f98baa9659994aeaa706e8abfeabd125e9cfd70e5cb22f5943034975947399ccc019afdbda92f44f4866a71381ab19ac5735c0cc3614eb582bba037ee01f2a650c2b4a2f4353d61b375593d313ce50ea0a8f7924166bb3e0f9be1f03d207abd84a692d867749af075e957772ccd42cf2be65c029973a31111d556ab803b438c5cca7fb426e30ac3c7202e3c59440ec2efc517f4a4a17067e8e523a87e40304c35ad5e7b34c882836af9a59960c977cf4873950a92f6c1bb98e12fc2b9cde03e26a9cd1e760d6d0986ba716fecb6294ad1ad81c959361a483272ccb931cf1c703cd377697811f73140550398a0df2a2ece4f81f9fcb6a9abff6f9e5c5daca7f160219ffff038b885db41a41dadc38f659946629f0a61de51247c09d73bb619d999757884fbe0219ffff032158fe0037560771ff9ecfa82ccbbf68a7a384de6b392433117d8787fc5528710334523990d519be3578dbe0a9c83dda1c751581f6cf1a33704493073837cebac80326f96a47ca29400e00e471b0b8c1c2e8d972f06519d04425a8062a8dec4f942c034a2b75245dd0b411bebec5fd2c58fe06d5550f08bd80274fed31672dd023616f0347aaa51169288c61e542905d919b0501c5f367381ab073474f8202a502d65f3003e81d5999bdef14958859563d704f833aecde76310cbb9559e1aef883907a23a903e33311947a0974a15ed03dc1d83d94904c59a949da53a97d9fcec1645830380203ed13c18e4e52d30dfa50271b662eac9bd6617aa5cec9a016fd65118ff1798c74036a0bb2ca3aeed50fb1daf45ecc053756de524571300bd994aa4056ecfa2d9b6c03637aba81aac1f7ee5e53c33268627872628c3bc5c6c37dd6e4288472a16038e303875a40277f18acf40e21b1e1561f1f74bce7c0b5a160772169dda00c9fa1b39f034663c9eee4d30189fd902ade8c6e93d6a2bdeb2aaa9e12ae076b68dcf31676b5033b278deb5a15cdf9433eaf82c298198801a699a2167bad7193bbeb70eaf3ae5003c57c7a23e9e4450e9a0d7e69b18e6c1348d1c73b9872d8a08fa92b817c391bd6030a7e142e9de359bd75cdb488594b3d41271b57d030a07ddfa4a25208f860259605581d024f1d72599ce81382854b957d28adf0746816914b8d8c28cdd904aac30c0147065658f94dcc000459031860806040523661001357610011610017565b005b6100115b610027610022610074565b6100b9565b565b606061004e83836040518060600160405280602781526020016102e5602791396100dd565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b90565b60006100b47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156100d8573d6000f35b3d6000fd5b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516101079190610277565b600060405180830381855af49150503d8060008114610142576040519150601f19603f3d011682016040523d82523d6000602084013e610147565b606091505b509150915061015886838387610162565b9695505050505050565b606083156101fd5782516000036101f65773ffffffffffffffffffffffffffffffffffffffff85163b6101f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610207565b610207838361020f565b949350505050565b81511561021f5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ed9190610293565b60005b8381101561026e578181015183820152602001610256565b50506000910152565b60008251610289818460208701610253565b9190910192915050565b60208152600082518060208401526102b2816040850160208701610253565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000a030d9c4a1625ae3c6dd8698bdf631247158814005ca47a7d8191618064ebdc899c03965a3f7929ac3253590fb18c938f946e37c132d8f7350732261207476acd781903eb37d30eb5cfe7c4076bc432e2d55c2c6cb071e29328a1322bc0e3afbfca99930332fbf80337c91eea8ac680b4e022bf0c53cb96834eac399e383c5c9c271a58b303c66058ff54efb9fae7af34aa2358e155ec91b45d390e27b9545a665c8ce2f5350320e9c1aa1f0d14e9e6f641bd85605970509c9439b8c4aa182fee38888c32733b03f65f15717fc4bf4353ee36eab915566dc10a631ea404ae8c313fcb51d19c1bb8034f58b0edac1f36afd066fb63ee2f0342fa134f294619e9e08793142ea1aee41003fa1d579b8019ebef254a2f489e3d7aff4fcd82b18a63c52558ca2f855413e75703796cdfda3b7082351c7caf4a1752bd217bc385be167970810fb16bd781ba43aa03b5d8901a3cc39015a3bf90b15095edca073631b53a9c605a0b89441d5ba842a000581f03803e1325ca2de75040b6c621b57fc0beba2077c78c59988bbcfce47edbf041010320a69d6da84dd3047ca583c4146d912b8f87b093c4fd36a7d87f9146e1e9dffb038b68b1202797c351d8cc7ec004bc1f29330c19a2e3356e5bb16fd1dfc12b0d9d03d230eb70061fcabb9f0fb216b8172ce0bce35e886e691a56d4f51e0d18312c1903dec7f54d66c49e9e6c3e621aaf06b1f8763465433bbcb2393fb3dfab44dd6a9803026b495d94e1e66275b085e4cf67f69949e872fd855da9b00767609f080fabc400581f033aa8b1b734dbf5fa627e20d17cb97fd3df82196bd88fb5f45b45ca365aa04109033e5c201510998472384321c1eb4bbe301a18bfa1499c7acb223b5d0cfeaa0dad038caad3d52242bf63a10b2e4e009eee39ebd40f0869171c3703eba088a59b642300581f032d1c0e2eac593a0fe62563fd994f3f5e6a14f888e65a2f6063f89ee53c904101038ae1e447e2d04fc59c2196dc0cb5ade3f056f3dd49df943bceba8852e261e29402197b7e031137d39988e166812d7758aeb3f0f20a09a01566a9ec2e4a02ffc6a808022f5c0362fddf50ecc6920d7067483d1dade2fbed51a724bafa4d04d61a07d53b4dfc32031de2769c3f1f5425a8b72f3222bbd2719ed7117062d06d34793aeb57c91200b303b4af2c923e823c4de967606122445e4f3696d1c9354cfac2451042e4b1c3eb2f0345f94d6451515fea5b18264c31a6a0400eda7d63b0e0d4824d82edf05e0fe1cf030046e560b4893a7450d1136abaaa9499b1f2eca7385589138be59100916b532b03e44b9e4b917a66f1ff69cf93dea78d6a1e25cd3209b5dd474f1cb1f802d13ffc03d280e85b8f926a7c4abcb79887a601634b12019cdf1a1a1ce8fa1447838a32a703370ac1eb3a49ef7dea233126a43d19a66e6c0668a07ac89d62a0d9ead3f4593803f6bba1ff1e1a9689527033e6f428d97d214144b8b0c352043f8db2661f20757303655296d2689f419322eda7a9da327ec445c5fb69e0c7b153c5ef3823685c58a803d39c4ed493f9142ce28979a6e1dedfdac57dcd0742a9a1d817dc277ce7ff377b03b7cf910de3b28aba42fbc3541c8b99dd1179af6138dced6fd41d15deae250d0c037d0b4085a4744138a19c97dbb73eb43754c495b92f1c06582e90931cc92c94510219ffff032c1316c244f8000cc111c65506e98093ec6bf28e42b7e2fdbea9e70701b1886803060fd38c3b3a344296481ef9856865ff6a2ab3ce18d85493fc23f82246a6891f03148ee881f694042fce3868c5e9dbd0082b1ea4eb0395b711f7b334ae789bc5e303f6ea5624204635413a74606d8e5cace62aba88bb6fb778e87e087affb2c01ced03107b5113d928a6787b6df8d25a0d9db32b327b297668a7a59ddc2c0ce3ecb62503ed01ff76e40c46ae86518b14a15270dd9376c58f641cccdda3a232e49f3747ea0308692c11159d4b9ce696f659a03e0d5aa949491db51b10217efb92a601a688120334b19306cf00430252c46faf5258737319d214197ec8b96b206a0fff6667554c03f9775d434f0fbcda102806ace0d1b19b56437ceac0b9647a341fc067f920e4e603529328aa1559ade973d3b494e158e8e09f563334842b34c0fb9aaef9cadff014037919fcaca3907b3c30024da5fd7c0890a522965204c2f80d90166de8cca7e72503f77e96f345ee11a80e3469e1761a7a84e4d89b7be9e282a36f3717dbe798fc9a0219ffff03b3220b6504f02eb0cd03c0d9f424e10597b398cdb8cd9902db7c40280cbc6f2803f00a9430c67758abd8d54a9419c2fc5ef94071b8ef37fc5546fb995a715ff7ac0377bd4ffc6e8cd7bd0afcbab57c2006739541c613808bc19304c6e38675309cf803713cc53d5fe7e578cb8a6eaf8a7262cf9af73d8c688b0940116d3fed8aba9ccb038fce72c349d96b257e59783417693f58c80842b59bec5305f543d0ac7e3705720398e410e925240a943bcfb25af785d8bd9ae1952bebbb942cc1f8f28424e8e0fa03ee93a699ab14965c748bba4a0664f3d60114dd8d856b1b67cfd33c205cf7dcdc0378992e0df00b99dcea11390a4393626943f0d9f7ea5696723dc49800ee77ef3f03db9cb76e31774eee2d95830bcc1388a833007de00482b22629ff3ac6bb03b70c0219ffff0352c99cd08010f19dbeb7a6bd8444a42e2c9b78432250b00fef7d48bff16174e1035dd34ca8e29c1d4bc0397d63b74ce89c72639cb9557bf297722d00c3eae0467903d00aba98cdecb0ef89104e606b075d30e015eb3be510cc04e56d449f39de5b93030be54f4adcbda8e7e517260a1ff526ccef0df4cbd11dbf43dd7064b7b3629a0a03a10203a8ff2d09ce830f0960bb8c6ae4248ce3ca214bcb287d3b835b48e64bd2031c2fcbc29bb9b88ff4052f9bcc76c6f3eadd7026a967689abefb3df986731b4203115eb673a5e321373361f239ec93c950ef848d3c967b6ec28e5993c18f1a7d9f03644b36f4f66d3fe09c37f13a6b9572a17d93970ee123429943be3fa21c96067303c3b3656fe73de9fc5caa1e3282ab702b419bc79004837453b6dbedb45c1d432f033a7389f2dca3f28ea9d0f4fbd2386c40ce0dc682a5aa1be606472ea5de914ba0033fe37b193d2446f3a65294568474a596b92558c3026b7d6030ba7d2252a9291d0310e0aa9049dc0b6bb25362e00927285e3a3b5f5e1faf2e9aac090373c6e9d98c031ce566a3d85ca0e7d459fd01da9be7538af5b19f211d98fe8270c07f6da2431503cd3609834b00e72e563d2cfc446fc83e2cfd6fd1b95a26b0b7b1e97990f440b103a494309fc4d8a35f2aa12339817887c0c2d4d907f22c4a745e198ce57bda402f033951e06b4319b8f5c936faa00c8d41207a6d7509a97024937d6e5971285a33390382fd9bd7b3caca2553c7090157d0f4d26366a0f5f8c0a38eeb8aeffa0545efab03399558d5be9520d1bce27b6325fa626db9046ac6d481ebdde8b2a0261ffe417903b75ec4dd6093bd67d93bc44f7f2492035e7cce42fceda8ff638f3ec711ad9e2d00581f0315d8025f9da9d41a88fb443535020870edfd26374f996f5ec69cd94cd110410100581f03a498ab81e079cc085b6879ff4d340941f067e50f0a27df4733383b3bd3a04101039b83f96877dbf1fcb2819ff480ef385f9063b77eab7041d5003d16e84a320ea100581f03586b322c54d0dbb59cc087d04caaca54009a61d25ad39fdf4389299b54e0410100581f03be86f578f543bc95cffa184d359b4523bedabb5e29330f6947b2cd9ebb50410100581f03499173e50a340ad46901109a29388a972079e4b2c0617feb172fff89dc70410100581f03f767eeaa933141daaea54c1927e184b6a0ee8147b6e547da90c5c47b6460410100581e02e50dad2971456a78fb5cd6ff6b75019984d6e918139ce990999420f979411e00581e0207b21a47ec85c5fa4be23c561659689d8422a8178778a877ebce8bba9e41010219120000581f030a3329716b3b1eb3b5be54a8838d41922a106935b481571c21f7cd5629d0410103733e8ff6c90250a5badd8f208331860446b37d03f282c6ddbd51b27021a3a930033d248da1c2b41dd51f3766f1b9c049e58cfe104699d11f38534104ed57a1effe00581f03e82157e507c94f7f15e508a103dd704447db4d44dc26ec4a74c89e82fe0041010219df6e03efce1b577495cd7c0954b08e8d8f2ab6493dcb783479ca8b77bc161e7edaf66503a6c5872e5a6d782cbd662944ff24afecbc0114cff24a9bb7c9cc1e270d46f6ea0219ffff03cd1419b14f615ba5f56fa18b09d6a4040b0235d875cd4ae95887b114479869be03ec73939ab1c223945c3024127fad967f4f9860d2f6fcefa4ac83c37f0ad5050c03ad2486d23ac221d429c684360e1224d8ef0926d365b0f54b68e6d90083a83fcc0368c55fa1bdbec2b6067c5b2ab15b479eb7c46c78bcb218924b15702af310df9a03c9f4471dc0598755b1afd9b84d9ddf756611532b91caf93877a6c0482a94a158036c0161276883f9e8abb6a7e7d6aefd48b7590eb0dac2192e778766b22fa9e365036c30d4abc20a16a170bbbf8558d4b3592f4b0e456c566bcc6e31a30122c2add603b1ac8379658a53718d9ecb19c931f586c7d6346f750392205991b6117eb741030378594d630fcfbfb2e5d56280d0bc77da9854b915829afe51087b6029866f2759039c7e395b66390f2571c98fb4da1c0a5bca776246430c8afff598f35cdebfe80f03ab592d334b84af7a8deeed1d62c96fbe626761d81b2f69cc3c6223c306e9321a03e957bbf7bc74935e48f8af1f7e2ac1c2578a4a862d21c52cf73ecd616b43db2403134af7c88130c612b6c257a2886c2e65b4dbd87a62cbefc0a1bfcfb09bb966dc0219ffff03fd953395e1f7cfc9afc3de552d3f8162c90ba6085904eee659d096de10e1c8d703c0c998790a16dd7939ab6320d0518a91813122155928f5ca5a7ad6e33788a1aa032f3783d2d409a2de722555c13cce3586713dc7351d8824f5f9a4976754696de1033b6271386dfa5c20f3366876dd2d13af665cee25072716089cfe25891cabbb6e03666c5dc59ef7554fff401ff0584e6716637caeb1d54267b678854e69b492b43c034b8026ef54785e92cf70dd0ee6756e67d5ec42a70fe36691a0d282f3107e28570309968d87ec0c63bad01cfa64ad2f4a24daa9a026c64411855c3c1a40e88e1a9503c6895e09d57e617699e5b2f43e7f778794cd1b792783d95e9c64d86bb0cd02c1038ee36c4e64356a7b979defb0d7d4097368800b7dc552754fe274fd56715ec6e603c515c23899f0017b2f80e311fe2ad06d15a00f8c5caf8d169b0ac0d47915d03203c70450152f5e6d8ad1a7e417f9016ef47b3d36728133ef80793db84d8a62117a03f1865bf33001bc3743d35e997553dd7173260a30e1e3255a0274673d147534690219ffff03ffcef7a4485f499615d7564180cde00c2542c06c61b72fa4c8a2c03cc6f6c3b70393a30cf8f3132b2272cba1ebda0fff745a958aebd60db91271396dd6d87e0d9503cf7d1e55a1c1f99159f8750c87e79592c4c22b369c50852e617f7dc51da2a68903e9555fd5bcddd3958e522b613603bd09b1fba37a5c3ba2ed0d53f39b8c8add97039491e0094f552675b5bb6e5d563e52eeafa7a5b7209ad9ce004de429987d0a36034f2c1626ae592e800d603133d29f46b686f982bc99bd45af76bc7348e895d5ce031a77a620e16517436e7267b11f7ea4e62140be1aa13e43e021e000a6115e891203331af880114783c8228cd3ffdb8f2fdea989683e30884b1e7b149b23286adaec03f71b210800f574b29ad73da2324085efb4fa36b545d08870e38bcf594f200fdd03c4e40be5cded5aac1d6c81a99c71e8e9921c0082df713ea6d12e9fbc3efbd028038b701d9a85f7cdb93c8ac4a316a0f657605dfaf0cbc0464ce669b5224abf15b603e4209bdac01fcf86ba39f9fa7cc4eec4dfabd1dd0fb96ef3d4e099e0c3ba8ae603186d0ea3450d968f8e4d9cbb3f6373140e63e2514a309f6849094f751569828403f668906613acafe5cc474414f33212c9627ea0d12c4392b068bcfcfad65525fd032da8e40fb471a4812a388fa518a44f24fe37dc3d06303ac677b9f39d5ac11d580321bc15cd2741c298b679f0df5bfa056e26047a7c0e9644c7fae05f7651781d1603ce26b034247e9674432a3ba3c99ad4f68093cee1743ec64ab625a9213f7cc6520326b3e52839af130a9d9548f6e479283bfc1b0abafb3d8d940103acb7e39945dd03a73cd5f6ce3701d6a177f4208c7bdbe79d2cb3d07cddecfac985549828874f0203dbbf8e6867fb349a3b6e770c473c8a8ba6f549b28935e8cec5b86119cc4067cd03649216bb3640f18f7d0dec90b36055c6531c1c1c0995494fbaacb44e4e364a6a03570f0270a57dd66ee575acef4795693636c456de2d6451217ec1e0449808e89503a3f1c2535fa1cf5022629053b2ba8547e2e7b2cbc2545107cf20c24d3740f31f00581f036ac680551a370337b26000ae7e73836a0897c9cc0b4145fcfeac391c8f40410103a4c6ab5ed239ff7917cec51b0b2f645fb6e2bdc572cc09b4f5ccb5945286060e03ecdd4bb60ee37cbd5b52a8ede174ffbea52613b446091914ae9f7178e3db1b9e033cfd4938d33a408fd3e996e829a9c54c26a5ab68c8d9b2613e4706ae72305c5100581f03390e251d5dd9c115d45ec792670ea4f6ddeb59a4ee1e0d7300b5ff584330410100581e02e7f8a1e363074c006c0b714afdd04c10768ead7124b81b37f8fba849c0410100581e02b7272bb46d49cd6019b04ddee20da7c0cb13f7c1ec3391291b2ccebabc410100581e023edb8469eafd843e7b8ed99d918839215b5385170057521247984309354101021904c000581f03fe4d9005442d1ba9e76292ac3640eac24f50088a18ab0761c40dd62e61a0410103a067387f999c5fa3fbc009084578de4d12313a07fda3ca5a3273a355621feda603626255d4abd9f7570b0375599a157a58991ee14f244da57db839267e94b4c627014108034d14c37c3fe5e2667a041fc689e1ae1ca924c18d3da4708c28fb67b4eaadffc302195a3f030f4b5b338bbe3b0c9803cd96ba67d413140efa659cf8240313d4e3c880aa726b03f0f25e652293f176bbbb76fd1d4da50ffceb7250efa717af5e6565f34c7375670364df39b7edc2f123cfe56a43c2c4be9676d7f316dd441fb30b4977ae42d2f20103eb4a880f46d0b4f70e3cdb53fdb41d4f0522445e7a77fc1d0560119286c6f6ca03d834915cde4a62cb1567ca908f62bc55c62d95ae03e3fab0d87db3528ce561810381f98a3db94e421438f2ffb77fe33cdcb79f526dd3ebc095dbb14db084eb8de603d94aa3e4a86f33b9a2b922575bee3179b2aa38440c752ed94f115041e61e93f403b6b2b30268cb954f7fa3e9024119f3edf0e48149acc45f124a533dacbb91a82a03355b3a7abf5cdd57d362504f60405b67c1fddd232d0bcbfd1efc7f42413684f803d686c791f13c727e9dfedef0235c4b224e1c02c0d95240d0d90283548e424e74039e8495756288184dd07d4b0cd94232b059c755fa26a38f99a569bddb2c0a5c7f03fd123558744158d44b3b3943e8308362ade19a8f29aded28bbbc40fcf05ed54903e1d249909ee72174eb9573c0cb85ca47591cf54c8ebd3dbba6dfb1deee3180400219ffff03ca2db07d2edee9eca88da9a4b7c559baf98e5bd810ae601b7945914face0de7c03d35ac372038c06fa4cd4189ad0d2be92964346b5cbccd03c5a4184f860685201037e64ff17237137c8c95aae1768313578a306ded90c144033cf272af8460662ab03a625632fa5bae6c7c6e5206dd4556ea470200b01bb11685337ea997d1a2057ce03381927f75c3f7532049e593c3ddbd84b74703de68ffbc19ff41c0e1abcdf00ae0338b632d7f735865c1595dbb8bf13dfb3c8a85001e8856b69b9144b7344e43fc103f373b9d0fc6b6b786442e07c14900f82dbe8126689345df8e0bb801b3e698da603d32ebaf1b12ff49e72a69bbd7940a1f4556932a46879fabd033d96ab0b263e060219ffff038de932314544bd4d9020b2f05e2ba48a5d0275b1375f56259f8e5bf4ee889a820219ffff034906d59f56f9ca45ee5b2d4d4bdee7d9787d5133d1f397a0d79998617992e4540363ee7e901bcb646058e55b879339a0a8f4da30c38745845554d29080e042f4f203e78d075dfa2a9a753bac3b1e47f1f79f6c61a091d97f64f771309e7d3b56cbae032d94f025328ea468985ad5081296fd7c21002e6fb7265dab9358be0b6f8bf58a03b7f698e47fc3cebab8aa9cf8f19b03a31e0662ab4fb31832864f79005a5aabb603f40bdfd9409339bfeeb022e45eff65066e912fac2c2a25ed51297fae3d9b8ada03a007ed3dbbde1fbf8b1701e858f852674fd66a6f6ea3f8d7ff04bbfef8cd53740304589eda3d8c2fc98f38de4a88aad6822a9e88e36fc8fa9caded052c41a5897503c9dac18ab9c7d8a55ee87a147578d7d9c2622c021c75fe0c2a62702ff3904e8e03901945039bc08054c3a230aec0a850243a8672e037b31307768e7703cfb78db7031e429e5291e2401d03b33b25f38dd1d1179e8098d2acf5dad7a5edcb2cfc680403e30079b22cf3721a1ce796b4a71c1fe10ef17250e4e8df8ada00a7717025681003278a420b1dc0256746d95ccfa62bb7bd3ee94bcff91a8aac4c5ac114f8d4b2b80327b41b1cf141d1e0f38b9dc1df835052dfaa0bb8457e97c65cad7498f68fbc410380635c6f5e174c0b7d72811f41751d39b4be81b9569b97cd7c0ca708004a457503403296a5651825b077093631de8629870aed543d774864990acb66b09d84d0760358bceaaad2aa877a22c907efd95da0befa2114d508a30bc725e0f2fe3cff893503f1fc211035f320b76a526acf8a4610119a942ea146cbdd74b42e71edd3d7332400581f03d2e499a599cf58ae80bbe5e74ac71e4710b1d24c2b6157a9631987d9c620410100581f034e653c261f9554393ce327a4fc065122ca1e27416719bf4051dc688f6300410100581f03c2d19a8c39aec336408234564155672d9dd6aea3753daeb94a6d55805800410103747fb4b416d3473c9a5463c597d4c86fcfbf982da27677f3fbe942617f208efe03a60cac7ec75f8191b53265eb1892b30119ebe0fb6b16ade4f189804af2331cd500581f03ef765cbcd182274f2e559237c8d4e926c61b676fc77c7bc38b85d03e0760410100581f03125c2e41fabb5b2e77d6a79bf3824eb0dd4ac7d7ed413ccfe0221f0e81f0410100581f03798a35e646e792b5a886ac351cd25016798dcde5cdd5e6de59c918d51cd0410103bc92c6bd11c8a8a0d68c3db966d6a5734028f5b235ee9396ad03033a892a7d400301c6daeec43bac960d550c994d5994a441b98ea118c519bdee01a68c39f2791202196b1f035274610bdf1594e343c2cc35c9e5fc687a85c2e0c135afdc0f1efabac74241a20319641b2714113ab4c7faf7a3b66d2019656606ed2890e4c81ec3dcdd5fec552e0397fdf92e3fc9b34daba52184f141ccdf0dd124fe9b5ec432caddb544fcbedad20389eb2b6a2f0d5e67b90ea98f28bbb599ad639e17da99f5a71bed5eb4818f3bb9033dde4de8babbb91b32d2517b00ce485524c11f0a98fd1cfe9bdf61d06288978b03d9d0a953fa98df435f6f115e2ec5aeb820882d004321994726ba8fef4846067403a16d3bc099fa351294139c88b6aa3d98dadd0242f4332a79b1bb79a5cc527fe703574ccf6a72f701ce0c11ac3dfa6978716d29056cb9d43e251374453b89d7187d03843110b3ecff23f8621cd234188d6b0dfc24bc3ad859498e55d9f9114169db31033aaa515796406639b3b71887fefbd05b94bac7d3f3ead0b3b9b12b2cd1178a3d03ef6911951675bb9dc8f944ea86e06a794d1d0c183a4dc06fe38c51c0ad204abc03db98bf02121d5e5ff9263c937100ae5c83e3fa6842b29aed89d1a8f5c8c1499f038146076d9613f4430cf46e71c0f87de360ecb63322965f10150b144aaa98eb3d038bc257cf04292fa04d2d7ba891a4a0321ed28ce6bf4ea047dfa2195d3d7e652d03b0b7d8b3c97e4f9bb9d1fe6253b1075aba482d827626e3a1281c379494158a4a0219ffff035ec598de5ae39ed2b105f884dfa642967fe63e6efeb84c8686cd4f2142817ab2039c6b4b1e378bc52930d60fe82e5f9a202c13b6c98d4121bc5107451edf894a0003a565f559b4146ed82f449b1cc9a0ef92814ccf5e95c0a2fa53be647a311118bd033b64563c16bbf963a8d24b1a5c9587c693cd298005c576060af6fdb64ca6072203ee13fbae61fa19bd4a2bf25ec4803fc3403f89ed9794fdbe266deadee384794503b67b534e2293e130b5a0b0f560e881d4b148890b392f060ce457eedfb7b97dff03d209bd5850d8ff3aa420675f456e5541d4d7d0727b315489470b72938d8158da0219ffff037585c82cc3528e74c4197428e5815e7e1a36185876cd51e034fac35271bb59c703ef1aab5de295c13445268f95a5688cc56a4be5da96e5a57bd2929812ed7817cf037782b4052cf3668d9a0122acd55a387a42a4eb149c38490703f0bf2583c72e12037ecde9f03c795ef5a0eca3aa48ea9c1dafcb6f0e45bb4f2ac6193af2735ac4cd03a20bd7e13b41b36bb27593dff134051f9be89e12cae98aac54daecb1b1d0fea90219ffff03134e5c01158a4019cb946a7cb56ce243179c6071882400a874582e35135702a3036879a4c85f0cd3046162ff91fdfb67387214d858cace2e380e9c2c1045a26a90037a64c8db707ecd70955b2b8d1ef12bd1add21c18c780ec070a92595615dbd396033b8070e2ea6bd04ab035c743e32d435099fd8e4070fc14b17b1abbed131d699003cd3df1409dca064d31b0d225c47f418551961443177c15b97be5c69f955ad6790338f9bdb5f1e6210e9948619b6b951363b39814dd2906f3c7fbb845f182cf978803af2d0b1ee7f9fd2e898a035f5bf04768107dd6f562711df413c575911f3c03ff030cf278c029229f5ec19b47294fa8d4572d9c8e859e122d1b23519eac2dfc6e3503f71a9c51b0e50b5ae7b5f974645590eb431c4779201ed1042ebd40c118fb206303abd14183aa9e742ed29507b22b0bd5d38f078596a8bcce79f37e2d20df5058d803b357ce8e8c8df3a5367dd54a7fc7b6c74274608cf0d810219433d176b0b5223f03a2147e49aec49d56c1a795c61e499cd30ed19da31db70671303dba97c1124162030c3b6946d382ad7a11b1549b8113cdb2a51a88a96e953ff88ab106c4ac6b746b03959da71ee3e82d4270b5415ef66a67e01c3243617dd2362858873818ea34ad1d0320c171f1726755185c46d35d70615dc018703fb8131f594d1d90c992ff801bbd037f4db7e129663ed2dd9f16cbfc5a4d001abd9bb5575e04037e47f97284e7ffa50358637d6df499c83f1b815573505f7ffdfc0dfbff2edd8c603dbccfb1ec80d0bf034a898a5a1c9f95d71726b4a77fc336aea8a7173dd0b2ec77eda6fa6ff43d2881030138c44144b198cf9e17ec11eddd2b44e1962eaf9635b8706160c3b851d92a9403bbbef18f1c385ca80d113a3a93568e98b8dd88088a0f18f60b993e1a39cc431803265149aec3f1710f1c4189fa688a831383f5685609dbb789641ab5b31397baf003ac57f6fb37b6b7938cdcaed2c3d2f33697623a0f87831ead586cc560d68dd0ec03b3589bbd1f7a62768bc01adc0f6d05db3481a06910b29108a11a3e165908990d03da7f5d2d659af89900b1f9df008a3684f034fbd1bfa38ad178c1799f97057368033abae6338238327a2ea746ac4bc550d69e09ae5e5754fa189f32c761d9a5023100581f039ff235f858661fb8b2a079bddf96f77d45b584a4a48165b1bd5a40a63da0410100581f033d51ac04f719193ae55fa0428004bfde7e50b841d84ec2ca3619f797e390410100581f03a7191091790f1c55d680fc4dd436dfee5de1dc02df56741c475012964080410100581e02bd606807d0651d656d6a9cf3e149ce46e8df9e03256b6cfa6f8625251d410200581e02397dcacdfba4445c8a8cb001854ac15d0de24e7b595e782f36d2f6fec441010219082000581f03ce8f40c146d9fd7c024435924f3433562f5f3900cd2cfc7c57b3d3d9b6d041010367b05b160f7141f0b3b64fd12e232b7efc2267d687abb24da430bbed61a3723900581f03714e90564b2d632145ebfd77540bbc2239281aecad7828d08427058dcf20410100581f038e951c5822b9e4404ce218f7c66f75da1c022045ac9f02629a771c17aa5041010219ad3f0314de61bfc44e2bd0b7b75732082621f832f486f78e05086645927004396a37d4039574b9781160240c48429541c8c813ef47b8618c85cb24df2c939565fc6b961b03f69e769d9fd86cf9db1aa77cd5b5f491e86af14821d330c05adeb1e725a1057c03140c21371a66a4e97c419c31333c53eee62ff59bc9df15086bb061f7c083020e039b0262c488308bc2b60fc25660b4a33df2509bbc09a81a45553cedfba14f6a93032629dbedfa818a5894cb1362dbb666462ef3c657223ebdd9042f12216de162100338db9ffc6546e08bc0bc8d3fa9bdb1c24e245daff6e6d602da583bd60b9221ef03b091b963c6095acdbcf2743305eae7ed5ce368a531aefd41c2716d7815934b2703d8d8169f5d44be36bf69046a6a6e9a939e8182c191dc48cc5b78ce18eaae6e580377235ecee08ce7bb861a7b80eee71459af6175728683a200278c48e60342f9df03a1b3c2a669bde49fa1a7b43974d87254527d54d3190b8ccf39794f9c0edb9e9f03092928735e6056c988cec3ccbc6a9f1408d1d3c15872e18ac450ef83e6ba3932035eab640711bc70a5a990a91216ace52f74725f9ba640031fa1aa5ba430efe0ee039ebf83801033934bf3b09f09211994098ef03ba0a10ac166441d93ead87ecea00372211683de61e6a46de9aeb871bf616cd2814235e298f1a1eac97165c0e94e610219ffff03aaae1322ec2c9f1a818e79e0d7d12e0812f527aa98c2a36d376cec09cee9f542039482da2fec20e7268d1eeceaf74ac3926f99175399b99b43c1d5967111520ae3033ac4516994038fae67d0b9c8e8157e5935e2b28470dce0d03f70b15cd502439d03bbfc8e23cfba50584849e0ee1191b72289b9ac7b524e0c0fd62cef8df5396f0903c48723a6cb85578b8d038e5ee8689ddd266dcf04de63e04d1c1d18df45ef864e03ff4a96f6a024936382163b5b2d35e38e4e227651cd3b82e80bb504cb51f23cd103325f066993d31431e697d017b266c1e88da795a93dca6f55b450e47d8b8235520219ffff03dcbc4e1ce15d64ff665943feedcaed188446e25622ae02229e86becb111d3ffe0219ffff03d68f3f092a30bf8d572df4379f1f4222d829510419a8031c838f1136fbb51a73037220ddb0162377bbf75bc997f9ffcede9aea26405369053584c7a013da509e18034a0faa902badd4f5e21e7046874854f014a1a96a72a1088557f4f84e568733890349e5a2d52581c554301662af0a949405b43cd1d0bfb88f15d8a304beb306833a0335796d63513264fd0ff68a578fb066094567e3a1b616983d5d5d70e20aafd32703365f438983af669b54a0e4adf38ab9f78d16c64e5493e642aa8b2f780ff103ff03bd971c36a76f678dc53999ef2dd0c8e65cc99997414af3198065605dc638f9f603e353cdc105e8eb91fdb06e32c008cf651833055ae63647964ff8fe86f9ee26a303711665cce0364e89504a3ed93a00ed1dcc2aad5afc33856737adc6540c4d1e040348e442d01a479a7ec091c9459f0ff389d6cf957b435d782ad72d2caed40c87cf035d488624af28c99376794cc93160a33c05a541e8bf8d4d893403f4b0db52565203f197ff0a56c558e5487ab66c49d198c97841a4bb736bb94fa71b22a07782b5b5030fbffee63a9cb0024579b41ee8ee90ffed0d0de995b0f1781574dc6e4a9ba4b10365026184bff873ec42f557582b1e0057627bf5b18da60b932fd9ff63bf9a21370379f2348e48913b47f0e02e5883a74e2a834b6ac0adb8b7356614dc86ac36c67703a00c5a53902dc242e61280d6a27984ea87c622cf9d3488c8cb8e2ff343b0b34a035260a2a6fce9ebc4d0d86fd6fdaabf320c3e88620518c6edfe0da59ead2e4c5e03a426676b058c0e233cec6b72576414c18be63e6797fc1bcd1bab5cb902fa31b703d4d0446677a8b0455373d0346461b6f3852343cec6848ae953d710b0ea30a6ea00581e0284bf47586c633e618e6043956a7c93a6e2fac857e341f7db7c9a492900410100581e0213d537a3edcc2e3b4adee84106bb05fe48be5acebc7b18c1920c51b635410100581e0339e2f547528eddbc42293daaa5b7fc40e5dee34d248cda9d39e4c78ce0410100581e03f8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d0545fa60726e62c50af45ff2f6280c468da438a7837021940100219484003cf23298ac6f553f6f1c0d835d442026711d856121098d9d398953cddb181222503352006994c7389827b95fea8565c5ad60b18edb7bd2fc0a9682cd6edf19cbae200581f03c1f28eca50731c31411febaa5528b8598c34c38bc9c698058eabb4685b20410100581f03bfb95ca6d3d2bd7f998cff458fb4fd760d98b738ee4d1ffbf2132982ff90410103c2d421df1896f7d6c4744c800fc9e3e647c591d5916c81ffac38ef26f0092f5700581f037bbbed51c858c9b94f42f8dc1c454b750c697547624c17abbb76831ec3a0410100581f03f4a4a8ff17af6b42edca6d12d16c251c0fc274271b3ebbe90a27c72a67804101030dca6e76b0ee2da1ef80c112148b2ffefa2e36071d7b870b7b2fdc104ae6ffb100581f03facf87b272481c2aa50cf8eccfe8ca235d4d335bb6ee9b0e361cadb873f0410103c12059fbe23f6fc796e3e5aabae52bc92480d74d43855cff97767276bd39c7ee03670375c0195f1e694d520d960a8311c686d72f0289232781448b170aa3e269a40219ea7f03dd481873f68313036a4ecfd0cf44775aab3979d96cda7f57937489209f306b9a036ae8e56fe65d4befcc11f3b727ae8ea4ad5bff536bc2ba3c3839d5cb8663530703fa100e317b6c36684528e2d96bff9ab0068a04658d193f3b443f6fadf23d188d037cbccd715dc873e691d39fcadc9d3ae717fbfe2c9153d0fbf9eca22d762fc2fb038dd4522e3c965cf3bf0ee436bd6aa9af7fd85b20c9dbfe5c27a23a6a20da7660036c7262a45a43e800847915207ae30c6fe902065289e4586d681be351275c2d3e03367ae74fc8967a8cfd5e7b730f59d8313efb3f13e14c5a1534e4a1d4a2cb2aec03b69cb6cbe87452c42d466246e8ec8bc43abbe862bbf36ea5493b70a465d870cb0309e763d736d77a324100b2fd3d8deb59990483b68b798dbf41bd4e70e9adb39f0323cdec7645cef742a6683eaca73d1bd476588c05367c7e176dc3782891534a3b039e01eb300df6127c6c978aa1c0208c534d04a8445ccbef304c6cfc57e2459c1e035844e5792a1fefa3004cc0101ad67da9d2b89dc6b7d6c09140345ba93421415f0361fc07dc3355f68253a44d31ff38141c1e8ea354651ff094334018e3dea270360219ffff03b54fd2e0af6ff23371e47082f01795792c8ef9be02c3b51fb2b3083488060b2d03ab265fef16c3c09972cf1155985b7d4ee4d129aa1178cc7347afc854ea9c891e034aa603cd7a741076f44529e42994dec3cd8e4912c17b082c78956e7637578f6903f649c04d161546b61f90243e7bb81e635c4953101134f2f61d2e0c06d20cf9270219ffff03dc926a91a2d7b7867bbca3aa1fd88047a69ffeee165a41c841959510fbdea28c03e6d2ec23cf880951e37f4fff30a49e3afde3e2891617c00b261dbab6e78aae67038fc9c0394e63d5c90dfb5692cee8969594a7d5e20824c8d8fcc4c81f14d789d10341428928291836d14b06cebe640c7e387b9158b2a5db54ed07d06b1fb4dcd5b403afa1adb2099b607a13567c5c021508df2e108451df6330550dd262fb8be6505603eecbc4ff8c69d8d2f9abe2f1d6f8cfedb6ca065d4138fe16bd14c6ff8d1c0f1c033737cb85daa02a940e1b66bae7da366d1d70a430ecb8d41cb570308790eea2f603f630fea9ea215bfaa1731049c4da1c5ac5ac3d683de94dc2db2bdd37f17d17330352fe877847baf06b21e9e3da0d9ea18edb80e5ebe900057b01ab4e52deed5b9b034f42e0af40dae73b79040808876d6370655f50b1caa2f00d8b6661304d95da8e0219ffff03940e43601062fe977ce7b423b5c25fc9ec4ea66e3698f69d6c93992f368ad2d70306de7426a148bfe3beb2d8bc1355b8cc771b85b0ba1a74f3c444495fd0d433aa035f302e325025cea777aa76116c57aab4ced4069fa49b8dc967d2fe48773573e303c475b5c80d926bb8db8318635d89ef463243f1281fb69d0603ba94eff060a70d03c80bb9a1371266fc9ea912cfb5baece2927ff543af85d1f58777b2993270d47e03f2bfa3233f739a4581b60c31e1c000881bd037063411f1391db89cbe48f9bea803058d1c90b8ce54354f44744421069aed9e28d45436c9acb54260d892c7c9775a038c626ceddc2ca03da7ea0723c0057cac2d7ba562340c682d52d48d1c34d6d8c103fce9e686babb262cc266584cffdca0595812fd7897d37cf681b592f4f2d98b3e0327cf71e92b8bb7db1a630ec00b763c8b472d497ceb767b31b794eeca5eab7a2b037d02209c1e62ae37acd4541ee929a665363c6b4ff9a0671a9fb24c3ed847ebd9032f17d01f0cb6823c376f8894fdbb41991ea92c16abf9b1b8a190bad05ab67c520303312adf128253f30617ab048c33e84074eb035047e04a462b41962ddf443d81036445ae2d12baaeb89c54c46dd779213b893507d11313d5ad03f3a32f6299167e030a366790d0606a4981618818488e2c25d3cf68f9819ab1309694d0e7a29d1721031f07c8710f6113777fffc7ad844707d4c3c57537feab75866b11ad983b2c85c9036ef3620a53780bdc25025a5dd571db5bc6d33412bac5da5028aced7cd182880103653d3fc4e3263ca8803a4a30e7137b389c7e918b23448ded3a64b2d12a3377e903eb36a64b5f4ffcf95a448cfedb67d54eea850424e71997f5c68622cb6b66499903accf71d095fc67553e4b1f40e85dc3b717bb548a3739e542cb86fe26fefb26df0393bf45c4c18f5f006d6dd0f0fd92560d9b5f336d9f39ce0908c278e1fb74e6ee03d258702758a6661e4e7594e46939670b7768f9558399c95985011130a745900f03ba897e335ab63c0b4a0087a06a14858f3a215a9522c3074b59f819b37c4b0b6a03f1d8ed554d9a19810450a16b6277cfe96f7749704c8124f844694553c58aa56c03ad2aab433f6ad0771b0c8bf3eb575a0c287e67872f59ce24d20f098c3f4dd2a403a348bf51ab5432b4b73fb9245d88cb9687265af94c0bbe5311ec54670ea2b64b0322e98a7049d3c46f88d539dc62fa95cd1ef522fa6b4de3aafd70c5574c5335960376c05ae4f998f943087a1e7234fed42fc1b9b50dd33de39388b2077cec3058fa03795e40ff9853ff8bb20c4d3a3965b6b5a71a7907091cbbd4f39172bac330d2a503536540b37e3bd314d93253218299958872b457d88bc11404a003ca19bd22257d00581f0358b17d4fe1806e7636d7b18864f59a4287adeb0c8b048d5a414a1725f080410100581f035c23a31676073c7528716b4d642b8e4d23bc4823e91ce62f95e4928161004101030db4bc2e6697b45d65733124297ddd9e142f4828962e1ef437bec8edd45c605300581f03010f99a763141ed7aeb7c74b584cd28a52acb7dbea338a3b5d632ee6b36041010350022e965129cc68381c69c0fe4bae61eeea1bb7040e0892351553d217efc0b003c16c59f57ab38b7b1a51c32aa084cccbb4eab56647d91c8a7f36bd3b9017ccaa00581f033ee6308d51eea3413854783d701c9570ae5a55aa5f9c343de697972b8930410100581f036a52dac846cbc340bbb99000287d2cd6fbb58a8d574479264ebbf3dfe3a041010313e48a6fa6295410ca7bf8055683527edfc743f68a8e6169a03c62ec365ced2901410400581f0315e162b0123877b6a3408f43d4530cfd354fe143e87727a9e92d38224c60410100581f035424970d28611db70c29c2adad50bb47519dcf335c08c8a9a227d7f346f0410103dc9b69b2e7bc816aca9af501fbb85356ef4f97aa692bc4174a117ca9a8044ddb0363efe523f9e477629f6320297f855364a669a2b3acdb4d5076f1c7feb0a92f0f00581f0334eb5c3197806a1eafef1a7ee772286cb0e25441cdf14aabe9f33e9b39c041010219f7ff0374f363a41a7b0207c96e2b8129ecb9e8ff1c338e0802baf207ecc57bef795c5403f408f4be53bacecd9e21e247de45894f3f5fad3a113bdea7a5960065ae4bd90903321070bb7470a5cd823e9dce305b5f5b7872e1b04eb84d34e0a732619ac6272c03c6d1e8a53c402fca8485d7c0cdaa8f3e8ca27b3a1987a96153b133b0c60109700317afad7242baa9baedbbcb5622172c2768b43d7be88a06cdf95359beb2e2f7fe0321314d0debb76509fbd9fe739b92b94a47a9adb34e9b7266857876fcd72be4940340c659fefbf0b09f9449b392600b32597ee70f61f3a37bbdcffe3a24a107ecdb0219ffff03589e9f8f3ec9caac7eb1c9a3c285b529681104a9c21c222829eb715a10d37f5e0308cd627dbb0790e8672e178af08344a5c567181c6e8b7ef5ebb6d5651559480f03a721e77b10fdfd32f785008a8f00a8268147e731585e42a714b916490721cb070306db33b7b3a1c47cc530263221a78aa0580fa26e7c2ec5ca7690f70893399dae03338af029a9e201c4e865f92a3a629af5b55345067a2eb39be810edd834d6a5ad03653f02d2048ad46bc57fe89f570fefc55689053266ac6b95080c14f5d4c37e3c0219ffff03566d6aefa01390a00b956d34a5b9a20eec9a9789e75f1264c85189040155db1b038b6deac2b2868d59a8bb08b2c49b8b1a97466ade713170ca65a957c2ba427ed903f552fd57cc69d6ac1f296ee2e385a991ade5885282d3c3bf5b8d3100d9a748fe0219ffff031b9470246b6b93af2b96f4f47e7fb6e88314c4b3cd9968867472e69ba14d8eec0334a3e3772be2cd546fce4da54202c6919b3c13b375b9c8ff4e3404f88ac865dc03b345ea6fb8652b9a0d7e7fff25271b2e5ffee1009d052eb360044e47b1c64ecf037f0094597cc73192fbf3b504ff284ae83af0cdfc983842cb339153c446723662031a156d7a1db4964ef4f62292d511ff8d55c67d47df8bcad10b08fc7c9b538f2c03721184d6428dc956dcf3334fee43dd8033cdbdab7419e4d64fd4df7ca7ce516b0391d0602cc5274860023f367601e47fe82e292ce7dd707c8ae370420d9080b8bc03179e9b080d1811be90fe58cee9d617d4dd5da4303006a20dcd78abed50bca95e03385df4ffec6c30edc60150a4123bb2004e1b2024355f720e27782d767dd2d4bc03ab4c6668764c6473026a8a4797f8781b46c297196910a4c56370ddcbd8d9a2da03d425d0288c0a9ee89448943e1a4018bbdc1eaf4bbf4108b86947fd5701bfabd80355c79b03b32d98810301ec535a3891f180288e0cd9a322f9e86b5da33d554392037fddd7456dbbea5ac1b2f12452c42fd5999856b9b4c1f62060e7aeca0c47252a039ca56af181dd3ed2b8fe62e2d0baf4123eb297934aeeb2f149cba05642b7918f033c7fd538b3058d511705d208798ef0ab58d3f3e1c7c32d893e2b949c3a8457a303021993b3515f0f7eb940d89a3bfd9e3dfffee2d70c4b5a087b896da763f9403f0376c50029e1f849f919ae60358a6567c5fade124f7eb022a82b9c2bbe67df15f003f6e6e3e7874856b1ddddb0e8f2c13b84b405c0215c6be4876a3876e7bcc474830320a000a87bbb06c098892b5f1b39a186b3f9bbef97a633b0494d577e1d3c039c034b2eafd952634daf18e2049e6418cf287773ce6eef0e05fb2b19e2afb8e16d0403a61c0df3aa1cbb8f304bbd774140a346ed1eba05c6d24e1bec1a67c6a94518a303d9100e93792ec06de26fa5ab8c8c7a4de186ca9d75d340dee21a8d5aea81266703212c1ebf8d5a39872a113f025e2619bc0ebd290675352786da343fc34b9157a103ec2c1d239e1b5c828f335e93f0957ce3e072d2d0607c6104d556ab95fb9d608e03b1e3e1318205e3ae2e6ddeb45931d65790746f756061847e654f75385e0215760325bd6506268daf6ac9455f5f2af46e6525b186bb454a5b3b63b92d73f11f0575037e4ffe946c2e911f9330ca4c7c1a2817a3f7bfba61884010bfd655b81e60ba4c03dd9381b9ecc6d0a670aac73f488a3631418d4bf027a93e3e8b6a0c5048b82341032e33818119d0f9a48072ee5d891b8e6bc7378a6fccea7a31efe00087a1cd6879032fc9b351ba545b5461ad94d1853541e85a3dfbda3b761470b46a3e5f108f8c0f00581f031b3bc5f29cb40e01d1c2816faf1e3754a12db4d356ee77488785a3aa7330410103650c1c382030c1a2313e9beda43035e87eddc9d425306902b43badfab1c1f0fb039b2ae1505701dd836dc6dc61c35ac19f00e826ceec8b7982412918555be5239000581f039b2881e56bec9a84e14b28840488287206f4a65bf799d3a14850811f9c30410100581f03fb6277dcde1c15a220f1f15b37a8b3adda1154d51770579a80dbfdfbaaa0410100581f0378768759a530f78e452d59f0cb222b9e6f5b428047b13e14d5cdcdec7f604101034e701fb5ce5c4dad51d0f4d130df553ef45c6b31afe73e28726c7a6703c2bdac039f04af08a67204cc4b3852dac8674165627963beb976856f4e34be851d37bcf1034f3148bc7cff731979824f638b00a6006c495873b671255b9a1e7ba04e16c4f80351c5ace0b3c326a70f64c1e386804a74d77526ee4be61419e579ba6d6f5b99e500581f03731c72ccdfd72abe4e139685eba2786440012cf999293aa783946479e5d04101030954e0dd6aa83f00325bd04a4b77e5da60cd062ff6c4605409f612c6e641bd2f00581e022e35886f5327742da699599e49f73349772d6e7e394d4c574671f4e77f410102198020037fb703e2f28664da51321e22616c45156a0b02e76e65776c352405c8b3a460ff021967ff0219ffff03e73e5b0aac83db069eecd73b0cde6f35b8cda74b4ab8f31ff0be058f6cc8fca70397908c3df6ee29c5588652a63638e15170d87d4e9dbec21af7936836ec363e8c03fbc295b1cc6ed5066229c35dbc2cbb96ca42898868a651a19d3668841dc6adbf033a4fe121459f64977bf5c9efd9fa44e5b79551e080feca4e195e0eeccd6b306b0396d43f9cf6aceaf79db1abbeb139ac4dd917cedc9dbc9a60763d9fb0c9ef170e030d55675c016f10d7bd09610c25708ecbed61b8e24e3eb6ae4757db4bb63bccee03b9310698059e74f94a670e03818aaaecc68fe491a161f99f2b81b55493ed4e8403fecb346f5bcc388fd5b403ea1f34409a0aedbe3da7809add06b5080142f1705403eac8e500d839cd0ad750193f7893c2bd47571e62fe49a80d320291c94983787403413d2e73683fc984185c14462ec62b0b596755138006f4a3fcbe9100760820f80368213430288e9c3a3679bce84fb7be4e1d5e1e0419187cff96e1a8494f0de8b2039fded521dd6d14d9522ef44c421c20d7ce63c988f3ed59e8e065e0ef1def224603504f9e6821c23c5bdd740ad8a8d06e354fa7ccc02223fce6416fc74a76b6694203937ad4ef86816a6fe5def151c022a4f1712c724c71fe9c4b0ae1f419b0d19ade03b2dc5cee09941c78789fb36b49f59f7bb594ac6aa672ea61ab92bb6828d8f77a0219ffff0219ffff03cd40e53e368b3850c2c6e1bcdaec83f8f302239635ba8b4c2fb984027d9a512f037982c2fed62566ca0e3fc3d085f2e1e89fe7f48e2fd85c3068f198c618b336c0034038a928022e91f1dff170a3f3fee050ba4258eb81c8e0f6e9d778c1b788592003598df48d8f5576418ed69b4a3ae3737f9b5d6a3fbff8a7c6a5dec8950432d35803097f85e10999ba3e90dcb35304cdf0388b98b619b4a68cad01ec3510141088ed038a54bdd1748f15022949512e5f14679b96fa4feb54d838825c5532cee64bc7fe03a234795d16dd772194d0dbf04b18e8218b8213e6a03a685f3736bea3f89cebe20303ed9e304b4b8f612efdcd87aa453ab70783229a8e52867529f524f96942a5e803f1420059d9156c3bc004648fa107a1c5163f71b7cefe3599fe73ac6570402b7103483553f80d49b7d3a99f4f66f7fd4c70a94767fa3eed2d59478ca9d0ef3bf4b4039cb1169c1626cc4e8090f79ea201c1418c4102918666147937226d69fa9458be037ea6403e4bdab5ab82a29da3e9e3572f8dcd6b983033b1e81e179e74c228103b03fda53a45b7e1b9738792ec7d4d4491108d20ed7da7fd5dbd12c2799ed6fe39e6039bcacc4bc5bf726927341c55315204c352c38135d469056713b1113fd2cc711903d1ff4bfe3625857ee982c2f7bd757dd9fb800fb4b7eab08994a27c7e8f20c28e03c5aa1fb5f4eb36c89d0901666b2b1144c32c2a8bf19b8292c5ff1eebad1d49970351c6c21b31557e784c3a0bfca254ddf9a8f41232b2aebc9215a5c8e7cadaf6d003bd834f02942838fe70c3a1d75bbb2332164df27e9ecd63f8a70344b4904e777603648d0de47f7031d51652e4471078de3e3e8b611f2a3aa5479fd921a680bfecea03946ef3e357bac741e07d8469bce12a5502e06a5cbd166442462cba2da2df7bc9034080031bdf94af27f803acf6bbddae9c40d81014045f8a2c5da5a137f875bfe50301284db863b573bac5cf96dde8a3d579afd9a7201f3df15e43d289ff4ea1f8d8038fee089c5274efb6aa747edafba427ba4460279abe6e7b4e5a25cefeb8eced79030ecd41066e601930542d08553b457d4a07e25e1562797a90b175e2a13d1c5f9703e079cf9f7cd2783d223161b11fe24dd1d918bd7d5dbc8ba06d439f2a9e9cc3d603f338004ec0b162aacbdb0edb0f9371cd5235d2b059eee80226d61140b564702703613858b35b6a94be27a0ffc530abcc144d6bfd454296e9a0fc7772cd74afd36a03fd1216dc0402bc37d11f84c98aef5f859b472a8e4b273dc98df0a2d3c75ea21300581f0392a418901546f14fa7846c223bb136262e096f727de888583723914dfeb0410100581f038a11848632fef10d3fd2922000696cadb11d4c09a3778fa3da693b419b70410100581f03e6da935a0be2ee5145f99d34c9e2a45e02cec4de019b1f2b1033ecf53470410100581f032edf6b90fdaf13dea889ea0ea78baec701fa740d8e642d22ff1905712e30410103257814555238e554c7decb13b91fffb767a2e41df118e3d9fd4cf52df448b96a00581f03a9b276d63bf37ba3c27cb82e93419f253f290dcbc37cfbb45ca8dab56b40410103c1acecb663c3a648e293a1ea61dd5cf825a1d12f0fe74693e196b8764108244103ab9af90d49dced58008599fc90089398500b83e37d8a7e2dd65c0595cfe7073e03a6da9be9bd3cb87ee6c3abd14e29ef385b9cd0accf041a9dc3322886f957cde200581f03e10d7c5fd384991ff88457aab25d8c475cd017cd8f4d18004eab0f8ac7f0410103dc3610fcb3e055be5e2095c09a866703c90ec2578972cdb8948c80611fc9919c0219aff5031bd1bed09bcd0f60b923fadc7007d356436bcbdcde2f787b8a5ef3d779c67b100219ffff03d5ad1f922ea3f3a50c9ee76d7c85726303dc181c22e77ad1feafc9d719e16f4b03419ce221879b9f8887598f2bf60b08fd502ef9486913b0c4905f9887d767d30703f0092d0e964a502114cfb22ccfc96ce39a2f52db54cd0ad7c610209f06462a380370de321231b1cd122e179602a9cd3441440df47c6c0bcbfca60232ef27f483670318f1e3a054b6032cd948dc4dbb6fca52187d816db7a6c6eb2c2606d5f5c155ac0219ffff0337a9217c34a380a82e18869433ceadd6d2990bbc238950ce66e58ff1f7bb3c4503b2505d936e11a3313a10acdc76f8bb5ea8a4e96aebd58e073ac81c1fb06c1d2d03c8da2b3eb879dfdda557aec7265fc475049a02f44d5abfb6d0de413dbf2167e603ce7a730bc19bb5fd52adccd0dd0a32d411c26382ef70af1842e3e54b00baac280325b4268be5291921e07913da6c2f9db9e7a060d214b8f0cb1a8a53facf3eaf2603de5c7694159d80efa0db38af89ff2023496d261123323440582d0d5834f35df1036353c9deac34114a62c4646d90ae737545b53cd78d43054fc2baf16f5e18bd0c0363fb6522c774344ea8beba200091a44a418987532abe99abc290a72968ed2b06036ad8cba8362dd0429821d7d340bb7d0daf41e62328b0d1b27ad9b41e41041a6d035359f8f74671602ab83a9960ae83daa7884701fd86401c72e3ecc465ab3f93b90385ed710a96fec6cc87d7009b992ffd24aa2ce1ed06b2c340375659ecd1aaf1fe036bf7e5bb0613ebacffb30a4367a137f13261f16eef8b1852020de59349fe87cb0306044f8ccde32ed535cf85bfa05af5d298fa76a31afed8d14db92d13dfe1a8d903094cdf93c283c3810e567b220e8bd07605bb8d7beb2813f64e8148c8b94ca8ca033c97c546fe3ad7f8395e7005bcf593531ddd250b2dd32317d454f5f5582a92e80219ffff037aaadcff3dabfe823ab45309af6e35bd045e23e177ed8eab154347c849aaee6d0381c3afb2d989307311a443759532625274f71b93b431955a1c8d204e51b26a670219ffff05581d0225a5abf94cd73b47e2fad17bacca9a9d92e2021d8da318c8cea38fc807011903180219204003ac9bb4ceade326db670e583c832bae7bf89a612356f2cd0e33677e3ec13bfb5905581e03a3a9f2da18c2eab6765da82c9db01f59e5f63448c47676d6d030d0e2900c014741fadb64f8ea6805581e03cd420810279d2547f2569529a70a8e42f36747f2341c800ce43ed4efa00c0147032dff6d12f00005581e03d68b2e5b9c4fd60c94f92ac72e01be8172134cc40f0882e0a83014da600c014731fe43ae6fffd703b50ed68c6548ffaf7747b79242a7bfb4ad6b97933ebe7774d746a411847871da05581e036e6ad415b5d86411aab97c52710403cd884c353bd71c0b2ac102493e5004020366803a641d167d79b795710f22ad39a4d7dc034c3cb8daa0d5b00654ceaf183005581e03e52a8372658f5b810ec5bca3ee2a56a17c718ce8a9d8ef17b693b33aa0040205581e03de4440e4e0221d379dc921e3e56f1739ac9a2d63b548c2e842b4215100040103081d4b28d4179c231d65b56a6cf568702cc986a9fd2081db9b45b1acbbec39d602195f9e039593e4b264e70d0f911f0c5af831278831def6e4c819a91db1d9e2fd3591250a03ed5bd9ac6ae0ccfdfb80fec514ae68284500f6d9b28a7c2c7eb57ff5f901451f03a2d4efe6fdc32365086d83656839d720bc7e2f425df8744e925cbaa58af58ebf03c729e5dbc1d31aa4723fd23efa5fa0bf52a382cb372f4b8454e7384da8afc9a703320dda0afc7610c7fbd392e1ba43757697d940e71486c7f5a2824d9feca75baa03df48d1346f7d7a8b7f703f8802a0288b60d895c529497d736b4a67d389c6320f034b5c25038a203f6f9a24ca4e9687de10ac0fe303938df0310de4a86f71bd6e130219ffff03b013c488fc29ca5cc684319a06b740dbf8d4518d91895ff559aa2893d2d4092303f7d9f2e723b8d8cbe15c78676e7800584ce7547950a0e72401cc120d9d59c35f035408e55e94874f6678223bee908f66354be4dd7de7b90c9626e180525677f90a03dc8bb8942cc602e9ca7a0c7bb835b5fb9f77173900f8cac5d5e726819a527e4e03b4d5ff016ae3cc3afc2da7f64ba600eb64702fc9a3e15d1ece2a1d998e156b9a030f56655e7a0d8ab427cb0fcb00a213e796451806e171c9c24e1c971cb6dca5a6039e2a510b4b3cb7879a740117b9984d8a396496a9d9827a13412afcdc4b1c8ac503b689f2b3b5402b67d30eec9f50f258139505c4b7cbae2f6b8c33bd1ba4d9f0fb03983339fd7aa7966c9ef74bb043cf117e4f8c8f095b67e61b243dd202c03ad06403906c1159f4e2f93f9909119c4af784ceba37e3be0c2b70ad4e1bc29e827606ff0332ec5c9c6e58b0ff11c0299f5f663d7f8fbfb6704616ba2fbf8f62ac5348ec1a0219ffff0354f6cd4573312894b5ef889a71d81889552ccf3faadd11d62314bb8f6c461fd30341d73c13d1ddcdd0a6887f5f0427eff3456392cb7749ad646cf2df469f9fbe58037b391e7f0e71056d72837af986a7253fa11cd6106ed1e80012e36be5c1994d2003599af7127d5701df9683992453473d60e3708793d538a8be30bad338cf47df4d030c3844c8abab9f4afdf9269724f1cb9b2c5f45849ccf03d83079b0730c994f0c037b45c5f0fd7c0a5d8131894a6e847400305964c578dfd1621ddc0448384248b303d67077295c4af493507c159d4e1661e686a3671c7a1815f1e69b4afd9b1a22bf0373aa36861b69602e3793123a154fe6032ad85bc48f7e037f7130397c153ecd50031eb46f6fe693f49ae1fb7e88537f4d03ddbe9fb6dfffbb554ca99b2eca3c54340314754974b4b9361df6fd2f629c442c460a47df4093b214c85fe4e020ce887997039e826b3453a990fcdbc48add8fd72ddea34ef4f87d1c0de84e6e3be3ae3999380378d3c9730edec33da249962b614067b0361dec7eae94d4a4f96c9a399306705c0219ffff03c16339137c2a1e7288e148282cfc8761485ca6e91183ded44180006143fa1d57032b26bb293361e14f2139eb8deba6fba43f4270b6939a6a677065cf0af7ca3a4b032cd3a70ac9890c0e6fdc2e944c6f143dbe6079b399ccb3ce1405a712ba6551d60358c8b18ec61a1c8e58c730c4a2db7f3bba8b06274f40e907cb7007794b9ee48303330d2e0cd6dd8b792da5e149402b617811a17674e294aac66c52badd0fc5deb103d25779a074a3066f84c0ff6ba5d412bf8d573816b072db62c6feaa886253ba2e0351357d0c266676d027ecfc6e62b52f64ee3fb78e6b5d7d06fad55e9fc53ec04e0336c39e40ec963fb15ab97827439f58c7b85fcdf2ce9789256aa0d38253947f8b034cb886557fc0f156e9ca3280d6127b2c7e05b46de62ab9b0d86ce58f70b54473038b4c9bad16d06486be9465807d66c520e346b186355ac2cc0603de61c25a05e20383991242e9f8f3ebb0b5c3eec4b8114cd429fd99ab8e3a54e086c639754eec1403d77f9d0c7a8683b9f6daaa37cff515ccf08f3e09f102b03f0ce6da0aca63e53903d19b9d750f80eb8482f2437bc90ac3379c6068d1455a39e30a2834d55f059cd103fca3d94b981b86fca28c6aa7ac5f04328229f288cfb9d4e6fef8ed5f9b8ea075034e70b3b87e6550b668446097074dfc48b052743b247170db256a43552de15c1a0356372351cbc35eb66e5d8c87350099da3060077715e137238b8f03e6b2a7a39e034dabb4118731b90473fa333b99ed9d93dd12bfb07877cc9522876c9b873ba4ec03bc0dbed00ee2c79992c78b18ea99ef5d49cfbb2de87923dec3e28489bbe38638033cd38e15b9cba2ed3cb21771534b49e0165a033b267fada67529a12f49815fbf03f0ef56899a8af8f84577ba1626a0562cc9f89faca89713035c931ba3a0bd76aa0381f97151950a7cf4cd5176527de871b025ec0cda540c4b35bfbcd14300c4c44d03c6a2d79bab643b96cce32339348f23e262eb68b85785c594d311798fc3c7774d0349abb75e867216e395d89c51ea80950ab1c21cdba566cced3fc27b76bd947b0f03dff0f72d7083bf738838ebac1e6d59c1a9a60d35998f6a045033ad5251a7dd4b03a6cf217ddb2ee860458b790c9c7cc8b9fae50987396d143008c59aa15c606e4403756e869e8e6b0f122d40eaf6b720729e2f899232c2866808c19f96bffb9a2b8703d0023399eb1b3e6ca9eb50e8786dd9fa002cad8d7d8f7af9ec55af023d3a658e037f08440d0fa676c91c022675a49b418e1b930abbeadf11cfbee156ab995b3ffe0391275b09d61ab8047bc4f512cb10a815c1b407a87f9406fa9157fe85928dbd290374d3861624fcb34c01e2d54638e646efebbe70327f815cc50b4cd252b591b00403c8d0e2a3a28a9a4d0596f0d312089cd97391f97888ce1c03471376bf27f98e0803720fde4e733f02b2aef0752c2ff203badf28bc084b5f23688940e4ae1ed54b9c032bd667c5e12835db2fb87000d70da83c786e8e23b51ef30215d0948250f62aeb03203f25922b4670f7721459493b9adf79a229c1591ead22506b192dbf872eab6c03fd6f580c2d25a2b704dade19b85056c4d522fcc17e57d918c94b1ea178ffec0905581e03ac846dc298567d141d924347739c9b87ab4f11efa603d4f7e4598231a00c044732e6312dd4af0c05581e03380ab1482709e0643084957883be24d068fb6684d6e0d34d06849bc0300c01420400036abd30bf82fca23efff1f99380553795da16030a4f3a396a9c0827dee8b473be03bfc68de1f916b66b9e77da38fbb0e35eda895ab265e18dd10e2140c33343247805581e03af6450f7370ca26ed022f4ba128b7ecb4669d145e5e1f2679525eb30a0040205581e03cac1a5c355ab9210a9516a498b76a5d958499a14a6e1c1a8d34abaa2100c024626326bdf0c0005581e035d76631991c5c6600d09788ec6fe05719f5abf469aa88a67cddc69f0b0040305581d0293f8a29238e31190b738fd29983197868765c5d421ea4d82924ddbea0c0247459be4a261176003f1b7e936deeec461f30fa397972838b3f1d03e84ffac91e014e6633a2170471805581d0230a1efd4ce0456b0b9db506bbbcf19ec4874e468c48dec3bdb003bc50c18ed4737994a676dc71402190809035f499340acb150ba607b318dbd7f309e7fb6b089b707b974e92e72613b519d8f05581e03c4b378b855334eeb58737f47890c6038edc829011a31a18105a80125a00c01470130620fdeebdd0378e69b22ada50f842dc68064f54505af721ff5dc46a8eb1fd9ce8921f575a9f5021967ff0381ef1c777c50bca0f7953f2fe5561b54782d5019d0affcbc77ca49b792635a6603f92590d20c7cf1f93aa11fade6f9f57edf736ed755160fb20b0d7eb0aba480e50351a3de0d78aed300a2281b7302c25ac52ffaf69ff51f7a3389ebd860db698d6e036f2137bf22db7952f781271955abb96932b159d2cd93eaf176aadd4100844b9b0357c7e6f8f729b978c4be60bee3e8b3897ad60308ac5ce874ac43f205acdafad903f22915e60eca31c538a08446186308ef54c4ac194f39f2bc5161390124fee0a103793af0e7993eca0bf1675f4dfb77cccf926540830800d7da5f875b87d83d79ac0309612d1197bfe9007948f0bc524d1aa6aeba7392be6770252345f3e388a919e303ff9d78f2ce453fc952fde3b377978fc5794005f71c2f88cdb39128f477aa7198032438062150ccfc642fcc4e303f920384b95e284a59ea914f54aaa9da2b84651503bef668c34f36f928d3d4715b2ec11741c5078d7c151d03a53081c4ab9ab96f6a030abf428fbf8f36d52c1f107e2ebfd1afd5e8ca6490c8b4f27ed2a36613e849c30219ffff0388f1c8ae9e9a89ad0c99573d17a2b72c00faaff0526753f75b028a9aafc59076035a6c9e4187edbac60d10905dc375cc7817116aa429429649344bd98d3fd83666039cff31e288726d98b38af10c44e5b8e4c17180ebdf7ce6ba3bf0ad3fef4ffb4c03781e41ff2c0d0e7a4c7f3133365f2a480e2cddef472edfcbdd5d8b3bcc5ae97c038f2d4944b4a3ea1436842edd9ddc0990372eeacaf5ce85a62098fe81494d34370302ff2e65b993b10798a5c6d538560822c9748f12552261d0c2c08fa963c757e403658ca5d82052e304708daf191848b3e01e9ca0004fe4f205dd12760373c672fb0342d4f1eabeeb5314aea25a7b1766bb81db1efeefaa07da412b38aba206065dce0323bc9a6bbb0cd60be23b242313d4a1d00ffc9e7bb4722c196bd73ace488bcf4d0341fdbce3525d1c6f1abc51b9615eea466ca74e1726e9bd6f59220d3474ed44010365e8f20b47129758eaae48cfbf84e6337a7d8519fb6c0a4f000c59caab8df7890219ffff03b3e9a3770c186a296130b0e132f410f4e858bb0d8351e3017070f59bfb5c9cf3034b3bdb955aeb9055b21c8f3bbe783b3550fdb2a9b0721a5fdc21dadec644454c0219ffff03cee4730ecfd6f5435a8ff679385aeb81f72015de9cf0f4a817057f8a168c45a10219ffff039fde224e6950ca6e562148557c898fc9c3aabda51eab61eada1e5da5b70c1fb503126c77697fe55134b11f3eed920a083c448b3e95b92ead70665100ae8f2ace1003c9def7b943157a1f65d9dd0fc1cde22567457397af9d38b2ba97d2a5386e020a0317f0977c41a3203741d09e4b65e2bbb5ced54f5106781699150dff38cfedd9fc037bb183e4712f6de65538869390698dd0864b1d551635b0223e61c9285f54fdce03df93cd050c69729ca302e176979628dd04e5906c828ed168973116b5bf97145103b92e57cd5393005130347c8786a632771ac583f91cd30b2f43d116800caa8b5b031c8f67ede1e75e5fa6e6fd5dc7258c0f8b14a2ffe68b08075d541905999fda4f039c3ebfeb2d6a25174c7c73d187837deb0f3f9ee4d4fdab943d3b62d1b323f15d039d60893dd36d8e0fec6bd09c07882174a5e289749942c72f15b1f9c21cb4dd5f036837eda91453b0b6449f0031f783d80fabd61e5e260962307a767d664e1077b0037ef198b1c47f8929d4a740d325f03a930e0b1b2b44623a192a774a0bb987069303795e413acb4efda0cce902baeb18a115da4ad2af272a198c1c1ada16324c42f40357fe8edf8a497f0ce71527807ee22e7d5ee9e4fa689921d7786c23e0821173500320b9787b9a03217e0efb1a2c1c8805a66d371ce8ae526264b1d3ddfe31a20a2503a45ac2e5d07670b412cfdd4765e2155c2a4e61220d8555ceacf96d80a666ea8d0398d3822114cfef383049645a31d87ec0a96fb1af25d95a77d5354bdad98b7e1703c721c515682597298d87aefa346f01f2069a223069e9949d9461a4565c66fb78038fc97333d05fb425eb29f992ad5383ec766b76337ab08dd6dcf5add3372bc4e803e35cd59704e04b9e6309a12f6c66003a7ea311935187874c094af6c5490ca52b034f5b41f76dc2676070919a9a9fdc1fdcbcfff61d93bda97f43c377d84381692803a83a9fcf86ef27fa450c41ca6347bcc8561bed585bbd5dd0760a67bf217d6c3c038b4bd7d5c53fbfec4116b9b61eb1f2b7572570e533bc11406675f2ef0f32493c0315948b81b8d8438e61af576b7814d9780b747136d29630a4ab79f2b23d2ffe8203931cf50d4d3e88d09d34a291bf5d8666658fa0cb4fe659bfd33032574476e05c03048e26e8e3ac0177e6788284f7038c9a8d23b55fe82de3815afaffb2a3fe472703905edd57aeedf8394d9b1b0ef84352b85c5f44708526d4bc6697a7d55b8cdb5c03affe208456e818f69a73122832d6db3a7b93175f3bf83dd7f080d11743c81ea90352b50106208b0dce3c80d2e9f04f9a259d491f21002b96e6e8bd8b57becf942605581e03183770a19c00838605e401d905a4bad222a481fcf14ba6815f73daed1007011bffffffffffffffff05581e037c8fbeca212916e55fa63655d0a9ed281e802bb80227fd14ba836788100c01470474e9b3d3160005581e0356501c07b8dfb9c5c709c0711f4df2bf44ee2486d9b290a4f2e472a3f00c0146044d49f844000383c9f4a0e06149a05441b34b8e7a835f4d1518e61b800b02eb6599573763420b0397ce3815879a904988dcfdb69313836232a6ab8be94738ecbc253168ec81886b01410103efa313679b350d314d29d0ed6233d2d0bba9a77ae2a6e8034144bc154736b1b203edec5d2dcd1b1fc946e48d9515ca9f205e476fa4eaa1b147537e270428214f4b0459084c60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106d6565b610118565b61005b6100933660046106f1565b61015f565b3480156100a457600080fd5b506100ad6101d0565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106d6565b61020b565b3480156100f557600080fd5b506100ad610235565b610106610292565b610116610111610331565b61033b565b565b61012061035f565b6001600160a01b0316336001600160a01b031614156101575761015481604051806020016040528060008152506000610392565b50565b6101546100fe565b61016761035f565b6001600160a01b0316336001600160a01b031614156101c8576101c38383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610392915050565b505050565b6101c36100fe565b60006101da61035f565b6001600160a01b0316336001600160a01b03161415610200576101fb610331565b905090565b6102086100fe565b90565b61021361035f565b6001600160a01b0316336001600160a01b0316141561015757610154816103bd565b600061023f61035f565b6001600160a01b0316336001600160a01b03161415610200576101fb61035f565b606061028583836040518060600160405280602781526020016107f060279139610411565b9392505050565b3b151590565b61029a61035f565b6001600160a01b0316336001600160a01b031614156101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101fb6104e5565b3660008037600080366000845af43d6000803e80801561035a573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039b8361050d565b6000825111806103a85750805b156101c3576103b78383610260565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e661035f565b604080516001600160a01b03928316815291841660208301520160405180910390a16101548161054d565b6060833b6104705760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610328565b600080856001600160a01b03168560405161048b91906107a0565b600060405180830381855af49150503d80600081146104c6576040519150601f19603f3d011682016040523d82523d6000602084013e6104cb565b606091505b50915091506104db8282866105f6565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610383565b6105168161062f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105b25760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610328565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60608315610605575081610285565b8251156106155782518084602001fd5b8160405162461bcd60e51b815260040161032891906107bc565b803b6106935760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610328565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105d5565b80356001600160a01b03811681146106d157600080fd5b919050565b6000602082840312156106e857600080fd5b610285826106ba565b60008060006040848603121561070657600080fd5b61070f846106ba565b9250602084013567ffffffffffffffff8082111561072c57600080fd5b818601915086601f83011261074057600080fd5b81358181111561074f57600080fd5b87602082850101111561076157600080fd5b6020830194508093505050509250925092565b60005b8381101561078f578181015183820152602001610777565b838111156103b75750506000910152565b600082516107b2818460208701610774565b9190910192915050565b60208152600082518060208401526107db816040850160208701610774565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204c42c8a05d38921bf3b9c46c2d6959383ec3cf89d820f0f9ee530ce0a4c93bba64736f6c6343000809003303295172815e4920560098e45a8141895aa2b70ff66bc016829a0b2a015ea70376005821031bcbc917dee59a47552cc2c04ede06df754768a94aaebe78ca915fccec4139c0546667961f5e9c98a76a48767522150889703ed77d005820020decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56355016968f3f16c3e64003f02e121cf0d5ccbf5625a4200582002b697d36f6092c8a817240aa8b80187f6cbd4e58ad08cb3f0797c54f678d09a4245400219120000582002395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f456199546667961f5e9c98a76a48767522150889703ed77d00582002f2babe526038520877fc7c33d81accf578af4a06c5fa6b0d038cae36e1271142454000582002679bda9e411a5d102c34d3682260055fa33b1e271c484da80289489b875192546667961f5e9c98a76a48767522150889703ed77d0219070000582003f0bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d4810544e59e778a0fb77fbb305637435c62faed9aed40f0058200370225b9ba569c832ab029f6089141e4c72ddf02989956a113d0facc4919a10410102196000014102005821034ecfb8057dc63936ee0e67686a7ef31bbeba93dfdf0f5209f1454b2d9d514100544c5e208ba71d457bd18cfc7f1847da7209c7999400582002b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d54242a33ca49c564cafc9c83c700b79f1074c42a0d0058200234b0567ec5a8f488fa2a085476e9d6c59b21aec4f712085ce954c2ace1fd4e5447336ae44f573a7c3c41a9ae04a9d48e5dfd8f8e021980200058200235acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b54a0d79e982bfd3c2ccd09d2e374ddc75fe328f317005820026b23ffa15f0465e3176e15ca644cf24f86dc1312fe715484e3c4aead5eb78b4245400219840000582103fb7ab9fc88fd75844fd9ade7799922a554c2d15311cdd25dc692c790521aef804a152d02c7e14af680000000582002fcd19bfe8c32a61095b6bfbb2664842857e148fcbb5188386c8cd40348d5b642454000582002999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e410200582002f9fb0d4f5d460577fb20158db6593bf89dea0207653d12acb95d8775eebae541010058200222e1e9c706e977d674dd880bad84f6db7fd41b879e5f109b88f4d1b1bb29c9544c5e208ba71d457bd18cfc7f1847da7209c7999400582002902b6d2681ce54eb042b6d7274a6932d83d2462068083751ca7be8f14e437341010058200214fc615469d12429169134af88c863351d6f2e2e7cfdc5ae3d6d3aa09654b15484a628347537d4900a0b720ee294445f90c3887a0219111e03dbc45932a5016d6cc0999276f3d3f25657b39d3cd398b0147d693041d919e78d00582103ffbd64cc7c1a7eb27984335d9416d51137a03d3fabec7141025c62663253fe104102005821031395e4613d76a4dfa908558cb9e27fd187efc7941cc7f3dd051edf54d07d23905484a628347537d4900a0b720ee294445f90c3887a0219b7ef05581d02aaaa022a8b59d9ab42fe901476ced9ae388c8bc5633d1a321ca2de48070119084c05581d02825d114d6a805de0bf1c1382764820c6c68fe6080e5515fd124597970c0146db3df8efa55802188205581e034b05319aa965e6ac29503206a249ff713096a0bfd4625f063004b5cc100c014705ab445d99320005581e03ae381f24a1c5dd81f03e3d82e8ac04a5625ff608a04fe21b21f1f9c3c00c02474258e3357e74320219e53f032d65ecd55d5c2252a41659fbe0668367eb7e54182333321544f8f1fb4beaa38f03acd491573de13383d68831277ccbc427ce4d8bffd3065c6ccfcd98c6a9cac1c703cd0aed27a689dfe3aebbe138fac1c1f69250110ff8d97ba457fa7f9ffa4f6bf303112af26ce6896fdc25382db6e9bed2e2354e1335a68b895c754d20596ec4105703d25e298786b9c3035e058d58c0a0c995d69305ea89483f0b3728bafb17a1734303c3221efdf1ca7a43676e696c765bf9c593e2e73a2dd9599c178b5eb1b6e4a8a003406d864c02f00d280f6ae20a22212563d76de348cb3c5f60a49685e655da018a0336946e3ee13109e78e000b3a6d33e97c015823a661901b621bdb5275eb8eb940032d7db6bf666d309011ff9c96d884be7f0e08097052dff98f7c9990a9e8599a440390369d7adeafc39028f168317e1151ffd04cd2833603861cd0fde9117b2acce503f15f37be747600728b77baaaa049a898b3c7d431e45d5274aa3adaa89d224d5503db0f45f540c5f1cb9f6f87b3049063b82f36ce6362329586b9986b034e6969bf03b9108596ab587a583536d6380809a9fc877b023aa8e19c5df650953e8657af5b0219ffff0359416fb5eafe5aee6c99c48b02605ffeda2d4dd269fa7410eae4b3ce580dfeaa038c9d7ecc68ff2c5f5b2990afb46a4fb87e223835cc499dcf689467e37d8c659c0321f10dc88601b21b694e8eefdaec09faaa302e0a14455f34ed6a33336d70b3d603c5230051e61d6825dc9227dd2e637283b0d15b39800808d246481758ad1dcf16033487764c6030d50ddf96d40cc5c17a6caac13a8498ad8e009475d3cab9ce06740357c0c002b678c56acb0f367fcb6569c371e35a301138c0068dee4cbbd868dcb303e9b7826340668ab9c9c0240f2d652fdba80478a86c75c12034c47fdb3b1d544703acaaca7b5e45653cef36bcc20b210e06440678372c6664307a79140d10c25428033841880bdc64ea17f46aadfd84cb9522ca87962103655f6071c947a6f590b690032ee8e976b5c7e049abe5abd84f06513cc0d80df34f98a967ebf65a1a3d917615030240fab341446f438145428fb2461eee055d16f37b77f2b84f6e54a4f4b63e7803cb77dd224695d048cdff5728cc5a1b7d6ff5bdf3193e106c218d6cdc13fd4f2903fb8a76258339859e16e1fdb97cadee49cc06f199d548b7fc3c62f6665d70475703d47cc88d519d487532d3e383dd8db562b9d1b26da391a22a8f11687b71098fae0219ffff036c4a426b482dbdaf017e9ce358e1bb5ce702b97c57e34988fd3f70eabe3e67570219ffff036954ec505ea90b739e575272e83e2d3d723a20a26fb4b2156031bc6e82de4d7c03032c25a2dcc1f684811d8f372abed0e04eb607f4708b66d1aa88911f2d8cdd7403d626a84307699980b22af512e01c9ad4aa83713c9daadf6857b3867476b66e9703d55ebb8a542c7e3479846c7aa235d6b25b7aa9775ffa012d2c1665e0c3d42074037aeec746364cb8c82156b5deea69dd8803a1a975e70d1a574d117ea93641c45603c75127a50a9ea057b366f10780d3b4850234da783076e552c8f093dd440b21fb0219ffff0306cca184163ad5707e66810ae1f4fbf55c4456652658648343abfaf8ccdf53f9033ce75db2980d349468ecb8eae589abca7244f12007de349ad42190521ed16a840318f49067974b18de96b78ac7520a2c147f939e258ac8f8d1be62dd2ea4d3f0f6030251ae723c17012b132ee44d280652fd0d1a4c85bd4b912119b0524c531382e3039adb3ae1af2e9a933a183f9e0102e65ffac05192e64124104c36d3569b63e88d033ee369766c16f48dd9f36c3390130588eaa80318b20d699d226e41c8df8697f4039fb06a1906f7e765b10fbf572d0c011bf1ee80bdefbd41133d224a2ef314a0b303e10723587eec5d9a8b484ef9c146ff32e349e258091f8b8fe5c5671e6ca15d6f03db0246a8d95bccbb3f36f47efd09f6a5b2682151aa1cd853133e10d52f99ffd603ece905fe6e405aa74864c11d76b4fde4477a4c942ee96c1ebfb3a029f42947e903301d5be33d7b982a5b1fe47bd0aa89ca3a30fbf2d171e2b0ed49756a51ba210b036650944fcd68179b4d8bb1788338f11b88b37ba3df9ab096a1c4e260bc583878037a6e25df2d9033c4e02557ca386675393b0fa32e36e48b88fd317004c390597303377127fb16e22710fce8573fec95199370ab311d3d0a27cbed06041f2a11289803b85f865bf599bf3bed09af930333cd5bfe0e8acadcb8264f1bf40f8ae6af7bc903f3e57f6c135d48f56abd643d2ba7676a5309bb4ece9997b820ba631aa752e28f03118372fbf6695df980d85e0711abd321c88395e9beb47c5f642e5842d991b6380341dc90bc20f0d6c03577df015027a6f564b11c7e1516ef9ffc68fb4bb73cbc7e0387b56247f9c6b6233f9085d86c776dd7389da37f40fc326a526084d0b392f2ff03fc02a7049d8bb7dd4af3ccb3bebf48b59267478f937e5f218e01446d86b8837603fee59f80dc0dd6721b17ca653d9c55b857e02e6e2d7f9e1dbf64d4f63b16c536036828d830b0068c4197cc662ca28d605838af642148e182ec0e7db767bd4ad59c03162d96d3b59e1e8836ce38a66e5bb832ff016e6844dcf292eb21d1f9f0f9e102030fb6e2fc7a7256c779d514356e7322da8adaf8bd84d4e78b1d2d791b8c79732f0369ac80fa6715c60019a60c8bd41f447410f3ac875663dabc5008cbd753080c3203775cb5dc28cdc6033fbc42143efed71a5cdfa27746d08d229164315c08e00f19039bdcb04d1b0344e6dc87cd049042c7f9f67c867b08eeb23bcf6b01f4b1f406a2037519459e39ef661f5918eab28a3a727326e76d9752c82e1bfe07848a013ed494037a932aa30638f8c8370a4d1cd81673992511e96c52bcdcfebcdbe590087d0de603053c5f7f831d6f6ac9c4a9fc16b7e6352a344a6db79519381363abf03b59cd23032df39c0062882ba634fb24c89e7f9871ecef10a6e6a6e79a336f6ed463d5c942031117f9034a4b76614f7cbf9e394fcd9c98c0de5efe22aa466a97bced9fad683205581e03025045e7f6ed69bd205bb4813ad64b8eb0c3e03f8390193bc4dd906d7007011bffffffffffffffff05581e038fa2c54997501a9db6d2871bbaa9a00e68d0f3a78e5c339b78cc67a3c00c034740e716b13acfd00355fdbb335114d2d82c3aedfb88c3fa35f653d30d104b88ae5588f3b6d5e2334703d699b9d1b115ad05c3678075072cd84c96901d75ffa2750d3afde17aa5170fce05581e03132cc4dc1658dc03a21fbe3280829059fa8307a7c6baba2cb154ba49300c02472e2cc4ec7068f603a9deb9ba8d28f3c8f5e770c8143c597e1364ed77984134513823fb4f040a437d0305d2c49b04c7d0b48094fe5c400d72aba346d630c3f404a7068a3aab6968ab2805581e03d38ca88506df14dbb19e99b3b23b76ea11d42f01c14a8832c6c726aeb007011bffffffffffffffff021911c30360faa15d6b949602524ef2143a3cdd8d71d1f61efbc39d0eddf0818ea47832070374061cf80c788e9b53133802d5b0a29d40f1808a82858a2e9fbf7610adc17ebf03ee06efbc5948bdc85a2b33271606eb793e5eb1e0db533e27584eb35baa53ce4003dc20521a5aa7942eb558d1213947d88092fef984d211072765b2b3bd2d6f3cf003906b175141e8eef59e7f178cf994d227162931771db0a6ea5ab5ff058155d0160383d1e9fd3c10436b29c426b4fbaf309bc587502b43114023db65ac7c7ca450f1033f5447d36b0da89e0d66aca7f643757cb3a74c16e152384dee9af8834eac01cc0219ffff03350455f8a3f8d2c982d80184c2ed5ec8878a2b153343efc1af315ecf3e10e41b036ebfc1303e24616da66c405adc0c69cc4052497a336701d95b4a4331c57fa11603bc184856351398a97f8ce5cc9d77bc6475720f93f151f9c57088f354d484ce6c03b98023bf810bfa01d8b92c799d01f74d2160674d23a091dc3e2048eb3e67e2360310de779185c43bdb7d63b0517ea0e2e7204e743adc99b2e17f03df16b495d2b303d3b5206c514ad2f51c639c750c1f9e1408112b0cfbe5d9ddbb66c2840ad8d860033fc4c07ccdace67e62a5e087f05a994859739a69c200d800a797abddee4564870219ffff03d81a1697756408f46384f47ecdbdd378eda141e5b4d499cc6966d6349173aae10219ffff03add760f29a4f26d195a78bdb068a1cd5e515ef7840f9f6453d05325a32d92f5303e99cb92f096ee95f951450b26680a49bba3f9f8c33d4ad9da2dd8723b11ace6803bf8eb25cb1975a64e910c35df46f0731adbf4eb5eb1a8e82c08357e12934b4a8038464c19f915e8636a594f8b863fc1b4abffbd908ad6347000c013e22703672d903a778b53d7eaae6ccd1eed696025cb8cf36f4c6586b3e72c6a56e95b21b801c6103985d66441863b3d7e8740deac72ee2864b1f6c67a5c6f180fec6f72765fe1048035afc49a636057009ae958d6494533cd87680bf364ce124899e04d822434cbba7036f5c7947566069f2149a55a237a5ee197b1b036b346708f744016f209fcd2024037fb395f5021e9c01d53688431559a8d6df2669548847e077469bbd4ad1426c9a03e8fbac06579a27e6934f762d82267c82d661f0dd679fe6bed9658a791834fd6e0370ba49fc76f1c89c2e562a97ec31d11191128916c0c5711e4e2db7fcb455a109032a33fd43e36ac6991cdf7af2ec3fdce104093cbf1beeed8773d3a34f0ddf3da103cf0d0cf7bd0cf52314b053f5c6c1443cd6540a0990cc26e7c1b78a1d191651360385a5a180d0aa8e3e6b9d37644489c06db2e98ed58be252a631ae4502946fdea40332573fdde8c61be7555471a288f9e56c4733def0dfd3d2930dce8e46530875c60219ffff03723f6ccc645d7e86224ee47d4f7dd6dd0ff8747ba0ad67c93daf284d5b7f286b03e0f45ddf97b2debcd0094a3a244884ceedc0e145506b776d1613e904236a7bd60392fa1caa78e62eb6a3d3fae93281e5c494b2b926d8bf63bd872b01ceb469882a030627864df2abf53c98b375bf883bd176bc4dc3f2b0e50ec020729a3f55e946b3033911163a08b850771fa361cd127fb062405dd607aa86fc7311c511fc6747241003b485fdaa2bc3f1a8bf85b123c8b4fca271381cd9c1198e010774a9b5feeda9c5031b58867854777b540e432cc2a434fc466c8f04b83dca232f84f46ddcd7d049bb031b7b73c6ac688a8bee3c062282a023db977e68ac37088a2d3d50da67ce5448fb0312d1a2ca3e69b3af56d423ff7ae85414af704b40f1868f593ca1146a25ea9e64038882e6a971884cac67839e9ce2b91f78b4ae768c462788296838ff9e58a7c30503ca5bb725d3fb0e275994f1bba18e66e8266dfe736b1de904524755b8586ba1e40308f5816838db947233975f344d61bfbf80cb578c499f92fe7cacb4363bdb22d3032bae5aeca983e20f15333d7d4356529b8893052dbf39026a8e8016adcd806ffd0358d26e9ae89946ec22e79575457bc4948b479bc7339b8df5bec981fdf827e305032d63e20f1be818ecdc6010fb5dde6ce09be78054e2c2718d603f03c8e2dee9af037e1386d7e45a5f8112346614df6364e565fcb284464b232644d71d109176c884036d75d4ccd727171f915f4cb9e4a0b065908354abaf491067a3eac006adf5856e03b15641f2c41feccebeab9fefcdd92071ce295c8a1e966ab4cd7e4d2f14e18e9b038e1531a25497115d1b9b7ffcd8e60f8a98d3cdc19fae8e4fe4a115a04bc7eec40361e3546d21facd7064197e12326f1bf390387efae44a69d4b7f32c70c53e2526032eeddc2c670f527f9c1414e23ffff3cd0c6f867daf9f3851daa8f39e774939010357e7af3844ac3eeafd7d3fbd1892751ce6d4989af267b874726e7cb4f4d2eba903f1a0330b8c7ee56c8a9849a4ed8e7b159cec0a2a958917ebd8e1dc37761250410323d38f291eb8b4a32c3186a84f48e4243ac0caf97f16199cddd344e5e0548ca903f28f23f8ed43ddc5a03888bdbbc2342147168b128572f7fd3578cffe022e02c20388230def1c4a27a77c67e951d09b2ae6c8fbb0016df7ebc254e731f1d6907d5603bcbeccf810c314091977b4e0c8fc07a13e7d6ffd9743ac3273921d2a5e408c5903f5ea08135ab4321500d377329c38633ce7d43c3667e9b4afae890fbd4782a2cd03d937a4ce00226a3c11cc8be185d1580c69517033236805a324408815bae5d98103eff4b9850e5f716dfc220ba292ba0c036513932b87fab1b2e22b719dbb95e8be036dc76b5b1564d47d572a6acc8276dc8a34d4a783029e1bec534b5b65ef61a9db03c60f4ed2c4232d9bdfe4da879d7ef4c28487591eb8f5921c7cec377bee8c10550330ca675f1f02b0535447534496097f6c8ddefc29c05be36f9d0994e067b62a24032360dc092cd7984b2d2985f530fbec0423c07aaf901cacb5a33eb21082cfacdf05581e0351530c52a074ef0fc1f5d29dec30f7fd5909ec83a6d5f359bab292bbb00401038ada8ccbddbdcadf8c963658793fe18f91967f3613e43d6a59412df25c41f001036837a16d4e7106f7e478f5fca7c66f5035d8994b855bbdc5a717e9fd35d085ce03bfca8766ecd07d4167dd55e86424412ee164afdc8609cf31ace96fb3985f107005581e03f5cb8fee0d3a8098c95cc24affac40afc38792e244a8e6fa4039e24ce0040105581e03541fbdcd5bdc95d93e86fa85322887362ec1a0f6644b508566cf3f55b00c0446a2c58a47854005581e03e6e22ed89116f9d8ac026a7cb00a3d4bf01f686a1ba6f9622e2faff2700c09480343b3287057d97805581e0354f877e222465c7a65462fa5efc4ffca3c09c7097b01d2f985990219000c04469d400007e7f30388dc218113e1edd45ab3b976dab66a1ffc695ab23e0f683d8b30aa60b4f235080219db6303608ca49b0c734e2396de839a1db5853a362192a298de99032164508e0fb7f230033e95671f421042ea84dffb0fd2a750d3a2a7b03a5885f6eb38e8d94e2886047d0356cec3c9d1e23af127051184ed50039dea6747da51b830528b5fb3803f2717cd03a0a5f5e1d200c90ec0a4cc60819be5772990bfa6ca4f07d43b66a81631ff2ce903a07cbda0863b1fc2909d6d27216b5a9f3d409b1df9eb395f94d481d492affb100219ffff0219ffff03cc0ddf870496e98757db11eaa6d3930b14b4e3178dd91ed89de61bccaee754b70394bb55978589f5b52ae2c7cf781ba2453d840c625cd62fa2baa61852d04765db036122319b1bd70bc7f4a24698b8beae19ad292c92cccb543d4778f731bdb35bbf03b8af1313410fb56d825469278e72a927e3736a88ae38501ce09d149220ad2b7e0378d0f12fafe247e8ea303e8851464aae9adfb5669dae67a1ad29542476218808030f1f635ae9c39a47612fb4f28ff018b2e5ed2e52d95976102174bec3308958bf0342308e944671b3a6e0ac1db262aa9db16cc1803029831b709fe108289795d21f03a0fa7ebe320dcf2e7fbb343bda07603a2e8ce6d6544cacbceaa6937b2cfe55550359cbb782780d1238790dffca2dffc2f50ded35fc12d920dab0db0619e41f0d870384c9c80db619356af69a2654def5ef10dea6de4555d584674fba82eff52732ef0219ffff03cec5fcb00ed8c5a596a7abb83c50d9510de66bef11e060962e2d5152419f03c5037f7959420ba5a3104cbe024b581c86b82ce729505b8b3469e025df33809d633803f5efa410254f2b6bd560eaee2c8286bbc5f85073c43e48df14787ecce6030fa50384608216b6aa73f1a8b713e24c1189115375bcca4c9c327a8e230316e9c9dc270364fe546f4b43b957cbee464e41eceb18f54359c140c5c9b310bdf758341cf24f035c7f5f28cfd1c8368fa72f8faa565f9aec7292987832c6ea6f92702e6cc19d6a03c97a9b44c37df74caaaa77b7825d9e8757ffc4531d37754793d745ac344974a10333dae1eb563e9750a58dbbf81ce958250754133bdc29344b2f0306279055fce20338fade8834b5fce2cdb819fff688078fe00b5d4f3672495ebc23b1d482c89e3c03865a324bf825f21a22ad55f39a7204e31bf38d1e740558bc689048c5ce700d32038a5122af950d5eac853c3369b640e8936fb361488ba8af533dda5ae0125612a103ed77602e23ee1353acd7ea2983db2de0176d6e1671b5dd86b9e9090f14007bf703c0825b2cd69ace2f98c84b1f11b33be4e93c8a18c3aa3cbab8e7d7f2826149e5038c5bf22a702ad562699dc7c2d3538e9fe03914109bcc9fb9d0f1681548cb7baf036a2e954a152919720162c582f8601a1cbbb8a068f9130fcad9fce4a29322a4f103cede740617ca9c6b37a5120e24dd25c753f42f5a9e8aa73e849f0843be731f19037a7e9ceeda43b7e9ea9d38d7ef5c5962bf492fe9246c98de819fbdc82dfa6df903fa731dfbf72c36ce13902fbdb95c9a0791c2ff8087e17626fccf748f3449d93c031716912252817a83e91d490adff2cd6d04feeb9d349fa640f71bcdf148d05205039d61a193366f33892efcfbaaaaa628ae295fb9be140e35327c9a89e8755c3395038d2cf11da567879f5dd66e8ec724f59dda8521fd7ca1d10f2f3597f93bfa87a703cadbfdfc4c1e4bfc878b373e668d995592e8211f0fba3a45937d803b01ac6d1703c8d1b26fa66b9ca3b3a6541c6b819ede2fc6e707cc65a13b9470d095a89275390384f242177afb576b39156de3eb4a702466afe5f15fad8d98558b3ca72c7387df0382eb2550cd32777c1f8c8b1af21241ede3c73c3f01c248a1719d6ed6b64a375f036ec7793be01733ed15cca1b5997efa95bbc072a13c1144e31a674ed77f57c296014101034b58696c69b3b57d6ed2c25d999c055234982e5751a9067ada29e9165fd8844903448c87b1a8c289e2b05bf7f5b8a95da166688f727436ad3765d600e01c9aca4205581e032019adbe4f0d94cc2374d0e95d8d6fe725e3dc0c6646836f17279afbe00c01470c025d6cbbf80003c69bde509574d251b65b51d6ae75890a61d5751279281fa50a76ff255a52c5ad05581e034fca6a27a43b27fc64dadf5f26d917064d3e448131558da0a1595f4ee00c01461402462f600003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03010a588e4cc785ea88b1e27097ef5c0fdadbb459c7b9cd568fbaa07a2007011bffffffffffffffff0369adfa1e6b65ae4afddfa5ad9ca430e67518bc46d1e1c6a4c80885f4c5fa010505581e032290f3e139cb6b142a8d3e917c07d6d5d98afe2a6ba631941361e640c0040105581e03508157f86fe078cd146d93b0f7476c38aa4c17e3db4f1d1869c430afe00c184f47ca75d32061f1ae0219a6fc03ba8960b2a9029e472612bd2e7c2506e7ee31dcf8c12c402cf29f894c30d7d45103b427589aec63d3c6d5853f5ea90cca4ef140022a6e9795d33ff66091008a30e703eb7ad335928657f319683632d877bd0b47aec675e3046c93062d88b13c9456240219ffff031caa6c7cda191f4bbef200e03d1202b0a220d76c14d2ddd70c65ccaff317d74c03cc87e07ab5fd6ddbd5c5e361e626a0aab124aaa7e07728db344dcddfb00a5ef5030faf48c020402885db2196c8ac6c745b5607d6d4944dc54dcdccfe28446102460392126bc60aa0daf5f12583d1caef002599dd654451d6966ff17cbe743f18ffdb03a18fb95db5c71a6af0feefcbd5b490d0af7764ee954aebdc3a0785b7a4b80ce803f556b9865c5ad28d91e5d12137ae9b09634ab414e60aebe8780b552f8be1a24003dd5508aa6809927554108c145f3e5f4e1afab4b22cc03d5b45985fa1cfc349ac035b12436fe0030fb9cc3c3b0b125279c528e5076a9ccc30b78adf58306217fbf0036add7fd24e94044ba8a8428fcb757e795e11a026a9bcd4146ee87679b36ce0180219ffff03e86a24baf0dc3056b47a7f853af4fa20d8b061e5f3c03486e3c4f40cecdf558303a3dee33d90cb47063652f103fb66e0735e76a3194ce83d2eea3245650bb36d3e039e7b618e872e148b235864d8f6be3f1c4381498c241aaf37187892f386da55ac0391b2f03588ce28c2d9096705d03642b3dc8b5e0c0910fbb0afaa20d65aedd5f303d98ff1052b82f08dff49505cacd364842196a3e830822d7ed8d90d35f701153d0325befecf22191f991a0518c6a51c0f13752bfe76abec83bbe074847c57b3f50503214c17a39e4fd1bc23ebf89a6efdbdf6490cc5b2500470282ca18e24f278d3ea03df6325906538a826a58bb947facb66d5da3268ff12ce7d0e4c7b7fb8b98b021003627ccc81d161c03c56bb9cb5f7ab02bd512c8e162f4b8bdedf86258c841bc82003c6cf95e559660eb53843d70121a143949203729391bb91c1ad3645de09ecf597034836579371abb11ecf6265e72b08f89a37604ed4ad914af9c4a8d22c0aec54440338fcf3ebee05e621b6aee099183f63726f9e1f88efe514fd6756bdef306d64df03b67ce8fb340f3409cf2a55b86866bc445f963ae498550e017aed24fd7daebbc70219ffff03a4cf9dffebc57abb39b600dc6358b2c0eded2e75ba5277f6d5453a6a1693ca46038a1a792db1eda5aac3151501fb7a76b98f5828d81ccf6e9cfc545f11209b009103684a62022c5ac0e1dcbb926ec4f8874095ef5071599717be4f2387fa36c476b9034f9fbc035bcd7d200b73766fac4a45b7181d3622a73252526cf413250c0bb74f03591494d1329340a716bc696ad1b3e9732949393fcdb594a49a7eb89606b028b90360b16f1443e996e45bc02443702af89d3d33d460666a93e0650ccf436f7635b60219ffff03c7ff93d0f2616fdb13d07857fbd0aec956e7865682a197d462800c3e34f8729b0332546ce8dbe7065bafc1871b6db6e7acdf64adc85e0de6bfc9cf8fa5ce6aafbf03fa7e07eb42c94d3639ed714eacdedaaed1c7c94350a870e85ef800b7c0d24b4303b10df4ff86f67425a070bc2ad0b19e15e5cede030885be9766fd0a28025ff07403ba82affe1f13d4820e7c119782df135238e772f499bba5d5d397c9297a79bcb6030cbb2bf2643eaf2a54d16c006907ac8b8a78a3760c8d26d7af729333ec8cdcbc032e5b8fe54a070b64c758280c29c2ee2ae3b03852f1636aaa4dd7c63421c4d90f03555e3b215bfc6202826571fbc61272167223b17a37dd4ecb0fc4c76302949eb203db9a9f008d74b00002357cd4f1f8b1c23dfb16f6ab9e4f0c22823515745a144f03277e9e049790e724ddd3ea1fd1bce84b2321a3555d40ac4a8bd7a428df90898a034a80814b586598d6a7166a177e799e4cf5d8d64cad6dada6fb0beab9ece8d28103489f4dd70897f2d8068ab81d13aeabb563706e2f5853cdefe871ea336867d7b40348e923febee17c67fee4fecadfcef051de9bfc388378b3253413d0dcd4d7ac6e03ed1417d292ef64576998ca80429a4f60937100fa36fc37d8182a3b6d9f59ee72032064571b3cef06343e765f615df9d4f941038d878bde183b2057d1204aeb8b92037b290f39175de71c7456f5c034175cf1f65e866fd009975f3f0ad8dccab78ddb032c33d4f6f77068b244a84e7770673075bf8495b1fad191c36d6fdf65e1d3e08d0378eaaa7c028959bcc8e344c598310d8f2f794167934af9d0d65aaea96cdc0774036f4803bd0142b38d5481897d9ae9829a0ee53a685db21ef6b56d89266d9b60d20303c798f185ee5ed5c5e6b7aa0a75a08800d47f7bef38c378ee1ef71db87ad43003eab170b59d61abaf934b086f5501f16a41ecac7426a108520261cb8e2bdd2d98039ac0e4e18b1112bc6095d601e9b02813eb2e448ac20599070ac3aa531ac5cc5f033ebbaf2b5569ca90e75b992807d4cfcca8c580d6fb160ff0a0cd223bd1e8e2f2031ddd4492e6e52d6fd47084c0435bf7a2bb25ff830f50dd924e23d0a6b91629ac03c9c0613dcdc044c264045681c26e3a5257f088b36c491d1a18ac84da3c592ab203626a66bcf1079010684e8ba0267c30233a4e49bb693e4b974b18f7bc70b614f4033490142bb98b27279893f99b3b0e92883f35a75aea346d0bb6271599ebd1e36d0323d22ac7d397666a1073de218be2c34caf738f751bc4925f5e69705c61b66f00032ab8f29e690b80adcf87a53d11b314e62d1812f810a54d7895776cb79655edef03aed1ee32c4f34a3b2ef6d3585540116ab85d0ab1d5869d3aac8d1349f96593d303e18a643b342cfda01c4c2e1b46abfc51f5f59bc74d35a5548a4fcd0d04bd06630305348b8e08ece90582c819ae2230cf8a90ac14f53d05b76c08277cae3cc41a160371d65c0c6f65dbdd3df04aa3b5bc097666c0c9e0145f05f32615c3c1c4f09ba903712933d8456633f423550ebaefe0cda0e3f7a9c9c08af9f2c5dbb1dbcb9551c203a56ab216bd48498ddf1f142c8d410ca99c2a36be9cc342d5fd6349326319689f0390c7139d37cf47dc2a70f7a6b0c42ea80fbc370ffc765478b605d6380e713779034ce789b9f61d0463d52991072440926e7d7e3a5f19ac82e05c0586cde74570e403742e182cba1df9be503de89c6578f25113f0e5fc32daffabc6c311d8313f49d20321807e9aa5a6007f25308e90b1895ab6637086d4fb19b2d43d2d3df95abe273003a8f65e094107f683793efba3223e24bf3690b82fdd54b44207d8a69a9215d80005581e0325ee0c0886d56aa53ab36af3bbced3d3abd9fd32ace7471551131f31e0040305581e037ce65b1cee37472941a50cff2bd8cae9c7fdd8c18f508faeda7ab0f1300c01473a717d119c8c0005581e0353270808b40f96ee6cfb323e80b6c273c569e07a319d8c81976639b520040105581e03f1fab5678fff1061acedbdff1e8350f5119d167bd419d3a704a12be1900c01462cedd574a60905581e031bff7fa6478abceae345fb0d5d019bc6b876152ddf8c2ac7725d16cfb0041005581e03967a8065b9b60b0229184e35e65bec5fe13e395bb3ad2eb989ba369570040105581e039f1ce8c85883cfef2d1f2a23164333fa67c61a03f60ea86458a55621600401045947ae6080604052600436106102285760003560e01c806375f0a87411610123578063bbc0c742116100ab578063d85ba0631161006f578063d85ba0631461083b578063dd62ed3e14610866578063e2f45605146108a3578063f2fde38b146108ce578063f8b45b05146108f75761022f565b8063bbc0c74214610742578063bfd792841461076d578063c0246668146107aa578063c8c8ebe4146107d3578063d257b34f146107fe5761022f565b806395d89b41116100f257806395d89b411461064b57806396188399146106765780639a7a23d61461069f578063a457c2d7146106c8578063a9059cbb146107055761022f565b806375f0a874146105a15780637f2feddc146105cc5780638a8c523c146106095780638da5cb5b146106205761022f565b806339509351116101b15780636b999053116101755780636b999053146104d05780636ddd1713146104f957806370a0823114610524578063715018a6146105615780637571336a146105785761022f565b806339509351146103d757806349bd5a5e146104145780634fbee1931461043f57806366ca9b831461047c5780636a486a8e146104a55761022f565b80631694505e116101f85780631694505e146102ee57806318160ddd1461031957806323b872dd1461034457806327c8f83514610381578063313ce567146103ac5761022f565b8062b8cf2a1461023457806302dbd8f81461025d57806306fdde0314610286578063095ea7b3146102b15761022f565b3661022f57005b600080fd5b34801561024057600080fd5b5061025b60048036038101906102569190613397565b610922565b005b34801561026957600080fd5b50610284600480360381019061027f9190613416565b610a33565b005b34801561029257600080fd5b5061029b610b26565b6040516102a891906134d5565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d391906134f7565b610bb8565b6040516102e59190613552565b60405180910390f35b3480156102fa57600080fd5b50610303610bd6565b60405161031091906135cc565b60405180910390f35b34801561032557600080fd5b5061032e610bfa565b60405161033b91906135f6565b60405180910390f35b34801561035057600080fd5b5061036b60048036038101906103669190613611565b610c04565b6040516103789190613552565b60405180910390f35b34801561038d57600080fd5b50610396610cfc565b6040516103a39190613673565b60405180910390f35b3480156103b857600080fd5b506103c1610d02565b6040516103ce91906136aa565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f991906134f7565b610d0b565b60405161040b9190613552565b60405180910390f35b34801561042057600080fd5b50610429610db7565b6040516104369190613673565b60405180910390f35b34801561044b57600080fd5b50610466600480360381019061046191906136c5565b610ddb565b6040516104739190613552565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e9190613416565b610e31565b005b3480156104b157600080fd5b506104ba610f1b565b6040516104c791906135f6565b60405180910390f35b3480156104dc57600080fd5b506104f760048036038101906104f291906136c5565b610f21565b005b34801561050557600080fd5b5061050e610ff8565b60405161051b9190613552565b60405180910390f35b34801561053057600080fd5b5061054b600480360381019061054691906136c5565b61100b565b60405161055891906135f6565b60405180910390f35b34801561056d57600080fd5b50610576611053565b005b34801561058457600080fd5b5061059f600480360381019061059a919061371e565b6110db565b005b3480156105ad57600080fd5b506105b66111b2565b6040516105c39190613673565b60405180910390f35b3480156105d857600080fd5b506105f360048036038101906105ee91906136c5565b6111d8565b60405161060091906135f6565b60405180910390f35b34801561061557600080fd5b5061061e6111f0565b005b34801561062c57600080fd5b506106356112a4565b6040516106429190613673565b60405180910390f35b34801561065757600080fd5b506106606112ce565b60405161066d91906134d5565b60405180910390f35b34801561068257600080fd5b5061069d60048036038101906106989190613416565b611360565b005b3480156106ab57600080fd5b506106c660048036038101906106c1919061371e565b611500565b005b3480156106d457600080fd5b506106ef60048036038101906106ea91906134f7565b611618565b6040516106fc9190613552565b60405180910390f35b34801561071157600080fd5b5061072c600480360381019061072791906134f7565b611703565b6040516107399190613552565b60405180910390f35b34801561074e57600080fd5b50610757611721565b6040516107649190613552565b60405180910390f35b34801561077957600080fd5b50610794600480360381019061078f91906136c5565b611734565b6040516107a19190613552565b60405180910390f35b3480156107b657600080fd5b506107d160048036038101906107cc919061371e565b611754565b005b3480156107df57600080fd5b506107e8611879565b6040516107f591906135f6565b60405180910390f35b34801561080a57600080fd5b506108256004803603810190610820919061375e565b61187f565b6040516108329190613552565b60405180910390f35b34801561084757600080fd5b506108506119d4565b60405161085d91906135f6565b60405180910390f35b34801561087257600080fd5b5061088d6004803603810190610888919061378b565b6119da565b60405161089a91906135f6565b60405180910390f35b3480156108af57600080fd5b506108b8611a61565b6040516108c591906135f6565b60405180910390f35b3480156108da57600080fd5b506108f560048036038101906108f091906136c5565b611a67565b005b34801561090357600080fd5b5061090c611b5e565b60405161091991906135f6565b60405180910390f35b61092a611b64565b73ffffffffffffffffffffffffffffffffffffffff166109486112a4565b73ffffffffffffffffffffffffffffffffffffffff161461099e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099590613817565b60405180910390fd5b60005b8151811015610a2f576001601760008484815181106109c3576109c2613837565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a2790613895565b9150506109a1565b5050565b610a3b611b64565b73ffffffffffffffffffffffffffffffffffffffff16610a596112a4565b73ffffffffffffffffffffffffffffffffffffffff1614610aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa690613817565b60405180910390fd5b81600f8190555080601081905550601054600f54610acd91906138dd565b600e81905550600e546013819055506008600e541115610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b199061395d565b60405180910390fd5b5050565b606060038054610b35906139ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610b61906139ac565b8015610bae5780601f10610b8357610100808354040283529160200191610bae565b820191906000526020600020905b815481529060010190602001808311610b9157829003601f168201915b5050505050905090565b6000610bcc610bc5611b64565b8484611b6c565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b6000610c11848484611d35565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c5c611b64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd390613a4f565b60405180910390fd5b610cf085610ce8611b64565b858403611b6c565b60019150509392505050565b61dead81565b60006012905090565b6000610dad610d18611b64565b848460016000610d26611b64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610da891906138dd565b611b6c565b6001905092915050565b7f000000000000000000000000605684b039b373568aeb4871356eefe0eb812ead81565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e39611b64565b73ffffffffffffffffffffffffffffffffffffffff16610e576112a4565b73ffffffffffffffffffffffffffffffffffffffff1614610ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea490613817565b60405180910390fd5b81600c8190555080600d81905550600d54600c54610ecb91906138dd565b600b819055506008600b541115610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e9061395d565b60405180910390fd5b5050565b600e5481565b610f29611b64565b73ffffffffffffffffffffffffffffffffffffffff16610f476112a4565b73ffffffffffffffffffffffffffffffffffffffff1614610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9490613817565b60405180910390fd5b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61105b611b64565b73ffffffffffffffffffffffffffffffffffffffff166110796112a4565b73ffffffffffffffffffffffffffffffffffffffff16146110cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c690613817565b60405180910390fd5b6110d96000612874565b565b6110e3611b64565b73ffffffffffffffffffffffffffffffffffffffff166111016112a4565b73ffffffffffffffffffffffffffffffffffffffff1614611157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114e90613817565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60186020528060005260406000206000915090505481565b6111f8611b64565b73ffffffffffffffffffffffffffffffffffffffff166112166112a4565b73ffffffffffffffffffffffffffffffffffffffff161461126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390613817565b60405180910390fd5b6001600a60006101000a81548160ff0219169083151502179055506001600a60016101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546112dd906139ac565b80601f0160208091040260200160405190810160405280929190818152602001828054611309906139ac565b80156113565780601f1061132b57610100808354040283529160200191611356565b820191906000526020600020905b81548152906001019060200180831161133957829003601f168201915b5050505050905090565b611368611b64565b73ffffffffffffffffffffffffffffffffffffffff166113866112a4565b73ffffffffffffffffffffffffffffffffffffffff16146113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d390613817565b60405180910390fd5b670de0b6b3a76400006103e860056113f2610bfa565b6113fc9190613a6f565b6114069190613af8565b6114109190613af8565b821015611452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144990613b9b565b60405180910390fd5b670de0b6b3a76400006103e86005611468610bfa565b6114729190613a6f565b61147c9190613af8565b6114869190613af8565b8110156114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf90613c2d565b60405180910390fd5b670de0b6b3a7640000816114dc9190613a6f565b600981905550670de0b6b3a7640000826114f69190613a6f565b6007819055505050565b611508611b64565b73ffffffffffffffffffffffffffffffffffffffff166115266112a4565b73ffffffffffffffffffffffffffffffffffffffff161461157c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157390613817565b60405180910390fd5b7f000000000000000000000000605684b039b373568aeb4871356eefe0eb812ead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361160a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160190613cbf565b60405180910390fd5b611614828261293a565b5050565b60008060016000611627611b64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116db90613d51565b60405180910390fd5b6116f86116ef611b64565b85858403611b6c565b600191505092915050565b6000611717611710611b64565b8484611d35565b6001905092915050565b600a60009054906101000a900460ff1681565b60176020528060005260406000206000915054906101000a900460ff1681565b61175c611b64565b73ffffffffffffffffffffffffffffffffffffffff1661177a6112a4565b73ffffffffffffffffffffffffffffffffffffffff16146117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c790613817565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161186d9190613552565b60405180910390a25050565b60075481565b6000611889611b64565b73ffffffffffffffffffffffffffffffffffffffff166118a76112a4565b73ffffffffffffffffffffffffffffffffffffffff16146118fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f490613817565b60405180910390fd5b620186a0600161190b610bfa565b6119159190613a6f565b61191f9190613af8565b821015611961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195890613de3565b60405180910390fd5b6103e8600561196e610bfa565b6119789190613a6f565b6119829190613af8565b8211156119c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bb90613e75565b60405180910390fd5b8160088190555060019050919050565b600b5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b611a6f611b64565b73ffffffffffffffffffffffffffffffffffffffff16611a8d6112a4565b73ffffffffffffffffffffffffffffffffffffffff1614611ae3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ada90613817565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4990613f07565b60405180910390fd5b611b5b81612874565b50565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd290613f99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c419061402b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d2891906135f6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9b906140bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0a9061414f565b60405180910390fd5b60008103611e2c57611e27838360006129db565b61286f565b611e346112a4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ea25750611e726112a4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611edb5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f15575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f2e5750600560149054906101000a900460ff16155b156123f457600a60009054906101000a900460ff1661202857601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611fe85750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201e906141bb565b60405180910390fd5b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120cc5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61210b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210290614227565b60405180910390fd5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121ae5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612255576007548111156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef906142b9565b60405180910390fd5b6009546122048361100b565b8261220f91906138dd565b1115612250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224790614325565b60405180910390fd5b6123f3565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122f85750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561234757600754811115612342576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612339906143b7565b60405180910390fd5b6123f2565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123f1576009546123a48361100b565b826123af91906138dd565b11156123f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e790614325565b60405180910390fd5b5b5b5b5b60006123ff3061100b565b9050600060085482101590508080156124245750600a60019054906101000a900460ff165b801561243d5750600560149054906101000a900460ff16155b80156124935750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124e95750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561253f5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612583576001600560146101000a81548160ff021916908315150217905550612567612c5a565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126395750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561264357600090505b6000811561285657601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126a657506000600e54115b15612740576126d360646126c5600e5488612e6790919063ffffffff16565b612e7d90919063ffffffff16565b9050600e54601054826126e69190613a6f565b6126f09190613af8565b6012600082825461270191906138dd565b92505081905550600e54600f54826127199190613a6f565b6127239190613af8565b6011600082825461273491906138dd565b92505081905550612832565b601660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561279b57506000600b54115b15612831576127c860646127ba600b5488612e6790919063ffffffff16565b612e7d90919063ffffffff16565b9050600b54600d54826127db9190613a6f565b6127e59190613af8565b601260008282546127f691906138dd565b92505081905550600b54600c548261280e9190613a6f565b6128189190613af8565b6011600082825461282991906138dd565b925050819055505b5b6000811115612847576128468730836129db565b5b808561285391906143d7565b94505b6128618787876129db565b601354600e81905550505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a41906140bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab09061414f565b60405180910390fd5b612ac4838383612e93565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b419061447d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bdd91906138dd565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c4191906135f6565b60405180910390a3612c54848484612e98565b50505050565b6000612c653061100b565b90506000601154601254612c7991906138dd565b9050600080831480612c8b5750600082145b15612c9857505050612e65565b6014600854612ca79190613a6f565b831115612cc0576014600854612cbd9190613a6f565b92505b600060028360125486612cd39190613a6f565b612cdd9190613af8565b612ce79190613af8565b90506000612cfe8286612e9d90919063ffffffff16565b90506000479050612d0e82612eb3565b6000612d238247612e9d90919063ffffffff16565b90506000612d4e87612d4060115485612e6790919063ffffffff16565b612e7d90919063ffffffff16565b905060008183612d5e91906143d7565b905060006012819055506000601181905550600086118015612d805750600081115b15612dcd57612d8f86826130f0565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618582601254604051612dc49392919061449d565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612e1390614505565b60006040518083038185875af1925050503d8060008114612e50576040519150601f19603f3d011682016040523d82523d6000602084013e612e55565b606091505b5050809750505050505050505050505b565b60008183612e759190613a6f565b905092915050565b60008183612e8b9190613af8565b905092915050565b505050565b505050565b60008183612eab91906143d7565b905092915050565b6000600267ffffffffffffffff811115612ed057612ecf6131f6565b5b604051908082528060200260200182016040528015612efe5781602001602082028036833780820191505090505b5090503081600081518110612f1657612f15613837565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fdf919061452f565b81600181518110612ff357612ff2613837565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613058307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611b6c565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130ba959493929190614655565b600060405180830381600087803b1580156130d457600080fd5b505af11580156130e8573d6000803e3d6000fd5b505050505050565b61311b307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611b6c565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401613182969594939291906146af565b60606040518083038185885af11580156131a0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131c59190614725565b5050505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61322e826131e5565b810181811067ffffffffffffffff8211171561324d5761324c6131f6565b5b80604052505050565b60006132606131cc565b905061326c8282613225565b919050565b600067ffffffffffffffff82111561328c5761328b6131f6565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132cd826132a2565b9050919050565b6132dd816132c2565b81146132e857600080fd5b50565b6000813590506132fa816132d4565b92915050565b600061331361330e84613271565b613256565b905080838252602082019050602084028301858111156133365761333561329d565b5b835b8181101561335f578061334b88826132eb565b845260208401935050602081019050613338565b5050509392505050565b600082601f83011261337e5761337d6131e0565b5b813561338e848260208601613300565b91505092915050565b6000602082840312156133ad576133ac6131d6565b5b600082013567ffffffffffffffff8111156133cb576133ca6131db565b5b6133d784828501613369565b91505092915050565b6000819050919050565b6133f3816133e0565b81146133fe57600080fd5b50565b600081359050613410816133ea565b92915050565b6000806040838503121561342d5761342c6131d6565b5b600061343b85828601613401565b925050602061344c85828601613401565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613490578082015181840152602081019050613475565b60008484015250505050565b60006134a782613456565b6134b18185613461565b93506134c1818560208601613472565b6134ca816131e5565b840191505092915050565b600060208201905081810360008301526134ef818461349c565b905092915050565b6000806040838503121561350e5761350d6131d6565b5b600061351c858286016132eb565b925050602061352d85828601613401565b9150509250929050565b60008115159050919050565b61354c81613537565b82525050565b60006020820190506135676000830184613543565b92915050565b6000819050919050565b600061359261358d613588846132a2565b61356d565b6132a2565b9050919050565b60006135a482613577565b9050919050565b60006135b682613599565b9050919050565b6135c6816135ab565b82525050565b60006020820190506135e160008301846135bd565b92915050565b6135f0816133e0565b82525050565b600060208201905061360b60008301846135e7565b92915050565b60008060006060848603121561362a576136296131d6565b5b6000613638868287016132eb565b9350506020613649868287016132eb565b925050604061365a86828701613401565b9150509250925092565b61366d816132c2565b82525050565b60006020820190506136886000830184613664565b92915050565b600060ff82169050919050565b6136a48161368e565b82525050565b60006020820190506136bf600083018461369b565b92915050565b6000602082840312156136db576136da6131d6565b5b60006136e9848285016132eb565b91505092915050565b6136fb81613537565b811461370657600080fd5b50565b600081359050613718816136f2565b92915050565b60008060408385031215613735576137346131d6565b5b6000613743858286016132eb565b925050602061375485828601613709565b9150509250929050565b600060208284031215613774576137736131d6565b5b600061378284828501613401565b91505092915050565b600080604083850312156137a2576137a16131d6565b5b60006137b0858286016132eb565b92505060206137c1858286016132eb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613801602083613461565b915061380c826137cb565b602082019050919050565b60006020820190508181036000830152613830816137f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138a0826133e0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036138d2576138d1613866565b5b600182019050919050565b60006138e8826133e0565b91506138f3836133e0565b925082820190508082111561390b5761390a613866565b5b92915050565b7f4d757374206b6565702066656573206174203825206f72206c65737300000000600082015250565b6000613947601c83613461565b915061395282613911565b602082019050919050565b600060208201905081810360008301526139768161393a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806139c457607f821691505b6020821081036139d7576139d661397d565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613a39602883613461565b9150613a44826139dd565b604082019050919050565b60006020820190508181036000830152613a6881613a2c565b9050919050565b6000613a7a826133e0565b9150613a85836133e0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613abe57613abd613866565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b03826133e0565b9150613b0e836133e0565b925082613b1e57613b1d613ac9565b5b828204905092915050565b7f43616e6e6f7420736574206d617854786e206c6f776572207468616e20302e3560008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b85602183613461565b9150613b9082613b29565b604082019050919050565b60006020820190508181036000830152613bb481613b78565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613c17602483613461565b9150613c2282613bbb565b604082019050919050565b60006020820190508181036000830152613c4681613c0a565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613ca9603983613461565b9150613cb482613c4d565b604082019050919050565b60006020820190508181036000830152613cd881613c9c565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613d3b602583613461565b9150613d4682613cdf565b604082019050919050565b60006020820190508181036000830152613d6a81613d2e565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000613dcd603583613461565b9150613dd882613d71565b604082019050919050565b60006020820190508181036000830152613dfc81613dc0565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613e5f603483613461565b9150613e6a82613e03565b604082019050919050565b60006020820190508181036000830152613e8e81613e52565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ef1602683613461565b9150613efc82613e95565b604082019050919050565b60006020820190508181036000830152613f2081613ee4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f83602483613461565b9150613f8e82613f27565b604082019050919050565b60006020820190508181036000830152613fb281613f76565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614015602283613461565b915061402082613fb9565b604082019050919050565b6000602082019050818103600083015261404481614008565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140a7602583613461565b91506140b28261404b565b604082019050919050565b600060208201905081810360008301526140d68161409a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614139602383613461565b9150614144826140dd565b604082019050919050565b600060208201905081810360008301526141688161412c565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006141a5601683613461565b91506141b08261416f565b602082019050919050565b600060208201905081810360008301526141d481614198565b9050919050565b7f596f7572206163636f756e7420697320626c61636b6c69737465642100000000600082015250565b6000614211601c83613461565b915061421c826141db565b602082019050919050565b6000602082019050818103600083015261424081614204565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b60006142a3603583613461565b91506142ae82614247565b604082019050919050565b600060208201905081810360008301526142d281614296565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061430f601383613461565b915061431a826142d9565b602082019050919050565b6000602082019050818103600083015261433e81614302565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006143a1603683613461565b91506143ac82614345565b604082019050919050565b600060208201905081810360008301526143d081614394565b9050919050565b60006143e2826133e0565b91506143ed836133e0565b925082820390508181111561440557614404613866565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614467602683613461565b91506144728261440b565b604082019050919050565b600060208201905081810360008301526144968161445a565b9050919050565b60006060820190506144b260008301866135e7565b6144bf60208301856135e7565b6144cc60408301846135e7565b949350505050565b600081905092915050565b50565b60006144ef6000836144d4565b91506144fa826144df565b600082019050919050565b6000614510826144e2565b9150819050919050565b600081519050614529816132d4565b92915050565b600060208284031215614545576145446131d6565b5b60006145538482850161451a565b91505092915050565b6000819050919050565b600061458161457c6145778461455c565b61356d565b6133e0565b9050919050565b61459181614566565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6145cc816132c2565b82525050565b60006145de83836145c3565b60208301905092915050565b6000602082019050919050565b600061460282614597565b61460c81856145a2565b9350614617836145b3565b8060005b8381101561464857815161462f88826145d2565b975061463a836145ea565b92505060018101905061461b565b5085935050505092915050565b600060a08201905061466a60008301886135e7565b6146776020830187614588565b818103604083015261468981866145f7565b90506146986060830185613664565b6146a560808301846135e7565b9695505050505050565b600060c0820190506146c46000830189613664565b6146d160208301886135e7565b6146de6040830187614588565b6146eb6060830186614588565b6146f86080830185613664565b61470560a08301846135e7565b979650505050505050565b60008151905061471f816133ea565b92915050565b60008060006060848603121561473e5761473d6131d6565b5b600061474c86828701614710565b935050602061475d86828701614710565b925050604061476e86828701614710565b915050925092509256fea2646970667358221220672c933b6c7b7abacd4fc7d19d830fffe0038a873ed50a8c5d7b6d0854053d5c64736f6c6343000810003300582003c120d004b2f93423b495bf920f80b1d157b0a70e0c78af7702de3ffcb9bb404902bc410fd463e17c1403f4c69fdb66663dd65cf4d5824d265cb7c10e390e72003226b895f1e9842a95250058200340a9f66fcf6f54ed1bbbedb36dc17474a45cf5c397bee4ff0addbdd4c4a2105820fffffffffffffffffffffffffffffffffffffffffffff92397acce8e9fbfffff037dce68e3ec9077b3a6946b35dda346e67c1673cf35e51dcf51bbcb7bbaaa9648005820032da836ff7bf6c366079c6ef2fc65fa994009c70b7c36396e5092a237130c604a412527326d6b6317b06f00582003d9973ed08ff93d26c4757bb5ad1ca388393b6e4a93de74609367ae834b83d04a02f90cd83e36d42ec2f703eb3886b376905bde534f32d43615160957a9a89cb9af32f9a0aa383517a858670313117c7fecff416103527359ce7c0298a9fdcfea5ffd79087615fa04a0fd4504038de82002575aa189229e901505f41f64e3bdf1f1e4f453974b8596a3aab34d30034d7965d7949ff0fec8e37a58a691c127c5f747759a67c854d75e3461d79f40740219f15e03102d9365e32c79687e3ee1d2281469527f200264fe479eb6d91e7b651553a6e20365e0f9e8b86268f60997079bc8dc5d91776c34b9d4aad2ba7eeb24ef626ad0ab0058200316474b7cdae67bad472827b9f2fa0f5a61da53e0b31c29f71fc2e89c6f80105820ffffffffffffffffffffffffffffffffffffffffffff903b660e8456358aa0ff03ffefffe03b520dffb0114ed0bf02cd7152b34ae8a7665b15db8f36bb5fc1b54503b87376919b194230a29cecf2f95c0e9ab9626037a5c41f3927f633a4e79aa7a900581f02e82c4a14d1585b9b921bc1082168cee591349b5225834dc2e50af8b831e64a04e5ae27fb61d11782da00581f026855609be1a260a3eb848c60603abd3d8041d826f28064e4f5ad52fbb1035820fffffffffffffffffffffffffffffffffffffffffff581530a1a9dfdccdfea1e02195000034a0150afc4cb8324140541e96e5ed14c92ba4475c7b9118c454a28b4c6852dbf01410c03bd041ef64776b6f2d23b05ce4f256daa3a1204b45a88d1a1aa9d83b108367ef903d1d87c6e0dad662c6c4a8155151d3de8877c6f6c52f67e089dff06d60b9814bb03d25c47c4b7f15d9adc657e2ab163629f386520988a1645b654c1453cca35dc98005820036ae2017d4fab139e123937dc1afbc3120191395e0686b438cad3e2d402fcf05820ffffffffffffffffffffffffffffffffffffffffffffec086e706db88f4006030383f96384a5576aa4efc6b973863ce86ae779d526d3d73149e70c70723394c29c0058200387e857f34454026054bbb8f9f99b8560039060d6da83106b472c01b86c85304809c1e29c8573dc2003c29e309d35b0a46bc83b5bace90791f7456771d521224c26d437c15ff9d3402202197ff103aa9b2c84fb06e8f28515565b1b13a2111c2c5d85a6d649312759187154b3d5bd0352c99c9f5b876d77bdee3fb3450cd435e2ace5d10f97e470e08d352ca8211cef03ab177436aeabbfc08644ac80b0914778f8d2d16392619fcd22413c7bc5d416b103ffe6adf4bee30ef6ded6943f05482bce4522702b6f230e4c46fad591e9a640e203f1f82fd3c891d98a6660203c01f82e58b005bedd99a8ffbf580f9ae6f920f3740305eecda87214ebb613b025e8092eaccbb98cd0624c9bb457ef197df64af7f39703288fb73dc70e470cf13842824f822597897f4f73f0588fffe4d1c79ccd248027031e708fa938371ed09458b2afc736b22461e6764b4157d82c43f74b58273ed747036a7b9c781cd0ba98305bb665522413a5614454be7e5f8c7aedfc6da3bc1f8f0f0308aec2a19f6691577e2b00e47090558124c82d071b161e7556f05c40fcdf183903120359df4e5811b217041af8e3b0e553b0176043796919bb970164435f79943203ab785b1e5641abc146c926c1632b2cb1b911b1ca5ce14952b99b6f783e3563e70219ffff00582003dcd1eab44eb6609c3c8dee254bf18e920e3055c92e7d43d3539b948d8e75905820ffffffffffffffffffffffffffffffffffffffffffffe8f684baa2b3ff62e4c8005820030bb078aab75e907db2cd5ae2876d900947c9bde1b6d9eebc14b2b91da065c05820fffffffffffffffffffffffffffffffffffffffffffd0dc6b2b1e58638bd96120058200318a73585c1555c06006d773e4115f2943628ed870f8f9ff5cc768867deea305820ffffffffffffffffffffffffffffffffffffffffffff416cf65433082e57ffff0359307df0ee9ad9ba83c3e216260b4ff5d4c86ea8720210b527fcc127449b1ee00313d73ea28ecac8f21d7387d13f91f941932041cb794fc2ff5f52dd18fe907db900581f02746cbcb340c842750270b88c18c5d7cf244b2b626423d1b8704de2a30bc95820fffffffffffffffffffffffffffffffffffffffffff66e346e0db74fc84c086c00581f0206d7e46c83fbabb03fca99928cd46c8725edd4687d0a5a5b76f544fc13764ae7fb4442045c48a376440219014000582003725f5d08ae8fdad320326167f06ca4c2e391688e1134dba40606eacd5dc8f05820fffffffffffffffffffffffffffffffffffffffffffd87df7cf1f074a39208270347d05ee86a85d54938dafb10501bc1672aea0252a9e348af6b906b11b8ef24b003a44ddb7f86a37937634005dc88697d02cf44a8b456d09475a33acdfc5072a8490219acad03654b8623b4cf25ffbd640bc65b843bac44a49feb1bd5aa011102d875e2d268ca031a1316fa33f380879659a2fa1040c04a3e36e0edbf04967a8dac96a2c73e468d03f5b9038de81cce7783ff8e62dfa14c6b98176daac280090666b158483c6cb99d033bdd8915c80e71e8739a7b22fc26032f865fde5e419f84ceec8043a0d7909b8b03f091381bef62b1ce995d028fd29a3b278149bc40b3d0f9fa86fbc6d4da1f8a2503f2a3786a54a6924de51a8fc51167254305caf65c4149f39e6069dfe14da5d51903597ecf4dad08cbb776eb63d1e9a029d091032a2f2a6ddfde926ca1033f894bf70305438f20f3edabb3db70946bb1b47fbbac90a35afef122b1ca9d9cdd3a4f86080396254c42504f1ab5f5e51f1c43c9fdb44089d33c41f5a9a5538cfd0dff260bed03dd039124901a19514677f01187dbac6827cdddcddee0857dcbd06ca902516b1000582003fb62c765bd95f714630648df3d51ad7ae5582cdfd6af3de8ca69c142354f805820ffffffffffffffffffffffffffffffffffffffffffff249cd56a669b8cc64cc500582003488610ff0bb3b841119eb2b6aa11df111a8ea95a40cc37f3b0197256bf11805820fffffffffffffffffffffffffffffffffffffffffffffdb4c1a57bd63c61ff41005820034466a30f9630c72def22cb378bf2633e50336ed6f07fbac79420f308b62a905820fffffffffffffffffffffffffffffffffffffffffffe682afbd959bca6749a1100582003b2e751eb3302a07cd113469c825c4c9ce63f0232ba73902b5bc42778d45ff05820ffffffffffffffffffffffffffffffffffffffffffff767da38b1e8304d01836036802556106fab983f43defb48b4d1e5c4c92a82dbe8a4eb3faef68fc51d05a95038b4eefc9f8db4bd565ea15e5954d9bb3ad88d5999bb937e91e4ef298e3530285005820032fe97f35e8ede984b1ed7495594fc727e2c36b7b4d5c807ce9507a144418d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03dc8b7321f63dd5e2d8f23baff9a80b20f217d302ff9cb50c3461b836d508eb7703074b72e83dfe3f52b953178a9438e59f16885c1ae75b4a95b267f5c4bc7fa0c90058200304218e84ccb7fa7877f436d48f51c0fedc675a30c459aa7ddf72062b56ffc05820ffffffffffffffffffffffffffffffffffffffffffffd5e1bb3e1334b2a93ac603c5b2226e46720211814e39930a204a1d44480e51c4216303b85d5bcaa3343e190219dfd103b3a6254552ba73cbac7f38cc11c47528806007d6638d7d8741dede25a207193903c4561ca125dcfa7db2b5d9c35e4d493f53e9a22919b575e308169e3f85a8eb1003f29a13e87cdd4c0e8fd363db15e018a098760f954bad3c1c56b6d6403e825c34039aeb4022d3d920c40d8081eb016b2866793675011999179a53da3213fc376fe20219ffff03abdf2de84157d81695aebe33ec8804016bba0b58da4e24ef79df9288d94cf9ae03436b89fd7072faae71e374617f44d303c3f52bb255bbd084b29d31bd59755a5f03729a95d03a0f519c0cf73b70eb19d88517363a78c4a66692dff5cf6735404d26032dc0a81545638d97615472d830aa0edf02284c338f50e6e7b1568e7d9b93d7da032ef3976885b9596ecf6a39732a8dace5e66bc6477a9249bf5199e519cf7d3c56037ac157c818ea71ca9f55f7ccedaa9ccac57d0bf4f3011ddbf4a7ef2bd06376010302375bb89394016c1c7fac404a47830c93e0dad8e20a89c9c98bf3cf4bab4ee90317c6f61f708ebd6b1c2156d134663ddec7a04a4eb71dbce60fd9e8cf684c5133037af9f79a762a3f9779ac154d2e0c640175d641249af4585e2f535e173fd0836a03e31dba51ceccec7a1bb251690577ed0092bd2de2984761dd72866fae3926db5b03677ef2afca72031cd7df6be8df30b83cbe0a2744e1a6afecb648fe5a2993c97c037517e9d45c73b3c3360e9a2f6c06bd72068113979515691d3612378eca3367d00339a8f30172e7cc2e7a004f527b41c83df8f9e17a61ad3e29f90e0624d174abf603178ae77dc8b14ce339dc3a957051716259d8672fcc46419294cda27ba6d1c0b30058200354ec68ef3e6c8eac7d1f36ae3ab8bfed37235614c0b2030bce096b7b6ff3605820ffffffffffffffffffffffffffffffffffffffffffffc2add4446ec40060a7c30058200394172faff22ab56458b64e01e1f4520ddff98c45871a86ebc6271986eb67d04b02a2136858756eead3a16100581f0207463f613f7f716104bf3bbf574ca51ecac53352263136ec4a3fd7dfa0d5410100581f02ea38503375bf986045284810c6c1f81ae240a84675b7123044c80d1bb6df5820ffffffffffffffffffffffffffffffffffffffffffffcf4baccde039fc3fffff02190240039e1a91ddfb7da331bda3b3e54f80f584a31c49fd154d7766a57ffcf5c0b84bd40142001100582003b3162e8d021012b41d7732554fe01dae4461cabc842b4333befcac672a03504a08b6756e46e8a1c409420384cd48329ac18ce39c6a260b19794a89ea63897b29f58d6f16d9f6a577b1f51a00582003b25e834810cd08ebf24acdd74bbd3a2164f56686c4290172c029c5a4b7198048345d7d3d5e9b56990392e43b0628c66955bd2adce6c2b3e84f5572c27efd1a26548832fcce36753e4700582003f1a7fecd6dd310cab43f4003e632bd7ff5f724ac40014378d9b46bbfb694604b068d1bc120d6ed2d87b3860219cf2a03bd5b885825968dc8393108d64fab588e9b5d34169d570a24eef1d50bb3dc44190219ffff03a2d07f2390946dcba4de7bfab099ddad14291c081f35d39eb444d950f18c2e46005820031e34a4a9282e23a1c3b12f6f845969622610628e60dae88cfb71f6eec911404a021e1e5851233b82b17703ba652c00692088ca866a8f261799c998002939575957e4907f5e0f82bf20149e0058200333add99dc2570146a6c87c67cc07b7c0017f6256fcf41f08d1c52219f40f105820fffffffffffffffffffffffffffffffffffffffffff88e2d05bacba556ffffff032ca5e3689519b79a3757a05aecbc3e521cd5f394acbfb753788063217e453ec900582003cc2213fd63d6fcad37a2793f7a2d4dfac29d27687f0328243fc6f82cd989205820ffffffffffffffffffffffffffffffffffffffffffffd977a64e1b4c6489d9ee00582003d3a39c1acb0c585e63fff9b2c6f76c9321880bcdfc111e5b0f10d674ac4ff04a32b656c2c8cfd92d720f00582003019fe19cffb1ab9147c8f6da158419eaae4832394e8b69f0021fecb87a38e04ad1a401ee0332eec0000000582003b4945179ae10ced4683b12c6ea092026ede6307152b6f1f83b24c7dc489cc05820ffffffffffffffffffffffffffffffffffffffffffffd21b4fb909b0ab45168500582003a0493dd664bc5b0ee239e0b4e918391bf1be5ef77eb9e954ff55921ba337205820fffffffffffffffffffffffffffffffffffffffffffa35b13d58658098ffffff0058200315941c133c23fb5d93502b15ba71b6b8b5b603501a3bc64a7cffc9107f15204a57d663b1771ca69731b403ef8034ebcad90b715182cf2569ff09c3b2a736793fa8d85c0b3efae2729bcae700581f02c21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c684a170dd93259df95050b6a00581f02cb6cff402b31ff20a07757e6d18f40ac6041ffd827af26ce619ffda36bcf5820fffffffffffffffffffffffffffffffffffffffffffe01d9dbb499470a4157920219900000582003271e468a4d15e01eae7eac82819667e5d91d35eeb718d3a86d6a1f50cb0b804a367d6f767f647223d1280219edf7036ef49e46ed8174464f8fea84bd64d0adc21d2a05b95b9a28bd64d034b6ffd0390344c5310df4b3a3fd6cd943b3e91726097aed56819b2ea3cfe9add88d81b8e302035a92337503caff0c7c92bb2bbb66b81e522e652f8fbbe9c5b495548f7dca91d000582003d64a91a18446c24858882f3c6c0b76ae3778bd8e011892040666cc80478c904a1a3c33c9b529fe2a8f8103550145ecbad797eaabbd103deafd46006829293a9e5970353940ee8e2eb4e14d03984573f7a6005c8da9868aa0de666f484ecfb3720b8283538841efdd12f84a3800582003b61cf253bcae20c246a1cdd6ec13b06979ef0b0f79a60fefcf7a45a988f0005820ffffffffffffffffffffffffffffffffffffffffffefb851123d70d15d3fffff0058200358f38093814f326f2f96d810d842a07030efd688e3027bf4bf862841f919105820fffffffffffffffffffffffffffffffffffffffffffff4d80c9207cf59a84963005820031c059b3c289e7a4cf6f74496d4c1b9d39c837bbc18555aa4ec28504a3176305820ffffffffffffffffffffffffffffffffffffffffffffd12c01f87c9cebf8474c00582003241b82e75599545208fc4f2736d19395fa6510cbb0a0799408b9992f9e1ec04a3c8324f7b0886a2af933033e339328e92268d75593500ec375d58c1dda686c22edc2ebf414fbf55bacdc3803f93a74e8cce7ca7900ea4fbb81ef18bf033eb76b60d1556fd4a10b9f3d77ec2300582003f0c553f7a32408a02bc7a59763460db410150b9d6a10f8708fafd930f76bc04a12f4d7d82c1e8d7a4b740058200371cf1a861779465e1ecf883b634bf45cd423d347994627bd3394c30c6ba2205820fffffffffffffffffffffffffffffffffffffffffffc9ef7b4ce199690dfffff0219b9fe033b49fe349942b2fbe3a992c61487d04f56bf7c6f4997e800bfd9d7529ad7725503f1f7c536ac2ed4e45917729d6502e81e5d853bc7177782d270543cf78b8464fa032bb382ec8536dbf2b11a244962d435fed747b6ea225a24e4a7ce53b11f8b1272034c794418b4d75530602beaa5c847c5273e4aae088321ba82ffd6b4ba6f02f37d033486acce95fb9c3c7d1ee49355cf6b1a685ba231ea85b61159ef3e82c856abb303a66d9157c4713732044d383608a20f8597d7afa91140ce19c0a66966f6ab49cb03803ddaf83acf2effac848645d6dc3c05e08841bb80c1b74c37ede2a356c804a203278497b8f72c0214e83cbbba3f33590c923bcd630285d1371dd5b9f1ef38dd7f0305af85b4e3c6ed32a7cba6aeecb0e94f6ab12042be66ff32d4192a5f714f1226031a517798805e3a4a6cf4d82cf53ac48a75a4c71749091556b003f7789d0692b5035fd749c7adb058db08f2e7619bf3b538a06a88cf0d3f8fa7ce26a6443ef4c4560219ffff032849ae5d29bbc0e7fea63d1bd6ea2d786799e1259f684916ac71c350172fd69f034f5a98562e781465e18ad20c56879505b3ed6f6a8378fcf26ff8e21db7771a6a0326639bb5a4f1d8f05e374dbc902b9eb3faaa65afe6b63e3b93d535a0d87b5fc103478f57708736e8cc6930fa52eba18056ca3376f8b0e1a9058e68716583f3d2b8030ae47c51929e26ebb3f7f2566b3837e9fa1fc6f179368772d74c51d8dee93cad039740d49577c693d0d196070c0c8ffabcdb62c4e5298232e26cbf9199233afc9403774582d4ed4d77c095cb2e2c5b9f8620cfc4344d0d921483ea30ad2f551952d0033ef220b08ae955715ac66770a6a3ac8e85ba2ac5113a3eeb8463a1a637e77f2e032d01d4a6dfaef092fa13a37626bab6150b8d39694fb30a1b71792da9a7485cb4005820037e869ea8c4a3c6a4316cfe364771d0cabb714c805d844f2a0e2e42712ddaf04a08710d1c44a99e0884e50058200325c1b87d3773c3b6534d9fa99f4276b0c5743aa88632cd35d42b89471c76505820fffffffffffffffffffffffffffffffffffffffffffeb657d45311026f1276080058200337e5776e3e81a73d2c3955b6c708422cf8e20ff346f4a3caa9dcb58d860ad05820ffffffffffffffffffffffffffffffffffffffffffffbbc9919a37653eebffff038189c174834204ad8f4150774cfee3106f3287627c416b731de624d83cce8bb300582003164f3459b5410abe4315cd48a4329987f8e1adf92fab54aca8bbca847116704a0774042bc5edbeafbe3100582003e8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09004105021921f203f083ec6834b876225a2915f8f14a3383e2690bc801cb923b13a7286bb799d1ab03407bed53416b68197584c4a9f5066f3ca9c5070c0eebb38b0bc44f6ec4617ec403f3d25543f4d6c9b40aa4ec39366a16571f35f9edf182ab91e08386e198bd377a03c6ab145809e285abc1594d2ea1026e335676f137e94c47882d545e7b8e1a3e3c035e306febbbe1bf8c39e0ba2eb5bcc923f3f3f6f0da6c9b77310ebb2da89e50dc03d44b1a7ba9a52cb9788c837890c7e89de4c4a96be254b88adbaec46489fbe5aa03aa1fe6c16bdadcfff4ca43c14fdd937b7492773640723c5119906b67d9963e4403c80a73e9723ef3a82d78e4dc59df4dff7d6ad323ec8ecd273174836ee546fd7e03505f89f80888cf8e672c84249b20ff0215a23cadf448856e98d706201c9a1ed00219ffff03709efd8ea17b36eb73ddde5e1f3ec256f159bbb9d06c5e19eb9c34f1b4fbd3a8030a868c6e4d6d8eb43a9a88fd2a31ca577c02880c822dd207520438dad422515d03a908bdb824e6b6026fb2a08bea121c16b37acde3fe3c079705520d08f124f5bb032a8cee227d8cba789af54f38518c211abe7a1ed2cc9f1b92c979c0ebeaa668c303718d7b638d11259cf9c95a3f6a5471e9a7299b08e82c5d75b785c9c1ca2b98d203e914335e4d4907aa7c664814047dc2f07b66652d448eda622c38a9b2cd01f11303f7f34d6679ea859a2a50e1d3044cffd0dac5f2942c21cb5dffd890a92b1fbbda03c8633f58a2b00b8593615494c67794a2ce143ba4860471f9544fb883e764e0fe0339ad373506f027d1da4e76a9d6e8817cc28f141e37875d4655179163927a82b503dbd0a01cb20730ff8b8f9f30ee4ca969a5777e94047bdd723c4b530b3020511a033546c04062a1a90a5afbe3f2094e53ef7fb66b569b11ba731e0c875a8b858a770310cde1a9dc568b23f176a738ccb2954c59ffa3e5d3775f14d79f35bc0728afd60300a908793d2654ffc3306d72e7da853ff8c8570689fcb1870446766c6e9da79f03fb50adaadd710a447ea0bbbb0d93fcec39af7fbffc2012174a2d92a16c0e89dd0384035d98302a6b4ab38a832b8c84815e9b54503f5daa2052490b83a1ada2607a005820034c9f455e0486081e6f3ce32e0eb3499fcf798def1dd9e69d9ec95b677259004a14c2aa0402df36355d7c032f416fdc5d1bb347de86c9f19c8850561926f33c58699a4ff04a8ee8a85b193b014103035604112982e192ce6865e0b3dbbc5a7fe5abb9dc7409b6778605a50126550e6c00582003b152e99b237ae933a1a63298a3e8a892a1aa062be460480bcb1d87118233205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff031a4f0d5b5404102daec6d4948105637025cad4512f54a3c0c80ed140b2399a7e005820033bf70f076398ac974aebc309b102097967c267dc254516b2aaedd02585abc05820ffffffffffffffffffffffffffffffffffffffffffffea209fa1f919fde1b26500582003e0a116c3240183d62833f0c48996ecf6540eb44dd6b95fa6f0d1c4b58572805820ffffffffffffffffffffffffffffffffffffffffffff8b8870b4a8e3b43fffff02192de5005820032b8678bda7a1606854a8633b2ba91c7222e6492b678668e8b88fb4594802905820ffffffffffffffffffffffffffffffffffffffffffff8c7f8739b3f3d2b8dbd100581f0208e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802410500581f0274c39e02af36e52cb72a130088132e92b7732fed2f0fcc34fb9947683dc74a017d8eb538a26028f85600581f02494cbcd8643c81db2ae08aa2f3ffaef9c856812d2bf0e526116084766d315820fffffffffffffffffffffffffffffffffffffffffffe653063a72084eb7fffff0219210203154fbf41e9fc65ace3624d75a0edb690fafe2f33da9986337df84e3040c7e21b03ca0d55d6cac2137fd850d80390327fc6b989fda6962237a282845eaf322fc0190343ad941cf952657c962763da3e0ab51b8533e8c9258984da6fd1e918d879a31400582003cba515212cf942dda4d02c436120d94e7200ae66e2f1ce8cb748bb5eb17f305820ffffffffffffffffffffffffffffffffffffffffffffe5573bd86fa1363299ed03b3f6b2e2f43ca15071f0652ecdba977ed61fa958038ebb1b355a3ff8f49300cb00582003677858e810a40a69f7cd1ac65af11ec4109879803e4a8188f8fa63a6cd91504651dac207a00000582003b33006ca01caa70ba8418b83c19a2a40af94778daf4457cef1c0f5234bf7d05820ffffffffffffffffffffffffffffffffffffffffffff8117f5bbc55d4104a2c700582003cd69ce6883cec31b227f66344ee62fbf8b236afb48b55ffc8cd7f77b66bc205820fffffffffffffffffffffffffffffffffffffffffffa26aaf45b245578f6ee50005820030486d07442ef569ce57324d4581ec54b752a211fe70ad858ec5b455027b8b05820ffffffffffffffffffffffffffffffffffffffffffffc8ba3359bb2f9975bc1b03194bd8668cd7b5aac56459a3282888d478986124b9c92b644507aaec79a05bc00334923637bb5b7c72bec69600e3eb0f5106a1353f4fad59260ffab4960572fefd0219f6fb03b451a87392ef40d2d32395780e50a0b295c3db9566d359a36eacdea36a89d19d03e56cd351c610ba19b6399a8cbeeca22f302f2aa05116494d0276dc6cc9a6c8110219ffff03f6bcb488464ba7ca6771150fe1b10db54735618438abd79282cbbc0b69f0491f0349b38619d7aae2f2a9b7d49844fd61bb2b6f65d5850c392f006d18fdebbcaf0200582003a2b83bbd4dc0eea069ba2cf0625ae4b9469291fee6850e750c853becd9fc005820ffffffffffffffffffffffffffffffffffffffffffffcdcf7275518c5108390e00582003fd1ee55c3ee50316d907ce5828edf5dfbdbf7f2e269b1a8b7d740c21130e104a01cd2cdd3b8b150d15340319307f9408f5be5bc9f9ff2fcdb9a09054d2fa7c0511a73a5e3c27d7493e351e03a3bd0ffe95a9e3cd0fde7ec7358d8d711f484ea7dd20d3d4e8a63d33ad47267903ab44f10c355cb780795a43b2d0d2ede00984e073503b793a68b5c55ae4351428033e4331e93eabdaf3b6a4de1568f0d6ed44d30355f0ae8c9a3c0357155295c91f00582003b87a73c5a69c03c53b8534656ac07ef1203ca87df77489f7639b7a7c86f0404b069e10de76676d080000000058200376333c97e62d83ec0b82f1f83da785111475a2f84f8bc1e4750d119eeb11904a024c38c7b448c1b337460386c1fd29f6fcb97290082951d10813c6ff718f0796cfe899421e3d2dc5774b7500582003bdf80a0cc2a697dc67762f1924a1e0f3e01e227d53b4f710e18606db32abd04a0f4a5c24f22a5bad00b500582003fb8869b2f28f098df88c67b81eaed986db596cd8a25851484c0af75fe80f105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219f5ea0326daf70386d2662025d8bf7610ea2105f39cb532e2792e552aa84f1d4f6cb38803f0a0584af11807ec1a238539fff5998db1304c332e08719d391ffa7574b5fdf50353ba7997de19f6f839d8ac156f056cc428aca4b989c4dccc1ffc3ad8d5401e67038ebd6501c6b0cd40b3cb2f8fc4bf050907964a0411f3db8993d3d9436325778f03a61ac6ab8bbbc0fe521e238374fdeba7503c85104573e0f8e6b366e861eddb480336a4123bc65251387fb3ad1622e77d5feb42c624eea7512c0fe780a957bd29de039d2e53cff99833095a3832f8bddb7f1c338625ec201f51341b49bf404ae1223f03fead9c4322fe56c55aca605b1d7a4c38e98d03a76f3c9eebdb27afe168871f0a033fa0ef3346e31291e63ccc1d388dd5b37df904bb5d4ae448a8281a0cd3142cca03cc5cbadcffe107c0f4aae251b1aa0a0324f44c99773a8506b7a42809fe47ad7f0318854c4c89b1adc0e9b7a56a1040d32e87da0858b9d74b19a9a16c4513dd882a037a52f60f8871ab980577d892d3d8e68df1edb5d34a86cbb649e3f3ae86e0e3ec031778933156d60e6e50f5a573cd9da483dbc57178c34a5bdb9d58b072377cb2600219ffff03fa4b67094754975468f99d3aa21cdc073e343e6bacc1ccc898568bede501da8c034b1f122534879dd43a0339a3de765b5f1c006f225a574bc692b7b1f7c022109403ee84ecf8b6bfcb92c6919526e42d9e674a0c42208b3babab956639516897ce9a03ae1e4ed2e87b6edae45a3d5647705296f673800f75c6a7cc2bc2704c7155132103e1c6c6f3904f0e69ed4f1811ef51f842e62b1bab734332f4e9e5570250b1f43403a37f86c1b55d383c09313f10f7f079f577184925a785b88a009c48ee80f3048e005820037a431049e4cfd0b1e6d0f604304d0c8ebda5c4557d241283d04c0b4ae010505820ffffffffffffffffffffffffffffffffffffffffffff21dec6d98136e047ef4b03dd1c3cb02756e850d1144791507ca0a0bcd960d0d84cac17ff9f99f035eb445800582003c1d45890ad6a3f5664fc465b6d2c7e06eee28d583fc113c5390c29b43f7ec04a1e45c55168310aa225cb0318be0d6c63c612a3d8a8b72f8a63f74b4432820f51aa53edaa5a64a6c334fd5600582003bbdb2f57c9d9deb008756a1d3e15cb800fdce7a1705ff1f6f2d4f51f828ab04a06abdd185a64b0b80cd300581f02f385397657553596b78ae2490cb59ae9a09669d2b29b17045dfae4e873435820fffffffffffffffffffffffffffffffffffffffffffeafc59eac20de264f3b1400581f02c928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6884b108b2a2c280290940000000219102000582003d4b73564ebd7f324adfe134f93ecf536580100aacecc2225c831ca8ff239105820ffffffffffffffffffffffffffffffffffffffffffffa5778b8ce5d3f0a8dc5f00582003e554004907f292e1ef57fc5e53a61bd5f2ea85bd1092806bb216a9ff1343505820fffffffffffffffffffffffffffffffffffffffffffd2391018beadf3efa5d220337890099f066f1343bdd5eb0055751b949dd226a2c44388f38c9e4729c8ac8e300582003e4a3e0a80bc9bd998138fdbb0cbefa811392da26aa8dde6b122ff0c57d4a804a113c284cc61d6cd2e7be0058200318577450388366a76ecf5335775e0dc12e8734644e8e5afae2eb7928366b004a04817bee54e203d02204005820030f87cd0e87ac39c9896db5bbee449e55a016fa27ffac8aa195cc2c85c1eac05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ee7d035649ea8150819516b6eaf6725f790338c6d0b1ef66ed473815debb5a130913b90325e71ff61fa0970f11242da388f12828a2b43ef63bd28a8d1b6939d014b9f6fa031749809c571531280beb46590bf7818810ccc357597b01d98b98482cbfa6773b030f04996bae83f702bf9a2def2c95b65cf6a1ca7effa35af187e8ed6f6069ffbd0381a15d47698726bac27997566e56b0b7260a76682de00a30e1027fdf19e6c4b10320f642753e925ed2f5e3fc78a456f6c0f33fcd12af256a8ee8e922212bb77d46030500d19e2962167a6ab927ed098589aa6a6bc0e504ee628d4ee66d8f0604e7d303a236617c839051ec39e1631b42c982946394b3bc0bc5934de7227b50683e388a03c4b3d10edab6983b75b036327bdf215921abf36c76398e062f691e8b8ac990da0219ffff03419b21cd405a3fd0e5152aba80bfe876a57203282ad6ba8f7230fa4894cf923b038d333f46324943f81aafa5cfc6777c81f39e12798efbda40c98eaca6a6977b3e03f3b38c1474096ba431a190eda935524cb20d2b3d6f1cbbe963027fcd3964106803d81f81099a1475ab4b5b47f2217ae94bd36a7d0cac3018e6c77a65ec597fa2b10361a0a0624678f28d57020cdecba51638fcbdb508f42cb396bf6efc6d46f5f0eb0398663da0a837d011075ec76cd62559406283dc6dfebebb0155266c13dd03f58b033e37d27a5cded39d4dd7a7aeed7d21bcfd54480cd2c314f9f19efd718ff61ce503ad8c7b1c64e6945ba50ddb89245d22b1b817e337b3a9f18d9d6eba11f12e6d6803b71dfdda476b0cf03ea317598c2a6e7445e858c0575a6b265be8a83f15b06cbd03c8f16358f0d1dd0cedbbc4629006838d09ea6a877e48d80b624be0b1c175c56803e45df5847d3e7283ab327db38cb2fcf8c4b8d8a7b51cbc12666dae3abcf9e10f00582003b48025ee1197f755d6b341141dbe2469d1ccde6383341896738cce540946705820ffffffffffffffffffffffffffffffffffffffffffff2ceb30d308d46cb04bd700582003fce9e3a991a667970bd5e335efcc4d870fd961abccb055901e359fda31ebc05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200381fd383a8525f2eb2932d6b895c12f6fcd49f453d50a237a1c5c6d1a1fa1605820fffffffffffffffffffffffffffffffffffffffffff9fc5cb8f7e136b70b48a80312c20866489cd17b2d6390b15af28d5afd3f1a4f86f8d18edf2a822cc83532b700581f026f92dc7c3a66f18110a593af1b9f5cf085f99a430fa48a2af738e8f6b34a5820fffffffffffffffffffffffffffffffffffffffffff9e9cc112bad2f7a2ad89000581f024a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd41050219082003265fc8fd01f30a2463c0027751ae29eed8cc5967d5c2d3612f98a4d76b503b63032309c2a30e0a2ba4c92a82630ed6e76bd9476a69b7c1763af081718f84b77f97037da7ab0f49365d069c305485f3bbf78e716afd14839291390805fb6a0ee488930354970c73b54a6b96c212db6464261aece1ce06c3ac34723e9531ded4a812d61d00582003a783b16ee2f9c696cd530a5343d4859f884dbf97e89f97a26f1066920ae7005820ffffffffffffffffffffffffffffffffffffffffffffdec8d95930caa29528510378924a52dfc44071bc85f7fc1252adccc9c14165709ae573e1a735bb5087ea790219f6b60322969ce006d70f32d496ba34e284c19e6cf0f6f533858b6e0b386295702b4e8603c6c5076ef5ae6a0986acf43121ab8fcca84880a7d2784096ecdeb2a26ff8dfaa03df73a05a403edd6cac52f64e5a5080c905c18fcc5bc0d4297f03d20f6b5abd1f0380eab352515a16850cb5c244b2cf3a70efa1a27c05760b33acb81e79a108de800219ffff0325333cb90972ccc2dbaec2be06fbb7f1ac2d212b93962e35fe70c263700bb7db03dc4a5112f8b888eac395baa1dd144a8e496ac11f43bd4afc92bfa9072421e9b703ee8e650ff5825c2c1eaf976ad0b70c6fadafedef5bc4aa5c2f6b393300a691e803fc0e472fbffb49004fcbbab6169225036338f764fa620a98268dfe8ef4cbac22034db46d8192ae60ee581c079a1d428902edb3aadeb083cde8abd37cd786a62c8803af8ba80768f689873e1774493b3e82098adbb9aceb705c41a22844ff236237fc005820038c474cf7bc36177617322967e317cb3bf1696263c12275f43efd665adafca0450a1f6a1110005820035972f7715183e71b91f8b6778ebcef85381a6f6ef9178aec55729530897c005820ffffffffffffffffffffffffffffffffffffffffffff8d36957b85c83e82c6af00582003a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8042010103d80c6d96ef7b7ad8ae2f01d588089ce5280d3d7da9f3e1d29fa64f12a0d3c2b900582003ecfbd819c82a9f373844faba4c05f28b06a386c71cb1a209f2222052042f404a0c422d6c9d8ae5cc077103578ad2d727cc72459066351bcf61828f1f87a1cebf054c167f07f2ac1646a320005820037da2a59daedace6ed162942c3f2002ecf152481330afacedbaefb053808a404a043e9e50502b88cd1e7f00582003cb91472f49781ee5448cbb39f05fa252c4cb5d6d66b710d00c13091294049044de8409f1005820038698ab47559034596b5f1b91bb4066e0b3aa4ecec6356d728b98e2936bead05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0394887aa6139db1a6e1c418e50a3c3562a0c6b2e4f222d5b5756d763da96c490702196bf203607fa68be18f3c9c9d0c002f2bf1f63100218434af7ed8884c40c965e506c24a039f8a3cba8e2ca01be695a85e74cb145760203b136b93e99cd56bf404a0a45c0c032b49130a2ec17befa58775c9dc53a2bcbe7cb96fd88203b3f51ef20ea2984fba03cb04da15adc3101c6de1dda2fb7c2ccdd03c1d8ef0ed691083d0a6cebc447ff703615b38f3d3b25f6df8ec82b8efffd7dddf85e1d04c204c290178eee6d174dea403f432935ddd3e3708d9bef449cc9fb4f2abfd74799de6fb4c69f8e6e357668e8f033249ad97cd1583a1f5766dcf752e84c74d4182b8acf2cf330a44380e086a6334034ca495667ef7d87c196542c3fc667052e76d60c386c68018bc220da3d2fdb1cb031a7442c58fb559ccedae7eec7d581b1add1a24249532a358e7696ba237560f8b0058200359da13eec74564295df5bd28134d47009f9c275bcee49458b65f2e41e06cf04b04232477a03c94e92f3b8000582003f5ec97f15d318805c29a446a27ff732a1b47605cae2d18c4f0648280ac6ab05820ffffffffffffffffffffffffffffffffffffffffffffbf5a830d8ced318f248f00582003418caf926fca93ed0b6bcba0009ac5c4ad66344fe9967a3efcbd8f207b95d0497f5debc2862879432c00581f02c99bbc118b3697d66cbfd088ed3c3112dd70e25b1e39bae2dc58c13bd95e5820ffffffffffffffffffffffffffffffffffffffffffffb4d36954069c481fffff00581f0248a74d04759f7ae98ae7afed80aeb3e2fdbf6475eefe95251a3fbc8d70665820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02d298c9037630f8f5b2698d2213ce4207c9ce91c7e74b9086abfb8560dc214a170dd93259df95050b6a0219190003c2f1510b32e7157625d92330170da2a384c198c968515ecd5d0e68e53214a96d00582003622021388e935c7c0520e926ea43d5c3c3c1e042df555e64a6e8a9f2c24c404b054e6b3ee74da0359aa538005820038d52925831d835b1e6ce3f06ef042c35832eb97741eb702a156a76639050f05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003e19d28e232bc8b6c095ba6edb500b34ea663c06d40aa8066e6246318a1a5405820fffffffffffffffffffffffffffffffffffffffffffff46d1ecc225827153d6b03e4fd75ab3214be8fa5459fefde19a68b76b9a22ba620c7df72e1aebe4b98505d0219bba90219ffff03d36f733e7f8ada1c54d814ee729eb183bb60eae33d81df860985c86bfa35937200582003d69519b062a0a9effe3d7a63bff0da4ff85ca3da449816b65e3edc0fb798004a0c6e13f97ba8cd1b6215005820035b23e5222a560ac355e7f8decb7ff575e18772d1cd61806be1d02afb5aa1304b02117130219c02b5c7f9b300582003d768f4ee0c52c53a639c0c2fb0e8b22759caaeab8a32a283676653b89278b05820ffffffffffffffffffffffffffffffffffffffffffef305bc2cf6d5498477efb00582003dbac94e2ca7a0e0f81bda4f2724055506a964898c279119fa83dd1cd997f504a04c480e9cdcb71ec965500582003984d05359ed6ca033eba2f1d4bc658909a9e87e03a0db2191712bc27dabc405820ffffffffffffffffffffffffffffffffffffffffffffc25b30b300c05364de8700581f0280225416c3210056ff0cd86a166cde2cb62cfce0dfcf07557226fb09374f5820fffffffffffffffffffffffffffffffffffffffffffcf714d4307a880bcf9a2f00581f0287e0ef2881034a331ef99132dec5081904cf970f6020f705d6f121e9c15e5820ffffffffffffffffffffffffffffffffffffffffffffd7660d9e494b1ded03e7021910080219da8103d15010f68902be62c53e4c370c9498c10bbd72b73f0536be34ba99438f52cfea0355b8b1a118f1024e115d918ac93283ce5f42c73c84c9fdcfa06c84b415cd5b84032136da904639d2d30035e980618f839d2c0e3490a4d4101708fab3145d12738203dd522a446a46c29062c170222b1c18f73cde7eae6ec924082645b70db7a94d0003a871369b8676077867f8fcefc7ae90c1c314fb97604b6855af528d7a6c2e663d03091f9c3bc7c9bb3e040030b602cc3757c08b78abbe1be546336cbfea7e34af5d00582003da3c29c76e4c372eaa394804ffc14831577c3315bc1cf8f8156be6029ce6c05820ffffffffffffffffffffffffffffffffffffffffffffd4dde3860d2ba433ffff03021d91b4fcfd1520201ba39d9e8e79372aac4838632d2aca012ce843c602a25900582003b7d81e278ba0ab1bc814f33ef919a57d47c013b96605e55045aff7c1cc50705820ffffffffffffffffffffffffffffffffffffffffffff42ffa04b006a1d9048a503a965ad742ccdd5d36a6075eb432f120cc3827fa212b2a0b8e4abd7a326e0e65200582003bc1efde06b8d70f2e7552085c9fe8e848f12cfbfafbb57bfe3940b17d3aab0480ca65a12265306be00582003191d51ccd0b08d1dd80753800122ddd098259acea8f4cbbe3a156ca3fe2c904b26415b09d48b3d92f0880d005820031734a76cc5d262b4028cac7477d4a6f9aa7f57c9df1648c08048d78b8da3705820fffffffffffffffffffffffffffffffffffffffffff1382190af8c96929d6bed03a2c2ee570fbe2edde8b3c4ce10c307f3d1b0ab74c3badb52b5991ca06f12a4c403f1af349b9893ca93ba9c8b4c07af0eb3956c51de3fbd0895e692d31f70f734c800582003521a8e8687a87426a7ea4718bb44f9b3e9f311b94af51165115a1d97ef8e9049c9dea7c356cbba54bb0058200365173804c4a2655c34e86e2e6fbd94df98eb59af938954f31ccb0eb29ba6105820ffffffffffffffffffffffffffffffffffffffffffff0dc4420a9446d69d1ca203ca627965faef9b428a82ec01343a13859dde63d74c058d183433a0c00a23544c014106032c3b794c505a4d247f18ee78a7379d81d292344d665724c302ec4c77c1a10f750219f7fe03fde92299d547ca4db39218de6cdf978c7b4b11cc6c4a508128eb8231986211590399f951d85ea0e98273d91725aa2c2c5cc9628068e508812991ac0cf67c7784ba031d0766c83943e0ba61f1ada31fa90d98b2ff7abc5e85cb08a33ba563ccb2681403698d01a36f304590760e98a7e92f5e648a8106aa7be5a85b913f7740473d981f005820037a19e0c7a1323c13429950aee84974af33b3251b570d8ea9c1abb514b129105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0358deeb363da0afd142b944adb6ba260249cd5bd7b652cc5262aa7a9e6b35e68903fc2e70f02dac1660b95d27980852a493e3d2e5748da9a136a464b877429f9979005820032257f6623b68ab329c6c0d7fa26c5fb66a7634ac51385da37e64b1ab70f2904a185a29990fe301e00000039b9bc04b521544f4c7e71d31a6a7d6f87762fea96e6b82d0bf4f48243c6717510058200351adbb3c5b1925019e37bbb026f49a68be243de754f3f67b8e13784e2ac7c05820fffffffffffffffffffffffffffffffffffffffffffde764876baa4c832afe3f03e8d195ea7e5c4db11c4da4854f6248162d45cdfa55b9f1d97032b71a045e46ca038d8f692007ba067cfdfe33db7d469c500f68096f3b8a186a4a53139a186c364500582003b0c5fd175837af6dd9d9701a243f885b9f6600692b241c123e2a05bb72c1d04a02364802ba0bc4d2c000037c42f6f59f7e6c58e1cbf9133a619cd3ba2204a693fecdc8b3f1c773a831741b005820031e91d650ea3e1a2df8790ffadcdab1f0948f3aa85b1e7871b4a7c8c5c67cf049011898c0000000000000582003ae46f1a4253b06735537157e686b963443d3a578bb9504c9cc0f9c556ee4b04a2f39f2644b32ce2df34b0219ef37031de9e7a931b269b8a0fece6e6a9659b4801aa3050694d5405a564786bf5e33200367bf9bc19f1b487945d3c85629ad1ad7ca1dc0015acfa51be2447341c6abebb2035ef073aee2d838d559ccb924831a6dced74e10e07fc6793eaa1c1a0a221f628803599b7f644a4df85087295948834ee4d3c5aa3f30b91b6f545e4d5c0b53cda6ba0219ffff0365ba0a12e7505bc699115e83ada90771cea2a0d6afe643613f11530520aeb69403bb867d331d56f9377d1c9095605cfcba2dff2e77b7c085cc8de3e9c8d0fa648803ccd84904783c881b56f853da584a76bce0f0cea87f39efc198557fd509ac10ae03368fa5788ce1fd3320a3dc75597614b815430b1857fea90149bab9831652c6860357001eb64bbffec6f2e808701c3c16cda6386f1b67c2698ca9c49d1ec669621a038f3e9d31bdf96ddf585820ff7e18b007fcf9df697373f6acdf9eb791b2f93826030ee74650be9fec782bfb837486e7073c601061329b46306ee5b6745d24dd362203ffb498b8ded2942ffd2ed7be10a1a8aab25cdf0ff72cfa2a36e59f925066b9360344ed64f9040c27f49126681f11268a2a01dd86a6d122d9d58d9edcc6f33d1d8403a320f2ab70c33991515876021ab89c23be30268fdd9ba25477ab434ee63eae5c031eead224bfcb6357fbd7874cc0206c78c10a84ae269d16ee5b94beab1a84fba80396c8d206bff91f7a6e978defcb3bb8ae49a7935e9a8fca5b9f400c9ea051485403dd530784396ae51f5779fd13e91726ae48b1d1ac054a1d48cf524d01a2d5198903a169f39dd6b5202f5a65ba4f0d5efaee25a3f20c78581da4760d27c05bcaaef703376634d6466e935db774583dd44d24fcac8a7ec4fb678c38737012c5df3c8f62005820036c6caa4f5bde40f8c0d33891f3cd41ecac0e82467230f014af30526bdf03c05820fffffffffffffffffffffffffffffffffffffffffff070d3db55c33847bfffff03065a5c47304746a0895dac92afdbf7443002286732c6b2fcc370a42ed46add5400582003dfb132ff77d07dda39b615f86f64920e630093419c35afa50d8a40ef2e5d905820ffffffffffffffffffffffffffffffffffffffffffffd41ca8797371d2d1cb8c00581f02a0021b975cf36c2aa8dd86f552b50e565481614e83d89fa52f4d726a78a84a62b337c5f6cb5785674b00581f0216257f42f073551300681211b37a0827072a49b514f735c567d58e3a1ac55820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f020e46dbcfba097d0fea4d352bf93612a89d35076165d05bf6fd032590c8c15820fffffffffffffffffffffffffffffffffffffffffffbdec3617c57fc95ed040e02182903254a041cd09bc44306d86d7b25eac4a6d7f326405b07877d4709faea73ba1e4c00582003fe51ab051235e9026250e0ec7397a3c3d2b89d775e56554e2499e8798ace704af46a86af6687650b1b630058200319c2586ff3c7b2b83d2bbc3d53c79daef236c9ff7ac1453456a0721a5bc0904a0879ea9090cf955dc4be005820030097b9c1f038bd8faae1fffd7c23115424fbf2e7961d2a4bb6b2c03af232a04a30ef3d0f0b7f2c2bef820058200394649fc285f70ba022c2949f25c44769c20f937298cfe0a21acf21ab5a76005820fffffffffffffffffffffffffffffffffffffffffff16d1d3b4ce969b94476d4005820038afc87b7699b88a705f2ac4e685fca7c650bb3e689ff2108a39750dc7143c04a93d6b017a63c5a8d84890219bde80219ffff033d4bcf73a668489fb95cf017ada10b57da0c6b91679bfa037b026e0bc0e60bbf0306a7254095a3d9b1874d9555c41066c101e3d0b85ab9b2aaedaac076fd55075e038c98d73b16862e59ed50bf49a9ce0dce47b1bb0629b7aca8adf37f212decfa53005820039200f73b362a9cd9b3fca8f5093eaa33fd150d4f02bb495c9e41aa14635d004a076a99286d2d627dd8f9005820037a1b725e65f3c82f6ba7b04b2e314ed405e6eda4da89ddb0198e6dfb19d7805820ffffffffffffffffffffffffffffffffffffffffffffb025119430d3d496b058030020470980de67cc175b303106c5d61071aaf3ed28017d20c6918f53fc5b3d5d00582003e545423548e72bd0cb716c39fb9c2e49ccf08ba3392b827f138029bbe5d7205820fffffffffffffffffffffffffffffffffffffffffffec863342871c4c5e6d5e500582003e409e2b28d46f3566ac7cceb1b3df0e3fe2da4c94cd473a224eabfbc4902105820ffffffffffffffffffffffffffffffffffffffffffffdce6368b1f7968ceb20d005820037f400b99b5b0f4567ee5080fe385013a7223ffde6208e9971b620c726831404b036639b6c5b178c5ed226f0058200348dfe18ef139ac0b3dc04a6c2ca7268b2fe2d25cfa3d95379ddcf29a4d81005820fffffffffffffffffffffffffffffffffffffffffffffbfa02081a507a1fffff005820030e44451c9953a80f4b0de2189b4f2f1adafea5d06ee8722e3a85f5b77cc8a05820fffffffffffffffffffffffffffffffffffffffffffe3adb67a0690f6d27ae8400582003faf7b922c6444bcf9e12c17dba4d33dbedaac4b7de5431afe822327aa405205820ffffffffffffffffffffffffffffffffffffffffffff92e079acdc061cc9e5de03ec91ab519187e80860eda39cc9474bde755bd19de3676344c3b07c002e9c6022035294dd72dd3e0f595f670740f418393190a3c53b52b6aabd2a18abfd0c6e620e00582003fa298f6237bfc56e1c1acae481eb5b20e696b92262de3ee85eef1f02fb5a405820fffffffffffffffffffffffffffffffffffffffffff6188d766cd6e43878219b005820037a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee304a69e10de76676d08000000219f3ef03369fd16dd2fe32879e20c822f304dd3034f1ed1cca8bc097f70e2dd07a7089eb0352a6a19852cae49933fcd3ddf04bcffaeb7fe497575355fbb29beadf395be2c603cde43db965ec2b4308f9f202a0390efaa1579a07644563c792e95d1d7891a2e90396c568be82dc92b53e1527b1f618d85c1bd747b749435bedd7434a0be7dcb8a603d16637169e8df693099dadf4c78c2135f1e50e7d01e60662338c6d4fe369012a03d9dbcb95bb9dce9428ef69af97ed7aac26309280da0be6c6fd0e2461bb6a72370395d882a7ff2d9070cb511e496252b0a474a3c63ec2e6f96e7697b83225b67ff4038a6cfccc705477e1b8e1ec92c0c57214085c7791c323b1ebad1fcb4f7000d5820362ed1b5b3207bd2c44164686cb79aaf530213dfca726ceedae901ea562479ebb033ea86073a49f2edde0a9f4be211635e8eba738c20773572298da7a82389d8dbe03aa391ddf2d80b09c6a8e8bd82350bdd42bf38a0831ad9977ccec6bbcd3397569033b4b76fd1e408d04edac7dc1c25a97b82ffa43bd704d83a08fa129f12e0ee0ee0219ffff0219ffff05581d02d3893c98acc0d92dcc79f199705e32ae734ab93dca6be24f29ba9b7507011947ae05581d02ba6cee63ae3ecf4271cb9ab2e113f968670946eb2503e173038c2ee70c024204000219180003ba5ae5103f3b74fce04d26f778d2eff898de54c6634d8feb0f1a174f5c24295a05581e03ecf3b447314205e2e12acbf7ef9374e64f12ff89ad5cdc8f748fa462400c014711f23d6c9142f70390692bbfc5ea25eabad3424df86813eb217e045f49b55f7a63c6d06898fd183e05581e031cb15ea37eecd3cb4f88738ef12357670699a9d8a63fdda6486e7abdc00c014749c68ed15bfc0002194fdf0380e402ce77d00c4c9da2903c8bca925f131db1b2744394bb993c998e3129d0480397d5c76fe74445e010aebee3a0e5698441bb7d2b92f10182e26549134baf79710219ffff03304549f871f49afe01853de731251233e2489b3b9c5701816cca535ba2c698250389b31b96c106f3364f227d0fdddd9f058055a46bb2540bd2c7d6261b9e7ab58b035888b14ecba6774962d05d729950e4169b48fc67d5c1db0417c2232521e9fc6903c9f75a2168b31c0e2c9307ce795aa225087150c17e81b9ce56d84bfcbb1a89f003828140932b1a8b643857fb86bf0b90ef3bde75aee6d8a34d45a89a4d3bcc78ff03fda2e03af65b94446bb4833931c9750aff469eaaaf4f363aef72a4266ab25a62031d36328391e6a8c1f4180bc47faf9bcfe16b7e2071b336671ce85bd94931db150219ffff0369c91be85ac3a5fac1682a4db4254e7dd2707760f58d6636c2fe14eee6f62eea0219ffff03804b0e475a54da75e575d357e1eb57768d64a037139c5cd7d0ae20167f7ac86f035610496f827975766bbb11f6173086b1d24a31c8bb2ebf30efaae38e1bab01de03be68b5a71b1a39c80a370c26fa76edac8f0d48fc207d97d0e92c11af92c6d33f03245801c6e02710957ebaaafe8d11b6dc4901d81a52a405477d83b8eb41753ac703a394cf0b151f1b95ec1aa89daab3418e97bd778616f9c2dde6b39cc585830e9503ac2f3094450c52458c65b87918ffd3d8dd87de82648c568be1a8c30ef91983c20370274b614766bd49489fd23ed722e536aef9adb55af051b359ed2447a0bd5d3c0364b3f70cac8dbc4da2c145ff9d61cf7d561bcdd4d0e1b67d14acd05f0dfbaf50038312ae96bce2b42732bd4ee02f0603e079a2b849e8f57d8c316130b260ed30160311d626a0a8246bb78c1738be9eb679320f4fa8896bc18e9b81863cc1ba08abc103052881c94778c690615d54479c6cff82188724922fc00b8c820c0616f2c3635a03c4a07ccdb71f03d1d0cfe88677715aa5e6e3db9277e034bc379cc6df9911038803658e9d3f578f6b9869ba8b41206862545a2b858533b04d225a7cb7578c2c8cd403bf6c965bf71f58485e021b3b104faef444817933186c374e44632eb5a119b4a10377d636c6e210a4d3f1741ae82b0be81a2cfdbfb35b2f51ce61b6507e71922996032b9a83d901e7a875673349921bddf9772911eb70a280b5f2dab931e1e89f3fa303d12bc7ac03d331f925b35472f9c3250b3528531d191c6baccebe35d4107250e00353f8f8c80069ef30823de50c4cb539ca436101a2ea490e6b2e8ae5c56f91eec3030131f84b046a70cbc2e7d21dfc94e94e395a488e436be0411226fb17b56a92d003fe515abe6cffc772374ea645ff7ed2b533918d1b91a1e2166069c2c2a17f3589039c851c834ecdfeddc6d0ce0463d3aefa3fa1430bd06a8f81a1f950e2c9528b1c031680ade9539d8ffb0c4da76ecb1db1a24c515736153324826576a4748ac4774a03132d8092b21ba3b66cdff359c7a7bc7519b902b5e4c364e7ead762d7308b8725032922bbbd427378068e5dd73d591eb95d4271e2279fffecdd40616f4f7e5b89db05581e0310b44cd1b719ed66c34ecc2d970e8bbe62758ce97ef4085daa06b045d00c01460e877833460003f900359fc42815a1afb5dee3726b38a2a853e4d4e4c369339de230195d9cb61e03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03e6de76fea86241d5d04a6628aeb6225fdaf5ab0da5e2f1cfe30da4605007011bffffffffffffffff03ba911f4d94004d4fb8d05beaa663cf99cfe3b3100d41cd8e1dc2c8d9a3c37bda030bc31de369da6ef92d3ed1fbb71cf5252d6984955ac8bab0f61979e9d0bb5bd905581e03269108f82ddd1a9f436b830bec1e8484db9d9f7d1dbe29388e798ca630040105581e0343c567566f286fd702b56c811a74f8a32766aa02c18db9c0eeaa428a600c014609184e72a00005581e0399528de5b86b3fb58e845dd84a5a216c2f5b63a2ffcb42c97dd6dfd8400c024669d8b407fdb805581d0237d1e4a083686366291e7bc75ddbe3b21e845ab6248c6b8d120ad1a3040205581d02d92c295047a39552d4dbf9886e48a0ca6a9f1568daaa516a0435c7e00c0547861a181b82350a05581d0215c8e6ddffb3c17ced1f22d2de7772dd6afbd7517670e7cfce72504e0c01475d3ce80755ba490219c040039469b3f851cc64ba9a82eeace1a6064eb5e9966efe7bfbc0b18f844f59d5d1f305581e0368af08c03fb727124d49befe4a14feec1831426ce8456ef83b16dd86f00402032d0056895d8a2af89bc383aeb39b7edd6eb0f014daf19e861f04aedfffd6fdf40219fa6f03b61a9480a6e82305c028c41cddd1922998a62d182afccb4d923ab93270df88e5032644794372742c2235db6d77da3a34f862842db83343571a2999bf8a160214e503a0fde6cb3a5003488c0977141d0eb58fd6f55cd9fa9ef9626932a7ede88edc79035f91693dcfd68e7d8d9aff6515802dd911cc0c337a296c4938f1e47d4b61494f03df0272ab2b6b2fbcd04939313cf08223470d9dc11d547021b6dc65f94e52a72c0396be602c8191a593bae887ccc7bd21de4d1610625d4667c7bf715d60de3bcd870341439d31a895adde09dd77f0637bebae96725adc7d3e6215df95e6e6b16e91c203e14280d6ab84893a79c7147b32d9014181b8043760200238f29fe1ca067c5dbb03ac5d9b07582194bee24fb5db9a9ecda8aa44bc71c577fbfdbcaecd9c831b09da0219ffff03337b0fbe770e4605f4394f95bf285fc37bf4ba3a57b330cb468eb14d1d7d7a240303b20abe6eb0b274f2379e6bcb54c1db3da13b91a1e0cfcd9b9e6fc4e1e2e10d0327c052a5faa0b1c1c00954a2be76adceaa62484e062ad1befc2b376543ccc2ab030820f9d729c60b66988c3d0cc782690cac9f0c960234d42f3ed42fee5527be12031439c9fa9e5b738d996cb158ef834821fa32ab79ed24664c656d77cb3f36c8fb038e06931699834fe482e9bcbbf02ea72ff5d5c345ca750bb3a21020f820d4aba7033e6df97bab5a54de9c96e3e19999b2808a0684c67b48318e0143fca09997e72c0368447c27eaf48437b20b5b265b18153e68dc99df756189df1afb3e13ce4ff3190309b6fda07c232dca7d45f72c17d21a131c92dceaf75f2f8a56a73bae030534190219ffff03b891d65a68ee915f4d17f641d41d1ec51d88a0a017cd56d30c221ba92e51686603163c716570024d10c8239481cf41ec3d008efdef1b287e9b3891ca6cef8164f7039e30d2cd5746bb2b5c268fc9df54d5a81c7e3eaa34be36973fa04b9461175e490388e7a5273e78cad27182bd9085d0267439335e57f4c60ce50d79e9cf940b482903d3120613feac7f83ccc2a1ff2e999e86be86aeb32ba9b2a086406c6151c2a95f037d0bf7e736b14791775daaed555c77b5e5a233530906b6a8d083ff28ef182457035fc6c6d10831a9e82b32dde44573968cb61180460f35b053f92d02a998d728af0372b1d87c6ea7904599bf1311146334260f5b30cec2bb309d3b5562fdd3c164be0374e51b7d8ea0ac50c6f1be4608cee1a20f833f55e7a13a317ec66c6927e3478f038e86cc4aa0dae2204642e1661ba8175820b216d86c647d2b9d17e90021d6446203bfff595215c5bda3ab6349201cf07d4862868dc839907a4deb8bf6c505fe16110219ffff03403ed7b6fa1af5d33689ca07896f04b8c94755261ac6f37f711684ee4ed2330d0219ffff03ef274059767c99fa02c3e10a386889d067f7ff52da51ca4807a6917c1c31de82039efbcbefe6dc65630edd45aa777187c4f2aba1db242c07fa36be29a8db248366031bb74a330c6cf0bd5aad434e7328935dc892ed46972b7529bb317d790036afcd0334e5c999b4db5e45ef35650eee5264e23c3c5246fb5db75863f9e51058d5da65032ecaaa72e527605ddf7d99a0e0205e97fbaa5e86d79e55e5e7adaf6b298c40bd030cef02e2e149aa8499a95b7cdaec5fb17a4308f25e52c8e06ce7352d7b67474c0366a13814ba23bbb41ee0f32168d75a750c7900c0e1ef39bffa27c66f4443fc7203e3c1c7dce11adc02e66e7d844ef0badd3b2af4d985a5276b3ff52f1c7a01521003b5557e4d3bbc9813c031524285fbd76e6546a485f951307e05446559436233910381dae4a719321094ce297d3acdebfbfaae9b1ee036bd56724a5748f449e2fbec032099f79d44276c036190739a4ec302899ffd074118f2ea1b9bab1a908332609703a13b983758c30d7a010d2b4ad59e9b86081a0acf4d96b7b0e68f9fdfa2eeef66032bbab072c771f0728136deaeb22c1e3fe57923aab4b40eb2357d9a8f986be9e303ff15435d1fc74c9dc24b2cf24f1318c02e34a21a224771521af0633ce99cfb4d03ac4b276bbd2c1cf35b597984549e3d38afdf3fe48322a2953fd752fdde631ef40331d776fe940665e4a9bcac0e7d360dba191a869d6667247d30c38b93b557b27003e8ff6bb2e9fd74b9af0eaf6346d1100c897cb6c46cbf07e9bbe2b1480892c97b0384dc87c44de3b9f208b85d06f5b8f45ada51ca743dbef7febc74388c3ce27d49032945a40f6163764b017f2818994a4a60a9024a95d6e35f03584982369b713fe6035044996d6db37e91dce0b52e5d515c1cf3425bf79f8ec4ca167ec75a278d4a7203ce1613f793bd386c49f0da2e5d58b74f6fa7719e5b00471b1eeefd22722503850363650378dd247fb2e736eebd415a7ded1fda5e2e980a90540790f9ab3a895363031177f83cc4c6ded36c43c85754a7fad501e5cf7e48e88516aba0ba2b23e377e003b1e1c072bad8fa20fca0a84339b52583de12543225033291cecb51f372119eff0391d1007cd8cf5a84b15e962a53a5059d6d620328ac84295916989f135ec7a5990386e950f8cfd3bd16dfd0a181d88d55665524498a046783643d2216adefad0b9c03a247f31b78b78a47a5c1128fbf5428730b1f1f80c95df8c7c9d3450aceaa191203caa47c9f62daa4b3d9e03d47e7a0df1479a1993c56cf89a3a28be3ea56959f03034a407d82be0260957ffb299a67f7cbd6e8eadc2c6b5273203894495642800d9d03c77096726217bdd31787dfd62d544c8cbee407e28a52aa61b65839fb7530c88d05581e033a39fc5f8367326554c6b1d408b51bc4c4209cd8f07db4b1bf8a961d800c0244ee6b2800032ef24a949905abafaaa36d1e6492a6e741beeba5918d7cb134df9b0498e9983a05581e032c005d0f817e3d4889c3f95d3f83d2eed5a530eed9a3791dd786ae50d00c024701fa53f591d76005581e034410c19f9d95e30f7370a806e3948296a1ea1affb470dc0ed9978cf0900c01470a0072306b738005581e03e8eab76f3c629a1220fd07882d8518cfe8d62215bcdca9d5af14d6f6c00c014702e56b8a6bc00005581e037249f7956dbfc19f5413e1b0c7450fbdda63208536355cccd7b97caec00c18d748030db36473ccd9d803075cc9fe4ab27b1c18a739c43ea6293dbc5b0cf08dd57b44685510b06832ef2e03d00ac40803c4f4280c8cdb5d81131cb602dafe75e21a12510a10ae7308cf308e05581e03de04b36409136e825abf76e3e148d21e5946f1fd53b22908d69c52e6300c0247011426759344680219deb203238ce6303dd3daa20e1acbf17ae9cbd5c67a355674155d22ab32bcf78af3a3090390ab84a44b3835b696a2a410c960ee8b828299ad3448afc408b2f6226c38b85303c080c30067531979fbd26773510fd7f04d16963624bcdecbe7c436d8909592810219ffff038931d74a6919eaca86a20af969760eed400a0665fa97dbea53e112769c21ee7e03c18ec12066b7d1d95c93fb6931265b5c66f3e10f82b20c59526187cae8d02bfd03ec04edff9fb3d7ba269a4ae8657664cace714f3e4ee286776a0d8b1b22090f2f03248bc730d6e10a8f12d49b9f62e4c2ad634f31e315a09346f8470bec4caeeb2c03aa3c0adf522d6592f1d662ee5dd763cc12206f1e3afbe5caa4ceee47b7a798770219ffff03d0d7ae6bc668f676d614c0993a25c65bdc830179fcbde6bda149114fe1bba8f603fe9522e011b5c4b0d9b0410a89e9321850073f6087789231ab720dbf8410aff603428e92109af02f1d22b34fc66405b5fb9f88ff92ed743f505bba21dce230e0f4031c732a6597a090898cde05c168252bcbd0dd5b6d5bea777f786a6e5efd8a628603a512a6080e7264c8d8b215a4f38d02e7ea336d19d0383345dc655ba308d4dfd503285d0a9004e32363bd014f8dc18a08524ab689290587ffcbfb308e8fa5c06c45037aa899dc2b28089537e87cf0080368f0ffe082ceef63ae0a17945b56af34a46d03498a2d32f6a329aa3b1ddcfcd22a28af2bb047d8c329a431fc48074ccd8cb69b039ac66ef8112af0251e1716977c41d69d15b02694f1d550eaf10e8603d5bfa71b03201aab278c1b8e20962874fad0887c16af4df60e971083c0b81b469f749f2faf0383338a18121e1571686721c70d99fa44e92c82fd923acb57383d582cd15b5121035e4492660ac4c63fa533069596db27b1ba9d9d49e2b0c725847e9dc9529e157103c287ba08dc54a7bbacd35f99ceba4d12b777fee7ebf90e944f32cb66852b018f03a3c103af42e5af2fbbf547d90e024b413a93b26e2e7d6954af9450a168965cfb0219ffff03f8c4a642f6057b78fa7f32ca29280872dfc608ef092c7aa8f21be3d5981a52b40352ed590ad7bb0eb79229f9599542ea52c6d3ce109e16c7cb9bd97ac6204af68803eb0992f7f2972a260285f09cc2ae0822b39ce5e673e8852061962d00e78d7033034041bfa2d496c501dae22ddac14d2e32a384b1c8a5a88d21e63f4fa581e9ba9c035cda60ad5c8d601b8e0a12502f7a81b86dddf040b1c24e13ef8553397a6cb617030e6e16e1655417816f535b13ffd354513cd1d936e57a75a01b16ada0d979d25503187631eded96b949eb561264ea8106d9c00465275cf88c5f6e0e8741c2a2e4e30320ae6f176256733298b0430e47536c8af0d5539e46ccc31caa9a2f7540ab947903839542c96f3df5cd5c84dc3a7bc61168b9faa6fdfa79c365fa41633072862a9e0219ffff03a001047cb7b6bbd6f9d96440c8cf1727408ebbf1bc6117e4737b7639ded6ab6a03a8b9e985f7594ca7799520fc1441025c934f0184d7bf1ca27abfff17c2f5c3a20395dc82df604439903df9694c20324c3caf97ff88f6a8155eadd1c150cd0a1ea30334e99430290043830da3e492cef76b5746b91c8477f6784f6a796ee89473fb7303cea6e98cfccbed9e3c4cd2ced92dbb5de692b58af6b889c5bdb7fe3a8b2b9c9d03744e054c66d1e42d085c10370157c89b299eeeab6a44ccbd8ddd6564032e5931036c17e3831e8a7559c1caa9a95e25e45b6ab67ff15e0e21ae60a95360735c006f036108b7a3b1b803a72b80de6f63107f925409f1057b0e15a9c61aaad122dcde02037f1c3e78ccca8ad8aa5d9103658928d670ec90b320fb7671213c1d17f2eaf94a03eb3c48162aafa61f83fb4839aa28a922be094b32b49aadbef7912abad21acabd038757278c3ba48a0936838efe1f62aca03d0407ddd13341636342ff8498e1a79e0309b3ecbf27a546e4ec052f4e183b118a2a751f500ed268d3eb636722539d93f60320ef668012c588bfd4421fe19f8b226b87f5493e8315b335b183b3c7ab45404303d03aa36d3ba6c24e01489820982ccf6810ffee9e6cdab2cdf6e4a52a11992e5d0323fe419d7166f36cf39f58edf36256d00b3523681b63ce3230bda4e94f96be48030b8715914bea4c83cec2bd66514f309a41a365cdd1f962fb57c806425cbe87ac03d15d4fd65c43aae8d90633a6ae0e8eebdabb66c48324861ae2aced525825e48103b8b13342fd46aa627c1145c1e98932e8edcf1dfc57356948084946fd7a0273d103ca85199ce56f6f96c688a477c731052c6ed1439964a41d5b44a4ab27fbc24917039b470616958ca20548d5fd3ec79529c850c5c95080a48683ae1aca4d4acfd2540349231cbc969e7d327082627c855f6f8f7d48c1d2a2c65d9686f098cdfa630da703f1b574431f3838d9cdff6e701afd5a058652dab5ae5523288a83d5fad7696139035d1e21f700a49be24991d5b20b17b5bd6c9f9a8827fdcdd22ee081f8bbd1bb9005581e03a619bf7daf27516223be18c36fe232d032c193561c6fdbb892a071e7d007011bffffffffffffffff05581e035850bf00a3809614902686a17e11a68695b2843ed65f6ceab55d05fbc00c0546ac5a2897534005581e03f7d66b3ee4bb6e173af9955c945bc531624c815d279bb67de916dc01b004010219410e035d97a07e628fc8aa54a7dbc918683bceb19407d07c690da6415b5deaae7f82d70372ed4e763ea00310a3a2348c985f5b885b082d99e755e42988c30182c8e5965803571ffd3dd5fc147eca87ca0ddc1bae804095c3cecaea20d393a699c9c383e8ee03b7d82c2c8f6dbfaa675de068b26f9e5ae9a05c02c0cba6947c87ba4198db5e5803de3c26ac517a8582a773e8f1e33ef6c398a2fed121757b8690262f5457479a6e03045926086b5cd29a73d1c3e95a9532e6a8475e75a81b8ff63e92cbcfe5b86afd039059ba79760921cb3c1047c03adbb747be802a5193189d70576a98d0ef2946b90219ffff03afc0a120c4d9e9c6af80b67627786e43422497bd0410bf4efc804f93d39fc6bc03455ba536e6862bc72daf06c2ef5ea6d7aa84c2e6a59eb34679d9f51e6c57e7da03df3c9f217b1dac2080ae104cf3de44aa414c1a53e17e5c863aa60c218e893f29031c6d0be22dbad89bb725fdf9e6af472be6697d79412f56b404f5194dc9bf74df037b39d32f3abdbeb380ea290715ff15a1301341102c34a1fa5c3c684d01a3353b0341c1f53944147ebc062516595c07c51b5a2d581d16c0b51f3929a0802888bc5d030490b513571f69c5fe468e8e5d462b258a29518aa30971388d6efbd985683df403f365703ba051c5dcedf16e34c88647d7f0f49ec21d996169029b9b0b80782ec80219ffff0321f89e6ff241ff6f9489fcf7b4fc93f9947d0c903e7760aec2a0d65b0a687eea03b20c44ff3c36e683e0981953934ec63cae12924f148a67ce4155b425fe3c30a3033740164f37aafcbd2ae5876b23b630b77714a6bc512200cd9ff82e117da74dc103ad7048edaf9a55ce705201665c05c029e3e32838d82fc0472fce88cc26affb3203fe1126051d62150012b67208308a259728295b7efeefcea55542fa2b70ea33500394677ec129eecc1d8f9f5af73c6928f1020619ef0ba75c1464e610424fafbfb00397139c9729a08bba04df52d07c3490792419533fc7bd3c02e1f4c3570f2c815a03d418cda7ad9a518884c054810f54fdb21d4aa11dcd7b1268083147120c63b48c03ea28aba543a2bb44ea2643313bf9d47e3d8ccde111d6495cd6a748df3e48d63003a010a58af52f436ce8b2dc587f14ea6a740552078fb68d9a14caa76f0b0aa8a90320be16ca879db9c759373d1b8882e274c14e1fc2eef5da8c3048e1ca3fce04910219ffff0358248a1193804b88ec1397af9891ef6328f8c6ee55008832867b77c03c46c1da03b1efbb59a5a4cf19e0ac8fe2aba8c71efd53adf88332c3531df14612cb13dbd50375bdc4ad749106a3ee2c3aaa195f5e256781633f4d77016856b2642b479938390368cc3484a36d0d375fc6295695ad6f380b8070666006a33ea60db2e3c6cc6e6203f0eece37dfa9bc399dfe890ccc6ad2eb1941b8666ca2ed1ec62436ac444a20c0037b1233196a8fadc5b67190f3037f8a62e29efda368c0f2e417ad3c1c60b930f403c19ce0c633aa66b45c349c505101416b7447c8f51468fa5cc35987e50afd49e003f44a2ae3e3af61dc6f8e2560c8211ea83ed8a15d26828bce244c4b38e362a94f0320b1c37db8ae1951cb1b4e1a7d704b7291403fd318ac3c11c77663415d91ec6203332b0a098773ded2f2d41d27f194108ac669e66302c8ba865ba07ec9e56d1de80375e8a22e49ccb2081bfc663b33acffe30759218c05061e149d251b47fad42dac032f2fe77cefec57a8b58bb51d39ea24b05f5c405512b1827ddaf7f5baae33377703eeb4026e25b19ee4a0b3bc02bfcc33467c8979fc9cce28520ff3b204b5cb9e8603d49c4833e66be8a67a0578bc77337a2a9527c06a2eae7c484f73fb4c2fe4ef430348c28d0e3aaad969fd0a7b9c0cc00cd5c90d6f5017396ea973952968fb86cba60219ffff035f0156ec6af6ddd991d2ab7ccf17737a4add337ce7a1ec15ef9e51755d2ce958038e04be7bb975712271a415d732f2d4836546b9877d6fa22cddc26a61a75a47db03c0248984e88345a4cb853ace1a2f51c033c0b837fa90057f8025925d41f4f1c5037220410e23f17c2bf0e3775b5848680824006bd95d6341d657adc67c7d9b901903e60c1c393a4836e21e775361f96aac3b144c895d9bf0564def20cfd30928e9f503f99827923b0aa6134d5572f06b9699e73ee67ca5fafb10859598b1db421b916803dbd133c0f5f3151ba2cb5742c743294008aa62261539d6b882123ec758b5fbf703bebc714f62b3842309406e85544dd134ea804d896159d06784a1bd32ff75fecf03d96b9239f2c80e893d77759fcd2178733c10362a82dbd725217293412040c894031f4d353754605166993dbe76342281117bae1eb2d27d6cc0a413c52171b46698030236af4a1c73d0cafe5fb83b98287e74397664e7c5b1d07b884263d112c984720391175220459aafbdc8f2e071e01186f5dc2daedfa19ac793693b0e2b58d10274033f6d4a94080d71702017fa8ff00060c9ac4b68bd9b85d43325b48c57d71e975a03dd430e27b9a0a6d9f7266ddc78f035d3e8f16d0622c9f1b51935eafdb683a34c035d0e0714f25722320a99953f95b0d28f63a19f5dbcb98521cb2007f04a9caae8038b634d05062d690e57f3901db19bbf0936b6e1f5cc9835a555b24671e8c55012033f04d1934ca189a1ee100d4e550cd5c16dfc41b7ff942ca855c574b4fcd6b8c203a1ac133397c537847e5199a127105df3bfc59ca2a92296869c28da69ac371fc903df93767298d9f809b18c301be76cdc11927f100c9b7bb1eb4fa8b18235dd3f6d0358a6478d740af2d98a3b16355bdf7b47f81beb0bbb8f0cabf1c97d10a4acacf2039790444c5ba94c558e4eafb44cf9ef1bcabe0e02a90fe6ccadbd6bb68f51428e0303a80bd742be288920a0108713df904e54f858dc72824ade9d64e1cbcb16662903a7edaa2991c39dd2d8395692ce22910efd8ddd712a2f066bf054c6929157077b0305d29ec8bcc6329d3500ab92355327925be27011213212924bf25f3652b9204d03a0923168fbf46df94f6c0be1efddae1ef155b4186a232632c7d9e5a90469f4c603d7fbfac639e7c5da4b5e8bbd64b3210c19f460bfacdb0faafe4a68bfd3b16ed603ccb88a5c1fa0f0463c0d72b4ddc4bf345149fa31bc224cfb95ff74dc7e6dcd2505581e03a3dbee0307facb6be1dc188dd067606e54496007dfbb2a20dfb74123a00c181c47309d02f21b43c004592377608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a714610534578063d505accf1461053c578063dd62ed3e1461058d578063fff6cae9146105bb576101a9565b8063ba9a7a56146104fe578063bc25cf7714610506578063c45a01551461052c576101a9565b80637ecebe00116100d35780637ecebe001461046557806389afcb441461048b57806395d89b41146104ca578063a9059cbb146104d2576101a9565b80636a6278421461041157806370a08231146104375780637464fc3d1461045d576101a9565b806323b872dd116101665780633644e515116101405780633644e515146103cb578063485cc955146103d35780635909c0d5146104015780635a3d549314610409576101a9565b806323b872dd1461036f57806330adf81f146103a5578063313ce567146103ad576101a9565b8063022c0d9f146101ae57806306fdde031461023c5780630902f1ac146102b9578063095ea7b3146102f15780630dfe16811461033157806318160ddd14610355575b600080fd5b61023a600480360360808110156101c457600080fd5b8135916020810135916001600160a01b0360408301351691908101906080810160608201356401000000008111156101fb57600080fd5b82018360208201111561020d57600080fd5b8035906020019184600183028401116401000000008311171561022f57600080fd5b5090925090506105c3565b005b610244610acb565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027e578181015183820152602001610266565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c1610af9565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b61031d6004803603604081101561030757600080fd5b506001600160a01b038135169060200135610b23565b604080519115158252519081900360200190f35b610339610b3a565b604080516001600160a01b039092168252519081900360200190f35b61035d610b49565b60408051918252519081900360200190f35b61031d6004803603606081101561038557600080fd5b506001600160a01b03813581169160208101359091169060400135610b4f565b61035d610be3565b6103b5610c07565b6040805160ff9092168252519081900360200190f35b61035d610c0c565b61023a600480360360408110156103e957600080fd5b506001600160a01b0381358116916020013516610c12565b61035d610c96565b61035d610c9c565b61035d6004803603602081101561042757600080fd5b50356001600160a01b0316610ca2565b61035d6004803603602081101561044d57600080fd5b50356001600160a01b031661111e565b61035d611130565b61035d6004803603602081101561047b57600080fd5b50356001600160a01b0316611136565b6104b1600480360360208110156104a157600080fd5b50356001600160a01b0316611148565b6040805192835260208301919091528051918290030190f35b6102446114dc565b61031d600480360360408110156104e857600080fd5b506001600160a01b0381351690602001356114fb565b61035d611508565b61023a6004803603602081101561051c57600080fd5b50356001600160a01b031661150e565b610339611680565b61033961168f565b61023a600480360360e081101561055257600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561169e565b61035d600480360360408110156105a357600080fd5b506001600160a01b03813581169160200135166118a0565b61023a6118bd565b600c5460011461060e576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55841515806106215750600084115b61065c5760405162461bcd60e51b81526004018080602001828103825260258152602001806122886025913960400191505060405180910390fd5b600080610667610af9565b5091509150816001600160701b03168710801561068c5750806001600160701b031686105b6106c75760405162461bcd60e51b81526004018080602001828103825260218152602001806122d16021913960400191505060405180910390fd5b60065460075460009182916001600160a01b039182169190811690891682148015906107055750806001600160a01b0316896001600160a01b031614155b61074e576040805162461bcd60e51b8152602060048201526015602482015274556e697377617056323a20494e56414c49445f544f60581b604482015290519081900360640190fd5b8a1561075f5761075f828a8d611a1f565b891561077057610770818a8c611a1f565b861561082257886001600160a01b03166310d1e85c338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561086857600080fd5b505afa15801561087c573d6000803e3d6000fd5b505050506040513d602081101561089257600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d602081101561090857600080fd5b5051925060009150506001600160701b0385168a9003831161092b57600061093a565b89856001600160701b03160383035b9050600089856001600160701b0316038311610957576000610966565b89856001600160701b03160383035b905060008211806109775750600081115b6109b25760405162461bcd60e51b81526004018080602001828103825260248152602001806122ad6024913960400191505060405180910390fd5b60006109d46109c2846003611bb9565b6109ce876103e8611bb9565b90611c1c565b905060006109e66109c2846003611bb9565b9050610a0b620f4240610a056001600160701b038b8116908b16611bb9565b90611bb9565b610a158383611bb9565b1015610a57576040805162461bcd60e51b815260206004820152600c60248201526b556e697377617056323a204b60a01b604482015290519081900360640190fd5b5050610a6584848888611c6c565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280601281526020017129bab9b434a9bbb0b8102628102a37b5b2b760711b81525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610b30338484611e2b565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610bce576001600160a01b0384166000908152600260209081526040808320338452909152902054610ba99083611c1c565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610bd9848484611e8d565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610c68576040805162461bcd60e51b81526020600482015260146024820152732ab734b9bbb0b82b191d102327a92124a22222a760611b604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c54600114610cef576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c81905580610cff610af9565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610d5357600080fd5b505afa158015610d67573d6000803e3d6000fd5b505050506040513d6020811015610d7d57600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610dd057600080fd5b505afa158015610de4573d6000803e3d6000fd5b505050506040513d6020811015610dfa57600080fd5b505190506000610e13836001600160701b038716611c1c565b90506000610e2a836001600160701b038716611c1c565b90506000610e388787611f3b565b6000549091508061100f5760055460408051637cd07e4760e01b815290516000926001600160a01b031691637cd07e47916004808301926020929190829003018186803b158015610e8857600080fd5b505afa158015610e9c573d6000803e3d6000fd5b505050506040513d6020811015610eb257600080fd5b50519050336001600160a01b0382161415610f8d57806001600160a01b03166340dc0e376040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0057600080fd5b505afa158015610f14573d6000803e3d6000fd5b505050506040513d6020811015610f2a57600080fd5b505199508915801590610f3f57506000198a14155b610f88576040805162461bcd60e51b81526020600482015260156024820152744261642064657369726564206c697175696469747960581b604482015290519081900360640190fd5b611009565b6001600160a01b03811615610fe2576040805162461bcd60e51b815260206004820152601660248201527526bab9ba103737ba103430bb329036b4b3b930ba37b960511b604482015290519081900360640190fd5b610ffa6103e86109ce610ff58888611bb9565b61207b565b995061100960006103e86120cd565b50611052565b61104f6001600160701b0389166110268684611bb9565b8161102d57fe5b046001600160701b0389166110428685611bb9565b8161104957fe5b04612157565b98505b600089116110915760405162461bcd60e51b815260040180806020018281038252602881526020018061231a6028913960400191505060405180910390fd5b61109b8a8a6120cd565b6110a786868a8a611c6c565b81156110d1576008546110cd906001600160701b0380821691600160701b900416611bb9565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c54600114611196576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c819055806111a6610af9565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b15801561120257600080fd5b505afa158015611216573d6000803e3d6000fd5b505050506040513d602081101561122c57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b15801561127a57600080fd5b505afa15801561128e573d6000803e3d6000fd5b505050506040513d60208110156112a457600080fd5b5051306000908152600160205260408120549192506112c38888611f3b565b600054909150806112d48487611bb9565b816112db57fe5b049a50806112e98486611bb9565b816112f057fe5b04995060008b118015611303575060008a115b61133e5760405162461bcd60e51b81526004018080602001828103825260288152602001806122f26028913960400191505060405180910390fd5b611348308461216f565b611353878d8d611a1f565b61135e868d8c611a1f565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b1580156113a457600080fd5b505afa1580156113b8573d6000803e3d6000fd5b505050506040513d60208110156113ce57600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b15801561141a57600080fd5b505afa15801561142e573d6000803e3d6000fd5b505050506040513d602081101561144457600080fd5b5051935061145485858b8b611c6c565b811561147e5760085461147a906001600160701b0380821691600160701b900416611bb9565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b604051806040016040528060038152602001620534c560ec1b81525081565b6000610b30338484611e8d565b6103e881565b600c54600114611559576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b03948516949093169261160292859287926115fd926001600160701b03169185916370a0823191602480820192602092909190829003018186803b1580156115cb57600080fd5b505afa1580156115df573d6000803e3d6000fd5b505050506040513d60208110156115f557600080fd5b505190611c1c565b611a1f565b61167681846115fd6008600e9054906101000a90046001600160701b03166001600160701b0316856001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156115cb57600080fd5b50506001600c5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b428410156116e8576040805162461bcd60e51b8152602060048201526012602482015271155b9a5cddd85c158c8e881156141254915160721b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa158015611803573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906118395750886001600160a01b0316816001600160a01b0316145b61188a576040805162461bcd60e51b815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611895898989611e2b565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611908576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b81523060048201529051611a18926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561195957600080fd5b505afa15801561196d573d6000803e3d6000fd5b505050506040513d602081101561198357600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b505050506040513d60208110156119fa57600080fd5b50516008546001600160701b0380821691600160701b900416611c6c565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b60208310611acc5780518252601f199092019160209182019101611aad565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611b2e576040519150601f19603f3d011682016040523d82523d6000602084013e611b33565b606091505b5091509150818015611b61575080511580611b615750808060200190516020811015611b5e57600080fd5b50515b611bb2576040805162461bcd60e51b815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b6000811580611bd457505080820282828281611bd157fe5b04145b610b34576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115610b34576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160701b038411801590611c8a57506001600160701b038311155b611cd1576040805162461bcd60e51b8152602060048201526013602482015272556e697377617056323a204f564552464c4f5760681b604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611d0157506001600160701b03841615155b8015611d1557506001600160701b03831615155b15611d80578063ffffffff16611d3d85611d2e86612201565b6001600160e01b031690612213565b600980546001600160e01b03929092169290920201905563ffffffff8116611d6884611d2e87612201565b600a80546001600160e01b0392909216929092020190555b600880546dffffffffffffffffffffffffffff19166001600160701b03888116919091176dffffffffffffffffffffffffffff60701b1916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611eb09082611c1c565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611edf9082612238565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015611f8c57600080fd5b505afa158015611fa0573d6000803e3d6000fd5b505050506040513d6020811015611fb657600080fd5b5051600b546001600160a01b038216158015945091925090612067578015612062576000611ff3610ff56001600160701b03888116908816611bb9565b905060006120008361207b565b90508082111561205f5760006120226120198484611c1c565b60005490611bb9565b9050600061203b83612035866005611bb9565b90612238565b9050600081838161204857fe5b049050801561205b5761205b87826120cd565b5050505b50505b612073565b8015612073576000600b555b505092915050565b600060038211156120be575080600160028204015b818110156120b8578091506002818285816120a757fe5b0401816120b057fe5b049050612090565b506120c8565b81156120c8575060015b919050565b6000546120da9082612238565b60009081556001600160a01b0383168152600160205260409020546120ff9082612238565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106121665781612168565b825b9392505050565b6001600160a01b0382166000908152600160205260409020546121929082611c1c565b6001600160a01b038316600090815260016020526040812091909155546121b99082611c1c565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161223057fe5b049392505050565b80820182811015610b34576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220713a8bf21df06433f34b5c9abf186abb737e72524583bdf420105a289791e24864736f6c634300060c0033030b5465a94ab80d405681d16c9d245460ce61fcb0e5701ac054d002f4a87ae1220366953cfa465766a09ef1646126f60f0432aff42d0310a2fa60b788ee0de6ba2a037babfdf421325960907bc6a45b6ed172ae3ead65961d7a7755cdb5fa41493e9103b66b236793c43ba3e4fec24007cce0ef64d97e3d0832bf55d2489926d2d347e303f1e1e05d06f3c434674c8b946fc2f997dd7c8b663434542e16eb78cfc001efe603ea9dfb381a42b795254a1db820cc12c2cef02b8499e65486afc0f15594e75d630058200291c26147b18495674cb10ead589fcd5f2b4aaaee97623a38518e1c9c6452174d0c9f2c9cce6dc3e0eb5bc445e903fce3cd5675be2dd086e7a11d3a1ecf52134673cbc723e5e0f63542fb1dc7565b0058200211692292863681387475e7b59cc3f0643e3a64e28bd3af410057cec5018bc15820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002e9d10a874bc86605f6a4c1e6c83735a8108d60540453a3e5098373154a36f84cfffffffa014907a37204a26a00582003540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af051062c9ffbd1cfb209a6c3d4a112f303a94300582003922a3b04b9499623ae41193447f59f28c9c0c3114271d24f6ff624cbba6ab04d0c9f2c9cb7cc7a135d22aa4e1e021940020058200219f5326e6edc51f7195c571de033ff68427ec8aafa1f6cb2ef3e0b83aa58e54cffffffffc17af0b2edb506f60219e608038fa61c7371b6976a755d54d22df6b0f459bd32c22dedefd08a5c0dddc743a9ad031f6fe05a0257ab01f9918bd9aa25b36c24bcb85d78f53e21e1b6985a0c00af14030adc000aac8fe61d185ddd65c4b7d43b6b3d91d512d7598437396c8250ae697e0058200246e27bbe563b0901bb7f3097321877ccb7df05cad4a1bf58f86292625da5204d0c9f2c9ccb4b6ae4e7b574a955005820024da6dfdaddc905f177d3222d0318fca8ff4db488bfc313b6a87bbb2ea641d14d0c9f2c9ccee8ce5dc2a3361e43005820030224bc65e958005ecc4e644f8f22d7cf8bed7eef8b1742be840f5d259186904d0c9f2c9ccffa5276ee5bc162cb00582003cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc202184400582002c2aedcc004320f9db96e953844f47d38f4866c603a6c0257edae6b33fd384a4cffffffffced42c46b7c992b5038b7bdf24ee35f65b54c939ec53eabb3f95ff5082b10ca1e258d76bfee8cf8e0503e614391fea2521124a8d6d89ef68c14e06cec5ebf61b68246c259d0866d7252f03b12ea451247e93ebde7802a47094748bd9e3da34309c5163426d17aa13489300005820022cd24a53f97677b05192ee5c66c6a3be412d517f2fd95f679540281b7d0b544d0c9f2c9cced481aaab9c75a64c031a9f19d3097c3aaea6b8614e6e16524ad7ef59c875c46ab6f11b6daadf4b34b50219dad20349f84bf569db1eb91a038bad05d015e545768a19a03be2e06576d527df04a6f200582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5820b4af2128a639d451f543d35534db9b79cb93dd9be3dae4beb3380b7e6efa4fa6005820020a5f1207514766f5bdda4d4a0c073d5434937f695f4f3b955e37157608497d4101005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a853074efae1324d4cff2caa50c842a41ab97e377e005820027917214661ef8aa129ef5798ec538c550304a87ed6b0d6b60c6d3141295469410100582002f0744c6ebe1406a6e68466ba1469d54fe1556ec39d2e9763b99e8f2724b58d4d0c9f2c9cca47cfba05c6835e0a00582002739aff74354ac9b504591169339d5aac36b83350f2692b557f112801c0345c410202195454034100bcf188c6cef8585fbba68d03326179cfe2e417307fd063d1a65465240c2503d572149b6d9083e86f333f51f31ec5b1ac009d795c74f29b3facfe8b6cb8d1e100582002729028dcca9f12c94131c303b1ad71a3a2c683d71cef1d8e0e4de2152e7e734d0c9f2c9cc715bed2111f251f020058200233f7bd1b1eb2d7475f8e2179da22ce9a725fd1fbf51a8bdc3de62bc48082ff410103686c44537353020e42d8dd2d81d7bb4e0d158b5683688dff328020e6ca1ccb45005820026e6b8f09c4d703e99efb4fdee04ecebc7ac04ff6b55014f0fef4996effcaee4829dd8660eaf14121005820037100b84e00c4fb1fa5bbea2fd5f1e8b8ce0602cea2aec14a9c3bfb50d3cbc04cfffffffeeec22710ca23a26a00582003966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c704101005820031e68bfc41e5a4b7af17cf2e201f0d3dfb485a3e5d715eb6eb01bab764b1ef04cffffffffd47c939af9c34ad5021980600219a0cd03c70841851db1c238b4bb3bbc3304dd892b7650745ba84fd62ff3feb358ecc247005820027ae780dc92c532138cdffa28be4888811550db5d5743b32e37789c5e14003c4d0c9f2c9cd01b00ea89f2d94832031458e7db9d0e6df907e08bc79e32054d6b3d2bd74b5e640e8c99f06331775ced0058200353ed8f2f7bcff8c48739e18d7306547ddc5755aca78954ca599891669a07d04cfffffffe692bd64d4b0c0eae005820037a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30582065cf4653000000000022e1d65e9f281345e60000000029f3dc670eccd096370902198001005820021336d755c3317fced35bb95dc657f7a82e94d72dd77c09ecbbb254669163bb4d0c9f2c9ccc176b543fc677129d005820038fb92f4982a0e6fa3b696074a29e058322d485cf32540df8a503ebf87996704101005820032222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0543432b6a60d23ca0dfca7761b7ab56459d9c964d00218220058200247da7838310ddf6901d172e927220a4b174c22d409dcee60b35e83c292bf7f41010219205e0219ffff05581d02f0ebea42d6bf4072a1aa005b6f551928c2600686dca1e14e92cc9650070119237703aefdf0b549a4dfddb17ab79884222d73a82f71697b1a96128c0256e16d4ec9840605581d027123fe157ba9cfe320098c08daed1fc4ed1c0969304df71417d6612907011bffffffffffffffff0219040103032d33111101402a865741f090fc5db4225db0b66dd397d41ad2504ed741b6ba031609cc195b6dd598af51bb97935a3f3fed0b710a992e22ce85f6b55074a147f703f7a375f8894f4ef06c931abe652d7aaebb905241688dd042515ab71b11f73a04032b1640aefbddcd14942cad9d626f025b38e48a4b7078b0238d416a61654b787c0328e731606e32fa31ebbc4f1d481617f369b1e1ccbb0db20d216f72e75ea4f2e805581e0367b8a5f8f2f99e29ef94be6ee6bfc5e656942fa5699e7082f97eec4cf00c024701b90f387bdc0003ac4675b3de38ef255cffa0a247dbc0dcb5507f263725b1370e534f3e1eb622d302195ef303db350d5104db4c2e522c12639dd70210b6ff6a4a399d68c01de0342ee4ef5d280398937ec8aee0818895d198ac4422ccb9683df741187f17ab3f171afcaa7ec69a0382b80558788c8065a86cc7da6b5913328b81ee7517b4aac9d829cf7c1cbbaa4503e5e8fbfd6a72263ff9c60d3dce32d3f5f7d3f7b3c71c4b98c97e4a6014f563ef038abfebb0ace02bf0a141b341e5577366f10671732bd8839e3c903eba56c0d6f2037b7b85f62dc55d4d8a80c5cdcbc2fe169de01beefc32c38674b514b4ab56744e038c13922d4d979532c4e05fab3c340e979830974304c1b748df7fbc54a390c7760219ffff0334e6ec1d14b0ef3de3ed33f707a892f9783c1b27cb6cfb39d6606203ef8ae78703bedc9c1c00da8c8937f9477003261a53694e74551693e39607ccb6c409cc9df60370bad7557082545cdd653d169fc8935945f4b63b182b57390f76583f7796cf310319e0542851a62892f998237487d7dc823a250e723bd702e2855fac771fc6aa620353ad80d96f21281cff7edd0169695d85d3951d906ea0bc6d09d090638ccf3ae503d6c1bdd02893785f968f2fcdb275d68680529866c8971b940ebc6ec5252515220378a8a0a43ae528840071ba96971af16b6119dad214921c68200dc6b80b0781f503d661899e4fc0997de37d27add8e12ed69a2cec2a96be97955ad81818542dc89803994f5cbc7773a53e80291d071cebb86bcd8e42cce38cd5f1f5df04354ddccf0803a92da96ac4b647a60a2b9daa05752bc58663d370d60759354d80c1b0ad9775f003274128e916b346d9efd5890a056380b673668cc3f9b244ba1649cfadedcf6158036a7de124cb43cccc25f7453ef9e28bc74801309e5b9b4291cd0b6a846186768c039d1fe92c1ee0cb47d0d977403a53dcef4de758cad68690c649e847ee56b741420219ffff039971da600d6499a917b1dbf709db58457b5c84b4990d4e0713ed1efc81ab9326038bd716e0dc651ae401eef8462d8652b635bf6d536799a144ab627884b1d682b80390cab3f5c76d92a1eec3e74cbb3ea5b46822c66b2740d7971073e0ba7ffb027c03dae2783882e0c9c542c5b041ee9bb4b855843620235c62b22c1fca4ccb5dd1c90357d5142d7a22f255ee336d97362da0939aafaef5532b77274e444258f2ca08d203824720cb4e4e6cbd9502b8a2062c4ee7f451a041f001404d84316f16af75088a0305e8efde86544478581de1089da8a331d0f67ddf096e5a02ef106d81f75f062503530c612ec9761478f90bd70c8d6a028eb038e0edd6278d290632419e6fdefd9f03d4e2996b21f38f6ebb9f18695453c7ec8a146371c9dd2fc7e2e78ad6869433d403c3834c8d1a68f6d92c1af8c356fe1a0621bd2a4a10efc78a90c239280c68affe0356930d3def90857ecedcd607ba145f42f47fbea350435ab1db86c962676f753e034a2e7c6162d24bddcc9e9c0f943175df191ca4fe6cc808ffb719fd6298b842ce03744a9e20057500ece13f8ca26784b958cac6d272aa4e7708e4af5de2cd30841b034e2dd9b8f32ab545f0071de2a192d780c77374ba30a5a199435ed7e082070539035372b53c2ae902736f7b0466a0d734bffb404b13e27acde38b4bf52e4d821f9d0345b62c3c6a38b04764613aa0d990c02409c8d4aef1c241ef2e8fa4514991a1bf03f15f237ca951cf0ae7a57902d8ee8ef9ab5bcc4dc8e411dc212296e54c5c051e03415039ca927a460f4b927f97548570de207a8c75f214ca1c51326dd1380573ad03211e62e6e5d3a31a98c6dcc047f826815771f45013a46848fb6b4d4e83562df8039a4af648cb17ae58bc9b95f62ac5ae26650520cde5ef86b4d10b88fe33e3319c03e536fb85dfd4b518af8668d1b8f79d4f7a706219d3c207d3e29c55efb138393503a09b010231852f1e758ef68f0784fe197507237022e3029b085be876beef4b66039cf4ad5e8db133d1d25a2039bbdf6593359460b2a250e34beb5846f572c8419d03f1cb0c2751977604a1f086206c81f172052ffcf22ebc479049b95f64ddaa6e5803b9cfc52b67cda10f99c91bb334bed2c355da384245d7e303195c10cb557030ab030c54df55f9043af9c2807f5d07265f8fa308b91c86212af0777f265ca512e48c032bcbcb5b52a55d08a3ed6e4e69226fc13dec0e8624c3e98ef9de85b255e76bbd0348d0bb66076a884a4b39add61da7ecc918fe148c3b2e9ad03eaf47b2312e15a405581e03ef58f15e639f7108d8470e4879e144910496f0bec9e25f50a98dcc06900c054620341af24bf805581e0352fbb77b4e499b1a57f3c70de14ae0c6f472fb0314da8800ddc3c472900c07462e73445c996003cf65745433375f1a55950e28394b0ae79312ab7d1511fd5233d69a5f541b1a3e05581d027c963d2bd1fbcd470472db5cedc1170181dad7337fd1be55446ac7b20c0147032a208497b9a004592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032032e2bc0c0ff22609eac8f10e1c8736f3e780dcb85055451e7ac674e2667ce4b570058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56304a02fea58ead8998a2bfd000582103e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af05402ca8540c9ee69fb49e2f1042cb853977f0aad5c005820026cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68854e92344b4edf545f3209094b192e46600a19e7c2d00582002b661198733f53bb9b621ec808effd2e8a3d86db6962103738e13951e49aab04907aa9d963722ce6d660219014000582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5820e5ca7b9bc42633210671e359a46016866d5482e6eec0fda0de61a478e9bbbe5e005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a84f0634d9b705d6c806756e9c539d1c8002184400582103f6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c704101005821031f25289b5c9db29d46c3566463f71796d2e07c9a7a96a888214082f19288cd004a02f6faf1175275d44e8200582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5dc300000001fdf36304315b59c29e56000000000005466997fb4db701c40058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f54c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20218480219f44505581d0250d419776ed0d47bf46938bf091b5481ccbb3c9307612366e4c00e500701192c1d0219020203cbbd7a20906e4a15232827aec4a9a9b6013db6a886278836384f2345a87fbf71033bbc497843767561d4e4c13c8220abfa7ce8a3f031ece18afead838288dd036b05581e0322a3bdbd65f2836ddbd37c9e8265626c0e2acbaa28f4ed524a068dbe5004030319552848d6c041426473baed4274b149c00628fdebb4ce075ef8da8a5888a32c05581e03003c036074e6b5e917cacef40442bce190f50c76684c94ac193d6fc7f004020219d7b8037899c9ad15fe36c3853e23019096291c7e0965ad6d52c5f2987540c43847b1840371442344c117d68b082b9692b8b149e3faca56d7a6397ea3514a1b1e096608b90370a96bbda10c0f2f47456456f0f1bc336b5c75b1d04ac6ec5b5ddae976970e42038577c4db74f0e4e818d447ad49933227238e3e0cdd27c85308f23a9843f6aafa032808bbfbf80a8b3b0ec3054a7ff735c9d757a3a47433b87a60a0982fdc4ca4e003282c756bd57fb15144ed48cc6ea5fc43b121e328f9833e23b753b9ccae5fb527031611686efd495f189696021a2163debeba6825a3b4b96ff7e6f37e1700436efd0219ffff0219ffff038c3ec1943fae386b34b818dc0b534940ec7083992e755702044fa3681fad436303c40de4b1752c1ce292203547674c57e41d9e1b4c9c0654eab81f8960f671589203df2ae3f1e19d62b6bcbc2d4635e10be97daeeaab6d84c24f7b084f4a521eaeb1030492e8a8743c03f84ef410f602f44fcd72ce342948aececc4d10b61c999be9610219ffff0303dbe8f9fdfe690059314bc58f6b80737094183b3662bedd9a32ba875df2ba84037fc49a68133de131427eeb9a38fdc5e248dc51ac5eadeab6e626e441f4870ad903f002e31735a0107a89a75e4a0db38f2589d9bbb98680b807af1a70221acfa645039c93e35222a9e3661ebc722b5b621c1d102dd4ff95b9ea3fe3ab37649c0e656903e2db50db0edfa8a6d57fff685bebb9bab6aafe506b97773c50098bd196e8a1180350ab2ab95cba73b0707830c7fb53711578c2085abcf48d4e42769e653d9b23a00219ffff0219ffff0324b0746a28d60f9c9e5474e2e058fe9e1dc7dc0495ddf347b5575ff7c79299c703f5c0b1e00faa36ed08e7b842052d6e6b4d13b326e2e6467205681596222dab9303d711de106221b1990976ef9b875f15d4ea9c1855df0d3b137bf4f551b81267d503bc4c038ae785da8ab490cb548856a30b144985f8a7ae1b85d8eb4afb6ccba2ed03319c77f6a15540b9912fcc2208344858e6d47c8882c92b9fa4afab1205ea533f03f5ad19ce3960d533f2b50f47bf84cb6af20325b230a56d05cc0db9b21360d2670309af0cf8170579700683f09f5a03449e137c954c1b1282abed22f882733dbf4703ddd471d721320f95865418d4c3c82147a3f3ded764f1971e07f49113b055ae00038946b1bad7ead36d5eecd6a655bd9f60d6e77f5f2c4664032297f8539a42c80b035ccf4be2d743eef8b6d03936d9350d52b57f494e510a89a3c5edfc73691233e803918d8eec6c232cb72ad394cf5a57a12b031dde50e5d1cf1942d3eea2f93d82ee03bfdcc54a64854db0e70fc519a2e244372b4acb20d87099c66b50052be1335fe403c34a09b289202f8558f14946c047e17f16a4490a8fdba65b69b94a5ebe3e95df0374190ed4a04d2213503c8965a70434a544a6cba6a93e35e613306afddbeed8af03036d781ed8b7bee9bc96fd4560ce130bf42902780cd83b42f4939e7bb5d6dc1203720494ad0b2389b94a100c90367339f23ab711f1ea352739fb867f481e2ef677032932c4a8722cf884916e2466fb378b478e63111ce5465395adaed6a2a95f3b8803ce00f24fa57a9d430c57a3e1d93a281e4fba233299fffa72553fb9d48b3941ed05581e0321c103d977f1c06df5724ad73cfa426fbd1cf83d98e88d1e0564b238000c0146a37d650a3ef203723ceae330286c83c8e00741d5a58942e87ac916a767c5bf0c020ef7b3779d4005581e03ded24cafb52c102ac71a648dd4c752eebe1fba51f5b0ecaae704f60ab0040105581e03251680e0871843d90d4ac969e3c5dbf165e49e77d8c4b5fa664fb4dca0040103f6e1273e7a2757aae6bc42f33113455d52736a1faeffc865244f06deed9872400605581e03ddbebeef02273e0748dd7dd3b6df8b6dcf924adad13d61bb733a8127f007011bffffffffffffffff05581e0362181b9528a6f90757508f6a38daf90f640daced2fac11cf1e798c6bb00c074478f71e080395d814fb35d1e5142bc9f88472a96db8b90a4ca8813e0e505e964af97273a09f05581e035c6260e51eb3c8a02de6537fbd7db80ac87a8d886591ac49d0442ee6a00c0147317fd6c107aa970459202d608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80637ecebe00116100f3578063a457c2d711610093578063d505accf1161006e578063d505accf146103df578063dd62ed3e146103f2578063f1127ed814610405578063f2fde38b14610442575f80fd5b8063a457c2d7146103a6578063a9059cbb146103b9578063c3cda520146103cc575f80fd5b80638e539e8c116100ce5780638e539e8c1461035957806391ddadf41461036c57806395d89b411461038b5780639ab24eb014610393575f80fd5b80637ecebe001461031a57806384b0196e1461032d5780638da5cb5b14610348575f80fd5b80633a46b1a81161015e5780635c19a95c116101395780635c19a95c146102ad5780636fcfff45146102c257806370a08231146102ea578063715018a614610312575f80fd5b80633a46b1a81461024f5780634bf5d7e914610262578063587cde1e1461026a575f80fd5b806323b872dd1161019957806323b872dd14610212578063313ce567146102255780633644e51514610234578063395093511461023c575f80fd5b806306fdde03146101bf578063095ea7b3146101dd57806318160ddd14610200575b5f80fd5b6101c7610455565b6040516101d49190611ca7565b60405180910390f35b6101f06101eb366004611cd4565b6104e5565b60405190151581526020016101d4565b6002545b6040519081526020016101d4565b6101f0610220366004611cfc565b6104fe565b604051600581526020016101d4565b610204610521565b6101f061024a366004611cd4565b61052f565b61020461025d366004611cd4565b610550565b6101c76105d8565b610295610278366004611d35565b6001600160a01b039081165f908152600960205260409020541690565b6040516001600160a01b0390911681526020016101d4565b6102c06102bb366004611d35565b610670565b005b6102d56102d0366004611d35565b61067d565b60405163ffffffff90911681526020016101d4565b6102046102f8366004611d35565b6001600160a01b03165f9081526020819052604090205490565b6102c061069e565b610204610328366004611d35565b6106b1565b6103356106ce565b6040516101d49796959493929190611d4e565b600c546001600160a01b0316610295565b610204610367366004611de2565b610755565b6103746107bb565b60405165ffffffffffff90911681526020016101d4565b6101c76107c5565b6102046103a1366004611d35565b6107d4565b6101f06103b4366004611cd4565b610851565b6101f06103c7366004611cd4565b6108cb565b6102c06103da366004611e09565b6108d8565b6102c06103ed366004611e5d565b610a0d565b610204610400366004611ec2565b610b6e565b610418610413366004611ef3565b610b98565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016101d4565b6102c0610450366004611d35565b610c19565b60606003805461046490611f30565b80601f016020809104026020016040519081016040528092919081815260200182805461049090611f30565b80156104db5780601f106104b2576101008083540402835291602001916104db565b820191905f5260205f20905b8154815290600101906020018083116104be57829003601f168201915b5050505050905090565b5f336104f2818585610ca5565b60019150505b92915050565b5f3361050b858285610dc8565b610516858585610e40565b506001949350505050565b5f61052a610fe8565b905090565b5f336104f28185856105418383610b6e565b61054b9190611f76565b610ca5565b5f6105596107bb565b65ffffffffffff1682106105b05760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b60448201526064015b60405180910390fd5b6001600160a01b0383165f908152600a602052604090206105d19083611111565b9392505050565b6060436105e36107bb565b65ffffffffffff16146106385760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f646500000060448201526064016105a7565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b61067a33826111f2565b50565b6001600160a01b0381165f908152600a60205260408120546104f89061126a565b6106a66112d2565b6106af5f61132c565b565b6001600160a01b0381165f908152600760205260408120546104f8565b5f606080828080836107017f46616c636f6e2048550000000000000000000000000000000000000000000009600561137d565b61072c7f3100000000000000000000000000000000000000000000000000000000000001600661137d565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f61075e6107bb565b65ffffffffffff1682106107b05760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b60448201526064016105a7565b6104f8600b83611111565b5f61052a43611426565b60606004805461046490611f30565b6001600160a01b0381165f908152600a6020526040812054801561083f576001600160a01b0383165f908152600a6020526040902080545f19830190811061081e5761081e611f89565b5f9182526020909120015464010000000090046001600160e01b0316610841565b5f5b6001600160e01b03169392505050565b5f338161085e8286610b6e565b9050838110156108be5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105a7565b6105168286868403610ca5565b5f336104f2818585610e40565b834211156109285760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e6174757265206578706972656400000060448201526064016105a7565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590525f906109a1906109999060a0016040516020818303038152906040528051906020012061148c565b8585856114b8565b90506109ac816114de565b86146109fa5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e63650000000000000060448201526064016105a7565b610a0481886111f2565b50505050505050565b83421115610a5d5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016105a7565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610a8b8c6114de565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610ae58261148c565b90505f610af4828787876114b8565b9050896001600160a01b0316816001600160a01b031614610b575760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016105a7565b610b628a8a8a610ca5565b50505050505050505050565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b604080518082019091525f80825260208201526001600160a01b0383165f908152600a60205260409020805463ffffffff8416908110610bda57610bda611f89565b5f9182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b610c216112d2565b6001600160a01b038116610c865760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a7565b61067a8161132c565b5f6105d18284611f76565b5f6105d18284611f9d565b6001600160a01b038316610d075760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a7565b6001600160a01b038216610d685760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a7565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610dd38484610b6e565b90505f198114610e3a5781811015610e2d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105a7565b610e3a8484848403610ca5565b50505050565b6001600160a01b038316610ea45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a7565b6001600160a01b038216610f065760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a7565b6001600160a01b0383165f9081526020819052604090205481811015610f7d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105a7565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e3a84848461150a565b5f306001600160a01b037f000000000000000000000000d108d3026f6f0c3fd58ef154203bc418c4d6eec91614801561104057507f000000000000000000000000000000000000000000000000000000000000000146145b1561106a57507f4e61742ba99d74c94f6f0dc1bd33e710cee5f48188a55051246d717adb00489490565b61052a604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f10d26cd7d7100c447f2ae58ed431111ae445488e1087b2fc4d1efbfc1e0db3be918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b81545f9081816005811115611168575f61112a84611515565b6111349085611f9d565b5f88815260209020909150869082015463ffffffff16111561115857809150611166565b611163816001611f76565b92505b505b808210156111b3575f61117b83836115f9565b5f88815260209020909150869082015463ffffffff16111561119f578091506111ad565b6111aa816001611f76565b92505b50611168565b80156111dd575f8681526020902081015f19015464010000000090046001600160e01b03166111df565b5f5b6001600160e01b03169695505050505050565b6001600160a01b038281165f818152600960208181526040808420805485845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610e3a828483611613565b5f63ffffffff8211156112ce5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016105a7565b5090565b600c546001600160a01b031633146106af5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a7565b600c80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b606060ff8314611397576113908361174d565b90506104f8565b8180546113a390611f30565b80601f01602080910402602001604051908101604052809291908181526020018280546113cf90611f30565b801561141a5780601f106113f15761010080835404028352916020019161141a565b820191905f5260205f20905b8154815290600101906020018083116113fd57829003601f168201915b505050505090506104f8565b5f65ffffffffffff8211156112ce5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b60648201526084016105a7565b5f6104f8611498610fe8565b8360405161190160f01b8152600281019290925260228201526042902090565b5f805f6114c78787878761178a565b915091506114d481611847565b5095945050505050565b6001600160a01b0381165f9081526007602052604090208054600181018255905b50919050565b505050565b611505838383611990565b5f815f0361152457505f919050565b5f6001611530846119c1565b901c6001901b9050600181848161154957611549611fb0565b048201901c9050600181848161156157611561611fb0565b048201901c9050600181848161157957611579611fb0565b048201901c9050600181848161159157611591611fb0565b048201901c905060018184816115a9576115a9611fb0565b048201901c905060018184816115c1576115c1611fb0565b048201901c905060018184816115d9576115d9611fb0565b048201901c90506105d1818285816115f3576115f3611fb0565b04611a54565b5f6116076002848418611fc4565b6105d190848416611f76565b816001600160a01b0316836001600160a01b03161415801561163457505f81115b15611505576001600160a01b038316156116c1576001600160a01b0383165f908152600a60205260408120819061166e90610c9a85611a69565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516116b6929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615611505576001600160a01b0382165f908152600a6020526040812081906116f690610c8f85611a69565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161173e929190918252602082015260400190565b60405180910390a25050505050565b60605f61175983611bd5565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156117bf57505f9050600361183e565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611810573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116611838575f6001925092505061183e565b91505f90505b94509492505050565b5f81600481111561185a5761185a611fe3565b036118625750565b600181600481111561187657611876611fe3565b036118c35760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016105a7565b60028160048111156118d7576118d7611fe3565b036119245760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016105a7565b600381600481111561193857611938611fe3565b0361067a5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016105a7565b6001600160a01b038381165f9081526009602052604080822054858416835291205461150592918216911683611613565b5f80608083901c156119d557608092831c92015b604083901c156119e757604092831c92015b602083901c156119f957602092831c92015b601083901c15611a0b57601092831c92015b600883901c15611a1d57600892831c92015b600483901c15611a2f57600492831c92015b600283901c15611a4157600292831c92015b600183901c156104f85760010192915050565b5f818310611a6257816105d1565b5090919050565b82545f908190818115611ab3575f8781526020902082015f190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611ac7565b604080518082019091525f80825260208201525b905080602001516001600160e01b03169350611ae784868863ffffffff16565b92505f82118015611b0f5750611afb6107bb565b65ffffffffffff16815f015163ffffffff16145b15611b5257611b1d83611bfc565b5f8881526020902083015f190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611bcb565b866040518060400160405280611b76611b696107bb565b65ffffffffffff1661126a565b63ffffffff168152602001611b8a86611bfc565b6001600160e01b0390811690915282546001810184555f938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b5f60ff8216601f8111156104f857604051632cd44ac360e21b815260040160405180910390fd5b5f6001600160e01b038211156112ce5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016105a7565b5f81518084525f5b81811015611c8857602081850181015186830182015201611c6c565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6105d16020830184611c64565b80356001600160a01b0381168114611ccf575f80fd5b919050565b5f8060408385031215611ce5575f80fd5b611cee83611cb9565b946020939093013593505050565b5f805f60608486031215611d0e575f80fd5b611d1784611cb9565b9250611d2560208501611cb9565b9150604084013590509250925092565b5f60208284031215611d45575f80fd5b6105d182611cb9565b60ff60f81b881681525f602060e081840152611d6d60e084018a611c64565b8381036040850152611d7f818a611c64565b606085018990526001600160a01b038816608086015260a0850187905284810360c086015285518082528387019250908301905f5b81811015611dd057835183529284019291840191600101611db4565b50909c9b505050505050505050505050565b5f60208284031215611df2575f80fd5b5035919050565b803560ff81168114611ccf575f80fd5b5f805f805f8060c08789031215611e1e575f80fd5b611e2787611cb9565b95506020870135945060408701359350611e4360608801611df9565b92506080870135915060a087013590509295509295509295565b5f805f805f805f60e0888a031215611e73575f80fd5b611e7c88611cb9565b9650611e8a60208901611cb9565b95506040880135945060608801359350611ea660808901611df9565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215611ed3575f80fd5b611edc83611cb9565b9150611eea60208401611cb9565b90509250929050565b5f8060408385031215611f04575f80fd5b611f0d83611cb9565b9150602083013563ffffffff81168114611f25575f80fd5b809150509250929050565b600181811c90821680611f4457607f821691505b6020821081036114ff57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156104f8576104f8611f62565b634e487b7160e01b5f52603260045260245ffd5b818103818111156104f8576104f8611f62565b634e487b7160e01b5f52601260045260245ffd5b5f82611fde57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52602160045260245ffdfea2646970667358221220629edfc7909f103fc969418db4e23706337fd9d176bc0549defc88d1b44da42364736f6c634300081500330397da22ce5de4dec6edda43d65ffef3f6000b4dcd71cbd7b01c55b79dbf09109e031047a39e002b1854ead4e9eafd38ebb178dd2950e72f163b0752c192b85d02a700582002fd21e6586f520d907b65546a85f45225a98acd74ae0b43a4af75e63313b7cf434c4b400058200294658eaf253eed3919a1850af4185804578a75f15fb7dec26e7a5e0e8fef4e4347b76003312ea4d92ec493a575861d89f19140397246863652c59a9bec5f1e4b25f419e8005820022548e86cf418017e495b7053d112f0f4ab1b5869a65a2f083dd5ec89e913274401f603a0005820022809e5c7af940252ffed3fa74547d35bd0cebce5f6bf9d7e9d451481455cc44361a80000582002a3a3f39b3c7dfea7cc959051eac9a045074890d91b07966d5302e53f1738444401775dc000582002da4a817a79728be4af64a712c7c3522f52a5236c5d92fbe7e52915eb48452844028b8ce00219d84503d34b6912e55060b271ae13116fc7b248072e20477aefee8c4ecb9e008cc4b41303483f3dd109cf39c985c21176d3e91a22544e433087ea59c3af0f2602409131a903d1ffca19deed4f910301d5e27484a5ca74a29e6d6a3d9805b1d05f367444b162005820023b9c24347ec0b43687e49a28a17d0bc2691606e77238e111b51c8949433dd64364b54000582002e5411f796c1b7eff071eaa668ff83710b283055b12eb6db9f3645615ca1c17440283ebc000582002c39cadf4c84ad8528915ce482ff9634553b764f94737d8fd201f4047a7535643cc77c000582002230c5552eac314399e2c768979821fa21489a0d4c2a5257708e4105b3fc47443788b600219468000582002c89dc8617064d99de0761192662c762b0cbfa98aab51df3292e00cbe779a7a43200b20005820021d3adc75baec2447d864be5a1b773c089e4a78d2a13cb5a11b4d717f8197bb430f42400058200202c043d56cc4c6226463cea3dca77aeb710bdd9252b0b975c297f11c251a7f43124f80005820029e146a908fda6db9af9eda19aef23795ad2b26ec38daf8d75d3706ae05e0094333e14003ec5088389cc5e1a0bf07d2bf48acd7f7e44032eeede4c666149bca006ba1c18a0058200271c388b21ffbdacf4f096dd5d8f582c517f73093f07a639eef496b2ed964284373f7800219b64003a1bba79a3ed4a0685cb534e16a0cd2ea42346b1712485592c1002a8a05d21b12031d5056264ad5256841aa7b25e12d401eaffde2153264a3a41338ff10ba542c9f0354a07801c1367a5bb100439b1329d63497657e63e9244be1fb6152f55af3dc9a00582002fb94041812f5b5e36717d4015ff703e0bac9c58e8619b46813e91cf3bbdfa04401b7740000582002ac7d4e10f072d9f46be3db644ef1be450423557f8fa8d52ccc7cf0d7e8c3194a01e8f1c1080001149eda005820028cc1abdf685e3723e1efd60bf12032ae22e7fdcc0764628e756f26d7c5d760430493e003767053f122d79097fbbb7c98f9f423a52a0f734f632b27e0831cd116c9c78dc100582002e543e5b214d53090a5ac6875dc1943f152bc735fe8b3cc74b2b210acecd4f143970fe00322d174ab256fdb4c36737b92762b316b65e8fef58f217f61629ae5b75649cde900582002654f77514806419f4a38aaef8bbc0b524714d69d20705c4778229c9333b976434f588000582002754ca1b722133f7b0fe86a839509eca8c5e03bfa57d2a4e2afca5bef4280c34516642ad5d700582002ca043c68cf718711be0b12290dc34e48856c611017f048f97df9e75e14f18e437d1f40036789d0d9c1923ac1dbf3e024e0ab50d46f8d1ab9de3385542e8a39a9b14dc2f400582002db5484f42ac1c58168218adea1f91a62fc8a7d77a619f33aec988f6652006e43bb4b490219ae7d03f6a7ad0e79c122b338d3c34caa588215405b530a56f1f91f56fe51af192f83d0035d034ae2e1636ec7472bf4be3ed5d43529685e3475f936f2b6c8dd3929be5566031f856e86f4c699292715bedf9c3e8d6297b1968905254e75684b3432c960bd4d038801f158f38ddcf7a7f4b38f39e16d0bd0259db68017e7d3eef98fe6e1fe74490219ffff05581d02907ec3cfa69d85dd3c6e4c358b29e853304d3c8e3dbff6f43e445a98070119202d05581d02fd9dd63495f2d9048846a0649e5a41d8b8769b3ca7a0d2fe3cf727f50c01468f2fb1400e0002185003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e036802ae80cf4ce12da4d58c56a25471a62870f2c14faabcccf14bf5b83007011bffffffffffffffff0219e3d9039a61861dee6bb796e98b3b795a674e43656bd0fb4b7860889d7af4b39a8bdf990396a7e0a2d196a3138a15cd8ffd676a7ab8d11a81d1a7e7691745767f3404ed8603dec6217a1cc452ef5af8a21f3e92f4fbcb79d0aa71635402c46d64c44aa3738e0219ffff03bf0dc3b1bb57f065952bbe83b8a3bc9a830cd9d03e8416e1e25a859229bc780a0384c29616e36bcc5efb2eab98f2cd4275982f676305b64135c6a9f0821569bc1a03fc9408b246b54a4d112e295793544e8a1e91320d6e19cedfdeb711e08972c2ab0364114fe9af01efadf556d3837f9b0ecb08d610ee0f5ebf3819a71cec36b134f203bfa234250853e060a5278b1d7667507b027cf9e76fb9baee933e48bb9101413c0304308739682f1a0d8013db77eaee9dea19e76bf9969e7a5579c2874c0578dff203689b9e443e3764d457f7b2c22c90db38cad9f3573f4468612602b866f259b94f0334ae146c2c48ee2af95442e5bbfbcef7180399c3cf4b84074d473dd21fc242f8032a235937551db8a17f4ed041cde62bbeb800bb8fa344d7076fcf85ee8cfac33e03d63f068815b1f1d5136017c22269184d25043e3f0f1d5750d88b45aca445086203c206a31691247069829dc773c44e748355d0f2f66dd8a409a4cd0d6330af9d7e03177921be87bd45514b45ed5c01a60a91172714d8636e685d95dd45b4bff223a70307ded5bb1d5aa97d4d4229915db114f74185ce9617d80c43b9518ab488b9f161038281bc9d7cd0bd43cbced605f76172bfb350ae9e80ef0a5c3b26502dde3954bb0219ffff03616734526c129a3852897159591fb5eec0b678b19aa708bbc48bb1e6db26a29b039eed0f1e0e6e369f6137337975373798177583600762e1f8b1cba7c3a2f5295603991e416b97bf5e406ad28a90354116866a1060f1a5d8eb9766f7078f10d9c87d03841267be8d291756e79dbec6316473944cf0afd4eb46ac5ff13aaf67b0963879032e37a1d7706a2b8517408f2cd17e606ce30173fb07b3b407cffedc63f121635203fa9820f4f70611d7eba05b9eb714365ecb5183c52c9dd16fec581015710bc50a032eaf0fccce692be4ad308883af4e5faeda717c4d1fa4e4f10926ff63bfdb7627036e9f0c4f117bed65f4695a0e05662d74bd8e9148e4327a09f7316d5a3b65745503e5a92c5ae1958b74888adb3fa25c17f30fadbfb9b0543c05bad92a963d94dd670395cadd48d3505123151acd1ad1d9dec3a261d8d4ca5530c544dc35d2afaa39720219ffff03cf92b8979a676894364e0f77785d653862814ca494f4641deba2313706504065036418ec00e4f8fd448c003cfd9029da1d19998cb0533718f90c81cf7a2641e11603a4421be3dd118b1c434e5dd7b406abd7c463c71f918e961b55d8cdf7256988c303e1834aaec0d499aaa5a5a64ccd8d197b61c59e78793516bc903a390425112a550305ee9759faaaa1d3630b3db9a26e34722e2c913cb05c947080c71cf064e40637039a895caab57298001020512edb799eebbf49c2c9bb74b706d7f09fe6f33a730003bed46b4954e49a35e752641f603382de619a6aaa3962b86325585edc08c9910e03c3b3975fb931a95616b35b2dfd3c8cfe2705d1f8a795876133221524a89b4b50033353e02599f94fef88bca8ede1d7b577ec8d28013ca82626b689d0a44062488803e6c710e8473f3bcec5cb44fbd57e1beb48f338cb8ed2b3b946c717bf577af489036f57630ac7b7a0e77d7abfcba4c33b05436e5a64084296b45a5fa9b268ee63e8033256528c21d48395c1077c77f2b117dfd2a153aac00ee1ccf05d9cc7014f66a7035b4ab4e64e2ec5d0c42b68ba35948e2156783e365d7fb5dfaf665058c2e1eda30353964d2f184880f1db4cc030723ef7f11aed10e7ef8c8b8b36b60a65079897f503ca4bd94dfc4959317e8ed501958b680ba2b9923515d18f17f937dba6ea8eb15a03bdcf276694f341508da369e08f3d3824a32bb02547129e22ce135128460239c4037203ee0eccf89e5860bbe12c1deba265d28ae628dc0560abdff65db321301b2e03cd172e47b3df6ea808baa836772b3559747eadf1e1380319374f03276f7b800603b0fc2f77f4db7a13edfa8f2af21623fc33c665993b0cf23f41db0511e274de9903878d771dd50c40301b9c3f0ad7a73bc5f36c33e3a34be784056ec5b0c22fae6803b82f18b8043845e73cae063e9ffeadde3ba43031e54ab38da9902795d13284b003b97d9d71abef205f5132943fbdcf635c2dd7ee80350e2d8872b0f81115bc4a2903b5403b0da7bf9724a80e0bd78d446fea2c707547725531d62703713ba91bb9c80317f71902f2f1e0ca9871b58316303ea28cda7a3ddbe96ec34f12e76247dac08d032ab28ea259958c87dc987f622506bfe202450a4770f0430d71dcc734fafa40950322591b495bef360943f9e060e8b4f4d992341f06e53bce5e2323f5b88f39a2470357f5b601c39d224acbc960e5714e6fe30c6ea7ee80d1222e861e44545a09d1c803ff4c9f5c0e59aff022295b380d934e2857a2dec6c6a4e51dfb08efc449c763710306e7c49c06259ffefe69c91139058ddfc9c7979f793f60b6c8a5f626c01452fa05581e03d9ab0290a9dd356f9096641df5ce47c9f6eec327a11a153c78dc7b87700c01465d939a103a2c03a522a77020d700e5c514ccbe69e3a790f5c6394b87eb7736ac140960181d183c031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03c4b63b3c2dc8d1ca50adad69438e450c26647541382697608794da38b007011bffffffffffffffff05581e0379b29cfb68efd058e64ea5e9e1a4ffce49e676bd44758c9de3cbb696a00402039fa4285c7e5dbcd8918901616b84710fd6622b769ef71e53ddc6b1ebcba75d1a031f8b67be329f6419c9282095843235301b6b3475e42bc9e3262b646aba8072060605581e0360b12e35e192fabb92b653f436a8d93a3fe4a31c6f0e0bb9b6aa660e9007011bffffffffffffffff05581e03512e5fd6aa467ba0275da97cb7898c314203ff01162ef999c2e6e85ab00c014744e45d81dea8480307e2c6b61c9af478c838e0cd185c69d3833252bafc6b482672d34ad9dc615c9205581e038b5dded3dcfdf54afa0824f0a97c21abf0f2645644c8c079a7e7d279900c174711e8334ea5ff0505581d027c3cf7663beb2da7bb9dc1c18bacdf107d0d93633f4e9071ca0f312c08470accb0eb3c140005581d026526f3239521117e32e590deb149db493bb5c665ac3aae6b493c9b20040104591045608060405234801561000f575f80fd5b5060043610610115575f3560e01c80635c975abb116100ad57806395d89b411161007d578063a9059cbb11610063578063a9059cbb14610243578063dd62ed3e14610256578063f2fde38b1461028e575f80fd5b806395d89b4114610228578063a457c2d714610230575f80fd5b80635c975abb146101c957806370a08231146101dd578063715018a6146102055780638da5cb5b1461020d575f80fd5b806323b872dd116100e857806323b872dd14610181578063313ce5671461019457806339509351146101a357806342966c68146101b6575f80fd5b806302329a291461011957806306fdde031461012e578063095ea7b31461014c57806318160ddd1461016f575b5f80fd5b61012c610127366004610e4e565b6102a1565b005b610136610347565b6040516101439190610e74565b60405180910390f35b61015f61015a366004610edb565b6103d7565b6040519015158152602001610143565b6002545b604051908152602001610143565b61015f61018f366004610f03565b6103ed565b60405160128152602001610143565b61015f6101b1366004610edb565b6104b1565b61012c6101c4366004610f3c565b6104ec565b60055461015f90600160a01b900460ff1681565b6101736101eb366004610f53565b6001600160a01b03165f9081526020819052604090205490565b61012c610622565b6005546040516001600160a01b039091168152602001610143565b6101366106e0565b61015f61023e366004610edb565b6106ef565b61015f610251366004610edb565b61079f565b610173610264366004610f6c565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61012c61029c366004610f53565b6107ab565b6005546001600160a01b0316331461030e5760405162461bcd60e51b815260206004820152602560248201527f4f776e61626c655374616b653a2063616c6c6572206973206e6f74207468652060448201526437bbb732b960d91b60648201526084015b60405180910390fd5b60058054911515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60606003805461035690610f9d565b80601f016020809104026020016040519081016040528092919081815260200182805461038290610f9d565b80156103cd5780601f106103a4576101008083540402835291602001916103cd565b820191905f5260205f20905b8154815290600101906020018083116103b057829003601f168201915b5050505050905090565b5f6103e33384846108f7565b5060015b92915050565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f19811461049b578281101561048e5760405162461bcd60e51b815260206004820152602d60248201527f45524332305374616b653a207472616e7366657220616d6f756e74206578636560448201527f65647320616c6c6f77616e6365000000000000000000000000000000000000006064820152608401610305565b61049b85338584036108f7565b6104a6858585610a50565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916103e39185906104e7908690610fe9565b6108f7565b336105485760405162461bcd60e51b815260206004820152602660248201527f45524332305374616b653a206275726e2066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610305565b5f81116105a75760405162461bcd60e51b815260206004820152602760248201527f45524332305374616b653a206275726e20616d6f756e7420657863656564732060448201526662616c616e636560c81b6064820152608401610305565b335f908152602081905260409020548111156106155760405162461bcd60e51b815260206004820152602760248201527f45524332305374616b653a206275726e20616d6f756e7420657863656564732060448201526662616c616e636560c81b6064820152608401610305565b61061f3382610c71565b50565b6005546001600160a01b0316331461068a5760405162461bcd60e51b815260206004820152602560248201527f4f776e61626c655374616b653a2063616c6c6572206973206e6f74207468652060448201526437bbb732b960d91b6064820152608401610305565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36005805473ffffffffffffffffffffffffffffffffffffffff19169055565b60606004805461035690610f9d565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156107885760405162461bcd60e51b815260206004820152602a60248201527f45524332305374616b653a2064656372656173656420616c6c6f77616e63652060448201527f62656c6f77207a65726f000000000000000000000000000000000000000000006064820152608401610305565b61079533858584036108f7565b5060019392505050565b5f6103e3338484610a50565b6005546001600160a01b031633146108135760405162461bcd60e51b815260206004820152602560248201527f4f776e61626c655374616b653a2063616c6c6572206973206e6f74207468652060448201526437bbb732b960d91b6064820152608401610305565b6001600160a01b03811661088f5760405162461bcd60e51b815260206004820152602b60248201527f4f776e61626c655374616b653a206e6577206f776e657220697320746865207a60448201527f65726f20616464726573730000000000000000000000000000000000000000006064820152608401610305565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a36005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b0383166109735760405162461bcd60e51b815260206004820152602960248201527f45524332305374616b653a20617070726f76652066726f6d20746865207a657260448201527f6f206164647265737300000000000000000000000000000000000000000000006064820152608401610305565b6001600160a01b0382166109ef5760405162461bcd60e51b815260206004820152602760248201527f45524332305374616b653a20617070726f766520746f20746865207a65726f2060448201527f61646472657373000000000000000000000000000000000000000000000000006064820152608401610305565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610acc5760405162461bcd60e51b815260206004820152602a60248201527f45524332305374616b653a207472616e736665722066726f6d20746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610305565b6001600160a01b038216610b485760405162461bcd60e51b815260206004820152602860248201527f45524332305374616b653a207472616e7366657220746f20746865207a65726f60448201527f20616464726573730000000000000000000000000000000000000000000000006064820152608401610305565b610b53838383610dc9565b6001600160a01b0383165f9081526020819052604090205481811015610be15760405162461bcd60e51b815260206004820152602b60248201527f45524332305374616b653a207472616e7366657220616d6f756e74206578636560448201527f6564732062616c616e63650000000000000000000000000000000000000000006064820152608401610305565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610c17908490610fe9565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c6391815260200190565b60405180910390a350505050565b6001600160a01b038216610cd65760405162461bcd60e51b815260206004820152602660248201527f45524332305374616b653a206275726e2066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610305565b610ce1825f83610dc9565b6001600160a01b0382165f9081526020819052604090205481811015610d595760405162461bcd60e51b815260206004820152602760248201527f45524332305374616b653a206275726e20616d6f756e7420657863656564732060448201526662616c616e636560c81b6064820152608401610305565b6001600160a01b0383165f908152602081905260408120838303905560028054849290610d87908490610ffc565b90915550506040518281525f906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610a43565b600554600160a01b900460ff1615610e495760405162461bcd60e51b815260206004820152602760248201527f45524332305374616b653a20746f6b656e207472616e73666572207768696c6560448201527f20706175736564000000000000000000000000000000000000000000000000006064820152608401610305565b505050565b5f60208284031215610e5e575f80fd5b81358015158114610e6d575f80fd5b9392505050565b5f602080835283518060208501525f5b81811015610ea057858101830151858201604001528201610e84565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610ed6575f80fd5b919050565b5f8060408385031215610eec575f80fd5b610ef583610ec0565b946020939093013593505050565b5f805f60608486031215610f15575f80fd5b610f1e84610ec0565b9250610f2c60208501610ec0565b9150604084013590509250925092565b5f60208284031215610f4c575f80fd5b5035919050565b5f60208284031215610f63575f80fd5b610e6d82610ec0565b5f8060408385031215610f7d575f80fd5b610f8683610ec0565b9150610f9460208401610ec0565b90509250929050565b600181811c90821680610fb157607f821691505b602082108103610fcf57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156103e7576103e7610fd5565b818103818111156103e7576103e7610fd556fea264697066735822122036575823465540cb1277c31fc2caf8a9189293837511e06209ac0d70400a979364736f6c63430008170033030ef6d3e7960a317c69218d5d92fdce0fff31359989e6286e3df138ebd3e077ab038f7a887c84db31a58a7a0d0e2b9cae5f46976bd7c5746d61462c159ef9beb7fd037ddd5d7bdfcf55613eac5419a350efbba184cb7762235338304f1f20aa66680900582003c267cea428e8ac6981847912a61e91dd8a81408df2120fdbdc18ee5738db505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200386ca55ac77e42f21d8d4b4f9d9f8b470857abdb53413f4f0b1ff977210e2105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff032425b7cc50df3122b79c56bb6ed94aae8706786a3fc241b67a4121284b7a93bd005820032b1e2be0efa02a0adad205ad4bb7958ce3ba49e2b4a0b886580182c7cee3605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003c8fff7b3b19212c06ba5cd02a40e8e35caad1e4f66030a939b436c26c904c04bfb822c05ed3c6632725a3800582003b5f6ad52279217dd61a2354ac2e6f185a14e8022baa685bfcedd76a8d7e0305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003f2f989a56404bc1f6b91dd7f8cbedd6f8055dfc7c74e7bc988945620f3fbc05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0368c5d0368755d261f1f9a1669660ce112928907bca9c1ecd473061d723429ea9021929d303cd4e056c0fd51d69c969a168d17c01e51d9e02460f6174e1c83567b4c5971f420348a3fa607473f9c44193783186048a09fec318ae1e0085695dbf6dbfa0956607039f1c7528b052bc79e1b670c3dc4bbf8b95dec056f2e2b64f12a65336f2cb0f0603d7b84c8a88b50ba2b2f04f2bdf8b78a3ff9d1e1d288b99fd1560369e73e73e3003a8a4a943b7378169804a11f35ef9a480a77ccdb3ad09463511f15347f6220ba6032d63edd8657cbad64271f9dc865c8b19a638f3b674c49ee6a42cadd59ce6c9870058200367dc8a9205ffc5917d62479cc780f8a26f9c7c4888c021204281e00af14ee04b0f8eeb71aac39ef7a9394903d6ebe4e8cb46105d5cfb523ed0411f04ae53398629e81c0cc5b40b1f3567cb9b00582003464f451c68b0bb0b14ab97bff7d5d7a06f1d5f220a6481ef7cc737ca23b8b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003f02809787849eafe5457bab1af5c01c25b4e1a7c19fca2e214aac9e5c550c04d01ae83e8d8cf3f7c0d940b5f49005820030b6e70c090a7b20f9eb912c5084325285c918ceddc49c3c8003bf3a140d0205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003c43f77d64a206b64736c351a36e75d815d084672625b8edc5c3455db40f1304b068d08401270e02ec65d470058200341effc6778304fe0c4f2037d7ba9ff35e62c3211a69a05e4035684f0ff65804b984f9e6c1e85048c6ccb7f00582003933b78e9e0c7c0824f5f4836a06a3babc51260820e89e2c2d5ac463c86b8b04c1c0ae8955648488a18f40000005820032091dee59f5a2ae4d2b59babef3f726aa87d7bc579d964cf7fdd83e562b9305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820032ebbf4f7ea76d48e198e701cc06ad683e577e4645d7700031024252d31ec4045829e12ccd000582003dba0d6754d0a91113bc40f5a7f987e0a8f351e2a73cb21b1ffc1fcf0e30cd05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ee57032fb66ec702797efe4a32d372876b70baac6b3c9f2ea2efa52153695d55dcf4f0031ae4d928f9deb5753204775c1bb5ce9f1f54130b3fd7053b8f988c762c48d69b0326046a9dd92cb8859d048845d1c5cc69d019c0502c2967b21ea1c70aa777ef6703ecb601fc06dbdeda1cbe6ba391625d3e3017871e8baf2574d33e073e4924528a032b413a401bd7298f128397fb7cfdc4a1ccc0259a5a00722a68f507e0b0ba40e20219ffff033ae4a1b76ecfb43d4d9871e73713284c2bafdb4f46d8be5662ba238c772a3e8a03221ea367a118474a7e851aae55cb261d8cf52c262e5ceb9baa216ca1bed1b41a0365afebb3bec495b0df621631c14c9b043bca7012b612f6b73b12c4ccf0818748037daa6927795b31fa9bb14d5e059446a9aebb0a6f34d6346dd1e2572d12e6d66703236adbf1027a386b3cf1b492cf630bd609fcdc082279829eb268bfca634e24db03b42d7cee63a02e7d1be0ffac5b5e5e07988a009fd5f5b9fe1d30b368a01f50cd03cd94f501d998ab4393f95215230d95c449c6a366994c14c6e4c8149f79048d63031dad079ca45d67b0f1d3c20e16bd119dabcfe602c59635022c2c4507f26a893e0359247cf4ab5989a347b97eede8ac7ab49abc4dd5eefefd857b3307728ccbb9cb032968fe32a1e83dc6d0381f3a806bdce0ac1b48f92d8102c3ead026d4b23d885c00582003ded70e896a2fdbc0a3d075c10f8aa2795261bea4089a55b70028cd4c1dfec05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200304e679ba5bb20bd6bc7ce3a5ed95ce401916d786c62b0c2e8323685e6cdec05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03f61820bd54925bf8ad4a9dc09d3df9d5b445a521a4976b9e1aa4378e03f10f1c03a5193835ec638a8a4bfb24d68476c38a54b5ec44eea3f0a32561db0971d8b4270058200391ce8db59c0d6bcb8bc51537bf750bcfaf36461ac1fbeefbbf315043291fd04c09b18ab5df7180b6b80000000058200301dcc81741fe07f83dd7307169bc38f6e7ef1d9b0741c4fb7bfa7eae7b99905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820039f7816be035ef8df765d20985a3f0ae34801a2e0e236a9cbb198c5660978005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff034d93d83fb3651e79fbc39ab942dd1e0ddf68ca535c747bb36ba45a4b4691978b03484832b31c95ffd957bbf509d8db94d382d35b885463181bf158c9a3d8825f380219c1de0304dfc9e72987305977e6f2772ead408cb979e5f711b5f59e981c9536f2e6f18903960758779d04fc315a2c77779139c105ddc6282bbaffd80b57d20a90e158198803f66cda44ca52ef2901d4201b3f32fe3461c176be963255a1303ca324e8bc903003d2996df4144096fbf17fee6e23805f4ddad48b04d079c4fbe1e556245e9e99430370bed92d8b52b59db4e9d65996023e19ab52a1d6625d725abc6772dc129da54d03682716df6467106369913c02596f0016c33c4d8a11d346142c6116637d30711c0352b77165c77e954b373548de3d4ac2cabbf35e0d029d2cda9d4b2dd9fce0287103766294e4d2f25b094685976e77ddc259d90b6b23f2f1ed2f9888e521a404875703869a86630fdab06a93471dfa18ae26e75b3805ae7e2f39354325b634104a7475033a349187a0d44c4ed0133027a9507be30c5d73fb0603552588a115f75da4135a033449f645f2199817be3fb28f4e669a197d1d3acd9d42afd29c36dd449062a9b603a0fb672d7cb48ace2f1c7ef00c4f4b569ebed444a379f42769c4d743ddeb32100311773fe48b72e5b8700190ad08fbeaac320737b96664a941e9019a4773454ed303b2acc8b6c1fbafe4725094ff31f0ad8162df6c0bdb812ec209f4e5e94d989dce0219ffff03ec60047731d5158d64703a6df997170c5fe7637e5b56ac8a9261ab2eab42c74d0301ae8bb11820650a8a3fc4d436749a5e1ff4e39ff8104f48c6a09fcdf03ad4f003caf2243a80ab2e1972c4e526b562ea342278b2b02d55ae11b4dd3cd1aff9821703c18663111b3e6784f128ba5496010bf0b8d773785621f0cbb07587292bc6e5ee034fa3c248777b974b8e31d41ab515db7d7e923011e8f933c69f50e6d47249f87f0219ffff05581d028805254c4e619dcc39f3e70ddddf469798cdf56599b19efa9ff63a7107011910450219206003d75f6883ac458a4528483a72c1bc3cc2bde6b9c9c343917721ff6cc80e0374a905581e038aec84ef803b663eaabfb7c899e624b5288de18cce73b9bf9354e7dc000c02470893296d0cc5e005581e03c4f64461f41c5ad0fed41932f8986a374a5e21623be81e6e721a88ef600405031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03b2b4a87722f12d39e5a4e881fa9b4dad9b6c2b6345ff7b30142cde8f0007011bffffffffffffffff0219ef7f03fda786475ac131cf78b7fe9101f7295a18c61081b6c926f4af8d675f08a6179903eba3fd41271ab809f03852dea6852157868ceb4bb22079e364996673f3b27a9003faee0977bc1accc22b28a3509f77fb0220e77cbd0d443ff9f3f36be8b3a3c77803611bdb168769990e6a2e4e1889adcb70c4d28a2c73b5169f3e7958dda9987dac0219ffff03409e78ba7e81f4127c6dd67e3330900b3f028563e07b8d8ee18ab2a5bc8bf40c0335cf8d9a56821e4619b141150ad85621c3f5f880353196756a98f3298b07ac0803dde9d7af24f45585910b0ac6b5aa3b4b0b37384913e3b547311505a7fb386f0d03df9d96fd79c79b085c4f97dd46b6de5c69befe9b658a84dcebedf3726378807f03de2f4d3e1e146818a74496a6b9540b048ae8c6c4261a346c115d33af370bd1c30386a44c380c3ad28d588b42910edcc81f4d40b868067ffa8dadfa7f4fe1586943038fca6019285f75bc7fc9165bb6d7ad36d1a0a7a205e1dc5156c7078a0f41e834036946a8126a40129fb78e469934cca59ee5d37b7c64a85302c3ab3a4aedbc44ae0329d6fab1012d15bb24a5555f069e02085382deb14536125554b1dd9f4086f57603a447845db4adb215bbf2656b0ad38d85e1601a969d439b1fa58aa2180b910c480389625af592c052f22279c381e86c848d7c01d140630b8b75993d8f721df9afeb0348eb29cb93146910ce540d6ff928903d15d7b8869ba11cec2b74c0f7b355593f0219ffff0342bad1fcae613a291e955552ed9539aea09d81f3e9901861288e9ce75527bb260312033457a40896156706dbb3a14ecd124daabd7139a640c50e3a8b8aa5189bd2036777bd6029a018bda01027a141bde1baba29dba20238b1fde1a04e8880071d85036ef67a4f66372aac3a476de2069bbb7850829aa3a2d812fb5e13302d2946278a039d7fdb0124bb89d6beebaf31176b64a2df9c96f567ff631faa23cae07d043a0503d5ba0a7164284ce0a5963833afc5a656bbdf3124c9ba978934234158abfa3c89034134401d55ab8657b70147709d58bc4dec5d6d30f844f20cd9d502bf4a2f2c1403e96d3fb4853cae6a58228a5708bcd15bae76133d44ec8e7e6fb6fb2961582bc503d6d69db198c4a5fafd38400212389e83ebd10f5a36a35441f9aaa4dd59f89529030e57be49466b87cf3023d3c404701ec35e982c749a7cb7bf55074de1455ab33e0219ffff03e12e418c04a19dc85ee67ccfe55bf96ff94369f8e796835d91455e5355d0bebf03b37fe2a1b1304146f88ba91889b8c162dad9cdc834adf9eb485d94492bed2cf8033c598b4cecf12003c4ea9afdbb6705eed722dce2504c008621d4c050586db13903038c1b1fd21e29751cfcff04d07c1eb169da68747ba46375f733500fd89a71260219ffff032ac7ca1c910e410805080bd19cb0d43aa4985fdf31c5246727b51cd6e34f3b0f03a835a25dce0412726e085360d078c0853b1f1549163362f07847ef7b075aed5c030016e3a76d60c3c3f2b55479620da5c9c6286805cfad2d49a522bfb53039e2f3039665d980f32a2ca5244ddb4f41e1fe09be277b35023c5aaf3396dfc66f54bcf5033928ddd055f21fce84933b58f63b6f9937bbdaaa1b895f7570aee7bb5d926631030b1c918c010951f41aec1d5a2106e4315ac6d24934ca6017e075cb5a2a68021103fd9edf478cae33dde7a01d4f8ed2b4b95c2a1402de33415764895ab8babe8fef0323b338485a9a4c3013ab5733d1d83462378f5c08a7ebd1645175e468aee24a9f03b226ae18ccf1e6b17ebe5fcbc2ea66dfd8d20e7f33949ff78ebd48c1c6b81ebe05581e03e0833c9a6bd4a1ac36850a62c4012cbef8724d84c342728bf310af1940040205581e039a53016fc11537f8108d40fd5eb305730b973676d0d45f0c4f88808500040405581e036001c4889dc3e713ed02fcc9cab9bbad7863bb27a1e8b1b552c0bd72700847a86fe78d8dd48a05581e03991b2266ac19ee8b051d14c0c8e0f91d76fcd27c0df828f049fc1cb2a00c01472386f26fc1000005581e03e3808e141b997a17bdb8c8738359774c81d8aa7f0488119e050e7c6ce00c054689bf9914400005581e032990ee508758f7651acaa0542fc1b4bb243de1a2235b543c6448c14f900c0142290405581e03b069641cdca6c6b812ae10276664878871b3bf049eb89c676eb57d2900040105581d027d22d561610232c90d3eba1949f0af76037757b493b8dd42ed6f0ee80401045957d46080604052600436106102f65760003560e01c80637e54f0921161018f578063bf15fcd8116100e1578063d365c6951161008a578063f2fde38b11610064578063f2fde38b14610859578063f78dc25314610879578063fa461e331461088c57600080fd5b8063d365c69514610813578063e449022e14610833578063e5d7bde61461084657600080fd5b8063c805a666116100bb578063c805a66614610799578063ca4ece22146107b9578063cf6fc6e3146107d957600080fd5b8063bf15fcd814610744578063bfa7514314610764578063c53a02921461078457600080fd5b8063942461bb11610143578063bc80f1a81161011d578063bc80f1a8146106f1578063bd61951d14610704578063bddccd351461072457600080fd5b8063942461bb146106915780639570eeee146106be578063bc1ed74c146106d157600080fd5b806383197ef01161017457806383197ef01461064157806384bd6d29146106565780638da5cb5b1461066957600080fd5b80637e54f092146105f4578063825caba11461062157600080fd5b80635a0998431161024857806370ae92d2116101fc57806372c244a8116101d657806372c244a81461059457806374261145146105b457806378e3214f146105d457600080fd5b806370ae92d21461053257806370ccbd311461055f578063715018a61461057f57600080fd5b806363592c2b1161022d57806363592c2b146104d25780636c838250146104f25780636fe7b0ba1461051257600080fd5b80635a099843146104ac57806362e238bb146104bf57600080fd5b80632d9a56f6116102aa5780633eca9c0a116102845780633eca9c0a1461041b5780634f38e2b81461044957806356f161241461046957600080fd5b80632d9a56f6146103bb57806337e7316f146103db5780633c15fd91146103fb57600080fd5b806312aa3caf116102db57806312aa3caf146103435780632521b9301461036b5780632cc2878d1461038b57600080fd5b80630502b1c51461030a578063093d4fa51461033057600080fd5b36610305576103036108ac565b005b600080fd5b61031d61031836600461483f565b6108b6565b6040519081526020015b60405180910390f35b61031d61033e3660046148a9565b6108d0565b610356610351366004614975565b610d16565b60408051928352602083019190915201610327565b34801561037757600080fd5b5061031d610386366004614a17565b610fd1565b34801561039757600080fd5b506103ab6103a6366004614abf565b611001565b6040519015158152602001610327565b3480156103c757600080fd5b506103566103d6366004614af1565b61104b565b3480156103e757600080fd5b5061031d6103f6366004614af1565b61114a565b34801561040757600080fd5b5061031d610416366004614a17565b611164565b61042e610429366004614c15565b611188565b60408051938452602084019290925290820152606001610327565b34801561045557600080fd5b506103ab610464366004614c72565b6111aa565b34801561047557600080fd5b5061031d610484366004614cbe565b6001600160a01b03919091166000908152600360209081526040808320938352929052205490565b61042e6104ba366004614cea565b6111d5565b61042e6104cd366004614d60565b61132b565b3480156104de57600080fd5b506103ab6104ed366004614abf565b421090565b3480156104fe57600080fd5b506103ab61050d366004614af1565b611355565b34801561051e57600080fd5b506103ab61052d366004614c72565b611384565b34801561053e57600080fd5b5061031d61054d366004614e0c565b60016020526000908152604090205481565b34801561056b57600080fd5b5061042e61057a366004614e29565b6113aa565b34801561058b57600080fd5b506103036113f1565b3480156105a057600080fd5b506103036105af366004614ecd565b611403565b3480156105c057600080fd5b506103ab6105cf366004614c72565b6114b2565b3480156105e057600080fd5b506103036105ef366004614cbe565b611524565b34801561060057600080fd5b5061031d61060f366004614abf565b60009081526002602052604090205490565b34801561062d57600080fd5b5061030361063c366004614abf565b611544565b34801561064d57600080fd5b50610303611553565b61031d610664366004614ef0565b61155e565b34801561067557600080fd5b506000546040516001600160a01b039091168152602001610327565b34801561069d57600080fd5b506106b16106ac366004614f67565b611571565b6040516103279190615001565b61042e6106cc366004615045565b61162a565b3480156106dd57600080fd5b5061031d6106ec366004614abf565b611767565b61031d6106ff36600461483f565b6117b7565b34801561071057600080fd5b5061030361071f366004615082565b6117c6565b34801561073057600080fd5b5061030361073f3660046150be565b611867565b34801561075057600080fd5b5061031d61075f366004615082565b611872565b34801561077057600080fd5b506103ab61077f366004614c72565b6118bd565b34801561079057600080fd5b50610303611930565b3480156107a557600080fd5b5061031d6107b43660046150e0565b61193a565b3480156107c557600080fd5b506103ab6107d4366004614c72565b611971565b3480156107e557600080fd5b506103ab6107f4366004614cbe565b6001600160a01b03919091166000908152600160205260409020541490565b34801561081f57600080fd5b5061042e61082e3660046151a4565b611998565b61031d610841366004615295565b611a2c565b61042e6108543660046152e8565b611a3b565b34801561086557600080fd5b50610303610874366004614e0c565b6124cb565b61031d6108873660046153ac565b612558565b34801561089857600080fd5b506103036108a7366004615416565b612573565b6108b4612785565b565b60006108c63387878787876127be565b9695505050505050565b60006001600160a01b0388161580156109085786341461090357604051631841b4e160e01b815260040160405180910390fd5b610a24565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316896001600160a01b0316036109f057506001341561096357604051631841b4e160e01b815260040160405180910390fd5b6040516323b872dd60e01b808252336004830152306024830152604482018990527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc291632e1a7d4d60e01b9060008060648382885af16109c6573d6000823e3d81fd5b8181528a60048201526000806024836000885af16109e7573d6000823e3d81fd5b50505050610a24565b3415610a0f57604051631841b4e160e01b815260040160405180910390fd5b610a246001600160a01b038a16338d8a612b30565b8015610ab85760008b905060006327a9b42460e01b90506040518181528a60048201528960248201528860448201528760648201528c60848201528560ff1c601b0160a48201528660c48201526001600160ff1b03861660e482015261012061010482015264a62929c86960d31b610143820152600080610149838d875af1610ab0573d6000823e3d81fd5b505050610d07565b6001600160a01b0388161580610aff57507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316886001600160a01b0316145b15610c75576040517f4cb6864c00000000000000000000000000000000000000000000000000000000808252600482018b90526024820189905260448201889052606482018790528c918a1560018114610b5e57306084830152610b65565b8d60848301525b508560ff1c601b0160a48201528660c48201526001600160ff1b03861660e482015261012061010482015264a62929c86960d31b610143820152600080610149836000875af1610bb8573d6000823e3d81fd5b507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03168a6001600160a01b031603610c6e57604051630d0e30db60e41b8082527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29163a9059cbb60e01b906000806004838f885af1610c42573d6000823e3d81fd5b8181528f60048201528b60248201526000806044836000885af1610c69573d6000823e3d81fd5b505050505b5050610d07565b60008b90506000632b651a6c60e01b90506040518181528b60048201528a60248201528960448201528860648201528760848201528c60a48201528560ff1c601b0160c48201528660e48201526001600160ff1b03861661010482015261014061012482015264a62929c86960d31b610163820152600080610169836000875af1610d03573d6000823e3d81fd5b5050505b50939998505050505050505050565b6000808660a00135600003610d57576040517f0262dde400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d666020890189614e0c565b90506000610d7a60408a0160208b01614e0c565b90506000610d90836001600160a01b0316612bcd565b905060c08a013560021615610dd55780610dab576000610db1565b89608001355b3411610dd057604051631841b4e160e01b815260040160405180910390fd5b610e06565b80610de1576000610de7565b89608001355b3414610e0657604051631841b4e160e01b815260040160405180910390fd5b80610e4f578715610e2557610e256001600160a01b0384168a8a612c06565b610e4f33610e3960608d0160408e01614e0c565b6001600160a01b038616919060808e0135612b30565b610e608b338c608001358a8a612cbf565b60808a01359350610e7a6001600160a01b03831630612d1f565b945084600003610eb6576040517f28ebf24700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000199094019360c08a013560011615610f4f576000610edf6001600160a01b03851630612d1f565b90506001811115610f0e5760001901610ef88186615473565b9450610f0e6001600160a01b0385163383612dca565b610f1c8560a08d0135615486565b610f2a60808d013588615486565b1015610f495760405163f32bec2f60e01b815260040160405180910390fd5b50610f74565b8960a00135851015610f745760405163f32bec2f60e01b815260040160405180910390fd5b600080610f8760808d0160608e01614e0c565b6001600160a01b031614610faa57610fa560808c0160608d01614e0c565b610fac565b335b9050610fc26001600160a01b0384168288612dca565b50505050965096945050505050565b6000610fe76001600160a01b0389168484612c06565b610ff48988888888612eaa565b9998505050505050505050565b600060d082901c60a083901c65ffffffffffff168361101f83421090565b801561104257506001600160a01b03811660009081526001602052604090205482145b95945050505050565b6000803361105f6080850160608601614e0c565b6001600160a01b03161461109f576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110a88361114a565b6000818152600260205260409020549250905060001982016110f6576040517f41a26a6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518281526020810184905233917fcbfa7d191838ece7ba4783ca3a30afd316619b7f368094b57ee7ffde9a923db1910160405180910390a26000818152600260205260409020600190559092909150565b600061115e611157613131565b8390613258565b92915050565b600061117a6001600160a01b0389168484612c06565b610ff48989898989896127be565b600080600061119a87878787336111d5565b9250925092509450945094915050565b60008060006111b985856132d7565b915091508180156111c957508581115b925050505b9392505050565b60008060006112356111e5613131565b601f198a0180517f74ab4f0cde46aaf927859983f7d04002116dd057d4c4941f6dbfb775c3e31f4582526101008220915260405161190160f01b8152600281019290925260228201526042902090565b9050600160fe1b8516156112a957600160fd1b851615801590611259575060418614155b15611277576040516317c2b1f160e01b815260040160405180910390fd5b6112878860600151828989613466565b6112a4576040516317c2b1f160e01b815260040160405180910390fd5b6112d6565b6112b988606001518289896134bb565b6112d6576040516317c2b1f160e01b815260040160405180910390fd5b6112e1888686613522565b60408051848152602081018490529295509093507fc3b639f02b125bfa160e50739b8c44eb2d1b6908e2b6d5925c6d770f2ca78127910160405180910390a1955095509592505050565b60008060006113418b8b8b8b8b8b8b8b33611a3b565b925092509250985098509895505050505050565b600080600061136b61136685613b2e565b6132d7565b9150915081801561137c5750806001145b949350505050565b600080600061139385856132d7565b915091508180156111c95750909414949350505050565b60008060006113d185858c604001516001600160a01b0316612c069092919063ffffffff16565b6113de8a8a8a8a8a6111d5565b9250925092509750975097945050505050565b6113f9613b45565b6108b46000613b9f565b8060ff16600003611440576040517fbd71636d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526001602052604081205461145e9060ff84169061549d565b336000818152600160205260409081902083905551919250907ffc69110dd11eb791755e4abd6b7d281bae236de95736d38a23782814be5e10db906114a69084815260200190565b60405180910390a25050565b60008080805b63ffffffff87821c1692508215611517576000806114db61136686868a8c6154b0565b915091508180156114ec5750806001145b156114ff576001955050505050506111ce565b50839250611510905060208261549d565b90506114b8565b5060009695505050505050565b61152c613b45565b6115406001600160a01b0383163383612dca565b5050565b61155033826000613c07565b50565b61155b613b45565b33ff5b6000610ff489338a8a8a8a8a8a8a6108d0565b60606000825167ffffffffffffffff81111561158f5761158f614b26565b6040519080825280602002602001820160405280156115b8578160200160208202803683370190505b50905060005b835181101561162357600260008583815181106115dd576115dd6154da565b6020026020010151815260200190815260200160002054828281518110611606576116066154da565b60209081029190910101528061161b816154f0565b9150506115be565b5092915050565b600080600061168a61163a613131565b601f19890180517f74ab4f0cde46aaf927859983f7d04002116dd057d4c4941f6dbfb775c3e31f4582526101008220915260405161190160f01b8152600281019290925260228201526042902090565b9050600160fe1b8416156116e657600160fd1b8416156116d6576116b48760600151828888613c9b565b6116d1576040516317c2b1f160e01b815260040160405180910390fd5b611713565b6116b48760600151828888613d05565b6116f68760600151828888613d5a565b611713576040516317c2b1f160e01b815260040160405180910390fd5b61171e878533613522565b60408051848152602081018490529295509093507fc3b639f02b125bfa160e50739b8c44eb2d1b6908e2b6d5925c6d770f2ca78127910160405180910390a19450945094915050565b600081815260026020526040812054806117ad576040517fb838de9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000190192915050565b60006108c68686868686612eaa565b600080846001600160a01b031684846040516117e3929190615509565b600060405180830381855af49150503d806000811461181e576040519150601f19603f3d011682016040523d82523d6000602084013e611823565b606091505b509150915081816040517f1934afc800000000000000000000000000000000000000000000000000000000815260040161185e929190615569565b60405180910390fd5b611540338383613c07565b6000806000611882868686613da9565b9150915081611042576040517f1f1b8f6100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008080805b63ffffffff87821c1692508215611923576000806118e661136686868a8c6154b0565b915091508115806118f8575080600114155b1561190b576000955050505050506111ce565b5083925061191c905060208261549d565b90506118c3565b5060019695505050505050565b6108b46001611403565b60006119506001600160a01b038b168484612c06565b6119618c8c8c8c8c8c8c8c8c6108d0565b9c9b505050505050505050505050565b600080600061198085856132d7565b915091508180156111c9575094909410949350505050565b6000808060148410156119d7576040517fd9e1c6dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003660006119e68888613dd7565b91945092509050611a016001600160a01b0384168383612c06565b505050611a158e8e8e8e8e8e8e8e8e611a3b565b9250925092509b509b509b98505050505050505050565b60006110423386868686612eaa565b600080806001600160a01b038416611a7f576040517fb0c4d05f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a888c61114a565b6000818152600260205260409020548894508793509091508c906000198101611add576040517fecef366400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611aef60c0840160a08501614e0c565b6001600160a01b031614158015611b1e575033611b1260c0840160a08501614e0c565b6001600160a01b031614155b15611b55576040517fd4dfdafe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80611c5857611b75611b6d6080840160608501614e0c565b848f8f6134bb565b611bab576040517f5cd5d23300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060c0810135366000611bbd84613e15565b91509150600160ff1b89166000148015611bd8575060148110155b15611c51576000366000611bec8585613dd7565b91945092509050611c076001600160a01b0384168383612c06565b60008881526002602052604090205415611c4d576040517fc5f2be5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505b5050611c5d565b600019015b6000611c6883613b2e565b90501115611caf57611c7982611355565b611caf576040517fb6629c0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8415841503611ce9576040517ee2a52200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83600003611d795780851115611cfd578094505b611d1b611d0983613e23565b8460c00135888660e001358689613e31565b93506001600160ff1b038716611d318682615486565b611d3b8b87615486565b1115611d73576040517ffb8ae12900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50611e44565b611d97611d8583613e67565b8460e00135878660c001358689613e75565b945080851115611dec57809450611db0611d0983613e23565b935087841115611dec576040517f939c420400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160ff1b038716611e008582615486565b611e0a8a88615486565b1015611e42576040517f481ea39200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b841580611e4f575083155b15611e86576040517ffba5a27600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84810390508060010160026000858152602001908152602001600020819055508d6060016020810190611eb99190614e0c565b6001600160a01b03167fb9ed0243fdf00f0545c63a0af8850c090d86bb46682baec4bf3c496814fe4f028483604051611efc929190918252602082015260400190565b60405180910390a26014611f0f83613e89565b905010611fb2576000366000611f2c611f2786613e89565b613dd7565b919450925090506001600160a01b0383166396a10e3387611f536080890160608a01614e0c565b338c8c8a89896040518963ffffffff1660e01b8152600401611f7c9897969594939291906155ad565b600060405180830381600087803b158015611f9657600080fd5b505af1158015611faa573d6000803e3d6000fd5b505050505050505b611fe5611fc56040840160208501614e0c565b611fd56080850160608601614e0c565b8888611fe087613e97565b613ea5565b61201b576040517f70a03f4800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60148a106120f35760003660006120328e8e613dd7565b9250925092506000836001600160a01b031663ccee33d7338b8b87876040518663ffffffff1660e01b815260040161206e959493929190615600565b6020604051808303816000875af115801561208d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b1919061562f565b905087811180156120d057506120ce6120c987613e67565b613f00565b155b80156120e557506120e36120c987613e23565b155b156120ee578097505b505050505b6001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21661212d6060840160408501614e0c565b6001600160a01b03161480156121435750600034115b15612359578334101561216957604051631841b4e160e01b815260040160405180910390fd5b833411156121df57604051600090339034879003908381818185875af1925050503d80600081146121b6576040519150601f19603f3d011682016040523d82523d6000602084013e6121bb565b606091505b50509050806121dd5760405163b12d13eb60e01b815260040160405180910390fd5b505b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561223a57600080fd5b505af115801561224e573d6000803e3d6000fd5b50506001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216925063a9059cbb91506000905061229760a0860160808701614e0c565b6001600160a01b0316146122ba576122b560a0850160808601614e0c565b6122ca565b6122ca6080850160608601614e0c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018790526044016020604051808303816000875af115801561232f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123539190615648565b50612411565b341561237857604051631841b4e160e01b815260040160405180910390fd5b6123db61238b6060840160408501614e0c565b33600061239e60a0870160808801614e0c565b6001600160a01b0316146123c1576123bc60a0860160808701614e0c565b6123d1565b6123d16080860160608701614e0c565b87611fe087613f75565b612411576040517f478a520500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601461241c83613f83565b9050106124ba576000366000612434611f2786613f83565b919450925090506001600160a01b038316633504ed628761245b6080890160608a01614e0c565b338c8c8a89896040518963ffffffff1660e01b81526004016124849897969594939291906155ad565b600060405180830381600087803b15801561249e57600080fd5b505af11580156124b2573d6000803e3d6000fd5b505050505050505b505099509950999650505050505050565b6124d3613b45565b6001600160a01b03811661254f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161185e565b61155081613b9f565b60006125688787878787876127be565b979650505050505050565b6125cc565b3d6000803e3d6000fd5b8061258f5761258f612578565b600160005114601f3d11163d151780611540577ff27f64e40000000000000000000000000000000000000000000000000000000060005260046000fd5b604051601581017f0dfe1681d21220a7ddca3f43a9059cbb23b872dd0000000000000000000000008252602081600484335afa61260b5761260b612578565b60208082016004808501335afa61262457612624612578565b602060408201600460088501335afa61263f5761263f612578565b600080600088136001811461265d5760208401519250879150612665565b835192508891505b507fff1f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000084526060832083527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460208401526001600160a01b0360558520169250338318156126f6577fb2c027220000000000000000000000000000000000000000000000000000000060005260046000fd5b60843592507f0dfe1681d21220a7ddca3f43a9059cbb23b872dd00000000000000000000000084523083146001811461275757836014860152336034860152816054860152612752602060006064601089016000885af1612582565b61277a565b33601086015281603086015261277a602060006044600c89016000885af1612582565b505050505050505050565b3233036108b4576040517f1b10b0f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006128b9565b7f0902f1ac0000000000000000000000000000000000000000000000000000000081526000604082600484875afa6127ff576127ff612578565b60603d14612831577f85cd58dc0000000000000000000000000000000000000000000000000000000060005260046000fd5b81516020830151861561284057905b8785029250633b9aca008202830181840204925050507f022c0d9f000000000000000000000000000000000000000000000000000000008252841594508415810260048301528481026024830152866044830152608060648301526000608483015260008060a4846000885af16108c6576108c6612578565b6dffffffffffffffffffffffffffff8511156128f9577fcf0b4d3a0000000000000000000000000000000000000000000000000000000060005260046000fd5b60405160c081016040528260051b84018435886000811461296957341561292b57631841b4e160e01b60005260046000fd5b6323b872dd60e01b84523360048501526001600160a01b03821660248501528860448501526129646020600060648760008f5af1612582565b6129ff565b34891461298157631841b4e160e01b60005260046000fd5b630d0e30db60e41b84526000806004868c73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af16129b5576129b5612578565b63a9059cbb60e01b84526001600160a01b0382166004850152886024850152600080604486600073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af16129ff576129ff612578565b50879350602086015b82811015612a50578035612a446001600160a01b03821663ffffffff60a01b851660a01c600160ff1b86166001600160a01b0387168a8a6127c5565b95509150602001612a08565b50600160fe1b81168015612adf57612a873063ffffffff60a01b841660a01c600160ff1b85166001600160a01b03861689896127c5565b9450632e1a7d4d60e01b8452846004850152600080602486600073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af1612ac457612ac4612578565b600080600080888f5af1612ada57612ada612578565b612b0b565b612b088b63ffffffff60a01b841660a01c600160ff1b85166001600160a01b03861689896127c5565b94505b50505050838110156108c65760405163f32bec2f60e01b815260040160405180910390fd5b60006323b872dd60e01b905060006040518281528560048201528460248201528360448201526020600060648360008b5af19150508015612b8e573d8015612b8457600160005114601f3d11169150612b8c565b6000873b1191505b505b80612bc5576040517ff405907100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b60006001600160a01b038216158061115e57506001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1492915050565b600060e0829003612c4457612c3d847fd505accf000000000000000000000000000000000000000000000000000000008585613f91565b9050612cac565b610100829003612c7a57612c3d847f8fcbaf0c000000000000000000000000000000000000000000000000000000008585613f91565b6040517f6827585700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80612cb957612cb9613fe3565b50505050565b6040517f4b64e4920000000000000000000000000000000000000000000000000000000080825260048201869052908284602483013784836024830101526000808460440183348b5af1612d16573d6000823e3d81fd5b50505050505050565b6000612d2a83612bcd565b15612d4057506001600160a01b0381163161115e565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301528416906370a0823190602401602060405180830381865afa158015612d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc3919061562f565b905061115e565b8015612ea557612dd983612bcd565b15612e915780471015612e18576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000826001600160a01b03168261138890604051600060405180830381858888f193505050503d8060008114612e6a576040519150601f19603f3d011682016040523d82523d6000602084013e612e6f565b606091505b5050905080612cb95760405163b12d13eb60e01b815260040160405180910390fd5b612ea56001600160a01b0384168383613fef565b505050565b600081808203612ee6576040517f67e7c0f600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8591506000198101341515600080600160fd1b888886818110612f0b57612f0b6154da565b90506020020135161190508115612fb157883414612f3c57604051631841b4e160e01b815260040160405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db08a6040518263ffffffff1660e01b81526004016000604051808303818588803b158015612f9757600080fd5b505af1158015612fab573d6000803e3d6000fd5b50505050505b600184111561305157612feb3083612fc95733612fcb565b305b89896000818110612fde57612fde6154da565b9050602002013588614038565b945060015b838110156130265761301c30308a8a8581811061300f5761300f6154da565b9050602002013589614038565b9550600101612ff0565b5061304a81613035578a613037565b305b30898987818110612fde57612fde6154da565b945061306f565b61306c8161305f578a613061565b305b83612fc95733612fcb565b94505b878510156130905760405163f32bec2f60e01b815260040160405180910390fd5b801561312457604051632e1a7d4d60e01b8152600481018690527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156130f857600080fd5b505af115801561310c573d6000803e3d6000fd5b50613124925050506001600160a01b038b16866141d4565b5050505095945050505050565b6000306001600160a01b037f0000000000000000000000001111111254eeb25477b68fb85ed929f73a9605821614801561318a57507f000000000000000000000000000000000000000000000000000000000000000146145b156131b457507f1c0eb4c27d5b523ca136c0b3b83a4dcac8b70225b38be8507ba1a3f2af03cfca90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f5c6cbfb2848b981a8f93044b3530be1fac304ecd5042396ca8729cb8fdd718f3828401527fceebf77a833b30520287ddd9478ff51abbdffa30aa90a8d655dba0e8a79ce0c160608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000368161326a61012086018661566a565b60405191935091507f0a244ca8a150ac294c14fcff9277051ced9a5b23e966a0ff0522e989da23116c9082848237828120610140820152610120876020830137818152610160902060405161190160f01b81526002810187905260228101829052604290209094506108c6565b60008060006132e685856142ed565b60e01c905060006132f986866004614317565b9050632cc2878c19820161333057600161331282611001565b61331d576000613320565b60015b90945060ff16925061345f915050565b63bf15fcd88210156133be57636fe7b0ba82101561338257634f38e2b71982016133665760016133128261046489896064614348565b6363592c2a19820161337d57600161331282421090565b61344d565b636fe7b0b91982016133a05760016133128261052d89896064614348565b637426114419820161337d576001613312826105cf89896064614348565b63ca4ece228210156134115763bf15fcd71982016133f35760016133e88261075f89896064614348565b93509350505061345f565b63bfa7514219820161337d5760016133128261077f89896064614348565b63ca4ece2119820161342f576001613312826107d489896064614348565b63cf6fc6e219820161344d576001613312826107f489896024614317565b613458308787613da9565b9350935050505b9250929050565b600080631626ba7e60e01b905060405181815285600482015260406024820152836044820152838560648301376020600085606401838a5afa156134b15760203d1460005183141692505b5050949350505050565b60006001600160a01b0385166134d35750600061137c565b60408214806134e25750604182145b80156135095750846001600160a01b03166134fe858585614378565b6001600160a01b0316145b156135165750600161137c565b61104285858585613466565b6000806001600160a01b038316613565576040517f692e45e000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606085015160808601516001600160a01b031615801590613593575060808601516001600160a01b03163314155b156135ca576040517fe8c6632100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b855167ffffffffffffffff604082901c1680158015906135e957508042115b15613620576040517fc56873ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61362c83836000613c07565b505060a086015160c08701517f0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8716600081900361366f57829550819450613715565b600160ff1b8816156136ca57828111156136b5576040517faa34b69600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8095506136c383838861442d565b9450613715565b81811115613704576040517f7f902a9300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80945061371283838761445b565b95505b5050508260001480613725575081155b1561375c576040517f07b6e79f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031686602001516001600160a01b03161480156137c257507f1000000000000000000000000000000000000000000000000000000000000000851615155b1561395a576040516323b872dd60e01b81526001600160a01b038281166004830152306024830152604482018590527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216906323b872dd906064016020604051808303816000875af115801561383c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138609190615648565b50604051632e1a7d4d60e01b8152600481018490527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156138c357600080fd5b505af11580156138d7573d6000803e3d6000fd5b505050506000846001600160a01b03168461138890604051600060405180830381858888f193505050503d806000811461392d576040519150601f19603f3d011682016040523d82523d6000602084013e613932565b606091505b50509050806139545760405163b12d13eb60e01b815260040160405180910390fd5b50613974565b6020860151613974906001600160a01b0316828686612b30565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031686604001516001600160a01b03161480156139b95750600034115b15613aec578134146139de57604051631841b4e160e01b815260040160405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015613a3957600080fd5b505af1158015613a4d573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b038581166004830152602482018790527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216935063a9059cbb925060440190506020604051808303816000875af1158015613ac2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ae69190615648565b50613b25565b3415613b0b57604051631841b4e160e01b815260040160405180910390fd5b6040860151613b25906001600160a01b0316338385612b30565b50935093915050565b366000613b3c836004614468565b91509150915091565b6000546001600160a01b031633146108b45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161185e565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316600090815260036020908152604080832066ffffffffffffff600887901c16808552928190529220549091600160ff86161b841791808316839003613c82576040517ff71fbda200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000938452602091909152604090922091179055505050565b600080631626ba7e60e01b905060405181815285600482015260406024820152604160448201528460648201526001600160ff1b03841660848201528360ff1c601b0160a48201536020600060a5838a5afa156134b15750600051143d6020141695945050505050565b600080631626ba7e60e01b905060405181815285600482015260406024820152604060448201528460648201528360848201526020600060a4838a5afa156134b15750600051143d6020141695945050505050565b60006001600160a01b038516613d725750600061137c565b846001600160a01b0316613d878585856144c3565b6001600160a01b031603613d9d5750600161137c565b61104285858585613d05565b60008060405183858237602060008583895afa3d602014169250508115613dcf57506000515b935093915050565b600036816014841015613dfd5760405163779ab6bd60e11b815260040160405180910390fd5b505050813560601c9260149092019160131990910190565b366000613b3c836005614468565b366000613b3c836003614468565b6000868103613e4c57613e4586858761442d565b9050612568565b613e5b88888888888888614532565b98975050505050505050565b366000613b3c836002614468565b6000868103613e4c57613e4584878761445b565b366000613b3c836006614468565b366000613b3c836000614468565b6040516323b872dd60e01b8082526004820187905260248201869052604482018590526000918385606483013760206000856064018360008d5af19050600160005114601f3d11163d15178116925050509695505050505050565b60006001821480156111ce575082826000818110613f2057613f206154da565b9050013560f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f7800000000000000000000000000000000000000000000000000000000000000149392505050565b366000613b3c836001614468565b366000613b3c836007614468565b6000816004016040518581528385600483013760206000838360008b5af192505050801561137c573d8015613fd257600160005114601f3d11169150613fda565b6000863b1191505b50949350505050565b6040513d6000823e3d81fd5b6140028363a9059cbb60e01b84846146be565b612ea5576040517ffb7f507900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600160ff1b831615801561410e576000846001600160a01b031663128acb08888461406488614700565b604080516001600160a01b038d1660208201526401000276a491016040516020818303038152906040526040518663ffffffff1660e01b81526004016140ae9594939291906156b1565b60408051808303816000875af11580156140cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140f091906156eb565b915050614105816141009061570f565b614783565b9250505061137c565b6000846001600160a01b031663128acb08888461412a88614700565b604080516001600160a01b038d16602082015273fffd8963efd1fc6a506488495d951d5263988d2591016040516020818303038152906040526040518663ffffffff1660e01b81526004016141839594939291906156b1565b60408051808303816000875af11580156141a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141c591906156eb565b5090506141056141008261570f565b804710156142245760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161185e565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114614271576040519150601f19603f3d011682016040523d82523d6000602084013e614276565b606091505b5050905080612ea55760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161185e565b600060048210156143115760405163779ab6bd60e11b815260040160405180910390fd5b50503590565b60006020820183101561433d5760405163779ab6bd60e11b815260040160405180910390fd5b509190910135919050565b3660008284101561436c5760405163779ab6bd60e11b815260040160405180910390fd5b50509182019291900390565b6000604051826041811461439757604081146143b157600091506143d9565b604085013560001a602083015260408560408401376143d9565b60208501358060ff1c601b01602084015260208660408501376001600160ff1b031660608301525b508015614425577f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a16060820151101561442557848152600080526020600060808360015afa5060005191505b509392505050565b60008360018161443d8686615486565b614447919061549d565b6144519190615473565b61137c919061572b565b6000826144518584615486565b3660008060058460078111156144805761448061574d565b901b905061449261012086018661566a565b6144b79161010088013580851c63ffffffff9081169360209290921b861c16916154b0565b92509250509250929050565b60006001600160ff1b0382167f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a1811015614425576040518581528360ff1c601b016020820152846040820152816060820152600080526020600060808360015afa505060005195945050505050565b600060018790036145be576145478888613f00565b1561458c57858514614585576040517f49986e7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5082612568565b6040517fbec74c8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003660006145cd8b8b613dd7565b925092509250600080846001600160a01b031684848c8b8b6040516020016145f9959493929190615763565b60408051601f198184030181529082905261461391615782565b600060405180830381855afa9150503d806000811461464e576040519150601f19603f3d011682016040523d82523d6000602084013e614653565b606091505b509150915081158061466757508051602014155b1561469e576040517f110b8e7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808060200190518101906146b2919061562f565b95505050505050612568565b60006040518481528360048201528260248201526020600060448360008a5af1915050801561137c573d8015613fd257600160005114601f3d11169150613fda565b60006001600160ff1b0382111561477f5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e74323536000000000000000000000000000000000000000000000000606482015260840161185e565b5090565b60008082121561477f5760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015260640161185e565b6001600160a01b038116811461155057600080fd5b80356147f5816147d5565b919050565b60008083601f84011261480c57600080fd5b50813567ffffffffffffffff81111561482457600080fd5b6020830191508360208260051b850101111561345f57600080fd5b60008060008060006080868803121561485757600080fd5b8535614862816147d5565b94506020860135935060408601359250606086013567ffffffffffffffff81111561488c57600080fd5b614898888289016147fa565b969995985093965092949392505050565b60008060008060008060008060006101208a8c0312156148c857600080fd5b89356148d3816147d5565b985060208a01356148e3816147d5565b975060408a01356148f3816147d5565b965060608a0135614903816147d5565b989b979a50959860808101359760a0820135975060c0820135965060e08201359550610100909101359350915050565b60008083601f84011261494557600080fd5b50813567ffffffffffffffff81111561495d57600080fd5b60208301915083602082850101111561345f57600080fd5b60008060008060008086880361014081121561499057600080fd5b873561499b816147d5565b965060e0601f19820112156149af57600080fd5b5060208701945061010087013567ffffffffffffffff808211156149d257600080fd5b6149de8a838b01614933565b90965094506101208901359150808211156149f857600080fd5b50614a0589828a01614933565b979a9699509497509295939492505050565b60008060008060008060008060c0898b031215614a3357600080fd5b8835614a3e816147d5565b97506020890135614a4e816147d5565b96506040890135955060608901359450608089013567ffffffffffffffff80821115614a7957600080fd5b614a858c838d016147fa565b909650945060a08b0135915080821115614a9e57600080fd5b50614aab8b828c01614933565b999c989b5096995094979396929594505050565b600060208284031215614ad157600080fd5b5035919050565b60006101408284031215614aeb57600080fd5b50919050565b600060208284031215614b0357600080fd5b813567ffffffffffffffff811115614b1a57600080fd5b61137c84828501614ad8565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715614b6557614b65614b26565b604052919050565b600060e08284031215614b7f57600080fd5b60405160e0810181811067ffffffffffffffff82111715614ba257614ba2614b26565b604052823581529050806020830135614bba816147d5565b60208201526040830135614bcd816147d5565b60408201526060830135614be0816147d5565b60608201526080830135614bf3816147d5565b8060808301525060a083013560a082015260c083013560c08201525092915050565b6000806000806101208587031215614c2c57600080fd5b614c368686614b6d565b935060e085013567ffffffffffffffff811115614c5257600080fd5b614c5e87828801614933565b959890975094956101000135949350505050565b600080600060408486031215614c8757600080fd5b83359250602084013567ffffffffffffffff811115614ca557600080fd5b614cb186828701614933565b9497909650939450505050565b60008060408385031215614cd157600080fd5b8235614cdc816147d5565b946020939093013593505050565b60008060008060006101408688031215614d0357600080fd5b614d0d8787614b6d565b945060e086013567ffffffffffffffff811115614d2957600080fd5b614d3588828901614933565b9095509350506101008601359150610120860135614d52816147d5565b809150509295509295909350565b60008060008060008060008060c0898b031215614d7c57600080fd5b883567ffffffffffffffff80821115614d9457600080fd5b614da08c838d01614ad8565b995060208b0135915080821115614db657600080fd5b614dc28c838d01614933565b909950975060408b0135915080821115614ddb57600080fd5b50614de88b828c01614933565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b600060208284031215614e1e57600080fd5b81356111ce816147d5565b6000806000806000806000610160888a031215614e4557600080fd5b614e4f8989614b6d565b965060e088013567ffffffffffffffff80821115614e6c57600080fd5b614e788b838c01614933565b90985096506101008a013595506101208a01359150614e96826147d5565b9093506101408901359080821115614ead57600080fd5b50614eba8a828b01614933565b989b979a50959850939692959293505050565b600060208284031215614edf57600080fd5b813560ff811681146111ce57600080fd5b600080600080600080600080610100898b031215614f0d57600080fd5b8835614f18816147d5565b97506020890135614f28816147d5565b96506040890135614f38816147d5565b979a96995096976060810135975060808101359660a0820135965060c0820135955060e0909101359350915050565b60006020808385031215614f7a57600080fd5b823567ffffffffffffffff80821115614f9257600080fd5b818501915085601f830112614fa657600080fd5b813581811115614fb857614fb8614b26565b8060051b9150614fc9848301614b3c565b8181529183018401918481019088841115614fe357600080fd5b938501935b83851015613e5b57843582529385019390850190614fe8565b6020808252825182820181905260009190848201906040850190845b818110156150395783518352928401929184019160010161501d565b50909695505050505050565b600080600080610140858703121561505c57600080fd5b6150668686614b6d565b9660e08601359650610100860135956101200135945092505050565b60008060006040848603121561509757600080fd5b83356150a2816147d5565b9250602084013567ffffffffffffffff811115614ca557600080fd5b600080604083850312156150d157600080fd5b50508035926020909101359150565b60008060008060008060008060008060006101408c8e03121561510257600080fd5b8b3561510d816147d5565b9a5060208c013561511d816147d5565b995060408c013561512d816147d5565b985060608c013561513d816147d5565b975060808c0135965060a08c0135955060c08c0135945060e08c013593506101008c013592506101208c013567ffffffffffffffff81111561517e57600080fd5b61518a8e828f01614933565b915080935050809150509295989b509295989b9093969950565b60008060008060008060008060008060006101008c8e0312156151c657600080fd5b67ffffffffffffffff808d3511156151dd57600080fd5b6151ea8e8e358f01614ad8565b9b508060208e013511156151fd57600080fd5b61520d8e60208f01358f01614933565b909b50995060408d013581101561522357600080fd5b6152338e60408f01358f01614933565b909950975060608d0135965060808d0135955060a08d0135945061525960c08e016147ea565b93508060e08e0135111561526c57600080fd5b5061527d8d60e08e01358e01614933565b81935080925050509295989b509295989b9093969950565b600080600080606085870312156152ab57600080fd5b8435935060208501359250604085013567ffffffffffffffff8111156152d057600080fd5b6152dc878288016147fa565b95989497509550505050565b600080600080600080600080600060e08a8c03121561530657600080fd5b893567ffffffffffffffff8082111561531e57600080fd5b61532a8d838e01614ad8565b9a5060208c013591508082111561534057600080fd5b61534c8d838e01614933565b909a50985060408c013591508082111561536557600080fd5b506153728c828d01614933565b90975095505060608a0135935060808a0135925060a08a0135915060c08a013561539b816147d5565b809150509295985092959850929598565b60008060008060008060a087890312156153c557600080fd5b86356153d0816147d5565b955060208701356153e0816147d5565b94506040870135935060608701359250608087013567ffffffffffffffff81111561540a57600080fd5b614a0589828a016147fa565b6000806000806060858703121561542c57600080fd5b8435935060208501359250604085013567ffffffffffffffff81111561545157600080fd5b6152dc87828801614933565b634e487b7160e01b600052601160045260246000fd5b8181038181111561115e5761115e61545d565b808202811582820484141761115e5761115e61545d565b8082018082111561115e5761115e61545d565b600080858511156154c057600080fd5b838611156154cd57600080fd5b5050820193919092039150565b634e487b7160e01b600052603260045260246000fd5b6000600182016155025761550261545d565b5060010190565b8183823760009101908152919050565b60005b8381101561553457818101518382015260200161551c565b50506000910152565b60008151808452615555816020860160208601615519565b601f01601f19169290920160200192915050565b821515815260406020820152600061137c604083018461553d565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b88815260006001600160a01b03808a1660208401528089166040840152508660608301528560808301528460a083015260e060c08301526155f260e083018486615584565b9a9950505050505050505050565b6001600160a01b0386168152846020820152836040820152608060608201526000612568608083018486615584565b60006020828403121561564157600080fd5b5051919050565b60006020828403121561565a57600080fd5b815180151581146111ce57600080fd5b6000808335601e1984360301811261568157600080fd5b83018035915067ffffffffffffffff82111561569c57600080fd5b60200191503681900382131561345f57600080fd5b60006001600160a01b038088168352861515602084015285604084015280851660608401525060a0608083015261256860a083018461553d565b600080604083850312156156fe57600080fd5b505080516020909101519092909150565b6000600160ff1b82036157245761572461545d565b5060000390565b60008261574857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fd5b8486823790930191825260208201526040810191909152606001919050565b60008251615794818460208701615519565b919091019291505056fea264697066735822122040321861ce858a2c911db7a2e1f42f4368d23b5251b80dd661a6f2abf19c358d64736f6c63430008110033037298ad909edcdd31e72868df79ac39ddaddbb2dc696579dd95835919e7159b02031fb26bddf9bf0ed5939f69683cffd3b5cb2d2df05f4a8f5bc422d1f818ad8c410300b754e265ef27de4ddf591a7929d65c0a8b07c24d6072a9a5589f8be0ba14bb037bb73bcc1250fe2e895182e9bb56b299b7e12ab4b6ae1e4514e9c9e071d8d97803fb9bc1837c9c712b01dcad8ebbb61bcee854dccc0a01c906024eb8fdcdcd1df90358ff5cb68c564304044ba469988294b0a065e0bacb019770b4d1fa952d97c379034e55fe6bbbf19ebe167e632bbb98dc677e16e87c28a51c129a57ed8b30fbfc410376b316b7145dd15dd6410761546c82d9a8ecea898bacdcc027d79614a43ab86303e355b2d97d66aaeca3b4e704f2c6f8ecb3120813cd51f825f92410f69906dc1603dec3bd9084936e7fee1dc346c0603a13fadcea616381c5028dfeec7e619b53b2038059720ff6c1d9711ca28c68a855563a7e61c2ae583401a4238f5ec4eb631b8003323bec318a4a68a5ff8926468494fdfc442acd8eb00f30854fc940f310a7709d037af47508fa70f7c562aa5d00586e3a7f5b3438600190e16e1254b431e8f5528e0318aaa54f91b8161fd51360807d07c8213fdf8d281c32657fa7e1c2b50fa1006403bbf98749f2ec897c0e2d239a8771f94c0c2cd6999e06e1b95883479d61993a42038dce46ad900ab319958b6b9f05e19162cb65b9640ceff2a60928b0b5d9e88a63038d999338df77e7493306a2bebbd43c24ebd66765b82efdbe137d8eae1adc38dd03a7bfd0a812f5b71c07bcf2cab069dafce2bc1bb9088c528efb4615686eb153ff0393c08f3dd8d2360c2c7469a07c32d7809155393e5943d0efea0fcc935b8d03df037d7f501ad6b53516fa8682a3541c1f574b8d29a607cae3e5009953a6f8e1250c0382e25bd64cf3d71017a21131fc9d2a89ffbfbb4eb78b184b9011783879011cee039c30ce24fb8099359d17648f9963d5b42e87db3dbb05411c2ba85a8901bf8fe003d50df03ad1ec2cfdab98071044d43ee5f4085bfd94dbfe6f0f8e39e64e6cd45403e7c2fa4b607c80a38bcefe0cedd9ba2fa5c4ebd98780745bde1ed06438cd434d0389e347a6a1a9fe0a9acb00eb175b152a8aec1202085903ea9744695177bec62b03e50ca4afad97c8c8e621d49179bd0544f496a132d60a8082becf621df077f4d403a87fe1248c34ecabfb6ad37b5d94c89216dfe00c6fab9706461dc248878287a200581f0383ae1b77fd0d0c8182305c5726e84e163a605f84ad15fe62efb1d10b6220410100581f03d27911d00c6b27ec742f713fc0fbab1bb7b7aae9e70486bfa0cecb9b98e04497dc2f4d00581f039c24d8c0a8113de5d8c36d68a23b8e187e312505d5590f626280f9d85980410100581f03b06e87bdc30926aed5d85377fbbbdc9691383396367b221bd99bf9350c704101031c254467439152b4dd0eeed0891bcc3058fb1275bf0f34308898d6cada1ef5fd031a80e553a239035df300277b09c0cdfc2fee7509f9015dc57e009db7b60929e401410e00581f03cced36aaaf4e64d37b4208bb0cf863b1403652dcb8fded74e01610860b8041010219065e03323ab9b68277204f0a067e4424028002ba19be4d133d5dd0b703e421c12897940219ffff03829c42938a007b260190889fe3b1a318deca402a2b6b4ec8e52cfc962108088103f81f27fb1efdef0d2453d009cf60d7692fed0cc4e1034057b821b6363679ecd80389a821480d8f1cf59b0f25edb0be787b7f4d79bfb3f082ecf0a93071ea55750603597db1982051a5644ac449066f5e37e6e001ddcedb04690da226a94df6b9b00303e24171c3bafda9876d0bd768bf8c0399c13759204b2be9d5a81b3fe5ce00f37d03b852760249b6c0e2b120aa4f29c90a665f192b093e8fa33c3a5095d18612b34d03df7b71ad38f1e261672b08cacdc465bad3931fcf444c28540666d5e315163e0203e2b60a03aad5fb2b164262f056d604e81ad0bd1a88b5e1af2c3424ea367dcff903f7600fec7fb23042ff040304472ba92359fb091cc573f142835934b73cf8f8980334464ea8b5da93001964e74e209bd74471d5c87c2bbbece2a46b6dbf6ca58f1e039a814707e2a1014eaeda8ed2c98bed9df5e39c03a57b400f7c1442d8330ae5e2032ae8e8b203c7fff16e143daa24bf9f37e324f2550cfd90fb602d9cc8421a07e703282be785d2846c0a50d69dff8c2f18ad427a0acdccadd86ff5f9ead728205de803194f7710a40ec14843867505821c7ae0bbff62dda7a22fadfefffb649018e71e0219ffff03af52f54fd03f5653797dfa7ca404c9738e77a3ac95711ae4cb07429e6d39e080033b42afb3ec353cc3a120ec677870eeb6ea474bcf6587345e3daae34a2f877291039e524770fbeff41ae0398dd5e77cf119158ea4310560a8233bf1b6705497552803071dd4ae717ee4770c9afa3f631a934baad01227bd058674587902a1dcea358203a46628e2e9075978f3d120e9be27444eb810ff0fa99c26d7d841e992f9249ae003be111b15b84fa27bb24282060bfae5c633c6eb6a25debc1161c8e2e84bde7cbd03219818846af26665f68f014c182350418f7d6382deb3a5b540decd35889e9da403ae361c73336e791c0a9f1eae3b83a38d3ecd6f3b2b1064cc7fc1d54c03100aa8036c4d8a1b58dd9621cca131579bcd1fe283710cf5c0823a5fa939965fc27e41460219ffff03dd461b205df839b33223301438c1f026ec84f2fd82eb4255a1c5e7f65dfbeb20032eab1aaab92a0b688e218306df6a383ff571b9989a05e8b980dd1e21084075bb03dfef96be93c4a5aca17280eb45cec322af569ee50d165ea0746ece800a1e7e1f030a5bd76be2aa26dd41b21e014a104254bf8a2b1c0659f4a32d13b1c41c2b85f903964f3eb5a679eeff2c6efbca2340aa528d6b0d3e2e81779d9476b307b383cbca03d1d312a245f4c04373077b0422bd88cfe4db99f4beeefdd7fb8a905f0d7abecb03005846b5a7349f0e3ae40497262c6c3fa7a7a578758f646ba762a0a7c9e9bf9103cbaa9f61fc7347fa92aa17f19b7b547bb0dc5e0e5c6d3cb3b6d951517ddb5c68037ac89db673e9067ec6c553710a10cfc5b7b8fcddbe3f8ad585ad4137bf12d87a03b42ad7f121e527600d7c453e2ab69741678f1cfbe89fd9722882bfec69c56375033c941cc8c34ad45d4c9248eb42796c55037bd7fd5ce891e79c0dc7ef5b51b255037853d5d762d0e7bd5ea3d01362f9617d1feecf0a105384524d5b3bd6da45f9a4035b050f84f77aa05f8e24de2d42356f6cd9b0de1283dba4212d57e995626db7cf03c30b68e3c91d93f3c529354dbea1b109cce2e63923f8ef445b56a98e427ef90303d402a770c08013b69e355e99adea505797e49ec9125f9d1135af2659efd7d53b03615be7505a5775dea169420116ed38fa3fdb1f62fbc11e568336cc82af2417d30346e6c0eb99a84a5c89f6130c5df40e2ac5808a65912dfb6d7daea3b23c4b909703078b58aff743fe4be28b8e7372212aa11c0bbcfaa7cec76c17d1b065512f769d03178d14b1411a48af74a96c4f3ee47408aa957e68c84e15aa356a8ed458e70d1603d19d63bc3371e4dfcf1f7866f3ca1f3f94cc087d9663d933fe7a6e439310892a03426740fd669ecbd50af7592e09859616f9728d6a4d9aaccc8b41c15d6b57d20b03abd7a274a8bb52d27a675c92527377fd896b7c44acb90a821322690dba1bb5dd0383bb1fdfcd02ddd04f164abea43959eb1cc948c39d3fd14fec99b71427d18dce03dd87c4acd08c8ff1df760fc26049632cb4149528646d2fa1cd28fb28cf01761003fa88fab6457b07f1c87c78f98f2c424770a3067ef8ba9b905d3fd1b1f3d9c29f03e43e00bfae0e4324b99905696ce810d5f85262a91ea6474de60ddb4aa0fc0f3e03c6b711577b476d65935e03efba94848ceefffed9ccb185d55398a08198f0cb34031c5762f6b29ef7bdf614a5e246e51eb102a1ae0d8765f95ad77d1e6d22b84ca9035377e22b593182c37eed37b0ec07d60e68e64ab4022b7aa834e6e07017871fe700581f032fe521883c2d00e304d3afafdba0b2bf6b976af1c0c7a133598ac943b6c0581f0100800000000001000000000000001080000000000100000000000000000000581f030e3bdd2f21458b621e4d52dba35497e3011a04ec969e97299538115bb7004101037a41549dc73b04231c222bce51d0c6afd96f265c63d57ba6bac9b74e8d9cbc5700581f03dbd7957631a54800367221d0eec5026f6a71ac3c28ae0783824a97a796704a0800000000000000000003e6ac0fe817f1673c701985091d284e86df22a0366fd41ad56399436dc518d78f00581f036eea1981ddf30c7a6eb3e083978e0748e46d919dec114bb6ff59e18925504101030ba7d200433e159d2bd80e877c6715bbf34e61a0b576b89613edd2b8ea4c1b950390c1806e59e292a7bd2643c9eeedf9bffcb84fba54b23ad608ca04c5bc8b18ea03b3d89a37f8f62c271d20ae57b1625b82eca5b4b13e961f47f1ce363c453fabb20219e6a60301ad44d440017fcee9a0fa5c908dd5c8483eb88eae2de040797c949f519ab6a203b9056c7dabade72df904839a1947296f073b28422f2b8339ff07b461479016100363aeaec234037a6ace295f488ea33caf7546d1397954ccecd311beb727c1c1300345f5953a74617e54a31404d37f48ea5620256b007f4214ccda15796cdb1f73730376f4b946ce90578f54b8b7b6c529231889eab8c46ab3f7018e74e8817f6903d2032143f468527a5e110f99420b7e418ed63a46fb4b90be7711fb68149ffb65b9b003928646d634648d8659abfaede4db890719f3904c336dec1255bf2c5ba3b100ce0219ffff03de86f909d69c6e95a078ec0ab687029ed15a3a247ab7b44e75dcb6a81b5a9d83036d6068fb0dd86c83ef193053370f27ef7daef0fdea03c72db82a0ff2d273e8b703964928f65df5cb83837e9bc59380faace5a22b068b02b21ad304005d3e29201a03454c77c973473b79e18d74ede8af61ada0817bf9b8d6dd1ab7692365b47c956d03eb209061bfee7067264bd2eb92f01295572c54aafba6575aae27ce1aa3a255d10328da08adda0f012468b8f55647b2af5ec01fb5dd3d4498ce432476e364c679b8035ad19bea8da78dfb36f0fc081ef772622c840514f5047cf5bb1d79972e946e620345ce8df4a2731f56f7a1d212cf4c9827ba4307467ea6e6b3272ea3bcc5ad32bc0219ffff03f31d4d8442a595d13c3a95154dca0cf3938aa18267fc5fe5e257ff75d1dbd3790219ffff03a06e690149ac64432d3c1b2bb42d0367ea784dc2e254a7d95adf9270831388f6031c28e36b0c1f8d0b8311212e1b48bdf06ef5614c31ab25a938526a78e2cef4a0036153a453aef1389dec121a181785b84c955a24ecf3d547fb573a30b025f9696f035532ce7b475dc96333a5808d94694e697a039e8f436b475e09b56b03f708da76033c5e51bcf8a7a548678672f5cfe360ce9c67bf69bafad75d79bc3b4c07f02b1603d7e9efbfde3a79678d4eca1cac80846137c4952769a06a2620c8391f36c385c8036e2720e23a8fbe03d676dbee0e25d691d359bce7a9a994487f314c07196a37370387b597175691332b425039bd10673e1c9275022ae0999d037f70de566df82966038072b1dd049c905b50ddefbfe0950c6e14ea8368d5a2d8b14a45df23e74e9bb50309a0f02a8219950be6ca68878010dd2ac6bc8a4ce282d45e2f059f23caa09fb70338a3d41e572e408b7a0ffb7e4e018be715ce193033ceaa7906057aaa82f8e2a4031d42e3672fc2afca698f9f0e152cd81abb6e5a5c425ca2d2d88b9dbbf470c5ab037e860b45707ad83bf9215a428492f1e978d4bb58e6c9d92fe8991006ffa315df0321480399b3feea99eeaac370ddc8f4c6be08416ddb508db4a559737485e944050329e606b1025df29304a2a27b978451b23555fcbec6a1be0df0d87ca6f101bebb03b1a1d3aea3dcb962112712d44dccc7774cbe885d47a46c1b01f28dc020b0827203ee1b22646e250a27ac6e9110d3c8a5725fa16e90261edee1f9a7f87bcb9a093c038fbb2a04efa85d685be60727c7e9f6c2065f6da0dfdddefb82935853ac7c8b6003d986f56d3250e78e41911326e4353ab2786a6ef342dffba8bb4123e5c878fa1103c187f90ee9aa10936b41205587a8018575fa95d64471014d7bf352f3a3202a6b03b2fc7e8490ade097426540960810ac0ca0b414582107b21586ed72375524c8e103b34a8c421112d5b6d2f7a056718192cb471d26d3fd8b68c14ea8df4a32a68039035100009c1ce57e116fc9fa2ffef00b99d27f39ea0f077322ae602660ae2e3e76039a183b25d7c3ff05a8a6d89b85b8ffbbc6dff32c727e95d3dc1584bfe5a410cb0315a1be66a847b5d8aafd3a3fef200d59cf8fdda13d806fd313dd51ca055d4ad90381f735f6e9bbd658a5982a598753feadd21059d375339ffaf109da02a13d362b03f89d640c6322909f4ef96860a5bc48a14f432e2e8fdb10b6d6fc7de8ae82c5b503e8bd9a478fdc257f060f254a50e975b643901f3487725c8de5ad14772d9553a60347cb99d537996fe5c56c79bf4d78a14bb4c4907f3aa949a8c7dfb7f0f4fcd4e903676fd2def2d083138c90b98aad496aa63162b1b51d077b333f4524734ab8ec4003789699e8a3a6674d67547ffb9a63db69b4650c6fbc51873e5e4d5cc5741cad84038f95ae64135d67755eef63f1a650a1c50d8a4764c989b5caeaa9c54f08fd0dbc00581f03656fda4429d5b0182626747164865b7f92173f01f93e1eadbfd76a96df904101030dfa292e5066b6fd5443213c82aff08fba4894a5b57c1e50411853414e81012400581f03c885616e5e984755dad4e6482a8383680cf53665b84bb907fa7cbd9e81d04101030515d611a0ec817890ecd6a1dd74e156330bce6970efda4aa71ffce941a225c400581f0304dd62c49fea074951ddb87af550637e1460c55ecc92582606ea8c3fc980410100581f03ddedf75f0bfb51bbe47a3fba6184fcd9cb02a54666ae3e69c5546cd086a0410103e8a2f87442d64a4ec52e0f57c45db74e1a990f954af54e3dc9e67191d81e03e000581e028c0d46327c46f190a996d408f65381c7de9de800fec8828b434198e449461f08bca67fb700581d02f7c2bd591cb715fc78fe66fbf12582d2b88953cbdb23998fc5c663c2410100581d027ebeacb209a68570dde9dabcb34749bb766807d46cfbc69b3db1ec39482fc32241e8bd26100219080401410f00581e02b1d535b4dfc7d006bd211da58f7a2a81ee36d66d1a6cf7f2e1f479cd52410100581e02a8684eac9021dc16589170e47f10b63f6360618666e6b2e201b32b41a441010219808300581f03ea39c61e7dec08d3e0fb572e707c95a310ee922345a12805fcc2ce53336041010219ac5e0396ab567a72306fdce481439adbf1ea5c625911d49b71af500b20e3b56b6d406403be63f7f824f722f786f91f052b863a5c12165c3a8279e5c71d11b7cad5c3d9ae038b9c0ef716e0e90ecaaf7fda5ae1b075d1b6f11449860a1c365c0129ac280be3032ee56637f1f07bc5fb9d1f4f516f3a5930928b593313a2be9db10ddda17e857a03b882f0a4a9352dd33cfb8e69da60fbb06bc70e0c782203a2812ecf4d3530ca7503a9fbc62b4016b3b4a164e6a0bb47d11d1060a9c132febf034aeea42222f9d63f03a9077ce2e22990158945a443c31e45dcf1fc6caa6791af46aabda15150684c7203e3c6df2f12a2c2f73cd27b769775f3ad2b28795b1e40e08d54d8abf2f3c66b470219ffff0219ffff038e40870cd4fca2f9072d2ebd3f80e069afe0040894e6a4df32a98ea9f604a70c0357b43938e0b60fe751be6d06121c709e9da40d13303c0eab75afc4b51b765ce703adb9248a9bb002d02e8430bd524c36b9a3c677ada29365606d87c3f2380bedf2039c9c7c929d425b5dd819055a41160c73f79e017ca40264528955fedd60215ed203526848df070a35185b7a1faf10b83d8aec3af98d6001c9e4bb2118078be401dd030fb015dcb9d9425eb7e642288cdaeff11836bb687f7df307d05b7199401a9a9a03014148cadfa89ffc7468be3049a5b078442953a1fcd7933f645af55c85c9bc630366ad05d46eff1c25b339a7f1082fd800cde8482363b99e365e744ab6a1e0905c03ec89975427dc3562d5e6fd8ebe070a2f28bd09a54f3b664c05195a94251b6e8903ba2841e26936b2ac2252ac8a46915ab80b3e4a4f934a93ebb79822bbbeb601fc031be049e44f6ba13e3cf397bdb614b3e8c76e7ba7679ac8a3756148a8d8bdb85c0219ffff0382606bb5f185a653414d45726a3004b81a5aedfb837d29dcfa8a63958277cef60219ffff05581d02a60b44d485b25109469ccd689525ca635399eead780b83b92abe15410f0141011957d405581d02ca6020da6a27c6d29e500805bdd2c864e78cda51e74d0868b5ea5013041827037153c4ace2d03b3c3d1b9657de749a8e348f094954e1bee59a134b59ccb94baf021904940360ed7cf891587ba16f47b0584c3fd2389fc7fb3bcb3bfef8bf363c783eb41cf302194b5703a7e135607099c45829ffa0ab63ce93d2c24f4bbffb973b61f87854b87cfa6efa03ccc37529417fd4bac32730855f5716ba04d580a3d7fc30d6c55242701e6b9700035b80c6c461b546eec72ac3a506c2c2638372bc3e536cb7cca2e91a43f3aa490f0303d789e7c37e0a33833e4fa727c08981455c0efbfc0ba5b5d17dd787b2bee43503d0e9287f19f7bc395df1edc9cacabe877ad66d53728a03c187c970383d1811bc03192c42a95627fb0c52a7961721f37c63be72dba2b04eb1d991ff2131a96a6a04031f090991ca6a5db2dd06baf2a43b1590bb37dacba093e9f16c81a1888fe16aa703e231467f00c2a9ffcf6ddc36791b91b5365e9432877dee012c20e9091a99989603fd54524d881bd25c9d9b5ba7ddb738e77899f26b16ba2d92b904318cff89e45103cc6a90b62c96b0b6ca3e06bbc8d9dc41359771554449b17e80e26cd16b44b0f603fc5c753d33e597d6cfcf9d82f6b1b46a605a1646380678abe6b2ac495391cf0a03188ed12dd4fdb2aac963bf0befcd62c7e8ce122b93f140cc6e9ae75029a69a2903e14bb7dc2c312f924eb0c4afe1753bc9022c9cd400b06f1b6f514abe5b4934570219ffff039202eceb9552dd00d4b2a1aab6332e1b41c9521dc76352da2555fe0532d8aae803779a923b092a158a0e984bdea1134d0ab44f16911b2336825c8a23323221fe5103c8972bb1e9e7483881f86ab88af16a0ba3b5cba411eab082a2e2534dcdb892ea036b1e6151beb535cc28f1c9901b2b58e8f01c64b85aef8bc76ca03592538aff7703b491ebd43839ece4a1ec5895598022f6bc7f543148a597d3ccb584d51fda585f03336c99636ac0b1af1e7e7ed893af8fb128433f6630f659041dc10d7cbe9ebace03c7334830a2460346f9487482184830adcf92d70226e8ac01f0556b68e0b9827a03bb369730d722d63c116652391a1cf346097921c3e8ad94e0eb525f61ae2f9c1c0363f4f64a5368053f837915933de8afd05f28f53b23a3e6d7ecf5c58c81250ae903eaa849a92c2d97968c99f406f70ceb6639ce34fe2f9f6db9c3c398affdfdea6c03bfbb9d853efede5b0f23d1da7d389180563868db00b78bd6458c4bf0c03f3ccc030a481b45dba30c6e031ca3eb067453722bbaa3db211682fee6ab0372b08f49d2037b8aad9aa4906d3ccefabf44e41be90206ba3a6e721b679e3012184bd53ff168031e3a57721a50148294095a1def7c4638fd1a1f61653d9b5bd7b49c8a702c91d80219ffff03eed2077b07cd672daad335c9d939d09e72d48f43b1976714c514a56842663ddf03453aab2f0b3d0510b9c11a2518f40a5fc304232651dad1b56e61c17d815c3a7e03fe1f35096df9583de2b287a555278b80ec48351597d81bcbc2a7ef6d0cb9707c0359ce604eca2107f00eeb9e40a50ebc16e10d77151b4d9c8c3db01d3217b73d0803d5c32707fd653b5532a923ebd57285bdaba84ff0e64b8f06098a3aca38e93975037cd55a06be1040427304d54c8949def4f0b909ac8f74e72e2ef38c9c73789eab03dd5050726538e758e98308b7adda4cc9ab990d4edf26ac224d917c595062767703408687178e86f6eb69650c6ac0f010b7debdf824eb7282ef35fc2161839f7a300388abaaaa1280c583061fde926db39b8fcd405b9a8670f36d454d95781a490bfe0219ffff03bbe314649f9764e8a3ddec28cca7386bcf3b6bb2c9ccca07ad2e38ea79328331035395e49421f8b39491b5f8f198c3f218c94c0691f3fc4a40df7f544f7aeb3c420301f68a6aae7fdfcabed6a147ee78dddc8884198ed49d2f386f08aedf1cf67acc0391999ddb7668e5d77c09c27db485e2fc5c8d400a612d5202f2a086622181ac8b03fe0b4352cce02682443ca13b93c99899819f18c85fe8f958325bdabf3dc50c930348a0eef2ccbaa6a63f0004381d991e039573e021dd003154a530d9e4eeccf018030c789dd517af9389acb543a6523e2be1f6a4dfb20fe9d5cd32ba16e70e2ffe4b034ec2fde641e48bb20e2b6c0b581112c01f10bc341c21cf7d308170380240d0f9031c5c89b5893fb1fe4e814a2cc6cae4fc12a08fe88b208523683713d4d17240e003867cc1c1902caf15ea0f305029ab32db46c3bd49e462c156e206b14395f76940033e1ac1edb55aa03bf581a5d07391790e822a28ec4ca5b1e2a7331c4ba11f3e23037c6fc8c8ca288c3e5f28520edacbb7af036a91f3c577f527ff5795fbb6a91b8e036456cfbce182a3ec38daad1598aee87e95524968fd4995f72c33eb5f08aef13c037a4080e5c0403d27e2459461595c43e103c9d10de16e6eb5958240c6d2e7b21603f82c542aa6e74e413c4a71085595a7179dc62a5e79db4a3c499e1591a31dcd01039c579e37cf95512d65b57a71efa752d5f95cc82bdde6d39278df015150b174f20391ff385e115e26aed8dce41dbbde8fcd52a82002feb856dda123eddde40f48e403db2d3f894a86c27a846d783f07cf16f585faeb6f4b2928701fae72a98c3562ab03ef98dd0f8d4a7723519031aa4682db946573cb7c46c83b95012fc0258fd522600301915dd5266217dec6aa74aebace9949f0a4770b48a31efc15365e4d9079372003b36d74ed8ef2019a9d492f46f4d74eb347148ed43fbaff96890fecdcfe11f25503808ec09b4a95baf6be7f390476b3259bc0b5769ecad0c4a0d9b24c1252ce6fba039c65f996eedfe712b82c304ba6078ab412e86c8f35a6faea7b1b2cf098d9519d03d53a88faab839ef7877671da28d9177878b1be17a627b577b271d58aee0b1926032f7f0f142bf77642efa8ebd786247abbe716e071fe451d9282277b47dc76cc9405581e033b4ec1633345ef61a04b30468ab980b47ab093f2fd719cf2a6c201e770040305581e033c0398b69420c705586c1fd6d1871d84f639435828afa50c6c5977c4700c01479e580d1095fe0c05581e033d9b1e8ba243d4bda7a5fa6cb0c4509ba696433c6bf27fa1aeb642a29004020458ab608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c634300070600330362a46361efffe15899c6633351c64e1e222dc6e245d21f264c10216f94a854010058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563054d9db270c1b5e3bd161e8c8503c55ceabee70955200582103cbc312670fa8f95577d8e0705c59b8734d08d44ce8114cd6ecf9b5b7cfc127905424fcb9ed2bfa9264526bd675aaf392526abe19c1005821036b32740ad8041bcc3b909c72d7e1afe60094ec55e3cde329b4b3a28501d826c0410100582103fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc53054235ce905973fd289ccdcf1f492ab01a4e45dad3b00582103a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b04103005821036552f9043f7dbde1a3842eccf846aa02c647c3d99f9371aae3c93798f73f1ab054f48f2b2d2a534e402487b3ee7c18c33aec0fe5e400582103f0d4c00fdf73947578e40d4e4682d5b73b9bd82e54e2a2440bf240e46c80b65054cad56fae244546d0a53e8afe285acd37a49e276003013103189c1ef8869eefbc5ef8b75719595b69539a1e0142440510879e1335ab0058210371a4ee84bc78b028133d4e79ab7c1efde80cfff19c617dcd42b43199e514792054f8c1c8b85ecb964650f127755a7394f1520183b1005821039ae7d9c7bd088e8c78081a62213dd2a7686cb2e97b1c5c904320134c554e15b054c7aa1b2cf8c7ab9ff354411320c4c4f3f9bf355002197dcd05581d02290d2f708ecf491ea09252f61f78fe5caf2ea44abfd5ba17ed90d1640f01491256b55fae74615eb618ab05581d02dac0ea3ce863cbcc3e630cc2be0dc648af6a03c4c952f6e16b9a36580c02470110d9316ec0000219200405581e03322aec448d6a0e0aa01fda664d655a7b39ddde00664ecc46bf62d018b00c0147040c30a69b460003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e035609893a5eef173dd6be625a4ffc41e7fa141979331c551eff7f0981a007011bffffffffffffffff03337c29fd9976d67b66b28034c1414c04861ce13b19a267c6e01d66f2cdb6bfba0311ad23855d8452d0b888da7dd6d8e1d937507727a3303a9d35ebbe30e3438fe805581e03e1786fb4eeff4fa838917f18068a6d568a61f87487b619ec25864389f007011bffffffffffffffff05581e03653e5918099e65a7dc900d8c120dc667f4fc48f40b3a713e2bc6f3c1c00c014707682c3a20000005581e03b375e0616b12289a279274e6d3c6a1e1e034fb6e95ffa6a22144a055c004010219bdec03b648b46f44a70ba78742a94c9d67763a56eee52700b880fe212a56b8f6d5d0da0219ffff032ef35ddcc52a1568bcd0cdb35bc422adccc5c89d219fd0d8607be130b5605b54030b48c684587697bb400c9b6b474740a91e59b4fac8b60369dbc9a8eb57fc708c034b50ee877a418f77c21a2e8b185d0d21b512a8e5cd50f7815652f484e49613af033c7ec5e4086718c9a7ac4540c74f21d627cc02579719966e500630b3737dc8580331f65d1124525b1b13907de5a7833400cd9aebd9d0ef85bf3672c6367b869f680363faf39b259413c73eaa0763e494d333aa85261be26a9d2df8c1dd25a2d1032303140b2c77d35108702ad304669ca884f5b234e0a7d76a70ae4fba6b1d4185020b033b38b57f559163b312d89302b53b596c3ef4260738de1a6b10c109ab6f89373803a25811d271470346ecb60cdf7c74f92e1af967a2f887dd72c94f8cbb3dd4a0dd035cf19b0715c46f8bb090a810d0d8114ddc962099bc1dfe832cb9b3876bb20313031e35eb1e890d3cea56957ae4f9e096a54def3f22ac6ae7e5551c491046f9813203e47ac13945d887dd371656edb40a6115aec9d936d5ddf150598de949cda0c1b50375a0c1f97fa4f18d0ce724ddc71615ad041e9a63fbb15942647039ea7d6f50cb03419d2beffc698c30912c28c14f8b9c3b664d3a20e68860fe14d5f1b513139f700219ffff03922deaa84dcb4cabf8da0582248bc5ca60e9fa2d56081be9de71a1df276df29303a22d093a7d312394c7accf26417291fc177990fc8f2946ff59fa8142feb60e4803e06df7ffd1e73a35bbf8d37b1e5302ee04a412b3dd3c9ae347e0e47d5251293b0394361e4e8b02c145ca43da6dc3f8337ab3fa684433b6e0abf38dc944ec8777c303ace0ec2b2b30c9a35538f0ef33c4a6d916ed79e4503544d7f8df3896dbdda56603a7ba6c0d1f5c13aadbbf31708accf2598a2adaec2b3ea73ad043f4dcd6d08e6203780e4c2d5db1fc60bfd690a9f013fadb12e2e6b99b23f9c84ef26d3f5ebfb6b0036e6bc705e07bf19f2370c9a9ce6471814417abd885e56f7a82c3ecd6db1462ec03492d8de70f2c9902af978b8895fe9f34d2bf475507ee4750238cfbe9025dc46c0362b2b0a8259050cf3218e151561321cd03e4639d933042962fafbff56b71cfbf031273433c101c2bb661d5ad204592a4c7a2b85ef364dfad562b8e2cf9ff9223610353dc0dbb98f4a594eac41d883a9fcc9c3bdd97528c2942b1eb9393716ab0c86b0356a0639b0626d942ead3432a71de1ff22e2395d552ad4c59049eaa8825dc0ead05581e03a54bd26e4abb9164ce7f7b2a39838dff8eee0e456da65a4693bf89e2e00c01470229efe46853e905581e03d662661bdb5338f8b7c6b9b029ef62bd8245fbcb56334920bc49952580084702d23628860e2005581d0274e9056d11ab00ff75b879894c45f63ec47d836270ec15ac6e44aec00c044801290df650beafda05581d02ea5313f2bd394ce76ee53b3a978d79ead60b782e21590d7941edd7ae04010218a005581e039beb0beb80cef89d81599d85316944af668f2b58ea29fe003986054ec0040105581e03fd73f8c20c10c656c2be007dfcff2ca54171f81d20b6d43e29de4bc3e00c0547341d72df739b9805581e03db04c9cecdfdb354fc99a4ab5727789fbf25f5b163764c779567f59f800c0647012308bda0cff005581e030f90e283191a40763f064ca86542916f213356cc665bc68a3ff56706f00c014650373f20e2180399ab24a6ff414d3e8e02175c5a171307a899e887f8bb3bf6eb9e3fac52489b8003650be074c14fc2749c92e03ce036b7eed0d39209ad84ec36f355fdfe27d0a549031afb55c541725acec2985780e6573f3f3268657f4ced16fa6b2471b6058ac935014104038b008c3edb1c96589b95ec7e28552cf9f2dd9c0efcf5e7d30fc82855191344b70316d5ee3f9aea4c099080d28e4bb8ddfda03f112c06e0c1652e5f9fcf1e9f86880219bafd03fefb9aa7787d451fea379dfbcb50fd3ab14ee5130e44b0e196df0f6e5f970cce030e598913903a88c68f2c4c7f4f5fac9c87c526b3aab488419c4dc93be0a4a1530306571f62f80d6c510676c545270fa9ae5b17de4ac2fd95c6b463309b03abe93403b547aa74e0463daf24a5ade6d20f16bcf7ce2379449f480e4096b63b22a9c05903dc9eb4f64d161abfc978d3aed1d872997ce0f1cc7cb1cbb05e79145a9dc5c04003b4161ae5dc23ed96348c276b2772a3ff3377abf82d3e981cab83255ddd542804031af5e75eb73c970bfcbd145bb329093be66620d24b097f9e77988f905a88e4f803be2d17fa691e895571648be332ad25144b38f7f17ef3ba3165e2d276138bf4db03e9a1ae6e466e9319c4f57a33e28ca5768e7a1817f4e82b115fdc4445de60f74e03acf9df0ae515392eba34d421a1158660311ebb19956546031470281e0fd6940203155e98e252bd1136f328e12c23c6847bd57b0ba318a742470308fa638379569b0219ffff03e667107f2614b6d2af18079aab183a0900d02ac2834e8d6b36f8e1b88bbf9055031e77e44e00759be64cb1beb96bec726b248e23c6ba80a545fd4f2987018d3c8d03c6a8c8a77df237ad49c0681649b7ab4970d35ecb2df6192ce064ccbd9d70f9f9036a5a2a3779101199b462103d9c7cfa49b13ecb7b637a954947f05e4ced4958dc035e604e97dc9b217cb3dac158d80f9253372d8f4e40452d49dde45c0e8adf89fc030cb91c6a877534ed43f33f33185a96058642643e5eb1ba6309e8e6470cfece3f0330f51534febeb52a8126714172ccda7e6f08437fa443eca6290ae0c42882023d030e0f722f2dcc9e3a5632e66c25de8646341e18879f37b511416ae2f59e1aa6ca03c6ef452cf92d2db509b2ad3b535ac29893634b28bbe0941a350a0653da481e02030c571ae3b846ff3c8001431cfd82b78cdeeddb09ec8c983291b34f346babe95603adb8c778542fcebcc65ed3d394606c0a0bbbea1645b77ad5ef16a132050f14b60386cfa42081053c266a65e2338258bebbd0f4ea396edbde970ac15e615a7f47aa0219ffff039b653e094da1dc46a63c0804da3b1b8923d930b1f7aeb9ad5beb64c6fdb5af36039730050f0830efed2937b996ffacbb03827e0bdd1c5090953bd15abbfb4ced2703e365397a10755c1b6b5416e73cd84f41d4fb554c354f78bd2e0dcf14d4b509dd0219ffff034c9cf1d675f4ad53a58a18b025c1086eb0677994c014b71f471fae514567308a032dca79fb044832aae7109c1a729af8c1dd965470814d9cf81c2464917268dfb303451f4c24b8c3c72fd54fb5e6623e81db1ba68cdd5565849b969a9750133db32103630684b1ccec1426954c9a09d0b7697ee7d1313e429d223f28cb6fc4db87470e030dfc2d36caf259a689e427f2650178d57c3633c60cb67f65948621034c46cdae03441f1f07815989b1bca9b08b5114903fca89e538b52fd405e3bdbf32f20a07ed03bcbc63f779f30a3522c7dd524da98689532bfe2192d2af7a380e3bea8b091a5c03fba4a417943065ba017b8cff619452f4493ecbd4abb07c3830a45813ee07a2f60378ba16081644ba74465159964efb063777e09d57a7ddeb586019913be78963e10311a37a7d94dab1d3b4af74bdf2d689d6f3af33a97402ad3818c168d76848569e03ab11eea9acc80d317c8e36d3505b778aace6efd9b73b06bc65bac4530c255f3b0359ca5baf926d22dcdc1f7c1dfc375ac8a9d2dbef1178b2294abc9da7a39820b703f1b734aad460798aca0d82fb3dfdb07cbfd98e09721d8ed14fb3ce5dee8d529305581e0310c8d43ed84be3c815c0ee884f0c504c581c776b9639518984ea790be0040105581e0337ebf972dd8ebce3100cc9295e1b98acd07b7f5a86e419bc5ec3382cf00c01465fc9b930100005581e03bb53bc2b3db2646aaf3a7d017d4fd807081a50cbbbfc03483231fe3160040e05581e03f94529dcd7bb0dc0fb17273d47ff082b87b6520b31c397d3a2eda348800c0147050af373f9e4a705581e03d3d4ae9a8560018fc6ecb7215250783cdb82edcc86ac2147721ac7ad70040303ff079d699b91010640f6b5bf8250401ea1266bce7c03d6e8c858ffa31c3a50ed05581e036906bd8f72d85418553ca6fb128227c5164e6c68b6cb522e567249cb80040d0367f3cb25ad65534978970987a80aeba2b7fbb36edf5444d105ddac753e7e221903562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03d68265053d38144680b28e99901c54b89b11db8bee4e0425535be7db8007011bffffffffffffffff05581e0396470b3ff02d66321677f6842610064059e289bacde20603f308a3e9b008462f4b31874000032e8c6ea388148ec6a0e20cdc912739e538c1e8f3460ca39f77bba313c3ef686604590b4260806040523661001357610011610017565b005b6100115b61001f6102a1565b73ffffffffffffffffffffffffffffffffffffffff1633036102975760607fffffffff00000000000000000000000000000000000000000000000000000000600035167fc9a6301a000000000000000000000000000000000000000000000000000000008101610098576100916102e1565b915061028f565b7fb0e10d7a000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016100e957610091610338565b7f70d7c690000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160161013a5761009161037e565b7f07ae5bc0000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160161018b576100916103af565b7fa39f25e5000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016101dc576100916103fc565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b815160208301f35b61029f610410565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b60606102eb610420565b60006102fa36600481846108d7565b810190610307919061092a565b90506103248160405180602001604052806000815250600061042b565b505060408051602081019091526000815290565b606060008061034a36600481846108d7565b8101906103579190610974565b915091506103678282600161042b565b604051806020016040528060008152509250505090565b6060610388610420565b600061039736600481846108d7565b8101906103a4919061092a565b905061032481610457565b60606103b9610420565b60006103c36102a1565b6040805173ffffffffffffffffffffffffffffffffffffffff831660208201529192500160405160208183030381529060405291505090565b6060610406610420565b60006103c36104bb565b61029f61041b6104bb565b6104ca565b341561029f57600080fd5b610434836104ee565b6000825111806104415750805b1561045257610450838361053b565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104806102a1565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16104b881610567565b50565b60006104c5610673565b905090565b3660008037600080366000845af43d6000803e8080156104e9573d6000f35b3d6000fd5b6104f78161069b565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606105608383604051806060016040528060278152602001610ae660279139610766565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811661060a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610286565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102c5565b73ffffffffffffffffffffffffffffffffffffffff81163b61073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610286565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61062d565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516107909190610a78565b600060405180830381855af49150503d80600081146107cb576040519150601f19603f3d011682016040523d82523d6000602084013e6107d0565b606091505b50915091506107e1868383876107eb565b9695505050505050565b6060831561088157825160000361087a5773ffffffffffffffffffffffffffffffffffffffff85163b61087a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610286565b508161088b565b61088b8383610893565b949350505050565b8151156108a35781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102869190610a94565b600080858511156108e757600080fd5b838611156108f457600080fd5b5050820193919092039150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461092557600080fd5b919050565b60006020828403121561093c57600080fd5b61056082610901565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561098757600080fd5b61099083610901565b9150602083013567ffffffffffffffff808211156109ad57600080fd5b818501915085601f8301126109c157600080fd5b8135818111156109d3576109d3610945565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610a1957610a19610945565b81604052828152886020848701011115610a3257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610a6f578181015183820152602001610a57565b50506000910152565b60008251610a8a818460208701610a54565b9190910192915050565b6020815260008251806020840152610ab3816040850160208701610a54565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200b5100b6056e5ffc17e66039dcd723596f9fe3a99358830e95788eba2919cc0364736f6c6343000814003303302f2a7812bffe9a9c6539e80e3e65193e341fae4ade572c390894349c4c6f02037c687d5b2c8b1bdca0551cd9673c5689fc2dc84b81ebd3b7bf01ab4c59667752038070017e8fe76f7ca31a893f2ac047e9a091e233c2816a9042459529019e13b40303b6b9b5cef744b31c0f004ced865438ce9f8b831a21417b9ae4efcc582e023b03fa8bc6bb96fef5ed0d142bcaf3b425bc3350bd31f4e8315c9ecf6daa3e627ac700582002fd7480397619ea0e009379bb7df235ac03d7676b17f5ab920049ff70e3ee97581cca7e077ab56ba580f7dbe6e50cb2468827bcc40e00000000012348c00315021e9ba75f142d9750a64655c78784404ceed9fdb8460f0d6c9920ded3a3990058200205b3d1e4106f56d3dfc9204cd2c326f38252a141b85b55a06e8de6b547f46e581cc2fc9407e5992ec46923751d1b8e3204516982640000000001256d5f00582002242ed7cf3920005c6a4b72a7a5cca9c63556e45e63438f1c5949de68a11fb7581c80126ba6d623890d411e1d4519ebee16bac6b90d000000000121d4150058200397230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe04a0596561ebcaa97f532460058200371723ae1b566436b9aef1eecbf5c82bbc70eb6a591aac1e8b640cef8970360581931d95af8ced6077a3d0000000000000000002762a5377de5cb021901020312b4b29a67fb3d31cd70f97ed2a2276f58bb5b636868c4334429efe95889540a00582002401a67f850f36981797750a533b79abacf4e101dc9bda3062b655f1c2d74cf581c9c1a7407a9532c85fdbe7db3d0eab6ecb66d4956000000000121c4ab03d41a8ee326e381ce89d63f49ffbd9407c2f14ad0fcb2cc4e238933b7b3722ee203a6ce440791317067c7f4a35b3dc5c1d640882081f261732a9002a1d97578c05303213f525fd0efc3726f0703b5c34d9a8834a66fbaa55334f06f8c15b71c53baf80219aeb70058200222e161b98993aa8d5f7a73f63fbf4eaf2dbac05c75781316e1c3e82a5b95a058182fcf46b8eb75a0000000000000000000000000000000016b00582002df0bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d48154c26016f1166be7b6c5611aab104122e0f6c2ace20342171c1eed185ccc7cc4579c900b317f0268ef15c57b778ef3a8c8f5ccd1caef005820026d30b335e75bcfa2d289c1f8bfc63ad4b27e09755626e3fea503108dbead98581936f2ef66c295fed40800000000000000000023df754fff5de703b7be40e3a6d2346a2da74e0a472e42b99c0d47e7efc2c356d5caaee2dbaf831701410503aba73811425bff86a77302fc6e75e5ef8ab6fbc9e32407302531fdc3663f4dff021946860303954d062e288e158938cdfb37f5bfe8c82d7ad481bb009acdfb4b5949600a20005820029512f78feeb82f6f0e1fd94ac70d874d325473185d3cf4e983ff011f1ef948581cf976942ebbc8d0adc76a941c4176fd48089b774d00000000012528b800582002609270ca5e4bb032ec113bc27df96e5330f9a7b057df68b2a00d6b46157ae6581a02190ae0d0b3097f180800000000000000000163e14e3bfc7f37005820020501c1278dc05efc1fe2b6a9106a6b93ebe9d8ec51832010bf39b00c882f315818106393c49f7f6000000000000000000000000000000001dc005820020113a00c38aab7cc9ca84b9005c7330f9f796bddd16d78b51a8021b4a17d1f581cf42bfb6faff8353ebb2e6ecc7f2d2c80e27f2b4a0000000001230c0d00582003437660acd9e8a7ddb67b9f079e3f7c5285bc18cf65ab85200997084781e020581ca614295a3ed3e9f8d2901b21662587810a7b02ad00000000012459b100582003e4f155c5ef2ebd3772b228f2f00681e4ed5826cdb3b1943cc11ad15ad1d28054e3cbd06d7dadb3f4e6557bab7edd924cd1489e8f0219080800582002c40ea28c69dd7ec08f936e59eef724843d8499dbdb9196c0493648d3730bf9581a05612c08f1a7abb4767700000000000000000e271d0d3cd99805005820022d2db02243f7b7102f9c5c92bb15211724baee4366eab3dbb15fe2c7d1d6df58193742e429a54e0190940000000000000000008e2fb5888f73d80058200270a6486a8bc2b6c547061cab22c47d2f881539623193832e97b8c330d72238581c0296cd430220b8cb54472c48e08f203316c49d62000000000122c701038b9a25355f3c2b6e1c5962d5bd88eb5cb76d18784cd6ea3f45cd08c6e7eab0360219ac7b038d9a860850d64cda01230f0f07ae0949e1cfd7897ace05d9dea38e0c83d570580058200217922d48af2e1853a6da5f96d713b394bdbe096255c3f224ca9faf5513302c58197715827184059ed71800000000000000000186c41ce4906cab00582002e82f00a7131743324feda3d07fe9545b5981158ba01a55fa18a14575faba50581c3f740123721ed557aaa29f1d1871cb1cad295e7f000000000122935c00582003ebc7b4c4d99c9bf785b4c714856e67601c1dbd1eab5337da5d564c789295e0581c72fd779326ecd8a3ac75847d50f64bbcdcab56be000000000123731c0058200320eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d0545a7b3cde8ac8d780af4797bf1517464ac54ca0330058200324714b1e5605296edb482de91cf65f51b5346e7037faca029b7932cff5e7d058180193281c79e1212b0000000000000000000000000000012c0219284000582002399630bad502c1ccff4265b3fe2255185ab7bb1fa705f0a8a40408c8f356435818015fdc5af28e00000000000000000000000000000000002a00582002286a5c36feec5036493dc04e3b7642b015ea04c59ea3baa32e706e64ec421258197296c6fd3430c1b4d800000000000000000359a1918d7f978800582002c0112fe6faddeeed710b7dc09238972fc6d4e569f5d1f13df1c3f14fd11843581a024fda50b04907bc9e830000000000000000309e52cf95b892b400582002c65a86624feb16dde6a2ebb81b2eaeeef1d56202ff4152591233ba48388c56581a02190daa16015e3f2fcd000000000000000002c9454e54c017c503d20f9cf26b2637849429db2443d1be14c5ca4c8b370fc402c7155fc62ab0643900582002d02aea8de3aaa8cd50366268d17cdd41ad1f29e0b9a6ff746b49020d440f55581c98e380b0a0a17c97a1f0880bbd27c5c5265259c000000000011fcd890219c7790363f64324626c5a4f768c9a61a2ce8765a284b1ef2a77742ef161383c5a496a7a03344f53688a08b3e441cc1b416cd77adb967561d13d771a20b14b765f4953d4cc036b7ff890c5128c3a0dab691112ad818418c673c60790dc2458257860769d1db403a2dd49cada19abe557ca7ef294aa4a13f99ea2911c0742c5498d8fb44a123466005820021b6b4e71df32226bb2c4313827d1a8810688ec86e17361088540f9e68a5a87574380663abb800000000000000000000000000000000049005820024f422ca12d191c420aec1c16ea4103d3c01eab966b6abff9b0ab23b8a137db5818016369d9975480000000000000000000000000000000008f00582002af21670d2f6ce6ac6502a69b5177f69dc35295474776cad6b0ee6c4fb26695581c4b1da1c4a324296a0bad951159db366091962cf2000000000125734d0058200265f8841138094a23344e9dfa0cb1db9a52b6e9207df51784b9b45e827327705818036704d0e7952000000000000000000000000000000001eb0330659854d262f5079386cd00780293f6ee0798ac8977381db4913c76ca811b590058200210969b67a9c5955e678a38cb70f678d2b5edce97669bba6c125091dbc20c5d581ca93ab149c43fe39c8543e8e3ecdac268e476d0ea000000000120a94300582002b11959fdbbeec9f84edd5c4a676df485103707ab929c7ec4816e980fd528fc581933e9b9aec31d479d120000000000000000016321e01910e672005820024b63cb5869d5c4fb8d4937e95ac5b823e1f2885a1160c134c543524af4e83041010219477f005820020fc0279dd0242149fc562ad08a60b17229cbfee5783bbf37ed343d71b938c9574661170d0020000000000000000000000000000000001e00582002631717b8d1a398a3cccaf2b31972abf5a000cc9c37ca2d92f9c686b197981c581c251623efdafcc7929f40b35d1a2ff4813e6065f500000000011fb69203638a683ac66652c7e9f72c7b4384a6874a938464096385ef4a9394d4c15475f6005820022ca48b1265580553a31c3766b13293083395d1ca854fadea0c6ddb90fcc75c581a01b83a676b056addb96500000000000000000852c4ddb5955eb100582003de843f0123b04832ae858affed1a3d67621849bd7808277ff939414470d200581c17635d5c1292e384cd0c6232e19af009e56a3b97000000000124518c00581f024ba55b09b526675d1d64769cee5b0182fbf441343023c4f3b367bf50bf5658195c98980758cafe5dad000000000000000000471f3909ebdc5d00581f02836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fb4a05a0bc65fbdbdaa8ada70219480000582003273ba395dad18d99fb29b3652c603c8b407276890a9aba416e044154887fa0581972936d5ba2a3421d50000000000000000001dfc483f8dcf4af02193200005820020c7f724b63ede33af33a5c4ab787aaa96a1827dc7acddc54bd647cb7983430581cd45f2708c7585023f213369ebeb9b55a37c88854000000000121f44d00582002ab495e3800e6ac83f9b7ad3e43908ba00634c5f14ec014d9d6df98a9ed0bf25818034a441365502a3d00000000000000000000000000000087005820030c9cfb1ffa6ee34bf8c4f7baee4becb11415829580645c95ef3643326e33b058180e61dad58cf9e00000000000000000000000000000000124005820035c74349c55f20d01ff0f47e34e8fd93ba1affb326e345a8a4e1a34b8c0bbb0581c6ff75123fb65966ed0870a61d002004ec1775d7800000000012372bd005820038d954e2cfef495862221e91bd7523613cf8808827cb33edfe4904cc51bf2904a05a0bc65fbdbdaa8ada70219084202191cae03dfca602c2ce66664e2ddce086491e94367eadc890b04c9c19769ab756d66cc08039bd5e35315d6861d5335cb34a2986b72955802b4019b8864a18ea1a4e9a4c26e0301a313c72d80c81a9552750d221723503a8637a82a3b4e0cc04f89034d4da3f7033e1f29a3a82443189c5c0cff159e0f19b9d51500f8d66effe785b2fbbff99af4005820021fd1e75c7a39bed1d471c8f7d92fd4804ba9de118d18a07b0c7c0a4ba7f4695818054e58344b6c4000000000000000000000000000000001fc0395cbaccba5d8b90e3b15f22571f720de5bc337b523ffb07b29bdf448dad073ec005820029d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbcb4201fd03a24d7264fc5f7db900de4c614f58796ce944b4900663eb6f851cddd9e3aae617005820021c5a99fd4e419f6b289743da39176c3e4a97ddd3d60f4e9e1e6cd7f3a4e4e05819770cf3ad811d852ae6000000000000000001dc505b3e02c7d1005820028ceaa0ced788ac3eaa3be36d0b3b54a1b9d887b0f08090f275b2ec2c928ef75745c679d7638000000000000000000000000000000001a703cdd75ad079c1fc93a3f56137ef546afc11410376926c166d94a628e76d9e18ed02199b8c0302840a6efcbf58cfbedfeac848cc7f1b6155d7d50cb7dfbe54aec1eb2e6b8c550219ffff05581e03e5bdcd1ec3b6e4684389489dc504edd02b48c106d55b2198d55ee92d500f01490a66473f3142b37b61190b420219bfed030adade06d9c7268bd295093a607440ba2ff6c5503f399f4e2d77c5d1d997a5f2036feafd51ec3085e2a3ca822b384c5a3bd4cb87472852f1637b5395caa41edd7803c739d65612b0d24becf27e4ebb58318c5394a2c9711dde14b35e7b07401c777103e990a63f179d8d4fbbb6fc55b42015148179f5b95f2eb7e5eca94165b593636103ec12a31ea07b5acfc9fb414e2397c7609c3c11c30fcea21d9d6badc45ae8bdb0035d332aa0a7ec6d1bf9a2300bb385b36fd9221e069ed97bc4b33ae7375b7a00590318a580b179ba81d271f2db5dace74715967395428284df5acf6cff9d2ef02ac9034c48e50ba82fa6f2918dc449026459eaa3664434459a010001eae2a2bebd499403bbf9e7d44803b0a98749765826d37070fce6e8afb05d73066997d7aef0749f0103f2a183a61b56e23cdb0e1a3cc36da405ffb900dfdfdf404a103dfe62214253c703a4318e4812c62a8f0dccf0c1796e757518ee9a387f25a926c1190603be44984603498b499959e45a6136aff64a0c4319f7cb9610513c083dd385a183acb309683e033ad991f436141cbcf1e00b72bd499ff42474c2e88423ae7d030dc84af936ff2e036b1cba6caf3f80c3e0bc400cd3362e030055d3399295d373c17713b616865160030d66c3a5f04c876ad1f21cd35878f78bad1ce0f47f31c0e3ea4584aa6ef1084b0219ffff0396f333f917614f4bc1367200e6761cff1fda7b04652796b82d29082e434c9fc703c9c4b9c9caa6a9d84636744656334e1b4ef615b4239bf43fcf3a7c53db6e390203502411d35b5478a9da69059c4341ae0e0328665ddbb90cdcb863d955ae8b7d40039ffdac0ccdd841f97cec4ac36a7afb642230acc74ddb0707fe51391fed5c03da03b2e6adedeb74f03aea984af606daeb172c535e43069d1b1fd3a63ffb93eef58b03bad9ccac4fb6c1be1b6fd938cda11e449164d7c653ebc2c0bcd3e7a0ee7b487703864b3247dd7229d1953ad0f9e4ec13a3037a6a8673de145e07d609b46ec2fcf8030ecfd9af5faa8357887ee1349c9721bcfced960b8adc9c1fb10d1b308ea68c700322aa329900df3ce763f6551d70e102b3bcab566ec8530abbc4439652741f8d5503d5b530161f2b0517055c930686f77c8af90dc8d3b62325ac92720f629c1d21c70305137b50e1b0ed75711aa66e143046024cf23a173d287d24bfce2ccae9a97ad2039f39a9fd0b40f173c8c200edb812d8133d0bd23d3e9774115afd04574d5b59ca03acf917ce1dbca0be40b1fa8788817934b41408b617dcd13d47c7835f639f3905031cccf596ac9158b10f1732d4ef3b72b3a85b1546f4265af90006d32b037f83fb0219ffff03105a7e1507632a8c0dea37d33f54c5a51c3a24f076d0209d2779fcdbac3682af034bc8b618fe441c73655d24f4ba9b70ad37b37986bc273055ca1bf9c1dc1efb5d034ac4d2e5bcc56c6a0e2d654548d47ce732793143754a36b7a665d61f65243b22038cc33313364390a6453d5757e7d1d2cd57342890494f156a894d1fb2187c8e920313d882d2765149ebc4ce4cc87de33be239af3d873db85864725d1ecb11ad962e03268d75d732b472af5405966e3c1ad3fd9ccf9a42bf9bcb6cfac95c00a019fcee03afd8ce3005157ce73cf9e95e39672ea3236b1820931a205d7091a2e60af0fcdf0219ffff03c6292e9e673dea2a355e9d1f00d447b3f5e6232dce1c17740c3ad0e82334e9d303c6b87d020e0baf6c0968745fd743ebbabea52cb0428fcf289bac225ee9d172d903c63f2e3e75e61e7b21d9b54a244f0ff0d82d783ac5c6b606141db4f93b3d48e2039ca419a000320d35e5c2524447ec43b1aa22c12139490c32ab4fe563080676cb031239e06e205de7c0ec7ed41227df017c78eb5ded208af3e6d2ed4acd6681239503aa8ef8376034e08ce9e02a49063e6f574f888102c7cb41a574aac25b9c6dd9670339a7f28c9452c4d8321edc924d228753bd9338cd1a468d61a04838e739629562037529a541e4449d5f6f97ef66859d2d67d4042e748e421a22095d4d1c0773ac9b03576e38b63409f3b19f748ce5b57c6f9f7457ab1ef9bfb7adcfc7d1c8e42747200343556d7669f09d282c21cddc12504e2c22b52831469199a29d51ca061cc4f0b7036e583cecd015fe8c65b6f8a4b69bfd1ce4eb74df9b7d06842794347d3895d6d90311143210f8268d7bc9d303f8bc354727391f4a5848f08daccbe105fd0356f5ff034ef0e04abd2e98b5244e227b4c29129fb361cb68731a14726b20e5c0c058dc1d03ca91f81cfc541af290b8950ecaf8231a99d5734b6189f9df0134f984bb4e75cd0337ac1874e8636c512a4e8ad5bf8b21a9393574e00255ea857b37aaf89a6849260377cf887b1b26f376e2c723222e7f4b757a95e74bc4997a9a8072166343290e9303df60c475d7c65f56277a489850926c77dd2260421ef37d71b55b5868bf52c5c603dcac3313a418ace952e9886fa4bf61d13b42e3f18d1042bb235a2ba59b810e260360400651b8f79b1f433f41231ca831269054052e9e67749643d2d3868b1fde4e036ba4158b3af1e285490d852dd5f1ed747c26cc7015643ebf704439cf70e6b68f036a2c2f6569dbb7118f4186cea77b1c172208b6073f3a9a003561f83940c2d08f030894406c79997253729c2b34f423edda475e6062e59d05902724b803a4956e6603a07da1b33bf9ba32d3694afc287030b494d6d10853b144d7d77b39c0655b771503d2e634a58db653043111fd2de1a3a7c0f94c04a2b21eabe7251b853208b25a06039a9cc6c29bab443e2fa777f56bd8dc3857c5f27cd2e21b1ded5017d7f8ad342a036928bd40d97fa51c83b0924afe6559f07981b77bfa176cf65227037ac07e4ef805581e032b977359b9baf59a0eb9de776f560a8531cd6a74519bdce7c0d739ca200c014640ac3ce20d0005581e03862ab908d2c067e307eba4a8b9454406b0dc48275eb089de7aa7ee82600847217e32984b7c00031659de68e6a279da28599e113109376d848bf72a54b56d945750294b8c97e773030657e508cc6d404d8cc89513d451fab06b3288013a5753906560d9cbed22571f05581e03d0dd70d8a135329b26cae2ea850ae6135b5af9bf5304a661a94ed8c96007011bffffffffffffffff03cbeaa5930556d9e2a2e9687849cf7cc4b8eee475215859ebfdf04553a745407a05581e03c15d96459ce01349d108ab50ea896b62a732ee738ce551f4957ade8d100c02461ab304ccd18003a4f3046fdede8bc83dfa23cfdb14af30ae0970a992e77a5da5c739a2f953cc5305581e033c7619fc6b7cff52c4814878c3a772d1d6e775d23a583358714f60df300402034f5a5f6706dc853cb3ae2279729e0d7e24dda128a77358144e4c0fd3e5d60e980605581e039d0e759d7024053ac1849e7222b40137e3e63f295247b75b1e656b3cd007011bffffffffffffffff0459391a6080604052600436106101f25760003560e01c80634fbee1931161010d57806395d89b41116100a0578063d01dc84b1161006f578063d01dc84b146106b4578063d5aed6bf146106dd578063dd62ed3e14610706578063f2fde38b14610743578063f8b45b051461076c576101f9565b806395d89b41146105f8578063a9059cbb14610623578063b1d0b72514610660578063c02466681461068b576101f9565b8063715018a6116100dc578063715018a6146105765780638a8c523c1461058d5780638da5cb5b146105a457806393b1c69c146105cf576101f9565b80634fbee193146104ba57806365cffb1e146104f75780636ac5eeee1461052257806370a0823114610539576101f9565b80632598cdb2116101855780633415650e116101545780633415650e1461041057806336a0f8a51461043b578063399e4bfb14610464578063470624021461048f576101f9565b80632598cdb214610366578063277a2205146103915780632b14ca56146103ba578063313ce567146103e5576101f9565b806311704f52116101c157806311704f52146102a857806313114a9d146102d357806318160ddd146102fe57806323b872dd14610329576101f9565b80630106aaef146101fe57806302bf2a5c1461021557806306fdde0314610240578063095ea7b31461026b576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610797565b005b34801561022157600080fd5b5061022a61088a565b604051610237919061270c565b60405180910390f35b34801561024c57600080fd5b50610255610890565b60405161026291906127c0565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612871565b610922565b60405161029f91906128cc565b60405180910390f35b3480156102b457600080fd5b506102bd610945565b6040516102ca91906128cc565b60405180910390f35b3480156102df57600080fd5b506102e8610958565b6040516102f5919061270c565b60405180910390f35b34801561030a57600080fd5b5061031361095e565b604051610320919061270c565b60405180910390f35b34801561033557600080fd5b50610350600480360381019061034b91906128e7565b610968565b60405161035d91906128cc565b60405180910390f35b34801561037257600080fd5b5061037b610997565b6040516103889190612949565b60405180910390f35b34801561039d57600080fd5b506103b860048036038101906103b39190612964565b6109bd565b005b3480156103c657600080fd5b506103cf610a64565b6040516103dc919061270c565b60405180910390f35b3480156103f157600080fd5b506103fa610a6a565b60405161040791906129ad565b60405180910390f35b34801561041c57600080fd5b50610425610a73565b60405161043291906128cc565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d91906129c8565b610a86565b005b34801561047057600080fd5b50610479610b76565b604051610486919061270c565b60405180910390f35b34801561049b57600080fd5b506104a4610b7c565b6040516104b1919061270c565b60405180910390f35b3480156104c657600080fd5b506104e160048036038101906104dc9190612a1b565b610b82565b6040516104ee91906128cc565b60405180910390f35b34801561050357600080fd5b5061050c610bd8565b60405161051991906128cc565b60405180910390f35b34801561052e57600080fd5b50610537610beb565b005b34801561054557600080fd5b50610560600480360381019061055b9190612a1b565b610c86565b60405161056d919061270c565b60405180910390f35b34801561058257600080fd5b5061058b610cce565b005b34801561059957600080fd5b506105a2610d56565b005b3480156105b057600080fd5b506105b9610def565b6040516105c69190612949565b60405180910390f35b3480156105db57600080fd5b506105f660048036038101906105f19190612a48565b610e19565b005b34801561060457600080fd5b5061060d610ef8565b60405161061a91906127c0565b60405180910390f35b34801561062f57600080fd5b5061064a60048036038101906106459190612871565b610f8a565b60405161065791906128cc565b60405180910390f35b34801561066c57600080fd5b50610675610fad565b60405161068291906128cc565b60405180910390f35b34801561069757600080fd5b506106b260048036038101906106ad9190612ab4565b610fc0565b005b3480156106c057600080fd5b506106db60048036038101906106d69190612a1b565b611097565b005b3480156106e957600080fd5b5061070460048036038101906106ff9190612a1b565b611157565b005b34801561071257600080fd5b5061072d60048036038101906107289190612af4565b6112c7565b60405161073a919061270c565b60405180910390f35b34801561074f57600080fd5b5061076a60048036038101906107659190612a1b565b61134e565b005b34801561077857600080fd5b50610781611445565b60405161078e919061270c565b60405180910390f35b61079f61144b565b73ffffffffffffffffffffffffffffffffffffffff166107bd610def565b73ffffffffffffffffffffffffffffffffffffffff1614610813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080a90612b80565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c81905550565b600a5481565b60606003805461089f90612bcf565b80601f01602080910402602001604051908101604052809291908181526020018280546108cb90612bcf565b80156109185780601f106108ed57610100808354040283529160200191610918565b820191906000526020600020905b8154815290600101906020018083116108fb57829003601f168201915b5050505050905090565b60008061092d61144b565b905061093a818585611453565b600191505092915050565b600d60019054906101000a900460ff1681565b60135481565b6000600254905090565b60008061097361144b565b905061098085828561161c565b61098b8585856116a8565b60019150509392505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109c561144b565b73ffffffffffffffffffffffffffffffffffffffff166109e3610def565b73ffffffffffffffffffffffffffffffffffffffff1614610a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3090612b80565b60405180910390fd5b6305f5e10081610a4761095e565b610a519190612c2f565b610a5b9190612cb8565b60098190555050565b60115481565b60006012905090565b601260009054906101000a900460ff1681565b610a8e61144b565b73ffffffffffffffffffffffffffffffffffffffff16610aac610def565b73ffffffffffffffffffffffffffffffffffffffff1614610b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af990612b80565b60405180910390fd5b610b0a610a6a565b600a610b169190612e1c565b83610b219190612c2f565b600a81905550610b2f610a6a565b600a610b3b9190612e1c565b82610b469190612c2f565b600b81905550610b54610a6a565b600a610b609190612e1c565b81610b6b9190612c2f565b600c81905550505050565b600b5481565b60105481565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d60009054906101000a900460ff1681565b6000610bf630610c86565b905060008103610c065750610c84565b610c11600f54612161565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c79573d6000803e3d6000fd5b506000600f81905550505b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cd661144b565b73ffffffffffffffffffffffffffffffffffffffff16610cf4610def565b73ffffffffffffffffffffffffffffffffffffffff1614610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4190612b80565b60405180910390fd5b610d5460006123ad565b565b610d5e61144b565b73ffffffffffffffffffffffffffffffffffffffff16610d7c610def565b73ffffffffffffffffffffffffffffffffffffffff1614610dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc990612b80565b60405180910390fd5b6001600d60016101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e2161144b565b73ffffffffffffffffffffffffffffffffffffffff16610e3f610def565b73ffffffffffffffffffffffffffffffffffffffff1614610e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8c90612b80565b60405180910390fd5b60638211158015610ea7575060638111155b610ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edd90612eb3565b60405180910390fd5b81601081905550806011819055505050565b606060048054610f0790612bcf565b80601f0160208091040260200160405190810160405280929190818152602001828054610f3390612bcf565b8015610f805780601f10610f5557610100808354040283529160200191610f80565b820191906000526020600020905b815481529060010190602001808311610f6357829003601f168201915b5050505050905090565b600080610f9561144b565b9050610fa28185856116a8565b600191505092915050565b601260019054906101000a900460ff1681565b610fc861144b565b73ffffffffffffffffffffffffffffffffffffffff16610fe6610def565b73ffffffffffffffffffffffffffffffffffffffff161461103c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103390612b80565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61109f61144b565b73ffffffffffffffffffffffffffffffffffffffff166110bd610def565b73ffffffffffffffffffffffffffffffffffffffff1614611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a90612b80565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61115f61144b565b73ffffffffffffffffffffffffffffffffffffffff1661117d610def565b73ffffffffffffffffffffffffffffffffffffffff16146111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca90612b80565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61135661144b565b73ffffffffffffffffffffffffffffffffffffffff16611374610def565b73ffffffffffffffffffffffffffffffffffffffff16146113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c190612b80565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090612f45565b60405180910390fd5b611442816123ad565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b990612fd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152890613069565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161160f919061270c565b60405180910390a3505050565b600061162884846112c7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116a25781811015611694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168b906130d5565b60405180910390fd5b6116a18484848403611453565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e90613167565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d906131f9565b60405180910390fd5b6000810361179f5761179a83836000612473565b61215c565b6117a7610def565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561181557506117e5610def565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561184e5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611888575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118a15750600760149054906101000a900460ff16155b15611c8457600d60019054906101000a900460ff1661199b57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061195b5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61199a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119919061328b565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a3e5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ae557600a54811115611a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7f90613343565b60405180910390fd5b600c54611a9483610c86565b82611a9f9190613363565b1115611ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad790613405565b60405180910390fd5b611c83565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b885750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bd757600b54811115611bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc9906134bd565b60405180910390fd5b611c82565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611c8157600c54611c3483610c86565b82611c3f9190613363565b1115611c80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7790613405565b60405180910390fd5b5b5b5b5b6000600954611c9230610c86565b10159050808015611cb05750600760149054906101000a900460ff16155b8015611d065750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d5c5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db25750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611df6576001600760146101000a81548160ff021916908315150217905550611dda610beb565b6000600760146101000a81548160ff0219169083151502179055505b6000600760149054906101000a900460ff16159050600d60009054906101000a900460ff1680611e6f5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ec35750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f6e5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f6d5750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b15611f7857600090505b6000811561214d576000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361203057601260019054906101000a900460ff16612026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201d90613529565b60405180910390fd5b60115490506120db565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16036120da57601260009054906101000a900460ff166120d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cb90613595565b60405180910390fd5b60105490505b5b606481866120e99190612c2f565b6120f39190612cb8565b9150601354600e54836121069190612c2f565b6121109190612cb8565b600f60008282546121219190613363565b92505081905550600082111561213d5761213c873084612473565b5b818561214991906135b5565b9450505b612158868686612473565b5050505b505050565b600081146123aa576000600267ffffffffffffffff811115612186576121856135e9565b5b6040519080825280602002602001820160405280156121b45781602001602082028036833780820191505090505b50905030816000815181106121cc576121cb613618565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612273573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612297919061365c565b816001815181106122ab576122aa613618565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061231230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611453565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161237695949392919061378c565b600060405180830381600087803b15801561239057600080fd5b505af11580156123a4573d6000803e3d6000fd5b50505050505b50565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d990613832565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612551576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612548906131f9565b60405180910390fd5b61255c8383836126e9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156125e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d9906138c4565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126d0919061270c565b60405180910390a36126e38484846126ee565b50505050565b505050565b505050565b6000819050919050565b612706816126f3565b82525050565b600060208201905061272160008301846126fd565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612761578082015181840152602081019050612746565b83811115612770576000848401525b50505050565b6000601f19601f8301169050919050565b600061279282612727565b61279c8185612732565b93506127ac818560208601612743565b6127b581612776565b840191505092915050565b600060208201905081810360008301526127da8184612787565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612812826127e7565b9050919050565b61282281612807565b811461282d57600080fd5b50565b60008135905061283f81612819565b92915050565b61284e816126f3565b811461285957600080fd5b50565b60008135905061286b81612845565b92915050565b60008060408385031215612888576128876127e2565b5b600061289685828601612830565b92505060206128a78582860161285c565b9150509250929050565b60008115159050919050565b6128c6816128b1565b82525050565b60006020820190506128e160008301846128bd565b92915050565b600080600060608486031215612900576128ff6127e2565b5b600061290e86828701612830565b935050602061291f86828701612830565b92505060406129308682870161285c565b9150509250925092565b61294381612807565b82525050565b600060208201905061295e600083018461293a565b92915050565b60006020828403121561297a576129796127e2565b5b60006129888482850161285c565b91505092915050565b600060ff82169050919050565b6129a781612991565b82525050565b60006020820190506129c2600083018461299e565b92915050565b6000806000606084860312156129e1576129e06127e2565b5b60006129ef8682870161285c565b9350506020612a008682870161285c565b9250506040612a118682870161285c565b9150509250925092565b600060208284031215612a3157612a306127e2565b5b6000612a3f84828501612830565b91505092915050565b60008060408385031215612a5f57612a5e6127e2565b5b6000612a6d8582860161285c565b9250506020612a7e8582860161285c565b9150509250929050565b612a91816128b1565b8114612a9c57600080fd5b50565b600081359050612aae81612a88565b92915050565b60008060408385031215612acb57612aca6127e2565b5b6000612ad985828601612830565b9250506020612aea85828601612a9f565b9150509250929050565b60008060408385031215612b0b57612b0a6127e2565b5b6000612b1985828601612830565b9250506020612b2a85828601612830565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b6a602083612732565b9150612b7582612b34565b602082019050919050565b60006020820190508181036000830152612b9981612b5d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612be757607f821691505b602082108103612bfa57612bf9612ba0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c3a826126f3565b9150612c45836126f3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c7e57612c7d612c00565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612cc3826126f3565b9150612cce836126f3565b925082612cde57612cdd612c89565b5b828204905092915050565b60008160011c9050919050565b6000808291508390505b6001851115612d4057808604811115612d1c57612d1b612c00565b5b6001851615612d2b5780820291505b8081029050612d3985612ce9565b9450612d00565b94509492505050565b600082612d595760019050612e15565b81612d675760009050612e15565b8160018114612d7d5760028114612d8757612db6565b6001915050612e15565b60ff841115612d9957612d98612c00565b5b8360020a915084821115612db057612daf612c00565b5b50612e15565b5060208310610133831016604e8410600b8410161715612deb5782820a905083811115612de657612de5612c00565b5b612e15565b612df88484846001612cf6565b92509050818404811115612e0f57612e0e612c00565b5b81810290505b9392505050565b6000612e27826126f3565b9150612e3283612991565b9250612e5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d49565b905092915050565b7f546f6f206d756368206665650000000000000000000000000000000000000000600082015250565b6000612e9d600c83612732565b9150612ea882612e67565b602082019050919050565b60006020820190508181036000830152612ecc81612e90565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f2f602683612732565b9150612f3a82612ed3565b604082019050919050565b60006020820190508181036000830152612f5e81612f22565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612fc1602483612732565b9150612fcc82612f65565b604082019050919050565b60006020820190508181036000830152612ff081612fb4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613053602283612732565b915061305e82612ff7565b604082019050919050565b6000602082019050818103600083015261308281613046565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006130bf601d83612732565b91506130ca82613089565b602082019050919050565b600060208201905081810360008301526130ee816130b2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613151602583612732565b915061315c826130f5565b604082019050919050565b6000602082019050818103600083015261318081613144565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131e3602383612732565b91506131ee82613187565b604082019050919050565b60006020820190508181036000830152613212816131d6565b9050919050565b7f5f7472616e736665723a3a2054726164696e67206973206e6f7420616374697660008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613275602283612732565b915061328082613219565b604082019050919050565b600060208201905081810360008301526132a481613268565b9050919050565b7f5f7472616e736665723a3a20427579207472616e7366657220616d6f756e742060008201527f6578636565647320746865206d61785472616e73616374696f6e416d6f756e7460208201527f2e00000000000000000000000000000000000000000000000000000000000000604082015250565b600061332d604183612732565b9150613338826132ab565b606082019050919050565b6000602082019050818103600083015261335c81613320565b9050919050565b600061336e826126f3565b9150613379836126f3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133ae576133ad612c00565b5b828201905092915050565b7f5f7472616e736665723a3a204d61782077616c6c657420657863656564656400600082015250565b60006133ef601f83612732565b91506133fa826133b9565b602082019050919050565b6000602082019050818103600083015261341e816133e2565b9050919050565b7f5f7472616e736665723a3a2053656c6c207472616e7366657220616d6f756e7460008201527f206578636565647320746865206d61785472616e73616374696f6e416d6f756e60208201527f742e000000000000000000000000000000000000000000000000000000000000604082015250565b60006134a7604283612732565b91506134b282613425565b606082019050919050565b600060208201905081810360008301526134d68161349a565b9050919050565b7f53656c6c2073746174757320697320636c6f7365640000000000000000000000600082015250565b6000613513601583612732565b915061351e826134dd565b602082019050919050565b6000602082019050818103600083015261354281613506565b9050919050565b7f4275792073746174757320697320636c6f736564000000000000000000000000600082015250565b600061357f601483612732565b915061358a82613549565b602082019050919050565b600060208201905081810360008301526135ae81613572565b9050919050565b60006135c0826126f3565b91506135cb836126f3565b9250828210156135de576135dd612c00565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061365681612819565b92915050565b600060208284031215613672576136716127e2565b5b600061368084828501613647565b91505092915050565b6000819050919050565b6000819050919050565b60006136b86136b36136ae84613689565b613693565b6126f3565b9050919050565b6136c88161369d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61370381612807565b82525050565b600061371583836136fa565b60208301905092915050565b6000602082019050919050565b6000613739826136ce565b61374381856136d9565b935061374e836136ea565b8060005b8381101561377f5781516137668882613709565b975061377183613721565b925050600181019050613752565b5085935050505092915050565b600060a0820190506137a160008301886126fd565b6137ae60208301876136bf565b81810360408301526137c0818661372e565b90506137cf606083018561293a565b6137dc60808301846126fd565b9695505050505050565b7f45524332303a20612066726f6d20746865207a65726f20616464726573730000600082015250565b600061381c601e83612732565b9150613827826137e6565b602082019050919050565b6000602082019050818103600083015261384b8161380f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006138ae602683612732565b91506138b982613852565b604082019050919050565b600060208201905081810360008301526138dd816138a1565b905091905056fea264697066735822122092cc682529e3e91e4fe43e35fd3f094e69591e0a7fe17bea4d72ada5b4bf6c5464736f6c634300080d0033030dfb5cc78340bb46956ae8c69544b66db8637edef82199be9f8c6eaa3d3b4d5203f8c1df767094e74906affaf7ce49feab6d8264fa8226f8d9f1970dfc7472282a036a02c66a181d8b3ffc4b9eedff4f2464e32832c9fdc1971c2ec81140a02db13500582003e185811a2dd1cf81f6ca33673c46c0517e0033a4fc0bf6643459ad8f9cb8505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200364ee70cca628d222d95828108dbf93f139c06626ab5e205f228652c3dcdec0496b1e658a40be552f4a005820038d4d96d5e9abe3782f678a1c05ca9eac5b55ac19de12960ca863a0465e0400433f28a90399a5d38cd10ce1f0051f4786860357e9bfbff98a01da28ff954066fc0d79dc7e03a21af89d6184799751d52ce53129c89ab4b3fd3de78236ed3831f949b2ab82a900581f0212fa3df37a0d2fbfd03dabc735b2d6abc855943a9f07e155a62663e61d754a01366e8ba0f4f1eef36a00581f026384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db054d47b03b1478b950f65e45af1a0bf6dabda8a7e420219080403d2866727d2b42ac419109cbd875011247432bc23760f3f55ef4349b0598dd14801410a00582003de5d720217f198c1ca5ee27497a4b473f98ad4d0a857450c1377c221598b404a0bada9a0b0925320e1ad03fedff9efb5c577edf4b942b229d6c74cc98a5ba5236afad68d27df69d3206db00385cfa26b2ba04a7379e91e686b15205545dfc005795a815546f399213d16d070039302c9cd8cbbd01ba6f26c9aa8c7ce980605e8d246accb698b6e09a16d046f58030cc1e91b965f4f6f3444a69dad4bfa8cd0d872250ccd5a98d3fb2ce564a30638035f22bba82a60321e73c31854d4d1608d954fadddaabf05bf053c4a26605fa2580058200381a1286581a43d0c7c921fe0784c0209dfe6f4cbd65d6f77c12aeccd00ecb0494686f8b92895c1c9a10219eff70348f7d993ceee4cd6953b498bdc2fbd254dac83a9d3be60ce5a0447bc6df5242f03979a620018056123eea100690cbf64f35ec29b821c791282afbea5492797875403751516fcba7a745a29e494869240c9bc2e4d970f2417f380f4413156ce5bb4e80393b25a400836841b46415e1516081669615b99d18cbb832f0d217a3ef6729fa403834f479c2d71eb7202e3cfd048658c0c318f3fb4fca6cc368c126bacf256e238036b38989364982f18327c788f7e34954aec7a7d27fc1fb9af1b47d93f06833f780357669d2da9f866ea6886c4949519cc860a817a43f98cfcc0b35a17ee84569c0903e6f4a33dc67b5dc1605a9255d79de71aba41ce5bd51d587e016894b2b113d6d4033be1207abb6a72667dcea46efba83dcef57715ae57dbbfcff5855b9415e834d003b21a7f3e7ca2095c19410280f812b34a01a72dcca79f1d451617f7b0ba4a357103ff05171ef7c04bb8fc0afa9a2f680b112065536872ac1ece4dc4d180860cc75a03d16b9c919966ddfc0ee70d305b108b837ba3001b7bbe77bbe7722aa5f54033f10219ffff035766e08a5bf437ab67880dbe94de5d901ef0e8d54a34f7ee5446f9cf60bf47cd0364ef61b77e033607d2bdca8268f5800718f845d19d689a9a520966da54ccdeb00318890765b73541833c4c4d2f78b2bc974621ad8c365b344bca3e5330eaf3716203d8ada72fdfb7edfe65ee18f05daaa253583c44d32ac4d15464bda054ca73c90f0395403c24628ef719901d0401bc5bcbc926d09768da7180e07cf7d557a0e16a5603cb644e444531f9ec1d7b8b816178302a48e94ada4949d8646d31db56c28f6f4e039bda97a081d996479a4706b14f8dbdbe6ac7e987c68f1868d0355d5a2b043aec03d06ff00085a740e314d33fa44028f1d80ecd26a0e398535187b065ca0f615cea03d89b631174ce9f3472529f2230b609c7f8e5d5292908dca0fa14563b1b58b12d039075f8d541d27fb7e4c8a33a58442c7e82801d84f052ba413ab078fb021e5ecd0357006bad465a916f2f69e560637f5d4633912cdbf1f24278a6fd9451d91d957b03dd627022ad01dca01e084997323afa40006495f71bc4b1f87c9f10e17d0991a0035a2a4eae690678b77dc0c58bef0bd45f72cf2a6f5b5b0b28d00145ec002e23c2034f949c1355136ac8b4881c68bf8d1c0d0bce4c50122ecf8d9b9f268be2e7646903783fc08a4f465d14cc11082a5b85b0927dda68b792ee873d6385fa6313cb8241005820038575d03a2fa19b8d35982444ec667f78b05a0db9c6f39833171db07446ee504a0abe77aa86e7fbf7c89d03bbf7cb957caf19b52af3f0a8aa6d8dd28dd673ffc846dbc6484dd7f7899665fe0393bc19fb136ea5be023bb0d568b2b2b03f7897ed766c9e83a37216557549316800582003a7f8aec5ef27a6afa586a42617eec79522f0153fb45ad25f0a5eac8ab361a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03e500f7a5a714140aa82c65640907e4a519fbd926ce08396a9a429d83838634cc0384b93288e15d67d27bd7903b9e9724619238350191e51b7e61ff48e38e5865f2038997eb50eadbe71b99921ce27d43d6240ea8dd02d84d1541ee35be9ee39792370390eae7cbe414012ba94fa751767556a926d2aa73b7b398178dfadd36870a74f2030d8ca5beffdaee1fb48507fe3fa95013e6b2d1e7ca7a620413b01510632e82960219ff8f034b749d31018cbb647f6681e7778e644818c7bc122e1f44e8ba05fbace840be7a03f3ee3c3175e44f07be8b247a43b9f523d3b64e06f3e45753c39b32d1ed2552ae030b3b0b28929f01644b5733b25c7b71f977781a3fdeb65a8a2fcc2d76b7960a9f035833cfa1bf3f16f6e26d358eabf4ed9267a9660a5ab55a5117bc99fd30a91e540219ffff038f9a8bb577e2cfc547dd8ec96ade066c546b4b4f15bda9d288abd65a52c24efc031e81ed326f14aa8be625fe78232916741afbaafe5bc21d061e3234a1983646c903f70e0fe981ced0449fa9922424150a16511ad16edced0386f159aac31c64595d03e253b7034997ad828f8e9f43f321eb9050476f45d3270c9903b638e6c721695900581f0266eab431db0fc8bade7f3537907be2fca22e32b38b990f7c16fb27c653784a029f43bd0c740d9bcf8700581f02e9b592d5d40eca2f076c5d7c401392f092b4cb5c5d3ec9b84a9d6f226d444b017293be8a9d538124000000581f020d974864e072da8bebb35aa8dacbdfe78fbda0904e879cdfc6322c257d285820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219140103f16865314a8b7f1ddb13dbae1ecf27679df47294d31ef908dcaf482bda63e423005820037097e25b46a5c309b8fe23c1c167f112dedbed68ef8ffc115acc54e8e429e04a08788e7a0320141388e503232a1d7a3a0f5c7810e9df8e8f40df055d6822752786bd0c19073cc0a2fc272303cb77805c916b10c3e5e25b5942a425a6c9caa2c5cdee61718d27927813aacf1700582003e02395fbe32f022eee2b33d9fd792eec2bb2b7327dd1fbf4f568f1c4b012c048170fdf7bf393ad700316ec6f02e9f90840f8d774368aa7b6b2c68b8241c1415e5ce8d75feca654a019034a95b58df0666b2ea610a544de248fef78f7891a151218290e8d7be5dc27a9c903e41d838e3b3625377204835f6e905dfdfabf390fe5ad2aef52ad392e71455e0600582003aa1399871e2fb5ca4d996c50ceadf9145f11012e335392b192bc14367e0af05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03a2cc5bbfb9226ba65c1a0397ce81692f0fd113f27438f0beda0d4a1489431ea803b05e8ff1276f87a5deedbcd9e734d2340ad7dec643020a406f0c718e6e98b48600582003793472e6363b34e4909fb266669ac92dd940f21c6d0b1caa03fb0f120891405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219fdbd034d4530f1f584ca18445d00d25cf5f4713b10d1ca7f25204706417ab2149677f103bc8a6082550c8aadb30cd94f0f3d64713c54deb7a3f03fe9511e4e160ec28f5b0372a13c8f827de2eda722e2a839817986eb890d9e9d388f0e375088d02c32093d030d962008aae071ca6a8b32a0076ff8bd34bf26c0a03a1b664a51a6972a9d6cb600581f0253b18a77aa712c4a94458a03f9e37e566107b5ddd94c147810d2a3ee29d74a0113ecc51cfe06db65cc03e09c4111f313677de2ffa1f223e92d3d739c0d5a546b859126cac55746489ad702181803b284de28a6a56274d0748d28a686d4b0c512ea0004a6cb824baba97f430f550c036f2bc78d6ae6e471aabeb70463e93a6dfbd10b33ed34db8afa41c2fce13c2954038c3dba19a42b1fc4b991e51b43a81da00ed2920dcfce3db76865cc670d99b09403e4f1277a4bbf40065d07b5248d8ff9e3dde7c5020721a16e7eb96cc6eb8bf861038bc20cbb6f6fc62968919bbcfe5bb6f9a1db3bd65a2a88edcd48d421fd58b4cd005820033d12f687f8c4646b35202c0985b5e0df283d9affab4be678387ac41594a6704979c2af43333c55bc28035693f317b2686ed71a02e32260fb0c032d951ba526a929575a8736cd83f59761035924d28bf69ad32f4df9603abe834a2c5eb45d31e8cf4470951c861ebefbe16203f721e86565ec9b361fea6bf302b1c9b064995f4554f48c7d4f76f7d18e5216df005820030e584c2245f0c8fd7e68e8435fb2f8278484c8f7f6542884dce091bb0761104a02194ed87dbead8f749000582003871f777c8eb8c2cd9ac0a2f46196408775c2fb237d53d0a6ce98dfb9998c304a017b8564714b86d5aede00582003b2c88ddf09506101da6bb460e61893b79aefa1dfe4b762aa3eefffd12282c04b084297c5e7d9ef9b46d0a20375e439913892f20c5b280208ae5bc7bf7af9ba15c6329cebfb0b3909d8ef7ea60219ffff033accc80e178ae2daa95e603a2a13c78ced353bd847bbd21688fb87f63902833f03a0210d5dd911b8e334cadf0e58c89bd87e30dd019687d35212cc23b13a2ee1f203aaaf4f430bbaa3045b4cb92cf67629f5b43ae114ffc4126681ad9d73b81a7ba403aca4f95c6ad18504fdbfe9e6619ec276ec88453a92af5dd88fb672394921e50b03db9fd72d062c7371b06b138a7bb0248345b7e01c732499b45cf2917f58c0ede303a5ea07d3b837b7ca866a297be8e8956bf3c604ccddb0bf4b4bb5f9833c6f0566032d4a2330bfc556ed3818ce2bde0ad299645469aa45a276798a25b34b79934303030c7c44aefc15a84b6c23409ecfa693047418942c1c49dd1f57910a01320750580219ffff0375e8d61a49416b2593f21cce954aa4f14f89b864c54769184582648254dfe14103470a0707beb45333b1caa1c47eae5203324dfc804e2315e58eed1ae616f7e48f0324ae6d444d36e081bbe481152f30f9e38bf9ff8e6ea543abd647933c1dac536303afa2439a680701baa96d24ab9c8537eda2e385de6a7564cada66f86cba76bd73005820030b50ebd36c55ca8c04a355f595a7bfa8ed72c0bf8cd928bdf1f55c3d3162504a2c41e9a6de8ac0a00000039597095af812f7256b4cdd2f116d27f0659d86a463e05babdd55f27250c1d69000582003b0cfed7f042a615c8129acb8dabc46a4d749b5eb09f0af461f52f05c44af105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0385a9512d027f8a3b9be78778ed4619af25c6bd181b92176a8ff536c75224cc4200582003d39ec5f5ab1aff23fd1775a8ab7d60ec3891cdad5456011045ccaddd5742704a03dccad98056950046fe03d1e7e941295a2e08b17c19a3b6e1ec526ad59bcee2535cc2b6068c645eaf712d03819e7dd753c3be278f7bd5e940259cc88df7204cf725d319773f754d7a9a4234037932b22d07a24ad2c16dd7d18cd5a8e0f9ec818ad9725dddd37d1f9e03eec35a00582003cab51a55f218c03d645cc2dd79dd408c1ac97c138f92e65c9cda17ca13d3104101033d6686fc6740e0f63ff74864fea699997e4e49886e46b2943e199316030ef23d00581f02e0bc99e84c42ae9563e67c2559c098f5e0731008b7c7b8ce647c8b480fe55820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f029589be7ef9bb1a036660463fdfa2aa7993bb77885320acb84c4b46fa56ea5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02ab7a633480ae83269f7c9273650191bec114f2b1e91f23bec9950ba954394a013fc81293be86a6399100581f020c553f7a32408a02bc7a59763460db410150b9d6a10f8708fafd930f76bc4a03b456eed6dc5317efe10219e10000582003a932665bfade5737d467997b5098e440a8aaee680937eb0c7ff6eefebed330493855369a4b38621d230219becf0394db550621c963340d2773ce4e974ab036bcfa6e26cf40875c8222742e0c721c0310af2b6c064f3f8ed6d9012b94bdfc5b866c44ab331e0b14ca114a599bfaa5a403c3739139a95a7ed37717ab13f1b93f76877c9f78544b07ce1595c087a49f42570354f5cc024aa6a7beffd884ce2350067ead778fb953952373079ae724b1ff745a033904eb49dcdac389ab4cfa09a35cdb20e63162770cf7351e8fc53eeec0d92a0b0307c6679475553b281b5c20fe6f388b207e7685682f630f8fc16137f21dd703ad03a237fabb05e6b6dc39914e3abcbafcaa48c666f89b1f8d064c9e56ec1e75e7d1037c0c3bb9a9e46c63722e28c15814f109e8799d482d3f76a43e5febc0403af12a03827741a4d0e33ad5eccdd08045aa60078eb94223a1e631269f9427e6d7dd3d8e03d5a5a9772ea7d775aba910f89c574a1b4f8af5da7bf12cb59eaebe5832af1a13036d5c419a0442d4af037c99f20e91e4bab3858e19b84cbbd1959befb53d1187130219ffff03285d0435a93199cab3ffb5e92f2101627da0a1f589fa4da92234d50d4a7aca0203e1c57f3f756207f21ae32b7349bb360231a4b8e1968838f268439d79363357ae03421fa46a8fcf4db8ba30ba5a3ec08d37c6a233cfac48e5a4318e9dd995d1ac0303d7e6d7b7b88d3726a88345f56d216038aeb19f2f38c277db34e1e36528a98ea703cf50542e9bd30015f7aca9ca14f28a85114e0363ff68ad68d146e5ecee466cab032d2123a4534ee07523b9029e7ad65c8a0ec701aacd0aac097870da683e6fa1f9033c8572f55fdd440998db549c8f32638e72df6d6b978ec4027ff13e272e28e2210315959e6fd425200909b2f3a184c34b5404673ef220a0d5a07c7b8ac430e95af10355920ab579d45f6bc8fc0f722ff2c76a60980851b9adf7a3b728e7079c2558900058200302b7697a93817a0ab11f102e577de76c751606209c5cd3cd298e9c77686f704a05c52ff62f80fa7a4528005820030bc7046359344f0823a58c617969c2f9bbad80e14e64a2f5d54295442555004a09125c6e0fce876a068403908e61ed2e88fb416efe9f9a0eb064c5e7c775d13184d93bdeba8663e6ab0dbd00582003fa294e30c12ac211596b8147f4906a7e43a8823fffee0ee12a23737a6c21104a1fb80590be4a0bb8bef5037a07243cb9dc54b6692da6b818bb11d342b56482bd9fa33ae24b7a3468a5ea6903b7515a20daca7fe186151120efbb28d48254e447f09f89c8e632eac05fdc99ff032dcb2f59e4a2a51afaf6ebfd1e4f93c2092e5c4d3af04fda92c96ba91e0a6176005820036827736335e9c6572c182f15e6fa5376017e2103bfb202d2818762d1dc86b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff035ca41483c79f09be6d25e6e6e7bfaed6599d3c334b050d59e9c44923e6167c6103f7fbdfb31411ad4bcc64e087fb5b1e626a750cc2f2ffaf6b37c678f2d2888f2f03dcdada1abe801ded874b70aedde812bd1216515932513c73d51f016d3c41a03e00581f02dc1a3478411008d44acb9beabb59ddb0e9dab13c5c22fa3d8360d5b348494a01d045265a8741c26f9200581f028ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09041010219440002193ffe03fbcbf2f7d693728912d0c19addd782ec5873752f9beaa70497dee302529f67520365d51581a9c2fbd85f5811fd93f59433f45bb19ed7403333271698ed0a210b0f03d9a5dc5a42063f3c7e65ababcb60f27f5ef6f71038b07a0ff04e4abcefb1efcb034da9cfbd75c98e4876f6678fd265162c6f7fdfdfd03fc85cd307ea25d06f8a0303d6e8d5c6ab21cec0178a0dd02a6e818ada840f398671555be8eb6300f8b7556903ff5f93a7b937e24f21b4d56fbf99495eb1528cfe93afc40b7321643f75d7ddb1036e06a813453c42eff142c78c026774fc9ab6b11feefbd69a1cb415051a10e1fe0058200333120b7c8955989c39ba065265ea3346ddb99af5a81ed8cf01e8743b7abf70491c291d7cae53264d1100581f020c5d9407e90304717dd1974a868443331fac0038104d4c95327b5cf2d6ce4a1e7e4171bf4d3a00000000581f02c39aaf1b12963edc6bef5ff36c37fef86a4865f9bc51d4fba71aaee21f034a02dff8aa09aab3820790021860038390521fef45897cf5e7148915b89794022dbe64628896398f651339837305d000582003aed3aff5b92f6b4b64d59e17c6da1e1297b5cca27f01ba4f7d97ed58b1f740496c7567f1d831dcb77803e79293606e2fa9563f1f75e569604692916d1e4eff264919bc91e2ed4fd593a903c8b779d5614c0c25fef0c84b96f407945ba16fe65b0881f619d7d9a1c62ed33000582003b40d55c642cabf8147d328b5a194763bf62d4bbffd9112393e769f844b8f60480d0a60a0fe49b3eb00582003d6fae1bc98c1dfd9feb286d98bcb399d41703f6e81d3dbafca4b1b2885a1c0496f44bdb2675bd037e00058200320c28ca5df6c453b3a05286b2d73bcb78e2da715f96c77c86230372c02d0005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff034eb2e12044ebc70a9866a2449a5fa10c63f315703bba7311247ed07427f6e23f03207fdaf8dca093c60b351941e530dae150b2fd403fb2ce7d01b71d4390d31171033178090bce37c9a590411b5ae0e441f68926d319ca63822380933b13765888b203b8aecbfaa267da2667087ccff4bfe38347b41b03b147e83cca682114c6578c7f03f1983e21e91a32f926e5e0b748bc5596b00f7acea7666b15a89dfc6cd6b90cca0219fefb03aa635cdcb615ac79a2eda7800a7e8ce9a5e316e7e2dc04170f726f052f3e85ff0219ffff035a238fe4a9e56ea7fe480e9e698b4e938e70e2816c4c63602d76328ae187aefe03f24a67b76d65f67451badc7e35c20e2fbc1b9b81f07decf5b9830c44f2ac1dd5039f3ffa172e40782ce23bd012812ca7babece6ac355c8c85f74bceadc0b830cba0311d99246d5d1771ae67eba7e93145b984f5d4dab2b1a64ddebfb656a76cf6a8303f4ba04251d6ab3fb8cfcc8d5544539df51e4db798675b3cbd3c5f95962cbcb5903085dedc6750f621083392a73f01a06b800946e1f63be208bba76c0a7c4e453fb034d87eee6504b7eac867ac9238c8bd846a9e9771c61cf49b34271049c8c6f1d8e03c7eb743cd6ab84cc43589c83abf4271b6c3e794c8d7b10aede2dbba89cf1924103720c835c095066e5ebc52ae232041cb3e7ae6392fbfe2a158cf37ed7cf6a39ae0325ac5337339d5445d955ac00c471e111dbdfb44b6c889ef080211005ddc1064603a15a185aac767ad7d92c4325376c6d704f2a27e31ec2ceabdfa80c2e4257b8a90383ca35ddd4268d4c648047158770a83e9518557d555d4494b74888eeac8914c203e4ead8466109ee3fa15eb97966ef5a40d6fbfebf9bd8a586f57c9bed277dcccd00581f02440ba68f0d949035c9bd1fae9172950f6909c7049bee1cfa27bf5dd61387410100581f0234755939fe2ad5f1e6a753d586aa9c7b34ba7dac2cde753199d589b334e4497ab4e353664920c9c2021890039911f9025b0eba63db327f6c61808b7dc95ae8402cfd63f5fb8dbc42973e06e503e074a011fd93ccb92b6ed27a3815ff5aeba1d795b048fa992138153850a3973603bf7e85e7b610e51a49322c9e71545f5c58d97764d87773d33abfec52a3b41efc03ee0258904e7f96b2cffacc95385d38182daba262601f736979ff9cca8ab66e16005820035409fab04c12e0b41b228cbf3ea5d29e4baccaf9e4d1652b27563280c873c04303f9dc00582003bd5c938e5145c57ea105c2a14386d57c677db330e015ea3f662bae2731e6d04805834b70d1bdff25005820038b66cce7d406a00f9d24ebea0ae26b2f3a474ba7c11d0656d2787cabbe14d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff036b1259e802fe72d3e446e868ba99eb9f19d8a3a317896898716628d8075353a2039c6a0dede7fde470a0a84991e2aac57db6c7c5de0a6bcef16a7e72faf5dd4328038b8c8d1b9966106007df00ae35968a238d7d546084abce0751bd25cfec7c90b703ae17244ff6e6a923805e94f4be1b0c5dc4f934bd0514c2f4ba91d175c0cb9f9b03871f9efde08ebd8be7edea392263bbee37bd29baec23376f80be9582bfe254920219feb7034b1cdd411f6f5b7ae3c171918ea53a20d290a1e43dd1d581deefa678ae594f52038c7966855188ec16010f6d4df8f4525bbbf2c81e4f3cbb2a0985aa464af296310219ffff03694e70927ca32668856f8d9c3a078650de26b472a1ffb38dc9a231e836a99cd103ee18b25e6d3b08b619ea70526757702997c87c64083d18b2ba7272d6f3438a1b03cdd0874c147db3a7003a9d6afa8308f4f8b98491cdcab4147b2c16068efb8cf30388bfdd506638cbe04a93071a10288a6fa76d283f24ce0d591d0e2809374e659b031050cdfc6652306f46eeac66760ae0cecced492eac7db89bf7666974ad952a58035dd6262bd5e32000d86df495519ddc69bcf08bfa55626b2ba07d9d3ec37ea6b403ddb7f30be60d2dcfb9bf0d61896652bded7a4e62c9f1348a93b47cdfd3e3dadf034651b088a66b24319e63f47876c598d68524f3d730f7653d670d44f0c971dd7b0376bb2f744a0f07a7f85248f228d84face07a46be8e253c1e714b9e85a8fccd7e03b6fb42e45de60760835770c6e7362181295dc06fb284cfc0f5c08d67c8892ea903687fe01a7adca0857d6f380366d50006dc52a1ebe0f76990283cfc54fa56874603e90ceae6d6d19e52cf1902bc2051bcc75bb3d015459d91ddd6e5a6e1d440e98703b9eb3bef420a12c5e8ba7e9fdb5ba6c945e0054ddcce2af5a4fe4128f8b367a200581f0208e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80248f97b08c168e8f54700581f0246d0fdd631140a0aa402f29abfa77a8cac2d296228e4aa2cc2867ab15bb74944e3a446899738dbca00581f02b50e7369b61945a810fefb2c534b62b3fa5ec0af976adc8480ea1baf41fc5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02c6bd15c3ea59324f120cf96f6dd5724ece80223dbdecb50ba2edc2248fcd5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021942060328b85b34aeb4b8f92cc4cbe53394524220150cfd8eb478092096720512c4bbe803d87bfcf707967200924db9caddc9327a8d49b69a6d2fc44ac90c58e5db68028503d5e57a1f0a648fc544b7d08e4b02ed69b7c39fe26476badf0ffbc9aeb9cf8ff203b3c2561aeb3fe4410e00dfb31a82e22a8aaf7a4605094b2ac0e385cbef38595703c16984e3e5d400c72adfa39d8a325fa651c70cae0b45b06d341571d239fb2e95032e31515964c94dca22747bddf5365bcec0496cbef8c249e91fe375627a2b9058034721d40dd8d802831cedf5f16f77078ec95ec79d7435795eab02e02f2eaaece000582003dcd3e949e944c1f348cfaccde0867d322266e6ac1ad8e4dcfde8f520dd17805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03cd0dcc178b857d197f84cd82f48bb8723b87e2b4c66e7b06d311305f6ad93332005820039560a33bda5c1bca8452c1b82df0176e8b432d9756a0eec1f793e9854ce4905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219bf7203f969e74f74f58a18a3db844475d6b4fa154a66bd075fcd6e0c80bd32911d83d803b66c3a91c6509dd81f5f8266f62fb7ef9d6f47c79e43814fb5b6a08e62c018420219ffff03c927692d7f50c9c5e4011d5e42910f1efe088b69a5eda68f978662c2e62c9b8a03acae59d17cd959f0264f19b3dfe2c5a2fcc3df52f62f16a0a43efec50d94d2a303c7e5ef333451aca93ab33f1bc716eac925bc0672ab068b2a92fd980178d2df2903417758f2a6d90187752414dbcb4f95b58fdac17a6e4c9ea914241c67433febd803528b39cf48cfe355fa022fc2f591490be7f36a7b806d2de4eb68f347d9e4e62200581f026cbcb5b0f154351a15d3cb51ef1ba5657c3c00ecdecb14c13c6d2a0de71e4b02d9bed5688d335930828500581f02ca3bda6e9ad183ceff0854ad483a63d43053cd698a0a5a79ff22f71581864a4334b209410227464d15021901010058200392261b35e96063bee707ab65ca0d70d6fb1865fffbaffb45d0b258d213a6105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820039d59e85a9e768fdef25b8c9ce3d1842bdc3078d2a11d449b5d9e47c261ef805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820039a1edfa19a25f5448ceb6f6a17cc23b10e8bca73f257435f8369179a8a78704a098c8ea9148f76f4c05f03be51c5aa469bdb30faf10b5ddd6e816ec3dc828f7b835a2c3e57c89fcf1da2be03824757e75bee03283a496a7627882026842d6f20b5d6e79c85c747cee890806c005820039d48ca9ad73af395edea916b95034528b45bff784d61e8b2a14f11b2798e105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03aff038bd362b481cf19bb2ba3d637978716a2a7a95a5dc19636c921538c0888b0305758fccad824a77c77630291ec3dd0a8e63051920eca41b9ea48cc4e9a9ff48038594075a94dab8f8eceb2d3c83c364d74112112b954367534e8318711bb9f14903fecce18973b20020e23cf2d655e5fe94490197912c70f2931248df3ce8ad6df70219fffe0345adb4646347f1953df1f8c87220fba2fabb7f7a90180a374d8cc5b23cc1ef7f031e67df2287afc637f7cc3e3f9fcbb59457054c5e3287cc41f39c181c606a3e7c03e53c188fe2239e959c9108095994bc35a512808bf0b233d934aeb76735f2cdbd03877fa7bc227360d8b48e8669241828546534e4faf1513e80634db9c1b76f871103b2510ede31b27414d52cc6790be3eb0d17840e1ed76d7206082d93afcf0917af0058200346ded7b3edc9397857803405d8cd30c467fe06706f3d283eba9a595c56ba704a014b9b5c7fbd94f584da03dd64f3fcf0b9dfd7d39637b02b5b66cf7031204460d89a90d89952fd0cb5f76603d7d432089524b03fa7d8c162f83be507fb304c845165af90fc5955aa8a225dcc03dc8d42ec6a2e29571151cf3b0bf451be8a3b3f033f15a1e711d0f1a27444d95400582003692428b80a392f673712e2ce2f7676dd0b097d6a86884195c76617f3ce89004a0198e0ff31f1db3b77d103474cc068c33f25899cc01c9a994b9a352271516a9dbdffd9b0f897ebcef46cae00581f02f385397657553596b78ae2490cb59ae9a09669d2b29b17045dfae4e873435820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02c928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688547b8ac38aacd8ebca19b3d423bcbbd4c5815bab49021910200357278e7cf1617f784cb70b86b1a75cc8b6a99b2c69b990495b8cb176759c00b801410c005820039637a1c8e3e058fe1eb29e19395f857fb7edc0b9edca65651f6e8a5b507e50490bb7aa92f5f7f9eecf032231c762cea14131d37d412ed7258245b56915e326a53532ae1a8891a5923faf0058200345a53492dea3d529ddd38eb2d0b487e018813683b32ecdfee09ba1b85407305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03b7c1f6fb40f06abba31343dc74a8066a499a9206598637b468645b3e2966be0a03f14a0a4a3b378f9642e3e7d80b4035edcb92961d569fd86721102f75bacd75ef03227aaa14957c8f8e6df3a0e09226350beeb9319b3912c153bdd620f3b05221a6036b3a65c85ebab140c7236aad32cfafff102b8275585ed458a8733165e034e85c03a76c8db80a02530fde5dbbb9ec870fcb8fb639836f6b571a8f224a7067e2c2720219ffff0312db4ed7660d8a316a66f0eed97375671e4d8010df8f1edf991cdd22db60c62603159ad28bab7f6b9805030cf122234286a44bcb80c82d6f7d426de79dc54689d503d16c6e4e9078df0782909c52e2c6c27e51048a29b8aa3b7c11f9284f39381998030ac9fda8d223b462dfa631e417bd3d9dc997b6a8dc62155ff44e06b5334b98b80301e34d9268f54bc3792b23efd495fe21922f89ca143b547d6d2febcf0188c4cc03fa6d97adf486794c4f39ae6915add5102022f3be0c6977f33f921566c776be5103ca856a452daa3816c13651fd205c1a9ceef5b897717abb094ac1623f64afaa06039bf03b4bb325aa32bb8a77c701cd84646c22e10bf6e246072d3c65d6b17f0f7303584ed7257524ccc05f18101271051e9d0090605b95712bb485f5d6cce141d6720219ffff033f86e907529606003e2ba2974e56a1acef6a6cf5aaf9f25741139019aaea5c9d03ed52531ec6165de23aec5652c77c8656a81a01b7cad89255e2becf992a010a1703b402875a601bb79714156a8f481788a35cd7f979689c5d69ba1741d162cc039d03b200c77d8b86ceba8d2161ec4f06d246ef2e0666375c243de6861eaa117593c4032970de9830917d969ed6196badc0b1ccf65fe456ae0daf1eea2db51dceb65cca0321c520e6fd22a8549932e9c253f262c5e587dd2a1846d3baaa687abeaa80a81f0353cdd2f2e6b59fa26b6b108668a62c87d7860fd16cc0f0b99b95b667ecd254b3037a97f1bff2f84e00512ffedba2fcc0cc09abc3ce6dc57b03c1459a3910dd81bc035161d76d4a8aef0df02d5d2d5bd764edde15ae31278d02b1e5b699155f9f0e97033b31f42278ebbe5f9fa4046ba12fb8181d3839ebb7f7cba923d5a8e1c64fb5520336e37fd521f68d5f924d1903a49327cc0a070c273be96cd59a5df9a4dd40190500582003126bf92cf3be303dd2d6f7317fd9e7863ea68beadc5ff848ba58f5ebae7d104a024463e34507a8ae488d00582003fce9e3a991a667970bd5e335efcc4d870fd961abccb055901e359fda31ebc05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff030505ca2925791d80ef24d4f3b4ab7f2a86e4444a4d54963d2c779012ea8dc5c6039025938441e89ea9508dc78038e96db9489f6c1273c80ca18688c9217b125dc10363b42faafd8167d6e233e61b31003574c1c79075ebeb6e3e2e923e96d05b873100581f024650779692c05af2a45da0823de214e8ee672c30cafbe0f0808d3db7dc91492a4c86637f975fedb400581f024a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd41010219080200581f02f45e272e85ace31ff30f619c67aa412b284651a05c1ddf46d5a91a7917b15820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f026a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34444201010219040103bae836a73e4d62f95c82608bf0847451b93addbe5b7963e454f457a00dbabfe000582003a8d6e47ec8018fb3278e7239ca24b49cb1149bd5d35207cf6114614814e6004a011a15884b85fdbb58dc0384a778285b79f2e846561746487ed542b7a6b5d7c38209fa5fffe612e2728bb803d2d07216bbffd5d8f133e3b386e1eda179b19a70fd57629affeeed74d7a2ba4803df6524e98846269a9d5ace72cc4d5b9ca99b3eac5ebacf08f7f0688523ba8c3800582003cbc19f7dbc00692710697fe282e9b9725264348d061c31dada311dcee85b205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03051f99133705eafbb1fb6fde207c14f5779d7f61cace471e0756778d8053aaa60219ffbe035c3f7d6beb66d73f454d0112af7bc69365e46a17dc50a1f6cdf1f3209209933e03972e3e3fa7238b37d009a91bad97e2f059a81694b0d30838659699a09ee977cc03533ee552a1602acde02455e1b7a5bc216d39c415329115d83bf917f3339401aa03975da203ce7db252ee78695204df25277cb2d6a0b5791f89f4c2ea3c0dc6820d0219ffff0353feb8d01bfc39b06d98251ea70e32478d584ce52d6121872021fcef4c85d4e30362b28ab2cce833d89443e560c65ff7b6e16728d4c00d80fb427d6994e67464d3039e6d8481431158b235a26c60e81936d99b74d8ab0b98378b50e504ad0320e28b03c73aa1c79584cee130db2b1506d2ddeab19085d7cd7a9cc6fb38a82d2e7f9b8f03f6920bbea19cece5d27e4ab1181371826d3fc0e8f41b018a638929863ee26a6803c177393062ed16e562653ff4b9eff9e5e3c4a82e43a2a7992a4489e184d8bbbe00582003f9d973cadb8eef63b45258c1a87dd1062e0ad6a0cdee2a2110de7a961ce9d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03f9858ca00c254e8241e1dd0cd71ce7bb31332ae78fc16b347ec684080c97c90a0141030333c72e74d0a19f1adc507312e78ab243c498ae23a0fd3dda2a6d7d4175c64b8c03c9936d7d466e4db791b0bdd87ab37d0330bfa3bf5085aee0b37a68e63061ace800581f02619265aa6a1c798b2359c45903e3301dbee64dd6d4388702d722594b33e3493658cfad793383735500581f02992a9eebf595b4ac13d2c197cd338a9f32dc81f2fe28451286d988efca814a15dcb8cb56b8f11bf9a200581f02bd64aca2bbecb8ebe82ba35278f2c9919ba7948d46dd4b0fe661e5936bf749abf5e5d6aa1aaf243c00581f027bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a85820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f023c2b3818e4c16b5e3507272dd1ed0a8e369bae7e2521e70db72c1ce16160492e2e27dd6bca114ec3021914c1031245542058c888c9e173747e432a01205d46659c9bf370df24353f047dfa5fe400582003aa8ed1b42d5e1327b28617b1c8cb4a639c85f6ad3e163edfa0fa9105de4b604a044298de289e772cb6ea03c0ce39c04e950fcf33108f37f9ccae932f6188cc4702ea0ff78b68b81520b80c030820ee19a4b236d02b42eef4a5381288503fb17fb356393bff6637799017835e037fa8076573bf76d2e5f43103076752fcde421171c4c7efbdd478822d4374c64400582003c3108a86358f55c14f0f2959bea0b746bf3b5785d2e2ba328403f15bfbe5504926e5e43d750a94ac4700582003c9b6263043d9a32aa9ccbfa827583dd8c72526f736197235d7ce98b8106dc05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003ab6311aca34bbe37f21db33dde10d22ee35824c5b73c88101355da538df6a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff037ad972578bedd7ae874d970751ec7f66fec91a77fdcfb967eb7c65e82bf891f60219fdfd034e07aaa9dd1041de6617e3b9972fd9c933293e816dbf170e2a1ad4794d647e24034927e34bfe923888201db5a4cca2b86aa7473a067e34a8cc91d765d3de3a68b3037fc22207f00a6f686fed544844695a054f86d7c759704553d1fddecb7c19b41e030123047d3bc221544e8afc242fa7acb673e0fc76132b4ae8f68c1e74c665c20a03f71e90fc3b47987b902d20ed222bef0f2ae987d02582b745c536d31161ca93e703afab7b5056dc7976797900ef6ab2663ec07a9d8c3cd18d7a659b6ccb6c99df6d032e1c4ddf4fd292956318278d97697975a606a75ddb451e824cdb298bbcea16bc033bd8552fe53bfb11b15c6018b451e2b225980826b5f2a982d365ea6765485f000361f2a9ca4598e5c4564aabb55bf1d4266fdd2583acbf6ad6e7cd5f287fb5a4350219ffff00582003fe7ee8a34a9caa4d267c5964c371f74a634b4124b6a07c296df52ac95866605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0332fa01069e31a175a1fe3ddb51b5bf5ea91cded99f00cd4fa4c35b1016948e6203bdec832c4d86687abeae7cce0ef58e1cce2f76c84cea661236f5c630e53df7cf00582003618df9f02d67b316f66adbd789df29fee2f173f37322c490684d519ba80af04a0157d4a798738d88b9480366e24b9ba01db1671af003a0e642eff1787da5ae51a5e0c21ec34dbf6e558e95005820036f6861f7cc35d0cdf85b4f845ae6f9ee191c26f8cb4b4cc217ee5d72ba4f105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff031f0f4cc0a50054c58d4041602d009d3ec25e04e9e5ada5f72fff0ca22c2537c503382b13a3750de02277e44ebf4d7b7a67c9648b2e174c0823898a420f349d20fb030e1058885487eeca97d8d650e228188a94697cf37fb8730bb64c2ea3096828ad0335b322f95c62a13d8e1744041639468d20e7f81d16175188e191b34ee3f88292021968ef03e6b21319b9628f3fd00e621e3985acca08c8848e6d1cfbfd3bed3a0b21362e2103be6ed3cf189c0dd6cbbd2f4e41e881e357c6f233d598a5b1968dcab3c763e15503465d26bc31e96c2f747a622431bdcba46add000e4040c3ac5e6ba4710cdc1c10031453a4af0302abf7b4fa07072c6f5070837781766aac88f7aa8c1032f99b7943035cdab9c306191c422abdda8051da409789658e3d5446163e794b059462f25063032162429d145836038e599747b70450e30f039a3447929ae831f6d96dbda1ed8c00582003505916034c873370d5a756f481484aa6d1e0052603f2643ed8c292422328d04a03fc679a45c76276c74b00582003b09c9dd9c40c445794e75bb8535eebc80efe1138d9b108c85800de14b1d8b04a0600c9a4f7e75b04c19b0397b28ffef3c39c73865d4a6bd5d197d6ab73146238b11fb1fd6d61c6564650e500582003e13892f49be726537cb381eb9b8890bca11d964806b733f169e62b97e60cc05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03a4f2dcfecabf398ceff5dc24f4804aa71f58be3e4f0b9cc7ce61dece2803e0f20392dcc1c78e06df39f693822609a1f126589ab92ab99c466cefab9af9a18c9e7e0351371773f27c314f7d23866ea1b58296df328d30d66f3ebf66990584796e7b230326a23f4ee4a733d0b33e0dc18b048359b1c1da952a4b5ec13425700aa1221bc703a2c9a104660d5bad720d748c9880547c75f07cb909034a6eba01143466c0e55403e9d639e8bec354d82afe0abddb2794b331f36ea2cb9b7645738d6e9b6c50188903625c5ecbc106c9692f2969c9494ebb74175748e233f605b483b051fd4dd48e2800581f02990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb542010000581f02ceeda1d621af14398b78bb6d00b43224b69210ea31bdb953181c5c65335d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02791623c182c1230406468797812ac79b25f8e0cc7374f4e50365228524e14991a325001a0d32bbf1021902c00398c107ff0bf0ba797ef5b3a689ebd55ed82543d14a8cc4594e02375ffe4214f3031499fb7b90fcf81d2ea560ca19ad26d83c08a81a08e874b6f7ecd5eff901a6be03ffdb0930bd59a15cf0cb7190bba3f438a20c09a1db96e85ff3098b62ee6e5342030d12a3e30082415638d559c5374683c7c1922a1904be96083cd3c2768d11dc8e0219ffff0315654dc976b76dc95246fb562819e95bba9f79a6ac09e6be62ef62997facb7b103e621d3167df26253211110923a90af8b1c8c12b255a8c720408b580fde0ad4b9033765720e9f31402ffd59bc75a4cd8b41619e511978313ece1b9b21c288a3eec00393a98a50d03eda4a093f659430b34b0a0158eb6f38ca51d8ed2bd00696e0c50f03ec04d925e99c3634f03b0edff9834d312da2cac771bf4cce5c025907c9edb1c00388d71b5cca428b1f633b472cc8c91193226a5c4a88611daba187ab17a5c2a98a039f3f04c94c12fc883002109f8c728a11540133296ae1fdeb55a9dc513a4450a803d1d17027759732e07c864e73380cfe51723ed022977e0dbd31b15dae8784684603e34522cbbd62d90091cbecb4d7dfa8eaa6672baa409aeed4439228367050758803fee1b481c10d28991db68cb7e8e2fe44fef26d6facdb7f19dbd769d04ed0df3500582003c73e9135b2cdf70d2ae806889acf6f7c96fd2934b372baa9f5b8f9c5da2e005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03c25df3d3f4903c22ab1e0b2015b83677ee8582b4c0e1b0713853fa93ccb5bc29035cb9693139ac0158a6cb5569d9263ad49dc0f57b7f1abea8d66e342f9ef48f2f00581f0266c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0218a9fb390bf1cf45361cc9092b8616dcc3f18f994dc3db933bdced6086d9498335157c74d978b8150219820003838b9771d4b76abfb2cb29554404fe49c32c1481668943047ce367b666b13d2903d3ecb3b97e649f3ae9ac770254a3f8e9361f040d885c5578698c0ecdfa693d03034c66992cfe0ec0c3a084696ed9c70718b4392d25ca3d36f0d42ed871c9563762039d5de96da0ff114576b6265854d0ed9077bcdc5a0aa8c23bbbc6d21728fa231b00582003cc893fe8e58c59489453011919937f7c9e0e0d41cfbc9c02cdbc321afe53d04a9cffb325bea8ddb8000003ce48c9765ae7e723de18fcf58267c86d84cc922c11d4c7e9b6e08f409da62fcc032960c94dc6d5150ef503f98553f530baf0cad7ab4900d1e1e0a6bb52a22ce11b0219e7ff0219ffff03e7c8a5d9f4b2277f5d570320f72ebf777dcb6365fc808c69e4679b6fec14e10903166f592d00a2371537945e29c754caf875655f655b5d24a748ec4b38e2388e3703d565d527c8060b7c5f18a6d9bc9cd9dd8922fe6115bb1c60c3ee003abdb519a3037318f4620c0dc644f199e457dcdf94d89c720ebb8179d52848fd71f3b916d5cb03bc4d66ee45ccfb7b33c090582ea248740c2cda3ceef0f9ee81da6e5a719c624703cccbc2e715d62fc6a739e55725376f991ce768f407cc5536a13cfc799cdec34603da03cb364ab5e068f7cfc55f12b0bfd5e7fe04f6a6a6becfcb4fe77331bf444c03032a868b169c0fd151edfa6e5908086a01d42a6627bd17217d69468ca5dcd81b030ec20d93b85517446a023bbcb8e1b3e8d03c9e7aa235b390775ac5a4c205202203f10f8f37304dc7771121df2f6b90504c81ddbcafed886b3f0f441718f745336d03e2daa8764d1809f4393479b887708ff3b044e2c6eaf470de7e216528d13d779a039102a6347211e7b41e6dc1590c2a6f312998cd409728bae0b1b962e045b5a6a103fc28aa325a2f6386af70f4c893cb44b1602453a1f6f5a0a4bf3fad66e6800fe003dc60fbc06f5c6c29f9a3bc2ec28cda5b65dd46d76bd93bb011bfe8f40178d38703796dd2afd68d3f2479d29ae0b74b5c2934940b77a2366f012213869f0978be9b03c4f681371a971e9b8db290858976cea2e5048b882301e263446b59cd3793b0dd005820033f8773881736437c9bcf9dbb78bd15f806675770ac9faaf70f24a4cd0be9c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff030523ea9db2c4bbfa04b5aac2e70a103bc050cf3546963fe737d471c7f1ebc1ef033cb302cce352cce5dbce7cc94515a39014d5525eaaf0a6d9bdd7ba09d9257bbb00582003d52537695ea9801a8292f5ebff522af2911b913848c163e0296379f3ed431043b7115e00581f02a0021b975cf36c2aa8dd86f552b50e565481614e83d89fa52f4d726a78a84a066d9aca5e09d085987900581f02da8bb54cfb621b6825be2b474fb096ccd4d9900b1505931a153be29f68665820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02080232160b8a9b751156230c315746e0333c90ef2767840a685976f4c93b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021908050378031921a200f572f982b1a9580aad46076a03aabd71b0ae3b4941608ebb39c6005820032520f70e93c4b91241fdfbf7401574bf2bb50581c5ec6bc198150eb434f0204910498da97034d6be2d00582003fe51ab051235e9026250e0ec7397a3c3d2b89d775e56554e2499e8798ace704939409a6a4efa41daaa0396b05e1292311b341471ae1037077f09fad5861c43df1e3142b0e442b7a757700350da8b581ecb746e20e267b81595989e1e0db7f1479f6f268a708c488717ea9003d7ee51028ed9478afde1cad53b775dad95cd07af0869002c17340fd0c2545b630219b7b70219ffff03d4f05cbed50a77d3d6fc485752c50364e261743c0f8d69351e5f424d4e6692060219ffff05581e034b750d2434e20a368ffc8c616f7493b6a34e81060e83a88cab73be4360070119391a03befcdf640d207659d52f9978414157ab0b319bfdf668e50320bb77b04a1502090219fe4503783ef73211bdfa583963e4ab8c5382549cbc3e5fa294939af8212304380a288e03f85c6686a3b05c44e8b870576173c2b50f66d82e2441ba12a8b577f8bdf14dfe0219ffff0335757433238e1bc8171c8c17a9b4ee4d9a1ef469ff3c89aa3e6b7b61fc680fbb0306f58c22137917f98920e719a2b540eacf01fb5235241fc26a2213f9202ccaff036d64795d7500a999d49a0dbee5f98c2cc5fe3c97852004e96a1890039bc6b7370346e0bda2931a9f468793ac707afd943d8319e06233d84e099f876f30e9ee2c5d03452dc3f1a7b9c2b6f1171ad0ce03f6635cfc03a55057aac669e512d4423459d0036c2df9a86b5f56576067b1d4f30ccc2aba94e0606b74dbfe3e808d23d47863e7037c31a00bb4b89d5e068da11eca555ac61933738588cde0b73daaffbf71f06dca0360800bb4d6790d87dac321993c6e247a50dee1f386b69b96a8ce531739989c9f03d12713a90e519526b945b237a138622869d53beb595c07b23000e2fe8f12b09b03eeaa4cf34216242aaeb3ec772a1b31c9bc0c86e3cba0a285db4821c253adf9d803337128040552d29da21ae5b69b5e5bd35b8b35de010288f826bea0082744330603aa3ebdcc7594b3e8e00a99a50391d193d1c208a636d623dee9fd3fb0d110a6bc030c383dfd4252a73507f1e19609174357cb521cbe328a87aab9381726cffdaa3503c7ce93ef0a1369d315b86a4da56af86c2544bbd7bd089b264de027969e78443a03609195ae5941ba2d073fcf7b95b2f655c1d237d90808095ab143d5c8bc56017d0219ffff030b9f450359ad40dbc8815875cf6a7f390872c7b76ccb55ddebcd9cb5be984f17032a72bac03298bf07c8b3652a450dd3b0aa9e2beff447eeccac0fa894348378ac0367bca87ca99d5cb9c032e019446d3adc0f8bba315293992cdebe5a651bd0436a034da3c5f6c7c551d7edbd0db2b6220ad1e1e5548b018c0d7b6c5c72c0976380d50219ffff0369fb35c6b75247eae9a8d24cb57e65c44afee6a41d05c8e550ebde3107812fec0356101e00c9784b4755d9cd14090d934b10d356db767694a47941a11f53716ffe0300e99b6b62db3a6b878c1f597dadf6b96cd59a26191c0006b213e363a848b107038d5b156896af593b3785a8b8aa24bbfed0806d489d7fd059cbc9fbcad5bed8430383e51c69041d6b8ae10edd2236ae0de8a83d0e532792cdb03835f4e68e15c6d80321fc59aa890f611bec5de9be27acb6d376d2991c7da8500e054b8fe736689958035373c7a05cd7bf228b2a20aba78c33a998af1f88db1662bb9b4881020e10227003df0747b2ec2d0a53d5b32706c8f445b01e380c794c6302649d98d31f327558a303e4d8dc73711ef08e263e487f247d39e8d28fca32893a253b5b9a6f4141dc1176030ede9368cc3f86f512a86de343370417f1ddae4ebb7ec9678c5f6e103096a11a03696df52608f4678d0568d7ea2d7c141c6811d4081d9925b24c75a52b28f30c6903f3fac37d1eee46266d16b367b6f0161834d71fec4e5b56604c82e0de9773f9480369883f65f1a3dfcacc8d070f9f2ac04f721e359d56ed2d0a9456d236fa61731f0330286b517758fe1989f7df57389002a8fadf456dddad7b4c880b986aaa73cc3f034059b417377bcb496daba8d98434d546e9a3d6d83624b5512c29506800e6420105581e0353a2d9e683c199d33bf0f515fffbf94b3a23fdc653441004ba00a1efd004020387ae06be9265e7f5bb4ce214f5ffda962633200dec9ef6e4b906a945cdc80bfe05581e030f6243ee2e3a637408bff54c070cba2da51025478e1e3dda5586e19990040805581e037cc172149e34b38834c217665bcb63b9532928917e2f73557c16d0f0a0040105581e0381471eed40f003f825cf8aea407b8a0f2d1f8ef6cf8f29e7f14027a310040103fada75a240b0e191ba2b6c570771fc2a09230fa7b55142808def41e593f95b31034966c4483f68d6fa004f0c0540be4e6c82f6bfab897d19371ea13ef6ce4234a405581e0337991469695b0cbf5e117370dd1afd4c08ef7a8e80fe7fb2184e32eb1007011bffffffffffffffff0459199f608060405234801561000f575f80fd5b50600436106100fe575f3560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb146102c2578063bdf7a8e6146102f2578063dd62ed3e1461030e578063f2fde38b1461033e576100fe565b8063715018a61461024c5780638da5cb5b1461025657806395d89b4114610274578063a457c2d714610292576100fe565b806323b872dd116100d157806323b872dd1461019e578063313ce567146101ce57806339509351146101ec57806370a082311461021c576100fe565b806306fdde0314610102578063095ea7b31461012057806318160ddd1461015057806321860a051461016e575b5f80fd5b61010a61035a565b604051610117919061100e565b60405180910390f35b61013a600480360381019061013591906110c3565b6103ea565b604051610147919061111b565b60405180910390f35b61015861040c565b6040516101659190611143565b60405180910390f35b6101886004803603810190610183919061115c565b610415565b6040516101959190611143565b60405180910390f35b6101b860048036038101906101b39190611187565b61045b565b6040516101c5919061111b565b60405180910390f35b6101d6610489565b6040516101e391906111f2565b60405180910390f35b610206600480360381019061020191906110c3565b610491565b604051610213919061111b565b60405180910390f35b6102366004803603810190610231919061115c565b6104c7565b6040516102439190611143565b60405180910390f35b61025461050d565b005b61025e610520565b60405161026b919061121a565b60405180910390f35b61027c610547565b604051610289919061100e565b60405180910390f35b6102ac60048036038101906102a791906110c3565b6105d7565b6040516102b9919061111b565b60405180910390f35b6102dc60048036038101906102d791906110c3565b61064c565b6040516102e9919061111b565b60405180910390f35b61030c60048036038101906103079190611294565b61066e565b005b610328600480360381019061032391906112f1565b610735565b6040516103359190611143565b60405180910390f35b6103586004803603810190610353919061115c565b6107b7565b005b6060600480546103699061135c565b80601f01602080910402602001604051908101604052809291908181526020018280546103959061135c565b80156103e05780601f106103b7576101008083540402835291602001916103e0565b820191905f5260205f20905b8154815290600101906020018083116103c357829003601f168201915b5050505050905090565b5f806103f4610839565b9050610401818585610840565b600191505092915050565b5f600654905090565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f80610465610839565b9050610472858285610a03565b61047d858585610a8e565b60019150509392505050565b5f6012905090565b5f8061049b610839565b90506104bc8185856104ad8589610735565b6104b791906113b9565b610840565b600191505092915050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610515610e1c565b61051e5f610e9a565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546105569061135c565b80601f01602080910402602001604051908101604052809291908181526020018280546105829061135c565b80156105cd5780601f106105a4576101008083540402835291602001916105cd565b820191905f5260205f20905b8154815290600101906020018083116105b057829003601f168201915b5050505050905090565b5f806105e1610839565b90505f6105ee8286610735565b905083811015610633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062a9061145c565b60405180910390fd5b6106408286868403610840565b60019250505092915050565b5f80610656610839565b9050610663818585610a8e565b600191505092915050565b610676610520565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106ac575f80fd5b5f5b8282905081101561072f578360035f8585858181106106d0576106cf61147a565b5b90506020020160208101906106e5919061115c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080806001019150506106ae565b50505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6107bf610e1c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361082d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082490611517565b60405180910390fd5b61083681610e9a565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a5906115a5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091390611633565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109f69190611143565b60405180910390a3505050565b5f610a0e8484610735565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a885781811015610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a719061169b565b60405180910390fd5b610a878484848403610840565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af390611729565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b61906117b7565b60405180910390fd5b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f82905061ceda60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610c3891906113b9565b10610c4957610c4683610f5b565b90505b82821015610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390611845565b60405180910390fd5b82820360015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610d779190611143565b60405180910390a3610beb60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205403610e0a5761ceda60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610e15858585610f7f565b5050505050565b610e24610839565b73ffffffffffffffffffffffffffffffffffffffff16610e42610520565b73ffffffffffffffffffffffffffffffffffffffff1614610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f906118ad565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f620cabaf610bec83610f6e91906118cb565b610f789190611939565b9050919050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610fbb578082015181840152602081019050610fa0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610fe082610f84565b610fea8185610f8e565b9350610ffa818560208601610f9e565b61100381610fc6565b840191505092915050565b5f6020820190508181035f8301526110268184610fd6565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61105f82611036565b9050919050565b61106f81611055565b8114611079575f80fd5b50565b5f8135905061108a81611066565b92915050565b5f819050919050565b6110a281611090565b81146110ac575f80fd5b50565b5f813590506110bd81611099565b92915050565b5f80604083850312156110d9576110d861102e565b5b5f6110e68582860161107c565b92505060206110f7858286016110af565b9150509250929050565b5f8115159050919050565b61111581611101565b82525050565b5f60208201905061112e5f83018461110c565b92915050565b61113d81611090565b82525050565b5f6020820190506111565f830184611134565b92915050565b5f602082840312156111715761117061102e565b5b5f61117e8482850161107c565b91505092915050565b5f805f6060848603121561119e5761119d61102e565b5b5f6111ab8682870161107c565b93505060206111bc8682870161107c565b92505060406111cd868287016110af565b9150509250925092565b5f60ff82169050919050565b6111ec816111d7565b82525050565b5f6020820190506112055f8301846111e3565b92915050565b61121481611055565b82525050565b5f60208201905061122d5f83018461120b565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261125457611253611233565b5b8235905067ffffffffffffffff81111561127157611270611237565b5b60208301915083602082028301111561128d5761128c61123b565b5b9250929050565b5f805f604084860312156112ab576112aa61102e565b5b5f6112b8868287016110af565b935050602084013567ffffffffffffffff8111156112d9576112d8611032565b5b6112e58682870161123f565b92509250509250925092565b5f80604083850312156113075761130661102e565b5b5f6113148582860161107c565b92505060206113258582860161107c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061137357607f821691505b6020821081036113865761138561132f565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6113c382611090565b91506113ce83611090565b92508282019050808211156113e6576113e561138c565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611446602583610f8e565b9150611451826113ec565b604082019050919050565b5f6020820190508181035f8301526114738161143a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611501602683610f8e565b915061150c826114a7565b604082019050919050565b5f6020820190508181035f83015261152e816114f5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61158f602483610f8e565b915061159a82611535565b604082019050919050565b5f6020820190508181035f8301526115bc81611583565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61161d602283610f8e565b9150611628826115c3565b604082019050919050565b5f6020820190508181035f83015261164a81611611565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f611685601d83610f8e565b915061169082611651565b602082019050919050565b5f6020820190508181035f8301526116b281611679565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611713602583610f8e565b915061171e826116b9565b604082019050919050565b5f6020820190508181035f83015261174081611707565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6117a1602383610f8e565b91506117ac82611747565b604082019050919050565b5f6020820190508181035f8301526117ce81611795565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61182f602683610f8e565b915061183a826117d5565b604082019050919050565b5f6020820190508181035f83015261185c81611823565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611897602083610f8e565b91506118a282611863565b602082019050919050565b5f6020820190508181035f8301526118c48161188b565b9050919050565b5f6118d582611090565b91506118e083611090565b92508282026118ee81611090565b915082820484148315176119055761190461138c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61194382611090565b915061194e83611090565b92508261195e5761195d61190c565b5b82820490509291505056fea2646970667358221220927391514fbeead7d2810887994e53a1ebafaf1e9edc2fee6fed6f9d84eb6f0a64736f6c634300081700330058210336b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0058204d5448525347000000000000000000000000000000000000000000000000000c0058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563054112fb21c783d55b9b9db2b4bf5effdd62a16578d00582103b7e7f4245fd1cd4035feddee3dde60011d9d78464f2c14c02e107e97fa15de204b18301547ee6842b310ac8500582002a54b2897ae8021b0ccb0479cd605234f6dccaef88d9d6904236743fecc303a4c02e5711e1e15913c3389b21b005820026a051a5d27ec62df1d0907b16207641b1770aa197b347f69b0355714eb25f04b0d8533cfbed3727c114ee10058200235acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b58206d6f74686572737567617200000000000000000000000000000000000000001602190428005821033cadb03b31fce438811e73524e9cf1348bc3afb32739fa909930f679b92e75104b16864e6d1d01585ad176950058210376c0b547155c7e54c3284203fc3de6c86956900d2f0d720b73058cf391cca1405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff037cb76a8810bec664e54437b589fd6336b4b896b8ba4fc1bb583ad396032daee10219a32505581e0307538d91ee636baaecf3e55f82483a73ef16db07e70c22d42592ea9580070119199f0320b510d5f8e1643cdcd0b2e97bdae416ebeea6376eba613fc47c94593c2a3b9305581e03f0ebaa65fc05a0f3f3c2f88ebb769db61c28e8157486180381309e72700c0547037fb081df520005581e03aae98683155ca6bf8b0d0a99ba0adf9f7078268979e297ab4211e54ab00c0242a4540219eb8d0396405e1a8469c0f8865d481e461ff42df5a91797d68dc5281f92390ce6b55f69031bde71890e758860907f9a0d8e65b3fddd1454f4318c15cedfc9bb5d2eac14a80335cce11b986ceb80ecda439be387761596d317827fd97faa80476137ab2233d00345f5aa649df8fd5cb179f90df066ab848a7b626aa8df955bac38f4037c5166400370120883feb9e28d604f16fa7d651ec506b63369ccfadd1beeacb96a32a8bbfd03223b5c750c5401de33d314478dfebc0b3664b375033f74012e06535faf27028c0306a38b1f1895c9f1f95fba0df8f470902662bdebf861fa91c83c895b61e20e350391141ce58553ad5107651a6ace4e86c77b80530ab80d1a2f797cd9a40e42f42203e064953682e5058d54b9eaf2c21a55fbbde7bf93624cc8e8158514dca70f6bb803fbbb55f2e3899c07afc153024fc1264fa482c7ade1c824004583dd39c13f064303a29dfc20f3781761c14970c0a4052374cb64301f968e8a664be25a31a0d653a30219ffff036319850f52488a5266a6765d7672534a057c72345cda35be295a0f6b20e2ad96031aa5eb052263178ce8336066266b3a6622d166caf0db7ac6480bb54ff064030503464da300d0c322c6ab1d5c84f642da28f5ffc6e42e44ee4d32400f6be891f670031f736c670fa83b9d502fd127229b0cb44a1af0de568aa84aac0aa5997ec5592c03031e901d7736ab9cf5422a9cae712c32c8f46fbc2e0340422243031c0d4f452c03fb4ac0673cd48516adeab9e70d725c98dc447aed0269459e8eb4d6c56eabc9b90330a11a97536287e3b1c80c2e30af3db62e759aab0387d0af44c8b386b6e03d8203c6447dad44a2dda5c8d939c17c85c4306a816dbbfc1a88667e76d9047f0a0fce0317133f81de8582fb51fd49241af0105a510734b24a981b2d52cb82782915a54003f820532cddde166f5a84b12c79759a37ffaded7af1255946d9a13d67dcc2db960219ffff03079bc50cd2a868ad4f1f185f48850889be60b7512283612dae1fb7a0eb153f100359c6982aeea13a4b554b17757ddbb926134a8a951377099eeccedab51941de59033510ec3662271e470e71142601733f92c24957c715d3be7d134542cbcadf451d03991f4ecfc0a1e63d067345b09c3d0b58ccd1b18e945ddb13156d3383566017f003e6661e6851d68a0e1313d3bbf858ae5c5edc5547944eab27af0b446d02a3d51303055022d2ba8b1b34d60dd3e07642795bfa7cb449e020b4c360f7600531a6373303d8231e8409d8abee289c53d7d13ce5b5951425c6fd752b885f07a7fc07b3d493032f0baa0c2602293ba5f2e15d27c6605e7c5fd7fdb04f67285b568975d15580ac034be9ff80ef2b37dbae0790b7b6f5b2d03aaf9aa8dffccdce74e74f7bad0d3349035a67cf2ff2814f58b51c412b8cfa84e6597d6747fb3f8f67c4b7a23197865f7b0219ffff03f73d33730bebe21d336b5abcb7d75577bbd904bbfc70d523de67b1d0cf771cba03ea2b98b8ebb1b8fa806b0076975507cd6301e31f69f8a5dd13bb4fba653acb280219ffff037407f50aac02af33ab475dad1c6a415c620be97fbe559c361359c868863933c703414833a6e6d956e841f0b4c20b44a9b19485aa1ef0bc01ace53895a4d87e08d103484fd307a51f799594fe44e5e80227a7476d4c30f5b04ff459c6b8d3a5299fd603648c2cb355a81e81f899a16380e1a9a69c1e084d7992639ea90eefbc15c1778f0375a6d426ecd683e5ed13c5624e7ddf0dc3bd368a15f8fb76e6d57afb146fd4d203ddcbd2d9cea6fc530d48eb06df8c438a6aaed5faf29810764194779d46dcdff503280b38541ed412faf108bae73f7e7d153c291799fb2ac4276580a232216f24c3036cd2492c2ec4eae14a12acf9c848797315e3cf36c460967198bf04cbf0504e970352bd71f4a189d4d338f903c0d8e9c38f0d6c8ec0f10ff5e366b45e042acac530039a61104c56792eb41bd04afd7ff704c004b18889b3e7d0f564afc5f180aedcca03a1ffff0269464c13b267b0bcb6ffd02375993a2fd942de19bf97871b9c84a9fa03696d0c010631b43a8e495faacdfea6cc94995c479f2a76172a658e772cc694e6034d0d1018bf151fc7095fffdeb8268ef8173175429e1b24a38db3aacdb40bcb1d036929298926812da0398936c7d8a466813b5aed7d860b7eb5c4cbf081fca196d003cf961761a65072459efddae82fb4aff409692119e50b13ea343e296e795079a5032985abe5db262cad41e7493d6a3c6e402b2fd7f64b3834b62c0c4c015229cd5503f795bbdc08c4a13fed7ef89290c426fa343727a2b0ef61606d7fe72b1941c974037642e15fa765fc0c1d8eebfba1c26a5904ed2f5abe374b80cc8b43c4cd20a99b0372053d2d0803d388d239f4df241d0be48b281d3041806ec8cd5efd70031c2125033f5231ad6d8b747b838f149f88f3948f7f9cb45a9e2df2c185bcf96071a977b00342a16a80f1d23b23062ae43f5a1cf487da1a371de0390f5060e48758f2eec93705581e035364241db4db03b2f86f8a5d1f9fd4f5985f850b25cfd4c4684dec14200c014722be485029c60005581e036d2844a459ac5c0ddc3bd2802dccfb21a78eaec8e6a691de58a86e49f00c0246010f3f69420003ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581d02d627dc6209aaf67e3790a2aec71db94349c6d16c06ae15eeb89f871707011bffffffffffffffff05581d02a7d9c3b32d11253aa77c33cdbe680fce1c1a2ffe3daa8e0e0bca0afe0c0348026c89d28709b6ed0219200205581e03f229b5f4acab976ef4e1821d7e504e9624f2eb37c205998d8056c0bf900c0247031113505db02005581e0308de2cfba52016455f72b5298062c865f27bc79d16f237d3f684917b30040d05581e032430098be0ab24c0cdd6c01f7a4d77c7217abb025a3b6e393adc4abbf0040103f843ce41dbed9f3c394251dfc0deee737e1737b4b2f11a8e5491c83fd3627da60219614f03454810fdb9c89317e8c768da93b1d0d016143a1d6f34adbb9d08190466d2123503667d40ad9a686e407a698efd53bc23d63a891217fa3dc9040b97a59eed347cdd0345a67d80273ff45bc7b5505463ba710c9c0f3a1a265f80b4dfe1853cc1e689aa0370e6c399b9930488777c1e56b26c21da4a8fc32d1670dfc64b5fe13939b4607d03c24666e87c62538531fb936a07f9041965bd7abf3203eb4c2228bb15fe82749b035f4f1f1fccef759c92ee6e95c565bdaa5af29f3eb9f90d30d6921aa1d615b4ba03544a22139bfb9c51b61e43f41d97ae08c7e5839176a8821f0075eeba41d8921603c1adc45dd5ea83fb6281b505ab9348be27808475291276c0d064db6655f03a5503aae23aae838ab9fcd2ce5e97f118fa19ca82c8583ea4b0d85cd08df9041d9669032ce9bb9ae874e940510e315d1409d65ef54398ea17622dca3d93a1a593e9500803dc02102c9e98fb6d55ca8338781797aa3ea2810e1e2ead6bb98ef2064c0990b603a44316110e50b89dbfb0e11c3a6cbd486e69fe016542d519d8a46e82233ed262039e6ebb41781c869de3d3a66fb42744ab255b370754d59ef99608a76f55ce55380344b0a6c2904a381ac523b30f1811412d9925e2fd798d49aa9e835269e73ba59d0330f30f8b4e0df43b900470d6624e6c0ebdee1248ff36e58bcf43305acae8130e0219ffff03827ce19b666f345af6bd1deeae4fa2a97a854e5469f346bb92975dd081aed69b03cd543eaa74ddf2d33c1c48873e0bd5c56133f19391a0a286fee999a0160dbf1b0365d09e0fd025de4de720771fedd26a522d6175a071b1f1d03310cd7823abd82a03b0cf28ab75b5ba8adbdc40d5fb56ae20c4294a548b90699b1ac487c92d50da9d037d3f8778629e3e38dcaa5bad1c91fab0b23854c4e300a3c26c603e47939899be03e96692e15b32a576c196e3dfd65b9ab1df6b6ddd74a45ad5ed8610341aab64b703c30619f8d81f6ac95beefdc2f2e25829de7b65445a1c0105de2c0b5961a657d503e799733163d8e32c5c709aac916dadf64045f5b71da84f7f98b58a7cf3333fde0394f75f41df7f6d791ef1780fb128d537a2d404f9a366674f7f17b64cbdfe2303033efcc8cffe949afab66ffb527b9b3b214bf91af2dcc636b2661571300f197c55030947fe951e725c1488a86aa4cae3078b8ad2289fd481e832fe3b73856dffde940219ffff0389dfad319b50333a8a154c8b5f5ac6386fbc8e9456a102651c5f3d0feda5dc880219ffff0319dc28e8f3347f56e0b2be8a8fe3e30bece8c4827ffdeda3ad7d4e8291ee704403ede8a0bd472b4a860ed95f9d43cd007abbf4fd694e6881ee5fc36340efdeaa4203a9b3755243b1477c1a4bf0f5071d51314ccdcb91c90b2ace03ac1758b5843abf03ed392b2b88cc0d835e4244602edd6661d2835fc39cd042c0cc53583f4a4b20240399134c983679ec2536c521faac009bfcbaf88ce321f6f697026c51d269469cac0303ad45e2ff0e407788c1a648cfc57e2e238e1abdf6d2eccc04c9053f19f553e00367b6a37217d5acc10e13a0d3b6fc7c6e905f94495156f3b7a04a21e51fc1b84103a3ffd3f57287d979d57b2b29382762847a3da191bb097c83eb599f600f8183aa0322e8e4170519e3082245b8f9fbd59356cc6a76d9a8cde61b2050747200b55e6303dcebd7fe8018ceb5ea8e2648bf9cfb0fbb6b8d1d2dc8d0c680476c2e2908282d032747f6660e36980fd386daa6645ef53b14cfeaac5f90b079f7d4e94599ee2c8003a32b34d55a41e51d36797589f38ee4790fe4f0bf0d7f98414f6e024671158fdf03251479c8a5c59d0eec243a2e81ca3d8c749fcf6f09990d1c3853f1b9923ad77c03a5a089bbe7765fc88c8090c4f13b6ad63e961ec20e78bd1054fb0d73ff3baba303f0e9bbd463c52b64d418ce1640b83dde12a82d866dd1a499f085e9227ad91a4903941125b8a1250165d80ab77d351f8499961bd0c3971a7a6ed019b8fda8d7e73a038e2799d258282efd459acd5a73b639a817a4a47890a1e23dc97e9cc50e9743da03d2bc23af6fc3ef9ff641dc07453e37019ee629ddad068b9b58e08a004455aeca034f34cf1d8811d68b6af94017c0bffaf120d372268ff5ff1b41139eba35cad2a203ff87460d06a3bfb13718228a94b80127f921faf14bc1d845d7ff7963512de04d03ed57f3dff5a2f8ff4f34a02bc50386da7777ab406449e78a0a31029a7f15fee603bd6766738ffdf7241a8fc05162c30e77d32dbc8eae5246ad98416f315a191ccd032a9209f4adf20b14c9a13d4f4f1aa9bef0fc246747a33ce2657b1f8daa6b269c033d2be03fd89826417ef1bcfbbc01edf1c48df12530d41f1670c20df1d38c6ed003599c99d0bbfd77c213ce97346800ff809311f19400abee964686cc74a89167c50394c7d4777fd39a69e5f5f5c0aef60329d278cfbf295a6b71cb3718b5ab8e74f803e243edc7bc3864ee8ce9fc18e1d554f9e7c3f2be9db71670347abec1ee8e3e9803b08e4c3989e88b9b432748eae8626f59389afc2d54666e2db64e8ac26e96e79e03a5a2318d175137a576e181e11b370ed1d043b91e8507374cc53d8c3f9db26faf03257b83ffdfeb48c8022124820b3c38b81035054b32fb4b23f5960574a270b167030d693f16ee3aad9cd9d662fd0b76da469ae39a61b100808414144c2cfc29e51003dc91756acd54923bafa7b8ac0f678978b6742f62364e95e0a62986a718201c12034a34f1909e42f153c3b2df13b314d372cf9e9dcded138d8fab04a5c4caa094a50382370f82c6e2c9c8fb0136ab4b72b1c914c2e607f8b579eb11fd784858931e6403cfc3813f8b494058d48bf8231803ec316bd0e8a5ed4d55a3b1284c1c51ef6ca903677dba9c251adae4889bbaca9ce6b4913271fb46b49916551243afc1346cdcd30338049ad24631e8d9c787d3a79aae706d1a2378eac2c2d32faa881526f579e3fd0374969a0a386759a0733877f4d3d4d520755de9ee618b0a2c2d185d265499975805581e0325e9d62a2986f3aab0a71379603a8ea0f3b0801857626b9aa61e9ced000c054763327cd0181c2605581e033a5e0a89d2363f78c6c10e0756100dc85d12fccb9981f43f70e8cd9b600402039d89756d47ac0e74b54ccf3e87a65e9b850fd63aa838698b0f55245bdef9b5de03fd8b266c8b29fb9f46a235a77c1c1f1933fe5989439b833028f3f78543d0a7c105581e03b68a2c39922493ccdf32153f211758455f262d19f90872059e18bf921007011bffffffffffffffff05581e037bd7f48d94bc1f25f96c47721c446669c41cc7494c4e043bb25e776fb0040305581e03caa0f3db66b19a7a33e975258f01c0636d5f78c092dfd80c4b0a600180040105581e039f06ae97a3cdcf4a59d5675e92c6fc551c35cb58caaa4923562f71e5d0040205581e03c9a1b1536a50a7d5e3ada028d36d4c411c95ad49106aaf1691eda032b00c0346c0815470e90004590b98608060405234801561001057600080fd5b506004361061004c5760003560e01c806330e6ae31146100515780636f7929f214610051578063ad5c464814610066578063fa461e33146100a9575b600080fd5b61006461005f3660046107a4565b6100bc565b005b61008d7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6040516001600160a01b03909116815260200160405180910390f35b6100646100b7366004610896565b6100ea565b600080828060200190518101906100d39190610916565b915091506100e385858484610187565b5050505050565b60008413806100f95750600083135b61010257600080fd5b60008061011183850185610717565b50915091506000806000881361013c57836001600160a01b0316836001600160a01b03161087610153565b826001600160a01b0316846001600160a01b031610885b91509150811561016e5761016984303384610319565b61017d565b82935061017d84303384610319565b5050505050505050565b6000808280602001905181019061019e9190610762565b506040516370a0823160e01b815230600482015291935091506000906001600160a01b038416906370a082319060240160206040518083038186803b1580156101e657600080fd5b505afa1580156101fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021e91906109a3565b90506000826001600160a01b0316846001600160a01b0316109050866001600160a01b031663128acb088983858a6001600160a01b0316600014610262578a61029b565b8561028b57610286600173fffd8963efd1fc6a506488495d951d5263988d26610ab9565b61029b565b61029b6401000276a36001610a8e565b8a6040518663ffffffff1660e01b81526004016102bc9594939291906109d8565b6040805180830381600087803b1580156102d557600080fd5b505af11580156102e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030d9190610872565b50505050505050505050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316846001600160a01b031614801561035a5750804710155b1561047c577f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156103ba57600080fd5b505af11580156103ce573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b038681166004830152602482018690527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216935063a9059cbb92506044019050602060405180830381600087803b15801561043e57600080fd5b505af1158015610452573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104769190610849565b506104a9565b6001600160a01b03831630141561049d576104988483836104af565b6104a9565b6104a984848484610517565b50505050565b6040516001600160a01b03831660248201526044810182905261051290849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261054f565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526104a99085906323b872dd60e01b906084016104db565b610561826001600160a01b03166106db565b6105b25760405162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740060448201526064015b60405180910390fd5b600080836001600160a01b0316836040516105cd91906109bc565b6000604051808303816000865af19150503d806000811461060a576040519150601f19603f3d011682016040523d82523d6000602084013e61060f565b606091505b5091509150816106615760405162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460448201526064016105a9565b8051156104a9578080602001905181019061067c9190610849565b6104a95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105a9565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061070f57508115155b949350505050565b60008060006060848603121561072c57600080fd5b833561073781610b39565b9250602084013561074781610b39565b9150604084013561075781610b51565b809150509250925092565b60008060006060848603121561077757600080fd5b835161078281610b39565b602085015190935061079381610b39565b604085015190925061075781610b51565b6000806000606084860312156107b957600080fd5b83356107c481610b39565b925060208401356107d481610b39565b9150604084013567ffffffffffffffff8111156107f057600080fd5b8401601f8101861361080157600080fd5b803561081461080f82610a66565b610a35565b81815287602083850101111561082957600080fd5b816020840160208301376000602083830101528093505050509250925092565b60006020828403121561085b57600080fd5b8151801515811461086b57600080fd5b9392505050565b6000806040838503121561088557600080fd5b505080516020909101519092909150565b600080600080606085870312156108ac57600080fd5b8435935060208501359250604085013567ffffffffffffffff808211156108d257600080fd5b818701915087601f8301126108e657600080fd5b8135818111156108f557600080fd5b88602082850101111561090757600080fd5b95989497505060200194505050565b6000806040838503121561092957600080fd5b825161093481610b39565b602084015190925067ffffffffffffffff81111561095157600080fd5b8301601f8101851361096257600080fd5b805161097061080f82610a66565b81815286602083850101111561098557600080fd5b610996826020830160208601610ae1565b8093505050509250929050565b6000602082840312156109b557600080fd5b5051919050565b600082516109ce818460208701610ae1565b9190910192915050565b600060018060a01b038088168352861515602084015285604084015280851660608401525060a0608083015282518060a0840152610a1d8160c0850160208701610ae1565b601f01601f19169190910160c0019695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610a5e57610a5e610b23565b604052919050565b600067ffffffffffffffff821115610a8057610a80610b23565b50601f01601f191660200190565b60006001600160a01b03828116848216808303821115610ab057610ab0610b0d565b01949350505050565b60006001600160a01b0383811690831681811015610ad957610ad9610b0d565b039392505050565b60005b83811015610afc578181015183820152602001610ae4565b838111156104a95750506000910152565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610b4e57600080fd5b50565b62ffffff81168114610b4e57600080fdfea2646970667358221220b30aa23c5b77ac2809b6353ab0687f2886666863e5ff1a4066b6001c110044c064736f6c634300080600330605581e037d05090411d658efafff4725c23dd121ba2533db3bab151c2406d19df00701190b980219d538031fcd066fb1c5d42a5028b301fd36fcadb5f047e0ad8081c9e1d665638b5a62ca03c6cd45aa7e09780bd82a60d8af884e42535fadcf4689797ad593d3e97b312c4203484c8298124ac0a32c99427941f192f432a27d1c06ea3eb01aecf1053dd2463d0219ffff03816270195c925308f942e9950840eb3b632e178331634df4c1bc495a29cdbb2e03e5a26330b66a23c2f5f3992ee9e365993f73edb201f3cc85c34dcc9123ba7dff0353ee84c7406c8b91ab528afa4328f683d56c8229230396b1c59638d0d0f95817039c9ebffb715816687d260fa04176d3c6c8c7f468699c0985a5dbbbcd337d7bd50368e6f1e4b83a64a1cc932fb35f7163419273e08685bb0467f8c14541abb8b63303e4f4b8e855abbd2c8707290de9ab3ec652ccc55811d0c6b85b4e5e0bce44286d030957f0238ba7d91c163c0ed9a73fd594e4f5197b340190db5dfa2b2b72e514c4031481082e9b05fb0e36cfc0342fb7e4f3f9e926b8c5853a42920cfc2acd68761303c2f0cde285dd2248ddcc015ad65fa4dd7a91250729328de30951feacb9dc2948031ed613fc2175cc430160e20f3cb1c7d9c0c66243e4d164336e996f44cd63b5a10219ffff0219ffff03f50a063a5fe2836b9c9a8de2ee9ba86e52d55872a3ea5ea1c08528eb2aee5b5a03322c296baab1923315ef6126fa0cd2f4e4439427b1947e2af89be365cbd83ffe0382c01793f377f64d229865102cb623fbd30f28c64508dca7ab4931e8066541e20304f3afe4cb61a061e1d9f0fd09f5ebfaee861213de0e0608882df85b84f14cd1036901c924f600e3679ebb99e15929e1ea86fe2cda0d52b71a7c87e53d98c943870366d2755f83484ce7fd6a20e978611ab3c0a42af3a1414281ae83e8060661d69e0219ffff03b0f038d430c1aa5ed786d6f012714055eecc2787c9c5195eb814b2bcb9393ff803e80159ef69616b62623461523a6e9c43fda0bb4eac3c8948ad1e02c786470db703b9ca03c45f1d5d8ca379c5e395bd8b2646f3837c3e9deca9fb85bbda4cf77d1003d0be612687f1397ac57b100ec387d09348d665d2d5f6334e9fcd8ae44816415303197008282093390142c38bb8e908b403f0da6159a76bf2b438a0e2424efd4611033d6c08ef1df4716852908ca8b43916dd89b547c44dff77fc547f6b05122bd0ce031e6124fa787c2c5bb1a148b97751b729c427430802be4116fd37a8957bcba17c0316b4b64e4e441ea95011f4b5e2d9db5d6b2baf54977f5d8af98e8fe33fae0b0203055dcc1881cea3dc04d990865fc45a22c2958e23ed604039eec5e4c2dacfa1a603285e91aa191433cf9e87c926247cb0c47ec63e6df626fef7c6c7c4943b10bbc1032648d1ed32b82801ce94e5cb7073ae1f3d0dcdc77cbb70e1d08cc351b1ab35da037643b443aa7b16877a05d27cd1df17c187ac44f8187dda90c84ce08362fdd16903eb9b6981cfce211db95566c0d029b9714f997244e5274892ac7569955dc5516703cd0b73fa4633623a05d59b13786757c9a6e85a507139b1cc2ae380f273a472b905581e03f1b2d0e1a85e17f6ed43fb0d5cabc816eb4fb4066dc6c7bf5c13114dc00c0147261f2e38fbfd0003c7fd98b47776235826743cc4854935c749182c84bd7feb5b865f684732fccffd05581e030e9a1883c516c6647f623f9665df76c9f05000de3538f3daa99ae642c00c09465ec1d655cf9805581e039503dd522e16e9b3725810907c7d28e6966ffe5ad32502b5cae6608cb00c0c48022b9cf1b772ab3805581e03e9d271346531d1e9832d6be946ddb51c7757e54f5d2b0f24bd120adb100c02470107c0e2fc200005581d024fbbe9dabfd64cf0b1c3335ec91aedc1f9849a6e4abe0179fc9e42150c196036470f1fdb464a3a2f03b0405957391500a1110a46c8e03f989f9a23c4f53d2529ba99d8eeda2226cde80605581d020973aa42f0c7cd4c39e3ed1acaaa1d9790ee99856a21310ef610a28907011bffffffffffffffff0219840003675e7f35795ff08159a29abc68b6038ce34e4060b5dfaf95df06664f008381f8021943ea03180290a3246a3702dc4063eeb877ea1348697a063ecdc6546c39a28598bbed1903d7d00fee4e32534cf528c44cdea6b9723b8e243d447673dfaf68439fa64273030386fd4fa3c2520b090a94a52c415a572359f2b67921c88d4622b76f716d7e02b903ce792b8bd9a7f77d3287732d55e8f1d2ceabdd6ec3ec33736cde2a2490619e7d030aa49ff9417bdcf88dae1de24581777c3b65388134994f4c6a4e747e4eb5a7780337e8bd6d0421f882dd55e192b361b84316958863c20b1af04883115fc7b8e20a03844cccac82fc581114edfc2571f98feb27436474784ef32050462f8946f6768703a1be424ee51660538f68f6539539846a91d91907b674ca096ea61464de97c848037b0c6f33c4cc355d0359fac50b211cab5d408752dbbdbdd5a446c7c530e554c4036cb780477be57306afd444e98f762c77839eb61f2333954d7381a1c342994d1f032e332517b877cf32894b08dbee7107e54b68e19bd4b4fa2b3c628a69340abe79032ddadb082864e6d5d5c204de10f46657e9a53a2b900fd39f7cce6c58427f8240030a837e2e0a09543f9f375f57ee812e58c0d14b964f0ff6552b2686448b0bd78503fc21730f3a4af9a293211cd7600130e8132a5aa54f97fd060b2909c41db42774030b9536b1fcd2db5097c56169a88163ae8a17eca20f41aa5cae62f694e3e57a890219ffff0329d418dbd048744887cebe86d0485c66f4e68d4b037b712cc471bcf394a5f35903b02e467d3621c519eb699b9044d118e8df04f40263ea1448cf98a0539078d8b10368117291d1c7e5683fbe846ae2dbafefdc983b9707e3cf9481b866c356bb032103b7378147446394fa7253993df5786edd1931e73002f46709b1e0aa3aa40a827203adf1fe21bf05c8551e9135cd729d952f4a7417f4caca43db9058e474385adbc10379a81d1db8d526a81e642eff5d71e29de75f100e91b7860130bcc875fb0d921703310eff3452e5624f87f8fca59956f50e04e4a884b81680d137590da9af2393bd03bae8112f62da11fba151da38f3da6d1cf9e19103e3b65261ec3d03643a1ab5370219ffff037c499787b6cd3d9e089c5b08f60fe5f75a5192319799ea3896e91dde9f4be1bb03b3c70530cd1fb50e3ddf0d64b110e73d4efc040abd83de4c27cde621f32a58040322b72e6b524a23cc89806aa610f099a54a1b15dd42523e2087e2b67029b057e1034357ee179d5cf8215f04d8d8fbd28b09e2c177d5e9085efe70a968ee17d11eb603ab88ea91454ee72138c76c76416a2f700f8063c2e82dc9db132719164eac202d034290b00dd9bbf9ff2a425a208b31627626144f1596520e2c88b27f07bb99bae5037036dae6e40921fadc1a58f57e34bbe268f9b5c4d676616f4fe166a4b5fd15440345bf571acba9c5b64d43a78b5fba44eea00097e01fec63a3c8a933724d21ca9803b69015adbc8f85a19e27109202a7cbac4c000065827b2ec2dcadacf9958bb5dc03ad58edf7fb5e221c8deded3511367f29721a92c82a0cd0134e09ed163480216203d99794a15b39b210117d41440b427f603482f9151971aba18eca39853ccc2478036b5af6c26604f8cda3aae226f4c25b36550d22a9481bb43c94f1254f2c83a16203d50d716aa5c5b9acbc00b16bc0362643620f988ee088435ca7f5d225f05f5a2003355fc68d4a3d23877d770dff9e3cf9c0b1fed1ac3c96f8c54437164b92b2cae10219ffff0396ca9ffb9589131477ee02d044c6e2521c28d0df7e92afc65b52804d7e2e433e03ee4734c6cf1e4e6cb5ef4a66b815787ede1496e11d13aaabf2dff33b9cf4da6b03b3ec016fed728cccf3485410136f0fd74f6dedc9a3356159096bf17d975a84d9036163c670a8edc102c3b291dcee6880f1a7701dbbc7810e37f190a0d8d77a2c5c0323ac871f2f145c383e15574bd0090ef4ebc8b2b3b96ce0bcdcf47be849a80ecd03d21de635c653466493d312444f343a1fa305417ef749b1919811fd046677c9df03179d99ad9a3c738c287c6268f595ae273133298bd4f4c6eeb459a9991c47a2ce031a6198709ecba47dd359746a61aca5aa597f5a1fc8df7e210f4baa9c210e94fc03dd1c9ee4a2c95af96860a56b17da83b617dd0293f1631cb38d772290897f93a50300838aee38ea97609c3380efece239ea3e6692c95ad26dc27b080ddf59e9817d03c7d851bbffb524022856ee21b88bec803902be5c83246058958ee4ae1fc9725403a1e5a1b23e348ddae605dfd0cabfc342044cc9b4407a41a6f7099eab46a6318803d65ee98ad239d2a2080925fb53491aa8026b1e956eed7fceed7ffe632dc5aa85035c0cfe2ed93afdc23d9b51e054b9ca249c9a4c7b240b6cf81a4461f358d017c10325273c7272edf83075821cd36bd35bedfdf06ba81271cbedf4bf73a48a8e362d034a6871267683c9ffbf6dfcbf50ade859506e11cb5dda1f3f65a204239e31814203aa51116beaa063ba15d34b170f5359809a38105fd6a3efb284cd7bd9052fb67603c510e05e790f4cdb5aae2c4e7f9213529310e9dc2c1a33c83e62f5ee83ddb1c2038ff0331302ca8242407ae70ab2e70090c8cc3a3aa8b4dcebc40481b053362e7e03783acc26da3f62c0c131a9181d4e5918770d05ce8618c38868b45afdc2e39e7403c63e645faf2caeac7e2551eba50929c79d4a4d8ec7e5cb8fc3055b587805fbba05581e03b8d4cbfcff137a9cd23365513a14d68317bd23f1c5959cea7ac2e3bf900402032ef041f61d7f118f2ec622697548bbef39e3ecdb902f1c6cfdfbcc3732dfd0b905581e03b12b0dd0198b818fbe914d2663ba5eaed8a920af923e93259cfbbcb6500c02470b975d19aa570905581d0264136b40a9775ef4bcd120560e1c06acbaa5c76e6d707105eccb5b690c0a470107ade9a959f10459316b6080604052600436106101dc5760003560e01c80639010d07c11610102578063c02d4c8e11610095578063ddd5e1b211610064578063ddd5e1b21461069d578063ec87621c146106bd578063ee99205c146106f1578063fe3af1c11461071e57610213565b8063c02d4c8e14610632578063ca15c87314610647578063d547741f14610667578063d54ad2a11461068757610213565b8063ae5cf272116100d1578063ae5cf272146105d2578063b2d42b46146105e8578063b5475cf6146105fd578063b69ef8a81461061d57610213565b80639010d07c146104a257806391d14854146104c25780639a6e6ed114610515578063a217fddf146105bd57610213565b806329e848671161017a5780634d13bfa6116101495780634d13bfa6146104215780634f588bf1146104295780636a84a985146104605780637dc0d1d01461047557610213565b806329e848671461036f5780632d830ce3146103c15780632f2ff15d146103e157806336568abe1461040157610213565b80631e846464116101b65780631e846464146102b3578063248a9ca3146102d3578063278c5acd1461030357806328ad3aac1461034d57610213565b806301ffc9a714610245578063106b263c1461027a5780631453444d1461029d57610213565b36610213576040517f34352c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f34352c7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34801561025157600080fd5b50610265610260366004612a99565b610752565b60405190151581526020015b60405180910390f35b34801561028657600080fd5b5061028f6107ae565b604051908152602001610271565b3480156102a957600080fd5b5061028f60cb5481565b3480156102bf57600080fd5b506102656102ce366004612adb565b6107fe565b3480156102df57600080fd5b5061028f6102ee366004612adb565b60009081526065602052604090206001015490565b34801561030f57600080fd5b5060cf5461032c906fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff9091168152602001610271565b34801561035957600080fd5b5061036d610368366004612adb565b610d56565b005b34801561037b57600080fd5b5060ce5461039c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610271565b3480156103cd57600080fd5b5061036d6103dc366004612b55565b610e19565b3480156103ed57600080fd5b5061036d6103fc366004612c30565b611095565b34801561040d57600080fd5b5061036d61041c366004612c30565b6110bf565b61036d61116e565b34801561043557600080fd5b50610449610444366004612adb565b6111d8565b604080519215158352602083019190915201610271565b34801561046c57600080fd5b5060d05461028f565b34801561048157600080fd5b5060ca5461039c9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104ae57600080fd5b5061039c6104bd366004612c60565b611318565b3480156104ce57600080fd5b506102656104dd366004612c30565b600091825260656020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b34801561052157600080fd5b50610535610530366004612adb565b611337565b6040516102719190600060c08201905067ffffffffffffffff835116825273ffffffffffffffffffffffffffffffffffffffff602084015116602083015260408301516fffffffffffffffffffffffffffffffff80821660408501528060608601511660608501528060808601511660808501528060a08601511660a0850152505092915050565b3480156105c957600080fd5b5061028f600081565b3480156105de57600080fd5b5061028f60cd5481565b3480156105f457600080fd5b5061036d61142f565b34801561060957600080fd5b5061028f610618366004612ca0565b611538565b34801561062957600080fd5b5061028f6117c2565b34801561063e57600080fd5b5061028f6117e0565b34801561065357600080fd5b5061028f610662366004612adb565b611823565b34801561067357600080fd5b5061036d610682366004612c30565b61183a565b34801561069357600080fd5b5061028f60cc5481565b3480156106a957600080fd5b5061036d6106b8366004612c30565b61185f565b3480156106c957600080fd5b5061028f7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0881565b3480156106fd57600080fd5b5060c95461039c9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561072a57600080fd5b5061028f7fef6d3da212345543d99125b43af0bc451d30ffaf90d4560558d702b21179a70f81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f5a05180f0000000000000000000000000000000000000000000000000000000014806107a857506107a882611ca0565b92915050565b60cb5460cf546000916fffffffffffffffffffffffffffffffff90911611156107f85760cb5460cf546107f391906fffffffffffffffffffffffffffffffff16612d1a565b905090565b50600090565b60007fef6d3da212345543d99125b43af0bc451d30ffaf90d4560558d702b21179a70f61082a81611d37565b60d0546000819003610840576000925050610d50565b8381101561084c578093505b60008467ffffffffffffffff81111561086757610867612af4565b6040519080825280602002602001820160405280156108e557816020015b6040805160c08101825260008082526020808301829052928201819052606082018190526080820181905260a082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816108855790505b5090506000805b86821015610b4e5760d080546000919061090890600190612d1a565b8154811061091857610918612d2d565b60009182526020918290206040805160c0810182526003909302909101805467ffffffffffffffff8116845273ffffffffffffffffffffffffffffffffffffffff68010000000000000000909104169383019390935260018301546fffffffffffffffffffffffffffffffff80821692840192909252700100000000000000000000000000000000908190048216606084015260029093015480821660808401529290920490911660a082015290506109d081611d44565b156109db5750610b4e565b60d08054806109ec576109ec612d5c565b60008281526020812060037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffff000000000000000000000000000000000000000000000000000000001681556001810182905560020155905583518190859085908110610a6857610a68612d2d565b602002602001018190525082610a7d90612d8b565b9250806080015182610a8f9190612dc3565b9150806020015173ffffffffffffffffffffffffffffffffffffffff1681604001516fffffffffffffffffffffffffffffffff167ff8d5df096390c80d709314ba3a8e55a91854bab1fbf8cce78081bdd48eb49aed836060015184608001518560a001518660000151604051610b4094939291906fffffffffffffffffffffffffffffffff948516815292841660208401529216604082015267ffffffffffffffff91909116606082015260800190565b60405180910390a3506108ec565b6fffffffffffffffffffffffffffffffff811615610bc45760cf8054829190600090610b8d9084906fffffffffffffffffffffffffffffffff16612dec565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b60d054600090808203610bda5760009150610cb6565b600060d0610be9600184612d1a565b81548110610bf957610bf9612d2d565b60009182526020918290206040805160c0810182526003909302909101805467ffffffffffffffff8116845273ffffffffffffffffffffffffffffffffffffffff68010000000000000000909104169383019390935260018301546fffffffffffffffffffffffffffffffff80821692840192909252700100000000000000000000000000000000908190048216606084015260029093015480821660808401529290920490911660a08201529050610cb181611d44565b159250505b60005b84811015610d465760ce548651610d349173ffffffffffffffffffffffffffffffffffffffff1690889084908110610cf357610cf3612d2d565b602002602001015160200151888481518110610d1157610d11612d2d565b6020026020010151606001516fffffffffffffffffffffffffffffffff16611e0b565b80610d3e81612d8b565b915050610cb9565b5090965050505050505b50919050565b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08610d8081611d37565b60cd82905560408051602081018490527f28ad3aac00000000000000000000000000000000000000000000000000000000917f01d854e8dde9402801a4c6f2840193465752abfad61e0bb7c4258d526ae42e749101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610e0d91612e83565b60405180910390a25050565b600054610100900460ff1615808015610e395750600054600160ff909116105b80610e535750303b158015610e53575060005460ff166001145b610ee4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610f4257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610f4a611e98565b8151610f5890600090611f2f565b60c082015160cd55608082015160c9805473ffffffffffffffffffffffffffffffffffffffff9283167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560a084015160ca8054918416918316919091179055606084015160ce80549190931691161790556020820151611000907f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0890611f2f565b61102e7fef6d3da212345543d99125b43af0bc451d30ffaf90d4560558d702b21179a70f8360400151611f2f565b801561109157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6000828152606560205260409020600101546110b081611d37565b6110ba8383611f2f565b505050565b73ffffffffffffffffffffffffffffffffffffffff81163314611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610edb565b6110918282611f51565b60c95473ffffffffffffffffffffffffffffffffffffffff1633146111bf576040517f135420fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3460cb60008282546111d19190612ef0565b9091555050565b600080600060d084815481106111f0576111f0612d2d565b600091825260208083206040805160c0810182526003909402909101805467ffffffffffffffff8116855273ffffffffffffffffffffffffffffffffffffffff68010000000000000000909104169284019290925260018201546fffffffffffffffffffffffffffffffff8082169285019290925270010000000000000000000000000000000090819004821660608501526002909201548082166080850152919091041660a082015291506112a582611d44565b905060008083608001518460a001516112be9190612dec565b6fffffffffffffffffffffffffffffffff16905060cb5481101561130c576113098160cb546112ed9190612d1a565b85608001516fffffffffffffffffffffffffffffffff16611f73565b91505b50909590945092505050565b60008281526097602052604081206113309083611f89565b9392505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260d0828154811061137c5761137c612d2d565b60009182526020918290206040805160c0810182526003909302909101805467ffffffffffffffff8116845273ffffffffffffffffffffffffffffffffffffffff68010000000000000000909104169383019390935260018301546fffffffffffffffffffffffffffffffff80821692840192909252700100000000000000000000000000000000908190048216606084015260029093015480821660808401529290920490911660a082015292915050565b60c95473ffffffffffffffffffffffffffffffffffffffff163314611480576040517f135420fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061148a6117e0565b9050806000036114975750565b8060cb60008282546114a99190612d1a565b909155505060c954604080517fc151aa72000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169163c151aa72918491600480830192600092919082900301818588803b15801561151b57600080fd5b505af115801561152f573d6000803e3d6000fd5b5050505050505b565b60c95460009073ffffffffffffffffffffffffffffffffffffffff16331461158c576040517f135420fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cf546000906115af9084906fffffffffffffffffffffffffffffffff16612dc3565b60d080546040805160c08101825267ffffffffffffffff43818116835273ffffffffffffffffffffffffffffffffffffffff808d16602085018181526fffffffffffffffffffffffffffffffff8089168789019081528f8216606089019081528f831660808a01908152838e1660a08b0181815260018e018f5560009e909e528a5160038e027fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbcb810180549851909a1668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090981691909b161795909517909655905190518216700100000000000000000000000000000000908102918316919091177fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbcc88015593519951811690930298909216979097177fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbcd9093019290925560cf80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000169092179091559151949550919391929184917fed5afdabca1838de7f5496f997e6e788ad3207f6299f64700e63435813b7ade4916117b0918b918b918a916fffffffffffffffffffffffffffffffff9485168152928416602084015292166040820152606081019190915260800190565b60405180910390a35095945050505050565b600060cc5460cb5411156107f85760cc5460cb546107f39190612d1a565b60cf5460cb546000916fffffffffffffffffffffffffffffffff1610156107f85760cf5460cb546107f3916fffffffffffffffffffffffffffffffff1690612d1a565b60008181526097602052604081206107a890611f95565b60008281526065602052604090206001015461185581611d37565b6110ba8383611f51565b60c95473ffffffffffffffffffffffffffffffffffffffff1633146118b0576040517f135420fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060d083815481106118c5576118c5612d2d565b60009182526020918290206040805160c0810182526003909302909101805467ffffffffffffffff8116845273ffffffffffffffffffffffffffffffffffffffff680100000000000000009091041693830184905260018101546fffffffffffffffffffffffffffffffff8082169385019390935270010000000000000000000000000000000090819004831660608501526002909101548083166080850152041660a082015291506119a4576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806020015173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a0d576040517fe39da59e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a1681611d44565b611a4c576040517f1bee0d5a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cb548160a001516fffffffffffffffffffffffffffffffff161115611ac05760a081015160cb546040517f8c9053680000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff90921660048301526024820152604401610edb565b60d08381548110611ad357611ad3612d2d565b60009182526020822060039091020180547fffffffff0000000000000000000000000000000000000000000000000000000016815560018101829055600201819055608082015160cc80546fffffffffffffffffffffffffffffffff92909216929091611b41908490612ef0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16837f5de6f9e4fdf1b740a7ba3b485303743eec250be281a2dd4df046c7fcecbdb04d836060015184608001518560a001518660000151604051611bdd94939291906fffffffffffffffffffffffffffffffff948516815292841660208401529216604082015267ffffffffffffffff91909116606082015260800190565b60405180910390a360ce5460608201516040517f42966c680000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff909116600482015273ffffffffffffffffffffffffffffffffffffffff909116906342966c6890602401600060405180830381600087803b158015611c6857600080fd5b505af1158015611c7c573d6000803e3d6000fd5b505050506110ba8282608001516fffffffffffffffffffffffffffffffff16611f9f565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806107a857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146107a8565b611d4181336120f9565b50565b60ca54604080517ff3a009a0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163f3a009a0916004808301926101009291908290030181865afa158015611db5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd99190612f26565b6020015167ffffffffffffffff1660cd54836000015167ffffffffffffffff16611e039190612ef0565b111592915050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526110ba9084906121b3565b600054610100900460ff16611536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610edb565b611f3982826122c2565b60008281526097602052604090206110ba90826123b6565b611f5b82826123d8565b60008281526097602052604090206110ba9082612493565b6000818310611f825781611330565b5090919050565b600061133083836124b5565b60006107a8825490565b80471015612009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610edb565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612063576040519150601f19603f3d011682016040523d82523d6000602084013e612068565b606091505b50509050806110ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610edb565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661109157612139816124df565b6121448360206124fe565b604051602001612155929190613017565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610edb91600401613098565b6000612215826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166127419092919063ffffffff16565b905080516000148061223657508080602001905181019061223691906130ab565b6110ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610edb565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661109157600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556123583390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006113308373ffffffffffffffffffffffffffffffffffffffff8416612758565b600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff161561109157600082815260656020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006113308373ffffffffffffffffffffffffffffffffffffffff84166127a7565b60008260000182815481106124cc576124cc612d2d565b9060005260206000200154905092915050565b60606107a873ffffffffffffffffffffffffffffffffffffffff831660145b6060600061250d8360026130cd565b612518906002612ef0565b67ffffffffffffffff81111561253057612530612af4565b6040519080825280601f01601f19166020018201604052801561255a576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061259157612591612d2d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106125f4576125f4612d2d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006126308460026130cd565b61263b906001612ef0565b90505b60018111156126d8577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061267c5761267c612d2d565b1a60f81b82828151811061269257612692612d2d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936126d1816130e4565b905061263e565b508315611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610edb565b606061275084846000856128a1565b949350505050565b600081815260018301602052604081205461279f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556107a8565b5060006107a8565b600081815260018301602052604081205480156128905760006127cb600183612d1a565b85549091506000906127df90600190612d1a565b90508181146128445760008660000182815481106127ff576127ff612d2d565b906000526020600020015490508087600001848154811061282257612822612d2d565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061285557612855612d5c565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506107a8565b60009150506107a8565b5092915050565b606082471015612933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610edb565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161295c9190613119565b60006040518083038185875af1925050503d8060008114612999576040519150601f19603f3d011682016040523d82523d6000602084013e61299e565b606091505b50915091506129af878383876129ba565b979650505050505050565b60608315612a50578251600003612a495773ffffffffffffffffffffffffffffffffffffffff85163b612a49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610edb565b5081612750565b6127508383815115612a655781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edb9190613098565b600060208284031215612aab57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461133057600080fd5b600060208284031215612aed57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114611d4157600080fd5b8035612b5081612b23565b919050565b600060e08284031215612b6757600080fd5b60405160e0810181811067ffffffffffffffff82111715612bb1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040528235612bbf81612b23565b81526020830135612bcf81612b23565b60208201526040830135612be281612b23565b60408201526060830135612bf581612b23565b6060820152612c0660808401612b45565b6080820152612c1760a08401612b45565b60a082015260c083013560c08201528091505092915050565b60008060408385031215612c4357600080fd5b823591506020830135612c5581612b23565b809150509250929050565b60008060408385031215612c7357600080fd5b50508035926020909101359150565b6fffffffffffffffffffffffffffffffff81168114611d4157600080fd5b600080600060608486031215612cb557600080fd5b8335612cc081612b23565b92506020840135612cd081612c82565b91506040840135612ce081612c82565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156107a8576107a8612ceb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612dbc57612dbc612ceb565b5060010190565b6fffffffffffffffffffffffffffffffff81811683821601908082111561289a5761289a612ceb565b6fffffffffffffffffffffffffffffffff82811682821603908082111561289a5761289a612ceb565b60005b83811015612e30578181015183820152602001612e18565b50506000910152565b60008151808452612e51816020860160208601612e15565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60408152602460408201527f7365744e756d6265724f66426c6f636b73546f46696e616c697a652875696e7460608201527f3235362900000000000000000000000000000000000000000000000000000000608082015260a06020820152600061133060a0830184612e39565b808201808211156107a8576107a8612ceb565b805167ffffffffffffffff81168114612b5057600080fd5b8051612b5081612c82565b6000610100808385031215612f3a57600080fd5b6040519081019067ffffffffffffffff82118183101715612f84577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b81604052612f9184612f03565b8152612f9f60208501612f03565b6020820152612fb060408501612f03565b6040820152612fc160608501612f03565b606082015260808401519150612fd682612c82565b816080820152612fe860a08501612f1b565b60a0820152612ff960c08501612f1b565b60c082015261300a60e08501612f1b565b60e0820152949350505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161304f816017850160208801612e15565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161308c816028840160208801612e15565b01602801949350505050565b6020815260006113306020830184612e39565b6000602082840312156130bd57600080fd5b8151801515811461133057600080fd5b80820281158282048414176107a8576107a8612ceb565b6000816130f3576130f3612ceb565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6000825161312b818460208701612e15565b919091019291505056fea2646970667358221220ec1ddad0817e188696169f9f1509d86834039ef60b7736295c0b44219de2081764736f6c6343000814003300582102290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56341ff05581d023ca08ee7faa2dcd52e8cd308b005b03625b61badaae2bc4ec153aa20070119316b0219100805581e03f52ed41a6e72c6ab708aa9cd22a52d727793b943f912fc03e6d7a5bad0040205581e03c1d27fcf3ce0775c16771eaaeb091fdaee3087b94b1ee2ab6fcd290e000c04464e5910ca401005581e03dfa6d2c2e9fcdccfa164399802747991c21e8c868df1860b6a859bc1700c01470cd56852c14872031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e0344741fa7324adc1a701442395bfdaf58b4142086b4847ce65aff25114007011bffffffffffffffff0219e84b03f161d39a6309fda68e9660368515b58f2e7c5f180aa343b324e2b5da9813b17b0335f2d7010e08f93ef761421bb30accf10241d29ce43a095927a4db0c82a71153032bb813c74e3f67ef35e42e24c9ccfe8a0c328d364c8a3f9321924a089f23ea660305d5dd4b3fc0eef078829f60fd724a80ae5e5f9b58329044eabef3814b5989b1032478ebd54230b0f618b85b3a89c0a3b61339af0d875a577ec20f2d5ebcae228903935b2aeb1f3dbee3f6cd2a656a5e046409ad9a555a37052d82a1bc9d408e88f70350e4ebb54fa887fcebf688343f738e37bbb09507db48485c4b774d9ae7d285b203790f06b19b9d92312aa5d8c667d398af043595a4ac62fe9e4440bc043a6f1d1b0219ffff03850e3018cf675b808fd1d403756cce20d996fde24b17a6e1b77702fb93d3afd803f0d2839e37f55e0b332b5ca743c63fb6719ef87df0d67cf012436d1245feba7903b8debc0b4f61989234cd8c2072d7e4f1104947dfe99a148dbeedcfa3e97fd23403e45a9ae566e0b57f2a72fba794155c648df2f919090f75a6f4baa75af074557203b549b842fdc8d42445ef785d4f470be326a77e089227fd95955361aeb39cd4d703c8f3051950840a96339921cdf29ebc15f42c8cda934ba3ac405c8fcf586b0c1f03e5a6681278f9210d963fe26596b2addf3284e7336e7bab2a573e7d7ade8cc64203bee6e0763eab492ea72317d477680390c35a05a7a0212f8cb38294a95d7f7d9c038d437d698a4342a0d760a4fcaa2d7f906ca016950bb5a8557bbd0970097b60a403b28feb2eb335d24baad0d3e026cf7a32757c2ead545c8301c47af9ced50890d2039d758799c8038325f74edc3dabb3e922b360daaa8abfc851893ef758beddc6090384813051ae305e5d4d750145be574ad90e2834c496ce276006a906c2711c5555034fc87f98f2c2f69ea5254b8fa2c8f0013393f18dbc5f303440683720abe6b17203d764f9b54e29c7c99f49164f84cb4001810319a717c7dbd4742def6151cc01330219ffff0325e7190b7ed2e525a482c7ba2b34c0dcf6e48cc7e4735b89317b67fb620d135c0332b616a808594954d8ee015a86755bdfa7d0be2ce69763e47e9717e3daf1d0f2036380a850b073e94336ca0713067a0192a87449fdc7c296bd3915c36483e2cef503165df935c39d3e5686100b92a6d18ae5e66626a6ed7db2ad01d1ed18a02a038e03246d67062f5e3a6df4956b346a2b52f923311e7b248ce6fd93fc8d878a9d8ae2036f98e60251ce3bc32e6fb8690d34ca7adc2402727600615affc8d37fae070f3403167eddfd46920d03095ee67810867c365e2ee2723353e65bf4ce87fe17bea9800377469c65684e98203ec169735abe94bb0352c34072e3d76a35538a66245027be0219ffff03a52566e4bbb764c670ebbcf03ad921c3d4666c9b34163da9e0c830194fb2c4bb0327da58fd4b3ac8bd54abc92d02288591f918f4ca3ea654ff3faec5b42c3448b103960ff2d7b3437d62f06b6000a6c8d932ea31b3c18fa18ebebfbed7355964af610219ffff034e1486acd4bab5fe281af6a6621839ba86761bfec81295b5ef88ea255fa27447032491fda7cc932a85156ac74f9893c1f7c734fd62cdf7dd5c30cc8fd96be9b1c0036f74b0faa297d517d653e5ab84cc9428bb35462ead388bbf2930932e3e6b185c032e6d138bf705f2225e3d4299c874873e09d6657ecfe8038fd1d3d98a38fffd340382c647c9cf30a0b42336b23049a4c75c8c730b1bc9f7f1796bfaf54a1a9159d403a3b984ec0af054caadee9a131519238063c7cd919354487b47ba976100f0303103cd764212a131ceee4fe8f31276987200c256f8415a670e390add39e70c0ff0750365c9258762f98248b235a6af98e4366d531be4c34f04dad13e89803a9594ca8603918d0da13e6073a6cf6d5fbd58844cc2b5132332782c44bfae3771d6e2312e890351492fd3e0e0d5386f3d219e696affa0d08bc1b2f3a12cf548da688099a72c9103da0aa6bea12b2efd896380c93457891d9ef3a5e2e6443dd3dd2fc1ef4830a2af031d6b4c71f900236921206b6ef299fb3b51aa46dec4944f805d75937da070dc2d0343817662fc17e34ab718d528c52942fe9a1eb6de7b239463e8ba655a51492348032836e29a597afc2efce47f93d7bdd34730a41ce1af0875d97e22b5debd3818d5032f7296400c8023feac7591b387162241ab36c6afa6ff30853f6fee7346832d3c0325712debf5806ee415cfc348a50b2d522445b885b098b70702b558c65c05ad4303407d7ef03dd92b7e47dde50d1bd9a69a2e3e75fb59350969ebca16884755ece6037bae09593b82054e65845c654d3f06b8a5533bcf6f6121dd51cd157fd3877aca034f68497fc0def0f205f5f1342dc7b9236fcba840bc6e3c7ea139ec44deea17a10301c4ca6f0b36e40e08ff3af0acbbbe4551a6602e009f831ce5fa637903b0d33e039b5693045d1e9364d6f92c5034c23efdafb5e4bb2aa916e45e5f649bda620125032028cf31a8c7b0eca8ec75fef482fba4483fc8180429e0f5a47a8cee5caa1836033089cb7d652e2063f268e15a1b68f418fe739e14cf9f3ea64fab1531c04d2a60035599956ee272ecf8b2f90b89d401742803fd167f2ecd47167ef89fbb1f43a330039ec528accb00ed9d8617f1266765de39c0da8a2d878fdbc511956814496d07c203d34202341fe6e51a33f514c1fb38b5258490e4be24d527765816cc6b3ff9eb0303bab44a74d1ec7035ad14c724f5e6387b0cbf4c3744c67f45a0c76274f803e47903433297ad12ff6f612ea97f6dbcda158332d7f9642c628b1f8c5816b47db2654203e9c443d3103d773faa5dc4132ee2c4996b57dd3f435e6f2a9b6b3cf39022af37032b4439521633c9649f510353020b2b7fe6c8bd4d2991fa2da5de4078b1b3b1db0320e318ed034d77d57b5911506c00a32a6f5aca6a5fbfd43efe84d49f58da5f8d0336ffaa7afe2c066f7df851dca01c8fa724ee314312bdf9d4dce9af3f817b7cd203e3c8dce2cf4bc8af880865594aaf8129e8c15bfa32effe805027146233be560803dd63bc789e536575427fb2af5744269824bd104c69544c4ad7f0e747227355ac034cad63905ff43b86368e3a439ca39d7b53db09a63496feedcccc021377c728c3036e4ddcad785aed3b9bdafc2816f9154d0f3747a24cd183d7b785e183667534920301e558ac375036c35385cfb2e86eee21664016dafcde45d35dded9105d7c2a39038a2f5ed3dbb83391536dc6e0dc3dfed198c55c31d34ef0803e340a5b0349e2d7036de0c537e5c88b3d3b6406a03f0b7fa75f11ca8b75988594ffa93ec43fbd2ff403899c8f3483cf17052609baa0a07d59ae6880d708946fcdc85781434fc825be1f0345c1f6443615e8fa183f40727fc83db6932984da78a8bbbe9aa3b484284c8d1705581e03e33a7a00678910e18e52980a60c263a7f2662a91c64ed5ab3a67cbc700040105581e0345f1fc2a5fd449902f70ab1f1f47577850e100f2d0e2d88ff4362089f00c01470188102b0f7c0005581e03971363717fc6112409b97f217e9d950693b2a9093cf5b54a9afb987430040105581e035e02b25cb8c34961983196d193876f2af067a85533d76cfb88496ef6a00c0147052669dcb7ae0005581e031225b641631bd26d26f5eb67f3156bf537f5626f62ba38b4ac92f036900c0246449e8788578805581e03528cc9d3f4b353767c866d07ef225d5c00951d55d38004044499e98270040105581e034395826e728d53b4e21516858143e57fead6acd3076d3c81e1be476a90040403d4892551647b70a0015c83406c1d20647f7b355daff74580a0d96a6669c4d82f05581e035e7f63b7d81ca5ae7e279c2f933b06485d264d842c4040f2f822b4638004020359e0e7572e4465e0e20ddd86708e5711470f803af51be1b8c904590dc4ab3a4805581d02516db3df765138bfe4d798f07ff679d455ff8188a06a88e670c2ceab0c02478689eb57e993720459089e60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e4b32c109fd08ccf9742c7e09ffa8cda2bad608f5379698a7c1f93a339aee46b64736f6c6343000810003303e247bc71be683ca9cda3dd2f66b0612c2e2a10930c7cb4e2af398757f5285f170300746055701c9f3e725b4994f18c36357a7a3541e236fe46368a5d8f0bcefa710366ac2f99a53b0e96454e97bef443c25532c76263ebefaea9dcec7e0c9324fcba03420e5c2b461442b438f4a88f0cd55abc56eb58a358d8c440f21f14652d11b59303030ba56a7817a174da19a8f2f8b08669471e8795d220eee7a038e0593b2b1e0503b67d7670a5a4ed8cdfb9b1138ecaba21d46f8808f1542a04e35c8e0ff1e3dcb60383912ffa80cf6bd500a994f3cf9dd7332ae40630cfe1c9e4d55a14e7059f69f603afbe4cacf2ef33d05c1c613a7c3f6388e2fe619a89df14900a844d437ad3ff0e035a04e104dcee5ac3f411104e020ea5e47ad01058bbf593fa7d162c2394e5b07c039b3c2bc5b3e129a08bf066fa62cae72e9e0bb84991339327d9c7c479edd454420347a7a74de57ed60895973030f2f3e3a35b8f32a8b29846ceacdd5a31bd115cef03c6a2777adebe9773b696f22d846f4c8e7b97d00a5c5c44b9641a91c8636af770036877c499c065277c60034759068c5997167f6a621d1ad49135707822c809377c0375ec88590d05aafdc227bcbda615085f1c1a9e1f3badd46a638246f60f9a1b7200581f03bd56d30a0fb06d4d78ec86050b566acf19748b96812d0333620f71fb7ef058201da19a8991324507a3cf67e67cd1e5fd3eb1de5e536b2868769557f2cdfeb58100581f03ccddce3788d3a73436e31324c7917032904883c2cbdc6a7a1392a2873ea058200143f6e834468d279566035bdd482c61efaf2b03837071a91dbecaa64902e1bb00581f03a0b7651a024bd2bf885cb6fc484f26ec64d7c631dbc7b769ee95674b3b80581ff5e0d1030b84a58a8bbc693a7131298c50df960affca2416530d0e808561c700581f03976fa961f5921fd19f2b03c925c725d77b20ce8f790c19709c03de4d8140540d7e906bd9cafa154b048cfa766cc1e54e39af9b0219045403d7951753629d2325470697052f109c8f9396d26858e5af3ba052793323b9faab033eeb9b209d990be4c1c737f3177ee1a4039abc8e1379221158089bf5bb73c3f300581f026deea62aca8c72b179c43f0fd0b3194056f2369f69b6e9ba9f80d5eb981c5820edbf801e4287f35af2348016d5cb5df655f188e4a9cd455be92e45a57d73dae400581f02eb45e8cb8c75e3597d83360785c5f8a10aff4f4d15f70298b706f996b88658209d56d17205d21515c948e9c5989c0d23a79c23385b11bbb0ef8bfabe6b3a0a44033e3c3d066b6d611c8f852ffff4e8809a4a11e05f9a7648869b9f954b5ab6bbf4038d8a43a9689f2b893334df30ee8a6eb5c7a6872156398982489b4250b854dfcb0314e6a9aa0c022122c9f63926065eb2e8011aea2e1613d87e2635ca4cef7cc9f203d4d34a56d422d32c2b0b15e1478af498787cf98b245ce784d5c7aef31e2a27c20219ffff032355c3fd4911bf308855855cbbcdb860dbbb07f4c7e4235a99a5cfedd8dc58cc0383c0dd4ea309b1f5898dfae939afe12a4e52acd13b53f28049a4f6b0fcd4864f035a7d7706dad32dbaf7d42965fc78dad96a6ac3bde2f39852f525768ad131db7e030e97681f28bcd3586d908537f67d1a2c62689c6b77e9d5438085d0ce30d5594403bc47e331ba02516ffdf6b3622038675dff60f6c743d1fa2a19c143fd9b8e45390392e64be3c2fdd4b1adb93b81ac5e99b4d21c12da1847ef0bf92dded2e080e43c034828dc75f46348be500c78f634600ef413647b24d73e75fba8366d0d24e5d3cd031a325dbce7cc6a721fdeeeadb47c7ff0eb75ebedcaa582962ece6854e90cfa6e0330d26508c0076657be62ff30e610e902293b27c1c257aef1682effadf0de374e03a0f3956bce036b129f540cd015c1536998680c3d5f8383eb731919d2d529e2e003945b24e19620ea6133d9961d89eebcd39b4be0acb9e10eff5781c8c9d66ee83603da349caf9089c0b38fcb179e74754ce4c77efda32251403f81f44d93680cd4410219ffff033b46d735a3596bfbd41f79befe627c575729b6c2add5226e2acb7007f1e2fea90399efe01b010145c4629633bc536b94f646d2b0452b2b1ae0d72f8c14b9e37bae037eb18ebc7172679bffcc327ddedfd9f99eefe8d15d91fa5fa2ca554b5ba17994034653f667adc5fdaf83c2dcd2ed53b38a90a893be5271e66eb8a6a8ed08a90df20355ecb758dcfdb4161db706c1e7791ad3d06812a8ced104b74c26f05cd3c5534603a4db8215ed8534802310cd58ff11cdc1b3256465440911e412a6bb9e9c52dbac03a7f2ddfa70a323b104cc58d791eacb0d0ccee29ece6999e6ead5b77f1edfe35e03076a87c8729d0217563f739653a27130c64d370a4668822936b9bdf737186ac5032b32036613b571d54c5b20eb60eac3b98b25858db9624b28a41549d522c9bb3203d6d312bd097ead00f01c6f7d66e1a4d5ce9ada9399c9e3a634aab37864487b6e0392fc8dd9137080043bb01d29a359dddf4bf6c115c3fd1905c6e1eaeb5234def603af9a2efc819b7235e52fd2da0687ab4f3f09fe6056899ccc8062d01301e5f2b3039d2ba7cae614bae244b99f36bc56fa04e9c183e8153226c77334d645127e10450219ffff033eef1ae0667b25b33b7e67d88d0a3d7cb2af926edfbd940e8925b2482ae255ee03976633fc73c77e80b8d961fd10057154b5427fd060bbb4259ade09ab139d35c70393ed0586db83127fa221f19849cff4e6e9301f96f475d9434396eb6d3d082fcb031df66e3c8fe2c97c8606e8ef9e287a74ba8b0dc4ce2e628a044c9e8e9b554d3b0352a63355d53bb2a1d5dd0a5e3d19180a166b22d906aeea924ba6d4e49e4bc3c40321f201aa1bea734745a30b0c033537a03993bbcb497bd172240cfba7507a1526033276f10c243629357ece3a0efffea1e045e8a375a032b24357d3f38ec504f1080346edc44d3fdede7edf006a4b9829a9e62995f05cd7cb4ebf7c73c563c1a9729603afe5810666bc3d4126b2fe11dc9df5a439f7e699051e731a7b18ec3ca56d1f0800581f02479a900775d8e9c20699ead7443aa75cf3e05d94ea509b19c79b1efd2b97582053134c9add4f3a8abe4a1e8f5965405dfebd7ac26dc01f27681b45ff242d6a6603412f2fdb1b87ce1fd284b19cfc135b51ee458626e9f3fb9a3496bee50b60e75803e9bcf0fe259a55056a712c205add4e9b477a93a4ec28c536aba19040febce4bd0315215397cde471274f777dc20b02d0d4b5c4bd0340300cd91e5d969147f7bfe603436c9aee46c6fcd3e7cf7a184c25f48278880e2503dd2338c17e2124d1fc1d97030f2a34e635b367cd734d146a3cc5c95f7f2002cd4228be336aef24870373b5af03881608d563178ee5e16398be0c12cdfcb6216011b56e8479ac92adb60980191b036a2eef39caa0f8a1ae1a2b4d6a110d0b894ca3d94aa984cd04ad5779adaf7359030020dd95c3aaef8d7384c730184703cdebc0abe4ec1a395906174bcab79ba93703981f2386d0305bc078015c5e76a60544809ed8dbc59aadde7001fd68992af1e100581f034ed8410a5568df0ad3e2d9b3bbed1c97f61bad380c5d90d1ebf849684ed05820285279b4d3550d3780050572a7c8c7f09eb032b00a5eedd6ae84671aae394d7b00581e02ed9988f79f6038d4c7a7dadbad8af32f4ad6df893e0e5807a1b1944ff9416400581e02703a4c0876b05e7923349557d567478a634ff4111039940d6ae02cf8fe58206ccf9999ec63336468285a241011cc3eb8bbe5db7782c5511f5e19bce35701d10219080800581f03133ce22eebcd66ee58a8e44cc87ebeb517a074644ceb29c547a625c568f05820dcd49efd923ce4cb119f4a89fe53aa15731b2789b1070c2362e659a5b273dff20219218003c3f79506defa89371c0182ebd096ab228f3b05b72621fe158737cd1e7ae4926c03d427cbdce077680f7aeadeb1ac65b3c0317ed1ea8ddc529393a37c92ecf3f35c030f7b8bfea38c6feeecd8744ec443b86037715821ef95bbd07f1f75ae2cf8617703c1d21c35bc79e51311f97692f1437248203a58d41e723395790e14d662f8643a036bc964b6cc28956d97c5b4c007e498d144507b06ffff7ef58f6c3d4bf588e0ce0219ffff035b8d1af8d9062f96155073576ceabc0fb7a383eb68b581e6fb49d6ba73e0d72e0356b255e09148febac5c2218b8f7866879e9648dd0c82c4f55abba9179c8c86c9033a02c237cd39a498702c7820b55a09ef23b56c71592bb830f084bc654840589a037def8489e588cba03bd9d7326b4b86a5706d3cc996c0be27a6c74c7572683bb0036d651be6099e55586ab8f2faeaf7f941850d78339cddcdb7e1559aac992a3a07039d08d2a56099fb7c2db0b7064eb60299731a27cabbe25eebb81ef2956dba67b90357d90e561acf65a1f7f67479e17ca3e9f496290397f73519eb504702e1ee16e5031ee19ecf4f76bc130ab038ff59be98320d8f51db01c9816dd86e99d4ad023a1903a6cf5ae100005ed75a75b8c6ca6a81536e4abd4b81608bded80b6a91ce8a89fc0322b128a0580227fc277b8c50909023b86d05bba9c5c721e52070ccf231e2945e039acb3ca32ffc6f23494904f6ea95eceee590e5ebb8a911eaaea45e795492c86d0219ffff0317c89e90be313286f5676934986962c3353311ff7757c1a925de2dd493c4651a031c219710f8fd2b8ffafb4fd0d3752836834f454ffebb577caa3c4dbfb983eb2c03c21fe4ffd21051ee87483f1d706d983f48fbd654b9b57871e566f485376121c603d353076d6e1bd52773c3b08cb4e47e90ec81bf14b9e2702d3ca76fac7864ed9e032b26bd958de9944b2161ad779276a797e8ffdb7280bdf5dd96ef1a8a16da5c4e0302aaff0347b3de1b0d34e894e20813ef1b006a3e27943d5f72cb202d526a5d2a03bf8960f8ac2baeda61f60ee294cc8a852b53b3ad11b1b6108336858973e0cb7003d492245154ef1d6a4fe9f9293ee097d9ad36ab9117a88aca81599c299c4953e00351a3c291ad50239be40fbf3ebc6f050d2bb874cd4674bda3d2d00437f5f1cf310398e1a09eab56ade860f9ad799156538f4433ce0187727bfd586e6272ccf590430337df3f0cc23a0d54199d896c6bdde6a63f27f6ee2d1c298ca1fcfbf8128ca0cc038dfb843158882e5dd7091aa23be15661e1431bc3a056dfa33b179d61d68b1d7c03431117d4816d90de28a17dff813c98a343f375e68a0c86632f221b90f57c166c03a8fdc10c795aa8c70eab273bb63f45fe1d7123344b410500336ce1878f44125d032c66b2c9d655b323585c086496893c5e7dd3734c872105adecd2f5bfe5ef62c3034db0eb6123a92f5d448668bd40c1098082f8e00d6fff69a3d778e58ae9f48d4600581f02d8d119b779ad680299f7016a935eca1e4559e79c2952c2882d61dbb86a7958201e13be1afe575df5ce0cf12e599e325015bfd4036b9ae8fd42066bcec424fe8d03be4121bf2bf4d4b11ca49977212117a3b9ae30159e79342c546c9e602eafc8ec00581f038e1660efb56e9e94045e143a2e417024b61c2c096d530bac6eb085ef14a0410100581f03fa829e00aee22b2e27d62b4daf4f13fe2d4bcc7c76501afdb24da4a61a305820ccfb83452c892fbe83f2f8e43b02a7c4fd8acb12fdff81df94097423f2df4c3d03e996eeb9fee32471d446a56ee6520d005c1a6a5e379f0ad769514455c3ecae71014105036a7bf558ebdd8711d454cd5e7cdc49ecb85a5fee85a28ca77a4b11a97d863eb302190b40030308151d8a0a40d3254d24b4818b9f3349a9d87851a5df01b1cebb51814f354300581f02c9da36701e700c8a6dcf0f4422916048ed75fbe88c6cc24a9f98abb950565820015d56f49144f0e800b5279e24f79b8c06eb526a378f8bc2903ffa01298ee1ac03eedfe43de899defe7bede10bfbf0fb1ff15ebc5db0733cb148afa75acaab2428036ccaffce9db5b9ba4eb5481eb3a131809bd04d44a2bf8ac81a591f4a4fe69e1e03b9e47993506c882f7b6bd4ef9ef53cf2663ef6244432905123dc3e48b09ec461036d569020094a235d9b7c899a813ba15c1ea1beb78a71458b811f00da5caedad00353f059aa744ac569f6db309f360aec2f6e38f91562169a13c961c0796f7303c4037515ead230f11ffa2e6d9545ad789c3520d8d23a34a3d82ad91eb484f3003a8603e31fde32917d83ce81f0d476fc335433e5a21b6e1c7b60e57de119c4e5a31cc5033f6ad0c6b22e095e62744a415316500cafcc705b00fc64864cc2d297e7c3a530036b7898dd9609d9a6c2e7488511c98b7c9e125bfd497cb145f89beb74e96caf2a0219ffbf03cc3626a739b26652c93193a00bb11731cf5d29115106910902e668f92325f83a03aaefdadb87cd11223980f1e4565e1a09856b0a76bf6b6f35d360080acde62d6103d533936cccdfee8d7a39e90b34565f6815328823c985a4fc62b33a9ff7509fa5035f287a89a93232591cb1115d1a15e85ae0cfc80aed5e6bdc11e37d1bd08e7a45031faf5e94c6f0bc09c8fcbab62f833aba1e2ee1e40143690306095e5b11b1594503288cf7f600e00021980986dbcc399ca82d09c21ef338efd8b307c79d33ecd1800219ffff03142cd2c105d5b747023904233d1c63e1060abc683998fd8faa867d1ccbb1023c03b5efe2c6e2ce86dafd7a662c74902d1e3e95696f1af64eed8e17a05c6fa015f203a14b200767ca9d7d5b056126c497de52a01b4c9a3e81ec980243bc2b514eb4b10219ffff03dfa48c30b6a5871b018b307912080126b6332572000e0b59f134d62e2bcb400a03b47c2661f36e8dfe2f2c3a50f48e253bf836c0ffce33a31b4093b65a3773819a03dc151bc613deb91239a2a634e5124118ca00d04b0c90e9c296faa0f21a27621c03788e025e2ad8fb73367e470676ea8e92712e5502d55314b21e65afb6da1be8180391c289ebb47c1c54e0b41fe45178c1ffb568133b016cf4dc92a7fe7da5f983b503f66f821b0675112c4ba886a5d08adec549fbc811f3affb770e9a7194e39d419f039312b7855b9854d5acb5ec9b3d39e10927b419ea7803e7ba7ff49543c86db31f030f85e85da204e1c6f136f991ab4a3a74c7aa927f9d4242892ff6fa007078c34d03c08ff7e553ffb761b85216be2c195a8729a34cb8519c28aa5da64ebc542d5f1903bbf5ce8e024df4662375d0aea0ca8033925e390f660971e043554d0040b7b5c30374b3ac2c4008789b4f7c099a248812f0b3f4101a7ca66d7f60fdc60954799a30037eb3e8cad4d3a8c7a7d013d12fff7878a770fe0231e0f2bddff06ba611c84aaf03fab92037e703935f918e9cddef500c2cfed7bf1272eb40a0c449ac1be80009c503d84631c9db59eba2fbb619744a821d296089631a4a9f24f359496311cf6159ee0336ccf379b21d42087c076aa8edbce6f5a3e44b0eddc377e49e26f4796c31941b034367520f1f22896bb41ab0d366b416aca9dafd94fff199667d9819e5e3847cdf03a8b88e4516aacd73a53d5cfc8dc6768b0ed017111a268373ecf86f06eacfd3170387769bcfac806741829b5b6c79ee42623d188a893d91b8b5d82692cc276e76220300d37a7cff931a04c0ab650f08f53b4d8a63f36f95fc08eb0a4502ff42be117800581f029a914b5b5c54cb0fc519d72fe3fb3efe91134f3faef79f49dd8256505f705820e6d577d2bc7901997ec0d72c1bdb6a4f372fbfed5f65f21f6c21ae28f851c16403ced180ffa4834d4aca55705e4d058d4701ef7f6281fbc60c6ed6ba16d012f208039f94157f62f604babe6bf2fea68a559dc9986948ed6553cfe91cd161d40e3dfc0338dd893b4ef85c90db2b8287ef6f9d403bc060148a4142a3909c23c5e98ccc5303036e221666ead6770ba1f426f556bedd9559fe69bdb91721ba6370720c743ecb03fd835549b4a0c6684038399dbd9df5ff4813927416c5d7dd65c698c410fae8100330fc71275688f6149631d97652ce2ff3b73067eee2b724f3bdfb113f2f55333803595fefe4032d3712c3d240802bbc0ce847f76886141e52efcb9918a9ee28d431034b405b13ce51da03223aa29324db8dad1659fc55e8cc45176670c7ea4b44827c036c8319c5035eac421b40c605df0ab796afbeffab92be7ec83575dca0449829f903589a4512f0f265ae4535cc046507d9a922cebcadcd740194655b6a1a4b11055b03ea04678a46f8e917c950f5d01914c08a563912f71ee62df9feb7f7871eaa54e700581e025503821789a4b4ea6be72d82ec149adfcf5211381e1bd6695e086bdc9a58201dc65993a6fee48ae044739bdf0f14a597449f83a827a1a21a1c5294be899d6100581e0301e2fa3c8b0594fc66bc2b44274f26aee712ba42906dc982fe30a808c05820821ab97758fe1e48b5a51c9bc4d645c3d9b3da2b19aa5c33b387b0cd6a58cc3000581e03f5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d481054eb803eb3f501998126bf37bb823646ed3d59d0720219200200581e02922cfb52d260f1447d7df9b7b3efd80d892215bcc50d2d68e256905fb358208a1da9cdaa65668c5bde0d47e66a386b33568e50d298f12405420c36dae6af7402191c0000581f03c107679ef1c9c2ab89b53e930eb3d3f9fd5ca4a168949ef27f5e947951e0582019e02ab98bccdf876a04778008a97f5af49d8f0c66c1606a10aeb5ff126c669c00581f03883e4e44a3e3e8cff1f386347f85c052b070a0d81f2741d4a152356b0ab05820f8abe9ed78a36aa5e3ec1ba7942cde4b8a26ab8b15a974e322763c5f9f1a072c021910210219ffff03936504e538c70592724a7fb5e48079b5ac7aac7fe3c22ea9875b400166d6dcc20357e3b78f4f846579230d2999a96394081a90ca42b940f34f6c720ecd08fb3fde0219ffff03142b834959d5e70f45a679d8da64c7b1c575d85e456e8e901598b806aed33faf03d8e967cd9427982566a5591db5e041cb639e1f01e28fbccedb67e2a7001b2bf50399b9bc592508692c882362b5be7b4e5f0c3d720111527027f5e8141c3de6042a03336837bd2f088c33767118fb517da15142a38d3790468245797989036afbca9803abc1ac9c28abd1b5b67ae55c281274517454ce571069643426fb0356b4443f41036d483674a14bd72685bb6d153049a12906efb31878946b7dfcef2948b0e97e1e0323f5177b06db113759e6600bb9ec03e26f3084eb561236a46b627f11ca3213ec036691f965acce7b3678ddce8a484652ea783baa81c1e5cc11d564b6442defc3ff03e3a17b47100c92b118d64c29a85db9d5adad477729ae459f7812045a6d2cd814036361a93616f2e03ab0b660ceb75a13e66de6fa440c6b38961ae16ecb5e73a25103fe8e2aa9020df5c7ec9a80a36dd554535dbe3f7d07d5c1114be3caeb44e8b63103402cac836352e469a481be35a61f78bd5e88cd20e338df9bb394b97ec9fe04c7033f7bb9673771c25dd5b6fde25b1e2a2301cb2e3074891b17dd7b45394f5d5fbe0219ffff0326445348defdcf969eebc6f35cf26ce7af748b8a68e8b3c0daee0d834c44e0f3031d1ffef98b522e41b69bf0bbff96f54d1b3e44a50e17e50230583b2ff218ce79031592ef0c6ba26a099705b2c9f67ee290d81932e1555ecd68a058c77ba7eae289033afca30f8d259b1ce40aa1b1d402cdfef59222dad0491d9225be433ab079bab103ec6da0b942cbb2cad954dd10712e77d2e8b4f33d280900906c5cb8a784dc10dd0330392f3c81311d2ddd20194f767a6c06bbe340f443ed1088d0bfd58a3c24682b035adc23e66580f697af7c96cfdf53d91a995ae04c511f2ff0bde37b2dc2bdae4f039da60b701dab6d8501df5b0b513f9f1b52fbea394441aca1b1e690b8b0e877a703921f4ff447e5bacf7dd64c6edbe3ab11f027382504ac5da61271fa341c64089f03220a6b20bc3aadb38a549cf2665bb478f84dba53d489068be9739477201cd3fb03d5e51b94f74213731a77ed9ec1f074909d4244ebd213e40308a4d483e766705a03603237524a14a0ad8ac76f8daecf4738b0dd6f42437d145921dbb322c0fa3cec03b1cea5df5915c9d42ff2af3ecac708dd1dae493f48f747b279cf8712172d4abc03d0079efb38796978ee33a4a969b166de6544db1d94406a5e5b3395ce95ebe638037279be7ee81a95b8964f3d5fcbad2b7138a7905bf67a7a9d4002936a6279fdd6037ce1d77fa57243785a008b2728a2bc8f425aae219b742d46e70d1814b9e728e903ad35ca9259204be8defab32334a3d247c3052395c39de178bea1e575d5f4cc01035d664901bb7afaa2237585e0365d0c611a7840d3f0569ebef737ef838830ea7f038488985cb991d6d55fcba718e0e9698900158d758ff86f40bec9c9e93a063a6b00581f03eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d0542e07f0fba71709bb5e1f045b02152e45b451d75f00581f03d3085e5fbe9feea16584b41b8a91013594a6cf5857c3b886f75b7517727058208bb021f6848188bdf36e351d145755d40b46650b31afdd6e0019bba128d443040219010103ba48b7186b09fdcd0a309628e60de005f483b9e8aaa817dfe306b57304affca003f09517d2b58de1e482c638551b5fe4253fd2b39efe59d838db5ffbbcb0e5663b00581f023491b2871565f5da022fbf69400328a2978c3e1524c996868c2c7f90c0185820be7df0bb65c4e6f1e2f1996290287f8669e0a220cf4f2a443b5d88b8eea3045103655d721b3183f5ab22d39220379317a9e8e7a994dca0281f3005ee0601d0bbb403eb5d89698139ce334acaaf4d642908ebd4c400e69391fd784be6f0da5d9087f200581f02e958c48b8e7a26d2be7fabf281187629c63684717980d20c974d8e7ab2465820f20b5522225f9b07238c2287f1d39ea28ae15651f1bbcde7207f29e792eab6e903421ff64727aa4fa3767aecd24eaaa46bf79d06703ca4bda833a791dbe4c2d223037cec561dab822c2f320289f7d3b19c26d9aa00e270c0d4714b1bb1e3e96ef00a03eac23cd506b4538fd1a855f42a335cd73b825cd4fce0e3ed6bee3eaf4a3b240d03e326a4fc1fa826784ead7c25210f4dc806fc1c94d9dddd9f9d5018289d0b138f03a9cb6e28610541a57af4af67fb7bd637dd3d6ab30006e8bbbedd40ed37db511b03b7658ccaca5244ae4c75b5bcd56e20b8cfbc5f7b4449e3841281a20a88382f390398f0dc5b279a8ae93d95b14104f6a16ce69af27d168af19ce7f8e78f94cb05c90219ffff03eed83560bb9ae9a90e6d8ecb7301bd06dac86d14f7ea1051bf709c3f9f01a7e3033a2e9a9582d19194ee52cdb46dd6a3655a1f9066ec3dfb9059b6450fab0c3d62038a811004b2518f2bc0d7e783a901e4a0899ba47cd9272e8d50ea36b1b11a09ce03372b7e9e191084d7b1ce87cce6fc092640cd997d7f5e55f75887c4ed75c12b4e0219ffff03375e27cdc1a0d749346826188cd04ee979c7f09684c141b8c0083f157b877b3c032c9e7784db7cb7432b8bc3a5c93d82b7b2376ae22172695c5cc034a5db14e0a503bde7b1a57e820340e4080beb222fc2a4bf061ba82c1b95c3379be144a8f78e3903ce043d2477f571b0cb2564aa35977a983ff02faea013e1c6cefcd2eb03e58c42035671f5e1cd91b554bfde338c8136993ca73d95e7fd39da51d7617ef2b1508a6003082b2dcdaf90f00c07da432120fbbdd5e654f26197873853b4dbca3efd609c6003197536d176d77afceb1b6b522afe1ad2c993f079149dacd6ab7af897231e91c40366d537460c1915bbbbad4c718c26470264391a93c4b7721b850071ea6c58c84e03bef002eaefcda637b3fd30084004f082845da1a72afb39974fffa1444fd1a2570327e6095f7ce3a6eae52524cb0eed830fbfa2f2092dc5a5f29a87b7b812ad3c430219ffff03139c774b659fcecdd54837a59f33776f272c1321b9d270831de6121d3a02fee003e730d3dec864200b9859fc87cb3d6514a137638cc82881a4d23e19374501eddc031a7aad44157185f6fed1373b66e712b77a01b6d02bf3a4d6b2ad15c79450f14b032b71044c0a8e17a3f6b975a9a555a803fbccee31d30772e7384be2d21532a6bc03439fb7519999b65f267633c492336505806747d9665c25b169ac72d23640d252031a6e3c909881909efc59d94453fff4fa3bf6db5501b24dfac4b5f56718e5c1ca034421a6d492e9537e3ca7fcd57d314503e45e7c152b8ef78282cc2a5a5d72f75203ab246e556e3876a2ae4c0ec6f2d4337e77e7450870f0e9648408f0d09d55997c03f55ee70dfabb40374c3ffcb1bb2595762c1c10ce294b91cd6ab10f1025ebab64037d8044fa72b69ca288d31a7d66bf32f7338f2d9135a3d0cbbf7796aed63b726903af35881524510113b7e461e5591f9c876ecd70c4952aa32595ea18272fdaec4303196dfbf70910fc290d5551cb65dad466ffa7bf817538e39a2d6fc83e1b892dc703175ef71f31a89cb1a58ba442fec7071391ca23ee2179bcfaf2c78926d4490dea030ddc8804ac04c757f8895746ec13b23e7ebb389a1f7f8fba58bc3d701bc22d7a039eb917173f4cc413682445d61e0abec518f1e21fee9b53962484788c553d141803ee9c4bc796f4d090212bab1e348e903e083a16f673a51e3c2ec51d11231b27c70344fa5ff73fd16e335abf6f8c80d43122fe37ae035fed12abb7a4c160e575d20f0350031a8b7c28b07696a20873ef1aa157862c9370ffe9921fb96b80bb5769547b03c91e2611cac309bec2499b744fc63c1e14b56fa1806ecf47171baabbcc02279503fe61ff2c9340db95df2f03658d3630aa5705dc53a26c70096a75616f3f21d67503602af3da10f8a4710df9761042bb20eeba8c49048121ba79a8696f225ddb60510342ff86d4f1f470657cf24cb8e15ff022f5e840301e97534b7d77555b3e952daa03e25e27b34d72ef863c8bc0ce171565b71289c31f5063ffda6743a3432a89e53d0373ee2c8b7ecfc400e76fe63e0addb8719f135b7fbe8656917fb3d2fc0b4f20250354e8f11b9a56c3f11f2b0e11e0e560404105554781013c7ea99ced0dbe3b9797039c884ab81b088f32f88a0b7939db25d04d32daf99c048d7a9701ed370420db1503ef7156b7d0004329d67bc61c2585b41577154ec1eee29efc08e2841c89e4da2a03ae30efd7bc4da7919edd4f77c29b77a69870649d0a9c0deb2c209301cb68a8b4035249743a5d981b148d0bfed675abea6b67b524aafe408e37225b6db99eff5a6603083ed80b8daefb94260ab6d7b357c9e46d471dab74374e6252022bacb405b46f03a6cfa39a8ec0230e599b43b6bd42f9f557ca1026269f7160e3a00f9c54546ecf038c58830ec4f8a8780898837801025afeda512caf6607f47284e802614636a4de03eb04e5218606467ed0cc416c82350386618e2adcb953647c2989027b0123c8ce00581f0233449c2a9120ee9faff3974c4fa438eff495652efbe35d4ddd38b6a96ffc5820311837856a07aa98432b5a14ec6c38198eb939d0213796cd2c6d400c6fd418b10369c83fbd5b6aeee94c406eb9c00c59c5e5a11768d317300c285d45184c2476e4034ee9e9adc49359092e3927e3a6b890cf372bc1744b224c187e432bc95994fee3036e87791770919c71ec6014a192ff06c0e2e95fc0d9a46ef03760c3b28a8b5c39037a97216703df30c08d153af5d13a9446d65f24d1b2ee96e5606614f480b5af8803d451d71d168ff7e08a3c84afd88bdcac797250bc37db7c47a19417b86402685400581f03036744f58583479b4af08f90d7cb6395ac68215a6cc6846bb1a7a45f51905820c767d88843f02a8e4bf2b88f837c55f44ee7ec24c4371c0ee725c48eff9e532000581f0318a47338f48018fd84743ed3e63fa7af81be2560ca06a86dda82f713e4105820205a0baf879cbc76362d49aec2cad604f45a9febaeb5304792e7df70c84ce3ec03248895abb4d35d3fadbede4925bcf70a21c694f778bcf92305d2d8fba8de732b0219e000039cd7f176d2b83d15330f9adbab0df4925da39fd11bdeddcce84a41b79cf6da4c030be55e433766d190d5cccbd84423d83fb93116e20d5b89e6216fd00fb15c3f07031ff8fe5557a9562790fe9ccca5dd53f505a27024ecd20fee6d481731e00b400403c2d68856578da161b578a04a95e9a410b1dd3bac03e088b52d6c053730979a3f0332e5fe6c38c96b9b58cd21cc93e6b20d3488c727cfaf9db520130710ee12b93703adbeeba97e7ff5fd66e6be8f8ef5bdff001546d6e710f0f59ecbd0d9a56f273c0219ffff0219ffff0219ffff0397a405993bb17f1c4333e1de75787dc666e2c6d79837af8c3fb2245254e3efa7039108c094ec794ffcddeb4b7d65803fd7d35d2271fd5de5289ab4cd7f19d15e3b03cec0b7c6553337d5bf4107bfe836eeffb27eca49c89380364a19416074a5b3c9030050fa9f27ca547dfdb782b279045e5141e5a44fc7e425c97306c6fa5da39834038b129b44863a6630ae30fd3875aeac02cc46863e980086292f973db919446125035cc91487e683389ef322d8a991f60c519619612d1fc3895a1d50416113c569a503c277303cb0e53f0a5b94604541781e4244b4cd85b18d06b6f00174afdbfb8f1703124749c733c80b1cff7c332665ae1322e1ab425046f1d71db13812308f56829c035f348913719b5eae6bd47126cf31e6a0a51f33ac366dddc13eddb3add3186dd40368f49881cefebbbc6a041b6de00c32b2ae0a380f56334153aa8e5b5b63d379fd036fd87864d5095a9531ce6260db7e8503c048c881429905e7af6526a232f8b6ef038d20e2929d01ac231450ca5fb840f6cbbd89713831b8b1bb5d6f1c859ce990ed033f0015ed29f0ca94d1a98446fd977e26bad895360e5919f6075dcca472864d3f032feaeb597573197a6f1d5abe7ea2a08fe03f30d8b3f91fd7f466d3bd52ef71ab0396445fac6e71e993d76e0f9ec97feece669f8545509c846a01814a641af56669034474714cd0da20551c9277334e9fa1eaf1e439c16fda66ea63af24fc24ed864403f1207386f23af290d46865c341132984f4825549b53b9b718f9f971d678c4c7003a086b605d0f6451ff74b8b9edfd06a02ab14e3b63059e8951bc887ff5694ba7a00581f0384401f64946cb824819821476c69b181a2531a0e113aa850c191cc82d58058207bc9ae5e31e721ed711bb65ce68b0e22db20855e4dda0532f707709ddc864a1b00581f0331de60b27246e7f9a50dacb1b8c61024c53b962af8216c2d4919e216c59058206c01711dec902ac007bcce05ce0d4a7026b4b69d3de7de920d45596cb1cb887b00581f03b9345d95ea58752b85f5a03b76713859e8afe529c682503795313ed4831058205ce4986106ecaa57e7cbe633c190d9d41ac9a28411d1888c1344a698aa19ce220330c2ab7f682dbf466435c3e09b918d31f6fe5668b57de63b3586de248d3ec41a00581f03e357e04a5523947ab9b6424bcf2ab945ca7cb46e3224ee9b0e1f701022c05820a292a019dc928457d562dd8638a46e540c07cf1e9ab8a615c77ef466780b4cca00581f03623d2bd50358fc5f10a6dbbb508dfc96339e1909ea6afd0fb49f90bde0c05820c410714df967a45516fad93d41a458248ea25bd87df03ecd2689a2c01c12e5c200581f030935f1ffc3c06dcdb5be9a08ff6a839b7f4509001c5b4225bff634770e20581fd58874dad73dee83a87bb24fec8e691c947e949c433327535b8a8a521d118a02192ca503543d036bbcefdfa1a20be3dd0397b0dccb8f7a6729f3d18be981cad4ccb9004903bc0aa82d7cbf9e7341d818b1cf89991f651382fe0144a80ddc3515c50bae7727033415da6374cc51a74b353849533955f52e7bc80b30ee17c912a19089e1d2bbd203fa863b03c27bb671c07c57a46cd1e5670a3bb658410422b98978a66256ee392f03acff6a1391e1b7c9ce283c7e955fbc6a94b8e99125ab74744ea5a23a7ae891d5035bc2be40f63e7f2c9cadac53ebd6ebb7a45a5e9cf2f4eec808949e524154fa1d03bb475a775f7c19aa781360b7e7a2a356f1c2c65c8ee139d0a8ebdc90690e8210037a4c433d7c4811f02d82e186da1d48d130df49c2b4716c44c3c5f0a9453efb5d03c16bd30fe8c56a3ca03e11657d43e658ee65876a4b23fed7fd99f17f66277e1e035245e2ffa6d93f522fde8a3594ed924b4fc21d9108ce4cc8f5ffba5a114776fb034d131b07d07ed27c0571fbf7a46f32bc847f95bfd6b704b7540369d031af5cb303e95c0f1aca15716afa49135451243c2622343b8c59e2680bc233d4a0b4c00e3903a6d5d18c468ecd90e38b33ab9d11aeb9494d0dd220b063a4f5650453cbe7c42103b65c8834c77208344879a855e3b157ec6c508e70c61066e4c7ff7ea5ab3524740219f7ff03e91b590a6df03caac2f44b547c265802342d6dab35c563e124933f047d929f7f03de37ecaa4ab0066e9fecb5e15dd5a748f464f6147cc0fd427e5784ebb89cc7a703a1ad991e158095501101c4b4fcff0d059d215662a21448dfdc5b781e1d9bca4103bc61f678d04abf46f40606ce92e9bf3faa73e790f60fb1c8da23d092ad01475f03c1a0b0d8e56445edcd48c4dfeb0209c71327d3a2ec42296a9d3f53198467f8d103657ceaaf1cec57d66154b1778d0096b97ed7158e0412f79ed282f26b10a9df46033deb8d48fe52756f561047f65a1e6a653dffee7610108fd75ce7b08fa0e319870375954cb6e50c34c7e860aa08bc79fa0db8f91d9c39e7ba8acebfd1e862ab058e038141817fa1b3be00a19e834fb36107ba09a524084635eda4ec8630bb20af5d330374454896adbe724743313a580344c15f9db3a5c8ba6068aa74da2a7046f0433903bafea4cb8222ea7e5b952f4509a07288fbb9c0fd4a4ff128c660892a110f370803b895583f66e1638044135ad10ed58ccd4d02373e111dc9e415980c44977ced8d03dfb5120244c84c270d07dd59a7009c92f4e1120d6e1f3bd5109caa5a68e91cec03d8c401f717ff2800fb4222d33a6d49360922e03c5b4533857b15f170c9b5415b0219ffff03010a08ad5b3c4acd3a596701ca3ac444112dc7b343e471e02dd581ae9072b6d00219ffff031cbcca4152e9fcfe969b67f50bf67d76d731772ec2918abd3d12ec2ec591a0dd0310f4720ade0cf8faffc6cc13c04cc5212268983de8c9894f1bd81d2fb3f6146e03421e443b4319edef9fce504253e6bf4cf736212d1a479842551caf4019edcdb3037de4c8badbfe70de21524ae5788e29bc4339ce6455c7005db564f01bdea8194303a74253bd4f24507a1b703f8f057257927aea80984a153a9a7af92c935c721193035a321315fb90124d71c69d9de3da7646fecbe99c05e6f24fc37a1d47db7bc27a0354052458e46bbe4ed45a929d23ba5b6038892534bdf91ea0a8dcf380849b8a0003138dda098fc0e91fbea36844f24c12e6ce5fa7e070647b297d0701fc57c245ca03df2651e075870e94cdbb536dfc45ce3bb963bdb2cd2eb0ed2f88a25306b78bf303b2d166fc456d50ef8ee777ef6f034342efe96f39398ebc91186e22adce12e82803db968692317897d322db7a393e0a94df0234fb6eaa3eaf2f1c117c72c01a29d303f9f50bc0562d59a13489bf3119d34992cbdc3c2d40dd13b3cd31f179aefcdece03f6a6737f8b64eb0b86eb2c9828f4ec0449225a431b2081df4f56a554f7c9b8f800581f02fe9422fb7ff3897537e8199d135693c44daab9436a05e1667ec9289ed22358207307684ba1eba592ac520d210ad873546c8aabc917efca937ec348bdb0931087038ad7da5e6477f81031e179c1c11a8520b80f2f7454eb63e7d65be0729784449f03396252d762a0c84455e9accbcd6a497812c6f753421ae4aef0178d74beb8754c033e5b2892a0a6871196de7258894584419a446625acd5dabd80adff58aa2e7d8600581f0350c7b87494f91efda777622ccb06e6c010eedc8ba40a3950fda5f9b54f6058203dce2192d1f930da375b4d018c87aa46783540b9787d26e1789abdd0e5729be100581f03bfb9f7a098fd38ff3a7997c0018d7e4374f678e080026c3909897ea10d70582085253abc4a124f387e0a8e02006b231e60435ed7dfb57534c2cc31060d98571d00581f03d344d27b6753ce7578d77e22367d5048257d8412d164284d2c2030da82f05820be15faeeaa5379c48d2305cb31d0b1f8a9b16e5f32f8fea44f75c84b7b25642a021889033467fa59ba62846dfd21aa4fad0249db958036e3aba700ea237eff71bf73877b038cc73b34a36d6b22ca26a0a64b257e6e8801d610f969762374a768b6100c586e00581f02845ad0c3df3378c9e7e0132e600c1ec2db03f9c24f24596dd306fcbe6b6d5820c91736cb59d6c917854f7000efb76e3e26583c53955ba947377d71449c4c5d1003461000ec47dad05509c3dad2b297ef5712931331cc2ad5719883ae24702ad63800581f023edefb8465b68c344a2cc95b83b5ca3bc628dbc1e67b3f4854f904b2346a582089ca42ee07f8fe31cacf8dbad3516aa2df5479ae0e19946515286e3018e3b41b00581f02a56fb23f434047e1273b205aad9306a59979470481427d713bc9a92a2f5b5820ded7f7b5d6ff257f0695e2fd5ec5520555cc323ec7ffca43b6c6a29ef9aaebab00581f02d01d4c8c8320fa5b5708eecfdec6aac21c08ba5691ed57605b644b2f94ae5820a25991c6f6e194239fa59e5a282575f5c3a1da531a0e6f45bca9a6894c83693a0219ffff034e869447f277e562ac250f1976d97bf9c72075f49a66f496eb18c53a938c72c603d26152a73adb96654ec00f316674a137955869a61258149e39c65697bd246fa30383cd46355140aba261d65515f545287c0dce2ada6bce408c948e511ae52ff3e7034241579bbcc4630e8b894ffe3bfea0f0f640c9ecead637f08ba367903a43dc4b034f49c144a4aa3530eee3359497aa45dd2d7f6aa1bab781e28d36623caa979eb80349939637f373672fdf96e45ccc939bde4f553eae633880bedef5aa3b0a08c52f03d5ae25525f65e80307792ad15124af14c8104fb27bbf9fbc500359c5c4d9cab403903f2f20784e6ef75facb3041df4ace7efbbd3294b5dd91f439e7e556c7551ad03ad51ff8ab2796bce3b24a878d50636bb917fd15b788505e879f093f03cb41c3903bb1fe098c3938abfa10eac2400c5a91baac1f1f12673b2d530b2de19bf3057500219ffff036baca4bc4f710a80544dc1fff3c37c5b505108856aaac7a4c72787bdf4adf81b035c4f243a21d6f3d7b1723a55a9dbcb6ce6843a6e2b83e3a40e5401e310bb645f037d76a71f54e470f735933b57a1389a1a62b126adb20ecdb14a13c74b4e04f45d03c035ce9a6a86c26e9ad823396361e746492647db3b3d01f048141c0b6a079d4b03e65fceb29f18c158e8ead3f4bffe29553870619cf2dedb47cca6976fc8e0edf403bc60705eb316879d9c89bec9d2b86b6fe4d53fb0801793da6c2697b57f67ae68030f16486f37c0b1e07f796c0fdb4fc511b15d7b7dbdc63c2cd8e79ba39e4834340347e4d05817d90142aec5da260de3856c80dc9394f040395e1a366490c158051b0390fae97f98a22c8f9b245ca3f991e9beb19c026bac45d92d4a67119888c71ae803745517ffb869764ad77e3e35ee6a3d41dc1ef34b8a702c156482dcdcdeac2d9503bb7f0098af83ba3365bdae459c562870a9621f90680a7b529af60f2fdbdee2ce03569ec989eaca49359d6cb42e3f74a95a257ec3e8ab4af723166f64393b08f4ed0219ffff03c7c649ca1e68979535f6e3aecb98cb12ea810d6e759cea705890ad9fed5117c20219ffff05581d02c617f9ef14c016a3256ef95f180174f20035b534c14263666d9fee8e070119089e0219100105581e036a31d088bbae9c85cbe222e3262794380411cd4ae54e1433cfbc133ba00c03464a8b6e323e000219d9f703286325e3e3d2cf9ccbe788038218aec67d093c0ec02ebe05e498393386761e2d032ce35a18f61f48d8a3f1761cc3564f60092ffd77162f12343aa68e0e09d55a2203ebfd997a58b54aac616786741c16c1b707a5e27ce2e85bc4485cbbac5cedfd50033be6cc45a4ec661806a09f1e536d7ef821231597801707c7e288a5d7ac98f8ae0219ffff0382eeaadd4c8531b01ac2d3018ddcaf49a508b7ea948ed1d835fffa6605f2361a0219ffff0335347b3fb4beb7189ca0c4b931124f476e00446d71ff532162f33ef34ce76a99032749bbd879b25ca62c777f78152aa8879e8f59acfe8df6f797eeb7421e4110e3039f497a70417807b0558b81bc88ee1459b776258d3487ebfa0b1b70d152260318037a342d5eb7a36fa4a4c13c4719280158e3e8b7ba1f36364f18af4fb271e45da303e6bfe0ee3b81365249499fc1f36bbceecada91720231fa6b95dc0d533b842dc603045423b996141f177b4a0784cdda87caf3f2b8f9ee6b94b17afb40376af0741803f970727f838637a6a5d2c6eccac9682731781667d121598b54a2123d7865f1fb039d3484b37978236a0876f74bda92e9220475f80dcf8afc6c356a17747b06c60c033d693b6c0000656686e9041c945f6a072fe83db4cbdc40c00b41c1ac5a6d9e230219ffff03f0d34fac07e163f37ce38babb9947ebe5c97c601d3a135fce3d980ef4ad8a8e403a786d642d94e7366b5017539783c687d3a8e52fedb6c73ee1d44bc96218899b503e642e795b8d9be555b7e6fb954c0d3de3472a2d944f501714e40be1bfccc00e603bb3de23c987ab6eaa70b8197aac03044ef9ab0a7042e5a2d62d24229a8411da103cef3976aa4cdec69a6fc19a1ed00e521d68efe443531427c714904b03b93280d0219ffff038d040be6be2087e16535f46c5ff874777f9c78776020cc89b7211c7c44fba37a034f677010a68b818636e1a68b420319a7f9feba3dc9a1b658047545578b86ba1b03223116b3e218587af34acc5dc126b27be46b3bbd3777d13143d9d186ede928a7033085ab6d8c62dfc711cfb9f84e316ef7aba4ab2ee626a04b289ad7c1b71fe258037277e3ab72dce958a8af565d05131812aa6223990bd77d968c620d3142b9a9cc03ec654ba72d985b2c77a7fb3e9dc8f8ac6916314cf639bbf539156a2b17f5f23303203c141053adeff7c5b7d1d18e20d4db3eb877ef4ee997f8067bcd7facb287c303141838bfafca16183b0e82fccbc8e2d8c7b44584a6f397166fb3d0d2421e37f4030578d4230bcff29d9f48fad6745eb3fb5c416353ca386c78bae2a6e67732d38003ad5bf708695c8d962b76dd822a792e7c0c30a299f017631ddc60eb0ae18cf949034a10276a3bd9fbcb6f528912a43c946f3ddec5c74d39436bdf16fac52cc2842b03854f006b8584592d4b25522cfb5b06fddc50a0e966de1f36938eca587594313d03b24fdf7d7cf2bc57ef42feb89004680daac6df262d7e0b31df608478b8f23d0b0313debfdc10840a4e3f0ae233d634684d6813d20715fd9b782f25076b9bbc2c5f03f9af3c5877c6919106d07d7091504a9731f2e5cd02f0cee7931f8e88306fe14003839871611125cef294fa4ed8bbd34074bb6f3f1ed3d1182bc7ebe4fcc99e1f6803fcec2a4bde38cb0af0b9e219ebd467d2a9a11949596da27f135593470ec35fd0034754a390c71acdaf4a9ca43f466c7d1a9d91efe61109d566e3d704a3abeb2f340354153668793ca99b7e2791a87e2d86e3f0a9278be41e65ca7d8e2274bea6f3cc039b4f596bde7bb8fc392914afac873a2ea0ac9ab8dd8e042f4e06157da7697b2903693bef501c9c5d39ccc2e80031033838155174ba3c0f606079abb41a9d61c4160392f24969899233347ac39fe422a4c39ce9b9d9e356314bb5c6f2dd47d6e5cf39033516c8e46580d2af85565aeb5b67efd99c841799462ee86d7dbfc4dbdb953cf303fa508cb04b0f04f5567bfd33185012de685ce8f90b0c47fe45ce1159d970caa0034a9cb26d50b6c6ac7ea832505579099c8752e26deb48763ac6d34068dddaf0e403161c0c7c28e6662f6d7d1b607b138f73a07699e72ba1dcd6159d3f76ed2b5ee903ad792855162c972cae80925d495242196cd87375202cefa683359dfce933441703c2286d1f83933f101c18aabf1458fee3e1648fd51c95074b7279e6d505d929ec03536734503c1bcc144524a97fe004fb25d9c98c01e97f6d1e7218a5eb0c60d7b3030ed76b2d73768334f527ef441fa02ae7f5ba18eddc932cbb94ed7763b16fb7be0324b617dfc19a9e9ffc2bd38dff909e1af2ca42ae1f68b33c635a2151b73d2af303b03af243113e0bfe16deb3b73e8e13137a5eb6bf5e2c85fae3874453282d46aa03a4f68ed341edbdbeb2ed2c0bc643d81b3e965a67a12471b5e00d08fcd2d51f540359c31ecd0d8f98a9a3f7bdfe5c2955275763291f9363158330e46f6add489108038440011f973227a1fd52972d4f0a57c230ead6ee737bc6d90dc7cae8232ddc7203ccba96dfe70928496dfb1c92cfc956d20defc360d48a57c2b0e9da746af789de036fc51c977046c69f1f239a9b4aae508a4b4757043c5e41280da0dd6f85e37dd503a7f7109af61f15fd565b4efc9831f7cd953453a64a4559c8d505cbaa9edf40760327e5668aa5e8ded7d41c0b439a73ef7a0ba7dc11d8163d3c3270437d0e733ce203e4ad589c84ee2bc38934f3c8e2179d6a0d428330f61fdcb2977d9c04910815c203a8d667a37aad438ab7e76a8abeaf74df01428420e96aa7d3a5f706e42fe2be3f03dd9d177a6ba7ea907a596d00458b4e0c7244d60dba23177dfdda7bf2f615312203692c980f0fcc9a8fc9e7c3836282f21d8c429a32e110423576612624005e0021039965135eaa6008d46c0f39102375f53ef13b5d628a7c9289cdae16bfb6f9194e03405cb1e087dd18cac045dd2559045cab0a5282355eec05d7ec6a3d84a5bbde1303b9e61b0934d9a7c5b6e5c24285c559e56a7fb9467fad59c49bea73aa3da50e6d037263e857b007faf33fe3286518912ee3dc1c6dd8ebfe95a701e18292dc56edfa039dcab5a35075326f60b19bcc10d6f3f9411dce02b849e8c434c75c9ce2e7599a03ba1a17f3ea0ec9055ecfe787a3872c4096bc2286100bbc54f4ad44d45b37b299034f5a5f6706dc853cb3ae2279729e0d7e24dda128a77358144e4c0fd3e5d60e980605581e0327797a638e3e55465a907a79dfa968081812587a62c7e5bbc2530f96d007011bffffffffffffffff05581e03e9fa8604833c4d8840d059159ca8316485e35a987291f4faab898a5c700c01470110d6dd62dc0005581e03b666f80f4c634966e23fcd517374cd340865477ce45f6c87eef54918200c0346721ad6b1be68031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e038f5239bcd739d809220f63dca0af6fbecdf787ffabf789e487dc03d68007011bffffffffffffffff0379eb80801159b20137fdcf38c033fc96765ec85ea52dd07240d00e53d411c24905581e03d4acd14fc536b64069166e1f5048d8fc37de0a4654ba8150d95f1ffaf00c0147063d6479ffc03e05581e036ac54f470bb056bd0c32f34297d317e88a1e5da421b45409514c9747100c02442b92b3af0305d39c39dcf2139be586a6def6096bd8ccdf294c53d851b53aad82c63ac4272e039cf4100dc54b4bd5e52ecde8ef8a513d1b824d836da0dc1cce7f34b3b722b7de039a8221a6457daed39645df92ce5a202121ac0622669767e464c77de0b0b034b805581e037afea08ff7ef7aea1f08762918f4990ee31ad479aab1d4eebe8df79f7007011bffffffffffffffff02191dd903024afcfe88d38f5851297529772de0ecbb6b1f7bd832dc97999d3fecc8685caa0219ffff0388ba00b33dd452af961e123707a12736cd539c7dd263510a0456a5d9752c5a5b0317a602f216bca561f343f00a710dbf23bc36784416bca50b48f369ab897955100219ffff034cba0124be789cf34d4f0d2b0bcf5758874c0a8cc4201fb7174b784987906c3a0366e0c466616e3de7fc9a6f04cfafd8f3de52c98812b141747d6381d4db2479a903b2fcb5ad611dbbe3f6573aff48318f81d63ba9bb4042d7b2ae8d1f3191e60f5003520671c468dc933ea4f0a4d02ca1e4d0b9d8f1eae06f71b9d5dbf27be48820d90219ffff030c42f2e2a541b6e4cd052465b74d777df708271cd00f824115adf879d654256d038242563a72d3fdbe961cc39d14a39569a31734fbd534d158eb171b08a12972e803f70da640c4297239b01d145f167549bee6c487ab759e6686ad9e10f12c2e2ab7036733bd3bf93ca45a89933c26f691a1ec8455aa1b2548179ec1177a5e098ee7800219ffff032bfcb77e137cd6557144bda5fb773b2ae76cf5a86d30abac5806aa9b0fcfa59d03fd720864a63fcd25db24aa29480d5b452edfc162e1dfcd18b1c1cb9b1e1d186c032758a0ff738098ee3ef6f1a3aa0cbec6d69ff4299a27acc12fb4ce0095f985f30352d91d21587542187e228eb60660b6b164c1d8aebbc03349772088067d1b96d4038e58b4169fe62dfd62a81453ad6f577319a3c87a02081702a79a8062cdc892510382ad8424b64d75f497a307331c5f5fede5eb937b09b11399f6946501e4957fc303132fbb28e5b785dc7b3756895580bf611cd5f6575bf4ad0fbf4809ace65500400399d7610d3c956303619dd8e47b9f60e4c31e1b8c1e1f37ccc04b8a378442b01a03d24544b64f8cd03e9c52ba0e4f645c1afa24304c4d7d62676bc1a07d821efda80337cb26c4a3341f985b3531b6425a25ea8b1c5cb32a27d1ac0d7b777ccdf0fbdc03f032e7fb482393068540bfbe0844f6d045118014e37c568dcda4811189b62b8903ba39504f02599b84fded2d3918f434225f8968b447332e5a9c3d5f5c9197719b038f61ca481833fe684a2d93d302fe958c033d7c3e49e142b45d21d18ba705e6f9034608be4a2922896069dffe53822a14ca2e94cfeb66f235caaf56127bf8a0af540306764235b6931a4fbed7033276399726053fb355e611284bf36f3f67609c396e0323b5af00f69e85df6cf2c960c8bc4220620532a8870b96049c89073461fedc1403f93eb8ca7d80044f2b5a609a141a844de4407a5ae58976292c7c9560fe5221ec03fde5675afa44397585bc86bb64ff36d2302d5e9eb5ae51b9e5336f995b313d4503a79ccb91c5c5be89db09c19cc07764fc62e399fddbc4d898e1dab2341da0ae57031d8a530f3cdb0bbdcfc98f1d9220a1f80c65db93668ed467d3d4507b702923360357bf10c31482f251c9a89b4c61ae1ce15dfa4d3230579ccdadcf4397fd2a5587030bcdfd36f0f30bc04a590365e4033bcff68c90f204f249f6b9a61d16e3c1488003d6b579059a21570fc6ce04adb6b6cd795d98e1615999d35d92cfd2f944021090030fa482e0f43ad33300daada577436396ecb6889bfbe040d5ce6b36e2991c38ac03d7fac645728d363db62a1d4b492b10952e4f38c58e22b3072e9c8e4cd2af54dc03556f999588a66795b4a2235574bafc719231b6772eb53125b93e7f7544794f700352f3d1742cb8a172be344514d29248cc57568cf59943b3eef1b2453da60e7d3c03884e5b3a084abb2808a8652b335b94bc14685851d6e32e72aa76fefeb8568de9031c9a842fbd52eefff2ecb773b0ede8dc74ee26ec560d94f67b80d8664176699503d835d15f58be195916661ea09ba5344d2fb6a7c6cf07758d5ab1290b7b3e626503536378cdfcb0dda1025faf9b5bbeea10891a087710e910df79f709ab75fe95750340d143e4c76cbd9a3aaea0b902d6616d9026c83ca89b07a51b2ec910f9f20cc403270f37e1508e3e53ca898eb623cb6fd85f833ffbf6407f5e530bc34746bcf5ab03e32834bd22785b7ae19b8468df443e96789e7c6b3abe4d84a5f07a4076ab86ea0324f958df442e3295123e0265136c10adcb8b166bcc257d1253a8882c83c214a00360f2b78282761695a0c553cb84d231afc1a15e4246ff8762c2e5e0cf4ed8ab030322c31b64f44635dda6de62d43cd6debad5614aada550dd84bac5823beb6de235030004083d0ab25ef5e7960f686f2abf2bd73626614492d438db6c0be76e243ba1030e90d6c14f93ad715a65367fbf4bbd5d6b4bc5caa50dfa9499e1d0bd326da2ec03d2d9bb6571720919dbbdfae0890cdeadb8234bda99b4cae0e17933fadbac750e03c6969088516fa4466c4ad238b7a4225d99e77b6fcb4b900aa8c3bd0dd136c51c03c899bfd91c94978369d75edf161ae8058bb3f3e2346774eb6d5311aad8fb924703cfb774e22923bb8a76e087ca099d01301c11e77f45c2effe454b64286f5bc5a205581d02bde148691b760d5d7bef0007b20bf6f6df9b9bf767bcbb5e8989c7720c044675ded9f6800005581d02b872bcfc3b1c0c9485ba59786330f35df082779f494a0575987aef000c01470872bc60a5a5da0219080803992188de28c3bf5276e314a6ead3a76dbbf7953c27314e493742122c7715a15a03a40d9d31984579d048025ee8ccab28f2da761596fc21aeb73faf7b9e53d34adc03d003169eb457730449696ebc38fcf29f40f52b4611e841cc30169f590a87273d05581e03c6fce5a4c7dcbc11e04065ae63b4f572c72a9eead2ed03bd9c6bc36680040105581e0318f216207ff45eccd7134789636b5f1e454199060826dcf56f0a01fb700c05465e336f15260005581e0395e2f5eed4aa891a54da71af398c5fb514d73fb678561734a3fbded8c00c02470121be23b08ef8033328eb6e776199b5f294a4f4e46b5eeb1ca74ae1e0e0651267b7949e415026da01410e0219d15303e90700a3e11e061625af44a872cc279ace2f364f8d9bdb6ab8e25e98f5e9602a037313af7272ffe83f4eb2f1bd349cb4c4fc6e3dbece8622990909d6ae449acddc0382eec0c7ac0a7604bbad00a7c9b104a04e0b5b1e19d07d9fe00f3e70b13635a20219ffff0385aebb67675f17f98d360de7236de98dc17ab7b04e1d51542b189b32a7c6721403035ed31900d4672a57552ad060108f17423b6f733fc3adb6a7ea37ff4629dfdf03972e5b1e585d2c88c049e29107a0ffd593cee6035c7d92757235c446bbb2e2af03c592db23369ac217300434ca99aaa7a9634b5c32799979cfd9ba228b127125150334ed04e178ea01d12650d284fd5b4ce1382b98c73234f2ec725ab63114eafbab030206e2f08705d24fc99a659996760ebaee14cc665577a98a3205ef01b7d1bce80219ffff03ed320d5510806a657c8e38e75d6d849eb75b6b96128397d00a5688d700c02f710219ffff03b95e9e6c02f78149b5a52d3e1ddbe8c635035d6ed6ad02f0c01a401bc3745fed0343d672e0c06a244ad7192d36e914c02a31f70a27cc2d2cd409c05645b2d5680303c9f904cde9a57d7c89e7ff35e48115fc18661c0b49850ebf8bd0ba865348f38603b544eb2d3e0529007b250d9d160b952828f862fb1c949088750491eec64d145b03fdf490d0b1b2b8ac9795204aa36f3a448537766d31992ad45315275e72a54a7003777c5f84ee89abf3ee0e4e9631d747bd4559f49d158f84385174b0d24983e00d030905690c2b2213f7a78327aeefa80ea5de39ab44edf8d62473ef2c0433d4e39403b5a6b65e6f8f8f2795bb6ebfeaf009cb490c36ceeb3786942bdbb87d0cd699e9031895d2a3fe3f92a9ff1f86166f1fdfdc4622659dd0d6060578925201386bfedc03193159e64135975229c516b4e24c19d0489dd0bead6497472c2a78ca901033c403bf7012db73cef493ace98933b9df8ec0a9a247a9ef8b9b553be1cc50099396a30366a75f0b84bb640455f5ce663145ad41fb643d562c7a9531641e0e1d7dc68545034478d779e1de2092bb06f66d7d57e0c91067fa6c6f96fbd950a2fa48223aea970394eca2874bb66b8cd7d9388bd2425c35ba3b3186438843100e4d8229dc01dbc9030d9f837a0c2df73d7f2a64e0ce5b921c75fe1bb77f57a1b84d1418fd43fd7f6303431daf1a11e89de8742db9b39e420dbeca3f55b7532c7cfbbd605b76ba54d8de03d20f4902cf4725374cf48f47da12a2c17fada24ac19c4d9d9c6452ac7e730d9703bd8cfde80191cec76367cd42b6439de1bfa8d2d3fb4ad859561e80a61f329fd503ce36cc30b1bafecd1c17c729e2ae9c1abc639b5b4bf6001b6a70e819f9aa1ded039efeaab43926ea40c688541e7a766eea543b80ae700993744fdf3af462b065d90309464e6fe1517719b4cd4b952f50a7bead6135224548530986719d11d58193ba038d2ef4a38f93c970c8516cb67ff53783b068bed9d89e05519d3a65f0d9d2cc0603fac3b2dc90276ca079958a87b3dd27bea2c1b3022f9115f54078c1d4b78411f503ff293e5d338d97f109060ad6a1b097db7b1a33ddc4383bbcbd993b916e2a4bae033dcf86bfc56b770964a01039d234a78c3dc63fce83d798d9e681f27d1ed914bd0306b44abf45bea4cfd18ad99750cdb70ed0576cfc78b67ca354d420979c4253e60399814c999368f10b7397d87cf6f663c256daa71e0fceedee9cbd756a2912f187035a0eba1a8b8d0a3b26d668cd341e0d36a88a3f740031f82f5022ec3857a8fb430349ef6969d0368bb66f1bb2e112ba9914fe0e95e4802f33e9f99c3a9dc72d12c603ef66b0cfb75d646eaae4210b55cb4478be4ae236121eb752f85efffb090d09ac03924f36aa5475188bfa74e307495e9d7449d895dc63bdac299e4f2229d791b0cd03680d4115fb5dce769c3601aa5f13b8d3b431217bae50e125e2c1a406e6fdfa7b03700a5073920db92aed8b6399debfa3c4b1ba1ff3dec9b24345c3c1fd15cb7d170605581e03f4dce5cc9014cacb5dbb7e6c2c63e5a27c87c575aa5f9fefe40f3232a007011bffffffffffffffff05581e03107f8ac94fd358cde521d9cf349359df2444e7525a44b6fee80be230e00c034701f08f8d3570f0036e195bb4469f58e69443f2bf4818a5a655a0fff3915bb6dea03901bdc59b4640032df39c0062882ba634fb24c89e7f9871ecef10a6e6a6e79a336f6ed463d5c942031aa593b75e9badddf988da2b0652491a570f511942f8ee9bab55951b234e102a05581e03015300ddc8cf96e7baf8a0e7fec00c553f347797b38134d65ff34c2d3007011bffffffffffffffff045919366080604052600436106101855760003560e01c806355de59bf116100d157806395d89b411161008a578063a9059cbb11610064578063a9059cbb14610478578063dd62ed3e14610498578063e345ceb1146104de578063f887ea40146104f357600080fd5b806395d89b411461040a578063a0ed4d5d14610438578063a8aa1b311461045857600080fd5b806355de59bf146103405780636c0a24eb146103565780636ddd17131461036c57806370a082311461038d578063715018a6146103c3578063893d20e8146103d857600080fd5b806323b872dd1161013e578063282655af11610118578063282655af146102ca5780632f54bf6e146102df578063313ce5671461030e5780633eaaf86b1461032a57600080fd5b806323b872dd14610274578063250b1a7414610294578063259d18b3146102a957600080fd5b806306fdde031461019157806308fd3d05146101d3578063095ea7b3146102045780630faee56f1461022457806310ea31e01461024857806318160ddd1461025f57600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506040805180820190915260078152660a8e4c2eccad8b60cb1b60208201525b6040516101ca919061165a565b60405180910390f35b3480156101df57600080fd5b50600d546101f490600160b01b900460ff1681565b60405190151581526020016101ca565b34801561021057600080fd5b506101f461021f3660046116bd565b610513565b34801561023057600080fd5b5061023a60065481565b6040519081526020016101ca565b34801561025457600080fd5b5061025d610580565b005b34801561026b57600080fd5b5060035461023a565b34801561028057600080fd5b506101f461028f3660046116e9565b610626565b3480156102a057600080fd5b5061025d6106e8565b3480156102b557600080fd5b50600d546101f490600160a81b900460ff1681565b3480156102d657600080fd5b506101f461078a565b3480156102eb57600080fd5b506101f46102fa36600461172a565b6000546001600160a01b0391821691161490565b34801561031a57600080fd5b50604051601281526020016101ca565b34801561033657600080fd5b5061023a60035481565b34801561034c57600080fd5b5061023a60055481565b34801561036257600080fd5b5061023a60045481565b34801561037857600080fd5b50600d546101f490600160a01b900460ff1681565b34801561039957600080fd5b5061023a6103a836600461172a565b6001600160a01b031660009081526007602052604090205490565b3480156103cf57600080fd5b5061025d6107c1565b3480156103e457600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101ca565b34801561041657600080fd5b506040805180820190915260058152640a8a4ac98b60db1b60208201526101bd565b34801561044457600080fd5b50600b546103f2906001600160a01b031681565b34801561046457600080fd5b50600c546103f2906001600160a01b031681565b34801561048457600080fd5b506101f46104933660046116bd565b610830565b3480156104a457600080fd5b5061023a6104b3366004611747565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156104ea57600080fd5b5061025d61083d565b3480156104ff57600080fd5b50600d546103f2906001600160a01b031681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061056e9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146105b35760405162461bcd60e51b81526004016105aa90611780565b60405180910390fd5b600d54600160b01b900460ff161561060d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105aa565b600d805462ffffff60a01b19166201010160a01b179055565b6001600160a01b0383166000908152600860209081526040808320338452909152812054600019146106d3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546106ae918490610aef565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b6106de848484610b29565b90505b9392505050565b6000546001600160a01b031633146107125760405162461bcd60e51b81526004016105aa90611780565b6000471161075b5760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b60448201526064016105aa565b60405133904780156108fc02916000818181858888f19350505050158015610787573d6000803e3d6000fd5b50565b600080546001600160a01b031633146107b55760405162461bcd60e51b81526004016105aa90611780565b50600354600455600190565b6000546001600160a01b031633146107eb5760405162461bcd60e51b81526004016105aa90611780565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b60006106e1338484610b29565b6000546001600160a01b031633146108675760405162461bcd60e51b81526004016105aa90611780565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156108cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ef91906117a0565b6001600160a01b031663c9c6539630600d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610951573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097591906117a0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e691906117a0565b600c80546001600160a01b0319166001600160a01b039283169081179091556000908152600a60209081526040808320805460ff191660011790553080845260088352818420600d805487168652908452828520600019905554818552600790935292205492169163f305d7199147916000805460405160e087901b6001600160e01b03191681526001600160a01b03948516600482015260248101939093526044830182905260648301919091529190911660848201524260a482015260c40160606040518083038185885af1158015610ac5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610aea91906117bd565b505050565b60008184841115610b135760405162461bcd60e51b81526004016105aa919061165a565b506000610b208486611801565b95945050505050565b60006001600160a01b038416610b8f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105aa565b6001600160a01b038316610bf15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105aa565b60008211610c535760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105aa565b601554600090819060ff1615610c7757610c6e868686610e30565b925050506106e1565b6001600160a01b03861660009081526009602052604090205460ff16158015610cb957506001600160a01b03851660009081526009602052604090205460ff16155b15610d0e57600d54600160b01b900460ff16610d0e5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016105aa565b600d54600160a01b900460ff16610d2a57610c6e868686610e30565b610d348686610f16565b15610de8576001600160a01b0385166000908152600a602052604090205460ff1680610d8557506004546001600160a01b038616600090815260076020526040902054610d82908690611814565b11155b610ddf5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016105aa565b610de886610f93565b610df28686610fc1565b8092508193505050610e0882828660055461103a565b15610e1657610e16846110a8565b610e23868686848661126e565b5060019695505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054610e81918490610aef565b6001600160a01b038086166000908152600760205260408082209390935590851681522054610eb09083611370565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f049086815260200190565b60405180910390a35060019392505050565b600c546000906001600160a01b03838116911614801590610f4557506002546001600160a01b03838116911614155b8015610f6a57506001600160a01b03831660009081526009602052604090205460ff16155b80156106e15750506001600160a01b031660009081526009602052604090205460ff1615919050565b600c546001600160a01b03908116908216036107875760148054906000610fb983611827565b919050555050565b600080600080610fea866001600160a01b031660009081526009602052604090205460ff161590565b600c549091506001600160a01b039081169086160361100c5760029150611030565b600c546001600160a01b039081169087160361102b5760019150611030565b600091505b9590945092505050565b30600090815260076020526040812054829084906000838211801561105e57508383115b60155490915060ff161580156110715750885b801561107d5750600188115b80156110865750805b801561109b5750600d54600160a01b900460ff165b9998505050505050505050565b6015805460ff1916600117905530600090815260076020526040812054905060006110de836110d9846006546113cf565b6113cf565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061111857611118611840565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611171573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119591906117a0565b816001815181106111a8576111a8611840565b6001600160a01b039283166020918202929092010152600d5460405163791ac94760e01b815291169063791ac947906111ee908590600090869030904290600401611856565b600060405180830381600087803b15801561120857600080fd5b505af115801561121c573d6000803e3d6000fd5b5050600b546040514793506001600160a01b03909116915082156108fc029083906000818181858888f1935050505015801561125c573d6000803e3d6000fd5b50506015805460ff1916905550505050565b600080600061127e8585886113e4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038d166000908152600790915291909120549294509092506112d791908490610aef565b6001600160a01b03808a1660009081526007602052604080822093909355908916815220546113069082611370565b6001600160a01b0380891660008181526007602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061135a908a815260200190565b60405180910390a3506001979650505050505050565b60008061137d8385611814565b9050838110156106e15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105aa565b60008183116113de57826106e1565b50919050565b60008060008461141557600d54600160a81b900460ff166114055783611417565b611410868686611456565b611417565b835b600d54909150600090600160a81b900460ff1680156114335750855b61143d5784611448565b611448878787611456565b919791965090945050505050565b600080606484156114b1576001861161149357600086116114785760006114aa565b6012546014541161148b57600e546114aa565b6010546114aa565b601354601454116114a657600f546114aa565b6011545b91506114b6565b600191505b60006114cc826114c68786611526565b906115a8565b306000908152600760205260409020549091506114e99082611370565b306000908152600760205260409020558561150d5761150885846115a8565b61150f565b805b905061151b85826115ea565b979650505050505050565b6000826000036115385750600061057a565b600061154483856118c7565b90508261155185836118de565b146106e15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105aa565b60006106e183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061162c565b60006106e183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610aef565b6000818361164d5760405162461bcd60e51b81526004016105aa919061165a565b506000610b2084866118de565b600060208083528351808285015260005b818110156116875785810183015185820160400152820161166b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461078757600080fd5b600080604083850312156116d057600080fd5b82356116db816116a8565b946020939093013593505050565b6000806000606084860312156116fe57600080fd5b8335611709816116a8565b92506020840135611719816116a8565b929592945050506040919091013590565b60006020828403121561173c57600080fd5b81356106e1816116a8565b6000806040838503121561175a57600080fd5b8235611765816116a8565b91506020830135611775816116a8565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000602082840312156117b257600080fd5b81516106e1816116a8565b6000806000606084860312156117d257600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b8181038181111561057a5761057a6117eb565b8082018082111561057a5761057a6117eb565b600060018201611839576118396117eb565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118a65784516001600160a01b031683529383019391830191600101611881565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761057a5761057a6117eb565b6000826118fb57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220ba81bb724b506212a7f6dfdb880e4be57ccf98aede50010d50ef73a90a68242e64736f6c63430008130033005820028856769e26a8479760ae936ea208c604964ee24f50afd0d7bcfc1e260682c54aec0ab04e42dde269ce500058200275b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9544d8412657de85ae6fef885307fb1837dea2a8a60005820026b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0493635c9adc5dea0000000582002cb1ec019b05d0a73a4e8bac08d29acfba4cc1d71cc342fa68528fc2950561f4101005820029622ffff39779aa2ad43997c99e8fa17ddd51a6392c60fb3d228b0ab4dc6054b01279d1718d7d080e98f920219804b03180fde14ee0290287ca13ab162b3aceb9fd32103f157e888996933e01b8004710058200291f2ba9ee17e99ed0cabc3b8dea3649a0e1dea4b7dfc97255f2fdf37cf67c14a9fb42dad63f7b77ba48a035db6675c1b747d19b3fd88347cbdee24f727a9c5cb0239234a9ed00bd5bde412005820023d7215848a6a7a9f5163df2cd8d253a1d5dfd9680c768659a67ff5a8ec21784b52b7d2dcc80cd2e400000000582002b2993fce4a44ca3a1a8f40a57eb28df507fea964a7a81d0df7018a17a5c9984ac45a0a3a1f4fc0e083a60058200264dc73996be64447cec81737f9ce7cbc1038024a62c064f28950ef710a38d54ae21cafac5e78f0349cf800582002ecd7dd715ab27ae454290eae7479a1303eddf67d8f203a11eb37bdbd56c7fa4af41e819ba7b6fad1a8a30219a34400582002ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68410300582002ddba9ffa3d594dbd7f7786de45e36b1d2ac7057bbcbfce4f114795b5fbf8ac4b016b2f93ac8669e8bf0ccc005820027213ade68ac78056b27d14eee94be78ad717625d6c7bbb50543094ac833fab4b014924333ee1bcc2516337005820027748bae568bbfd37d65de6eba05e7f29d52ac4700475f4cc25bf7364759f0e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820020b9ef6ca6bfe83d01fffbf0bdb4564d1ce5ae0caed94ad31a9a90c55a200804b013a6ec2f8655adf7a4fb702192612038098676a9f409be00de1ca1b7d3b01a14c9055a06f605e974019070f8cf869c500582002ee1fbcd749f452c083b77286b5980ddc74872f2a06e6023230734d13d90e1e4b017a3d007ed661bd279df9005820025d1b64df61c1e954936fcb42d554054eaaf11938a4d737dc00ee47d9bdd1a64b0263239f92528c969a37b000582002aa54ecc7a80d4aa40cbc256bfe9c6834261fd1c1c720c65756d89173328a834b011f89a2f8324d7cd855ea00582002e1b2a2637ef211063eeed5a0e223296d2fe8aee448f23320a9e36b6f6c00845820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191282005820027bd236962c711450a419ceb50f906bc2bd265b1df8b4ee82fa5801f4766f594a5f08bb8b79bead458bb300582003101b6dbcf25305ca90c60b344b754f92a36dd33e80478a66eec813a236c6b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003e8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0900410f021920800058200223e5e209ba129413530b6cce939e77e5f73bae132e3601bea04fcc500e2d2d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820023ef331a80911dc6c83667930d39f6826c1847c166da873f335c36a20fb2cc55820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021905440058200265cd878746ab54c73dc1cb3b995490f6d1014001472e52abd9a2dd190e05f44b23fab32d75beb14c590a120058200272dc51dc05491dda2b1456906b9f54594e876188cff7ff90dacc1bd330ae8d4b0152d02c7e14af680000000058200257557d0734c01e58bd4f1346f63917db25792c622de680673c2b99d01dccd05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219c00803d5016dcbb7515c58fde2a0d4cdaca725cb520a5c82ab1dab6de33fec8df65f2a0058210319727713b83c6775548d2fcae8889aac54a7ea632ef746c455e7d4b70336f2604a36d2c8a150ff8e6d7fcb005820028bd16594900685de5524a430148f38d8d8972320c2d8d7a2f05691006a45165820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820027605d9511201ecaf4fd9125400b9fd13dab8fedc99db0c1fdfd645a0d093265820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820021e00b3e64484ce47e7e30797f424c629de5657bc1bdd93f26544d1f1e180f241010058200247d5a08d997ca8c40c93331f7e5bb7c9e017b45451410ebdffd0bc222732074b01759fa9993b03b977daa003f0d5aa58e958847cfdf184e2b53eb1d4f42ec27d9c446c2e22f023454e605ae10058200230c0b04bc8d8aa9e7dba489d41634343baff18a54579e723bf8cae778727424ab2506bd828179185305b02196930030684ec686ad3b78881f4757e2ec8779a0969573b82ccd8ba4a022834dcfb12d200582002ef4aa94ecd3aeb3b391a14ad76ef9712381e97936e8e3b7965e516891e00ad4b01b20058e30e3e77526c1e00582002c9d856be87bb887c6f6a47a22d7025d95be28429774adace55ab4613163585410100582002c91e820822bf5fc4b5d1fa520a85373e8540e2d7f71a3f99cda8610576731a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820026c2861c85ece1f0861e0bfc33bbfe75d5df7e49d00d7f448f8c0251331951e4b52b7d2dcc80cd2e40000000379b70b8e1579fcfc139651290b85e8d8d58909e40e75629e015f9d53f80f837600582002621f8d0668f096352876fad144783675864cde67f03c99b7ee283077e2c34e4ad3c21bcecceda1215f9a0058200399f5453924c4e690d38b04fec0595a10ab5c5f76c47217a2ae86a418908f604ad6254fa7aede06a233ec00582003b4c744ece2fa7b094c2b76d99ee53afb59b0e43c8362859d4e748453a92fe04b0175aa505884b34237b38e02182802196ca6005820026365e2069f7fda921b6a85ff2c1806d6e0009add708c709632e2939eba6ec45820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03d2b52c5b8c4db5a6897ec586dc005df7ce03441873d04115692c80df36f6737400582002b069dec98696ea7fec3a3a9e75f860f818b6de004bf75809ced5d5c77cafd54ab5bc073398849b62332400582002fb0ccb981fc9c9ed37de14315981af9e613e62e7229f3348edb0c4a8a92aac4b0152d02c7e14af68000000005820024e3facc78d1215faa89ee477abfbdf55ad9eb5d191bd6876dfe65a5ecfaf7f4add1de07d891a01cafc44005820022adc8148e8e1d7be362a69605eddf5939bfe726b85c268f47917e62f4110eb4a6481c2202e91b2bf3ce7005820026d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec413d0219742600582002c35dfe1a90e15263938b06a7ad3672d674669ba3880abb4df405e5ffc80f0b4b015207fd5b1c7872557b7f005820036990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50570101017a250d5630b4cf539739df2c5dacb4c659f2488d0058200328a480992eb15867aac3c687683d54c7e4246798c18ce2f7a50d5f9b0b1a905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219480003fc8766b0c16dfd7446389d7a5370a4d4cd3613e87e4031d871376988c3c557a20058200249920b4797a9f1bc24cadf96ad4161c2462333c2994894bf2c57351faaf41f4b061cfb1a46656c251301fb0058200204fff2662057f026701b20b366d1db7076036042f14090c236e7f2db5ebda24b01622ab04b02740346965300582002403e3c41064598e396544fc5b34115e85eecbf8c2e7eab6a7eb3cfe9e873725820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820026966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7545772a0d261d0b459971fde3bde1dad78b1173b020219dc8203377fedb6b0629b12d1af5f9bfc784714b0c3508b02fe59b6b01cd917a01b2f3500582002acfc96162fb56304ec6a808ba258f6a8aa98406aa7f1c248c4efe9dcf953ec5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f4a2a5a058fc295ed00000000582002ad38ed0be52eade5da4e24a702364025e560c17242cf7119242a4487ae75cb5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021920420219ffff05581e0347c463f6a0954267d27ae25e07dea38daca96fc86f7afaa9915a3fb710070119193605581e031e42d3f67f0374dbd77a1b8f4435d3c205df7e37eb017cd7348ce3a87008472f6e5d25a5aa9805581e03aaac78dd569be80b9202f49dc827172c5fd37bfd0249f166a4ca2cdba00401032ed7b5c6987bb8b2f8ac3580155c7a206788a0bf7c7b0460e47490829c81d832032b3d6dba3d4187946004a8c9cd05df53cfb82f2b64e3ec386afca841a2fce49e0219c97903efbbe854bf55414b047e286623e42ac5faf11f16eb8b085a643adbc2dc090e5c030c5db3176c460a27150deee710fb512bcc9e3af1aa57dd4b1b165d8757187d93038a6990d87e9f8c60584b9966efb5ae1d88564a264726f2cf6f4cce4ddf80d774032225e0031f661eb507b76e9462d9f3fe1d6494c80c3eac0a70425f3efb62a56c03a82c1768d75f31c13c0cc611bfb483b119525a16169425304a90860b8adbf3bb03b4b05cd6c172345f67926a15121909d5513956ddd37730febf781242ef472bbe032ec5f89f698eaf32a5be35211ecf60f86b2e76adea661550236cd31cc964821e036c2065b5a22dba4f0d46e21e91d24f35a7e406d3157427f42438565e91c6ea39038c39520e091686bc45cb87e6841f9ae5c4dd484ccd10723b3ffbcb159cd60ff60384195b083d45d619c1605509121200a5f77ab0047c585e758b49259401d625610219ffff03213905aeb13defe9b67fa79a06f5d17b3cdad7050c6cc4533641b8583bcb8410035e0c2ba57a074bfb5132b02509e5a2658cdac7a7b839f82dc2b95660d80eb0b70219ffff03538f60bd8bdd7154427ae3b70c10ed0ae4b25dd8fc7b8d75d94ac0aa65c18f070312a0633551b330b3c88ee506c0ad90c722c249e0271078f4e0cecaf282c1b28403791cd02a9cb97a931ce343fcd6d14e79e4dc3dee69471b97de156e0ed19782d0037f5c48afe0852895408750c629cca877b39efb70ebf076106f445646bf75b93603a6ca43c03987e1c3ed03be2627900ebc4693743d119fe1b06d2fe15926e2e6b50219ffff03f083d15a28b2720bdcf182530e11d866e38136c953f75a4688122f704c79a1330340153285a4250c4c89a60e85cf47c054b9a532eb3bd5299412814cdd1b38da2003f67d2c00a96b329a95f3c8c96df5a8bd4166fe991cf29beb636490cf6593922b0219ffff0370330eb9aa1bccce12fe7951e9cb361ba5d0ec68f5e0efca64f5e9ed0bc3247a032b12f59dfe46bfde834f96bc5f21ecb715b2ff150d7387d13d1123d547aba55c03df067522e4d154c7eae2d2d88c771ec7dfbfb3a64fe2403206f5ed71ef467cbb0392b64658597cb81053e51e7f7b4103a2fc97357f397f41d2cb335e067f0e9f3d03b01218e6232617ac9055f83774c753e487f56bbd56d9a89b933e89d0c370da450353166fb9d36482cca14dae13f0552804bb676a10c3c2318626b9d6daa99e1fe803880d0e8d41563b03ca4444a38e5f7659a66be2929dcebdd7492df72cd41b4b620373aa4dda6f9a203fcff6a860c1991651da98dc5f4049f901f394f8a79b4f9029038c71936dc03c6a7ef6446d23b4d46bde07e8ef3e84d7861610c096a1c5303d2c03a039bdb00d3cb2c8d46b683cb24ae3da8d154a0a65dc8a9accdca3cad893cb9003fbef761fb744514530ac5aa65fee29b8ea5fdbc0cea1d618aecb96b14b666d960333b033d4c00b7f9f3775496cde9e7e9dca960c49bc36c8b365fab09c6f83377e03548053d3b18b35f8265951e0c3838df4fb983d04e5889364e71a95582227c8320368877c1d6ded4d9a29c04430d3e13616853fc6f73a67edf341f6d7942f3e05410362d30378e0a3a0b73417aed166067a2385782cb5efb791de7bf86b64efdecee3030a0d86452433fa289ae257ddc5eba9e80aaa5ac936f9ff2e0e5d71ae6b375e4903412a5424304a3b67da46aa7c7a818647b4fcb57875c71850ef44b7f8ffb8577803e026ffcef537beeaa65f8d141a84dfc0ea2d0245c594577315d4efc39ad9490e0376f53d959383e87c54b7fd43b197f853c6c10a796cfe264ee63820c794e4612f03fcb8755eb2cf5b18978c38e8e9c41a06a9c26d9846a3c1eb192f7c88d90e768b037b740868a2612b7c741f25132c128f7d383e5fc5ef9dff1020207af904c5c8f6033adce9d9a39e42bfd645069e1e78bd5e1b77c87d415a7f7acfaeaf37cf800d860302871ec39bad31811b73e97cffe119bee7eee6912ca5ca04621017af3392e6210374e8235466c4369199b1f738cb9c41cf7778ea3a7b578c73ed06c25a89ea58ce03e97eef037d15ba48b4b652000752e7ba4099bdee9ca6b8e0286a2e47d2c8b3e803511e2b018336242274903b1ca3387a72cd603f3f0084a5232f967ecbb6e6a8ce03d1a3bd83ea39d089d8a3c07d88633c84ff4904b449b1e0c5c04b5e094940b91e0326be420e1ecb53154fcdb67b6a7ae824424ba9756e26150e4a4387549768013d0314d772d4f27915cd608a9c5b2d9490401aebe6fc4790d01867c6ff04b7789fe0032ae0c95aefe24f0e0db3037dc15cfd1b5e8fab02ff3932105fde4fa0ff7ced33031fede907284a276385f6c6716b7c34d3ba3a6b12dbe317d96bf8cba3f5c9b84f0362aa9495b4a6bc4d2a864ef9d70c9759211ddd92908ae8b4b74379bde801e8d1031035e76693d278654d17825834123167b37fa45a1d28808fa701fd0db2894cf60360088b2530c0790a2baf59c347e7b59d2b457030591092bfb622b2026fbea7af03c18aa90560f6bb599ba7abc83ecfe88d4ffe40726ca93b0962cf16648d1a273903e735826ca3edb6f39cc48917bb513caff0386f41a463ec24edeadb099bf37a1e034802b68f1b18ab511528cdbc9b7e97c17b51e7a519cfabc50d07e13e0e8fdce9030dde01c2fc3c9b59b94821776a5e9635dcacbbe0436c0000595608df11156f0c03610cbf66b30e344a369631558bd86713121ebcf788b658514d41753ef6f049460384f7b95777e97db554d6021858a6c4b8c6c5f4bd63649d5ad93873851118e7dc03e52a3f3e80724d786374fdbed3e950dab655bd684253f063a334c7b704ed925303e8867f002806501a2a86fb18eb1885b58ab6a41bcc0eb8e3dfef4edff118c0eb0348ff3cd50915c707f6ab148db87c5bd03e5196deb722a797c7bf28b3ccd8a0a705581d025f8bee802984e98894e244b70296ed62bed93b795dfedac16615a54c0c01479b2455403d7416045908d560806040526004361061004e5760003560e01c80633659cfe6146100675780634f1ef286146100b85780635c60da1b146101515780638f283970146101a8578063f851a440146101f95761005d565b3661005d5761005b610250565b005b610065610250565b005b34801561007357600080fd5b506100b66004803603602081101561008a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061026a565b005b61014f600480360360408110156100ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561010b57600080fd5b82018360208201111561011d57600080fd5b8035906020019184600183028401116401000000008311171561013f57600080fd5b90919293919293905050506102bf565b005b34801561015d57600080fd5b50610166610395565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101b457600080fd5b506101f7600480360360208110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103ed565b005b34801561020557600080fd5b5061020e610566565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102586105d1565b610268610263610667565b610698565b565b6102726106be565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102b3576102ae816106ef565b6102bc565b6102bb610250565b5b50565b6102c76106be565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561038757610303836106ef565b60008373ffffffffffffffffffffffffffffffffffffffff168383604051808383808284378083019250505092505050600060405180830381855af49150503d806000811461036e576040519150601f19603f3d011682016040523d82523d6000602084013e610373565b606091505b505090508061038157600080fd5b50610390565b61038f610250565b5b505050565b600061039f6106be565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103e1576103da610667565b90506103ea565b6103e9610250565b5b90565b6103f56106be565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561055a57600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156104ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061082f6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104d76106be565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a16105558161073e565b610563565b610562610250565b5b50565b60006105706106be565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156105b2576105ab6106be565b90506105bb565b6105ba610250565b5b90565b600080823b905060008111915050919050565b6105d96106be565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561065d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806107fd6032913960400191505060405180910390fd5b61066561076d565b565b6000807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b9050805491505090565b3660008037600080366000845af43d6000803e80600081146106b9573d6000f35b3d6000fd5b6000807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b9050805491505090565b6106f88161076f565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b90508181555050565b565b610778816105be565b6107cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180610865603b913960400191505060405180910390fd5b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b9050818155505056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a2646970667358221220b0503c23d64d00872f309af6ebc439401f4a3a5289bbb698fa4e5aabd747642664736f6c6343000608003303b4c238f1ed52609f79742b3e654bdd8b5cbd357988671005ded96672b4e4c406030d9ca46e8f0ced76fde1ba2f14b63f6a5e603e667e3eb03e2cd81bbce3bf35d3039c7c98785163828a549e29410c2605967cc33e9b81fb683fbba8fed092a646730341855195ce5a8c5455b079d620bebbd6f3c33fa4d2494000597567d44ad467f403ea5ae1964b6cfda27248364f3e1d17f11eb7b997d1d1aa049a6bddec50a76ba503c1b8ef791b7123730e0126d0f9ebf7e292baa9174a694aecebbe6f990394048e03ed1480dada130e3de5f76a9c90a0ca46090fc630183042a6aaa1c1a4ae38cb37030bcdf9277193ecfd246fe7b80733e620ebe290a33315874e0279df097ba98ef903b17513e6271cc0add0a27d400b3d7319133b41e8397936649257b6338d17b79803589bed0fee81a1441338cecb89d2039b6ab2b96aab069f11a8af6ee7392f0be703451c8a0db91a1771fe93eb47b25209f09543840e1020c3ba1848e7fbd04bda4e03d6020c707b95ca530fce7faafd2653773ee29039cc6cfbd6bd5208f96ee1eb210371a9e3d346269ce9582d42a0637217410055f3201a8a5ee2b6576fd231d3f83703d9d7562d5ed839fc7b68bd25396566614f894f5340cfd35a1bc20dcab4d630f90310537e8d278652a886fbfc631db0780028c54b12d86a356ebac9b73cdf84195a03fa329b84beb0a1154c9795fe976d4faaeaeef1aaa7f8dbd4c7b9a1a69eb0061103f04b5e5621896ce1e59251ca9e1043dc412bd11d582ab32e723ca01d71469f28035197cd5908786e424150d357444eecbc0d4490158ea3591a5282f90cd155a4bb031610c8bf23b989ecdb369d6c68ac820541da247a24aef303d758c680c7abd8fb03d5a7fb18f81e56d4c72724587dd8346bf6d26cdc2b87a9ce341e764adb08e21b03a4f6ef2d303b20982bf3b2a6325e071cabc4e52fbb1c43c2a8fbad0a3cb93ba003e9a9070077eb6949fd6adc255cf5640a2f597f0167b8567ca27694fd833a325c036701bc23d9fe866d1a6e3f38cbd54b5835be8303ef966f3907b76096c6b3a293036b36e9a6f50f8240e9089539a73edce1d8326e88589cb748c68b059000c6f73f03fd1f80ded81b2c8e03e036e40cce6480712ea1fbabab6a168c63a6d6735ab0dd036badd408919192fb98d00d8a2ac3d2ea68b60b768ab9913b5f4b5f06abdb2097034bcf03ab1b7d9d0657ed22346eeaf3d0cce3f068e9252cc73b89b190673da114035e4050edd03b2c691370f229fbd643543db75202ba1b3a9059e9c929ccb349980386f56ccef8f4e1b2fb5f2fd7928976597c2d6551a556747c018ab7a9f39a9b920334f8339f6da9100f46672a922ceb49a8b49325570c679f17fd09076ec46590d400581f03abf2c6ab37b458b8f7116f0cf2e01cd132c87afcc043f04ab5681728451054d123d088e44865522b322d1d868a385ae54373bc00581f03137a8d23fb50e03414b745aba0f51c9c8559d7cb5936624ac165128f9c0043055b74034b3bcb888a0b36479cfd4958b9f2a59bc56fe791efd90ca0425accdd4af78f2c00581f03e160d52bf40e0bee790d93392c9315f98b5f60b48e96f00d2c0f3ccab20054dbd8fefa7f919825c22ab1a1ebfc5ce51340f1bb00581f03cec3808cb1469929411d22d8155bb35e09d0022cb1151a26ee57ae0fe2d0548c887f5bb486cb64171e9b2ed5ac7432ab0daa3503b636a33ceb6fad77292f10915217b04e6837a13fa2741e8c9d054f06a9e59f9b039fe8b5505be517fd798affb76022d593f2df345737b9a92a7d8697920ce8925a0314f287918904cfb5e2e75560f034d8e3efddc7358f27f9f23ef90951a5c4adb403dffbeec51854f7a0f9271119cb45a3915abde5ea97ce05c5883d060e69d78ec50219ed2c0219ffff0383c6bde5babaebd8a0259448bb99197ff9add8ae35fea461d103af31e265c731039e9b7703142431588c07000908ab18bcc9356de7efa14b765cfc00eb9558b7e3039eec4a81557be1e6e2d32a3aa06bce2acdab542a05b0e99e15ea018cba400700038394567a42d1df654a358616808b5bba7be2e0fa2820b9d5e0a99c16de0bc9ee034b9d30066115d0b57988f72f23916a63567060b14e4f8e3b04c1196db041890003a5f75089542f7b7df7909aa7ef78d9b3c59e6bf8bd5d0c17e7e840f90445b8ce03b6511a9396d444ba2509fc7c77c439d3c474909c87ad38278353f7f0a142292303fa0d1d675a704bfc19cc3e02d479f7859d5a3538f1a3ee9125b5af58f96d406403fce8a38f7138e970f76a9ccf057ac8f519bc50fce9c99a439d85795dc1c87a830219ffff039cb00f6b447c17743560fa0e14970d4a99f9fdfca84667bbf1a1287569d0ca31034e3288d3690d95f5416daf30d3016a248a9f400f618a0a1499478cb8bb2a46fe03d2f75f471d217333298c8f14ff0af20a4448bb2c05db6767b5877b83152c52a103e7b20cf98599f828454d80e462cac3a2f4e3bd63b46c2cfec2b62ac22bbe4ce303f74f83688f90b097a2578d006c6ea4b268f75ffd7d92ecd7b67c683d1feed56703357ee72ba2e736b453582a2036a5884626b8d895f3ce2d7f9b58ef72d179ebd7032d76e1cd4a00fb0016301a1251ac023fd946eb769427c0e1470b3724dd9a06df03c3469bfd89b54316c4c06115ae2b7a9bd967e6f71dc333f8be081fb644c8568d03f89ceb75d2d5ca3437d56d8cfbbeeb4b6951e5ef3b97aa9d14a80a30fffd785103037016232a65cb60ca4b224d2dd2685302c60ac0eaea74ea9e082ebbefe2fbd603db203521c6d826242b5a1ae327aa44e6e65f80b493fa75ce0d7ad3a977b0e66403bc71edc44538a53272480c11acb9d962d6f6659e5f459f665eefbd0db6413196032652e26050fd36e6b60ec6cbb21e12ba0737fd4d4f00fbb9c0151f3e5b753f7a03bc78e55b10d8bcc278f2f36a20b16de7263c0e9f1ba5eb9e5cf8e49cd6b98a470304e99aca42bb67f18141886fda46022f5a41af6a93fcd351f221bacc090af7e703ef156fdd72c9fb2bd0a78903e2392c8cda66ddfd7193932f422cf1c4dd423378032190bc0cceb50ef28c8aefe655198cafea5d0aba96724e2de7a537986be7d7cc03891c364f78dbf73162ef3c7615cdfb2dfc0f2a1a347e39509014506a34ebb5e3030429e11a6e5c134ca7e38992156eaee7f8c3cfbffe99ad73c8d20e4117e74bf60328248be280c1f07734340fc85c2a431a4d2bfa89cf3a66f2be4d6100af5d68400391891eef5b871902d97635506ad7f60f21fb9a64b3bfaff1835ef32d111dd0bd038efcb8387931dfac16a07d66502f15d95e1d52bd5268afe10ed68e400896a1e80313283350dcbfbd49cd0c7d24318187bf17a5aac813dcb1e2fc7af80f1e6719bc03d9a20535b4cc67584e51f5f28f03b25e03516ffabd61fa3a7d15db14bc86d3f803e8e83733a5cbdbcc3f73c0b712fb5196a9699a95b8c634400720472ab9eddd7e03ce9f80181b339f4a68bf0b38d241497fd65f2b408c2406c5d59fb0fd7f81eaac0311ab13dae9d0c6566fbab710171923369fbd63c7a72b45045fea14940811875900581f03eefe76bda48b05c29ceda679078070cf206b3cbebc6ac5309a0b48bf3a004802c68af0bb14000000581e022acf9c78fe98d45f371e3626d5fd6df6193da38ad6483a34ba26472ff0410100581e025a185868ce7f3855d08fad929679edf68b174993f20f9fb0ea8a578a6143012b8a02188200581f034143c6c5e4a670490af2dd827b809c011e3374d4617bb0199cf0218e616054d0f1bede29e69eed8a021944b9635a60eb4f6ba300581f03f000d6e22a5330b62770bde9e10b3cfca663da0fc5c61d96a3b4bd197c0048031569b90517800003289d0b59364c6e5c4feabfe387db11377d7a41e4f9fdcb7ef02896501372e8df00581f03d4c1e5c60717ee319af59eb15638e0427db25b2615f57385f482dae28840543864a9047c3f81beccc1e5ddccbf6f5f200f079900581f031c2d5bff87dea9ea818fa52851c1e6c556c167500325979fcd2325e978f04802c136b2c3ea400000581f0306b5d824c2ee37b75e1ee8cd7cddc793b4118f5108f890f8fafb4ad0b8d041010219e21b0219ffff03225aad7287597f70b90bd549bd0a6910a4a1fdd8fc50cebfaa92d4378eaf362603539676c3e98a15190b706393ecc0c17c15fe8c4825475be76937796fdfa692a603a6ab3930a03e0a703f463bd9594ad69d3a390b44fb4ac1664cf8e491facb96aa0219ffff0373071d8894942306f7e856ed0f2c322ce1cee66d2175890607d55bc844abe2e203f1b7e5de2f28db8be725e0aebe67bbc9914df6c9b785f62bb293a8c388b5b09c03c48e4a021d4e464608f7a0c570712ed42257f9bc81c6f5e7c194604787b47c03033ac9b1a172ee09a451f21371fc0356ff8d70de2fe5a3346fe06e1dba7313ce2303643bf7b5ad97d5fd716891eed8b9127af0daa828e9ba35b0b27d7993eedcf3880219ffff031a60fe9b2694bafa55a981423c5267e9acca792fef7d1a0605657713422100d703e76f0dcd927879c8f4a0539172ff318fa5a280569c5728566202445b39388991032e9e0cd9058c4bebb695703caf00313e522edb8c961fb6ebbc26f16e9147af7c033852d4ee9d5407693c5b16dd93ae6d0c8f41fa38be1da5616fa227f0cbd202140322de1556b274053ac972f2c36cff835f3e02359ed02d5d82e8a3bbe6c03954a703cad1873ea2b29d5559b6c15400b6fee48dd7ae1a65b586917506817111dc06b4039c8443cc7f25203e1e22092d0ee69579523962e002877f4df3ad6c92ce104f2b03e5476389d33e730af367175c80edde28d50dee2e3fb3a23b55d06b28a1ed090a039f26dae9bbd8879ef58906dd4ef783aabb8771fb3efffd76ac1518a671b6175a03d7bbbc7d1d5800e4f28a8e8b99517d0e9f985a0eb2aa0c875b52cb707d39a7dd039ed9aa1a6d5cd4e1047947fcb6183dd17605215b55b8ea154e33d06a02eb9e36034bc64042047258983237ab88860909f1df25b896c8d84c62064371d11420d9db03ee647c601e5ded7a32aa170c5ff5f49ecbe58b3e6091686f5008e3cae211a48503faf473076549ca5f512560513ab203ecd8df2348d229ef13c81c55c7674b0e1003037982f4907e2a79d212d10167a3f2289cbc2ddb1237c14c8edbca40482f1dce038524a5408cc295ced29ab1807bae2edf0cd9413bddba7ed53a359d4bedc4f404037301c1c95ff4509086a35e2d6fe359bd08b941d99369b15b0c9a9a44722e4280038239edd7f834bed4c5bafe8e3ba8c2820f6b6ea6be83156e28d5479b23cd5ab603584bbe88598198e361706f8799186cf26f0b6c2c8d6c552c21e2727465bda80303c41db967e2fbdff96cbd35b1ef90cd854681e83c2b2d153706aeff7dd3ad64f60361195180ad9603e50861a5df2543e101ca0976407926ae97de33fc26a932496a00581f03a4e49fd7e90c72ffa58d14be64241e7798a367123eaf703a6429e363dbe0480429d069189e000000581f031755b584e585f6c036cfe8a0ceacbbb0aeab5c88461be190db176269f28048016345785d8a0000037483036c2c47674f8f53f842d823bb452bc56ade51fde293f3f22c9e5cc04ad700581f031c911eb80c8310de433640a79dd40e3f9fb76b5cf08307e5efed359be7e0410900581f03441cb27ac64dc319fd23100bb065b6a8b2ff2d00db17ae949d43998f6cd0543b3ee1931dc30c1957379fac9aba94d1c48a5405038a4108877e4877f3f3f21c08863e16a676fbf8785b94c4711853ea144a14dd1601410100581f03630a619b874c25de61000e48d00ebd6f13b93d847c5e6b4e966a019c23f042038403cf9c6e27845150e4c1fccf09a842f285bfadb2f581ac51c8318843cb1f867eb80377bd052a00f3a294f96be327992e546cbace4fced0f31b5e34798a3560ade78203dece40da186e3d9241031add301376a4002f482b86990386f47c147cbf4bf0160219dd8b03839c85e1294f7fb103f3fe685d49122be41adb568945697af57739bb672b4fd90306b14d562fb418901203c6a97e6e30874c926d87eb3d8717e8642e36a400e2c603d4ab55256955d54564f2b86c68fc28ed4d04232d3d7f4866e97e26e79db05de2038525b5662cffd61b2b3df33168db73d849ff00d7fb9c625a1cca69c23d3cf70a038ea9cd599db7ae7960e11c7933c2d5f76965f6ae96a146a23d2a40bb0b3d0c7503292cbf9ca0966f1466c5091acca72cdbc4a9b08370799a03f1864359eb1bba4d030d88b424faee09acc6cb46398e7a31bc729020279ca57188c4a9d72bc5940e9803b128ed4acce859fee4e0e3dc315c2435776fa1b142b19f9f44ff0256b52e0f7a03bbc1a6fb2a57935d960b09772091cacebd2485af11ee01a03ce8aba215b4719d0351de96dff30b564892f22f99e49bc4298d123a22fb5215e65935b2574a0642e10219ffff03b03e701f6987cbe0748d7579b9738059158327a380e60cc14d599b4ac6218794035865351842a6fcf15945b02530f61bd2190857d6c06fd006956572c86a4f23d903fd7b028eeba8ae8d111b894a4f5354e111f3962e04346ca3758c5cb461c63207033d776a42a69fdfb13c7b4db22e5210fea4b19db05706c6484d077432e998b06703733ed1aa8488bcd78d45560a5d17f04733d253681e78a2c68a53e890bbc6427a03047236da2dd26fd1c2454b0761f47f944ce7656ae40ad18a39fbd4367c7db29a03ed7212c4fc1562a0db2596b145b6e748cf19016102deb86c488fd7c6578785d3031825d372d623dc6e455027ec1f43ca645262b54c6ceae82da984877b6e4b3ae703a918846b71dbbdf38ff53b49a6d0afc062b05f5d9af2f5580ed93cfb4312d5c30219ffff033ab7e82dcbf0c4afe67819b1906eb2d3f4f267862106f35c82dceb8690f086f00305d4a515e281bf01c2011e285dabdd05196e36ea88e1fc78580f4da8538758f9030d29a2d7a5230378cef39fcc955128cdcac100b13fe8699d41c52c005b10e9cf032ff0043085e96efa2ae04250fd51549cb6971f1b6f40d48bb594b93e841321830319d3b8a6e486add9408d66d2e949039d647e38c174be40718c2212aa4a6321d2036bf6a11c775b7811ae3b159dd690ece463518bc9aa1a6ac028b3e33261def1740219ffff036cb8af678b45d4df163938499cf8618f578ccf679e620f2fa927585aa658ecad0353a8d1f262b83b6bffc46ab574165454497100dab2a58df5fcbdd6cc5f329c2b03ce6b15a43fd27659031aaa9cf9584ee16702e901e3c097db5af4728ba80a6b25030a72f94da125440ac600bc1e01b59bde0018213164e2e0d447534a3d0ef5e4ce03b9c90da906e4266ce0e7c608c068e8eca118f9f3f9a2a9f6e66a471c8c7da0630338bc7c770a1e41e8c14499551086265ef9efde1e59fe3f846d579402126f5d25036d463977c98c420ea776aa5201342f927734d71598d6c3eb3486798a8a786e2e03ca3c37461283e625f6e8be08b074fc43c8d2146ae996b3d7ebb64bcedf92323603d70a958fa82f9c3eb2c1122ea3a30b1c6f78cdc744b9308be6dedf8961e284a30334246306e0939a0e650e18c2d51779210e5a73b8698ea9764f6fda6d04a2eb22033f445bb32872685794637a574deec5daa6df5f216032ef2222a3a6ff09c9d63f03dd411561c98f110f2d4ff6aa3486f71377ba102192ad5233dd063c66b5d98f2d03f4171093dd002338565a179f76d4e968651a285672ea2bfcfad243a4b3fa776f03a17e49fc9b1bccf3d1ad6dd7b47bf257c914578e47b8e79be2cabb191061b56f0352103745ae863b1a1b286816abe526b7ff5278fa7175c5724de7db4f333651f300581f03ee4ca733eb6b59ec830b418de208415a1caa45d250087835b7a1cb7349904301435300581f036d68e096ef198b4c390a277a40a090ec4ae6cf3ef8d0f855c1c02bf37880581b2386f26fc10000b0ce282367546724e72fa2816a2a61ab30eca4fa035e18bcbaa925726b55ef16f8df61d401961c923fdb71b357903d5f6d7234304a0320c6a2e6cd91b8ff5578a9fb81eb9e89d7e15a7aa93e1e421090d33ee5d8024f032310c2729e309a3f748f80b0e3092d94128f3aae14ef845641e3515b9c73667803df82913de3d3142203d9625f9196e4fb1677d0fffb92cbc365ec9a604a57541c03875fd3bfe583d88f4a760a0ae5a5f0d6d212fbfc56ee21b1261081b98001fb6e00581f03618b81bf9573991f7576d3cab10789bf2e2cb184f559be7b666ede69e7005462c824396da46ea564b205fa67088416d11de039037c5c7f12619bdef5270cca537007c4097fd45fc29aa0014bd3c5aec80a16566900581f03aef35aa53488b5f0b80f5bddabade29bc933ba07719281d52be93e5f647054dcf496cee772c887e12ca68e3dd23651c2c7929103240657e03e5cc52afad152c4cd80915cef3e18be3ef436111602fa3b2401a9ce03b6208dbcf53640905267403884b91744e84a1d0d51c7fcf5c0a53f798cac77480219fb370341efc9c80e3ed04bf5273561277df588396f6ee28bbbedd03aaf0eb1c186eb130312efd1090c942c0953808397dfd5efa9396b8f7c7af8c5f0276a1c33f36b66db03f3980699314f07a030559b6c7c7b5e00404e53306ab454818a14963579b58e3503070c873e88f2548506b1377c8bb825483ad181cb66a7699dace7aa4488bbadc9033341e8d56c4260b997c1f52519d515c90417ac6dbcac61e0c3a3e27ae06b1ac90381df8311129455d68b3576aaa86f6f24ef8192993d1277a7ecd9c0659e7181bc03ba96f8e696924803d3177a2ae9a0903b5820d78cb7b77152ff649b47b5f6c1b803194c6b2adc5665d7f8cc6f57c7fb27c9cdcb198a9c86950d1750a680514ef591039b03de8dfbe9175057e4c321a504f754bcd738ea1d2e1177570166701c3d70ce037030e5a8f2e9ed0743661f120daa010fd0c219d6ad2bd6c8784945e4a5d0b5be037e2e931cbcf900bf63a7b813680d4855979287ef11278f49528adfa89f5568090312d8654533443634b113f6a88a46601079fd192c894685abd65bf665f747fc6303c671881d59935f29f319b6a072b2e13025c629d2a35b93bd3056824b8aaa0e9f0219ffff037fa65783a3961838cd37ba2031f8dbf019749d0bfa426466028a636813171064036bd1eec74859d3bb5879373ec99f570f1616c46268264bdb87c6e5267d2eb3210356e190780f072422ed89c5dfcdc00fc611a39baa57d528b6db990cb74eaf22110394bcd71e4bde2683af1a8fcd7b0d83e6a977ebe6f78fdf63b44b5d6ca161b7bf03239b5aacff679a87a8b5aaa259f92e18c179cfba5eaffce3b152b68fe8fb35240376c994c2413698bbdafc4ea81dc330a86462916180620c3ad0940716c5f23c2b0325863eb3fcf102c2beb5bc8af4af182dbe3189a9eb828892439d871461871aff03c4826146f8f5cd793758c984bdc4ccc396858de8bbc7ebced857856bdc839f5103e993567831e836189fb7b3e8709b129dfd64785fb9f80b2418b10fbfad6250ec03a75a301592dfa347a90d9fe726d04af31e791bac6446f9c1c3aa244b520a6f1e03276f740e24d7c937d116f6f38b5d38d88ed38a3d0c3fb03094a2f21ffde6615303c56f8d8eda8f59b5ca931b5621e6e752c9ccf9f3029985aca24b9aab981eb29503eb5ecde0230546bc15318598080a2cc1392e9baf9ea980f0be0264f48c1faddb036806a08273b79713d0b0a60cc1ed75044ef5093f55c69fb4b229164acde8264f03e748d3c46d26633697574adf66790643946352d9bca1922be5cfb213310c493d0219ffff03a15ca14510909e7feb2890daf12333f68c7862ce1df1690af6c4a899376ec0aa034ab50dc1b34ee0f9f93784ea7b721f07a497fa66bf5a0e5fb546586d2daf9885035951528dd492ab4eb2a311dcbd830db684b55d426bb29e67a407cb81308a7fb60219ffff03c56e6bdb4635fa8a301d503ce321a93c6377d9e4fe5cc54a7a46ac007fa71b9f03922177a481b10bf43be9b7136453b54ec78c0d2c92b4ab5385d3c078f759babe03ba44a68afb7f3daf32d63c050f26835bad64a6cb9d6944a7b58081a40a05489e033446ca02d2f1d6bc05c1601dfd823c8a568fa6aace3968f8f2ea447486c8917c0325ea2bce4632ef9289c1e39bf0dabe118951a3642f2d77ad4ca365bbbc401f85035b3fa7beb2dfc75c9be1d353db379c4897ded7800f3cf304a786beb8d49407d70363555839f607b5dcbd59a342f975aa1cecc03c6ea3fd3f94944b20c64c085b570339e133681f00366859c8654b8f5851a5da411f2c3037255f3b0cccfbb80c4bed0367a8a3a951733581f3527c2402700487f215a3374eec80c370241b00cf25339803b01130c664000fd6540a5a88b998fd667200a1a23321421680d4d5454a88777003cc8370fead685bd51738a24f69325c8b8279c88ef90c1f8a6212122a29a5de3d038bd48ed8660e831a9d5a97d1b430283f1b8f4b28546af24f8ed1c4311e6bc632035b09b5a28bd9863f8695a4540ab162fb3a46ab70f349a79427b5978d5cb5db0303a6853ded03e724441dd8027adc1601f03bcc57c06a3d59cb8f4fdaf90ec805b1032a0616e36cebfb77895ffc7a9bdb13e17edee68064291a29fafc7289bc1ca91903bfafcf1441f7fca30c7be5c2c7b5efb1e69b6385f1332e4987b3a6486a1cbb1e03bf19d1d111cee2e33d45e40a202b35b494ef51e35de8d23bfe06540bfadf466b037129282de3f6de21d008d6f291e43a68a8058d364d43a5d60bbfa7a0a82adf0103ba73237106ace43e5e479c28dd35aa95f78ee1c18453657dcfe263a9b07f5dd603ee877218b46a8942478ab921023f6fe21b7b36bc1c75f5e3d24e832b3072e4c6037d616c5b6f923fd433bdbab74493f32c4fe68e8721bb9eb0e78290b512b82761037fceb41d81c233b543fee156006e9b79afbcfb8d7a2171ea07ee9415c55bdd1303d993a892beda6b6abc33e26af5da19007bdce5eafe645d9b76e7610cb89b9bf903b8a666747c3bc2054ea3298c3454a8cdb67d4ddc87367136506beaea479d4657031ddd4036d0550c168854e8fb026fb2ddcb41ac25bb0c9dba8f153fde4e512469030fa39c16aac4b75eec9598ea9e96de8c65c938c1ae6a1da49886bdb21c91e6720373c5fe4a6e5462cc86e983cea07f4e74057c08234cec020681c2d78b805f3dc6031c5070c38090c3b845172c9477651fbfa14c07209dba88f7f7d75510e5cff1b703e561136e2f7e75c47ac58c5e693d0936001f8b6f8d2b7afd87dde7392a38916d03023069d3f43ffcee43289098059e7cdcbc5410d0f1b25cc9ca64c06e7d46a99300581f03bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d48105472de36c8ebeacb6100c36249552e35feff0ee09903e7ddf19ed5d5767e628eba248df967a99c092dcdd0e7d5a7640a18d729f843ae00581f03404988aec00139b3015f493bcb1f61a707a53965af160113730e0d415a7054a813057ab1cb9dc950e8cb85e3a52b23563213220334dbe6f9d713586fea225135c7bcfcadaf78635531198d3f05daf60d45ba207900581f03186f893e7d075c8956c1229afab5ee2ad0e4368560194b8c58d61bc167304302676d035d22fabe27f6d03a5cd17aedb51cbe603747ebfb037c5dc43afdaf70083e49d400581f03ee77372cc0c6913551e317ad7736f86cae02f520783a91eb33318d07aa00410103e172d283e6aec8c95607bca21dc199abcaa0900049f6df06b42fc1bf8d8ebabd0358dee17868c20c671db497449fb9b50cdd7d234f27ffe6fb650be7692a099cf800581f03d628ff5e7edd9236c2afb643f86db7701067aeafc72cd8cfc4eb456a3260545d426985994878d65443a5a67205cf506350b7db00581f03b3dd19b49a68a775bcfc2f81bb646b55151852fada79db0eaf07106cc59041010219bbf10219ffff0316c27255fe64e9164392cb51f320cf212698eaebd03f7ccf9ef52bf2b897965c0335d362da0074b462c0cdd885806ab428896f449aa3bc7bb3c8f5676f97fdab490219ffff03992a9927890775c510ea038c859b898d87e738ce53d987df1d6a5a09178e387b03bd0546a0243f0261c569c00281b7bd2b1037c80a0d77d5e05a0e11c7dd44eda903427a1a696ac17b624c4d445ff157fbeb5a240d5b0a36eab74bbf26deecd2888c0319add0f591993fc91bbb991e0c78d8cbbe8425b08a33ca955e8ebb905dc2f1f503d4dee3be99a4fa58c3a09e9f7735207bbf3794ba7fa114368b59261bc44e82f303efe987869ca7b7224e3ad47362246c6bd3e6066fce8ce5452a0a58ac0922d48003f0071c7ac54f81c38d4d26bf769c7c2777c84e4ec0ccee57ff3b12471f7eff180387fffeb55dd75164bb278ece8c3f57777f9a5cefab5b77dafe1199dcfd427a7803f984b64bcd5b7a1d21ef377857bd461fa86321737b3261951f98c9fbbd656cce030d138e3776b72a442b4cf499caa2f1a595baf5201be8c3c38a5f4b5b4c3adc5d034ccb8858dd978c145842ae4b232778bb745d9c1a02b7f2dd114597a286345ce103f1da1b07162ba249078517059eef2e5b5e13e9bc781ff3eac1f4889af91d425a0356adfc924cba9da5fbc0f566dff2b8c93dd28c5e0a093fea951ae56fd3ea250c0219ffff0354b30696d6475e02c4bc60d3aab0da939a303f7d92ec59eed7797f508670a18903a7304bf5baf599d8aae655b47c40331c8d5cfd6d6ec0187ce4d516ca6143d17603b1da6bd1dae84a68a48e56e54e4afff074b8274b535040e8f55cc6e31c092a11034722117f3e13ddaacf7676bbcbdba781cb76bbda2f55ab850dbe7a84ead3c721033ce12ee99cad4fd63b85188f5567af709f46977586d3acf5934bf2608170a77a03729721ff2ed6e92c3f24f348b8d59fc3564e90a9286ad55957eb4c0ecab62bcf03532017d9d6d3f637992f03da547bc6b41f9e9e4e006140c22b395e41b864ab8603eacd6f776aa289892b92beb823b59ca58e55ccb98b9d0e4a33feb0a8acdeb8f30305e0b5ca68049fdb2d73c5235b9248dd0734ee2d3f5e345748bfb61ff1e67f6503a0412166db815e463e964c3fc308d9b66dce540685208a5719db0786fba80a7d034be8887ed344a262bb269c52912e0525037d38a7f26a85c43e07be0355b4cb5f0388501a9df4c3a4b334b9f4e681a65af30af76b0933224b080a7e27981739999203c3703dde2716def529a7d1fb2dc8dad7b0c4581a9e9a3fe966f0808ea059d57203d18201fa383283dee90cab2ec8aab5aff03430dc07e8586496be2811e3bd2742039ff8f1676a0bfdd8f1262ccd6bc73acf898492a7db0eaa2116fe06e57975f86f031f66f215c41a97735370c624f492fcd28452079a45b76cd26a957fb5189841a50302d174e44cdc765dbf38af513e1ea8cb48690ecfb07d8f60ac212a6a52793e3d031777984a1f3d9e53c7667361b654e8ba752c045656c1a35657628b2d0d4a228b03ef317f3b9fdadcab3e0c8ec38d2c6d77979ebd776d5c38ff91837a9839b4f4f000581e02e427d6ccb0e921b5ca7020858e0724ddc8f8ecb877e160d465f56b9ed5410100581e02ef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d54a892aa5fb5bea074b56fd5d21f86d8c701586e9402194040030434f0d302a90f8e18d27f65b9e34b1151fc64e1f48bb6bb871b3c43d10d7d0d00581f03976ee4739cb6b61be96c6955c8682c997d5143e464d5949cdeeb1a41d9d048016345785d8a000003481cd68a3cc545b67bbd3d3e3232d119af91fd543f86ea99714347978eb67ce700581f03812584a502e86f5fa594687629ded0cfb2f9f1c4b56f72a8362c55fce9104b8e1bc9bf04000065c18490034b8a08ac0109c2f52766140f987f510ab73fa07c1dbe0953800417e8ee34fba100581f034cb2065fdb50e71ee25a6ed47c2f9ee7fea78056e9ce2a941cffcde2d9a0540bb75bef057da63a0ae4b25fe9adafd35cd92b8700581f0348ce40efadf479a72400f855eecad089cd4aea97cd64f493d878a25dd9e054c3f120c85c779754e2872a281f3bdf59222f537c00581f033bd7c247e4994519e95a4c8de62ad934a37006242c971e3007f10f204990480494654067e1000000581f0381826a4a0b6dd739a3cbf9f6a472b25e99f09abd99d056b175c90fa84290410100581f03d9f247360fde6dfb9c4961da6c2dd0ccd27416ee39fd2bf4b816e84e27b0410203c2c3d1d3323bb8db2461dcb26455da65c5d10e45096c855da5171d1c3636456f02197f3703658c44a0367a8c371ca7065ba7127405acdf907174053ddc269527cb920937a8037e802f56e5ef6bc11a8524095d4fea00d0f8ecd65cc7be0756bbad0ad86b6cb703c8ca02f676e1e2975e9ace53d4852f8820e2df290738aa22fc3e0fb18b5bfa680348655111ea55103336103211e72ab29bafe4b6db0da941f0a4652c78530767b8032fb1b713715c5fc70cbe331ce2274054e15e0faaa928f1be4a7ff389751d5c610313be311c43744d4523fd43919facc58292688958324ac7f526ef2bfabee9c9a70360876256e2b660d87d413726ae0a3933b326360ea7f63323cd58fb9852d165ea032d32b239f598e164ddb86488d56c1cec5c207e33b0c0f59191a346f93dc39796030918a2c80171e422693b2c923537d479a08f0fa4723906ce2930a2ccca688d3e03cf19235ed7d3b064f1d5c07057c3d3f7a8ccb171c88d48c13f905a4bc3826b7303fbcc26b9306931b4ffbbb4c542d481ffa92bd420faa9fade2fe44ebdb7d7199403cc9d3cdd741c295889aa2ba645fa1b835c34bb55302c73acafcd718afe4b53ca03c2fcedec5e9d02adbea5c40a5ec1a7d84f0276a763eb0e805f4df297cfe417730219ffff03d7352e837428613f12d2d15d98b01b53387a363dffa3bff5cce670371cd7e83103f993a25251d17726ec3f01a9f5ca6acf7af09e4417893894161cc391e1a13f3103af4f46dd688e0e631adf033d283f2ff5486fb6fcf80462295782fa8c33f2375803fe66732fc25ef4f4ac1b1361a750589094b5a44cd90c243449435518e50322010219ffff03d2e1f4277c764b0dedecba2cacc0eb32522160b889289677503a2d7363f9655203850e8f7ab17115e2aef2f360a68265a243e409cd2fcad577abc3b9f66b259de1031b6ce79e9020579091982b4554a13d8d6e6ea4a89c7dc067c3b123219ee58eaa03926606365a6b13a3f9d7a4499dfa08bbfaa82a815a72e163aca6fefc0bd0ed11037bc7c0e6ecea2679d84183c9825c414b6db40b7c60bba0b78610a6bfe7198223034c470b93b66f83a730454880027b14526b3715e11e6d3d5b8de6962e104ecf7f0399aeaeec8183b463fbaf2b3b19a42ea23f2bf7ce7687ce7bd1aebdec6d6640a303201c36258c66ec3a43dabe503be96ed7be2a7f2fdeb9db38ae69ca0137a13b0303b63b906fee6aba2eece42e272c80b6c27f0841f5439a0f069c5fd147025a1fde03cb84d2c701d271f30f72fde05dbc9546b0bd4a841feaf596cc68fef6f094436f0219ffff03c9e0eafaec10d8a85134841a7bd72185fa313a30c3c66d55d7d003924a1af9ec0349cf5d3167874963a19b3237d6fac087532ecdbda56ecb835308eec95a068998036c50d8a90009a86720f9db9e6ead5a64317a321bcc7d06b1d2d446a0d95f715c03cdebf85477a8aa62b7692006008fe71c54252688c90410a03ce534521cce2d4b036ffe4a9f2252b800e67938b9e88517bcf51afd786bf5c146ddc07c92f7150570035dd286667502dcfacf5f727c8cde851588c0de7634720486f5ad9354054aa2450322e7e00f397e1b42f4fbd27d872e51e6b0aa7dca6caa39f4ce00bbc00b8c0a440388ca4ce278261b8aeac2392c9d9127c35a0bbbf7fb0934e86ab1da89661755dd0328e12fee3c89e7e9c96f2dfcbf0402cc4898a7ce23f340199f24b8fa67bb075e0355fbde052494977e2048b06cb6e66115d680dbf6a61659b2be666dee6d4d68c203e088ef8619b26fb5c9866a387bd45ef45f4f48c7405914743c9a0541837ee64203af1a98a3a759861bca4b2906974a9842b6482ed4778e1df3d6049c4fff27e3d10347cb68a38682ef89c8eee13c0162d534cba1df7d22ab2827d3902a4af54d7226035d7b4cae74e3057bc2659f6132ae9083d7b6c7d508e83b96b68801c803575e0e03014e1505032b9878cd5feea4198c2733cfc8656781367239706f69efafae481703c163dbfc7875f39b89eb5ac261ecbaf77c3122650c736c55fce08cbc5d9df5db037e24a2b1ba0751562998ca86ed07254eb7ba0f5ae6192d99e43eb821ceacbbbb0320622b56fa125233c0670737d9a93b9ad4f17e46d3142256697946d6f6c2b457034aefe838bf9542d8b0a007524efae4b6389bcf45a02827847e953b3c2bbbbc2f03cd5abeb26320a33425f94a0151e9ea17e27713ed6a868d7e17773f8a35454062031e5e4ce68474b9dad0eaceecf0173734d4fb68a8ab80bf450d1c0207eb06c5fb030350122b96934bc39862e7f2f27b37676a3335ed23b9111e33d35c1cc7e6b40a034fdb22dbebbede88a4e62d794dd5d5a4c0ecf82d46ebc0746243f2e4e1c908bf036f5ad41297a810cb8a455096dfe3ae2e51e0a93ece0cc5dcae99f3a9d74e73a903fb93aff52bc5e7ed08bf6d253b3eb4cd50cb3ffcabd8c28186a2ddd7f1449a8e03c03884b82f562e582a8dff19aa3d8103d9822a6f6a24b8fade0d3c39ff414fed03f151d2aab8482d1aedfc322ad6ea82241697572108823d7d57b33e096c91dd2803fc718011eb095441853e71c5573971b052bb21f0f5d0cb1cfbff0d81a536de370358da525d4cd3a7fd916357a709fc131a4e360e640c1faf7662e6c0871e1d9d4703ed9f2a1f68e248a30024b706e322c91d0f17a3fa96384cb6c19ce90988b0d399030f8bcc4d4c5e488f47b1be82455db6b829b35bf0228ded5c84d121935d6e279100581f037f1d19de4a6652244c23ebf6ddc180329edf984477ebda8b5905e749113042f19500581f039bd63dbb2ca59695cc83451c6b30c5aa9ba1fa62c942853b98a3bb247a9043043fc60374823058999e117a6cea669ee64fe554eb5340716ff82c00ad005a5bc40a2c8103f09b1088d55bf76203256175378e106e075b8febca48bb3f00f3af7f511e91d700581f037707dbc7fe362c12113f5c73b374b5a691c1d4aa328ea48ef0b90d9a2d404301518000581f03199ad378a7855200b6f6459dd3dfc6f89d26803b133d2c3e5b361b0d2370581c0d99a8cec7e20000c17d20a58f9165b4667b68c9e3a7b54744b880a800581f037c7b20343f73e15a1bcee19c379ffeb9859cc7aa66bef443e1c305d07d4042038400581e02b35296846033660909f78ec9af6aca85f55fc85b6c52c94d4e5eefbdb2543b3ee1931dc30c1957379fac9aba94d1c48a540500581e02601da10ad13bbdc2c13ac0c96fd05540fb70113b085220f78ce5679382428ed900581e025f60cefcc2e095a5be85766f5a1435973527bef0a4d5a48d9b9d808226430151800219880203542c50df66c69e0864d55f221129d26e0492ace1fdac0b8a3ebab7e22c7c8e7403bcf57e5ba378d4afa24d7d43bcce239833a22f2c9723a74c6f7fd2a6985b294603efbc334a8d31d712eaf2537a37a667108d5975a2aba58cc1df068b8dd91bb49803fe220c9bf86a7d1c21984d9826643bbd1299c0671525cea22dfb28ed11373fb40219ff95036b898a4830789dacbeae98ce94aea412ab7ab54759467a1346382711f47219790219ffff03d5153845f661c4f53678009821d70b10a4566bcbdb66757c6ebc105d56f60c8f033333f82837b08840b997369de98ca51ca4dfb7dfc33da0b3b5401ce55490a5f1035198d911b9ef6fbf1ac1ddb11600a4c792262ca63095fe823950cc94cd422c9003089187e93b0c995c89662963327dc117a808e91af0f36a0fff8968733ccc8c7403876274e042c88a55ae765628ddee0fcecd880ea440e352e1ab2f422b40b7870d0361e63c0e6f53975ee6a05650722883d84f3c9c967b5921a6b138f9223937bab4034e00cfac1df6767b8fa8be4d74f88a23574ad76416d761a37bc617667f697274038aced2ed91743f80fc6ec3693d92f5c11bee1a5f3f8fe2f6f836777dbb496d2903e346b96ad18be1f33b413ae6f7790be6121901465d5587ba70bab1c80caf8bfb03fc837ca75082022f239c0a269b95dc7176d1c3ffd27e6829d5cdd6c53d6bb88303a3deab2b36ec9764db8c618ff7cfd417e3c9ab75d27f527e0557acf9f14511ec039893981a1f40049acc2290736bb903f4ae4bcd7613b2a1d37dd5cb3e5abef33703b4b8d5a916f71dbd95976aa6f738ccfa7e5aa0527a7b7115ed4793bccc5f9bda0219ffff036921bc82a9fe227c54259ffd34e080014016ed2a5211b3b839feb7bf9b409fdb0219ffff03f44056f4dd0f83d6b9320156cdd26933b56f5c9994af63fbcfce00898951fc2f039984fc3d2d0b849a02d1c3fa2df7265ec6f001e7d4207f9830eed5ab81183a0a03f7c441c4df88309ed30738eac45e866c23bfc71eef922d613cf299a452c6478e034b03af4a86488faff82eb201ebbaa0a713b6c8c58b0cc0d3519da6f30f5df2df034a07939cb8fe54fe0681a20762bc4c2dd552198d4fe196c8c2c1e676221d00f303c0d29d76400c2c968133e6795e21f514bb0a022fb2393faaf4ace972d9d9abfc0219ffff05581d0223bafe8bc245b19596e32fc78f38e407829f2d56e9f104db5e0932b60f01490231fa125a47be85af1908d50219800105581e0343d4bf2569ab82a9723877ad391ef3e8a6edf1069d255d60cd094cb670040103a29759ce6fb0094b285c7e5017b9affae2d532255ea241561a20b3ca18eee5a805581e03e3a93d1bd504333500df97127d71da128bb6ef918a36a19e0449112a200c014702af93f773400003cee283da100db7662a74e825e952e77bd7b105387fb91040035236ae949dcb3e0219dd2a03bb1fcc2893d52e82a2da3c8b06e6cd402b80cf8b99577a225648f97e2883b42003a79f8c61196c0fc3886ee573e522d412601ab7c90f8d5feeb86713e59732deb503723306a66ba7e8f2ad870070231a0e90ecc938a3c5058c5274237ffd80174f710219ffff034e3e9ff2251c9b424740d2061f6af6531b2b41fdc04c248f334f2a0bc72963560396bad1108009d412083acb61a5469f3ec28f14870a0b98d8196686910b7b449f03f237341cebb73cd7a05d1f8d90683131366205c9a9860b1708c3445d45f64fdc0219ffff039c4c2446a292410cc36e6a765b2512a3a1e717df2c17f1023647554af36f272c0219ffff030a68a0036fc1aaeb8a10293ab4a3dc3b86bff01cebd3802287b7dd8e9e8c04cc03c02b922707ba6e9ff54389e0ffceef3d06b21a3b9a16cb0cf5c63cd52f23175703f41a3b96c343f5ab856665fa0d57c04d9af0a2990fd3b5d7dcb5e54349ad001e0388dc19bfab747d27512851bfaba2a4cdb19bf06b9beacff59c74bde1be85b977031eca29be035cb77447abdf7a5a57050a7a9402ffec82671cb4f868a23c3128bc03a4a17bae9a444472d453b55d377242616a7f35dd56de6c5a6452171905851c35039c1c3e9297c8c57fc9f489ff05554e4c200cf8a07272a7c766aecdfd7114175c038365d1bb159fc8aa2da8fe3a0ff34836ec59bf572ca04403467c3ac97db3dde40381f7f50238ac9198588c7bf9004465bc70c7eeacb448fc9e67e993023b3849750310b307ac7895fe04218efaab19d843161dbc5b858c44a8b5aee7c1876da4eb5f03f447251b8c8a2d3f90334f5e254472a5cc10dade99aec7f479fdba589fe00cf103349f0668ba67cf387295ce073ded8063220d1337255401c5fabdbbda195f6a78039f9794dfdd52584d971b0e691310c91c021fe3a2ca405ab57021e3fa758aa5d703b13b0cfb3f3d9034599c13f40d3012002e7d883607e1a79a3379a1418212b3d80389a8a0c4dc80cf9e9fb3ce112b61840fad5990e1a565359c48a2baab33ae700303fb060027af49123df3ae76195669dc33e92dd339d6b8ae4a2b4e7f618887ce05034ecb7050c8e977360676a703ddf796bc6c77ae1ffbd9dc3b443e3501b22235b703c16e50a5004b3f32de7750b057eafbd3f6aeafc765837d18e47af03a6e570d0503eace332d8af742d48c1357f9a366d63ce4cdf074bef861010f302d96896e085203c56010912f5dbe3a8ebf78a082ac36e79daeb2e77e81c6bed73bde5ca228aafc03aa3af781d07cd03346e79cf380eb66bcdc4e0eed5ab6737ca32eb484f62df5430372f7c870575d71b9ce24e39b6b26264c2ffc709a1d4b7130d879e870045f920a03a6f9626f06f65f44e85bf2d52edf95e60f9dde2604766c35c0192629626bfb2103eca9cba3f9ce973f0bb067b6e80c83885cb7c996baebf621403e05e27aa809a603840103137abb78312cef211bec0ac10b0a60997e7f314415200421ed2a6d1be3035c153dd9b26f9741b3c6b5d9e30262b7a886122ec80a770c3d8e67a76261de5603517e15d3a4c04466e6f04caa08eb7a3d01d0521b016c77b9181fd7861f5b17d003aaa7a1e710f65f14ad8fceee78231b853af856da21b808dca7c3f27273796c7603f081cbd0bb6104cf996218df3e4de3222fab65c0468326d09a15ad2b76d043ee05581e036f1700e441589d53067afe45186655ed95ed264aa09f848870c1dca190040305581e03956c79e6f4683a024d31ed4fa5bd5cfee882ea00c3f3410942f01fd2100846ec77f7a4400003c679741f66b43c908e74c54529a30f48ab5a8b35beab132b58aad95d73746fb7039e510e0e0b754ab3ad8464cb5baaac434cf6763682d3af9956969159f2a39e7f05581e03a2cc500de578eb3a3a04907c4440cb9175007e40d5c5a31a37699a7ba00c1447051fff7135670005581e0375c7ab9fc9256669ddbf4c7523615d1b5002f6d37b12f73336392296700847d529ae9e86000005581e03d0a022ea987513d7425519cf18dc391ae14fddc2c2d9bac4cffab9fca004030399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe9080358fab2d11d408b23129aaee21ccaa497044c5898f82a78c670dfffee08de83c605581e03284fb4f46c7cd5f634d9fac02c4d4de1fb60a2f4a482c9e0d640a594e007011bffffffffffffffff03a1e1f3cb903b45c63d4a6c52825aae294b18616ef0e12b342281d1f29daab62d05581e03c8b0d73c87d0ff471a66370b596c6ce5764a36e1d204c0d8565c7b53e00401030b2f81ff550b07ae2170813ff3e8317198ce9eedcedd80210f15a80506464da202193bdd03e7dc1183b324ff9ad8bc6b1da9cf00eef9e0ba56f8f82f0bb07254c4ef67ba4a0347d27eae4b9f301bf21f92d5fceb7ad1f7e962898bec46531a8c711c261ca4500394e7c2c43b40fa36f80951dbf1899a85f176722b643f00468d6c4d868e0096db0370c6aa7640b7cc8a8d095e84aa81f5d2076cc47fcfc4280f8cab24d858a3450c03ef287637c73ad8230d50cdb04b88c11ae2a853642f1eca7958998e588f13f4dc03405d97e2bcf6335546d3f4a36c09cce078a7a2a2654e2025c7a39b4af12ca8f503d42644e6e34bf405165ffb10d762032fcc7ec10a245bc4860befeda2c0959382032b2c0b0e42d42579a934abea39788e1b5ddae12858b4525d4ce0e7df1b3ec4b30379b553fa74fc08b71f6b93dac5a070e6df7c5816612ca2e1745c286313a9ec0b03a6d528dff33bffd7f7562bcb6b28e9c07a3eeef4b3059494a2e5749a83f81f40032a619a90fcd921ce5bcf22208bf7cb0ca6233d679563bf308b52b895285e1a4603d0c8392dc376267cb2a3088c0c74dd570b383d1530244d084e2500548aca9f3b0322730de56c2f00c94695042a8ecac296739907d358f9d176986c4dfe92933d9803a1af7ef27712379b8bb3a3f1633a92a557c3c133a56e234efa9e8ae22bdecfb90219ffff03e56c7533a5ae6e11f91998a4401509249b0dd6d2d8f45a760e76631ef0e3ee02038d40e8ca90d0f720ec6faf73852fbeb66df961d29e061e74d4443a3e0e1e2af70386740d55f2af29b9477b5e21dbfbb6d09f2e3963aadc9cca18e239a5c1c184e103b537313d6b58ad71e2eaa1eac04de752d63772fcac0c19406baa8a0d4353668903458732a0a538c69eec61129c12e9e9030c852b36a0c6a77a1c9dbbf2dafeb7bb0219ffff0344917cd001878de92a0330c7b244882e4f21626341a9c813062656caf60703e303b48c34c4f0fde72dc08543837216d52b853dfc39e93eb33b9932fdbe9f77de0e036c1561eac410dda9438fbd9da8f0c8e0e9a51ba4e21b5a3be3560fb4f58a458e039371846c8008755f3ffef1ab9986bb3d3f4ef861cc79a5cdbd86410ec40d129e033699c4d4ffbc092fc8d16d61bd435bb59f310fc6eb276c72c5909acd6cf13a7403071beb43f96e903518b9327885318bcc71acbfe3257142943720703ab858cd42031064a0c5e4200b82976dce2dc95dde668a17766c04b90f0847e76c95c44ee61a03d4744c17adf35a59a5453f816e596f2bfe97826f4b561eee3370b4c28de5a0790219ffff034ce5ee5d8e076fecac4e735ef11aa4af4b44e1b2ce10d06311df8b16fd9781dc038d6d487bacb527456909fe3e23cc27c1d0f5f0ae338a40bfdd9291e7696d6dd30219ffff038a9504f825594f99f89c5fe579f8b4db4f8bc6c82390b29c6cc19baf9579678f03991a4053421aa9f50d8987e0522eda3c9a64a369c7decd21a2e0a8ac113ac24103ef54c54aba49c083e704540021da02e52e826bd89961957564d0f966e4264596036924803ad9d03d312ab8e7d0019829a054f8b4951a3e72cef49017a309ac8df1036b6897efa19b3740e990faf462ff28625d78c410271db69052c6d81cc151f61c034674cdeb5e949624ae7aceef83f7328606223656fcd5c6f656c1c8ab7ed4fb02036f31f1ad5dbf43b1cc068d4a00f0138a18e1f46f447eb2523c7183ea60fd97e103c2bee91691d2ddb074f116abd7468a0d9d61d9594c2af59875ed22d61bcc57be034b14d94d77bd3376cc4e70208c4001e8f9b542f5aa30783ad2af93f8078c42b50307cd51b294be649f97569d5a74850a770f5b758d3fb25110e6f78d5d637448dc0386787e389f143dc4d3fd1e6f9c0b6d21861663e02caff37bd4dce5f7b94385630314feefba8408c15e4b8d83a41b0344f6a0a702852bb2edc71d97e6b71411a02103f4b8f3648e00cc1ad90664fbfc6de99fc7fb6618d22ba2a75d890d1ce9660a9f03e367ff89db935cae2985f6110d4472a872210a366512c48d2eebb4536c95475f03f0c474bdadcb764569fc92884897509c28fd3eff0b1067d64ebff1089808be72036d1b3359a31b495e50ead122067b10087e9b3ace6407e829ab3ef1a34c613aed03f19d2c1d832d01e16b6dde99278d9cb9c44b8928f24ea0729ac9384a8148499105581e03839e8a28b89342c811073278d865bf68007566d52d6d3d543ba1667090040103917a40209c6cb993d5c44403d7c0ea110f1d46b9af9875e155bfb64a6ac5b73505581e03c6e5aa362a5c8c2368e7e13b1e20275d3df13f675424870136ebecee100c034701204cdbcdb308038c61ca3e0cc43f0e8bbd1324f4f5b97a43e11141c3d023df60fb2e52d472caeb05581e03cfb16b8c822dc26769e342714c6c3fc0f956030b84a11898fe5c243bd0040205581e03dcaead7bc4c29f1f7887a0c7b65e3baaa7155d48572536fc89a9ea7b50040103acc9aed41e2f600d0ef00b57119c47941166d8f0797a813d29316137f04025ab0605581e0351e27c3eca5065626729757d8b7378880e64c858bcb8b99aba0d322d8007011bffffffffffffffff05581e037910d120414ff7614056148f8feac361fd7ce08a65750164d4af095d500c014737f4e12977cc6605581e0326274da602beb927f4022993187a2ad6bc76a756cbc024fcd6bfa308500c0146349b545b310405581e0374eeefb9b8a98e60da74425265ddb71fb5564b90c0bc56d415c2ce20900c0a466bbcfa75120005581e036bb0efa231ef9a5e71f0dfd843515a1de313886357fa5b5d38b810fde004040219e73d0382276cfeeffec2d5557fbd4138eeedc37e594be40278c0b88748abadc06731440398adae7898c61901fc0523df921534558e4e9d13b1226324a6c37235a7686e820370958f8733a1f75882bff12bbb4141edf715b8a2a6d13f6b170b11f42e53baff038c25129f9f7895947a7735325f06dfd14049e0907e4205be7c0727a22700f30903142e92ab07eca6cd4b11f9aebd057e447badfb94ce24fe5cdf70a056a697e83a03b63aae9620e7c8efa85be205c38eab7ad44a4b9f13c7d68bbe5a7c6c4ac33d3c037ad21590e1e6e13ee04d74efa9ced4ef7411c56aaff02f3e14bb1c5d64eeb6b5035f5d9d0e8ffc8607ec2bb3ce0a7dd8cff559ed6d75f9ac1286749faa0e4723ef03c10c50f63f1966a3df1af345a318b5f00afbcf95807516ce6cee2818ea107488035dde051fc49db6d2328b05ae6f294ce95db4377eba1c9a226a28548d997d6b8c0219ffff034f99d8358cf01cb0c58c32b7c9eb9c4e1ba45bc824be2be84ea1ea9f88874c8d0373e88db2037508ea7e941bc277b1279beaf942e957cae046088d641e73089154031acc34baed4d5b7420ebdfa83119ebc86b3deaa5d13d57400c9e9d0590e3ecb803e80cbe8c769299a4d8d199b2221def83725924251bc8381080edd68d7f1ef98b03b3bb06489ce35492ed1e2518f7a45a93101ef7aaf13a23377ddc3992e1f3bd9503caaa247db0ac5335b31134f5f25b8992009fd8fc4cff007e77ac3f5cad012ccb033d4e92cd5741199ea5b1d45a966e164f8e0ddef82618a312041e35799ac9a7a903e7500d8949c1f209af1a4a7a1351d3365f9cb4fe0de63cae76af1e79d486ba9303071cbc97444e7fa3d0014d1768400d9d1ed31e5abc1d4b328bc9207781d997f903cc73ddf0db556dd6382231834aacabfef128974dd380e8a6a51f1dbf53643113032817a6cdbd40490260509cbac4c43dc201d66f82839e2132d2485be500b4300503bd29e603da1bc4bb76acd114ec633bfdbdbe4957f1e8fad5364c6317f6ab55a603e8f502ba8ca54c38301f2f6ba8a96b3dc00cfd5d98eac2271a77dd85387e36bb0219ffff03c5ec2a96dd49639d169e5c91fd32883f403adcdb409f8dca1d41a225003f8d7f038b17fadfb108cded1c2d17a982ffbaff112826dcce91975e47fc88e43f6f5f3e03badd94c8f40365bec7a3ab2273adccad0ef844c0b4f4250fbba3d8e68d807a3e03689aea07d04bde01de604efdcfab0478bb0a58bb982fe7b3023c638ec0533dff0330e7e62f002f71941684e373060d97c4eff3138b281deb335f66d53fe21061f40219ffff03c97f8f9a9bd0646e75c9b394108d56fe166240f0b61d899a1c25402093672f82035055e4acd7555d2d66f567e3b3e55b29276217d5c4c8402d2b87a3a1816ca1dc0324c6c7d715709d6bf0a716875916fe464dd8378ac7e3b872e1b6be4faeb17cdf03a7471f3f18b70cb51d6eea8ef90a80cd7c0719d3c51be5cb8babbea9d280cf120305e607d5723d17195de28a126a920f96a6315e77a9dcf62f0b4c77e93e472eda03a9dd5367676a74ad02546ad8a7de57af5c31a8ad90608e136a73a5d9106f9b3503d79cbfcf6a976c0f933d17275c2e1a36e63b9585c7e6bd29014f18259e5742e0033d5f7e0d6b7dee701fb67541597f2cfe69c84497fcfdba68adc5a388d45de224037ee7eb39e5b22ee2b0a6c2d5606a6d7244c50cbb7e6f393fc190d0755189ff0203760585e60ef6dfa10b168476a52b479bfdf1953ba456a733ed9e7cf8e003490f03d65145c4314cf9a7a1bd72cbbff163e04a9e3d2a11a37b9e4c6d7c12a2e9fca103178118e2642a81f91316c68ac8a6e83fbfe00e7f9ee4a4b982c67cf5ec3302bb0333e27a44a93bebabce9f3880019d90b594841e53f89e55fb210bf3f883123c6003f2217f910cb6ac996cc3c9e934710bfb06e2d1ec87305508a44799ce3de031d20318f53db54a9fa111bcb0fc48dba33a7aefc37b413692103f039f78eb3418d49d03d7322d103d005087f978649ba7e2357acf05207cbfd85484cc1e1a584e512d6503fdf6ea2eec0b823af36a48aece5684461a63d5433bc0ef6b6583d7a3670c021b0307ca2e5f309f1031fc98b494152b75a356e5e1ecc3ad2a532fcf820635ca77b2033e0ffed2ac58a5ff2fb55420eaaeabb8c88d2b9c88e4f4ce56cddb2b58c2403d03a3d9192b39363a1311474f911899cec8206cd83761faaf3011f2581814ed17ca033b502d62daac69b556e206dac9ef878e4011fd6a8d2c68a5754f1c4cd74c475f03cc136725329d69d3aec776dcfa5d070e6d08a9399dff3d828584f8b3ad51be240352b8ec316146d175d7e0d5ac90d346cc2ca52ad8997db811380d7965b8d5e037031596424983515440ddc915974552a9940be45bb9dacde1c9902cfb68254f134803d0d6f6636b36bcf8938e970153309c242782bda9c3fd98c1cd848b054456770d03b89399bd7bcc924e66acc24fb8dddfd84888f7659d59170b6d3ff1c4672f26f603c04c93aac630f2be1ca47358fae1a54b3bfff80cc29b51363b5a6ddfd93cca0603aebfe23f9f830f4a27215fd2c5d293303417eca5d616a2584eae9bf2ad4dd00a031a4aaccc613f3e41a491aa089f3874198df1c6b7cdcd5757a412dec41ba1475b034ed8c1ca631d47eb94c20817f3f5917f4c746cd947dff5e5fdf77c211ceece58039d49d62eeeca7ecdd30ca4f8b60625b15f6073f56ab35f00d7f173ccfbdfdf6503c8a399b2da9b1f513280f1006cdb1ca1ee44b6de392d0db4bae8da07bcb5282405581e03dae5b3b01c63507527829d5eb3bded9ae24e9d4c023c75c6cdd4a877100c0247450a35e5eb9000035e096aa128731c1642101d3a882ede17edc5397b7dad9b0560350e3d46b38842031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e0354eca9a76ba044fd14aa65ccbdf7fd201c95718ded220cb9b8d6ddb32007011bffffffffffffffff05581e031e171070d4da73eb2e0636f9b016663e7ef2995d5f4f9ce60a1590b1800c014801563ac50ad8e80005581d0229f07c2035d8b16989ad561c993f48fb013720635730c6bb31b0a47c0c186f48056c366083177ae305581d029c3c30a43cc7f6347926a0aa5ab413cd9ee3182bfd507b9c272ebfdb0c06470a1043c3be7a0005581d020e59b57d71925c0f3670468bbcb532c21216409f3b69cc64735b0f610c18d547a93d2925b9fc00021909020303cd6f30534d1e8b351338db5a423113ff9f9aa1e12733e308a5c2eca9543f8705581e03f3f62284cb6d399a4f99e48378218a67143d8581e53715d5d32a89bb40040303537f43ed8143092d041542382d78cbb0e1fac7631adc627d5cb2a90af51cd70105581e03401f8193d4bfddf6a94d4227769fc5dd9112da0304dbcf53d672068760040105581e032584debe5122c390b63aaabb9b0743fd5de3048b4560894dde9c6c44a00c0145e8d4a5100005581e0381e3e5c479adb4f9f582c455be35649cd5522cb39c968c9eff7e89e85008465af3107a40000302675486d88608554cf639c7dd6f8c04e3037ae4ccfd26855e0f074eb4d882e8034baf44d24a1bd9b5f3a36f6d35d3be1ffe9bca6d0263f1dd67fef45a9b8dbae405581e03f2c233cd3689b8d0bf49dcd0d50806a77f0ba1ab3ef13f5f38fe5f537007011bffffffffffffffff02197cfe03001c941d9e72bd475c68ca6a40192e1f97583059e37352302e9ee1a4b34499ad0355ff66b6a558e664adc41cb1418d8f29aa456688bb63b7a481e8416c7a593c3003735e7fedd390a7c30d1120fc704ff9f38e7349c9f833eb4154b76b53b9e7f018038034714d945062c1374193036ef0796312d4ecc3d284b6690e9d560c6290118703f55e20747a22f8881184f4b3b0220c57c127b3ad76a62587a314987b2968785403295c5c53ecfb2f9eb55eb0b683b046456b7b8c13c47d1c013aa87f7857cb496e03c133efa5a002a81277e323bd0ea57c2de71d98dcf543bbdae28d552985dc8b9b03e2b6887bc4bdcb0028dd675d768782d9f5a01d687c336d4262bbc56630c87aba03176f5f899ddaf5114bf54d15e4ccb6d6919c951a152b26cb37f00fe301573492034c6270ae75edfeec548f0ac6ffad012ad97e3a05f4f37b81687b923db176bce50382ae71b624f6bdde15fe30ab8199f19ec9789e7a9386878630f042af64da0e5e033374f964c05e1df53a8112721a5ea517fc67d424e2589fb3309c4bafb0a5d7eb0346d496a3f93ac52148fe4d0e78965954917bdbb1dd48a442590cb089015160820219ffff032ea0c6e1a432ba4854284e28964768a109f0cb44c65ae68c0dd6ed8abc663ac5032e2a056375c5e64edd212b5bd8a36b1e12b23b6fdf1849a990e614caf4e657ee03f9f49a8cb03fcfa65b5281b697d3cb1a64f700be264efa9dc9f3b6635c5e926e03326db74998a5ffadd08f513096f3a2121b2a817988893f7961c5260523f705c9035560fc21375e1e246e4e5b62f14def48710679e5a5f8e424a35f0f587616017f03f1e61a0933d95a1c0ac0cae93e4062f59759c2bcda10e53d921a972f629fdb02030e07edd319cb384f9272a07a172c4ed1c53007657c65d8f4c24f93b27e51ca100219ffff03abd46c633d658b98d7b72ba75d386849758fdc522d0b651bafe366965bb1bfb3036f8860d7380fbf97d4d0909e0839559511da5f116a3694e271e4efb4c80ec48203d7f707977944b9f5cc1f3adbc6e3f043b5c1dfd411922f39abdcd91c26f9e5a3033b9774ff2d9b272eb506128ec883b67291599cd914112fa662c8720b5d0f8ce80219ffff03fec016daed630c3721afaf2682a0e321660c010ec5aaaebe7f9628f423b586c103717ce1afa830b4bed5bb2e193d64b40fbe163a3aaa2f94ab15f9576c992cb7f203eac442d218d5527eb2fbdf42740abc91eb5b87d0ebe3c853c6c181cdc5202a160219ffff03fb5eddbce47001c926a9507b97dbe8ff9fd17cdce72b1dda30d57179fa0c7f2a03d154ef734eb7c449c7d7f164cacfff43ddd66bfba07f4aff5db40ec009066a9703c5dc215ad815c9bf1d4c202c4bd4235c0cb4ab5efd0f085bea5a7c9eb54fd3f003ce287673fb8402da9f2e759a20d047f503a9ac0fd2de4c6b2aa81d0ca98aa2de032425a7e5e75b462c73ea9dcbc93932bbbc53e28570ea94354ad98044b7bc60af0385caf061d566d6a881b902a27bf42f7742a29c85198e9167721fe67535a7083803c1b86f1b008604c0a105255a39178224d3b192f7257b00ac26ff36b9f421312503fefdcb363b7d5af56d1a92f869785343abef1afc52d750d2c8cf88a5d2660df303aac049f2a8c24526c6c1b7df27b35c76f82dd7c376eec0147036a5efa6b99d8b0366f8e5f88ae3a09ad26b59fa3951446855541d02796af459ec10fa0487c9f700039e1b197750999a084aa9895836a02522eb4ae00b3b73481cd3cd5eaa916ea70a038b643073997df6da72b1546ca0ff53a1878333ec919bffea9e88d449223a0f4403b5c02a834b473be090e862cca00dd2320488a17d5e942a1fa46fe563614efc0003ce96bf3fe99661adb5c71dc42b51a6efcd419597022fba99035a3ae2a574ffe203cb9133da2b2e2c059e94682163483f0217f50e6b9f823ff6bc16bc7c06092f11038f3d70a6f3870255eb62ab2da6f5020a7193f486f913716067769c0844d6e285038024c7c3311fb35150e3b2117a1da575f731e3011e776bf1a2e086b882d465e703cc3b9785a7abf5b39735214e614a069ba4cef44cd0b5a81716b9fab92e19c8ff038716e29a9ecb816f9f033f0b59cc3be3a3679684424f18ccabdce9be6c6d16570339a88ab2fe3ddf94a4183977cdf182c510128109bf53401c8f4ba129d795003b03694c0ff26da2dd6d37ee9424b7ce88bb9d71fb85948d59db250d1b1c0087e19105581e03cff7c8af0354180cbab5221c0e3e045290af38e044a9ae1accc4f403b007011bffffffffffffffff05581e03e57a482878fa6eacf1623f613b2e4f510edcbaa963113034954a4ec1500c134703bfdd4d84f86905581e03b76f1b01e69163c55cef898062d24230eda3526e60b922fe2827085ca00401031f9e175be9c9ead3e9eb909155da618f52052a75263c418833def2b644be669f05581e03e04e5a3af9d50a889b06ab6b9fbee00cbe1fe79ada097da0c61d8a6d40040105581e03d2eb56bb811f36de24cd3219a604c17b533c3c592ceab8f328ddf037100c15480156c1eb5902925c0357aaa7fbc833da98aae9ed53cb3bfc7ecc5d2d1bddd9e597b220d6c9b464228303647d5d7eb5af6fbf9ed95320cadf658cec3819ffa536adc7b6387fdf1b72123d0373c5dec0c39df458200472668fadaba3ba732e214eb245cb137876ede47c718605581e0326f5fa06698eff496e89564cf31cdb0bdbf3334124ffdb42af125d944007011bffffffffffffffff05581e03a7098eb12c5feee1faaf0ca1c540027ec8190254a61d89e2a9c7722e6004030459567e608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f0000000000000000000000001294f4183763743c7c9519bec51773fb3acd78fd81565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000c88f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000271061309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f0000000000000000000000001294f4183763743c7c9519bec51773fb3acd78fd8d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000271062ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000271062ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f0000000000000000000000001294f4183763743c7c9519bec51773fb3acd78fd8b8b613b86565b8715611aab57611aab7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f0000000000000000000000001294f4183763743c7c9519bec51773fb3acd78fd908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f00000000000000000000000000000000000762d10ef955d55b7d038c7a7231cc81565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f0000000000000000000000001294f4183763743c7c9519bec51773fb3acd78fd9087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98481565b7f00000000000000000000000000000000000000000000000000000000000000c881565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b7f000000000000000000000000000000000000000000000000000000000000271081565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f000000000000000000000000c48396f068c62e0192c9f2c1caa7e07bbd15dbc71614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f0000000000000000000000001294f4183763743c7c9519bec51773fb3acd78fd1693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f00000000000000000000000000000000000762d10ef955d55b7d038c7a7231cc61513b565b9450614bba60058c8b8d8b8b87898b60017f00000000000000000000000000000000000762d10ef955d55b7d038c7a7231cc61513b565b93508415614bee57614bee60068d7f00000000000000000000000000000000000000000000000000000000000000c8615325565b8315614c2057614c2060068c7f00000000000000000000000000000000000000000000000000000000000000c8615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a03345104bff2ed880c2eaa5db45853e8dea5ddf0ea19023984328ca983a6cf506600582002c2438357480ca28235c07295761299ca72c4887193fcdde54f861e4a73f25c4d4eed99c874ff9fe24a58148232031d92dd9a317af3ae61ba79710bcc5315d9a939486f67283dc1810839bcab9857034f058fe6b90aed6f21a3e1f3c51ee5ef7e88726d68958fa54a1f1012bbc78937035d662d98c69df1353553e2dd64ac6fa494b62e37071f4aafffc2a60680d0419603021b05ffc56677eb7a9a08d10beceabd0fbf497ff42d5da3262b82dd9aa5ecef035f412cc22be93e2370de9ac8e05f1a1290175087055b69b4dd6238a86aac733203ddcd1cb735ade235ae23d0d1ef4cb3f6038e46fbec7a3132c4e7b0c4cbffa625037706de1900bc88a4bc3897837864af4a2c35d7dd537a09e80fc53490aeb04b78005820024f2e3a19167177fd335d4b85087bf312eda4bb07dc770b266f8d186a4e6d9e4f0217b2e70e99797e2550d903b915c303dde25b7d0632192a54791688f815a3bc9b2a9317bed015113610e6ee61d5d86803a2468fd254cf0eec861900cd615b65acc958f6522e031502626ec3a1857182c0037c1bbc8440cb1b908e4cf16c62bb66e7dcbe7829e0664df97ccdcc26d72a71b500581f0247dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672582001000000000000000000000111effe9fd7485928efffff6f36472a8c65cf130b00581f02382c6eea093c9a3292b3b2aaabe83eec8739f340280083321643b134033f513288dcac3cefc664d80d6f8383a73c714a0219210000582003231986549bf40f1f1714905a1ddcdecdf34bf2731e26ecb831d84092e8d9d051025c4f6cd2ecf02a7c335d71d4b289cc3e00582003b6163a09cc40beca14ccd57db69e3d9afff441128f67d9f46049174c8350d04d3948fd59d4aecda7f23fbabfe100582003adae81efe8297da4c6d5ebce4ca388c8226b1372d8749603497d853d75d6304f020c1c67a2fadd6bc52d4e6b904749021922e0032d55bb8ad03fcc3d06b02a7c7feac7d98855e2e10481223e021698665f9a56c303e73e46fec0e71328bc26de14929056509e78991edb9c70f9c5d782456d0447930350db747b488fe693e0bae5f7858114e23b889ed2dd599594d71fbf1f9dfa0f78039af2712f76b5ce920b6bfe2e685129057672cdcd3517789fe82f0d52068aa7d80219ffff032a4b479f27b7a27e8cbb18f2542086424e0c2ae1230c5b9ead736cee8a3bccce03396d8345ca306ea8ae3ec2a4fdd495493399b9382680dadb8822a44f5d05ac320337af03e34b28e5a077b033409b918a04a38d1b56a36b4fd77f5cb78f9be946020315ed96172857509f1dcc4835e472ead80e38c00ccd7cedcc33434b096411d1f303576c044812a886d16764cbd92670cf782ae820cb6e3629f6789041724efad1d203e7206bd72498f049e962e988281706766f9ec7a4ed6002477be83d8c4c09d2e003be5ee9570093ce9d1fa5523909c60771afdf3382c394b4ad1283b6e8ee01f10e037ff4bf849ad387a759016f5c776e663399fdb7f1ff9d57c6cf3b55bd6a6058b103b2aee9da4ec8d826f15f200a9cd1bbc6dd83bb7b0053ea3d884b19c7a933817a00582003decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630581f0100002900290007fe266900000000000000000098bd320cd9d794dc92856d0058200331cf384be79cb913c467650237c8f751174408c2ed2ee2309b57b42094b9305025c256d51e814d206cb021a44561c21a0058200347f75d6b30218b152923779d2960e8b5e34a97f9a63c62181a936f7e1dcf0058200100000000000000000000000000000000000000000000000000000000000000021908410372c826c1cb47dff2fe24fb414bb86d82e63354fe9e41e24fd97295303f6093a4039c774e2e98c42e2cb315bffd5104a9ac0bb7d0f6047c7a9241d1fdc2c3ab86b803a7830418f89738d9c27f5ef6be34ed92d87a32c274f5b3a7df2b20d7ed95d85a037f73b1991fbb181a78bfa8f35aad2be4043a9254c861b531aa73ca15625e5b0b03a0698e077d13ef5f5766146286cd3a9b9612191e91841faca1e618de11c791fc02197fff0338a3ef50fcfaf400004d3224d0dabcd0bcf1aea258acfd89afa03c4721b372f7037a78b89cdf53c418c0faa17cb7a4ed3be1771c67c10b6d6d2494a1a9ef5fb0d303aece60f49768604047c19e0aede29172a10389c16c49fd40118e180eab93483f0370da111f8d2827b298211f4575dc870b25265170c2a5e1b7f8c50980a73bf83503cf0563feb16097565882145b2c0295531ae70fce36315e4de29276507dc57a60039af9c4e86b95b025c08f4140f40ce576eccc064fdd395404da0c44768f8efe94030a3eaa55e6e69cad7d67c42955dcbd08ec2424f944d9c5410e1bc4a93f4a163503d0a13b7ad3371fd90ac9c8abe49f70d4b06931200be1e62208fd6bdf58fa4de803ae93b503681f1d72df2624ef8c0658fc6507ffb6a01ab6e87855ecc955a64cfa03c3a8f74a06c89a1b8f830b935f0dd23c2d646e0b3ede5174eed1926c8d1e0eef03da29cc7d05352e6849ce46769ccc4c7a9454db20b9cc8a5f5a48aa6fde847575036d687e6cc50d7831ca146530e0df00f26c30a812bcfe2790c0699ad77e888f9b00582003f3f2d914bfe38f4feb4fb609d3ae54515292d50314f37c335e00314e1adf404a01febc6b5f3bff62160c005820035451134a44c7a5e79f2f70514810961723a0b2300646cfa1112dd808bdc0a04e0e2e14b8861f85a36325216877d0005820033e1e06859b73e49492b3c27b75514574e4c70ac611a048f5a5ad30028629105820401000080001a0710fefe7fd6c3900000000008000000000000000000000000002196024035bb529bd7331a1dc372d179b1903fa257143afc15e77821a2756c6c8ad3b5af103369ea9e569a486f1c3e96fe3db0f2cfd31c9201b8eb7ef33c53032c3d193f8cc035b955078a79e018c5d8541a973c82db830775572b313963773c19602821de06903fce9c18e50c0471ed9b58383fe5e9cb0e6ec6dc68745a4f94316e76314ebd69b0219ff7f03b2325fe62a733312fa59c7d739cff35103278d738dd97a39332dc42404faf38203bb24bb6cf0c63ebf89310cfba42d76b3483213989156fb1f588b4753e91cdbb8036f2aa4ca84493be68612d2c20120e2003b4099fa1708dc2c9794c10343f479d503c89ec0c3c67e6fa91f3f08d2f2ac741474ac9d97ae1fca73694b9047ad74e61503456292c7c44ae2115865de71b325cd5b9db9efe91ec96b898f5cd52af32df3a203d67c461878e8c9133026c83ad3bb2149f0f8adef0f9eb7c5e7233fa851c636b7032352c4ae444a389858ada7b562e18a1a9f691f418626ab4296c24cbcff6811e303b4d530d3f9e151dbf9697b9d10b8ee69ec1106e7ae9ea1306a6340148e12705703182f6ce7b517714676c7ed9b8d89bd74c4ef18868d0ed73b9ff23e317ae1061d035c81d8b605df97ac08b21da82bcdfd53955d8b82bbf531973f0302deeb95775c03b9f554b5c6bb4af2b5c97efb92ac0c047e5fd6e66971abf13d1143223819e43803889ae54885bdc14d0b16aa77a1e13dd905fea863731feb1bb61a132b6c67b76403876d307dadd841aa4157fcab42352ac47612f74b5b27b21b992f0e6ca9126a13005820031c3fcd6e8e1b5e815901f29380ef6cbcba0f345bc394271975b417fdc026c050811381986a5059e63ff81de4dd5b9c1d00582003b61a22d96136be31354bdaaec49144e4fb909cc72f1099c79466e90f31275050536b1de062fe6c04ec9d9663118e2b40005820035acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b04a8799d9323f0ad5f6702f0058200322e038464c85f36dafcd377f2d8f5f4c40a13076efdbeaa77a2ab8602aa0a0515e1e57ea4ab6f5138442c7ed947a0f4fa400582003b67b1eff21cb8ff751bc256aafefd20948c94e40b477fc742a66fdd9f4f3e04f020a9acff59ea59607059a17533f6a00582003c404aa81d8e8a73c8136530caf8cf6ba732a3e615682ad32ad8aa4e88546704e6df7478fa0f82fc378b55f8164aa00582003d88cc0d405cb079bfd688e9704db2c02325775e736f2dd80a8a9ce4ddb41e05108d448e972550649a66041a7f41fc5038f0219152b03d51ff797284024f7e6313f926e51bdac8898b13b80c3d478f950f32f4c00749903f93bd93f9906d33b36fe041a74bab78ca62e5199c7930f956a20a895bc0d0c18005820036e2dbd8381150e859af15df98fc72de87287387b4b3664d522c26ee3520490581a0ce12ce274f5aa92feb60000000000000ce12ce274f5aa92feb600581f0208e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8025820010000000000000000000001125eac749022ec5735ffff6ead2d144c65cf5d3300581f025c0a0bb3a0cd4cdbfccb942102e9736bdd1a8eb3429ab29d814f63a23c23582001658f726700000000000000000000006f4862662aca937515ffffe2913b77580212005820037fbb5798dc42dd41751d41bee0bf2beeb6bd89b9950fea84f6f067fa676d205101b7106215b701b9e8b9ca1d8572faa6e3005820038799b08ca274b89a62890903f384a3ede58bd14301d28eee593fbc0a8dc6a05820ffffffffffffffffffffffffffffffffffff156986826f432dbbefe7a2c1bc710219204303f934169ae87813bfa4a887c9a00d4646b9bb9fc47330216f45701ae8aa8dcbdf0384f8b466b28ee92ee58ec021c985ed9f71143686c8a6d7303bc6c4940c4261f80219ffff0333c7cbffe14c4b51281a9dfaf43cbc98ff8f3e19cceb20a727b417fdd3758cf70317f4a17c52305943cc793155c3e4cdbf15f1eac1ac1a51aee18bc03929c8aa6303dbb0fe27b8e16d8ec81eda28e03db013cee8da7c84c77baa43163e8c9433076a00582003e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60515efe9867fa14e089ac2605edf650a5129d00582003177ddfa15922f74e7fbf7ab3f4be07adb4d1b99e2274116dc63ab7ab8b615050334a46ee6489a7c5fc5e1b077c510c3f00582003d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e058200100000000000000000000011201f3d348f1d18ca0ffff6f1faa00a065cf1f4703cb39f1fb09304c3630c3594e56ed23499d81a4cad0f5046d20f9a90427e602620219400d034758328c1dbd5c42097fc4d84c08077c1f19b655a67330d74ab593bd4a3e4a8403f8d3186a1b8d54d8a9964bb1688603fad171554c1095c7f2433fb2e0c69892ed00582002a06e73ca2e6f701f6a845f102857017d091ee222b1d9fc9c73ccfcc43e11c75820fffffffffffffffffffffffffffffffbbde5cdfc70f017582ee02308e2d0ba0503e23e8af49a61364f62768747692c72bd1eb90dc7f10ae3781d9c164e8f644a39036621b65e4ea287fa04adc465ed5ae9a5139849e6ce7cd1c382dae14ce91d3337034b34d568076f55921c979058ca35b6e05d18b8c16dda283dcbd3821979e09ed201410d034394187940a52eff3f11ba8a2715e018b42119f88c7b019b03024bc6f44a2d5303a381c41dc9994c08c1e2653cceeaf8250faadcbc878305ed5f508e60ce498f14037ef5393d4856b05436338fbcf55a7bf645fd6fdc8ae478293a4a773f92519e3203cfaae459c20dfb188813c7e06465d037c0a2a05df9d4f54c6de1a7eb78135b6703efe4d27cc7c858017ee7a1685dd2080fe8713ffb695fc886f728ff954bd16303037176ca23938ee0197f721f97db5ece9b2463200e413e1ea3ea7c9a51ecbe9bcb03d06efda14e92f2dba2d7d8540527475b46f3767e56846cd20856d4f960934a1303a02a68bf030612f94cdc0a6759eb92b6db50c4f71d6d82e8657caf3807de80760219ffff0384e8bc31e7d70b9ac0395d5e7ef88681106480d8a9bb4812c4caa0846ea3d5cd0372b89018d11b2e07850bfccf74b9a0c423e800380d92a0115cc0ab1dfc888d83030db2f50c7260c8ecb09740f5240b896c0a17a699da401e213fba10192590dd1a03249aed5befab3c5185d8d66b1fe6206ed1d4192576c3e399e598ce5963047a500219ffff05581d02a1a24dcda43a2d53f7c4e1c5cef2219d61715052526d98e8ea72b1f3070119567e05581d02f0f8e12362b12e40009c3773105d9270ed5ab4aecff00ca758a87a12040202182105581e03dbe5bda78e36b16e74749b57d2730ee14811b149892b3d1329279b3220040602196dfd036ffcbec67c12566cc5db7175e4289eb3ef59f8ffd4e657d8487d41b81c2589db03d9b0b342fab1dde647e99d6b6c23d14ecd3fd923dc03535644f807de581fca1403465a840be35ab0bab3b09314417e05c02536e511688036d29576ccf21c4cda13032fb7ea56a6128598718312deb4acce3fc689b75563750c5362964698cfd4d1b003604a986ec8630c8d2b55b547ea2346f1fbc905a7370d6e783994b66741fd9c38032fba4fbed640fa98dfe3b953eda4145d636a175abdf4aadeabe46b0ab69c8cb403423773cb8d60f4f56666c7e37d7a9bbc28cb2c8d10987c20c57b73f42faaa6480219ffff03f80fab93e0981e64e754a8e16e6fee8439d62a6c393ed2652e47c686abf6994b036bbe80cc6635f7c2c83699ca38bcfb9b47a131d1d57a8526d00ad8f8157e6ec603e9d2362c25cb5d3e7e27a914c9ee68c275aede30544e792c87ad82b1067037180341dc5c7d8f748f463b2f81d0513c6c232f59808bd5b03f2861143eda5c0584ad03eac27dba98b3dddddbd4866316bf49bfe6385699e6c9794a18daf54d10acea61037bec9a9718fb27abb63ba1bd34169ce10e5a7cd84e8bfc3a441b6eb928fdeb5d03edb7d8f96c9f26398981452070f8ff8192f6c7781fa6d425d0ff9cc016fd59dd03228e537ed6c548261ea56be5f526dd049272d81cee32376fd676d001d252ae5e03d8fceb78c05621f89d2f29fcee3e2ee76ecebecfedb5b271eb077c3adfa256d503cbe2d1b5a5d84f284454c610d2f76f870a419fad272c321a2a9ad2e86b3396eb0219ffff03f6db3856afab202b105ca8b283787d9cb05679ecda6f4322ef446e0351672fb5034fecb682c03f88a6e2f1fe0a1539d1d5576792b898423f1871b39a2ec5271bbc0311d24d294f9012df7f2bdcdabacb1eeb2d5a8f2b09b6a279cf8d614bf6983a26034190814e17f5d502a07f74f2fc7d8e279de8b435d709cb501f6dbcc36e15213f03f790a911c5e7732a669c08eff5215bf15efb283529a1637200ea992a62e9398903202238da336ccc4e68872ea7bbe3c5121fa0e7d29c38d714cca4827f7486e3d20310dbb2a0cf2f2930a7e2c42e53c6ed796514731f720725d92140756b45e292010390a13a2efacae094cee2d583b1a18bf075d7cdd47ae64f712b5d5038b92c647e033422ca420727e6f4f18eef1defe167903780e231db9fdccbea23960aec150f6303c19752213dbd31d4a0767172e4305a00108b413458512818bc99339c0537961803b629e92638f706b36935cf9b64d0e01601f472d06bdbec369ae79256dcc0a4a503178537331611a9810c716af98a26b8c0009363a496a7419b05579889f372c247038843d3d1fc2f51512feb2f8234acf6a350e1ab47eac31689df42b981f97da8290219ffff03a1c275bf4c05f22ded44ac6f068f660223424328abcf145831f4bf52d6ffaf2c0382fba78c91de54993b5c6e3bdabad8576dca928a2adfd8c3c17c286ad4072ddb03141d7b9c343105a9d3f2adbcb043ed44cdec21cee0cd585db5e5e5ae4ef5adda03c35819a0fdc34bd6477a16092c5c318f513ea4bc0b0970f943e603e641a809ed0337a617d6fc4796e05c988e1203e2d4e94e8bdb214cf392a8b08f4ee122fe817f03fc0d49e3d3c7ba27ba1e3c95336bbb4d87bed85c21e9628614b7bd24c0be8fc403a1e22c350d4764f77098a0569b4a59d7f5094f8dc7d9ad5c50ffb5e5da4b8eaf03ef6fb394839988f145747bf362077c9017d9f3c8110095664dbf056206906abc03ee188f82c05e8bedbd7fdc8685703b3775a903e1f9a054ed21ae5e36522ef8b903c869bbbec52b9a3401484bac556f3ed376a2ef5687f9d12edf94d86efbc79aec0367dec6b72cd1a91b9b6359e006550a4da4d427120cec6357730bb88c7f7e55af037a491c03c1e55d31ec18fe0b919b901ecbd6842c90e8c33c7ee6134bcfb86f2503c08d350a850394994a0c48f1a7ec1c824148006032a67c8dfbf4e48569a233d20329e034bd816f6efb251c855ba492edf0ceeda208938d6cdf177759f3cf63dbb0038f45b0c63e575adf2edde199a4e50c7a2a8bc59e532097c91e4bf0b2561d78990304f1e12d01dd5e4e5e2c5f121dd8a9562cc89b6db93a65bf0b3fe16ed1b3199503352f3f6b5147125529868426050a8f6b7f0dab19217a1712b5f2d187beb729c505581e036223155c63fa7f6836d5cd88bad3598348d035e6b7850c425c27ee94200c0347013f79203fde8005581d02413ac692e436f7525e18c76b388f0de2d82ba2adfaa4912457e1e93d040105581d02bc64e9615094c2093530cd1e7dfcb6c609a48e419916b29e5dc83afa0c02477c90f0bf3bb0300459557b6080604052600436106101b2575f3560e01c80637430e0c6116100e7578063ac71045e11610087578063b3a4074e11610062578063b3a4074e14610732578063b6aff8c114610751578063e5d1e72314610764578063f7a2da2314610783575f80fd5b8063ac71045e1461069d578063af1e1de3146106ee578063b01ef6081461071f575f80fd5b806387a4fdcb116100c257806387a4fdcb14610526578063895633ba146105575780639e64ba6c146105895780639e79b41f14610602575f80fd5b80637430e0c61461049a578063798bac8d146104b95780637e043795146104d8575f80fd5b80632ab2b52b116101525780634eb123171161012d5780634eb12317146104175780634fca06c614610436578063614b151c146104555780636a90a82714610468575f80fd5b80632ab2b52b146103515780634635256e146103ad57806347e35740146103f8575f80fd5b806321dbd9aa1161018d57806321dbd9aa14610289578063228b1318146102e1578063262907c51461031357806329e0e16014610332575f80fd5b806303ec16d71461022c57806321506fff1461024b578063215619351461026a575f80fd5b36610228573373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000049128cf8abe9071ee24540a296b5ded3f9d504431614610226576040517faa39384e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b5f80fd5b348015610237575f80fd5b50610226610246366004614dbf565b6107b5565b348015610256575f80fd5b50610226610265366004614ddf565b61090d565b348015610275575f80fd5b50610226610284366004614e17565b610bbc565b348015610294575f80fd5b507f00000000000000000000000015cfbf58b02f62e3083d063ebe394fac5bdd674c5b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102ec575f80fd5b507f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb76102b7565b34801561031e575f80fd5b506102b761032d366004614e17565b610d5d565b34801561033d575f80fd5b5061022661034c366004614e41565b610e05565b34801561035c575f80fd5b5061039f61036b366004614e17565b73ffffffffffffffffffffffffffffffffffffffff9091165f90815261177660209081526040808320938352929052205490565b6040519081526020016102d8565b3480156103b8575f80fd5b506103cc6103c7366004614e17565b610f84565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016102d8565b348015610403575f80fd5b5061039f610412366004614ddf565b611046565b348015610422575f80fd5b50610226610431366004614e86565b61107d565b348015610441575f80fd5b506102b7610450366004614e17565b611236565b61039f610463366004614eb8565b611241565b348015610473575f80fd5b507f000000000000000000000000762340b8a40cdd5bfc3edd94265899fda345d0e36102b7565b3480156104a5575f80fd5b506102266104b4366004614ddf565b611698565b3480156104c4575f80fd5b506102266104d3366004614e86565b6116ff565b3480156104e3575f80fd5b5061039f6104f2366004614e17565b73ffffffffffffffffffffffffffffffffffffffff9091165f90815261129360209081526040808320938352929052205490565b348015610531575f80fd5b50610545610540366004614f0e565b6119c1565b6040516102d896959493929190614ff9565b348015610562575f80fd5b507f00000000000000000000000049128cf8abe9071ee24540a296b5ded3f9d504436102b7565b348015610594575f80fd5b506102b76105a3366004614ddf565b5f9081526117776020526040908190206006810154600290910154740100000000000000000000000000000000000000009182900467ffffffffffffffff1691900490911b73ffffffffffffffffffffffff0000000000000000161790565b34801561060d575f80fd5b5061062161061c366004614ddf565b611b96565b6040516102d891905f6101008201905073ffffffffffffffffffffffffffffffffffffffff80845116835260208401516020840152806040850151166040840152606084015160608401526080840151608084015260a084015160a08401528060c08501511660c08401525060e083015160e083015292915050565b3480156106a8575f80fd5b506106bc6106b7366004614e17565b611cf4565b6040805173ffffffffffffffffffffffffffffffffffffffff90941684526020840192909252908201526060016102d8565b3480156106f9575f80fd5b5061070d610708366004614e86565b611d90565b6040516102d896959493929190615042565b61022661072d366004614eb8565b611dff565b34801561073d575f80fd5b5061039f61074c3660046150a2565b611f1a565b61022661075f3660046150da565b61220f565b34801561076f575f80fd5b5061039f61077e366004614e17565b6126a5565b34801561078e575f80fd5b507f00000000000000000000000067df244584b67e8c51b10ad610aaffa9a402fdb66102b7565b6107be81612716565b5f82815261177760205260408120906107d561274f565b600283015490915073ffffffffffffffffffffffffffffffffffffffff8083169116146108515760028201546040517f9802550c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024015b60405180910390fd5b60058201541561088d576040517f5aea7c4700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b828260070154036108ca576040517f4b669ac700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007820183905560405183815284907f0c0f2662914f0cd1e952db2aa425901cb00e7c1f507687d22cb04e836d55d9c7906020015b60405180910390a250505050565b61091561275d565b5f81815261177760209081526040808320815161016081018352815473ffffffffffffffffffffffffffffffffffffffff908116825260018301549482019490945260028201548085169382019390935274010000000000000000000000000000000000000000928390046bffffffffffffffffffffffff16606082015260038201546080820152600482015460a0820152600582015460c0820152600682015493841660e082015291830467ffffffffffffffff166101008301527c010000000000000000000000000000000000000000000000000000000090920463ffffffff1661012082015260079091015461014082015290610a1361274f565b90508073ffffffffffffffffffffffffffffffffffffffff16826040015173ffffffffffffffffffffffffffffffffffffffff1614610a9c5760408083015190517f9802550c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610848565b60c082015115610ad8576040517f5aea7c4700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815173ffffffffffffffffffffffffffffffffffffffff165f9081526117766020908152604080832082860180518552908352818420849055868452611777909252822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810183905560028101839055600381018390556004810183905560058101839055600681018390556007019190915582519051610b829190836127d2565b60405183907f14b9c40404d5b41deb481f9a40b8aeb2bf4b47679b38cf757075a66ed510f7f1905f90a25050610bb96001610b8755565b50565b610bc461275d565b73ffffffffffffffffffffffffffffffffffffffff8083165f908152611f4e6020908152604080832085845290915281205490911690610c0261274f565b905073ffffffffffffffffffffffffffffffffffffffff8216610c51576040517fc09f8e8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610cce576040517ff049b41a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602401610848565b73ffffffffffffffffffffffffffffffffffffffff84165f908152611f4e60209081526040808320868452909152812055610d0a8484846127d2565b604051839073ffffffffffffffffffffffffffffffffffffffff8616907f70c7877531c04c7d9caa8a7eca127384f04e8a6ee58b63f778ce5401d8bcae41905f90a35050610d596001610b8755565b5050565b73ffffffffffffffffffffffffffffffffffffffff82165f908152612337602090815260408083208484529091528120805463ffffffff16421115610da5575f915050610dff565b8054600182015470010000000000000000000000000000000090910460201b73ffffffffffffffffffffffffffffffff00000000167401000000000000000000000000000000000000000090910463ffffffff16175b9150505b92915050565b610e0d61275d565b73ffffffffffffffffffffffffffffffffffffffff84165f908152612337602090815260408083208684529091529020805463ffffffff16421115610e895780546040517f8c9e57cf00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602401610848565b805464010000000090046bffffffffffffffffffffffff16821115610ef45780546040517f242373610000000000000000000000000000000000000000000000000000000081526401000000009091046bffffffffffffffffffffffff166004820152602401610848565b600181015473ffffffffffffffffffffffffffffffffffffffff848116911614610f685760018101546040517fa7d95dc300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610848565b610f7285856127dd565b50610f7e6001610b8755565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8083165f908152611f4e602090815260408083208584529091528120549091169081610fe657507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61103f565b5073ffffffffffffffffffffffffffffffffffffffff83165f908152611f4e602090815260408083208584529091529020547401000000000000000000000000000000000000000090046bffffffffffffffffffffffff165b9250929050565b5f8181526117776020526040812060058101548203611069576007015492915050565b6110768160070154612bff565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff83165f908152611293602090815260408083208584529091529020548190036110e7576040517fe5c3f26300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110f18383612c20565b801561118f5761110081421190565b15611137576040517fdbaca9d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111456303c2670042615110565b81111561118f5761115a6303c2670042615110565b6040517f857c0df100000000000000000000000000000000000000000000000000000000815260040161084891815260200190565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526112936020908152604080832085845290915290208190556111ca61274f565b73ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff167fc8a67fb17ad40fabf835a5c96e0438644464257af6f325f44f1615aabc0e41ba8460405161122991815260200190565b60405180910390a4505050565b5f6110768383612c60565b5f61124d858585612c6b565b1561125957505f611690565b6112638585612cf9565b1561129a576040517f83a483f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff85165f908152612337602090815260408083208784529091528120906112d361274f565b825490915063ffffffff164211156113a5576040517f4ec58ed700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152602482018790527f00000000000000000000000049128cf8abe9071ee24540a296b5ded3f9d504431690634ec58ed790349060440160206040518083038185885af1158015611379573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061139e9190615148565b92506114fd565b81545f906113c89064010000000090046bffffffffffffffffffffffff16612bff565b905080861015611407576040517fe40a30e600000000000000000000000000000000000000000000000000000000815260048101829052602401610848565b600183015483546040517f5fdec56100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482015263ffffffff821660248201526401000000009091046bffffffffffffffffffffffff1660448201528382166064820152608481018890527f00000000000000000000000049128cf8abe9071ee24540a296b5ded3f9d5044390911690635fdec56190349060a40160206040518083038185885af11580156114d4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114f99190615148565b9350505b6001820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117909155825463ffffffff85167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116176401000000006bffffffffffffffffffffffff8816021783557f00000000000000000000000049128cf8abe9071ee24540a296b5ded3f9d504438116908516036115ba575f93505b81546fffffffffffffffffffffffffffffffff908116602086811c909216700100000000000000000000000000000000021783556001830180547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000063ffffffff8816021790556040805187815291820185905273ffffffffffffffffffffffffffffffffffffffff838116928992918b16917ece0a712e4e277ac7b34942865f0de7a5629dffe0539b70423ad5ff1ed6ab42910160405180910390a450505b949350505050565b6116a061275d565b5f818152611777602052604081206005015490036116ea576040517f4b6ad8fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116f4815f612d50565b610bb96001610b8755565b61170761275d565b611712838383613053565b6119b1576bffffffffffffffffffffffff81111561175c576040517f35ec82cb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8381165f908152611f4e602090815260408083208684529091529020805490918116907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff16831480156117dd575073ffffffffffffffffffffffffffffffffffffffff811615155b15611814576040517fb6950f3600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815473ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000006bffffffffffffffffffffffff8516021782555f61185e61274f565b905073ffffffffffffffffffffffffffffffffffffffff82166118c85761188586866130c6565b82547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8216178355611945565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611945576040517f697d918e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602401610848565b8073ffffffffffffffffffffffffffffffffffffffff16858773ffffffffffffffffffffffffffffffffffffffff167ffcc77ea8bdcce862f43b7fb00fe6b0eb90d6aeead27d3800d9257cf7a05f9d96876040516119a591815260200190565b60405180910390a45050505b6119bc6001610b8755565b505050565b5f6060805f805f806040518061012001604052806119fc7f00000000000000000000000000000000000000000000000000000000000001f490565b81526020017f0000000000000000000000000000000000000000000000000000000000000000151581526020018e73ffffffffffffffffffffffffffffffffffffffff1681526020018d81526020018b81526020018c73ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020018961ffff168152602001611a9b61274f565b73ffffffffffffffffffffffffffffffffffffffff1681525090507f00000000000000000000000015cfbf58b02f62e3083d063ebe394fac5bdd674c73ffffffffffffffffffffffffffffffffffffffff16630e13eac1826040518263ffffffff1660e01b8152600401611b0f919061515f565b5f60405180830381865afa158015611b29573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611b6e9190810190615341565b809750819850829950839a50849b50859c505050505050505096509650965096509650969050565b611c186040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81525090565b5f82815261177760205260408120600681015490917c010000000000000000000000000000000000000000000000000000000090910463ffffffff1690819003611c7f57507f00000000000000000000000000000000000000000000000000000000000151805b6040805161010081018252835473ffffffffffffffffffffffffffffffffffffffff908116825260018501546020830152600285015481169282019290925260608101929092526103846080830152600583015460a083015260068301541660c082015260079091015460e082015292915050565b73ffffffffffffffffffffffffffffffffffffffff82165f90815261233760209081526040808320848452909152812080548291829163ffffffff16421115611d46575f805f93509350935050611d89565b6001810154905473ffffffffffffffffffffffffffffffffffffffff909116935063ffffffff8116925064010000000090046bffffffffffffffffffffffff1690505b9250925092565b5f806060805f80611da189896130d0565b9050611db18989838a5f806119c1565b50939950919650945092505f90505b8351811015611df257838181518110611ddb57611ddb615423565b602002602001015186019550806001019050611dc0565b5093975093979195509350565b73ffffffffffffffffffffffffffffffffffffffff84165f908152611f4e60209081526040808320868452909152902080547401000000000000000000000000000000000000000090046bffffffffffffffffffffffff16831015611eba5780546040517f16b5016f000000000000000000000000000000000000000000000000000000008152740100000000000000000000000000000000000000009091046bffffffffffffffffffffffff166004820152602401610848565b805473ffffffffffffffffffffffffffffffffffffffff16611f08576040517fda48e18400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f13858584613185565b5050505050565b5f611f2361275d565b611f2c83612716565b815f03611f5b577f00000000000000000000000000000000000000000000000000000000000151809150611fdd565b62093a80821115611f9d576040517fccd285bd00000000000000000000000000000000000000000000000000000000815262093a806004820152602401610848565b610384821015611fdd576040517f9299180e0000000000000000000000000000000000000000000000000000000081526103846004820152602401610848565b611fe561331c565b9050611ff185856130c6565b73ffffffffffffffffffffffffffffffffffffffff85165f908152611776602090815260408083208784529091529020541561208f5773ffffffffffffffffffffffffffffffffffffffff85165f90815261177660209081526040808320878452909152908190205490517f7618a0030000000000000000000000000000000000000000000000000000000081526004810191909152602401610848565b5f61209861274f565b73ffffffffffffffffffffffffffffffffffffffff8781165f818152611776602090815260408083208b84528252808320889055878352611777909152902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000908116909217815560018101899055600281018054909216928416929092179055600781018690559091507f0000000000000000000000000000000000000000000000000000000000015180841461219a576006810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff8716021790555b60408051858152610384602082015290810186905260608101849052869073ffffffffffffffffffffffffffffffffffffffff808a1691908516907f1062dd3b35f12b4064331244d00f40c1d4831965e4285654157a2409c6217cff9060800160405180910390a450506116906001610b8755565b61221761275d565b5f838152611777602052604081206007810154909103612263576040517f125197d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3483101561229d576040517fe2bbc1e300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60058101545f6122ab61274f565b90507f00000000000000000000000049128cf8abe9071ee24540a296b5ded3f9d5044373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612304575f93505b73ffffffffffffffffffffffffffffffffffffffff841615158061232757508115155b156123b85760028301805473ffffffffffffffffffffffffffffffffffffffff16604086901c6bffffffffffffffffffffffff1674010000000000000000000000000000000000000000908102919091179091556006840180547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff1667ffffffffffffffff87169092029190911790555b815f036124d85782600701548510156124055782600701546040517f31e6f71c00000000000000000000000000000000000000000000000000000000815260040161084891815260200190565b8254600184015461242c9173ffffffffffffffffffffffffffffffffffffffff1690613342565b600783018590556006830180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617908190557c0100000000000000000000000000000000000000000000000000000000900463ffffffff165f8190036124c857507f00000000000000000000000000000000000000000000000000000000000151805b420160058401819055915061263a565b6124e182421190565b1561251b576040517f3feeb88d00000000000000000000000000000000000000000000000000000000815260048101839052602401610848565b600683015473ffffffffffffffffffffffffffffffffffffffff808316911603612571576040517fe140576800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61257f8460070154612bff565b9050808610156125be576040517fcd698a1900000000000000000000000000000000000000000000000000000000815260048101829052602401610848565b506007830180546006850180549288905573ffffffffffffffffffffffffffffffffffffffff8481167fffffffffffffffffffffffff000000000000000000000000000000000000000085161790915590911642610384018085101561262957600586018190559350835b506126378183614e2061334c565b50505b612644855f61351d565b604080518681526020810184905273ffffffffffffffffffffffffffffffffffffffff83169188917f26ea3ebbda62eb1baef13e1c237dddd956c87f80b2801f2616d806d52557b121910160405180910390a35050506119bc6001610b8755565b73ffffffffffffffffffffffffffffffffffffffff82165f908152612337602090815260408083208484529091528120805463ffffffff16421161270c5780546127049064010000000090046bffffffffffffffffffffffff16612bff565b915050610dff565b5060019392505050565b805f03610bb9576040517f3a970fe600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61275861362a565b905090565b6002610b8754036127ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610848565b6002610b8755565b6119bc838383613696565b73ffffffffffffffffffffffffffffffffffffffff8281165f90815261233760209081526040808320858452808352818420825160a081018452815463ffffffff808216835264010000000082046bffffffffffffffffffffffff9081168489019081527001000000000000000000000000000000009093046fffffffffffffffffffffffffffffffff1684880152600185018054808c1660608701908152740100000000000000000000000000000000000000008204851660808801528d8c5297909952989094557fffffffffffffffff00000000000000000000000000000000000000000000000090961690965591518251955193517f4dc8fb3c000000000000000000000000000000000000000000000000000000008152908716600482015294909316602485015291166044830152917f00000000000000000000000049128cf8abe9071ee24540a296b5ded3f9d504431690634dc8fb3c906064015f604051808303815f87803b158015612954575f80fd5b505af1158015612966573d5f803e3d5ffd5b505050505f61297361274f565b90505f8061299a838787876060015188602001516bffffffffffffffffffffffff166136a1565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526004810188905291935091505f9073ffffffffffffffffffffffffffffffffffffffff881690636352211e90602401602060405180830381865afa158015612a0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a2e9190615450565b90503073ffffffffffffffffffffffffffffffffffffffff821603612a6257612a5d8787876060015187613799565b612af4565b60608501516040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152918216602482015260448101889052908816906323b872dd906064015f604051808303815f87803b158015612add575f80fd5b505af1158015612aef573d5f803e3d5ffd5b505050505b5f805f612b4f8a8a898b602001516bffffffffffffffffffffffff16612b488d604001518e6080015173ffffffffffffffffffffffffffffffff0000000060209290921b9190911663ffffffff9091161790565b8b8b6137a5565b925092509250876060015173ffffffffffffffffffffffffffffffffffffffff16898b73ffffffffffffffffffffffffffffffffffffffff167f1cb8adb37d6d35e94cd0695ca39895b84371864713f5ca7eada52af9ff23744b8a878787604051612beb949392919073ffffffffffffffffffffffffffffffffffffffff94909416845260208401929092526040830152606082015260800190565b60405180910390a450505050505050505050565b5f600a8204808203612c1657611076836001615110565b6110768382615110565b612c2a82826137ca565b610d59576040517fe390a4ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61107683836137d5565b73ffffffffffffffffffffffffffffffffffffffff8084165f908152611f4e602090815260408083208684529091528120805491929091161580612cd5575080547401000000000000000000000000000000000000000090046bffffffffffffffffffffffff1683105b15612ce3575f915050611076565b612cee85855f613185565b506001949350505050565b73ffffffffffffffffffffffffffffffffffffffff82165f908152611776602090815260408083208484529091528120548015801590610dfb57505f90815261177760205260409020600501544211159392505050565b5f8281526117776020908152604091829020825161016081018452815473ffffffffffffffffffffffffffffffffffffffff908116825260018301549382019390935260028201548084169482019490945274010000000000000000000000000000000000000000938490046bffffffffffffffffffffffff16606082015260038201546080820152600482015460a0820152600582015460c08201819052600683015493841660e083015293830467ffffffffffffffff166101008201527c010000000000000000000000000000000000000000000000000000000090920463ffffffff1661012083015260070154610140820152904211612e87578060c001516040517f3a017f6000000000000000000000000000000000000000000000000000000000815260040161084891815260200190565b5f80612eaa8360400151845f015185602001518660e001518761014001516136a1565b845173ffffffffffffffffffffffffffffffffffffffff165f908152611776602090815260408083208289015184528252808320839055898352611777909152812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560018101829055600281018290556003810182905560048101829055600581018290556006810182905560070155909250905083612f6157612f61835f015184602001518560e001515f613817565b5f805f612fc0865f0151876020015188604001518961014001518a610100015167ffffffffffffffff1660408c606001516bffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b178a8a6137a5565b9250925092508560e0015173ffffffffffffffffffffffffffffffffffffffff16866040015173ffffffffffffffffffffffffffffffffffffffff16897f2edb0e99c6ac35be6731dab554c1d1fa1b7beb675090dbb09fb14e615aca1c4a868686604051613041939291909283526020830191909152604082015260600190565b60405180910390a45050505050505050565b73ffffffffffffffffffffffffffffffffffffffff83165f908152612337602090815260408083208584529091528120805463ffffffff164211806130ae5750805464010000000090046bffffffffffffffffffffffff1683115b156130bc575f915050611076565b612cee85856127dd565b610d5982826138f4565b5f6130db8383612c60565b905073ffffffffffffffffffffffffffffffffffffffff8116610dff576040517f6352211e0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff841690636352211e90602401602060405180830381865afa158015613161573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110769190615450565b61318d61275d565b61319783836139ba565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152611f4e60209081526040808320868452808352818420825180840190935280549586168352740100000000000000000000000000000000000000009095046bffffffffffffffffffffffff168284015286845290915291556132158484613a24565b61323281602001516bffffffffffffffffffffffff16600161351d565b5f61323b61274f565b90505f80613261845f015188888688602001516bffffffffffffffffffffffff166136a1565b915091506132718787855f613799565b5f805f6132988a8a895f01518a602001516bffffffffffffffffffffffff168c8a8a6137a5565b89516040805173ffffffffffffffffffffffffffffffffffffffff8c8116825260208201879052918101859052606081018490529497509295509093508116918b918d16907fd28c0a7dd63bc853a4e36306655da9f8c0b29ff9d0605bb976ae420e46a999309060800160405180910390a4505050505050506119bc6001610b8755565b5f61138d545f036133325761138d805460010190555b5061138d80546001810190915590565b610d598282613a8a565b815f0361335857505050565b7f00000000000000000000000049128cf8abe9071ee24540a296b5ded3f9d5044373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036133cf577f00000000000000000000000067df244584b67e8c51b10ad610aaffa9a402fdb692505b5f8373ffffffffffffffffffffffffffffffffffffffff168383906040515f60405180830381858888f193505050503d805f8114613428576040519150601f19603f3d011682016040523d82523d5f602084013e61342d565b606091505b5050905080610f7e576040517faa67c91900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301527f00000000000000000000000049128cf8abe9071ee24540a296b5ded3f9d50443169063aa67c9199085906024015f604051808303818588803b1580156134be575f80fd5b505af11580156134d0573d5f803e3d5ffd5b50505050508373ffffffffffffffffffffffffffffffffffffffff167fa2201512569adb2d513531dfd69b66df50bd5cffb8c1bbe65a4611f9e1eadbd1846040516108ff91815260200190565b348211156135ef577f00000000000000000000000049128cf8abe9071ee24540a296b5ded3f9d5044373ffffffffffffffffffffffffffffffffffffffff1663452f2b8f61356961274f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff909116600482015234850360248201526044015b5f604051808303815f87803b1580156135d5575f80fd5b505af11580156135e7573d5f803e3d5ffd5b505050505050565b8080156135fb57503482105b15610d5957610d5982340361360e61274f565b73ffffffffffffffffffffffffffffffffffffffff1690613a9e565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000762340b8a40cdd5bfc3edd94265899fda345d0e316810361369357507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90565b90565b6119bc838383613bf4565b6040517f3221782100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301528581166024830152604482018590528381166064830152608482018390525f91829182917f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb79091169063322178219060a4016060604051808303815f875af1158015613752573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613776919061546b565b90945092509050801561378e5761378e888888613c37565b509550959350505050565b610f7e84848484613d1a565b5f805f6137b78a8a8a8a8a8a8a613de9565b919c909b50909950975050505050505050565b5f6110768383613dfb565b73ffffffffffffffffffffffffffffffffffffffff8083165f908152611f4e602090815260408083208584529091529020541680610dff576110768383613ed4565b73ffffffffffffffffffffffffffffffffffffffff811615613865576040517f57a016b300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152604482018590528516906323b872dd906064015f604051808303815f87803b1580156138d8575f80fd5b505af11580156138ea573d5f803e3d5ffd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8083165f908152611f4e602090815260408083208584529091529020541680613936576119bc8383613f20565b61393e61274f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146119bc576040517f32f3b03300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610848565b73ffffffffffffffffffffffffffffffffffffffff82165f90815261129360209081526040808320848452909152902054421015610d59576040517f4917db3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82165f908152612337602090815260408083208484529091529020613a5c61274f565b600182015473ffffffffffffffffffffffffffffffffffffffff9182169116036119bc576119bc838361407f565b613a94828261407f565b610d598282614290565b80471015613b08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610848565b5f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114613b5e576040519150601f19603f3d011682016040523d82523d5f602084013e613b63565b606091505b50509050806119bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610848565b73ffffffffffffffffffffffffffffffffffffffff8084165f908152611f4e602090815260408083208684529091529020541680610f7e57610f7e8484846142df565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610f7e907f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb790606401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f93251fba0000000000000000000000000000000000000000000000000000000017905273ffffffffffffffffffffffffffffffffffffffff86169190614321565b73ffffffffffffffffffffffffffffffffffffffff8085165f908152611f4e60209081526040808320878452909152902054168015613ddd578173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613dd0576040517f32f3b03300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610848565b5f9150613ddd8585614349565b611f13858585856143a8565b5f805f6137b78a8a8a8a8a8a8a6145e0565b73ffffffffffffffffffffffffffffffffffffffff8083165f908152611f4e602090815260408083208584529091528120549091168015613ec357613e3e61274f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613eba576040517fc89fba3b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610848565b60019150613ecd565b610dfb84846145f2565b5092915050565b73ffffffffffffffffffffffffffffffffffffffff8083165f9081526117766020908152604080832085845282528083205483526117779091529020600201541680610dff575f611076565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526117766020908152604080832084845290915281205490819003613f63576119bc83836146ff565b5f8181526117776020526040812090613f7a61274f565b905081600501545f0361400057600282015473ffffffffffffffffffffffffffffffffffffffff828116911614613ffb5760028201546040517fe64526ee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610848565b611f13565b600682015473ffffffffffffffffffffffffffffffffffffffff8281169116146140745760068201546040517fe64526ee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610848565b611f13836001612d50565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526123376020908152604080832084845290915290205463ffffffff164211610d595773ffffffffffffffffffffffffffffffffffffffff8281165f90815261233760209081526040808320858452808352818420825160a081018452815463ffffffff808216835264010000000082046bffffffffffffffffffffffff9081168489019081527001000000000000000000000000000000009093046fffffffffffffffffffffffffffffffff1684880152600185018054808c1660608701908152740100000000000000000000000000000000000000008204851660808801528d8c5297909952989094557fffffffffffffffff00000000000000000000000000000000000000000000000090961690965591518251955193517f345db493000000000000000000000000000000000000000000000000000000008152908716600482015294909316602485015291166044830152917f00000000000000000000000049128cf8abe9071ee24540a296b5ded3f9d50443169063345db493906064015f604051808303815f87803b158015614233575f80fd5b505af1158015614245573d5f803e3d5ffd5b505060405184925073ffffffffffffffffffffffffffffffffffffffff861691507f30c264456cbd17f5f67d7534654161414f34c0e6cc1b7500e169b7a7aea4afc0905f90a3505050565b73ffffffffffffffffffffffffffffffffffffffff8083165f908152611f4e6020908152604080832085845290915290208054909116156142d5576142d58383614349565b6119bc8383614781565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526117766020908152604080832085845290915281205490036119bc576119bc83838361478b565b60605f61432f8585856147a0565b92509050806143415761434182614850565b509392505050565b73ffffffffffffffffffffffffffffffffffffffff82165f818152611f4e60209081526040808320858452909152808220829055518392917faa6271d89a385571e237d3e7254ccc7c09f68055e6e9b410ed08233a8b9a05cf91a35050565b73ffffffffffffffffffffffffffffffffffffffff84165f9081526117766020908152604080832086845290915290205480156145d4575f8181526117776020526040812060058101549091036145505773ffffffffffffffffffffffffffffffffffffffff83161580159061443b5750600281015473ffffffffffffffffffffffffffffffffffffffff848116911614155b156144905760028101546040517fe64526ee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610848565b73ffffffffffffffffffffffffffffffffffffffff86165f90815261177660209081526040808320888452825280832083905584835261177790915280822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810183905560028101839055600381018390556004810183905560058101839055600681018390556007018290555183917f5603897cc9b1e866f3f7395ffc6638776041f21c094d0b4e748ff44c407fa36291a26145cf565b600681015473ffffffffffffffffffffffffffffffffffffffff8481169116146145c45760068101546040517fe64526ee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610848565b6145cf826001612d50565b5f9250505b611f1385858585613817565b5f805f6137b78a8a8a8a8a8a8a614892565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526117766020908152604080832084845290915281205480156146f9575f8181526117776020526040902061463f61274f565b600282015473ffffffffffffffffffffffffffffffffffffffff9081169116146146b35760028101546040517fc0221c7f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610848565b6005810154156146ef576040517fa2a745e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001925050613ecd565b5f610dfb565b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd61472361274f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152306024820152604481018490526064016135be565b610d5982826148ae565b61479583836148b8565b6119bc838383614992565b5f60608373ffffffffffffffffffffffffffffffffffffffff1683866040516020016147cd9291906154cd565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526148059161550c565b5f604051808303815f865af19150503d805f811461483e576040519150601f19603f3d011682016040523d82523d5f602084013e614843565b606091505b5090969095509350505050565b8051156148605780518082602001fd5b6040517f3cfe059f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805f61489f8a8a6148b8565b6137b78a8a8a8a8a8a8a6149a8565b610d5982826139ba565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526112936020908152604080832084845290915290205415610d595773ffffffffffffffffffffffffffffffffffffffff82165f9081526112936020908152604080832084845290915281205561492761274f565b73ffffffffffffffffffffffffffffffffffffffff16818373ffffffffffffffffffffffffffffffffffffffff167fc8a67fb17ad40fabf835a5c96e0438644464257af6f325f44f1615aabc0e41ba5f60405161498691815260200190565b60405180910390a45050565b61499d818484614c07565b6119bc838383614db3565b5f805f865f036149bf57505f915081905080614bfa565b6060805f806149d28e8e8e8e8e8d6119c1565b8451959c5091995092975090955090935091505f906001146149f657614e206149fb565b620334505b90505f5b8551811015614a6e57614a45868281518110614a1d57614a1d615423565b6020026020010151868381518110614a3757614a37615423565b60200260200101518461334c565b848181518110614a5757614a57615423565b6020026020010151880197508060010190506149ff565b50614a7c8d87614e2061334c565b614aa97f00000000000000000000000067df244584b67e8c51b10ad610aaffa9a402fdb689614e2061334c565b8215614b3d57614abc8b84614e2061334c565b8d8f73ffffffffffffffffffffffffffffffffffffffff167f141b92fd9766c80ab120598ea2f6be9802470ec59b5446dd9bf46214ead8d08e8d865f604051614b309392919073ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b60405180910390a3968201965b73ffffffffffffffffffffffffffffffffffffffff8a1615614bf4578115614b8157855f03614b6f5795810195614b74565b948101945b614b818a83614e2061334c565b8d8f73ffffffffffffffffffffffffffffffffffffffff167f27a4dd4ff659a9e6354fb079b2208365e5b83f55c22a4150eee2bca89501cb988c85604051614beb92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b60405180910390a35b50505050505b9750975097945050505050565b6040517f8f40f37800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284811660448301525f917f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb790911690638f40f378906064016040805180830381865afa158015614ca3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614cc79190615517565b5090508015610f7e5760405173ffffffffffffffffffffffffffffffffffffffff8416602482015260448101839052611f13907f00000000000000000000000069525dac489e4718964b5615c3d794a25d62beb790606401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f93251fba0000000000000000000000000000000000000000000000000000000017905273ffffffffffffffffffffffffffffffffffffffff87169190614321565b6119bc8383835f613799565b5f8060408385031215614dd0575f80fd5b50508035926020909101359150565b5f60208284031215614def575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610bb9575f80fd5b5f8060408385031215614e28575f80fd5b8235614e3381614df6565b946020939093013593505050565b5f805f8060808587031215614e54575f80fd5b8435614e5f81614df6565b9350602085013592506040850135614e7681614df6565b9396929550929360600135925050565b5f805f60608486031215614e98575f80fd5b8335614ea381614df6565b95602085013595506040909401359392505050565b5f805f8060808587031215614ecb575f80fd5b8435614ed681614df6565b935060208501359250604085013591506060850135614ef481614df6565b939692955090935050565b61ffff81168114610bb9575f80fd5b5f805f805f8060c08789031215614f23575f80fd5b8635614f2e81614df6565b9550602087013594506040870135614f4581614df6565b9350606087013592506080870135614f5c81614df6565b915060a0870135614f6c81614eff565b809150509295509295509295565b5f815180845260208085019450602084015f5b83811015614fbf57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614f8d565b509495945050505050565b5f815180845260208085019450602084015f5b83811015614fbf57815187529582019590820190600101614fdd565b86815260c060208201525f61501160c0830188614f7a565b82810360408401526150238188614fca565b60608401969096525050608081019290925260a0909101529392505050565b86815285602082015260c060408201525f61506060c0830187614f7a565b82810360608401526150728187614fca565b91505083608083015273ffffffffffffffffffffffffffffffffffffffff831660a0830152979650505050505050565b5f805f80608085870312156150b5575f80fd5b84356150c081614df6565b966020860135965060408601359560600135945092505050565b5f805f606084860312156150ec575f80fd5b8335925060208401359150604084013561510581614df6565b809150509250925092565b80820180821115610dff577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f60208284031215615158575f80fd5b5051919050565b5f610120820190508251825260208301511515602083015273ffffffffffffffffffffffffffffffffffffffff6040840151166040830152606083015160608301526080830151608083015260a08301516151d260a084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060c08301516151fa60c084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060e083015161521060e084018261ffff169052565b506101009283015173ffffffffffffffffffffffffffffffffffffffff16919092015290565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156152aa576152aa615236565b604052919050565b5f67ffffffffffffffff8211156152cb576152cb615236565b5060051b60200190565b5f82601f8301126152e4575f80fd5b815160206152f96152f4836152b2565b615263565b8083825260208201915060208460051b87010193508684111561531a575f80fd5b602086015b84811015615336578051835291830191830161531f565b509695505050505050565b5f805f805f8060c08789031215615356575f80fd5b8651955060208088015167ffffffffffffffff80821115615375575f80fd5b818a0191508a601f830112615388575f80fd5b81516153966152f4826152b2565b81815260059190911b8301840190848101908d8311156153b4575f80fd5b938501935b828510156153db5784516153cc81614df6565b825293850193908501906153b9565b60408d0151909a5094505050808311156153f3575f80fd5b505061540189828a016152d5565b945050606087015192506080870151915060a087015190509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215615460575f80fd5b815161107681614df6565b5f805f6060848603121561547d575f80fd5b83519250602084015161548f81614df6565b604085015190925061510581614eff565b5f81515f5b818110156154bf57602081850181015186830152016154a5565b505f93019283525090919050565b5f6154d882856154a0565b60609390931b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001683525050601401919050565b5f61107682846154a0565b5f8060408385031215615528575f80fd5b82519150602083015161553a81614eff565b80915050925092905056fea26469706673582212206163fddf961112b0284fe1d69e9a0a24064e77f2d6c596b93a45476cb5726ac464736f6c634300081700330605581c03ddd034efd95567cb0698ecdc52a9baf22abcbbf82e224888985b20070119557b05581c03d39ac99afc05e2417ccad87c13654c1be987ab9edc1497b04bee100c0147042d66ed6b7800021942000142004e02191041034f5a5f6706dc853cb3ae2279729e0d7e24dda128a77358144e4c0fd3e5d60e980605581e03a3db1cbadf101d51dd72643e0cb1cb35b895929fa5d673c8839b02942007011bffffffffffffffff05581e03a42e7ed265143df1c72dac551980cc36efbc790b22c455275a597d9680040105581e03cb12b94ac15dec1ace57a6254531e9efb922d6bbb32313dd26e78746200c074703cde40bbf702805581e03541a9b188a8ed3c62c5ecbe9bfb7dcad7b2b56f052649cc9f7af537360040205581e03697c4305a000e249931f677a86f9e7577fb415899b13bcb502a9fa30d00c0b464d262c65e3f803b9f8fea8d969a147aee0f9a51be5970231fa0d879c201b9ad476fa14039bb8ec03f4ace4c5d3fa9e1dcc3ac386614c5a91f653e7ebd8eae669d4c8c82c51af505e0219d33b03b9e9832f723a95f8653414976dc49f18fffcdcdb98d2f42094514155357d06f603f88f80bbc4e27ac8c3ee963a011ea709c98d531c19b577dd26471c7be1b17e2e035564567655d67e95bb38083c9571a469fc14747388dcc97d2ee88b3676db27c90333328d7e151f89e1afdd861a835d4a793c78ae5884fed5979566f4dedae9c9ef03fc56f3b37e45a786bf3320e1aab6e0f07858c1d1c5309206b2690ad68d46ac1a03dea447cbe3d39efcb3c91d6427420d2d4cd30a04bb96134348378860f302027a032bcdcbca73e03850a38ecb15b434fd2e7e5fabaa3ef75b3aeaf0f87193b30b8e0219ffff03e6c52e1e62ba94af22a8f297e5311d37ab9b93224aeffc24e6c0e0b16265dbcb033bd9970036fe8ec701836077f0adc7b364d030bb1841e0a8133685f76ae29b8e03b7cddb7fdd82a6c5c6c72d0e7554e24c2dda1459101681bb5ebbec2643bb5a6403158797ecfce3587adcc3c761626ae9f507e1a8734afec3ac124ab92c1c977569033a964131e8450c5fc96e121cbf2bb25ba0d40af74364d31079b633c3d7147f60038a58b628e88ab4869665fbb4f33261051760e65f6890fcda84360d08d7adb7ff036a093e9d19671357ce4d39cdb679912b80e0a4c010999525409b260538290043032ea062f84e614659de01d48621dbbaa12b5077d69c339c5a8b222b3979f8f481035c537eab3a3866fa55ec207e6406de046ed3f2fd327e70f236802132dc73703b03307d18f0c25dcc001fcd87883c522b5fa8b3c330ab7af11399af57315f81a4f303869a7168388a4d22967765921f99201be7a34bcdebe2f79fadcd32ec82fb0c8f03e57cd55c5662ddf371f6a79b4b9059f94c9c03a8dafb0bf79ca6a7aa22cff31c0219ffff038d0504f64874d6f21bef83947f7c040c930eae05858cb2eca8c4009e4e1386f803c2a720ef213f52a57f7343931566f62b72ae395d5b67d4bb363c1601596c3e7d037ebfbc65daeda365acf7e8a093b35b7edd6e5b543b48f06d4684e17ce835eecd038e666b59bbf42cb84c99be54bf9f6e26a23587173ce3d85fd8704133eac2a48b035cf3a4f4c498a034b34f3293ac945d78e62ddd85af2aa31632330ecc1adc3c8203f7dad79bd28a09b57f0105797c8e8ec423efd70d81854dd0a3a54cce85418c2803af76c1e42d42ba5aff9b0aa0b3755e6ff3ff1ece2dec89111b2b32b9051d78ab0351177e64c69fa70a22e355b3c2217d742c2d31d72a9f1d8967b5f3a6d1f3f1cd03efc454798ea505812040af20764d555044be243385c46ec426a766a61ed9774203fa71524444b1d7d1232fc016fa038f5ed9124ac5a80f4b4b83a88f8554081afa03f4bd23440761c9c2adfb2ac348517b42eb424991fcf56bac3d5e06e6ff43e8ec03f420e9701989404a7518cc5ae643a5c8113e8914c26addfdd1e4d8dbdbf47a9f03218d77ef67ee8283932a4740b9ffcb9a3b3ffd58e4fe8e7591aa4075097182e80219ffff033d36b75ba9d903c5d60cda38efc8a564cebd442ec8643f0b9f7407d0023b79b5038f8fb7306df4c9616c51868bbbf1132405d07446b09ad9a852488d8036efba8f034ed2d69763c9e42e8c84c27e4b318086dd26b37ff9e1975679590e582771e511037ffef1c82269b4912172ed25c6b2e1f6bb1137449fd4d86f3c90cf06eb4c9edd034c42b15487cb2cb9cfd8064015b7ec33348db3dbd3d6f610475945ddf982397903aa5913011feeeb2f2369282635c896774f712827a3eed49fbb63293174cd419c030c1ba04dd4fffed5c560ebd6e6ba1a8e1f3b8db79122fea609b1455a266cfa5b03ede068821c8de1659861541ff4a3b381726f0ccfdc5d534301c87f57b1a668b30219ffff034ccbaff667a1b4c786f8dbd2015b24268cd22b834aab439946e8eecf26cd12e303036af39c612f8ec1d451c5ae1109d00e1be5bb4ff4da66a46cebded8d1bdb5bd031a76370a6c4c9515da1560c1faef75a105b918f466f4c24ec7edfd162ef174c30343c088214456e3ab6cff9660b1c3aa5fd8b46d4178d54caebcf81a62f3ee278e034a8a65352d2c59ba23f62105e31ddc17e98538ac7e99d7abdf4cbf56a0ad80800362b2f7d2b03c687818ba199b46c5e94a04f493018416007fba5d842c3997496c0382322f470e36b0c1c3a398fe28af79d454b2a1b92eb7d148409970b3254e645603d656586647db87a5d8e907b426b5e05ad77b6f03ed172f4060502f132aa5578203187aa599795b6c494c84f888f57297514af59836dd6934800775bfffb6c624dc0332509d62db553b63596221eb38fbcc2729bc3d318ac3136a73288a0be43bc0d403a104d45848f084231d5797ce858d514b0617a4b1092897c0787376fe47d8b67b033285eec007952222f7cd255e569cb66d889271e5416f6758cb2420c266f7dffb0364c0033e3cad7766d3f8cb513bb585f27ebd4d1ddff5d5fff671a8d3da2e22c80349042acbe98a45f87aeca2a9bdfcc7c6720221f252e29f39cc0ebad975081c4803689935948a5a7429f956341aaa3736bd83d58f6fb3815cb90f9850d9e669629b03b1902545e588cad6c50d18f7021fa1419bffe40a3aed552ae0fe90445f70d20403c7c42e5ebfd03e6a250de4fd273dcb177a9a36763b19219740861de58f19395303f2c73cdadea3ee022b160f34b25f9428fcfa04d8169f3099db8c4c45d81a933e031995250f583708a1b8c18f12c53b61e4b7500adc599d13f34c567c9e3b63ea63032980f923050bc259a2c8a1428992e4cb37cc9ab99b83a4614c90757f286ea9420318c5bc52e67883def389592a42d6ef57150902916e8c03bbd3e5f229b74a466703ee77aa4a67558f8c43e6eb3b0fa152847dd06211e30ef9d3a3f4f259a4d772660395bf0d6376f1c99b64c3543e94e115cf1ab15b3384945105d98e9ac0538a5cb7033d88fc7236111fc46e301e774920bb56a6d85f58516e7b7aad192d81ded03e9603ddeec402f8868663536b747d7450a5b565848f3763c151cf3719b0a379efe83805581e03e947fff18e106327928416758ab43fddf0be73d8b356bb1bab59d79c60040105581e03fd147b4a5c79c635b575f2090f0a2b79774c54b1ef287fc20fe6e33820040103a2445debe37211d81433d69b0b6e61bdfb783352e10f256fda7cfe3dd23b54ce0322f1d8645d6c682b9853978a9b172413311bc198d89c0f91e573b86d9ed599fe05581e03df459b68a4c8c863fd7abf49f456d64c2e7794423f229383d01708bfc008480d8e0f1b81ab580005581e03d8e476e28bac6735fa3525b4ebf9aef9b2912cbce5ce53872e68c89b60040103242cf0c8f621aa7eb34f2f2498b2424731e4ad2f230306e055e79d1afdc6badd01410605581e03b9a1bce8b8f7ff5a00b0747fa29817b78218fbb9ce3ef43d1fda2360900c01470187b82881380003b5c1dae2bf930f28ae5d6ae7ed945cbaa6b03e956c14a1f274e78e0e8d47b9a8033ee7ebe405e14a58d5a00e969a295aec58e89b492c15b86af1133654279b3bb505581e03102539fc570dd12e609f811bf1f2415e489da6e28b3ff57633146bfbc007011bffffffffffffffff05581e03d5e92258500e70dbaf788e948d315853f1c1a4b95258e143ad0ad50600040103a4ab799c810f934c5b66858fd0cbdabb72026a59a5a1553bbf4cff15c83d4f1c0219d7b6033921236d6a249703b4306fa3580f435bf1f070d73283f643ff4841054a689f5003ca2fa7a62c3f280d0a46dd8439b02f54aef09e5c2a647cae65c542150fb462aa030553527c16fd8e11f584d97ab08cc2c585893edff9cc3344196816b3e4383fe903ab2c552faa02b8b588ad5bb88787974b37a34d79d852d4135035f71ec5f396fc039a32eeafe37e1d7cab165bb5dcdfa38c59672148fb0bf3a5574f880cc78c200c0364be8c43bee77c0fe609e5253561dc1bcc974d9435db8a928850c3132925725f0219ffff0219ffff03ede7a14c6669bcca332fc4529bc70194dfb774d320ce28dbf74dc4d59de3c8730392b66245506b9ad42f84d6c3b678c30a800a101c0c202049fbf2b32a050c9caf03c60aedca52409c8d44a93f3073a38a70ab85b98df87e92d4c82f2b05057f53c703cf651c05bef0c8b2d902437d7f3e1fb7bbe5f3ad4114f92c2b1295094ea3831e03949361932df86654c08771a754fb246733245a8adc2f79a0f2c3076ad40870d503df18d27676af60931881d11178491669abd98a2f487ff229d814ae731125709c037e9ed8906bb69114d6ae3c8dcdd11a54f555bd6ec28cba9605348c6618a591fc03ff5b5d9040de0fe86c00f6a21fb7504515153ebfc92430eace202e7865ce6e650375fdc2158538817e500af60bad149a3a0bce6152369c8f4c16fac93f408ce1e20345fb11720b45b063516b051bc28dbb4ebb0e19e26c021a399316f221cb7c186d03c1ba2ec1906fdac642af7211be23aa138103facddca4a6967ee8f6529541e4b903aab12071c6f6b9f7c39d9ba229dc026232912a828529998992d114d0380d0735033f832568529fdd91e4845b8000222bfb0051478f6b57c970b92a3d490b50b79f038f0d5952734381f0ad489a3da995c7980a33d6d68c3055b81075fcddb8de9dc603af7bb003f2643f82507d3ef250b4d6daa6fd38ef613973b44f657da4bfee9cee0219ffff031a96b31bdaec95beab40611f940a317f9203556bf403af17342c81517db7968903c3c688441a912af276192e9091d7bbbb1ed2c204db185cce89b3e6087e7c203603ac06f7255169a23a24d35cdc50c703895e85e5e3be83cd4f27153821556e726603fae8b9383dbf7e4115e7f7b888858d40b923f7fd25ef5fe9f01c210a3b1b950c03b89d2fba29ece39cd2b5151906bbaf3ba131de783e86ae7d6e0578e217c6188b03b3e022d7e1dcfc74f44cb4622a39b898ba37a419b624d2537335b53efec3380403516cf39567c77273039d697e17fb8ffde5fa319083009021425ac0f39407e2f203e78de966abb93523134e8ef7a55b41ce623380f0217f247cbfcb63b75b3489b60309eea315ead6cdeca4c751e14c2f4cc767bb1b419b7b1c9dbed8cc4e8df4cc5c033974dabfee0321bfda024a55a1ee81f94c7dfb1c30dadc4560bdb2e0c135b1b403fcd834ec11907217692c3dcb628cc494a53ddbf441f71e08dc67bd445cf0e14a03ddf1de765fc35b3c00b5ab72581ad8aeeaf1bc10daf50aec8cb0c8d17c4d737903b59c080c70b38443631381a80c8475658e288377817cede58cc5928bfdc8df20034bfed5427fe4f158a62b184355be4d5753f4889320394a1fefd057ad3304b8eb035679c45abac59671d902062280ab7dd5c6028c9a906a5c1ee060c6b862ae795c03e97db126a26fce9459292b2f386f8b729d18b823ee0d0d879dfe0957412cc2c4032e89f990b7069877704c816f2320602a4c4f22887afc9048344b16b3a51fba480379d2f1a9ae55e003cb896f3e7651051d7b574ac99290c7c7adedb687e8cbf80803bbb7020a283d2b8890d6f1c4152f5acf0b3b47e12e6b61c70fc265500329bdfc03c89ac00481d55d27cca01a8ad3d0150426e3ee3dbc16bef2805bb0e40b19f02b0340aa5a7e25377fcf4eb7013d568bbde1828dbe417d576391e5caa0ad165605100355efde12126e95cdcfc18be28cef30495fab787158dc6e9fe93d8524f845c0740388238cff3c3f2eb859c37e6c68d96c3b01fab4811621202b1330601e502bc46e03f2c44ff7d2094f8806d7e26e6e18585a6ad99c105de54d64304dc06fe009ac840331ee65978cfceedcf316930810f0eb3a010d7303cdb23955995efeb329d0064a03de37c27483650faa1ab8f2de8564c2739cbdfc620cc84513f401d21977826f15033219f81cf8d9a633e8c90c43da9cf728505d9a51088bb518901c918eeffe484103f033be0192e8d2a9f3d0c2624f0e33e18f28ded10cf3d41d1ce0d45e50247c510391c014fef493d9c186ff32a085854bb1c6f4d19b8f007c91878eda45bbb84e5003c7828f7f16397588e69892a01b5563d21a1e3f2a07e7bc39d69366692594e12203aa80df8d2128606aa646018603bfe505047b5abe13962b3bb2eddbaef9b21dd505581d024a68252d155a9541b17a4526de6d9d433f205ad6d4a35161311ca7c4040e034985cf9619c895472ee84fa271332d9e6d2be40f6006ddbd2c118160f5dc444405581d02bc0abd4d5a8f650172bbc15ea6ce99b4046317943fd75aed74c1a1670c1917cc49046ae0ae843e9d3bd30219050105581e034123f11844426fb13b40f85e9cfd72f7ed3beca8f0deeeac8e773b019004060339fc0d3ade874ca88fdb1bba254a554c01fa72eb47051cdad5eefa113a6a1c6c05581e03375a8dd0da3e8f7feff8af94b74d68700fa55158cd2789d5ebda95f1b00c0246696016a96517032c4ee2946cc9f4175bb60fed26f47be25268324d9c9c2f79c18e2d67cdff2841032fad4b5543fdd981717d6c8a6284e724ae5ed621feae1ac8ca8524bae6a2bee605581e0307ba06be189e2802ddc5580906584252d5e0a72b634e0dd828475fcea0040105581e035bec137232a322a527804acfdbb50be54df97cb37b616860ee2de2bcc00c01470581b77ca9c3a005581e037082f83e3a2f9212f0a6eb8a904beae62ed1a0009df151cfdb8b789630040103c8a8b737f4ff473fc08eaecbb85d23a87b3cc6201ecc0ff70c8574f4c045a40702193b3d0377ae2791df2c86ac98dbefb97035da36b07d9cbe7f9f20ff4b22761f94a633cf036d93163155875da477152e343003e03fbdc8ed02c0c450c53a83ee1485cc4f8a035fcf796fe2f5700d485a3809f0d6f79008a899e217fa524eedc9b202eef6394f0303f747282aa14a66ceb4eb4416eb383f8241aead8d853c218e2ff43419430246032219cb1de1ed7de54b6d829bdad17ecb5463eed184edd203732b822b41f373a20219ffff034797cafbef481789f971528d9d9f7f067da969d66f1ca6d963b553ea97ad1a620321ad80c9916d2097df5a54ba40dbd6b279a8070a6602ca1235900398d727738503ce638fdbd23847a09f674fd07c416069e757b1a1c78907b19c2df58b7593518603f640cdc7cb2f9ab2266af60e0cd883e8724690e6ddb3b5cbef751cf04f5bc32e03b51ec69fad3b6e4b066a68d21a982f5231fba1d01dab737ab4a7132b5556a17f037b61945e2ee7ab7c2a4e24505b71e39b04f241e7a81712300fedebe64d06ba6a03d0f1c5cef3a34e884fe57badbb2abe74e31a97f6238591d089da28eb119c8dd00350de29fd21346d58c97c9734ee4b283617d2a310c32f9acde0c080940346a4d003e6089788efca0b560dcf7a4dbe0bf0f8d50dea43df095851eb9dfd6deb5a76a10219ffff034f6ff9a40bf7358462c8cdd14558a03aec84c6138a0ac56f331dac0dbd110f5f03d9b649ac48c6805135d8443bb2e39db18d59f943cf1f7c471cea45a78531ca2e03c013e7772fc338ca8b98d62e3f264e15da2b736bbf4d6035731d1e9ebc4cb95b03a07cd47820e76e0d50e7a9ef5855a672d51abfd39f1f58a157109bb2e145b41403ecc6ace07df76f95e771343a49936dda214851fd7b52de2de39be73c8a6f43240328274b667d22181f35a45b49d90b22a4004e1ef438896b45e4222b77bbcb6fd7038845c767bee4bd96bea812df624f5937bbe89c92ada65bb1fb2c974261d2416a03d798d97ff262bab16e57d4c4c5eef8dbdaf7d6c049a2f85c2a89bc401b4dade10219ffff034afe7bfdd88ddf83aa414cdbeb38a06df7899eaaf5a3f4e770d6199d96c2cc4303282a4e1be376eb7039bbb920755fb2e30442e6cf9c865d2322ab7f188184433303851264e340a4fe35a7abb2103b42fb4b4007d8e78a13339d0009bd5238756d8203dd72c1b3af28607f9f4db310671254ce45d8d94f6335f1dc2e19e232118ab531036322287d49f81aac19b81b4e384526d7ce2f330238a972bef608704d8a37aa2403dc95859089fe21a207a914845dd8235af81fe2e9390597ccc32327cce93dca050219ffff0334ca41756a0376b8f207f7b10d57fac702d266114eb73a0b72be12f8543b9c0703b54414d0d634070bf3fc78ca44063501726334ceabbfc8ed47df50fe6f7c6e2e032a15eeeeb4176389b0d494747368e1a566714d40701c795d8410193bb7d1dfc703a7e380d57629292c2a68dfca221d8cb969d5a14a3c52312f13a8a229aa920a66039e5a2ed165953f0bcc5af0c7cbd06e90d35b2cd9986d7c481170b56dc43966ff03d1df5cbe0a77e26bea8021d8877fbe18a0e1b7656c58009072c8b6ac7147b0ba03926c3cd13710a557e180def75e46a95b7f8e8f00daa6d42bb2339341beecada903f3138b2d5f104b6e5c48c2665265908814c3dabd0fc01f973d87167669fd65aa03cfaab31cee4da1500af29c51bc9dbab20bcd7a7c718671d1c3eb0408935c838c03757f73ff0b47d4662a0a3124ebc033171054efd3b6a52b0335a2f01c5122d5f6031be7487e54c3a19871f63b16805fc88410cba74a85ac8dd86ccba882d7243765030cf1b6b31877fd17f88e3d1d863824fc8b59d507fc6da1d8409b6c1bd273d7e2034fdb941e31443be2bb28c2eab666f22bf64346deb4e8c1ee7ec7420af2ff4c5b0374d3d0ff3145e3842cc530c7529f40f2d291474571736b514aebf1ece047c68b03594e2c2739a83a02b2789b7d38c04a1c245b0d711f15b57aa06f905731a73748035c3593d24b8443452c7d8bd891bdb5e3bcc01ba4d04ea02871a6869f242fb2d603e951451c29597a5ee3712a91484c6cd0bac8719e113271dcd3afe20c0ac11e06037f9353002cbd448d9d8956e836f4924d668e3a00544d3dd5aeeb2dbfc0d030a4037bdefafec18e21d465ebc196e17962b35289425bbdfc025a23a534119367cc5403ed9e35e465b4fa59498bb3c18f4e4834d44c8f62080dc29cf5cc77042beb7a0e03ce5d54f54eda626f1260a2a87e2d6303ae428befea7d8db448595621351b873f03679df233386bcb0e7c32a4b492fe5a4dc69b3a9ca564e9dd34c0df7dc425fc9a03adde74b640fdab24d4e5486dc669eb6eb9daac9613e6d9d0c82f2f6cf0a4935603d318edc691e62acf33e81371c39e9ab731254891e2bef69de133409562b84614035b51897154d53ec65c7eb99e683ed390bbe12528c054efd4a73b5a25a718548103c712c100b4b3bbe7ea030789889a43d167b1695422d158036a6c4379ca29978f031f8bab1e1107de14495593b3a26c005669dec7cd8040882afe94562d42dfd255033a72c9be80296d62f4da10e7ee787a3800e46a89e4275c8cff258e20d64c0181030748b4387a2e8cc943fdf4a25fb6b3990bc17c8aa008c83ee848cb2c7100c71703d3198f3067fca203a277a30f507189c9a12bfe9be548efaa24d161a82233b12903be79b40e99cfbc741a29019e11f88e090364813c3649244cf1ff85ec241d5376036e755f5b3030f6a0ed27b9f06b9c894c5ac993bb47b9e4b48180f205526311a7033ebda3461bfbe2a44eb9ae16f0d92ea35ae2cef8ecb6994295aa0e0e7fc56bbe037c348f8b76487d2a16595526a906a9a313c7eabf045e44fc698af4ccbdfd1664034eb8f392f7a98c3ec3ecf7c7d2c32a1ce156aeaf610655741bb1c310d6e6ec6b03e41e4c48d6f36020b40ccdc63aa36319de7782a87abd6db9e3a77f746a0f9e3503049b5f31cfe2eeff0cefaed8ac631faddd4e51b92991f0bdcb65a52d3bf3437f03882691f335096437210e5104afd04395848a7a63bf75222e3f0f6cccfa1162bd05581e03e82c60c0efddc7922cd9ccc5b6d877a003dbc0b515ce7a79248c951c600c01478bc3e894b5de2b0383107d88846bc7a1f1b7b991fc8b2ee535d19723909623493a3372dbe975856003e38708809a8faa01e9a3fc1085dbc3e0647e586172b8b8234fbb05892f1004f105581e035494c99bdff00a2e773bb71886e523918f8ba7b7f1aaba40fe7452db700c01470324692aa1eb7e05581e03ce384a952e52e6bc3aa52adbd7433b44305f1e0316298e0b80a88510d00c18bb4802055c4cc56675ab05581e033d84cf7a3e5901d4cedb899886985819ead5e689dd40a7a2187c60fc400c1866470d80944a673e390392252777229791f83bccb3bf93a14ca08a3c4936348dc36407a9d23e820293130605581e03a41ac6d0e8e1dff212cc2b14562f4e4112762214ba277625f18977981007011bffffffffffffffff031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03cd6d245808154dbf03c55f2473505527abdb8b13c7d2cfcdc8aa2f63d007011bffffffffffffffff03a5ea77af177684f60e1ce117a3a1d48404d95f54e65b07e3439192fbe1c97254031d6c9c7dbf9a0b237a086e65ab93d0e849bfc98fe74cf09a89de6c04e60db03605581e03137070089eafaa919e897e6de916f4139d1733fefc5486fe61815a26500847040c9665d6180003a53b38779b812dac63631efbd9e223bd7bae94086a78f3895790dc397f06bb920219b3df031bde1a7ad8376b93d16e45a2478fc10874ece1130b2704aa83d0969b54e2a0db0300b8d044b333fb3645995c9be0e75e3bf25b2d3b1a50c4445a7bb5e65656067a0219ffff030047b220185ad80a4f447881a70051870c263a704830ae100ec94e0cfb9d650c03c3ef55b3ab8fdc2c07c0266eb1ffbb6b19beb9296a5c2436f24ee7eff5921e1d03f04f2e369eadff273fa8f75c6cf120e7da1194519687b3d2ffe78671ddbec427031cd9b34cc914b7b9163fc49289e4fb3910e38c7f8a04de63a14fd2b025c16e260219ffff034df07b51c3d5fdaab1b48235a15e2db23fa5ae0c4975036a1887da739fb85aca03c572689707895f1ca697139db724c6ac88413d42c7e131f24f71d398ab29e41d03685fc097cdb765df3d28cbd210276034204fd80c1da8e2f4f9ac3bdfbfb6da5b03ac9b3296065a89225bc4ac399c8647de054510fa2a7c890ebc7e8f5ba883c45503bf58aa6b3e9536bcfd8dc375470570c6b8e3182aac1e631d550adde50ccfe21803d0bdfda954ad8d577cee4c49f5eef5118b69de6dffe69b3fa59db301bf969ffe03fd3385883fbdb99c06e02ec4b6f366bab9eb43a11f19dc5f7c846a7bda879f740357eb67b023780c6d606a0fee45cb4abcd74f46f023fffd5c9dd49f92810dd97a03e4b0872934ae37cccded538f6daafadf49d9c2c164b0fd778e8bb47c10daf5e2034ab10f2f71a43af2cb6aa9552375f450de56992fd0f8c30a1a22f3e267d3d6bc0219ffff03087ffc631e1263ac4d5200af77dddef1f31d3887dc832898d15b0b511bc6a104035cb4401e335538d7104edcef58c5056a5a2190a03bce039bff2c35713bd5534603433cc7379fc978e864d1c369b7d269a93f9c2b354c8adad9e7a7cb3aac4c8768036dd0677276de6a4a69f53ecd0432704253139bbcccc4b68f8ec04a3b9f07393d031d6f03a0157ee180b23ad26b90208303bd56056544f672e431b6f73cc76e7a6003560a574be6e77e26843cd5f4fa2f797d026733e3241cb1eaf337082e9957d1bb03ce6d65a6ff663aa68ffb22c9635e8b9e910f37ef4c0ac22af88d58d3bac1c7a60219ffff03c265226ab212ad645813e6162bbcfe5a6638a1236c37b74c4c0a0a9562d1b55703e20e8f51181774b443396ab7d89004790788fed5c4c172654ea7099a9c9d4bfa03d3b2445af600ab4dece992248cef1b78f7b637099dd57a6fd59a0742e426e9f103699702dc5af124b780345cf24fe23dde49c0095e75e9a6bb0349bc0415fa7d86031bb5dbf5806a1504221ca87e147aab3e1614225af80ec0ce6385e30b1568f82a03720de607df400c88218a879c0837023761fd40b09ddb09852ae9ea64cc5c299103f28b3ead2245551930d70fa7437d013089d4e8f78018827fe6b78c16aec1568803c7e67854f24f0de38cd7bffe181e1c49e38d3891b0c26f2b111bebcda84aef6c035e0c5e7598db51e5f64730b08bbcff3e2b982d66320658464ccb4c6481cd2a4e03f78a55bc7537fdb7e9c2dc0b26db446e4f17d5b2654e2bc3e9c9330b7860fef70363f395717c54c31d9e00b42e224de87afb08becf821fe10babe64e514a3f5c2c03a30d9f6599f85e4b35df379535219c158d481b0023ddbe72df4a133162865b2c03b7c867d9056e3ade1816dc5f447d60aadd4a87e509db6521e3b8264558b28ab203852f429a169682cdd3678469cd78dc2961aac98686f1cb4c20f15ccd9f61e8d303ae8273a9ed1e7a79d68792861f132edfaeffa08c2edbf65c16256691eccca27b036fa9807717f0065f66badb03bd78e50e2ccf75595978a5e7629d4e142dd91e5c03133984a87ea6395b2cc2a2f2ddf77eef376dd77b526c2bdb022e7ffc6a2f409203ed2de00be6be733b6bfa74709fd9fdc3636f4f50a957484e01fa562093489f4b0313657c52c9403f941ea38ae7c4c201daac189bac621f1480dbb2823e27bbd5ac03691cf00dbfd2ce0c1efd02bdbdbe20b4fbf43e13a9831770fe6cfe03819c81bf03442fce8b79eb06aed52aa83487edd5e3d8cd61f8858e9d3d80142c746801a4030328d885a7754bf49af23247d218c5c97f9b0978fb50e2e7f21f2dcabce0459e8b036552c51efcfd0d767316e7314820b674079ad6a78a4fe7cbc6ae04fd5c50710b03dc41a27a55aae564c3552435236ad85f70e7a86c5f3836dfd160f6638223dd3f03935b42c53f129780c71e51287038a6eb7211d9c0183a07bc2334d0c11a3b467f036774ad8ae398a0c9fa98575a6d57c44ecbe54465367924409d020ffddd70641c030a7277a72392da519669c27aade255d932d9abf49895ce27e6dc99a92e564999036c1dd1a4a3ec29958a5343ef7be6642e830dfa14261c236d64936be39259c8770382b78903a9734ce90191b175cdb50e61f8e396ccdea3dc837bf9cd0ba3a48b2403d900eeb262e52e01a5b28d50bb8dde75655be922c89f177ab94091cde6ad888003c4b97a0676373860da93126fdcab7014fe05fc673574a7c38da2d74ccf9ae33a031777687eaa8dce2530fd405b327c1345b2eb7602a922710d6b97b4bc4402c9190380de916f491bb5fadf822cdd70328a4a3145472cb0a05e791cd56128f34f22e003abd314caea1f0c00d5b3adbdcbdf8e370d1567f3bc5a20a4783c3858f67b039c03f6e1273e7a2757aae6bc42f33113455d52736a1faeffc865244f06deed9872400605581d021d581c6ba5180c9431c6580846d60531e42b8e65396f95eafd9ea27b07011bffffffffffffffff05581d02814cf5a2bf75c8cfd3019ab4b22d66fe16f7114949dbcdb3c2ed0ab90c1a0002a4e74902827b211e92505f320219200405581e032ed55607832ba0dc8eaeb51159293fae27e42d292d5b2000aad39fd190040103ee2c527aa07c8cd374f350e273a753b03bff9bdda3e81f214f577b01aefd5c3e05581e032fd6db77d3e83e0517d5b3654f13ca99b35808aa7fd9886663963336000c04465767ac1e12a002191a2303e6bbd7fd2c70a3e6cfeda9ef59e0388869a40b0e77b03e280008f2e6394b247203d40075b9790f7d3a3090d64eeb0802efe8a61c56b84d2365ae9295f50e426b2803d8b713f66ca90c0e734d93b6aea5343a0297c78a1d205e6a5fc5dd0d4e531c4803b3cabe5af9fd948fda76cdea06ceebbf31223ea8eeccb47420c7f767fa48d1310219ffff03021d7a7f413c048ff9b147bc149a984b9fca9f51cfe3b38ecc3ea6e4bc74b2930304fdaef43fd73f933ec396535caaaff3559d8116914a7c7b10b332e1bee7c01b03e44ec7e3078d2a4e5fa05a1d40fa1ffa0c92770ddda65f32db3fd1e1fde7909003bede86fc3a2ab11df34de3c76231c32863cd498403469f489f4bd9d2ca0c4bb903e90ac73b94da7f59de9382a15c4acfff51792d534902f90ec40aa1293b76195103c81e8d7f243d274940ae7295ad446d3a090f5b313961dfdbc58aea32757766880315a456997615f7bed859cc7415afa4b48be4790d4e312133203f692ecd97103603ab279f63aaf5cf63840369a99e493dabd1f2636f41bd2aa46caddb48b5e05194037feff558813f0802cea0712ee2bd6dd74a007d8566b2a55e039d02501d2af70c0355622251638d5c6cf94cd5ef655fded2dc3e6db21d8dfbc0f3eb34c16d28de1d0219ffff037446e7e8c83e516092bcaeff0e43b090519f013c62df652fe952031f7be4c75e033098bf16b9ce8f74558d963ede97a974068eff2df05ecd84583c5a43491bb57b03ebbf5b2996a182f72edbf36d158189e8d498df1933292a4a71667b19c14b554703765ca0883551f3dc6f43793736a6863901e2bca005ca09f244325a58b67ead1c03d174d20914290e0473014ef4d3bd2ef27b7bec91f23bab695a1e2e5d9bdb517f03d354e47a8b64f6929b7346cb3ac88df6767a618c1dcb48ba9f33137d4e5e215203140f492ff2ca33cb2c6671169b48fbb3453f335fa28c17b367f69756465374ce0219ffff0344ba66c05886fad0b3dbe3f50c6ffb0d506cf8fb80564b0655d0508c51bcae8503981f0a5a9595e5753bfe7fb54af7fba27dafc9ba1b31ce7efbe960ebf615c90703de75bdcb458bf9e9ea49c1583c2ed0ecea522eb63a693ba4ab9d688d76955da30311053b0c5ddc44f8f272a9d2fd12ece157435f8996e6c24dc7935303e50598c103b01602fe50d05c1ced0b9aa2b0345fd41aa066e2ae7e6f39c233f8fd576b5fe803564366016011ec86521deebd91fd7b353bb384a9a49a5839a0f09ee784e299850321abd7c35cae51a5a6c6dda26ddf158b6526a99d178e1fbc20f540a7669c722503390542a02e8905ebb2a8bece8b5d9f1c65d4527d5c3aa06819ec1c7d0419b6a103b9344e146310bce3d2fe5cbb4a4b73ef96c3abcfd7c4820ff9c609572f43572103ae39b1349b7c6e13bd9fd2fc2b1b33196dede8f1a04eccc4f8893f8f68171dc4033004a31d808a4cf2940d6e8e40a1ac2a8c746d17fe2596e6329bef9ad813ff6403c4e721ed8a146440e824230416e0818be5458480717c4b88c7583b43cf8ed05e03ed1e0a688128365afd0be35e6445716a29dc8cd2202769e1010616fda05a20bd037d8dc18cfce1de63ef0ba91479455f476335ef9163a25dbf1c02d54a51cfa0e2031a5a6f5aedf8b7b538223cc1fd01cbeec28add4ddbf2d0e140c7d09c3fb3c78f0349a991920890707819b1bf6ab844287ab5bfb2d4022695632880d0c22504553e03c48307d8b68f9aca781bc7f93770a5b4e032b3d76fc37086f239d78a2e0f9cfc03c1e6db61b005ae5aaad2ce30dd4803ebb1c18f4693baef6e66f6791aa9fa360d03277ba1b0140a73aff4c28056b70cf5082969c9a247bc5267c29330ddf49c1d390332d14acd133f3166ccd9db249c3459c0b908138de57c4a480e3d3adc74be0be203226160069b800a8b74de6d7707e5b54d09bbbef20da08cd88cb7081e1727bee2030484363545b6bc9d895b491ebb9c76ce1323c2eed1a1bea038cb0cbfed3ba66303d740429d0513dd9a1e82fd34761c02d149bfc7a82a0c53aed64a09f397c7325b03204302c142fbd574041b579569a48a4d26ac7b7ee4ca95c364fade5b28ac2f86033f3bbacc9edb6ae46c15f4df87a68891a2484b92aaeddfbb2cec6f0d8885dd81030b09acdfd4414fb378758512d1156a73e7804c03269dac2f295925e86488a3e103f2f8f7c37b929205002448cfea872d9e350d143338e59218db123fc8e7d98efb03562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03a8f5830b8682626cdf5b8f97e9cb27011fc88bce21a2d518b6bde4b0a007011bffffffffffffffff05581e03d190f579ea0046c5b0a7e686812bd72dc4dfb11e5eaf34514844d4fde0040104592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c6343000510003203509f2a075fa254fc579b54a241072915565e2ab27c81d32f7a80123eb1b3b8bb0372b9b0e6147d0ff7409db7106b180741bea1ed1a908c30d9233fc8425308a88003616609af13976968607899f794deb5c19e65fe09893589e66bd484b6ccfcd266030d4a900cd22d65145f16f3eac0a33b4856599003f6d7d4b4053382787745603003b8436fcb33cf82cb14ff104d9baee73f432d172b66fd65296dbb8e26270be9dd033e0e8823c3d434dfe454869cd4e18176466a122d1bacd6896c6d8ce9a9b9cfd3030c53f1e0ebe7dc9bd6842e4367f5899226fc162a38bdc159ed0614278f6b9d1a0395aef7198f6d2ef5ee08a0280ca97e630dda6ec8b57817e01efaf5963973f3960341cc4d01fe36b4ff6ef9311e0636a8b9bfda9c4c2dd4ce0ad8f9344433e1b9d5033db6563b56d6309937c849417cb92ada5d6d28a610f3d7110ed52af7be48f26903aee1e60b35241529a91cafa1791159abb56ed69c21c6339f527d0109acf6ea98035f9618cad45bb4ce85f0fc840c09ee0a476b0c3355f2f758c17fc38263c3511f0352dc50c34d155aa3d486460b8291d3b64e2f24778864de9b7228c29e98abe3b5035db35457e7d3b97191b9d74e38952d7fc7586f89acbd2af07cd3e21a8512dac10310c3bfa5d2581227ff56f56249c99834145a2febde8c057d72753d849d54bc0603fe70ae7f397cf7b3d517a68a2a68d5a799f3ba487729993927978a9c28646e19036ca268d7d2c11eaa5daf03578e84e9b702936487a0bed8792f1d20654f05e2bb0304523aa1e822f82106bc4e12754e72b228fc907b7caf48fef7e443124ff2a89903bdf898d62e331b56037159a2e0c0c6001130c77cd4c7538627fdafbecd5d941a03087bdb1f9f9d0d4dd39c192532b23f0625a747b1f36ddeda49ff13a08cba974203087741e63d8e9f5bec5e69d06bfea15bd9607988082891e953fbc0f984b444bc00581f02c7c4cf06db9a6a2227ae202e727bd48e523b492599fca4f9c54c37b4ab434d0c9f2c9cd046743e26721cdc5300581f02e2ca32594dea6612a2d1ffc3958cca216d28db260d5aab8b3a7932f2d59b410103509a02d4ed52e37b48572fb5415c4699ff440773e0d0177684762467b50f0ee900581f0240171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af560197cc3f8ed63020027b5fc45c7ec1fc459e215545d003f6a999bb321e27f2d5aadecc104539fcea6754b45b66dfb2ce0f102dc88fa19100581f02e5ebf9c5f619b031585466b1b1f92c2b3ac0217e14b95bb653efdcc451cd410100581f02eb92936b703de13bd82b77168d389717eb000b46354bfb84fe1056b80325410100581f0233b4c6f705f08d95a978a67e9ce5d034727243ce77a5b5de68f011b656c44102021990eb0306db005b9072dd18b1c7a6cc07e1c0e3b1148a1fe0c3cbab036758f96741aa3403eecaa3474e78066e4376d276ef97438ed577d4589c2d3434904c1d721ae59dbb03f83f0fcb32346d00777246090004d6e06e7ca7ca75c5135b552a82ee21d02dd503523a30ea25ac6f6674f6f742c537212989383df3a08fbe0ee92f5e13d00eff8a03633326ae2313dbd344f1624b7f2626a92bd16d3c126a985ccbf7af19ab0b47bb03e4db64975e53916c6f9f9392c0ac66740234dc9c510a2043ae986b89b461089403460aec1aaae4a239580b5cde3e0881d50ddb2a8c9038823935a049f0c55448a50388bc2c014ef8aba54f1cd944a56d9524c65d21ebfb95a54b5583c15c63e48185030b1cfcb3715efd1378250cb3d264c4271a549657dab54081b05e5e253a3956e603468421daa5f7e74f289ca3dbffb12756bcfc35217660804378ea09c36dcfc127031817fb309a7ff2eb47fc17abcfa780f74a00a37fd8c41f36828b9b584332c08603f2727b658fe525008e7de8eb41f4c8db9595e4ccac96fdf88129715fb70d3ba70307f85bcfd362414548900a390ab47e5d469e119ba9005c55726330b433ceec990370a480a47081ef490be789d20efeea027603e173429be53bcab2f5bc31dc0a010219ffff0329a5d5a886927ed6b0e3f9cd14046e883dcff1a383a6534c901885ffd0a330ce0219ffff0347d1c1d76f61173baa24a1f8f1e8a2858e477802fb5c77ce55b73f17fb82416a033a9804ced11f21684fe0180a443e778089ff63ad69c6dcea9d55963cfab70fb503b54de9302605969920984947d2a324799687bea350663bb394bbc33683eb4d8803bd6d17f094dbe5704fbbf116533d9ab77dda77c21754b37f8c1d6e11a9a3e8c3030983c51aea03ff9d94813343669e7135cf7029e7f81e42e2080e0830f55e46a6034b51c9491034c95c603db6d40be3dabed76593cd7442c93ee5da4616de7403af032a01fa74849d9161aae3f6e9e507b95185fa59f059f0003a02c12521db92d3c803d7986fc1a8d52ec5d5ce0f56af25345360ab7281998bfbdc9c89aa686c67ec5403dd3e6ce5da5125e94493ac6454f14ff6c84533b4bdf6e3d16040d6dfbb3f5b1c03206a7897204bd4f23195f5f9fa0075449f6e947cc7e536cff4c509cbda5f56d6032ab37375c25b682de2dadc677d82f15a4fac5ab2e3b2cc996a240e5e31d4f49303d87c168cefa127ed4d393c87f2eba4aa87b1653d35e591641af0dc2a1acf88cc03c70b50a3d65923c7c2b49ad4cca6221f5175eebffed264145dd7c46b759402ab033295bf06e9f0da5daa560640da1cd496028f3cc616689ef7f2a557bb582dcb42038c200294a5c2dc13736e433f79a167bad9cc59901737ea611d7db9962b84bd0d03d173b9c43623428975d0408c0cc6935e5177871fe570caf84a69678ff65cd52800581f022468130fc4c65376bdecdb5a6558a25dec8cfdc530ca215f170a60df405f576867a5a867f103b2fffa5a71fba0e7b671953d2e1303c003e79fcf47eaabd49d510fb34ce76349c2d8716e52012cf40d505d3233b0d9e04a00581f0256881e7859bf127639e24cedcf8c5b58b24104e4f78aca57f86b55d75215443ee868e500581f03ff56f066dd81d742e075e7f77a2623999474f64b949426ba0214d839b1c0576867a5a867f103b2fffa5a71fba0e7b67f639106ab0e9d00581f03928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20219108002191a0503fe3fbdeeabd24172ea1faf8ef618596870f7b146117b9aa616047425b87e636a036a61c14a998ee8f6420692eed873842e52af7b151df0a5d547810abfa0482aad036bedb6b4ed2b85bc3283aa3947ef359caad299f5bef9437f3270a3405149a417033f46617f0c7613edd3b196c34c2c4854055e0a5ac335d7feac897395aa7ae6f103c35762294e2c934eccbacff509f3aeb70d2c16d423b0c953185029944e8dcaf50363af73c9a211eb17da895f43d6b53d7bc49c1fd0b9b1f43ad5006fd9e96c385403d58b2b4da0bc5b9a87abd95c33a7965829261aba440003f70eb671fa2840e05403590a89de1cb20b63cacd2080cb19f5f9991c16272159f6fc60d19a048898739803cf0b27438715ae1c15e05e47dc63c9c8f9591756328778500a243419c0a0c24d0219ffff032b01afacd72a033a8766f6effff2e4fa33d06888af729361e5e8d94bc1f3013b031005f0cbb49864040952e675f32a6767fd6907ac8317b5174e327ab78f846b4a035464693e93274bf585f62e8e5407dbe072234611221ad3750d956fc56c440c29037d50f63db142f29b664381c599c49de00e1cd54ad0ad1a48c4c952d905fb00b103fd76e964db9fb873ba8d0d520ee15383b8f9034d35357b56024645baa5d5fc410338dad3268508846418b888a47b42c927d021961215fe5939ad729d59e952eacb03c10d1715ca22a6ac89a309eb1a5903865ec228147b5ca8c5172e5f2174a0509a0366fc6a45814171270022634f7c39aff6e34455065b9d9ec11d891b8bd74eb3cc03a1226a76988128938ee381172127954105c9f71f510a4fcb903069a2dfe2acbf0219ffff038cad17ebc88eb36488e7eff96705d96e92cb90ab1bbe3fde5b9cb7323134b54203c7584cb615a0c11e6d0a6ca0f0f89f137b44974fa97ce7b4c6a1191ddfbd1ccf0320d8d0a5b9bcffe46e48819f8a5a9a17b605929d1524590761c32186294c384f03ce81fe00394dae66bac58b067e74fd979f1f6a8a6bcd8734b7c15d111cc29b1103a1919938cd7e8f6cc9a04f194d7fb780942bc0894ecae6154ca19e9241f059e00306a41600512f611711c60f7e26ea5f6f92ec47acd0c8fe922d92915dd1e04ebf0373bdce45aa909e9ec92d7ce42b1c7e0c0e41e3bcadc85929c1140bc66047770603f9a47c860c830bcd4c86d0d1206da17f89e809f485579463b90068be89cc0d2503273cf6ea23972dc302042cb4f0fe2e77183ea0e6af265d93a28da9a0d2b79da903571fdec0c6b25372a9ee7edbd960ab6c5a33028a54321e774eb7afb04bee8e5203bb28912959b3aa8365c384324a3357a956182007e38fc8d076a2c310d858c51903259d7db56c7db532ebbadaa45d4d3ad76dd42ecaded4ba5f86c3fb5d4f6552c200581f02592cd73cadf224eb52330083eadba590b07325570f4f5b1fa48f5c1f09d8576867a5a867f103b2fffa5a71fba0e7b62caea7afbb3fd800581f0239c6e84b8767b50a8ee3ca8485203476a7675ecebc5c72c0c9a6863c0ae65820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f021d3bbc012543341faa3432bb47632aa922a78a1ecc0e8b5e5efe205f81f2410100581f022d51f4d0b6523c024d4fe4654d5bb13d36dac18c2b501b23251c27db47fa410100581f0264e974dcc62500f0b825177ea6900485f25dcf746a170f70d2440d87d007410200581f027bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a84e395c92131c1b65f4b559acd6c19e03f05ec731978cb9eb8e7c28553c090115316f397ff27f9c71031a3ca54f79269400581f02593a0117b2a1e634b5b0169d61dff487f0bc305f315ccbc467ec406c4a705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f028f4a19fc4220862d5bedce436471c2a546596a24ea74e9fb1312e05017be410102196ed8034ccc9bbec848f1810479d2a28b920370bd067acf7c895d7e36dfa9168825d1c603d9094208c8a6053985154f546dc3c62e11ff3b5f2be2623c9e5d2c9ffdc2ed8903b3e9cad9911eddeb377edbc1214499b762b6624c14a6093973f42964517c2736031b6b748d7d2fb6ab00dc54d1d2bfb8b10f9cb5fce1dbfd1fce0a9d711978a6750354752f38bfe57e5be32126957002ea94c02f1c76015c6c1c9a11086100ca60fb0312c0ff4be0c2d4f6226e2dc915ad20e707fb18acf1b7de8cea7e6a95a51eacda036252d8acfdab1b63ae62f9cac857bda85dab993959008773854bb54f615353ba0310d4ed3ead8e3dcd574c092eddf7b920882e8bdcb7987c2b5f016d923406e45f033406745bb3173acd72fe90b352cda23d9c95d28923862fd5bbae5acb3942d8f003d6cf296e4c689b5394dd4d96c7c4d3ed5e409710b2e4d69596b57f63e3e856510219ffff039f59687ca491fc88777400c6b4c6d8bc8cf53791468173764f45bc594967a4a6031f12092f2b283217b244ff0863e60f03fb101c830ce3390c72a2b7cd221c64df035049dbbaad4c7e26c5293439b861ada6d877907958bf356662fecc10e6c32ca10325eea630ed704ee086b6e88561e0c72c3155e5ef3534290503fd0a02b91058c90379d9559955ea779a96339bc4cbaf9dbced2fb2ff40084f1cb8cfdbf626bfddcf03f0f21a6387850c4921b7fa9b5e2ddee83a4abf5f4b21ef31a6588f486b0d692d0352bd0e33921e2ae46d1abf9412cbb10bccad081c461cc09f33f17eebaa891c4b0354578b18fd9e207a4c7fce547a3791f65997512102aa255ea44b46ca6ea38fb703dc76b08cf983a38dd9a94cd1e72362c6b4c9e715618a539d1dc38913999e5ba40219ffff037542df0b97bfefb15c078089191b2a52150ea5b51cca6a82284765573264ae6e03034dea89206384956a830d2d53fbc0b52e9c35546d4ee1076fb3e94b809c2849031257142d2438396815966b4a62f7cce8fda3734de569ac99eb84f84b67b52d6003ec07bb9549bf8511f4d251992bef4a665e3b99e70616a281e27ca037958de86903c1c92f0c82642a41a243091ba2b465857c62640e44acc87e4849ca020411e5e303bc1efcf24a7bf80ce6e2d0a1cef691aa2f94ef98835069767f78a6a42268c99503e7c21b0a2d277afe1e6e551f81556b184614c566bc76218e534135c0beb8b81303d8fd25c0cf4e1efd6b64c9cacc91b4f5cad406fe22fa3f0fefe9047b0379bace038271e2a1d6acaeb5bbdd7cb5a291e0194225cef578892f56ee00cb1384e9826a037220a45e369968a79c3639c377f443ac4bffd844b5f2d404f4a063e09ce5f5bf039f70cccb2bd3ca3209b9b2ac1851b9b80a3c5744e81004ee0eac0f833fd5701f0302f919b9a103680991ca859ac0c8da6be5bb7228ea64ff8af74a25121bb9caff03035e6cd99bec2ba402dd6c9eea51591e851f33be0d0652498149c5cfd6570fc3038aaf98b67225f5c7a35134e74cc3e24e87e67c9fd48426d183e52a13efe56e2a03d800d4efa60ff98fc6eb3ce79bd95f5ff9d096d649d3b9aa6228c39f223d0ecf03c1ebdfba1fe78572b69442ef6277e34102943030cf1131005c8fcf3af694e6e603991f88e235984ecdc76e9c9912498b51bed64df0ff0be18952d605e12a2fb6100349d7483268d7fb7e7034d04d7481c794e0e8d64dce421b002fa528d8141bb9de03d1d13303d1b00c4e962cacb68fc41b0ff6ae6a588564e957b03e2856067603530314a498d9a51ea2cd3e0a2cf9be65141ae6c99bbb73e5cb29dcf32805e377a1d103bd2920dc0f706719158fcbf9cb2c857ce016f7405bdc72bf0d68a27640c6f0000367551c91dea4f1624a749fee04786182275c485df8edfb1f2c988b3c4baf1fe701410800581f02003eb1904e9e36f0fdee4af8a1fdc7078f0128c104dd46a3f6f921db36085820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f021869dcc49719a9889517f31021400cbde3ee8356d01ca8097afe2560fc0d410103b0e7f04afa821e2c984ad5aadd9b24938795fcd7159249ad8b87b3d8c32ef25300581f0266c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7410100581f02e64570898fbeab4b5229b1cd9dd06bd8710d936d1619bccc1bef37c8c210410300581f0233c5213d0ba4a80d98d25222a89e6679855acd3a5fdc5a7c9869ce0a0bb95820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02198b6203ea1b869cfd7609b35ece8e3fc6e7411aeaeea9c48bad23847b6e3e57eb13755d0305a7b659788d88b06374041324672352a6005f597a7285b9e8c6972f1e18f85e03cacba634f48ab9c09c46b8b6741267f8d2bf15a97206ea9497ae22511fc4cc7e0308a5b1ec8daea12459ad49ecc818f7dc120a4527ac28c1fa8d3bf718e1e9586a03e35df5d93074eff0034ea715cd4cc2f32cc39b7def7b8ca3c9cf0f7fa3f868890348f37add146497d4ff4f21b5a4ea93255950f2abac85719bc14d0261ed66f9ba035d68fbb6cd9162a9ab479744ad8e92ce1c6b4c8b77eae021f25d299a5929f91403989c0476865950bab8500e2ec03168931690cd1e9bcd7b15cbff3fddc121f62803a648a3abc1607050d43c3ab55a7302fa80ce0ec86a7240a21bf78044269f8d910219ffff0219ffff03800524f7fd066ac71f5d3f44f6aaa55df5c62a0b28aa65abaeb96606964d6eb30398c94d753fcc56eda7369cc9595cf6aa529714218e45c6bb8d2aa36c3bd8944503dd83c074d724d6b4d4aaeae97e8bc271858d90c000bbc68b1b805651781ed96103adbb6c25dabcfd8acaf88709cda140d4b48336b26a2418afb8f2d01e9988492703e209b3d43bced02c405dddb6455ae1cf07b4ac7b6fc2906e1009610123864cc4038bb80a8d9149bccbaed8551610bb59aa1346db587028c38a208f18387f9a108803d9ab43220553fe2bd937b0551c6384e7b26229f719f273f5bb19eb6564b8d993039d5e91d5e1860b9b371a18fbcf7cde2d56a7cf8f6bed07584cd4971feccea96a03d0c2f8e01317ac1ce8cadd4e42977cee2f5e296e226de3065ca5a94e021114a703d6d82ef528b0363bc22d8dabdee4c6c257bb68919031066751be7e03b6f84fb40310d02000fb00c25689067c672d11b675b16b6b40c84a9c39757c479f4f174778037d331056a11dd6ae89341df13bc7d1fa2be6b60f560403090719940c28cc188603d7f3c1091594e350e4b2d36131cfd09ea998e78da41634e6237391efe2e5930f0318448324cafa58e78ec23262ba3a3eca34efa58765c56105e9693094c675ddcc039ae58da3f1f94a6f266561ed71308d727f85b1d8eb06ddd1a7e6efff584af98c0376a31acb3d599a93c845be0d63fb385190eb1d1bd233c558e667943e96d9ed0503ad1d9460ec7399d5c915aa84e92d6602a316f2eafe896fb0e2d531017dc95fa10363a9fcd5dc44d2e3a8b4de28f88375979ec97e9589fec8818ce86c376a6363f60337aa9481e6f37af4ecfb60c67cc20106242a9b58dc65a2b5149a608f0a91b4e700581f0250924605c30991be10114cb512f4835ac510d0f5023189674de0579f45965820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03d159f2340dcd2aa00356ba16ef8146deb1cc0a5344e8bb2945678a6f65bd3b8400581f0327a4c5d49db8f9451e4903dc1edd9077d20cc3dc02107b1bc5ddb9507e104502723e901f00581f039fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30582065cf5dab00000000041e2e1d97d27cc521c200000000000000003235290e49890219040400581f02544e44a94c3fbe1a33ea6afbf0b22346d14ba9bd2eb4cd7138c2c577d6e25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02130c966be2d6e1c7b682d229e64f15e9bd3ffa448e731aba50d8300c6379410100581f024d60e8095990c982d58518ced7a17d286c3c26b8849351e9d8d23fc20db74cffffffffffefa5421dbe02ad021946920219ffff03560cba02591ffae33f8fb86240eba7f43d8de48b3ea50ed62b3a43ed7a26576003a51393fed1dbc44136f5959e33db097b877618be59cc26afbbaaf8ab110c6730033220ea86f7625b1db643aefa90e3e6621c18057f4e4ee539660fcf6c796202030393981a9ae9cced9b9d9c51fcf06d5b940063f309c3b95e044d309e0fb72ecbd503b85d505b5f00ce26b5452ce128769ffb12624bbbab21beb74f54e9b888c19a4403880cc33e4be0f5b3afdc1e5dfb67dfa4b3fbe04db46334bda03b036680342f3a0387f6f016d9e2aeb0e8ca314adcb97d0772f45db24b7bb0f812b619053ba282db00581f02222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f54a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800581f022d284afe99a20bf799b4d79d672335476a3d262f824bb3eb170813116158410200581f020705a270d1e13e52792bba864f1e559baddf824741e3c8b7edd7d8473cc7410302191014034dbbba847e3bf2354e839a6ac9808044e6f81e76fcd36fe27fe6e67f7558ed3403aeba5a5a5f23ede1071203ec6566f3e411a9392051d02f2c6bcbc8eae0c845c403d27bb0711cf00117286255535946955e0566a417856637ae69d870d50e385fef03382bb3b1c39264a0b17f1aaac0143f4df9452a537d1445783095b9d19ee24e72030d570ce0f597da8698dceebad5d62edeb3f32c17928e080077430be5c4d9843f0386a108505b9a96925d7b578c5f50078c5eb2c6358b555593ab5bd41fd85f1e4103b5e63e34f93dfddbfa11fb829c14af790a472ca0b6760ba94428e2b97d97158f03462e0cd25eb43256a7aa891e12f61feaa1b09a6f1ed5c4055ae0c1e1e826bcad03b1b7cd233a94b8c3fd2f8912f8cc8981d16c66d7cbd2d837a2b51129274dba3103058563a49df848fe6256ffb25b609cac6393bcda7a2f4e23c0ec3ed09455a8480219ffff03423e6425fdd60be6278805f9e36f7907f68294e1820c9e0d0fb78f46c808ad5e033fc22aefe556e8905eca222ad2e0251eae05ac5e2d434ff59748ff4924912a58036cf2d2c8db3d9c602aea0f4362f2291f8d8e6baf4f36aeb2aeeb7c99d384e3b80321238cf680f19e2b95f89d0557bfdb54de72b22a045a1733768ff04bc0721f8703450a58dd4599d000c1a779ed29de2174bad7277bf1e3da83bff62d730bd85d2f0376f4614387b363dbcbf14c312ebaa135ac5b2ccde5c9b308f6d6374989fb0b45034dd7c7b1b0246da238d0673ca76eb8b6a88ffbe98027af64a52606dd462026f7037c01f6578b0a0d374094cd3afc2bb405d5745cad095d6f5fca43783d416801b203da8e3235ecba4d2973dd99044f49c5656b5f926e7858f19985c9eced3c3d69c40219ffff0219ffff05581e0369d860ba51e1f38e9568d712cc1015d300e6459b24c6f12dd3bb72fbb00701192c1d0368a57f876b2a86d5202cb0b88a56b70157ea45308ca313ac94c58917316ccf2a031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e03dc46867273ed70dbe36e1f7bc487477eb235a4a743e1563fa18e724e9007011bffffffffffffffff05581e036860b21c055eae9ab7584e141dcd434524e2623f3704c97f462fa8b2200c014634836895ae0005581e03d17038f9eb9ca5d5c7f2ed35ee4c36cd18aeaa99031ba3c822cc3a7480040103a243ff6b74281d79d0b2d05f3236a40825212deadd5b3caef0a90cb42e5ccd360219f38a0328640eee32a080b77cb9d328b0f3b6a1e1d4e0bfb667e2bbce2e84f575bff9150344a0dcab32ea2cc3c6057347ecf698ea00a7304ed4ffa287dc4137da70ef62a803350bc6d59186f54dd04857c4d96209f909c0a26c774302971cda3d3ac2ad986503363b91a65d3d97f458d8e486292141f60b4aba3b0848317adef4378e4957061f03d0f0e161ed393239273fb636fb6233f37bf44aced14a1a4f16e6d4f20897e98603f687542496b875f86f9301d9dae8f4147a5612645293d23b118816af042e416f03659d6d8447bb0c6479ad742cce1450c347ce7689762a626c794a268ccc918ddc032aad63a3441b51ed82e072c0e7e66adef5a9da8c671a3c4703dfeb33fdb71f4f032e1cddc00a445b4332bd70bb71438542ce364db3719f75fc23dbfb546e553205032b25f41fa7dd345c2be3d27d8cfcd3d6790f372b3fe56044379e7003085116050219ffff03f73cd996e08163cc5fbbe2cebf5b8a0ba71705ae8a3c763a93679caa9fd0d44d030502386b46106874feb8ab4d6a01ea5ab17a4532916ec094f13dd947f102cc7103d22aa26444815f33b195bb9ec72b00a532a983a638404b3ef2c8b707c860167803687c7a5f588515f13b3f3e18f5c2c05aa1159424a78b4e9cf2148ace9308dcba03ef0feeff59177a99f4f376146bb32fcc62f2a045504b5b3b43a6e8004254a60a033c4da270e894b11fb7d3f06f71678d8a1d36b0e52db18cd33d640cadf7cfe5b703bd9a604d5b8526fb25e5ba9ebf565d978ed55c4163f0bdeba78cddf4a4a493540391878f2c77e9321d80de7fe1221f8af08ffdab13f2bf1f9892746c4c5574ea1b03f8658b65bf425e6bb3a524dc6520f809c4229b1923f4f1cd0123d2226f7adb0f0331ea4a51242c468f2695dbfdfdeba6f2a0f2a9caf5b4843556bd82a32ee0c9870345e0afa7b9533df8e6173e00bbf6707db589b835852c81f8cefb1138cee28e02039d63a2052a1d5096a47cabf6a9f2acae078cfe71dd75c639ff694373ac1229a70393eabf4d4dab57038a93783a123c8dd5cfc200c7c5b7699da4b77c23ece1b9180219ffff03d5d4052b7b48b342b7d0f981bf8454866dcc9d4b8ee0cf007f6714d166fa74610219ffff035164031cfa690b33ef2cebcdfb1a4d464e1b2229bc7fc087203147f8c14aad420219ffff0219ffff0219ffff" + } + }, + "txn_info": [ + { + "traces": { + "0xc280e6ffa54b0f18ed7362196e4c8e854cfdac3f": { + "balance": "0x124ddf132cc08bf9", + "nonce": "0xa1" + }, + "0x7eec7a4e6ab3cce23ccc41b8601282716b9eadf4": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009" + ], + "storage_written": { + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de7000000000004438a627e6ca8892d0000001471d60b35af4ca2e1ca70", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x358ee51bd8320806845d9a274758", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x123cce098ea9f03724345725dc643e5053855c" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1962dd1276e304cac" + }, + "0x3328f7f4a1d1c57c35df56bbf0c9dcafca309c49": { + "balance": "0x11b16e2f89518d1b8", + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x11b16e2f89518d1b6" + }, + "code_usage": { + "read": "0x4d9be648c5bf39973670d9f8b481d5d0b971e6a2db2deccc6b98cde21c5dd83e" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298697d04005fb7fd33ab", + "storage_read": [ + "0xb2940356fd89a84cf9a86227596a2f59f085c679d5f9450737d0ae4daf0efcea", + "0xb88ecc12f0a13010069fe31a467d8303b57edd225d4fb5fdf4e66214cbc6765a" + ], + "storage_written": { + "0xb2940356fd89a84cf9a86227596a2f59f085c679d5f9450737d0ae4daf0efcea": "0x0", + "0xb88ecc12f0a13010069fe31a467d8303b57edd225d4fb5fdf4e66214cbc6765a": "0x4438a627e6ca8892d" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xb8a87405d9a4f2f866319b77004e88dff66c0d92": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0x970ed9cd9741b4afe0d78fd355c8ff7cc4ba99e1a2761b359a6843f105b37df5", + "0x000000000000000000000000000000000000000000000000000000000000001d", + "0xa144f807cb3fb6cee02c2a9fa3687b50ee110d933b9ae3e114fdef9b5d0491f5", + "0x65b4472f50deaf0b000c8fe050adfbe765d8ed43c5b2a6d53388b95c0ea2bd9f", + "0xf69a4bc512ff3e114f60d55773edab9ab751bffdbd126627940c03bcc433afa4", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x492912bd9d929796b46aca97051672bcf047099f3ecbd75358bae5e53e739795", + "0x7342d16e34225788b8a8644e4434263380b310ebdb907cbbb418593014882116", + "0xe9df5837f3bcbb1790cb137a41af6668249cf34a286d7ed605320e67c6c23eb4", + "0x7f77ab918e11f5a3aa1b83e7fa69b47af3f5cac0a670bc62399e74e5d1d52107", + "0x4bfebf24978275179447f7cf6e42e1eec9a958f687caae1285b31998802c28db" + ], + "storage_written": { + "0xf69a4bc512ff3e114f60d55773edab9ab751bffdbd126627940c03bcc433afa4": "0x42dbdc14c1a8c6c492c7", + "0x65b4472f50deaf0b000c8fe050adfbe765d8ed43c5b2a6d53388b95c0ea2bd9f": "0x1471d60b35af4ca2e1ca70" + }, + "code_usage": { + "read": "0xa47998f0fcceee76c553f9f49703070078f39a295bd103fff52cd766c9b60168" + } + }, + "0xbcd3a47e4d0000cf170e25d1bd3d53f7c08be0a6": { + "code_usage": { + "read": "0x6ed615a0ca19cd89538543cdcb17a7e8d26147013208623b1efd12f8361aa814" + } + } + }, + "meta": { + "byte_code": "0x02f9023c0181a08505d21dba00850cf0e3895583076e9c943328f7f4a1d1c57c35df56bbf0c9dcafca309c49880de0b6b3a7640000b901c40162e2d000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001600000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf5de7000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d92c001a002bf22eda9af4fb647cb7a9922690c83100b28eb36d0d5b92a1d559d7e8278dea041d2549846582d1b882cfed10d546955467e62384daf43860eeac114a68b92bf", + "new_txn_trie_node_byte": "0x02f9023c0181a08505d21dba00850cf0e3895583076e9c943328f7f4a1d1c57c35df56bbf0c9dcafca309c49880de0b6b3a7640000b901c40162e2d000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001600000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf5de7000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d92c001a002bf22eda9af4fb647cb7a9922690c83100b28eb36d0d5b92a1d559d7e8278dea041d2549846582d1b882cfed10d546955467e62384daf43860eeac114a68b92bf", + "new_receipt_trie_node_byte": "0xb9057402f905700183029151b901000020000000080000000000008000000000000000000000000000000000000000000004000800000000000000000000000200000008000020000020000400000400000000020000000000000800000020000000000000000000000000800400000000000000000000000002000000040920000000000000000000001000000000000000000000100000002000000000000000000100000008000000400000000000000000000000000a001000000000080000000000000200040000000000000000000002000000000000000000000000000000000000001000000000000000000000200008000000000000000000000000080000000000400000000000000000f90465f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003328f7f4a1d1c57c35df56bbf0c9dcafca309c49a00000000000000000000000000000000000000000000000000dcf09da3e1eb9f3f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003328f7f4a1d1c57c35df56bbf0c9dcafca309c49a00000000000000000000000007eec7a4e6ab3cce23ccc41b8601282716b9eadf4a00000000000000000000000000000000000000000000000000dcf09da3e1eb9f3f89b94b8a87405d9a4f2f866319b77004e88dff66c0d92f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000007eec7a4e6ab3cce23ccc41b8601282716b9eadf4a0000000000000000000000000c280e6ffa54b0f18ed7362196e4c8e854cfdac3fa00000000000000000000000000000000000000000000042dbdc14c1a8c6c492c7f879947eec7a4e6ab3cce23ccc41b8601282716b9eadf4e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000000001471d60b35af4ca2e1ca70000000000000000000000000000000000000000000000004438a627e6ca8892df8fc947eec7a4e6ab3cce23ccc41b8601282716b9eadf4f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003328f7f4a1d1c57c35df56bbf0c9dcafca309c49a0000000000000000000000000c280e6ffa54b0f18ed7362196e4c8e854cfdac3fb88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dcf09da3e1eb9f30000000000000000000000000000000000000000000042dbdc14c1a8c6c492c70000000000000000000000000000000000000000000000000000000000000000f899943328f7f4a1d1c57c35df56bbf0c9dcafca309c49e1a072015ace03712f361249380657b3d40777dd8f8a686664cab48afd9dbbe4499fb8600000000000000000000000000000000000000000000000000011acd96945460c000000000000000000000000c280e6ffa54b0f18ed7362196e4c8e854cfdac3f0000000000000000000000000000000000000000000000000000000000000000f899943328f7f4a1d1c57c35df56bbf0c9dcafca309c49e1a09f849d23f4955d98202378ea318f2b0c7533695d3c9fb2a3931f0f919fa8c420b8600000000000000000000000000000000000000000000000000dcf09da3e1eb9f30000000000000000000000000000000000000000000042dbdc14c1a8c6c492c70000000000000000000000000000000000000000000042dbdc14c1a8c6c492c7", + "gas_used": 168273 + } + }, + { + "traces": { + "0xedc8b1e86fd6d18d42ada62f15a64a8fca475ad3": { + "balance": "0x0", + "nonce": "0x2" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1962ec4a6b2043c04" + }, + "0x16707373aa474f3ffc6462fc0fcf4e3d990ffd14": { + "balance": "0x997f2146446a" + } + }, + "meta": { + "byte_code": "0xf86a01850a16ab54808252089416707373aa474f3ffc6462fc0fcf4e3d990ffd148603c65f2ba0128025a00131a5979b6afb8315490079173cc40565258241f63f75644e4201e4428e629da06155c353d567b7c808e07cf4b8cfb595683079904c2eef4d4ef2e464ba47293b", + "new_txn_trie_node_byte": "0xf86a01850a16ab54808252089416707373aa474f3ffc6462fc0fcf4e3d990ffd148603c65f2ba0128025a00131a5979b6afb8315490079173cc40565258241f63f75644e4201e4428e629da06155c353d567b7c808e07cf4b8cfb595683079904c2eef4d4ef2e464ba47293b", + "new_receipt_trie_node_byte": "0xf90109018302e359b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298697c6943d9120afe22", + "storage_read": [ + "0x05e950c03214daf5e318e3c0401e87e5c3b14177b9a9993d2e5f6176bb0f752a", + "0x6f30373353cd870b4908853b6b6aeeb83a1beeca429766b945bb09b495ec005a" + ], + "storage_written": { + "0x6f30373353cd870b4908853b6b6aeeb83a1beeca429766b945bb09b495ec005a": "0x0", + "0x05e950c03214daf5e318e3c0401e87e5c3b14177b9a9993d2e5f6176bb0f752a": "0xa93695763797be6ad4" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x1d8f9d3b80add4b8c2fcca5ec65951887a33ad8dde5977683ae090432e8c878b", + "0xd867d4235f4a1fe9b8ca4498de653f938daf14075a1b49c957efece957172746", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x23e2bec196ba8cdd4280587b75dca260bf1683782e4e1759a7324be3ffbf63b6", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x1572aaefe0b2199f071561b88893f3a8e7cdfabcde8e36f23fcc9ea63b8e0c8c" + ], + "storage_written": { + "0xd867d4235f4a1fe9b8ca4498de653f938daf14075a1b49c957efece957172746": "0x0", + "0x1572aaefe0b2199f071561b88893f3a8e7cdfabcde8e36f23fcc9ea63b8e0c8c": "0x80ebb866869", + "0x1d8f9d3b80add4b8c2fcca5ec65951887a33ad8dde5977683ae090432e8c878b": "0x1b546dd2" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19635cfb1fd3b3f11" + }, + "0x2e0b3afb185bfb3ddf3b7c711955274fd6412666": { + "balance": "0x74ac34fdc8c17bd", + "nonce": "0x3fd" + }, + "0x5f1314cf2c13517d79a828c6aab4b173de47462d": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "code_usage": { + "read": "0xaf2150cafdd865cc1c7c68cba44957157788c60481de6a5c4b03a13fa2ef8295" + } + }, + "0x06da0fd433c1a5d7a4faa01111c044910a184553": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x388eb3fee33e8e2507f2066e1abf", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de70000000000000000080ebb8668690000000000a93695763797be6ad4", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x10436ed4c3bc01aad66ad0d7ffc23ba803d0a6dde58", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0xcd82e2d9daddbf51cbce8d5429a0996e16fc670c4056566f19cf8864ad45a746" + } + }, + "0xd9e1ce17f2641f24ae83637ab66a2cca9c378b9f": { + "code_usage": { + "read": "0x2cd062d965df55b27a1f2d3c926212a046256dfc4191d9c32c82c5efbf3b231f" + } + }, + "0xa7a36f069bbaab279f8308923bff04857ee51f7c": { + "balance": "0x9abc86a5f23589" + } + }, + "meta": { + "byte_code": "0xf9026d8203fc8509bd134886830f4240945f1314cf2c13517d79a828c6aab4b173de47462d80b902046d1e4d6b000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000763e865000000000000000000000000a7a36f069bbaab279f8308923bff04857ee51f7c00000000000000000000000000000000000000000000000000976a0b878ca1f1000000000000000000000000d9e1ce17f2641f24ae83637ab66a2cca9c378b9f00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010418cbafe5000000000000000000000000000000000000000000000000000000000763e86500000000000000000000000000000000000000000000000000976a0b878ca1f100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000005f1314cf2c13517d79a828c6aab4b173de47462d0000000000000000000000000000000000000000000000000000000065cf6bf00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000026a0e454470b7a58c6ede330623c229cf43befd2120d0fc70b82d22a0f11981d9eb4a061bb089e5c6e2c738bfa06235cabb80e7b6b8688f213b7fefb722f25acfabe12", + "new_txn_trie_node_byte": "0xf9026d8203fc8509bd134886830f4240945f1314cf2c13517d79a828c6aab4b173de47462d80b902046d1e4d6b000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000763e865000000000000000000000000a7a36f069bbaab279f8308923bff04857ee51f7c00000000000000000000000000000000000000000000000000976a0b878ca1f1000000000000000000000000d9e1ce17f2641f24ae83637ab66a2cca9c378b9f00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010418cbafe5000000000000000000000000000000000000000000000000000000000763e86500000000000000000000000000000000000000000000000000976a0b878ca1f100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000005f1314cf2c13517d79a828c6aab4b173de47462d0000000000000000000000000000000000000000000000000000000065cf6bf00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000026a0e454470b7a58c6ede330623c229cf43befd2120d0fc70b82d22a0f11981d9eb4a061bb089e5c6e2c738bfa06235cabb80e7b6b8688f213b7fefb722f25acfabe12", + "new_receipt_trie_node_byte": "0xf9059201830593f6b9010000200001000000000080000080000000000000000000000000010000000000000014000000000000000000000000010002002000080000000000000000200000000000000000000080000008000000200000000000440000080000400000000000000010000000000000000000000000000000000000040000000010000000000000000000000000000000000000000000000000000000080000004000100000020000000000000000000080000000000000000000020000000000000000000000400002000000000000000000000000000000000400001000000002002000001010200000010000000000000000000000000000000000000000000000000000f90487f89b94dac17f958d2ee523a2206206994597c13d831ec7f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a00000000000000000000000005f1314cf2c13517d79a828c6aab4b173de47462da0000000000000000000000000d9e1ce17f2641f24ae83637ab66a2cca9c378b9fa0000000000000000000000000000000000000000000000000000000000763e865f89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000005f1314cf2c13517d79a828c6aab4b173de47462da000000000000000000000000006da0fd433c1a5d7a4faa01111c044910a184553a0000000000000000000000000000000000000000000000000000000000763e865f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000006da0fd433c1a5d7a4faa01111c044910a184553a0000000000000000000000000d9e1ce17f2641f24ae83637ab66a2cca9c378b9fa0000000000000000000000000000000000000000000000000009abc86a5f23589f8799406da0fd433c1a5d7a4faa01111c044910a184553e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000000000000a93695763797be6ad40000000000000000000000000000000000000000000000000000080ebb866869f8fc9406da0fd433c1a5d7a4faa01111c044910a184553f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a0000000000000000000000000d9e1ce17f2641f24ae83637ab66a2cca9c378b9fa0000000000000000000000000d9e1ce17f2641f24ae83637ab66a2cca9c378b9fb8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000763e865000000000000000000000000000000000000000000000000009abc86a5f235890000000000000000000000000000000000000000000000000000000000000000f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65a0000000000000000000000000d9e1ce17f2641f24ae83637ab66a2cca9c378b9fa0000000000000000000000000000000000000000000000000009abc86a5f23589f8b9945f1314cf2c13517d79a828c6aab4b173de47462de1a0a17db8f15af02c582aa3ecb40e93f5aea888c6fd35c67072b883723dd38a06f8b880000000000000000000000000000000000000000000000000000000000763e865000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000976a0b878ca1f1000000000000000000000000000000000000000000000000009abc86a5f23589", + "gas_used": 176285 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19636a662ba026c41" + }, + "0x1ab4973a48dc892cd9971ece8e01dcc7688f8f23": { + "balance": "0xdeda085399dd10a902", + "nonce": "0x19ac8" + }, + "0x9e5cf8ae54253b93894c02e12a3216d6ea849a7f": { + "balance": "0x2ac816e03cf5ca78" + } + }, + "meta": { + "byte_code": "0xf87083019ac78509bcc52f7b830186a0949e5cf8ae54253b93894c02e12a3216d6ea849a7f882a3c33ff591778008026a0b598a257f94f8ed180e942d186e5594c729d7a912ca8003da1ef64db65bc97f3a01c65a6fadf6c07e3ce16031adf08d879a043c1451a51fd7cc4d2c71c7b8d06b8", + "new_txn_trie_node_byte": "0xf87083019ac78509bcc52f7b830186a0949e5cf8ae54253b93894c02e12a3216d6ea849a7f882a3c33ff591778008026a0b598a257f94f8ed180e942d186e5594c729d7a912ca8003da1ef64db65bc97f3a01c65a6fadf6c07e3ce16031adf08d879a043c1451a51fd7cc4d2c71c7b8d06b8", + "new_receipt_trie_node_byte": "0xf90109018305e5feb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x7a250d5630b4cf539739df2c5dacb4c659f2488d": { + "code_usage": { + "read": "0xa324bc7db3d091b6f1a2d526e48a9c7039e03b3cc35f7d44b15ac7a1544c11d2" + } + }, + "0x5e37718cedad7cc99cc220c417f5095573b510c6": { + "storage_read": [ + "0xef21b8007bf2a6a9857ea2189ba339cc0de15f8a2f4b59a51377aa3b9a19ca40", + "0xfbd4c12605247405c544a5378d3de984e71398fdee3d7148f39c584fee304265", + "0x873fe42076e79e3da705b99918658ab486530ac7f57454983de4f8afb6d05b1c", + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x57915f62b2dbfb75114a0267474495855da7af031b99e378eda89c75207d07fd", + "0x0bbee55ca85bbdfb834d4f91939d9c436ec7fb71c0ccf8a959583a66ea68af8f", + "0x0000000000000000000000000000000000000000000000000000000000000013", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x1782eed26a133e8e92b23464c88f2355ec9c15410fbaf8e873192317fbd956e8", + "0xf3d64580d9a0de0fe3e03212619a37e040bc0ea4b09d2b1055bdfaa9e73f96a5", + "0xa079a2a34fe9ed65fcd26c871058064318713aac24bc1d0db9f0f80315b6d2ca", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000001a", + "0x0000000000000000000000000000000000000000000000000000000000000019" + ], + "storage_written": { + "0x1782eed26a133e8e92b23464c88f2355ec9c15410fbaf8e873192317fbd956e8": "0x18c6c95908f2c333", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x7c", + "0xf3d64580d9a0de0fe3e03212619a37e040bc0ea4b09d2b1055bdfaa9e73f96a5": "0xffffffffffffffffffffffffffffffffffffffffffffffffff639915bd965003", + "0xfbd4c12605247405c544a5378d3de984e71398fdee3d7148f39c584fee304265": "0x0" + }, + "code_usage": { + "read": "0x2dba98c3ffc1e20dd1f9474f247d51b8435d6c8cae54fb833a14a0042c889216" + } + }, + "0x2dd689bc44fbee35491f475498c443d88ae63418": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de7000000000000474b011c40a0abfa00000000000018c6c95908f2c333", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x332fcd1ebbde8dd06df49994cc0aacf8", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x3e3e8947bf3c11814c0acb86c0e18a0", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0xa12f10032d8877dff2f759a1e63e23e7d0090cc1": { + "balance": "0x58007e3f9d92702", + "nonce": "0xb1" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298697a9d3bd7c5f2c0a0", + "storage_read": [ + "0x9bc7ec8ae6fdb064e5d4de11792c60b7a0eafc09550de150eb14f4ca7b09ea9a", + "0xfb19a963956c9cb662dd3ae48988c4b90766df71ea130109840abe0a1b23dba8" + ], + "storage_written": { + "0xfb19a963956c9cb662dd3ae48988c4b90766df71ea130109840abe0a1b23dba8": "0x0", + "0x9bc7ec8ae6fdb064e5d4de11792c60b7a0eafc09550de150eb14f4ca7b09ea9a": "0x474b011c40a0abfa" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1963b8e1eef8827ca" + } + }, + "meta": { + "byte_code": "0xf9016c81b08509502f9000830a51b3947a250d5630b4cf539739df2c5dacb4c659f2488d80b90104791ac947000000000000000000000000000000000000000000000000009c66ea4269affc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000a12f10032d8877dff2f759a1e63e23e7d0090cc1000000000000000000000000000000000000000000000000000000006bc53ede00000000000000000000000000000000000000000000000000000000000000020000000000000000000000005e37718cedad7cc99cc220c417f5095573b510c6000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc225a0482a6db2b6038af7829be85e11b354b7da06d4ced7c314296f1c102f16a8fc3fa05d0edfaeba1ef3df412cf59d3557c71e2f28fcaa53d2e17e8adb2c01c866cda7", + "new_txn_trie_node_byte": "0xf9016c81b08509502f9000830a51b3947a250d5630b4cf539739df2c5dacb4c659f2488d80b90104791ac947000000000000000000000000000000000000000000000000009c66ea4269affc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000a12f10032d8877dff2f759a1e63e23e7d0090cc1000000000000000000000000000000000000000000000000000000006bc53ede00000000000000000000000000000000000000000000000000000000000000020000000000000000000000005e37718cedad7cc99cc220c417f5095573b510c6000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc225a0482a6db2b6038af7829be85e11b354b7da06d4ced7c314296f1c102f16a8fc3fa05d0edfaeba1ef3df412cf59d3557c71e2f28fcaa53d2e17e8adb2c01c866cda7", + "new_receipt_trie_node_byte": "0xf904d70183082299b9010000200000000000000000000080008000000000000000000000010000000000000200000040000000000000000000000002000000080000000010000000200000000000000000000000000008000000200000000000400000000000000000000000100000000000000000000000000000000000000000040000000010000000000000000002000000004000400000000000000000000000080000004000000000020000000000080000002000000000000000000000000000000000000000000000000002004000000000000000000004000000000000001800000002000020000010200000000000000000000000000000000000000000000000000000000000f903ccf89b945e37718cedad7cc99cc220c417f5095573b510c6f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000a12f10032d8877dff2f759a1e63e23e7d0090cc1a00000000000000000000000002dd689bc44fbee35491f475498c443d88ae63418a0000000000000000000000000000000000000000000000000009c66ea4269affcf89b945e37718cedad7cc99cc220c417f5095573b510c6f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000a12f10032d8877dff2f759a1e63e23e7d0090cc1a00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488da0ffffffffffffffffffffffffffffffffffffffffffffffffff639915bd965003f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000002dd689bc44fbee35491f475498c443d88ae63418a00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488da000000000000000000000000000000000000000000000000001cc08014c183d82f879942dd689bc44fbee35491f475498c443d88ae63418e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b84000000000000000000000000000000000000000000000000018c6c95908f2c333000000000000000000000000000000000000000000000000474b011c40a0abfaf8fc942dd689bc44fbee35491f475498c443d88ae63418f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488da00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488db880000000000000000000000000000000000000000000000000009c66ea4269affc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001cc08014c183d82f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65a00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488da000000000000000000000000000000000000000000000000001cc08014c183d82", + "gas_used": 146587 + } + }, + { + "traces": { + "0x33f991e7566101e6b1b0991bc9c77b2fcf719738": { + "balance": "0x4666d53fbada41", + "nonce": "0x4" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1963c6dc66b5b72ee" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "storage_written": { + "0x5774148d220087bc36e9a45b6b8ba61b38bf1dba695e287ecb7dec8529d6e7d0": "0x0" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + } + }, + "meta": { + "byte_code": "0xf8aa0385092283e85e8301388094dac17f958d2ee523a2206206994597c13d831ec780b844095ea7b30000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d000000000000000000000000000000000000000000000000000000000000000026a05f67cc3a36e57c639e1f278594094b6a3e55180a04f8fd57ad936150037e3ee0a06883212ca67d385d33749d5c3425f2564527847f84059af6465344bda0aac21c", + "new_txn_trie_node_byte": "0xf8aa0385092283e85e8301388094dac17f958d2ee523a2206206994597c13d831ec780b844095ea7b30000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d000000000000000000000000000000000000000000000000000000000000000026a05f67cc3a36e57c639e1f278594094b6a3e55180a04f8fd57ad936150037e3ee0a06883212ca67d385d33749d5c3425f2564527847f84059af6465344bda0aac21c", + "new_receipt_trie_node_byte": "0xf901a7018308919db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000040000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000001000000000000000000000000000000000000000000000100000020000000000000000000080000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000200000000010000000000000000000800000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a000000000000000000000000033f991e7566101e6b1b0991bc9c77b2fcf719738a00000000000000000000000001111111254fb6c44bac0bed2854e76f90643097da00000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 28420 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1963d405ab61a57ee" + }, + "0xa915bfb9f246cd5c276244b4ba58de964a7bdb39": { + "balance": "0x258bba1743933443", + "nonce": "0x39" + }, + "0xf57e7e7c23978c3caec3c3548e3d615c346e79ff": { + "storage_read": [ + "0xa69099abebff5bca7cc8d44689205032e07aa69a4ca2746605b250af401a73fa", + "0x044b610258ea4493ed7acc422061e30b031451076da208912614a6b34b699111" + ], + "storage_written": { + "0x044b610258ea4493ed7acc422061e30b031451076da208912614a6b34b699111": "0x0", + "0xa69099abebff5bca7cc8d44689205032e07aa69a4ca2746605b250af401a73fa": "0xf5788dfc63e53aea63" + }, + "code_usage": { + "read": "0x7da57fcd828b2ac43a76f9eb5ff41a3f8cc3af4e848291245092c6c962559b62" + } + } + }, + "meta": { + "byte_code": "0x02f8d101388508e53732dd8508e53732dd82a4e394f57e7e7c23978c3caec3c3548e3d615c346e79ff80b864a9059cbb00000000000000000000000099870de8ae594e6e8705fc6689e89b4d039af1e200000000000000000000000000000000000000000000000572b355eb94826800908f2e32343a18f1a86447339d14b78c954b0863605301e1247ebeb24294b7d1c001a033c18166a285c047e97cf99eb52d844ea02246d837b230b7dc2617b487a1e486a00f8fb1885cfe622de12cda3d283229f167a78f5328a774bf65b8bac11580385b", + "new_txn_trie_node_byte": "0x02f8d101388508e53732dd8508e53732dd82a4e394f57e7e7c23978c3caec3c3548e3d615c346e79ff80b864a9059cbb00000000000000000000000099870de8ae594e6e8705fc6689e89b4d039af1e200000000000000000000000000000000000000000000000572b355eb94826800908f2e32343a18f1a86447339d14b78c954b0863605301e1247ebeb24294b7d1c001a033c18166a285c047e97cf99eb52d844ea02246d837b230b7dc2617b487a1e486a00f8fb1885cfe622de12cda3d283229f167a78f5328a774bf65b8bac11580385b", + "new_receipt_trie_node_byte": "0xb901ab02f901a7018309083db9010000000000008000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000008000040000000000004000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000008000000000000000000002000000000000000000000000000080000000000000000000200000000000000000000000000000f89df89b94f57e7e7c23978c3caec3c3548e3d615c346e79fff863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000a915bfb9f246cd5c276244b4ba58de964a7bdb39a000000000000000000000000099870de8ae594e6e8705fc6689e89b4d039af1e2a000000000000000000000000000000000000000000000000572b355eb94826800", + "gas_used": 30368 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1963dd1f93b87042e" + }, + "0x0f25f4051a1aa955c34d9848d52736981fbadb7f": { + "balance": "0x0", + "nonce": "0x19" + }, + "0xbf5dfa91134795b17718aa3391edab65227a1ee8": { + "balance": "0x93f4e2fc8935a289" + } + }, + "meta": { + "byte_code": "0x02f87401188508e53732dd8508e53732dd82520894bf5dfa91134795b17718aa3391edab65227a1ee8880bb5490e201fac1180c001a08520735dc7e920a18ecf225e4400e7b82af61b664ff2a74a01a1f51ea21d99e7a04e6f5d9d96354ee1c198e785157ffc5750b818b3cbf7834ffade7e7dbffcaf99", + "new_txn_trie_node_byte": "0x02f87401188508e53732dd8508e53732dd82520894bf5dfa91134795b17718aa3391edab65227a1ee8880bb5490e201fac1180c001a08520735dc7e920a18ecf225e4400e7b82af61b664ff2a74a01a1f51ea21d99e7a04e6f5d9d96354ee1c198e785157ffc5750b818b3cbf7834ffade7e7dbffcaf99", + "new_receipt_trie_node_byte": "0xb9010d02f901090183095a45b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x9df1ef9d16078d29b2f69149e3d2fa5f9a8b1ee4": { + "balance": "0x10b0c8887fdb72" + }, + "0x892362723ace8cee0246120d9f94d23b299bd460": { + "balance": "0x0", + "nonce": "0xb" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1963e5f4d528fe4a6" + } + }, + "meta": { + "byte_code": "0x02f873010a8508d7d341a48508d7d341a4825208949df1ef9d16078d29b2f69149e3d2fa5f9a8b1ee4870f52df905bc53380c001a0375aaa64f18c16f804016db67750cfd140365d1f055abf56454020a4bf8cefeba014b4286d383a434770b505a40b36c51a9f645c90b9080d1455075b8ffe6b655d", + "new_txn_trie_node_byte": "0x02f873010a8508d7d341a48508d7d341a4825208949df1ef9d16078d29b2f69149e3d2fa5f9a8b1ee4870f52df905bc53380c001a0375aaa64f18c16f804016db67750cfd140365d1f055abf56454020a4bf8cefeba014b4286d383a434770b505a40b36c51a9f645c90b9080d1455075b8ffe6b655d", + "new_receipt_trie_node_byte": "0xb9010d02f90109018309ac4db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19643d8bf9da0228b" + }, + "0xa8e1aed437f83898784fdc5c0256412f10be33ae": { + "balance": "0x751ad", + "code_usage": { + "read": "0x86b9410ab0c8744f10d6fa1a46cf9d53e4cd484ef8d60909889183a6021976d2" + } + }, + "0x7eec7a4e6ab3cce23ccc41b8601282716b9eadf4": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de70000000000043a56648452b721ec000000149e7925446f8bba33b4c3", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x19c1f6c7468ad4076b05a5f79e3ee80ce0064718": { + "storage_read": [ + "0xc0d1c00078410fd0164580b0bad93d8a579580d06cf45fc2696a823498097b8a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x23ed39b76a55eaeb124975b74c780c", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x100000100010000fe105a000000000000000000732b6a85939087a9dedbe5", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x100000000000000000000003465abd5231c9fd886fffffe086b02b065cf5de7" + }, + "code_usage": { + "read": "0x5218d91b409a649690db747c01aae184e43ffcab370003931ff590f24e0c6959" + } + }, + "0xb8a87405d9a4f2f866319b77004e88dff66c0d92": { + "storage_read": [ + "0xc659b99e79fe0de30a460bd9c30c4e566718ff6cfdcd6379dd0e4e03da9bdc33", + "0xfb74873144d124a9ae5c34d96e470a6709f5decbbff3f7a62bff519f49d57f24", + "0xc31ed9b8b31596222ff0e90049bb798a41abd7fd47b7602205c896a75602cd28", + "0xb04ceb61f5c03b733b515e10ff854b0fc2e559ff6d9ba0459129639a17705c0a", + "0x970ed9cd9741b4afe0d78fd355c8ff7cc4ba99e1a2761b359a6843f105b37df5", + "0x4bfebf24978275179447f7cf6e42e1eec9a958f687caae1285b31998802c28db", + "0x27e9f812186791d033a8f9881ee8bf032f697cd280803eba6d746cdf852e1cec", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x0000000000000000000000000000000000000000000000000000000000000014", + "0xe9df5837f3bcbb1790cb137a41af6668249cf34a286d7ed605320e67c6c23eb4", + "0xf21cebc87207a45343dbb33a2512a7ff11e6222d87d2759dc5745a55f3df1144", + "0x65b4472f50deaf0b000c8fe050adfbe765d8ed43c5b2a6d53388b95c0ea2bd9f", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x000000000000000000000000000000000000000000000000000000000000001d", + "0xe6b156d4976dc21131e68edc4125a9d124b5877bf8d3c78211f801b255d6d26a", + "0x7f77ab918e11f5a3aa1b83e7fa69b47af3f5cac0a670bc62399e74e5d1d52107", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x2c527d6233ad0a6e83c84c57d052329c3c6fd4c2b817cb7058d80a087c6fc253" + ], + "storage_written": { + "0x2c527d6233ad0a6e83c84c57d052329c3c6fd4c2b817cb7058d80a087c6fc253": "0xcb19840e23d5a6", + "0x65b4472f50deaf0b000c8fe050adfbe765d8ed43c5b2a6d53388b95c0ea2bd9f": "0x149e7925446f8bba33b4c3", + "0xf21cebc87207a45343dbb33a2512a7ff11e6222d87d2759dc5745a55f3df1144": "0x125363454b89ea13693a9a" + }, + "code_usage": { + "read": "0xa47998f0fcceee76c553f9f49703070078f39a295bd103fff52cd766c9b60168" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298697a7bb288bd523c8c", + "storage_read": [ + "0x363377a7861c6509e20a73b678431d5b8a2b52baffe5a95c8063329611915903", + "0x5defccebecd74077aa0ce566544361c4953269120956a662e3572c4a19339eec", + "0xb88ecc12f0a13010069fe31a467d8303b57edd225d4fb5fdf4e66214cbc6765a" + ], + "storage_written": { + "0x5defccebecd74077aa0ce566544361c4953269120956a662e3572c4a19339eec": "0x10bdc43a4517a62de", + "0xb88ecc12f0a13010069fe31a467d8303b57edd225d4fb5fdf4e66214cbc6765a": "0x43a56648452b721ec", + "0x363377a7861c6509e20a73b678431d5b8a2b52baffe5a95c8063329611915903": "0x2540be400" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xec2c5c305806dda5e2852571ae974dd38cb265dc": { + "balance": "0xc4c5db876c4fb626", + "nonce": "0x9c4" + } + }, + "meta": { + "byte_code": "0x02f90336018209c385015e61440085102fd3daf68319f0a094a8e1aed437f83898784fdc5c0256412f10be33ae818fb902c4dc4d776a0000000000000000000000004838b106fce9647bdf1e7877bf73ce8b0bad5f97000000000000000000000000000000000000000000000001961edf11a86e72ac00000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d9200000000000000000000000000000000000000000000000000000000000000020000000000000000000000007eec7a4e6ab3cce23ccc41b8601282716b9eadf400000000000000000000000019c1f6c7468ad4076b05a5f79e3ee80ce0064718000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0b8201b4404d149caec72d1cde9049156d60ad0a78f98785b56fffc924f55766ca0381a78641e872256caf6ce1371cdd23b617c67f2a1635dfc882521e74217c57a", + "new_txn_trie_node_byte": "0x02f90336018209c385015e61440085102fd3daf68319f0a094a8e1aed437f83898784fdc5c0256412f10be33ae818fb902c4dc4d776a0000000000000000000000004838b106fce9647bdf1e7877bf73ce8b0bad5f97000000000000000000000000000000000000000000000001961edf11a86e72ac00000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d9200000000000000000000000000000000000000000000000000000000000000020000000000000000000000007eec7a4e6ab3cce23ccc41b8601282716b9eadf400000000000000000000000019c1f6c7468ad4076b05a5f79e3ee80ce0064718000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0b8201b4404d149caec72d1cde9049156d60ad0a78f98785b56fffc924f55766ca0381a78641e872256caf6ce1371cdd23b617c67f2a1635dfc882521e74217c57a", + "new_receipt_trie_node_byte": "0xb9069702f9069301830d99feb9010000200000000800000000000080008000000000000000000000000000000000000002000000000000000000000000000002000000080020000000000000000004000000010200000800000008000000200000000000400000000000000000900000000000000000000000020000000009000000000000040000000010000800000000000000000000000000000000000000000000000000480000004000000000000000000000000008000000000000000000000000000300000000000000000040000002000000100000000000000000000000000000001000000002000000000000200008000000000000000000000000000000000000000000000000000000f90588f89b94b8a87405d9a4f2f866319b77004e88dff66c0d92f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000019c1f6c7468ad4076b05a5f79e3ee80ce0064718a0000000000000000000000000a8e1aed437f83898784fdc5c0256412f10be33aea0000000000000000000000000000000000000000000002ca31a0ec03f1751ea53f89b94b8a87405d9a4f2f866319b77004e88dff66c0d92f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000a8e1aed437f83898784fdc5c0256412f10be33aea00000000000000000000000007eec7a4e6ab3cce23ccc41b8601282716b9eadf4a0000000000000000000000000000000000000000000002ca31a0ec03f1751ea53f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000007eec7a4e6ab3cce23ccc41b8601282716b9eadf4a0000000000000000000000000a8e1aed437f83898784fdc5c0256412f10be33aea00000000000000000000000000000000000000000000000000933fdfa19f16741f879947eec7a4e6ab3cce23ccc41b8601282716b9eadf4e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b840000000000000000000000000000000000000000000149e7925446f8bba33b4c30000000000000000000000000000000000000000000000043a56648452b721ecf8fc947eec7a4e6ab3cce23ccc41b8601282716b9eadf4f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a0000000000000000000000000a8e1aed437f83898784fdc5c0256412f10be33aea0000000000000000000000000a8e1aed437f83898784fdc5c0256412f10be33aeb880000000000000000000000000000000000000000000002ca31a0ec03f1751ea53000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000933fdfa19f16741f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000a8e1aed437f83898784fdc5c0256412f10be33aea000000000000000000000000019c1f6c7468ad4076b05a5f79e3ee80ce0064718a0000000000000000000000000000000000000000000000000091274ab1150e32df9011c9419c1f6c7468ad4076b05a5f79e3ee80ce0064718f863a0c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67a0000000000000000000000000a8e1aed437f83898784fdc5c0256412f10be33aea0000000000000000000000000a8e1aed437f83898784fdc5c0256412f10be33aeb8a0ffffffffffffffffffffffffffffffffffffffffffffd35ce5f13fc0e8ae15ad000000000000000000000000000000000000000000000000091274ab1150e32d000000000000000000000000000000000000000000732b6a85939087a9dedbe5000000000000000000000000000000000000000000000d5323c032a1f933762dfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe105af87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65a0000000000000000000000000a8e1aed437f83898784fdc5c0256412f10be33aea00000000000000000000000000000000000000000000000000021894f08a08414", + "gas_used": 257457 + } + }, + { + "traces": { + "0x1f7a48af45678548f6f001a462972e85d619277e": { + "balance": "0x1759ef74d6e21168", + "nonce": "0x1" + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1964ab431ad89f28b" + }, + "0xaf14c620e5c60082365eebdcdb0674eba5a94d8f": { + "storage_read": [ + "0x00000000000000000000000000000000000000000000003602298b8c10b01230" + ], + "code_usage": { + "read": "0xfd71fa7b1d1a995e1cc15885c7cd8e8fbc3b72f80daad4b33c86a05a47e819f9" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298697ea582f1d5f03c8c", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0x1a30329192d6c0ed7f09569d92e56a02620bb5e92457635aeda9144f08296d6b" + ], + "storage_written": { + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0", + "0x1a30329192d6c0ed7f09569d92e56a02620bb5e92457635aeda9144f08296d6b": "0xfdf6a90adda60000" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xbdec23af11083df0f90715de922dbebb9867c282": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de7000000000000fdf6a90adda60000000000000030dbe02d6c3afe253d", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x15d13798974d98a21cd5d50ce04d0", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0xee4c82e454939ebabe3a321c43088a8", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x3fc97c421de5d23e59b42d048857b149e2f1c08d": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000a20d6e21d0e5255308", + "0x2c435cd8d6ffc0e875d0f1c4d37932a3b154cf57b942dac3c71cb21a2089e24a", + "0x6da5d32030204d3002d181902e9473e3c6e8c58db228771d9507d649432bb726", + "0x28fb27bbd5088f48cee7ef943ac381c3625598beb5a1b11efd7059a076e4838f", + "0xb98c1497aa699ab2cb9851bbfe4c4743aa8e6f2cbcdae67fe84e5aaf1c9c8e15", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x7f941a36b212e92f479b82e3031ff407367dac6ca3350ed51a9efb3c67f8a847", + "0x0056be2e2305443b7993caeb320e36a0d165d5fc801075df8857533dac4df652", + "0x270580d1f897578be2d4e05c9e5763e3fe07ac08a51643cca9bab11e3c37b93a", + "0x5903b494d8e43272fc300300a58a52500fe0b024471e93bc6835f1d297d5e715", + "0x2a3f1af2dda7131e5bd2b09ead77c60d620bdc9ecb4cb4bc6eeb66d7416f0708", + "0xde56b29e8494390fd23aaab2f21658ae31563bb2c7a20a59bb1b4963bf4ef740", + "0x0000000000000000000000000000000000000000000000a20d6e21d0e5255309", + "0x29a85ead4c41d7c628b2d76fdf2707bae15c8d6e6ea58ca2a40a1be36a843714", + "0xbc35ebbe263ba9e14071925daa54009312b496b496b2b0e3a4d190c12b7dfa9b" + ], + "storage_written": { + "0x2c435cd8d6ffc0e875d0f1c4d37932a3b154cf57b942dac3c71cb21a2089e24a": "0x2c0000002b0000002a000000290000002800000027", + "0x5903b494d8e43272fc300300a58a52500fe0b024471e93bc6835f1d297d5e715": "0x400000003000000030000000300000002000000030000000100000003", + "0xde56b29e8494390fd23aaab2f21658ae31563bb2c7a20a59bb1b4963bf4ef740": "0x260000002500000024000000230000002200000021000000200000001f", + "0xbc35ebbe263ba9e14071925daa54009312b496b496b2b0e3a4d190c12b7dfa9b": "0x1f7a48af45678548f6f001a462972e85d619277e", + "0x6da5d32030204d3002d181902e9473e3c6e8c58db228771d9507d649432bb726": "0x30dbe02d6c3afe253d0000000000000000030000000000000000000000", + "0x0056be2e2305443b7993caeb320e36a0d165d5fc801075df8857533dac4df652": "0xc000000030000000b000000030000000a000000030000000900000003", + "0x7f941a36b212e92f479b82e3031ff407367dac6ca3350ed51a9efb3c67f8a847": "0x800000003000000070000000300000006000000030000000500000003", + "0x2a3f1af2dda7131e5bd2b09ead77c60d620bdc9ecb4cb4bc6eeb66d7416f0708": "0x3000000180000000200000017000000020000001600000002", + "0x0000000000000000000000000000000000000000000000a20d6e21d0e5255308": "0x3635c9adc5dea000000000002c0000002d00000003", + "0x270580d1f897578be2d4e05c9e5763e3fe07ac08a51643cca9bab11e3c37b93a": "0xcfd6d5e220809d0b0000000e00000003010000000000000000000000", + "0x28fb27bbd5088f48cee7ef943ac381c3625598beb5a1b11efd7059a076e4838f": "0xd00000003" + }, + "code_usage": { + "read": "0x2d8aab18b75e36229e225596157d99fcdd49eb323321d856540c4a0bab1f9bdd" + } + } + }, + "meta": { + "byte_code": "0x02f902fb0180850141dd76008508d8f9fc008308f50b943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad880429d069189e0000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf602700000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000429d069189e0000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000429d069189e00000000000000000000000000000000000000000000000000009b1a97f8fd825e4500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000003fc97c421de5d23e59b42d048857b149e2f1c08dc001a028d0c3441d0a2a029d9029ab37688de9c927e18c217d1e5386ba45de293cca4ea05a1fe20cb85c48c58bb0bb8a765568ec96da606152084634071520a6548a72a4", + "new_txn_trie_node_byte": "0x02f902fb0180850141dd76008508d8f9fc008308f50b943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad880429d069189e0000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf602700000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000429d069189e0000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000429d069189e00000000000000000000000000000000000000000000000000009b1a97f8fd825e4500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000003fc97c421de5d23e59b42d048857b149e2f1c08dc001a028d0c3441d0a2a029d9029ab37688de9c927e18c217d1e5386ba45de293cca4ea05a1fe20cb85c48c58bb0bb8a765568ec96da606152084634071520a6548a72a4", + "new_receipt_trie_node_byte": "0xb90ce202f90cde0183130e36b9010000200100000000000000000480008000000000000000000000000000000000020002000802004000000000000000200002000020080001800000000000000000000000080100000000800008000000200801000000000000000000008020000001000000020840000000000100000800000000000000040000000010044000000000020000000000000000000008000010000001000200080010004000011000000580000102000000000002000000000000000800000000000002040001000000000002000000100000000000000000080020000000001800000008000020188200600000000000100000100020000008001000000000400100000002000000f90bd3f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000000000000000000000000000000429d069189e0000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000bdec23af11083df0f90715de922dbebb9867c282a00000000000000000000000000000000000000000000000000429d069189e0000f89c94af14c620e5c60082365eebdcdb0674eba5a94d8ff884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001f7a48af45678548f6f001a462972e85d619277ea0000000000000000000000000000000000000000000000000000000000000001f80f89c94af14c620e5c60082365eebdcdb0674eba5a94d8ff884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001f7a48af45678548f6f001a462972e85d619277ea0000000000000000000000000000000000000000000000000000000000000002080f89c94af14c620e5c60082365eebdcdb0674eba5a94d8ff884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001f7a48af45678548f6f001a462972e85d619277ea0000000000000000000000000000000000000000000000000000000000000002180f89c94af14c620e5c60082365eebdcdb0674eba5a94d8ff884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001f7a48af45678548f6f001a462972e85d619277ea0000000000000000000000000000000000000000000000000000000000000002280f89c94af14c620e5c60082365eebdcdb0674eba5a94d8ff884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001f7a48af45678548f6f001a462972e85d619277ea0000000000000000000000000000000000000000000000000000000000000002380f89c94af14c620e5c60082365eebdcdb0674eba5a94d8ff884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001f7a48af45678548f6f001a462972e85d619277ea0000000000000000000000000000000000000000000000000000000000000002480f89c94af14c620e5c60082365eebdcdb0674eba5a94d8ff884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001f7a48af45678548f6f001a462972e85d619277ea0000000000000000000000000000000000000000000000000000000000000002580f89c94af14c620e5c60082365eebdcdb0674eba5a94d8ff884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001f7a48af45678548f6f001a462972e85d619277ea0000000000000000000000000000000000000000000000000000000000000002680f89c94af14c620e5c60082365eebdcdb0674eba5a94d8ff884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001f7a48af45678548f6f001a462972e85d619277ea0000000000000000000000000000000000000000000000000000000000000002780f89c94af14c620e5c60082365eebdcdb0674eba5a94d8ff884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001f7a48af45678548f6f001a462972e85d619277ea0000000000000000000000000000000000000000000000000000000000000002880f89c94af14c620e5c60082365eebdcdb0674eba5a94d8ff884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001f7a48af45678548f6f001a462972e85d619277ea0000000000000000000000000000000000000000000000000000000000000002980f89c94af14c620e5c60082365eebdcdb0674eba5a94d8ff884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001f7a48af45678548f6f001a462972e85d619277ea0000000000000000000000000000000000000000000000000000000000000002a80f89c94af14c620e5c60082365eebdcdb0674eba5a94d8ff884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001f7a48af45678548f6f001a462972e85d619277ea0000000000000000000000000000000000000000000000000000000000000002b80f89c94af14c620e5c60082365eebdcdb0674eba5a94d8ff884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001f7a48af45678548f6f001a462972e85d619277ea0000000000000000000000000000000000000000000000000000000000000002c80f89b943fc97c421de5d23e59b42d048857b149e2f1c08df863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000bdec23af11083df0f90715de922dbebb9867c282a00000000000000000000000001f7a48af45678548f6f001a462972e85d619277ea0000000000000000000000000000000000000000000000000cfd6d5e220809d0bf87994bdec23af11083df0f90715de922dbebb9867c282e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b840000000000000000000000000000000000000000000000030dbe02d6c3afe253d000000000000000000000000000000000000000000000000fdf6a90adda60000f8fc94bdec23af11083df0f90715de922dbebb9867c282f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000001f7a48af45678548f6f001a462972e85d619277eb88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000429d069189e0000000000000000000000000000000000000000000000000000cfd6d5e220809d0b0000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 357432 + } + }, + { + "traces": { + "0xdbcefa5bad25cba5d15ec4633728c31b3764f15f": { + "balance": "0x11efca43db73a74b7", + "nonce": "0x52f" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1964b8843f695988b" + }, + "0x1596f7f7a0c495daf141376321d3ecac66a10a42": { + "storage_written": { + "0x66f367c07ecc473a2c4ef119b611ad50d1d1821e255d926c28c5fec55fe32d6e": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + "code_usage": { + "read": "0x03214f95572629deb809eeacaa5480d51ea4f8b5dbe419d3dc489f0096e9b166" + } + } + }, + "meta": { + "byte_code": "0x02f8b30182052e85012a05f200850a2cf84c6782dc66941596f7f7a0c495daf141376321d3ecac66a10a4280b844095ea7b300000000000000000000000080a64c6d7f12c47b7c66c5b4e20e72bc1fcd5d9effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001a068de1d13ad983e0094a3674515fde7db7c356fe25f856dcc871812fe95c3b069a00b84acc54fbf2ed8c56a78b85e8d2214f3c3d985b03c3c86aa31f5d97e44a625", + "new_txn_trie_node_byte": "0x02f8b30182052e85012a05f200850a2cf84c6782dc66941596f7f7a0c495daf141376321d3ecac66a10a4280b844095ea7b300000000000000000000000080a64c6d7f12c47b7c66c5b4e20e72bc1fcd5d9effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001a068de1d13ad983e0094a3674515fde7db7c356fe25f856dcc871812fe95c3b069a00b84acc54fbf2ed8c56a78b85e8d2214f3c3d985b03c3c86aa31f5d97e44a625", + "new_receipt_trie_node_byte": "0xb901ab02f901a7018313c461b9010000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000210000000000000000000000000001000000000000000100000000000000000000000000000000000004000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000f89df89b941596f7f7a0c495daf141376321d3ecac66a10a42f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000dbcefa5bad25cba5d15ec4633728c31b3764f15fa000000000000000000000000080a64c6d7f12c47b7c66c5b4e20e72bc1fcd5d9ea0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "gas_used": 46635 + } + }, + { + "traces": { + "0x4a259f69df6114ca3b4d380bda77852a8831c93d": { + "balance": "0x4520cde35b69be0d8" + }, + "0x23d6105ae6007620ccc3da63438a628705e72f9d": { + "balance": "0x0", + "nonce": "0x1" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1964bdf6649abed53" + } + }, + "meta": { + "byte_code": "0xf86a8085082eb289ae825208944a259f69df6114ca3b4d380bda77852a8831c93d86097c6c71ec008026a0adcf70b047b923c2667f4feed5679027d55b8ccd261add703feee16a270ae977a00e27382ea26d1230162f1718ab4c2f8e62114f9d4c5b662b179da809e589cf0f", + "new_txn_trie_node_byte": "0xf86a8085082eb289ae825208944a259f69df6114ca3b4d380bda77852a8831c93d86097c6c71ec008026a0adcf70b047b923c2667f4feed5679027d55b8ccd261add703feee16a270ae977a00e27382ea26d1230162f1718ab4c2f8e62114f9d4c5b662b179da809e589cf0f", + "new_receipt_trie_node_byte": "0xf901090183141669b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x0000000000000000000000000000000000000004": {}, + "0xa88800cd213da5ae406ce248380802bd53b47647": { + "code_usage": { + "read": "0x665fffcd3ff12e50bbb854f4365a4a890285283a721eb7e92392d18496b74810" + } + }, + "0xb2db04ae40686c2dd2b4baf43a6c489c963a1ac4": { + "code_usage": { + "read": "0x7ded065ce53b01e1651189e60ecf6bcad18d933a81a806d55efaa1d44ba951f2" + } + }, + "0x0f2e5e488daa815361ada55ef816b47679918897": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x9b637a02e6f8cc8aa1e3935c0b27bde663b11428c7707039634076a3fb8a0c48", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x100000100010000feca30000000000000000004da99a2d44054e96047f83e", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x10000000000000000000002e570f85cfd278161c7fffff6fcdffdd465cf5de7", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x2340fc12d101c7ff4e1b716d5d44db" + }, + "code_usage": { + "read": "0xf764c26dbfda68a0c61e61c824a1af128e0305732a94e063d7eb1ff0674bd51b" + } + }, + "0x40a7df3df8b56147b781353d379cb960120211d7": { + "storage_read": [ + "0x64d0c5154ac7b97908173f4f9e590bb3a239badaf69a41e455901913da5ee5c4", + "0x3e92a736dee2ee35f458179fd82b9ac6fefb1f24af328d36be257285d737dee1", + "0xdb3d17f07f47216c0bee4f7081c552301e4a33937d7e29d92648d5c4424853e7", + "0x67bb6c1b142f7f1600906681a6e025fa088c7979a81b24dc79036b9fb5b4f7d7" + ], + "storage_written": { + "0x64d0c5154ac7b97908173f4f9e590bb3a239badaf69a41e455901913da5ee5c4": "0x441bf88c05ef97b5134", + "0x3e92a736dee2ee35f458179fd82b9ac6fefb1f24af328d36be257285d737dee1": "0x115a4d2d1f9160906c2bd", + "0x67bb6c1b142f7f1600906681a6e025fa088c7979a81b24dc79036b9fb5b4f7d7": "0x0", + "0xdb3d17f07f47216c0bee4f7081c552301e4a33937d7e29d92648d5c4424853e7": "0x0" + }, + "code_usage": { + "read": "0xaaf60c688a03a51a2009937d38dfa091d905d45e39f341d15595e6286ee431f3" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "storage_read": [ + "0xc9af6aefffd5e5d2426dcaa144fe8c4c21405ea9b0a1992d78cdad466644e16b", + "0xd301b32e681a09a389e9b843e278a0fefad7cb46c25374a48318d46c1b8149b2", + "0xcd76ee9aadff9d14e9960ceaf8373cca1b07a2c161123d9efd7ccb7dc802ab57", + "0xb9253327d76f9c54c640ef3f8c33cfc220313901d84879682aef542b78199239", + "0x0a8949e6285823b29ad4f43df8eee18cf7cdfca8111fa66cecc58fbdc183d28b", + "0x6fc2e158f629ea89d8404cb3caee9d08fb778c55c53f0df7dc977812d2faddfc", + "0x8e5b2a61cc204bcbc6dd90838acd043dacc0c8b6a5f27d03248563707f801f7f", + "0x1adc840dbab569377bb47e50958d7c760e4c4b63a6b7459aaa3c0d00822296c1" + ], + "storage_written": { + "0xcd76ee9aadff9d14e9960ceaf8373cca1b07a2c161123d9efd7ccb7dc802ab57": "0x2b3eb73128e0c181b", + "0x6fc2e158f629ea89d8404cb3caee9d08fb778c55c53f0df7dc977812d2faddfc": "0x68c539902a0be101", + "0xd301b32e681a09a389e9b843e278a0fefad7cb46c25374a48318d46c1b8149b2": "0x2711dc54f637c326", + "0x1adc840dbab569377bb47e50958d7c760e4c4b63a6b7459aaa3c0d00822296c1": "0x0", + "0x0a8949e6285823b29ad4f43df8eee18cf7cdfca8111fa66cecc58fbdc183d28b": "0x191beacb40d4f25545", + "0xc9af6aefffd5e5d2426dcaa144fe8c4c21405ea9b0a1992d78cdad466644e16b": "0x22fd7317d62c997058" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xd1742b3c4fbb096990c8950fa635aec75b30781a": { + "balance": "0x8f223", + "code_usage": { + "read": "0x0e52ad06c0b81dd7240cf0c474542ea16a61afab724443422cf2f61832eef028" + } + }, + "0x61eb53ee427ab4e007d78a9134aacb3101a2dc23": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de7000000000022fd7317d62c9970580000000029d2da724974b1271bb9", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x62cb3968d8d43b6dbba6692c6d82d578f", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x74f173ca828d636490f0c1e6b4adaa72c8c12" + }, + "code_usage": { + "read": "0xcd82e2d9daddbf51cbce8d5429a0996e16fc670c4056566f19cf8864ad45a746" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19652a9b1d2ceefc5" + }, + "0x1111111254eeb25477b68fb85ed929f73a960582": { + "storage_read": [ + "0xad3860071535709784a6bdf513b6c33ef5259e3b0b3c77a39667fead4968c656", + "0x8f26ad84a683e7de364c7a5a3626a37c9e6c093c9ebaaaa1289d8aba75181c17", + "0x75de7d85efa3f1f4f62826ed0773d9933a0710b713ce5f2256a812c7775d7269" + ], + "storage_written": { + "0x75de7d85efa3f1f4f62826ed0773d9933a0710b713ce5f2256a812c7775d7269": "0x1b69785cb345326f", + "0xad3860071535709784a6bdf513b6c33ef5259e3b0b3c77a39667fead4968c656": "0x1" + }, + "code_usage": { + "read": "0xb21184893bb5b89a85468883070702045d9821b62ea3b28d3e84d89ab84fd23e" + } + }, + "0xd267fda7ecbe322e64bf807de06e8e2284b72da9": { + "balance": "0x3d43bc5716d9e6ab", + "nonce": "0x8285" + }, + "0x3432b6a60d23ca0dfca7761b7ab56459d9c964d0": { + "storage_read": [ + "0x47b6366d31626cd114763f86166326b538da0d079c9999a6fb969934e41727ec", + "0x16994389930456e4552bdb14b42015803ec45e760548b6d7da188915ac51b537", + "0xdb3d17f07f47216c0bee4f7081c552301e4a33937d7e29d92648d5c4424853e7", + "0xc12caead02d6a655cbcdf1bd28c043fc2b9383c354ee5aed422e2af1c420c434", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x67bb6c1b142f7f1600906681a6e025fa088c7979a81b24dc79036b9fb5b4f7d7", + "0x341beac9f70cc41030c8a716f605d7cc7cd9d23848048abe1c49271f95698da8", + "0xf60d9ef5875315591603ae7ef5601429b6a5c43799fd2d14651535f1a733f231", + "0xd60ccb6330731189e408f52ddb288e5428e9b3368aa88c72e9d51932e610e97e", + "0x6efb2bbec75db596d199e742b6e19327b07a9343e87d1b6b3ff742403eb72732", + "0x321b3ebf1f3d1a72e74ee863fcea9f207ada9617e6f5426586e6925e11a14b3e", + "0x55000bfb64a24c20a3d4af0c3e4c696a98e3023b48aed1eadee306fd88552dcc", + "0x3d1bb2fdc5f8e28d7f74669ea0baf6a1b5981c3b6665cd7e1dcf48e3bc7c8513", + "0x37292fb088dfb7d5592f9443343b868e577b6ee5dcbea249988cbf9a0feff9b2" + ], + "storage_written": { + "0xf60d9ef5875315591603ae7ef5601429b6a5c43799fd2d14651535f1a733f231": "0x29d2da724974b1271bb9", + "0x341beac9f70cc41030c8a716f605d7cc7cd9d23848048abe1c49271f95698da8": "0xde19", + "0xd60ccb6330731189e408f52ddb288e5428e9b3368aa88c72e9d51932e610e97e": "0x231fdbd8ac1a2f4c936", + "0x67bb6c1b142f7f1600906681a6e025fa088c7979a81b24dc79036b9fb5b4f7d7": "0x0", + "0x16994389930456e4552bdb14b42015803ec45e760548b6d7da188915ac51b537": "0x10a867792c012596ca", + "0x55000bfb64a24c20a3d4af0c3e4c696a98e3023b48aed1eadee306fd88552dcc": "0x8b0", + "0x3d1bb2fdc5f8e28d7f74669ea0baf6a1b5981c3b6665cd7e1dcf48e3bc7c8513": "0x29d2da724974b1271bb9012596ca", + "0xc12caead02d6a655cbcdf1bd28c043fc2b9383c354ee5aed422e2af1c420c434": "0x231fdbd8ac1a2f4c936012596ca", + "0x37292fb088dfb7d5592f9443343b868e577b6ee5dcbea249988cbf9a0feff9b2": "0x36", + "0xdb3d17f07f47216c0bee4f7081c552301e4a33937d7e29d92648d5c4424853e7": "0x10a867792c" + }, + "code_usage": { + "read": "0xf19bbd7bc6a4a6c7edd6bf1542de2491e76935de8e52f8420c3dfc207ad27bdf" + } + }, + "0x5e92d4021e49f9a2967b4ea1d20213b3a1c7c912": { + "code_usage": { + "read": "0xd8d76ca95e505696e3a1f8b7a5c9a8de88e0097348e28fd777b81207430bf4f2" + } + }, + "0x0000000000000000000000000000000000000001": {} + }, + "meta": { + "byte_code": "0x02f910260182828485082a7e626785082a7e6267830870d994d1742b3c4fbb096990c8950fa635aec75b30781a4db909f104000204650585020965d04b0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000003800000000000000000000000000000000000000000000000001bc16d674ec800000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000020dc9585caac43870e000000000000000000000000b2db04ae40686c2dd2b4baf43a6c489c963a1ac465cf5d8700016801a01200000000000000000000000000000000009da30bf74c000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000003432b6a60d23ca0dfca7761b7ab56459d9c964d000000000000000000000000044bdb19db1cd29d546597af7dc0549e7f6f9e4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a88800cd213da5ae406ce248380802bd53b476470000000000000000000000000000000000000000000000001bc16d674ec80000000000000000000000000000000000000000000000000020dc9585caac43870e0000002400000024000000240000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000db2cc2878d000065cf5ef700000000000044bdb19db1cd29d546597af7dc0549e7f6f9e480001800c53200240178a1000000000b8a49d816cc709b6eadb09498030ae3416b66dc00000000874d26f8f5dd55ee1a4167c49965b991c1c9530a00000000d1742b3c4fbb096990c8950fa635aec75b30781a00000000ad3b67bca8935cb510c8d18bd45f0b94f54a968f000000008571c129f335832f6bbc76d49414ad2b8371a42200000000f14f17989790a2116fc0a59ca88d5813e693528f00000000d14699b6b02e900a5c2338700d5181a674fdb9a2ffffffff3a00000000000000000000000000000000000000000000000000000000000000000000000040ae1cf451cf9b7c98c4fc83ef7839668a1eb49f190be2d5bf7ff3608178c320467cbe4a9788b41b13353c96a35077e99b2919a19e64b69d48883b928dd5e9be750000000000000000000000000000000000000000000000000000000000000064a88800cd213da5ae406ce248380802bd53b4764701b2db04ae40686c2dd2b4baf43a6c489c963a1ac4050161eb53ee427ab4e007d78a9134aacb3101a2dc2300c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000212e278ee78bce00000000000000000000000000000000000000000000000000000000020965d04b0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000054000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000001459a9e53577f3a100000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000dc394a3dc902721926000000000000000000000000b2db04ae40686c2dd2b4baf43a6c489c963a1ac465cf5c970001680236d90000000000000000cb9edc8fbef0eb235ef0c405125c000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000040a7df3df8b56147b781353d379cb960120211d70000000000000000000000004507fb0190f21c2dabf7cf9c08962ed8e5b174310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a88800cd213da5ae406ce248380802bd53b476470000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000002eee79313d3f432f9310000012400000124000001240000012400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001efbfa75143000000000000000000000000000000000000000000000000000000a800000024000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a863592c2b0000000000000000000000000000000000000000000000000000000065cf5e02bf15fcd80000000000000000000000005e92d4021e49f9a2967b4ea1d20213b3a1c7c912000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000040202470800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006c001fef003000635e0030008eeb003000f80c00300161be003001cc02000000000b8a49d816cc709b6eadb09498030ae3416b66dc00000000874d26f8f5dd55ee1a4167c49965b991c1c9530a00000000d1742b3c4fbb096990c8950fa635aec75b30781a00000000ad3b67bca8935cb510c8d18bd45f0b94f54a968f000000008571c129f335832f6bbc76d49414ad2b8371a42200000000f14f17989790a2116fc0a59ca88d5813e693528f00000000d14699b6b02e900a5c2338700d5181a674fdb9a2ffffffff3e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040e5b7c8ebe1603834cc79b2a6ebf15b8027b780c23bc080a50364c6c7c353d85500c310bdbcce27cfb2502e432958026a9da01e5a5e34e2fa377f1c69f61921a90000000000000000000000000000000000000000000000000000000000000068a88800cd213da5ae406ce248380802bd53b4764701b2db04ae40686c2dd2b4baf43a6c489c963a1ac40601c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000bb80140a7df3df8b56147b781353d379cb960120211d70000000000000000001663b98d475eaa000000000000000000000000000000000000000000000000f905c2f901e6943432b6a60d23ca0dfca7761b7ab56459d9c964d0f901cea0321b3ebf1f3d1a72e74ee863fcea9f207ada9617e6f5426586e6925e11a14b3ea0341beac9f70cc41030c8a716f605d7cc7cd9d23848048abe1c49271f95698da8a047b6366d31626cd114763f86166326b538da0d079c9999a6fb969934e41727eca055000bfb64a24c20a3d4af0c3e4c696a98e3023b48aed1eadee306fd88552dcca016994389930456e4552bdb14b42015803ec45e760548b6d7da188915ac51b537a0db3d17f07f47216c0bee4f7081c552301e4a33937d7e29d92648d5c4424853e7a0000000000000000000000000000000000000000000000000000000000000000ba03d1bb2fdc5f8e28d7f74669ea0baf6a1b5981c3b6665cd7e1dcf48e3bc7c8513a067bb6c1b142f7f1600906681a6e025fa088c7979a81b24dc79036b9fb5b4f7d7a0f60d9ef5875315591603ae7ef5601429b6a5c43799fd2d14651535f1a733f231a0d60ccb6330731189e408f52ddb288e5428e9b3368aa88c72e9d51932e610e97ea06efb2bbec75db596d199e742b6e19327b07a9343e87d1b6b3ff742403eb72732a037292fb088dfb7d5592f9443343b868e577b6ee5dcbea249988cbf9a0feff9b2a0c12caead02d6a655cbcdf1bd28c043fc2b9383c354ee5aed422e2af1c420c434f89b9440a7df3df8b56147b781353d379cb960120211d7f884a064d0c5154ac7b97908173f4f9e590bb3a239badaf69a41e455901913da5ee5c4a03e92a736dee2ee35f458179fd82b9ac6fefb1f24af328d36be257285d737dee1a0db3d17f07f47216c0bee4f7081c552301e4a33937d7e29d92648d5c4424853e7a067bb6c1b142f7f1600906681a6e025fa088c7979a81b24dc79036b9fb5b4f7d7f9012094c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f90108a06fc2e158f629ea89d8404cb3caee9d08fb778c55c53f0df7dc977812d2faddfca08e5b2a61cc204bcbc6dd90838acd043dacc0c8b6a5f27d03248563707f801f7fa01adc840dbab569377bb47e50958d7c760e4c4b63a6b7459aaa3c0d00822296c1a0c9af6aefffd5e5d2426dcaa144fe8c4c21405ea9b0a1992d78cdad466644e16ba0d301b32e681a09a389e9b843e278a0fefad7cb46c25374a48318d46c1b8149b2a0cd76ee9aadff9d14e9960ceaf8373cca1b07a2c161123d9efd7ccb7dc802ab57a0b9253327d76f9c54c640ef3f8c33cfc220313901d84879682aef542b78199239a00a8949e6285823b29ad4f43df8eee18cf7cdfca8111fa66cecc58fbdc183d28bf87a941111111254eeb25477b68fb85ed929f73a960582f863a0ad3860071535709784a6bdf513b6c33ef5259e3b0b3c77a39667fead4968c656a08f26ad84a683e7de364c7a5a3626a37c9e6c093c9ebaaaa1289d8aba75181c17a075de7d85efa3f1f4f62826ed0773d9933a0710b713ce5f2256a812c7775d7269f8dd9461eb53ee427ab4e007d78a9134aacb3101a2dc23f8c6a00000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000009a0000000000000000000000000000000000000000000000000000000000000000aa00000000000000000000000000000000000000000000000000000000000000008a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000006f8bc940f2e5e488daa815361ada55ef816b47679918897f8a5a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000002a09b637a02e6f8cc8aa1e3935c0b27bde663b11428c7707039634076a3fb8a0c48a0000000000000000000000000000000000000000000000000000000000000000801a012bb7663f8483192d36317bd7aadb0b2318368fc402fa04fdfe040668b31a667a0322b7f50920a5707c7765b11ac47641df28c9b851d28ad3b7c360415cbe83901", + "new_txn_trie_node_byte": "0x02f910260182828485082a7e626785082a7e6267830870d994d1742b3c4fbb096990c8950fa635aec75b30781a4db909f104000204650585020965d04b0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000003800000000000000000000000000000000000000000000000001bc16d674ec800000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000020dc9585caac43870e000000000000000000000000b2db04ae40686c2dd2b4baf43a6c489c963a1ac465cf5d8700016801a01200000000000000000000000000000000009da30bf74c000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000003432b6a60d23ca0dfca7761b7ab56459d9c964d000000000000000000000000044bdb19db1cd29d546597af7dc0549e7f6f9e4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a88800cd213da5ae406ce248380802bd53b476470000000000000000000000000000000000000000000000001bc16d674ec80000000000000000000000000000000000000000000000000020dc9585caac43870e0000002400000024000000240000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000db2cc2878d000065cf5ef700000000000044bdb19db1cd29d546597af7dc0549e7f6f9e480001800c53200240178a1000000000b8a49d816cc709b6eadb09498030ae3416b66dc00000000874d26f8f5dd55ee1a4167c49965b991c1c9530a00000000d1742b3c4fbb096990c8950fa635aec75b30781a00000000ad3b67bca8935cb510c8d18bd45f0b94f54a968f000000008571c129f335832f6bbc76d49414ad2b8371a42200000000f14f17989790a2116fc0a59ca88d5813e693528f00000000d14699b6b02e900a5c2338700d5181a674fdb9a2ffffffff3a00000000000000000000000000000000000000000000000000000000000000000000000040ae1cf451cf9b7c98c4fc83ef7839668a1eb49f190be2d5bf7ff3608178c320467cbe4a9788b41b13353c96a35077e99b2919a19e64b69d48883b928dd5e9be750000000000000000000000000000000000000000000000000000000000000064a88800cd213da5ae406ce248380802bd53b4764701b2db04ae40686c2dd2b4baf43a6c489c963a1ac4050161eb53ee427ab4e007d78a9134aacb3101a2dc2300c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000212e278ee78bce00000000000000000000000000000000000000000000000000000000020965d04b0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000054000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000001459a9e53577f3a100000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000dc394a3dc902721926000000000000000000000000b2db04ae40686c2dd2b4baf43a6c489c963a1ac465cf5c970001680236d90000000000000000cb9edc8fbef0eb235ef0c405125c000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000040a7df3df8b56147b781353d379cb960120211d70000000000000000000000004507fb0190f21c2dabf7cf9c08962ed8e5b174310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a88800cd213da5ae406ce248380802bd53b476470000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000002eee79313d3f432f9310000012400000124000001240000012400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001efbfa75143000000000000000000000000000000000000000000000000000000a800000024000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a863592c2b0000000000000000000000000000000000000000000000000000000065cf5e02bf15fcd80000000000000000000000005e92d4021e49f9a2967b4ea1d20213b3a1c7c912000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000040202470800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006c001fef003000635e0030008eeb003000f80c00300161be003001cc02000000000b8a49d816cc709b6eadb09498030ae3416b66dc00000000874d26f8f5dd55ee1a4167c49965b991c1c9530a00000000d1742b3c4fbb096990c8950fa635aec75b30781a00000000ad3b67bca8935cb510c8d18bd45f0b94f54a968f000000008571c129f335832f6bbc76d49414ad2b8371a42200000000f14f17989790a2116fc0a59ca88d5813e693528f00000000d14699b6b02e900a5c2338700d5181a674fdb9a2ffffffff3e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040e5b7c8ebe1603834cc79b2a6ebf15b8027b780c23bc080a50364c6c7c353d85500c310bdbcce27cfb2502e432958026a9da01e5a5e34e2fa377f1c69f61921a90000000000000000000000000000000000000000000000000000000000000068a88800cd213da5ae406ce248380802bd53b4764701b2db04ae40686c2dd2b4baf43a6c489c963a1ac40601c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000bb80140a7df3df8b56147b781353d379cb960120211d70000000000000000001663b98d475eaa000000000000000000000000000000000000000000000000f905c2f901e6943432b6a60d23ca0dfca7761b7ab56459d9c964d0f901cea0321b3ebf1f3d1a72e74ee863fcea9f207ada9617e6f5426586e6925e11a14b3ea0341beac9f70cc41030c8a716f605d7cc7cd9d23848048abe1c49271f95698da8a047b6366d31626cd114763f86166326b538da0d079c9999a6fb969934e41727eca055000bfb64a24c20a3d4af0c3e4c696a98e3023b48aed1eadee306fd88552dcca016994389930456e4552bdb14b42015803ec45e760548b6d7da188915ac51b537a0db3d17f07f47216c0bee4f7081c552301e4a33937d7e29d92648d5c4424853e7a0000000000000000000000000000000000000000000000000000000000000000ba03d1bb2fdc5f8e28d7f74669ea0baf6a1b5981c3b6665cd7e1dcf48e3bc7c8513a067bb6c1b142f7f1600906681a6e025fa088c7979a81b24dc79036b9fb5b4f7d7a0f60d9ef5875315591603ae7ef5601429b6a5c43799fd2d14651535f1a733f231a0d60ccb6330731189e408f52ddb288e5428e9b3368aa88c72e9d51932e610e97ea06efb2bbec75db596d199e742b6e19327b07a9343e87d1b6b3ff742403eb72732a037292fb088dfb7d5592f9443343b868e577b6ee5dcbea249988cbf9a0feff9b2a0c12caead02d6a655cbcdf1bd28c043fc2b9383c354ee5aed422e2af1c420c434f89b9440a7df3df8b56147b781353d379cb960120211d7f884a064d0c5154ac7b97908173f4f9e590bb3a239badaf69a41e455901913da5ee5c4a03e92a736dee2ee35f458179fd82b9ac6fefb1f24af328d36be257285d737dee1a0db3d17f07f47216c0bee4f7081c552301e4a33937d7e29d92648d5c4424853e7a067bb6c1b142f7f1600906681a6e025fa088c7979a81b24dc79036b9fb5b4f7d7f9012094c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f90108a06fc2e158f629ea89d8404cb3caee9d08fb778c55c53f0df7dc977812d2faddfca08e5b2a61cc204bcbc6dd90838acd043dacc0c8b6a5f27d03248563707f801f7fa01adc840dbab569377bb47e50958d7c760e4c4b63a6b7459aaa3c0d00822296c1a0c9af6aefffd5e5d2426dcaa144fe8c4c21405ea9b0a1992d78cdad466644e16ba0d301b32e681a09a389e9b843e278a0fefad7cb46c25374a48318d46c1b8149b2a0cd76ee9aadff9d14e9960ceaf8373cca1b07a2c161123d9efd7ccb7dc802ab57a0b9253327d76f9c54c640ef3f8c33cfc220313901d84879682aef542b78199239a00a8949e6285823b29ad4f43df8eee18cf7cdfca8111fa66cecc58fbdc183d28bf87a941111111254eeb25477b68fb85ed929f73a960582f863a0ad3860071535709784a6bdf513b6c33ef5259e3b0b3c77a39667fead4968c656a08f26ad84a683e7de364c7a5a3626a37c9e6c093c9ebaaaa1289d8aba75181c17a075de7d85efa3f1f4f62826ed0773d9933a0710b713ce5f2256a812c7775d7269f8dd9461eb53ee427ab4e007d78a9134aacb3101a2dc23f8c6a00000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000009a0000000000000000000000000000000000000000000000000000000000000000aa00000000000000000000000000000000000000000000000000000000000000008a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000006f8bc940f2e5e488daa815361ada55ef816b47679918897f8a5a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000002a09b637a02e6f8cc8aa1e3935c0b27bde663b11428c7707039634076a3fb8a0c48a0000000000000000000000000000000000000000000000000000000000000000801a012bb7663f8483192d36317bd7aadb0b2318368fc402fa04fdfe040668b31a667a0322b7f50920a5707c7765b11ac47641df28c9b851d28ad3b7c360415cbe83901", + "new_receipt_trie_node_byte": "0xb90f4e02f90f4a01831a949ab9010020208000000000000000000080400000000000000000000000001000000004000000004100104000000000000800000002000000080020000080000000200800000010000000080800000008000000200010000000000000000002408000000000000000000000000000000000000000000000800000000010000050000800000000000000000000400000004000800000000000000000490001004000000000020000000000000000100000000004000000000000000004000100000000000000000002000000000050000000000000000004003000001000000000000000400012280000800000020400000000040000020000000100000000000000000000f90e3ff89b941111111254eeb25477b68fb85ed929f73a960582f842a0b9ed0243fdf00f0545c63a0af8850c090d86bb46682baec4bf3c496814fe4f02a000000000000000000000000044bdb19db1cd29d546597af7dc0549e7f6f9e480b840894db5a113faefd9e841fbe62aa4b232d45cbea0ed7e814b6af3e936bd0ba91d0000000000000000000000000000000000000000000000000000000000000000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000044bdb19db1cd29d546597af7dc0549e7f6f9e480a0000000000000000000000000b2db04ae40686c2dd2b4baf43a6c489c963a1ac4a00000000000000000000000000000000000000000000000001bc16d674ec80000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000b2db04ae40686c2dd2b4baf43a6c489c963a1ac4a000000000000000000000000061eb53ee427ab4e007d78a9134aacb3101a2dc23a00000000000000000000000000000000000000000000000001b9cb93704862a72f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000b2db04ae40686c2dd2b4baf43a6c489c963a1ac4a0000000000000000000000000d1742b3c4fbb096990c8950fa635aec75b30781aa00000000000000000000000000000000000000000000000000024b4304a41d58ef89b943432b6a60d23ca0dfca7761b7ab56459d9c964d0f842a03eaa1c4be29b4a4c60e00300b5a17a8ec6c982b5b0ad5870cc84ebdc3b24d68ea000000000000000000000000061eb53ee427ab4e007d78a9134aacb3101a2dc23b8400000000000000000000000000000000000000000000029f3dc670eccd09637090000000000000000000000000000000000000000000029d2da724974b1271bb9f89b943432b6a60d23ca0dfca7761b7ab56459d9c964d0f842a03eaa1c4be29b4a4c60e00300b5a17a8ec6c982b5b0ad5870cc84ebdc3b24d68ea0000000000000000000000000a88800cd213da5ae406ce248380802bd53b47647b84000000000000000000000000000000000000000000000000000000010a867792c00000000000000000000000000000000000000000000002101f4c568c7d6947cf89b943432b6a60d23ca0dfca7761b7ab56459d9c964d0f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000061eb53ee427ab4e007d78a9134aacb3101a2dc23a0000000000000000000000000a88800cd213da5ae406ce248380802bd53b47647a000000000000000000000000000000000000000000000002101f4c5581f6f1b50f8799461eb53ee427ab4e007d78a9134aacb3101a2dc23e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000000000029d2da724974b1271bb9000000000000000000000000000000000000000000000022fd7317d62c997058f8fc9461eb53ee427ab4e007d78a9134aacb3101a2dc23f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a0000000000000000000000000b2db04ae40686c2dd2b4baf43a6c489c963a1ac4a0000000000000000000000000a88800cd213da5ae406ce248380802bd53b47647b88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b9cb93704862a7200000000000000000000000000000000000000000000002101f4c5581f6f1b500000000000000000000000000000000000000000000000000000000000000000f89b943432b6a60d23ca0dfca7761b7ab56459d9c964d0f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000a88800cd213da5ae406ce248380802bd53b47647a00000000000000000000000001111111254eeb25477b68fb85ed929f73a960582a000000000000000000000000000000000000000000000002101f4c5581f6f1b50f89b943432b6a60d23ca0dfca7761b7ab56459d9c964d0f842a03eaa1c4be29b4a4c60e00300b5a17a8ec6c982b5b0ad5870cc84ebdc3b24d68ea0000000000000000000000000a88800cd213da5ae406ce248380802bd53b47647b84000000000000000000000000000000000000000000000002101f4c568c7d6947c00000000000000000000000000000000000000000000000000000010a867792cf89b943432b6a60d23ca0dfca7761b7ab56459d9c964d0f842a03eaa1c4be29b4a4c60e00300b5a17a8ec6c982b5b0ad5870cc84ebdc3b24d68ea000000000000000000000000044bdb19db1cd29d546597af7dc0549e7f6f9e480b840000000000000000000000000000000000000000000000210fbc8c5698385ade6000000000000000000000000000000000000000000000231fdbd8ac1a2f4c936f89b943432b6a60d23ca0dfca7761b7ab56459d9c964d0f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000a88800cd213da5ae406ce248380802bd53b47647a000000000000000000000000044bdb19db1cd29d546597af7dc0549e7f6f9e480a000000000000000000000000000000000000000000000002101f4c5581f6f1b50f89b943432b6a60d23ca0dfca7761b7ab56459d9c964d0f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000a88800cd213da5ae406ce248380802bd53b47647a00000000000000000000000001111111254eeb25477b68fb85ed929f73a960582a00000000000000000000000000000000000000000000000000000000000000000f89b941111111254eeb25477b68fb85ed929f73a960582f842a0b9ed0243fdf00f0545c63a0af8850c090d86bb46682baec4bf3c496814fe4f02a00000000000000000000000004507fb0190f21c2dabf7cf9c08962ed8e5b17431b8409c6a9e8a17014cc070443d406e6624611a09820443eb7c42d2194194d550bd130000000000000000000000000000000000000000000000001b69785cb345326ef89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000004507fb0190f21c2dabf7cf9c08962ed8e5b17431a0000000000000000000000000b2db04ae40686c2dd2b4baf43a6c489c963a1ac4a00000000000000000000000000000000000000000000000001459a9e53577f3a1f89b9440a7df3df8b56147b781353d379cb960120211d7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000f2e5e488daa815361ada55ef816b47679918897a0000000000000000000000000a88800cd213da5ae406ce248380802bd53b47647a00000000000000000000000000000000000000000000000dc72310cf6dc81b2d6f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000b2db04ae40686c2dd2b4baf43a6c489c963a1ac4a00000000000000000000000000f2e5e488daa815361ada55ef816b47679918897a00000000000000000000000000000000000000000000000001440e57de6369881f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000b2db04ae40686c2dd2b4baf43a6c489c963a1ac4a0000000000000000000000000d1742b3c4fbb096990c8950fa635aec75b30781aa00000000000000000000000000000000000000000000000000018c4674f415b20f9011c940f2e5e488daa815361ada55ef816b47679918897f863a0c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67a0000000000000000000000000b2db04ae40686c2dd2b4baf43a6c489c963a1ac4a0000000000000000000000000a88800cd213da5ae406ce248380802bd53b47647b8a0ffffffffffffffffffffffffffffffffffffffffffffff238dcef309237e4d2a0000000000000000000000000000000000000000000000001440e57de6369881000000000000000000000000000000000000000004da99a2d44054e96047f83e0000000000000000000000000000000000000000000003736b307a89b443b013fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeca30f89b9440a7df3df8b56147b781353d379cb960120211d7f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000a88800cd213da5ae406ce248380802bd53b47647a00000000000000000000000001111111254eeb25477b68fb85ed929f73a960582a00000000000000000000000000000000000000000000000dc72310cf6dc81b2d6f89b9440a7df3df8b56147b781353d379cb960120211d7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000a88800cd213da5ae406ce248380802bd53b47647a00000000000000000000000004507fb0190f21c2dabf7cf9c08962ed8e5b17431a00000000000000000000000000000000000000000000000dc72310cf6dc81b2d6", + "gas_used": 425521 + } + }, + { + "traces": { + "0x90c2984b370a7b7cd6033fa3b27aa68af4a28b45": { + "balance": "0x1722743714b600", + "nonce": "0x6" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196534fc39fb83ee8" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x92ecc0b52cc2e95a545e1ad54e6b3d08089fd89da6b60a9efffe71003db71c21", + "0x974cfde79f64842c2b3308cc5b72dff5f6daa2c39c7bb8ff98c0e019eb62b91e", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x68961eac410783835cbadd44f7fc9db2ac9f584110cb577d75c998a200903a78", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "storage_written": { + "0x974cfde79f64842c2b3308cc5b72dff5f6daa2c39c7bb8ff98c0e019eb62b91e": "0x875ec553dc", + "0x92ecc0b52cc2e95a545e1ad54e6b3d08089fd89da6b60a9efffe71003db71c21": "0x0" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + } + }, + "meta": { + "byte_code": "0xf8aa05850826299e00830186a094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000003274ae9f94ec2dab27c9d2f8764bbf1e3d98828400000000000000000000000000000000000000000000000000000003b7e6fb3025a05d86395f80eef93b702058fccbc6719ca3d4702826bab3ba7e37ca0bccc09c7ea00190fd355294ed82f713b09885b9a5bd131a9d750f5dffcb263e015b11e8d0db", + "new_txn_trie_node_byte": "0xf8aa05850826299e00830186a094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000003274ae9f94ec2dab27c9d2f8764bbf1e3d98828400000000000000000000000000000000000000000000000000000003b7e6fb3025a05d86395f80eef93b702058fccbc6719ca3d4702826bab3ba7e37ca0bccc09c7ea00190fd355294ed82f713b09885b9a5bd131a9d750f5dffcb263e015b11e8d0db", + "new_receipt_trie_node_byte": "0xf901a701831b3603b9010000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000010000000000000000000000000000010000000000000000000000000000000008000100000000000000000000000000080000000000008000000000000000000000000000000000002000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000090c2984b370a7b7cd6033fa3b27aa68af4a28b45a00000000000000000000000003274ae9f94ec2dab27c9d2f8764bbf1e3d988284a000000000000000000000000000000000000000000000000000000003b7e6fb30", + "gas_used": 41321 + } + }, + { + "traces": { + "0x518024976bf1437593a15823d68cbe7050eb761f": { + "balance": "0x355105343b64088" + }, + "0x74ae836d6f949118b4e4d0af79924edd0d6fd163": { + "code_usage": { + "read": "0x8140f0e860a1ff1d303c031219ff9db58d3fd24808bdfbfdea900640b7aaddd7" + } + }, + "0x9d903fe05f503ddd15708da2680802c722063740": { + "balance": "0x2954bdd9e17c99b3" + }, + "0x0b2fdf416cf2951499de9a1adac65c8e9907c8c2": { + "balance": "0xad04239063a73f998" + }, + "0x45300136662dd4e58fc0df61e6290dffd992b785": { + "balance": "0xa0df12f5b3eab545d1", + "nonce": "0x156d3" + }, + "0xaa99fc695eb1bbfb359fbad718c7c6dafc03a839": { + "storage_read": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0xfb881fb7047df87ab12a14e49619930df2e7e23c5a1c2f7059deb4ea5e9f328e" + ], + "code_usage": { + "read": "0x5e4dcb0bb1910f6429e5fe91678990088a51c6d1cfe1b31d05fb9d948cc7867c" + } + }, + "0x591148cfb7641828d1d1ea18dce20e8506445f61": { + "balance": "0xc3d35a29ffb89aa" + }, + "0x1aad971b96a01edc5f5e09f764d8a921f4095797": { + "balance": "0x4abf356fa9c1bd" + }, + "0x33f7c348c1881ccf5463e37ad8ae3336f6e2287e": { + "balance": "0x55b0dcbf1238374" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965480d2fd8ad5a0" + } + }, + "meta": { + "byte_code": "0x02f9027e01830156d284d768f32885104c533c00830be6e094aa99fc695eb1bbfb359fbad718c7c6dafc03a839890b0d7bcbaad4496400b90204eb14f53e00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000600000000000000000000000033f7c348c1881ccf5463e37ad8ae3336f6e2287e0000000000000000000000000b2fdf416cf2951499de9a1adac65c8e9907c8c2000000000000000000000000591148cfb7641828d1d1ea18dce20e8506445f61000000000000000000000000518024976bf1437593a15823d68cbe7050eb761f0000000000000000000000001aad971b96a01edc5f5e09f764d8a921f40957970000000000000000000000009d903fe05f503ddd15708da2680802c722063740000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000004cfcb17efe0f00000000000000000000000000000000000000000000000000acfb85738c53920000000000000000000000000000000000000000000000000000c254f36f1fac00000000000000000000000000000000000000000000000000003454729b738c0000000000000000000000000000000000000000000000000000034d6bb98d0c00000000000000000000000000000000000000000000000000029543c3ddd2b1400c001a0910243c833839263874a0f33676fbc33d0752b5cfc941022593d8074b79f0759a078ca138ea45aeaf8901939499c05a937e2212010f2f87b18011583a2b7bce646", + "new_txn_trie_node_byte": "0x02f9027e01830156d284d768f32885104c533c00830be6e094aa99fc695eb1bbfb359fbad718c7c6dafc03a839890b0d7bcbaad4496400b90204eb14f53e00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000600000000000000000000000033f7c348c1881ccf5463e37ad8ae3336f6e2287e0000000000000000000000000b2fdf416cf2951499de9a1adac65c8e9907c8c2000000000000000000000000591148cfb7641828d1d1ea18dce20e8506445f61000000000000000000000000518024976bf1437593a15823d68cbe7050eb761f0000000000000000000000001aad971b96a01edc5f5e09f764d8a921f40957970000000000000000000000009d903fe05f503ddd15708da2680802c722063740000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000004cfcb17efe0f00000000000000000000000000000000000000000000000000acfb85738c53920000000000000000000000000000000000000000000000000000c254f36f1fac00000000000000000000000000000000000000000000000000003454729b738c0000000000000000000000000000000000000000000000000000034d6bb98d0c00000000000000000000000000000000000000000000000000029543c3ddd2b1400c001a0910243c833839263874a0f33676fbc33d0752b5cfc941022593d8074b79f0759a078ca138ea45aeaf8901939499c05a937e2212010f2f87b18011583a2b7bce646", + "new_receipt_trie_node_byte": "0xb9010d02f9010901831ca08eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 92811 + } + }, + { + "traces": { + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x1cc5e4d6861cef01aeb042af32a50cfc9d8a7398524597adce475c34f2eb95fd", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x67cd9348adfb6d4efe0a94e3d384448128cd0eb5d5c5a11ad102107590b05be4", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x49dc709854b3f2f5979fd249c3f9443171ae28b352b928d078d6d4cad10edb4b" + ], + "storage_written": { + "0x1cc5e4d6861cef01aeb042af32a50cfc9d8a7398524597adce475c34f2eb95fd": "0x132609e0", + "0x49dc709854b3f2f5979fd249c3f9443171ae28b352b928d078d6d4cad10edb4b": "0x554ac91bc" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0xfb183eb452cee258c7e429610cb7d9e2a5fa68ff": { + "balance": "0x654e08118394ec30", + "nonce": "0x4fe1" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196552d49f78463a0" + } + }, + "meta": { + "byte_code": "0x02f8b301824fe084b2d05e00850f0b45e740830186a094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000c0bc23fc078128ac56356287cc950b385e3d546000000000000000000000000000000000000000000000000000000000132609e0c001a0184457b3a6b74c8dfbc42731daab9206f9080457c26d31a2b8e3dd31df873cf2a057409fb34641955c154de08c18d472db9a0dad1aa8784148402eabeecf0f145f", + "new_txn_trie_node_byte": "0x02f8b301824fe084b2d05e00850f0b45e740830186a094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000c0bc23fc078128ac56356287cc950b385e3d546000000000000000000000000000000000000000000000000000000000132609e0c001a0184457b3a6b74c8dfbc42731daab9206f9080457c26d31a2b8e3dd31df873cf2a057409fb34641955c154de08c18d472db9a0dad1aa8784148402eabeecf0f145f", + "new_receipt_trie_node_byte": "0xb901ab02f901a701831d9777b9010000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000010000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000010000000000000000000000000000000010000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000400000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000fb183eb452cee258c7e429610cb7d9e2a5fa68ffa0000000000000000000000000c0bc23fc078128ac56356287cc950b385e3d5460a000000000000000000000000000000000000000000000000000000000132609e0", + "gas_used": 63209 + } + }, + { + "traces": { + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x12fe613e02847a24ccf1e8dd21354661c00a988c6a282b937c14734f2b6c38f6", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x361ce7b2d020925ceed714de7f135a12bad067ccbdf8196bd4b0176bf20fd8c3", + "0xb94896f29f9cbd6302f9c0a52bc8e0a919d9f5c62845a9144910f0c4194c884a" + ], + "storage_written": { + "0xb94896f29f9cbd6302f9c0a52bc8e0a919d9f5c62845a9144910f0c4194c884a": "0x37fdac2a80", + "0x361ce7b2d020925ceed714de7f135a12bad067ccbdf8196bd4b0176bf20fd8c3": "0x0" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x943c452511102c551e10b8d84941d6043a0438a6": { + "balance": "0x1ebf25a6c1b09b", + "nonce": "0x1" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19655787b9c88a420" + } + }, + "meta": { + "byte_code": "0x02f8b101808477541880850cb2c7a5818301482094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000ebaba1d649be1e293a8a9e37b0f59f166b025d1f000000000000000000000000000000000000000000000000000000002faf0800c080a0a8915ad517a3cd2e90c15b69f349b073974676e654d923c5b54cbe121f1a7abca0074fab20442f1f759dac3a124009911adf4f9dfdf25ed9007e8134a1cdfb2a09", + "new_txn_trie_node_byte": "0x02f8b101808477541880850cb2c7a5818301482094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000ebaba1d649be1e293a8a9e37b0f59f166b025d1f000000000000000000000000000000000000000000000000000000002faf0800c080a0a8915ad517a3cd2e90c15b69f349b073974676e654d923c5b54cbe121f1a7abca0074fab20442f1f759dac3a124009911adf4f9dfdf25ed9007e8134a1cdfb2a09", + "new_receipt_trie_node_byte": "0xb901ab02f901a701831e38c8b9010000000000000000000000002000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000008000080000000000000000000000000000000000000000000001202000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000943c452511102c551e10b8d84941d6043a0438a6a0000000000000000000000000ebaba1d649be1e293a8a9e37b0f59f166b025d1fa0000000000000000000000000000000000000000000000000000000002faf0800", + "gas_used": 41297 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19655eb8d6faccaa0" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x75f7f8a447801bb3acf20ed694b60cd14d95954391a921e8e0e05339d096a919", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x56ee5c039aedeaedf1032028e6c6acb8882795c2c1cf967aecbff3b2c39ab4c0", + "0xfdf63d3ff40a283fa89c57389b05f9f23f6ea6909b558c6dc6aa7c87a659c7b9" + ], + "storage_written": { + "0x56ee5c039aedeaedf1032028e6c6acb8882795c2c1cf967aecbff3b2c39ab4c0": "0x1c4d71de2b7", + "0xfdf63d3ff40a283fa89c57389b05f9f23f6ea6909b558c6dc6aa7c87a659c7b9": "0xe111300" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0xb23360ccdd9ed1b15d45e5d3824bb409c8d7c460": { + "balance": "0x4f17944e2c12f858d2", + "nonce": "0x68c4b" + } + }, + "meta": { + "byte_code": "0x02f8b40183068c4a8477541880850cb2c7a5818301482094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000e9ce0d674edd8b0fbccc295212d5522b070ec288000000000000000000000000000000000000000000000000000000000e111300c080a0b8527beb0ba51f289f32850945bea33b77b2c02d5e4ac8c293573925567e1ecca033443f0123a2343f290c2d9ca19b306aa64f721e24faeb18df95c9728dc687bb", + "new_txn_trie_node_byte": "0x02f8b40183068c4a8477541880850cb2c7a5818301482094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000e9ce0d674edd8b0fbccc295212d5522b070ec288000000000000000000000000000000000000000000000000000000000e111300c080a0b8527beb0ba51f289f32850945bea33b77b2c02d5e4ac8c293573925567e1ecca033443f0123a2343f290c2d9ca19b306aa64f721e24faeb18df95c9728dc687bb", + "new_receipt_trie_node_byte": "0xb901ab02f901a701831f2fa5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000001000000000000000000000100000000000000100000000000001000000000000080000000000000000000000000000000000000000008000002000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000400000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000b23360ccdd9ed1b15d45e5d3824bb409c8d7c460a0000000000000000000000000e9ce0d674edd8b0fbccc295212d5522b070ec288a0000000000000000000000000000000000000000000000000000000000e111300", + "gas_used": 63197 + } + }, + { + "traces": { + "0x1294f4183763743c7c9519bec51773fb3acd78fd": { + "storage_read": [ + "0x5c773e9271eb6f419b42f0490cd86fc79d1171c0ee2547024017695e946a43ab", + "0x49ba8af02d9344a316fc9f0e1425ce802a09de0d54abf79a1c226796592a8559", + "0x88014a56542fb90935482aaff081f79b19111adff9813e5ec89cb5ef957acf82", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x8c3f550f970d84dc9ceb9449f8a79146b81afd76122f545ddf8c9c20a7bcaa2d", + "0xa41e052b635fb5f5f276dd6196b7190ef1f69d171a573e3b7e24406089f3fcad", + "0xe06ef3cbf4d9ef77dd20c6cd5a5ff8215d56f988c543a1fc406db33ce9f9a2c2" + ], + "storage_written": { + "0x8c3f550f970d84dc9ceb9449f8a79146b81afd76122f545ddf8c9c20a7bcaa2d": "0x2e70b2da7c15a3ee6e28", + "0xa41e052b635fb5f5f276dd6196b7190ef1f69d171a573e3b7e24406089f3fcad": "0x68665d50b63911a26671f4" + }, + "code_usage": { + "read": "0x93bbe323a93a0759ae8d5dd17216194d14412242d9b3f8b521390a3420be8fe0" + } + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19656ef432868bea0" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x29869670de5f39fc63c8c", + "storage_read": [ + "0x29fc5f334ece9c98324bc24abaeda67252adbf87a28a2722a673fa8a61f7f000", + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a" + ], + "storage_written": { + "0x29fc5f334ece9c98324bc24abaeda67252adbf87a28a2722a673fa8a61f7f000": "0xa945bc096074a1024", + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xc48396f068c62e0192c9f2c1caa7e07bbd15dbc7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xc0d1c00078410fd0164580b0bad93d8a579580d06cf45fc2696a823498097b8a", + "0x000000000000000000000000000000000000000000000000000000000000000f" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x100002900290008fe26520000000000000000009890a7e97e5b3edaa775cd", + "0x0000000000000000000000000000000000000000000000000000000000000010": "0x1000000000000000000000112600046a178066244ffff6eabe0162065cf5de7", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x5effdc5139f4da0f11944d601847f5631e" + }, + "code_usage": { + "read": "0x0b1efe7cc68a175aa456b1085258e697be57fb5f24d57372c9ac32edd08dcc3a" + } + }, + "0x1302b105a2e6d1716ea930d27d6ec6de02fd4015": { + "balance": "0x18a9c193752a8037", + "nonce": "0xd6" + }, + "0x000000000022d473030f116ddee9f6b43ac78ba3": { + "storage_read": [ + "0x9e75a7eaab4a5d769075eac5d982431cfd9c30e781c6021897117d1816303be6" + ], + "code_usage": { + "read": "0xc67d1657868aa5146eaf24fb879fb1fdec3d2d493b3683a61c9c2f4fb2851131" + } + } + }, + "meta": { + "byte_code": "0x02f902d30181d584773594008508e05c0a8383032354943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad80b9026424856bc3000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000002010c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000017979cfe362a000000000000000000000000000000000000000000000000431672a2426f5f8162cf00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc20027101294f4183763743c7c9519bec51773fb3acd78fd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000001302b105a2e6d1716ea930d27d6ec6de02fd401500000000000000000000000000000000000000000000000017979cfe362a0000c001a0ee8721f9cca1ddc677a11fdf68d05bf4757bfbfe5e6b2b37d1b70d2a26d82e98a010178961398ccf71ffbb468dab3ba7ba15020dcca0efc52c38ce2aaf02eab979", + "new_txn_trie_node_byte": "0x02f902d30181d584773594008508e05c0a8383032354943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad80b9026424856bc3000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000002010c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000017979cfe362a000000000000000000000000000000000000000000000000431672a2426f5f8162cf00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc20027101294f4183763743c7c9519bec51773fb3acd78fd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000001302b105a2e6d1716ea930d27d6ec6de02fd401500000000000000000000000000000000000000000000000017979cfe362a0000c001a0ee8721f9cca1ddc677a11fdf68d05bf4757bfbfe5e6b2b37d1b70d2a26d82e98a010178961398ccf71ffbb468dab3ba7ba15020dcca0efc52c38ce2aaf02eab979", + "new_receipt_trie_node_byte": "0xb903e402f903e00183215d5eb9010000000000000000000000000000000000000000000080000000000000000000000000000000000000001000000000000002000000180020000000000000000000000000080400000800000008000000000000000000400000000000000020000000000000000000000008000000000000000000000000040000000010000840000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000002000000000000000400000000000000000000000000000002000000400000200000010000000000000800000000001000000000000000000000000000f902d5f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000c48396f068c62e0192c9f2c1caa7e07bbd15dbc7a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada000000000000000000000000000000000000000000000000017979cfe362a0000f89b941294f4183763743c7c9519bec51773fb3acd78fdf863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000001302b105a2e6d1716ea930d27d6ec6de02fd4015a0000000000000000000000000c48396f068c62e0192c9f2c1caa7e07bbd15dbc7a00000000000000000000000000000000000000000000043054a5e11c6fb69fbe7f9011c94c48396f068c62e0192c9f2c1caa7e07bbd15dbc7f863a0c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fadb8a00000000000000000000000000000000000000000000043054a5e11c6fb69fbe7ffffffffffffffffffffffffffffffffffffffffffffffffe8686301c9d600000000000000000000000000000000000000000000009890a7e97e5b3edaa775cd000000000000000000000000000000000000000000008799d9323f0ad5f6702ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2652f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada000000000000000000000000000000000000000000000000017979cfe362a0000", + "gas_used": 142777 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965743172884a2a0" + }, + "0x86a78f8d75832a1aed06bc88a8ed2150a6b8126f": { + "balance": "0x2f316c63560eb3", + "nonce": "0x19" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0xd14a4a2e31b8097e75ca2836afdf67a0e91792bb9a1f77a6e7b2bc1b4228efce", + "0x4ecdcec8f84df5844e68690df06afabc1854d2a4430ccea67476cd5650080268", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x8e89599e3ecfb90ccdc86318bbd9cc92dbdf264451f0efb7e9e523d95683b1aa", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004" + ], + "storage_written": { + "0xd14a4a2e31b8097e75ca2836afdf67a0e91792bb9a1f77a6e7b2bc1b4228efce": "0x3fb16c8bb", + "0x4ecdcec8f84df5844e68690df06afabc1854d2a4430ccea67476cd5650080268": "0x23c34600" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + } + }, + "meta": { + "byte_code": "0x02f8b1011884773594008508eb7687d88301117094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000004efd0f870b7a6517004752f40e3fd140c369592e0000000000000000000000000000000000000000000000000000000017d78400c080a085669a48857f33f699bc2922b5a51582dcebb379de3a4645d938dc1298ec63f7a07833695ad55fffdab715e8cbd637273c7a1676e03c7f7387a97cdb6366549322", + "new_txn_trie_node_byte": "0x02f8b1011884773594008508eb7687d88301117094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000004efd0f870b7a6517004752f40e3fd140c369592e0000000000000000000000000000000000000000000000000000000017d78400c080a085669a48857f33f699bc2922b5a51582dcebb379de3a4645d938dc1298ec63f7a07833695ad55fffdab715e8cbd637273c7a1676e03c7f7387a97cdb6366549322", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183221163b9010000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000010000000000000000000000000000000000004000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000100000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000080800f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000086a78f8d75832a1aed06bc88a8ed2150a6b8126fa00000000000000000000000004efd0f870b7a6517004752f40e3fd140c369592ea00000000000000000000000000000000000000000000000000000000017d78400", + "gas_used": 46085 + } + }, + { + "traces": { + "0x43506849d7c04f9138d1a2050bbf3a0c054402dd": { + "code_usage": { + "read": "0xcdfb7d322961af3acae7a8f7ee8b69c205b36f576cc5b077f170c7eb8ecbe3ea" + } + }, + "0x28c6c06298d514db089934071355e5743bf21d60": { + "balance": "0x16ba43932e7d8bc0a24d", + "nonce": "0x88d04b" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19657b4573ae2b2a0" + }, + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "storage_read": [ + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x07081a045c3dbf2e63b62a407ef205e7586e2629d2e2b95ff093308ca0ff3727", + "0x94f6239d8c0c6671484e82f85d9863a2b9f15d6ef6289ef14823078090c02ccb" + ], + "storage_written": { + "0x07081a045c3dbf2e63b62a407ef205e7586e2629d2e2b95ff093308ca0ff3727": "0x1a345c38ae805", + "0x94f6239d8c0c6671484e82f85d9863a2b9f15d6ef6289ef14823078090c02ccb": "0x6544b98210" + }, + "code_usage": { + "read": "0xd80d4b7c890cb9d6a4893e6b52bc34b56b25335cb13716e0d1d31383e6b41505" + } + } + }, + "meta": { + "byte_code": "0x02f8b4018388d04a84773594008517bfac7c008303291894a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb000000000000000000000000d70dce1740ff009c6a6fb13ac714628edec028db0000000000000000000000000000000000000000000000000000006544b98210c001a022fb85ecc99c57e799bb54d5250645d948334373e164ef2a162f80ac4bac37b4a04c09965a009d1cf2b209fbf21039bd2e9bddc263df3e1a0ed100386f360ebd32", + "new_txn_trie_node_byte": "0x02f8b4018388d04a84773594008517bfac7c008303291894a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb000000000000000000000000d70dce1740ff009c6a6fb13ac714628edec028db0000000000000000000000000000000000000000000000000000006544b98210c001a022fb85ecc99c57e799bb54d5250645d948334373e164ef2a162f80ac4bac37b4a04c09965a009d1cf2b209fbf21039bd2e9bddc263df3e1a0ed100386f360ebd32", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183230497b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000400000000000000000000000000000000000002000010000000000000000000000000000000000000000000000000010000000000000000000000000000000000200000000000000000000000000000000000000000020000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000200000000000000000f89df89b94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000028c6c06298d514db089934071355e5743bf21d60a0000000000000000000000000d70dce1740ff009c6a6fb13ac714628edec028dba00000000000000000000000000000000000000000000000000000006544b98210", + "gas_used": 62260 + } + }, + { + "traces": { + "0x21a31ee1afc51d94c2efccaa2092ad1028285549": { + "balance": "0x3eecb83db2be5d0da70", + "nonce": "0x846377" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19658166ac15c0aa0" + }, + "0x5b7533812759b45c2b44c19e320ba2cd2681b542": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0xbfe3a0ea4e4df64d52cc5d137e94731980838427db9d8b6d217b324d5b90b4e3", + "0x78c309b6060eeb8808be7fd9f63b074f688b6fe5ef764b48edb0e842afcbf00d" + ], + "storage_written": { + "0x78c309b6060eeb8808be7fd9f63b074f688b6fe5ef764b48edb0e842afcbf00d": "0x6fe8f833300", + "0xbfe3a0ea4e4df64d52cc5d137e94731980838427db9d8b6d217b324d5b90b4e3": "0x937f3f357e40" + }, + "code_usage": { + "read": "0xb78fea465c0dd22ef8be85c23964d4842498fcbed1e650268f3cf84229b7a4e9" + } + } + }, + "meta": { + "byte_code": "0x02f8b4018384637684773594008517bfac7c0083032918945b7533812759b45c2b44c19e320ba2cd2681b54280b844a9059cbb000000000000000000000000562ca3378142399fd149efe12527d04b7a8324ed000000000000000000000000000000000000000000000000000006fe8f833300c001a070f35e5d369075abba98509acc2d1942f950a2d5527ec83abd0b8f6deae7fe2da0441fea20b9442c0b2d1396a6a4b83b08be8080578d5ef0495cbaa373a971bb37", + "new_txn_trie_node_byte": "0x02f8b4018384637684773594008517bfac7c0083032918945b7533812759b45c2b44c19e320ba2cd2681b54280b844a9059cbb000000000000000000000000562ca3378142399fd149efe12527d04b7a8324ed000000000000000000000000000000000000000000000000000006fe8f833300c001a070f35e5d369075abba98509acc2d1942f950a2d5527ec83abd0b8f6deae7fe2da0441fea20b9442c0b2d1396a6a4b83b08be8080578d5ef0495cbaa373a971bb37", + "new_receipt_trie_node_byte": "0xb901ab02f901a7018323d735b9010000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000001000000000000000000008000000200002000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000100000000000000004000000000020000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f89df89b945b7533812759b45c2b44c19e320ba2cd2681b542f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000021a31ee1afc51d94c2efccaa2092ad1028285549a0000000000000000000000000562ca3378142399fd149efe12527d04b7a8324eda0000000000000000000000000000000000000000000000000000006fe8f833300", + "gas_used": 53918 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19658f90fa07cfa39" + }, + "0xddba26666ff220dd94eb5927fd1c9741f5edd06e": { + "balance": "0x3b650838a714c6", + "nonce": "0x1" + }, + "0x5f020c5f2a75d039f1ffba3183bccad0157afed7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de70000000000002fd6343cacc58000000002d035911b24a454a41c30f5", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0xa86984d535eb74ddab6bf5c3d09e6b5fe5d34", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x7bffcf5cf81515dfa729be8", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x3bac404dcf868cb3261196d7f9a34866ecbf0db9": { + "storage_read": [ + "0xd6058a56281a7f39b19dc9e179aad6322d7ab67ba6b4f97b92b7eb336057e02c", + "0xca53e414c85370631d791eba815c4a1e5bc0b374edb73f9c751d33bcad642261", + "0x9c89314bb64b26031bda115caf0dafe32b74d0ef4c48bc98f7fa2452d99cda6c", + "0x02957aa65518e3a3117fd5e9116cbd4fe622fb4a4dfc9df507829cc48fa3963f" + ], + "storage_written": { + "0xd6058a56281a7f39b19dc9e179aad6322d7ab67ba6b4f97b92b7eb336057e02c": "0x153b8d02f0ece78f6d8126", + "0xca53e414c85370631d791eba815c4a1e5bc0b374edb73f9c751d33bcad642261": "0x2d035911b24a454a41c30f5" + }, + "code_usage": { + "read": "0x62dba93847d49dfa18b2b038bb8100242db183aefa5b0b5139a7afa90b64e00d" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x29869686d9ded5889bc8c", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0x9c89314bb64b26031bda115caf0dafe32b74d0ef4c48bc98f7fa2452d99cda6c" + ], + "storage_written": { + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0", + "0x9c89314bb64b26031bda115caf0dafe32b74d0ef4c48bc98f7fa2452d99cda6c": "0x2fd6343cacc58000" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + } + }, + "meta": { + "byte_code": "0xf902f38085078f68e902830493e0943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad88015fb7f9b8c38000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf5e8e00000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000015fb7f9b8c3800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000015fb7f9b8c38000000000000000000000000000000000000000000000153b8d02f0ece78f6d812600000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000003bac404dcf868cb3261196d7f9a34866ecbf0db925a03bed20a2e9038beefdfea52180b5dae09249b1170eb53423943d16636e6d9bf8a01d44d9a8289eae8ca609e38ff53f89097318ff26ef06b499282433583fa84853", + "new_txn_trie_node_byte": "0xf902f38085078f68e902830493e0943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad88015fb7f9b8c38000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf5e8e00000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000015fb7f9b8c3800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000015fb7f9b8c38000000000000000000000000000000000000000000000153b8d02f0ece78f6d812600000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000003bac404dcf868cb3261196d7f9a34866ecbf0db925a03bed20a2e9038beefdfea52180b5dae09249b1170eb53423943d16636e6d9bf8a01d44d9a8289eae8ca609e38ff53f89097318ff26ef06b499282433583fa84853", + "new_receipt_trie_node_byte": "0xf9043a018325da52b9010000200000000000000000000080000000000000000000000000000000000000000000000020000000000000000000000002000000080000000000000000000000000000080000000000000008000000200000000000200000010000008020000000000000000000000001000000000000000000000000000000000010000000004000400000000000000000000000000000000001000000080000024000000000000000000000000000000000000800000000000000000000000000000000000000000002002000000000000000000000000000000000001000000000000000000000200000000100080000000000000000001002000000400000000000000000f9032ff87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000000000000000000000000000015fb7f9b8c38000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000005f020c5f2a75d039f1ffba3183bccad0157afed7a0000000000000000000000000000000000000000000000000015fb7f9b8c38000f89b943bac404dcf868cb3261196d7f9a34866ecbf0db9f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000005f020c5f2a75d039f1ffba3183bccad0157afed7a0000000000000000000000000ddba26666ff220dd94eb5927fd1c9741f5edd06ea0000000000000000000000000000000000000000000153b8d02f0ece78f6d8126f879945f020c5f2a75d039f1ffba3183bccad0157afed7e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b840000000000000000000000000000000000000000002d035911b24a454a41c30f50000000000000000000000000000000000000000000000002fd6343cacc58000f8fc945f020c5f2a75d039f1ffba3183bccad0157afed7f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000ddba26666ff220dd94eb5927fd1c9741f5edd06eb8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015fb7f9b8c38000000000000000000000000000000000000000000000153b8d02f0ece78f6d81260000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 131869 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196593d9782505a39" + }, + "0xca20c2b6726da9c10bdd04910e47276e73fa982c": { + "balance": "0xf6bb3b392f1056e", + "nonce": "0x52" + }, + "0xe41d2489571d322189246dafa5ebde1f4699f498": { + "storage_read": [ + "0x706ae5cb79a22594f31c14ac7c556a2cc08c6ba0bf3846601a61d733d161b673", + "0xe457cad9e42255c0d35a50b7de04bacb1db0d3d1c3b808f4285bd3888a422590" + ], + "storage_written": { + "0x706ae5cb79a22594f31c14ac7c556a2cc08c6ba0bf3846601a61d733d161b673": "0x0", + "0xe457cad9e42255c0d35a50b7de04bacb1db0d3d1c3b808f4285bd3888a422590": "0x1670043110562e0000" + }, + "code_usage": { + "read": "0x44d31e602fd21d6ca2e92923b0a6626c47c1986a92e1abc87bea9ae71e553229" + } + } + }, + "meta": { + "byte_code": "0x02f8b00151845f5e10008507e1d74a4182cb6494e41d2489571d322189246dafa5ebde1f4699f49880b844a9059cbb00000000000000000000000024fbedac740dedb891a6a6fe416692cd40daba8700000000000000000000000000000000000000000000001670043110562e0000c001a0539578302b5cb50c137ebf2b41c53587982c4602a74365e38d2279e66754b182a06307727fc9b61e1772b5d626f7053f8653477c49f20fe8f21b0ae0840864f3c6", + "new_txn_trie_node_byte": "0x02f8b00151845f5e10008507e1d74a4182cb6494e41d2489571d322189246dafa5ebde1f4699f49880b844a9059cbb00000000000000000000000024fbedac740dedb891a6a6fe416692cd40daba8700000000000000000000000000000000000000000000001670043110562e0000c001a0539578302b5cb50c137ebf2b41c53587982c4602a74365e38d2279e66754b182a06307727fc9b61e1772b5d626f7053f8653477c49f20fe8f21b0ae0840864f3c6", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183269248b9010000000000000000000000000000000000000000000010000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000080000000008000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000010000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002100000000000000000000000040000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94e41d2489571d322189246dafa5ebde1f4699f498f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000ca20c2b6726da9c10bdd04910e47276e73fa982ca000000000000000000000000024fbedac740dedb891a6a6fe416692cd40daba87a000000000000000000000000000000000000000000000001670043110562e0000", + "gas_used": 47094 + } + }, + { + "traces": { + "0x473037de59cf9484632f4a27b509cfe8d4a31404": { + "storage_read": [ + "0xf971a6ff39f526af1d8c27ed6497c9aa98c7c72b5705d75e7d41966b6c619c45", + "0x5c6a8484ae81b79e59c9fbab92bbd582e988e84c0eede7ccb09d8bffd2484796" + ], + "storage_written": { + "0xf971a6ff39f526af1d8c27ed6497c9aa98c7c72b5705d75e7d41966b6c619c45": "0xde49a466db6f6", + "0x5c6a8484ae81b79e59c9fbab92bbd582e988e84c0eede7ccb09d8bffd2484796": "0x94183fe380" + }, + "code_usage": { + "read": "0x5903a9db3f6392e82acbc4e23375addaf409d0f86be0e5687f269af42b3426a3" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196598505adb52339" + }, + "0xeb49f0309dd219846758d1d4b15a381542182825": { + "balance": "0x1212a52bc14a6569c8", + "nonce": "0xaf58" + } + }, + "meta": { + "byte_code": "0x02f8b30182af578459682f00850f2abc4176830186a094473037de59cf9484632f4a27b509cfe8d4a3140480b844a9059cbb0000000000000000000000009cede37fa4befd700d500642b855bf89977e9a1d00000000000000000000000000000000000000000000000000000094183fe380c001a017a724ef7f196388e065ac1dfae1a99f76fbaba8fb0f863bbc2c310f45a1e7f6a072d3780de70b40fb4c9b272bb4764b2ea88476f28355b978fe5110bbafc77a16", + "new_txn_trie_node_byte": "0x02f8b30182af578459682f00850f2abc4176830186a094473037de59cf9484632f4a27b509cfe8d4a3140480b844a9059cbb0000000000000000000000009cede37fa4befd700d500642b855bf89977e9a1d00000000000000000000000000000000000000000000000000000094183fe380c001a017a724ef7f196388e065ac1dfae1a99f76fbaba8fb0f863bbc2c310f45a1e7f6a072d3780de70b40fb4c9b272bb4764b2ea88476f28355b978fe5110bbafc77a16", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183275ecfb9010000000000000800000000000000000000000004000100000000000000000000000000000000400000000000000000000000000400000000000000000000000080000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000f89df89b94473037de59cf9484632f4a27b509cfe8d4a31404f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000eb49f0309dd219846758d1d4b15a381542182825a00000000000000000000000009cede37fa4befd700d500642b855bf89977e9a1da000000000000000000000000000000000000000000000000000000094183fe380", + "gas_used": 52359 + } + }, + { + "traces": { + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0xcde00e4aa8737385df7d00095ae507a3e343d412b6ffb71aa6a115cf30ee4d13", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x8bc41dcfc838f07e524af11c4c088a6060559b41557ac1ae8079ecb980934c96", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x135bf80526f52c54b7ad1ec19ca201f0ee7a26c88f55fa3a80aab0397e7c34d4" + ], + "storage_written": { + "0x135bf80526f52c54b7ad1ec19ca201f0ee7a26c88f55fa3a80aab0397e7c34d4": "0x228c9ac0", + "0xcde00e4aa8737385df7d00095ae507a3e343d412b6ffb71aa6a115cf30ee4d13": "0xbaed9825bb" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0xeee7d74094cd46aa89cf16a155711c578951324f": { + "balance": "0xee607b76d19e5df", + "nonce": "0x528" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19659e8572252f239" + }, + "0xeb0e2f857cec0a8183db1fe03f982b5bd63f2c7c": { + "storage_read": [ + "0xb1c22355ed62553dbf06beb697e060162e083bcfc61ea4180c48037ac4453d87" + ], + "code_usage": { + "read": "0x3551b673dd2e234bb738a16b391efa6d7c9bf0ad7b764172b614673c515be0eb" + } + } + }, + "meta": { + "byte_code": "0x02f8d3018205278459682f00850e9d011e8483011c6194eb0e2f857cec0a8183db1fe03f982b5bd63f2c7c80b86469328dec000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000228c9ac00000000000000000000000001268c0846dc87b9413143895d03291fb32d7d23ec080a0c042a1b9c7ed354c0fe069596a9d778328dbe729e0b7db1244cf40940121a686a05f1201ea9305ce3ec820185f1687c14ce1b138caad109b35b946af28735885a7", + "new_txn_trie_node_byte": "0x02f8d3018205278459682f00850e9d011e8483011c6194eb0e2f857cec0a8183db1fe03f982b5bd63f2c7c80b86469328dec000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000228c9ac00000000000000000000000001268c0846dc87b9413143895d03291fb32d7d23ec080a0c042a1b9c7ed354c0fe069596a9d778328dbe729e0b7db1244cf40940121a686a05f1201ea9305ce3ec820185f1687c14ce1b138caad109b35b946af28735885a7", + "new_receipt_trie_node_byte": "0xb9026a02f902660183287b30b901000000000000000000000000000000000000000000000000000000000000000000000000004000000000020000000001000000000000000000000000000000000000000002000000000000000800000000080000000000000000000000000000000000000000000000000000000000000000000020000000000000001a000000000000000000000000000000000000000000000000000000004000100000100000000000000000000000000080000000000400040000020000000000000000004000000002000000000000000000000000001000020000000000000000000000000000000002000000000000000000000000080000000000000000000000000000f9015bf89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000eb0e2f857cec0a8183db1fe03f982b5bd63f2c7ca00000000000000000000000001268c0846dc87b9413143895d03291fb32d7d23ea000000000000000000000000000000000000000000000000000000000228c9ac0f8bc94eb0e2f857cec0a8183db1fe03f982b5bd63f2c7cf884a01e9eeaf1a9185f8b4c0c3394a8209f8c4bd7a41d93c23704144795f5b3d8bb88a0000000000000000000000000eee7d74094cd46aa89cf16a155711c578951324fa0000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7a00000000000000000000000001268c0846dc87b9413143895d03291fb32d7d23ea000000000000000000000000000000000000000000000000000000000228c9ac0", + "gas_used": 72801 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965a2b74a37b0639" + }, + "0xdbcc21224db3a930821381850a24317fc23ac529": { + "balance": "0x5bb9ab305213931", + "nonce": "0x119" + }, + "0x405ff48c96cdc5d882ccb694c58df97c391e0523": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000003" + ], + "storage_written": { + "0x712baa677c8f83c83657281d65652bb5be91efa155f65d5d386091042871f3c9": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + "code_usage": { + "read": "0xed4dea68c1a7921a6bd9400c7433050a5ff2e805f32a219841c25135d797b46d" + } + } + }, + "meta": { + "byte_code": "0x02f8b2018201188459682f00850f2abc417682c1b094405ff48c96cdc5d882ccb694c58df97c391e052380b844095ea7b3000000000000000000000000ed12310d5a37326e6506209c4838146950166760ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc080a01881d520078c31790ae74e6fd05ed887370368fa6c62429e89170c1b626a415aa050ba08c07b25e46906d91cb8914c51a2bd219567c3f71b97628623f25b844705", + "new_txn_trie_node_byte": "0x02f8b2018201188459682f00850f2abc417682c1b094405ff48c96cdc5d882ccb694c58df97c391e052380b844095ea7b3000000000000000000000000ed12310d5a37326e6506209c4838146950166760ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc080a01881d520078c31790ae74e6fd05ed887370368fa6c62429e89170c1b626a415aa050ba08c07b25e46906d91cb8914c51a2bd219567c3f71b97628623f25b844705", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183293b5cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000200000000000000000000000000000000000000000000000000000100000000200000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000200000000000000000000000110000000000200000000800000000000000000000000000000000000000000f89df89b94405ff48c96cdc5d882ccb694c58df97c391e0523f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000dbcc21224db3a930821381850a24317fc23ac529a0000000000000000000000000ed12310d5a37326e6506209c4838146950166760a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "gas_used": 49196 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965a6e9224a31a39" + }, + "0x405ff48c96cdc5d882ccb694c58df97c391e0523": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000003" + ], + "storage_written": { + "0xb73605e60422d0fa4d2fda84c7fe3970d5ec27a7cad548bdcd8c45fd80af2b03": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + "code_usage": { + "read": "0xed4dea68c1a7921a6bd9400c7433050a5ff2e805f32a219841c25135d797b46d" + } + }, + "0xda80eae34529aec270f1b97f58aff679af1719da": { + "balance": "0x1e24794e9ab4833", + "nonce": "0x4" + } + }, + "meta": { + "byte_code": "0x02f8b001038459682f00850f2abc417682c1b094405ff48c96cdc5d882ccb694c58df97c391e052380b844095ea7b3000000000000000000000000ed12310d5a37326e6506209c4838146950166760ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001a03410589b3671ca898e3480bcf034bd77b4fdd08630c3a4f8482483c547f2d7aca05b338486ed5d285d0506a99dd4cd65eb0c19271e86a1d6428637e247500d994f", + "new_txn_trie_node_byte": "0x02f8b001038459682f00850f2abc417682c1b094405ff48c96cdc5d882ccb694c58df97c391e052380b844095ea7b3000000000000000000000000ed12310d5a37326e6506209c4838146950166760ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001a03410589b3671ca898e3480bcf034bd77b4fdd08630c3a4f8482483c547f2d7aca05b338486ed5d285d0506a99dd4cd65eb0c19271e86a1d6428637e247500d994f", + "new_receipt_trie_node_byte": "0xb901ab02f901a7018329fb88b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000200000000080000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000020000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000110000000000200000000800000000000000000000000000008000000000000f89df89b94405ff48c96cdc5d882ccb694c58df97c391e0523f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000da80eae34529aec270f1b97f58aff679af1719daa0000000000000000000000000ed12310d5a37326e6506209c4838146950166760a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "gas_used": 49196 + } + }, + { + "traces": { + "0xaf65e45f4c0bd388f91eeb23cfcd52f4fcdd6ee2": { + "balance": "0x38290d5a3ba0171", + "nonce": "0x8741" + }, + "0x231055a0852d67c7107ad0d0dfeab60278fe6adc": { + "storage_read": [ + "0x105668a39e2eff15f6d78e142cc78f21594a5ba9aa89ca0b43124f6e6b54755f" + ], + "code_usage": { + "read": "0x85aeade4c7c5fd3395a20ae34667da8ee55a6442e8b3afcd8787efafc68f78a7" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965a91500a768039" + } + }, + "meta": { + "byte_code": "0x02f891018287408459682f00850e9d011e848264cf94231055a0852d67c7107ad0d0dfeab60278fe6adc80a497ad09eb6ff4e7455b233d1c843e23bbf3cec3d9fc3e9ae69e0f014a0494b401215213bec001a09e69825fb45a1a2228ebc52509beb1d428889e2e79b743b02c6c45c6e3f3a1bba06129d9672afc5b9a1260ea4b3bd4bdb9d8f9309692c27913e05f68d570ab9ecb", + "new_txn_trie_node_byte": "0x02f891018287408459682f00850e9d011e848264cf94231055a0852d67c7107ad0d0dfeab60278fe6adc80a497ad09eb6ff4e7455b233d1c843e23bbf3cec3d9fc3e9ae69e0f014a0494b401215213bec001a09e69825fb45a1a2228ebc52509beb1d428889e2e79b743b02c6c45c6e3f3a1bba06129d9672afc5b9a1260ea4b3bd4bdb9d8f9309692c27913e05f68d570ab9ecb", + "new_receipt_trie_node_byte": "0xb9018a02f9018601832a5f02b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000010004000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000040000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000f87cf87a94231055a0852d67c7107ad0d0dfeab60278fe6adcf842a037f9254ff1973d24d609016d6bb0aef8e6de91808811a546fad8eaa0e481d9d9a0000000000000000000000000af65e45f4c0bd388f91eeb23cfcd52f4fcdd6ee2a06ff4e7455b233d1c843e23bbf3cec3d9fc3e9ae69e0f014a0494b401215213be", + "gas_used": 25466 + } + }, + { + "traces": { + "0x922f0bd01271383c158fa35fa35d12764b4d1c10": { + "balance": "0x46ebe89b37a6a69", + "nonce": "0x43" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x2986965bcda5af5905b0d", + "storage_read": [ + "0x068ea7fabb40553b59fca32c493ec8b2f36881d42f534d96d639dccae762d6a5", + "0xfb19a963956c9cb662dd3ae48988c4b90766df71ea130109840abe0a1b23dba8" + ], + "storage_written": { + "0xfb19a963956c9cb662dd3ae48988c4b90766df71ea130109840abe0a1b23dba8": "0x0", + "0x068ea7fabb40553b59fca32c493ec8b2f36881d42f534d96d639dccae762d6a5": "0x3d6702f84d6b257c" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x5772a0d261d0b459971fde3bde1dad78b1173b02": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x11e83ef139b1f3652e8b3cae2c", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de70000000000003d6702f84d6b257c000000258f81c38453eadd6b3acd", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x57fca520331991b6e2c1af90d64e42ea33fefc" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x7c978e7d9ee04669efbae39eafc71bf2ab5aba28": { + "storage_read": [ + "0xf837d60bf5d607ebf744b95d0ae4ca9fe63accc7508df3d0f1d28f4ba8482bc0", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0xe5a76513fbf13ce7c68314201a43a2a58b21a309afbb014dec06827264b1e878", + "0x0000000000000000000000000000000000000000000000000000000000000015", + "0x4d8427c8f52a0b7cd3e54865a3172ded6770d0ffff3d50fa08433ec2c3a1c757", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x18ad18b2c5dab6650de951ec73cae49e9845e4f26708fbc10740407f0648f4ef", + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x43c2a0c427dcc294a05e851759957cecdc638e04d78fab6d3eab2283ab9ca6e9", + "0x0000000000000000000000000000000000000000000000000000000000000013", + "0x0000000000000000000000000000000000000000000000000000000000000011", + "0x8c94e4732e794dec759a061b80fe9270d11c96a68b6dcb5e68af5d62e4dbb59f", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000014", + "0x894c49c59c155072eee901a8c580d9b46ecce13d428a96f9d0bf8f8246e4c25e", + "0x000000000000000000000000000000000000000000000000000000000000000c" + ], + "storage_written": { + "0x18ad18b2c5dab6650de951ec73cae49e9845e4f26708fbc10740407f0648f4ef": "0x243ff59dc420647bfba83", + "0xe5a76513fbf13ce7c68314201a43a2a58b21a309afbb014dec06827264b1e878": "0x5142288c6f881fa1c84c72", + "0x0000000000000000000000000000000000000000000000000000000000000015": "0x0", + "0x43c2a0c427dcc294a05e851759957cecdc638e04d78fab6d3eab2283ab9ca6e9": "0x258f81c38453eadd6b3acd", + "0x8c94e4732e794dec759a061b80fe9270d11c96a68b6dcb5e68af5d62e4dbb59f": "0x0" + }, + "code_usage": { + "read": "0x244aad67104f8dc49768dbe094d6b52b332065da3cc678e681c8e1c68cbd9c61" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965b76ddc7b95925" + }, + "0x7a250d5630b4cf539739df2c5dacb4c659f2488d": { + "code_usage": { + "read": "0xa324bc7db3d091b6f1a2d526e48a9c7039e03b3cc35f7d44b15ac7a1544c11d2" + } + }, + "0x4d8412657de85ae6fef885307fb1837dea2a8a60": { + "balance": "0x1d9ebaf21b7a340" + } + }, + "meta": { + "byte_code": "0x02f90172014284458bea058508f7092ab083058924947a250d5630b4cf539739df2c5dacb4c659f2488d80b90104791ac9470000000000000000000000000000000000000000000175aa505884b34237b38e000000000000000000000000000000000000000000000000025df3df381b32b000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000922f0bd01271383c158fa35fa35d12764b4d1c100000000000000000000000000000000000000000000000000000018db2066b4e00000000000000000000000000000000000000000000000000000000000000020000000000000000000000007c978e7d9ee04669efbae39eafc71bf2ab5aba28000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2c001a074458de7638b673bdd49df8079220643d8ffdfe5394cc9bf357491aacc1e53e4a013aa524d0b0392d36a6788423512a1c08a226bd0fcfb05f57bc5957e5232f53d", + "new_txn_trie_node_byte": "0x02f90172014284458bea058508f7092ab083058924947a250d5630b4cf539739df2c5dacb4c659f2488d80b90104791ac9470000000000000000000000000000000000000000000175aa505884b34237b38e000000000000000000000000000000000000000000000000025df3df381b32b000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000922f0bd01271383c158fa35fa35d12764b4d1c100000000000000000000000000000000000000000000000000000018db2066b4e00000000000000000000000000000000000000000000000000000000000000020000000000000000000000007c978e7d9ee04669efbae39eafc71bf2ab5aba28000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2c001a074458de7638b673bdd49df8079220643d8ffdfe5394cc9bf357491aacc1e53e4a013aa524d0b0392d36a6788423512a1c08a226bd0fcfb05f57bc5957e5232f53d", + "new_receipt_trie_node_byte": "0xb9076d02f9076901832dabfeb901000020000000000400000000008000000000000000000000000001000000000000000000000000000000000000000200020200000008000000000000000000000002000000000000a000000008000000200000001000400040000000000000000000000000000010000000000000000000000000000000044000000010000000000000000000000000004000000000000000000000000000080000004000000800000000000100000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000001000000002000020001000200000000000080000000000000000000000008000000000000000000000f9065ef89b947c978e7d9ee04669efbae39eafc71bf2ab5aba28f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000007c978e7d9ee04669efbae39eafc71bf2ab5aba28a00000000000000000000000005772a0d261d0b459971fde3bde1dad78b1173b02a0000000000000000000000000000000000000000000002a5a058fc295ed000000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000005772a0d261d0b459971fde3bde1dad78b1173b02a00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488da0000000000000000000000000000000000000000000000000004adff84d0c3823f879945772a0d261d0b459971fde3bde1dad78b1173b02e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b84000000000000000000000000000000000000000000024250d3305814739590a120000000000000000000000000000000000000000000000003fcce69263584ed8f8fc945772a0d261d0b459971fde3bde1dad78b1173b02f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488da00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488db880000000000000000000000000000000000000000000002a5a058fc295ed00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004adff84d0c3823f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65a00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488da0000000000000000000000000000000000000000000000000004adff84d0c3823f89b947c978e7d9ee04669efbae39eafc71bf2ab5aba28f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000922f0bd01271383c158fa35fa35d12764b4d1c10a00000000000000000000000005772a0d261d0b459971fde3bde1dad78b1173b02a00000000000000000000000000000000000000000000175aa505884b34237b38ef89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000005772a0d261d0b459971fde3bde1dad78b1173b02a00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488da00000000000000000000000000000000000000000000000000265e39a15ed295cf879945772a0d261d0b459971fde3bde1dad78b1173b02e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b840000000000000000000000000000000000000000000258f81c38453eadd6b3acd0000000000000000000000000000000000000000000000003d6702f84d6b257cf8fc945772a0d261d0b459971fde3bde1dad78b1173b02f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488da00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488db880000000000000000000000000000000000000000000016a74907ed2a3a41230bb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000265e39a15ed295cf87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65a00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488da00000000000000000000000000000000000000000000000000265e39a15ed295c", + "gas_used": 216316 + } + }, + { + "traces": { + "0x39da41747a83aee658334415666f3ef92dd0d541": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000006" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xbd12412bb0924f8710a26890f38d22e1055e9e77a7bd9ae68e6d47700e2d915b" + } + }, + "0x2f18f339620a63e43f0839eeb18d7de1e1be4dfb": { + "code_usage": { + "read": "0x97412a7c3c5a8f0a1abc9f387ada2e824748b069188f60a63125dce363a8964d" + } + }, + "0xefe3f3b2c4073b6539aff8467c649c750e8d1feb": { + "balance": "0x6eeb502aa33a34", + "nonce": "0xaa" + }, + "0xc3f8a62be827f4b535096545f6d43cdfba4493e3": { + "balance": "0x6efa607a1d26512" + }, + "0x98661956ed6e2f5fc99c93d909ec28fdc3d48108": { + "code_usage": { + "read": "0xf51d7b64eef813562ccd5dbaad10849b563ae6c90b46681adbb92711027cc53b" + } + }, + "0xab4ce2a08cbea809692218dd7841f681b80069a9": { + "balance": "0x114c9f827d2cb430a" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965d3b6752d32d25" + }, + "0x0000a26b00c1f0df003000390027140000faa719": { + "balance": "0x101eff1597ce547487", + "code_usage": { + "read": "0x0e0a5f7bfe4bf9760a537b808095ac2a9e37c7755f7326691c11c216918166bf" + } + }, + "0xf2f42fb3a746952085f211ff5c0b3a68c2032221": { + "balance": "0x3a822a74abe64d1" + }, + "0x00000000000000adc04c56bf30ac9d3c0aaf14dc": { + "storage_read": [ + "0xd73c37528851bcee8ef8b6f42056ce3f0bb759193179306c472b6d33bc6e228f", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x3be811ce5ee64f2fad20b52ea524f006649d2d52322a46895386d50de98ce976", + "0x97fa93a1f667bc92deeb7b4486705ab18cb1858e1614fceaf81e542781ec9177", + "0xc70fd9802f7900850fd253334e7e85f7ba6695faffcf6f7ce3673023ab47a89c" + ], + "storage_written": { + "0x97fa93a1f667bc92deeb7b4486705ab18cb1858e1614fceaf81e542781ec9177": "0x10000000000000000000000000000010001", + "0xd73c37528851bcee8ef8b6f42056ce3f0bb759193179306c472b6d33bc6e228f": "0x10000000000000000000000000000010001", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x1" + }, + "code_usage": { + "read": "0x30bd6d5686b2afa68fa12d7f8838c8532dbace05325226f4ab2da7ecb0b6ee1b" + } + }, + "0x391a04311e0bfc913ef6fa784773307c826104f0": { + "code_usage": { + "read": "0x878aa3705d972fb969d591e689891f01c0c71e6a6bce6dd546a93c87ce23a208" + } + }, + "0x5fa60726e62c50af45ff2f6280c468da438a7837": { + "code_usage": { + "read": "0xa05c8b15687ab7e7f17964e999ff0edb47f51f8a98eca8e7ea1152a4ac186dab" + } + }, + "0x1e0049783f008a0085193e00003d00cd54003c71": { + "storage_read": [ + "0x73f81e05fe78bb9c03fd7e2026f0245c29102ff947eddf738e68a7faea7f48aa" + ], + "code_usage": { + "read": "0x069efdc9b946a332dce9951324fa197268e3ff0e00e44c6bf36049fc53113a41" + } + }, + "0x7dbc433c92266ab268ae1040837a212b77fec393": { + "storage_read": [ + "0xf713c3724d08c3c350dcefb418b9e8e05c9b5ec02447e515fd4a3d15c7079a19", + "0x9e6fa3d0ac66d1ffc13107fa805e04e9792bd9906f957f7ebd8a6af8c40a99f3", + "0x0ddafdb91bfcb250fb3865e5e85db2ab0aceac46acf0558e102ea730f7c51ffe", + "0x57aa9612125d6f3cb4e7c06b15236c4def26f21a13191b3590f568f23817d3bd", + "0xe1498d806df155d5c136022dc6a752632196b31357d126a268942a71c69e4566", + "0xa7ba506b12094321d0cc5c8d1ff3f9c6257e5ba5f6b1720f8f761133aa4e2991", + "0xbeaccc0ccc3e1da869907ec03ce3b6f59f81b63d7b9efd026cd7b398f3361492", + "0x53bd69fe184e9c9e93429893b9d88023ad3dfde07e51db64b5fd6efa1610a784", + "0x74c0c00da1685e7e6fad59969ea06906e7bc4310246d52a879ef1039fbe7f3a6", + "0x31f38a19fbf7084c937c83798df20981163126def89ae7796e12b2606a2000cb", + "0x4a2f50cd75f19eada169ea203662d799419439ae264e19807674f7b81e159a36", + "0x703a312351ee4bfbf4c690a0ae97342ac544ca1ed0857e8de60c43f1b41730ce", + "0x6384b8c000ebe04ffd2398abfb1552d0d3bba5c04eea07ced514080d491c909e", + "0x474cb8b9ee66bfc7bc2e8cca13d67051e5c97aa3ba695b23f5eca7ff56c0025a", + "0x35ca9dea00d4b425618f62c191702d1775dfce1e9381570d996134eb78179ada", + "0x9aa19bb5acf5dbb530018689b44b199645744b61784ff463f4d4f01007b1b38e", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x703a312351ee4bfbf4c690a0ae97342ac544ca1ed0857e8de60c43f1b41730ce": "0x65cd37aff8857fc8efb51a4f6fad1217602bd8a3bf596ad3", + "0x74c0c00da1685e7e6fad59969ea06906e7bc4310246d52a879ef1039fbe7f3a6": "0x4b0000000000000009", + "0x9e6fa3d0ac66d1ffc13107fa805e04e9792bd9906f957f7ebd8a6af8c40a99f3": "0x3", + "0xa7ba506b12094321d0cc5c8d1ff3f9c6257e5ba5f6b1720f8f761133aa4e2991": "0x65ce9cc7ab4ce2a08cbea809692218dd7841f681b80069a9", + "0x53bd69fe184e9c9e93429893b9d88023ad3dfde07e51db64b5fd6efa1610a784": "0x20000000065cf5de7efe3f3b2c4073b6539aff8467c649c750e8d1feb", + "0x4a2f50cd75f19eada169ea203662d799419439ae264e19807674f7b81e159a36": "0xe000000000000000e", + "0x0ddafdb91bfcb250fb3865e5e85db2ab0aceac46acf0558e102ea730f7c51ffe": "0x20000000065cf5de7efe3f3b2c4073b6539aff8467c649c750e8d1feb", + "0x35ca9dea00d4b425618f62c191702d1775dfce1e9381570d996134eb78179ada": "0x50000000000000000", + "0x6384b8c000ebe04ffd2398abfb1552d0d3bba5c04eea07ced514080d491c909e": "0x20000000065cf5de7efe3f3b2c4073b6539aff8467c649c750e8d1feb" + }, + "code_usage": { + "read": "0xd8b0e93212b19dba6511bf4905e53fd5c2cffaecac66744686cf40f35a7bcc73" + } + }, + "0x0000000000000000000000000000000000000001": {}, + "0x3a574bac669f3b1cb54b92ccbaefbafd07054d96": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0d00", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0d01" + ], + "code_usage": { + "read": "0xfbfee998daa5e6db19836914744060d84aed444c3108a310c6b6f1adbbd7d814" + } + }, + "0xb2ecfe4e4d61f8790bbb9de2d1259b9e2410cea5": { + "storage_read": [ + "0xb5747a556f844e44012d5c61c7cc152a738f258335a0e2776996bc821f8d9a91", + "0x81190a94f6550ce825e1c7521d5e1c08be35e0e1553218150522d169bdefd631", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x00000000000000000000000000000000000000000000000000000000000000fb", + "0x000000000000000000000000000000000000000000000000000000000000012f", + "0x3dc40693fb3bf64b979c0e0b720cba651945e1a1c67007f82f8a170b92d7faf8", + "0x000000000000000000000000000000000000000000000000000000000000015f" + ], + "storage_written": { + "0x00000000000000000000000000000000000000000000000000000000000000fb": "0x1", + "0x81190a94f6550ce825e1c7521d5e1c08be35e0e1553218150522d169bdefd631": "0x1" + }, + "code_usage": { + "read": "0x82dee1d830a79106921dc73f0ebb4758243a04f29c5346ba4f82f58b81ffef72" + } + }, + "0xf8857fc8efb51a4f6fad1217602bd8a3bf596ad3": { + "balance": "0x2567b02cb5b0af5" + }, + "0x000000000000aaeb6d7670e522a718067333cd4e": { + "storage_read": [ + "0x772cff010ba21d2145860eeda2ff154702f57ec0da746c08961eea44f80a8427", + "0x87aac7a904a8c8f55fdf2146118662b8b8251de0b6ce954987311e7875c7b79d", + "0xf7b999eca392ce81950e6e9266d2e8f30b30433b0a191821c210d0506b3c3e5c", + "0x5a10b39775c2808285b7713d610dfb856f330befcb9851a8d7e11c4f13b43448", + "0xc01cee722cb0540e554e32959d226e54855cf1f3fa8158327292aa45c27c3e3a" + ], + "code_usage": { + "read": "0xf81224da2c9fa1872376316fdc140b4b1e9dbf3f4579f37e9671575af143b617" + } + } + }, + "meta": { + "byte_code": "0x02f9161b0181a9843b9aca00850b5899d7d88308081d9439da41747a83aee658334415666f3ef92dd0d5418802a6917cf0198000b915a49a2b811500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000010a0000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000001c331d3be79800000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000fc409c5eabe00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000f6487201b4100000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000bc00000000000000000000000000000000000000000000000000000000000000be00000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000001c331d3be7980000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005e000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000580000000000000000000000000f8857fc8efb51a4f6fad1217602bd8a3bf596ad3000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf5da50000000000000000000000000000000000000000000000000000000065f599250000000000000000000000000000000000000000000000000000000000000000360c6ebe0000000000000000000000000000000000000000323ae04dce84c8210000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec39300000000000000000000000000000000000000000000000000000000000004db00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0ad71ee7e980000000000000000000000000000000000000000000000000000d0ad71ee7e9800000000000000000000000000f8857fc8efb51a4f6fad1217602bd8a3bf596ad30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005a3d2a594b8000000000000000000000000000000000000000000000000000005a3d2a594b8000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b47a54b297000000000000000000000000000000000000000000000000000000b47a54b297000000000000000000000000000f2f42fb3a746952085f211ff5c0b3a68c20322210000000000000000000000000000000000000000000000000000000000000040944451062021c7446a14884406e5d4a300d30b1d3c17b4249e706cab17c7e2d73210b68dfaf9f64243437cba9cbfde1062ea87e67df06daeee8dc4a440bf673e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000004c0000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf0c8e0000000000000000000000000000000000000000000000000000000065f6998eeaa4e38354fae4dbd1e23fbce23172428905ac8027cedaaaf916ab216bab69a172db8c0b000000000000000000000000000000000000000029758682e21040200000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec3930000000000000000000000000000000000000000000000000000000000000ebb00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e078262485680000000000000000000000000000000000000000000000000000e0782624856800000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120c3bab75800000000000000000000000000000000000000000000000000000120c3bab758000000000000000000000000000000a26b00c1f0df003000390027140000faa7190000000000000000000000000000000000000000000000000000000000000040e1414e04823f02dffb7aa52ed64ae0dc1fa84abf78946e7c05f816dc20a289365788e8959b51316959d8e1d9cfa9ded106ba0ba9e799b27e9649befd626d38b3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000e35fa931a000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000042470bce2d6000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000c3f8a62be827f4b535096545f6d43cdfba4493e30000000000000000000000007dbc433c92266ab268ae1040837a212b77fec393fa8fa1a6af21082484de17bb69e3c7d147f910c67d5f4734bf21dee87ee5f73300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000065d8983c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000049b05abb0de0abe411367333a02501b00000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000efe3f3b2c4073b6539aff8467c649c750e8d1feb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bf7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000e35fa931a000000000000000000000000000000000000000000000000000000000000000000bf7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041bde87d54b6087d9e26b95a66c5c4ff65c09fdf68c652bb64528bccf3793187da4cca15d66b87990e6247de2b6d169201dbe2d95a454063ef8b631425114c2c6f1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059acf63da7828add5750bd3af837074112573804fc28d5fbde323057aa8cb947ea302a5e1991385ea8daec755d676abbdc0b60e5f4f125396684b46252c873a2251c012596c86af68e5d010513ff70a3aaed9afeb8661116e6ce0000000000000000000000000000000000000000000000000000000000000000000000c001a0671b23faa042c3a26a553065a57cd1c5ce5a0043d34d15c73d283287f0a6a5e4a06ffc24e0932d38999f24761519a050ace76c562294bea9027068f7b600928f24", + "new_txn_trie_node_byte": "0x02f9161b0181a9843b9aca00850b5899d7d88308081d9439da41747a83aee658334415666f3ef92dd0d5418802a6917cf0198000b915a49a2b811500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000010a0000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000001c331d3be79800000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000fc409c5eabe00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000f6487201b4100000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000bc00000000000000000000000000000000000000000000000000000000000000be00000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000001c331d3be7980000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005e000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000580000000000000000000000000f8857fc8efb51a4f6fad1217602bd8a3bf596ad3000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf5da50000000000000000000000000000000000000000000000000000000065f599250000000000000000000000000000000000000000000000000000000000000000360c6ebe0000000000000000000000000000000000000000323ae04dce84c8210000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec39300000000000000000000000000000000000000000000000000000000000004db00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0ad71ee7e980000000000000000000000000000000000000000000000000000d0ad71ee7e9800000000000000000000000000f8857fc8efb51a4f6fad1217602bd8a3bf596ad30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005a3d2a594b8000000000000000000000000000000000000000000000000000005a3d2a594b8000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b47a54b297000000000000000000000000000000000000000000000000000000b47a54b297000000000000000000000000000f2f42fb3a746952085f211ff5c0b3a68c20322210000000000000000000000000000000000000000000000000000000000000040944451062021c7446a14884406e5d4a300d30b1d3c17b4249e706cab17c7e2d73210b68dfaf9f64243437cba9cbfde1062ea87e67df06daeee8dc4a440bf673e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000004c0000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf0c8e0000000000000000000000000000000000000000000000000000000065f6998eeaa4e38354fae4dbd1e23fbce23172428905ac8027cedaaaf916ab216bab69a172db8c0b000000000000000000000000000000000000000029758682e21040200000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec3930000000000000000000000000000000000000000000000000000000000000ebb00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e078262485680000000000000000000000000000000000000000000000000000e0782624856800000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120c3bab75800000000000000000000000000000000000000000000000000000120c3bab758000000000000000000000000000000a26b00c1f0df003000390027140000faa7190000000000000000000000000000000000000000000000000000000000000040e1414e04823f02dffb7aa52ed64ae0dc1fa84abf78946e7c05f816dc20a289365788e8959b51316959d8e1d9cfa9ded106ba0ba9e799b27e9649befd626d38b3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000e35fa931a000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000042470bce2d6000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000c3f8a62be827f4b535096545f6d43cdfba4493e30000000000000000000000007dbc433c92266ab268ae1040837a212b77fec393fa8fa1a6af21082484de17bb69e3c7d147f910c67d5f4734bf21dee87ee5f73300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000065d8983c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000049b05abb0de0abe411367333a02501b00000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000efe3f3b2c4073b6539aff8467c649c750e8d1feb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bf7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000e35fa931a000000000000000000000000000000000000000000000000000000000000000000bf7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041bde87d54b6087d9e26b95a66c5c4ff65c09fdf68c652bb64528bccf3793187da4cca15d66b87990e6247de2b6d169201dbe2d95a454063ef8b631425114c2c6f1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059acf63da7828add5750bd3af837074112573804fc28d5fbde323057aa8cb947ea302a5e1991385ea8daec755d676abbdc0b60e5f4f125396684b46252c873a2251c012596c86af68e5d010513ff70a3aaed9afeb8661116e6ce0000000000000000000000000000000000000000000000000000000000000000000000c001a0671b23faa042c3a26a553065a57cd1c5ce5a0043d34d15c73d283287f0a6a5e4a06ffc24e0932d38999f24761519a050ace76c562294bea9027068f7b600928f24", + "new_receipt_trie_node_byte": "0xb90a2402f90a2001833543a0b9010000000000400006000000000000000020000040000000000000000000000000010000000004040000000000000000000000000000000000000000000010000000000000000100020000000038000000000000000000000800000000002000000000000000000200000000000400000000440000000000000040000010000000040000000000000000040000000000000000000000080000000000000000000000880000000000080000000000100000400000200000000002000000000000800000000002000000000080000000000000001000000000000000000000000000000000000000000000000000000000000000100000000802000000000020000008f90915f9039d9400000000000000adc04c56bf30ac9d3c0aaf14dcf863a09d9af8e38d66c62e2c12f0225249fd9d721c54b83f48d9352c97c6cacdcb6f31a0000000000000000000000000f8857fc8efb51a4f6fad1217602bd8a3bf596ad3a0000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c00b90320736efbdbc37a71f121a25dc4151e5111d0aab9d9f0959e6504059dd239594c83000000000000000000000000efe3f3b2c4073b6539aff8467c649c750e8d1feb00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec39300000000000000000000000000000000000000000000000000000000000004db0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0ad71ee7e9800000000000000000000000000f8857fc8efb51a4f6fad1217602bd8a3bf596ad30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005a3d2a594b8000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b47a54b297000000000000000000000000000f2f42fb3a746952085f211ff5c0b3a68c2032221f902fd9400000000000000adc04c56bf30ac9d3c0aaf14dcf863a09d9af8e38d66c62e2c12f0225249fd9d721c54b83f48d9352c97c6cacdcb6f31a0000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9a0000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c00b90280a2cc2f59aa30e00d2b6a9fa00e428baeeb766266c6c320f1f703038f5f06698d000000000000000000000000efe3f3b2c4073b6539aff8467c649c750e8d1feb00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec3930000000000000000000000000000000000000000000000000000000000000ebb0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0782624856800000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120c3bab758000000000000000000000000000000a26b00c1f0df003000390027140000faa719f89c947dbc433c92266ab268ae1040837a212b77fec393f884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000f8857fc8efb51a4f6fad1217602bd8a3bf596ad3a0000000000000000000000000efe3f3b2c4073b6539aff8467c649c750e8d1feba000000000000000000000000000000000000000000000000000000000000004db80f89c947dbc433c92266ab268ae1040837a212b77fec393f884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9a0000000000000000000000000efe3f3b2c4073b6539aff8467c649c750e8d1feba00000000000000000000000000000000000000000000000000000000000000ebb80f89c947dbc433c92266ab268ae1040837a212b77fec393f884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000c3f8a62be827f4b535096545f6d43cdfba4493e3a0000000000000000000000000efe3f3b2c4073b6539aff8467c649c750e8d1feba00000000000000000000000000000000000000000000000000000000000000bf780f89994b2ecfe4e4d61f8790bbb9de2d1259b9e2410cea5e1a01d5e12b51dee5e4d34434576c3fb99714a85f57b0fd546ada4b0bddd736d12b2b86094d01ef70650e957198f57db918d4e463230f5ed263249436d1c9091dc9f73600000000000000000000bf700c3f8a62be827f4b535096545f6d43cdfba4493e30000000000e35fa931a000007dbc433c92266ab268ae1040837a212b77fec393", + "gas_used": 497570 + } + }, + { + "traces": { + "0x5c6423f1a5969ec0f20cce19d5f8c7744916ab8c": { + "balance": "0x29c8000378176ed" + }, + "0xb2ecfe4e4d61f8790bbb9de2d1259b9e2410cea5": { + "storage_read": [ + "0x00000000000000000000000000000000000000000000000000000000000000fb", + "0x000000000000000000000000000000000000000000000000000000000000012f", + "0x3dc40693fb3bf64b979c0e0b720cba651945e1a1c67007f82f8a170b92d7faf8", + "0x000000000000000000000000000000000000000000000000000000000000015f", + "0x6e2d2be45e6b106b84adfe8b8541cbd80c5d6317a4fcfbff62aca29457c874ea", + "0xd820c9ba768c98a359b0ec47a56a0f29384fea315a1779c212c1ee8df43f2d47", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" + ], + "storage_written": { + "0x00000000000000000000000000000000000000000000000000000000000000fb": "0x1", + "0xd820c9ba768c98a359b0ec47a56a0f29384fea315a1779c212c1ee8df43f2d47": "0x1" + }, + "code_usage": { + "read": "0x82dee1d830a79106921dc73f0ebb4758243a04f29c5346ba4f82f58b81ffef72" + } + }, + "0x0000000000000000000000000000000000000001": {}, + "0xcca4ba7eb2181c03ed041c76f9f815f16e8af5e1": { + "balance": "0x31406d82fc0c91", + "nonce": "0x33" + }, + "0x2f18f339620a63e43f0839eeb18d7de1e1be4dfb": { + "code_usage": { + "read": "0x97412a7c3c5a8f0a1abc9f387ada2e824748b069188f60a63125dce363a8964d" + } + }, + "0x2e541cec5cb41e7678ac3c8e91acb3fc1db0da07": { + "storage_read": [ + "0x69c162d4b16dab00e4b48678232a6d404d9424903a2ad976778a73f7ae4b619f", + "0xd1de8d39ede86dfba836745954b3f07acd7c093f7ac924f0d33facfd169bbddb", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0xe3883606ab3a5626a5a66e4b934e5aa446df1b3abb47e4436ddd7b5da7e34701", + "0x2b14981472a58efb8317d14e21946efae3bc7c9fdabd535f70c6168eac4e850c", + "0x664211ab5e5ba0a89da293562ce07663319979670087bc7f5a03089843ba7146" + ], + "storage_written": { + "0x2b14981472a58efb8317d14e21946efae3bc7c9fdabd535f70c6168eac4e850c": "0x1", + "0xe3883606ab3a5626a5a66e4b934e5aa446df1b3abb47e4436ddd7b5da7e34701": "0x0", + "0x69c162d4b16dab00e4b48678232a6d404d9424903a2ad976778a73f7ae4b619f": "0xcca4ba7eb2181c03ed041c76f9f815f16e8af5e1", + "0x664211ab5e5ba0a89da293562ce07663319979670087bc7f5a03089843ba7146": "0x1" + }, + "code_usage": { + "read": "0x3ea63173a3aa0275a3948144acdc51b57f41ef616e1f6934696c02bb2af6aae5" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965dcaefb971dd25" + }, + "0x5fa60726e62c50af45ff2f6280c468da438a7837": { + "code_usage": { + "read": "0xa05c8b15687ab7e7f17964e999ff0edb47f51f8a98eca8e7ea1152a4ac186dab" + } + }, + "0xb4c1d3f047583c596a0dbf423b37118f42da97c1": { + "balance": "0x5422d08cda5431d" + } + }, + "meta": { + "byte_code": "0x02f9049d0132843b9aca00850b5899d7d8830296c694b2ecfe4e4d61f8790bbb9de2d1259b9e2410cea587354a6ba7a18000b9042870bce2d6000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000005c6423f1a5969ec0f20cce19d5f8c7744916ab8c0000000000000000000000002e541cec5cb41e7678ac3c8e91acb3fc1db0da07639ff6e7c56b89cddf35bb68547465d2c8f87992e0d1cc997c0aebd4b8a40b9f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000065d881490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b4c1d3f047583c596a0dbf423b37118f42da97c100000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000d3b9bcaf036b1b2a8c10133eb11bc1a00000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000cca4ba7eb2181c03ed041c76f9f815f16e8af5e100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017c7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000354a6ba7a1800000000000000000000000000000000000000000000000000000000000000017c700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004178826b8ad2817d6c2877207c12ba5d116b017a3cc6bf511a9b734c6e311bf9ea1bd54430a76087a9bcb09f41128a9ac76ea7fcb23fc367d580bd923d7d59124b1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059747b7cbb17f19186e94d03d75cacf59ddd2b916faf8e066697be0e1585af19e433f9f2bcc5f8c4ad226c172f136d00fefc10fb602923f9a582f60f27edacce8f1b012596c86af68e5d010513ff70a3aaed9afeb8661116e6ce00000000000000332d1229c080a0cbbe7b51653d02569f4dff85b23d326ddece08b115a962dbec1b619c8422a4eba01ddf0292d38b588c95c50630fe443541a6529f02b3c1abbff4040adba7e0058d", + "new_txn_trie_node_byte": "0x02f9049d0132843b9aca00850b5899d7d8830296c694b2ecfe4e4d61f8790bbb9de2d1259b9e2410cea587354a6ba7a18000b9042870bce2d6000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000005c6423f1a5969ec0f20cce19d5f8c7744916ab8c0000000000000000000000002e541cec5cb41e7678ac3c8e91acb3fc1db0da07639ff6e7c56b89cddf35bb68547465d2c8f87992e0d1cc997c0aebd4b8a40b9f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000065d881490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b4c1d3f047583c596a0dbf423b37118f42da97c100000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000d3b9bcaf036b1b2a8c10133eb11bc1a00000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000cca4ba7eb2181c03ed041c76f9f815f16e8af5e100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017c7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000354a6ba7a1800000000000000000000000000000000000000000000000000000000000000017c700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004178826b8ad2817d6c2877207c12ba5d116b017a3cc6bf511a9b734c6e311bf9ea1bd54430a76087a9bcb09f41128a9ac76ea7fcb23fc367d580bd923d7d59124b1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059747b7cbb17f19186e94d03d75cacf59ddd2b916faf8e066697be0e1585af19e433f9f2bcc5f8c4ad226c172f136d00fefc10fb602923f9a582f60f27edacce8f1b012596c86af68e5d010513ff70a3aaed9afeb8661116e6ce00000000000000332d1229c080a0cbbe7b51653d02569f4dff85b23d326ddece08b115a962dbec1b619c8422a4eba01ddf0292d38b588c95c50630fe443541a6529f02b3c1abbff4040adba7e0058d", + "new_receipt_trie_node_byte": "0xb9030602f90302018337ac18b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000200100000000000000000000000029002000000002000000000000000000200000000000000000020000000000000000000800000000000000000000000010000000000000000200000000008000002000000000000000000000000000000000000000020040000000000000800000000000000000000000080000000000000000000000000002000000000000000000000000010000000000000000000000000020000050000000000004000000000000000000000000000000000000000020000008f901f7f89c942e541cec5cb41e7678ac3c8e91acb3fc1db0da07f884a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a00000000000000000000000005c6423f1a5969ec0f20cce19d5f8c7744916ab8ca00000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000017c780f89c942e541cec5cb41e7678ac3c8e91acb3fc1db0da07f884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000005c6423f1a5969ec0f20cce19d5f8c7744916ab8ca0000000000000000000000000cca4ba7eb2181c03ed041c76f9f815f16e8af5e1a000000000000000000000000000000000000000000000000000000000000017c780f8b994b2ecfe4e4d61f8790bbb9de2d1259b9e2410cea5e1a07dc5c0699ac8dd5250cbe368a2fc3b4a2daadb120ad07f6cccea29f83482686eb880b98f612772cf104ccb64d14bbf7d5428d85ba3ee302fdf7796151737553e17d400000000000000000017c7005c6423f1a5969ec0f20cce19d5f8c7744916ab8c0000000000354a6ba7a180002e541cec5cb41e7678ac3c8e91acb3fc1db0da070000000000000000000003e8b4c1d3f047583c596a0dbf423b37118f42da97c1", + "gas_used": 157816 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965dfdd8e2a53725" + }, + "0xd108d3026f6f0c3fd58ef154203bc418c4d6eec9": { + "storage_read": [ + "0xe8b01d6666c0e367b657f26eb8c7dfbade96913d19b26955f1decbe079c793cb", + "0xe24f423d085faac56d980db2adf2441ccece54a6adad755e6187e716b9278bcc", + "0x8678125fa6066cfbcf6b7b52562e84a466b97006da76f369bffb9393f3ec070e", + "0x4cebefae5d7033d7dbe8416e6e28d2d7e387622d2dca178ffb4e42a28895278e" + ], + "storage_written": { + "0x4cebefae5d7033d7dbe8416e6e28d2d7e387622d2dca178ffb4e42a28895278e": "0x16614ff077", + "0xe8b01d6666c0e367b657f26eb8c7dfbade96913d19b26955f1decbe079c793cb": "0x2dae560" + }, + "code_usage": { + "read": "0x959a67ec5051f17302924eb4712621132aea7bad2b654ffefc46f985f8ef8ba5" + } + }, + "0x7d1b193701b390893736b557fbf7c2851344f64c": { + "balance": "0x1432c3b7f24772530", + "nonce": "0x11a1" + } + }, + "meta": { + "byte_code": "0x02f8b3018211a0843b9aca008520264d268e83013c5194d108d3026f6f0c3fd58ef154203bc418c4d6eec980b844a9059cbb00000000000000000000000004a158dc9d35fda9af880b6b581512d6ece78f310000000000000000000000000000000000000000000000000000000002dae560c080a021f96523d42f89ac54887bfd054efbb208ef6fe1c6f2accca33a21d13372a510a0386337d9cb75f7bb0afd62f38c6e8ab23ea38c7cbd6417aaab9f11fab227112b", + "new_txn_trie_node_byte": "0x02f8b3018211a0843b9aca008520264d268e83013c5194d108d3026f6f0c3fd58ef154203bc418c4d6eec980b844a9059cbb00000000000000000000000004a158dc9d35fda9af880b6b581512d6ece78f310000000000000000000000000000000000000000000000000000000002dae560c080a021f96523d42f89ac54887bfd054efbb208ef6fe1c6f2accca33a21d13372a510a0386337d9cb75f7bb0afd62f38c6e8ab23ea38c7cbd6417aaab9f11fab227112b", + "new_receipt_trie_node_byte": "0xb901ab02f901a701833886c1b9010000000000000000000000000000000400000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000010000000000000000000000000008000000000000000000000000000000000000000000000010000000000000000000000000040000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000080000000000000000000020040000000000000000000000000000020f89df89b94d108d3026f6f0c3fd58ef154203bc418c4d6eec9f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000007d1b193701b390893736b557fbf7c2851344f64ca000000000000000000000000004a158dc9d35fda9af880b6b581512d6ece78f31a00000000000000000000000000000000000000000000000000000000002dae560", + "gas_used": 55977 + } + }, + { + "traces": { + "0x03f911aedc25c770e701b8f563e8102cfacd62c0": { + "code_usage": { + "read": "0x16e44788a6099cb07f7e622ea0a39073a70314acb7e7f005767db44f43b5c08b" + } + }, + "0xad6c2647dfedf1bcaf56667b8d85e170bbdf88f3": { + "balance": "0x16c2dcef165fbbb3c", + "nonce": "0x49" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298693b9be192cf35d2a8", + "storage_read": [ + "0x5defccebecd74077aa0ce566544361c4953269120956a662e3572c4a19339eec", + "0xa78c3571170f7dcd4a9be5fc007f2e41d0568b2d304d741c66b27ec22dd33cfe", + "0xb88ecc12f0a13010069fe31a467d8303b57edd225d4fb5fdf4e66214cbc6765a" + ], + "storage_written": { + "0x5defccebecd74077aa0ce566544361c4953269120956a662e3572c4a19339eec": "0xf5490ce204cfd68c", + "0xa78c3571170f7dcd4a9be5fc007f2e41d0568b2d304d741c66b27ec22dd33cfe": "0x0", + "0xb88ecc12f0a13010069fe31a467d8303b57edd225d4fb5fdf4e66214cbc6765a": "0x426c8a27e790725d9" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xf3de3c0d654fda23dad170f0f320a92172509127": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xe5b4a5c24225a0ec7687716ddb6728a7321fa50d7362c3a5acfe55e57b4b9564" + } + }, + "0x40aa958dd87fc8305b97f2ba922cddca374bcd7f": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000065" + ], + "code_usage": { + "read": "0xe8711c5f0fe7f3c28078140bb97b65aa015a58c06c14bad5abffa44f00f1ddf5" + } + }, + "0x19c1f6c7468ad4076b05a5f79e3ee80ce0064718": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xc0d1c00078410fd0164580b0bad93d8a579580d06cf45fc2696a823498097b8a" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x100000100010000fe0f320000000000000000007179b241b1a13dad60f46c", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0xef4cfd83ebc1619b44e785ee4c322a56bc" + }, + "code_usage": { + "read": "0x5218d91b409a649690db747c01aae184e43ffcab370003931ff590f24e0c6959" + } + }, + "0x031f1ad10547b8deb43a36e5491c06a93812023a": { + "code_usage": { + "read": "0x42290cbae7bd289ad5b81422508cf767bdd8427c81e166768650e5ce83dfd1ae" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965e7766d138d025" + }, + "0x70cbb871e8f30fc8ce23609e9e0ea87b6b222f58": { + "storage_read": [ + "0xfca24f26881178fbb721486fd81006a8a2f47f9f9479f3a10e978c0ededf333a", + "0x0000000000000000000000000000000000000000000000000000000000000066" + ], + "code_usage": { + "read": "0xb6a0916f3f4f33110bd1c57652c6e21f4beb32ffcfb50124f8b51cb5cee61f04" + } + }, + "0x7eec7a4e6ab3cce23ccc41b8601282716b9eadf4": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de700000000000426c8a27e790725d900000014ffe1cba8af17c1b47654", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0xb8a87405d9a4f2f866319b77004e88dff66c0d92": { + "storage_read": [ + "0x94b6d243156a4a59cfd6dc4d12219c4621790f78c98fccfd73e1d8763a6b3a17", + "0xc659b99e79fe0de30a460bd9c30c4e566718ff6cfdcd6379dd0e4e03da9bdc33", + "0xb04ceb61f5c03b733b515e10ff854b0fc2e559ff6d9ba0459129639a17705c0a", + "0x4bfebf24978275179447f7cf6e42e1eec9a958f687caae1285b31998802c28db", + "0xc977d8657d85c62ce038bea14e58534072449ab086117302462d707bf1d74106", + "0x69842cf0ef2707802b5592d1cc1de8d0ce772a62790dbaabbd98149afa409167", + "0xa924edc4f8a729e1cee77dc13cab779edc716fa82201b3b4c481116893df3027", + "0x417b2505f46acd6f2860512dde808e2aa51fb2f07b2353fcfa8a9b2f66dfae0e", + "0x98ffe5e074b5480f3a14e6a6b2f49c4eec478f903b9a445f54a17e0ce6a79946", + "0xf21cebc87207a45343dbb33a2512a7ff11e6222d87d2759dc5745a55f3df1144", + "0x27e9f812186791d033a8f9881ee8bf032f697cd280803eba6d746cdf852e1cec", + "0x7f77ab918e11f5a3aa1b83e7fa69b47af3f5cac0a670bc62399e74e5d1d52107", + "0x574f2c7846ea00d55f928c6f89bf9747d387dfd60d537b61bc628984ec954359", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x65b4472f50deaf0b000c8fe050adfbe765d8ed43c5b2a6d53388b95c0ea2bd9f", + "0xe9df5837f3bcbb1790cb137a41af6668249cf34a286d7ed605320e67c6c23eb4", + "0xdc659d23db7e81f01bd114cf34d2713f8f5298c0dfa6e888cb2e5452e1da6bd9", + "0x0000000000000000000000000000000000000000000000000000000000000014", + "0x970ed9cd9741b4afe0d78fd355c8ff7cc4ba99e1a2761b359a6843f105b37df5", + "0x000000000000000000000000000000000000000000000000000000000000001d", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0xe0af14e9300205f069e33cd65f2604ae8648da4c24f245f61eb9ebc19a7331ba" + ], + "storage_written": { + "0x65b4472f50deaf0b000c8fe050adfbe765d8ed43c5b2a6d53388b95c0ea2bd9f": "0x14ffe1cba8af17c1b47654", + "0x98ffe5e074b5480f3a14e6a6b2f49c4eec478f903b9a445f54a17e0ce6a79946": "0xfffffffffffffffffffffffffffffffffffffffffffe51623ae084b62bcf71b2", + "0xe0af14e9300205f069e33cd65f2604ae8648da4c24f245f61eb9ebc19a7331ba": "0x1", + "0x417b2505f46acd6f2860512dde808e2aa51fb2f07b2353fcfa8a9b2f66dfae0e": "0x0", + "0xf21cebc87207a45343dbb33a2512a7ff11e6222d87d2759dc5745a55f3df1144": "0x12c5bcbab6174bacea1dd6" + }, + "code_usage": { + "read": "0xa47998f0fcceee76c553f9f49703070078f39a295bd103fff52cd766c9b60168" + } + } + }, + "meta": { + "byte_code": "0x02f905b20148841dcd65008508245098408307778494f3de3c0d654fda23dad170f0f320a9217250912780b90544b80c2f090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d92000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000000000000000000000000d3c21bcecceda101a4ce00000000000000000000000000000000000000000000000028b677a4cfc50cb90000000000000000000000000000000000000000000000000000000065cf6b28000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000520000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000d3c21bcecceda101a4ce000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d92000000000000000000000000000000000000000000000000000000000000000200000000000000000000000003f911aedc25c770e701b8f563e8102cfacd62c0000000000000000000000000031f1ad10547b8deb43a36e5491c06a93812023a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000003f911aedc25c770e701b8f563e8102cfacd62c00000000000000000000000007eec7a4e6ab3cce23ccc41b8601282716b9eadf4000000000000000000000000000000000000000000000000000000000000000200000000000000000000151819c1f6c7468ad4076b05a5f79e3ee80ce00647180000000000000000000011f87eec7a4e6ab3cce23ccc41b8601282716b9eadf400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d92000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000c001a0d9345ec08648861ff9190ece74db3b5fda67703609aec1928bf87431584fb2dca06523f825dd3781d58e5dc3e91015b6b8f0656e85f56cc42e9a72cef08d340c86", + "new_txn_trie_node_byte": "0x02f905b20148841dcd65008508245098408307778494f3de3c0d654fda23dad170f0f320a9217250912780b90544b80c2f090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d92000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000000000000000000000000d3c21bcecceda101a4ce00000000000000000000000000000000000000000000000028b677a4cfc50cb90000000000000000000000000000000000000000000000000000000065cf6b28000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000520000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000d3c21bcecceda101a4ce000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d92000000000000000000000000000000000000000000000000000000000000000200000000000000000000000003f911aedc25c770e701b8f563e8102cfacd62c0000000000000000000000000031f1ad10547b8deb43a36e5491c06a93812023a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000003f911aedc25c770e701b8f563e8102cfacd62c00000000000000000000000007eec7a4e6ab3cce23ccc41b8601282716b9eadf4000000000000000000000000000000000000000000000000000000000000000200000000000000000000151819c1f6c7468ad4076b05a5f79e3ee80ce00647180000000000000000000011f87eec7a4e6ab3cce23ccc41b8601282716b9eadf400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d92000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000c001a0d9345ec08648861ff9190ece74db3b5fda67703609aec1928bf87431584fb2dca06523f825dd3781d58e5dc3e91015b6b8f0656e85f56cc42e9a72cef08d340c86", + "new_receipt_trie_node_byte": "0xb909a302f9099f01833c9ae6b9010000200000000801000000000080000800100000000000000000000000000000000002000000000000020000000000000002008000080060000000000080200004000000010220000900000008800000200000000000400000000000000001900000000000000000000008020000000009000000000000040000000010000800000000000000000000000000000000000000000000000000080000004040000000020000004000000208000040080000000001000000000200000000000000000040000002000000100000000000010000000000020000001000000002000000000010200008000000000000000000000000000000008000000000000000000004f90894f85894f3de3c0d654fda23dad170f0f320a92172509127e1a07724394874fdd8ad13292ec739b441f85c6559f10dc4141b8d4c0fa4cbf55bdba00000000000000000000000000000000000000000000000000000000000000000f89b94b8a87405d9a4f2f866319b77004e88dff66c0d92f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000ad6c2647dfedf1bcaf56667b8d85e170bbdf88f3a000000000000000000000000003f911aedc25c770e701b8f563e8102cfacd62c0a0000000000000000000000000000000000000000000007259756a8d619980e33cf89b94b8a87405d9a4f2f866319b77004e88dff66c0d92f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000ad6c2647dfedf1bcaf56667b8d85e170bbdf88f3a000000000000000000000000040aa958dd87fc8305b97f2ba922cddca374bcd7fa0fffffffffffffffffffffffffffffffffffffffffffeb2cae144c44233503343f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000019c1f6c7468ad4076b05a5f79e3ee80ce0064718a0000000000000000000000000f3de3c0d654fda23dad170f0f320a92172509127a0000000000000000000000000000000000000000000000000169336c24caa8c52f89b94b8a87405d9a4f2f866319b77004e88dff66c0d92f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000003f911aedc25c770e701b8f563e8102cfacd62c0a000000000000000000000000019c1f6c7468ad4076b05a5f79e3ee80ce0064718a0000000000000000000000000000000000000000000007259756a8d619980e33cf9011c9419c1f6c7468ad4076b05a5f79e3ee80ce0064718f863a0c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67a000000000000000000000000003f911aedc25c770e701b8f563e8102cfacd62c0a0000000000000000000000000f3de3c0d654fda23dad170f0f320a92172509127b8a0000000000000000000000000000000000000000000007259756a8d619980e33cffffffffffffffffffffffffffffffffffffffffffffffffe96cc93db35573ae0000000000000000000000000000000000000000007179b241b1a13dad60f46c000000000000000000000000000000000000000000000d5323c032a1f933762dfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0f32f89b94b8a87405d9a4f2f866319b77004e88dff66c0d92f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000ad6c2647dfedf1bcaf56667b8d85e170bbdf88f3a00000000000000000000000007eec7a4e6ab3cce23ccc41b8601282716b9eadf4a0000000000000000000000000000000000000000000006168a6643f8c0780c191f89b94b8a87405d9a4f2f866319b77004e88dff66c0d92f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000ad6c2647dfedf1bcaf56667b8d85e170bbdf88f3a000000000000000000000000040aa958dd87fc8305b97f2ba922cddca374bcd7fa0fffffffffffffffffffffffffffffffffffffffffffe51623ae084b62bcf71b2f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000007eec7a4e6ab3cce23ccc41b8601282716b9eadf4a0000000000000000000000000f3de3c0d654fda23dad170f0f320a92172509127a0000000000000000000000000000000000000000000000000138dc205d9affc13f879947eec7a4e6ab3cce23ccc41b8601282716b9eadf4e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b84000000000000000000000000000000000000000000014ffe1cba8af17c1b4765400000000000000000000000000000000000000000000000426c8a27e790725d9f8fc947eec7a4e6ab3cce23ccc41b8601282716b9eadf4f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a0000000000000000000000000031f1ad10547b8deb43a36e5491c06a93812023aa0000000000000000000000000f3de3c0d654fda23dad170f0f320a92172509127b880000000000000000000000000000000000000000000006168a6643f8c0780c19100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000138dc205d9affc13f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65a0000000000000000000000000f3de3c0d654fda23dad170f0f320a92172509127a00000000000000000000000000000000000000000000000002a20f8c8265a8865f8d994f3de3c0d654fda23dad170f0f320a92172509127e1a01bb43f2da90e35f7b0cf38521ca95a49e68eb42fac49924930a5bd73cdf7576cb8a0000000000000000000000000b8a87405d9a4f2f866319b77004e88dff66c0d92000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000ad6c2647dfedf1bcaf56667b8d85e170bbdf88f300000000000000000000000000000000000000000000d3c21bcecceda101a4ce0000000000000000000000000000000000000000000000002a20f8c8265a8865", + "gas_used": 267301 + } + }, + { + "traces": { + "0xea2e28d5e6fb270a2059b6704443b92e163cf773": { + "balance": "0xe1e6a619e997e", + "nonce": "0x3" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965e9f0975d6c325" + }, + "0x4c045482551d0ca3e6078261ef4debda3523647d": { + "code_usage": { + "read": "0x78904b84122ead84066009add20f5665a39595fc560f4f0413b0c814c44049cd" + } + }, + "0x89a56ff41a4be1360f780c5abfba8fd7eced2c7a": { + "balance": "0x9e23de221ca058d0", + "storage_read": [ + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0xf6fe0582e0e323a551f456b66350a1ed549948a34fdd35be011d229e00171c1f", + "0x70f0f0296212959010054ace1e2e48e1b74d027b5145caf43ffccfec41e447e4", + "0xe34b8b74e1cdcaa1b90aa77af7dd89e496ad9a4ae4a4d4759712101c7da2dce7", + "0x70f0f0296212959010054ace1e2e48e1b74d027b5145caf43ffccfec41e447e5", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xe34b8b74e1cdcaa1b90aa77af7dd89e496ad9a4ae4a4d4759712101c7da2dce6", + "0xe34b8b74e1cdcaa1b90aa77af7dd89e496ad9a4ae4a4d4759712101c7da2dce8" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1", + "0xe34b8b74e1cdcaa1b90aa77af7dd89e496ad9a4ae4a4d4759712101c7da2dce7": "0x99cdde4366881feb" + }, + "code_usage": { + "read": "0x60dac91861bb83ca86316dd746eeb38d13b6c1788cdf7042fb489a97358cd9b2" + } + }, + "0xe47a951f3bc6faf65a7a7074b9ad745f17084f98": { + "code_usage": { + "read": "0x5743c0932b7f4d4effdbfd16acde797fa136ed5ba75bf499ddd26ff9d8b8a6e1" + } + }, + "0xb20f0105f3598652a3be569132f7b3f341106ddc": { + "balance": "0x3bd19df667d8000", + "storage_read": [ + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0xf0ae10cbc4b7e5d41a3a6c7f530e4919b2e487e56976cad1b0bf6c5c77e67915", + "0x0000000000000000000000000000000000000000000000000000000000000065", + "0xc6419d95c4132a6457e75ba0e17ba38918f9ac611f6ef582ecdce38765572ff1" + ], + "storage_written": { + "0xc6419d95c4132a6457e75ba0e17ba38918f9ac611f6ef582ecdce38765572ff1": "0x9ba" + }, + "code_usage": { + "read": "0x8d18f2dc05cfbba5333e0f874f47383a3f153de5e5db88b1bf50c41ec8a4ff2a" + } + } + }, + "meta": { + "byte_code": "0x02f8d80102841dcd65008508cc571f008301b46a9489a56ff41a4be1360f780c5abfba8fd7eced2c7a87071b4322f1b800b86414d9e096000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000ea2e28d5e6fb270a2059b6704443b92e163cf773c001a040dc0d2c826913488cf8dfd11a339d8c791da2059acc89b237a5a08001c9ff26a03f34cd40fbeb9e0ef07c4ee5d0902d182aa3e6da19aefac4602a2958e58afb15", + "new_txn_trie_node_byte": "0x02f8d80102841dcd65008508cc571f008301b46a9489a56ff41a4be1360f780c5abfba8fd7eced2c7a87071b4322f1b800b86414d9e096000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000ea2e28d5e6fb270a2059b6704443b92e163cf773c001a040dc0d2c826913488cf8dfd11a339d8c791da2059acc89b237a5a08001c9ff26a03f34cd40fbeb9e0ef07c4ee5d0902d182aa3e6da19aefac4602a2958e58afb15", + "new_receipt_trie_node_byte": "0xb9036e02f9036a01833def5db9010000200004000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000400000000000000000000040000000000000000000000090000000000000000000000040000001000000000000008000000000000000010000000000000000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000010000080000000000000000000000000880000000002000200000000000000000000000000000000000010000000000008000000000000800000040000000000000000000000000000000000000000000000200000000000000000000f9025ff9015d94b20f0105f3598652a3be569132f7b3f341106ddcf884a0b8abfd5c33667c7440a4fc1153ae39a24833dbe44f7eb19cbe5cd5f2583e4940a000000000000000000000000089a56ff41a4be1360f780c5abfba8fd7eced2c7aa00000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000009b9b8c0000000000000000000000000104bc711530554f18936a12542192f8bd36166b100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000ea2e28d5e6fb270a2059b6704443b92e163cf773f8fd9489a56ff41a4be1360f780c5abfba8fd7eced2c7af884a0e0442d4e58b97ff2055e08df9305389520a00ac06c83a83131ef3d0e1572068ca000000000000000000000000000000000000000000000000000000000000009b9a00000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000001b860000000000000000000000000ea2e28d5e6fb270a2059b6704443b92e163cf773000000000000000000000000ea2e28d5e6fb270a2059b6704443b92e163cf77300000000000000000000000000000000000000000000000000038d7ea4c68000", + "gas_used": 87159 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965eb357debe2925" + }, + "0xe62b71cf983019bff55bc83b48601ce8419650cc": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000002b" + ], + "code_usage": { + "read": "0xbb2d1c5819544ff9d57480a59270ece03719625702c5b30c9c512d94d62661ee" + } + }, + "0x3c4ad65f5b4884397e1f09596c7ac7f8f95b3ff3": { + "balance": "0xe08f72a87b43db48", + "nonce": "0x1c92b" + } + }, + "meta": { + "byte_code": "0x02f90875018301c92a841dcd6500850bfbe44269830b4aa094e62b71cf983019bff55bc83b48601ce8419650cc80b90804c980753900000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000068001010001000001000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000047ddec946856fa8055ac2202f633de33000169a40319131e010c120e0b1718161b1d020307111c0806000f151a0a1005040d0914000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001f00000000000000000000000000000000000000000000000000000042238023540000000000000000000000000000000000000000000000000000004224e60dcc00000000000000000000000000000000000000000000000000000042258f74800000000000000000000000000000000000000000000000000000004226a9852a00000000000000000000000000000000000000000000000000000042282e9911000000000000000000000000000000000000000000000000000000422a72ad00000000000000000000000000000000000000000000000000000000422a72ad00000000000000000000000000000000000000000000000000000000422a72ad00000000000000000000000000000000000000000000000000000000422b14b3df000000000000000000000000000000000000000000000000000000422b14b3df000000000000000000000000000000000000000000000000000000422b14b3df000000000000000000000000000000000000000000000000000000422b14b3df000000000000000000000000000000000000000000000000000000422b14b3df000000000000000000000000000000000000000000000000000000422b14b3df000000000000000000000000000000000000000000000000000000422b1787fa000000000000000000000000000000000000000000000000000000422b7000ba000000000000000000000000000000000000000000000000000000422baa1c0b000000000000000000000000000000000000000000000000000000422baa1c0b000000000000000000000000000000000000000000000000000000422bfa3760000000000000000000000000000000000000000000000000000000422bfa3760000000000000000000000000000000000000000000000000000000422bfa3760000000000000000000000000000000000000000000000000000000422d14f9a3000000000000000000000000000000000000000000000000000000422d14f9a3000000000000000000000000000000000000000000000000000000422d14f9a3000000000000000000000000000000000000000000000000000000422d6d9d80000000000000000000000000000000000000000000000000000000422d6d9d80000000000000000000000000000000000000000000000000000000422d6d9d80000000000000000000000000000000000000000000000000000000422d6d9d80000000000000000000000000000000000000000000000000000000422de1237d000000000000000000000000000000000000000000000000000000422e771288000000000000000000000000000000000000000000000000000000422e9eca80000000000000000000000000000000000000000000000000000000000000000b67a2dc72e4c8d7196705abb456f224dd296d2a9d868bd4fda70e18cbc4e8b5487525aa29f31dacf340036494839899bfda310205040c4d7e20aad0a5a573a8c23ae23402aed8e15fa772ebaf6a6e0fb072f05d434d269329a16329aa6d668b3d1fc97a9037bdfdf4b00c580a0de40c54c8e1128755a8b4a88d744f23fddedfc0edd15115c27f847fb5ae5e699c27d458843f3a8bca4ba13d0654b148cec3813b067f2e11d8687b0162592420a934c14e8a1255c6c797285b2f45188f2d755d2d84abdf22b163ecf6eecf81a01fa0fcfc38f9d0b3aa5b1bf7be24d5e0d734de85eff654bc8e3391df0a60b5e45a44eabbf95b34a910da423d033fca0a48212a15f93b62f37a427e71f3d72ed113295d7f5870f69b8aa16282c499e0a5af0e1debec5d28f62c64a95892500e3b088d64cf723206a9a2c86476dca554f01a4bc9dca35321dadd33f1d20752c95a0eda31e7664fb1e5598b47e67bd6467b3d87cdf0000000000000000000000000000000000000000000000000000000000000000b696c4bfce7af64fe7bbbbbf2e92d227affc263b0f501ac834ebb162b6da2ee331353a590ca4b00d3088b6e08ca4a70178caeea5756aa665871afa65855e2032c7c1b63351d6c92b03e5d2b93232d65ccbf38edbc29e08eabdd4c59c28337d8812e0363e8a8bd57c2e37fb1f56735fb5b879cd14bdf1a10b6f09917225d3898417880491c294fb1bb2ccd0b7bd809842c8ad32fe6029047b541144bb6a7fb66001beb4e17c80e6799960d46e773cf08bb7b6659b94b63273a1ee422ad64d2461036a7cb06cf0a1a11e606dd18b70c7c84ac1a2be32f267a44f280c109cf598842710731db33e37de8463d5b2da5f39fbc1c5b6014f6fea729dfc0fd669f56135541012be564ba49acb016ea531cb0b8d2668332219e64437e0762d1944547c57d6649dab0cfcd7af5592cd0b26d583237d530f39c7371bf0d2ae2ae451aba955660eb4979c5c1304a6c7930ae5f144c8ca9a3a54141118c4a9bca8c663e68d82dc001a04a71eaac1dc15e0fab2f09cd6276e2add61d33f10fd69769de907494548a2997a03e945b557972a81ad8d488ef3ee066f3fccfe4a51d3ae9c58bfa08edabca1bf9", + "new_txn_trie_node_byte": "0x02f90875018301c92a841dcd6500850bfbe44269830b4aa094e62b71cf983019bff55bc83b48601ce8419650cc80b90804c980753900000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000068001010001000001000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000047ddec946856fa8055ac2202f633de33000169a40319131e010c120e0b1718161b1d020307111c0806000f151a0a1005040d0914000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001f00000000000000000000000000000000000000000000000000000042238023540000000000000000000000000000000000000000000000000000004224e60dcc00000000000000000000000000000000000000000000000000000042258f74800000000000000000000000000000000000000000000000000000004226a9852a00000000000000000000000000000000000000000000000000000042282e9911000000000000000000000000000000000000000000000000000000422a72ad00000000000000000000000000000000000000000000000000000000422a72ad00000000000000000000000000000000000000000000000000000000422a72ad00000000000000000000000000000000000000000000000000000000422b14b3df000000000000000000000000000000000000000000000000000000422b14b3df000000000000000000000000000000000000000000000000000000422b14b3df000000000000000000000000000000000000000000000000000000422b14b3df000000000000000000000000000000000000000000000000000000422b14b3df000000000000000000000000000000000000000000000000000000422b14b3df000000000000000000000000000000000000000000000000000000422b1787fa000000000000000000000000000000000000000000000000000000422b7000ba000000000000000000000000000000000000000000000000000000422baa1c0b000000000000000000000000000000000000000000000000000000422baa1c0b000000000000000000000000000000000000000000000000000000422bfa3760000000000000000000000000000000000000000000000000000000422bfa3760000000000000000000000000000000000000000000000000000000422bfa3760000000000000000000000000000000000000000000000000000000422d14f9a3000000000000000000000000000000000000000000000000000000422d14f9a3000000000000000000000000000000000000000000000000000000422d14f9a3000000000000000000000000000000000000000000000000000000422d6d9d80000000000000000000000000000000000000000000000000000000422d6d9d80000000000000000000000000000000000000000000000000000000422d6d9d80000000000000000000000000000000000000000000000000000000422d6d9d80000000000000000000000000000000000000000000000000000000422de1237d000000000000000000000000000000000000000000000000000000422e771288000000000000000000000000000000000000000000000000000000422e9eca80000000000000000000000000000000000000000000000000000000000000000b67a2dc72e4c8d7196705abb456f224dd296d2a9d868bd4fda70e18cbc4e8b5487525aa29f31dacf340036494839899bfda310205040c4d7e20aad0a5a573a8c23ae23402aed8e15fa772ebaf6a6e0fb072f05d434d269329a16329aa6d668b3d1fc97a9037bdfdf4b00c580a0de40c54c8e1128755a8b4a88d744f23fddedfc0edd15115c27f847fb5ae5e699c27d458843f3a8bca4ba13d0654b148cec3813b067f2e11d8687b0162592420a934c14e8a1255c6c797285b2f45188f2d755d2d84abdf22b163ecf6eecf81a01fa0fcfc38f9d0b3aa5b1bf7be24d5e0d734de85eff654bc8e3391df0a60b5e45a44eabbf95b34a910da423d033fca0a48212a15f93b62f37a427e71f3d72ed113295d7f5870f69b8aa16282c499e0a5af0e1debec5d28f62c64a95892500e3b088d64cf723206a9a2c86476dca554f01a4bc9dca35321dadd33f1d20752c95a0eda31e7664fb1e5598b47e67bd6467b3d87cdf0000000000000000000000000000000000000000000000000000000000000000b696c4bfce7af64fe7bbbbbf2e92d227affc263b0f501ac834ebb162b6da2ee331353a590ca4b00d3088b6e08ca4a70178caeea5756aa665871afa65855e2032c7c1b63351d6c92b03e5d2b93232d65ccbf38edbc29e08eabdd4c59c28337d8812e0363e8a8bd57c2e37fb1f56735fb5b879cd14bdf1a10b6f09917225d3898417880491c294fb1bb2ccd0b7bd809842c8ad32fe6029047b541144bb6a7fb66001beb4e17c80e6799960d46e773cf08bb7b6659b94b63273a1ee422ad64d2461036a7cb06cf0a1a11e606dd18b70c7c84ac1a2be32f267a44f280c109cf598842710731db33e37de8463d5b2da5f39fbc1c5b6014f6fea729dfc0fd669f56135541012be564ba49acb016ea531cb0b8d2668332219e64437e0762d1944547c57d6649dab0cfcd7af5592cd0b26d583237d530f39c7371bf0d2ae2ae451aba955660eb4979c5c1304a6c7930ae5f144c8ca9a3a54141118c4a9bca8c663e68d82dc001a04a71eaac1dc15e0fab2f09cd6276e2add61d33f10fd69769de907494548a2997a03e945b557972a81ad8d488ef3ee066f3fccfe4a51d3ae9c58bfa08edabca1bf9", + "new_receipt_trie_node_byte": "0xb9010d02f9010980833e9dcbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 44654 + } + }, + { + "traces": { + "0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x5a60cb4976af35124b340c8f6a8d4e9eee4056e62dff53ff49169fdec4e3ed72", + "0x09503e40c3d608bcfea64ce5d76377accb95cc73902688704180e7b3f22e3fbb" + ], + "storage_written": { + "0x5a60cb4976af35124b340c8f6a8d4e9eee4056e62dff53ff49169fdec4e3ed72": "0x43c33c3b391aff9b8a4", + "0x09503e40c3d608bcfea64ce5d76377accb95cc73902688704180e7b3f22e3fbb": "0xba3c0674891b26dec74" + }, + "code_usage": { + "read": "0x8b0a83a4cd51e97515c5898d296297d96c5377467369ec0ff432948c3ae995f2" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965ebff07e244ddd" + }, + "0x20dca2f3b250c70a4b20dd3f3e7bc8a2e0a3f7b4": { + "balance": "0x15c30e0e69ae81e", + "nonce": "0x2" + } + }, + "meta": { + "byte_code": "0x02f8b0010184165e72eb850b29124d03829028947d1afa7b718fb893db30a3abc0cfc608aacfebb080b844a9059cbb000000000000000000000000187fe1a8b76c60b85c00a2819152ff00ff64238600000000000000000000000000000000000000000000010f0cf064dd59200000c080a0d6b273449174fbdba7d05f71c6f02011f50ed1f561815ed2f82a7879d412c520a06565252ab98ceb5df7943c13b3d5cd91726dda2f93c464ff473ab4c4173b6be0", + "new_txn_trie_node_byte": "0x02f8b0010184165e72eb850b29124d03829028947d1afa7b718fb893db30a3abc0cfc608aacfebb080b844a9059cbb000000000000000000000000187fe1a8b76c60b85c00a2819152ff00ff64238600000000000000000000000000000000000000000000010f0cf064dd59200000c080a0d6b273449174fbdba7d05f71c6f02011f50ed1f561815ed2f82a7879d412c520a06565252ab98ceb5df7943c13b3d5cd91726dda2f93c464ff473ab4c4173b6be0", + "new_receipt_trie_node_byte": "0xb901ab02f901a701833f2df3b901000000000000000000000000000000020000000000000020000000000010000000000000000000000000000000400000000000000000000000020000000000000000000000000000000000000c000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000010000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000f89df89b947d1afa7b718fb893db30a3abc0cfc608aacfebb0f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000020dca2f3b250c70a4b20dd3f3e7bc8a2e0a3f7b4a0000000000000000000000000187fe1a8b76c60b85c00a2819152ff00ff642386a000000000000000000000000000000000000000000000010f0cf064dd59200000", + "gas_used": 36904 + } + }, + { + "traces": { + "0x8a2279d4a90b6fe1c4b30fa660cc9f926797baa2": { + "storage_read": [ + "0xc9e85db782765fabc930b003e4cc178eeaaa6dbd73f825a460e2c20b4be25ec0", + "0xbaf56eddc46b5d2567dcda037eb6f8407917ad9a8a074e8192eb9ecd4e7bff1a" + ], + "storage_written": { + "0xbaf56eddc46b5d2567dcda037eb6f8407917ad9a8a074e8192eb9ecd4e7bff1a": "0x117684f8", + "0xc9e85db782765fabc930b003e4cc178eeaaa6dbd73f825a460e2c20b4be25ec0": "0x0" + }, + "code_usage": { + "read": "0xf19f08536e21da90c45e1e4ccf3308fbd51c1d4ac5babdeb183e3da3181780f4" + } + }, + "0xc223e532ed70c675b15024d880a38bebb5dc0230": { + "balance": "0x23a317f63f80e92", + "nonce": "0x5" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965ecf739c872cfd" + } + }, + "meta": { + "byte_code": "0x02f8b001048415c8e450850b0be9e49482c90a948a2279d4a90b6fe1c4b30fa660cc9f926797baa280b844a9059cbb00000000000000000000000082b6433b30ca2f5af02bf6b51cbf1a8e29f77fc500000000000000000000000000000000000000000000000000000000117684f8c001a014a81705ee2bbad8c78cf30445ce36a215c02b9ab170eee453c5a6126fdf3359a02839a73afc73230d7f6876bc32bd8b59773bc93e6417694c6c297aae65bd55fe", + "new_txn_trie_node_byte": "0x02f8b001048415c8e450850b0be9e49482c90a948a2279d4a90b6fe1c4b30fa660cc9f926797baa280b844a9059cbb00000000000000000000000082b6433b30ca2f5af02bf6b51cbf1a8e29f77fc500000000000000000000000000000000000000000000000000000000117684f8c001a014a81705ee2bbad8c78cf30445ce36a215c02b9ab170eee453c5a6126fdf3359a02839a73afc73230d7f6876bc32bd8b59773bc93e6417694c6c297aae65bd55fe", + "new_receipt_trie_node_byte": "0xb901ab02f901a701833fe43db9010001000000000000000000000000000000000000000000000000000000000000000000000000000000000408000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000010000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000008000000000000000000000000002000000000000000002000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000f89df89b948a2279d4a90b6fe1c4b30fa660cc9f926797baa2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000c223e532ed70c675b15024d880a38bebb5dc0230a000000000000000000000000082b6433b30ca2f5af02bf6b51cbf1a8e29f77fc5a000000000000000000000000000000000000000000000000000000000117684f8", + "gas_used": 46666 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965ed9abcb59c5fd" + }, + "0x578f533873dc8ea60ab1417180cc531f172ee292": { + "balance": "0x1c3cd55be177ea4c", + "nonce": "0x56c4" + }, + "0x5ae2663949af4756710934cc528c0f0f7d9e5e7e": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x30a5785bb87a84e80f1dc55519bfa0ee4a8ba5408ed75dbea7f24cc44eb63d6f", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0xcc8a52935ee15e7862c8c88aaec051770273a5f563c843280551ce036595405e", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000007": "0xaf1" + }, + "code_usage": { + "read": "0xc3155d0082ab3efe91a75f7d99b0163c09ca274501ebb62b48bddd7af0e844bd" + } + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0xa9df5c0c067855a098be977b63b77ad57a2c0c95faa173b2298ddf32de799cde", + "0x46d07bff36a8647afe99188724254e355caa0ef1b877a592705fae9183cfb2ed", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x25808f039ee57c17d00727f60fde595702221e2d1f476bb9202d77f9657e2660" + ], + "storage_written": { + "0x46d07bff36a8647afe99188724254e355caa0ef1b877a592705fae9183cfb2ed": "0x530c9ec", + "0xa9df5c0c067855a098be977b63b77ad57a2c0c95faa173b2298ddf32de799cde": "0x266ca800d9" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x0000000000000000000000000000000000000001": {}, + "0xe5dcdc13b628c2df813db1080367e929c1507ca0": { + "code_usage": { + "read": "0x42369ef63736a4e8a1d2a615bd8b54667e469388ce0f791c1e44ce8adcf44f54" + } + } + }, + "meta": { + "byte_code": "0x02f901b4018256c38406dac2c0850e4a73b24483030be3945ae2663949af4756710934cc528c0f0f7d9e5e7e80b901440dcd7a6c000000000000000000000000d5cc7feadd92e08dd71a513dc4caf0609cbb0ada0000000000000000000000000000000000000000000000000000000004ead3c4000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000065d898530000000000000000000000000000000000000000000000000000000000000af100000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000004151105f693478dbcbc1c14a7eb8b6f69052fd37af912bc429ed35d5962ebb1e5536b537410ac84f1208af0f52322b1d2ef6917e536ff270b3d87a9450fbdd70831b00000000000000000000000000000000000000000000000000000000000000c080a0467d377ccb8057a99fd0257980af8fb4d57588f1d305a400f605275892da80fba06fb46135a08b90a47b43a6deafe514523764adce3fccf773efe0756de4fe8b42", + "new_txn_trie_node_byte": "0x02f901b4018256c38406dac2c0850e4a73b24483030be3945ae2663949af4756710934cc528c0f0f7d9e5e7e80b901440dcd7a6c000000000000000000000000d5cc7feadd92e08dd71a513dc4caf0609cbb0ada0000000000000000000000000000000000000000000000000000000004ead3c4000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000065d898530000000000000000000000000000000000000000000000000000000000000af100000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000004151105f693478dbcbc1c14a7eb8b6f69052fd37af912bc429ed35d5962ebb1e5536b537410ac84f1208af0f52322b1d2ef6917e536ff270b3d87a9450fbdd70831b00000000000000000000000000000000000000000000000000000000000000c080a0467d377ccb8057a99fd0257980af8fb4d57588f1d305a400f605275892da80fba06fb46135a08b90a47b43a6deafe514523764adce3fccf773efe0756de4fe8b42", + "new_receipt_trie_node_byte": "0xb901ab02f901a701834161e9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000400000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000028000000000000000000080000000000000000000000000000000000000002000010000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000005ae2663949af4756710934cc528c0f0f7d9e5e7ea0000000000000000000000000d5cc7feadd92e08dd71a513dc4caf0609cbb0adaa00000000000000000000000000000000000000000000000000000000004ead3c4", + "gas_used": 97708 + } + }, + { + "traces": { + "0x8707f238936c12c309bfc2b9959c35828acfc512": { + "storage_read": [ + "0x700c3d2b154e4c372d6716acc7a37f3f165fa230fa13905176c693da0747390a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x700c3d2b154e4c372d6716acc7a37f3f165fa230fa13905176c693da0747390b", + "0x3d6b2d44a07475bc7328a3a5b8a9263ed8ca6ac79ffd759e818153120ceb2e29", + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "storage_written": { + "0x700c3d2b154e4c372d6716acc7a37f3f165fa230fa13905176c693da0747390b": "0x1baf800000000002b5e3af16b1880000000005e320cf33f564f8c2e84a", + "0x3d6b2d44a07475bc7328a3a5b8a9263ed8ca6ac79ffd759e818153120ceb2e29": "0x144cf851ba3f30c2a12", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x1" + }, + "code_usage": { + "read": "0xee92b9460c4d40c0d93565a0b937a753d6fdc82303a5c88938f0b0e0e175de91" + } + }, + "0x2b7d6192add6ac2ab542b7d1349585b2bfb0caaa": { + "balance": "0x28fd503d88a4ac4", + "nonce": "0x45" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965ee10d0aef82fd" + }, + "0xf55b0f6f2da5ffddb104b58a60f2862745960442": { + "storage_read": [ + "0x4b068ca2c7d38553e6293c883fbe674600af066c17fa2330d8692a7627092bd4", + "0x014af72491574063bde430eca8f630bb9244c429736c8c24c62e9e56e8a11adb", + "0x7eee441e865b117e80239f9e9696d95faf7b88d4c562b14031b7686e98158719" + ], + "storage_written": { + "0x014af72491574063bde430eca8f630bb9244c429736c8c24c62e9e56e8a11adb": "0x5e3238517a47baa4ae84a", + "0x4b068ca2c7d38553e6293c883fbe674600af066c17fa2330d8692a7627092bd4": "0x0" + }, + "code_usage": { + "read": "0x1ae216d13259d3e2088f002c586ba617e8335d5618a35c3111fb762606a41e7b" + } + } + }, + "meta": { + "byte_code": "0x02f8b1014484068e778085098d941d808301672d948707f238936c12c309bfc2b9959c35828acfc51280b844b3dd411d000000000000000000000000f55b0f6f2da5ffddb104b58a60f2862745960442000000000000000000000000000000000000000000000144cf851ba3f30c2a12c080a031616aec6b7bd2cc361421c92b127339930701d51b0f91ac6531e788eadbaf70a0311c679eafd926a69f32bd853fd4731d8c56b996e938a9c94d020bdcf22e0de6", + "new_txn_trie_node_byte": "0x02f8b1014484068e778085098d941d808301672d948707f238936c12c309bfc2b9959c35828acfc51280b844b3dd411d000000000000000000000000f55b0f6f2da5ffddb104b58a60f2862745960442000000000000000000000000000000000000000000000144cf851ba3f30c2a12c080a031616aec6b7bd2cc361421c92b127339930701d51b0f91ac6531e788eadbaf70a0311c679eafd926a69f32bd853fd4731d8c56b996e938a9c94d020bdcf22e0de6", + "new_receipt_trie_node_byte": "0xb9024902f90245018342820fb9010000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000100000004000000000000008000040000200000000000000000000000000800000000001000000000000000000000000000000000000000000000010000000000800000000000000000000002000000001000000000000000000000000000000000200000000000000000000000000000000000050000000000000000080000000000002000000000000000400000100000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f9013af89b94f55b0f6f2da5ffddb104b58a60f2862745960442f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000002b7d6192add6ac2ab542b7d1349585b2bfb0caaaa00000000000000000000000008707f238936c12c309bfc2b9959c35828acfc512a0000000000000000000000000000000000000000000000144cf851ba3f30c2a12f89b948707f238936c12c309bfc2b9959c35828acfc512f863a099039fcf0a98f484616c5196ee8b2ecfa971babf0b519848289ea4db381f85f7a00000000000000000000000002b7d6192add6ac2ab542b7d1349585b2bfb0caaaa0000000000000000000000000f55b0f6f2da5ffddb104b58a60f2862745960442a0000000000000000000000000000000000000000000000144cf851ba3f30c2a12", + "gas_used": 73766 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965ef2292b50bffd" + }, + "0x1066cecc8880948fe55e427e94f1ff221d626591": { + "code_usage": { + "read": "0x1470cf03fa245a37933022951ff43a2e5f33f914bbcef091f8b8db92fc23edb5" + } + }, + "0xbbce8aa77782f13d4202a230d978f361b011db27": { + "storage_read": [ + "0xcf066eeaabe656f4803cbf826325edd6539224bba87dc551c2e47732a997cfc7", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000007": "0x1" + }, + "code_usage": { + "read": "0x9bf9f69edb06af79f6871dcd5b3c205dd358be1783b5f05c1ca163ae09a78880" + } + }, + "0x5aed5f8a1e3607476f1f81c3d8fe126deb0afe94": { + "code_usage": { + "read": "0x3aefeaef4785b95859e40dac3058e07b676f5ec099fa2a96923519fd62546b39" + } + }, + "0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f": { + "storage_read": [ + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x0000000000000000000000000000000000000000000000000000000000000033", + "0x0000000000000000000000000000000000000000000000000000000000000066", + "0x0000000000000000000000000000000000000000000000000000000000000065" + ], + "code_usage": { + "read": "0x685718cbe6f1ee62236ffbab640612cebc70c6cc69a54aacb83d0790d42e247a" + } + }, + "0xb50721bcf8d664c30412cfbc6cf7a15145234ad1": { + "storage_read": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x00000000000000000000000000000000000000000000000000000000000000cc", + "0xb4848ca98f57f12b62426d787de9d8e9c3a6793912856be4a5c513654f09765c", + "0x0000000000000000000000000000000000000000000000000000000000000035", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ], + "storage_written": { + "0xb4848ca98f57f12b62426d787de9d8e9c3a6793912856be4a5c513654f09765c": "0x0", + "0x0000000000000000000000000000000000000000000000000000000000000035": "0x1efda8b57bc2f6fef4355c" + }, + "code_usage": { + "read": "0x9bf9f69edb06af79f6871dcd5b3c205dd358be1783b5f05c1ca163ae09a78880" + } + }, + "0x4e8c24617c4592895d52ac6df29d9647e9d01bb5": { + "code_usage": { + "read": "0x8eeb902dbb04a268810246090687f652f28b9965590a32247003e3a570b68ced" + } + }, + "0x8315177ab297ba92a06054ce80a67ed4dbd7ed3a": { + "balance": "0x13ca152b2db1035ba59ee", + "storage_read": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x584291d70ad4dde9dd8406c3f9db0464c54b9f80d25403cf7e0305c918871ae9", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f3791484e", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000006": "0x153b11", + "0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f3791484f": "0x2c1b194cd6861b70a6871eb4c6decec2534af22be010a81c2ae31191a6d12b33" + }, + "code_usage": { + "read": "0x8736329b580cfc0c0c39ee6700515e0bc51652afb614640db9e34a5d784933e8" + } + }, + "0xad0c361ef902a7d9851ca7dcc85535da2d3c6fc7": { + "code_usage": { + "read": "0x34635b0f0c4329ddb769c98c48c63ad8c0e6843078eeac03a4b1cf442cfe3ce8" + } + }, + "0x52595021fa01b3e14ec6c88953afc8e35dff423c": { + "code_usage": { + "read": "0x2256af07f7742c561c42617215731b39e67d387ba57daa0b72458bbe562e12fa" + } + }, + "0x72ce9c846789fdb6fc1f34ac4ad25dd9ef7031ef": { + "storage_read": [ + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0xf351fe7c20333834e43bb71c577f11bdd21026e3535080f9d3771a18524b709f" + ], + "code_usage": { + "read": "0x685718cbe6f1ee62236ffbab640612cebc70c6cc69a54aacb83d0790d42e247a" + } + }, + "0xb15637ee490ec291aa1115f1ecee785384a25cbc": { + "balance": "0xa27c98462542be8", + "nonce": "0x6a" + } + }, + "meta": { + "byte_code": "0x02f901b901698405f5e10085089d5f32008304ad239472ce9c846789fdb6fc1f34ac4ad25dd9ef7031ef8701c680bd78f880b90144d2ce7d65000000000000000000000000b50721bcf8d664c30412cfbc6cf7a15145234ad1000000000000000000000000b15637ee490ec291aa1115f1ecee785384a25cbc0000000000000000000000000000000000000000000007d2714602b5b621136500000000000000000000000000000000000000000000000000000000000493e00000000000000000000000000000000000000000000000000000000011e1a30000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000174a5fb71588000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000c001a0f7f1619f0e04165b2064c5dc2d2f5fb0e155777c47ad70af988e80627d10b84ea04d3a37cbda6d47650e2b4103090163a1cabf1449afd3750178369c0c23f5b0a2", + "new_txn_trie_node_byte": "0x02f901b901698405f5e10085089d5f32008304ad239472ce9c846789fdb6fc1f34ac4ad25dd9ef7031ef8701c680bd78f880b90144d2ce7d65000000000000000000000000b50721bcf8d664c30412cfbc6cf7a15145234ad1000000000000000000000000b15637ee490ec291aa1115f1ecee785384a25cbc0000000000000000000000000000000000000000000007d2714602b5b621136500000000000000000000000000000000000000000000000000000000000493e00000000000000000000000000000000000000000000000000000000011e1a30000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000174a5fb71588000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000c001a0f7f1619f0e04165b2064c5dc2d2f5fb0e155777c47ad70af988e80627d10b84ea04d3a37cbda6d47650e2b4103090163a1cabf1449afd3750178369c0c23f5b0a2", + "new_receipt_trie_node_byte": "0xb909e802f909e401834560ecb9010000000000000000000000000000040004000000000000020000010000400000000000000000000000002000000808000000000002120000000100000000000800000000000400800000000208000008000100000000020000088000040000002000200000020000000000020000000800000000000000800000000010080000000000020000002100000000000000000000000000000000000800804000000000100000020000000000000000000000000040000000020000000000000000000000000002000000000000000000000000000000000000004000001000080020000000000008000000040000000080000000000000000000000000000200004000f908d9f8bc9472ce9c846789fdb6fc1f34ac4ad25dd9ef7031eff884a085291dff2161a93c2f12c819d31889c96c63042116f5bc5a205aa701c2c429f5a0000000000000000000000000b50721bcf8d664c30412cfbc6cf7a15145234ad1a0000000000000000000000000b15637ee490ec291aa1115f1ecee785384a25cbca0000000000000000000000000b15637ee490ec291aa1115f1ecee785384a25cbca0000000000000000000000000bbce8aa77782f13d4202a230d978f361b011db27f89b94b50721bcf8d664c30412cfbc6cf7a15145234ad1f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000b15637ee490ec291aa1115f1ecee785384a25cbca00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000007d2714602b5b6211365f9013c948315177ab297ba92a06054ce80a67ed4dbd7ed3af863a05e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1a00000000000000000000000000000000000000000000000000000000000153b10a0110474f0e33ee5dce299e12b36608046699c155299ceda2761602dc7fc1840f9b8c00000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f0000000000000000000000000000000000000000000000000000000000000009000000000000000000000000ccdf8aa77782f13d4202a230d978f361b011ec3867052dc27b447734d99131643aa0cf84696c8b83b8f353cabe6160d98bb64334000000000000000000000000000000000000000000000000000000071ec5cf550000000000000000000000000000000000000000000000000000000065cf5de7f9031c944dbd4fc535ac27206064b68ffcf827b0a60bab3ff842a0ff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60ba00000000000000000000000000000000000000000000000000000000000153b10b902c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000264000000000000000000000000cad7828a19b363a2b44717afb1786b5196974d8e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c680bd78f880000000000000000000000000000000000000000000000000000174a5fb715880000000000000000000000000b15637ee490ec291aa1115f1ecee785384a25cbc000000000000000000000000b15637ee490ec291aa1115f1ecee785384a25cbc00000000000000000000000000000000000000000000000000000000000493e00000000000000000000000000000000000000000000000000000000011e1a30000000000000000000000000000000000000000000000000000000000000001442e567b36000000000000000000000000b50721bcf8d664c30412cfbc6cf7a15145234ad1000000000000000000000000b15637ee490ec291aa1115f1ecee785384a25cbc000000000000000000000000b15637ee490ec291aa1115f1ecee785384a25cbc0000000000000000000000000000000000000000000007d2714602b5b621136500000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f9023e94bbce8aa77782f13d4202a230d978f361b011db27f884a0c1d1490cf25c3b40d600dfb27c7680340ed1ab901b7e8f3551280968a3b372b0a0000000000000000000000000b15637ee490ec291aa1115f1ecee785384a25cbca0000000000000000000000000cad7828a19b363a2b44717afb1786b5196974d8ea00000000000000000000000000000000000000000000000000000000000153b10b901a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001442e567b36000000000000000000000000b50721bcf8d664c30412cfbc6cf7a15145234ad1000000000000000000000000b15637ee490ec291aa1115f1ecee785384a25cbc000000000000000000000000b15637ee490ec291aa1115f1ecee785384a25cbc0000000000000000000000000000000000000000000007d2714602b5b621136500000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8dd94bbce8aa77782f13d4202a230d978f361b011db27f884a0b8910b9960c443aac3240b98585384e3a6f109fbf6969e264c3f183d69aba7e1a0000000000000000000000000b15637ee490ec291aa1115f1ecee785384a25cbca0000000000000000000000000b15637ee490ec291aa1115f1ecee785384a25cbca00000000000000000000000000000000000000000000000000000000000153b10b840000000000000000000000000b50721bcf8d664c30412cfbc6cf7a15145234ad10000000000000000000000000000000000000000000007d2714602b5b6211365", + "gas_used": 188125 + } + }, + { + "traces": { + "0xca13f3b368cdf5b96a2af31f9ee5d0c9a94cc47a": { + "balance": "0x1adc8210ccb3a3", + "nonce": "0x39" + }, + "0xf55b0f6f2da5ffddb104b58a60f2862745960442": { + "storage_written": { + "0x9ba1e783035a3976676517ca56c0ba4e51508036fcc8372119d529fa9504ef37": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + "code_usage": { + "read": "0x1ae216d13259d3e2088f002c586ba617e8335d5618a35c3111fb762606a41e7b" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965ef65e9dc503fd" + } + }, + "meta": { + "byte_code": "0x02f8b101388405f5e1008507735940008301116594f55b0f6f2da5ffddb104b58a60f286274596044280b844095ea7b30000000000000000000000008707f238936c12c309bfc2b9959c35828acfc512ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc080a057be9a8a17e25be75125b7c61fda069e9a82b2f56d68eb322dfd7d88d7e2854da0201b59efba138b901debaa2f0492c2ada603cbe4ae7f2eba07d190b647ae1b6d", + "new_txn_trie_node_byte": "0x02f8b101388405f5e1008507735940008301116594f55b0f6f2da5ffddb104b58a60f286274596044280b844095ea7b30000000000000000000000008707f238936c12c309bfc2b9959c35828acfc512ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc080a057be9a8a17e25be75125b7c61fda069e9a82b2f56d68eb322dfd7d88d7e2854da0201b59efba138b901debaa2f0492c2ada603cbe4ae7f2eba07d190b647ae1b6d", + "new_receipt_trie_node_byte": "0xb901ab02f901a701834615b0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000002000000000000008000000000000000000000000020200000000000000000000000000000000000040000000000000000000000000000000000000000000000400000000000000100001000000000000000000000010000000000000000000000000000000000000000000000000000000000000f89df89b94f55b0f6f2da5ffddb104b58a60f2862745960442f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000ca13f3b368cdf5b96a2af31f9ee5d0c9a94cc47aa00000000000000000000000008707f238936c12c309bfc2b9959c35828acfc512a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "gas_used": 46276 + } + }, + { + "traces": { + "0x6982508145454ce325ddbe47a25d4ec3d2311933": { + "storage_read": [ + "0x29fecf21a853a1736c3b43d9e0e1b0bc6339316fb4359bca84f6eb008faea575", + "0xd3ebf4e4c87ad72c114d5b15f154176aedfd4f7590e54026ab4927d476ce8dc8", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0xfb708492cc2759e6d9f1beee76434c41efd8189458642daeca47c40745a3dfbd", + "0x48e6bf4802d59ec9e3b28763a1d91156d21ec2fef9cef306f52b5316991d4c81" + ], + "storage_written": { + "0x48e6bf4802d59ec9e3b28763a1d91156d21ec2fef9cef306f52b5316991d4c81": "0x46cad4fc7c5bc0d913a7927", + "0xfb708492cc2759e6d9f1beee76434c41efd8189458642daeca47c40745a3dfbd": "0x0" + }, + "code_usage": { + "read": "0x4bcc3abefd723de3cac53e7c37894ae0cad2f6065e92c8901b0a086ae3386ab6" + } + }, + "0x895f6b252d1f02d0a70aae23f4269de4d6d49589": { + "balance": "0x75da2bcbe818c5", + "nonce": "0x3" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965ef9e14bc709fd" + } + }, + "meta": { + "byte_code": "0x02f8b001028405f5e10085089d5f320082fed0946982508145454ce325ddbe47a25d4ec3d231193380b844a9059cbb000000000000000000000000b2cc26fa2918d474fdc87c0fe6dbe2b2f69efb570000000000000000000000000000000000000000023300bef3d0de86fac27927c080a07866991fe6e4a51ecab15df468d834f9b62a107bcd1e577c80e34432655e34d4a03a1232fd06f0ea33a57ce3eeea63bc210a088efea837425cfa1078bea2e330fd", + "new_txn_trie_node_byte": "0x02f8b001028405f5e10085089d5f320082fed0946982508145454ce325ddbe47a25d4ec3d231193380b844a9059cbb000000000000000000000000b2cc26fa2918d474fdc87c0fe6dbe2b2f69efb570000000000000000000000000000000000000000023300bef3d0de86fac27927c080a07866991fe6e4a51ecab15df468d834f9b62a107bcd1e577c80e34432655e34d4a03a1232fd06f0ea33a57ce3eeea63bc210a088efea837425cfa1078bea2e330fd", + "new_receipt_trie_node_byte": "0xb901ab02f901a7018346ac76b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000040000400000000000000080000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000010000000000000000000000000000002000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000010000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000f89df89b946982508145454ce325ddbe47a25d4ec3d2311933f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000895f6b252d1f02d0a70aae23f4269de4d6d49589a0000000000000000000000000b2cc26fa2918d474fdc87c0fe6dbe2b2f69efb57a00000000000000000000000000000000000000000023300bef3d0de86fac27927", + "gas_used": 38598 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965efda3189ac6fd" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0xc086766167abfec9418de0d6ef7b892844b0163f1bd74069569bdfdb219a3b1d", + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xbc83cedc00b0f829788d8e0b039248b49700edcd5a43ac573b171d021e70f87d" + ], + "storage_written": { + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f": "0x1897463e4fdb6", + "0xc086766167abfec9418de0d6ef7b892844b0163f1bd74069569bdfdb219a3b1d": "0x0" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x8592895aae22d5b47f4db5e5477ea47958953aa0": { + "balance": "0x15db7e50830001", + "nonce": "0x1" + } + }, + "meta": { + "byte_code": "0x02f8b001808405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d0000000000000000000000000000000000000000000000000000000009656540c001a017061fa82fe8148bbea59768d82b7cf70cac9772fb55f5225348385dcb1f8ea3a077c46bec68d7ff4d183fc0e5e45bf4cee4cdb50c0d26a0cefce80b76224984bd", + "new_txn_trie_node_byte": "0x02f8b001808405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d0000000000000000000000000000000000000000000000000000000009656540c001a017061fa82fe8148bbea59768d82b7cf70cac9772fb55f5225348385dcb1f8ea3a077c46bec68d7ff4d183fc0e5e45bf4cee4cdb50c0d26a0cefce80b76224984bd", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183474dd3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000010000000000000000000000000000000000000000000000000000080008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000040000000000000000000000000000000000000000000100000000000000000000000000080000000000000800000000000000000400000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000008592895aae22d5b47f4db5e5477ea47958953aa0a000000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6da00000000000000000000000000000000000000000000000000000000009656540", + "gas_used": 41309 + } + }, + { + "traces": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "storage_read": [ + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x38653600bb42dcca737cda9ba4624269923d324db73b4f60385685d235627fe6", + "0xcd7a29227163ada612dd0835d7bfe7f9e0571e2e20f6f5406e4191072cb42168" + ], + "storage_written": { + "0xcd7a29227163ada612dd0835d7bfe7f9e0571e2e20f6f5406e4191072cb42168": "0x4f9e79e42060", + "0x38653600bb42dcca737cda9ba4624269923d324db73b4f60385685d235627fe6": "0x0" + }, + "code_usage": { + "read": "0xd80d4b7c890cb9d6a4893e6b52bc34b56b25335cb13716e0d1d31383e6b41505" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f014e856ce2fd" + }, + "0x43506849d7c04f9138d1a2050bbf3a0c054402dd": { + "code_usage": { + "read": "0xcdfb7d322961af3acae7a8f7ee8b69c205b36f576cc5b077f170c7eb8ecbe3ea" + } + }, + "0x81cd12a3d4a7d839bdc4773d7c17ee94f9af7d6d": { + "balance": "0x413b94abb51a1", + "nonce": "0x72" + } + }, + "meta": { + "byte_code": "0x02f8b001718405f5e1008508d8f9fc0082c35094a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb0000000000000000000000005041ed759dd4afc3a72b8192c143f72f4724081a00000000000000000000000000000000000000000000000000000000121eac00c001a04b165b1c9b49271edb7092d92163550e68953291726c2f8561c3b10c18fdedfaa04b79e5c868e464182e8fc543a0b3b5680d8ae442c622e14a9beaedd5d934d81e", + "new_txn_trie_node_byte": "0x02f8b001718405f5e1008508d8f9fc0082c35094a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb0000000000000000000000005041ed759dd4afc3a72b8192c143f72f4724081a00000000000000000000000000000000000000000000000000000000121eac00c001a04b165b1c9b49271edb7092d92163550e68953291726c2f8561c3b10c18fdedfaa04b79e5c868e464182e8fc543a0b3b5680d8ae442c622e14a9beaedd5d934d81e", + "new_receipt_trie_node_byte": "0xb901ab02f901a7018347eb6fb9010000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000200000000000000000000000000000000000000010000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000000000000200008000000000000000000000000000000000000000000000000002002000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000f89df89b94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000081cd12a3d4a7d839bdc4773d7c17ee94f9af7d6da00000000000000000000000005041ed759dd4afc3a72b8192c143f72f4724081aa000000000000000000000000000000000000000000000000000000000121eac00", + "gas_used": 40348 + } + }, + { + "traces": { + "0x91849820ae6a4fd7ba0e8faf120fadc679b6bfe8": { + "balance": "0x5418c9827d91a", + "nonce": "0x3" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f051052409ffd" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0xa1a7382426296df4336c07842e2f36da77b7156623e728f2e53d068228475d13", + "0xc67000432d826b075d8de46000e72067507038c378aff438cd706e1d878dbfd1", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x89263c89c4eb9bfa6622353b958da7610a8732a65dc7c283e94b910ded75c59d", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "storage_written": { + "0xa1a7382426296df4336c07842e2f36da77b7156623e728f2e53d068228475d13": "0x0", + "0xc67000432d826b075d8de46000e72067507038c378aff438cd706e1d878dbfd1": "0x37a334c76e3c" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + } + }, + "meta": { + "byte_code": "0x02f8b001028405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000009e4e147d103def9e98462884e7ce06385f8ac540000000000000000000000000000000000000000000000000000000012a05f200c080a06e09c3e0470d4be30c4c4c56cca3420b0fd304f60091d7db0f231b1f4b64eef1a00ad6e4151154ae1e5f4546ac59d83c01226979230ada42387a4216a989300154", + "new_txn_trie_node_byte": "0x02f8b001028405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000009e4e147d103def9e98462884e7ce06385f8ac540000000000000000000000000000000000000000000000000000000012a05f200c080a06e09c3e0470d4be30c4c4c56cca3420b0fd304f60091d7db0f231b1f4b64eef1a00ad6e4151154ae1e5f4546ac59d83c01226979230ada42387a4216a989300154", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183488cccb9010000001000000000000000000000000000000000000000000000000000000000002000000000000000000000000000010000000000000000000000000000200000000000000000000000000008000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000091849820ae6a4fd7ba0e8faf120fadc679b6bfe8a00000000000000000000000009e4e147d103def9e98462884e7ce06385f8ac540a0000000000000000000000000000000000000000000000000000000012a05f200", + "gas_used": 41309 + } + }, + { + "traces": { + "0xff129412f182cd22046cb248e3e900de23150e63": { + "balance": "0x7b50bfdc417a1a", + "nonce": "0x13e" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f08d1d78dd0fd" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xb69b7856afe9d2fd93fee82af04857fad577f4bde1393c17f18ff5f0f6781914", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x095fcfb1afd85dbd83edd23cb2356ca5878f5d70e655152dfaa26b95b8b82593", + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f" + ], + "storage_written": { + "0x095fcfb1afd85dbd83edd23cb2356ca5878f5d70e655152dfaa26b95b8b82593": "0x0", + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f": "0x1897469dadeb6" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + } + }, + "meta": { + "byte_code": "0x02f8b20182013d8405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d0000000000000000000000000000000000000000000000000000000005f5e100c001a0d68555dd2a46ce6d89f044476f1b559a8f1aad5c7725bd05c64224772849bfd9a04d6639f01bb93840ce986fb82fbbf69ca0417ce2a268a4f1a9c5416e4d978b31", + "new_txn_trie_node_byte": "0x02f8b20182013d8405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d0000000000000000000000000000000000000000000000000000000005f5e100c001a0d68555dd2a46ce6d89f044476f1b559a8f1aad5c7725bd05c64224772849bfd9a04d6639f01bb93840ce986fb82fbbf69ca0417ce2a268a4f1a9c5416e4d978b31", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183492e1db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000010000000000000000000000000000000000000020000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000040000000000000000000000000000000000000000000100000000000000000000000000080000000000000800000000000000000480000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000ff129412f182cd22046cb248e3e900de23150e63a000000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6da00000000000000000000000000000000000000000000000000000000005f5e100", + "gas_used": 41297 + } + }, + { + "traces": { + "0xad076180e367c8b65c3a5756241a858b3ae33b1d": { + "balance": "0x2bf01da0f401b", + "nonce": "0x1" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x7619c3b6ee521c76bfe81f8db2447527ec7b1ebdff69a951a316bda140fb38c0", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0xcf971fef4170eb082403ba4744bb91b69d9794a3b6da1fb62b0de56c36bd9d63", + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f" + ], + "storage_written": { + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f": "0x1897487a843b6", + "0xcf971fef4170eb082403ba4744bb91b69d9794a3b6da1fb62b0de56c36bd9d63": "0x0" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f0c935cdb01fd" + } + }, + "meta": { + "byte_code": "0x02f8b001808405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d000000000000000000000000000000000000000000000000000000001dcd6500c080a05f1ddd2379fd1f7059f2c35979df99bce04df21875caa9f8ae7ff5d224de9e97a010a827d6d30e88c80b602afa7e6b650f12f29ae6ddd7a7aa8eacedc4dd2f4d5b", + "new_txn_trie_node_byte": "0x02f8b001808405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d000000000000000000000000000000000000000000000000000000001dcd6500c080a05f1ddd2379fd1f7059f2c35979df99bce04df21875caa9f8ae7ff5d224de9e97a010a827d6d30e88c80b602afa7e6b650f12f29ae6ddd7a7aa8eacedc4dd2f4d5b", + "new_receipt_trie_node_byte": "0xb901ab02f901a7018349cf6eb9010000010000000000000000000000000000000000000000000000000000000000000000000000000000000008000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000010000000000000000000000040000000000000000000000000000000000000000000100004000000000000000000000080000000000000800000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000ad076180e367c8b65c3a5756241a858b3ae33b1da000000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6da0000000000000000000000000000000000000000000000000000000001dcd6500", + "gas_used": 41297 + } + }, + { + "traces": { + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x598a49bb87f7113b16c21f3efdd261ebbc6ef619a67154fc2811352c2a7302c7", + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xe9b26cc3ba853390a3554a01bd16315c77eea9b84eec0d02f7baf45abb1049ec", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004" + ], + "storage_written": { + "0x598a49bb87f7113b16c21f3efdd261ebbc6ef619a67154fc2811352c2a7302c7": "0x0", + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f": "0x189748d9e24b6" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x98f423b7d6b7e5fba9ce5b943568e4c2e607caf1": { + "balance": "0x8249b9538c484", + "nonce": "0x4" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f1054e22832fd" + } + }, + "meta": { + "byte_code": "0x02f8b001038405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d0000000000000000000000000000000000000000000000000000000005f5e100c001a0a61d8e299c5fea7e2f7dfad6bd6c46d3d64b30d33582e36d7b13193b7e3e5d38a06dc7fa8d9bbd6c87ca83abb746a3383103602f41a443dcdd70cd09d2810dd831", + "new_txn_trie_node_byte": "0x02f8b001038405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d0000000000000000000000000000000000000000000000000000000005f5e100c001a0a61d8e299c5fea7e2f7dfad6bd6c46d3d64b30d33582e36d7b13193b7e3e5d38a06dc7fa8d9bbd6c87ca83abb746a3383103602f41a443dcdd70cd09d2810dd831", + "new_receipt_trie_node_byte": "0xb901ab02f901a701834a70bfb9010000000000000000000000000000000000000000000000000000000000080000000000000000000000000008000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000040000000000000000000000000000000800000000000100000000000000000000000000081000000000000800000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000098f423b7d6b7e5fba9ce5b943568e4c2e607caf1a000000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6da00000000000000000000000000000000000000000000000000000000005f5e100", + "gas_used": 41297 + } + }, + { + "traces": { + "0x0072a326e1ea3bf5556356d8a0663537ed3dda9f": { + "balance": "0x6aefdd46f8095", + "nonce": "0x2" + }, + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "storage_read": [ + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xa01a59e108ca0b68af3466cef4dcd222258178935f9d5cba75cb50d52aa67134", + "0xcd7a29227163ada612dd0835d7bfe7f9e0571e2e20f6f5406e4191072cb42168" + ], + "storage_written": { + "0xa01a59e108ca0b68af3466cef4dcd222258178935f9d5cba75cb50d52aa67134": "0x0", + "0xcd7a29227163ada612dd0835d7bfe7f9e0571e2e20f6f5406e4191072cb42168": "0x4f9e9e2a9957" + }, + "code_usage": { + "read": "0xd80d4b7c890cb9d6a4893e6b52bc34b56b25335cb13716e0d1d31383e6b41505" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f14009680dafd" + }, + "0x43506849d7c04f9138d1a2050bbf3a0c054402dd": { + "code_usage": { + "read": "0xcdfb7d322961af3acae7a8f7ee8b69c205b36f576cc5b077f170c7eb8ecbe3ea" + } + } + }, + "meta": { + "byte_code": "0x02f8b001018405f5e1008508d8f9fc0082c35094a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb0000000000000000000000005041ed759dd4afc3a72b8192c143f72f4724081a00000000000000000000000000000000000000000000000000000000244678f7c080a089cec972e8db98d7283c2b7a68d6eda13c1f547393ee98a4968b9c0dc7ac04f5a0489f449bc677f1d79ecee23a8823105dea1c814d582b1c4c53b03dfc48c00644", + "new_txn_trie_node_byte": "0x02f8b001018405f5e1008508d8f9fc0082c35094a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb0000000000000000000000005041ed759dd4afc3a72b8192c143f72f4724081a00000000000000000000000000000000000000000000000000000000244678f7c080a089cec972e8db98d7283c2b7a68d6eda13c1f547393ee98a4968b9c0dc7ac04f5a0489f449bc677f1d79ecee23a8823105dea1c814d582b1c4c53b03dfc48c00644", + "new_receipt_trie_node_byte": "0xb901ab02f901a701834b0e67b9010000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000010000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000000000000200008000000000000000000000000000000000000000000000000002002000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000072a326e1ea3bf5556356d8a0663537ed3dda9fa00000000000000000000000005041ed759dd4afc3a72b8192c143f72f4724081aa000000000000000000000000000000000000000000000000000000000244678f7", + "gas_used": 40360 + } + }, + { + "traces": { + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0xccf89ee17790265a43896c5ec1a2b3dc151a32ea1354353858b8839d9c975c64", + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x68e3618829cd90722dff3d8df9e10b7297b5bbbe9f5d1a371ab199f47dde0ab7", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004" + ], + "storage_written": { + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f": "0x18974960872f2", + "0xccf89ee17790265a43896c5ec1a2b3dc151a32ea1354353858b8839d9c975c64": "0x0" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f17c2635497fd" + }, + "0x51f9f9235f866aa60dc490430836a2e90e30aa2d": { + "balance": "0x700d7e3572c34", + "nonce": "0x356" + } + }, + "meta": { + "byte_code": "0x02f8b2018203558405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d00000000000000000000000000000000000000000000000000000000086a4e3cc001a0a42799f86a5e6ec1455e65f6b0c5a67984178c0a8d5c9366431ac85aaf6598eca017e68420203f84373f2736027f87c6e42dcc8ee807f19eaa44afa67f25c3e9a7", + "new_txn_trie_node_byte": "0x02f8b2018203558405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d00000000000000000000000000000000000000000000000000000000086a4e3cc001a0a42799f86a5e6ec1455e65f6b0c5a67984178c0a8d5c9366431ac85aaf6598eca017e68420203f84373f2736027f87c6e42dcc8ee807f19eaa44afa67f25c3e9a7", + "new_receipt_trie_node_byte": "0xb901ab02f901a701834bafc4b9010000000000000000000000000000000000000000000000000000000000000000000000000000020000000008000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000040000000000000000000000000000000000000000000100000000000000000000000000080000000000000800000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000008000020000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000051f9f9235f866aa60dc490430836a2e90e30aa2da000000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6da000000000000000000000000000000000000000000000000000000000086a4e3c", + "gas_used": 41309 + } + }, + { + "traces": { + "0x43506849d7c04f9138d1a2050bbf3a0c054402dd": { + "code_usage": { + "read": "0xcdfb7d322961af3acae7a8f7ee8b69c205b36f576cc5b077f170c7eb8ecbe3ea" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f1b6e5f33cbfd" + }, + "0x0e0dd4a9f1ae43300d537ba7d62220774c9c8312": { + "balance": "0x3c1a1d59116a8", + "nonce": "0x35e9" + }, + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0e890b98a7876f86b236ab0312b9671bdb52323d4c27eec3f19ae4858b8d9414", + "0xcd7a29227163ada612dd0835d7bfe7f9e0571e2e20f6f5406e4191072cb42168", + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3" + ], + "storage_written": { + "0x0e890b98a7876f86b236ab0312b9671bdb52323d4c27eec3f19ae4858b8d9414": "0x0", + "0xcd7a29227163ada612dd0835d7bfe7f9e0571e2e20f6f5406e4191072cb42168": "0x4fd5910a9817" + }, + "code_usage": { + "read": "0xd80d4b7c890cb9d6a4893e6b52bc34b56b25335cb13716e0d1d31383e6b41505" + } + } + }, + "meta": { + "byte_code": "0x02f8b2018235e88405f5e1008508d8f9fc0082c35094a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb0000000000000000000000005041ed759dd4afc3a72b8192c143f72f4724081a00000000000000000000000000000000000000000000000000000036f2dffec0c080a0e133866b7b597616c8b51a230218fa808440997635d5120978121f463a3b7814a0135b5f29509a8bf1b15dcff82767399c4baebfa4a59dedfab11593ad4b07e138", + "new_txn_trie_node_byte": "0x02f8b2018235e88405f5e1008508d8f9fc0082c35094a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb0000000000000000000000005041ed759dd4afc3a72b8192c143f72f4724081a00000000000000000000000000000000000000000000000000000036f2dffec0c080a0e133866b7b597616c8b51a230218fa808440997635d5120978121f463a3b7814a0135b5f29509a8bf1b15dcff82767399c4baebfa4a59dedfab11593ad4b07e138", + "new_receipt_trie_node_byte": "0xb901ab02f901a701834c4d78b9010000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000000000000200008000000000000000000000000800000000000000000000000002002002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000e0dd4a9f1ae43300d537ba7d62220774c9c8312a00000000000000000000000005041ed759dd4afc3a72b8192c143f72f4724081aa000000000000000000000000000000000000000000000000000000036f2dffec0", + "gas_used": 40372 + } + }, + { + "traces": { + "0x8eeca23a0e346c1413baeb82381d1bfa32ebb838": { + "balance": "0x36054a3de44ae", + "nonce": "0x4" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f1f302c0788fd" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xf2ded1110ece1b981324d0d617b0ee7ca7d07879985372cd15daea4e2d97f638", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x24fddd659e17c372e4c3fd56df007cc620be6cbcdcb118d435c8d8c0136e6d94" + ], + "storage_written": { + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f": "0x189749d634915", + "0x24fddd659e17c372e4c3fd56df007cc620be6cbcdcb118d435c8d8c0136e6d94": "0x0" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + } + }, + "meta": { + "byte_code": "0x02f8b001038405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d00000000000000000000000000000000000000000000000000000000075ad623c001a070a441ae38d701b4fe682200c465ebaa82491f8c07ac1da7862adad8ca77b7aea0369c8b1ff30245fc60ab5dec155716d01060aadef0c89be16602993ff2d48483", + "new_txn_trie_node_byte": "0x02f8b001038405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d00000000000000000000000000000000000000000000000000000000075ad623c001a070a441ae38d701b4fe682200c465ebaa82491f8c07ac1da7862adad8ca77b7aea0369c8b1ff30245fc60ab5dec155716d01060aadef0c89be16602993ff2d48483", + "new_receipt_trie_node_byte": "0xb901ab02f901a701834ceed5b9010000000000000000000000000000000000000200000000000000000000000000000000000000000000000008000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000040000000000000000000000040000000000000000000100000000000000000000000000080000000000000800000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000008eeca23a0e346c1413baeb82381d1bfa32ebb838a000000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6da000000000000000000000000000000000000000000000000000000000075ad623", + "gas_used": 41309 + } + }, + { + "traces": { + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x8d7baeabf27f947f3181b272a974bd30e1b4640338330398c3d451d9566b4be2", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0xbb35b0d81f4c4bbc32025ea80ffa61ddfe48c81616c509e771d90fe97d7350df", + "0x428ac0b6b94a9ff5c764f0a4c0fb0d97f17730d429357642c7ebb6e7404751ac" + ], + "storage_written": { + "0x428ac0b6b94a9ff5c764f0a4c0fb0d97f17730d429357642c7ebb6e7404751ac": "0x3ef14800", + "0xbb35b0d81f4c4bbc32025ea80ffa61ddfe48c81616c509e771d90fe97d7350df": "0x18c71b0d60904" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x3d55ccb2a943d88d39dd2e62daf767c69fd0179f": { + "balance": "0x282743da780d777d1", + "nonce": "0x2a4e8" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f24ef9780c5fd" + } + }, + "meta": { + "byte_code": "0x02f8b4018302a4e78405f5e100855d21dba000830668a094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000e0c03f714f4564235f6c84945658d5c2ecaeb8b2000000000000000000000000000000000000000000000000000000003ef14800c001a030b292257a40ffda809b02295bd816886ca24f10e552ea44cb20d0b55300e615a00245e3c65d9a742fe4ec23c52f3ac85c6d688212156f562e58aa2842049c5e8f", + "new_txn_trie_node_byte": "0x02f8b4018302a4e78405f5e100855d21dba000830668a094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000e0c03f714f4564235f6c84945658d5c2ecaeb8b2000000000000000000000000000000000000000000000000000000003ef14800c001a030b292257a40ffda809b02295bd816886ca24f10e552ea44cb20d0b55300e615a00245e3c65d9a742fe4ec23c52f3ac85c6d688212156f562e58aa2842049c5e8f", + "new_receipt_trie_node_byte": "0xb901ab02f901a701834de5b2b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000001000000000001000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000010000000000000000000000000000000000000000000000000000000000000000000100000000010000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003d55ccb2a943d88d39dd2e62daf767c69fd0179fa0000000000000000000000000e0c03f714f4564235f6c84945658d5c2ecaeb8b2a0000000000000000000000000000000000000000000000000000000003ef14800", + "gas_used": 63197 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f28b11ccdf6fd" + }, + "0xba81d3d662691ac435e487ffc3bbb39f5561d640": { + "balance": "0x14ad5b35371b1f", + "nonce": "0x4" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x5148abe62e543065f7b353728920706a61722d7e7108f9096cee93db25a0d440", + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x889b5565c14292db4d4e854ba72dadc51ac819219b680c9442f85ffbe9ef5852", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003" + ], + "storage_written": { + "0x5148abe62e543065f7b353728920706a61722d7e7108f9096cee93db25a0d440": "0x0", + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f": "0x18974a3592a15" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + } + }, + "meta": { + "byte_code": "0x02f8b001038405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d0000000000000000000000000000000000000000000000000000000005f5e100c080a0936900f40392a75a5fae12f8e7673c980c8bd41df065c1c8a53d131797656762a0624eb3fc5c084df21baf9882a31cc54d16cdfbceaa0147f0ccfd8b280306f838", + "new_txn_trie_node_byte": "0x02f8b001038405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d0000000000000000000000000000000000000000000000000000000005f5e100c080a0936900f40392a75a5fae12f8e7673c980c8bd41df065c1c8a53d131797656762a0624eb3fc5c084df21baf9882a31cc54d16cdfbceaa0147f0ccfd8b280306f838", + "new_receipt_trie_node_byte": "0xb901ab02f901a701834e8703b9010000000000000000000000000000400000000000000000000000000000000000000000000000000000000008000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000010000000000000000000000040000000000000000000000000000000000000000000100000000000000000000000000080000000000000800000000000002000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000ba81d3d662691ac435e487ffc3bbb39f5561d640a000000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6da00000000000000000000000000000000000000000000000000000000005f5e100", + "gas_used": 41297 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f2c5c362dc4fd" + }, + "0xc00e94cb662c3520282e6f5717214004a7f26888": { + "storage_read": [ + "0x37583893b08b530541c9f5acf38ad3b056ce9f1f3f1db21bf49a6e685634d902", + "0xf638e873b5997fb27246cb42b03d32e7fc095e96f30e727471c8a1dc8ab225a7", + "0xb0c86e9b81cc33f480ad0d1717460fbad99accc1c5deec69a6063d6af332ad0c", + "0xeab65ce9d1318f8ebd3522bda70169980d510135b3913e195b3da655590fd6f3" + ], + "storage_written": { + "0xb0c86e9b81cc33f480ad0d1717460fbad99accc1c5deec69a6063d6af332ad0c": "0x2fe2131fb2a259700a5a", + "0xf638e873b5997fb27246cb42b03d32e7fc095e96f30e727471c8a1dc8ab225a7": "0x1" + }, + "code_usage": { + "read": "0x9398f9b1f117941e8e25a4aff4d11754f48933cc3c08101975e3306e98d88c2a" + } + }, + "0xc17ff2a0906b006136d1501d2f13b3cef13af006": { + "balance": "0xaba5dcb0a4a09", + "nonce": "0x6037" + } + }, + "meta": { + "byte_code": "0x02f8b2018260368405f5e1008508d8f9fc0082ea6094c00e94cb662c3520282e6f5717214004a7f2688880b844a9059cbb0000000000000000000000006cc5f688a315f3dc28a7781717a9a798a59fda7b00000000000000000000000000000000000000000000001a17cbaccdeac50000c080a061be4d88b89f763ccba79e7989b10f6e82194a70f19ecbe04f36f7a21aa3d044a0409ef864b7d7ebee49bd4811d553efbae02ddf2210d9c415f38665d18c691150", + "new_txn_trie_node_byte": "0x02f8b2018260368405f5e1008508d8f9fc0082ea6094c00e94cb662c3520282e6f5717214004a7f2688880b844a9059cbb0000000000000000000000006cc5f688a315f3dc28a7781717a9a798a59fda7b00000000000000000000000000000000000000000000001a17cbaccdeac50000c080a061be4d88b89f763ccba79e7989b10f6e82194a70f19ecbe04f36f7a21aa3d044a0409ef864b7d7ebee49bd4811d553efbae02ddf2210d9c415f38665d18c691150", + "new_receipt_trie_node_byte": "0xb901ab02f901a701834f2491b9010000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000080000000000000000000000000000000000000000000000000200000008000000000000000000000000000000000000000000000000000800000000000000000000000000000020000000000010000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000100002000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000008000000000000000000000000f89df89b94c00e94cb662c3520282e6f5717214004a7f26888f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000c17ff2a0906b006136d1501d2f13b3cef13af006a00000000000000000000000006cc5f688a315f3dc28a7781717a9a798a59fda7ba000000000000000000000000000000000000000000000001a17cbaccdeac50000", + "gas_used": 40334 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f301e030181fd" + }, + "0xa460a322e7e07444be40edd7e6a474214aa1fbb5": { + "balance": "0x2881a4a933c1f", + "nonce": "0x1" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0xff37f9939f247d39317333a8cdb53e16f8554625fda38e4aaa8d07b7c3129838", + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xdc3669ec37334c87a42438d6a9b83cc39d2c6b86970e282c7404ab8f49bd4c80", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003" + ], + "storage_written": { + "0x651c09f0225976825accb5f6f354162eabc0171d62abef4ad21724d4406efd2f": "0x18974af266795", + "0xff37f9939f247d39317333a8cdb53e16f8554625fda38e4aaa8d07b7c3129838": "0x0" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + } + }, + "meta": { + "byte_code": "0x02f8b001808405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d000000000000000000000000000000000000000000000000000000000bcd3d80c001a00662a0668e891f5b81b87f54c795344a81c7a0e768498b576299ea0371426768a02b66047980338821f6378eb939e7ab264b1579f63852eae1cf4348c67ecb9995", + "new_txn_trie_node_byte": "0x02f8b001808405f5e1008508d8f9fc0082c35094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6d000000000000000000000000000000000000000000000000000000000bcd3d80c001a00662a0668e891f5b81b87f54c795344a81c7a0e768498b576299ea0371426768a02b66047980338821f6378eb939e7ab264b1579f63852eae1cf4348c67ecb9995", + "new_receipt_trie_node_byte": "0xb901ab02f901a701834fc5eeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000040000000000000000000000000000000400000000002100000000000000000000000000080000000000000800000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000a460a322e7e07444be40edd7e6a474214aa1fbb5a000000000000000000000000068841a1806ff291314946eebd0cda8b348e73d6da0000000000000000000000000000000000000000000000000000000000bcd3d80", + "gas_used": 41309 + } + }, + { + "traces": { + "0x32353a6c91143bfd6c7d363b546e62a9a2489a20": { + "storage_read": [ + "0x4de88072fe0e0011d624dd09868593a4afefc74a00bda5328a2338745a601075", + "0xb0c86e9b81cc33f480ad0d1717460fbad99accc1c5deec69a6063d6af332ad0c" + ], + "storage_written": { + "0xb0c86e9b81cc33f480ad0d1717460fbad99accc1c5deec69a6063d6af332ad0c": "0x13f82656ccecc90ced4603", + "0x4de88072fe0e0011d624dd09868593a4afefc74a00bda5328a2338745a601075": "0xd68336dd" + }, + "code_usage": { + "read": "0x8879dd7faf6732eed5b41ab18db7ba8783da2e800d67c4ab16ffc4d977dd9002" + } + }, + "0x23529b46bb5fdb9f9d0427e9a35115551b72581b": { + "balance": "0x10995f4f948d0d", + "nonce": "0x29fb" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f334105771afd" + } + }, + "meta": { + "byte_code": "0x02f8b2018229fa8405f5e1008508d8f9fc0082ea609432353a6c91143bfd6c7d363b546e62a9a2489a2080b844a9059cbb0000000000000000000000006cc5f688a315f3dc28a7781717a9a798a59fda7b00000000000000000000000000000000000000000000001092c487806e331c00c001a0607ed7c49f5687f8f3bd09f1ef08bf88447b90a0a3f7978364a005f187b03aeba03533697fd70aecfad374eec4f10f6c99fc1e75e4cb9d4ff121b2daed5d73f2ef", + "new_txn_trie_node_byte": "0x02f8b2018229fa8405f5e1008508d8f9fc0082ea609432353a6c91143bfd6c7d363b546e62a9a2489a2080b844a9059cbb0000000000000000000000006cc5f688a315f3dc28a7781717a9a798a59fda7b00000000000000000000000000000000000000000000001092c487806e331c00c001a0607ed7c49f5687f8f3bd09f1ef08bf88447b90a0a3f7978364a005f187b03aeba03533697fd70aecfad374eec4f10f6c99fc1e75e4cb9d4ff121b2daed5d73f2ef", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183504ca7b9010000000000000000000000000000800000000000000080000000000000000200000000010000080000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000040000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000100002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b9432353a6c91143bfd6c7d363b546e62a9a2489a20f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000023529b46bb5fdb9f9d0427e9a35115551b72581ba00000000000000000000000006cc5f688a315f3dc28a7781717a9a798a59fda7ba000000000000000000000000000000000000000000000001092c487806e331c00", + "gas_used": 34489 + } + }, + { + "traces": { + "0x0000000000000000000000000000000000000000": {}, + "0x357e925110fa2ef3422a1bd623a74de127ff5e29": { + "balance": "0x51bdadf0ec018778", + "nonce": "0x482f" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f355a64fc42fd" + } + }, + "meta": { + "byte_code": "0x02f8f00182482e8405f5e10085104c6064d482753094000000000000000000000000000000000000000080b882646174613a6170706c69636174696f6e2f6a736f6e2c7b2270223a22696572632d706f77222c226f70223a226d696e74222c227469636b223a226574687069222c227573655f706f696e74223a2230222c22626c6f636b223a223139323430363533222c226e6f6e6365223a2231373037363132343333313939363939343236227dc080a02619dbd74ccc86892324b6d5b44b5e1cdfe444d84ae074d02a3a2d7f09d67d46a0720704b0b4940303d601fb3f5a4befcb67531e7389e518b058bd7b56e7db9ac8", + "new_txn_trie_node_byte": "0x02f8f00182482e8405f5e10085104c6064d482753094000000000000000000000000000000000000000080b882646174613a6170706c69636174696f6e2f6a736f6e2c7b2270223a22696572632d706f77222c226f70223a226d696e74222c227469636b223a226574687069222c227573655f706f696e74223a2230222c22626c6f636b223a223139323430363533222c226e6f6e6365223a2231373037363132343333313939363939343236227dc080a02619dbd74ccc86892324b6d5b44b5e1cdfe444d84ae074d02a3a2d7f09d67d46a0720704b0b4940303d601fb3f5a4befcb67531e7389e518b058bd7b56e7db9ac8", + "new_receipt_trie_node_byte": "0xb9010d02f90109018350a6cfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 23080 + } + }, + { + "traces": { + "0x000000000022d473030f116ddee9f6b43ac78ba3": { + "storage_read": [ + "0x5bb776c61b29a0f3c213b1fc0d8bdd0c42fcbf9e8d4848784a6b163668aae5ae" + ], + "code_usage": { + "read": "0xc67d1657868aa5146eaf24fb879fb1fdec3d2d493b3683a61c9c2f4fb2851131" + } + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0xb18c8c017c8730c46f65d1151d7fdeb447670d52": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000014", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x9650c31f7adfb67c3f6c7d90c57460d811b87d558e6272837a9ad5b3c732862a", + "0x0000000000000000000000000000000000000000000000000000000000000011", + "0xc9b446912383fdff75dbe1c0c9c90e5b69fdd26f243299b685463bf5747aa77e", + "0x13e75a7cc2ba186a271fd58dac9d4ff33ec582221291ec63b52136569581ece4", + "0x000000000000000000000000000000000000000000000000000000000000000e", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x2bf517b13835f45d2b0c8c6cff31bf2baba258ecb73a4668ddf1ad55c4848dd1", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000000000000000000000000000000000000b" + ], + "storage_written": { + "0xc9b446912383fdff75dbe1c0c9c90e5b69fdd26f243299b685463bf5747aa77e": "0x0", + "0x13e75a7cc2ba186a271fd58dac9d4ff33ec582221291ec63b52136569581ece4": "0xfffffffffffffffffffffffffffffffffffffffffffffffffef37854435da91e", + "0x9650c31f7adfb67c3f6c7d90c57460d811b87d558e6272837a9ad5b3c732862a": "0x5e508f1eac4c4", + "0x2bf517b13835f45d2b0c8c6cff31bf2baba258ecb73a4668ddf1ad55c4848dd1": "0x2f8cca06f04a175" + }, + "code_usage": { + "read": "0x5d7cbf1017b4a29d0ac80cf258464aecaf57408906dd43548ea63763261e19c1" + } + }, + "0xaf054fefbcae65406e3da38f3478b5389c598773": { + "balance": "0xad8e01eed250528", + "nonce": "0x9f" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x2986938a476c266fbe912", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0xe7a87162494b0cbd1d4c4e12b6765c012de0e6cb664350ecdee855d22a01dd51" + ], + "storage_written": { + "0xe7a87162494b0cbd1d4c4e12b6765c012de0e6cb664350ecdee855d22a01dd51": "0x62d702f16f762c62", + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f439f9a5c03bd" + }, + "0x036be6369d4d2883f3ce8da65e10bdfddbfb7d5d": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de700000000000062d702f16f762c6200000000000002f8cca06f04a175", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x3526f855e783e3fef223128849de7ef7bec", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x5a78127fe4bca279c2def90d6fec0399a8" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + } + }, + "meta": { + "byte_code": "0x02f902f301819e8405e69ec0850af16b160083037f40943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad80b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf60270000000000000000000000000000000000000000000000000000000000000002080c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000001675328a3097e900000000000000000000000000000000000000000000000002ec31bf748ecf4e00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000b18c8c017c8730c46f65d1151d7fdeb447670d52000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000002ec31bf748ecf4ec080a060abc3b177e976a5390c52810bf65f56d0ea7e45a937e4188e0aabc5afeacbe7a008f05bf2945c0da445bf8c20fcea8f626ee5f99ad322f03663b924752bc1f7ce", + "new_txn_trie_node_byte": "0x02f902f301819e8405e69ec0850af16b160083037f40943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad80b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf60270000000000000000000000000000000000000000000000000000000000000002080c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000001675328a3097e900000000000000000000000000000000000000000000000002ec31bf748ecf4e00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000b18c8c017c8730c46f65d1151d7fdeb447670d52000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000002ec31bf748ecf4ec080a060abc3b177e976a5390c52810bf65f56d0ea7e45a937e4188e0aabc5afeacbe7a008f05bf2945c0da445bf8c20fcea8f626ee5f99ad322f03663b924752bc1f7ce", + "new_receipt_trie_node_byte": "0xb9057802f9057401835311e8b9010000200000000004000000001080000000000000000000000000000000000000000000000000000000000000000000080002000000880000000000000000200000010000080000000000004008000000200200000000400800000000000020000000000000000000000000000000001000000000040000040100000010000000000000008000000000000004000000000000000000400000080000024000000000020000000000000000000000000000000000000000000000004000000000000000000002000000000000000000000000000000000000001000000002000000000010200000080000000000000000000010001000000000000000000000000000f90469f89b94b18c8c017c8730c46f65d1151d7fdeb447670d52f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000af054fefbcae65406e3da38f3478b5389c598773a0000000000000000000000000b18c8c017c8730c46f65d1151d7fdeb447670d52a00000000000000000000000000000000000000000000000000000397df2059b1ef89b94b18c8c017c8730c46f65d1151d7fdeb447670d52f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000af054fefbcae65406e3da38f3478b5389c598773a0000000000000000000000000036be6369d4d2883f3ce8da65e10bdfddbfb7d5da000000000000000000000000000000000000000000000000000163bb4982afccbf89b94b18c8c017c8730c46f65d1151d7fdeb447670d52f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000af054fefbcae65406e3da38f3478b5389c598773a0000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3a0fffffffffffffffffffffffffffffffffffffffffffffffffef37854435da91ef89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000036be6369d4d2883f3ce8da65e10bdfddbfb7d5da00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada000000000000000000000000000000000000000000000000002f76ad06839e996f87994036be6369d4d2883f3ce8da65e10bdfddbfb7d5de1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b84000000000000000000000000000000000000000000000000002f8cca06f04a17500000000000000000000000000000000000000000000000062d702f16f762c62f8fc94036be6369d4d2883f3ce8da65e10bdfddbfb7d5df863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fadb88000000000000000000000000000000000000000000000000000163bb4982afccb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002f76ad06839e996f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada000000000000000000000000000000000000000000000000002f76ad06839e996", + "gas_used": 158489 + } + }, + { + "traces": { + "0x4c9edd5852cd905f086c759e8383e09bff1e68b3": { + "storage_read": [ + "0x36d46e071a851eb6e97a0a5fc317395bbf085dd54aa8b07860731deadfbe065c", + "0xb34965ab7fa0761cfa854596b7cff62846ccf3f6cacc57aeb5091addb71f40ee", + "0x6e9ed98f3802bfbd788a5b408bbc6863e0f16bd4eacf69402844680650faf15f" + ], + "storage_written": { + "0x6e9ed98f3802bfbd788a5b408bbc6863e0f16bd4eacf69402844680650faf15f": "0x0", + "0x36d46e071a851eb6e97a0a5fc317395bbf085dd54aa8b07860731deadfbe065c": "0x1cd08fbc98519f397dacc", + "0xb34965ab7fa0761cfa854596b7cff62846ccf3f6cacc57aeb5091addb71f40ee": "0x0" + }, + "code_usage": { + "read": "0x6ca5462ff0355c610301f701d0bb1136becca144e195da86d240b5e604ef9625" + } + }, + "0x436902d3e7b45a1d90791049d369283b49a032aa": { + "balance": "0x4ab5ddcecef303", + "nonce": "0x229" + }, + "0x0000000000000000000000000000000000000004": {}, + "0xf55b0f6f2da5ffddb104b58a60f2862745960442": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x000000000000000000000000000000000000000000000000000000000000002b", + "0x000000000000000000000000000000000000000000000000000000000000002d", + "0x20973cfd05b47d6e15fb2951d8f0a1f1ac91025572e70c203d7361e1cf876b83", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000019", + "0x000000000000000000000000000000000000000000000000000000000000001a", + "0x0000000000000000000000000000000000000000000000000000000000000022", + "0x000000000000000000000000000000000000000000000000000000000000000f", + "0x0000000000000000000000000000000000000000000000000000000000000031", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x000000000000000000000000000000000000000000000000000000000000002e", + "0x000000000000000000000000000000000000000000000000000000000000002c", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000011", + "0x000000000000000000000000000000000000000000000000000000000000001b", + "0x0000000000000000000000000000000000000000000000000000000000000023" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000023": "0xdd1c8040e7cc66300000000000000000dd22ac31b61415d", + "0x000000000000000000000000000000000000000000000000000000000000002b": "0x35114e461b4bdbcff543a0000000000063513c70b32d21dbc39b0", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x3", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x1cd08fbc98519f397dacc", + "0x0000000000000000000000000000000000000000000000000000000000000011": "0x55e45545d649d267f", + "0x0000000000000000000000000000000000000000000000000000000000000012": "0x2fcac458e31f099b7", + "0x0000000000000000000000000000000000000000000000000000000000000022": "0x1", + "0x000000000000000000000000000000000000000000000000000000000000002e": "0x65cf5de700000000000000000000000065cf5de7", + "0x0000000000000000000000000000000000000000000000000000000000000031": "0x6349009af63cfc465ebef", + "0x20973cfd05b47d6e15fb2951d8f0a1f1ac91025572e70c203d7361e1cf876b83": "0x92ab0812d2137b39a9" + }, + "code_usage": { + "read": "0x1ae216d13259d3e2088f002c586ba617e8335d5618a35c3111fb762606a41e7b" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f518c77e22cbd" + } + }, + "meta": { + "byte_code": "0x02f901130182022884055d4a8085095160bd008303ae3f94f55b0f6f2da5ffddb104b58a60f286274596044280b8a4b72df5de00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000929fc476249942d7b9000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000009259f7eeb178d8d6a20000000000000000000000000000000000000000000000000000000000000000c080a0af8968a987e7dafa180757fe4a6f85d369269ec616f62fe19733c00f1ceb452fa0140366dac2f976831d54cc1ea255141b6874e894050fc4d7bdf757b609956568", + "new_txn_trie_node_byte": "0x02f901130182022884055d4a8085095160bd008303ae3f94f55b0f6f2da5ffddb104b58a60f286274596044280b8a4b72df5de00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000929fc476249942d7b9000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000009259f7eeb178d8d6a20000000000000000000000000000000000000000000000000000000000000000c080a0af8968a987e7dafa180757fe4a6f85d369269ec616f62fe19733c00f1ceb452fa0140366dac2f976831d54cc1ea255141b6874e894050fc4d7bdf757b609956568", + "new_receipt_trie_node_byte": "0xb9048502f90481018355aa72b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000008000000100000000200000000000000000000000000008000000000000000000000000000000000000800000000000020000000000000000000800000001000000000000000010000000000000002000000000000000002000000000000000008000000000000000000000020000000000000800000000000000000000000040100000000000000000000000000002000000000000000002000100000000100000000000000000000020000010000080000000000000000000000000000000000000000000000000000000f90376f89b944c9edd5852cd905f086c759e8383e09bff1e68b3f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000436902d3e7b45a1d90791049d369283b49a032aaa0000000000000000000000000f55b0f6f2da5ffddb104b58a60f2862745960442a00000000000000000000000000000000000000000000000000000000000000000f89b944c9edd5852cd905f086c759e8383e09bff1e68b3f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000436902d3e7b45a1d90791049d369283b49a032aaa0000000000000000000000000f55b0f6f2da5ffddb104b58a60f2862745960442a000000000000000000000000000000000000000000000009259f7eeb178d8d6a2f89b94f55b0f6f2da5ffddb104b58a60f2862745960442f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000436902d3e7b45a1d90791049d369283b49a032aaa0000000000000000000000000000000000000000000000092ab0812d2137b39a9f9019c94f55b0f6f2da5ffddb104b58a60f2862745960442f842a0189c623b666b1b45b83d7178f39b8c087cb09774317ca2f53c2d3c3726f222a2a0000000000000000000000000436902d3e7b45a1d90791049d369283b49a032aab90140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000063513c70b32d21dbc39b000000000000000000000000000000000000000000006349009af63cfc465ebef000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000009259f7eeb178d8d6a200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000016896caa6c81fc9000000000000000000000000000000000000000000000000015e0fd154e9a90a", + "gas_used": 170122 + } + }, + { + "traces": { + "0xf939e0a03fb07f59a73314e73794be0e57ac1b4e": { + "storage_read": [ + "0x808a60166465dd78807ec96a5a3d62c5463310f575281f19fc02b7ed98823407", + "0x8a4afeaebb077a2ba2458664089008db4ea0ccb912dfe2c2feb14ef3f11f414a", + "0x2059ae27eb003394c7b550734e0b1554c1e54648ea6b6ce36d0919e655847166" + ], + "storage_written": { + "0x808a60166465dd78807ec96a5a3d62c5463310f575281f19fc02b7ed98823407": "0x0", + "0x8a4afeaebb077a2ba2458664089008db4ea0ccb912dfe2c2feb14ef3f11f414a": "0x468a67d1c01c1175e329d", + "0x2059ae27eb003394c7b550734e0b1554c1e54648ea6b6ce36d0919e655847166": "0x0" + }, + "code_usage": { + "read": "0x7d33300cc75c4738e04e1f8c838b8b4fbb1c40d046131088463f70f9c712325f" + } + }, + "0x3622c0b06ff5be5ac1690e9c99cc6b450f178626": { + "balance": "0xc7d76cf4ca8aac", + "nonce": "0x2a" + }, + "0x0000000000000000000000000000000000000004": {}, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f615d3de9c23d" + }, + "0x4c9edd5852cd905f086c759e8383e09bff1e68b3": { + "storage_read": [ + "0x36d46e071a851eb6e97a0a5fc317395bbf085dd54aa8b07860731deadfbe065c", + "0x3281bd50a6defc83d376ced1110b4b92e2fedc448c3583cb65c87f617206ebef", + "0xe0357b72c8840ea393b1f562553cc74f336c581f866bfd0d9e3ff2d824b5161c" + ], + "storage_written": { + "0x3281bd50a6defc83d376ced1110b4b92e2fedc448c3583cb65c87f617206ebef": "0x44a0743f951464d19", + "0x36d46e071a851eb6e97a0a5fc317395bbf085dd54aa8b07860731deadfbe065c": "0x1cd0a17ac65e5c5696c10", + "0xe0357b72c8840ea393b1f562553cc74f336c581f866bfd0d9e3ff2d824b5161c": "0x44a0743f951464d19" + }, + "code_usage": { + "read": "0x6ca5462ff0355c610301f701d0bb1136becca144e195da86d240b5e604ef9625" + } + }, + "0xf55b0f6f2da5ffddb104b58a60f2862745960442": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000001b", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x000000000000000000000000000000000000000000000000000000000000002b", + "0xd79ffbfb4d3d426603726931e059f80b4b9620445f9e8d5f182d808dc0282901", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000019", + "0x0000000000000000000000000000000000000000000000000000000000000011", + "0x0000000000000000000000000000000000000000000000000000000000000022", + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0x000000000000000000000000000000000000000000000000000000000000001a", + "0x0000000000000000000000000000000000000000000000000000000000000031", + "0x000000000000000000000000000000000000000000000000000000000000002e", + "0x0000000000000000000000000000000000000000000000000000000000000023", + "0x000000000000000000000000000000000000000000000000000000000000002c", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x000000000000000000000000000000000000000000000000000000000000002d", + "0x000000000000000000000000000000000000000000000000000000000000000f", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000031": "0x63493dd9664d0ddb38743", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x468a67d1c01c1175e329d", + "0x0000000000000000000000000000000000000000000000000000000000000012": "0x2fcac46617edde567", + "0x000000000000000000000000000000000000000000000000000000000000002e": "0x65cf5de700000000000000000000000065cf5de7", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x1cd0a17ac65e5c5696c10", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x3", + "0x0000000000000000000000000000000000000000000000000000000000000011": "0x55e45553708c558d7", + "0x0000000000000000000000000000000000000000000000000000000000000022": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000023": "0xdd1c8040e7cc66300000000000000000dd22ac3177fb023", + "0xd79ffbfb4d3d426603726931e059f80b4b9620445f9e8d5f182d808dc0282901": "0x3d3e70101194d9b54", + "0x000000000000000000000000000000000000000000000000000000000000002b": "0x35114e461b4bdbcff543a00000000000635179ca6fc45b0ce2536" + }, + "code_usage": { + "read": "0x1ae216d13259d3e2088f002c586ba617e8335d5618a35c3111fb762606a41e7b" + } + } + }, + "meta": { + "byte_code": "0x02f90111012984055d4a8085095160bd008304252594f55b0f6f2da5ffddb104b58a60f286274596044280b8a4b72df5de0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000003d39bc473f454f9a300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000011be2e0cbd1d19144000000000000000000000000000000000000000000000002b8af20046a2c0745c001a079311c8dce68c7779b106d78497163d955a9a57669053471b59879e3a83bb779a05a0c3e552e60a5e7a41b530d4ddc1f96fd691e0b234c676aca7a39872c5a4b1d", + "new_txn_trie_node_byte": "0x02f90111012984055d4a8085095160bd008304252594f55b0f6f2da5ffddb104b58a60f286274596044280b8a4b72df5de0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000003d39bc473f454f9a300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000011be2e0cbd1d19144000000000000000000000000000000000000000000000002b8af20046a2c0745c001a079311c8dce68c7779b106d78497163d955a9a57669053471b59879e3a83bb779a05a0c3e552e60a5e7a41b530d4ddc1f96fd691e0b234c676aca7a39872c5a4b1d", + "new_receipt_trie_node_byte": "0xb905bf02f905bb0183589d31b9010000000000000000000000000000000020000000000200000000000000000000000000000000000000000000000000000800000000008000000000000000200000000000000000000000000008000000000000000000000000000000000000800000000000020000000000000000000800000001000000000000000010000000000000002000000000000000002000000000000000008000000000000040000000020000000000008000000000000000000000000040100000000000000000000000000002000000200000000000000100000000100000000000000000000020002010000080000000000000000000000000000000000000000000000000000000f904b0f89b944c9edd5852cd905f086c759e8383e09bff1e68b3f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a00000000000000000000000003622c0b06ff5be5ac1690e9c99cc6b450f178626a0000000000000000000000000f55b0f6f2da5ffddb104b58a60f2862745960442a00000000000000000000000000000000000000000000000044a0743f951464d19f89b944c9edd5852cd905f086c759e8383e09bff1e68b3f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003622c0b06ff5be5ac1690e9c99cc6b450f178626a0000000000000000000000000f55b0f6f2da5ffddb104b58a60f2862745960442a00000000000000000000000000000000000000000000000011be2e0cbd1d19144f89b94f939e0a03fb07f59a73314e73794be0e57ac1b4ef863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a00000000000000000000000003622c0b06ff5be5ac1690e9c99cc6b450f178626a0000000000000000000000000f55b0f6f2da5ffddb104b58a60f2862745960442a00000000000000000000000000000000000000000000000000000000000000000f89b94f939e0a03fb07f59a73314e73794be0e57ac1b4ef863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003622c0b06ff5be5ac1690e9c99cc6b450f178626a0000000000000000000000000f55b0f6f2da5ffddb104b58a60f2862745960442a0000000000000000000000000000000000000000000000002b8af20046a2c0745f89b94f55b0f6f2da5ffddb104b58a60f2862745960442f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000003622c0b06ff5be5ac1690e9c99cc6b450f178626a0000000000000000000000000000000000000000000000003d3e70101194d9b54f9019c94f55b0f6f2da5ffddb104b58a60f2862745960442f842a0189c623b666b1b45b83d7178f39b8c087cb09774317ca2f53c2d3c3726f222a2a00000000000000000000000003622c0b06ff5be5ac1690e9c99cc6b450f178626b90140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000635179ca6fc45b0ce2536000000000000000000000000000000000000000000063493dd9664d0ddb3874300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000011be2e0cbd1d19144000000000000000000000000000000000000000000000002b8af20046a2c07450000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000001b3485064b0000000000000000000000000000000000000000000000000000001a699da9761", + "gas_used": 193215 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f6523317db4bd" + }, + "0x8a3e74407aad1682c91a175e39424c90acfc81bd": { + "balance": "0x1c7cc2f44ef67e7", + "nonce": "0x52e4" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0xc1b47e0a32617f34fcae62cf56369b08546af7d1a8f42f7d7c40dec8febd3cfb", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0xcf72a386cec5a45cc4b96044ec1b639b4f865d62125c9f907c5d98f0b0252162", + "0x6be191e3b07007fd7c4cca951c0d28922383024cb44d6e109ba0a63d1008355c", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "storage_written": { + "0x6be191e3b07007fd7c4cca951c0d28922383024cb44d6e109ba0a63d1008355c": "0x3a80f765", + "0xcf72a386cec5a45cc4b96044ec1b639b4f865d62125c9f907c5d98f0b0252162": "0x15e9c4b0a" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + } + }, + "meta": { + "byte_code": "0x02f8b2018252e384055d4a8085085b1c94e282c61294dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000b4d70c2b0047cb8697f7087a5462b5a5896482010000000000000000000000000000000000000000000000000000000001253decc080a0ee63ccb2b97fa836b63a350c6681788f3330e095a660b1cd508cc25700ef2350a02e9c74a3e6373dd782008abe8a9586fcd0a1ff9c46cd8123bab818ba4b3b776e", + "new_txn_trie_node_byte": "0x02f8b2018252e384055d4a8085085b1c94e282c61294dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000b4d70c2b0047cb8697f7087a5462b5a5896482010000000000000000000000000000000000000000000000000000000001253decc080a0ee63ccb2b97fa836b63a350c6681788f3330e095a660b1cd508cc25700ef2350a02e9c74a3e6373dd782008abe8a9586fcd0a1ff9c46cd8123bab818ba4b3b776e", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183595142b9010000000000010000000000000000000000000000000040000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000800000000000000000000002000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000008a3e74407aad1682c91a175e39424c90acfc81bda0000000000000000000000000b4d70c2b0047cb8697f7087a5462b5a589648201a00000000000000000000000000000000000000000000000000000000001253dec", + "gas_used": 46097 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f698cf816d03d" + }, + "0x9ff33abf9834c0a447d02751fd0d769fcca7cf3f": { + "balance": "0x10f605cabd82f01", + "nonce": "0x1b" + }, + "0x9c056dbba1db552c72d1bf852882142dc5ebb5b1": { + "code_usage": { + "read": "0x7787b3e67256b8a481427e3c5a882ccb035d63878fcad59ff02c7837803c5cb8" + } + }, + "0x4b5f49487ea7b3609b1ad05459be420548789f1f": { + "storage_read": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x0000000000000000000000000000000000000000000000000000000000000065", + "0x85858163b5cef519bbdf59ec22b9230bd481a2f9ff4215d8850b83abdfcaef41", + "0xf02831722a1a1343177a1bfb0b95d808f059110c1336bfc33eef024f0703da34" + ], + "storage_written": { + "0xf02831722a1a1343177a1bfb0b95d808f059110c1336bfc33eef024f0703da34": "0x1705ba4a05e9dd64d730000", + "0x85858163b5cef519bbdf59ec22b9230bd481a2f9ff4215d8850b83abdfcaef41": "0x0" + }, + "code_usage": { + "read": "0x330b9f1afee9d71fb2ee42927a996a39889a45323883a66a194e210ab850d111" + } + } + }, + "meta": { + "byte_code": "0x02f8b0011a84055d4a8085083df60ab382fe4e944b5f49487ea7b3609b1ad05459be420548789f1f80b844a9059cbb00000000000000000000000028e526aec973f6e90f56770a17787fffd70aefe7000000000000000000000000000000000000000001705ba4a05e9dd64d730000c001a0fa6d512969f7165485932db4fca3fe53d51b382ef8ada49303a690f925f83be8a060ace8537cc4ba66bb483515400d88ab6755ec47585ab7d022c8c57d57a942aa", + "new_txn_trie_node_byte": "0x02f8b0011a84055d4a8085083df60ab382fe4e944b5f49487ea7b3609b1ad05459be420548789f1f80b844a9059cbb00000000000000000000000028e526aec973f6e90f56770a17787fffd70aefe7000000000000000000000000000000000000000001705ba4a05e9dd64d730000c001a0fa6d512969f7165485932db4fca3fe53d51b382ef8ada49303a690f925f83be8a060ace8537cc4ba66bb483515400d88ab6755ec47585ab7d022c8c57d57a942aa", + "new_receipt_trie_node_byte": "0xb901ab02f901a701835a23ddb9010000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000004000000010000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800010010000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000008000000000000000000000000002000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000200000000000000f89df89b944b5f49487ea7b3609b1ad05459be420548789f1ff863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000009ff33abf9834c0a447d02751fd0d769fcca7cf3fa000000000000000000000000028e526aec973f6e90f56770a17787fffd70aefe7a0000000000000000000000000000000000000000001705ba4a05e9dd64d730000", + "gas_used": 53915 + } + }, + { + "traces": { + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x9413d1ecba8c335070150521a34d8d8b507bd393d11746be7b19ae07d61e9abd", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x712819b41c931dd37b5b03af99944c0ed0039f70b3a252ec1369e5e452092057", + "0xc3c27a409f0150c25bf907b77516f37368db92463047168f55573614fe888785", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "storage_written": { + "0x712819b41c931dd37b5b03af99944c0ed0039f70b3a252ec1369e5e452092057": "0x1c7320453", + "0xc3c27a409f0150c25bf907b77516f37368db92463047168f55573614fe888785": "0x47508558" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f6d532c0a40bd" + }, + "0xb2514f4222fd474ff2cee2fe595ef2e7579779b1": { + "balance": "0x308ad2cada928b7", + "nonce": "0xd8" + } + }, + "meta": { + "byte_code": "0x02f8b10181d784055d4a8085083df60ab382c61f94dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000001f568fbac53da4a81ce61425ef48dbf76d84b4c100000000000000000000000000000000000000000000000000000000052ac74fc001a07316485202399318c6974901fbd43d6eff1ca9829969940d62db858df4d21b95a049f6da1f2b1f170b591fa8b2b82518abb108dbfd42437ddb68d59bd6d4977d4f", + "new_txn_trie_node_byte": "0x02f8b10181d784055d4a8085083df60ab382c61f94dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000001f568fbac53da4a81ce61425ef48dbf76d84b4c100000000000000000000000000000000000000000000000000000000052ac74fc001a07316485202399318c6974901fbd43d6eff1ca9829969940d62db858df4d21b95a049f6da1f2b1f170b591fa8b2b82518abb108dbfd42437ddb68d59bd6d4977d4f", + "new_receipt_trie_node_byte": "0xb901ab02f901a701835ad7fab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010010000000000000000000000000000000000000000000000000000000008000000000000008000000000000000000000000000000000000000000000000000000000002100000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000200000000002000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000b2514f4222fd474ff2cee2fe595ef2e7579779b1a00000000000000000000000001f568fbac53da4a81ce61425ef48dbf76d84b4c1a000000000000000000000000000000000000000000000000000000000052ac74f", + "gas_used": 46109 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f711d7b6abb3d" + }, + "0x4c9edd5852cd905f086c759e8383e09bff1e68b3": { + "storage_written": { + "0xcb5fcedd9a4d93d3e16ce6f6959dbaef0ce38e79fe11d4eef7edb935320b986f": "0x3df663aaff510019fa" + }, + "code_usage": { + "read": "0x6ca5462ff0355c610301f701d0bb1136becca144e195da86d240b5e604ef9625" + } + }, + "0x95f385ef30a849b2524bcb03a1a72f0ca137a355": { + "balance": "0x7a3abeaaae4d98", + "nonce": "0x1f6" + } + }, + "meta": { + "byte_code": "0x02f8b2018201f584055d4a8085089df7c88082b660944c9edd5852cd905f086c759e8383e09bff1e68b380b844095ea7b30000000000000000000000001ab3d612ea7df26117554dddd379764ebce1a5ad00000000000000000000000000000000000000000000003df663aaff510019fac001a084d5ec7febf87450e16e9edab505bcd5e1e485302f80deb7d05adde734f205a6a055f0907a7ca63966b2c30c5f16b1c3143407a43ae3eaa721bdf714a780988d20", + "new_txn_trie_node_byte": "0x02f8b2018201f584055d4a8085089df7c88082b660944c9edd5852cd905f086c759e8383e09bff1e68b380b844095ea7b30000000000000000000000001ab3d612ea7df26117554dddd379764ebce1a5ad00000000000000000000000000000000000000000000003df663aaff510019fac001a084d5ec7febf87450e16e9edab505bcd5e1e485302f80deb7d05adde734f205a6a055f0907a7ca63966b2c30c5f16b1c3143407a43ae3eaa721bdf714a780988d20", + "new_receipt_trie_node_byte": "0xb901ab02f901a701835b8cdbb9010000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000800000000000000000000000000200000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000008002000000000000000000020000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000080000000000000000000000000000000000000000000040000000000f89df89b944c9edd5852cd905f086c759e8383e09bff1e68b3f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a000000000000000000000000095f385ef30a849b2524bcb03a1a72f0ca137a355a00000000000000000000000001ab3d612ea7df26117554dddd379764ebce1a5ada000000000000000000000000000000000000000000000003df663aaff510019fa", + "gas_used": 46305 + } + }, + { + "traces": { + "0x974caa59e49682cda0ad2bbe82983419a2ecc400": { + "balance": "0x5158972964c05604c3", + "nonce": "0x20269a" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x443025b09bbeb064188f95744b9730ff447d64fef326c3d948823fc704611ab9", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x02109e648c764353db47b1d8894f1769d5b0e66c7caf2df343621702e7f66d88", + "0xe7c2d91c92f96c0d5ad69cd78ae89aff9c8ec68827b1189aec90712d90655b50", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "storage_written": { + "0x02109e648c764353db47b1d8894f1769d5b0e66c7caf2df343621702e7f66d88": "0x59e9380e376", + "0xe7c2d91c92f96c0d5ad69cd78ae89aff9c8ec68827b1189aec90712d90655b50": "0x4edffb1b" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f73493de7f4d6" + } + }, + "meta": { + "byte_code": "0xf8ad83202699850721dbba028310059094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000072951af2a37e1cd45cb504332088938af32bcaa6000000000000000000000000000000000000000000000000000000000d7970b825a0e0d160c1a668f0cab18e250b00b77053e8f68e58c63178139de58a74c873388ca0561636b0e38a0b903bf89ceea7a4801ca9da9d9ddfdede9b059b92cc93dc174e", + "new_txn_trie_node_byte": "0xf8ad83202699850721dbba028310059094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000072951af2a37e1cd45cb504332088938af32bcaa6000000000000000000000000000000000000000000000000000000000d7970b825a0e0d160c1a668f0cab18e250b00b77053e8f68e58c63178139de58a74c873388ca0561636b0e38a0b903bf89ceea7a4801ca9da9d9ddfdede9b059b92cc93dc174e", + "new_receipt_trie_node_byte": "0xf901a701835c40f8b9010000000000000000000000000000000000000000000000000000000000010000000000000000010000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000010000000000000000000000000000100000000000000000000000000000000000000100000000000000000000000000080000000400000000000080000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000974caa59e49682cda0ad2bbe82983419a2ecc400a000000000000000000000000072951af2a37e1cd45cb504332088938af32bcaa6a0000000000000000000000000000000000000000000000000000000000d7970b8", + "gas_used": 46109 + } + }, + { + "traces": { + "0x866f8a50a64e68ca66e97e032c5da99538b3f942": { + "storage_read": [ + "0xdb720c108b750290533f391b9f92ebd5b9324096e73591b7951579bce4dd71c6", + "0x32abce1cf581d648f9e5b95ee611120617404f6033cdb1c84fb9fc42aa943b4f", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0xb3a6a550cbcdde85ef0038ee236b220bb175e7efa81ee043ea1ccc6635e5f3e8", + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x7d3aa7627a", + "0xdb720c108b750290533f391b9f92ebd5b9324096e73591b7951579bce4dd71c6": "0x204a48c" + }, + "code_usage": { + "read": "0xd8d9ef85f8e343f3ad5289c07a0070033837a5e6103739e59809aecc84d5731b" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f76139f0cfbb7" + }, + "0xa66e0ffd24ae2fa323d1b0cdb80d9a594e3f28d7": { + "balance": "0x1fee90ae96704a1", + "nonce": "0xbc" + } + }, + "meta": { + "byte_code": "0xf8ab81bb850721dbba028301048894866f8a50a64e68ca66e97e032c5da99538b3f94280b84440c10f190000000000000000000000004f4c945856650367d520c492598a583404bc600b000000000000000000000000000000000000000000000000000000000204a48c26a02b6bec7f098582e1b082fadf80648cfe8a4f98e7138f21431d21bad2ddc2060ba02900a07d8bd6848cbc55a2c94abbc209e9f6c75503713b9ae270367d4775e7ae", + "new_txn_trie_node_byte": "0xf8ab81bb850721dbba028301048894866f8a50a64e68ca66e97e032c5da99538b3f94280b84440c10f190000000000000000000000004f4c945856650367d520c492598a583404bc600b000000000000000000000000000000000000000000000000000000000204a48c26a02b6bec7f098582e1b082fadf80648cfe8a4f98e7138f21431d21bad2ddc2060ba02900a07d8bd6848cbc55a2c94abbc209e9f6c75503713b9ae270367d4775e7ae", + "new_receipt_trie_node_byte": "0xf901a701835d287db9010000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040008000000000000000000000000000000000000000000000000020400000000000000000800000000000000000000000010000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000040000000000000000000000000000000002000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000f89df89b94866f8a50a64e68ca66e97e032c5da99538b3f942f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000004f4c945856650367d520c492598a583404bc600ba0000000000000000000000000000000000000000000000000000000000204a48c", + "gas_used": 59269 + } + }, + { + "traces": { + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xf66200dcfb6c8923d3f5d855f3651e082788b726bc857df4d4b56680085c3a05", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0xcdb14bc758e39f7fbc560d30596bd9273043496fe6ade861d93c32f40bcd6bf5", + "0x819de697ce25b013fadfba5469f8672a2e8184944540604cceeed1a8f2f36675" + ], + "storage_written": { + "0xcdb14bc758e39f7fbc560d30596bd9273043496fe6ade861d93c32f40bcd6bf5": "0xfbc5200", + "0x819de697ce25b013fadfba5469f8672a2e8184944540604cceeed1a8f2f36675": "0x1c9c380" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f790d587ad110" + }, + "0xa4f90fd1f0eb2f0826ff147ec3a9f01e935372b7": { + "balance": "0x4c155f06e68e6", + "nonce": "0x1" + } + }, + "meta": { + "byte_code": "0xf8aa80850721dbba02830186a094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000de326cd5d800f81815fc4a0f34c637073c3d563d0000000000000000000000000000000000000000000000000000000001c9c38025a006c8320a203a6f210357054b26fb74f52ff3520a8fa05283f3f33ce49f8e038da07e81d649171da2025eb1d2fdec084ce6d5d1742576d1a745af50413a7a5f6863", + "new_txn_trie_node_byte": "0xf8aa80850721dbba02830186a094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000de326cd5d800f81815fc4a0f34c637073c3d563d0000000000000000000000000000000000000000000000000000000001c9c38025a006c8320a203a6f210357054b26fb74f52ff3520a8fa05283f3f33ce49f8e038da07e81d649171da2025eb1d2fdec084ce6d5d1742576d1a745af50413a7a5f6863", + "new_receipt_trie_node_byte": "0xf901a701835e1f5ab9010000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000010000000000000000000000000000000200000002000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000040400000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000a4f90fd1f0eb2f0826ff147ec3a9f01e935372b7a0000000000000000000000000de326cd5d800f81815fc4a0f34c637073c3d563da00000000000000000000000000000000000000000000000000000000001c9c380", + "gas_used": 63197 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f7a4bca5a1734" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "storage_written": { + "0x14578c9239f323e46a2dec2f19ce8bc33c197b135325b56f668c59dc570563ba": "0x0" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0xf6391a02290948e339c423780e95ab00e6ca72f5": { + "balance": "0x38e7d88dd115cafb", + "nonce": "0x4" + } + }, + "meta": { + "byte_code": "0xf8a903850721dbba0282925894dac17f958d2ee523a2206206994597c13d831ec780b844095ea7b300000000000000000000000022ce84a7f86662b78e49c6ec9e51d60fdde7b70a000000000000000000000000000000000000000000000000000000000000000025a03e44e7cbdeeb3a2e1598bb07bb734ae9b56bf6cbb5520a4303e060d69c5cfd04a05a7f8124b42eac7239306affa8816cc553d53acc7ac8f205cdde7486fa93eba2", + "new_txn_trie_node_byte": "0xf8a903850721dbba0282925894dac17f958d2ee523a2206206994597c13d831ec780b844095ea7b300000000000000000000000022ce84a7f86662b78e49c6ec9e51d60fdde7b70a000000000000000000000000000000000000000000000000000000000000000025a03e44e7cbdeeb3a2e1598bb07bb734ae9b56bf6cbb5520a4303e060d69c5cfd04a05a7f8124b42eac7239306affa8816cc553d53acc7ac8f205cdde7486fa93eba2", + "new_receipt_trie_node_byte": "0xf901a701835e868eb9010000000000000000000020000000000000000000000000000000000000000000000000000000000008000000000000010000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000100000000000000000000000000000000100000020001000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000400f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000f6391a02290948e339c423780e95ab00e6ca72f5a000000000000000000000000022ce84a7f86662b78e49c6ec9e51d60fdde7b70aa00000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 26420 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965f7cf5a0002c74" + }, + "0xe90f7593f1253dcd26adbdb3098d00db31171396": { + "balance": "0x1198e6bb66d2947", + "nonce": "0x44" + }, + "0x43506849d7c04f9138d1a2050bbf3a0c054402dd": { + "code_usage": { + "read": "0xcdfb7d322961af3acae7a8f7ee8b69c205b36f576cc5b077f170c7eb8ecbe3ea" + } + }, + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "storage_read": [ + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x2080e77ab8bbb373bbac304a2e45a798cdea7281bc388be9819f0cfdc130b25a", + "0x3554fac18b8a4a3a1f3c35f814a452bba3cc5036ea1dc7106ec6045a02e24032" + ], + "storage_written": { + "0x2080e77ab8bbb373bbac304a2e45a798cdea7281bc388be9819f0cfdc130b25a": "0x236066013", + "0x3554fac18b8a4a3a1f3c35f814a452bba3cc5036ea1dc7106ec6045a02e24032": "0x1dcd6500" + }, + "code_usage": { + "read": "0xd80d4b7c890cb9d6a4893e6b52bc34b56b25335cb13716e0d1d31383e6b41505" + } + } + }, + "meta": { + "byte_code": "0x02f8b101438402cdd9888507249a514a83016f9394a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb000000000000000000000000a434ef4cf5324fa3dd573cbc42380403ac517c08000000000000000000000000000000000000000000000000000000001dcd6500c001a0b57057eda96bbf48ee2b6050709795b4428acd0de39206f26e1a8d8651e49c3da043ec183d994794b23da8e5746c83f80dfd0fa771aa21066faa44876c467cd6be", + "new_txn_trie_node_byte": "0x02f8b101438402cdd9888507249a514a83016f9394a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb000000000000000000000000a434ef4cf5324fa3dd573cbc42380403ac517c08000000000000000000000000000000000000000000000000000000001dcd6500c001a0b57057eda96bbf48ee2b6050709795b4428acd0de39206f26e1a8d8651e49c3da043ec183d994794b23da8e5746c83f80dfd0fa771aa21066faa44876c467cd6be", + "new_receipt_trie_node_byte": "0xb901ab02f901a701835f79b6b9010000000000000400000000000000000000000000000800000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000002100040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000e90f7593f1253dcd26adbdb3098d00db31171396a0000000000000000000000000a434ef4cf5324fa3dd573cbc42380403ac517c08a0000000000000000000000000000000000000000000000000000000001dcd6500", + "gas_used": 62248 + } + }, + { + "traces": { + "0x8995d5ec5b8ccccad089376a6b45149f9cecc16d": { + "balance": "0x20443c5f006b801", + "nonce": "0xe47" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965fbadad074d9a4" + }, + "0xb4f81147e830888367ddce66eda0480b316da878": { + "balance": "0x5961879a34679" + } + }, + "meta": { + "byte_code": "0xf86d820e468507dfeedf7b82520894b4f81147e830888367ddce66eda0480b316da8788705961879a346798026a021bab5afe073af4b5ba1f5544cb6d91712a1bfe388b174a6b3bffc62a9cc72cda01c0c3906f6f71c33875bb38b6b1665568cf604d1a7a4ca08cf2d6ee16108ae8c", + "new_txn_trie_node_byte": "0xf86d820e468507dfeedf7b82520894b4f81147e830888367ddce66eda0480b316da8788705961879a346798026a021bab5afe073af4b5ba1f5544cb6d91712a1bfe388b174a6b3bffc62a9cc72cda01c0c3906f6f71c33875bb38b6b1665568cf604d1a7a4ca08cf2d6ee16108ae8c", + "new_receipt_trie_node_byte": "0xf9010901835fcbbeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1965ff0f0a5d42f64" + }, + "0x7cde5a64e5737751d08a47669b8a17777d5bdd82": { + "balance": "0x4dee", + "nonce": "0x1" + }, + "0xfb19ffd1ff9316b7f5bba076ef4b78e4bbedf4e1": { + "balance": "0x189678433457bd66" + } + }, + "meta": { + "byte_code": "0xf86b808507c78f5c0d82520894fb19ffd1ff9316b7f5bba076ef4b78e4bbedf4e18786ea9b834403aa8026a018133566f3ce86c014f6409420ba9b2a52eb6917e5975cac1ed7887c6e836bcaa02b3f9dc5a53edf046b55d529c004ef650c6a97f8963ffa612a6e5b241e821ea6", + "new_txn_trie_node_byte": "0xf86b808507c78f5c0d82520894fb19ffd1ff9316b7f5bba076ef4b78e4bbedf4e18786ea9b834403aa8026a018133566f3ce86c014f6409420ba9b2a52eb6917e5975cac1ed7887c6e836bcaa02b3f9dc5a53edf046b55d529c004ef650c6a97f8963ffa612a6e5b241e821ea6", + "new_receipt_trie_node_byte": "0xf901090183601dc6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x6889bb23f70e4442a2094e89871e92ed5acea668": { + "balance": "0x97ecb28ea7bb400" + }, + "0x264bd8291fae1d75db2c5f573b07faa6715997b5": { + "balance": "0x2d276bd79ad010a00e9", + "nonce": "0x8d22a" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196601ba24e6a2cc4" + } + }, + "meta": { + "byte_code": "0x01f872018308d2298507a402ac018307a120946889bb23f70e4442a2094e89871e92ed5acea6688801aebd9c8933c00080c001a06d0bc0458e20866415abdec9c6ac609366f3d24be6ca25b55a585efae5229bc5a0636b76f56d70806cb4ebd245c308cd1f968673d5464b1ed9a739c2bee5898655", + "new_txn_trie_node_byte": "0x01f872018308d2298507a402ac018307a120946889bb23f70e4442a2094e89871e92ed5acea6688801aebd9c8933c00080c001a06d0bc0458e20866415abdec9c6ac609366f3d24be6ca25b55a585efae5229bc5a0636b76f56d70806cb4ebd245c308cd1f968673d5464b1ed9a739c2bee5898655", + "new_receipt_trie_node_byte": "0xb9010d01f901090183606fceb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x8216874887415e2650d12d53ff53516f04a74fd7": { + "balance": "0x1a997d4fc0e87418e", + "nonce": "0xe0430" + }, + "0xabb2516258b277711c39105a45d3fbaec5998586": { + "balance": "0x74e2602d1c4000" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1966041def8e3f0c4" + } + }, + "meta": { + "byte_code": "0x02f87501830e042f8477541880850cb2c7a58182520894abb2516258b277711c39105a45d3fbaec59985868774e2602d1c400080c001a0bf5db6ccd186b037761c35514eb84e1d0f188ba544554225594d10ce7e1526cea03b153822b996123190ea986eccf142c59155e3037957b3c566dbb0338a37942c", + "new_txn_trie_node_byte": "0x02f87501830e042f8477541880850cb2c7a58182520894abb2516258b277711c39105a45d3fbaec59985868774e2602d1c400080c001a0bf5db6ccd186b037761c35514eb84e1d0f188ba544554225594d10ce7e1526cea03b153822b996123190ea986eccf142c59155e3037957b3c566dbb0338a37942c", + "new_receipt_trie_node_byte": "0xb9010d02f90109018360c1d6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196606811dbf890c4" + }, + "0xc585ad419c5650041b74b105075248f80ac9135d": { + "balance": "0x5bb06f61455d8", + "nonce": "0x293b" + }, + "0xa03400e098f4421b34a3a44a1b4e571419517687": { + "balance": "0x91564899643897b70" + } + }, + "meta": { + "byte_code": "0x02f8750182293a84773594008508ea141edc82ea6094a03400e098f4421b34a3a44a1b4e571419517687880eb041c89743d40080c001a04b80b89bb49b47a20c82b56f4da09eb6491bdab89fee24b0900407b3578cdedda05de0ca6bfc4305d78fe840ab26a52420203f7e09abd944e7a786d030a95d5c16", + "new_txn_trie_node_byte": "0x02f8750182293a84773594008508ea141edc82ea6094a03400e098f4421b34a3a44a1b4e571419517687880eb041c89743d40080c001a04b80b89bb49b47a20c82b56f4da09eb6491bdab89fee24b0900407b3578cdedda05de0ca6bfc4305d78fe840ab26a52420203f7e09abd944e7a786d030a95d5c16", + "new_receipt_trie_node_byte": "0xb9010d02f9010901836113deb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196608e44bf0d30c4" + }, + "0x8a22a3c10f2a658cdf1d9e66c9687d1cdaba5c8a": { + "balance": "0x291d01af18c7c3" + }, + "0x0d0707963952f2fba59dd06f2b425ace40b492fe": { + "balance": "0xd25dc72a3dd3f4e5", + "nonce": "0x55fa62" + } + }, + "meta": { + "byte_code": "0x02f876018355fa618477359400850f4889a67683019a28948a22a3c10f2a658cdf1d9e66c9687d1cdaba5c8a8728e448b55d600080c001a012e52345735c1221af2ffce9bc3af6ced83976ffdc967eb30cc26a771e71e9cea07dab906033048d26b7f760b58902ce60c80c80f766110ce58fe5e7bb85886af0", + "new_txn_trie_node_byte": "0x02f876018355fa618477359400850f4889a67683019a28948a22a3c10f2a658cdf1d9e66c9687d1cdaba5c8a8728e448b55d600080c001a012e52345735c1221af2ffce9bc3af6ced83976ffdc967eb30cc26a771e71e9cea07dab906033048d26b7f760b58902ce60c80c80f766110ce58fe5e7bb85886af0", + "new_receipt_trie_node_byte": "0xb9010d02f9010901836165e6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19660b477a221d0c4" + }, + "0x6a4b1a31469e6f90df8074e14f130b738258d9a3": { + "balance": "0x65dc6b124ddb8" + }, + "0xbd0fccdc19bc3b979e8e256b7b88aae7c77a5bec": { + "balance": "0xd40dc9df9255606d1", + "nonce": "0x79b0" + } + }, + "meta": { + "byte_code": "0x02f874018279af8477359400850eb4c132aa82d6d8946a4b1a31469e6f90df8074e14f130b738258d9a387065dc6b124ddb880c001a09e52900b4a4a576465dcf31eae2826c779298815ac782348e75c2f7433e0143aa027b6295455f6f1b0615c2cfde0c92617eefc22e6f0eaf15b22d13b209d66fa93", + "new_txn_trie_node_byte": "0x02f874018279af8477359400850eb4c132aa82d6d8946a4b1a31469e6f90df8074e14f130b738258d9a387065dc6b124ddb880c001a09e52900b4a4a576465dcf31eae2826c779298815ac782348e75c2f7433e0143aa027b6295455f6f1b0615c2cfde0c92617eefc22e6f0eaf15b22d13b209d66fa93", + "new_receipt_trie_node_byte": "0xb9010d02f90109018361b7eeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x563115f51ac97e8305deb9bb2197f119c13da533": { + "balance": "0xc46cc56988e7796" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19660daaa853670c4" + }, + "0x4976a4a02f38326660d17bf34b431dc6e2eb2327": { + "balance": "0x3432e8e3d1855aacdd1", + "nonce": "0x38fdb5" + } + }, + "meta": { + "byte_code": "0x02f877018338fdb484773594008517bfac7c008303291894563115f51ac97e8305deb9bb2197f119c13da533880c229089fd6d100080c080a0a66deb1478006539ff09d5b4b6b3e54e921b1a11998f69e6587c51f17c8f303ea0262165915b46dff83d8d514aafb5bdb5de01aaf040a0c19723c5f45ceb4f6304", + "new_txn_trie_node_byte": "0x02f877018338fdb484773594008517bfac7c008303291894563115f51ac97e8305deb9bb2197f119c13da533880c229089fd6d100080c080a0a66deb1478006539ff09d5b4b6b3e54e921b1a11998f69e6587c51f17c8f303ea0262165915b46dff83d8d514aafb5bdb5de01aaf040a0c19723c5f45ceb4f6304", + "new_receipt_trie_node_byte": "0xb9010d02f9010901836209f6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x0a12da0c6b8fd42bf432785653312ff25eb88eb2": { + "balance": "0x260efbea297ca418" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1966100dd684b10c4" + }, + "0xdfd5293d8e347dfe59e90efd55b2956a1343963d": { + "balance": "0x2b62acf8a7185647d0b", + "nonce": "0x7df823" + } + }, + "meta": { + "byte_code": "0x02f87701837df82284773594008517bfac7c0083032918940a12da0c6b8fd42bf432785653312ff25eb88eb288049ed38284d8b80080c001a03f58552121cfea6f14284f06363b7bbd54c285c62e31464af1e688ae861f6ebda0737d8c857b9cb5f25578a816fd59acc6833114e4dc15b5a69198d4a7f869cb28", + "new_txn_trie_node_byte": "0x02f87701837df82284773594008517bfac7c0083032918940a12da0c6b8fd42bf432785653312ff25eb88eb288049ed38284d8b80080c001a03f58552121cfea6f14284f06363b7bbd54c285c62e31464af1e688ae861f6ebda0737d8c857b9cb5f25578a816fd59acc6833114e4dc15b5a69198d4a7f869cb28", + "new_receipt_trie_node_byte": "0xb9010d02f901090183625bfeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x077d360f11d220e4d5d831430c81c26c9be7c4a4": { + "balance": "0xb5259a8ba0689106" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196611bf746fd5c1c" + }, + "0x328e31cb53b8a73f00685bca2ee237d3c690db32": { + "balance": "0x1d1a94a20000", + "nonce": "0x1" + } + }, + "meta": { + "byte_code": "0xf86b808507735940008255f094077d360f11d220e4d5d831430c81c26c9be7c4a4871cbf15debc50008025a03de587ecf53985be854928eab42ffeb628cbf2bc339c5df6cd14b8a836bf9831a02fabf94eb9435db61b0e019378a64a4f1dee8791dc6fb45b9538bf6190d6c56a", + "new_txn_trie_node_byte": "0xf86b808507735940008255f094077d360f11d220e4d5d831430c81c26c9be7c4a4871cbf15debc50008025a03de587ecf53985be854928eab42ffeb628cbf2bc339c5df6cd14b8a836bf9831a02fabf94eb9435db61b0e019378a64a4f1dee8791dc6fb45b9538bf6190d6c56a", + "new_receipt_trie_node_byte": "0xf90109018362ae06b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0xbde1148eec7b6939f6d6ccf9aaa020f3c0bcc180": { + "balance": "0x139aa27736d5d19146" + }, + "0x05164623eb75013880b1d602458f78c982e4f315": { + "balance": "0x0", + "nonce": "0x5" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661371125afa774" + } + }, + "meta": { + "byte_code": "0xf86b0485077359400082520894bde1148eec7b6939f6d6ccf9aaa020f3c0bcc1808725e67d4e76c0008025a0d5bf3e3afbf2d80d66cb29e7b82ec4b09014a2b7c92f1f815a48afe315efe3d0a02140d8a903bb2bc822e9e83c83bb6c48534c063dde9d62786334daf5da5a896f", + "new_txn_trie_node_byte": "0xf86b0485077359400082520894bde1148eec7b6939f6d6ccf9aaa020f3c0bcc1808725e67d4e76c0008025a0d5bf3e3afbf2d80d66cb29e7b82ec4b09014a2b7c92f1f815a48afe315efe3d0a02140d8a903bb2bc822e9e83c83bb6c48534c063dde9d62786334daf5da5a896f", + "new_receipt_trie_node_byte": "0xf90109018363000eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4302b54ff22f65b0490aed5f09c5edbfbfafac88": { + "balance": "0x2a8320398e7cb5f0", + "nonce": "0x57c5" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196614dfc7abc0774" + }, + "0xbc156e663bffc54c6fce1d93b4f30b1b57d8d7f8": { + "balance": "0x555f61225a4b18" + } + }, + "meta": { + "byte_code": "0x02f874018257c48447868c0085090c6dbf6982520894bc156e663bffc54c6fce1d93b4f30b1b57d8d7f88751f4e34111c40080c001a0a215d3947cad0eca84ccc02d7b85730c233c5eada2def7a4fff7d7f5e0d36519a059f94c95424734965fa1356b0de5499e736e8daefb58ec6add8edd74ca899024", + "new_txn_trie_node_byte": "0x02f874018257c48447868c0085090c6dbf6982520894bc156e663bffc54c6fce1d93b4f30b1b57d8d7f88751f4e34111c40080c001a0a215d3947cad0eca84ccc02d7b85730c233c5eada2def7a4fff7d7f5e0d36519a059f94c95424734965fa1356b0de5499e736e8daefb58ec6add8edd74ca899024", + "new_receipt_trie_node_byte": "0xb9010d02f901090183635216b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196616115ec465774" + }, + "0x3e3b6403f11630561c756a33f62aa48418709d49": { + "balance": "0xee96b8e7287cf08" + }, + "0x7dbdec4edbeb5fa3c9f79a87af427b970a88d90d": { + "balance": "0x3d966f640aa026bad", + "nonce": "0x788f" + } + }, + "meta": { + "byte_code": "0x02f8750182788e843b9aca00850c770e5701825208943e3b6403f11630561c756a33f62aa48418709d49880ee91813ef21f80080c001a0cc26626855162f0af553b48f05200817bb182e4cff6e819822eca7b611ca1339a07f3f73873fc6db0cf9e97226bd6ab6f8f6acbdef0dd4b1a839ea16ed8d936ada", + "new_txn_trie_node_byte": "0x02f8750182788e843b9aca00850c770e5701825208943e3b6403f11630561c756a33f62aa48418709d49880ee91813ef21f80080c001a0cc26626855162f0af553b48f05200817bb182e4cff6e819822eca7b611ca1339a07f3f73873fc6db0cf9e97226bd6ab6f8f6acbdef0dd4b1a839ea16ed8d936ada", + "new_receipt_trie_node_byte": "0xb9010d02f90109018363a41eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661742f5dd0a774" + }, + "0xab782bc7d4a2b306825de5a7730034f8f63ee1bc": { + "balance": "0x827858c19191f34fff", + "nonce": "0x20717" + }, + "0x45aa506bb80032c52c992c07d76d8fafe35b0ae4": { + "balance": "0x1b04762e434400" + } + }, + "meta": { + "byte_code": "0x02f8750183020716843b9aca00850c770e57018252089445aa506bb80032c52c992c07d76d8fafe35b0ae4871b04762e43440080c080a0f18f26d0323d7260ddf2618dcfd953ef08b01857ca366c42844de5d79cf81c11a05debce855dcea05b7c653a84d6b043a50794e98ab345c599cfc7a661299032aa", + "new_txn_trie_node_byte": "0x02f8750183020716843b9aca00850c770e57018252089445aa506bb80032c52c992c07d76d8fafe35b0ae4871b04762e43440080c080a0f18f26d0323d7260ddf2618dcfd953ef08b01857ca366c42844de5d79cf81c11a05debce855dcea05b7c653a84d6b043a50794e98ab345c599cfc7a661299032aa", + "new_receipt_trie_node_byte": "0xb9010d02f90109018363f626b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x475fabf10ac820ce4dd52fe30c7df82271933a57": { + "balance": "0x4224dcd051a9649df", + "nonce": "0x7a0d" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196618748cf5af774" + }, + "0x8b69092c00d8785938a180c2a5e8bb9de12b7c60": { + "balance": "0xb99cf52e5add3e0" + } + }, + "meta": { + "byte_code": "0x02f87501827a0c843b9aca00850c770e5701825208948b69092c00d8785938a180c2a5e8bb9de12b7c60880b9985091a84100080c080a0168e36b2a1167b47e03538e5c1634314fc3b6988c081a3b634f6007b61765538a039ad4e0afe94791a0dffe709f008776a746cbe1a15e5eba7ef0b44a4e3920b27", + "new_txn_trie_node_byte": "0x02f87501827a0c843b9aca00850c770e5701825208948b69092c00d8785938a180c2a5e8bb9de12b7c60880b9985091a84100080c080a0168e36b2a1167b47e03538e5c1634314fc3b6988c081a3b634f6007b61765538a039ad4e0afe94791a0dffe709f008776a746cbe1a15e5eba7ef0b44a4e3920b27", + "new_receipt_trie_node_byte": "0xb9010d02f90109018364482eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196619a6240e54774" + }, + "0x2df9b935c44057ac240634c7536511d8aa03028d": { + "balance": "0xd296d2690b67f539" + }, + "0xc80882dd97f2bab7cc90517b1a5947b7916167c6": { + "balance": "0x1a3588c2f0560", + "nonce": "0x3" + } + }, + "meta": { + "byte_code": "0x02f8730102843b9aca00850c770e5701825208942df9b935c44057ac240634c7536511d8aa03028d8802f1f5964ccf4ac880c001a06ab29d48216afc125362c78f8e2e48998127401d2e794bf110e386fd472aa3e1a07e3261d166d56e1c78277d9143426ed322b9ac6ee8d8b886e7dba020e45e3fda", + "new_txn_trie_node_byte": "0x02f8730102843b9aca00850c770e5701825208942df9b935c44057ac240634c7536511d8aa03028d8802f1f5964ccf4ac880c001a06ab29d48216afc125362c78f8e2e48998127401d2e794bf110e386fd472aa3e1a07e3261d166d56e1c78277d9143426ed322b9ac6ee8d8b886e7dba020e45e3fda", + "new_receipt_trie_node_byte": "0xb9010d02f901090183649a36b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0xa7e172275e2e05a4d5ebd2ef639b0cce7900881c": { + "balance": "0x43f4f7e0cddc08", + "nonce": "0x3af" + }, + "0xdb4325bfdb5877f15c5f7079a99e8936a32313a5": { + "balance": "0x9b6e64a8ec60000" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661a3eef9aa6f74" + } + }, + "meta": { + "byte_code": "0x02f875018203ae841dcd65008509db73b92082520894db4325bfdb5877f15c5f7079a99e8936a32313a588016345785d8a000080c001a059ef2f974f2a50dcbb01f6e64b51d106d15ac582b14926a0c8a88a35ef8eb2d8a07149a212082af3ce02809539a494b942a6f46062dfa04a0ea8abc6e1f22a797e", + "new_txn_trie_node_byte": "0x02f875018203ae841dcd65008509db73b92082520894db4325bfdb5877f15c5f7079a99e8936a32313a588016345785d8a000080c001a059ef2f974f2a50dcbb01f6e64b51d106d15ac582b14926a0c8a88a35ef8eb2d8a07149a212082af3ce02809539a494b942a6f46062dfa04a0ea8abc6e1f22a797e", + "new_receipt_trie_node_byte": "0xb9010d02f90109018364ec3eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x035535b9cb724e88d647d5d42ff0ad2cfe9d75af": { + "balance": "0xa478d1dc3cbca7" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661ad7bb26f9774" + }, + "0xa5d8552b7839bcd415965e916383e3f0ffe9e77d": { + "balance": "0x23efa4eec2f7e9", + "nonce": "0xd" + } + }, + "meta": { + "byte_code": "0x02f872010c841dcd65008509db73b92082520894035535b9cb724e88d647d5d42ff0ad2cfe9d75af87753d533d96800080c001a0511ea2f442c602c2297baacc63f04f3cea272d5ffd34569800e1ff3017ea00b8a037105b81d60bc2db711619c671a90ae21102eedf704fa21f8e588a96deaf550c", + "new_txn_trie_node_byte": "0x02f872010c841dcd65008509db73b92082520894035535b9cb724e88d647d5d42ff0ad2cfe9d75af87753d533d96800080c001a0511ea2f442c602c2297baacc63f04f3cea272d5ffd34569800e1ff3017ea00b8a037105b81d60bc2db711619c671a90ae21102eedf704fa21f8e588a96deaf550c", + "new_receipt_trie_node_byte": "0xb9010d02f901090183653e46b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x8942915412f7f79c85feee7aaa6d361de4360a25": { + "balance": "0xd6f8e18d2c58", + "nonce": "0x47" + }, + "0x20d13f6b44dbede399f16763a4d5bd5225c423f4": { + "balance": "0x642afd5bd90efc" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661b7086b34bf74" + } + }, + "meta": { + "byte_code": "0x02f8720146841dcd65008509db73b9208252089420d13f6b44dbede399f16763a4d5bd5225c423f487504c8da383ed7380c080a01e01f3b746068a1313b6a1e816c4a0a343cbc0d2524ef7f544f8355b564c9057a010e91c126d03a39d3a44b8815dd7bc987b6cb69b87e471966bdff12bc4e3c73e", + "new_txn_trie_node_byte": "0x02f8720146841dcd65008509db73b9208252089420d13f6b44dbede399f16763a4d5bd5225c423f487504c8da383ed7380c080a01e01f3b746068a1313b6a1e816c4a0a343cbc0d2524ef7f544f8355b564c9057a010e91c126d03a39d3a44b8815dd7bc987b6cb69b87e471966bdff12bc4e3c73e", + "new_receipt_trie_node_byte": "0xb9010d02f90109018365904eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0xfd714d7098cff5f6f81e276ca9259f2d66fb8bc1": { + "balance": "0x1c31bffcf000", + "nonce": "0x1" + }, + "0x077d360f11d220e4d5d831430c81c26c9be7c4a4": { + "balance": "0xeca60913be3bf106" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661bf08d85cbacc" + } + }, + "meta": { + "byte_code": "0xf86c80850737be76008255f094077d360f11d220e4d5d831430c81c26c9be7c4a48837806e881dd360008026a0480acbdb4f617292ca4baa471b0cf32055b6728efc71488e0854bfdef25ff49ea05f51dbf488ad6e932d8036c37eed7a3defe129fddd36a46c17af48b18d2d0074", + "new_txn_trie_node_byte": "0xf86c80850737be76008255f094077d360f11d220e4d5d831430c81c26c9be7c4a48837806e881dd360008026a0480acbdb4f617292ca4baa471b0cf32055b6728efc71488e0854bfdef25ff49ea05f51dbf488ad6e932d8036c37eed7a3defe129fddd36a46c17af48b18d2d0074", + "new_receipt_trie_node_byte": "0xf90109018365e256b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x077d360f11d220e4d5d831430c81c26c9be7c4a4": { + "balance": "0xec5b474c71e51d06", + "nonce": "0xf6511" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661c7094584b624" + }, + "0xb339e4be667068011639c514c5eb0ae479beab1c": { + "balance": "0x3c92cdef9b3e3cdd0" + } + }, + "meta": { + "byte_code": "0xf86e830f6510850737be760082ea6094b339e4be667068011639c514c5eb0ae479beab1c874871b28c9724008025a080b0ed5b239e04eda2a62e42c70c8b8e3e35470b0adffbec2b0e27283fd83437a05179f1bb0f942fbe1757cd7c443c999cd921acad7a95223fb96661482fa3216b", + "new_txn_trie_node_byte": "0xf86e830f6510850737be760082ea6094b339e4be667068011639c514c5eb0ae479beab1c874871b28c9724008025a080b0ed5b239e04eda2a62e42c70c8b8e3e35470b0adffbec2b0e27283fd83437a05179f1bb0f942fbe1757cd7c443c999cd921acad7a95223fb96661482fa3216b", + "new_receipt_trie_node_byte": "0xf90109018366345eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x716579a15d00b33e2a2fe03d8f339c4def57e58a": { + "balance": "0x1c31bffcf000", + "nonce": "0x1" + }, + "0x077d360f11d220e4d5d831430c81c26c9be7c4a4": { + "balance": "0xec78181e83342506" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661cf09b2acb17c" + } + }, + "meta": { + "byte_code": "0xf86b80850737be76008255f094077d360f11d220e4d5d831430c81c26c9be7c4a4871cd0d2114f08008026a00fe2f5446a3d01bb050611a005cd788fef865e099d55ab37cfc9578039c034dfa06bcf70ebf65b4d804c9e458856f34ee14494d5f48899ca1f768f8343dba1bef8", + "new_txn_trie_node_byte": "0xf86b80850737be76008255f094077d360f11d220e4d5d831430c81c26c9be7c4a4871cd0d2114f08008026a00fe2f5446a3d01bb050611a005cd788fef865e099d55ab37cfc9578039c034dfa06bcf70ebf65b4d804c9e458856f34ee14494d5f48899ca1f768f8343dba1bef8", + "new_receipt_trie_node_byte": "0xf901090183668666b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x85c90b2c7660b168c71a4f9d34f73a1e827e382b": { + "balance": "0x1313bd858b58b0", + "nonce": "0x4" + }, + "0xd8556b425f5096980b6c9e4cca571421272d0f5a": { + "balance": "0x285cc4f14b1000" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661d70a1fd4acd4" + } + }, + "meta": { + "byte_code": "0xf86b03850737be760082520894d8556b425f5096980b6c9e4cca571421272d0f5a87285cc4f14b10008026a0d2eb9e5d09ce4d2056bd2b14a73abfb54fa1583a54b592c9a8eb4eb629106d9ea02e4a4684e85b43ca7b9c048a692be8f04cf1df3ad1549e1f3f0779719dd14a33", + "new_txn_trie_node_byte": "0xf86b03850737be760082520894d8556b425f5096980b6c9e4cca571421272d0f5a87285cc4f14b10008026a0d2eb9e5d09ce4d2056bd2b14a73abfb54fa1583a54b592c9a8eb4eb629106d9ea02e4a4684e85b43ca7b9c048a692be8f04cf1df3ad1549e1f3f0779719dd14a33", + "new_receipt_trie_node_byte": "0xf90109018366d86eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661d923f68f68d4" + }, + "0xe3aa696f1e0b6b6c7df717cc5cf9fd3d83076ba4": { + "balance": "0x753d533d968000" + }, + "0x55c27219e4dd8022ec2360f7379cab09fc43e2ed": { + "balance": "0x143507b740f58", + "nonce": "0x1" + } + }, + "meta": { + "byte_code": "0x02f872018084068e77808509dea4118082520894e3aa696f1e0b6b6c7df717cc5cf9fd3d83076ba487753d533d96800080c080a08346f386c9629e829ff7ffff9938e1a544ce64f906ac6985004d59a79bf03c0fa0458e1630109c3fa9e9f9877bd1cf09697ccaa867e7b93ee7f929e67c7036bc8c", + "new_txn_trie_node_byte": "0x02f872018084068e77808509dea4118082520894e3aa696f1e0b6b6c7df717cc5cf9fd3d83076ba487753d533d96800080c080a08346f386c9629e829ff7ffff9938e1a544ce64f906ac6985004d59a79bf03c0fa0458e1630109c3fa9e9f9877bd1cf09697ccaa867e7b93ee7f929e67c7036bc8c", + "new_receipt_trie_node_byte": "0xb9010d02f901090183672a76b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661d9ff9bc56714" + }, + "0x87e75025d6607564ad005088ab549dd76ca2ce48": { + "storage_written": { + "0x5651fba676f8e6a5abf09cccf8973a71a808d1c595c126b0e102c5138fed9d3e": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + "code_usage": { + "read": "0xe37e63305900da82fb74933606aafab99753beeca422eeb3ea6917296a467f2f" + } + }, + "0xfdd34c6ae56c8394677b52fd37c7cb7c436a2170": { + "balance": "0x1d01bad9323733", + "nonce": "0xb" + } + }, + "meta": { + "byte_code": "0x02f8b1010a840135453485072301bcf6830112f79487e75025d6607564ad005088ab549dd76ca2ce4880b844095ea7b3000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc080a0b966680503a6e2163ea42ad8c93cf2710facceee8190243c4aa3269ce3549396a055136b438dd85776b78e38b8ea98549fc085e3dd02906740624748f572a53923", + "new_txn_trie_node_byte": "0x02f8b1010a840135453485072301bcf6830112f79487e75025d6607564ad005088ab549dd76ca2ce4880b844095ea7b3000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc080a0b966680503a6e2163ea42ad8c93cf2710facceee8190243c4aa3269ce3549396a055136b438dd85776b78e38b8ea98549fc085e3dd02906740624748f572a53923", + "new_receipt_trie_node_byte": "0xb901ab02f901a7018367e046b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000200000000000200000000000004008000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000012000010000000000000000000000000000000000000000000000000000000f89df89b9487e75025d6607564ad005088ab549dd76ca2ce48f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000fdd34c6ae56c8394677b52fd37c7cb7c436a2170a0000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "gas_used": 46544 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661dadd6e304baa" + }, + "0x767fe9edc9e0df98e07454847909b5e959d7ca0e": { + "storage_read": [ + "0x31ec7bb4d70d03a72bd2035bb91bb5a19e9d70a6e585b10bf2a055a13b6648cf" + ], + "storage_written": { + "0x31ec7bb4d70d03a72bd2035bb91bb5a19e9d70a6e585b10bf2a055a13b6648cf": "0x1c42e38b082dbe" + }, + "code_usage": { + "read": "0xe50565c3a514ba9875d6d08c45f3392a1e5dd68fe582d58953470d6c692a5c3d" + } + }, + "0xc823724047398a89daa9841438b2ef320b46f643": { + "balance": "0x16fe37aa97ca41", + "nonce": "0x1a" + } + }, + "meta": { + "byte_code": "0x02f8b1011984012bfe0285097a11087a83011e3594767fe9edc9e0df98e07454847909b5e959d7ca0e80b844095ea7b30000000000000000000000005550d13389bb70f45fcef58f19f6b6e87f6e747d000000000000000000000000000000000000000000000000001c42e38b082dbec001a0cefb1a8ada7ffee6bf88c1a45d0bb71ae9ba4f640931b13729709556ca0a3820a0075621e654cde9eebbe39a9209c17150a57d3d2bd479224b373da1b0bdb3d41d", + "new_txn_trie_node_byte": "0x02f8b1011984012bfe0285097a11087a83011e3594767fe9edc9e0df98e07454847909b5e959d7ca0e80b844095ea7b30000000000000000000000005550d13389bb70f45fcef58f19f6b6e87f6e747d000000000000000000000000000000000000000000000000001c42e38b082dbec001a0cefb1a8ada7ffee6bf88c1a45d0bb71ae9ba4f640931b13729709556ca0a3820a0075621e654cde9eebbe39a9209c17150a57d3d2bd479224b373da1b0bdb3d41d", + "new_receipt_trie_node_byte": "0xb9026a02f902660183689d91b9010000000000000000000000000000000000000000001000000000000000000000010000000000000000000010000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000020000000000000000000000000000000000000000000000080000000000800000000000100800001000000080000000000000001000000000000000000000000010001000000000000000000000000000000000000000000000000000000000f9015bf8bc94767fe9edc9e0df98e07454847909b5e959d7ca0ef863a071594b34a69973da9bff6f72cc0aad2c51069b6b8e9c70c0648b58d10d7bd84ba0000000000000000000000000c823724047398a89daa9841438b2ef320b46f643a00000000000000000000000005550d13389bb70f45fcef58f19f6b6e87f6e747db8400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c42e38b082dbef89b94767fe9edc9e0df98e07454847909b5e959d7ca0ef863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000c823724047398a89daa9841438b2ef320b46f643a00000000000000000000000005550d13389bb70f45fcef58f19f6b6e87f6e747da0000000000000000000000000000000000000000000000000001c42e38b082dbe", + "gas_used": 48459 + } + }, + { + "traces": { + "0x6a3566e435ff04ec17586a33290ac8954fad2e51": { + "balance": "0xfbdcad4f7533f77", + "nonce": "0x4e9" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661dbfec550677c" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0xbdcec2d0932a0e9efdddc152032483f46277bddb2e34881ec406ea5482f0836d", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x937f9eb86af0756a16f5eff8d4adda959daddd82c14064b8d311e3f11b9d8d65", + "0xbe624b903074794e4b1265f0bec91bc5796c362cb5f4b2787d7cee5a216d296a", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "storage_written": { + "0x937f9eb86af0756a16f5eff8d4adda959daddd82c14064b8d311e3f11b9d8d65": "0x112d741a", + "0xbe624b903074794e4b1265f0bec91bc5796c362cb5f4b2787d7cee5a216d296a": "0x24ce4d60" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + } + }, + "meta": { + "byte_code": "0x02f8b3018204e884012bfe0285098e06ceb28301774094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000003f9e73d9fa6c2cb87bea90239db07e76683c912f0000000000000000000000000000000000000000000000000000000024ce4d60c001a099fdecd9c759aa105edd1a39ef2d5d642a44829e583e89f65a7b89ad1487f86fa02e533144dcc27e3e6d1e6150d111d71b90b62115079ba5efd8085b3ae219880c", + "new_txn_trie_node_byte": "0x02f8b3018204e884012bfe0285098e06ceb28301774094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000003f9e73d9fa6c2cb87bea90239db07e76683c912f0000000000000000000000000000000000000000000000000000000024ce4d60c001a099fdecd9c759aa105edd1a39ef2d5d642a44829e583e89f65a7b89ad1487f86fa02e533144dcc27e3e6d1e6150d111d71b90b62115079ba5efd8085b3ae219880c", + "new_receipt_trie_node_byte": "0xb901ab02f901a7018369947ab9010000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000100000000000080000000000000000000000000000000000000000008800002000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000800000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000006a3566e435ff04ec17586a33290ac8954fad2e51a00000000000000000000000003f9e73d9fa6c2cb87bea90239db07e76683c912fa00000000000000000000000000000000000000000000000000000000024ce4d60", + "gas_used": 63209 + } + }, + { + "traces": { + "0xe0ee7c2f42cc856a6166d4cf8b6cd0de22f7aa30": { + "balance": "0x1bb5ac920bd797", + "nonce": "0x16" + }, + "0xdd66781d0e9a08d4fbb5ec7bac80b691be27f21d": { + "storage_written": { + "0x4056221c1c1bd324b304cd35543834dbafcafcfde1cbaeab1dd617dbab3bf813": "0x0" + }, + "code_usage": { + "read": "0xb1dde0e2d06b79097986a3ecdd4f56e6021b8bbab841ea2797659cf8c454ed52" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661dc70ba62abfa" + } + }, + "meta": { + "byte_code": "0x02f8b0011584012bfe0285098e06ceb28274be94dd66781d0e9a08d4fbb5ec7bac80b691be27f21d80b844095ea7b3000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000000000000000000000000000000000000000000000c080a05986825be09278d093c6d4cbce10ed0c42d1ff3b0977895689eeb9555c5ac97fa01de1e847d0ba595b88f681edeb8d7acd486a08ace5df6657008c01f04b7ee0b7", + "new_txn_trie_node_byte": "0x02f8b0011584012bfe0285098e06ceb28274be94dd66781d0e9a08d4fbb5ec7bac80b691be27f21d80b844095ea7b3000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000000000000000000000000000000000000000000000c080a05986825be09278d093c6d4cbce10ed0c42d1ff3b0977895689eeb9555c5ac97fa01de1e847d0ba595b88f681edeb8d7acd486a08ace5df6657008c01f04b7ee0b7", + "new_receipt_trie_node_byte": "0xb901ab02f901a7018369f5b9b9010000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000200000000000000000000000004000000000040000000000000800000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000040000000080000000000000000000000000000f89df89b94dd66781d0e9a08d4fbb5ec7bac80b691be27f21df863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000e0ee7c2f42cc856a6166d4cf8b6cd0de22f7aa30a0000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3a00000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 24895 + } + }, + { + "traces": { + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298693b64ca1581b48912", + "storage_read": [ + "0xee61682ec263cf9ac626d5a9b0cd5e26edbfa98b5b368b540e65bd739c37e3b7", + "0x390f6178407c9b8e95802b8659e6df8e34c1e3d4f8d6a49e6132bbcdd937b63a" + ], + "storage_written": { + "0x390f6178407c9b8e95802b8659e6df8e34c1e3d4f8d6a49e6132bbcdd937b63a": "0x152ad8b20c289f617ba", + "0xee61682ec263cf9ac626d5a9b0cd5e26edbfa98b5b368b540e65bd739c37e3b7": "0x1" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661dfe3833d4c6a" + }, + "0x1111111254eeb25477b68fb85ed929f73a960582": { + "code_usage": { + "read": "0xb21184893bb5b89a85468883070702045d9821b62ea3b28d3e84d89ab84fd23e" + } + }, + "0x881d40237659c251811cec9c364ef91dc08d300c": { + "storage_read": [ + "0x684fdb4b219d1c63474e6c8e4dc8c2611de744d4aaa2b78c4ec411ebb6ba9756", + "0x684fdb4b219d1c63474e6c8e4dc8c2611de744d4aaa2b78c4ec411ebb6ba9757", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xcc34a85a74e46f422c2b06b16156799b7c313a71390b4465cbc463bd99d76764" + } + }, + "0x43506849d7c04f9138d1a2050bbf3a0c054402dd": { + "code_usage": { + "read": "0xcdfb7d322961af3acae7a8f7ee8b69c205b36f576cc5b077f170c7eb8ecbe3ea" + } + }, + "0x74de5d4fcbf63e00296fd95d33236b9794016631": { + "code_usage": { + "read": "0x34285df013b925b34c7744f619f6ed193cbb11e1e08b0013af1dd0511a3e6f6e" + } + }, + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "storage_read": [ + "0x6387022345304b940b174288f310143ff835f4f5deadcf765c3f913d0a73312b", + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x1f21a62c4538bacf2aabeca410f0fe63151869f172e03c0e00357ba26a341eff", + "0xf2d53313cb644399924bc7ac73566f895c847f1ba79f63bc95efa3f39ec7c40d" + ], + "storage_written": { + "0x1f21a62c4538bacf2aabeca410f0fe63151869f172e03c0e00357ba26a341eff": "0x64dfb7286a9e", + "0x6387022345304b940b174288f310143ff835f4f5deadcf765c3f913d0a73312b": "0x21979a35", + "0xf2d53313cb644399924bc7ac73566f895c847f1ba79f63bc95efa3f39ec7c40d": "0x0" + }, + "code_usage": { + "read": "0xd80d4b7c890cb9d6a4893e6b52bc34b56b25335cb13716e0d1d31383e6b41505" + } + }, + "0xd9db270c1b5e3bd161e8c8503c55ceabee709552": { + "code_usage": { + "read": "0xbba688fbdb21ad2bb58bc320638b43d94e7d100f6f3ebaab0a4e4de6304b1c2e" + } + }, + "0xf326e4de8f66a0bdc0970b79e0924e33c79f1915": { + "balance": "0x9b8ce5c209958c2991", + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "code_usage": { + "read": "0xaea7d4252f6245f301e540cfbee27d3a88de543af8e49c5c62405d5499fab7e5" + } + }, + "0xfb3699866dd474dfbf0b133c5cefc42e0cc96cbf": { + "balance": "0xd554e5e573cea4c", + "nonce": "0x4d" + }, + "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0xad9dde667637e023f1ffee9137c14ca72fd0a457bea73c3e79e176283357a6c3" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x10002d302d300390300b5000000000000493ec5afb9df5a3dd669848922ce", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0xe7fde79f619177c3030e30adc65f3741611" + }, + "code_usage": { + "read": "0xa981b66c747a3d9fa29d7e200d5faaa2826960523d0e5a0df8148e8868c480b4" + } + }, + "0x7cdf68ce9a05413cbb76cb7f80eaf415a826e313": { + "code_usage": { + "read": "0xa873be03126d64946ef888d2b014036c8271d0d781aec7f91ab85a56f6e1e44c" + } + } + }, + "meta": { + "byte_code": "0x02f9033c014c840125fe0c850c6d6d86e28303a87594881d40237659c251811cec9c364ef91dc08d300c8802c68af0bb140000b902c65f5755290000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000136f6e65496e6368563546656544796e616d69630000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000002c053531ab8a0000000000000000000000000000000000000000000000000000000000020e566b700000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000006379da05b6000000000000000000000000000f326e4de8f66a0bdc0970b79e0924e33c79f1915000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8e449022e00000000000000000000000000000000000000000000000002c053531ab8a0000000000000000000000000000000000000000000000000000000000020e566b600000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640ab4991fe00000000000000000000000000000000000000000000000000efc001a0c24b7b1415987fb62cbb19c3a289d41f6aa0ea676beea158e04cd3b1702d47b2a00d0db965515881e9e7c91af51d7d1ff0c99a441e7844d377e644d3e4e6631713", + "new_txn_trie_node_byte": "0x02f9033c014c840125fe0c850c6d6d86e28303a87594881d40237659c251811cec9c364ef91dc08d300c8802c68af0bb140000b902c65f5755290000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000136f6e65496e6368563546656544796e616d69630000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000002c053531ab8a0000000000000000000000000000000000000000000000000000000000020e566b700000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000006379da05b6000000000000000000000000000f326e4de8f66a0bdc0970b79e0924e33c79f1915000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8e449022e00000000000000000000000000000000000000000000000002c053531ab8a0000000000000000000000000000000000000000000000000000000000020e566b600000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640ab4991fe00000000000000000000000000000000000000000000000000efc001a0c24b7b1415987fb62cbb19c3a289d41f6aa0ea676beea158e04cd3b1702d47b2a00d0db965515881e9e7c91af51d7d1ff0c99a441e7844d377e644d3e4e6631713", + "new_receipt_trie_node_byte": "0xb9057a02f9057601836cf66db9010000000000010000001000000000000000000000000800000000000000040000000000010000000000000018000000000002000020080028000000000000000000000000000000080808020008000000000000000000000000000004008000000000000000000000000000000000000001000000000000000000000010000800000000021000000000000000020000000000000001810000004020000000000000000000000000208000000040000004000000000000000000002000000008000000000002000000000000000000000000000000000000000000000000000000000020200000000000000410800000000000000000000000400001000000001000f9046bf87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000001111111254eeb25477b68fb85ed929f73a960582a000000000000000000000000000000000000000000000000002c053531ab8a000f89b94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640a000000000000000000000000074de5d4fcbf63e00296fd95d33236b9794016631a00000000000000000000000000000000000000000000000000000000021979a35f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000001111111254eeb25477b68fb85ed929f73a960582a000000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640a000000000000000000000000000000000000000000000000002c053531ab8a000f9011c9488e6a0c2ddd26feeb64f039a2c41296fcb3f5640f863a0c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67a00000000000000000000000001111111254eeb25477b68fb85ed929f73a960582a000000000000000000000000074de5d4fcbf63e00296fd95d33236b9794016631b8a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffde6865cb00000000000000000000000000000000000000000000000002c053531ab8a000000000000000000000000000000000000000493ec5afb9df5a3dd669848922ce00000000000000000000000000000000000000000000000066272911b059e9b600000000000000000000000000000000000000000000000000000000000300b5f87a94f326e4de8f66a0bdc0970b79e0924e33c79f1915f842a03d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3da000000000000000000000000074de5d4fcbf63e00296fd95d33236b9794016631a00000000000000000000000000000000000000000000000000006379da05b6000f89b94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000074de5d4fcbf63e00296fd95d33236b9794016631a0000000000000000000000000fb3699866dd474dfbf0b133c5cefc42e0cc96cbfa00000000000000000000000000000000000000000000000000000000021979a35f87b94881d40237659c251811cec9c364ef91dc08d300cf863a0beee1e6e7fe307ddcf84b0a16137a4430ad5e2480fc4f4a8e250ab56ccd7630da0f35f348d53012d52a5d39f9390d246956ac932d5778d2bb49e359dba4fa0896da0000000000000000000000000fb3699866dd474dfbf0b133c5cefc42e0cc96cbf80", + "gas_used": 196788 + } + }, + { + "traces": { + "0xd5cf10f95c3ebee4da7bf8e404373ec52f8078dd": { + "balance": "0x118b396505044af", + "nonce": "0x17e" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661e32bc409f700" + }, + "0xe92344b4edf545f3209094b192e46600a19e7c2d": { + "storage_read": [ + "0x8341d98412448826d5dcb747600a4620f3a2413ca6f263d5864939b40430a374", + "0x3246265b7211dec34d8388f4d68be20265c9d5d68fb13c4937ff42de22df9270", + "0x0a2dc8b88a6b50984b0f69a393e585b8dcaf10f81cdf77e39a78c66362cb48e6", + "0x0000000000000000000000000000000000000000000000000000000000000014", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x57629634bab91b774aa5dc53c6eaa3d41a407f2cf926ec8dba215bc5578c95fe", + "0xee1b29a26aa907637a683156d87ff0e70004c986efdd74f5c6bb5b8696edd3dc", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0xd997b45c2dfc5f7a3cac6b4961a12879a32b6e94cca2b52dbf698b5c69231616", + "0xd93098a1ef0976a66ec301a45c3b3971a93b04d7d4884fd56c3fee82e91e52b9", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x0000000000000000000000000000000000000000000000000000000000000013", + "0x000000000000000000000000000000000000000000000000000000000000000e", + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x39e2f25a4aaa4e7bdfd260ed685c4fd4a1573e5d19b31d2eec611e65094b8d3d", + "0x533bfb1972aba7690d0703b0ee6348f7a707e9c24e540125ac70c8ea2595d339" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000013": "0x10d67640b9cd7739045", + "0x39e2f25a4aaa4e7bdfd260ed685c4fd4a1573e5d19b31d2eec611e65094b8d3d": "0x1c101a6be056715f078", + "0x0000000000000000000000000000000000000000000000000000000000000012": "0xb39a42b2688fa2602d", + "0xee1b29a26aa907637a683156d87ff0e70004c986efdd74f5c6bb5b8696edd3dc": "0x1e0fda251f56716ef9d", + "0x57629634bab91b774aa5dc53c6eaa3d41a407f2cf926ec8dba215bc5578c95fe": "0x1fbf914aa2bed3e1643cc" + }, + "code_usage": { + "read": "0x2acafadad0bb5e27a949616a1c0c10a0c50749f917b11bfe9a5b3beba60eb087" + } + }, + "0x315ed60258702f8d159b98df4c0dbeb1d7d776df": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x2ca854e6221b1ef1e943022189e0730e37a3190", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de700000001fbf914aa2bed3e1643cc0000000000054baf9ff7e45d01c4", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x635390c20daeaa6aaae03d1d73f80" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0xaeff36b089c9b2ec05558baf67df508c5b6865c0": { + "storage_read": [ + "0xcd37ef46d96572431b4a1d6408f396d17f7e6c332bfd27e47aad421911500b26" + ], + "code_usage": { + "read": "0x7aed212dc0d89158c7f50d67b57ff68d7520ae7ee065af7efb905df87c6d3b7a" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x2986940aad212185a8912", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0x57629634bab91b774aa5dc53c6eaa3d41a407f2cf926ec8dba215bc5578c95fe" + ], + "storage_written": { + "0x57629634bab91b774aa5dc53c6eaa3d41a407f2cf926ec8dba215bc5578c95fe": "0x54baf9ff7e45d01c4", + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + } + }, + "meta": { + "byte_code": "0x02f902fc0182017d840122fe118509dea717e98303f90c943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad88054607fc96a60000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf601b00000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000054607fc96a6000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000054607fc96a600000000000000000000000000000000000000000000000001c9b1b24e865f06f0ea00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e92344b4edf545f3209094b192e46600a19e7c2dc001a0b0e2818c6de93c2a928479e707144e52df85fc166b6de719226b0f7c51f88bcaa034f48dc52d35cbd5692edd49d877d22cfb5143d80e552bbd5b6b69cfc8518b84", + "new_txn_trie_node_byte": "0x02f902fc0182017d840122fe118509dea717e98303f90c943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad88054607fc96a60000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf601b00000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000054607fc96a6000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000054607fc96a600000000000000000000000000000000000000000000000001c9b1b24e865f06f0ea00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e92344b4edf545f3209094b192e46600a19e7c2dc001a0b0e2818c6de93c2a928479e707144e52df85fc166b6de719226b0f7c51f88bcaa034f48dc52d35cbd5692edd49d877d22cfb5143d80e552bbd5b6b69cfc8518b84", + "new_receipt_trie_node_byte": "0xb904db02f904d701836fd9a3b9010000200000000000000020000188000000000000000000000000000000000000000000000000000000400000000000000002000000180000800000000000000800000000080000000000000008000040200000008000000008000000008020000000000000000000000000000000000000000000000000000000020010000000000000000000000000000000000000000000000001000000080000004000000000000000000000000000000000000000000000000040000000000000000000000000000002000000000000000000000000000000000000001000000000000000000001200000100000000000000000020000001000000000400000000000000000f903ccf87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000000000000000000000000000054607fc96a60000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000315ed60258702f8d159b98df4c0dbeb1d7d776dfa0000000000000000000000000000000000000000000000000054607fc96a60000f89b94e92344b4edf545f3209094b192e46600a19e7c2df863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000315ed60258702f8d159b98df4c0dbeb1d7d776dfa0000000000000000000000000e92344b4edf545f3209094b192e46600a19e7c2da000000000000000000000000000000000000000000000001950b7b378b4956aedf89b94e92344b4edf545f3209094b192e46600a19e7c2df863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000315ed60258702f8d159b98df4c0dbeb1d7d776dfa0000000000000000000000000d5cf10f95c3ebee4da7bf8e404373ec52f8078dda00000000000000000000000000000000000000000000001e0fda251f56716ef9df87994315ed60258702f8d159b98df4c0dbeb1d7d776dfe1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000000000000054baf9ff7e45d01c400000000000000000000000000000000000000000001fbf914aa2bed3e1643ccf8fc94315ed60258702f8d159b98df4c0dbeb1d7d776dff863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000d5cf10f95c3ebee4da7bf8e404373ec52f8078ddb880000000000000000000000000000000000000000000000000054607fc96a60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fa4e5a056e1bac5a8a", + "gas_used": 189238 + } + }, + { + "traces": { + "0xd420d5f24225702a68ddf21242d5eef816dc2e6d": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "storage_written": { + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x1f35f8aad776efb03a52998d6ea946196195210b4", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x1ee3f7a3b48624a4ee0778c1b8", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de70000000000070ae706a0738a6c050001ad31955341f982107533995d" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661e516d7989b66" + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0x4f6cca0012f6351624308b32c05b615c972d8778": { + "balance": "0xe365ce647833a3", + "nonce": "0x9f" + }, + "0x6d7497751656618fc38cfb5478994a20f7e235df": { + "storage_read": [ + "0x06f2d416dbb28fdf9236371c80e1e935c3502d4bdff785af6bfb466b9f35b1cb", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0xdb111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897" + ], + "storage_written": { + "0xdb111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897": "0x1ad31955341f982107533995d", + "0x06f2d416dbb28fdf9236371c80e1e935c3502d4bdff785af6bfb466b9f35b1cb": "0xb03de3b6cb77ab3d6d7c5ec" + }, + "code_usage": { + "read": "0x4123f56d86f276e684177a9b98a18f2f9d66d40208c423fe55b0e5c8f9d53abd" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298694637e7f38e828912", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0xed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285c" + ], + "storage_written": { + "0xed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285c": "0x70ae706a0738a6c05", + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + } + }, + "meta": { + "byte_code": "0x02f902fb01819e840122fe118509dea717e9830258cd943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad88058d15e176280000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf602700000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000058d15e17628000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000058d15e1762800000000000000000000000000000000000000000000014bc5f59ab45391cf209f8700000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000006d7497751656618fc38cfb5478994a20f7e235dfc080a0c11954407365c9868f2d19df5657b1e96ca772acfba93a7aa85253c4404a17c7a06ddd5898f9a354c943816adbe044621a441f4456d635e027ff05b9b81614d148", + "new_txn_trie_node_byte": "0x02f902fb01819e840122fe118509dea717e9830258cd943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad88058d15e176280000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf602700000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000058d15e17628000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000058d15e1762800000000000000000000000000000000000000000000014bc5f59ab45391cf209f8700000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000006d7497751656618fc38cfb5478994a20f7e235dfc080a0c11954407365c9868f2d19df5657b1e96ca772acfba93a7aa85253c4404a17c7a06ddd5898f9a354c943816adbe044621a441f4456d635e027ff05b9b81614d148", + "new_receipt_trie_node_byte": "0xb9043e02f9043a01837189a9b9010000200000000000000000000080000000000000000000000000000000000000000000000000000000000020000000000002000000080000000000000020000000000000080000000000000008000000200080000000000000000000008020000000000000000000000000000000000000000000000000000000000010000000000000000000000000000020000200000000000001000800080000004000000000000000001000000000000000000000001000000000000000000000000000000000000002000000000000000000000000000000000000001000000000000000000100200000000000022000000000000000001000000000400000000000000020f9032ff87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000000000000000000000000000058d15e176280000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000d420d5f24225702a68ddf21242d5eef816dc2e6da0000000000000000000000000000000000000000000000000058d15e176280000f89b946d7497751656618fc38cfb5478994a20f7e235dff863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000d420d5f24225702a68ddf21242d5eef816dc2e6da00000000000000000000000004f6cca0012f6351624308b32c05b615c972d8778a00000000000000000000000000000000000000000015253858d45f9fd1ed7c5ecf87994d420d5f24225702a68ddf21242d5eef816dc2e6de1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000001ad31955341f982107533995d0000000000000000000000000000000000000000000000070ae706a0738a6c05f8fc94d420d5f24225702a68ddf21242d5eef816dc2e6df863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000004f6cca0012f6351624308b32c05b615c972d8778b8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000058d15e1762800000000000000000000000000000000000000000000015253858d45f9fd1ed7c5ec0000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 110598 + } + }, + { + "traces": { + "0xe87e0bea804e92165e0e4f6d8dad5cdc0515b960": { + "balance": "0x13c38893186601", + "nonce": "0xba" + }, + "0x5e809a85aa182a9921edd10a4163745bb3e36284": { + "balance": "0x1086ce43789dbfed9" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661e5741611fdee" + } + }, + "meta": { + "byte_code": "0x02f8730181b9840122fe118509a1f70624825208945e809a85aa182a9921edd10a4163745bb3e362848705dcaa8fe1200280c001a0cc4fd7e1c69a27ce653a9847d16b6491b1c9dda6c1f622c9d666dd4eee42391ea0648460a26edaba37b0836167231eab25318ed5417a9e9e998ff598e57cd74994", + "new_txn_trie_node_byte": "0x02f8730181b9840122fe118509a1f70624825208945e809a85aa182a9921edd10a4163745bb3e362848705dcaa8fe1200280c001a0cc4fd7e1c69a27ce653a9847d16b6491b1c9dda6c1f622c9d666dd4eee42391ea0648460a26edaba37b0836167231eab25318ed5417a9e9e998ff598e57cd74994", + "new_receipt_trie_node_byte": "0xb9010d02f90109018371dbb1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x6a7eff1e2c355ad6eb91bebb5ded49257f3fed98": { + "storage_read": [ + "0xe6f3e0675753a4852b1bf9818150c60f8fd27909243230757a7291ec2b623e33", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0a4b82134397be508fecf2a8a2d28292b4cc7e203474e57ff21a54bdd34b6cea", + "0x61277e6bf76894bd82aa5ff3dca42eb743f86f7a4929f7dc8bad61206db26535", + "0x2460d97178dcf0c657ae0abae02e498473826c8a9d51199e5497b1bc84788da5", + "0x01b1346f57f51d516f785a389b403c0be2ca03d786c1843af2929444bcaeffb7", + "0x9e2256b32f9c795c4779e18c14e27c2f96f3cc8d95a510477ed980cd45605ccc", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0xb87214b37313dd61a69ae186095adbad41535c3b6e73c35e27049b10a3c7da8e", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x4fe81637c3d38994a7384c78c46472feeba774a858245f46a946dce2450acc7d", + "0x74406a9c444c1a5d337c816e31eec5a0c2a5cfa814f2b530296cc1ddcc533170" + ], + "storage_written": { + "0x74406a9c444c1a5d337c816e31eec5a0c2a5cfa814f2b530296cc1ddcc533170": "0x0", + "0x01b1346f57f51d516f785a389b403c0be2ca03d786c1843af2929444bcaeffb7": "0x571e42c4bc252822477" + }, + "code_usage": { + "read": "0x9ad3503ae369d056790440b1c9179bafb39c3f8beaadc77168cd60c0d4988e9a" + } + }, + "0x29b3b58eed8fdaa0661d420952a63b29c729aaa2": { + "balance": "0xe99afe14f15db", + "nonce": "0x40" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661e660582b1957" + } + }, + "meta": { + "byte_code": "0x02f8b1013f840122fe118509dea717e983015546946a7eff1e2c355ad6eb91bebb5ded49257f3fed9880b844a9059cbb00000000000000000000000090a65a8254d7d17b435fc4b2fcaa13cde0e0a262000000000000000000000000000000000000000000000133787e4d1d00248e83c001a0862db5ab717a19bed28d087c02c9b31a4230763fea24b4b78f2cf98db4d9bd98a070c9034cb5ea86b408a73f77a79e0a919852b71e68720505fe8e2ebd3b7db519", + "new_txn_trie_node_byte": "0x02f8b1013f840122fe118509dea717e983015546946a7eff1e2c355ad6eb91bebb5ded49257f3fed9880b844a9059cbb00000000000000000000000090a65a8254d7d17b435fc4b2fcaa13cde0e0a262000000000000000000000000000000000000000000000133787e4d1d00248e83c001a0862db5ab717a19bed28d087c02c9b31a4230763fea24b4b78f2cf98db4d9bd98a070c9034cb5ea86b408a73f77a79e0a919852b71e68720505fe8e2ebd3b7db519", + "new_receipt_trie_node_byte": "0xb901ab02f901a7018372ab8ab9010000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000001000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000001000000000000000000000000000000000000000000000000000000000000000000000000000000001080000000000000000000000000000000000000000000001001000002000000000000000000000000000000000800000000000000010000000000000000000000000000000000000000000000000000000000000000000000f89df89b946a7eff1e2c355ad6eb91bebb5ded49257f3fed98f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000029b3b58eed8fdaa0661d420952a63b29c729aaa2a000000000000000000000000090a65a8254d7d17b435fc4b2fcaa13cde0e0a262a0000000000000000000000000000000000000000000000133787e4d1d00248e83", + "gas_used": 53209 + } + }, + { + "traces": { + "0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de700000000041e2adf525232aa598c0000000000000000323550b80273", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x395c94eea9e9ae276198b3871e9e", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x197cc447a9eea32778d0f65842b308360f6791f890c", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0xfc44f80c94cc129f618cb9c756000972e775cbd1": { + "code_usage": { + "read": "0x0055a95c67815eff5d08766447c5ff1c437efcc043b616efbaa22e104c6633d4" + } + }, + "0x66ea948cf923f8b878126b021a347033ce0dea2f": { + "balance": "0x10edad4defceb36", + "nonce": "0x5" + }, + "0x8c894d91748a42fc68f681090db06720779a7347": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000009": "0xa83edc6117cd3e3e5ed1c4b71158108", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x321ea4b15c02af077ecebac0f70da57de23c4", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de700000000000e4cdc9d8b979a4bfa00000001df105869650dd90432e7" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x000000000022d473030f116ddee9f6b43ac78ba3": { + "storage_read": [ + "0x4f984a5ad703127250c4f230a299792bd437fae3dce98fcf5284065fa578d227" + ], + "storage_written": { + "0x4f984a5ad703127250c4f230a299792bd437fae3dce98fcf5284065fa578d227": "0x1000065f6ead0ffffffffffffffffffffffffffffffffffffffff" + }, + "code_usage": { + "read": "0xc67d1657868aa5146eaf24fb879fb1fdec3d2d493b3683a61c9c2f4fb2851131" + } + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0x0000000000000000000000000000000000000001": {}, + "0x12ef10a4fc6e1ea44b4ca9508760ff51c647bb71": { + "storage_read": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x828e23f64af541991cf4d85d0a2c603ca79bde97dac26e0651e7ee4821a7b231", + "0xcceb3f3365173ae28721a7e502090dea830556fe216278f8d77d0bd60d94cfd8" + ], + "storage_written": { + "0xcceb3f3365173ae28721a7e502090dea830556fe216278f8d77d0bd60d94cfd8": "0x6c6b935cd2cded7c9b", + "0x828e23f64af541991cf4d85d0a2c603ca79bde97dac26e0651e7ee4821a7b231": "0x1df105869650dd90432e7" + }, + "code_usage": { + "read": "0x5e4dcb0bb1910f6429e5fe91678990088a51c6d1cfe1b31d05fb9d948cc7867c" + } + }, + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "storage_read": [ + "0x81b69b56c63e043848b61dbf780186647c0e0524f486e4b27e7fab4e993e7585", + "0xd3cb8d7fbc27ae7e14e7936edf3f5d429be16ef1c8562c69261302644f554337", + "0x28c0947f463362aab09a2d7896ccc847fb7e52633a16b978fb2caf3db1a9b8f8", + "0xb9d294b8ba19116a144d5b02ee8a7cf2d57717ca1061184d785ea6d0c602cfff", + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0xb9d294b8ba19116a144d5b02ee8a7cf2d57717ca1061184d785ea6d0c602cfff": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8564715", + "0xd3cb8d7fbc27ae7e14e7936edf3f5d429be16ef1c8562c69261302644f554337": "0x23f4ee11", + "0x28c0947f463362aab09a2d7896ccc847fb7e52633a16b978fb2caf3db1a9b8f8": "0x323550b80273" + }, + "code_usage": { + "read": "0xd80d4b7c890cb9d6a4893e6b52bc34b56b25335cb13716e0d1d31383e6b41505" + } + }, + "0x43506849d7c04f9138d1a2050bbf3a0c054402dd": { + "code_usage": { + "read": "0xcdfb7d322961af3acae7a8f7ee8b69c205b36f576cc5b077f170c7eb8ecbe3ea" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "storage_read": [ + "0xb374801ace2c02f5db0425ab5920a2b7ed1d5a00abbcd395fda7530ba1d666c0", + "0x87d452270eb1ec0ed11ed1f2056705b4de5540af78415f5abbc377aa33da56b1" + ], + "storage_written": { + "0x87d452270eb1ec0ed11ed1f2056705b4de5540af78415f5abbc377aa33da56b1": "0xe4cdc9d8b979a4bfa", + "0xb374801ace2c02f5db0425ab5920a2b7ed1d5a00abbcd395fda7530ba1d666c0": "0x41e2adf525232aa598c" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661ea8e6c00d11d" + } + }, + "meta": { + "byte_code": "0x02f904320104840122fe118509dea717e98304ae8f943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad80b903c43593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf601b00000000000000000000000000000000000000000000000000000000000000020a090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000160000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065f6ead000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fad0000000000000000000000000000000000000000000000000000000065cf64d800000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000416548cde6cb494d4ad2836deb70825339035afb3b299da5a3985f949adbc8bd100307cfd8efc9dc3a062ce030bed6d751178fc42eb6b63bcf3bb586e10982e0361b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000006c6b935b8bbd4000000000000000000000000000000000000000000000000000000000000028a28c7900000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000012ef10a4fc6e1ea44b4ca9508760ff51c647bb71c080a0cd1df982f17a6565280f72ec157e048f535db8263d9cd99a26d814280ea73962a03c514aca6baf8498179baa842cd9e3069ac2316fb9bc13a8bae8d697f2915a99", + "new_txn_trie_node_byte": "0x02f904320104840122fe118509dea717e98304ae8f943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad80b903c43593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf601b00000000000000000000000000000000000000000000000000000000000000020a090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000160000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065f6ead000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fad0000000000000000000000000000000000000000000000000000000065cf64d800000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000416548cde6cb494d4ad2836deb70825339035afb3b299da5a3985f949adbc8bd100307cfd8efc9dc3a062ce030bed6d751178fc42eb6b63bcf3bb586e10982e0361b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000006c6b935b8bbd4000000000000000000000000000000000000000000000000000000000000028a28c7900000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000012ef10a4fc6e1ea44b4ca9508760ff51c647bb71c080a0cd1df982f17a6565280f72ec157e048f535db8263d9cd99a26d814280ea73962a03c514aca6baf8498179baa842cd9e3069ac2316fb9bc13a8bae8d697f2915a99", + "new_receipt_trie_node_byte": "0xb906d702f906d301837658f0b9010010214004000000000000040080000000000000000000000000000000000000000000000000000000000002000000000002010000080000000000008000080000000000080000000008000008000000600000000000000000000000000020000000000000000000000000000000000000000000000000000000000010000000000000004000000000000000000008000200010000010000080000014000000000000000000000200200000000000000000400000000001000000000000000000000000002000000000000800000000000000000000080401800200000000000000008200000000000000000000000000004001000000000000000000000000400f905c8f8fd94000000000022d473030f116ddee9f6b43ac78ba3f884a0c6a377bfc4eb120024a8ac08eef205be16b817020812c73223e81d1bdb9708eca000000000000000000000000066ea948cf923f8b878126b021a347033ce0dea2fa0000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fadb860000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065f6ead00000000000000000000000000000000000000000000000000000000000000000f89b94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000066ea948cf923f8b878126b021a347033ce0dea2fa0000000000000000000000000b4e16d0168e52d35cacd2c6185b44281ec28c9dca00000000000000000000000000000000000000000000000000000000027a9b8eaf89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000b4e16d0168e52d35cacd2c6185b44281ec28c9dca00000000000000000000000008c894d91748a42fc68f681090db06720779a7347a0000000000000000000000000000000000000000000000000033e45804a1ac836f87994b4e16d0168e52d35cacd2c6185b44281ec28c9dce1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000000000000000000323550b8027300000000000000000000000000000000000000000000041e2adf525232aa598cf8fc94b4e16d0168e52d35cacd2c6185b44281ec28c9dcf863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000008c894d91748a42fc68f681090db06720779a7347b8800000000000000000000000000000000000000000000000000000000027a9b8ea00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033e45804a1ac836f89b9412ef10a4fc6e1ea44b4ca9508760ff51c647bb71f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000008c894d91748a42fc68f681090db06720779a7347a000000000000000000000000066ea948cf923f8b878126b021a347033ce0dea2fa000000000000000000000000000000000000000000000006c6b935cd2cded7c9bf879948c894d91748a42fc68f681090db06720779a7347e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b84000000000000000000000000000000000000000000001df105869650dd90432e700000000000000000000000000000000000000000000000e4cdc9d8b979a4bfaf8fc948c894d91748a42fc68f681090db06720779a7347f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada000000000000000000000000066ea948cf923f8b878126b021a347033ce0dea2fb8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033e45804a1ac83600000000000000000000000000000000000000000000006c6b935cd2cded7c9b0000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 240998 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661ebb2986dcec7" + }, + "0x4c0a7a63bfee83953b2872ca7a74b839cadabecb": { + "balance": "0x463491dc0a1bd29c", + "nonce": "0x1f" + }, + "0x5e37718cedad7cc99cc220c417f5095573b510c6": { + "storage_read": [ + "0x7a21dc8570920ee21a85f8ca8c6be136fcba300101b9158ef6484a5a067e26a7", + "0x000000000000000000000000000000000000000000000000000000000000001a", + "0x0000000000000000000000000000000000000000000000000000000000000019", + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x125ee618c7e79a74722b938361c5242645d5eee511e92278bcdf3b757fa8805b", + "0x68bfc3d7c7f95f50440d021304f4f471180dc14d73d97fd105608255e7971269", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x57915f62b2dbfb75114a0267474495855da7af031b99e378eda89c75207d07fd", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "storage_written": { + "0x125ee618c7e79a74722b938361c5242645d5eee511e92278bcdf3b757fa8805b": "0x1e190239e2da633", + "0x68bfc3d7c7f95f50440d021304f4f471180dc14d73d97fd105608255e7971269": "0x0" + }, + "code_usage": { + "read": "0x2dba98c3ffc1e20dd1f9474f247d51b8435d6c8cae54fb833a14a0042c889216" + } + } + }, + "meta": { + "byte_code": "0x02f8b1011e840122fe118509a1f7062483019fcb945e37718cedad7cc99cc220c417f5095573b510c680b844a9059cbb000000000000000000000000b77bdcc2305196e4e9c3fe63f5fc23de805d77f100000000000000000000000000000000000000000000000001e190239e2da633c080a0ac4918686efb95e0154cd4110295a9c9698bc17cdc2106b599cccc6b8dec4791a05140930ba00c49c27103b78f0020cb3dd34c4427c25246f849138d0080010a0b", + "new_txn_trie_node_byte": "0x02f8b1011e840122fe118509a1f7062483019fcb945e37718cedad7cc99cc220c417f5095573b510c680b844a9059cbb000000000000000000000000b77bdcc2305196e4e9c3fe63f5fc23de805d77f100000000000000000000000000000000000000000000000001e190239e2da633c080a0ac4918686efb95e0154cd4110295a9c9698bc17cdc2106b599cccc6b8dec4791a05140930ba00c49c27103b78f0020cb3dd34c4427c25246f849138d0080010a0b", + "new_receipt_trie_node_byte": "0xb901ab02f901a701837759fab9010000000001000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000010000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000080000000000002000000000000000000000404000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b945e37718cedad7cc99cc220c417f5095573b510c6f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000004c0a7a63bfee83953b2872ca7a74b839cadabecba0000000000000000000000000b77bdcc2305196e4e9c3fe63f5fc23de805d77f1a000000000000000000000000000000000000000000000000001e190239e2da633", + "gas_used": 65802 + } + }, + { + "traces": { + "0xc15a0782b56d50da67b0c5a0960192e91088516f": { + "balance": "0x21880d22e82215b0", + "nonce": "0x55" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661eccb33c77974" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0xb533509d5615bc8281c77a335bf91277af807e051bab10f0871962b487cdeb31", + "0xdb95abfb6441adf2bbb7a352311077fa7d0a336d90099ad77e45467bf2b99d76", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xca9435ef0526477bdd8ff1e511a8a71ef684a825447bf1e0f953770bf684d582", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "storage_written": { + "0xdb95abfb6441adf2bbb7a352311077fa7d0a336d90099ad77e45467bf2b99d76": "0x8f0d1800", + "0xb533509d5615bc8281c77a335bf91277af807e051bab10f0871962b487cdeb31": "0x139d7a548" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + } + }, + "meta": { + "byte_code": "0x02f8b10154840122fe118509dea717e98301772e94dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000a7cc3173c15f7a2d1f5ffca57095f67a0fbbde8c000000000000000000000000000000000000000000000000000000008f0d1800c080a0b2c760da0199e3bd160a5cea4ac0798a4e8caacfc3cdd316cae9717525a72f97a008772c04542c460d7bac110bbd4b17a65685fc69a0d52913bb2fa2b1955381e8", + "new_txn_trie_node_byte": "0x02f8b10154840122fe118509dea717e98301772e94dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000a7cc3173c15f7a2d1f5ffca57095f67a0fbbde8c000000000000000000000000000000000000000000000000000000008f0d1800c080a0b2c760da0199e3bd160a5cea4ac0798a4e8caacfc3cdd316cae9717525a72f97a008772c04542c460d7bac110bbd4b17a65685fc69a0d52913bb2fa2b1955381e8", + "new_receipt_trie_node_byte": "0xb901ab02f901a701837850d7b9010000000000000000000000000000000000000000000000100000000800000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000400000000000000000000000000000000000000000000100000000000000000000000001080000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000c15a0782b56d50da67b0c5a0960192e91088516fa0000000000000000000000000a7cc3173c15f7a2d1f5ffca57095f67a0fbbde8ca0000000000000000000000000000000000000000000000000000000008f0d1800", + "gas_used": 63197 + } + }, + { + "traces": { + "0x3ca373f5ecb92ac762f9876f6e773082a4589995": { + "balance": "0x2d5fe4ce8bbf85d00", + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000098", + "0xbe6620bd3346e5d7f8387fbec0981aa0d6289d22efa7c935f9ef6841bf2a98c7", + "0x4caccafcf8cb8542ab42410021b96ed776c50c942b27dba88ef04ec5f167a366", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x0000000000000000000000000000000000000000000000000000000000000097" + ], + "storage_written": { + "0x4caccafcf8cb8542ab42410021b96ed776c50c942b27dba88ef04ec5f167a366": "0x1" + }, + "code_usage": { + "read": "0x1b8a87b357118fb9f7d61aef928d429ca13bc96f4f3f94e12c03c5cf2237dc7d" + } + }, + "0x468b89d930ca7974196d7195033600b658011756": { + "code_usage": { + "read": "0xdd88c7cf45099897ca7a61b3ff67a3e5f31e6657b27fb37606c0a89d94a3844a" + } + }, + "0xabb33a590ea3019c1d6fdfb8802263eee34267c8": { + "balance": "0x31001c691921b7", + "nonce": "0x7b" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661edd2a1475d34" + } + }, + "meta": { + "byte_code": "0x02f897017a840122fe118509dea717e98301606b943ca373f5ecb92ac762f9876f6e773082a45899958705543df729c000a4f340fa010000000000000000000000000000000000000000000000000000000000000000c080a0ce36400d559b2169fe990886ab14282e6e5f6d319f1a09abbbb6740588a732c8a00560c9458f83941ecf2f433b43e3340d4625e96c2eaa07092bb065792a582dbe", + "new_txn_trie_node_byte": "0x02f897017a840122fe118509dea717e98301606b943ca373f5ecb92ac762f9876f6e773082a45899958705543df729c000a4f340fa010000000000000000000000000000000000000000000000000000000000000000c080a0ce36400d559b2169fe990886ab14282e6e5f6d319f1a09abbbb6740588a732c8a00560c9458f83941ecf2f433b43e3340d4625e96c2eaa07092bb065792a582dbe", + "new_receipt_trie_node_byte": "0xb9024c02f902480183793897b9010000080000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000004000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000010000000000000000000000000000000000000f9013df9013a943ca373f5ecb92ac762f9876f6e773082a4589995e1a0435881434a980001db54827793d55b4f3b751d216ed457d0f2a143220ae06d25b90100000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000abb33a590ea3019c1d6fdfb8802263eee34267c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f99cebba649f375f1877a76112b109dc79fa04b8000000000000000000000000abb33a590ea3019c1d6fdfb8802263eee34267c80000000000000000000000000000000000000000000000000005543df729c000", + "gas_used": 59328 + } + }, + { + "traces": { + "0xb8a87405d9a4f2f866319b77004e88dff66c0d92": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000001d", + "0xe9df5837f3bcbb1790cb137a41af6668249cf34a286d7ed605320e67c6c23eb4", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0xc659b99e79fe0de30a460bd9c30c4e566718ff6cfdcd6379dd0e4e03da9bdc33", + "0xa051fa5943a292a972dd98614913eefcd47f4b37d51e24edb6c168b0fab10fc7", + "0x27e9f812186791d033a8f9881ee8bf032f697cd280803eba6d746cdf852e1cec", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x77af37c3e27084ee3eba85f2ebfa787dfec17b27f46313f33b3ac8320850bc51", + "0x7dad25c8626c2c908dac91e9625bc405bb06615b644201bc88d98ab95a0f92d6", + "0x10a47c4622c146fd769a26cfca98a8138423649cc10e2707d0c7b37e11f2bdc4", + "0xb04ceb61f5c03b733b515e10ff854b0fc2e559ff6d9ba0459129639a17705c0a", + "0xf21cebc87207a45343dbb33a2512a7ff11e6222d87d2759dc5745a55f3df1144" + ], + "storage_written": { + "0xf21cebc87207a45343dbb33a2512a7ff11e6222d87d2759dc5745a55f3df1144": "0x12b4fde3b7500fdb4b44c8", + "0x7dad25c8626c2c908dac91e9625bc405bb06615b644201bc88d98ab95a0f92d6": "0x10bed6fec73bd19ed90e" + }, + "code_usage": { + "read": "0xa47998f0fcceee76c553f9f49703070078f39a295bd103fff52cd766c9b60168" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x29869498c8eae089a8912", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0x5defccebecd74077aa0ce566544361c4953269120956a662e3572c4a19339eec" + ], + "storage_written": { + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0", + "0x5defccebecd74077aa0ce566544361c4953269120956a662e3572c4a19339eec": "0xf89db39c7ee7d68c" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0x59749a15c51846b075bb4e9958a27a87677a47f1": { + "balance": "0x1a40e3401dd9c595", + "nonce": "0x3f9" + }, + "0x19c1f6c7468ad4076b05a5f79e3ee80ce0064718": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0xc0d1c00078410fd0164580b0bad93d8a579580d06cf45fc2696a823498097b8a", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x23eddd87e20a550e2333d0dcdb0a1a", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x100000100010000fe0f5d00000000000000000071b90bdffc66493ceb95ab" + }, + "code_usage": { + "read": "0x5218d91b409a649690db747c01aae184e43ffcab370003931ff590f24e0c6959" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661f073e7be1284" + } + }, + "meta": { + "byte_code": "0x02f902fc018203f8840122fe118509a1f706248303412c943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad880354a6ba7a180000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf603300000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000354a6ba7a180000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000354a6ba7a180000000000000000000000000000000000000000000000000faa59ce69ca5fa4cd6e00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2002710b8a87405d9a4f2f866319b77004e88dff66c0d92000000000000000000000000000000000000000000c080a060eac6c43db3fca21d07ea88e6b1977214d4ba8c3577da123d917b8c061f9434a05a723e0fd11f59c60452d7c03ca4b92d03561cb287fcb2d1b90d9c8ef7ae95b5", + "new_txn_trie_node_byte": "0x02f902fc018203f8840122fe118509a1f706248303412c943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad880354a6ba7a180000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf603300000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000354a6ba7a180000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000354a6ba7a180000000000000000000000000000000000000000000000000faa59ce69ca5fa4cd6e00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2002710b8a87405d9a4f2f866319b77004e88dff66c0d92000000000000000000000000000000000000000000c080a060eac6c43db3fca21d07ea88e6b1977214d4ba8c3577da123d917b8c061f9434a05a723e0fd11f59c60452d7c03ca4b92d03561cb287fcb2d1b90d9c8ef7ae95b5", + "new_receipt_trie_node_byte": "0xb903e402f903e001837b88e7b9010000000000000000400000000000000000000000000000000000000000000000000002000000000000000000000000000002000000080020000000000000000004000000090000000800000008000000000000000010000000000000008020900000000000000000000000000000000000000000000000000008000010000800000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000200000000000000000040000002000000100000000000000000000000000000000000000000000000000000200008000000000000000000000000001000000000400000000000000000f902d5f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000000000000000000000000000000354a6ba7a180000f89b94b8a87405d9a4f2f866319b77004e88dff66c0d92f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000019c1f6c7468ad4076b05a5f79e3ee80ce0064718a000000000000000000000000059749a15c51846b075bb4e9958a27a87677a47f1a00000000000000000000000000000000000000000000010bed6fec73bd19ed90ef89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada000000000000000000000000019c1f6c7468ad4076b05a5f79e3ee80ce0064718a00000000000000000000000000000000000000000000000000354a6ba7a180000f9011c9419c1f6c7468ad4076b05a5f79e3ee80ce0064718f863a0c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada000000000000000000000000059749a15c51846b075bb4e9958a27a87677a47f1b8a0ffffffffffffffffffffffffffffffffffffffffffffef41290138c42e6126f20000000000000000000000000000000000000000000000000354a6ba7a18000000000000000000000000000000000000000000000071b90bdffc66493ceb95ab000000000000000000000000000000000000000000000d5323c032a1f933762dfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0f5d", + "gas_used": 151632 + } + }, + { + "traces": { + "0x976a55c485a2836bd1305dccc4132890337bd46c": { + "balance": "0x11a78940d171d08ad0" + }, + "0x3e6afb2ba201f4eb028a54708916f9769255f1c6": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0xb90e9ad3dcecd971664b5718c632ace2416b5357ab20d56502cf2c1f68c7155c", + "0xb90e9ad3dcecd971664b5718c632ace2416b5357ab20d56502cf2c1f68c7155b", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x000000000000000000000000000000000000000000000000000000000000000b" + ], + "storage_written": { + "0x000000000000000000000000000000000000000000000000000000000000000b": "0x26d8ae6a217c13a151b9503", + "0xb90e9ad3dcecd971664b5718c632ace2416b5357ab20d56502cf2c1f68c7155b": "0x2121c597cb4baaac4c59c" + }, + "code_usage": { + "read": "0xf6e66ca911e4db1a3bb70337b61f87b5cc6fbfa5838b79be0182de8139da50a2" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661f177c6c10313" + }, + "0x97f857dbe12c4524c21efa5a5e166beb8ff196de": { + "balance": "0x1a4819db80195e", + "nonce": "0x75" + } + }, + "meta": { + "byte_code": "0x02f8b90174840122fe118509dea717e983015bb5943e6afb2ba201f4eb028a54708916f9769255f1c68818904d9f44710000b844d2d272db000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018904d9f44710000c001a0aed98e1cd581a445a805f1cda2fbc1cfff0b4e909ea9dcc65099221e563f0da1a0309b128a59cc5eacc079036b796afd5400b76e4f58f2d70e5d9375a1083fa040", + "new_txn_trie_node_byte": "0x02f8b90174840122fe118509dea717e983015bb5943e6afb2ba201f4eb028a54708916f9769255f1c68818904d9f44710000b844d2d272db000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018904d9f44710000c001a0aed98e1cd581a445a805f1cda2fbc1cfff0b4e909ea9dcc65099221e563f0da1a0309b128a59cc5eacc079036b796afd5400b76e4f58f2d70e5d9375a1083fa040", + "new_receipt_trie_node_byte": "0xb9010d02f9010901837c6d86b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 58527 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661f243eb2dc02b" + }, + "0xc39a17ccb5081d139b06025034c5d2f1bb8fd1bc": { + "balance": "0x93ac14984ac7c7", + "nonce": "0x27" + }, + "0xf55b0f6f2da5ffddb104b58a60f2862745960442": { + "storage_written": { + "0x1a0055764b58dd3316e20c46647eb663b0e194a14e0382147b96fb6247efeb91": "0x437dd887b511540000" + }, + "code_usage": { + "read": "0x1ae216d13259d3e2088f002c586ba617e8335d5618a35c3111fb762606a41e7b" + } + } + }, + "meta": { + "byte_code": "0x02f8b00126840122fe118509dea717e982b51694f55b0f6f2da5ffddb104b58a60f286274596044280b844095ea7b30000000000000000000000008707f238936c12c309bfc2b9959c35828acfc5120000000000000000000000000000000000000000000000437dd887b511540000c080a0853de0ffad0a3397c11800de4ff8671b77b46e6a74df9f66f3fe2ad13cb1a9eaa00cf6e6d3bc51ef41d1fcd9b502d032476baa6f4169aee503dc4fda18b9b5d591", + "new_txn_trie_node_byte": "0x02f8b00126840122fe118509dea717e982b51694f55b0f6f2da5ffddb104b58a60f286274596044280b844095ea7b30000000000000000000000008707f238936c12c309bfc2b9959c35828acfc5120000000000000000000000000000000000000000000000437dd887b511540000c080a0853de0ffad0a3397c11800de4ff8671b77b46e6a74df9f66f3fe2ad13cb1a9eaa00cf6e6d3bc51ef41d1fcd9b502d032476baa6f4169aee503dc4fda18b9b5d591", + "new_receipt_trie_node_byte": "0xb901ab02f901a701837d211eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000200000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000002000000000000000000000000000000000000000020200000000000010000000000000000000000040000000000000000000000000000000000000000000000400000000000000100000000000000000000000000010000000000000000000000000000000000000000000000000000000000000f89df89b94f55b0f6f2da5ffddb104b58a60f2862745960442f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000c39a17ccb5081d139b06025034c5d2f1bb8fd1bca00000000000000000000000008707f238936c12c309bfc2b9959c35828acfc512a00000000000000000000000000000000000000000000000437dd887b511540000", + "gas_used": 45976 + } + }, + { + "traces": { + "0x61c8df8b22cdafec708dc3a6467a852cca5a1b13": { + "balance": "0x397cc2da4594000" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661f2a129a722b3" + }, + "0x3596cc508c0e41d27b6eed3c06859ff954b11218": { + "balance": "0x1ba01315b8248", + "nonce": "0xa" + } + }, + "meta": { + "byte_code": "0x02f8730109840122fe118509dea717e98252089461c8df8b22cdafec708dc3a6467a852cca5a1b1388033fb0b5adeb400080c001a0b9b04ac1fe0c575d5e28f1192eb276f8f48104f627513fd470d49fbdca648fdfa06d748d0ed17b8f4c0d2d039864c6f296e5f912d7cdf32db7a5f797f1e26a39f3", + "new_txn_trie_node_byte": "0x02f8730109840122fe118509dea717e98252089461c8df8b22cdafec708dc3a6467a852cca5a1b1388033fb0b5adeb400080c001a0b9b04ac1fe0c575d5e28f1192eb276f8f48104f627513fd470d49fbdca648fdfa06d748d0ed17b8f4c0d2d039864c6f296e5f912d7cdf32db7a5f797f1e26a39f3", + "new_receipt_trie_node_byte": "0xb9010d02f9010901837d7326b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661f315ce7ab731" + }, + "0xa2870beb406b8d6fd3db46785f846d9342d65a5c": { + "balance": "0x9ff35eca151874", + "nonce": "0x30" + }, + "0x6b175474e89094c44da98b954eedeac495271d0f": { + "storage_written": { + "0xacef5952e1c302cccd46425a24550947e09da771383477fc994dc0b672caaa24": "0x9c3532ad0c5438000" + }, + "code_usage": { + "read": "0x4e36f96ee1667a663dfaac57c4d185a0e369a3a217e0079d49620f34f85d1ac7" + } + } + }, + "meta": { + "byte_code": "0x02f8b0012f840122fe118509dea717e98272ea946b175474e89094c44da98b954eedeac495271d0f80b844095ea7b30000000000000000000000001715a3e4a142d8b698131108995174f37aeba10d000000000000000000000000000000000000000000000009c3532ad0c5438000c001a09e5360d6379e2e3c22c45192292518ef7e05488b19033ce4e11db05a74668093a00681de78b34942edc091e257841d7d17dce0d79b424313f94eb73737d61491b4", + "new_txn_trie_node_byte": "0x02f8b0012f840122fe118509dea717e98272ea946b175474e89094c44da98b954eedeac495271d0f80b844095ea7b30000000000000000000000001715a3e4a142d8b698131108995174f37aeba10d000000000000000000000000000000000000000000000009c3532ad0c5438000c001a09e5360d6379e2e3c22c45192292518ef7e05488b19033ce4e11db05a74668093a00681de78b34942edc091e257841d7d17dce0d79b424313f94eb73737d61491b4", + "new_receipt_trie_node_byte": "0xb901ab02f901a701837dd9c4b9010000000000000000420008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000008000040000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000200000000000000000000000010000000000000000000000000000000000000000000000000000000000000f89df89b946b175474e89094c44da98b954eedeac495271d0ff863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000a2870beb406b8d6fd3db46785f846d9342d65a5ca00000000000000000000000001715a3e4a142d8b698131108995174f37aeba10da0000000000000000000000000000000000000000000000009c3532ad0c5438000", + "gas_used": 26270 + } + }, + { + "traces": { + "0xbe80225f09645f172b079394312220637c440a63": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x1000001000100000000280000000000000001008587f1d69f32aac5d795e3", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x2f538d9692c24adf1f710eac0ce16" + }, + "code_usage": { + "read": "0xd1866225e93658308187d826b0de2a929bb97ee0de48f519cae4b828f24a44d8" + } + }, + "0xd9db270c1b5e3bd161e8c8503c55ceabee709552": { + "code_usage": { + "read": "0xbba688fbdb21ad2bb58bc320638b43d94e7d100f6f3ebaab0a4e4de6304b1c2e" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x2986948373da78c20d54c", + "storage_read": [ + "0x9684206a32a78769a0b973b24d4ef3cb0466b01050fa69685b383770943d3e85", + "0xee61682ec263cf9ac626d5a9b0cd5e26edbfa98b5b368b540e65bd739c37e3b7" + ], + "storage_written": { + "0xee61682ec263cf9ac626d5a9b0cd5e26edbfa98b5b368b540e65bd739c37e3b7": "0x1", + "0x9684206a32a78769a0b973b24d4ef3cb0466b01050fa69685b383770943d3e85": "0x5bc903bfece8c3140" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xf326e4de8f66a0bdc0970b79e0924e33c79f1915": { + "balance": "0x9b8ce8be961ef4e842", + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "code_usage": { + "read": "0xaea7d4252f6245f301e540cfbee27d3a88de543af8e49c5c62405d5499fab7e5" + } + }, + "0x74de5d4fcbf63e00296fd95d33236b9794016631": { + "code_usage": { + "read": "0x34285df013b925b34c7744f619f6ed193cbb11e1e08b0013af1dd0511a3e6f6e" + } + }, + "0x7cdf68ce9a05413cbb76cb7f80eaf415a826e313": { + "code_usage": { + "read": "0xa873be03126d64946ef888d2b014036c8271d0d781aec7f91ab85a56f6e1e44c" + } + }, + "0x1e756b7bcca7b26fb9d85344b3525f5559bbacb0": { + "code_usage": { + "read": "0xb3d363300a17b5f7fa658dc21b90d93126fc65175398a16ae8c705583fc02a32" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661f63f962e3808" + }, + "0x881d40237659c251811cec9c364ef91dc08d300c": { + "storage_read": [ + "0x684fdb4b219d1c63474e6c8e4dc8c2611de744d4aaa2b78c4ec411ebb6ba9756", + "0x684fdb4b219d1c63474e6c8e4dc8c2611de744d4aaa2b78c4ec411ebb6ba9757", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xcc34a85a74e46f422c2b06b16156799b7c313a71390b4465cbc463bd99d76764" + } + }, + "0x92a67c829169d9e38256af5f9859362ecd3e0690": { + "balance": "0x168faa9ce26cc2f", + "nonce": "0xa" + }, + "0xbf5495efe5db9ce00f80364c8b423567e58d2110": { + "storage_read": [ + "0xd64193ab2ae4623b7cbf67d0ac3e5ffe4844af5124da8f21a8a76f3c66992021", + "0x2df4c0626b51e8cbe30747eb2ecaf02b3ddcce88c82ad7c4cffea2394a0598c2", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0xde6ec65a0a9c95811f7447ec83ceb797b8f1f169933d6dcd40b3502794ed6d15", + "0x0000000000000000000000000000000000000000000000000000000000000065", + "0x9b6c5061849db3d124928ec61da5a1864a9ad29e6bb882e4609547442d22e2de", + "0xad3dfc6da043c145b0f5f286248cc32ae826d33728479d5caf24f25f60f562b2" + ], + "storage_written": { + "0x9b6c5061849db3d124928ec61da5a1864a9ad29e6bb882e4609547442d22e2de": "0x0", + "0xad3dfc6da043c145b0f5f286248cc32ae826d33728479d5caf24f25f60f562b2": "0x0", + "0x2df4c0626b51e8cbe30747eb2ecaf02b3ddcce88c82ad7c4cffea2394a0598c2": "0x95a9593fbf23e7b04" + }, + "code_usage": { + "read": "0xe5e3693157141608a301682c8c228c0277eac7efc0b98b57f874ca49752b5fd8" + } + }, + "0x1111111254eeb25477b68fb85ed929f73a960582": { + "code_usage": { + "read": "0xb21184893bb5b89a85468883070702045d9821b62ea3b28d3e84d89ab84fd23e" + } + } + }, + "meta": { + "byte_code": "0x02f903340109840122fe118509dea717e98303551394881d40237659c251811cec9c364ef91dc08d300c80b902c65f5755290000000000000000000000000000000000000000000000000000000000000080000000000000000000000000bf5495efe5db9ce00f80364c8b423567e58d21100000000000000000000000000000000000000000000000000153f598df9e108500000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000136f6e65496e6368563546656544796e616d69630000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000bf5495efe5db9ce00f80364c8b423567e58d211000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000153f598df9e1085000000000000000000000000000000000000000000000000014b903a120b7f8a00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000002fc8c8968beb1000000000000000000000000f326e4de8f66a0bdc0970b79e0924e33c79f1915000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a8e449022e0000000000000000000000000000000000000000000000000153f598df9e1085000000000000000000000000000000000000000000000000014e7d7c1dd36d9e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001200000000000000000000000be80225f09645f172b079394312220637c440a63ab4991fe0000000000000000000000000000000000000000000000000047c080a06ad3c500312c6cf890f354689a822d5adce69cd1574492cfbfe11341003d359da07d35e2236920d3d4b25fc7a3f56951f3a43f0c25bdbf926a1f5700e802d320ce", + "new_txn_trie_node_byte": "0x02f903340109840122fe118509dea717e98303551394881d40237659c251811cec9c364ef91dc08d300c80b902c65f5755290000000000000000000000000000000000000000000000000000000000000080000000000000000000000000bf5495efe5db9ce00f80364c8b423567e58d21100000000000000000000000000000000000000000000000000153f598df9e108500000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000136f6e65496e6368563546656544796e616d69630000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000bf5495efe5db9ce00f80364c8b423567e58d211000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000153f598df9e1085000000000000000000000000000000000000000000000000014b903a120b7f8a00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000002fc8c8968beb1000000000000000000000000f326e4de8f66a0bdc0970b79e0924e33c79f1915000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a8e449022e0000000000000000000000000000000000000000000000000153f598df9e1085000000000000000000000000000000000000000000000000014e7d7c1dd36d9e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001200000000000000000000000be80225f09645f172b079394312220637c440a63ab4991fe0000000000000000000000000000000000000000000000000047c080a06ad3c500312c6cf890f354689a822d5adce69cd1574492cfbfe11341003d359da07d35e2236920d3d4b25fc7a3f56951f3a43f0c25bdbf926a1f5700e802d320ce", + "new_receipt_trie_node_byte": "0xb9057a02f90576018380a22bb9010000000000000000001000000400010000020000001800000000000800000000000080010000000000000010000000000002000000080028000000000000000000000000000000080800020008000000000000000000400000000004200000000008000000000000000000000000000001000000000000040000000010000800000000021000000100000000000000000000000000800000004020000000001000000001000000000000000040000004000000000000000000000000000000000000000202000000000000000000000000000000000000000000000002000000000020200000000000000400800000000000000000000000000001000000001000f9046bf89b94bf5495efe5db9ce00f80364c8b423567e58d2110f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000092a67c829169d9e38256af5f9859362ecd3e0690a000000000000000000000000074de5d4fcbf63e00296fd95d33236b9794016631a00000000000000000000000000000000000000000000000000153f598df9e1085f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000be80225f09645f172b079394312220637c440a63a00000000000000000000000001111111254eeb25477b68fb85ed929f73a960582a0000000000000000000000000000000000000000000000000015551067c79b3c6f89b94bf5495efe5db9ce00f80364c8b423567e58d2110f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000074de5d4fcbf63e00296fd95d33236b9794016631a0000000000000000000000000be80225f09645f172b079394312220637c440a63a00000000000000000000000000000000000000000000000000153f598df9e1085f9011c94be80225f09645f172b079394312220637c440a63f863a0c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67a00000000000000000000000001111111254eeb25477b68fb85ed929f73a960582a00000000000000000000000001111111254eeb25477b68fb85ed929f73a960582b8a00000000000000000000000000000000000000000000000000153f598df9e1085fffffffffffffffffffffffffffffffffffffffffffffffffeaaaef983864c3a0000000000000000000000000000000000000001008587f1d69f32aac5d795e3000000000000000000000000000000000000000000000188e1002864bd04f1250000000000000000000000000000000000000000000000000000000000000028f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65a00000000000000000000000001111111254eeb25477b68fb85ed929f73a960582a0000000000000000000000000000000000000000000000000015551067c79b3c6f87a94f326e4de8f66a0bdc0970b79e0924e33c79f1915f842a03d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3da000000000000000000000000074de5d4fcbf63e00296fd95d33236b9794016631a00000000000000000000000000000000000000000000000000002fc8c8968beb1f87b94881d40237659c251811cec9c364ef91dc08d300cf863a0beee1e6e7fe307ddcf84b0a16137a4430ad5e2480fc4f4a8e250ab56ccd7630da0f35f348d53012d52a5d39f9390d246956ac932d5778d2bb49e359dba4fa0896da000000000000000000000000092a67c829169d9e38256af5f9859362ecd3e069080", + "gas_used": 182375 + } + }, + { + "traces": { + "0x391a04311e0bfc913ef6fa784773307c826104f0": { + "code_usage": { + "read": "0x878aa3705d972fb969d591e689891f01c0c71e6a6bce6dd546a93c87ce23a208" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661fc1b9f0b8c1f" + }, + "0x0000a26b00c1f0df003000390027140000faa719": { + "balance": "0x101f015df17e991c87", + "code_usage": { + "read": "0x0e0a5f7bfe4bf9760a537b808095ac2a9e37c7755f7326691c11c216918166bf" + } + }, + "0x7dbc433c92266ab268ae1040837a212b77fec393": { + "storage_read": [ + "0xa7ba506b12094321d0cc5c8d1ff3f9c6257e5ba5f6b1720f8f761133aa4e2991", + "0xda07af600560ea9deab8f8fbadd73adbdb4f03db63f7cd6cb1b7b5ad1a941a6b", + "0x260ae403d3d9be12741289d2d0de06f74c88e0eca995c06a620dbca66c7b71ac", + "0xb0501ca2ead8adcef1f030e0e24feb62340108e79e8e4c6740ec69868dbea325", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0e993fcb8a51b4212f05638d3ad2137699e4a29bd8e13eeb4734f74284928f65", + "0xe1498d806df155d5c136022dc6a752632196b31357d126a268942a71c69e4566", + "0x74c0c00da1685e7e6fad59969ea06906e7bc4310246d52a879ef1039fbe7f3a6", + "0x37034de6124f38c538741e1096210957af3f3ea0ad23ddac99d3575ba479cf2b" + ], + "storage_written": { + "0xb0501ca2ead8adcef1f030e0e24feb62340108e79e8e4c6740ec69868dbea325": "0x20000000065cf5de7e762f8239ba764011cb92808af06672f1f3961ae", + "0x37034de6124f38c538741e1096210957af3f3ea0ad23ddac99d3575ba479cf2b": "0x2", + "0x260ae403d3d9be12741289d2d0de06f74c88e0eca995c06a620dbca66c7b71ac": "0x65ce9cc7ab4ce2a08cbea809692218dd7841f681b80069a9", + "0x74c0c00da1685e7e6fad59969ea06906e7bc4310246d52a879ef1039fbe7f3a6": "0x4b0000000000000007", + "0xa7ba506b12094321d0cc5c8d1ff3f9c6257e5ba5f6b1720f8f761133aa4e2991": "0x20000000065cf5de7e762f8239ba764011cb92808af06672f1f3961ae" + }, + "code_usage": { + "read": "0xd8b0e93212b19dba6511bf4905e53fd5c2cffaecac66744686cf40f35a7bcc73" + } + }, + "0xe762f8239ba764011cb92808af06672f1f3961ae": { + "balance": "0x31cdba99bee1a6c", + "nonce": "0x14" + }, + "0xab4ce2a08cbea809692218dd7841f681b80069a9": { + "balance": "0x1169035dfd829db0a" + }, + "0x00000000000000adc04c56bf30ac9d3c0aaf14dc": { + "storage_read": [ + "0xc93870b18284db2917fe4e736d9c955481abdae5c570d820f884381edaa1a819", + "0x8b0936b97c06f82cf453682ed3eb23fe7e66acb9da227703a7d3ae7a334421fb", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x3be811ce5ee64f2fad20b52ea524f006649d2d52322a46895386d50de98ce976", + "0x97fa93a1f667bc92deeb7b4486705ab18cb1858e1614fceaf81e542781ec9177", + "0xc70fd9802f7900850fd253334e7e85f7ba6695faffcf6f7ce3673023ab47a89c", + "0xd73c37528851bcee8ef8b6f42056ce3f0bb759193179306c472b6d33bc6e228f" + ], + "storage_written": { + "0x8b0936b97c06f82cf453682ed3eb23fe7e66acb9da227703a7d3ae7a334421fb": "0x10000000000000000000000000000010001", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x1", + "0xc93870b18284db2917fe4e736d9c955481abdae5c570d820f884381edaa1a819": "0x10000000000000000000000000000010001" + }, + "code_usage": { + "read": "0x30bd6d5686b2afa68fa12d7f8838c8532dbace05325226f4ab2da7ecb0b6ee1b" + } + }, + "0x0000000000000000000000000000000000000001": {}, + "0x1e0049783f008a0085193e00003d00cd54003c71": { + "storage_read": [ + "0x73f81e05fe78bb9c03fd7e2026f0245c29102ff947eddf738e68a7faea7f48aa" + ], + "code_usage": { + "read": "0x069efdc9b946a332dce9951324fa197268e3ff0e00e44c6bf36049fc53113a41" + } + }, + "0x000000000000aaeb6d7670e522a718067333cd4e": { + "storage_read": [ + "0x87aac7a904a8c8f55fdf2146118662b8b8251de0b6ce954987311e7875c7b79d", + "0xf7b999eca392ce81950e6e9266d2e8f30b30433b0a191821c210d0506b3c3e5c", + "0x772cff010ba21d2145860eeda2ff154702f57ec0da746c08961eea44f80a8427" + ], + "code_usage": { + "read": "0xf81224da2c9fa1872376316fdc140b4b1e9dbf3f4579f37e9671575af143b617" + } + } + }, + "meta": { + "byte_code": "0x02f91be20113840122fe118509dea717e9830a26549400000000000000adc04c56bf30ac9d3c0aaf14dc88038bb7e5741cc000b91b6c87201b4100000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000018000000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000006200000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000fe000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000580000000000000000000000000f8857fc8efb51a4f6fad1217602bd8a3bf596ad3000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf5da50000000000000000000000000000000000000000000000000000000065f599250000000000000000000000000000000000000000000000000000000000000000360c6ebe0000000000000000000000000000000000000000323ae04dce84c8210000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec39300000000000000000000000000000000000000000000000000000000000004db00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0ad71ee7e980000000000000000000000000000000000000000000000000000d0ad71ee7e9800000000000000000000000000f8857fc8efb51a4f6fad1217602bd8a3bf596ad30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005a3d2a594b8000000000000000000000000000000000000000000000000000005a3d2a594b8000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b47a54b297000000000000000000000000000000000000000000000000000000b47a54b297000000000000000000000000000f2f42fb3a746952085f211ff5c0b3a68c20322210000000000000000000000000000000000000000000000000000000000000040944451062021c7446a14884406e5d4a300d30b1d3c17b4249e706cab17c7e2d73210b68dfaf9f64243437cba9cbfde1062ea87e67df06daeee8dc4a440bf673e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000004c0000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf0c8e0000000000000000000000000000000000000000000000000000000065f6998eeaa4e38354fae4dbd1e23fbce23172428905ac8027cedaaaf916ab216bab69a172db8c0b000000000000000000000000000000000000000029758682e21040200000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec3930000000000000000000000000000000000000000000000000000000000000ebb00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e078262485680000000000000000000000000000000000000000000000000000e0782624856800000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120c3bab75800000000000000000000000000000000000000000000000000000120c3bab758000000000000000000000000000000a26b00c1f0df003000390027140000faa7190000000000000000000000000000000000000000000000000000000000000040e1414e04823f02dffb7aa52ed64ae0dc1fa84abf78946e7c05f816dc20a289365788e8959b51316959d8e1d9cfa9ded106ba0ba9e799b27e9649befd626d38b3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000004c0000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf0c8f0000000000000000000000000000000000000000000000000000000065f6998f6f788f0a983cb0f942c9ade89741cee396ef59187e47f0d1e33b981dec78618c72db8c0b00000000000000000000000000000000000000009345091de369a1300000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec3930000000000000000000000000000000000000000000000000000000000000ebc00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23c9f634c000000000000000000000000000000000000000000000000000000e23c9f634c0000000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012309ce54000000000000000000000000000000000000000000000000000000012309ce5400000000000000000000000000000000a26b00c1f0df003000390027140000faa7190000000000000000000000000000000000000000000000000000000000000040504aa447143e37a8f4aad8e99830c69bf2648d867168b23b1bcb8fe2668f2d0c926104252eebc927cdac70bbdf5fae7f44d699f26df0de8f6127afc652f7b471000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000004c0000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf0c8f0000000000000000000000000000000000000000000000000000000065f6998f439c7894aa39be0d52e1c498fd0d9f4f00c1d12611ef61fb773da94e0d4ee6f672db8c0b00000000000000000000000000000000000000007744e79ae86a6e500000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec3930000000000000000000000000000000000000000000000000000000000000ebd00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e40118a212980000000000000000000000000000000000000000000000000000e40118a2129800000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001254fe1f0a8000000000000000000000000000000000000000000000000000001254fe1f0a8000000000000000000000000000000a26b00c1f0df003000390027140000faa71900000000000000000000000000000000000000000000000000000000000000408c9c7f976f81a2828b51fb8d46895154e598c301f6fe44ed09f0e6192429cc40444103ccd8e23a9383e586d56bd918fce9eeac12787a5777ce72fb0810d37c27000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000006265e923360c6ebec001a0d3d0218fd9e14a8fb9ca268ac230247732e37388d28df6ae59fa6fd5f0e9b07ba03b18036b6760fc7adb0144f5e88f6023ae800620fc8bff6ae6bbf2d13517b09e", + "new_txn_trie_node_byte": "0x02f91be20113840122fe118509dea717e9830a26549400000000000000adc04c56bf30ac9d3c0aaf14dc88038bb7e5741cc000b91b6c87201b4100000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000018000000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000006200000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000fe000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000580000000000000000000000000f8857fc8efb51a4f6fad1217602bd8a3bf596ad3000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf5da50000000000000000000000000000000000000000000000000000000065f599250000000000000000000000000000000000000000000000000000000000000000360c6ebe0000000000000000000000000000000000000000323ae04dce84c8210000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec39300000000000000000000000000000000000000000000000000000000000004db00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0ad71ee7e980000000000000000000000000000000000000000000000000000d0ad71ee7e9800000000000000000000000000f8857fc8efb51a4f6fad1217602bd8a3bf596ad30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005a3d2a594b8000000000000000000000000000000000000000000000000000005a3d2a594b8000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b47a54b297000000000000000000000000000000000000000000000000000000b47a54b297000000000000000000000000000f2f42fb3a746952085f211ff5c0b3a68c20322210000000000000000000000000000000000000000000000000000000000000040944451062021c7446a14884406e5d4a300d30b1d3c17b4249e706cab17c7e2d73210b68dfaf9f64243437cba9cbfde1062ea87e67df06daeee8dc4a440bf673e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000004c0000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf0c8e0000000000000000000000000000000000000000000000000000000065f6998eeaa4e38354fae4dbd1e23fbce23172428905ac8027cedaaaf916ab216bab69a172db8c0b000000000000000000000000000000000000000029758682e21040200000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec3930000000000000000000000000000000000000000000000000000000000000ebb00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e078262485680000000000000000000000000000000000000000000000000000e0782624856800000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120c3bab75800000000000000000000000000000000000000000000000000000120c3bab758000000000000000000000000000000a26b00c1f0df003000390027140000faa7190000000000000000000000000000000000000000000000000000000000000040e1414e04823f02dffb7aa52ed64ae0dc1fa84abf78946e7c05f816dc20a289365788e8959b51316959d8e1d9cfa9ded106ba0ba9e799b27e9649befd626d38b3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000004c0000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf0c8f0000000000000000000000000000000000000000000000000000000065f6998f6f788f0a983cb0f942c9ade89741cee396ef59187e47f0d1e33b981dec78618c72db8c0b00000000000000000000000000000000000000009345091de369a1300000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec3930000000000000000000000000000000000000000000000000000000000000ebc00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23c9f634c000000000000000000000000000000000000000000000000000000e23c9f634c0000000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012309ce54000000000000000000000000000000000000000000000000000000012309ce5400000000000000000000000000000000a26b00c1f0df003000390027140000faa7190000000000000000000000000000000000000000000000000000000000000040504aa447143e37a8f4aad8e99830c69bf2648d867168b23b1bcb8fe2668f2d0c926104252eebc927cdac70bbdf5fae7f44d699f26df0de8f6127afc652f7b471000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000004c0000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf0c8f0000000000000000000000000000000000000000000000000000000065f6998f439c7894aa39be0d52e1c498fd0d9f4f00c1d12611ef61fb773da94e0d4ee6f672db8c0b00000000000000000000000000000000000000007744e79ae86a6e500000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec3930000000000000000000000000000000000000000000000000000000000000ebd00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e40118a212980000000000000000000000000000000000000000000000000000e40118a2129800000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001254fe1f0a8000000000000000000000000000000000000000000000000000001254fe1f0a8000000000000000000000000000000a26b00c1f0df003000390027140000faa71900000000000000000000000000000000000000000000000000000000000000408c9c7f976f81a2828b51fb8d46895154e598c301f6fe44ed09f0e6192429cc40444103ccd8e23a9383e586d56bd918fce9eeac12787a5777ce72fb0810d37c27000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000006265e923360c6ebec001a0d3d0218fd9e14a8fb9ca268ac230247732e37388d28df6ae59fa6fd5f0e9b07ba03b18036b6760fc7adb0144f5e88f6023ae800620fc8bff6ae6bbf2d13517b09e", + "new_receipt_trie_node_byte": "0xb9084b02f90847018385c9d2b9010000000000400000000000000000000020000000000000000000000000000000050000000000000000000000000000000000800000000000000000000000000000000000000000000000000008000000008000000000000800000000000002000000000000800200020000000000000000040000000000000000000010000000040000000000000000000004000000000000000000080000000000000000000000880000000000000000000000100000000000000000000002000000000000000000000002000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000100000000802000000000000000000f9073cf902fd9400000000000000adc04c56bf30ac9d3c0aaf14dcf863a09d9af8e38d66c62e2c12f0225249fd9d721c54b83f48d9352c97c6cacdcb6f31a0000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9a0000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c00b9028068a870071f968e1de70a049824ec05f941ed9a9d10e5a335ced6c433c7404701000000000000000000000000e762f8239ba764011cb92808af06672f1f3961ae00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec3930000000000000000000000000000000000000000000000000000000000000ebc0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23c9f634c0000000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012309ce5400000000000000000000000000000000a26b00c1f0df003000390027140000faa719f902fd9400000000000000adc04c56bf30ac9d3c0aaf14dcf863a09d9af8e38d66c62e2c12f0225249fd9d721c54b83f48d9352c97c6cacdcb6f31a0000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9a0000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c00b902808ce6e24e3585e56b6b5ff922041a209d125647db9a0ac32f03f11c34fd116ba4000000000000000000000000e762f8239ba764011cb92808af06672f1f3961ae00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000007dbc433c92266ab268ae1040837a212b77fec3930000000000000000000000000000000000000000000000000000000000000ebd0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e40118a2129800000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001254fe1f0a8000000000000000000000000000000a26b00c1f0df003000390027140000faa719f89c947dbc433c92266ab268ae1040837a212b77fec393f884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9a0000000000000000000000000e762f8239ba764011cb92808af06672f1f3961aea00000000000000000000000000000000000000000000000000000000000000ebc80f89c947dbc433c92266ab268ae1040837a212b77fec393f884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000ab4ce2a08cbea809692218dd7841f681b80069a9a0000000000000000000000000e762f8239ba764011cb92808af06672f1f3961aea00000000000000000000000000000000000000000000000000000000000000ebd80", + "gas_used": 337831 + } + }, + { + "traces": { + "0x0000000000000000000000000000000000000001": {}, + "0xa892aa5fb5bea074b56fd5d21f86d8c701586e94": { + "code_usage": { + "read": "0x1efe86fb7dea0eebcd71f5f1ced83f2253993138114a48ed42b6d1d3b6f0a607" + } + }, + "0xa8f97058f9b863e4d54ee86ae374d31ebab5e70d": { + "balance": "0x661b9692dfe895", + "nonce": "0x1d" + }, + "0x1865796c359bfc78f46ef65110e69650583ed818": { + "storage_read": [ + "0xeb40862b1d6c4ab7ecfc5aea55b22c875e4ab0a78d1a611b68c7ad49f7631166", + "0xb10bae057df4eeed4491902e236dc3c914068f619b69f3e0ec9770a23773d56f", + "0xe1e1cbfd5ff46c81955de2c333a08cfa821978ce7ee49f1bd9dc152118f55db5", + "0x9d9c791c65eec946a96f27e2cba142c68944ee11d8d5ec7c4fbac1de71b6a4f6", + "0x47999a7d2142681f8c3d83c48dbe1c96a4a2a55dd1fb547fd9c4db1f405c8100" + ], + "storage_written": { + "0x47999a7d2142681f8c3d83c48dbe1c96a4a2a55dd1fb547fd9c4db1f405c8100": "0x0", + "0xeb40862b1d6c4ab7ecfc5aea55b22c875e4ab0a78d1a611b68c7ad49f7631166": "0xa", + "0x9d9c791c65eec946a96f27e2cba142c68944ee11d8d5ec7c4fbac1de71b6a4f6": "0x0", + "0xb10bae057df4eeed4491902e236dc3c914068f619b69f3e0ec9770a23773d56f": "0xcda72070e455bb31c7690a170224ce43623d0b6f" + }, + "code_usage": { + "read": "0x26d3f3195bb2c3e49f3f7ca101ae4fbc2c61177ab3cde6e431f878b6d70c4470" + } + }, + "0xb19a1f4949930fdc4dd1d60bc475db158dd41223": { + "code_usage": { + "read": "0x9a0c6e6eb1f0d6756d8fef4cc87783a7f50f36abddee599332db53d4fc59a675" + } + }, + "0x0532fd6e1109756be1503dabe7194b70df0257a7": { + "code_usage": { + "read": "0x84ad3d98f07d7670bd200950a84ec286b54194341a5e40ac18474d51a51be3af" + } + }, + "0x69525dac489e4718964b5615c3d794a25d62beb7": { + "storage_read": [ + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x86d216d3c3b5861b1a77eee31bd96dd5c01b71e4069e3acb90583be9fb0a24db", + "0x1b021ea53b7b3e0ac1784f6bac7be2cdf4154283aebcb627a1b1d28ed15e1542" + ], + "storage_written": { + "0x1b021ea53b7b3e0ac1784f6bac7be2cdf4154283aebcb627a1b1d28ed15e1542": "0x3e800000410" + }, + "code_usage": { + "read": "0x4d9be648c5bf39973670d9f8b481d5d0b971e6a2db2deccc6b98cde21c5dd83e" + } + }, + "0x762340b8a40cdd5bfc3edd94265899fda345d0e3": { + "storage_read": [ + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" + ], + "code_usage": { + "read": "0x6bec2bf64f7e824109f6ed55f77dd7665801d6195e461666ad6a5342a9f6daf5" + } + }, + "0xb253b0c006b68c3a5a7906fdfd380aeb90abea4d": { + "code_usage": { + "read": "0xb90c5e64619aaea7629474d2f5bbe045614ed1b76e4583031535347042ae0ca9" + } + }, + "0xcda72070e455bb31c7690a170224ce43623d0b6f": { + "storage_read": [ + "0xc1ebe987cf1238dca3e35ebe835130e0644828c54fbc715d8f2a6fb15c83e10a", + "0x7a805dd0049d00e7889f5d36a8312947f631a93f54fc94ce6e5aa4fa9e1d0253", + "0x0000000000000000000000000000000000000000000000000000000000000b87", + "0x8c8b6173c072e173694fa5cd446c0dd61af1b2631c7aa203a02f17b30c1c4a3e", + "0x05ed8ed8626e8f42937c31ded813a6dc44a612c33d93b345813b2dfbed89c6f8", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" + ], + "storage_written": { + "0x05ed8ed8626e8f42937c31ded813a6dc44a612c33d93b345813b2dfbed89c6f8": "0x65cf9490", + "0x0000000000000000000000000000000000000000000000000000000000000b87": "0x1", + "0x7a805dd0049d00e7889f5d36a8312947f631a93f54fc94ce6e5aa4fa9e1d0253": "0xde0b6b3a7640000a8f97058f9b863e4d54ee86ae374d31ebab5e70d" + }, + "code_usage": { + "read": "0x1cdbb871acfcfb333e711254a60f446ffa5b8f834bbca387a4c8e88c6bf4854e" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661ff50e47f80d2" + } + }, + "meta": { + "byte_code": "0x02f902d2011c840122fe118509dea717e98302feeb94762340b8a40cdd5bfc3edd94265899fda345d0e380b9026423dc86580000000000000000000000001865796c359bfc78f46ef65110e69650583ed818000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000065cf94900000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf633915c8704cc2a886505acfdeecb0aa15fa36787e2f8d83e99577c6253d0ca78b33d28889547d39e308dc367317bca77ccf1ffe65d0bdff35106f958d46c1082c5c000000000000000000000000000000000000000000000000000000000000000a6d6f6d656e743a34303300000000000000000000000000000000000000000000c080a0865fe625275eb5ea497ab90775c45511d4d5cd1c19e4346d6fcf51c2a55d8acaa05164b85104f0331e42accb92e82b45bfc212f653934b772349ef432cdaac11d0", + "new_txn_trie_node_byte": "0x02f902d2011c840122fe118509dea717e98302feeb94762340b8a40cdd5bfc3edd94265899fda345d0e380b9026423dc86580000000000000000000000001865796c359bfc78f46ef65110e69650583ed818000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000065cf94900000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf633915c8704cc2a886505acfdeecb0aa15fa36787e2f8d83e99577c6253d0ca78b33d28889547d39e308dc367317bca77ccf1ffe65d0bdff35106f958d46c1082c5c000000000000000000000000000000000000000000000000000000000000000a6d6f6d656e743a34303300000000000000000000000000000000000000000000c080a0865fe625275eb5ea497ab90775c45511d4d5cd1c19e4346d6fcf51c2a55d8acaa05164b85104f0331e42accb92e82b45bfc212f653934b772349ef432cdaac11d0", + "new_receipt_trie_node_byte": "0xb9046902f904650183889c55b9010000000000000000000000000000000004000000000000000000000000000400000000000000000000000000000000010000000000040000000020000000002000000000010000000000000008100000000000000049000000000000000010000000000000000000000048800000000008000080000400800000000010000000080000000000000010050000000000000000000000000000000000000000000000000000020000000000004000000040000000000000000000000000000000000000000042000000002a00000000000000000000000000000000000000000000000000000000000000000000800000000000080000000000000000000040000000f9035af89c941865796c359bfc78f46ef65110e69650583ed818f884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000a8f97058f9b863e4d54ee86ae374d31ebab5e70da0000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6fa0000000000000000000000000000000000000000000000000000000000000000a80f8bc94cda72070e455bb31c7690a170224ce43623d0b6ff884a0fcc77ea8bdcce862f43b7fb00fe6b0eb90d6aeead27d3800d9257cf7a05f9d96a00000000000000000000000001865796c359bfc78f46ef65110e69650583ed818a0000000000000000000000000000000000000000000000000000000000000000aa0000000000000000000000000a8f97058f9b863e4d54ee86ae374d31ebab5e70da00000000000000000000000000000000000000000000000000de0b6b3a7640000f9013d9469525dac489e4718964b5615c3d794a25d62beb7f884a0cc129567ae9a8e3c55e1ad3156090375e3c062bbbfdb78098a15bdf158a73b2ba00000000000000000000000000000000000000000000000000000000000000410a0000000000000000000000000a8f97058f9b863e4d54ee86ae374d31ebab5e70da00000000000000000000000001865796c359bfc78f46ef65110e69650583ed818b8a0000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000a6d6f6d656e743a34303300000000000000000000000000000000000000000000f8bc94cda72070e455bb31c7690a170224ce43623d0b6ff884a0c8a67fb17ad40fabf835a5c96e0438644464257af6f325f44f1615aabc0e41baa00000000000000000000000001865796c359bfc78f46ef65110e69650583ed818a0000000000000000000000000000000000000000000000000000000000000000aa0000000000000000000000000a8f97058f9b863e4d54ee86ae374d31ebab5e70da00000000000000000000000000000000000000000000000000000000065cf9490", + "gas_used": 184963 + } + }, + { + "traces": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "storage_read": [ + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0xf049292d4179af649022fa4e7de6f83162b43a75d0cb5f6eba4e898c03d89795": "0x0" + }, + "code_usage": { + "read": "0xd80d4b7c890cb9d6a4893e6b52bc34b56b25335cb13716e0d1d31383e6b41505" + } + }, + "0x2a35b0b5fa78bf933a0f57f906f2b568348e6ae2": { + "balance": "0x13cc06447515086", + "nonce": "0x97" + }, + "0x43506849d7c04f9138d1a2050bbf3a0c054402dd": { + "code_usage": { + "read": "0xcdfb7d322961af3acae7a8f7ee8b69c205b36f576cc5b077f170c7eb8ecbe3ea" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19661ffe62e438d88" + } + }, + "meta": { + "byte_code": "0x02f8b1018196840122fe118509dea717e982982294a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844095ea7b30000000000000000000000003c6ce18afde845635a32a69d0a7721b0db84118e0000000000000000000000000000000000000000000000000000000000000000c001a0b1a38a7f07db9ad4a043def5783d3bbd2c8b836b7837baef5cb45e6851b4a815a02f861d7d5a4adc415682db8609bab2cfeaa8b4c99bb7782a9d16674c91d522d3", + "new_txn_trie_node_byte": "0x02f8b1018196840122fe118509dea717e982982294a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844095ea7b30000000000000000000000003c6ce18afde845635a32a69d0a7721b0db84118e0000000000000000000000000000000000000000000000000000000000000000c001a0b1a38a7f07db9ad4a043def5783d3bbd2c8b836b7837baef5cb45e6851b4a815a02f861d7d5a4adc415682db8609bab2cfeaa8b4c99bb7782a9d16674c91d522d3", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183891fabb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000008000000000000000000000000000000000000000020800000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000800000000010000000000000000000000020000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000200000000000000000000000000000000000000000000001f89df89b94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a00000000000000000000000002a35b0b5fa78bf933a0f57f906f2b568348e6ae2a00000000000000000000000003c6ce18afde845635a32a69d0a7721b0db84118ea00000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 33622 + } + }, + { + "traces": { + "0x3f3f57023cd1f51f751721161ac55f5c97d19bae": { + "balance": "0xe12ee9d04a18", + "nonce": "0x36" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1966200436cbcf010" + }, + "0x7aa1cc9bc6810ca18f25c479f162518dcfce2940": { + "balance": "0xb68241dde066d5" + } + }, + "meta": { + "byte_code": "0x02f8720135840122fe118509dea717e9825208947aa1cc9bc6810ca18f25c479f162518dcfce2940872b350e8707819180c001a074e0cea0d73ac6cbfcdfd5c6cc4f407252a9c227faf862a7d5bc748d10766b2aa038ef18e2de7908f36091141e459eb2fd4f6fa473d5eb2ca159e5dd37fa1a3d4a", + "new_txn_trie_node_byte": "0x02f8720135840122fe118509dea717e9825208947aa1cc9bc6810ca18f25c479f162518dcfce2940872b350e8707819180c001a074e0cea0d73ac6cbfcdfd5c6cc4f407252a9c227faf862a7d5bc748d10766b2aa038ef18e2de7908f36091141e459eb2fd4f6fa473d5eb2ca159e5dd37fa1a3d4a", + "new_receipt_trie_node_byte": "0xb9010d02f9010901838971b3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x26a1fddacfb9f6f5072ee5636ed3429101e6c069": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "code_usage": { + "read": "0x1dd1839100e43cd0bd9ffc4e1bd5b9df22882a64a48c9246114076e93cd24362" + } + }, + "0x28e4f3a7f651294b9564800b2d01f35189a5bfbe": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x50cfe998b2009513831ece41854d815b6916e0eba06252c12611631689890b5c" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x2bb44e" + }, + "code_usage": { + "read": "0x2c8141910dda0618a1dd7690ff4c66c45c27bebee72db665239c0fbdf9c1c124" + } + }, + "0x9a47f3289794e9bbc6a3c571f6d96ad4e7baed16": { + "code_usage": { + "read": "0xb6da44d88c7df9a1c9fd424c35801d60b9612909eff166f291fb6f0622f85d8a" + } + }, + "0xfe5e5d361b2ad62c541bab87c45a0b9b018389a2": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "code_usage": { + "read": "0xd6effddeb17e728287583e1ba6343974e4d6900f0aaec18cb34f9adf8278041b" + } + }, + "0x6ef81a18e1e432c289dc0d1a670b78e8bbf9aa35": { + "code_usage": { + "read": "0x268fc248f54788c34cb3045b793ada4e32b63e3b51792c8eb5db40760017fb2e" + } + }, + "0xe6b738da243e8fa2a0ed5915645789add5de5152": { + "balance": "0x1256b6ed95dc7836b6", + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "code_usage": { + "read": "0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000" + } + }, + "0x1a5ffebb342322fe12b0a09651fc57d0b5d4823c": { + "balance": "0x3792bbd648681cf", + "nonce": "0x3fe" + }, + "0x7ac070f096c6e20931c3dc54f927446be232618b": { + "code_usage": { + "read": "0x0f92ed241c249832d9b960c98d1253445b186b52afc4bf7f18e7d71c0aa8b201" + } + }, + "0xd9db270c1b5e3bd161e8c8503c55ceabee709552": { + "code_usage": { + "read": "0xbba688fbdb21ad2bb58bc320638b43d94e7d100f6f3ebaab0a4e4de6304b1c2e" + } + }, + "0xb8901acb165ed027e32754e0ffe830802919727f": { + "balance": "0x25c66f988815b11c91c", + "storage_read": [ + "0x8cc7a1688e07f22ec13eab6d63430d129d7e07853ca941e6824e7860afcdcd47", + "0xa3bd5d0bc36f2e2bbd5d271902a3347b70fb49f3c6f12369a9d81c75718c6c47", + "0x96e5f151d91e68f2b0cb31facab59746b0abcb367b84e7107ff091d086607046" + ], + "storage_written": { + "0x96e5f151d91e68f2b0cb31facab59746b0abcb367b84e7107ff091d086607046": "0x38a67ed7820e2f27d6" + }, + "code_usage": { + "read": "0x2d8029dddbfdf4e660665c11c506c1ebad57ffdd728851981a16cc5896ff2338" + } + }, + "0x0439e60f02a8900a951603950d8d4527f400c3f1": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x935fe1a0fa571149f5ad2de585740ae19090b7f12c5a733cf380d4d223cf413b", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xd970e18227cfdbd1b5e238117adfcd02d45df280dac1caf154840463c41c05ee" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1966202c5104a763b" + } + }, + "meta": { + "byte_code": "0x02f9031b018203fd840122fe118509dea717e983028504940439e60f02a8900a951603950d8d4527f400c3f187b1a2bc2ec50000b902a43ce33bff0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000d6c6966694164617074657256320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000006ef81a18e1e432c289dc0d1a670b78e8bbf9aa350000000000000000000000006ef81a18e1e432c289dc0d1a670b78e8bbf9aa35000000000000000000000000000000000000000000000000000000000000008900000000000000000000000000000000000000000000000000000000000000000000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f61900000000000000000000000000000000000000000000000000b014d4c6ae2800000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000018de76816d800000000000000000000000000e6b738da243e8fa2a0ed5915645789add5de5152000000000000000000000000000000000000000000000000000000000000006c1223354cf08f158c979a33141a5ffebb342322fe12b0a09651fc57d0b5d4823c00000089000000000000000000af4fccb43a8494710bda329b2a6224e4b44833de30f38e7f81d56400000000000000000000000000000000b8901acb165ed027e32754e0ffe830802919727f0000000000000000000000000000000000000000c080a0c9fe5f5376c49a7e6a8a16c2f294dec290ac579b1c54a4c0c3d0b4c0ed4f962ea0167bde9e121efa52b9b6437761c926c1cd65159e50a6e41733deb2debf697438", + "new_txn_trie_node_byte": "0x02f9031b018203fd840122fe118509dea717e983028504940439e60f02a8900a951603950d8d4527f400c3f187b1a2bc2ec50000b902a43ce33bff0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000d6c6966694164617074657256320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000006ef81a18e1e432c289dc0d1a670b78e8bbf9aa350000000000000000000000006ef81a18e1e432c289dc0d1a670b78e8bbf9aa35000000000000000000000000000000000000000000000000000000000000008900000000000000000000000000000000000000000000000000000000000000000000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f61900000000000000000000000000000000000000000000000000b014d4c6ae2800000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000018de76816d800000000000000000000000000e6b738da243e8fa2a0ed5915645789add5de5152000000000000000000000000000000000000000000000000000000000000006c1223354cf08f158c979a33141a5ffebb342322fe12b0a09651fc57d0b5d4823c00000089000000000000000000af4fccb43a8494710bda329b2a6224e4b44833de30f38e7f81d56400000000000000000000000000000000b8901acb165ed027e32754e0ffe830802919727f0000000000000000000000000000000000000000c080a0c9fe5f5376c49a7e6a8a16c2f294dec290ac579b1c54a4c0c3d0b4c0ed4f962ea0167bde9e121efa52b9b6437761c926c1cd65159e50a6e41733deb2debf697438", + "new_receipt_trie_node_byte": "0xb9071b02f9071701838ba62eb9010000000000000000000000004000000000101000000000000000000000000000020000000000000000000000000000040400000000000000000000000000000000000000000040002000000002800000000000000000000000080020000000000004000000000000800000000000002013000000002000000000000002000000000400000000000000000000000002000000000080120000000000000000000000040000000200000000000050000000020080c00200000000014000000400000008000020000000000000000000000000204000000000002000800000000220000000200000000000200000a00000000000000000000000002000000000000000f9060cf87a94e6b738da243e8fa2a0ed5915645789add5de5152f842a03d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3da00000000000000000000000009a47f3289794e9bbc6a3c571f6d96ad4e7baed16a000000000000000000000000000000000000000000000000000018de76816d800f899949a47f3289794e9bbc6a3c571f6d96ad4e7baed16e1a06ded982279c8387ad8a63e73385031a3807c1862e633f06e09d11bcb6e282f60b8600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e6b738da243e8fa2a0ed5915645789add5de515200000000000000000000000000000000000000000000000000018de76816d800f9027d9428e4f3a7f651294b9564800b2d01f35189a5bfbef863a0103fed9db65eac19c4d870f49ab7520fe03b99f1838e5996caf47e9e43308392a000000000000000000000000000000000000000000000000000000000002bb44ea00000000000000000000000008397259c983751daf40400790063935a11afa28ab90200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000026a1fddacfb9f6f5072ee5636ed3429101e6c069000000000000000000000000f2119c5aeb734590477eae272990773df722b49d00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000140000000000000000000000000b8901acb165ed027e32754e0ffe830802919727f000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c4cc29a3060000000000000000000000001a5ffebb342322fe12b0a09651fc57d0b5d4823c00000000000000000000000000000000000000000000000000b014d4c6ae280000000000000000000000000000000000000000000000000000af4fccb43a84940000000000000000000000000000000000000000000000000000000065d89867000000000000000000000000710bda329b2a6224e4b44833de30f38e7f81d564000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f9011d94b8901acb165ed027e32754e0ffe830802919727ff884a00a0607688c86ec1775abcdbab7b33a3a35a6c9cde677c9be880150c231cc6b0ba00000000000000000000000000000000000000000000000000000000000000089a00000000000000000000000001a5ffebb342322fe12b0a09651fc57d0b5d4823ca0000000000000000000000000710bda329b2a6224e4b44833de30f38e7f81d564b88000000000000000000000000000000000000000000000000000b014d4c6ae280000000000000000000000000000000000000000000000000000af4fccb43a84940000000000000000000000000000000000000000000000000000000065d898670000000000000000000000000000000000000000000000000000000000000000f858946ef81a18e1e432c289dc0d1a670b78e8bbf9aa35e1a0ad635460888489be07731050101b47548c6a3831f2dc51f2b3545696d0b8afd7a0f08f158c979a3314000000000000000000000000000000000000000000000000f8f9949a47f3289794e9bbc6a3c571f6d96ad4e7baed16e1a0831bac9533a2034226daa21109dbd4f887674f0fe4877e1a8b35b3ffe1bdce76b8c00000000000000000000000001a5ffebb342322fe12b0a09651fc57d0b5d4823c0000000000000000000000006ef81a18e1e432c289dc0d1a670b78e8bbf9aa35000000000000000000000000000000000000000000000000000000000000008900000000000000000000000000000000000000000000000000000000000000000000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f61900000000000000000000000000000000000000000000000000b014d4c6ae2800", + "gas_used": 144507 + } + }, + { + "traces": { + "0x0000000000000000000000000000000000000001": {}, + "0x29ab878aed032e2e2c86ff4a9a9b05e3276cf1f8": { + "storage_read": [ + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x00000000000000000000000000000000000000000000000000000000000000c9" + ], + "code_usage": { + "read": "0x81b5f43f59138521a694413f02c7f8b7112953a3745ab2d4168369e08ddd4be9" + } + }, + "0x38fdf7b489316e03ed8754ad339cb5c4483fdcf9": { + "storage_read": [ + "0x00000000000000000000000000000000000000000000000000000000000000d0", + "0xe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829d1c2", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x00000000000000000000000000000000000000000000000000000000000000cc", + "0x00000000000000000000000000000000000000000000000000000000000000cb", + "0x00000000000000000000000000000000000000000000000000000000000000c9", + "0x00000000000000000000000000000000000000000000000000000000000000cf" + ], + "storage_written": { + "0xe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829d1c4": "0x5a154246cd8446317a0000000000000000097be70fc69ba69f9", + "0x00000000000000000000000000000000000000000000000000000000000000cf": "0x5a154246cd8446317a0", + "0xe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829d1c2": "0xdbf3fb5704ce9f4db706fe4d9c3f478e2307825200000000012596ca", + "0xe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829d1c3": "0x94ca2bc7ca376000000000000000000000000000000001fd", + "0x00000000000000000000000000000000000000000000000000000000000000d0": "0x1fe" + }, + "code_usage": { + "read": "0x81b5f43f59138521a694413f02c7f8b7112953a3745ab2d4168369e08ddd4be9" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1966207324229cff8" + }, + "0xc9173bf8bd5c1b071b5cae4122202a347b7eefab": { + "code_usage": { + "read": "0x609756d075d5007ce475f10e2b56f0a5c9559fa9d84017a83b77967ee3468b8e" + } + }, + "0xd5f7838f5c461feff7fe49ea5ebaf7728bb0adfa": { + "storage_read": [ + "0x6a2f0b11a6bee306a9d461c96e533345ba2266255d6d4753338e127dbd075eb9", + "0x00000000000000000000000000000000000000000000000000000000000000fd", + "0xb3daa940b1ddd4fbc31f019695822cfbcf44ba40ffee5986c5157ff0caa5bf04", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0xa77191df8cb951a0715415695a1fb57fbc55773e1f00b231294ad7a8ad99f7b4", + "0x2d1eb439335d060367140178a1c8f0da54c5a6e29167fb31d09f511c57d8ca75", + "0x00000000000000000000000000000000000000000000000000000000000000fe", + "0x00000000000000000000000000000000000000000000000000000000000000cb" + ], + "storage_written": { + "0x2d1eb439335d060367140178a1c8f0da54c5a6e29167fb31d09f511c57d8ca75": "0x37a31c0771d", + "0xa77191df8cb951a0715415695a1fb57fbc55773e1f00b231294ad7a8ad99f7b4": "0x0", + "0xb3daa940b1ddd4fbc31f019695822cfbcf44ba40ffee5986c5157ff0caa5bf04": "0xac9ab968c2caa77f6", + "0x6a2f0b11a6bee306a9d461c96e533345ba2266255d6d4753338e127dbd075eb9": "0x1" + }, + "code_usage": { + "read": "0x81b5f43f59138521a694413f02c7f8b7112953a3745ab2d4168369e08ddd4be9" + } + }, + "0xdbf3fb5704ce9f4db706fe4d9c3f478e23078252": { + "balance": "0x136d95cd436f38f", + "nonce": "0x262" + }, + "0xdecacc56fc347274d3df2b709602632845611d39": { + "code_usage": { + "read": "0x14ad228d221eb9279faf3ff481fde93e8d6237cc15ea7fc854bff984a42d8ced" + } + }, + "0xe3cbd06d7dadb3f4e6557bab7edd924cd1489e8f": { + "storage_read": [ + "0x00000000000000000000000000000000000000000000000000000000000000d7", + "0x00000000000000000000000000000000000000000000000000000000000000d6", + "0x00000000000000000000000000000000000000000000000000000000000000cd", + "0x00000000000000000000000000000000000000000000000000000000000000ca", + "0x00000000000000000000000000000000000000000000000000000000000000cf", + "0x00000000000000000000000000000000000000000000000000000000000000d5", + "0x00000000000000000000000000000000000000000000000000000000000000cc", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x00000000000000000000000000000000000000000000000000000000000000d4" + ], + "code_usage": { + "read": "0x81b5f43f59138521a694413f02c7f8b7112953a3745ab2d4168369e08ddd4be9" + } + }, + "0x9d624df2a423cc3f0425827fdddfe053d9a0fdf3": { + "code_usage": { + "read": "0xe342f6fc9c5a65de4ca62b67aeba340c9933008be8d21d1493ff013f63420417" + } + }, + "0x7a6c874db238d7fdc84516cd940e97032271af69": { + "code_usage": { + "read": "0x063d938c3c0db4edef38405d64716bc9e0932fdc4bd512ee784f0d10091bf4dc" + } + }, + "0x8735049f496727f824cc0f2b174d826f5c408192": { + "storage_read": [ + "0x66be4f155c5ef2ebd3772b228f2f00681e4ed5826cdb3b1943cc11ad15ad21c9", + "0x66be4f155c5ef2ebd3772b228f2f00681e4ed5826cdb3b1943cc11ad15ad21ca", + "0x66be4f155c5ef2ebd3772b228f2f00681e4ed5826cdb3b1943cc11ad15ad21cb", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x00000000000000000000000000000000000000000000000000000000000000c9" + ], + "code_usage": { + "read": "0x81b5f43f59138521a694413f02c7f8b7112953a3745ab2d4168369e08ddd4be9" + } + }, + "0x5a7b3cde8ac8d780af4797bf1517464ac54ca033": { + "code_usage": { + "read": "0xeee46c63424daf8e81148abcbe88882f9926609e8a019fc2deb948e44d26eaa4" + } + } + }, + "meta": { + "byte_code": "0x02f9013301820261840122fe118509dea717e98306734494e3cbd06d7dadb3f4e6557bab7edd924cd1489e8f80b8c4b064d46100000000000000000000000000000000000000000000000094ca2bc7ca37600000000000000000000000000000000000000000000000000096fc358a82ccae900000000000000000000000000000000000000000000000000000000065cf6496000000000000000000000000000000000000000000000000000000000000001c43db4b2b6b74ec37e9443b4d1e23aad020f7189e8b83789186b42cb430b280f3444cb2303cb6357d74d90af375fa31f4e328721de54fa30ec5fe1f8179ec9d77c001a0fa91f7eb30b220e2a1981f6f4b4d60003e1b706e8427267b11f0b5dcafafb0f7a012aa7ac2210153fb871a585fb333fdd66a7858a5b9650754fc18aad988293ae6", + "new_txn_trie_node_byte": "0x02f9013301820261840122fe118509dea717e98306734494e3cbd06d7dadb3f4e6557bab7edd924cd1489e8f80b8c4b064d46100000000000000000000000000000000000000000000000094ca2bc7ca37600000000000000000000000000000000000000000000000000096fc358a82ccae900000000000000000000000000000000000000000000000000000000065cf6496000000000000000000000000000000000000000000000000000000000000001c43db4b2b6b74ec37e9443b4d1e23aad020f7189e8b83789186b42cb430b280f3444cb2303cb6357d74d90af375fa31f4e328721de54fa30ec5fe1f8179ec9d77c001a0fa91f7eb30b220e2a1981f6f4b4d60003e1b706e8427267b11f0b5dcafafb0f7a012aa7ac2210153fb871a585fb333fdd66a7858a5b9650754fc18aad988293ae6", + "new_receipt_trie_node_byte": "0xb904a202f9049e01838f8b1bb9010000000000000000000000100000000000000000000000000000000000000000200080020000000000000000000200000080800000000000000000040000200000000100000000000000000008000000000000000000400000000000000000000800000000000000000000040000000040000000000000000000000010008000000000080011000000800000000020000000000000000000000000000000000000020000000000000100000010000000000000000000000000000000000000000000020002008000000020000000000100000000000000000000000000000000004010000000000000000000000000000000000000000000000000000000000100f90393f89b94d5f7838f5c461feff7fe49ea5ebaf7728bb0adfaf863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000dbf3fb5704ce9f4db706fe4d9c3f478e23078252a0000000000000000000000000e3cbd06d7dadb3f4e6557bab7edd924cd1489e8fa000000000000000000000000000000000000000000000000094ca2bc7ca376000f8fc9438fdf7b489316e03ed8754ad339cb5c4483fdcf9f863a0ed5afdabca1838de7f5496f997e6e788ad3207f6299f64700e63435813b7ade4a000000000000000000000000000000000000000000000000000000000000001fda0000000000000000000000000dbf3fb5704ce9f4db706fe4d9c3f478e23078252b88000000000000000000000000000000000000000000000000094ca2bc7ca37600000000000000000000000000000000000000000000000000097be70fc69ba69f90000000000000000000000000000000000000000000005a154246cd8446317a000000000000000000000000000000000000000000000000000000000012596caf8bc94e3cbd06d7dadb3f4e6557bab7edd924cd1489e8ff863a0cbb10a3603d92dc1f9db6996b88539fbd521bb4144891e34c75b05c341c18379a000000000000000000000000000000000000000000000000000000000000001fda0000000000000000000000000dbf3fb5704ce9f4db706fe4d9c3f478e23078252b84000000000000000000000000000000000000000000000000097be70fc69ba69f900000000000000000000000000000000000000000000000094ca2bc7ca376000f89b94d5f7838f5c461feff7fe49ea5ebaf7728bb0adfaf863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000dbf3fb5704ce9f4db706fe4d9c3f478e23078252a0000000000000000000000000e3cbd06d7dadb3f4e6557bab7edd924cd1489e8fa00000000000000000000000000000000000000000000000000000000000000000f89b94d5f7838f5c461feff7fe49ea5ebaf7728bb0adfaf863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000dbf3fb5704ce9f4db706fe4d9c3f478e23078252a000000000000000000000000038fdf7b489316e03ed8754ad339cb5c4483fdcf9a000000000000000000000000000000000000000000000000094ca2bc7ca376000", + "gas_used": 255213 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1966209e1a5068452" + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0x7b37a55ffb30c11d95f943672ae98f28cfb7b087": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x000000000000000000000000000000000000000000000000000000000000000f", + "0xf3e2283d7de2f391c502736ab5cf90d3eaf5a7d787a686763e527cffb598af88", + "0x5dc90d7f24eb896b6c4a25a2f62d94c3cb3ef7a3fd1b3640ee22eb82a6c6e0c3", + "0x0000000000000000000000000000000000000000000000000000000000000015", + "0x0b39df3861ffeebe80c10df3a0a27b3ad49521caedb738699a175c9e8dafb6e5", + "0x0000000000000000000000000000000000000000000000000000000000000011", + "0x1faa769bafcfb5a9eace41506211230abdd51d1d2b424746ad1ade7708326bec", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000014", + "0x7f3dbbf37d01f889608384ab76e7b8d8aa6f8ed674bab54e9314d6712e571ddf", + "0x0000000000000000000000000000000000000000000000000000000000000013", + "0xc8a63034d52e80b0157349f4c946a99eaae278da3c6aef95dfa7ba4a1ac207a5", + "0x0000000000000000000000000000000000000000000000000000000000000019", + "0x7e24b1c24528c967881fcbbcd9a3d4638fe6887cb8ef46c8f8516604cf859508", + "0x0000000000000000000000000000000000000000000000000000000000000018", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "storage_written": { + "0x1faa769bafcfb5a9eace41506211230abdd51d1d2b424746ad1ade7708326bec": "0xdfc7f8d25", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x1adc", + "0x0b39df3861ffeebe80c10df3a0a27b3ad49521caedb738699a175c9e8dafb6e5": "0x1", + "0x7e24b1c24528c967881fcbbcd9a3d4638fe6887cb8ef46c8f8516604cf859508": "0x12064f47f", + "0xf3e2283d7de2f391c502736ab5cf90d3eaf5a7d787a686763e527cffb598af88": "0x8b07a7b" + }, + "code_usage": { + "read": "0x9b04c06765c5ea271f5c53c3dc6981bf0f7bfae11bd96c4a10b094d5ead92a51" + } + }, + "0x0d56e85dd2eab0c99ff91aef6ff86f944edbd172": { + "balance": "0x1792be359accdd", + "nonce": "0x1a" + }, + "0xf43672e89ee98e18b3398942f946c96ef68c1c88": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de7000000000001232bb61c25d4e3740000000000000000000dfc7f8d25", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x76a1082fd289cb0469e1e513a84", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x3a34ea56da6698ef1a6949b4f74a6d9cf6665ed3e0", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x29869487e4b8c6ba2d54c", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0xeb8158b1f103a3001cd02d1158561342986e066b016495e071fdaee673b49200" + ], + "storage_written": { + "0xeb8158b1f103a3001cd02d1158561342986e066b016495e071fdaee673b49200": "0x1232bb61c25d4e374", + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + } + }, + "meta": { + "byte_code": "0x02f902f90119840122fe118509dea717e983035c92943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad87470de4df820000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf601b00000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000470de4df8200000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000000000000326263800000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000007b37a55ffb30c11d95f943672ae98f28cfb7b087c001a07eef7a9624b54bbecb2225427d6e52d0d0e1325a4724c60f5ce0dd1b87aa9e2ca07d77b0191f96c953dfa913e8046b6574844d6131ec1a406bd29507b133e97be5", + "new_txn_trie_node_byte": "0x02f902f90119840122fe118509dea717e983035c92943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad87470de4df820000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf601b00000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000470de4df8200000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000000000000326263800000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000007b37a55ffb30c11d95f943672ae98f28cfb7b087c001a07eef7a9624b54bbecb2225427d6e52d0d0e1325a4724c60f5ce0dd1b87aa9e2ca07d77b0191f96c953dfa913e8046b6574844d6131ec1a406bd29507b133e97be5", + "new_receipt_trie_node_byte": "0xb904db02f904d7018391e7d5b9010000280000000000000000000084000000000000000000000000000000000000000000000000000000000000020000000002000000080000000000000000000000000000080000000000000008000000200000000000000000000000008020000000000000000000000401000000000000000000000000000000000010000000000000000000000000000000000100000000000001001000080010004000000000000000000000000000000000000000000000000080000000000020000000000000020002000000020100000000000010000000000000201000000000000000000000200000000000000000000000000000001000000000400000000000000000f903ccf87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada000000000000000000000000000000000000000000000000000470de4df820000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000f43672e89ee98e18b3398942f946c96ef68c1c88a000000000000000000000000000000000000000000000000000470de4df820000f89b947b37a55ffb30c11d95f943672ae98f28cfb7b087f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000f43672e89ee98e18b3398942f946c96ef68c1c88a00000000000000000000000007b37a55ffb30c11d95f943672ae98f28cfb7b087a0000000000000000000000000000000000000000000000000000000000011706cf89b947b37a55ffb30c11d95f943672ae98f28cfb7b087f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000f43672e89ee98e18b3398942f946c96ef68c1c88a00000000000000000000000000d56e85dd2eab0c99ff91aef6ff86f944edbd172a000000000000000000000000000000000000000000000000000000000035684acf87994f43672e89ee98e18b3398942f946c96ef68c1c88e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000000000000000000000dfc7f8d25000000000000000000000000000000000000000000000001232bb61c25d4e374f8fc94f43672e89ee98e18b3398942f946c96ef68c1c88f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000000d56e85dd2eab0c99ff91aef6ff86f944edbd172b880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000000000000367f5180000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 154810 + } + }, + { + "traces": { + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0xdd66781d0e9a08d4fbb5ec7bac80b691be27f21d": { + "storage_read": [ + "0x3e71e3ae6346ad9ed30e41fcc9331449acfea6b9d402c8596edadcdeefcee982", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x81292f05f9a1bc9d1087703f61431bdf526ac67697c067ab6032a71a4988fa2f", + "0xe9d8c2df1966578c6fd90f13e02e7a9cb012b0e91fb6bac1829c56cad5ca790f", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x93b4090d3a135628ec86a2c51ef83f76281bbc75b45e737f3072a967938387ea", + "0x971da896cbaa23ad67863c02aa8daad109df15afc0db0e4c13046679c9d23680" + ], + "storage_written": { + "0x93b4090d3a135628ec86a2c51ef83f76281bbc75b45e737f3072a967938387ea": "0x137c967d550eddc26cd", + "0x971da896cbaa23ad67863c02aa8daad109df15afc0db0e4c13046679c9d23680": "0x66bb9aef8d557dd1e37a4" + }, + "code_usage": { + "read": "0xb1dde0e2d06b79097986a3ecdd4f56e6021b8bbab841ea2797659cf8c454ed52" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196620c6d8382a37d" + }, + "0x7b3ed3a3444144ff526554d5f4aa463d1759f51a": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x8819ef417987f8ae7a81f42cdfb18815282fe989326fbff903d13cf0e03ace29", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x10000000000000000000000d1ba6069c6a166d180000007330e623465cf5de7", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x10000010001000001b3c800000000000001087a9d5a6b4d431ce9be4b8c92", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x136ef4fac3ea9b4ef32c03c056c255" + }, + "code_usage": { + "read": "0x33e09251a51216898948bd10463ae05a6dc2d4d1a031d5de963de1080623b18a" + } + }, + "0x76f1bef64c898027687f04d7695a2716c1e2352c": { + "balance": "0x179d9371cae3c5", + "nonce": "0xc6" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x2986949a52b9bd7fe554c", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0x9c96803f09af928e36a0f15168568171a3e117a5dc7e2b1d71c06f5b532763ad" + ], + "storage_written": { + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0", + "0x9c96803f09af928e36a0f15168568171a3e117a5dc7e2b1d71c06f5b532763ad": "0x5728506e5cbe70aae" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + } + }, + "meta": { + "byte_code": "0x02f902fb0181c5840122fe118509dea717e983031794943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad880126e00f6c5b8000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf602700000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000126e00f6c5b8000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000126e00f6c5b8000000000000000000000000000000000000000000000000128f093a69637dddbcf00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2002710dd66781d0e9a08d4fbb5ec7bac80b691be27f21d000000000000000000000000000000000000000000c001a0fa9ab53d73b7b201d8bd74828f93c4c5b44587df880cd2dadd9e5912d5404d91a01737b5bef94ca3c480e9269bd4af58f2097a05ecdc568dc5ff4b804f1dcbbde4", + "new_txn_trie_node_byte": "0x02f902fb0181c5840122fe118509dea717e983031794943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad880126e00f6c5b8000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf602700000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000126e00f6c5b8000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000126e00f6c5b8000000000000000000000000000000000000000000000000128f093a69637dddbcf00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2002710dd66781d0e9a08d4fbb5ec7bac80b691be27f21d000000000000000000000000000000000000000000c001a0fa9ab53d73b7b201d8bd74828f93c4c5b44587df880cd2dadd9e5912d5404d91a01737b5bef94ca3c480e9269bd4af58f2097a05ecdc568dc5ff4b804f1dcbbde4", + "new_receipt_trie_node_byte": "0xb903e402f903e00183942550b901000000000000000000008000000000000000000000000000000000000000000000000000000000000000040000000000000200000008002008000000000000000000000008000000080000000800000000000000000000000000000000802000000000400000000000000000000000000000000000000000000000001002080000000000000000000000001000000000000000c001000000000000000000000000000000000000000000000000004000000000000000000000000400008000000000000002000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000081000000000400000000000000000f902d5f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000000000000000000000000000000126e00f6c5b8000f89b94dd66781d0e9a08d4fbb5ec7bac80b691be27f21df863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000007b3ed3a3444144ff526554d5f4aa463d1759f51aa000000000000000000000000076f1bef64c898027687f04d7695a2716c1e2352ca0000000000000000000000000000000000000000000000137c967d550eddc26cdf89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000007b3ed3a3444144ff526554d5f4aa463d1759f51aa00000000000000000000000000000000000000000000000000126e00f6c5b8000f9011c947b3ed3a3444144ff526554d5f4aa463d1759f51af863a0c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada000000000000000000000000076f1bef64c898027687f04d7695a2716c1e2352cb8a00000000000000000000000000000000000000000000000000126e00f6c5b8000fffffffffffffffffffffffffffffffffffffffffffffec836982aaf1223d93300000000000000000000000000000000000001087a9d5a6b4d431ce9be4b8c9200000000000000000000000000000000000000000000071829fcdd7344110907000000000000000000000000000000000000000000000000000000000001b3c8", + "gas_used": 146811 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196620ed017ebff25" + }, + "0xbe3cd04f1aa40d8a4c157c378c6d3bc379e6aae2": { + "storage_read": [ + "0x59cd3f983a1c735d2efe3062c3383f7b2bfc8aa6ff809538c65343184ec0f9fd", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x697d7e1fc8365564afea66c4531cec19ec743be1c757bfd848beefa72c3ac366", + "0xe921dcb78fa3b3cd457634dded2621675c73d1a8a8fc9bb4a9e8fa974dbe963b", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x1f14561ec3dc9a4fab0afeb6a8580e007355031927612e97eecb7752f6a17da4", + "0xba9e2b91609b6851a69bfd1b34ff05db0ef11a3226cfc0e09992522fee533d4e" + ], + "storage_written": { + "0x59cd3f983a1c735d2efe3062c3383f7b2bfc8aa6ff809538c65343184ec0f9fd": "0x6aa890d82c12b", + "0xba9e2b91609b6851a69bfd1b34ff05db0ef11a3226cfc0e09992522fee533d4e": "0xbccbf5c5f3e5a3" + }, + "code_usage": { + "read": "0xb1f70e34c4f5fa0a2549fd946fb028ca1fa3eb42a94eb03155909e547d252ab7" + } + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298694a3347659702554c", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0x697d7e1fc8365564afea66c4531cec19ec743be1c757bfd848beefa72c3ac366" + ], + "storage_written": { + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0", + "0x697d7e1fc8365564afea66c4531cec19ec743be1c757bfd848beefa72c3ac366": "0x103ac9bda9bdbe45" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x357ee5ead0c0b3c709865b705aeab1e3aff9365b": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x21e698996b61fd5a717ee73cce390078", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x1dbff765a002c038d82b39fbe54238", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de7000000000000103ac9bda9bdbe4500000000000000bccbf5c5f3e5a3", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x842662ad37724a8f61b012e4416cfd3db5240bb4": { + "balance": "0x1493e61c85f210", + "nonce": "0x1" + } + }, + "meta": { + "byte_code": "0x02f902f90180840122fe118509dea717e983030a48943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad878e1bc9bf040000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf5e0b00000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000008e1bc9bf04000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000008e1bc9bf0400000000000000000000000000000000000000000000000000000006a20b8e14925b00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000be3cd04f1aa40d8a4c157c378c6d3bc379e6aae2c001a09d441473bec62a8a9d9834d724d01ade8aa10723179b50b76a0fb2e463147a9da0128abaa346b7bd0ef3c108e702848f29c30a7ae9eb5f66e6aceff9046641426d", + "new_txn_trie_node_byte": "0x02f902f90180840122fe118509dea717e983030a48943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad878e1bc9bf040000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf5e0b00000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000008e1bc9bf04000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000008e1bc9bf0400000000000000000000000000000000000000000000000000000006a20b8e14925b00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000be3cd04f1aa40d8a4c157c378c6d3bc379e6aae2c001a09d441473bec62a8a9d9834d724d01ade8aa10723179b50b76a0fb2e463147a9da0128abaa346b7bd0ef3c108e702848f29c30a7ae9eb5f66e6aceff9046641426d", + "new_receipt_trie_node_byte": "0xb9043e02f9043a0183963e78b9010000200000000000000008000080000000000000000000000000000000000000000000000000000000000000000000000002000000080008000000008000000000000000080000000000000008000000200000000000000000000000008020000000000000000020000000000000000000400000000000000000000010000000000000000000000000000000000000000000000001000000080000004000000000000000000000800000000000000000000000000000000000000000000000100000000002000000000000000400000000000000000000001000000000000000000000200001400000040000000000000000001004000000400000000000000000f9032ff87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000000000000000000000000000008e1bc9bf040000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000357ee5ead0c0b3c709865b705aeab1e3aff9365ba0000000000000000000000000000000000000000000000000008e1bc9bf040000f89b94be3cd04f1aa40d8a4c157c378c6d3bc379e6aae2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000357ee5ead0c0b3c709865b705aeab1e3aff9365ba0000000000000000000000000842662ad37724a8f61b012e4416cfd3db5240bb4a00000000000000000000000000000000000000000000000000006aa890d82c12bf87994357ee5ead0c0b3c709865b705aeab1e3aff9365be1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b84000000000000000000000000000000000000000000000000000bccbf5c5f3e5a3000000000000000000000000000000000000000000000000103ac9bda9bdbe45f8fc94357ee5ead0c0b3c709865b705aeab1e3aff9365bf863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000842662ad37724a8f61b012e4416cfd3db5240bb4b8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008e1bc9bf0400000000000000000000000000000000000000000000000000000006aa890d82c12b0000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 137512 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662100ff949db2f" + }, + "0x602c1c8e19b6c4bf885cbc8283d2a14a86b9a99e": { + "balance": "0x54c5d3d55f8f29", + "nonce": "0x1e" + }, + "0xf55b0f6f2da5ffddb104b58a60f2862745960442": { + "storage_read": [ + "0x7b39f9be72ea3674150e64b506be508690973380a99149c52dc66a98f3a01876", + "0x014af72491574063bde430eca8f630bb9244c429736c8c24c62e9e56e8a11adb", + "0x9fbd2fd7585eb2938687b4f8ba7bda7faf9f113af07fe8cd5c16414290d13cb2" + ], + "storage_written": { + "0x7b39f9be72ea3674150e64b506be508690973380a99149c52dc66a98f3a01876": "0x0", + "0x014af72491574063bde430eca8f630bb9244c429736c8c24c62e9e56e8a11adb": "0x5e3947537aa0f8453c57b", + "0x9fbd2fd7585eb2938687b4f8ba7bda7faf9f113af07fe8cd5c16414290d13cb2": "0x0" + }, + "code_usage": { + "read": "0x1ae216d13259d3e2088f002c586ba617e8335d5618a35c3111fb762606a41e7b" + } + }, + "0x8707f238936c12c309bfc2b9959c35828acfc512": { + "storage_read": [ + "0x700c3d2b154e4c372d6716acc7a37f3f165fa230fa13905176c693da0747390a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x700c3d2b154e4c372d6716acc7a37f3f165fa230fa13905176c693da0747390b", + "0x1276c2c9919e0516807189f8a7eaffa18323ab81a49c4be47c7743d2ddf292a1", + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x1", + "0x1276c2c9919e0516807189f8a7eaffa18323ab81a49c4be47c7743d2ddf292a1": "0x70f0200593da08dd31", + "0x700c3d2b154e4c372d6716acc7a37f3f165fa230fa13905176c693da0747390b": "0x1baf800000000002b5e3af16b1880000000005e391bf53faf8d2cbc57b" + }, + "code_usage": { + "read": "0xee92b9460c4d40c0d93565a0b937a753d6fdc82303a5c88938f0b0e0e175de91" + } + } + }, + "meta": { + "byte_code": "0x02f8b1011d840122fe118509dea717e98301fe6d948707f238936c12c309bfc2b9959c35828acfc51280b844b3dd411d000000000000000000000000f55b0f6f2da5ffddb104b58a60f2862745960442000000000000000000000000000000000000000000000070f0200593da08dd31c080a0755821ac1316d590a5ceb2a4f3bc64514ed6c6c2de799f56b0f369fcd6cbc98fa0216f364ebfbbadc7333e1c5979b7ce20626fba45f92e8ad31f006d4979d86df5", + "new_txn_trie_node_byte": "0x02f8b1011d840122fe118509dea717e98301fe6d948707f238936c12c309bfc2b9959c35828acfc51280b844b3dd411d000000000000000000000000f55b0f6f2da5ffddb104b58a60f2862745960442000000000000000000000000000000000000000000000070f0200593da08dd31c080a0755821ac1316d590a5ceb2a4f3bc64514ed6c6c2de799f56b0f369fcd6cbc98fa0216f364ebfbbadc7333e1c5979b7ce20626fba45f92e8ad31f006d4979d86df5", + "new_receipt_trie_node_byte": "0xb9024902f9024501839757e2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000100000004000000000000008000040000000000000000000000000000000800000000001000000004000000000000000000000000000000000000010000000000800000000000000000000002000000000000000000000000000000000000000000200000000000008000000000000000000000050000000800000000080000000000002000000000000000400000100000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f9013af89b94f55b0f6f2da5ffddb104b58a60f2862745960442f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000602c1c8e19b6c4bf885cbc8283d2a14a86b9a99ea00000000000000000000000008707f238936c12c309bfc2b9959c35828acfc512a0000000000000000000000000000000000000000000000070f0200593da08dd31f89b948707f238936c12c309bfc2b9959c35828acfc512f863a099039fcf0a98f484616c5196ee8b2ecfa971babf0b519848289ea4db381f85f7a0000000000000000000000000602c1c8e19b6c4bf885cbc8283d2a14a86b9a99ea0000000000000000000000000f55b0f6f2da5ffddb104b58a60f2862745960442a0000000000000000000000000000000000000000000000070f0200593da08dd31", + "gas_used": 72042 + } + }, + { + "traces": { + "0x0e05ac67bf2dfd9c877d893612265d2d77f66335": { + "balance": "0x2175fac6bd65b7e", + "nonce": "0x212" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1966210f32dad5d31" + }, + "0x877ab7aa50b8e42ad3c9fe562870e91489eea876": { + "storage_read": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0xed14b567afdc37c56358c9117b670b0c259b665de2867dc610dd161e3e0dd659" + ], + "storage_written": { + "0xed14b567afdc37c56358c9117b670b0c259b665de2867dc610dd161e3e0dd659": "0x1" + }, + "code_usage": { + "read": "0x8765781b31481be6f481dff3da4fe57bbe794bae8899a0cc26f6ff13950df646" + } + }, + "0x5133522ea5a0494ecb83f26311a095ddd7a9d4b6": { + "code_usage": { + "read": "0x97c86b3f6fac4e44d862bc80bfa532710b786e164e87a965beda2c5080bc79e8" + } + } + }, + "meta": { + "byte_code": "0x02f8b201820211840122fe118509dea717e982c96a94877ab7aa50b8e42ad3c9fe562870e91489eea87680b844a22cb4650000000000000000000000002f18f339620a63e43f0839eeb18d7de1e1be4dfb0000000000000000000000000000000000000000000000000000000000000001c001a09a1b1a11ee14b9f1fabd5f49f5d20b3d9e64562782495c4e7881550ba4321b70a03c4f105685c737fdfdb597b986662b3f26b34fb7b8214847a9afa1fde558c00e", + "new_txn_trie_node_byte": "0x02f8b201820211840122fe118509dea717e982c96a94877ab7aa50b8e42ad3c9fe562870e91489eea87680b844a22cb4650000000000000000000000002f18f339620a63e43f0839eeb18d7de1e1be4dfb0000000000000000000000000000000000000000000000000000000000000001c001a09a1b1a11ee14b9f1fabd5f49f5d20b3d9e64562782495c4e7881550ba4321b70a03c4f105685c737fdfdb597b986662b3f26b34fb7b8214847a9afa1fde558c00e", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183981fc4b9010000000000800000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000020000000000000000000000000002000000000000000000000000000000000000001000000000000000080000000000000000000000000000000000000000000000000000000000000000000400000000000800000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000200800000000000000000000000000000000000000000000000000000000f89df89b94877ab7aa50b8e42ad3c9fe562870e91489eea876f863a017307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31a00000000000000000000000000e05ac67bf2dfd9c877d893612265d2d77f66335a00000000000000000000000002f18f339620a63e43f0839eeb18d7de1e1be4dfba00000000000000000000000000000000000000000000000000000000000000001", + "gas_used": 51170 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1966211c2e1ba0b8b" + }, + "0xa5cc44a9af8917f8f9749b60f44354ba1320fddf": { + "balance": "0x37b18f58852f9c", + "nonce": "0x2" + }, + "0x64bc2ca1be492be7185faa2c8835d9b824c8a194": { + "storage_read": [ + "0x64f00dfff2097ce499922d4764cd232c039bd68b19b277f19b0d151b1d04e016", + "0x88ec1d3dfc73d5d20fa5a2f56511e31105cb98341c21a3e700f7220f41843d3b" + ], + "storage_written": { + "0x88ec1d3dfc73d5d20fa5a2f56511e31105cb98341c21a3e700f7220f41843d3b": "0x68279a14efd5a38000", + "0x64f00dfff2097ce499922d4764cd232c039bd68b19b277f19b0d151b1d04e016": "0x0" + }, + "code_usage": { + "read": "0x42ede8133c02b6375c05ec7fa92639fb0dc58c3997aa380dabac8483f4cddc83" + } + } + }, + "meta": { + "byte_code": "0x02f8b00101840122fe118509dea717e982ca259464bc2ca1be492be7185faa2c8835d9b824c8a19480b844a9059cbb0000000000000000000000008edf104ff7c56846658272a31fadea728cbc11b1000000000000000000000000000000000000000000000068279a14efd5a38000c001a08a00581c62f6412a8ca16a7ab2f4803d717c8d68adade802d1b85291b5eddb29a024cacc26c54a446826c5635e7aacc450f320c76abf4bcab3d498fc6a29a8b718", + "new_txn_trie_node_byte": "0x02f8b00101840122fe118509dea717e982ca259464bc2ca1be492be7185faa2c8835d9b824c8a19480b844a9059cbb0000000000000000000000008edf104ff7c56846658272a31fadea728cbc11b1000000000000000000000000000000000000000000000068279a14efd5a38000c001a08a00581c62f6412a8ca16a7ab2f4803d717c8d68adade802d1b85291b5eddb29a024cacc26c54a446826c5635e7aacc450f320c76abf4bcab3d498fc6a29a8b718", + "new_receipt_trie_node_byte": "0xb901ab02f901a7018398d67eb9010000000000000000000000000000000000000000000000000000000100000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000010000004000000000000000000000000100000000000000000002000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000400008000000000000000000000000000000000000000000000000000000000000000000000000f89df89b9464bc2ca1be492be7185faa2c8835d9b824c8a194f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000a5cc44a9af8917f8f9749b60f44354ba1320fddfa00000000000000000000000008edf104ff7c56846658272a31fadea728cbc11b1a0000000000000000000000000000000000000000000000068279a14efd5a38000", + "gas_used": 46778 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621227f0c622f3" + }, + "0x0000000000000000000000000000000000000000": {}, + "0x576eb27cbf54518d3de5a38ea7746ef6a9b8b5e6": { + "balance": "0x3afe6a96c10bfd", + "nonce": "0x858" + } + }, + "meta": { + "byte_code": "0x02f8dc01820857840122fe118509dea717e9825a3894000000000000000000000000000000000000000080b86e646174613a6170706c69636174696f6e2f6a736f6e2c7b2270223a22696572632d706f77222c226f70223a226d696e74222c227469636b223a226574687069222c227573655f706f696e74223a22313030303030222c226e6f6e6365223a2231373038303838373435373830227dc080a03d7ecf68bacf0dbb86e690bceb59eb9b85d1427840c2f9bf094b4d5177b6f0c9a03e670e56c8e8dc549a51adce7c383e1067416ded15347284db97ab82f26f0fd8", + "new_txn_trie_node_byte": "0x02f8dc01820857840122fe118509dea717e9825a3894000000000000000000000000000000000000000080b86e646174613a6170706c69636174696f6e2f6a736f6e2c7b2270223a22696572632d706f77222c226f70223a226d696e74222c227469636b223a226574687069222c227573655f706f696e74223a22313030303030222c226e6f6e6365223a2231373038303838373435373830227dc080a03d7ecf68bacf0dbb86e690bceb59eb9b85d1427840c2f9bf094b4d5177b6f0c9a03e670e56c8e8dc549a51adce7c383e1067416ded15347284db97ab82f26f0fd8", + "new_receipt_trie_node_byte": "0xb9010d02f901090183992f66b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 22760 + } + }, + { + "traces": { + "0x7ceb23fd6bc0add59e62ac25578270cff1b9f619": {}, + "0x12bd47f71c08dfc92a56a56899e512c6866e2f17": { + "balance": "0x6185e89efda12", + "nonce": "0x2" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1966212880b46a83f" + } + }, + "meta": { + "byte_code": "0x02f8b00101840122fe118509dea717e982d6d8947ceb23fd6bc0add59e62ac25578270cff1b9f61980b844a9059cbb00000000000000000000000080c67432656d59144ceff962e8faf8926599bcf80000000000000000000000000000000000000000000000000066fd578764f329c001a0e62694f8f725718e463ea3f58e5a053c0b45e0a6bd648b1490d4c230355d5544a042d673b634bbd9b828982e47761f8054fd1bc30dedd4996506e5eef81acb4e04", + "new_txn_trie_node_byte": "0x02f8b00101840122fe118509dea717e982d6d8947ceb23fd6bc0add59e62ac25578270cff1b9f61980b844a9059cbb00000000000000000000000080c67432656d59144ceff962e8faf8926599bcf80000000000000000000000000000000000000000000000000066fd578764f329c001a0e62694f8f725718e463ea3f58e5a053c0b45e0a6bd648b1490d4c230355d5544a042d673b634bbd9b828982e47761f8054fd1bc30dedd4996506e5eef81acb4e04", + "new_receipt_trie_node_byte": "0xb9010d02f9010901839983f2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21644 + } + }, + { + "traces": { + "0x435664008f38b0650fbc1c9fc971d0a3bc2f1e47": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0xcd5501e0e3603e00b6ad88c8e8ce62a5bb877befc9f25f1092473007f227ec71", + "0xa25a49481d75e69e4962ae09926f4d34f733fd60e6d3abe86eec7bb377335f11", + "0xf33a6b7ceabbeba30c0b2376b14f97ad1e748a4de57fccaef78e81fca21c7478", + "0xcd5501e0e3603e00b6ad88c8e8ce62a5bb877befc9f25f1092473007f227ec72", + "0x0cd2e395212a4f23817714f25fcc245d1b6f88289a51befdd5a07db433695841", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0cd2e395212a4f23817714f25fcc245d1b6f88289a51befdd5a07db433695842", + "0x0cd2e395212a4f23817714f25fcc245d1b6f88289a51befdd5a07db433695840", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0cd2e395212a4f23817714f25fcc245d1b6f88289a51befdd5a07db43369583f", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xcd5501e0e3603e00b6ad88c8e8ce62a5bb877befc9f25f1092473007f227ec73", + "0xf33a6b7ceabbeba30c0b2376b14f97ad1e748a4de57fccaef78e81fca21c7477", + "0xf33a6b7ceabbeba30c0b2376b14f97ad1e748a4de57fccaef78e81fca21c7479" + ], + "storage_written": { + "0xcd5501e0e3603e00b6ad88c8e8ce62a5bb877befc9f25f1092473007f227ec72": "0x0", + "0xf33a6b7ceabbeba30c0b2376b14f97ad1e748a4de57fccaef78e81fca21c7477": "0x0", + "0x0cd2e395212a4f23817714f25fcc245d1b6f88289a51befdd5a07db43369583f": "0x0", + "0xf33a6b7ceabbeba30c0b2376b14f97ad1e748a4de57fccaef78e81fca21c747a": "0x0", + "0x0cd2e395212a4f23817714f25fcc245d1b6f88289a51befdd5a07db433695840": "0x4bf81a9ebbd532c9724201b9fdf17420", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x100000100010000fbc8bf0000000000000000000010cea808839b8aa9f315", + "0xa25a49481d75e69e4962ae09926f4d34f733fd60e6d3abe86eec7bb377335f11": "0x240011c06010040c00004000000000000000000000000000000000000", + "0xcd5501e0e3603e00b6ad88c8e8ce62a5bb877befc9f25f1092473007f227ec73": "0x0", + "0xf33a6b7ceabbeba30c0b2376b14f97ad1e748a4de57fccaef78e81fca21c7478": "0x0", + "0xcd5501e0e3603e00b6ad88c8e8ce62a5bb877befc9f25f1092473007f227ec74": "0x0", + "0x0cd2e395212a4f23817714f25fcc245d1b6f88289a51befdd5a07db433695842": "0x0", + "0xcd5501e0e3603e00b6ad88c8e8ce62a5bb877befc9f25f1092473007f227ec71": "0x0", + "0xf33a6b7ceabbeba30c0b2376b14f97ad1e748a4de57fccaef78e81fca21c7479": "0x0", + "0x0cd2e395212a4f23817714f25fcc245d1b6f88289a51befdd5a07db433695841": "0x5fe351c58214894ddce7ae" + }, + "code_usage": { + "read": "0x858ffe161dc17cdc6a0a8635fbf6d43024a88f0ab1115f5496893e7b18a85285" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1966217270b4f2ed4" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0037a0d8db04cd386ef0b9017e3bf3905dfa95c72e31311a6436d48d20140280", + "0xbc281873f91ef6a3045f57af8d0db73b3d1ab55a09d871c413fcc57eb59803a2", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xf54cd1d20b681e0f1877f9e655898649edbb60d29e883d1dd59b00674d1bba0d", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003" + ], + "storage_written": { + "0x0037a0d8db04cd386ef0b9017e3bf3905dfa95c72e31311a6436d48d20140280": "0x7d2a4e6bbd", + "0xbc281873f91ef6a3045f57af8d0db73b3d1ab55a09d871c413fcc57eb59803a2": "0x14906657" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0xef9cf9985270eb35674214f7038610b2695cb980": { + "balance": "0x30751b9e45efb3", + "nonce": "0x1a5" + }, + "0xc36442b4a4522e871399cd717abdd847ab11fe88": { + "storage_read": [ + "0xee89174f44fd142e451b6f38e73444f0b5824d914831642b93cc03d7e6f5649b", + "0xee89174f44fd142e451b6f38e73444f0b5824d914831642b93cc03d7e6f56498", + "0xf49eaf4644eff17c8204df26e921f27db87d9a1604827c25ab6c41cc46d12c33", + "0xee89174f44fd142e451b6f38e73444f0b5824d914831642b93cc03d7e6f56499", + "0xf49eaf4644eff17c8204df26e921f27db87d9a1604827c25ab6c41cc46d12c32", + "0xee89174f44fd142e451b6f38e73444f0b5824d914831642b93cc03d7e6f5649a", + "0x313316858504067abc6c842039ae753c6371a13e29dffee670ae79eff5f2530d", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3ce1633" + ], + "storage_written": { + "0xee89174f44fd142e451b6f38e73444f0b5824d914831642b93cc03d7e6f5649b": "0x0", + "0xee89174f44fd142e451b6f38e73444f0b5824d914831642b93cc03d7e6f56499": "0x4bf81a9ebbd532c9724201b9fdf17420", + "0xee89174f44fd142e451b6f38e73444f0b5824d914831642b93cc03d7e6f5649a": "0x5fe351c58214894ddce7ae", + "0xee89174f44fd142e451b6f38e73444f0b5824d914831642b93cc03d7e6f56498": "0xfbc898fbc884000000000000000045c7" + }, + "code_usage": { + "read": "0x692e658b31cbe3407682854806658d315d61a58c7e4933a2f91d383dc00736c6" + } + }, + "0x4c9edd5852cd905f086c759e8383e09bff1e68b3": { + "storage_read": [ + "0x0037a0d8db04cd386ef0b9017e3bf3905dfa95c72e31311a6436d48d20140280", + "0xbc281873f91ef6a3045f57af8d0db73b3d1ab55a09d871c413fcc57eb59803a2" + ], + "storage_written": { + "0xbc281873f91ef6a3045f57af8d0db73b3d1ab55a09d871c413fcc57eb59803a2": "0x17b4e80e62b1479504", + "0x0037a0d8db04cd386ef0b9017e3bf3905dfa95c72e31311a6436d48d20140280": "0x56cfc50ad004e99d1b1a" + }, + "code_usage": { + "read": "0x6ca5462ff0355c610301f701d0bb1136becca144e195da86d240b5e604ef9625" + } + } + }, + "meta": { + "byte_code": "0x02f90294018201a4840119fe2185074fdaa8f98306590894c36442b4a4522e871399cd717abdd847ab11fe8880b90224ac9650d8000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000a40c49ccbe00000000000000000000000000000000000000000000000000000000000a531900000000000000000000000000000000000000000000000004ca36a561868dd8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000096cb31d0000000000000000000000000000000000000000000000000000000065cf6003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084fc6f786500000000000000000000000000000000000000000000000000000000000a5319000000000000000000000000ef9cf9985270eb35674214f7038610b2695cb98000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000c001a0a809d18f81b41b159dbd762af44304c6ad3a55e22cf3dcccea6d47e7eabe9424a0308718f77bad0a806ac3e3547221f3c9ff1be35d1a34e99c1a451373a5fbd5a6", + "new_txn_trie_node_byte": "0x02f90294018201a4840119fe2185074fdaa8f98306590894c36442b4a4522e871399cd717abdd847ab11fe8880b90224ac9650d8000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000a40c49ccbe00000000000000000000000000000000000000000000000000000000000a531900000000000000000000000000000000000000000000000004ca36a561868dd8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000096cb31d0000000000000000000000000000000000000000000000000000000065cf6003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084fc6f786500000000000000000000000000000000000000000000000000000000000a5319000000000000000000000000ef9cf9985270eb35674214f7038610b2695cb98000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000c001a0a809d18f81b41b159dbd762af44304c6ad3a55e22cf3dcccea6d47e7eabe9424a0308718f77bad0a806ac3e3547221f3c9ff1be35d1a34e99c1a451373a5fbd5a6", + "new_receipt_trie_node_byte": "0xb905c102f905bd01839db5e7b9010000800000000000000000000012000000000000000000000000000000000040000000000010000000000000000000010800010000000000020204000040000000000000000000800000000008000000000000000040000000000008000000000000000000000001000000000000000000000000080004000000008010000000000000000000000000400000000000000000009000008100800000000000100000000000000000000000000080008000000000000000300008000300000001000040000002000000010000000000000000000010000000000000000000000000000000080000040000000000000000000000000000000000000200000000800000f904b2f8fd94435664008f38b0650fbc1c9fc971d0a3bc2f1e47f884a00c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982ca0000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88a0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc884a0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc898b86000000000000000000000000000000000000000000000000004ca36a561868dd8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000148e9b0cf8bb94c36442b4a4522e871399cd717abdd847ab11fe88f842a026f6a048ee9138f2c0ce266f322cb99228e8d619ae2bff30c67f8dcf9d2377b4a000000000000000000000000000000000000000000000000000000000000a5319b86000000000000000000000000000000000000000000000000004ca36a561868dd8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000148e9b0cf89b944c9edd5852cd905f086c759e8383e09bff1e68b3f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000435664008f38b0650fbc1c9fc971d0a3bc2f1e47a0000000000000000000000000ef9cf9985270eb35674214f7038610b2695cb980a0000000000000000000000000000000000000000000000000016be266e5a71efff89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000435664008f38b0650fbc1c9fc971d0a3bc2f1e47a0000000000000000000000000ef9cf9985270eb35674214f7038610b2695cb980a00000000000000000000000000000000000000000000000000000000014906657f8fd94435664008f38b0650fbc1c9fc971d0a3bc2f1e47f884a070935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0a0000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88a0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc884a0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc898b860000000000000000000000000ef9cf9985270eb35674214f7038610b2695cb980000000000000000000000000000000000000000000000000016be266e5a71eff0000000000000000000000000000000000000000000000000000000014906657f8bb94c36442b4a4522e871399cd717abdd847ab11fe88f842a040d0efd1a53d60ecbf40971b9daf7dc90178c3aadc7aab1765632738fa8b8f01a000000000000000000000000000000000000000000000000000000000000a5319b860000000000000000000000000ef9cf9985270eb35674214f7038610b2695cb980000000000000000000000000000000000000000000000000016be266e5a71eff0000000000000000000000000000000000000000000000000000000014906657", + "gas_used": 274933 + } + }, + { + "traces": { + "0xe592427a0aece92de3edee1f18e0157c05861564": { + "code_usage": { + "read": "0xbb90113d2f9a5e9b7feb15a1d1fff06c1ee1575b3f9b1181778ffd0cf633e7ea" + } + }, + "0xb8442d905536796186b91b569f24d7448014e084": { + "balance": "0x4fb0d0b2d99088", + "nonce": "0x9" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0xdb4e1f70945b3795f1ffd3afb221c9af0c74e040f9965a72de1f5ec6f8abb703", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0037a0d8db04cd386ef0b9017e3bf3905dfa95c72e31311a6436d48d20140280", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xa17c79e9e79aa17e119f3f9d579b4257a6bbad3ca163097dedf9f5f783a94eae", + "0x12f5d6df73c251360da53b0a3724bb43433dc6f6f277014f4d5989b3dcaa7867", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004" + ], + "storage_written": { + "0xdb4e1f70945b3795f1ffd3afb221c9af0c74e040f9965a72de1f5ec6f8abb703": "0x0", + "0x12f5d6df73c251360da53b0a3724bb43433dc6f6f277014f4d5989b3dcaa7867": "0x0", + "0x0037a0d8db04cd386ef0b9017e3bf3905dfa95c72e31311a6436d48d20140280": "0x7d4858d9bd" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621956f002223d" + }, + "0x435664008f38b0650fbc1c9fc971d0a3bc2f1e47": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0xa25a49481d75e69e4962ae09926f4d34f733fd60e6d3abe86eec7bb377335f11", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x1825a3c4fb21b0c95631688d2", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x100000100010000fbc8c00000000000000000000010ceb8e87133b1f285b9", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x100000000000000000616d89658c5667ae0d11867fffe27adb5ab2c65cf5de7" + }, + "code_usage": { + "read": "0x858ffe161dc17cdc6a0a8635fbf6d43024a88f0ab1115f5496893e7b18a85285" + } + }, + "0x4c9edd5852cd905f086c759e8383e09bff1e68b3": { + "storage_read": [ + "0x0037a0d8db04cd386ef0b9017e3bf3905dfa95c72e31311a6436d48d20140280", + "0xdb4e1f70945b3795f1ffd3afb221c9af0c74e040f9965a72de1f5ec6f8abb703" + ], + "storage_written": { + "0x0037a0d8db04cd386ef0b9017e3bf3905dfa95c72e31311a6436d48d20140280": "0x56b48c6ad58bcb9b5979", + "0xdb4e1f70945b3795f1ffd3afb221c9af0c74e040f9965a72de1f5ec6f8abb703": "0x1b389ffa791e01c1a1" + }, + "code_usage": { + "read": "0x6ca5462ff0355c610301f701d0bb1136becca144e195da86d240b5e604ef9625" + } + } + }, + "meta": { + "byte_code": "0x02f901720108840119fe2185074fdaa8f9830325b794e592427a0aece92de3edee1f18e0157c0586156480b90104414bf389000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000004c9edd5852cd905f086c759e8383e09bff1e68b30000000000000000000000000000000000000000000000000000000000000064000000000000000000000000b8442d905536796186b91b569f24d7448014e0840000000000000000000000000000000000000000000000000000000065cf61ec000000000000000000000000000000000000000000000000000000001e0a6e0000000000000000000000000000000000000000000000001b2c240b0c834d3adf0000000000000000000000000000000000000000000000000000000000000000c080a0d09be7700fb738926a6ba5a03ca00564926f6078e040417711f5b8ff11fd66c5a06c4cad8958650d81ca0d45060ed6f7166f290463c17687f1162a249e84c88214", + "new_txn_trie_node_byte": "0x02f901720108840119fe2185074fdaa8f9830325b794e592427a0aece92de3edee1f18e0157c0586156480b90104414bf389000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000004c9edd5852cd905f086c759e8383e09bff1e68b30000000000000000000000000000000000000000000000000000000000000064000000000000000000000000b8442d905536796186b91b569f24d7448014e0840000000000000000000000000000000000000000000000000000000065cf61ec000000000000000000000000000000000000000000000000000000001e0a6e0000000000000000000000000000000000000000000000001b2c240b0c834d3adf0000000000000000000000000000000000000000000000000000000000000000c080a0d09be7700fb738926a6ba5a03ca00564926f6078e040417711f5b8ff11fd66c5a06c4cad8958650d81ca0d45060ed6f7166f290463c17687f1162a249e84c88214", + "new_receipt_trie_node_byte": "0xb9036802f9036401839fb230b9010000000002000000000000000010000000000000000000080000000000000040000000000000000000000000000000010800000000000020000000000000000000000000000040010800000008000000000000000000000000000000000000000000000000000000000000100000000000000000080000000000000010000800000000000000000000400000000000000000000000008000000000000000100000000000000000000000000080800000000000000000100000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000f90259f89b944c9edd5852cd905f086c759e8383e09bff1e68b3f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000435664008f38b0650fbc1c9fc971d0a3bc2f1e47a0000000000000000000000000b8442d905536796186b91b569f24d7448014e084a000000000000000000000000000000000000000000000001b389ffa791e01c1a1f89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000b8442d905536796186b91b569f24d7448014e084a0000000000000000000000000435664008f38b0650fbc1c9fc971d0a3bc2f1e47a0000000000000000000000000000000000000000000000000000000001e0a6e00f9011c94435664008f38b0650fbc1c9fc971d0a3bc2f1e47f863a0c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67a0000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564a0000000000000000000000000b8442d905536796186b91b569f24d7448014e084b8a0ffffffffffffffffffffffffffffffffffffffffffffffe4c7600586e1fe3e5f000000000000000000000000000000000000000000000000000000001e0a6e000000000000000000000000000000000000000000000010ceb8e87133b1f285b9000000000000000000000000000000000000000000000001c7b0f10655c2e8bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc8c0", + "gas_used": 130121 + } + }, + { + "traces": { + "0x8457ca5040ad67fdebbcc8edce889a335bc0fbfb": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0xb7fb2088e731810b46cae16044f920c16d198dfb98c0d090ab9d4bdfb35767da", + "0xda56f5747910e980e4db79be8436f2010b14e55728429bf6c1a11f68b5ce926c" + ], + "storage_written": { + "0xda56f5747910e980e4db79be8436f2010b14e55728429bf6c1a11f68b5ce926c": "0x120d4da7b0bd140000", + "0xb7fb2088e731810b46cae16044f920c16d198dfb98c0d090ab9d4bdfb35767da": "0xad78ebc5ac6200000" + }, + "code_usage": { + "read": "0xee434270b2f269f5264266bc508378c5dc365b12883ff36b616bdba2b3dabe75" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621a3ee7b41b93" + }, + "0xf584d0e8cece21ab12e948afe660113dd23db965": { + "balance": "0x1d2ee133d8ff4e", + "nonce": "0xd" + } + }, + "meta": { + "byte_code": "0x02f8b0010c840119fe2185074fdaa8f982d5b3948457ca5040ad67fdebbcc8edce889a335bc0fbfb80b844a9059cbb00000000000000000000000026c515ea3e83003063c8328837c8d6292e0050550000000000000000000000000000000000000000000000120d4da7b0bd140000c001a0826d185c78d926e555334fd4882981bb98a6fc6a2464976531c793b0c7c14ed0a010b722b24d05af2dbaba4d9ac3e38173fabc7cc92d1a30fa38f0d28fd0d5c307", + "new_txn_trie_node_byte": "0x02f8b0010c840119fe2185074fdaa8f982d5b3948457ca5040ad67fdebbcc8edce889a335bc0fbfb80b844a9059cbb00000000000000000000000026c515ea3e83003063c8328837c8d6292e0050550000000000000000000000000000000000000000000000120d4da7b0bd140000c001a0826d185c78d926e555334fd4882981bb98a6fc6a2464976531c793b0c7c14ed0a010b722b24d05af2dbaba4d9ac3e38173fabc7cc92d1a30fa38f0d28fd0d5c307", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183a084c6b9010000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000008000000000000000000000020000000000000000000000000000000000000000000000000000000000000800000000010000000000000000000000000010000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000040000000000000000002000000000000000000000000000000000000002000000000000000000000000000000000000000000800000000000000000000000000000000000000f89df89b948457ca5040ad67fdebbcc8edce889a335bc0fbfbf863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000f584d0e8cece21ab12e948afe660113dd23db965a000000000000000000000000026c515ea3e83003063c8328837c8d6292e005055a00000000000000000000000000000000000000000000000120d4da7b0bd140000", + "gas_used": 53910 + } + }, + { + "traces": { + "0x788529118f2a28c60b9de2ba0353f5ee4293e044": { + "balance": "0x399de6986b5156626", + "nonce": "0x8cfa" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621aaa42cf2813" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x3af846ec55f7e28d9da4a2e210e4c91d17ff846c1560f737c9740a917ea53418", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc4aa187e2e67cdf031fded184a986b393461cdd3d596d30063dc6630dd04cb46", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x06a9ec0d739d01a628acbd26c60ac9f86cca9fc11138021be1329dde183cea25" + ], + "storage_written": { + "0x06a9ec0d739d01a628acbd26c60ac9f86cca9fc11138021be1329dde183cea25": "0xae73220053", + "0x3af846ec55f7e28d9da4a2e210e4c91d17ff846c1560f737c9740a917ea53418": "0xdf8475800" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + } + }, + "meta": { + "byte_code": "0x02f8b201828cf98398968085165a0bc000830249f094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000059a170652e713297391ff32790702ce27b7a249f00000000000000000000000000000000000000000000000000000006fc23ac00c080a024273f646fcbcca4c7087f5c0132aea20c49d58e06d796ca9a7e73f170554380a06104fa39e74f4cc5949d4ef86d11ff5fa287bb2a4319e2dc0f328593e7a7c014", + "new_txn_trie_node_byte": "0x02f8b201828cf98398968085165a0bc000830249f094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000059a170652e713297391ff32790702ce27b7a249f00000000000000000000000000000000000000000000000000000006fc23ac00c080a024273f646fcbcca4c7087f5c0132aea20c49d58e06d796ca9a7e73f170554380a06104fa39e74f4cc5949d4ef86d11ff5fa287bb2a4319e2dc0f328593e7a7c014", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183a138e3b9010000200008000000080000000000000000000000008000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000200002000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000788529118f2a28c60b9de2ba0353f5ee4293e044a000000000000000000000000059a170652e713297391ff32790702ce27b7a249fa000000000000000000000000000000000000000000000000000000006fc23ac00", + "gas_used": 46109 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621b10c781eedb" + }, + "0x4d224452801aced8b2f0aebe155379bb5d594381": { + "storage_read": [ + "0xc9eed4c84b5d4871610a66ee2fc96d52ac2384f0f43f6a7dce51d83f30017056", + "0xddb6472cbc9cf85c4398915b260562c6c55e4713ee0924ea48bd42e7de8b5f9b" + ], + "storage_written": { + "0xddb6472cbc9cf85c4398915b260562c6c55e4713ee0924ea48bd42e7de8b5f9b": "0xb1c647ed061f726000", + "0xc9eed4c84b5d4871610a66ee2fc96d52ac2384f0f43f6a7dce51d83f30017056": "0x0" + }, + "code_usage": { + "read": "0x86cc3092a7d90269edf27eb088feea0d277b77a77bfbbe06dff0a1b1affbfb9e" + } + }, + "0xf5382b102e820d28cec5be56e3fae32d65f1ea0e": { + "balance": "0x8bcbf9a8786016a", + "nonce": "0x99" + } + }, + "meta": { + "byte_code": "0x02f8b0018198838f91e88510faf8215882c98d944d224452801aced8b2f0aebe155379bb5d59438180b844a9059cbb00000000000000000000000004669eb4e6006f7b8c1975c880cd35f2350c5d760000000000000000000000000000000000000000000000b1c647ed061f726000c001a0b7e16af55d667ff2d1768aa2125ec834cba53e278efd9c8fc02fa22e2267e3f8a00b489f7b5e388ecf1606b3eef51ab6b549b048a0c04273b83bdef9fddc6eedd0", + "new_txn_trie_node_byte": "0x02f8b0018198838f91e88510faf8215882c98d944d224452801aced8b2f0aebe155379bb5d59438180b844a9059cbb00000000000000000000000004669eb4e6006f7b8c1975c880cd35f2350c5d760000000000000000000000000000000000000000000000b1c647ed061f726000c001a0b7e16af55d667ff2d1768aa2125ec834cba53e278efd9c8fc02fa22e2267e3f8a00b489f7b5e388ecf1606b3eef51ab6b549b048a0c04273b83bdef9fddc6eedd0", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183a1efb0b9010000000000000000000000000000000000000000000000000000000000000000000000000080000008000000000000000000000000000000000000000000010000000000000000000000000008000000000000000000000000000080000000080000000000000000020000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000200000000f89df89b944d224452801aced8b2f0aebe155379bb5d594381f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000f5382b102e820d28cec5be56e3fae32d65f1ea0ea000000000000000000000000004669eb4e6006f7b8c1975c880cd35f2350c5d76a00000000000000000000000000000000000000000000000b1c647ed061f726000", + "gas_used": 46797 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621b20bab127db" + }, + "0x171c3ca2488401e51332c518e99c13b561fca20f": { + "balance": "0x42d54e02496a6a26" + }, + "0xc43ccd7c734379a7539277e0a12d6e62cb2c8ad6": { + "balance": "0x818534d697aa01", + "nonce": "0x4" + }, + "0xcb84d0d724fea7c6572a4e04993aec0bf9b3a6b5": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0xaa9" + }, + "code_usage": { + "read": "0xad5b233557819cd4766d65957416a4f3878298524bffd2c89d77609fb74fd0fc" + } + } + }, + "meta": { + "byte_code": "0x02f90177010383164834850946d77e9382dbe694cb84d0d724fea7c6572a4e04993aec0bf9b3a6b5870a2992351a8100b901043e108427be1a010e2fc0c7cba206ee2d2fc0c7cb0000000065cf5d9803b0650deb80bbb5000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000a2992351a8100000000000000000000000000000000000000000000000000000091ef7835c100000000000000000000000000000000000000000000000000000000000000002a30784334336343443743373334333739413735333932373745304131326436653632434232633861443600000000000000000000000000000000000000000000c001a0faa68878f05df90f7b56aa3b1dddb4ae90719ff4e17a78df96d2b18778cd3ca7a0677754023741a705796073cb798a2c3537e5942cd615e14ca216696332759144", + "new_txn_trie_node_byte": "0x02f90177010383164834850946d77e9382dbe694cb84d0d724fea7c6572a4e04993aec0bf9b3a6b5870a2992351a8100b901043e108427be1a010e2fc0c7cba206ee2d2fc0c7cb0000000065cf5d9803b0650deb80bbb5000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000a2992351a8100000000000000000000000000000000000000000000000000000091ef7835c100000000000000000000000000000000000000000000000000000000000000002a30784334336343443743373334333739413735333932373745304131326436653632434232633861443600000000000000000000000000000000000000000000c001a0faa68878f05df90f7b56aa3b1dddb4ae90719ff4e17a78df96d2b18778cd3ca7a0677754023741a705796073cb798a2c3537e5942cd615e14ca216696332759144", + "new_receipt_trie_node_byte": "0xb9028c02f902880183a2a6f0b9010000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000002000f9017df9017a94cb84d0d724fea7c6572a4e04993aec0bf9b3a6b5e1a0a870bebc9a9c76c706271fe3202670ae02938c915007460c9f34d87f3d134bc4b90140be1a010e2fc0c7cba206ee2d2fc0c7cb0000000065cf5d9803b0650deb80bbb500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000144000000000000000000000000c43ccd7c734379a7539277e0a12d6e62cb2c8ad600000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000a2992351a8100000000000000000000000000000000000000000000000000000091ef7835c100000000000000000000000000000000000000000000000000000000000000002a30784334336343443743373334333739413735333932373745304131326436653632434232633861443600000000000000000000000000000000000000000000", + "gas_used": 46912 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621b27b37ccf3b" + }, + "0x484bbec2837f30267cd3952f28ae22fd52733879": { + "balance": "0x2d58dc636b38", + "nonce": "0x1" + }, + "0x016606acc6b0cfe537acc221e3bf1bb44b4049ee": { + "balance": "0xad961ab44958514e" + } + }, + "meta": { + "byte_code": "0x02f87101808315c1ec8507ac600ee882520894016606acc6b0cfe537acc221e3bf1bb44b4049ee872a644f598da6b580c080a0ee1772e516a1ad76e465633f9aeff8a45eb2f5b97965c258263fbbead53c7395a0485e0a67fe5b8992c3962b2d17faabff28d52461cf2a1c08d0520c838a2c9f88", + "new_txn_trie_node_byte": "0x02f87101808315c1ec8507ac600ee882520894016606acc6b0cfe537acc221e3bf1bb44b4049ee872a644f598da6b580c080a0ee1772e516a1ad76e465633f9aeff8a45eb2f5b97965c258263fbbead53c7395a0485e0a67fe5b8992c3962b2d17faabff28d52461cf2a1c08d0520c838a2c9f88", + "new_receipt_trie_node_byte": "0xb9010d02f901090183a2f8f8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621b2c972f613b" + }, + "0x75f5b49293f81da115964e7b781f47232acb7f42": { + "balance": "0x64d765b55eba8a" + }, + "0x88ed2234f88b3676afdc6eeb2dc5f76505ca8447": { + "balance": "0x10b44e8fe82147", + "nonce": "0x50" + } + }, + "meta": { + "byte_code": "0x02f871014f830f42408507bbfb18d28252089475f5b49293f81da115964e7b781f47232acb7f428764d765b55eba8a80c080a03d0e4e1b8f12ca55ccdb232169401d9f05ddbbb91b6fd7d04ccca7ddaab48ca2a0365281965f36b7959b07ef6fa0406b2879e8e7d2d527c4ea875295454eba50ce", + "new_txn_trie_node_byte": "0x02f871014f830f42408507bbfb18d28252089475f5b49293f81da115964e7b781f47232acb7f428764d765b55eba8a80c080a03d0e4e1b8f12ca55ccdb232169401d9f05ddbbb91b6fd7d04ccca7ddaab48ca2a0365281965f36b7959b07ef6fa0406b2879e8e7d2d527c4ea875295454eba50ce", + "new_receipt_trie_node_byte": "0xb9010d02f901090183a34b00b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621b376f63ff7b" + }, + "0x895760786fad380835c1365e72289bd44665de70": { + "storage_written": { + "0x7b0486a870461a19140726d8b3a87cc5188c3175fd4cca0f92a21a2f94dc912d": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + "code_usage": { + "read": "0xb7c3de49022e859b430de348eee8f57de1ec841ac0b662c429b7a28b3330713d" + } + }, + "0xf472fc0f6535e82fe3c4fc7109d1b2fb7aa29edf": { + "balance": "0x27206ba0994a85", + "nonce": "0x3cc" + } + }, + "meta": { + "byte_code": "0x02f8b2018203cb830f424085088f049ec2830110e994895760786fad380835c1365e72289bd44665de7080b844095ea7b30000000000000000000000006131b5fae19ea4f9d964eac0408e4408b66337b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001a0f6e29c1f25a63e1978d740ae7f6f9b2d7ba86f4893e51b6d88c3d53c73eba083a05ae68a2a71f8bc583a25e696722e3b7552e8ce8bbeb29aa81d4b636b7c8a2562", + "new_txn_trie_node_byte": "0x02f8b2018203cb830f424085088f049ec2830110e994895760786fad380835c1365e72289bd44665de7080b844095ea7b30000000000000000000000006131b5fae19ea4f9d964eac0408e4408b66337b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001a0f6e29c1f25a63e1978d740ae7f6f9b2d7ba86f4893e51b6d88c3d53c73eba083a05ae68a2a71f8bc583a25e696722e3b7552e8ce8bbeb29aa81d4b636b7c8a2562", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183a400f1b9010000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000020000000000100000000000010000800000000000000008000000000000000000000000000000000000800000000000004000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000f89df89b94895760786fad380835c1365e72289bd44665de70f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000f472fc0f6535e82fe3c4fc7109d1b2fb7aa29edfa00000000000000000000000006131b5fae19ea4f9d964eac0408e4408b66337b5a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "gas_used": 46577 + } + }, + { + "traces": { + "0x0d7e906bd9cafa154b048cfa766cc1e54e39af9b": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000006b", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x0000000000000000000000000000000000000000000000000000000000000069", + "0x0000000000000000000000000000000000000000000000000000000000000068", + "0x0000000000000000000000000000000000000000000000000000000000000065" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000069": "0x2404b", + "0x7fb4302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe399938352": "0x2ae778dde0634c9fad057e7e1ff73f9acad0f09fb159234c002c8bff3f15a226" + }, + "code_usage": { + "read": "0x23c736713c762f5d684fdda5244e49dc182aa801b78383ddf51015c1597c446c" + } + }, + "0x84865bb349998d6b813db7cc0f722fd0a94e6e27": { + "balance": "0x2844b4c6f8ca7d1", + "nonce": "0x70" + }, + "0xaf2f898a8680cb52766abe0588ebe6b9bfe37845": { + "code_usage": { + "read": "0x75dffce5890c026cdbbb9c0d79182ef59d76a268918cf3046f75447a9ece21ba" + } + }, + "0x1fcbe079c4bbab37406dab7dfd35acae37d5c55d": { + "code_usage": { + "read": "0x7e63c1b58a7356e4a139a969076509c37c7a052ebf8551e12e373771950d4c5d" + } + }, + "0xb93ac04010bd61f45bf492022a5b49a902f798f3": { + "code_usage": { + "read": "0xfc5591bc1aa99e53d28b38041e2bc6ab5877a1a9f540de4fb06f31c0651375c7" + } + }, + "0xfdf1ee0098168eaa61bf87db68c39c85151a4e9e": { + "code_usage": { + "read": "0xffcdeaf719d4a43034c340cfc591e2d103c0d31b72aef72407cca6e497a5a3d7" + } + }, + "0x6774bcbd5cecef1336b5300fb5186a12ddd8b367": { + "balance": "0x3b0a075235376adc8ff", + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000065", + "0x0000000000000000000000000000000000000000000000000000000000000097", + "0x00000000000000000000000000000000000000000000000000000000000000ff", + "0x00000000000000000000000000000000000000000000000000000000000000ca", + "0x00000000000000000000000000000000000000000000000000000000000000cb", + "0x5a3e2b7b279a0b1c3a1ca833015f843afdcc0d3982b6878d3bfbcf75f27d1824", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" + ], + "storage_written": { + "0x5a3e2b7b279a0b1c3a1ca833015f843afdcc0d3982b6878d3bfbcf75f27d1824": "0x65cf5de7", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x1" + }, + "code_usage": { + "read": "0x23c736713c762f5d684fdda5244e49dc182aa801b78383ddf51015c1597c446c" + } + }, + "0x8fa3b4570b4c96f8036c13b64971ba65867eeb48": { + "balance": "0x302468e96154ceb057", + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "code_usage": { + "read": "0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000" + } + }, + "0xf8b1378579659d8f7ee5f3c929c2f3e332e41fd6": { + "storage_read": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x0000000000000000000000000000000000000000000000000000000000000068", + "0x0000000000000000000000000000000000000000000000000000000000000065", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ], + "code_usage": { + "read": "0x23c736713c762f5d684fdda5244e49dc182aa801b78383ddf51015c1597c446c" + } + }, + "0x987e300fdfb06093859358522a79098848c33852": { + "storage_read": [ + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x0000000000000000000000000000000000000000000000000000000000000065", + "0x0000000000000000000000000000000000000000000000000000000000000067" + ], + "code_usage": { + "read": "0x23c736713c762f5d684fdda5244e49dc182aa801b78383ddf51015c1597c446c" + } + }, + "0xbc9d741501a20f962756c95bf906b4abffadcf8f": { + "code_usage": { + "read": "0xf4f26227ad02ed0da6a338d7dc956902a94efacdafd598900a9bdacc54ca7f4f" + } + }, + "0xd9db270c1b5e3bd161e8c8503c55ceabee709552": { + "code_usage": { + "read": "0xbba688fbdb21ad2bb58bc320638b43d94e7d100f6f3ebaab0a4e4de6304b1c2e" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621b7e61c2a5fb" + }, + "0x7f2b8c31f88b6006c382775eea88297ec1e3e905": { + "storage_read": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000098", + "0x0000000000000000000000000000000000000000000000000000000000000099", + "0x0000000000000000000000000000000000000000000000000000000000000097", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0x23c736713c762f5d684fdda5244e49dc182aa801b78383ddf51015c1597c446c" + } + } + }, + "meta": { + "byte_code": "0x02f8b8016f830f424085083b41c4f6830512ae94f8b1378579659d8f7ee5f3c929c2f3e332e41fd68802c6dd732073c000b8449f8420b300000000000000000000000000000000000000000000000002c68af0bb1400000000000000000000000000000000000000000000000000000000000000029040c001a05b11e147495cd58e0a507c106d7e32703da834787eed748ec24d92b65a0b469ca06e4df8d63b9afcdbf60e75369e213a3365143eb09da8a21c6c1d1a5b75773e23", + "new_txn_trie_node_byte": "0x02f8b8016f830f424085083b41c4f6830512ae94f8b1378579659d8f7ee5f3c929c2f3e332e41fd68802c6dd732073c000b8449f8420b300000000000000000000000000000000000000000000000002c68af0bb1400000000000000000000000000000000000000000000000000000000000000029040c001a05b11e147495cd58e0a507c106d7e32703da834787eed748ec24d92b65a0b469ca06e4df8d63b9afcdbf60e75369e213a3365143eb09da8a21c6c1d1a5b75773e23", + "new_receipt_trie_node_byte": "0xb9070902f907050183a8a73bb9010000000000000000000000000008000000040000000000000000000000004000000010000000000000020800000000000000000000000000000000000000000000000000000000008000000000002000000080000000000440000000000000000140000000000000000000000410000001000200000000000000000400040000000000000000000000000000000000000000000000000000000000000006000000000000000000080000000040000000040000060000000000080000000000000000000000000000000000021101084000000000100400000000004000000000000000100000000000800000a10000000000000000000020000000000000000000f905faf87a948fa3b4570b4c96f8036c13b64971ba65867eeb48f842a03d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3da00000000000000000000000006774bcbd5cecef1336b5300fb5186a12ddd8b367a0000000000000000000000000000000000000000000000000000044c1ff252000f902bd940d7e906bd9cafa154b048cfa766cc1e54e39af9bf863a069cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37ea00000000000000000000000007885bcbd5cecef1336b5300fb5186a12ddd8c478a0000000000000000000000000781e90f1c8fc4611c9b7497c3b47f99ef6969cbcb902400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002404a0000000000000000000000000000000000000000000000000000000000029040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001848ef1332e0000000000000000000000007f2b8c31f88b6006c382775eea88297ec1e3e9050000000000000000000000006ea73e05adc79974b931123675ea8f78ffdacdf000000000000000000000000000000000000000000000000002c68af0bb140000000000000000000000000000000000000000000000000000000000000002404a00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a4232e874800000000000000000000000084865bb349998d6b813db7cc0f722fd0a94e6e2700000000000000000000000084865bb349998d6b813db7cc0f722fd0a94e6e2700000000000000000000000000000000000000000000000002c68af0bb140000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f901dd946774bcbd5cecef1336b5300fb5186a12ddd8b367f863a0104371f3b442861a2a7b82a070afbbaab748bb13757bf47769e170e37809ec1ea00000000000000000000000007f2b8c31f88b6006c382775eea88297ec1e3e905a00000000000000000000000006ea73e05adc79974b931123675ea8f78ffdacdf0b9016000000000000000000000000000000000000000000000000002c68af0bb140000000000000000000000000000000000000000000000000000000000000002404a0000000000000000000000000000000000000000000000000000000000029040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a4232e874800000000000000000000000084865bb349998d6b813db7cc0f722fd0a94e6e2700000000000000000000000084865bb349998d6b813db7cc0f722fd0a94e6e2700000000000000000000000000000000000000000000000002c68af0bb1400000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8dc947f2b8c31f88b6006c382775eea88297ec1e3e905f863a06670de856ec8bf5cb2b7e957c5dc24759716056f79d97ea5e7c939ca0ba5a675a000000000000000000000000084865bb349998d6b813db7cc0f722fd0a94e6e27a000000000000000000000000084865bb349998d6b813db7cc0f722fd0a94e6e27b86000000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 304714 + } + }, + { + "traces": { + "0x484585fe5b976c2afac0f2c912447059ef41bf78": { + "balance": "0x1b143ed091d3e90" + }, + "0xd0daddf983fce88bef3f10fc12280d0f0cd1208c": { + "balance": "0x3fc608b41df359a", + "nonce": "0x6fd" + }, + "0x00000000000000adc04c56bf30ac9d3c0aaf14dc": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x332703871ea893a2078cb5a00be62cf370ffe7148c01f982738e93b72000e3bc", + "0xc598b6899226c3dd89eab01338299fbaf00e3e9e4a478877f4164107c3388f0b" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x1", + "0xc598b6899226c3dd89eab01338299fbaf00e3e9e4a478877f4164107c3388f0b": "0x10000000000000000000000000000010001" + }, + "code_usage": { + "read": "0x30bd6d5686b2afa68fa12d7f8838c8532dbace05325226f4ab2da7ecb0b6ee1b" + } + }, + "0xb642f85d2b23b16ac310cc0d462716d80608b25c": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xe8a6ff9255456298a79f3dd93166155cc6ad65f094cd801ad48edf788e5fef93", + "0x3884d557a6777d4278c1575663e7af3f176caba7d2afb5caeb1f739877acdebb", + "0x25ba602f27cf9ebf5eab4250f539a0119bcc0272a953947ad1272fc6eaeef3ae", + "0xeec49346fc0fd10749b5b20d945afc32281030050c41695a30ccb6b9533d89ab", + "0x53d995327aeadae3420d996aaa2b87708b5e3eb1f4093b3dbdeae592d8ddd69d", + "0xc6c29e56f988a81c3e566265a9473e610663d81da67870b0abddd6d0aff485e9", + "0xdba142e8373be0bfee8a64cfd6f557f9d746bb5c09b9f60f5aa51950184fe35b" + ], + "storage_written": { + "0x53d995327aeadae3420d996aaa2b87708b5e3eb1f4093b3dbdeae592d8ddd69d": "0x70000000000000005", + "0xe8a6ff9255456298a79f3dd93166155cc6ad65f094cd801ad48edf788e5fef93": "0x65cf5de7d0daddf983fce88bef3f10fc12280d0f0cd1208c", + "0xeec49346fc0fd10749b5b20d945afc32281030050c41695a30ccb6b9533d89ab": "0x0", + "0xc6c29e56f988a81c3e566265a9473e610663d81da67870b0abddd6d0aff485e9": "0x4" + }, + "code_usage": { + "read": "0x8805ed48ee744767cae21aa71d38f54775efd31bc4e962b52afa983d41b4f1d1" + } + }, + "0x1e0049783f008a0085193e00003d00cd54003c71": { + "storage_read": [ + "0x73f81e05fe78bb9c03fd7e2026f0245c29102ff947eddf738e68a7faea7f48aa" + ], + "code_usage": { + "read": "0x069efdc9b946a332dce9951324fa197268e3ff0e00e44c6bf36049fc53113a41" + } + }, + "0x0000000000000000000000000000000000000001": {}, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621ba039b6733b" + }, + "0x0000a26b00c1f0df003000390027140000faa719": { + "balance": "0x101f0b20c7b01e5487", + "code_usage": { + "read": "0x0e0a5f7bfe4bf9760a537b808095ac2a9e37c7755f7326691c11c216918166bf" + } + } + }, + "meta": { + "byte_code": "0x02f903a3018206fc830f424085081a94f0f98302fea79400000000000000adc04c56bf30ac9d3c0aaf14dc8801867177bcd0c000b9032c00000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017caea18b4b8800000000000000000000000000484585fe5b976c2afac0f2c912447059ef41bf78000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c00000000000000000000000000b642f85d2b23b16ac310cc0d462716d80608b25c00000000000000000000000000000000000000000000000000000000000006c8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf5bee0000000000000000000000000000000000000000000000000000000065cf641c0000000000000000000000000000000000000000000000000000000000000000360c6ebe0000000000000000000000000000000000000000848bd5ef66ed78960000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000009c2d6318538000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000000000000000000000000000000000000000004047d6aca022c78fd2387e8acb0dbcac7de6715ffa00b9f6018d7a0d9d7e2036e9c3f3fd63720deaf19074b6895d8550f80a89a78f8f90dfe02a961f9d8c717ab500000000360c6ebec080a0ce2c4de7605cbf07a5646f87b93cb3ff85e6b81563f1ef33ad8386cea4a09789a069a8abebab8e7e94f8ddf25a3a51b1b46627739d02c8d1289f8ae3d944d82c25", + "new_txn_trie_node_byte": "0x02f903a3018206fc830f424085081a94f0f98302fea79400000000000000adc04c56bf30ac9d3c0aaf14dc8801867177bcd0c000b9032c00000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017caea18b4b8800000000000000000000000000484585fe5b976c2afac0f2c912447059ef41bf78000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c00000000000000000000000000b642f85d2b23b16ac310cc0d462716d80608b25c00000000000000000000000000000000000000000000000000000000000006c8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf5bee0000000000000000000000000000000000000000000000000000000065cf641c0000000000000000000000000000000000000000000000000000000000000000360c6ebe0000000000000000000000000000000000000000848bd5ef66ed78960000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f00000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000009c2d6318538000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000000000000000000000000000000000000000004047d6aca022c78fd2387e8acb0dbcac7de6715ffa00b9f6018d7a0d9d7e2036e9c3f3fd63720deaf19074b6895d8550f80a89a78f8f90dfe02a961f9d8c717ab500000000360c6ebec080a0ce2c4de7605cbf07a5646f87b93cb3ff85e6b81563f1ef33ad8386cea4a09789a069a8abebab8e7e94f8ddf25a3a51b1b46627739d02c8d1289f8ae3d944d82c25", + "new_receipt_trie_node_byte": "0xb9054b02f905470183aadf08b90100000000004000000000000800000000200000000000000000000000000000000080000000000000000000000000000000000000000000000000000000002000000000000000000000000000080040000000000000000000000000000200000000400000000202000000000000000008000000000000000000000000100000000000000000000000000000020000000000000000200800000000000000000000028a0000000000000000000000100000000000004200000002000000000000000000000002000000000000000000000000000000000000000000000000000020000010000000000000000000002000000000000000000800000000000800000000f9043cf902fd9400000000000000adc04c56bf30ac9d3c0aaf14dcf863a09d9af8e38d66c62e2c12f0225249fd9d721c54b83f48d9352c97c6cacdcb6f31a0000000000000000000000000484585fe5b976c2afac0f2c912447059ef41bf78a0000000000000000000000000004c00500000ad104d7dbd00e3ae0a5c00560c00b9028045d8d5201e51b59950909def029efc247ff80e7940c61450a84b3aa140ac806c000000000000000000000000d0daddf983fce88bef3f10fc12280d0f0cd1208c0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000b642f85d2b23b16ac310cc0d462716d80608b25c00000000000000000000000000000000000000000000000000000000000006c800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017caea18b4b8800000000000000000000000000484585fe5b976c2afac0f2c912447059ef41bf780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c2d6318538000000000000000000000000000000a26b00c1f0df003000390027140000faa719f89c94b642f85d2b23b16ac310cc0d462716d80608b25cf884a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000484585fe5b976c2afac0f2c912447059ef41bf78a00000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000006c880f89c94b642f85d2b23b16ac310cc0d462716d80608b25cf884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000484585fe5b976c2afac0f2c912447059ef41bf78a0000000000000000000000000d0daddf983fce88bef3f10fc12280d0f0cd1208ca000000000000000000000000000000000000000000000000000000000000006c880", + "gas_used": 145357 + } + }, + { + "traces": { + "0x576e2bed8f7b46d34016198911cdf9886f78bea7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x29b65e180e9fb871e0d0eb4bfdab825c6bf6214b0a82ddd9496a02d68052bcd4", + "0x971f9b48d4300a657b0cb332e19f215a93ce5f067e481c28c3b9565610979afd", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x0000000000000000000000000000000000000000000000000000000000000016", + "0xc934e40e1b24bd2089019d7107c765c938d63c0838af38358c7a8b59f9e942ec", + "0x4cf6cb1f7a88b5a9361c35ce49b5e0626b607e60d1597d775f7e30496f11ad62", + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0x0000000000000000000000000000000000000000000000000000000000000015", + "0x0000000000000000000000000000000000000000000000000000000000000011", + "0x0000000000000000000000000000000000000000000000000000000000000012" + ], + "storage_written": { + "0x971f9b48d4300a657b0cb332e19f215a93ce5f067e481c28c3b9565610979afd": "0x22fc278700265", + "0x0000000000000000000000000000000000000000000000000000000000000010": "0x8de8", + "0x29b65e180e9fb871e0d0eb4bfdab825c6bf6214b0a82ddd9496a02d68052bcd4": "0x741b3e92b86", + "0x4cf6cb1f7a88b5a9361c35ce49b5e0626b607e60d1597d775f7e30496f11ad62": "0x8a15870fb" + }, + "code_usage": { + "read": "0x8c0bb85d75747f004f6fb363d11937109fd3254cd07904b11dc0aec7cb4bc20f" + } + }, + "0x665503146bc41059135ac6c20ce420ea745ed524": { + "balance": "0x12b08c50b52377", + "nonce": "0x20" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298694ac93412c087d54c", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0x04d13e916793bde5fcf5526e50a9bcf9aa246a01345b3178529af0f521376e0f" + ], + "storage_written": { + "0x04d13e916793bde5fcf5526e50a9bcf9aa246a01345b3178529af0f521376e0f": "0x257e96ff720559da8e", + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621bc594ae913b" + }, + "0xe4b8583ccb95b25737c016ac88e539d0605949e8": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de70000000000257e96ff720559da8e00000000000000022fc278700265", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x2c4a64548862a6de61c259d6ce683355efff3b0", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x2a5954e504ec766030762b9f53af8c4" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + } + }, + "meta": { + "byte_code": "0x02f902f8011f830f424085088f049ec28303775a943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad8795ecad29858000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf602700000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000095ecad29858000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000095ecad2985800000000000000000000000000000000000000000000000000000000008382377c900000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000576e2bed8f7b46d34016198911cdf9886f78bea7c001a0d07b2f1d85ef7cac6c642105f49077a694efb3a8ca04959ec9741bfec14d4812a0326131981a3f39e4024fa21e1f70ddb52879b826a5ac28503cf8a74bbcdbe9a4", + "new_txn_trie_node_byte": "0x02f902f8011f830f424085088f049ec28303775a943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad8795ecad29858000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf602700000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000095ecad29858000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000095ecad2985800000000000000000000000000000000000000000000000000000000008382377c900000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000576e2bed8f7b46d34016198911cdf9886f78bea7c001a0d07b2f1d85ef7cac6c642105f49077a694efb3a8ca04959ec9741bfec14d4812a0326131981a3f39e4024fa21e1f70ddb52879b826a5ac28503cf8a74bbcdbe9a4", + "new_receipt_trie_node_byte": "0xb904db02f904d70183ad51c0b9010000200000000000000000000080000000000000000040000000000000000000000000000000000000000000000000000002000000080000000000000000000000000000080000000000000008000000200000000000000000000040008020000000000000000000000000000000000002000000000000000000000014000000000000000000200004000000000000000000000001000000080000004000000000000000000020000000200000000080000000000000000000000000000010000000000002000000000002080000000000000000000000001000000000000000000000200000000002000000000000000080005000000000400000000000000000f903ccf87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000000000000000000000000000000095ecad29858000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000e4b8583ccb95b25737c016ac88e539d0605949e8a00000000000000000000000000000000000000000000000000095ecad29858000f89b94576e2bed8f7b46d34016198911cdf9886f78bea7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000e4b8583ccb95b25737c016ac88e539d0605949e8a0000000000000000000000000576e2bed8f7b46d34016198911cdf9886f78bea7a00000000000000000000000000000000000000000000000000000000016510e12f89b94576e2bed8f7b46d34016198911cdf9886f78bea7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000e4b8583ccb95b25737c016ac88e539d0605949e8a0000000000000000000000000665503146bc41059135ac6c20ce420ea745ed524a000000000000000000000000000000000000000000000000000000008a15870fbf87994e4b8583ccb95b25737c016ac88e539d0605949e8e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b84000000000000000000000000000000000000000000000000000022fc2787002650000000000000000000000000000000000000000000000257e96ff720559da8ef8fc94e4b8583ccb95b25737c016ac88e539d0605949e8f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000665503146bc41059135ac6c20ce420ea745ed524b88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000095ecad2985800000000000000000000000000000000000000000000000000000000008b7a97f0d0000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 160440 + } + }, + { + "traces": { + "0x000000000022d473030f116ddee9f6b43ac78ba3": { + "storage_read": [ + "0x0f8cbf4ef624706f274f76554e3efd11425c511ce054a24456cbb76eeaa278f6" + ], + "code_usage": { + "read": "0xc67d1657868aa5146eaf24fb879fb1fdec3d2d493b3683a61c9c2f4fb2851131" + } + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0x09d1d767edf8fa23a64c51fa559e0688e526812f": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x5151ff423cc401121ad9c4a08342a53c", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0xe10ea73fa471fc15b872b318709426ac4fb8c", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de70000000000bf383956658e00031500000001620d28b54654fa010eae", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x0001a500a6b18995b03f44bb040a5ffc28e45cb0": { + "storage_read": [ + "0x14c43f5000e64bc93c325451a10e32d849db12ebae79f24b303e675631440440", + "0x39ed1a27eeaba21879e3b57aeb347529b9b60bc073c128efbbf6d6bb605c56b2", + "0xefbf7b7aaecbb7aaa337fab928138ed000ed4b24c350e763d88d2efe09832a4c" + ], + "storage_written": { + "0xefbf7b7aaecbb7aaa337fab928138ed000ed4b24c350e763d88d2efe09832a4c": "0x1620d28b54654fa010eae", + "0x39ed1a27eeaba21879e3b57aeb347529b9b60bc073c128efbbf6d6bb605c56b2": "0x56bc75e2d6310021e5" + }, + "code_usage": { + "read": "0xcfba78486e3e9fd4b4b3a08f1078c6edcaf1d95ceb8a35dfeaf2e80929b48973" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621be29caa753b" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298693f1b6170270d7131", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0xefbf7b7aaecbb7aaa337fab928138ed000ed4b24c350e763d88d2efe09832a4c" + ], + "storage_written": { + "0xefbf7b7aaecbb7aaa337fab928138ed000ed4b24c350e763d88d2efe09832a4c": "0xbf383956658e000315", + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x104da6bc433fb8390f9ec668d8dc9adcb2ba6d0c": { + "balance": "0xbd3fee1bc7e52a3", + "nonce": "0xf7" + } + }, + "meta": { + "byte_code": "0x02f902f20181f6830f4240850e43a831c48302ca4f943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad80b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf601b0000000000000000000000000000000000000000000000000000000000000002080c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000015af1d78b58c4000000000000000000000000000000000000000000000000000000b9ef2b39f152a4b00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000001a500a6b18995b03f44bb040a5ffc28e45cb0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000b9ef2b39f152a4bc080a02050b953821c9f50f5d51796910c16bde6f5d80e0cc0569192abacc442d6b838a02a82aba08682813f450796184f9c4c212dd89c5dfd765e548986cc5404132429", + "new_txn_trie_node_byte": "0x02f902f20181f6830f4240850e43a831c48302ca4f943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad80b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf601b0000000000000000000000000000000000000000000000000000000000000002080c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000015af1d78b58c4000000000000000000000000000000000000000000000000000000b9ef2b39f152a4b00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000001a500a6b18995b03f44bb040a5ffc28e45cb0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000b9ef2b39f152a4bc080a02050b953821c9f50f5d51796910c16bde6f5d80e0cc0569192abacc442d6b838a02a82aba08682813f450796184f9c4c212dd89c5dfd765e548986cc5404132429", + "new_receipt_trie_node_byte": "0xb9043e02f9043a0183af38d0b9010002200000000000000000000080000000000000000000000000000000000000000000000000000000200000000000000002000000080000000000000000200000080000080000000000000009000000200000000000400000000000000020000000000000000000000000000000000000000200000000040000010010000000000000000000000000000000500000000000000000000000080000004000000000000010100000000000000000000000000000000000000000000000000000000000000002000000000800000000000000000000000000001000000002000000000000200000000000000000000000000000001000000000000000000000000000f9032ff89b940001a500a6b18995b03f44bb040a5ffc28e45cb0f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000104da6bc433fb8390f9ec668d8dc9adcb2ba6d0ca000000000000000000000000009d1d767edf8fa23a64c51fa559e0688e526812fa0000000000000000000000000000000000000000000000015af1d78b58c400000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000009d1d767edf8fa23a64c51fa559e0688e526812fa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000000000000000000000000000000badd2a2997a641bf8799409d1d767edf8fa23a64c51fa559e0688e526812fe1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b84000000000000000000000000000000000000000000001620d28b54654fa010eae0000000000000000000000000000000000000000000000bf383956658e000315f8fc9409d1d767edf8fa23a64c51fa559e0688e526812ff863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fadb880000000000000000000000000000000000000000000000015af1d78b58c400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000badd2a2997a641bf87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000000000000000000000000000000badd2a2997a641b", + "gas_used": 124688 + } + }, + { + "traces": { + "0x2dd689bc44fbee35491f475498c443d88ae63418": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007" + ], + "storage_written": { + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de700000000000047920f012022abfa00000000000018ae4321e9da9009" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x5e37718cedad7cc99cc220c417f5095573b510c6": { + "storage_read": [ + "0xa0a9449d230e5863520af2cd32b779f78e38a2b56be069d3967027f0cb41911c", + "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x0acbf0107898f09e965f4aebdac79f303961f189ae0dda53cc6e408f1888c8b6", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x57915f62b2dbfb75114a0267474495855da7af031b99e378eda89c75207d07fd", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x84681ca86c96f21e73623ad829e69b02e58af3c61cf06174bed6d1002d6a225c", + "0x1782eed26a133e8e92b23464c88f2355ec9c15410fbaf8e873192317fbd956e8", + "0x0bbee55ca85bbdfb834d4f91939d9c436ec7fb71c0ccf8a959583a66ea68af8f", + "0x873fe42076e79e3da705b99918658ab486530ac7f57454983de4f8afb6d05b1c", + "0x000000000000000000000000000000000000000000000000000000000000001b", + "0x0000000000000000000000000000000000000000000000000000000000000019" + ], + "storage_written": { + "0x1782eed26a133e8e92b23464c88f2355ec9c15410fbaf8e873192317fbd956e8": "0x18ae4321e9da9009", + "0x84681ca86c96f21e73623ad829e69b02e58af3c61cf06174bed6d1002d6a225c": "0xa1102bb8271bfd" + }, + "code_usage": { + "read": "0x2dba98c3ffc1e20dd1f9474f247d51b8435d6c8cae54fb833a14a0042c889216" + } + }, + "0x600e98a098b2345814c4cf02d7c480dd7eeb32de": { + "balance": "0x19d2611124a507a", + "nonce": "0x529" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298693f626f55068f7131", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0x9bc7ec8ae6fdb064e5d4de11792c60b7a0eafc09550de150eb14f4ca7b09ea9a" + ], + "storage_written": { + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0", + "0x9bc7ec8ae6fdb064e5d4de11792c60b7a0eafc09550de150eb14f4ca7b09ea9a": "0x47920f012022abfa" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621c002d24f9bb" + } + }, + "meta": { + "byte_code": "0x02f902f901820528830f424085088f049ec2830309b8943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad87470de4df820000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf602700000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000470de4df8200000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000470de4df82000000000000000000000000000000000000000000000000000000174f62fb5b5e9b00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005e37718cedad7cc99cc220c417f5095573b510c6c0809f9cc06eae8f6ea53db90b9ebba8ff81df548674177abe24d67be359b8555ba7a0060b0c18f245fe083b2c407870b4599b7d98ca3599a2d2dddc00c8dab908af9a", + "new_txn_trie_node_byte": "0x02f902f901820528830f424085088f049ec2830309b8943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad87470de4df820000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf602700000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000470de4df8200000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000470de4df82000000000000000000000000000000000000000000000000000000174f62fb5b5e9b00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005e37718cedad7cc99cc220c417f5095573b510c6c0809f9cc06eae8f6ea53db90b9ebba8ff81df548674177abe24d67be359b8555ba7a0060b0c18f245fe083b2c407870b4599b7d98ca3599a2d2dddc00c8dab908af9a", + "new_receipt_trie_node_byte": "0xb9043e02f9043a0183b128d2b9010000200000000000000000000080008000000000000000000000000000000000000200000040000000000000000000000002000000080000000010000000000000000000080000000000000008000000200000000000000000000000008020000000000000000000000000000000000000000000000000000000000010000000000000000002000000000000400000000000000001000000080000004020000000000000000000080000000000000000000000000000000000000000000000000000000002000000000000000000000004000000000000001800000000000000020080200000000000000000000000000000001000000000400000000000000000f9032ff87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada000000000000000000000000000000000000000000000000000470de4df820000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000002dd689bc44fbee35491f475498c443d88ae63418a000000000000000000000000000000000000000000000000000470de4df820000f89b945e37718cedad7cc99cc220c417f5095573b510c6f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000002dd689bc44fbee35491f475498c443d88ae63418a0000000000000000000000000600e98a098b2345814c4cf02d7c480dd7eeb32dea0000000000000000000000000000000000000000000000000001886371f18332af879942dd689bc44fbee35491f475498c443d88ae63418e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b84000000000000000000000000000000000000000000000000018ae4321e9da900900000000000000000000000000000000000000000000000047920f012022abfaf8fc942dd689bc44fbee35491f475498c443d88ae63418f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000600e98a098b2345814c4cf02d7c480dd7eeb32deb880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000001886371f18332a0000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 126978 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621c26f3d2393b" + }, + "0x7ef5426ae9d85d9762950605fb18c13f063084af": { + "balance": "0x99334882657a7", + "nonce": "0xc" + }, + "0xcab8a2efb490a0cf915ca01e540261f3f09a43fe": { + "storage_read": [ + "0x306a38ce12521dd548df647a8cf54947c097b9dbd99151376c21031f81053477" + ], + "code_usage": { + "read": "0x7aed212dc0d89158c7f50d67b57ff68d7520ae7ee065af7efb905df87c6d3b7a" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298693fa614a6f5a21262", + "storage_read": [ + "0x73d637d229721ca538a0a2e9712eeef46a1889496c0a60f402b430eba28d4a2e", + "0xb8c35b9ea5a62941c05f0a8efd348e0f766fbfea0c304ca721d219cb6ad097eb" + ], + "storage_written": { + "0xb8c35b9ea5a62941c05f0a8efd348e0f766fbfea0c304ca721d219cb6ad097eb": "0x2564189030550365b", + "0x73d637d229721ca538a0a2e9712eeef46a1889496c0a60f402b430eba28d4a2e": "0x1" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xf2dfdbe1ea71bbdcb5a4662a16dbf5e487be3ebe": { + "storage_read": [ + "0x65ad8c1dda35d5b882d855bfd45fd9ee4fcb3a77fa8ac2f4bb13e3f8ae038a79", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x521007575ace8c04ec6710e2a3fce74e12fdc7fa57c81a5b3e00dd2d2a1ddd44", + "0x000000000000000000000000000000000000000000000000000000000000000f", + "0x0000000000000000000000000000000000000000000000000000000000000014", + "0xc20207ef9c632d86edeeb33dcd5ec5cf019e6f2a5cea64e82506afd01d581482", + "0xe0a14f20b576274d216805efb2aa60612547c0964fb552025bdae51c9e88ce94", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x3142cdcae259d965fa413b4c51b556a558fbb0261c8fc2f89472c62bf039c881", + "0x60a67484ccc6b0d08cc36de0f88fd0a00fc0a3f70c60397537b7cf88f0758555", + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0xe08efc48dd2f505050743a6fdbdb71ed11a9b798d5f1beb900f834862c4d4caf", + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x000000000000000000000000000000000000000000000000000000000000000e", + "0x98dffb7b74e60c432e22390867d8142288f5c528d18337a634f8c5451b30c2e3", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0xdb48307e077f2601fb7fe056f2179ba554faa14ef1c4d9c55dd03079337f6fdd", + "0x0000000000000000000000000000000000000000000000000000000000000015", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000014": "0x3e7a66325d5ad6f99779", + "0xe08efc48dd2f505050743a6fdbdb71ed11a9b798d5f1beb900f834862c4d4caf": "0x1f5dcba1af5cfe6f7234", + "0xc20207ef9c632d86edeeb33dcd5ec5cf019e6f2a5cea64e82506afd01d581482": "0x29301f4b5b1183913ce699", + "0x3142cdcae259d965fa413b4c51b556a558fbb0261c8fc2f89472c62bf039c881": "0x5dd35b5ec777ffff71dd", + "0x0000000000000000000000000000000000000000000000000000000000000015": "0x1f58f52c6a1d2905da5d" + }, + "code_usage": { + "read": "0x8b366c02a0c37c30cbfc3c1a48570a9c0debdb2ac4cdd8a46d8e9b59a6d535ea" + } + }, + "0xdef1c0ded9bec7f1a1670819833240f027b25eff": { + "storage_read": [ + "0x3a1eae4d9599b151de37596bc1e301e7833e536acda254c41c5aab51deef773d" + ], + "code_usage": { + "read": "0xade271f13b55729be286859c01c54fcb04c2dde098fc3bc9901c35927ece786e" + } + }, + "0xf9b30557afcf76ea82c04015d80057fa2147dfa9": { + "code_usage": { + "read": "0xba01211d10b6119b0dd1f3d468ed31f2ab17f775869cc5d8a5d9d0254d910d01" + } + }, + "0x01b464bc83f09e13c0ab218692ad09f971d88608": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de700000029301f4b5b1183913ce699000000000002564189030550365b", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x3d9a8d8c1f088fecc8dc0dac0ae8", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x354688eb02ce6fc8135fa482c9163c365399d78" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + } + }, + "meta": { + "byte_code": "0x02f9019c010b830f42408507e81e7c948303294194def1c0ded9bec7f1a1670819833240f027b25eff8743a551ef12a131b90128d9627aa400000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000043a551ef12a131000000000000000000000000000000000000000000000481839176a90806771000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000f2dfdbe1ea71bbdcb5a4662a16dbf5e487be3ebe869584cd000000000000000000000000382ffce2287252f930e1c8dc9328dac5bf282ba100000000000000000000000000000000b757b6c588317f35efb46c81af066794c080a0f01ce818474d670bf24f4b849973ccdec8f9d66400f94a61a42f5abb577badc8a018f7d2ee7efce6c3f666717744832b3a5739cb896843eb6862bed28e2d89d667", + "new_txn_trie_node_byte": "0x02f9019c010b830f42408507e81e7c948303294194def1c0ded9bec7f1a1670819833240f027b25eff8743a551ef12a131b90128d9627aa400000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000043a551ef12a131000000000000000000000000000000000000000000000481839176a90806771000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000f2dfdbe1ea71bbdcb5a4662a16dbf5e487be3ebe869584cd000000000000000000000000382ffce2287252f930e1c8dc9328dac5bf282ba100000000000000000000000000000000b757b6c588317f35efb46c81af066794c080a0f01ce818474d670bf24f4b849973ccdec8f9d66400f94a61a42f5abb577badc8a018f7d2ee7efce6c3f666717744832b3a5739cb896843eb6862bed28e2d89d667", + "new_receipt_trie_node_byte": "0xb904db02f904d70183b3b360b9010000200000080000000000002080000000000000000000000000000000000000000000000010040000000001000000000002000000080000000002000000000000000000000000002000000008008000200000000000000000000000408000000000400000000000000000000000000040000000000000100000000110000000000000000000000000000000000000000000000401000000080000004000000000000000008000000000004000000000000000000008000000000000000000000000000002000000000000000000000000000000000000001000000000000000000000200000000000000000000000000000000000080000400000000000000000f903ccf87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa00000000000000000000000000000000000000000000000000043a551ef12a131f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa000000000000000000000000001b464bc83f09e13c0ab218692ad09f971d88608a00000000000000000000000000000000000000000000000000043a551ef12a131f89b94f2dfdbe1ea71bbdcb5a4662a16dbf5e487be3ebef863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000001b464bc83f09e13c0ab218692ad09f971d88608a0000000000000000000000000f2dfdbe1ea71bbdcb5a4662a16dbf5e487be3ebea000000000000000000000000000000000000000000000003b75a091fe28013b32f89b94f2dfdbe1ea71bbdcb5a4662a16dbf5e487be3ebef863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000001b464bc83f09e13c0ab218692ad09f971d88608a00000000000000000000000007ef5426ae9d85d9762950605fb18c13f063084afa0000000000000000000000000000000000000000000000469baead5dcf81764bcf8799401b464bc83f09e13c0ab218692ad09f971d88608e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b840000000000000000000000000000000000000000000000002564189030550365b00000000000000000000000000000000000000000029301f4b5b1183913ce699f8fc9401b464bc83f09e13c0ab218692ad09f971d88608f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa00000000000000000000000007ef5426ae9d85d9762950605fb18c13f063084afb8800000000000000000000000000000000000000000000000000043a551ef12a131000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a5308b67db20189fee", + "gas_used": 166542 + } + }, + { + "traces": { + "0xe3dbc4f88eaa632ddf9708732e2832eeaa6688ab": { + "storage_read": [ + "0xc79cb08ee33d3acd3897b598c590aef0f2e8705cc6eded550056c267a49b45a1", + "0x0f06ccaf7b8b7c6d14dbbb9f392dacc965f09b8b7d170718d217f1b598318693" + ], + "storage_written": { + "0xc79cb08ee33d3acd3897b598c590aef0f2e8705cc6eded550056c267a49b45a1": "0x53a868a9987b2bac4", + "0x0f06ccaf7b8b7c6d14dbbb9f392dacc965f09b8b7d170718d217f1b598318693": "0x4c2b95c6af1995fd" + }, + "code_usage": { + "read": "0xcd122f94d3d3227b3a26254bde2ab260b413a1b0945930785d0539ef0cfe1c44" + } + }, + "0x981912876dd950a9efb46d8cb06f0f4a80d501e3": { + "balance": "0x711499ea1a172ae", + "nonce": "0x26f" + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621c4581eae37b" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x29869504d564b581a1262", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0xd652d43b244baa4044b8376122fb82fe57b0e531cccc6795fa408c6cd6004afb" + ], + "storage_written": { + "0xd652d43b244baa4044b8376122fb82fe57b0e531cccc6795fa408c6cd6004afb": "0x9368bddb00b9cabb", + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xbefdaf0d0e12e72a71484d72425ff741174462d8": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x100000000000000000001761eb7b6438e916783a4000000a3a6aa8065cf5de7", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x100000100010000003bba000000000000000225df017ec008661c91155f36", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x18dc20a9759111886626ea62f896fcd8" + }, + "code_usage": { + "read": "0x6d419197049613d6f89fc21f68479fa907ba197fbcd2c45284b6a881151bfc56" + } + } + }, + "meta": { + "byte_code": "0x02f902fb0182026e830f42408508578a08788302cd4c943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad8810a741a462780000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf600f00000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000010a741a4627800000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000010a741a462780000000000000000000000000000000000000000000000000000473940702ff8433100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2002710e3dbc4f88eaa632ddf9708732e2832eeaa6688ab000000000000000000000000000000000000000000c080a0a4634bff155076bd6f81da4ce78920060cd80aac6933160e9fc394a7eeec1b9ca067d0d005b982dd77a83fb9a9914382ea30912c639fab8d92cd054087001ff592", + "new_txn_trie_node_byte": "0x02f902fb0182026e830f42408508578a08788302cd4c943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad8810a741a462780000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf600f00000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000010a741a4627800000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000010a741a462780000000000000000000000000000000000000000000000000000473940702ff8433100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2002710e3dbc4f88eaa632ddf9708732e2832eeaa6688ab000000000000000000000000000000000000000000c080a0a4634bff155076bd6f81da4ce78920060cd80aac6933160e9fc394a7eeec1b9ca067d0d005b982dd77a83fb9a9914382ea30912c639fab8d92cd054087001ff592", + "new_receipt_trie_node_byte": "0xb903e402f903e00183b5b401b9010000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082000000080020000000000000000000000000080000000800000008000020000000000000000000000000008020000000000000000000000000000000000000000000000000000001000010000800000000000000000000000000000000000100000001000000000000400000000000000000000000000000000000000020000000000000000400008800000000000000000002000000000000000000000000000000000000000000000040000000000000200000000000000000010000000000001000000000400000000000000000f902d5f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada000000000000000000000000000000000000000000000000010a741a462780000f89b94e3dbc4f88eaa632ddf9708732e2832eeaa6688abf863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000befdaf0d0e12e72a71484d72425ff741174462d8a0000000000000000000000000981912876dd950a9efb46d8cb06f0f4a80d501e3a00000000000000000000000000000000000000000000000004c2b95c6af1995fdf89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000befdaf0d0e12e72a71484d72425ff741174462d8a000000000000000000000000000000000000000000000000010a741a462780000f9011c94befdaf0d0e12e72a71484d72425ff741174462d8f863a0c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000981912876dd950a9efb46d8cb06f0f4a80d501e3b8a000000000000000000000000000000000000000000000000010a741a462780000ffffffffffffffffffffffffffffffffffffffffffffffffb3d46a3950e66a03000000000000000000000000000000000000000225df017ec008661c91155f36000000000000000000000000000000000000000000000063116f7e327336394a0000000000000000000000000000000000000000000000000000000000003bba", + "gas_used": 131233 + } + }, + { + "traces": { + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x29869509e1faf50a556c8", + "storage_read": [ + "0x73d637d229721ca538a0a2e9712eeef46a1889496c0a60f402b430eba28d4a2e", + "0x05f1bcad1cac8f3a5f43f7a4d5208465363879e07a09a7fb7b70b3f007d5b521" + ], + "storage_written": { + "0x05f1bcad1cac8f3a5f43f7a4d5208465363879e07a09a7fb7b70b3f007d5b521": "0x167366a305129093", + "0x73d637d229721ca538a0a2e9712eeef46a1889496c0a60f402b430eba28d4a2e": "0x1" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xf9b30557afcf76ea82c04015d80057fa2147dfa9": { + "code_usage": { + "read": "0xba01211d10b6119b0dd1f3d468ed31f2ab17f775869cc5d8a5d9d0254d910d01" + } + }, + "0xdef1c0ded9bec7f1a1670819833240f027b25eff": { + "storage_read": [ + "0x3a1eae4d9599b151de37596bc1e301e7833e536acda254c41c5aab51deef773d" + ], + "code_usage": { + "read": "0xade271f13b55729be286859c01c54fcb04c2dde098fc3bc9901c35927ece786e" + } + }, + "0xfa405a40d3fe345e3d5e460c8d9da39ac0fb13bd": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "storage_written": { + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x17848233d20fe8ee84eca4aba954747d06712c00", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x11262e359fa59a90d8bb84d7cfad3971", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de7000000000000167366a305129093000000000000000115208e60c82e" + }, + "code_usage": { + "read": "0xcd82e2d9daddbf51cbce8d5429a0996e16fc670c4056566f19cf8864ad45a746" + } + }, + "0x15d4c048f83bd7e37d49ea4c83a07267ec4203da": { + "storage_read": [ + "0x5555020648275abce1c8a0f5830a1279fa0ae19e4ef512d6daed9940355f24e9", + "0x19737cde1f4241724907735c339fe3c53d06f4a69ef9d8c3188de7750e81ff58" + ], + "storage_written": { + "0x19737cde1f4241724907735c339fe3c53d06f4a69ef9d8c3188de7750e81ff58": "0x3f064ecc332", + "0x5555020648275abce1c8a0f5830a1279fa0ae19e4ef512d6daed9940355f24e9": "0x115208e60c82e" + }, + "code_usage": { + "read": "0x7e4a48f55e261be53ac360e50c9fa14e911f4a2a6aba177fd1c235ac67b2a816" + } + }, + "0x68851dc324c17b41e9f7515aaf1b6e0b011e198c": { + "balance": "0x812181325d70b", + "nonce": "0x3" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621c61bef29a3b" + } + }, + "meta": { + "byte_code": "0x02f9019c0102830f42408508f61e05018302574b94def1c0ded9bec7f1a1670819833240f027b25eff8750c963f88b4466b90128d9627aa400000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000050c963f88b4466000000000000000000000000000000000000000000000000000003d22475050400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000015d4c048f83bd7e37d49ea4c83a07267ec4203da869584cd000000000000000000000000382ffce2287252f930e1c8dc9328dac5bf282ba100000000000000000000000000000000302a4f6ef1d1f22d422abd221ffa7c32c001a05dcdd5d0b758a1519b58ef9fdf4f588aed7ffec59caab1065a573503989ac143a04f533ac1568f24855e6e90b907c35467590007dcba0420d9f5751f1cdfe9b20b", + "new_txn_trie_node_byte": "0x02f9019c0102830f42408508f61e05018302574b94def1c0ded9bec7f1a1670819833240f027b25eff8750c963f88b4466b90128d9627aa400000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000050c963f88b4466000000000000000000000000000000000000000000000000000003d22475050400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000015d4c048f83bd7e37d49ea4c83a07267ec4203da869584cd000000000000000000000000382ffce2287252f930e1c8dc9328dac5bf282ba100000000000000000000000000000000302a4f6ef1d1f22d422abd221ffa7c32c001a05dcdd5d0b758a1519b58ef9fdf4f588aed7ffec59caab1065a573503989ac143a04f533ac1568f24855e6e90b907c35467590007dcba0420d9f5751f1cdfe9b20b", + "new_receipt_trie_node_byte": "0xb9043e02f9043a0183b78dc4b9010000200000000000000000000080000000000000000000000000000000000000004000000000000004000000000000000002000000080000000000000000000000000000000000002000000008400000200000000000000400000000008000100000000000000000002000000000000040000000000010000000000010000000000000000000000000000000000000000000000001000000080000004000000004000000000000000000004000000000000000040000000000000000000000000000000002000000000000000000000000000000000000001000000000000000000008200000000000000000000000000000000008000000400000000000000000f9032ff87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa00000000000000000000000000000000000000000000000000050c963f88b4466f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa0000000000000000000000000fa405a40d3fe345e3d5e460c8d9da39ac0fb13bda00000000000000000000000000000000000000000000000000050c963f88b4466f89b9415d4c048f83bd7e37d49ea4c83a07267ec4203daf863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000fa405a40d3fe345e3d5e460c8d9da39ac0fb13bda000000000000000000000000068851dc324c17b41e9f7515aaf1b6e0b011e198ca0000000000000000000000000000000000000000000000000000003f064ecc332f87994fa405a40d3fe345e3d5e460c8d9da39ac0fb13bde1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b840000000000000000000000000000000000000000000000000000115208e60c82e000000000000000000000000000000000000000000000000167366a305129093f8fc94fa405a40d3fe345e3d5e460c8d9da39ac0fb13bdf863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa000000000000000000000000068851dc324c17b41e9f7515aaf1b6e0b011e198cb88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050c963f88b4466000000000000000000000000000000000000000000000000000003f064ecc3320000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 121283 + } + }, + { + "traces": { + "0x424485f89ea52839fdb30640eb7dd7e0078e12fb": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de7000000000007809f7d25544d7dc600000000dbcfdd7b97597faf4d9e", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x76a752c5a15ef2a4df2a328a2da8cef7", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x47d12c408827cbd1804f735b6821e3bcb1261f", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x9ce9704b1993ff308f1815e0fd44b0dffee2d0dc": { + "storage_read": [ + "0x101ed5680b1cfc12bfd6f2c99ee49abcf5d75b12223f9040664d083b09f1c7d7", + "0xeb8c9b187fbbbd288ed19e2e86753757350a830172e7b655c53e0fb5c8e7a780", + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "code_usage": { + "read": "0xd625bad54988badda49c0752bf745bca1eeeaae34f18df9ac8cb351ba1e4d82e" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621c7e668d07fb" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x2986950cb124ee8d16920", + "storage_read": [ + "0x73d637d229721ca538a0a2e9712eeef46a1889496c0a60f402b430eba28d4a2e", + "0xaf9987888ab75f8cdc0eee179dff704e6c0a13b462f58aac23ab8eb77f3d71cd" + ], + "storage_written": { + "0xaf9987888ab75f8cdc0eee179dff704e6c0a13b462f58aac23ab8eb77f3d71cd": "0x7809f7d25544d7dc6", + "0x73d637d229721ca538a0a2e9712eeef46a1889496c0a60f402b430eba28d4a2e": "0x1" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xdef1c0ded9bec7f1a1670819833240f027b25eff": { + "storage_read": [ + "0x3a1eae4d9599b151de37596bc1e301e7833e536acda254c41c5aab51deef773d" + ], + "code_usage": { + "read": "0xade271f13b55729be286859c01c54fcb04c2dde098fc3bc9901c35927ece786e" + } + }, + "0x15c28beaa775163430652fd2e01b53662e1c8d12": { + "balance": "0xecf3290bc6e35", + "nonce": "0x87" + }, + "0x993864e43caa7f7f12953ad6feb1d1ca635b875f": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0xa6eabb9b2c010ec47045c52eb64682c8a09fe52a8605fef87ee312fa6817bde7", + "0x92705062a39dc672ebb6932f49c7b4e02929926bf16d7fb11cc5a744c5d16c3d", + "0x6e89d460fefb1c8f5b2b8f2e9609ee9a4ef3f9b7ff014be959a86fabed2b4af8", + "0x168fc6e90123551cfe0bec503826f0ea59a4e2ad068db9c1940a274fdcfd6dc3" + ], + "storage_written": { + "0xa6eabb9b2c010ec47045c52eb64682c8a09fe52a8605fef87ee312fa6817bde7": "0xdbcfdd7b97597faf4d9e", + "0x92705062a39dc672ebb6932f49c7b4e02929926bf16d7fb11cc5a744c5d16c3d": "0x3bf470fb196e766145" + }, + "code_usage": { + "read": "0xabe0aca2732d0c5cfc5c4dd9a992df7b0d324b2ca5b15e2506d5e8ae179f9726" + } + }, + "0xf9b30557afcf76ea82c04015d80057fa2147dfa9": { + "code_usage": { + "read": "0xba01211d10b6119b0dd1f3d468ed31f2ab17f775869cc5d8a5d9d0254d910d01" + } + } + }, + "meta": { + "byte_code": "0x02f9019d018186830f42408507b2f69ca083022aee94def1c0ded9bec7f1a1670819833240f027b25eff872cf29f982c1258b90128d9627aa40000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002cf29f982c1258000000000000000000000000000000000000000000000004f9b09f3789df4e0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000993864e43caa7f7f12953ad6feb1d1ca635b875f869584cd000000000000000000000000382ffce2287252f930e1c8dc9328dac5bf282ba10000000000000000000000000000000052036e4ae6fabc78511436e8f872aea3c080a08f392ad23ef0bfae7b04a0d163f0732a3a63a2895cdcafbc38d6f2fafb459420a0419c2c52026ea01df36021ff9fb5d838546bf7cc120f6b5963c060dde4e48d4a", + "new_txn_trie_node_byte": "0x02f9019d018186830f42408507b2f69ca083022aee94def1c0ded9bec7f1a1670819833240f027b25eff872cf29f982c1258b90128d9627aa40000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002cf29f982c1258000000000000000000000000000000000000000000000004f9b09f3789df4e0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000993864e43caa7f7f12953ad6feb1d1ca635b875f869584cd000000000000000000000000382ffce2287252f930e1c8dc9328dac5bf282ba10000000000000000000000000000000052036e4ae6fabc78511436e8f872aea3c080a08f392ad23ef0bfae7b04a0d163f0732a3a63a2895cdcafbc38d6f2fafb459420a0419c2c52026ea01df36021ff9fb5d838546bf7cc120f6b5963c060dde4e48d4a", + "new_receipt_trie_node_byte": "0xb9043e02f9043a0183b96e83b9010000a00000800000400000000080000000000000000000000000000000000000000000000000000000000000000000000002000000080000000000000000008000000000000000002000000008000000200000001000000000000000008000000000000000000000400000000000000040000000000000000000000010000000000000000000000000000000000000800000000001000000080000004000000000000000000000000000004000000000000000000000000000200000000000000000000002000000000000080000000001000000000000001000000000000000000000202000000000000000000000000000200000000000400000000000000000f9032ff87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa0000000000000000000000000000000000000000000000000002cf29f982c1258f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa0000000000000000000000000424485f89ea52839fdb30640eb7dd7e0078e12fba0000000000000000000000000000000000000000000000000002cf29f982c1258f89b94993864e43caa7f7f12953ad6feb1d1ca635b875ff863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000424485f89ea52839fdb30640eb7dd7e0078e12fba000000000000000000000000015c28beaa775163430652fd2e01b53662e1c8d12a000000000000000000000000000000000000000000000000521151843d01da241f87994424485f89ea52839fdb30640eb7dd7e0078e12fbe1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b84000000000000000000000000000000000000000000000dbcfdd7b97597faf4d9e000000000000000000000000000000000000000000000007809f7d25544d7dc6f8fc94424485f89ea52839fdb30640eb7dd7e0078e12fbf863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa000000000000000000000000015c28beaa775163430652fd2e01b53662e1c8d12b8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cf29f982c125800000000000000000000000000000000000000000000000521151843d01da2410000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 123071 + } + }, + { + "traces": { + "0xbef33b3831ca713f0c3eefdc39a843c918331276": { + "balance": "0x39dbf3d68e09d133", + "nonce": "0x72" + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0xb8a87405d9a4f2f866319b77004e88dff66c0d92": { + "storage_read": [ + "0x4d6ac0cf6eddcd8e360b17ad4de1df643f445388d63da90bc183cfce0c6c0a0c", + "0x798435d265bf30b6d8e1071876f0fafdb4c693ca2738f07087915235d16edaeb", + "0xe9df5837f3bcbb1790cb137a41af6668249cf34a286d7ed605320e67c6c23eb4", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0xf21cebc87207a45343dbb33a2512a7ff11e6222d87d2759dc5745a55f3df1144", + "0xc659b99e79fe0de30a460bd9c30c4e566718ff6cfdcd6379dd0e4e03da9bdc33", + "0x29f426a8dd822d19c8377a673ae9e12e5899a7b84c812eccce86c647c865795c", + "0xed56d85ad2932f03c939172e61770c8a9a13de494f168c82709d944b0aeff7db", + "0xb04ceb61f5c03b733b515e10ff854b0fc2e559ff6d9ba0459129639a17705c0a", + "0x27e9f812186791d033a8f9881ee8bf032f697cd280803eba6d746cdf852e1cec", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x000000000000000000000000000000000000000000000000000000000000001d", + "0x0000000000000000000000000000000000000000000000000000000000000005" + ], + "storage_written": { + "0xf21cebc87207a45343dbb33a2512a7ff11e6222d87d2759dc5745a55f3df1144": "0x12b4fde3b7500fdb4b44c8", + "0x4d6ac0cf6eddcd8e360b17ad4de1df643f445388d63da90bc183cfce0c6c0a0c": "0x1" + }, + "code_usage": { + "read": "0xa47998f0fcceee76c553f9f49703070078f39a295bd103fff52cd766c9b60168" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621ca2f4996e7b" + }, + "0x19c1f6c7468ad4076b05a5f79e3ee80ce0064718": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0xc0d1c00078410fd0164580b0bad93d8a579580d06cf45fc2696a823498097b8a", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x100000100010000fe0f5d00000000000000000071b90bdffc66493ceb95ab", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x23eddd87e20a550e2333d0dcdb0a1a" + }, + "code_usage": { + "read": "0x5218d91b409a649690db747c01aae184e43ffcab370003931ff590f24e0c6959" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "storage_read": [ + "0x5defccebecd74077aa0ce566544361c4953269120956a662e3572c4a19339eec", + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a" + ], + "storage_written": { + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0", + "0x5defccebecd74077aa0ce566544361c4953269120956a662e3572c4a19339eec": "0xf89db39c7ee7d68c" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + } + }, + "meta": { + "byte_code": "0x02f902f90171830f42408507b6e25a318303909d943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad880de0b6b3a7640000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf5ff700000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000045998a7a38e787d2c34200000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2002710b8a87405d9a4f2f866319b77004e88dff66c0d92000000000000000000000000000000000000000000c001a0d9809e76b0573ba77df58604dd82632cb3bb1cbef4452effe34085c4477266d7a06fffd2097d6b9d38dc57990935e17463eae5dd8925998d9876f5cf98764812ce", + "new_txn_trie_node_byte": "0x02f902f90171830f42408507b6e25a318303909d943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad880de0b6b3a7640000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf5ff700000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000045998a7a38e787d2c34200000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2002710b8a87405d9a4f2f866319b77004e88dff66c0d92000000000000000000000000000000000000000000c001a0d9809e76b0573ba77df58604dd82632cb3bb1cbef4452effe34085c4477266d7a06fffd2097d6b9d38dc57990935e17463eae5dd8925998d9876f5cf98764812ce", + "new_receipt_trie_node_byte": "0xb9010d02f901098083bbd3cdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 157002 + } + }, + { + "traces": { + "0xdd378a11475d588908001e0e99e4fd89abda5434": { + "balance": "0x2e44f1a0c41cb880", + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "code_usage": { + "read": "0x7a26ac13f3cf6a6a4db9c775414eb95ac876a0c2f352a76a841cac8d4eac61c1" + } + }, + "0x5aed5f8a1e3607476f1f81c3d8fe126deb0afe94": { + "code_usage": { + "read": "0x3aefeaef4785b95859e40dac3058e07b676f5ec099fa2a96923519fd62546b39" + } + }, + "0x8315177ab297ba92a06054ce80a67ed4dbd7ed3a": { + "balance": "0x13ca152b322b5dc30a13e", + "storage_read": [ + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x584291d70ad4dde9dd8406c3f9db0464c54b9f80d25403cf7e0305c918871ae9", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f3791484f" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000006": "0x153b12", + "0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f37914850": "0x20dab0205a20733f7a1d63e5a886a8d21c217cafdd1c68212b3fd41ea7690ca1" + }, + "code_usage": { + "read": "0x8736329b580cfc0c0c39ee6700515e0bc51652afb614640db9e34a5d784933e8" + } + }, + "0xb8901acb165ed027e32754e0ffe830802919727f": { + "balance": "0x25c670179d4c99fe926", + "storage_read": [ + "0xab166fbe919e459855231b333e9824b787e83b032e53a3455b5340add3afab97", + "0xa0d1224dfac40e9c90ad58c1cf011dbe362397ab2b0fa32c54cca8801b302fdd", + "0x8104522f08084ff3c7769672ea3b23868d65963f4b4e53dd7ed6fc4a8f2655aa" + ], + "storage_written": { + "0xa0d1224dfac40e9c90ad58c1cf011dbe362397ab2b0fa32c54cca8801b302fdd": "0xd3e3fd5ed3bd485fd8" + }, + "code_usage": { + "read": "0x2d8029dddbfdf4e660665c11c506c1ebad57ffdd728851981a16cc5896ff2338" + } + }, + "0x1c7be164799949f48d12a233c8b726ab20c942af": { + "balance": "0x7ad0fa45a4c30", + "nonce": "0x6" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621cc5918b87fb" + }, + "0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f": { + "storage_read": [ + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x0000000000000000000000000000000000000000000000000000000000000033", + "0x0000000000000000000000000000000000000000000000000000000000000066", + "0x0000000000000000000000000000000000000000000000000000000000000065" + ], + "code_usage": { + "read": "0x685718cbe6f1ee62236ffbab640612cebc70c6cc69a54aacb83d0790d42e247a" + } + }, + "0x1066cecc8880948fe55e427e94f1ff221d626591": { + "code_usage": { + "read": "0x1470cf03fa245a37933022951ff43a2e5f33f914bbcef091f8b8db92fc23edb5" + } + }, + "0x2197a1d9af24b4d6a64bff95b4c29fcd3ff28c30": { + "code_usage": { + "read": "0x0aaf7f1bd4e74c14cb114e9cbc17b65cd3bc8e7730dc04a61733b978ea8bbd0c" + } + }, + "0x3a23f943181408eac424116af7b7790c94cb97a5": { + "code_usage": { + "read": "0x6700acf5ccb383cb2cff102ba577f0bce216a5898e28adbdbbb5665916a65b49" + } + } + }, + "meta": { + "byte_code": "0x02f9019c0105830f424085082c3e42b4830269a3943a23f943181408eac424116af7b7790c94cb97a58707f1536e8e200ab9012800000014d025dec00000000000000000000000001c7be164799949f48d12a233c8b726ab20c942af000000000000000000000000b8901acb165ed027e32754e0ffe830802919727f000000000000000000000000710bda329b2a6224e4b44833de30f38e7f81d564000000000000000000000000000000000000000000000000000000000000a4b10000000000000000000000000000000000000000000000000007f1536e8e200a0000000000000000000000000000000000000000000000000007e728c65288d60000000000000000000000000000000000000000000000000000763bfbd220000000000000000000000000000000000000000000000000000000018dd612bd1400000000000000000000000000000000000000000000000000000000000008f1c080a0cbf6e7ce4087d9442982d34fdbabcbb8a9a65c6a60f560855fa543c87b181e1fa0313a2a767986d4a62775df45c7102c637f63516948c037d6d524acadb4796bfa", + "new_txn_trie_node_byte": "0x02f9019c0105830f424085082c3e42b4830269a3943a23f943181408eac424116af7b7790c94cb97a58707f1536e8e200ab9012800000014d025dec00000000000000000000000001c7be164799949f48d12a233c8b726ab20c942af000000000000000000000000b8901acb165ed027e32754e0ffe830802919727f000000000000000000000000710bda329b2a6224e4b44833de30f38e7f81d564000000000000000000000000000000000000000000000000000000000000a4b10000000000000000000000000000000000000000000000000007f1536e8e200a0000000000000000000000000000000000000000000000000007e728c65288d60000000000000000000000000000000000000000000000000000763bfbd220000000000000000000000000000000000000000000000000000000018dd612bd1400000000000000000000000000000000000000000000000000000000000008f1c080a0cbf6e7ce4087d9442982d34fdbabcbb8a9a65c6a60f560855fa543c87b181e1fa0313a2a767986d4a62775df45c7102c637f63516948c037d6d524acadb4796bfa", + "new_receipt_trie_node_byte": "0xb9072902f907250183be1883b9010000000000000000000000000000000000100000000000000000000000400000000000000000000010000000000000004000000000120000000400000000000000000000000000000000000000800000000001000000000000018000000000002000000000000000000004000000000002000000000000000000000000080000001000000000000000000000000000000000000001020000000000000000000000140004020000020000000000000000000040800200200000000000000001000000000000000000010000000000008000000000000000004000001000082000000000000000000000000000200000100000000000000000000000000020004000f9061af9013c948315177ab297ba92a06054ce80a67ed4dbd7ed3af863a05e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1a00000000000000000000000000000000000000000000000000000000000153b11a02c1b194cd6861b70a6871eb4c6decec2534af22be010a81c2ae31191a6d12b33b8c00000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f0000000000000000000000000000000000000000000000000000000000000009000000000000000000000000ee488a11475d588908001e0e99e4fd89abda65453bdf4d15e69ad090c50324f1761db67d9a9d1bb497e1157de3346a60b6feaba8000000000000000000000000000000000000000000000000000000071ec5cf550000000000000000000000000000000000000000000000000000000065cf5de7f9029c944dbd4fc535ac27206064b68ffcf827b0a60bab3ff842a0ff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60ba00000000000000000000000000000000000000000000000000000000000153b11b90240000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001e40000000000000000000000003749c4f034022c39ecaffaba182555d4508caccc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047a5a6764750000000000000000000000000000000000000000000000000000047a5a6764750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c4cc29a3060000000000000000000000001c7be164799949f48d12a233c8b726ab20c942af0000000000000000000000000000000000000000000000000007f1536e8e200a0000000000000000000000000000000000000000000000000007e728c65288d60000000000000000000000000000000000000000000000000000018dd612bd14000000000000000000000000710bda329b2a6224e4b44833de30f38e7f81d5640000000000000000000000000000000000000000000000000000763bfbd2200000000000000000000000000000000000000000000000000000000000f9011d94b8901acb165ed027e32754e0ffe830802919727ff884a00a0607688c86ec1775abcdbab7b33a3a35a6c9cde677c9be880150c231cc6b0ba0000000000000000000000000000000000000000000000000000000000000a4b1a00000000000000000000000001c7be164799949f48d12a233c8b726ab20c942afa0000000000000000000000000710bda329b2a6224e4b44833de30f38e7f81d564b8800000000000000000000000000000000000000000000000000007f1536e8e200a0000000000000000000000000000000000000000000000000007e728c65288d60000000000000000000000000000000000000000000000000000018dd612bd140000000000000000000000000000000000000000000000000000763bfbd22000f90119943a23f943181408eac424116af7b7790c94cb97a5e1a074594da9e31ee4068e17809037db37db496702bf7d8d63afe6f97949277d1609b8e00000000000000000000000000000000000000000000000000007f1536e8e200a000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000000000000000a4b1837ed841e30438f54fb6b0097c30a5c4f64b47545c3df655bcd6e44bb8991e370000000000000000000000001c7be164799949f48d12a233c8b726ab20c942af0000000000000000000000001c7be164799949f48d12a233c8b726ab20c942af00000000000000000000000000000000000000000000000000000000000008f1", + "gas_used": 148662 + } + }, + { + "traces": { + "0x197d7010147df7b99e9025c724f13723b29313f8": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x2299bcdd7343ddaa33b249efc55a2c29ad73c", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x4481dd5f120f23e798b2e2bc74dcee54", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de7000000000021b83c80c5634e08f700000000000004cd337528ea387c", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0xdef1c0ded9bec7f1a1670819833240f027b25eff": { + "storage_read": [ + "0x3a1eae4d9599b151de37596bc1e301e7833e536acda254c41c5aab51deef773d" + ], + "code_usage": { + "read": "0xade271f13b55729be286859c01c54fcb04c2dde098fc3bc9901c35927ece786e" + } + }, + "0xe375eb827d962ab869abf788f7a759854a387d3d": { + "balance": "0x74ae627809e63", + "nonce": "0x7f" + }, + "0xa41d2f8ee4f47d3b860a149765a7df8c3287b7f0": { + "storage_read": [ + "0xcf3d72b1e3de507af80aae52d4930580146cc123196d051651dabd181f40addf", + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x5da21ecfcd20a180d0ae0c5a2f5f3e089bb1656e07576ade5ecf61a05d974fe5", + "0x8a2c87bf350bbb0ec4379efcb9ee4814f22db5cba1ca25520ad6307609fe371e", + "0x3717ce676931f4a804505838782548ad13ced1e354d632a62107c439c9acb425", + "0x85da35c591077863ca55a0743e786481618b2e7693e7765a07c889eb59aa47f3", + "0x3df9a6107b82a573404f0bd064b86b0d55efbde2c23292ff9274c2283be7483f" + ], + "storage_written": { + "0x5da21ecfcd20a180d0ae0c5a2f5f3e089bb1656e07576ade5ecf61a05d974fe5": "0x4cd337528ea387c", + "0x8a2c87bf350bbb0ec4379efcb9ee4814f22db5cba1ca25520ad6307609fe371e": "0xc12212fd15a" + }, + "code_usage": { + "read": "0x7a250837efb8ba321dbf0a39fd7487dc7ad15502a33e215ec4184a76ad61f148" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621ce447b21a3b" + }, + "0xf9b30557afcf76ea82c04015d80057fa2147dfa9": { + "code_usage": { + "read": "0xba01211d10b6119b0dd1f3d468ed31f2ab17f775869cc5d8a5d9d0254d910d01" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x29869512017a344c3c20d", + "storage_read": [ + "0x17d738cfa336cb1ea00d27d574da37f4f6fe98967feba61fbd6e5b55a273a1b5", + "0x73d637d229721ca538a0a2e9712eeef46a1889496c0a60f402b430eba28d4a2e" + ], + "storage_written": { + "0x17d738cfa336cb1ea00d27d574da37f4f6fe98967feba61fbd6e5b55a273a1b5": "0x21b83c80c5634e08f7", + "0x73d637d229721ca538a0a2e9712eeef46a1889496c0a60f402b430eba28d4a2e": "0x1" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + } + }, + "meta": { + "byte_code": "0x02f9019c017e830f42408507bcbf4b558302889294def1c0ded9bec7f1a1670819833240f027b25eff875505545bf258edb90128d9627aa40000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000005505545bf258ed00000000000000000000000000000000000000000000000000000bb56cfdbe4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000a41d2f8ee4f47d3b860a149765a7df8c3287b7f0869584cd000000000000000000000000382ffce2287252f930e1c8dc9328dac5bf282ba100000000000000000000000000000000d074c91c5c67d4ecc34e2f8c466da451c001a0f492039fb425f20347749f8aaba310d80b84b022041bd16bdf20a62ea52557c5a07ad3a82b6a698b43d9561522cc3049ee8f6214c4866699967f2e220670d84828", + "new_txn_trie_node_byte": "0x02f9019c017e830f42408507bcbf4b558302889294def1c0ded9bec7f1a1670819833240f027b25eff875505545bf258edb90128d9627aa40000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000005505545bf258ed00000000000000000000000000000000000000000000000000000bb56cfdbe4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000a41d2f8ee4f47d3b860a149765a7df8c3287b7f0869584cd000000000000000000000000382ffce2287252f930e1c8dc9328dac5bf282ba100000000000000000000000000000000d074c91c5c67d4ecc34e2f8c466da451c001a0f492039fb425f20347749f8aaba310d80b84b022041bd16bdf20a62ea52557c5a07ad3a82b6a698b43d9561522cc3049ee8f6214c4866699967f2e220670d84828", + "new_receipt_trie_node_byte": "0xb9043e02f9043a0183c01bc4b9010040200000000000000200000080000000000000000000000000000000000000000000000000000000000000000000000002000000080000000000000400000000000000000000002000000008000000200020000000000000000000008000000000000000000000000000000000002040000000000000000000000010000000000000000000000000000000000000000000200001000000080000004080000000000000000000000000004000000000000010000000000000000000000000000000000002000000000000000000000000000000000400001000000000000418000000200000000000000000000000000000000000000000400000000000000000f9032ff87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa0000000000000000000000000000000000000000000000000005505545bf258edf89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa0000000000000000000000000197d7010147df7b99e9025c724f13723b29313f8a0000000000000000000000000000000000000000000000000005505545bf258edf89b94a41d2f8ee4f47d3b860a149765a7df8c3287b7f0f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000197d7010147df7b99e9025c724f13723b29313f8a0000000000000000000000000e375eb827d962ab869abf788f7a759854a387d3da000000000000000000000000000000000000000000000000000000c12212fd15af87994197d7010147df7b99e9025c724f13723b29313f8e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b84000000000000000000000000000000000000000000000000004cd337528ea387c000000000000000000000000000000000000000000000021b83c80c5634e08f7f8fc94197d7010147df7b99e9025c724f13723b29313f8f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa0000000000000000000000000e375eb827d962ab869abf788f7a759854a387d3db8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005505545bf258ed00000000000000000000000000000000000000000000000000000c12212fd15a0000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 131905 + } + }, + { + "traces": { + "0xf9b30557afcf76ea82c04015d80057fa2147dfa9": { + "code_usage": { + "read": "0xba01211d10b6119b0dd1f3d468ed31f2ab17f775869cc5d8a5d9d0254d910d01" + } + }, + "0xa41d2f8ee4f47d3b860a149765a7df8c3287b7f0": { + "storage_read": [ + "0x5da21ecfcd20a180d0ae0c5a2f5f3e089bb1656e07576ade5ecf61a05d974fe5", + "0xaf4f30b3a106144060deb1753025ef9e600b48a1ef00b5fd200f42b8a7950c86", + "0x3717ce676931f4a804505838782548ad13ced1e354d632a62107c439c9acb425", + "0xad0e8efb320216aefbb314426b35fe60203e1ebd1517de06e9e11ffa98164b4d", + "0xd8a2f49ce1849d8ca66a7d8d7146b8c6e45a4575214f14226ea8217b9e98937e", + "0xcf3d72b1e3de507af80aae52d4930580146cc123196d051651dabd181f40addf", + "0x000000000000000000000000000000000000000000000000000000000000000d" + ], + "storage_written": { + "0xaf4f30b3a106144060deb1753025ef9e600b48a1ef00b5fd200f42b8a7950c86": "0x93da5f0f1b2", + "0x5da21ecfcd20a180d0ae0c5a2f5f3e089bb1656e07576ade5ecf61a05d974fe5": "0x4cd2a3782f946ca" + }, + "code_usage": { + "read": "0x7a250837efb8ba321dbf0a39fd7487dc7ad15502a33e215ec4184a76ad61f148" + } + }, + "0x194a2230a51ca7f433e64d48b968313347497fb3": { + "balance": "0x884f26836d9e4", + "nonce": "0x3" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x2986951612f366351deff", + "storage_read": [ + "0x73d637d229721ca538a0a2e9712eeef46a1889496c0a60f402b430eba28d4a2e", + "0x17d738cfa336cb1ea00d27d574da37f4f6fe98967feba61fbd6e5b55a273a1b5" + ], + "storage_written": { + "0x73d637d229721ca538a0a2e9712eeef46a1889496c0a60f402b430eba28d4a2e": "0x1", + "0x17d738cfa336cb1ea00d27d574da37f4f6fe98967feba61fbd6e5b55a273a1b5": "0x21b87d985881dc25e9" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xdef1c0ded9bec7f1a1670819833240f027b25eff": { + "storage_read": [ + "0x3a1eae4d9599b151de37596bc1e301e7833e536acda254c41c5aab51deef773d" + ], + "code_usage": { + "read": "0xade271f13b55729be286859c01c54fcb04c2dde098fc3bc9901c35927ece786e" + } + }, + "0x197d7010147df7b99e9025c724f13723b29313f8": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006" + ], + "storage_written": { + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de7000000000021b87d985881dc25e900000000000004cd2a3782f946ca" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621d009101207b" + } + }, + "meta": { + "byte_code": "0x02f9019c0102830f42408507fc0225c68302889294def1c0ded9bec7f1a1670819833240f027b25eff874117931e8e1cf2b90128d9627aa40000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000004117931e8e1cf2000000000000000000000000000000000000000000000000000008f6dae610d200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000a41d2f8ee4f47d3b860a149765a7df8c3287b7f0869584cd000000000000000000000000382ffce2287252f930e1c8dc9328dac5bf282ba100000000000000000000000000000000463308153dd26178b21043304cdb750ec001a0b509866f6f3a541fe3a1d9dabd930a5bfa6a1c53f7612fda00b4b8e7290e398fa01e2fe02c1d8defc2b80cadd5372c5a2062f0b2bdd9cdc20fa29cb694d379109f", + "new_txn_trie_node_byte": "0x02f9019c0102830f42408507fc0225c68302889294def1c0ded9bec7f1a1670819833240f027b25eff874117931e8e1cf2b90128d9627aa40000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000004117931e8e1cf2000000000000000000000000000000000000000000000000000008f6dae610d200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000a41d2f8ee4f47d3b860a149765a7df8c3287b7f0869584cd000000000000000000000000382ffce2287252f930e1c8dc9328dac5bf282ba100000000000000000000000000000000463308153dd26178b21043304cdb750ec001a0b509866f6f3a541fe3a1d9dabd930a5bfa6a1c53f7612fda00b4b8e7290e398fa01e2fe02c1d8defc2b80cadd5372c5a2062f0b2bdd9cdc20fa29cb694d379109f", + "new_receipt_trie_node_byte": "0xb9043e02f9043a0183c1f655b9010040200000000000000200000080000000000000000000000000000000000000000000000000000000000000000000000002000000080000000000000000000000000000000000002000000008000000200020000000000000000000008000000000000000000000000000000000002040000000008000000000000010000000000000000000000000000000000000000000200001000000080000004000000000000000000000000000004000000000000010000000000000000000000000000000000002000000000000000000000000000000000400001000000000000018000000200000000100000000000000000000000000000000400000008000000000f9032ff87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa0000000000000000000000000000000000000000000000000004117931e8e1cf2f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa0000000000000000000000000197d7010147df7b99e9025c724f13723b29313f8a0000000000000000000000000000000000000000000000000004117931e8e1cf2f89b94a41d2f8ee4f47d3b860a149765a7df8c3287b7f0f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000197d7010147df7b99e9025c724f13723b29313f8a0000000000000000000000000194a2230a51ca7f433e64d48b968313347497fb3a00000000000000000000000000000000000000000000000000000093da5f0f1b2f87994197d7010147df7b99e9025c724f13723b29313f8e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b84000000000000000000000000000000000000000000000000004cd2a3782f946ca000000000000000000000000000000000000000000000021b87d985881dc25e9f8fc94197d7010147df7b99e9025c724f13723b29313f8f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa0000000000000000000000000194a2230a51ca7f433e64d48b968313347497fb3b8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004117931e8e1cf20000000000000000000000000000000000000000000000000000093da5f0f1b20000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 121489 + } + }, + { + "traces": { + "0x197d7010147df7b99e9025c724f13723b29313f8": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007" + ], + "storage_written": { + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de7000000000021b8b3608ec07511ef00000000000004cd2295025e0f2e" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298695196f76ca1eacb05", + "storage_read": [ + "0x17d738cfa336cb1ea00d27d574da37f4f6fe98967feba61fbd6e5b55a273a1b5", + "0x73d637d229721ca538a0a2e9712eeef46a1889496c0a60f402b430eba28d4a2e" + ], + "storage_written": { + "0x73d637d229721ca538a0a2e9712eeef46a1889496c0a60f402b430eba28d4a2e": "0x1", + "0x17d738cfa336cb1ea00d27d574da37f4f6fe98967feba61fbd6e5b55a273a1b5": "0x21b8b3608ec07511ef" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621d18df12dbbb" + }, + "0xdef1c0ded9bec7f1a1670819833240f027b25eff": { + "storage_read": [ + "0x3a1eae4d9599b151de37596bc1e301e7833e536acda254c41c5aab51deef773d" + ], + "code_usage": { + "read": "0xade271f13b55729be286859c01c54fcb04c2dde098fc3bc9901c35927ece786e" + } + }, + "0xf9b30557afcf76ea82c04015d80057fa2147dfa9": { + "code_usage": { + "read": "0xba01211d10b6119b0dd1f3d468ed31f2ab17f775869cc5d8a5d9d0254d910d01" + } + }, + "0xa41d2f8ee4f47d3b860a149765a7df8c3287b7f0": { + "storage_read": [ + "0x3717ce676931f4a804505838782548ad13ced1e354d632a62107c439c9acb425", + "0x7c18a9fa3f5a3150e4d9b1d6ecb242beea619bd3f5862ef7e867886d5c175e31", + "0x404f157c1f81c1859d597e51ee14663d7b1589cb73ece3590afd6d54d063d1d9", + "0xcf3d72b1e3de507af80aae52d4930580146cc123196d051651dabd181f40addf", + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x5da21ecfcd20a180d0ae0c5a2f5f3e089bb1656e07576ade5ecf61a05d974fe5", + "0x743244747aa7674d7f8943b8e72c8b989e0d8e59efc136d02bfff15a7fe56d09" + ], + "storage_written": { + "0x743244747aa7674d7f8943b8e72c8b989e0d8e59efc136d02bfff15a7fe56d09": "0xb9b5bdc80f0", + "0x5da21ecfcd20a180d0ae0c5a2f5f3e089bb1656e07576ade5ecf61a05d974fe5": "0x4cd2295025e0f2e" + }, + "code_usage": { + "read": "0x7a250837efb8ba321dbf0a39fd7487dc7ad15502a33e215ec4184a76ad61f148" + } + }, + "0x87344e617317ef00ab934c8f3d32f08b15ba4a86": { + "balance": "0xc069139b94d7a", + "nonce": "0xd8" + } + }, + "meta": { + "byte_code": "0x02f9019d0181d7830f42408507f97c607e830234d494def1c0ded9bec7f1a1670819833240f027b25eff8735c8363e98ec06b90128d9627aa400000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000035c8363e98ec06000000000000000000000000000000000000000000000000000007681fdee6ef00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000a41d2f8ee4f47d3b860a149765a7df8c3287b7f0869584cd000000000000000000000000382ffce2287252f930e1c8dc9328dac5bf282ba100000000000000000000000000000000b338711f4352ca2f74b17dfc0aee584ec001a081125cbf5a012ed470ab95418cebac264ca50fad620e29c468459f6d29bd0bf5a004e916afe998d5fcd3b8340190802bbe648326b5f333a8f93aabf3a0fc0d6748", + "new_txn_trie_node_byte": "0x02f9019d0181d7830f42408507f97c607e830234d494def1c0ded9bec7f1a1670819833240f027b25eff8735c8363e98ec06b90128d9627aa400000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000035c8363e98ec06000000000000000000000000000000000000000000000000000007681fdee6ef00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000a41d2f8ee4f47d3b860a149765a7df8c3287b7f0869584cd000000000000000000000000382ffce2287252f930e1c8dc9328dac5bf282ba100000000000000000000000000000000b338711f4352ca2f74b17dfc0aee584ec001a081125cbf5a012ed470ab95418cebac264ca50fad620e29c468459f6d29bd0bf5a004e916afe998d5fcd3b8340190802bbe648326b5f333a8f93aabf3a0fc0d6748", + "new_receipt_trie_node_byte": "0xb9043e02f9043a0183c38e1ab9010040200000000000000200000080000000000000000000000000000000000000000000000000000000000000000000000002000000080000000000000000000000000000000000002000000008000000200020080000000000000000008000000000000000000000000000000000002040000000000000000000000010000000000000000000000000000000000000000000200001000000080000004000000000000000000000000000004000000000000010000000000000000000000000000000000002000000000000000000000000000000000400001000000000000018400000200000000000000000200000000000000000000000400000000000000000f9032ff87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa00000000000000000000000000000000000000000000000000035c8363e98ec06f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa0000000000000000000000000197d7010147df7b99e9025c724f13723b29313f8a00000000000000000000000000000000000000000000000000035c8363e98ec06f89b94a41d2f8ee4f47d3b860a149765a7df8c3287b7f0f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000197d7010147df7b99e9025c724f13723b29313f8a000000000000000000000000087344e617317ef00ab934c8f3d32f08b15ba4a86a0000000000000000000000000000000000000000000000000000007a2809b379cf87994197d7010147df7b99e9025c724f13723b29313f8e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b84000000000000000000000000000000000000000000000000004cd2295025e0f2e000000000000000000000000000000000000000000000021b8b3608ec07511eff8fc94197d7010147df7b99e9025c724f13723b29313f8f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa000000000000000000000000087344e617317ef00ab934c8f3d32f08b15ba4a86b88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035c8363e98ec06000000000000000000000000000000000000000000000000000007a2809b379c0000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 104389 + } + }, + { + "traces": { + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x39e5a268ed4c9616d35f301dd0d433811334e7dcc7ad12e0cd0760b061b18ead", + "0xf37257aa70ba5a940068ea4bd56bc4e270b1d0d2743c465883538dcc1bcc2af9", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x173d71948b799b7063ab7f48523dec14e446d48639b7bdf62a67162bdb61dd0b", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "storage_written": { + "0xf37257aa70ba5a940068ea4bd56bc4e270b1d0d2743c465883538dcc1bcc2af9": "0x59682f00", + "0x39e5a268ed4c9616d35f301dd0d433811334e7dcc7ad12e0cd0760b061b18ead": "0x1443fd00" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0xfccc40e634ad4aa86cc1b77288da43685725bb99": { + "balance": "0x2e192247451b54", + "nonce": "0x9" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621d239aab41fb" + } + }, + "meta": { + "byte_code": "0x02f8b00108830f424085088f049ec283010e1994dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000084de2542d1866f607f561bf5e3601384483f8602000000000000000000000000000000000000000000000000000000001dcd6500c080a0fe987557cae1af94fb265f9ff7619fae356ad4a56918e690458144b5cac29795a05e62c8aa0a2b5e7eccc6cb29c783e129bf7b83be803114dea1a231181ad6eebd", + "new_txn_trie_node_byte": "0x02f8b00108830f424085088f049ec283010e1994dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000084de2542d1866f607f561bf5e3601384483f8602000000000000000000000000000000000000000000000000000000001dcd6500c080a0fe987557cae1af94fb265f9ff7619fae356ad4a56918e690458144b5cac29795a05e62c8aa0a2b5e7eccc6cb29c783e129bf7b83be803114dea1a231181ad6eebd", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183c4422bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000040000000000000000000000000000000000000000000008000004000000000000000000000100000000000000000000000000000000000000000000000400000000000000000010000000000000000000100000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000fccc40e634ad4aa86cc1b77288da43685725bb99a000000000000000000000000084de2542d1866f607f561bf5e3601384483f8602a0000000000000000000000000000000000000000000000000000000001dcd6500", + "gas_used": 46097 + } + }, + { + "traces": { + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x336e9581f41ff6c503cd1a7099a06fa8aa0912be21f6ff64d22e6a969f6c90cf", + "0x34142f1479680251c7a332a106ecbb97f0412b57b917ef2a8032674c2086e1c4", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x552d6107fec55c8d8308ed955f897fb010118dbe601553de91cee468ad000e71", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003" + ], + "storage_written": { + "0x336e9581f41ff6c503cd1a7099a06fa8aa0912be21f6ff64d22e6a969f6c90cf": "0x39a157780", + "0x34142f1479680251c7a332a106ecbb97f0412b57b917ef2a8032674c2086e1c4": "0x3b9aca00" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621d2e56fac33b" + }, + "0x929c84df7c017583ece946f5741e570c78e153ae": { + "balance": "0x3296ce18ee0533", + "nonce": "0xee" + } + }, + "meta": { + "byte_code": "0x02f8b10181ed830f424085088f049ec283010e2b94dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000009a0c41f69d7301b1b06f1166ba6914b123561b2b000000000000000000000000000000000000000000000000000000003b023380c080a0718f31045d6873bfd1ac50f51a599816c07b918e8df42bf86049b950092b02c5a05068a688ee4e924ec718bb451167b7f9b500dfbeb80888b59a9a73f3e17892c9", + "new_txn_trie_node_byte": "0x02f8b10181ed830f424085088f049ec283010e2b94dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000009a0c41f69d7301b1b06f1166ba6914b123561b2b000000000000000000000000000000000000000000000000000000003b023380c080a0718f31045d6873bfd1ac50f51a599816c07b918e8df42bf86049b950092b02c5a05068a688ee4e924ec718bb451167b7f9b500dfbeb80888b59a9a73f3e17892c9", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183c4f648b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000010000000000000000000004000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000001000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000020000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000929c84df7c017583ece946f5741e570c78e153aea00000000000000000000000009a0c41f69d7301b1b06f1166ba6914b123561b2ba0000000000000000000000000000000000000000000000000000000003b023380", + "gas_used": 46109 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621d36e33eaf7b" + }, + "0x6cc8dcbca746a6e4fdefb98e1d0df903b107fd21": { + "balance": "0x135428cc3a410768e9", + "nonce": "0x6f4a7" + }, + "0x4cff49d0a19ed6ff845a9122fa912abcfb1f68a6": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0xbc244d56219e6a2bf2726bbe3fc38fb8d52bd7704e40b2ec2cc5f5d50ffe7139", + "0x8f7e37635f5e3bfe4e646b7407d60e10b47d26ae4f01287216c88e18689d4e93" + ], + "storage_written": { + "0xbc244d56219e6a2bf2726bbe3fc38fb8d52bd7704e40b2ec2cc5f5d50ffe7139": "0x3854b4d06446fc18954c9", + "0x8f7e37635f5e3bfe4e646b7407d60e10b47d26ae4f01287216c88e18689d4e93": "0x1126f35390486fa20000" + }, + "code_usage": { + "read": "0xaf261a0a1353d5889d14e79e858eb137bc7b1376b7c7c219c2851798cd49d02d" + } + } + }, + "meta": { + "byte_code": "0x02f8b3018306f4a6830f4240850e43a831c4830134e5944cff49d0a19ed6ff845a9122fa912abcfb1f68a680b844a9059cbb00000000000000000000000095346b9c25553345c87a4f564f75cbb9e82f2e6b0000000000000000000000000000000000000000000004dce520a022cfea0000c001a0e98a4bfa58657880528d18cab7a25055985f42f9aaa05810a893875199b8a749a032dcc8e9124e083cf5dd9c7efb6786987e209a56ac23564a8232adfe14aabddb", + "new_txn_trie_node_byte": "0x02f8b3018306f4a6830f4240850e43a831c4830134e5944cff49d0a19ed6ff845a9122fa912abcfb1f68a680b844a9059cbb00000000000000000000000095346b9c25553345c87a4f564f75cbb9e82f2e6b0000000000000000000000000000000000000000000004dce520a022cfea0000c001a0e98a4bfa58657880528d18cab7a25055985f42f9aaa05810a893875199b8a749a032dcc8e9124e083cf5dd9c7efb6786987e209a56ac23564a8232adfe14aabddb", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183c585b1b9010000000000000000000000000000400000000000000000000200000000000000000000000000000000000000000000000000000000000000000020020000000000000000000000000000000008000000000004000000000000000000000000000100000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000002000000000000000000200000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b944cff49d0a19ed6ff845a9122fa912abcfb1f68a6f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000006cc8dcbca746a6e4fdefb98e1d0df903b107fd21a000000000000000000000000095346b9c25553345c87a4f564f75cbb9e82f2e6ba00000000000000000000000000000000000000000000004dce520a022cfea0000", + "gas_used": 36713 + } + }, + { + "traces": { + "0xcbd6832ebc203e49e2b771897067fce3c58575ac": { + "balance": "0x29a3e1eef52a6ffbea", + "nonce": "0x9af42" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621d3bc6f1417b" + }, + "0xe1e8ccbc1353adc20f5cd360bbff96f1f7256b17": { + "balance": "0x8199be2b5f28ef2" + } + }, + "meta": { + "byte_code": "0x02f876018309af41830f4240850ed16354b683015f9094e1e8ccbc1353adc20f5cd360bbff96f1f7256b178805d8506e5746700080c080a090aea3c20fa3c2cf59c49ed1fa807852ecd9d3a68476716c7773c9864c20fb49a05dec0e9cda79d585432e13052c27a317b82ff01cec213d40388f426480f97a27", + "new_txn_trie_node_byte": "0x02f876018309af41830f4240850ed16354b683015f9094e1e8ccbc1353adc20f5cd360bbff96f1f7256b178805d8506e5746700080c080a090aea3c20fa3c2cf59c49ed1fa807852ecd9d3a68476716c7773c9864c20fb49a05dec0e9cda79d585432e13052c27a317b82ff01cec213d40388f426480f97a27", + "new_receipt_trie_node_byte": "0xb9010d02f901090183c5d7b9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x281c1e1337e1a5f9e05b7d7bd6ae59b5311fe030": { + "balance": "0x54670d5321dc789", + "nonce": "0x183" + }, + "0xbffc39c1b8f018ff7ee7a63987f0b46f329e105a": { + "balance": "0x562bd4e667e4d00" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621d40aaa3d37b" + } + }, + "meta": { + "byte_code": "0x02f87401820182830f424085088f049ec282520894bffc39c1b8f018ff7ee7a63987f0b46f329e105a880214e8348c4f000080c080a0ef6c14a0f383e825b24806c35b8383f4130ebb2ab37a1c0bbec0c4c84fcb4260a012378c753e7f9203a0e8e33abd96ee11d0a07ebede10deee92098bb257f01fd4", + "new_txn_trie_node_byte": "0x02f87401820182830f424085088f049ec282520894bffc39c1b8f018ff7ee7a63987f0b46f329e105a880214e8348c4f000080c080a0ef6c14a0f383e825b24806c35b8383f4130ebb2ab37a1c0bbec0c4c84fcb4260a012378c753e7f9203a0e8e33abd96ee11d0a07ebede10deee92098bb257f01fd4", + "new_receipt_trie_node_byte": "0xb9010d02f901090183c629c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621e2d4a200b7b" + }, + "0x5050f69a9786f081509234f1a7f4684b5e5b76c9": { + "balance": "0x1fbff3b61c594a3dca", + "nonce": "0x5356a" + }, + "0xff00000000000000000000000000000000008453": {} + }, + "meta": { + "byte_code": "0x02f9f4170183053569830f4240850ed16354b6830f81e094ff0000000000000000000000000000000000845380b9f3a700fa2f95f078a7f5a3d8d2d487760a9c7b00000000f38f78daecbd7758535bd6389c842e4857945e45e901421214e9bdf7222025a1f70e2284842a8aa0208a944313a52928986043aa74952282882822554104e97c8fcebd77744689ca75e67d7fdfbb1ef2c7619f7dce2e6badbdfa2130bd062d338d003bdf2b0a4c84de6cf1d811901240bde22e75d4224ea86378a272c0b7a3d78ccf2e1a2c70ae0a50c83d93e6ac7d9f43c476ffdb6385d1f7983a5b847db29a9e927cbc10c7a17b647734bacb267f99e90c019c0e59069fc5f29091475bba8883a22d5da0ed38f0519b54138f83712c4573cdef219da2e03d3b8c7db8decf6008607e5865ec5dd01700661f6c93bc719b9dc99ac36fdc90edf45c839b02682b0023300884b4a48484244aca51d2491a21e584947140c3501228a834420a0e453a7e793b0e96b0d63753fde2b44eb864cf4736933bc00126d0d600106957144daac3894cbedfc569d272a8e5e9b1cec5d386c11d155eb0a9134cead71f33e103b4dedf4b9a18e9ccf166c4b879b2534a2d515ddc10b240c227743f8e9a742cb31379412d06f07fc982ccaa4caab13253706d13a441a7913cadf07d97cd3d5525f74205427e0910caf72c3875d4cebcfb596f0a8684bb593591a2cbe7621efa369d74b8e60ad365fc0dc852059687cc3c9a6c6104144d4ec67f193b783575477ae7acf1b24649a760c8e8cdac57e8bbcb33fa18bc0a956dd1f52f47b06f9f93ce3e12292ff34adfc6da4a6f2516c5d1a84d22500b0624553c655d9aaf244a0b5cb65ab862d236f2d0d4f6565beffd9e433ccf9fb73c7100380e067d349d9c6e0ff7f2b17d00cd255c6eab2c89665e3b21a61cb52f7299be8000f15d8678e1a46917708c86a238eac8c8d43633af83aed22bc102a75c26f74c405702478a8b310408a980f8313091752cfcf2c24bfb9ebcadb0d49c7e97423f621c40b24aaef76cd99bcc5c82d767cce7e3a9376f985ae166873b611952c33db6521f6bce0fa62cecbade718440ac9dd83e6fdd0c66fef28a54189bd01272ce28bb6e43b386353133cd2db6fd1f2dd453a04296a778d4556c135efe92d44ef4bd31aec3a9fa9b20fc4fcf19045220d28e21d2cecc307ed163c5ad5d869b5c7fa4d54143f9bc66d915d08fc3d67b0a7ef8f8cb4bac9228a09a24745d80f586e37953d9b56c5fea17450a52c12139765a2b6a671c5158b82ac02ce04c2dcd5e626c45faa25fbac4fff1985cbed6c3a83a67a36b960da33db124f84ac8d2552c0fd96e1c3d05e5a71f76d039f55b6ce31b74620fad5a19c92e587e8a9aac554852a1ac768457fd009d58ec97e46dababc391096ad9886be0e7bdceb455bca01cd7a29eee3b04c74fb300c6c1050eb9a43aefd6d81b62db9881f6f09745d47c65ce8d8f1ddf07c0689fe610c0d796c1655846108e4eb91007ce01a586514f86b2ca3fa76258a69f5fb1085cb891973a82218055de79589edb724949f7997c79991b6eae555537456aea99f3e4f1f5015e55f192b6adba3359df80ffccf32d82860d2e0836aeab0cb2a4bb0c2c67774c56f36e8f4c408a3e9de416ba82b94949ac578282dfa058f3909ce682f07cde4ec668797d0fcc2da36b4e4b32c3bbc8f7b5d35aa41fe087d88ddc3d327353ebd8a63a64f5ee9b236fd988bce0139ab124bb9e819db91fd33baf74e20943c05e31b276a9674fd4d3ddd30d9adfbbb04e000266f9188a2ca130df69a4f3d300f26ebf234db2058bd34a0995b271f4666f04f1ed4bad12383a25051cd9cae1d47d0ad7ed35c6cb9f60670dc78496e2af99ece691c3e0517617ed3c7e9140c080a9ebce2cfcd7ff7cec3b7674d6bc53eb3945a368d12993eb2965ba1d9f667351009a3bd31d1d697afefa991dc278cc9575ca843ca1648795d460f11e455747c0fb71224261d7cd89bdb7d38335c0bde0299fb2d519f0f96bae67394e3791327ae0cb964aa2123f4f074cdf92aa1856fb2204797297de70d9d377ce361277edae9efd06b9eced9c7c426f46d1a1a26ff568672f9399b25d5a2e3172c12a8901b0c08824e78b74eefd3129b12d04bc305d26f56ceeaab9bb55574afe4073ce3420bcb9792e3bb8d0612270867a9d8a3bc49b26b473145b56d5d6980d085dcad3c17b2eb973e16831aa5823cad40fe0f9f3b7ed0424f9edba4fd81fe23a632dbcf3421c84a7d2610803c27c7a1d34bbf6a8d2d3eb7457f8418b1df218deb2030a2a1f6f939d1dc69dec636b581303a883d2e8189c6c75746ead485551088f1f3bfd328ab9dd331479afc677b2c0a90c7f0db25486e521f3c652a1b13b4bb15573a957f11954fde2775e9fde538a825f5f8bf2d3d35dfcc60a7d06de1e7f123a06cfe7138b37649b13f3bfb3e1069719701d473c40a05a3050b784483a5d9b5a788aaeffe0446db6a9192ae05ca13d1df56c99e9bbe48d820920c86fbe9f193c4e7a6a3853509681b4a725bb4585d06a819a0d401b8ca2a5910448376419d285e52103ff63cc38922bb1a992e5ddb727c0038cadd10921a7652fac8d90793163081054e939837e2268ca4da41db2bd73084c444803f3d76a9fb2dce61801d03600dd852af85e5ba4da45451190dff73b535cf010e6bf5943e4158750f893fe85c345a7589836d8745cf34423e88a8b46c1e3b7281fd16b45eaf8344d5b2cbee7687baaa8f4ef7dc941db03154d05edf09f197fa3cbe59676d68468f33250ff4b33d1b38dcf76c3b6e4fa6020144d716d3125935a90a41fbb3948a6ec3721125530caf881bab295dacfab61048080cc3fecb8d33db620a7ec9bec7ebf9372df478bf6dc04690a56964b45eae9a4047239c8323912cb4386054b62a938b03b2d70a4e78553bf756cc793cf1eb1ecae048108640d2fb91e4efc0cee300cf5664a351f52f13fa8c877d9abb0d37c71dc649beb4b0cbf89c86124c4e4b45af0a783e4c027321c704e27dfe461d06a5969dc9bb8c96f220f0bdbfd179afcb128e01d6fbf01474ad6c4f9a91b9f274f45ec7d92a0285af1bc01923cdb6a527f0271705ae39c7dcdc849dec9f4ae95afe9c241f707e4cc2f603e9e260efb27bfa1c56d5488ddd6bb6cf1e51ddf1adb97eddf1a2791f5b5dbdefa13e54f5f0935c4d6ec2bc2fd6347be03b4c8d2f62323188d47db433ff00bd0ff6a00af1ce335f60ef47344f3caf2ba873aa0fdfc83ed7d784578153dbd03bd0234bd4c8d55786579a1d292503118545252465a0a0987cb20a5feba453f30e0cf7ba05262080949192904122a89842111bc22bc466827b49f9fbd07af2c2faf08af9a87bdb33fafaca408afa65700dad9cf352054d3cbc99b57f618af363a54f3f3537845788d5d9dbdec0302fd3e8d4919a519a0ada96d6e6804333542f85a89eb7b5ab97b5885384b22a49d0cf42ced252d0cbc3d64ec0dcc8da535bd959d83adcc3c9c95a1c2662692864ae6ae680f4b4db7402d6f949a395ccac50d19228cb29470d376f2d6f27577f70f0950d532407b7a69ebbaf95a1a0422422c3d43fd1c643ca47494f47d03258411686f29755d13739d408fe0500ba4a6b68ca6a23932182aa107d709745454d4d5b67715473a072986c07de16e9eee8681de4e21c1a1f63a869e0e86c106ea4150150f67a4beb7b3b26fb0aaa99a5190538879888aa457183414e6e1eda0a1e7820eb5842b051b06bb6b881b78fbe8aa1af858491879eba8f93a7a58a254f524951c5d94f454d52cbca4a1ba862e5e4e1686818161dac6301f0965450b174309230fb881ae5448a05a989485abb3978a5550b0798096849394ab9629d42544c557c91cedefe8e9a8efe827a16620e9632ce9ecaa11e22c27c77bfcf85fe7c7fa89e886565ddfb934f9a5e69ac451d3fefb0cc8e0c257d5b8786453ae2e6c0990be79759d24c988b9e03d5ffd317d5bbaf3b4572719dc981a638d4d84446256efe12b204be5581eb2a8682c652f96faeaef11e40c0dcaa32f77cc7e1eb2b19fef242acfa994a56c4d9fb6ad6654353b54838d5c4415e9671d0e84901b0396365591882925acf5f255474e1ee8b4507f37c4d07747cc4731f53c951e966082203f6859901b90a78bc92dd5169654503afe706ab6aefe609a7d3f4b45060c9a13444138d36af1e376bec2e57d8ff06190a5602c0f198e946dc767435f8c58f2cc43d027697abfb3ff547c70fd3d964ef82223545351093df4288eebb9d0701e00c1d462809e5ead25cf9c0d84dbf5ac6a037141afc183eed1d1afbb804de19bbbeed2cf9402ba7b1d1ff79ed4d572af7dd228cb90526cfd66e2b1c4911e34cb52f50dc225c1e63f6c42ec94501ca3a1086ea7385f6a7155c1c935927757daa5f3ee17b7b745dfb8e9338a2140483d5433f67fb9b288e7be8cfa612a61e0be50d542ce67139b9a8c86dbb16fa0bb2a89d89cc0c4ceb5681fe5ddaf89dcd317a6d096f19aa207f3de9d92e6ce0d9211679659b270857c95479dbdd80f6c722d44fa936db3ff96ba7086c88e1169398e1ea7c76d1d875fc91d3a6372f390cbb09f86d4703f9d6809c9802aed1d598f3ef23ef8bd01427a2ad900c1e1d0e919ab9a95411ae7b0500fc611b60d510b04ed4018e1c2c6d8fa39dffb633bad674eb9dc0d82970f71708e3d678b8e487db973aee3107226a767762823d0bca14ddca7babf2078eea37eabccc0dd4136e2caba46b95139ed5c2b4b5b86004c497681ec457aa3d5b090d26312f423b60b638ea24090bc663c2855d9a582423dbe2197b1844ba8c695c33820d0c0f40063ad21448940f26899a413274dbbf819e7a82a9f7ec70e4982fa013be4cd2f2fae9adc3de235cddf77af74ae7d7472117399efecf9ad0d2892884a8e4ba0cd034ada7b629ddc4f848f1b359acaea4e2d0e9d543fd523d07a56298058fbf60c2c90801fa22912361fd04dd5b92b56baf2081923796b9cf3a1d0485ddd7d0741f89f9e33313b2008b4739beddf05ca983ac11bc3df65037b45e30813603344e8771fc0f5e144d4ebe4ad5e71784891663bc2cda39362fbb792fdfb870b6f7fbf996b29ef70bb05e867e4d39f57df41ccca2c46a234991867cf85b24a812ac5632793e0577e99e92889011df21feb2712f76db6244c3588e79faea2fe28e27e25d8cd31ea0452bbe06d6520e05adb6e92d5ce935a78434722e2397ff69bbdf39e072ebbb89567dadd2d6a2b2cfe8ba63ffe8fa069bddbbe8106a5bc9cce7cb2d15904d20b54913a4a2574dec7db6bf26aeb38de4e116bff0fd1b4efff0b344d0488d334ef928963fae096f690b66431856d8ce1b521ecdd16b20729acf578e4f79fcfbbd6b95c188ff9dd34cdd257af85e9d7143fc6186cbfcb86d2e06dfade89edd0b4a1d57a1b64a587eab0e788de9b807797702728dedc91bc23728656ffecf05d9726c069d194acbdc6f6c4803e38809f63f729e3196bc1d2e73a52b59ccf15ec1e1ff02350a441962952b03c645638fa56f7cf3f6a13ca54cbe60792139e022e772f0daa9d642d6bbb039c30c21028f8afe885bcfb19c3ceb784fdeff4abb842573cac164fe4e98963d7b76c3f9951ba4dc5d76e7b1e3662384cfe626b01b9621d4e2da0fbb45ca12baf1a9600953b59f79313d8a6619884fb670c43bf0076db64725f8d2f972623fa8d68d6a692fecbfdda28bb10ed198588adbb0bd26f73fc98bf73fcc4fa97bfc4f7e49abcf256cf2aef94bf3e565f2b87f4dae6fc806dcebf769bf3db12ffd0fde73988f417fe264fa1c6ff928dfe17a25bfe0fbfb7b7ff645f317d898264344b34fa2c877ebc8f99e4c9491b3ff9ff327e7f357e3493fb617db0980ed3d5d93376292f279f6d0c2a1125103020648d0ab6755a7d84c05d5caac1352f01272ef6bfab59dd5dffea66f0cd2b1cb500d58be3afef541bc98eac45e1c7dbfacf3ca44f4c872b38dda47a30a71c97c0588df75c7287e0e829c8b12611a923518fad8b95d6b5e9783519862607bb2f32f31d892359310bb64ed7c47c52d7f9c48d502e4c54d647432c85eed834085c68336cbec8cb2613eeee722152dd811280c4b6ece9ead9e8d3cd5fcfa743975d18cdc7547235c61ee840ca4b2774c98511c0cccb6006531c9df2251c24c13055c9ff0409d7345d825eec14bfe1719c34cfc565f538485d99cb7a32085fa02a1315f5e584435f696a9ae6ec7311dc07266bb09c01eab55318b789444490f079d98f48473bddb24b8bd7ddb861143efe879f27669de8caa23bd9c89a778de1f6a113735523406073dd758aa8d1c3150b52b03a7fcb752f3d35f6f9e5f01ae70ca374895767f611489e419649fab13c643b3e2fcda71f55fa5a2a23f479f54240f662a7ab725e606ef71b0d6fbdf2380ad675cd53201081047597b3f4cdf60e610808a6599e7f29e5e161847637dfed3bd2e6b2cfe61f1db9c5a0a4c96bbc674deffde8f6ac68c4bc2f3f07c9f9ce77ac947c43ee970a59e54c991d6f1ea1fffefeffb14c5bc31bcadfecdea0f40fb0f773b60f40ff627f3ab7404f1fb49f183ac4d1c5decbf9a71ff3eb9a1a190cbda1c9fdf8d7e5dba1f633cc4b69bfbc7f3f44be44adb8cc3fffce7f61b218e03555162d4bc92b92e0ba705f371db1a2f257fcce4b77389b4591cda68ae6499700151ac8c1fc8ec1873d547b51809de7bbd6f6dd94d11a22ce06fc57ce3f1596cbc17b2cb991e2e8940bb18112a9e9cf1f78940616a65ddae386d3ba9c7c832db8463d96df1ed9fa474ccba91292e7072836067c87c68d30c7464ae5ba11bc9e9d00e2c3920ac2dad0b51ce0bf3a7842c8e3e833b68f98f3edef58c50d5e790b8e5cf408cd88e28175905e89c20740967cb13c64649f837ee8942bb04694a9673fb0df5ca89f136e3491b57d6c25bfd99737a015c7d0f0226d28c007538b013a970c4d4a746e9cbd901acffb744f52f530edd313e334a7f52b9fe5a64f4747710106370763ceb8cd79285740de7a4892caac698535d73eade9ad6ca393399cd0da4e80c020cb102896878cf31fef5552c081df35a672b8ef39d81399a29fc3214939d395f8eec9929e2386006e30bf2d17f295622cbdefe95de7111e9f5d65c16617346e2749411db7eb5afccd0a0611cf2b31cf32510108f23383f985f981b7cbdc6a31408a6c55f1aba68079f9995b4ec5e627056bd3bb39929319995f98595d78937a5415500dd41ea6c7beabb7af25c9a751b978a567bca7bbf03ee753e4918bd50b4ae81304d2279065d26e2c0f19d6400047a7d08fa35332c7918853a7be81713df1c9f7c31238761d1e4bae8685f60d456208a4a87a0b93886d886610e3949eee9eb4a38f1f475ab09faa5ff43bac9339c86e1078a655944e8ca9c4f142cce41811d303e9575cc7d4faa54c2d2f795a354ef1b646d329231e9afa23db5b7922f61f7f6f8f6d200ec478f87cdad6fd79c8883c5f81d8fa12e94f04f32144543f1222cb4b42ccf4404475221a93c37d354b24916e0fbb95d763c7a8188ee1b7681be7fd5590b9f3a9a38cd992d661c4289fbb69256cfeee6099ac1c7adeada425005a716bb4eef1e28bd1f04b101255711b7b62a7da36d54966882cfee50e356cf7ae81773a2983e7ee049fd575fa19d5659bf3dfeefb7f3bd48281488fa8ae40a707da1551af3e64d0a9e17885dacfbd5f047a04dea369d52c320d00b249ea66feeadd34edce078a2bc932f16756057819a5bbaf3ff569ba557d26ef0d3e15b294f289af512271101f491cc4f73c0ec21d982a3194e1acb94117f2f06e5d2d87f98a609590d028a620d07688e5cb11a80faee92cbe4e5eecb03b185d363bb28bebc29a7a2d06a0f2dd3139215a7245ae3665d0ed45e283c2306ae519fc002228c597bc4bdc6e0980eb8dcd70749a141e5fcedee9a5dc4b7df06e693ef6e5e344a4d918756de6153702691a6499f4f3b8c09c7f4490eea03f9cda9437e8c4616596cc229a74ade8795e3728169d8f2190f2ff0d11a464db53a489e91010856d7213628694021acdf6bb5bdfa22bf23d1941876c7387743bbce677622bbacb763b9102d16bde21e85f9cdf77e15fa3c37fb6fd2760eb08571015c4e73949e297ff19b36ce6c83cbfc95974ba5740addbd1efbea9d4a96dbc1f352c5475ebcb7f08bd9a9b8ee43260ec9abcb6e7c85a587ed7cee92d52279cf8d64063ccbf717c2aa08fcc9d3fb3bf3ffbfe5a0c601ee963787f641912746391366d2597fcfc7a1e53ffd315f350ead2e713a47ca4000f5e92f209ef68f6c989e7cf96ae359c5b23599f881136d9dd79f874cbecc9d05b7f467091fec1932056d3a930accb99e3fabce70e5c9db2ec908d9e3f1cbc3b19835751b84fb7f72b23cd6137b0938480c41e44b55a4cb44db1f55a1b319605aec5007b3339773db40eea633033097e60929aacfefaf52a58f084730c227566edadb417705486e7c6db7ebf1c9c555c7ea40dae75d18ccbba49cdc9417475f249492476e1afa0b3f23fb207d2cea61a34fa596a5e9a6d16f3d04271f19366a41cbfd6f68da0b3d32aeb814a31c56ec28917d3fd2f860678910616114d47c200ccad4277510d7b6de95bb948ab8efb473329c28c3863567381ebd3870ccedfab00dc198031155696c7e18938b148b6089b65914dfd072a6671fcefb13b06c0b4597fe63bc03e8f381fdbb223f569f1746cb54dec625155c5b506f1156316faead6ed85c9fd03ce9fc3d48201a497d6f4062bf3a169edbe684fa31374f9aad338b58c525cd3b4d1a526cdaa5900d2267ada3ebc647497dc47442b1b0ae67ae2067b8e13bb8d118927ff42d2135fc21e0dd0f21e15206be23deffe8fc86198dbd577091a079eb0299fe176d7ace7d864f2aa8cd169b6f9f130b9a2659605fcd5a5321cf831278ed1501877e4142695840a43ebfd3080047bf4beb5fe99524445fa381c835761c1d9fc4b0e28c9240937d81b042219fffc13562edf9a33db1462954401f984e59c6bb7ee9f59653bdcfb017968e06d3af72335f7b188b743bb93f9f7b20d013c37c0f4a4fee5e8fd40a48db69a4d5f5cf38bb2d6e2b95b713eca02f135ef5cf0679752b0947c3886536938327389d4a4a8616d87147935cdfef66cf3760e3246ec866eace1401d05002a007c455d88e13f56490c88d9dba45f192c933f7ae109d59333ee5e4f9face4683fd421eb2c579328075e4f02118facaff890ce459a3af03a47cd2fc294c80db9f5d285e5967207aba864e58ee0df2e4d6321de38fa56211cc46f3895a490fbba08e9bd836f3fdebd299692b9c43b233d87c1ffc0f15269fae515ec62f8d241319b1ad7e7a4fb2dd43e1450832ea46df778f9b4095a21e3bef933fbc6464f2b71433a8ad62de39c59154cd994150d839d2517427801480cee0c9dd739b8cddbbdfdd7685d3f2cd0be8a217bd204cd9c59d897d1c602fd42579583e0e894947074ca459fd1075cc94562e89828712ea42e618341302e5ea441ec93ae5af10c5d0002aff1e6af41c5092ceb2f676231be4934a79f148b89a1f88f695e7cb9c0baa5db154ccd03461c22cdbbf0a8f7edc8685cb409c83e728776e3998c696ea56aca75ff8ccc04c8f6ac141080982e040683b7612a206a05e1dea695e477c377a543a96ee58f218eadf82dfaca3d3f4a65fb33569e9ff02d6608ddcce4b9f252faab7fc6afeea27e667ce9e884ee24cd45e0d2c052d3c8f7924ac12c8875dfab0f88a60f90a799caaed0ef71843dbe9cf5b2606fe1cbe9100a930281f72d770544660f78e614ac6485f786474939f7961ececbcf2f728bd66a7698b366d5be5090aff420d147d9ce9e1f7a9dbee53e439b66bea0bba04301e9ac6807826abc2327e736b526c9c70fd447791b9bac09fbb508692f60d746607d7ad3d28d7c5e75b9c2561e92ca7d0f4d076d696b79d4d2f9b59e91cd5f9668d18eda7dd738e571b13177f84749ee9ac3d755e261ce1e79878d1b392612dc64f6c8b5b26af2444d8cb1558f0eab88b4139b1f0baf49a6d5669c96b4047beb9aa7172498320f5fb07ff29e412a46ee3936ef29f99028ce6de941ca948729a54f528344ed63f315dbe3b2e9e161f9ce0542f49bc895f8ea2742230277d3e56ea57cd4f12b0ad77bf7a4e8fecba40d963a6c347924ba28a85fe4e91c09c2e69019f5fda38927f53c8e73ed4264e4ebca1a2f4f8d97fab5acbd543e276d749cbe30c74fe236577ef30aa8b0b59a7d01f22cb4b7af6b4a0b15bfdb2ea46188b33cd20b19d694297fa3b6ec047a9f470e1b8bb2188884ae160cd4ba6494849a437ad7406b24b1a6c5b75f4f3ebc4570e34feeadcd7450d6394907f08416fb2e9b9e6e2098e88061537952a4af24c687554b39c39f323d7c47ba6e4380f44396213d581e321c78c0e31f065cd51d38d2a433a9c6e76aa30e736121885547145584a5cf868e7528860041c9ac5e2ddb1e6943b8f9c8f7a75e6989e5f5d560aa73713e603acff1a06e8ef3ae4befae8b49a8199c3e68f1e2e879c76a23a73bd31d4a834faffb75933cf7014404b57b665eda1c8c20e1699c3f5935bf7c8af19e6291ec7c99dd6b0ac568bd98f1766a7a6d33bd96f044e10b56738b749b080ba7d314fd7dd499035d332d862ce78eac26291e20d77915b57f79ad286830bc5aa5c5a0a9c8875fe8adc9810ed7e8f7d7772f28cdba63ef818452dcda98468b2c526dbaefddce53ad99bbc82552f8a4fba0d379ef813ad4de1681837204c34e192bd20369abc72e1c2da8f71831a7323c70227e73ddb2f655612fe3ed2038cf1173f20d48e99ef94e32e3b227d522dc115e9d829ce07ac414404d847512638d145bb6f2c13669d4140defeb0ef3dbd45dd33c251f7e45a6a40473dee25a4a4f441370fa63d7fb7fed321c2fd294d9cabe634a62c68e946ffdc4bf79a3343c48aa38dd64949e94b25c27779cfdd7f698b296e42881783754d5a3ddb13afdcaffdafebee24626fbad234286e57e771894b889c5d632d76280761350c3dbfb316ec2e976f954748b1fc405e2090ceee08cc13dcfeaa95e632d01ea7baecce7400eb4cf2bd7e40f0e019d57da5d232a90ac7d92f01db0c2ac6c090279e732791bdb679ca63eeefecd94420c811cf5bf20959008af2625822f600630c99fa98486e97bad1e8404b0ed158fdef43c5e78f948b6a3f69f9b6c9e2b709cd6040402ef008140ac9fee56c545a0471b74f2ec4a14c69e496cb2a9b9815ac19f9b453f9d723e95f35c81cfa24b876c77c5bb1af1a45d14857feb20838099be1552f32dcfc5c4cb7b218d12fb1b3adb3b6376dbc42143dcdbc2be92ab1f5e25ffb9dc441088fe061ded3faf3686c36ef66cb5e1c4220a7fdee1423455719bfbffb524486c09bf24eb3f77fcfbb0917dd0869c757be80df9a988b45fa02ff0afcfef3f01e0c52f521dfdec1d1c42ff2dcd51420c81444ac840259030241c2e230d45fc7b9aa384181c290387c22525a5911250843442ea7b698ed09f487354d43733f475f3d24548685b84042b5a7a0604bab928ea38c0a1322ac1be2e1e06c24e522884beaab9b3438871b0bba9ba8eb86688a273a0baa59966b0a33a4a4bd1181660890c3395d242a00cc48d03e07a01563e56fa1a2813556323612f6d988b1a1465e965e5e562023354f530d1d677743673768142dd34645c8403601afe867efe219e069a1a2efa3e6a66be3a7077a8b6838bbdb4b9a5a66498834688ae929eb9a587ba9199859629dccc5b4a2704e56e19ac27a1ac8fb634f681fb38f8055bb82b2b79e84a390a3bfb7949c0751ca4d49cdc2c109ecede0e525646b000152975610d094d497507332507bf60751fe720234524da5b58d93040c6c3c1dd11a6e28dd6f5f53097500c71d2f433859918fb6b3a8b07a8496a0a87181842b5613a6a6aae16860e2e419e3ae6287d0f7fcb1043695dff6019bd4077a82b2c48df5bc65043db5b5d49d94c5f5acf3e34f88b3447d01fc14289660de48787aecb1ff77ff2c634ce2b4e80e71a5c6e365067dfcefa77cfd6f8ba01528d20669be0cc86de43b7ad1576e49f448f4a763bea761f7f81f3fb3086a3cafda75f41160771b1c3415c1b7fc2afc0b2807dbf347a7ba3f029850ce254fd39999268a016037c1478e4925d68a3659999f9c67828a8294019bb2494c25e3dea718c8aea56bf0b00c752d19c2acdb888201525dd79c4f4e51dcb7735483a267aa999f9bd03fdfc1df860c852c067f951068303c702388aab8c5823cad49d4e43789371cb772527ab48628330b839ec05441c7fdcbe1ef17110a6160c90efc2234ac975ba97fd18aeed8cadb9ed4b76fb44964c1cf3ecd2cdbae1cafe18c0a6252ada95bbf8feb3f43dad29340f565b34300f6f9c5fa7b8484a909029f950472025409649abb03c647bfe2c8881f34f6548eb422f1d943577996f38d70d58f5298aa06ec6aac8e81cb9062290aa500fb904122156856dba087f3a7a119c47f746805f7912207979c759e3c580ea3a6941d2f909da17ef83e80eb8ccf498253f8db847e3377f8cf9d18051f6a0e816f6decfd3fc129260f11ba71d7ae25606b350b1812fe4f56a7c8f6dcb054d34360162b74d173000fa9f0dc47cd094bae8007b5d7b7ff75f7c3eccd5c7c95f565cdcd0d31c11e8ebe6ae8cd651d67186bbc0fcd403d58c4dad82cc438c942d8c0d2ddc757c94944ca4f5d40c9d4dd0ffc1c3eccb8bb3ceacda7dc99a71c741769abb4a6ff29fbd9f14bb75779ad1bf9b7efe051467ae65f18f691c63b733cd17da03079f130f46091f547ca5f1dc4ff1d566f6c79b6ad7386dacad7356ee8c290255a297d6444114334161769cd78613b3eb9b5617d98807bf70931814118a1c1f93a8368fd5307d5c3417170f31bc98e6d026fad82e69d57900e0c81e95e8d4863b9064a2e7341fd9713d6795847ab457b7bd5273206d1ef14bc7df842cddc0f290717d2e79a28f23c1a5a59a987499469fcd898cd74b1bcc979feeeba13efd32966e1fa2ef72085e65fe2c870d1167e5f4f75a76bea8be5e84faecdb56f150bbe7dfb9d7ed03d09819d890b6a67c197e3a361d9cb328bbef721742d91e60539fd7ba515e60f0566a8cf5fa18c540b5134fff88c0e2b5d2ca97d3fd277319f1d7214bd73efb90097f546bf9fdfe9aee733284c611ee8573a3da14d1171426214dbcf9fe41517421ddfba7034abcbd016d900e54686f60a971ca441db87cc57a7865d8a7a8d37afc6c7cc803c8cd701202bd2668995e1518892b967d9359574e2833e914db6fd60893b58b93bde5f45229dfb9d6ece8bde61f77255c59a65bc49f5a4ac4820fe038a331386a93cc54fbfa7cf3db870ad930d3dd1e15e5f0d76ad6ce604c814d9dc8572e3864ba439c1e27ed0025c7adab7d6adc9c129e5a77b04aa2407cb2eff9913661c637d865f0bef64b66a224651efa9947ca194363059376507400d2720767e5c5243d435c6993238765edd5034b9b3727ecc94fdf3b79382aa08cf5afe4c9a5cfbe8d6d264f7e9503f22bc9933c2973cf7b779f9c606a653ab1b3b642becc5cdc4c4d8017d5d6c1a8dd56973d4dac9d1811123945be4a9ed4f52fbb295c3f2493e034f370b692391a9c1bf2f21f1ee26bb9202f982836b0f8d58b3a05dd1c97c5ce17d15577af0ffd96e4c9edb66f8769dfab29b8a0b8d5829d9509e0db3a98837e64eb58842302db8b65d8b23f2495fca0deef955c40cc173adafd25c4bd0d9fad78f6ef499e0d7c917255ee57a7f349e23fd41c3728dd7e04edd8315e82d3563cc01c5640736e434bbafaca75cb0b7a2811c07be22d79c6c431d9e984a2c538b7416d212d96ba3aeeba4509ab5d21bef2bd257f15d690fc4cd3ffe5c21a44c279fe96c21a854ce214c757d55e39d6eeec7867c7e85d581d552ae8cb3879f1c273188843b99c8bd81e6eb3ff965b6ac9a8cf39b9c9db58e898772c2940dc423413cf1a7dd10fe1dadbb817be0315255510a42c1ec6b9af28e0d85451f6ae1d14268acf457bc0baa64fda71993e5267d92dc9c305703aae072f220cb8a586f9ee08eef4a9adbc7e52ccaf73082cbc0a01990d712c40fbd6e35a52ca2b4e5f3dd47885af69f3e4447176319be0c67da19be53f5058c3519efaa13f42c24c8c8b81e65d7fe808262396d591f6aab6580c1af451f6951440bbaed1703e4022f1c5f0102f467d65ac6f4767c8c4de88b29293de4bb67736e3ff4c0c22c39a44a4a6a6722326d9c69e732c494ac9b430375f54b89511472a6aedb1d239f03931c83a89fa8dcef0eac906bf0355d53916c92d55e9bcb51473d6628a61accc8517cb016e159127556ea6023423e7fbf351fb6537b8ca039cfcfacd60c5d97ed613c3b60470206419ec8be521a3fc236cbd0007a97a952a797c6eec3959828dd0b518a6e2a1b34c1b0636b1180298744fdbd52d7188b60cfb5d6b1c585461bd4119ffe267acb10fcfe57c744e3c867c5d6b9978ab8df2de8ba7375e6f4d27a8d29f71fc110be8fc963db516031cdc1f357c75e9c13edac1132cc2d72725272ded0b8603de5f584f0bbf35f5ec5227b0efddd193af9859af26b7d80e2cdc960e408a9be2e619775a8d1e7cd125cd1aaff94fb5fdd0cb3fd476ca4f6a3bf8c67b7a4679a4c0b575b263a543f1747cc5f377e23e3acb06505a7c56dbcff23ee1221ce4a9d94de13ad33b2819ff71b5fb5892659c6c3649847e74778c26b09bee22f7fd8cd20cca9c0acc23d481892ec7fa4a9e9683ae74e9f22136f86cca2fe310cf7d52dc69447124fe76a9d38974911bb26f6c2257aea51e78e57ca41a46328a2190f2c3ce9ae9fcaaa7f647ccebe82edb0e622adf0e10cdef5419edb667fe25f6f8afcdcfd9f4fb17e67a675ea76b6c76be3616a04a775178b1550005b1183df4e264fecf2cc6b7f6990841956c2fd201a418e180afeba77c9378dcec2067ae5f19388e82ece5dcbef16271469ec08127da4795429e5a4e4f2428b1da3f5ee472aab53efb918da6bcb7bedd4b24a5a4935c4881edefd3987f4a32a1747a151c5191a0fedd9e223bcfb6f9b96d6ecfbd447480c2dfc41941fabfab68a9c22f8fef8ff9d762809ae06357ec4efb1fa8a17b7af01115c5d9450a64efac9a8c0277aa8519cca4411d40b115510c086ad56f383f2ebc77db94f456e3e1c3119ac5bca177591254325ecb13c0be9065b0e73f22113f69b658afa454f5d509dbf3ec3b97fd8fb9fade305cddb5de92f0f4d32974e47800769b9322b6290ad24e0e087b14da49128d92907142db23d04e6824d4112e2d8d90824939a1a465ec25a49d1c11524e08194707697b341a2de9202d2181948021e012286249540a4e704728d2c141c6d1116a8f90864a3a3a3a394a3aa0a1501909077b09b4bdbdbd94130a2d03758042ed25910838dac1c14946128e9492724438c0ec9d6a31c0e3a2a67df667ae0de1d9fb3a3d31beb5dacdc3b1fe34eae96294236711ad11e239b01bce9b594b6f347b15b052f2614dc97815d931d787abcdfe45c9bb273da6ff0ca424f9c30cf2fb6d09a483c9996db42dda8c1679d6f61d843683ca16d87d1bd6858ffc38798c3b440320b1981dceeeb4895fc84a61f62307a8fb2514f887d4554a1490e22f1f58b07b13f6558096f79501fa75d1eb6fee0932b4cddc6783ab5cbd7f6df57c5c72b111d345ca79e3b8345b8f1fb725942cefb3fde7573a68fefa4ac7839ffa4a4785b6f3e6dbacb0f13d8addeb140d92f3aa5dc8ad4387c1088cbd8cb4a38ca38493933d544ada5edac1012d81b077404a484b3bcaa02525903f23a7fc02862bc6aa0ced146375bdd98fd1d360f66b929b3feef9de8e8f0b6bcce3cfc00d3d99acd9f3c25b21b3d3edada066deac7b59d6cda4a46ebc77de21b3e371ead65ec7857ee02b1d6ca8941661dc59daf298134e759617327386e9ee19c88834e73639de2d7764f7056c786a27452c6e5a0beab00e33430cdfc80785e1a7e6c499abf4bbdb4ef591cae2ef2fddc33e781b2dd9e5be8a23ad984c552d36b67c638a70a6df6f8defdd7cd26221e3378bc19b81fe112bd7f2808690a174e00f27035a3f90801cb8ffb956ef0a9bb67866f5db875572678251a209590b0fc2904ef99a45e7dff37f87f983417b3f69911790d749ec1fa8a343edf4221d63e26bf074b3af580f1fdd677846ad293b53391d30eca9e3c01d10f31109e919b528c8bc563dd94e722b5417627be8c285035576597f958604dff8f8f95b2331363c8300089ba990ca7ef81993a4fa6e667b65d74e8d2353ee199d2b63718285fe175880cfd29e0e22c934ed20f9232eb6db7cbb075d7db34f77c4cd5ddaf0a86d9104f1ce6bfb019ad5398daa728e561a625ab1a72692d63719e683276f19181d85e9f60c658af7e2cb204bc59f643d43bbe84f0a62348504088403d7825241599e9f738c574131a0db0a207641fc7c28062f8beeb2e903f124150f7ceb7029210f07372ff8ebe6ba345d28cfe22b3014c91994fcb4b6a40328ca5a301078ed40728da25e6cf4d98391d997ad312ffaf41eb8a7ef0adbe5f36cc291fc4901400af4c193a221de878e4ac696a6679129841b790af35eb539c1b9e3c0e46b76dc9fe64d92cf56bd4fbfdfcd92c040ef4719dbc1c5c83394d20af81373ab8a612b3bf6072feb7da83f71e9cefbe0086d80f7a81dff655081c815557c83673bc4bd84ddacfdf1c4736321f7fd95bc72667e04f0e232781e274dbbfcd94a4071aae39b96bf58aa3d7a7e0088008e26a34ce52432b0be2f2fdc97634db88fb0d6c7aac6ef7849574b4d4dd86cdd5a22dda940acc0e5360b607e25f24586f75ca3095316b92bc2b110712b2b1acb90f09e487f971fb395b0a783fa8eafda8650564de9e3096f76a7c1cd8f7acfe5ed01e1bfb5263f330eac92588ef2f50872bdbbe51b8b81326ea2fa53514b9819e8b3235a3b9b1e5abfce85de05f6ad361e8b65eea87a891b28f4578ea06ae4c3d90a887757a8170c90ccfa794fff49d874387a0af2cf3faa0fe7531d5e13ceeab6c5d99f5c0ba8e495b0d9dd923e7e3f1e7c1cbd4c41fbee56b4122f9d742d0610b8f3ecd084af28b3e098c4f250b33f66d2f155f88732164a92a7ee613652172201c5d9705181f948ccc40a6de6f592794630094b92553bbd331832ebea914e3d8e2f59ba428ba373e7c43e84fd682a81fbf31e11cfcbabb38f6b4c2b5718696c694e85a410ffb88428b0736f8ac64655dedbc201e1d2e327f9f4d39a103dae65640cfada6e89de45c03bc0f28aaa50754274803d1ecf3dfe6cf76e6e8c757d998e63eadec09b9231ece223f8d2a562cacf1f62813cbcfa3bc9f9d368cbc477169074d99a5fbb55eacf1cf0f2b6fede07d3832c616d24abe2d6a035f55c404688fd8429998a11e999ca79edc10045f7c971bd2cab91ce9a18c4b9f77077437ce5d2350a1c9d920296b098aa902b393be3c5e1e8b02b7690ab64f54460dcfbd23848c4071f461a1dbc8a97a93c31d7df812f2fc677052b295b8a487fe03bf522b0a793b1594af6eea7318f3189d8a4095ed2a297b38a582f571361cd283fb8ef72922f466c5639eb86f72180265274d7113378b2065358fdd1dad68c8429cf80890de7c55ca979da6eee872df825c8d2c2273e5ff70a07ced88f035fbc8a2339929dfa87023138774f32f4bc0cc9b46066d3f05f755e304e2f0600102706c4590be280708338c19ffea817f2ab9fbf902a37101895da977696bd6c2a5257f8731b37887334eb56b42e881a8449a48ba35b70f1796675c7e3fad8786662de0b873ffa7302a0c3dc20eaaeda22dd55478d952bafc23b2ef4f96c3814f64041b260d09e3fde0eda71ef5c2d06e8a2b74a992d809638340df59cf14f28d6ddb0a8d73c5c83102b713db6fad10f0268278dc955beba31c57f3798eb9cf43d92d697233ec604d5e897ef449fd0ad259313487a97491e93e3c0c7d7713b1524be5dba054c1399559f0bf99b4ab7b01d4fca73dfe3dbdd55815db8df690b1fb77853ac86ea8ae5b372d394a425e9da9e9df6e74ab77c8bf4bf6cd7ba1671316756875998567174ca0334e471bc6e7ecbd9091033535f76fbcd1eeeed966ea1f470757215b5f771fd4df6822ddb21bc72d3bf6ea9f8079a6e67fffe8ed22d3fffce7ff7bd2c2a1d6d3e28ad9eb0331612c74ed0b1b7e7de1dc9aaa9b3265a1f21ffbc7add16d0840f7098491cb6df09e5a3b525f17873b4a0bf4079cf192a4d6a6d184aab7a8a0091822c43c4b13c64767f841781dfcbfc705513bf5d1c82efd6532e1fb44b7f3a7eead5e18f3b76eaff9d8117ff57d5e4ef779fd6628091d628fdbc5737a75b64746eb5ee2c3bdf7d3abb44b146b3637a37c9bb5abdb9a380a96aae9e4bd0b808843336b751dc6222932bc460636fd6f3e932d378d58e344dbc1f64c91bcb4386f98745036b44998a690a90447b5a32ebbc5b76185f593a83be707b29ce16b60a11c489636a31808e36000aa110a63e133e2236302fcadd542845796c016197db72976330b12806305ac73252d966581936c9e91d97013d5c2fb845f73c3ecab4b93ef1695f67d80502d80fb20cf6c2f290c9fcf1d6ffb2e5cac1d1c10989767044a2614e68041c86b297844b3922e10ef612924894040225e5202381709081ca40a5a59108a40312e1847442d943e14818dc51064eecf9926869044202e188b6979044a1a490520e5228943402ee84907170707094914223900e281909140a0587a21c1da59c64241d612828c25e128e84cb206a3140cfe0a5caa4b7d2c1a965b69a69e2b6f353f79fcf4e649f6b80ec7ff29e766c4d01d03b426348e31575a249e4f01a6cd27de2cee9d2c719174f3cb3ce8debf108328a22802d21cb60532c0f19eb1f8130e45df3a906d55375f40737eea353335bd49e207bd13bc346e3b88a77d14aae76e24719983b8488cccdfb2b977b25262c2d6780bd2b6982d18e4a00abf6c2c0e897f786dd7d619ff4163dd9d5cf4ebb123dfa99898da9160c84dde36bdec38be4788c3c356ea426e3082c47dab0d48ccb5eb3aed26b2471b3025ca6442e6715b81409f2191f8dd5dc6fcde94a5094a71751435445de3ba9eef984c0980159663cf79761d002b7972c3275e4be760eb9cde4e3f1ec57c6d8a53b4a77f061a471ca0f702c42c5750446fee4f6805f2eccab521edd3f911fa0b23dc4a7d83a348d33faabd59d51e392c6979defda6bd55d9fbdb753bb9ed0fd55c9f71491d7292a7bd91949c7542d37b0c6c068365ae37b9cef304913339bf4d18d6d7268d2edf5076fb3ba0fa9ddcff8d1aec63f44bf093f59c77756b071e67a81e4be240be8360f00607b41474481fbef1cff7f7efe44d3d2fe4de16760606034795b69125c7d1a6ffbf4c047d973645b1e3e90ae1149d07f087e766c7fc3fa11a3bfcba39a10b15f5c1ff0218f9b905def7b55b7e92bff6a90d7165b151499ec6ae5141b371be742f10a879e2d09f04f3df84d5b02fe45fef71fc3ef2b6499b77e8687ffcda0b0cdf5f97509f920e8c0906acdd0361d42bf1b5efcdef38d8c08ffa7206617c0fc36fef48dfdf979fc272382ffa41a8cc587ae7ef99f5711a15906c12ee2409e4a8f9799e64766f33b543fa3c511c32162cff73cd65b5b47d1960b8fb4203d51b8d4d8715686693b6bb4fdf387a871cd6e7bcf876c29e342924040cb1bebbff800e5f7756e881d08340b02285ed77eafd26f3b08e40a02b12a7cf3dbb40f5fedbc46245527e901db5bc7fbafc18bb5f90105387a4ed27747c35aeeec7aca2c5c9af6cd2c61228fabc77c7a1c265e93db70e4047a03c4cf7ad635c30e5b9ef660ffb78c90dfa49faf568763d7f7b7490904cadd72754020d0f1edaccebb9e814fd389f22b412489897b97beb37c55bf22a27700cc2e8af8d623bf3d9ddf3740b0f67ecacf03e4b8f6b02d3a4597ea8a702e07a37089bf50fdd1173f3cc06fc06f941f40bff97cfadbe5876fa9b4ff45f918fc3f7dfdfe55bfb8ee17687a1a326b485a5703db9bb5bb6c4a5959fc3f257ffdc2fafc9461ff37cc6ddbeb9fce67c5f95f9401b7bdfeb518205a9777c3f1e3197c2295037d31d4e416d59567232a17433229128e4e6085635300ead1c64e0c9246b40411ee67cfe12274bcff16e12aed85cbef86e3db4f57854afd19b3f667ea1e58bb3cb58bdb827246c652b66087ca1c4d64b8b8734f410f06af52c541f695c50d5536e3dbaa20bbb1f622a8de6e347bb9eefa3e22be3a10552d181886b1853ca8bfcc69d1f582eaa1b73079e7ccc1a37989f40fab2f1b31d9bd5d4a0298474e3a1d7d4ba39ecb1c9ec46daae44d1581ad135aa1a53494557277e7ac9420502c8196293e00e7e4ecb3b4db0e7ab73e3a797c77cd1586347d7bd3ce1bfb6becd2a03cbb695e53478305ce550341c5eacb519ef282ae333d4d64dcf2831f25414e28be6c9fb7a7d5d6a8275d65a3d15d3665cb14857f24a748d3aee0180d85703ba482bf93700621fd8184b3c22f2fdab466e8ec056205cb19765acb3774aed62fbb2d6e2d9a9e7d412cf1639b892144647ff057753c4985b1092d21e78cb2eb36346b581333d3dc62ffa84625c80f2a34e561827b6feab227d72ede50e930a442061bdf03e17f7acec40df5c4f40de6d21c9fe69afc1297dddce9739c0125ab50f8bbf85f3d2ffe0d0e9b7f15b78f5512055224cfdf437076e5054e549db8c70cf1b76c24c91a5cb7a1523fb44a825b505807823f5cf7a1ae0856cb74d277c72aa2384f509325653f1bd2709fd05ea8d02d90c6572e5de3c4d14bd4e0483c6cbe9d31ab2471435706f52319b3a084ef35fc9931fb69cc6fe660ca93b394cf8dd84b02a9c21fafbed03fe297e5df47b93f7eaf08fcd5d527805fc3b3c6d09cc42792f51a029d31028ff010ccb3cbfc454f1276ddb3e9d366b5fb2aa1a6e0905a877dc405ab6cdcc6ca138ff71fcf26a8bc8e030fe4d0636ef67ffe0a8486f6864ba47a72dd91e1f737ce31a6ca57f514a952c07998b51b4e2cd89106f301d414ca3dafd3746d1faf9a963499f4bac0f5775eca495650b86b91da9ae4127c9400ee862c83bbb03c648c7f7028cad38753d5728f500b42d967e6fc4a0e8c7e08f2be1ba98cc210c0a87828caeccb99130be9fe05ae8bda32be676d1341a45d677b32cdfb337fe711446d1b5100c66aad425c1eda9f3b589c3712bdb2a54486eeb2ada805032e10bee5d1714b92ac9c7451e45acc6ed0de3850faa5a961c1f482b2b7dd350a00a9293532385a40141dc65e37d5a3372fbb97b974cfd377f9ce3cc80ff6719c67fff9950d2cc4f9cf93e727fcd12b757bef463de4f35274de0d653890205d25eb99f6774a8bffe78ffe1bad6d7f1e3960802e98e5dd22c7b46e016c6e8320b77bffbbccdbbb940e73cc260545959d48b6ee04f69fcb397771f7a3c686e694bc1d29af6d55e9fb123c4305e9e16cd563cd29a16f087b6e8396f7e00193e848990614fd436eabbe7c5f6acf4baab5332e2e042b9aa3020abb42841f7ffcf1a3ffeaf21e570269f532e9752c98e973882ce960e9ff03655728d0080b3f9bfce8ddde13aa97fb77218462c2bb68e09b392735d0052f823f3eda422cfeb7b22bc74fba2cd0c4a5dfb8e36a9e73ff82d17bbe7706c4e487ff2bbb42040188b4d318d93b3884729bdb7b78a0037ee1f9ff2cbb62e00b770ad53372f4f175f074852343034cade02e8a264a08b893bf935f907700dad4d9cb5e35c8214849eb3f37ffaf7543cfbab1433531eb209b8abddc45f1ec64ad3b897cd4f0f7975d399ee8d02cd5fbd152ec5492bf943d60d713c354cf10aca23edbcacd0e50e6780666b3ee342abb672efd72cf6bf74383abd0cea5c7cf03d7061e8a4237e2ac5e8f11cbb1fb248bbd88694924783a5dc2aa673a64e004391c61baa17537a8ada177032ddd1229f201ad9bf55c5ed376903d7597bb6e8df7ac411768ea860fd351cb144874628ad35bf178c8521596878c09c7d4c78d13cd8dc0a6f4a68e37e2354e4faedaccefbeeb3ff3ea4e1ddab7c83f16dccc54702708aff21a654facda29eacb8b87574bf5eede36dc53d58120a3a756054314a155b5606096f5a0ef12eaf2dc7df7bdcd1515ef55a74f650cad793df55b0393c839e89d260021c2d0d50a1bcb63fb57281fd8493cb6d0f678755e0e7636efed8c8b8d4d4ecae5bf4a01487dd6b6fecba500a8b66705ffb152006841f94ba82b45bba921318173273b64dd692b5f615af689c69c49445d2d19d325a6dd6cb3ff96c82871f4b6457fc3a5f7562924898f9aac5f29ce648bdc3975bb30d00e38aa7e8abbfcf0c39b076b5a38e559224719a2155273474909f1e5c30bfea8bb6fadf626d824b2772676d9251d27d3f09d7aff125057d9e9235ac544165bb449fb60e881b5cb952b28ab97c677220ebc997ac970db193eede1195d9d4911d83794c3f0a6f7962fcb043b316a1103aa2e5c860a24105c086a06ca1cf2f91abbf2431d205d9713aec4a5ccb65b0e3c0694cd1aa81ef4dbd60fb43c314eb8cd57ea454b48226b7bd213787ae7f81017228300995b86bcc5edfe90f30f9c3b743bb5d74baf84af2dea03d465f98311c314e45846733b860089ae5026d5de2607d92e07c26f13e7816de2bcdddf80f34edd0d472ece1dd7dd77d56aec18d7fdcb830d276e3cb6107e3716b9cf3530258eed0e319cdf66ff2d512a29e4f54c47a7a8132a7b53847a5ad7378c9d8b347c33f5606d85dc3aed93238b905335d62f296f4f7db05fc52faede6974b42c10d94531b1f6fa344b438292322d1bc7de27a1a1d4c816aca54d47583237abb8ff412e098fe57bcba4b32c79a95c890e1ed0c0dab22e5e5b3e965a32d473aba5fb5a53856bf3ca35fc302976dba01decc44f889b312797bb0fdeca558a7cc431eabd81e9ac49b9fcf84ccc34499d9bc00abb0217c0a282e01edc8c74af6e78a4366f7d51673affa5bac1f49d2b027b5696d46ffa1dfb33030c8363d47f8063344ac64152737f73522ac99d6b7761abf087e962e7f6a59c8667eeea3a56349871300ea9c3986bb3df2115e09a0177679daa7ccaac3837191aae8f9076ef2f3ba93db19c629bd552f750ee3081bc0ab24c5e81e52163c1d153907dfe51ac797cafe4b1caff8292c7c462c5883dff3df893c87c080402b5dcab7ff76eb4eb5c9c0fd5472bfb85fb67236c5889652d501a6c3c87ecf9b30ab28e0c2271ecc3eebccc53496fa39a7d3bdd47b4f780c13bbe650bf9969e5828ab5d7360329ad9dd6a9325f74a62647c719dc5d7bcc5c1e2276b1a537b60a2fe19ad586e70a4271c79e0d77d61ffd34b1a135bc17f854fdbf7ddc6d2331c21755764b787beffb592c6c4e7f79f5147e6be2869fc6fd58ca1524831191998141c898049219148e437aa197fba471a29252121098521a01292d27f4b3563073db48fa9b4b23b2ac0431ca6aaecaa6960a8e208435b190419ab2aa94a0704db87b808a37d147594428d545dfdf43455758425fc0cf4f415b55021e67a161efe2a0863afa030c710a883254cd311ed66e9a56a61a2ee15a41c2489862a99a315edb5552cd17af6160108736d5f193fe5107d3d6f61295f64b0599085060a6e61a0e3eaa58cf03433f20b32365413770dd0464904091be99a98e9a2a48da0da9ea141cafe7a30b8b1b2be9187a113d42f304027484ddd4f4f57d2543b58c34b334823d43c00e9eee9656a64aaaf211d1ce6aa666c29a9065777567433f2d435b742797921b42491ee41ea2a9efa0e5696febadeee816ae62116481db7300b43077f35b8a956b0b4899652a09bba9497a49a324c55092a61e4e2e06de0eb231316a8ec2f292c0d85796abb210da4d4747da132e6dec8309f6013b8a986b28eb4041ae9e364148234305042a23d0c5c0cffa59af19fd629e84d1ad3abf0d3a3bb4613de93d6da7b5e5b9e5bbbe379f870817cc6651cd7155d20309e84f36e9ff662d3930eba46d33ea81bcdfb0a8937cfafc7241bd82f193eccf8d39746fb1ffbf6d79d85f11d9d592cf3019cc9a7cd14cd749b83ebc48a2f484ed29dcd389037b68b0018249f906b94157ae37aa49c56f1545baf53fe93a6e5f76b364671aee6264d869e041229c83289389687cce84ff33a734caa6479f7ed09f000636b7442c869d90b6b23645ecc1802a4e16ff88822647b863362ddc1d1b5daa72cb739c66d198f8855cca2912ccefb6ee33abfe0a5374ac4c4da93df3a00d94c9f6a9b4a07be31e32a89bfb8747af443cae3cc6f7dc5edd9834b35be976ac90edd925c864ddca8d655b3cdff96fc403ee6ef71658237c821344f38f012682331dabffaefaa90b395537ecb8f207e637d4c67f1236e1df4b17eb85bf52f1524e10a0845062266e807cfd818b226790f0ba51ee464caecdc0c8cee64a96f181838ba37a22792f2c008102a263b34258cb496985f7c58d6adf72134e784dc9969ca9b9e5950fb370f5726be705f80237ec17d91d05676b92561ef78836e80969274dde597a20d4fffcf7df13fdc7d81011e2666ef7457edb13c6ad137da165669acaa418a5c4a60b51062f5853fad1ce2039c3e62f8a36f74c0caafc9172016b414f031b79a2d22ce505fdea37a74a429c980c084052d3345007e090b8ecfdec8c06eb907bda4157a217d7935ae3949e5ed5eeeab7cc1e9532ef13feebea8586612ffcbae01e0180df7ffffddaeb1f33f60d7f07ac2d2b3e6d8feb88a77a7cbb1d74a2acff6bfb549ae5ba99ea79e5a7a5cf4ca87987788799bfdb7341bf053ee10bcbbcb894263c73b4e8e254367ad4baa69310fec51cf6efa32278db7d191b3f279e486094f9d21f3b11dc9d6f59a2b529fe77d3ba85b7692f226674ebd2c5bead1c59cb7e679f85d9ca8aed6966c33717c926e1d5fe31eddeb2df1ae857dec163749d254e4e3b5190633ae7286adab2d547709bcc8b2f1513f6f2f5f49d377e807ca7a5e74da68e2095f32b1e9c92a5c548c2ade9528814c0db8dba7a0d517b150718317e0365d3053347d432379f1fdde466465b65444d0fbaede3d9ccfc99a639a794c87fe8c4220c59a44a42aa7bd646d9f2765103453bab6d8a090ab9c7954290e62f02030b5f7d1e7b29e87779f1eb7034d5d375fe94b751084d8bd26bbec2bb5ca95cf7746c5fd9ef5993d40848a8bfdfdf0fd1566f79058ff9b964d9aa735068e3c7cbf99e87e6a243f8275117f03b254f1d95b2dfeb9a4279d7201b63a36f55be7e1370a8588c7ddb3e8bd52f9aeecb5f5608fbd31902c3cb6f2035f490d0feca2cf3e76fa088da34d078669bfda48e554b475c47e6a39e9c09a024b173960d79df0ca8a75b5eaca00151d9e67e36021ff59532483ccfbf64d18df7de07c383e04b21488e521c391b18ce1c0b10dd1648beea55823cad40b827eb2fb35bc3e5eefd6b239cb0b4c8ecaea94c749e449a9ad527eae936417325c46cbeea38e6286745ee78b71f8ffd8fb127828dbf5ff99b197b59425caae908c193363c9be64dff72c6366ecfbbe378c28ca1ea5d2a3842c1191b144b2a4245124095993a24294f87feaed7ddfd3ef944953e79cffef77ee73f47eeaf13ccf7ddfcf75dff7757dafef755dc27cc15a368e20cf49e43de564ff67c680ce601babe868113ab428299c12349595996b9499b25deae5d2f9a3f6bcf659ec7fd7f69025801d570860673b0244c3f2076b7b68c23df2f893deaf55d69fd04b2cd8bb5b39d7b5ac110fdc83db5b86355582d14a491e4bcde53b79f3b4367d70e031bfb17ffc36e8dab16380ded0963ed172b0f9c24eeea4db4c2bf14f47da6dc59de9e4a566d2faeb64959489e04ac832f8f377e436fca4a36fb62050a1f8d2977b754d7ac49fd5771636e4d1eba824f2a90a77e18960d5129fe35f05b80a15ab114e5ee6b6b8d629a823fc2aafe430c82487d46ed512a16ace101635f5c03db1ebc58a850efe46df3dffd52667f66e0b39affd079b57de65de4879ba73d5ac43687aab9e6c615bd69cb0ab99b54839e7160c5f49fa13bf763b198aadb156b7b2fcc3c235bd4c0f085b9f857ef09352bc0e5c52e3c81f20e5cc4984bcb37ceb47d36157cf0620516f0cb6ed28961aa7582c94d9773debb85b10b21cd2a1b6fe8e6ab2fe8971fed0328963533f5049da7c75cd56cb309d2ddf66bb89eccdecc4534273767d97d5e8d8776d7e0fc841f6453e892acbb87b6cdcb5504e6773517611ebb5f666cc0b9a7106e391250322b802b20c2e8de6a5c27d56b63409148edde9f7822ed4641dbc70ea5a7bb8ff433deb1d2fe2f4543e7db5d66bafabbed3190be367db139ead97f89caa5041af87249af8d519a4e0bc60c9a969194cbb52252bc1a56eeb02b3125b7f46ed9e6de48c2555c08b5ca55c99a127aa8273d69130e096cc13738769b553f171231e7872215fd6c02e5328d7268bd5a3609fa940478d8f6614e3c4ceaefee669b7b44640384e5fe4190f2084093e911c5214ace375eef905279f74d684aa59a6c2d0c9c744ca50c8326560342f5554f19f9f8d35717d6a05e52fa05628fe6a05c60af6eebc6ea17a671cc4c693d17ceff13b57b58f05e6d333e36332d2f72916c7e4d37bcb82572f1f55e81b08f17f473dbe116a85b677b537fb3edc98bcffd619581c7edbf4b5c9b5ff9fa8151b27d0f1ae9f77fd7f8495ff86f6eb2ada187a69987804697ba9eba9e9a8a0315292c1ba8e180d3749271cee80919a9e73a0ae7188ba39da405715e1fa9f433d219b1af1e43203b5fbd95d376df0be3e9dd68c0712abc3ee54bdb2799717f99a1a02256c45c5ddbf2bfbc134f558b7bf21f6eda2d029a4d723a36d6fdb32b9860f31b3898490ac480306f24db594900feea81db685bdf12feafa3034fe486ec260874ccfe59434c9770e1701494586e1ced1c6fc61ff82712a111b05b62db2ae85e593f8c2a597a33707eaa2fe2c10ff67e2922a703ab6fa98dfc5a1fce36c5b5777e8b89cdf1bc95498ff0d65ed5bd81749650d0ca4a15c8fd29b1d9888cebac362744465568d213d1cc2683218e0b1c27cb7ed353fa0605f7216c1fc46b24ec68f498d8d46d1992b1bfb087aafbecdaef234abc1fd0f44ca0ac832e5a743cefb4b96082adac6efa51157fd17a411bf4fe2fefff434e23c1b3104491db2ff1bd388d7055d7c9d2b34f4becd17d92f520b74a36e16318ae0f7c1fcfdea02149c5ae9a8d26796f39d76130779061ed8d0739f3e7d6348bc61226fd4fae26d82854593039969c47f162936286021dcb5765f4f8983df09d9c1374726ca4b6a9f54fea6cc6caebe71e7c2ca345c3fb59fff0c6da35992d73ec631231008fbcbb1d39fd773becc4f2318f0e1069fef46650c959eb9fc36e58090d0fea8c24cf7deea2ad4356ef67c9f56350061eccd4db5a4b093882fb5d0dfa57090d1761534d5b1c05731fe085678b60ef2a7cbc3e44f1494f94cfab774826f6cb4dfca2cb8de78185a1a0e37e2810891c42518235c20533bbe5d8931708772f55dcc31788d549e14456461c93214401a23c606d2b84b8bc64ed4889b1c247a353059e51e3e5ad4f6e479ffa388d45a22cb3dd032cb1dc078fb65c1c3cba14c8178e3a8ad23e76b37e75ac48138b7c1a854760a42d844f37e1c84ab586609aff659f2fa9c6637fafaa1f47d96cf693d6f6d65e4ada7e2c15d9a28d70cbb02899390189733054031036e46ea9ff94c61eee27220cfbb4c989c773b0d12e4adb45715efcccdab1db3607ae2384bfc084017477b745b5d77a64f6edeebcb4cc4c97be886d35f50f9807003b5a672bc7dfc5789ac0f9f713f324b64397eb51dfe44892c525c1d32b93cbfa64416f8c610c8d1311dced4c8d33241c439c5ec3f3f042eefdc59f55b4a64417e23280dde2d9661bece75c2f8c79175b5ce726ce9b9f5df60b7fdb72aa262e61debf62fd531eaf79a4220d6e8f496c7d514efaf3e54596394c34034bcf473c82891b5175819b1af9e5410a9afc95a3813659c1e57dfdda489d6a0a977bf2e3e4cf9a1693f40cfc13526c317fef065528f99ba50e083a4dbd204fdd6e7fe271f500afa0a2adfff2b0a71e5f39ade7ce8d02f8b42b49fc2bf3f7ff290bf5089e17066e3714947fcaef5d3af51994b90e29c92c949fd4551888c49a08b06f66f9623bd8defb30610ae717330722ad32b7f04556f78ccbf200a9165eab4fb7bd70e040fb5fec86d87032a27354b2efd32f30cdcf5f27fca1c957d537415abb7d5c152a25e8004cb64caa507c2609669af577711e2292a715400f429e50e7335ff84e3b374f1cba9563627fc14f9b9b1ba8da59a47460ab2cdcc89605ec832983b9a976a1381458cfdf30fe49a4a3a47e7741fb319cd5d557dabfb0c0fb79aa9d89fc889db5410f6ca180faa2e24d423973fa9d9345ffe85225a7c19ac711904569213f264a0b07d3fac647857244b38d8c5c0eb93ee0346e6c045dedee82d289a514a7bad7ae59d2e75688cfa9ca33305184201a20483219b40603004fccf6af5acdc766da65789657e86f24766a6776fb2e838a5b6116daa110ff4ebe617099e2fbc4c51e5abbb9010794c2eb2093c04832edbddf20c63b8f2910bb0b43dddba7db1dba6443b83d9542cd40f3160baf6fcf8aed32e5183e621f88082eabb90a5dbd1bc54d13cc1042695bc184b67680781c2732a1d93b9df7e7949e44566c76d0c68a081c55fea6633beda3a33cf8c5505b38f59d6ef9b6a8ebf500a262927cd3c488edded82a6c048fad522f7c72036f5454a8e231c075f819cc06ec9c5a9bc78109b3a5d07536dcef61b20cc368670109752ee95463c60cd93ec31dc24bd5b08b4bc23b89111327df54a69e91407ffd0dca132ae37b7ea018fd4678b6172835b3867a84ccd1b2652c44e96c65a2fbe38b77aaf4dfc7cfbee7dd5c54b859bff284ef6fb3388cb36df70b52c364a5b083fd97cc5fd6807534ebfbb456ea72a8ffd430eb4e8110c807947b1d2c76b16fa80a5be3848e8fae87bba9312ef798f5ffde0be7fb8e451fcf1bf3382eef962ce7b3dfff76604c53ae2e070690969b4a43416ea20897194c620a5e0180934168193404920706894832342520281944420a03069a804dc010d9596864a2025902852999815b192d25238a4a3144a028a44c325a018280a85914462a450525024ca018a844ac1e0389c241a8bc14a48a3b158a404460a2de580c4a26038280ad1080670a7b69bd9ed7e9a65ec319c5cb169d87fe45eb347b9653d15044a9ffa5280f62a00391bd7e05fc39416f1ce19337f69870497f55ba85e56a50155191d30774928eeef49ff23f0d6e8df9d861587c139a0a1300c1625258dc239402511389ca4b424c6012de5884449a3a4d1186949b4241609c3383a621150041229818162e18e5809699c030e4beaf93007b434168945e13ecdb024dcd1110ac7482051d23809840406e62881834a3820e150041607c738a01dd112083452d241520a0647a3a4d028682318d80e7c28346d682d4b3c3ef978dce0e6e411d7ec84c1172ba73a631f612f89d106008a2a8ee5e3861976bef9172a4c254f75b4ac31df787d766495569a353babed822f910a0659a6daf757ee5b4d0205b1e97b2050f3bf00047a48e27eca4d206a72502032739891d2f048814014c04640225234eb9f0089f27e334874995c9008d1307ef7ca51ab1de6dc510937fb5fb9443e3c148379a6627319d62bbb65e064923ffbea89f77ed506beece78b7d2620aff3ce2fbcb2ce3a37d03ee396da7d9840fbefaa35f7b9e9687f7fd7a18697e8d1895bff669048f49b32039eff556890fd463c81d43ede41610590f097c2c370e6bd2634bad47b7d483c9fe9b781505fe6bf110fe8f03ef5103decfbae2182918bae0a79b4f8706760e0d41e5d5e6be9640bee79410063962e90784c61fa6d1fc30b3e66a7677e432a9e578cb49f365d3e79e9f6f3adbe44311868596c1f702def0d6dff919ee38dafb8cb73970fad7a77ab2789c778c7d2e663dfbcae8b6cfb7144a7725974f80f1d69670c9e00de479fce15aa4eb975502f433fe3d1508ba72f7fe791bb87bf016a7d2b44e5bbb25170e4a6585c6bc3271de9834aae5ccbb5e9dde6cd348b8f58f6a9abf251ab1a4333def79a5fb97cba4d340a08d899b3f4de2c5bb7a5d012f63039fa817a49180b77a3747076c5c8791f08ef93ea05c8d29b4f0a6afd25c2167dfc67eb11228448a7b82766e838e5b1b9b8183db4566ae7f59aa62e0b5f1dd3d54ef160239f961ac966c676ae2e4004edc8f2f1a2c7be5b03fb55c95c1ae0463050e322472c3d04657ec100bf0f534ae538b64a5fc457d2b17ac0c3a1f681ae121e081fa63af3e459dc09debb6afcfd734cf96f765dce353c28145f2e322ce2ce59324da4bcba4c798593c06ca244d8147de87f41e0be57d1a3c197fb865fd2196730844222bb6e54872d57d90e4439d3d20489f527086dc4bb7cafa43d30518f6770ea00cfa6b8f04dc7173bf650fcffe45dfe0f6ca4bc569bf4b52d7e3e6cff1fbdcb264aca56de0138176f73bd206949239cb68e053c148d91f64369a3b16a7014cc1c6164e06be8a6a122e9fd6ff21ea739716af7266bc64580ec35b7155f1348bb9118bbfeedbf3f70dfd7e74aab1a774d1d87598b5bd19c6cbbc3053dd01d19d463f617543eb617cde73c940b99179f8bb7647e6c7beaa5e7ec7428ce5fb0f981ca6cbea6141d2cd8cc848b24cc270e706572da4cbf74b53c5f708713173ae1d7dfbc137ec7f77ab56dc4db1b219b582901f7379e579568460c67b7b8b84cc90938768e222647385455328e58f95197f1241021a1cb90203c81d94883b02ddf3b5d867f59859d9576ba5980c5f5ddb510faf43b99178fb09ceac39b856e2d214268412070ea95e5f8af0cc76b22a534dbee80acb3f1cf1bdc613446979525dd3772fd1f1bcb495e07eafd249917a47e8181ccebdf6d2c7e8d27cad879a6be2f36553b0de4d248a536f02453f84954d6feddd972ff103ed78b67f77f1c3ef7d126b82073cd78971cb2c6df3ac3d93ec1a87c424b508cb817d0c93e75775c45ebfe624112d5430e8d668d977ef307c6a29f5ef67d9ed22af761e54fee2c45b44964ba506dd3074fb7c4113b031ecff2731eef794e6fb38983c8763de29091fd9cc18bdbc7b4c2eed121a1e1d5bcb15dba5b3f1e7b3d9b7da66ffbe0b1a7f9ae673711a100d51985f7f9564c2fb9d12afcdbf9873b671a28bbef865c98b7a9567149e2dcc44e047b2e83dd98084cc74a09109592f46f95cdfb9152f820f0a175ac512e79bf4a3de58d68f31ecbb2226fc5b3aa90db2322fbfd66fcf81ebfcf5adf9a8ab9b2116b8494b5f82d6dfdd3847fd07e78ecb17267d4ce246b62f8cde2fb9cde85e1c3e03e8297dc3bfd372bfa5700bd59ebde9d38f4d8527ba7c0e6e9f042715078bac7f8c7dbc90531611a05bdded5454b972004a6c0b5e889c33fea8c958c783df194eaa88d48d9e1ad8583695b570d6c6249d73214071c65df3050c5f4716ef998bcff75cf25ea4279ee944c31aa5bd3e9b779e222271f012af191374c1f1baf761912b34f165b9edc33ea1ea6de55720e36ff2090466bc4f90f054e80c0a4728140f12cff7f8102578c7f13f7fc72495694817a1ee274cdbb41458f6aaf33a01eacd3f4edf1545fe68d2870abd3f9dd76ea2177253877290476534c9a1b0899fe5781fbad0a1c8db28bbf360ef7d32ad5df0a9ca5969f8924dc53d2c2423bc4d0d7126eaeaa14e21f1aac136a8ef5b6f4d0d2452b8718204d7dcc9ca5bd9dfe4d0adc719f5956c1a305861584deae2dd9e8652bf11adf7fb702e750e5052c34888f9aeef7593c3f8497a1db56a43911e173feadf2c075cde3fb4cf6efe1a576491164a82f7eb76de2fe423974a093ee569ff8e6fc56fa076222b1363fa2c0b9ce8c8a65722971b58b290d23badd03e0f5ec2ab547733ea85af1da2c2d879502728a12fb556ef66ed53ba0226597143ea2c736d198e271da20e7d1d4f4443e5758b5e7927bf4d6bb0426959c6823daf46f952b8f7d0975351b0bfe7c880a0c1fdd03ed3afd28954fc8ad606e68f73bcf8f0573702116191bb1170287df9f016852d3f2cc23b38295349c979476238f193567cc577a9c4c1c799eb720d9b56debdfe5fbe8bf00c3e0d9961f8e377c847ad43c5955641055b738586c7cd311654231f72bc5e8bff1861b472e49b5463ca0cc506ee6fd80a39a26e6debcc28e99d40e83c47b32552c37ecf27495f7dda5a500747aa60aabe28fc59d96a0109e2f43e69f7d065427453dd8a3df3ca99dba3ff6e29fec2cba3f65467c28fd5bac357cf53fe572d7f23cc1ee5c17c3367df55ee396c3874cde657d68f94e4fa7bdf96454e9767f26ee1649631db5da0cf79c8c4ab166b075b7f4a74be5fbe8e26a1dec43a34e4064e70311ba0165e7a81dd177a666b38db0919b5823e79902d8ac026f48cbc6dbdbe0388990f79065c862342f15f80ba50c328cffa607244e5e6cb74a4a23880889f91738422a48c9d366f23e37e477bbcf7efafd5fa6994c7107ffd4f329aebb5b5512b4fdac20cfc81c3fa926fa4df05c981917b8774b05b1b3fd946179084b52edc7330f373dffde7a3dc382793db5f024266ab8c33967f0112b30d09de2331a1e577e9b8793d8573e02ec3b32fb8acefc45be40cce39dda2f64b63fdc96585f81a9cdb87e3273d4eebe423e116c0559069b45f35241beac58ea877edfacc278046c8ddfa35e2bfb136518d3635b7a66a79ab77944513a2b87a4a97008d9e4fdece4822d94e96cebbe2f5b60b3a30e33e6c1a4269f95549f1af1c0c17881d52e6d979aa9a160779f4bda7972d7eb0e621e9a970ab725ccacd6acc903163ad4feae0b498d35d5d4d099a933a1ccae9bf6e60beca94dcb0c0acc4a4f3e45a43c0859a6b488e6a58a8afd32bb541dfbbfb9b51ca17c89c83ea482071129c6fe0398f6949b41d49464c836994e56526731a9e44190dfb637fdf999486c3d3cbff3f9b255774d7ef3dea4fccdbd093cff6d8401fbcbcb587c25dfa49efefccd938fb550d6d3908b3c4b35f547f942e971ce643a1937f4fe8d1e4e9fbe5f2318505ae43a82fea85bb0bc1c7070db88270787650eff1a30c6ad2d6a80c4422973017904bf7dbf1c47e31ecfb8e3a7a91233336f5df6989bc0e71e3b856758c3731b11195720cb8c4b9f7382087dd95f68533cbf09edc6b1dc0c410ee34144c618642bab1599161398bce5c53066d2c77074237d903ef3faf6e9e31d88ecd15a11dc7656dd3179038f9f5797773ddc9222416a8889e42d31fab1e053cb2f37d24752e8ddd7f0f4855c417d83affea9e52a6eebb4cf1eed7cc5916d4b092ee142dd0713d6ef232da93a522474b0cd534aa6b8b27fe518ffa9f51e8392b915925bb39754cd3f12734847ea2ca122f32853fce975f223f30f02d192898e2a92b917814821dce46de5a43c2c1464827febd474feb1f927f3fd1b46cf20ca683f9c71109a345cf94bfa4f5255044839157ea52af81baabb807f33fa4ae6fa2459537c43eb93d4fc6ce87cf8a1f549c943de758a61524e29f23e0fe5afce7ec5a18c76477b6270be665feaea90d5ffde6312649e8f5fed6f355bf8f8f8f88e27e4aa9d880f00bc75cddcdedc22cfd425e9e126397ff4b84cf8eb57cbadb291f5efe2b7eb0cfa9bc6fe638e1bf55f095bff4423d79483fcdef5f7dbf72f32614a92dde321f37c68dcc8014ceef9f1336e8fd813315fb148bee10efea7f4958b57b7c7b015b15f2ea81a760ff412ccffd51fb5110c50983622d023fb4f2e5cf0f718d3a99bbcc9b650d4e1ae06624e7d1a6563e6b00804155dd0844a675a6f62dd62747e59eca8ba12728f955d4355bc5dcbcad2ea74c39f0937e8bf44e8dcbe93fe2df1fd06f540edf5252b5d0514c248e120c1492ee490aeae90ec0f6447cb8fed3821d5221a56e4b05f7453c9d1511f2f8673d953d2b26acc5cf7170544eb003a794666e3bd12ef839def0a0b9c03ab0ae43e198fe8b5df82d453aef9a0c35e49a417062dd3f303e9829b8dda5fdea0b54da256f0697e70c77168e2b40f73a3a39be4de893b34beb63fce1abeb6bcf94175286429289a978a4019782fc6d2791fe8b078f2cb2e50b4116dfaae5dfbfab79d4dd93dbc747eff8b37aa6aa38be99471028f0e1589417df18d60a0d758a0f642cf7204a14a27da39c2d2686c377fc483cafe84a09683ee45fd794580e6eeabf26e0f86eb0e0a5fb37dd48bdf1456f0c1c186f90e00bbfdce4e036acb55edb3e445b56e0c7ae28ef6064ad09f31e87b81fd7b1ae1098f18752ae3a042b48e05afcdb94a8f2bbbf0430ad90c33cfa51cdd03489b8ab06af28d30a5e92fda75dd9c3293ccc4d1d70b3599446e2fceeedd769bf1af3a2e70c21643a17f771d1732ad871fabe3729a7a5cec19d144e94322e899dfd534a648c19a8421f577ab8766cc7b094c73a42a6fb29279ff7a2d7ac52a214fa98c1a1bcad5ee58e6b95faee0489fc940056fa44c5cb5f15be111444447968bf7365710e5745155ff4918d31d535f46d9674c97da10998119afcd01aef495898642c1cb37c089d75cace4654c25e7046eaef9d75ce56b5b084f556e6f560379db0bbebac59df936f8233b2ac132643ea7e5f9ace026f8daccc7950365f13f90fb51838d574edfdce0ae71aa5e3f477878e58547b4e32d3b1e2f4c56557039da676d025c3a24681017550fbe55ffa0790656219c6512597ceb0d52bab3726c216aa0e2e45ff94e73fe90b9ffdbf94eb792a991fd88cc7b294fc19f76c0bc26232aeec2926b0426d6a880b86507a5e6f0f2474fb2066a4869a5ac64debfae488d799c57903a613bd9afe1b38931365bbb3ebbbfb562e7ae0b0551be3bcbe9e29b052fae7269b525d7f18f8dbce27f2115418bdd1ee576015d7674f479c44aa6fa1cd7a5f18add32c65a47f647f69b5eeca179efb86f0fb51646cbbb9b7f5ebec74b9b51b848b98c7f6b9a22d78b95bc5dadb27b472f2deed8357d8afd223d7b7365d5193c499917070477f0345f8eba69b21b0acbe19ac2d2c8e2b3b818cd28b22fabf4426f9404c803feec16e3ec7a74843313bc84ec96fcca2379538d86212cab02b72947e923a6638810f16588e8d6cf34398800ed0f333fc613a4c7595b001ce7d0e5098e1e1cddd326d7c25fa942ff97f9f1eb55f04f9ba45d3031ad096eaefec2226d38c28d37db494e48f4c5d1f6bcf43c5a57b3c14c1d20a0e8e604b2f3f23ec6ed00079b77f9633fa2bafebc7df6cb2d4f5004bd316db6ea92a5a2a863042665450298f95a7a535da81f5af6f4c3b77eabcc95072df3cee9a2c3bea18b7d2be4ff4768a0a1d8a3c9b74e3a59b5f325cde094ba37df98b24eec3910b73dab12867171828d00bec0a8d1360b3902f1e45acd51f1675ef76d6e9e3b42bfc713288677289dbc4af977b4b1d47f468837062785c44aa37130490749b8a3244e525a1a2e819682494be330588c83231a8e8021900e70ac240206c73a384a48421d61482929045cca012b8d7120f57c49241223898141a5241ce1125034cc0185c23a4a20a4d0280918540ae7e80847493a48611148281a8342c110182c028e844ac225113898949434aa110f7469e5d24fa977df0d988d10700e1f9fa814f0dda14c0311b6546c679ab7b5dc09500df93ea1a9ac99979d7d5039a670c1bad73a31d9891d238612eebe4a43139e56ed0f59f2f9ecb0fa836ba3f9494b75bda8488cbfdcd66332456471494e7ade8c539a89a3381e99db8aff9c1b98afd435bf4e303bb0dce03cc4ae045788eaeeb8735023e455d1ebfe5d45499d5b01b97bbe4f7695f1d48ae71eb6ccbf78191271252afc56cb604b294d66527a05a7ee9f9602c5970f7d7547fae517043b99f3dc1cd3b6b0a0bd85d9d8d75527f77d433a0b2f5c795d1fd691f99183ed46fc53c78336d039c7f54eb6ae0f90b64630b01c9149b57f9b69fac255dbeb2c2ef702ce2e1403c73c326682fc8cdeec9a4ed20078f0e7f55f38ee95123c5c8b7e207b8dee69432c832d8dde811670e2e37d36b6dc44017bd0b2c04140921a73cdf1b968f9f4bcfb8302233d69956a62f5f3d7449b492bcccded26211f3e590ad780fa5b5b4f04edbe1c6d75e1f5ae4d8631fc77cc64bba4a41e1534b2954abfec87517db21488cb020cd55590a58a4fb3cf7ae5b3a11063e90c6d8c5e64f81e65fb7f32b4369c3a74670cbe110fa4ba06b8ded7310eb14ef77a96bc82b92272237c2dbcdef5a5a1f5d5de1edc6e046018fcee3505d3d517c33215484fa9a8cab8d9d202e439ed2b7d75bd2fc31e47151029bb9629ef46833f5b1a0496b5f9f4f82bc18d3e316b0ff4370dcd4f8b4ddcbba9201b8b275262eb11115ff9edf4dcfb38f229733e3c3e1b34734fa9a53d69f8692999eb984ced8c22f790b069399907ceefcaf274324dff2a6dd93a89eed8b72ee8d5eb7ef7bc035747dc314c93f96e097cb0e02549848330d5f718e5925b3d6e485aa9be29fac9fe6fea4bacb36a25f105822d0385484cdff046e63795baffd1bbd7e55b72d951c2dd0ca3226fcfcb5992f37970f76c8a7f72fc593bdb4d5aa20fc249755f51a15650544269302175e67ccfc99ef7cdda47f3c2724ea1f5c6564b6a16e90abfc264e32dcb8ca28a5dd278fba5fdcfef9e9cd92496f655163013ccf95bb6162f149e8e1e7e1f957377bb47140b29f9e579b2e3a8cbd55cd1cd8e1f760f44a5b44e77b9358ddebb9527e52dd28c59d90f23c50d509234687dce738f62e546d8d8c5778a5b53b2ab075d9f99b1706f4e80cc2f68b78d6b96e78bf0f3aaafd95ef47eeeb40a33336b39d57ae682dacd5ddcc9045ed82d891d64294be240af8183f54ea9d1eba7faf74b276f29e9e17acab9366ab99b1e7b41c355d1de15031c6cbee78e7ed332c8cd645a7b2dd4e1a2d4d8a3839d20730b706c2c6ab3c2e95b7f464481a34d22d3a3a5022fd12447b50fd40a2dd5ed79457411a97c104749914cf1742df633993baba676213bcbf80ae4d2ccda7e43edf1a8c53d893cd25aefc282c474a66867d300c409aa8b6fd3ae4c968a253de79aed9acaf0b20d15cc94d4ea9890d95679eac92e226526649932edd3de0f3b436052562330a90613687278d2b7bf13dbb6dd2efcacff8d7d43ec89d267759102637822a5c09527b85c1078acd38378d54b545f6507cadfc98f7273e5de248d48cf2b9c9d0bb22fcfee5b779a42a014720daa396e7d145dfbf72cc05464d9e22d5d872e168f5ffbc857bfef4aeaa5232ce4a9e5a4e246281441e0cffffb59ab835ccfd7ef4e2b0d22f324b3ff5d9e0d588fcabb60ccedaf7008fddabde6017f4753eeef0edd1d4fe2f9d4f68e29fd69dbb6169810bd0e5fa759997f963d0e6ff6497af5dcaa022564eff9504755db69c19726967b009e1e72437e07ddacd1d8feeb8fb31d3b70b9b78fa66dca0b364197a8272df5d8ec6a3d72433b5283aaf185c9dee28aac12eb097ab64b9b9296bc4d4d101f785585f812a8dfbdfcc032b3a3ea64dbfd9b6a576b8023db786dbbe48e9db08d175a92d4d6bab183cfab2dcd4fb446e876ead1c3de3836cd629adde0aceebed32991ceac6b5b5fe2f8fcefd03aefe539a90af0db51b53f950db44a26353ede99ec8cb81e849b6ebe54a074a6e2b1fbaa02e215f454a5c7a3d8283de59aa3c5146c6a95189b1a633d961f7bd8b7171a1dcb26f6340b26cd1102f8a4e35bfa41b343e15432c91f2e4fb65e3b54b8db3dac59d4238067751891a732557cce46f8c0ea0d4698dd1adfee534e25fc47c52e6e25703ba0338bcb34825a2d0b30b43c0135f20e5359de07f33417074cad17e76ba4339a2c469e2f88967cbc297ad5d2c0da2658b459dca6b786ae3dfc6da470c2e89b69efe9483f8f26b7835dcbd1b5b68d6020587f9a42232fb591722221c3622deb7e14c5acf9d9b30552e845911004af262f109452603e7322bec06500ab778df5ad30ccf8a25074d9f342e8956be73df5e40488e000c832f8934d40fdd9746452010890232ee9dff2e4ff48cc267d43d277357430952638b7a97443e4590e0577a75bb2e397ac3856eb296a77d983bcbd25d63fbdb1c45fe991fb96c7a8110cd4dcbf6d8e38c3aa3ad63af0280a7c3ce3f69b9d58839481c77b85d62e3c615c9d04e4580a990f2adfb3f29f349daa6d73de33df1d54f934f282ecee8b21d0dd6dfb0e10c17d906570cfa7138179e4cbcc4f1020d646e9ed7ab8bcde1b6a55007cefa5caa927d2bb0d2cccf14430b6c86590f65f896cee6f8df713a57c81143e2a0cd2ba52941322ccc54ee68e4745a65e4d8a2b462aa10e2389eb4c8d78a09d51aa715af28c096c7b2e71e8e419f445f7e20cb1a333176c1dccbbf07cab8240c88edbd9f15b69ee8b76eb6cb396da7e2af9e2393d08cd8efa24e48b7226fe17ded597978aa3c13bfe00629868be177e43461e99f339367486a787ffc08dce0ea8297a172e86b2aa5e0d39dc78fd61f6753e97b3320f0677f6ee65791144e901d8f11dfa4023de2ea75ad7951d52c33dd81bd2345451379f76f688dfabb8de57827f55eec9902180630102c59666029d7063ba94bf85dfb964f51da782d30c628ff5dd8331f4bdc2e79aadbeb4fdc7beac1d6c71ea43b09fa198b6a62a507b9c937c2e21a8110c785844a0ed1da22509f7f2417cb7c489b5036751cf9c4bad6b053a229425fcfc81ed136c1435ae86597a769989f05d8eb5726287eff6b0df663b7d53e70c83ae5f3d71930c647913229a97caf20bb59641253a5d229183c1bbed7eeb4bb313267593fb6fce974865c531273307bcb60711e99ac377f2389349672021c2b4c31b1141cd527beb1647cde6bca0edf7c2c3e292af8445d9ffff74fd2796582379a61d29ba1c29ba0e9522299d86c40bc6ced6c67c95c4762d81298e69c1d9fb8955bd7bc5c4d49984f3c3a4a03e1a32b7617229275fcdd170d98b843423f56379b81cfd3db5ce81fc34ec61643cfb57cc0fedffa5f9a17c66e82ac613199343c83475b2f998b828b16f138967d0fd777ed68799fe3b3febb6cdff9d9f751bfdffe2f9f9fef90c692a71feb88e4dfc1f72bd110c78fabaca6527db684edc48a92c2f1598bbcea4e6dbcc9ee65a2b368311e864e707dce4d8ab478b35b4b44f8dec574e618d1f3be5bd755bbcacfe0b0de691e329fef57ffb1669fe337c8b386994231225019786e3d048b483b434561a0a4340a5a4915270341aee8091c6c16112300c1a85c4c1715228ac030e0a43c3108e6807340c877124f57c848494231a8984c31c1ca4e112d292289423544a1aeb009380e1705847949403148992823a48601c11189c83b4a414c2c1018afcd4031c02268d6cc403410fdd3e78081de340ddc394d5c4cbbc9b1939722196c57c3cf9a27998b257e6181002d51f1b9d3cbba85b6a3e1cf078e52577c3d38c77c1428ffb436426e125e74afef4f2fde959ecbc942e2793233cf16aff3e7195bde09841c49b6e1a37a36ff8b57a4aae9982e063ba48f3d6c0271cb5ee1f541632bf23ddafabb48bf65b347f663026658558a97b0a4e52a29e3c915af3b449dbebe43e90bcdaef5d5ad48c879bb8020ad91f13d9673cd986646f51f303bca140e5c0550147e1a1b741c3161dd7265eff9d62e3cf2a931b29e9adc57400fc7220dac6671fac776a0b9b7411d6cdee57227aff255afc32bfdadfd60918385e22b6f856bf819e81200ba9bbd4785eef52f24d976d227c7007e9db09ee5745006f6551dee36fd265ed698317e40de71ee6de0bdc77a5b66a9e139aa1d1667dee1511fc18b20cee8de6a552fc536ae2b5d3ebcbd89f71de1f0f70365e05c5a5e5faf7ec39b5230eccdc0ff56c0411c1d870b1f58baefec026f3d5c7e31a3191b46fa1a432e83c745853d4c3a1379e9ddc5477e412f9495d57325da2f474de525f7707d1f8d2f060b08868f06d7bca39f3a062b305164329ce1ef421a7a7e2eaec816058cad1f1e3b7b2ce0c5c84e8e94147bbf62c31e885305fe722fd7145ba768a1f90a9df5e7774d69c7e5626d80cb5e87f50cd595e4161c8db2feb683960f6386987ac9db6f58bd4348136ae67495a73255a685f61e4383fdd91f1bc7c833ff3a7ecfb331589d5ccef2c96d00806c68c8c4708e77cfa96a7ce9c1dab39fc3ed976ed9a46d8fbd9ed19774edb331aae02f67301569a1e8d91bb6f5755f3bf65da35e8f5f25df4e8c36d01c013cd96d9d30b44c807c832e45d342f55d4f968dabe68fa0f0449ab9cf4f38c776ef17e30a1d6caaf6c2d8e62934d800ff9c405dfbeffcc0604224262e44665d77e9bffe4cb6bc8830a400cee2e8e2e4a58b4b7ffdfc1341bd94cbfdacdeca5d3ec6ec89b1c666bbad9f922ea9251eb9978d98d5cff1dbbd1775b509d7c73fc14e8a7a12a30631a77f7d760ad93cdc11797e366aa8bdbe6cc9f1b9abdbb9e91492a0985eaf61de3ca2c33c97582771a1ae2534746f54e714df5de0a3a36790921651fac32f0d51cb0b89c6766b862f137107f81d9eca16a0d89055b73dde051adaf609fcc7c45ddde3d7aefbb8aaeea563b3e06d931acb5d5a1e92800972bda5106f69dd6b8792e79e4a3e2bd1c31f50c8ccbbdadc60ea16f640be4c0d5d7204b57a379a978be883e458646ba89c93dd398b473878ee89d18b8a030d3fb6073d2b3588eacee1e5847b5eadb346e12a249f55d989961b8aa221ffb39398975e9156fc47135419d129d59e6772236efa763b72f3946d0d489fa3af2812f6402821e6fc752adb776d94cbc0e1bd9497df2ba0c6380fe03f136d4f4f3b7979e373110994f80969953807a0d795e5ed34dfcb706f785adc5705cdd7a7f98bf2df6ee23299f1bb8ced417af7f9c6254bbccac5c7d63a921fad66c8c04c45f8640e99a9aae56686c39698a7262de7db0fae15a5fbb05c2770e5f6df6c531db7e9be682de2b4cc41fc3d3be35d493c8b5e7334abfdaa35843199c6acac9b85f286c3a8e3289b623bdc35eaae414df777cf7b4601047b4b238a03e0c9eab970878a8c15a57b2e3c64d498fc7762cc17bcdf72f1b4a34ccb815280352b8d0f71ed94bd1c59c2bbcec63bee2c7e734f378d86cef16a42d580f8bd1effcb3f23e6b0cf75d1ce8f31fd1eda13f1a5bf22d3ee3bab6f2c0c3bb8d6040e866b54a85a45c9f3c48983829c8b06b48f0be7b0eb765e19855764e85ffa3a3c0be86f9d39683f633f02377bb9e5df63cd81bab1766dcc8b95d79bb5395fe892ae7ea12c852e1676e1755cca795194323010211c08da074d0598fee4f6ffa003a0caa5304710957bf0dc157cbe0eed94c80789319adbfe5612aa20e07b72df8e9e638b79eba7c963fd750ecdcc0a71df03de593f0da4630b0ab52f552a2514b69a0bc85c25b05e734beecd618569dcc2d0aea131254caee430076deffa2381384a2853581bd95aaaea3ddcbb9e8da2242e3f1e5b09314d9ed057f551dfb48d86228f84bab8eb52f417bf6185a5274060fcbb95d9b2d3f8b35cd587fbd994b908a90203382e217551d63380abaa83a60f31cf14650bffc64a2d259f0f382fdb545dda0ea0d8ff93fbeead8fdafa2283e2dec47823b56ec6f9ef0d65371d188586b3ada2e18afb020d5efb4e8aeae7ad726b21050667937775893b3c6e1ca6a7bcda20fb5e23b8f43a218d94b6a6bfd5175edf3afff8ae238ff59e6fe8f4771b091e8feaf88e2f08ce477aea9e0f7a6843a0e9d1245f96e5b1978d68d37e5b8963f0e1dbd1b75841410cf4ae6fdebb5e8085d5738d47ecdae9c29c0ad778bdee18a72dda1bc58b87c948dd261d956c5db5cee65589d06a11b8a4e7697ed8fcdc615690da73dd208083caacc071f387efc2e57401328ead69389cdcce212951d02a338dbc924caa29826cfb72b07cd55a6609914785a93509e03a14ded0f42a2b67417649e325362392fccef0b0fdff7bca6fe1a097b225a792fc0fe90ce6cd1ccde51422e836f263555ad8f8e5bc14a86ff81a7e503a9b2d5570a80f5ce03009df9b0ae88215187beb04277a844ad2cfbb8f3d0dbbe6ce158f93d66d5694b29d174a60496e3c9042a7389f4c4a8216d87140575cd471dd9e61ddc545ba25775630d1f37d100a05cc0672f29ef25f8d3424c7960687a7241216304ac1c9836f8ba0501f13a97205f74a75221f50e250d8f24a0c4fd11f19cf926451d6b8c4e9fc8e4023de09525e7d937c066737612c973a28308be0659067f662287f77ee11e8c1320f91ce9c487c4b3364c806edf0b51fabe00185bd334670c9e0856ed6eb99df5af5c8faaf0a6657ae6f9771fc61f945c9cdd5b7b8003468a32f8fa376beb94645a339f94462ff1377bb9f327951aea3bb56b2e4dbfee7bfa3cafb88ae3a4887eb7496f49191640a3eef0d54a77bf7c1354946dd6b23ba7ca234a480fdd858109164623725fc955bf812ccd7eb2f44abf400f94ddece949aa1f03940f17ba8a269ccef43b1de2ef4919908faf8e319779fa55355583165f4bcdbcb93671772dec2e01caac9488b23b64e656f80aef29c8b43878117e97bbcc3dd0ac4be3fc83165779ae463c3004c31a71debbf7247df6f5d5a9774f6bd9cfba2216d4c2adb85c2f5b132eb82b0322eff764f4f754c8d36ab76dde9bc5c171c8e1d4c741879bd8fc498d8ef2f4bb38222511b24c5919cd4ba5f5c528a75028fb5f9035fcf49ad9b08d48bf06bdab15f22c8b2ae2644efba3894baca7e6349567a50298ccd631ccfe296bf8037155212617bd37fde859fbe6b7852ef8033bae93821ec883f2fecf670da7d5c5f9a375d17e6e3ff9fcbfb386ebe1943454742d5d94614865b88ab75168a88eae9f8b1ad63b3850171bec6005874291e803920eca86e646ffbaf17f25df0fab54c5855c4569f73e91f015bee02f5741f87082848fedb7670ddf1670fd16cdfbfb195e0ebca727cdc78b0d0737395458ecc7b30df50f31d49aefa62e7e9d307d68577e59aac1990c3ceb16886883df3e6fe767ab813d37466fde79b583f47ecd546398fb34559ef6654051a3caf02bcf2b7226ad6eb1de65c774a71e10f7bfc3038732823fd01b85c5bcb717b12d7c79acfcced0d6433d12035d162f72196daefb99fc09277ef18910206c26bf194e0c777d98399df8387b93a11e6bcdb9c9f3fced1c61baca5a5706370fc4e69f094e01bc9e496d29d8e4cf656c5b0a16b693ba3cccbbe42ebab5d59e5915bde7f941ef6aa2a0146859100a2c0bd1cfa68b58635963562e1c3f8d4cd6953cbd8c7f18416138d3e27365b022edc77189fa6581677f863ec10f8345a8de80fef8337aa0ec47ab5594d32bedbaa55f2b3c194bdba40b32ebf79f4e5f97bece553ff5bc110c6c2ea1e35631ce9d923d92c87dab5613b4508529dcccf68a373d77ebd6ec5ee96b8000d77e75b30016ae83ccd1adb066fe26aff79015cb1cf804ae5bfc800596e9229126719926c1e973e0d3e6f983e9966db7249f7b083a5fcf1b503fc65972a71e8837c21369042ee905cf6e44a0d3c15197b4a472cdb2d5f65cb8fbc17f34a93ff67b89f4d49aafd2bac63d5959d77f409d56bbae41417d06ca41e67e604f9e4549cadea51e2661306d77e46d14b97143b52dbafa3abde5f60d6f856426b2f9bab0e86f70ced9ffca0d33873e2b6672efd93565fd67bbb5b1f6c1da2f1523d7bf5d9899ccfee37ff386ffd581fc64fe95b537a388dd8c5a22f5354cee8551906a3a99e323572169dcc8f87ea21ae82f0c17d1b53ce4c4147c256246f5e1ac736e9c62d552cc99a6897ffce55f9e51f8bff24d4abebf22c75f91c84dc6b1c5e0d2b8f58f789b491e9bb6f155f837cbf757fdc76d7593d7078beb6c2d9d4bb54f7936fd6475409924e2a32c0e74537458b0cd51373085cb4bef96284cb99ecdaeacf15ca69c4b8bfd8d0fc71b30000ea8178da9376877ad8228bc4bdd77f7a13c912272e0c9098a74134f65517adaea0ac85259342f1505618b7e1b618b51d2bf40a7a283bad773aa7f4c48f27c6c52ce56fae69e7b0ad5de1a4127ac9381cedcf88839107a6389fb90a9f5e3d27788f7c71ef608d95db05bb9bed969827ef4d866f142faf9bf722649fd817cfe7b732671fcb45ff1c791c78bd6a5af032573b11abe699e6f5819c22a7171f77a50a96f3516e6a329ce5fd121655db19279ffba72f8ece15c60119f6cf9eb1121453e1933dcd58cb8221976de2681c68f19569cf42fb8223cce9f8bb813d3792f66acbf83228427ffc8458c5dec9898abecce0967d928ae1a1e7a93904a78c7298eb0ba62119f041d23ab1e039384e4abefa7cbba66355ffbc42b9fa9a5718741e7d832ce86ce54e6c4afd0153f04f53d9fc9b9245d782df80790474f25ed9d6d928b800b2b63f8ab0a015f93eb54e25586cf7dac171f3ebc2370e028a0519d967369e74773e38f06962240656ac2b996830ce2dea3b2f9ec7a14eebada448afbcb149d0438e3ea6799a32befff8e878702fb031e9eafc825a526d7ad3d67047a1b8a5f778c4d2fe20bf8d34eae8f9d49a2fad81eac603aba2bf9189cc3c695559fec7e6593dcf4beeaede6174bddf9a3de01a4ae9377f842be2acdaaeb57724df4e620e2a8e3cbaeb972d618704ef01fc546e8cace833ca5f64607148e0e3729ea9e735eec1c8ea9bc5e3108aadef098491f08bfad762689a64995d73b572e80f8be42cc70ce2e7d8f5ec13acf7053571d59c74343c35776b1b0ffe7bb48e27e86cbccb2c4c3177f2fc205625dce25a88c7ab5db15469ee3765b133aa16ba8adfbd39b8ef25e6061adb440539d8788b81ec0c225cbf554efd139df4ba653c59aa768aed79fe4b7061cf2f74a8d58d9b34554c31e755fdf5167b6182ea85710f14444460a6fcd74f3e59f51eba06893c8f42203c3584fcddb974aa983b58438432c87722c79e2280eb92f2459337d8e5a7fb2a5b3967d2a6aef54a6b4d0c125cd9846cef4b5989cf6c4b2db9a5e6147845680d023759a9bb68ca954ddecbddefa068b670ab19571d258abb9a9d7c0dc323ef790b8691b6479134b342f95e9e7b8d04f3f748c62e95ba04fab16fcb3173b5d54ce07e4f44c1ef0d2bb8c27d2e5aa4b008f98249c8fd7409c0fbde3739c7c7b6b6b275d56ca5ef56a3af4d5240b9729a62d49647a6abf9692c51de85c91a827cb143932d9ca19c7dbf6beb4f81e1ce5db1d915931bf3b8e4c2397c935c0c31be72b8e0bc638a33d9d701b1503118960891f6ce4a376a494b8a7af1b9ff65f6f7b9de344cb4190549c132eb75ddbc8755246c2b73c0eeb6e782d0d8749f47f98bcf153ff53c5847fe118e87d3b0e0e6adacda592a9a8539067685190783e25a9f79399d11c324ca6a104fa9ddf8fb4fe4bca7341f2ba3d996b0044a66765a386aaa02e3a10e7eb82713383927efb7af21f74e215feb8683e8a4c43fbabef2379b9a7ee39f8f196db31478393644ead8c50797ec5e6d961daaf6d0a0f9834db5574e4f452d2d87c4af71932e7e7777b96c88d36d990277e23eb83b23de582ca9daaafeab495809b182c62b746523905949aa5d84c09dc5a19ffbd402c88dcfd83dcf9dd50fe885f91315ce8869b8b10267ce18543f39e94abdb5d071dd7b2ffe73d5d8ec55a1187276eeb5c5b4884b0a5d0aee3d54a78b6d4292b41706614d8314b5f5b538a5a6c6793bdefd2f0aa9ab087b18b720ad0ca897aa29bb25c7146a54a60ee945ccebcc299d8a8f997f2607b7bdebbb94e45440812b20c817dce2328fb853f524200174dff70eccc7cc3fcfb9589dab4e9e9ab2d2f5fcae7450932d8fe3a78f3bfb133bf63576b04030d3c7d3833585c888c8fd82eaac62274bb8a785c7edcd18b8ecb0b1903742d47805d8cd717fb8e5356c7768e76f55c0fbdd292448d54bfb40b6ef5d82ffa807ca0d85fb92668e508e0b5670408588900ee2e499718cc72d25c650aeebaded4c86dfe5eb85244640c9f1b603bf895532b36d6bbf41a5dddc373aab73d75b4942dbce4a87a1bf1c0d1ead5a73eecfc17072f195a5124cf36b5796df74c0a786bc221beff6083cb8c06e0c4192e22228bc9855371de6d5275656b81b55fcdb4ba90f8e8de40ede915b1ddd5ef204bf39f7ad534460067ed26804f171220537bbf381444075e3748869c4450cc089f691d8afb12a6587dc871f83100da8907ed6c04714378403bc19ffebff99b29153e5de301edfc237675f337235677d27ffe2d0024cf03daacab2878382ae0f0a61ca6a6dd5dee3a326db86e3b900c18c4fe670ce5a686738d7860fead5cb2d35df0fd848e5297e24eea418ec35e1ff53d882f1f95c437c716b365039b0fdcbc05088c375c411f91b35bcdd2d93c39678e340adc1a591eae993be22f5d5d0e592a8de6a5027f4efc41737938ba6cea4793517adce9542fb89a7eeb70d764555484a8e1d945d5756b9ad356680d36e28195ab979d69430e5b0c76577778854aeae404aa3a6d4f315dc5e7b28fa9ea145d061ce59f95b6c973bfb10b0f5fe046d35f8dcc32a67d60e51638c6c86fea7ebaf1f037fafce477f55936ebf627b1bf8f775ebc7ce9188fdd6ae669f64a243f517b2efb8a78d89bdef9a8d8ccba891500ceec3ab263e4186e6646d9f1cc3310f40d6699ebfd79d61b679e64b72ac79bddf933ed2a017cca2a5a98395a9839065ca4004abfe71a7b9882620e847d9afc9c5f73d363dd0be1399098cd3460ca46302064110276cdf3db1577ec3aff78ea2d3ecd0b8fe112b43276a67ed7a66bb645d200d22b9c8234f68a65ab88ec0bf50ad19e5a75b28fbca66d3353323f3e9701df9efb3b0a16f92524f3df1d050bc540b18e08241c252d8195c4a01ca5247150090c5a0a03434ae170680c520221094721a5a41ce08e52124829b803421a258181c31d3118241c4deaf99238380a2581c2e0d01292582c4c1ae600c362e128a4230ae1e0e08041c0702869072c42028bc522a1580c06e68890c44861a128b424521a894035e2816b95452dd7f576419d52ecde3ea457e8265ee579fb40ff16abf0f9b1262bbc552e00de51234c731115cc6330dcd391282de963d4755f2bdcaab6f75c987b33ef4821116c0959069b46f352517d61ab514a3e4dff561edbb8adf1a878954650f5d8a1b7ae95eb8eec45e0f4464e179782176fd83d8f5dda9fc2cbca461d0c5ec9635c57e7bd93ddb86523a71329e7e5b742351ac1c0bbb36f2ee6d1ef8c7c6176e2d86b4e8387376f45743827dcefa8cb6f8bd9aa901b04c8db2ceb8d9e3865dee86b594baf99590739aa7d5b6d8b2b6749ad53826e73f20c11920559866444f3523144d33e8cde9c43a091e54dff563591380af95d93ab1f3a891081730dcc2b2406e745e6d1f9d57514becf4117aea0c5d9187cc34f39a9537271ecc57a375bdc31ec5bf7fad58c73245ecff39b8150d06ff6fcb292a9aeb06e74cebfa114374e264b8a11b0c8aeeb2d72f39a03ef6dec96e67aefc1654f0f4d4730488e69017b2b8de93bb2c697ec8f4638845238309fbcb06c081719e77c193b7ac329d9e90e916719b4ccb300a85405e2ac611f31be7d92714dcd1d42e7a41ed0ca4e3dd8bab0e770dc2dd733e33fce9b6a58e6c9abae842c9547f352c163a81383f031b4733da9ff829854046dbb7d59e6c77419c35959d37aae91d20f53362f4d05f7d0ac6c2bdb1dbb080382d8905ebdb38857db43038237a9facdd72e0edfdddc94547c5ba541eeaaf99b73441acf651a37facfb4292abed3e9df4a6e8627d250c6cfc13efce3cb59061f9e81b5c9a9fac92af117785eec345f9c32214faf26c543a5fc3aac3a549d72eba05e867ec6a3a1164f5ffece23770f93a777934294c178f2ec8aaf17774fb93bdce9b67a46a4ad50e3f930ef3d8b0c1fbf4b8b102d3872532caeb5e1bb8f660e153cff52f60079d636c95cceffe10d426e7d54804cbb72dde7e3ba4a39c89cffaf365a93bbdba718ce889a22c1ea0a3bbc1d1c206525e77ef67024295f3f8746fecfa6f7e901f0eff41df26df88d620a040249925ced3fd4feb17f60d66b597fd7c5668eb44de6092485362f86f1197b05f862707c327cbe680787103e313e250faf004f7f4d4f5363553e193e284c5c122985444848a024511252d230a9bf7e453fc0ffafdf814aa3500824140e9340a0a0529f7ec708e788f3f545bbf3c9f0f189f1a9bba39dfcf864a0627c9a9efe38275f17ff104d4f472f3e99303e6d5c88e6e7a7f089f119bb3879a2fd037c3ff5c72c58cdc5c344473dc001a3ade5a1e7adea621a6aa68e32f3d042a8bb1a04e9b8b97b6195d5a46156fec16e123e4a7017b493a6ba8a85ab8e120287f4520b12f5f07384ba881ef0d7313276d63290f0750956d2303337d336f7f5d231f18439fbb9a9ab282bbbbb7b05fbab07681938edf3f64007a3d06efafa8186266a563ea17efa6a012a06c6012e0eaecaa27e1863942156db38d8cf0a69e8ace50df7f7f7823bf99a613c8230484b1555553d337d4d58b09b949fbe849776a06b486010cc572fd4cd0f65a9a52c112485d1f30df630547396c09a9b6350fb0c3d9d5c02d4b47c2560ca967025372d630f2b09e9602f180ce32a1d2011aaa6afe4838239a2255156fe4ed2a6267a6ea1a688034eee21fe5a1ea15e6a41863e412e1e9a181729071d1fdc3e0749694f7d6f3d5f15f55084957180e701251d1d57b72023af406725edd000185a5fc907815636955073dabf9f2f22e26bcf305b13fb4513dec4409780027efffa9d319a8829cee176c38a260f2ee4de0727bd806d3967f7d16c3e63411d98c92a93f50e1aed9462401887580f3a5c7798893a524104c321cb6089685eaabd9f0fdd4f3f141cf9e9df50d599f1d5cd92d7405fd56f8fd00470f7233cb44c9f6cc59e027fac3d595efabdc87d16f9b7921d6fbb9f9110eb5872f1303098b4d296dfa7d0b9d89b775cf6990133857d758fb1a773a85cdec0fdf9940f596f8b08fb00d45d1a81a3f6d427aeda1e3a3b8ee09d7548e4ac67481d3b32b24fb3e39522df85eae34b09d194ab9fa70b72ec58fa6cfa0dd18bb5a20b9e1c350d179df1070e4d7b46e37307d5bdb1dfc634d44e6c67051fd0faf2155d84676f9e92acaf677fde60c8cc097b2e75b0d27bf371e499c3cc2d53b76fc909021c3365b7a74e8489151f13a4dd9f2a864f6ced655638dd1a65a3aa5ea67785218b4865b84ca5478033ae7de6ecb0b6597d87b34339b651ce4ebc3cd6e3dce38b9d14c22a2b638f76d815f8caaeff09376537928afe24333a9484594231ff8f7ffb2e6707045204797e7374d51b1ef35fbb79ee952069ec1b0be190a613d7c491778d5b0f58efb3dbf60336c98648e4bfdb37f113a72d841cdfe50f6883fc7ffc9797ead35fee3107094d3cede5e8a7354b52b0e3cc8c775afb3eeb61b2ecb47155d1f7ab014f26c42b70c8912251cb92e7fbdd188afe2d192231bf3ce4ad99afdb4f90ccffa3daa73d75f67cdaab97b7ebe8e8963c7d78b34bb6f5979b856652fa13824c10bca1f397ac01c823d18ad4d23116ef90e7b23d090da89d8f84bc7b37c9ab371d513f0055b2abfc9307c904fa153cc8afa0a29fe14192aa8b4866ddc45fc383a47dd60ef2f2e63ce11d0a492e4e48aef0c94e1c2f6746d012feffe24152c00f1885257c37e5a484e344d5ace158ca77e137aa1ef91314e2eb6d099b030a63257ee30ae8afcd5ff87eca4caa07fcada6248b3b92cf8364a29f3e23ed36d9eddb3244cde1d6cd6207ba7ee2e7d7b43890c8b0e9227f79e1c2e6c754ecb56815ef7d725ea833be65b796a67442bbb9ecb08083db6686a7ccbbd01527c2d4bdeeca3a70dc56bac789662282e7cc2b9df9b0217f6512b9f0df4c22f7ca77908740fd109fbfd46c77495be708f521bdee62b1e8959752492593d2ce32d7e43544fb093df67ea478b1ac64debfae481d7f85c96053b08dc73b6d2ed2422c2edd26d49e85c50eb4ee6e9abb946cd718e6f6f863ffd94845ff57ef82c7db878c463b7a4ec753d8525e3b0ab13c4a5b4339c2054d976138bcc35d4381894691f186fc7ce394825ac392d838dbe28da7252bbdc7ec0791a91f86ca182b792469e3105eeab69a078c5bc63d91e5018a36275de78a7fa01eecdb84c8dc5781abf7eb126b35dc02695783d2c525cffad20c487a2488322d9e180738df121147a3e2189565a5eea76d0a95e4ae2be0f5143f38c33d38eb51498b2a2182e797c1af2909ccb71d08943b9fa4834094e730b30cf64563e706135ebcb7728ee6e38b6dcf08d00fed2682630c93cd105f013bd9c58c6fba93587a59d9a23eee9bba61f1223e8fc4b45e210bb8da316345e6fb41e4793d40ac64be938fc4c2a7605024fdd945c7241c5c2d4f89cea49c6b796ed0d745d0ea7acf7aec0d95ffe99af3f73298ee00f2784f3e9718bdcc0ef62a4bfd406dcf236c3c2ac5aa679f4309fc77f69b6bdcae3e09593a11cd4b45f317031b1caa94ae13dcd63dcf7f8fa6f589a07231885ee3c81cc23cd6ea2d73a8222857b12bf3e63f76837b62ad75731c5a60749b9f8e862f0a9d3a1191d10806def50f36c8e0efde7ffcf6288721c38c7aa8d71995191f938a943d855b8e33ebaa039c78964aeba75a36f7f75c384819c4c67af9a4a0a95caf68b3c3d548494fcb176d4488146419028de6a5dafe0707485991009e25fe3007e80cb746e04d93a6eb99c106a09bea1fac15db6564c83c2effcb01fa85d6cb7730176d8f2753b726f9ccfb62370b624e983ba577ef681862607ce0c5690c7d3281f304761b5d32b9ffaaf8e9a4c22d8cf9a89245d7e38f6209e1266e016f6f5bdd29663326422e2f438a38088c78250285786cba537c6e831e2ffd9bed4ec6c3260fafdde46a7b1f8b274254adc6c04fd63ff96cef93694d93c9442479b28e6988aabcfdcebd16e22eb6657cd235a7bf6f2d34da9ebb5917f09b65eaabebfaef820e4cf2cff55d412f6fd66ea162f7157ac9f01b2d4a554d45edf08d8c5fb1f8f0439f831afd67ebbdc7d50cc51453f6e74c90b220636d5fbfb0b9fb2e6313ff9e28bc534f8fcfb64d9d72b40f411fab57aab35654bc001a75f3b8d4c151f9fd694f5fe4761385302f1ac53e26ebf7d4b666147ed8993c5a9d0a594afa4c5adb1fbda418bd7c6e0394b5ed15476b912a9a56fb22fb46931252aec032b88d1af1401eecdebd56aba3b1481515f3e05513684628d369d1ed8f295c66f2a50ccec1da01e33e8b9a9d7119c53c8fe240eca22bdc5358c2ee73c2962121c0a95225f5c0f93f138b507f269958fc0b826045e20b52628339c21b5c8c78c04b90f8476c55ca5c23af1e76f28db448f9ed4e070cf79ec4d34a3aba4c1e4aafb07557bdbe779a69f1ffb1f71f504daddbfa389c42e85da448ef457a07918e8002d2bb221d1129d29112129a4a1302028a2ca91690a6982862101069022a0808828014e94d88b46fe8d1b3b7fba2d18dfbf79d7bff678d11c790372b6baeb7cef2cc67ca1c7897189b47c19cc17972eaabc847bf72a158a6fcc322175d6626bbee70ce2edbf85c148a69a6b883e723c5bab6cadb1e4053fc02da911120b9fb1cde635ff204d602209a5a9ea67bb9d9beac9fca75ef27b8fb4ed88909f95564822fe4b2ff742fc3815c49535e1dce40e04eb96d495c7221aed99a2de850baadc3deb85bdecfd3cb7d015fdbb4695db28b466ab159b79df26c9e593b8f6ee02656735f35c95bdc164641d0be90356f04272c72fb5f32238c8951f0277e92cea7ade8f4e6700e131fd7529c33abd7620f5f768cd2c93b04c7828153475fd08b6ad3b0d59ca7c87493dff8b8d635a2a715b71820dc3eab90dcdbc504f006d298d500c908cb10d6dee96a23ad396e5c70eded4745f9dd5abef11b71f5189297201c4907b07723f9f4c14d23b3cd5497366f5e9d6eb7b5d30a9d7e7baeeaf6276f073ea647fc3cf6a11647128901afe2c0cb48692af0672b8f28a16d47cf4d0c0c74f1420f08038e8211a3d8f0f4f1373983a77031a61c36fbea62b4e24887a9b0646498ed667c2a1fbebce45de62d7fa3616c5885659f8f3b6f43cb834887c7e80fbaa294f1d1607f4320f87d26d35e075081b96fd5d83bd611edcb09535c8387cab9895f1f6703a177ea935f91e393d21bc2fc92c3c9fb03bff6e694442f2c812fa0ccf12296caba7b9ded2c8132a0d000c0029c2bf744045f22439d77dd722f0e18a48be5565c384b25e67c3b3d4d9b5aed9b3cc7425b9d78291d39ff07c7865f4d1c22da6fa693838c85b8cecd6f54a97fce73e4d11bca2daf685e3fafcbb2087d7041a57796e1f823ef8f954d07bc1f6d4dd3ca02aca5e7fdc9af936ccc24c4881fad4eb87a5b12fdf18087dedda997caaf5f9fc2d261c072101cf8339ebdb7f0931e1b6515e847f0b93cafaccb07682bbdae6c2d3a9c2342b6e6fee18685f37074fd41daebdf9837c19085a2aef5f018fadb5c46b96abced0753c416bf3b46732832c1eca3f7faae7fe87b6c789ce2b44417e7de985cbb3ecc88ff7e72c597afbc96fa7a7c2a06be3fc819cda0cefaef03576716ae3aaf58aee0c10decc3c20174b5155d8c0ae3d28651a465dd2ba6a6110b84c13eb57da765ca458f8c25dc6f004ef2859e282f2ed8de73370881789b698525721778d3d007ae20a4435e72b79eff379e9bd2ee4b1ec07524f80113ea28c9fd8af9b7c78588ce7345bc3509705eb1419e80e7634144dfe4de9dbd50c24b5a3cd47a0d6221feeea2e358dc59cc112c1c2083089f2ceca52639edeece61d9407d2411cb7a392a51302c6aea2afcde3dab6a80bf514660f068be6154b6bb67ef75dd6b0aeb059ca192467253c58ac3be116b0f3050091c541409668620a93472910c3c84a8b61c8c819e59c2db57c75dd8b4ed2197bb1256f6c03190fa14a5acc6dd855cf0850cf00130764d9447f02b0a9ad0c8c27404bb216dfbfb32469b8d90bc768a69ae3fb7e34b67d909daf92bf2fd35422123b121f083f6434c0a1d863ffa71d84adb81ddb4e323f6746e3f56f3ffcff69f0d93885e77826f2f5d0d512f60d9281916489a7d4f28ce783e7d0fb17cfb9e70455501c068f11494b1539695e96106ad0c9c31787debe1e51289a1332be7910a4b77a8133e6db9c49fd630e22c396a74a6227094f5695659c0b579dde5bcb92250f5442c3f9d0f5d6cde21f8a7c705af58bac053eed77f78779f33fb716ffc64a004ef23bfb318f691213da0e7d538e0778cb3d3e0e40cc42e327d9b00d79022e91c65e9ceccd4b17e4bece6424475297a01b2368be084097cadb3312e89821670540a133c3a30bb5a734ff4e29535ae19e905383a6ac32b084f9af5b16f30364e6937e52a64af3e0c216f1c6ad256314c858cff8fbd181fcfe95fdbb160e0e5fcd889f1992df7aa7324efaf77198d38a565dd082460c96f0ce1592e34e29b0448e7b79ef9b04b345d93ff609ffaf88a15078e8784f06c26441a671abbac1a74f36b7d24872f8a59b73aaaff50ede4019fed1412608dc83dd3c83cbbced26c87b485e3022c18e23e3bda832691830107360a3b3c5285bf1b2cf95aa2000c74e1285f110bd0e4df0d5524c8a81fdc561c045fa75af1f02c7c27f5eca274ed1980634fc243fe3b89ce6d3c9d404f8674fdb698f2615bc41dcc8dd733af5f0e77bdc508a9837042ca8033c54ad6b9556bab18f3e7b1125ce44f83c53f7820df245b4d55ccc9debd21f1e1e7d5ba3a9ce0dca7990645525db04198dbedac9a1a99d1f23d3e6ffef9706fe181c3f724e989e52b5a19b100815c921f8f8862513267ad5f5ac97047d45300567760c9c50aad6a64e098716ac7513acf16ddc914f311e4a6d8b3a77a8e769730c4a1101c7110821316f8f934f8f4a130b5d991c4203682a3457efdf43e0c31c12171a007158b583212b43a2699bbf590a2cf34697f537c10475c45749af5ed29927eadb3bb8bc57deb8c39aa5e4dd794db9ed7c70e61b8c7c2357daf2dd2e7477713127fd0dba577e2ff1497010d0d0dade96c8569605512fa78afe0aa623a0cf12bedf8ae5f22448b603e2773b3417a77de447cef0fd3a1bda954fae7bf8c8407671b06ba8901b99a2f3dcd7557e92c1e92fc8ac710df3be2fbfd9d96d46efa8890f8c3915d3a8477ebc1c31761fe21070d341604348ddbfe1b410dfb7efd73a815087ce5db6fb37e1f2b02f60481ae8100a277d8e7df7f7a1808b44f556d2785b06384a2ecc76a2558fda9f8ac63edbbc833b7e41345c5bc8ae7ac46ea3e0a1b08825944e477fac91d97171e016ffc5040728e9f2d8ce23e4a448306f1f1023b35feeaba073f5c88d95189fec1cb803341a0937fafb7210f043b64e333baea3ef536f8f24729fae04aa2769928f9653ba73db9b04de5473bfda41107d8e47ce1a567f14f7985bdebe98cfb263c868594774ce5cf2fe8af1efcf3cdf812fef16d02f8081576eaf05dd2ccff9397e865f1efe6be61c1804ce0ebc8f30f30aed94f8e54ac4c1cdc9f44656670d091c69a28f31a99605a3f0004330650db66393ecd1275fe78d02abde70e5fb6ee9166a84e379b4065def293120c911c0447f4d9b7b065f62f1b598b0049603583aaa002c396ac628cf36acc2f4aae562ea9519fee876308eb8f3a35e3a3eadd135dd2941cc91be7ee74b7933e46af4763b1fcce159607364246b7cf3ca451e720df65a7e03149090970846060304ef8c9956616d229f1991304dc9be7a9743ca077d9dc65d55f153354123ace93e360fd6b3ec0a3f82a5d2d44b921ea954591a1ceace36b6ce71cb9087f3bc1bb2223453bee77805981fb59e9e50367e5d241ba1d36d2de39c15ea7d8c32ba28ecd5f157e0b8994807fbe80dcd975128130161eb249a325f3ed9ca6e8f338fe7a8bf280e3fd1f2e1e7fd3e30fff72e1c00b704072127a599c3a699d99d7ee45914945f1c32b07137a4e9c5310efa7f44ee2047d047c6ef3eb1e3ad89095c09eb67c6641f2ca9494a766c293c9c6fb53118c7d8f7bec00391b8ce67bd6d5ab3a3aa1d8d70559b0eb53d71ebc617336ad6af52e19e528cc066c67ee99a621a56474ed933b7a1ddd782fd395f544355fd38f6927304fc08546034a6083940a4eb7d21921dc82ca5b1ccfc6ad7169d9ab07cda499faba11e49a478150dd1e40b8acc138887a728395ee607bf3a9d067d81ee3e7d4436d54770edf5103ac3456466386af4d60f6bddbbc01ea5f9e45060f8e8c65088863c414e9709739014395088af745a173c3ac9a6b0486f471557b5752541a867393890eb69fd3dfab065cba1ab951d8356679bf7d925ffba06fef91fc409db407ee1e1902ace181fd0fa400ea9e1726653476b88dbee140c31382f74d5f72a606bccce737a02b4e879f2103033e56b433770f051b699f52c3d8a93c0d91b7ed3e669abeb837703fc36dcc7ecac7c08c5034ebc5442bd190d9a2acf2d5a09032ea30e5fbae1f6ac8cfaed04d3d7e2a05600f6db2fa21abce2dabf02004faee044e57914246e972d9f647216b5e78a4580119ada325e9e705a2e2523a5e2bb23e3fc37b7130f6e0edcc5acb2a9f29ae301125a0fb268fba887f231f497751f0f30d4923ce219653f48be7178a0a0b262214450ce138e8190e0cd4138283ba839174c99b989f0974aafe45d922d8c92540fc4d31f64f7fa7fe7b20a09df5bb6f20d2c4df5b771ce06fbf06a656dd818409fcb5f9f32d38881d0e7c6cc74d662d0a40dfdab4957209f553cddfa031b9ad90ab23f57af46878f9951adbae454b655dd56f8e2b590fe6733789901d71a7aeae317492c70a061d6cc1e794a2c7f385b2fde86fcca3d842ab0e0d15ce618b95e7c65bf4ca7bd4069e45ee32b8fbf7f986a109e1f94fbe1d8b6577835eba0c5deec178aab7280f76d10b3986556b9ba89dba662d0a18d21431b0c4442cc28e130fa6c2e4d3380052ac07f2ba84c4dc41cabd6708e3f176ce6ebb1704469fc027feafb4e3eb9e1d4ececa029bab8fcbd9194eac245a8d906de8acc81bc9af6cdea479f5415f9a41e92406e0dd03eea24c3beaadd453602e23583d967be064be6a9b752b6f1f2efb1df5481406ea8f839e51fc7c66128e37ec6cb07f764ac14118288159d3959ebf6f0c6499b8d46de67eb7994ff152368f30211e97bafcefbc9fda9499a8a7844fbbdfa33be4a11ed4e258c9f03704083e647d9297851c7846efe848bd115f4a8c88ec72daad3264f1e0deadd6593d9fe7f31eb860e2f19ad8abb88ceb18dc49dc9ee61541b1a18c5d1a5bf0dfa9b82d3a629ebd6519b8fa22c4cd3b37eef67e5b118cf677bffc659ae0b948ff615d13eae6e5bd9bfbf13a6c10ea224050fb69eadcdb6f81de257ee9845e8f81734f5d82eb591d47cfbc7e407d31f8e30260d9c85a73f8a5b511ad5e53574c12b96fc0ea24dde41deb8384270ee696a67ad7a04bd66e4526fc0bce459d8b3a23452812b7e78029e445b6c3a35c45668f04e28c9facbb894fedff246e74c14839e3026a8c294597b9428480a368a97e287a2f0159c64ccf1936cfa7aa00c5cc438f57f742794adf469579a28488b78a2ee6d856b23f995418aa0c511911fc8aced042822fc521c1191348586c198a9130eb2073fba5fcab9a640b2f8ee48243341d65e1f972e9442bf8546b2c1ca0e459d93067ce3e9dab23e14d9d4075567166c5284bc5f1fd7d50ba5c48463d09602eb85f824032e452d54298eba96656f2bbede7a89e2b99b06075a8f4964af5d830d0641c3401c189428263ea906c5170540a616fcfea42056d3ea33cff738a11a1a55c252b3806cad39c7d25fb57dc5cbf1fc48437a544b38dac98fe7bcf26212fdefc6ba162038f574c4504d7d6fbb203a7dbd51a9a9286de94eec28533da7c2aeecd8fbf13e0b3cb3ec0537be458ed2edd501c55ac43abbeee3a544703cbb2e06cd2327c53b8b89a834314d70bb99e5158657c63b09db72a338e2c3e99cad9abe0972b303e4d2a9c6af1e7f67886b9ab4b8b4d6d6e55069764692c3c9c8be8f1c1023828a25d352780a77baad145edcdfbc59fe5b49ea91605b3d902c42b7b30cd62303cf7abddc9c42627e45aca83cc4a47c64a5734eeb58c3969778abf3aae526c605dfe9456a4e2b2b35d77aba691d0f9c3b5d5d33c1e9075da134f18ee9967541004cf6e63987715df12054e9da8bbf9d27fcb53f444d5149f5684665c2ddf79bfb6bb57dc97487bf9c143584070319d84cf49b3b7c337b3a74897e1a8c955f93af1c301a32ea8b340c4b4b6ecd780932ca2b902d1ba0f099e6745359d2394b62d6d32c6753cde50967b545db5fa361a8e8eea1a23bf6eb395d57123c92288e341e829dd16913b6a6d06116a762616ca342a3833e3f1a774e143f7c6078afcc0d70636343585b7f4a273a4d988de338f639c6fa16b835fe37925163cf32d1c0b071807b80e121ae7640c739038a94bf9f2d22c0934debc573f7e88f5085b2ce1d407c0c6f075f6a29f74fe9c3d812d79d4688f32390baf6bcee87b896e13ffbdba941fff8d5b23f5fe825f22bac681b2afcbb3a8562a60864fbff028bf2df7ee90ad2b189e7fecb1f0b33fcb303eaff8601e3729b23c9820e4c4c9f4beddef4229160c908836ebebbb92c425a6066e34b30efa52f15d896712ee85c57b70bc39b8f47a05900c0c995865633c4db5c7df0e38675cd55c2ad5fd3e89234384c0268f9873501f437c1c8223b64670c284bfc844282285da896838b67cb3544545158421fa1f9cbdf8fcd8a4979ecd9be0746e3de30f1abd973de25c839b39fadddefef2981dfd1c013eb096c644f37b319aa2bb0309e0ad1e898f0504cf214080279600c3271f6c971ba8eaaf8ccfcff6ff3746efaee483ee326ff52fa8053c208b5f9a7f3fa53ae3cb1bc6d7fe03cee59feb7fd0ee9effcb3954b4669e277d03edbdcda5f03dfaf7ac5ff8af28497c7c2e7a7c50294f8b0a9f066c85973a83da68e42e9d11f894b8fd3bce397eea5f9f6a7f6f7c767b11fc4e67cecfbe34615bd49daccad3b5670d8d30df18fb55f4ba0146476982861fa833f5c5829a7a3db3fe6125fb3f8ab318dffef53b388b89f31e5f671a7913d22caf178c3859f98ca56354eeaff7b89af3b8603162163153cdb2bcbee5c158385054620da65a10d083bea855597caa5caa4706b912fef4887059383bb55e3f2f3be0ff3835ed55efb4a35d886c55cedbe790d993f442f69613e7f74636bc6b7cac3d893e0359f34270c2ecfe803f1f876745df6414cae49ce9245573f4b3a91c71888a257117942e0220702c1c387138b86741ffc27effb8420acf18a1d9a422c7aa93f4299e46ef4afab85ba854004892e4bedb1ebc93b75ecc99a850d1c5309fcee8a87627a93ebc9464257c11a58c01674170e07404274cff8b52032dc947ed84a48d25cce41a24dc6cc78079684f0ad4e3e9d3ba5d6e2af826055da4eee3fafc96a10333abb4945ea9cb376aea336ffcc2a236c7b32c7e942107333db82a8805fd58022c18e061c5580629d4524c17bf25a3b0d93f19f43c4d384cafce206dd412aa78e15a322092f2f6eacb0f6ce28feb6591f319770b5652979ecdd04e668b25a64431b45e10c61004437004fe084e98e2d7c121acfd71f96882df503e5af5371f88ffa37c342ff151b916de7af331ee27ce1321620a28e0d4959696de00450922c9c3877fe4cbfa9fe5a3075692bccddb9616558f38f1b78577c9af352e1ec223fe7fcb47e39900f814dadf563eda5e36d0fb70c021c733062ee65e327efe96c6525a87f48c030fb9f9b93a0406fb3aeb9bb96a3bc998ca04bbe8fde7f4cfaecb3feb622aaa8353f2f9dbc6fb1993a15952abeea404a235a0940d292df279e8b99bf6a1daa874a1c1a478cb6bdde4751834615c4ca96ecee824ae24e15583a4f47d167c1a1f18106db9edd323abc1eb9c1471f4aecd94e9804337c1d5abcd16b7c67196fb181a480065bd757b5357bb4b5cb78a373fe4726f75893b722c875ca517be9534b41aada3894e86ac25fc297f8810db827248fa90aaee8cec2d5a5760339575485921796901cf7f0d72ffe18e63a3c63b85050379aaed520571f78fc2ad90aa7a4517362e0c500a505e333427f13b7c55a07b1a05888e556c3d4b7d501bf3a0260e4ce8a18436784b75b941ce66e0c2ac6691862f25da1bb2761ac10953f822113890078572890cac65d41434b666492652950581dc5f4bc3a394dabbc9b060e0f203eb1cbb7e8ef0f21073b805f186d0eb2caa02f918e53bb4c395c9de4f6f71011a592a11c92c399ccc536839857730b731f3fc0ba37d75b48d6bf4517301d6d918d674108e35057824a413a4562d73bf9e9127bdeeae297b3fa9d8512a27e321e6549f0a3be72bbe5160de7434f07ecf9d418e500e5254d2ac34b4d4ec82dcd31917124ebe04a56eeffbf762e808a29cdb8f35e0583530e04b101c3815c109a388b27213034559b949d423c1764628538f03b10c450b8d8b906722604652136ff6c5193806cc235311f30dd2bafc88ebf66c76c804a3da8b4da27ac925ad7685841fcf882baaf6f692ce92924e9272728e0ad22ef22e0af28ece92e28e12e252b24e2e324edfc01cff4605557c7b9a5a11989b737f7e75f9c7c922c68d96aa2bc8c0145c5ea2733f25674550baf4708ad8ac33596f016bbc80fc5c5232e17abe2c9bbb71b582c6ab1b740f2f8b281c55fd8939afb4a7a18e2681374b317cf28c665e6ccf9956cbfa81d0dad4634b7456259e7b4f0286de35d5f11af7a5f79fd318a5cb8c9dcd3bbdaf582b5862c36ecec5928d548f173dbb368df0d38b82adbc052109f7c151284423b2cb323da927334f47f4b18711ddc3586f381a896f0fb814b9f0dd642e72972c235dacdf8ed9083b2ab7e03fb8c4a0e17ee27f0a97bc4eaf97667e6f053ad5e95e1c6b577d89d164dcd3177c80f17057eafc79ed5b3280e908d752767f04d54b3b2831843e49623e60c4ad584aee75a2a0f103aba776be180800c141ae2038619448e6405524733039125c128eda0907154b75e8457d1c16848108fc6eec263e9d1edfef6f2a99f603443582dee21e13a56deae049a987df67aefcf21adf6f97d29ab835b1db13e21fc66e8262bedfe40602ed53b5ff1e9a0fcee161d0ccffd330c8bfdb8ba0e1539981583070a50d13bfe23ec85845618113551b0b26dd73292cf101adc5e24407f163d53b6080db8fb5f888a799088d6ceaeb278be9aba7e81b5e924a25b796b51a5783176456311005080e22f3b900413329927ee4c4a7edf23112baff256aa201ad93f47efdd8127d8defccc8c3c7ce3e45be700cb89ee2cd40d4eeb62bbcace93f1c3fc287aedf2fe87c4c5dc9d91aaf06f88d0e6a1f7fdb8f4f167b615dc77a8c95d2a1dac3f0e6379cfb7a3e64f24c3996d9af4ebef0ecda7f1aecdd829cfddb3e017c08899f40507cfafd00d65c33f721eaf24c0155a986372a371395392cfcdd25a675f6707ea0e45bcc29d16f5ac41dc0b067850a49b4d85ba8abdee749d5b82cd4448f60399cb68213c48201ead27a74f9b568695ba353d9369cac3c86e434eb0c9c86caf1de57ab715aa9e3007b9045cf8d820bd89aa3b2021d52b569b79f09c2c7ae1e84e50a5c084f941e5bc080d770e015a4341504496bc4ffdd24dcd82faff47359b8dfec7c7f270b171f9bd02ed986bef1d6c40b85749765b5495a51099c987879621a78eb8d2f65eb9b2c5c11fbfe01d905322e064f0229b4979f799871d617ce2e864e5069555076f11277379533a1403f6b9e6617a45a6d64e72cdc5f91e3d3c9f628e2d4a66599aacfbd1390bb04a36ffce9616fb4d25f686cca145b7b894d00504074694570a42a36ac7ac27c24fce89c7bfcfdf50cf9d6f47bd4c54de7395ff19fc280cd2138b031821386e84843523f1d4252b7e423c1165c3b53bca04717d53584fe2c85f1d89b0b4293c616e3649447b839f9144f5a1de2fe73fb4dcaecfc0cd80b5d1b2d6899d3cd214bb35625ab7fd8acd86d6d3c10160e8c16bf1bbc78ab509b79cbdd95192a179e2a17d51f70f57afc42bdf944850ebb186078014b28fab6e064b67b612d1bd22c545257cdea19a3cb65a5c112c74bea21425fd39ba108d37054dcf18298f34e8be7b8c88e178d1c6c621e280f9a8a853eefe0cf8aacfc9c6b77606e54924849ff065ff941988548dbc6c4dc4db446a8777f29740c2773ac3e17b07497a0b00e4c8ac9debafcdcffd185aeb2587a85537ecb4fc7a34c935e58bc19c180fd2138b0cfe7a2e9ff4ad2bd8684c49d4449862d8cbd819d3b265416bde7e640ea9e2dc36331700c9880b1a5f4877460106bd9efc79bc53ddfbb5e3e25fb2bc350d935615b3c29c458512318f5921cbd575b7fdbeac7f151a7a7bfb235e3d3c4773ac8b170601846736ebef863cb46c03bcaf973aaf26ca4f3b9dc0f9cb351d9f9122cceebae001d6013d60379b5b0f42189dc662f2c669167f986ca004f0bc2ee888faf2f3b1106968683a5442e7cee740234fd0f9d4e309edd3b9d084efc6ea35be7789befa6b6da78a5cadb76a7c3d7596bac069268fc60ca91d7f55e5c09c957f2b77ddfecbf181ffba221cdeb63da55c25f713ae51eb51b2948b9464275525dd83d857b4ee3b095da7fb6d3098afd5fee742237b6777008e6b0b0f7f070f6db9dd3c945cbca47dd475afeb4c419236d1f0d095f75577b7d2373eb20791d6d73a99356be320e0e871c245db47d0cfe739c46bb8542a98b07c9498a4b3849ba3848c849c9c9ca29c8bbc8cb3828c839483a3a384bd83bc8cbda3b4ad9db3bc93b48392b7cae2b252927e320e1222e2b232b61ef202b29b1abf727720e38ad282529fd1feb9433d97ef68276ae637d83298d2c735a29dced3a5225c5e6015bee03a20731b7f8bc9485e25b8d87d22fc4b8ad66cad09a4718363b7c48ef92bedd1f213259d2e758850f2684501705b40fa157d8ea8b4db7bbc54de3e4b85e090c278a07b3efbf29f0d8ef434e388b0320acc687c184305dc3de1830f7a238722c922889911876ae20b952e8c993838b1fd1a990b5e4cf7c4eca48708f2612dc5bf80b8c4e8a47b618724478af52ca7c88c8ac958ed2f6ccbd858503bedccc9dd670d1c73698a7cc2c874c5ab22362f2439f0597c872ed35344ff37f92c3d573b02bba752996d642f046d161877c740db9ed75038775838ce4e787530fa1a7d7de7b7e2e6947b80f8e7aba27e3b00e6fefd499da5566d6fe7b604264f02c1c1d45fbb22cf4578c7ea6416c0fd54b69a38b6fcde77a3ff814f56833b57e77ec556aa2679a7e383bfa32b388573e0d81d6a312a16ce3453675b5daf7334a46ea122949a7bca49765016aa4b2db025b2520a0405e16674c887e02c13996522bde5028a5971f2cb69a315350b61a6a03de60201d38481b82d00c09e6dd444243aa513bd5f18563204ec5e9863dbb9c95bb6579c367e7f2608f2458ed52c65d85339cdb9dae7eb791f4fad959931f1c6c641ced1e2f83f03d426927e210e1a9769779ee9b71209954b816c1f5c13811dab17f8073fcc72c713b996f5767d407879e2da35e9bb70521e3a747802a3a7cbbcac695418324cc2653d8ca33e396073305a9ec8bfbadc59635daadac6563e50716005bf7eaf82b8f74b6d60bcf6dbd3c39df10ef48c143d9287d4a36f4ecfea76338eaaff40ecc5f02cfeb3da89ddc933b40a77f296d1a040291c81bc563e100ae99532178b2e403bdc69cd3910655cbc613cb63ae12fb172f39721ce051e0ac07ec0e6ce964aa01352af94326c64a2d0a4e12a7d4a438e3234db5d8886afb0f8ffc51aa90ed2bbfd98744d44e054cff5df4f45f154cffac72ee54cb148f12f23b4db8cccccce4ae0c0c63708e3cbd24c1833a429aaaaa5f598a8f6e44c1d34343da6aefd3957af7f9818b8fb7d263e1c0b5bd592f38567d1758846d92991c316e925636253d6a985aecb8c6c05038640a385298f1e8c6d6d1f199b377de50d465b45eacd139161077aa7726e0720a3f60a282ee84ac3d4370c2e8bef6ac0705eaeb740e3fe9cc1ac5dcd34950f332158e7612df96f86607eae7f03dc6701a3693f860a3c1c032cc59d58ae3e16ecf752c1c783b293cdbd628f4f2e14999ec57bd18d753637bdc6f3cf3b075b6754c242ba18b07b42d3963fb32b1991130084974fabd65d547a9db5e4a54371205121e9e703e6283c640d6aa109cb0c8ee7f831c34511b73124948c768b561a38a55bb6e2ae9b944a243ff9e2d9a7b9e6a7d835cf68fc69a00da8e14d427c763b99e2b579c384df40db23ba35ba4d3bb177de9f200e6fcd803af00d5eb422fb0600018bff894b02ce3e080de36cd235a971cf5ce95ba94a20ceed0b5b7097179b73d00cb7e982b4f80524069d09c97f9c76363ccd1d13892be80c7975f3d461572e97463c05d101cb8f35f44555f47246209859c8ebc6d3a90d0cc5037a00da5db9b494264d409c7809df80e695ff8b35c1f26259b694b735d9cfbf5df84f3d7408ab0a23bb31211703527f227d34b901724ff8af3fe9beb1199c14977eb6f54d18308c362d7ecf6ce4972c1f1c2c377c1b25aef8277a9ca7a43767a29f0f636a886e4249716df8513a1e28287b2e96a0899f6c15c403bf51478a7bd1ebcbd0df92979b16040d3e562a8f9918e707a5e87ccb5a789e5f6aabd46aa8171923c2a617a689af22d80c4134517c8cc62b79d423efe80526a2aeec4e50fb3b961a7e1ca093e0973127118b022040796fd34291b10c4171164a648e80a0b8a5ffd784ed58d42de091dbdcd748e6856f63cae77b119f55a25167010ba3eec3114f12b83f34b81bc2f4ff9a1122f23ff0d1a5190bea84252d481db8fb1c36928434ea14281551f5f3b160edcd51954e277e0eaf2e1dda015ddc8b3ed6ee4e1ace24d4a0f53abd04cd8507a0a88ce902f2b37641af73a1e506579b4aa7fa9a8675dfcc0de19dbb31e429e5b0acb182257108ec81188ae62567897f33c4fe178e18d15e181bdce97d38548f5e4efc9269b1d9f267dc5f3f381d9461c111d3a04b21688e0842109023a3e4766a34593673a400863629455a75ff8288df8626b9a4384e1989d45bdbeff442c7567d33511666138160c1cef0026cd4ebbb414482e21748e8eaa3f682beaccfa20d7767f49206a45d0e02370b2fa0c9b54e7add52184cc2989924197e943f124b89cc139d9a3b7f6de5062798e0e82acf97f8e72ccd146b1b6463f8f869ed0b8f81c49903a842276c674190d1229a81a1ee6ecc27468ea96b057c0a30a176f2b62e14094b6eecd2b575f3b0e4fd7751e8879ee407935a9cbc427da48d2434de9eda5702ec0d851c7552b312e0f1ecba12d48707bc9895a92c42442ff768f6ff05ecb5b1bbe7fd43557414288029010e2574830eee24f9a14c3e55712680e935cbacb69a4773975fd35b2b0de0b0b06a2467d370c031779674233f20e7c3cd71dbce7e953de957e1a6fb5663fc2996e25c0ad44b5f11e2d2917841b614ade5cf884bf72bcbdb829ff7100cb5d029429bb24069209c141d2109c3028827816418f41128e76ee582f37e67d63df1279c0cf95cb75dfe501fe4d3bc71e7ffded7aa23b558f7c29e70c1eea67ddd9c8fdd1cdd4f7eda97fd89ebf7a15cfe3ff3f5f2ef757fb7c071f38f48e6806c9cbb31aa74c19c7425826ef8a0ae4e5cb1ced937eafc55bace16fd609e8767b2a6ad86f6d5e194a68b7ff68267661d175b4b6f908c703c4cb31cad151520c440e828348213861fc5fa12873b8ef71c73ffd2b777c5197d3cb38c237ba7072f4990a14c6a63bea2ddfeff47dfc973b7e57336ce78b735d050b07fae6d608b9f9ef692c26b26fde6d7aa7f5e4ecb041c4beb4e336317441f62b466580a9e0d1088dfebbf71d8d2f859b3b74de59ab7cb941b3c702208a3546395f6635fd6a68717f31b4aac0282774bc6fc1605102c39e2d66bd93b922e154378b7630b476f231e0cb51c58281da22c5d6e47c9da5fc713a32d56b1c6fa3dd738e755dc95eef67e5266479702903a03997d93ba526a273a2736e9427e5c1c7a0f715eb3c55be6d40a349527f6d741f86881a84232207b48c0b75ef9acade11629e87bca1564e35a5a891cfc3f0c5191fec99ea2f7fcefbf3276d138ef021ba1ab2864170c284bf047526a2c04f99b4bec34fadb77b7e6a8803ab7efe858f1ac69d5838f0eeb8d6bd433e60e1ac534146760176fb7b4b44d8df4e73e493f7ed95da3fa4de0c1c7dd9626c2939764fe3fa097bca60535b9aaa3e9fde05ab98a365f2b99be6f19c7f9c98aa480891071242dcf60b27a6a85fa84a4c2b3865a1a98440c5c0b7ae2060e339160ef02a67bf39f7e191d42db2e794a3f7ac9cd92723979fb7b2d1ae506d2cbbf6032bc021932ef92d95444fef776ed3072e3457ac7b88c59a52e7e4562d550c6a1c24b0fc4af84df6754f12e5fd592bde5b5ea34eeeb2316e5bc723c73285334188d0f6c7512a9b844f4acf14b2a69528d76151ee8ec7cb4e97c1da804be339f1c2bab9f75e70e3b0a1bcb58076843a773a59dac6289d0b81588a1267a6c66b7d860cfa51729f4ae55322a28318824a088ea014c10973fe2cf4161226701e357d812a624b71fc58c4c73294e088ab4d950c74148e21d0944935d7dbe5f183a71cd1f1397c410a5210f93f19e4c057701bcf468c2f95e95bd84a293a8ba447ece1bb24c66227b9ca8dc83306fa1ffedcfeab6c57ce1fdea7fe4a67ec34ce785c859777775081d466163d8fc1d5a57568dfa98d3f343f7683eb0dda3202a56479db30a49e8bdc9fd5b539f58641c4f0040f5d7e93641267a0b15ef3be79a6350a02e05dc0eb013767e6dd9dd37fd7ddeb6561f2ac31e8478e4022b18ee803d264ff3084407dc7394386ae6dc9db782f7d34a597fb0a31d63cc94b8c72d4180472faed0ed5bf9f99f0a57fb060e0413cf1ba31a57950474f7bb6aea25d76dafd71ddcde36aef282f7e0ced7a77cb15903ae1f36a6473f6405644cbab79ca448f7599f9756126fd3b6cb7a0465c0cafed30d03e100eda0dd8d676dd94a874207cda6e7b3adeb89fc356eaf0ec994d761e7357e1ca593da97d3f7f24b6e0a0b15f811510846938ea85fd7513cd0135603fad9b4fc7ac5b3434757136165a532ef0805ce733b5ec0d8be3656faface97346bc3ba2865e1090cdb8b3af2535b565d1a51c6a10a0f90cd03a77f4f4125c15f73ae892eacdd3b88b6ef1c5fc29be95eb4373b6430fc67a98beda9b549f1ef9f9b1d8a73b555c268c5d2ebad202a9db8cea18a128c382816a9b8efeed5c97fc5eb423cd825e71a0bc4ee9f31017dae7537263312f53ee2800ac66a5ad1157d66f1ece9288ade2baf17cb986955847e67679f7c285c884e49636f41dc85af9a7d31322fe95d416314081dac955b1c3512516fbc8b2eb46c55cc93bdbd72fed4d80e4fd631ff1ea4170809a7b534708d7c0ce5c66b5f6f628bfa085a09f5ac32a72644508b2612e0ad705bc4fb97ada9e995add8eb31ac2ca51c6d63f5097699b0fe33e4f72dbe5d273f3120c581282038bfe09104fa06784ba9957bef0f06ceba54d2686daf36f5c6c8f49ccbbc0d1f5107f96e9bfed860181a23ad6213f647607f7c47d1fe0cad7682064d7fe4d2ed485e42e1387aa4864a75b89be669d381bbb9b9df68f775a875358301070bbfb78933d17710d1337d759f657743c4f58a75fb432f69c388a4c7f43fb711df079e8f5f409b0b468147d458cec9457641a45bc5975b5a2b5147450ffe1c6c2d9af2a09e957bfe59efc7fb8060947cde92bab155c9396e7946fb432287a5b3c9ea95af6ba6a35a4d1eefeb4fb312fa0f650eb942bf855b2f11eb670ca77e677d5cd296e67d65d662ecbdcf20e23805dc7b02880702c3280b53f51f57d0504732eb5b3d01335d20c2f8cdd7968c14c5ee47271f1be3d39bfe0596ac3318f6108eee2082ab8a3c8a61e839004d23f86d31068fe861c2ef8ef0e97ff35876b505dcb9bcdc938e33c57f156ee85ced5fdaa0125e26f53af296d81262a050c237e054e4376f106cf079890e321529f0fe3e28d494fc5decffc67c369fef7e770e97aba3b3bfa39ff5ddead3fe03446064e267ed2ae725e6afa0e9ad2a60afece46ce3e9aee5a92b25eee463e41da32673464250dce4859b99d0efa7ff7fedfccef54d77d47ba937563c3402774f716dfe349ad4d8cc113e81bfda7e1266212c0f0c96b7b42141bceda58bc0ef61caccb7a1c6176f11da1f4d5f598bcbb36a61d46e165d35ae4694f6cb5131e4a181a5313417148267e97a713f2714f0275f0c34d440057572b75b7a5b097e0ede0ea25b1c51625825356c77086aa691d12ef486f60320119b257fbb9481ce5cce019c301efb95f248dcbdeec66ebf6b357a61f2e6c710840df85ac552038613251848981f028e2f91729ff0fca75555d7fab22dda9649e6cb74438ce7977afeff3171346a8cb1d73077df6f2b8dc9702cc5a42111b535dcd4d51777b13d9f38fb406bcd62f36bd1cc93b6543f83698e61006ca04c141f77e523298e83f67f344c15646b04868651bea7decedd48f20a6eb4267ce6e2a3f64d9b8fee1282b1c03c90f55e814df25d8021f11ca9fdd00d47ff93fc80fae5a8abe9cf41a93129c41cc69caf4c29d44dcf2344dfc7e85d7727d425ab67e6b906b79a5e4c533056ea481d113020cf9eb4a209053c323c7478a955aeaaf9d56ead2644f3bce32929039582d5a46a6ab1caa0a64cb2f225a809becf3400dfbd33f1295339eb8dece17295510bb377efc267dc95c6fdf1833959ffafececa490ae329f1fd1783f5ae5d60a87a7d8d606f8a42d7fc535b79e257be23fbe85c4cdbdf5606d45a99ab872a051d98d3b65edf565a4bb3f7e00b5244b38412f1b988529d2316ae7a9c2260004b7fcc52fb34f9a2a83a78c08ad5488418aeae19c65e097dfe904127d8321876225fd9f67186f7d66d99628a538cefdd5d56597e764dcf403fbd300894ff4d79575386ad53453e84d577e7687c3793a92f3d225e94fe52a51fcf777e6601e797ef54091fbc7b5385c3e32932ec7a2775ccb845a13a039678a2f2a2a521ddbb2e0f2153fe559bb7cc8c3b39afc140dc47a740963ecae6d0f976a7546e294315ca532d397ed647ba37360f95b0d7c70392b187d843543a0b93cd759726cd1008d468424b17c9f9b754766f0c0d5a88b1e84ac85ad9273516c91605fffcf9e72bc31552459e9f0b6faae36e0a331633ebe7e48bbc78b1f6fdbcb99e47d9f690b9fe240016b128343fd72d414a2fb4cf95c055b472df4709fad5e34b1bfee60d699d347568ef354f2484b909b9879eef73484cecddbb176aed1f4fb81fcbbe565575282fb26c751a1e030681ce7f3cf4c93e0adbebd1ac9ccff9e28dc1d4c6c7b5918efe2b9715f4c6cd93a94a0fafdec421d501ad85911673620b5f2d4f5ca2ab3b9d7db93607b8d5639b9f56c933b9a393411303f1c1413c912cc4b2485a233e24851837eae6ddfcf80de8dc8d56e9dcda9bad2d5177ee798fc23110020fadac6fea00fd8d32d9f01f6be3158278fa18df64fb9932d975fe6a77a79b8ebb87bc5d276abc1637107e2c3079d1c0ba674b357b7b714121f71e9efb61bbbcff8787193bef6186331c3150d70ccd0d8709de184ec277cff97c98e6c60f7ca0d1f385369058dc5a9f94e6489ced383e5557b63ec33ddd8b338ea81a5ddcd639b67a71a28fa5a7345f69aba05c79789eeb4ee0e307c898067289ec4481a8c9a2266b16e78d3b7ee67cfe3788e3ba539d2a26cc0cd33718294ea85e5eaed33dbe32ddfa8656cc8505df692b0a145db590582b5b1fba32705ceefe9026c70689b0dda32154b97424551d0992541c90a56813f99800a1af902237242868dee3c1c8332da02c26496088baf81ab637edcf492be95f92568a7f67d24a39cafed0a37bad7558b8fc7176d64b47eeb1063ff89d7ad63fe0710261e100dbc221e510f98117d71eedcb2854d22056cfb1ad6af2178e67587d65c6cadc7f1610d3b94fcc7f344470a0c0ddea8ce11b49a93adf41f0ccbad5d2aacf01f285077b31e0321cb804410b4152691422c13984a810b2f7c1fb54de90d0e0a8973e5afaafdcc945bd8563c09a731e56e93f56fc0dbed112ae855a1cbefb788ac0ec74ceabe7957d5c5a62b75a7e74fb1edb4715bff2fbe189e7caf7891d6960a6c621aa459179aa854feeed123da3c633607027d8e0ea93faab6fcd144489541ca3ce09f5648cb02ca708a247aa830eef7f1a3210b7fe86b532e5884d2e7b5ae04ddfedf1c3e7930b40833e768dacdbfd2c20fc6bc1e5b9d06bcc03f8c5bc238707e9d670cbcf961bb9d38f1e9a0fd81f7fed8a780d23c02a2b1ca36ab76d32acca3a647370087baeade0d182579dd75dbd90a083cbe50ce8e2b59bb07f11b952ed47ed54f86107e790a37181c7cdfea36cbc6d1efe97a88adcf2c40dbe67df68bfa4c9e93d91a7aefa495a412522eb1992cc71b4fe5ca7e162303af014f620e7706be18b69eb63f0684145c0521225bf517e91c0b78778b3f418b7db7a8720e0c097db68421768446f75350403b686e0c0e69f23c2fcd49f6719942177c72ca558addb2f95738640e8d18825f7bb3f34e1b4de3efc9573834561585425f188fd65b2bc4ae963ee42031c2f7ec8ade9fc0620fd157f343e6fee4ec1262c1c302f0e96d232b9ee34bc14c45d72bde63ae319c93aee23fea0b7d33731342ff42f01ac2f22f4d3a5041758a4430556ccf812afbf7844c96dd00719be3aa5ef503f79125d01592b4570c2b8be762d1856fdb391ad9de054f876202c18c84ee86357b621763b14becd5b3c4bd8e32b7e2cdb6fe669548cd290cecca6d975c06ba96fbc5470e096e079c4a6e213935747db0f84b3d67b4ef8a7bab575eb4e46630830101cc15d04278ce92be21009ff3fe0f579c81c52a67ff67c336bc65166c25293ee5481c2be2375967e31a745a4d719b153bfe2f509958c3ed4c2e5c37e8937b5fcf5b3b7faa49b1547ffebf5f967bd3ebf8db9c7d0524b465eeb88d5216b090d6f03eb00534333172d7363237f855301de671ce5cff8079a84b8fbea39bbab69ffd7ebf3efb39793fb15adfe3c6544b3a0774778717095d7e8eadd37ad24a79b260ccf335166d6fb91ddf0cd1ae5608e72e0587810764cebe050c1a4a4710be1b5fb6ac846c7c63c66fcda929fb078e5a92408a729ae9e82bec9bcbe15ba79a2e4d64deb738af7e7aafd2efb02ae0763566ef1ab5e773f302a2bf8e0107f55db91de68fd77941add218404f553cbe8e790b57604272cb2eccbd60503e7a0923437fdd5a36fbaefbf70f992efe5603f4f02ff2238dae9a464c234be33e0572a285dbf64695b20ddc65ae61160dea19dfbb2c15d99050b07b49e04a0b77204ba441a3d748adbe9176b5f0cbab2694e07570d2bc30255ca4e0361cfe5c825a3cc62865e8aad4eb0aa77ed713c359ec418fe4036dd38d81e940dc140a4203888188213c6f8151eb128fb3dc856fd5f215b15d041be52599765ce43f6ab3868bde7200a5af63b67ea7f215bbf6e17e0b51bc0808cb4d4fd4d07d37b2f071bae49984dcc11442bb2e796f817350b58f6a4112316809359f012bb28a9481a9d38978f729b1768ed9b796bd7a1de646cdc24ab43fa055fe357945fe78c4f178a704a27408526f4ec44aca047ff6089a86a8aef15385a73f841b9e5ae4d1d30d0d778692b3d1f25e743d69111a17c713923f0ee99809355ac6c5ce5cb57a7ae1300819e20eb8f8bf7c5239ed54f00288e0f01340e8f9edb44f8bb97f55b34cda97463c0c1101cd81fc10923feaa78dca440390d7da03f5c4b5d1586cb8f8a25daae467bc4de88d90f3a903504c280099ce7571eef125853b74b3390d0cdd9c3c3cbeb6f8fb6000f0341cf9a5ff9fcaba2371667af519582f4b1f7777aeb1f6c9cf7a5eeb0983a8e2ed25f3008427b24bb71993bfa3b773080d2b5d997d413e417018a6d71051695d38a395b84c32af65e1771f7cf81086299e9d5ae652da2dc4f966060ad201cec29602dd85e33704ed1e55df4f858c0dd99b663caa5e41f88979eb81db108f3103c6bf3f3b1c3761c2c188d5a4b411077206912d291300b715462e4e011878b2a87747b5aaf5ab4b2c268115bfab1e04cad663e0e503ee023e286cf4ff33911b5f06197b58df5d9c6927576b179a2dafbc41311a722bab5b66109a5160929ef003a4bc2a1e5fb33b7534693ca3920e12110ffa9840beca9fe05ace6f167294dc830602d080eac86e08411216984693f7fa0a91da89d6a69c42ac4dfd95f42588f7e867c2887fb74ce127df90b91ecf11e8dfa5c4348922d08aca6c4e749013dfe7148cda84d288b3fe8a4a1d72793039cb4df6ab9349deda4c639385f76ec1ded17c7f23e332b134020501001180c210481c190753d514f4ffebb7780105959f27333c3972b9bfe9c4dc5b70374692783065f91f1bfac571d66d7f76c5799c54f4f3239f7fb85af00b52a19a61c941f85951f75180e87a90114d8d5dbfee71307842aa265297adddeb114df6814181d0b30b99b9577e282bcc557d80711c2341ce57f48e11c138ef7fe4587f21ac528d1835eab50682cd4a72f2c654bf3339f460889a34547b662c0f915e5d5b4488eb7ddcfefb1bcd1ce7bc568d7e4a86472841d3809a667d0a4ab61d03699a196f603a8e1dc8e6104cf23085794de27af4edb54a13dd73c107b9e7d32a310c6c4a833216129a377ede3320fa88bb289d7355d3b7eac2d66a437fcf581c79f9fb76a0b522e8e320941234549df6adc8e63aa31a02c717ab7577ef8438c558e9429e0c1ea30621eb7026f82a0d05d57fb06ee7a50262bd4110bb0b7548f897be6167e2ec892f82f3b9e0686aad9b4e52db8ba582be161adab994ae3b344fe62f4371664b15b7ad6204d1206ed27fce82e5e53f5f83284310c3938bedd7af402bf5064981e20d4bcbcc753bdce8777480b4d7f3cc69ab1bc917a0356f47e4effed4d2ae815833f909d6a4848dd1612d2e0f40be9d5836cfede0eafc6e698ee577597dff4cac93f4c328505039147a4a800de7d70a5d352f06b8e5b09b36c736a16e9e3ba64e85ad63b573f28031cb70a554b9be45109e90a76dbde0ff7db6f859755cc3b08df57ce72746a2972c380fd2038b0f727b9c0635f90c39e8928edf5c9e3192c1438dfb3277dee18adefdd6c3ad70bc780096cc2fc10bb0c4ee0dbae555d1c641c2464c525a45c245c649c1d1c651ced5de4e5eded1d9c9d9cc51da59d9c1d5ca4ec5d5ce41c15a41cc51d5de41414e4255d1c25e5ed1d25a49de4a5f131a3abcad83bda3b2a38394a4a48494848c8da8b3b3ada4bbb482bd8db4b3a2828c849cb3bd8bbd8cbdbdbcbca4a29c8c9da4b8b4b3b3bc9c94a3a398abbd8cb3a284860e1405dc1ea06a977de6c47658ad7a2e4986749686574d7b8c405c721d9cbbe66f3a980ad9e44097430b68a664ce584a78d49909a22bd69b3b67d766cc05e1748432318438a01e148ef02c7b06150dc40c99cac30388d26fc641f6e8fd72bb257036a33398ff77f94f68afdb49d63808c201121d4f3f7dbf4ecab0c66f071d46b91cec4de99131afb945c64dc4a3cc63f6de79d385297aff027fb28d63667d0e77f1077e7514140ecab3d35e9079688ca93c4d6684571858a933bc1c077f0287d57dfe0394126dbf2e020160e045af4d79e49e9bf999da8d9ad4f18f612582bcb15eb95333a5d186e981a66c30f4029b38f38544bb69c1d445be6110a5f152b5e4a2668319bec3cadd47e7129310203b681e0c0169f7978f48ea87efe4046c4512b79556f86a46e1bf28e4af1a5a5b2944c45e8efff7ec6edf605aa58aa1537ef7eeb871e956313572ee40e39ec5269fa25ff73bddf0d80d2bcee112ad467a6d3e8588905e18bae5fb1e89e89dccb82bfbf96b679fa68629812f3540277b411160c140c169bea87750673f8664eec153061db2c6f9be4aa903b6af076a4ac6ea8511750b6207e389ae4c4ce2790e37de3f04b02fad8ace82c71c9db71c949b1dab76614bf049ba4a9a0485a236124d165d71d89cae0180801afd859f0afe862c4c28d3977296e0bc98d3b38bb0d0d501c274afc71300a4aa18a2f90b3cb400fbedaf2743f194c2306d5edf876e85f7e67fc1b223e7388ee015bfd1220cb78ef686c3d9ddbbcd304d3521fee778551a083cf5dfe0aed70cfe4afc8a4acb6e2ba47f641f81685ac881e5a24faa5d8d4ad7aa623c2985a5a204c7289fff975a0d20c76209543532168c29c4149b6be398c5e6dff4670aae71a062203c14124109c30b67f25617c3aa2e71a7eda262ee79aadcf038c7aa1e20355b5f72c42e7a4b9f7fcd726fe0fb789e100b5182bb4ded60d3ebd19b639cf1e139d057b6f1fea04c3961a2aceb334d98201f0233efd418534f58ba4d922319637c53296054e9659f3d7cef26e5db79bbc12f9878aa48e84923e4642c9f97f21f965e445486605e6cd5a53b78e38b3fd0599c8f134032c1c80dec4d99a9ab48e37a4392a121f751f9a76381892edcbe57e7ef8846cde492a2540868c7a84542eb633b26a9085e555a6f9f892ed29915b0c4cbce367b75edd38c5825e83acad203861a15f2d758d645482c8c4f3551576bd5bda424dd7239bcab91bd3f963bf508aa0a332230d73f074d737100ce8a35937cfe45c266f83a6e1fc47b12fcc1ebbf2ef662c3c3c3e8f8799de7e9781de91a104252b9a655dbf2b2ba79f726c269ca1ef3e10b2e7826a313f209e62911b2e10d50089a52cf4f3e3d9235cafda812e5f6cad3ccbbf963f9566f835a54ce48b62787701b513487f075de2f3c5f5d2174a4573facde4873b8a8d17f2be23ace1751a649b8dc76793e791043bd7b6e5c2d99629dd479301e75b21b0b5359ee9c98928d54e9998f80816e080ee47abd761f57e95f3dc145213a2f11385e2be540a859b0e2ea60de29947ae7f9518fc35094ee16725de2993ff3b4be5e590a65f1cade1e73e16ef603a27497eed14bab8453a67f549dcb9034a41a7e6e166ce62b091cab97d95004fb5bb75fdb536f1929ea002c66b2721c1b31bccfb6bce6b8dd7933070a81d8cf9133f4a2a82fc09a2b9e567e34f3b252cff44da5eef75ff78c651326f8e0df980194bb93863df6b9bab3e9c621ec5cc8ef1630b82805c63c5fcfafbebef71cce21ffc674a39a8fdccae7d083fd542ede45d202949518da1d800e128d6807b9453c35d458137347a2f0aa9d224f32f9d5075320ef5cc3bec1a7e79ffad65ef9fd75d5fe0286e60200b38c82c927e39ffb39e42a1548deaf234b8c5dd12b92ce1865b36a699829ccd6a6c85632051e51a044776e92cdfadb31dbd4b500e9e64b10a313ce29ff80da01caffe7a61596f106b4e9ac44778e0986987b4d7b1709786c4a13605dea180741e477c7ac92eefff619c7f4671b2a8acb0d61c9156e85db9d5ae2970875ac409c537c832e06f9dd6d2ebe2edbe49925bc9c19b75466a2f4a38315b51b1d830e0ecaaab3bbd76fbb94e0c094ba15f7bc37ae9fdc1204bf8701e1916e3ce84d5a1d6988e97f6601bcb297ed874e65eb12fcfc72d0add49dfcd2ec580eda0eef283cee2b6f7928c4d046f55b291ff0428c7e80dc8e7ed884ab538e3ab8437bc07f43b9bb44ebb28cbce189035586c53d64d01824f34ba9babc6abf4621af4c3efe50e5cbe99d910da1a9a3cc8703220bc39a9f2ab838610611a8ea277dfe348606eb3e0af62468b1323bd7e9b404927165a33b5b05907ff9c975311cf97774d85b927b0b1b0d8f4bd3d599658dd07f6829432c46100b1ed571c0a88a759059bef07a79aa79b5a515fa2d3eb907c7ff869e7709a9784aca2b50ac5d81f84a7445f72630b9090bb237f9bf094aae1a5c87767a87a5fe50cbfc42ff17bf57bb0e875a8cb3c929bf69a0d572f573f9959c4f9e375e2d4fd2b6ad3df243cad1dd80e7d9779b195c49c3fe51a0e2622421a0d5f91a7304b97551b8e657bc2021830e936543213474b7216e4baa88b3833acca70dd3f9f3de7c71403e2e82540fca1d66820a1edc64868c73d2444dbea6789f50aee771dd5cbdfa830225abd7de9d8a03521e9332c18385e5d976ea21e3e7b5ff5be3ca66ead2e5f246e29f3f8999ae9fa8323cc66711f81d0b5b3b1be1c9b51a54d3e9803e71304674c741a231d541c45ee89b4e452c54a632056101cc40cc109837f499025e275460958e54fb5583e1db02da663aaffa048c4ecb49f23864aebf096b60c063c1a3dd3731b4f8f5ffc9b70c2427b1b5afd1b6f2cbf813811417368bb6d071d364d2c47dddb9fefb32a6a65dca51d80070e19d587e707986f12c1fd20b4649e69deb7b8f656f91abbdcb95f6973fbd9fc5b72ebf084f8e5470c728c324613e7bd8e53550c59ac793cd74429acc72690cae60d7a1defa3175fc5b7abeef29db9f09c6d3f2a3ef5559187b4cef938a15e53e630fad41273963d994aea963d4ef6226a0cc36b61d3513e0a1c7505295f252d7c78e7f29d65c68f17f2faa423617426a1e4efe44754f71c9c0cc5c07a213858178213a6f1355274e2f58f797e9d7e03cf2ff04f4354d4ae5349ed697d1df706de1d33766fce7e59f0c3b250a13b3d4ff520b5c665b7e05f81a8746aa70ab8bf07f21913b239ee522fb39630ae95fc674354fed7f3fcfe3e888a85afbf9aa3a18be61953e7935a9201fef2faa74f3b07f8baab396ab93ada9f392c69ed6862eda9e0a02da1e9f60f4150fe86d6fa1b787e9de4151ce4c5e5ed25a5e4251d649d1de565e4c46524e59d25e51ce41d1d1564e425ed9d65a414ec5d9ce4649c2564c51dc4a524251cc4a51cec2525e5e4e52477f5fec4ce01a715e5a565a4feaf42781e6d520451c55d0e96be657a7edbaeaab1cf86aebd60cce26498bf486316ffec1659c3b5682a19484a237145706f7edbc05b2fe3ce943b0d03991f52a919cb02097e02c213b7a478c2df37af91007e3b948275b2f7f209f762eaa9888737ab9f21c9ec3826008d278e5914ab94507da51c4fc93325655b2fe53ccbd88dd9e863af85bc8eef77c670a880701c07800f6f8a0e0df0238d60e371c77c55b264f65a76b739842573575fb2fe78a79f7effcf9b7f5d38f66974edda23c4d3f928c73e927e24817b354aeba689d5b899bc2bb5802dba6bfb5593a5ec997938da1c04fedccb4d4125fbe754f8bf6c68879bc9535e3294f97e1a0203af348f19396ab37d9407f9cebe8f2548226e45b59e9029c9e4fa4ee71083414c9fd46b4a54d2b9c8d96ceb178e73aec7e1f7e3501bb20fee28c96cc7b1d598f321822b00e9c3ce27144dce9a4e3eef6cf3b964ccd4b56af8625cc8dcb2bbd5b2f42143c82cba04b276f3939a67ac1cf549cd892212078190602c0805ca3efdfcd3a3d641d1a06a55100b3f7a29188e56746e3f0e02715ec768efa478de220c0537aef8ea5f737b92793b9b3bdf4838e7f5a7d5f3111669f5492bf54f84182343ec57fcc77b8a3107bcf6f6a0b7cd839db3ccb544ad426649d52b004571c4b9b37029ede895dbaa191ed8c4e1b6961cc88ae0bbdbfa567bee1129afa273d6b2115005a4f3e36924c3810e14eabdda060be184791119d9a0caec2896a2486e065e0522380c1201a9805c41dc5077903c940a0405517d1592e2827f616cd9c01f5293cdc6583ab71fa742a88b005d966e6531d5373c8cb02a68539e619dc4bd6ba0ecf769477cd60cbcc9fafce801dae4b9f34af0b280cc45cf1b517a55d4672755ceeb0f931ac2fd6b4bbd54d007d0996b971090c5cf02d25a7d47c03210f45f027e128fea8f13e07f8a363728f3ff63efcbe3a15cfbb86786b164cd9e25642d61cc8c59ec599225d97799dd929d889633666c2591648d6e54225b2a99738423155a2c2d2a11512a8414a6c2fb399d7aced3fb5693d4e779cef39ef9f8675cd735f7efbeeefbfafdaeebb77cbf7f8aa60190af92d7ae7c2a1a6c3670f599416174ee6e17c46495e8fcdd2982ac7fc9d6679701619ed8035553672256cf1f9bdd993f935265a397b80fee878551c4b28e6ef497ab3b31778c0669a4939b47e9d2325f10ad4e0f04fd38796b3e4c5f24e4cf09fcec14aee8f56c3d716e9a0afa28a7adaf6fe54061e71dedd2477e1ebb2ff89b5f70570bb0e17a31e27a4378ff030361c00c64ae541dd9413ba435a2148f93177b7e3f64dd847ba3ec7a9e31e52b309d130cde1c266f26e47d29162fb5f2f384f29c92f316292010835775a984f24bc21ef87099af7e9c7b971b3d862e6f3cab6a27563fcfc5c28472372d53fe9f4738ff2dcfe76f4638ff3947eaf29eff4f249cffb6f9072deffa4bdea2408cf1e16487287c08cb4bff10f9974638bf948c856f5c3f6c4b79bf58e9bfa5bf7f3f9d70febf6afdb29a9fa57385fefcf5bb948cf3ffc6f5bb2cf99ddf95fc9dd62fabf76bb9ebfb3fb07ed996393fc08f0c9c2d7d7ee47dfefd5b05b899cf3541780fd4677b95f341afa78aadef1e8396e7e3325ae6e3f9d92e14b61fb97ff99e3c9684c371d7fffdfb6750a357fedfffe8f3b4d1c054ce4e8636063bacab10d1fbe378376a9bde30d7ac7da6e2e0850326962bad9deeae229e5fd7540f0bcaeb36786e59056c78a145edab77af13c8a646c4d97367f9dd10dcae5c8e7865503fb4ff767888665dcd5cb52c5d50c395ce16e095e1e8d8e11477e8e82f4936877b8b0dc7eedce2497d94207066f1f4cbda3ad3e943325e2c6eeb8b58437c03b5674a487f2636f1e545139eee3980f69d4088184f3f84a49ee4b93c78e08a40476e68a981b77c03a0c8d1f94e7822fb76927e8abe2aa79f77597c2dc6134fd54f1306df1552595ff5b15c94ef43fcac8296a9fbade8721d51c5bfe67a16e79c6fdb1571dbc6436a34d1c6e46b77c4516f60d4440528b367d7ebc42bf1e8f88ef19e045799df9df7bc05e17f94b27701ad9ed1932f0e18c946f25d75aae849f2e6e5f218f7e77eb95530467d85afad9af68663a8574248069813c204b3d1e4a1b4e6c77470ae2a1d9c574967e33cf2817843ad77aa111e9d8d621b533972f9e1bf122c0f5006ee03a0d554d0ea26900c840a5a0dfee38f67ff0e7737e62e97149523034efd68ff033e5181c3efdbe4403260d3f749993c9f253f590d79df0d001950413c6dbd709d1d230b27cf639a9a9582d2b7f6dc6a6680561b8156734544137c268fa6e780ecc120890fb280563416375181718b5b13594de97772fa4d0bf7702b78edf7b9829550aad6e51157659c23374c033bd7dff3cc7ff7fcd9606669ad154fcbca8e9aa329e739e7dfd5fef6cb45c3eb62610c702c8409de4d9387c6b67ccce5397d964a65809570549c913d0e4475c42f2eae124b73425245f12029171c883aef618b7b4bc583d6e140581c687ae17d4f24551427f0b1951d258883bbe040dab801692a91d7c9ef88080eed42259e4d637f2682f370f178df0f0772c499a6e11717c5629d3d704676f8c5c5b48362b1f6383930cec88e7a902d6dda0387c7119d3d407f0c70c4810fa6c5a6e162d2e2de0fc2653a7ba4dbe2c1a015b18eb1f8c545c82ab134fa1f0d10f134275b670ffce2626cac189d26064ea3d2568ae21a5c88369b7686e206a470207bdc4a1cbb3d4e11079af7b04d3f686bebbc5044f20ba184bbae1192a304248ed90af9c6861d3ed62e7b7928fe6895a22ca6cf3755c44e3b8b5b0e944e0a0f0e209a80b88440882630901aef7881c1e0dd5961f92ac0010e3647c7bdbae4b07d1c6d0ff5af3f33988e03d6179ebc1adf5e53df252d566070b061edfabaa787dddb4e385d557be1312a77d28301664298e0d73479a8e087a8235becfd8cd7a64a324ad3dd26c5db38474632d7f9a41e563e9860b9de6295e538031c6797e6fc0971a6c8a81349de70ed20887e7ff35df68a97edf6187616ea81553ad6978f653783fade0a3a242df3faacac2a2bb323b2cc6bb28a0a821300969ee3092bf33a3efdd1fb6f15ba92bca82a148933f1d60a71de07dad86d642e7419bb01d6dc427142a290ed4e6e4356824f4fe8a4ba8e854ab49a594a8abfd3a6b65679fd552829fb1d85925b70af4568f4a66acf99ee424ae4507b3deac9fa1f194ff92729f4c76f66ffb05f45c5db5e819f44b057bcdc2fd4d5b71f6fda612e28a01ae9fe2c0835d53c660f04fac2ee4f1d09bc650f570958bb72ad0cea8463188283beda9c3d33fcc1be8c36063407c2841ea6c943d17fa6c8d1d994907f43ced82defe051d9d78c628eab321db141eea0a6d0d19059a4283aa520c2e4c6c5c17bbb83864ce8dbea7b770e3862144ad20497124b7e5b5dd0d5a750751ba776644dc7e3d935581c61ee9f58f2df2496ec48f48d70456b138309a66121e19bedac0337a3a24211ce11d1410e2ebe416e4e61d6583cca6ab37564b8edff542c99028721115a78129a4040e091043c810c2393f114324c4b0b4dc0a3b4b044381a8e216228242c12af8dc16821b490042d0c8540466a119114d27f3496fcb3e777438aca80d9f9aecee3a16dde2d0c23651b7646f4d60ddd31d58f09418db64ab61e5cc1adf8c3ea1d0adeb59b3ded135e1e38c1756250acd745cba9b1f34abf52f1afaca0949ac040cf5b95d9f1d2c4acf6ca1c7aa037fb7a6bdffe3bde2ec1a12babeea8ddbdb5b80a20bcca3b997b75bbdb73e004e6f942d7985db6646e8bb4a15b0cada898af39fec85f169de3836e5e8a453f13ed74e53e4a31c79416d1bc6f94ff79c06b7df03f16fdbfdea2935f9ba320dabc02565c38b485a41053dd60e1889b28532b803890db9d127d12d865acaf20ccb646e96c1df14ecd8b2d39769ae57ac96f3646ff564bf0a15a485f63406f8398d02e20f9dc96b3993828c7c9fa9e1293d3efda569d561133a39f7fa75403b7bc77b361fedb33087a98501a832d84c916489337a083132ed257c75133d239eedd9d9daa113a268151e9e61b5a375da4e74665b0b1b7e71fc9ff916eb0a58f8790deb8bd7dfaf53e91a15f6a91107e6d7361f3175fa55c259465f648fd72432d5f3f93903bbc6efd24cd996b744d3e8a9d2789d523c0253cc058d6ca6ce940c4430364c0b9f4570d83269efc4e88ab275dddd9cdb236fe7bef7d6ed5f6b1e57e87e4ef61238a5447c656ac3ff4090567d58e29415e9d2391d1556d563b9165a28527abceb17ac6985d53672e743072b5656507d962f755b7076b6b25af947f61e27027b3a69a952713b4c1b1d14d323f2a290111a17a91d7eda0488d616da31dbe8e271375d5f96153f0c6687d8ca41f33ced13524d5a0e7a4c086de8d7db7c67013d7f32c014de28ce485e51086d08cd581c7cec28686edf30b9137dcb07df9bfdcab8f476f1f38a889755aac2f6818aa0903b4491dbbc256ece8a5be6894ee81ec2c9125f94b417cb8d3d57a1ef1b33f05a23ed6ae787ca85df976aa85436595d1c7d16ed7c54c8c865b2383369f4348f77c43ed4ae331bf1ea327ca3bcde21f74073fb979996d4ff4f5b34e93a56aabda0c1b0494ef00bc969b4480e22d4d7e847a42548d63b6c3ad5eb0297fa1ced5dcae7995a38f39ff02d3837c30581cb7c3336c6b479b0575177e27671c69dbd883bd4de68b194e023b92d5e635746fd40daf14b9be8ec5747e822ef2faddc6775784f5d3ca3aeb798f67dc4f85d81861bfd72d0fb653e115d5fcf2660bbc256af7943ecb04611156323551812a824158f7e65bd1910f42569025d11aead231d76d9e4e9c0fe84136c2a316d500112f97105d4ced26d0a3c42e556ca0cf8a18cdc73eafcda2e1f2491be4d26f4119e28e20a6b82d5038d3b163f657f953af770b08882a9ef2d129f4592b4f102abf8aac63af164ce8fa76bd7e8f290e66b021986cb0d8c43ff1849beb323ec70b9dc40953b9d43c849467409a64ef827997b7798580b0add19bb6d648994db35d16b9b99a30a65d27b2fe642af1f6c3829a5326add0e7cb8b42b242f35ea2496ef12019da3db6741895793b05dc9ae337020e7fa9efc76962219fe94f3e5c71e08961c1e1e1df3d5ec07f7b6008394c83bc83e88b0ff2212f6183d815d6b2f9eae8d74d9b27ab731675b951e04ebe85f1fe8a8689bdf051855fef5de8f59c13519ea5451fd70bd00dfd43352f24fbd5d658f2b229de90391192f2e64ec753cfe8b3514ef1c6d3fa435125d81640aded1ab7faa2febd933df602a747661c53a240aeab95f30c4e20a7526d784f6118ec764c761b3a52809d2e64a74a57290aff42d93fdbf03794fd7fa2deaa1c1b3c82c614ef34964f5d1b7e3e433da97028fbaba3452f6358958a2db3948c9533e3d5bf7fdb1c5e715eed621f6a2f65bc73b246240e5cb8e3d19f47c247eda0e010c9c3213190b4f2e4b433a105071ed708a2b8e8a0ba25df33eb2d22dfb2dad9eee2be73edc0284f6a27ec860ff67ca9c38a75870a06333bbff213c28b2f1576fd3ced00deb93057f4650cfd15eb15f2af79b284235d2e5dadc8d8ef05e2bb159d244bc6b75d5e700e6a0f0b682d5dc25d84cf9f10be1a4e391daba98e7877b8eb561f26b3b26eadcfc86ff9652e2bcb11ebab12ad6eed61e661e4e4f4ad0464cd92a2f89bce2ee0359bae5cfdb0bfce61bb631bbd2874ea9a88f3f895bafcd743ca8cc49b7aeed37266b4067b82c812b77b1a80524fb78672fe6b4ee7c5eaad6a91bb36f88b68c96a6c3dfff48122b7cc89dd434d00c913b715d1cf36beb31a9e988ae0046318fa12936f5a06a6678edd3dccef9d5c573e57b69a2ee8d242e7e4aefd99b0fe7f68c01d43bb17a221bf6a4fd476788a23fd86835ea4945157a6c65faddba22d85dfd304509cfd77293cbf2da1edf79bf89880d4615898df43743509d9762daef87c834fec7b78a8d43fb12744ce645c12d47ca67df45e516a628ccfd03601285f6cf1b51f060fa5018474eb73be48fa3d5955cc61d8424ce361494d9b55f56abece020315a1fddd5b2d00a9466e7eb6a670ddd992db32982bcdfec7ab1a9e373a4b0f87c173d2eacabcb3fe2a1234a543776ca343a3afd321417adf582478adbdfe72a3e1c6c4965905c9e33d39e38546473d9ac000de5a24f836deac32b244873b3a6696947cd87ac69c62714ebc2886e348200e01d816769ca696f96dc5b9a55dab68a360f8cf5fb47a7902d0ec4344b5444e0b4531c0080813acf99e56f63d4272119d1df6fcb34cf2d4ff9742fe47e72f401ecd197fb151b76d74ab1bf213ba63ad43c2054221e8dde5ade782aa689b66159bb73c67d5de04065c252434edee9a1fed3c76ea906a46a537d73d65ca8313624f9a56aef0520d14ad04ecf81ac669b1faaf73f243c9fc6adbe46ec5607593b78d99aac73e99168bdfbdf35f28a7591f629ce0df9e7f965f9c5a476ae93f747c399684ff49cd27aad0ed3edb807b5ed98ee6ac645de188bb168f1af44e3551813271cf24aeebeb2fbb6596dec1b89ac6f7965f2b20bd6e18587d74555f9b2d4f3c10266374de65254c4954cb39a2e7a1662efed0f3ac6edda8b0fad984c9ddfb547632a079102634eb3d5098cac7408c2af46f188861dbb8cef44eabf9d6722e87e38c4976bcb256ce4c08d72dc1358b766b077c5437b72cac19eb998d977d27b14effa258dcd1a504622e9d250b3f0f5d6b556234283a97ecb74bb9db33f99f40ccdf241083b77176daa185275b937ca26cb54cb448682406ebe3176d164670b421a1edac9d0858372b5f73bc2d99f23f1588412291442c094e419289686d0c92844613b4b044340a05872110581886842460884832168d86232904128282449309581885a80587a33148caff7620462ee1fca4bdce4b4fd82b37b5d742d738401ad59cf6682370108323fa2c24082767f67a8d4ec9de35afacbdc7f2b86daacc7796484b674f91b083bc74e7e797f5bea1282f440f4b890973d253e0acebbd7945ea7146bb57d6e38e890749be97ba5b2bc867809de662e8f5af25f084b283237551aefe25a692177fef7712ac74ab09b73fde05f9abe01a46e33a48e371fc1f29b80ec8d77d64d4509738a1daf076c4227073f513cfc0b7d55c055b5dd92beeabf15c5c8a6ee6868fb700f78b57754e6eba0076567b33e66dd8f88f6efe9be866976d98ed9bfc4cedadfd9da2cc315893881dee1136e151d1c6be78b4767888b12dd99c80c438392190d6ff5b41721291808093901834194e8669531044040a81242009da64229e44c162c85a5802024fd42211607022168d456329682d04064e4662b05a486df27f54377f327f723abfec737a319a7afee67dfe6ba63cd1092a83de5f1ffef30baed789b2c5f4afe837de2b81de15c7570e0685714581d5757b7a46f575fbd45142f87c9fee68a9b1b9853cbac9add87d272ef1bba96257d93b9da92dc81b949996f88620bbe513986bedd00ea58075b24ea9c3fbdac14dd7e824820867db1376db152fd4c30053c9290ef7fd3dec2dd6ea590f052d9f26a64c8c64c4ccfabd3c1d94ff7bad762f431203624a22814762f837ee66b619c222bcf502fbd28601ea15fe947231612eb508bcaa9fd69a6f77abf732573dfe17ded671ba909dcaffef785b6856b14616bfff2d785b417cc112627c728ad9a1bfae7ecdd57daae09ec11ab68d966af9878bfae5c66758627a8a2c73fc57fd43a9d6bd559a9c7b1d4a365ccf325349eeaaad604ae4794598ed7ce6b5ad72ef7e656ee923e281ee090b979311c3a733577905e44bdb5a141a392b9cf4abd80bd21b96169ec87b3551ba25e625197ccc36a72c6fe608479da550ce2ba414e189a2ed0179030855a1fbf9cc6e87a9edb90e52626fbd12a2477b136b24e79a42766bce8b0e48b18e57eabb6d98105dfbf84e98b2eb8d8ac3f3a18ce41be70271c64da545530107c1ebdb01b9b0d791071f5f70a9cc18f8ed8d9f93b52b4c4e6657905c671321a0a2795b29501738b78d26dcf19e16fe0b08e5f127cbd759dabec7db3a6a10ee9fb765578737ce3a6932f349750053ecc69bc6f4f64563f89cb3fe5c21c0d6d81682d2607b6330dc927d72604740f62e41a4f885b5565b04e3aadead2d3cfd811a6ee5c27bbf09f811f772a8e13ef9ba746ab88b7e4bf9fdc7d516ba2d6ffc2b737fb941e9cf572ef534c0f12fd3946de0dddf7ff771ee3e9f06dc51b477935b2732d5cbc25483785b2f6e27e949c6b447c4c28127fe1a6b379a38ad3a9f159ce921622572e6782233b2da7151786a9505e55ba8e1b2db1dbbf665c286ecf415ca428a78da3d7c375b8b5dbac9d3287e45ec7e42b41800dbdf2541cee88c1277cad5ebb847f65f79f0caea8209bdc0b1b8f43bbf9ef02033c0994cf0211a77e87bbf21d41e95b18d99e028e7217931c12c69c52381261e1ec6627b828ac6c060f871065851c84fb585855c2c00b158d25fb0da638bc4641ecb902804cfa0b52a25e706733c464e1b6296b0f49d596c63bf061875baa85ee31208f47509fe58ba7be48dd3f6aea0b4ee3ba491631c5af6f02d5cc4e26076dfb3530a514f27e101be00a99a41839d7e3be745252550e55b9a63b6ad825e8d9a88a070f02ac848979ef9cb3d6a46673b8ca5b365e6d22172dbbfd13dda9710b776e3a503e0ed1732932187ee5dacaf3f65d24405c2ce9a295cd638fa30f8facd7bbfbb9d4950487ca1f9e0d9b972154ac54a537b8e56c04dda0b11d29aeb7bbcf74dda596eab0b25b5eb259e5cf4d217553cd518c979fd0a03729d096977a62592e96c051b33e09537eb9f81ef0bb5c7eddd91aa93f36e101a2442654048e599b677976900975bf7c60af740b1c92ac56d99322e8bc18cdc41eaf96a0709ffaf88ffba82c03fc0ea127a9f4b4ed10fa99996ddfe20aebc6fab68929fbdfce13c7534abbabceff8985a18592d2964d6973f9b8acde1877bec9cef7f3b6bb2cff0569d142bf577c9d32d8aaf2edeb7ab1f1753a56ef4a47917b97077ece89177bfa556941f6c5f009c335fa95a90df80d65031a1db26335e99a1f844241e61e023af642fbbbd7ca95c1705998ba0c943b93f24f45437647c6e2e92844c18adcacd78efb8ce21beea262af0b64f099c7fee7072def1c5a17edd0620a2e12ac3f60af3d21e1ebd87873c0d2701def2379e406e0d56c26bbc0f1277b75ca0b604cba75a41f60edff2d008b54b9401cd8530a199347968ec858fce6595b9bfa17379d3d6ebe1f3e61b46ce180e76902c4fca28c770ec2dd5a9c9d2d754175531caa8ee5ea173ba11755f3ad823194e6bb0ff7d290e8c0565410e75d98b3436e33d5dfd0b9ba6da279da7ff7160fc4d1c18ae216894639063b8a5fb36eb708243b86da02bc136c287b2c9713bc23adc39d4d6cadd1f11e2e06bbb8de2f83fe5c0a0500828381e0547611104320a8927a389da280a96842520c804028200c3c2b5b0703292a245a210e178381e0ed3d24669c328640c198b442ccfb9cc498e0cd441c091a0ff56e7b245b323aeab8656a65ef18bd5da5fda922b68ea3e5857b332a424e89c6484bc4b5008c743f0eda851b6c880fac4193be9a3710e56fc367c33977eb376f18f3e1b23cddab9fc5bed9c88eebaccb86796fb7835a06d53c4b73a032ac72b634743e0337eda1bd602a8d1b0f8bd09b6e6b1e7129286d3518b9d59cec8fcb14a603cfa9a94a37ea90283830161729ca3c943d9deebe68b74368bfd5fd5cd1c3f807016fac3096787ec2e20dace59f2958ef598302c67dd7350c7aa1f6c4fd96cb859756afebc74c26cca28547548b9f34dbaa961e235c2c25274735df62a1fbbeca9b7e0f34f7a6f379f5200fb14ddffefd6cdec037f73dd2cf05137cbb9e00302c811cb702e1b13ec4c4342cc5031e42893cdfec12ef88d8860f7083f3717934d5104d7c870a26f0c3cc83a24303a26e8c7dddf72b7f4463f5f776360442c0a852111e1586d2c1e832022b5b1081491824090b550483c128e262149301805a68dd6a610e14884368a4c8461905a480a014bc02e2fa4c7fd87ee46c2b5505adf37fe47dc3f0a4540614804329680a5a029680a5e1b8941e3b50948983685a085d12213514434458b40c268a3e1040a0a0e436969e3c92432028381c1feb3f7ffd36d577943f1f64d152a8f9e3a65fb3001dded94f4a7b8ce034367fb23f22a5db8cfde8df0635eaaaf3f335cc9e3c43c706c2379c5e6cd45cc6be63e6bcc0b8adb2ecc10a4583bcfefcb8ecce471551c7d473a619d36b1633cf0aedfb330b14e8d087253a3d8fe047740c2ec88074e315425bf2b8eb66afaf2c5cd7ace73b890ac5d3a77934bd4467c610cc85b081332fbc7c1a2f87d64d4990e772fcc28e2bfda2affd691c3b2e4dce5f25871dd64e4c3d0c41ded5d8fbc402006244e6f4897550aeff7a7707fb8cc32df4ebe003f8adf06123e24821ce6bc7458dd4f1d0238ec21efdf0d1ce3c59b2fde188d2db5bf7c649fee52dabfe3edfafe4f54bd41cbbea7a0efd68e60fe4332dd9f564cf878798e56268ed5955f99747966e73cdb9099d5c5ea402f26f5d878e5585abdd2d5c6c67de983433639d24fefb446ed1f294569e37698f47e32072bfd8a04f9fe8dc5975c2ce87cdbf457166fffe229dae6586ac60c2022556a78ea4e729044610f1a9be1230670eec61887df06b8cad3c68bce45dcae093f335439acef113518cf091b95f01587cde8ce26d69d66704880981c2240f06ad722bfbc5fccb747e8ec5ecbdb9d951d8e3a8eeb2986d8441662ca1d249ec68195327f05346dd62acdbbed455f7ae9bb29a6b67e32146664d85bb1ce714ddbc42db5aba6c271e40eaf3e26f4d2bf7c71fc991f7070cae86c9d6919753af9f950c3e8521ec5441ecd3eae8933bcbf9b518fd59ef35602b15ee9edb314d8f00a13437f258bc72a16f77857a98b83ec310b72bef9eea2e24e6d7700cdea234dc42d2773e1ba867aebe9be2d6ba0eb4e9ce89c939fce5d05cc278dd8d49d9a2b95a4f35337d07672646c998dda34a230d9731acfe4b1ba049508531ee7fb4cb6e7e7ba81bec1cf6c7396ed7cd9cde793d3d6b9daea592a52a34a459477fb2bd9aac251123bcecacb0161fd5732a5debd6d36e1ddb382ff4d0fe270d2e0c55354bc6cd6509995cffcd3f375e990b9549a3c144d8738aea3439c0ed0d9af38664870e4ea4b75641d2b30e599ba6955048e3125a2a8c7d0999caf59c824dc4405eaa6efdf5be3e8d4e516ddbc225b2cce6ce8d28062b18e52fe6e3b81ca6797d327018352e383d6b3eb0a0a507650716fd9a70e5b7bf5523d8815c181015b5f1e75ebfeab98979da63849835f5a5231efd09522cfb1f0495ce793dac9e75b563e6c17f19dfc9106ea9f62de1faf629bc0c0e935a7f7828ff8648db0cb92345579d6da459b574456fbe877884d0d0ad60e85031e9ce403f7cfff961f3da00a2db3112ab1682f68a36cc16adc74084b0b7fb837e0630de09f902e0bb4b68dcbe1affafa86dfd8a8090c0cd93c44ea4873972b54cf6be51dddd76293945e70a7211066932e78d337ade810203116617c57947e2e6241d559cea625b0e7b198f003efc732c7d9d365d49df02febd2207329347928ef87c32cc731744608c6e4223acf9eb9b829e0a86bba7cca3a0ecf562a6bc66b8f146a131518e62835a2fab968734c58bc5061baae9f028f3a39b017eb484a329e537cccae01d285d46333b8c9913776b7f8e257402b8b35e89d75899e154fae8d1cae6aed4fab0b83cc05d3e4a18a7f4a44b3e7ca181eaf891a9669cdad8e2c9cb478553c5102aa7f9a2841acdc4a40e8529bc0407fee78b637bb836908d5df68f6586c52d3b4575cfd2fedf78fd95e195f25f9300c0888e89807ed4c138d6a1d559174a9cff5ce36dfa3d769bcd011844a597baf6ae8ff040000ffff8c76ecfb01c001a0aeed47adbb7d5e7a64a670f39c197ab92cba2c3ce06332cc62ebfdac0d10b104a0111bf0b1ad38921e07feb02ec4acd7938adf755f75f3f571f523c66594cdf49b", + "new_txn_trie_node_byte": "0x02f9f4170183053569830f4240850ed16354b6830f81e094ff0000000000000000000000000000000000845380b9f3a700fa2f95f078a7f5a3d8d2d487760a9c7b00000000f38f78daecbd7758535bd6389c842e4857945e45e901421214e9bdf7222025a1f70e2284842a8aa0208a944313a52928986043aa74952282882822554104e97c8fcebd77744689ca75e67d7fdfbb1ef2c7619f7dce2e6badbdfa2130bd062d338d003bdf2b0a4c84de6cf1d811901240bde22e75d4224ea86378a272c0b7a3d78ccf2e1a2c70ae0a50c83d93e6ac7d9f43c476ffdb6385d1f7983a5b847db29a9e927cbc10c7a17b647734bacb267f99e90c019c0e59069fc5f29091475bba8883a22d5da0ed38f0519b54138f83712c4573cdef219da2e03d3b8c7db8decf6008607e5865ec5dd01700661f6c93bc719b9dc99ac36fdc90edf45c839b02682b0023300884b4a48484244aca51d2491a21e584947140c3501228a834420a0e453a7e793b0e96b0d63753fde2b44eb864cf4736933bc00126d0d600106957144daac3894cbedfc569d272a8e5e9b1cec5d386c11d155eb0a9134cead71f33e103b4dedf4b9a18e9ccf166c4b879b2534a2d515ddc10b240c227743f8e9a742cb31379412d06f07fc982ccaa4caab13253706d13a441a7913cadf07d97cd3d5525f74205427e0910caf72c3875d4cebcfb596f0a8684bb593591a2cbe7621efa369d74b8e60ad365fc0dc852059687cc3c9a6c6104144d4ec67f193b783575477ae7acf1b24649a760c8e8cdac57e8bbcb33fa18bc0a956dd1f52f47b06f9f93ce3e12292ff34adfc6da4a6f2516c5d1a84d22500b0624553c655d9aaf244a0b5cb65ab862d236f2d0d4f6565beffd9e433ccf9fb73c7100380e067d349d9c6e0ff7f2b17d00cd255c6eab2c89665e3b21a61cb52f7299be8000f15d8678e1a46917708c86a238eac8c8d43633af83aed22bc102a75c26f74c405702478a8b310408a980f8313091752cfcf2c24bfb9ebcadb0d49c7e97423f621c40b24aaef76cd99bcc5c82d767cce7e3a9376f985ae166873b611952c33db6521f6bce0fa62cecbade718440ac9dd83e6fdd0c66fef28a54189bd01272ce28bb6e43b386353133cd2db6fd1f2dd453a04296a778d4556c135efe92d44ef4bd31aec3a9fa9b20fc4fcf19045220d28e21d2cecc307ed163c5ad5d869b5c7fa4d54143f9bc66d915d08fc3d67b0a7ef8f8cb4bac9228a09a24745d80f586e37953d9b56c5fea17450a52c12139765a2b6a671c5158b82ac02ce04c2dcd5e626c45faa25fbac4fff1985cbed6c3a83a67a36b960da33db124f84ac8d2552c0fd96e1c3d05e5a71f76d039f55b6ce31b74620fad5a19c92e587e8a9aac554852a1ac768457fd009d58ec97e46dababc391096ad9886be0e7bdceb455bca01cd7a29eee3b04c74fb300c6c1050eb9a43aefd6d81b62db9881f6f09745d47c65ce8d8f1ddf07c0689fe610c0d796c1655846108e4eb91007ce01a586514f86b2ca3fa76258a69f5fb1085cb891973a82218055de79589edb724949f7997c79991b6eae555537456aea99f3e4f1f5015e55f192b6adba3359df80ffccf32d82860d2e0836aeab0cb2a4bb0c2c67774c56f36e8f4c408a3e9de416ba82b94949ac578282dfa058f3909ce682f07cde4ec668797d0fcc2da36b4e4b32c3bbc8f7b5d35aa41fe087d88ddc3d327353ebd8a63a64f5ee9b236fd988bce0139ab124bb9e819db91fd33baf74e20943c05e31b276a9674fd4d3ddd30d9adfbbb04e000266f9188a2ca130df69a4f3d300f26ebf234db2058bd34a0995b271f4666f04f1ed4bad12383a25051cd9cae1d47d0ad7ed35c6cb9f60670dc78496e2af99ece691c3e0517617ed3c7e9140c080a9ebce2cfcd7ff7cec3b7674d6bc53eb3945a368d12993eb2965ba1d9f667351009a3bd31d1d697afefa991dc278cc9575ca843ca1648795d460f11e455747c0fb71224261d7cd89bdb7d38335c0bde0299fb2d519f0f96bae67394e3791327ae0cb964aa2123f4f074cdf92aa1856fb2204797297de70d9d377ce361277edae9efd06b9eced9c7c426f46d1a1a26ff568672f9399b25d5a2e3172c12a8901b0c08824e78b74eefd3129b12d04bc305d26f56ceeaab9bb55574afe4073ce3420bcb9792e3bb8d0612270867a9d8a3bc49b26b473145b56d5d6980d085dcad3c17b2eb973e16831aa5823cad40fe0f9f3b7ed0424f9edba4fd81fe23a632dbcf3421c84a7d2610803c27c7a1d34bbf6a8d2d3eb7457f8418b1df218deb2030a2a1f6f939d1dc69dec636b581303a883d2e8189c6c75746ead485551088f1f3bfd328ab9dd331479afc677b2c0a90c7f0db25486e521f3c652a1b13b4bb15573a957f11954fde2775e9fde538a825f5f8bf2d3d35dfcc60a7d06de1e7f123a06cfe7138b37649b13f3bfb3e1069719701d473c40a05a3050b784483a5d9b5a788aaeffe0446db6a9192ae05ca13d1df56c99e9bbe48d820920c86fbe9f193c4e7a6a3853509681b4a725bb4585d06a819a0d401b8ca2a5910448376419d285e52103ff63cc38922bb1a992e5ddb727c0038cadd10921a7652fac8d90793163081054e939837e2268ca4da41db2bd73084c444803f3d76a9fb2dce61801d03600dd852af85e5ba4da45451190dff73b535cf010e6bf5943e4158750f893fe85c345a7589836d8745cf34423e88a8b46c1e3b7281fd16b45eaf8344d5b2cbee7687baaa8f4ef7dc941db03154d05edf09f197fa3cbe59676d68468f33250ff4b33d1b38dcf76c3b6e4fa6020144d716d3125935a90a41fbb3948a6ec3721125530caf881bab295dacfab61048080cc3fecb8d33db620a7ec9bec7ebf9372df478bf6dc04690a56964b45eae9a4047239c8323912cb4386054b62a938b03b2d70a4e78553bf756cc793cf1eb1ecae048108640d2fb91e4efc0cee300cf5664a351f52f13fa8c877d9abb0d37c71dc649beb4b0cbf89c86124c4e4b45af0a783e4c027321c704e27dfe461d06a5969dc9bb8c96f220f0bdbfd179afcb128e01d6fbf01474ad6c4f9a91b9f274f45ec7d92a0285af1bc01923cdb6a527f0271705ae39c7dcdc849dec9f4ae95afe9c241f707e4cc2f603e9e260efb27bfa1c56d5488ddd6bb6cf1e51ddf1adb97eddf1a2791f5b5dbdefa13e54f5f0935c4d6ec2bc2fd6347be03b4c8d2f62323188d47db433ff00bd0ff6a00af1ce335f60ef47344f3caf2ba873aa0fdfc83ed7d784578153dbd03bd0234bd4c8d55786579a1d292503118545252465a0a0987cb20a5feba453f30e0cf7ba05262080949192904122a89842111bc22bc466827b49f9fbd07af2c2faf08af9a87bdb33fafaca408afa65700dad9cf352054d3cbc99b57f618af363a54f3f3537845788d5d9dbdec0302fd3e8d4919a519a0ada96d6e6804333542f85a89eb7b5ab97b5885384b22a49d0cf42ced252d0cbc3d64ec0dcc8da535bd959d83adcc3c9c95a1c2662692864ae6ae680f4b4db7402d6f949a395ccac50d19228cb29470d376f2d6f27577f70f0950d532407b7a69ebbaf95a1a0422422c3d43fd1c643ca47494f47d03258411686f29755d13739d408fe0500ba4a6b68ca6a23932182aa107d709745454d4d5b67715473a072986c07de16e9eee8681de4e21c1a1f63a869e0e86c106ea4150150f67a4beb7b3b26fb0aaa99a5190538879888aa457183414e6e1eda0a1e7820eb5842b051b06bb6b881b78fbe8aa1af858491879eba8f93a7a58a254f524951c5d94f454d52cbca4a1ba862e5e4e1686818161dac6301f0965450b174309230fb881ae5448a05a989485abb3978a5550b0798096849394ab9629d42544c557c91cedefe8e9a8efe827a16620e9632ce9ecaa11e22c27c77bfcf85fe7c7fa89e886565ddfb934f9a5e69ac451d3fefb0cc8e0c257d5b8786453ae2e6c0990be79759d24c988b9e03d5ffd317d5bbaf3b4572719dc981a638d4d84446256efe12b204be5581eb2a8682c652f96faeaef11e40c0dcaa32f77cc7e1eb2b19fef242acfa994a56c4d9fb6ad6654353b54838d5c4415e9671d0e84901b0396365591882925acf5f255474e1ee8b4507f37c4d07747cc4731f53c951e966082203f6859901b90a78bc92dd5169654503afe706ab6aefe609a7d3f4b45060c9a13444138d36af1e376bec2e57d8ff06190a5602c0f198e946dc767435f8c58f2cc43d027697abfb3ff547c70fd3d964ef82223545351093df4288eebb9d0701e00c1d462809e5ead25cf9c0d84dbf5ac6a037141afc183eed1d1afbb804de19bbbeed2cf9402ba7b1d1ff79ed4d572af7dd228cb90526cfd66e2b1c4911e34cb52f50dc225c1e63f6c42ec94501ca3a1086ea7385f6a7155c1c935927757daa5f3ee17b7b745dfb8e9338a2140483d5433f67fb9b288e7be8cfa612a61e0be50d542ce67139b9a8c86dbb16fa0bb2a89d89cc0c4ceb5681fe5ddaf89dcd317a6d096f19aa207f3de9d92e6ce0d9211679659b270857c95479dbdd80f6c722d44fa936db3ff96ba7086c88e1169398e1ea7c76d1d875fc91d3a6372f390cbb09f86d4703f9d6809c9802aed1d598f3ef23ef8bd01427a2ad900c1e1d0e919ab9a95411ae7b0500fc611b60d510b04ed4018e1c2c6d8fa39dffb633bad674eb9dc0d82970f71708e3d678b8e487db973aee3107226a767762823d0bca14ddca7babf2078eea37eabccc0dd4136e2caba46b95139ed5c2b4b5b86004c497681ec457aa3d5b090d26312f423b60b638ea24090bc663c2855d9a582423dbe2197b1844ba8c695c33820d0c0f40063ad21448940f26899a413274dbbf819e7a82a9f7ec70e4982fa013be4cd2f2fae9adc3de235cddf77af74ae7d7472117399efecf9ad0d2892884a8e4ba0cd034ada7b629ddc4f848f1b359acaea4e2d0e9d543fd523d07a56298058fbf60c2c90801fa22912361fd04dd5b92b56baf2081923796b9cf3a1d0485ddd7d0741f89f9e33313b2008b4739beddf05ca983ac11bc3df65037b45e30813603344e8771fc0f5e144d4ebe4ad5e71784891663bc2cda39362fbb792fdfb870b6f7fbf996b29ef70bb05e867e4d39f57df41ccca2c46a234991867cf85b24a812ac5632793e0577e99e92889011df21feb2712f76db6244c3588e79faea2fe28e27e25d8cd31ea0452bbe06d6520e05adb6e92d5ce935a78434722e2397ff69bbdf39e072ebbb89567dadd2d6a2b2cfe8ba63ffe8fa069bddbbe8106a5bc9cce7cb2d15904d20b54913a4a2574dec7db6bf26aeb38de4e116bff0fd1b4efff0b344d0488d334ef928963fae096f690b66431856d8ce1b521ecdd16b20729acf578e4f79fcfbbd6b95c188ff9dd34cdd257af85e9d7143fc6186cbfcb86d2e06dfade89edd0b4a1d57a1b64a587eab0e788de9b807797702728dedc91bc23728656ffecf05d9726c069d194acbdc6f6c4803e38809f63f729e3196bc1d2e73a52b59ccf15ec1e1ff02350a441962952b03c645638fa56f7cf3f6a13ca54cbe60792139e022e772f0daa9d642d6bbb039c30c21028f8afe885bcfb19c3ceb784fdeff4abb842573cac164fe4e98963d7b76c3f9951ba4dc5d76e7b1e3662384cfe626b01b9621d4e2da0fbb45ca12baf1a9600953b59f79313d8a6619884fb670c43bf0076db64725f8d2f972623fa8d68d6a692fecbfdda28bb10ed198588adbb0bd26f73fc98bf73fcc4fa97bfc4f7e49abcf256cf2aef94bf3e565f2b87f4dae6fc806dcebf769bf3db12ffd0fde73988f417fe264fa1c6ff928dfe17a25bfe0fbfb7b7ff645f317d898264344b34fa2c877ebc8f99e4c9491b3ff9ff327e7f357e3493fb617db0980ed3d5d93376292f279f6d0c2a1125103020648d0ab6755a7d84c05d5caac1352f01272ef6bfab59dd5dffea66f0cd2b1cb500d58be3afef541bc98eac45e1c7dbfacf3ca44f4c872b38dda47a30a71c97c0588df75c7287e0e829c8b12611a923518fad8b95d6b5e9783519862607bb2f32f31d892359310bb64ed7c47c52d7f9c48d502e4c54d647432c85eed834085c68336cbec8cb2613eeee722152dd811280c4b6ece9ead9e8d3cd5fcfa743975d18cdc7547235c61ee840ca4b2774c98511c0cccb6006531c9df2251c24c13055c9ff0409d7345d825eec14bfe1719c34cfc565f538485d99cb7a32085fa02a1315f5e584435f696a9ae6ec7311dc07266bb09c01eab55318b789444490f079d98f48473bddb24b8bd7ddb861143efe879f27669de8caa23bd9c89a778de1f6a113735523406073dd758aa8d1c3150b52b03a7fcb752f3d35f6f9e5f01ae70ca374895767f611489e419649fab13c643b3e2fcda71f55fa5a2a23f479f54240f662a7ab725e606ef71b0d6fbdf2380ad675cd53201081047597b3f4cdf60e610808a6599e7f29e5e161847637dfed3bd2e6b2cfe61f1db9c5a0a4c96bbc674deffde8f6ac68c4bc2f3f07c9f9ce77ac947c43ee970a59e54c991d6f1ea1fffefeffb14c5bc31bcadfecdea0f40fb0f773b60f40ff627f3ab7404f1fb49f183ac4d1c5decbf9a71ff3eb9a1a190cbda1c9fdf8d7e5dba1f633cc4b69bfbc7f3f44be44adb8cc3fffce7f61b218e03555162d4bc92b92e0ba705f371db1a2f257fcce4b77389b4591cda68ae6499700151ac8c1fc8ec1873d547b51809de7bbd6f6dd94d11a22ce06fc57ce3f1596cbc17b2cb991e2e8940bb18112a9e9cf1f78940616a65ddae386d3ba9c7c832db8463d96df1ed9fa474ccba91292e7072836067c87c68d30c7464ae5ba11bc9e9d00e2c3920ac2dad0b51ce0bf3a7842c8e3e833b68f98f3edef58c50d5e790b8e5cf408cd88e28175905e89c20740967cb13c64649f837ee8942bb04694a9673fb0df5ca89f136e3491b57d6c25bfd99737a015c7d0f0226d28c007538b013a970c4d4a746e9cbd901acffb744f52f530edd313e334a7f52b9fe5a64f4747710106370763ceb8cd79285740de7a4892caac698535d73eade9ad6ca393399cd0da4e80c020cb102896878cf31fef5552c081df35a672b8ef39d81399a29fc3214939d395f8eec9929e2386006e30bf2d17f295622cbdefe95de7111e9f5d65c16617346e2749411db7eb5afccd0a0611cf2b31cf32510108f23383f985f981b7cbdc6a31408a6c55f1aba68079f9995b4ec5e627056bd3bb39929319995f98595d78937a5415500dd41ea6c7beabb7af25c9a751b978a567bca7bbf03ee753e4918bd50b4ae81304d2279065d26e2c0f19d6400047a7d08fa35332c7918853a7be81713df1c9f7c31238761d1e4bae8685f60d456208a4a87a0b93886d886610e3949eee9eb4a38f1f475ab09faa5ff43bac9339c86e1078a655944e8ca9c4f142cce41811d303e9575cc7d4faa54c2d2f795a354ef1b646d329231e9afa23db5b7922f61f7f6f8f6d200ec478f87cdad6fd79c8883c5f81d8fa12e94f04f32144543f1222cb4b42ccf4404475221a93c37d354b24916e0fbb95d763c7a8188ee1b7681be7fd5590b9f3a9a38cd992d661c4289fbb69256cfeee6099ac1c7adeada425005a716bb4eef1e28bd1f04b101255711b7b62a7da36d54966882cfee50e356cf7ae81773a2983e7ee049fd575fa19d5659bf3dfeefb7f3bd48281488fa8ae40a707da1551af3e64d0a9e17885dacfbd5f047a04dea369d52c320d00b249ea66feeadd34edce078a2bc932f16756057819a5bbaf3ff569ba557d26ef0d3e15b294f289af512271101f491cc4f73c0ec21d982a3194e1acb94117f2f06e5d2d87f98a609590d028a620d07688e5cb11a80faee92cbe4e5eecb03b185d363bb28bebc29a7a2d06a0f2dd3139215a7245ae3665d0ed45e283c2306ae519fc002228c597bc4bdc6e0980eb8dcd70749a141e5fcedee9a5dc4b7df06e693ef6e5e344a4d918756de6153702691a6499f4f3b8c09c7f4490eea03f9cda9437e8c4616596cc229a74ade8795e3728169d8f2190f2ff0d11a464db53a489e91010856d7213628694021acdf6bb5bdfa22bf23d1941876c7387743bbce677622bbacb763b9102d16bde21e85f9cdf77e15fa3c37fb6fd2760eb08571015c4e73949e297ff19b36ce6c83cbfc95974ba5740addbd1efbea9d4a96dbc1f352c5475ebcb7f08bd9a9b8ee43260ec9abcb6e7c85a587ed7cee92d52279cf8d64063ccbf717c2aa08fcc9d3fb3bf3ffbfe5a0c601ee963787f641912746391366d2597fcfc7a1e53ffd315f350ead2e713a47ca4000f5e92f209ef68f6c989e7cf96ae359c5b23599f881136d9dd79f874cbecc9d05b7f467091fec1932056d3a930accb99e3fabce70e5c9db2ec908d9e3f1cbc3b19835751b84fb7f72b23cd6137b0938480c41e44b55a4cb44db1f55a1b319605aec5007b3339773db40eea633033097e60929aacfefaf52a58f084730c227566edadb417705486e7c6db7ebf1c9c555c7ea40dae75d18ccbba49cdc9417475f249492476e1afa0b3f23fb207d2cea61a34fa596a5e9a6d16f3d04271f19366a41cbfd6f68da0b3d32aeb814a31c56ec28917d3fd2f860678910616114d47c200ccad4277510d7b6de95bb948ab8efb473329c28c3863567381ebd3870ccedfab00dc198031155696c7e18938b148b6089b65914dfd072a6671fcefb13b06c0b4597fe63bc03e8f381fdbb223f569f1746cb54dec625155c5b506f1156316faead6ed85c9fd03ce9fc3d48201a497d6f4062bf3a169edbe684fa31374f9aad338b58c525cd3b4d1a526cdaa5900d2267ada3ebc647497dc47442b1b0ae67ae2067b8e13bb8d118927ff42d2135fc21e0dd0f21e15206be23deffe8fc86198dbd577091a079eb0299fe176d7ace7d864f2aa8cd169b6f9f130b9a2659605fcd5a5321cf831278ed1501877e4142695840a43ebfd3080047bf4beb5fe99524445fa381c835761c1d9fc4b0e28c9240937d81b042219fffc13562edf9a33db1462954401f984e59c6bb7ee9f59653bdcfb017968e06d3af72335f7b188b743bb93f9f7b20d013c37c0f4a4fee5e8fd40a48db69a4d5f5cf38bb2d6e2b95b713eca02f135ef5cf0679752b0947c3886536938327389d4a4a8616d87147935cdfef66cf3760e3246ec866eace1401d05002a007c455d88e13f56490c88d9dba45f192c933f7ae109d59333ee5e4f9face4683fd421eb2c579328075e4f02118facaff890ce459a3af03a47cd2fc294c80db9f5d285e5967207aba864e58ee0df2e4d6321de38fa56211cc46f3895a490fbba08e9bd836f3fdebd299692b9c43b233d87c1ffc0f15269fae515ec62f8d241319b1ad7e7a4fb2dd43e1450832ea46df778f9b4095a21e3bef933fbc6464f2b71433a8ad62de39c59154cd994150d839d2517427801480cee0c9dd739b8cddbbdfdd7685d3f2cd0be8a217bd204cd9c59d897d1c602fd42579583e0e894947074ca459fd1075cc94562e89828712ea42e618341302e5ea441ec93ae5af10c5d0002aff1e6af41c5092ceb2f676231be4934a79f148b89a1f88f695e7cb9c0baa5db154ccd03461c22cdbbf0a8f7edc8685cb409c83e728776e3998c696ea56aca75ff8ccc04c8f6ac141080982e040683b7612a206a05e1dea695e477c377a543a96ee58f218eadf82dfaca3d3f4a65fb33569e9ff02d6608ddcce4b9f252faab7fc6afeea27e667ce9e884ee24cd45e0d2c052d3c8f7924ac12c8875dfab0f88a60f90a799caaed0ef71843dbe9cf5b2606fe1cbe9100a930281f72d770544660f78e614ac6485f786474939f7961ececbcf2f728bd66a7698b366d5be5090aff420d147d9ce9e1f7a9dbee53e439b66bea0bba04301e9ac6807826abc2327e736b526c9c70fd447791b9bac09fbb508692f60d746607d7ad3d28d7c5e75b9c2561e92ca7d0f4d076d696b79d4d2f9b59e91cd5f9668d18eda7dd738e571b13177f84749ee9ac3d755e261ce1e79878d1b392612dc64f6c8b5b26af2444d8cb1558f0eab88b4139b1f0baf49a6d5669c96b4047beb9aa7172498320f5fb07ff29e412a46ee3936ef29f99028ce6de941ca948729a54f528344ed63f315dbe3b2e9e161f9ce0542f49bc895f8ea2742230277d3e56ea57cd4f12b0ad77bf7a4e8fecba40d963a6c347924ba28a85fe4e91c09c2e69019f5fda38927f53c8e73ed4264e4ebca1a2f4f8d97fab5acbd543e276d749cbe30c74fe236577ef30aa8b0b59a7d01f22cb4b7af6b4a0b15bfdb2ea46188b33cd20b19d694297fa3b6ec047a9f470e1b8bb2188884ae160cd4ba6494849a437ad7406b24b1a6c5b75f4f3ebc4570e34feeadcd7450d6394907f08416fb2e9b9e6e2098e88061537952a4af24c687554b39c39f323d7c47ba6e4380f44396213d581e321c78c0e31f065cd51d38d2a433a9c6e76aa30e736121885547145584a5cf868e7528860041c9ac5e2ddb1e6943b8f9c8f7a75e6989e5f5d560aa73713e603acff1a06e8ef3ae4befae8b49a8199c3e68f1e2e879c76a23a73bd31d4a834faffb75933cf7014404b57b665eda1c8c20e1699c3f5935bf7c8af19e6291ec7c99dd6b0ac568bd98f1766a7a6d33bd96f044e10b56738b749b080ba7d314fd7dd499035d332d862ce78eac26291e20d77915b57f79ad286830bc5aa5c5a0a9c8875fe8adc9810ed7e8f7d7772f28cdba63ef818452dcda98468b2c526dbaefddce53ad99bbc82552f8a4fba0d379ef813ad4de1681837204c34e192bd20369abc72e1c2da8f71831a7323c70227e73ddb2f655612fe3ed2038cf1173f20d48e99ef94e32e3b227d522dc115e9d829ce07ac414404d847512638d145bb6f2c13669d4140defeb0ef3dbd45dd33c251f7e45a6a40473dee25a4a4f441370fa63d7fb7fed321c2fd294d9cabe634a62c68e946ffdc4bf79a3343c48aa38dd64949e94b25c27779cfdd7f698b296e42881783754d5a3ddb13afdcaffdafebee24626fbad234286e57e771894b889c5d632d76280761350c3dbfb316ec2e976f954748b1fc405e2090ceee08cc13dcfeaa95e632d01ea7baecce7400eb4cf2bd7e40f0e019d57da5d232a90ac7d92f01db0c2ac6c090279e732791bdb679ca63eeefecd94420c811cf5bf20959008af2625822f600630c99fa98486e97bad1e8404b0ed158fdef43c5e78f948b6a3f69f9b6c9e2b709cd6040402ef008140ac9fee56c545a0471b74f2ec4a14c69e496cb2a9b9815ac19f9b453f9d723e95f35c81cfa24b876c77c5bb1af1a45d14857feb20838099be1552f32dcfc5c4cb7b218d12fb1b3adb3b6376dbc42143dcdbc2be92ab1f5e25ffb9dc441088fe061ded3faf3686c36ef66cb5e1c4220a7fdee1423455719bfbffb524486c09bf24eb3f77fcfbb0917dd0869c757be80df9a988b45fa02ff0afcfef3f01e0c52f521dfdec1d1c42ff2dcd51420c81444ac840259030241c2e230d45fc7b9aa384181c290387c22525a5911250843442ea7b698ed09f487354d43733f475f3d24548685b84042b5a7a0604bab928ea38c0a1322ac1be2e1e06c24e522884beaab9b3438871b0bba9ba8eb86688a273a0baa59966b0a33a4a4bd1181660890c3395d242a00cc48d03e07a01563e56fa1a2813556323612f6d988b1a1465e965e5e562023354f530d1d677743673768142dd34645c8403601afe867efe219e069a1a2efa3e6a66be3a7077a8b6838bbdb4b9a5a66498834688ae929eb9a587ba9199859629dccc5b4a2704e56e19ac27a1ac8fb634f681fb38f8055bb82b2b79e84a390a3bfb7949c0751ca4d49cdc2c109ecede0e525646b000152975610d094d497507332507bf60751fe720234524da5b58d93040c6c3c1dd11a6e28dd6f5f53097500c71d2f433859918fb6b3a8b07a8496a0a87181842b5613a6a6aae16860e2e419e3ae6287d0f7fcb1043695dff6019bd4077a82b2c48df5bc65043db5b5d49d94c5f5acf3e34f88b3447d01fc14289660de48787aecb1ff77ff2c634ce2b4e80e71a5c6e365067dfcefa77cfd6f8ba01528d20669be0cc86de43b7ad1576e49f448f4a763bea761f7f81f3fb3086a3cafda75f41160771b1c3415c1b7fc2afc0b2807dbf347a7ba3f029850ce254fd39999268a016037c1478e4925d68a3659999f9c67828a8294019bb2494c25e3dea718c8aea56bf0b00c752d19c2acdb888201525dd79c4f4e51dcb7735483a267aa999f9bd03fdfc1df860c852c067f951068303c702388aab8c5823cad49d4e43789371cb772527ab48628330b839ec05441c7fdcbe1ef17110a6160c90efc2234ac975ba97fd18aeed8cadb9ed4b76fb44964c1cf3ecd2cdbae1cafe18c0a6252ada95bbf8feb3f43dad29340f565b34300f6f9c5fa7b8484a909029f950472025409649abb03c647bfe2c8881f34f6548eb422f1d943577996f38d70d58f5298aa06ec6aac8e81cb9062290aa500fb904122156856dba087f3a7a119c47f746805f7912207979c759e3c580ea3a6941d2f909da17ef83e80eb8ccf498253f8db847e3377f8cf9d18051f6a0e816f6decfd3fc129260f11ba71d7ae25606b350b1812fe4f56a7c8f6dcb054d34360162b74d173000fa9f0dc47cd094bae8007b5d7b7ff75f7c3eccd5c7c95f565cdcd0d31c11e8ebe6ae8cd651d67186bbc0fcd403d58c4dad82cc438c942d8c0d2ddc757c94944ca4f5d40c9d4dd0ffc1c3eccb8bb3ceacda7dc99a71c741769abb4a6ff29fbd9f14bb75779ad1bf9b7efe051467ae65f18f691c63b733cd17da03079f130f46091f547ca5f1dc4ff1d566f6c79b6ad7386dacad7356ee8c290255a297d6444114334161769cd78613b3eb9b5617d98807bf70931814118a1c1f93a8368fd5307d5c3417170f31bc98e6d026fad82e69d57900e0c81e95e8d4863b9064a2e7341fd9713d6795847ab457b7bd5273206d1ef14bc7df842cddc0f290717d2e79a28f23c1a5a59a987499469fcd898cd74b1bcc979feeeba13efd32966e1fa2ef72085e65fe2c870d1167e5f4f75a76bea8be5e84faecdb56f150bbe7dfb9d7ed03d09819d890b6a67c197e3a361d9cb328bbef721742d91e60539fd7ba515e60f0566a8cf5fa18c540b5134fff88c0e2b5d2ca97d3fd277319f1d7214bd73efb90097f546bf9fdfe9aee733284c611ee8573a3da14d1171426214dbcf9fe41517421ddfba7034abcbd016d900e54686f60a971ca441db87cc57a7865d8a7a8d37afc6c7cc803c8cd701202bd2668995e1518892b967d9359574e2833e914db6fd60893b58b93bde5f45229dfb9d6ece8bde61f77255c59a65bc49f5a4ac4820fe038a331386a93cc54fbfa7cf3db870ad930d3dd1e15e5f0d76ad6ce604c814d9dc8572e3864ba439c1e27ed0025c7adab7d6adc9c129e5a77b04aa2407cb2eff9913661c637d865f0bef64b66a224651efa9947ca194363059376507400d2720767e5c5243d435c6993238765edd5034b9b3727ecc94fdf3b79382aa08cf5afe4c9a5cfbe8d6d264f7e9503f22bc9933c2973cf7b779f9c606a653ab1b3b642becc5cdc4c4d8017d5d6c1a8dd56973d4dac9d1811123945be4a9ed4f52fbb295c3f2493e034f370b692391a9c1bf2f21f1ee26bb9202f982836b0f8d58b3a05dd1c97c5ce17d15577af0ffd96e4c9edb66f8769dfab29b8a0b8d5829d9509e0db3a98837e64eb58842302db8b65d8b23f2495fca0deef955c40cc173adafd25c4bd0d9fad78f6ef499e0d7c917255ee57a7f349e23fd41c3728dd7e04edd8315e82d3563cc01c5640736e434bbafaca75cb0b7a2811c07be22d79c6c431d9e984a2c538b7416d212d96ba3aeeba4509ab5d21bef2bd257f15d690fc4cd3ffe5c21a44c279fe96c21a854ce214c757d55e39d6eeec7867c7e85d581d552ae8cb3879f1c273188843b99c8bd81e6eb3ff965b6ac9a8cf39b9c9db58e898772c2940dc423413cf1a7dd10fe1dadbb817be0315255510a42c1ec6b9af28e0d85451f6ae1d14268acf457bc0baa64fda71993e5267d92dc9c305703aae072f220cb8a586f9ee08eef4a9adbc7e52ccaf73082cbc0a01990d712c40fbd6e35a52ca2b4e5f3dd47885af69f3e4447176319be0c67da19be53f5058c3519efaa13f42c24c8c8b81e65d7fe808262396d591f6aab6580c1af451f6951440bbaed1703e4022f1c5f0102f467d65ac6f4767c8c4de88b29293de4bb67736e3ff4c0c22c39a44a4a6a6722326d9c69e732c494ac9b430375f54b89511472a6aedb1d239f03931c83a89fa8dcef0eac906bf0355d53916c92d55e9bcb51473d6628a61accc8517cb016e159127556ea6023423e7fbf351fb6537b8ca039cfcfacd60c5d97ed613c3b60470206419ec8be521a3fc236cbd0007a97a952a797c6eec3959828dd0b518a6e2a1b34c1b0636b1180298744fdbd52d7188b60cfb5d6b1c585461bd4119ffe267acb10fcfe57c744e3c867c5d6b9978ab8df2de8ba7375e6f4d27a8d29f71fc110be8fc963db516031cdc1f357c75e9c13edac1132cc2d72725272ded0b8603de5f584f0bbf35f5ec5227b0efddd193af9859af26b7d80e2cdc960e408a9be2e619775a8d1e7cd125cd1aaff94fb5fdd0cb3fd476ca4f6a3bf8c67b7a4679a4c0b575b263a543f1747cc5f377e23e3acb06505a7c56dbcff23ee1221ce4a9d94de13ad33b2819ff71b5fb5892659c6c3649847e74778c26b09bee22f7fd8cd20cca9c0acc23d481892ec7fa4a9e9683ae74e9f22136f86cca2fe310cf7d52dc69447124fe76a9d38974911bb26f6c2257aea51e78e57ca41a46328a2190f2c3ce9ae9fcaaa7f647ccebe82edb0e622adf0e10cdef5419edb667fe25f6f8afcdcfd9f4fb17e67a675ea76b6c76be3616a04a775178b1550005b1183df4e264fecf2cc6b7f6990841956c2fd201a418e180afeba77c9378dcec2067ae5f19388e82ece5dcbef16271469ec08127da4795429e5a4e4f2428b1da3f5ee472aab53efb918da6bcb7bedd4b24a5a4935c4881edefd3987f4a32a1747a151c5191a0fedd9e223bcfb6f9b96d6ecfbd447480c2dfc41941fabfab68a9c22f8fef8ff9d762809ae06357ec4efb1fa8a17b7af01115c5d9450a64efac9a8c0277aa8519cca4411d40b115510c086ad56f383f2ebc77db94f456e3e1c3119ac5bca177591254325ecb13c0be9065b0e73f22113f69b658afa454f5d509dbf3ec3b97fd8fb9fade305cddb5de92f0f4d32974e47800769b9322b6290ad24e0e087b14da49128d92907142db23d04e6824d4112e2d8d90824939a1a465ec25a49d1c11524e08194707697b341a2de9202d2181948021e012286249540a4e704728d2c141c6d1116a8f90864a3a3a3a394a3aa0a1501909077b09b4bdbdbd94130a2d03758042ed25910838dac1c14946128e9492724438c0ec9d6a31c0e3a2a67df667ae0de1d9fb3a3d31beb5dacdc3b1fe34eae96294236711ad11e239b01bce9b594b6f347b15b052f2614dc97815d931d787abcdfe45c9bb273da6ff0ca424f9c30cf2fb6d09a483c9996db42dda8c1679d6f61d843683ca16d87d1bd6858ffc38798c3b440320b1981dceeeb4895fc84a61f62307a8fb2514f887d4554a1490e22f1f58b07b13f6558096f79501fa75d1eb6fee0932b4cddc6783ab5cbd7f6df57c5c72b111d345ca79e3b8345b8f1fb725942cefb3fde7573a68fefa4ac7839ffa4a4785b6f3e6dbacb0f13d8addeb140d92f3aa5dc8ad4387c1088cbd8cb4a38ca38493933d544ada5edac1012d81b077404a484b3bcaa02525903f23a7fc02862bc6aa0ced146375bdd98fd1d360f66b929b3feef9de8e8f0b6bcce3cfc00d3d99acd9f3c25b21b3d3edada066deac7b59d6cda4a46ebc77de21b3e371ead65ec7857ee02b1d6ca8941661dc59daf298134e759617327386e9ee19c88834e73639de2d7764f7056c786a27452c6e5a0beab00e33430cdfc80785e1a7e6c499abf4bbdb4ef591cae2ef2fddc33e781b2dd9e5be8a23ad984c552d36b67c638a70a6df6f8defdd7cd26221e3378bc19b81fe112bd7f2808690a174e00f27035a3f90801cb8ffb956ef0a9bb67866f5db875572678251a209590b0fc2904ef99a45e7dff37f87f983417b3f69911790d749ec1fa8a343edf4221d63e26bf074b3af580f1fdd677846ad293b53391d30eca9e3c01d10f31109e919b528c8bc563dd94e722b5417627be8c285035576597f958604dff8f8f95b2331363c8300089ba990ca7ef81993a4fa6e667b65d74e8d2353ee199d2b63718285fe175880cfd29e0e22c934ed20f9232eb6db7cbb075d7db34f77c4cd5ddaf0a86d9104f1ce6bfb019ad5398daa728e561a625ab1a72692d63719e683276f19181d85e9f60c658af7e2cb204bc59f643d43bbe84f0a62348504088403d7825241599e9f738c574131a0db0a207641fc7c28062f8beeb2e903f124150f7ceb7029210f07372ff8ebe6ba345d28cfe22b3014c91994fcb4b6a40328ca5a301078ed40728da25e6cf4d98391d997ad312ffaf41eb8a7ef0adbe5f36cc291fc4901400af4c193a221de878e4ac696a6679129841b790af35eb539c1b9e3c0e46b76dc9fe64d92cf56bd4fbfdfcd92c040ef4719dbc1c5c83394d20af81373ab8a612b3bf6072feb7da83f71e9cefbe0086d80f7a81dff655081c815557c83673bc4bd84ddacfdf1c4736321f7fd95bc72667e04f0e232781e274dbbfcd94a4071aae39b96bf58aa3d7a7e0088008e26a34ce52432b0be2f2fdc97634db88fb0d6c7aac6ef7849574b4d4dd86cdd5a22dda940acc0e5360b607e25f24586f75ca3095316b92bc2b110712b2b1acb90f09e487f971fb395b0a783fa8eafda8650564de9e3096f76a7c1cd8f7acfe5ed01e1bfb5263f330eac92588ef2f50872bdbbe51b8b81326ea2fa53514b9819e8b3235a3b9b1e5abfce85de05f6ad361e8b65eea87a891b28f4578ea06ae4c3d90a887757a8170c90ccfa794fff49d874387a0af2cf3faa0fe7531d5e13ceeab6c5d99f5c0ba8e495b0d9dd923e7e3f1e7c1cbd4c41fbee56b4122f9d742d0610b8f3ecd084af28b3e098c4f250b33f66d2f155f88732164a92a7ee613652172201c5d9705181f948ccc40a6de6f592794630094b92553bbd331832ebea914e3d8e2f59ba428ba373e7c43e84fd682a81fbf31e11cfcbabb38f6b4c2b5718696c694e85a410ffb88428b0736f8ac64655dedbc201e1d2e327f9f4d39a103dae65640cfada6e89de45c03bc0f28aaa50754274803d1ecf3dfe6cf76e6e8c757d998e63eadec09b9231ece223f8d2a562cacf1f62813cbcfa3bc9f9d368cbc477169074d99a5fbb55eacf1cf0f2b6fede07d3832c616d24abe2d6a035f55c404688fd8429998a11e999ca79edc10045f7c971bd2cab91ce9a18c4b9f77077437ce5d2350a1c9d920296b098aa902b393be3c5e1e8b02b7690ab64f54460dcfbd23848c4071f461a1dbc8a97a93c31d7df812f2fc677052b295b8a487fe03bf522b0a793b1594af6eea7318f3189d8a4095ed2a297b38a582f571361cd283fb8ef72922f466c5639eb86f72180265274d7113378b2065358fdd1dad68c8429cf80890de7c55ca979da6eee872df825c8d2c2273e5ff70a07ced88f035fbc8a2339929dfa87023138774f32f4bc0cc9b46066d3f05f755e304e2f0600102706c4590be280708338c19ffea817f2ab9fbf902a37101895da977696bd6c2a5257f8731b37887334eb56b42e881a8449a48ba35b70f1796675c7e3fad8786662de0b873ffa7302a0c3dc20eaaeda22dd55478d952bafc23b2ef4f96c3814f64041b260d09e3fde0eda71ef5c2d06e8a2b74a992d809638340df59cf14f28d6ddb0a8d73c5c83102b713db6fad10f0268278dc955beba31c57f3798eb9cf43d92d697233ec604d5e897ef449fd0ad259313487a97491e93e3c0c7d7713b1524be5dba054c1399559f0bf99b4ab7b01d4fca73dfe3dbdd55815db8df690b1fb77853ac86ea8ae5b372d394a425e9da9e9df6e74ab77c8bf4bf6cd7ba1671316756875998567174ca0334e471bc6e7ecbd9091033535f76fbcd1eeeed966ea1f470757215b5f771fd4df6822ddb21bc72d3bf6ea9f8079a6e67fffe8ed22d3fffce7ff7bd2c2a1d6d3e28ad9eb0331612c74ed0b1b7e7de1dc9aaa9b3265a1f21ffbc7add16d0840f7098491cb6df09e5a3b525f17873b4a0bf4079cf192a4d6a6d184aab7a8a0091822c43c4b13c64767f841781dfcbfc705513bf5d1c82efd6532e1fb44b7f3a7eead5e18f3b76eaff9d8117ff57d5e4ef779fd6628091d628fdbc5737a75b64746eb5ee2c3bdf7d3abb44b146b3637a37c9bb5abdb9a380a96aae9e4bd0b808843336b751dc6222932bc460636fd6f3e932d378d58e344dbc1f64c91bcb4386f98745036b44998a690a90447b5a32ebbc5b76185f593a83be707b29ce16b60a11c489636a31808e36000aa110a63e133e2236302fcadd542845796c016197db72976330b12806305ac73252d966581936c9e91d97013d5c2fb845f73c3ecab4b93ef1695f67d80502d80fb20cf6c2f290c9fcf1d6ffb2e5cac1d1c10989767044a2614e68041c86b297844b3922e10ef612924894040225e5202381709081ca40a5a59108a40312e1847442d943e14818dc51064eecf9926869044202e188b6979044a1a490520e5228943402ee84907170707094914223900e281909140a0587a21c1da59c64241d612828c25e128e84cb206a3140cfe0a5caa4b7d2c1a965b69a69e2b6f353f79fcf4e649f6b80ec7ff29e766c4d01d03b426348e31575a249e4f01a6cd27de2cee9d2c719174f3cb3ce8debf108328a22802d21cb60532c0f19eb1f8130e45df3a906d55375f40737eea353335bd49e207bd13bc346e3b88a77d14aae76e24719983b8488cccdfb2b977b25262c2d6780bd2b6982d18e4a00abf6c2c0e897f786dd7d619ff4163dd9d5cf4ebb123dfa99898da9160c84dde36bdec38be4788c3c356ea426e3082c47dab0d48ccb5eb3aed26b2471b3025ca6442e6715b81409f2191f8dd5dc6fcde94a5094a71751435445de3ba9eef984c0980159663cf79761d002b7972c3275e4be760eb9cde4e3f1ec57c6d8a53b4a77f061a471ca0f702c42c5750446fee4f6805f2eccab521edd3f911fa0b23dc4a7d83a348d33faabd59d51e392c6979defda6bd55d9fbdb753bb9ed0fd55c9f71491d7292a7bd91949c7542d37b0c6c068365ae37b9cef304913339bf4d18d6d7268d2edf5076fb3ba0fa9ddcff8d1aec63f44bf093f59c77756b071e67a81e4be240be8360f00607b41474481fbef1cff7f7efe44d3d2fe4de16760606034795b69125c7d1a6ffbf4c047d973645b1e3e90ae1149d07f087e766c7fc3fa11a3bfcba39a10b15f5c1ff0218f9b905def7b55b7e92bff6a90d7165b151499ec6ae5141b371be742f10a879e2d09f04f3df84d5b02fe45fef71fc3ef2b6499b77e8687ffcda0b0cdf5f97509f920e8c0906acdd0361d42bf1b5efcdef38d8c08ffa7206617c0fc36fef48dfdf979fc272382ffa41a8cc587ae7ef99f5711a15906c12ee2409e4a8f9799e64766f33b543fa3c511c32162cff73cd65b5b47d1960b8fb4203d51b8d4d8715686693b6bb4fdf387a871cd6e7bcf876c29e342924040cb1bebbff800e5f7756e881d08340b02285ed77eafd26f3b08e40a02b12a7cf3dbb40f5fedbc46245527e901db5bc7fbafc18bb5f90105387a4ed27747c35aeeec7aca2c5c9af6cd2c61228fabc77c7a1c265e93db70e4047a03c4cf7ad635c30e5b9ef660ffb78c90dfa49faf568763d7f7b7490904cadd72754020d0f1edaccebb9e814fd389f22b412489897b97beb37c55bf22a27700cc2e8af8d623bf3d9ddf3740b0f67ecacf03e4b8f6b02d3a4597ea8a702e07a37089bf50fdd1173f3cc06fc06f941f40bff97cfadbe5876fa9b4ff45f918fc3f7dfdfe55bfb8ee17687a1a326b485a5703db9bb5bb6c4a5959fc3f257ffdc2fafc9461ff37cc6ddbeb9fce67c5f95f9401b7bdfeb518205a9777c3f1e3197c2295037d31d4e416d59567232a17433229128e4e6085635300ead1c64e0c9246b40411ee67cfe12274bcff16e12aed85cbef86e3db4f57854afd19b3f667ea1e58bb3cb58bdb827246c652b66087ca1c4d64b8b8734f410f06af52c541f695c50d5536e3dbaa20bbb1f622a8de6e347bb9eefa3e22be3a10552d181886b1853ca8bfcc69d1f582eaa1b73079e7ccc1a37989f40fab2f1b31d9bd5d4a0298474e3a1d7d4ba39ecb1c9ec46daae44d1581ad135aa1a53494557277e7ac9420502c8196293e00e7e4ecb3b4db0e7ab73e3a797c77cd1586347d7bd3ce1bfb6becd2a03cbb695e53478305ce550341c5eacb519ef282ae333d4d64dcf2831f25414e28be6c9fb7a7d5d6a8275d65a3d15d3665cb14857f24a748d3aee0180d85703ba482bf93700621fd8184b3c22f2fdab466e8ec056205cb19765acb3774aed62fbb2d6e2d9a9e7d412cf1639b892144647ff057753c4985b1092d21e78cb2eb36346b581333d3dc62ffa84625c80f2a34e561827b6feab227d72ede50e930a442061bdf03e17f7acec40df5c4f40de6d21c9fe69afc1297dddce9739c0125ab50f8bbf85f3d2ffe0d0e9b7f15b78f5512055224cfdf437076e5054e549db8c70cf1b76c24c91a5cb7a1523fb44a825b505807823f5cf7a1ae0856cb74d277c72aa2384f509325653f1bd2709fd05ea8d02d90c6572e5de3c4d14bd4e0483c6cbe9d31ab2471435706f52319b3a084ef35fc9931fb69cc6fe660ca93b394cf8dd84b02a9c21fafbed03fe297e5df47b93f7eaf08fcd5d527805fc3b3c6d09cc42792f51a029d31028ff010ccb3cbfc454f1276ddb3e9d366b5fb2aa1a6e0905a877dc405ab6cdcc6ca138ff71fcf26a8bc8e030fe4d0636ef67ffe0a8486f6864ba47a72dd91e1f737ce31a6ca57f514a952c07998b51b4e2cd89106f301d414ca3dafd3746d1faf9a963499f4bac0f5775eca495650b86b91da9ae4127c9400ee862c83bbb03c648c7f7028cad38753d5728f500b42d967e6fc4a0e8c7e08f2be1ba98cc210c0a87828caeccb99130be9fe05ae8bda32be676d1341a45d677b32cdfb337fe711446d1b5100c66aad425c1eda9f3b589c3712bdb2a54486eeb2ada805032e10bee5d1714b92ac9c7451e45acc6ed0de3850faa5a961c1f482b2b7dd350a00a9293532385a40141dc65e37d5a3372fbb97b974cfd377f9ce3cc80ff6719c67fff9950d2cc4f9cf93e727fcd12b757bef463de4f35274de0d653890205d25eb99f6774a8bffe78ffe1bad6d7f1e3960802e98e5dd22c7b46e016c6e8320b77bffbbccdbbb940e73cc260545959d48b6ee04f69fcb397771f7a3c686e694bc1d29af6d55e9fb123c4305e9e16cd563cd29a16f087b6e8396f7e00193e848990614fd436eabbe7c5f6acf4baab5332e2e042b9aa3020abb42841f7ffcf1a3ffeaf21e570269f532e9752c98e973882ce960e9ff03655728d0080b3f9bfce8ddde13aa97fb77218462c2bb68e09b392735d0052f823f3eda422cfeb7b22bc74fba2cd0c4a5dfb8e36a9e73ff82d17bbe7706c4e487ff2bbb42040188b4d318d93b3884729bdb7b78a0037ee1f9ff2cbb62e00b770ad53372f4f175f074852343034cade02e8a264a08b893bf935f907700dad4d9cb5e35c8214849eb3f37ffaf7543cfbab1433531eb209b8abddc45f1ec64ad3b897cd4f0f7975d399ee8d02cd5fbd152ec5492bf943d60d713c354cf10aca23edbcacd0e50e6780666b3ee342abb672efd72cf6bf74383abd0cea5c7cf03d7061e8a4237e2ac5e8f11cbb1fb248bbd88694924783a5dc2aa673a64e004391c61baa17537a8ada177032ddd1229f201ad9bf55c5ed376903d7597bb6e8df7ac411768ea860fd351cb144874628ad35bf178c8521596878c09c7d4c78d13cd8dc0a6f4a68e37e2354e4faedaccefbeeb3ff3ea4e1ddab7c83f16dccc54702708aff21a654facda29eacb8b87574bf5eede36dc53d58120a3a756054314a155b5606096f5a0ef12eaf2dc7df7bdcd1515ef55a74f650cad793df55b0393c839e89d260021c2d0d50a1bcb63fb57281fd8493cb6d0f678755e0e7636efed8c8b8d4d4ecae5bf4a01487dd6b6fecba500a8b66705ffb152006841f94ba82b45bba921318173273b64dd692b5f615af689c69c49445d2d19d325a6dd6cb3ff96c82871f4b6457fc3a5f7562924898f9aac5f29ce648bdc3975bb30d00e38aa7e8abbfcf0c39b076b5a38e559224719a2155273474909f1e5c30bfea8bb6fadf626d824b2772676d9251d27d3f09d7aff125057d9e9235ac544165bb449fb60e881b5cb952b28ab97c677220ebc997ac970db193eede1195d9d4911d83794c3f0a6f7962fcb043b316a1103aa2e5c860a24105c086a06ca1cf2f91abbf2431d205d9713aec4a5ccb65b0e3c0694cd1aa81ef4dbd60fb43c314eb8cd57ea454b48226b7bd213787ae7f81017228300995b86bcc5edfe90f30f9c3b743bb5d74baf84af2dea03d465f98311c314e45846733b860089ae5026d5de2607d92e07c26f13e7816de2bcdddf80f34edd0d472ece1dd7dd77d56aec18d7fdcb830d276e3cb6107e3716b9cf3530258eed0e319cdf66ff2d512a29e4f54c47a7a8132a7b53847a5ad7378c9d8b347c33f5606d85dc3aed93238b905335d62f296f4f7db05fc52faede6974b42c10d94531b1f6fa344b438292322d1bc7de27a1a1d4c816aca54d47583237abb8ff412e098fe57bcba4b32c79a95c890e1ed0c0dab22e5e5b3e965a32d473aba5fb5a53856bf3ca35fc302976dba01decc44f889b312797bb0fdeca558a7cc431eabd81e9ac49b9fcf84ccc34499d9bc00abb0217c0a282e01edc8c74af6e78a4366f7d51673affa5bac1f49d2b027b5696d46ffa1dfb33030c8363d47f8063344ac64152737f73522ac99d6b7761abf087e962e7f6a59c8667eeea3a56349871300ea9c3986bb3df2115e09a0177679daa7ccaac3837191aae8f9076ef2f3ba93db19c629bd552f750ee3081bc0ab24c5e81e52163c1d153907dfe51ac797cafe4b1caff8292c7c462c5883dff3df893c87c080402b5dcab7ff76eb4eb5c9c0fd5472bfb85fb67236c5889652d501a6c3c87ecf9b30ab28e0c2271ecc3eebccc53496fa39a7d3bdd47b4f780c13bbe650bf9969e5828ab5d7360329ad9dd6a9325f74a62647c719dc5d7bcc5c1e2276b1a537b60a2fe19ad586e70a4271c79e0d77d61ffd34b1a135bc17f854fdbf7ddc6d2331c21755764b787beffb592c6c4e7f79f5147e6be2869fc6fd58ca1524831191998141c898049219148e437aa197fba471a29252121098521a01292d27f4b3563073db48fa9b4b23b2ac0431ca6aaecaa6960a8e208435b190419ab2aa94a0704db87b808a37d147594428d545dfdf43455758425fc0cf4f415b55021e67a161efe2a0863afa030c710a883254cd311ed66e9a56a61a2ee15a41c2489862a99a315edb5552cd17af6160108736d5f193fe5107d3d6f61295f64b0599085060a6e61a0e3eaa58cf03433f20b32365413770dd0464904091be99a98e9a2a48da0da9ea141cafe7a30b8b1b2be9187a113d42f304027484ddd4f4f57d2543b58c34b334823d43c00e9eee9656a64aaaf211d1ce6aa666c29a9065777567433f2d435b742797921b42491ee41ea2a9efa0e5696febadeee816ae62116481db7300b43077f35b8a956b0b4899652a09bba9497a49a324c55092a61e4e2e06de0eb231316a8ec2f292c0d85796abb210da4d4747da132e6dec8309f6013b8a986b28eb4041ae9e364148234305042a23d0c5c0cffa59af19fd629e84d1ad3abf0d3a3bb4613de93d6da7b5e5b9e5bbbe379f870817cc6651cd7155d20309e84f36e9ff662d3930eba46d33ea81bcdfb0a8937cfafc7241bd82f193eccf8d39746fb1ffbf6d79d85f11d9d592cf3019cc9a7cd14cd749b83ebc48a2f484ed29dcd389037b68b0018249f906b94157ae37aa49c56f1545baf53fe93a6e5f76b364671aee6264d869e041229c83289389687cce84ff33a734caa6479f7ed09f000636b7442c869d90b6b23645ecc1802a4e16ff88822647b863362ddc1d1b5daa72cb739c66d198f8855cca2912ccefb6ee33abfe0a5374ac4c4da93df3a00d94c9f6a9b4a07be31e32a89bfb8747af443cae3cc6f7dc5edd9834b35be976ac90edd925c864ddca8d655b3cdff96fc403ee6ef71658237c821344f38f012682331dabffaefaa90b395537ecb8f207e637d4c67f1236e1df4b17eb85bf52f1524e10a0845062266e807cfd818b226790f0ba51ee464caecdc0c8cee64a96f181838ba37a22792f2c008102a263b34258cb496985f7c58d6adf72134e784dc9969ca9b9e5950fb370f5726be705f80237ec17d91d05676b92561ef78836e80969274dde597a20d4fffcf7df13fdc7d81011e2666ef7457edb13c6ad137da165669acaa418a5c4a60b51062f5853fad1ce2039c3e62f8a36f74c0caafc9172016b414f031b79a2d22ce505fdea37a74a429c980c084052d3345007e090b8ecfdec8c06eb907bda4157a217d7935ae3949e5ed5eeeab7cc1e9532ef13feebea8586612ffcbae01e0180df7ffffddaeb1f33f60d7f07ac2d2b3e6d8feb88a77a7cbb1d74a2acff6bfb549ae5ba99ea79e5a7a5cf4ca87987788799bfdb7341bf053ee10bcbbcb894263c73b4e8e254367ad4baa69310fec51cf6efa32278db7d191b3f279e486094f9d21f3b11dc9d6f59a2b529fe77d3ba85b7692f226674ebd2c5bead1c59cb7e679f85d9ca8aed6966c33717c926e1d5fe31eddeb2df1ae857dec163749d254e4e3b5190633ae7286adab2d547709bcc8b2f1513f6f2f5f49d377e807ca7a5e74da68e2095f32b1e9c92a5c548c2ade9528814c0db8dba7a0d517b150718317e0365d3053347d432379f1fdde466465b65444d0fbaede3d9ccfc99a639a794c87fe8c4220c59a44a42aa7bd646d9f2765103453bab6d8a090ab9c7954290e62f02030b5f7d1e7b29e87779f1eb7034d5d375fe94b751084d8bd26bbec2bb5ca95cf7746c5fd9ef5993d40848a8bfdfdf0fd1566f79058ff9b964d9aa735068e3c7cbf99e87e6a243f8275117f03b254f1d95b2dfeb9a4279d7201b63a36f55be7e1370a8588c7ddb3e8bd52f9aeecb5f5608fbd31902c3cb6f2035f490d0feca2cf3e76fa088da34d078669bfda48e554b475c47e6a39e9c09a024b173960d79df0ca8a75b5eaca00151d9e67e36021ff59532483ccfbf64d18df7de07c383e04b21488e521c391b18ce1c0b10dd1648beea55823cad40b827eb2fb35bc3e5eefd6b239cb0b4c8ecaea94c749e449a9ad527eae936417325c46cbeea38e6286745ee78b71f8ffd8fb127828dbf5ff99b197b59425caae908c193363c9be64dff72c6366ecfbbe378c28ca1ea5d2a3842c1191b144b2a4245124095993a24294f87feaed7ddfd3ef944953e79cffef77ee73f47eeaf13ccf7ddfcf75dff7757dafef755dc27cc15a368e20cf49e43de564ff67c680ce601babe868113ab428299c12349595996b9499b25deae5d2f9a3f6bcf659ec7fd7f69025801d570860673b0244c3f2076b7b68c23df2f893deaf55d69fd04b2cd8bb5b39d7b5ac110fdc83db5b86355582d14a491e4bcde53b79f3b4367d70e031bfb17ffc36e8dab16380ded0963ed172b0f9c24eeea4db4c2bf14f47da6dc59de9e4a566d2faeb64959489e04ac832f8f377e436fca4a36fb62050a1f8d2977b754d7ac49fd5771636e4d1eba824f2a90a77e18960d5129fe35f05b80a15ab114e5ee6b6b8d629a823fc2aafe430c82487d46ed512a16ace101635f5c03db1ebc58a850efe46df3dffd52667f66e0b39affd079b57de65de4879ba73d5ac43687aab9e6c615bd69cb0ab99b54839e7160c5f49fa13bf763b198aadb156b7b2fcc3c235bd4c0f085b9f857ef09352bc0e5c52e3c81f20e5cc4984bcb37ceb47d36157cf0620516f0cb6ed28961aa7582c94d9773debb85b10b21cd2a1b6fe8e6ab2fe8971fed0328963533f5049da7c75cd56cb309d2ddf66bb89eccdecc4534273767d97d5e8d8776d7e0fc841f6453e892acbb87b6cdcb5504e6773517611ebb5f666cc0b9a7106e391250322b802b20c2e8de6a5c27d56b63409148edde9f7822ed4641dbc70ea5a7bb8ff433deb1d2fe2f4543e7db5d66bafabbed3190be367db139ead97f89caa5041af87249af8d519a4e0bc60c9a969194cbb52252bc1a56eeb02b3125b7f46ed9e6de48c2555c08b5ca55c99a127aa8273d69130e096cc13738769b553f171231e7872215fd6c02e5328d7268bd5a3609fa940478d8f6614e3c4ceaefee669b7b44640384e5fe4190f2084093e911c5214ace375eef905279f74d684aa59a6c2d0c9c744ca50c8326560342f5554f19f9f8d35717d6a05e52fa05628fe6a05c60af6eebc6ea17a671cc4c693d17ceff13b57b58f05e6d333e36332d2f72916c7e4d37bcb82572f1f55e81b08f17f473dbe116a85b677b537fb3edc98bcffd619581c7edbf4b5c9b5ff9fa8151b27d0f1ae9f77fd7f8495ff86f6eb2ada187a69987804697ba9eba9e9a8a0315292c1ba8e180d3749271cee80919a9e73a0ae7188ba39da405715e1fa9f433d219b1af1e43203b5fbd95d376df0be3e9dd68c0712abc3ee54bdb2799717f99a1a02256c45c5ddbf2bfbc134f558b7bf21f6eda2d029a4d723a36d6fdb32b9860f31b3898490ac480306f24db594900feea81db685bdf12feafa3034fe486ec260874ccfe59434c9770e1701494586e1ced1c6fc61ff82712a111b05b62db2ae85e593f8c2a597a33707eaa2fe2c10ff67e2922a703ab6fa98dfc5a1fce36c5b5777e8b89cdf1bc95498ff0d65ed5bd81749650d0ca4a15c8fd29b1d9888cebac362744465568d213d1cc2683218e0b1c27cb7ed353fa0605f7216c1fc46b24ec68f498d8d46d1992b1bfb087aafbecdaef234abc1fd0f44ca0ac832e5a743cefb4b96082adac6efa51157fd17a411bf4fe2fefff434e23c1b3104491db2ff1bd388d7055d7c9d2b34f4becd17d92f520b74a36e16318ae0f7c1fcfdea02149c5ae9a8d26796f39d76130779061ed8d0739f3e7d6348bc61226fd4fae26d82854593039969c47f162936286021dcb5765f4f8983df09d9c1374726ca4b6a9f54fea6cc6caebe71e7c2ca345c3fb59fff0c6da35992d73ec631231008fbcbb1d39fd773becc4f2318f0e1069fef46650c959eb9fc36e58090d0fea8c24cf7deea2ad4356ef67c9f56350061eccd4db5a4b093882fb5d0dfa57090d1761534d5b1c05731fe085678b60ef2a7cbc3e44f1494f94cfab774826f6cb4dfca2cb8de78185a1a0e37e2810891c42518235c20533bbe5d8931708772f55dcc31788d549e14456461c93214401a23c606d2b84b8bc64ed4889b1c247a353059e51e3e5ad4f6e479ffa388d45a22cb3dd032cb1dc078fb65c1c3cba14c8178e3a8ad23e76b37e75ac48138b7c1a854760a42d844f37e1c84ab586609aff659f2fa9c6637fafaa1f47d96cf693d6f6d65e4ada7e2c15d9a28d70cbb02899390189733054031036e46ea9ff94c61eee27220cfbb4c989c773b0d12e4adb45715efcccdab1db3607ae2384bfc084017477b745b5d77a64f6edeebcb4cc4c97be886d35f50f9807003b5a672bc7dfc5789ac0f9f713f324b64397eb51dfe44892c525c1d32b93cbfa64416f8c610c8d1311dced4c8d33241c439c5ec3f3f042eefdc59f55b4a64417e23280dde2d9661bece75c2f8c79175b5ce726ce9b9f5df60b7fdb72aa262e61debf62fd531eaf79a4220d6e8f496c7d514efaf3e54596394c34034bcf473c82891b5175819b1af9e5410a9afc95a3813659c1e57dfdda489d6a0a977bf2e3e4cf9a1693f40cfc13526c317fef065528f99ba50e083a4dbd204fdd6e7fe271f500afa0a2adfff2b0a71e5f39ade7ce8d02f8b42b49fc2bf3f7ff290bf5089e17066e3714947fcaef5d3af51994b90e29c92c949fd4551888c49a08b06f66f9623bd8defb30610ae717330722ad32b7f04556f78ccbf200a9165eab4fb7bd70e040fb5fec86d87032a27354b2efd32f30cdcf5f27fca1c957d537415abb7d5c152a25e8004cb64caa507c2609669af577711e2292a715400f429e50e7335ff84e3b374f1cba9563627fc14f9b9b1ba8da59a47460ab2cdcc89605ec832983b9a976a1381458cfdf30fe49a4a3a47e7741fb319cd5d557dabfb0c0fb79aa9d89fc889db5410f6ca180faa2e24d423973fa9d9345ffe85225a7c19ac711904569213f264a0b07d3fac647857244b38d8c5c0eb93ee0346e6c045dedee82d289a514a7bad7ae59d2e75688cfa9ca33305184201a20483219b40603004fccf6af5acdc766da65789657e86f24766a6776fb2e838a5b6116daa110ff4ebe617099e2fbc4c51e5abbb9010794c2eb2093c04832edbddf20c63b8f2910bb0b43dddba7db1dba6443b83d9542cd40f3160baf6fcf8aed32e5183e621f88082eabb90a5dbd1bc54d13cc1042695bc184b67680781c2732a1d93b9df7e7949e44566c76d0c68a081c55fea6633beda3a33cf8c5505b38f59d6ef9b6a8ebf500a262927cd3c488edded82a6c048fad522f7c72036f5454a8e231c075f819cc06ec9c5a9bc78109b3a5d07536dcef61b20cc368670109752ee95463c60cd93ec31dc24bd5b08b4bc23b89111327df54a69e91407ffd0dca132ae37b7ea018fd4678b6172835b3867a84ccd1b2652c44e96c65a2fbe38b77aaf4dfc7cfbee7dd5c54b859bff284ef6fb3388cb36df70b52c364a5b083fd97cc5fd6807534ebfbb456ea72a8ffd430eb4e8110c807947b1d2c76b16fa80a5be3848e8fae87bba9312ef798f5ffde0be7fb8e451fcf1bf3382eef962ce7b3dfff76604c53ae2e070690969b4a43416ea20897194c620a5e0180934168193404920706894832342520281944420a03069a804dc010d9596864a2025902852999815b192d25238a4a3144a028a44c325a018280a85914462a450525024ca018a844ac1e0389c241a8bc14a48a3b158a404460a2de580c4a26038280ad1080670a7b69bd9ed7e9a65ec319c5cb169d87fe45eb347b9653d15044a9ffa5280f62a00391bd7e05fc39416f1ce19337f69870497f55ba85e56a50155191d30774928eeef49ff23f0d6e8df9d861587c139a0a1300c1625258dc239402511389ca4b424c6012de5884449a3a4d1186949b4241609c3383a621150041229818162e18e5809699c030e4beaf93007b434168945e13ecdb024dcd1110ac7482051d23809840406e62881834a3820e150041607c738a01dd112083452d241520a0647a3a4d028682318d80e7c28346d682d4b3c3ef978dce0e6e411d7ec84c1172ba73a631f612f89d106008a2a8ee5e3861976bef9172a4c254f75b4ac31df787d766495569a353babed822f910a0659a6daf757ee5b4d0205b1e97b2050f3bf00047a48e27eca4d206a72502032739891d2f048814014c04640225234eb9f0089f27e334874995c9008d1307ef7ca51ab1de6dc510937fb5fb9443e3c148379a6627319d62bbb65e064923ffbea89f77ed506beece78b7d2620aff3ce2fbcb2ce3a37d03ee396da7d9840fbefaa35f7b9e9687f7fd7a18697e8d1895bff669048f49b32039eff556890fd463c81d43ede41610590f097c2c370e6bd2634bad47b7d483c9fe9b781505fe6bf110fe8f03ef5103decfbae2182918bae0a79b4f8706760e0d41e5d5e6be9640bee79410063962e90784c61fa6d1fc30b3e66a7677e432a9e578cb49f365d3e79e9f6f3adbe44311868596c1f702def0d6dff919ee38dafb8cb73970fad7a77ab2789c778c7d2e663dfbcae8b6cfb7144a7725974f80f1d69670c9e00de479fce15aa4eb975502f433fe3d1508ba72f7fe791bb87bf016a7d2b44e5bbb25170e4a6585c6bc3271de9834aae5ccbb5e9dde6cd348b8f58f6a9abf251ab1a4333def79a5fb97cba4d340a08d899b3f4de2c5bb7a5d012f63039fa817a49180b77a3747076c5c8791f08ef93ea05c8d29b4f0a6afd25c2167dfc67eb11228448a7b82766e838e5b1b9b8183db4566ae7f59aa62e0b5f1dd3d54ef160239f961ac966c676ae2e4004edc8f2f1a2c7be5b03fb55c95c1ae0463050e322472c3d04657ec100bf0f534ae538b64a5fc457d2b17ac0c3a1f681ae121e081fa63af3e459dc09debb6afcfd734cf96f765dce353c28145f2e322ce2ce59324da4bcba4c798593c06ca244d8147de87f41e0be57d1a3c197fb865fd2196730844222bb6e54872d57d90e4439d3d20489f527086dc4bb7cafa43d30518f6770ea00cfa6b8f04dc7173bf650fcffe45dfe0f6ca4bc569bf4b52d7e3e6cff1fbdcb264aca56de0138176f73bd206949239cb68e053c148d91f64369a3b16a7014cc1c6164e06be8a6a122e9fd6ff21ea739716af7266bc64580ec35b7155f1348bb9118bbfeedbf3f70dfd7e74aab1a774d1d87598b5bd19c6cbbc3053dd01d19d463f617543eb617cde73c940b99179f8bb7647e6c7beaa5e7ec7428ce5fb0f981ca6cbea6141d2cd8cc848b24cc270e706572da4cbf74b53c5f708713173ae1d7dfbc137ec7f77ab56dc4db1b219b582901f7379e579568460c67b7b8b84cc90938768e222647385455328e58f95197f1241021a1cb90203c81d94883b02ddf3b5d867f59859d9576ba5980c5f5ddb510faf43b99178fb09ceac39b856e2d214268412070ea95e5f8af0cc76b22a534dbee80acb3f1cf1bdc613446979525dd3772fd1f1bcb495e07eafd249917a47e8181ccebdf6d2c7e8d27cad879a6be2f36553b0de4d248a536f02453f84954d6feddd972ff103ed78b67f77f1c3ef7d126b82073cd78971cb2c6df3ac3d93ec1a87c424b508cb817d0c93e75775c45ebfe624112d5430e8d668d977ef307c6a29f5ef67d9ed22af761e54fee2c45b44964ba506dd3074fb7c4113b031ecff2731eef794e6fb38983c8763de29091fd9cc18bdbc7b4c2eed121a1e1d5bcb15dba5b3f1e7b3d9b7da66ffbe0b1a7f9ae673711a100d51985f7f9564c2fb9d12afcdbf9873b671a28bbef865c98b7a9567149e2dcc44e047b2e83dd98084cc74a09109592f46f95cdfb9152f820f0a175ac512e79bf4a3de58d68f31ecbb2226fc5b3aa90db2322fbfd66fcf81ebfcf5adf9a8ab9b2116b8494b5f82d6dfdd3847fd07e78ecb17267d4ce246b62f8cde2fb9cde85e1c3e03e8297dc3bfd372bfa5700bd59ebde9d38f4d8527ba7c0e6e9f042715078bac7f8c7dbc90531611a05bdded5454b972004a6c0b5e889c33fea8c958c783df194eaa88d48d9e1ad8583695b570d6c6249d73214071c65df3050c5f4716ef998bcff75cf25ea4279ee944c31aa5bd3e9b779e222271f012af191374c1f1baf761912b34f165b9edc33ea1ea6de55720e36ff2090466bc4f90f054e80c0a4728140f12cff7f8102578c7f13f7fc72495694817a1ee274cdbb41458f6aaf33a01eacd3f4edf1545fe68d2870abd3f9dd76ea2177253877290476534c9a1b0899fe5781fbad0a1c8db28bbf360ef7d32ad5df0a9ca5969f8924dc53d2c2423bc4d0d7126eaeaa14e21f1aac136a8ef5b6f4d0d2452b8718204d7dcc9ca5bd9dfe4d0adc719f5956c1a305861584deae2dd9e8652bf11adf7fb702e750e5052c34888f9aeef7593c3f8497a1db56a43911e173feadf2c075cde3fb4cf6efe1a576491164a82f7eb76de2fe423974a093ee569ff8e6fc56fa076222b1363fa2c0b9ce8c8a65722971b58b290d23badd03e0f5ec2ab547733ea85af1da2c2d879502728a12fb556ef66ed53ba0226597143ea2c736d198e271da20e7d1d4f4443e5758b5e7927bf4d6bb0426959c6823daf46f952b8f7d0975351b0bfe7c880a0c1fdd03ed3afd28954fc8ad606e68f73bcf8f0573702116191bb1170287df9f016852d3f2cc23b38295349c979476238f193567cc577a9c4c1c799eb720d9b56debdfe5fbe8bf00c3e0d9961f8e377c847ad43c5955641055b738586c7cd311654231f72bc5e8bff1861b472e49b5463ca0cc506ee6fd80a39a26e6debcc28e99d40e83c47b32552c37ecf27495f7dda5a500747aa60aabe28fc59d96a0109e2f43e69f7d065427453dd8a3df3ca99dba3ff6e29fec2cba3f65467c28fd5bac357cf53fe572d7f23cc1ee5c17c3367df55ee396c3874cde657d68f94e4fa7bdf96454e9767f26ee1649631db5da0cf79c8c4ab166b075b7f4a74be5fbe8e26a1dec43a34e4064e70311ba0165e7a81dd177a666b38db0919b5823e79902d8ac026f48cbc6dbdbe0388990f79065c862342f15f80ba50c328cffa607244e5e6cb74a4a23880889f91738422a48c9d366f23e37e477bbcf7efafd5fa6994c7107ffd4f329aebb5b5512b4fdac20cfc81c3fa926fa4df05c981917b8774b05b1b3fd946179084b52edc7330f373dffde7a3dc382793db5f024266ab8c33967f0112b30d09de2331a1e577e9b8793d8573e02ec3b32fb8acefc45be40cce39dda2f64b63fdc96585f81a9cdb87e3273d4eebe423e116c0559069b45f35241beac58ea877edfacc278046c8ddfa35e2bfb136518d3635b7a66a79ab77944513a2b87a4a97008d9e4fdece4822d94e96cebbe2f5b60b3a30e33e6c1a4269f95549f1af1c0c17881d52e6d979aa9a160779f4bda7972d7eb0e621e9a970ab725ccacd6acc903163ad4feae0b498d35d5d4d099a933a1ccae9bf6e60beca94dcb0c0acc4a4f3e45a43c0859a6b488e6a58a8afd32bb541dfbbfb9b51ca17c89c83ea482071129c6fe0398f6949b41d49464c836994e56526731a9e44190dfb637fdf999486c3d3cbff3f9b255774d7ef3dea4fccdbd093cff6d8401fbcbcb587c25dfa49efefccd938fb550d6d3908b3c4b35f547f942e971ce643a1937f4fe8d1e4e9fbe5f2318505ae43a82fea85bb0bc1c7070db88270787650eff1a30c6ad2d6a80c4422973017904bf7dbf1c47e31ecfb8e3a7a91233336f5df6989bc0e71e3b856758c3731b11195720cb8c4b9f7382087dd95f68533cbf09edc6b1dc0c410ee34144c618642bab1599161398bce5c53066d2c77074237d903ef3faf6e9e31d88ecd15a11dc7656dd3179038f9f5797773ddc9222416a8889e42d31fab1e053cb2f37d24752e8ddd7f0f4855c417d83affea9e52a6eebb4cf1eed7cc5916d4b092ee142dd0713d6ef232da93a522474b0cd534aa6b8b27fe518ffa9f51e8392b915925bb39754cd3f12734847ea2ca122f32853fce975f223f30f02d192898e2a92b917814821dce46de5a43c2c1464827febd474feb1f927f3fd1b46cf20ca683f9c71109a345cf94bfa4f5255044839157ea52af81baabb807f33fa4ae6fa2459537c43eb93d4fc6ce87cf8a1f549c943de758a61524e29f23e0fe5afce7ec5a18c76477b6270be665feaea90d5ffde6312649e8f5fed6f355bf8f8f8f88e27e4aa9d880f00bc75cddcdedc22cfd425e9e126397ff4b84cf8eb57cbadb291f5efe2b7eb0cfa9bc6fe638e1bf55f095bff4423d79483fcdef5f7dbf72f32614a92dde321f37c68dcc8014ceef9f1336e8fd813315fb148bee10efea7f4958b57b7c7b015b15f2ea81a760ff412ccffd51fb5110c50983622d023fb4f2e5cf0f718d3a99bbcc9b650d4e1ae06624e7d1a6563e6b00804155dd0844a675a6f62dd62747e59eca8ba12728f955d4355bc5dcbcad2ea74c39f0937e8bf44e8dcbe93fe2df1fd06f540edf5252b5d0514c248e120c1492ee490aeae90ec0f6447cb8fed3821d5221a56e4b05f7453c9d1511f2f8673d953d2b26acc5cf7170544eb003a794666e3bd12ef839def0a0b9c03ab0ae43e198fe8b5df82d453aef9a0c35e49a417062dd3f303e9829b8dda5fdea0b54da256f0697e70c77168e2b40f73a3a39be4de893b34beb63fce1abeb6bcf94175286429289a978a4019782fc6d2791fe8b078f2cb2e50b4116dfaae5dfbfab79d4dd93dbc747eff8b37aa6aa38be99471028f0e1589417df18d60a0d758a0f642cf7204a14a27da39c2d2686c377fc483cafe84a09683ee45fd794580e6eeabf26e0f86eb0e0a5fb37dd48bdf1456f0c1c186f90e00bbfdce4e036acb55edb3e445b56e0c7ae28ef6064ad09f31e87b81fd7b1ae1098f18752ae3a042b48e05afcdb94a8f2bbbf0430ad90c33cfa51cdd03489b8ab06af28d30a5e92fda75dd9c3293ccc4d1d70b3599446e2fceeedd769bf1af3a2e70c21643a17f771d1732ad871fabe3729a7a5cec19d144e94322e899dfd534a648c19a8421f577ab8766cc7b094c73a42a6fb29279ff7a2d7ac52a214fa98c1a1bcad5ee58e6b95faee0489fc940056fa44c5cb5f15be111444447968bf7365710e5745155ff4918d31d535f46d9674c97da10998119afcd01aef495898642c1cb37c089d75cace4654c25e7046eaef9d75ce56b5b084f556e6f560379db0bbebac59df936f8233b2ac132643ea7e5f9ace026f8daccc7950365f13f90fb51838d574edfdce0ae71aa5e3f477878e58547b4e32d3b1e2f4c56557039da676d025c3a24681017550fbe55ffa0790656219c6512597ceb0d52bab3726c216aa0e2e45ff94e73fe90b9ffdbf94eb792a991fd88cc7b294fc19f76c0bc26232aeec2926b0426d6a880b86507a5e6f0f2474fb2066a4869a5ac64debfae488d799c57903a613bd9afe1b38931365bbb3ebbbfb562e7ae0b0551be3bcbe9e29b052fae7269b525d7f18f8dbce27f2115418bdd1ee576015d7674f479c44aa6fa1cd7a5f18add32c65a47f647f69b5eeca179efb86f0fb51646cbbb9b7f5ebec74b9b51b848b98c7f6b9a22d78b95bc5dadb27b472f2deed8357d8afd223d7b7365d5193c499917070477f0345f8eba69b21b0acbe19ac2d2c8e2b3b818cd28b22fabf4426f9404c803feec16e3ec7a74843313bc84ec96fcca2379538d86212cab02b72947e923a6638810f16588e8d6cf34398800ed0f333fc613a4c7595b001ce7d0e5098e1e1cddd326d7c25fa942ff97f9f1eb55f04f9ba45d3031ad096eaefec2226d38c28d37db494e48f4c5d1f6bcf43c5a57b3c14c1d20a0e8e604b2f3f23ec6ed00079b77f9633fa2bafebc7df6cb2d4f5004bd316db6ea92a5a2a863042665450298f95a7a535da81f5af6f4c3b77eabcc95072df3cee9a2c3bea18b7d2be4ff4768a0a1d8a3c9b74e3a59b5f325cde094ba37df98b24eec3910b73dab12867171828d00bec0a8d1360b3902f1e45acd51f1675ef76d6e9e3b42bfc713288677289dbc4af977b4b1d47f468837062785c44aa37130490749b8a3244e525a1a2e819682494be330588c83231a8e8021900e70ac240206c73a384a48421d61482929045cca012b8d7120f57c49241223898141a5241ce1125034cc0185c23a4a20a4d0280918540ae7e80847493a48611148281a8342c110182c028e844ac225113898949434aa110f7469e5d24fa977df0d988d10700e1f9fa814f0dda14c0311b6546c679ab7b5dc09500df93ea1a9ac99979d7d5039a670c1bad73a31d9891d238612eebe4a43139e56ed0f59f2f9ecb0fa836ba3f9494b75bda8488cbfdcd66332456471494e7ade8c539a89a3381e99db8aff9c1b98afd435bf4e303bb0dce03cc4ae045788eaeeb8735023e455d1ebfe5d45499d5b01b97bbe4f7695f1d48ae71eb6ccbf78191271252afc56cb604b294d66527a05a7ee9f9602c5970f7d7547fae517043b99f3dc1cd3b6b0a0bd85d9d8d75527f77d433a0b2f5c795d1fd691f99183ed46fc53c78336d039c7f54eb6ae0f90b64630b01c9149b57f9b69fac255dbeb2c2ef702ce2e1403c73c326682fc8cdeec9a4ed20078f0e7f55f38ee95123c5c8b7e207b8dee69432c832d8dde811670e2e37d36b6dc44017bd0b2c04140921a73cdf1b968f9f4bcfb8302233d69956a62f5f3d7449b492bcccded26211f3e590ad780fa5b5b4f04edbe1c6d75e1f5ae4d8631fc77cc64bba4a41e1534b2954abfec87517db21488cb020cd55590a58a4fb3cf7ae5b3a11063e90c6d8c5e64f81e65fb7f32b4369c3a74670cbe110fa4ba06b8ded7310eb14ef77a96bc82b92272237c2dbcdef5a5a1f5d5de1edc6e046018fcee3505d3d517c33215484fa9a8cab8d9d202e439ed2b7d75bd2fc31e47151029bb9629ef46833f5b1a0496b5f9f4f82bc18d3e316b0ff4370dcd4f8b4ddcbba9201b8b275262eb11115ff9edf4dcfb38f229733e3c3e1b34734fa9a53d69f8692999eb984ced8c22f790b069399907ceefcaf274324dff2a6dd93a89eed8b72ee8d5eb7ef7bc035747dc314c93f96e097cb0e02549848330d5f718e5925b3d6e485aa9be29fac9fe6fea4bacb36a25f105822d0385484cdff046e63795baffd1bbd7e55b72d951c2dd0ca3226fcfcb5992f37970f76c8a7f72fc593bdb4d5aa20fc249755f51a15650544269302175e67ccfc99ef7cdda47f3c2724ea1f5c6564b6a16e90abfc264e32dcb8ca28a5dd278fba5fdcfef9e9cd92496f655163013ccf95bb6162f149e8e1e7e1f957377bb47140b29f9e579b2e3a8cbd55cd1cd8e1f760f44a5b44e77b9358ddebb9527e52dd28c59d90f23c50d509234687dce738f62e546d8d8c5778a5b53b2ab075d9f99b1706f4e80cc2f68b78d6b96e78bf0f3aaafd95ef47eeeb40a33336b39d57ae682dacd5ddcc9045ed82d891d64294be240af8183f54ea9d1eba7faf74b276f29e9e17acab9366ab99b1e7b41c355d1de15031c6cbee78e7ed332c8cd645a7b2dd4e1a2d4d8a3839d20730b706c2c6ab3c2e95b7f464481a34d22d3a3a5022fd12447b50fd40a2dd5ed79457411a97c104749914cf1742df633993baba676213bcbf80ae4d2ccda7e43edf1a8c53d893cd25aefc282c474a66867d300c409aa8b6fd3ae4c968a253de79aed9acaf0b20d15cc94d4ea9890d95679eac92e226526649932edd3de0f3b436052562330a90613687278d2b7bf13dbb6dd2efcacff8d7d43ec89d267759102637822a5c09527b85c1078acd38378d54b545f6507cadfc98f7273e5de248d48cf2b9c9d0bb22fcfee5b779a42a014720daa396e7d145dfbf72cc05464d9e22d5d872e168f5ffbc857bfef4aeaa5232ce4a9e5a4e246281441e0cffffb59ab835ccfd7ef4e2b0d22f324b3ff5d9e0d588fcabb60ccedaf7008fddabde6017f4753eeef0edd1d4fe2f9d4f68e29fd69dbb6169810bd0e5fa759997f963d0e6ff6497af5dcaa022564eff9504755db69c19726967b009e1e72437e07ddacd1d8feeb8fb31d3b70b9b78fa66dca0b364197a8272df5d8ec6a3d72433b5283aaf185c9dee28aac12eb097ab64b9b9296bc4d4d101f785585f812a8dfbdfcc032b3a3ea64dbfd9b6a576b8023db786dbbe48e9db08d175a92d4d6bab183cfab2dcd4fb446e876ead1c3de3836cd629adde0aceebed32991ceac6b5b5fe2f8fcefd03aefe539a90af0db51b53f950db44a26353ede99ec8cb81e849b6ebe54a074a6e2b1fbaa02e215f454a5c7a3d8283de59aa3c5146c6a95189b1a633d961f7bd8b7171a1dcb26f6340b26cd1102f8a4e35bfa41b343e15432c91f2e4fb65e3b54b8db3dac59d4238067751891a732557cce46f8c0ea0d4698dd1adfee534e25fc47c52e6e25703ba0338bcb34825a2d0b30b43c0135f20e5359de07f33417074cad17e76ba4339a2c469e2f88967cbc297ad5d2c0da2658b459dca6b786ae3dfc6da470c2e89b69efe9483f8f26b7835dcbd1b5b68d6020587f9a42232fb591722221c3622deb7e14c5acf9d9b30552e845911004af262f109452603e7322bec06500ab778df5ad30ccf8a25074d9f342e8956be73df5e40488e000c832f8934d40fdd9746452010890232ee9dff2e4ff48cc267d43d277357430952638b7a97443e4590e0577a75bb2e397ac3856eb296a77d983bcbd25d63fbdb1c45fe991fb96c7a8110cd4dcbf6d8e38c3aa3ad63af0280a7c3ce3f69b9d58839481c77b85d62e3c615c9d04e4580a990f2adfb3f29f349daa6d73de33df1d54f934f282ecee8b21d0dd6dfb0e10c17d906570cfa7138179e4cbcc4f1020d646e9ed7ab8bcde1b6a55007cefa5caa927d2bb0d2cccf14430b6c86590f65f896cee6f8df713a57c81143e2a0cd2ba52941322ccc54ee68e4745a65e4d8a2b462aa10e2389eb4c8d78a09d51aa715af28c096c7b2e71e8e419f445f7e20cb1a333176c1dccbbf07cab8240c88edbd9f15b69ee8b76eb6cb396da7e2af9e2393d08cd8efa24e48b7226fe17ded597978aa3c13bfe00629868be177e43461e99f339367486a787ffc08dce0ea8297a172e86b2aa5e0d39dc78fd61f6753e97b3320f0677f6ee65791144e901d8f11dfa4023de2ea75ad7951d52c33dd81bd2345451379f76f688dfabb8de57827f55eec9902180630102c59666029d7063ba94bf85dfb964f51da782d30c628ff5dd8331f4bdc2e79aadbeb4fdc7beac1d6c71ea43b09fa198b6a62a507b9c937c2e21a8110c785844a0ed1da22509f7f2417cb7c489b5036751cf9c4bad6b053a229425fcfc81ed136c1435ae86597a769989f05d8eb5726287eff6b0df663b7d53e70c83ae5f3d71930c647913229a97caf20bb59641253a5d229183c1bbed7eeb4bb313267593fb6fce974865c531273307bcb60711e99ac377f2389349672021c2b4c31b1141cd527beb1647cde6bca0edf7c2c3e292af8445d9ffff74fd2796582379a61d29ba1c29ba0e9522299d86c40bc6ced6c67c95c4762d81298e69c1d9fb8955bd7bc5c4d49984f3c3a4a03e1a32b7617229275fcdd170d98b843423f56379b81cfd3db5ce81fc34ec61643cfb57cc0fedffa5f9a17c66e82ac613199343c83475b2f998b828b16f138967d0fd777ed68799fe3b3febb6cdff9d9f751bfdffe2f9f9fef90c692a71feb88e4dfc1f72bd110c78fabaca6527db684edc48a92c2f1598bbcea4e6dbcc9ee65a2b368311e864e707dce4d8ab478b35b4b44f8dec574e618d1f3be5bd755bbcacfe0b0de691e329fef57ffb1669fe337c8b386994231225019786e3d048b483b434561a0a4340a5a4915270341aee8091c6c16112300c1a85c4c1715228ac030e0a43c3108e6807340c877124f57c848494231a8984c31c1ca4e112d292289423544a1aeb009380e1705847949403148992823a48601c11189c83b4a414c2c1018afcd4031c02268d6cc403410fdd3e78081de340ddc394d5c4cbbc9b1939722196c57c3cf9a27998b257e6181002d51f1b9d3cbba85b6a3e1cf078e52577c3d38c77c1428ffb436426e125e74afef4f2fde959ecbc942e2793233cf16aff3e7195bde09841c49b6e1a37a36ff8b57a4aae9982e063ba48f3d6c0271cb5ee1f541632bf23ddafabb48bf65b347f663026658558a97b0a4e52a29e3c915af3b449dbebe43e90bcdaef5d5ad48c879bb8020ad91f13d9673cd986646f51f303bca140e5c0550147e1a1b741c3161dd7265eff9d62e3cf2a931b29e9adc57400fc7220dac6671fac776a0b9b7411d6cdee57227aff255afc32bfdadfd60918385e22b6f856bf819e81200ba9bbd4785eef52f24d976d227c7007e9db09ee5745006f6551dee36fd265ed698317e40de71ee6de0bdc77a5b66a9e139aa1d1667dee1511fc18b20cee8de6a552fc536ae2b5d3ebcbd89f71de1f0f70365e05c5a5e5faf7ec39b5230eccdc0ff56c0411c1d870b1f58baefec026f3d5c7e31a3191b46fa1a432e83c745853d4c3a1379e9ddc5477e412f9495d57325da2f474de525f7707d1f8d2f060b08868f06d7bca39f3a062b305164329ce1ef421a7a7e2eaec816058cad1f1e3b7b2ce0c5c84e8e94147bbf62c31e885305fe722fd7145ba768a1f90a9df5e7774d69c7e5626d80cb5e87f50cd595e4161c8db2feb683960f6386987ac9db6f58bd4348136ae67495a73255a685f61e4383fdd91f1bc7c833ff3a7ecfb331589d5ccef2c96d00806c68c8c4708e77cfa96a7ce9c1dab39fc3ed976ed9a46d8fbd9ed19774edb331aae02f67301569a1e8d91bb6f5755f3bf65da35e8f5f25df4e8c36d01c013cd96d9d30b44c807c832e45d342f55d4f968dabe68fa0f0449ab9cf4f38c776ef17e30a1d6caaf6c2d8e62934d800ff9c405dfbeffcc0604224262e44665d77e9bffe4cb6bc8830a400cee2e8e2e4a58b4b7ffdfc1341bd94cbfdacdeca5d3ec6ec89b1c666bbad9f922ea9251eb9978d98d5cff1dbbd1775b509d7c73fc14e8a7a12a30631a77f7d760ad93cdc11797e366aa8bdbe6cc9f1b9abdbb9e91492a0985eaf61de3ca2c33c97582771a1ae2534746f54e714df5de0a3a36790921651fac32f0d51cb0b89c6766b862f137107f81d9eca16a0d89055b73dde051adaf609fcc7c45ddde3d7aefbb8aaeea563b3e06d931acb5d5a1e92800972bda5106f69dd6b8792e79e4a3e2bd1c31f50c8ccbbdadc60ea16f640be4c0d5d7204b57a379a978be883e458646ba89c93dd398b473878ee89d18b8a030d3fb6073d2b3588eacee1e5847b5eadb346e12a249f55d989961b8aa221ffb39398975e9156fc47135419d129d59e6772236efa763b72f3946d0d489fa3af2812f6402821e6fc752adb776d94cbc0e1bd9497df2ba0c6380fe03f136d4f4f3b7979e373110994f80969953807a0d795e5ed34dfcb706f785adc5705cdd7a7f98bf2df6ee23299f1bb8ced417af7f9c6254bbccac5c7d63a921fad66c8c04c45f8640e99a9aae56686c39698a7262de7db0fae15a5fbb05c2770e5f6df6c531db7e9be682de2b4cc41fc3d3be35d493c8b5e7334abfdaa35843199c6acac9b85f286c3a8e3289b623bdc35eaae414df777cf7b4601047b4b238a03e0c9eab970878a8c15a57b2e3c64d498fc7762cc17bcdf72f1b4a34ccb815280352b8d0f71ed94bd1c59c2bbcec63bee2c7e734f378d86cef16a42d580f8bd1effcb3f23e6b0cf75d1ce8f31fd1eda13f1a5bf22d3ee3bab6f2c0c3bb8d6040e866b54a85a45c9f3c48983829c8b06b48f0be7b0eb765e19855764e85ffa3a3c0be86f9d39683f633f02377bb9e5df63cd81bab1766dcc8b95d79bb5395fe892ae7ea12c852e1676e1755cca795194323010211c08da074d0598fee4f6ffa003a0caa5304710957bf0dc157cbe0eed94c80789319adbfe5612aa20e07b72df8e9e638b79eba7c963fd750ecdcc0a71df03de593f0da4630b0ab52f552a2514b69a0bc85c25b05e734beecd618569dcc2d0aea131254caee430076deffa2381384a2853581bd95aaaea3ddcbb9e8da2242e3f1e5b09314d9ed057f551dfb48d86228f84bab8eb52f417bf6185a5274060fcbb95d9b2d3f8b35cd587fbd994b908a90203382e217551d63380abaa83a60f31cf14650bffc64a2d259f0f382fdb545dda0ea0d8ff93fbeead8fdafa2283e2dec47823b56ec6f9ef0d65371d188586b3ada2e18afb020d5efb4e8aeae7ad726b21050667937775893b3c6e1ca6a7bcda20fb5e23b8f43a218d94b6a6bfd5175edf3afff8ae238ff59e6fe8f4771b091e8feaf88e2f08ce477aea9e0f7a6843a0e9d1245f96e5b1978d68d37e5b8963f0e1dbd1b75841410cf4ae6fdebb5e8085d5738d47ecdae9c29c0ad778bdee18a72dda1bc58b87c948dd261d956c5db5cee65589d06a11b8a4e7697ed8fcdc615690da73dd208083caacc071f387efc2e57401328ead69389cdcce212951d02a338dbc924caa29826cfb72b07cd55a6609914785a93509e03a14ded0f42a2b67417649e325362392fccef0b0fdff7bca6fe1a097b225a792fc0fe90ce6cd1ccde51422e836f263555ad8f8e5bc14a86ff81a7e503a9b2d5570a80f5ce03009df9b0ae88215187beb04277a844ad2cfbb8f3d0dbbe6ce158f93d66d5694b29d174a60496e3c9042a7389f4c4a8216d87140575cd471dd9e61ddc545ba25775630d1f37d100a05cc0672f29ef25f8d3424c7960687a7241216304ac1c9836f8ba0501f13a97205f74a75221f50e250d8f24a0c4fd11f19cf926451d6b8c4e9fc8e4023de09525e7d937c066737612c973a28308be0659067f662287f77ee11e8c1320f91ce9c487c4b3364c806edf0b51fabe00185bd334670c9e0856ed6eb99df5af5c8faaf0a6657ae6f9771fc61f945c9cdd5b7b8003468a32f8fa376beb94645a339f94462ff1377bb9f327951aea3bb56b2e4dbfee7bfa3cafb88ae3a4887eb7496f49191640a3eef0d54a77bf7c1354946dd6b23ba7ca234a480fdd858109164623725fc955bf812ccd7eb2f44abf400f94ddece949aa1f03940f17ba8a269ccef43b1de2ef4919908faf8e319779fa55355583165f4bcdbcb93671772dec2e01caac9488b23b64e656f80aef29c8b43878117e97bbcc3dd0ac4be3fc83165779ae463c3004c31a71debbf7247df6f5d5a9774f6bd9cfba2216d4c2adb85c2f5b132eb82b0322eff764f4f754c8d36ab76dde9bc5c171c8e1d4c741879bd8fc498d8ef2f4bb38222511b24c5919cd4ba5f5c528a75028fb5f9035fcf49ad9b08d48bf06bdab15f22c8b2ae2644efba3894baca7e6349567a50298ccd631ccfe296bf8037155212617bd37fde859fbe6b7852ef8033bae93821ec883f2fecf670da7d5c5f9a375d17e6e3ff9fcbfb386ebe1943454742d5d94614865b88ab75168a88eae9f8b1ad63b3850171bec6005874291e803920eca86e646ffbaf17f25df0fab54c5855c4569f73e91f015bee02f5741f87082848fedb7670ddf1670fd16cdfbfb195e0ebca727cdc78b0d0737395458ecc7b30df50f31d49aefa62e7e9d307d68577e59aac1990c3ceb16886883df3e6fe767ab813d37466fde79b583f47ecd546398fb34559ef6654051a3caf02bcf2b7226ad6eb1de65c774a71e10f7bfc3038732823fd01b85c5bcb717b12d7c79acfcced0d6433d12035d162f72196daefb99fc09277ef18910206c26bf194e0c777d98399df8387b93a11e6bcdb9c9f3fced1c61baca5a5706370fc4e69f094e01bc9e496d29d8e4cf656c5b0a16b693ba3cccbbe42ebab5d59e5915bde7f941ef6aa2a0146859100a2c0bd1cfa68b58635963562e1c3f8d4cd6953cbd8c7f18416138d3e27365b022edc77189fa6581677f863ec10f8345a8de80fef8337aa0ec47ab5594d32bedbaa55f2b3c194bdba40b32ebf79f4e5f97bece553ff5bc110c6c2ea1e35631ce9d923d92c87dab5613b4508529dcccf68a373d77ebd6ec5ee96b8000d77e75b30016ae83ccd1adb066fe26aff79015cb1cf804ae5bfc800596e9229126719926c1e973e0d3e6f983e9966db7249f7b083a5fcf1b503fc65972a71e8837c21369042ee905cf6e44a0d3c15197b4a472cdb2d5f65cb8fbc17f34a93ff67b89f4d49aafd2bac63d5959d77f409d56bbae41417d06ca41e67e604f9e4549cadea51e2661306d77e46d14b97143b52dbafa3abde5f60d6f856426b2f9bab0e86f70ced9ffca0d33873e2b6672efd93565fd67bbb5b1f6c1da2f1523d7bf5d9899ccfee37ff386ffd581fc64fe95b537a388dd8c5a22f5354cee8551906a3a99e323572169dcc8f87ea21ae82f0c17d1b53ce4c4147c256246f5e1ac736e9c62d552cc99a6897ffce55f9e51f8bff24d4abebf22c75f91c84dc6b1c5e0d2b8f58f789b491e9bb6f155f837cbf757fdc76d7593d7078beb6c2d9d4bb54f7936fd6475409924e2a32c0e74537458b0cd51373085cb4bef96284cb99ecdaeacf15ca69c4b8bfd8d0fc71b30000ea8178da9376877ad8228bc4bdd77f7a13c912272e0c9098a74134f65517adaea0ac85259342f1505618b7e1b618b51d2bf40a7a283bad773aa7f4c48f27c6c52ce56fae69e7b0ad5de1a4127ac9381cedcf88839107a6389fb90a9f5e3d27788f7c71ef608d95db05bb9bed969827ef4d866f142faf9bf722649fd817cfe7b732671fcb45ff1c791c78bd6a5af032573b11abe699e6f5819c22a7171f77a50a96f3516e6a329ce5fd121655db19279ffba72f8ece15c60119f6cf9eb1121453e1933dcd58cb8221976de2681c68f19569cf42fb8223cce9f8bb813d3792f66acbf83228427ffc8458c5dec9898abecce0967d928ae1a1e7a93904a78c7298eb0ba62119f041d23ab1e039384e4abefa7cbba66355ffbc42b9fa9a5718741e7d832ce86ce54e6c4afd0153f04f53d9fc9b9245d782df80790474f25ed9d6d928b800b2b63f8ab0a015f93eb54e25586cf7dac171f3ebc2370e028a0519d967369e74773e38f06962240656ac2b996830ce2dea3b2f9ec7a14eebada448afbcb149d0438e3ea6799a32befff8e878702fb031e9eafc825a526d7ad3d67047a1b8a5f778c4d2fe20bf8d34eae8f9d49a2fad81eac603aba2bf9189cc3c695559fec7e6593dcf4beeaede6174bddf9a3de01a4ae9377f842be2acdaaeb57724df4e620e2a8e3cbaeb972d618704ef01fc546e8cace833ca5f64607148e0e3729ea9e735eec1c8ea9bc5e3108aadef098491f08bfad762689a64995d73b572e80f8be42cc70ce2e7d8f5ec13acf7053571d59c74343c35776b1b0ffe7bb48e27e86cbccb2c4c3177f2fc205625dce25a88c7ab5db15469ee3765b133aa16ba8adfbd39b8ef25e6061adb440539d8788b81ec0c225cbf554efd139df4ba653c59aa768aed79fe4b7061cf2f74a8d58d9b34554c31e755fdf5167b6182ea85710f14444460a6fcd74f3e59f51eba06893c8f42203c3584fcddb974aa983b58438432c87722c79e2280eb92f2459337d8e5a7fb2a5b3967d2a6aef54a6b4d0c125cd9846cef4b5989cf6c4b2db9a5e6147845680d023759a9bb68ca954ddecbddefa068b670ab19571d258abb9a9d7c0dc323ef790b8691b6479134b342f95e9e7b8d04f3f748c62e95ba04fab16fcb3173b5d54ce07e4f44c1ef0d2bb8c27d2e5aa4b008f98249c8fd7409c0fbde3739c7c7b6b6b275d56ca5ef56a3af4d5240b9729a62d49647a6abf9692c51de85c91a827cb143932d9ca19c7dbf6beb4f81e1ce5db1d915931bf3b8e4c2397c935c0c31be72b8e0bc638a33d9d701b1503118960891f6ce4a376a494b8a7af1b9ff65f6f7b9de344cb4190549c132eb75ddbc8755246c2b73c0eeb6e782d0d8749f47f98bcf153ff53c5847fe118e87d3b0e0e6adacda592a9a8539067685190783e25a9f79399d11c324ca6a104fa9ddf8fb4fe4bca7341f2ba3d996b0044a66765a386aaa02e3a10e7eb82713383927efb7af21f74e215feb8683e8a4c43fbabef2379b9a7ee39f8f196db31478393644ead8c50797ec5e6d961daaf6d0a0f9834db5574e4f452d2d87c4af71932e7e7777b96c88d36d990277e23eb83b23de582ca9daaafeab495809b182c62b746523905949aa5d84c09dc5a19ffbd402c88dcfd83dcf9dd50fe885f91315ce8869b8b10267ce18543f39e94abdb5d071dd7b2ffe73d5d8ec55a1187276eeb5c5b4884b0a5d0aee3d54a78b6d4292b41706614d8314b5f5b538a5a6c6793bdefd2f0aa9ab087b18b720ad0ca897aa29bb25c7146a54a60ee945ccebcc299d8a8f997f2607b7bdebbb94e45440812b20c817dce2328fb853f524200174dff70eccc7cc3fcfb9589dab4e9e9ab2d2f5fcae7450932d8fe3a78f3bfb133bf63576b04030d3c7d3833585c888c8fd82eaac62274bb8a785c7edcd18b8ecb0b1903742d47805d8cd717fb8e5356c7768e76f55c0fbdd292448d54bfb40b6ef5d82ffa807ca0d85fb92668e508e0b5670408588900ee2e499718cc72d25c650aeebaded4c86dfe5eb85244640c9f1b603bf895532b36d6bbf41a5dddc373aab73d75b4942dbce4a87a1bf1c0d1ead5a73eecfc17072f195a5124cf36b5796df74c0a786bc221beff6083cb8c06e0c4192e22228bc9855371de6d5275656b81b55fcdb4ba90f8e8de40ede915b1ddd5ef204bf39f7ad534460067ed26804f171220537bbf381444075e3748869c4450cc089f691d8afb12a6587dc871f83100da8907ed6c04714378403bc19ffebff99b29153e5de301edfc237675f337235677d27ffe2d0024cf03daacab2878382ae0f0a61ca6a6dd5dee3a326db86e3b900c18c4fe670ce5a686738d7860fead5cb2d35df0fd848e5297e24eea418ec35e1ff53d882f1f95c437c716b365039b0fdcbc05088c375c411f91b35bcdd2d93c39678e340adc1a591eae993be22f5d5d0e592a8de6a5027f4efc41737938ba6cea4793517adce9542fb89a7eeb70d764555484a8e1d945d5756b9ad356680d36e28195ab979d69430e5b0c76577778854aeae404aa3a6d4f315dc5e7b28fa9ea145d061ce59f95b6c973bfb10b0f5fe046d35f8dcc32a67d60e51638c6c86fea7ebaf1f037fafce477f55936ebf627b1bf8f775ebc7ce9188fdd6ae669f64a243f517b2efb8a78d89bdef9a8d8ccba891500ceec3ab263e4186e6646d9f1cc3310f40d6699ebfd79d61b679e64b72ac79bddf933ed2a017cca2a5a98395a9839065ca4004abfe71a7b9882620e847d9afc9c5f73d363dd0be1399098cd3460ca46302064110276cdf3db1577ec3aff78ea2d3ecd0b8fe112b43276a67ed7a66bb645d200d22b9c8234f68a65ab88ec0bf50ad19e5a75b28fbca66d3353323f3e9701df9efb3b0a16f92524f3df1d050bc540b18e08241c252d8195c4a01ca5247150090c5a0a03434ae170680c520221094721a5a41ce08e52124829b803421a258181c31d3118241c4deaf99238380a2581c2e0d01292582c4c1ae600c362e128a4230ae1e0e08041c0702869072c42028bc522a1580c06e68890c44861a128b424521a894035e2816b95452dd7f576419d52ecde3ea457e8265ee579fb40ff16abf0f9b1262bbc552e00de51234c731115cc6330dcd391282de963d4755f2bdcaab6f75c987b33ef4821116c0959069b46f352517d61ab514a3e4dff561edbb8adf1a878954650f5d8a1b7ae95eb8eec45e0f4464e179782176fd83d8f5dda9fc2cbca461d0c5ec9635c57e7bd93ddb86523a71329e7e5b742351ac1c0bbb36f2ee6d1ef8c7c6176e2d86b4e8387376f45743827dcefa8cb6f8bd9aa901b04c8db2ceb8d9e3865dee86b594baf99590739aa7d5b6d8b2b6749ad53826e73f20c11920559866444f3523144d33e8cde9c43a091e54dff563591380af95d93ab1f3a891081730dcc2b2406e745e6d1f9d57514becf4117aea0c5d9187cc34f39a9537271ecc57a375bdc31ec5bf7fad58c73245ecff39b8150d06ff6fcb292a9aeb06e74cebfa114374e264b8a11b0c8aeeb2d72f39a03ef6dec96e67aefc1654f0f4d4730488e69017b2b8de93bb2c697ec8f4638845238309fbcb06c081719e77c193b7ac329d9e90e916719b4ccb300a85405e2ac611f31be7d92714dcd1d42e7a41ed0ca4e3dd8bab0e770dc2dd733e33fce9b6a58e6c9abae842c9547f352c163a81383f031b4733da9ff829854046dbb7d59e6c77419c35959d37aae91d20f53362f4d05f7d0ac6c2bdb1dbb080382d8905ebdb38857db43038237a9facdd72e0edfdddc94547c5ba541eeaaf99b73441acf651a37facfb4292abed3e9df4a6e8627d250c6cfc13efce3cb59061f9e81b5c9a9fac92af117785eec345f9c32214faf26c543a5fc3aac3a549d72eba05e867ec6a3a1164f5ffece23770f93a777934294c178f2ec8aaf17774fb93bdce9b67a46a4ad50e3f930ef3d8b0c1fbf4b8b102d3872532caeb5e1bb8f660e153cff52f60079d636c95cceffe10d426e7d54804cbb72dde7e3ba4a39c89cffaf365a93bbdba718ce889a22c1ea0a3bbc1d1c206525e77ef67024295f3f8746fecfa6f7e901f0eff41df26df88d620a040249925ced3fd4feb17f60d66b597fd7c5668eb44de6092485362f86f1197b05f862707c327cbe680787103e313e250faf004f7f4d4f5363553e193e284c5c122985444848a024511252d230a9bf7e453fc0ffafdf814aa3500824140e9340a0a0529f7ec708e788f3f545bbf3c9f0f189f1a9bba39dfcf864a0627c9a9efe38275f17ff104d4f472f3e99303e6d5c88e6e7a7f089f119bb3879a2fd037c3ff5c72c58cdc5c344473dc001a3ade5a1e7adea621a6aa68e32f3d042a8bb1a04e9b8b97b6195d5a46156fec16e123e4a7017b493a6ba8a85ab8e120287f4520b12f5f07384ba881ef0d7313276d63290f0750956d2303337d336f7f5d231f18439fbb9a9ab282bbbbb7b05fbab07681938edf3f64007a3d06efafa8186266a563ea17efa6a012a06c6012e0eaecaa27e1863942156db38d8cf0a69e8ace50df7f7f7823bf99a613c8230484b1555553d337d4d58b09b949fbe849776a06b486010cc572fd4cd0f65a9a52c112485d1f30df630547396c09a9b6350fb0c3d9d5c02d4b47c2560ca967025372d630f2b09e9602f180ce32a1d2011aaa6afe4838239a2255156fe4ed2a6267a6ea1a688034eee21fe5a1ea15e6a41863e412e1e9a181729071d1fdc3e0749694f7d6f3d5f15f55084957180e701251d1d57b72023af406725edd000185a5fc907815636955073dabf9f2f22e26bcf305b13fb4513dec4409780027efffa9d319a8829cee176c38a260f2ee4de0727bd806d3967f7d16c3e63411d98c92a93f50e1aed9462401887580f3a5c7798893a524104c321cb6089685eaabd9f0fdd4f3f141cf9e9df50d599f1d5cd92d7405fd56f8fd00470f7233cb44c9f6cc59e027fac3d595efabdc87d16f9b7921d6fbb9f9110eb5872f1303098b4d296dfa7d0b9d89b775cf6990133857d758fb1a773a85cdec0fdf9940f596f8b08fb00d45d1a81a3f6d427aeda1e3a3b8ee09d7548e4ac67481d3b32b24fb3e39522df85eae34b09d194ab9fa70b72ec58fa6cfa0dd18bb5a20b9e1c350d179df1070e4d7b46e37307d5bdb1dfc634d44e6c67051fd0faf2155d84676f9e92acaf677fde60c8cc097b2e75b0d27bf371e499c3cc2d53b76fc909021c3365b7a74e8489151f13a4dd9f2a864f6ced655638dd1a65a3aa5ea67785218b4865b84ca5478033ae7de6ecb0b6597d87b34339b651ce4ebc3cd6e3dce38b9d14c22a2b638f76d815f8caaeff09376537928afe24333a9484594231ff8f7ffb2e6707045204797e7374d51b1ef35fbb79ee952069ec1b0be190a613d7c491778d5b0f58efb3dbf60336c98648e4bfdb37f113a72d841cdfe50f6883fc7ffc9797ead35fee3107094d3cede5e8a7354b52b0e3cc8c775afb3eeb61b2ecb47155d1f7ab014f26c42b70c8912251cb92e7fbdd188afe2d192231bf3ce4ad99afdb4f90ccffa3daa73d75f67cdaab97b7ebe8e8963c7d78b34bb6f5979b856652fa13824c10bca1f397ac01c823d18ad4d23116ef90e7b23d090da89d8f84bc7b37c9ab371d513f0055b2abfc9307c904fa153cc8afa0a29fe14192aa8b4866ddc45fc383a47dd60ef2f2e63ce11d0a492e4e48aef0c94e1c2f6746d012feffe24152c00f1885257c37e5a484e344d5ace158ca77e137aa1ef91314e2eb6d099b030a63257ee30ae8afcd5ff87eca4caa07fcada6248b3b92cf8364a29f3e23ed36d9eddb3244cde1d6cd6207ba7ee2e7d7b43890c8b0e9227f79e1c2e6c754ecb56815ef7d725ea833be65b796a67442bbb9ecb08083db6686a7ccbbd01527c2d4bdeeca3a70dc56bac789662282e7cc2b9df9b0217f6512b9f0df4c22f7ca77908740fd109fbfd46c77495be708f521bdee62b1e8959752492593d2ce32d7e43544fb093df67ea478b1ac64debfae481d7f85c96053b08dc73b6d2ed2422c2edd26d49e85c50eb4ee6e9abb946cd718e6f6f863ffd94845ff57ef82c7db878c463b7a4ec753d8525e3b0ab13c4a5b4339c2054d976138bcc35d4381894691f186fc7ce394825ac392d838dbe28da7252bbdc7ec0791a91f86ca182b792469e3105eeab69a078c5bc63d91e5018a36275de78a7fa01eecdb84c8dc5781abf7eb126b35dc02695783d2c525cffad20c487a2488322d9e180738df121147a3e2189565a5eea76d0a95e4ae2be0f5143f38c33d38eb51498b2a2182e797c1af2909ccb71d08943b9fa4834094e730b30cf64563e706135ebcb7728ee6e38b6dcf08d00fed2682630c93cd105f013bd9c58c6fba93587a59d9a23eee9bba61f1223e8fc4b45e210bb8da316345e6fb41e4793d40ac64be938fc4c2a7605024fdd945c7241c5c2d4f89cea49c6b796ed0d745d0ea7acf7aec0d95ffe99af3f73298ee00f2784f3e9718bdcc0ef62a4bfd406dcf236c3c2ac5aa679f4309fc77f69b6bdcae3e09593a11cd4b45f317031b1caa94ae13dcd63dcf7f8fa6f589a07231885ee3c81cc23cd6ea2d73a8222857b12bf3e63f76837b62ad75731c5a60749b9f8e862f0a9d3a1191d10806def50f36c8e0efde7ffcf6288721c38c7aa8d71995191f938a943d855b8e33ebaa039c78964aeba75a36f7f75c384819c4c67af9a4a0a95caf68b3c3d548494fcb176d4488146419028de6a5dafe0707485991009e25fe3007e80cb746e04d93a6eb99c106a09bea1fac15db6564c83c2effcb01fa85d6cb7730176d8f2753b726f9ccfb62370b624e983ba577ef681862607ce0c5690c7d3281f304761b5d32b9ffaaf8e9a4c22d8cf9a89245d7e38f6209e1266e016f6f5bdd29663326422e2f438a38088c78250285786cba537c6e831e2ffd9bed4ec6c3260fafdde46a7b1f8b274254adc6c04fd63ff96cef93694d93c9442479b28e6988aabcfdcebd16e22eb6657cd235a7bf6f2d34da9ebb5917f09b65eaabebfaef820e4cf2cff55d412f6fd66ea162f7157ac9f01b2d4a554d45edf08d8c5fb1f8f0439f831afd67ebbdc7d50cc51453f6e74c90b220636d5fbfb0b9fb2e6313ff9e28bc534f8fcfb64d9d72b40f411fab57aab35654bc001a75f3b8d4c151f9fd694f5fe4761385302f1ac53e26ebf7d4b666147ed8993c5a9d0a594afa4c5adb1fbda418bd7c6e0394b5ed15476b912a9a56fb22fb46931252aec032b88d1af1401eecdebd56aba3b1481515f3e05513684628d369d1ed8f295c66f2a50ccec1da01e33e8b9a9d7119c53c8fe240eca22bdc5358c2ee73c2962121c0a95225f5c0f93f138b507f269958fc0b826045e20b52628339c21b5c8c78c04b90f8476c55ca5c23af1e76f28db448f9ed4e070cf79ec4d34a3aba4c1e4aafb07557bdbe779a69f1ffb1f71f504daddbfa389c42e85da448ef457a07918e8002d2bb221d1129d29112129a4a1302028a2ca91690a6982862101069022a0808828014e94d88b46fe8d1b3b7fba2d18dfbf79d7bff678d11c790372b6baeb7cef2cc67ca1c7897189b47c19cc17972eaabc847bf72a158a6fcc322175d6626bbee70ce2edbf85c148a69a6b883e723c5bab6cadb1e4053fc02da911120b9fb1cde635ff204d602209a5a9ea67bb9d9beac9fca75ef27b8fb4ed88909f95564822fe4b2ff742fc3815c49535e1dce40e04eb96d495c7221aed99a2de850baadc3deb85bdecfd3cb7d015fdbb4695db28b466ab159b79df26c9e593b8f6ee02656735f35c95bdc164641d0be90356f04272c72fb5f32238c8951f0277e92cea7ade8f4e6700e131fd7529c33abd7620f5f768cd2c93b04c7828153475fd08b6ad3b0d59ca7c87493dff8b8d635a2a715b71820dc3eab90dcdbc504f006d298d500c908cb10d6dee96a23ad396e5c70eded4745f9dd5abef11b71f5189297201c4907b07723f9f4c14d23b3cd5497366f5e9d6eb7b5d30a9d7e7baeeaf6276f073ea647fc3cf6a11647128901afe2c0cb48692af0672b8f28a16d47cf4d0c0c74f1420f08038e8211a3d8f0f4f1373983a77031a61c36fbea62b4e24887a9b0646498ed667c2a1fbebce45de62d7fa3616c5885659f8f3b6f43cb834887c7e80fbaa294f1d1607f4320f87d26d35e075081b96fd5d83bd611edcb09535c8387cab9895f1f6703a177ea935f91e393d21bc2fc92c3c9fb03bff6e694442f2c812fa0ccf12296caba7b9ded2c8132a0d000c0029c2bf744045f22439d77dd722f0e18a48be5565c384b25e67c3b3d4d9b5aed9b3cc7425b9d78291d39ff07c7865f4d1c22da6fa693838c85b8cecd6f54a97fce73e4d11bca2daf685e3fafcbb2087d7041a57796e1f823ef8f954d07bc1f6d4dd3ca02aca5e7fdc9af936ccc24c4881fad4eb87a5b12fdf18087dedda997caaf5f9fc2d261c072101cf8339ebdb7f0931e1b6515e847f0b93cafaccb07682bbdae6c2d3a9c2342b6e6fee18685f37074fd41daebdf9837c19085a2aef5f018fadb5c46b96abced0753c416bf3b46732832c1eca3f7faae7fe87b6c789ce2b44417e7de985cbb3ecc88ff7e72c597afbc96fa7a7c2a06be3fc819cda0cefaef03576716ae3aaf58aee0c10decc3c20174b5155d8c0ae3d28651a465dd2ba6a6110b84c13eb57da765ca458f8c25dc6f004ef2859e282f2ed8de73370881789b698525721778d3d007ae20a4435e72b79eff379e9bd2ee4b1ec07524f80113ea28c9fd8af9b7c78588ce7345bc3509705eb1419e80e7634144dfe4de9dbd50c24b5a3cd47a0d6221feeea2e358dc59cc112c1c2083089f2ceca52639edeece61d9407d2411cb7a392a51302c6aea2afcde3dab6a80bf514660f068be6154b6bb67ef75dd6b0aeb059ca192467253c58ac3be116b0f3050091c541409668620a93472910c3c84a8b61c8c819e59c2db57c75dd8b4ed2197bb1256f6c03190fa14a5acc6dd855cf0850cf00130764d9447f02b0a9ad0c8c27404bb216dfbfb32469b8d90bc768a69ae3fb7e34b67d909daf92bf2fd35422123b121f083f6434c0a1d863ffa71d84adb81ddb4e323f6746e3f56f3ffcff69f0d93885e77826f2f5d0d512f60d9281916489a7d4f28ce783e7d0fb17cfb9e70455501c068f11494b1539695e96106ad0c9c31787debe1e51289a1332be7910a4b77a8133e6db9c49fd630e22c396a74a6227094f5695659c0b579dde5bcb92250f5442c3f9d0f5d6cde21f8a7c705af58bac053eed77f78779f33fb716ffc64a004ef23bfb318f691213da0e7d538e0778cb3d3e0e40cc42e327d9b00d79022e91c65e9ceccd4b17e4bece6424475297a01b2368be084097cadb3312e89821670540a133c3a30bb5a734ff4e29535ae19e905383a6ac32b084f9af5b16f30364e6937e52a64af3e0c216f1c6ad256314c858cff8fbd181fcfe95fdbb160e0e5fcd889f1992df7aa7324efaf77198d38a565dd082460c96f0ce1592e34e29b0448e7b79ef9b04b345d93ff609ffaf88a15078e8784f06c26441a671abbac1a74f36b7d24872f8a59b73aaaff50ede4019fed1412608dc83dd3c83cbbced26c87b485e3022c18e23e3bda832691830107360a3b3c5285bf1b2cf95aa2000c74e1285f110bd0e4df0d5524c8a81fdc561c045fa75af1f02c7c27f5eca274ed1980634fc243fe3b89ce6d3c9d404f8674fdb698f2615bc41dcc8dd733af5f0e77bdc508a9837042ca8033c54ad6b9556bab18f3e7b1125ce44f83c53f7820df245b4d55ccc9debd21f1e1e7d5ba3a9ce0dca7990645525db04198dbedac9a1a99d1f23d3e6ffef9706fe181c3f724e989e52b5a19b100815c921f8f8862513267ad5f5ac97047d45300567760c9c50aad6a64e098716ac7513acf16ddc914f311e4a6d8b3a77a8e769730c4a1101c7110821316f8f934f8f4a130b5d991c4203682a3457efdf43e0c31c12171a007158b583212b43a2699bbf590a2cf34697f537c10475c45749af5ed29927eadb3bb8bc57deb8c39aa5e4dd794db9ed7c70e61b8c7c2357daf2dd2e7477713127fd0dba577e2ff1497010d0d0dade96c8569605512fa78afe0aa623a0cf12bedf8ae5f22448b603e2773b3417a77de447cef0fd3a1bda954fae7bf8c8407671b06ba8901b99a2f3dcd7557e92c1e92fc8ac710df3be2fbfd9d96d46efa8890f8c3915d3a8477ebc1c31761fe21070d341604348ddbfe1b410dfb7efd73a815087ce5db6fb37e1f2b02f60481ae8100a277d8e7df7f7a1808b44f556d2785b06384a2ecc76a2558fda9f8ac63edbbc833b7e41345c5bc8ae7ac46ea3e0a1b08825944e477fac91d97171e016ffc5040728e9f2d8ce23e4a448306f1f1023b35feeaba073f5c88d95189fec1cb803341a0937fafb7210f043b64e333baea3ef536f8f24729fae04aa2769928f9653ba73db9b04de5473bfda41107d8e47ce1a567f14f7985bdebe98cfb263c868594774ce5cf2fe8af1efcf3cdf812fef16d02f8081576eaf05dd2ccff9397e865f1efe6be61c1804ce0ebc8f30f30aed94f8e54ac4c1cdc9f44656670d091c69a28f31a99605a3f0004330650db66393ecd1275fe78d02abde70e5fb6ee9166a84e379b4065def293120c911c0447f4d9b7b065f62f1b598b0049603583aaa002c396ac628cf36acc2f4aae562ea9519fee876308eb8f3a35e3a3eadd135dd2941cc91be7ee74b7933e46af4763b1fcce159607364246b7cf3ca451e720df65a7e03149090970846060304ef8c9956616d229f1991304dc9be7a9743ca077d9dc65d55f153354123ace93e360fd6b3ec0a3f82a5d2d44b921ea954591a1ceace36b6ce71cb9087f3bc1bb2223453bee77805981fb59e9e50367e5d241ba1d36d2de39c15ea7d8c32ba28ecd5f157e0b8994807fbe80dcd975128130161eb249a325f3ed9ca6e8f338fe7a8bf280e3fd1f2e1e7fd3e30fff72e1c00b704072127a599c3a699d99d7ee45914945f1c32b07137a4e9c5310efa7f44ee2047d047c6ef3eb1e3ad89095c09eb67c6641f2ca9494a766c293c9c6fb53118c7d8f7bec00391b8ce67bd6d5ab3a3aa1d8d70559b0eb53d71ebc617336ad6af52e19e528cc066c67ee99a621a56474ed933b7a1ddd782fd395f544355fd38f6927304fc08546034a6083940a4eb7d21921dc82ca5b1ccfc6ad7169d9ab07cda499faba11e49a478150dd1e40b8acc138887a728395ee607bf3a9d067d81ee3e7d4436d54770edf5103ac3456466386af4d60f6bddbbc01ea5f9e45060f8e8c65088863c414e9709739014395088af745a173c3ac9a6b0486f471557b5752541a867393890eb69fd3dfab065cba1ab951d8356679bf7d925ffba06fef91fc409db407ee1e1902ace181fd0fa400ea9e1726653476b88dbee140c31382f74d5f72a606bccce737a02b4e879f2103033e56b433770f051b699f52c3d8a93c0d91b7ed3e669abeb837703fc36dcc7ecac7c08c5034ebc5442bd190d9a2acf2d5a09032ea30e5fbae1f6ac8cfaed04d3d7e2a05600f6db2fa21abce2dabf02004faee044e57914246e972d9f647216b5e78a4580119ada325e9e705a2e2523a5e2bb23e3fc37b7130f6e0edcc5acb2a9f29ae301125a0fb268fba887f231f497751f0f30d4923ce219653f48be7178a0a0b262214450ce138e8190e0cd4138283ba839174c99b989f0974aafe45d922d8c92540fc4d31f64f7fa7fe7b20a09df5bb6f20d2c4df5b771ce06fbf06a656dd818409fcb5f9f32d38881d0e7c6cc74d662d0a40dfdab4957209f553cddfa031b9ad90ab23f57af46878f9951adbae454b655dd56f8e2b590fe6733789901d71a7aeae317492c70a061d6cc1e794a2c7f385b2fde86fcca3d842ab0e0d15ce618b95e7c65bf4ca7bd4069e45ee32b8fbf7f986a109e1f94fbe1d8b6577835eba0c5deec178aab7280f76d10b3986556b9ba89dba662d0a18d21431b0c4442cc28e130fa6c2e4d3380052ac07f2ba84c4dc41cabd6708e3f176ce6ebb1704469fc027feafb4e3eb9e1d4ececa029bab8fcbd9194eac245a8d906de8acc81bc9af6cdea479f5415f9a41e92406e0dd03eea24c3beaadd453602e23583d967be064be6a9b752b6f1f2efb1df5481406ea8f839e51fc7c66128e37ec6cb07f764ac14118288159d3959ebf6f0c6499b8d46de67eb7994ff152368f30211e97bafcefbc9fda9499a8a7844fbbdfa33be4a11ed4e258c9f03704083e647d9297851c7846efe848bd115f4a8c88ec72daad3264f1e0deadd6593d9fe7f31eb860e2f19ad8abb88ceb18dc49dc9ee61541b1a18c5d1a5bf0dfa9b82d3a629ebd6519b8fa22c4cd3b37eef67e5b118cf677bffc659ae0b948ff615d13eae6e5bd9bfbf13a6c10ea224050fb69eadcdb6f81de257ee9845e8f81734f5d82eb591d47cfbc7e407d31f8e30260d9c85a73f8a5b511ad5e53574c12b96fc0ea24dde41deb8384270ee696a67ad7a04bd66e4526fc0bce459d8b3a23452812b7e78029e445b6c3a35c45668f04e28c9facbb894fedff246e74c14839e3026a8c294597b9428480a368a97e287a2f0159c64ccf1936cfa7aa00c5cc438f57f742794adf469579a28488b78a2ee6d856b23f995418aa0c511911fc8aced042822fc521c1191348586c198a9130eb2073fba5fcab9a640b2f8ee48243341d65e1f972e9442bf8546b2c1ca0e459d93067ce3e9dab23e14d9d4075567166c5284bc5f1fd7d50ba5c48463d09602eb85f824032e452d54298eba96656f2bbede7a89e2b99b06075a8f4964af5d830d0641c3401c189428263ea906c5170540a616fcfea42056d3ea33cff738a11a1a55c252b3806cad39c7d25fb57dc5cbf1fc48437a544b38dac98fe7bcf26212fdefc6ba162038f574c4504d7d6fbb203a7dbd51a9a9286de94eec28533da7c2aeecd8fbf13e0b3cb3ec0537be458ed2edd501c55ac43abbeee3a544703cbb2e06cd2327c53b8b89a834314d70bb99e5158657c63b09db72a338e2c3e99cad9abe0972b303e4d2a9c6af1e7f67886b9ab4b8b4d6d6e55069764692c3c9c8be8f1c1023828a25d352780a77baad145edcdfbc59fe5b49ea91605b3d902c42b7b30cd62303cf7abddc9c42627e45aca83cc4a47c64a5734eeb58c3969778abf3aae526c605dfe9456a4e2b2b35d77aba691d0f9c3b5d5d33c1e9075da134f18ee9967541004cf6e63987715df12054e9da8bbf9d27fcb53f444d5149f5684665c2ddf79bfb6bb57dc97487bf9c143584070319d84cf49b3b7c337b3a74897e1a8c955f93af1c301a32ea8b340c4b4b6ecd780932ca2b902d1ba0f099e6745359d2394b62d6d32c6753cde50967b545db5fa361a8e8eea1a23bf6eb395d57123c92288e341e829dd16913b6a6d06116a762616ca342a3833e3f1a774e143f7c6078afcc0d70636343585b7f4a273a4d988de338f639c6fa16b835fe37925163cf32d1c0b071807b80e121ae7640c739038a94bf9f2d22c0934debc573f7e88f5085b2ce1d407c0c6f075f6a29f74fe9c3d812d79d4688f32390baf6bcee87b896e13ffbdba941fff8d5b23f5fe825f22bac681b2afcbb3a8562a60864fbff028bf2df7ee90ad2b189e7fecb1f0b33fcb303eaff8601e3729b23c9820e4c4c9f4beddef4229160c908836ebebbb92c425a6066e34b30efa52f15d896712ee85c57b70bc39b8f47a05900c0c995865633c4db5c7df0e38675cd55c2ad5fd3e89234384c0268f9873501f437c1c8223b64670c284bfc844282285da896838b67cb3544545158421fa1f9cbdf8fcd8a4979ecd9be0746e3de30f1abd973de25c839b39fadddefef2981dfd1c013eb096c644f37b319aa2bb0309e0ad1e898f0504cf214080279600c3271f6c971ba8eaaf8ccfcff6ff3746efaee483ee326ff52fa8053c208b5f9a7f3fa53ae3cb1bc6d7fe03cee59feb7fd0ee9effcb3954b4669e277d03edbdcda5f03dfaf7ac5ff8af28497c7c2e7a7c50294f8b0a9f066c85973a83da68e42e9d11f894b8fd3bce397eea5f9f6a7f6f7c767b11fc4e67cecfbe34615bd49daccad3b5670d8d30df18fb55f4ba0146476982861fa833f5c5829a7a3db3fe6125fb3f8ab318dffef53b388b89f31e5f671a7913d22caf178c3859f98ca56354eeaff7b89af3b8603162163153cdb2bcbee5c158385054620da65a10d083bea855597caa5caa4706b912fef4887059383bb55e3f2f3be0ff3835ed55efb4a35d886c55cedbe790d993f442f69613e7f74636bc6b7cac3d893e0359f34270c2ecfe803f1f876745df6414cae49ce9245573f4b3a91c71888a257117942e0220702c1c387138b86741ffc27effb8420acf18a1d9a422c7aa93f4299e46ef4afab85ba854004892e4bedb1ebc93b75ecc99a850d1c5309fcee8a87627a93ebc9464257c11a58c01674170e07404274cff8b52032dc947ed84a48d25cce41a24dc6cc78079684f0ad4e3e9d3ba5d6e2af826055da4eee3fafc96a10333abb4945ea9cb376aea336ffcc2a236c7b32c7e942107333db82a8805fd58022c18e061c5580629d4524c17bf25a3b0d93f19f43c4d384cafce206dd412aa78e15a322092f2f6eacb0f6ce28feb6591f319770b5652979ecdd04e668b25a64431b45e10c61004437004fe084e98e2d7c121acfd71f96882df503e5af5371f88ffa37c342ff151b916de7af331ee27ce1321620a28e0d4959696de00450922c9c3877fe4cbfa9fe5a3075692bccddb9616558f38f1b78577c9af352e1ec223fe7fcb47e39900f814dadf563eda5e36d0fb70c021c733062ee65e327efe96c6525a87f48c030fb9f9b93a0406fb3aeb9bb96a3bc998ca04bbe8fde7f4cfaecb3feb622aaa8353f2f9dbc6fb1993a15952abeea404a235a0940d292df279e8b99bf6a1daa874a1c1a478cb6bdde4751834615c4ca96ecee824ae24e15583a4f47d167c1a1f18106db9edd323abc1eb9c1471f4aecd94e9804337c1d5abcd16b7c67196fb181a480065bd757b5357bb4b5cb78a373fe4726f75893b722c875ca517be9534b41aada3894e86ac25fc297f8810db827248fa90aaee8cec2d5a5760339575485921796901cf7f0d72ffe18e63a3c63b85050379aaed520571f78fc2ad90aa7a4517362e0c500a505e333427f13b7c55a07b1a05888e556c3d4b7d501bf3a0260e4ce8a18436784b75b941ce66e0c2ac6691862f25da1bb2761ac10953f822113890078572890cac65d41434b666492652950581dc5f4bc3a394dabbc9b060e0f203eb1cbb7e8ef0f21073b805f186d0eb2caa02f918e53bb4c395c9de4f6f71011a592a11c92c399ccc536839857730b731f3fc0ba37d75b48d6bf4517301d6d918d674108e35057824a413a4562d73bf9e9127bdeeae297b3fa9d8512a27e321e6549f0a3be72bbe5160de7434f07ecf9d418e500e5254d2ac34b4d4ec82dcd31917124ebe04a56eeffbf762e808a29cdb8f35e0583530e04b101c3815c109a388b27213034559b949d423c1764628538f03b10c450b8d8b906722604652136ff6c5193806cc235311f30dd2bafc88ebf66c76c804a3da8b4da27ac925ad7685841fcf882baaf6f692ce92924e9272728e0ad22ef22e0af28ece92e28e12e252b24e2e324edfc01cff4605557c7b9a5a11989b737f7e75f9c7c922c68d96aa2bc8c0145c5ea2733f25674550baf4708ad8ac33596f016bbc80fc5c5232e17abe2c9bbb71b582c6ab1b740f2f8b281c55fd8939afb4a7a18e2681374b317cf28c665e6ccf9956cbfa81d0dad4634b7456259e7b4f0286de35d5f11af7a5f79fd318a5cb8c9dcd3bbdaf582b5862c36ecec5928d548f173dbb368df0d38b82adbc052109f7c151284423b2cb323da927334f47f4b18711ddc3586f381a896f0fb814b9f0dd642e72972c235dacdf8ed9083b2ab7e03fb8c4a0e17ee27f0a97bc4eaf97667e6f053ad5e95e1c6b577d89d164dcd3177c80f17057eafc79ed5b3280e908d752767f04d54b3b2831843e49623e60c4ad584aee75a2a0f103aba776be180800c141ae2038619448e6405524733039125c128eda0907154b75e8457d1c16848108fc6eec263e9d1edfef6f2a99f603443582dee21e13a56deae049a987df67aefcf21adf6f97d29ab835b1db13e21fc66e8262bedfe40602ed53b5ff1e9a0fcee161d0ccffd330c8bfdb8ba0e1539981583070a50d13bfe23ec85845618113551b0b26dd73292cf101adc5e24407f163d53b6080db8fb5f888a799088d6ceaeb278be9aba7e81b5e924a25b796b51a5783176456311005080e22f3b900413329927ee4c4a7edf23112baff256aa201ad93f47efdd8127d8defccc8c3c7ce3e45be700cb89ee2cd40d4eeb62bbcace93f1c3fc287aedf2fe87c4c5dc9d91aaf06f88d0e6a1f7fdb8f4f167b615dc77a8c95d2a1dac3f0e6379cfb7a3e64f24c3996d9af4ebef0ecda7f1aecdd829cfddb3e017c08899f40507cfafd00d65c33f721eaf24c0155a986372a371395392cfcdd25a675f6707ea0e45bcc29d16f5ac41dc0b067850a49b4d85ba8abdee749d5b82cd4448f60399cb68213c48201ead27a74f9b568695ba353d9369cac3c86e434eb0c9c86caf1de57ab715aa9e3007b9045cf8d820bd89aa3b2021d52b569b79f09c2c7ae1e84e50a5c084f941e5bc080d770e015a4341504496bc4ffdd24dcd82faff47359b8dfec7c7f270b171f9bd02ed986bef1d6c40b85749765b5495a51099c987879621a78eb8d2f65eb9b2c5c11fbfe01d905322e064f0229b4979f799871d617ce2e864e5069555076f11277379533a1403f6b9e6617a45a6d64e72cdc5f91e3d3c9f628e2d4a66599aacfbd1390bb04a36ffce9616fb4d25f686cca145b7b894d00504074694570a42a36ac7ac27c24fce89c7bfcfdf50cf9d6f47bd4c54de7395ff19fc280cd2138b031821386e84843523f1d4252b7e423c1165c3b53bca04717d53584fe2c85f1d89b0b4293c616e3649447b839f9144f5a1de2fe73fb4dcaecfc0cd80b5d1b2d6899d3cd214bb35625ab7fd8acd86d6d3c10160e8c16bf1bbc78ab509b79cbdd95192a179e2a17d51f70f57afc42bdf944850ebb186078014b28fab6e064b67b612d1bd22c545257cdea19a3cb65a5c112c74bea21425fd39ba108d37054dcf18298f34e8be7b8c88e178d1c6c621e280f9a8a853eefe0cf8aacfc9c6b77606e54924849ff065ff941988548dbc6c4dc4db446a8777f29740c2773ac3e17b07497a0b00e4c8ac9debafcdcffd185aeb2587a85537ecb4fc7a34c935e58bc19c180fd2138b0cfe7a2e9ff4ad2bd8684c49d4449862d8cbd819d3b265416bde7e640ea9e2dc36331700c9880b1a5f4877460106bd9efc79bc53ddfbb5e3e25fb2bc350d935615b3c29c458512318f5921cbd575b7fdbeac7f151a7a7bfb235e3d3c4773ac8b170601846736ebef863cb46c03bcaf973aaf26ca4f3b9dc0f9cb351d9f9122cceebae001d6013d60379b5b0f42189dc662f2c669167f986ca004f0bc2ee888faf2f3b1106968683a5442e7cee740234fd0f9d4e309edd3b9d084efc6ea35be7789befa6b6da78a5cadb76a7c3d7596bac069268fc60ca91d7f55e5c09c957f2b77ddfecbf181ffba221cdeb63da55c25f713ae51eb51b2948b9464275525dd83d857b4ee3b095da7fb6d3098afd5fee742237b6777008e6b0b0f7f070f6db9dd3c945cbca47dd475afeb4c419236d1f0d095f75577b7d2373eb20791d6d73a99356be320e0e871c245db47d0cfe739c46bb8542a98b07c9498a4b3849ba3848c849c9c9ca29c8bbc8cb3828c839483a3a384bd83bc8cbda3b4ad9db3bc93b48392b7cae2b252927e320e1222e2b232b61ef202b29b1abf727720e38ad282529fd1feb9433d97ef68276ae637d83298d2c735a29dced3a5225c5e6015bee03a20731b7f8bc9485e25b8d87d22fc4b8ad66cad09a4718363b7c48ef92bedd1f213259d2e758850f2684501705b40fa157d8ea8b4db7bbc54de3e4b85e090c278a07b3efbf29f0d8ef434e388b0320acc687c184305dc3de1830f7a238722c922889911876ae20b952e8c993838b1fd1a990b5e4cf7c4eca48708f2612dc5bf80b8c4e8a47b618724478af52ca7c88c8ac958ed2f6ccbd858503bedccc9dd670d1c73698a7cc2c874c5ab22362f2439f0597c872ed35344ff37f92c3d573b02bba752996d642f046d161877c740db9ed75038775838ce4e787530fa1a7d7de7b7e2e6947b80f8e7aba27e3b00e6fefd499da5566d6fe7b604264f02c1c1d45fbb22cf4578c7ea6416c0fd54b69a38b6fcde77a3ff814f56833b57e77ec556aa2679a7e383bfa32b388573e0d81d6a312a16ce3453675b5daf7334a46ea122949a7bca49765016aa4b2db025b2520a0405e16674c887e02c13996522bde5028a5971f2cb69a315350b61a6a03de60201d38481b82d00c09e6dd444243aa513bd5f18563204ec5e9863dbb9c95bb6579c367e7f2608f2458ed52c65d85339cdb9dae7eb791f4fad959931f1c6c641ced1e2f83f03d426927e210e1a9769779ee9b71209954b816c1f5c13811dab17f8073fcc72c713b996f5767d407879e2da35e9bb70521e3a747802a3a7cbbcac695418324cc2653d8ca33e396073305a9ec8bfbadc59635daadac6563e50716005bf7eaf82b8f74b6d60bcf6dbd3c39df10ef48c143d9287d4a36f4ecfea76338eaaff40ecc5f02cfeb3da89ddc933b40a77f296d1a040291c81bc563e100ae99532178b2e403bdc69cd3910655cbc613cb63ae12fb172f39721ce051e0ac07ec0e6ce964aa01352af94326c64a2d0a4e12a7d4a438e3234db5d8886afb0f8ffc51aa90ed2bbfd98744d44e054cff5df4f45f154cffac72ee54cb148f12f23b4db8cccccce4ae0c0c63708e3cbd24c1833a429aaaaa5f598a8f6e44c1d34343da6aefd3957af7f9818b8fb7d263e1c0b5bd592f38567d1758846d92991c316e925636253d6a985aecb8c6c05038640a385298f1e8c6d6d1f199b377de50d465b45eacd139161077aa7726e0720a3f60a282ee84ac3d4370c2e8bef6ac0705eaeb740e3fe9cc1ac5dcd34950f332158e7612df96f86607eae7f03dc6701a3693f860a3c1c032cc59d58ae3e16ecf752c1c783b293cdbd628f4f2e14999ec57bd18d753637bdc6f3cf3b075b6754c242ba18b07b42d3963fb32b1991130084974fabd65d547a9db5e4a54371205121e9e703e6283c640d6aa109cb0c8ee7f831c34511b73124948c768b561a38a55bb6e2ae9b944a243ff9e2d9a7b9e6a7d835cf68fc69a00da8e14d427c763b99e2b579c384df40db23ba35ba4d3bb177de9f200e6fcd803af00d5eb422fb0600018bff894b02ce3e080de36cd235a971cf5ce95ba94a20ceed0b5b7097179b73d00cb7e982b4f80524069d09c97f9c76363ccd1d13892be80c7975f3d461572e97463c05d101cb8f35f44555f47246209859c8ebc6d3a90d0cc5037a00da5db9b494264d409c7809df80e695ff8b35c1f26259b694b735d9cfbf5df84f3d7408ab0a23bb31211703527f227d34b901724ff8af3fe9beb1199c14977eb6f54d18308c362d7ecf6ce4972c1f1c2c377c1b25aef8277a9ca7a43767a29f0f636a886e4249716df8513a1e28287b2e96a0899f6c15c403bf51478a7bd1ebcbd0df92979b16040d3e562a8f9918e707a5e87ccb5a789e5f6aabd46aa8171923c2a617a689af22d80c4134517c8cc62b79d423efe80526a2aeec4e50fb3b961a7e1ca093e0973127118b022040796fd34291b10c4171164a648e80a0b8a5ffd784ed58d42de091dbdcd748e6856f63cae77b119f55a25167010ba3eec3114f12b83f34b81bc2f4ff9a1122f23ff0d1a5190bea84252d481db8fb1c36928434ea14281551f5f3b160edcd51954e277e0eaf2e1dda015ddc8b3ed6ee4e1ace24d4a0f53abd04cd8507a0a88ce902f2b37641af73a1e506579b4aa7fa9a8675dfcc0de19dbb31e429e5b0acb182257108ec81188ae62567897f33c4fe178e18d15e181bdce97d38548f5e4efc9269b1d9f267dc5f3f381d9461c111d3a04b21688e0842109023a3e4766a34593673a400863629455a75ff8288df8626b9a4384e1989d45bdbeff442c7567d33511666138160c1cef0026cd4ebbb414482e21748e8eaa3f682beaccfa20d7767f49206a45d0e02370b2fa0c9b54e7add52184cc2989924197e943f124b89cc139d9a3b7f6de5062798e0e82acf97f8e72ccd146b1b6463f8f869ed0b8f81c49903a842276c674190d1229a81a1ee6ecc27468ea96b057c0a30a176f2b62e14094b6eecd2b575f3b0e4fd7751e8879ee407935a9cbc427da48d2434de9eda5702ec0d851c7552b312e0f1ecba12d48707bc9895a92c42442ff768f6ff05ecb5b1bbe7fd43557414288029010e2574830eee24f9a14c3e55712680e935cbacb69a4773975fd35b2b0de0b0b06a2467d370c031779674233f20e7c3cd71dbce7e953de957e1a6fb5663fc2996e25c0ad44b5f11e2d2917841b614ade5cf884bf72bcbdb829ff7100cb5d029429bb24069209c141d2109c3028827816418f41128e76ee582f37e67d63df1279c0cf95cb75dfe501fe4d3bc71e7ffded7aa23b558f7c29e70c1eea67ddd9c8fdd1cdd4f7eda97fd89ebf7a15cfe3ff3f5f2ef757fb7c071f38f48e6806c9cbb31aa74c19c7425826ef8a0ae4e5cb1ced937eafc55bace16fd609e8767b2a6ad86f6d5e194a68b7ff68267661d175b4b6f908c703c4cb31cad151520c440e828348213861fc5fa12873b8ef71c73ffd2b777c5197d3cb38c237ba7072f4990a14c6a63bea2ddfeff47dfc973b7e57336ce78b735d050b07fae6d608b9f9ef692c26b26fde6d7aa7f5e4ecb041c4beb4e336317441f62b466580a9e0d1088dfebbf71d8d2f859b3b74de59ab7cb941b3c702208a3546395f6635fd6a68717f31b4aac0282774bc6fc1605102c39e2d66bd93b922e154378b7630b476f231e0cb51c58281da22c5d6e47c9da5fc713a32d56b1c6fa3dd738e755dc95eef67e5266479702903a03997d93ba526a273a2736e9427e5c1c7a0f715eb3c55be6d40a349527f6d741f86881a84232207b48c0b75ef9acade11629e87bca1564e35a5a891cfc3f0c5191fec99ea2f7fcefbf3276d138ef021ba1ab2864170c284bf047526a2c04f99b4bec34fadb77b7e6a8803ab7efe858f1ac69d5838f0eeb8d6bd433e60e1ac534146760176fb7b4b44d8df4e73e493f7ed95da3fa4de0c1c7dd9626c2939764fe3fa097bca60535b9aaa3e9fde05ab98a365f2b99be6f19c7f9c98aa480891071242dcf60b27a6a85fa84a4c2b3865a1a98440c5c0b7ae2060e339160ef02a67bf39f7e191d42db2e794a3f7ac9cd92723979fb7b2d1ae506d2cbbf6032bc021932ef92d95444fef776ed3072e3457ac7b88c59a52e7e4562d550c6a1c24b0fc4af84df6754f12e5fd592bde5b5ea34eeeb2316e5bc723c73285334188d0f6c7512a9b844f4acf14b2a69528d76151ee8ec7cb4e97c1da804be339f1c2bab9f75e70e3b0a1bcb58076843a773a59dac6289d0b81588a1267a6c66b7d860cfa51729f4ae55322a28318824a088ea014c10973fe2cf4161226701e357d812a624b71fc58c4c73294e088ab4d950c74148e21d0944935d7dbe5f183a71cd1f1397c410a5210f93f19e4c057701bcf468c2f95e95bd84a293a8ba447ece1bb24c66227b9ca8dc83306fa1ffedcfeab6c57ce1fdea7fe4a67ec34ce785c859777775081d466163d8fc1d5a57568dfa98d3f343f7683eb0dda3202a56479db30a49e8bdc9fd5b539f58641c4f0040f5d7e93641267a0b15ef3be79a6350a02e05dc0eb013767e6dd9dd37fd7ddeb6561f2ac31e8478e4022b18ee803d264ff3084407dc7394386ae6dc9db782f7d34a597fb0a31d63cc94b8c72d4180472faed0ed5bf9f99f0a57fb060e0413cf1ba31a57950474f7bb6aea25d76dafd71ddcde36aef282f7e0ced7a77cb15903ae1f36a6473f6405644cbab79ca448f7599f9756126fd3b6cb7a0465c0cafed30d03e100eda0dd8d676dd94a874207cda6e7b3adeb89fc356eaf0ec994d761e7357e1ca593da97d3f7f24b6e0a0b15f811510846938ea85fd7513cd0135603fad9b4fc7ac5b3434757136165a532ef0805ce733b5ec0d8be3656faface97346bc3ba2865e1090cdb8b3af2535b565d1a51c6a10a0f90cd03a77f4f4125c15f73ae892eacdd3b88b6ef1c5fc29be95eb4373b6430fc67a98beda9b549f1ef9f9b1d8a73b555c268c5d2ebad202a9db8cea18a128c382816a9b8efeed5c97fc5eb423cd825e71a0bc4ee9f31017dae7537263312f53ee2800ac66a5ad1157d66f1ece9288ade2baf17cb986955847e67679f7c285c884e49636f41dc85af9a7d31322fe95d416314081dac955b1c3512516fbc8b2eb46c55cc93bdbd72fed4d80e4fd631ff1ea4170809a7b534708d7c0ce5c66b5f6f628bfa085a09f5ac32a72644508b2612e0ad705bc4fb97ada9e995add8eb31ac2ca51c6d63f5097699b0fe33e4f72dbe5d273f3120c581282038bfe09104fa06784ba9957bef0f06ceba54d2686daf36f5c6c8f49ccbbc0d1f5107f96e9bfed860181a23ad6213f647607f7c47d1fe0cad7682064d7fe4d2ed485e42e1387aa4864a75b89be669d381bbb9b9df68f775a875358301070bbfb78933d17710d1337d759f657743c4f58a75fb432f69c388a4c7f43fb711df079e8f5f409b0b468147d458cec9457641a45bc5975b5a2b5147450ffe1c6c2d9af2a09e957bfe59efc7fb8060947cde92bab155c9396e7946fb432287a5b3c9ea95af6ba6a35a4d1eefeb4fb312fa0f650eb942bf855b2f11eb670ca77e677d5cd296e67d65d662ecbdcf20e23805dc7b02880702c3280b53f51f57d0504732eb5b3d01335d20c2f8cdd7968c14c5ee47271f1be3d39bfe0596ac3318f6108eee2082ab8a3c8a61e839004d23f86d31068fe861c2ef8ef0e97ff35876b505dcb9bcdc938e33c57f156ee85ced5fdaa0125e26f53af296d81262a050c237e054e4376f106cf079890e321529f0fe3e28d494fc5decffc67c369fef7e770e97aba3b3bfa39ff5ddead3fe03446064e267ed2ae725e6afa0e9ad2a60afece46ce3e9aee5a92b25eee463e41da32673464250dce4859b99d0efa7ff7fedfccef54d77d47ba937563c3402774f716dfe349ad4d8cc113e81bfda7e1266212c0f0c96b7b42141bceda58bc0ef61caccb7a1c6176f11da1f4d5f598bcbb36a61d46e165d35ae4694f6cb5131e4a181a5313417148267e97a713f2714f0275f0c34d440057572b75b7a5b097e0ede0ea25b1c51625825356c77086aa691d12ef486f60320119b257fbb9481ce5cce019c301efb95f248dcbdeec66ebf6b357a61f2e6c710840df85ac552038613251848981f028e2f91729ff0fca75555d7fab22dda9649e6cb74438ce7977afeff3171346a8cb1d73077df6f2b8dc9702cc5a42111b535dcd4d51777b13d9f38fb406bcd62f36bd1cc93b6543f83698e61006ca04c141f77e523298e83f67f344c15646b04868651bea7decedd48f20a6eb4267ce6e2a3f64d9b8fee1282b1c03c90f55e814df25d8021f11ca9fdd00d47ff93fc80fae5a8abe9cf41a93129c41cc69caf4c29d44dcf2344dfc7e85d7727d425ab67e6b906b79a5e4c533056ea481d113020cf9eb4a209053c323c7478a955aeaaf9d56ead2644f3bce32929039582d5a46a6ab1caa0a64cb2f225a809becf3400dfbd33f1295339eb8dece17295510bb377efc267dc95c6fdf1833959ffafececa490ae329f1fd1783f5ae5d60a87a7d8d606f8a42d7fc535b79e257be23fbe85c4cdbdf5606d45a99ab872a051d98d3b65edf565a4bb3f7e00b5244b38412f1b988529d2316ae7a9c2260004b7fcc52fb34f9a2a83a78c08ad5488418aeae19c65e097dfe904127d8321876225fd9f67186f7d66d99628a538cefdd5d56597e764dcf403fbd300894ff4d79575386ad53453e84d577e7687c3793a92f3d225e94fe52a51fcf777e6601e797ef54091fbc7b5385c3e32932ec7a2775ccb845a13a039678a2f2a2a521ddbb2e0f2153fe559bb7cc8c3b39afc140dc47a740963ecae6d0f976a7546e294315ca532d397ed647ba37360f95b0d7c70392b187d843543a0b93cd759726cd1008d468424b17c9f9b754766f0c0d5a88b1e84ac85ad9273516c91605fffcf9e72bc31552459e9f0b6faae36e0a331633ebe7e48bbc78b1f6fdbcb99e47d9f690b9fe240016b128343fd72d414a2fb4cf95c055b472df4709fad5e34b1bfee60d699d347568ef354f2484b909b9879eef73484cecddbb176aed1f4fb81fcbbe565575282fb26c751a1e030681ce7f3cf4c93e0adbebd1ac9ccff9e28dc1d4c6c7b5918efe2b9715f4c6cd93a94a0fafdec421d501ad85911673620b5f2d4f5ca2ab3b9d7db93607b8d5639b9f56c933b9a393411303f1c1413c912cc4b2485a233e24851837eae6ddfcf80de8dc8d56e9dcda9bad2d5177ee798fc23110020fadac6fea00fd8d32d9f01f6be3158278fa18df64fb9932d975fe6a77a79b8ebb87bc5d276abc1637107e2c3079d1c0ba674b357b7b714121f71e9efb61bbbcff8787193bef6186331c3150d70ccd0d8709de184ec277cff97c98e6c60f7ca0d1f385369058dc5a9f94e6489ced383e5557b63ec33ddd8b338ea81a5ddcd639b67a71a28fa5a7345f69aba05c79789eeb4ee0e307c898067289ec4481a8c9a2266b16e78d3b7ee67cfe3788e3ba539d2a26cc0cd33718294ea85e5eaed33dbe32ddfa8656cc8505df692b0a145db590582b5b1fba32705ceefe9026c70689b0dda32154b97424551d0992541c90a56813f99800a1af902237242868dee3c1c8332da02c26496088baf81ab637edcf492be95f92568a7f67d24a39cafed0a37bad7558b8fc7176d64b47eeb1063ff89d7ad63fe0710261e100dbc221e510f98117d71eedcb2854d22056cfb1ad6af2178e67587d65c6cadc7f1610d3b94fcc7f344470a0c0ddea8ce11b49a93adf41f0ccbad5d2aacf01f285077b31e0321cb804410b4152691422c13984a810b2f7c1fb54de90d0e0a8973e5afaafdcc945bd8563c09a731e56e93f56fc0dbed112ae855a1cbefb788ac0ec74ceabe7957d5c5a62b75a7e74fb1edb4715bff2fbe189e7caf7891d6960a6c621aa459179aa854feeed123da3c633607027d8e0ea93faab6fcd144489541ca3ce09f5648cb02ca708a247aa830eef7f1a3210b7fe86b532e5884d2e7b5ae04ddfedf1c3e7930b40833e768dacdbfd2c20fc6bc1e5b9d06bcc03f8c5bc238707e9d670cbcf961bb9d38f1e9a0fd81f7fed8a780d23c02a2b1ca36ab76d32acca3a647370087baeade0d182579dd75dbd90a083cbe50ce8e2b59bb07f11b952ed47ed54f86107e790a37181c7cdfea36cbc6d1efe97a88adcf2c40dbe67df68bfa4c9e93d91a7aefa495a412522eb1992cc71b4fe5ca7e162303af014f620e7706be18b69eb63f0684145c0521225bf517e91c0b78778b3f418b7db7a8720e0c097db68421768446f75350403b686e0c0e69f23c2fcd49f6719942177c72ca558addb2f95738640e8d18825f7bb3f34e1b4de3efc9573834561585425f188fd65b2bc4ae963ee42031c2f7ec8ade9fc0620fd157f343e6fee4ec1262c1c302f0e96d232b9ee34bc14c45d72bde63ae319c93aee23fea0b7d33731342ff42f01ac2f22f4d3a5041758a4430556ccf812afbf7844c96dd00719be3aa5ef503f79125d01592b4570c2b8be762d1856fdb391ad9de054f876202c18c84ee86357b621763b14becd5b3c4bd8e32b7e2cdb6fe669548cd290cecca6d975c06ba96fbc5470e096e079c4a6e213935747db0f84b3d67b4ef8a7bab575eb4e46630830101cc15d04278ce92be21009ff3fe0f579c81c52a67ff67c336bc65166c25293ee5481c2be2375967e31a745a4d719b153bfe2f509958c3ed4c2e5c37e8937b5fcf5b3b7faa49b1547ffebf5f967bd3ebf8db9c7d0524b465eeb88d5216b090d6f03eb00534333172d7363237f855301de671ce5cff8079a84b8fbea39bbab69ffd7ebf3efb39793fb15adfe3c6544b3a0774778717095d7e8eadd37ad24a79b260ccf335166d6fb91ddf0cd1ae5608e72e0587810764cebe050c1a4a4710be1b5fb6ac846c7c63c66fcda929fb078e5a92408a729ae9e82bec9bcbe15ba79a2e4d64deb738af7e7aafd2efb02ae0763566ef1ab5e773f302a2bf8e0107f55db91de68fd77941add218404f553cbe8e790b57604272cb2eccbd60503e7a0923437fdd5a36fbaefbf70f992efe5603f4f02ff2238dae9a464c234be33e0572a285dbf64695b20ddc65ae61160dea19dfbb2c15d99050b07b49e04a0b77204ba441a3d748adbe9176b5f0cbab2694e07570d2bc30255ca4e0361cfe5c825a3cc62865e8aad4eb0aa77ed713c359ec418fe4036dd38d81e940dc140a4203888188213c6f8151eb128fb3dc856fd5f215b15d041be52599765ce43f6ab3868bde7200a5af63b67ea7f215bbf6e17e0b51bc0808cb4d4fd4d07d37b2f071bae49984dcc11442bb2e796f817350b58f6a4112316809359f012bb28a9481a9d38978f729b1768ed9b796bd7a1de646cdc24ab43fa055fe357945fe78c4f178a704a27408526f4ec44aca047ff6089a86a8aef15385a73f841b9e5ae4d1d30d0d778692b3d1f25e743d69111a17c713923f0ee99809355ac6c5ce5cb57a7ae1300819e20eb8f8bf7c5239ed54f00288e0f01340e8f9edb44f8bb97f55b34cda97463c0c1101cd81fc10923feaa78dca440390d7da03f5c4b5d1586cb8f8a25daae467bc4de88d90f3a903504c280099ce7571eef125853b74b3390d0cdd9c3c3cbeb6f8fb6000f0341cf9a5ff9fcaba2371667af519582f4b1f7777aeb1f6c9cf7a5eeb0983a8e2ed25f3008427b24bb71993bfa3b773080d2b5d997d413e417018a6d71051695d38a395b84c32af65e1771f7cf81086299e9d5ae652da2dc4f966060ad201cec29602dd85e33704ed1e55df4f858c0dd99b663caa5e41f88979eb81db108f3103c6bf3f3b1c3761c2c188d5a4b411077206912d291300b715462e4e011878b2a87747b5aaf5ab4b2c268115bfab1e04cad663e0e503ee023e286cf4ff33911b5f06197b58df5d9c6927576b179a2dafbc41311a722bab5b66109a5160929ef003a4bc2a1e5fb33b7534693ca3920e12110ffa9840beca9fe05ace6f167294dc830602d080eac86e08411216984693f7fa0a91da89d6a69c42ac4dfd95f42588f7e867c2887fb74ce127df90b91ecf11e8dfa5c4348922d08aca6c4e749013dfe7148cda84d288b3fe8a4a1d72793039cb4df6ab9349deda4c639385f76ec1ded17c7f23e332b134020501001180c210481c190753d514f4ffebb7780105959f27333c3972b9bfe9c4dc5b70374692783065f91f1bfac571d66d7f76c5799c54f4f3239f7fb85af00b52a19a61c941f85951f75180e87a90114d8d5dbfee71307842aa265297adddeb114df6814181d0b30b99b9577e282bcc557d80711c2341ce57f48e11c138ef7fe4587f21ac528d1835eab50682cd4a72f2c654bf3339f460889a34547b662c0f915e5d5b4488eb7ddcfefb1bcd1ce7bc568d7e4a86472841d3809a667d0a4ab61d03699a196f603a8e1dc8e6104cf23085794de27af4edb54a13dd73c107b9e7d32a310c6c4a833216129a377ede3320fa88bb289d7355d3b7eac2d66a437fcf581c79f9fb76a0b522e8e320941234549df6adc8e63aa31a02c717ab7577ef8438c558e9429e0c1ea30621eb7026f82a0d05d57fb06ee7a50262bd4110bb0b7548f897be6167e2ec892f82f3b9e0686aad9b4e52db8ba582be161adab994ae3b344fe62f4371664b15b7ad6204d1206ed27fce82e5e53f5f83284310c3938bedd7af402bf5064981e20d4bcbcc753bdce8777480b4d7f3cc69ab1bc917a0356f47e4effed4d2ae815833f909d6a4848dd1612d2e0f40be9d5836cfede0eafc6e698ee577597dff4cac93f4c328505039147a4a800de7d70a5d352f06b8e5b09b36c736a16e9e3ba64e85ad63b573f28031cb70a554b9be45109e90a76dbde0ff7db6f859755cc3b08df57ce72746a2972c380fd2038b0f727b9c0635f90c39e8928edf5c9e3192c1438dfb3277dee18adefdd6c3ad70bc780096cc2fc10bb0c4ee0dbae555d1c641c2464c525a45c245c649c1d1c651ced5de4e5eded1d9c9d9cc51da59d9c1d5ca4ec5d5ce41c15a41cc51d5de41414e4255d1c25e5ed1d25a49de4a5f131a3abcad83bda3b2a38394a4a48494848c8da8b3b3ada4bbb482bd8db4b3a2828c849cb3bd8bbd8cbdbdbcbca4a29c8c9da4b8b4b3b3bc9c94a3a398abbd8cb3a284860e1405dc1ea06a977de6c47658ad7a2e4986749686574d7b8c405c721d9cbbe66f3a980ad9e44097430b68a664ce584a78d49909a22bd69b3b67d766cc05e1748432318438a01e148ef02c7b06150dc40c99cac30388d26fc641f6e8fd72bb257036a33398ff77f94f68afdb49d63808c201121d4f3f7dbf4ecab0c66f071d46b91cec4de99131afb945c64dc4a3cc63f6de79d385297aff027fb28d63667d0e77f1077e7514140ecab3d35e9079688ca93c4d6684571858a933bc1c077f0287d57dfe0394126dbf2e020160e045af4d79e49e9bf999da8d9ad4f18f612582bcb15eb95333a5d186e981a66c30f4029b38f38544bb69c1d445be6110a5f152b5e4a2668319bec3cadd47e7129310203b681e0c0169f7978f48ea87efe4046c4512b79556f86a46e1bf28e4af1a5a5b2944c45e8efff7ec6edf605aa58aa1537ef7eeb871e956313572ee40e39ec5269fa25ff73bddf0d80d2bcee112ad467a6d3e8588905e18bae5fb1e89e89dccb82bfbf96b679fa68629812f3540277b411160c140c169bea87750673f8664eec153061db2c6f9be4aa903b6af076a4ac6ea8511750b6207e389ae4c4ce2790e37de3f04b02fad8ace82c71c9db71c949b1dab76614bf049ba4a9a0485a236124d165d71d89cae0180801afd859f0afe862c4c28d3977296e0bc98d3b38bb0d0d501c274afc71300a4aa18a2f90b3cb400fbedaf2743f194c2306d5edf876e85f7e67fc1b223e7388ee015bfd1220cb78ef686c3d9ddbbcd304d3521fee778551a083cf5dfe0aed70cfe4afc8a4acb6e2ba47f641f81685ac881e5a24faa5d8d4ad7aa623c2985a5a204c7289fff975a0d20c76209543532168c29c4149b6be398c5e6dff4670aae71a062203c14124109c30b67f25617c3aa2e71a7eda262ee79aadcf038c7aa1e20355b5f72c42e7a4b9f7fcd726fe0fb789e100b5182bb4ded60d3ebd19b639cf1e139d057b6f1fea04c3961a2aceb334d98201f0233efd418534f58ba4d922319637c53296054e9659f3d7cef26e5db79bbc12f9878aa48e84923e4642c9f97f21f965e445486605e6cd5a53b78e38b3fd0599c8f134032c1c80dec4d99a9ab48e37a4392a121f751f9a76381892edcbe57e7ef8846cde492a2540868c7a84542eb633b26a9085e555a6f9f892ed29915b0c4cbce367b75edd38c5825e83acad203861a15f2d758d645482c8c4f3551576bd5bda424dd7239bcab91bd3f963bf508aa0a332230d73f074d737100ce8a35937cfe45c266f83a6e1fc47b12fcc1ebbf2ef662c3c3c3e8f8799de7e9781de91a104252b9a655dbf2b2ba79f726c269ca1ef3e10b2e7826a313f209e62911b2e10d50089a52cf4f3e3d9235cafda812e5f6cad3ccbbf963f9566f835a54ce48b62787701b513487f075de2f3c5f5d2174a4573facde4873b8a8d17f2be23ace1751a649b8dc76793e791043bd7b6e5c2d99629dd479301e75b21b0b5359ee9c98928d54e9998f80816e080ee47abd761f57e95f3dc145213a2f11385e2be540a859b0e2ea60de29947ae7f9518fc35094ee16725de2993ff3b4be5e590a65f1cade1e73e16ef603a27497eed14bab8453a67f549dcb9034a41a7e6e166ce62b091cab97d95004fb5bb75fdb536f1929ea002c66b2721c1b31bccfb6bce6b8dd7933070a81d8cf9133f4a2a82fc09a2b9e567e34f3b252cff44da5eef75ff78c651326f8e0df980194bb93863df6b9bab3e9c621ec5cc8ef1630b82805c63c5fcfafbebef71cce21ffc674a39a8fdccae7d083fd542ede45d202949518da1d800e128d6807b9453c35d458137347a2f0aa9d224f32f9d5075320ef5cc3bec1a7e79ffad65ef9fd75d5fe0286e60200b38c82c927e39ffb39e42a1548deaf234b8c5dd12b92ce1865b36a699829ccd6a6c85632051e51a044776e92cdfadb31dbd4b500e9e64b10a313ce29ff80da01caffe7a61596f106b4e9ac44778e0986987b4d7b1709786c4a13605dea180741e477c7ac92eefff619c7f4671b2a8acb0d61c9156e85db9d5ae2970875ac409c537c832e06f9dd6d2ebe2edbe49925bc9c19b75466a2f4a38315b51b1d830e0ecaaab3bbd76fbb94e0c094ba15f7bc37ae9fdc1204bf8701e1916e3ce84d5a1d6988e97f6601bcb297ed874e65eb12fcfc72d0add49dfcd2ec580eda0eef283cee2b6f7928c4d046f55b291ff0428c7e80dc8e7ed884ab538e3ab8437bc07f43b9bb44ebb28cbce189035586c53d64d01824f34ba9babc6abf4621af4c3efe50e5cbe99d910da1a9a3cc8703220bc39a9f2ab838610611a8ea277dfe348606eb3e0af62468b1323bd7e9b404927165a33b5b05907ff9c975311cf97774d85b927b0b1b0d8f4bd3d599658dd07f6829432c46100b1ed571c0a88a759059bef07a79aa79b5a515fa2d3eb907c7ff869e7709a9784aca2b50ac5d81f84a7445f72630b9090bb237f9bf094aae1a5c87767a87a5fe50cbfc42ff17bf57bb0e875a8cb3c929bf69a0d572f573f9959c4f9e375e2d4fd2b6ad3df243cad1dd80e7d9779b195c49c3fe51a0e2622421a0d5f91a7304b97551b8e657bc2021830e936543213474b7216e4baa88b3833acca70dd3f9f3de7c71403e2e82540fca1d66820a1edc64868c73d2444dbea6789f50aee771dd5cbdfa830225abd7de9d8a03521e9332c18385e5d976ea21e3e7b5ff5be3ca66ead2e5f246e29f3f8999ae9fa8323cc66711f81d0b5b3b1be1c9b51a54d3e9803e71304674c741a231d541c45ee89b4e452c54a632056101cc40cc109837f499025e275460958e54fb5583e1db02da663aaffa048c4ecb49f23864aebf096b60c063c1a3dd3731b4f8f5ffc9b70c2427b1b5afd1b6f2cbf813811417368bb6d071d364d2c47dddb9fefb32a6a65dca51d80070e19d587e707986f12c1fd20b4649e69deb7b8f656f91abbdcb95f6973fbd9fc5b72ebf084f8e5470c728c324613e7bd8e53550c59ac793cd74429acc72690cae60d7a1defa3175fc5b7abeef29db9f09c6d3f2a3ef5559187b4cef938a15e53e630fad41273963d994aea963d4ef6226a0cc36b61d3513e0a1c7505295f252d7c78e7f29d65c68f17f2faa423617426a1e4efe44754f71c9c0cc5c07a213858178213a6f1355274e2f58f797e9d7e03cf2ff04f4354d4ae5349ed697d1df706de1d33766fce7e59f0c3b250a13b3d4ff520b5c665b7e05f81a8746aa70ab8bf07f21913b239ee522fb39630ae95fc674354fed7f3fcfe3e888a85afbf9aa3a18be61953e7935a9201fef2faa74f3b07f8baab396ab93ada9f392c69ed6862eda9e0a02da1e9f60f4150fe86d6fa1b787e9de4151ce4c5e5ed25a5e4251d649d1de565e4c46524e59d25e51ce41d1d1564e425ed9d65a414ec5d9ce4649c2564c51dc4a524251cc4a51cec2525e5e4e52477f5fec4ce01a715e5a565a4feaf42781e6d520451c55d0e96be657a7edbaeaab1cf86aebd60cce26498bf486316ffec1659c3b5682a19484a237145706f7edbc05b2fe3ce943b0d03991f52a919cb02097e02c213b7a478c2df37af91007e3b948275b2f7f209f762eaa9888737ab9f21c9ec3826008d278e5914ab94507da51c4fc93325655b2fe53ccbd88dd9e863af85bc8eef77c670a880701c07800f6f8a0e0df0238d60e371c77c55b264f65a76b739842573575fb2fe78a79f7effcf9b7f5d38f66974edda23c4d3f928c73e927e24817b354aeba689d5b899bc2bb5802dba6bfb5593a5ec997938da1c04fedccb4d4125fbe754f8bf6c68879bc9535e3294f97e1a0203af348f19396ab37d9407f9cebe8f2548226e45b59e9029c9e4fa4ee71083414c9fd46b4a54d2b9c8d96ceb178e73aec7e1f7e3501bb20fee28c96cc7b1d598f321822b00e9c3ce27144dce9a4e3eef6cf3b964ccd4b56af8625cc8dcb2bbd5b2f42143c82cba04b276f3939a67ac1cf549cd892212078190602c0805ca3efdfcd3a3d641d1a06a55100b3f7a29188e56746e3f0e02715ec768efa478de220c0537aef8ea5f737b92793b9b3bdf4838e7f5a7d5f3111669f5492bf54f84182343ec57fcc77b8a3107bcf6f6a0b7cd839db3ccb544ad426649d52b004571c4b9b37029ede895dbaa191ed8c4e1b6961cc88ae0bbdbfa567bee1129afa273d6b2115005a4f3e36924c3810e14eabdda060be184791119d9a0caec2896a2486e065e0522380c1201a9805c41dc5077903c940a0405517d1592e2827f616cd9c01f5293cdc6583ab71fa742a88b005d966e6531d5373c8cb02a68539e619dc4bd6ba0ecf769477cd60cbcc9fafce801dae4b9f34af0b280cc45cf1b517a55d4672755ceeb0f931ac2fd6b4bbd54d007d0996b971090c5cf02d25a7d47c03210f45f027e128fea8f13e07f8a363728f3ff63efcbe3a15cfbb86786b164cd9e25642d61cc8c59ec599225d97799dd929d889633666c2591648d6e54225b2a99738423155a2c2d2a11512a8414a6c2fb399d7aced3fb5693d4e779cef39ef9f8675cd735f7efbeeefbfafdaeebb77cbf7f8aa60190af92d7ae7c2a1a6c3670f599416174ee6e17c46495e8fcdd2982ac7fc9d6679701619ed8035553672256cf1f9bdd993f935265a397b80fee878551c4b28e6ef497ab3b31778c0669a4939b47e9d2325f10ad4e0f04fd38796b3e4c5f24e4cf09fcec14aee8f56c3d716e9a0afa28a7adaf6fe54061e71dedd2477e1ebb2ff89b5f70570bb0e17a31e27a4378ff030361c00c64ae541dd9413ba435a2148f93177b7e3f64dd847ba3ec7a9e31e52b309d130cde1c266f26e47d29162fb5f2f384f29c92f316292010835775a984f24bc21ef87099af7e9c7b971b3d862e6f3cab6a27563fcfc5c28472372d53fe9f4738ff2dcfe76f4638ff3947eaf29eff4f249cffb6f9072deffa4bdea2408cf1e16487287c08cb4bff10f9974638bf948c856f5c3f6c4b79bf58e9bfa5bf7f3f9d70febf6afdb29a9fa57385fefcf5bb948cf3ffc6f5bb2cf99ddf95fc9dd62fabf76bb9ebfb3fb07ed996393fc08f0c9c2d7d7ee47dfefd5b05b899cf3541780fd4677b95f341afa78aadef1e8396e7e3325ae6e3f9d92e14b61fb97ff99e3c9684c371d7fffdfb6750a357fedfffe8f3b4d1c054ce4e8636063bacab10d1fbe378376a9bde30d7ac7da6e2e0850326962bad9deeae229e5fd7540f0bcaeb36786e59056c78a145edab77af13c8a646c4d97367f9dd10dcae5c8e7865503fb4ff767888665dcd5cb52c5d50c395ce16e095e1e8d8e11477e8e82f4936877b8b0dc7eedce2497d94207066f1f4cbda3ad3e943325e2c6eeb8b58437c03b5674a487f2636f1e545139eee3980f69d4088184f3f84a49ee4b93c78e08a40476e68a981b77c03a0c8d1f94e7822fb76927e8abe2aa79f77597c2dc6134fd54f1306df1552595ff5b15c94ef43fcac8296a9fbade8721d51c5bfe67a16e79c6fdb1571dbc6436a34d1c6e46b77c4516f60d4440528b367d7ebc42bf1e8f88ef19e045799df9df7bc05e17f94b27701ad9ed1932f0e18c946f25d75aae849f2e6e5f218f7e77eb95530467d85afad9af68663a8574248069813c204b3d1e4a1b4e6c77470ae2a1d9c574967e33cf2817843ad77aa111e9d8d621b533972f9e1bf122c0f5006ee03a0d554d0ea26900c840a5a0dfee38f67ff0e7737e62e97149523034efd68ff033e5181c3efdbe4403260d3f749993c9f253f590d79df0d001950413c6dbd709d1d230b27cf639a9a9582d2b7f6dc6a6680561b8156734544137c268fa6e780ecc120890fb280563416375181718b5b13594de97772fa4d0bf7702b78edf7b9829550aad6e51157659c23374c033bd7dff3cc7ff7fcd9606669ad154fcbca8e9aa329e739e7dfd5fef6cb45c3eb62610c702c8409de4d9387c6b67ccce5397d964a65809570549c913d0e4475c42f2eae124b73425245f12029171c883aef618b7b4bc583d6e140581c687ae17d4f24551427f0b1951d258883bbe040dab801692a91d7c9ef88080eed42259e4d637f2682f370f178df0f0772c499a6e11717c5629d3d704676f8c5c5b48362b1f6383930cec88e7a902d6dda0387c7119d3d407f0c70c4810fa6c5a6e162d2e2de0fc2653a7ba4dbe2c1a015b18eb1f8c545c82ab134fa1f0d10f134275b670ffce2626cac189d26064ea3d2568ae21a5c88369b7686e206a470207bdc4a1cbb3d4e11079af7b04d3f686bebbc5044f20ba184bbae1192a304248ed90af9c6861d3ed62e7b7928fe6895a22ca6cf3755c44e3b8b5b0e944e0a0f0e209a80b88440882630901aef7881c1e0dd5961f92ac0010e3647c7bdbae4b07d1c6d0ff5af3f33988e03d6179ebc1adf5e53df252d566070b061edfabaa787dddb4e385d557be1312a77d28301664298e0d73479a8e087a8235becfd8cd7a64a324ad3dd26c5db38474632d7f9a41e563e9860b9de6295e538031c6797e6fc0971a6c8a81349de70ed20887e7ff35df68a97edf6187616ea81553ad6978f653783fade0a3a242df3faacac2a2bb323b2cc6bb28a0a821300969ee3092bf33a3efdd1fb6f15ba92bca82a148933f1d60a71de07dad86d642e7419bb01d6dc427142a290ed4e6e4356824f4fe8a4ba8e854ab49a594a8abfd3a6b65679fd552829fb1d85925b70af4568f4a66acf99ee424ae4507b3deac9fa1f194ff92729f4c76f66ffb05f45c5db5e819f44b057bcdc2fd4d5b71f6fda612e28a01ae9fe2c0835d53c660f04fac2ee4f1d09bc650f570958bb72ad0cea8463188283beda9c3d33fcc1be8c36063407c2841ea6c943d17fa6c8d1d994907f43ced82defe051d9d78c628eab321db141eea0a6d0d19059a4283aa520c2e4c6c5c17bbb83864ce8dbea7b770e3862144ad20497124b7e5b5dd0d5a750751ba776644dc7e3d935581c61ee9f58f2df2496ec48f48d70456b138309a66121e19bedac0337a3a24211ce11d1410e2ebe416e4e61d6583cca6ab37564b8edff542c99028721115a78129a4040e091043c810c2393f114324c4b0b4dc0a3b4b044381a8e216228242c12af8dc16821b490042d0c8540466a119114d27f3496fcb3e777438aca80d9f9aecee3a16dde2d0c23651b7646f4d60ddd31d58f09418db64ab61e5cc1adf8c3ea1d0adeb59b3ded135e1e38c1756250acd745cba9b1f34abf52f1afaca0949ac040cf5b95d9f1d2c4acf6ca1c7aa037fb7a6bdffe3bde2ec1a12babeea8ddbdb5b80a20bcca3b997b75bbdb73e004e6f942d7985db6646e8bb4a15b0cada898af39fec85f169de3836e5e8a453f13ed74e53e4a31c79416d1bc6f94ff79c06b7df03f16fdbfdea2935f9ba320dabc02565c38b485a41053dd60e1889b28532b803890db9d127d12d865acaf20ccb646e96c1df14ecd8b2d39769ae57ac96f3646ff564bf0a15a485f63406f8398d02e20f9dc96b3993828c7c9fa9e1293d3efda569d561133a39f7fa75403b7bc77b361fedb33087a98501a832d84c916489337a083132ed257c75133d239eedd9d9daa113a268151e9e61b5a375da4e74665b0b1b7e71fc9ff916eb0a58f8790deb8bd7dfaf53e91a15f6a91107e6d7361f3175fa55c259465f648fd72432d5f3f93903bbc6efd24cd996b744d3e8a9d2789d523c0253cc058d6ca6ce940c4430364c0b9f4570d83269efc4e88ab275dddd9cdb236fe7bef7d6ed5f6b1e57e87e4ef61238a5447c656ac3ff4090567d58e29415e9d2391d1556d563b9165a28527abceb17ac6985d53672e743072b5656507d962f755b7076b6b25af947f61e27027b3a69a952713b4c1b1d14d323f2a290111a17a91d7eda0488d616da31dbe8e271375d5f96153f0c6687d8ca41f33ced13524d5a0e7a4c086de8d7db7c67013d7f32c014de28ce485e51086d08cd581c7cec28686edf30b9137dcb07df9bfdcab8f476f1f38a889755aac2f6818aa0903b4491dbbc256ece8a5be6894ee81ec2c9125f94b417cb8d3d57a1ef1b33f05a23ed6ae787ca85df976aa85436595d1c7d16ed7c54c8c865b2383369f4348f77c43ed4ae331bf1ea327ca3bcde21f74073fb979996d4ff4f5b34e93a56aabda0c1b0494ef00bc969b4480e22d4d7e847a42548d63b6c3ad5eb0297fa1ced5dcae7995a38f39ff02d3837c30581cb7c3336c6b479b0575177e27671c69dbd883bd4de68b194e023b92d5e635746fd40daf14b9be8ec5747e822ef2faddc6775784f5d3ca3aeb798f67dc4f85d81861bfd72d0fb653e115d5fcf2660bbc256af7943ecb04611156323551812a824158f7e65bd1910f42569025d11aead231d76d9e4e9c0fe84136c2a316d500112f97105d4ced26d0a3c42e556ca0cf8a18cdc73eafcda2e1f2491be4d26f4119e28e20a6b82d5038d3b163f657f953af770b08882a9ef2d129f4592b4f102abf8aac63af164ce8fa76bd7e8f290e66b021986cb0d8c43ff1849beb323ec70b9dc40953b9d43c849467409a64ef827997b7798580b0add19bb6d648994db35d16b9b99a30a65d27b2fe642af1f6c3829a5326add0e7cb8b42b242f35ea2496ef12019da3db6741895793b05dc9ae337020e7fa9efc76962219fe94f3e5c71e08961c1e1e1df3d5ec07f7b6008394c83bc83e88b0ff2212f6183d815d6b2f9eae8d74d9b27ab731675b951e04ebe85f1fe8a8689bdf051855fef5de8f59c13519ea5451fd70bd00dfd43352f24fbd5d658f2b229de90391192f2e64ec753cfe8b3514ef1c6d3fa435125d81640aded1ab7faa2febd933df602a747661c53a240aeab95f30c4e20a7526d784f6118ec764c761b3a52809d2e64a74a57290aff42d93fdbf03794fd7fa2deaa1c1b3c82c614ef34964f5d1b7e3e433da97028fbaba3452f6358958a2db3948c9533e3d5bf7fdb1c5e715eed621f6a2f65bc73b246240e5cb8e3d19f47c247eda0e010c9c3213190b4f2e4b433a105071ed708a2b8e8a0ba25df33eb2d22dfb2dad9eee2be73edc0284f6a27ec860ff67ca9c38a75870a06333bbff213c28b2f1576fd3ced00deb93057f4650cfd15eb15f2af79b284235d2e5dadc8d8ef05e2bb159d244bc6b75d5e700e6a0f0b682d5dc25d84cf9f10be1a4e391daba98e7877b8eb561f26b3b26eadcfc86ff9652e2bcb11ebab12ad6eed61e661e4e4f4ad0464cd92a2f89bce2ee0359bae5cfdb0bfce61bb631bbd2874ea9a88f3f895bafcd743ca8cc49b7aeed37266b4067b82c812b77b1a80524fb78672fe6b4ee7c5eaad6a91bb36f88b68c96a6c3dfff48122b7cc89dd434d00c913b715d1cf36beb31a9e988ae0046318fa12936f5a06a6678edd3dccef9d5c573e57b69a2ee8d242e7e4aefd99b0fe7f68c01d43bb17a221bf6a4fd476788a23fd86835ea4945157a6c65faddba22d85dfd304509cfd77293cbf2da1edf79bf89880d4615898df43743509d9762daef87c834fec7b78a8d43fb12744ce645c12d47ca67df45e516a628ccfd03601285f6cf1b51f060fa5018474eb73be48fa3d5955cc61d8424ce361494d9b55f56abece020315a1fddd5b2d00a9466e7eb6a670ddd992db32982bcdfec7ab1a9e373a4b0f87c173d2eacabcb3fe2a1234a543776ca343a3afd321417adf582478adbdfe72a3e1c6c4965905c9e33d39e38546473d9ac000de5a24f836deac32b244873b3a6696947cd87ac69c62714ebc2886e348200e01d816769ca696f96dc5b9a55dab68a360f8cf5fb47a7902d0ec4344b5444e0b4531c0080813acf99e56f63d4272119d1df6fcb34cf2d4ff9742fe47e72f401ecd197fb151b76d74ab1bf213ba63ad43c2054221e8dde5ade782aa689b66159bb73c67d5de04065c252434edee9a1fed3c76ea906a46a537d73d65ca8313624f9a56aef0520d14ad04ecf81ac669b1faaf73f243c9fc6adbe46ec5607593b78d99aac73e99168bdfbdf35f28a7591f629ce0df9e7f965f9c5a476ae93f747c399684ff49cd27aad0ed3edb807b5ed98ee6ac645de188bb168f1af44e3551813271cf24aeebeb2fbb6596dec1b89ac6f7965f2b20bd6e18587d74555f9b2d4f3c10266374de65254c4954cb39a2e7a1662efed0f3ac6edda8b0fad984c9ddfb547632a079102634eb3d5098cac7408c2af46f188861dbb8cef44eabf9d6722e87e38c4976bcb256ce4c08d72dc1358b766b077c5437b72cac19eb998d977d27b14effa258dcd1a504622e9d250b3f0f5d6b556234283a97ecb74bb9db33f99f40ccdf241083b77176daa185275b937ca26cb54cb448682406ebe3176d164670b421a1edac9d0858372b5f73bc2d99f23f1588412291442c094e419289686d0c92844613b4b044340a05872110581886842460884832168d86232904128282449309581885a80587a33148caff7620462ee1fca4bdce4b4fd82b37b5d742d738401ad59cf6682370108323fa2c24082767f67a8d4ec9de35afacbdc7f2b86daacc7796484b674f91b083bc74e7e797f5bea1282f440f4b890973d253e0acebbd7945ea7146bb57d6e38e890749be97ba5b2bc867809de662e8f5af25f084b283237551aefe25a692177fef7712ac74ab09b73fde05f9abe01a46e33a48e371fc1f29b80ec8d77d64d4509738a1daf076c4227073f513cfc0b7d55c055b5dd92beeabf15c5c8a6ee6868fb700f78b57754e6eba0076567b33e66dd8f88f6efe9be866976d98ed9bfc4cedadfd9da2cc315893881dee1136e151d1c6be78b4767888b12dd99c80c438392190d6ff5b41721291808093901834194e8669531044040a81242009da64229e44c162c85a5802024fd42211607022168d456329682d04064e4662b05a486df27f54377f327f723abfec737a319a7afee67dfe6ba63cd1092a83de5f1ffef30baed789b2c5f4afe837de2b81de15c7570e0685714581d5757b7a46f575fbd45142f87c9fee68a9b1b9853cbac9add87d272ef1bba96257d93b9da92dc81b949996f88620bbe513986bedd00ea58075b24ea9c3fbdac14dd7e824820867db1376db152fd4c30053c9290ef7fd3dec2dd6ea590f052d9f26a64c8c64c4ccfabd3c1d94ff7bad762f431203624a22814762f837ee66b619c222bcf502fbd28601ea15fe947231612eb508bcaa9fd69a6f77abf732573dfe17ded671ba909dcaffef785b6856b14616bfff2d785b417cc112627c728ad9a1bfae7ecdd57daae09ec11ab68d966af9878bfae5c66758627a8a2c73fc57fd43a9d6bd559a9c7b1d4a365ccf325349eeaaad604ae4794598ed7ce6b5ad72ef7e656ee923e281ee090b979311c3a733577905e44bdb5a141a392b9cf4abd80bd21b96169ec87b3551ba25e625197ccc36a72c6fe608479da550ce2ba414e189a2ed0179030855a1fbf9cc6e87a9edb90e52626fbd12a2477b136b24e79a42766bce8b0e48b18e57eabb6d98105dfbf84e98b2eb8d8ac3f3a18ce41be70271c64da545530107c1ebdb01b9b0d791071f5f70a9cc18f8ed8d9f93b52b4c4e6657905c671321a0a2795b29501738b78d26dcf19e16fe0b08e5f127cbd759dabec7db3a6a10ee9fb765578737ce3a6932f349750053ecc69bc6f4f64563f89cb3fe5c21c0d6d81682d2607b6330dc927d72604740f62e41a4f885b5565b04e3aadead2d3cfd811a6ee5c27bbf09f811f772a8e13ef9ba746ab88b7e4bf9fdc7d516ba2d6ffc2b737fb941e9cf572ef534c0f12fd3946de0dddf7ff771ee3e9f06dc51b477935b2732d5cbc25483785b2f6e27e949c6b447c4c28127fe1a6b379a38ad3a9f159ce921622572e6782233b2da7151786a9505e55ba8e1b2db1dbbf665c286ecf415ca428a78da3d7c375b8b5dbac9d3287e45ec7e42b41800dbdf2541cee88c1277cad5ebb847f65f79f0caea8209bdc0b1b8f43bbf9ef02033c0994cf0211a77e87bbf21d41e95b18d99e028e7217931c12c69c52381261e1ec6627b828ac6c060f871065851c84fb585855c2c00b158d25fb0da638bc4641ecb902804cfa0b52a25e706733c464e1b6296b0f49d596c63bf061875baa85ee31208f47509fe58ba7be48dd3f6aea0b4ee3ba491631c5af6f02d5cc4e26076dfb3530a514f27e101be00a99a41839d7e3be745252550e55b9a63b6ad825e8d9a88a070f02ac848979ef9cb3d6a46673b8ca5b365e6d22172dbbfd13dda9710b776e3a503e0ed1732932187ee5dacaf3f65d24405c2ce9a295cd638fa30f8facd7bbfbb9d4950487ca1f9e0d9b972154ac54a537b8e56c04dda0b11d29aeb7bbcf74dda596eab0b25b5eb259e5cf4d217553cd518c979fd0a03729d096977a62592e96c051b33e09537eb9f81ef0bb5c7eddd91aa93f36e101a2442654048e599b677976900975bf7c60af740b1c92ac56d99322e8bc18cdc41eaf96a0709ffaf88ffba82c03fc0ea127a9f4b4ed10fa99996ddfe20aebc6fab68929fbdfce13c7534abbabceff8985a18592d2964d6973f9b8acde1877bec9cef7f3b6bb2cff0569d142bf577c9d32d8aaf2edeb7ab1f1753a56ef4a47917b97077ece89177bfa556941f6c5f009c335fa95a90df80d65031a1db26335e99a1f844241e61e023af642fbbbd7ca95c1705998ba0c943b93f24f45437647c6e2e92844c18adcacd78efb8ce21beea262af0b64f099c7fee7072def1c5a17edd0620a2e12ac3f60af3d21e1ebd87873c0d2701def2379e406e0d56c26bbc0f1277b75ca0b604cba75a41f60edff2d008b54b9401cd8530a199347968ec858fce6595b9bfa17379d3d6ebe1f3e61b46ce180e76902c4fca28c770ec2dd5a9c9d2d754175531caa8ee5ea173ba11755f3ad823194e6bb0ff7d290e8c0565410e75d98b3436e33d5dfd0b9ba6da279da7ff7160fc4d1c18ae216894639063b8a5fb36eb708243b86da02bc136c287b2c9713bc23adc39d4d6cadd1f11e2e06bbb8de2f83fe5c0a0500828381e0547611104320a8927a389da280a96842520c804028200c3c2b5b0703292a245a210e178381e0ed3d24669c328640c198b442ccfb9cc498e0cd441c091a0ff56e7b245b323aeab8656a65ef18bd5da5fda922b68ea3e5857b332a424e89c6484bc4b5008c743f0eda851b6c880fac4193be9a3710e56fc367c33977eb376f18f3e1b23cddab9fc5bed9c88eebaccb86796fb7835a06d53c4b73a032ac72b634743e0337eda1bd602a8d1b0f8bd09b6e6b1e7129286d3518b9d59cec8fcb14a603cfa9a94a37ea90283830161729ca3c943d9deebe68b74368bfd5fd5cd1c3f807016fac3096787ec2e20dace59f2958ef598302c67dd7350c7aa1f6c4fd96cb859756afebc74c26cca28547548b9f34dbaa961e235c2c25274735df62a1fbbeca9b7e0f34f7a6f379f5200fb14ddffefd6cdec037f73dd2cf05137cbb9e00302c811cb702e1b13ec4c4342cc5031e42893cdfec12ef88d8860f7083f3717934d5104d7c870a26f0c3cc83a24303a26e8c7dddf72b7f4463f5f776360442c0a852111e1586d2c1e832022b5b1081491824090b550483c128e262149301805a68dd6a610e14884368a4c8461905a480a014bc02e2fa4c7fd87ee46c2b5505adf37fe47dc3f0a4540614804329680a5a029680a5e1b8941e3b50948983685a085d12213514434458b40c268a3e1040a0a0e436969e3c92432028381c1feb3f7ffd36d577943f1f64d152a8f9e3a65fb3001dded94f4a7b8ce034367fb23f22a5db8cfde8df0635eaaaf3f335cc9e3c43c706c2379c5e6cd45cc6be63e6bcc0b8adb2ecc10a4583bcfefcb8ecce471551c7d473a619d36b1633cf0aedfb330b14e8d087253a3d8fe047740c2ec88074e315425bf2b8eb66afaf2c5cd7ace73b890ac5d3a77934bd4467c610cc85b081332fbc7c1a2f87d64d4990e772fcc28e2bfda2affd691c3b2e4dce5f25871dd64e4c3d0c41ded5d8fbc402006244e6f4897550aeff7a7707fb8cc32df4ebe003f8adf06123e24821ce6bc7458dd4f1d0238ec21efdf0d1ce3c59b2fde188d2db5bf7c649fee52dabfe3edfafe4f54bd41cbbea7a0efd68e60fe4332dd9f564cf878798e56268ed5955f99747966e73cdb9099d5c5ea402f26f5d878e5585abdd2d5c6c67de983433639d24fefb446ed1f294569e37698f47e32072bfd8a04f9fe8dc5975c2ce87cdbf457166fffe229dae6586ac60c2022556a78ea4e729044610f1a9be1230670eec61887df06b8cad3c68bce45dcae093f335439acef113518cf091b95f01587cde8ce26d69d66704880981c2240f06ad722bfbc5fccb747e8ec5ecbdb9d951d8e3a8eeb2986d8441662ca1d249ec68195327f05346dd62acdbbed455f7ae9bb29a6b67e32146664d85bb1ce714ddbc42db5aba6c271e40eaf3e26f4d2bf7c71fc991f7070cae86c9d6919753af9f950c3e8521ec5441ecd3eae8933bcbf9b518fd59ef35602b15ee9edb314d8f00a13437f258bc72a16f77857a98b83ec310b72bef9eea2e24e6d7700cdea234dc42d2773e1ba867aebe9be2d6ba0eb4e9ce89c939fce5d05cc278dd8d49d9a2b95a4f35337d07672646c998dda34a230d9731acfe4b1ba049508531ee7fb4cb6e7e7ba81bec1cf6c7396ed7cd9cde793d3d6b9daea592a52a34a459477fb2bd9aac251123bcecacb0161fd5732a5debd6d36e1ddb382ff4d0fe270d2e0c55354bc6cd6509995cffcd3f375e990b9549a3c144d8738aea3439c0ed0d9af38664870e4ea4b75641d2b30e599ba6955048e3125a2a8c7d0999caf59c824dc4405eaa6efdf5be3e8d4e516ddbc225b2cce6ce8d28062b18e52fe6e3b81ca6797d327018352e383d6b3eb0a0a507650716fd9a70e5b7bf5523d8815c181015b5f1e75ebfeab98979da63849835f5a5231efd09522cfb1f0495ce793dac9e75b563e6c17f19dfc9106ea9f62de1faf629bc0c0e935a7f7828ff8648db0cb92345579d6da459b574456fbe877884d0d0ad60e85031e9ce403f7cfff961f3da00a2db3112ab1682f68a36cc16adc74084b0b7fb837e0630de09f902e0bb4b68dcbe1affafa86dfd8a8090c0cd93c44ea4873972b54cf6be51dddd76293945e70a7211066932e78d337ade810203116617c57947e2e6241d559cea625b0e7b198f003efc732c7d9d365d49df02febd2207329347928ef87c32cc731744608c6e4223acf9eb9b829e0a86bba7cca3a0ecf562a6bc66b8f146a131518e62835a2fab968734c58bc5061baae9f028f3a39b017eb484a329e537cccae01d285d46333b8c9913776b7f8e257402b8b35e89d75899e154fae8d1cae6aed4fab0b83cc05d3e4a18a7f4a44b3e7ca181eaf891a9669cdad8e2c9cb478553c5102aa7f9a2841acdc4a40e8529bc0407fee78b637bb836908d5df68f6586c52d3b4575cfd2fedf78fd95e195f25f9300c0888e89807ed4c138d6a1d559174a9cff5ce36dfa3d769bcd011844a597baf6ae8ff040000ffff8c76ecfb01c001a0aeed47adbb7d5e7a64a670f39c197ab92cba2c3ce06332cc62ebfdac0d10b104a0111bf0b1ad38921e07feb02ec4acd7938adf755f75f3f571f523c66594cdf49b", + "new_receipt_trie_node_byte": "0xb9010d02f901090183d5aba1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 1016288 + } + }, + { + "traces": { + "0x59f27cd365b57bc248df18b8275dc210651f2c2e": { + "balance": "0x7cdad7c3251686" + }, + "0x55ed6af18e06f2ff4baf80e023316792f8dbd480": { + "balance": "0x6f7272212d7dc", + "nonce": "0x6" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621e322dd29d7b" + } + }, + "meta": { + "byte_code": "0x02f8710105830f424085080fd006068252089459f27cd365b57bc248df18b8275dc210651f2c2e877cdad7c325168680c001a0f2796b82ef6255ef5381f68508674c4959e6b7592dfa56ee4f0685611335d9eda01cdb43c5692ec0d055c17a59e8ed2db40c20cff390a5416a7a401bae3a1f7abd", + "new_txn_trie_node_byte": "0x02f8710105830f424085080fd006068252089459f27cd365b57bc248df18b8275dc210651f2c2e877cdad7c325168680c001a0f2796b82ef6255ef5381f68508674c4959e6b7592dfa56ee4f0685611335d9eda01cdb43c5692ec0d055c17a59e8ed2db40c20cff390a5416a7a401bae3a1f7abd", + "new_receipt_trie_node_byte": "0xb9010d02f901090183d5fda9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x3f369b7698a32d73d317ee92f4ae695d4d565c3d": { + "balance": "0x4f006ff76ac0", + "nonce": "0x55" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621e3711852f7b" + }, + "0xda5e11e6ea18468a986657b222336f667e1a293a": { + "balance": "0xe661d8d5d325" + } + }, + "meta": { + "byte_code": "0x02f8700154830f424085081560b8ed82520894da5e11e6ea18468a986657b222336f667e1a293a86e661d8d5d32580c001a0e753f569f5e31ef15bf00ba816263e61839aa227ed54875155b018f16cb4550da0129fe010c9f0d36f32080e38eca38301c3198bd8ee79a14e15f3527bd88c61e4", + "new_txn_trie_node_byte": "0x02f8700154830f424085081560b8ed82520894da5e11e6ea18468a986657b222336f667e1a293a86e661d8d5d32580c001a0e753f569f5e31ef15bf00ba816263e61839aa227ed54875155b018f16cb4550da0129fe010c9f0d36f32080e38eca38301c3198bd8ee79a14e15f3527bd88c61e4", + "new_receipt_trie_node_byte": "0xb9010d02f901090183d64fb1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0xbfcd86e36d947a9103a7d4a95d178a432723d6ad": { + "balance": "0x50626e38fa151e8134", + "nonce": "0x7062" + }, + "0x7420b4b9a0110cdc71fb720908340c03f9bc03ec": { + "storage_read": [ + "0x0537db106a3a03e2ed0cd62e735337a4447e03941a5da8cb8092cafbd21f3273", + "0x1919404f3b5d9f032d343c1ef5521ad7d62900856471e992a6a6460b7b63b5d2" + ], + "storage_written": { + "0x0537db106a3a03e2ed0cd62e735337a4447e03941a5da8cb8092cafbd21f3273": "0x0", + "0x1919404f3b5d9f032d343c1ef5521ad7d62900856471e992a6a6460b7b63b5d2": "0x3ede4dbc57c86effef44b" + }, + "code_usage": { + "read": "0xa7b9be2e3d0956d42044bff7e7f5063f6b33d0ef7c3801232781e12a0c142152" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621e3e0c3aa57b" + } + }, + "meta": { + "byte_code": "0x02f8b101827061830f42408507d9738e4082fde8947420b4b9a0110cdc71fb720908340c03f9bc03ec80b844a9059cbb000000000000000000000000974026e01660d11b5b5f08394806b619702ac35c00000000000000000000000000000000000000000003ac3d8145c06247037a00c080a0047734f80826576c8c1254c0b9286c5b54c14f81e2abd38a207b42d6ffa6c62ba04b811daff459411406487481b492158fc6a3158159a1f8f4667cdaf3f24743b9", + "new_txn_trie_node_byte": "0x02f8b101827061830f42408507d9738e4082fde8947420b4b9a0110cdc71fb720908340c03f9bc03ec80b844a9059cbb000000000000000000000000974026e01660d11b5b5f08394806b619702ac35c00000000000000000000000000000000000000000003ac3d8145c06247037a00c080a0047734f80826576c8c1254c0b9286c5b54c14f81e2abd38a207b42d6ffa6c62ba04b811daff459411406487481b492158fc6a3158159a1f8f4667cdaf3f24743b9", + "new_receipt_trie_node_byte": "0xb901ab02f901a70183d6c4c9b9010000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000200000000000008000400000000000000000000100000000000000000800000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000080000000000000000000002000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b947420b4b9a0110cdc71fb720908340c03f9bc03ecf863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000bfcd86e36d947a9103a7d4a95d178a432723d6ada0000000000000000000000000974026e01660d11b5b5f08394806b619702ac35ca000000000000000000000000000000000000000000003ac3d8145c06247037a00", + "gas_used": 29976 + } + }, + { + "traces": { + "0x9199a2c0c02204424af78a718a12c0509ad084ed": { + "balance": "0xabc1c4c3e3ab06", + "nonce": "0x50" + }, + "0x7d539916c119fec6132495aa226b4f6424a7d5b9": { + "balance": "0x229d36f8eacdbb" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621e42efed377b" + } + }, + "meta": { + "byte_code": "0x02f871014f830f424085088f049ec2825208947d539916c119fec6132495aa226b4f6424a7d5b9871c6bf52634000080c001a05ca223f68243f192b13cb5329148c681d25229fe85eab86228140abc65f4430da02d25640ee0911675e323507b567b5f3c22a771f743e143487e7249eaf3a36ba9", + "new_txn_trie_node_byte": "0x02f871014f830f424085088f049ec2825208947d539916c119fec6132495aa226b4f6424a7d5b9871c6bf52634000080c001a05ca223f68243f192b13cb5329148c681d25229fe85eab86228140abc65f4430da02d25640ee0911675e323507b567b5f3c22a771f743e143487e7249eaf3a36ba9", + "new_receipt_trie_node_byte": "0xb9010d02f901090183d716d1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x25239f9ed9dcbdc86e3ee6ae067daa632e80157d": { + "balance": "0x9fd07055f208" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621e47d39fc97b" + }, + "0xd81ea41b749e290f0f5afa6842f6cb18f6d5eb6a": { + "balance": "0x27e62e37f2e6c", + "nonce": "0x2" + } + }, + "meta": { + "byte_code": "0x02f8700101830f42408507f3f0da698252089425239f9ed9dcbdc86e3ee6ae067daa632e80157d869fd07055f20880c080a0f397115719caf33fba021d42b925535760ededcbf32a5f37b69b0e1d2cc8fd93a02908b28ec718caee8df560dc477f055b581e0376682f08cf424e919c5cc95ed1", + "new_txn_trie_node_byte": "0x02f8700101830f42408507f3f0da698252089425239f9ed9dcbdc86e3ee6ae067daa632e80157d869fd07055f20880c080a0f397115719caf33fba021d42b925535760ededcbf32a5f37b69b0e1d2cc8fd93a02908b28ec718caee8df560dc477f055b581e0376682f08cf424e919c5cc95ed1", + "new_receipt_trie_node_byte": "0xb9010d02f901090183d768d9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x373fbd4c662b20031fb091869d4fc0ba79f465ed": { + "balance": "0x70870dc4fcfd36" + }, + "0x9d54cf9108ae93a30a8541d7d500c313f1dd95de": { + "balance": "0x2fb237f3c448a", + "nonce": "0x2" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621e4cb7525b7b" + } + }, + "meta": { + "byte_code": "0x02f8710101830f42408507f821c7cf82520894373fbd4c662b20031fb091869d4fc0ba79f465ed8770870dc4fcfd3680c080a0e6e83e39de343a77c00af6652879157229f8d182dc2ca7b2c2bbb720f93f80a2a0751347547f9bf9e3ceaffbf697d500f96207461ad4f83bce4291e2ab5e16159f", + "new_txn_trie_node_byte": "0x02f8710101830f42408507f821c7cf82520894373fbd4c662b20031fb091869d4fc0ba79f465ed8770870dc4fcfd3680c080a0e6e83e39de343a77c00af6652879157229f8d182dc2ca7b2c2bbb720f93f80a2a0751347547f9bf9e3ceaffbf697d500f96207461ad4f83bce4291e2ab5e16159f", + "new_receipt_trie_node_byte": "0xb9010d02f901090183d7bae1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0xa6b71e26c5e0845f74c812102ca7114b6a896ab2": { + "nonce": "0x2af84", + "code_usage": { + "read": "0x337d7f54be11b6ed55fef7b667ea5488db53db8320a05d1146aa4bd169a39a9b" + } + }, + "0xa96fdf43899708b65fa413ffaa8eefd153405840": { + "nonce": "0x1", + "storage_read": [ + "0xe5af120f0ba402d351c0e5603f23d5613079b05d6a0ec52ce2320bb1ecfcc332", + "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0", + "0xcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004" + ], + "storage_written": { + "0xcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f": "0x1", + "0xe5af120f0ba402d351c0e5603f23d5613079b05d6a0ec52ce2320bb1ecfcc332": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0xd9db270c1b5e3bd161e8c8503c55ceabee709552", + "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0": "0x2811e6b7fad03452fbc15705ca06aaacfc8dbf99", + "0x6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d5": "0xf48f2b2d2a534e402487b3ee7c18c33aec0fe5e4" + }, + "code_usage": { + "write": "0x608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c63430007060033" + } + }, + "0x2811e6b7fad03452fbc15705ca06aaacfc8dbf99": { + "balance": "0x156ab6b5ab0ba8", + "nonce": "0x46" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196621e85f5e8d1fb" + }, + "0xd9db270c1b5e3bd161e8c8503c55ceabee709552": { + "code_usage": { + "read": "0xbba688fbdb21ad2bb58bc320638b43d94e7d100f6f3ebaab0a4e4de6304b1c2e" + } + } + }, + "meta": { + "byte_code": "0x02f902710145830e8148850826299e008303fee494a6b71e26c5e0845f74c812102ca7114b6a896ab280b902041688f0b9000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee70955200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000018db1ab89150000000000000000000000000000000000000000000000000000000000000164b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000f48f2b2d2a534e402487b3ee7c18c33aec0fe5e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000002811e6b7fad03452fbc15705ca06aaacfc8dbf99000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0afca07e5c1365b4358ec7a5669839efa315a0afbab1d7d92a3b92edbbe081a45a076420985f045d96240477362329be9d491eb7b9e0f82e1c2550dd30e8b11f8db", + "new_txn_trie_node_byte": "0x02f902710145830e8148850826299e008303fee494a6b71e26c5e0845f74c812102ca7114b6a896ab280b902041688f0b9000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee70955200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000018db1ab89150000000000000000000000000000000000000000000000000000000000000164b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000f48f2b2d2a534e402487b3ee7c18c33aec0fe5e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000002811e6b7fad03452fbc15705ca06aaacfc8dbf99000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0afca07e5c1365b4358ec7a5669839efa315a0afbab1d7d92a3b92edbbe081a45a076420985f045d96240477362329be9d491eb7b9e0f82e1c2550dd30e8b11f8db", + "new_receipt_trie_node_byte": "0xb902a802f902a40183dbad31b9010000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000008000000200000000000000000000000100500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000001000000000000000000000000000000000000000080000000000000000400000008020000000000000100000000000000000f90199f9011b94a96fdf43899708b65fa413ffaa8eefd153405840f842a0141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a8a0000000000000000000000000a6b71e26c5e0845f74c812102ca7114b6a896ab2b8c0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f48f2b2d2a534e402487b3ee7c18c33aec0fe5e400000000000000000000000000000000000000000000000000000000000000010000000000000000000000002811e6b7fad03452fbc15705ca06aaacfc8dbf99f87994a6b71e26c5e0845f74c812102ca7114b6a896ab2e1a04f51faf6c4561ff95f067657e43439f0f856d97c04d9ec9070a6199ad418e235b840000000000000000000000000a96fdf43899708b65fa413ffaa8eefd153405840000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee709552", + "gas_used": 258640 + } + }, + { + "traces": { + "0x6667961f5e9c98a76a48767522150889703ed77d": { + "balance": "0x2867a722a45949050", + "nonce": "0x4541" + }, + "0x6968f3f16c3e64003f02e121cf0d5ccbf5625a42": { + "storage_read": [ + "0xd13497e709ef25f9bd92b1fc1ea31860e615bc6f8b7bc3ffa85f421314b9b54d", + "0x313a873352032d5ee8adb7ba052e56200d3cadd84a36b8a4ac8cad390266ade3", + "0xb909d9d003ef362cf7745f9ca8a183ca99ff4cc7c8c23d1389cfb2a75ca0b0a9", + "0x9cfabadf367201974cccc37ba93ea6466323f0a4ca89112f7f6b368ebd6550b7", + "0x34c3c3a4a1ba8f989f7caafd876c5efd8fafdf8af8ce85db229414a94c18cfb8", + "0x2d709a014bc42e015cc513b26e4331a9d5393d5a37a52a2504696517fb7f1e7b", + "0xde6a1fc74231e8dab0de464c7ccea2ff66d42030bde1d73e5dfc4103423205a6", + "0x9e87f4195e95e1d5785cca7180851e790121cb9f658345d5297e21bda61d2438", + "0x73b46fc0a0633d32ae4bb2a67a5d6081ba2c5f57308533b33c4a016f121ad37e" + ], + "code_usage": { + "read": "0x97625afc80babcb5ef2c6cc2b63b8bab55ebad296f570e128f39d807e50fe3d3" + } + }, + "0xa0d79e982bfd3c2ccd09d2e374ddc75fe328f317": { + "storage_read": [ + "0xb9c924aca6c9c47d96dac985eb766b998a91adeb16cb62b2efc09c6e88d3e737", + "0xc32d19ce8686e61fe621708eda6ca5e7a3e7f2e75586fd5bb3ba4ef0fd321301", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x69853aba0a4e93bb67c98a2d0049aac5356aee695eeb7a0041e8b101d3205ef7", + "0x69853aba0a4e93bb67c98a2d0049aac5356aee695eeb7a0041e8b101d3205ef4", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x69853aba0a4e93bb67c98a2d0049aac5356aee695eeb7a0041e8b101d3205ef9", + "0x10ffc9a5bc1670c3765a10be2b949d000e9c4c91a817233ab52688603ac1710b" + ], + "storage_written": { + "0xc32d19ce8686e61fe621708eda6ca5e7a3e7f2e75586fd5bb3ba4ef0fd3212fe": "0x4540", + "0xc32d19ce8686e61fe621708eda6ca5e7a3e7f2e75586fd5bb3ba4ef0fd321302": "0x0", + "0x10ffc9a5bc1670c3765a10be2b949d000e9c4c91a817233ab52688603ac1710b": "0x1", + "0xc32d19ce8686e61fe621708eda6ca5e7a3e7f2e75586fd5bb3ba4ef0fd3212fd": "0x3505a77", + "0xc32d19ce8686e61fe621708eda6ca5e7a3e7f2e75586fd5bb3ba4ef0fd3212fc": "0xe28258e41919a553067303631380ad88812e45d5053fb16367d2c8fe886a9e23", + "0xc32d19ce8686e61fe621708eda6ca5e7a3e7f2e75586fd5bb3ba4ef0fd3212ff": "0x65d89867", + "0xb9c924aca6c9c47d96dac985eb766b998a91adeb16cb62b2efc09c6e88d3e737": "0x1", + "0xc32d19ce8686e61fe621708eda6ca5e7a3e7f2e75586fd5bb3ba4ef0fd321300": "0x12596ca", + "0x69853aba0a4e93bb67c98a2d0049aac5356aee695eeb7a0041e8b101d3205ef9": "0x3505a77", + "0xc32d19ce8686e61fe621708eda6ca5e7a3e7f2e75586fd5bb3ba4ef0fd321301": "0x1" + }, + "code_usage": { + "read": "0xd8ab799e60061c9d36c9f5ebfb47a412394e83b71a877aa865fe9fd2b82564c0" + } + }, + "0x5dd48ef85b99e3e3d711ca8b41cbc07da1677f3e": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "code_usage": { + "read": "0x0b7f82ea02ac627d8c0b80db0b7f10d06e3034c7b11da468b6baeb7cb03e3ab7" + } + }, + "0x0000000000000000000000000000000000000001": {}, + "0x1872ce78a362c58d093ee107cadee2667b7bd993": { + "code_usage": { + "read": "0x941140f9b4802c415fad3a278c0b288760a3edfe2b57859a965ab1b79ae53b71" + } + }, + "0x399ca67660b79f7aa8a7efd5bef9836a4c19cacf": { + "storage_read": [ + "0xcbd85a953b7b8f20ea0a874360bb60c2ff625e64bde3ce0f9f9791b1f9e1d4f9", + "0x1b096e0b1447f4374b592dfb602b51564136cc0ca2c6cf8559ada44a0220c219", + "0xbb3511dafaaada4c58043f867b6b7c4f707e289a5b0105a38da70f4dd14c67ce", + "0x938d6e42d730a9448b022b2c8c781ed6ad5695d9465f89eee8db2c73555afc84", + "0xd26e832454299e9fabb89e0e5fffdc046d4e14431bc1bf607ffb2e8a1ddecf83", + "0xbcda123a222aef9307e80b00b284e5b77fa2270cf1c6a2d3da7a830c689118bb", + "0x8d9478e03374a6b1dff3d6476b87295e7c4995ac391454bfbd1ca63de6741faf", + "0xf728cbc1a62f97eda0c9ab243d66eb51cb45163d76377b288e4c8ac1fa22039f", + "0x18eea7aef1e127c10503415cd8a9a7895efb01cad6f56f2c7bee5040ba088fc0", + "0x18eea7aef1e127c10503415cd8a9a7895efb01cad6f56f2c7bee5040ba088fc1", + "0xd26e832454299e9fabb89e0e5fffdc046d4e14431bc1bf607ffb2e8a1ddecf82", + "0x4c5494cc338e32364ad116a92cf50b71547e1ffdc9f3b9f1f4821efd20f2ec15", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x000000000000000000000000000000000000000000000000000000000000009d", + "0x114846563ec9c4af339442784b6c67aae8fc291739c7f3a3d854e6ab46208453", + "0x7f916742a82287e54af38543c9d639aa639f5691964312cc45c81f3c363fc5fa", + "0xd26e832454299e9fabb89e0e5fffdc046d4e14431bc1bf607ffb2e8a1ddecf80", + "0x114846563ec9c4af339442784b6c67aae8fc291739c7f3a3d854e6ab46208452", + "0xcbd85a953b7b8f20ea0a874360bb60c2ff625e64bde3ce0f9f9791b1f9e1d4fa", + "0xd26e832454299e9fabb89e0e5fffdc046d4e14431bc1bf607ffb2e8a1ddecf7f", + "0x403449e5db298bbf23a873f005f6db5d54a3bfa4632ca6f05c215b229cd83777", + "0x7e69bcec862e8a1f999769acb82888070c9aa05c46ce852b91a01d6f60aa777d", + "0xf2c12c97387c452a1021b8c641adccc6a36a5b9090001a2aff854d05a0cbfbf6", + "0xd004c3e2ece609573142ff45683651ad48262bb5668cc19f9d708869945d7f95", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x0000000000000000000000000000000000000000000000000000000000000098", + "0xd26e832454299e9fabb89e0e5fffdc046d4e14431bc1bf607ffb2e8a1ddecf7c", + "0x50001ab8e9c66d6a545e6a0ba73292954247ff6abe9efa5cb8e5f144d11cc313", + "0xd26e832454299e9fabb89e0e5fffdc046d4e14431bc1bf607ffb2e8a1ddecf7e", + "0xd26e832454299e9fabb89e0e5fffdc046d4e14431bc1bf607ffb2e8a1ddecf84", + "0x724914758b9cdd1aff478490d6bc409578ee405e47843f4448bb96a9d304fe75", + "0x81e01d5d0104c511af99cce4efa3a695fc7719494d8242faf38cecf66faba295", + "0xd26e832454299e9fabb89e0e5fffdc046d4e14431bc1bf607ffb2e8a1ddecf7b", + "0x7e69bcec862e8a1f999769acb82888070c9aa05c46ce852b91a01d6f60aa777c", + "0xd26e832454299e9fabb89e0e5fffdc046d4e14431bc1bf607ffb2e8a1ddecf81", + "0x7af2aff6b35506139aa327282535d3015ebfb8bca8f919c3da6282328e9bcc65", + "0x1d3c91fdfcdac05f2cf7455d4d5fbe4016d6fa48c12aeecc613948b2830e34f0", + "0xd26e832454299e9fabb89e0e5fffdc046d4e14431bc1bf607ffb2e8a1ddecf7d", + "0xbcda123a222aef9307e80b00b284e5b77fa2270cf1c6a2d3da7a830c689118bc", + "0xd004c3e2ece609573142ff45683651ad48262bb5668cc19f9d708869945d7f94", + "0x7f916742a82287e54af38543c9d639aa639f5691964312cc45c81f3c363fc5fb", + "0xf728cbc1a62f97eda0c9ab243d66eb51cb45163d76377b288e4c8ac1fa2203a0", + "0x7af2aff6b35506139aa327282535d3015ebfb8bca8f919c3da6282328e9bcc64", + "0x724914758b9cdd1aff478490d6bc409578ee405e47843f4448bb96a9d304fe74" + ], + "code_usage": { + "read": "0xd8ab799e60061c9d36c9f5ebfb47a412394e83b71a877aa865fe9fd2b82564c0" + } + }, + "0x31abe1c466c2a8b95fd84258dd1471472979b650": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "code_usage": { + "read": "0x208ea85e92000d8d024bde331090baee03a28a4bb06cc964b04c7fd8be3c29d9" + } + }, + "0xd1328c9167e0693b689b5aa5a024379d4e437858": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000071", + "0x000000000000000000000000000000000000000000000000000000000000006f", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x716ec167f1fce2a774900f145290797223ffd4305b55987cf34572dff7394d3f", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x602bd4c9a56c5dfff46848d41c2404c91b29a97884f68391407b2cb21bb88b13", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x602bd4c9a56c5dfff46848d41c2404c91b29a97884f68391407b2cb21bb88b15", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x602bd4c9a56c5dfff46848d41c2404c91b29a97884f68391407b2cb21bb88b13": "0x4541", + "0x000000000000000000000000000000000000000000000000000000000000006f": "0x4541", + "0x0000000000000000000000000000000000000000000000000000000000000070": "0x4541", + "0x0000000000000000000000000000000000000000000000000000000000000071": "0x4541" + }, + "code_usage": { + "read": "0xd8ab799e60061c9d36c9f5ebfb47a412394e83b71a877aa865fe9fd2b82564c0" + } + }, + "0x242a33ca49c564cafc9c83c700b79f1074c42a0d": { + "code_usage": { + "read": "0xe0d10356f65d19d54d366dce06e12a621952c4f4db555ed45b5821741cb10fc5" + } + }, + "0x291dc3819b863e19b0a9b9809f8025d2eb4aae93": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377dc650" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000006": "0xdc89", + "0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377dc64f": "0x96d3cfa38fc15712d52dd09f223d4d397d169e93e759622cf7a12dd9fd7a9575", + "0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377dc650": "0x12596ca0065cf5de7" + }, + "code_usage": { + "read": "0x59214cf130207dbf620537da6576148ad217b894c5b41b1d33bfc582df410976" + } + }, + "0xf7576237087f808eb39531ca490b4f8efd4a0c69": { + "code_usage": { + "read": "0xa0969bdbbfaedabe5cb3398d93a0066600e8b3ef93b3ed063ec33a178f050760" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662212c249e7b5b" + }, + "0x89e9d387555af0cde22cb98833bae40d640ad7fa": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "code_usage": { + "read": "0xe24f63e22a1b2f78fdc2a49a760b0e71ec38c38192d8ab9417a20a5d4439bcad" + } + }, + "0x4692363048d0f32a2de7816860d48fff0c61b24b": { + "code_usage": { + "read": "0xab6ea500b0ba9e171f374c5d26dba80310b20fe83b5f65d2c5984f0f437e0323" + } + }, + "0xd3f0bd982d72e28cccc69e0a9da439e9d587b3bd": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "storage_written": { + "0x85d37c580aad9aae1752283025b42baff723db0c73632a2d3e49ac44752a6534": "0x54e0ffbf3158cd6fa20365790f47283bbc596d5150c040015352c79338218734", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x65cf5de70003505a770000004541" + }, + "code_usage": { + "read": "0x0b7f82ea02ac627d8c0b80db0b7f10d06e3034c7b11da468b6baeb7cb03e3ab7" + } + }, + "0x676a795fe6e43c17c668de16730c3f690feb7120": { + "storage_read": [ + "0x9c7974976c739badeec5e5b52b554d4f4df08c98b364c1f701d10f40b9910a11", + "0x760b21fc095cf561e069dd24242f03daeb922a0724e90941136d7204409b06f4", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "code_usage": { + "read": "0xcf18d53814eb8b8ba7ae4a7aa1e9255a5fcca31806b2b90d9499bc61ad2ba844" + } + } + }, + "meta": { + "byte_code": "0x02f9d1f301824540830e8148850e26104e26832fb47394d1328c9167e0693b689b5aa5a024379d4e43785880b9d18449cd3004e28258e41919a553067303631380ad88812e45d5053fb16367d2c8fe886a9e230000000000000000000000000000000000000000000000000000000003505a7700000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000035053f5000000000000000000000000000000000000000000000000000000000000d10000000000000000000000000000000000000000000000000000000000000006829d4c3bddbd3abd06c9e3bb7e17bf05e43898dc55fc4ca3d1bc8106f08818b4b2c455615ec53bb62ceb223293e210034367b1089710c82244506ebd777a2794c15014caa60da5eedd50467c641ea23b91358af3f8e83234add6e229e5f29547afd5157969ffdd67f6403cb6bc190af25d57ebb0e4fc170cc7267bbcb4a1360eddf915bf410e689f23b86c6178a6b560f8b5e9df019b70b8b711907989caa1e6a0ed40754a2786c58d3c06c43d2b9df83c9179f4f4671c4062d0929e8c3444df6ab3a86e773bc417c048db3a55dd8998fffc6b9ea3bac017168f2bae31d80239ae4359afcd353f688cdbb204bba8db20945860557232e674777fd612bdece02d5ca6cd0b53d650f8e3fc29b61f9dd784341dd2347797ff0a3f1d6b44f7e74e320f156a1558474ed3d3799dda354b05d5d3be7ca62a4335c51d3953a4f3e00990e6c39fc3778f3c1d458bfbf410066a231161d16a8967dfdf164807256de8c33116a48088ce3f95d46a63f509f9e512361f55f01af39221cad2b0e4c506bbbe766d969329cc9608667797f24620d39fa9faa18d0811c68723b17c2ec6a34ce9d82296c35b83a0739a4084be5dad594ef3a219d4e1ba91cad02fe53059ed00d192c1f6635b86881041ba4200850c6207c3849ae500ad7fdf9382daa0ca8fb9093df0dbaf7e41abdc1c45ab5253a3f045af6c7e8d046540977442b1f158c0636bf897b5c57da50a7c58b49cbe04671eb44507bd3bd56522b4de616b67e2eee44292005e70db6c8770390b429ffbe5bcd41f7250765f2eedafecf3f3eeea602c7d853c0f0b47501518d20a5d9512a54aeedf7475684bd54dd7fa43f82f8e3059989b06cd70a05717391d8f81e4c0ac20bbec358b21a01e166442b7a716e5277bfbed3d4eeacee5ad6cb58ad512bf9bf5832e152581621108c1109417f389e1ee7095ced80b3d83f8afada6f5440047a7e908213de92ddee16b733ad1ab00d4ba3113c4574e52be44cfb6d27544e2b0d37810f79b1fcee6c9c25528f94c874f5677e21cea614e0171ec90b294e7b62b1a48265ab594191d3a1da13197df507c8933b4637eec55fc4151e57a4093b82098b1051db3f3c82fccdbd9d5f13d06ce6fe2b4f288db7a887eb757f6cad45e451497b288d8f89559e56b36c4f5007eee35d97f27b73e74848dbdc80a3b5ef1cd5e42be42c20410b5d0119fe999283c617b082b41f73c43be71b3b33a21f73a0e51acc4d39d596a059d462fe850e4874227b3e411c33300e1923c78f6497749e68d052141887613303f0dc64913953b850ecfa8a4af6400fda8edf59dfe2369329fb8be23b50ae41e04e14fafb223bdd2cf8b13a5b5f220adc063981d31803aa47bf0431d0a1f6f6da91ca70ac79d31f34b4cbc4d1666a4166c89337a4a9fd5cf112fe28ebc65036545c3447954c068c498718eb5eac38053f1e8a664305782eee03e951b4911d97d9b04eb1d437cc1e7aa9f2dbc2b3954d94fed1baeec45882e915d7a743e5772208c95741650b5920dff0d1ea3547f1030af7a65d1455ea3c5fdd951c5c40bc5e915b5af70065bfe7ffe1f8b3a6cd1769b93955520e51b3af3d1f2eb6454015976328ae8b36ad234d7aa7959ef5d4ba67cac959780df594b4aeb9ed45ae390bd7f2b13665ec19e89687b86dac8ff7dcb8ea59c2fdc3c6bcb7dfc0db995e404b90aaf4e25566ff9f7974334dc53384a2bd0f533785bfc732c4af8e25e24405b008bc2b6052eab83f7c7f80a8c4a9922627069567ee3995b44ea008b385c71d234d90408cdffa0b96a6ce1fd91f1c1f540139167eb82172111ac53a4f434a202d82ea5ce6ecdf2286e2a0ef0988089952bef9f95257b9a5b56f2e71dec7861d21667d9f1c71c092eae7b493b2c09dfb17df6fd9c6e9cb2e7780ed7a92a42eb50ffb7fc43dd524acd907c2c8fffa53f2271e29debc6a51091f091b4a1c985a7a2014de032a3e4fdb532d184666f6462e646f3c4277a72ca93d6bd8284a65440bdf751afa893bea0f211548874fea61331bf4b2fbefcc44d142e70c34f2d9313f629b0b566289fa9fb47a69410b19e962e7ea65314f64f897f17f9b88959ff098149c29ceb64fdda78b847c480ed3a52838f2a1003bd9e46002be67c884f29a5f3949da96b66871023523bd54554ce6f9fd4c53a429d22c73b47852f993442c64744aece1d6b3c3e0555496d215b7a82303a169cdc930153a2e132a7bd445f6028f57756b160b1cf7f827b0eee0d18feed1f65598c2bdb7affed1a5c9daeb619f5e76bf54da1f04838cd2d719c891a20ee6c52a2ee42c26140b78062142f835ceb4d3822b970d1ba8f17bfe3252d31aafd5ec124bf9556907a9e2ea8e02fb4447e2ff842b675b986d6921c964fae358853d6f0720ddc49aeec107e7aa1cefa7d0b674ece4a33f8e34218796b63106c1ec43780f66b60ac07e3dbb4fc032e1bbd84fedb1132fbebe0c909fb5faa050477d0c1e9bbf4d8fb4e80e280011d10883ef442190de712da4062649a3220ed16b99cd4a723cb3f6f30bfbb6a0683b78efb47d70431514a02141541d7f31e686b998b115049bcf4e49cb5581977d2b9257c947fc88f2143e89c2318d12e2d30d5981c3b4dd4c13747fc47cecbe638055d253915e71453d853d07bfa10dbdc258169af7f37951a65a3adc0ba634e0b90b0784c2fd5c0a2a1008801a2581d7e35020e6ce42268c857c5083ccd34f7ccfa81c1dcacba71edb286dc2d11f95202da3947c9b88e14b945ec5d0e40a0d7db777eed5dcda8925e53cc34fdced9dffe913640fa6a0b240dd61e64dc1e942e0defffeff29991acdd9fb237ef41fe26f7c807153402b1b460761e4bd67358710089ad50791001d127f10132d2303c0645c90ffdd08949e7c703833af70100aec2703b046781e0d680e208be3dec20850f323620fc6328591b6ea8180fd2fa1d52b92a3847a260683f882eff72919aa7ddaa9eb705751d5f0c65895d9bb54fe5123096d7039f1f81195f0ef6550eb152a25261211bca2f78ae80b96ec1ac976b7cc7061e8a284a10b1c127b7c89edb55a24dea991857dd743f78f4827e4ad72ef800aea24ef252c7a3447005adec640e73770ffcf0420c87f7b313455fd69dc8103520943d8c96cd0c5e4b69f1be16fcd8e6fd8b58c3ba8abdca74c980611558d9494c1b2ecfea6a49c6c5a130d4e24344662653f9ccac9caab787e056edfb2974ef693a004ac9e919757c3f347e36ce7d1ba36e7b8c77c0bde1711f7e97250e8c1c4aca1660ed8cb61c63632eace16a8b46a95d3a77e50ea559336b4aedf43bf9764c51c5d6508abf25dcc506c7f2339142839d447178fac492042d32b426b8c36d742c87c7650460040270b66915d2b2b24d293abc36ed1d6e4f6cba46d49437ee63a03c0476aa27948b33cd7e63b4c5f6623c8813cd7f29e01176dddda7f8f357df302921bc028226796c8329e7990ed9852b0fe940c7e73b48f69c70613386de2bbe9cb4902348c35b6fc7387f1cfca238a766e71ac8fa8ea8420da1a0afcb264ea3b8f4d49170092b4e7d13a85b9cb68e7652ed37362b0300b7b6f09d0a0e13703c68c2a50abeafabc4d3df634cbfc5ca17bc7191176a0b1c8d1abb7fad7a3849e5c2fe3c9d0bea27f58c63374678a2e738d72d21fb968f0fbb4c63a065368b462839ad41b41b6f320b96ddfbd30b4b94d4bd76c429d1318a3a575d0e2e78a61e2dff8f0af7b1d8c47f7d140605d883dd7a4c90e4c1feac553714cfcceda664931175c9c86595991499002a3b408778a67ea090efa888f2d16b8116ad25f4c0fd89996b39ef86c0efcf4a1e86f754380d0fdbeb5049e3b54ed2653f9c7bebf91fd30566d704b4cb2aa2065b1eb0e8dd057a4b5b68574c1bfafec12ea03e3a7d1bcf47cf66434157aaebee9fa45feabaec4a3c0cd3ba7d3084e04034e0da5592988b4d7a521a30230c69f3278d43b000d22ac9d949109d1218919d46c0a7ad381ad8dee86f814ca8cf23c2eb562401360204790fa97127da08a9047ec97c6bfe712b96e95b28dab4ae385c1c9cfe35c3640f43d53e7535b30b10291423f75dd1ef20b8ccaaf1ccc66b103911b1f436ff364434c1a289b5b770a0263de11759393ff0317854cdaad87e17f18d1806d9c59271f1ed8fbb321d13db1f4a3c5c2f3e6c0620158f09dfd54d72e5036ca8dd3b21d80ffb44ff6a5486d159102f9105ad1ce861d38a2b24d3e98fc431e51e056f519252c8db8bffe06d2508e0afe8a8a5de8ba64c6d2b673df8f81854f0edf4ae79673f4bb208deb0636e6d55baae3144996a4f2657bdcf2e8ffdf3c02f7132b97f93deb0b5913a7e4282fa5c8c42e3a4b2236951985a0e17950eb3abaede0ff2c954fefc2029ccd01ae6f6fdc2864fdb80dd6f93422ec487614d36ffb9107c9704751c1819f39aaa4d2cbf6d8fe2164ff9d3b644af5e56310e9f8f7e1f0f7abc09f8177a1ce02d35e218dac2a9881d8aa35e5fb54d30043c8b8cb042ae487b77c36de4796b1d85c1fe962210d64da6660c5fafdbe7f36eb7e5f911b5f5df6c8012335221e1c6476de7977a95178fe1caf490aec1195492a0d7167cd93ddb226a906a04e200a312832be4e46bd1868f9303bc8867b213517ed21fd4fedbab5e51eb70018ee8fa25e6e0c57bf8415feb7037ccda3ece2dfe99a16354c04b46023ec53819a1d9e0c7de0c8fc63880a6f8ce2bcea66b04593ba5b97e36593bce515d982a298f38cfa1b56a47183bd3abe92effbfcadd2e3d05d98703e239a8332ffe5e111574b756469c6499438d5241b126ab56047ff9e45ece9daacfeec0661a56adb96d7725e91655c3bb1a21e0c43597d724669a6f88395b01687bc1f0f385b79e4a728389b2cb2a9616738514449c4c7897b7e966a6eaf6422b26b5a1017309dcdac12027d689bf1469c31e5e98735336fcf8c580bcaf596174ea884eee5a0b1ae24f58daaf7b2ded2e3b907600aac1c3508648c5d3cc758419b001ab656fd86344ce0516689c9b5bcebe5a3703dd687e556101a6a045b978f5173213e79b2b80e994caf50e5d1f17550e22b40fd5e0ef28e90b842940524db4c0d51026120d0a18425e729983f2a0124811e4faa3fba813eb5f7492e1c67e2d3fbbf00934becbfcc1c6f99aac3912305e113b8249c5a9a6c372809a1caa9b8be34ef7821a5baf51590345a2a3213577e99adeade24294c36b087a082136b971e698c10185959ab5afece315c213b16b053c837b30e4ce2021f93f4cb16872decfb99987562c4038bf03ab2260bb446d5fa7b5f0af24435174dbf904d09fa9064029ebd7a61c3219b2719a72f5e207227915771128bd5792b87987ad92c6a74613d4b968193eede9111942df9808f0d919e960f3b3e21daa5f9a16dde17a9222134f015bab87211e1d8f11b23f629fe51c20565fb6f19269306516a2e8c6c3b46cb962d2fe2a653a5811954fb76c22c2cb1172cace14c3b3b39288c0fee6e7ef48c699aa37d13c36554b50753c224a4e2ec4ef8432cb4f859470e1688eb46d80a739a8b02ff444539bf5e36759fba27fb6e8375dbe87e6b901dc026e56610655afecfeecb3914e42a59c3cac36c088689061a9c5818a3443df876ab731a57ee51fae99af3800f31bb679491b17458096eb543507295f3e7f8fc28c8906211b25a554b861f8cff0fea7f7444283860195389f856d24095f2569d11833b3dd213b307e85496f7101fd99f0ad0d5197418e0d68f5862fbb01bfb563ad8f7d6846c06a9b723e5de71cb0fa2a0f12b4467d6cf8187f98714aa5336766cf65b99c146aa61f8a6f408831dfad9bbc7c38007d9726657aa2bf2a60d53a6d582f03c62d35d8fb8359c72bc3d0d131e3b39c25151a3458f707f22bf185006fcb3154db7e138b5712d8e15de8bb59f44bc6d060b6182e5b4e4e4b0804c025faaa793c04ba04df67280738d2cbca39c0a4e1b5d4b1c361a38e375f68026e2c86c555cfa06c400144ffa07a67f97d9ebf4c0159ada6b3c53c87834c868fb4496eb9285883e0a84ed656ef1346733af210afdaf4b76ddd5e618692739f2d6b81eed2b72382d7a5399efc863de8a9b3c4b97f58fc2bbd5eb73fb9db680eb3efb7c1c8cb8735bbf667094de391709f7fe4e7fe05df038cdad4757f0fe63be6efa26f01e7fc5d7cccd905754e3b202116b8b9833021f1c39a11181758735f97c328c723a56fd75e0ad465e65a9645acbd2358a60e7fa92393ca2c17bdd851a9f74df6af3973d4be67b7de26557e78717fd427bbe186f8a80b8d193867dd4f5d747d6aa75e382ed13f991ebb06c5a0bb5dce6fe47cb217db8dc2ed327ca951d3484926cc9fea737260e28e8c87ff0766ff1aa1c201f923ff7dd710667e13f1c0bf8fa8d5c8157cdd27c7e6ca875f9d7bbf57577885bf0352ee7d5f65c47a18c85e245bf51b9a49af2f05fa7688effb51eb77e4f282c0b147f0ff28dccec1bddd31ed27151bf1a340782b466c1e2499ec9c5961f3d0524e73cde29268039f4a56627149a1a31111ebd5e1b8e294450e99c515527540ef5021a57c62e58bda2615ac347a5d992812495af80bc99ce8b0405d814e2324e4d6fb530766c3abf51caace85a973ded55c978960edd2440f87a58beef5da156027919f185995d1b0419c7639a21e6ff183bd6b495778b34d63846ab6c84555f04b711911989dce8dbdfa3e705c5483ac1bd524b10931eb0b85ee03ea1e7b17f67e67bf12a9c35f1e86ab2f79ac17462f023413d4983bba3fd05c113ffd958ac6e9472eadbc81d13077e8a374b856674ffd80c2e22aa43b59830815931fb8849db6d21b765fe3a2fc64dc0d441637d22569b2223102da6266cabee55d4350c6c715178f31155ffcbd9dd1e513812abb6aa79922b606e62d22c6d9f081683302302aaaabf25e28f6cc7e72dfd8ea031a51aaa141044d2076955196894a87dd5f2a6c9ff76ce6ce68472935bc735025c875b8e72de72c8852ad2eaed227ac0178fd5777f40860d6b2f9910f1d7f648b1b4865e4aabc41c8fae14ef6f0dc65472e143f07be8ddd0a7abb8b5b24c89b9a92d4a02c2fd0f69a320f056ae2d276c60ea26e912d116997f6c302d8a20e4bef2cd7d9c684f14487f821fa4260ff70bccb6dc8455a6b0d01f035c9f42429ea8f3b847380a40edcd9a6d22dbacbbc27d7ca37b4517a8b871a71327ee2601bd996afc22b2292ffdb59d123100be6ab6b725d3ef2ff7e2a0c7697672071da84fa8fc81fe066b150a46a691022d8a594c8f3b24bc5c0b72716fc231b29fa6ce4d971d331e5e0342e153873080c393f010fa48e66fb6f33a146cfac66e6ff9877b86797c382d6142d875815cbb1b177a44e2adcc0000056b6e26404cacc191c6ee74047f8e4d4d46255607041d96d4574caeba411adfb67431df35e18f89c0c33c53cf294ed8a05ef03407f00a24a1f1d5bc2dc6eb8c01cce45a8713d933d41de7da55809bcd046226d121e91ccf09369a90cd32aed403095992d07abf0962d31e3ee3d7746a16ba549976c74af759fe5c89c75c28213062cf82b8024a3d57feae2a17db4b737fe73310f9de215e8d0c8bdc1716910651974e223d8e2d95e4337d6f7e77748ed30812446710c92dc61e5260f8d063a31482b92f6744879a2b5de6473da6130b43f9ffaaf74af85ae5666f3bc1e2a1fc46587b5b20546a06928d831e8094db2c28c874e6a807915225736f57cb64f750b0516a088bcbd6bcca686056bce85fcd839bc2cb5f555c295155dc58230ba365d724cd27a9c8e625b8b4c8b5e2912dfb02ce3dbc11a0137a119ebe42659d7ec2834fff2a0e7f254d3d74c675b2438b599110d6c7ce0f0d42b8524ef56ab9090af1793bb0adca2e561d949e5d80fd05bbdf198cfecb6e517492baa886004a9247f6ba13ea15a54c0cfeffd21fd4d35e05ab08861915d5611db6d0613673a5872e7a2a0a46092239bf0504b0b40209b0b1d1e2cad41065b2bdbf0a17a6d2ba92d5e1a0bb556b65ca042f9a1996249e7c3ebca805c04d9ed071e678d81f740a84d7bfef2c54300ed8406c36d364ad98585485ebaf4ae806462a3dd5f6182c90b0916fd9d40ed5adc1fd4029d084df1988676bc7a9bc4653b668da9a427c75c1f652ac226b6917019f7809497408460b2d38e661b28073650bebade5babfe877522fe1b28aae7ada7caf59ee95ac4e82ac390178b46ecfccce283ce017ab2364fe2fa38314ec5013187fcd1de75e556f4e7b68fb1725ced32c45f3d1ec5c765f3e3f175fbe654e97146d7e2d9a2a9422069eceffe07b1e21d1acd6e2699043c3bf44007bfd0bd9fab0f5b13fecdc9ab6058b5a50552e163593a9584c2be2a8392dd67e8dd8a04c352298820a396dd8185559f4054740760685e63119b9c629ec5f7098441989b41d83a29b9dca03fb3e57dfb38d6b8846fd347c5a777ffc02012f3cc5b35a59a3b399af66fdb2ce134d07602e027ec63646265500aee6d06b8d1277dc57ecced78d469537f4bf9cf77fc6a0986304fa171e5cab394f7103f5e0cc883f1737220ecbda327091598fe50a1cdf03dc72ca9887ced0d9a1d17b3a63031b9854f8d6989493e5dcd01931fa8139aec62dfa2e81b991dbcf50607e496feb1ccbec587aa22042145d453b611df0feb4ddb763109120195cfc38c49302793dbb7ab3c1c32548848e2e63892f97e9f6791cd80d7df28b2ae58a92692f45915b44b74b4a2cd1cbc24032a1192fa101c5111318f0f0912d7fa3beefd8bfdf22e20c3080f676dca612e0e0f74da683425f79a310d8d15449619236036cd2a0a5bbb93e751bb75367c769b01993c2cfea811d93377cf5e93a74311a5ea23330d93352ff044639f676d88f6c40211597af814c2b0b0dc66f659ee5a0a4b01e3a399c86c5de0c12f9b01ab0f25adfc790a2f7bf0f4f01f5a49d39b9399d0aeeb6f83ac0d8e28da88941e58533e982c0d3824297bec4be6e58cd981e0fd23c50016150ee26a15bb62908ec720db04801938f0ab0ee30bc161082e897279b5dce793b8b08de03b7cee643b7898f2f14d781869f350f3a43387d5af54d8f83a745c47f2509267b095256219cef262ea5dee181969052bc0f55c9b5166f5a27cf92f4ac004f8f473496d82645f30459239c9df86f14408e9bcdfb62c4b2bdf090ccc3a646485be7c20fe35cd657e858e46dfda9aee394fff1faf7fc0d7b5e7473a17a63ef463adcf877a785cb4ded8c1730ce77c345ee83759d1e8cf6dd4d50cfeae7bd8fffcd70bc9c2533185ae62ea32ad6faa27ccb00badae103dd427b4e31771a046b04d28f6ed296d47bd9060d459ae4ae2a8fe5084e6257609e20500fdfa23bde58fba3a71052054266faab05d5e870dfdb878d0d1103dd802b5e5cab4a7a4f403d673b79028badbe0b980b1c05c142fc52db0452b84d0b51b74811fbba76e62e272d09604cc52d1ba9d3d9d95f1ec4c313e94578c24d78c931283e8b145f449dae37e134dfa1d73f089ae31da04a3f6b1f519e361ba10decc975a646815d8d9f82f5298846f7aa745aa3cb555aead92851ce9bf69eac775f1b18c7ff2eb89254c2f0c705dae59c2e04bc699b5aa54cbea5538fb36b7e81630f30b6b73fa68f196b3faf0fe83ab3559f959ad47eb1fe18a77f0b566afeb7fb2beecbac8ba08efcecd8d60cd578b4c01cb7b87855182532acf065473c0a1aea81f6d63cc998b19002e4518279aa52df1edaab667e8df4e9d163bc6ec19551ccc3e5b2de9f07f3a52425f6c7310062aa2591c8ffe5cc0d0c49b17b37e6b63e23c0cd4c9b12aac6efe216516cfdbcd723677450b99db8489e84125e63887ddcb6dfd2631f4001e980755463d0abf7faef0cc8ace226a6e7dfa6f16c647fc904f76400b64489bfadf9feb092ca9eafb9be8f8c0ffd4cf9b79f7089dc9efd6214957c952790ddca331c080d9cb8201fc87d0dc75ba881a6f38ef0111602ed95cc23534cf2125102cc0ea25395160b18a0a2d2090e8cb233d57a9027d360605900a0a61b0351526285ebdb4d36dd9127c39287f281997fb59d699a6fae36f2d8fcf9fa09ba1c8f1f61a836e302d602bec015f8cefc2f1d771f8a5695ff0b9fea649987da9f5efcd1331526928f014f0516bd165cbcbfc1461c2ce1357d2c46c148bf8e870047a69bcb62d53aaf2e97a19f1ed53f03c5d7c335683869456b8f82923ae2af6c50ce1d15e7c56fd21863c9f9d0eca451466322ea32d43f5fdbc76a17791f8927142890007f7bc72dadb1b850666faaf77c7124f4eb59ca89b2703a99b3078e1d405829d0110ff4061fa54ab15e963bf768d2812280a9c7e173c3350de5b8097ea057e5da8b0c22bc36a73edadff92a833f026a37570f16f8a3e7c5249fc36e545937e4b4ea54e329f28a2248e2133d4ba24e863fc08d863b9f948a2f637746b8ba8892c0a99a593cb2a0818cde2d28e6493d70a7c1d2cdc85413870feeba319b7100c62891ea267512928c9c80cc5d6f57633fa8761d59a682097e88ec0e6e68d57b262198c9fbd592a1002abfce1855c8e0e9e6d77e9174b6f05f98bb2be779613de2413633f4d0272f3da4940b13f0b2aefdd1aabc9fdf4bc93881ca2452a9fd3aa40b93627b4c67548f347ae80d7361bcb890c009129caa2b1a0f1aec8fc7de607ed0b825258a304fbcf1b5cbdc75176b69345e66c485f669d42d69effd8830aa5a5bb833e8b75a696d9bb0a085aeb28b55d14ee17df54b9d4e7e35f69e65c525387bc65ea67be4e0f396af0afff6fe14b8407eb26fdeb62594039aeae58a739ef83b999230b6ddc316234529d186e847ceeab5f5af64636400e68620b50f3ff9d0e5cb60da0b783c226126367808ad4be2a055ee0b239a2f48005be9863a593803d2db929da0959402f268e0c12f2540336de20421df8a63ca8e0945d07f2a0cbdfd32f9d5d5cb8738883d90eae9a937a8168f05d06abb79477e79534a0bf016850c33f1aa990dfecfe85480cee01e9e5493046ff03b611e4f248fa4e246d667411d2e1d57c00e74a2bc684cf64872e6599b1dfdafed1a3076ea4168e8934b184a0f862ffc21943b34b36a1ccfe1eaf50f8169e5e0d8fa81017554334227860186e22cba665a35434a66da6ced6351c2956563cf8ddc1afa38e4a448a33a06a4bf156ea5978784b3854abba565637f2c5a06dcc95f0a2539d56c4d130d6c863350f655e0a7f3ec4935b5b4b90c0c333db151a8f8a16a11683731d4bbc34a53086a0d78758e12fa3bfdbe914567d75a58a75e7c77c3a27657219278863f10a634fcbf0de52ffb98c7eb197688824f579a23240c9514d6575165011ee3c5b79a99f388aaa629911fe58365f07a5a5639b0e046ff2f203b3b685bc7c0a406e23f503cb2166ff2202dacc61791d0c490eaeb29feef07247cbaca323088f5e4c429206e1e190ba6547ce3e0f9eb336497ba75f775a2bb02651cea7baee4c1d9570851b1e6bcb5b44fbbcb696a7b87c6d05fe1318f73fa6ef70791e717651b4c19a29976b787c16d9520f4d784b933fd1e671cd25a8996f21ef50a93a26575dbd77fca810a4e40ffb62c88bd35fb2d296594c9e49d3a622b06d09d12db15a0b099b3bda23f831533fbb2ee7258d8d15106633950051dca90f8f8ed4b58f1beee7349e66cd118e51cf6a347311873f6f4eb5a7afc3a58de6440bc0d6e93be6563449d95516aabbf8c8706d346f6b90917104c3504c3c2cb94813db0a5b79f18b0e8c5d1a43ae21c1efab7ecd939637b1a57cad91e550fa9819b6a46868429d8b5051849e1ec7fa559cabba46243d983bed05d131af7e732a39e0b4d1153967e86ca34946f288753a5368575c4ef2f7ef7f665ed17ae6308db514571c4f2e542bd72d59c1d8c7e20543c0767d2a01a1dc9511e3f5e8d4af76632d6edf46fad353f0048840771693a007ba9f5c2ef6bd43d8169b067ff1400c3bdce305611d71d94d3de942d3d764e8b7457a1241c63eafd78f7ec485b620be9815aea2f627bab6c5a414a905d564358607c756443bde4baaaa1b16b0337089e479f9536cbf3d5fcd353c56853b9092ef7acc88f82dbd9b656dd36328c2d38782075f8cf5c1966f3f9d0ff0fb411ae09d64e67ab977d108407324b5de45fe707dafbc7dd71929d768a4a2192dd7335264f3e07ec28318861c85e1dd32b0f89d84f4ec1cad0bd9a33bfee8b8b5232c9209937374d7e5a802b551ee2ecf75343bd37ae3f758cba47336c3588360f385cf6fec3ab1bf4ed029368bd1c46b51df045cd4bf5a148401a88f8748b361698fcab18d180c9df908d0c3b986692c7e479833b38fab92116e450f8a89616c622a6a5f08f9bd35e7dd854967dc092d88257a696e993ed186dfedc52bf14738f7cace37343869e289f17ebe9bb571723beb74aa4193cf4d5f16917838afb7b60555ba1a5ec2ef73d6724b013aee74c03e05dc3303e22fd5e80db66dbaec8a87fe1b3e7340355f95e69018cd4751c75c33619b81e7f05cf48c400ff4c42865ca80f8a5aeccce2ffe9582769186dca94dcc8fdb72a13dabc8a211fc916848ebccc79337d1ade7760a9f9d4c87d1b8aeac312ae17f9424824888b84de6972c739bcc625e969373b678d8d9530a8371a88c8b52a688f534fa1dd14ba28264c0412aef27b4d00ef35dbe06d6d76afce7ce7fd71fc30d6c0d5a88001a8c9490b30d390644855d99d9bdb39197cf58d57e624b6937ae73c6124617f8a1adb422273421a92146aeedf49f83ed0a824704ae34ca547cc48d9e317b8f49db5e2a2e20423ffeaa667411e4417c3e6176935c621f609b9d7b1a7aa47bece83a59020823cdc830774f71c5e0eb7d0cea6784c9237c3ca153b34cd14548c86964415967ba292c0bdb230c57c9b57f322d6b092ad66b82593691fa8e5e715ba67d82ab31d200ddc5b737b9ba6d2c21aa2ca349ff6c55a228be06102c445542b85da5c99224fec0457587d6be3afdd8aea08928e15f9b98124ecbfbec1d9acba7bd8fc330cd377fac3494f7c5368221f014f7de6b31755c555a4dbd5ae9e71a213f7af4c89eff975f5b131610fa1b7bb5c587e8a24cfee11963766abb246d5ffce9b5e3acb789184bc2b88e8373c99311d05ff02da844d80e41fb2ba2cf7fb8e47ea84c782bad0520a83fdbad68024b405582d043ccea546c2d32bd87b6607480e4c3296b28c51ff5aa87152a59a845e5247659cb7922c7a15828e7b6fed0f69f65548c92a01b964245880a5bbbcc1214d3319a1e54105b7933b559148c212fec6fcd1790830a2ad53d6eefdc71451804c25c5107d0da3018b23f87772add1a750b0c50b9b95e3cb02a35ad51db33b5a6af9bec3229f18d4f3fbce7d6dba8b14f4170cacacdd2eb08b45bdbb678b609baf67a5e5dbe9d8d939430afaaad0cf1d337b8bb16982ae8ee39d4dca57146e61af18d809c04aa56ef751e3045345fa3206eba6fff45d183ec4723da8cd3871fd1691b0df1bcbfba1ebbdea7753cbf9c71d923befe48b72a1b0db6213ffc2b999a213159c0a26ae2e9151e5a16546b4e9bdf67bd357b9027a2c41e97ede1ae9ed5493e0371d1e245259a4e9a567e7bc2fc341985c877d1920859a2b1648c986a58f2904880f0e1cfd1fc95bbe026f1723681dea37f14108fd35ac9637072e851a24735b9b05170f586dad15f4f8dd6952a21de2865ebaacd68b4a587e1030d7a9d86b5eea7295be9a6102b306515540471ff08aa95578fa83ce10f02a784abb6ce79e7f2872b18726b1da01961d6d64606bf6d7605fa96e8585dc7271403374a3da27535441a28414caa23f0e618fa8d865eedde21ea67461cb43914f0afdfc212725d7dce43bfa2b61f7f563aa50aab0420e346090980b0b0e9b6dcfe363e1cb3583e92f50963b8e94e14c43ce3aed57900ce965b4fed46829b4299eff43c24b8c4324a8137ca84734eab8908c8214bf0bd25c72b53fa0c25cc4114bc7bb693294d1fd6352531948e6ef724d52dcd8ccc00b8664d3e07142cdb53bf7459b31938f6938e7ba4b9234655cef37c4aff9ee75187b9bf42d4401095766a696b27f6933c7714cf08c4d6adc3b82beb14171c2499b8acd7a6a1ea1e1a5ce35f339f18e46801c915e849350cee5f78998a13459500a3cc4201cbd95334cab5c0e2279c5028afc649dd9935d342f1f372cf9f6234369640428012b0def670ebc04261ed0419cc349f460d58630b1387f9abbfde1997e04d5bec41ea2b9028240d8b25fd6b53b7f3198ac51faf0ca8e1371fd1d6bee12077b81ca94ee58a24a6096acd93f536a3d11ed2a0420ee8ba9c225ae18992234d877e9feec294c94e25b7cfcc1e3c0ffa17945e2a77684e86f39176f645df7d9ebf0adf2efe3840c8fcc541a226b84f9668aad1a7a2a0f07aeda2ebc7495f106b6dce581a127bf83077f82039e676b7c0b49fdd6ae17df51aa9a06a93224d3309f4e06d16c37a6ca1b3016a988be8cb62a4379973fd6a44c4b305819b02917e799eaa270c5f3cc84edff38dd964ca9f3a04e358a5dd4887b9389f4d611279734c59b816dc1af8a2deb2eb4488b72383f6be1ab30287bbf5ae0d02b7cb6eb37ac6fb943ea980001c962e41e48f40cae478a6a4d119d5b5e676f2ae29c47f12a8f869a8f71c32ec26288a36d2be375f343535827b65c3a22e153f75c65dd63493085db64d4e2ad069a1a7e23c28fd6f7adce9f97d586284f0b0a08153effc202c49a330f739ba6abec296024d725a11be7102eb32e4e3a895d2fb32e663bcfda7ff573b7b2672c7f283d552a229b478d3a6744774ed3bc18d1188c80b777b73301fade2c6764208c8f71f9f7e013dab8dabf2abb20513fbcd2a20bc537c670d25ee8d588e6fdc8195a26ee6f8ad419c1536033de58e6132ef1a2b5f875a16837262671b35946583996b17c23747767d9103abc4cbb64af6944a064cba5d70fe839b8cd5e74350fef6507fe5e619b902b4f3ae226f8e9beeb44a96e0775cc5ebca653a2933bcadfa11520ad048d1d6c3e86272ba845b479d9290005755c16fccf3da80a0565cfc548f21416715832ca99ee339db624de47d37b5ac0baafbacedf9ee0c83afa39916ccbd53120ff755732e4fcb42eaa4a45e6d70481475b92a3fd94a54b43f63fe16904410e27fa7615bec4f4474efdfc3d6cd942b0bc32b8883ebe7808b9b3444de8f91375a8c99f4130ad69d1b9ad927970ee55c82ae4aae2b8b55d13731470f35d32e0c03fc50ce8de7d879baef9e20e47cae8e76b5fc4c34bee5bc92ba30cd6700f4d08cef024d90135fa4c767eed95f8d7e78f8f1085b128c693018054f621bace92a111853e6eea0970a50b4f11afc250d7dc5d8e7cfef9d001002758972a0d49c8e70ca2c82bc7fbda834a93d6207a2cd6106330be16cfc8d41e532cb333c514d6ae0b8a4640ad53e15452bb0c98294ba5c13c023132c23d3a07f1c0226ee520b3652cfad5e79c4362e93c1d408e0ad4cdcef6bd77f42903d83ab104ebd597079eafe19b8f6de3913917fc05c306d13ba9b65eee995b98bc74017b3f76f71361a18a940afce5d738b85609b4364ef77290a2e0ea9bef0e5793c0c05224a965bb6fd5f459bfb2b1629dd79ac11abcaddb16f7ee9448f328f1b8780c19085e5990696e53d70e447a444b04dd33e0a3b35012cc8747d5e83dbb306f4d38bc3b06d722327347d339eeb4e3b395783a01cc6ccf67e8b2415087580d6904d98fa5cd7086ff2ec5fc74dbacf4c108a1da9b99cc50a9b2aae3585200be39345691fbe48ce3644d73fe7c93dd131bb89b73b620c0fe7ab5dd82dccf611f3fc2c880b096f24e1d48e1da0114f063423e865ac067937cdded3b987327954f9fa98e1bc59974def0339bba2fa24c9a18118beb46133c1d0af2ab40932345e2898a09591ba46f9c970ad5c711de557e2342af7daacfe6a694ad5f2fbb7111e38fb40c5627b90c1d60e4a7655b6858856e0b3d4f58d80e024550228ef843770816e18bd0ea6248e97ebf5a3181b7412c70a5ca2d2348748baf331c71e210412e2e52ec50dc524a82147a5980f0ae3b0ebda312efa1a73bee1de10ab599b4cfa845568ec88f523a30201e2d0039156f7beb1234f10f793734ae247543053b9981eda13252d658ae80cbde49eec6102117f07ed932fbd3e498f630570cf1640833b18602bb56d1a4e0b15ca158d0a8bc3d7d172c01477154a1b4e7652f1369e5d94951b71ff67a07d4d4ee6a61274f5dc02ac82b8e54ae157b108233548d517a3c4ec1d2f8957e2a7cf9e0887fadce7d24259f0137445823c62526d262ad4ff7f2d86631d570f69e4d7d991f9b5f4cc800509259ad3af50649ef60b8930105a9336db39b03477026d415ca2203a2d280681a0cdc66ba4c6e80dc45b9093ba21187d8da864939afa9af36798599ebf887bdf974ef89aeba107f7fe6f1ad8850a7c79f64089841c55f1fb48bfe0c5034a363d965ae4e5c462e23f840e08278abd360d8ba6d0f2f118603e803f4ce73343017204d29bac1a68bc9940d291410f0e560914ac8eb14382f10bb4289651e6bd43b0091abd7443de768af848039ff502815972b2c43befb8629ee318349e05cedc0cca8c68a3e96fab6f00ee38f8fc5d66194a4289a1b36aca33ae3d1245629cc165294a49772fa852b4ce4268a48d016519df1aa30f68d5e5db4d88f93999504a7c3a89cfbec2fe44ff164e52fbe319db57b3fb776f444e41b6a7e6051caaa3d62eda22934ef5e6b44508fe4d1d5bcce40a93accbd4527d6c71b670263f66b6bdf6e383383783d5f1532510b775d3385ff98f00499c28f08c7a621c4e9ce7670e73f6d442775135ecbcd7552ec47805d0d05aad92cb62d51e756d9b353c2f7f08a3922bc4dbba8fd56d8480c219bd33fb1f783126811590ee4520d68c0839d6be0d44fe4311a6129bff26a130dd15d20892c589ebe2ec3a2e178dae4cd146aa941dac89ab61d4cf199dd53593c537a85f8904e0bb5469ee4ed1bf655e2944d9086c93e748ceead66bc36ebbea13a9aebee9d932a4e5aafffcde44685dc368bb84cb1cbe1ceb520540133eddb06d6a2d6123247ddad50382b95b07b4b9d55a93163c21ceaadba6b95e9a7fe5091f3024f483f176bc90a2af1a0cd9931428967c02aa3d33bee9be5b08ce8ae2e8caa62a8ec3642a6a47ad1b6f8336a1a4af89b23f850639c86ef290a7ecab036ee3877a3a9b625b232f38f1990f6b8a89bc8d9068f09d9b87ad7d06d4707420f4351714364c621e972c509637f03092b797bbaba5928eba71bb8e3868112d527bab8e793f8ee2aca505727891d2f283576a49e4d61e11560574cd4e84d825af59cea33088ba2d60eacbc649a75a00ca3ad2eb858116811c3b8629783b9bc7493488dd91fb4177ea6554a2114ef3acfcb34c15cfc4c20878ce312e4982b2c43fc5ba935368eb6412e26e7290ed14278598b661248fc6956ae7b44127addee0ff8ff79cabdd4796624cd2a2bb67b69639d4071f09d47ab8057612c150c6620227c2866bba1826a45740b5e2ac99fcd3bfa07e52ab81bccf2ec0a24cea2c8a2759957196ea40d62d53e159ec6109a7dbcd8e1195237fc907d187d8b7d1b190c4aee2748b08a07d5971ab47d3327d835ed6b5fe62d9d73b09550b9b23face557cbf3087edacc6601524fdf3987fa263ef4e24fe5c70f867a4dbae06feb0436469e022cd452835419a6da35d3af1e042775d30b687e71ae396eae24feb99165f146194db3aaeff5dfab088e012828a5b14dc424136e8d4c2227ac25b6fb2d1ce93a571d5dd466de1fce6e8eb1246bb78ec5be2e447e3d7274658b693253af7119816eb924960c9ee07f1c523de304c274530301d0f5d84d6710786ffd5136d87ae269ad203d58e2dfbd66971ba57c73c822d3fce72b6d0a5d007fef1c4be9f8a3a25ed3fccef803aaf73b7f736bc95a73c1c53ccb731a41c4e7b19af6b4cac434233317d8d250d67a17b91c209fb366f6cac86a6c8b64f74af780145e7f89752f758a375318263c2c96adc2f12ba73f5accd44375bdbf716fe70fbe9c14563a55347cd3dc4f92eef8b96015810b09c844e744d23e1b8c97f5c11c2c44f99836747b1659ddf941634d80c8f2fdecfe3f873fa10aeddf3dc2d77ca2d0e1ce3248243eab65fdff5943e4b7e8b46d2698a8f85fb16492031de5d37d368cb44a84b21ceab8d867b07fff86d3db3b7c8b68e053c2284ec0e3021532a91c6752f06c88c26a101d85b0d7a5f164a1b6a782c3d456e7b9ce86ddc48f271cf93a41cf757aa89befa9b0241dcf31856a6793d311b0c8b42427d0f78ce85d8deca2d8996a767b3fd778bec28ed63fa92fadf41b15d6218777db3b7ca5eb7363e5b0803982af1fab83bb400232fda22c990d0a249672c51b36d834f8b9b5d2d2a99ffd15d6db5fd7cfb7d58a59d82bb241418ce35d5f8193d3269f2148cf79fad239588f3507366eeb0b8c2433199fc0aa33ce59701cd5f720656d8030cf2119c26e47eab5451f5ca4648633835e5873ea1ab6762bdcdd492b7f827e3681498b584750d0400cb163eb7284c01f45eb0ea294e3c0fb742b97297e09fbcad773244c356951b66cf46ac55f12a9760518783239c259577753d847b8fbc5aeb3601be8e0087918e8327d46124d98312e814fe05f7c52a7af06f89527c0e75b9e482807de283c93dff5637b436cfe9168b9879beb88c4b93922a22eaf7f09d23eee5cc2ea79f0b7927007753b9e2c41fe6591ee7d65b3f95ec4ac7d1e1825cf340dec3829cd76d11d08af8037a402f8cf4e0860f9bc5a5e35aa66038e59a15fdcb6d2c863ae181c12981c1f078bdc0c2b1cba5522f533734bbd48d943115f4936c7a614eb82bc83032abc76d151145fa6b4c5834c37ed15ae66c5f37f892a87dcfa4495b84a4d091695edecefbe38b7b830b80d95120085721376c40cabefc77fe072ba51ba6798fff76e0ac0c184ee2313f358bdaa54b118f5b4e88cbc5b49a9c9689655462fca26b73ac5d4cf3ffcc25e5ba5a550322ef7f7cefaf3e14197d772ec497c78a04477dbc4e6c740091fa599a1defdd9aa21b3e93ff06d7a2aa693a92ae1166b9f14ce38ddf32f507268386cda85425894e70dcf9b984e0f4690437787920a604e351a1396c4bca9c5bfdd290158a19fe47267590805a4be5547d588b4c48ebb9b72893af77a1eb159693ba2ea2d9d65fc6f55a320a1c4bb3d249e28b465db04612d5b04eaabd281d4d715c324315a68e8a29cd3538d62c310d76e8011f8432d755f3d5b0469efa0aef7c972632eff6d031914b703024504a214134ab1db9c4619077a1d40c80694d3b6fefef51109029ceb19fee4194367be39f460456182240c1ede9c707a4f1dd66d480c6d76cc5376de96d400d965359895324b2b03dc397e160e1a17b20d8d7f14bf7fd2186bacc00638229dfe338cd3abfc1af83ac228f74b5350034d06a8d4797ae47c6b6f651d52920263b74ca8ae4ce5eb1b3c815b47d3d50565a069bd3f71a83497a7fbebf7877385fcd1ee28d8d2ac15d4601416045e32eac4e052cd699e90e653e3fc586dbda5d362838eba891f62bbddeae1d8ec12bf7b86bfcde4d7da7e7b3cdb8ab571ef9dd8dddbacb77f9c50712978715ebba7e4b3c46c9739c42413208fca04361272fc4b2c3cd6dee067144c7238c3d2d44c4a17613c30ad771939723c633077ebc668fce64b5fe02fb4da910b185680d1c993587c8f67b2590940eef66bea0036599750f1f97ce0e3e13a0fe7455237e71f532eec54142ed02b88409a9842ca217b7f65e0f76d1ed56a80dccb14ea58ff5c8f934af91ea141cba0473ec2bed2288cd4e05301d173c60e3fc9fd44e527bf937490ac0abbefd2241e825e95010ffbacd43db5521211a4fcb23d1d0bc3aa54677613582b2980928fd2fbf0a1ca58d87c00de8cc5f306296489aa472e4cef2887cb57c530ca293bccd717e6d7a0df55b3981e9e49740671194f038ccc09830bed6be1e30c717a1ed25a78e00acd64c6ef34a8a5a3f52572022394188a6897c799408dce49bb95840195b1a5f69cce3366232d6e4cfc0cb59283477ef79fb7041003850c9c42565903d8830d37ef37513d53abbf06082764f94ee2c32b04d578d080d5581c6f01d5d873f3a71c30f5995584d19c696f62c31b87623d455ec8e1702a478f9df692cddabad2c8f659969ae21ccd36e484cd65b328248cacc7060dce3bf7af5c90c8c56376720ff19e8599517b4fba3d947ddbe44d4b645e2d8182289126f170cacc28252d940683cb0695e88e973a4efff5e094f5b063b20a44f8decd8dfc2b6c3a466e10374b7af71e851c63544ae7b259112b6d59fc4a753965ab3048c5f7b04210c08557e66d421a7c5bf190a92731d7ab6ca82604fffd3166929b8d10f825572915eb360d16dbd648b017edd3a5ad7a890492219158327ac67cb26cdee3a7a90a99281402996cd1f4f85082a4b7b740c030e3b8c9a5609c230dc787f66ccc1e7feaa4dff4d9c6ac31840f7eaef2190b9db813695917a3685234aa8486489f7420b18cab366655eec66f75158ac8afaa27007f36342b094d4540510f8c9b961343f117b559bb163224e3b19c8418c01e84e4e8a9eab6bf2c3dbeaa5e1cc821a401ab4f6e48fde11829b5112351269bf1ff4e44e77213108c3e59b29d03001d1ef5f242671c88f50b62354abb79922fb777ea018cee9cab1f72ef9380b2a099e7d9d6180c0704287d9ac2b562c51e9e7c7fb6facd090fe271ac04d5674759195eac731a27a19b05739ad4870b78f83d4aeff87c81b4aa8db756a351ce536b0db12bafff930986cd6034dd70ed2f524926d8a769cc50321af0e5a49ec39a4941557c734d77f48bccbdab7cf28c329eeb87376e44808ce86ab2a655e084c6e88f914fb79d01faed81303e934fa231c8415ebedbee4dbf62aa5dacd1613d3caabd7ba39ee03a3079c2676d94809ce6189baf1ec9b567570dda37d7414967c78f95980c7db924ca082559fcc9c5e1873311f02498b3941534a73a4d30347075b12abd3269ccaf2185492de4b718214eba05fc89eef5f781c4720410c7e6355936f0839f646b54e40077140b140997e54eac2e98df6e7e302d9d935490cdef91c84460bd6a2063b7476665319fc6a25b386f3957e8b476de292fe44b593863bd3e32180dcb4f92b300a2487eb915fc937069cfc663f43b39b8dace97412da924fabddcf35509f4130f8900f2dc148e37374320e065966e94a7dc8b1229ac1b536b7d218dd5ceee26c073c0c2bcf9a98d7006688b73ea3dd503ecfa95db681295025f499ee4f768f13752d77ad63bec228a3dd5342cb8115efc7266e046e6c4b77f2077976558f7c781b335859b6a3e34ba4bb2ae3b5237214488a5ae0a11152d23f0cfffce93377fa5be1262951c947ce23cebd2337e4dd6295a2d479209add0ca999537201d5a4e71df7d72f8346efb979d086444e5dda399e63e466da5632a11395866c9b755d6cb32c4a683b7f1dc7b03d9d46094b16992f98fb73184735240d48f0de76647dac5faeefa75a1a8534f775e5c7c7d6f61635a5898f65012829540eaa9fb40777f59a5fadcc5590512f056eb0bac5885c6d68ef49739244fffbff33207403b56bce79082a32407cea076724d3d2eb7b4aa5c9843f9b487dde243888deb533df028adc2211df1e22521b5315070de260da445b6cf0116a4198ee5fe1993de6581b924c23f3cad858e4a5fdeb3b092aed2dae49c5d357b4ab3df6ea105e8e3be669b5bb5152156d2cfcfd5de8ac920dfdd4952c2481ce035a7ee2bab27bdc79371a8380d53f908a678251508d732a6b7b697b7ebdab5fa6657b23f001873edf6120832d85a049d39e5466e7334a8e447fdd97abe34674ec2036f440251ebf86480e1e785a9527088768e4ef1534ece4fab5b8270c1a166c3dce5c161bf3eeba09bc527afea8f62edf39dfa7a60102eac3c716d890a294ab7f3bf6ecf26ce5f5491dd2419c75dbdecbbb5a7c4c921044cfe205598509a19459965188f32ee0f4900069fe4e8892620c18da5097bf14317032c6ef0b34140907254bbb6b31c8fbc88bd0142202b7d8cdd9de1fef29eb3488a7b2e96c1dad8b67f468e2fb3c07b43b49cc2896cda31d02ab5f9d47a2ad34e65b594368837271330d0272750c6ea40b3a47b504449cd0ece1dd9d5f81611ac7c8ea101efe3baa82cab1518738db63b48beff80be9653512ffe63a4405697b650f3f2603ce561abf469b307ef98471080d578a738d864a8c5b038e977f9037bc19be6ec5358bfe208fdf75d11416e12bd527b20d8d3dac4b05ac0b169a37bfd4ed34573520d1ccd1f604525e869a9adb6866f7d4618c752f969bef5b3ddb7ef4d53f827edf537ba40bb4e20b8538e1e3c0eebc74e457c05350e25c6ecefa9b65d13e49684cba7f3d49bb07d2c5911b19a575b20691b57ec8f5d6025d14955e86fb23820004e3c9a107984952251582447259580aee2de0779fca68f41041ab2dbd3702806f9e549e348a91b9838074a00c0e9a7d813aa576ee6f5da80e40904d79cdf3ee4c5f7f02772a382bac9b623e35b9335efdb387ca0b10abf860ca3032dbff41bfbd02092bfbbc14344ef41d9718021ce85427258175a386e857127cf3ab74a88f42411779000dbdad4ef080729d1bdec754dde1c6828405fba1eb2afffee032563000fb7cfb7c22f8b4960cd4e8f616be2d3ad17d8f385a3aab6ec84c91fc4bcca7af4c86c59acc217057aecefface9b88d158b1ab0c1d14fcf939342ccf173eb31c4b46ad0661540b080c25d315ffb495835d4675a995861c966479d5486a13764932275b894c66cb9dc183d152d0ba34f8cb2a6546849a623adfd749be18968e099905051ea93f5753daadefb0384b974050ee73bbb0d0efc5f3436c6140692b8f2ad7aa0f0df6d007b1829a25df612477d3666e6d13ede128f58469fa7c516dc9eaf412e536dee528155316359210e3babf3b9767e6ee6c7226885810bec8469693b70c1fa83f28dcbd492156b2bb2da2217af9795725752dcf408088f853c1f7d74a642a66ed5ebb4d3de608f914cdab7daf6f80c5f0abc5ba3eba5cf91893266f1837cc76b32b860a82f06ab0e28cec3a8837228035a6745d0ce003d7e0806262b2d01ca241f3dda3cf8324d10d617ed662c5bb1a26297578f44fc758542777a9a89799b2c52d2f8de592e3be9dfe0032fb517041647d5a900fe75f59463bbd11f51b0496fe3940daf41e992f739798337d80f53da5d4e51c291024344269c995866fd443cd2f9e5359f69b76a0a2e6f6df867fb7807cb2e51275cce14be45cc4496d9540e6209051dbb98803a325cfdeb44b5fbac34085e1ff6c22ca6479003600f7ff65568255ca02554c76eec83a8c38c9c08e30118085891baaed90d328d2317dc5c2715ff4b61570f841ed26ea59547011fee3496c9833a520be50fb7cf3068d92c51df8a64cf7e4bdb0a1ec2312dbdbcc01c37e4429e38868d326d997ad5a1aca6c2134ef96848737f96275d76ec8a2ae26307c2335066c1430a3abdd8f15ed14e6fd630b80b963e92dd4866351a3ee889699c435b4fee38452476d6d7fa43ea057e98177644987c4504faa1242536cd29ddc59f3d09fa6c1a48018befa47b841f5f0559aa947350a7d7aea3a44fc20558f28507d64381af1135327b09a0dd57a655816223b6ea296eb377695b36c9dd1af73d5bc4981e4f951d9db7b401e373d5ade4bcd8635c230c20e56709e8f5c933d6bf67eb6b881b4872a587d7732bc0dc5d1f707dd02fb60bbfa30ed1d5998ba04716700c62a7307beb39ca263d0337aa2266255da455d619dfbc534ae59011848e5971fca3d79784a3fb159a8d37ffeaa2738bcf069ae89928cdbdac92b4c82a3aae6f9903b7960c0ab3ca1ec9ee0d997f3d293ac107be5d33dd53f50e9eb46d6e4901c0cc51d7399ef383bc5d2c2303f3ca9a1cc60380757ce0089c896e4a9d936271df107533593933e194b6d61d82318c545cdd68795567935a07168f9b336080c85fcf71b624a1fcba58bf2ec4ef4c2c08a3a2e69ac4058f662cc4329f30ac5edfbbff7a2c21384f87ca7b7107db422eef2c25ae390ac0ac00f87bf9bf6b1d2dc8d2a5a239080772de0bfc8415d45bf8f5317d2b79582fcc166ab9f6101a512d2fcef1e4879592fb07e71e1d6a7381f13a2e0e243c09aa8a321fc161b4844aef344597bebc8c1170d4ffdb6bf369968b00990c7e829c4fb456ef86eb1a19b845a1f0c93edc357182c662c5b27c5bcf57aa2dbc2efebc856721715893a7e754c95993738c24acfa28ba8c0dec783871e497f871029ef608e89859e3e13c6e727a177d6f43f031bc02edb0171993ec0ab1d39fad4244240f974f44e3a7d5ba89ee954c606206478e878c3dd3a63cb498924f3a452687e66ed500551ce5fd7a6ae175feb95d947d1ae18cc40b262ad8a26ee9d534512c771f3751a2f0873ae20a7acd8de01e28116db08aba0f4b75e6f754def19199637fd7f1803edf063b2cbe093bdfc8f7357d595678d1bfcfe2cfcdc386276394ec0c90058355313653e5aa5e5b07f86f1ac87ca2c26bb838f23e3132f3f4c8fd21635748abbfda51d0f1f2c1ea1b319124616cac703cd919e61f127e9f1213733b67517d62278e25d935b5a437e93798618790a0b628ebe8ed276c236f8dc71e580fe558485bb3b7b4ab8f8fc281331f8dae51a9525abae61cbb70042a4e50c2935961c1367f749967daa00b420f09138c3c9d94c970c4ebddb59103d2689283a9246bd1f0c0ba72980fc10d218458635c0d0268bf6d525cf955635fe101241caa23c88a45ba15cd2f92306a77b3c081e4439ba8d34d4fd6414098b8ae2e3c168d8be848d79675f83b9b9945697981c5f8e941ce9fe70ebf7a4885e69cfe15508b578839df5ced7c2345d7fecad0e42fc540e0bb418ba7533ca51b2474f7ba5dda858ec2848fcf3eeb68bbad7d623de481ddd0216d4d002733a4af85d9b13efa61ba3f7dd4b16e005d31b9ff8880c4cdcdb49c84937f7fd4ac52e066387614ec53f7e06384a0d34640b32fb3e2a0aee25623974bd568b8e7ac08fafbb781fd731620b67173f14cc07a73b71a1680c01f7b33108a78dfbc6c669fa6497c975e903b5d8303799c591104f1386210e0cc32f111cffcce9ec519d17e03261233eaff39aa8a9d063cd8572d42f34bf6763a059969a5b25360a033a09ffc6fc7eebbd08c1b76be11708bb5daac5af010549e6d95e8bd4123e847db724368192cd13f8c1a1e0b47a9c42a622170cc910f2431328a607b32923d9250c63821831ee03732ae2b30b2c79ea1105d4f27eeb84ed3f991efe00013feccffbd61a4d1d59da9dcfeeaff0d836e93e24673c89004c17853ad9898b43f6b71a33e04e775b187d5b19da8409d98069cc4ca22335cb344d7172634902055598373b47a3d653bbc5640b1ed50937067aecbd25b2e6e896149bf7965b8d4999a60d9c82c92072379f8b2157174c26a5b05a09650ae12b02463d3aa3c2a653c7eabb7882d51c9abe5e849a410ac625ac809f5b698f3d8a91367157a07de45116aa65714ebab0198fdb28cafc6d293dc53952ebcd4c2f9bcc938994fb6ecb18fcbe5e46f8d512c4a7df8646ad46945bff3b6751a3800f8f9b00f9e5048badfc9cf8613ae41ed73bbefb93f96adab6c99c7820301303f580fce859fe80c2628b15f9cd317127147f612e921aab97096e0de80747e38955aee87ab1d67e8963a7b6831042f9985d2372ab1f1096bcb05c3a1142747e836a9f77a5898d8a5ae26257333b6936c9b7707803147a759f07071630baebb218eb0d5e87542ed8aefdeb86377fa3a369bc414e062707c4f6a8552eeba84395651beede3387a1eb375439c10bb4db7ed8116f11a5a7d8a7c5333692584e701e9ddc0fc4c909cf9df0bbd89852a88d692ffc9ebeb9cf878389f8a060b7a329d487baeeb23960f313af086bd6f63129b8274a821f011bf9c33cbb8e36b5a7766b9a20f91374cc7a3cd8725e4bc18e0d0ddc67c5a7847245bc9cddc50dae9ec2ac1fdb70fc6bfcb679fe5ad52585a43eae5bf44575a8d73b58f836e44e2cd34581b96eed747fe52cc9ffbbe15739ef8e28ae209c711fae5226bcede8fa9fba08993318bf47e41bc90e6bdd9e51d5280c854a09a50717e4bdde5052fb5f513e3c171c5f1d98c35a15e159394fa4bf2d642546c534bebf833ed951e15000925bffc2683194095029bb047ee0dd9a70d1a3bd7e174b50c7bc1a9cdc4d1ffc14d6d41013305ae419ef93753b6a035982a47582d7bd1fa31301710a7ad7ad30cd7a1acae79c4a0fe1e68f84b3b8ed8a2caa314c071c746a5bcb3b4cb3467ee86cb4ad705bc7f22ee77d3ed7bdcaa33fd5b8bebe6cf5770c667f19c8257cb4a07fba1f0b9838324c186c709754cda27a0860868af4bd608664ce413ccbf5dc85980cb17da6ad13ed90c0fd701f134e06a7cfa103f5e1d159978b7b440933fec76961d62091987d06f2711c015ab48e1bc20b1e50a8872da136787f1cfd9de58f87364180a0c1fd13d26843a84fc2e722ee8be495922648d3cf3248a4345a675000dc2df03389cf5889fad45dfb9b507f95aa88326c5377fddf926f1c3545d7ac9cded90247f2a3e834728b56bd79631c03c9d0136c9641fe673084e4d722f3530b0e5222f3588bef0da526c3f506eafd2547f45d3e3972e78fb9f992b480ec2571f8e659f22e84e1c0cd3424c4f6c56584806224a272e7ecaf0c14bc439818df0e7e16b81bb27162cc2d1ea79d21f03900000bd9305e65c803850f86e362d65caa8676be2eacb83aac7d17564039893648384b185fd58fa2e4fedc9b9b0904ccd39553ffa8e7ac60b67770b0b372644277b17a3ac0e28b6faa586106d6b639b0bc4d0da3fcba29b2d65e6d9efb2b64f926aef4c794326e810a810bf9bd4ffa78e20affeff17b052e9fcec6041435892496272058bb77a508d63482e5c5c937c1bad842c5d86c39abc70f0e7169758b4e847e0428b59297d94bab43e8e645108ce02eea5b7042a758e0a562fb0965c6aa4a03cd1ddef9ac3cbeea683bdd19a4ff81a502ffcf73ad1b57bf867e80c8ccf3175f2b8fb9a9f65abfbeba5c315128dfb0f2560c9cd8fd54731b7c883089d815f23c5035ae04ef4eadd1376fbbadfc0eef1a3d104acdaed26e4357fbedb1aa7f6b3308e049e51ae50d700c5bbbe26a830cba74ffffc8214e445e3dd64352346bff0daa3f9db41fdb591ab8acf1dfee8f53ed8b2f8c9830c616aeb306cef65883af9db011b8bb9e430af0bc5809a3732c8c2778bf6a63fea6e52651be165a1479ba9938bb23579f3d5031616d60eaa4b0a6727a64648800bfcc98a4144f915db3105cfc330323446a3dba0dc2d3c53a2b9da600d06b5af7525e86f62e781d7d110138db556fc3c003e0db9bbf8343866680f361fa5407391e123837761b0fa7e29e74b369ae6f1542fb4a69068146ff6fbb7db256f2bf3bda18522345d89664ce55fc81a47c52657569f568698eb66296523b8c59ef44ec10b2a705a76b2d60407c8046783f64ae78ccb2d3233dd46b8ed1efeb8a99442ce7be869be27b59d8f6cef2dd2b035e975809a4941b6ab9defdfed62e668aad454756885000ec133b506014fae3f7f0598b8526d264e63bc1f7a283983401c886ea3f9b4527ae865a307154b7db8564e83c2e2f2077a382ccaa53b9200c3e92ec1768e7bd60402bb0bce7315aa8016accdb84ae4b5b1056370ffcaeb2a819dac51b182b7421c1f148ee80ffd47c9ad0e400c169daab1dc5e304fae6e5f22abf6af09ec999d7893ea856a9c0dd5fc4a236d44cac4a56c97cb9d5c82093ac21f67fa9d674b80bc8a2b90df256b646d75e0651c4b67767626c25268db547f498b1a862fbba72895c8d20b0a9dc8370104d57c71e2c454b4d23dd0a2e3b34edf20b7c1b3f17c3ea404c6dde7272dd9e23de3c56afe5ecc3d5618e3ac32b7fb5716c896cbaf314d136effb8aa0943c4cd4fde76efe91a6c9090d9508debc2d48ab506f6ba7ad59a8261fb774a741a571aba9ac745953bf8e9b8d677fd7f0893c76c07fb462c3103d79fb04432a20d79acdf838a8b6cdb516806d14a24f50cd784a424ec50cfc6a825ce045510554d8a93b8d4ef97b928911d12222293c17136cc6eb14b2db7cd8a0d41a7a7d02c148a88006979a564a581237e035486d311f41cf002db2d9d012f9c2bafe635f65af156d53ce01496d8ebee89ead74dfe4b67389591b0ffc78e1dbfa18ab62d6f7a6a77fe50a8a47b8e2c19463e9076c5874662a071c0765fa398392f146a5bb85d2124fd73c2861914f098f437edd2e8113ae88477b7f9073d5ced02947f0e8a0066dd4cab27ec577f307affe3afadaa3a2408fec64394a9ae514d284955dc00550047f0f22c5634c7c32969a7bc61cfea4b7e746dd337a83c012418d5332d6d18010acb6e6d85875943a3dee827e316bbe395791200ef447f5b9944bfe81d356a3d472354bff91f48da4e61abd4dd77f30f20a8387ae976a55b74a0ae28beb8f5568153a5084d2293991e179e42a536423024f17168216cdb18edbe7b17e29b5de15a2e8be1435d7d3124ad142062a3e50cef22bfbd036fca66ad8cb4e0a316eb426209b1af55f246f26314495ad6c219aca41cd3933b28d9bbecb28e3c076ec825623b44b8f58fbd0ab8a119494ede9cb85c11f97b3a42d69786ebc8fa6fef996993c26ba7edb47f27bf0839650395e1cf50b9fdeccb23237852a8ca08a7bf4855ea378f40414e505847a13bd88a13b3d56cb3ec42dfbd71bfe847518f14dcf0e6a83cca7c485c715681e038db85b4619894a70cbd376d8635b4aa08b509cca0e9f412e48ae3f614511ed6e68c7daf001c5edbe6492c9384f8f57161dd6035ffed41c63513e059e59415dea504f370f2552865b3974a35ebd099d626b9a1e0f8a7adfcd148def4ab4d43788cf0d478a540d28905a2942df6071a552670e6dba0c00eb1c60add9423e00adc623cb4d138dcf8f2c71dfbec2bf5e54cdd0b6b2062ca7b5900f1936ec7013f1e27fe7efa4c77dcff08773e1dc892c0d9393b34d689ecef6eb904b790f4a8f2f00db90933b8c24b8cfd56d0cf774874b3a5a3e52c88ea11f79e2f524deb5c1e958d46c859fac053194b2db1771c29b06b79ca8274a3f181ee068a84a01addb22436c67bc12e94edc1b86a76f837b2dff71753abeb08cbbeb5ea159cf737c55683cb2c8974bff6746b0d24226017a363a308d90ddf51eee8558d47a16dfcb9d11f484e289ad8e9f8182e1b28cd9269542fa6bda10eb2bed124d6636a6601ce70650f0153eef3c0bea93df7af02e74d42cdde1e9244be45d2efaf9f9f453a0449e7b2183ff102b4f2c1611bcd5543eac3206ec419cfd23aa7147c373174289cce070efd9ef2d9ab0bf2bd654ba9a6bffbb64c9bd89ed1ab2a7e6a797dbf34b80f12190e64d190d4d9d682c57d96c8a678e7af8e7534025a5629b12a68370fe17eae92f42691b16573541f64a9e652bf7625e60264da98825022211520d0664078300dbdd5689e58899f94eba816cac26c687a26ec0903634e84694ec37c058aff38e98214317143f3e7109fc9a6a2dd98bc38ddffb70531fe59b77dc85c41b1b96ab5effd895a8d7261263243887d81934c267bb36dec5b139de49cd2d2909d1fd08cc558f23b84d7df92f6e12c6a80ef9563b2a4ea24d7ad2b79806eedea5192331906ff1b723abe4cd8bb25dca960be3c5c61584d0a1a26405191a7c646f3ba95422ec3d4e6e08fd51003cca2244990a7bd1feabe8fad5b3aa5ea38151229d08997ca8d6b3ce9ad173745c85f5c5a59625480ec14d5e182dd383294fad00b0052d9e3bff7379b68763995b417d1fa97aafdb9dd8ce408e6915851c9247bab3c7b48eac953ab6f28f63db4c155ca3aa69f56da4c431724dc9826e973fa8f6b4128c080df451d6119ba71722c8c60a054f32666fa6ee149a9fa0ec10b65e66b62799fb9694cec4e6c7e7ed5e50b324123f42ad03b2022df965605d1f81dca7a55be22755d961ad8046571a254fd11706ad1862450a450e9963a89443dfe1424fdd8aa652c0d7ffd872d06904699586bd981c1deed5bd8cec7603e4da39bc8b72803b83c523f9f67c983aabdea9540f19b61b217c681e870e3019f057843a7f1334f12d42d95d8dc3f2bd5d6473ceabf1c1b8cb4919850ae0dece21549d883a4cfd9df0096928e71c5abdf514733f46a46f868388c28488bc3c9abdc88e54db6d8106b0c601dbbd6611a610c970074720a296e995e695131158d3064b2e67601da8e3a926cfd3ad4b587b2219126cd81448dc97867dbf8c2c71623686b4fc2ea4f20863b0ef250d4631ac261cd71eedab6fe12fdc71b4ae38d9b92d418f248b5953ae9474a1870a3d9e35b882b493813cb867f04f35882716baabf0b1866fbf286cb01835d2f7ace7efd2b014ea70ff82a52dc99efb0a4ff164cf10aa921b6dd419b922594cce0ae5202e9f795d0cb3037dd31a0c6693a17965dd02346f90de391d76d7940ba4d27df79d18178dfd35a26198237918b99882cc0cfdbaf097ff943e5a78d77659b24ed6dcc843da260d3b0d24ef21fc8f288e7ef9d9ca04902798d619ab674372e9b506d0b3f53471bd0496bbf43232c7ccc640fba4f8c50b90d6b262f47920abb6e5175f5e2bbf1f932f508d2bbad25ad82a371ba6d3935266560d78aa998a9c33bae1dd5851e0b3cf32fbf4bdfa16f898962235ffc361b53869f355e13fd028399f32945cec9f3443e523fedd0ceb2985a0d330acc741abb4d3564b6c5386b01c1cd3941b23bdc005378a4e9550c4df33608ddbca64e3af8f6379f45429cc4e026fd8f27fd378621666c3e12c9807f350e310d1ee938d1e1b255cc4caf4af1d6408952f893a21707d5868b44c1a99c2bdb6446a272e9dc8c86f7a8f60547bd9251e01259459fac195f4d2764fa4c52e462f521ae994a077dcaf53940427d774cd96e41c0340923d54626745d567a6c059574c02a91e4606d4af02218687dcd239a2991a441845c2b073b32eb63840efc683e3cdcf96718469cdd4f3c6db06971db1f9817353a6051bea7d419466092b80c250e010cc9f1fb3708121d6220112dd1be797b461258cf0e095761932b5cfd4f5f38486ed7512f66132379b40afd78fa1e160d6eae9939481d1ab9abd0e696aa8ee8de1b5eff6460cea250dc5c7eeae02d6f1d3ec2a479d57ebd49df5ec8040a65016f71bf5aacabf99603adb5ff0c76a0a66d05b788bf48a65f6d73f71c9d6ff72459784ae017b5eaf91169c9f3a02f7c56763ba08bd0e1e6a45a1b607c5b499ccf7161f69511a219cac1d11534b77cabae31b1e2cfff6a4b029337f39ca119ad64f22bbe71d618a8405fc12b49324b7a787ae5309dbb0767bed964e93014f71bb94c63dfc1cdb0717666c05fbda90bff869891cb3709a8a0fe72cc49a03f8408dbc028afc97967063111372fde2cfc0d61950f53f103ac464bbd508b306b6456ea03124465a8c1f2088e53a808b64ad9de36078c3c296f9fc32b891dedcf8914767f74d53dba220db3a60bfe2cfd922f76ea7d3d3ed173c084dad1e393cbbfa907f789c9a25e41387b4dd89e962f6f6b9d7a91a3766bb1d48e3ae41228e406c9bc3fdd99a783d2c8a9603dc2ee2f7c9dae9498d6bff0b2e742cdbad1c664041a81ac915f2364ecea2a2add80186ca19dd53a052165f8fc66912fbb16885b57a5e8410a7c7627f0c0f359786c011d7f27493c7220ea8b28333db1526b666d98ce768efe115c0eb57798a3d2ca42594550b05c5e676eaf6de695ef9df812d9a5fd98bd83883dcdf3d4ab3b3e6df05467eb0bb5e42efb1cd2d2c96b6f5aba0657a14103dd00951b146896763a4b1e3e6e7f9bb979aa758cfcdb13c75a20d8f3f19510ddb407c0121cb69592c9b3bc4b67e1c0cad0e63314356062142de5abd9b89ea55f9b03232a2836ab0f7db794feb705fbfd127698efeefe2276748b5ef1f47f1c08aa86c15dfd4f0cbe913ebd3887aa92ac6f5add9e23a81985a8da66ae63d29010942d7eb7ef1ba8cfe9f6cc0f483ea5af99855911cef295a36bd6f4403c1b993eab42e5ef85ee2ab6a2ecda05bec9a07b7ed88d1ee716069f44c6ba80df15c8fde6891e52cf1daabdb87476aec700dcf4d62b4cf21c4ba609d379d26bd9afffbd25b6de1506b5f2cbd18926bbb1d1f6c333692441dbaff7e15bfbc77ac0c0247a3bdbd2956ccd91748e21eb0f239befaddd93149f840dfea322c7cdf8082a6c836fe3bc9f84a9e692ec828ac0275bfa65f3ca98929eb36d507590869a0c69a634e84d4d701cb63fa479e4b0a987351c91350e27aea175098bf9a3d619564bbcdfea2bd04b79ffa6ba3d76df1f4182f573219ff4b65ff0d9d4cce2b27e7b9641a789ccfd4767b6e78679146c33f34f60f0a076c00c3b1f7679ec29d7bdcda7919efc8effca8b7d9c0d16792432ed8fdfc4067c421de7209cd4fc1eda6f78030b3be3481de5170b56418f5b85e03a47bc44ba7fa6dd7d2d82aa8ea053cfc6c6a25e4af5254d27405921652cd44427d2ef9203ac1869cb9b48e8472a06a72125cc6f2a60a3f1410386710f40ba245416ad78b230f61d87d44dadde778f9740c526fd5c069433a7eec17abd7bf33043e5439023034adefe3673cfbed505bfcb2867f373ef1679dd446375a1b5c0834075d30f648f238591963313cfe0f9b1d11f8a2c7b91dafd44505016a130fb371a2e3ea41356da9387f276c0999dfb8890ae6be12f0d8a5fdbe63e63852c002762bf5eedafe0d8d39058d61bf94d6f0dacbce0bab57671e5b1f5a2ede365e096ef12be7ae46d59b9a9d4f139396d79519abda0e36c3d1609bca56364946b5a926e08f46d287560ef96437d42bdb79e2517046e815dafd9ad39a3bf9a344668c905ea74679deb42063d1b3f00ab4590f89980fb198981e2b20ceb6c02357383bb3eed730913f4bb2787c810f76af9d5a035cbd0fa9fa094afa18171123152b9d9e031f580ff2f009f8a4ffe19df5235c53c37a429140cf0cb8405ecb041b2f8c43a81ca9078757b2d3657c166a9c7bb6fc283fd390a0e885475ef5899c9e280d39461dbae69d3b2f214f05772591fe7ad6576bd674cb5ac771e452bc6b61e2987500f908d5acd7ad7009f02871029da9e048e5925c52873e67922d03c8c54a22c3ceb3685c0112df7322fab992038e0021b9bf8c0666ce7f1b80799ab403b8f41a341f6f5c34df65ad5bbf1dfa50e85c92a54b6728a9c6a03bd26f1eb7eacc544f695e07b4f593588d206e970a38a8df2152151c8e9f2bcfa014731e6a34e1c980e754a7f4cb86d1f2315ab1b2ac1d9c6dee8ecd1d2d7233f4c57cf3a9e50026e9a6efb303ffa264118333f70683aec3bc0810bb08e71db74192f6629b98f587523a111d7bc862e140f7c021ccc6f9a9cb5cae8925849583077a9b6bcd9981f4dd0fab93c61dcd6793378765210d3c26a6237f452d710dfa83c58b81b2446ddc0e821f50eb96b9064611c15ba32b7bb27eb812ef92821acff64f7d2d06b8b7a7fce240426b460f3322862385ff31f384630deee0e949a6aa2e8d62f0e46cceb1773e6ff26cb15c2001de54d9f1e9b9e8eb67433fcbc023b491ec48dc49444209bc278fd0f0e074e0e2a0bb99e91df902a9bcc89beb85b580f2dc1aa27e5dd536123f1403daab2c76c2671d1bfe402f0ba098f584b33846eb34d721209de421c479b3c2117572207d5cd16734219c00ee36725f85965c70c0aaf356e87181aedd6554ddb3a5bea78a22d4b4229fdbbed1b32c98eaaeb3e34e67b38654a729b28c7a988c34cca1139fc81be7de967f633bf43af9d7818a6ea9f0f32a5174e04dd0f8c15776a27677cd6484130947e04681c56969e91c5ea691d9125f8f4c310c2361995523409a36bde4274ead96cca29fc4c6ec2b2322eef3d8f61558a3785c0c294f8e4f1d5109a6179af91526c1389b885748c44ca764516d3497a3e22cddfb13c19cbd9f0fe5dcd0896b17c0069be358529ec35671caf183cd69bb7384ffbb882b5a9420af14bbb58aabb8f1f4e01b8d54898fcdf4389342396829249c938fed9e4ad608a2053a8f41240e259298bb8756a6403351b5e6104a9f156d29221eb9f8316eabfeefc63776ed9fb11a1b148f68f7c734d2e186bc2309eb9b638ed541be7170c99a9f54b9311accc3265050e7823cb27ae083c36da95437f92857f0566a352232b14ae7bf4a6a142acce9e71468ea192c87918963ec3d711d5a6bd37d315ba321b090869cd9f7b6c084c22f52df8b319088ea9be9a2fda9e002790256a47e74c3fe5ea5f40e4be80bb8bd79e61c81fa20d19cac9ede85113ba94db11799ee72048a0181808f65599a78b531024dd811a39ac1bff866dbfc36efd92c2ac696a4141783a06a2f88c1335e35395967f0875e42b654216642cf2098698b5fa70d5d772dfee0cec72acfa88a9d9439ce0417f0e5d801e0f6bbd4818750814a56da53439f316222f292cfb888ea709d09e3ff36ed4e7e4d59d0a0673448785bfad20f5db36e1241a7060134c2e58cba344dfc308b229483783fe11ff9072105a246eaac9e0e8126ee92a7477c94d18b4c7aacd7cc51aaba157114b5b382c8f55641af9d1ef61cd3c1f2e0ee36f833eeefa9c3306c18dedd451f18a0d68acdd549ed667ed60f185866b0aed8883accbd8d82ea6d3f2ecdc2404f2b6c4e046f52362e1cb94e85bef98c13febb275bbd68bff0dcfe5f8eb25d0a3b3e0312136e9ead8fcf9ff2b0ad43db3f6229e459b0e09664939d1505374f4d264dab5645091583f3cc352f0fa110f7b5c55ca560792cb2e180de7c7289c76c07359880af1f65150731a344589ad105b27c40c74b70986cf858436d6922ae6aeacb4b8cf47cd47346ce3897bb157c6568fa2682bd7d82cb983b5a0130530b6887cc01c99b3e70bd9aadb136fa2447151d706302a601b5caf3c43567cca23c68183a0d9e223cab71b26117cbcb1aae1ab0332c0b1b206fcb10c7ab383416471c9f12d720bbc9e9a49333ad4eaba2a9d2a316cdfffac7099886bc90377d2c53e7ed009f01ab6398826d3ea7826e9d0abcd24cc07ab1cd2ee9d5bea3cdb1b9a154093f0067393b7e31d1919fbe9d8b5b01617d74ff866890094de9066aa0c075426bb42d481cddf93a4fe14cff9e4094da48b9537d9bf05f7bf687ae2ab5e364a929913353b9d2dfb5550f65a748fb78d6527ac40247606e53e491de0154a8613889930028375a00572688dbec96f726085fd28d8e61307b50e468c1034344a6665dca2d60b525e42a449bb79a2c53dfd10998acf42abda389b1e3a7493be2f0f3e9cadcd4c9e9c779afd1e4f2e387864408adbab08f060ad073f40c6c6ff5c921cf3f2b5bdee50e4bdeccc9f1f2ae63c2856966cde7414fbc171959d4749759fb1d116108b13d1b0e6c70eacbbc953cac094e9e2003041b28ed3035113d8baceaede8d819263b211ba9ce27f7ba65ba33b4d9d6d8dd88eaa834c32382e068d87a679458673264c2a2acae36d97a109fa2079711903f8ce22d205c5d36e34cc0c841837cbdb2b2f816fd8de8c1384995dd80d167ece47b511d4f5c676367aaa66257e3d49653fb71ec07a2d9bae15772ecccb965fb702849fdeaffccb835dd4c63b75fa4964d5877a76f6db248a9dc7a26f4964c5e66bec42ae1deec2f69aa1fa3b0ee349c64a245e96d0285ec6be6fc8594211015890278c0736d3ca5834e8534cf257ec06b7d5a621d4e2113a06692adb14e3217fa6f0150f1e1663a5b122ae9fbc28c1d411492043d4960c06cfb95ebde67bafb01f68588fad0df8b241c0c237af3422fa9838e82bea84c5491c4328e1ecd588b31a32c478a8ca69fc13f16d3bb4e6bf0f578d197def3643058b2d94004cedc8f90bce9463cd207d8c7546b46233bf93354fbab153a6164151ffca0b10f899af061b552f935fae66be0c37c14e4cc11f86b07866471b82ef606816d1fc1c50168c83186bc948ac255fb1ebc1aee17a6ea7d503def7674b509bde9a504c412eb0c3048c51b67dcd0a80e760cf172756e8f09ad1a758aa4952806abba3c15a548047fe20526071002c4fc9e91ac43e9c7f7e328e1ff8275d3b039ab19222f711126fefaef7cda1b6d050775425980fd2c8faf4387619ac13c0cbef22961726c82fe6d0320ff4ba3b29d25d0b5d5956d54690af1ea6b814b183cc97f3a6b90e2b0633247e1035661f212b33eda71e1c26377fb2be60c71e1f4e5793a9b7673a78e7c32cea5fc1cbd18979121df7db0d7e7d4b3e91818f629dc667486f456a7fee52f7175871f83134f97065ee837e11b893d0693c5e185d4f0446a922f5049f06fe2b162525f6f76f972aa18648ed3ff3f39808a5137291548193eb5dea96ad581c629f678ffb96d6df602c6321ebefa4bda07e0fb624885f2f059c7753bbc2def3fbbe0bc1516447b3dec10cab97b3036cdad6980d20b9dfbf306d9c38714d20b08179160f206fa3693c0967ac29c178f4d22eccbb1683643f9fc12df7dc2180d4d8c0f8672c1f5d067405562c7a12a3eeeb42fc68b00691d488372989e65994c0c197e9375d1a503103a8eba8e52e1eab4baf744ee2537a633c1c5e8fff2e5583a3eb62dbd495e42c28eee952caf5eb483b6f03c35a7bc5e7941859aaf014a142aa25540506abea5f58b4f0084a6e06990369cc1d4b1a9d73e13a44d67a61b28be2b4f59d46c0d3b01b6dbbe1c603898069af38829928ca1c71373ee4694856cafc8cfca209366f22d81c8db62b1005de5f553d117ba04e4d1d431bb638d63330763ed8e6baaf71c33e34bc8f4f099ca010c6cae093e734bbf722fd1e3f9591340745e4a92f0ebe0e7f8e354c5c19a1417e8b323ae82f60085d1266503af81981fc61dc98ca2173f14690d2a7f068dc05375989673ce6322900ee69c26f66fce7b72830eb0cc50b5a7d508e48408a96a61e30fa7f03471a2552b76f54798aeabbc6164f676248af4910c3336cd08eb6a9695d1b307dab590dc4021535f7bc75e3df16a032c18b3b1140258c928c99f85d24089a4b7f75fd6d4dee8e6a6404ecb19386472c1a964e011482c8e2435239b8dafd33ba4e4eee42c3089542d815df001e454075f578e3a440c3fd9052595e6dc8b190700f2e54266548a5caa2b386bacd92d16b746270a52feec56cc7be737305922a425016adbc00db02d754c7540a3e38d56afbc5ca8683fb89b2beecb0bcdc40dcad23ca2da4313d0b1606939c2098e8e41a5a09598e0e4e0860a34a47c1a7fbee93701273454d83865654fb7635f7e68f948850484add429b9cd1d251cd2c7841faef636713447a1453b3c9f736783880124f81b094100cdf50d1c4ca563c081bb0caef964be4e9b5c046347e38a57859d3255f6141f35ddb5f39fa35e487678c060debbac60bd65afd0831e0702c66738895191171c2cc044f59e49f46bca370960fb7b15ddf8ebde9820f0ac7d4527d4b4696eb0cacd9358c751286a9065962eb6a22ccff0ac1b5321c0ddd938d45ee31959ba9942da13529a1273e8aafff6368b51194d2c2429f26be4571c6c8f0fa13ab760c81649546a14b15dddcdf7b7f9d98aa5d794f39a66431d351d58de59ba291b39fd5f3ae2e5616bf7a11ae81aef7de80c5a49c58d76ce60a3103662228294f4321a0b51e8e1d66545216f7132bdbde11b88bae348dbefff0bfcaf8d608d5c06981e055d88dbd09be621595ae4be96b2cfdb23ef70c74f65dc86803ee36914d7824a56209a085dbd1d11ec729e310cc0e0033ddd0a222461ed8f47bf648b1cb3cc0dc52db04cf2812e4a63e1668248c80aed69828928a46b1343de04d7a5a5caa5aca75cab05ef76a778237223c5f410ae462099da68ca95460aa2e686c0346994c13d7a087b6750e66df680d2ff5e4280dd7e675080f1a6afd6bd34f4aa2fc13b531ced3fe09d973e1563d66c05d0c2982dde151c005fcf792be42718c4283bd66694964b56031d839b42d5d3b14f0c512cda780282c9742b65d556539ead6a0504734400771c92948ab479eff0d6ed0620c064fa3f3eb7b8f9c2f566e8967bc31bbbcef2d797224b7ce4b4c30e9d95073a036e8ce385de5330b0ee683c03e4d7f0062ba506d80d9104911b6edfb5ecb305f44446db064270e1f06a18211031e787d92d3118f605e744d0071cf29dba8b96e6aad9c01407d62e6010a58ab3818002b04a805c8f0ab31ede859cc1e392bd814ebf0585661b7698f9d5d9737ff7c8460368ebf95a04cca37660ebbe39598584dcfd98722d7df84fc97e348477588d69cfac9a895b991300e117ee9e9fb4ae2daf2082bc74c85409b0f70cc34ced5f63ef4d943568104056c30c0a90eb73a56ae2a30361e8b6f2a75f1ee8bf9df97fa07925d13cc1d7976dcdf98641db153d4b1c61f3cc888916d7166f6d76dc3ecfc7ba6b83b3b5a239aeb52d5b8764153524a9a362ee5e10b3236a71f083ee105e0b209a249a24ab9c39fe7371f64ef0ae098ea926a6a2e4ac88b9ef3407fbc97aeedfa35e5cf10aed446584d8df1348cd3fe34da20963c688b0007808f4e41f16f7232fe2ea2bc5b2cbf30b3c66852c0af8884966fa2e9ad15407f50d1460b86f4b84456e2458f808fef7920d6d5bbdccdf43dfd8d5294bf43dde29822994e1a98ae58c1d9f1cf31e5ff345f4fbc33690e5168c1b32dcd665f19a3f673e1712db09ac370b670c95e1b7a9674bcd0a4d5dfdbb8955d3cdfb71e53b926b0a4050bc8fdfbe9af8ee4683442a371e6774a8e39330d54f3857c5fab936d9f4c9891fe8b690937b555f2d22e40479f28f1441abe4ed489d3aa6a4b7ddd22964a59d6cdba0a8e032ecd15001e3d9357dff9dc9be0db22acb1c9e4b86fc94ea85cfe1e7fb2da840e765b221ae2b8f84d6e93d28c19f594229b8ecce68a3656bb529b57fc8a9b11367b5995a3ff0ae176a73f6f994d53a2ce2c53177e0efe12950040ff4a0f421e53ecd805012955470957744076d40f1e8f33644df7ee23e7447ac23b691df6b1394628a41a8890d0000afd387f558fd225e3b9775f3070133eb80d1d3fb5f84e3abdc1a62599e39a8d9cc5edab856e873577daa1a7dfdc71ff7f70e7d1c7e788cacfcd319914e1bfef7ad0d4091dbea71b0012f349f7b04f91c80cf96d291ce099d256d91db58e19bfaabbdcc3a2786d88351d5f2154cc5fa004bbb6f02e584c49a52aed441d3e5fa0ec762fc417dd6af5dab6867c6e42b71af6a48e759cbf9fed9efe51fb63bd2f72cdaa0d752f77f2c68c2b9838e609413fd589933a06860b811c4bcd17d12fc6c4e7725e529c5c3f3f683bf41c6b06a77e0ecfe45e8fd87b1b701e097f517376aa4ebda633ebcdc05bc060ba4ad741972f88cd5aacaf9e8796dc16614615d6cc5fe95d3c09169e1458813a0e5badffc85daee15a07e33f28ec28f39480bdd0c76c53406f00c5a0802b62636a36a39605c376afc54a467b61fa563e24992def0d54dc8eb5b6617ae661cb90930810963693908b14b4cac59ca23b1bed5ba7400acd250299abe5b4e5e427be274d32c47fcd7db6f0f5e43d34ed9e32825d19150a5a724ae1bc880d3992cacc26cb2138c650482d21522c32a08fc0789d02e97318fb6b980a94dc53b93900ec13b5ed2082034d7d746c4ab366425a3e037975d2835775c7b11307729b61edfdb44e757575b7844710a9acc7e8daf3e8ede731455676c7f63da30627d4a3dedb830d15beec9bc6ab963804e536c358ffb1070e2a055e0f94c3682435641e5bd66d03d45001c070a4d6b8073d8df35233a3a49c3012cb45e4e5a14b945d24ddc3e55e404e859175f5fc8acacfa3849b133307c00f1d35817c245709c0a44db45c4bcd439cefefc58c3202002c1472559ab6a54898a289a2fcfa15be3fd76264d26bacb955944738ea2fd4ceea661dedf3916aaa4070125f3fc51ccd2626a1db5d2fb253e7c703774bbb0d56c7037c388d3a451b24a3b6360ace5afd15d529465467636b57b45d9c8d68dad182848cdf0caaf09ebb6dd397dcc847234ec32f476ebf5d55210a8635d0cd67b651c672f38d1cbc0f568559539742674896f38aeec4dd1cf17209e4c481bc86636e83a22cfe593895efaa81b028f187f03527c1a04d70aacc89a85a8922a275d758b7d6856eab56e10b94c3a334ed80e3a36b53394b1c369c865056c75c1353bdc3028c64bc8b2ff3444fc951a6c38ef5b6ac200e1b234e197e6e841cd6d5fdfb6b90fda82f43c9bf92726631756b1d1e5da168d5bcf4408ded7fe69cd14a24e24b1a9e2044da50325a16822f43447f8385e12b1fb4976df833c66e1905519e175185ad8d718fd8e8ef50d7de19894abaf69259b33d81fc46b4af80ea6d7ff38c784d8a26d913cc1f92dc71112d78065ce2ffffb7d9fd44e55ad02bc730600a0f38f53ef17aec5a1f776b264c1719cb63a203c3870a66ebbf98101e1b826bf6fef401f8712d455433cbe550abc4396a20bcfcaa62b91978e8d2e43f2befc0fed2ed491fd8e1bb369c2750cd5840e7986f8851b5d3e98cd74d8d19fb0a10778a57089634a0f3054009b6ed9d4862cde7783c3afadf88ed0fe866a65684d514bd1c3624cdf76f495321bf921a077594d9920ddcd3dfc979c33ae76217eb0fe65009120b71edafff65401cecd72cb0ea1e71173d0c08e2ba1702a97f32d1779a877bed609c236638e7e416c5c48ee9c261725c8dd16f8dc6ca880c7b36355881d698487db486e7ded8d4241e3bfb06091c89509a9183e6ffc2c31d8c5ba77607da2e531581726c7ac7ed83aa29392398cb7c0f1ddff7b7eddeaa596fac2fcc26cf1acf2ba629ce36a8e301c28b761cf5cae1190271ec9fadb5dcbe450964b3cd68498032869c9f7c720f6c82fc81397bb55bdd31e9d1394c5c663c608142d6b772c53fb009af9104b2d96aa40f74b6473d6114ba932eacb42214df1c21f4098ea6c8eb934cffc0ea7b2db6170c1404dbf3404687248dc6458d2a42a3a3431de3fa537aa7f58e4ff444ba958fea028138687689165c9d30e99700c3c0741847b05c1d4a5808ae101f37de6b3b24d7044da99a244c036e456fc2a8523103e4c94e24b8a7f171d52c59465072edc7e8217c53a70183b9bf9a59a2f43d6f49d1371888feabfaab93bd8f85e7db8b33c0bf623ce48b6e25e3f87c1c63b4e02e9a20b5a0d39cf9d1b9c8bd2629b985242e4fd533ace231e100ae275e7affb0a8073ac73e6f835624b07b904cfcd560e31eb15cf101d7225b4be36aefd12428fc749b88d76201d67bfb14abfb21babda7abd08cade534b26ed68c0a6928215f11e4c18a91828f9b1f61c0741ee78f312ff911abe7290a558c858dc387b329c63aa83054207198ac1ac0dcc70aaaba3b5509caeeae840ed8571c5412ce9608e6e9e10d5fbc9b41fd133c616afdfb9f4aa6644029720986e29fa0027432bcbdc87e604061549bac0a08f56f5997ca4f3284bd7eda95177bbe447d92fb489fd7676e4f5420e3374e4f6588cfd169b82e16ea86df60ffea96773684fd2fa462b96e7348c1efff763bf85e59b9fbc6b1b5071b7e3af637733bafa569793f8f480b9d899cd2b91d1c38de37c994532546d4535724c83ada6fd92b2f8008a56f173c39708d4f1bc10bc6400d47ec27f496cb06c514188c290621af1ef2466feb83d2dc47291e9530c35112f8415c2033ab4b72819b748a3b527f99d52e680c2d4fd2f02fd2bf2cdd549b0b02753546abae51d6f9b86712b074fee4b8b7af4e9b9cca2697a1f62fa36a454aff9daaf7d931a02d14923665365a042dfbd44f2243bb4e754f27993a57d05f7522e923b7300e1144c909cc09ec6a24a4f5451f1091da5683a629fa2967b87c1d1d181ca1611319903ff02a54f0551882bc21fe81a83c4512a2b7499f5a38881ca2714dc3ab65fa2f6b8cdc3cf81420abf1405c110d46b39beba2171ca9156dbdd537a3cac5156afc75137cb4ec4063b873557953ef0280777948e8167b4e21b70b4804a1c28280df58649c96d9ddeedb9995bcfe34f1b0df27e2b6f9ca4562d88984e4af06088683222b0743ab2cb6277cfca782ce4294b4d7567c1fef3d785a9ac008730fd6867534511341f397c98588241b6feb45f0284c1ef42845d7ddaa79a85816d4d1ee5dba913063dadb20012215d82d67b8935f9e5e04663ce771705adaa123a3a01c40ac0d5830aca08e6e0d5bf226779857f0f4e5d946ba8ab9f635244fce2e672e5eb6574aac5efaa824648b61f1a80dab9691150e4080f977121ddaee3abe0daeaf92b02826febd88fd860f3dff11d3a40a2fbd96101e4db4257a8bf00a1810a9297e1db4715ca1318a7b4fef1572c83a67db2b6b1aed10fc75d0c5197f115a9d851b1f545ed4ecc206be9ef1848c6bee05a22fd22e51c3c879a5f6916baa015954ec91a1ac4188891e82ecb76938a68ca0a2fecea85f83eef6ba05413939b4fcfc108196286f9b0abea68c2b127d23dfb6fc1be98edcb28d0a6dd32570ded83db4b3645ee5742741a0f4153de4e3f6c640bb2159d53f2303a2e4a64beb3865d9ff4e19c9f36bbb93b8094a982cd9dffddb04bd575ed163db0174e500387771fc25f095e324ed7bccbcb2e69e66cd85fd959d460925e91986b6e494ac16f13c64f9174b82b4ed7d11e60223e48716af85b9c265cea49cd981f4cf8a5044a36a2b1141abea96449613aa0489dd7eb3c5db6f37666ae8e15361914331af3c606925e726c6091eab2f72115ba69bf4924e946e991f07360f90a60168448edbd131658480af2b8f3338eedc8a619dc8f53f547908120c3ec62e85d7b43d827affa9d3a81879a25f6b720b70636c675f93a3d9805439d794dc75203ceeed4452cf4e903455dc9e0bf86190f862b6d79b18a2dc5f2af33feffc5763b29ec03ec17c1d9847f4ad20f6286e1cf79bae8206d79cb746fe34a6c4b6fa95c3533db85b053bd8d614c125089bce76a9678893971ec21610c8f0972afa3fb9d7a488d672d30e6dadf51da6f99acbfc67046dfb0b67e902e3584e298a4f10c41335a1beec36fddb8712b990f239c3378b4ceab39ad83ef303d84f037b35a54a868ee5e854eed247a17619c2d9c007878012baa854bf998de7825d311f5fbb2dcbaa01362e45c716380f34c57fad127c60c90e4352b957bac18483f81bea27c6e9b94406a939f42043618de338fbf3803f7a6dd19dcd2b0da48e3d2883f1f9d0bb97404e96a6b4cbb923a1f2950bb07e862a66e14d33e0d2eeff5f70f9fd9fc7a3076cb54e6c253ce6d8ea59b677616470711c5287d10ce52723ed75dc2c21d85641fa4694804f30901c2651563b7a6a299f26d8b6b687b6cf8a346322c4c55f848a97675276a1f607e8d779c4584d9dd093482009c47791e58f004d996440217d5b3fae3fc146b9c31064028aa28f2189ffd56094995eed30254f95760756be22003864224e4b90d180cbe888773e08bef79b33ca7376a0c1bf2464b6e8404c3641cd709a57169d842851dcea51ffec1a0db3ee87bd4b16f99e4d70dd2d5b512b8d09eeb01bc7e5e370097e8e364789f5a5548566c93c3af261049b45adc9ba6a6d04a7e2d02776b6760a29049e501e676ee452da91d27c9e715b852ea682771230235d0aea9756e454cb61d18deef453fcb96b2cd16ef3c974789efd37d04e14a785c74e519079062d4e63269b168c7cdc6d8d5f334b52beef46326d0364210c74bc08aa00fdf5b8804d3bf12c83fe0a0c2e94533994885a46d1f92c95538e1c28122a95f5666ecade4ca51a01157db6c596c1b5513851e2599ce850f25632b0afe0448dd3cb8584f87ce63530eb17441953e427eb17922a86c8ddf74333260e8082994edf2bf057c444df95ab6663b9a180887afb5431cb4170b91c25bdb3694c91a716a69d0047e566cac43b778a8a4b208b93f7529215bcfe74ce95b5d79c2d0497988475c1a8268fb9e6cbf57307e2778abf61005098a01b8872622ebb08b0d564d22f23b5084993e7c27f3ca8116b691df2ab75da83f8c91692c25ab3b99f63e354ac83d6571d5493d5d2c93167c0bc723c490d5414159e1f49d6f831b260d6fdd763121f7801f84732446b52df2f69176bc59c6c4045e6c516cea3dccfbbba01832a0980c9d70761deb10d78479d1e31b2dc97fcf8f2b263be410857359e3e1880a20bc6025890cd5aa74ef2b11ebdb7a568e808ddb891261cfa527d3485491b6b45cbec620f05d7e1b49c1a7844810bd3114886e35271dd5251a5b8195bfe23bba9e9a1f254112509b6e370b35a668e116fbfb2506f4ab35654fafb4c5095e5dde2d06c1685bcf647eadb817b65f3804c32e5c167a36d8dd9ea7d050bd4606226d6788dafe6aef8850d89114cfc99e727fbcc289ea937da1095243b22ca31d2fa2b0fe8f5fc2bbd257a87d426d949486e210d64aafed8278002efe72d1dcee5213af30f88fa905ef9339ac53f5733558c478612a0be70ed9007c1f764ee43e4f9a7c8e4bbe3663dfed521ccf202458e1dde83d357976fe947a2a4466b7c35990cba14ca05196a6f476a53776b2c0a02279751609816672664fcecd0e58159cba4536a14d2ef30078b1cc9514d5c423ce6d0c6094e8231e41c18199ea3ea9775e8e4c9714ae5daefae24ba69339ec4b449249d9f9c76f4a54f474d784e571a554b76624b11777ac20fad72e43dd3e836dbb50ec78e82bf6c9812cf7ef11c4b1368a2ebb0ad94838d5884a158f55bb7f0f27ce2153505fca19db6fb4e7c23f3961b38a31d5c8e82d076b49f851ff47f86457fdb484c5a1abeebc97a74e1016696ecc55bacc5182351383fcf168085967c4ce7a8f8c5d2232bc63d8467f7ab9525cc5926963dc25ac075534714d221f7be4279100bfc38c7ac9c2ba9283da2e95463ccabe6f0d7c5be56c81abc7e19a16559dc1e9e95e7fbd352e476c532540f15157c3c78a49ba25d822ffbe1e2ab2bf251f19e84e790ececec9141971d84d764a12e2e3fc923ff52a0964e3a02d03b2253894ad29407a7189ba8d5260ef99e6525ccf822d95523c942a065b80cac7b1c0e425794272404282dea3990935b6212f7266dfb702cf3622587d4f7e1ff95b472d11a06e2e20f1a79fd614471ea034db933a60d00bc6a87ca4cf01fe7e79f04c94eb39ca5dab59a5d2a8e8a65907f590d0c8794d95c2b887012991a76e719217cff268fce100b300e697a9fa0e98d573e184241bb5187a20f17e0e126fcd953696cb4798d6fdc0271db7cedd5b02bdf2832b1df641608bf2d74ef1333d9e145711f0eca09266a0d64c7cad7eebac2f1aa8b2f4bd4777c5a52ac4bac7477c90ea9e065a9984b9cdb28cd7713510fe8130f0bb182f7ce6d90325a531f29d43cb1c2b29bd441aa1f641442c53e9f08b94733ffa577886c203a03058d128a76044d5ffa25077a875a4a9a2869503dd72599a3defb6bf557b957040c558fb115f16ab053f093e13461179cb799aad72f04e55e5cbd7c340885a4210dd7dfb65ee1604f54f72f568beb4a0f5e94b36d16ccb98056dd5012365cc6cafb4bb9b3ab092d51804bd20be1704186e96243aa70c3c44ac43f90e5a289b7692be2a24c9d59ed0b0ef96b0f1f111c20e4098cc647d86678038ea7f751ec3cd396e18eca17d272370a3ad8786fc9dd24462ba19940843d4359d703ad87427b613586b89a63ba547ea6ed6710506b59bb5b9ef572fb008384bf43d092fdfd57eeb3848e7f70862b9c0f323cec84a056c0b0487619267264fa97be5ef08c5da942ec8ec0ef8e9c4147e03011bf68ec24d5c7a29fb87ac90b72447e9d38d4374923794f62ae356d6c7d9268989b6e9fad20d0df8ac8414ae08fb021e4fa4f09f3ad35a897843c36644871ee1ea18b3accf807d7fedcc9cacedc9d636f4a018cd04e55521fde003ffe67262e89c3397e015f4ec866fcd7110a6b1c5fcb6fa9a220c148dd8840aae1f87b3ad476300d19abca4e9cae9f8430dc7f389309734635834e6b4cdc1a514a76405b644022bcfa78a9393b54694b2f68f3907c11e34456728a725d9b7149b6d87be1e48d18d1156f0e7d2cad362c46460d6b95e7f7e410d58ae71ae06448381154f2ca5fa4d2c13cdae5a7460bcd7ffbb9f07f9a95fa9303fac99b7c58f506abb0c87358e35a0b5ac021aadd1e2a2cd45c6d84f9ad1194fc55ba48975dc45fdbb89a202d220ad1835edaad3751586de91f386aa605a6328cef0d7fcc2e25d7a9480a004f2162a544b8af5d721e392436efd58b1505129cf1e36e49785e4bbdd6e110e6604e554ea73cc0dec910a1b7ab485d9ddec5eb80a8e2f2b7a85aa58094fd573391e3668a9ad9a1e444956d32b1ec703dea4890c1e96d3f47947cc9cb4bdbb3daccefb2c7b7ffced6d08e9f2475d7a33f37ba23abb4bc732329363b9c9bc8cea4ab008a1fee3cf2cb39591674f8f0eda1726e07ad72069adbddec8fb90a23a1407f614966f600effef3314eb3ad346cf4a0805e9bfe9c4c7a4e220ba797b06d5be585687950a5bad5876d122f5e20bf28087cafc336c88bfd56f1249fca9a5968144b88959c2fc682b2fc8797501ff91488e6f3e1010c6fad75d57db8d3ac68148561d643b1b1dbc034c453787641c7d094924165bd0983af268829763b985487f24fb2e112ca00de3a057f3b2f30657707a933cae18f589f8f205e7f557a5016bdffb1558d97509e83fb270fa1912b71dbbd646e1fa5091227297260d7978bb6f6d89e83408a12dc3b4af2c5e44e04d93ead85756e44ce4a211b9142cf8b824bfcc269d91ba10f1a1819eafd69bf698202c98ae8a83f33cff506a16e43550f3eeb391956b1db9521c4f3fa698f5fdee9f158e94b0c8d2e7bba371a8f24d008bc8c8c76be7e0dfc6bdcc86cf2b17c2b898fb771c587b29ebe2463aa7dbf0c0cfd53e1c14c915b0e986a44579ea789b249a17cfb44d8c3d68b5a11a0bb39eb6acd07fec4085df5af042344454fe27bd99e9012cd498736f8fafb2233f5ac5616ab7ce8a42af85f1be02e4ff44c97f18246cc24f168a948d32156ab00c9b95531fdb1effb3a65bfc13f295c5373b15d6c2a92da51cbdefde8254ca65b85f9be13cb7fc1c495b4b83e84fa37ac6048f9d13f51ff1950078c208cdd60a3a52ffe746c7f9dd4ecf0a53638c22cb19126d26cb5764f13ea1e7e293d4b4bb70f64a2886df15aa27ea1f45892951227a4e10919f2210807342ae2cdc78aee56cf6c31a97d5d5fce5cce1e3deee30821b5eb52396e31d4e79453a139928a26fc8afa91a4734032543dca9cee9166aa0e796371ff6a177bbd5ebc0cea6a4834db9ba9a715fa537c3469aa725cda1d18c181e4e79d923784b7313be9a11b5d7e4968a304de2f0cb6acc91dbcc335a31136a6c3c3acc042ee81e8c960b34b4064a0b9d685cc8b6312dab72d63c0c974b02331b6f3ef2fec25c0b2e4ac8240757a08a989ed3a94ed7e05d884660d934ad747f9cdef9d5e2df65f261d9682b5dc5735d36041131f5b458a4a34ebcf6f713d9e6295e67aeb66be56183cc8e2b1bec391e53d91f8c901c990a621f241426225003df7fc21a6023533451d984253a0af5d63c57bbf39bbae5ac688660fa2a37ae05981c67c37a569963d7a0816b2dc140110febcfc2eac148e8cc36ca8fd5eaec1c90f36a26fa1a38f6a205e9769039f598f762f5996cab8e63f17fa5fa1a0084e1f2b1ee232a37ef93a35a935852f1c80fb10195622972909cf750e233c046fddf1b20a0c7e6b6a9344fe89166902458b7c67689510b6e7536abca07f7bc26b0c532a18fc0ec67fdb3d0d5368998fd229dd3610a3d88f46b128ad310bfa7308d57b50824c44f9efb6947d1b4e8bc98866584c57d5ff4f3c340cd9dfb8e2a80780b0d1ec7b9aeefda8c70decd3c19c6967f8ad3fe5a928e3a278ff7ed6d703de0d866f432d22e6badffe70cace541d3edcfdb0eb3d842f69f47104f20eeb59c7e56e3f2838dd681c2606786541914812c72820aa2857835975067105432cdc52453019c3676b2192e51a273950f071618dd7ee9fe223e8ed92f91f2ec3679b683c437758167b5d51806f6fe88710eedcf57391a841a7078a2f841900ddcb509c90f2bd7ecc94f3dca6103caf8dcbb92b694dfb84a400ffb1220e0fb36e204845413eaf304ea2b2ab98a347715f868b7897f2f4e0a1e5eadbbb65a7e836d0460bf215010b9ed36de44117db742da0a849c712acab6a655102cb94b38f34ec11859ece0b51cc2320d5eeccd60937e801cf0d0460bdb7be37d3086766c632139926def476a0b7f2d937766f6e65a6f67b4483570e0f5805f301c22b0173c28cdec038304bb49a5f742da993d8fefd94c101f188c8b666e39164b93c90ed55899b6f404a76ceafb75647ba86d461a89e9f06d6e354035ca58c3407deb7ccdb9e63b54366be913d2afd9bd4b09b142f3c9077a024ed25feb4f4527e7991737ff96e450906792285174926a0c2185360678234dd9273e49938ea833a62b1445263c80a732ef3fbfb3f242f6db236822ddbf9fb2b92ed5636e2902835a5e38882b9e1165e15f83244c29257de475961ad003d6914e11e25a255c99500137bc8fb5d19772769f219ab08233badcdeafd4149626bd113a7c4d36c77016f0702c32f3b7bb9ba77a1c74da7005f0d7fb3979c330c918023fa8d4925dcc982df21fad1100b79b97e2a628bf41768e62c3480dcaada0fd2ba2f73c1fd6c3c06fb5f22ec71d2ae1900b9e011e41ce74e794df9f6845080905faa9202df422b68bfdaf460a86b8261d2df6db6e81201631fb350dcc2ff82b52fd5136b5d70b570c35dce18557b828d985a6f3416b2b8b89aa1ca1b7aba7a6aad488db18c5bd67768ceb861095d5878aa00cc8bb282976b9374f3eb848706227afa4a4e927cb6b29ba668241d59c607cf9e6534f8e18a955bc9ccdd4acc9f355b7319718dc5179eb8f3cd9f98ec454eb43477baf2db029c5e2ea1c1cfdf3d63e49e9e5e59862800e15128c206c79cc4d14f8747c1136df62dc7abff67ae442019c920ea03626834bc1cdd66b14a91f927defdf0591120b4e1bd1bcf096c75d72f3836d7b0cf1cbe6ca63cfbcbf79ba300584d9b34d6aa6a7652b2c3ca77e9dfb0ae13817d5ef3b61e1f5de913d3aa8c10a481c6842f20547eeb3796ca163b9ae7b40648dc8e32619cb2830b7c8fa534d9199301a9da98bf29c04ffd6c0c2fa8093fea7fd01cdf5f846178db1959509dbe825b50b840ef82cc070828d50c1b05cddf32359b14674285a1e7ead0b56762c8f9f6cf22c4eafc45306dd4bb6d37ce0f2ffee8b00fb048cbceed408cc0a50a9d9e789e210e110439824371cc8558139796d06ee8dbd783c38fa63799bc1b6c99a744c89b46d256f4d3866189c2145dbf94e2bdcb94a64aa5b60dbe914171a63c4228fc5ce119c8462dffacbd81d89d1b4fc71f9bf7f9d23382e507ea80d5de31110ec1549fe5229ca99cc5749f17080867b73212c4f0c4725609d075be9666f6081a335718abeea7c8dd51ece1a73e8ab05d72be0f354e7d4b366fdbeac253aacf0fa4be6d82dc9b56cbe987af5fce6c5e64bf152b9cdd4c70ea3d1dc272da68faf0f65e2d888ce77d11ff40459edfe92082c2a034c3ecb1480f7f283db7a240428483b0c4cec24204d01a16d0916a1c0a4ad365a7d6a2830e141d8a3f490533e580234b79cdfcff8392bc1b6a3c1519458e2709c90bd0a66cb2a61c3b7c2a0a80593e36bee8e5c003b23ff46b007013badd964923c4afb95bce4e23fe1619e3d3458688da2f57d6ae1cccfc8353078bd7414a40d390b7187b08de7c5dca7eb716f725b6dfcea2b5571334ec001906aa92a32765140aa109e3a0a3c54d92f97d1ce911c82965504a2f415d3b21d068402d1d2800ceb56322efa3278351dddad35c7f22967194216a7e5af64d3ee63c303ff3651b0bc0b1b570bf133bb4e95af4562c20d13b58d4468cf3cdd3ab4996a1139e3cdb91be4bd4d4ba8724fa95be8f123805129fa66e2c63b5042a1867b7dea9c55a800c58eb35db2023db2c93d8616b9be9999117228d48befe985417fe12feebf119bb9ce1b46ba607515fbfa0fd1f2e34377beb6e5181812e72066113b387f0240b192118b3777be3fa4469989a9decf4147d6f6549d1fd1f278dd1f18b5142589bb552ae22d6cdbda7fc1bfd1f60bc400553cccc20a6f43705af1340eb15de2fd43d33081be2f8ede1c7d7423f7f0819aeac38a335c1f6783a6c7a8eb3421a08d905965bcca4e9067b841c7ecdd2693391234f8fb29f9b96186ee9340dfa32b5f47d8c03cff9afc78ed11bfa96f9f27393727fc489b81902d8b2f2f653665fd9020216cd89e3153715459386a9600bd1ad14b9cc6fc3d55cdec69ead1d64cf737a21e4927c3e8e8e1c4ef7b12f384a2648f2bf4c3eaa88f954eca28356752234635314395e843d834c0741c406f9ca9e0d3e41d5774e6cdce233022e3539baa17049a74718f8361610663d15dacee968c09ca82a8b844604e1efa848fb408e86914b8480b3f477025cd1cae35dc7c7a8f6c82c3012975aed583c9b7cc994cad08ffa4fd3c8c7f0a916a2844567a8702c91c70e6d3e87c0bfffee4fd853947a95f2e2eac07f6f6ef25f5cdc0e6a6af0a72bf3ab3cf7398e6e1dbe5eb2a740449467d9b7bdf68216c8faacd67c6a6b4407835a2faba26590f52fedb86c5836a95628cf94830b505a37d9493e438c4d5f54a3fae96d9665a9fe87eb0051f5557d5cfbc6e3ebbcb83ab2ef1b0c1a52bf099467e1f0d839d1f14383949fa1fcaf716da480c2e6f3bf7a20f35d76776ad952183ea50df24b07fda4ef32a13219d58a798ced11241b6bca5da34916de14dd03255605174e992cc3871b1fa531f52d3093f6363ddf20baa02ebd363ca42b06e67b0392ad673345ac4941d13402b20289ea6ec3b31356db2a3ead9f50bf3a6e8d68ee0d85d0c4cdb83f6b929b36c1bc60eb0215fcf08f64d4e9dd162f3ba1cdc39d0a733c7cb5674ccea372b3dff064c31a2a1be9a3754a6fb7903bdf3da33ed6c514316e09718d9d2195ed4092db60eb33086e505bb27f881682db7276af0ad16fb287d624813188793aff880b6d42e6f0773fd5e76f936d8c47bed697e053e4b94dfbb893334a6a7999be400c139bfc040992025492c49e9f12a6365296bac4e3f5f0190838ac75e175632c2698c6b344c55eec6198d826b6bb5e5661655f87f6d6f7052490648133ebc16ee83d25d102e91318ad6d8d6fc111f367368f4412818071cde8894728c020fba710ccd4d2f61df022288730aac11f4aac76985623576f5b8d67368269a39d28e82ed1675e52a000e2747b30ea90893e850c7ff45e19d7fcc14471bafefe5f6e70065505d67989d242ee95360f6037ee855ccbd23d09c671e9388620eccd0be6d0949510805705942da321597f349deb253d5d9cd8f20c4abd389b03566adf6f7ad8ed0536d02bff089ee47867ef431da925d5693a5f1b17ed4d287c99a2a557be6afd4cf94fedbd2c5622d4fb2290d50651288509634ff4e5f95c413f4db04fe4514cd0b2b3e6858cd6b0c48233bfec5a858293fa42582a28817292dbf1907ccd4500b173996711a4d57778218b3d361dd0279fe31a0f010bbf63e0cf0d0dec68e40e5b29bcabd7fd93132c79038749fcd363dad2901b368792d909d388569a6e54d6401baf0d15042b0561b2417adc00a27cf5d38f2ff686a445dddf11757f48914671e92b9a02e75432a2b24401387f049437633fa20df17049ff7d592a0f9e91659110a9e43f32b66de0dbb37f6071ae56c664ce7bc41852400cead90d8ed2e9696c102e1a9b91cfb7bfa7193cd58a6b8bb870fa51070f1ceb3ac3f1df6b47160c83b2cfed4c741f040eb0348e26692341eec06b8a37009b0989b1428ee495488345f8eb15eaa1d74f4993c018a5f057589407e47b86f40ff47c3b107e869fc2fdeb39da95a974fee7ba3fc84e4e23a9f4a4f3958c896bfe746ff68407d40ae7a774ee7a7b2b0122fb56facc1c30371e0ae7e5389d1b0ae74177bfffe0a150f758549c68516097fdbc3c3746d5229cf5315124ab834598c17b7cde698b7738fe916071ba66f26fcb492f71b072a1fba0912700abcdbff4d93cc718177e9a673459c549be762d3a90f7cb3328aaa57fc8fd22f3e827c01c8333acad66ad5a99927680a118db39b4fa27f5ecaed28db110ccc859f8fa3041c12fe5515e22ad115ebc5737d64512f8017f9ee96b55e90f99446c1079ce67ddfb311237131804d66c0dcf3f932a6a0c4d3afbf4c81defe864a3315416c77e5503e3cd5e7c1c5842ef04b0948c42d83139a06ae4a85dbcae04755e9e0d06733c09d03f8f8c881db82801e27f98a35794e4ca4210c516cdd827a6820da12a981cbd6a15f4cf7d58f222d7f09f4ba60445c65da22f7da663b3768f160c356201791abad11f546a97ce07682763a44c9b36384875d15ea87694af6c7e0a615dc718fab1017c38f90bcc88004b3d560452a976c22be26f475286daf9a43e1e5968f491368f3b733539aaa264ed5be5d04d736882558c206acb46abcf87db0e1a0cf5e9e627858f3a4c7cef2da32277c7844069a231a0f8c03a2369157f25984be14376d0733ecfd4e51e562c6baac9780d015f4b06bcdcb7ed05163e9c038a2138578e194fdd58249acaf96a4d0a9fb30e9431dcce4ce698ec5ffae589c7a3c7dfef8d8ade2331dd325cc8908b3d1a707743f16be0ae09978e2a89ea61f7b82aea2f7fdfddc9c5434fc2861fb1466fc5efd09c77a8c1ed6705bc942747c9837141fb67fd1738506460d8288885e2e2a15c4c5ae6bf076daa848e53af4e940f0b47c59bda5ecafe125123c372aadb46cdf7daeca9160e7232a4134340d9459ae91cb7f6cbf8bd8a22f457af938e34e1f91517c0c6625b199d91f6bb5bb22aac8346e1793ce1db75d4c48e1281ed81f43dab9de83fc3547966e5ef30874456a545a63ac8dd5bfbe5f0769ee79824c6a39485d7f5bade85b7cb88346195e0c39ff6a5099fe6cf22391c3b7e4c0e9226be8de22a17924225fa725d2ae4605f321b88196433b74300c89ed14bfd79079e7297c666ef1d39960583beff3d7f3f73a6f09ef54ce9b6f3b6c887bc6379833b66c0b491fe282c50aca239aecbabd88a86216c9f95762c38bc478133a43839999155e0407efb0ec135ba8d1e5f6c4472ac33cbdda00a25ff1c1919c46dc93652679802a46d9ef57add23dd5f6ebc407481c1b9e865a884ae470189d6d60a8de655de264ce7fb49d8e41d71477fa1c503891ea6eeccac98c79df528c56840911abdc12dbeb4d2a1dbdd83ebfda89c2e3dce3a5882c17ff61d27cc1aca1f4144b341578dc22a4de2d82ce23d0c0d9a3f265ca3793935613fbd79356d3cda0f7ed615e00229d8e11266eb8c21f94c6b1ef5dbdce98f475b75dc0dac6675142d495754ccb1e3cea5212475fe7cd8bd411f5c3372dab2d04e385308e0f3804856e3ff3b54cb277683f520b8494cbbfa7f51d4147e189f8d837dcbfdb7c57bc587f5ed1a718073edc5744b2d5439a1590c92e6cf8220f1d04f71281acfa2c8800f36829ab17772319da2f960d8a4cb1ed1302f243e754a35bf8b50c7ada7934208bfbafc5247ef22f9464a342abd03e8894c5546488fb60e62056e9d63bf51ab13e9f025848a15249102cfe2d5e0cedf50b1938c784fbf84c4eaeb6ec109750b02ca2fbec05262a65222068de24a172e2a54806944d87cc129ad7cb147bcfc2f99b9ebd9e51d76b22bce26a668f548d336a2c19a5808732a1b0066c2ef0780875b0d7e03f182bc1afb3780cdbf1b45e693db87bc2dfc423dfc2aca35c61340f431b846bf9f51a21f2d9c9242a7f3628464d47dedfbb48a2a38012c06383da4af042a0c4e09303f1a5d7ae74a2194340f39b4c09d34689d88c0a64f05cb746a13ee0d2537883beb6413f87a13c016852822082b62e3d7a8c56b1b5485ee5ba3187fdebb2027ecd46f9154e57b2de530ad27fd15823a13c6f70181499a8a12a52389b36ea5c0233502bed573f12db17c090e5bdfea8331d1efa298bbb9fc6b9c9279f69f8ee36c3bd72e77a7d23b97ba42cde1e3ddd23d0fa76a591bf87e5f3e4e64c8588fd2d16f24c1edb7daa089ce65d75baea58beb73a66353b718287216634538d8299ef3bbeeda43d5f6bf624fe7ac6af64b8a19dcc08fb847b6339f75f4f1cc46ea56bb9efa2d295e0c2b4f39888acc02ef123be3fb20ccd27c4ec3eccd7f896b616b219659015dc2e8a290e8d3502b0fd4977d286f9755231149c903de58ccd326d54012b93d8a24efb757e5babaa55ce4eaa461367471d75b3fb071057f6d903457ac06e99f307d4f446a0076700c2f07e8b87e3855aa06c85171676321798c3835e99d9517139681eb890ff66251125a18a223adcbfbac410b88e95fe4dbbd3a2411feaea551b039314a2fd6e58873df83c609631d28d914baee21f99b479fb875d0170735dfa479940f4abe804385210db96043417e1f3c372bddd612d3a618dfdb1e477cfea3ca28f352f2935402c2adeaf9ce5d288f462b18924c5306bb8a1b6eee3f20ddac050e3dc358ce99439c7b48176ab18b58719421ddd893b79708ab2e8e3d6a118c28ae638b3b742d3c314b0c5a27c7a26ce0a5b192f24b1fa898b397ff6d84aee98a4af1763f24c766a462c3f3cfc0d8b337ae38a0e93361de8133334f6a49536f2f64aaeb4ea3f0d6c95b2eec5d228c76fd1129b94ceb1a47e8f24a5e87d72777a471b6163c9e2bb6d809256da53e56abd252d69754226b66b86db5dd8fc75dc1867675e799d8f9dc2a6032ced81f15323e31bf068469f167cacbc88c5195b31c694563e3ad23d74b985b968354b8d3440431d53b731059aae9cf0ee475bd5a9548bed9bf41ff7c3a8bd4d74fe84192c67080950f927aaf4b01706163002e9fbb92bd13e26d44bd9004720efcd98a7b2f258f067658347e3b1aeb3ab99ec716707be3a4d8ce937bf368642a9b4686524da3021b81067e69f032ea7a658e33023cf15064e92c273e99b03f34d5266464bc4f3cafb4ac394b4eb4afb4b87a50c560ab42a96d2fa7536b20d743f5683afe628c4f96c634e3878eb6b3abe34c82ee2cc5c83289e3a82dcb9e117734193740649974aca0cb3c0fafec0fcf12e3700cc9b0e4ec025bfa2e5b97d037325d29aca05118487fa6a927857f51dac659afe4b26e8c0d2caac3012a6a7886a18b8a1fbefc6f1f88cea7f256c6b6c9869e3d5637fbf13e4191fd3ee7d4550532bf678d8eea3237ba94bf02e97daa6f9a799120d5fb06cae63a73f2d59e6a46efbacbe9169178220711a2a7cec06d7a191f9457f92c83d6dcfb05908bf709d551d9cb24c69e997ae1d2b4b30f9e0ac4371faed280f9e72f37c1d5c14f2d978c72911e2f251fbe8cd2f6530bf4897fc03f09e22eaf0341946d00fa3280221ac730a54b38d4e196f3df54d97b07d5388597b47e233cc50807665ef4f66fe5fc24ff618a710d0d8b1a934633053832d5c994bd0a884d05a08c6e7b6a983a4efe695ce76b0e2961c37e2fa5965c6fb22b9c3c5c52ac90dcf831d563d34889d85342e6acc40fd194ec799d221f33965e01ef1ad3367c6c73e0287578f702c4b6f3da8ba8eab00feb29abcb6754d99958e15c8d23f0cd596b0f6f42ca790087a1c83647f3f18aded8666aca260fd32038dc86a0884e43617927fbafab7ba90036f6a613b68745fea3734d9199f42642f8e638f6ef37ece899105bcc92007a138d679ed89b13bf9f83158fb98bda7bf59262786e7960f28e089a6b8bbacf44d5c8657b17ecf57363249f4b420e7147371668b9a82f2ec34ebffa8ddb54da560b5f6f666c67ce94fd220236bbcf1a6ca3c6995bae7dc8b9abd1640cda5584c62278995b6acbdd30093821f4411601aa0dfa21630f5c3e33b3d382a6c9eb3eb1668d8ee665f2ee175b874bb7f9597988f5625599099328980baa252a81ca0923e121e9fbde6b718fe4b3e1919af480b78a266e21ded1856d8f3c4b883e80912fde199d5322c0dbcb334fa4241d53a4375f8bd70b2023e50cf123fcc45f1a567b96110f3c513505794ce5a374e3bfffacfcc70c08a965dcf7e0170207f4b7331844d4250888acd1259f63933b8423c8cf255af82cc8c1e5d736f559766d2f8cd0f59d8c53f8271c0c8d3e1218812664003326f1b0edec4a21fdeafb70d474aba25423e18029edb4e3e51f5e4f9d004d1ac0fcb077ec7c548e1e3e2a3481a6d553f45c7c548a61dbb05128fdf4c87c8848854433e706cfcb1da04aa9ddb7ec85527b95032a90b354d519e154fcd3e251f369ab00c1b00a2ade925a47c37aa3e498fe20df0859b78e566c882fc4093a97c58420f12786c66fa71523a6bee7a2930c662471ada7f15bad2a97e1bb148140f7f4d1656dc743f6649c46a55955488f2bfbcf9ec7eedf1ccfe89830b442924736b423ce611cfec6d5c80d7bea0187e43f6fa00067c6253af3606913781a9ef65a24af2dfb61b2487abc98231ee41d03b3d599f98ccb4a3b60127b25974a0f3e8faed9b76102b8788465a072204fdd6c5571860a7e0e862dee48f847a7245f4e95e4e765484f298987dc77b76df73db05f59ccd4a59fb060c7acd15c3c626005d71241cf64b96fcfc249f050d03978931d66bee454bff120a7bc9de9b6caf1cb08f278a2096559cc5756cb0d06a8c20faca247366958f7c4152d4e1ad45e980e77a3f597a38f348878c1c215b0f936374bf4bd9129ce9b61bb7116797a3932d2f865b67b5c7d9e0b08484e00f401c229217129f568d4f8182c0c3ddc2f2ab5b128b46dca1b1a16988f33c84e7a15833a7d8e4d000d9af2c52cb1c09948b783aae0580342cf78310e574d95b97424cbfbf0b4d66e9a1f485df644dda4ab1dc9bc51ff98029923483e5b3b8939c20ff6c075e15dde57de1c4d4efd47ef2b4c9b2c0fce8646b0bf949cba95eacaf6196f2d77a30e693bafbb3005b1fd3f40a579328334c9c439ee99528f8e70915838f2eea55857dc7925811c21e17828c3eb318adf1aa980c818fcff05ec35b86d5348968924f8da730ed1d06b45d6af74cbe0ba77a0a256897baf1515ee8f700c846ffe102fd60e4dccb26c29ddcfd262b379c878f16684472966eb1e337db9eba172715bf6e4a1249a8cd7bb40798c28cbc0e6dfbf1a9ff15899305d3e8537faa2bbdccfaf6f8ea8c6a60f25560122b732bf4430378dd2033b1868055075f0b7f2b273536f71254e4698f633ffe08e46a6167e7ecac7a49b292c535ecc7f01fb9249ac6a7fc10d6aa4a71adea4923b90d43cfe9331b9a467e75565348f31abf9e496b4f9f3a8b88fd78dbe227cdf0f0a4bb27068287ace80d602e504cf1af176bba20b18876d8f7530fa9cd584e2b5654c90c7ccfb94d9c4ec8226f5d6c9fcb43602f8eec9e1f49a4627aeae2258bbbfaad94b87dbd351b5b8ce3f52e615daff25c4a1c3f7d917e40beaa0af99975064945ec3b28fb5d5a2890744f4d78701482246f6b234013d214c779a1385037d33990c6c5b7232706ec8b5cff07807546ad5b78fc26f7732494cdda63158a0d9f5d76562b89a701b944f495ad15686331d73e53aa3c3713b2a18e66a3d150199ab47b33bbd2cada4c4749f059950a1ffbfec8e7d65cf111091d642fcc0161656aeb257a56a16624e32e90fb7ac176d4f86595608ac0b08b2303ae8a8c169a8c3c42c3ad92a9bad3c1ed144bdb4f5a894fba461b678856e84ab82da6518182d5a58174e5eae724adc1a6b51875b83eea62c22a6b8bdb53391b7138b08c847062b8b67f1b6b463e8ae52bcb9acf805bf55a0e5e477657aea6e4b228e09f9cb5e47521e1e0d304fc2d6d6d398d0304e472150468fb3da9c96bf7bc7522dfc1c1737c633214866880529981d313df5fbb00b0c423cebcdc2dffb795d2a3e61ca307594b1b05a5cf373251d1f622a62f8bc88d4408c6d3fc83356627cefbecf1f6d932c8e28b203b215546e322d5d904bd9f6d4d5819e4518f4c65846cc20706ec0e425a458f1384735a791c2f2e7ae9d99fc384782f28d4cbae4988201c946476b224dddcb5a562b057307ef02079033a54f4d8d89f931e82d7f26eb4fe570eac609beea73b3dd17de04de23e99fb318cbb1f71f7c7a4b1a8aae7dba4546a312646821ee034d2bb35649fe3efd8adc5402801a496ce3fe373ac1e206bbd2ad8dc39012a384bcefa4868caa97e9c2dacab06c06b14c890146fbd3b5da63627a6af1ae83be9b7e2f8d0093d34f250455477ff9113e8c34d481b6f787365ea7019cb80b31b0ab93d1b9a50a57bb8c76e553798710b7345e3a672d6737f4a308d13656bcc5f3c2c6d71091ff944114c830728850fca5a70039192ea2ff1ea481d1eacbbbf0640dbb7663e41e9ebde0e7743ab84f184ff83dabfb2b8a6393c877d90b5936ae714695791a2c0886f2fff337fff12df2a844fc90b56409d254b829d185173a1653c07f5f5c322b90aa7c285f4772515c0c647db8394af8c79819544b2f7d53c8a5d8a7922971eabced88b21751e2bad8e7638d6ab6a767f7f3ec994b8f418784ad8bbb6a4bc7c9a3ef1c795c0ac5a910d58f4ae64f687a476aef7517afac88ef52e846b4e6e65a1a90dbb37cecb677dee4c1a13c9265f1feba5562a8cfa27da67d5eed0801e3d22309c59448406a49f5099902401752443ea123f918965468abe9945482a591d91ba06576af43cd1867e8a484f0c001b90e09455d10bd309749187baa823e45130d23b7c096dedb3fc47eb000b20c5222536265308907b96add7fdb7512f266e72de8f3bae351c097de79b1faaa95d4e4ed6550af49812955fe2c22a9f252c8d3f306e7156691a47b496508dfecab4649916f609b4e3cd6aacda8cb0ba2b7736bcaa32d18720d91815686703981bdd1b32a2cc0229367554095e170a4c5742818aef40710f2bed4e563af5d82e5167c82ada75f4c79ba4cbe4121269735d907f6cc462bc18a6f62177c312f095edbda00646acba969d744dec7ae947fa94821ba3aaabf82fa4ecff020e0a0a222bcf1d91c52ed9d3421eacd14dc0f54cd07652455cb2c756da50d3fa5f9ad5402673270d3196dde522fd941e67a11634c7a40c59d001676def1f409486f9f93f2183c4b5ce610c1d8f847a9df8cb26e556420d75cb5786b87f6955fe6b355fa4a1cda01ae1f406d419644e8ab2e85b4f42dca1f9e4b99aa06f588ac12b6e890299d94944c6e691a6834a03c93f388ae8f10d3de1404767d960dc0b65ce2379f850e161bf0aec94167b48a4939b8a810bf02ae0ec22c7f2b1e08103049bd20f47b372743c3106a0398b7bb488d7e96ca711f37084eedb5d66061f2aeb89cedcc1e9da9e89dc3214bdfc3531af802f51eaec0aa6d173d7e19ed957bd18728a0825bcf4db3cdb302295eff12c89649e6aecee0a5546c06cdecf087776957022e7b2912839a845c8a9755cb7f9074c0568f5d17aca2cb2df7c36b6ddcafc66930cb01be19b1a767083ffb4d0c5c0e968cb15c9744f054d16d9cc94d145a43fa9dcdca67c81e56a697ca12f620deb152881e02d9462a54dc1a3457a5261abf967bfe24cf63fe5ebd94c11e77dac586f73718e052716abb89b0f99d6b4fa08f571ba9f315ede40750edbf848d7b753ef018676e0ef87b66e98dc2d0698c8ad8aecf10bac098e97468b1244dfd7976735aaa664b888abea9bd8f427ef96a00399c2a83f66c123d01ec6d5a9dc166baca928bd4550d76e616c51a0527c1664feb03e3e72d290eaf3aea8e81b9df367c996fa0664cc7a2febfbf0c2cd3f2acb9d07e4b28168864bc13f1c385a63f73c0f6e008cd02cc9347be2f03fd37a6e201e8b401f6780230b57d6d5f5e9e2303ac2d24c991347794a48e19727c2271f3940b4eb8ef4d23b2df7f60ec57b480a5d07619c459f8e948c17208994d9d6eeba5eb66083a5c1c8c521a7a0cec0ac31193c5ddc3315ce8fb2ee8ee43d2b4b7a254ceeea45b2563aae7de2a1b1f48fd45db60d3e8c0f92c550c3bc283f547caba8669efeb4ed749aef55fb934c93dfc4a0dbd7439751cfcb9161f3d88b5b6d1f31710db8a897d16380a476c80444911a286543438a7efa325d57f3f234b238c0659d44ca2d7ea385e0cba0b70e1d81952eb404947171e19ad25211c480d55b28a2ace0ca8621cd421b5b3b6e4567e90e9088f64408c7355a3bae88da0bab9c2c846940e272aee49fb6ee51fa7621c6417fc50eae518379c5015b799f80fdd5909aaf8e65bbffd3b1d2f032b72ede8a2aeea15f55e254963848f84e0941f1b2e769dc0723b702864ddef2abf0fa09341452424ed0c22763460f4bea7089adb9703742a0bf2cbdcacd41c2a6ec64166cd70b235a9d745b48db169c2f98739126ff7d329d1e6159afb812a9de493f9f5a5ef7e1b055ae29c94c6c76028e8f3983843d0715d3c5f959cbc2e61c373563b8e2f99ab7105381868db54502c1c09d1d493dede6d5fb08f4c4af8991e5401c3a5d76b168ae8cf5af20adf79668a4f3094933a3fc1cb8ea247af4f27ad272b643879aa0c409302078e8e61c1b32256875f06de6136176597755e85c314805faa77625df1455ed062f09c130daab788f7ead9c148f87bffd79f246838b1bc4ba66948e5706c232b41bd085095873eee9287403d4e3c16a4c166d77b6e27a0f757686014e3df65e6ce2f636bc8637d0ec58bec87527954f2386ee03ee52c39a2153fb65529d3a0f318a508ad3987cafa51e03707a75ab5a255023b148f1dc85f92d047cd35c72c7d1f927bd78b046216560017212e53ca21dd6e5e86550d803f82305a0279e6c27a0236be19bf7fea5bf0fa3c87b0904b9dd4ca1b0fe6d618ec2f26e5d38c5ea6e3a20eecaa4609616a393fb097f2d9aafb23eec6747c7db5b21b3189262d6e1e6e58faf5a3bff26466afc847992930ac3b64fcc9457b9bef8a16d5f4ca03cf9209fd14573d63c0fd9a8963d047d468983dfe3c30f493e00582e45490af7197537a7ec718f8a3e973f5905ad9ade13d0668107a662ada6c5e703aeaa39ea61336bf14c7300d764d2610f2dbb8d9625da605f3561f6552ef1d6b3258ccc18ff74a0e332e5a9b6156c77b6cc46022b61b35e1723eeb748e375840d3a305080cc05b125c417763f7541cee3c98408c86696ee540c47b1345a012ac666dcf57b19ecc6d187996878aecf5eb6029d7ad6d30d48ce58801d33be12d1037767f51b800c0cb717bb7e092aee71c13d2db8d6bb58d6f693dd4d9f19f4aaf01a89113d85a894a4a58c16b37b60212fa067855793d26f81d96c19e171aae70a75fbccb590af487b670b33e257762d835daeb472bd16e55da1eccb7e2baca622bad583f0ac3a99bf0550291d2819266c14c4ec82f28e4111d91898e7e7e7e389b78facd4021a57d231508b38f496a77cf4f07a167831af014c914f7b67ea6aab9d652dd419fd6c5faca1ee40254ffaec7aba2f80abd7f88d50f7fac621db0ab80d4a13cc7fa9f3de3925d74bd2c1ae43df3b579929f4f4a589b074abed9d83a4388ad5948a95c2f06d2ffdbe76390ef54de1ba31f643f95a366212fe0fb5a2a29df9109fc7ef405a65f6e80d50f5240e4078b8c428084893ac609964193b8f63a8ad275b32b412d7ab22ccc0c6c92680797a7fac759532fea98014edf4eb0fb5d518af2963fa651d284f86728572f5af24e0a566d55cbe2449378a02b5df3cc5d9bc87570a6c9318e8a0358fe1d365885a5d8c8df421bb0a4fb90e6753b0ad75e80e3ba6ef92ea02252b314929cb13e89640ff16d067ae5f06fe15e5287de40ae381c191c1de746c0afd222e68158385880bcfb535ea5ad209d44eb7a69f00210f64821ec1991dab413aa4be95e3b89175bd7da67080580781a623dc66b03f9bea77d4535a409860f65e787d9025c5b640cc5cdf2da25eae1a88b85b755aac647b41a4146354cda2163b761904b50d840c2e5971f70388d1027dee8a0ff8cacd20c456219047a651f52f0cbba9805f7398a936af434d1ec3abca24452ab1cabb9003dd21dd80113477ab7285e0e94ecc05a77150a3eefe3ce62df4af43ecfb661be34869f3b1ce9e838b2e0edf67d12f83316dcfb996306dfeb9e686f264e69db71eac5771995aca3169c913a75e2bce639c8b70344559da0ada2fce7d2f474792102aa8e210343e157c77fdefe4a46ba11bdff62bc214976f48c424337ba75ffeba61618b6a80ddffcf56f040dc49eaf741b4c1956fe33c8fbda7b5c2d044d8407f2998bf88068f89ad5ec677b599192b379812c1a38a0ca324597df139672d26f01a9315aba0b29c113b8f078b494da0ce34d254e4473e9488924f99794ee920a718996a65f66086c8de388e9c2ef2fba969f4f46f299314acda60eba535d80a7f9151015c5e7b0f8fc5bd520c5517f04733fb99629010ec50780f1a146dc1444f6b736f35d74790a6bad48b23cb734cfc7043cfdb92882216b1e9ebed611a37498546d1fbe84466bffb2374021f8ac6881d0cece8ded4133e630c88b782941e39b8e9c97d07e11379ed2b8583e3f874665f7cbd59cd30cddb67ff155a4c7dbed3be1285e5ec0cc0ca66eb814a78308f6ea71c697b3d0c66720effc0559c4b4dcae02e8011ae7d56a6af047de73f6c12a4b3cc3e1f34221a68b8d035881b2c096c09497a2cfaa265b71f9e3f38adb88f19ce12290aab2951d0476ee42ec2e4aa62d8b130513edc66bc95ab5c395a873949dbc2521cd23570e74ff3c079f8ee81dc3337b6f74362ed1daf56cf2f1ad87eab0bd0eaf5f304c6b15697432886c4edc5b4c6d27f35eb8d8836514ca56a8efcd205b258d6abd9dcd03d687d0a35928a454dcbeeea8f3d82394db4e53fc62a8517a4132958112a97e9eea41dfc588e60439049e5590488f558ad911b5181346d97ce3b3ed47bed3c0e3de00ca514b977d6ef1d0cf7186e2e4be4ad8c1c27c49703439361ca7a5f35ed85d5c85b60ca20586fda51f8a105179e454365117b05cab5ba8fadf7c9c14e07f74c4a1635f6963ef3a790054044850d68f5d71798dd335b583f66154f27afb0e214e9b62e712400fb65d23b95de12ae92afee9e09eaed8ce963ab21affc332abcd167a7c60b87a6f687530be71de776b78818f4c9629243f34eae30cef65aa74cfcac92d741007992cdab213feea2c97ee885a92fac007b89e7a6f92856f1cc407b9d430a1d0e034c855aae81e35e2fd7f36db8810369a93d121ead777535ae967e1ee157c010042780f3d71f7464428fda262e0cdd0c2b649cd6cfca65ce4199590456a5905be279d3249a63048e127f4d0d0c54bddaf55ce757c0045f353438fb82bacfdbbda918ffc7c7b3853110444940afd47e2caa1d6f635b4ad407367b1ec25c08b68bc5a2def512fbe5b7132750921dfde6ff2b66aa7b97545f1c894cd0739fded9e19a20bca9d09fd8d4e320e2eb699e112c3bdb7b8ab4ff612114fb07c975593575bce9743d8f2e4876260ecb62a1bc2bc8ab28dead6b2a0ac284cff3e64013e1f6bcee8acf91314e90e0d929dff0759b85804d7c457b1aa8c3f50673a225964b1b4582650679da47d50f5419c7bc315ede430bd35106eba544ebc79170437a71bedbebe190e525b908d36acc6c28f67243fcbed7f2358c56c664e75df213e617213475e73aa62570c22698ee96365041a532e95f33077aa167fe9bc23f78b418fe9377acac7de9eb75988cc0da75dd20e0730e8186739e9f10707b440d5c768bcda6a263f263ae743d412a78dc88d53e731cb76033d94324199a00c4abdb13fec2b5d1cfcff7e91c1acdffa73bf3c7176bdfca0424bd1f8d27bdff35387ebd398e719705e5fadf9e576789ad5d1d2db51dd1958610f7b3073a32f10eba5547b65ad1ad0c552b1de6e63705a49ade65cd0ea84646bacf96fab106ba4854b78e1b6a2fc40c7d23981d8120c29167e7f71e9eeb17ce53ec54ed3a50b2ecb0201684bfc1b7a142808aa33ea0ded0391bbd1b41c2c36608ce5db74fc22c579323e87f92577b6bf63fe08fefa161b78437e7bc7a113d7f497a5379af4550f96220edc14259fc3c65230490b9208593ef5fdb889734d1e1c1c879e60c0b1eea12dd005481f435d60ff072be3e1e66330646fd737484101852b23f92a731e23f7723ad93d1d41f0f7e7211234cdaafe543fd6f07cda1c3df8c3ea7dc7da269cb4ce0d620665e94e278da048cabb5d0d6ef494cbabde196510a3d9640176b6db9f46c9279aaac415ed6b2bb2cdd1b38518326102a3c94ce5d0788f972e674387ab5035288c49a4b250a3215e82a96e1ecb3538c4b113cfca30f178d7682a5403424b51994b966eaf5445b42a07d35f54bfcc799c453bc6c658bf1726d2d378a252cb8138381d6064a67b2e0fcd88cb17a1b8389a05c9de88fc4819c8f8bc70fd9d2346fb7d1ba45c679d80e05a4d12c2d9430d5ae564f8742b91bca85a08faacebae147d29ac3060b616373665b5b3427fd246ae6b6a440e08ac6581e7c001d653cf4b055d1cfdbd6bf8e7a1fb04e7824ad147f21c3d3f0b9325942db4a8a1c90a2cef42bed98def1a733f01d17f4747b971657348192aca8f09e4bae35dea080e156ea4272144c7c135573f6deb4f77b5b12775bd5b14ce571c93d49232338b0f8ffbae8237bb734b13cfafab0265c0501d260225565877c6aac99b262969b6d5b942473ffade80b3b2b23520acf5db362bf93e2310492d808aa1103a15539ffac0295c880c89f3ac37f69ca62f96eb2328173fb911686f02e94fb7e84a7821d8463696a5c7b3465ee8a530ca087b751bfb33f550a9814041456dbd9df2db6f3f1a30d990c9ebfea217b39ac29ea78aaa17e027e87b8bb334c680024698de464baf802edc76bedd4891e0206afb13749719130920cf7fd0f7924ea8010d8a18e7aa5cc204ac324f9eeee62119323e3163959bf0084e87be04e1551b296ceb7b27d7c72b135ab3d41348ae9e8f463d1ee05c120f4c548b11765f38811d8d77ef38ee3ac1ec2164c0b53731c0dfbc15d773e00221cd6a070192a1cbfaabc470623abcb10a5a334b679bd00e632964dbc09741f777b466f4fa91b1902fbf7ceb5e50102a052d65bed5103ded05302386b3867584a5a6152a61009ac9b6a8099a5c2890ca7605283978e0c613c3c1255b69316e8ff2acf47fbfe05a3be3c2180a8025a5ea0c3803c68546a55d3149981edea1d33f9a4f464d02c1794dde29b28235865c1527835b55012b6a042d79e0fb8b35a60799ab06fbffe431009e70e52ee76307385fddeb4101958204a1c670b6090d4c1bf15bcd61dc115acbd3dad0c64bd06a3bbcfddc975a9a8ace122df08f694873e1352960441fe35fbb206a0160e0c37b1c1123a9af93c5a43fbe6d4df10ef42f555f8f773f6108d8eca2e65865ceca1f704699c072881a5e381243b20a017bc06c3156aef8f47c7fc9815e7b69bc26cbea1962c4bf9f096fafc3efa56c1ee41b33d0e0ed2fd43c293036c521c1d214d28902f76b2c34b60d42ea860aadd3f3061b899f3eda954ac75717eb3e64c34fdaf6bd0936f857f8619c3772971acf61213435e51e370d80fb41732571cd76fa1f938064a71efce074066be90ca07ccf23b4ff1b221fd15175a0787c0f1e16e14884a4334bb05e3531c32c0f0049ccab500286b79a8be4aaa4ed6c150646af74468b57bd91ccb9a8e357eef3861099a672bed73a6f241f915b13397e6feb189592c3ac3b15977e3cbc918e9a916df70c23217357e0bfd7efb42235032e969126d64d5e5a921d773145468fb8a689c543e4ecae137cdf5b670bbd66d636db05c6e6e59d283821a2aeb1b259bba4b482e7967de721d887863ab3082e2f706628f67dee576913e72b6561b2d0ed6236b8130cea33c5831c160a766535ec2d25ae7a4ad95fb6ca9e2286875110df7ac7c1aebcec40996392b43d04c146785d6d772b2dde63939a4589d87d9ec15576b2e0b53fcd747bd2674af8e467e32ed0f9cb15d30dd87c5decd78d1b6246c454a45c107adf4e1f2f52bbb1ef00a75c56611d2a6bfeedbfbaf58b1cea4ac42bd30b98a0f429a17f42ed859398c13c200a932060bc76400eb129c8add05cc767818fac600e08ccdd441098c65641710454d598fb468eb03dedef6c908ddfb3f5dc9f3b8cba03b08698ed92f0131dba08b316aee98f66b36e830b688be81aebabd8bae0187f25a6b18bdc274fbd51c0ff3de9c416a27b33c865cd8ec25208c252e6589b68e94b3edc112cbfddc0de97046745bfae2dd6499e172752657823bc709ebc90a0fe64fef5279d3c5d8b0f9c4181e17571dab3587bd51d35b0295b87e7c94e75ca352aaba060f660b9c36fdab15c2850b35a31da8f7d2cf779f0c891ce47ac86d3202c68c590f1aee15a1da6ad9bc37e51594f448f242e937ad53f9ad6a92c5bc91abfc3717ebbcac49d58935b28a94ba3a92c8c9db6d5a6beae4ba897df36826d8aa2dcf1a08fa0521738a8b8121d43a5b068c9f052b621e0503321c71ca3c3479f98ad35947ca2a2cf0a223c7f0f5215a3f5cae2c23e480fa310f7c212f15060ac672e70b9633cfc6fba1affb2ce947d36de21a2eb6c7f298709ab10be24c84e25dd2391fbb87db94e20762a73297f2e5c4fe93565beb65ed99310dfc3341da02567fb1c4505483a23da7a9b2c95c34d4e5b601a39fe9ec73640a2020248e518d0b3cfe043ec8fb8d17b1d3240bd42b30ccdf360632c9a73ed2e3eecc19b0ca1fbb55c65abe794211ea6601f58dd77493bcae720bb94715194383324bda6653fc9a382899f8eac96b7e0f9961bd59fef99eb659030147002195c4658cb49063ca978a8cd89bbd5cacae86838162696453662919336a7dde219f2ea7b2aa51a058439cac7404a995f177e40f6212f79f642d9b7afc7e9f4b647307b7555d230a8784e957403210c277ffea59b568aa532086f567ce7fc82f59a85e38c846753f839d798afa94d428c4900eeb332cad89a92a0d3a954431ba34ed071ef8d6a1aed432233b8c8f55db0452727e9803808c0ed437a7abdefde18dd6c76f9e29e586570b6bccd3547ad795548f1de9178a64e64b7eae2039d1e969c628777845a40da0813cf7e0b0bc89c9670cb4b228fc1f78597b264dd4945e0a429b0c0238995ee84f1f152949e4c51f2dbd8ebcb38d0bbbb356a0b9ad67033c902d03965e7d3b4e92ec39888b6804a0441849543fad884cb4b1436bc8fd7a60a73b04fb0220b6eddd3fe314dfa00aec535dc41c31fc0c87dc3d58d60463dda65b8edca761aee3e4cb20b397512731e9aecf067b3de797d727935951a2063e66ed718e333945f6d2ba6640aa1ddc50156742f3384d782cb3a2657a45c98ea76c39d9a381671842fe680a949babc6a0e510a26af69129c2e885f5bbe0bf7532d7756f96d7d3c045386e2886f4c9d495251604d9fa9e97e4aafc24ba94fa3bf5c96aef3d75102815d695dd08041193e2b370a9f7be02d933f837c72645d3f10549c770929a71c68a3bb48d23aff9b8525832239ecb3005fa70281376f846107159953f2e7c34ff19cbe6b028ffcaf1ddf1aafbccd297d4e5126e8e7567ab5a80afa2efd21761531e0d161f5f0571283d63a4f2807c3ef341e1e83392fff313ba753a86a44151a721dc2da3ec9bc5010a2c9acd21b1005e3a647dfe21f3c1d575e67cfe2a2125c84467886b0c968842041e8794231b2062da8d34603e4c196a7628c31c4c4baafbae6e981278fedfa4fa52f482fd61a0ffda23ffd2afad17c6096d8f6a2eec65cba8fef795be9a7c176f28724df02abe0bbd8fea4633f40bc15d16678510315ab2718a86cb02f977d0fa86f6bc5beed894d570c78635da43d87d06e6d9e52d8c406da7e2bd8ea2adabbdda343cb5d66b916df067aceffeeb8fb8a30ae630c463ee958cce9872677d6c090de4d5cfc3719341721e0cc42c5298c439d3eaa4f8973f9ac7106ab09d7e288b43ee88bdd8dd606adb9c7c437da8bf88a04cdd04b3cfe303b113251fac6e44a6c7c5d6d2fca28bbd8e2be6a2649b9f84878d54a01f43a98f73b6d0765ed232578e77881074aba42e60a3c3fe5c1b121fcfb2b84ab3f6241abbcc2c5ab632c4bf1ff4e9f839bb8814f73fd752f3f78e413eeaa9432089debcb99dc148418db54226b0a3349842caa84501340b80c356b7e0686d10da9c7d48f70d73a572b2f61ccb538612586ae63d859f0030d957019630f694b3ed9c4fd35f1a87e8c42489f2a06ef5eb43acff0a58717303aef240a70309d1171881418f74b7645b6ddd57ef52c51a335a341d3e46fc231661a9e43645289a2f682b5ec5aa2d331c035dca05f5288ff7b945e7c2fd5fca7a9b556591a5a40c83bba5ea4b2581c65d9ce7675b5f40342c7d8ef33c6f5fab8b65d3e26e16ad6a19ec85834bb09bd13bdf81ea890e6442dc99bf16be8c20b852e9a46e3dfcc55683151a4cb4f4cf7487bca1ce54c930425b06eca11295159f92cfcf5ef59cff3ae68a6453af43a74646edbb28a79cb7c6461fedf4059d2147d8982cc140a1e9e5de99141cae70ef2cf07b8599e254934bfd8c18bec70364ace80cdc92620a4c777f09ab182768fb5b1fdc2ab313a44a49aa468c59ccfd05c6e3ff8d1aa5ebb55907802e648de3fe6b0572e30407414c98b241027d93262e99b93f91b6ad25bc7218a68ce1e12079d6e9895eca331bd50d12e48b4e732aed1b6224dc5e6f5f7c04aeb9492f9de0bd70aabd4c29ac4efeb11a85d01602895cf321ccfbc7695259bceb9b18c17f7f728bb354ef078ae06cfb173a2c3d102dffb899bee719e6af9e57cbe417f5606e17d96ef7f8d0fcc04706e7063d8b81ff53e9fca6264a0c99e0fef145b7be5f7b79d6bb9eccc30861861e9ead56ccba4548d943b946851949142f73d08af308b4d2c9ab60362a4c65fa5912c6a7dad1a6b1cdd222d31440bc6c64e2ef933fb01dc678f1b27898f84cb25bff582b9839e2b4a3a4d5eeedd9b8790dc5952ce170eacc2cae65b42671145338afd7fd75e87abbceda6afef9d9e4c005c5a3a90b88c1612d2da9d888d76c23c6a71b0a88696f4947de9364d132f1745dd79ee6d7984f3cf6589886a5416d18e891bb4ade79b3e6356ddab3edbca6fe1a9789dce4385a4671d7f5d4b0532c9b361e7c0557a8381772ea5a6d1854c45c4df265cb5bac9d2ce3776829f9419973a1c300fff2107f1ee68dd06f57896196a8a9841e6cfd97e92fa82f4665cc5128de4279e4a9f02b974b3abcf5eac2f7213f7b9ad495c7c2b187ce082459b31afbe348d8bd2c25c7b3c229bcb2e769c173baff7dca84b15fc363ec5ec2214f080a1c59841f599dea1e80afaacb970fd2baa6b3d329e4981cba02a163d5d833aef9b1239802761ca1c4e5135aa23b92459a70b3eb9aa58892d8f1f25f7d15e61f3a23b78a1c188ac6e1d8f62b8ff6033a65dd5c0eb94596c3776cbb9bd43175e3691522777f760b88e70597fd3c3362c53a3a224f4b7be79fc65421d00299de733dbcedc04f6f17699c357e9e6e63ec39344c34164fde4880ddc0e2763fdabcf362118d6cb4328cf93ea2ae38e56ea6ae720c47f0840cc606f09f8bc4ed34ebae3aa19040eb0822dfcfea1344c60c709958f26f887985676a0d7b58b0da462b76dbb82435a77b7b39f1ddd3016cfee4b9366b960aafad9f2717eb294db7539f52bc755c8eca11e0fc955048c29b22f96f097253afb6f16ad9f89591bbd0c328db75bfb6b8fe40419de00568a95c72ea15dbd76a3d4576fcf01bba24b120bf000eaa8598192763e682508015b9ffb70318bf07150f4921bc1b3db39e70f4e1fec19edbd84b2918bb65e56af2d85ebc9ec82b542da13e1d350e792e0ec81958747faa57648c5f81c4f5274482f30de913da7d559023d012bffd003f75e113a498c26f09cace1e56f19c9643511454ddb85eb6d0bf594bb1cebf77050aff1f9133d2eebdf5f14c2942297dc0d984b58f3f19490cb51e09bfd17de1ac5a33bca819d47c703ff55fe0eaf0e4646a3924a519e8aaf152c6fbdcb16a0452ca34da3259be2f134beb5255609c4d5c0359f29b23d8b44d3a7da2b4ba60ce42811eb4f32b3636ce0d184adccbfad6ec128fabbfe8d00103fef5f7f38fd927b6d5f88e0256b659658b829dd3a954ad67ee9b40fe0841d9133cabb2f9a4fb01163890a4034bee5aeaf2da429acdee8d429f16df70671f06c4848ef8ccd33cc85abdd3df218b2e82e2102876b3b4af369d5b6fac48004d6e197b3bfd7bcd4fb7a4c78b8c4096950ae608d9745d4765e0f984e1e4809eb0c49ec7e2cb74b1d3770a3b41ca0169d93f8a4df4ef149e4ba5f3e84d08da3b656cac640c53d0131bfbcd64d944d3353c2b66d82fc968fa13ef336dbe835a3d15ada3044dbb2476641b2195773e3fee7d4489b618add6733f171f36f4585e1cb6046b4aa6d25e6364f0f1f9fd5dc03b7a4232da0628a52216cbf6927fbf12794181187123a19abab20cfbeb04cfe11f66a89a05429194817dd95acdb90f3bdb37453c9898978588003588ff890c474480f9862431c58b1d312d29b6b0496252b05d812dd7de9dbc353522914cc4be94406d1dda8fb44b1a0c9d633d40fd2018952d37a80d936cc5dc22816a014923186ed866224f9c17fc32c7b498a88b36ef52169573f0b380e11a8f8f0f63a7db858fd6770f7da2c78ab4f49174230bbd7ff86de8a6f884a5953c158d53f31a6108b1f7ac053fd3b029bd6b4397aa0e3b1f7e3689423051db72847ba899de6ae1d05dbebb33fc3252146f074712c535ee45e87eb80576719f467b577f29b756967e208136fbe3d1ed7a8c82e028906d9626c00c49657b9a7afa8b3776b6e61bc0070b64cdcf812ecec9aeb86f10d17b7a33a034b4f641a445ae0e25be11ea8927af6d1843d519e50cfbeed479f0f79c91c367e6e937f05aeb3cfecac25b7efdab419415faf6965e338dfc9c0cb7a13f27696491268f075b4392e1974a6c18efd3f5caa8ed37d5191610e10b35b2b9e932eefbecd4f82d2451f37ba778cc015958430e62104c8cc41834b6488bd5e2863ec824dd85670cb682cd6ce26f431e4730c2144423def4594138c4e232518c4dc5e6d1fd3461c9b3e19953a2b18ee6eabf93d3e5b3e20f07591a6410a9e347084a63594ebc9f3f6f1ccfa145984b94a08ce0561941c54015a942b56651a31048f09da220ab012590c4971150bc51948d7d531fa2b68dd60bec00d29b95d7c2469c72423576d4bdd9351d131af45e9c9c30c6358bcf21b181e7b9907f80a3750e2cdfb686045ab3718e68ec49d7c68be6c78615e5413044ba3b64b5ccece82cc975a062d507f22c3f42470e1686b0c7978d16f146c7b1ce0c8e0a9fefd1b79b09c7a2ee7fb6bbb049cf3a411e42d477480f8de4c4d5bfbd35869ef40b21ada9e04f85f8ddf7ff9d8a44912858980060d3cbc9f54c1f867adad26aa9bf067835c923c41bfe14b0da8ab1021c5a5eb4a21cef3ac089f06d7f85f997bdba8c3e2c0354fb277159830187ffcbe3169d72457d828c024e5b763c715853aff04f8856013a6e8abc5d08514db72f80f24b45e375218b2f6c61085236f129df4d9451bff8a83231803aeafe39db5eba9ad9113048d182d0dbeb24d07b58d73c335fe7c90c21fab71ef0e865694619aca02feea231aedf3ef8b1c01fac723c5366c69791920afa6cedfe32ef1f292179a46a2327fe9cb1830317f8d7be7e7f12b39b1f1821845b99e47da941b0ff082dee58f90c6d03bc7550a8b436c05e30b3dff66eb2b4bd0ba2e746ffb582ccfc5671204c88bbb8ce8ea910dba758440f33be5b6246de71c4467193fcbdbea939fc37f4795abc8abe5198c0406b29738ed1b35e9d94f14ae3d0239b337680f1c35167203f5ef13f1d697ea07a163eb377c4c5db6b792a070409a9404ffb7f3f0083311384f622bcf0fba0d55e50604f1b6d4e9aebdfa08180c23acdd803b7305c2ad0717f238b14b5dc066217b42847712f48dc799bc6fff0f6b26caa29ad0d4c55c887e46b9fbfbef632d746db6b416e0a02eb7638d099d3ffa8e70be521acbfef5f63103e2af3f6c54cc3e209e9b28a68acb69a59586f352b4938f6e9af61ba1feae2f7a55a0b49d8e4b64536e6a45a9e1de321fec8dc33a4979153b0c5ea5418d63c0ed5292bee464b163077d1144e538d7cc99a084feb83079d0d6e3dffadcb2961be29cb70bd45037081f1d62dcd0bce7edd9249a37864bc141d6723bf1611216af9fc953439d1813e01b715482fa07d3585ea6b7bce4c6f6a6e2633ac1ed0a0a4d54dba50ba555dbc55b9bb1f0c6f22c14f95033291315137c373c1e538c9fff3dc2f56eea4312b1f75fdda33372d0f62bb7e5247478efb6b6a848cf3a40b5b4608551d4d823fe93701da54df70490d77aa9e3cab15a21e15ce938c340f6931f71c823655eefbdb109a2655f2bebcc70763137f4498b690f415b6d6c28f67882cc31d91e2a9a78570b4f3f15923964446c587961d7ed06ec2f3f59d9db853e15b90bdcae8f2af7367641a80d09df2b51b4f87153aee0edaf49eec539ff35950146da4b81e65550ccd946bf3cdc03e796bb8a6711cb6f1ff0484dcb01b0d1d86f31716b94414cbc39115e09be7cbda56553a74eee392dc3069ee6635b8db4f9d9586f1b06e31086231777b9c0ea98bd6daa03e3065f4f57bed5f3bd1274966c06fd63110c00e322eaa706671e47e74bafda91b144128a10acaa25d98454e60d4b836abca17b44209a651fbbb75fc73db8bb32596f6072e0736bf481cfe88c802725b732fd608aa1c5a5be416300307c76be69984f611992cac0bb661bec37d5d9f8a1e417b2a6399deb0e300ebabd5f6da5bbd7791fe142c2c04b3f814cdfcedef0baabe908d5ee82afa8734713286b13645915d15ee05e57fa6bb93b8fc015574a01ef6d4f51fea08c353dc1d93c1608c046b360cb567a736658856cb79298a52694fe25363397036afda46ab2026c4be2a4779e3c8d8cb3746b87c87d5e3f81a887e847915677c9c4b4bc1fa9823af247c1a1224f957e2840cf79af70b16ead639559779f35fda882acf2b2af990158d507d7ba8729232a9bef763999083c4eb8a1be2943594e9bb421e3dfd255f5c6710d285ec2a50f8bf2e560d0ffb5045c58ba115c57b544217f8e6b28a7108f1bd3d2b8e4bb58cd67c339607a58ddaeefa5122ce7ddbb88a83db791151948d2a2f2b8628e3d0e344000bbc7a6f58bb2f87da91e0c5d3984ddb1d262b3798b61b8b04a614999f9728872fbf1f36963e2a9e402562ccc2e581a2927c3d6f33400ab1a88764539dc67436b17a1a3e1f478f52ec54fa7ba60a03dd2b38221eef8ecc30ca34130c5d3a93156578ca378b4b9a78688396614ae5701a40ebd62ba2d9b121ff530921b6f0121105256fbaf9ee4d933f8947535e7e3d87b46737fdb64ea6719d8213c050b186532ed0cc82027aefc8d81643219c3cbf7b446d7fe18a485cf4e40b795f37c43199c1693d36fac7c69c11e4b724f5b2c44842721265bffecb56dfb04802787ce67d583d49e02d182171f8870fec53c8ae87e749982180d3087f68e93e02879f2938048d79e6cc8d9676e8e187bb48c36115800be08fbb18fdda4c3fa6a132a27bab84d0957c7dfe338c125493d67858c37e933430122f146860faca13a905f3b5f7ff0f44534444805b606db4455ea32b7447498a63b5f420daf7cf47f20befcf5ee9232c6aad0385393bf10fe758a985c1df4fd3980de8ee89664967068a08fc651e47889ac94d97c0e819cf9610850ef272fbf056867bb058d70441d658d2f804eb9fa265a11e6e0a13281c9a24e9b28dda5b9258493feb628344105595971aa2af4e96d892fb0ece7da6bc0a0573cf5cd7e96d8a63015c64133e707c2c6c42531687a0636c691a84bc2dbd3c5ee82cfebe82fa06ce32d18a4184de2e6bb848833cb4eb5183ebfb7cfb9b4f514d856270064c46030072470d8ce9293b290db41958d38c5011afb68fe175afa04d2ed2311bd251d46aaf0d8577b74b0c52ba5688f097f50ee80b1ff724ef781908cfa873632490bb37d249f496db1cad2451a3b2e03dbc7a6f028cb57ab2834f29fe2d305685dfc0bdd0cfe909b720028b58d4e7c6e0839850ef04dc71a498a65ae84f4c85d4a601ddb0984d4eb31e6e90b26e3deb40517233ab46063f6e9e32bbf364eeb9e2c492f95489d082b74572bf64a1a3fca6a3ec95c5ce7d2060169b4c6b646d5daadb42047af65271efcace546321361dad89c156d31c61d9e7aa039f8c52d2c26bdf8843c38abfacfd3d548ab82fca0debb6f7c94eacb5e557f0fd7178c9881f8c9e3cf2c56b37039f71b2dcef1a5b7bb3c2dc24a1226eed20aac1390e54af009adbd28d5c64c313f38bb2466f2835ae2a0878a09428fd12800ad4a3d2f8af39a5f400e8ee498b54fea9a72fcce17c140055bf7632da372b28ae4585ec7e3815c260c4759b4aba41af57b64f2158cda8139170218bd01dcd97aff2068336621a376eec5a0ebd8d2196f0e56eaeee14c70a82e25acc6553cf9fc3b199e870473eb806e4b5f7fd2afbf06003ce1d37b79935ddb8061b2a4d037326553798ab9dbd7b740fbb7927cc38d662808c301088f0df265e3d6bce11dbcf4cb8bccab7792c2d25c1bdc4c9cdb34fb2678032c5192c9c36edb1ca7339b2242f543759e603140d2981ee601629ab7397537cb340842176724db826373b7626cb3a279f28f1b17653a4e1047fce350b2c5c7587374e242546c34e724ffe13f8eb9ea8bbc58105abd86cf9b2957f94f348a6dd90606d859ab10115e216ab74026690bc4e5d25d9db47d1cbbccdb3c7fb36164c432e4c43e42d4bbf10fc941638056c34d4faa7623b9ac13cf38bc3f1e79f4cad58d61028eb947b047611aa87c28bb07429d2dd5b660109cf08d93ae9cfce7c152f6f2ecbd9206936288b7b3d6803c2ce9a2131c689f4d7845159a81cfa391e8078331ca84668233905851476ea3a27350587245e7670aabe573ffe8c1ef1179ec0fff91d3d2f5dcd43138c47775c30de7b2616ee28258e41919a553067303631380ad88812e45d5053fb16367d2c8fe886a9e2300000000000000000000000000000000000000000000000000000000000000418504bca9b664064d0d4bebb8ff2d6b7cea1aa21613c39e93b1284db33849a2e015ae46487a41bb82deaaf82c73ce6603bccb5ec1a9cfc66cd260fb7f0ba4efe40100000000000000000000000000000000000000000000000000000000000000c080a054f9de638539aee6dbe15236fee47e6000f9d3810589624a42688a8744b8d07da049e28120ff56958455eea86da7a044a8615cd01dab5e3f922486f89fa2620824", + "new_txn_trie_node_byte": "0x02f9d1f301824540830e8148850e26104e26832fb47394d1328c9167e0693b689b5aa5a024379d4e43785880b9d18449cd3004e28258e41919a553067303631380ad88812e45d5053fb16367d2c8fe886a9e230000000000000000000000000000000000000000000000000000000003505a7700000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000035053f5000000000000000000000000000000000000000000000000000000000000d10000000000000000000000000000000000000000000000000000000000000006829d4c3bddbd3abd06c9e3bb7e17bf05e43898dc55fc4ca3d1bc8106f08818b4b2c455615ec53bb62ceb223293e210034367b1089710c82244506ebd777a2794c15014caa60da5eedd50467c641ea23b91358af3f8e83234add6e229e5f29547afd5157969ffdd67f6403cb6bc190af25d57ebb0e4fc170cc7267bbcb4a1360eddf915bf410e689f23b86c6178a6b560f8b5e9df019b70b8b711907989caa1e6a0ed40754a2786c58d3c06c43d2b9df83c9179f4f4671c4062d0929e8c3444df6ab3a86e773bc417c048db3a55dd8998fffc6b9ea3bac017168f2bae31d80239ae4359afcd353f688cdbb204bba8db20945860557232e674777fd612bdece02d5ca6cd0b53d650f8e3fc29b61f9dd784341dd2347797ff0a3f1d6b44f7e74e320f156a1558474ed3d3799dda354b05d5d3be7ca62a4335c51d3953a4f3e00990e6c39fc3778f3c1d458bfbf410066a231161d16a8967dfdf164807256de8c33116a48088ce3f95d46a63f509f9e512361f55f01af39221cad2b0e4c506bbbe766d969329cc9608667797f24620d39fa9faa18d0811c68723b17c2ec6a34ce9d82296c35b83a0739a4084be5dad594ef3a219d4e1ba91cad02fe53059ed00d192c1f6635b86881041ba4200850c6207c3849ae500ad7fdf9382daa0ca8fb9093df0dbaf7e41abdc1c45ab5253a3f045af6c7e8d046540977442b1f158c0636bf897b5c57da50a7c58b49cbe04671eb44507bd3bd56522b4de616b67e2eee44292005e70db6c8770390b429ffbe5bcd41f7250765f2eedafecf3f3eeea602c7d853c0f0b47501518d20a5d9512a54aeedf7475684bd54dd7fa43f82f8e3059989b06cd70a05717391d8f81e4c0ac20bbec358b21a01e166442b7a716e5277bfbed3d4eeacee5ad6cb58ad512bf9bf5832e152581621108c1109417f389e1ee7095ced80b3d83f8afada6f5440047a7e908213de92ddee16b733ad1ab00d4ba3113c4574e52be44cfb6d27544e2b0d37810f79b1fcee6c9c25528f94c874f5677e21cea614e0171ec90b294e7b62b1a48265ab594191d3a1da13197df507c8933b4637eec55fc4151e57a4093b82098b1051db3f3c82fccdbd9d5f13d06ce6fe2b4f288db7a887eb757f6cad45e451497b288d8f89559e56b36c4f5007eee35d97f27b73e74848dbdc80a3b5ef1cd5e42be42c20410b5d0119fe999283c617b082b41f73c43be71b3b33a21f73a0e51acc4d39d596a059d462fe850e4874227b3e411c33300e1923c78f6497749e68d052141887613303f0dc64913953b850ecfa8a4af6400fda8edf59dfe2369329fb8be23b50ae41e04e14fafb223bdd2cf8b13a5b5f220adc063981d31803aa47bf0431d0a1f6f6da91ca70ac79d31f34b4cbc4d1666a4166c89337a4a9fd5cf112fe28ebc65036545c3447954c068c498718eb5eac38053f1e8a664305782eee03e951b4911d97d9b04eb1d437cc1e7aa9f2dbc2b3954d94fed1baeec45882e915d7a743e5772208c95741650b5920dff0d1ea3547f1030af7a65d1455ea3c5fdd951c5c40bc5e915b5af70065bfe7ffe1f8b3a6cd1769b93955520e51b3af3d1f2eb6454015976328ae8b36ad234d7aa7959ef5d4ba67cac959780df594b4aeb9ed45ae390bd7f2b13665ec19e89687b86dac8ff7dcb8ea59c2fdc3c6bcb7dfc0db995e404b90aaf4e25566ff9f7974334dc53384a2bd0f533785bfc732c4af8e25e24405b008bc2b6052eab83f7c7f80a8c4a9922627069567ee3995b44ea008b385c71d234d90408cdffa0b96a6ce1fd91f1c1f540139167eb82172111ac53a4f434a202d82ea5ce6ecdf2286e2a0ef0988089952bef9f95257b9a5b56f2e71dec7861d21667d9f1c71c092eae7b493b2c09dfb17df6fd9c6e9cb2e7780ed7a92a42eb50ffb7fc43dd524acd907c2c8fffa53f2271e29debc6a51091f091b4a1c985a7a2014de032a3e4fdb532d184666f6462e646f3c4277a72ca93d6bd8284a65440bdf751afa893bea0f211548874fea61331bf4b2fbefcc44d142e70c34f2d9313f629b0b566289fa9fb47a69410b19e962e7ea65314f64f897f17f9b88959ff098149c29ceb64fdda78b847c480ed3a52838f2a1003bd9e46002be67c884f29a5f3949da96b66871023523bd54554ce6f9fd4c53a429d22c73b47852f993442c64744aece1d6b3c3e0555496d215b7a82303a169cdc930153a2e132a7bd445f6028f57756b160b1cf7f827b0eee0d18feed1f65598c2bdb7affed1a5c9daeb619f5e76bf54da1f04838cd2d719c891a20ee6c52a2ee42c26140b78062142f835ceb4d3822b970d1ba8f17bfe3252d31aafd5ec124bf9556907a9e2ea8e02fb4447e2ff842b675b986d6921c964fae358853d6f0720ddc49aeec107e7aa1cefa7d0b674ece4a33f8e34218796b63106c1ec43780f66b60ac07e3dbb4fc032e1bbd84fedb1132fbebe0c909fb5faa050477d0c1e9bbf4d8fb4e80e280011d10883ef442190de712da4062649a3220ed16b99cd4a723cb3f6f30bfbb6a0683b78efb47d70431514a02141541d7f31e686b998b115049bcf4e49cb5581977d2b9257c947fc88f2143e89c2318d12e2d30d5981c3b4dd4c13747fc47cecbe638055d253915e71453d853d07bfa10dbdc258169af7f37951a65a3adc0ba634e0b90b0784c2fd5c0a2a1008801a2581d7e35020e6ce42268c857c5083ccd34f7ccfa81c1dcacba71edb286dc2d11f95202da3947c9b88e14b945ec5d0e40a0d7db777eed5dcda8925e53cc34fdced9dffe913640fa6a0b240dd61e64dc1e942e0defffeff29991acdd9fb237ef41fe26f7c807153402b1b460761e4bd67358710089ad50791001d127f10132d2303c0645c90ffdd08949e7c703833af70100aec2703b046781e0d680e208be3dec20850f323620fc6328591b6ea8180fd2fa1d52b92a3847a260683f882eff72919aa7ddaa9eb705751d5f0c65895d9bb54fe5123096d7039f1f81195f0ef6550eb152a25261211bca2f78ae80b96ec1ac976b7cc7061e8a284a10b1c127b7c89edb55a24dea991857dd743f78f4827e4ad72ef800aea24ef252c7a3447005adec640e73770ffcf0420c87f7b313455fd69dc8103520943d8c96cd0c5e4b69f1be16fcd8e6fd8b58c3ba8abdca74c980611558d9494c1b2ecfea6a49c6c5a130d4e24344662653f9ccac9caab787e056edfb2974ef693a004ac9e919757c3f347e36ce7d1ba36e7b8c77c0bde1711f7e97250e8c1c4aca1660ed8cb61c63632eace16a8b46a95d3a77e50ea559336b4aedf43bf9764c51c5d6508abf25dcc506c7f2339142839d447178fac492042d32b426b8c36d742c87c7650460040270b66915d2b2b24d293abc36ed1d6e4f6cba46d49437ee63a03c0476aa27948b33cd7e63b4c5f6623c8813cd7f29e01176dddda7f8f357df302921bc028226796c8329e7990ed9852b0fe940c7e73b48f69c70613386de2bbe9cb4902348c35b6fc7387f1cfca238a766e71ac8fa8ea8420da1a0afcb264ea3b8f4d49170092b4e7d13a85b9cb68e7652ed37362b0300b7b6f09d0a0e13703c68c2a50abeafabc4d3df634cbfc5ca17bc7191176a0b1c8d1abb7fad7a3849e5c2fe3c9d0bea27f58c63374678a2e738d72d21fb968f0fbb4c63a065368b462839ad41b41b6f320b96ddfbd30b4b94d4bd76c429d1318a3a575d0e2e78a61e2dff8f0af7b1d8c47f7d140605d883dd7a4c90e4c1feac553714cfcceda664931175c9c86595991499002a3b408778a67ea090efa888f2d16b8116ad25f4c0fd89996b39ef86c0efcf4a1e86f754380d0fdbeb5049e3b54ed2653f9c7bebf91fd30566d704b4cb2aa2065b1eb0e8dd057a4b5b68574c1bfafec12ea03e3a7d1bcf47cf66434157aaebee9fa45feabaec4a3c0cd3ba7d3084e04034e0da5592988b4d7a521a30230c69f3278d43b000d22ac9d949109d1218919d46c0a7ad381ad8dee86f814ca8cf23c2eb562401360204790fa97127da08a9047ec97c6bfe712b96e95b28dab4ae385c1c9cfe35c3640f43d53e7535b30b10291423f75dd1ef20b8ccaaf1ccc66b103911b1f436ff364434c1a289b5b770a0263de11759393ff0317854cdaad87e17f18d1806d9c59271f1ed8fbb321d13db1f4a3c5c2f3e6c0620158f09dfd54d72e5036ca8dd3b21d80ffb44ff6a5486d159102f9105ad1ce861d38a2b24d3e98fc431e51e056f519252c8db8bffe06d2508e0afe8a8a5de8ba64c6d2b673df8f81854f0edf4ae79673f4bb208deb0636e6d55baae3144996a4f2657bdcf2e8ffdf3c02f7132b97f93deb0b5913a7e4282fa5c8c42e3a4b2236951985a0e17950eb3abaede0ff2c954fefc2029ccd01ae6f6fdc2864fdb80dd6f93422ec487614d36ffb9107c9704751c1819f39aaa4d2cbf6d8fe2164ff9d3b644af5e56310e9f8f7e1f0f7abc09f8177a1ce02d35e218dac2a9881d8aa35e5fb54d30043c8b8cb042ae487b77c36de4796b1d85c1fe962210d64da6660c5fafdbe7f36eb7e5f911b5f5df6c8012335221e1c6476de7977a95178fe1caf490aec1195492a0d7167cd93ddb226a906a04e200a312832be4e46bd1868f9303bc8867b213517ed21fd4fedbab5e51eb70018ee8fa25e6e0c57bf8415feb7037ccda3ece2dfe99a16354c04b46023ec53819a1d9e0c7de0c8fc63880a6f8ce2bcea66b04593ba5b97e36593bce515d982a298f38cfa1b56a47183bd3abe92effbfcadd2e3d05d98703e239a8332ffe5e111574b756469c6499438d5241b126ab56047ff9e45ece9daacfeec0661a56adb96d7725e91655c3bb1a21e0c43597d724669a6f88395b01687bc1f0f385b79e4a728389b2cb2a9616738514449c4c7897b7e966a6eaf6422b26b5a1017309dcdac12027d689bf1469c31e5e98735336fcf8c580bcaf596174ea884eee5a0b1ae24f58daaf7b2ded2e3b907600aac1c3508648c5d3cc758419b001ab656fd86344ce0516689c9b5bcebe5a3703dd687e556101a6a045b978f5173213e79b2b80e994caf50e5d1f17550e22b40fd5e0ef28e90b842940524db4c0d51026120d0a18425e729983f2a0124811e4faa3fba813eb5f7492e1c67e2d3fbbf00934becbfcc1c6f99aac3912305e113b8249c5a9a6c372809a1caa9b8be34ef7821a5baf51590345a2a3213577e99adeade24294c36b087a082136b971e698c10185959ab5afece315c213b16b053c837b30e4ce2021f93f4cb16872decfb99987562c4038bf03ab2260bb446d5fa7b5f0af24435174dbf904d09fa9064029ebd7a61c3219b2719a72f5e207227915771128bd5792b87987ad92c6a74613d4b968193eede9111942df9808f0d919e960f3b3e21daa5f9a16dde17a9222134f015bab87211e1d8f11b23f629fe51c20565fb6f19269306516a2e8c6c3b46cb962d2fe2a653a5811954fb76c22c2cb1172cace14c3b3b39288c0fee6e7ef48c699aa37d13c36554b50753c224a4e2ec4ef8432cb4f859470e1688eb46d80a739a8b02ff444539bf5e36759fba27fb6e8375dbe87e6b901dc026e56610655afecfeecb3914e42a59c3cac36c088689061a9c5818a3443df876ab731a57ee51fae99af3800f31bb679491b17458096eb543507295f3e7f8fc28c8906211b25a554b861f8cff0fea7f7444283860195389f856d24095f2569d11833b3dd213b307e85496f7101fd99f0ad0d5197418e0d68f5862fbb01bfb563ad8f7d6846c06a9b723e5de71cb0fa2a0f12b4467d6cf8187f98714aa5336766cf65b99c146aa61f8a6f408831dfad9bbc7c38007d9726657aa2bf2a60d53a6d582f03c62d35d8fb8359c72bc3d0d131e3b39c25151a3458f707f22bf185006fcb3154db7e138b5712d8e15de8bb59f44bc6d060b6182e5b4e4e4b0804c025faaa793c04ba04df67280738d2cbca39c0a4e1b5d4b1c361a38e375f68026e2c86c555cfa06c400144ffa07a67f97d9ebf4c0159ada6b3c53c87834c868fb4496eb9285883e0a84ed656ef1346733af210afdaf4b76ddd5e618692739f2d6b81eed2b72382d7a5399efc863de8a9b3c4b97f58fc2bbd5eb73fb9db680eb3efb7c1c8cb8735bbf667094de391709f7fe4e7fe05df038cdad4757f0fe63be6efa26f01e7fc5d7cccd905754e3b202116b8b9833021f1c39a11181758735f97c328c723a56fd75e0ad465e65a9645acbd2358a60e7fa92393ca2c17bdd851a9f74df6af3973d4be67b7de26557e78717fd427bbe186f8a80b8d193867dd4f5d747d6aa75e382ed13f991ebb06c5a0bb5dce6fe47cb217db8dc2ed327ca951d3484926cc9fea737260e28e8c87ff0766ff1aa1c201f923ff7dd710667e13f1c0bf8fa8d5c8157cdd27c7e6ca875f9d7bbf57577885bf0352ee7d5f65c47a18c85e245bf51b9a49af2f05fa7688effb51eb77e4f282c0b147f0ff28dccec1bddd31ed27151bf1a340782b466c1e2499ec9c5961f3d0524e73cde29268039f4a56627149a1a31111ebd5e1b8e294450e99c515527540ef5021a57c62e58bda2615ac347a5d992812495af80bc99ce8b0405d814e2324e4d6fb530766c3abf51caace85a973ded55c978960edd2440f87a58beef5da156027919f185995d1b0419c7639a21e6ff183bd6b495778b34d63846ab6c84555f04b711911989dce8dbdfa3e705c5483ac1bd524b10931eb0b85ee03ea1e7b17f67e67bf12a9c35f1e86ab2f79ac17462f023413d4983bba3fd05c113ffd958ac6e9472eadbc81d13077e8a374b856674ffd80c2e22aa43b59830815931fb8849db6d21b765fe3a2fc64dc0d441637d22569b2223102da6266cabee55d4350c6c715178f31155ffcbd9dd1e513812abb6aa79922b606e62d22c6d9f081683302302aaaabf25e28f6cc7e72dfd8ea031a51aaa141044d2076955196894a87dd5f2a6c9ff76ce6ce68472935bc735025c875b8e72de72c8852ad2eaed227ac0178fd5777f40860d6b2f9910f1d7f648b1b4865e4aabc41c8fae14ef6f0dc65472e143f07be8ddd0a7abb8b5b24c89b9a92d4a02c2fd0f69a320f056ae2d276c60ea26e912d116997f6c302d8a20e4bef2cd7d9c684f14487f821fa4260ff70bccb6dc8455a6b0d01f035c9f42429ea8f3b847380a40edcd9a6d22dbacbbc27d7ca37b4517a8b871a71327ee2601bd996afc22b2292ffdb59d123100be6ab6b725d3ef2ff7e2a0c7697672071da84fa8fc81fe066b150a46a691022d8a594c8f3b24bc5c0b72716fc231b29fa6ce4d971d331e5e0342e153873080c393f010fa48e66fb6f33a146cfac66e6ff9877b86797c382d6142d875815cbb1b177a44e2adcc0000056b6e26404cacc191c6ee74047f8e4d4d46255607041d96d4574caeba411adfb67431df35e18f89c0c33c53cf294ed8a05ef03407f00a24a1f1d5bc2dc6eb8c01cce45a8713d933d41de7da55809bcd046226d121e91ccf09369a90cd32aed403095992d07abf0962d31e3ee3d7746a16ba549976c74af759fe5c89c75c28213062cf82b8024a3d57feae2a17db4b737fe73310f9de215e8d0c8bdc1716910651974e223d8e2d95e4337d6f7e77748ed30812446710c92dc61e5260f8d063a31482b92f6744879a2b5de6473da6130b43f9ffaaf74af85ae5666f3bc1e2a1fc46587b5b20546a06928d831e8094db2c28c874e6a807915225736f57cb64f750b0516a088bcbd6bcca686056bce85fcd839bc2cb5f555c295155dc58230ba365d724cd27a9c8e625b8b4c8b5e2912dfb02ce3dbc11a0137a119ebe42659d7ec2834fff2a0e7f254d3d74c675b2438b599110d6c7ce0f0d42b8524ef56ab9090af1793bb0adca2e561d949e5d80fd05bbdf198cfecb6e517492baa886004a9247f6ba13ea15a54c0cfeffd21fd4d35e05ab08861915d5611db6d0613673a5872e7a2a0a46092239bf0504b0b40209b0b1d1e2cad41065b2bdbf0a17a6d2ba92d5e1a0bb556b65ca042f9a1996249e7c3ebca805c04d9ed071e678d81f740a84d7bfef2c54300ed8406c36d364ad98585485ebaf4ae806462a3dd5f6182c90b0916fd9d40ed5adc1fd4029d084df1988676bc7a9bc4653b668da9a427c75c1f652ac226b6917019f7809497408460b2d38e661b28073650bebade5babfe877522fe1b28aae7ada7caf59ee95ac4e82ac390178b46ecfccce283ce017ab2364fe2fa38314ec5013187fcd1de75e556f4e7b68fb1725ced32c45f3d1ec5c765f3e3f175fbe654e97146d7e2d9a2a9422069eceffe07b1e21d1acd6e2699043c3bf44007bfd0bd9fab0f5b13fecdc9ab6058b5a50552e163593a9584c2be2a8392dd67e8dd8a04c352298820a396dd8185559f4054740760685e63119b9c629ec5f7098441989b41d83a29b9dca03fb3e57dfb38d6b8846fd347c5a777ffc02012f3cc5b35a59a3b399af66fdb2ce134d07602e027ec63646265500aee6d06b8d1277dc57ecced78d469537f4bf9cf77fc6a0986304fa171e5cab394f7103f5e0cc883f1737220ecbda327091598fe50a1cdf03dc72ca9887ced0d9a1d17b3a63031b9854f8d6989493e5dcd01931fa8139aec62dfa2e81b991dbcf50607e496feb1ccbec587aa22042145d453b611df0feb4ddb763109120195cfc38c49302793dbb7ab3c1c32548848e2e63892f97e9f6791cd80d7df28b2ae58a92692f45915b44b74b4a2cd1cbc24032a1192fa101c5111318f0f0912d7fa3beefd8bfdf22e20c3080f676dca612e0e0f74da683425f79a310d8d15449619236036cd2a0a5bbb93e751bb75367c769b01993c2cfea811d93377cf5e93a74311a5ea23330d93352ff044639f676d88f6c40211597af814c2b0b0dc66f659ee5a0a4b01e3a399c86c5de0c12f9b01ab0f25adfc790a2f7bf0f4f01f5a49d39b9399d0aeeb6f83ac0d8e28da88941e58533e982c0d3824297bec4be6e58cd981e0fd23c50016150ee26a15bb62908ec720db04801938f0ab0ee30bc161082e897279b5dce793b8b08de03b7cee643b7898f2f14d781869f350f3a43387d5af54d8f83a745c47f2509267b095256219cef262ea5dee181969052bc0f55c9b5166f5a27cf92f4ac004f8f473496d82645f30459239c9df86f14408e9bcdfb62c4b2bdf090ccc3a646485be7c20fe35cd657e858e46dfda9aee394fff1faf7fc0d7b5e7473a17a63ef463adcf877a785cb4ded8c1730ce77c345ee83759d1e8cf6dd4d50cfeae7bd8fffcd70bc9c2533185ae62ea32ad6faa27ccb00badae103dd427b4e31771a046b04d28f6ed296d47bd9060d459ae4ae2a8fe5084e6257609e20500fdfa23bde58fba3a71052054266faab05d5e870dfdb878d0d1103dd802b5e5cab4a7a4f403d673b79028badbe0b980b1c05c142fc52db0452b84d0b51b74811fbba76e62e272d09604cc52d1ba9d3d9d95f1ec4c313e94578c24d78c931283e8b145f449dae37e134dfa1d73f089ae31da04a3f6b1f519e361ba10decc975a646815d8d9f82f5298846f7aa745aa3cb555aead92851ce9bf69eac775f1b18c7ff2eb89254c2f0c705dae59c2e04bc699b5aa54cbea5538fb36b7e81630f30b6b73fa68f196b3faf0fe83ab3559f959ad47eb1fe18a77f0b566afeb7fb2beecbac8ba08efcecd8d60cd578b4c01cb7b87855182532acf065473c0a1aea81f6d63cc998b19002e4518279aa52df1edaab667e8df4e9d163bc6ec19551ccc3e5b2de9f07f3a52425f6c7310062aa2591c8ffe5cc0d0c49b17b37e6b63e23c0cd4c9b12aac6efe216516cfdbcd723677450b99db8489e84125e63887ddcb6dfd2631f4001e980755463d0abf7faef0cc8ace226a6e7dfa6f16c647fc904f76400b64489bfadf9feb092ca9eafb9be8f8c0ffd4cf9b79f7089dc9efd6214957c952790ddca331c080d9cb8201fc87d0dc75ba881a6f38ef0111602ed95cc23534cf2125102cc0ea25395160b18a0a2d2090e8cb233d57a9027d360605900a0a61b0351526285ebdb4d36dd9127c39287f281997fb59d699a6fae36f2d8fcf9fa09ba1c8f1f61a836e302d602bec015f8cefc2f1d771f8a5695ff0b9fea649987da9f5efcd1331526928f014f0516bd165cbcbfc1461c2ce1357d2c46c148bf8e870047a69bcb62d53aaf2e97a19f1ed53f03c5d7c335683869456b8f82923ae2af6c50ce1d15e7c56fd21863c9f9d0eca451466322ea32d43f5fdbc76a17791f8927142890007f7bc72dadb1b850666faaf77c7124f4eb59ca89b2703a99b3078e1d405829d0110ff4061fa54ab15e963bf768d2812280a9c7e173c3350de5b8097ea057e5da8b0c22bc36a73edadff92a833f026a37570f16f8a3e7c5249fc36e545937e4b4ea54e329f28a2248e2133d4ba24e863fc08d863b9f948a2f637746b8ba8892c0a99a593cb2a0818cde2d28e6493d70a7c1d2cdc85413870feeba319b7100c62891ea267512928c9c80cc5d6f57633fa8761d59a682097e88ec0e6e68d57b262198c9fbd592a1002abfce1855c8e0e9e6d77e9174b6f05f98bb2be779613de2413633f4d0272f3da4940b13f0b2aefdd1aabc9fdf4bc93881ca2452a9fd3aa40b93627b4c67548f347ae80d7361bcb890c009129caa2b1a0f1aec8fc7de607ed0b825258a304fbcf1b5cbdc75176b69345e66c485f669d42d69effd8830aa5a5bb833e8b75a696d9bb0a085aeb28b55d14ee17df54b9d4e7e35f69e65c525387bc65ea67be4e0f396af0afff6fe14b8407eb26fdeb62594039aeae58a739ef83b999230b6ddc316234529d186e847ceeab5f5af64636400e68620b50f3ff9d0e5cb60da0b783c226126367808ad4be2a055ee0b239a2f48005be9863a593803d2db929da0959402f268e0c12f2540336de20421df8a63ca8e0945d07f2a0cbdfd32f9d5d5cb8738883d90eae9a937a8168f05d06abb79477e79534a0bf016850c33f1aa990dfecfe85480cee01e9e5493046ff03b611e4f248fa4e246d667411d2e1d57c00e74a2bc684cf64872e6599b1dfdafed1a3076ea4168e8934b184a0f862ffc21943b34b36a1ccfe1eaf50f8169e5e0d8fa81017554334227860186e22cba665a35434a66da6ced6351c2956563cf8ddc1afa38e4a448a33a06a4bf156ea5978784b3854abba565637f2c5a06dcc95f0a2539d56c4d130d6c863350f655e0a7f3ec4935b5b4b90c0c333db151a8f8a16a11683731d4bbc34a53086a0d78758e12fa3bfdbe914567d75a58a75e7c77c3a27657219278863f10a634fcbf0de52ffb98c7eb197688824f579a23240c9514d6575165011ee3c5b79a99f388aaa629911fe58365f07a5a5639b0e046ff2f203b3b685bc7c0a406e23f503cb2166ff2202dacc61791d0c490eaeb29feef07247cbaca323088f5e4c429206e1e190ba6547ce3e0f9eb336497ba75f775a2bb02651cea7baee4c1d9570851b1e6bcb5b44fbbcb696a7b87c6d05fe1318f73fa6ef70791e717651b4c19a29976b787c16d9520f4d784b933fd1e671cd25a8996f21ef50a93a26575dbd77fca810a4e40ffb62c88bd35fb2d296594c9e49d3a622b06d09d12db15a0b099b3bda23f831533fbb2ee7258d8d15106633950051dca90f8f8ed4b58f1beee7349e66cd118e51cf6a347311873f6f4eb5a7afc3a58de6440bc0d6e93be6563449d95516aabbf8c8706d346f6b90917104c3504c3c2cb94813db0a5b79f18b0e8c5d1a43ae21c1efab7ecd939637b1a57cad91e550fa9819b6a46868429d8b5051849e1ec7fa559cabba46243d983bed05d131af7e732a39e0b4d1153967e86ca34946f288753a5368575c4ef2f7ef7f665ed17ae6308db514571c4f2e542bd72d59c1d8c7e20543c0767d2a01a1dc9511e3f5e8d4af76632d6edf46fad353f0048840771693a007ba9f5c2ef6bd43d8169b067ff1400c3bdce305611d71d94d3de942d3d764e8b7457a1241c63eafd78f7ec485b620be9815aea2f627bab6c5a414a905d564358607c756443bde4baaaa1b16b0337089e479f9536cbf3d5fcd353c56853b9092ef7acc88f82dbd9b656dd36328c2d38782075f8cf5c1966f3f9d0ff0fb411ae09d64e67ab977d108407324b5de45fe707dafbc7dd71929d768a4a2192dd7335264f3e07ec28318861c85e1dd32b0f89d84f4ec1cad0bd9a33bfee8b8b5232c9209937374d7e5a802b551ee2ecf75343bd37ae3f758cba47336c3588360f385cf6fec3ab1bf4ed029368bd1c46b51df045cd4bf5a148401a88f8748b361698fcab18d180c9df908d0c3b986692c7e479833b38fab92116e450f8a89616c622a6a5f08f9bd35e7dd854967dc092d88257a696e993ed186dfedc52bf14738f7cace37343869e289f17ebe9bb571723beb74aa4193cf4d5f16917838afb7b60555ba1a5ec2ef73d6724b013aee74c03e05dc3303e22fd5e80db66dbaec8a87fe1b3e7340355f95e69018cd4751c75c33619b81e7f05cf48c400ff4c42865ca80f8a5aeccce2ffe9582769186dca94dcc8fdb72a13dabc8a211fc916848ebccc79337d1ade7760a9f9d4c87d1b8aeac312ae17f9424824888b84de6972c739bcc625e969373b678d8d9530a8371a88c8b52a688f534fa1dd14ba28264c0412aef27b4d00ef35dbe06d6d76afce7ce7fd71fc30d6c0d5a88001a8c9490b30d390644855d99d9bdb39197cf58d57e624b6937ae73c6124617f8a1adb422273421a92146aeedf49f83ed0a824704ae34ca547cc48d9e317b8f49db5e2a2e20423ffeaa667411e4417c3e6176935c621f609b9d7b1a7aa47bece83a59020823cdc830774f71c5e0eb7d0cea6784c9237c3ca153b34cd14548c86964415967ba292c0bdb230c57c9b57f322d6b092ad66b82593691fa8e5e715ba67d82ab31d200ddc5b737b9ba6d2c21aa2ca349ff6c55a228be06102c445542b85da5c99224fec0457587d6be3afdd8aea08928e15f9b98124ecbfbec1d9acba7bd8fc330cd377fac3494f7c5368221f014f7de6b31755c555a4dbd5ae9e71a213f7af4c89eff975f5b131610fa1b7bb5c587e8a24cfee11963766abb246d5ffce9b5e3acb789184bc2b88e8373c99311d05ff02da844d80e41fb2ba2cf7fb8e47ea84c782bad0520a83fdbad68024b405582d043ccea546c2d32bd87b6607480e4c3296b28c51ff5aa87152a59a845e5247659cb7922c7a15828e7b6fed0f69f65548c92a01b964245880a5bbbcc1214d3319a1e54105b7933b559148c212fec6fcd1790830a2ad53d6eefdc71451804c25c5107d0da3018b23f87772add1a750b0c50b9b95e3cb02a35ad51db33b5a6af9bec3229f18d4f3fbce7d6dba8b14f4170cacacdd2eb08b45bdbb678b609baf67a5e5dbe9d8d939430afaaad0cf1d337b8bb16982ae8ee39d4dca57146e61af18d809c04aa56ef751e3045345fa3206eba6fff45d183ec4723da8cd3871fd1691b0df1bcbfba1ebbdea7753cbf9c71d923befe48b72a1b0db6213ffc2b999a213159c0a26ae2e9151e5a16546b4e9bdf67bd357b9027a2c41e97ede1ae9ed5493e0371d1e245259a4e9a567e7bc2fc341985c877d1920859a2b1648c986a58f2904880f0e1cfd1fc95bbe026f1723681dea37f14108fd35ac9637072e851a24735b9b05170f586dad15f4f8dd6952a21de2865ebaacd68b4a587e1030d7a9d86b5eea7295be9a6102b306515540471ff08aa95578fa83ce10f02a784abb6ce79e7f2872b18726b1da01961d6d64606bf6d7605fa96e8585dc7271403374a3da27535441a28414caa23f0e618fa8d865eedde21ea67461cb43914f0afdfc212725d7dce43bfa2b61f7f563aa50aab0420e346090980b0b0e9b6dcfe363e1cb3583e92f50963b8e94e14c43ce3aed57900ce965b4fed46829b4299eff43c24b8c4324a8137ca84734eab8908c8214bf0bd25c72b53fa0c25cc4114bc7bb693294d1fd6352531948e6ef724d52dcd8ccc00b8664d3e07142cdb53bf7459b31938f6938e7ba4b9234655cef37c4aff9ee75187b9bf42d4401095766a696b27f6933c7714cf08c4d6adc3b82beb14171c2499b8acd7a6a1ea1e1a5ce35f339f18e46801c915e849350cee5f78998a13459500a3cc4201cbd95334cab5c0e2279c5028afc649dd9935d342f1f372cf9f6234369640428012b0def670ebc04261ed0419cc349f460d58630b1387f9abbfde1997e04d5bec41ea2b9028240d8b25fd6b53b7f3198ac51faf0ca8e1371fd1d6bee12077b81ca94ee58a24a6096acd93f536a3d11ed2a0420ee8ba9c225ae18992234d877e9feec294c94e25b7cfcc1e3c0ffa17945e2a77684e86f39176f645df7d9ebf0adf2efe3840c8fcc541a226b84f9668aad1a7a2a0f07aeda2ebc7495f106b6dce581a127bf83077f82039e676b7c0b49fdd6ae17df51aa9a06a93224d3309f4e06d16c37a6ca1b3016a988be8cb62a4379973fd6a44c4b305819b02917e799eaa270c5f3cc84edff38dd964ca9f3a04e358a5dd4887b9389f4d611279734c59b816dc1af8a2deb2eb4488b72383f6be1ab30287bbf5ae0d02b7cb6eb37ac6fb943ea980001c962e41e48f40cae478a6a4d119d5b5e676f2ae29c47f12a8f869a8f71c32ec26288a36d2be375f343535827b65c3a22e153f75c65dd63493085db64d4e2ad069a1a7e23c28fd6f7adce9f97d586284f0b0a08153effc202c49a330f739ba6abec296024d725a11be7102eb32e4e3a895d2fb32e663bcfda7ff573b7b2672c7f283d552a229b478d3a6744774ed3bc18d1188c80b777b73301fade2c6764208c8f71f9f7e013dab8dabf2abb20513fbcd2a20bc537c670d25ee8d588e6fdc8195a26ee6f8ad419c1536033de58e6132ef1a2b5f875a16837262671b35946583996b17c23747767d9103abc4cbb64af6944a064cba5d70fe839b8cd5e74350fef6507fe5e619b902b4f3ae226f8e9beeb44a96e0775cc5ebca653a2933bcadfa11520ad048d1d6c3e86272ba845b479d9290005755c16fccf3da80a0565cfc548f21416715832ca99ee339db624de47d37b5ac0baafbacedf9ee0c83afa39916ccbd53120ff755732e4fcb42eaa4a45e6d70481475b92a3fd94a54b43f63fe16904410e27fa7615bec4f4474efdfc3d6cd942b0bc32b8883ebe7808b9b3444de8f91375a8c99f4130ad69d1b9ad927970ee55c82ae4aae2b8b55d13731470f35d32e0c03fc50ce8de7d879baef9e20e47cae8e76b5fc4c34bee5bc92ba30cd6700f4d08cef024d90135fa4c767eed95f8d7e78f8f1085b128c693018054f621bace92a111853e6eea0970a50b4f11afc250d7dc5d8e7cfef9d001002758972a0d49c8e70ca2c82bc7fbda834a93d6207a2cd6106330be16cfc8d41e532cb333c514d6ae0b8a4640ad53e15452bb0c98294ba5c13c023132c23d3a07f1c0226ee520b3652cfad5e79c4362e93c1d408e0ad4cdcef6bd77f42903d83ab104ebd597079eafe19b8f6de3913917fc05c306d13ba9b65eee995b98bc74017b3f76f71361a18a940afce5d738b85609b4364ef77290a2e0ea9bef0e5793c0c05224a965bb6fd5f459bfb2b1629dd79ac11abcaddb16f7ee9448f328f1b8780c19085e5990696e53d70e447a444b04dd33e0a3b35012cc8747d5e83dbb306f4d38bc3b06d722327347d339eeb4e3b395783a01cc6ccf67e8b2415087580d6904d98fa5cd7086ff2ec5fc74dbacf4c108a1da9b99cc50a9b2aae3585200be39345691fbe48ce3644d73fe7c93dd131bb89b73b620c0fe7ab5dd82dccf611f3fc2c880b096f24e1d48e1da0114f063423e865ac067937cdded3b987327954f9fa98e1bc59974def0339bba2fa24c9a18118beb46133c1d0af2ab40932345e2898a09591ba46f9c970ad5c711de557e2342af7daacfe6a694ad5f2fbb7111e38fb40c5627b90c1d60e4a7655b6858856e0b3d4f58d80e024550228ef843770816e18bd0ea6248e97ebf5a3181b7412c70a5ca2d2348748baf331c71e210412e2e52ec50dc524a82147a5980f0ae3b0ebda312efa1a73bee1de10ab599b4cfa845568ec88f523a30201e2d0039156f7beb1234f10f793734ae247543053b9981eda13252d658ae80cbde49eec6102117f07ed932fbd3e498f630570cf1640833b18602bb56d1a4e0b15ca158d0a8bc3d7d172c01477154a1b4e7652f1369e5d94951b71ff67a07d4d4ee6a61274f5dc02ac82b8e54ae157b108233548d517a3c4ec1d2f8957e2a7cf9e0887fadce7d24259f0137445823c62526d262ad4ff7f2d86631d570f69e4d7d991f9b5f4cc800509259ad3af50649ef60b8930105a9336db39b03477026d415ca2203a2d280681a0cdc66ba4c6e80dc45b9093ba21187d8da864939afa9af36798599ebf887bdf974ef89aeba107f7fe6f1ad8850a7c79f64089841c55f1fb48bfe0c5034a363d965ae4e5c462e23f840e08278abd360d8ba6d0f2f118603e803f4ce73343017204d29bac1a68bc9940d291410f0e560914ac8eb14382f10bb4289651e6bd43b0091abd7443de768af848039ff502815972b2c43befb8629ee318349e05cedc0cca8c68a3e96fab6f00ee38f8fc5d66194a4289a1b36aca33ae3d1245629cc165294a49772fa852b4ce4268a48d016519df1aa30f68d5e5db4d88f93999504a7c3a89cfbec2fe44ff164e52fbe319db57b3fb776f444e41b6a7e6051caaa3d62eda22934ef5e6b44508fe4d1d5bcce40a93accbd4527d6c71b670263f66b6bdf6e383383783d5f1532510b775d3385ff98f00499c28f08c7a621c4e9ce7670e73f6d442775135ecbcd7552ec47805d0d05aad92cb62d51e756d9b353c2f7f08a3922bc4dbba8fd56d8480c219bd33fb1f783126811590ee4520d68c0839d6be0d44fe4311a6129bff26a130dd15d20892c589ebe2ec3a2e178dae4cd146aa941dac89ab61d4cf199dd53593c537a85f8904e0bb5469ee4ed1bf655e2944d9086c93e748ceead66bc36ebbea13a9aebee9d932a4e5aafffcde44685dc368bb84cb1cbe1ceb520540133eddb06d6a2d6123247ddad50382b95b07b4b9d55a93163c21ceaadba6b95e9a7fe5091f3024f483f176bc90a2af1a0cd9931428967c02aa3d33bee9be5b08ce8ae2e8caa62a8ec3642a6a47ad1b6f8336a1a4af89b23f850639c86ef290a7ecab036ee3877a3a9b625b232f38f1990f6b8a89bc8d9068f09d9b87ad7d06d4707420f4351714364c621e972c509637f03092b797bbaba5928eba71bb8e3868112d527bab8e793f8ee2aca505727891d2f283576a49e4d61e11560574cd4e84d825af59cea33088ba2d60eacbc649a75a00ca3ad2eb858116811c3b8629783b9bc7493488dd91fb4177ea6554a2114ef3acfcb34c15cfc4c20878ce312e4982b2c43fc5ba935368eb6412e26e7290ed14278598b661248fc6956ae7b44127addee0ff8ff79cabdd4796624cd2a2bb67b69639d4071f09d47ab8057612c150c6620227c2866bba1826a45740b5e2ac99fcd3bfa07e52ab81bccf2ec0a24cea2c8a2759957196ea40d62d53e159ec6109a7dbcd8e1195237fc907d187d8b7d1b190c4aee2748b08a07d5971ab47d3327d835ed6b5fe62d9d73b09550b9b23face557cbf3087edacc6601524fdf3987fa263ef4e24fe5c70f867a4dbae06feb0436469e022cd452835419a6da35d3af1e042775d30b687e71ae396eae24feb99165f146194db3aaeff5dfab088e012828a5b14dc424136e8d4c2227ac25b6fb2d1ce93a571d5dd466de1fce6e8eb1246bb78ec5be2e447e3d7274658b693253af7119816eb924960c9ee07f1c523de304c274530301d0f5d84d6710786ffd5136d87ae269ad203d58e2dfbd66971ba57c73c822d3fce72b6d0a5d007fef1c4be9f8a3a25ed3fccef803aaf73b7f736bc95a73c1c53ccb731a41c4e7b19af6b4cac434233317d8d250d67a17b91c209fb366f6cac86a6c8b64f74af780145e7f89752f758a375318263c2c96adc2f12ba73f5accd44375bdbf716fe70fbe9c14563a55347cd3dc4f92eef8b96015810b09c844e744d23e1b8c97f5c11c2c44f99836747b1659ddf941634d80c8f2fdecfe3f873fa10aeddf3dc2d77ca2d0e1ce3248243eab65fdff5943e4b7e8b46d2698a8f85fb16492031de5d37d368cb44a84b21ceab8d867b07fff86d3db3b7c8b68e053c2284ec0e3021532a91c6752f06c88c26a101d85b0d7a5f164a1b6a782c3d456e7b9ce86ddc48f271cf93a41cf757aa89befa9b0241dcf31856a6793d311b0c8b42427d0f78ce85d8deca2d8996a767b3fd778bec28ed63fa92fadf41b15d6218777db3b7ca5eb7363e5b0803982af1fab83bb400232fda22c990d0a249672c51b36d834f8b9b5d2d2a99ffd15d6db5fd7cfb7d58a59d82bb241418ce35d5f8193d3269f2148cf79fad239588f3507366eeb0b8c2433199fc0aa33ce59701cd5f720656d8030cf2119c26e47eab5451f5ca4648633835e5873ea1ab6762bdcdd492b7f827e3681498b584750d0400cb163eb7284c01f45eb0ea294e3c0fb742b97297e09fbcad773244c356951b66cf46ac55f12a9760518783239c259577753d847b8fbc5aeb3601be8e0087918e8327d46124d98312e814fe05f7c52a7af06f89527c0e75b9e482807de283c93dff5637b436cfe9168b9879beb88c4b93922a22eaf7f09d23eee5cc2ea79f0b7927007753b9e2c41fe6591ee7d65b3f95ec4ac7d1e1825cf340dec3829cd76d11d08af8037a402f8cf4e0860f9bc5a5e35aa66038e59a15fdcb6d2c863ae181c12981c1f078bdc0c2b1cba5522f533734bbd48d943115f4936c7a614eb82bc83032abc76d151145fa6b4c5834c37ed15ae66c5f37f892a87dcfa4495b84a4d091695edecefbe38b7b830b80d95120085721376c40cabefc77fe072ba51ba6798fff76e0ac0c184ee2313f358bdaa54b118f5b4e88cbc5b49a9c9689655462fca26b73ac5d4cf3ffcc25e5ba5a550322ef7f7cefaf3e14197d772ec497c78a04477dbc4e6c740091fa599a1defdd9aa21b3e93ff06d7a2aa693a92ae1166b9f14ce38ddf32f507268386cda85425894e70dcf9b984e0f4690437787920a604e351a1396c4bca9c5bfdd290158a19fe47267590805a4be5547d588b4c48ebb9b72893af77a1eb159693ba2ea2d9d65fc6f55a320a1c4bb3d249e28b465db04612d5b04eaabd281d4d715c324315a68e8a29cd3538d62c310d76e8011f8432d755f3d5b0469efa0aef7c972632eff6d031914b703024504a214134ab1db9c4619077a1d40c80694d3b6fefef51109029ceb19fee4194367be39f460456182240c1ede9c707a4f1dd66d480c6d76cc5376de96d400d965359895324b2b03dc397e160e1a17b20d8d7f14bf7fd2186bacc00638229dfe338cd3abfc1af83ac228f74b5350034d06a8d4797ae47c6b6f651d52920263b74ca8ae4ce5eb1b3c815b47d3d50565a069bd3f71a83497a7fbebf7877385fcd1ee28d8d2ac15d4601416045e32eac4e052cd699e90e653e3fc586dbda5d362838eba891f62bbddeae1d8ec12bf7b86bfcde4d7da7e7b3cdb8ab571ef9dd8dddbacb77f9c50712978715ebba7e4b3c46c9739c42413208fca04361272fc4b2c3cd6dee067144c7238c3d2d44c4a17613c30ad771939723c633077ebc668fce64b5fe02fb4da910b185680d1c993587c8f67b2590940eef66bea0036599750f1f97ce0e3e13a0fe7455237e71f532eec54142ed02b88409a9842ca217b7f65e0f76d1ed56a80dccb14ea58ff5c8f934af91ea141cba0473ec2bed2288cd4e05301d173c60e3fc9fd44e527bf937490ac0abbefd2241e825e95010ffbacd43db5521211a4fcb23d1d0bc3aa54677613582b2980928fd2fbf0a1ca58d87c00de8cc5f306296489aa472e4cef2887cb57c530ca293bccd717e6d7a0df55b3981e9e49740671194f038ccc09830bed6be1e30c717a1ed25a78e00acd64c6ef34a8a5a3f52572022394188a6897c799408dce49bb95840195b1a5f69cce3366232d6e4cfc0cb59283477ef79fb7041003850c9c42565903d8830d37ef37513d53abbf06082764f94ee2c32b04d578d080d5581c6f01d5d873f3a71c30f5995584d19c696f62c31b87623d455ec8e1702a478f9df692cddabad2c8f659969ae21ccd36e484cd65b328248cacc7060dce3bf7af5c90c8c56376720ff19e8599517b4fba3d947ddbe44d4b645e2d8182289126f170cacc28252d940683cb0695e88e973a4efff5e094f5b063b20a44f8decd8dfc2b6c3a466e10374b7af71e851c63544ae7b259112b6d59fc4a753965ab3048c5f7b04210c08557e66d421a7c5bf190a92731d7ab6ca82604fffd3166929b8d10f825572915eb360d16dbd648b017edd3a5ad7a890492219158327ac67cb26cdee3a7a90a99281402996cd1f4f85082a4b7b740c030e3b8c9a5609c230dc787f66ccc1e7feaa4dff4d9c6ac31840f7eaef2190b9db813695917a3685234aa8486489f7420b18cab366655eec66f75158ac8afaa27007f36342b094d4540510f8c9b961343f117b559bb163224e3b19c8418c01e84e4e8a9eab6bf2c3dbeaa5e1cc821a401ab4f6e48fde11829b5112351269bf1ff4e44e77213108c3e59b29d03001d1ef5f242671c88f50b62354abb79922fb777ea018cee9cab1f72ef9380b2a099e7d9d6180c0704287d9ac2b562c51e9e7c7fb6facd090fe271ac04d5674759195eac731a27a19b05739ad4870b78f83d4aeff87c81b4aa8db756a351ce536b0db12bafff930986cd6034dd70ed2f524926d8a769cc50321af0e5a49ec39a4941557c734d77f48bccbdab7cf28c329eeb87376e44808ce86ab2a655e084c6e88f914fb79d01faed81303e934fa231c8415ebedbee4dbf62aa5dacd1613d3caabd7ba39ee03a3079c2676d94809ce6189baf1ec9b567570dda37d7414967c78f95980c7db924ca082559fcc9c5e1873311f02498b3941534a73a4d30347075b12abd3269ccaf2185492de4b718214eba05fc89eef5f781c4720410c7e6355936f0839f646b54e40077140b140997e54eac2e98df6e7e302d9d935490cdef91c84460bd6a2063b7476665319fc6a25b386f3957e8b476de292fe44b593863bd3e32180dcb4f92b300a2487eb915fc937069cfc663f43b39b8dace97412da924fabddcf35509f4130f8900f2dc148e37374320e065966e94a7dc8b1229ac1b536b7d218dd5ceee26c073c0c2bcf9a98d7006688b73ea3dd503ecfa95db681295025f499ee4f768f13752d77ad63bec228a3dd5342cb8115efc7266e046e6c4b77f2077976558f7c781b335859b6a3e34ba4bb2ae3b5237214488a5ae0a11152d23f0cfffce93377fa5be1262951c947ce23cebd2337e4dd6295a2d479209add0ca999537201d5a4e71df7d72f8346efb979d086444e5dda399e63e466da5632a11395866c9b755d6cb32c4a683b7f1dc7b03d9d46094b16992f98fb73184735240d48f0de76647dac5faeefa75a1a8534f775e5c7c7d6f61635a5898f65012829540eaa9fb40777f59a5fadcc5590512f056eb0bac5885c6d68ef49739244fffbff33207403b56bce79082a32407cea076724d3d2eb7b4aa5c9843f9b487dde243888deb533df028adc2211df1e22521b5315070de260da445b6cf0116a4198ee5fe1993de6581b924c23f3cad858e4a5fdeb3b092aed2dae49c5d357b4ab3df6ea105e8e3be669b5bb5152156d2cfcfd5de8ac920dfdd4952c2481ce035a7ee2bab27bdc79371a8380d53f908a678251508d732a6b7b697b7ebdab5fa6657b23f001873edf6120832d85a049d39e5466e7334a8e447fdd97abe34674ec2036f440251ebf86480e1e785a9527088768e4ef1534ece4fab5b8270c1a166c3dce5c161bf3eeba09bc527afea8f62edf39dfa7a60102eac3c716d890a294ab7f3bf6ecf26ce5f5491dd2419c75dbdecbbb5a7c4c921044cfe205598509a19459965188f32ee0f4900069fe4e8892620c18da5097bf14317032c6ef0b34140907254bbb6b31c8fbc88bd0142202b7d8cdd9de1fef29eb3488a7b2e96c1dad8b67f468e2fb3c07b43b49cc2896cda31d02ab5f9d47a2ad34e65b594368837271330d0272750c6ea40b3a47b504449cd0ece1dd9d5f81611ac7c8ea101efe3baa82cab1518738db63b48beff80be9653512ffe63a4405697b650f3f2603ce561abf469b307ef98471080d578a738d864a8c5b038e977f9037bc19be6ec5358bfe208fdf75d11416e12bd527b20d8d3dac4b05ac0b169a37bfd4ed34573520d1ccd1f604525e869a9adb6866f7d4618c752f969bef5b3ddb7ef4d53f827edf537ba40bb4e20b8538e1e3c0eebc74e457c05350e25c6ecefa9b65d13e49684cba7f3d49bb07d2c5911b19a575b20691b57ec8f5d6025d14955e86fb23820004e3c9a107984952251582447259580aee2de0779fca68f41041ab2dbd3702806f9e549e348a91b9838074a00c0e9a7d813aa576ee6f5da80e40904d79cdf3ee4c5f7f02772a382bac9b623e35b9335efdb387ca0b10abf860ca3032dbff41bfbd02092bfbbc14344ef41d9718021ce85427258175a386e857127cf3ab74a88f42411779000dbdad4ef080729d1bdec754dde1c6828405fba1eb2afffee032563000fb7cfb7c22f8b4960cd4e8f616be2d3ad17d8f385a3aab6ec84c91fc4bcca7af4c86c59acc217057aecefface9b88d158b1ab0c1d14fcf939342ccf173eb31c4b46ad0661540b080c25d315ffb495835d4675a995861c966479d5486a13764932275b894c66cb9dc183d152d0ba34f8cb2a6546849a623adfd749be18968e099905051ea93f5753daadefb0384b974050ee73bbb0d0efc5f3436c6140692b8f2ad7aa0f0df6d007b1829a25df612477d3666e6d13ede128f58469fa7c516dc9eaf412e536dee528155316359210e3babf3b9767e6ee6c7226885810bec8469693b70c1fa83f28dcbd492156b2bb2da2217af9795725752dcf408088f853c1f7d74a642a66ed5ebb4d3de608f914cdab7daf6f80c5f0abc5ba3eba5cf91893266f1837cc76b32b860a82f06ab0e28cec3a8837228035a6745d0ce003d7e0806262b2d01ca241f3dda3cf8324d10d617ed662c5bb1a26297578f44fc758542777a9a89799b2c52d2f8de592e3be9dfe0032fb517041647d5a900fe75f59463bbd11f51b0496fe3940daf41e992f739798337d80f53da5d4e51c291024344269c995866fd443cd2f9e5359f69b76a0a2e6f6df867fb7807cb2e51275cce14be45cc4496d9540e6209051dbb98803a325cfdeb44b5fbac34085e1ff6c22ca6479003600f7ff65568255ca02554c76eec83a8c38c9c08e30118085891baaed90d328d2317dc5c2715ff4b61570f841ed26ea59547011fee3496c9833a520be50fb7cf3068d92c51df8a64cf7e4bdb0a1ec2312dbdbcc01c37e4429e38868d326d997ad5a1aca6c2134ef96848737f96275d76ec8a2ae26307c2335066c1430a3abdd8f15ed14e6fd630b80b963e92dd4866351a3ee889699c435b4fee38452476d6d7fa43ea057e98177644987c4504faa1242536cd29ddc59f3d09fa6c1a48018befa47b841f5f0559aa947350a7d7aea3a44fc20558f28507d64381af1135327b09a0dd57a655816223b6ea296eb377695b36c9dd1af73d5bc4981e4f951d9db7b401e373d5ade4bcd8635c230c20e56709e8f5c933d6bf67eb6b881b4872a587d7732bc0dc5d1f707dd02fb60bbfa30ed1d5998ba04716700c62a7307beb39ca263d0337aa2266255da455d619dfbc534ae59011848e5971fca3d79784a3fb159a8d37ffeaa2738bcf069ae89928cdbdac92b4c82a3aae6f9903b7960c0ab3ca1ec9ee0d997f3d293ac107be5d33dd53f50e9eb46d6e4901c0cc51d7399ef383bc5d2c2303f3ca9a1cc60380757ce0089c896e4a9d936271df107533593933e194b6d61d82318c545cdd68795567935a07168f9b336080c85fcf71b624a1fcba58bf2ec4ef4c2c08a3a2e69ac4058f662cc4329f30ac5edfbbff7a2c21384f87ca7b7107db422eef2c25ae390ac0ac00f87bf9bf6b1d2dc8d2a5a239080772de0bfc8415d45bf8f5317d2b79582fcc166ab9f6101a512d2fcef1e4879592fb07e71e1d6a7381f13a2e0e243c09aa8a321fc161b4844aef344597bebc8c1170d4ffdb6bf369968b00990c7e829c4fb456ef86eb1a19b845a1f0c93edc357182c662c5b27c5bcf57aa2dbc2efebc856721715893a7e754c95993738c24acfa28ba8c0dec783871e497f871029ef608e89859e3e13c6e727a177d6f43f031bc02edb0171993ec0ab1d39fad4244240f974f44e3a7d5ba89ee954c606206478e878c3dd3a63cb498924f3a452687e66ed500551ce5fd7a6ae175feb95d947d1ae18cc40b262ad8a26ee9d534512c771f3751a2f0873ae20a7acd8de01e28116db08aba0f4b75e6f754def19199637fd7f1803edf063b2cbe093bdfc8f7357d595678d1bfcfe2cfcdc386276394ec0c90058355313653e5aa5e5b07f86f1ac87ca2c26bb838f23e3132f3f4c8fd21635748abbfda51d0f1f2c1ea1b319124616cac703cd919e61f127e9f1213733b67517d62278e25d935b5a437e93798618790a0b628ebe8ed276c236f8dc71e580fe558485bb3b7b4ab8f8fc281331f8dae51a9525abae61cbb70042a4e50c2935961c1367f749967daa00b420f09138c3c9d94c970c4ebddb59103d2689283a9246bd1f0c0ba72980fc10d218458635c0d0268bf6d525cf955635fe101241caa23c88a45ba15cd2f92306a77b3c081e4439ba8d34d4fd6414098b8ae2e3c168d8be848d79675f83b9b9945697981c5f8e941ce9fe70ebf7a4885e69cfe15508b578839df5ced7c2345d7fecad0e42fc540e0bb418ba7533ca51b2474f7ba5dda858ec2848fcf3eeb68bbad7d623de481ddd0216d4d002733a4af85d9b13efa61ba3f7dd4b16e005d31b9ff8880c4cdcdb49c84937f7fd4ac52e066387614ec53f7e06384a0d34640b32fb3e2a0aee25623974bd568b8e7ac08fafbb781fd731620b67173f14cc07a73b71a1680c01f7b33108a78dfbc6c669fa6497c975e903b5d8303799c591104f1386210e0cc32f111cffcce9ec519d17e03261233eaff39aa8a9d063cd8572d42f34bf6763a059969a5b25360a033a09ffc6fc7eebbd08c1b76be11708bb5daac5af010549e6d95e8bd4123e847db724368192cd13f8c1a1e0b47a9c42a622170cc910f2431328a607b32923d9250c63821831ee03732ae2b30b2c79ea1105d4f27eeb84ed3f991efe00013feccffbd61a4d1d59da9dcfeeaff0d836e93e24673c89004c17853ad9898b43f6b71a33e04e775b187d5b19da8409d98069cc4ca22335cb344d7172634902055598373b47a3d653bbc5640b1ed50937067aecbd25b2e6e896149bf7965b8d4999a60d9c82c92072379f8b2157174c26a5b05a09650ae12b02463d3aa3c2a653c7eabb7882d51c9abe5e849a410ac625ac809f5b698f3d8a91367157a07de45116aa65714ebab0198fdb28cafc6d293dc53952ebcd4c2f9bcc938994fb6ecb18fcbe5e46f8d512c4a7df8646ad46945bff3b6751a3800f8f9b00f9e5048badfc9cf8613ae41ed73bbefb93f96adab6c99c7820301303f580fce859fe80c2628b15f9cd317127147f612e921aab97096e0de80747e38955aee87ab1d67e8963a7b6831042f9985d2372ab1f1096bcb05c3a1142747e836a9f77a5898d8a5ae26257333b6936c9b7707803147a759f07071630baebb218eb0d5e87542ed8aefdeb86377fa3a369bc414e062707c4f6a8552eeba84395651beede3387a1eb375439c10bb4db7ed8116f11a5a7d8a7c5333692584e701e9ddc0fc4c909cf9df0bbd89852a88d692ffc9ebeb9cf878389f8a060b7a329d487baeeb23960f313af086bd6f63129b8274a821f011bf9c33cbb8e36b5a7766b9a20f91374cc7a3cd8725e4bc18e0d0ddc67c5a7847245bc9cddc50dae9ec2ac1fdb70fc6bfcb679fe5ad52585a43eae5bf44575a8d73b58f836e44e2cd34581b96eed747fe52cc9ffbbe15739ef8e28ae209c711fae5226bcede8fa9fba08993318bf47e41bc90e6bdd9e51d5280c854a09a50717e4bdde5052fb5f513e3c171c5f1d98c35a15e159394fa4bf2d642546c534bebf833ed951e15000925bffc2683194095029bb047ee0dd9a70d1a3bd7e174b50c7bc1a9cdc4d1ffc14d6d41013305ae419ef93753b6a035982a47582d7bd1fa31301710a7ad7ad30cd7a1acae79c4a0fe1e68f84b3b8ed8a2caa314c071c746a5bcb3b4cb3467ee86cb4ad705bc7f22ee77d3ed7bdcaa33fd5b8bebe6cf5770c667f19c8257cb4a07fba1f0b9838324c186c709754cda27a0860868af4bd608664ce413ccbf5dc85980cb17da6ad13ed90c0fd701f134e06a7cfa103f5e1d159978b7b440933fec76961d62091987d06f2711c015ab48e1bc20b1e50a8872da136787f1cfd9de58f87364180a0c1fd13d26843a84fc2e722ee8be495922648d3cf3248a4345a675000dc2df03389cf5889fad45dfb9b507f95aa88326c5377fddf926f1c3545d7ac9cded90247f2a3e834728b56bd79631c03c9d0136c9641fe673084e4d722f3530b0e5222f3588bef0da526c3f506eafd2547f45d3e3972e78fb9f992b480ec2571f8e659f22e84e1c0cd3424c4f6c56584806224a272e7ecaf0c14bc439818df0e7e16b81bb27162cc2d1ea79d21f03900000bd9305e65c803850f86e362d65caa8676be2eacb83aac7d17564039893648384b185fd58fa2e4fedc9b9b0904ccd39553ffa8e7ac60b67770b0b372644277b17a3ac0e28b6faa586106d6b639b0bc4d0da3fcba29b2d65e6d9efb2b64f926aef4c794326e810a810bf9bd4ffa78e20affeff17b052e9fcec6041435892496272058bb77a508d63482e5c5c937c1bad842c5d86c39abc70f0e7169758b4e847e0428b59297d94bab43e8e645108ce02eea5b7042a758e0a562fb0965c6aa4a03cd1ddef9ac3cbeea683bdd19a4ff81a502ffcf73ad1b57bf867e80c8ccf3175f2b8fb9a9f65abfbeba5c315128dfb0f2560c9cd8fd54731b7c883089d815f23c5035ae04ef4eadd1376fbbadfc0eef1a3d104acdaed26e4357fbedb1aa7f6b3308e049e51ae50d700c5bbbe26a830cba74ffffc8214e445e3dd64352346bff0daa3f9db41fdb591ab8acf1dfee8f53ed8b2f8c9830c616aeb306cef65883af9db011b8bb9e430af0bc5809a3732c8c2778bf6a63fea6e52651be165a1479ba9938bb23579f3d5031616d60eaa4b0a6727a64648800bfcc98a4144f915db3105cfc330323446a3dba0dc2d3c53a2b9da600d06b5af7525e86f62e781d7d110138db556fc3c003e0db9bbf8343866680f361fa5407391e123837761b0fa7e29e74b369ae6f1542fb4a69068146ff6fbb7db256f2bf3bda18522345d89664ce55fc81a47c52657569f568698eb66296523b8c59ef44ec10b2a705a76b2d60407c8046783f64ae78ccb2d3233dd46b8ed1efeb8a99442ce7be869be27b59d8f6cef2dd2b035e975809a4941b6ab9defdfed62e668aad454756885000ec133b506014fae3f7f0598b8526d264e63bc1f7a283983401c886ea3f9b4527ae865a307154b7db8564e83c2e2f2077a382ccaa53b9200c3e92ec1768e7bd60402bb0bce7315aa8016accdb84ae4b5b1056370ffcaeb2a819dac51b182b7421c1f148ee80ffd47c9ad0e400c169daab1dc5e304fae6e5f22abf6af09ec999d7893ea856a9c0dd5fc4a236d44cac4a56c97cb9d5c82093ac21f67fa9d674b80bc8a2b90df256b646d75e0651c4b67767626c25268db547f498b1a862fbba72895c8d20b0a9dc8370104d57c71e2c454b4d23dd0a2e3b34edf20b7c1b3f17c3ea404c6dde7272dd9e23de3c56afe5ecc3d5618e3ac32b7fb5716c896cbaf314d136effb8aa0943c4cd4fde76efe91a6c9090d9508debc2d48ab506f6ba7ad59a8261fb774a741a571aba9ac745953bf8e9b8d677fd7f0893c76c07fb462c3103d79fb04432a20d79acdf838a8b6cdb516806d14a24f50cd784a424ec50cfc6a825ce045510554d8a93b8d4ef97b928911d12222293c17136cc6eb14b2db7cd8a0d41a7a7d02c148a88006979a564a581237e035486d311f41cf002db2d9d012f9c2bafe635f65af156d53ce01496d8ebee89ead74dfe4b67389591b0ffc78e1dbfa18ab62d6f7a6a77fe50a8a47b8e2c19463e9076c5874662a071c0765fa398392f146a5bb85d2124fd73c2861914f098f437edd2e8113ae88477b7f9073d5ced02947f0e8a0066dd4cab27ec577f307affe3afadaa3a2408fec64394a9ae514d284955dc00550047f0f22c5634c7c32969a7bc61cfea4b7e746dd337a83c012418d5332d6d18010acb6e6d85875943a3dee827e316bbe395791200ef447f5b9944bfe81d356a3d472354bff91f48da4e61abd4dd77f30f20a8387ae976a55b74a0ae28beb8f5568153a5084d2293991e179e42a536423024f17168216cdb18edbe7b17e29b5de15a2e8be1435d7d3124ad142062a3e50cef22bfbd036fca66ad8cb4e0a316eb426209b1af55f246f26314495ad6c219aca41cd3933b28d9bbecb28e3c076ec825623b44b8f58fbd0ab8a119494ede9cb85c11f97b3a42d69786ebc8fa6fef996993c26ba7edb47f27bf0839650395e1cf50b9fdeccb23237852a8ca08a7bf4855ea378f40414e505847a13bd88a13b3d56cb3ec42dfbd71bfe847518f14dcf0e6a83cca7c485c715681e038db85b4619894a70cbd376d8635b4aa08b509cca0e9f412e48ae3f614511ed6e68c7daf001c5edbe6492c9384f8f57161dd6035ffed41c63513e059e59415dea504f370f2552865b3974a35ebd099d626b9a1e0f8a7adfcd148def4ab4d43788cf0d478a540d28905a2942df6071a552670e6dba0c00eb1c60add9423e00adc623cb4d138dcf8f2c71dfbec2bf5e54cdd0b6b2062ca7b5900f1936ec7013f1e27fe7efa4c77dcff08773e1dc892c0d9393b34d689ecef6eb904b790f4a8f2f00db90933b8c24b8cfd56d0cf774874b3a5a3e52c88ea11f79e2f524deb5c1e958d46c859fac053194b2db1771c29b06b79ca8274a3f181ee068a84a01addb22436c67bc12e94edc1b86a76f837b2dff71753abeb08cbbeb5ea159cf737c55683cb2c8974bff6746b0d24226017a363a308d90ddf51eee8558d47a16dfcb9d11f484e289ad8e9f8182e1b28cd9269542fa6bda10eb2bed124d6636a6601ce70650f0153eef3c0bea93df7af02e74d42cdde1e9244be45d2efaf9f9f453a0449e7b2183ff102b4f2c1611bcd5543eac3206ec419cfd23aa7147c373174289cce070efd9ef2d9ab0bf2bd654ba9a6bffbb64c9bd89ed1ab2a7e6a797dbf34b80f12190e64d190d4d9d682c57d96c8a678e7af8e7534025a5629b12a68370fe17eae92f42691b16573541f64a9e652bf7625e60264da98825022211520d0664078300dbdd5689e58899f94eba816cac26c687a26ec0903634e84694ec37c058aff38e98214317143f3e7109fc9a6a2dd98bc38ddffb70531fe59b77dc85c41b1b96ab5effd895a8d7261263243887d81934c267bb36dec5b139de49cd2d2909d1fd08cc558f23b84d7df92f6e12c6a80ef9563b2a4ea24d7ad2b79806eedea5192331906ff1b723abe4cd8bb25dca960be3c5c61584d0a1a26405191a7c646f3ba95422ec3d4e6e08fd51003cca2244990a7bd1feabe8fad5b3aa5ea38151229d08997ca8d6b3ce9ad173745c85f5c5a59625480ec14d5e182dd383294fad00b0052d9e3bff7379b68763995b417d1fa97aafdb9dd8ce408e6915851c9247bab3c7b48eac953ab6f28f63db4c155ca3aa69f56da4c431724dc9826e973fa8f6b4128c080df451d6119ba71722c8c60a054f32666fa6ee149a9fa0ec10b65e66b62799fb9694cec4e6c7e7ed5e50b324123f42ad03b2022df965605d1f81dca7a55be22755d961ad8046571a254fd11706ad1862450a450e9963a89443dfe1424fdd8aa652c0d7ffd872d06904699586bd981c1deed5bd8cec7603e4da39bc8b72803b83c523f9f67c983aabdea9540f19b61b217c681e870e3019f057843a7f1334f12d42d95d8dc3f2bd5d6473ceabf1c1b8cb4919850ae0dece21549d883a4cfd9df0096928e71c5abdf514733f46a46f868388c28488bc3c9abdc88e54db6d8106b0c601dbbd6611a610c970074720a296e995e695131158d3064b2e67601da8e3a926cfd3ad4b587b2219126cd81448dc97867dbf8c2c71623686b4fc2ea4f20863b0ef250d4631ac261cd71eedab6fe12fdc71b4ae38d9b92d418f248b5953ae9474a1870a3d9e35b882b493813cb867f04f35882716baabf0b1866fbf286cb01835d2f7ace7efd2b014ea70ff82a52dc99efb0a4ff164cf10aa921b6dd419b922594cce0ae5202e9f795d0cb3037dd31a0c6693a17965dd02346f90de391d76d7940ba4d27df79d18178dfd35a26198237918b99882cc0cfdbaf097ff943e5a78d77659b24ed6dcc843da260d3b0d24ef21fc8f288e7ef9d9ca04902798d619ab674372e9b506d0b3f53471bd0496bbf43232c7ccc640fba4f8c50b90d6b262f47920abb6e5175f5e2bbf1f932f508d2bbad25ad82a371ba6d3935266560d78aa998a9c33bae1dd5851e0b3cf32fbf4bdfa16f898962235ffc361b53869f355e13fd028399f32945cec9f3443e523fedd0ceb2985a0d330acc741abb4d3564b6c5386b01c1cd3941b23bdc005378a4e9550c4df33608ddbca64e3af8f6379f45429cc4e026fd8f27fd378621666c3e12c9807f350e310d1ee938d1e1b255cc4caf4af1d6408952f893a21707d5868b44c1a99c2bdb6446a272e9dc8c86f7a8f60547bd9251e01259459fac195f4d2764fa4c52e462f521ae994a077dcaf53940427d774cd96e41c0340923d54626745d567a6c059574c02a91e4606d4af02218687dcd239a2991a441845c2b073b32eb63840efc683e3cdcf96718469cdd4f3c6db06971db1f9817353a6051bea7d419466092b80c250e010cc9f1fb3708121d6220112dd1be797b461258cf0e095761932b5cfd4f5f38486ed7512f66132379b40afd78fa1e160d6eae9939481d1ab9abd0e696aa8ee8de1b5eff6460cea250dc5c7eeae02d6f1d3ec2a479d57ebd49df5ec8040a65016f71bf5aacabf99603adb5ff0c76a0a66d05b788bf48a65f6d73f71c9d6ff72459784ae017b5eaf91169c9f3a02f7c56763ba08bd0e1e6a45a1b607c5b499ccf7161f69511a219cac1d11534b77cabae31b1e2cfff6a4b029337f39ca119ad64f22bbe71d618a8405fc12b49324b7a787ae5309dbb0767bed964e93014f71bb94c63dfc1cdb0717666c05fbda90bff869891cb3709a8a0fe72cc49a03f8408dbc028afc97967063111372fde2cfc0d61950f53f103ac464bbd508b306b6456ea03124465a8c1f2088e53a808b64ad9de36078c3c296f9fc32b891dedcf8914767f74d53dba220db3a60bfe2cfd922f76ea7d3d3ed173c084dad1e393cbbfa907f789c9a25e41387b4dd89e962f6f6b9d7a91a3766bb1d48e3ae41228e406c9bc3fdd99a783d2c8a9603dc2ee2f7c9dae9498d6bff0b2e742cdbad1c664041a81ac915f2364ecea2a2add80186ca19dd53a052165f8fc66912fbb16885b57a5e8410a7c7627f0c0f359786c011d7f27493c7220ea8b28333db1526b666d98ce768efe115c0eb57798a3d2ca42594550b05c5e676eaf6de695ef9df812d9a5fd98bd83883dcdf3d4ab3b3e6df05467eb0bb5e42efb1cd2d2c96b6f5aba0657a14103dd00951b146896763a4b1e3e6e7f9bb979aa758cfcdb13c75a20d8f3f19510ddb407c0121cb69592c9b3bc4b67e1c0cad0e63314356062142de5abd9b89ea55f9b03232a2836ab0f7db794feb705fbfd127698efeefe2276748b5ef1f47f1c08aa86c15dfd4f0cbe913ebd3887aa92ac6f5add9e23a81985a8da66ae63d29010942d7eb7ef1ba8cfe9f6cc0f483ea5af99855911cef295a36bd6f4403c1b993eab42e5ef85ee2ab6a2ecda05bec9a07b7ed88d1ee716069f44c6ba80df15c8fde6891e52cf1daabdb87476aec700dcf4d62b4cf21c4ba609d379d26bd9afffbd25b6de1506b5f2cbd18926bbb1d1f6c333692441dbaff7e15bfbc77ac0c0247a3bdbd2956ccd91748e21eb0f239befaddd93149f840dfea322c7cdf8082a6c836fe3bc9f84a9e692ec828ac0275bfa65f3ca98929eb36d507590869a0c69a634e84d4d701cb63fa479e4b0a987351c91350e27aea175098bf9a3d619564bbcdfea2bd04b79ffa6ba3d76df1f4182f573219ff4b65ff0d9d4cce2b27e7b9641a789ccfd4767b6e78679146c33f34f60f0a076c00c3b1f7679ec29d7bdcda7919efc8effca8b7d9c0d16792432ed8fdfc4067c421de7209cd4fc1eda6f78030b3be3481de5170b56418f5b85e03a47bc44ba7fa6dd7d2d82aa8ea053cfc6c6a25e4af5254d27405921652cd44427d2ef9203ac1869cb9b48e8472a06a72125cc6f2a60a3f1410386710f40ba245416ad78b230f61d87d44dadde778f9740c526fd5c069433a7eec17abd7bf33043e5439023034adefe3673cfbed505bfcb2867f373ef1679dd446375a1b5c0834075d30f648f238591963313cfe0f9b1d11f8a2c7b91dafd44505016a130fb371a2e3ea41356da9387f276c0999dfb8890ae6be12f0d8a5fdbe63e63852c002762bf5eedafe0d8d39058d61bf94d6f0dacbce0bab57671e5b1f5a2ede365e096ef12be7ae46d59b9a9d4f139396d79519abda0e36c3d1609bca56364946b5a926e08f46d287560ef96437d42bdb79e2517046e815dafd9ad39a3bf9a344668c905ea74679deb42063d1b3f00ab4590f89980fb198981e2b20ceb6c02357383bb3eed730913f4bb2787c810f76af9d5a035cbd0fa9fa094afa18171123152b9d9e031f580ff2f009f8a4ffe19df5235c53c37a429140cf0cb8405ecb041b2f8c43a81ca9078757b2d3657c166a9c7bb6fc283fd390a0e885475ef5899c9e280d39461dbae69d3b2f214f05772591fe7ad6576bd674cb5ac771e452bc6b61e2987500f908d5acd7ad7009f02871029da9e048e5925c52873e67922d03c8c54a22c3ceb3685c0112df7322fab992038e0021b9bf8c0666ce7f1b80799ab403b8f41a341f6f5c34df65ad5bbf1dfa50e85c92a54b6728a9c6a03bd26f1eb7eacc544f695e07b4f593588d206e970a38a8df2152151c8e9f2bcfa014731e6a34e1c980e754a7f4cb86d1f2315ab1b2ac1d9c6dee8ecd1d2d7233f4c57cf3a9e50026e9a6efb303ffa264118333f70683aec3bc0810bb08e71db74192f6629b98f587523a111d7bc862e140f7c021ccc6f9a9cb5cae8925849583077a9b6bcd9981f4dd0fab93c61dcd6793378765210d3c26a6237f452d710dfa83c58b81b2446ddc0e821f50eb96b9064611c15ba32b7bb27eb812ef92821acff64f7d2d06b8b7a7fce240426b460f3322862385ff31f384630deee0e949a6aa2e8d62f0e46cceb1773e6ff26cb15c2001de54d9f1e9b9e8eb67433fcbc023b491ec48dc49444209bc278fd0f0e074e0e2a0bb99e91df902a9bcc89beb85b580f2dc1aa27e5dd536123f1403daab2c76c2671d1bfe402f0ba098f584b33846eb34d721209de421c479b3c2117572207d5cd16734219c00ee36725f85965c70c0aaf356e87181aedd6554ddb3a5bea78a22d4b4229fdbbed1b32c98eaaeb3e34e67b38654a729b28c7a988c34cca1139fc81be7de967f633bf43af9d7818a6ea9f0f32a5174e04dd0f8c15776a27677cd6484130947e04681c56969e91c5ea691d9125f8f4c310c2361995523409a36bde4274ead96cca29fc4c6ec2b2322eef3d8f61558a3785c0c294f8e4f1d5109a6179af91526c1389b885748c44ca764516d3497a3e22cddfb13c19cbd9f0fe5dcd0896b17c0069be358529ec35671caf183cd69bb7384ffbb882b5a9420af14bbb58aabb8f1f4e01b8d54898fcdf4389342396829249c938fed9e4ad608a2053a8f41240e259298bb8756a6403351b5e6104a9f156d29221eb9f8316eabfeefc63776ed9fb11a1b148f68f7c734d2e186bc2309eb9b638ed541be7170c99a9f54b9311accc3265050e7823cb27ae083c36da95437f92857f0566a352232b14ae7bf4a6a142acce9e71468ea192c87918963ec3d711d5a6bd37d315ba321b090869cd9f7b6c084c22f52df8b319088ea9be9a2fda9e002790256a47e74c3fe5ea5f40e4be80bb8bd79e61c81fa20d19cac9ede85113ba94db11799ee72048a0181808f65599a78b531024dd811a39ac1bff866dbfc36efd92c2ac696a4141783a06a2f88c1335e35395967f0875e42b654216642cf2098698b5fa70d5d772dfee0cec72acfa88a9d9439ce0417f0e5d801e0f6bbd4818750814a56da53439f316222f292cfb888ea709d09e3ff36ed4e7e4d59d0a0673448785bfad20f5db36e1241a7060134c2e58cba344dfc308b229483783fe11ff9072105a246eaac9e0e8126ee92a7477c94d18b4c7aacd7cc51aaba157114b5b382c8f55641af9d1ef61cd3c1f2e0ee36f833eeefa9c3306c18dedd451f18a0d68acdd549ed667ed60f185866b0aed8883accbd8d82ea6d3f2ecdc2404f2b6c4e046f52362e1cb94e85bef98c13febb275bbd68bff0dcfe5f8eb25d0a3b3e0312136e9ead8fcf9ff2b0ad43db3f6229e459b0e09664939d1505374f4d264dab5645091583f3cc352f0fa110f7b5c55ca560792cb2e180de7c7289c76c07359880af1f65150731a344589ad105b27c40c74b70986cf858436d6922ae6aeacb4b8cf47cd47346ce3897bb157c6568fa2682bd7d82cb983b5a0130530b6887cc01c99b3e70bd9aadb136fa2447151d706302a601b5caf3c43567cca23c68183a0d9e223cab71b26117cbcb1aae1ab0332c0b1b206fcb10c7ab383416471c9f12d720bbc9e9a49333ad4eaba2a9d2a316cdfffac7099886bc90377d2c53e7ed009f01ab6398826d3ea7826e9d0abcd24cc07ab1cd2ee9d5bea3cdb1b9a154093f0067393b7e31d1919fbe9d8b5b01617d74ff866890094de9066aa0c075426bb42d481cddf93a4fe14cff9e4094da48b9537d9bf05f7bf687ae2ab5e364a929913353b9d2dfb5550f65a748fb78d6527ac40247606e53e491de0154a8613889930028375a00572688dbec96f726085fd28d8e61307b50e468c1034344a6665dca2d60b525e42a449bb79a2c53dfd10998acf42abda389b1e3a7493be2f0f3e9cadcd4c9e9c779afd1e4f2e387864408adbab08f060ad073f40c6c6ff5c921cf3f2b5bdee50e4bdeccc9f1f2ae63c2856966cde7414fbc171959d4749759fb1d116108b13d1b0e6c70eacbbc953cac094e9e2003041b28ed3035113d8baceaede8d819263b211ba9ce27f7ba65ba33b4d9d6d8dd88eaa834c32382e068d87a679458673264c2a2acae36d97a109fa2079711903f8ce22d205c5d36e34cc0c841837cbdb2b2f816fd8de8c1384995dd80d167ece47b511d4f5c676367aaa66257e3d49653fb71ec07a2d9bae15772ecccb965fb702849fdeaffccb835dd4c63b75fa4964d5877a76f6db248a9dc7a26f4964c5e66bec42ae1deec2f69aa1fa3b0ee349c64a245e96d0285ec6be6fc8594211015890278c0736d3ca5834e8534cf257ec06b7d5a621d4e2113a06692adb14e3217fa6f0150f1e1663a5b122ae9fbc28c1d411492043d4960c06cfb95ebde67bafb01f68588fad0df8b241c0c237af3422fa9838e82bea84c5491c4328e1ecd588b31a32c478a8ca69fc13f16d3bb4e6bf0f578d197def3643058b2d94004cedc8f90bce9463cd207d8c7546b46233bf93354fbab153a6164151ffca0b10f899af061b552f935fae66be0c37c14e4cc11f86b07866471b82ef606816d1fc1c50168c83186bc948ac255fb1ebc1aee17a6ea7d503def7674b509bde9a504c412eb0c3048c51b67dcd0a80e760cf172756e8f09ad1a758aa4952806abba3c15a548047fe20526071002c4fc9e91ac43e9c7f7e328e1ff8275d3b039ab19222f711126fefaef7cda1b6d050775425980fd2c8faf4387619ac13c0cbef22961726c82fe6d0320ff4ba3b29d25d0b5d5956d54690af1ea6b814b183cc97f3a6b90e2b0633247e1035661f212b33eda71e1c26377fb2be60c71e1f4e5793a9b7673a78e7c32cea5fc1cbd18979121df7db0d7e7d4b3e91818f629dc667486f456a7fee52f7175871f83134f97065ee837e11b893d0693c5e185d4f0446a922f5049f06fe2b162525f6f76f972aa18648ed3ff3f39808a5137291548193eb5dea96ad581c629f678ffb96d6df602c6321ebefa4bda07e0fb624885f2f059c7753bbc2def3fbbe0bc1516447b3dec10cab97b3036cdad6980d20b9dfbf306d9c38714d20b08179160f206fa3693c0967ac29c178f4d22eccbb1683643f9fc12df7dc2180d4d8c0f8672c1f5d067405562c7a12a3eeeb42fc68b00691d488372989e65994c0c197e9375d1a503103a8eba8e52e1eab4baf744ee2537a633c1c5e8fff2e5583a3eb62dbd495e42c28eee952caf5eb483b6f03c35a7bc5e7941859aaf014a142aa25540506abea5f58b4f0084a6e06990369cc1d4b1a9d73e13a44d67a61b28be2b4f59d46c0d3b01b6dbbe1c603898069af38829928ca1c71373ee4694856cafc8cfca209366f22d81c8db62b1005de5f553d117ba04e4d1d431bb638d63330763ed8e6baaf71c33e34bc8f4f099ca010c6cae093e734bbf722fd1e3f9591340745e4a92f0ebe0e7f8e354c5c19a1417e8b323ae82f60085d1266503af81981fc61dc98ca2173f14690d2a7f068dc05375989673ce6322900ee69c26f66fce7b72830eb0cc50b5a7d508e48408a96a61e30fa7f03471a2552b76f54798aeabbc6164f676248af4910c3336cd08eb6a9695d1b307dab590dc4021535f7bc75e3df16a032c18b3b1140258c928c99f85d24089a4b7f75fd6d4dee8e6a6404ecb19386472c1a964e011482c8e2435239b8dafd33ba4e4eee42c3089542d815df001e454075f578e3a440c3fd9052595e6dc8b190700f2e54266548a5caa2b386bacd92d16b746270a52feec56cc7be737305922a425016adbc00db02d754c7540a3e38d56afbc5ca8683fb89b2beecb0bcdc40dcad23ca2da4313d0b1606939c2098e8e41a5a09598e0e4e0860a34a47c1a7fbee93701273454d83865654fb7635f7e68f948850484add429b9cd1d251cd2c7841faef636713447a1453b3c9f736783880124f81b094100cdf50d1c4ca563c081bb0caef964be4e9b5c046347e38a57859d3255f6141f35ddb5f39fa35e487678c060debbac60bd65afd0831e0702c66738895191171c2cc044f59e49f46bca370960fb7b15ddf8ebde9820f0ac7d4527d4b4696eb0cacd9358c751286a9065962eb6a22ccff0ac1b5321c0ddd938d45ee31959ba9942da13529a1273e8aafff6368b51194d2c2429f26be4571c6c8f0fa13ab760c81649546a14b15dddcdf7b7f9d98aa5d794f39a66431d351d58de59ba291b39fd5f3ae2e5616bf7a11ae81aef7de80c5a49c58d76ce60a3103662228294f4321a0b51e8e1d66545216f7132bdbde11b88bae348dbefff0bfcaf8d608d5c06981e055d88dbd09be621595ae4be96b2cfdb23ef70c74f65dc86803ee36914d7824a56209a085dbd1d11ec729e310cc0e0033ddd0a222461ed8f47bf648b1cb3cc0dc52db04cf2812e4a63e1668248c80aed69828928a46b1343de04d7a5a5caa5aca75cab05ef76a778237223c5f410ae462099da68ca95460aa2e686c0346994c13d7a087b6750e66df680d2ff5e4280dd7e675080f1a6afd6bd34f4aa2fc13b531ced3fe09d973e1563d66c05d0c2982dde151c005fcf792be42718c4283bd66694964b56031d839b42d5d3b14f0c512cda780282c9742b65d556539ead6a0504734400771c92948ab479eff0d6ed0620c064fa3f3eb7b8f9c2f566e8967bc31bbbcef2d797224b7ce4b4c30e9d95073a036e8ce385de5330b0ee683c03e4d7f0062ba506d80d9104911b6edfb5ecb305f44446db064270e1f06a18211031e787d92d3118f605e744d0071cf29dba8b96e6aad9c01407d62e6010a58ab3818002b04a805c8f0ab31ede859cc1e392bd814ebf0585661b7698f9d5d9737ff7c8460368ebf95a04cca37660ebbe39598584dcfd98722d7df84fc97e348477588d69cfac9a895b991300e117ee9e9fb4ae2daf2082bc74c85409b0f70cc34ced5f63ef4d943568104056c30c0a90eb73a56ae2a30361e8b6f2a75f1ee8bf9df97fa07925d13cc1d7976dcdf98641db153d4b1c61f3cc888916d7166f6d76dc3ecfc7ba6b83b3b5a239aeb52d5b8764153524a9a362ee5e10b3236a71f083ee105e0b209a249a24ab9c39fe7371f64ef0ae098ea926a6a2e4ac88b9ef3407fbc97aeedfa35e5cf10aed446584d8df1348cd3fe34da20963c688b0007808f4e41f16f7232fe2ea2bc5b2cbf30b3c66852c0af8884966fa2e9ad15407f50d1460b86f4b84456e2458f808fef7920d6d5bbdccdf43dfd8d5294bf43dde29822994e1a98ae58c1d9f1cf31e5ff345f4fbc33690e5168c1b32dcd665f19a3f673e1712db09ac370b670c95e1b7a9674bcd0a4d5dfdbb8955d3cdfb71e53b926b0a4050bc8fdfbe9af8ee4683442a371e6774a8e39330d54f3857c5fab936d9f4c9891fe8b690937b555f2d22e40479f28f1441abe4ed489d3aa6a4b7ddd22964a59d6cdba0a8e032ecd15001e3d9357dff9dc9be0db22acb1c9e4b86fc94ea85cfe1e7fb2da840e765b221ae2b8f84d6e93d28c19f594229b8ecce68a3656bb529b57fc8a9b11367b5995a3ff0ae176a73f6f994d53a2ce2c53177e0efe12950040ff4a0f421e53ecd805012955470957744076d40f1e8f33644df7ee23e7447ac23b691df6b1394628a41a8890d0000afd387f558fd225e3b9775f3070133eb80d1d3fb5f84e3abdc1a62599e39a8d9cc5edab856e873577daa1a7dfdc71ff7f70e7d1c7e788cacfcd319914e1bfef7ad0d4091dbea71b0012f349f7b04f91c80cf96d291ce099d256d91db58e19bfaabbdcc3a2786d88351d5f2154cc5fa004bbb6f02e584c49a52aed441d3e5fa0ec762fc417dd6af5dab6867c6e42b71af6a48e759cbf9fed9efe51fb63bd2f72cdaa0d752f77f2c68c2b9838e609413fd589933a06860b811c4bcd17d12fc6c4e7725e529c5c3f3f683bf41c6b06a77e0ecfe45e8fd87b1b701e097f517376aa4ebda633ebcdc05bc060ba4ad741972f88cd5aacaf9e8796dc16614615d6cc5fe95d3c09169e1458813a0e5badffc85daee15a07e33f28ec28f39480bdd0c76c53406f00c5a0802b62636a36a39605c376afc54a467b61fa563e24992def0d54dc8eb5b6617ae661cb90930810963693908b14b4cac59ca23b1bed5ba7400acd250299abe5b4e5e427be274d32c47fcd7db6f0f5e43d34ed9e32825d19150a5a724ae1bc880d3992cacc26cb2138c650482d21522c32a08fc0789d02e97318fb6b980a94dc53b93900ec13b5ed2082034d7d746c4ab366425a3e037975d2835775c7b11307729b61edfdb44e757575b7844710a9acc7e8daf3e8ede731455676c7f63da30627d4a3dedb830d15beec9bc6ab963804e536c358ffb1070e2a055e0f94c3682435641e5bd66d03d45001c070a4d6b8073d8df35233a3a49c3012cb45e4e5a14b945d24ddc3e55e404e859175f5fc8acacfa3849b133307c00f1d35817c245709c0a44db45c4bcd439cefefc58c3202002c1472559ab6a54898a289a2fcfa15be3fd76264d26bacb955944738ea2fd4ceea661dedf3916aaa4070125f3fc51ccd2626a1db5d2fb253e7c703774bbb0d56c7037c388d3a451b24a3b6360ace5afd15d529465467636b57b45d9c8d68dad182848cdf0caaf09ebb6dd397dcc847234ec32f476ebf5d55210a8635d0cd67b651c672f38d1cbc0f568559539742674896f38aeec4dd1cf17209e4c481bc86636e83a22cfe593895efaa81b028f187f03527c1a04d70aacc89a85a8922a275d758b7d6856eab56e10b94c3a334ed80e3a36b53394b1c369c865056c75c1353bdc3028c64bc8b2ff3444fc951a6c38ef5b6ac200e1b234e197e6e841cd6d5fdfb6b90fda82f43c9bf92726631756b1d1e5da168d5bcf4408ded7fe69cd14a24e24b1a9e2044da50325a16822f43447f8385e12b1fb4976df833c66e1905519e175185ad8d718fd8e8ef50d7de19894abaf69259b33d81fc46b4af80ea6d7ff38c784d8a26d913cc1f92dc71112d78065ce2ffffb7d9fd44e55ad02bc730600a0f38f53ef17aec5a1f776b264c1719cb63a203c3870a66ebbf98101e1b826bf6fef401f8712d455433cbe550abc4396a20bcfcaa62b91978e8d2e43f2befc0fed2ed491fd8e1bb369c2750cd5840e7986f8851b5d3e98cd74d8d19fb0a10778a57089634a0f3054009b6ed9d4862cde7783c3afadf88ed0fe866a65684d514bd1c3624cdf76f495321bf921a077594d9920ddcd3dfc979c33ae76217eb0fe65009120b71edafff65401cecd72cb0ea1e71173d0c08e2ba1702a97f32d1779a877bed609c236638e7e416c5c48ee9c261725c8dd16f8dc6ca880c7b36355881d698487db486e7ded8d4241e3bfb06091c89509a9183e6ffc2c31d8c5ba77607da2e531581726c7ac7ed83aa29392398cb7c0f1ddff7b7eddeaa596fac2fcc26cf1acf2ba629ce36a8e301c28b761cf5cae1190271ec9fadb5dcbe450964b3cd68498032869c9f7c720f6c82fc81397bb55bdd31e9d1394c5c663c608142d6b772c53fb009af9104b2d96aa40f74b6473d6114ba932eacb42214df1c21f4098ea6c8eb934cffc0ea7b2db6170c1404dbf3404687248dc6458d2a42a3a3431de3fa537aa7f58e4ff444ba958fea028138687689165c9d30e99700c3c0741847b05c1d4a5808ae101f37de6b3b24d7044da99a244c036e456fc2a8523103e4c94e24b8a7f171d52c59465072edc7e8217c53a70183b9bf9a59a2f43d6f49d1371888feabfaab93bd8f85e7db8b33c0bf623ce48b6e25e3f87c1c63b4e02e9a20b5a0d39cf9d1b9c8bd2629b985242e4fd533ace231e100ae275e7affb0a8073ac73e6f835624b07b904cfcd560e31eb15cf101d7225b4be36aefd12428fc749b88d76201d67bfb14abfb21babda7abd08cade534b26ed68c0a6928215f11e4c18a91828f9b1f61c0741ee78f312ff911abe7290a558c858dc387b329c63aa83054207198ac1ac0dcc70aaaba3b5509caeeae840ed8571c5412ce9608e6e9e10d5fbc9b41fd133c616afdfb9f4aa6644029720986e29fa0027432bcbdc87e604061549bac0a08f56f5997ca4f3284bd7eda95177bbe447d92fb489fd7676e4f5420e3374e4f6588cfd169b82e16ea86df60ffea96773684fd2fa462b96e7348c1efff763bf85e59b9fbc6b1b5071b7e3af637733bafa569793f8f480b9d899cd2b91d1c38de37c994532546d4535724c83ada6fd92b2f8008a56f173c39708d4f1bc10bc6400d47ec27f496cb06c514188c290621af1ef2466feb83d2dc47291e9530c35112f8415c2033ab4b72819b748a3b527f99d52e680c2d4fd2f02fd2bf2cdd549b0b02753546abae51d6f9b86712b074fee4b8b7af4e9b9cca2697a1f62fa36a454aff9daaf7d931a02d14923665365a042dfbd44f2243bb4e754f27993a57d05f7522e923b7300e1144c909cc09ec6a24a4f5451f1091da5683a629fa2967b87c1d1d181ca1611319903ff02a54f0551882bc21fe81a83c4512a2b7499f5a38881ca2714dc3ab65fa2f6b8cdc3cf81420abf1405c110d46b39beba2171ca9156dbdd537a3cac5156afc75137cb4ec4063b873557953ef0280777948e8167b4e21b70b4804a1c28280df58649c96d9ddeedb9995bcfe34f1b0df27e2b6f9ca4562d88984e4af06088683222b0743ab2cb6277cfca782ce4294b4d7567c1fef3d785a9ac008730fd6867534511341f397c98588241b6feb45f0284c1ef42845d7ddaa79a85816d4d1ee5dba913063dadb20012215d82d67b8935f9e5e04663ce771705adaa123a3a01c40ac0d5830aca08e6e0d5bf226779857f0f4e5d946ba8ab9f635244fce2e672e5eb6574aac5efaa824648b61f1a80dab9691150e4080f977121ddaee3abe0daeaf92b02826febd88fd860f3dff11d3a40a2fbd96101e4db4257a8bf00a1810a9297e1db4715ca1318a7b4fef1572c83a67db2b6b1aed10fc75d0c5197f115a9d851b1f545ed4ecc206be9ef1848c6bee05a22fd22e51c3c879a5f6916baa015954ec91a1ac4188891e82ecb76938a68ca0a2fecea85f83eef6ba05413939b4fcfc108196286f9b0abea68c2b127d23dfb6fc1be98edcb28d0a6dd32570ded83db4b3645ee5742741a0f4153de4e3f6c640bb2159d53f2303a2e4a64beb3865d9ff4e19c9f36bbb93b8094a982cd9dffddb04bd575ed163db0174e500387771fc25f095e324ed7bccbcb2e69e66cd85fd959d460925e91986b6e494ac16f13c64f9174b82b4ed7d11e60223e48716af85b9c265cea49cd981f4cf8a5044a36a2b1141abea96449613aa0489dd7eb3c5db6f37666ae8e15361914331af3c606925e726c6091eab2f72115ba69bf4924e946e991f07360f90a60168448edbd131658480af2b8f3338eedc8a619dc8f53f547908120c3ec62e85d7b43d827affa9d3a81879a25f6b720b70636c675f93a3d9805439d794dc75203ceeed4452cf4e903455dc9e0bf86190f862b6d79b18a2dc5f2af33feffc5763b29ec03ec17c1d9847f4ad20f6286e1cf79bae8206d79cb746fe34a6c4b6fa95c3533db85b053bd8d614c125089bce76a9678893971ec21610c8f0972afa3fb9d7a488d672d30e6dadf51da6f99acbfc67046dfb0b67e902e3584e298a4f10c41335a1beec36fddb8712b990f239c3378b4ceab39ad83ef303d84f037b35a54a868ee5e854eed247a17619c2d9c007878012baa854bf998de7825d311f5fbb2dcbaa01362e45c716380f34c57fad127c60c90e4352b957bac18483f81bea27c6e9b94406a939f42043618de338fbf3803f7a6dd19dcd2b0da48e3d2883f1f9d0bb97404e96a6b4cbb923a1f2950bb07e862a66e14d33e0d2eeff5f70f9fd9fc7a3076cb54e6c253ce6d8ea59b677616470711c5287d10ce52723ed75dc2c21d85641fa4694804f30901c2651563b7a6a299f26d8b6b687b6cf8a346322c4c55f848a97675276a1f607e8d779c4584d9dd093482009c47791e58f004d996440217d5b3fae3fc146b9c31064028aa28f2189ffd56094995eed30254f95760756be22003864224e4b90d180cbe888773e08bef79b33ca7376a0c1bf2464b6e8404c3641cd709a57169d842851dcea51ffec1a0db3ee87bd4b16f99e4d70dd2d5b512b8d09eeb01bc7e5e370097e8e364789f5a5548566c93c3af261049b45adc9ba6a6d04a7e2d02776b6760a29049e501e676ee452da91d27c9e715b852ea682771230235d0aea9756e454cb61d18deef453fcb96b2cd16ef3c974789efd37d04e14a785c74e519079062d4e63269b168c7cdc6d8d5f334b52beef46326d0364210c74bc08aa00fdf5b8804d3bf12c83fe0a0c2e94533994885a46d1f92c95538e1c28122a95f5666ecade4ca51a01157db6c596c1b5513851e2599ce850f25632b0afe0448dd3cb8584f87ce63530eb17441953e427eb17922a86c8ddf74333260e8082994edf2bf057c444df95ab6663b9a180887afb5431cb4170b91c25bdb3694c91a716a69d0047e566cac43b778a8a4b208b93f7529215bcfe74ce95b5d79c2d0497988475c1a8268fb9e6cbf57307e2778abf61005098a01b8872622ebb08b0d564d22f23b5084993e7c27f3ca8116b691df2ab75da83f8c91692c25ab3b99f63e354ac83d6571d5493d5d2c93167c0bc723c490d5414159e1f49d6f831b260d6fdd763121f7801f84732446b52df2f69176bc59c6c4045e6c516cea3dccfbbba01832a0980c9d70761deb10d78479d1e31b2dc97fcf8f2b263be410857359e3e1880a20bc6025890cd5aa74ef2b11ebdb7a568e808ddb891261cfa527d3485491b6b45cbec620f05d7e1b49c1a7844810bd3114886e35271dd5251a5b8195bfe23bba9e9a1f254112509b6e370b35a668e116fbfb2506f4ab35654fafb4c5095e5dde2d06c1685bcf647eadb817b65f3804c32e5c167a36d8dd9ea7d050bd4606226d6788dafe6aef8850d89114cfc99e727fbcc289ea937da1095243b22ca31d2fa2b0fe8f5fc2bbd257a87d426d949486e210d64aafed8278002efe72d1dcee5213af30f88fa905ef9339ac53f5733558c478612a0be70ed9007c1f764ee43e4f9a7c8e4bbe3663dfed521ccf202458e1dde83d357976fe947a2a4466b7c35990cba14ca05196a6f476a53776b2c0a02279751609816672664fcecd0e58159cba4536a14d2ef30078b1cc9514d5c423ce6d0c6094e8231e41c18199ea3ea9775e8e4c9714ae5daefae24ba69339ec4b449249d9f9c76f4a54f474d784e571a554b76624b11777ac20fad72e43dd3e836dbb50ec78e82bf6c9812cf7ef11c4b1368a2ebb0ad94838d5884a158f55bb7f0f27ce2153505fca19db6fb4e7c23f3961b38a31d5c8e82d076b49f851ff47f86457fdb484c5a1abeebc97a74e1016696ecc55bacc5182351383fcf168085967c4ce7a8f8c5d2232bc63d8467f7ab9525cc5926963dc25ac075534714d221f7be4279100bfc38c7ac9c2ba9283da2e95463ccabe6f0d7c5be56c81abc7e19a16559dc1e9e95e7fbd352e476c532540f15157c3c78a49ba25d822ffbe1e2ab2bf251f19e84e790ececec9141971d84d764a12e2e3fc923ff52a0964e3a02d03b2253894ad29407a7189ba8d5260ef99e6525ccf822d95523c942a065b80cac7b1c0e425794272404282dea3990935b6212f7266dfb702cf3622587d4f7e1ff95b472d11a06e2e20f1a79fd614471ea034db933a60d00bc6a87ca4cf01fe7e79f04c94eb39ca5dab59a5d2a8e8a65907f590d0c8794d95c2b887012991a76e719217cff268fce100b300e697a9fa0e98d573e184241bb5187a20f17e0e126fcd953696cb4798d6fdc0271db7cedd5b02bdf2832b1df641608bf2d74ef1333d9e145711f0eca09266a0d64c7cad7eebac2f1aa8b2f4bd4777c5a52ac4bac7477c90ea9e065a9984b9cdb28cd7713510fe8130f0bb182f7ce6d90325a531f29d43cb1c2b29bd441aa1f641442c53e9f08b94733ffa577886c203a03058d128a76044d5ffa25077a875a4a9a2869503dd72599a3defb6bf557b957040c558fb115f16ab053f093e13461179cb799aad72f04e55e5cbd7c340885a4210dd7dfb65ee1604f54f72f568beb4a0f5e94b36d16ccb98056dd5012365cc6cafb4bb9b3ab092d51804bd20be1704186e96243aa70c3c44ac43f90e5a289b7692be2a24c9d59ed0b0ef96b0f1f111c20e4098cc647d86678038ea7f751ec3cd396e18eca17d272370a3ad8786fc9dd24462ba19940843d4359d703ad87427b613586b89a63ba547ea6ed6710506b59bb5b9ef572fb008384bf43d092fdfd57eeb3848e7f70862b9c0f323cec84a056c0b0487619267264fa97be5ef08c5da942ec8ec0ef8e9c4147e03011bf68ec24d5c7a29fb87ac90b72447e9d38d4374923794f62ae356d6c7d9268989b6e9fad20d0df8ac8414ae08fb021e4fa4f09f3ad35a897843c36644871ee1ea18b3accf807d7fedcc9cacedc9d636f4a018cd04e55521fde003ffe67262e89c3397e015f4ec866fcd7110a6b1c5fcb6fa9a220c148dd8840aae1f87b3ad476300d19abca4e9cae9f8430dc7f389309734635834e6b4cdc1a514a76405b644022bcfa78a9393b54694b2f68f3907c11e34456728a725d9b7149b6d87be1e48d18d1156f0e7d2cad362c46460d6b95e7f7e410d58ae71ae06448381154f2ca5fa4d2c13cdae5a7460bcd7ffbb9f07f9a95fa9303fac99b7c58f506abb0c87358e35a0b5ac021aadd1e2a2cd45c6d84f9ad1194fc55ba48975dc45fdbb89a202d220ad1835edaad3751586de91f386aa605a6328cef0d7fcc2e25d7a9480a004f2162a544b8af5d721e392436efd58b1505129cf1e36e49785e4bbdd6e110e6604e554ea73cc0dec910a1b7ab485d9ddec5eb80a8e2f2b7a85aa58094fd573391e3668a9ad9a1e444956d32b1ec703dea4890c1e96d3f47947cc9cb4bdbb3daccefb2c7b7ffced6d08e9f2475d7a33f37ba23abb4bc732329363b9c9bc8cea4ab008a1fee3cf2cb39591674f8f0eda1726e07ad72069adbddec8fb90a23a1407f614966f600effef3314eb3ad346cf4a0805e9bfe9c4c7a4e220ba797b06d5be585687950a5bad5876d122f5e20bf28087cafc336c88bfd56f1249fca9a5968144b88959c2fc682b2fc8797501ff91488e6f3e1010c6fad75d57db8d3ac68148561d643b1b1dbc034c453787641c7d094924165bd0983af268829763b985487f24fb2e112ca00de3a057f3b2f30657707a933cae18f589f8f205e7f557a5016bdffb1558d97509e83fb270fa1912b71dbbd646e1fa5091227297260d7978bb6f6d89e83408a12dc3b4af2c5e44e04d93ead85756e44ce4a211b9142cf8b824bfcc269d91ba10f1a1819eafd69bf698202c98ae8a83f33cff506a16e43550f3eeb391956b1db9521c4f3fa698f5fdee9f158e94b0c8d2e7bba371a8f24d008bc8c8c76be7e0dfc6bdcc86cf2b17c2b898fb771c587b29ebe2463aa7dbf0c0cfd53e1c14c915b0e986a44579ea789b249a17cfb44d8c3d68b5a11a0bb39eb6acd07fec4085df5af042344454fe27bd99e9012cd498736f8fafb2233f5ac5616ab7ce8a42af85f1be02e4ff44c97f18246cc24f168a948d32156ab00c9b95531fdb1effb3a65bfc13f295c5373b15d6c2a92da51cbdefde8254ca65b85f9be13cb7fc1c495b4b83e84fa37ac6048f9d13f51ff1950078c208cdd60a3a52ffe746c7f9dd4ecf0a53638c22cb19126d26cb5764f13ea1e7e293d4b4bb70f64a2886df15aa27ea1f45892951227a4e10919f2210807342ae2cdc78aee56cf6c31a97d5d5fce5cce1e3deee30821b5eb52396e31d4e79453a139928a26fc8afa91a4734032543dca9cee9166aa0e796371ff6a177bbd5ebc0cea6a4834db9ba9a715fa537c3469aa725cda1d18c181e4e79d923784b7313be9a11b5d7e4968a304de2f0cb6acc91dbcc335a31136a6c3c3acc042ee81e8c960b34b4064a0b9d685cc8b6312dab72d63c0c974b02331b6f3ef2fec25c0b2e4ac8240757a08a989ed3a94ed7e05d884660d934ad747f9cdef9d5e2df65f261d9682b5dc5735d36041131f5b458a4a34ebcf6f713d9e6295e67aeb66be56183cc8e2b1bec391e53d91f8c901c990a621f241426225003df7fc21a6023533451d984253a0af5d63c57bbf39bbae5ac688660fa2a37ae05981c67c37a569963d7a0816b2dc140110febcfc2eac148e8cc36ca8fd5eaec1c90f36a26fa1a38f6a205e9769039f598f762f5996cab8e63f17fa5fa1a0084e1f2b1ee232a37ef93a35a935852f1c80fb10195622972909cf750e233c046fddf1b20a0c7e6b6a9344fe89166902458b7c67689510b6e7536abca07f7bc26b0c532a18fc0ec67fdb3d0d5368998fd229dd3610a3d88f46b128ad310bfa7308d57b50824c44f9efb6947d1b4e8bc98866584c57d5ff4f3c340cd9dfb8e2a80780b0d1ec7b9aeefda8c70decd3c19c6967f8ad3fe5a928e3a278ff7ed6d703de0d866f432d22e6badffe70cace541d3edcfdb0eb3d842f69f47104f20eeb59c7e56e3f2838dd681c2606786541914812c72820aa2857835975067105432cdc52453019c3676b2192e51a273950f071618dd7ee9fe223e8ed92f91f2ec3679b683c437758167b5d51806f6fe88710eedcf57391a841a7078a2f841900ddcb509c90f2bd7ecc94f3dca6103caf8dcbb92b694dfb84a400ffb1220e0fb36e204845413eaf304ea2b2ab98a347715f868b7897f2f4e0a1e5eadbbb65a7e836d0460bf215010b9ed36de44117db742da0a849c712acab6a655102cb94b38f34ec11859ece0b51cc2320d5eeccd60937e801cf0d0460bdb7be37d3086766c632139926def476a0b7f2d937766f6e65a6f67b4483570e0f5805f301c22b0173c28cdec038304bb49a5f742da993d8fefd94c101f188c8b666e39164b93c90ed55899b6f404a76ceafb75647ba86d461a89e9f06d6e354035ca58c3407deb7ccdb9e63b54366be913d2afd9bd4b09b142f3c9077a024ed25feb4f4527e7991737ff96e450906792285174926a0c2185360678234dd9273e49938ea833a62b1445263c80a732ef3fbfb3f242f6db236822ddbf9fb2b92ed5636e2902835a5e38882b9e1165e15f83244c29257de475961ad003d6914e11e25a255c99500137bc8fb5d19772769f219ab08233badcdeafd4149626bd113a7c4d36c77016f0702c32f3b7bb9ba77a1c74da7005f0d7fb3979c330c918023fa8d4925dcc982df21fad1100b79b97e2a628bf41768e62c3480dcaada0fd2ba2f73c1fd6c3c06fb5f22ec71d2ae1900b9e011e41ce74e794df9f6845080905faa9202df422b68bfdaf460a86b8261d2df6db6e81201631fb350dcc2ff82b52fd5136b5d70b570c35dce18557b828d985a6f3416b2b8b89aa1ca1b7aba7a6aad488db18c5bd67768ceb861095d5878aa00cc8bb282976b9374f3eb848706227afa4a4e927cb6b29ba668241d59c607cf9e6534f8e18a955bc9ccdd4acc9f355b7319718dc5179eb8f3cd9f98ec454eb43477baf2db029c5e2ea1c1cfdf3d63e49e9e5e59862800e15128c206c79cc4d14f8747c1136df62dc7abff67ae442019c920ea03626834bc1cdd66b14a91f927defdf0591120b4e1bd1bcf096c75d72f3836d7b0cf1cbe6ca63cfbcbf79ba300584d9b34d6aa6a7652b2c3ca77e9dfb0ae13817d5ef3b61e1f5de913d3aa8c10a481c6842f20547eeb3796ca163b9ae7b40648dc8e32619cb2830b7c8fa534d9199301a9da98bf29c04ffd6c0c2fa8093fea7fd01cdf5f846178db1959509dbe825b50b840ef82cc070828d50c1b05cddf32359b14674285a1e7ead0b56762c8f9f6cf22c4eafc45306dd4bb6d37ce0f2ffee8b00fb048cbceed408cc0a50a9d9e789e210e110439824371cc8558139796d06ee8dbd783c38fa63799bc1b6c99a744c89b46d256f4d3866189c2145dbf94e2bdcb94a64aa5b60dbe914171a63c4228fc5ce119c8462dffacbd81d89d1b4fc71f9bf7f9d23382e507ea80d5de31110ec1549fe5229ca99cc5749f17080867b73212c4f0c4725609d075be9666f6081a335718abeea7c8dd51ece1a73e8ab05d72be0f354e7d4b366fdbeac253aacf0fa4be6d82dc9b56cbe987af5fce6c5e64bf152b9cdd4c70ea3d1dc272da68faf0f65e2d888ce77d11ff40459edfe92082c2a034c3ecb1480f7f283db7a240428483b0c4cec24204d01a16d0916a1c0a4ad365a7d6a2830e141d8a3f490533e580234b79cdfcff8392bc1b6a3c1519458e2709c90bd0a66cb2a61c3b7c2a0a80593e36bee8e5c003b23ff46b007013badd964923c4afb95bce4e23fe1619e3d3458688da2f57d6ae1cccfc8353078bd7414a40d390b7187b08de7c5dca7eb716f725b6dfcea2b5571334ec001906aa92a32765140aa109e3a0a3c54d92f97d1ce911c82965504a2f415d3b21d068402d1d2800ceb56322efa3278351dddad35c7f22967194216a7e5af64d3ee63c303ff3651b0bc0b1b570bf133bb4e95af4562c20d13b58d4468cf3cdd3ab4996a1139e3cdb91be4bd4d4ba8724fa95be8f123805129fa66e2c63b5042a1867b7dea9c55a800c58eb35db2023db2c93d8616b9be9999117228d48befe985417fe12feebf119bb9ce1b46ba607515fbfa0fd1f2e34377beb6e5181812e72066113b387f0240b192118b3777be3fa4469989a9decf4147d6f6549d1fd1f278dd1f18b5142589bb552ae22d6cdbda7fc1bfd1f60bc400553cccc20a6f43705af1340eb15de2fd43d33081be2f8ede1c7d7423f7f0819aeac38a335c1f6783a6c7a8eb3421a08d905965bcca4e9067b841c7ecdd2693391234f8fb29f9b96186ee9340dfa32b5f47d8c03cff9afc78ed11bfa96f9f27393727fc489b81902d8b2f2f653665fd9020216cd89e3153715459386a9600bd1ad14b9cc6fc3d55cdec69ead1d64cf737a21e4927c3e8e8e1c4ef7b12f384a2648f2bf4c3eaa88f954eca28356752234635314395e843d834c0741c406f9ca9e0d3e41d5774e6cdce233022e3539baa17049a74718f8361610663d15dacee968c09ca82a8b844604e1efa848fb408e86914b8480b3f477025cd1cae35dc7c7a8f6c82c3012975aed583c9b7cc994cad08ffa4fd3c8c7f0a916a2844567a8702c91c70e6d3e87c0bfffee4fd853947a95f2e2eac07f6f6ef25f5cdc0e6a6af0a72bf3ab3cf7398e6e1dbe5eb2a740449467d9b7bdf68216c8faacd67c6a6b4407835a2faba26590f52fedb86c5836a95628cf94830b505a37d9493e438c4d5f54a3fae96d9665a9fe87eb0051f5557d5cfbc6e3ebbcb83ab2ef1b0c1a52bf099467e1f0d839d1f14383949fa1fcaf716da480c2e6f3bf7a20f35d76776ad952183ea50df24b07fda4ef32a13219d58a798ced11241b6bca5da34916de14dd03255605174e992cc3871b1fa531f52d3093f6363ddf20baa02ebd363ca42b06e67b0392ad673345ac4941d13402b20289ea6ec3b31356db2a3ead9f50bf3a6e8d68ee0d85d0c4cdb83f6b929b36c1bc60eb0215fcf08f64d4e9dd162f3ba1cdc39d0a733c7cb5674ccea372b3dff064c31a2a1be9a3754a6fb7903bdf3da33ed6c514316e09718d9d2195ed4092db60eb33086e505bb27f881682db7276af0ad16fb287d624813188793aff880b6d42e6f0773fd5e76f936d8c47bed697e053e4b94dfbb893334a6a7999be400c139bfc040992025492c49e9f12a6365296bac4e3f5f0190838ac75e175632c2698c6b344c55eec6198d826b6bb5e5661655f87f6d6f7052490648133ebc16ee83d25d102e91318ad6d8d6fc111f367368f4412818071cde8894728c020fba710ccd4d2f61df022288730aac11f4aac76985623576f5b8d67368269a39d28e82ed1675e52a000e2747b30ea90893e850c7ff45e19d7fcc14471bafefe5f6e70065505d67989d242ee95360f6037ee855ccbd23d09c671e9388620eccd0be6d0949510805705942da321597f349deb253d5d9cd8f20c4abd389b03566adf6f7ad8ed0536d02bff089ee47867ef431da925d5693a5f1b17ed4d287c99a2a557be6afd4cf94fedbd2c5622d4fb2290d50651288509634ff4e5f95c413f4db04fe4514cd0b2b3e6858cd6b0c48233bfec5a858293fa42582a28817292dbf1907ccd4500b173996711a4d57778218b3d361dd0279fe31a0f010bbf63e0cf0d0dec68e40e5b29bcabd7fd93132c79038749fcd363dad2901b368792d909d388569a6e54d6401baf0d15042b0561b2417adc00a27cf5d38f2ff686a445dddf11757f48914671e92b9a02e75432a2b24401387f049437633fa20df17049ff7d592a0f9e91659110a9e43f32b66de0dbb37f6071ae56c664ce7bc41852400cead90d8ed2e9696c102e1a9b91cfb7bfa7193cd58a6b8bb870fa51070f1ceb3ac3f1df6b47160c83b2cfed4c741f040eb0348e26692341eec06b8a37009b0989b1428ee495488345f8eb15eaa1d74f4993c018a5f057589407e47b86f40ff47c3b107e869fc2fdeb39da95a974fee7ba3fc84e4e23a9f4a4f3958c896bfe746ff68407d40ae7a774ee7a7b2b0122fb56facc1c30371e0ae7e5389d1b0ae74177bfffe0a150f758549c68516097fdbc3c3746d5229cf5315124ab834598c17b7cde698b7738fe916071ba66f26fcb492f71b072a1fba0912700abcdbff4d93cc718177e9a673459c549be762d3a90f7cb3328aaa57fc8fd22f3e827c01c8333acad66ad5a99927680a118db39b4fa27f5ecaed28db110ccc859f8fa3041c12fe5515e22ad115ebc5737d64512f8017f9ee96b55e90f99446c1079ce67ddfb311237131804d66c0dcf3f932a6a0c4d3afbf4c81defe864a3315416c77e5503e3cd5e7c1c5842ef04b0948c42d83139a06ae4a85dbcae04755e9e0d06733c09d03f8f8c881db82801e27f98a35794e4ca4210c516cdd827a6820da12a981cbd6a15f4cf7d58f222d7f09f4ba60445c65da22f7da663b3768f160c356201791abad11f546a97ce07682763a44c9b36384875d15ea87694af6c7e0a615dc718fab1017c38f90bcc88004b3d560452a976c22be26f475286daf9a43e1e5968f491368f3b733539aaa264ed5be5d04d736882558c206acb46abcf87db0e1a0cf5e9e627858f3a4c7cef2da32277c7844069a231a0f8c03a2369157f25984be14376d0733ecfd4e51e562c6baac9780d015f4b06bcdcb7ed05163e9c038a2138578e194fdd58249acaf96a4d0a9fb30e9431dcce4ce698ec5ffae589c7a3c7dfef8d8ade2331dd325cc8908b3d1a707743f16be0ae09978e2a89ea61f7b82aea2f7fdfddc9c5434fc2861fb1466fc5efd09c77a8c1ed6705bc942747c9837141fb67fd1738506460d8288885e2e2a15c4c5ae6bf076daa848e53af4e940f0b47c59bda5ecafe125123c372aadb46cdf7daeca9160e7232a4134340d9459ae91cb7f6cbf8bd8a22f457af938e34e1f91517c0c6625b199d91f6bb5bb22aac8346e1793ce1db75d4c48e1281ed81f43dab9de83fc3547966e5ef30874456a545a63ac8dd5bfbe5f0769ee79824c6a39485d7f5bade85b7cb88346195e0c39ff6a5099fe6cf22391c3b7e4c0e9226be8de22a17924225fa725d2ae4605f321b88196433b74300c89ed14bfd79079e7297c666ef1d39960583beff3d7f3f73a6f09ef54ce9b6f3b6c887bc6379833b66c0b491fe282c50aca239aecbabd88a86216c9f95762c38bc478133a43839999155e0407efb0ec135ba8d1e5f6c4472ac33cbdda00a25ff1c1919c46dc93652679802a46d9ef57add23dd5f6ebc407481c1b9e865a884ae470189d6d60a8de655de264ce7fb49d8e41d71477fa1c503891ea6eeccac98c79df528c56840911abdc12dbeb4d2a1dbdd83ebfda89c2e3dce3a5882c17ff61d27cc1aca1f4144b341578dc22a4de2d82ce23d0c0d9a3f265ca3793935613fbd79356d3cda0f7ed615e00229d8e11266eb8c21f94c6b1ef5dbdce98f475b75dc0dac6675142d495754ccb1e3cea5212475fe7cd8bd411f5c3372dab2d04e385308e0f3804856e3ff3b54cb277683f520b8494cbbfa7f51d4147e189f8d837dcbfdb7c57bc587f5ed1a718073edc5744b2d5439a1590c92e6cf8220f1d04f71281acfa2c8800f36829ab17772319da2f960d8a4cb1ed1302f243e754a35bf8b50c7ada7934208bfbafc5247ef22f9464a342abd03e8894c5546488fb60e62056e9d63bf51ab13e9f025848a15249102cfe2d5e0cedf50b1938c784fbf84c4eaeb6ec109750b02ca2fbec05262a65222068de24a172e2a54806944d87cc129ad7cb147bcfc2f99b9ebd9e51d76b22bce26a668f548d336a2c19a5808732a1b0066c2ef0780875b0d7e03f182bc1afb3780cdbf1b45e693db87bc2dfc423dfc2aca35c61340f431b846bf9f51a21f2d9c9242a7f3628464d47dedfbb48a2a38012c06383da4af042a0c4e09303f1a5d7ae74a2194340f39b4c09d34689d88c0a64f05cb746a13ee0d2537883beb6413f87a13c016852822082b62e3d7a8c56b1b5485ee5ba3187fdebb2027ecd46f9154e57b2de530ad27fd15823a13c6f70181499a8a12a52389b36ea5c0233502bed573f12db17c090e5bdfea8331d1efa298bbb9fc6b9c9279f69f8ee36c3bd72e77a7d23b97ba42cde1e3ddd23d0fa76a591bf87e5f3e4e64c8588fd2d16f24c1edb7daa089ce65d75baea58beb73a66353b718287216634538d8299ef3bbeeda43d5f6bf624fe7ac6af64b8a19dcc08fb847b6339f75f4f1cc46ea56bb9efa2d295e0c2b4f39888acc02ef123be3fb20ccd27c4ec3eccd7f896b616b219659015dc2e8a290e8d3502b0fd4977d286f9755231149c903de58ccd326d54012b93d8a24efb757e5babaa55ce4eaa461367471d75b3fb071057f6d903457ac06e99f307d4f446a0076700c2f07e8b87e3855aa06c85171676321798c3835e99d9517139681eb890ff66251125a18a223adcbfbac410b88e95fe4dbbd3a2411feaea551b039314a2fd6e58873df83c609631d28d914baee21f99b479fb875d0170735dfa479940f4abe804385210db96043417e1f3c372bddd612d3a618dfdb1e477cfea3ca28f352f2935402c2adeaf9ce5d288f462b18924c5306bb8a1b6eee3f20ddac050e3dc358ce99439c7b48176ab18b58719421ddd893b79708ab2e8e3d6a118c28ae638b3b742d3c314b0c5a27c7a26ce0a5b192f24b1fa898b397ff6d84aee98a4af1763f24c766a462c3f3cfc0d8b337ae38a0e93361de8133334f6a49536f2f64aaeb4ea3f0d6c95b2eec5d228c76fd1129b94ceb1a47e8f24a5e87d72777a471b6163c9e2bb6d809256da53e56abd252d69754226b66b86db5dd8fc75dc1867675e799d8f9dc2a6032ced81f15323e31bf068469f167cacbc88c5195b31c694563e3ad23d74b985b968354b8d3440431d53b731059aae9cf0ee475bd5a9548bed9bf41ff7c3a8bd4d74fe84192c67080950f927aaf4b01706163002e9fbb92bd13e26d44bd9004720efcd98a7b2f258f067658347e3b1aeb3ab99ec716707be3a4d8ce937bf368642a9b4686524da3021b81067e69f032ea7a658e33023cf15064e92c273e99b03f34d5266464bc4f3cafb4ac394b4eb4afb4b87a50c560ab42a96d2fa7536b20d743f5683afe628c4f96c634e3878eb6b3abe34c82ee2cc5c83289e3a82dcb9e117734193740649974aca0cb3c0fafec0fcf12e3700cc9b0e4ec025bfa2e5b97d037325d29aca05118487fa6a927857f51dac659afe4b26e8c0d2caac3012a6a7886a18b8a1fbefc6f1f88cea7f256c6b6c9869e3d5637fbf13e4191fd3ee7d4550532bf678d8eea3237ba94bf02e97daa6f9a799120d5fb06cae63a73f2d59e6a46efbacbe9169178220711a2a7cec06d7a191f9457f92c83d6dcfb05908bf709d551d9cb24c69e997ae1d2b4b30f9e0ac4371faed280f9e72f37c1d5c14f2d978c72911e2f251fbe8cd2f6530bf4897fc03f09e22eaf0341946d00fa3280221ac730a54b38d4e196f3df54d97b07d5388597b47e233cc50807665ef4f66fe5fc24ff618a710d0d8b1a934633053832d5c994bd0a884d05a08c6e7b6a983a4efe695ce76b0e2961c37e2fa5965c6fb22b9c3c5c52ac90dcf831d563d34889d85342e6acc40fd194ec799d221f33965e01ef1ad3367c6c73e0287578f702c4b6f3da8ba8eab00feb29abcb6754d99958e15c8d23f0cd596b0f6f42ca790087a1c83647f3f18aded8666aca260fd32038dc86a0884e43617927fbafab7ba90036f6a613b68745fea3734d9199f42642f8e638f6ef37ece899105bcc92007a138d679ed89b13bf9f83158fb98bda7bf59262786e7960f28e089a6b8bbacf44d5c8657b17ecf57363249f4b420e7147371668b9a82f2ec34ebffa8ddb54da560b5f6f666c67ce94fd220236bbcf1a6ca3c6995bae7dc8b9abd1640cda5584c62278995b6acbdd30093821f4411601aa0dfa21630f5c3e33b3d382a6c9eb3eb1668d8ee665f2ee175b874bb7f9597988f5625599099328980baa252a81ca0923e121e9fbde6b718fe4b3e1919af480b78a266e21ded1856d8f3c4b883e80912fde199d5322c0dbcb334fa4241d53a4375f8bd70b2023e50cf123fcc45f1a567b96110f3c513505794ce5a374e3bfffacfcc70c08a965dcf7e0170207f4b7331844d4250888acd1259f63933b8423c8cf255af82cc8c1e5d736f559766d2f8cd0f59d8c53f8271c0c8d3e1218812664003326f1b0edec4a21fdeafb70d474aba25423e18029edb4e3e51f5e4f9d004d1ac0fcb077ec7c548e1e3e2a3481a6d553f45c7c548a61dbb05128fdf4c87c8848854433e706cfcb1da04aa9ddb7ec85527b95032a90b354d519e154fcd3e251f369ab00c1b00a2ade925a47c37aa3e498fe20df0859b78e566c882fc4093a97c58420f12786c66fa71523a6bee7a2930c662471ada7f15bad2a97e1bb148140f7f4d1656dc743f6649c46a55955488f2bfbcf9ec7eedf1ccfe89830b442924736b423ce611cfec6d5c80d7bea0187e43f6fa00067c6253af3606913781a9ef65a24af2dfb61b2487abc98231ee41d03b3d599f98ccb4a3b60127b25974a0f3e8faed9b76102b8788465a072204fdd6c5571860a7e0e862dee48f847a7245f4e95e4e765484f298987dc77b76df73db05f59ccd4a59fb060c7acd15c3c626005d71241cf64b96fcfc249f050d03978931d66bee454bff120a7bc9de9b6caf1cb08f278a2096559cc5756cb0d06a8c20faca247366958f7c4152d4e1ad45e980e77a3f597a38f348878c1c215b0f936374bf4bd9129ce9b61bb7116797a3932d2f865b67b5c7d9e0b08484e00f401c229217129f568d4f8182c0c3ddc2f2ab5b128b46dca1b1a16988f33c84e7a15833a7d8e4d000d9af2c52cb1c09948b783aae0580342cf78310e574d95b97424cbfbf0b4d66e9a1f485df644dda4ab1dc9bc51ff98029923483e5b3b8939c20ff6c075e15dde57de1c4d4efd47ef2b4c9b2c0fce8646b0bf949cba95eacaf6196f2d77a30e693bafbb3005b1fd3f40a579328334c9c439ee99528f8e70915838f2eea55857dc7925811c21e17828c3eb318adf1aa980c818fcff05ec35b86d5348968924f8da730ed1d06b45d6af74cbe0ba77a0a256897baf1515ee8f700c846ffe102fd60e4dccb26c29ddcfd262b379c878f16684472966eb1e337db9eba172715bf6e4a1249a8cd7bb40798c28cbc0e6dfbf1a9ff15899305d3e8537faa2bbdccfaf6f8ea8c6a60f25560122b732bf4430378dd2033b1868055075f0b7f2b273536f71254e4698f633ffe08e46a6167e7ecac7a49b292c535ecc7f01fb9249ac6a7fc10d6aa4a71adea4923b90d43cfe9331b9a467e75565348f31abf9e496b4f9f3a8b88fd78dbe227cdf0f0a4bb27068287ace80d602e504cf1af176bba20b18876d8f7530fa9cd584e2b5654c90c7ccfb94d9c4ec8226f5d6c9fcb43602f8eec9e1f49a4627aeae2258bbbfaad94b87dbd351b5b8ce3f52e615daff25c4a1c3f7d917e40beaa0af99975064945ec3b28fb5d5a2890744f4d78701482246f6b234013d214c779a1385037d33990c6c5b7232706ec8b5cff07807546ad5b78fc26f7732494cdda63158a0d9f5d76562b89a701b944f495ad15686331d73e53aa3c3713b2a18e66a3d150199ab47b33bbd2cada4c4749f059950a1ffbfec8e7d65cf111091d642fcc0161656aeb257a56a16624e32e90fb7ac176d4f86595608ac0b08b2303ae8a8c169a8c3c42c3ad92a9bad3c1ed144bdb4f5a894fba461b678856e84ab82da6518182d5a58174e5eae724adc1a6b51875b83eea62c22a6b8bdb53391b7138b08c847062b8b67f1b6b463e8ae52bcb9acf805bf55a0e5e477657aea6e4b228e09f9cb5e47521e1e0d304fc2d6d6d398d0304e472150468fb3da9c96bf7bc7522dfc1c1737c633214866880529981d313df5fbb00b0c423cebcdc2dffb795d2a3e61ca307594b1b05a5cf373251d1f622a62f8bc88d4408c6d3fc83356627cefbecf1f6d932c8e28b203b215546e322d5d904bd9f6d4d5819e4518f4c65846cc20706ec0e425a458f1384735a791c2f2e7ae9d99fc384782f28d4cbae4988201c946476b224dddcb5a562b057307ef02079033a54f4d8d89f931e82d7f26eb4fe570eac609beea73b3dd17de04de23e99fb318cbb1f71f7c7a4b1a8aae7dba4546a312646821ee034d2bb35649fe3efd8adc5402801a496ce3fe373ac1e206bbd2ad8dc39012a384bcefa4868caa97e9c2dacab06c06b14c890146fbd3b5da63627a6af1ae83be9b7e2f8d0093d34f250455477ff9113e8c34d481b6f787365ea7019cb80b31b0ab93d1b9a50a57bb8c76e553798710b7345e3a672d6737f4a308d13656bcc5f3c2c6d71091ff944114c830728850fca5a70039192ea2ff1ea481d1eacbbbf0640dbb7663e41e9ebde0e7743ab84f184ff83dabfb2b8a6393c877d90b5936ae714695791a2c0886f2fff337fff12df2a844fc90b56409d254b829d185173a1653c07f5f5c322b90aa7c285f4772515c0c647db8394af8c79819544b2f7d53c8a5d8a7922971eabced88b21751e2bad8e7638d6ab6a767f7f3ec994b8f418784ad8bbb6a4bc7c9a3ef1c795c0ac5a910d58f4ae64f687a476aef7517afac88ef52e846b4e6e65a1a90dbb37cecb677dee4c1a13c9265f1feba5562a8cfa27da67d5eed0801e3d22309c59448406a49f5099902401752443ea123f918965468abe9945482a591d91ba06576af43cd1867e8a484f0c001b90e09455d10bd309749187baa823e45130d23b7c096dedb3fc47eb000b20c5222536265308907b96add7fdb7512f266e72de8f3bae351c097de79b1faaa95d4e4ed6550af49812955fe2c22a9f252c8d3f306e7156691a47b496508dfecab4649916f609b4e3cd6aacda8cb0ba2b7736bcaa32d18720d91815686703981bdd1b32a2cc0229367554095e170a4c5742818aef40710f2bed4e563af5d82e5167c82ada75f4c79ba4cbe4121269735d907f6cc462bc18a6f62177c312f095edbda00646acba969d744dec7ae947fa94821ba3aaabf82fa4ecff020e0a0a222bcf1d91c52ed9d3421eacd14dc0f54cd07652455cb2c756da50d3fa5f9ad5402673270d3196dde522fd941e67a11634c7a40c59d001676def1f409486f9f93f2183c4b5ce610c1d8f847a9df8cb26e556420d75cb5786b87f6955fe6b355fa4a1cda01ae1f406d419644e8ab2e85b4f42dca1f9e4b99aa06f588ac12b6e890299d94944c6e691a6834a03c93f388ae8f10d3de1404767d960dc0b65ce2379f850e161bf0aec94167b48a4939b8a810bf02ae0ec22c7f2b1e08103049bd20f47b372743c3106a0398b7bb488d7e96ca711f37084eedb5d66061f2aeb89cedcc1e9da9e89dc3214bdfc3531af802f51eaec0aa6d173d7e19ed957bd18728a0825bcf4db3cdb302295eff12c89649e6aecee0a5546c06cdecf087776957022e7b2912839a845c8a9755cb7f9074c0568f5d17aca2cb2df7c36b6ddcafc66930cb01be19b1a767083ffb4d0c5c0e968cb15c9744f054d16d9cc94d145a43fa9dcdca67c81e56a697ca12f620deb152881e02d9462a54dc1a3457a5261abf967bfe24cf63fe5ebd94c11e77dac586f73718e052716abb89b0f99d6b4fa08f571ba9f315ede40750edbf848d7b753ef018676e0ef87b66e98dc2d0698c8ad8aecf10bac098e97468b1244dfd7976735aaa664b888abea9bd8f427ef96a00399c2a83f66c123d01ec6d5a9dc166baca928bd4550d76e616c51a0527c1664feb03e3e72d290eaf3aea8e81b9df367c996fa0664cc7a2febfbf0c2cd3f2acb9d07e4b28168864bc13f1c385a63f73c0f6e008cd02cc9347be2f03fd37a6e201e8b401f6780230b57d6d5f5e9e2303ac2d24c991347794a48e19727c2271f3940b4eb8ef4d23b2df7f60ec57b480a5d07619c459f8e948c17208994d9d6eeba5eb66083a5c1c8c521a7a0cec0ac31193c5ddc3315ce8fb2ee8ee43d2b4b7a254ceeea45b2563aae7de2a1b1f48fd45db60d3e8c0f92c550c3bc283f547caba8669efeb4ed749aef55fb934c93dfc4a0dbd7439751cfcb9161f3d88b5b6d1f31710db8a897d16380a476c80444911a286543438a7efa325d57f3f234b238c0659d44ca2d7ea385e0cba0b70e1d81952eb404947171e19ad25211c480d55b28a2ace0ca8621cd421b5b3b6e4567e90e9088f64408c7355a3bae88da0bab9c2c846940e272aee49fb6ee51fa7621c6417fc50eae518379c5015b799f80fdd5909aaf8e65bbffd3b1d2f032b72ede8a2aeea15f55e254963848f84e0941f1b2e769dc0723b702864ddef2abf0fa09341452424ed0c22763460f4bea7089adb9703742a0bf2cbdcacd41c2a6ec64166cd70b235a9d745b48db169c2f98739126ff7d329d1e6159afb812a9de493f9f5a5ef7e1b055ae29c94c6c76028e8f3983843d0715d3c5f959cbc2e61c373563b8e2f99ab7105381868db54502c1c09d1d493dede6d5fb08f4c4af8991e5401c3a5d76b168ae8cf5af20adf79668a4f3094933a3fc1cb8ea247af4f27ad272b643879aa0c409302078e8e61c1b32256875f06de6136176597755e85c314805faa77625df1455ed062f09c130daab788f7ead9c148f87bffd79f246838b1bc4ba66948e5706c232b41bd085095873eee9287403d4e3c16a4c166d77b6e27a0f757686014e3df65e6ce2f636bc8637d0ec58bec87527954f2386ee03ee52c39a2153fb65529d3a0f318a508ad3987cafa51e03707a75ab5a255023b148f1dc85f92d047cd35c72c7d1f927bd78b046216560017212e53ca21dd6e5e86550d803f82305a0279e6c27a0236be19bf7fea5bf0fa3c87b0904b9dd4ca1b0fe6d618ec2f26e5d38c5ea6e3a20eecaa4609616a393fb097f2d9aafb23eec6747c7db5b21b3189262d6e1e6e58faf5a3bff26466afc847992930ac3b64fcc9457b9bef8a16d5f4ca03cf9209fd14573d63c0fd9a8963d047d468983dfe3c30f493e00582e45490af7197537a7ec718f8a3e973f5905ad9ade13d0668107a662ada6c5e703aeaa39ea61336bf14c7300d764d2610f2dbb8d9625da605f3561f6552ef1d6b3258ccc18ff74a0e332e5a9b6156c77b6cc46022b61b35e1723eeb748e375840d3a305080cc05b125c417763f7541cee3c98408c86696ee540c47b1345a012ac666dcf57b19ecc6d187996878aecf5eb6029d7ad6d30d48ce58801d33be12d1037767f51b800c0cb717bb7e092aee71c13d2db8d6bb58d6f693dd4d9f19f4aaf01a89113d85a894a4a58c16b37b60212fa067855793d26f81d96c19e171aae70a75fbccb590af487b670b33e257762d835daeb472bd16e55da1eccb7e2baca622bad583f0ac3a99bf0550291d2819266c14c4ec82f28e4111d91898e7e7e7e389b78facd4021a57d231508b38f496a77cf4f07a167831af014c914f7b67ea6aab9d652dd419fd6c5faca1ee40254ffaec7aba2f80abd7f88d50f7fac621db0ab80d4a13cc7fa9f3de3925d74bd2c1ae43df3b579929f4f4a589b074abed9d83a4388ad5948a95c2f06d2ffdbe76390ef54de1ba31f643f95a366212fe0fb5a2a29df9109fc7ef405a65f6e80d50f5240e4078b8c428084893ac609964193b8f63a8ad275b32b412d7ab22ccc0c6c92680797a7fac759532fea98014edf4eb0fb5d518af2963fa651d284f86728572f5af24e0a566d55cbe2449378a02b5df3cc5d9bc87570a6c9318e8a0358fe1d365885a5d8c8df421bb0a4fb90e6753b0ad75e80e3ba6ef92ea02252b314929cb13e89640ff16d067ae5f06fe15e5287de40ae381c191c1de746c0afd222e68158385880bcfb535ea5ad209d44eb7a69f00210f64821ec1991dab413aa4be95e3b89175bd7da67080580781a623dc66b03f9bea77d4535a409860f65e787d9025c5b640cc5cdf2da25eae1a88b85b755aac647b41a4146354cda2163b761904b50d840c2e5971f70388d1027dee8a0ff8cacd20c456219047a651f52f0cbba9805f7398a936af434d1ec3abca24452ab1cabb9003dd21dd80113477ab7285e0e94ecc05a77150a3eefe3ce62df4af43ecfb661be34869f3b1ce9e838b2e0edf67d12f83316dcfb996306dfeb9e686f264e69db71eac5771995aca3169c913a75e2bce639c8b70344559da0ada2fce7d2f474792102aa8e210343e157c77fdefe4a46ba11bdff62bc214976f48c424337ba75ffeba61618b6a80ddffcf56f040dc49eaf741b4c1956fe33c8fbda7b5c2d044d8407f2998bf88068f89ad5ec677b599192b379812c1a38a0ca324597df139672d26f01a9315aba0b29c113b8f078b494da0ce34d254e4473e9488924f99794ee920a718996a65f66086c8de388e9c2ef2fba969f4f46f299314acda60eba535d80a7f9151015c5e7b0f8fc5bd520c5517f04733fb99629010ec50780f1a146dc1444f6b736f35d74790a6bad48b23cb734cfc7043cfdb92882216b1e9ebed611a37498546d1fbe84466bffb2374021f8ac6881d0cece8ded4133e630c88b782941e39b8e9c97d07e11379ed2b8583e3f874665f7cbd59cd30cddb67ff155a4c7dbed3be1285e5ec0cc0ca66eb814a78308f6ea71c697b3d0c66720effc0559c4b4dcae02e8011ae7d56a6af047de73f6c12a4b3cc3e1f34221a68b8d035881b2c096c09497a2cfaa265b71f9e3f38adb88f19ce12290aab2951d0476ee42ec2e4aa62d8b130513edc66bc95ab5c395a873949dbc2521cd23570e74ff3c079f8ee81dc3337b6f74362ed1daf56cf2f1ad87eab0bd0eaf5f304c6b15697432886c4edc5b4c6d27f35eb8d8836514ca56a8efcd205b258d6abd9dcd03d687d0a35928a454dcbeeea8f3d82394db4e53fc62a8517a4132958112a97e9eea41dfc588e60439049e5590488f558ad911b5181346d97ce3b3ed47bed3c0e3de00ca514b977d6ef1d0cf7186e2e4be4ad8c1c27c49703439361ca7a5f35ed85d5c85b60ca20586fda51f8a105179e454365117b05cab5ba8fadf7c9c14e07f74c4a1635f6963ef3a790054044850d68f5d71798dd335b583f66154f27afb0e214e9b62e712400fb65d23b95de12ae92afee9e09eaed8ce963ab21affc332abcd167a7c60b87a6f687530be71de776b78818f4c9629243f34eae30cef65aa74cfcac92d741007992cdab213feea2c97ee885a92fac007b89e7a6f92856f1cc407b9d430a1d0e034c855aae81e35e2fd7f36db8810369a93d121ead777535ae967e1ee157c010042780f3d71f7464428fda262e0cdd0c2b649cd6cfca65ce4199590456a5905be279d3249a63048e127f4d0d0c54bddaf55ce757c0045f353438fb82bacfdbbda918ffc7c7b3853110444940afd47e2caa1d6f635b4ad407367b1ec25c08b68bc5a2def512fbe5b7132750921dfde6ff2b66aa7b97545f1c894cd0739fded9e19a20bca9d09fd8d4e320e2eb699e112c3bdb7b8ab4ff612114fb07c975593575bce9743d8f2e4876260ecb62a1bc2bc8ab28dead6b2a0ac284cff3e64013e1f6bcee8acf91314e90e0d929dff0759b85804d7c457b1aa8c3f50673a225964b1b4582650679da47d50f5419c7bc315ede430bd35106eba544ebc79170437a71bedbebe190e525b908d36acc6c28f67243fcbed7f2358c56c664e75df213e617213475e73aa62570c22698ee96365041a532e95f33077aa167fe9bc23f78b418fe9377acac7de9eb75988cc0da75dd20e0730e8186739e9f10707b440d5c768bcda6a263f263ae743d412a78dc88d53e731cb76033d94324199a00c4abdb13fec2b5d1cfcff7e91c1acdffa73bf3c7176bdfca0424bd1f8d27bdff35387ebd398e719705e5fadf9e576789ad5d1d2db51dd1958610f7b3073a32f10eba5547b65ad1ad0c552b1de6e63705a49ade65cd0ea84646bacf96fab106ba4854b78e1b6a2fc40c7d23981d8120c29167e7f71e9eeb17ce53ec54ed3a50b2ecb0201684bfc1b7a142808aa33ea0ded0391bbd1b41c2c36608ce5db74fc22c579323e87f92577b6bf63fe08fefa161b78437e7bc7a113d7f497a5379af4550f96220edc14259fc3c65230490b9208593ef5fdb889734d1e1c1c879e60c0b1eea12dd005481f435d60ff072be3e1e66330646fd737484101852b23f92a731e23f7723ad93d1d41f0f7e7211234cdaafe543fd6f07cda1c3df8c3ea7dc7da269cb4ce0d620665e94e278da048cabb5d0d6ef494cbabde196510a3d9640176b6db9f46c9279aaac415ed6b2bb2cdd1b38518326102a3c94ce5d0788f972e674387ab5035288c49a4b250a3215e82a96e1ecb3538c4b113cfca30f178d7682a5403424b51994b966eaf5445b42a07d35f54bfcc799c453bc6c658bf1726d2d378a252cb8138381d6064a67b2e0fcd88cb17a1b8389a05c9de88fc4819c8f8bc70fd9d2346fb7d1ba45c679d80e05a4d12c2d9430d5ae564f8742b91bca85a08faacebae147d29ac3060b616373665b5b3427fd246ae6b6a440e08ac6581e7c001d653cf4b055d1cfdbd6bf8e7a1fb04e7824ad147f21c3d3f0b9325942db4a8a1c90a2cef42bed98def1a733f01d17f4747b971657348192aca8f09e4bae35dea080e156ea4272144c7c135573f6deb4f77b5b12775bd5b14ce571c93d49232338b0f8ffbae8237bb734b13cfafab0265c0501d260225565877c6aac99b262969b6d5b942473ffade80b3b2b23520acf5db362bf93e2310492d808aa1103a15539ffac0295c880c89f3ac37f69ca62f96eb2328173fb911686f02e94fb7e84a7821d8463696a5c7b3465ee8a530ca087b751bfb33f550a9814041456dbd9df2db6f3f1a30d990c9ebfea217b39ac29ea78aaa17e027e87b8bb334c680024698de464baf802edc76bedd4891e0206afb13749719130920cf7fd0f7924ea8010d8a18e7aa5cc204ac324f9eeee62119323e3163959bf0084e87be04e1551b296ceb7b27d7c72b135ab3d41348ae9e8f463d1ee05c120f4c548b11765f38811d8d77ef38ee3ac1ec2164c0b53731c0dfbc15d773e00221cd6a070192a1cbfaabc470623abcb10a5a334b679bd00e632964dbc09741f777b466f4fa91b1902fbf7ceb5e50102a052d65bed5103ded05302386b3867584a5a6152a61009ac9b6a8099a5c2890ca7605283978e0c613c3c1255b69316e8ff2acf47fbfe05a3be3c2180a8025a5ea0c3803c68546a55d3149981edea1d33f9a4f464d02c1794dde29b28235865c1527835b55012b6a042d79e0fb8b35a60799ab06fbffe431009e70e52ee76307385fddeb4101958204a1c670b6090d4c1bf15bcd61dc115acbd3dad0c64bd06a3bbcfddc975a9a8ace122df08f694873e1352960441fe35fbb206a0160e0c37b1c1123a9af93c5a43fbe6d4df10ef42f555f8f773f6108d8eca2e65865ceca1f704699c072881a5e381243b20a017bc06c3156aef8f47c7fc9815e7b69bc26cbea1962c4bf9f096fafc3efa56c1ee41b33d0e0ed2fd43c293036c521c1d214d28902f76b2c34b60d42ea860aadd3f3061b899f3eda954ac75717eb3e64c34fdaf6bd0936f857f8619c3772971acf61213435e51e370d80fb41732571cd76fa1f938064a71efce074066be90ca07ccf23b4ff1b221fd15175a0787c0f1e16e14884a4334bb05e3531c32c0f0049ccab500286b79a8be4aaa4ed6c150646af74468b57bd91ccb9a8e357eef3861099a672bed73a6f241f915b13397e6feb189592c3ac3b15977e3cbc918e9a916df70c23217357e0bfd7efb42235032e969126d64d5e5a921d773145468fb8a689c543e4ecae137cdf5b670bbd66d636db05c6e6e59d283821a2aeb1b259bba4b482e7967de721d887863ab3082e2f706628f67dee576913e72b6561b2d0ed6236b8130cea33c5831c160a766535ec2d25ae7a4ad95fb6ca9e2286875110df7ac7c1aebcec40996392b43d04c146785d6d772b2dde63939a4589d87d9ec15576b2e0b53fcd747bd2674af8e467e32ed0f9cb15d30dd87c5decd78d1b6246c454a45c107adf4e1f2f52bbb1ef00a75c56611d2a6bfeedbfbaf58b1cea4ac42bd30b98a0f429a17f42ed859398c13c200a932060bc76400eb129c8add05cc767818fac600e08ccdd441098c65641710454d598fb468eb03dedef6c908ddfb3f5dc9f3b8cba03b08698ed92f0131dba08b316aee98f66b36e830b688be81aebabd8bae0187f25a6b18bdc274fbd51c0ff3de9c416a27b33c865cd8ec25208c252e6589b68e94b3edc112cbfddc0de97046745bfae2dd6499e172752657823bc709ebc90a0fe64fef5279d3c5d8b0f9c4181e17571dab3587bd51d35b0295b87e7c94e75ca352aaba060f660b9c36fdab15c2850b35a31da8f7d2cf779f0c891ce47ac86d3202c68c590f1aee15a1da6ad9bc37e51594f448f242e937ad53f9ad6a92c5bc91abfc3717ebbcac49d58935b28a94ba3a92c8c9db6d5a6beae4ba897df36826d8aa2dcf1a08fa0521738a8b8121d43a5b068c9f052b621e0503321c71ca3c3479f98ad35947ca2a2cf0a223c7f0f5215a3f5cae2c23e480fa310f7c212f15060ac672e70b9633cfc6fba1affb2ce947d36de21a2eb6c7f298709ab10be24c84e25dd2391fbb87db94e20762a73297f2e5c4fe93565beb65ed99310dfc3341da02567fb1c4505483a23da7a9b2c95c34d4e5b601a39fe9ec73640a2020248e518d0b3cfe043ec8fb8d17b1d3240bd42b30ccdf360632c9a73ed2e3eecc19b0ca1fbb55c65abe794211ea6601f58dd77493bcae720bb94715194383324bda6653fc9a382899f8eac96b7e0f9961bd59fef99eb659030147002195c4658cb49063ca978a8cd89bbd5cacae86838162696453662919336a7dde219f2ea7b2aa51a058439cac7404a995f177e40f6212f79f642d9b7afc7e9f4b647307b7555d230a8784e957403210c277ffea59b568aa532086f567ce7fc82f59a85e38c846753f839d798afa94d428c4900eeb332cad89a92a0d3a954431ba34ed071ef8d6a1aed432233b8c8f55db0452727e9803808c0ed437a7abdefde18dd6c76f9e29e586570b6bccd3547ad795548f1de9178a64e64b7eae2039d1e969c628777845a40da0813cf7e0b0bc89c9670cb4b228fc1f78597b264dd4945e0a429b0c0238995ee84f1f152949e4c51f2dbd8ebcb38d0bbbb356a0b9ad67033c902d03965e7d3b4e92ec39888b6804a0441849543fad884cb4b1436bc8fd7a60a73b04fb0220b6eddd3fe314dfa00aec535dc41c31fc0c87dc3d58d60463dda65b8edca761aee3e4cb20b397512731e9aecf067b3de797d727935951a2063e66ed718e333945f6d2ba6640aa1ddc50156742f3384d782cb3a2657a45c98ea76c39d9a381671842fe680a949babc6a0e510a26af69129c2e885f5bbe0bf7532d7756f96d7d3c045386e2886f4c9d495251604d9fa9e97e4aafc24ba94fa3bf5c96aef3d75102815d695dd08041193e2b370a9f7be02d933f837c72645d3f10549c770929a71c68a3bb48d23aff9b8525832239ecb3005fa70281376f846107159953f2e7c34ff19cbe6b028ffcaf1ddf1aafbccd297d4e5126e8e7567ab5a80afa2efd21761531e0d161f5f0571283d63a4f2807c3ef341e1e83392fff313ba753a86a44151a721dc2da3ec9bc5010a2c9acd21b1005e3a647dfe21f3c1d575e67cfe2a2125c84467886b0c968842041e8794231b2062da8d34603e4c196a7628c31c4c4baafbae6e981278fedfa4fa52f482fd61a0ffda23ffd2afad17c6096d8f6a2eec65cba8fef795be9a7c176f28724df02abe0bbd8fea4633f40bc15d16678510315ab2718a86cb02f977d0fa86f6bc5beed894d570c78635da43d87d06e6d9e52d8c406da7e2bd8ea2adabbdda343cb5d66b916df067aceffeeb8fb8a30ae630c463ee958cce9872677d6c090de4d5cfc3719341721e0cc42c5298c439d3eaa4f8973f9ac7106ab09d7e288b43ee88bdd8dd606adb9c7c437da8bf88a04cdd04b3cfe303b113251fac6e44a6c7c5d6d2fca28bbd8e2be6a2649b9f84878d54a01f43a98f73b6d0765ed232578e77881074aba42e60a3c3fe5c1b121fcfb2b84ab3f6241abbcc2c5ab632c4bf1ff4e9f839bb8814f73fd752f3f78e413eeaa9432089debcb99dc148418db54226b0a3349842caa84501340b80c356b7e0686d10da9c7d48f70d73a572b2f61ccb538612586ae63d859f0030d957019630f694b3ed9c4fd35f1a87e8c42489f2a06ef5eb43acff0a58717303aef240a70309d1171881418f74b7645b6ddd57ef52c51a335a341d3e46fc231661a9e43645289a2f682b5ec5aa2d331c035dca05f5288ff7b945e7c2fd5fca7a9b556591a5a40c83bba5ea4b2581c65d9ce7675b5f40342c7d8ef33c6f5fab8b65d3e26e16ad6a19ec85834bb09bd13bdf81ea890e6442dc99bf16be8c20b852e9a46e3dfcc55683151a4cb4f4cf7487bca1ce54c930425b06eca11295159f92cfcf5ef59cff3ae68a6453af43a74646edbb28a79cb7c6461fedf4059d2147d8982cc140a1e9e5de99141cae70ef2cf07b8599e254934bfd8c18bec70364ace80cdc92620a4c777f09ab182768fb5b1fdc2ab313a44a49aa468c59ccfd05c6e3ff8d1aa5ebb55907802e648de3fe6b0572e30407414c98b241027d93262e99b93f91b6ad25bc7218a68ce1e12079d6e9895eca331bd50d12e48b4e732aed1b6224dc5e6f5f7c04aeb9492f9de0bd70aabd4c29ac4efeb11a85d01602895cf321ccfbc7695259bceb9b18c17f7f728bb354ef078ae06cfb173a2c3d102dffb899bee719e6af9e57cbe417f5606e17d96ef7f8d0fcc04706e7063d8b81ff53e9fca6264a0c99e0fef145b7be5f7b79d6bb9eccc30861861e9ead56ccba4548d943b946851949142f73d08af308b4d2c9ab60362a4c65fa5912c6a7dad1a6b1cdd222d31440bc6c64e2ef933fb01dc678f1b27898f84cb25bff582b9839e2b4a3a4d5eeedd9b8790dc5952ce170eacc2cae65b42671145338afd7fd75e87abbceda6afef9d9e4c005c5a3a90b88c1612d2da9d888d76c23c6a71b0a88696f4947de9364d132f1745dd79ee6d7984f3cf6589886a5416d18e891bb4ade79b3e6356ddab3edbca6fe1a9789dce4385a4671d7f5d4b0532c9b361e7c0557a8381772ea5a6d1854c45c4df265cb5bac9d2ce3776829f9419973a1c300fff2107f1ee68dd06f57896196a8a9841e6cfd97e92fa82f4665cc5128de4279e4a9f02b974b3abcf5eac2f7213f7b9ad495c7c2b187ce082459b31afbe348d8bd2c25c7b3c229bcb2e769c173baff7dca84b15fc363ec5ec2214f080a1c59841f599dea1e80afaacb970fd2baa6b3d329e4981cba02a163d5d833aef9b1239802761ca1c4e5135aa23b92459a70b3eb9aa58892d8f1f25f7d15e61f3a23b78a1c188ac6e1d8f62b8ff6033a65dd5c0eb94596c3776cbb9bd43175e3691522777f760b88e70597fd3c3362c53a3a224f4b7be79fc65421d00299de733dbcedc04f6f17699c357e9e6e63ec39344c34164fde4880ddc0e2763fdabcf362118d6cb4328cf93ea2ae38e56ea6ae720c47f0840cc606f09f8bc4ed34ebae3aa19040eb0822dfcfea1344c60c709958f26f887985676a0d7b58b0da462b76dbb82435a77b7b39f1ddd3016cfee4b9366b960aafad9f2717eb294db7539f52bc755c8eca11e0fc955048c29b22f96f097253afb6f16ad9f89591bbd0c328db75bfb6b8fe40419de00568a95c72ea15dbd76a3d4576fcf01bba24b120bf000eaa8598192763e682508015b9ffb70318bf07150f4921bc1b3db39e70f4e1fec19edbd84b2918bb65e56af2d85ebc9ec82b542da13e1d350e792e0ec81958747faa57648c5f81c4f5274482f30de913da7d559023d012bffd003f75e113a498c26f09cace1e56f19c9643511454ddb85eb6d0bf594bb1cebf77050aff1f9133d2eebdf5f14c2942297dc0d984b58f3f19490cb51e09bfd17de1ac5a33bca819d47c703ff55fe0eaf0e4646a3924a519e8aaf152c6fbdcb16a0452ca34da3259be2f134beb5255609c4d5c0359f29b23d8b44d3a7da2b4ba60ce42811eb4f32b3636ce0d184adccbfad6ec128fabbfe8d00103fef5f7f38fd927b6d5f88e0256b659658b829dd3a954ad67ee9b40fe0841d9133cabb2f9a4fb01163890a4034bee5aeaf2da429acdee8d429f16df70671f06c4848ef8ccd33cc85abdd3df218b2e82e2102876b3b4af369d5b6fac48004d6e197b3bfd7bcd4fb7a4c78b8c4096950ae608d9745d4765e0f984e1e4809eb0c49ec7e2cb74b1d3770a3b41ca0169d93f8a4df4ef149e4ba5f3e84d08da3b656cac640c53d0131bfbcd64d944d3353c2b66d82fc968fa13ef336dbe835a3d15ada3044dbb2476641b2195773e3fee7d4489b618add6733f171f36f4585e1cb6046b4aa6d25e6364f0f1f9fd5dc03b7a4232da0628a52216cbf6927fbf12794181187123a19abab20cfbeb04cfe11f66a89a05429194817dd95acdb90f3bdb37453c9898978588003588ff890c474480f9862431c58b1d312d29b6b0496252b05d812dd7de9dbc353522914cc4be94406d1dda8fb44b1a0c9d633d40fd2018952d37a80d936cc5dc22816a014923186ed866224f9c17fc32c7b498a88b36ef52169573f0b380e11a8f8f0f63a7db858fd6770f7da2c78ab4f49174230bbd7ff86de8a6f884a5953c158d53f31a6108b1f7ac053fd3b029bd6b4397aa0e3b1f7e3689423051db72847ba899de6ae1d05dbebb33fc3252146f074712c535ee45e87eb80576719f467b577f29b756967e208136fbe3d1ed7a8c82e028906d9626c00c49657b9a7afa8b3776b6e61bc0070b64cdcf812ecec9aeb86f10d17b7a33a034b4f641a445ae0e25be11ea8927af6d1843d519e50cfbeed479f0f79c91c367e6e937f05aeb3cfecac25b7efdab419415faf6965e338dfc9c0cb7a13f27696491268f075b4392e1974a6c18efd3f5caa8ed37d5191610e10b35b2b9e932eefbecd4f82d2451f37ba778cc015958430e62104c8cc41834b6488bd5e2863ec824dd85670cb682cd6ce26f431e4730c2144423def4594138c4e232518c4dc5e6d1fd3461c9b3e19953a2b18ee6eabf93d3e5b3e20f07591a6410a9e347084a63594ebc9f3f6f1ccfa145984b94a08ce0561941c54015a942b56651a31048f09da220ab012590c4971150bc51948d7d531fa2b68dd60bec00d29b95d7c2469c72423576d4bdd9351d131af45e9c9c30c6358bcf21b181e7b9907f80a3750e2cdfb686045ab3718e68ec49d7c68be6c78615e5413044ba3b64b5ccece82cc975a062d507f22c3f42470e1686b0c7978d16f146c7b1ce0c8e0a9fefd1b79b09c7a2ee7fb6bbb049cf3a411e42d477480f8de4c4d5bfbd35869ef40b21ada9e04f85f8ddf7ff9d8a44912858980060d3cbc9f54c1f867adad26aa9bf067835c923c41bfe14b0da8ab1021c5a5eb4a21cef3ac089f06d7f85f997bdba8c3e2c0354fb277159830187ffcbe3169d72457d828c024e5b763c715853aff04f8856013a6e8abc5d08514db72f80f24b45e375218b2f6c61085236f129df4d9451bff8a83231803aeafe39db5eba9ad9113048d182d0dbeb24d07b58d73c335fe7c90c21fab71ef0e865694619aca02feea231aedf3ef8b1c01fac723c5366c69791920afa6cedfe32ef1f292179a46a2327fe9cb1830317f8d7be7e7f12b39b1f1821845b99e47da941b0ff082dee58f90c6d03bc7550a8b436c05e30b3dff66eb2b4bd0ba2e746ffb582ccfc5671204c88bbb8ce8ea910dba758440f33be5b6246de71c4467193fcbdbea939fc37f4795abc8abe5198c0406b29738ed1b35e9d94f14ae3d0239b337680f1c35167203f5ef13f1d697ea07a163eb377c4c5db6b792a070409a9404ffb7f3f0083311384f622bcf0fba0d55e50604f1b6d4e9aebdfa08180c23acdd803b7305c2ad0717f238b14b5dc066217b42847712f48dc799bc6fff0f6b26caa29ad0d4c55c887e46b9fbfbef632d746db6b416e0a02eb7638d099d3ffa8e70be521acbfef5f63103e2af3f6c54cc3e209e9b28a68acb69a59586f352b4938f6e9af61ba1feae2f7a55a0b49d8e4b64536e6a45a9e1de321fec8dc33a4979153b0c5ea5418d63c0ed5292bee464b163077d1144e538d7cc99a084feb83079d0d6e3dffadcb2961be29cb70bd45037081f1d62dcd0bce7edd9249a37864bc141d6723bf1611216af9fc953439d1813e01b715482fa07d3585ea6b7bce4c6f6a6e2633ac1ed0a0a4d54dba50ba555dbc55b9bb1f0c6f22c14f95033291315137c373c1e538c9fff3dc2f56eea4312b1f75fdda33372d0f62bb7e5247478efb6b6a848cf3a40b5b4608551d4d823fe93701da54df70490d77aa9e3cab15a21e15ce938c340f6931f71c823655eefbdb109a2655f2bebcc70763137f4498b690f415b6d6c28f67882cc31d91e2a9a78570b4f3f15923964446c587961d7ed06ec2f3f59d9db853e15b90bdcae8f2af7367641a80d09df2b51b4f87153aee0edaf49eec539ff35950146da4b81e65550ccd946bf3cdc03e796bb8a6711cb6f1ff0484dcb01b0d1d86f31716b94414cbc39115e09be7cbda56553a74eee392dc3069ee6635b8db4f9d9586f1b06e31086231777b9c0ea98bd6daa03e3065f4f57bed5f3bd1274966c06fd63110c00e322eaa706671e47e74bafda91b144128a10acaa25d98454e60d4b836abca17b44209a651fbbb75fc73db8bb32596f6072e0736bf481cfe88c802725b732fd608aa1c5a5be416300307c76be69984f611992cac0bb661bec37d5d9f8a1e417b2a6399deb0e300ebabd5f6da5bbd7791fe142c2c04b3f814cdfcedef0baabe908d5ee82afa8734713286b13645915d15ee05e57fa6bb93b8fc015574a01ef6d4f51fea08c353dc1d93c1608c046b360cb567a736658856cb79298a52694fe25363397036afda46ab2026c4be2a4779e3c8d8cb3746b87c87d5e3f81a887e847915677c9c4b4bc1fa9823af247c1a1224f957e2840cf79af70b16ead639559779f35fda882acf2b2af990158d507d7ba8729232a9bef763999083c4eb8a1be2943594e9bb421e3dfd255f5c6710d285ec2a50f8bf2e560d0ffb5045c58ba115c57b544217f8e6b28a7108f1bd3d2b8e4bb58cd67c339607a58ddaeefa5122ce7ddbb88a83db791151948d2a2f2b8628e3d0e344000bbc7a6f58bb2f87da91e0c5d3984ddb1d262b3798b61b8b04a614999f9728872fbf1f36963e2a9e402562ccc2e581a2927c3d6f33400ab1a88764539dc67436b17a1a3e1f478f52ec54fa7ba60a03dd2b38221eef8ecc30ca34130c5d3a93156578ca378b4b9a78688396614ae5701a40ebd62ba2d9b121ff530921b6f0121105256fbaf9ee4d933f8947535e7e3d87b46737fdb64ea6719d8213c050b186532ed0cc82027aefc8d81643219c3cbf7b446d7fe18a485cf4e40b795f37c43199c1693d36fac7c69c11e4b724f5b2c44842721265bffecb56dfb04802787ce67d583d49e02d182171f8870fec53c8ae87e749982180d3087f68e93e02879f2938048d79e6cc8d9676e8e187bb48c36115800be08fbb18fdda4c3fa6a132a27bab84d0957c7dfe338c125493d67858c37e933430122f146860faca13a905f3b5f7ff0f44534444805b606db4455ea32b7447498a63b5f420daf7cf47f20befcf5ee9232c6aad0385393bf10fe758a985c1df4fd3980de8ee89664967068a08fc651e47889ac94d97c0e819cf9610850ef272fbf056867bb058d70441d658d2f804eb9fa265a11e6e0a13281c9a24e9b28dda5b9258493feb628344105595971aa2af4e96d892fb0ece7da6bc0a0573cf5cd7e96d8a63015c64133e707c2c6c42531687a0636c691a84bc2dbd3c5ee82cfebe82fa06ce32d18a4184de2e6bb848833cb4eb5183ebfb7cfb9b4f514d856270064c46030072470d8ce9293b290db41958d38c5011afb68fe175afa04d2ed2311bd251d46aaf0d8577b74b0c52ba5688f097f50ee80b1ff724ef781908cfa873632490bb37d249f496db1cad2451a3b2e03dbc7a6f028cb57ab2834f29fe2d305685dfc0bdd0cfe909b720028b58d4e7c6e0839850ef04dc71a498a65ae84f4c85d4a601ddb0984d4eb31e6e90b26e3deb40517233ab46063f6e9e32bbf364eeb9e2c492f95489d082b74572bf64a1a3fca6a3ec95c5ce7d2060169b4c6b646d5daadb42047af65271efcace546321361dad89c156d31c61d9e7aa039f8c52d2c26bdf8843c38abfacfd3d548ab82fca0debb6f7c94eacb5e557f0fd7178c9881f8c9e3cf2c56b37039f71b2dcef1a5b7bb3c2dc24a1226eed20aac1390e54af009adbd28d5c64c313f38bb2466f2835ae2a0878a09428fd12800ad4a3d2f8af39a5f400e8ee498b54fea9a72fcce17c140055bf7632da372b28ae4585ec7e3815c260c4759b4aba41af57b64f2158cda8139170218bd01dcd97aff2068336621a376eec5a0ebd8d2196f0e56eaeee14c70a82e25acc6553cf9fc3b199e870473eb806e4b5f7fd2afbf06003ce1d37b79935ddb8061b2a4d037326553798ab9dbd7b740fbb7927cc38d662808c301088f0df265e3d6bce11dbcf4cb8bccab7792c2d25c1bdc4c9cdb34fb2678032c5192c9c36edb1ca7339b2242f543759e603140d2981ee601629ab7397537cb340842176724db826373b7626cb3a279f28f1b17653a4e1047fce350b2c5c7587374e242546c34e724ffe13f8eb9ea8bbc58105abd86cf9b2957f94f348a6dd90606d859ab10115e216ab74026690bc4e5d25d9db47d1cbbccdb3c7fb36164c432e4c43e42d4bbf10fc941638056c34d4faa7623b9ac13cf38bc3f1e79f4cad58d61028eb947b047611aa87c28bb07429d2dd5b660109cf08d93ae9cfce7c152f6f2ecbd9206936288b7b3d6803c2ce9a2131c689f4d7845159a81cfa391e8078331ca84668233905851476ea3a27350587245e7670aabe573ffe8c1ef1179ec0fff91d3d2f5dcd43138c47775c30de7b2616ee28258e41919a553067303631380ad88812e45d5053fb16367d2c8fe886a9e2300000000000000000000000000000000000000000000000000000000000000418504bca9b664064d0d4bebb8ff2d6b7cea1aa21613c39e93b1284db33849a2e015ae46487a41bb82deaaf82c73ce6603bccb5ec1a9cfc66cd260fb7f0ba4efe40100000000000000000000000000000000000000000000000000000000000000c080a054f9de638539aee6dbe15236fee47e6000f9d3810589624a42688a8744b8d07da049e28120ff56958455eea86da7a044a8615cd01dab5e3f922486f89fa2620824", + "new_receipt_trie_node_byte": "0xb90d7f02f90d7b0184010a6e7db901000000000002000000105000000000000000000100010000000004008000000010000200000000400000000400000400840000000000040040000010008000000008000000000000004004040010000020000800020c0000000000000000000000000000000000000100000004000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000100000000000001000020000000004000000204000000000040000008002004000000000000000000000000800000000400200000000001000000040000000000000800200000000000000000000004000000000000000000c0000000000004000000000f90c6ff8b994d1328c9167e0693b689b5aa5a024379d4e437858e1a05c610f28399ecc14b66149012a0197a5e3257a8c397125afee95d1cf4b950734b88000000000000000000000000000000000000000000000000000000000000045410000000000000000000000006667961f5e9c98a76a48767522150889703ed77de28258e41919a553067303631380ad88812e45d5053fb16367d2c8fe886a9e230000000000000000000000000000000000000000000000000000000003505a77f87994d1328c9167e0693b689b5aa5a024379d4e437858e1a0617d31491414a4ab2bd831e566a31837fa7fb6582921c91dffbbe83fbca789f3b84000000000000000000000000047336ae44f573a7c3c41a9ae04a9d48e5dfd8f8e0000000000000000000000000000000000000000000000000000000000004541f85894d1328c9167e0693b689b5aa5a024379d4e437858e1a0453430d123684340024ae0a229704bdab39c93dc48bb5a0b4bc83142d95d48efa00000000000000000000000000000000000000000000000000000000000004541f901dc9489e9d387555af0cde22cb98833bae40d640ad7faf842a09cf3ad24eae3fd6d461e2f566b35b95b6d671871d9fcb45f8ac8030e4a8d21b3a00000000000000000000000000000000000000000000000000000000000004540b901800a8d4d9276f995fdac9574cc1d0bb13a0202396eee1835dfb7c042fe750db421000000000000000000000000000000000000000000000000000000000000068200000000000000000000000000000000000000000000000000000000035053f500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000418504bca9b664064d0d4bebb8ff2d6b7cea1aa21613c39e93b1284db33849a2e015ae46487a41bb82deaaf82c73ce6603bccb5ec1a9cfc66cd260fb7f0ba4efe4010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000065cf5de7000000000000000000000000d1328c9167e0693b689b5aa5a024379d4e437858f903de94291dc3819b863e19b0a9b9809f8025d2eb4aae93f884a04b388aecf9fa6cc92253704e5975a6129a4f735bdbd99567df4ed0094ee4ceb5a0000000000000000000000000787b795fe6e43c17c668de16730c3f690feb8231a00000000000000000000000004200000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000000000000dc88b9034000000000000000000000000000000000000000000000000000000000001e848000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000065cf5de700000000000000000000000000000000000000000000000000000000000002a4cbd4ece9000000000000000000000000420000000000000000000000000000000000002000000000000000000000000089e9d387555af0cde22cb98833bae40d640ad7fa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000dc8800000000000000000000000000000000000000000000000000000000000001e40fae75d900000000000000000000000000000000000000000000000000000000035053f500000000000000000000000000000000000000000000000000000000000006820000000000000000000000000000000000000000000000000000000065cf5de70000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000009436b6f211f50f5d5a17521e4725e27518dafa61000000000000000000000000bb08beeaed39cbd6d9bdb24f2627092984ae55a10000000000000000000000006aba10c9bb6a39445d990fb7a720fa53025bd7dc000000000000000000000000c828de4e817e1705cc539267d5f28be8dbef28de000000000000000000000000306d1c4482b629a684a54b121f6f57dbe617740b000000000000000000000000bbdbe7f5ac524078ac72c1d4d39cd9b40cb4b9ad000000000000000000000000d4fa4b67b69c3fcf3dbf15db5d80202040bc72fc000000000000000000000000f995d1022269c2e0ecaacd15d73e3a621fd69a3e00000000000000000000000051a887f3c12295a69f57d0f41b276bfebc91aafc00000000000000000000000018214ccf63060d579524a69ee1b97404594fc8310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f902fc94676a795fe6e43c17c668de16730c3f690feb7120f842a0cb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52aa00000000000000000000000004200000000000000000000000000000000000020b902a000000000000000000000000089e9d387555af0cde22cb98833bae40d640ad7fa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000dc8800000000000000000000000000000000000000000000000000000000001e848000000000000000000000000000000000000000000000000000000000000001e40fae75d900000000000000000000000000000000000000000000000000000000035053f500000000000000000000000000000000000000000000000000000000000006820000000000000000000000000000000000000000000000000000000065cf5de70000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000009436b6f211f50f5d5a17521e4725e27518dafa61000000000000000000000000bb08beeaed39cbd6d9bdb24f2627092984ae55a10000000000000000000000006aba10c9bb6a39445d990fb7a720fa53025bd7dc000000000000000000000000c828de4e817e1705cc539267d5f28be8dbef28de000000000000000000000000306d1c4482b629a684a54b121f6f57dbe617740b000000000000000000000000bbdbe7f5ac524078ac72c1d4d39cd9b40cb4b9ad000000000000000000000000d4fa4b67b69c3fcf3dbf15db5d80202040bc72fc000000000000000000000000f995d1022269c2e0ecaacd15d73e3a621fd69a3e00000000000000000000000051a887f3c12295a69f57d0f41b276bfebc91aafc00000000000000000000000018214ccf63060d579524a69ee1b97404594fc83100000000000000000000000000000000000000000000000000000000f9021d9489e9d387555af0cde22cb98833bae40d640ad7faf863a0f533ef50019763ee9d95ad46e28350b533c11edd472ae7be93e8fae83c1b6d99a000000000000000000000000000000000000000000000000000000000035053f5a00000000000000000000000000000000000000000000000000000000065cf5de7b901a000000000000000000000000000000000000000000000000000000000000006820000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000009436b6f211f50f5d5a17521e4725e27518dafa61000000000000000000000000bb08beeaed39cbd6d9bdb24f2627092984ae55a10000000000000000000000006aba10c9bb6a39445d990fb7a720fa53025bd7dc000000000000000000000000c828de4e817e1705cc539267d5f28be8dbef28de000000000000000000000000306d1c4482b629a684a54b121f6f57dbe617740b000000000000000000000000bbdbe7f5ac524078ac72c1d4d39cd9b40cb4b9ad000000000000000000000000d4fa4b67b69c3fcf3dbf15db5d80202040bc72fc000000000000000000000000f995d1022269c2e0ecaacd15d73e3a621fd69a3e00000000000000000000000051a887f3c12295a69f57d0f41b276bfebc91aafc00000000000000000000000018214ccf63060d579524a69ee1b97404594fc831", + "gas_used": 3064140 + } + }, + { + "traces": { + "0xa13baf47339d63b743e7da8741db5456dac1e556": { + "storage_read": [ + "0x7f4289211b98f437c112fbd741e69b58eed82cbc056f2e71d19fe0cceeea7830", + "0x0000000000000000000000000000000000000000000000000000000000000065", + "0x297d4acc35207f2772e6f8cc3dee2263ad7f6fcde10d2b32d0978259e5421a88", + "0xd2bcef2c723fd17788da56dbd69144aa919157c2085e085eedd04d83052331f8", + "0x0000000000000000000000000000000000000000000000000000000000000097", + "0x0000000000000000000000000000000000000000000000000000000000000098", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" + ], + "storage_written": { + "0xd2bcef2c723fd17788da56dbd69144aa919157c2085e085eedd04d83052331f8": "0x5cb92ee93a18cc60c5ca3970bc329311e83814e151ca1f9e4da5d4a01720d415" + }, + "code_usage": { + "read": "0x23c736713c762f5d684fdda5244e49dc182aa801b78383ddf51015c1597c446c" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662223f61e8f063" + }, + "0xbc9d741501a20f962756c95bf906b4abffadcf8f": { + "code_usage": { + "read": "0xf4f26227ad02ed0da6a338d7dc956902a94efacdafd598900a9bdacc54ca7f4f" + } + }, + "0xcf2898225ed05be911d3709d9417e86e0b4cfc8f": { + "balance": "0x2d820b3eeb6c93dac", + "nonce": "0x12bed" + }, + "0x2e07f0fba71709bb5e1f045b02152e45b451d75f": { + "code_usage": { + "read": "0xbaacdbcbc57391d7a32d6f671a2e0733e1979a325312572265cc60f05b63cb7b" + } + }, + "0x0d7e906bd9cafa154b048cfa766cc1e54e39af9b": { + "storage_read": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x0000000000000000000000000000000000000000000000000000000000000069", + "0x7fb4302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe39993834b", + "0x7fb4302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe39993834c", + "0x7fb4302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe39993834d", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ], + "code_usage": { + "read": "0x23c736713c762f5d684fdda5244e49dc182aa801b78383ddf51015c1597c446c" + } + } + }, + "meta": { + "byte_code": "0x02fa018ea40183012bec830e8148850e26104e268316c54494a13baf47339d63b743e7da8741db5456dac1e55680ba018d241325aca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000018ce00000000000000000000000000000000000000000000000000000000000000059000000000000012beb0000000000000000000000000002404328bf8fa70b65e3bb633a5fe906bb25c09d41655221c40420684a28475a4e81f03d67f485cb53475d63889227842ddf39e8636d04de6719b681ae7e5241d070fb00000000000000000000000000000000000000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000049e00000000000000000000000000000000000000000000000000000000000005ae000000000000000000000000000000000000000000000000000000000000079e00000000000000000000000000000000000000000000000000000000000009700000000000000000000000000000000000000000000000000000000000000b360000000000000000000000000000000000000000000000000000000000000d5a0000000000000000000000000000000000000000000000000000000000000ef20000000000000000000000000000000000000000000000000000000000001090000000000000000000000000000000000000000000000000000000000000128e000000000000000000000000000000000000000000000000000000000000138400000000000000000000000000000000000000000000000000000000000015180000000000000000000000000000000000000000000000000000000000001732000000000000000000000000000000000000000000000000000000000000014fd02000000000033b3530000000065cf5d410000000000000000000000000000000000000000000000000000000000000000000000000098968000060000000000000033b3540000000065cf5d44000000000000000000000000000000000000000000000000000000000000000000000000009896800008000000000273f9027083069e8a8420e6da00831a57bc94a658742d33ebd2ce2f0bdff73515aa797fd161d980b90204252f7b0100000000000000000000000000000000000000000000000000000000000000a50000000000000000000000006e55472109e6abe4054a8e8b8d9edffcb31032c50000000000000000000000000000000000000000000000000000000000061a800cca8723ef052c7e79e3b81e9d994e687699d9bf2d71a8c7176565a1646b289a0cca8723ef052c7e79e3b81e9d994e687699d9bf2d71a8c7176565a1646b289a00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000114000000000000000000000000042b8289c97896529ec2fe49ba1a8b9c956a86cc000000000000161700a56dd28c2c5b91dd63b4d4e78ecac713987837176800d66e55472109e6abe4054a8e8b8d9edffcb31032c5000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000014990be9707dceec2bdd6575bb6f77c96cee7c80560000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000015594a00000000000000000000000083104ec4a0553ab89b87956a3f999d78927a3496926c42bf08b8513bb0dd72f650448a0303a069dd9ff8f2ecd3c482e89a458273e8d65524441c3379a35fe4b6043e79ad047400000190f9018d09841e28f280830603d094aa111c62cdeef205f70e6722d1e22274274ec12f80b90124f41766d80000000000000000000000000000000000000000000000000000000001f9a11a0000000000000000000000000000000000000000000000000000000001ef844800000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000334d594aed899407b0378d1f57aef6113bcd22f90000000000000000000000000000000000000000000000000000018db21682b6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000000000000000000000000000000000000000000183104ec4a0cf4942e0f71ddc906635bec733f6806fcdc0d6bb1c023d37d2ca0a2cf3312c5aa038e8b80e110cb83223a78fe6077bbb9604a532144a990caa2c74350e0d73f6fa00000250f9024d11841b6b0b008302dc3494aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901e4a15112f9000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000005b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000300c800000000000000000000000000000000000000000000000000000000000300cc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000001a22c102a000000000000000000000000000000000000000000000000000000000000000083104ec4a0c8496fa98c3330a1b932bb7b5cdc03b9e12834c57fae932e7793b620a3944a10a009f16f99e0d1efd44b61e4e31305bd5b59681af33630ae878b6a3ee6fff145df00000230f9022d08841b6b0b00830228d694aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901c4a15112f90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000304740000000000000000000000000000000000000000000000000000000000030d840000000000000000000000000000000000000000000000000007274b38e958000000000000000000000000000000000000000000000048348f14a6e800000000000000000000000000000000000000000000000000004a67ab474c1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec3a009bb607946fd88367459a3a72fb23708dd4a4b5cc9e28fb77a45de83d0c62beaa01423f7cf51efcd9dfbe749393aab66402ccb90689db9e6c74d46159efed9fdb800000296f902930d841b6b0b00830373ae942db0afd0045f3518c77ec6591a542e326befd3d786686c6e5e0966b90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012446edd9c8000000000000000000000000530000000000000000000000000000000000000400000000000000000000000060d01ec2d5e98ac51c8b4cf84dfcce98d527c7470000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3cb010000000000000000000000002156369ef89d06be3a3eb1ed7ccc949a27d103ac0000000000000000000000000000000000000000000000000000686c6e5e09660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001225c3dafc5caf0000000000000000000000000000000000000000000000000000000000065cf644000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec3a060b664022e3f0141249b29303222ba050c3586b7c7487fde4fef231f98185c49a04f35ef0881deb845e24b34b38c6c3ccadd4e9d97493003f04cad792f2ad95280000000adf8ab2b841b6b0b00827c9994f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b3000000000000000000000000efeb222f8046aaa032c56290416c3192111c008500000000000000000000000000000000000000000000000000000000002067c583104ec3a02950117cf70bc59786719217c575f46b6a7b962837aa4d7a16c4db40d2b118eaa03e58c591993c3136903d61befbd183a5ce15e406123ee749242dc0a65c47296d000000aef8ac8198841b6b0b00827cb194f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b3000000000000000000000000aaaaaaaacb71bf2c8cae522ea5fa455571a7410600000000000000000000000000000000000000000000000000000000ac08492683104ec3a09ed5fc2dc3cffe1ee61a89786ae1733a3de8d22bb1d44bb2d20f7ae9803fe17ca03f245b30ab716c4c6c2632140fb44418cb30ee33115e445229359d3e422752e90000008cf88a51841b6b0b0082b7e994530000000000000000000000000000000000000480a42e1a7d4d000000000000000000000000000000000000000000000000008a8e4b1a3d800083104ec3a075859534f54a68d676d2dfaa0729cbd2049f2dba7d9ca4ccf6a376ce569937a5a050c75b9562d4074c43918135f7807c47a21954f9ca6c4ce9981e0d5b97243eea000001b7f901b412841b6b0b008301caac94aaaaaaaacb71bf2c8cae522ea5fa455571a74106879536c708910000b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000009536c7089100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa9471000000000000000000000000000000000000000000000000000000000718756f000000000000000000000000000000000000000000000000000000000000000083104ec4a09296d74c194d13ea6ad1f46a0d125aa94636c5255a12565bd2392ef0195ec568a0334c1ffc89a633bf82a0fefc25e32841917bf67d166ed90b213b6f971134bfc800000073f8710a841b6b0b008301c2d294d61b86b20e26807bdac8197039e8534f77d00b52862d79883d2000841249c58b83104ec4a047619b4a6286bf84753c2c41fb7c34da047a431938fd49c6dbdd022d89f3864aa0426dd16a1fcc1eb6e5df9f6aa925681f3aabe41956f76482acee541fb705e65000000170f9016d14841b6b0b008302a98f9418b71386418a9fca5ae7165e31c385a5130011b680b9010418cbafe500000000000000000000000000000000000000000000000000000000007ba693000000000000000000000000000000000000000000000000000a05a4923b477a00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000026d4b02be7d3f35f1ee7e124d3c2f8d2960cc2160000000000000000000000000000000000000000000000000000000065cf6446000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000530000000000000000000000000000000000000483104ec4a0fe58ff4caae5074125e499581b7f18e9a9d0e49d2f09eca21e33b7151cf8fceda028318877a5fa4f27865f34ba7c90c625024f6b0969a3883ce0e33b005e05031e000002d0f902cd17841b6b0b008302a1349480e38291e06339d10aab483c65695d004dbd5c6980b902642cc4081e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000002dad844494366d0000000000000000000000000000000000000000000000000000000065cf8c1700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000232785000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f6468f54b93b26e3fffc78393cc39fca3b38c2d40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec4a0a10101faeb6991cd3e07fad66b37dfeea809943b17d9b7ef21c570ac55ceb8eea075e4cdeaf0b4e012886d5020a90936c40756fafaa1f1b69c0cb3594d161201f000000073f8710f841b6b0b008302a43b94f4e7dc451afd9f7200f0dabcaad67011b9ae7830862d79883d2000841249c58b83104ec4a0ba41054b984bc009d1144e52109a6f16772f1c46da2d60b5ab52518962338cb4a071cf76c21b9ca1ad1148283f2ac2980f05a8f5a0942ddf171b266acbcaebd7940000006ff86d04841b6b0b0082520894e4edb277e41dc89ab076a1f049f4a3efa700bce88759bdd60f06e33d8083104ec4a0e4fddcd6615bfdb6c12e44ebfb87d5157a27195f9658f697f7a348d7c3287d96a0723bc6f023cbb4ff65ea3e884f2df2262ce2977537f2b92abe6a62a3c30cb7d80000000000000000000000000000000000000000000000000000000000000000001c9c02000000000033b3550000000065cf5d4700000000000000000000000000000000000000000000000000000000000000000000000000989680000e0000000000000033b3560000000065cf5d4a000000000000000000000000000000000000000000000000000000000000000000000000009896800007000000000071f86f830387d38420e6da00827b0c94b8e733b0e449ac8af7a1ea328dfcbf73efd7661e8701bda703f0a0098083104ec39f03108332ddf1986ea40186c7d5667d639731f511dec998f4e4319d719c7132a0019052406ce313ae42977f32d7062297b440820e39e7cbff251fcbaa8a548fe5000000adf8ab15841cc9fec082ece29406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b30000000000000000000000006131b5fae19ea4f9d964eac0408e4408b66337b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec4a0a5ca17bf0c7782a510a86449cecfb5baa87430e5da2bbb0b718fdb6d32420907a066f6fbb7c9741e19f33cc47836a962d885aceef0e63c6b30448b3d3c825364f6000000adf8ab28841b6b0b0082a7b69406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b30000000000000000000000002db0afd0045f3518c77ec6591a542e326befd3d7000000000000000000000000000000000000000000000000000000000fdad68083104ec4a0d00d2170294c956d7d435a92e54ce9f4c6c684448ba027467aef0aa5ed1062b8a01d102bc8b658492a53c294485aec44532679abbfa6ab4bd1819284bbca259fea000001f0f901ed43841b6b0b008304bd1c94aa111c62cdeef205f70e6722d1e22274274ec12f80b9018418a130860000000000000000000000000000000000000000000000000000000000046cd000000000000000000000000000000000000000000000000000005de113661b8500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000dfa6c10de2d6ed5a30fab1706f2beba13df906800000000000000000000000000000000000000000000000000000000065cf5f80000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000000000000000000000000000000000000000000001000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000005300000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000083104ec3a02fcb4b729fd0000b1b42b450036cec0b42694a89f11249c8c40e602d0c5ce364a03f1d7d30f0fea01af5a5a3bfba7280a43d9641d6e6b1c88793c2b23b5d2683cb000002b8f902b5819c841b6b0b00830670a2942db0afd0045f3518c77ec6591a542e326befd3d787470de4df820000b90244ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000014475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000004a60a526c642ce63cf3af8ff68b3f5f222611fbe00000000000000000000000000000000000000000000000000470de4df82000000000000000000000000000000000000000000000000000000000000035c3a150000000000000000000000000000000000000000000000000000000065cf5f90000000000000000000000000000000000000000000000000000000000000004253000000000000000000000000000000000000040001f406efdbff2a14a7c8e15944d1f4a48f9f95f663a40001f4f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec4a0db39309a0c13d5399b502a87c9d76976b108fb6d6ac78463af62a19465a1dd8ba05a4ea58202f9fb3760a6d016cf48bd3b2fa3c96fc555b8af6dc7c1ae35988d8c00000390f9038d0c841b6b0b0083052a289480e38291e06339d10aab483c65695d004dbd5c6980b90324e84d494b00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000003345f086275da0000000000000000000000000000000000000000000000000000000065cf8c1a00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065cf8c16000000000000000000000000000000000000000000000000000000000000001b1f4714446acc571611f3ff4025b56be7b5c38e5e4f4885643224f5d8700ce9274242ae30498ecdb4713df8b2e9ef64b3343c1dceef0f307300b3106be4de5c2900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000002775bb00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000634165eb24d5d350efb78af8ac72622dddb6abff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec3a081dc1255249c4dbb8695c8c8f08ab7803b0f54788e2509157f29d76dd09438c3a06d6543a2e7a1b16cd63b0e0047445482b5ca43c086b71f2eac0119f18f9530ab00000170f9016d20841b6b0b008302b058940122960d6e391478bfe8fb2408ba412d5600f62180b9010418cbafe500000000000000000000000000000000000000000000000000000000005815e50000000000000000000000000000000000000000000000000007276b33d5168600000000000000000000000000000000000000000000000000000000000000a000000000000000000000000003d85b63cbb64235dca5a217a4b5f6bb8a029d430000000000000000000000000000000000000000000000000000000065cf6448000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000530000000000000000000000000000000000000483104ec4a02aacddb30054f7e6d610ced3163e94d413da5f30e2af9e16574757d290d13ebaa02214396d246300511b4a13bda4a48f62991c4e65ad15ce612d8935a8d9b210af000001b0f901ad0c841b6b0b008302015a94aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021cedd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000002c360c74d996d000000000000000000000000000000000000000000000000000000000000000083104ec4a0303d6a16b00f63eec2da58e7b8ae4f7139d8ff8a292a617102ccdc7c2d50b065a034b528e36c54bb9d06b3416809c788b0f7ac2886c51e90f3f9ba896de1dbb86200000073f87105841b6b0b0082cab4945300000000000000000000000000000000000004871ff973cafa800084d0e30db083104ec4a0064b39f77afc696c24c235b1ce4b5a7ffc089a4a7ac992091795fee56e81861fa07beca5f8b43806ef35c0cbffb81d6398faea07d3f6599c9e6b207162c5e7bcb1000000adf8ab13841b6b0b0082c08d94f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b300000000000000000000000049952ff32fcbc3408d447e1e91da2b44bd2d1afe00000000000000000000000000000000000000000000000000000000052f1c5283104ec4a0637c537d964f0db815b28de799400692751a5a229d85d1cac6481de6ff5066f8a05a9405204981550280deacd5a53f0f030afe694c146734596c9739c2ddd2a1510000016ff9016c05841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000406462623237623032623464366366386362313034363035373135316234396334613366313738363539333838666239626533306166376439623339653132376200000000000000000000000000000000000000000000000000000000000000403536616438343664383931363032333739613633333330616532306435363964653537346331326333623463303163353062393162326430313862333061333483104ec4a001228b02cf5980f6a5a363dd2b9c92d5b188dd4384799a3c367eb83ba5905ea9a06da218bced7e32aea03e7340faacd9196cf8620706c3724940e86ed0a43de6980000016ff9016c0e841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000406663336331333363376335636638366331393064643534626662313931333935313935646335643832666261643866643435336166633133646333616232633700000000000000000000000000000000000000000000000000000000000000403563383532626239346561383636343232623431613334373961626332303365366635343363323263636234383330343539623634366637353164313063333483104ec4a019a522bff23191b4e6cdd24608e998b3c1eeb2881fc740fb3fcd7f67ebaf6a2fa036140611a9713b372918efabd05cfe7f49c2e3127c04dd6206d12ac868b15b970000016ff9016c09841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403962333030346339663238666663383430623235653734633538313730613661303031396266653061396632353735616464363936306433303137343731663200000000000000000000000000000000000000000000000000000000000000403831306165323931363666353664646263396266643930363864393165373265366339353236663362623764646632353138613634656161393866616665313183104ec3a02ed9872d18d77b3b0d94d62b1f8eb3c7fb1622ee9344dccfd514d09a9925fdaca05013a0a2827bca5748c9a30f76e6de96c7b05a8e2b029670286428c4c26f8df0000001b0f901ad0d841b6b0b008301c6fc94aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815b6f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001000000000000000000000000000000000000000000000000000a9bc262c31034000000000000000000000000000000000000000000000000000000000000000083104ec4a0b15d93e37f855257f870f48e30ee968d1f9cbd63d2cc44c9740e2584d90a25dea07d6b5184ac72cd70a4e71c77a93dd1163d8be5be9d95f7d5c8c200cee7dd6a5a00000074f8720c84270d47d3830286469453000000000000000000000000000000000000048713e9b7c1f7500084d0e30db083104ec4a0c96ac48181c37648a5b0a8d0d2f4bace55146b2f5428d7b962b4afec9ff7cc3aa04dad8aa8a0c9bddd606d09d4e122ed457b0bf25b76f4e632ca229dd0f9e26cee000001b0f901ad0c841e28f2808304646294aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd900000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000001df4d6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa94710000000000000000000000000000000000000000000000000000000001d5b767000000000000000000000000000000000000000000000000000000000000000083104ec3a0ef441f44f6b889df29c1a1119bc211df8a6eae0bfd78efbc507c9ae12f86fe10a01ef6c712c50296b0582aaefcc1d686d7e2bacd25c35b33a8eb6f452f331994b900000070f86e0e841bcce64e8254959480c67432656d59144ceff962e8faf8926599bcf8880106b047d0a05d2a8083104ec4a08ac1b19b679cbca37a23e14291c633fbea791663eeb436dd40e36dabc682f126a06be2a07be1d772757e86d2b766e8cdb803718d7586364c8dd414f218c7a5aaeb0000016ff9016c27841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403937666163376231313737333238643832646166656135346561623034356131323037663663363136376235346631306337386231643663663864353630393600000000000000000000000000000000000000000000000000000000000000403366646534323534336630613935663765616161646638666331333236346263643663623635393033643966323862353039366130366638373338646331393583104ec4a0ecc3e380171c179549339567274903e04ccb3bab7a78733cf98f2175f66bbcc3a071a6b8b24430ae1991f6b715c933ad6c88d7bd721b6c6dc0d851acf6c7d967620000014ff9014c2c841b6b0b0083014db394aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b8e4a15112f9000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004900000000000000000000000044e21fd6170fb52e5ef18e9651f1ded6d5b8d3ae00000000000000000000000000000000000000000000000000000000712e9cc6000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df83104ec4a0fd4450453d357bea53dbd1dd058f9065cf64b9909491764de5ead40d82554f12a06d60e9472210c8fd275379811d9da2079de57e65aeb29b93f8054325590fb97000000190f9018d18841b6b0b00830319ce94aa111c62cdeef205f70e6722d1e22274274ec12f80b9012418a13086000000000000000000000000000000000000000000000000000000000042859b000000000000000000000000000000000000000000000000000572d419eec2e000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000096f1c088a890e7aa295ca779ea62b3c4a507272d0000000000000000000000000000000000000000000000000000000065cf644c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000005300000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000083104ec4a0311734493921b2908518370e221701dd415b7e0da9933ef661cf3aeb21f3864da01e696a3cdd97074c634b4ee022867365559a295a05f179b7b3df048ceb423a28000000adf8ab02841b6b0b0082eb929406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b3000000000000000000000000aaaaaaaacb71bf2c8cae522ea5fa455571a741060000000000000000000000000000000000000000000000000000000021d2ab1283104ec4a0bfe1e4129b1ed1f151d1e3128d696c5c19d3f33af461978f5cd538137374c37da073c099fbd152c3c9611a7c294a99f5c6ddb4772a1eb8f32e48626cfee3c7b0920000000000000000000000000000000000000000000000000000000000000000000015fc01000000000033b3570000000065cf5d4d0000000000000000000000000000000000000000000000000000000000000000000000000098968000090000000000adf8ab21841cc9fec082d34894f610a9dfb7c89644979b4a0f27063e9e7d7cda3280b844095ea7b3000000000000000000000000b6966083c7b68175b4bf77511608aee9a80d2ca4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec3a090c7745e97aeb878a9974ad10fcd6df8221a329bc09f98386e20f42b541e31d4a0067097f07a0f33728e72da44308391bb425c2804c4eb109e77e4c0632188379500000297f9029402841bb13bc083094bed942db0afd0045f3518c77ec6591a542e326befd3d7878e1bc9bf040000b90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000b7acafc6d3087e14f2aa5cb4796b8ebb65ddcfd000000000000000000000000000000000000000000000000008e1bc9bf0400000000000000000000000000000000000000000000000000000000000006c0a1a00000000000000000000000000000000000000000000000000000000065cf5f93000000000000000000000000000000000000000000000000000000000000002b5300000000000000000000000000000000000004000bb806efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec4a09b3147027eb492c0d7b330e433a96748afae847c0361522c6272ae35d7cf4ecea0382343cb4f2baa9716afa95efe987ceb371b998c92823fb3a2ed13e15318f262000005f8f905f504841b6b0b00830512c89480e38291e06339d10aab483c65695d004dbd5c698801f87c3f661b0000b905842cc4081e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000017e2f1030000000000000000000000000000000000000000000000000000000065cf8c1e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fc3e1fb30d800000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000053000000000000000000000000000000000000040000000000000000000000002f2240280bfc9801852786671d8822b24f05b349000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fc3e1fb30d800000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000078ea8e533c834049de625e05f0b4deffe9db5f6e000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000053000000000000000000000000000000000000040000000000000000000000002076d4632853fb165cf7c7e7fad592dac70f4fe1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002076d4632853fb165cf7c7e7fad592dac70f4fe10000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df0000000000000000000000002f2240280bfc9801852786671d8822b24f05b3490000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec4a09ed41e256317dae7c8939e04b914fe1b89ee76aed29e4cee25bf80c06af4a511a04805d1dc363da7bf3a1758e000cc9d19459e7b45042eb461519ab3a2913d128700000230f9022d08841b6b0b008302f96c94aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901c4a15112f90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000300e40000000000000000000000000000000000000000000000000000000000030a0c00000000000000000000000000000000000000000000000000026fa9cd1d60000000000000000000000000000000000000000000000048348f14a6e800000000000000000000000000000000000000000000000000004a67ab474c1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec3a0abee34d268930a6ff3cb6e5a2c1f5ad42481c583df5e61daad40c00700cee468a03e33ee54d99a5bdaca385f70061ac01aa67c9398f659fd668a04fecbf90c3c21000000f5f8f317841b6b0b0083023ad594e2e1d82b050bb5bfec776b2653a72f093a8373ab8708e1bc9bf04000b8843e49fb7e0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000cbf4e2115ab017cbde3106af6f47a94568687a19000000000000000000000000000000000000000000000000000000000000000862617a68656e6f7600000000000000000000000000000000000000000000000083104ec4a09791596b8a8205fff189d08c8dcb1b5e7b79b14e121fcd78fa76eb68087e1a68a0439828d29b5b2c1382050e6a7db9c4569464a1e2e44c736f49f07b831c2eec9600000170f9016d1d841b6b0b008302a98f9418b71386418a9fca5ae7165e31c385a5130011b680b9010418cbafe500000000000000000000000000000000000000000000000000000000001ac1ef00000000000000000000000000000000000000000000000000022b199d789b2500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000058e539f6f5f9b51d02ae69b4f50dfe5ea1ec9b700000000000000000000000000000000000000000000000000000000065cf644f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000530000000000000000000000000000000000000483104ec4a0ae30fc2262f5377b3e04e8da575cfdfca3b159e06ef2a4ce1220ddc1fd7fef8ba05c9af4fc6c851ac9be17ab033ad3d40592c78de1ce815846c1f0b294294344be00000670f9066d07841b6b0b00830420f794aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b90604a15112f90000000000000000000000000000000000000000000000000000000000000082000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005a0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000e8e4000000000000000000000000000000000000000000000000000000000000f0b800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004b500000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000014500000000000000000000000000000000000000000000000170a0485e54095000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c1bca5a656e69edcd0d4e36bebb3fcdaca60cf10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec4a0845414890c1f6c8ba298e6f6c733dc02799e59fc5b296d021f0d5826404770afa05fe73875ba958d81c410f535fa751abb9f8e9f35960fa56e7ad91f13e51429f9000000adf8ab09841b6b0b0082eb869406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b3000000000000000000000000aa111c62cdeef205f70e6722d1e22274274ec12f00000000000000000000000000000000000000000000000000000000005a94f783104ec4a05a096d939425eee9f3a96bbcf5c9e9ee90b94de46a5acd665a969ce1499690e1a0252f5545e90720aa9fdd7f5a0a62d99132d0675551b7286b2db6f26f60f07af4000000adf8ab19841b6b0b0082eb7a9406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b300000000000000000000000018b71386418a9fca5ae7165e31c385a5130011b6000000000000000000000000000000000000000000000000000000000030ae6583104ec3a0a86881ba43428799f2ebcb3887934310e14e748c9eb9cdccaf86b61df8a05af6a05e25ccdae453a37d4959dc35ef35023c5e1742beb099871ff27a8caea61305bf0000000000000000000000000000000000000000000000000000000000000000000010d201000000000033b3580000000065cf5d5000000000000000000000000000000000000000000000000000000000000000000000000000989680000900000000027af9027783069e8b8420e6da008307d95c94581b26f362ad383f7b51ef8a165efa13dde398a487071afd498d0000b902048624ba07000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f8527b85693e60bc7d61d75b3b66e87bf95a9c2600000000000000000000000000000000000000000000000000071afd498d000000000000000000000000000026da582889f59eaae9da1f063be0140cd93e6a4f000000000000000000000000000000000000000000000000000000000000759e00000000000000000000000026da582889f59eaae9da1f063be0140cd93e6a4f00000000000000000000000000000000000000000000000000000000000003b41e655a308a9e3529bbd8dc411d2139d7a401d0d9ae4224b6acee67acdf2a491100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000cf080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec3a0cdd897a6f5dcc6fbbd25b5a9cb4ab50779b21e3262e9caf0b51f84bac036a3dea0305cf6d942091a8807e99ad3dc64d0f878f8bf24077511354069002f17c415100000027af9027783069e8c8420e6da008307d95c94581b26f362ad383f7b51ef8a165efa13dde398a4870e35fa931a0000b902048624ba07000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000007cb004886b6d2dd0347efeccf16d0702ded43ab8000000000000000000000000000000000000000000000000000e35fa931a000000000000000000000000000026da582889f59eaae9da1f063be0140cd93e6a4f00000000000000000000000000000000000000000000000000000000000075df00000000000000000000000026da582889f59eaae9da1f063be0140cd93e6a4f00000000000000000000000000000000000000000000000000000000000000642fcf17a83301aa75bcaf967246716e5de21936025f8126111284c069b1d02ec700000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000cf080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec3a02593a3305a09933d5b6274123b302a3af63eaee11ee8686c9c41a0bb525f41ada0292e557f868e5a5bf9972aa0f7ef6363e8f1bc0a66a09421ed528055c0440f2900000191f9018e820382841e28f28082ba0194760bd7fc100f217678d1b521404d2e93db7bec5f80b90124782661bc000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000065cf5d4a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000f610a9dfb7c89644979b4a0f27063e9e7d7cda320000000000000000000000002a00647f45047f05bded961eb8ecabc42780e60400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000b24fe8e001b19b496000000000000000000000000000000000000000000000000000e3b71d1085e90b83104ec3a0dc69949039c3885783a47a050066359142e71c08bfcd8683247248593c6c97cda0322c2979cb5c610173ad909a4082e6ecae12891e241037a57b5f4f5a7cd2a8a4000000b1f8af830cf3bc841cc9fec0830218ee9487627c7e586441eef9ee3c28b66662e897513f3380b844535b355c0000000000000000000000002cd72159b2e0e05c513bb9a2a8266e7235b5f23a00000000000000000000000000000000000000000000000000103ab0a5f0140083104ec3a0320436540ef64b0bd67485637ed0e6eb7b9bc14e37bc30f9bb4a99819745b9f6a00700935c10af284e965748289dfb7e9e51b4c43e6c91524546781f57a0077d1d00000297f9029416841b6b0b0083039f00942db0afd0045f3518c77ec6591a542e326befd3d787029d425ca1cffab90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000a71833fa1661ae9e040a0687bfec334d5819756b00000000000000000000000000000000000000000000000000029d425ca1cffa00000000000000000000000000000000000000000000000000000000001fc87c0000000000000000000000000000000000000000000000000000000065cf6451000000000000000000000000000000000000000000000000000000000000002b53000000000000000000000000000000000000040001f406efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec3a0eada1f4ef34585719084907bc7cb6cd275e589fd28a0d011259b533b92b9ed2ea046efb8b3d6764cf4e52ff79fc15d23b56a412ca684136bbe00b6449d0c18586c000000aef8ac3a841b6b0b008307389394ec53c830f4444a8a56455c6836b5d2aa794289aa80b844962941780000000000000000000000000d8f8e271dd3f2fc58e5716d3ff7041dbe3f0688000000000000000000000000000000000000000000000000000000006f29a44083104ec3a04f002290ca86f4dd7cf4b89045f2c7b4d1270f9ca203e37c9d26302380dd36b3a0097b79a6834588d6e0ed0db54d21730adacc7ad056ed5a23ce09578bb10cd2f5000001d0f901cd27841b6b0b008304b48f9480e38291e06339d10aab483c65695d004dbd5c6980b9016453c43f15000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c700000000000000000000000000000000000000000000000000000002cfbbd3b4000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000001c002d4e97ce210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000600000000000000000000000005300000000000000000000000000000000000004000000000000000000000000bda0f952248689320fb469256d0176a5e8246dd10000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec4a039b5ae9351a9c978b4eb4c66e94fbf1c0bfcd74deddeb7b5e386005b37025fe4a04dbaccc1ac97218a504f98258bf0cc4f023f1db49ba7f2842c4b402aabc2dc9300000156f901531a841b6b0b008302b6d6940122960d6e391478bfe8fb2408ba412d5600f62187029addc3b10f92b8e47ff36ab500000000000000000000000000000000000000000000000000000000001fe5920000000000000000000000000000000000000000000000000000000000000080000000000000000000000000d4113ba0ab0627ce2914cc65e22279dcf72b98b20000000000000000000000000000000000000000000000000000000065cf64520000000000000000000000000000000000000000000000000000000000000002000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a483104ec3a07fa0eac0e9caa7b530500379f60d95361dcf34fd3e6e870a19b97a0f883ac8b5a049f5c632ef55510522acf527ac63d834da4c6bb55c64a601b9c848a93904b715000002d0f902cd07841b6b0b008302a1289480e38291e06339d10aab483c65695d004dbd5c6980b902642cc4081e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000010fe4462828cb80000000000000000000000000000000000000000000000000000000065cf8c2900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000000d1422e00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000483d1e4ab0fe0b51d1635f81e6d2c7767f163cf0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec4a0531a15025f2d0a166acefdc3a6eb02b3244db4665e28d8786fa4eb042bd1b97ea0167aa603f0aa0a2d72de4700b589d08080fb868108833d874c9bd9342e1a0fc200000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ec402000000000033b3590000000065cf5d530000000000000000000000000000000000000000000000000000000000000000000000000098968000070000000000000033b35a0000000065cf5d560000000000000000000000000000000000000000000000000000000000000000000000000098968000070000000000aef8ac11841e28f2808301d70c9406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b300000000000000000000000080e38291e06339d10aab483c65695d004dbd5c690000000000000000000000000000000000000000000000000000000001236cd083104ec4a0935870dbd80f7494bbff8b3643b51d551a28a66bca71a8d77ef9725e2202324ca042bc799abb90ddacc6d9c0485a70b4985ca7f5f775f1e8a6b8540b7ef95cb88300000170f9016d0c841b6b0b008302a99b9418b71386418a9fca5ae7165e31c385a5130011b680b9010418cbafe50000000000000000000000000000000000000000000000000000000001daab9f0000000000000000000000000000000000000000000000000025cfe733288fd000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000e8a10a27a426e45d0dc9e6fe7d0706ecca5bb5c90000000000000000000000000000000000000000000000000000000065cf61fa000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000530000000000000000000000000000000000000483104ec3a0c607fe1ca9647c3b3d53ca980ca251c38652d452f4dd8c2739b3ce567d4ae10ba0206b5cf5ebffacc4ec970a94e98d30ab3a279a3a19fe2d0d9e20f3ceab4ddcd5000000adf8ab01841b6b0b0082c08d94f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b3000000000000000000000000aaaaaaaacb71bf2c8cae522ea5fa455571a74106000000000000000000000000000000000000000000000000000000000230e8f483104ec4a0a9f18510c4a155f424e875116ac000c50ef3c12fc3cb4c78e0004b00b94b5459a02a1749dfb081e998f1576a729aa07d68ff8ce93b21410cb9d2518353714cc029000001d7f901d407841b6b0b008306055494aa111c62cdeef205f70e6722d1e22274274ec12f87354a6ba7a18000b9016467ffb66a000000000000000000000000000000000000000000000002490d4b639b45400000000000000000000000000000000000000000000000000000000000000000800000000000000000000000008676280fd21c0c4884d025cda7d33cb0d8714e1b0000000000000000000000000000000000000000000000000000000065cf5f900000000000000000000000000000000000000000000000000000000000000002000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000ca77eb3fefe3725dc33bccb54edefc3d9f764f97000000000000000000000000000000000000000000000000000000000000000183104ec3a0d6fd9d16cf26bd1d404362b7faea51d3b1ecabcca3c1bb517b7c4b3ed18e31b6a043af881b21add53846cbebf1432995a7ffa39f9f464c8385f9e64ca42a8c0cd1000000aef8ac04841b6b0b008301b0329406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b300000000000000000000000020e77ad760ec9e922fd2da8847abfbb2471b92cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec4a0a370ab1ff339d2a0621c01b3acd0134ef838a8a44b45414bc847e563b99e1034a03a70d4f9035dd45e7bddf39adde6f760183f5c06c33234dd77941ea9db56f65a000002d7f902d404841b6b0b0083029f7a9480e38291e06339d10aab483c65695d004dbd5c6987038d7ea4c68000b902642cc4081e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000273408f102f1b6870000000000000000000000000000000000000000000000000000000065cf8c2b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000b39880c7a0b752179d6d7d9ae594ab4c02d6e5b800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000600000000000000000000000005300000000000000000000000000000000000004000000000000000000000000b3f6c27bd09e7c96b349d9c844425402ca4ffc6c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec4a07b7aab574a9df8b5550e7dcfea0d87fde4759976fa8dba68bdc360a864dd87e2a0339763b7356217293d8df104c0e2199e2693de22fed4f984b6ff6f5653875f02000002d0f902cd0c841b6b0b00830332d79480e38291e06339d10aab483c65695d004dbd5c6980b902642cc4081e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000021b510f50000000000000000000000000000000000000000000000000000000065cf8c2b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000ca77eb3fefe3725dc33bccb54edefc3d9f764f9700000000000000000000000000000000000000000000001ec9267e496c2eed9e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000009da72cbd2f262a898b3e47e56ebb385d8fb160310000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000ca77eb3fefe3725dc33bccb54edefc3d9f764f97000000000000000000000000197587ffee04c183b8d129f3bd192ec79f2df8ed0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec4a0d471da2e709cb335326300e855bd57bbf8987631549184037c6befc7184fdf02a06a74fd7b7e39b4f5db40189623066116ffa145bb545897ab3a6c44d2992ffd790000008df88b0d842378a9cf8301a2cc94530000000000000000000000000000000000000480a42e1a7d4d000000000000000000000000000000000000000000000000001442d92927700083104ec3a06db22ecdb8c44e05d295d0a470c4394d010a70d5fad09a99ee5ab937b6e6feefa05fd8ab427a2f685894f51bc27f5c6ef0711d797170738482d10b54497a5c7cf800000890f9088d16841cc9fec083045764946131b5fae19ea4f9d964eac0408e4408b66337b580b90824e21fd0e90000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc897000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000005e000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000388a31bc568dd6ebaaa3b1f52078c00070bf98200000000000000000000000000000000000000000000000000000000065cf61fc00000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004063407a490000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc897000000000000000000000000e64ae4128e725868e8fe52e771e3d272e787b04100000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000005300000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000d3c36a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000012344a3b6400000000000000000115c661b0c960a300000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000388a31bc568dd6ebaaa3b1f52078c00070bf9820000000000000000000000000000000000000000000000000000000000d3c36a90000000000000000000000000000000000000000000000000110382c8969309f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc8970000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000d3c36a900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ec7b22536f75726365223a22222c22416d6f756e74496e555344223a223232322e343934303630393232222c22416d6f756e744f7574555344223a223232322e3336393835323831303034323931222c22526566657272616c223a22222c22466c616773223a312c22496e74656772697479496e666f223a7b224b65794944223a2231222c225369676e6174757265223a2254354f557571596e5533656c677055396d4967546f7a7a54557545662b6a32714e31567042437663634d414d636c62366f6b574158712f596666532b7449655852642b4d686f6d5350324f64515137446331746b73794a4c545870344438794c51616a744a43664e30434b48532b43756251316e30633156586b3452724f744a3178544f793567686d31314c7a4f53553454797a3758656b69697274396d4379522b6f464a6e5351386f70305553475a78452b4848665757574e714a37527066364279374545376235684c323454707979554f5556416b4d434844736a51342f324e426557763041794c7a756473386e72564661792f6e7465552f6164595067394954514f63766f764d51615335764d7a566c372f4d4e6e6d6747767330474b536338553746454130446b76415664674d354c79706375726152484178377a554b66696542794c585170457a623779705061566559673d3d227d7d000000000000000000000000000000000000000083104ec3a0d3bce97a499c21c9e45aada4faf007373880d779bc0d04492975275de5a1104ea0469ea393e1664cb67d01d6731da35a7ba5001d0939b949a9742895a62d4b3b58000002d7f902d40a841b6b0b00830277459480e38291e06339d10aab483c65695d004dbd5c6987279b35eccac800b902642cc4081e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000001d3dee50000000000000000000000000000000000000000000000000000000065cf61f4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000279b35eccac80000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c7000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000600000000000000000000000005300000000000000000000000000000000000004000000000000000000000000f4c9ebc24fdc9365af70b50fcc5db690727f4d2f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec3a048d07fc682185f39b8dbd23d133dfffc9d571d65f9666959972d19d39c223199a06abd87509d30d13f9ebf2f39ba98a2b016f50949ff56a5fa2158ad99c1526895000001f0f901ed19841b6b0b00830484aa94aa111c62cdeef205f70e6722d1e22274274ec12f80b9018418a1308600000000000000000000000000000000000000000000000000000000035d57cf000000000000000000000000000000000000000000000000004669d9b462d94c00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000007b2da0e5f3bbd7e824a16e7f8767de19718e81a70000000000000000000000000000000000000000000000000000000065cf5f9b0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000005300000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000083104ec3a07099ad585abbe34b4a0fbbdb439e08e8c5ad971186b643ffdf768e6c41d4a881a0110016f65fbb1db83e3fb9e0d276a0b460fe4a200b84ce3fe86e4df6429ee1ee00000210f9020d1c841b6b0b00830391049480e38291e06339d10aab483c65695d004dbd5c6980b901a4ad271fa3000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c7000000000000000000000000000000000000000000000000000000001244db0b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006857b8405a0c7d59a377eea4132a9aa5dd0fb8150000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000458f300000000000000000000000000000000000000000000000000005b1c9a228c2a000000000000000000000000000000000000000000000000000000000000000083104ec3a02e493a1637a22779df70d0a34672cd24e3a80dee6fa4d5ddc23bbc21b9a6c577a05abd6be21cef3c601ef1a04f3d94d6951ad6f7548c43981a6e68c5f179a787bb000000b6f8b421841b6b0b008303208594ec53c830f4444a8a56455c6836b5d2aa794289aa8802c68af0bb140000b844f2b9fdb8000000000000000000000000274c3795dadfebf562932992bf241ae087e0a98c00000000000000000000000000000000000000000000000002c68af0bb14000083104ec4a0d90626be654564f972bbeba32a8a77f3f459b7bde53f391c4bf8a44d2a781fa4a04c1979fb14823c8887c1bc862b5eed863e4c70c8666edfb2d02cd7b39bb0fd3700000272f9026f821c29841b6b0b008304edd4942f2afae1139ce54fefc03593fee8ab2adf4a85a780b902047c39d1300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000d6000000000000000000000010000000d600000000000000000000000068ee9bec9b4dbb61f69d9d293ae26a5aacb2e28f3af87783e5e41bc35e1c36d03e43c91aa9eb2f380f25e7dd551274883b64397f0000413e7ddb7398704111e18336a581e4f5828d18334669530946d68b41c8714a6c49e822e565f6b7eafa05eb57e57294fe3ad2a0e893d395e0513f11a201adcfb592c51cb8d06f4bc3b027d901a67a35e2df916f5fff66ff523292ae8de6f92d353316672a81eabe21a365c46da275af820a188a89e5e8f16b7cb31803a94c0e84deaf171b00000000000000000000000000000000000000000000000000000000000000000000000000000000008d030000413e0000000a0000000000000000000000002a5c54c625220cb2166c94dd9329be1f8785977d000827500000000000000000000000007dac480d20f322d2ef108a59a465ccb5749371c4000000000000000000000000597ffed7bacccfd7e63315a8912b7c0b84258c04000000000000000000000000000000000000000000000000000000000262929b0000000000000000000000000000000000000083104ec3a0386cb4189d92acf5d7d570c3ff9f97fa775168c079938346b58e7ecab9a100e2a0354168ebc77f29df036b746e2936a6ed09c6e134d59e41dba1d428ca6345fb45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001cf302000000000033b35b0000000065cf5d590000000000000000000000000000000000000000000000000000000000000000000000000098968000060000000000000033b35c0000000065cf5d5c000000000000000000000000000000000000000000000000000000000000000000000000009896800009000000000072f870830387d48420e6da00827b0c948d4fdc55b38dc07328542cc6b87487518021da2a871f9e80ba8040008083104ec4a06448351025863c81296ba4a2d51345a635bfd1ce3226b63e5a075bb828455059a00790f20fb07a99059f313faf298e16227661ffeba05e069069828d70db07dbfa000002d0f902cd0e841b6b0b0083036b0a9480e38291e06339d10aab483c65695d004dbd5c6980b902642cc4081e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000070c78552776f0000000000000000000000000000000000000000000000000000000065de9f9300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000566ef00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000403e48f9dcc960774f1cf26cfe386441e4fc2e290000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec3a0784c112c3de96730ceb896dfb7607c2c48622b72aad2a93e3f8e9502dbb772c3a00f827f9b7f55bb42740f2d7768d53cb0e05e4b19ceddbfbe8c4fb23f463d3664000001b0f901ad2d841b6b0b008302a9b794aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029db6c99000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec3a08d31bb136e555ac1c0eec28f526e493773dea219f465077779b0c3bf6083cd02a074163bc9e194e76aeeda5d20c5f0a45132fa799fdc959f860378ecb28bb00b3100000070f86e12841b6b0b0082520894e4edb277e41dc89ab076a1f049f4a3efa700bce8883624e994372fe3368083104ec4a014ba7d1659038f888c059e5bc471313b0263396e35846e3c3bde9ea3f56e4baaa05c53e7f6ba8a68cd269c1bdf6d3b96fe15ca4d124401c49dd315534bcc38493500000156f9015303841b6b0b008302ae0b9418b71386418a9fca5ae7165e31c385a5130011b68713fba854cb359db8e47ff36ab50000000000000000000000000000000000000000000000000000000000f5517500000000000000000000000000000000000000000000000000000000000000800000000000000000000000008576780357c9b0a827e34a7bcefa4fd56459538c0000000000000000000000000000000000000000000000000000000065cf645b0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a483104ec3a0badb683668a6ea9f8f44c5923f3b7bec676f20ebad85cb7992d8cfd46bc40f46a006c1f9439733665f7b94e815b4f3bd3125130e270c43fcf95bf9c37c659e1c9700000297f9029416841b6b0b0083041a17942db0afd0045f3518c77ec6591a542e326befd3d7879c19b53548e118b90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000085b4a1cba62c6a49013473e6192ecdea0c38579f000000000000000000000000000000000000000000000000009c19b53548e118000000000000000000000000000000000000000000000000000000000766dbad0000000000000000000000000000000000000000000000000000000065cf645b000000000000000000000000000000000000000000000000000000000000002b53000000000000000000000000000000000000040001f406efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec4a00280e98f705e3a7ca0ab22ba62e6ef4f56367cbd6208dd899a0019b18800eec8a032def900e9c0dff648e85d15dc75e263aadc0b506d4898fe57d22b47045ad10d000001b0f901ad03841b6b0b0083026cc994aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd900000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000021d2ab120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa94710000000000000000000000000000000000000000000000000000000021bb3676000000000000000000000000000000000000000000000000000000000000000083104ec3a06c477816c677f16be78c3445450da1faddd63b10b7fed3e12add5a6dbcc949d4a00da8bafba1bfbca632db7db27e5681b423c67a029349010546b0b543f8e15d08000000b6f8b417841b6b0b008303208594ec53c830f4444a8a56455c6836b5d2aa794289aa8805d423c655aa0000b844f2b9fdb8000000000000000000000000274c3795dadfebf562932992bf241ae087e0a98c00000000000000000000000000000000000000000000000005d423c655aa000083104ec4a0b47ec8b802c9040cc2f3af7858355eb494d36fb496a0cb5645a94c6c006ae1daa04a90fcabae82cde0b4bdf080a8916ebfedd71aa0b208403fdf8401184c03246600000177f901741a841b6b0b0083031f1b94aa111c62cdeef205f70e6722d1e22274274ec12f87073ec4bccb2a24b9010467ffb66a000000000000000000000000000000000000000000000000000000000057d24e0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000e6e73f6143585f697cd7e5833c44826516cf6af50000000000000000000000000000000000000000000000000000000065cf645e0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000000083104ec4a09ce383db5d2a701de7074c9814153822307461bbbc6a9c2f6dc7ae6053f35e71a01fbd7ad428670d0d5b756761c256eeb7701c72095cc6099204953a74ead84cbf000001b0f901ad11841b6b0b008301da9e94aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001000000000000000000000000000000000000000000000000000c83925ee514a1000000000000000000000000000000000000000000000000000000000000000083104ec3a0bc63d8277ea8ee9c3f47339cb562edcace9b4b7c0cc4660f4c707f64c689e649a0568b580cf107c3518cac27a21085ac59968b5c9a5e522d68369eee8ec412b635000001b8f901b53a841b6b0b008302638f94aaaaaaaacb71bf2c8cae522ea5fa455571a74106881bc16d674ec80000b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000001bc16d674ec800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa94710000000000000000000000000000000000000000000000000000000151cf1eb7000000000000000000000000000000000000000000000000000000000000000083104ec3a04663efae6ce92344299c81b1d395c3f53ba6e888f51976250db7cc0a81cf9a7fa07abf4bc9a9d968bbe148e5e90e2f52c5caed8fe005f0a6c4132f0fa7855d11ba000001b1f901ae8199841b6b0b0083028bf094aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000100000000000000000000000000000000000000000000000000000000a97d36a0000000000000000000000000000000000000000000000000000000000000000083104ec3a02a4c7abcfc2132ab2ff2bedc3010e22d296c35a1a89ff7260a6b8662e446adb0a073f9839c2fe2db2af14ed4d960339ef892c3f7d7decaa50da4863641212b41340000006cf86a1b841b6b0b0082d064943035f73e3a323f7ee4847ec80ca643712436868680843ccfd60b83104ec4a01e0b3c07cd1b87a8b36c6de1524b645877fe9a8a3552cf1e8861ecb5652dde2ba05545dc5bb95dfae820f3d0a043c33ccbc82445aa14d1cd0191891fb78a93288e000007d6f907d31e841b6b0b0083039c06940cab6977a9c70e04458b740476b498b214019641865af3107a4000b90764a4d73041000000000047ba1c65ce57be4cc04b4e1920e974349b9cd1a1ff1b398ba16557ba1d37960989991665f5e4faeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea6e3c945727911627b802aae7538262ae993ca117a0e481f908209137a46268ef7a6d73faa274536f1fad8544486cc4ad84c6a788aec7b156a6ee2d1cfd2a8bb1ebdd705d64f1cb251a3df7c1e81b607b232215c54d2c9e37c5903b91d7ab07700000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000068014000000000000000000000089873d3ecdda963fcdfb9abc372c6bbd516da0b6003201000000000000c803e84cc04b4e1920e974349b9cd1a1ff1b398ba165570000000000005af3107a4000000000000000000000000000000000000000358c0000000000005af3107a4000000000000000000000000000000000000000325a0000000000005af3107a400000000000000000000000000000000000000035b50000000000005af3107a4000000000000000000000000000000000000000340d0000000000005af3107a400000000000000000000000000000000000000034090000000000005af3107a4000000000000000000000000000000000000000340f0000000000005af3107a4000000000000000000000000000000000000000340c0000000000005af3107a400000000000000000000000000000000000000035df0000000000005af3107a400000000000000000000000000000000000000035e10000000000005af3107a400000000000000000000000000000000000000034010000000000005af3107a400000000000000000000000000000000000000034000000000000005af3107a400000000000000000000000000000000000000035e60000000000005af3107a400000000000000000000000000000000000000035e40000000000005af3107a400000000000000000000000000000000000000033ff0000000000005af3107a400000000000000000000000000000000000000034020000000000005af3107a400000000000000000000000000000000000000034030000000000005af3107a400000000000000000000000000000000000000035e30000000000005af3107a400000000000000000000000000000000000000035e50000000000005af3107a400000000000000000000000000000000000000034060000000000005af3107a400000000000000000000000000000000000000034070000000000005af3107a400000000000000000000000000000000000000035d60000000000005af3107a400000000000000000000000000000000000000035d50000000000005af3107a400000000000000000000000000000000000000034040000000000005af3107a400000000000000000000000000000000000000035d90000000000005af3107a400000000000000000000000000000000000000035e70000000000005af3107a400000000000000000000000000000000000000033f50000000000005af3107a400000000000000000000000000000000000000035d80000000000005af3107a400000000000000000000000000000000000000035db0000000000005af3107a400000000000000000000000000000000000000035dd0000000000005af3107a400000000000000000000000000000000000000033f90000000000005af3107a400000000000000000000000000000000000000034050000000000005af3107a400000000000000000000000000000000000000035d40000000000005af3107a400000000000000000000000000000000000000033f70000000000005af3107a400000000000000000000000000000000000000035d70000000000005af3107a400000000000000000000000000000000000000033fb0000000000005af3107a400000000000000000000000000000000000000035da0000000000005af3107a400000000000000000000000000000000000000033f40000000000005af3107a400000000000000000000000000000000000000033fa0000000000005af3107a400000000000000000000000000000000000000033f60000000000005af3107a400000000000000000000000000000000000000035dc0000000000005af3107a400000000000000000000000000000000000000033fd0000000000005af3107a4000000000000000000000000000000000000000343e0000000000005af3107a4000000000000000000000000000000000000000343c0000000000005af3107a4000000000000000000000000000000000000000378d0000000000005af3107a400000000000000000000000000000000000000033f80000000000005af3107a400000000000000000000000000000000000000037910000000000005af3107a400000000000000000000000000000000000000033fc0000000000005af3107a4000000000000000000000000000000000000000343b0000000000005af3107a4000000000000000000000000000000000000000378f0000000000005af3107a4000000000000000000000000000000000000000343f83104ec3a0f912fb2b6036afb7701b0e3b3a2eeaac407ec6e0163905fa62b9dc8b231fd572a02d6e41fdd339cf8d2e99b68d19b34353b25fb21cd8494042dd36191ddb0b3516000001b7f901b403841b6b0b008301bba294aaaaaaaacb71bf2c8cae522ea5fa455571a741068706eacfdaf54ea3b901443d719cd90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000053ec600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa94710000000000000000000000000000000000000000000000000006eacfdaf54ea3000000000000000000000000000000000000000000000000000000000000000083104ec4a0fddf17e54d7766805d0aedebb31368325a5faa2a9a1452d4ba0455c626ee40f6a0509efc0d0ed665c9812dab5d08f3bcd6437727d7f26a51990aa12fbe507768c1000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c2c02000000000033b35d0000000065cf5d5f00000000000000000000000000000000000000000000000000000000000000000000000000989680000e0003000000000033b35e0000000065cf5d62000000000000000000000000000000000000000000000000000000000000000000000000009896800009000000000073f871830387d58420e6da00827b0c9469069926d6bd30894f3ea4160517f893760d2400880af57f0c304bd1628083104ec3a00233538aa6b42c036be030d6fcfe2be35bd782e934eec6c8a4660c226ffdd590a06c4f635787503c94609a20946125fd8ab6448177cdb2b370692b29bb3e854ffd00000074f87213841e28f280827e609487627c7e586441eef9ee3c28b66662e897513f338828f20ed1c52b500084db6b524683104ec4a0f04ee31635bc13997108dc13e712ab31b7f994df71c72048d7110bae97eefb5ba00e2d115538b15d26f17849d26fd4fa613225d1df03bc88fadee6aa0b92c790d9000000aef8ac22841cc9fec08305b33394ec53c830f4444a8a56455c6836b5d2aa794289aa80b844f2b9fdb8000000000000000000000000b6966083c7b68175b4bf77511608aee9a80d2ca400000000000000000000000000000000000000000000000000477172d5200dce83104ec3a0194691675a9a7d295c834b2827b29751785ae948ae415bfa15aba3093e7e1400a05e4f10c46283b489063c126d2f915e15ed28c48bdc78d29d5513ac8279d77e52000001b7f901b403841b6b0b0083022b0f94aaaaaaaacb71bf2c8cae522ea5fa455571a74106870503868ae20816b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003d09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa9471000000000000000000000000000000000000000000000000000503868ae20816000000000000000000000000000000000000000000000000000000000000000083104ec3a0e42efffd772a3b7c0451860cf7a42f3186c5dd947baab5ca5c3610d70b59632fa06985bec360379627360f4734115430af3e37b4ab1a82d5b141cda2af023ea1de000000adf8ab08841b6b0b0082b4d894530000000000000000000000000000000000000480b844095ea7b3000000000000000000000000ca6fe749878841b96f620ec79638b13daad3d320000000000000000000000000000000000000000000000000004db1ea3398bf8983104ec3a0b56801f2c69152c0eb26c18c2aef323d9d9ca2ea3286c3d80eabac5542232759a01016e1155074425801692088be5c1bb4d9e8fe7aec33ca1877351f922cbf4da300000073f87152841b6b0b0082def9945300000000000000000000000000000000000004878a8e4b1a3d800084d0e30db083104ec3a0c016aab630a5d4e102e28dd453adab7cb2e4846a05a9fa4352c885f172180caba03ce46f41ed686e4a0876a2e3f07b2ac5519e5e5648bd7d670ffe4b79e7eb45d6000000b6f8b430841b6b0b008304cb1b944c0926ff5252a435fd19e10ed15e5a249ba19d798802830a8a80588000b844c7cdea3700000000000000000000000000000000000000000000000002830a8a80588000000000000000000000000000000000000000000000000000000000000000000083104ec4a0e5bf58d9611c480a120efe43172236a6180cfa56dc0c22231ecd6dbbb93065eda045e0539e1e02e9c6c494b99a6557c585d620aa77172619e59872e4b47ad471c5000002f0f902ed2c841b6b0b008306c8bc942db0afd0045f3518c77ec6591a542e326befd3d780b90284ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000014475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001312cfe0000000000000000000000000000000000000000000000000018f048a762311a0000000000000000000000000000000000000000000000000000000065cf5fad0000000000000000000000000000000000000000000000000000000000000042f55bec9cafdbe8730f096aa55dad6d22d44099df000bb806efdbff2a14a7c8e15944d1f4a48f9f95f663a40001f4530000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004449404b7c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aa9c1ff8f4f551628aee852ada8db49c969bbd4b0000000000000000000000000000000000000000000000000000000083104ec3a0d4be9040b5d6f1b9c543150005db9e6ea5aad4b6cd77913da7edf327aa7001b1a035198ada98958cbd32425c45c01812d610ed232e4cea4c8d32b5f47d857fe216000000aef8ac35841b6b0b00830161499406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b3000000000000000000000000ca6fe749878841b96f620ec79638b13daad3d32000000000000000000000000000000000000000000000000000000000016e360083104ec3a0bff5c169d9800ba195138a435320a0f8bb0fed6eddb98dca1936020469c10ce1a00ba87e515622cb86138f4e84337d971708b27bd779fc78b1f68bd6e57e5f31b4000004b0f904ad40841b6b0b008305aa8394ca9fbef94d7cc8662f4711a8612ff9dc1526e65080b904443593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf5fab00000000000000000000000000000000000000000000000000000000000000030a000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065f6ea550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ca9fbef94d7cc8662f4711a8612ff9dc1526e6500000000000000000000000000000000000000000000000000000000065cf645d00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000411545b7a847b27c4cd0a2a7c7af4bfe86a29d1558961f4ca845dcdb70d0c590817194bc4eab8488855b90014893c4624c69a0e5b0a0927ec4f2d2849c6d992b941b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000872e19000000000000000000000000000000000000000000000000000b02790bf9efd3800000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000042f55bec9cafdbe8730f096aa55dad6d22d44099df0001f406efdbff2a14a7c8e15944d1f4a48f9f95f663a4000bb853000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000b02790bf9efd3883104ec4a06d6536502413845a633db9bdb379ef42eb36ed74776fe3f4972affabc4cf8128a0132e4ce162eb844c716eb62baab947c7d11ad9803a0cc4fa2f128d042ff9f83a0000008cf88a06841b6b0b0082a73194530000000000000000000000000000000000000480a42e1a7d4d000000000000000000000000000000000000000000000000001ff973cafa800083104ec4a086df7b096bc6268e204061ba775f854e208436abf514b2ef92e1d7e575812464a00e5de0bf96566f39f4062d8b8347ebf1f5f9e13f63c9a1776b4bb50e451ca2bc00000105f901020e8423ace5868307016f8080b8ae6080604052611050600055348015601557600080fd5b50608a806100246000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80636ece0dfd146036575b600080548002611050029055005b603c604e565b60408051918252519081900360200190f35b6000548156fea2646970667358221220007a1e34955d5ab7768054f73fc7dd2c73c07a8aad13eaeb05491ea77efea1e564736f6c634300060c003383104ec3a0a9482f6b7a49b90a07ffd6171f1949ed12f1e794d6cb5f100e8194de832bcecfa0757839c8bd05fcf2f919040fec72d35ea77db72fe1afc0c4a3948da076efbf55000000adf8ab1f841cc9fec082c1dd94f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b30000000000000000000000006131b5fae19ea4f9d964eac0408e4408b66337b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec3a0e9ca49f9b9bbbd7d41e3910d6e5764796dd774bd2fe7d7f2c9aedb665ff5de88a04137754e6eca52980a27c053dc3f060e6d17b0b0f14263166aab7508c7848bc70000006ef86c43841c03a180825208941069d8fc5d6b2ba45971a0e52ce4acae7456e2e686e35fa931a0008083104ec3a0dd6e2b59b7cf7143057f4a2d3f4815c06b3b51de1a05d9cbf1a1f5f316ad3e98a018fdb61bbd29fa3a2704572e393d52143b9aef6533af676660673f5317018bcd000000adf8ab05841bb3d1f882fc269406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b300000000000000000000000018b71386418a9fca5ae7165e31c385a5130011b6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec3a0ba9526304d47a8dfc3c28d2fb15a97c2273c8894aadcef6b02cc78510fcf4f19a0630dd678a5ba2126d055599695010cfbfef18c46e432924f4be92dfdee602af700000272f9026f821c2a841b6b0b008304ee76942f2afae1139ce54fefc03593fee8ab2adf4a85a780b902047c39d1300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000d6000000000000000000000010000000d600000000000000000000000019dc38aeae620380430c200a6e990d5af54801177f5dc80ea862ef3316a4761133a0b0f521c9ce0ca20216422e2d7c55bb725ebe00004c931b144624e8c9e538faf7f31bc67b8b17dbc550dee3f6feee3a19b4a1b79794a81d698feaa62a6c773118dd1a2d03c0e675d828fc7f9d42c1846f8d472e6777191b14a4b6e1bdea5b8e35b5921ff847e37c8e9127f7bdda630f802c54a58f1618f46597d054cfe1ec0e3671460d2c4e57b68e6f4fb7ecb916594a828344b9fc264e1b00000000000000000000000000000000000000000000000000000000000000000000000000000000008d0300004c93000021050000000000000000000000007dac480d20f322d2ef108a59a465ccb5749371c4000827500000000000000000000000007dac480d20f322d2ef108a59a465ccb5749371c4000000000000000000000000fa6f614a574509ad2bf37fdaac4238efac526af20000000000000000000000000000000000000000000000000000000010180d090000000000000000000000000000000000000083104ec4a0fb08ebcd88ff7b736e2590222ac76cd60d87749ae01fe805091fa33f024057e9a065dd35698883277c90eeaeada50f92fb6dbdd80ee98efa75bd71b70506ad01e300000352f9034f828d9e841b6b0b008304dc6d94b279fb706f1c7f42fb214351efb16f3f6023e91080b902e436fbafad000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a0302b04e88f417bf5bc34440c992e7fc39ada92cf637025383da32d5a706019711ac621e3ff86842e57dbac9ddd524600521a4329e281798c27dd94c3d50a3e0a2f5960fae8a00bc2d0eaf91648e45cfe1e56c9df97ad53cefeb4f33595bbbf220481d16d4276177fbbdfa16908ea5337d9781ab31895c59624b2aae611d41c3a2eaeb8f7c85e356326beb4c41c1e5517b74d3dc1a0b103a98be4913f8fe007b423e8a8c7b9be3d53dbe7526b1e0ed8472e31f858ceb6d3fd7421427256628bb91c3a286b43222f32996c896821a05f021522d5ad4e64d99a43ed20f3cbd8ea44242092c1245d569844a544ed58b9b4889d4d88af33f2699ad2b1fed3db37daba0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000002282920000000000000000000000000000000003691acf6853a1a48fdfc1ef15d8a5ebc0000000000000000000000000000000023dcd99d6a7e50aaf9643bf678562a0b00000000000000000000000000000000e3c76d1f3187d0e6cac350cf3b464c2800000000000000000000000000000000ec250421db775b9a623f6f5d820ab73e00000000000000000000000000000000b554c24f9062c6fa524e1b009cba68c0000000000000000000000000000000001a4e4729e0510b7e05000ca20c8f6cce00000000000000000000000000000000f42b6548693b256b03698ce4414a6cda00000000000000000000000000000000c7932b7cd6af6da5110c196d7b6bfc850000000000000000000000000000000000000000000000000000000000000015000000000000000000000000000000000000000000000000000000000000001483104ec4a0f122b13d5ec8378378fa0bc97e61733c7615d3e031eb5f597de5d3fcd670013ea026eae1aef1f6864b46f931f70d15ee6f863e227eeaf972cffa660eb989e0d8dc0000016ff9016c06841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000406435656264333263336361333164373666376538313132633639653234323236666563343737336532343130633738386639373466353230333564353361353600000000000000000000000000000000000000000000000000000000000000403535343139366239616238363638353433653937656165643162313562353939333238613139343037646236613935316637373238306662396231616232383583104ec4a083f8946cc227d7c03c14a3eabb0e1757f091c1a699f3587047c93c99f75fa979a04f37e0d04e09ba3232cbc42a11b790f44956f342aafd8526e27b67d43eed9b1b00000156f901530f841b6b0b008303222d940122960d6e391478bfe8fb2408ba412d5600f6218702c567e6ecc000b8e47ff36ab5000000000000000000000000000000000000000000000000000000000021e1110000000000000000000000000000000000000000000000000000000000000080000000000000000000000000403e48f9dcc960774f1cf26cfe386441e4fc2e290000000000000000000000000000000000000000000000000000000065de9f9d0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a483104ec4a0699b5de7ec32b611eafd3427a05811d23b93deee66d38292fab06c71b418f7a6a00874a4b74d29bcc6e0b5a508de5c719dc539b9a6bfa7132668cac063a6fa14bc00000211f9020e81f5841b6b0b008303d4ec9480e38291e06339d10aab483c65695d004dbd5c6980b901a4ad271fa3000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c700000000000000000000000000000000000000000000000000000003bb85ad08400000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000040000000000000000000000000a1b7aba819ee4187f49187f772a88a8084c40118000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000e35e0e00000000000000000000000000000000000000000000000000129dcd68ad479e000000000000000000000000000000000000000000000000000000000000000083104ec3a044064c9ebce34ed7c18c3728562c71838030a3df73f0ed6ee05a2e019463ce7ea04a0556655a2279a06bb67a2af3cd55a6dcc244400119f3b6ab02b3964c480a070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000221a03000000000033b35f0000000065cf5d650000000000000000000000000000000000000000000000000000000000000000000000000098968000070000000000000033b3600000000065cf5d680000000000000000000000000000000000000000000000000000000000000000000000000098968000090000000000000033b3610000000065cf5d6b000000000000000000000000000000000000000000000000000000000000000000000000009896800005000000000071f86f8216508423a4c180826aa494749995e75be19bd6d48384896858715e39ede01387058592c16438588083104ec4a0f6371f911a5763f8ccc02ab331f542684e99707d3aaea090db6b681280baac72a01141638d6e887ebe7e551d5039367ac5ce8b25b0d33bdb4bf4289530c24b696500000190f9018d29841b6b0b0083038e2a942db0afd0045f3518c77ec6591a542e326befd3d780b9012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000006602a4cf6c23910610bb9fac56589aa55e736bce000000000000000000000000000000000000000000000000000000000fd26b3500000000000000000000000000000000000000000000000001493e4d51310cbc0000000000000000000000000000000000000000000000000000000065cf5fae000000000000000000000000000000000000000000000000000000000000002b06efdbff2a14a7c8e15944d1f4a48f9f95f663a4000bb8530000000000000000000000000000000000000400000000000000000000000000000000000000000083104ec3a0f851bedb30627234e35703b50c494921cbb8b447e385306ae7875eafefebdf5ea01673f3bd7f4f5d558add03346c21fe2fc4c8506e471f0c7ac2ad6727e4ef4b7500000177f9017416841b6b0b0083031f279403290a52ba3164639067622e20b90857eaded299872386f26fc10000b9010467ffb66a0000000000000000000000000000000000000000000000000000000001af60f4000000000000000000000000000000000000000000000000000000000000008000000000000000000000000046c30981a7e20710d199dac9046b0a80b4198eef0000000000000000000000000000000000000000000000000000000065cf5faf0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000000083104ec3a0284e6c130c9b8bcdaccf70984466d8a801eb24f6dd8ef63dac55d209e38fe2aaa0203718268135aeb61b10cd7712dde05d4db1a01b603d7e766b8a1a4565964a470000016ff9016c45841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403466376130366630393666616333343965666539633333383636633036316162613732643433343034303266633565653035343833353461383830336164343700000000000000000000000000000000000000000000000000000000000000406638373838346436643833306466383861633333626662643931343935333137616232663834373030663137346139353939303161633930363436373064633883104ec4a0726aaba1bb40bdbdb0761d5af4ddbbb9db0c39a8efa7613ba0e84462f0c6b709a0240f38b5ed436fa68b7554b576353619171fd5c45b4d53a9a771435a4e995fe0000002d0f902cd30841b6b0b008302a1289480e38291e06339d10aab483c65695d004dbd5c6980b902642cc4081e000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000032291388fc0430000000000000000000000000000000000000000000000000000000065cf8b0100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000000269af600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000003a3532665eb0c2617956d75b6a186a5a1e7e65670000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec4a01e759a4388b62214855369cb54c19e13d9f3431994879ab9cd4d0fe9aa0eb67ba0075bece12b6bbe04984b3bc9db5c41dffadf95f71d1f297683aca42482619a4e000000adf8ab13841b6b0b0082eb929406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b3000000000000000000000000aaaaaaaacb71bf2c8cae522ea5fa455571a74106000000000000000000000000000000000000000000000000000000000781d05c83104ec4a07ee7396fd462909f27c854d664d460a16af4bc8a401169afff2e2252d1f16728a052e752c9a9caad30b2abb0dc4f88e5a38d5784afe7210338c9585ba897742f5c0000016ff9016c2c841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403834346664323061646535386639366230383335663936396533333761353266616236633865623033383162383838663764363065353836626235343133616600000000000000000000000000000000000000000000000000000000000000403834346664323061646535386639366230383335663936396533333761353266616236633865623033383162383838663764363065353836626235343133616683104ec3a08f9c9fbc55e2f90f354814ff7b2fcfd5b4def9221babf135f8fbc17758332760a05da81293ea66bfaa57feb08054b70cb1344a8a067929e512c05538f9930d780600000072f870830428c18420e6da00827b0c9496da1d88081517a216601a5be1d5a32b861be68c87071afd498d001a8083104ec4a0e3864f5d7894004ef5c457696531d2ce365fbf837c7d0ea0e5f341567e6e7fb8a03e7e6bb5d3111747d10c08a1fa2702149c2f11efd389529353ef94fc919e1e9a000000b1f8af830cf3bd841cc9fec08301526c9487627c7e586441eef9ee3c28b66662e897513f3380b844535b355c00000000000000000000000075459972990038f7ecd0256394fb282240da424800000000000000000000000000000000000000000000000000252b0198fd680083104ec4a09cfab211e39445a0807201649051a6e5ea0185c60aaabd7d43c6794a454abd73a00e52e607ff87d7d190d049a10036a72248a09f357fa9d7afd1fc4a69252c5458000000b4f8b20d841c03a18083013b4294904550e0d182cd4aee0d305891c666a212ec8f018601e8f1c10800b84440c10f19000000000000000000000000a908651604f541ec0b82a8532be3d09e87c71e3b000000000000000000000000000000000000000000000000000000000000000183104ec4a0144589ad6a1c3a4b413c109e61113d2539941e94ee2b80b769641b629b150d82a019b54c445c145adfa4b0da418d755088631c6a3c95611620cafffb3b3b42f1ea000001b0f901ad02841b6b0b008301da7b94aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000230e8f400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001000000000000000000000000000000000000000000000000002dda282da3ccd8000000000000000000000000000000000000000000000000000000000000000083104ec3a040a576292540278d71ce24f96455005265df4005efc7ebdf41dbb548dfef9da2a016df2a80edec0b7f81ad9afbca939c4b63f46e33e25230d65d2ee5ae51cafa3000000292f9028f82073b841b6b0b008304c67f9402c83302696106b24b4ddb16fb2d97d2221acce880b902245704518f00000000000000000000000000000000000000000000000000000000000000b8f9d0d9cfad4f9d3c69e617d78fcc03756629f079c5f6dc74b0f22451f38d72df000000000000000000000000000000000000000000000000000000000000008000000000000000000000000061bb3852947a370946abdba8fa9cf45ec472f83f00000000000000000000000000000000000000000000000000000000000001800f685bd809d80e458de4d5b93bae9f8d6d83667f5535126e66407b4f133fee580709b0638fbcc3a69cde4661980a6b95821fd0beb20f002bc36b86e3614eb6cd16f4aab7e8d3ea18f9a51136df4273a91bd8571fb7feb7e73301163185feee6d2dd0eee3f75ca702094c5d034c13ff4573ca82d0a1037598806f7ea8e187c22f14a42eac9d8b3136b2005cfea814a61952d762769186347613ef25bad3e63056074b1d9e2ec75205d5bf38ee7dae12322ad32b2e03b86e4ccf11b31fe6a409032b98a9a0df455db9b18d9ae3ba585617d94bf80e98bc9000c8ee3a39a890b9ae2ef664715facd7dada7e742de2960565b3bde98d40a6b3a783ec7e9ef3d2c3a300000000000000000000000000000000945bb99497b80795dccaeb35358de56c00000000000000000000000000000000eab8545c5aabd894ebf5f3e649bb533d00000000000000000000000000000000cc1632a9ef039b145f65dd5027eed750000000000000000000000000000000004b7d245c79f98b1d17b946ceb23bde5383104ec4a00edf09961e0e8ca64c0e311b7b4bf65499b9d0c1dbba22298c5b9f9b60976b1aa02e1abc21a1e23210fa0bd7bb26e609525f4137020f361ed0ce7e21a19a41604100000073f87110841b6b0b008302a43b94b6fd349bdbfb86c55cef803178de73bc0d699462862d79883d2000841249c58b83104ec4a0f83da243b07fedf80eb5c193ec7a026d8b33ce963b28f8104abfb00f57623c79a040f42659c2770def645b7c671a5d86fcf6a7ccf7b7eb2f84a8029b955a6c7369000000adf8ab14841b6b0b0082c08d94f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b300000000000000000000000020e77ad760ec9e922fd2da8847abfbb2471b92cd00000000000000000000000000000000000000000000000000000000052f1c5283104ec4a0e6854f23e1987d0e5fe70427a685b7cf2c55367b124f85263ddda9fda697bfe5a01ced0236838a6f16239d3affe7c9905d5b164c9b9bcf6f31b50618f87cd6c11f000009f8f909f517841b6b0b0083072daa946131b5fae19ea4f9d964eac0408e4408b66337b58804b05f3191f1848bb90984e21fd0e90000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc897000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000054000000000000000000000000000000000000000000000000000000000000007400000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000e8338711218ceeeac36b7832184b832d4d0e1c920000000000000000000000000000000000000000000000000000000065cf620b00000000000000000000000000000000000000000000000000000000000004200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040593611990000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001000000000000000000000000006905c59be1a7ea32d1f257e302401ec9a1401c52000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc89700000000000000000000000000000000000000000000000001681c8edefba7cb000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000401b96cfd40000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c00000000000000000000000008f8ed95b3b3ed2979d1ee528f38ca3e481a94dd9000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc897000000000000000000000000000000000000000000000000034842a2b2f5dcc000000000000000000000000000000000000000000000000000000000000308930000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000003bd000000000000000000000000391855ac000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000e8338711218ceeeac36b7832184b832d4d0e1c9200000000000000000000000000000000000000000000000004b05f3191f1848b00000000000000000000000000000000000000000000000000000000391106c7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f87b22536f75726365223a226b7962657273776170222c22416d6f756e74496e555344223a223936332e30393530333138333133313634222c22416d6f756e744f7574555344223a223935382e38353430303431303739393939222c22526566657272616c223a22222c22466c616773223a322c22496e74656772697479496e666f223a7b224b65794944223a2231222c225369676e6174757265223a224e2f50517965506339714f6676792f58524a306a6a527a6c6a7a546c4d37564d7662586b7632623444573561585a6f68744e626479644a4b3664554a4b6442452f34744a4874627757366148674c55316269594c494b6b4e375a30556e2b5a5842504776686e4a6c6f566b7264782f4162636858426c4462312f775167572b504932303074695a5336555155347a464e474f52436d5172336872734552532f516c745978684a2f6245476d45796977656d577978634f5a757464626a4c574d7864382b6f7a776456684163306b395064745548365a77776b32366b68755657504562636e446b5138445259564838732b517561426e664168642b5a6c4c34786941704e4178742b33533266584d5362756d6557656675587861645066764b32484f7846506844614846356c38493343442b653768794d726447425a41754d427a39373563443461417a305856594c67417169514d4b673d3d227d7d000000000000000083104ec4a0d4d436b8f7335b0bcc9cb8f3455324a4407a6d3128760e51ad5ad202091f4179a06347a04ca05655280285c604524100b8fc9f926a0df2f7e62c9f18edd96b66c100000073f8710e841b6b0b0082f33e945300000000000000000000000000000000000004870aa87bee53800084d0e30db083104ec4a0056dfb8968bf50a5d083184d54997f966c0d9c072f3cc72252808e245f048bf7a05854c8f2d794371b4ebd290f0dee224b1fd5e3689a756ce1f705a1c1b2b2cca300000073f871830428c28420e6da00827b0c9496ef9f6b24702208051256bc9efbfa3cf8f77fa688013fbe85edc900268083104ec3a03eeb4e6fc92666163e8d9154c2e7d54d7bf13dddc73238cfd9bc06ad0c4d72c2a05b355164ac90384976b07cfc7fe0bfd5ebb7f882475b08ea2cc071e602cf2e75000000adf8ab16841b6b0b0082913894f55bec9cafdbe8730f096aa55dad6d22d44099df80b844a9059cbb000000000000000000000000d7aa9ba6caac7b0436c91396f22ca5a7f31664fc00000000000000000000000000000000000000000000000000000000238bb75e83104ec3a00a0d953c583ca94ade3804723c6c28d45c1cc8ce33ba805616d7a9a6a2781eaba042e1806e4f4927ef6f9155ba8fcee09e0693014637bdae1b9625dd6bf80f54b000000074f8723f841b6b0b0082cab4945300000000000000000000000000000000000004880737693eb334000084d0e30db083104ec3a02dc3f46ecd49a998986abbb69ad8279290081090d1d867599e2f3946a301a427a02ec975f19b3f799dced3c5d0570759727b8767515b5fe38dbc1d658cd680b07900000296f902930a841b6b0b008303331d942db0afd0045f3518c77ec6591a542e326befd3d7866383ad021ff3b90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012446edd9c80000000000000000000000005300000000000000000000000000000000000004000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001f4fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3cb01000000000000000000000000f7842b0c1c229ed5169826bccdbd5cf017cf654200000000000000000000000000000000000000000000000000006383ad021ff30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c3900000000000000000000000000000000000000000000000000000000065cf646400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec4a0fb3fa7f42208fb84c545f3aadee1a7cf987694d288a6f0ae67c2ecd257fb266fa024eaea70dbb20da8a87200bad3c97b92777082990459c0ebb8e839efdb340ce500000170f9016d81a2841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000406266616664363562323435343831306264306264633931373431633466366330343433656362633464383135366630633430393131646566353664366361663200000000000000000000000000000000000000000000000000000000000000406663363332336532323437363362353535373431616637396564313765613239363133353463636439313564623135313533323632386534613333323934333383104ec4a0c875bc8a816bcfdcf1f416953d43ec803bc79287570256ea455011559e390d0ba019acf6118770c22380c1e042b30cee7e08970609312867935e47adfd7c017cbf000000000000000000000000000000000000000000000000000000000000000000000000195103000000000033b3620000000065cf5d6e0000000000000000000000000000000000000000000000000000000000000000000000000098968000070000000000000033b3630000000065cf5d710000000000000000000000000000000000000000000000000000000000000000000000000098968000050000000000000033b3640000000065cf5d740000000000000000000000000000000000000000000000000000000000000000000000000098968000030000000009b7f909b4038420e6da0083058db2946131b5fae19ea4f9d964eac0408e4408b66337b587078820f6ec8000b90944e21fd0e90000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc897000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000003a1b717367ce4ac95521edb8227566d9da55cd8d0000000000000000000000000000000000000000000000000000000065cf621300000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000004059361199000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000100000000000000000000000000b12abb5bcb50c2aa6f1b54447046640010b339330000000000000000000000005300000000000000000000000000000000000004000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc89700000000000000000000000000000000000000000000000000078820f6ec800000000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000401b96cfd40000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c00000000000000000000000005a1cd43c18717bb302f46a0b77a71a118e7d9c40000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc89700000000000000000000000000000000000000000000000000000000005d181900000000000000000000000000000000000000000000000000000000000007b4000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000006000000000000000000000000005d1337000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000003a1b717367ce4ac95521edb8227566d9da55cd8d00000000000000000000000000000000000000000000000000078820f6ec800000000000000000000000000000000000000000000000000000000000005ccbbb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f87b22536f75726365223a226d6574617661756c74222c22416d6f756e74496e555344223a22362e303239343637313535333630383933222c22416d6f756e744f7574555344223a22362e313035383636373636393939393939222c22526566657272616c223a22222c22466c616773223a322c22496e74656772697479496e666f223a7b224b65794944223a2231222c225369676e6174757265223a2244564638597663437a46564a7930332b754f6e59617246675a463371464c454c68304f4f6c776e365769323549587356614655654d736163475963454238684d5a57526f372b4d6d685851316157414c6174647843617477613832574473614f786f5a2f6d79587058397a595667476768734a5233656c33756f6a4262553756663630716a6e4e6d4879772f562f4c71525259534770732b74502b557750784e544e4436385649655449306d6c64614664305770777a424b7162654b394d726d757a7a5532465a354a7474585932374a6b6a4854323530746451754b48664a66754b625041496f31715864446d336d4863573630516d517068544277756b7753706378634f42796c592b323845644d6c5674696174635a69384a6b694778476134454f4f336b68304e5877414948625a354c694139577033747562652f57535255556935643056317872597750472b747362437658413d3d227d7d000000000000000083104ec3a00deb5a3721f7430784ac857cfc2beb49316a107fb639da22eb5b8a1200671f7da072faba42ff3a7f233548326e468e00fe49258b6d9ffb4da2569712a7f6a02b3800000072f870830387d68420e6da00827b0c94b9ea4dffcd753587e1d8bf197d2135de499118b9871aa535d3d0c0098083104ec3a0cf37d45a19aff4c8f70bb8bdecd54023f3cb90a5187ae7b09c51a865c15f4958a003d4afe11698f9ced0c62469a23460a163721b118d81006096db60d82732c44f000001b8f901b547841b6b0b00838a7e1794aaaaaaaacb71bf2c8cae522ea5fa455571a7410688017ddc906ce7466cb901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000017ddc906ce7466c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009296c9bd39f3f90d83960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec4a01d784a7fdff21bec17651f828fdac920c78cd09095218f7c44dc89e50485242ea020341a11ceda62240b59645e9cef7dfc13257e7df57f9c67c34d2c57ec99d9a9000000adf8ab16841b6b0b0082eb929406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b3000000000000000000000000dae282feabdf542e1de4353f152ead0446c6b8670000000000000000000000000000000000000000000000000000000020a796fb83104ec4a0e40508d776ebeaaccf1ab9ba6eb71158c46fb7ae069377abb46acfdd8376df05a0632cb2551e32a3e15fd8bd8a96c4519f1992217cd7e2195dcb2312a0eecfe82600000094f89280841b6b0b008301f812940332fce92897679e97620a097aa515f5d7cf40348701c6bf52634000a46a627842000000000000000000000000cd1885aaf7ff8ec5858c4f391ab10e8a02db10e483104ec4a024faa93594ce857f8b84ad844257293c529d167f04ae8ba31cc1c7650a89d2aba05b2cbb0f0216307d9e3caf5c01beca5a3fb2fdf53d75a2ca2bf1ca8737ba12d2000000adf8ab3d841b6b0b0082b72c94c21b7961ff68c94b29cf20e1ab32d18e10701bff80b844095ea7b300000000000000000000000080e38291e06339d10aab483c65695d004dbd5c69ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec3a0bcc0d89f8d58ac1ebff3c6f27f1a40cfcd1994b78bb18b7718719d6e4dcbd56ca07981126cf2a07921097f5402709240aa137cc80ac369ec5e7294bb64897511060000006ff86d05841b6b0b0082520894fd6a217a51827aa294989590e072f908cb312d2b87271471148780008083104ec4a0694960deffae1a735d64b525dde993791cfa567fa02ba4d44de89169317dd894a006b42defb27ff5ef33372ffb637fe9574235be0c42a2c42cb64c5c906cfc70df0000008ff88d8303b795841b6b0b0082a4f294530000000000000000000000000000000000000280a4bede39b500000000000000000000000000000000000000000000000000000006fd50a26f83104ec4a07dce1afe81abbb4345cb9396cdce71fe301d80368aa63154912be6dd9332fcc2a0549880a438f9ab2903081a172791329c1622027ec9aa119631373429f66dc7cf00000070f86e08841b6b0b008252089480c67432656d59144ceff962e8faf8926599bcf88806ce9b26b65463368083104ec4a07645a6b5e3a21973acd2ffbcc945bc5fd19d5058e1fb049f2b95cce83cbb06baa07328f0ea1746b40744a28b744bd928fdea73e75552f74057a318d838178e23df000001d0f901cd36841b6b0b008303eaa294ca6fe749878841b96f620ec79638b13daad3d32080b901642646478b00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000016e3600000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000001dddf9a91e5b7e000000000000000000000000986ec9b44e67aca087ebbce4952ae34c0690637800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000700206efdbff2a14a7c8e15944d1f4a48f9f95f663a401ffff01e64ae4128e725868e8fe52e771e3d272e787b04101ca6fe749878841b96f620ec79638b13daad3d32001530000000000000000000000000000000000000401ffff0200986ec9b44e67aca087ebbce4952ae34c069063780000000000000000000000000000000083104ec4a0094c5a1d61fe3b000eb4428533ee382c2563c0cc522fd9d8a68b7cbf9bc37eb9a07a1fe0e497c7d360c0333448a42226291d50ed538b71c7f455a2187a929cd59000000170f9016d2d841b6b0b0083028ea894efeb222f8046aaa032c56290416c3192111c008580b9010418cbafe500000000000000000000000000000000000000000000000000000000002067c50000000000000000000000000000000000000000000000000002a2541445770c00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000005acea3cc37c18b206bff4b6954aa2484f0cc19f40000000000000000000000000000000000000000000000000000000065cf62120000000000000000000000000000000000000000000000000000000000000002000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000530000000000000000000000000000000000000483104ec4a01cf2141138dec55debb0e7ec40b5e2b1a5016d67d5313fc7af5b11ff7495d698a0229ac753169c43593ee50df59450d8a2ec0b475dbbb909468ad5f28d6493f382000001f0f901ed1a841b6b0b008304b83394aa111c62cdeef205f70e6722d1e22274274ec12f80b9018418a1308600000000000000000000000000000000000000000000000000000000035d57cf0000000000000000000000000000000000000000000000000046924f6b8eb29400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000007b2da0e5f3bbd7e824a16e7f8767de19718e81a70000000000000000000000000000000000000000000000000000000065cf5fbf0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000005300000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000083104ec4a0efd7d3656c7736e4074f1d085fd207aba35a05094cfd7f0bc679bf9a432306dba0333c599bdc952f6883b1a8477ccc3721ab1a5d244ece4e0ed164c794dd9689c1000000aef8ac22841b6b0b008302fdc694ec53c830f4444a8a56455c6836b5d2aa794289aa80b844830cbbbd000000000000000000000000274c3795dadfebf562932992bf241ae087e0a98c00000000000000000000000000000000000000000000000002c2ba1fa2600bda83104ec3a0a10c29a02441a07cae2a741261aa50de63a1e4770d4d582863b46ee0bb7593e6a03c0f828ead37187aa5fa3ff81cbd29b4086d398fefe62e4e5bff31f9bbe6997f00000298f902958197841b6b0b008303775b942db0afd0045f3518c77ec6591a542e326befd3d787064d5a3a958a1db90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000124115ff67e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000b734913c3e2bd1f653b6450ab25020a2c12bdd500000000000000000000000000000000000000000000000000000000004c4b4000000000000000000000000000000000000000000000000000064d5a3a958a1d0000000000000000000000000000000000000000000000000000000065cf5fc3000000000000000000000000000000000000000000000000000000000000002b06efdbff2a14a7c8e15944d1f4a48f9f95f663a4000bb8530000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec3a0b6606daf534823415a66f6373d8d89f9fbb0acc98dd61f88f3fb8c84f600b2d4a00ccd4ae7807264bafb4b340c3a8ed9256d299db23a326908360cb7b79afc8f7d000000adf8ab08841b6b0b0082e70494f610a9dfb7c89644979b4a0f27063e9e7d7cda3280b844095ea7b3000000000000000000000000dae282feabdf542e1de4353f152ead0446c6b8670000000000000000000000000000000000000000000000000000e35fa931a00083104ec4a03acd99b5816dd40d28c28d38a256e8f80089b5144620f1fca4fc5dadf827d679a00d4916d579b4757c4e031e5fed45b12e0b33c1e3aa0daaf8d49254298329701f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019b202000000000033b3650000000065cf5d770000000000000000000000000000000000000000000000000000000000000000000000000098968000080000000000000033b3660000000065cf5d7a000000000000000000000000000000000000000000000000000000000000000000000000009896800008000000000072f870830428c38420e6da00827b0c94e72644486167230ff18d369870e2164e532a39308711c37937e081048083104ec3a0dd1f1a507e789aeeaeadfa96ef95aeb9179cdc334eda1ed04fb8270242bb92cda0595de3a5bfdf768d0b8ec302b752fd3dbd75a2ff2f41e4db0b6363d616362fcf000009b0f909ad20841cc9fec083080a79946131b5fae19ea4f9d964eac0408e4408b66337b580b90944e21fd0e90000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc897000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000b7a97bd350fe35a72e991d60cfdfc3532518ba4b0000000000000000000000000000000000000000000000000000000065cf621b00000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000401b96cfd40000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c00000000000000000000000005a1cd43c18717bb302f46a0b77a71a118e7d9c40000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc8970000000000000000000000000000000000000000000000000000000006373a2a00000000000000000000000000000000000000000000000000000000000007b900000000000000000000000000000000000000000000000000000000000000401b96cfd40000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c000000000000000000000000096cfa2a369ec67a93c324a35e693fbeea11c059400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000005300000000000000000000000000000000000004000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc8970000000000000000000000000000000000000000000000000000000006368633000000000000000000000000000000000000000000000000000000000002f8f700000000000000000000000000000000000000000000000000000000000000200000000000000000000000088dfc573e000000000000000000828887aa4096e0000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000b7a97bd350fe35a72e991d60cfdfc3532518ba4b0000000000000000000000000000000000000000000000000000000006373a2a000000000000000000000000000000000000000000000000007fec33082093db000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc89700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000006373a2a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001eb7b22536f75726365223a22222c22416d6f756e74496e555344223a223130342e3830343037393333222c22416d6f756e744f7574555344223a223130342e3439373130323633303333363039222c22526566657272616c223a22222c22466c616773223a312c22496e74656772697479496e666f223a7b224b65794944223a2231222c225369676e6174757265223a22413044727958555175455459545844622b48724c6469685261506d637057656643683951392f5755332f2f526f5547414f2b6e5336346b336547646a374f6364497575766a70633554495669544333336375556846646e31476377634a35637a6e4a354171562f583637504e324d73774b785472666c356542632b3153676b61336e533953537362426e5336754d36427453714130614451694a64744d6b626d766953666b446333764131574f75704230626f44747858582f3357626e43664551767944302f494e4f352b533376784e4c68356e796d42366b4f73776435386d2b4557686d4e6751784e32306f58794d65444a476d726159713379344730626d39796c513455642f5868653657746c5430762f662f326c356f674b527a5269566753764453574f635038763768764d466e525a54446b3644595a384f666d2f77624365333341354d364b4d6a324c47673165707866673d3d227d7d00000000000000000000000000000000000000000083104ec4a00d717ad69a1442820b95ad77d9a17c95d909050fd12b51a0f4be7c30a35785bca079bc604473f023ac4494c4191a42cf6a34e40f91fd608f350de7b3ae8ac5d59300000070f86e0d841bb2a56a8255c29480c67432656d59144ceff962e8faf8926599bcf8880109e9b2af7adc9a8083104ec4a0dcef32dda820bf71d2d2c83dd1f3f68fdc2a56a567782f2f83a398eb1b890c5da02423673adc477042b189d3a51043bc852d70844633176e235fc6fb594446383c00000170f9016d06841b6b0b008302a99b9418b71386418a9fca5ae7165e31c385a5130011b680b9010418cbafe50000000000000000000000000000000000000000000000000000000006021fe30000000000000000000000000000000000000000000000000079deef037b04bc00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001b87ea9bf896439b116e8cca376b50093d085e300000000000000000000000000000000000000000000000000000000065cf621e000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000530000000000000000000000000000000000000483104ec4a083aa2678f4adf7bd5fa9b76d94968c48c635fdbca3403a32623dba823226cd68a00ab0a6c71169e1b962562d76d2e7555e8ed4cd38ab13cbd188f5fff0d1bf529b00000190f9018d09841b6b0b008301505494ca6fe749878841b96f620ec79638b13daad3d32080b901242646478b0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000000000000000000000000000004db1ea3398bf89000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000004d4e771c4c76e40000000000000000000000001d680b335494ad6542d0c77acd9c9504979482fc00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000002e02530000000000000000000000000000000000000401ffff02001d680b335494ad6542d0c77acd9c9504979482fc00000000000000000000000000000000000083104ec4a0a9f8064f12b94b7157a25c678a4e52483984ef437cd283b9d4433cf53364206da01d3d268339400f2be079365366ced097ddb211ba172ee1944c2faebcbce850c7000000adf8ab3b841b6b0b0082f4b29406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b3000000000000000000000000aaaaaaaacb71bf2c8cae522ea5fa455571a74106ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec3a0f20c61e8759eaa1e521cce1e6ed226e2d3a65fe438d5f3c40b904fcae37dfc5aa06185a9022913572080f536fc6288cb5d0a777b0e3840ae74cc107cca63ca29da000001b0f901ad14841b6b0b00830200dc94aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000781d05c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001000000000000000000000000000000000000000000000000009d23bf9545b2d8000000000000000000000000000000000000000000000000000000000000000083104ec3a07ff25998dcee4c8aeee269c3bda0ecdabe4a025a4165541792634824226e991da00513f5c585f00ef9e2602fd63c0cbbea4e7e400c692bdbc1c0618ca19b63a9340000008cf88a53841b6b0b0082a73d94530000000000000000000000000000000000000480a42e1a7d4d0000000000000000000000000000000000000000000000000de0ad9b58f1600083104ec3a084e943430b4fe51b2084a8caf95086b9ef1f4d5e0d5fcc288142599147e8a8c8a07aa0f6519a73a86e0901c6185795b33f0d74f7fb60023f101610444bb68c519500000072f870830428c48420e6da00827b0c9483f443e3048d29d7dcd479d6c837990fef4b328f87b6d9aae4ce6a608083104ec4a0c672a7cf4d627160810ae73636a5481d1b3a6b21d6c77379dac9420ecf08d8eda046f1d85519445ab1983a304eed6863ba8581a34e1cb4ac14c4d1943dda0c432b000002d0f902cd17841e28f280830542989480e38291e06339d10aab483c65695d004dbd5c6980b902642cc4081e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000002aed93f0f996af0000000000000000000000000000000000000000000000000000018db217582d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000002132c9a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000e10c08969d6918bc21e87d4f2e9441c1a277e03a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec4a0380de756afbb24c2d24bf87e156ea0d10d25eb4bbbb95f58798df8a6c43d7fcaa073bd19c20894caf26099999a5940bc94daccb75780252b1cd329fd1e2a8486360000006ff86d0d841bcc7c6d8254ec9480c67432656d59144ceff962e8faf8926599bcf8872c644ed8f76b0a8083104ec3a0e018e01755ef13e1112f7c8aeb093f4e3209d1483d9cf99f00223b63d3702fb5a0158c909f16cdb3f3459e400c7f8f54d44a0f42fd6c6df852f72c26072c4cf8c100000073f87107841b6b0b0082cab4945300000000000000000000000000000000000004871ff973cafa800084d0e30db083104ec4a0ae0e22981499f95136f7850f4f9e8d7898d70e95c5433fcb192cde4e7cddd9eaa07223ec550b4d081b365989f4802403973c5b67afd05342fd32adac7739f2b401000000adf8ab22841b6b0b0082b72c94814a23b053fd0f102aeeda0459215c2444799c7080b844095ea7b300000000000000000000000080e38291e06339d10aab483c65695d004dbd5c69ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec3a08adf5caa34b5d7c11366519668fa2ce5a8711a3a33b2d582e7e8b0d48769a0e7a07685d72f7e27651ae9bb8d2b0c0eef3f6fc7efb248d83ee7e4dd8e92227089360000016ff9016c46841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403466376130366630393666616333343965666539633333383636633036316162613732643433343034303266633565653035343833353461383830336164343700000000000000000000000000000000000000000000000000000000000000406337396335646137303738376566356130613463616134633230343733353166323537666665363539306235303734356233373935313732383866616438656483104ec4a073db7d33b30fe53310a1b23b063e646c6d76cb4200a9fd2c18e71d81555e6ac3a01a181855de08baf11add8a0df46ce6add7eaeb1e355863086e442e610546232a00000190f9018d0a841b6b0b00830319ce94aa111c62cdeef205f70e6722d1e22274274ec12f80b9012418a1308600000000000000000000000000000000000000000000000000000000005a94f700000000000000000000000000000000000000000000000000076a06bbaf02ea00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000007fbf2fd7702b24464f324b1c24f43b93653d53cd0000000000000000000000000000000000000000000000000000000065cf647d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000005300000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000083104ec4a0bf6022f47f244189d1d809dd132bb457a19868037f70f20041f4a6554257ed75a074c876fec018009b3a9e0a26674f385464a57073490e58a6d7e937b871352860000000aef8ac18841b6b0b008303c76e94ec53c830f4444a8a56455c6836b5d2aa794289aa80b844830cbbbd000000000000000000000000274c3795dadfebf562932992bf241ae087e0a98c00000000000000000000000000000000000000000000000005cc20757c33955683104ec3a0123b1bbe4b2d0ed4b5f96355076b2d9c72f539386bc4b2b78e9cef63be50fb92a06225fdea12b5a837cd7b3ed68110a458559ead31f111303b1adf2a6596589c4400000000000000000000000000000000000000000000000000000000000000000000000000000000000000001faf02000000000033b3670000000065cf5d7d0000000000000000000000000000000000000000000000000000000000000000000000000098968000080000000000000033b3680000000065cf5d80000000000000000000000000000000000000000000000000000000000000000000000000009896800005000000000073f87107841e28f280827e609487627c7e586441eef9ee3c28b66662e897513f3387b5efe33a56a40084db6b524683104ec3a0cec07cc96d8323bdd863e4fac120c1b4d85ad85707f617c1b5ae6ff81c0e06fda010fb6d1bf0c3c22b7b4b429b2114c5f20c257f0d7ff8456b0f463d85befec37f000004b0f904ad15841b6b0b008306fa68944e998615ad430c1ca46a69d813ede6eb3ec55edb80b90444301a3720000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000000000000000000000000000000000000052f1c5200000000000000000000000000000000000000000000000000697fd47692c5a5000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000065cf621e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000585245f79829fc75f8e2fd224b90d19449c6a0f6000000000000000000000000ab5819ac14dc28008e63ba0b8159495c06acde9e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a631b2a2c3469aa1bf5dc49977207f378d16d7d800000000000000000000000096cfa2a369ec67a93c324a35e693fbeea11c05940000000000000000000000000000000000000000000000000000000000000003000000000000000000000000a631b2a2c3469aa1bf5dc49977207f378d16d7d8000000000000000000000000ab5819ac14dc28008e63ba0b8159495c06acde9e0000000000000000000000004e998615ad430c1ca46a69d813ede6eb3ec55edb0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000005300000000000000000000000000000000000004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3cb0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006c1c420c04f4d563d6588a97693af902b87be5f100000000000000000000000000000000000000000000000000038d7ea4c6800083104ec4a0fde4415041c2a4af10f0223b65dbeb97c80ea142df8ca13185910a4f81953fdba036d66e857d9449ad68370acf37fbca013ee2695e7b23c49be23fb32f6466604c000000adf8ab06841b6b0b0082eb869406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b30000000000000000000000005940a60866255031830aa1edfdd8b56ab39765b700000000000000000000000000000000000000000000000000000000001fa01483104ec4a0e63aa611954753ca84772c57b54e0beab623d7f785f84a2a7d9304b0590d3d85a0447bf0d4de239ecec0e98ce99795b5489aad8c6de024739e72966e3120d7ce2d000007d6f907d37a841b6b0b0083039bf7940cab6977a9c70e04458b740476b498b214019641865af3107a4000b90764a4d73041000000000047ba1c65ce57be4cc04b4e1920e974349b9cd1a1ff1b398ba16557c7246dee8eb74a0065f5e4faeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee078a0af0e9e449bea1ec12dd7538262ae993ca117a0e481f908209137a46268ef7a6d73faa274536f1fad8544486cc4ad84c6a788aec7b156a6ee2d1cfd2a8bb1ebdd705d64f1cb251a3df7c1e81b607b232215c54d2c9e37c5903b91d7ab07700000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000068018000000000000000000000089873d3ecdda963fcdfb9abc372c6bbd516da0b6003201000000000000c803e84cc04b4e1920e974349b9cd1a1ff1b398ba165570000000000005af3107a4000000000000000000000000000000000000000358c0000000000005af3107a4000000000000000000000000000000000000000325a0000000000005af3107a400000000000000000000000000000000000000035b50000000000005af3107a4000000000000000000000000000000000000000340d0000000000005af3107a400000000000000000000000000000000000000034090000000000005af3107a4000000000000000000000000000000000000000340f0000000000005af3107a4000000000000000000000000000000000000000340c0000000000005af3107a400000000000000000000000000000000000000035df0000000000005af3107a400000000000000000000000000000000000000035e10000000000005af3107a400000000000000000000000000000000000000034010000000000005af3107a400000000000000000000000000000000000000034000000000000005af3107a400000000000000000000000000000000000000035e60000000000005af3107a400000000000000000000000000000000000000035e40000000000005af3107a400000000000000000000000000000000000000033ff0000000000005af3107a400000000000000000000000000000000000000034020000000000005af3107a400000000000000000000000000000000000000034030000000000005af3107a400000000000000000000000000000000000000035e30000000000005af3107a400000000000000000000000000000000000000035e50000000000005af3107a400000000000000000000000000000000000000034060000000000005af3107a400000000000000000000000000000000000000034070000000000005af3107a400000000000000000000000000000000000000035d60000000000005af3107a400000000000000000000000000000000000000035d50000000000005af3107a400000000000000000000000000000000000000034040000000000005af3107a400000000000000000000000000000000000000035d90000000000005af3107a400000000000000000000000000000000000000035e70000000000005af3107a400000000000000000000000000000000000000033f50000000000005af3107a400000000000000000000000000000000000000035d80000000000005af3107a400000000000000000000000000000000000000035db0000000000005af3107a400000000000000000000000000000000000000035dd0000000000005af3107a400000000000000000000000000000000000000033f90000000000005af3107a400000000000000000000000000000000000000034050000000000005af3107a400000000000000000000000000000000000000035d40000000000005af3107a400000000000000000000000000000000000000033f70000000000005af3107a400000000000000000000000000000000000000035d70000000000005af3107a400000000000000000000000000000000000000033fb0000000000005af3107a400000000000000000000000000000000000000035da0000000000005af3107a400000000000000000000000000000000000000033f40000000000005af3107a400000000000000000000000000000000000000033fa0000000000005af3107a400000000000000000000000000000000000000033f60000000000005af3107a400000000000000000000000000000000000000035dc0000000000005af3107a400000000000000000000000000000000000000033fd0000000000005af3107a4000000000000000000000000000000000000000343e0000000000005af3107a4000000000000000000000000000000000000000343c0000000000005af3107a4000000000000000000000000000000000000000378d0000000000005af3107a400000000000000000000000000000000000000033f80000000000005af3107a400000000000000000000000000000000000000037910000000000005af3107a400000000000000000000000000000000000000033fc0000000000005af3107a4000000000000000000000000000000000000000343b0000000000005af3107a4000000000000000000000000000000000000000378f0000000000005af3107a4000000000000000000000000000000000000000343f83104ec3a05914c1205b5b4d14e35796c3e76b72ba6db397b25837f4b0cb07d00f61cc22d8a053aa5bc58cb01c9ca70875d7375311fcbb4737f2c407d0ee7337bf3eca728ccb0000006ff86d41841b6b0b0082520894e4edb277e41dc89ab076a1f049f4a3efa700bce88703328b944c63578083104ec4a03067365b5aaa4e92b4ce3e52032d7783b9148cf26970480c2a70ba468dff13dca04742c793bd831337154787398cea7411b99e653d3757995a780c2490f769905800000a17f90a1417841b6b0b0083054ef194f02bbc9de6e443efdf3fc41851529c2c3b9e5e0c870110d9316ec000b909a421c69a1900000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000020a796fb0000000000000000000000006352a56caadc4f1e25cd6c75970fa768a3304e640000000000000000000000006352a56caadc4f1e25cd6c75970fa768a3304e6400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000008c490411a320000000000000000000000008d2b7e5501eb6d92f8e349f2febe785dd070be74000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df0000000000000000000000008d2b7e5501eb6d92f8e349f2febe785dd070be740000000000000000000000004d67d9fab6613e40b907df39937a4006eb58abaf0000000000000000000000000000000000000000000000000000000020a796fb00000000000000000000000000000000000000000000000000000000200090520000000000000000000000000000000000000000000000000000000020a7c24900000000000000000000000000000000000000000000000000000000000000020000000000000000000000003254ae00947e44b7fd03f50b93b9acfed59f9620000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003600000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000002449f86542200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000104e5b07cdb000000000000000000000000887b414d34ba20ae7ed5378380682f22071d08c2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000008d2b7e5501eb6d92f8e349f2febe785dd070be7400000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002e06efdbff2a14a7c8e15944d1f4a48f9f95f663a4000064f55bec9cafdbe8730f096aa55dad6d22d44099df00001d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000648a6a1e85000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000353c1f0bc78fbbc245b3c93ef77b1dcc5b77d2a00000000000000000000000000000000000000000000000000000000020a7c24900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001a49f865422000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064d1660f99000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df0000000000000000000000004d67d9fab6613e40b907df39937a4006eb58abaf000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec3a0b12019b5871ec5d503341120912a597c393825d14e424232014dbbb7c89a8a26a0708551a96ff86eacf4672374b9e673011b8aed69cc148cee4f7c42e1ef040be900000072f87016841b6b0b0082eda6946e55472109e6abe4054a8e8b8d9edffcb31032c586f5904616e000841249c58b83104ec4a0a44b597c9f552af32ac55a59494acdae4cee1c8abd56abd199974f6a70fe37bba03c7f86b7b9c6385fe560079bd6633c8fa1bb2309ca8e3bb5ac7df018a0bcba7a000002d8f902d504841b6b0b008302bb209480e38291e06339d10aab483c65695d004dbd5c69880214e8348c4f0000b902642cc4081e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000001936b87f0000000000000000000000000000000000000000000000000000000065cf8c5200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000214e8348c4f000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000053000000000000000000000000000000000000040000000000000000000000006735df21c3a5120550732cef61481beda98b18d20000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec3a03794ce0f399487cc736e737abd0b93a382e9682851e0133323ef775519a789dea06df7711e045d1deb40e8c5dd59f8ef55660366e05967d4ca214783e8207b0eed00000170f9016d1a841b6b0b008302a98f9418b71386418a9fca5ae7165e31c385a5130011b680b9010418cbafe5000000000000000000000000000000000000000000000000000000000030ae650000000000000000000000000000000000000000000000000003f7f7de71f3c400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000007b21be3e28e5e750d2b0da8712230bd689551e070000000000000000000000000000000000000000000000000000000065cf6481000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000530000000000000000000000000000000000000483104ec3a076bd239e64c81fbd8aa270ffef961117e0f825408742162cdfe1f25064a460eda03ae57438ec1fef35708b764d77a07e5eb2f5724a9d35f1539b6680628e4f716200000072f87083015e1f841b6b0b00827b0c94f73f9b47ac3c6fb96aa76c1731525402da5378bd870119f1803ced808083104ec3a00aab877f618fbb108308021c1e596a3032b935cf027ffd271f3852f5c08d3fcba0699538e954a4e2bce919036172b0ef6b313c243ed53897908ab68cec325b498a000000aef8ac819d841b6b0b0082c08194f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b300000000000000000000000018b71386418a9fca5ae7165e31c385a5130011b6000000000000000000000000000000000000000000000000000000000360495383104ec4a0adad668c4c7f0769424c154476492e5490f257538bf91bf6a2fddb504b0a196da003e7b1a86d957ec8cf71e876ba4fe06b691549258329b415a52a2ed3cf4966630000008cf88a53841b6b0b0082b7e994530000000000000000000000000000000000000480a42e1a7d4d000000000000000000000000000000000000000000000000008a8e4b1a3d800083104ec3a00e431f8236c8b05ca07f0451b9355962cdd896b29e7406ecc018b6e3d236a2fba04a9f3debe44ff01d3d9660898f9cf8074ff3b60b2a232918f1090e326c830c8300000070f86e1c841b6b0b0082fd0d943035f73e3a323f7ee4847ec80ca643712436868688039bb49f599a00008083104ec3a0a59068bdd349b235cccfbc0446a94fd3f966e4f1a4dc4e054727086196f88befa0338ad3c6d653e31ece71ba4ba7831fd912901ad910cfa1158c23addb490bc70100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f2d01000000000033b3690000000065cf5d8300000000000000000000000000000000000000000000000000000000000000000000000000989680000b00000000008ff88d8303b796841b6b0b0082a4f294530000000000000000000000000000000000000280a4bede39b5000000000000000000000000000000000000000000000000000000075e85ec5b83104ec4a079e87eb7e1608aae3a0fcf68fcfc60c6a3a882f4e8f7d93824357ded81dd31a4a07703d96f2b036fd98875a8ad4d2bf11b282399406726a1ae60a02c89c5b23490000000b5f8b315841cc9fec08303fe8f94ec53c830f4444a8a56455c6836b5d2aa794289aa8770cfeef5d605e0b844f2b9fdb8000000000000000000000000274c3795dadfebf562932992bf241ae087e0a98c0000000000000000000000000000000000000000000000000070cfeef5d605e083104ec3a0e7de46d37490a15c4911cffbe178d12b9d5e6aa762f12fbbc486cc52580d77bea0628f3eadc3b7029c6c5e6d862aa5507f9db686254bb6c80374c4b298647b709700000073f8710e841c03a1808301c8ab9461bb3852947a370946abdba8fa9cf45ec472f83f86f5904616e000841249c58b83104ec4a06d79b1d520c32e53a16f368c72839c94fd96e9a9339687c63e1810a96d5b03f1a010759ab0dc6cd4a9b52437bf74be57a8cc7f07a5389402f117ec8d05e4c1109200000073f87103841b6b0b008301c2d29456ac94d5f5552de5dbd2a36af07caff174c1a62286b5e620f48000841249c58b83104ec4a09f686dfbb5b43a1f146a0ff7ffc056e4786c8741d0f3ffe6749ad113d0598a1da06518a87ad6b761dc77f7b40b3c4ad352b6ac8e622323219cd69e424406c8634300000297f9029401841b6b0b0083035e96942db0afd0045f3518c77ec6591a542e326befd3d787038d7ea4c68000b90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000196c21768d3f73ee1aff5b8f2e707c01bf4263100000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000000000002b02120000000000000000000000000000000000000000000000000000000065cf5fc4000000000000000000000000000000000000000000000000000000000000002b5300000000000000000000000000000000000004000bb806efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec3a05a0f0d3482ce5f5fa7a373eee4210c99a442890ca260007771cf314780a88c1aa0782232e02f78a05d32c9f26a8d5e0e42f6f9ea19516e0cf06ba16febc1feb8ed00000410f9040d0f841b6b0b008303282994595e7160858b1ada94bda790d8699c85e595117e80b903a43593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf65a500000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001600000000000000000000000005300000000000000000000000000000000000004000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065d8a0250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000595e7160858b1ada94bda790d8699c85e595117e0000000000000000000000000000000000000000000000000000000065cf65a500000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000041e3fd50fd575b7fbf524b68ef4aa4ec341acfc929ec83f319d5e0221447fcd79d73bdc524ea96752e55c8651b0f855b80459ed4c310a4a7f98533ce7ea052d5b41b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000b76ea80062508ffb45c49c949ad160e945701226000000000000000000000000000000000000000000000000000aa87bee538000000000000000000000000000000000000000000000000000000000000080178100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002b53000000000000000000000000000000000000040001f406efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000083104ec3a0713e6f40deb1838441681ffec1662bb265d1b7d39d92ff998ddf81caabe54cb7a06f32a5b2c9a5fcad6fedbbca7feaa9cd368a87890dc5e88292c71407ee4f05d100000290f9028d2e841b6b0b0083028070945940a60866255031830aa1edfdd8b56ab39765b780b9022483a7abd800000000000000000000000000000000000000000000000018db20518055c0010000000000000000000000000000000000000000000000000000000065cf5ea200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000097c02d37c6c5787f34b7a0d47a4ef1c0b6409a3200000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b00000000000000000000000000000000000000000000000000000000000000025420c92f09097988769d1cab819f6cacb560a35f0be0f86f277ab9fa7b0fdcb7045334f0660b43925c7be69b1a6a1b3ea5968537d1250f57b5897486921e58b800000000000000000000000000000000000000000000000000000000000000027578023ebab027f8b2a667b44bf96876c588a2ab20a0f01fb7dc6dd25e9f803f318fbda33f94df1ca731862d748844a7425a9d1c6ff9341e19c0ea702aec95cf83104ec4a08a6076d866222bddb667dfe5be90be131c19b519cd3e7c50512a197613e717b5a0159e8a6bfb94233a60cb214bc7300f0863af2ebdff3df4db208e850bc2aaba2a000000adf8ab2b841b6b0b0082c08194f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b30000000000000000000000002db0afd0045f3518c77ec6591a542e326befd3d70000000000000000000000000000000000000000000000000000000005f5e10083104ec4a08c8ecf20ba358d775493e6c92b8480ae77ad362e7fe02198f6c890b8990c1b89a007e2e1754e5ed8267fdb94f097c69f9ae8a2f4f464febc7b944a69408a9e935200000196f9019305841b6b0b0083034d07940e543107044ea436896945001a469bf0f8e6552d8694b752970371b90124126928c4000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001442dcf181faa950a8bb0f409503e6adc4896b6b95000000000000000000000000000000000000000000000000000000000000000000000000000000000000005600020000000000000000000000000000000000000000000000000000000000030d4000000000000000000000000000000000000000000000000000038d7ea4c6800042dcf181faa950a8bb0f409503e6adc4896b6b950000000000000000000083104ec3a05a563a702e417c3076be23a4ed1c8e63003f36869b2839fa32d66b0d6a57323aa01c87c498ca3a859a32e3b412f89ff32ed993c4c363d3225dac05ed23500aa4d800000073f8711c841b6b0b0082cab49453000000000000000000000000000000000000048724d200ca73c00084d0e30db083104ec3a04ee36ba03a55b3e380dac1c525310cdfe652ecb4447aff0d43a79a43b6e9e836a05ac1b09b34be6cb83269f75ce9a944d9ffe496997671061b5306b9205eefce5d000000adf8ab17841b6b0b0082eb929406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b3000000000000000000000000aa111c62cdeef205f70e6722d1e22274274ec12f0000000000000000000000000000000000000000000000000000000001ba814083104ec4a024e11933896c4ffdd6f72dc9cbbc4664b300bad0a925562bc98d994264c33fe2a07c053d7073f36f10983a5e8ecf863c39476865738b586fb2f997fb3c6789e35500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000190102000000000033b36a0000000065cf5d8600000000000000000000000000000000000000000000000000000000000000000000000000989680000a0000000000000033b36b0000000065cf5d8900000000000000000000000000000000000000000000000000000000000000000000000000989680000b00000000006cf86a048420e6da008267809493352e29334190b660d188bf1c63c41a0eb6b5728084b49004e983104ec4a04bd05e9cb6e04da1c3ea32f86c0fadfe254f0d111f72ef76e978a0ff92cf883ba01c19f46a5ae4effb0d8000567ea6693ab7a3c82a7d9a534e9969a760536c2ee0000000adf8ab0c841b6b0b0082c08194f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b3000000000000000000000000414991b742fbcbe3ef00d94ff9f9a63729091711000000000000000000000000000000000000000000000000000000000741859783104ec4a0b70d1f37a1f53f8f731ea2517baa64d328ca16f2c8982879105af840c0968576a0084591335c98810bb8c24025967b8dab37f9cd493c3de123bf1bd7577b307110000000aef8ac09841b6b0b008305ac0e94ec53c830f4444a8a56455c6836b5d2aa794289aa80b844830cbbbd000000000000000000000000274c3795dadfebf562932992bf241ae087e0a98c00000000000000000000000000000000000000000000000004d4c5be2f7b997183104ec3a0baf44fd2f1d47bf344fc478c1419de16f7f36321524f83b2f5e1c69304a69ceaa014d72f1786a614be02349fa9c748977cb88818bd961c2d8c4d69bf5d207041bc000001b7f901b447841b6b0b008301ca9194aaaaaaaacb71bf2c8cae522ea5fa455571a7410687c6f3b40b6c0000b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000c6f3b40b6c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa9471000000000000000000000000000000000000000000000000000000000974f9ab000000000000000000000000000000000000000000000000000000000000000083104ec4a0c3562baf6b0836567761cca12e44bdbd0f2350dd0821227583a60e62e8aa6e9da032973be885a5ddde27ed1d73a24c2a9d3d0d88bbd96d8d5339cba1713d8759fd00000292f9028f82073c841b6b0b008304c6a39402c83302696106b24b4ddb16fb2d97d2221acce880b902245704518f00000000000000000000000000000000000000000000000000000000000000b824206b6276e688e95efe52836794562445acff75bd43ac253a6f79948b474abb000000000000000000000000000000000000000000000000000000000000008000000000000000000000000061bb3852947a370946abdba8fa9cf45ec472f83f00000000000000000000000000000000000000000000000000000000000001802e950f54a17c6695b1d8b9456a094274c989a4a98b27e20bf3914d3d301660580d20f1d4d92b9417f3849b799bd1bbb3f5020a9cdf266ac992328fca1b4073780b0b4e297b0813bd1bb9a0ddf9ca6f93a72eafb023875392750de85b4b8ac9d726f937f14a236aad6c7aa8e0f624716ee5facc47ebf297ffc52588568ef2f33a05e7544482e8ce22ffe943d745fd190498d9aa974720da1c57be2e75d15e3f990b456dca2977c510190422a6f1dab2d5446d017381c83a56d19ab85cbb8eb6ed24e672be0973599d509395a0dd3a68168553a7ff9832feea1b5a107f2d63d45703f4bea6f83630f4c660d8c87518c32fd52885f4e83e505de9fd53bde83a2b2d00000000000000000000000000000000d420e985a2fd3ce86ebb91f4d45e22b7000000000000000000000000000000003184b502f57aae989bf5da7ad2a45fa800000000000000000000000000000000b5a94f101c196b1dc60a9cfe6293f2bf000000000000000000000000000000003daa7c14d80c1fcae395042e9b62a3f283104ec3a00d5d7af66a7eb888ce82e13d874c46a73de49b9d3f55b243c7e860ffa8c74d70a0354bd9a5460f670878e2717b8a027177d137b818e13dafda42f950f69917176d000000adf8ab04841b6b0b0082c08d94f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b3000000000000000000000000aaaaaaaacb71bf2c8cae522ea5fa455571a741060000000000000000000000000000000000000000000000000000000021c3db4a83104ec4a0f7d8faaee7f99ae73c03ecf6861828bfeb3d8f17920e381a006dc31ad4c4e86ba006a8da468fa6159c7e691457bf5f584fa85447ac53c3428a4dfd2f1f7b42236d000000adf8ab18841b6b0b0082eb929406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b30000000000000000000000006131b5fae19ea4f9d964eac0408e4408b66337b5000000000000000000000000000000000000000000000000000000003e21a9bf83104ec3a0ff6ca612b0891f95f02f2827cbb0c4199c7f5a70f45ce2955e6a36c636460914a03fd8534ad6208d89a6423e44cafdcd58d4a5f49ce122d8b8d8676f80d38dffa400000390f9038d22841b6b0b0083032eac9480e38291e06339d10aab483c65695d004dbd5c6980b90324e84d494b00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000001fbab37e6534e0000000000000000000000000000000000000000000000000000000065cf8c5e00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065cf8c57000000000000000000000000000000000000000000000000000000000000001cb4f3233c61aa46b47db20258ee188bd658a3eb1b301dbb28630ebc9e70f70e0e179df7dc9b0d321025dfafe3adcad6a0397e335dcd9282a272d9ed0039e9bf2e00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000c45dd47e54297587d0f6d55872266341e0a628ac0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec3a064e0b8fa6b4f0609ce9e10414fd399fe369976f86400162fab30ee0743a24b00a0111c07e5707668e49e8a731fff704661409b46790d2ecec58f144c87d24df168000000aef8ac07841b6b0b008307ca3594ec53c830f4444a8a56455c6836b5d2aa794289aa80b8444b8a35290000000000000000000000000d8f8e271dd3f2fc58e5716d3ff7041dbe3f0688000000000000000000000000000000000000000000000000000000003b7cfba783104ec4a05b13e434266b019edf5b67da6fd9430a6c66417215c63fa7f857bd3901d9b171a0214db8d0288b97027f05af3351d151c73de9517d63ddab1568509b84ae325f7b000000b6f8b40b8417d784008303635194ec53c830f4444a8a56455c6836b5d2aa794289aa880470de4df8200000b844f2b9fdb8000000000000000000000000274c3795dadfebf562932992bf241ae087e0a98c0000000000000000000000000000000000000000000000000470de4df820000083104ec3a05f52cb55c57a1ecc4c18b0daa1260d3c2a4cab1ac1d3660d5fe968ea93388a0aa06b30b6d064948984c26d59fdabb893ca287e2a1fa31502b578650737b7ae5c6700000273f9027083068a788420e6da00831b24d094cb566e3b6934fa77258d68ea18e931fa75e1aaaa80b902046c459a2800000000000000000000000038de71124f7a447a01d67945a51edce9ff49125100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000065cfb1e000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000084704316e500000000000000000000000000000000000000000000000000000000000000668e06584340b10f2363f46c177a0f37e4eeab04a90d6e37a7ae63439e585af4b300000000000000000000000000000000000000000000000000000000000000148e06584340b10f2363f46c177a0f37e4eeab04a90d6e37a7ae63439e585af4b30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000827d99f7002baf7401a1f72e63ec5b1b662c1a970fc884d5c594c9bac5189a0b222dccb9a58114bbb8478a544863938103755fc41fe61d8cbb8bd22444e881a1f41b216f894c33dcd3e02780dd33ec0ab4933133d9ac748024f0866080f3c48e06421aa887246ecaf97c806f7e274fec2ce0ae7b997725b606d27bfeaa312ee4d5621b00000000000000000000000000000000000000000000000000000000000083104ec4a07453d2cef2e4071f7b012238bd5c335ef5dc605941870820140fe2211bc08508a07f2ce01785aeb15941beeacac62f68efa2622888c81309d4abbc6412f59c19f5000000b0f8ae8283098420e6da0083011d639406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844a9059cbb000000000000000000000000a032af19029667fc7ad842d65d524e62a16cc4ca000000000000000000000000000000000000000000000000000000003bd7ac4e83104ec4a0b1d40adbd5cd60b997dbce8c4651c0568b47e43df4887408d32023da3c7ab773a07b499de73244d3d91f8a1a2b4f1ba328048a21a0f513a06777ec6ee7f5d0cc7300000074f8720c841cc9fec082def994530000000000000000000000000000000000000488011e4fe56bde0d8184d0e30db083104ec3a01a3e30b8c2ed5256fb257b1a26e990bb306f3b2d7aa7290f593ecf7de5af4a38a04b322caa6c2c64760cf29f4a0fcaba24f6b6307bef84fbcac53b8086f043293b0000006ff86d16841b6b0b008252089480c67432656d59144ceff962e8faf8926599bcf8870ffcb9e57d63368083104ec3a0b2204407581aedcf7c584083821416d87d6690721d1b8d900f43524d1bafe938a0031001c39c46f5aea5dbe13d2d1ffbbc0431268d28d94a6b9b59a33b58842e150000006df86b03841b6b0b008302a43b949751686a5be48b89929667c92c3d2e1eaa2f6f4d80841249c58b83104ec3a02fc2a147a61e00f85488bcbcef00f8859e116e1a1c04ef52511ccda821949133a020ff66a6010f882444bd8534f8451dc2ddeeaddf04f5e76150f12517ed50ec900000008cf88a08841b6b0b0082a73194530000000000000000000000000000000000000480a42e1a7d4d000000000000000000000000000000000000000000000000001ff973cafa800083104ec4a0fe7e2847552fc8196fd32cdeedbc7e824a4aacb1b435524cae17b3f5717beae6a003f8f4fe417fa8be7b730095afd3ba7c981001546ae8c95cf4bb0102a2413f08000002d7f902d407841b6b0b0083029f7a9480e38291e06339d10aab483c65695d004dbd5c6987038d7ea4c68000b902642cc4081e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000272ee48a67e06edc0000000000000000000000000000000000000000000000000000000065cf8c62000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000b39880c7a0b752179d6d7d9ae594ab4c02d6e5b800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000600000000000000000000000005300000000000000000000000000000000000004000000000000000000000000fd6a217a51827aa294989590e072f908cb312d2b0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec4a0bce61309778a3d4b1d0ac18a94cf86582c096a549516d43fe2d95e346dfdd67ba0227dae8cd82d906b179259f0386e52c5b4db55214fdf279bf29d115a142bc11c000000aef8ac1e841b6b0b00830201c29428519c97dcf2a2794e7b542efb235c3d5bd6e6b680b844449a52f800000000000000000000000045d55434dcfc2c93767643c4ed4feff8260da640000000000000000000000000000000000000000000008d2c09496426a668000083104ec4a04c6deeb83a734caf1ef9de7e210ab06382a5fab3742b180e92f4aadc34e47cfda055cd3e0230495d430b5c979f757b6cfabea6c88c0667191604d78c2a1fd51a25000000eef8ec07841b6b0b00830220ec945940a60866255031830aa1edfdd8b56ab39765b780b88472f66b670000000000000000000000000000000000000000000000000001e539e53b30450000000000000000000000000000000000000000000000000000018db206275000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000f424083104ec3a0bec977c37665439288960c313a7ab003cf9f0f25a47a4890cb25d8ae64dd11eda048428714d8532ab3e483ec361341ba4ded11ed2959c15f1157c7c20423f577fa000001b7f901b480841b6b0b0083020d5d94aaaaaaaacb71bf2c8cae522ea5fa455571a7410687b1a2bc2ec50000b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000b1a2bc2ec500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa94710000000000000000000000000000000000000000000000000000000008719621000000000000000000000000000000000000000000000000000000000000000083104ec4a0944481cf417d8b056cedfaabc01497c8ed58f6537bdf4a3ffbb958520a7225b9a05f2de5c2f8754c0580f1672c16e477d36232e95f91841456455a0a9216f00d48000000adf8ab40841b6b0b0082eb869406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b30000000000000000000000004b9de260e4283feeb53f785aabeaa895ec5d46f9000000000000000000000000000000000000000000000000000000000010d2cc83104ec4a002977c20707ba95f71cbd621270e0857bd05fa70b918f6d66894a914850fe731a02da4fb93b6184e7694a3855592e397a40b21a29d3c17990ba99d0f6af76126e200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000216703000000000033b36c0000000065cf5d8c00000000000000000000000000000000000000000000000000000000000000000000000000989680000b0000000000000033b36d0000000065cf5d8f00000000000000000000000000000000000000000000000000000000000000000000000000989680000a0000000000000033b36e0000000065cf5d920000000000000000000000000000000000000000000000000000000000000000000000000098968000040000000000aef8ac0f841e28f2808301d6f49406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b300000000000000000000000080e38291e06339d10aab483c65695d004dbd5c6900000000000000000000000000000000000000000000000000000000003d59fb83104ec4a004b5676a5656e003c8b49c1fcaab92dc82bcc657ded354d26da75675799e6404a076b90bb42bef77e922f5b8f9f16dee511e7616d47184c51666b685177ae51ca2000000b1f8af830cf3be841cc9fec0830218ee9487627c7e586441eef9ee3c28b66662e897513f3380b844535b355c000000000000000000000000239698849c72316cafb02f3ac9bd16307218ffb9000000000000000000000000000000000000000000000000005df6d33f9ee00083104ec4a065907453487e2e8f4fe990b6fc728f767a90f3ef4cebd6910bbb03393fc60410a057175004da00a70a915ebe7e725a47f32237dc54b73df21bb90007ec85f744b6000000adf8ab0b841bb3997582f7439406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b300000000000000000000000018b71386418a9fca5ae7165e31c385a5130011b6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec4a070faa26eb799eca5aab66a816af56ad4f723d56aa4231d66d27bd483b749ae70a0016c9e988b1888fcdd3dab6d311845791d47c82804b94d42f33dc048d715e38900000177f9017411841b6b0b0083031f1b94aa111c62cdeef205f70e6722d1e22274274ec12f87093b497e292242b9010467ffb66a0000000000000000000000000000000000000000000000000000000000703806000000000000000000000000000000000000000000000000000000000000008000000000000000000000000021ecd3baa04cbcc36f60f840e2cc5ff3e18174020000000000000000000000000000000000000000000000000000000065cf648d0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000000083104ec3a092fe7af057c2d6ee0d9010b7123761248fceb0441dca20d6b022de90d0abdb4da052c54be1f120276c7ac797dbc5657a66b7b9e8ef4c3c34cf1762360d62f83d48000000adf8ab0a841b6b0b0082eb7a9406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b300000000000000000000000018b71386418a9fca5ae7165e31c385a5130011b600000000000000000000000000000000000000000000000000000000009fefe583104ec4a00ec73278c1b1edc95a9abb12b716d93aa1a6ec6868e619e264a5540582f36db5a06b0b7ed8d5e28d9935acd255bdd8d48dd9d3cb177bc01bb3ba3dd4c9a62ce8760000017df9017a80841b6b0b008301adb98080b9012560806040526000805461ffff1916905534801561001b57600080fd5b5060fb8061002a6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80630c55699c146037578063b49004e914605b575b600080fd5b60005460449061ffff1681565b60405161ffff909116815260200160405180910390f35b60616063565b005b60008054600191908190607a90849061ffff166096565b92506101000a81548161ffff021916908361ffff160217905550565b61ffff81811683821601908082111560be57634e487b7160e01b600052601160045260246000fd5b509291505056fea2646970667358221220666c87ec501268817295a4ca1fc6e3859faf241f38dd688f145135970920009264736f6c6343000812003383104ec3a01a14866610a26b645776ebba71cfea57e217c110acafc7abce50257971c18055a042dc182987fd46aae49e419e41c19bc408ad31b52d207099b2593ae649c5652700000176f9017322841b6b0b0083031f1b94aa111c62cdeef205f70e6722d1e22274274ec12f867df5ca66667eb9010467ffb66a000000000000000000000000000000000000000000000000000000000005fb700000000000000000000000000000000000000000000000000000000000000080000000000000000000000000654e899bcaeb249de1154980ccc5f9ff07d7724f0000000000000000000000000000000000000000000000000000000065cf648d0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000000083104ec4a0dc453df2378df7d0f9d094e4a0b544dc956833f18e31edb7163ce4f0c2892bd3a0491d7463a4874d6cbdd382d794c0bfd283166d1fb934857459fd5095802d00e800000072f8705a841b6b0b0082eda6946e55472109e6abe4054a8e8b8d9edffcb31032c586f5904616e000841249c58b83104ec3a0d88aecb0f49b63bb620ba268f757041ef2bae7fef00ce12fb93959d44c1b34d2a06a87de5826f67a45d9de03f475054f3445626cf41e12d9266190f8cc9e80ea00000000adf8ab1f841b6b0b0082d21c94f610a9dfb7c89644979b4a0f27063e9e7d7cda3280b844095ea7b3000000000000000000000000b6966083c7b68175b4bf77511608aee9a80d2ca400000000000000000000000000000000000000000000000001351609ff75800083104ec3a0f96d6e99dbc4fe444e8d7c4cd5c2662c8d67857ddfc5cf535297a59653cfa914a056600472dbe565c6bb494a4d157c53c20af12c245a04379fa004d223de177d70000000adf8ab06841b6b0b0082c08d94f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b3000000000000000000000000ca6fe749878841b96f620ec79638b13daad3d32000000000000000000000000000000000000000000000000000000000046bbe9683104ec4a0761075db6c54b2e395ff2b2e288571afcc3e806b836aa40782662e821068f034a018fc4c7554fa5737688ab0770e55e17b2347e3a2708f33f0f5b37a857061d5e90000008cf88a2a841b6b0b0082b80494530000000000000000000000000000000000000480a42e1a7d4d000000000000000000000000000000000000000000000000014ae97832aca65e83104ec4a03d77cac9af7e729503a0372098f7a940b2671bec890c98264426979a02317fc6a05fddb0e046f82edcd3432706062daf1278984522c02bb2bd9a844ae3b85455e90000008ff88d8303b797841b6b0b0082a4f294530000000000000000000000000000000000000280a4bede39b500000000000000000000000000000000000000000000000000000006fd4c3ff283104ec3a01180efa28172b08704ce96419c3b46e55b6557d4c8dab99141d9ee03f207c5eda049d756f6387d7894b2e60b29b404e3a81fbc0573678b5829c5ed5ea1022bedd60000016ff9016c098420e6da00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403937666163376231313737333238643832646166656135346561623034356131323037663663363136376235346631306337386231643663663864353630393600000000000000000000000000000000000000000000000000000000000000403366646534323534336630613935663765616161646638666331333236346263643663623635393033643966323862353039366130366638373338646331393583104ec3a0444eb098c74b01c34d9fa3489fca65c14252db2e16550c56754393618ddfc88da07d19f07a90388fa79054c82331c32f9069aa0c9f5ecf3a92af953080809d269d000000b1f8af830cf3bf841cc9fec0830218ee9487627c7e586441eef9ee3c28b66662e897513f3380b844535b355c000000000000000000000000daa30f818eefbb10d66433a9b4be142ddd9a5f3c000000000000000000000000000000000000000000000000002116e5b0bdc40083104ec3a02b1598cfacabd3a4bee1a0a18d885e29cf660067133a858c8fc237b4b67a19b5a06b28fd918905a13062044d029617d4a93a3eb101a5f498480a57eef84193ed450000008cf88a53841c03a18082fab894530000000000000000000000000000000000000480a42e1a7d4d00000000000000000000000000000000000000000000000000b1a2bc2ec5000083104ec3a020fc05cc370dba2ee34a669e7c0f5f1fc78a886e481cc6b25cf38ece72aed0a1a00b08fb6c84c65928d69d619b38d859608229654c0aee5ea86ab99b6253fcf43e000002d0f902cd1d841b6b0b0083038b849480e38291e06339d10aab483c65695d004dbd5c6980b902642cc4081e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000001fa69635fcf1cb0000000000000000000000000000000000000000000000000000000065cf8c6400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000185a9c800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000006857b8405a0c7d59a377eea4132a9aa5dd0fb8150000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec3a01f494204222fb52324e696649aed2832877485ce763adfaabb4887900c104a02a01abff2838eeda16a5caa19482526ba0b1e186774702a165aee55fea20501d4de00000196f901930e841b6b0b008303b5ce947dfb5e7808b5eb4fb8b9e7169537575f6ff1a2188634608d7d0b75b90124126928c400000000000000000000000000000000000000000000000000000000000000b8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000147f7cd4b00c7a432cbe2c1df57ebb9d84821189f2000000000000000000000000000000000000000000000000000000000000000000000000000000000000005600020000000000000000000000000000000000000000000000000000000000030d40000000000000000000000000000000000000000000000000000009184e72a0007f7cd4b00c7a432cbe2c1df57ebb9d84821189f20000000000000000000083104ec4a0d44a96cda86a34f2cee0c7712157b4927b5fb9aa16b359558850305f4d2a8c00a0585ac7455cb49a84dd2d270b945b971b6435c704f9706adc41b0f1d7248c6654000000adf8ab13841b6b0b0082c08194f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b3000000000000000000000000aaaaaaaacb71bf2c8cae522ea5fa455571a7410600000000000000000000000000000000000000000000000000000000000f424083104ec4a055081e4e2c837b383da22629a2a06386aecd88eb7c967bf49e52c782f77f98bba067c47f9aa0654f098b77ce4ecc1f2f6de4cc9c803a20e2acc450dfb0fab6e4060000006cf86a1f841b6b0b008267809493352e29334190b660d188bf1c63c41a0eb6b5728084b49004e983104ec4a0b9242d903907ae4f099aaa0f28fd71ce06bea13139d414ef7233795dbb59ae4da0684cdf9d9d59a0433c91bcfb621f3370b8701701d573cb35d98b0a8b44c33b9e000002d6f902d380841b6b0b008302bb089480e38291e06339d10aab483c65695d004dbd5c69865af3107a4000b902642cc4081e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000044e1d0000000000000000000000000000000000000000000000000000000065cf8c56000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005af3107a400000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c700000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000530000000000000000000000000000000000000400000000000000000000000013e89345d72c65346ff880ac790fd50809fb311c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec3a065f4429790b2b0c9ceee1764ba15c3ee5b421a5e81c190ba88e5aedec7b120f8a03038a234c705254acc50a27325de26d6bb802e65e7ebd965d6a561f99367873700000297f9029422841b6b0b00830352b0942db0afd0045f3518c77ec6591a542e326befd3d787017707ac0884aab90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000637b3b992fb77d78983b5a1ed7cd1036658c77d900000000000000000000000000000000000000000000000000017707ac0884aa000000000000000000000000000000000000000000000000000000000011d8c50000000000000000000000000000000000000000000000000000000065cf6491000000000000000000000000000000000000000000000000000000000000002b53000000000000000000000000000000000000040001f406efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec4a01fbc7448bb222224b7beb8daea5ef61e5fd8336daaafe5dece2194f83131be7ba06c2f0245ac3b7cf3324b1c381c1bac15de87d0912a8ca5541f16c697b90f2a2c000002f7f902f441841b6b0b00830355a094ca9fbef94d7cc8662f4711a8612ff9dc1526e650878e80fa99e03cd2b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf5fc600000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000008e80fa99e03cd200000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000008e80fa99e03cd20000000000000000000000000000000000000000000000000000000006b8adbc00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b5300000000000000000000000000000000000004000bb806efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000083104ec4a0c197b1084de92ab9fdc3f3ea234f9a37825070120be408f387039c061570576ea034f30853c9011b04744473ef6170804547a430308fea869e60201e69d67f82af0000016ff9016c47841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403466376130366630393666616333343965666539633333383636633036316162613732643433343034303266633565653035343833353461383830336164343700000000000000000000000000000000000000000000000000000000000000406638373838346436643833306466383861633333626662643931343935333137616232663834373030663137346139353939303161633930363436373064633883104ec3a0ac0fb868675aceca3f6269f726fc593e500e126a8e5a02398eb6c4275287bf2da074e120d7187a7cd95f3b2f735fab76c27e8884cce6794694ae96f51eb66439fa0000016ff9016c41841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000406365353764396165333262323466326532393934306135333939656364636266613436333637623464323633346462663032316633373535363435626439636200000000000000000000000000000000000000000000000000000000000000403237376332633331353066343031613362383864663036356138303331356566663438326235643637316163383833366364363437313234323665333535393883104ec3a0420e2a5d816240ca70346d5ae7d01f881c0aab272053d3b4c2b894b6ff1bb292a038726961aae0ce6b9c242d05e7a20afa042587fa6b9d7429228da5c82c27077d000002d7f902d403841b6b0b008302bb209480e38291e06339d10aab483c65695d004dbd5c69872e2f6e5e148000b902642cc4081e000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000022f8fa70000000000000000000000000000000000000000000000000000000065cf8c6a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e2f6e5e14800000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c7000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000600000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d2b4b28c4b3a81f59768016bccc7da3d771d97f50000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec4a0e6a7cf7894e3f89a681d6d5aad8a850843ac2438aa0427b02e42075226d34996a012d206a84460911281d8762495bb1b667ea9746dce15babf92b2b9a25acdfbaa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000187a02000000000033b36f0000000065cf5d950000000000000000000000000000000000000000000000000000000000000000000000000098968000090000000000000033b3700000000065cf5d98000000000000000000000000000000000000000000000000000000000000000000000000009896800006000000000273f9027083068a798420e6da00831b24d094cb566e3b6934fa77258d68ea18e931fa75e1aaaa80b902046c459a2800000000000000000000000038de71124f7a447a01d67945a51edce9ff49125100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000065cfb1ec00000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000084704316e5000000000000000000000000000000000000000000000000000000000000006ef4ca04d7971f734611386a7a4a9b7ef7b2b10a11e227301dade966e48189c4280000000000000000000000000000000000000000000000000000000000000014f4ca04d7971f734611386a7a4a9b7ef7b2b10a11e227301dade966e48189c428000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082cd1bb8255777ed57414784e2fa23870c58628df1ba9d47a8895ce0d4ae9e71904cbfe5bcd3fa4213a03f748416a08b191a0c8bed26b865858672a848211e00d61cfeaa581704f1921906f4ff36fdef1e366f4d1926d6ee6a7832ee1a574c9d01637680d0c46ce8f1d167acda001722e1fede1dc7b9f6bf62e942ed6cbdae7c15991b00000000000000000000000000000000000000000000000000000000000083104ec3a06ccc48c99408c76399354a1e2921fe2a34508f7a00f9635b20898903f38d8bcfa063b71d5dd97afd8a1324e9b1795c41d3215a69a68a8b18c8098c56b2e9d77b1f0000006ff86d15841b6b0b00825208945e809a85aa182a9921edd10a4163745bb3e36284875c5edcbc2900028083104ec4a04c31dd0417e67d4afbeb28c0e27832e8c84dda06153d39696ffcfd8c8c9f9308a01b157711f16eb49d7b3cf7b9cafd24715af839dab77f28bb280c44f2a52690f200000137f901343b841b6b0b0083040e969418b71386418a9fca5ae7165e31c385a5130011b6880905438e60010000b8c4f305d71900000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000006e533b42000000000000000000000000000000000000000000000000000000006dc603eb00000000000000000000000000000000000000000000000008f9b7b2c87be000000000000000000000000000aa916c42e129e6344acd5c6aa5e809f19a8f765c0000000000000000000000000000000000000000000000000000000065cf623683104ec3a05ec7d93fc2e68cb1fa996dee5cf78849aa7b45ae27ba61b461cc5c8aa5b2f546a04f66d2e14f50460fe8f4d600a721933483b4718bdb2ed1126f00a071cbedf20d00000390f9038d33841b6b0b00830345dd9480e38291e06339d10aab483c65695d004dbd5c6980b90324e84d494b0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000e0e1c85f2f55b0000000000000000000000000000000000000000000000000000000065cf8c6b0000000000000000000000001467b62a6ae5cdcb10a6a8173cfe187dd2c5a136ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065cf8c64000000000000000000000000000000000000000000000000000000000000001b87db9fad7ddc48c14987fa7120b2e8b8c980c0883084f02df08eee69e74d193a4936d74ef64bbd5b2c9628dcb57e8232576ff0e9411d07d7c3096482f61d74790000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000001467b62a6ae5cdcb10a6a8173cfe187dd2c5a136000000000000000000000000000000000000000000000001b5b57133f1bbc57600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000250f1ce83992db8e2e54534e36c4f2674a6a54a000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000600000000000000000000000001467b62a6ae5cdcb10a6a8173cfe187dd2c5a136000000000000000000000000cf7ea56efb482015785fbcb52ac23815aa8168bf0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec4a0e91bd2616236fbd69a47c834c701ced463ce08cb2d7092cdb0c4ff1782784defa0155474d4ff1228315fa5f23c2ee1131dafb508328115b022e09528e33cdd42b10000016ff9016c03841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403534376338316435393135363163376638313035336464356638646263333936396564663133666637333031353135383061613963376462313065323235353500000000000000000000000000000000000000000000000000000000000000403033353533653132616634356330626162346436663232663335623366323639396566633134646462366333666434346638623437636430323735613362373283104ec4a01df69a8348c62b374a9fc1974d3c62242c5560e19b2b69d7e491ccb62431f184a03a8c8bc799753a80d872e92b6c4bf0f01e8db5bf9f99fb9620d65ee6847c663800000230f9022d09841b6b0b008303383094aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901c4a15112f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000300c80000000000000000000000000000000000000000000000000000000000030a0c00000000000000000000000000000000000000000000000000000000f07f55e50000000000000000000000000000000000000000000048383f2af68a0000000000000000000000000000000000000000000000000000494f0d1b37d4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec4a0a7d0b2890bb19dfb4fe7c01ee41302bb8882ec3a44f147795a19a053430a2515a027d027ea956e21a1d15245902b47fa5d24c041777ac8193add3de192e067182800000390f9038d07841b6b0b00830345cc9480e38291e06339d10aab483c65695d004dbd5c6980b90324e84d494b00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000001c5943327aba10000000000000000000000000000000000000000000000000000000065cf8c68000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099dfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065cf8c36000000000000000000000000000000000000000000000000000000000000001c81077af1cf5c26c1058bb9def39d646facf4b05ee75e76241de80e97182bb72d71f94d3f7288595d79a6029ea47aa2d01e3bcec0886cc17a8e9d077d05819fcf000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000000000000000000000000000000000000015ce300000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000078ea8e533c834049de625e05f0b4deffe9db5f6e0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000e086ca15190c336dc80b37159f3c431746e412680000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec3a0b407866a6d5388bdc45b06e61e5e934da0c3e42bd7fbcc021a21470ef276a08aa0685b5f0bbbe3f7d4b5fb221ac20784a8c0c3868146b59a75c9ae5556ce1558440000006ff86d02841b6b0b0082520894e4edb277e41dc89ab076a1f049f4a3efa700bce887254db1c224633f8083104ec3a0ab8bce75b42bc2f1a9bba91763ea062998802dacb563ad42509dc8a7a738d28ca022df72bd219b5567b247572a24304f18fc68346109aa88f42ac176c07fa3dfe500000070f86e0d841b6b0b008256d0945e809a85aa182a9921edd10a4163745bb3e362848801167d1e130640348083104ec4a0f1b1977220f626ff07fb8bbc74880ebbb90557588c695a7c1bdba93378806bbea005c4a45982f3532e797fc24286705601be453f2d77b0d4a3ba9c01eee540b925000001faf901f783069e8d8420e6da00830f8d5c94a658742d33ebd2ce2f0bdff73515aa797fd161d987027ca57357c000b901840508941e00000000000000000000000000000000000000000000000000000000000000660000000000000000000000007dfb5e7808b5eb4fb8b9e7169537575f6ff1a2180000000000000000000000000000000000000000000000000000000000030d408e06584340b10f2363f46c177a0f37e4eeab04a90d6e37a7ae63439e585af4b38e06584340b10f2363f46c177a0f37e4eeab04a90d6e37a7ae63439e585af4b300000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000e7a8d7de780fce16451a355b86025eb36b2fb05d00000000000000000000000000000000000000000000000000000000000000680000000000000000000000004d73adb72bc3dd368966edd0f0b2148401a178e20000000000006c440066ef1eae0457e8d56a003d781569489bc5466e574b00d67dfb5e7808b5eb4fb8b9e7169537575f6ff1a218e7a8d7de780fce16451a355b86025eb36b2fb05d00000000000000000000000000000000000000000000000083104ec4a0af8d7d41ac4046cbb3778312c06d7f1f30899deef593486adab9d284e2b25d76a016019c5babf185f540a31c7e1b439df6f9da4af082c5bf5e919000b7b28edc9e00000170f9016d81e6841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000406662356231363031336631663565626335636166383861616265646530633464656266336166663763393363306366373939383266633238616331346438343300000000000000000000000000000000000000000000000000000000000000403762326164323863343134313131333738343033383263383437356262363165306564383438303932633266393931323335373761386263613663346661323083104ec4a045ed87fca68cd58e42c928c3e60ca64c4590a275b3b56625fc27ba15a02caa61a07aa58f859e998903be51477feb213630b62acc4e021fc75794950ceb3e71e76a00000230f9022d08841b6b0b008301c48a94aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901c4a15112f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000003c1bca5a656e69edcd0d4e36bebb3fcdaca60cf100000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034a160000000000000000000000000000000000000000000000167b203dbec80200000000000000000000000000000000000000000000000000172a72f32f66b900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec4a032e3964e8ee3fc2679ce986e78e1895efc746887b2905de3a99519a638f121e1a03a0f0bedfc495af8bbfd697719f655b73ca35bc9bbc1bd9f67b24ab3280da276000000b2f8b015841b6b0b00830106008080b85c6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220a88383c3010bd0f358d8b9c33d4760c0165713c61b6fb644f377e34db29cf5b564736f6c6343000807003383104ec4a0f7e50acd57536550963cf428a7887cd290572a26ac3e6cc727444110e62d2952a063ce847ba39ccb04f7cc56bf97f0e1130d3c9c00ff9d59e6d7f538b5367fab4d0000006cf86a21841b6b0b008267809493352e29334190b660d188bf1c63c41a0eb6b5728084b49004e983104ec3a05d0bc34f179ce955c34963bc91ef93026e6929f7e219c227d153c2f3ed7dfd8ea02ebeaf744e08df4f84e136f59cf33d3fab2d161017406daf28af0aba8839fd0700000156f9015339841b6b0b0083030de29418b71386418a9fca5ae7165e31c385a5130011b6873eaf90181ededeb8e4fb3bdb410000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000080000000000000000000000000b932820688f7a56f1ccc7ca1af29cee34de9aa460000000000000000000000000000000000000000000000000000000065cf623e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a483104ec3a07169b433b681712e61997a6d12f6b64a6ab69a54e5d9dc2b4adb24213746a8f2a06c6b3799d71429553827a4c1504afb7c3e9587c3906f06d4d1fdee258823067f00000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000f9010dd694bc9d741501a20f962756c95bf906b4abffadcf8fc0d6942e07f0fba71709bb5e1f045b02152e45b451d75fc0f8dd940d7e906bd9cafa154b048cfa766cc1e54e39af9bf8c6a0360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca00000000000000000000000000000000000000000000000000000000000000069a07fb4302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe39993834ba07fb4302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe39993834ca07fb4302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe39993834da0b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610380a02b2b2bb6e6c4f54be97d34c3cb4ba408b01a414d402f70acb19a57549995983fa048deb89eb3d731cdc82ec968bfb921780f11be60dcfa81592af12d5ceb9e88f9", + "new_txn_trie_node_byte": "0x02fa018ea40183012bec830e8148850e26104e268316c54494a13baf47339d63b743e7da8741db5456dac1e55680ba018d241325aca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000018ce00000000000000000000000000000000000000000000000000000000000000059000000000000012beb0000000000000000000000000002404328bf8fa70b65e3bb633a5fe906bb25c09d41655221c40420684a28475a4e81f03d67f485cb53475d63889227842ddf39e8636d04de6719b681ae7e5241d070fb00000000000000000000000000000000000000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000049e00000000000000000000000000000000000000000000000000000000000005ae000000000000000000000000000000000000000000000000000000000000079e00000000000000000000000000000000000000000000000000000000000009700000000000000000000000000000000000000000000000000000000000000b360000000000000000000000000000000000000000000000000000000000000d5a0000000000000000000000000000000000000000000000000000000000000ef20000000000000000000000000000000000000000000000000000000000001090000000000000000000000000000000000000000000000000000000000000128e000000000000000000000000000000000000000000000000000000000000138400000000000000000000000000000000000000000000000000000000000015180000000000000000000000000000000000000000000000000000000000001732000000000000000000000000000000000000000000000000000000000000014fd02000000000033b3530000000065cf5d410000000000000000000000000000000000000000000000000000000000000000000000000098968000060000000000000033b3540000000065cf5d44000000000000000000000000000000000000000000000000000000000000000000000000009896800008000000000273f9027083069e8a8420e6da00831a57bc94a658742d33ebd2ce2f0bdff73515aa797fd161d980b90204252f7b0100000000000000000000000000000000000000000000000000000000000000a50000000000000000000000006e55472109e6abe4054a8e8b8d9edffcb31032c50000000000000000000000000000000000000000000000000000000000061a800cca8723ef052c7e79e3b81e9d994e687699d9bf2d71a8c7176565a1646b289a0cca8723ef052c7e79e3b81e9d994e687699d9bf2d71a8c7176565a1646b289a00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000114000000000000000000000000042b8289c97896529ec2fe49ba1a8b9c956a86cc000000000000161700a56dd28c2c5b91dd63b4d4e78ecac713987837176800d66e55472109e6abe4054a8e8b8d9edffcb31032c5000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000014990be9707dceec2bdd6575bb6f77c96cee7c80560000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000015594a00000000000000000000000083104ec4a0553ab89b87956a3f999d78927a3496926c42bf08b8513bb0dd72f650448a0303a069dd9ff8f2ecd3c482e89a458273e8d65524441c3379a35fe4b6043e79ad047400000190f9018d09841e28f280830603d094aa111c62cdeef205f70e6722d1e22274274ec12f80b90124f41766d80000000000000000000000000000000000000000000000000000000001f9a11a0000000000000000000000000000000000000000000000000000000001ef844800000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000334d594aed899407b0378d1f57aef6113bcd22f90000000000000000000000000000000000000000000000000000018db21682b6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000000000000000000000000000000000000000000183104ec4a0cf4942e0f71ddc906635bec733f6806fcdc0d6bb1c023d37d2ca0a2cf3312c5aa038e8b80e110cb83223a78fe6077bbb9604a532144a990caa2c74350e0d73f6fa00000250f9024d11841b6b0b008302dc3494aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901e4a15112f9000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000005b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000300c800000000000000000000000000000000000000000000000000000000000300cc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000001a22c102a000000000000000000000000000000000000000000000000000000000000000083104ec4a0c8496fa98c3330a1b932bb7b5cdc03b9e12834c57fae932e7793b620a3944a10a009f16f99e0d1efd44b61e4e31305bd5b59681af33630ae878b6a3ee6fff145df00000230f9022d08841b6b0b00830228d694aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901c4a15112f90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000304740000000000000000000000000000000000000000000000000000000000030d840000000000000000000000000000000000000000000000000007274b38e958000000000000000000000000000000000000000000000048348f14a6e800000000000000000000000000000000000000000000000000004a67ab474c1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec3a009bb607946fd88367459a3a72fb23708dd4a4b5cc9e28fb77a45de83d0c62beaa01423f7cf51efcd9dfbe749393aab66402ccb90689db9e6c74d46159efed9fdb800000296f902930d841b6b0b00830373ae942db0afd0045f3518c77ec6591a542e326befd3d786686c6e5e0966b90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012446edd9c8000000000000000000000000530000000000000000000000000000000000000400000000000000000000000060d01ec2d5e98ac51c8b4cf84dfcce98d527c7470000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3cb010000000000000000000000002156369ef89d06be3a3eb1ed7ccc949a27d103ac0000000000000000000000000000000000000000000000000000686c6e5e09660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001225c3dafc5caf0000000000000000000000000000000000000000000000000000000000065cf644000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec3a060b664022e3f0141249b29303222ba050c3586b7c7487fde4fef231f98185c49a04f35ef0881deb845e24b34b38c6c3ccadd4e9d97493003f04cad792f2ad95280000000adf8ab2b841b6b0b00827c9994f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b3000000000000000000000000efeb222f8046aaa032c56290416c3192111c008500000000000000000000000000000000000000000000000000000000002067c583104ec3a02950117cf70bc59786719217c575f46b6a7b962837aa4d7a16c4db40d2b118eaa03e58c591993c3136903d61befbd183a5ce15e406123ee749242dc0a65c47296d000000aef8ac8198841b6b0b00827cb194f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b3000000000000000000000000aaaaaaaacb71bf2c8cae522ea5fa455571a7410600000000000000000000000000000000000000000000000000000000ac08492683104ec3a09ed5fc2dc3cffe1ee61a89786ae1733a3de8d22bb1d44bb2d20f7ae9803fe17ca03f245b30ab716c4c6c2632140fb44418cb30ee33115e445229359d3e422752e90000008cf88a51841b6b0b0082b7e994530000000000000000000000000000000000000480a42e1a7d4d000000000000000000000000000000000000000000000000008a8e4b1a3d800083104ec3a075859534f54a68d676d2dfaa0729cbd2049f2dba7d9ca4ccf6a376ce569937a5a050c75b9562d4074c43918135f7807c47a21954f9ca6c4ce9981e0d5b97243eea000001b7f901b412841b6b0b008301caac94aaaaaaaacb71bf2c8cae522ea5fa455571a74106879536c708910000b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000009536c7089100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa9471000000000000000000000000000000000000000000000000000000000718756f000000000000000000000000000000000000000000000000000000000000000083104ec4a09296d74c194d13ea6ad1f46a0d125aa94636c5255a12565bd2392ef0195ec568a0334c1ffc89a633bf82a0fefc25e32841917bf67d166ed90b213b6f971134bfc800000073f8710a841b6b0b008301c2d294d61b86b20e26807bdac8197039e8534f77d00b52862d79883d2000841249c58b83104ec4a047619b4a6286bf84753c2c41fb7c34da047a431938fd49c6dbdd022d89f3864aa0426dd16a1fcc1eb6e5df9f6aa925681f3aabe41956f76482acee541fb705e65000000170f9016d14841b6b0b008302a98f9418b71386418a9fca5ae7165e31c385a5130011b680b9010418cbafe500000000000000000000000000000000000000000000000000000000007ba693000000000000000000000000000000000000000000000000000a05a4923b477a00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000026d4b02be7d3f35f1ee7e124d3c2f8d2960cc2160000000000000000000000000000000000000000000000000000000065cf6446000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000530000000000000000000000000000000000000483104ec4a0fe58ff4caae5074125e499581b7f18e9a9d0e49d2f09eca21e33b7151cf8fceda028318877a5fa4f27865f34ba7c90c625024f6b0969a3883ce0e33b005e05031e000002d0f902cd17841b6b0b008302a1349480e38291e06339d10aab483c65695d004dbd5c6980b902642cc4081e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000002dad844494366d0000000000000000000000000000000000000000000000000000000065cf8c1700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000232785000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f6468f54b93b26e3fffc78393cc39fca3b38c2d40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec4a0a10101faeb6991cd3e07fad66b37dfeea809943b17d9b7ef21c570ac55ceb8eea075e4cdeaf0b4e012886d5020a90936c40756fafaa1f1b69c0cb3594d161201f000000073f8710f841b6b0b008302a43b94f4e7dc451afd9f7200f0dabcaad67011b9ae7830862d79883d2000841249c58b83104ec4a0ba41054b984bc009d1144e52109a6f16772f1c46da2d60b5ab52518962338cb4a071cf76c21b9ca1ad1148283f2ac2980f05a8f5a0942ddf171b266acbcaebd7940000006ff86d04841b6b0b0082520894e4edb277e41dc89ab076a1f049f4a3efa700bce88759bdd60f06e33d8083104ec4a0e4fddcd6615bfdb6c12e44ebfb87d5157a27195f9658f697f7a348d7c3287d96a0723bc6f023cbb4ff65ea3e884f2df2262ce2977537f2b92abe6a62a3c30cb7d80000000000000000000000000000000000000000000000000000000000000000001c9c02000000000033b3550000000065cf5d4700000000000000000000000000000000000000000000000000000000000000000000000000989680000e0000000000000033b3560000000065cf5d4a000000000000000000000000000000000000000000000000000000000000000000000000009896800007000000000071f86f830387d38420e6da00827b0c94b8e733b0e449ac8af7a1ea328dfcbf73efd7661e8701bda703f0a0098083104ec39f03108332ddf1986ea40186c7d5667d639731f511dec998f4e4319d719c7132a0019052406ce313ae42977f32d7062297b440820e39e7cbff251fcbaa8a548fe5000000adf8ab15841cc9fec082ece29406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b30000000000000000000000006131b5fae19ea4f9d964eac0408e4408b66337b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec4a0a5ca17bf0c7782a510a86449cecfb5baa87430e5da2bbb0b718fdb6d32420907a066f6fbb7c9741e19f33cc47836a962d885aceef0e63c6b30448b3d3c825364f6000000adf8ab28841b6b0b0082a7b69406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b30000000000000000000000002db0afd0045f3518c77ec6591a542e326befd3d7000000000000000000000000000000000000000000000000000000000fdad68083104ec4a0d00d2170294c956d7d435a92e54ce9f4c6c684448ba027467aef0aa5ed1062b8a01d102bc8b658492a53c294485aec44532679abbfa6ab4bd1819284bbca259fea000001f0f901ed43841b6b0b008304bd1c94aa111c62cdeef205f70e6722d1e22274274ec12f80b9018418a130860000000000000000000000000000000000000000000000000000000000046cd000000000000000000000000000000000000000000000000000005de113661b8500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000dfa6c10de2d6ed5a30fab1706f2beba13df906800000000000000000000000000000000000000000000000000000000065cf5f80000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000000000000000000000000000000000000000000001000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000005300000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000083104ec3a02fcb4b729fd0000b1b42b450036cec0b42694a89f11249c8c40e602d0c5ce364a03f1d7d30f0fea01af5a5a3bfba7280a43d9641d6e6b1c88793c2b23b5d2683cb000002b8f902b5819c841b6b0b00830670a2942db0afd0045f3518c77ec6591a542e326befd3d787470de4df820000b90244ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000014475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000004a60a526c642ce63cf3af8ff68b3f5f222611fbe00000000000000000000000000000000000000000000000000470de4df82000000000000000000000000000000000000000000000000000000000000035c3a150000000000000000000000000000000000000000000000000000000065cf5f90000000000000000000000000000000000000000000000000000000000000004253000000000000000000000000000000000000040001f406efdbff2a14a7c8e15944d1f4a48f9f95f663a40001f4f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec4a0db39309a0c13d5399b502a87c9d76976b108fb6d6ac78463af62a19465a1dd8ba05a4ea58202f9fb3760a6d016cf48bd3b2fa3c96fc555b8af6dc7c1ae35988d8c00000390f9038d0c841b6b0b0083052a289480e38291e06339d10aab483c65695d004dbd5c6980b90324e84d494b00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000003345f086275da0000000000000000000000000000000000000000000000000000000065cf8c1a00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065cf8c16000000000000000000000000000000000000000000000000000000000000001b1f4714446acc571611f3ff4025b56be7b5c38e5e4f4885643224f5d8700ce9274242ae30498ecdb4713df8b2e9ef64b3343c1dceef0f307300b3106be4de5c2900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000002775bb00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000634165eb24d5d350efb78af8ac72622dddb6abff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec3a081dc1255249c4dbb8695c8c8f08ab7803b0f54788e2509157f29d76dd09438c3a06d6543a2e7a1b16cd63b0e0047445482b5ca43c086b71f2eac0119f18f9530ab00000170f9016d20841b6b0b008302b058940122960d6e391478bfe8fb2408ba412d5600f62180b9010418cbafe500000000000000000000000000000000000000000000000000000000005815e50000000000000000000000000000000000000000000000000007276b33d5168600000000000000000000000000000000000000000000000000000000000000a000000000000000000000000003d85b63cbb64235dca5a217a4b5f6bb8a029d430000000000000000000000000000000000000000000000000000000065cf6448000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000530000000000000000000000000000000000000483104ec4a02aacddb30054f7e6d610ced3163e94d413da5f30e2af9e16574757d290d13ebaa02214396d246300511b4a13bda4a48f62991c4e65ad15ce612d8935a8d9b210af000001b0f901ad0c841b6b0b008302015a94aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021cedd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000002c360c74d996d000000000000000000000000000000000000000000000000000000000000000083104ec4a0303d6a16b00f63eec2da58e7b8ae4f7139d8ff8a292a617102ccdc7c2d50b065a034b528e36c54bb9d06b3416809c788b0f7ac2886c51e90f3f9ba896de1dbb86200000073f87105841b6b0b0082cab4945300000000000000000000000000000000000004871ff973cafa800084d0e30db083104ec4a0064b39f77afc696c24c235b1ce4b5a7ffc089a4a7ac992091795fee56e81861fa07beca5f8b43806ef35c0cbffb81d6398faea07d3f6599c9e6b207162c5e7bcb1000000adf8ab13841b6b0b0082c08d94f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b300000000000000000000000049952ff32fcbc3408d447e1e91da2b44bd2d1afe00000000000000000000000000000000000000000000000000000000052f1c5283104ec4a0637c537d964f0db815b28de799400692751a5a229d85d1cac6481de6ff5066f8a05a9405204981550280deacd5a53f0f030afe694c146734596c9739c2ddd2a1510000016ff9016c05841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000406462623237623032623464366366386362313034363035373135316234396334613366313738363539333838666239626533306166376439623339653132376200000000000000000000000000000000000000000000000000000000000000403536616438343664383931363032333739613633333330616532306435363964653537346331326333623463303163353062393162326430313862333061333483104ec4a001228b02cf5980f6a5a363dd2b9c92d5b188dd4384799a3c367eb83ba5905ea9a06da218bced7e32aea03e7340faacd9196cf8620706c3724940e86ed0a43de6980000016ff9016c0e841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000406663336331333363376335636638366331393064643534626662313931333935313935646335643832666261643866643435336166633133646333616232633700000000000000000000000000000000000000000000000000000000000000403563383532626239346561383636343232623431613334373961626332303365366635343363323263636234383330343539623634366637353164313063333483104ec4a019a522bff23191b4e6cdd24608e998b3c1eeb2881fc740fb3fcd7f67ebaf6a2fa036140611a9713b372918efabd05cfe7f49c2e3127c04dd6206d12ac868b15b970000016ff9016c09841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403962333030346339663238666663383430623235653734633538313730613661303031396266653061396632353735616464363936306433303137343731663200000000000000000000000000000000000000000000000000000000000000403831306165323931363666353664646263396266643930363864393165373265366339353236663362623764646632353138613634656161393866616665313183104ec3a02ed9872d18d77b3b0d94d62b1f8eb3c7fb1622ee9344dccfd514d09a9925fdaca05013a0a2827bca5748c9a30f76e6de96c7b05a8e2b029670286428c4c26f8df0000001b0f901ad0d841b6b0b008301c6fc94aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815b6f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001000000000000000000000000000000000000000000000000000a9bc262c31034000000000000000000000000000000000000000000000000000000000000000083104ec4a0b15d93e37f855257f870f48e30ee968d1f9cbd63d2cc44c9740e2584d90a25dea07d6b5184ac72cd70a4e71c77a93dd1163d8be5be9d95f7d5c8c200cee7dd6a5a00000074f8720c84270d47d3830286469453000000000000000000000000000000000000048713e9b7c1f7500084d0e30db083104ec4a0c96ac48181c37648a5b0a8d0d2f4bace55146b2f5428d7b962b4afec9ff7cc3aa04dad8aa8a0c9bddd606d09d4e122ed457b0bf25b76f4e632ca229dd0f9e26cee000001b0f901ad0c841e28f2808304646294aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd900000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000001df4d6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa94710000000000000000000000000000000000000000000000000000000001d5b767000000000000000000000000000000000000000000000000000000000000000083104ec3a0ef441f44f6b889df29c1a1119bc211df8a6eae0bfd78efbc507c9ae12f86fe10a01ef6c712c50296b0582aaefcc1d686d7e2bacd25c35b33a8eb6f452f331994b900000070f86e0e841bcce64e8254959480c67432656d59144ceff962e8faf8926599bcf8880106b047d0a05d2a8083104ec4a08ac1b19b679cbca37a23e14291c633fbea791663eeb436dd40e36dabc682f126a06be2a07be1d772757e86d2b766e8cdb803718d7586364c8dd414f218c7a5aaeb0000016ff9016c27841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403937666163376231313737333238643832646166656135346561623034356131323037663663363136376235346631306337386231643663663864353630393600000000000000000000000000000000000000000000000000000000000000403366646534323534336630613935663765616161646638666331333236346263643663623635393033643966323862353039366130366638373338646331393583104ec4a0ecc3e380171c179549339567274903e04ccb3bab7a78733cf98f2175f66bbcc3a071a6b8b24430ae1991f6b715c933ad6c88d7bd721b6c6dc0d851acf6c7d967620000014ff9014c2c841b6b0b0083014db394aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b8e4a15112f9000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004900000000000000000000000044e21fd6170fb52e5ef18e9651f1ded6d5b8d3ae00000000000000000000000000000000000000000000000000000000712e9cc6000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df83104ec4a0fd4450453d357bea53dbd1dd058f9065cf64b9909491764de5ead40d82554f12a06d60e9472210c8fd275379811d9da2079de57e65aeb29b93f8054325590fb97000000190f9018d18841b6b0b00830319ce94aa111c62cdeef205f70e6722d1e22274274ec12f80b9012418a13086000000000000000000000000000000000000000000000000000000000042859b000000000000000000000000000000000000000000000000000572d419eec2e000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000096f1c088a890e7aa295ca779ea62b3c4a507272d0000000000000000000000000000000000000000000000000000000065cf644c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000005300000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000083104ec4a0311734493921b2908518370e221701dd415b7e0da9933ef661cf3aeb21f3864da01e696a3cdd97074c634b4ee022867365559a295a05f179b7b3df048ceb423a28000000adf8ab02841b6b0b0082eb929406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b3000000000000000000000000aaaaaaaacb71bf2c8cae522ea5fa455571a741060000000000000000000000000000000000000000000000000000000021d2ab1283104ec4a0bfe1e4129b1ed1f151d1e3128d696c5c19d3f33af461978f5cd538137374c37da073c099fbd152c3c9611a7c294a99f5c6ddb4772a1eb8f32e48626cfee3c7b0920000000000000000000000000000000000000000000000000000000000000000000015fc01000000000033b3570000000065cf5d4d0000000000000000000000000000000000000000000000000000000000000000000000000098968000090000000000adf8ab21841cc9fec082d34894f610a9dfb7c89644979b4a0f27063e9e7d7cda3280b844095ea7b3000000000000000000000000b6966083c7b68175b4bf77511608aee9a80d2ca4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec3a090c7745e97aeb878a9974ad10fcd6df8221a329bc09f98386e20f42b541e31d4a0067097f07a0f33728e72da44308391bb425c2804c4eb109e77e4c0632188379500000297f9029402841bb13bc083094bed942db0afd0045f3518c77ec6591a542e326befd3d7878e1bc9bf040000b90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000b7acafc6d3087e14f2aa5cb4796b8ebb65ddcfd000000000000000000000000000000000000000000000000008e1bc9bf0400000000000000000000000000000000000000000000000000000000000006c0a1a00000000000000000000000000000000000000000000000000000000065cf5f93000000000000000000000000000000000000000000000000000000000000002b5300000000000000000000000000000000000004000bb806efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec4a09b3147027eb492c0d7b330e433a96748afae847c0361522c6272ae35d7cf4ecea0382343cb4f2baa9716afa95efe987ceb371b998c92823fb3a2ed13e15318f262000005f8f905f504841b6b0b00830512c89480e38291e06339d10aab483c65695d004dbd5c698801f87c3f661b0000b905842cc4081e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000017e2f1030000000000000000000000000000000000000000000000000000000065cf8c1e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fc3e1fb30d800000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000053000000000000000000000000000000000000040000000000000000000000002f2240280bfc9801852786671d8822b24f05b349000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fc3e1fb30d800000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000078ea8e533c834049de625e05f0b4deffe9db5f6e000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000053000000000000000000000000000000000000040000000000000000000000002076d4632853fb165cf7c7e7fad592dac70f4fe1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002076d4632853fb165cf7c7e7fad592dac70f4fe10000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df0000000000000000000000002f2240280bfc9801852786671d8822b24f05b3490000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec4a09ed41e256317dae7c8939e04b914fe1b89ee76aed29e4cee25bf80c06af4a511a04805d1dc363da7bf3a1758e000cc9d19459e7b45042eb461519ab3a2913d128700000230f9022d08841b6b0b008302f96c94aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901c4a15112f90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000300e40000000000000000000000000000000000000000000000000000000000030a0c00000000000000000000000000000000000000000000000000026fa9cd1d60000000000000000000000000000000000000000000000048348f14a6e800000000000000000000000000000000000000000000000000004a67ab474c1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec3a0abee34d268930a6ff3cb6e5a2c1f5ad42481c583df5e61daad40c00700cee468a03e33ee54d99a5bdaca385f70061ac01aa67c9398f659fd668a04fecbf90c3c21000000f5f8f317841b6b0b0083023ad594e2e1d82b050bb5bfec776b2653a72f093a8373ab8708e1bc9bf04000b8843e49fb7e0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000cbf4e2115ab017cbde3106af6f47a94568687a19000000000000000000000000000000000000000000000000000000000000000862617a68656e6f7600000000000000000000000000000000000000000000000083104ec4a09791596b8a8205fff189d08c8dcb1b5e7b79b14e121fcd78fa76eb68087e1a68a0439828d29b5b2c1382050e6a7db9c4569464a1e2e44c736f49f07b831c2eec9600000170f9016d1d841b6b0b008302a98f9418b71386418a9fca5ae7165e31c385a5130011b680b9010418cbafe500000000000000000000000000000000000000000000000000000000001ac1ef00000000000000000000000000000000000000000000000000022b199d789b2500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000058e539f6f5f9b51d02ae69b4f50dfe5ea1ec9b700000000000000000000000000000000000000000000000000000000065cf644f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000530000000000000000000000000000000000000483104ec4a0ae30fc2262f5377b3e04e8da575cfdfca3b159e06ef2a4ce1220ddc1fd7fef8ba05c9af4fc6c851ac9be17ab033ad3d40592c78de1ce815846c1f0b294294344be00000670f9066d07841b6b0b00830420f794aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b90604a15112f90000000000000000000000000000000000000000000000000000000000000082000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005a0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000e8e4000000000000000000000000000000000000000000000000000000000000f0b800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004b500000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000014500000000000000000000000000000000000000000000000170a0485e54095000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c1bca5a656e69edcd0d4e36bebb3fcdaca60cf10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec4a0845414890c1f6c8ba298e6f6c733dc02799e59fc5b296d021f0d5826404770afa05fe73875ba958d81c410f535fa751abb9f8e9f35960fa56e7ad91f13e51429f9000000adf8ab09841b6b0b0082eb869406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b3000000000000000000000000aa111c62cdeef205f70e6722d1e22274274ec12f00000000000000000000000000000000000000000000000000000000005a94f783104ec4a05a096d939425eee9f3a96bbcf5c9e9ee90b94de46a5acd665a969ce1499690e1a0252f5545e90720aa9fdd7f5a0a62d99132d0675551b7286b2db6f26f60f07af4000000adf8ab19841b6b0b0082eb7a9406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b300000000000000000000000018b71386418a9fca5ae7165e31c385a5130011b6000000000000000000000000000000000000000000000000000000000030ae6583104ec3a0a86881ba43428799f2ebcb3887934310e14e748c9eb9cdccaf86b61df8a05af6a05e25ccdae453a37d4959dc35ef35023c5e1742beb099871ff27a8caea61305bf0000000000000000000000000000000000000000000000000000000000000000000010d201000000000033b3580000000065cf5d5000000000000000000000000000000000000000000000000000000000000000000000000000989680000900000000027af9027783069e8b8420e6da008307d95c94581b26f362ad383f7b51ef8a165efa13dde398a487071afd498d0000b902048624ba07000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f8527b85693e60bc7d61d75b3b66e87bf95a9c2600000000000000000000000000000000000000000000000000071afd498d000000000000000000000000000026da582889f59eaae9da1f063be0140cd93e6a4f000000000000000000000000000000000000000000000000000000000000759e00000000000000000000000026da582889f59eaae9da1f063be0140cd93e6a4f00000000000000000000000000000000000000000000000000000000000003b41e655a308a9e3529bbd8dc411d2139d7a401d0d9ae4224b6acee67acdf2a491100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000cf080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec3a0cdd897a6f5dcc6fbbd25b5a9cb4ab50779b21e3262e9caf0b51f84bac036a3dea0305cf6d942091a8807e99ad3dc64d0f878f8bf24077511354069002f17c415100000027af9027783069e8c8420e6da008307d95c94581b26f362ad383f7b51ef8a165efa13dde398a4870e35fa931a0000b902048624ba07000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000007cb004886b6d2dd0347efeccf16d0702ded43ab8000000000000000000000000000000000000000000000000000e35fa931a000000000000000000000000000026da582889f59eaae9da1f063be0140cd93e6a4f00000000000000000000000000000000000000000000000000000000000075df00000000000000000000000026da582889f59eaae9da1f063be0140cd93e6a4f00000000000000000000000000000000000000000000000000000000000000642fcf17a83301aa75bcaf967246716e5de21936025f8126111284c069b1d02ec700000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000cf080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec3a02593a3305a09933d5b6274123b302a3af63eaee11ee8686c9c41a0bb525f41ada0292e557f868e5a5bf9972aa0f7ef6363e8f1bc0a66a09421ed528055c0440f2900000191f9018e820382841e28f28082ba0194760bd7fc100f217678d1b521404d2e93db7bec5f80b90124782661bc000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000065cf5d4a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000f610a9dfb7c89644979b4a0f27063e9e7d7cda320000000000000000000000002a00647f45047f05bded961eb8ecabc42780e60400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000b24fe8e001b19b496000000000000000000000000000000000000000000000000000e3b71d1085e90b83104ec3a0dc69949039c3885783a47a050066359142e71c08bfcd8683247248593c6c97cda0322c2979cb5c610173ad909a4082e6ecae12891e241037a57b5f4f5a7cd2a8a4000000b1f8af830cf3bc841cc9fec0830218ee9487627c7e586441eef9ee3c28b66662e897513f3380b844535b355c0000000000000000000000002cd72159b2e0e05c513bb9a2a8266e7235b5f23a00000000000000000000000000000000000000000000000000103ab0a5f0140083104ec3a0320436540ef64b0bd67485637ed0e6eb7b9bc14e37bc30f9bb4a99819745b9f6a00700935c10af284e965748289dfb7e9e51b4c43e6c91524546781f57a0077d1d00000297f9029416841b6b0b0083039f00942db0afd0045f3518c77ec6591a542e326befd3d787029d425ca1cffab90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000a71833fa1661ae9e040a0687bfec334d5819756b00000000000000000000000000000000000000000000000000029d425ca1cffa00000000000000000000000000000000000000000000000000000000001fc87c0000000000000000000000000000000000000000000000000000000065cf6451000000000000000000000000000000000000000000000000000000000000002b53000000000000000000000000000000000000040001f406efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec3a0eada1f4ef34585719084907bc7cb6cd275e589fd28a0d011259b533b92b9ed2ea046efb8b3d6764cf4e52ff79fc15d23b56a412ca684136bbe00b6449d0c18586c000000aef8ac3a841b6b0b008307389394ec53c830f4444a8a56455c6836b5d2aa794289aa80b844962941780000000000000000000000000d8f8e271dd3f2fc58e5716d3ff7041dbe3f0688000000000000000000000000000000000000000000000000000000006f29a44083104ec3a04f002290ca86f4dd7cf4b89045f2c7b4d1270f9ca203e37c9d26302380dd36b3a0097b79a6834588d6e0ed0db54d21730adacc7ad056ed5a23ce09578bb10cd2f5000001d0f901cd27841b6b0b008304b48f9480e38291e06339d10aab483c65695d004dbd5c6980b9016453c43f15000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c700000000000000000000000000000000000000000000000000000002cfbbd3b4000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000001c002d4e97ce210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000600000000000000000000000005300000000000000000000000000000000000004000000000000000000000000bda0f952248689320fb469256d0176a5e8246dd10000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec4a039b5ae9351a9c978b4eb4c66e94fbf1c0bfcd74deddeb7b5e386005b37025fe4a04dbaccc1ac97218a504f98258bf0cc4f023f1db49ba7f2842c4b402aabc2dc9300000156f901531a841b6b0b008302b6d6940122960d6e391478bfe8fb2408ba412d5600f62187029addc3b10f92b8e47ff36ab500000000000000000000000000000000000000000000000000000000001fe5920000000000000000000000000000000000000000000000000000000000000080000000000000000000000000d4113ba0ab0627ce2914cc65e22279dcf72b98b20000000000000000000000000000000000000000000000000000000065cf64520000000000000000000000000000000000000000000000000000000000000002000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a483104ec3a07fa0eac0e9caa7b530500379f60d95361dcf34fd3e6e870a19b97a0f883ac8b5a049f5c632ef55510522acf527ac63d834da4c6bb55c64a601b9c848a93904b715000002d0f902cd07841b6b0b008302a1289480e38291e06339d10aab483c65695d004dbd5c6980b902642cc4081e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000010fe4462828cb80000000000000000000000000000000000000000000000000000000065cf8c2900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000000d1422e00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000483d1e4ab0fe0b51d1635f81e6d2c7767f163cf0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec4a0531a15025f2d0a166acefdc3a6eb02b3244db4665e28d8786fa4eb042bd1b97ea0167aa603f0aa0a2d72de4700b589d08080fb868108833d874c9bd9342e1a0fc200000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ec402000000000033b3590000000065cf5d530000000000000000000000000000000000000000000000000000000000000000000000000098968000070000000000000033b35a0000000065cf5d560000000000000000000000000000000000000000000000000000000000000000000000000098968000070000000000aef8ac11841e28f2808301d70c9406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b300000000000000000000000080e38291e06339d10aab483c65695d004dbd5c690000000000000000000000000000000000000000000000000000000001236cd083104ec4a0935870dbd80f7494bbff8b3643b51d551a28a66bca71a8d77ef9725e2202324ca042bc799abb90ddacc6d9c0485a70b4985ca7f5f775f1e8a6b8540b7ef95cb88300000170f9016d0c841b6b0b008302a99b9418b71386418a9fca5ae7165e31c385a5130011b680b9010418cbafe50000000000000000000000000000000000000000000000000000000001daab9f0000000000000000000000000000000000000000000000000025cfe733288fd000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000e8a10a27a426e45d0dc9e6fe7d0706ecca5bb5c90000000000000000000000000000000000000000000000000000000065cf61fa000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000530000000000000000000000000000000000000483104ec3a0c607fe1ca9647c3b3d53ca980ca251c38652d452f4dd8c2739b3ce567d4ae10ba0206b5cf5ebffacc4ec970a94e98d30ab3a279a3a19fe2d0d9e20f3ceab4ddcd5000000adf8ab01841b6b0b0082c08d94f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b3000000000000000000000000aaaaaaaacb71bf2c8cae522ea5fa455571a74106000000000000000000000000000000000000000000000000000000000230e8f483104ec4a0a9f18510c4a155f424e875116ac000c50ef3c12fc3cb4c78e0004b00b94b5459a02a1749dfb081e998f1576a729aa07d68ff8ce93b21410cb9d2518353714cc029000001d7f901d407841b6b0b008306055494aa111c62cdeef205f70e6722d1e22274274ec12f87354a6ba7a18000b9016467ffb66a000000000000000000000000000000000000000000000002490d4b639b45400000000000000000000000000000000000000000000000000000000000000000800000000000000000000000008676280fd21c0c4884d025cda7d33cb0d8714e1b0000000000000000000000000000000000000000000000000000000065cf5f900000000000000000000000000000000000000000000000000000000000000002000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000ca77eb3fefe3725dc33bccb54edefc3d9f764f97000000000000000000000000000000000000000000000000000000000000000183104ec3a0d6fd9d16cf26bd1d404362b7faea51d3b1ecabcca3c1bb517b7c4b3ed18e31b6a043af881b21add53846cbebf1432995a7ffa39f9f464c8385f9e64ca42a8c0cd1000000aef8ac04841b6b0b008301b0329406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b300000000000000000000000020e77ad760ec9e922fd2da8847abfbb2471b92cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec4a0a370ab1ff339d2a0621c01b3acd0134ef838a8a44b45414bc847e563b99e1034a03a70d4f9035dd45e7bddf39adde6f760183f5c06c33234dd77941ea9db56f65a000002d7f902d404841b6b0b0083029f7a9480e38291e06339d10aab483c65695d004dbd5c6987038d7ea4c68000b902642cc4081e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000273408f102f1b6870000000000000000000000000000000000000000000000000000000065cf8c2b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000b39880c7a0b752179d6d7d9ae594ab4c02d6e5b800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000600000000000000000000000005300000000000000000000000000000000000004000000000000000000000000b3f6c27bd09e7c96b349d9c844425402ca4ffc6c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec4a07b7aab574a9df8b5550e7dcfea0d87fde4759976fa8dba68bdc360a864dd87e2a0339763b7356217293d8df104c0e2199e2693de22fed4f984b6ff6f5653875f02000002d0f902cd0c841b6b0b00830332d79480e38291e06339d10aab483c65695d004dbd5c6980b902642cc4081e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000021b510f50000000000000000000000000000000000000000000000000000000065cf8c2b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000ca77eb3fefe3725dc33bccb54edefc3d9f764f9700000000000000000000000000000000000000000000001ec9267e496c2eed9e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000009da72cbd2f262a898b3e47e56ebb385d8fb160310000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000ca77eb3fefe3725dc33bccb54edefc3d9f764f97000000000000000000000000197587ffee04c183b8d129f3bd192ec79f2df8ed0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec4a0d471da2e709cb335326300e855bd57bbf8987631549184037c6befc7184fdf02a06a74fd7b7e39b4f5db40189623066116ffa145bb545897ab3a6c44d2992ffd790000008df88b0d842378a9cf8301a2cc94530000000000000000000000000000000000000480a42e1a7d4d000000000000000000000000000000000000000000000000001442d92927700083104ec3a06db22ecdb8c44e05d295d0a470c4394d010a70d5fad09a99ee5ab937b6e6feefa05fd8ab427a2f685894f51bc27f5c6ef0711d797170738482d10b54497a5c7cf800000890f9088d16841cc9fec083045764946131b5fae19ea4f9d964eac0408e4408b66337b580b90824e21fd0e90000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc897000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000005e000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000388a31bc568dd6ebaaa3b1f52078c00070bf98200000000000000000000000000000000000000000000000000000000065cf61fc00000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004063407a490000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc897000000000000000000000000e64ae4128e725868e8fe52e771e3d272e787b04100000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000005300000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000d3c36a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000012344a3b6400000000000000000115c661b0c960a300000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000388a31bc568dd6ebaaa3b1f52078c00070bf9820000000000000000000000000000000000000000000000000000000000d3c36a90000000000000000000000000000000000000000000000000110382c8969309f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc8970000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000d3c36a900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ec7b22536f75726365223a22222c22416d6f756e74496e555344223a223232322e343934303630393232222c22416d6f756e744f7574555344223a223232322e3336393835323831303034323931222c22526566657272616c223a22222c22466c616773223a312c22496e74656772697479496e666f223a7b224b65794944223a2231222c225369676e6174757265223a2254354f557571596e5533656c677055396d4967546f7a7a54557545662b6a32714e31567042437663634d414d636c62366f6b574158712f596666532b7449655852642b4d686f6d5350324f64515137446331746b73794a4c545870344438794c51616a744a43664e30434b48532b43756251316e30633156586b3452724f744a3178544f793567686d31314c7a4f53553454797a3758656b69697274396d4379522b6f464a6e5351386f70305553475a78452b4848665757574e714a37527066364279374545376235684c323454707979554f5556416b4d434844736a51342f324e426557763041794c7a756473386e72564661792f6e7465552f6164595067394954514f63766f764d51615335764d7a566c372f4d4e6e6d6747767330474b536338553746454130446b76415664674d354c79706375726152484178377a554b66696542794c585170457a623779705061566559673d3d227d7d000000000000000000000000000000000000000083104ec3a0d3bce97a499c21c9e45aada4faf007373880d779bc0d04492975275de5a1104ea0469ea393e1664cb67d01d6731da35a7ba5001d0939b949a9742895a62d4b3b58000002d7f902d40a841b6b0b00830277459480e38291e06339d10aab483c65695d004dbd5c6987279b35eccac800b902642cc4081e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000001d3dee50000000000000000000000000000000000000000000000000000000065cf61f4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000279b35eccac80000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c7000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000600000000000000000000000005300000000000000000000000000000000000004000000000000000000000000f4c9ebc24fdc9365af70b50fcc5db690727f4d2f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec3a048d07fc682185f39b8dbd23d133dfffc9d571d65f9666959972d19d39c223199a06abd87509d30d13f9ebf2f39ba98a2b016f50949ff56a5fa2158ad99c1526895000001f0f901ed19841b6b0b00830484aa94aa111c62cdeef205f70e6722d1e22274274ec12f80b9018418a1308600000000000000000000000000000000000000000000000000000000035d57cf000000000000000000000000000000000000000000000000004669d9b462d94c00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000007b2da0e5f3bbd7e824a16e7f8767de19718e81a70000000000000000000000000000000000000000000000000000000065cf5f9b0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000005300000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000083104ec3a07099ad585abbe34b4a0fbbdb439e08e8c5ad971186b643ffdf768e6c41d4a881a0110016f65fbb1db83e3fb9e0d276a0b460fe4a200b84ce3fe86e4df6429ee1ee00000210f9020d1c841b6b0b00830391049480e38291e06339d10aab483c65695d004dbd5c6980b901a4ad271fa3000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c7000000000000000000000000000000000000000000000000000000001244db0b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006857b8405a0c7d59a377eea4132a9aa5dd0fb8150000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000458f300000000000000000000000000000000000000000000000000005b1c9a228c2a000000000000000000000000000000000000000000000000000000000000000083104ec3a02e493a1637a22779df70d0a34672cd24e3a80dee6fa4d5ddc23bbc21b9a6c577a05abd6be21cef3c601ef1a04f3d94d6951ad6f7548c43981a6e68c5f179a787bb000000b6f8b421841b6b0b008303208594ec53c830f4444a8a56455c6836b5d2aa794289aa8802c68af0bb140000b844f2b9fdb8000000000000000000000000274c3795dadfebf562932992bf241ae087e0a98c00000000000000000000000000000000000000000000000002c68af0bb14000083104ec4a0d90626be654564f972bbeba32a8a77f3f459b7bde53f391c4bf8a44d2a781fa4a04c1979fb14823c8887c1bc862b5eed863e4c70c8666edfb2d02cd7b39bb0fd3700000272f9026f821c29841b6b0b008304edd4942f2afae1139ce54fefc03593fee8ab2adf4a85a780b902047c39d1300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000d6000000000000000000000010000000d600000000000000000000000068ee9bec9b4dbb61f69d9d293ae26a5aacb2e28f3af87783e5e41bc35e1c36d03e43c91aa9eb2f380f25e7dd551274883b64397f0000413e7ddb7398704111e18336a581e4f5828d18334669530946d68b41c8714a6c49e822e565f6b7eafa05eb57e57294fe3ad2a0e893d395e0513f11a201adcfb592c51cb8d06f4bc3b027d901a67a35e2df916f5fff66ff523292ae8de6f92d353316672a81eabe21a365c46da275af820a188a89e5e8f16b7cb31803a94c0e84deaf171b00000000000000000000000000000000000000000000000000000000000000000000000000000000008d030000413e0000000a0000000000000000000000002a5c54c625220cb2166c94dd9329be1f8785977d000827500000000000000000000000007dac480d20f322d2ef108a59a465ccb5749371c4000000000000000000000000597ffed7bacccfd7e63315a8912b7c0b84258c04000000000000000000000000000000000000000000000000000000000262929b0000000000000000000000000000000000000083104ec3a0386cb4189d92acf5d7d570c3ff9f97fa775168c079938346b58e7ecab9a100e2a0354168ebc77f29df036b746e2936a6ed09c6e134d59e41dba1d428ca6345fb45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001cf302000000000033b35b0000000065cf5d590000000000000000000000000000000000000000000000000000000000000000000000000098968000060000000000000033b35c0000000065cf5d5c000000000000000000000000000000000000000000000000000000000000000000000000009896800009000000000072f870830387d48420e6da00827b0c948d4fdc55b38dc07328542cc6b87487518021da2a871f9e80ba8040008083104ec4a06448351025863c81296ba4a2d51345a635bfd1ce3226b63e5a075bb828455059a00790f20fb07a99059f313faf298e16227661ffeba05e069069828d70db07dbfa000002d0f902cd0e841b6b0b0083036b0a9480e38291e06339d10aab483c65695d004dbd5c6980b902642cc4081e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000070c78552776f0000000000000000000000000000000000000000000000000000000065de9f9300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000566ef00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000403e48f9dcc960774f1cf26cfe386441e4fc2e290000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec3a0784c112c3de96730ceb896dfb7607c2c48622b72aad2a93e3f8e9502dbb772c3a00f827f9b7f55bb42740f2d7768d53cb0e05e4b19ceddbfbe8c4fb23f463d3664000001b0f901ad2d841b6b0b008302a9b794aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029db6c99000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec3a08d31bb136e555ac1c0eec28f526e493773dea219f465077779b0c3bf6083cd02a074163bc9e194e76aeeda5d20c5f0a45132fa799fdc959f860378ecb28bb00b3100000070f86e12841b6b0b0082520894e4edb277e41dc89ab076a1f049f4a3efa700bce8883624e994372fe3368083104ec4a014ba7d1659038f888c059e5bc471313b0263396e35846e3c3bde9ea3f56e4baaa05c53e7f6ba8a68cd269c1bdf6d3b96fe15ca4d124401c49dd315534bcc38493500000156f9015303841b6b0b008302ae0b9418b71386418a9fca5ae7165e31c385a5130011b68713fba854cb359db8e47ff36ab50000000000000000000000000000000000000000000000000000000000f5517500000000000000000000000000000000000000000000000000000000000000800000000000000000000000008576780357c9b0a827e34a7bcefa4fd56459538c0000000000000000000000000000000000000000000000000000000065cf645b0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a483104ec3a0badb683668a6ea9f8f44c5923f3b7bec676f20ebad85cb7992d8cfd46bc40f46a006c1f9439733665f7b94e815b4f3bd3125130e270c43fcf95bf9c37c659e1c9700000297f9029416841b6b0b0083041a17942db0afd0045f3518c77ec6591a542e326befd3d7879c19b53548e118b90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000085b4a1cba62c6a49013473e6192ecdea0c38579f000000000000000000000000000000000000000000000000009c19b53548e118000000000000000000000000000000000000000000000000000000000766dbad0000000000000000000000000000000000000000000000000000000065cf645b000000000000000000000000000000000000000000000000000000000000002b53000000000000000000000000000000000000040001f406efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec4a00280e98f705e3a7ca0ab22ba62e6ef4f56367cbd6208dd899a0019b18800eec8a032def900e9c0dff648e85d15dc75e263aadc0b506d4898fe57d22b47045ad10d000001b0f901ad03841b6b0b0083026cc994aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd900000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000021d2ab120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa94710000000000000000000000000000000000000000000000000000000021bb3676000000000000000000000000000000000000000000000000000000000000000083104ec3a06c477816c677f16be78c3445450da1faddd63b10b7fed3e12add5a6dbcc949d4a00da8bafba1bfbca632db7db27e5681b423c67a029349010546b0b543f8e15d08000000b6f8b417841b6b0b008303208594ec53c830f4444a8a56455c6836b5d2aa794289aa8805d423c655aa0000b844f2b9fdb8000000000000000000000000274c3795dadfebf562932992bf241ae087e0a98c00000000000000000000000000000000000000000000000005d423c655aa000083104ec4a0b47ec8b802c9040cc2f3af7858355eb494d36fb496a0cb5645a94c6c006ae1daa04a90fcabae82cde0b4bdf080a8916ebfedd71aa0b208403fdf8401184c03246600000177f901741a841b6b0b0083031f1b94aa111c62cdeef205f70e6722d1e22274274ec12f87073ec4bccb2a24b9010467ffb66a000000000000000000000000000000000000000000000000000000000057d24e0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000e6e73f6143585f697cd7e5833c44826516cf6af50000000000000000000000000000000000000000000000000000000065cf645e0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000000083104ec4a09ce383db5d2a701de7074c9814153822307461bbbc6a9c2f6dc7ae6053f35e71a01fbd7ad428670d0d5b756761c256eeb7701c72095cc6099204953a74ead84cbf000001b0f901ad11841b6b0b008301da9e94aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098968000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001000000000000000000000000000000000000000000000000000c83925ee514a1000000000000000000000000000000000000000000000000000000000000000083104ec3a0bc63d8277ea8ee9c3f47339cb562edcace9b4b7c0cc4660f4c707f64c689e649a0568b580cf107c3518cac27a21085ac59968b5c9a5e522d68369eee8ec412b635000001b8f901b53a841b6b0b008302638f94aaaaaaaacb71bf2c8cae522ea5fa455571a74106881bc16d674ec80000b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000001bc16d674ec800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa94710000000000000000000000000000000000000000000000000000000151cf1eb7000000000000000000000000000000000000000000000000000000000000000083104ec3a04663efae6ce92344299c81b1d395c3f53ba6e888f51976250db7cc0a81cf9a7fa07abf4bc9a9d968bbe148e5e90e2f52c5caed8fe005f0a6c4132f0fa7855d11ba000001b1f901ae8199841b6b0b0083028bf094aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000100000000000000000000000000000000000000000000000000000000a97d36a0000000000000000000000000000000000000000000000000000000000000000083104ec3a02a4c7abcfc2132ab2ff2bedc3010e22d296c35a1a89ff7260a6b8662e446adb0a073f9839c2fe2db2af14ed4d960339ef892c3f7d7decaa50da4863641212b41340000006cf86a1b841b6b0b0082d064943035f73e3a323f7ee4847ec80ca643712436868680843ccfd60b83104ec4a01e0b3c07cd1b87a8b36c6de1524b645877fe9a8a3552cf1e8861ecb5652dde2ba05545dc5bb95dfae820f3d0a043c33ccbc82445aa14d1cd0191891fb78a93288e000007d6f907d31e841b6b0b0083039c06940cab6977a9c70e04458b740476b498b214019641865af3107a4000b90764a4d73041000000000047ba1c65ce57be4cc04b4e1920e974349b9cd1a1ff1b398ba16557ba1d37960989991665f5e4faeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea6e3c945727911627b802aae7538262ae993ca117a0e481f908209137a46268ef7a6d73faa274536f1fad8544486cc4ad84c6a788aec7b156a6ee2d1cfd2a8bb1ebdd705d64f1cb251a3df7c1e81b607b232215c54d2c9e37c5903b91d7ab07700000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000068014000000000000000000000089873d3ecdda963fcdfb9abc372c6bbd516da0b6003201000000000000c803e84cc04b4e1920e974349b9cd1a1ff1b398ba165570000000000005af3107a4000000000000000000000000000000000000000358c0000000000005af3107a4000000000000000000000000000000000000000325a0000000000005af3107a400000000000000000000000000000000000000035b50000000000005af3107a4000000000000000000000000000000000000000340d0000000000005af3107a400000000000000000000000000000000000000034090000000000005af3107a4000000000000000000000000000000000000000340f0000000000005af3107a4000000000000000000000000000000000000000340c0000000000005af3107a400000000000000000000000000000000000000035df0000000000005af3107a400000000000000000000000000000000000000035e10000000000005af3107a400000000000000000000000000000000000000034010000000000005af3107a400000000000000000000000000000000000000034000000000000005af3107a400000000000000000000000000000000000000035e60000000000005af3107a400000000000000000000000000000000000000035e40000000000005af3107a400000000000000000000000000000000000000033ff0000000000005af3107a400000000000000000000000000000000000000034020000000000005af3107a400000000000000000000000000000000000000034030000000000005af3107a400000000000000000000000000000000000000035e30000000000005af3107a400000000000000000000000000000000000000035e50000000000005af3107a400000000000000000000000000000000000000034060000000000005af3107a400000000000000000000000000000000000000034070000000000005af3107a400000000000000000000000000000000000000035d60000000000005af3107a400000000000000000000000000000000000000035d50000000000005af3107a400000000000000000000000000000000000000034040000000000005af3107a400000000000000000000000000000000000000035d90000000000005af3107a400000000000000000000000000000000000000035e70000000000005af3107a400000000000000000000000000000000000000033f50000000000005af3107a400000000000000000000000000000000000000035d80000000000005af3107a400000000000000000000000000000000000000035db0000000000005af3107a400000000000000000000000000000000000000035dd0000000000005af3107a400000000000000000000000000000000000000033f90000000000005af3107a400000000000000000000000000000000000000034050000000000005af3107a400000000000000000000000000000000000000035d40000000000005af3107a400000000000000000000000000000000000000033f70000000000005af3107a400000000000000000000000000000000000000035d70000000000005af3107a400000000000000000000000000000000000000033fb0000000000005af3107a400000000000000000000000000000000000000035da0000000000005af3107a400000000000000000000000000000000000000033f40000000000005af3107a400000000000000000000000000000000000000033fa0000000000005af3107a400000000000000000000000000000000000000033f60000000000005af3107a400000000000000000000000000000000000000035dc0000000000005af3107a400000000000000000000000000000000000000033fd0000000000005af3107a4000000000000000000000000000000000000000343e0000000000005af3107a4000000000000000000000000000000000000000343c0000000000005af3107a4000000000000000000000000000000000000000378d0000000000005af3107a400000000000000000000000000000000000000033f80000000000005af3107a400000000000000000000000000000000000000037910000000000005af3107a400000000000000000000000000000000000000033fc0000000000005af3107a4000000000000000000000000000000000000000343b0000000000005af3107a4000000000000000000000000000000000000000378f0000000000005af3107a4000000000000000000000000000000000000000343f83104ec3a0f912fb2b6036afb7701b0e3b3a2eeaac407ec6e0163905fa62b9dc8b231fd572a02d6e41fdd339cf8d2e99b68d19b34353b25fb21cd8494042dd36191ddb0b3516000001b7f901b403841b6b0b008301bba294aaaaaaaacb71bf2c8cae522ea5fa455571a741068706eacfdaf54ea3b901443d719cd90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000053ec600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa94710000000000000000000000000000000000000000000000000006eacfdaf54ea3000000000000000000000000000000000000000000000000000000000000000083104ec4a0fddf17e54d7766805d0aedebb31368325a5faa2a9a1452d4ba0455c626ee40f6a0509efc0d0ed665c9812dab5d08f3bcd6437727d7f26a51990aa12fbe507768c1000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c2c02000000000033b35d0000000065cf5d5f00000000000000000000000000000000000000000000000000000000000000000000000000989680000e0003000000000033b35e0000000065cf5d62000000000000000000000000000000000000000000000000000000000000000000000000009896800009000000000073f871830387d58420e6da00827b0c9469069926d6bd30894f3ea4160517f893760d2400880af57f0c304bd1628083104ec3a00233538aa6b42c036be030d6fcfe2be35bd782e934eec6c8a4660c226ffdd590a06c4f635787503c94609a20946125fd8ab6448177cdb2b370692b29bb3e854ffd00000074f87213841e28f280827e609487627c7e586441eef9ee3c28b66662e897513f338828f20ed1c52b500084db6b524683104ec4a0f04ee31635bc13997108dc13e712ab31b7f994df71c72048d7110bae97eefb5ba00e2d115538b15d26f17849d26fd4fa613225d1df03bc88fadee6aa0b92c790d9000000aef8ac22841cc9fec08305b33394ec53c830f4444a8a56455c6836b5d2aa794289aa80b844f2b9fdb8000000000000000000000000b6966083c7b68175b4bf77511608aee9a80d2ca400000000000000000000000000000000000000000000000000477172d5200dce83104ec3a0194691675a9a7d295c834b2827b29751785ae948ae415bfa15aba3093e7e1400a05e4f10c46283b489063c126d2f915e15ed28c48bdc78d29d5513ac8279d77e52000001b7f901b403841b6b0b0083022b0f94aaaaaaaacb71bf2c8cae522ea5fa455571a74106870503868ae20816b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003d09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa9471000000000000000000000000000000000000000000000000000503868ae20816000000000000000000000000000000000000000000000000000000000000000083104ec3a0e42efffd772a3b7c0451860cf7a42f3186c5dd947baab5ca5c3610d70b59632fa06985bec360379627360f4734115430af3e37b4ab1a82d5b141cda2af023ea1de000000adf8ab08841b6b0b0082b4d894530000000000000000000000000000000000000480b844095ea7b3000000000000000000000000ca6fe749878841b96f620ec79638b13daad3d320000000000000000000000000000000000000000000000000004db1ea3398bf8983104ec3a0b56801f2c69152c0eb26c18c2aef323d9d9ca2ea3286c3d80eabac5542232759a01016e1155074425801692088be5c1bb4d9e8fe7aec33ca1877351f922cbf4da300000073f87152841b6b0b0082def9945300000000000000000000000000000000000004878a8e4b1a3d800084d0e30db083104ec3a0c016aab630a5d4e102e28dd453adab7cb2e4846a05a9fa4352c885f172180caba03ce46f41ed686e4a0876a2e3f07b2ac5519e5e5648bd7d670ffe4b79e7eb45d6000000b6f8b430841b6b0b008304cb1b944c0926ff5252a435fd19e10ed15e5a249ba19d798802830a8a80588000b844c7cdea3700000000000000000000000000000000000000000000000002830a8a80588000000000000000000000000000000000000000000000000000000000000000000083104ec4a0e5bf58d9611c480a120efe43172236a6180cfa56dc0c22231ecd6dbbb93065eda045e0539e1e02e9c6c494b99a6557c585d620aa77172619e59872e4b47ad471c5000002f0f902ed2c841b6b0b008306c8bc942db0afd0045f3518c77ec6591a542e326befd3d780b90284ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000014475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001312cfe0000000000000000000000000000000000000000000000000018f048a762311a0000000000000000000000000000000000000000000000000000000065cf5fad0000000000000000000000000000000000000000000000000000000000000042f55bec9cafdbe8730f096aa55dad6d22d44099df000bb806efdbff2a14a7c8e15944d1f4a48f9f95f663a40001f4530000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004449404b7c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aa9c1ff8f4f551628aee852ada8db49c969bbd4b0000000000000000000000000000000000000000000000000000000083104ec3a0d4be9040b5d6f1b9c543150005db9e6ea5aad4b6cd77913da7edf327aa7001b1a035198ada98958cbd32425c45c01812d610ed232e4cea4c8d32b5f47d857fe216000000aef8ac35841b6b0b00830161499406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b3000000000000000000000000ca6fe749878841b96f620ec79638b13daad3d32000000000000000000000000000000000000000000000000000000000016e360083104ec3a0bff5c169d9800ba195138a435320a0f8bb0fed6eddb98dca1936020469c10ce1a00ba87e515622cb86138f4e84337d971708b27bd779fc78b1f68bd6e57e5f31b4000004b0f904ad40841b6b0b008305aa8394ca9fbef94d7cc8662f4711a8612ff9dc1526e65080b904443593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf5fab00000000000000000000000000000000000000000000000000000000000000030a000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065f6ea550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ca9fbef94d7cc8662f4711a8612ff9dc1526e6500000000000000000000000000000000000000000000000000000000065cf645d00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000411545b7a847b27c4cd0a2a7c7af4bfe86a29d1558961f4ca845dcdb70d0c590817194bc4eab8488855b90014893c4624c69a0e5b0a0927ec4f2d2849c6d992b941b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000872e19000000000000000000000000000000000000000000000000000b02790bf9efd3800000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000042f55bec9cafdbe8730f096aa55dad6d22d44099df0001f406efdbff2a14a7c8e15944d1f4a48f9f95f663a4000bb853000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000b02790bf9efd3883104ec4a06d6536502413845a633db9bdb379ef42eb36ed74776fe3f4972affabc4cf8128a0132e4ce162eb844c716eb62baab947c7d11ad9803a0cc4fa2f128d042ff9f83a0000008cf88a06841b6b0b0082a73194530000000000000000000000000000000000000480a42e1a7d4d000000000000000000000000000000000000000000000000001ff973cafa800083104ec4a086df7b096bc6268e204061ba775f854e208436abf514b2ef92e1d7e575812464a00e5de0bf96566f39f4062d8b8347ebf1f5f9e13f63c9a1776b4bb50e451ca2bc00000105f901020e8423ace5868307016f8080b8ae6080604052611050600055348015601557600080fd5b50608a806100246000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80636ece0dfd146036575b600080548002611050029055005b603c604e565b60408051918252519081900360200190f35b6000548156fea2646970667358221220007a1e34955d5ab7768054f73fc7dd2c73c07a8aad13eaeb05491ea77efea1e564736f6c634300060c003383104ec3a0a9482f6b7a49b90a07ffd6171f1949ed12f1e794d6cb5f100e8194de832bcecfa0757839c8bd05fcf2f919040fec72d35ea77db72fe1afc0c4a3948da076efbf55000000adf8ab1f841cc9fec082c1dd94f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b30000000000000000000000006131b5fae19ea4f9d964eac0408e4408b66337b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec3a0e9ca49f9b9bbbd7d41e3910d6e5764796dd774bd2fe7d7f2c9aedb665ff5de88a04137754e6eca52980a27c053dc3f060e6d17b0b0f14263166aab7508c7848bc70000006ef86c43841c03a180825208941069d8fc5d6b2ba45971a0e52ce4acae7456e2e686e35fa931a0008083104ec3a0dd6e2b59b7cf7143057f4a2d3f4815c06b3b51de1a05d9cbf1a1f5f316ad3e98a018fdb61bbd29fa3a2704572e393d52143b9aef6533af676660673f5317018bcd000000adf8ab05841bb3d1f882fc269406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b300000000000000000000000018b71386418a9fca5ae7165e31c385a5130011b6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec3a0ba9526304d47a8dfc3c28d2fb15a97c2273c8894aadcef6b02cc78510fcf4f19a0630dd678a5ba2126d055599695010cfbfef18c46e432924f4be92dfdee602af700000272f9026f821c2a841b6b0b008304ee76942f2afae1139ce54fefc03593fee8ab2adf4a85a780b902047c39d1300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000d6000000000000000000000010000000d600000000000000000000000019dc38aeae620380430c200a6e990d5af54801177f5dc80ea862ef3316a4761133a0b0f521c9ce0ca20216422e2d7c55bb725ebe00004c931b144624e8c9e538faf7f31bc67b8b17dbc550dee3f6feee3a19b4a1b79794a81d698feaa62a6c773118dd1a2d03c0e675d828fc7f9d42c1846f8d472e6777191b14a4b6e1bdea5b8e35b5921ff847e37c8e9127f7bdda630f802c54a58f1618f46597d054cfe1ec0e3671460d2c4e57b68e6f4fb7ecb916594a828344b9fc264e1b00000000000000000000000000000000000000000000000000000000000000000000000000000000008d0300004c93000021050000000000000000000000007dac480d20f322d2ef108a59a465ccb5749371c4000827500000000000000000000000007dac480d20f322d2ef108a59a465ccb5749371c4000000000000000000000000fa6f614a574509ad2bf37fdaac4238efac526af20000000000000000000000000000000000000000000000000000000010180d090000000000000000000000000000000000000083104ec4a0fb08ebcd88ff7b736e2590222ac76cd60d87749ae01fe805091fa33f024057e9a065dd35698883277c90eeaeada50f92fb6dbdd80ee98efa75bd71b70506ad01e300000352f9034f828d9e841b6b0b008304dc6d94b279fb706f1c7f42fb214351efb16f3f6023e91080b902e436fbafad000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a0302b04e88f417bf5bc34440c992e7fc39ada92cf637025383da32d5a706019711ac621e3ff86842e57dbac9ddd524600521a4329e281798c27dd94c3d50a3e0a2f5960fae8a00bc2d0eaf91648e45cfe1e56c9df97ad53cefeb4f33595bbbf220481d16d4276177fbbdfa16908ea5337d9781ab31895c59624b2aae611d41c3a2eaeb8f7c85e356326beb4c41c1e5517b74d3dc1a0b103a98be4913f8fe007b423e8a8c7b9be3d53dbe7526b1e0ed8472e31f858ceb6d3fd7421427256628bb91c3a286b43222f32996c896821a05f021522d5ad4e64d99a43ed20f3cbd8ea44242092c1245d569844a544ed58b9b4889d4d88af33f2699ad2b1fed3db37daba0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000002282920000000000000000000000000000000003691acf6853a1a48fdfc1ef15d8a5ebc0000000000000000000000000000000023dcd99d6a7e50aaf9643bf678562a0b00000000000000000000000000000000e3c76d1f3187d0e6cac350cf3b464c2800000000000000000000000000000000ec250421db775b9a623f6f5d820ab73e00000000000000000000000000000000b554c24f9062c6fa524e1b009cba68c0000000000000000000000000000000001a4e4729e0510b7e05000ca20c8f6cce00000000000000000000000000000000f42b6548693b256b03698ce4414a6cda00000000000000000000000000000000c7932b7cd6af6da5110c196d7b6bfc850000000000000000000000000000000000000000000000000000000000000015000000000000000000000000000000000000000000000000000000000000001483104ec4a0f122b13d5ec8378378fa0bc97e61733c7615d3e031eb5f597de5d3fcd670013ea026eae1aef1f6864b46f931f70d15ee6f863e227eeaf972cffa660eb989e0d8dc0000016ff9016c06841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000406435656264333263336361333164373666376538313132633639653234323236666563343737336532343130633738386639373466353230333564353361353600000000000000000000000000000000000000000000000000000000000000403535343139366239616238363638353433653937656165643162313562353939333238613139343037646236613935316637373238306662396231616232383583104ec4a083f8946cc227d7c03c14a3eabb0e1757f091c1a699f3587047c93c99f75fa979a04f37e0d04e09ba3232cbc42a11b790f44956f342aafd8526e27b67d43eed9b1b00000156f901530f841b6b0b008303222d940122960d6e391478bfe8fb2408ba412d5600f6218702c567e6ecc000b8e47ff36ab5000000000000000000000000000000000000000000000000000000000021e1110000000000000000000000000000000000000000000000000000000000000080000000000000000000000000403e48f9dcc960774f1cf26cfe386441e4fc2e290000000000000000000000000000000000000000000000000000000065de9f9d0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a483104ec4a0699b5de7ec32b611eafd3427a05811d23b93deee66d38292fab06c71b418f7a6a00874a4b74d29bcc6e0b5a508de5c719dc539b9a6bfa7132668cac063a6fa14bc00000211f9020e81f5841b6b0b008303d4ec9480e38291e06339d10aab483c65695d004dbd5c6980b901a4ad271fa3000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c700000000000000000000000000000000000000000000000000000003bb85ad08400000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000040000000000000000000000000a1b7aba819ee4187f49187f772a88a8084c40118000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000e35e0e00000000000000000000000000000000000000000000000000129dcd68ad479e000000000000000000000000000000000000000000000000000000000000000083104ec3a044064c9ebce34ed7c18c3728562c71838030a3df73f0ed6ee05a2e019463ce7ea04a0556655a2279a06bb67a2af3cd55a6dcc244400119f3b6ab02b3964c480a070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000221a03000000000033b35f0000000065cf5d650000000000000000000000000000000000000000000000000000000000000000000000000098968000070000000000000033b3600000000065cf5d680000000000000000000000000000000000000000000000000000000000000000000000000098968000090000000000000033b3610000000065cf5d6b000000000000000000000000000000000000000000000000000000000000000000000000009896800005000000000071f86f8216508423a4c180826aa494749995e75be19bd6d48384896858715e39ede01387058592c16438588083104ec4a0f6371f911a5763f8ccc02ab331f542684e99707d3aaea090db6b681280baac72a01141638d6e887ebe7e551d5039367ac5ce8b25b0d33bdb4bf4289530c24b696500000190f9018d29841b6b0b0083038e2a942db0afd0045f3518c77ec6591a542e326befd3d780b9012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000006602a4cf6c23910610bb9fac56589aa55e736bce000000000000000000000000000000000000000000000000000000000fd26b3500000000000000000000000000000000000000000000000001493e4d51310cbc0000000000000000000000000000000000000000000000000000000065cf5fae000000000000000000000000000000000000000000000000000000000000002b06efdbff2a14a7c8e15944d1f4a48f9f95f663a4000bb8530000000000000000000000000000000000000400000000000000000000000000000000000000000083104ec3a0f851bedb30627234e35703b50c494921cbb8b447e385306ae7875eafefebdf5ea01673f3bd7f4f5d558add03346c21fe2fc4c8506e471f0c7ac2ad6727e4ef4b7500000177f9017416841b6b0b0083031f279403290a52ba3164639067622e20b90857eaded299872386f26fc10000b9010467ffb66a0000000000000000000000000000000000000000000000000000000001af60f4000000000000000000000000000000000000000000000000000000000000008000000000000000000000000046c30981a7e20710d199dac9046b0a80b4198eef0000000000000000000000000000000000000000000000000000000065cf5faf0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000000083104ec3a0284e6c130c9b8bcdaccf70984466d8a801eb24f6dd8ef63dac55d209e38fe2aaa0203718268135aeb61b10cd7712dde05d4db1a01b603d7e766b8a1a4565964a470000016ff9016c45841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403466376130366630393666616333343965666539633333383636633036316162613732643433343034303266633565653035343833353461383830336164343700000000000000000000000000000000000000000000000000000000000000406638373838346436643833306466383861633333626662643931343935333137616232663834373030663137346139353939303161633930363436373064633883104ec4a0726aaba1bb40bdbdb0761d5af4ddbbb9db0c39a8efa7613ba0e84462f0c6b709a0240f38b5ed436fa68b7554b576353619171fd5c45b4d53a9a771435a4e995fe0000002d0f902cd30841b6b0b008302a1289480e38291e06339d10aab483c65695d004dbd5c6980b902642cc4081e000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000032291388fc0430000000000000000000000000000000000000000000000000000000065cf8b0100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000000269af600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000003a3532665eb0c2617956d75b6a186a5a1e7e65670000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec4a01e759a4388b62214855369cb54c19e13d9f3431994879ab9cd4d0fe9aa0eb67ba0075bece12b6bbe04984b3bc9db5c41dffadf95f71d1f297683aca42482619a4e000000adf8ab13841b6b0b0082eb929406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b3000000000000000000000000aaaaaaaacb71bf2c8cae522ea5fa455571a74106000000000000000000000000000000000000000000000000000000000781d05c83104ec4a07ee7396fd462909f27c854d664d460a16af4bc8a401169afff2e2252d1f16728a052e752c9a9caad30b2abb0dc4f88e5a38d5784afe7210338c9585ba897742f5c0000016ff9016c2c841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403834346664323061646535386639366230383335663936396533333761353266616236633865623033383162383838663764363065353836626235343133616600000000000000000000000000000000000000000000000000000000000000403834346664323061646535386639366230383335663936396533333761353266616236633865623033383162383838663764363065353836626235343133616683104ec3a08f9c9fbc55e2f90f354814ff7b2fcfd5b4def9221babf135f8fbc17758332760a05da81293ea66bfaa57feb08054b70cb1344a8a067929e512c05538f9930d780600000072f870830428c18420e6da00827b0c9496da1d88081517a216601a5be1d5a32b861be68c87071afd498d001a8083104ec4a0e3864f5d7894004ef5c457696531d2ce365fbf837c7d0ea0e5f341567e6e7fb8a03e7e6bb5d3111747d10c08a1fa2702149c2f11efd389529353ef94fc919e1e9a000000b1f8af830cf3bd841cc9fec08301526c9487627c7e586441eef9ee3c28b66662e897513f3380b844535b355c00000000000000000000000075459972990038f7ecd0256394fb282240da424800000000000000000000000000000000000000000000000000252b0198fd680083104ec4a09cfab211e39445a0807201649051a6e5ea0185c60aaabd7d43c6794a454abd73a00e52e607ff87d7d190d049a10036a72248a09f357fa9d7afd1fc4a69252c5458000000b4f8b20d841c03a18083013b4294904550e0d182cd4aee0d305891c666a212ec8f018601e8f1c10800b84440c10f19000000000000000000000000a908651604f541ec0b82a8532be3d09e87c71e3b000000000000000000000000000000000000000000000000000000000000000183104ec4a0144589ad6a1c3a4b413c109e61113d2539941e94ee2b80b769641b629b150d82a019b54c445c145adfa4b0da418d755088631c6a3c95611620cafffb3b3b42f1ea000001b0f901ad02841b6b0b008301da7b94aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000230e8f400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001000000000000000000000000000000000000000000000000002dda282da3ccd8000000000000000000000000000000000000000000000000000000000000000083104ec3a040a576292540278d71ce24f96455005265df4005efc7ebdf41dbb548dfef9da2a016df2a80edec0b7f81ad9afbca939c4b63f46e33e25230d65d2ee5ae51cafa3000000292f9028f82073b841b6b0b008304c67f9402c83302696106b24b4ddb16fb2d97d2221acce880b902245704518f00000000000000000000000000000000000000000000000000000000000000b8f9d0d9cfad4f9d3c69e617d78fcc03756629f079c5f6dc74b0f22451f38d72df000000000000000000000000000000000000000000000000000000000000008000000000000000000000000061bb3852947a370946abdba8fa9cf45ec472f83f00000000000000000000000000000000000000000000000000000000000001800f685bd809d80e458de4d5b93bae9f8d6d83667f5535126e66407b4f133fee580709b0638fbcc3a69cde4661980a6b95821fd0beb20f002bc36b86e3614eb6cd16f4aab7e8d3ea18f9a51136df4273a91bd8571fb7feb7e73301163185feee6d2dd0eee3f75ca702094c5d034c13ff4573ca82d0a1037598806f7ea8e187c22f14a42eac9d8b3136b2005cfea814a61952d762769186347613ef25bad3e63056074b1d9e2ec75205d5bf38ee7dae12322ad32b2e03b86e4ccf11b31fe6a409032b98a9a0df455db9b18d9ae3ba585617d94bf80e98bc9000c8ee3a39a890b9ae2ef664715facd7dada7e742de2960565b3bde98d40a6b3a783ec7e9ef3d2c3a300000000000000000000000000000000945bb99497b80795dccaeb35358de56c00000000000000000000000000000000eab8545c5aabd894ebf5f3e649bb533d00000000000000000000000000000000cc1632a9ef039b145f65dd5027eed750000000000000000000000000000000004b7d245c79f98b1d17b946ceb23bde5383104ec4a00edf09961e0e8ca64c0e311b7b4bf65499b9d0c1dbba22298c5b9f9b60976b1aa02e1abc21a1e23210fa0bd7bb26e609525f4137020f361ed0ce7e21a19a41604100000073f87110841b6b0b008302a43b94b6fd349bdbfb86c55cef803178de73bc0d699462862d79883d2000841249c58b83104ec4a0f83da243b07fedf80eb5c193ec7a026d8b33ce963b28f8104abfb00f57623c79a040f42659c2770def645b7c671a5d86fcf6a7ccf7b7eb2f84a8029b955a6c7369000000adf8ab14841b6b0b0082c08d94f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b300000000000000000000000020e77ad760ec9e922fd2da8847abfbb2471b92cd00000000000000000000000000000000000000000000000000000000052f1c5283104ec4a0e6854f23e1987d0e5fe70427a685b7cf2c55367b124f85263ddda9fda697bfe5a01ced0236838a6f16239d3affe7c9905d5b164c9b9bcf6f31b50618f87cd6c11f000009f8f909f517841b6b0b0083072daa946131b5fae19ea4f9d964eac0408e4408b66337b58804b05f3191f1848bb90984e21fd0e90000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc897000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000054000000000000000000000000000000000000000000000000000000000000007400000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000e8338711218ceeeac36b7832184b832d4d0e1c920000000000000000000000000000000000000000000000000000000065cf620b00000000000000000000000000000000000000000000000000000000000004200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040593611990000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001000000000000000000000000006905c59be1a7ea32d1f257e302401ec9a1401c52000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc89700000000000000000000000000000000000000000000000001681c8edefba7cb000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000401b96cfd40000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c00000000000000000000000008f8ed95b3b3ed2979d1ee528f38ca3e481a94dd9000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc897000000000000000000000000000000000000000000000000034842a2b2f5dcc000000000000000000000000000000000000000000000000000000000000308930000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000003bd000000000000000000000000391855ac000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000e8338711218ceeeac36b7832184b832d4d0e1c9200000000000000000000000000000000000000000000000004b05f3191f1848b00000000000000000000000000000000000000000000000000000000391106c7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f87b22536f75726365223a226b7962657273776170222c22416d6f756e74496e555344223a223936332e30393530333138333133313634222c22416d6f756e744f7574555344223a223935382e38353430303431303739393939222c22526566657272616c223a22222c22466c616773223a322c22496e74656772697479496e666f223a7b224b65794944223a2231222c225369676e6174757265223a224e2f50517965506339714f6676792f58524a306a6a527a6c6a7a546c4d37564d7662586b7632623444573561585a6f68744e626479644a4b3664554a4b6442452f34744a4874627757366148674c55316269594c494b6b4e375a30556e2b5a5842504776686e4a6c6f566b7264782f4162636858426c4462312f775167572b504932303074695a5336555155347a464e474f52436d5172336872734552532f516c745978684a2f6245476d45796977656d577978634f5a757464626a4c574d7864382b6f7a776456684163306b395064745548365a77776b32366b68755657504562636e446b5138445259564838732b517561426e664168642b5a6c4c34786941704e4178742b33533266584d5362756d6557656675587861645066764b32484f7846506844614846356c38493343442b653768794d726447425a41754d427a39373563443461417a305856594c67417169514d4b673d3d227d7d000000000000000083104ec4a0d4d436b8f7335b0bcc9cb8f3455324a4407a6d3128760e51ad5ad202091f4179a06347a04ca05655280285c604524100b8fc9f926a0df2f7e62c9f18edd96b66c100000073f8710e841b6b0b0082f33e945300000000000000000000000000000000000004870aa87bee53800084d0e30db083104ec4a0056dfb8968bf50a5d083184d54997f966c0d9c072f3cc72252808e245f048bf7a05854c8f2d794371b4ebd290f0dee224b1fd5e3689a756ce1f705a1c1b2b2cca300000073f871830428c28420e6da00827b0c9496ef9f6b24702208051256bc9efbfa3cf8f77fa688013fbe85edc900268083104ec3a03eeb4e6fc92666163e8d9154c2e7d54d7bf13dddc73238cfd9bc06ad0c4d72c2a05b355164ac90384976b07cfc7fe0bfd5ebb7f882475b08ea2cc071e602cf2e75000000adf8ab16841b6b0b0082913894f55bec9cafdbe8730f096aa55dad6d22d44099df80b844a9059cbb000000000000000000000000d7aa9ba6caac7b0436c91396f22ca5a7f31664fc00000000000000000000000000000000000000000000000000000000238bb75e83104ec3a00a0d953c583ca94ade3804723c6c28d45c1cc8ce33ba805616d7a9a6a2781eaba042e1806e4f4927ef6f9155ba8fcee09e0693014637bdae1b9625dd6bf80f54b000000074f8723f841b6b0b0082cab4945300000000000000000000000000000000000004880737693eb334000084d0e30db083104ec3a02dc3f46ecd49a998986abbb69ad8279290081090d1d867599e2f3946a301a427a02ec975f19b3f799dced3c5d0570759727b8767515b5fe38dbc1d658cd680b07900000296f902930a841b6b0b008303331d942db0afd0045f3518c77ec6591a542e326befd3d7866383ad021ff3b90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012446edd9c80000000000000000000000005300000000000000000000000000000000000004000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000000000000000000000000000000000001f4fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3cb01000000000000000000000000f7842b0c1c229ed5169826bccdbd5cf017cf654200000000000000000000000000000000000000000000000000006383ad021ff30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c3900000000000000000000000000000000000000000000000000000000065cf646400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec4a0fb3fa7f42208fb84c545f3aadee1a7cf987694d288a6f0ae67c2ecd257fb266fa024eaea70dbb20da8a87200bad3c97b92777082990459c0ebb8e839efdb340ce500000170f9016d81a2841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000406266616664363562323435343831306264306264633931373431633466366330343433656362633464383135366630633430393131646566353664366361663200000000000000000000000000000000000000000000000000000000000000406663363332336532323437363362353535373431616637396564313765613239363133353463636439313564623135313533323632386534613333323934333383104ec4a0c875bc8a816bcfdcf1f416953d43ec803bc79287570256ea455011559e390d0ba019acf6118770c22380c1e042b30cee7e08970609312867935e47adfd7c017cbf000000000000000000000000000000000000000000000000000000000000000000000000195103000000000033b3620000000065cf5d6e0000000000000000000000000000000000000000000000000000000000000000000000000098968000070000000000000033b3630000000065cf5d710000000000000000000000000000000000000000000000000000000000000000000000000098968000050000000000000033b3640000000065cf5d740000000000000000000000000000000000000000000000000000000000000000000000000098968000030000000009b7f909b4038420e6da0083058db2946131b5fae19ea4f9d964eac0408e4408b66337b587078820f6ec8000b90944e21fd0e90000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc897000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000003a1b717367ce4ac95521edb8227566d9da55cd8d0000000000000000000000000000000000000000000000000000000065cf621300000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000004059361199000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000100000000000000000000000000b12abb5bcb50c2aa6f1b54447046640010b339330000000000000000000000005300000000000000000000000000000000000004000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc89700000000000000000000000000000000000000000000000000078820f6ec800000000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000401b96cfd40000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c00000000000000000000000005a1cd43c18717bb302f46a0b77a71a118e7d9c40000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc89700000000000000000000000000000000000000000000000000000000005d181900000000000000000000000000000000000000000000000000000000000007b4000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000006000000000000000000000000005d1337000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000003a1b717367ce4ac95521edb8227566d9da55cd8d00000000000000000000000000000000000000000000000000078820f6ec800000000000000000000000000000000000000000000000000000000000005ccbbb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f87b22536f75726365223a226d6574617661756c74222c22416d6f756e74496e555344223a22362e303239343637313535333630383933222c22416d6f756e744f7574555344223a22362e313035383636373636393939393939222c22526566657272616c223a22222c22466c616773223a322c22496e74656772697479496e666f223a7b224b65794944223a2231222c225369676e6174757265223a2244564638597663437a46564a7930332b754f6e59617246675a463371464c454c68304f4f6c776e365769323549587356614655654d736163475963454238684d5a57526f372b4d6d685851316157414c6174647843617477613832574473614f786f5a2f6d79587058397a595667476768734a5233656c33756f6a4262553756663630716a6e4e6d4879772f562f4c71525259534770732b74502b557750784e544e4436385649655449306d6c64614664305770777a424b7162654b394d726d757a7a5532465a354a7474585932374a6b6a4854323530746451754b48664a66754b625041496f31715864446d336d4863573630516d517068544277756b7753706378634f42796c592b323845644d6c5674696174635a69384a6b694778476134454f4f336b68304e5877414948625a354c694139577033747562652f57535255556935643056317872597750472b747362437658413d3d227d7d000000000000000083104ec3a00deb5a3721f7430784ac857cfc2beb49316a107fb639da22eb5b8a1200671f7da072faba42ff3a7f233548326e468e00fe49258b6d9ffb4da2569712a7f6a02b3800000072f870830387d68420e6da00827b0c94b9ea4dffcd753587e1d8bf197d2135de499118b9871aa535d3d0c0098083104ec3a0cf37d45a19aff4c8f70bb8bdecd54023f3cb90a5187ae7b09c51a865c15f4958a003d4afe11698f9ced0c62469a23460a163721b118d81006096db60d82732c44f000001b8f901b547841b6b0b00838a7e1794aaaaaaaacb71bf2c8cae522ea5fa455571a7410688017ddc906ce7466cb901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000017ddc906ce7466c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009296c9bd39f3f90d83960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec4a01d784a7fdff21bec17651f828fdac920c78cd09095218f7c44dc89e50485242ea020341a11ceda62240b59645e9cef7dfc13257e7df57f9c67c34d2c57ec99d9a9000000adf8ab16841b6b0b0082eb929406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b3000000000000000000000000dae282feabdf542e1de4353f152ead0446c6b8670000000000000000000000000000000000000000000000000000000020a796fb83104ec4a0e40508d776ebeaaccf1ab9ba6eb71158c46fb7ae069377abb46acfdd8376df05a0632cb2551e32a3e15fd8bd8a96c4519f1992217cd7e2195dcb2312a0eecfe82600000094f89280841b6b0b008301f812940332fce92897679e97620a097aa515f5d7cf40348701c6bf52634000a46a627842000000000000000000000000cd1885aaf7ff8ec5858c4f391ab10e8a02db10e483104ec4a024faa93594ce857f8b84ad844257293c529d167f04ae8ba31cc1c7650a89d2aba05b2cbb0f0216307d9e3caf5c01beca5a3fb2fdf53d75a2ca2bf1ca8737ba12d2000000adf8ab3d841b6b0b0082b72c94c21b7961ff68c94b29cf20e1ab32d18e10701bff80b844095ea7b300000000000000000000000080e38291e06339d10aab483c65695d004dbd5c69ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec3a0bcc0d89f8d58ac1ebff3c6f27f1a40cfcd1994b78bb18b7718719d6e4dcbd56ca07981126cf2a07921097f5402709240aa137cc80ac369ec5e7294bb64897511060000006ff86d05841b6b0b0082520894fd6a217a51827aa294989590e072f908cb312d2b87271471148780008083104ec4a0694960deffae1a735d64b525dde993791cfa567fa02ba4d44de89169317dd894a006b42defb27ff5ef33372ffb637fe9574235be0c42a2c42cb64c5c906cfc70df0000008ff88d8303b795841b6b0b0082a4f294530000000000000000000000000000000000000280a4bede39b500000000000000000000000000000000000000000000000000000006fd50a26f83104ec4a07dce1afe81abbb4345cb9396cdce71fe301d80368aa63154912be6dd9332fcc2a0549880a438f9ab2903081a172791329c1622027ec9aa119631373429f66dc7cf00000070f86e08841b6b0b008252089480c67432656d59144ceff962e8faf8926599bcf88806ce9b26b65463368083104ec4a07645a6b5e3a21973acd2ffbcc945bc5fd19d5058e1fb049f2b95cce83cbb06baa07328f0ea1746b40744a28b744bd928fdea73e75552f74057a318d838178e23df000001d0f901cd36841b6b0b008303eaa294ca6fe749878841b96f620ec79638b13daad3d32080b901642646478b00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000016e3600000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000001dddf9a91e5b7e000000000000000000000000986ec9b44e67aca087ebbce4952ae34c0690637800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000700206efdbff2a14a7c8e15944d1f4a48f9f95f663a401ffff01e64ae4128e725868e8fe52e771e3d272e787b04101ca6fe749878841b96f620ec79638b13daad3d32001530000000000000000000000000000000000000401ffff0200986ec9b44e67aca087ebbce4952ae34c069063780000000000000000000000000000000083104ec4a0094c5a1d61fe3b000eb4428533ee382c2563c0cc522fd9d8a68b7cbf9bc37eb9a07a1fe0e497c7d360c0333448a42226291d50ed538b71c7f455a2187a929cd59000000170f9016d2d841b6b0b0083028ea894efeb222f8046aaa032c56290416c3192111c008580b9010418cbafe500000000000000000000000000000000000000000000000000000000002067c50000000000000000000000000000000000000000000000000002a2541445770c00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000005acea3cc37c18b206bff4b6954aa2484f0cc19f40000000000000000000000000000000000000000000000000000000065cf62120000000000000000000000000000000000000000000000000000000000000002000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000530000000000000000000000000000000000000483104ec4a01cf2141138dec55debb0e7ec40b5e2b1a5016d67d5313fc7af5b11ff7495d698a0229ac753169c43593ee50df59450d8a2ec0b475dbbb909468ad5f28d6493f382000001f0f901ed1a841b6b0b008304b83394aa111c62cdeef205f70e6722d1e22274274ec12f80b9018418a1308600000000000000000000000000000000000000000000000000000000035d57cf0000000000000000000000000000000000000000000000000046924f6b8eb29400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000007b2da0e5f3bbd7e824a16e7f8767de19718e81a70000000000000000000000000000000000000000000000000000000065cf5fbf0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000005300000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000083104ec4a0efd7d3656c7736e4074f1d085fd207aba35a05094cfd7f0bc679bf9a432306dba0333c599bdc952f6883b1a8477ccc3721ab1a5d244ece4e0ed164c794dd9689c1000000aef8ac22841b6b0b008302fdc694ec53c830f4444a8a56455c6836b5d2aa794289aa80b844830cbbbd000000000000000000000000274c3795dadfebf562932992bf241ae087e0a98c00000000000000000000000000000000000000000000000002c2ba1fa2600bda83104ec3a0a10c29a02441a07cae2a741261aa50de63a1e4770d4d582863b46ee0bb7593e6a03c0f828ead37187aa5fa3ff81cbd29b4086d398fefe62e4e5bff31f9bbe6997f00000298f902958197841b6b0b008303775b942db0afd0045f3518c77ec6591a542e326befd3d787064d5a3a958a1db90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000124115ff67e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000b734913c3e2bd1f653b6450ab25020a2c12bdd500000000000000000000000000000000000000000000000000000000004c4b4000000000000000000000000000000000000000000000000000064d5a3a958a1d0000000000000000000000000000000000000000000000000000000065cf5fc3000000000000000000000000000000000000000000000000000000000000002b06efdbff2a14a7c8e15944d1f4a48f9f95f663a4000bb8530000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec3a0b6606daf534823415a66f6373d8d89f9fbb0acc98dd61f88f3fb8c84f600b2d4a00ccd4ae7807264bafb4b340c3a8ed9256d299db23a326908360cb7b79afc8f7d000000adf8ab08841b6b0b0082e70494f610a9dfb7c89644979b4a0f27063e9e7d7cda3280b844095ea7b3000000000000000000000000dae282feabdf542e1de4353f152ead0446c6b8670000000000000000000000000000000000000000000000000000e35fa931a00083104ec4a03acd99b5816dd40d28c28d38a256e8f80089b5144620f1fca4fc5dadf827d679a00d4916d579b4757c4e031e5fed45b12e0b33c1e3aa0daaf8d49254298329701f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019b202000000000033b3650000000065cf5d770000000000000000000000000000000000000000000000000000000000000000000000000098968000080000000000000033b3660000000065cf5d7a000000000000000000000000000000000000000000000000000000000000000000000000009896800008000000000072f870830428c38420e6da00827b0c94e72644486167230ff18d369870e2164e532a39308711c37937e081048083104ec3a0dd1f1a507e789aeeaeadfa96ef95aeb9179cdc334eda1ed04fb8270242bb92cda0595de3a5bfdf768d0b8ec302b752fd3dbd75a2ff2f41e4db0b6363d616362fcf000009b0f909ad20841cc9fec083080a79946131b5fae19ea4f9d964eac0408e4408b66337b580b90944e21fd0e90000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc897000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000b7a97bd350fe35a72e991d60cfdfc3532518ba4b0000000000000000000000000000000000000000000000000000000065cf621b00000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000401b96cfd40000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c00000000000000000000000005a1cd43c18717bb302f46a0b77a71a118e7d9c40000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc8970000000000000000000000000000000000000000000000000000000006373a2a00000000000000000000000000000000000000000000000000000000000007b900000000000000000000000000000000000000000000000000000000000000401b96cfd40000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c000000000000000000000000096cfa2a369ec67a93c324a35e693fbeea11c059400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000005300000000000000000000000000000000000004000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc8970000000000000000000000000000000000000000000000000000000006368633000000000000000000000000000000000000000000000000000000000002f8f700000000000000000000000000000000000000000000000000000000000000200000000000000000000000088dfc573e000000000000000000828887aa4096e0000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000b7a97bd350fe35a72e991d60cfdfc3532518ba4b0000000000000000000000000000000000000000000000000000000006373a2a000000000000000000000000000000000000000000000000007fec33082093db000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f40442e1cb0bdfb496e8b7405d0c1c48a81bc89700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000006373a2a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001eb7b22536f75726365223a22222c22416d6f756e74496e555344223a223130342e3830343037393333222c22416d6f756e744f7574555344223a223130342e3439373130323633303333363039222c22526566657272616c223a22222c22466c616773223a312c22496e74656772697479496e666f223a7b224b65794944223a2231222c225369676e6174757265223a22413044727958555175455459545844622b48724c6469685261506d637057656643683951392f5755332f2f526f5547414f2b6e5336346b336547646a374f6364497575766a70633554495669544333336375556846646e31476377634a35637a6e4a354171562f583637504e324d73774b785472666c356542632b3153676b61336e533953537362426e5336754d36427453714130614451694a64744d6b626d766953666b446333764131574f75704230626f44747858582f3357626e43664551767944302f494e4f352b533376784e4c68356e796d42366b4f73776435386d2b4557686d4e6751784e32306f58794d65444a476d726159713379344730626d39796c513455642f5868653657746c5430762f662f326c356f674b527a5269566753764453574f635038763768764d466e525a54446b3644595a384f666d2f77624365333341354d364b4d6a324c47673165707866673d3d227d7d00000000000000000000000000000000000000000083104ec4a00d717ad69a1442820b95ad77d9a17c95d909050fd12b51a0f4be7c30a35785bca079bc604473f023ac4494c4191a42cf6a34e40f91fd608f350de7b3ae8ac5d59300000070f86e0d841bb2a56a8255c29480c67432656d59144ceff962e8faf8926599bcf8880109e9b2af7adc9a8083104ec4a0dcef32dda820bf71d2d2c83dd1f3f68fdc2a56a567782f2f83a398eb1b890c5da02423673adc477042b189d3a51043bc852d70844633176e235fc6fb594446383c00000170f9016d06841b6b0b008302a99b9418b71386418a9fca5ae7165e31c385a5130011b680b9010418cbafe50000000000000000000000000000000000000000000000000000000006021fe30000000000000000000000000000000000000000000000000079deef037b04bc00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001b87ea9bf896439b116e8cca376b50093d085e300000000000000000000000000000000000000000000000000000000065cf621e000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000530000000000000000000000000000000000000483104ec4a083aa2678f4adf7bd5fa9b76d94968c48c635fdbca3403a32623dba823226cd68a00ab0a6c71169e1b962562d76d2e7555e8ed4cd38ab13cbd188f5fff0d1bf529b00000190f9018d09841b6b0b008301505494ca6fe749878841b96f620ec79638b13daad3d32080b901242646478b0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000000000000000000000000000004db1ea3398bf89000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000004d4e771c4c76e40000000000000000000000001d680b335494ad6542d0c77acd9c9504979482fc00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000002e02530000000000000000000000000000000000000401ffff02001d680b335494ad6542d0c77acd9c9504979482fc00000000000000000000000000000000000083104ec4a0a9f8064f12b94b7157a25c678a4e52483984ef437cd283b9d4433cf53364206da01d3d268339400f2be079365366ced097ddb211ba172ee1944c2faebcbce850c7000000adf8ab3b841b6b0b0082f4b29406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b3000000000000000000000000aaaaaaaacb71bf2c8cae522ea5fa455571a74106ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec3a0f20c61e8759eaa1e521cce1e6ed226e2d3a65fe438d5f3c40b904fcae37dfc5aa06185a9022913572080f536fc6288cb5d0a777b0e3840ae74cc107cca63ca29da000001b0f901ad14841b6b0b00830200dc94aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000781d05c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001000000000000000000000000000000000000000000000000009d23bf9545b2d8000000000000000000000000000000000000000000000000000000000000000083104ec3a07ff25998dcee4c8aeee269c3bda0ecdabe4a025a4165541792634824226e991da00513f5c585f00ef9e2602fd63c0cbbea4e7e400c692bdbc1c0618ca19b63a9340000008cf88a53841b6b0b0082a73d94530000000000000000000000000000000000000480a42e1a7d4d0000000000000000000000000000000000000000000000000de0ad9b58f1600083104ec3a084e943430b4fe51b2084a8caf95086b9ef1f4d5e0d5fcc288142599147e8a8c8a07aa0f6519a73a86e0901c6185795b33f0d74f7fb60023f101610444bb68c519500000072f870830428c48420e6da00827b0c9483f443e3048d29d7dcd479d6c837990fef4b328f87b6d9aae4ce6a608083104ec4a0c672a7cf4d627160810ae73636a5481d1b3a6b21d6c77379dac9420ecf08d8eda046f1d85519445ab1983a304eed6863ba8581a34e1cb4ac14c4d1943dda0c432b000002d0f902cd17841e28f280830542989480e38291e06339d10aab483c65695d004dbd5c6980b902642cc4081e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000002aed93f0f996af0000000000000000000000000000000000000000000000000000018db217582d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000002132c9a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000e10c08969d6918bc21e87d4f2e9441c1a277e03a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec4a0380de756afbb24c2d24bf87e156ea0d10d25eb4bbbb95f58798df8a6c43d7fcaa073bd19c20894caf26099999a5940bc94daccb75780252b1cd329fd1e2a8486360000006ff86d0d841bcc7c6d8254ec9480c67432656d59144ceff962e8faf8926599bcf8872c644ed8f76b0a8083104ec3a0e018e01755ef13e1112f7c8aeb093f4e3209d1483d9cf99f00223b63d3702fb5a0158c909f16cdb3f3459e400c7f8f54d44a0f42fd6c6df852f72c26072c4cf8c100000073f87107841b6b0b0082cab4945300000000000000000000000000000000000004871ff973cafa800084d0e30db083104ec4a0ae0e22981499f95136f7850f4f9e8d7898d70e95c5433fcb192cde4e7cddd9eaa07223ec550b4d081b365989f4802403973c5b67afd05342fd32adac7739f2b401000000adf8ab22841b6b0b0082b72c94814a23b053fd0f102aeeda0459215c2444799c7080b844095ea7b300000000000000000000000080e38291e06339d10aab483c65695d004dbd5c69ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec3a08adf5caa34b5d7c11366519668fa2ce5a8711a3a33b2d582e7e8b0d48769a0e7a07685d72f7e27651ae9bb8d2b0c0eef3f6fc7efb248d83ee7e4dd8e92227089360000016ff9016c46841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403466376130366630393666616333343965666539633333383636633036316162613732643433343034303266633565653035343833353461383830336164343700000000000000000000000000000000000000000000000000000000000000406337396335646137303738376566356130613463616134633230343733353166323537666665363539306235303734356233373935313732383866616438656483104ec4a073db7d33b30fe53310a1b23b063e646c6d76cb4200a9fd2c18e71d81555e6ac3a01a181855de08baf11add8a0df46ce6add7eaeb1e355863086e442e610546232a00000190f9018d0a841b6b0b00830319ce94aa111c62cdeef205f70e6722d1e22274274ec12f80b9012418a1308600000000000000000000000000000000000000000000000000000000005a94f700000000000000000000000000000000000000000000000000076a06bbaf02ea00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000007fbf2fd7702b24464f324b1c24f43b93653d53cd0000000000000000000000000000000000000000000000000000000065cf647d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000005300000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000083104ec4a0bf6022f47f244189d1d809dd132bb457a19868037f70f20041f4a6554257ed75a074c876fec018009b3a9e0a26674f385464a57073490e58a6d7e937b871352860000000aef8ac18841b6b0b008303c76e94ec53c830f4444a8a56455c6836b5d2aa794289aa80b844830cbbbd000000000000000000000000274c3795dadfebf562932992bf241ae087e0a98c00000000000000000000000000000000000000000000000005cc20757c33955683104ec3a0123b1bbe4b2d0ed4b5f96355076b2d9c72f539386bc4b2b78e9cef63be50fb92a06225fdea12b5a837cd7b3ed68110a458559ead31f111303b1adf2a6596589c4400000000000000000000000000000000000000000000000000000000000000000000000000000000000000001faf02000000000033b3670000000065cf5d7d0000000000000000000000000000000000000000000000000000000000000000000000000098968000080000000000000033b3680000000065cf5d80000000000000000000000000000000000000000000000000000000000000000000000000009896800005000000000073f87107841e28f280827e609487627c7e586441eef9ee3c28b66662e897513f3387b5efe33a56a40084db6b524683104ec3a0cec07cc96d8323bdd863e4fac120c1b4d85ad85707f617c1b5ae6ff81c0e06fda010fb6d1bf0c3c22b7b4b429b2114c5f20c257f0d7ff8456b0f463d85befec37f000004b0f904ad15841b6b0b008306fa68944e998615ad430c1ca46a69d813ede6eb3ec55edb80b90444301a3720000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000000000000000000000000000000000000052f1c5200000000000000000000000000000000000000000000000000697fd47692c5a5000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000065cf621e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000585245f79829fc75f8e2fd224b90d19449c6a0f6000000000000000000000000ab5819ac14dc28008e63ba0b8159495c06acde9e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a631b2a2c3469aa1bf5dc49977207f378d16d7d800000000000000000000000096cfa2a369ec67a93c324a35e693fbeea11c05940000000000000000000000000000000000000000000000000000000000000003000000000000000000000000a631b2a2c3469aa1bf5dc49977207f378d16d7d8000000000000000000000000ab5819ac14dc28008e63ba0b8159495c06acde9e0000000000000000000000004e998615ad430c1ca46a69d813ede6eb3ec55edb0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000005300000000000000000000000000000000000004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3cb0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006c1c420c04f4d563d6588a97693af902b87be5f100000000000000000000000000000000000000000000000000038d7ea4c6800083104ec4a0fde4415041c2a4af10f0223b65dbeb97c80ea142df8ca13185910a4f81953fdba036d66e857d9449ad68370acf37fbca013ee2695e7b23c49be23fb32f6466604c000000adf8ab06841b6b0b0082eb869406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b30000000000000000000000005940a60866255031830aa1edfdd8b56ab39765b700000000000000000000000000000000000000000000000000000000001fa01483104ec4a0e63aa611954753ca84772c57b54e0beab623d7f785f84a2a7d9304b0590d3d85a0447bf0d4de239ecec0e98ce99795b5489aad8c6de024739e72966e3120d7ce2d000007d6f907d37a841b6b0b0083039bf7940cab6977a9c70e04458b740476b498b214019641865af3107a4000b90764a4d73041000000000047ba1c65ce57be4cc04b4e1920e974349b9cd1a1ff1b398ba16557c7246dee8eb74a0065f5e4faeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee078a0af0e9e449bea1ec12dd7538262ae993ca117a0e481f908209137a46268ef7a6d73faa274536f1fad8544486cc4ad84c6a788aec7b156a6ee2d1cfd2a8bb1ebdd705d64f1cb251a3df7c1e81b607b232215c54d2c9e37c5903b91d7ab07700000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000068018000000000000000000000089873d3ecdda963fcdfb9abc372c6bbd516da0b6003201000000000000c803e84cc04b4e1920e974349b9cd1a1ff1b398ba165570000000000005af3107a4000000000000000000000000000000000000000358c0000000000005af3107a4000000000000000000000000000000000000000325a0000000000005af3107a400000000000000000000000000000000000000035b50000000000005af3107a4000000000000000000000000000000000000000340d0000000000005af3107a400000000000000000000000000000000000000034090000000000005af3107a4000000000000000000000000000000000000000340f0000000000005af3107a4000000000000000000000000000000000000000340c0000000000005af3107a400000000000000000000000000000000000000035df0000000000005af3107a400000000000000000000000000000000000000035e10000000000005af3107a400000000000000000000000000000000000000034010000000000005af3107a400000000000000000000000000000000000000034000000000000005af3107a400000000000000000000000000000000000000035e60000000000005af3107a400000000000000000000000000000000000000035e40000000000005af3107a400000000000000000000000000000000000000033ff0000000000005af3107a400000000000000000000000000000000000000034020000000000005af3107a400000000000000000000000000000000000000034030000000000005af3107a400000000000000000000000000000000000000035e30000000000005af3107a400000000000000000000000000000000000000035e50000000000005af3107a400000000000000000000000000000000000000034060000000000005af3107a400000000000000000000000000000000000000034070000000000005af3107a400000000000000000000000000000000000000035d60000000000005af3107a400000000000000000000000000000000000000035d50000000000005af3107a400000000000000000000000000000000000000034040000000000005af3107a400000000000000000000000000000000000000035d90000000000005af3107a400000000000000000000000000000000000000035e70000000000005af3107a400000000000000000000000000000000000000033f50000000000005af3107a400000000000000000000000000000000000000035d80000000000005af3107a400000000000000000000000000000000000000035db0000000000005af3107a400000000000000000000000000000000000000035dd0000000000005af3107a400000000000000000000000000000000000000033f90000000000005af3107a400000000000000000000000000000000000000034050000000000005af3107a400000000000000000000000000000000000000035d40000000000005af3107a400000000000000000000000000000000000000033f70000000000005af3107a400000000000000000000000000000000000000035d70000000000005af3107a400000000000000000000000000000000000000033fb0000000000005af3107a400000000000000000000000000000000000000035da0000000000005af3107a400000000000000000000000000000000000000033f40000000000005af3107a400000000000000000000000000000000000000033fa0000000000005af3107a400000000000000000000000000000000000000033f60000000000005af3107a400000000000000000000000000000000000000035dc0000000000005af3107a400000000000000000000000000000000000000033fd0000000000005af3107a4000000000000000000000000000000000000000343e0000000000005af3107a4000000000000000000000000000000000000000343c0000000000005af3107a4000000000000000000000000000000000000000378d0000000000005af3107a400000000000000000000000000000000000000033f80000000000005af3107a400000000000000000000000000000000000000037910000000000005af3107a400000000000000000000000000000000000000033fc0000000000005af3107a4000000000000000000000000000000000000000343b0000000000005af3107a4000000000000000000000000000000000000000378f0000000000005af3107a4000000000000000000000000000000000000000343f83104ec3a05914c1205b5b4d14e35796c3e76b72ba6db397b25837f4b0cb07d00f61cc22d8a053aa5bc58cb01c9ca70875d7375311fcbb4737f2c407d0ee7337bf3eca728ccb0000006ff86d41841b6b0b0082520894e4edb277e41dc89ab076a1f049f4a3efa700bce88703328b944c63578083104ec4a03067365b5aaa4e92b4ce3e52032d7783b9148cf26970480c2a70ba468dff13dca04742c793bd831337154787398cea7411b99e653d3757995a780c2490f769905800000a17f90a1417841b6b0b0083054ef194f02bbc9de6e443efdf3fc41851529c2c3b9e5e0c870110d9316ec000b909a421c69a1900000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000020a796fb0000000000000000000000006352a56caadc4f1e25cd6c75970fa768a3304e640000000000000000000000006352a56caadc4f1e25cd6c75970fa768a3304e6400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000008c490411a320000000000000000000000008d2b7e5501eb6d92f8e349f2febe785dd070be74000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df0000000000000000000000008d2b7e5501eb6d92f8e349f2febe785dd070be740000000000000000000000004d67d9fab6613e40b907df39937a4006eb58abaf0000000000000000000000000000000000000000000000000000000020a796fb00000000000000000000000000000000000000000000000000000000200090520000000000000000000000000000000000000000000000000000000020a7c24900000000000000000000000000000000000000000000000000000000000000020000000000000000000000003254ae00947e44b7fd03f50b93b9acfed59f9620000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003600000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000002449f86542200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000104e5b07cdb000000000000000000000000887b414d34ba20ae7ed5378380682f22071d08c2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000008d2b7e5501eb6d92f8e349f2febe785dd070be7400000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002e06efdbff2a14a7c8e15944d1f4a48f9f95f663a4000064f55bec9cafdbe8730f096aa55dad6d22d44099df00001d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000648a6a1e85000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000353c1f0bc78fbbc245b3c93ef77b1dcc5b77d2a00000000000000000000000000000000000000000000000000000000020a7c24900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001a49f865422000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df00000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064d1660f99000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df0000000000000000000000004d67d9fab6613e40b907df39937a4006eb58abaf000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec3a0b12019b5871ec5d503341120912a597c393825d14e424232014dbbb7c89a8a26a0708551a96ff86eacf4672374b9e673011b8aed69cc148cee4f7c42e1ef040be900000072f87016841b6b0b0082eda6946e55472109e6abe4054a8e8b8d9edffcb31032c586f5904616e000841249c58b83104ec4a0a44b597c9f552af32ac55a59494acdae4cee1c8abd56abd199974f6a70fe37bba03c7f86b7b9c6385fe560079bd6633c8fa1bb2309ca8e3bb5ac7df018a0bcba7a000002d8f902d504841b6b0b008302bb209480e38291e06339d10aab483c65695d004dbd5c69880214e8348c4f0000b902642cc4081e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000001936b87f0000000000000000000000000000000000000000000000000000000065cf8c5200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000214e8348c4f000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000053000000000000000000000000000000000000040000000000000000000000006735df21c3a5120550732cef61481beda98b18d20000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec3a03794ce0f399487cc736e737abd0b93a382e9682851e0133323ef775519a789dea06df7711e045d1deb40e8c5dd59f8ef55660366e05967d4ca214783e8207b0eed00000170f9016d1a841b6b0b008302a98f9418b71386418a9fca5ae7165e31c385a5130011b680b9010418cbafe5000000000000000000000000000000000000000000000000000000000030ae650000000000000000000000000000000000000000000000000003f7f7de71f3c400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000007b21be3e28e5e750d2b0da8712230bd689551e070000000000000000000000000000000000000000000000000000000065cf6481000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000530000000000000000000000000000000000000483104ec3a076bd239e64c81fbd8aa270ffef961117e0f825408742162cdfe1f25064a460eda03ae57438ec1fef35708b764d77a07e5eb2f5724a9d35f1539b6680628e4f716200000072f87083015e1f841b6b0b00827b0c94f73f9b47ac3c6fb96aa76c1731525402da5378bd870119f1803ced808083104ec3a00aab877f618fbb108308021c1e596a3032b935cf027ffd271f3852f5c08d3fcba0699538e954a4e2bce919036172b0ef6b313c243ed53897908ab68cec325b498a000000aef8ac819d841b6b0b0082c08194f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b300000000000000000000000018b71386418a9fca5ae7165e31c385a5130011b6000000000000000000000000000000000000000000000000000000000360495383104ec4a0adad668c4c7f0769424c154476492e5490f257538bf91bf6a2fddb504b0a196da003e7b1a86d957ec8cf71e876ba4fe06b691549258329b415a52a2ed3cf4966630000008cf88a53841b6b0b0082b7e994530000000000000000000000000000000000000480a42e1a7d4d000000000000000000000000000000000000000000000000008a8e4b1a3d800083104ec3a00e431f8236c8b05ca07f0451b9355962cdd896b29e7406ecc018b6e3d236a2fba04a9f3debe44ff01d3d9660898f9cf8074ff3b60b2a232918f1090e326c830c8300000070f86e1c841b6b0b0082fd0d943035f73e3a323f7ee4847ec80ca643712436868688039bb49f599a00008083104ec3a0a59068bdd349b235cccfbc0446a94fd3f966e4f1a4dc4e054727086196f88befa0338ad3c6d653e31ece71ba4ba7831fd912901ad910cfa1158c23addb490bc70100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f2d01000000000033b3690000000065cf5d8300000000000000000000000000000000000000000000000000000000000000000000000000989680000b00000000008ff88d8303b796841b6b0b0082a4f294530000000000000000000000000000000000000280a4bede39b5000000000000000000000000000000000000000000000000000000075e85ec5b83104ec4a079e87eb7e1608aae3a0fcf68fcfc60c6a3a882f4e8f7d93824357ded81dd31a4a07703d96f2b036fd98875a8ad4d2bf11b282399406726a1ae60a02c89c5b23490000000b5f8b315841cc9fec08303fe8f94ec53c830f4444a8a56455c6836b5d2aa794289aa8770cfeef5d605e0b844f2b9fdb8000000000000000000000000274c3795dadfebf562932992bf241ae087e0a98c0000000000000000000000000000000000000000000000000070cfeef5d605e083104ec3a0e7de46d37490a15c4911cffbe178d12b9d5e6aa762f12fbbc486cc52580d77bea0628f3eadc3b7029c6c5e6d862aa5507f9db686254bb6c80374c4b298647b709700000073f8710e841c03a1808301c8ab9461bb3852947a370946abdba8fa9cf45ec472f83f86f5904616e000841249c58b83104ec4a06d79b1d520c32e53a16f368c72839c94fd96e9a9339687c63e1810a96d5b03f1a010759ab0dc6cd4a9b52437bf74be57a8cc7f07a5389402f117ec8d05e4c1109200000073f87103841b6b0b008301c2d29456ac94d5f5552de5dbd2a36af07caff174c1a62286b5e620f48000841249c58b83104ec4a09f686dfbb5b43a1f146a0ff7ffc056e4786c8741d0f3ffe6749ad113d0598a1da06518a87ad6b761dc77f7b40b3c4ad352b6ac8e622323219cd69e424406c8634300000297f9029401841b6b0b0083035e96942db0afd0045f3518c77ec6591a542e326befd3d787038d7ea4c68000b90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000196c21768d3f73ee1aff5b8f2e707c01bf4263100000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000000000002b02120000000000000000000000000000000000000000000000000000000065cf5fc4000000000000000000000000000000000000000000000000000000000000002b5300000000000000000000000000000000000004000bb806efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec3a05a0f0d3482ce5f5fa7a373eee4210c99a442890ca260007771cf314780a88c1aa0782232e02f78a05d32c9f26a8d5e0e42f6f9ea19516e0cf06ba16febc1feb8ed00000410f9040d0f841b6b0b008303282994595e7160858b1ada94bda790d8699c85e595117e80b903a43593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf65a500000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001600000000000000000000000005300000000000000000000000000000000000004000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065d8a0250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000595e7160858b1ada94bda790d8699c85e595117e0000000000000000000000000000000000000000000000000000000065cf65a500000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000041e3fd50fd575b7fbf524b68ef4aa4ec341acfc929ec83f319d5e0221447fcd79d73bdc524ea96752e55c8651b0f855b80459ed4c310a4a7f98533ce7ea052d5b41b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000b76ea80062508ffb45c49c949ad160e945701226000000000000000000000000000000000000000000000000000aa87bee538000000000000000000000000000000000000000000000000000000000000080178100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002b53000000000000000000000000000000000000040001f406efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000083104ec3a0713e6f40deb1838441681ffec1662bb265d1b7d39d92ff998ddf81caabe54cb7a06f32a5b2c9a5fcad6fedbbca7feaa9cd368a87890dc5e88292c71407ee4f05d100000290f9028d2e841b6b0b0083028070945940a60866255031830aa1edfdd8b56ab39765b780b9022483a7abd800000000000000000000000000000000000000000000000018db20518055c0010000000000000000000000000000000000000000000000000000000065cf5ea200000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000097c02d37c6c5787f34b7a0d47a4ef1c0b6409a3200000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b00000000000000000000000000000000000000000000000000000000000000025420c92f09097988769d1cab819f6cacb560a35f0be0f86f277ab9fa7b0fdcb7045334f0660b43925c7be69b1a6a1b3ea5968537d1250f57b5897486921e58b800000000000000000000000000000000000000000000000000000000000000027578023ebab027f8b2a667b44bf96876c588a2ab20a0f01fb7dc6dd25e9f803f318fbda33f94df1ca731862d748844a7425a9d1c6ff9341e19c0ea702aec95cf83104ec4a08a6076d866222bddb667dfe5be90be131c19b519cd3e7c50512a197613e717b5a0159e8a6bfb94233a60cb214bc7300f0863af2ebdff3df4db208e850bc2aaba2a000000adf8ab2b841b6b0b0082c08194f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b30000000000000000000000002db0afd0045f3518c77ec6591a542e326befd3d70000000000000000000000000000000000000000000000000000000005f5e10083104ec4a08c8ecf20ba358d775493e6c92b8480ae77ad362e7fe02198f6c890b8990c1b89a007e2e1754e5ed8267fdb94f097c69f9ae8a2f4f464febc7b944a69408a9e935200000196f9019305841b6b0b0083034d07940e543107044ea436896945001a469bf0f8e6552d8694b752970371b90124126928c4000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001442dcf181faa950a8bb0f409503e6adc4896b6b95000000000000000000000000000000000000000000000000000000000000000000000000000000000000005600020000000000000000000000000000000000000000000000000000000000030d4000000000000000000000000000000000000000000000000000038d7ea4c6800042dcf181faa950a8bb0f409503e6adc4896b6b950000000000000000000083104ec3a05a563a702e417c3076be23a4ed1c8e63003f36869b2839fa32d66b0d6a57323aa01c87c498ca3a859a32e3b412f89ff32ed993c4c363d3225dac05ed23500aa4d800000073f8711c841b6b0b0082cab49453000000000000000000000000000000000000048724d200ca73c00084d0e30db083104ec3a04ee36ba03a55b3e380dac1c525310cdfe652ecb4447aff0d43a79a43b6e9e836a05ac1b09b34be6cb83269f75ce9a944d9ffe496997671061b5306b9205eefce5d000000adf8ab17841b6b0b0082eb929406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b3000000000000000000000000aa111c62cdeef205f70e6722d1e22274274ec12f0000000000000000000000000000000000000000000000000000000001ba814083104ec4a024e11933896c4ffdd6f72dc9cbbc4664b300bad0a925562bc98d994264c33fe2a07c053d7073f36f10983a5e8ecf863c39476865738b586fb2f997fb3c6789e35500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000190102000000000033b36a0000000065cf5d8600000000000000000000000000000000000000000000000000000000000000000000000000989680000a0000000000000033b36b0000000065cf5d8900000000000000000000000000000000000000000000000000000000000000000000000000989680000b00000000006cf86a048420e6da008267809493352e29334190b660d188bf1c63c41a0eb6b5728084b49004e983104ec4a04bd05e9cb6e04da1c3ea32f86c0fadfe254f0d111f72ef76e978a0ff92cf883ba01c19f46a5ae4effb0d8000567ea6693ab7a3c82a7d9a534e9969a760536c2ee0000000adf8ab0c841b6b0b0082c08194f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b3000000000000000000000000414991b742fbcbe3ef00d94ff9f9a63729091711000000000000000000000000000000000000000000000000000000000741859783104ec4a0b70d1f37a1f53f8f731ea2517baa64d328ca16f2c8982879105af840c0968576a0084591335c98810bb8c24025967b8dab37f9cd493c3de123bf1bd7577b307110000000aef8ac09841b6b0b008305ac0e94ec53c830f4444a8a56455c6836b5d2aa794289aa80b844830cbbbd000000000000000000000000274c3795dadfebf562932992bf241ae087e0a98c00000000000000000000000000000000000000000000000004d4c5be2f7b997183104ec3a0baf44fd2f1d47bf344fc478c1419de16f7f36321524f83b2f5e1c69304a69ceaa014d72f1786a614be02349fa9c748977cb88818bd961c2d8c4d69bf5d207041bc000001b7f901b447841b6b0b008301ca9194aaaaaaaacb71bf2c8cae522ea5fa455571a7410687c6f3b40b6c0000b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000c6f3b40b6c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa9471000000000000000000000000000000000000000000000000000000000974f9ab000000000000000000000000000000000000000000000000000000000000000083104ec4a0c3562baf6b0836567761cca12e44bdbd0f2350dd0821227583a60e62e8aa6e9da032973be885a5ddde27ed1d73a24c2a9d3d0d88bbd96d8d5339cba1713d8759fd00000292f9028f82073c841b6b0b008304c6a39402c83302696106b24b4ddb16fb2d97d2221acce880b902245704518f00000000000000000000000000000000000000000000000000000000000000b824206b6276e688e95efe52836794562445acff75bd43ac253a6f79948b474abb000000000000000000000000000000000000000000000000000000000000008000000000000000000000000061bb3852947a370946abdba8fa9cf45ec472f83f00000000000000000000000000000000000000000000000000000000000001802e950f54a17c6695b1d8b9456a094274c989a4a98b27e20bf3914d3d301660580d20f1d4d92b9417f3849b799bd1bbb3f5020a9cdf266ac992328fca1b4073780b0b4e297b0813bd1bb9a0ddf9ca6f93a72eafb023875392750de85b4b8ac9d726f937f14a236aad6c7aa8e0f624716ee5facc47ebf297ffc52588568ef2f33a05e7544482e8ce22ffe943d745fd190498d9aa974720da1c57be2e75d15e3f990b456dca2977c510190422a6f1dab2d5446d017381c83a56d19ab85cbb8eb6ed24e672be0973599d509395a0dd3a68168553a7ff9832feea1b5a107f2d63d45703f4bea6f83630f4c660d8c87518c32fd52885f4e83e505de9fd53bde83a2b2d00000000000000000000000000000000d420e985a2fd3ce86ebb91f4d45e22b7000000000000000000000000000000003184b502f57aae989bf5da7ad2a45fa800000000000000000000000000000000b5a94f101c196b1dc60a9cfe6293f2bf000000000000000000000000000000003daa7c14d80c1fcae395042e9b62a3f283104ec3a00d5d7af66a7eb888ce82e13d874c46a73de49b9d3f55b243c7e860ffa8c74d70a0354bd9a5460f670878e2717b8a027177d137b818e13dafda42f950f69917176d000000adf8ab04841b6b0b0082c08d94f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b3000000000000000000000000aaaaaaaacb71bf2c8cae522ea5fa455571a741060000000000000000000000000000000000000000000000000000000021c3db4a83104ec4a0f7d8faaee7f99ae73c03ecf6861828bfeb3d8f17920e381a006dc31ad4c4e86ba006a8da468fa6159c7e691457bf5f584fa85447ac53c3428a4dfd2f1f7b42236d000000adf8ab18841b6b0b0082eb929406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b30000000000000000000000006131b5fae19ea4f9d964eac0408e4408b66337b5000000000000000000000000000000000000000000000000000000003e21a9bf83104ec3a0ff6ca612b0891f95f02f2827cbb0c4199c7f5a70f45ce2955e6a36c636460914a03fd8534ad6208d89a6423e44cafdcd58d4a5f49ce122d8b8d8676f80d38dffa400000390f9038d22841b6b0b0083032eac9480e38291e06339d10aab483c65695d004dbd5c6980b90324e84d494b00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000001fbab37e6534e0000000000000000000000000000000000000000000000000000000065cf8c5e00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065cf8c57000000000000000000000000000000000000000000000000000000000000001cb4f3233c61aa46b47db20258ee188bd658a3eb1b301dbb28630ebc9e70f70e0e179df7dc9b0d321025dfafe3adcad6a0397e335dcd9282a272d9ed0039e9bf2e00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000c45dd47e54297587d0f6d55872266341e0a628ac0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec3a064e0b8fa6b4f0609ce9e10414fd399fe369976f86400162fab30ee0743a24b00a0111c07e5707668e49e8a731fff704661409b46790d2ecec58f144c87d24df168000000aef8ac07841b6b0b008307ca3594ec53c830f4444a8a56455c6836b5d2aa794289aa80b8444b8a35290000000000000000000000000d8f8e271dd3f2fc58e5716d3ff7041dbe3f0688000000000000000000000000000000000000000000000000000000003b7cfba783104ec4a05b13e434266b019edf5b67da6fd9430a6c66417215c63fa7f857bd3901d9b171a0214db8d0288b97027f05af3351d151c73de9517d63ddab1568509b84ae325f7b000000b6f8b40b8417d784008303635194ec53c830f4444a8a56455c6836b5d2aa794289aa880470de4df8200000b844f2b9fdb8000000000000000000000000274c3795dadfebf562932992bf241ae087e0a98c0000000000000000000000000000000000000000000000000470de4df820000083104ec3a05f52cb55c57a1ecc4c18b0daa1260d3c2a4cab1ac1d3660d5fe968ea93388a0aa06b30b6d064948984c26d59fdabb893ca287e2a1fa31502b578650737b7ae5c6700000273f9027083068a788420e6da00831b24d094cb566e3b6934fa77258d68ea18e931fa75e1aaaa80b902046c459a2800000000000000000000000038de71124f7a447a01d67945a51edce9ff49125100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000065cfb1e000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000084704316e500000000000000000000000000000000000000000000000000000000000000668e06584340b10f2363f46c177a0f37e4eeab04a90d6e37a7ae63439e585af4b300000000000000000000000000000000000000000000000000000000000000148e06584340b10f2363f46c177a0f37e4eeab04a90d6e37a7ae63439e585af4b30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000827d99f7002baf7401a1f72e63ec5b1b662c1a970fc884d5c594c9bac5189a0b222dccb9a58114bbb8478a544863938103755fc41fe61d8cbb8bd22444e881a1f41b216f894c33dcd3e02780dd33ec0ab4933133d9ac748024f0866080f3c48e06421aa887246ecaf97c806f7e274fec2ce0ae7b997725b606d27bfeaa312ee4d5621b00000000000000000000000000000000000000000000000000000000000083104ec4a07453d2cef2e4071f7b012238bd5c335ef5dc605941870820140fe2211bc08508a07f2ce01785aeb15941beeacac62f68efa2622888c81309d4abbc6412f59c19f5000000b0f8ae8283098420e6da0083011d639406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844a9059cbb000000000000000000000000a032af19029667fc7ad842d65d524e62a16cc4ca000000000000000000000000000000000000000000000000000000003bd7ac4e83104ec4a0b1d40adbd5cd60b997dbce8c4651c0568b47e43df4887408d32023da3c7ab773a07b499de73244d3d91f8a1a2b4f1ba328048a21a0f513a06777ec6ee7f5d0cc7300000074f8720c841cc9fec082def994530000000000000000000000000000000000000488011e4fe56bde0d8184d0e30db083104ec3a01a3e30b8c2ed5256fb257b1a26e990bb306f3b2d7aa7290f593ecf7de5af4a38a04b322caa6c2c64760cf29f4a0fcaba24f6b6307bef84fbcac53b8086f043293b0000006ff86d16841b6b0b008252089480c67432656d59144ceff962e8faf8926599bcf8870ffcb9e57d63368083104ec3a0b2204407581aedcf7c584083821416d87d6690721d1b8d900f43524d1bafe938a0031001c39c46f5aea5dbe13d2d1ffbbc0431268d28d94a6b9b59a33b58842e150000006df86b03841b6b0b008302a43b949751686a5be48b89929667c92c3d2e1eaa2f6f4d80841249c58b83104ec3a02fc2a147a61e00f85488bcbcef00f8859e116e1a1c04ef52511ccda821949133a020ff66a6010f882444bd8534f8451dc2ddeeaddf04f5e76150f12517ed50ec900000008cf88a08841b6b0b0082a73194530000000000000000000000000000000000000480a42e1a7d4d000000000000000000000000000000000000000000000000001ff973cafa800083104ec4a0fe7e2847552fc8196fd32cdeedbc7e824a4aacb1b435524cae17b3f5717beae6a003f8f4fe417fa8be7b730095afd3ba7c981001546ae8c95cf4bb0102a2413f08000002d7f902d407841b6b0b0083029f7a9480e38291e06339d10aab483c65695d004dbd5c6987038d7ea4c68000b902642cc4081e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000272ee48a67e06edc0000000000000000000000000000000000000000000000000000000065cf8c62000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000b39880c7a0b752179d6d7d9ae594ab4c02d6e5b800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000600000000000000000000000005300000000000000000000000000000000000004000000000000000000000000fd6a217a51827aa294989590e072f908cb312d2b0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec4a0bce61309778a3d4b1d0ac18a94cf86582c096a549516d43fe2d95e346dfdd67ba0227dae8cd82d906b179259f0386e52c5b4db55214fdf279bf29d115a142bc11c000000aef8ac1e841b6b0b00830201c29428519c97dcf2a2794e7b542efb235c3d5bd6e6b680b844449a52f800000000000000000000000045d55434dcfc2c93767643c4ed4feff8260da640000000000000000000000000000000000000000000008d2c09496426a668000083104ec4a04c6deeb83a734caf1ef9de7e210ab06382a5fab3742b180e92f4aadc34e47cfda055cd3e0230495d430b5c979f757b6cfabea6c88c0667191604d78c2a1fd51a25000000eef8ec07841b6b0b00830220ec945940a60866255031830aa1edfdd8b56ab39765b780b88472f66b670000000000000000000000000000000000000000000000000001e539e53b30450000000000000000000000000000000000000000000000000000018db206275000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000f424083104ec3a0bec977c37665439288960c313a7ab003cf9f0f25a47a4890cb25d8ae64dd11eda048428714d8532ab3e483ec361341ba4ded11ed2959c15f1157c7c20423f577fa000001b7f901b480841b6b0b0083020d5d94aaaaaaaacb71bf2c8cae522ea5fa455571a7410687b1a2bc2ec50000b901443d719cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000b1a2bc2ec500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff5433e2b3d8211706e6102aa94710000000000000000000000000000000000000000000000000000000008719621000000000000000000000000000000000000000000000000000000000000000083104ec4a0944481cf417d8b056cedfaabc01497c8ed58f6537bdf4a3ffbb958520a7225b9a05f2de5c2f8754c0580f1672c16e477d36232e95f91841456455a0a9216f00d48000000adf8ab40841b6b0b0082eb869406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b30000000000000000000000004b9de260e4283feeb53f785aabeaa895ec5d46f9000000000000000000000000000000000000000000000000000000000010d2cc83104ec4a002977c20707ba95f71cbd621270e0857bd05fa70b918f6d66894a914850fe731a02da4fb93b6184e7694a3855592e397a40b21a29d3c17990ba99d0f6af76126e200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000216703000000000033b36c0000000065cf5d8c00000000000000000000000000000000000000000000000000000000000000000000000000989680000b0000000000000033b36d0000000065cf5d8f00000000000000000000000000000000000000000000000000000000000000000000000000989680000a0000000000000033b36e0000000065cf5d920000000000000000000000000000000000000000000000000000000000000000000000000098968000040000000000aef8ac0f841e28f2808301d6f49406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b300000000000000000000000080e38291e06339d10aab483c65695d004dbd5c6900000000000000000000000000000000000000000000000000000000003d59fb83104ec4a004b5676a5656e003c8b49c1fcaab92dc82bcc657ded354d26da75675799e6404a076b90bb42bef77e922f5b8f9f16dee511e7616d47184c51666b685177ae51ca2000000b1f8af830cf3be841cc9fec0830218ee9487627c7e586441eef9ee3c28b66662e897513f3380b844535b355c000000000000000000000000239698849c72316cafb02f3ac9bd16307218ffb9000000000000000000000000000000000000000000000000005df6d33f9ee00083104ec4a065907453487e2e8f4fe990b6fc728f767a90f3ef4cebd6910bbb03393fc60410a057175004da00a70a915ebe7e725a47f32237dc54b73df21bb90007ec85f744b6000000adf8ab0b841bb3997582f7439406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b300000000000000000000000018b71386418a9fca5ae7165e31c385a5130011b6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec4a070faa26eb799eca5aab66a816af56ad4f723d56aa4231d66d27bd483b749ae70a0016c9e988b1888fcdd3dab6d311845791d47c82804b94d42f33dc048d715e38900000177f9017411841b6b0b0083031f1b94aa111c62cdeef205f70e6722d1e22274274ec12f87093b497e292242b9010467ffb66a0000000000000000000000000000000000000000000000000000000000703806000000000000000000000000000000000000000000000000000000000000008000000000000000000000000021ecd3baa04cbcc36f60f840e2cc5ff3e18174020000000000000000000000000000000000000000000000000000000065cf648d0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000000083104ec3a092fe7af057c2d6ee0d9010b7123761248fceb0441dca20d6b022de90d0abdb4da052c54be1f120276c7ac797dbc5657a66b7b9e8ef4c3c34cf1762360d62f83d48000000adf8ab0a841b6b0b0082eb7a9406efdbff2a14a7c8e15944d1f4a48f9f95f663a480b844095ea7b300000000000000000000000018b71386418a9fca5ae7165e31c385a5130011b600000000000000000000000000000000000000000000000000000000009fefe583104ec4a00ec73278c1b1edc95a9abb12b716d93aa1a6ec6868e619e264a5540582f36db5a06b0b7ed8d5e28d9935acd255bdd8d48dd9d3cb177bc01bb3ba3dd4c9a62ce8760000017df9017a80841b6b0b008301adb98080b9012560806040526000805461ffff1916905534801561001b57600080fd5b5060fb8061002a6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80630c55699c146037578063b49004e914605b575b600080fd5b60005460449061ffff1681565b60405161ffff909116815260200160405180910390f35b60616063565b005b60008054600191908190607a90849061ffff166096565b92506101000a81548161ffff021916908361ffff160217905550565b61ffff81811683821601908082111560be57634e487b7160e01b600052601160045260246000fd5b509291505056fea2646970667358221220666c87ec501268817295a4ca1fc6e3859faf241f38dd688f145135970920009264736f6c6343000812003383104ec3a01a14866610a26b645776ebba71cfea57e217c110acafc7abce50257971c18055a042dc182987fd46aae49e419e41c19bc408ad31b52d207099b2593ae649c5652700000176f9017322841b6b0b0083031f1b94aa111c62cdeef205f70e6722d1e22274274ec12f867df5ca66667eb9010467ffb66a000000000000000000000000000000000000000000000000000000000005fb700000000000000000000000000000000000000000000000000000000000000080000000000000000000000000654e899bcaeb249de1154980ccc5f9ff07d7724f0000000000000000000000000000000000000000000000000000000065cf648d0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000000000083104ec4a0dc453df2378df7d0f9d094e4a0b544dc956833f18e31edb7163ce4f0c2892bd3a0491d7463a4874d6cbdd382d794c0bfd283166d1fb934857459fd5095802d00e800000072f8705a841b6b0b0082eda6946e55472109e6abe4054a8e8b8d9edffcb31032c586f5904616e000841249c58b83104ec3a0d88aecb0f49b63bb620ba268f757041ef2bae7fef00ce12fb93959d44c1b34d2a06a87de5826f67a45d9de03f475054f3445626cf41e12d9266190f8cc9e80ea00000000adf8ab1f841b6b0b0082d21c94f610a9dfb7c89644979b4a0f27063e9e7d7cda3280b844095ea7b3000000000000000000000000b6966083c7b68175b4bf77511608aee9a80d2ca400000000000000000000000000000000000000000000000001351609ff75800083104ec3a0f96d6e99dbc4fe444e8d7c4cd5c2662c8d67857ddfc5cf535297a59653cfa914a056600472dbe565c6bb494a4d157c53c20af12c245a04379fa004d223de177d70000000adf8ab06841b6b0b0082c08d94f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b3000000000000000000000000ca6fe749878841b96f620ec79638b13daad3d32000000000000000000000000000000000000000000000000000000000046bbe9683104ec4a0761075db6c54b2e395ff2b2e288571afcc3e806b836aa40782662e821068f034a018fc4c7554fa5737688ab0770e55e17b2347e3a2708f33f0f5b37a857061d5e90000008cf88a2a841b6b0b0082b80494530000000000000000000000000000000000000480a42e1a7d4d000000000000000000000000000000000000000000000000014ae97832aca65e83104ec4a03d77cac9af7e729503a0372098f7a940b2671bec890c98264426979a02317fc6a05fddb0e046f82edcd3432706062daf1278984522c02bb2bd9a844ae3b85455e90000008ff88d8303b797841b6b0b0082a4f294530000000000000000000000000000000000000280a4bede39b500000000000000000000000000000000000000000000000000000006fd4c3ff283104ec3a01180efa28172b08704ce96419c3b46e55b6557d4c8dab99141d9ee03f207c5eda049d756f6387d7894b2e60b29b404e3a81fbc0573678b5829c5ed5ea1022bedd60000016ff9016c098420e6da00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403937666163376231313737333238643832646166656135346561623034356131323037663663363136376235346631306337386231643663663864353630393600000000000000000000000000000000000000000000000000000000000000403366646534323534336630613935663765616161646638666331333236346263643663623635393033643966323862353039366130366638373338646331393583104ec3a0444eb098c74b01c34d9fa3489fca65c14252db2e16550c56754393618ddfc88da07d19f07a90388fa79054c82331c32f9069aa0c9f5ecf3a92af953080809d269d000000b1f8af830cf3bf841cc9fec0830218ee9487627c7e586441eef9ee3c28b66662e897513f3380b844535b355c000000000000000000000000daa30f818eefbb10d66433a9b4be142ddd9a5f3c000000000000000000000000000000000000000000000000002116e5b0bdc40083104ec3a02b1598cfacabd3a4bee1a0a18d885e29cf660067133a858c8fc237b4b67a19b5a06b28fd918905a13062044d029617d4a93a3eb101a5f498480a57eef84193ed450000008cf88a53841c03a18082fab894530000000000000000000000000000000000000480a42e1a7d4d00000000000000000000000000000000000000000000000000b1a2bc2ec5000083104ec3a020fc05cc370dba2ee34a669e7c0f5f1fc78a886e481cc6b25cf38ece72aed0a1a00b08fb6c84c65928d69d619b38d859608229654c0aee5ea86ab99b6253fcf43e000002d0f902cd1d841b6b0b0083038b849480e38291e06339d10aab483c65695d004dbd5c6980b902642cc4081e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000001fa69635fcf1cb0000000000000000000000000000000000000000000000000000000065cf8c6400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000000185a9c800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c70000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000006857b8405a0c7d59a377eea4132a9aa5dd0fb8150000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec3a01f494204222fb52324e696649aed2832877485ce763adfaabb4887900c104a02a01abff2838eeda16a5caa19482526ba0b1e186774702a165aee55fea20501d4de00000196f901930e841b6b0b008303b5ce947dfb5e7808b5eb4fb8b9e7169537575f6ff1a2188634608d7d0b75b90124126928c400000000000000000000000000000000000000000000000000000000000000b8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000147f7cd4b00c7a432cbe2c1df57ebb9d84821189f2000000000000000000000000000000000000000000000000000000000000000000000000000000000000005600020000000000000000000000000000000000000000000000000000000000030d40000000000000000000000000000000000000000000000000000009184e72a0007f7cd4b00c7a432cbe2c1df57ebb9d84821189f20000000000000000000083104ec4a0d44a96cda86a34f2cee0c7712157b4927b5fb9aa16b359558850305f4d2a8c00a0585ac7455cb49a84dd2d270b945b971b6435c704f9706adc41b0f1d7248c6654000000adf8ab13841b6b0b0082c08194f55bec9cafdbe8730f096aa55dad6d22d44099df80b844095ea7b3000000000000000000000000aaaaaaaacb71bf2c8cae522ea5fa455571a7410600000000000000000000000000000000000000000000000000000000000f424083104ec4a055081e4e2c837b383da22629a2a06386aecd88eb7c967bf49e52c782f77f98bba067c47f9aa0654f098b77ce4ecc1f2f6de4cc9c803a20e2acc450dfb0fab6e4060000006cf86a1f841b6b0b008267809493352e29334190b660d188bf1c63c41a0eb6b5728084b49004e983104ec4a0b9242d903907ae4f099aaa0f28fd71ce06bea13139d414ef7233795dbb59ae4da0684cdf9d9d59a0433c91bcfb621f3370b8701701d573cb35d98b0a8b44c33b9e000002d6f902d380841b6b0b008302bb089480e38291e06339d10aab483c65695d004dbd5c69865af3107a4000b902642cc4081e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000044e1d0000000000000000000000000000000000000000000000000000000065cf8c56000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005af3107a400000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c700000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000530000000000000000000000000000000000000400000000000000000000000013e89345d72c65346ff880ac790fd50809fb311c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec3a065f4429790b2b0c9ceee1764ba15c3ee5b421a5e81c190ba88e5aedec7b120f8a03038a234c705254acc50a27325de26d6bb802e65e7ebd965d6a561f99367873700000297f9029422841b6b0b00830352b0942db0afd0045f3518c77ec6591a542e326befd3d787017707ac0884aab90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000637b3b992fb77d78983b5a1ed7cd1036658c77d900000000000000000000000000000000000000000000000000017707ac0884aa000000000000000000000000000000000000000000000000000000000011d8c50000000000000000000000000000000000000000000000000000000065cf6491000000000000000000000000000000000000000000000000000000000000002b53000000000000000000000000000000000000040001f406efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec4a01fbc7448bb222224b7beb8daea5ef61e5fd8336daaafe5dece2194f83131be7ba06c2f0245ac3b7cf3324b1c381c1bac15de87d0912a8ca5541f16c697b90f2a2c000002f7f902f441841b6b0b00830355a094ca9fbef94d7cc8662f4711a8612ff9dc1526e650878e80fa99e03cd2b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf5fc600000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000008e80fa99e03cd200000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000008e80fa99e03cd20000000000000000000000000000000000000000000000000000000006b8adbc00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b5300000000000000000000000000000000000004000bb806efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000083104ec4a0c197b1084de92ab9fdc3f3ea234f9a37825070120be408f387039c061570576ea034f30853c9011b04744473ef6170804547a430308fea869e60201e69d67f82af0000016ff9016c47841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403466376130366630393666616333343965666539633333383636633036316162613732643433343034303266633565653035343833353461383830336164343700000000000000000000000000000000000000000000000000000000000000406638373838346436643833306466383861633333626662643931343935333137616232663834373030663137346139353939303161633930363436373064633883104ec3a0ac0fb868675aceca3f6269f726fc593e500e126a8e5a02398eb6c4275287bf2da074e120d7187a7cd95f3b2f735fab76c27e8884cce6794694ae96f51eb66439fa0000016ff9016c41841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000406365353764396165333262323466326532393934306135333939656364636266613436333637623464323633346462663032316633373535363435626439636200000000000000000000000000000000000000000000000000000000000000403237376332633331353066343031613362383864663036356138303331356566663438326235643637316163383833366364363437313234323665333535393883104ec3a0420e2a5d816240ca70346d5ae7d01f881c0aab272053d3b4c2b894b6ff1bb292a038726961aae0ce6b9c242d05e7a20afa042587fa6b9d7429228da5c82c27077d000002d7f902d403841b6b0b008302bb209480e38291e06339d10aab483c65695d004dbd5c69872e2f6e5e148000b902642cc4081e000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000022f8fa70000000000000000000000000000000000000000000000000000000065cf8c6a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e2f6e5e14800000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000814a23b053fd0f102aeeda0459215c2444799c7000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000600000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d2b4b28c4b3a81f59768016bccc7da3d771d97f50000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000083104ec4a0e6a7cf7894e3f89a681d6d5aad8a850843ac2438aa0427b02e42075226d34996a012d206a84460911281d8762495bb1b667ea9746dce15babf92b2b9a25acdfbaa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000187a02000000000033b36f0000000065cf5d950000000000000000000000000000000000000000000000000000000000000000000000000098968000090000000000000033b3700000000065cf5d98000000000000000000000000000000000000000000000000000000000000000000000000009896800006000000000273f9027083068a798420e6da00831b24d094cb566e3b6934fa77258d68ea18e931fa75e1aaaa80b902046c459a2800000000000000000000000038de71124f7a447a01d67945a51edce9ff49125100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000065cfb1ec00000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000084704316e5000000000000000000000000000000000000000000000000000000000000006ef4ca04d7971f734611386a7a4a9b7ef7b2b10a11e227301dade966e48189c4280000000000000000000000000000000000000000000000000000000000000014f4ca04d7971f734611386a7a4a9b7ef7b2b10a11e227301dade966e48189c428000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082cd1bb8255777ed57414784e2fa23870c58628df1ba9d47a8895ce0d4ae9e71904cbfe5bcd3fa4213a03f748416a08b191a0c8bed26b865858672a848211e00d61cfeaa581704f1921906f4ff36fdef1e366f4d1926d6ee6a7832ee1a574c9d01637680d0c46ce8f1d167acda001722e1fede1dc7b9f6bf62e942ed6cbdae7c15991b00000000000000000000000000000000000000000000000000000000000083104ec3a06ccc48c99408c76399354a1e2921fe2a34508f7a00f9635b20898903f38d8bcfa063b71d5dd97afd8a1324e9b1795c41d3215a69a68a8b18c8098c56b2e9d77b1f0000006ff86d15841b6b0b00825208945e809a85aa182a9921edd10a4163745bb3e36284875c5edcbc2900028083104ec4a04c31dd0417e67d4afbeb28c0e27832e8c84dda06153d39696ffcfd8c8c9f9308a01b157711f16eb49d7b3cf7b9cafd24715af839dab77f28bb280c44f2a52690f200000137f901343b841b6b0b0083040e969418b71386418a9fca5ae7165e31c385a5130011b6880905438e60010000b8c4f305d71900000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4000000000000000000000000000000000000000000000000000000006e533b42000000000000000000000000000000000000000000000000000000006dc603eb00000000000000000000000000000000000000000000000008f9b7b2c87be000000000000000000000000000aa916c42e129e6344acd5c6aa5e809f19a8f765c0000000000000000000000000000000000000000000000000000000065cf623683104ec3a05ec7d93fc2e68cb1fa996dee5cf78849aa7b45ae27ba61b461cc5c8aa5b2f546a04f66d2e14f50460fe8f4d600a721933483b4718bdb2ed1126f00a071cbedf20d00000390f9038d33841b6b0b00830345dd9480e38291e06339d10aab483c65695d004dbd5c6980b90324e84d494b0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000e0e1c85f2f55b0000000000000000000000000000000000000000000000000000000065cf8c6b0000000000000000000000001467b62a6ae5cdcb10a6a8173cfe187dd2c5a136ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065cf8c64000000000000000000000000000000000000000000000000000000000000001b87db9fad7ddc48c14987fa7120b2e8b8c980c0883084f02df08eee69e74d193a4936d74ef64bbd5b2c9628dcb57e8232576ff0e9411d07d7c3096482f61d74790000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000001467b62a6ae5cdcb10a6a8173cfe187dd2c5a136000000000000000000000000000000000000000000000001b5b57133f1bbc57600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000250f1ce83992db8e2e54534e36c4f2674a6a54a000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000600000000000000000000000001467b62a6ae5cdcb10a6a8173cfe187dd2c5a136000000000000000000000000cf7ea56efb482015785fbcb52ac23815aa8168bf0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec4a0e91bd2616236fbd69a47c834c701ced463ce08cb2d7092cdb0c4ff1782784defa0155474d4ff1228315fa5f23c2ee1131dafb508328115b022e09528e33cdd42b10000016ff9016c03841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000403534376338316435393135363163376638313035336464356638646263333936396564663133666637333031353135383061613963376462313065323235353500000000000000000000000000000000000000000000000000000000000000403033353533653132616634356330626162346436663232663335623366323639396566633134646462366333666434346638623437636430323735613362373283104ec4a01df69a8348c62b374a9fc1974d3c62242c5560e19b2b69d7e491ccb62431f184a03a8c8bc799753a80d872e92b6c4bf0f01e8db5bf9f99fb9620d65ee6847c663800000230f9022d09841b6b0b008303383094aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901c4a15112f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a400000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000300c80000000000000000000000000000000000000000000000000000000000030a0c00000000000000000000000000000000000000000000000000000000f07f55e50000000000000000000000000000000000000000000048383f2af68a0000000000000000000000000000000000000000000000000000494f0d1b37d4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec4a0a7d0b2890bb19dfb4fe7c01ee41302bb8882ec3a44f147795a19a053430a2515a027d027ea956e21a1d15245902b47fa5d24c041777ac8193add3de192e067182800000390f9038d07841b6b0b00830345cc9480e38291e06339d10aab483c65695d004dbd5c6980b90324e84d494b00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000001c5943327aba10000000000000000000000000000000000000000000000000000000065cf8c68000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099dfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065cf8c36000000000000000000000000000000000000000000000000000000000000001c81077af1cf5c26c1058bb9def39d646facf4b05ee75e76241de80e97182bb72d71f94d3f7288595d79a6029ea47aa2d01e3bcec0886cc17a8e9d077d05819fcf000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000000000000000000000000000000000000015ce300000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000078ea8e533c834049de625e05f0b4deffe9db5f6e0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df000000000000000000000000e086ca15190c336dc80b37159f3c431746e412680000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000083104ec3a0b407866a6d5388bdc45b06e61e5e934da0c3e42bd7fbcc021a21470ef276a08aa0685b5f0bbbe3f7d4b5fb221ac20784a8c0c3868146b59a75c9ae5556ce1558440000006ff86d02841b6b0b0082520894e4edb277e41dc89ab076a1f049f4a3efa700bce887254db1c224633f8083104ec3a0ab8bce75b42bc2f1a9bba91763ea062998802dacb563ad42509dc8a7a738d28ca022df72bd219b5567b247572a24304f18fc68346109aa88f42ac176c07fa3dfe500000070f86e0d841b6b0b008256d0945e809a85aa182a9921edd10a4163745bb3e362848801167d1e130640348083104ec4a0f1b1977220f626ff07fb8bbc74880ebbb90557588c695a7c1bdba93378806bbea005c4a45982f3532e797fc24286705601be453f2d77b0d4a3ba9c01eee540b925000001faf901f783069e8d8420e6da00830f8d5c94a658742d33ebd2ce2f0bdff73515aa797fd161d987027ca57357c000b901840508941e00000000000000000000000000000000000000000000000000000000000000660000000000000000000000007dfb5e7808b5eb4fb8b9e7169537575f6ff1a2180000000000000000000000000000000000000000000000000000000000030d408e06584340b10f2363f46c177a0f37e4eeab04a90d6e37a7ae63439e585af4b38e06584340b10f2363f46c177a0f37e4eeab04a90d6e37a7ae63439e585af4b300000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000e7a8d7de780fce16451a355b86025eb36b2fb05d00000000000000000000000000000000000000000000000000000000000000680000000000000000000000004d73adb72bc3dd368966edd0f0b2148401a178e20000000000006c440066ef1eae0457e8d56a003d781569489bc5466e574b00d67dfb5e7808b5eb4fb8b9e7169537575f6ff1a218e7a8d7de780fce16451a355b86025eb36b2fb05d00000000000000000000000000000000000000000000000083104ec4a0af8d7d41ac4046cbb3778312c06d7f1f30899deef593486adab9d284e2b25d76a016019c5babf185f540a31c7e1b439df6f9da4af082c5bf5e919000b7b28edc9e00000170f9016d81e6841b6b0b00826e8e9447fbe95e981c0df9737b6971b451fb15fdc989d980b901045b7d7482000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000406662356231363031336631663565626335636166383861616265646530633464656266336166663763393363306366373939383266633238616331346438343300000000000000000000000000000000000000000000000000000000000000403762326164323863343134313131333738343033383263383437356262363165306564383438303932633266393931323335373761386263613663346661323083104ec4a045ed87fca68cd58e42c928c3e60ca64c4590a275b3b56625fc27ba15a02caa61a07aa58f859e998903be51477feb213630b62acc4e021fc75794950ceb3e71e76a00000230f9022d08841b6b0b008301c48a94aaaaaaaacb71bf2c8cae522ea5fa455571a7410680b901c4a15112f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000003c1bca5a656e69edcd0d4e36bebb3fcdaca60cf100000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034a160000000000000000000000000000000000000000000000167b203dbec80200000000000000000000000000000000000000000000000000172a72f32f66b900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec4a032e3964e8ee3fc2679ce986e78e1895efc746887b2905de3a99519a638f121e1a03a0f0bedfc495af8bbfd697719f655b73ca35bc9bbc1bd9f67b24ab3280da276000000b2f8b015841b6b0b00830106008080b85c6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220a88383c3010bd0f358d8b9c33d4760c0165713c61b6fb644f377e34db29cf5b564736f6c6343000807003383104ec4a0f7e50acd57536550963cf428a7887cd290572a26ac3e6cc727444110e62d2952a063ce847ba39ccb04f7cc56bf97f0e1130d3c9c00ff9d59e6d7f538b5367fab4d0000006cf86a21841b6b0b008267809493352e29334190b660d188bf1c63c41a0eb6b5728084b49004e983104ec3a05d0bc34f179ce955c34963bc91ef93026e6929f7e219c227d153c2f3ed7dfd8ea02ebeaf744e08df4f84e136f59cf33d3fab2d161017406daf28af0aba8839fd0700000156f9015339841b6b0b0083030de29418b71386418a9fca5ae7165e31c385a5130011b6873eaf90181ededeb8e4fb3bdb410000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000080000000000000000000000000b932820688f7a56f1ccc7ca1af29cee34de9aa460000000000000000000000000000000000000000000000000000000065cf623e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000530000000000000000000000000000000000000400000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a483104ec3a07169b433b681712e61997a6d12f6b64a6ab69a54e5d9dc2b4adb24213746a8f2a06c6b3799d71429553827a4c1504afb7c3e9587c3906f06d4d1fdee258823067f00000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000f9010dd694bc9d741501a20f962756c95bf906b4abffadcf8fc0d6942e07f0fba71709bb5e1f045b02152e45b451d75fc0f8dd940d7e906bd9cafa154b048cfa766cc1e54e39af9bf8c6a0360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca00000000000000000000000000000000000000000000000000000000000000069a07fb4302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe39993834ba07fb4302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe39993834ca07fb4302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe39993834da0b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610380a02b2b2bb6e6c4f54be97d34c3cb4ba408b01a414d402f70acb19a57549995983fa048deb89eb3d731cdc82ec968bfb921780f11be60dcfa81592af12d5ceb9e88f9", + "new_receipt_trie_node_byte": "0xb9018c02f901880184011d6836b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000002000000800000000040000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000400000000000000000000000000000100000000000000000000000000000000001000010000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000800000000000000000000000000000000f87df87b94a13baf47339d63b743e7da8741db5456dac1e556f863a02c32d4ae151744d0bf0b9464a3e897a1d17ed2f1af71f7c9a75f12ce0d28238fa00000000000000000000000000000000000000000000000000000000000012beca05cb92ee93a18cc60c5ca3970bc329311e83814e151ca1f9e4da5d4a01720d41580", + "gas_used": 1243577 + } + }, + { + "traces": { + "0x448c979d8661e658f40e722812d84b780fa0c0ab": { + "balance": "0x7accd4857d3b7c", + "nonce": "0x9a" + }, + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "storage_read": [ + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xc089743c9cd0850fa555be42789af7f9b43881efcf77eda990342c7590b91b9c", + "0x18ed4263ba471bc7fc858962a4e4287d3d6155a380093981cb1f2ad43a7fee1c", + "0xffd7c3da16b88438c4971963e4b575eb04c5ebf6f76bfaba41e1cec00270fbef", + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b" + ], + "storage_written": { + "0xffd7c3da16b88438c4971963e4b575eb04c5ebf6f76bfaba41e1cec00270fbef": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffd99d56ff", + "0x18ed4263ba471bc7fc858962a4e4287d3d6155a380093981cb1f2ad43a7fee1c": "0x0", + "0xc089743c9cd0850fa555be42789af7f9b43881efcf77eda990342c7590b91b9c": "0x2cb304ca" + }, + "code_usage": { + "read": "0xd80d4b7c890cb9d6a4893e6b52bc34b56b25335cb13716e0d1d31383e6b41505" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196622249b302bb4b" + }, + "0x43506849d7c04f9138d1a2050bbf3a0c054402dd": { + "code_usage": { + "read": "0xcdfb7d322961af3acae7a8f7ee8b69c205b36f576cc5b077f170c7eb8ecbe3ea" + } + } + }, + "meta": { + "byte_code": "0x02f8d0018199830e8148850ec3a8f96882ca0894a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b86423b872dd0000000000000000000000008a0add5a0465125d075c8bb0c90b015b7db48a9a000000000000000000000000448c979d8661e658f40e722812d84b780fa0c0ab000000000000000000000000000000000000000000000000000000002662a900c080a012e199aa9b21b63d4a9c056497a975fcc3fdcff7835b121efe2671990792cea4a04a82bff02bc10d428dcf0756aa708bc0aecc0ec9a3d36939fb74af6a0d31b0c2", + "new_txn_trie_node_byte": "0x02f8d0018199830e8148850ec3a8f96882ca0894a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b86423b872dd0000000000000000000000008a0add5a0465125d075c8bb0c90b015b7db48a9a000000000000000000000000448c979d8661e658f40e722812d84b780fa0c0ab000000000000000000000000000000000000000000000000000000002662a900c080a012e199aa9b21b63d4a9c056497a975fcc3fdcff7835b121efe2671990792cea4a04a82bff02bc10d428dcf0756aa708bc0aecc0ec9a3d36939fb74af6a0d31b0c2", + "new_receipt_trie_node_byte": "0xb901ac02f901a80184011e1e4bb9010000000000000000000000000000000000000000000000200000000000000200000000000000000000000000000000000004000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000000000000200000000000000000000000000000000000000000000100000000000002000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000008a0add5a0465125d075c8bb0c90b015b7db48a9aa0000000000000000000000000448c979d8661e658f40e722812d84b780fa0c0aba0000000000000000000000000000000000000000000000000000000002662a900", + "gas_used": 46613 + } + }, + { + "traces": { + "0xe5614ec2ec773b9b6d3c762db965ea487d89b13f": { + "balance": "0x153512301f693", + "nonce": "0x3" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x7f366dafeee5310519c618e1c9b5d35d2c822bc3eb396e26441c0d03e47838b6" + ], + "storage_written": { + "0x7f366dafeee5310519c618e1c9b5d35d2c822bc3eb396e26441c0d03e47838b6": "0x16345785d8a0000" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662225473d864d3" + } + }, + "meta": { + "byte_code": "0x02f8af0102830e81488508dbd1962882bed994dac17f958d2ee523a2206206994597c13d831ec780b844095ea7b30000000000000000000000003c6390ecba1dc417e4cff55310f5372036ed3d1c000000000000000000000000000000000000000000000000016345785d8a0000c080a0c4e19c169441f8c1b195fe61cb0739eee738a186af0b16886992192ce58dc787a066cb52a12cc095a5ab29bfef41f70bf8826c33aa36727ebd8dcfb4722a4a87e3", + "new_txn_trie_node_byte": "0x02f8af0102830e81488508dbd1962882bed994dac17f958d2ee523a2206206994597c13d831ec780b844095ea7b30000000000000000000000003c6390ecba1dc417e4cff55310f5372036ed3d1c000000000000000000000000000000000000000000000000016345785d8a0000c080a0c4e19c169441f8c1b195fe61cb0739eee738a186af0b16886992192ce58dc787a066cb52a12cc095a5ab29bfef41f70bf8826c33aa36727ebd8dcfb4722a4a87e3", + "new_receipt_trie_node_byte": "0xb901ac02f901a80184011edc14b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000200000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000200000008000000000000000000000000000000000000000000000400000000100000020000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000010000000000000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000e5614ec2ec773b9b6d3c762db965ea487d89b13fa00000000000000000000000003c6390ecba1dc417e4cff55310f5372036ed3d1ca0000000000000000000000000000000000000000000000000016345785d8a0000", + "gas_used": 48585 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662225d7fdd3377" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0xa8ee480fe1bd8505468895b973ec2f00d7ef54b3ac2df793b35344dc94200018", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xe0c03816537e97b50279dadd83524cf6bc80ce9bd9404ce2433c4f51a9956f47", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0xe1bc1f01fc5294487cdf322e302f878153de08afc6069ab5d854ef27cd32df96" + ], + "storage_written": { + "0xa8ee480fe1bd8505468895b973ec2f00d7ef54b3ac2df793b35344dc94200018": "0x569fea20c", + "0xe1bc1f01fc5294487cdf322e302f878153de08afc6069ab5d854ef27cd32df96": "0x0" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x603b9472b6528e5fe1dac4061d169b58f1b422f6": { + "balance": "0x14c4f636c74eb8", + "nonce": "0x20" + } + }, + "meta": { + "byte_code": "0x02f8b0011f830e5b648508e40d99aa83010e1994dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000008512fbbc89a09b276a0c1f076aee07390314443e00000000000000000000000000000000000000000000000000000000d7c4d100c001a025da913350edf4f29016085f1060abd98950b780f67582ed29563f6a3a26d32ca01f77e296bf32358fc6f081c910318ebc30f5726ce3e76ea4df882a6124edaa15", + "new_txn_trie_node_byte": "0x02f8b0011f830e5b648508e40d99aa83010e1994dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000008512fbbc89a09b276a0c1f076aee07390314443e00000000000000000000000000000000000000000000000000000000d7c4d100c001a025da913350edf4f29016085f1060abd98950b780f67582ed29563f6a3a26d32ca01f77e296bf32358fc6f081c910318ebc30f5726ce3e76ea4df882a6124edaa15", + "new_receipt_trie_node_byte": "0xb901ac02f901a80184011f7d65b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000001000000300000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000020000000000800000000000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000603b9472b6528e5fe1dac4061d169b58f1b422f6a00000000000000000000000008512fbbc89a09b276a0c1f076aee07390314443ea000000000000000000000000000000000000000000000000000000000d7c4d100", + "gas_used": 41297 + } + }, + { + "traces": { + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298694bcfc37bc9ef80fa", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0xe2fb5d9b2e8836f0b36c7e23bbad1165e9766d2ea7a3e9f00444ef67e54b0abb" + ], + "storage_written": { + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0", + "0xe2fb5d9b2e8836f0b36c7e23bbad1165e9766d2ea7a3e9f00444ef67e54b0abb": "0x3d37fd4725b2ff283" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0x85b864e2371585df5368100a31b7761dc0b5946e": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x1e6de45fcdf19ddec9515b244af2fa6617be0", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x4b5aed997fd71706deb99ebfefcf74", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de7000000000003d37fd4725b2ff283000000000000001ff6abe4d6abdc" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x000000000022d473030f116ddee9f6b43ac78ba3": { + "storage_read": [ + "0x1dc630ef738b4564017bb06bef9ef83f2f8f0237030f3f9710f09d9efc8a254c" + ], + "code_usage": { + "read": "0xc67d1657868aa5146eaf24fb879fb1fdec3d2d493b3683a61c9c2f4fb2851131" + } + }, + "0x44face2e310e543f6d85867eb06fb251e3bfe1fc": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000014", + "0x0000000000000000000000000000000000000000000000000000000000000017", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x36e52c04b1de5568cb304ce0580e6ab8eeec4710de790f1b1ad5d4a639edde4f", + "0x0000000000000000000000000000000000000000000000000000000000000015", + "0x77af867b6e3b0e74a9018b1c77bd53872b27efad54112c28842b2f1e5189e574", + "0x9bb893fa1a507608baf0a9815ca3a3027da955fc51216d22ed45872e65c3c877", + "0x0a0d2cd566d48651c1f5740383bce2f14da524b2194a15466b05b808a1f32625", + "0x721d156034111f0721f007ad559531bdd7aac8c48eef80acc0e1635303137f8e", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0fd7608bfe83736683badd3eaa8ff986715ab1933db4ea96202966b9310be4c2", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000013", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x000000000000000000000000000000000000000000000000000000000000000d" + ], + "storage_written": { + "0x36e52c04b1de5568cb304ce0580e6ab8eeec4710de790f1b1ad5d4a639edde4f": "0x17083c7674d1720e44f62e9f9435ccbe2f1bf5d90e3564a5a013301061574ce4", + "0x0000000000000000000000000000000000000000000000000000000000000006": "0xfffffffffffffffffffffffffffffffffffffffffffffffffed58b3f83960000", + "0x0a0d2cd566d48651c1f5740383bce2f14da524b2194a15466b05b808a1f32625": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffa3becef1ed49", + "0x0fd7608bfe83736683badd3eaa8ff986715ab1933db4ea96202966b9310be4c2": "0x1129804d7b0ece40e61ec099aa3e67a5f3ea7db17e9b7af566ac61c60f400", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x0", + "0x000000000000000000000000000000000000000000000000000000000000000d": "0x3", + "0x0000000000000000000000000000000000000000000000000000000000000007": "0x0", + "0x721d156034111f0721f007ad559531bdd7aac8c48eef80acc0e1635303137f8e": "0x0" + }, + "code_usage": { + "read": "0x46ce2672c038b50afa02049bb38d1c9aac02b64aeba63f4d6e5f8529e485fa72" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662228811e377e3" + }, + "0x64944646d47f0e51f10a343a9dbe95b217acb0f1": { + "balance": "0x60edbfaeda066cc", + "nonce": "0x18" + } + }, + "meta": { + "byte_code": "0x02f902f10117830e5b648508e40d99aa83042739943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad80b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf60330000000000000000000000000000000000000000000000000000000000000002080c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000319e841d3ab400000000000000000000000000000000000000000000000005b8a5e68773556800000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000044face2e310e543f6d85867eb06fb251e3bfe1fc000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000005b8a5e687735568c080a0b956ac5f5ae3968692a146c1242bb2e715c1ea406336b6dad6c6174409774c5da052bec1cf49b9a3284dc942c81c95fb7421bcc427d3269c066e7fd604b627b741", + "new_txn_trie_node_byte": "0x02f902f10117830e5b648508e40d99aa83042739943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad80b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf60330000000000000000000000000000000000000000000000000000000000000002080c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000319e841d3ab400000000000000000000000000000000000000000000000005b8a5e68773556800000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000044face2e310e543f6d85867eb06fb251e3bfe1fc000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000005b8a5e687735568c080a0b956ac5f5ae3968692a146c1242bb2e715c1ea406336b6dad6c6174409774c5da052bec1cf49b9a3284dc942c81c95fb7421bcc427d3269c066e7fd604b627b741", + "new_receipt_trie_node_byte": "0xb904dc02f904d8018401227478b9010000200000000000000000000080000000000000000000000040000000000000000000000000000040000000000000000002000000880000000000000000200000000000080000000000004008000000200000000000400800000000000020000000000000000000008000200000000000000000000000040000000830000000000000000000000000000402000000008000000000000000080000004008000000020000000000000000000000000000000040000000000000000000000200000000000002000000000000000000000000000000000000001000000002000000000010200000000000000000000000000000001000000000000000000000000000f903ccf89b9444face2e310e543f6d85867eb06fb251e3bfe1fcf863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000064944646d47f0e51f10a343a9dbe95b217acb0f1a000000000000000000000000085b864e2371585df5368100a31b7761dc0b5946ea00000000000000000000000000000000000000000000000000000302170ca6eb4f89b9444face2e310e543f6d85867eb06fb251e3bfe1fcf863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a000000000000000000000000064944646d47f0e51f10a343a9dbe95b217acb0f1a0000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3a0ffffffffffffffffffffffffffffffffffffffffffffffffffffa3becef1ed49f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000085b864e2371585df5368100a31b7761dc0b5946ea00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada000000000000000000000000000000000000000000000000005c733f0d7fb4a0bf8799485b864e2371585df5368100a31b7761dc0b5946ee1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b840000000000000000000000000000000000000000000000000001ff6abe4d6abdc000000000000000000000000000000000000000000000003d37fd4725b2ff283f8fc9485b864e2371585df5368100a31b7761dc0b5946ef863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fadb8800000000000000000000000000000000000000000000000000000302170ca6eb40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c733f0d7fb4a0bf87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada000000000000000000000000000000000000000000000000005c733f0d7fb4a0b", + "gas_used": 194323 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662228cab9c5b03" + }, + "0x0696337c32a92aec60c6bb405dc2015bdb8dd04c": { + "balance": "0x37bed0b7d4d9a1", + "nonce": "0x56c" + }, + "0xa084210c09d356ab95a15b21bb9ce086d464d5c2": { + "balance": "0x146b6cc6cddc1178" + } + }, + "meta": { + "byte_code": "0x02f8740182056b830e5b64850ed1626dda82520894a084210c09d356ab95a15b21bb9ce086d464d5c28809b6e64a8ec6000080c001a032161329b4e1155862d47f7b5e02bebc86fdf393fa6456bf6325e1c7fe647582a003a8a510afb71645580e7c13a9de9c7dd8c36ab7f85a54dff5b33f04c087f5c6", + "new_txn_trie_node_byte": "0x02f8740182056b830e5b64850ed1626dda82520894a084210c09d356ab95a15b21bb9ce086d464d5c28809b6e64a8ec6000080c001a032161329b4e1155862d47f7b5e02bebc86fdf393fa6456bf6325e1c7fe647582a003a8a510afb71645580e7c13a9de9c7dd8c36ab7f85a54dff5b33f04c087f5c6", + "new_receipt_trie_node_byte": "0xb9010e02f9010a01840122c680b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662229145553e23" + }, + "0xc0b635fb9dc28dea84db150b89d4578ff9859877": { + "balance": "0x13667e85e17ccb8", + "nonce": "0x14" + }, + "0x6461b0b98f7c06777ebfa4df70bd4bd68786fe4c": { + "balance": "0x3c3fc04c5be18000" + } + }, + "meta": { + "byte_code": "0x02f8720113830e5b648508e40d99aa825208946461b0b98f7c06777ebfa4df70bd4bd68786fe4c883c3fc04c5be1800080c001a06467b38ebe9472408bc780e72c9dcda9a90d2ebcf18c1d5a19c9adbc16216aa3a005a53e0df5cef33f1d62203e9df44aa9766dbb58d6c03c8d26e3d6f0566eb22b", + "new_txn_trie_node_byte": "0x02f8720113830e5b648508e40d99aa825208946461b0b98f7c06777ebfa4df70bd4bd68786fe4c883c3fc04c5be1800080c001a06467b38ebe9472408bc780e72c9dcda9a90d2ebcf18c1d5a19c9adbc16216aa3a005a53e0df5cef33f1d62203e9df44aa9766dbb58d6c03c8d26e3d6f0566eb22b", + "new_receipt_trie_node_byte": "0xb9010e02f9010a018401231888b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0xa6543f58f7d71696d1797291a66e537aecc1a1f0": { + "balance": "0x3beca008e0c677", + "nonce": "0xb" + }, + "0x000000000022d473030f116ddee9f6b43ac78ba3": { + "storage_read": [ + "0x02ce3a93c1908eee591e5f09630b34d20985fb396687b2f7743ee4761e4b981e" + ], + "storage_written": { + "0x02ce3a93c1908eee591e5f09630b34d20985fb396687b2f7743ee4761e4b981e": "0x1000065f6eacbffffffffffffffffffffffffffffffffffffffff" + }, + "code_usage": { + "read": "0xc67d1657868aa5146eaf24fb879fb1fdec3d2d493b3683a61c9c2f4fb2851131" + } + }, + "0x0000000000000000000000000000000000000001": {}, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "storage_read": [ + "0x8b3bbb776fd8b87df3c6d88dfb2064fd276f56b7179966739481e8b69b58a21e", + "0x59433099f727c3800385199e0173e614f9ce08dbe771de54a7acb3749022f817" + ], + "storage_written": { + "0x59433099f727c3800385199e0173e614f9ce08dbe771de54a7acb3749022f817": "0x3c2e461c05ae24a8e", + "0x8b3bbb776fd8b87df3c6d88dfb2064fd276f56b7179966739481e8b69b58a21e": "0x4b02608d27eef4e96" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x605684b039b373568aeb4871356eefe0eb812ead": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "storage_written": { + "0x000000000000000000000000000000000000000000000000000000000000000a": "0xc1ac8826fe4eeb603902fcaa51f05f890a024c4c", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x1ebc7c1489bbd6e6b361d59a88c314", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de7000000000004b02608d27eef4e960000002689c6e542b194fcb0880d", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0x5dcd6272c3cbb250823f0b7e6c618bce11b21f90": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000013", + "0x5b13f0c214f5296dda9f8b517e5d470803f71b9883d65f0751e4fbc4b4126a89", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x64312473fbf6a694769c115f79f1e42f83b80004fa187bfe0c09363cb5bf40f5", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x000000000000000000000000000000000000000000000000000000000000000e", + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0xf03af6905c2bb1c70ca5b6a1ef0efc0e339b0caceccedce6e27e581c3087414e", + "0x14848ee8c1e39bd0629a1e5341cd5beb5f9ffdb94e84d29407da8fb83f49f287", + "0x000000000000000000000000000000000000000000000000000000000000000f", + "0xf4598cb27d316d4876d97242375e27e4a43cd60f7d40ce8e983db7ff05386ce1", + "0x66424c70c4a1b02b74a62a05ff5a49830b3f7ae493da5339e3b8156a584e8ab0", + "0x4c74b489d3d4864f009b2be75a905b0848421dc96385b87a6de8c0b4aece811a", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x0000000000000000000000000000000000000000000000000000000000000009" + ], + "storage_written": { + "0x5b13f0c214f5296dda9f8b517e5d470803f71b9883d65f0751e4fbc4b4126a89": "0x2d30f3821b946ee981458", + "0x4c74b489d3d4864f009b2be75a905b0848421dc96385b87a6de8c0b4aece811a": "0xd1d381131f63b1e06a6", + "0x000000000000000000000000000000000000000000000000000000000000000f": "0xf97b08c168e8f547" + }, + "code_usage": { + "read": "0xca615779394774bdcb356154c1d2e0f0debe73fd25172d9a36e28fc18bed7920" + } + }, + "0xa3ad8c7ab6b731045b5b16e3fdf77975c71abe79": { + "storage_read": [ + "0xb5bcae9c1367e28cc60be434e2659d3a945a19abe1446057396154c274f9be99", + "0xf03af6905c2bb1c70ca5b6a1ef0efc0e339b0caceccedce6e27e581c3087414e", + "0x66424c70c4a1b02b74a62a05ff5a49830b3f7ae493da5339e3b8156a584e8ab0", + "0x000000000000000000000000000000000000000000000000000000000000000e", + "0xc6d4308ea4f8abcd4718f82c2d1f8623f81bf58fd762a8a31edb6cca64a1cc97", + "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000013", + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0x000000000000000000000000000000000000000000000000000000000000000f", + "0xf6903f84fa236b74918f1a83eb9afece2256713227599d045e863e582ed1ec05", + "0xbf573beee444bed9919332cefd76861b7cc3809b54b265c9bd52a49fdc010bdf", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x82e940ee4557b6a77838d83a8fb39cc234f318422b7d742a67519aa82ac48317", + "0x288eef7fc2889e2a88695184de0f25370d191658aba80fdd878f2fb2ff3fb328", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000011", + "0x4c74b489d3d4864f009b2be75a905b0848421dc96385b87a6de8c0b4aece811a", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x27ac21b10116ed414c74933965c7346148c06d4be1153292c8c04d5e130841b3", + "0x6646bc501b2abf05cd5ab3a803602c3f25119084290a779aae66f02dd4dd40b6", + "0x0000000000000000000000000000000000000000000000000000000000000007" + ], + "storage_written": { + "0x288eef7fc2889e2a88695184de0f25370d191658aba80fdd878f2fb2ff3fb328": "0x1adda16091c93c450b6a", + "0x000000000000000000000000000000000000000000000000000000000000000e": "0x5", + "0xf6903f84fa236b74918f1a83eb9afece2256713227599d045e863e582ed1ec05": "0x2689c6e542b194fcb0880d", + "0x4c74b489d3d4864f009b2be75a905b0848421dc96385b87a6de8c0b4aece811a": "0x16779429988a4685674b", + "0x0000000000000000000000000000000000000000000000000000000000000012": "0x0", + "0x0000000000000000000000000000000000000000000000000000000000000011": "0x1adda16091c93c450b6a", + "0xbf573beee444bed9919332cefd76861b7cc3809b54b265c9bd52a49fdc010bdf": "0xffffffffffffffffffffffffffffffffffffffffffffb3c45c63a1beeeffffff" + }, + "code_usage": { + "read": "0xa2993fb9b30e32e87aafa17850e8ef4a6303586209237fb5f3d2afbfd45e3690" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1966222d2280a0dcb" + }, + "0x7b8ac38aacd8ebca19b3d423bcbbd4c5815bab49": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "storage_written": { + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x33bfaf6af2f6e8809ba1cf971457b8b9824780c", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de7000000000003c2e461c05ae24a8e00000002d30f3821b946ee981458", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x254a6675a0219d2db01678d10022e8c", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + } + }, + "meta": { + "byte_code": "0x02f90430010a830e5b64850e9d8fb11483059e0c943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad80b903c43593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf601b00000000000000000000000000000000000000000000000000000000000000020a080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000160000000000000000000000000a3ad8c7ab6b731045b5b16e3fdf77975c71abe79000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065f6eacb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fad0000000000000000000000000000000000000000000000000000000065cf64d300000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000416e8137de96b956d3d5ef5a08eed6ebe9611008b1520dbb38eb5cd6b7ea422cdd0665a99955e4a2d7f7491772ea41d242790548ceda570707560cd7ce2d88365f1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000004c3ba39c5e411100000000000000000000000000000000000000000000000000069fd4087a111591a28e00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000a3ad8c7ab6b731045b5b16e3fdf77975c71abe79000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005dcd6272c3cbb250823f0b7e6c618bce11b21f90c080a0619f69e21e613048b44dbb909e475907ebcdf175c67f5a9d0a643cfc6b4e08db9f194ee6ef387c81266a21dd6ea161cc1e858b6d434c2579145fcf28492e79ab", + "new_txn_trie_node_byte": "0x02f90430010a830e5b64850e9d8fb11483059e0c943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad80b903c43593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf601b00000000000000000000000000000000000000000000000000000000000000020a080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000160000000000000000000000000a3ad8c7ab6b731045b5b16e3fdf77975c71abe79000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065f6eacb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fad0000000000000000000000000000000000000000000000000000000065cf64d300000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000416e8137de96b956d3d5ef5a08eed6ebe9611008b1520dbb38eb5cd6b7ea422cdd0665a99955e4a2d7f7491772ea41d242790548ceda570707560cd7ce2d88365f1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000004c3ba39c5e411100000000000000000000000000000000000000000000000000069fd4087a111591a28e00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000a3ad8c7ab6b731045b5b16e3fdf77975c71abe79000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005dcd6272c3cbb250823f0b7e6c618bce11b21f90c080a0619f69e21e613048b44dbb909e475907ebcdf175c67f5a9d0a643cfc6b4e08db9f194ee6ef387c81266a21dd6ea161cc1e858b6d434c2579145fcf28492e79ab", + "new_receipt_trie_node_byte": "0xb9081202f9080e018401279d82b9010000210000000000000000100080000000000000000001000000000400000010000000002000000000000000000000000002012000880000000004000000280000100000180000000080004008000008200000000000000800000000000020000000000000000000040000100000000000000000004000000000000010000000000000004000000000000000000000020000000000000000080000004000000000020000000000000820040020000000000400000010000000000000000000000000000002200000000800000000000000000000000000001000000000800000000010220000000000000000000000000000001000000000000000000000000400f90702f8fd94000000000022d473030f116ddee9f6b43ac78ba3f884a0c6a377bfc4eb120024a8ac08eef205be16b817020812c73223e81d1bdb9708eca0000000000000000000000000a6543f58f7d71696d1797291a66e537aecc1a1f0a0000000000000000000000000a3ad8c7ab6b731045b5b16e3fdf77975c71abe79a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fadb860000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000065f6eacb0000000000000000000000000000000000000000000000000000000000000000f89b94a3ad8c7ab6b731045b5b16e3fdf77975c71abe79f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000a6543f58f7d71696d1797291a66e537aecc1a1f0a0000000000000000000000000a3ad8c7ab6b731045b5b16e3fdf77975c71abe79a00000000000000000000000000000000000000000000003cfc82e37e9a7400000f89b94a3ad8c7ab6b731045b5b16e3fdf77975c71abe79f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000a6543f58f7d71696d1797291a66e537aecc1a1f0a0000000000000000000000000605684b039b373568aeb4871356eefe0eb812eada000000000000000000000000000000000000000000000486bdb6e265769c00000f89b94a3ad8c7ab6b731045b5b16e3fdf77975c71abe79f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000a6543f58f7d71696d1797291a66e537aecc1a1f0a0000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3a0ffffffffffffffffffffffffffffffffffffffffffffb3c45c63a1beeefffffff89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000605684b039b373568aeb4871356eefe0eb812eada00000000000000000000000007b8ac38aacd8ebca19b3d423bcbbd4c5815bab49a000000000000000000000000000000000000000000000000008d9312a7e61b19bf87994605684b039b373568aeb4871356eefe0eb812eade1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000000002689c6e542b194fcb0880d000000000000000000000000000000000000000000000004b02608d27eef4e96f8fc94605684b039b373568aeb4871356eefe0eb812eadf863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000007b8ac38aacd8ebca19b3d423bcbbd4c5815bab49b88000000000000000000000000000000000000000000000486bdb6e265769c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008d9312a7e61b19bf89b945dcd6272c3cbb250823f0b7e6c618bce11b21f90f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000007b8ac38aacd8ebca19b3d423bcbbd4c5815bab49a0000000000000000000000000a6543f58f7d71696d1797291a66e537aecc1a1f0a00000000000000000000000000000000000000000000006af9d46d3ec6a986e2df879947b8ac38aacd8ebca19b3d423bcbbd4c5815bab49e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b84000000000000000000000000000000000000000000002d30f3821b946ee981458000000000000000000000000000000000000000000000003c2e461c05ae24a8ef8fc947b8ac38aacd8ebca19b3d423bcbbd4c5815bab49f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000a6543f58f7d71696d1797291a66e537aecc1a1f0b880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008d9312a7e61b19b0000000000000000000000000000000000000000000006af9d46d3ec6a986e2d0000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 296186 + } + }, + { + "traces": { + "0x288b9358188a587dfcaa4b4a25b0543aa1132078": { + "balance": "0x561cc4728f27322", + "nonce": "0x1" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1966222d6c1c2f0eb" + }, + "0x65c6ba5ce94292c3b0b2f5d971f53551c0348438": { + "balance": "0xe1234f30746677" + } + }, + "meta": { + "byte_code": "0x02f8710180830e5b64850e9d8fb1148252089465c6ba5ce94292c3b0b2f5d971f53551c0348438877cfd8d054b611680c001a0a6b2e9fd0a7ecc2b48a5ebb6dda10ca6d1ac4d11bad4ba6929d29146095b10e0a01647dfd9e3aa7f45e0f7d69c40f1a70e2f1ccde54b6e109486b85187f427fea4", + "new_txn_trie_node_byte": "0x02f8710180830e5b64850e9d8fb1148252089465c6ba5ce94292c3b0b2f5d971f53551c0348438877cfd8d054b611680c001a0a6b2e9fd0a7ecc2b48a5ebb6dda10ca6d1ac4d11bad4ba6929d29146095b10e0a01647dfd9e3aa7f45e0f7d69c40f1a70e2f1ccde54b6e109486b85187f427fea4", + "new_receipt_trie_node_byte": "0xb9010e02f9010a01840127ef8ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1966222e16528f50f" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x8008828afae457070211ff3fb54aa72f24178b5d9c8ce566f77c658b431cd695" + ], + "storage_written": { + "0x8008828afae457070211ff3fb54aa72f24178b5d9c8ce566f77c658b431cd695": "0x54a75c75" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x0c8e39bcbec4993c5b6ea12f4e1678d643a59521": { + "balance": "0x1c1a1ee691599739", + "nonce": "0x16" + } + }, + "meta": { + "byte_code": "0x02f8ae0115830e5b6485095cd2e28882bf3494dac17f958d2ee523a2206206994597c13d831ec780b844095ea7b300000000000000000000000046a15b0b27311cedf172ab29e4f4766fbe7f43640000000000000000000000000000000000000000000000000000000054a75c75c080a0845525e63985054a88be7d1246790c4567db5c926b3dd26fbd3d5909f913985e9fc64a4a788ae4e49e8eb399b0f4bfb58d38c057d6a2d2462d1d066e6ec19ff7", + "new_txn_trie_node_byte": "0x02f8ae0115830e5b6485095cd2e28882bf3494dac17f958d2ee523a2206206994597c13d831ec780b844095ea7b300000000000000000000000046a15b0b27311cedf172ab29e4f4766fbe7f43640000000000000000000000000000000000000000000000000000000054a75c75c080a0845525e63985054a88be7d1246790c4567db5c926b3dd26fbd3d5909f913985e9fc64a4a788ae4e49e8eb399b0f4bfb58d38c057d6a2d2462d1d066e6ec19ff7", + "new_receipt_trie_node_byte": "0xb901ac02f901a801840128ad3bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000300000000000020000000000000000000000000000000000000800000200000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000100000000000000000000000000000000000000000100000020000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a00000000000000000000000000c8e39bcbec4993c5b6ea12f4e1678d643a59521a000000000000000000000000046a15b0b27311cedf172ab29e4f4766fbe7f4364a00000000000000000000000000000000000000000000000000000000054a75c75", + "gas_used": 48561 + } + }, + { + "traces": { + "0xedae98af03634a2d0eb94141826e7c521c94939f": { + "balance": "0xee395397d04386", + "nonce": "0xb" + }, + "0xe07300c13d49b8560f51bb30b45c22ca7cd08af8": { + "code_usage": { + "read": "0xc853a8ef2f5a40aede0b611cc5c6f589ba143a9b10ad5443f0b0a818d61dc1ac" + } + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0d9788b1261d3ff48a3ec877f1e98b11fd33dac0b6ae5bc91b927512fc073cc0", + "0x00799c247f66cd418aa07ac08d844fc7326bbc5b087c2d24c81c3ebd2c965c6a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x513e3e116209adb6412b240bd8470864f36bb58bbd57ffae28c277b2fb1996a1", + "0x9a15b2fd0588093091b840e4d68b789971a3f84e91398eaf1c63e7cb3ec36593", + "0x8fe6c2b94cfeb65caef5a01fd4f3f9e4001d9f1261cad7bc858be81b37a2bb70", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x6c40d3e0e288e506b45396d70eabc62ea0d6bcd593fc16589b20040f01795780", + "0x60565529cf4252f477d96eaf58eef39017abfcc7bd60142f3d0fd4d2b99dd91a" + ], + "storage_written": { + "0x8fe6c2b94cfeb65caef5a01fd4f3f9e4001d9f1261cad7bc858be81b37a2bb70": "0x2916e0", + "0x9a15b2fd0588093091b840e4d68b789971a3f84e91398eaf1c63e7cb3ec36593": "0x1cd98bd4ff", + "0x6c40d3e0e288e506b45396d70eabc62ea0d6bcd593fc16589b20040f01795780": "0x0", + "0x60565529cf4252f477d96eaf58eef39017abfcc7bd60142f3d0fd4d2b99dd91a": "0x0" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x1966223161b596228" + }, + "0xa7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a": { + "storage_read": [ + "0xf8d8af571bcf8331a05936e065bfc9134b6461ab3226d0f94b32b989e63dadf0", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000015", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0xaeb398aaef01950a3b20c728e1997bb95d411b0de44b9c8c5376cf18fee7cb8b", + "0xb64dca7c2c7c1042e75fbf9b93ca1120ef9e6feac25da501460cd6d486bb8882", + "0xd8f023ef571f4c023b56aad4efa6735cfb9b0d823767a0cec823d80982edadf5", + "0x7d4f62d7a1d233431639862c23098947a59fa9d610342acf75daa657c10f6cfa", + "0xf8d6e1552be1e8b38e47ebdfc2dc3d3a17782cf5647bb8549806e12f62f320fc", + "0x9144aee7f37b7f43b6b90b5f10849f7e24f0d10aec9ad49f57e3aa0eb644251f", + "0x0000000000000000000000000000000000000000000000000000000000000017", + "0xacabee26514bb791c4f3218b82e44269bbee7e9c7cb78209c6483d49ed0c8663", + "0x000000000000000000000000000000000000000000000000000000000000000b" + ], + "code_usage": { + "read": "0x13b2293637be8e1ae1dd8143ed3e02d9b5de340cc8bcf77756415e374233aaf3" + } + }, + "0x1111111254eeb25477b68fb85ed929f73a960582": { + "code_usage": { + "read": "0xb21184893bb5b89a85468883070702045d9821b62ea3b28d3e84d89ab84fd23e" + } + }, + "0x3e88c9b0e3be6817973a6e629211e702d12c577f": { + "code_usage": { + "read": "0xb270d1196cc64f337188675d524072547b47e1fc7ec03b163f9f34f820f7ab98" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298694bbbb9ccff0f3eae", + "storage_read": [ + "0xf33ce797865cd027b3caf1e056df20ee4b2b46c95313151d5d804b6ee553e182", + "0xc43de090e120c56163c78a79947fb033da57ecb0a8775adba22c13a3cf4abf83", + "0x1f4da68a772cec2ac668229d598dd82add8c7d683917a671df566d2be1b286d2" + ], + "storage_written": { + "0xf33ce797865cd027b3caf1e056df20ee4b2b46c95313151d5d804b6ee553e182": "0x143f25c8c0b03f6", + "0x1f4da68a772cec2ac668229d598dd82add8c7d683917a671df566d2be1b286d2": "0x25def1647bfdbd5a6", + "0xc43de090e120c56163c78a79947fb033da57ecb0a8775adba22c13a3cf4abf83": "0x39189e8014c5b" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x3c11f6265ddec22f4d049dde480615735f451646": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x1a1e6821cde7d0159c0d293177871e09677b4e42307c7db3ba94f8648a5a050f" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0x4c3ba1e562a8a3a9b4fb66264fc4fddb7d2555aeb7dcb88f67e4d331c776c6b8" + } + }, + "0x74c99f3f5331676f6aec2756e1f39b4fc029a83e": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006" + ], + "storage_written": { + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x388a9191831423cca7f88b0d4ac4", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x102e7917ef60e016ce95bf47a059f47cf48f5f55c0d", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf5de70000000000000000001cd98bd4ff0000000000025def1647bfdbd5a6" + }, + "code_usage": { + "read": "0x7eb38a112ba6d7614d58b369913cb45d181c2879b1d55f22da50134627d5c3f3" + } + }, + "0x9deb29c9a4c7a88a3c0257393b7f3335338d9a9d": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000003" + ], + "code_usage": { + "read": "0x8a167d5a7c0ebbe12308960359da937c9fd51d2fca17195d31ab75c9bd28df10" + } + } + }, + "meta": { + "byte_code": "0x02f90231010a830ded21850956943c0583068c8c943c11f6265ddec22f4d049dde480615735f45164680b901c4049639fb0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000f6aa230000000000000000000000000000000000000000000000000013fa1abfe5f91800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c80502b1c5000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000f6aa230000000000000000000000000000000000000000000000000013fa1abfe5f9170000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000180000000000000003b6d034074c99f3f5331676f6aec2756e1f39b4fc029a83e0bd34b36000000000000000000000000000000000000000000000000c001a05265ab25a34bce2c5157e83c1da50203d8c666d42f79cad803671e52cdd41b74a0478b45035faa614376acf0fac262f0ca4ce2ef84f7b58dffa7b2d60be8118393", + "new_txn_trie_node_byte": "0x02f90231010a830ded21850956943c0583068c8c943c11f6265ddec22f4d049dde480615735f45164680b901c4049639fb0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000f6aa230000000000000000000000000000000000000000000000000013fa1abfe5f91800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c80502b1c5000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000f6aa230000000000000000000000000000000000000000000000000013fa1abfe5f9170000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000180000000000000003b6d034074c99f3f5331676f6aec2756e1f39b4fc029a83e0bd34b36000000000000000000000000000000000000000000000000c001a05265ab25a34bce2c5157e83c1da50203d8c666d42f79cad803671e52cdd41b74a0478b45035faa614376acf0fac262f0ca4ce2ef84f7b58dffa7b2d60be8118393", + "new_receipt_trie_node_byte": "0xb90bc502f90bc10184012c7634b90100002000000000010000000000800000000000000004000100000800000000000000400000000000000000a0020000010002000000080000200010000000200000000000000000080000000008000000a00000000000600000000000000000420008000000000008000000000000080000000004200000440000000010000000000000000000104180000000400000000000000000000000080000004000120000020000000100001020000080008004000000040000000000002000200000006000020002800000000000000000380000000000028000001000000002000000000114200000000020000400000000000000000000000800000000000000000000f90ab5f89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000edae98af03634a2d0eb94141826e7c521c94939fa0000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22aa00000000000000000000000000000000000000000000000000000000000f6aa23f8dc94a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22af863a042bd73ea702d7cf4505c06a7ac02a171536177d9cc2c7665443151ec91cc43fca0000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7a0000000000000000000000000edae98af03634a2d0eb94141826e7c521c94939fb8600000000000000000000000000000000000000000000000000000000000f6aa2300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000f89b94dac17f958d2ee523a2206206994597c13d831ec7f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22aa00000000000000000000000001111111254eeb25477b68fb85ed929f73a960582a00000000000000000000000000000000000000000000000000000000000000000f89b94dac17f958d2ee523a2206206994597c13d831ec7f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22aa00000000000000000000000001111111254eeb25477b68fb85ed929f73a960582a00000000000000000000000000000000000000000000000000000000000f6aa23f89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22aa000000000000000000000000074c99f3f5331676f6aec2756e1f39b4fc029a83ea00000000000000000000000000000000000000000000000000000000000f6aa23f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000074c99f3f5331676f6aec2756e1f39b4fc029a83ea0000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22aa000000000000000000000000000000000000000000000000000142dd7fc0000c4f8799474c99f3f5331676f6aec2756e1f39b4fc029a83ee1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000000000000025def1647bfdbd5a60000000000000000000000000000000000000000000000000000001cd98bd4fff8fc9474c99f3f5331676f6aec2756e1f39b4fc029a83ef863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000001111111254eeb25477b68fb85ed929f73a960582a0000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22ab88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f6aa2300000000000000000000000000000000000000000000000000142dd7fc0000c40000000000000000000000000000000000000000000000000000000000000000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22aa0000000000000000000000000eb4af8a64070ef0dea6260e0bf2310748f014d88a000000000000000000000000000000000000000000000000000002429311fbe78f9023e94a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22af884a0fc431937278b84c6fa5b23bcc58f673c647fea974d3656e766b22d8c1412e544a00000000000000000000000000000000000000000000000000000000000000004a0000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7a0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2b901a00000000000000000000000000000000000000000000000000000000000f6aa23000000000000000000000000000000000000000000000000001409aecae0424c0000000000000000000000000000000000000000000000000013fa1abfe5f91800000000000000000000000000000000000000000000000000002429311fbe7800000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c80502b1c5000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000f6aa230000000000000000000000000000000000000000000000000013fa1abfe5f9170000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000180000000000000003b6d034074c99f3f5331676f6aec2756e1f39b4fc029a83e0bd34b36000000000000000000000000000000000000000000000000f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65a0000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22aa0000000000000000000000000000000000000000000000000001409aecae0424cf8b994a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22ae1a0b4d99315c288c112a1d49da08c3fa85f78e2c83392f63f0a8964418f96aa24edb880000000000000000000000000000000000000000000000000001409aecae0424c000000000000000000000000000000000000000000000000001409aecae0424c00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000f8fc94a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22af863a033be7eabd8ed368ca1aa14ce2ad1e90a0c9bf21edbb3820d5591546e4eb84157a0000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea0000000000000000000000000edae98af03634a2d0eb94141826e7c521c94939fb880000000000000000000000000000000000000000000000000001409aecae0424c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000f838943c11f6265ddec22f4d049dde480615735f451646e1a068f46c45a243a0e9065a97649faf9a5afe1692f2679e650c2f853b9cd734cc0e80", + "gas_used": 248057 + } + }, + { + "traces": { + "0xda83436710c52f446cf9457b4bb42f434bf538f9": { + "balance": "0x87c90edc569de7", + "nonce": "0x37" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662231fe7a872e5" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x6e03ca5761a545bcb7441c8c90992b667c82df7793d25bd04da7b085d4c46966", + "0x7a2c9a798e2e4590f214598ac7cf4e4e49f208fe3cb7f3272d322b308514323a", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xd55fac18f7dfd295ec622367dbdcac44d138c64890e6b0d8c4ad474b558d80cf", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "storage_written": { + "0x6e03ca5761a545bcb7441c8c90992b667c82df7793d25bd04da7b085d4c46966": "0xbd435beb9", + "0x7a2c9a798e2e4590f214598ac7cf4e4e49f208fe3cb7f3272d322b308514323a": "0x306a3515b" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + } + }, + "meta": { + "byte_code": "0x02f8b00136830ded2185086b842f5283010e2b94dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000372dc110b4641274e94702bf3059410c2fb2437400000000000000000000000000000000000000000000000000000002540be400c001a088df134021b3b79abac97385566cf8a8aa29ad992de3907de8fb9273666000c0a00a584e337aa99c5b09bae996f25c6c8aa691d040556b07046c66d1ebfc42704d", + "new_txn_trie_node_byte": "0x02f8b00136830ded2185086b842f5283010e2b94dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb000000000000000000000000372dc110b4641274e94702bf3059410c2fb2437400000000000000000000000000000000000000000000000000000002540be400c001a088df134021b3b79abac97385566cf8a8aa29ad992de3907de8fb9273666000c0a00a584e337aa99c5b09bae996f25c6c8aa691d040556b07046c66d1ebfc42704d", + "new_receipt_trie_node_byte": "0xb901ac02f901a80184012d2a51b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000080008000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000010000000000000000000000000000000000000000000800000000000000000000000100000000000000000000200000080000000000000000000000000000000000000000400000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000da83436710c52f446cf9457b4bb42f434bf538f9a0000000000000000000000000372dc110b4641274e94702bf3059410c2fb24374a000000000000000000000000000000000000000000000000000000002540be400", + "gas_used": 46109 + } + }, + { + "traces": { + "0xfb28bc84832da435f2cc146eb90becb05ac2d7c7": { + "balance": "0x9492e5140b91a", + "nonce": "0x1b" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0xc69279b6f8906f4c3a5f45edab1bd1fdb7c7a5677e641e9596716eb92db02e50", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xe49db8361048c31a875d8de3cffbece35afc9a1d39d6087224e5650e475f81aa", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x24a28f88abc6f38d534654880ab1c0eeb618f691a003d680bf60bf8f7da661eb" + ], + "storage_written": { + "0xc69279b6f8906f4c3a5f45edab1bd1fdb7c7a5677e641e9596716eb92db02e50": "0x1cb9d4dc", + "0x24a28f88abc6f38d534654880ab1c0eeb618f691a003d680bf60bf8f7da661eb": "0x0" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662232c5114d12e" + } + }, + "meta": { + "byte_code": "0x02f8b0011a830ded218508dbd102018301725d94dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000007d26e98614d2e0e8256cfb0197cefecf0632fbd6000000000000000000000000000000000000000000000000000000001cb9d4dcc001a003ae26e96bef32e50f407a05561d8710983f270350f1d3125734f4905c09cd51a0211cd2aca7e98fcfbb1984ef12c6ae02c9a37afd654443cb4ab396fff5c0971a", + "new_txn_trie_node_byte": "0x02f8b0011a830ded218508dbd102018301725d94dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000007d26e98614d2e0e8256cfb0197cefecf0632fbd6000000000000000000000000000000000000000000000000000000001cb9d4dcc001a003ae26e96bef32e50f407a05561d8710983f270350f1d3125734f4905c09cd51a0211cd2aca7e98fcfbb1984ef12c6ae02c9a37afd654443cb4ab396fff5c0971a", + "new_receipt_trie_node_byte": "0xb901ac02f901a80184012e0e7ab9010000000000000000000400000000000000000000000000000000000000000002000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000800000000080000000000000000000000000000000000000000000000002000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000fb28bc84832da435f2cc146eb90becb05ac2d7c7a00000000000000000000000007d26e98614d2e0e8256cfb0197cefecf0632fbd6a0000000000000000000000000000000000000000000000000000000001cb9d4dc", + "gas_used": 58409 + } + }, + { + "traces": { + "0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0": { + "storage_read": [ + "0xf4f083e014b47337390e21cb8b10f811a8112432c3986ed0fd6af1b8f0ee1f87", + "0xe0afa78f9338120179c7fd84eba85671b831087a401b1c8ae9426a33a59da3a4", + "0x0000000000000000000000000000000000000000000000000000000000000004" + ], + "storage_written": { + "0xf4f083e014b47337390e21cb8b10f811a8112432c3986ed0fd6af1b8f0ee1f87": "0xbc61de2472f170000", + "0xe0afa78f9338120179c7fd84eba85671b831087a401b1c8ae9426a33a59da3a4": "0x1bc16d674ec80000" + }, + "code_usage": { + "read": "0x8b0a83a4cd51e97515c5898d296297d96c5377467369ec0ff432948c3ae995f2" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196622337cadfe6a2" + }, + "0xc3a78e96014549b34c3496855cea3f0c71e896a0": { + "balance": "0x103498a71908978b", + "nonce": "0x50" + } + }, + "meta": { + "byte_code": "0x02f8b0014f830ded2185086b842f5283013c6e947d1afa7b718fb893db30a3abc0cfc608aacfebb080b844a9059cbb0000000000000000000000006a3c66dab739a77db1f0c2ea3c73de6a50d682da0000000000000000000000000000000000000000000000001bc16d674ec80000c001a074a4536e07b3d9724e6b79ea9cd39eae0f4f7db48b38115f24e3544423824ad8a01458135ab32f76444a75db1c66d00a5d116bce49a09f56a89b475d8456a91fbc", + "new_txn_trie_node_byte": "0x02f8b0014f830ded2185086b842f5283013c6e947d1afa7b718fb893db30a3abc0cfc608aacfebb080b844a9059cbb0000000000000000000000006a3c66dab739a77db1f0c2ea3c73de6a50d682da0000000000000000000000000000000000000000000000001bc16d674ec80000c001a074a4536e07b3d9724e6b79ea9cd39eae0f4f7db48b38115f24e3544423824ad8a01458135ab32f76444a75db1c66d00a5d116bce49a09f56a89b475d8456a91fbc", + "new_receipt_trie_node_byte": "0xb901ac02f901a80184012ee16eb9010000000000000000000000000008000200000000000000000000000000000000000000000000000000000004000000000000000020000000000200000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000010000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000002000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b947d1afa7b718fb893db30a3abc0cfc608aacfebb0f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000c3a78e96014549b34c3496855cea3f0c71e896a0a00000000000000000000000006a3c66dab739a77db1f0c2ea3c73de6a50d682daa00000000000000000000000000000000000000000000000001bc16d674ec80000", + "gas_used": 54004 + } + }, + { + "traces": { + "0x9f2d25028a28d8f0fc0125fae86972888b6b5e5a": { + "balance": "0x992f12661474978210" + }, + "0xd37bbe5744d730a1d98d8dc97c42f0ca46ad7146": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x1" + }, + "code_usage": { + "read": "0x7f7ad48242b36385bc30ce3e3be2347d6954dd2e0fe872e05be8383db74768cc" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662234022c39ee1" + }, + "0xd64c2d729c469d204b7677b7a18cc5aad98db619": { + "balance": "0xa93cb063dfe836", + "nonce": "0x1" + } + }, + "meta": { + "byte_code": "0x02f901790180830ded218509be97b74a8301afa694d37bbe5744d730a1d98d8dc97c42f0ca46ad7146880ce08e5a2195fa00b9010444bc937b0000000000000000000000009f2d25028a28d8f0fc0125fae86972888b6b5e5a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ce08e5a2195fa0000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf614600000000000000000000000000000000000000000000000000000000000000403d3a4254432e4254433a62633171336a6433736377373766756e6e777870766e6775796c7335716b6679333567736538376b67733a302f312f303a74693a3730c001a0ef767181342b53c23e0dab637f5a181aebcbdb8e561ae1f97fbdf264d4923312a01050065e5eaa89545a87c0eb5afc73673fc351726ce5071de95992d70e12a848", + "new_txn_trie_node_byte": "0x02f901790180830ded218509be97b74a8301afa694d37bbe5744d730a1d98d8dc97c42f0ca46ad7146880ce08e5a2195fa00b9010444bc937b0000000000000000000000009f2d25028a28d8f0fc0125fae86972888b6b5e5a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ce08e5a2195fa0000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf614600000000000000000000000000000000000000000000000000000000000000403d3a4254432e4254433a62633171336a6433736377373766756e6e777870766e6775796c7335716b6679333567736538376b67733a302f312f303a74693a3730c001a0ef767181342b53c23e0dab637f5a181aebcbdb8e561ae1f97fbdf264d4923312a01050065e5eaa89545a87c0eb5afc73673fc351726ce5071de95992d70e12a848", + "new_receipt_trie_node_byte": "0xb9022f02f9022b0184012f7acdb9010000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000800001000000000000000004800000000000008000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000400000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000f9011ff9011c94d37bbe5744d730a1d98d8dc97c42f0ca46ad7146f863a0ef519b7eb82aaf6ac376a6df2d793843ebfd593de5f1a0601d3cc6ab49ebb395a00000000000000000000000009f2d25028a28d8f0fc0125fae86972888b6b5e5aa00000000000000000000000000000000000000000000000000000000000000000b8a00000000000000000000000000000000000000000000000000ce08e5a2195fa00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000403d3a4254432e4254433a62633171336a6433736377373766756e6e777870766e6775796c7335716b6679333567736538376b67733a302f312f303a74693a3730", + "gas_used": 39263 + } + }, + { + "traces": { + "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000005" + ], + "storage_written": { + "0xc8ed46da54e4bf25bcc730f54fca29841ffdfc3ab45fcbe9813af1d11db95a4e": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + "code_usage": { + "read": "0x131ff5c755b710d543ea70fede2eb38e5d15b1456df0ae932ba12e2786f7e5df" + } + }, + "0xaf3e7e6f8ec4956b548c2f392db2f48fd921d1c4": { + "balance": "0x8a9d7e651af37", + "nonce": "0x4" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662234a7a480c7d" + } + }, + "meta": { + "byte_code": "0x02f8ae0103830ded218508dbd1020183011d2a942260fac5e5542a773aa44fbcfedf7c193bc2c59980b844095ea7b3000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0019e9871cfbfc3c2b6942d4b1d7d1bcc0dfd5de87bcb3fa943a52fa35af987d8a056a2ec9cc2f70bc3082d89711d62346800707d4dd3573a854c3e23a0f45d2ed5", + "new_txn_trie_node_byte": "0x02f8ae0103830ded218508dbd1020183011d2a942260fac5e5542a773aa44fbcfedf7c193bc2c59980b844095ea7b3000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0019e9871cfbfc3c2b6942d4b1d7d1bcc0dfd5de87bcb3fa943a52fa35af987d8a056a2ec9cc2f70bc3082d89711d62346800707d4dd3573a854c3e23a0f45d2ed5", + "new_receipt_trie_node_byte": "0xb901ac02f901a80184013038e9b9010000000000000000000000000000000000000000000020000000000000000000000000000000000000000000020000000000000000000000000000000000200000000000000000000000000000000000000000000000200000000000000000020000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000200000000000000000008000000000f89df89b942260fac5e5542a773aa44fbcfedf7c193bc2c599f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000af3e7e6f8ec4956b548c2f392db2f48fd921d1c4a0000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22aa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "gas_used": 48668 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196622350ef97b235" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298694bb49ecfb5823eae", + "storage_read": [ + "0xa1d5d18d78bbc593b2ea9d1f9302775e671994dbd53d7b7105be4a9cebe61b0b" + ], + "storage_written": { + "0xa1d5d18d78bbc593b2ea9d1f9302775e671994dbd53d7b7105be4a9cebe61b0b": "0x0" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x37c4a8be3b59f7f4ea22daa742da2ad65c85daf5": { + "balance": "0x3a7b6f751a0034", + "nonce": "0x4" + } + }, + "meta": { + "byte_code": "0x02f88e0103830ded2185087d4234d9828ca394c02aaa39b223fe8d0a0e5c4f27ead9083c756cc280a42e1a7d4d00000000000000000000000000000000000000000000000000071afd498d0000c001a0d2787f84622f3929c98ac7158d14c8ed2a00a57343d75acb98f2813cedeeee3da05bf084b5c6fedf0336bc6850e450211f9cb7eeabd1b84d3f20712f8e401fabcf", + "new_txn_trie_node_byte": "0x02f88e0103830ded2185087d4234d9828ca394c02aaa39b223fe8d0a0e5c4f27ead9083c756cc280a42e1a7d4d00000000000000000000000000000000000000000000000000071afd498d0000c001a0d2787f84622f3929c98ac7158d14c8ed2a00a57343d75acb98f2813cedeeee3da05bf084b5c6fedf0336bc6850e450211f9cb7eeabd1b84d3f20712f8e401fabcf", + "new_receipt_trie_node_byte": "0xb9018b02f9018701840130afa1b9010000000000000000000000400000000000000000000000000000000000000000000040000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000200000000000000000000000000000000000000000000000000000000000f87cf87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65a000000000000000000000000037c4a8be3b59f7f4ea22daa742da2ad65c85daf5a000000000000000000000000000000000000000000000000000071afd498d0000", + "gas_used": 30392 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662235565fbad3d" + }, + "0x8c8d7c46219d9205f056f28fee5950ad564d7465": { + "balance": "0x59b4857666ced35b0", + "nonce": "0xcf2e2" + }, + "0xcd673f5490f8515e0d3765ccf310bfd44afa917c": { + "balance": "0x77f9a2d610a000" + } + }, + "meta": { + "byte_code": "0x02f87401830cf2e1830ded21850e260fb9ff82520894cd673f5490f8515e0d3765ccf310bfd44afa917c8777f9a2d610a00080c001a0e3946baaf7d8d25600538d64217d06546ad58eaf363c8daa9fe5046e5b5640d1a0203ad78daca2276e8476b9688d684dbffda4f397021419c2d3097cd69e337608", + "new_txn_trie_node_byte": "0x02f87401830cf2e1830ded21850e260fb9ff82520894cd673f5490f8515e0d3765ccf310bfd44afa917c8777f9a2d610a00080c001a0e3946baaf7d8d25600538d64217d06546ad58eaf363c8daa9fe5046e5b5640d1a0203ad78daca2276e8476b9688d684dbffda4f397021419c2d3097cd69e337608", + "new_receipt_trie_node_byte": "0xb9010e02f9010a0184013101a9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x0846ef51253e399d7258f97d1f1727dd45a2a0a3": { + "balance": "0x1fd5f7853419e", + "nonce": "0x2" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662235a3c8d542d" + }, + "0x86236e8e327ff9c956ad197def9df9bfada9ae38": { + "balance": "0xd529ae9e860000", + "code_usage": { + "read": "0x3228c3d5f8dc3056cb334dc7f650dbad23c68bce3e61ce922c07c7d80c403b31" + } + } + }, + "meta": { + "byte_code": "0x02f8750101830ded2185087d4234d98258f09486236e8e327ff9c956ad197def9df9bfada9ae388701c6bf5263400084b60d4288c001a001165baa100b97e611911c9a6cb24f1b8738ff80c5f27409cbbd60264d05de85a065ee11d88053f32b75bae6e4011ad5c4f05a2f167530df89a86fe526dd98f650", + "new_txn_trie_node_byte": "0x02f8750101830ded2185087d4234d98258f09486236e8e327ff9c956ad197def9df9bfada9ae388701c6bf5263400084b60d4288c001a001165baa100b97e611911c9a6cb24f1b8738ff80c5f27409cbbd60264d05de85a065ee11d88053f32b75bae6e4011ad5c4f05a2f167530df89a86fe526dd98f650", + "new_receipt_trie_node_byte": "0xb9018c02f90188018401315a99b9010000000000000000004000000000000000000100000002000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000020000000000000000000000000000000400000000000000000008000000000000000000000000000020000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000f87df87b9486236e8e327ff9c956ad197def9df9bfada9ae38f863a05af8184bef8e4b45eb9f6ed7734d04da38ced226495548f46e0c8ff8d7d9a524a00000000000000000000000000846ef51253e399d7258f97d1f1727dd45a2a0a3a00000000000000000000000000000000000000000000000000001c6bf5263400080", + "gas_used": 22768 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662235eb2f14f35" + }, + "0x658e47d8b4be81d8a88500e1c570875a4ac22151": { + "balance": "0x1477f94b2789b30c", + "nonce": "0x1" + }, + "0xf01eb8ff3f5435e2af8acf2fa43f3c27075e01d1": { + "balance": "0x7775b943dd24b17" + } + }, + "meta": { + "byte_code": "0x02f8720180830ded2185087d4234d982520894f01eb8ff3f5435e2af8acf2fa43f3c27075e01d18802ef95d3d725814480c001a00ffc6e524a9fdd0b7691ee2c6584cce1ae8b296225e79f41d92e7a61301002bfa054405ce7526c08110a26874d3a74368757e116e40603c8d90826806d8bf57d1f", + "new_txn_trie_node_byte": "0x02f8720180830ded2185087d4234d982520894f01eb8ff3f5435e2af8acf2fa43f3c27075e01d18802ef95d3d725814480c001a00ffc6e524a9fdd0b7691ee2c6584cce1ae8b296225e79f41d92e7a61301002bfa054405ce7526c08110a26874d3a74368757e116e40603c8d90826806d8bf57d1f", + "new_receipt_trie_node_byte": "0xb9010e02f9010a01840131aca1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662236329554a3d" + }, + "0xcb107028ceb76eb0c3eccf4f2efd036b1ec33503": { + "balance": "0x22b1373c3b5000" + }, + "0xec6bddaf917bb3f605d275f7b9a2d3455e3635c4": { + "balance": "0x7eb415b0fe30", + "nonce": "0x6" + } + }, + "meta": { + "byte_code": "0x02f8710105830ded2185087d4234d982520894cb107028ceb76eb0c3eccf4f2efd036b1ec335038703328b944c400080c080a0c5658081546539f0dded9d075706ef051534c65102ec105daaafcf4eaadbe93ca0260cb2ff67bca0673f20277eccc4b3b287e7a8ee60ec5cde97b6294d6d93b665", + "new_txn_trie_node_byte": "0x02f8710105830ded2185087d4234d982520894cb107028ceb76eb0c3eccf4f2efd036b1ec335038703328b944c400080c080a0c5658081546539f0dded9d075706ef051534c65102ec105daaafcf4eaadbe93ca0260cb2ff67bca0673f20277eccc4b3b287e7a8ee60ec5cde97b6294d6d93b665", + "new_receipt_trie_node_byte": "0xb9010e02f9010a01840131fea9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196626ab6713dccd3" + }, + "0x974caa59e49682cda0ad2bbe82983419a2ecc400": { + "balance": "0x515890040461281fd0", + "nonce": "0x20269b" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x443025b09bbeb064188f95744b9730ff447d64fef326c3d948823fc704611ab9", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x02109e648c764353db47b1d8894f1769d5b0e66c7caf2df343621702e7f66d88", + "0x4a21a067690608d17188eff2460677a392820acb10ad67cc21282438b146917c" + ], + "storage_written": { + "0x02109e648c764353db47b1d8894f1769d5b0e66c7caf2df343621702e7f66d88": "0x59e8b53c337", + "0x4a21a067690608d17188eff2460677a392820acb10ad67cc21282438b146917c": "0x82d203f" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + } + }, + "meta": { + "byte_code": "0xf8ad8320269a850768b94b7b8310059094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000004f4b572654edea2baba8125a98f04770e4fb108600000000000000000000000000000000000000000000000000000000082d203f25a0a51d73e6866d40ac8acf140e59a27c63102b6235806f4385240bfd1f921125b9a050f2ab6da48a343d20481e965555c7a07cea842e757697055ff765f11bb4952a", + "new_txn_trie_node_byte": "0xf8ad8320269a850768b94b7b8310059094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000004f4b572654edea2baba8125a98f04770e4fb108600000000000000000000000000000000000000000000000000000000082d203f25a0a51d73e6866d40ac8acf140e59a27c63102b6235806f4385240bfd1f921125b9a050f2ab6da48a343d20481e965555c7a07cea842e757697055ff765f11bb4952a", + "new_receipt_trie_node_byte": "0xf901a801840132f592b9010000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000010000000000410000000000000000100000000000000000000000000000000000000100000000000000000000000000080000000400000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000974caa59e49682cda0ad2bbe82983419a2ecc400a00000000000000000000000004f4b572654edea2baba8125a98f04770e4fb1086a000000000000000000000000000000000000000000000000000000000082d203f", + "gas_used": 63209 + } + }, + { + "traces": { + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x8008828afae457070211ff3fb54aa72f24178b5d9c8ce566f77c658b431cd695" + ], + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196626b2fcc037df1" + }, + "0x0c8e39bcbec4993c5b6ea12f4e1678d643a59521": { + "balance": "0x1c173d116fa9e2a0", + "nonce": "0x17" + } + }, + "meta": { + "byte_code": "0x02f8b0011684012bfe028509bcbb01f182e71c94dac17f958d2ee523a2206206994597c13d831ec780b844095ea7b300000000000000000000000046a15b0b27311cedf172ab29e4f4766fbe7f43640000000000000000000000000000000000000000000000000000000054a75c75c080a0a9b2d7a4c5fab956a673aa0eca9101dc2a1402f30f88f436668d4b61d0f4dc48a0774e22bfce6d08cbd9b609ea90932019e257732dd86b1b7ae5b8fafe5f9d8fce", + "new_txn_trie_node_byte": "0x02f8b0011684012bfe028509bcbb01f182e71c94dac17f958d2ee523a2206206994597c13d831ec780b844095ea7b300000000000000000000000046a15b0b27311cedf172ab29e4f4766fbe7f43640000000000000000000000000000000000000000000000000000000054a75c75c080a0a9b2d7a4c5fab956a673aa0eca9101dc2a1402f30f88f436668d4b61d0f4dc48a0774e22bfce6d08cbd9b609ea90932019e257732dd86b1b7ae5b8fafe5f9d8fce", + "new_receipt_trie_node_byte": "0xb9010e02f9010a808401335d21b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 26511 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196626c12a0eba25f" + }, + "0x0e05ac67bf2dfd9c877d893612265d2d77f66335": { + "balance": "0x211d1eac10a22ea", + "nonce": "0x213" + }, + "0x5133522ea5a0494ecb83f26311a095ddd7a9d4b6": { + "code_usage": { + "read": "0x97c86b3f6fac4e44d862bc80bfa532710b786e164e87a965beda2c5080bc79e8" + } + }, + "0x877ab7aa50b8e42ad3c9fe562870e91489eea876": { + "storage_read": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x37faa2769e40607d682578ded6f64c6c27ea46cf9165bf1ffdf8217fcdeb78c3" + ], + "storage_written": { + "0x37faa2769e40607d682578ded6f64c6c27ea46cf9165bf1ffdf8217fcdeb78c3": "0x1" + }, + "code_usage": { + "read": "0x8765781b31481be6f481dff3da4fe57bbe794bae8899a0cc26f6ff13950df646" + } + } + }, + "meta": { + "byte_code": "0x02f8b201820212840122fe118509dea717e982c91694877ab7aa50b8e42ad3c9fe562870e91489eea87680b844a22cb4650000000000000000000000001e0049783f008a0085193e00003d00cd54003c710000000000000000000000000000000000000000000000000000000000000001c001a01756fb9d040ae16f8530bdf44cf582a9eb167f92be3dfe887da49cba139e1889a0646b865a68368e75ea0e75dd46a7ae4148bd45f9acac59ae8a547c5ceed58fd3", + "new_txn_trie_node_byte": "0x02f8b201820212840122fe118509dea717e982c91694877ab7aa50b8e42ad3c9fe562870e91489eea87680b844a22cb4650000000000000000000000001e0049783f008a0085193e00003d00cd54003c710000000000000000000000000000000000000000000000000000000000000001c001a01756fb9d040ae16f8530bdf44cf582a9eb167f92be3dfe887da49cba139e1889a0646b865a68368e75ea0e75dd46a7ae4148bd45f9acac59ae8a547c5ceed58fd3", + "new_receipt_trie_node_byte": "0xb901ac02f901a80184013424afb9010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000020000000000000000000020000000000000000000000000002000000000000000000000000000000000000001000000000000000080000000000000000000000000000000000000000000000000000000000000000000400000001000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200800000000000000000000000000000000000000000000000000000000f89df89b94877ab7aa50b8e42ad3c9fe562870e91489eea876f863a017307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31a00000000000000000000000000e05ac67bf2dfd9c877d893612265d2d77f66335a00000000000000000000000001e0049783f008a0085193e00003d00cd54003c71a00000000000000000000000000000000000000000000000000000000000000001", + "gas_used": 51086 + } + }, + { + "traces": { + "0x8c8d7c46219d9205f056f28fee5950ad564d7465": { + "balance": "0x598b830c7908d9c47", + "nonce": "0xcf2e3" + }, + "0xe2fe52f9b076af5ff04b6ed774b24db7da904473": { + "balance": "0x28dde85e3eaca81" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196626c1746c8bc9f" + } + }, + "meta": { + "byte_code": "0x02f87501830cf2e2830e8148850e9d8fd6f882520894e2fe52f9b076af5ff04b6ed774b24db7da90447388028dde85e3eaca8180c001a03d594e0cb7a32c512520cdedab74c9aefea45e12d79b7928d04c984524794065a047d3277ac58072e0e00586b8c916d003da09b9489e06ced2ea34764be0662db8", + "new_txn_trie_node_byte": "0x02f87501830cf2e2830e8148850e9d8fd6f882520894e2fe52f9b076af5ff04b6ed774b24db7da90447388028dde85e3eaca8180c001a03d594e0cb7a32c512520cdedab74c9aefea45e12d79b7928d04c984524794065a047d3277ac58072e0e00586b8c916d003da09b9489e06ced2ea34764be0662db8", + "new_receipt_trie_node_byte": "0xb9010e02f9010a0184013476b7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x28230680be1fdf7e8498c20ad84d438d4093c8e8": { + "balance": "0x29058ee707ad699" + }, + "0x8c8d7c46219d9205f056f28fee5950ad564d7465": { + "balance": "0x59663bd0e0ed81e44", + "nonce": "0xcf2e4" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196626c1beca5d6df" + } + }, + "meta": { + "byte_code": "0x02f87501830cf2e3830e8148850e9d8fd6f88252089428230680be1fdf7e8498c20ad84d438d4093c8e88802522ba08940af1b80c001a0273216b252654a0d51c4fd1ef84faad1ddcf328e5aa93cf4f47cef5af5148913a02d1c3009e3e3ebe520bfeea882e52764ca4f10e2516b38f74f7ac7a0da0f9cc0", + "new_txn_trie_node_byte": "0x02f87501830cf2e3830e8148850e9d8fd6f88252089428230680be1fdf7e8498c20ad84d438d4093c8e88802522ba08940af1b80c001a0273216b252654a0d51c4fd1ef84faad1ddcf328e5aa93cf4f47cef5af5148913a02d1c3009e3e3ebe520bfeea882e52764ca4f10e2516b38f74f7ac7a0da0f9cc0", + "new_receipt_trie_node_byte": "0xb9010e02f9010a01840134c8bfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x636b1afb45ce88d0bea85108aaff3173face0b3b": { + "balance": "0x3de29d923e0519" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196626c209282f11f" + }, + "0x8c8d7c46219d9205f056f28fee5950ad564d7465": { + "balance": "0x59623925784254a43", + "nonce": "0xcf2e5" + } + }, + "meta": { + "byte_code": "0x02f87401830cf2e4830e8148850e9d8fd6f882520894636b1afb45ce88d0bea85108aaff3173face0b3b873de29d923e051980c080a0d044969e80c56461752d74ad56b426dc2e8dad9bcfff84f1d4c891e97054cec4a028c949987d3d8fed91d8ff54ace6fd2228a6d821895e6adcb02f89d186104730", + "new_txn_trie_node_byte": "0x02f87401830cf2e4830e8148850e9d8fd6f882520894636b1afb45ce88d0bea85108aaff3173face0b3b873de29d923e051980c080a0d044969e80c56461752d74ad56b426dc2e8dad9bcfff84f1d4c891e97054cec4a028c949987d3d8fed91d8ff54ace6fd2228a6d821895e6adcb02f89d186104730", + "new_receipt_trie_node_byte": "0xb9010e02f9010a018401351ac7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196626c2b4e1b575f" + }, + "0x8c8d7c46219d9205f056f28fee5950ad564d7465": { + "balance": "0x5961e9030a7a25b5e", + "nonce": "0xcf2e6" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x5b46822af98b0cc983fd22912d6165e9deda60576339e1f5d8bbd66f45fc1c22", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x75a26b1f8850786d37bba38b0f06de5dc7d2c5c82025e3a1138b791decaf9685", + "0xc635f66ea5b949bf6c565df4866c4220141acdaff8d5ee9adb0a8c8486681678" + ], + "storage_written": { + "0xc635f66ea5b949bf6c565df4866c4220141acdaff8d5ee9adb0a8c8486681678": "0xb84cc4e7", + "0x75a26b1f8850786d37bba38b0f06de5dc7d2c5c82025e3a1138b791decaf9685": "0x2bccf06d99" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + } + }, + "meta": { + "byte_code": "0x02f8b201830cf2e5830f4240850ed16354b682fde894dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000007bde065d00cd8f9bed0deba4be76819e4b345b1300000000000000000000000000000000000000000000000000000000256f2c97c001a020035224059806cf4ab9d5ccb148511885d179ef1b4a8555c8cd3c13545cabeda0513959225cb05afc76c9fd6d708f9519f960442171a9235caccf02022a509bfc", + "new_txn_trie_node_byte": "0x02f8b201830cf2e5830f4240850ed16354b682fde894dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb0000000000000000000000007bde065d00cd8f9bed0deba4be76819e4b345b1300000000000000000000000000000000000000000000000000000000256f2c97c001a020035224059806cf4ab9d5ccb148511885d179ef1b4a8555c8cd3c13545cabeda0513959225cb05afc76c9fd6d708f9519f960442171a9235caccf02022a509bfc", + "new_receipt_trie_node_byte": "0xb901ac02f901a801840135ced8b9010000000000000000000000000000000000000000000000000440000000400000000000000000000000000000000000010000000000000000000000400000000000000000000000000000000008000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000008c8d7c46219d9205f056f28fee5950ad564d7465a00000000000000000000000007bde065d00cd8f9bed0deba4be76819e4b345b13a000000000000000000000000000000000000000000000000000000000256f2c97", + "gas_used": 46097 + } + }, + { + "traces": { + "0x43506849d7c04f9138d1a2050bbf3a0c054402dd": { + "code_usage": { + "read": "0xcdfb7d322961af3acae7a8f7ee8b69c205b36f576cc5b077f170c7eb8ecbe3ea" + } + }, + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "storage_read": [ + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xf44681571ddec7a61b19173091fe5695116de851b72e26704b9c0765af0929e7", + "0xcbbb3497f1a03c89760c87f5879399ca68ae97341324fb75a09008f1e23ec5c4" + ], + "storage_written": { + "0xcbbb3497f1a03c89760c87f5879399ca68ae97341324fb75a09008f1e23ec5c4": "0x1e0a6e00", + "0xf44681571ddec7a61b19173091fe5695116de851b72e26704b9c0765af0929e7": "0x523f76d342fc" + }, + "code_usage": { + "read": "0xd80d4b7c890cb9d6a4893e6b52bc34b56b25335cb13716e0d1d31383e6b41505" + } + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19662dd65c9f6775f" + }, + "0xdfd5293d8e347dfe59e90efd55b2956a1343963d": { + "balance": "0x2b62ac855e476d348c3", + "nonce": "0x7df824" + } + }, + "meta": { + "byte_code": "0x02f8b401837df82384773594008517bfac7c008303291894a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb000000000000000000000000aa49bb6ddf13df5b6477edc335be309a88c8166e000000000000000000000000000000000000000000000000000000001e0a6e00c080a011f79c223a319f339a61682ad6b64b5ce05104b1444798de3a0c18b02b821515a07910b6c616638548b877723fa7ac51f49624b4c2b3b2daf39a78b420339b37a2", + "new_txn_trie_node_byte": "0x02f8b401837df82384773594008517bfac7c008303291894a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb000000000000000000000000aa49bb6ddf13df5b6477edc335be309a88c8166e000000000000000000000000000000000000000000000000000000001e0a6e00c080a011f79c223a319f339a61682ad6b64b5ce05104b1444798de3a0c18b02b821515a07910b6c616638548b877723fa7ac51f49624b4c2b3b2daf39a78b420339b37a2", + "new_receipt_trie_node_byte": "0xb901ac02f901a801840136c200b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000002000000000000010000080000000000000000000000000080200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000020000008000000000000000000000000000000000000000000000000000000000000000000800000000000f89df89b94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000dfd5293d8e347dfe59e90efd55b2956a1343963da0000000000000000000000000aa49bb6ddf13df5b6477edc335be309a88c8166ea0000000000000000000000000000000000000000000000000000000001e0a6e00", + "gas_used": 62248 + } + }, + { + "traces": { + "0x28c6c06298d514db089934071355e5743bf21d60": { + "balance": "0x16ba432f2a3637638da5", + "nonce": "0x88d04c" + }, + "0x5b59745ae1ea00eb5d853543cf2e0288c9de733d": { + "balance": "0x62be93da8710d8" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x196630398ad0b175f" + } + }, + "meta": { + "byte_code": "0x02f876018388d04b84773594008517bfac7c0083032918945b59745ae1ea00eb5d853543cf2e0288c9de733d876196001eb0c00080c080a002f7adcad690812d3096ca72605e968a23da15166acd4d7923b8a847208e33fba02732bfd98abb334031a4535eadf4c2322da9686b291014c57bfa8a982e63c2c5", + "new_txn_trie_node_byte": "0x02f876018388d04b84773594008517bfac7c0083032918945b59745ae1ea00eb5d853543cf2e0288c9de733d876196001eb0c00080c080a002f7adcad690812d3096ca72605e968a23da15166acd4d7923b8a847208e33fba02732bfd98abb334031a4535eadf4c2322da9686b291014c57bfa8a982e63c2c5", + "new_receipt_trie_node_byte": "0xb9010e02f9010a018401371408b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19663618df1af8f5f" + }, + "0x28c6c06298d514db089934071355e5743bf21d60": { + "balance": "0x16ba43292f95d5f6fce7", + "nonce": "0x88d04d" + }, + "0xc944e90c64b2c07662a292be6244bdf05cda44a7": { + "storage_read": [ + "0x78b35599871be95768b2fdfaf9293a4491ecdc8ef25b872ee404fa1e441436e0", + "0x9b711a00820ae34ade729f0cb7911ec1a353a96bb6780bf22628eff69dad9aa4" + ], + "storage_written": { + "0x9b711a00820ae34ade729f0cb7911ec1a353a96bb6780bf22628eff69dad9aa4": "0x25680d9538151bbc0000", + "0x78b35599871be95768b2fdfaf9293a4491ecdc8ef25b872ee404fa1e441436e0": "0x38f92e7accfca54e0d48a" + }, + "code_usage": { + "read": "0xb964f76194a04272e7582382a4d6bd6271bbb90deb5c1fd3ae3913504ea3a830" + } + } + }, + "meta": { + "byte_code": "0x02f8b4018388d04c84773594008517bfac7c008303291894c944e90c64b2c07662a292be6244bdf05cda44a780b844a9059cbb000000000000000000000000548f27e2c1eb0c90c9c0ef3a4a61a6ae60038f020000000000000000000000000000000000000000000025680d9538151bbc0000c080a0b564bcc3d407e06626a5d9f0deddfb171a9a436f7e1851c60a06dfaa9d8d4d87a0392c5a84dd681c86720a56a48a4ab674d805b7dcef4fde0a7753aa7aafc0d751", + "new_txn_trie_node_byte": "0x02f8b4018388d04c84773594008517bfac7c008303291894c944e90c64b2c07662a292be6244bdf05cda44a780b844a9059cbb000000000000000000000000548f27e2c1eb0c90c9c0ef3a4a61a6ae60038f020000000000000000000000000000000000000000000025680d9538151bbc0000c080a0b564bcc3d407e06626a5d9f0deddfb171a9a436f7e1851c60a06dfaa9d8d4d87a0392c5a84dd681c86720a56a48a4ab674d805b7dcef4fde0a7753aa7aafc0d751", + "new_receipt_trie_node_byte": "0xb901ac02f901a801840137ddceb9010000000000000000000000000000000200000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000100000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000010000040000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000002000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000f89df89b94c944e90c64b2c07662a292be6244bdf05cda44a7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000028c6c06298d514db089934071355e5743bf21d60a0000000000000000000000000548f27e2c1eb0c90c9c0ef3a4a61a6ae60038f02a00000000000000000000000000000000000000000000025680d9538151bbc0000", + "gas_used": 51654 + } + }, + { + "traces": { + "0x0d0707963952f2fba59dd06f2b425ace40b492fe": { + "balance": "0xd257c2f00a3dac93", + "nonce": "0x55fa63" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19663c01a1623575f" + }, + "0x943af2ece93118b973c95c2f698ee9d15002e604": { + "storage_read": [ + "0x7d45da954a24445a0127c32b6a9e045cb87ed492833d35a02e8b38e0c1419262", + "0x81f94b6964cd159b8aa334374ec2958fe5314942de8c7e74f55e179951ce06e2" + ], + "storage_written": { + "0x7d45da954a24445a0127c32b6a9e045cb87ed492833d35a02e8b38e0c1419262": "0x2703d454e0661e93c1e0aa", + "0x81f94b6964cd159b8aa334374ec2958fe5314942de8c7e74f55e179951ce06e2": "0x17b49780d5f19cd00000" + }, + "code_usage": { + "read": "0x5120ab7aa1e15bf94988b32fe3e97399d65617f278fdf558d42f84e793d72c8c" + } + } + }, + "meta": { + "byte_code": "0x02f8b4018355fa628477359400850f4889a676830f424094943af2ece93118b973c95c2f698ee9d15002e60480b844a9059cbb00000000000000000000000081f9918c9b1efbbe13ce01a8c4585d303ff490740000000000000000000000000000000000000000000017b49780d5f19cd00000c080a0c08cf905fdd6f2616af3cbe0723190db4765255c66a6be9e554a610a26f40d21a06702b1ba603bf9113b0dc97a6a7d8d5396c0eac9e4e3299b90456b528e3d51a1", + "new_txn_trie_node_byte": "0x02f8b4018355fa628477359400850f4889a676830f424094943af2ece93118b973c95c2f698ee9d15002e60480b844a9059cbb00000000000000000000000081f9918c9b1efbbe13ce01a8c4585d303ff490740000000000000000000000000000000000000000000017b49780d5f19cd00000c080a0c08cf905fdd6f2616af3cbe0723190db4765255c66a6be9e554a610a26f40d21a06702b1ba603bf9113b0dc97a6a7d8d5396c0eac9e4e3299b90456b528e3d51a1", + "new_receipt_trie_node_byte": "0xb901ac02f901a801840138a8d8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000020000000000080010000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000080000000000000000000000000000002000000000000000000000040100000000000000000000000000000000040000000000000000000000000000000000000080000000000000000000000f89df89b94943af2ece93118b973c95c2f698ee9d15002e604f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000d0707963952f2fba59dd06f2b425ace40b492fea000000000000000000000000081f9918c9b1efbbe13ce01a8c4585d303ff49074a00000000000000000000000000000000000000000000017b49780d5f19cd00000", + "gas_used": 51978 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19663c085713e63df" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "storage_read": [ + "0x3af846ec55f7e28d9da4a2e210e4c91d17ff846c1560f737c9740a917ea53418", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc4aa187e2e67cdf031fded184a986b393461cdd3d596d30063dc6630dd04cb46", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x06a9ec0d739d01a628acbd26c60ac9f86cca9fc11138021be1329dde183cea25" + ], + "storage_written": { + "0x06a9ec0d739d01a628acbd26c60ac9f86cca9fc11138021be1329dde183cea25": "0xa776fe5453", + "0x3af846ec55f7e28d9da4a2e210e4c91d17ff846c1560f737c9740a917ea53418": "0x14f46b0400" + }, + "code_usage": { + "read": "0xb44fb4e949d0f78f87f79ee46428f23a2a5713ce6fc6e0beb3dda78c2ac1ea55" + } + }, + "0x788529118f2a28c60b9de2ba0353f5ee4293e044": { + "balance": "0x399d966a9c7ca1905", + "nonce": "0x8cfb" + } + }, + "meta": { + "byte_code": "0x02f8b201828cfa8398968085165a0bc000830249f094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000059a170652e713297391ff32790702ce27b7a249f00000000000000000000000000000000000000000000000000000006fc23ac00c001a0bb0b1370a082b92471f17001e119b02f9ee3d48ca025bffb1ae481076654e12ca01494f7314151d2a24faa8d2a09dbd6d06f58edbd0d865159e5a96cf0a7123616", + "new_txn_trie_node_byte": "0x02f8b201828cfa8398968085165a0bc000830249f094dac17f958d2ee523a2206206994597c13d831ec780b844a9059cbb00000000000000000000000059a170652e713297391ff32790702ce27b7a249f00000000000000000000000000000000000000000000000000000006fc23ac00c001a0bb0b1370a082b92471f17001e119b02f9ee3d48ca025bffb1ae481076654e12ca01494f7314151d2a24faa8d2a09dbd6d06f58edbd0d865159e5a96cf0a7123616", + "new_receipt_trie_node_byte": "0xb901ac02f901a8018401395cf5b9010000200008000000080000000000000000000000008000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000200002000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000f89df89b94dac17f958d2ee523a2206206994597c13d831ec7f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000788529118f2a28c60b9de2ba0353f5ee4293e044a000000000000000000000000059a170652e713297391ff32790702ce27b7a249fa000000000000000000000000000000000000000000000000000000006fc23ac00", + "gas_used": 46109 + } + }, + { + "traces": { + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": { + "balance": "0x19663c4f464da60df" + }, + "0x0414e2ba5b5c7d72510d4990d91b0e7495f2534f": { + "balance": "0x11711244772cfc0", + "nonce": "0x9" + }, + "0x77777feddddffc19ff86db637967013e6c6a116c": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x537c6a58c908877114e9ef3b10a9549624b178bcdca4ddb20f7c0bb2b504798a", + "0xe9badfb12e456cb82012fb898d7a5bce24af0a8ea3450d5f96e8dfc9ebb54baf" + ], + "storage_written": { + "0x537c6a58c908877114e9ef3b10a9549624b178bcdca4ddb20f7c0bb2b504798a": "0x363c5989528e3deb46", + "0xe9badfb12e456cb82012fb898d7a5bce24af0a8ea3450d5f96e8dfc9ebb54baf": "0x6d499ec6c633800000" + }, + "code_usage": { + "read": "0x7bb3883a4af95ea24983177dbcb682a021f389b77835ed266bfa30bda271c77b" + } + } + }, + "meta": { + "byte_code": "0x02f8b0010884055d4a80850821a9cdc682e8ba9477777feddddffc19ff86db637967013e6c6a116c80b844a9059cbb0000000000000000000000000c059cb08bf8f314c11f12d49183696b1471147900000000000000000000000000000000000000000000006d499ec6c633800000c001a0c28c806b77375b4f9ea4d6a4291b1e58cf1148886950b2d4341dcb788d69bb3fa01ed972d06e871e8bddea9ec2ad70ea3ba77b7688d2229fccc9985a2ed937b41b", + "new_txn_trie_node_byte": "0x02f8b0010884055d4a80850821a9cdc682e8ba9477777feddddffc19ff86db637967013e6c6a116c80b844a9059cbb0000000000000000000000000c059cb08bf8f314c11f12d49183696b1471147900000000000000000000000000000000000000000000006d499ec6c633800000c001a0c28c806b77375b4f9ea4d6a4291b1e58cf1148886950b2d4341dcb788d69bb3fa01ed972d06e871e8bddea9ec2ad70ea3ba77b7688d2229fccc9985a2ed937b41b", + "new_receipt_trie_node_byte": "0xb901ac02f901a80184013a3087b9010000000000040000000000000000000000000000000000000020000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000200f89df89b9477777feddddffc19ff86db637967013e6c6a116cf863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000414e2ba5b5c7d72510d4990d91b0e7495f2534fa00000000000000000000000000c059cb08bf8f314c11f12d49183696b14711479a000000000000000000000000000000000000000000000006d499ec6c633800000", + "gas_used": 54162 + } + }, + { + "traces": { + "0x9fc3da866e7df3a1c57ade1a97c9f00a70f010c8": { + "balance": "0x46a961d52522fc999", + "nonce": "0x17cd" + }, + "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97": {}, + "0x4675c7e5baafbffbca748158becba61ef3b0a263": { + "balance": "0x4a51f9418cd30a" + } + }, + "meta": { + "byte_code": "0x02f870018217cc8085071ec5cf55825208944675c7e5baafbffbca748158becba61ef3b0a2638748491d99d5bd9280c001a0c702140b68f72d5817efa7e305efe73cbdabc2e264faa362bfb4ac4ecb334e69a008ba03ab5d5094a769e6f3ab15c54019c291f082f8e56131492dd896857aab49", + "new_txn_trie_node_byte": "0x02f870018217cc8085071ec5cf55825208944675c7e5baafbffbca748158becba61ef3b0a2638748491d99d5bd9280c001a0c702140b68f72d5817efa7e305efe73cbdabc2e264faa362bfb4ac4ecb334e69a008ba03ab5d5094a769e6f3ab15c54019c291f082f8e56131492dd896857aab49", + "new_receipt_trie_node_byte": "0xb9010e02f9010a0184013a828fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + } + ] + }, + "other_data": { + "b_data": { + "b_meta": { + "block_beneficiary": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "block_timestamp": "0x65cf5de7", + "block_number": "0x12596ca", + "block_difficulty": "0x0", + "block_random": "0x21cf51f954dad3c6a94028fcc86b949b2d0b6dd292c6a920476fb678178aed4d", + "block_gaslimit": "0x1c9c380", + "block_chain_id": "0x1", + "block_base_fee": "0x71ec5cf55", + "block_gas_used": "0x13a828f", + "block_bloom": [ + "0x73a9d30fcfac077b76f85c759ec58e24161355609ffb3b06600d1da15d6656b7", + "0xe2d68769fe5f605e6a3fbf226a1e2dce8681ac329e8769ef07f67684f5bdab84", + "0x1b51f23b57608babf98f463fd0e46cf48bbf0a93dd770c781b93ef66a237da69", + "0x5ff84011920f7dd7e57df645100d3c5b7637bdecf434d4495b03cdfe0eca4d0c", + "0x5c3d5bf6137875d4f5c73753632ba2cf11a1d5e9dbbb12c94cb1f3c2fe131c26", + "0x9f07d513dba2fa9bbaf474f399c8ecce14d9e64adeba972eadef627e87d9b274", + "0x49f23266b0e9483ffbf28a15d33bd7757d50be13bea168781ae0594aab26fc5a", + "0xf3fffa3c9bdf63aebf2438f13cf51e88fc7a500e0d8f3671230984ca62c87f2d" + ] + }, + "b_hashes": { + "prev_hashes": [ + "0x85f1866c8c52aa6e250392c648b2bfc4c28638738b693ea4ce5d4f992c465f06", + "0x69317cad2889ebbef502f60117cdd85723025cde1371c32224f027b900391c49", + "0x598b2e08e9cb7028295a7da04e46c91346d52a0c96d6ccf02be7f83cc0c5ff1d", + "0x733e988d34f24dff8dee254e5561a4f9ce30dd6124d02873b81b686f13343715", + "0x7d94b30ae838666aea15d410393cfbc72567a54db3bd8b9bbce37e75c85d89fe", + "0xb3da81034a1c5db6aea135a3454455c6101d99953abbd937ed9e564cabb8a472", + "0x99c39f90911ea79fe2e6c2ee12c3feb2f411910518519e30d81692fb0077e38c", + "0x4117f590bcd5378b9538df28691229025fe000994f0e285d9b0de0184d4b1987", + "0xc3c90f55b8b35370a6ea16daf5760ab8db658e8b086130cd60eeaf52adb31d81", + "0xfd3ef7a138deee44b1c137eb9280956fc66908132e2743e374f31f486784d7c1", + "0x8c08d5a71483310f61cbf4ba603204b02268216e1f6ced44268f53ea3137546e", + "0xc51b8c0ed8c4ba5d5258f540023c550c540b15aff74967d7fb6a76aeb9bf729d", + "0x0144876d7d4d9918fb502263ab55aedc42936a92b08fa0194d9c3e579c56c16a", + "0x3aa7c1ff4788c2af9cb3e336ab5834dbaefca4d69d82c076eac2f660a53d7038", + "0x7a2c2648ecae8131b569cd74c3c312a0256f83e21892da08cc1e1eab85a90df0", + "0x60741340b57c6bab728a403f734ec8e0525a6a4bbfe24a8beb1111ae8e28746b", + "0x1a6693adb401e1a25b2bff607847bea376663331fa2da2b3ed93d3dfc18b2af7", + "0xbd7890ef3865a272a149411591110191c301b1302cc0a5d948ef5df2b58adae9", + "0xbbe6eebd12e9a23932ede6afdc9982e7bced3d6a015ee2e5f592e512b20e9fdf", + "0xac53e2d569d4c25dffb1335a026eb9b2fbdd899d9217eaa78ed12dc9d340c4f5", + "0x587caba960bdefeaabc2133a85006e7ee61647379cf023b4f9b36fd7b8ebbdd9", + "0xc0abd94557500b1b1c7b7b29d38fba3a9130f0373220835040e620a66d449ee6", + "0x292a340d929f702e4e1e0adca6119455f8cdca148d9f14608c926a067d8d0bad", + "0xf94ab560a664438effa0d3d92302b94e88764690f7cb71e55207c0a44cb6593d", + "0x3b843f079cefd9a38413d3e627fb983608e3dcdba472bdefd5f594663b4240b0", + "0xf0d2bbc1ac8c6e8a5c7f6e69e92fc3ee636f56777eb8995b011a976f3802a3ea", + "0x3f7c3d4f3c6790a6d0fa8a777a48b0e290ef5db830568999fb8e4daafc2f01e2", + "0x71d7f512d998f97732494143454d6fcaab5a902ff03ae95db13073a7dfa88b98", + "0x1b20d660ed95efcaae5cd80a6babadcd66761ad42fb5fa17c860ed873bb2c1f9", + "0xe041b71f658fa68e8f9b4b42fe70677ab667951af406b6adb23e32aaca7df640", + "0xd957207c659523a385b86ef3576569e334bff10059e374a7f691f9dae7259513", + "0xb509eac05a9724c84fbb3fcfa9dfb37f1022df2c1e357ecc6f466a3c51e17818", + "0x43d8447846e077ccb7464d519633288243260f8357ecc7d5bb1df949a924ce70", + "0x449eb2ee0dfbe74f261457c6ccd44ed584f01a32bc8f7f6368ec3da12b19d7d6", + "0x0021a513c81d19492b8bcbcc0591f4de0f9b9ea86491de32faa62ff51531eac0", + "0x6d7bbe0578d29f5573b00917004ea4fe9f72741f54b3baa78df6578f84a0bbb9", + "0x00c709652a60301dfdf8180efc551364e95e33fbbd03e485d6f324db3eb38b16", + "0x55d3e5cb3805be21ed853bc3db009e59c3830304e7bd1f03a650b8bc2dacbd27", + "0x5eeb45cdb78e0abd2cd0e7df03728f6f775dfba14ca25f94d58e54b11129fd91", + "0xd761dd186ec77bbb342ca15e81088f48ad2fe59fabe0c85a5a8f728d9eb40907", + "0x0794ae29a14041da09d0244607ed86f6da8d286b7acee76ace73cb77dbc56a18", + "0xf8a5b1ac29b27ba4f3ded2294db1c35004ce694253a6285b2283a0d775269064", + "0xed660c6349505cb81fc8acfd3ce7025b8d6ae1a00c0be27018d4ca2c2ea95c59", + "0xd79e48564ac4a81e5cedd16dad8d0dcd117a57adb99dfee771edf0b4efc1bacf", + "0x9405f993e673cb5ace971cae793e0535f72701e6e1f01213ec69335b4c06e14c", + "0x45539cfba38ca86f3a6e80ae74a20ea00dcec37118ebde6ff8f952d670c41e23", + "0x89518404958780a7bf5adb0af8366aafbde7b7bd312f93051f825c118a60852d", + "0x12c39fb06d38156ccdaaea4dfd1d011ce321c5f31866efe45883cfd596dd36e0", + "0xde891184f47a52b6339818cff3e1600f2dc44c7d126eea7e969969ba93ba890b", + "0x2679e6ae6fea03a3e4832d866aae6c409d18ceaa776fe22fdd725b2919ad2dc8", + "0xeeed6331b48c6d49c0d5a110e13d41c447ff6bdc7caf9a6c50169931da255274", + "0x8e7b9a9f05f0b77b48c1e05480e40d29af0e58a8abfcecc18267b99357bc986a", + "0x61073721b0c42de47f84834cc940b3f1fcafc5e4d35a13ee8f49c60befd21700", + "0x586b090e0e11998ca6427a252a1dfe78197fb542ad512c588a86cacaf022fe94", + "0xcaa2c5177846664b28830592023a39ffc9d98272d9f373342a861ec86d11d8f8", + "0xcfab9f57a4374e241013c389a91566b7d0c37da2ea36c9b63baa646480d0ee77", + "0x38b80ec5e15c935edb4f4956f8224a1eaa88c93938f67a1018cd7c85eb606aab", + "0xc138d04a4d815c9d83e3cebb989239461ad3ec0f9fd298e3449f3659b323400c", + "0x58bf7320b17722b62478b50020e1fb0aa18ebbaea961d868cc2575a30f63852c", + "0xb87e56f81f0456db5c7a7a17af022bde49f20cd8193463d96b05162ccffa3157", + "0xe4d6f2bfe01b73af732882d3460e13e0ab1138396fa9007a82f042e4e7402663", + "0x621fb15b9d79724387592bc72583a72c2305a5bc862ec88ac4d88ad3c745bfbc", + "0x8b7ef7a4950c70602cc1244df146ed3c719c42659cc68891f81a26880dc916b4", + "0x394f527d6a108bcfa5cd58e5d41a749a99baa9edc4b64cdf9290e01e14803916", + "0x46832687b7e3c68faaf1e001ac3699aa050c9f17085d6a9fbab3b001e1e91486", + "0xd81a2a90046cbe42fd032342889fe343a4b5c4fd80d8f69add0c0f4b4e55bc8d", + "0x4c78e389d03ec147deee89d6762cb6ac9c125920027efe921922cf806c186d4c", + "0x3f444e94733f1f4183474b90ff76248c86d805a25c4d565167b7d7a3692d3565", + "0x4998bc4c9a48073a095afa2fc93eed3dbbaa12620460bbf0e73e7e23e560c69c", + "0x1945c4296041ab7b3024f7b263293a33777925fa09459adb80e8ba8bc3f6e2a2", + "0x9aafcd5475c1fdaad41c810a1e99ba53379146a00dbb17d679c15a38df47ae19", + "0x31667b67aff44c0d86c0b924e5e26869784c1ed7ad75e0a75b434a1caaaccb9a", + "0x2beb2ba1c187a5fe2a9d4a1412396e796dcdfb858c7b4c6ff410c35350788783", + "0xaa6d56335b227575c5bc40468216257e83b47ce73e41549de224191663a09652", + "0x25337050f0ed7224687c20b0e37ce8f29e8d63709812d9403558e655935fd4c9", + "0xa9c3447f820a08321e48ee868bc912e1081db04d1de6ac9c18d1cab00245445f", + "0x8db2a1e477e1a9e07b4e5d26443a20e0b5647fe48a575334a18a8c23ff237aac", + "0x836c2b6ec407582529d154ae54ad740616a25c9e95439b36954b0886220e234b", + "0x03a3dcba6d48a16dd9fdd1aaa07aecf2a712da17cb455ba1ca6979fef2411072", + "0x76802a7e201ef4b1522542e46a97360983dc387285b1685ee8cba6ba99e14a09", + "0x4bfd1b64c7e9e706a84f7bb077eaf4fc98dc1f38162f8407daac251b4c782ea8", + "0x4063789111da1e060b25c438ae04c7f7e68d8f10afe126b68b275314251a4ecc", + "0x5f86cc18e261aab47cb8d6dc78505e7b156e022b24d4e7e399e885dd4124d4ce", + "0xe80b83684ab3ffde0d9659caa516711ba37a58c4ac9bbdb6cf6c67d04affcf5c", + "0x8f6a91bc52615b275705fdcc7ec704832f8f5f0466589fde33f6f1e836113bed", + "0x9f681e1226c7894028550212383b4a5d3ea885dd6d1c28ba12ac773b5e3ecf51", + "0x1898b052344c3d0cb7dbacf461dad55cb6f56843e2319c25a490db0eef858908", + "0xcd3dce5835974ff8209c26f5eea2e0bd35bfe46b3f22ffad6582bfa74fe3e6a6", + "0x80300830d137dc63995cd47c4b9d593ee26c36424be1aea1f205a456fa01823f", + "0x4866b34cb7823b8888ae98f84d99a1a30e5216d824dbe850b53f800f745d18c2", + "0xa40cea299f742449a2a2abd1d8d240d2e42a16c63389b773291469b600b27a4c", + "0x44209e70324b497336058736dced16d65814d90b3fd0fbcfb68a3b81cbbc52c5", + "0x109e598cb2d8b68f154a6400ca56997ed066dd8aa7a15934a8bbcfb344452214", + "0x82cc91ec296a8aa275adc93cb60e76d8809d28eb1d0f6a979a286157cd102e1c", + "0xe24079903b98fd70b9bc36e4dd372876fc02b8ed28de4a2506c40b1351e36d82", + "0x06679c947b94629035585ada54a7705fb6d66cb05e080c4d9a666f0558a5e064", + "0xb7381aae1422385528b08aa99cf2e7cc6c9943fc7e06d7d26266ebac77f2038f", + "0x6695b8d48f45d478840310cb3c9824caf874e3bee8efa56dabd9256e547465a1", + "0xf64259c9be7c6e1510c291e782ce6713fe9e6a8c0670f51484c4b52fcdf143ef", + "0x6d9c6a66065d238588d2303c570ecfee237a12f3119e1e10d6da036ee3c6acb2", + "0xbb5b372993d468b1302baf20b0abf9d8385c4882367d1c7cfb0ffcdeb9ff50a1", + "0x5b6f4ffdcd85cfc4b81655d94be7c19c2436417387b2cb2ce45113790336db35", + "0x1f0f361a4c6f7f2601e677688df6b86d069b617faed4499869631e5adee39178", + "0x42bf25b614164ffd0da182efdad686cac48576fdbdd3f38e7dd1d3bbcc9e5224", + "0xe410e090a0d43d00db127c5639f1af1614ea1680a3e5f491842bc421a8d17521", + "0xad323e505477386f3bd81056800d740a3b10a23ac519f4ae7fa1cd1a2812ab41", + "0x9ffe1e89c81176cc1753d2080339aae9331de823e319f48b997a5a9a59d14a6c", + "0xeb354c27c6adff01efba0bb57a4695009bdde67dad829fca8646eed6c627c04f", + "0x025d06bcbaf4a54651c5b432dbdc1ab61e7e25cb3b33cbd1ad597f6361c64004", + "0xfbb795e49aa2ccc545ac5427d01b8b7f4c6f0f9c6f1636fa2d3f8175ea850e7a", + "0xcfbe0b821f3d9d860aef7f90099cf3eb3d1caf66892142988fdca7990cd2685d", + "0xd38e12f24648a60b38d401b79c034aaa4272e775e44790000de39bd45848b266", + "0x18cf65ee63fea104a2ff5fc02977f31bb686a64007b8cd16d67c431d3fc9985c", + "0xfbef834f90e5cc58a7c0c4ce0eda75881d413fb327954806f43c9831e863bcaa", + "0x20fb4ff5acf0f241bd613dadc8d3146d0b6a667bd66fa8ffc3630c89810a69a3", + "0xd4a1baae192ddc2229cf6425e0fd549bb20cf99bd1857ac14f5eb36ce4ce4882", + "0x0d49346d32b8df702a53de84eff651330b1c9a8f0b00cf3cdd9a37aea37a29b4", + "0xfff87d966513ad61904e37f3e0a822d1216a24f64a2cb0ba019b2ab55b391576", + "0x069e7e81d4ddada64c915bf27e7a7f005f0cae04f85c7c9d9e1c994b35044ab0", + "0xc574c2a0764d2b3424c82a903c6091fd3fc59043c89843001ceafc2f230e250a", + "0xcb57e5e65051817c806b651160ad4fab709fd35801f649854462a391e85113c9", + "0x49df8c35cdc69b9f79b64de400f9a9bd298237e591f561b976e8133f6f4e6e83", + "0x71ff9b73be32122ffd6a70a588cbd249ccac73ac7a72f83ec0b78d401c418c81", + "0x78c53c51467b4d0b0ef26550cf7a68b2c7943942de61f7a9912b7c0b0f54db6d", + "0x89789136684064fb05f130c8bfd122a01cb6013d25f86f25d934037f2cd669d8", + "0x3ce94acc60c5eae9566cad245b5087992d23991f9feaec46c0225f346cfa03cd", + "0x50c61cd40ed98ddde2ec48ef25ffda3c24562efb45466944292042b7646d6ca3", + "0x3be36e840168b97cf843f1282dda75ce7f9a8417e679372fa24747a834b552f6", + "0xb89f248c0659d4fd96fdd11b700772171722e21409694fe7858035b39c3fc84b", + "0xe8e71d5c1ee9094b09643fdeafa63c93a835d4783382c0888c1a93b77cfb27b9", + "0x76e794d55c8879a16255a0454b40d194af4f70b5ac8550f782054dd12fc56d4b", + "0x3c5378f5ed3da82166086ae9df32bd01ab6319bdf69bd64a78dfa2137b869b71", + "0xda149ed42d40c0ad4ba073990c0de763f8c258cfbe087c9db9a5c68ef363739b", + "0x1abdceaecc72ddc6f8058499c951913c9c683d0e68199e0d1646c9df9979bb1d", + "0x46115955203391608cc6633d875c27f2bba1bcb32a5b9a79a617d78e2f15ec6b", + "0x3b1af0c7c51cb1f08fff39c89e064d002d4573760f233d833b6d9f907cff243e", + "0xb4867bc77f1e7d54dd48be67197a8611017f53bc480573c0bd557eb2b8d1865d", + "0x79d41e27c5c3cab17658716e82fdff2bd18c39a37ff7f402b2f071e76efef237", + "0x1c47d6d1ada15f750a3fe992beada41d7698a0ae73fb3ff51d3a83c780b1bee8", + "0x6414f39c9a9aef62156b57044cacef12fb99ccde6944a53c28c9c7f59130c639", + "0xdca75dcbdc8531dfd2640c9f7979abd79a3e58c5e71f319d6aa63f1297e12637", + "0xbc82fd24e1be8bc9f7032a6bfafc482eed796460b3c76cfb482b67408db0a446", + "0x2a45e46666de9e8bc3d396917cbde99a6a0d859e64cc5e9ad8d67dfccbb06a1b", + "0xe4b24c21a7f23f5455f183b5d6b37137ae08c5bbad57851b2072601db62cb50d", + "0xd2cbfc68cb6060ceb677e4da6e21f56a6b086770b6f0d3717affdfada42ed799", + "0xa2942b6aa19abeb697ddedca8be248539c48ef596e08bcda26db0ba2bd5c95e3", + "0xa00ee5291426662b965577851d2f63639d30ba9b089431315cd51b0ea78171aa", + "0x057555a06a0f1faaeb2bc0c6e92d0a95336fd557271b720841cb99e2e0ce01cb", + "0x354d717988880d99017c7af5bcd9a98d2e24db9a9b66b802f374f074ea50651d", + "0x4a076d92f54d83551475bd3a00b6fbd0428a84da527a8d1529463c3697a148cf", + "0x7a0277376b4ff3e14916db4638440940a16cdfc37319c1696e4c6df1bd59c4b8", + "0x1e7b550fcf6a76237398d884f8b020c0f776a8e65b9b1ad1170dfaf69aebded1", + "0x44f458cfd9cbe3a376e75cf5bc43445ceec5c170e2155295350bb4c57ca73ada", + "0x3a130c2e4e95ff6f630797c2f2b2e6433e06979f965ecd4a170ec5c6d22d7748", + "0xa347b7de97da63b80adcb295a1c95f3cf836a0df9bc283c9710b799c00dd0b6b", + "0xa356c10c4e099212258c6f2fdae513032556c2a380814403900c6c0711d4b917", + "0xdd428412cbb7a32c3e7dc5c056db0827cb49fa8c83d984a998f32e15c3d73b48", + "0x40f61ff284733593a7b54896381e5364a054b9e7b1eb0d9b22e479f2468344d4", + "0x2fb5c179fdf142c2af4b2863cfc9b5a42dea7ed637a0f2c39d3af3b32c46c5e5", + "0x7d430b09e2ce51282117040927af580293f7704e9095bf4265797be7af55ee8c", + "0x7c62b0144ef255f729364ffa1b0e7f20ca4c87283618030c226fc0847855de1f", + "0x82deccd92a405b56f62d988c41d2418dd64324882eca967d8260e12cfcecb5db", + "0xbb8854151124237467e120b904244231ffb7f0342d742b0242a430c2ca587072", + "0xce988c73306b3671f018ad630800a6d70c6884ecfc84d172598581f31f5b0f48", + "0x4e5617a802f9a6ea3ec57138152a30a9791f6bc30cbb372a61e02258d5c1f5f1", + "0x8a4460e937b89c2b5ffa6e478a6f9ccc665870f313a7a06abdc82185adc1e296", + "0x429b9600e6a12bc746d21d3ee2ac76c559b5f06ab3e0f5f3b4c8f4504af965f9", + "0x6e8bd561662bf27835053957e56d9b510989efee68ac5cdb8571e9e649f10b63", + "0x4512b87f62323c6c8ade9fa56741823da2ef1f49e3fc76a6ab7a2b47026ad7f4", + "0x7315fc8e86ae2843394ebacbb40440eb66b5f3bf82d5d2a96741df5dce358038", + "0x860445348840ec438748ac4c579a33bf8f16a9922ca53bdac6aa09913d162564", + "0x0ba965c543ba155ebbbbd8bff4c5c63acf221790dd30c7be4bde078bab46dc06", + "0xe814f4ca631d612d0412b7c2c6723d351b2eb19b8563713925b033c676d87cc2", + "0xa3932c3653a210ab39a21127bb8ee97dae95c5bad9910a69bfbaed7b4ab9105b", + "0xbdff1e151c0d0ccd5c6a3be48030f5f905d06169cfe43f8dc1fc715270474344", + "0xe56765c9bc310b26996b60d030e45f7984bd641747e9520b2624f2b58a577f9e", + "0x58d51a1fda0740b191b91880f30035af7db135b54eceb7d1d064653368c39da3", + "0xe6c34027035fb35aefa0796d5714154526affa7bff1e926ccf23aaadc5a251ec", + "0x601023137408602a0d3f62c932de6f62b32372be2ff3e9508b77397e9c7b203e", + "0xbb51e1752b3a324f874ecacda5e4854778d08c976757aabe0d33f9eebce5b69f", + "0x648036ab2ef5c981d11bb45fc110d8c4effe00c6d06646e2df9f04c33b415829", + "0xf0400163aeda772b0139a4e69102589f143e9f23bda49bdc12e2609cc29c74c6", + "0x8d6227386788f4dbad5d8c43d575a627818648d258c03f0025aae5783659ae71", + "0xefa8513731cee73816c0b6168cb25153d29fe6940c1b30db971e1e53b0f59213", + "0x229da5c4b9c46829a93df8ae4bb34b6bf20c37644655277af3ec4b3ccb070351", + "0xca855b6710defa8e20942d981abb9a3a124f76b420ba48e5af32639ed14f8e1c", + "0xdb6e06723e801af3bb9432d02ca8136965dda7f37c592720c8dc7ac4a0c0d45a", + "0xea83e25432f45a0231993ef7b784d200cbb0f4d068d1ffd7c8652b9f1b3da061", + "0x9c6d1a2ac894a2e8f7cbe140d2f251fb454ca77d5b7c64c700bf02b08566032e", + "0x3a59d6738a9f712ed31740f4f211f926febc652ac65d39c768cc15ce6548ac29", + "0xe71d46072083ffc7b5ac292ae827019cb5cfaa335ad9b0717f6b4cd4c002e26b", + "0x0ab071ba6eb8197f56f5d7de6070c05774aec92fe3e38775dbe31b956c20de81", + "0x86e0d7fa597d2bc87b6e09714e2d9adcbf4ace67355414ba5b6cea23c747c0ca", + "0x70a095353bd4ecc77ae6253c93181c0c8880ed57ce5bf2ade7f75c3995ab53b7", + "0x273b6e8f768ce9478e9ca94a5c158ca1152698e89259ebcdefd9bcbb6ca1b28b", + "0xaf59d7b76771c5e8b3ad2f3965b81ed284d47ee892b69b991575f51f9024d82d", + "0x977a7259893512c087f602414f2c5498b52ac4a2283e5d9baba0e7e9d6074477", + "0x69f698ec8280e85baa7ee877652d6eb93281bc68fea8c778624c048113404e85", + "0x3a8e1bb449663fcc1afbf67899e136e3460f3a97fd87e2f2c9cf368ac605527c", + "0xa2656346c9cc287bc1f8697a4906310551f47a24da135467862eacf79f196f76", + "0xf6c099ca0d8d507610a3f549c53515ee11a9c4e55f8474131d3f247e6441d11e", + "0xdb6eb9df15e4da3163d93941524f16766a76be38d4967118c20b2a242e80e22e", + "0x6dc9cd38fb172a6a89672cb36be5fc994d16a126613b94433fe79e10945b3020", + "0xf3b8cd2494813f37bffae61f62a24c1be79e3a9473a556c53bc22ad305640d37", + "0xf1ec74d51276ceb47d5300db099b2729041244c16b1c7d5a9270815e4b2ad87b", + "0xbdb2440940a26dbe21a1e678e6ef5c133ed25f05a70055e52b961aa205dad7a6", + "0xc8e608b563a7af270682b2a5607c03a3e773792b1d59b42c9307d2de0b2287a2", + "0x204766659f1238b1084cf4be97ec53b579be09106ae5252ea6120561e7fa7e80", + "0x7b83846cb399dd5ce6ca56fc96188c5ec78b1c8175f1ca46f8f8ef562630783e", + "0xfc894212ea9bbc5972bc530b6ab7ed40aa7398e8cea35518701e21aaf5225812", + "0xb246a8d3f998bc40fc2862d6d065ac490fe0b8cbe6dc76b11ee9a7d14408864b", + "0xe9391a5600ebda987d96226f776f66d2d9a9ae6dcd61fbe40e2776cea2362165", + "0xf50492c1e56ff3fe1b499732d8e04be8dfe5c16326d31ff77ed9fbfab28ba3ea", + "0x160d294e2166b84c7b39e065b5420f75b845a3e2ca91601a47e86c492253c1a7", + "0x6fa516586c76584db45fa37f1c5c0ab7b7695d4f274ec1a794f88c408c6a9e86", + "0x38b23e425dcca799a06c70d8d4cdb15aeafb16df6b906e1459c9d2c09b00ff3b", + "0x6ccf588a93524bed61c1515129f9cbf228ead29ae4b019783af7ab043c216e72", + "0x3eb9bd1119bcea770e589c55646975e0ea7a825b7b18e27c4a397f98cb3fc072", + "0x18a6d2f8a33c0671304ed13e6b5d49098c95ad9084249d1e495bd3f5c5f8283f", + "0x4401e98be2f7bc8fb46f912d75d4918a03ddeb49c9c9f117bd92565e58a8469e", + "0x55ac69ff9f1a9bd7f88d9758ea891501844b3a932a15d8a4fdcb7ba2c1084495", + "0x3c7fa8eea9e6b19f49803ce3d3926dca64eae46a46d9a658919bae2c0d94b71d", + "0x1130c450d59983001032f00f934f838b20bb1520ff667de9bd8784b892bb6336", + "0xabdfb3d27da751c199289d132e29025923dd47efed222047b43e1584b3937da4", + "0xcfc39333669c6bb5506b2400bd0b682202a8397b9a369f597628c8c2ff62771d", + "0xa24e1607bf874ce72a9a237fc0604836287a2254b6bedc8befc20ca112f3f0b2", + "0x837ce20fe8b6184ec57972d5e9214a0f7e87822fa8e87c293645bbf095ef7a3b", + "0x25e11a9811c15fa64eb38bae5bf9c28d0135fda07185f68e668fbf1a9845970a", + "0x9bc56ef616eb63be18c96e479a4ff1b9b19c3e5874a7faf31d8a890964a507e9", + "0xdd1a5ac21a1acc161f4c73aa56ceac6dd90720cb4e293f15b6a2869d9a5d7501", + "0xd2474ed9bcc5145772ac21309b3bf461201ec85a13cc4b2503efebfe42f8aa9f", + "0xb90dde4373058caa2f5e402268b7c68486939369c062fe189b77d6ab73c96614", + "0x380ace11ada254f8c85083fde6e750ed01d2fab1409450ecf90311c16fc7154b", + "0x82ed384914a2d06ed9a3f9627b75c5329cea39b47667bc27b0c9815154b3c07c", + "0x71871257062f2de58dfe19330339c332eb336b509a3950c9f55210d702459f03", + "0x40a19295674bc11d2c5e28ee7ba584bf13cec92b709dc6d903f799871d4d5b16", + "0x76aa47f9816d3f2769edd4c605203fdbf732006664239e70ee8f46fc0bea693a", + "0xbdc813957728ae825aa3f11f0a518423cb563bd03535d8a8c017af39edd93305", + "0xea13b4df207c200a948fee3403af558b37c8ed660921268d3cd670bab7861404", + "0x98782d2a94d2eaff161ff7175580e794db2dd18ed9ed60431a3c663568ad6ce7", + "0x2f4e2925fd598937c5f268487ab6bcf07130403fdbad2a5422c9efd42bcb4413", + "0x7acf29b8b50a40e5879790dab398203f7a6d459947629624a09927d72a1c8876", + "0x2d08ef96ce1a6b2478b8ae9f442b14156b0a998f9c7e3778e0ab6f556bbcb5d6", + "0x7418de8e710dd6bb61c7559f581525b654b1950efebc62a18b71938ed2e70370", + "0x849c7c76b4a8f8d9090703f09a770fcd90458b99f099fb3f6802724f09782ae6", + "0x5fc720cfff22ef360b7ee9c1630137198a31166716a127c5cee0ebfa14e76719", + "0xd9b4dca033dbc28e1ef2a13d50fc550f18836eaef9d05bc6685fe9d531763a2f", + "0xe70dc6fe376311d6670e956d259af7d8a9c71ca90254849b0b91e2e9b5d5255c", + "0x2c5761e9caf98725a4170fd68b4784dbc9390bb720cf036e7284f6e82a5ec795", + "0x6b358b969aa8c56a722ec87e786e8dfaed7af9cdc1e289ca114c3f7211c36ef0", + "0x2d3a4b11eaf0dc658c0c19956edb0d60163f48198202784c33e992c706453ac4", + "0xda5a12aef28cbd95fb7f0f8041d26bc3cf11bb07a482426052d978f7715dacda", + "0x7d22ed949ac8b7388defd431d086dc651ef5eeb5fb7bf008b41ffeef577fc027", + "0x9b47b1800be3d0e9b008cf10e8afa67debc21dbf6f887b7c29c53713df8ecda2", + "0x7ed432ec67586b2f518e540b5f2b67d714fec68cfe3f1a569c093d9a780119b1", + "0x5440e156e97c8493bb9f4807230a808647de9ef8e14524cb7dbc0901a40184fc" + ], + "cur_hash": "0x986385123bdb3ed5c7226b882240ee619f30fd584a32957fc27a83aa1e06673d" + }, + "withdrawals": [ + [ + "0x7e2a2fa2a064f693f0a55c5639476d913ff12d05", + "0x10cff34" + ], + [ + "0x7e2a2fa2a064f693f0a55c5639476d913ff12d05", + "0x10cd45e" + ], + [ + "0x7e2a2fa2a064f693f0a55c5639476d913ff12d05", + "0x10d357b" + ], + [ + "0x3f3a56e2e3c331929dccc2d2047a7c1ab1aa5777", + "0x10c8c89" + ], + [ + "0x3f3a56e2e3c331929dccc2d2047a7c1ab1aa5777", + "0x10e364b" + ], + [ + "0x7e2a2fa2a064f693f0a55c5639476d913ff12d05", + "0x10d2f3c" + ], + [ + "0x7e2a2fa2a064f693f0a55c5639476d913ff12d05", + "0x10d3f3d" + ], + [ + "0x7e2a2fa2a064f693f0a55c5639476d913ff12d05", + "0x10d0440" + ], + [ + "0x7e2a2fa2a064f693f0a55c5639476d913ff12d05", + "0x10d1ecf" + ], + [ + "0x7e2a2fa2a064f693f0a55c5639476d913ff12d05", + "0x8c330e4" + ], + [ + "0x7e2a2fa2a064f693f0a55c5639476d913ff12d05", + "0x10d3b7f" + ], + [ + "0x7e2a2fa2a064f693f0a55c5639476d913ff12d05", + "0x10cf447" + ], + [ + "0x7e2a2fa2a064f693f0a55c5639476d913ff12d05", + "0x10c765b" + ], + [ + "0x7e2a2fa2a064f693f0a55c5639476d913ff12d05", + "0x10d5ba7" + ], + [ + "0x7e2a2fa2a064f693f0a55c5639476d913ff12d05", + "0x10e105d" + ], + [ + "0x7e2a2fa2a064f693f0a55c5639476d913ff12d05", + "0x10d4321" + ] + ] + }, + "checkpoint_state_trie_root": "0xfbc6ef0ce50b4faed087f744cd62575a915ecd04457163c4267009ae95273ef8" + } +} \ No newline at end of file diff --git a/trace_decoder/benches/block_processing.rs b/trace_decoder/benches/block_processing.rs new file mode 100644 index 000000000..5dd49fb0f --- /dev/null +++ b/trace_decoder/benches/block_processing.rs @@ -0,0 +1,60 @@ +//! Benchmarks the processing by the decoder of a block witness obtained from a +//! node into a sequence of prover inputs ready to be sent to a prover. +//! +//! The block being processed here is the 19240650th Ethereum block +//! () containing 201 transactions and 16 withdrawals. + +use criterion::{criterion_group, criterion_main, BatchSize, Criterion}; +use serde::{Deserialize, Serialize}; +use trace_decoder::{ + processed_block_trace::ProcessingMeta, + trace_protocol::BlockTrace, + types::{CodeHash, OtherBlockData}, +}; + +#[derive(Clone, Debug, Deserialize, Serialize)] +pub struct ProverInput { + pub block_trace: BlockTrace, + pub other_data: OtherBlockData, +} + +fn resolve_code_hash_fn(_: &CodeHash) -> Vec { + todo!() +} + +fn criterion_benchmark(c: &mut Criterion) { + let bytes = std::fs::read("benches/block_input.json").unwrap(); + let prover_input: ProverInput = serde_json::from_slice(&bytes).unwrap(); + + let batch_sizes = vec![1, 2, 4, 8]; + + let mut group = c.benchmark_group("Benchmark group"); + + for batch_size in batch_sizes { + let batch_size_string = + format!("Block 19240650 processing, with batch_size = {batch_size}"); + group.bench_function(batch_size_string, |b| { + b.iter_batched( + || prover_input.clone(), + |pi| { + pi.block_trace + .into_txn_proof_gen_ir( + &ProcessingMeta::new(resolve_code_hash_fn), + prover_input.other_data.clone(), + batch_size, + ) + .unwrap() + }, + BatchSize::LargeInput, + ) + }); + } + + group.finish() +} + +criterion_group!( + name = benches; + config = Criterion::default().sample_size(10); + targets = criterion_benchmark); +criterion_main!(benches); diff --git a/trace_decoder/src/compact/compact_prestate_processing.rs b/trace_decoder/src/compact/compact_prestate_processing.rs index 84e821b8e..397be5b12 100644 --- a/trace_decoder/src/compact/compact_prestate_processing.rs +++ b/trace_decoder/src/compact/compact_prestate_processing.rs @@ -123,8 +123,8 @@ pub enum CompactParsingError { KeyError(#[from] FromHexPrefixError), /// Failure due to an incompatible version. - #[error("Incompatible version, expected: {0}, actual: {1}")] - IncompatibleVersion(u8, u8), + #[error("Incompatible version, expected one of: {0:?}, actual: {1}")] + IncompatibleVersion(Vec, u8), /// Failure due to a trie operation error. #[error("Trie operation error: {0}")] diff --git a/trace_decoder/src/decoding.rs b/trace_decoder/src/decoding.rs index 431d055f6..011cfd59f 100644 --- a/trace_decoder/src/decoding.rs +++ b/trace_decoder/src/decoding.rs @@ -144,7 +144,7 @@ impl TraceParsingError { /// An error reason for trie parsing. #[derive(Debug, Error)] pub enum TraceParsingErrorReason { - /// Failure to decode an Ethereum [Account]. + /// Failure to decode an Ethereum Account. #[error("Failed to decode RLP bytes ({0}) as an Ethereum account due to the error: {1}")] AccountDecode(String, String), @@ -188,7 +188,7 @@ impl From for TraceParsingError { } } -/// An enum to cover all Ethereum trie types (see https://ethereum.github.io/yellowpaper/paper.pdf for details). +/// An enum to cover all Ethereum trie types (see for details). #[derive(Debug)] pub enum TrieType { /// State trie. @@ -496,7 +496,7 @@ impl ProcessedBlockTrace { /// If a branch collapse occurred after a delete, then we must ensure that /// the other single child that remains also is not hashed when passed into - /// plonky2. Returns the key to the remaining child if a collapse occured. + /// plonky2. Returns the key to the remaining child if a collapse occurred. fn delete_node_and_report_remaining_key_if_branch_collapsed( trie: &mut HashedPartialTrie, delete_k: &Nibbles, @@ -594,7 +594,7 @@ impl ProcessedBlockTrace { let withdrawal_addrs = withdrawals_with_hashed_addrs_iter().map(|(_, h_addr, _)| h_addr); last_inputs.tries.state_trie = create_minimal_state_partial_trie( - &last_inputs.tries.state_trie, + &final_trie_state.state, withdrawal_addrs, iter::empty(), )?; diff --git a/trace_decoder/src/lib.rs b/trace_decoder/src/lib.rs index ff83fe4eb..f154bcd91 100644 --- a/trace_decoder/src/lib.rs +++ b/trace_decoder/src/lib.rs @@ -116,6 +116,12 @@ #![deny(missing_debug_implementations)] #![deny(missing_docs)] +#[cfg(doc)] +use { + trace_protocol::{BlockTrace, TxnInfo}, + types::OtherBlockData, +}; + /// Provides debugging tools and a compact representation of state and storage /// tries, used in tests. pub mod compact; diff --git a/trace_decoder/src/processed_block_trace.rs b/trace_decoder/src/processed_block_trace.rs index 47e5cf005..905a87ddb 100644 --- a/trace_decoder/src/processed_block_trace.rs +++ b/trace_decoder/src/processed_block_trace.rs @@ -33,7 +33,7 @@ pub(crate) struct ProcessedBlockTrace { pub(crate) withdrawals: Vec<(Address, U256)>, } -const COMPATIBLE_HEADER_VERSION: u8 = 1; +const COMPATIBLE_HEADER_VERSIONS: [u8; 2] = [0, 1]; impl BlockTrace { /// Processes and returns the [GenerationInputs] for all transactions in the @@ -85,9 +85,17 @@ impl BlockTrace { }) .collect(); + let code_db = { + let mut code_db = self.code_db.unwrap_or_default(); + if let Some(code_mappings) = pre_image_data.extra_code_hash_mappings { + code_db.extend(code_mappings); + } + code_db + }; + let mut code_hash_resolver = CodeHashResolving { client_code_hash_resolve_f: &p_meta.resolve_code_hash_fn, - extra_code_hash_mappings: pre_image_data.extra_code_hash_mappings.unwrap_or_default(), + extra_code_hash_mappings: code_db, }; let last_tx_idx = self.txn_info.len().saturating_sub(1) / batch_size; @@ -198,17 +206,26 @@ fn process_single_combined_storage_tries( } fn process_multiple_storage_tries( - _tries: HashMap, + tries: HashMap, ) -> HashMap { - todo!() + tries + .into_iter() + .map(|(k, v)| match v { + SeparateTriePreImage::Uncompressed(_) => todo!(), + SeparateTriePreImage::Direct(t) => (k, t.0), + }) + .collect() } fn process_compact_trie(trie: TrieCompact) -> CompactParsingResult { let out = process_compact_prestate_debug(trie)?; - if !out.header.version_is_compatible(COMPATIBLE_HEADER_VERSION) { + if !COMPATIBLE_HEADER_VERSIONS + .iter() + .any(|&v| out.header.version_is_compatible(v)) + { return Err(CompactParsingError::IncompatibleVersion( - COMPATIBLE_HEADER_VERSION, + COMPATIBLE_HEADER_VERSIONS.to_vec(), out.header.version, )); } diff --git a/trace_decoder/src/trace_protocol.rs b/trace_decoder/src/trace_protocol.rs index 1035c13b8..7d76797bd 100644 --- a/trace_decoder/src/trace_protocol.rs +++ b/trace_decoder/src/trace_protocol.rs @@ -4,7 +4,7 @@ //! generation latency & throughput, the overall priority of this protocol is //! ease of implementation for clients. The flexibility comes from giving //! multiple ways to the client to provide the data for the protocol, where the -//! implementors can pick whichever way is the most convenient for them. +//! implementers can pick whichever way is the most convenient for them. //! //! It might not be obvious why we need traces for each txn in order to generate //! proofs. While it's true that we could just run all the txns of a block in an @@ -37,18 +37,22 @@ use crate::{ /// Core payload needed to generate a proof for a block. Note that the scheduler /// may need to request some additional data from the client along with this in /// order to generate a proof. -#[derive(Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] pub struct BlockTrace { /// The trie pre-images (state & storage) in multiple possible formats. pub trie_pre_images: BlockTraceTriePreImages, + /// The code_db is a map of code hashes to the actual code. This is needed + /// to execute transactions. + pub code_db: Option>>, + /// Traces and other info per txn. The index of the txn corresponds to the /// slot in this vec. pub txn_info: Vec, } /// Minimal hashed out tries needed by all txns in the block. -#[derive(Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] #[serde(rename_all = "snake_case")] pub enum BlockTraceTriePreImages { /// The trie pre-image with separate state/storage tries. @@ -58,7 +62,7 @@ pub enum BlockTraceTriePreImages { } /// State/Storage trie pre-images that are separate. -#[derive(Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] pub struct SeparateTriePreImages { /// State trie. pub state: SeparateTriePreImage, @@ -67,7 +71,7 @@ pub struct SeparateTriePreImages { } /// A trie pre-image where state & storage are separate. -#[derive(Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] #[serde(rename_all = "snake_case")] pub enum SeparateTriePreImage { /// Storage or state trie in a bulkier format, that can be processed faster. @@ -78,7 +82,7 @@ pub enum SeparateTriePreImage { } /// A trie pre-image where both state & storage are combined into one payload. -#[derive(Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] #[serde(rename_all = "snake_case")] pub struct CombinedPreImages { /// Compact combined state and storage tries. @@ -87,23 +91,23 @@ pub struct CombinedPreImages { // TODO /// Bulkier format that is quicker to process. -#[derive(Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] pub struct TrieUncompressed {} // TODO #[serde_as] /// Compact representation of a trie (will likely be very close to ) -#[derive(Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] pub struct TrieCompact(#[serde_as(as = "FromInto")] pub Vec); // TODO /// Trie format that is in exactly the same format of our internal trie format. /// This is the fastest format for us to processes. -#[derive(Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] pub struct TrieDirect(pub HashedPartialTrie); /// A trie pre-image where state and storage are separate. -#[derive(Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] #[serde(rename_all = "snake_case")] pub enum SeparateStorageTriesPreImage { /// A single hash map that contains all node hashes from all storage tries @@ -117,7 +121,7 @@ pub enum SeparateStorageTriesPreImage { } /// Info specific to txns in the block. -#[derive(Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] pub struct TxnInfo { /// Trace data for the txn. This is used by the protocol to: /// - Mutate it's own trie state between txns to arrive at the correct trie @@ -132,7 +136,7 @@ pub struct TxnInfo { /// Structure holding metadata for one transaction. #[serde_as] -#[derive(Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] pub struct TxnMeta { /// Txn byte code. #[serde_as(as = "FromInto")] @@ -158,7 +162,7 @@ pub struct TxnMeta { /// /// Specifically, since we can not execute the txn before proof generation, we /// rely on a separate EVM to run the txn and supply this data for us. -#[derive(Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] pub struct TxnTrace { /// If the balance changed, then the new balance will appear here. Will be /// `None` if no change. @@ -194,7 +198,7 @@ pub struct TxnTrace { /// Contract code access type. Used by txn traces. #[serde_as] -#[derive(Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] #[serde(rename_all = "snake_case")] pub enum ContractCodeUsage { /// Contract was read. diff --git a/zero_bin/.cargo/config.toml b/zero_bin/.cargo/config.toml new file mode 100644 index 000000000..f4ac0fbdd --- /dev/null +++ b/zero_bin/.cargo/config.toml @@ -0,0 +1,4 @@ +[env] +# read/write to/from files relative to the workspace even when running in this +# directory +CARGO_WORKSPACE_DIR = { value = "", relative = true } diff --git a/zero_bin/.gitignore b/zero_bin/.gitignore new file mode 100644 index 000000000..ab214fd70 --- /dev/null +++ b/zero_bin/.gitignore @@ -0,0 +1,15 @@ +# Default extension for generated block proofs +*.zkproof + +# Folder containing all the locally generated circuit data +circuits/ + +# Folders containing logs from the utility scripts in tools/ +debug/ +proofs/ + +# Files generated from the tools script tests +test.out +proofs.json +verify.out +leader.out diff --git a/zero_bin/README.md b/zero_bin/README.md new file mode 100644 index 000000000..aecba5dee --- /dev/null +++ b/zero_bin/README.md @@ -0,0 +1,464 @@ +# Zero Bin + +A composition of [`paladin`](https://github.com/0xPolygonZero/paladin) and [`plonky-block-proof-gen`](https://github.com/0xPolygonZero/plonky-block-proof-gen). Given the [proof generation protocol](/prover/src/lib.rs) as input, generate a proof. The project is instrumented with [`paladin`](https://github.com/0xPolygonZero/paladin), and as such can distribute proof generation across multiple worker machines. + +- [Zero Bin](#zero-bin) + - [Project layout](#project-layout) + - [Ops](#ops) + - [Worker](#worker) + - [Leader](#leader) + - [RPC](#rpc) + - [Verifier](#verifier) + - [Leader Usage](#leader-usage) + - [stdio](#stdio) + - [Jerigon](#jerigon) + - [HTTP](#http) + - [Paladin Runtime](#paladin-runtime) + - [Starting an AMQP enabled cluster](#starting-an-amqp-enabled-cluster) + - [Start worker(s)](#start-workers) + - [Start leader](#start-leader) + - [Starting an in-memory (single process) cluster](#starting-an-in-memory-single-process-cluster) + - [Verifier Usage](#verifier-usage) + - [RPC Usage](#rpc-usage) + - [Docker](#docker) + - [Development Branches](#development-branches) + - [Testing Blocks](#testing-blocks) + - [Proving Blocks](#proving-blocks) + - [Generating Witnesses Only](#generating-witnesses-only) + - [License](#license) + - [Contribution](#contribution) + +## Project layout + +``` +ops +├── Cargo.toml +└── src + └── lib.rs +worker +├── Cargo.toml +└── src + └── main.rs +leader +├── Cargo.toml +└── src + └── main.rs +rpc +├── Cargo.toml +└── src + └── main.rs +verifier +├── Cargo.toml +└── src + └── main.rs +``` + +### Ops + +Defines the proof operations that can be distributed to workers. + +### Worker + +The worker process. Receives proof operations from the leader, and returns the result. + +### Leader + +The leader process. Receives proof generation requests, and distributes them to workers. + +### RPC + +A binary to generate the block trace format expected by the leader. + +### Verifier + +A binary to verify the correctness of the generated proof. + +## Leader Usage + +The leader has various subcommands for different io modes. The leader binary arguments are as follows: + +``` +cargo r --release --bin leader -- --help + +Usage: leader [OPTIONS] + +Commands: + stdio Reads input from stdin and writes output to stdout + jerigon Reads input from a Jerigon node and writes output to stdout + native Reads input from a native node and writes output to stdout + http Reads input from HTTP and writes output to a directory + help Print this message or the help of the given subcommand(s) + +Options: + -h, --help + Print help (see a summary with '-h') + +Paladin options: + -t, --task-bus-routing-key + Specifies the routing key for publishing task messages. In most cases, the default value should suffice + + [default: task] + + -s, --serializer + Determines the serialization format to be used + + [default: postcard] + [possible values: postcard, cbor] + + -r, --runtime + Specifies the runtime environment to use + + [default: amqp] + [possible values: amqp, in-memory] + + -n, --num-workers + Specifies the number of worker threads to spawn (in memory runtime only) + + --amqp-uri + Provides the URI for the AMQP broker, if the AMQP runtime is selected + + [env: AMQP_URI=amqp://localhost:5672] + +Table circuit sizes: + --persistence + [default: disk] + + Possible values: + - none: Do not persist the processed circuits + - disk: Persist the processed circuits to disk + + --arithmetic + The min/max size for the arithmetic table circuit. + + [env: ARITHMETIC_CIRCUIT_SIZE=16..22] + + --byte-packing + The min/max size for the byte packing table circuit. + + [env: BYTE_PACKING_CIRCUIT_SIZE=10..22] + + --cpu + The min/max size for the cpu table circuit. + + [env: CPU_CIRCUIT_SIZE=15..22] + + --keccak + The min/max size for the keccak table circuit. + + [env: KECCAK_CIRCUIT_SIZE=14..22] + + --keccak-sponge + The min/max size for the keccak sponge table circuit. + + [env: KECCAK_SPONGE_CIRCUIT_SIZE=9..22] + + --logic + The min/max size for the logic table circuit. + + [env: LOGIC_CIRCUIT_SIZE=12..22] + + --memory + The min/max size for the memory table circuit. + + [env: MEMORY_CIRCUIT_SIZE=18..22] +``` + +Note that both paladin and plonky2 table circuit sizes are configurable via command line arguments and environment variables. The command line arguments take precedence over the environment variables. + +**TABLE CIRCUIT SIZES ARE _ONLY_ RELEVANT FOR THE LEADER WHEN RUNNING IN `in-memory` MODE**. + +If you want to configure the table circuit sizes when running in a distributed environment, you must configure the table circuit sizes on the worker processes (the command line arguments are the same). + +### stdio + +The stdio command reads proof input from stdin and writes output to stdout. + +``` +cargo r --release --bin leader stdio --help + +Reads input from stdin and writes output to stdout + +Usage: leader stdio [OPTIONS] + +Options: + -f, --previous-proof The previous proof output + -h, --help Print help +``` + +Pull prover input from the rpc binary. + +```bash +cargo r --release --bin rpc fetch --rpc-url -b 6 > ./input/block_6.json +``` + +Pipe the block input to the leader binary. + +```bash +cat ./input/block_6.json | cargo r --release --bin leader -- -r in-memory stdio > ./output/proof_6.json +``` + +### Jerigon + +The Jerigon command reads proof input from a Jerigon node and writes output to stdout. + +``` +cargo r --release --bin leader jerigon --help + +Reads input from a Jerigon node and writes output to stdout + +Usage: leader jerigon [OPTIONS] --rpc-url --block-interval + +Options: + -u, --rpc-url + + -i, --block-interval + The block interval for which to generate a proof + -c, --checkpoint-block-number + The checkpoint block number [default: 0] + -f, --previous-proof + The previous proof output + -o, --proof-output-dir + If provided, write the generated proofs to this directory instead of stdout + -s, --save-inputs-on-error + If true, save the public inputs to disk on error + -b, --block-time + Network block time in milliseconds. This value is used to determine the blockchain node polling interval [env: ZERO_BIN_BLOCK_TIME=] [default: 2000] + -k, --keep-intermediate-proofs + Keep intermediate proofs. Default action is to delete them after the final proof is generated [env: ZERO_BIN_KEEP_INTERMEDIATE_PROOFS=] + --backoff + Backoff in milliseconds for request retries [default: 0] + --max-retries + The maximum number of retries [default: 0] + -h, --help + Print help +``` + +Prove a block. + +```bash +cargo r --release --bin leader -- -r in-memory jerigon -u -b 16 > ./output/proof_16.json +``` + +### Native + +The native command reads proof input from a native node and writes output to stdout. + +``` +cargo r --release --bin leader native --help + +Reads input from a native node and writes output to stdout + +Usage: leader native [OPTIONS] --rpc-url --block-interval + +Options: + -u, --rpc-url + + -i, --block-interval + The block interval for which to generate a proof + -c, --checkpoint-block-number + The checkpoint block number [default: 0] + -f, --previous-proof + The previous proof output + -o, --proof-output-dir + If provided, write the generated proofs to this directory instead of stdout + -s, --save-inputs-on-error + If true, save the public inputs to disk on error + -b, --block-time + Network block time in milliseconds. This value is used to determine the blockchain node polling interval [env: ZERO_BIN_BLOCK_TIME=] [default: 2000] + -k, --keep-intermediate-proofs + Keep intermediate proofs. Default action is to delete them after the final proof is generated [env: ZERO_BIN_KEEP_INTERMEDIATE_PROOFS=] + --backoff + Backoff in milliseconds for request retries [default: 0] + --max-retries + The maximum number of retries [default: 0] + -h, --help + Print help +``` + +Prove a block. + +```bash +cargo r --release --bin leader -- -r in-memory native -u -b 16 > ./output/proof_16.json +``` + +### HTTP + +The HTTP command reads proof input from HTTP and writes output to a directory. + +``` +cargo r --release --bin leader http --help + +Reads input from HTTP and writes output to a directory + +Usage: leader http [OPTIONS] --output-dir + +Options: + -p, --port The port on which to listen [default: 8080] + -o, --output-dir The directory to which output should be written + -h, --help Print help +``` + +Pull prover input from the rpc binary. + +```bash +cargo r --release --bin rpc fetch -u -b 6 > ./input/block_6.json +``` + +Start the server. + +```bash +RUST_LOG=debug cargo r --release --bin leader http --output-dir ./output +``` + +Note that HTTP mode requires a [slightly modified input format](./leader/src/http.rs#L56) from the rest of the commands. In particular, [the previous proof is expected to be part of the payload](./leader/src/http.rs#L58). This is due to the fact that the HTTP mode may handle multiple requests concurrently, and thus the previous proof cannot reasonably be given by a command line argument like the other modes. + +Using `jq` we can merge the previous proof and the block input into a single JSON object. + +```bash +jq -s '{prover_input: .[0], previous: .[1]}' ./input/block_6.json ./output/proof_5.json | curl -X POST -H "Content-Type: application/json" -d @- http://localhost:8080/prove +``` + +### Paladin Runtime + +Paladin supports both an AMQP and in-memory runtime. The in-memory runtime will emulate a cluster in memory within a single process, and is useful for testing. The AMQP runtime is geared for a production environment. The AMQP runtime requires a running AMQP broker and spinning up worker processes. The AMQP uri can be specified with the `--amqp-uri` flag or be set with the `AMQP_URI` environment variable. + +#### Starting an AMQP enabled cluster + +Start rabbitmq + +```bash +docker run --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management +``` + +##### Start worker(s) + +Start worker process(es). The default paladin runtime is AMQP, so no additional flags are required to enable it. + +```bash +RUST_LOG=debug cargo r --release --bin worker +``` + +##### Start leader + +Start the leader process with the desired [command](#leader-usage). The default paladin runtime is AMQP, so no additional flags are required to enable it. + +```bash +RUST_LOG=debug cargo r --release --bin leader jerigon -u -b 16 > ./output/proof_16.json +``` + +#### Starting an in-memory (single process) cluster + +Paladin can emulate a cluster in memory within a single process. Useful for testing purposes. + +```bash +cat ./input/block_6.json | cargo r --release --bin leader -- -r in-memory stdio > ./output/proof_6.json +``` + +## Verifier Usage + +A verifier binary is provided to verify the correctness of the generated proof. The verifier expects output in the format generated by the leader. The verifier binary arguments are as follows: + +``` +cargo r --bin verifier -- --help + +Usage: verifier --file-path + +Options: + -f, --file-path The file containing the proof to verify + -h, --help Print help +``` + +Example: + +```bash +cargo r --release --bin verifier -- -f ./output/proof_16.json +``` + +## RPC Usage + +An rpc binary is provided to generate the block trace format expected by the leader. + +``` +cargo r --bin rpc -- --help + +Usage: rpc + +Commands: + fetch Fetch and generate prover input from the RPC endpoint + help Print this message or the help of the given subcommand(s) + +Options: + -h, --help Print help +``` + +Example: + +```bash +cargo r --release --bin rpc fetch --start-block --end-block --rpc-url --block-number 16 > ./output/block-16.json +``` + +## Docker + +Docker images are provided for both the [leader](leader.Dockerfile) and [worker](worker.Dockerfile) binaries. + +## Development Branches + +There are three branches that are used for development: + +- `main` --> Always points to the latest production release +- `develop` --> All PRs should be merged into this branch +- `testing` --> For testing against the latest changes. Should always point to the `develop` branch for the `zk_evm` deps + +## Testing Blocks + +For testing proof generation for blocks, the `testing` branch should be used. + +### Proving Blocks + +If you want to generate a full block proof, you can use `tools/prove_rpc.sh`: + +```sh +./prove_rpc.sh +``` + +Which may look like this: + +```sh +./prove_rpc.sh 17 18 http://127.0.0.1:8545 jerigon false +``` + +Which will attempt to generate proofs for blocks `17` & `18` consecutively and incorporate the previous block proof during generation. + +A few other notes: + +- Proving blocks is very resource intensive in terms of both CPU and memory. You can also only generate the witness for a block instead (see [Generating Witnesses Only](#generating-witnesses-only)) to significantly reduce the CPU and memory requirements. +- Because incorporating the previous block proof requires a chain of proofs back to the last checkpoint height, you can also disable this requirement by passing `true` for `` (which internally just sets the current checkpoint height to the previous block height). + +### Generating Witnesses Only + +If you want to test a block without the high CPU & memory requirements that come with creating a full proof, you can instead generate only the witness using `tools/prove_rpc.sh` in the `test_only` mode: + +```sh +./prove_rpc.sh test_only +``` + +Filled in: + +```sh +./prove_rpc.sh 18299898 18299899 http://34.89.57.138:8545 jerigon true 0 0 test_only +``` + +Finally, note that both of these testing scripts force proof generation to be sequential by allowing only one worker. Because of this, this is not a realistic representation of performance but makes the debugging logs much easier to follow. + +## License + +Licensed under either of + +- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) +- MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) + +at your option. + +### Contribution + +Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. diff --git a/zero_bin/common/Cargo.toml b/zero_bin/common/Cargo.toml new file mode 100644 index 000000000..7c24b21b4 --- /dev/null +++ b/zero_bin/common/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "zero_bin_common" +authors = ["Polygon Zero "] +version = "0.1.0" +edition.workspace = true +license.workspace = true +repository.workspace = true +keywords.workspace = true +categories.workspace = true + +[dependencies] +thiserror = { workspace = true } +trace_decoder = { workspace = true } +tracing = { workspace = true } +proof_gen = { workspace = true } +plonky2 = { workspace = true } +evm_arithmetization = { workspace = true } +clap = { workspace = true } +anyhow = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +futures = { workspace = true } +tokio = { workspace = true } +alloy = { workspace = true } +async-stream = { workspace = true } diff --git a/zero_bin/common/src/block_interval.rs b/zero_bin/common/src/block_interval.rs new file mode 100644 index 000000000..dfb307c93 --- /dev/null +++ b/zero_bin/common/src/block_interval.rs @@ -0,0 +1,272 @@ +use alloy::primitives::B256; +use alloy::rpc::types::eth::BlockId; +use alloy::{hex, providers::Provider, transports::Transport}; +use anyhow::{anyhow, Result}; +use async_stream::try_stream; +use futures::Stream; +use tracing::info; + +use crate::parsing; + +const DEFAULT_BLOCK_TIME: u64 = 1000; + +/// Range of blocks to be processed and proven. +#[derive(Debug, PartialEq, Clone)] +pub enum BlockInterval { + // A single block id (could be number or hash) + SingleBlockId(BlockId), + // A range of blocks. + Range(std::ops::Range), + // Dynamic interval from the start block to the latest network block + FollowFrom { + // Interval starting block number + start_block: u64, + // Block time specified in milliseconds. + // If not set, use the default block time to poll node. + block_time: Option, + }, +} + +impl BlockInterval { + /// Create a new block interval + /// + /// A valid block range is of the form: + /// * `block_number` for a single block number + /// * `lhs..rhs`, `lhs..=rhs` as an exclusive/inclusive range + /// * `lhs..` for a range starting from `lhs` to the chain tip. `lhs..=` + /// is also valid format. + /// + /// # Example + /// + /// ```rust + /// # use alloy::rpc::types::eth::BlockId; + /// # use zero_bin_common::block_interval::BlockInterval; + /// assert_eq!(BlockInterval::new("0..10").unwrap(), BlockInterval::Range(0..10)); + /// assert_eq!(BlockInterval::new("0..=10").unwrap(), BlockInterval::Range(0..11)); + /// assert_eq!(BlockInterval::new("32141").unwrap(), BlockInterval::SingleBlockId(BlockId::Number(32141.into()))); + /// assert_eq!(BlockInterval::new("100..").unwrap(), BlockInterval::FollowFrom{start_block: 100, block_time: None}); + /// ``` + pub fn new(s: &str) -> anyhow::Result { + if (s.starts_with("0x") && s.len() == 66) || s.len() == 64 { + // Try to parse hash + let hash = s + .parse::() + .map_err(|_| anyhow!("invalid block hash '{s}'"))?; + return Ok(BlockInterval::SingleBlockId(BlockId::Hash(hash.into()))); + } + + // First we parse for inclusive range and then for exclusive range, + // because both separators start with `..` + if let Ok(range) = parsing::parse_range_inclusive(s) { + Ok(BlockInterval::Range(range)) + } else if let Ok(range) = parsing::parse_range_exclusive(s) { + Ok(BlockInterval::Range(range)) + } + // Now we look for the follow from range + else if s.contains("..") { + let mut split = s.trim().split("..").filter(|s| *s != "=" && !s.is_empty()); + + // Any other character after `..` or `..=` is invalid + if split.clone().count() > 1 { + return Err(anyhow!("invalid block interval range '{s}'")); + } + let num = split + .next() + .map(|num| { + num.parse::() + .map_err(|_| anyhow!("invalid block number '{num}'")) + }) + .ok_or(anyhow!("invalid block interval range '{s}'"))??; + return Ok(BlockInterval::FollowFrom { + start_block: num, + block_time: None, + }); + } + // Only single block number is left to try to parse + else { + let num: u64 = s + .trim() + .parse() + .map_err(|_| anyhow!("invalid block interval range '{s}'"))?; + return Ok(BlockInterval::SingleBlockId(BlockId::Number(num.into()))); + } + } + + /// Convert the block interval into an async stream of block numbers. + pub fn into_bounded_stream(self) -> anyhow::Result> { + match self { + BlockInterval::SingleBlockId(BlockId::Number(num)) => { + let num = num + .as_number() + .ok_or(anyhow!("invalid block number '{num}'"))?; + Ok(futures::stream::iter(num..num + 1)) + } + BlockInterval::Range(range) => Ok(futures::stream::iter(range)), + _ => Err(anyhow!( + "could not create bounded stream from unbounded follow-from interval", + )), + } + } + + /// Convert the block interval into an unbounded async stream of block + /// numbers. Query the blockchain node for the latest block number. + pub async fn into_unbounded_stream( + self, + provider: ProviderT, + ) -> Result>, anyhow::Error> + where + ProviderT: Provider, + TransportT: Transport + Clone, + { + match self { + BlockInterval::FollowFrom { + start_block, + block_time, + } => Ok(try_stream! { + let mut current = start_block; + loop { + let last_block_number = provider.get_block_number().await.map_err(|e: alloy::transports::RpcError<_>| { + anyhow!("could not retrieve latest block number from the provider: {e}") + })?; + + if current < last_block_number { + current += 1; + yield current; + } else { + info!("Waiting for the new blocks to be mined, requested block number: {current}, \ + latest block number: {last_block_number}"); + let block_time = block_time.unwrap_or(DEFAULT_BLOCK_TIME); + // No need to poll the node too frequently, waiting + // a block time interval for a block to be mined should be enough + tokio::time::sleep(tokio::time::Duration::from_millis(block_time)).await; + } + } + }), + _ => Err(anyhow!( + "could not create unbounded follow-from stream from fixed bounded interval", + )), + } + } +} + +impl std::fmt::Display for BlockInterval { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + match self { + BlockInterval::SingleBlockId(block_id) => match block_id { + BlockId::Number(it) => f.write_fmt(format_args!("{}", it)), + BlockId::Hash(it) => f.write_fmt(format_args!("0x{}", &hex::encode(it.block_hash))), + }, + BlockInterval::Range(range) => { + write!(f, "{}..{}", range.start, range.end) + } + BlockInterval::FollowFrom { start_block, .. } => { + write!(f, "{start_block}..") + } + } + } +} + +impl std::str::FromStr for BlockInterval { + type Err = anyhow::Error; + + fn from_str(s: &str) -> Result { + BlockInterval::new(s) + } +} + +#[cfg(test)] +mod test { + use alloy::primitives::B256; + + use super::*; + + #[test] + fn can_create_block_interval_from_exclusive_range() { + assert_eq!( + BlockInterval::new("0..10").unwrap(), + BlockInterval::Range(0..10) + ); + } + + #[test] + fn can_create_block_interval_from_inclusive_range() { + assert_eq!( + BlockInterval::new("0..=10").unwrap(), + BlockInterval::Range(0..11) + ); + } + + #[test] + fn can_create_follow_from_block_interval() { + assert_eq!( + BlockInterval::new("100..").unwrap(), + BlockInterval::FollowFrom { + start_block: 100, + block_time: None + } + ); + } + + #[test] + fn can_create_single_block_interval() { + assert_eq!( + BlockInterval::new("123415131").unwrap(), + BlockInterval::SingleBlockId(BlockId::Number(123415131.into())) + ); + } + + #[test] + fn new_interval_proper_single_block_error() { + assert_eq!( + BlockInterval::new("113A").err().unwrap().to_string(), + "invalid block interval range '113A'" + ); + } + + #[test] + fn new_interval_proper_range_error() { + assert_eq!( + BlockInterval::new("111...156").err().unwrap().to_string(), + "invalid block interval range '111...156'" + ); + } + + #[test] + fn new_interval_parse_block_hash() { + assert_eq!( + BlockInterval::new( + "0xb51ceca7ba912779ed6721d2b93849758af0d2354683170fb71dead6e439e6cb" + ) + .unwrap(), + BlockInterval::SingleBlockId(BlockId::Hash( + "0xb51ceca7ba912779ed6721d2b93849758af0d2354683170fb71dead6e439e6cb" + .parse::() + .unwrap() + .into() + )) + ) + } + + #[tokio::test] + async fn can_into_bounded_stream() { + use futures::StreamExt; + let mut result = Vec::new(); + let mut stream = BlockInterval::new("1..10") + .unwrap() + .into_bounded_stream() + .unwrap(); + while let Some(val) = stream.next().await { + result.push(val); + } + assert_eq!(result, Vec::from_iter(1u64..10u64)); + } + + #[test] + fn can_create_from_string() { + use std::str::FromStr; + assert_eq!( + &format!("{}", BlockInterval::from_str("0..10").unwrap()), + "0..10" + ); + } +} diff --git a/zero_bin/common/src/debug_utils.rs b/zero_bin/common/src/debug_utils.rs new file mode 100644 index 000000000..f8cb53dd6 --- /dev/null +++ b/zero_bin/common/src/debug_utils.rs @@ -0,0 +1,102 @@ +use std::fs::{self, File}; +use std::io::{self, Write}; +use std::path::{Path, PathBuf}; + +use serde::Serialize; +use serde_json::Error as SerdeError; +use thiserror::Error; + +const DEBUG_FOLDER: &str = "./debug"; + +/// Ensures that the specified directory exists on the filesystem. +/// +/// This function checks if the directory at `folder_path` exists. If not, it +/// attempts to create the directory. It returns an error if the path is not a +/// directory or if there are issues accessing or creating the directory. +/// +/// # Parameters +/// * `folder_path` - A reference to a `Path` that specifies the directory to +/// check or create. +/// +/// # Returns +/// * `Ok(())` - The directory exists or was successfully created. +/// * `Err(io::Error)` - The path is not a directory, or there was a problem +/// accessing or creating the directory. +fn ensure_directory_exists(folder_path: &Path) -> io::Result<()> { + match fs::metadata(folder_path) { + Ok(metadata) => { + if metadata.is_dir() { + Ok(()) // The directory already exists + } else { + Err(io::Error::new( + io::ErrorKind::AlreadyExists, + "The path exists but is not a directory", + )) + } + } + Err(e) => { + if e.kind() == io::ErrorKind::NotFound { + // Directory does not exist, try to create it + fs::create_dir(folder_path) + } else { + // Re-throw the error if it's not a 'NotFound' error + Err(e) + } + } + } +} + +/// An error type for save debug input information. +#[derive(Error, Debug)] +pub enum SaveInputError { + #[error("failed to create directory '{0}'")] + CreateDirectoryError(PathBuf, #[source] io::Error), + + #[error("failed to create file '{0}'")] + CreateFileError(PathBuf, #[source] io::Error), + + #[error("failed to serialize inputs")] + SerializationError(#[source] SerdeError), + + #[error("failed to write to file '{0}'")] + WriteToFileError(PathBuf, #[source] io::Error), +} + +/// Serializes a collection of inputs to a pretty-printed JSON format and saves +/// them to a file. +/// +/// # Arguments +/// +/// * `file_name` - The name of the file (including the extension) where the +/// serialized data will be saved. +/// * `inputs` - A collection of items to be serialized. Each item in the +/// collection must implement the `Serialize` trait. +/// +/// # Returns +/// +/// This function returns a `Result<(), std::io::Error>` indicating the +/// operation's success or failure. +pub fn save_inputs_to_disk( + file_name: String, + inputs: T, +) -> Result<(), SaveInputError> { + let debug_folder = Path::new(DEBUG_FOLDER); + let input_file_path = debug_folder.join(file_name); + + // Ensure the DEBUG_FOLDER exists + ensure_directory_exists(debug_folder) + .map_err(|e| SaveInputError::CreateDirectoryError(debug_folder.to_path_buf(), e))?; + + let mut file = File::create(&input_file_path) + .map_err(|e| SaveInputError::CreateFileError(input_file_path.clone(), e))?; + + // Serialize the entire collection to a pretty JSON string + let all_inputs_str = + serde_json::to_string_pretty(&inputs).map_err(SaveInputError::SerializationError)?; + + // Write the serialized data to the file + file.write_all(all_inputs_str.as_bytes()) + .map_err(|e| SaveInputError::WriteToFileError(input_file_path, e))?; + + Ok(()) +} diff --git a/zero_bin/common/src/fs.rs b/zero_bin/common/src/fs.rs new file mode 100644 index 000000000..7603f5100 --- /dev/null +++ b/zero_bin/common/src/fs.rs @@ -0,0 +1,7 @@ +use std::path::PathBuf; + +pub fn generate_block_proof_file_name(directory: &Option<&str>, block_height: u64) -> PathBuf { + let mut path = PathBuf::from(directory.unwrap_or("")); + path.push(format!("b{}.zkproof", block_height)); + path +} diff --git a/zero_bin/common/src/lib.rs b/zero_bin/common/src/lib.rs new file mode 100644 index 000000000..1b0b18e9b --- /dev/null +++ b/zero_bin/common/src/lib.rs @@ -0,0 +1,5 @@ +pub mod block_interval; +pub mod debug_utils; +pub mod fs; +pub mod parsing; +pub mod prover_state; diff --git a/zero_bin/common/src/parsing.rs b/zero_bin/common/src/parsing.rs new file mode 100644 index 000000000..d1452a464 --- /dev/null +++ b/zero_bin/common/src/parsing.rs @@ -0,0 +1,135 @@ +//! Parsing utilities. +use std::{fmt::Display, ops::Add, ops::Range, str::FromStr}; + +use thiserror::Error; + +#[derive(Error, Debug, PartialEq)] +pub enum RangeParseError +where + T: FromStr + Display, + T::Err: Display, +{ + #[error("empty input")] + EmptyInput, + #[error("failed to parse right hand side of range: {0}")] + RhsParseError(T::Err), + #[error("failed to parse left hand side of range: {0}. ")] + LhsParseError(T::Err), + #[error("missing left hand size of range. expecting `start..end`")] + LhsMissing, + #[error("missing right hand side of range. expecting `start..end`")] + RhsMissing, +} + +/// Parse an exclusive range from a string. +/// +/// A valid range is of the form `lhs..rhs`, where `lhs` and `rhs` are numbers. +pub(crate) fn parse_range_exclusive( + s: &str, +) -> Result, RangeParseError> +where + NumberT: Display + FromStr + From + Add, + NumberT::Err: Display, +{ + parse_range_gen(s, "..", false) +} + +/// Parse an inclusive range from a string. +/// +/// A valid range is of the form `lhs..=rhs`, where `lhs` and `rhs` are numbers. +pub(crate) fn parse_range_inclusive( + s: &str, +) -> Result, RangeParseError> +where + NumberT: Display + FromStr + From + Add, + NumberT::Err: Display, +{ + parse_range_gen(s, "..=", true) +} + +pub(crate) fn parse_range_gen( + s: &str, + separator: SeparatorT, + inclusive: bool, +) -> Result, RangeParseError> +where + NumberT: Display + FromStr + From + Add, + NumberT::Err: Display, + SeparatorT: AsRef, +{ + let mut pairs = s.split(separator.as_ref()); + match (pairs.next(), pairs.next()) { + // Empty input, "" + (Some(""), None) => Err(RangeParseError::EmptyInput), + // RHS missing, e.g., "10.." or "10" + (Some(_), None | Some("")) => Err(RangeParseError::RhsMissing), + // LHS missing, e.g., "..10" + (Some(""), _) => Err(RangeParseError::LhsMissing), + (Some(lhs), Some(rhs)) => { + let lhs = lhs.parse().map_err(RangeParseError::LhsParseError)?; + let rhs = rhs.parse().map_err(RangeParseError::RhsParseError)?; + if inclusive { + Ok(lhs..(rhs + NumberT::from(1u8))) + } else { + Ok(lhs..rhs) + } + } + // (None, _) is not possible, because split always returns at least one element. + _ => unreachable!(), + } +} + +#[cfg(test)] +mod test { + use super::*; + + #[test] + fn it_parses_exclusive_ranges() { + assert_eq!(parse_range_exclusive::("0..10"), Ok(0..10)); + } + + #[test] + fn it_parses_inclusive_ranges() { + assert_eq!(parse_range_inclusive::("0..=10"), Ok(0..11)); + } + + #[test] + fn it_handles_missing_lhs() { + assert_eq!( + parse_range_exclusive::("..10").unwrap_err(), + RangeParseError::LhsMissing + ); + } + + #[test] + fn it_handles_missing_rhs() { + assert_eq!( + parse_range_exclusive::("10..").unwrap_err(), + RangeParseError::RhsMissing + ); + } + + #[test] + fn it_handles_empty_input() { + assert_eq!( + parse_range_exclusive::("").unwrap_err(), + RangeParseError::EmptyInput + ); + } + + #[test] + fn it_handles_rhs_parse_error() { + assert_eq!( + parse_range_exclusive::("10..f").unwrap_err(), + RangeParseError::RhsParseError("f".parse::().unwrap_err()) + ); + } + + #[test] + fn it_handles_lhs_parse_error() { + assert_eq!( + parse_range_exclusive::("hello..10").unwrap_err(), + RangeParseError::LhsParseError("hello".parse::().unwrap_err()) + ); + } +} diff --git a/zero_bin/common/src/prover_state/circuit.rs b/zero_bin/common/src/prover_state/circuit.rs new file mode 100644 index 000000000..89e4389a8 --- /dev/null +++ b/zero_bin/common/src/prover_state/circuit.rs @@ -0,0 +1,262 @@ +//! [`AllRecursiveCircuits`] dynamic circuit configuration. +use std::{ + fmt::Display, + ops::{Deref, Range}, + str::FromStr, +}; + +use evm_arithmetization::{AllStark, StarkConfig}; +use proof_gen::types::AllRecursiveCircuits; + +use crate::parsing::{parse_range_exclusive, RangeParseError}; + +/// Number of tables defined in plonky2. +/// +/// TODO: This should be made public in the evm_arithmetization crate. +pub(crate) const NUM_TABLES: usize = 9; + +/// New type wrapper for [`Range`] that implements [`FromStr`] and [`Display`]. +/// +/// Useful for using in clap arguments. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct CircuitSize(pub Range); + +impl Deref for CircuitSize { + type Target = Range; + + fn deref(&self) -> &Self::Target { + &self.0 + } +} + +impl Display for CircuitSize { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}..{}", self.start, self.end) + } +} + +impl From> for CircuitSize { + fn from(item: Range) -> Self { + Self(item) + } +} + +impl From for Range { + fn from(item: CircuitSize) -> Self { + item.0 + } +} + +impl FromStr for CircuitSize { + type Err = RangeParseError; + + fn from_str(s: &str) -> Result { + Ok(CircuitSize(parse_range_exclusive(s)?)) + } +} + +/// All possible plonky2 table circuits. +#[repr(usize)] +#[derive(Debug, Clone, Copy)] +pub enum Circuit { + Arithmetic, + BytePacking, + Cpu, + Keccak, + KeccakSponge, + Logic, + Memory, + MemoryBefore, + MemoryAfter, +} + +impl Display for Circuit { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.as_str()) + } +} + +impl Circuit { + /// Get the default size for the circuit. + pub const fn default_size(&self) -> Range { + match self { + Circuit::Arithmetic => 16..23, + Circuit::BytePacking => 9..21, + Circuit::Cpu => 12..25, + Circuit::Keccak => 14..20, + Circuit::KeccakSponge => 9..15, + Circuit::Logic => 12..18, + Circuit::Memory => 17..28, + Circuit::MemoryBefore => 7..23, + Circuit::MemoryAfter => 7..27, + } + } + + /// Get the environment variable key for the circuit. + pub const fn as_env_key(&self) -> &'static str { + match self { + Circuit::Arithmetic => "ARITHMETIC_CIRCUIT_SIZE", + Circuit::BytePacking => "BYTE_PACKING_CIRCUIT_SIZE", + Circuit::Cpu => "CPU_CIRCUIT_SIZE", + Circuit::Keccak => "KECCAK_CIRCUIT_SIZE", + Circuit::KeccakSponge => "KECCAK_SPONGE_CIRCUIT_SIZE", + Circuit::Logic => "LOGIC_CIRCUIT_SIZE", + Circuit::Memory => "MEMORY_CIRCUIT_SIZE", + Circuit::MemoryBefore => "MEMORY_BEFORE_CIRCUIT_SIZE", + Circuit::MemoryAfter => "MEMORY_AFTER_CIRCUIT_SIZE", + } + } + + /// Get the circuit name as a str literal. + pub const fn as_str(&self) -> &'static str { + match self { + Circuit::Arithmetic => "arithmetic", + Circuit::BytePacking => "byte packing", + Circuit::Cpu => "cpu", + Circuit::Keccak => "keccak", + Circuit::KeccakSponge => "keccak sponge", + Circuit::Logic => "logic", + Circuit::Memory => "memory", + Circuit::MemoryBefore => "memory before", + Circuit::MemoryAfter => "memory after", + } + } + + /// Get the circuit name as a short str literal. + pub const fn as_short_str(&self) -> &'static str { + match self { + Circuit::Arithmetic => "a", + Circuit::BytePacking => "bp", + Circuit::Cpu => "c", + Circuit::Keccak => "k", + Circuit::KeccakSponge => "ks", + Circuit::Logic => "l", + Circuit::Memory => "m", + Circuit::MemoryBefore => "m_b", + Circuit::MemoryAfter => "m_a", + } + } +} + +impl From for Circuit { + fn from(item: usize) -> Self { + match item { + 0 => Circuit::Arithmetic, + 1 => Circuit::BytePacking, + 2 => Circuit::Cpu, + 3 => Circuit::Keccak, + 4 => Circuit::KeccakSponge, + 5 => Circuit::Logic, + 6 => Circuit::Memory, + 7 => Circuit::MemoryBefore, + 8 => Circuit::MemoryAfter, + _ => unreachable!(), + } + } +} + +#[derive(Debug, Clone)] +pub struct CircuitConfig { + circuits: [Range; NUM_TABLES], +} + +impl std::ops::Index for CircuitConfig { + type Output = Range; + + fn index(&self, index: usize) -> &Self::Output { + &self.circuits[index] + } +} + +impl std::ops::Index for CircuitConfig { + type Output = Range; + + fn index(&self, index: Circuit) -> &Self::Output { + &self.circuits[index as usize] + } +} + +impl Default for CircuitConfig { + fn default() -> Self { + Self { + circuits: [ + Circuit::Arithmetic.default_size(), + Circuit::BytePacking.default_size(), + Circuit::Cpu.default_size(), + Circuit::Keccak.default_size(), + Circuit::KeccakSponge.default_size(), + Circuit::Logic.default_size(), + Circuit::Memory.default_size(), + Circuit::MemoryBefore.default_size(), + Circuit::MemoryAfter.default_size(), + ], + } + } +} + +impl CircuitConfig { + /// Get all circuits specified in the config. + pub fn iter(&self) -> std::slice::Iter<'_, Range> { + self.circuits.iter() + } + + /// Get all circuits specified in the config with their [`Circuit`] index. + pub fn enumerate(&self) -> impl Iterator)> { + self.circuits + .iter() + .enumerate() + .map(|(index, range)| (index.into(), range)) + } + + /// Set the size of a the given [`Circuit`]. + pub fn set_circuit_size>>(&mut self, key: Circuit, size: T) { + self.circuits[key as usize] = size.into(); + } + + /// Get all circuits specified in the config. + pub fn as_degree_bits_ranges(&self) -> &[Range; NUM_TABLES] { + &self.circuits + } + + /// Get a unique string representation of the config. + pub fn get_configuration_digest(&self) -> String { + self.enumerate() + .map(|(circuit, range)| { + format!("{}_{}-{}", circuit.as_short_str(), range.start, range.end) + }) + .fold(String::new(), |mut acc, s| { + if !acc.is_empty() { + acc.push('_'); + } + acc.push_str(&s); + acc + }) + } + + /// Build the circuits from the current config. + pub fn as_all_recursive_circuits(&self) -> AllRecursiveCircuits { + AllRecursiveCircuits::new( + &AllStark::default(), + self.as_degree_bits_ranges(), + &StarkConfig::standard_fast_config(), + ) + } +} + +impl IntoIterator for CircuitConfig { + type Item = Range; + type IntoIter = std::array::IntoIter; + + fn into_iter(self) -> Self::IntoIter { + self.circuits.into_iter() + } +} + +impl<'a> IntoIterator for &'a CircuitConfig { + type Item = &'a Range; + type IntoIter = std::slice::Iter<'a, Range>; + + fn into_iter(self) -> Self::IntoIter { + self.circuits.iter() + } +} diff --git a/zero_bin/common/src/prover_state/cli.rs b/zero_bin/common/src/prover_state/cli.rs new file mode 100644 index 000000000..0b5fa907b --- /dev/null +++ b/zero_bin/common/src/prover_state/cli.rs @@ -0,0 +1,123 @@ +//! CLI arguments for constructing a [`CircuitConfig`], which can be used to +//! construct table circuits. +use std::fmt::Display; + +use clap::{Args, ValueEnum}; + +use super::{ + circuit::{Circuit, CircuitConfig, CircuitSize}, + ProverStateManager, TableLoadStrategy, +}; + +/// The help heading for the circuit arguments. +/// +/// This groups the circuit arguments together in the help message. +const HEADING: &str = "Table circuit sizes"; +/// The clap value name for the circuit argument. +const VALUE_NAME: &str = "CIRCUIT_BIT_RANGE"; + +/// Get the description for the circuit argument. +/// +/// Displayed in the help message. +fn circuit_arg_desc(circuit_name: &str) -> String { + format!("The min/max size for the {circuit_name} table circuit.") +} + +/// Specifies whether to persist the processed circuits. +#[derive(Debug, Clone, Copy, ValueEnum)] +pub enum CircuitPersistence { + /// Do not persist the processed circuits. + None, + /// Persist the processed circuits to disk. + Disk, +} + +impl CircuitPersistence { + pub fn with_load_strategy(self, load_strategy: TableLoadStrategy) -> super::CircuitPersistence { + match self { + CircuitPersistence::None => super::CircuitPersistence::None, + CircuitPersistence::Disk => super::CircuitPersistence::Disk(load_strategy), + } + } +} + +impl Display for CircuitPersistence { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + CircuitPersistence::None => write!(f, "none"), + CircuitPersistence::Disk => write!(f, "disk"), + } + } +} + +/// Macro for generating the [`CliCircuitConfig`] struct. +macro_rules! gen_prover_state_config { + ($($name:ident: $circuit:expr),*) => { + #[derive(Args, Debug)] + pub struct CliProverStateConfig { + #[clap(long, help_heading = HEADING, default_value_t = CircuitPersistence::Disk)] + pub persistence: CircuitPersistence, + #[clap(long, help_heading = HEADING, default_value_t = TableLoadStrategy::OnDemand)] + pub load_strategy: TableLoadStrategy, + + $( + #[clap( + long, + value_name = VALUE_NAME, + help_heading = HEADING, + env = $circuit.as_env_key(), + help = circuit_arg_desc($circuit.as_str()), + )] + pub $name: Option, + )* + } + }; +} + +gen_prover_state_config!( + arithmetic: Circuit::Arithmetic, + byte_packing: Circuit::BytePacking, + cpu: Circuit::Cpu, + keccak: Circuit::Keccak, + keccak_sponge: Circuit::KeccakSponge, + logic: Circuit::Logic, + memory: Circuit::Memory, + mem_before: Circuit::MemoryBefore, + mem_after: Circuit::MemoryAfter +); + +impl CliProverStateConfig { + pub fn into_circuit_config(self) -> CircuitConfig { + let mut config = CircuitConfig::default(); + + [ + (Circuit::Arithmetic, self.arithmetic), + (Circuit::BytePacking, self.byte_packing), + (Circuit::Cpu, self.cpu), + (Circuit::Keccak, self.keccak), + (Circuit::KeccakSponge, self.keccak_sponge), + (Circuit::Logic, self.logic), + (Circuit::Memory, self.memory), + (Circuit::MemoryBefore, self.mem_before), + (Circuit::MemoryAfter, self.mem_after), + ] + .into_iter() + .filter_map(|(circuit, range)| range.map(|range| (circuit, range))) + .for_each(|(circuit, range)| config.set_circuit_size(circuit, range)); + + config + } + + pub fn into_prover_state_manager(self) -> ProverStateManager { + ProverStateManager { + persistence: self.persistence.with_load_strategy(self.load_strategy), + circuit_config: self.into_circuit_config(), + } + } +} + +impl From for ProverStateManager { + fn from(config: CliProverStateConfig) -> Self { + config.into_prover_state_manager() + } +} diff --git a/zero_bin/common/src/prover_state/mod.rs b/zero_bin/common/src/prover_state/mod.rs new file mode 100644 index 000000000..575af06e7 --- /dev/null +++ b/zero_bin/common/src/prover_state/mod.rs @@ -0,0 +1,367 @@ +//! Global prover state management and utilities. +//! +//! This module provides the following: +//! - [`Circuit`] and [`CircuitConfig`] which can be used to dynamically +//! construct [`evm_arithmetization::fixed_recursive_verifier::AllRecursiveCircuits`] +//! from the specified circuit sizes. +//! - Command line arguments for constructing a [`CircuitConfig`]. +//! - Provides default values for the circuit sizes. +//! - Allows the circuit sizes to be specified via environment variables. +//! - Persistence utilities for saving and loading +//! [`evm_arithmetization::fixed_recursive_verifier::AllRecursiveCircuits`]. +//! - Global prover state management via the [`P_STATE`] static and the +//! [`set_prover_state_from_config`] function. +use std::{fmt::Display, sync::OnceLock}; + +use clap::ValueEnum; +use evm_arithmetization::{ + fixed_recursive_verifier::ProverOutputData, + proof::AllProof, + prover::{prove, GenerationSegmentData}, + AllStark, GenerationInputs, StarkConfig, +}; +use plonky2::{ + field::goldilocks_field::GoldilocksField, plonk::config::PoseidonGoldilocksConfig, + util::timing::TimingTree, +}; +use proof_gen::{proof_types::GeneratedSegmentProof, prover_state::ProverState, VerifierState}; +use trace_decoder::types::AllData; +use tracing::info; + +use self::circuit::{CircuitConfig, NUM_TABLES}; +use crate::prover_state::persistence::{ + BaseProverResource, DiskResource, MonolithicProverResource, RecursiveCircuitResource, + VerifierResource, +}; + +pub mod circuit; +pub mod cli; +pub mod persistence; + +pub(crate) type Config = PoseidonGoldilocksConfig; +pub(crate) type Field = GoldilocksField; +pub(crate) const SIZE: usize = 2; + +pub(crate) type RecursiveCircuitsForTableSize = + evm_arithmetization::fixed_recursive_verifier::RecursiveCircuitsForTableSize< + Field, + Config, + SIZE, + >; + +/// The global prover state. +/// +/// It is specified as a `OnceLock` for the following reasons: +/// - It is initialized once at start-up and never changed. +/// - It is accessible from multiple threads (particularly important when +/// running the leader in in-memory mode). +/// - This scheme works for both a cluster and a single machine. In particular, +/// whether imported from a worker node or a thread in the leader node +/// (in-memory mode), the prover state is initialized only once. +static P_STATE: OnceLock = OnceLock::new(); + +/// The global prover state manager. +/// +/// Unlike the prover state, the prover state manager houses configuration and +/// persistence information. This allows it to differentiate between the +/// different transaction proof generation strategies. As such, it is generally +/// only necessary when generating transaction proofs. +/// +/// It's specified as a `OnceLock` for the same reasons as the prover state. +static MANAGER: OnceLock = OnceLock::new(); + +pub fn p_state() -> &'static ProverState { + P_STATE.get().expect("Prover state is not initialized") +} + +pub fn p_manager() -> &'static ProverStateManager { + MANAGER + .get() + .expect("Prover state manager is not initialized") +} + +/// Specifies how to load the table circuits. +#[derive(Debug, Clone, Copy, Default, ValueEnum)] +pub enum TableLoadStrategy { + #[default] + /// Load the circuit tables as needed for shrinking STARK proofs. + /// + /// - Generate a STARK proof. + /// - Compute the degree bits. + /// - Load the necessary table circuits. + OnDemand, + /// Load all the table circuits into a monolithic bundle. + Monolithic, +} + +impl Display for TableLoadStrategy { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + TableLoadStrategy::OnDemand => write!(f, "on-demand"), + TableLoadStrategy::Monolithic => write!(f, "monolithic"), + } + } +} + +/// Specifies whether to persist the processed circuits. +#[derive(Debug, Clone, Copy)] +pub enum CircuitPersistence { + /// Do not persist the processed circuits. + None, + /// Persist the processed circuits to disk. + Disk(TableLoadStrategy), +} + +impl Default for CircuitPersistence { + fn default() -> Self { + CircuitPersistence::Disk(TableLoadStrategy::default()) + } +} + +/// Product of [`CircuitConfig`] and [`CircuitPersistence`]. +/// +/// Provides helper utilities for interacting with the prover state in +/// accordance with the specified configuration and persistence strategy. +#[derive(Default, Debug, Clone)] +pub struct ProverStateManager { + pub circuit_config: CircuitConfig, + pub persistence: CircuitPersistence, +} + +impl ProverStateManager { + pub fn with_load_strategy(self, load_strategy: TableLoadStrategy) -> Self { + match self.persistence { + CircuitPersistence::None => self, + CircuitPersistence::Disk(_) => Self { + circuit_config: self.circuit_config, + persistence: CircuitPersistence::Disk(load_strategy), + }, + } + } + + /// Load the table circuits necessary to shrink the STARK proof. + /// + /// [`AllProof`] provides the necessary degree bits for each circuit via the + /// [`AllProof::degree_bits`] method. + /// Using this information, for each circuit, a tuple is returned, + /// containing: + /// 1. The loaded table circuit at the specified size. + /// 2. An offset indicating the position of the specified size within the + /// configured range used when pre-generating the circuits. + fn load_table_circuits( + &self, + config: &StarkConfig, + all_proof: &AllProof, + ) -> anyhow::Result<[(RecursiveCircuitsForTableSize, u8); NUM_TABLES]> { + let degrees = all_proof.degree_bits(config); + + /// Given a recursive circuit index (e.g., Arithmetic / 0), return a + /// tuple containing the loaded table at the specified size and + /// its offset relative to the configured range used to pre-process the + /// circuits. + macro_rules! circuit { + ($circuit_index:expr) => { + ( + RecursiveCircuitResource::get(&( + $circuit_index.into(), + degrees[$circuit_index], + )) + .map_err(|e| { + let circuit: $crate::prover_state::circuit::Circuit = $circuit_index.into(); + let size = degrees[$circuit_index]; + anyhow::Error::from(e).context(format!( + "Attempting to load circuit: {circuit:?} at size: {size}" + )) + })?, + (degrees[$circuit_index] - self.circuit_config[$circuit_index].start) as u8, + ) + }; + } + + Ok([ + circuit!(0), + circuit!(1), + circuit!(2), + circuit!(3), + circuit!(4), + circuit!(5), + circuit!(6), + circuit!(7), + circuit!(8), + ]) + } + + /// Generate a segment proof using the specified input, loading + /// the circuit tables as needed to shrink the individual STARK proofs, + /// and finally aggregating them to a final transaction proof. + fn segment_proof_on_demand( + &self, + input: GenerationInputs, + segment_data: &mut GenerationSegmentData, + ) -> anyhow::Result { + let config = StarkConfig::standard_fast_config(); + let all_stark = AllStark::default(); + + let all_proof = prove( + &all_stark, + &config, + input.clone(), + segment_data, + &mut TimingTree::default(), + None, + )?; + + let table_circuits = self.load_table_circuits(&config, &all_proof)?; + + let (intern, p_vals) = + p_state() + .state + .prove_segment_after_initial_stark(all_proof, &table_circuits, None)?; + + Ok(GeneratedSegmentProof { p_vals, intern }) + } + + /// Generate a segment proof using the specified input on the monolithic + /// circuit. + fn segment_proof_monolithic( + &self, + input: GenerationInputs, + segment_data: &mut GenerationSegmentData, + ) -> anyhow::Result { + let p_out = p_state().state.prove_segment( + &AllStark::default(), + &StarkConfig::standard_fast_config(), + input.clone(), + segment_data, + &mut TimingTree::default(), + None, + )?; + + let ProverOutputData { + is_dummy: _, + proof_with_pis: intern, + public_values: p_vals, + } = p_out; + + Ok(GeneratedSegmentProof { p_vals, intern }) + } + + /// Generate a segment proof using the specified input. + /// + /// The specific implementation depends on the persistence strategy. + /// - If the persistence strategy is [`CircuitPersistence::None`] or + /// [`CircuitPersistence::Disk`] with [`TableLoadStrategy::Monolithic`], + /// the monolithic circuit is used. + /// - If the persistence strategy is [`CircuitPersistence::Disk`] with + /// [`TableLoadStrategy::OnDemand`], the table circuits are loaded as + /// needed. + pub fn generate_segment_proof(&self, input: AllData) -> anyhow::Result { + let (generation_inputs, mut segment_data) = input; + + match self.persistence { + CircuitPersistence::None | CircuitPersistence::Disk(TableLoadStrategy::Monolithic) => { + info!("using monolithic circuit {:?}", self); + self.segment_proof_monolithic(generation_inputs.clone(), &mut segment_data) + } + CircuitPersistence::Disk(TableLoadStrategy::OnDemand) => { + info!("using on demand circuit {:?}", self); + self.segment_proof_on_demand(generation_inputs.clone(), &mut segment_data) + } + } + } + + /// Initialize global prover state from the configuration. + pub fn initialize(&self) -> anyhow::Result<()> { + info!("initializing prover state..."); + + let state = match self.persistence { + CircuitPersistence::None => { + info!("generating circuits..."); + ProverState { + state: self.circuit_config.as_all_recursive_circuits(), + } + } + CircuitPersistence::Disk(strategy) => { + info!("attempting to load preprocessed circuits from disk..."); + + let disk_state = match strategy { + TableLoadStrategy::OnDemand => BaseProverResource::get(&self.circuit_config), + TableLoadStrategy::Monolithic => { + MonolithicProverResource::get(&self.circuit_config) + } + }; + + match disk_state { + Ok(circuits) => { + info!("successfully loaded preprocessed circuits from disk"); + ProverState { state: circuits } + } + Err(_) => { + info!("failed to load preprocessed circuits from disk. generating circuits..."); + let all_recursive_circuits = + self.circuit_config.as_all_recursive_circuits(); + info!("saving preprocessed circuits to disk"); + persistence::persist_all_to_disk( + &all_recursive_circuits, + &self.circuit_config, + )?; + ProverState { + state: all_recursive_circuits, + } + } + } + } + }; + + P_STATE.set(state).map_err(|_| { + anyhow::Error::msg( + "prover state already set. check the program logic to ensure it is only set once", + ) + .context("setting prover state") + })?; + + MANAGER.set(self.clone()).map_err(|_| { + anyhow::Error::msg( + "prover state manager already set. check the program logic to ensure it is only set once", + ) + .context("setting prover state manager") + })?; + + Ok(()) + } + + /// Loads a verifier state from disk or generate it. + pub fn verifier(&self) -> anyhow::Result { + info!("initializing verifier state..."); + match self.persistence { + CircuitPersistence::None => { + info!("generating circuit..."); + let prover_state = self.circuit_config.as_all_recursive_circuits(); + Ok(VerifierState { + state: prover_state.final_verifier_data(), + }) + } + CircuitPersistence::Disk(_) => { + info!("attempting to load preprocessed verifier circuit from disk..."); + let disk_state = VerifierResource::get(&self.circuit_config); + + match disk_state { + Ok(state) => { + info!("successfully loaded preprocessed verifier circuit from disk"); + Ok(VerifierState { state }) + } + Err(_) => { + info!("failed to load preprocessed verifier circuit from disk. generating it..."); + let prover_state = self.circuit_config.as_all_recursive_circuits(); + + info!("saving preprocessed verifier circuit to disk"); + let state = prover_state.final_verifier_data(); + VerifierResource::put(&self.circuit_config, &state)?; + + Ok(VerifierState { state }) + } + } + } + } + } +} diff --git a/zero_bin/common/src/prover_state/persistence.rs b/zero_bin/common/src/prover_state/persistence.rs new file mode 100644 index 000000000..87eb7d1ae --- /dev/null +++ b/zero_bin/common/src/prover_state/persistence.rs @@ -0,0 +1,287 @@ +use std::env; +use std::{ + fmt::{Debug, Display}, + fs::{self, OpenOptions}, + io::Write, + path::Path, +}; + +use plonky2::util::serialization::{ + Buffer, DefaultGateSerializer, DefaultGeneratorSerializer, IoError, +}; +use proof_gen::types::{AllRecursiveCircuits, VerifierData}; +use thiserror::Error; + +use super::{ + circuit::{Circuit, CircuitConfig}, + Config, RecursiveCircuitsForTableSize, SIZE, +}; + +const CIRCUITS_DIR: &str = "circuits/"; +const PROVER_STATE_FILE_PREFIX: &str = "prover_state"; +const VERIFIER_STATE_FILE_PREFIX: &str = "verifier_state"; +const CARGO_WORKSPACE_DIR_ENV: &str = "CARGO_WORKSPACE_DIR"; + +fn get_serializers() -> ( + DefaultGateSerializer, + DefaultGeneratorSerializer, +) { + let gate_serializer = DefaultGateSerializer; + let witness_serializer: DefaultGeneratorSerializer = + DefaultGeneratorSerializer::default(); + + (gate_serializer, witness_serializer) +} + +#[derive(Error, Debug)] +pub(crate) enum DiskResourceError { + #[error("Serialization error: {0}")] + Serialization(E), + #[error("IO error: {0}")] + IoError(#[from] std::io::Error), +} + +/// A trait for generic resources that may be written to and read from disk, +/// each with their own serialization and deserialization logic. +pub(crate) trait DiskResource { + /// The type of error that may arise while serializing or deserializing the + /// resource. + type Error: Debug + Display; + /// The type of resource being serialized, deserialized, and written to + /// disk. + type Resource; + /// The input type / configuration used to generate a unique path to the + /// resource on disk. + type PathConstrutor; + + /// Returns the path to the resource on disk. + fn path(p: &Self::PathConstrutor) -> impl AsRef; + + /// Serializes the resource to bytes. + fn serialize(r: &Self::Resource) -> Result, DiskResourceError>; + + /// Deserializes the resource from bytes. + fn deserialize(bytes: &[u8]) -> Result>; + + /// Reads the resource from disk and deserializes it. + fn get(p: &Self::PathConstrutor) -> Result> { + Self::deserialize(&fs::read(Self::path(p))?) + } + + /// Writes the resource to disk after serializing it. + fn put( + p: &Self::PathConstrutor, + r: &Self::Resource, + ) -> Result<(), DiskResourceError> { + let circuits_dir = relative_circuit_dir_path(); + + // Create the base folder if non-existent. + if std::fs::metadata(&circuits_dir).is_err() { + std::fs::create_dir(&circuits_dir).map_err(|_| { + DiskResourceError::IoError::(std::io::Error::other( + "Could not create circuits folder", + )) + })?; + } + + Ok(OpenOptions::new() + .write(true) + .create(true) + .truncate(true) + .open(Self::path(p))? + .write_all(&Self::serialize(r)?)?) + } +} + +/// Pre-generated circuits containing just the three higher-level circuits. +/// These are sufficient for generating aggregation proofs and block +/// proofs, but not for transaction proofs. +#[derive(Debug, Default)] +pub(crate) struct BaseProverResource; + +impl DiskResource for BaseProverResource { + type Resource = AllRecursiveCircuits; + type Error = IoError; + type PathConstrutor = CircuitConfig; + + fn path(p: &Self::PathConstrutor) -> impl AsRef { + format!( + "{}/{}_base_{}_{}", + &relative_circuit_dir_path(), + PROVER_STATE_FILE_PREFIX, + env::var("EVM_ARITHMETIZATION_PKG_VER").unwrap_or("NA".to_string()), + p.get_configuration_digest() + ) + } + + fn serialize(r: &Self::Resource) -> Result, DiskResourceError> { + let (gate_serializer, witness_serializer) = get_serializers(); + + r + // Note we are using the `true` flag to write only the upper circuits. + // The individual circuit tables are written separately below. + .to_bytes(true, &gate_serializer, &witness_serializer) + .map_err(DiskResourceError::Serialization) + } + + fn deserialize(bytes: &[u8]) -> Result> { + let (gate_serializer, witness_serializer) = get_serializers(); + AllRecursiveCircuits::from_bytes(bytes, true, &gate_serializer, &witness_serializer) + .map_err(DiskResourceError::Serialization) + } +} + +/// Pre-generated circuits containing all circuits. +#[derive(Debug, Default)] +pub(crate) struct MonolithicProverResource; + +impl DiskResource for MonolithicProverResource { + type Resource = AllRecursiveCircuits; + type Error = IoError; + type PathConstrutor = CircuitConfig; + + fn path(p: &Self::PathConstrutor) -> impl AsRef { + format!( + "{}/{}_monolithic_{}_{}", + &relative_circuit_dir_path(), + PROVER_STATE_FILE_PREFIX, + env::var("EVM_ARITHMETIZATION_PKG_VER").unwrap_or("NA".to_string()), + p.get_configuration_digest() + ) + } + + fn serialize(r: &Self::Resource) -> Result, DiskResourceError> { + let (gate_serializer, witness_serializer) = get_serializers(); + + r + // Note we are using the `false` flag to write all circuits. + .to_bytes(false, &gate_serializer, &witness_serializer) + .map_err(DiskResourceError::Serialization) + } + + fn deserialize(bytes: &[u8]) -> Result> { + let (gate_serializer, witness_serializer) = get_serializers(); + AllRecursiveCircuits::from_bytes(bytes, false, &gate_serializer, &witness_serializer) + .map_err(DiskResourceError::Serialization) + } +} + +/// An individual circuit table with a specific size. +#[derive(Debug, Default)] +pub(crate) struct RecursiveCircuitResource; + +impl DiskResource for RecursiveCircuitResource { + type Resource = RecursiveCircuitsForTableSize; + type Error = IoError; + type PathConstrutor = (Circuit, usize); + + fn path((circuit_type, size): &Self::PathConstrutor) -> impl AsRef { + format!( + "{}/{}_{}_{}_{}", + &relative_circuit_dir_path(), + PROVER_STATE_FILE_PREFIX, + env::var("EVM_ARITHMETIZATION_PKG_VER").unwrap_or("NA".to_string()), + circuit_type.as_short_str(), + size + ) + } + + fn serialize(r: &Self::Resource) -> Result, DiskResourceError> { + let (gate_serializer, witness_serializer) = get_serializers(); + let mut buf = Vec::new(); + + r.to_buffer(&mut buf, &gate_serializer, &witness_serializer) + .map_err(DiskResourceError::Serialization)?; + + Ok(buf) + } + + fn deserialize( + bytes: &[u8], + ) -> Result> { + let (gate_serializer, witness_serializer) = get_serializers(); + let mut buffer = Buffer::new(bytes); + RecursiveCircuitsForTableSize::from_buffer( + &mut buffer, + &gate_serializer, + &witness_serializer, + ) + .map_err(DiskResourceError::Serialization) + } +} + +/// An individual circuit table with a specific size. +#[derive(Debug, Default)] +pub(crate) struct VerifierResource; + +impl DiskResource for VerifierResource { + type Resource = VerifierData; + type Error = IoError; + type PathConstrutor = CircuitConfig; + + fn path(p: &Self::PathConstrutor) -> impl AsRef { + format!( + "{}/{}_{}_{}", + &relative_circuit_dir_path(), + VERIFIER_STATE_FILE_PREFIX, + env::var("EVM_ARITHMETIZATION_PKG_VER").unwrap_or("NA".to_string()), + p.get_configuration_digest() + ) + } + + fn serialize(r: &Self::Resource) -> Result, DiskResourceError> { + let (gate_serializer, _witness_serializer) = get_serializers(); + r.to_bytes(&gate_serializer) + .map_err(DiskResourceError::Serialization) + } + + fn deserialize(bytes: &[u8]) -> Result> { + let (gate_serializer, _) = get_serializers(); + VerifierData::from_bytes(bytes.to_vec(), &gate_serializer) + .map_err(DiskResourceError::Serialization) + } +} + +/// Writes the provided [`AllRecursiveCircuits`] to disk with all +/// configurations, along with the associated [`VerifierData`]. +pub fn persist_all_to_disk( + circuits: &AllRecursiveCircuits, + circuit_config: &CircuitConfig, +) -> anyhow::Result<()> { + prover_to_disk(circuit_config, circuits)?; + VerifierResource::put(circuit_config, &circuits.final_verifier_data())?; + + Ok(()) +} + +/// Writes the provided [`AllRecursiveCircuits`] to disk. +/// +/// In particular, we cover both the monolothic and base prover states, as well +/// as the individual circuit tables. +fn prover_to_disk( + circuit_config: &CircuitConfig, + circuits: &AllRecursiveCircuits, +) -> Result<(), DiskResourceError> { + BaseProverResource::put(circuit_config, circuits)?; + MonolithicProverResource::put(circuit_config, circuits)?; + + // Write individual circuit tables to disk, by circuit type and size. This + // allows us to load only the necessary tables when needed. + for (circuit_type, tables) in circuits.by_table.iter().enumerate() { + let circuit_type: Circuit = circuit_type.into(); + for (size, table) in tables.by_stark_size.iter() { + RecursiveCircuitResource::put(&(circuit_type, *size), table)?; + } + } + + Ok(()) +} + +/// If we're running in the cargo workspace, then always use the `circuits` +/// directory that lives in `tools/`. Otherwise, just use `circuits` in the +/// current directory. +fn relative_circuit_dir_path() -> String { + env::var(CARGO_WORKSPACE_DIR_ENV) + .map(|p| format!("{}/{}", p, CIRCUITS_DIR)) + .unwrap_or_else(|_| CIRCUITS_DIR.to_string()) +} diff --git a/zero_bin/leader/Cargo.toml b/zero_bin/leader/Cargo.toml new file mode 100644 index 000000000..dfb0070b4 --- /dev/null +++ b/zero_bin/leader/Cargo.toml @@ -0,0 +1,40 @@ +[package] +name = "leader" +authors = ["Polygon Zero "] +version = "0.1.0" +edition.workspace = true +license.workspace = true +repository.workspace = true +keywords.workspace = true +categories.workspace = true + +[dependencies] +paladin-core = { workspace = true } +clap = { workspace = true } +tracing = { workspace = true } +tracing-subscriber = { workspace = true } +anyhow = { workspace = true } +serde = { workspace = true } +dotenvy = { workspace = true } +tokio = { workspace = true } +proof_gen = { workspace = true } +serde_json = { workspace = true } +serde_path_to_error = { workspace = true } +futures = { workspace = true } +alloy.workspace = true +axum = { workspace = true } +toml = { workspace = true } + +# Local dependencies +ops = { workspace = true } +prover = { workspace = true } +rpc = { workspace = true } +zero_bin_common = { workspace = true } + +[features] +default = [] +test_only = ["ops/test_only", "prover/test_only"] + +[build-dependencies] +cargo_metadata = "0.18.1" +anyhow = { workspace = true } diff --git a/zero_bin/leader/build.rs b/zero_bin/leader/build.rs new file mode 100644 index 000000000..0adcbb347 --- /dev/null +++ b/zero_bin/leader/build.rs @@ -0,0 +1,19 @@ +use anyhow::Context as _; +fn main() -> anyhow::Result<()> { + let meta = cargo_metadata::MetadataCommand::new() + .exec() + .context("failed to probe cargo-metadata")?; + let version = &meta + .packages + .iter() + .find(|it| it.name == "evm_arithmetization") + .context("couldn't find evm_arithmetization package")? + .version; + println!( + "cargo::rustc-env=EVM_ARITHMETIZATION_PACKAGE_VERSION={}.{}.x", + // patch version change should not prompt circuits regeneration + version.major, + version.minor + ); + Ok(()) +} diff --git a/zero_bin/leader/src/cli.rs b/zero_bin/leader/src/cli.rs new file mode 100644 index 000000000..9ec32a420 --- /dev/null +++ b/zero_bin/leader/src/cli.rs @@ -0,0 +1,103 @@ +use std::path::PathBuf; + +use alloy::transports::http::reqwest::Url; +use clap::{Parser, Subcommand, ValueHint}; +use rpc::RpcType; +use zero_bin_common::prover_state::cli::CliProverStateConfig; + +/// zero-bin leader config +#[derive(Parser)] +pub(crate) struct Cli { + #[command(subcommand)] + pub(crate) command: Command, + + #[clap(flatten)] + pub(crate) paladin: paladin::config::Config, + + // Note this is only relevant for the leader when running in in-memory + // mode. + #[clap(flatten)] + pub(crate) prover_state_config: CliProverStateConfig, +} + +#[derive(Subcommand)] +pub(crate) enum Command { + /// Reads input from stdin and writes output to stdout. + Stdio { + /// The previous proof output. + #[arg(long, short = 'f', value_hint = ValueHint::FilePath)] + previous_proof: Option, + #[arg(short, long, default_value_t = 20)] + max_cpu_len_log: usize, + #[arg(short, long, default_value_t = 1)] + batch_size: usize, + /// If true, save the public inputs to disk on error. + #[arg(short, long, default_value_t = false)] + save_inputs_on_error: bool, + }, + /// Reads input from a node rpc and writes output to stdout. + Rpc { + // The node RPC URL. + #[arg(long, short = 'u', value_hint = ValueHint::Url)] + rpc_url: Url, + // The node RPC type (jerigon / native). + #[arg(long, short = 't', default_value = "jerigon")] + rpc_type: RpcType, + /// The block interval for which to generate a proof. + #[arg(long, short = 'i')] + block_interval: String, + /// The checkpoint block number. + #[arg(short, long, default_value_t = 0)] + checkpoint_block_number: u64, + /// The previous proof output. + #[arg(long, short = 'f', value_hint = ValueHint::FilePath)] + previous_proof: Option, + /// If provided, write the generated proofs to this directory instead of + /// stdout. + #[arg(long, short = 'o', value_hint = ValueHint::FilePath)] + proof_output_dir: Option, + /// The log of the max number of CPU cycles per proof. + #[arg(short, long, default_value_t = 20)] + max_cpu_len_log: usize, + #[arg(short, long, default_value_t = 1)] + batch_size: usize, + /// If true, save the public inputs to disk on error. + #[arg(short, long, default_value_t = false)] + save_inputs_on_error: bool, + /// Network block time in milliseconds. This value is used + /// to determine the blockchain node polling interval. + #[arg(short, long, env = "ZERO_BIN_BLOCK_TIME", default_value_t = 2000)] + block_time: u64, + /// Keep intermediate proofs. Default action is to + /// delete them after the final proof is generated. + #[arg( + short, + long, + env = "ZERO_BIN_KEEP_INTERMEDIATE_PROOFS", + default_value_t = false + )] + keep_intermediate_proofs: bool, + /// Backoff in milliseconds for request retries + #[arg(long, default_value_t = 0)] + backoff: u64, + /// The maximum number of retries + #[arg(long, default_value_t = 0)] + max_retries: u32, + }, + /// Reads input from HTTP and writes output to a directory. + Http { + /// The port on which to listen. + #[arg(short, long, default_value_t = 8080)] + port: u16, + /// The directory to which output should be written. + #[arg(short, long, value_hint = ValueHint::DirPath)] + output_dir: PathBuf, + #[arg(short, long, default_value_t = 20)] + max_cpu_len_log: usize, + #[arg(short, long, default_value_t = 1)] + batch_size: usize, + /// If true, save the public inputs to disk on error. + #[arg(short, long, default_value_t = false)] + save_inputs_on_error: bool, + }, +} diff --git a/zero_bin/leader/src/client.rs b/zero_bin/leader/src/client.rs new file mode 100644 index 000000000..50993d4a3 --- /dev/null +++ b/zero_bin/leader/src/client.rs @@ -0,0 +1,114 @@ +use std::io::Write; +use std::path::PathBuf; + +use alloy::transports::http::reqwest::Url; +use anyhow::Result; +use paladin::runtime::Runtime; +use proof_gen::proof_types::GeneratedBlockProof; +use rpc::{retry::build_http_retry_provider, RpcType}; +use tracing::{error, info, warn}; +use zero_bin_common::block_interval::BlockInterval; +use zero_bin_common::fs::generate_block_proof_file_name; + +#[derive(Debug)] +pub struct RpcParams { + pub rpc_url: Url, + pub rpc_type: RpcType, + pub backoff: u64, + pub max_retries: u32, +} + +#[derive(Debug, Default)] +pub struct ProofParams { + pub checkpoint_block_number: u64, + pub previous_proof: Option, + pub proof_output_dir: Option, + pub max_cpu_len_log: usize, + pub batch_size: usize, + pub save_inputs_on_error: bool, + pub keep_intermediate_proofs: bool, +} + +/// The main function for the client. +pub(crate) async fn client_main( + runtime: Runtime, + rpc_params: RpcParams, + block_interval: BlockInterval, + mut params: ProofParams, +) -> Result<()> { + let cached_provider = rpc::provider::CachedProvider::new(build_http_retry_provider( + rpc_params.rpc_url.clone(), + rpc_params.backoff, + rpc_params.max_retries, + )); + + let prover_input = rpc::prover_input( + &cached_provider, + block_interval, + params.checkpoint_block_number.into(), + rpc_params.rpc_type, + ) + .await?; + + // If `keep_intermediate_proofs` is not set we only keep the last block + // proof from the interval. It contains all the necessary information to + // verify the whole sequence. + let proved_blocks = prover_input + .prove( + &runtime, + params.max_cpu_len_log, + params.previous_proof.take(), + params.batch_size, + params.save_inputs_on_error, + params.proof_output_dir.clone(), + ) + .await; + runtime.close().await?; + let proved_blocks = proved_blocks?; + + if cfg!(feature = "test_only") { + info!("All proof witnesses have been generated successfully."); + } else { + info!("All proofs have been generated successfully."); + } + + if params.keep_intermediate_proofs { + if params.proof_output_dir.is_some() { + // All proof files (including intermediary) are written to disk and kept + warn!("Skipping cleanup, intermediate proof files are kept"); + } else { + // Output all proofs to stdout + std::io::stdout().write_all(&serde_json::to_vec( + &proved_blocks + .into_iter() + .filter_map(|(_, block)| block) + .collect::>(), + )?)?; + } + } else if let Some(proof_output_dir) = params.proof_output_dir.as_ref() { + // Remove intermediary proof files + proved_blocks + .into_iter() + .rev() + .skip(1) + .map(|(block_number, _)| { + generate_block_proof_file_name(&proof_output_dir.to_str(), block_number) + }) + .for_each(|path| { + if let Err(e) = std::fs::remove_file(path) { + error!("Failed to remove intermediate proof file: {e}"); + } + }); + } else { + // Output only last proof to stdout + if let Some(last_block) = proved_blocks + .into_iter() + .filter_map(|(_, block)| block) + .last() + { + std::io::stdout().write_all(&serde_json::to_vec(&last_block)?)?; + } + } + + Ok(()) +} diff --git a/zero_bin/leader/src/http.rs b/zero_bin/leader/src/http.rs new file mode 100644 index 000000000..971192384 --- /dev/null +++ b/zero_bin/leader/src/http.rs @@ -0,0 +1,113 @@ +use std::{net::SocketAddr, path::PathBuf, sync::Arc}; + +use alloy::primitives::U256; +use anyhow::{bail, Result}; +use axum::{http::StatusCode, routing::post, Json, Router}; +use paladin::runtime::Runtime; +use proof_gen::proof_types::GeneratedBlockProof; +use prover::BlockProverInput; +use serde::{Deserialize, Serialize}; +use serde_json::to_writer; +use tracing::{debug, error, info}; + +/// The main function for the HTTP mode. +pub(crate) async fn http_main( + runtime: Runtime, + port: u16, + output_dir: PathBuf, + max_cpu_len_log: usize, + batch_size: usize, + save_inputs_on_error: bool, +) -> Result<()> { + let addr = SocketAddr::from(([0, 0, 0, 0], port)); + debug!("listening on {}", addr); + + let runtime = Arc::new(runtime); + let app = Router::new().route( + "/prove", + post({ + let runtime = runtime.clone(); + move |body| { + prove( + body, + runtime, + output_dir.clone(), + max_cpu_len_log, + batch_size, + save_inputs_on_error, + ) + } + }), + ); + let listener = tokio::net::TcpListener::bind(&addr).await?; + Ok(axum::serve(listener, app).await?) +} + +/// Writes the generated block proof to a file. +/// +/// Returns the fully qualified file name. +fn write_to_file( + output_dir: PathBuf, + block_number: U256, + generated_block_proof: &GeneratedBlockProof, +) -> Result { + let file_name = format!("proof-{}.json", block_number); + let fully_qualified_file_name = output_dir.join(file_name); + let file = std::fs::File::create(fully_qualified_file_name.clone()); + + match file { + Ok(file) => { + to_writer(file, &generated_block_proof)?; + Ok(fully_qualified_file_name) + } + Err(e) => { + bail!("Error while writing to file: {e:#?}"); + } + } +} + +#[derive(Serialize, Deserialize, Debug)] +struct HttpProverInput { + prover_input: BlockProverInput, + previous: Option, +} + +async fn prove( + Json(payload): Json, + runtime: Arc, + output_dir: PathBuf, + max_cpu_len_log: usize, + batch_size: usize, + save_inputs_on_error: bool, +) -> StatusCode { + debug!("Received payload: {:#?}", payload); + + let block_number = payload.prover_input.get_block_number(); + + match payload + .prover_input + .prove( + &runtime, + max_cpu_len_log, + payload.previous.map(futures::future::ok), + batch_size, + save_inputs_on_error, + ) + .await + { + Ok(b_proof) => match write_to_file(output_dir, block_number, &b_proof) { + Ok(file) => { + info!("Successfully wrote proof to {}", file.display()); + StatusCode::OK + } + Err(e) => { + error!("{e}"); + StatusCode::INTERNAL_SERVER_ERROR + } + }, + Err(e) => { + error!("Error while proving block {block_number}: {e:#?}"); + StatusCode::INTERNAL_SERVER_ERROR + } + } +} diff --git a/zero_bin/leader/src/init.rs b/zero_bin/leader/src/init.rs new file mode 100644 index 000000000..f93914895 --- /dev/null +++ b/zero_bin/leader/src/init.rs @@ -0,0 +1,11 @@ +use tracing_subscriber::{prelude::*, util::SubscriberInitExt, EnvFilter}; +pub(crate) fn tracing() { + tracing_subscriber::Registry::default() + .with( + tracing_subscriber::fmt::layer() + .with_ansi(false) + .compact() + .with_filter(EnvFilter::from_default_env()), + ) + .init(); +} diff --git a/zero_bin/leader/src/main.rs b/zero_bin/leader/src/main.rs new file mode 100644 index 000000000..f76e94300 --- /dev/null +++ b/zero_bin/leader/src/main.rs @@ -0,0 +1,171 @@ +use std::{env, io}; +use std::{fs::File, path::PathBuf}; + +use anyhow::Result; +use clap::Parser; +use cli::Command; +use client::RpcParams; +use dotenvy::dotenv; +use ops::register; +use paladin::runtime::Runtime; +use proof_gen::proof_types::GeneratedBlockProof; +use tracing::{info, warn}; +use zero_bin_common::block_interval::BlockInterval; + +use crate::client::{client_main, ProofParams}; + +mod cli; +mod client; +mod http; +mod init; +mod stdio; + +const EVM_ARITH_VER_KEY: &str = "EVM_ARITHMETIZATION_PKG_VER"; + +fn get_previous_proof(path: Option) -> Result> { + if path.is_none() { + return Ok(None); + } + + let path = path.unwrap(); + let file = File::open(path)?; + let des = &mut serde_json::Deserializer::from_reader(&file); + let proof: GeneratedBlockProof = serde_path_to_error::deserialize(des)?; + Ok(Some(proof)) +} + +#[tokio::main] +async fn main() -> Result<()> { + load_dotenvy_vars_if_present(); + init::tracing(); + + if env::var_os(EVM_ARITH_VER_KEY).is_none() { + // Safety: + // - we're early enough in main that nothing else should race + unsafe { + env::set_var( + EVM_ARITH_VER_KEY, + // see build.rs + env!("EVM_ARITHMETIZATION_PACKAGE_VERSION"), + ); + } + }; + + let args = cli::Cli::parse(); + if let paladin::config::Runtime::InMemory = args.paladin.runtime { + // If running in emulation mode, we'll need to initialize the prover + // state here. + args.prover_state_config + .into_prover_state_manager() + .initialize()?; + } + + let runtime = Runtime::from_config(&args.paladin, register()).await?; + + match args.command { + Command::Stdio { + previous_proof, + max_cpu_len_log, + batch_size, + save_inputs_on_error, + } => { + let previous_proof = get_previous_proof(previous_proof)?; + stdio::stdio_main( + runtime, + max_cpu_len_log, + previous_proof, + batch_size, + save_inputs_on_error, + ) + .await?; + } + Command::Http { + port, + output_dir, + max_cpu_len_log, + batch_size, + save_inputs_on_error, + } => { + // check if output_dir exists, is a directory, and is writable + let output_dir_metadata = std::fs::metadata(&output_dir); + if output_dir_metadata.is_err() { + // Create output directory + std::fs::create_dir(&output_dir)?; + } else if !output_dir.is_dir() || output_dir_metadata?.permissions().readonly() { + panic!("output-dir is not a writable directory"); + } + + http::http_main( + runtime, + port, + output_dir, + max_cpu_len_log, + batch_size, + save_inputs_on_error, + ) + .await?; + } + Command::Rpc { + rpc_url, + rpc_type, + block_interval, + checkpoint_block_number, + previous_proof, + proof_output_dir, + max_cpu_len_log, + batch_size, + save_inputs_on_error, + block_time, + keep_intermediate_proofs, + backoff, + max_retries, + } => { + let previous_proof = get_previous_proof(previous_proof)?; + let mut block_interval = BlockInterval::new(&block_interval)?; + + if let BlockInterval::FollowFrom { + start_block: _, + block_time: ref mut block_time_opt, + } = block_interval + { + *block_time_opt = Some(block_time); + } + + info!("Proving interval {block_interval}"); + client_main( + runtime, + RpcParams { + rpc_url, + rpc_type, + backoff, + max_retries, + }, + block_interval, + ProofParams { + checkpoint_block_number, + previous_proof, + proof_output_dir, + max_cpu_len_log, + batch_size, + save_inputs_on_error, + keep_intermediate_proofs, + }, + ) + .await?; + } + } + + Ok(()) +} + +/// Attempt to load in the local `.env` if present and set any environment +/// variables specified inside of it. +/// +/// To keep things simple, any IO error we will treat as the file not existing +/// and continue moving on without the `env` variables set. +fn load_dotenvy_vars_if_present() { + match dotenv() { + Ok(_) | Err(dotenvy::Error::Io(io::Error { .. })) => (), + Err(e) => warn!("Found local `.env` file but was unable to parse it! (err: {e})",), + } +} diff --git a/zero_bin/leader/src/stdio.rs b/zero_bin/leader/src/stdio.rs new file mode 100644 index 000000000..3b8bc2660 --- /dev/null +++ b/zero_bin/leader/src/stdio.rs @@ -0,0 +1,51 @@ +use std::io::{Read, Write}; + +use anyhow::Result; +use paladin::runtime::Runtime; +use proof_gen::proof_types::GeneratedBlockProof; +use prover::ProverInput; +use tracing::info; + +/// The main function for the stdio mode. +pub(crate) async fn stdio_main( + runtime: Runtime, + max_cpu_len_log: usize, + previous: Option, + batch_size: usize, + save_inputs_on_error: bool, +) -> Result<()> { + let mut buffer = String::new(); + std::io::stdin().read_to_string(&mut buffer)?; + + let des = &mut serde_json::Deserializer::from_str(&buffer); + let prover_input = ProverInput { + blocks: serde_path_to_error::deserialize(des)?, + }; + + let proved_blocks = prover_input + .prove( + &runtime, + max_cpu_len_log, + previous, + batch_size, + save_inputs_on_error, + None, + ) + .await; + runtime.close().await?; + let proved_blocks = proved_blocks?; + + if cfg!(feature = "test_only") { + info!("All proof witnesses have been generated successfully."); + } else { + info!("All proofs have been generated successfully."); + } + + let proofs: Vec = proved_blocks + .into_iter() + .filter_map(|(_, proof)| proof) + .collect(); + std::io::stdout().write_all(&serde_json::to_vec(&proofs)?)?; + + Ok(()) +} diff --git a/zero_bin/ops/Cargo.toml b/zero_bin/ops/Cargo.toml new file mode 100644 index 000000000..11a9931b6 --- /dev/null +++ b/zero_bin/ops/Cargo.toml @@ -0,0 +1,24 @@ +[package] +name = "ops" +version = "0.1.0" +authors = ["Polygon Zero "] +edition.workspace = true +license.workspace = true +repository.workspace = true +keywords.workspace = true +categories.workspace = true + +[dependencies] +paladin-core = { workspace = true } +serde = { workspace = true } +evm_arithmetization = { workspace = true } +proof_gen = { workspace = true } +tracing = { workspace = true } +trace_decoder = { workspace = true } +keccak-hash = { workspace = true } + +zero_bin_common ={ path = "../common" } + +[features] +default = [] +test_only = [] diff --git a/zero_bin/ops/src/lib.rs b/zero_bin/ops/src/lib.rs new file mode 100644 index 000000000..deb059cd3 --- /dev/null +++ b/zero_bin/ops/src/lib.rs @@ -0,0 +1,322 @@ +use std::time::Instant; + +use evm_arithmetization::{proof::PublicValues, GenerationInputs}; +use keccak_hash::keccak; +use paladin::{ + operation::{FatalError, FatalStrategy, Monoid, Operation, Result}, + registry, RemoteExecute, +}; +use proof_gen::{ + proof_gen::{generate_block_proof, generate_segment_agg_proof, generate_transaction_agg_proof}, + proof_types::{ + GeneratedBlockProof, GeneratedTxnAggProof, SegmentAggregatableProof, TxnAggregatableProof, + }, +}; +use serde::{Deserialize, Serialize}; +use trace_decoder::types::AllData; +use tracing::{error, event, info_span, Level}; +use zero_bin_common::{debug_utils::save_inputs_to_disk, prover_state::p_state}; + +registry!(); + +#[derive(Deserialize, Serialize, RemoteExecute)] +pub struct SegmentProof { + pub save_inputs_on_error: bool, +} + +#[cfg(not(feature = "test_only"))] +impl Operation for SegmentProof { + type Input = AllData; + type Output = proof_gen::proof_types::SegmentAggregatableProof; + + fn execute(&self, all_data: Self::Input) -> Result { + let input = all_data.0.clone(); + let segment_index = all_data.1.segment_index(); + let _span = SegmentProofSpan::new(&input, all_data.1.segment_index()); + let proof = if self.save_inputs_on_error { + zero_bin_common::prover_state::p_manager() + .generate_segment_proof(all_data) + .map_err(|err| { + if let Err(write_err) = save_inputs_to_disk( + format!( + "b{}_txns_{}-{}-({})_input.log", + input.block_metadata.block_number, + input.txn_number_before, + input.txn_number_before + input.signed_txns.len(), + segment_index + ), + input, + ) { + error!("Failed to save txn proof input to disk: {:?}", write_err); + } + + FatalError::from_anyhow(err, FatalStrategy::Terminate) + })? + } else { + zero_bin_common::prover_state::p_manager() + .generate_segment_proof(all_data) + .map_err(|err| FatalError::from_anyhow(err, FatalStrategy::Terminate))? + }; + + Ok(proof.into()) + } +} + +#[cfg(feature = "test_only")] +impl Operation for SegmentProof { + type Input = AllData; + type Output = (); + + fn execute(&self, input: Self::Input) -> Result { + let gen_input = input.0; + let segment_index = input.1.segment_index(); + let _span = SegmentProofSpan::new(&gen_input, input.1.segment_index()); + + if self.save_inputs_on_error { + evm_arithmetization::prover::testing::simulate_execution::( + gen_input.clone(), + ) + .map_err(|err| { + if let Err(write_err) = save_inputs_to_disk( + format!( + "b{}_txns_{}-{}-({})_input.log", + gen_input.block_metadata.block_number, + gen_input.txn_number_before, + gen_input.txn_number_before + gen_input.signed_txns.len(), + segment_index + ), + gen_input, + ) { + error!("Failed to save txn proof input to disk: {:?}", write_err); + } + + FatalError::from_anyhow(err, FatalStrategy::Terminate) + })?; + } else { + evm_arithmetization::prover::testing::simulate_execution::( + gen_input.clone(), + ) + .map_err(|err| FatalError::from_anyhow(err, FatalStrategy::Terminate))?; + } + + Ok(()) + } +} + +/// RAII struct to measure the time taken by a transaction proof. +/// +/// - When created, it starts a span with the transaction proof id. +/// - When dropped, it logs the time taken by the transaction proof. +struct SegmentProofSpan { + _span: tracing::span::EnteredSpan, + start: Instant, + descriptor: String, +} + +impl SegmentProofSpan { + /// Get a unique id for the transaction proof. + fn get_id(ir: &GenerationInputs, segment_index: usize) -> String { + format!( + "b{} - {}_{} ({})", + ir.block_metadata.block_number, + ir.txn_number_before, + ir.txn_number_before + ir.signed_txns.len(), + segment_index + ) + } + + /// Get a textual descriptor for the transaction proof. + /// + /// Either the first 8 characters of the hex-encoded hash of the first and + /// last transactions, or "Dummy" if there is no transaction. + fn get_descriptor(ir: &GenerationInputs) -> String { + if ir.signed_txns.is_empty() { + "Dummy".to_string() + } else { + let first_encoding: [u8; 8] = + keccak(ir.signed_txns[0].clone())[..8].try_into().unwrap(); + let last_encoding: [u8; 8] = keccak( + ir.signed_txns + .last() + .expect("the vector of transactions is not empty") + .clone(), + )[..8] + .try_into() + .unwrap(); + format!("{:x?}..{:x?}", first_encoding, last_encoding) + } + } + + /// Create a new transaction proof span. + /// + /// When dropped, it logs the time taken by the transaction proof. + fn new(ir: &GenerationInputs, segment_index: usize) -> Self { + let id = Self::get_id(ir, segment_index); + let span = info_span!("p_gen", id).entered(); + let start = Instant::now(); + let descriptor = Self::get_descriptor(ir); + Self { + _span: span, + start, + descriptor, + } + } +} + +impl Drop for SegmentProofSpan { + fn drop(&mut self) { + event!( + Level::INFO, + "segment proof ({}) took {:?}", + self.descriptor, + self.start.elapsed() + ); + } +} + +#[derive(Deserialize, Serialize, RemoteExecute)] +pub struct SegmentAggProof { + pub save_inputs_on_error: bool, +} + +fn get_seg_agg_proof_public_values(elem: SegmentAggregatableProof) -> PublicValues { + match elem { + SegmentAggregatableProof::Seg(info) => info.p_vals, + SegmentAggregatableProof::Agg(info) => info.p_vals, + } +} + +impl Monoid for SegmentAggProof { + type Elem = SegmentAggregatableProof; + + fn combine(&self, a: Self::Elem, b: Self::Elem) -> Result { + let result = generate_segment_agg_proof(p_state(), &a, &b, false).map_err(|e| { + if self.save_inputs_on_error { + let pv = vec![ + get_seg_agg_proof_public_values(a), + get_seg_agg_proof_public_values(b), + ]; + if let Err(write_err) = save_inputs_to_disk( + format!( + "b{}_agg_lhs_rhs_inputs.log", + pv[0].block_metadata.block_number + ), + pv, + ) { + error!("Failed to save agg proof inputs to disk: {:?}", write_err); + } + } + + FatalError::from(e) + })?; + + Ok(result.into()) + } + + fn empty(&self) -> Self::Elem { + // Expect that empty blocks are padded. + unimplemented!("empty agg proof") + } +} + +#[derive(Deserialize, Serialize, RemoteExecute)] +pub struct TxnAggProof { + pub save_inputs_on_error: bool, +} +fn get_agg_proof_public_values(elem: TxnAggregatableProof) -> PublicValues { + match elem { + TxnAggregatableProof::Segment(info) => info.p_vals, + TxnAggregatableProof::Txn(info) => info.p_vals, + TxnAggregatableProof::Agg(info) => info.p_vals, + } +} + +impl Monoid for TxnAggProof { + type Elem = TxnAggregatableProof; + + fn combine(&self, a: Self::Elem, b: Self::Elem) -> Result { + let lhs = match a { + TxnAggregatableProof::Segment(segment) => TxnAggregatableProof::from( + generate_segment_agg_proof( + p_state(), + &SegmentAggregatableProof::from(segment.clone()), + &SegmentAggregatableProof::from(segment), + true, + ) + .map_err(FatalError::from)?, + ), + _ => a, + }; + + let rhs = match b { + TxnAggregatableProof::Segment(segment) => TxnAggregatableProof::from( + generate_segment_agg_proof( + p_state(), + &SegmentAggregatableProof::from(segment.clone()), + &SegmentAggregatableProof::from(segment), + true, + ) + .map_err(FatalError::from)?, + ), + _ => b, + }; + + let result = generate_transaction_agg_proof(p_state(), &lhs, &rhs).map_err(|e| { + if self.save_inputs_on_error { + let pv = vec![ + get_agg_proof_public_values(lhs), + get_agg_proof_public_values(rhs), + ]; + if let Err(write_err) = save_inputs_to_disk( + format!( + "b{}_agg_lhs_rhs_inputs.log", + pv[0].block_metadata.block_number + ), + pv, + ) { + error!("Failed to save agg proof inputs to disk: {:?}", write_err); + } + } + + FatalError::from(e) + })?; + + Ok(result.into()) + } + + fn empty(&self) -> Self::Elem { + // Expect that empty blocks are padded. + unimplemented!("empty agg proof") + } +} + +#[derive(Deserialize, Serialize, RemoteExecute)] +pub struct BlockProof { + pub prev: Option, + pub save_inputs_on_error: bool, +} + +impl Operation for BlockProof { + type Input = GeneratedTxnAggProof; + type Output = GeneratedBlockProof; + + fn execute(&self, input: Self::Input) -> Result { + Ok( + generate_block_proof(p_state(), self.prev.as_ref(), &input).map_err(|e| { + if self.save_inputs_on_error { + if let Err(write_err) = save_inputs_to_disk( + format!( + "b{}_block_input.log", + input.p_vals.block_metadata.block_number + ), + input.p_vals, + ) { + error!("Failed to save block proof input to disk: {:?}", write_err); + } + } + + FatalError::from(e) + })?, + ) + } +} diff --git a/zero_bin/prover/Cargo.toml b/zero_bin/prover/Cargo.toml new file mode 100644 index 000000000..3c2d9e131 --- /dev/null +++ b/zero_bin/prover/Cargo.toml @@ -0,0 +1,31 @@ +[package] +name = "prover" +authors = ["Polygon Zero "] +version = "0.1.0" +edition.workspace = true +license.workspace = true +repository.workspace = true +keywords.workspace = true +categories.workspace = true + +[dependencies] +serde = { workspace = true } +proof_gen = { workspace = true } +plonky2 = { workspace = true } +trace_decoder = { workspace = true } +tracing = { workspace = true } +paladin-core = { workspace = true } +anyhow = { workspace = true } +evm_arithmetization = { workspace = true } +futures = { workspace = true } +alloy.workspace = true +tokio = {workspace = true} +serde_json = {workspace = true} +ruint = { workspace = true, features = ["num-traits", "primitive-types"] } +ops = { workspace = true } +zero_bin_common ={ workspace = true } +num-traits = { workspace = true } + +[features] +default = [] +test_only = ["ops/test_only"] diff --git a/zero_bin/prover/src/lib.rs b/zero_bin/prover/src/lib.rs new file mode 100644 index 000000000..aa5367dc0 --- /dev/null +++ b/zero_bin/prover/src/lib.rs @@ -0,0 +1,257 @@ +use std::future::Future; +use std::path::PathBuf; + +use alloy::primitives::{BlockNumber, U256}; +use anyhow::{Context, Result}; +use futures::{future::BoxFuture, stream::FuturesOrdered, FutureExt, TryFutureExt, TryStreamExt}; +use num_traits::ToPrimitive as _; +use paladin::runtime::Runtime; +use proof_gen::proof_types::GeneratedBlockProof; +use serde::{Deserialize, Serialize}; +use tokio::io::AsyncWriteExt; +use tokio::sync::oneshot; +use trace_decoder::{ + processed_block_trace::ProcessingMeta, + trace_protocol::BlockTrace, + types::{CodeHash, OtherBlockData}, +}; +use tracing::info; +use zero_bin_common::fs::generate_block_proof_file_name; + +#[derive(Debug, Deserialize, Serialize)] +pub struct BlockProverInput { + pub block_trace: BlockTrace, + pub other_data: OtherBlockData, +} +fn resolve_code_hash_fn(_: &CodeHash) -> Vec { + todo!() +} + +impl BlockProverInput { + pub fn get_block_number(&self) -> U256 { + self.other_data.b_data.b_meta.block_number.into() + } + + #[cfg(not(feature = "test_only"))] + pub async fn prove( + self, + runtime: &Runtime, + max_cpu_len_log: usize, + previous: Option>>, + batch_size: usize, + save_inputs_on_error: bool, + ) -> Result { + use anyhow::Context as _; + use evm_arithmetization::prover::SegmentDataIterator; + use futures::{stream::FuturesUnordered, FutureExt}; + use paladin::directive::{Directive, IndexedStream}; + + let block_number = self.get_block_number(); + info!("Proving block {block_number}"); + + let other_data = self.other_data; + let txs = self.block_trace.into_txn_proof_gen_ir( + &ProcessingMeta::new(resolve_code_hash_fn), + other_data.clone(), + batch_size, + )?; + + // Generate segment data. + let agg_ops = ops::SegmentAggProof { + save_inputs_on_error, + }; + + let seg_ops = ops::SegmentProof { + save_inputs_on_error, + }; + + // Map the transactions to a stream of transaction proofs. + let tx_proof_futs: FuturesUnordered<_> = txs + .iter() + .enumerate() + .map(|(idx, txn)| { + let data_iterator = SegmentDataIterator { + partial_next_data: None, + inputs: txn, + max_cpu_len_log: Some(max_cpu_len_log), + }; + + Directive::map(IndexedStream::from(data_iterator), &seg_ops) + .fold(&agg_ops) + .run(runtime) + .map(move |e| { + e.map(|p| (idx, proof_gen::proof_types::TxnAggregatableProof::from(p))) + }) + }) + .collect(); + + // Fold the transaction proof stream into a single transaction proof. + let final_txn_proof = Directive::fold( + IndexedStream::new(tx_proof_futs), + &ops::TxnAggProof { + save_inputs_on_error, + }, + ) + .run(runtime) + .await?; + + if let proof_gen::proof_types::TxnAggregatableProof::Agg(proof) = final_txn_proof { + let block_number = block_number + .to_u64() + .context("block number overflows u64")?; + let prev = match previous { + Some(it) => Some(it.await?), + None => None, + }; + + let block_proof = paladin::directive::Literal(proof) + .map(&ops::BlockProof { + prev, + save_inputs_on_error, + }) + .run(runtime) + .await?; + + info!("Successfully proved block {block_number}"); + + Ok(block_proof.0) + } else { + anyhow::bail!("AggProof is is not GeneratedAggProof") + } + } + + #[cfg(feature = "test_only")] + pub async fn prove( + self, + _runtime: &Runtime, + max_cpu_len_log: usize, + _previous: Option>>, + batch_size: usize, + _save_inputs_on_error: bool, + ) -> Result { + use evm_arithmetization::prover::testing::simulate_all_segments_interpreter; + use plonky2::field::goldilocks_field::GoldilocksField; + + let block_number = self.get_block_number(); + info!("Testing witness generation for block {block_number}."); + + let other_data = self.other_data; + let txs = self.block_trace.into_txn_proof_gen_ir( + &ProcessingMeta::new(resolve_code_hash_fn), + other_data.clone(), + batch_size, + )?; + + type F = GoldilocksField; + for txn in txs.into_iter() { + simulate_all_segments_interpreter::(txn, max_cpu_len_log)?; + } + + info!("Successfully generated witness for block {block_number}."); + + // Dummy proof to match expected output type. + Ok(GeneratedBlockProof { + b_height: block_number + .to_u64() + .expect("Block number should fit in a u64"), + intern: proof_gen::proof_gen::dummy_proof()?, + }) + } +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct ProverInput { + pub blocks: Vec, +} + +impl ProverInput { + /// Prove all the blocks in the input. + /// Return the list of block numbers that are proved and if the proof data + /// is not saved to disk, return the generated block proofs as well. + pub async fn prove( + self, + runtime: &Runtime, + max_cpu_len_log: usize, + previous_proof: Option, + batch_size: usize, + save_inputs_on_error: bool, + proof_output_dir: Option, + ) -> Result)>> { + let mut prev: Option>> = + previous_proof.map(|proof| Box::pin(futures::future::ok(proof)) as BoxFuture<_>); + + let results: FuturesOrdered<_> = self + .blocks + .into_iter() + .map(|block| { + let block_number = block.get_block_number(); + info!("Proving block {block_number}"); + + let (tx, rx) = oneshot::channel::(); + + // Prove the block + let proof_output_dir = proof_output_dir.clone(); + let fut = block + .prove( + runtime, + max_cpu_len_log, + prev.take(), + batch_size, + save_inputs_on_error, + ) + .then(move |proof| async move { + let proof = proof?; + let block_number = proof.b_height; + + // Write latest generated proof to disk if proof_output_dir is provided + let return_proof: Option = + if proof_output_dir.is_some() { + ProverInput::write_proof(proof_output_dir, &proof).await?; + None + } else { + Some(proof.clone()) + }; + + if tx.send(proof).is_err() { + anyhow::bail!("Failed to send proof"); + } + + Ok((block_number, return_proof)) + }) + .boxed(); + + prev = Some(Box::pin(rx.map_err(anyhow::Error::new))); + + fut + }) + .collect(); + + results.try_collect().await + } + + /// Write the proof to the disk (if `output_dir` is provided) or stdout. + pub(crate) async fn write_proof( + output_dir: Option, + proof: &GeneratedBlockProof, + ) -> Result<()> { + let proof_serialized = serde_json::to_vec(proof)?; + let block_proof_file_path = + output_dir.map(|path| generate_block_proof_file_name(&path.to_str(), proof.b_height)); + match block_proof_file_path { + Some(p) => { + if let Some(parent) = p.parent() { + tokio::fs::create_dir_all(parent).await?; + } + + let mut f = tokio::fs::File::create(p).await?; + f.write_all(&proof_serialized) + .await + .context("Failed to write proof to disk") + } + None => tokio::io::stdout() + .write_all(&proof_serialized) + .await + .context("Failed to write proof to stdout"), + } + } +} diff --git a/zero_bin/rpc/Cargo.toml b/zero_bin/rpc/Cargo.toml new file mode 100644 index 000000000..0bb5a2df3 --- /dev/null +++ b/zero_bin/rpc/Cargo.toml @@ -0,0 +1,32 @@ +[package] +name = "rpc" +authors = ["Polygon Zero "] +version = "0.1.0" +edition.workspace = true +license.workspace = true +repository.workspace = true +keywords.workspace = true +categories.workspace = true + +[dependencies] +tokio = { workspace = true } +tracing-subscriber = { workspace = true } +anyhow = { workspace = true } +serde = { workspace = true } +trace_decoder = { workspace = true } +serde_json = { workspace = true } +clap = { workspace = true } +evm_arithmetization = { workspace = true } +mpt_trie = { workspace = true } +alloy.workspace = true +futures = { workspace = true } +url = { workspace = true } +__compat_primitive_types = { workspace = true } +tower = { workspace = true, features = ["retry"] } +lru = { workspace = true } + +# Local dependencies +compat = { workspace = true } +zero_bin_common = { workspace = true } +prover = { workspace = true } + diff --git a/zero_bin/rpc/src/jerigon.rs b/zero_bin/rpc/src/jerigon.rs new file mode 100644 index 000000000..6a04c331e --- /dev/null +++ b/zero_bin/rpc/src/jerigon.rs @@ -0,0 +1,65 @@ +use alloy::{ + primitives::B256, providers::Provider, rpc::types::eth::BlockId, transports::Transport, +}; +use prover::BlockProverInput; +use serde::Deserialize; +use serde_json::json; +use trace_decoder::trace_protocol::{ + BlockTrace, BlockTraceTriePreImages, CombinedPreImages, TrieCompact, TxnInfo, +}; + +use super::fetch_other_block_data; +use crate::provider::CachedProvider; + +/// Transaction traces retrieved from Erigon zeroTracer. +#[derive(Debug, Deserialize)] +pub struct ZeroTxResult { + #[serde(rename(deserialize = "txHash"))] + pub tx_hash: alloy::primitives::TxHash, + pub result: TxnInfo, +} + +/// Block witness retrieved from Erigon zeroTracer. +#[derive(Debug, Deserialize)] +pub struct ZeroBlockWitness(TrieCompact); + +pub async fn block_prover_input( + cached_provider: &CachedProvider, + target_block_id: BlockId, + checkpoint_state_trie_root: B256, +) -> anyhow::Result +where + ProviderT: Provider, + TransportT: Transport + Clone, +{ + // Grab trace information + let tx_results = cached_provider + .as_provider() + .raw_request::<_, Vec>( + "debug_traceBlockByNumber".into(), + (target_block_id, json!({"tracer": "zeroTracer"})), + ) + .await?; + + // Grab block witness info (packed as combined trie pre-images) + let block_witness = cached_provider + .as_provider() + .raw_request::<_, ZeroBlockWitness>("eth_getWitness".into(), vec![target_block_id]) + .await?; + + let other_data = + fetch_other_block_data(cached_provider, target_block_id, checkpoint_state_trie_root) + .await?; + + // Assemble + Ok(BlockProverInput { + block_trace: BlockTrace { + trie_pre_images: BlockTraceTriePreImages::Combined(CombinedPreImages { + compact: block_witness.0, + }), + txn_info: tx_results.into_iter().map(|it| it.result).collect(), + code_db: Default::default(), + }, + other_data, + }) +} diff --git a/zero_bin/rpc/src/lib.rs b/zero_bin/rpc/src/lib.rs new file mode 100644 index 000000000..4f3646a45 --- /dev/null +++ b/zero_bin/rpc/src/lib.rs @@ -0,0 +1,194 @@ +use alloy::{ + primitives::B256, + providers::Provider, + rpc::types::eth::{BlockId, BlockNumberOrTag, BlockTransactionsKind, Withdrawal}, + transports::Transport, +}; +use anyhow::Context as _; +use clap::ValueEnum; +use compat::Compat; +use evm_arithmetization::proof::{BlockHashes, BlockMetadata}; +use futures::{StreamExt as _, TryStreamExt as _}; +use prover::ProverInput; +use trace_decoder::types::{BlockLevelData, OtherBlockData}; +use zero_bin_common::block_interval::BlockInterval; + +pub mod jerigon; +pub mod native; +pub mod provider; +pub mod retry; + +use crate::provider::CachedProvider; + +const PREVIOUS_HASHES_COUNT: usize = 256; + +/// The RPC type. +#[derive(ValueEnum, Clone, Debug)] +pub enum RpcType { + Jerigon, + Native, +} + +/// Obtain the prover input for a given block interval +pub async fn prover_input( + cached_provider: &CachedProvider, + block_interval: BlockInterval, + checkpoint_block_id: BlockId, + rpc_type: RpcType, +) -> anyhow::Result +where + ProviderT: Provider, + TransportT: Transport + Clone, +{ + // Grab interval checkpoint block state trie + let checkpoint_state_trie_root = cached_provider + .get_block(checkpoint_block_id, BlockTransactionsKind::Hashes) + .await? + .header + .state_root; + + let mut block_proofs = Vec::new(); + let mut block_interval = block_interval.into_bounded_stream()?; + + while let Some(block_num) = block_interval.next().await { + let block_id = BlockId::Number(BlockNumberOrTag::Number(block_num)); + let block_prover_input = match rpc_type { + RpcType::Jerigon => { + jerigon::block_prover_input(cached_provider, block_id, checkpoint_state_trie_root) + .await? + } + RpcType::Native => { + native::block_prover_input(cached_provider, block_id, checkpoint_state_trie_root) + .await? + } + }; + + block_proofs.push(block_prover_input); + } + Ok(ProverInput { + blocks: block_proofs, + }) +} + +/// Fetches other block data +async fn fetch_other_block_data( + cached_provider: &CachedProvider, + target_block_id: BlockId, + checkpoint_state_trie_root: B256, +) -> anyhow::Result +where + ProviderT: Provider, + TransportT: Transport + Clone, +{ + let target_block = cached_provider + .get_block(target_block_id, BlockTransactionsKind::Hashes) + .await?; + let target_block_number = target_block + .header + .number + .context("target block is missing field `number`")?; + let chain_id = cached_provider.as_provider().get_chain_id().await?; + + // For one block, we will fetch 128 previous blocks to get hashes instead of + // 256. But for two consecutive blocks (odd and even) we would fetch 256 + // previous blocks in total. To overcome this, we add an offset so that we + // always start fetching from an odd index and eventually skip the additional + // block for an even `target_block_number`. + let odd_offset: i128 = target_block_number as i128 % 2; + + let previous_block_numbers = + std::iter::successors(Some(target_block_number as i128 - 1 + odd_offset), |&it| { + Some(it - 1) + }) + .take(PREVIOUS_HASHES_COUNT) + .filter(|i| *i >= 0) + .collect::>(); + let concurrency = previous_block_numbers.len(); + let collected_hashes = futures::stream::iter( + previous_block_numbers + .chunks(2) // we get hash for previous and current block with one request + .map(|block_numbers| { + let cached_provider = &cached_provider; + let block_num = &block_numbers[0]; + let previos_block_num = if block_numbers.len() > 1 { + Some(block_numbers[1]) + } else { + // For genesis block + None + }; + async move { + let block = cached_provider + .get_block((*block_num as u64).into(), BlockTransactionsKind::Hashes) + .await + .context("couldn't get block")?; + anyhow::Ok([ + (block.header.hash, Some(*block_num)), + (Some(block.header.parent_hash), previos_block_num), + ]) + } + }), + ) + .buffered(concurrency) + .try_collect::>() + .await + .context("couldn't fill previous hashes")?; + + let mut prev_hashes = [B256::ZERO; PREVIOUS_HASHES_COUNT]; + collected_hashes + .into_iter() + .flatten() + .skip(odd_offset as usize) + .for_each(|(hash, block_num)| { + if let (Some(hash), Some(block_num)) = (hash, block_num) { + // Most recent previous block hash is expected at the end of the array + prev_hashes + [PREVIOUS_HASHES_COUNT - (target_block_number - block_num as u64) as usize] = + hash; + } + }); + + let other_data = OtherBlockData { + b_data: BlockLevelData { + b_meta: BlockMetadata { + block_beneficiary: target_block.header.miner.compat(), + block_timestamp: target_block.header.timestamp.into(), + block_number: target_block_number.into(), + block_difficulty: target_block.header.difficulty.into(), + block_random: target_block + .header + .mix_hash + .context("target block is missing field `mix_hash`")? + .compat(), + block_gaslimit: target_block.header.gas_limit.into(), + block_chain_id: chain_id.into(), + block_base_fee: target_block + .header + .base_fee_per_gas + .context("target block is missing field `base_fee_per_gas`")? + .into(), + block_gas_used: target_block.header.gas_used.into(), + block_bloom: target_block.header.logs_bloom.compat(), + }, + b_hashes: BlockHashes { + prev_hashes: prev_hashes.map(|it| it.compat()).into(), + cur_hash: target_block + .header + .hash + .context("target block is missing field `hash`")? + .compat(), + }, + withdrawals: target_block + .withdrawals + .into_iter() + .flatten() + .map( + |Withdrawal { + address, amount, .. + }| { (address.compat(), amount.into()) }, + ) + .collect(), + }, + checkpoint_state_trie_root: checkpoint_state_trie_root.compat(), + }; + Ok(other_data) +} diff --git a/zero_bin/rpc/src/main.rs b/zero_bin/rpc/src/main.rs new file mode 100644 index 000000000..197e387de --- /dev/null +++ b/zero_bin/rpc/src/main.rs @@ -0,0 +1,91 @@ +use std::io; + +use alloy::rpc::types::eth::BlockId; +use clap::{Parser, ValueHint}; +use rpc::provider::CachedProvider; +use rpc::{retry::build_http_retry_provider, RpcType}; +use tracing_subscriber::{prelude::*, EnvFilter}; +use url::Url; +use zero_bin_common::block_interval::BlockInterval; + +#[derive(Parser)] +pub enum Cli { + /// Fetch and generate prover input from the RPC endpoint + Fetch { + // Starting block of interval to fetch + #[arg(short, long)] + start_block: u64, + // End block of interval to fetch + #[arg(short, long)] + end_block: u64, + /// The RPC URL. + #[arg(short = 'u', long, value_hint = ValueHint::Url)] + rpc_url: Url, + /// The RPC Tracer Type + #[arg(short = 't', long, default_value = "jerigon")] + rpc_type: RpcType, + /// The checkpoint block number. If not provided, + /// block before the `start_block` is the checkpoint + #[arg(short, long)] + checkpoint_block_number: Option, + /// Backoff in milliseconds for request retries + #[arg(long, default_value_t = 0)] + backoff: u64, + /// The maximum number of retries + #[arg(long, default_value_t = 0)] + max_retries: u32, + }, +} + +impl Cli { + /// Execute the cli command. + pub async fn execute(self) -> anyhow::Result<()> { + match self { + Self::Fetch { + start_block, + end_block, + rpc_url, + rpc_type, + checkpoint_block_number, + backoff, + max_retries, + } => { + let checkpoint_block_number = + checkpoint_block_number.unwrap_or((start_block - 1).into()); + let block_interval = BlockInterval::Range(start_block..end_block + 1); + + let cached_provider = CachedProvider::new(build_http_retry_provider( + rpc_url.clone(), + backoff, + max_retries, + )); + + // Retrieve prover input from the Erigon node + let prover_input = rpc::prover_input( + &cached_provider, + block_interval, + checkpoint_block_number, + rpc_type, + ) + .await?; + + serde_json::to_writer_pretty(io::stdout(), &prover_input.blocks)?; + } + } + Ok(()) + } +} + +#[tokio::main] +async fn main() -> anyhow::Result<()> { + tracing_subscriber::Registry::default() + .with( + tracing_subscriber::fmt::layer() + .with_ansi(false) + .compact() + .with_filter(EnvFilter::from_default_env()), + ) + .init(); + + Cli::parse().execute().await +} diff --git a/zero_bin/rpc/src/native/mod.rs b/zero_bin/rpc/src/native/mod.rs new file mode 100644 index 000000000..7d0af2de4 --- /dev/null +++ b/zero_bin/rpc/src/native/mod.rs @@ -0,0 +1,63 @@ +use std::collections::HashMap; + +use alloy::{ + primitives::B256, + providers::Provider, + rpc::types::eth::{BlockId, BlockTransactionsKind}, + transports::Transport, +}; +use futures::try_join; +use prover::BlockProverInput; +use trace_decoder::trace_protocol::BlockTrace; + +use crate::provider::CachedProvider; + +mod state; +mod txn; + +type CodeDb = HashMap<__compat_primitive_types::H256, Vec>; + +/// Fetches the prover input for the given BlockId. +pub async fn block_prover_input( + provider: &CachedProvider, + block_number: BlockId, + checkpoint_state_trie_root: B256, +) -> anyhow::Result +where + ProviderT: Provider, + TransportT: Transport + Clone, +{ + let (block_trace, other_data) = try_join!( + process_block_trace(provider, block_number), + crate::fetch_other_block_data(provider, block_number, checkpoint_state_trie_root,) + )?; + + Ok(BlockProverInput { + block_trace, + other_data, + }) +} + +/// Processes the block with the given block number and returns the block trace. +async fn process_block_trace( + cached_provider: &CachedProvider, + block_number: BlockId, +) -> anyhow::Result +where + ProviderT: Provider, + TransportT: Transport + Clone, +{ + let block = cached_provider + .get_block(block_number, BlockTransactionsKind::Full) + .await?; + + let (code_db, txn_info) = + txn::process_transactions(&block, cached_provider.as_provider()).await?; + let trie_pre_images = state::process_state_witness(cached_provider, block, &txn_info).await?; + + Ok(BlockTrace { + txn_info, + code_db: Option::from(code_db).filter(|x| !x.is_empty()), + trie_pre_images, + }) +} diff --git a/zero_bin/rpc/src/native/state.rs b/zero_bin/rpc/src/native/state.rs new file mode 100644 index 000000000..331647c82 --- /dev/null +++ b/zero_bin/rpc/src/native/state.rs @@ -0,0 +1,191 @@ +use std::collections::{HashMap, HashSet}; + +use alloy::{ + primitives::{keccak256, Address, StorageKey, B256}, + providers::Provider, + rpc::types::eth::{Block, BlockTransactionsKind, EIP1186AccountProofResponse}, + transports::Transport, +}; +use anyhow::Context as _; +use futures::future::{try_join, try_join_all}; +use mpt_trie::{builder::PartialTrieBuilder, partial_trie::HashedPartialTrie}; +use trace_decoder::trace_protocol::{ + BlockTraceTriePreImages, SeparateStorageTriesPreImage, SeparateTriePreImage, + SeparateTriePreImages, TrieDirect, TxnInfo, +}; + +use crate::provider::CachedProvider; +use crate::Compat; + +/// Processes the state witness for the given block. +pub async fn process_state_witness( + cached_provider: &CachedProvider, + block: Block, + txn_infos: &[TxnInfo], +) -> anyhow::Result +where + ProviderT: Provider, + TransportT: Transport + Clone, +{ + let state_access = process_states_access(txn_infos, &block)?; + + let block_number = block + .header + .number + .context("Block number not returned with block")?; + let prev_state_root = cached_provider + .get_block((block_number - 1).into(), BlockTransactionsKind::Hashes) + .await? + .header + .state_root; + + let (state, storage_proofs) = + generate_state_witness(prev_state_root, state_access, cached_provider, block_number) + .await?; + + Ok(BlockTraceTriePreImages::Separate(SeparateTriePreImages { + state: SeparateTriePreImage::Direct(TrieDirect(state.build())), + storage: SeparateStorageTriesPreImage::MultipleTries( + storage_proofs + .into_iter() + .map(|(a, m)| { + ( + a.compat(), + SeparateTriePreImage::Direct(TrieDirect(m.build())), + ) + }) + .collect(), + ), + })) +} + +/// Iterate over the tx_infos and process the state access for each address. +/// Also includes the state access for withdrawals and the block author. +/// +/// Returns a map from address to the set of storage keys accessed by that +/// address. +pub fn process_states_access( + tx_infos: &[TxnInfo], + block: &Block, +) -> anyhow::Result>> { + let mut state_access = HashMap::>::new(); + + if let Some(w) = block.withdrawals.as_ref() { + w.iter().for_each(|w| { + state_access.insert(w.address, Default::default()); + }) + }; + state_access.insert(block.header.miner, Default::default()); + + for txn_info in tx_infos { + for (address, trace) in txn_info.traces.iter() { + let address_storage_access = state_access.entry((*address).compat()).or_default(); + + if let Some(read_keys) = trace.storage_read.as_ref() { + address_storage_access.extend(read_keys.iter().copied().map(Compat::compat)); + } + + if let Some(written_keys) = trace.storage_written.as_ref() { + address_storage_access.extend(written_keys.keys().copied().map(Compat::compat)); + } + } + } + + Ok(state_access) +} + +/// Generates the state witness for the given block. +async fn generate_state_witness( + prev_state_root: B256, + accounts_state: HashMap>, + cached_provider: &CachedProvider, + block_number: u64, +) -> anyhow::Result<( + PartialTrieBuilder, + HashMap>, +)> +where + ProviderT: Provider, + TransportT: Transport + Clone, +{ + let mut state = PartialTrieBuilder::new(prev_state_root.compat(), Default::default()); + let mut storage_proofs = HashMap::>::new(); + + let (account_proofs, next_account_proofs) = + fetch_proof_data(accounts_state, cached_provider, block_number).await?; + + // Insert account proofs + for (address, proof) in account_proofs.into_iter() { + state.insert_proof(proof.account_proof.compat()); + + let storage_mpt = + storage_proofs + .entry(keccak256(address)) + .or_insert(PartialTrieBuilder::new( + proof.storage_hash.compat(), + Default::default(), + )); + for proof in proof.storage_proof { + storage_mpt.insert_proof(proof.proof.compat()); + } + } + + // Insert short node variants from next proofs + for (address, proof) in next_account_proofs.into_iter() { + state.insert_short_node_variants_from_proof(proof.account_proof.compat()); + + if let Some(storage_mpt) = storage_proofs.get_mut(&keccak256(address)) { + for proof in proof.storage_proof { + storage_mpt.insert_short_node_variants_from_proof(proof.proof.compat()); + } + } + } + + Ok((state, storage_proofs)) +} + +/// Fetches the proof data for the given accounts and associated storage keys. +async fn fetch_proof_data( + accounts_state: HashMap>, + provider: &CachedProvider, + block_number: u64, +) -> anyhow::Result<( + Vec<(Address, EIP1186AccountProofResponse)>, + Vec<(Address, EIP1186AccountProofResponse)>, +)> +where + ProviderT: Provider, + TransportT: Transport + Clone, +{ + let account_proofs_fut = accounts_state + .clone() + .into_iter() + .map(|(address, keys)| async move { + let proof = provider + .as_provider() + .get_proof(address, keys.into_iter().collect()) + .block_id((block_number - 1).into()) + .await + .context("Failed to get proof for account")?; + anyhow::Result::Ok((address, proof)) + }) + .collect::>(); + + let next_account_proofs_fut = accounts_state + .into_iter() + .map(|(address, keys)| async move { + let proof = provider + .as_provider() + .get_proof(address, keys.into_iter().collect()) + .block_id(block_number.into()) + .await + .context("Failed to get proof for account")?; + anyhow::Result::Ok((address, proof)) + }); + + try_join( + try_join_all(account_proofs_fut), + try_join_all(next_account_proofs_fut), + ) + .await +} diff --git a/zero_bin/rpc/src/native/txn.rs b/zero_bin/rpc/src/native/txn.rs new file mode 100644 index 000000000..40af45523 --- /dev/null +++ b/zero_bin/rpc/src/native/txn.rs @@ -0,0 +1,342 @@ +use std::collections::{HashMap, HashSet}; + +use __compat_primitive_types::{H256, U256}; +use alloy::{ + primitives::{keccak256, Address, B256}, + providers::{ + ext::DebugApi as _, + network::{eip2718::Encodable2718, Ethereum, Network}, + Provider, + }, + rpc::types::{ + eth::Transaction, + eth::{AccessList, Block}, + trace::geth::{ + AccountState, DiffMode, GethDebugBuiltInTracerType, GethTrace, PreStateConfig, + PreStateFrame, PreStateMode, + }, + trace::geth::{GethDebugTracerType, GethDebugTracingOptions}, + }, + transports::Transport, +}; +use anyhow::Context as _; +use futures::stream::{FuturesOrdered, TryStreamExt}; +use trace_decoder::trace_protocol::{ContractCodeUsage, TxnInfo, TxnMeta, TxnTrace}; + +use super::CodeDb; +use crate::Compat; + +/// Processes the transactions in the given block and updates the code db. +pub(super) async fn process_transactions( + block: &Block, + provider: &ProviderT, +) -> anyhow::Result<(CodeDb, Vec)> +where + ProviderT: Provider, + TransportT: Transport + Clone, +{ + block + .transactions + .as_transactions() + .context("No transactions in block")? + .iter() + .map(|tx| process_transaction(provider, tx)) + .collect::>() + .try_fold( + (HashMap::new(), Vec::new()), + |(mut code_db, mut txn_infos), (tx_code_db, txn_info)| async move { + code_db.extend(tx_code_db); + txn_infos.push(txn_info); + Ok((code_db, txn_infos)) + }, + ) + .await +} + +/// Processes the transaction with the given transaction hash and updates the +/// accounts state. +async fn process_transaction( + provider: &ProviderT, + tx: &Transaction, +) -> anyhow::Result<(CodeDb, TxnInfo)> +where + ProviderT: Provider, + TransportT: Transport + Clone, +{ + let (tx_receipt, pre_trace, diff_trace) = fetch_tx_data(provider, &tx.hash).await?; + let tx_receipt = tx_receipt.map_inner(rlp::map_receipt_envelope); + let access_list = parse_access_list(tx.access_list.as_ref()); + + let tx_meta = TxnMeta { + byte_code: ::TxEnvelope::try_from(tx.clone())?.encoded_2718(), + new_txn_trie_node_byte: vec![], + new_receipt_trie_node_byte: alloy::rlp::encode(tx_receipt.inner), + gas_used: tx_receipt.gas_used as u64, + }; + + let (code_db, tx_traces) = match (pre_trace, diff_trace) { + ( + GethTrace::PreStateTracer(PreStateFrame::Default(read)), + GethTrace::PreStateTracer(PreStateFrame::Diff(diff)), + ) => process_tx_traces(access_list, read, diff).await?, + _ => unreachable!(), + }; + + Ok(( + code_db, + TxnInfo { + meta: tx_meta, + traces: tx_traces + .into_iter() + .map(|(k, v)| (k.compat(), v)) + .collect(), + }, + )) +} + +/// Fetches the transaction data for the given transaction hash. +async fn fetch_tx_data( + provider: &ProviderT, + tx_hash: &B256, +) -> anyhow::Result<(::ReceiptResponse, GethTrace, GethTrace), anyhow::Error> +where + ProviderT: Provider, + TransportT: Transport + Clone, +{ + let tx_receipt_fut = provider.get_transaction_receipt(*tx_hash); + let pre_trace_fut = provider.debug_trace_transaction(*tx_hash, prestate_tracing_options(false)); + let diff_trace_fut = provider.debug_trace_transaction(*tx_hash, prestate_tracing_options(true)); + + let (tx_receipt, pre_trace, diff_trace) = + futures::try_join!(tx_receipt_fut, pre_trace_fut, diff_trace_fut,)?; + + Ok(( + tx_receipt.context("Transaction receipt not found.")?, + pre_trace, + diff_trace, + )) +} + +/// Parse the access list data into a hashmap. +fn parse_access_list(access_list: Option<&AccessList>) -> HashMap> { + let mut result = HashMap::new(); + + if let Some(access_list) = access_list { + for item in access_list.0.clone() { + result + .entry(item.address) + .or_insert_with(HashSet::new) + .extend(item.storage_keys.into_iter().map(Compat::compat)); + } + } + + result +} + +/// Processes the transaction traces and updates the accounts state. +async fn process_tx_traces( + mut access_list: HashMap>, + read_trace: PreStateMode, + diff_trace: DiffMode, +) -> anyhow::Result<(CodeDb, HashMap)> { + let DiffMode { + pre: pre_trace, + post: post_trace, + } = diff_trace; + + let addresses: HashSet<_> = read_trace + .0 + .keys() + .chain(post_trace.keys()) + .chain(pre_trace.keys()) + .chain(access_list.keys()) + .copied() + .collect(); + + let mut traces = HashMap::new(); + let mut code_db: CodeDb = HashMap::new(); + + for address in addresses { + let read_state = read_trace.0.get(&address); + let pre_state = pre_trace.get(&address); + let post_state = post_trace.get(&address); + + let balance = post_state.and_then(|x| x.balance.map(Compat::compat)); + let (storage_read, storage_written) = process_storage( + access_list.remove(&address).unwrap_or_default(), + read_state, + post_state, + pre_state, + ); + let code = process_code(post_state, read_state, &mut code_db).await; + let nonce = process_nonce(post_state, &code); + let self_destructed = process_self_destruct(post_state, pre_state); + + let result = TxnTrace { + balance, + nonce, + storage_read, + storage_written, + code_usage: code, + self_destructed, + }; + + traces.insert(address, result); + } + + Ok((code_db, traces)) +} + +/// Processes the nonce for the given account state. +/// +/// If a contract is created, the nonce is set to 1. +fn process_nonce( + post_state: Option<&AccountState>, + code_usage: &Option, +) -> Option { + post_state + .and_then(|x| x.nonce.map(Into::into)) + .or_else(|| { + if let Some(ContractCodeUsage::Write(_)) = code_usage.as_ref() { + Some(U256::from(1)) + } else { + None + } + }) +} + +/// Processes the storage for the given account state. +/// +/// Returns the storage read and written for the given account in the +/// transaction and updates the storage keys. +fn process_storage( + access_list: HashSet<__compat_primitive_types::H256>, + acct_state: Option<&AccountState>, + post_acct: Option<&AccountState>, + pre_acct: Option<&AccountState>, +) -> (Option>, Option>) { + let mut storage_read = access_list; + storage_read.extend( + acct_state + .map(|acct| { + acct.storage + .keys() + .copied() + .map(Compat::compat) + .collect::>() + }) + .unwrap_or_default(), + ); + + let mut storage_written: HashMap = post_acct + .map(|x| { + x.storage + .iter() + .map(|(k, v)| ((*k).compat(), U256::from_big_endian(&v.0))) + .collect() + }) + .unwrap_or_default(); + + // Add the deleted keys to the storage written + if let Some(pre_acct) = pre_acct { + for key in pre_acct.storage.keys() { + storage_written + .entry((*key).compat()) + .or_insert(U256::zero()); + } + }; + + ( + Option::from(storage_read.into_iter().collect::>()).filter(|v| !v.is_empty()), + Option::from(storage_written).filter(|v| !v.is_empty()), + ) +} + +/// Processes the code usage for the given account state. +async fn process_code( + post_state: Option<&AccountState>, + read_state: Option<&AccountState>, + code_db: &mut CodeDb, +) -> Option { + match ( + post_state.and_then(|x| x.code.as_ref()), + read_state.and_then(|x| x.code.as_ref()), + ) { + (Some(post_code), _) => { + let code_hash = keccak256(post_code).compat(); + code_db.insert(code_hash, post_code.to_vec()); + Some(ContractCodeUsage::Write(post_code.to_vec().into())) + } + (_, Some(read_code)) => { + let code_hash = keccak256(read_code).compat(); + code_db.insert(code_hash, read_code.to_vec()); + + Some(ContractCodeUsage::Read(code_hash)) + } + _ => None, + } +} + +/// Processes the self destruct for the given account state. +fn process_self_destruct( + post_state: Option<&AccountState>, + pre_state: Option<&AccountState>, +) -> Option { + if post_state.is_none() && pre_state.is_some() { + Some(true) + } else { + None + } +} + +mod rlp { + use alloy::consensus::{Receipt, ReceiptEnvelope}; + use alloy::rpc::types::eth::ReceiptWithBloom; + + pub fn map_receipt_envelope( + rpc: ReceiptEnvelope, + ) -> ReceiptEnvelope { + match rpc { + ReceiptEnvelope::Legacy(it) => ReceiptEnvelope::Legacy(map_receipt_with_bloom(it)), + ReceiptEnvelope::Eip2930(it) => ReceiptEnvelope::Eip2930(map_receipt_with_bloom(it)), + ReceiptEnvelope::Eip1559(it) => ReceiptEnvelope::Eip1559(map_receipt_with_bloom(it)), + ReceiptEnvelope::Eip4844(it) => ReceiptEnvelope::Eip4844(map_receipt_with_bloom(it)), + other => panic!("unsupported receipt type: {:?}", other), + } + } + fn map_receipt_with_bloom( + rpc: ReceiptWithBloom, + ) -> ReceiptWithBloom { + let ReceiptWithBloom { + receipt: + Receipt { + status, + cumulative_gas_used, + logs, + }, + logs_bloom, + } = rpc; + ReceiptWithBloom { + receipt: Receipt { + status, + cumulative_gas_used, + logs: logs.into_iter().map(|it| it.inner).collect(), + }, + logs_bloom, + } + } +} + +/// Tracing options for the debug_traceTransaction call. +fn prestate_tracing_options(diff_mode: bool) -> GethDebugTracingOptions { + GethDebugTracingOptions { + tracer_config: PreStateConfig { + diff_mode: Some(diff_mode), + } + .into(), + tracer: Some(GethDebugTracerType::BuiltInTracer( + GethDebugBuiltInTracerType::PreStateTracer, + )), + ..GethDebugTracingOptions::default() + } +} diff --git a/zero_bin/rpc/src/provider.rs b/zero_bin/rpc/src/provider.rs new file mode 100644 index 000000000..fc782ff43 --- /dev/null +++ b/zero_bin/rpc/src/provider.rs @@ -0,0 +1,94 @@ +use std::sync::Arc; + +use alloy::primitives::BlockHash; +use alloy::rpc::types::{Block, BlockId, BlockTransactionsKind}; +use alloy::{providers::Provider, transports::Transport}; +use anyhow::Context; +use tokio::sync::Mutex; + +const CACHE_SIZE: usize = 1024; + +/// Wrapper around alloy provider to cache blocks and other +/// frequently used data. +pub struct CachedProvider { + provider: ProviderT, + blocks_by_number: Arc>>, + blocks_by_hash: Arc>>, + _phantom: std::marker::PhantomData, +} + +impl CachedProvider +where + ProviderT: Provider, + TransportT: Transport + Clone, +{ + pub fn new(provider: ProviderT) -> Self { + Self { + provider, + blocks_by_number: Arc::new(Mutex::new(lru::LruCache::new( + std::num::NonZero::new(CACHE_SIZE).unwrap(), + ))), + blocks_by_hash: Arc::new(Mutex::new(lru::LruCache::new( + std::num::NonZero::new(CACHE_SIZE).unwrap(), + ))), + _phantom: std::marker::PhantomData, + } + } + + pub fn as_mut_provider(&mut self) -> &mut ProviderT { + &mut self.provider + } + + pub fn as_provider(&self) -> &ProviderT { + &self.provider + } + + /// Retrieves block by number or hash, caching it if it's not already + /// cached. + pub async fn get_block( + &self, + id: BlockId, + kind: BlockTransactionsKind, + ) -> anyhow::Result { + let cached_block = match id { + BlockId::Hash(hash) => { + let block_num = self + .blocks_by_hash + .lock() + .await + .get(&hash.block_hash) + .copied(); + if let Some(block_num) = block_num { + self.blocks_by_number.lock().await.get(&block_num).cloned() + } else { + None + } + } + BlockId::Number(alloy::rpc::types::BlockNumberOrTag::Number(number)) => { + self.blocks_by_number.lock().await.get(&number).cloned() + } + _ => None, + }; + + if let Some(block) = cached_block { + Ok(block) + } else { + let block = self + .provider + .get_block(id, kind) + .await? + .context(format!("target block {:?} does not exist", id))?; + + if let Some(block_num) = block.header.number { + self.blocks_by_number + .lock() + .await + .put(block_num, block.clone()); + if let Some(hash) = block.header.hash { + self.blocks_by_hash.lock().await.put(hash, block_num); + } + } + Ok(block) + } + } +} diff --git a/zero_bin/rpc/src/retry.rs b/zero_bin/rpc/src/retry.rs new file mode 100644 index 000000000..0c6db2291 --- /dev/null +++ b/zero_bin/rpc/src/retry.rs @@ -0,0 +1,148 @@ +use std::{ + future::Future, + pin::Pin, + task::{Context, Poll}, +}; + +use alloy::{ + providers::{ProviderBuilder, RootProvider}, + rpc::{ + client::ClientBuilder, + json_rpc::{RequestPacket, ResponsePacket}, + }, + transports::TransportError, +}; +use tower::{retry::Policy, Layer, Service}; + +#[derive(Debug)] +pub struct RetryPolicy { + backoff: tokio::time::Duration, + retries: u32, + max_retries: u32, +} + +impl Clone for RetryPolicy { + fn clone(&self) -> Self { + Self { + backoff: self.backoff, + retries: self.retries, + max_retries: self.max_retries, + } + } +} + +impl RetryPolicy { + pub fn new(backoff: tokio::time::Duration, max_retries: u32) -> Self { + Self { + backoff, + retries: 0, + max_retries, + } + } + + pub fn backoff(&self) -> tokio::time::Sleep { + tokio::time::sleep(self.backoff) + } +} + +impl Policy for RetryPolicy { + type Future = Pin + Send + 'static>>; + + fn retry( + &self, + _req: &RequestPacket, + result: Result<&ResponsePacket, &TransportError>, + ) -> Option { + // TODO: Use rate-limit specific errors/codes and retry accordingly. + if result.is_err() && self.retries < self.max_retries { + let mut policy = self.clone(); + Some(Box::pin(async move { + policy.backoff().await; + policy.retries += 1; + policy + })) + } else { + None + } + } + + fn clone_request(&self, req: &RequestPacket) -> Option { + Some(req.clone()) + } +} + +/// RetryLayer +pub struct RetryLayer { + policy: RetryPolicy, +} + +impl RetryLayer { + pub const fn new(policy: RetryPolicy) -> Self { + Self { policy } + } +} + +impl Layer for RetryLayer { + type Service = RetryService; + + fn layer(&self, inner: S) -> Self::Service { + RetryService { + inner, + policy: self.policy.clone(), + } + } +} + +/// RetryService +#[derive(Debug, Clone)] +pub struct RetryService { + inner: S, + policy: RetryPolicy, +} + +impl Service for RetryService +where + S: Service + + Send + + 'static + + Clone, + S::Future: Send + 'static, +{ + type Response = ResponsePacket; + type Error = TransportError; + type Future = Pin> + Send>>; + + fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll> { + self.inner.poll_ready(cx) + } + + fn call(&mut self, req: RequestPacket) -> Self::Future { + let inner = self.inner.clone(); + let mut policy = self.policy.clone(); + + let mut inner = std::mem::replace(&mut self.inner, inner); + Box::pin(async move { + let mut res = inner.call(req.clone()).await; + + while let Some(new_policy) = policy.retry(&req, res.as_ref()) { + policy = new_policy.await; + res = inner.call(req.clone()).await; + } + + res + }) + } +} + +pub fn build_http_retry_provider( + rpc_url: url::Url, + backoff: u64, + max_retries: u32, +) -> RootProvider> { + let retry_policy = RetryLayer::new(RetryPolicy::new( + tokio::time::Duration::from_millis(backoff), + max_retries, + )); + let client = ClientBuilder::default().layer(retry_policy).http(rpc_url); + ProviderBuilder::new().on_client(client) +} diff --git a/zero_bin/tools/artifacts/witness_b19240705.json b/zero_bin/tools/artifacts/witness_b19240705.json new file mode 100644 index 000000000..1422c84ee --- /dev/null +++ b/zero_bin/tools/artifacts/witness_b19240705.json @@ -0,0 +1,1390 @@ +[ + { + "block_trace": { + "trie_pre_images": { + "combined": { + "compact": "0x01031664dbd4a27781c8d129bab370c7498db3f71ad38853cf1c9b54ed0aefdfbc87034d9119280e061867c595d7df73f20434265a3062cae79c005715414be8e0846703324e2ab34b184864cd4c923cff7ac3d9744e0405a88580f858f8999924cb0ff503a6b60e17c4c4601ba1af49e95cf74e90c136153a495b419eb9e05756ff3da0de03310252de1f39746fdf13fa8c97d847a102ba32b3d152730d9423048eccda50790368d497df1f682ffdd3ed4f4a82e250271ac7ae096bead2a17a6207929c610482032479a848475f822582422a97702ae252f39b10b48d669bcc4bc8abdd8b205043036606ddc5a70f0fcfe956030a35ae91a6b003259bfa774a6a2b018a1b8a270c5a03e9f9e21290bfcc332e2c940e6ac9a99dc5e940085314ce91ae5ba4fcbcdca80403681320aa56c59dbc6d76dd24f979fd8e6431d4a555579b03fbd8f4debb14d4940329a98aafd5b252a5cb6edf169e6da01f3131b73a61241b0e5a9974023f20bce303064373a92fbaa74c494b9bb3c09ed235d90ee175fbb2fce2f07cb0d7e6517e3d03e9dcebfbf76992b81a6b596f81f8280c7007539757190f61b4bf7691846952c1038c3e0ea786a08d9d4ff010c17dd80831350bdd04109bd2e5641b1102d0d201d703ce018171a52ff434a6fd849ca812ad5fb12ea24ab5d00e3e92fe4517243c13e1035cfc9421e276d124a62c46c72f2feb99d7f616fa25acd16cf597b7dc531a66ca0312e5a34c61ed89765cb41e1af31f58a2387b45d3d40976446390a53f4c2eb652030a63f2ca64bf32f0a365a1728cda44264fbeefe86d9be4eb6059406b8dfb7c1003d9b3278e5c61faaf09b6914d8626dfe663a88b8b4486219f0e784205c9962a5003078468a40a017c769b325c488872cb5be8a5716d891d0e9d05676b95034a4d7c03f58b271b1ab544c0329216099bc2ea100431a4fb64920eedebe971caa0a74804038931a7b3f1f35ac1e5d35d3c5fc3771bb9f91d77a26cb1d31f8b2f118c75d69003dacbd8664c534de3efc89b9f4320ab03ef2546fc335d79396b02922d12845476033de8ca51e8f5722f83aee0eaca24e08137c8fb72a174e3de4d64e3b828601541032b8de6bd8adf2f22f570b158e9e5a68342d21614eb496e3abfb1d39d4fa0c1a303af3f7c4a5d228f3bf81538c09d60e1ca847c8ff863da885a4d320566d898009d0331e6f9f849baa8f4d97907719237c7e1c465807efb84710d9ea1bfd1360a093903068210e24a700477fa40e242b1287c7405c7332aefcaf77e92fb87b63a104700030bfaac2d323eb6898db67737c27769c6cc5898346fff8f67f60009412c5acc6a03ae56aaf99e2b4171979478eb1f9a0caafe2e98292c6c1526b63910397217cd20031196de1dcd4a9e9ac5e1bf6ae9db3bda7ac39f41a31f90ea9aa985a5e0e23bab0338a3648fe43d0759c2545fbac374ab550f6155703a37f1216014f02c11614ccd05581e0333617c4920d035c85869829581a0a3a3dd9dadf122daad9c47fc2edf400c074771c0d792eca0cb05581e03154df0016effd23a529fe9dba19a32aa7838f956bbc8c9334f0666a5d0040405581e032b3ff3ba56b5c3d896d23ff067c9e26cad3f115e9283dce09e19a270c0040305581e03f158e6cd12159a3cf47403a789dc6c9e7e8c9a09b6da1e03f8e0979e400c0346afca8172ffa0038211f446ac23f136adb55c95b8eba937b16b12d9d32ee30eaca4059191e0207503da31270adeab5b50d0101caa8dd4e2326fae6a43562501680271f83f8fb34787037a3670f78c75958f13f8579474b348612a80af61fa9b61b2c81c415523f170590605581e035e4e75fffbb329e4ba7f1b98156fd87b98d7f9b60be56ac357673ff22007011bffffffffffffffff05581e033cc8f8c15d49a17ea4ffc954f9927f2ea565c8ca347927a41b994e7110040104595ca7608060405260043610610087575f3560e01c806375713a081161005757806375713a08146101215780638024c73a146101345780638129fc1c14610148578063e634edd31461015c578063fa461e331461016f575f80fd5b80630162e2d0146100925780631a12d67c146100a7578063547d00a2146100d45780636e20b1071461010e575f80fd5b3661008e57005b5f80fd5b6100a56100a03660046150df565b61018e565b005b6100ba6100b5366004615263565b61027b565b604080519283526020830191909152015b60405180910390f35b3480156100df575f80fd5b506100f36100ee366004615306565b6103db565b604080519384526020840192909252908201526060016100cb565b6100ba61011c366004615388565b610ac5565b6100a561012f36600461547b565b610bfb565b34801561013f575f80fd5b506100a56113a3565b348015610153575f80fd5b506100a561149c565b6100f361016a36600461552b565b6115c4565b34801561017a575f80fd5b506100a56101893660046155a8565b611c20565b81158061019a57508142145b6101bf5760405162461bcd60e51b81526004016101b690615620565b60405180910390fd5b5f898960028181106101d3576101d361564f565b90506020020135111561026157888860028181106101f3576101f361564f565b905060200201353410156102195760405162461bcd60e51b81526004016101b690615663565b416108fc8a8a60028181106102305761023061564f565b9050602002013590811502906040515f60405180830381858888f1935050505015801561025f573d5f803e3d5ffd5b505b61027089898989898887611f17565b505050505050505050565b5f8083158061028957508342145b6102a55760405162461bcd60e51b81526004016101b690615620565b8b156102f7578b3410156102cb5760405162461bcd60e51b81526004016101b690615663565b60405141908d156108fc02908e905f818181858888f193505050501580156102f5573d5f803e3d5ffd5b505b5f6040518061012001604052808b815260200189151581526020018e81526020018f60028151811061032b5761032b61564f565b60200260200101516001600160a01b031681526020015f6001600160a01b031681526020018881526020018a81526020018781526020018581525090506103728e826124f8565b9094509250508b158061038557508b8310155b6103a15760405162461bcd60e51b81526004016101b69061569a565b8a15806103ae57508a8311155b6103ca5760405162461bcd60e51b81526004016101b6906156c9565b509b509b9950505050505050505050565b5f805f80845f815181106103f1576103f161564f565b60209081029190910101516040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561043f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046391906156f6565b90505f8a6064148061047357508a155b61049e575f8a1161049857610493606461048d848e613429565b9061345a565b6104a0565b896104a0565b815b90505f81116104e05760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f42414c414e434560a01b60448201526064016101b6565b866001815181106104f3576104f361564f565b60200260200101516001600160a01b03167368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316036106c4575f6040518061012001604052808d5f14801561054257505f8d115b61054c575f61054e565b8c5b81526020015f151581526020015f8152602001896002815181106105745761057461564f565b60200260200101516001600160a01b03168152602001895f8151811061059c5761059c61564f565b60200260200101516001600160a01b031681526020015f81526020018381526020015f81526020018b81525090505f60026001600160401b038111156105e4576105e461517b565b60405190808252806020026020018201604052801561060d578160200160208202803683370190505b509050875f815181106106225761062261564f565b6020026020010151815f8151811061063c5761063c61564f565b60200260200101906001600160a01b031690816001600160a01b0316815250508760018151811061066f5761066f61564f565b60200260200101518160018151811061068a5761068a61564f565b60200260200101906001600160a01b031690816001600160a01b0316815250506106b481836124f8565b9198509096509450610ab6915050565b8a1580156106d157505f8a115b15610745575f6106fd8b888a6001815181106106ef576106ef61564f565b60200260200101518c61346c565b905082815f815181106107125761071261564f565b602002602001015111156107265782610741565b805f815181106107385761073861564f565b60200260200101515b9150505b855f815181106107575761075761564f565b60200260200101516001600160a01b03166370a08231886002815181106107805761078061564f565b60200260200101516040518263ffffffff1660e01b81526004016107b391906001600160a01b0391909116815260200190565b602060405180830381865afa1580156107ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f291906156f6565b9450865f815181106108065761080661564f565b60200260200101516001600160a01b031663199f7260875f8151811061082e5761082e61564f565b6020026020010151338a60028151811061084a5761084a61564f565b6020026020010151856040518563ffffffff1660e01b8152600401610872949392919061570d565b5f604051808303815f87803b158015610889575f80fd5b505af115801561089b573d5f803e3d5ffd5b5050505084865f815181106108b2576108b261564f565b60200260200101516001600160a01b03166370a08231896002815181106108db576108db61564f565b60200260200101516040518263ffffffff1660e01b815260040161090e91906001600160a01b0391909116815260200190565b602060405180830381865afa158015610929573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094d91906156f6565b610957919061574b565b6040516370a0823160e01b81523060048201529095505f905f80516020615c52833981519152906370a0823190602401602060405180830381865afa1580156109a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c691906156f6565b90506109ed87308a6001815181106109e0576109e061564f565b60200260200101516135e0565b506040516370a0823160e01b81523060048201525f9082905f80516020615c52833981519152906370a0823190602401602060405180830381865afa158015610a38573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5c91906156f6565b610a66919061574b565b90505f8111610aac5760405162461bcd60e51b81526020600482015260126024820152711393c81513d2d15394c8149150d15255915160721b60448201526064016101b6565b9194509092508390505b50505b96509650969350505050565b5f80831580610ad357508342145b610aef5760405162461bcd60e51b81526004016101b690615620565b8a15610b41578a341015610b155760405162461bcd60e51b81526004016101b690615663565b60405141908c156108fc02908d905f818181858888f19350505050158015610b3f573d5f803e3d5ffd5b505b5f6040518061012001604052808b815260200189151581526020018d81526020018e600281518110610b7557610b7561564f565b60200260200101516001600160a01b031681526020015f6001600160a01b031681526020018881526020018a8152602001878152602001858152509050610bbc8d826124f8565b9094509250508a1580610bcf57508a8310155b610beb5760405162461bcd60e51b81526004016101b69061569a565b509a509a98505050505050505050565b5f82600481518110610c0f57610c0f61564f565b6020026020010151118015610c3e575081600481518110610c3257610c3261564f565b60200260200101514214155b15610c97576040516001600160a01b038a1681527ff2e7574263ab25e854ccac210f6060de1cb000d665c40e21b3bcb80f2b4511bc9060200160405180910390a160405162461bcd60e51b81526004016101b690615620565b5f5f80516020615c528339815191526001600160a01b038a1614610cbc576003610cbf565b60025b60ff166001600160401b03811115610cd957610cd961517b565b604051908082528060200260200182016040528015610d02578160200160208202803683370190505b50905089815f81518110610d1857610d1861564f565b60200260200101906001600160a01b031690816001600160a01b0316815250508881600181518110610d4c57610d4c61564f565b60200260200101906001600160a01b031690816001600160a01b0316815250508051600303610db7575f80516020615c5283398151915281600281518110610d9657610d9661564f565b60200260200101906001600160a01b031690816001600160a01b0316815250505b6040516370a0823160e01b81523360048201525f906001600160a01b038c16906370a0823190602401602060405180830381865afa158015610dfb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1f91906156f6565b90506001600160a01b0389167368b3465833fb72a70ecdf485e0e4c7bd8665fc45036110c3575f6040518061012001604052805f87600581518110610e6657610e6661564f565b602002602001015111610e79575f610e95565b86600581518110610e8c57610e8c61564f565b60200260200101515b81526020015f151581526020015f81526020018a6001600160a01b03168152602001876001600160a01b0316815260200186600181518110610ed957610ed961564f565b602002602001015181526020015f8a11610f4a57865f81518110610eff57610eff61564f565b6020026020010151606414610f44576064875f81518110610f2257610f2261564f565b602002602001015185610f35919061575e565b610f3f9190615789565b610f4c565b83610f4c565b895b815260200186600281518110610f6457610f6461564f565b602090810291909101810151825201859052604080516002808252606082019092529192505f91908160200160208202803683370190505090508c815f81518110610fb157610fb161564f565b60200260200101906001600160a01b031690816001600160a01b0316815250508b81600181518110610fe557610fe561564f565b60200260200101906001600160a01b031690816001600160a01b0316815250505f61101082846124f8565b509150507f522881958b3c4a6fc0840ad3b7fb947b881edc28c004245a62541647422ade978160405161104591815260200190565b60405180910390a15f8911801561105b57508881105b156110785760405162461bcd60e51b81526004016101b69061569a565b86516007036110bb57866006815181106110945761109461564f565b60200260200101518111156110bb5760405162461bcd60e51b81526004016101b6906156c9565b505050611396565b5f808811611177575f871161112f57845f815181106110e4576110e461564f565b6020026020010151606414611129576064855f815181106111075761110761564f565b60200260200101518361111a919061575e565b6111249190615789565b611179565b81611179565b61112461115888858d8960038151811061114b5761114b61564f565b602002602001015161346c565b5f815181106111695761116961564f565b602002602001015183613837565b875b9050856001600160a01b031663199f7260845f8151811061119c5761119c61564f565b6020026020010151338c856040518563ffffffff1660e01b81526004016111c6949392919061570d565b5f604051808303815f87803b1580156111dd575f80fd5b505af11580156111ef573d5f803e3d5ffd5b505050506111fe83308c6135e0565b506040516370a0823160e01b81523060048201525f905f80516020615c52833981519152906370a0823190602401602060405180830381865afa158015611247573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061126b91906156f6565b90505f8811801561127b57508781105b156112985760405162461bcd60e51b81526004016101b69061569a565b85516007036112db57856006815181106112b4576112b461564f565b60200260200101518111156112db5760405162461bcd60e51b81526004016101b6906156c9565b801561133b57604051632e1a7d4d60e01b8152600481018290525f80516020615c5283398151915290632e1a7d4d906024015f604051808303815f87803b158015611324575f80fd5b505af1158015611336573d5f803e3d5ffd5b505050505b6113608186886002815181106113535761135361564f565b602002602001015161384c565b6040518181527f522881958b3c4a6fc0840ad3b7fb947b881edc28c004245a62541647422ade979060200160405180910390a150505b5050505050505050505050565b5f546001600160a01b031633146113e25760405162461bcd60e51b8152602060048201526003602482015262486d6d60e81b60448201526064016101b6565b5f6001541161142c5760405162461bcd60e51b8152602060048201526016602482015275139bc81199595cc810dd5c9c995b9d1b1e4813ddd95960521b60448201526064016101b6565b60015447101561147e5760405162461bcd60e51b815260206004820181905260248201527f4e6f7420456e6f7567682042616c616e636520546f20436f766572204665657360448201526064016101b6565b5f54600154611496916001600160a01b0316906138fd565b5f600155565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f811580156114e05750825b90505f826001600160401b031660011480156114fb5750303b155b905081158015611509575080155b156115275760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561155157845460ff60401b1916600160401b1785555b5f80546001600160a01b0319167337aab97476ba8dc785476611006fd5dda4eed66b17905583156115bd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b5050505050565b5f80806001600160a01b0386167368b3465833fb72a70ecdf485e0e4c7bd8665fc4503611730576040805160028082526060820183525f9260208301908036833701905050905089815f8151811061161e5761161e61564f565b60200260200101906001600160a01b031690816001600160a01b03168152505088816001815181106116525761165261564f565b60200260200101906001600160a01b031690816001600160a01b0316815250505f604051806101200160405280875f815181106116915761169161564f565b602002602001015181526020016001151581526020015f81526020018a6001600160a01b031681526020015f6001600160a01b03168152602001876001815181106116de576116de61564f565b60200260200101518152602001348152602001876002815181106117045761170461564f565b6020026020010151815260200188815250905061172182826124f8565b90965094509250610ab9915050565b5f61174c611740876103e86157a8565b61048d346103e8613429565b90505f5f80516020615c528339815191526001600160a01b038b1614611773576003611776565b60025b60ff166001600160401b038111156117905761179061517b565b6040519080825280602002602001820160405280156117b9578160200160208202803683370190505b5090505f80516020615c52833981519152815f815181106117dc576117dc61564f565b6001600160a01b0392831660209182029290920101528b9082908c165f80516020615c5283398151915214611812576002611815565b60015b60ff16815181106118285761182861564f565b6001600160a01b0392831660209182029290920101528a165f80516020615c52833981519152146118885789816001815181106118675761186761564f565b60200260200101906001600160a01b031690816001600160a01b0316815250505b5f80875f8151811061189c5761189c61564f565b6020026020010151111561193a575f6118cf885f815181106118c0576118c061564f565b6020026020010151848c6139c7565b905083815f815181106118e4576118e461564f565b602002602001015111156118f85783611913565b805f8151811061190a5761190a61564f565b60200260200101515b945083815f815181106119285761192861564f565b6020026020010151111591505061193e565b8293505b61194984838b613b23565b60018351611957919061574b565b815181106119675761196761564f565b602002602001015194505f80516020615c528339815191526001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004015f604051808303818588803b1580156119b7575f80fd5b505af11580156119c9573d5f803e3d5ffd5b50505050505f80516020615c528339815191526001600160a01b031663a9059cbb611a288b855f81518110611a0057611a0061564f565b602002602001015186600181518110611a1b57611a1b61564f565b6020026020010151613c59565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018790526044016020604051808303815f875af1158015611a72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9691906157bb565b611aa257611aa26157d6565b6040516370a0823160e01b81523360048201525f906001600160a01b038e16906370a0823190602401602060405180830381865afa158015611ae6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b0a91906156f6565b90508115611b4b575f611b37895f81518110611b2857611b2861564f565b6020026020010151858d6139c7565b9050611b458185338e614100565b50611b58565b611b5683338c6135e0565b505b6040516370a0823160e01b815233600482015281906001600160a01b038f16906370a0823190602401602060405180830381865afa158015611b9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bc091906156f6565b611bca919061574b565b96505f8711611c105760405162461bcd60e51b81526020600482015260126024820152711393c81513d2d15394c8149150d15255915160721b60448201526064016101b6565b5050505096509650969350505050565b5f841380611c2d57505f83135b611c35575f80fd5b5f80808080611c46868801886157ea565b9550955095505094509450611cbb8585336001600160a01b031663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c92573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cb6919061585f565b614290565b6001600160a01b0316336001600160a01b031614611d0b5760405162461bcd60e51b815260206004820152600d60248201526c46616b652063616c6c6261636b60981b60448201526064016101b6565b5f805f8b13611d2f57866001600160a01b0316866001600160a01b0316108a611d46565b856001600160a01b0316876001600160a01b0316108b5b91509150828111611396578115611e33575f5f80516020615c528339815191526001600160a01b03891614611d7b5787611d8a565b5f80516020615c528339815191525b90506001600160a01b038616301480611db857505f80516020615c528339815191526001600160a01b038916145b15611dce57611dc981873385614354565b611e2d565b60405162ccfb9360e51b81526001600160a01b0386169063199f726090611dff9084908a903390889060040161570d565b5f604051808303815f87803b158015611e16575f80fd5b505af1158015611e28573d5f803e3d5ffd5b505050505b50611396565b5f5f80516020615c528339815191526001600160a01b03881614611e575786611e66565b5f80516020615c528339815191525b90506001600160a01b038616301480611e9457505f80516020615c528339815191526001600160a01b038816145b15611eaa57611ea581873385614354565b611f09565b60405162ccfb9360e51b81526001600160a01b0386169063199f726090611edb9084908a903390889060040161570d565b5f604051808303815f87803b158015611ef2575f80fd5b505af1158015611f04573d5f803e3d5ffd5b505050505b505050505050505050505050565b5f611f5f611f27836103e86157a8565b61048d6103e8611f598c8c6002818110611f4357611f4361564f565b905060200201353461448390919063ffffffff16565b90613429565b90505f8686611f6f60018261574b565b818110611f7e57611f7e61564f565b9050602002016020810190611f939190615881565b6040516370a0823160e01b81523360048201529091505f906001600160a01b038316906370a0823190602401602060405180830381865afa158015611fda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ffe91906156f6565b90505f808b8b5f8181106120145761201461564f565b905060200201351161204357604080516001808252818301909252906020808301908036833701905050612099565b6120998b8b5f8181106120585761205861564f565b905060200201358a8a808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152508c92506139c7915050565b90505f808c8c5f8181106120af576120af61564f565b905060200201351180156120dc575084825f815181106120d1576120d161564f565b602002602001015111155b6120e65784612101565b815f815181106120f8576120f861564f565b60200260200101515b90505f80516020615c528339815191526001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015612149575f80fd5b505af115801561215b573d5f803e3d5ffd5b50505050505f80516020615c528339815191526001600160a01b031663a9059cbb6121d48a8d8d5f8181106121925761219261564f565b90506020020160208101906121a79190615881565b8e8e60018181106121ba576121ba61564f565b90506020020160208101906121cf9190615881565b613c59565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af115801561221e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061224291906157bb565b61224e5761224e6157d6565b5f8c8c5f8181106122615761226161564f565b9050602002013511801561228e575084825f815181106122835761228361564f565b602002602001015111155b156122d8576122d3828b8b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152503392508d91506141009050565b612336565b6123178a8a808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152503392508c91506135e09050565b825f815181106123295761232961564f565b6020026020010181815250505b6040516370a0823160e01b81523360048201526123a99084906001600160a01b038716906370a08231906024015b602060405180830381865afa15801561237f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123a391906156f6565b90614483565b92505f8c8c60018181106123bf576123bf61564f565b905060200201351115612405578b8b60018181106123df576123df61564f565b905060200201358310156124055760405162461bcd60e51b81526004016101b69061569a565b60048b10612446578b8b60038181106124205761242061564f565b905060200201358311156124465760405162461bcd60e51b81526004016101b6906156c9565b61245181878961384c565b7f9f849d23f4955d98202378ea318f2b0c7533695d3c9fb2a3931f0f919fa8c42081845f8f8f5f8181106124875761248761564f565b90506020020135116124b257845f815181106124a5576124a561564f565b60200260200101516124cc565b8e8e5f8181106124c4576124c461564f565b905060200201355b6040805193845260208401929092529082015260600160405180910390a1505050505050505050505050565b5f805f806040518061010001604052808760018151811061251b5761251b61564f565b60200260200101516001600160a01b03168152602001875f815181106125435761254361564f565b60200260200101516001600160a01b03168152602001336001600160a01b03168152602001306001600160a01b0316815260200186608001516001600160a01b031681526020018660c0015181526020015f81526020016001151581525090505f47905085602001511561271757866001815181106125c4576125c461564f565b60200260200101516001600160a01b03165f80516020615c528339815191526001600160a01b03160361262e576126248661010001516103e861260791906157a8565b61048d6103e8611f598a604001513461448390919063ffffffff16565b60a083015261294c565b6126925f80516020615c52833981519152886001815181106126525761265261564f565b602002602001015161268d8961010001516103e861267091906157a8565b61048d6103e8611f598d604001513461448390919063ffffffff16565b61449c565b866001815181106126a5576126a561564f565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156126f3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061262491906156f6565b865f815181106127295761272961564f565b60209081029190910101516001600160a01b031682528651879060019081106127545761275461564f565b6020908102919091018101516001600160a01b0316908301523060408301523360608301525f60e0830181905287518891906127925761279261564f565b60209081029190910101516040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156127e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061280491906156f6565b60c08301528551158015906128525750866001815181106128275761282761564f565b60200260200101516001600160a01b03165f80516020615c528339815191526001600160a01b031614155b1561294c576040805160028082526060820183525f926020830190803683370190505090508760018151811061288a5761288a61564f565b6020026020010151815f815181106128a4576128a461564f565b60200260200101906001600160a01b031690816001600160a01b0316815250505f80516020615c52833981519152816001815181106128e5576128e561564f565b60200260200101906001600160a01b031690816001600160a01b0316815250505f612928885f015183737a250d5630b4cf539739df2c5dacb4c659f2488d6139c7565b9050805f8151811061293c5761293c61564f565b6020908102919091010151885250505b85515f9015612adf575f87606001516001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015612996573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129ba91906158b2565b50505050509150505f6129cc82614577565b90506001600160801b036001600160a01b03821611612a60575f6129f96001600160a01b0383168061575e565b905085602001516001600160a01b0316865f01516001600160a01b031610612a3c57612a37600160c01b8760a001516001600160801b031683614892565b612a58565b612a58818760a001516001600160801b0316600160c01b614892565b935050612adc565b5f612a796001600160a01b03831680600160401b614892565b905085602001516001600160a01b0316865f01516001600160a01b031610612abc57612ab7600160801b8760a001516001600160801b031683614892565b612ad8565b612ad8818760a001516001600160801b0316600160801b614892565b9350505b50505b86515f9015801590612af2575087518210155b15612d5357602084015160408086015190516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015612b45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b6991906156f6565b90505f8089606001516001600160a01b031663128acb08876040015188602001516001600160a01b0316895f01516001600160a01b031610612bad8e5f015161493c565b612bb69061594a565b8a602001516001600160a01b03168b5f01516001600160a01b031610612bfa57612bf5600173fffd8963efd1fc6a506488495d951d5263988d26615964565b612c0a565b612c0a6401000276a3600161598b565b8b604051602001612c1b91906159ab565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401612c4a959493929190615a64565b60408051808303815f875af1158015612c65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c899190615a9e565b9150915085602001516001600160a01b0316865f01516001600160a01b031610612cbc5780612cb78361594a565b612cc6565b81612cc68261594a565b60208801516040808a015190516370a0823160e01b81526001600160a01b039182166004820152929a50612d08935086929116906370a0823190602401612364565b92505f8311612d495760405162461bcd60e51b815260206004820152600d60248201526c1b9bc81d1bdad95b9cc81bdd5d609a1b60448201526064016101b6565b8297505050612f7b565b602084015160408086015190516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015612da1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dc591906156f6565b606089015160408601516020870151875160a08901519495505f9485946001600160a01b039081169463128acb089490939082169116109081612e2657612e21600173fffd8963efd1fc6a506488495d951d5263988d26615964565b612e36565b612e366401000276a3600161598b565b8b604051602001612e4791906159ab565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401612e76959493929190615a64565b60408051808303815f875af1158015612e91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eb59190615a9e565b9150915085602001516001600160a01b0316865f01516001600160a01b031610612ee85780612ee38361594a565b612ef2565b81612ef28261594a565b60208801516040808a015190516370a0823160e01b81526001600160a01b039182166004820152929a50612f34935086929116906370a0823190602401612364565b92505f8311612f755760405162461bcd60e51b815260206004820152600d60248201526c1b9bc81d1bdad95b9cc81bdd5d609a1b60448201526064016101b6565b82975050505b87602001516132015783602001516001600160a01b03165f80516020615c528339815191526001600160a01b0316146130405760208401516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015612ff6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061301a91906156f6565b9050801561303e5761303e85602001515f80516020615c528339815191528361449c565b505b6040516370a0823160e01b81523060048201525f905f80516020615c52833981519152906370a0823190602401602060405180830381865afa158015613088573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130ac91906156f6565b9050801561310e57604051632e1a7d4d60e01b8152600481018290525f80516020615c5283398151915290632e1a7d4d906024015f604051808303815f87803b1580156130f7575f80fd5b505af1158015613109573d5f803e3d5ffd5b505050505b613122818a61010001518b60e0015161384c565b8096506131b78a5f8151811061313a5761313a61564f565b60209081029190910101516040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613188573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131ac91906156f6565b60c087015190614483565b60408051828152602081018a90529081018890529098507f9f849d23f4955d98202378ea318f2b0c7533695d3c9fb2a3931f0f919fa8c4209060600160405180910390a1506133de565b83516001600160a01b03165f80516020615c52833981519152146132ac5783516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015613264573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061328891906156f6565b905080156132aa5784516132aa905f80516020615c528339815191528361449c565b505b6040516370a0823160e01b81523060048201525f905f80516020615c52833981519152906370a0823190602401602060405180830381865afa1580156132f4573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061331891906156f6565b9050801561337a57604051632e1a7d4d60e01b8152600481018290525f80516020615c5283398151915290632e1a7d4d906024015f604051808303815f87803b158015613363575f80fd5b505af1158015613375573d5f803e3d5ffd5b505050505b613384478561574b565b60408051828152602081018a90529081018890529098507f9f849d23f4955d98202378ea318f2b0c7533695d3c9fb2a3931f0f919fa8c4209060600160405180910390a16133dc888a61010001518b60e0015161384c565b505b5f871161341e5760405162461bcd60e51b815260206004820152600e60248201526d1b9bc81b5bdb995e481cdc195b9d60921b60448201526064016101b6565b505050509250925092565b5f82158061344c5750818361343e828261575e565b925061344a9083615789565b145b613454575f80fd5b92915050565b5f6134658284615789565b9392505050565b60606002845110156134905760405162461bcd60e51b81526004016101b690615ac0565b83516001600160401b038111156134a9576134a961517b565b6040519080825280602002602001820160405280156134d2578160200160208202803683370190505b5090508481600183516134e5919061574b565b815181106134f5576134f561564f565b6020026020010181815250505f60018551613510919061574b565b90505b80156135d7575f806135628761352a60018661574b565b8151811061353a5761353a61564f565b60200260200101518885815181106135545761355461564f565b6020026020010151886149a9565b9150915061359a84848151811061357b5761357b61564f565b602002602001015183838987600114613594575f614a6e565b89614a6e565b846135a660018661574b565b815181106135b6576135b661564f565b602002602001018181525050505080806135cf90615ae6565b915050613513565b50949350505050565b5f805b600185516135f1919061574b565b81101561382f575f8086838151811061360c5761360c61564f565b60200260200101518784600161362291906157a8565b815181106136325761363261564f565b6020026020010151915091505f6136498383614baf565b5090505f613658878585613c59565b90505f805f836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015613699573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136bd9190615b11565b506001600160701b031691506001600160701b031691505f80866001600160a01b0316896001600160a01b0316146136f65782846136f9565b83835b6040516370a0823160e01b81526001600160a01b038981166004830152929450909250613734918491908c16906370a0823190602401612364565b94506137428583838f614bdf565b9a50505050505f80846001600160a01b0316876001600160a01b03161461376a57885f61376d565b5f895b915091505f60028d51613780919061574b565b891061378c578b6137ad565b6137ad8b888f61379d8d60026157a8565b81518110611a1b57611a1b61564f565b604080515f8152602081019182905263022c0d9f60e01b9091529091506001600160a01b0386169063022c0d9f906137ee9086908690869060248101615b5d565b5f604051808303815f87803b158015613805575f80fd5b505af1158015613817573d5f803e3d5ffd5b50506001909a0199506135e398505050505050505050565b509392505050565b5f8183106138455781613465565b5090919050565b5f61385d6103e861048d8686613429565b90505f61387f61387883600154614cfe90919063ffffffff16565b4790614483565b905080156138aa57600a8110156138a05761389a8282614cfe565b506138aa565b6138aa33826138fd565b6001546138b79083614cfe565b600155604080518381523360208201529081018490527f72015ace03712f361249380657b3d40777dd8f8a686664cab48afd9dbbe4499f906060016115b4565b50505050565b604080515f808252602082019092526001600160a01b0384169083906040516139269190615b93565b5f6040518083038185875af1925050503d805f8114613960576040519150601f19603f3d011682016040523d82523d5f602084013e613965565b606091505b50509050806139c25760405162461bcd60e51b815260206004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201526213115160ea1b60648201526084016101b6565b505050565b60606002835110156139eb5760405162461bcd60e51b81526004016101b690615ac0565b82516001600160401b03811115613a0457613a0461517b565b604051908082528060200260200182016040528015613a2d578160200160208202803683370190505b509050838160018351613a40919061574b565b81518110613a5057613a5061564f565b6020026020010181815250505f60018451613a6b919061574b565b90505b801561382f575f80613abd86613a8560018661574b565b81518110613a9557613a9561564f565b6020026020010151878581518110613aaf57613aaf61564f565b6020026020010151876149a9565b91509150613ae6848481518110613ad657613ad661564f565b6020026020010151838388614d17565b84613af260018661574b565b81518110613b0257613b0261564f565b60200260200101818152505050508080613b1b90615ae6565b915050613a6e565b6060600283511015613b475760405162461bcd60e51b81526004016101b690615ac0565b82516001600160401b03811115613b6057613b6061517b565b604051908082528060200260200182016040528015613b89578160200160208202803683370190505b50905083815f81518110613b9f57613b9f61564f565b6020026020010181815250505f5b60018451613bbb919061574b565b81101561382f575f80613bff868481518110613bd957613bd961564f565b602002602001015187856001613bef91906157a8565b81518110613aaf57613aaf61564f565b91509150613c28848481518110613c1857613c1861564f565b6020026020010151838388614bdf565b84613c348560016157a8565b81518110613c4457613c4461564f565b60209081029190910101525050600101613bad565b5f805f613c668585614baf565b90925090506001600160a01b038616737a250d5630b4cf539739df2c5dacb4c659f2488d03613d4957735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8282604051602001613cb7929190615bae565b60405160208183030381529060405280519060200120604051602001613d2a9291906001600160f81b0319815260609290921b6001600160601b031916600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b604051602081830303815290604052805190602001205f1c92506140f7565b6001600160a01b0386167368b3465833fb72a70ecdf485e0e4c7bd8665fc4503613dbc57731f98431c8ad98523631ae4a59f267346ea31f9848282604051602001613d95929190615bae565b60405160208183030381529060405280519060200120604051602001613d2a929190615bd0565b6001600160a01b03861673d9e1ce17f2641f24ae83637ab66a2cca9c378b9f03613e7b5773c0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac8282604051602001613e08929190615bae565b60405160208183030381529060405280519060200120604051602001613d2a9291906001600160f81b0319815260609290921b6001600160601b031916600183015260158201527fe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303603582015260550190565b6001600160a01b03861673eff92a263d31888d860bd50809a8d171709b7b1c03613f3a57731097053fd2ea711dad45caccc45eff7548fcb3628282604051602001613ec7929190615bae565b60405160208183030381529060405280519060200120604051602001613d2a9291906001600160f81b0319815260609290921b6001600160601b031916600183015260158201527f57224589c67f3f30a6b0d7a1b54cf3153ab84563bc609ef41dfb34f8b2974d2d603582015260550190565b6001600160a01b0386167303f7724180aa6b939894b5ca4314783b0b36b32903613ff95773115934131916c8b277dd010ee02de363c09d037c8282604051602001613f86929190615bae565b60405160208183030381529060405280519060200120604051602001613d2a9291906001600160f81b0319815260609290921b6001600160601b031916600183015260158201527f65d1a3b1e46c6e4f1be1ad5f99ef14dc488ae0549dc97db9b30afe2241ce1c7a603582015260550190565b6001600160a01b038616730c17e776cd218252adfca8d4e761d3fe757e9778036140b8577335113a300ca0d7621374890abfeac30e88f214b18282604051602001614045929190615bae565b60405160208183030381529060405280519060200120604051602001613d2a9291906001600160f81b0319815260609290921b6001600160601b031916600183015260158201527f49d9acd3e20042617be7e378294c731749bc579b09dfd560cd3357445ce0b9e9603582015260550190565b60405162461bcd60e51b8152602060048201526014602482015273149bdd5d195c881b9bdd081cdd5c1c1bdc9d195960621b60448201526064016101b6565b50509392505050565b5f5b60018451614110919061574b565b8110156115bd575f8085838151811061412b5761412b61564f565b60200260200101518684600161414191906157a8565b815181106141515761415161564f565b6020026020010151915091505f6141688383614baf565b5090505f886141788660016157a8565b815181106141885761418861564f565b602002602001015190505f80836001600160a01b0316866001600160a01b0316146141b457825f6141b7565b5f835b915091505f60028b516141ca919061574b565b88106141d657896141e7565b6141e789878d61379d8c60026157a8565b90506141f4898888613c59565b6001600160a01b031663022c0d9f8484845f6040519080825280601f01601f191660200182016040528015614230576020820181803683370190505b506040518563ffffffff1660e01b81526004016142509493929190615b5d565b5f604051808303815f87803b158015614267575f80fd5b505af1158015614279573d5f803e3d5ffd5b505060019099019850614102975050505050505050565b5f826001600160a01b0316846001600160a01b031611156142af579192915b826001600160a01b0316846001600160a01b0316106142cc575f80fd5b604080516001600160a01b03808716602083015285169181019190915262ffffff83166060820152731f98431c8ad98523631ae4a59f267346ea31f9849060800160405160208183030381529060405280519060200120604051602001614334929190615bd0565b60408051601f198184030181529190528051602090910120949350505050565b804710614457576001600160a01b0384165f80516020615c5283398151915203614457575f80516020615c528339815191526001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b1580156143be575f80fd5b505af11580156143d0573d5f803e3d5ffd5b505060405163a9059cbb60e01b81526001600160a01b0386166004820152602481018590525f80516020615c52833981519152935063a9059cbb925060440190506020604051808303815f875af115801561442d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061445191906157bb565b506138f7565b306001600160a01b0384160361447757614472848383614e47565b6138f7565b6138f784848484614f56565b5f8261448f838261574b565b9150811115613454575f80fd5b6040805160028082526060820183525f9260208301908036833701905050905083815f815181106144cf576144cf61564f565b60200260200101906001600160a01b031690816001600160a01b03168152505082816001815181106145035761450361564f565b60200260200101906001600160a01b031690816001600160a01b0316815250506145588430614552737a250d5630b4cf539739df2c5dacb4c659f2488d855f81518110611a0057611a0061564f565b85614354565b6115bd8130737a250d5630b4cf539739df2c5dacb4c659f2488d6135e0565b5f805f8360020b1261458c578260020b614593565b8260020b5f035b9050620d89e88111156145b9576040516333a3bdff60e21b815260040160405180910390fd5b5f816001165f036145ce57600160801b6145e0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615614614576ffff97272373d413259a46990580e213a0260801c5b6004821615614633576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615614652576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615614671576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615614690576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156146af576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156146ce576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156146ee576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561470e576ff987a7253ac413176f2b074cf7815e540260801c5b61040082161561472e576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561474e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561476e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561478e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156147ae576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156147ce576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156147ef576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561480f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561482e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561484b576b048a170391f7dc42444e8fa20260801c5b5f8460020b131561486a57805f198161486657614866615775565b0490505b64010000000081061561487e576001614880565b5f5b60ff16602082901c0192505050919050565b5f80805f19858709858702925082811083820303915050805f036148c6575f84116148bb575f80fd5b508290049050613465565b8084116148d1575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f6001600160ff1b038211156149a55760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016101b6565b5090565b5f805f6149b68686614baf565b5090505f806149c6868989613c59565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015614a01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614a259190615b11565b506001600160701b031691506001600160701b03169150826001600160a01b0316886001600160a01b031614614a5c578082614a5f565b81815b90999098509650505050505050565b5f808611614abe5760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016101b6565b5f85118015614acc57505f84115b614ae85760405162461bcd60e51b81526004016101b690615c21565b5f614af9612710611f59888a613429565b90507310ed43c718714eb63d5aa57b78b54704e256024e6001600160a01b0385161480614b42575073eff92a263d31888d860bd50809a8d171709b7b1c6001600160a01b038516145b15614b80575f614b61614b57856126f761574b565b611f59888b614483565b9050614b786001614b728385615789565b90614cfe565b925050614ba5565b5f614b90614b57856126f261574b565b9050614ba16001614b728385615789565b9250505b5095945050505050565b5f80826001600160a01b0316846001600160a01b031610614bd1578284614bd4565b83835b909590945092505050565b5f808511614c2f5760405162461bcd60e51b815260206004820152601960248201527f494e53554646494349454e545f494e5055545f414d4f554e540000000000000060448201526064016101b6565b5f84118015614c3d57505f83115b614c595760405162461bcd60e51b81526004016101b690615c21565b5f7310ed43c718714eb63d5aa57b78b54704e256024e6001600160a01b0384161480614ca1575073eff92a263d31888d860bd50809a8d171709b7b1c6001600160a01b038416145b15614cb957614cb2866126f7613429565b9050614cc8565b614cc5866126f2613429565b90505b5f614cd38286613429565b90505f614ce683614b7289612710613429565b9050614cf28183615789565b98975050505050505050565b5f82614d0a83826157a8565b9150811015613454575f80fd5b5f808511614d675760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e5400000000000060448201526064016101b6565b5f84118015614d7557505f83115b614d915760405162461bcd60e51b81526004016101b690615c21565b5f614da2612710611f598789613429565b90507310ed43c718714eb63d5aa57b78b54704e256024e6001600160a01b0384161480614deb575073eff92a263d31888d860bd50809a8d171709b7b1c6001600160a01b038416145b15614e1a575f614e016126f7611f59878a614483565b9050614e126001614b728385615789565b9250506135d7565b5f614e2b6126f2611f59878a614483565b9050614e3c6001614b728385615789565b979650505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691614ea29190615b93565b5f604051808303815f865af19150503d805f8114614edb576040519150601f19603f3d011682016040523d82523d5f602084013e614ee0565b606091505b5091509150818015614f0a575080511580614f0a575080806020019051810190614f0a91906157bb565b6115bd5760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c45440060448201526064016101b6565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291515f92839290881691614fb99190615b93565b5f604051808303815f865af19150503d805f8114614ff2576040519150601f19603f3d011682016040523d82523d5f602084013e614ff7565b606091505b509150915081801561502157508051158061502157508080602001905181019061502191906157bb565b6150795760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f46416044820152631253115160e21b60648201526084016101b6565b505050505050565b5f8083601f840112615091575f80fd5b5081356001600160401b038111156150a7575f80fd5b6020830191508360208260051b85010111156150c1575f80fd5b9250929050565b6001600160a01b03811681146150dc575f80fd5b50565b5f805f805f805f805f60e08a8c0312156150f7575f80fd5b89356001600160401b038082111561510d575f80fd5b6151198d838e01615081565b909b50995060208c0135915080821115615131575f80fd5b5061513e8c828d01615081565b90985096505060408a0135615152816150c8565b989b979a5095989497966060860135965060808601359560a0810135955060c001359350915050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156151b7576151b761517b565b604052919050565b5f6001600160401b038211156151d7576151d761517b565b5060051b60200190565b5f82601f8301126151f0575f80fd5b81356020615205615200836151bf565b61518f565b8083825260208201915060208460051b870101935086841115615226575f80fd5b602086015b8481101561524b57803561523e816150c8565b835291830191830161522b565b509695505050505050565b80151581146150dc575f80fd5b5f805f805f805f805f805f6101608c8e03121561527e575f80fd5b8b356001600160401b03811115615293575f80fd5b61529f8e828f016151e1565b9b505060208c0135995060408c0135985060608c0135975060808c0135965060a08c0135955060c08c01356152d381615256565b8095505060e08c013593506101008c013592506101208c013591506101408c013590509295989b509295989b9093969950565b5f805f805f8060c0878903121561531b575f80fd5b8635955060208701359450604087013593506060870135925060808701356001600160401b038082111561534d575f80fd5b6153598a838b016151e1565b935060a089013591508082111561536e575f80fd5b5061537b89828a016151e1565b9150509295509295509295565b5f805f805f805f805f806101408b8d0312156153a2575f80fd5b8a356001600160401b038111156153b7575f80fd5b6153c38d828e016151e1565b9a505060208b0135985060408b0135975060608b0135965060808b0135955060a08b01356153f081615256565b999c989b5096999598949794965050505060c08301359260e08101359261010082013592506101209091013590565b5f82601f83011261542e575f80fd5b8135602061543e615200836151bf565b8083825260208201915060208460051b87010193508684111561545f575f80fd5b602086015b8481101561524b5780358352918301918301615464565b5f805f805f805f805f6101208a8c031215615494575f80fd5b893561549f816150c8565b985060208a01356154af816150c8565b975060408a01356154bf816150c8565b965060608a01356154cf816150c8565b955060808a0135945060a08a0135935060c08a01356154ed816150c8565b925060e08a01356001600160401b03811115615507575f80fd5b6155138c828d0161541f565b9250506101008a013590509295985092959850929598565b5f805f805f8060c08789031215615540575f80fd5b863561554b816150c8565b9550602087013561555b816150c8565b9450604087013561556b816150c8565b9350606087013561557b816150c8565b92506080870135915060a08701356001600160401b0381111561559c575f80fd5b61537b89828a0161541f565b5f805f80606085870312156155bb575f80fd5b843593506020850135925060408501356001600160401b03808211156155df575f80fd5b818701915087601f8301126155f2575f80fd5b813581811115615600575f80fd5b886020828501011115615611575f80fd5b95989497505060200194505050565b60208082526015908201527410da185a5b8814994b5bdc99c819195d1958dd1959605a1b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b6020808252601c908201527f4e6f7420656e6f7567682045544820666f72206d696e65722074697000000000604082015260600190565b602080825260159082015274139bdd08195b9bdd59da081d1bdad95b9cc81bdd5d605a1b604082015260600190565b602080825260139082015272151bdbc81b585b9e481d1bdad95b9cc81bdd5d606a1b604082015260600190565b5f60208284031215615706575f80fd5b5051919050565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561345457613454615737565b808202811582820484141761345457613454615737565b634e487b7160e01b5f52601260045260245ffd5b5f826157a357634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561345457613454615737565b5f602082840312156157cb575f80fd5b815161346581615256565b634e487b7160e01b5f52600160045260245ffd5b5f805f805f8060c087890312156157ff575f80fd5b863561580a816150c8565b9550602087013561581a816150c8565b9450604087013561582a816150c8565b9350606087013561583a816150c8565b9250608087013561584a816150c8565b8092505060a087013590509295509295509295565b5f6020828403121561586f575f80fd5b815162ffffff81168114613465575f80fd5b5f60208284031215615891575f80fd5b8135613465816150c8565b805161ffff811681146158ad575f80fd5b919050565b5f805f805f805f60e0888a0312156158c8575f80fd5b87516158d3816150c8565b8097505060208801518060020b81146158ea575f80fd5b95506158f86040890161589c565b94506159066060890161589c565b93506159146080890161589c565b925060a088015160ff81168114615929575f80fd5b60c089015190925061593a81615256565b8091505092959891949750929550565b5f600160ff1b820161595e5761595e615737565b505f0390565b6001600160a01b0382811682821603908082111561598457615984615737565b5092915050565b6001600160a01b0381811683821601908082111561598457615984615737565b5f6101008201905060018060a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401525060a083015160a083015260c083015160c083015260e0830151151560e083015292915050565b5f5b83811015615a31578181015183820152602001615a19565b50505f910152565b5f8151808452615a50816020860160208601615a17565b601f01601f19169290920160200192915050565b6001600160a01b0386811682528515156020830152604082018590528316606082015260a0608082018190525f90614e3c90830184615a39565b5f8060408385031215615aaf575f80fd5b505080516020909101519092909150565b6020808252600c908201526b0929cac82989288bea082a8960a31b604082015260600190565b5f81615af457615af4615737565b505f190190565b80516001600160701b03811681146158ad575f80fd5b5f805f60608486031215615b23575f80fd5b615b2c84615afb565b9250615b3a60208501615afb565b9150604084015163ffffffff81168114615b52575f80fd5b809150509250925092565b84815283602082015260018060a01b0383166040820152608060608201525f615b896080830184615a39565b9695505050505050565b5f8251615ba4818460208701615a17565b9190910192915050565b6001600160601b0319606093841b811682529190921b16601482015260280190565b6001600160f81b0319815260609290921b6001600160601b031916600183015260158201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54603582015260550190565b602080825260169082015275494e53554646494349454e545f4c495155494449545960501b60408201526060019056fe000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2a2646970667358221220743c8892851ac9b13e466532e3ac230413800df85301b7404b7ea95484eb2c4a64736f6c634300081700330605581e03ae88d60ce5722ba4d45bad2212f1c19dbc045e025144e80b926be7b3400701195ca705581e035f517349c69668843e7b5ebd815ad1205dadeede0831b55f80a5552820040103f693203bcd1962bbac5a3c4d08f7db978e02899ebd2f3a41f5be1702dd265e3f0219fd4d036cf48af9ce5bbf5d3c4d8679a22d6dc4ce50f2460e589be9b4eef3c3b296ac09034c387cc134b025bc72580db4a32e6f93eb6cff1f632cc031116863918672ea6d03aec6040e90b5e1939362f47cfe1b75fc6afc77ed285efbf31d37f66c8c73c8390366dd5a8943fa2e34afdd38a7e29f9b5a260c6aa866bef41848cc9e846278fd0803ec8dcfeb7af17e68816e778c606f011814c881a7ca0420db53979a560445b66003e8658b485991901a3388ac76de1a80ab3c3fe1cef9b781995ceb1e554138717103f274ba96d638a0f12fb0ece331da8b8bfbebde904e8c235ac7a6587a1e8ce1d60219ffff03f1da45c57c01d4f8bc8bd6c9bc6393e84372cfe0f58d59c4d89d45eb6384462203346b8a0a99c4ba441015c58299e81089a9b802b1255390b29c412ca1a12bb86503c55cc21f1e0b7ed64a4d3242270c11fd47d3f4a1cfde25e9687aed1f3d3fb7ad03eb45196994cb6827f64c63e12ae4c35fa30847adc8dac3dfd0d17444cb7e27460219ffff033ea37b4bc18ff0c8c1d4c6eba7ac89a5659ece6afa749617199d93dac0e57f8b031167476f34c04d2d2a1d063e633a9b976d734c6ce3b9aa78f54d772292cb7880036668221048b112a7543000f8295428ea4c6019668dbafa097054fbd35cf538ce03942446c6cf3bb9d492e6fe0d48eb500f03e6347f5da3842de17263cf1786166003d56e88c6f6a7ca937626c16d6bb9df0f72b871c9872a1f86cf5cc744565bfc3b030d933a399cb276af17886a28cbbae9d28561cbc70caf5e03adef1cf434ba86ea030b64ffeb2d73c8658b2f32d23c27c41434b84546c37f6c333fe83c489f052c2d0219ffff032a920fcec7ad7eaf3da21f74afd3eca01ba7ab3c5a978e777300a274a3bd1d2203dc21ea4894a17cb8f0a9e5c0c204c99080059cc2682e8a14c444dd7a53b5023903637df4de77435671cf15bd74dd44977f729aa956a2adef9d6f6f4156d5ba3de1037a1372027f775e5e20feb3b5c6ac3fc3a2d5bd7d4d3301a6797cdb6be9a6492203eadee423ae6a30aa34bf0d837a5ce95fda44aa80c8b092bbe9f78ce0b7241705034470d70e1a9f2a34078454b6ed0a60322dff81f416debb9d2bce3670c3af37800342befbc08e9fd98ae09d083baa646724cb427d58a8d03f5583fd1b8e0b7d254d03b113c8b01d890dc8a4069c34ad779b103a00cb8de02f240db781e00929d71b97033cb0316ffc5cdd9a69b57a3507b6b2420cb74d71b5ad7467a2d8d843d6c5062103a1b4328a38cfac9268faf280fc98bd0c0fa8574f07a1a3afa490d682916a974c03f3fcc742e1ba3a075b94ee89e3326a8ce7b25ee755b744797e27bc0cfa5ef17b03fd0284aaf80f26a314d965f927714102c04737bdd23701a3906de4bfe4de4fd203bb7673f584d9e797bd06344fafec5905507ee8baeb7ad66ce4ae49f37a3e0dd10372d59d1bb5ba502a8310d2a626d6b813ca380433f5419b3d2e734e39a565709d0354ac6fbf7b3633a66737869de6ecaec8f628d1831094be91c6f9951c2f1bf6c10219ffff03735679cda2399ba770a95ba2eec939f077a2a138ef29a62ec1f7f85be02c8b3d03e71d683987c8bab462f584bf46080780650fa506702756b021604a486311cc2d03665dba8379d0e8bbaa1e07b2397e57bbc17314dfbfb3782101be57aaae200ba803018d7267d3a0a8c6070f79f8c42468dc69f6c4899ac7c809bd356a3456c767f60309c52341c2ea613092fd07fe860b6ed3835e54d7c983ea3e8629f4730f2ab01f03393a490158ae5ca743df92d5668aa63a7576c7a8184d8fe26593df8295266c5f03e7c4611ca114168df06cf1807e024d84187bddc5143c5253a1a35acb628d9a4703ecc762b2f0b4ba9b9f2c7f8b0ca3a90ec70a8ec6d80f97202c3e6bd9f1564bb3031b5eca64c3a92e360845c85fe17279d0b81f22da61902bc43d24814ce40f63480399819b79aa9f27c6fd6ae6e2ccfb5872420ba00bad60ee8ff4618422c65011b70219ffff035c72a5b8df6d140b2375c72cac1c4e7881e210d87fe2c87730eb741a17a77d7303905928e185f123232c8c7261b02971dab40ed8e82da5c7a6b15391d3f069403c030bd78f252075f21349d67e3327473579bde5d2acc634ab78a91e79b646746e080399a32d53de3b2f35d769d5b1c4dc76301ed21ce83465e20110fff41ae5b9a8f6032e21e312e91ad7e9d49fe1ba481bfdf70c1fbb49fa03e9d8ce4a82e3c4b5c7b30341a81b27db19ddb1213831bb5cd6b590cf695f321c550f41d455f1b34c199c7a031d66064ee221ce4b3203bbdc0aabd875e2c4fdb789b5f5a61ab0750e3b959194034990e84322e8a1f997bc3b4808f72fee14a893b0c829322f28eecbc0b8ad638c03cf4568c6936b516d41400e0e11cc45d9b0f81a5493080b766305f9aa5959c01103454e866cd0ab911708b1c91e64ad2b97db195f1fe54bf745590b54218f89638e03f1d5ff12623b88e84b2add4e2db8bc622ee888fcc7b185f2581afd8029fe78d5030ce8f42b55e2ea45b52bb0bd7e05d11fb2e1ea1519a05eacf20854cba023f533038f9737d46f65365b46069f3fc22802377e9b61a4872d49e6e00e184d85d16fb0034b19b564ee45e9185490014a4ee16b43dc439d9015426e17fd50e92bf5e866640310ddce46903b3b0b8189d497261fea503471caf88643f4e1f726d880efbbbfaa03965da42acbedae7c965766b94a0193058f482c35ef57423bd68615af8d4b57f10375bd09ae24f56000053686e9f3a867bc53a495d6be7d3ff56ee234cf92192a0303e46f4db1633764b2a6077603a107cb73009d73a677ce7fde14f22a31b9c646fb03b8f7efd3098f280d4c17614060db426eb788d6ea49924918d4225394c83d8cd1034d0daae0cd47b570caf372cc2cfd7fbf5e71b9df1564991394bb9edb7114864503e9cb8c0e0d19329b5e232da4daa112c63da5b4f74859b35797fabc776fa5a3450305cdd717d655902fc921df296e863a7f4000962d18e79bf5bbb5009e1385bab00335ab2dcea26a7a1dea24c18d7dff4b4239977fc6fcd7cbe0e9dd047323a745ca03203db6f69a8ee4c323ed8056da115dc9da6558b3300be2512a9f58d234e50c7403eeeb77529480b032b76ab3271179724ffc4520917fa8950ec9f974a60e3f7ff803a25192e64f727de2f50934985afbee7ac7effba582ab669b12157d3e494fcc45037bedb346c6de914b136ac09c6877c0820b689567f23dcfd7f2ce2a8a4520ff8603908d912c1b509820efe4607bef4463c0347b5d4cda2a4cdbafa3a88c959c624703688354a1e85a8a186ae6e881f2c1c83c7f99470b4ea8ce301074d89660cafd35037efd37571911580076cea911cddbf4d16a6b475a3e37ea084e717ffc04fe6add032031ac15c31e6b72f2561e974bdaace2b18f5ac67db7bf328f567767627d8cce0356ee30f29377dd0bf2c83d72bf759d3a63246fa90e03f65c864bd13e5cf25ee403f55981fb71e58799afe2fd5fb907dc0d0b24052ad552b770f3310b7ddc12f27703a0854707ecc0abdb75020ed2dce429e1786054a44f832bc59a13ab802f7cc925035fdb5b525336196e741576eeec7f4d7aa5bf1ce2d3d248768327ac5e107feaf903cc0ef8701b1ee3e5f8fb5156a8a6a6997f1314ade00b95aad0e57eb8225d98cf038648170679b8fca45120e6350eff29915ca1711a7116ec3fb2869efb3c63ee43034575afeab279534e8792828438ed135a56c875c09d0b3fea7f99840e8bb1a81905581e03861256bc430a7d76c124258551957f339ba0edbd3f4d5b692b5f7cce400c02467a6a2b5f02e805581e03f3875dcbc5783835dc6682d990c44e394b1a1d0d2f3a56a74d8f66496008480de23ca122bec40005581e032625892a32fd2ada575bde80f2dca9e28dfaf0b6feac08e7eb4d8af560040205581e03d569b8e0dfdd1b88f1e60d86ee1f7a8e6f838188564bc8a3b88c1514b0040405581e03786fe573a7611f61fc6214e2be41183b47551bd0c11383d07accd3f1a0084801b10bcae6d91600021919b10390572b0396a1f40ae9189362c57f73dce6d7368ed7d5468bf5f0b0af06bd787303fb5dc0ee7dcf373c536d7113bdb20a5312a30eb9f754d823e856f3f83fa125e503e22712db2102e3ca381e7f1fd521303d75c5f8bdf7d8e99ca9b6240e6f92bdf10219ffff0312ef95182a010f63c037bc5ef6c1edada9ce415b134a6e1adf350854e08cf4a3035e778f7669a42ae82a352f9af4f3b41c101d9eb6a27f339c0f1a9b7acc9852b2039337a9c3bc9ae2e76e91384c31736fdc26a8557c92afebd1938815d4b51978d003291bc35c5bb11dcf7f97da1c2ed0625620f750c27d0aac5ef22fec7634e8b54f0334ef646a608eec2d1d5057624beeb9aa262505160668fe557a5a4b6df8b9096203b14e559e722bac627754c0107c5b18cb8c5d8ef214421c8e1762c220c605329303ae9da8b9fb939d833a55f89cf9a6e64748de6bebb56c01fd1c3a1c26c13fa0b6038c3ba669eea4e60b096bb6062599855d3314d12a8e3b06533eefb5328e78ad130219ffff03226bc07a7cc8aea352cce49b4fd39d020684a1271c88be3aa3b03bab878fd051030586962dfc97fbe066a567d0b1388c20fcd6337fcb275db5db78050405b6d20f0328ba3d28d19bd8c0f0f0016d42133f16a6075c756b9f62712fa7e79a9d1695b103b8f8c6fa9ffaac2de69ddf9f6fe4944eca4eb330b9151a1bc3f69f15e8c0e5d10357fc85c0d5a5a5dacec8e7f7162c24cfe2baabf5c3d07f530e3cea6cd1ac1dd4039a9c45ef912d6d4c03246e84e1c19af508e2613ce61678303ad70e26f5408bf70219ffff0318d43e2a6b470b6a7435f4eae4d7819fa1f66e867c8a27a5442ee98c23e52a34038bda7b4f790cb7ff1861b19407f79b4b52e83ccd012cd9dec73a2f2097296d12037ece001af6626b48e63a0f5d1edb4f64d7ea556694c1151c25b9d3ceea8a04280369782b3fa9c58bfb9c7347c48069ab8063561113c776cabd179e41e2350f84ba039baf46cf56af0ef9d31f77aa778a93c2a131fb0e5b885a634f3c0cef7e2fd4ee036b97b4060da3b1e5c8b785165f2cb0e5bfd0430fbf0548ef3dae6b7aeba297bf032f71b5ce39aed3b63f4f0f089e5e21d227201b8b3a76bd06d34d8407219b7f6503ccec62ee6f67f930afcc0e9996e173589568eb54355b2a3e6ad18a36d5ce7755032276e5c6be2b8fd4327e0b405978eeeb081407fe81c59d3366a4818dab32e78503bcf7e9ca72eea0ba7eea71e7fa426a6e15dbfc4b845ca9f5311147c42c3dd81a03cde19ed13118ec034326156a535603fe3f69b6b50c54357aaf78cd9afffc932e031d03a9ece069167f8b41b18f2c94b4476c0b4529e7287990c98731645acc81680219ffff035c3f99bfb5712981c5a688b2da16749515f3f6ded477e364339b1e147de8f430035769eff213dbda1566c2943184fb815471d65b72c791eede6ad5b703ee634592031ff500b18ef3c07715f78824498a3c0737dc44bb995946f82b41a629159f1b6f0319bdabb5dea19cff6fde5587cd28bcd72ee5e4170ba24070f6a6002fdf731fa503f16b14175705ddb439a255c2c2803be1b25fdb87ae95216bcb7a610e9a9063360324394503bc7bab04c3ae1141256777ecfc42465d006ce4c09bf8ae3a0505fdec03fa0c79c692ca546e2bca4050d15dfb6fed2451e19ace6c8a45c256307152122403e9a87d7f00d36247214bac5ac23668bad58d0e703689a626311795ea662a8f0903d4d1eb3aa092873dfb631e9c717f85690d1cfe18f4f95b815fa1a034745b82fb0331f798882485ca8f70026b07efdfdfbc8a321ac2fef536a2e3d7a13fb2874cf603b222d031faf18b2125cfb48cd5b35bb5b07396f645d123f4e6d29ef8c3b364e80324bbfed77e3bf4d94330e8e7afd5f2f8415bef1985dcc285df500f1fdc7ca2ff03f4073a7a3f0aad3360bfa09da2901733b15821c3e6dc429c201067c58ff96994032c8ad7cb79bf584d41811b65276d3fffda3c3bbf8821db50ce3712de762c2dee03d46133d041ee62fa33bd9341c24169a7d41871b638e08d5999ebc590cc4b08ce03727540e192d1abdee75c4d04dcfe05141d896d4df59d1d3434b4e62d232930e903fc3f397b6c9586e93d73efe0120c7a6f97f23be88d6e8dd9c56e27bca9993dd20373f5e2c15353050277b3d28c14c3eaff37b6c52c7a598724ba1cd5029695f9d703a08979fc8d59e672f084440f9e2752b06bb7594dc4e52e2c043aa90f8ab19666039145679165c3a2ec4db63d803f3ae1f0195c02062cac214cca96e9e450af3aab05581e037a53550dc399a156d54347ef50def8f425931c331dd2b8e53442208bd0040205581e03480a7c8dda2f8d183a8e975e60aba0e1d6bb1ca841027528c06d0f21300c0146b5e620f78d4005581e0346dc4933acd0fe8c0d3469bdbbd7522c52de9cc1c803e0a5f70e312690040305581e0342a72fd9151705b181ebc17546587d9113d29b35e7b87d6e75d5bfd2200c044702801a77a2f94405581e03d51b7fdff2fbaff38b64ad1a59df11a34c66dc0a2c648297d12c9e56100c02470119782e133fb005581e037c48cf7dabeaebd595de1ae697978a8fd4ab361157ccd3094d19998f40040105581e03e00c26999ded424d15fa5b92552e0638e325d168d234595c98c3c721000c014703328b944c400003ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e03e31911ffeab5320719c6d1778f576f6042a38712df31403962d169452007011bffffffffffffffff04590855608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100ce578063aad0ae5b146100df578063c4d66de8146100f2578063f2fde38b1461010557600080fd5b80630a5ea4661461008257806312ec8dcc14610097578063715018a6146100c6575b600080fd5b6100956100903660046106f7565b610118565b005b6065546100aa906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b610095610198565b6033546001600160a01b03166100aa565b6100956100ed3660046106d5565b6101ce565b6100956101003660046106d5565b610244565b6100956101133660046106d5565b610321565b6065546001600160a01b031633146101775760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e417070726f76653a2041636365737320726573747269637465640060448201526064015b60405180910390fd5b8015610192576101926001600160a01b0385168484846103bc565b50505050565b6033546001600160a01b031633146101c25760405162461bcd60e51b815260040161016e9061079f565b6101cc6000610416565b565b6033546001600160a01b031633146101f85760405162461bcd60e51b815260040161016e9061079f565b606580546001600160a01b0319166001600160a01b03831690811790915560405181907ff213750e75b7d8975215501c91778a99d0e1d7e30453ea61619aba02b5e0d17d90600090a350565b600054610100900460ff1661025f5760005460ff1615610263565b303b155b6102c65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161016e565b600054610100900460ff161580156102e8576000805461ffff19166101011790555b6102f0610468565b606580546001600160a01b0319166001600160a01b038416179055801561031d576000805461ff00191690555b5050565b6033546001600160a01b0316331461034b5760405162461bcd60e51b815260040161016e9061079f565b6001600160a01b0381166103b05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161016e565b6103b981610416565b50565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261019290859061049f565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661048f5760405162461bcd60e51b815260040161016e906107d4565b610497610626565b6101cc61064d565b6104b1826001600160a01b031661067d565b6104fd5760405162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015260640161016e565b600080836001600160a01b0316836040516105189190610764565b6000604051808303816000865af19150503d8060008114610555576040519150601f19603f3d011682016040523d82523d6000602084013e61055a565b606091505b5091509150816105ac5760405162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015260640161016e565b80511561019257808060200190518101906105c79190610742565b6101925760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161016e565b600054610100900460ff166101cc5760405162461bcd60e51b815260040161016e906107d4565b600054610100900460ff166106745760405162461bcd60e51b815260040161016e906107d4565b6101cc33610416565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906106b157508115155b949350505050565b80356001600160a01b03811681146106d057600080fd5b919050565b6000602082840312156106e757600080fd5b6106f0826106b9565b9392505050565b6000806000806080858703121561070d57600080fd5b610716856106b9565b9350610724602086016106b9565b9250610732604086016106b9565b9396929550929360600135925050565b60006020828403121561075457600080fd5b815180151581146106f057600080fd5b6000825160005b81811015610785576020818601810151858301520161076b565b81811115610794576000828501525b509190910192915050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea26469706673582212204145507bfa15500c0eee86c57c125e8500315ccc134912cdaa0914a0badb3f8d64736f6c634300080600330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630410100582002a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a8254e1c7db7575babf0d3369835678ec9b7f15c0886b00582002f97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c75470cbb871e8f30fc8ce23609e9e0ea87b6b222f58021980040219010405581e0364d11e8e3a1420889b55b40236f26171452fc5c2039b36c2ff7eebd1e0070119085505581e03c041a125d5bebf793e4fe76765079b1a6f58561779843267210dab21b00c044656385853200005581e0311f5442609a3d1c9d8b6fcd4116925086103aaa59609edf9372c61ebb00c014622f186d1abe60338d318867d6777429ae9d27eeb574a09ece60292650356363e87b497663cf7db05581e03a72e70a896c5e7e3fd73fc037f9e385a2ff1fcd346c335e8e608f124400c186d471f71d628f1f38803eea6e015c5abaf705debdb853983b714b38e22667b85ff6e05a2db41df0504dc01410f0219effd03a6843d794191119540d18dd93aa3f26f19ee6736289b1728bdb6fc94c6d01aef03f05b8be49c774ea5112ae2b06f09779a49dc595dcd4f90ee6c608aaee100ff3c03acec0c85618661dfc8a7474ffd8eed9c8015ffebd298a260dcd5646f746ac8f30375c93313558d212b012ba9de45416de8a868081a9b692dbe734dac81924addd40328fdc911f176342e62c4f6f5c116a9e9409782b874c181e4deb1363e3ef504f2035f71f76b8ff24905310063097922eb65d32443d0a72bafb3644e7c09a75d73d80375251b39dcf86fbedeb4f16acfa9a96fab03f908a387e2965a90759e8ffa218103b5d8a37ef68dac3b8812669b09392960fc92c87540cd6d61616a7e5e419e495b03dcfdd8ddac2f3c79a632c51a37e9ecf139707623464f7c4cfacb2751ed93e7e60368406e0b3ffe2c3b5a929555b32adfe58f3b85bafc33604e6997cb906673bb7803037103a8515f11e5164f6121e4b98403db352e195fe7d848c812690013d4c18c035c52f86143284b4ffb948c26902cfa5ac33408c4d653b07c7c9356fb4f91c2a903e7148db0ce78e416bd6927721e3beaa5e4c707f3eed4ab9b85d0718bf2c753a30219ffff03a71e294d2d02571517deb4634b261cae905d73885dbac3bb92b437783c03fad5034617a132fd46b0746a642477af55f04d508bf633624ff3a24f92026c42ce5ef703ea8a32a0892cc9162a190dc9557003262a033d6cecd61792656fddb656611905032d815036f3b9c8a7899fc31cabb7d2a30ab09240bb7716a89923847d4692b2e8038170d98859c3e5afaf9382d4ad20f0f0667e474944a816c579830bacd8ed136303fbb43df4eb9fd44f41e741253bb9f1cc03fc4337741529cbef6a90092571c01d035bcf85d3ff03edf81b1367adbc9cb9180d04c08712d7882900e508738fc3089b03e4dbf27791ed2eb9580d54e0c9966a86a290abaeb665c4e3ac7408a07c75f0b003fe736eaf793ce468af4bbb253c8c6309905baf6a0a385b7b1ffba78e72c632dd031eb5bba110765533307bc7844d2549f6aad55d2bdc4d01d704c819627c57bcc40321d1d474b26b89b2aef4d29af2209a8aedefd68060da4fa7134c42cbdcb5c8060385d0fb46317e8decc4c8a9b9396a2cc67b8d8d84951c8ca09916c2651be388080219ffff035900025946d281922a2a3144a22dad27408351e8d3cc81ef80e261b7ad787b1103fe05601ed45fca9fae57f5fde490f733dcc403cce9dfe6e11a6572dfdff55a4d0219ffff035693c2c1841cadcce6bbdf834b1eb0ab5b353a3a0e97227fb049ec9615da3abd0397a56b4955d6201ce452807a7090f7816d5b336774bddc884c2aa979709869fc033bb228620700ed48d7c6722b359bbccaf43843e4eec132e892c589906ba0e34d03208fa1a8cdb23079c52bc53a60e18fcfe50dba6434ae3b881dde353b4b6484630321e9ccdc9c7e8008bddda6018876a33a7fc099bb8a61ac0a6aea5b086047f48703e7d2807dff149f510f87e46de01df997829c73935301328346b0a99f5f04b49903d92232a1be23509197c762fc3ddc4e116af2b00d2b58fffac62b9a29722b2bbc0394b688a92a36ea0541f132f6b3a148f96b78c4e560857195771e40b6ebb98b96032b17c04a457e4b51f16b166eeb7d523c2d9914565fac05922f4e40996df8e8fd0304c46b43f6e10ecdc76a36a768bd1a5dbb2e839fc9b81d3b1905f4014b96225f0380e1582aa2c0269014764b12f00cfd4fb0de432c629108b4f39d16f06b63d68b037ab32135d12fbe72d13468e4a09ade0ca57073cf23eeb094492415d0603f5810039042a74959f462854170ee15ff86df9bd3cdea7b7e278007abc2ebe86b6e7a940219ffff0302ee6748e49feefcd81d7f36cbb0262dd5e253cb09e54b55f89f1bedc2081198037ced7ad4bb05522b0a843ff26d459a8b767e3eabf53c02f6bcd7f09329e2ca4f0381f33cd259fa3721eb9ee3ba328e2662fac73c608223755eb466211ce5cad314037e6b32d3fea0c44ad09041dc3bd7b8844556a358978e1990b35f6b4114665c12035adec0570b1e27de63def72581c89d2b637a660b41c9c4ecc6420a2215a1b3e4035da952844db89701769bacf14fc0318956bc954f6d3e56ea03c33deeb217be610320d471a4c51bda9f860a58db58e5fa40ee851c49de8b07b4a11c52853d9a7a5403b8a80c95d0bc8750735c278aadc0f99ce7abcb8aceeda2047eee7a8b7f89dceb03da6e9638370df8eea75bb2dda24b0da4f2ce74c11fd2af8d16c9e901c7ba96cc03ddefb159b278ad3fb41cd2980832af3cfee6b2e4989e00f69559d0ec14009bf503d342b74cdab6c920201ed43a009696450f0bd78270bc12483fd5dce8492fddc003d9dea40b85826d838afd593b8522829f92b39b2e200d46727dff2556ba97d7c203fa71c50f29c4c86af3617e3e49d01fe9d992839c22dd0e1f67bf5aaabfd0c97903a3fc42bf47045d0114f7cab5b152874e61d00db9daf556eb3e9cecae7c804890033ac9291c220ef9563b6fe0aa556902adb116236b3b499e4b9e1b2d4756476f40034a88fb904aa63c19ff6b92f1a1b7ae8a2cb3232ad3eb85266da1ef00027749e1030873e3808ad184715bbe3b68ac856d9c3b37a187e6d98e584251be1c71e6053f03a40c2194b288fd8373f20cbf63a30b712dfa6c6eb4be8f4d55170d1fde0092bc03b4daca7d995845477da69ae5bfe38f9c8efe98dd81aad0679ad02e4cc100e9ca0398eb3be1d07e74e56a38dd852a517f8627d4c3d8eaea366cb6ebea356659f1d6033b3b9e721e3706a59dffabeabe18561a7abfd200c90944f716f9d3f32e8735bd03758d97923b36ee90d1d726a0ca2941e7794fed165d1c15ec60b63f22586583b403c3313e2c86abebf00faef8000594fc94292e9d953054406e912ba0de562a1045034f6f06069510da768d3d1b765a255f73d7d721cdbb950cccd386da66411d00d803fde78858d765faac65e171d4d997f5a607c9fc7d2f57c1f356b6f9dee89b2819031b54fa51c8b98ace8b52dbb878e6f331913f0207320b4c17602c91a1ea241ebf03692b7aa1880b2fd3cb08a69fb170b955865c0ebe1fa8922bf18303bb7c0739de032683f4365950ab6078ca7dccfecdbd2cc7cf7d902353e26b26c4a9d2bcb727e4038a9deca6a56557b0f8a9a37e363b143791ce28d8ef86427540c607005058906b03163aa4972ecd867d23dfee8b0dc0a7f84dc5b802f239bc597388dc36fe1761e603a1337173b66588069b505117f2f6b03f2687decd611d23089cf266747a3d86a10326ba9631082b28e97a3d2c2d9ce796e2a7e99f0f981bc93223c9b48ba390cd13036eef6590e68a52f414e37daa1cda86067bd4a08f33ffdad65a56eb9d762a1cad032f429836817e5f030d88502f411733ff43cb87b34dc5aae7457447a17f5c870703f5ded695fd33a93686cd4af6e215da0c29a0c3b6a26fd4c42d04d4bd6bfa2ec303916e9b45c46253767d84dc2c538b2a4dbd513ac672874fc2a354fd77c6924a9c03b0b2bfaa982bfa0b74152f2488e9b9d32ff418e8890904dadb4210b9fb766cd603e2c01afb40a1bb4ccf9a79c4915eecbe587ae719c8fbe1f17e23ee0f7995f598037907fd5613aee26f32bc20daa1a7444a3d45422ec495e6ee41997e01dd56f8b403988210ffded5ffb34d5945c489523735955ff1f133794ce9de831ff2b55ee58103e63ca8ea36587045751cd52ff23f480cfd8bfb1df3c60e19e22b9391b1ee30350329f924759d52253b62c21e4b7dde3d0728014b21b292451c4918fad1f6bf46f303c4c062397f4ed5718992327cdb72794471e6da53e0c9fa6f7a0d40ab10845c92035e860bb2f34de14c371c11e22070be4b57ed2ace7a01a2bc4f6d5af79cf4496203f2732092af7bdeb2eda70c80e5784eb5f0ebc392a4a801b3caa70a971991f8c203a5f91fac66be92d9e4a883ed27f772d3213e414c49a338e143825c95ee7f5fda05581e0377e234d8a1d0c939f87874cfb86dfe782e023c206bfe4fbad9a3217240040105581e03471d189c4b053895c86042ac4f3df3293fb829e40af0d3a77e59e5e7d00c02443b9aca00031659de68e6a279da28599e113109376d848bf72a54b56d945750294b8c97e773030657e508cc6d404d8cc89513d451fab06b3288013a5753906560d9cbed22571f05581e0309f88ee63cf75e84a39c1be2be1a2cae55d179b8bdfd190a874eec787007011bffffffffffffffff05581e039d8fb44577e2daf690f073b13fda3e9530b8d7de93799939ee840128b00c0146045b423f9c0004592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032032e2bc0c0ff22609eac8f10e1c8736f3e780dcb85055451e7ac674e2667ce4b570058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563048f9c610ebbc61159e00582103e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af051017712623e1bcef3779fa029d2e2f4c9d4005820026cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68854ee1c139ea09924a95b98b56a68efc1104f049f2100582002b661198733f53bb9b621ec808effd2e8a3d86db6962103738e13951e49aab048027f6bb06ff6bb0e0058200242acdcf31e478e05416ff0498747b1eafa6dded723cd84aa3fbaf351918e1b5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219814000582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b582075a68b0fa4968ae75daab7bfd26f9ab84ab59f2c370a2bb03f935f76f2084074005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a84ff26820becbb6cffeb183005372ad1400582002941fd76a619f3a67fa78ba1487c712734af6eab41dc9677b31f2061df8da265820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219404400582103f6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c704101005821031f25289b5c9db29d46c3566463f71796d2e07c9a7a96a888214082f19288cd0048f746a53b4c6a56a800582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf607b00000000000215a2f25a7370a09800000000000078f317b5af08a25d0058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f54c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20218480219f44505581e03d4635628fef027e57129bd3a095819ae66dbb21fb4a76125a74aae57d00701192c1d03ba69b6e13b06e84ce4faf381891057c2373b95161158cd388cde1468371b679003a730bf4ae8b8d79a8c09ab8d29b845fdd4c90f497f2b15089a8c5320d8cd7d9c03dc9634d9c39ab372aaf8be320e08b89f81ffa41da053dacdb5d6d9c25941f79805581e034591b5db0714bdb9feb551698706b0d8cff472f22c58bf09e6f6905d7007011bffffffffffffffff05581e03b1a88893bf611ec668150981b0b37067adaf203b9858aeed822c2d8c300c04473a8f8ca6524e2e05581e03e1c68af45e0c85feaf3a7e9fe92e28f05c39b3685484103358404cb2b00c0245e8d4a510010219a5f30312ec879be9c677e9cd8c58b81338a3c1f442a39534fa5a20480361821c674ebb03a9b19de15c2de2252a22b9b5d887c9c436742eb269eadc247209b24b4172bacf033506e714a4a01db4c0842dfa4660ff9461fa8dcd0016b355c697f5cff35e542a03325e7a922b7b10fd078dde633987d39d8f11d36c73c25772f0d9292ab0e9843203cf5e1050d248908b6c3f95dd3a9856e716780c8bbc1cedff515677287dcbaf480348e1ea176bc5ad367b7983a2ab37538560113be6bd6b6c4e4a5b64ee104f503f030f06198042726a04fefa7d9a78c2fb1cd58250947f8a622d64a00508e309035303c0a46a8f8e407587943847e371372bb9cd11dadd451a80c84fd172c729f931770386e834850f3cbf84fb35f9c43c8a4af6311c86416b751fb68441e720a454e6cd03e350976bf817e314e74655a286a781918c2e8fb14b93b1cae155199497c6086f0396f1f5d6b310c90daf49e363058565126fb58470cfbbdddd46281740a72fed6e03fef3723d9d6f88255fc973e1c05cf370e97c6b4ca4d817e246da14e2ba1f5165039926cd4851688a6aefcf632eb5c95972342d8043bfee4ed5ddb714ad545c7d8c0219ffff039ce82626dfccfdc04a23de94000cb7e7b5ff29196454a6d3f29d2f34ae3e1ee10300f8bc8529a658177b91483a8c20dd822882ffa84c2173b97f3c54c2e5aa5ab60219ffff03aa5b66c190b04ab77071f0af2a64d663196df1d4b0d26048c21be3431efbc4730353a2fb7a6edface47ef1d1e969afdbbcd75b98f9507b0573087ade8cfbcdbe6e0219ffff03097157d03fca75074a3dc93deb9dafc6342d7b715bfabf71fca899f08b2dd23a0326b342158886796927600e31784c379f8e1e7d1d67327d82bcad9078223b9b73038d77db4a697a0bedc7f67619e6733d2bcc034da5ebc15510c6a114a72b1d04f60219ffff03d0de2e180fff3a55c29c3f515a6018e7c3eb4c32a03ac92442e0d3f687d9b65103ecd7a4ac75cdf85fa4431962fd0f1983a089dc08696a3f2287706e19ace0f6c803f10900d6fdfb05ce1547c147e643ff12ebcea5741a819fb8145b517fcc18b23c0219ffff03878100c6c9978d175f775bc3ae266eb60efc6cfa774c2baa124921d393df04c203ca4eb829dcfaecec905c4f3aa891b389b10d22ed8cd6a945705ee096c7ba8b32035aef37e568230984375b8c038ae04b46877562d2cc4db86c07969dc12a79a68a034b965bdaab97431fb164f668dabd56f4023e5e8589626cca7e625cc85562bbd9038ce1019ba6386eeb4d667511780d27b81eae1c9e4fffe6a59ffd13a71b4d87ef03ac7bd0407d067c58ccb9e10b7c68e497286c6f5710e97b5f4fcbe2d6ae30c740030c91f514a6dc623b7cbb4d3a4fd91ad2827ba569fd6c109b05d8c48a7107155f031f8c7783ff88d7e710280676359dde9afc5b12e4b3ed612c160c36c477fc4f0103e4ce0629ccfa996c8f77b4b8bea1e0e14eeab7c0aeb5224c59531eeec9361c4503db0e5c1161a9ab04e3c80f8e69410bd456db47648ce65ba2524a153129e4ac2e033cb52f93ec611a8da0a05bea4c61653be3b5fee33b255f7c4a4a33d7a598f1fb03e574c20d5407882ea0826a1d6f23218fdcf684c872de8412ae633052ae679b7603c71c4f70e1fcb790d7ea148787479c232ce53786da5931662e3305295b7eda1303fc5d61ab5aea99e55b274ab21b6a194c669d11e6746d4fce409c60294b4bfb92031e1c8733fdd568cc4e51d07fffe8a54175ab5fd9e83375f11da2893ca7e1681b03f4fdc6d79030a30c431df4e85969ee99e6fd99b51342541e5a9801cba5281a870384d0a936894c155431dbf0bcaef8d4c58c66e0b68b2163a0defe33f2afc3d67603a8d4459a41a545aa37f1df4cd1e53dbdfccfe1b92739db8f0b507ba816ea71ab030b081eae3fcb2995062804dfe05064190e89879fe6a8358b7e0716883222b1e20373da16b5a11fd31f687468e7e437c0ce88ed2218ec87097fd68d12aecedbe82103458ae837264127bae70701a77efbd93777c4f2f964eb0ff8749febf21b08f30a03180409dbce0f471a844cde7655d95f99ce57465f2c9b3a3519f6ef0fdf1296ac032411ceacd5de7fcb10320f232f57522a65bdcf9a0367f17cd2a6f2134ab128b6037c229ffc216827e2e26285abdbb2aafec7f91c595696c56c788e8c9d6b378fb30314d17ef0919b0aa2c2c93f207d5eb384998bde11623ef29cb6c192db580c226e03e165e3f2145ad1b10898dbcd711b093702d032e174a5bfcff28e34c0a9915e7203d8a2a04978703613b39788713a45ce2347fe08f90b592b2fd0f77c782f3fd9cd03d142273a6a1c19cc86b6aedf3e313aca349ea9d25b1398b2f2f3cd1ace87667a033c7edaf4c8a204444d65b7f9acb35770d92fe09237a5018e699090ad0a187d4303d0cdbf72330850e1ea2eab63c2c486efa350a5af71292b89b52516ac046a335a03e60096b2ed0595435e292119086017532da0b5ceef785f0b34adce9b8cb383960309e7c17f44c6c75499f1bf67a2b9c9448ac5adae6221167115e0d9ce0e49f23503ec3f036e612279d24a3d407ca0ca1b8137a8d3d2098a5e66a8f214125b3a7f3503c6371abded603253ee4228bcea5add2a8b7400008cd2c7b5aa2ff3f4022f900f03cb803d44a46f933e524d11c4bc2f26aa300b0d2560dc348d3806cf00554f0569039583cb3595c1a6fbaa09a3ccd519076b7720661a4066f398865650ea5ae1896b031b229c9aa259eab43f0e90082bc8425f5e6c04c20e70999a2c9f48d7b72487cf03c67a043590d9eab3067a1c34a179e424063785319153efdc4afb6c94ed99c8c403a8e4a1de078a7ea7818384927df551760df45d456d2a5b9efc8d797378c7246903f0555de3a780a48be182cb3956f3972eaf5106a284c0a7d87c1f77ff3967285a03783780f3097d9d3b8d67969c62f43b69a1c1f7f8b5663c07a34a3780f8c5e29d03103aa12154c07d1154135f1fc68be927ab68f4d8d75b08258469719f378d35c803a40d312748d6b29a5f4d7dd517d1428e5eadb39832845c7993fe5e30384352eb037a4fda7eecbf10b451093aa7e2ad1ba546c4a311b9afa34602a683bfa6af4602037effdea2cbf5b602df64645f5b90f76cc0fa0bcf9b6b20d5148ec979986b066103974a3df45a37ad885cb8d634f3ed912a8487ff4289ce9f7bf69b9d008ee9a18903f27ee8ab8332ff77ad5487e6a9ad201754bc5b99429cd6829d48d57cd689a9d90355d40058e37fccd6ba820f57b8ba73329b414bef035b4b2fa58dcef21445079a036271b1db5ad4c0ad3f180eb86687dd406625ba472119ddaef0b57a160d0aea6903c47460ddfd8303529a1e20b02b0283a695f2c54f1969d4ae9375a871d8bc880503f1b574431f3838d9cdff6e701afd5a058652dab5ae5523288a83d5fad7696139035d1e21f700a49be24991d5b20b17b5bd6c9f9a8827fdcdd22ee081f8bbd1bb9005581e033438101ef5396c10534be9546fc834bd35e6ccfcf8cd3552b4b854d33007011bffffffffffffffff03fe8bcc95af69bde603a5a768dbaa33251965e49b6f41b8029c8662a8db4969f5038d4c389f756f95f370cf7c6fa0651dd5b2cd27e42d12dd9222b0ee4e91797ad205581e03c1da930cccc481a412b5efdbf4997d85c44a1a7b63e2992224a2f4a5300c014705fd13b7002800035fbb31888e45cf7930d8c8e1029831f8ce15991af5b655662300055997f61b3405581e0359b9faca07078cae61867ac6e3dc14b902198ae1980e99c0001ab016600c0346ca879bffa87803fb917bf9a473489d27e723f0e8f448c4e545e27331b6ff02f21f902d020da35805581e03996a3aa27c767b8c3ac816236a0b34c8f2e66d191c3212eb329856db100c0247021a2f33a4a2d005581e0302165eaa9d6e6b7eaf421cf598b0638802abd4d1277516e120f88e71f0040105581d023a6babfab699ca3d07c66886fa4e9e51a2a6e21297dca705c934a9570c1819483f9090fb7868e6ee05581d026cd14160e241b00429968b1668fc8b8e3d9d191b136b0637ef5b1a450c014687852573cc10021948000219fe5803a05659574551ea0cf290a2c70af2481e86893cd0ebcbc5fc2387c80e817927b203c542072960261f3b38cd2dc79531c70c6fc4c0aed4c87f4c6cbd07e79d1c490003c63d5ff108063e3a89891c3f4ea60dd31ca4697cd58adff1a2370b952c47da67034c73f237b3dbc56ce47ece6783b811a0ddfd8a6c3aec26c796cac29d612ce9560394be43c2adad543ba84fdc7f7bd7afdf03a91b794f416fdb5c4c0c2b7b41f67a0219ffff030e0881ad66a02f3fe2c9ebcb27f845215b8b4dc93ea5501b459478f8701e992b0219ffff03a8d34fc25359ac47eb194ea6e30768823481ee1ba924b9848c4ee23556817a3203d85fd32fca06ed5f490940bbfe9d9806208f2362eaed9b75eb27e407532df021030f8f2c11a52847a7be932fd334ae7db84dd2ff21646b915c811f18e68b4182470335891ad75f98d3652a9dbfbf992443c43e26602aa777cefe83fcc70e19e77d170394690fbdfa2ad5e4e129dec7c3237b4f7734abed6dcea962084ea426aceba58f03926b0e126a044fe044ce1d0831c226ad12d47181570def599c1d2d29c2befc95037c5c4cb86021328742bc66980c7b2b71ec34ac9a817cb96e136f713593152a0d03501338a2a200b60e6d0f87dba02d16abd7b1686ccb3136e9b0240a4c0cf5b6c7032db8e251de21bbdaa52da2ab2ac3b2a14886689e3ed30b4cb6a844b51a3c20f303dca97dc0f65415e9879799ba77b6783282c65332dd3a13f425795281003245070219ffff0367f451a4ad47c8220f1729d0a9791ec1ce5bea8f6b7906645e1355bab18735ff0322b54ab719b9e3e71900115871b1f48077880126a617bf38c3b8150b978021960219ffff0302bd4698994add16277367c4bccbb70f1248e5d28e378c04deeaf5688274b1b503f1fc7bfdbc17f4086b74aef53d09b2a82506feebd991a8a0ade752e0003fe5d903171ed47d15ad1089bcf6d352466f44e99bdd2af2ad2ba4cf80363323d9f176fb0355bc01d7ffce21e32df87fb848757e0878eca09f76e1fda3dc7415e0b1ce07c20378e5fdcfbe4d95ddbddf83d1b2110372aff3e388b8c9e4e52a65ddbd34c01b870372002b1bc559bd8b33137ebc94cbaa3ce5f134d124872331b8d1910e83130ff303c21fca0227893af7ee96d8ca1450a18a5d8e5c3c11a8c62801da5739bbd1569a03062b54192802608f44da7d8dc88572d95e312046b506774b73421262e610fe75034599d0b1b1cfc5b7c2211b22d00929b48d1c447e43786f5430727294e4a1a1c7036f3dbf2aefde19bcd4efd4ad6b3863ea328336faad90dc710f7e6e2dc6975c0e03c7ef8aefc48789dc86397aa6315851d86b100b8911c962005c069c4874a2fe0003115289873e516be36694c7c922de641db9395df113345a505433f386dd1b9873030a5aa79d60cdac8e72264a13b956bf58e8f34ca6fb0e8ec6f3db057dea8cd65c03fb1031261c5d5d1992c80f0037f4d191c92398c2fa126389e356d9f38c13d7cf0362323e7dc261fd76fe5455219780f1c9c9f982774cb196f8f765c0af4cc7e6c303fa269f41ed80985a1950fbf26ebad060dedf816a6d5f78d3f7ec07e9827df75303b29f231fe527f9f435efcb02d86914c05750f96b4463eb8483376a680e6eb991030df7a18ffeae72999e556197def50a6baa33a2c3b657eb5cac7b023200e93c7c0310b4b1f0815162aa248e0c9c588f31f00f45ec5418647eb8748b55b81aa0f66f031ac4758ca7b0d836a009ff26dd3c075e679a3162a4a02426e21f115ff549d582034e3fe4262eb2506ce70778c550a215651f9b234b1fff3c13e36ed89f22f7aead03e483ecca68b2b9532792ca69ad8eaa73552e6a75f9b3b235606c60cdcce8d5b30376b84eea0f0aaa1676c6a0ae8b1a6a042041739824a19da7d473a1b2a56bc97703ff604c3b5e3154617bf0364f42c18d10ca313bc62821b24c4aebec56b26fe15a03562c3f1d73ff4f5a6b3f2ae66df841e74add41bc94f4cb5f25302d6f9f43a43f0353978061defd7c4ebb3ff153cddb5b9b3a5b09fb73ba5f0897c1d6c937043ec203630745dc758c3fb321763b4441fe788474762bbc52061f2ce4cb09c5e651ab9f032fab18a72edb2a1718d770f78c3c2851330c5f67aea71542432b0cca2d558d9d03ebf5407db2103bc2170644c2ea67c5fa21cf167f3e4a182dee62a9b6a0e525ed03ca02e8f285c5e442bf6bc2ff36bb401891cc4f772574e6a217c1357894d2b150030558d991cec03efdee59d2d25815b0f71de4a7e4bdb8a4d0c27c1d715c6f1143031d4085a52c1aac855aae027cd0c1d4130979f306d5ba05518a3a5b7c39f9087703ef5431197bff07b8a476584c5c61a40e3cb7ff726d9f1d405f298c270fb6683803a761059ea5af9a1b64c6ff398a71a1e0572de2037f6bfe1969e7166492411d96038138530f6fb246a158dd6b68bc756817e02696f8548fe93ee008aa59e37930e0038425c190044f3304a1aa14185c149858784b9b582178e80721157109b6f0d20e03d1fb26ef4ef14fd1cd15f2aaeb42cc49048fe7d1ffc1023078902b53cb37aa79033ff5200910bb08510effdd04ea6d4f989ce27254fe38eb3cab754fda2a22d21a03a08ba3a324df41304cfe3374fabf34b70a5e477f0013a58cb491bacc0d87d0770335bcbc8fba81b3fb9c6229660536a8614decb7a45b6c3d47cb085cc1ed403fc903da811c580b78eac3ae5ba3c1265c3aa65d21deef1b44fb752d73e67cee94214303cb4d7eb01e97ce22d09191b41d86a60d816b821de3b510486879b8c40778366e0355f374186530d90e7c9719bc3cf70fb0cc5c712c24228a1f5e4458382170eb74036a29255426190bb25fa8db64db6956b68a9be29b0ffb49cd008a89899731aa2703e2b9de7909547916f9f268098b9d3df29f01da900cd7d3c9bcec5f2170fcc21c035d134e2f370c028df4a34fa28eaff9242ad0e804976612aea7cef898722939950399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe9080334f8e8acfd3df21fb6b4920d3fa69a9856f37a4f9cad8dbcc9ecd7f7a73c7d8e05581d039affa12f89f8662c1507f375c69d80101aaa5b480d7e964080f7d73007011bffffffffffffffff05581d03b51aeb3ee9e7ca0d7d47ac795675339bcd29c50c6ac19c125bc4df60084803ceabeb6ff266000219010801410b05581e03dc1677c4522eca559a65132eb4b85199e621072d97377578460c696cd0040105581e034f25072e0b9fdfbfdea8aa79146512dd27421f764497a8be2957f43a900847421499f8d2800003ae1af30a21312b72edcb045f5268155e027b81270fe04dc2921f94bb804705b70321754bf7895b8714445d33ee8983b68a6ba8fdd6d4e100c0d35d03c09ec29a0d05581e030c22d311bdc1e70fc4b42fff2c58373b6a8e00640950858edc1f22f97007011bffffffffffffffff0219ca42030cfc9fc5667290eed7b5ac7adb68e286859e4ee77557e8560b8abd4db3a9cb560219ffff0219ffff03c518c068d62fd3d91cf967ec08251172165d9ee5751baaa60082ff7bc36d690403b75e4fd4abf4bbd921afa539bf71ce13d3f4c11caec4e5594a306f361eef81dd03995fa5fcf1ab4232768b3266bd9be5549b571fd7928573a7d879bd44c17ce67a0326c967f97e9999cc08ea55be423847fb7ca65a2e66da929ff920751061c7d4e90219ffff03a5066587c590ed21e9f7dc7e44976e9b10472674f6bd37ce627b464ae0a75dd403ee92b8f62185d11b314fddc8c9894dae73a8d1d566ff46b325380cc33c12388303e2cc8541cccaa04c09040f581808a870038ad5931cb969370ad3242f5aad387d0311bdb9fad4c09d7067260c14230de1c6ab3becc2bc6c15b160dea322739a1b37038db49d765e38fc43a357651cf7deb2ad2fee35790c849d0d87d20f69ef0f257903d8ac6b6b7c0d0c49edb0d8aa589b59ca52ac5d6450f14e39b08eb4f29b0dc9c5038293282d89c2663c4ecb581b01adc19b0bf2f146f1ca904a890624a34a6b61a3032294f3f6186f4a5562d601140d3ce5dbc0dc251dbccae758ddb41f50816859ff03f994b3e2f65b080d61b21aab639f99ce65352b1960fca5831efd6ce5e29aefaf03ff38083b3bf9431afdc20c083099823247ff62849a3d8eeaabe78c5d18bd70d003014c09ba7243985098597f841a6ca69159150413e7f8263849c95a8a3cbce86f03c285b0de973206517e2f32b72f6e7665a08306427b96326b6baa3478555362280219ffff03cf4b7ad72e2f7a3b01b4c7c417abfe0840bd69003bef46c3d3eed21de2531ac803c038947683b938fd5a917a384a8ac3ae2873193b1cd3a0b0446acd14dcee91cc037b4f0a4555cee9cb31f97e25e76513ad4f1100eb8ef5464b9871a22d8c0f52f5038f05094655eb5336b7c1ab05e6826bc23f04d4f5ee914d2a3247d6e22be72cd203e5525ecf7a788dfcf1cf011caff57b8668e553256bc9b30abbdf77b97b28765803cbd8906e97ee531eabd8d49fee9c3ae78f5b2f28c20696557ca09654c5f1ade303fcc753912a9db2a5a0b8b3ceecc1f621e1a942c42baf17c3b4882e26a6b37ca303e163ae3ca9fe4cf2d99eedb537f5dbb9b68e9dc7fbab48c83a682d5adb518f9d031d493888c974607dbf2456f935206ef317d3fa83e175eb3c719a262b16ad5d2a031bcdfa82750fcbac4bdbaa853a2bf29593383aaff1c96b19c98453a58aa67e2003abc592271f11f7b1a4ae6c1bad45486c7115063735532507b0d255361cec2f2a03df515b9d6e1e4fe32f602169a59bd354264ad8128455f576cb86775ce31dfe4303d7934fc800f5abb969e43f4702ba707c596df15f3c4bcec2a295ca6fb0a243cc03488d761aa0cbe0a0472e042a4d29b60c162e197a6f154e09f81aad9f7101c35f0383a3092a8366a04b3b83f747c8918e0edd2435d2a0f826036f6d9d99324aaf8603d1da83539dae0099f72cd69e9667e4cb28b5b33ad2d96258c088ee114748c8c503f1ce13bef235983d4066d4f705ea80b2874c73836a2a5640546334f9e45cb96603722022519cf3f20e1b07211e22fb6f65d34ccb0429f638c58d08bf6e1ecb79ea03761f0c601bf8cb02b95116fce2f8c21e7ebd67939b4520972f91ee160b310c94034125e8dd1d536ac4c80e6e9840ac8b29d30465c2dd34ee2d704cfd82c22b51280389d4da338edf84d390cf34c69e8c36ed764423c1a15c50213f1dc1e5dc369a1d0378e94952ce1bc0afde1eea71ca51c365c3d9f1806d3edfcc535103cc32dd245703da781397a8a19b3cb849eb2429e9b3f2d9c7fd8833c19a8be1178ae937302efd037dacccfd5d2dbc236bee7cb777e959ce654c610908d338de3dd4ebaf20704ba303d51f2fca8487e57207f3a4c260bda7252a1d6a2f6f3bbe434c82ed5461867f0e03f83f96d228dc2640f82b03b8016166598a770cb24fea736b49c85ab1885e2c6403fd2d5808e1fceced0e4fcb12844cacae66ebdfe52b2977fc7d298ead33d8cb1303ace34b6bd027f526944c7ec351d854b362f59b789f9b0fea04ce8c5728a539dc030c30dd688be7da097a7931192372452de60035776d01f2ea5444c96e99ee34e103c2c344b5398d297d91632f0f15db6d8396aa44ee5f68fc14c298b091a9fb02a103c52a80712f639e5d71618d76158e26835abec7f439e4b283980fa5f1640bf3980375f97ce3e0fc8ee3c26bafbf906f35ad3f8c5aaf0338ba1b20c5c0352566116c03ae55ce69e6c98fbce62692032113356e0efe54be677f4bee7976bec37d17a7f5033b405d677c8017060b68df3c28b6c15da9e94505c3df263f6ad471fab20e4fcf0378f5167a494b7d754bed3a275e39803baed72470ded6ec1caa0582e17578acff03578c2127074f32fc131f17dc09716bd59d1a9da28e0525440b85e91a77fa5c36034aadfa8ae380e751a027d2dc84f0bfc9a1cd4f4a73b0464a95e491ac905ba1c1032f2577ad00321839febab8416cf64b0e0fdea6d5ada8c4fe105a477625fdbd3203d0745f81e49855fc6a9bd2d3e3897bcdcfb7f23fd5eac8132698624f9f8f939003e472b8b3a4cc6a574a9e899a72381da4eeede12a238fae43cc064996cd15d65c030816e1229f4b52302711d8a527bfca050711ab10235bec03520d3077d6a9908e030291527e64a07367aab20faf5c96279c7900cd4a4e32a3d4fe0c0c418ccb6d8003555d6acdcb125c7be00f942339138a2741ddd1985dfe1da2e2b006d1445b325401410c05581e03d76845474f6b8fc056f04fbf29ab738b82af3d0fda0374cb1c7b3ae980040103a730bf4ae8b8d79a8c09ab8d29b845fdd4c90f497f2b15089a8c5320d8cd7d9c030ca6da658307619963e16e7ee61a42cc711e48fce75d8b9190011addf16a3c9805581d021f15ef2ca3fce0c62b42e9d74d2a181d9cc435631edf0db21949ee9a07011bffffffffffffffff0459368b6080604052600436106102b25760003560e01c80638ae458da11610175578063b2494df3116100dc578063d7f1b27c11610095578063ea0ee5591161006f578063ea0ee55914610842578063eaf993e114610862578063f77c479114610882578063f83d08ba14610897576102b9565b8063d7f1b27c146107e2578063dd62ed3e14610802578063df5e9b2914610822576102b9565b8063b2494df314610738578063c2de0e9d1461074d578063c5d574fe1461076d578063c75640171461078d578063d0ebdbe7146107ad578063d7b96d4e146107cd576102b9565b8063a457c2d71161012e578063a457c2d71461068e578063a4e2d634146106ae578063a69df4b5146106c3578063a7bdad03146106d8578063a9059cbb146106f8578063acf3f07714610718576102b9565b80638ae458da146105d75780638f6f0332146105f757806395d89b411461061757806399d50d5d1461062c5780639dc29fac1461064e578063a06324611461066e576102b9565b806340c10f191161021957806366cb8d2f116101d257806366cb8d2f146105155780636f86c8971461053557806370a08231146105555780637d96659314610575578063802758601461059557806381b2248a146105b7576102b9565b806340c10f191461045e578063481c6a751461047e5780634e353270146104a05780635230c396146104c057806353bae5f7146104d557806363a90fc1146104f5576102b9565b806323b872dd1161026b57806323b872dd1461038f57806326898fe1146103af5780632ba57d17146103cf578063313ce567146103ef57806335bc4e5214610411578063395093511461043e576102b9565b806306fdde03146102be578063095ea7b3146102e95780630ffe0f1e1461031657806318160ddd1461032d5780631ed86f191461034f57806322ebeba41461036f576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d36108ac565b6040516102e09190612db5565b60405180910390f35b3480156102f557600080fd5b50610309610304366004612b31565b610943565b6040516102e09190612d66565b34801561032257600080fd5b5061032b610961565b005b34801561033957600080fd5b50610342610a4b565b6040516102e09190612ddc565b34801561035b57600080fd5b5061032b61036a366004612a02565b610a51565b34801561037b57600080fd5b5061034261038a366004612a1d565b610b89565b34801561039b57600080fd5b506103096103aa366004612af1565b610ba4565b3480156103bb57600080fd5b5061032b6103ca366004612a51565b610c31565b3480156103db57600080fd5b5061032b6103ea366004612b31565b610ccc565b3480156103fb57600080fd5b50610404610d43565b6040516102e09190613548565b34801561041d57600080fd5b5061043161042c366004612a02565b610d4c565b6040516102e09190612dc8565b34801561044a57600080fd5b50610309610459366004612b31565b610d61565b34801561046a57600080fd5b5061032b610479366004612b31565b610db5565b34801561048a57600080fd5b50610493610dd3565b6040516102e09190612c47565b3480156104ac57600080fd5b5061032b6104bb366004612a02565b610de2565b3480156104cc57600080fd5b50610342610e90565b3480156104e157600080fd5b506103096104f0366004612a02565b610e96565b34801561050157600080fd5b5061032b610510366004612ab4565b610ec9565b34801561052157600080fd5b50610342610530366004612a02565b610f48565b34801561054157600080fd5b5061032b610550366004612a02565b610f56565b34801561056157600080fd5b50610342610570366004612a02565b610fae565b34801561058157600080fd5b50610309610590366004612a1d565b610fc9565b3480156105a157600080fd5b506105aa610fe4565b6040516102e09190612cc2565b3480156105c357600080fd5b506104936105d2366004612bbd565b6111a1565b3480156105e357600080fd5b506102d36105f2366004612a1d565b6111c8565b34801561060357600080fd5b506102d3610612366004612b5b565b6111d4565b34801561062357600080fd5b506102d3611281565b34801561063857600080fd5b506106416112e2565b6040516102e09190612c75565b34801561065a57600080fd5b5061032b610669366004612b31565b611343565b34801561067a57600080fd5b5061032b610689366004612a02565b61135d565b34801561069a57600080fd5b506103096106a9366004612b31565b611483565b3480156106ba57600080fd5b506103096114f1565b3480156106cf57600080fd5b5061032b6114fa565b3480156106e457600080fd5b506106416106f3366004612a02565b61156a565b34801561070457600080fd5b50610309610713366004612b31565b611575565b34801561072457600080fd5b5061032b610733366004612a1d565b611589565b34801561074457600080fd5b50610641611646565b34801561075957600080fd5b5061032b610768366004612bbd565b6116a6565b34801561077957600080fd5b50610493610788366004612bbd565b6116ff565b34801561079957600080fd5b5061032b6107a8366004612a02565b61170c565b3480156107b957600080fd5b5061032b6107c8366004612a02565b6117c6565b3480156107d957600080fd5b50610493611850565b3480156107ee57600080fd5b506103096107fd366004612a02565b61185f565b34801561080e57600080fd5b5061034261081d366004612a1d565b611868565b34801561082e57600080fd5b5061030961083d366004612a02565b611893565b34801561084e57600080fd5b5061032b61085d366004612a1d565b611902565b34801561086e57600080fd5b5061034261087d366004612a02565b6119a6565b34801561088e57600080fd5b50610493611a0d565b3480156108a357600080fd5b5061032b611a21565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109385780601f1061090d57610100808354040283529160200191610938565b820191906000526020600020905b81548152906001019060200180831161091b57829003601f168201915b505050505090505b90565b6000610957610950611a79565b8484611a7d565b5060015b92915050565b600a5460ff161561098d5760405162461bcd60e51b815260040161098490613427565b60405180910390fd5b60013360009081526009602052604090205460ff1660028111156109ad57fe5b146109ca5760405162461bcd60e51b8152600401610984906134b7565b33600081815260096020526040808220805460ff19166002179055600880546001810182559083527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b03191684179055517f27b541a16df0902e262f34789782092ab25125513b8ed73608e802951771b9289190a2565b60025490565b610a59611b31565b6001600160a01b03811660009081526009602052604081205460ff166002811115610a8057fe5b14610a9d5760405162461bcd60e51b815260040161098490612eb1565b6005546040516342f6e38960e01b81526101009091046001600160a01b0316906342f6e38990610ad1908490600401612c47565b60206040518083038186803b158015610ae957600080fd5b505afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b219190612b9d565b610b3d5760405162461bcd60e51b81526004016109849061316e565b6001600160a01b038116600081815260096020526040808220805460ff19166001179055517fead6a006345da1073a106d5f32372d2d2204f46cb0b4bca8f5ebafcbbed12b8a9190a250565b6000610b9d610b988484611b5d565b611b8c565b9392505050565b6000610bb1848484611ba3565b610c2784610bbd611a79565b610c2285604051806060016040528060288152602001613609602891396001600160a01b038a16600090815260016020526040812090610bfb611a79565b6001600160a01b03168152602081019190915260400160002054919063ffffffff611cc416565b611a7d565b5060019392505050565b610c39611cf0565b610c41611dcd565b6001600160a01b038085166000908152600c6020908152604080832093871683526002909301905220610c7890600101838361288c565b50826001600160a01b0316846001600160a01b03167fb373eedb8e9038a2dcba31f06b2735887c1a904125e5c9f0021ba41ed972318e8484604051610cbe929190612d71565b60405180910390a350505050565b610cd4611cf0565b610cdc611dcd565b6000610ce782611e02565b6001600160a01b0384166000818152600c60205260409081902083905551919250907f8133e2bf34edab764b55c59d1d41f9df637e7c22828bb6b0a9d55b429d008a9790610d36908590612ddc565b60405180910390a2505050565b60055460ff1690565b60096020526000908152604090205460ff1681565b6000610957610d6e611a79565b84610c228560016000610d7f611a79565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff611e4716565b610dbd611cf0565b610dc5611dcd565b610dcf8282611e6c565b5050565b6006546001600160a01b031681565b610dea611cf0565b610df2611dcd565b610dfb81611893565b15610e185760405162461bcd60e51b81526004016109849061313f565b600b805460018101825560009182527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b03841690811790915560405190917f76da6cf8b40dd2b2c223a5956831e0ff4e75522538a86782108a0bbe1577e29891a250565b600d5481565b600060015b6001600160a01b03831660009081526009602052604090205460ff166002811115610ec257fe5b1492915050565b610ed1611cf0565b610ed9611dcd565b6000610ee482611e02565b6001600160a01b038086166000818152600c602090815260408083209489168084526002909501909152908190208490555192935090917f81a422e27f503e1b92cdb616a6e653aac10a8e0c3fa6832a58dc616c080fd7bd90610cbe908690612ddc565b600061095b610b9883611f38565b610f5e611cf0565b610f66611dcd565b610f77600b8263ffffffff611f5316565b6040516001600160a01b038216907fc605d0bf97f9b921340106a2e59f9428d5eb9039b16866159e0cdd2bf8e963df90600090a250565b6001600160a01b031660009081526020819052604090205490565b6000610b9d82610fd885612080565b9063ffffffff6120f916565b606080610fef61210f565b67ffffffffffffffff8111801561100557600080fd5b5060405190808252806020026020018201604052801561103f57816020015b61102c612906565b8152602001906001900390816110245790505b5090506000805b600b54811015611199576000600b828154811061105f57fe5b60009182526020822001546001600160a01b0316915061107e82611f38565b13156110ed576040805160a0810182526001600160a01b0383168152600060208201529081016110ad83610f48565b8152602001600060ff168152602001604051806020016040528060008152508152508484815181106110db57fe5b60209081029190910101526001909201915b60606110f882612080565b905060005b815181101561118e57600082828151811061111457fe5b602002602001015190506040518060a00160405280856001600160a01b03168152602001826001600160a01b031681526020016111518684610b89565b8152600160208201526040016111678684612194565b81525087878151811061117657fe5b602090810291909101015250600194850194016110fd565b505050600101611046565b509091505090565b600881815481106111ae57fe5b6000918252602090912001546001600160a01b0316905081565b6060610b9d8383612194565b60606111de611cf0565b6111e6611dcd565b61123183838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050506001600160a01b03881691905086612252565b905083856001600160a01b03167f2a936dbabeaea30adc1ddad138b1958497988474bef8b09a29411f0105ab8ab285858560405161127193929190612d85565b60405180910390a3949350505050565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109385780601f1061090d57610100808354040283529160200191610938565b6060600b80548060200260200160405190810160405280929190818152602001828054801561093857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161131c575050505050905090565b61134b611cf0565b611353611dcd565b610dcf8282612280565b611365611b31565b600a5460ff16156113885760405162461bcd60e51b815260040161098490613427565b60026001600160a01b03821660009081526009602052604090205460ff1660028111156113b157fe5b146113ce5760405162461bcd60e51b81526004016109849061301f565b806001600160a01b031663847ef08d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561140957600080fd5b505af115801561141d573d6000803e3d6000fd5b505050506001600160a01b0381166000908152600960205260409020805460ff1916905561144c600882611f53565b6040516001600160a01b038216907f0a1ee69f55c33d8467c69ca59ce2007a737a88603d75392972520bf67cb513b890600090a250565b6000610957611490611a79565b84610c228560405180606001604052806025815260200161363160259139600160006114ba611a79565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff611cc416565b600a5460ff1681565b611502611cf0565b600a5460ff166115245760405162461bcd60e51b8152600401610984906131ec565b6007546001600160a01b0316331461154e5760405162461bcd60e51b81526004016109849061327c565b600780546001600160a01b0319169055600a805460ff19169055565b606061095b82612080565b6000610957611582611a79565b8484611ba3565b611591611cf0565b611599611dcd565b6001600160a01b0382166000908152600c602052604090206115c4906001018263ffffffff611f5316565b6001600160a01b038083166000908152600c6020908152604080832093851683526002909301905290812081815590611600600183018261294a565b5050806001600160a01b0316826001600160a01b03167f5d0275f68d583838a7e2be68e3ef8ac2c1f9d4eeaa4b223360f4cd093a160d7560405160405180910390a35050565b60606008805480602002602001604051908101604052809291908181526020018280548015610938576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161131c575050505050905090565b6116ae611cf0565b6116b6611dcd565b6116bf81612362565b600d8190556040517fc4e78b3245dc105eefced18655b978e194ff858545a1080f2888dc3b6ae8df0a906116f4908390612ddc565b60405180910390a150565b600b81815481106111ae57fe5b611714611b31565b600a5460ff16156117375760405162461bcd60e51b815260040161098490613427565b60016001600160a01b03821660009081526009602052604090205460ff16600281111561176057fe5b1461177d5760405162461bcd60e51b8152600401610984906134b7565b6001600160a01b038116600081815260096020526040808220805460ff19169055517fd6b18042563148f38d728c1c4d339ffd515b632d0ad2e1833b822412f3f4d8779190a250565b6117ce611b31565b600a5460ff16156117f15760405162461bcd60e51b815260040161098490613427565b600680546001600160a01b038381166001600160a01b03198316179092556040519116907f43fcfef38622d6a5b118be09c27a6ed8cbdbfca21f0ea9245412ce8031c0423c906118449084908490612c5b565b60405180910390a15050565b6007546001600160a01b031681565b60006002610e9b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600061095b82600b8054806020026020016040519081016040528092919081815260200182805480156118ef57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118d1575b50505050506120f990919063ffffffff16565b61190a611cf0565b611912611dcd565b61191c8282610fc9565b156119395760405162461bcd60e51b815260040161098490612e54565b6001600160a01b038281166000818152600c60209081526040808320600190810180549182018155845291832090910180546001600160a01b0319169486169485179055517ff71324fa78e1894b364a1fc8d0535c4208f28c7b380f752afe00c8ce386023fb9190a35050565b6000806119b283610f48565b905060606119bf84612080565b905060005b8151811015611a04576119fa6119ed868484815181106119e057fe5b6020026020010151610b89565b849063ffffffff61239d16565b92506001016119c4565b50909392505050565b60055461010090046001600160a01b031681565b611a29611cf0565b600a5460ff1615611a4c5760405162461bcd60e51b815260040161098490612de5565b600780546001600160a01b03191633179055600a805460ff19166001179055565b670de0b6b3a764000090565b3390565b6001600160a01b038316611aa35760405162461bcd60e51b815260040161098490613320565b6001600160a01b038216611ac95760405162461bcd60e51b815260040161098490612ee8565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611b24908590612ddc565b60405180910390a3505050565b6006546001600160a01b03163314611b5b5760405162461bcd60e51b815260040161098490613453565b565b6001600160a01b039182166000908152600c602090815260408083209390941682526002909201909152205490565b600061095b600d54836123e390919063ffffffff16565b6001600160a01b038316611bc95760405162461bcd60e51b8152600401610984906132a4565b6001600160a01b038216611bef5760405162461bcd60e51b815260040161098490612e11565b611bfa838383612406565b611c3d816040518060600160405280602681526020016135ba602691396001600160a01b038616600090815260208190526040902054919063ffffffff611cc416565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611c72908263ffffffff611e4716565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b24908590612ddc565b60008184841115611ce85760405162461bcd60e51b81526004016109849190612db5565b505050900390565b60023360009081526009602052604090205460ff166002811115611d1057fe5b14611d2d5760405162461bcd60e51b8152600401610984906130c7565b6005546040516342f6e38960e01b81526101009091046001600160a01b0316906342f6e38990611d61903390600401612c47565b60206040518083038186803b158015611d7957600080fd5b505afa158015611d8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db19190612b9d565b611b5b5760405162461bcd60e51b8152600401610984906133e3565b600a5460ff1615611b5b576007546001600160a01b03163314611b5b5760405162461bcd60e51b81526004016109849061304d565b600080611e1a600d548461240b90919063ffffffff16565b9050600083138015611e2a575080155b1561095b5760405162461bcd60e51b815260040161098490612fe8565b600082820183811015610b9d5760405162461bcd60e51b815260040161098490612f2a565b6001600160a01b038216611e925760405162461bcd60e51b8152600401610984906134e7565b611e9e60008383612406565b600254611eb1908263ffffffff611e4716565b6002556001600160a01b038216600090815260208190526040902054611edd908263ffffffff611e4716565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f2c908590612ddc565b60405180910390a35050565b6001600160a01b03166000908152600c602052604090205490565b600080611fb984805480602002602001604051908101604052809291908181526020018280548015611fae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611f90575b50505050508461242e565b9150915080611fda5760405162461bcd60e51b815260040161098490612e82565b83546000190182811461204c57848181548110611ff357fe5b9060005260206000200160009054906101000a90046001600160a01b031685848154811061201d57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b8480548061205657fe5b600082815260209020810160001990810180546001600160a01b0319169055019055505b50505050565b6001600160a01b0381166000908152600c60209081526040918290206001018054835181840281018401909452808452606093928301828280156120ed57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120cf575b50505050509050919050565b600080612106848461242e565b95945050505050565b600080805b600b5481101561218e576000600b828154811061212d57fe5b60009182526020822001546001600160a01b0316915061214c82611f38565b1315612159576001909201915b606061216482612080565b80519091501561218457805161218190859063ffffffff611e4716565b93505b5050600101612114565b50905090565b6001600160a01b038281166000908152600c60209081526040808320938516835260029384018252918290206001908101805484519281161561010002600019011694909404601f8101839004830282018301909352828152606093909290918301828280156122455780601f1061221a57610100808354040283529160200191612245565b820191906000526020600020905b81548152906001019060200180831161222857829003601f168201915b5050505050905092915050565b60606122788484846040518060600160405280602981526020016135e060299139612494565b949350505050565b6001600160a01b0382166122a65760405162461bcd60e51b81526004016109849061323b565b6122b282600083612406565b6122f581604051806060016040528060228152602001613598602291396001600160a01b038516600090815260208190526040902054919063ffffffff611cc416565b6001600160a01b038316600090815260208190526040902055600254612321908263ffffffff61255516565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f2c908590612ddc565b600061236c612597565b90506000612380828463ffffffff6123e316565b13610dcf5760405162461bcd60e51b8152600401610984906132e9565b60008282018183128015906123b25750838112155b806123c757506000831280156123c757508381125b610b9d5760405162461bcd60e51b815260040161098490612f61565b6000610b9d6123f8848463ffffffff61268116565b670de0b6b3a76400006126ec565b505050565b6000610b9d61242884670de0b6b3a764000063ffffffff61268116565b836126ec565b81516000908190815b8181101561248157846001600160a01b031686828151811061245557fe5b60200260200101516001600160a01b031614156124795792506001915061248d9050565b600101612437565b50600019600092509250505b9250929050565b6060824710156124b65760405162461bcd60e51b815260040161098490612fa2565b6124bf8561277a565b6124db5760405162461bcd60e51b815260040161098490613364565b60006060866001600160a01b031685876040516124f89190612c2b565b60006040518083038185875af1925050503d8060008114612535576040519150601f19603f3d011682016040523d82523d6000602084013e61253a565b606091505b509150915061254a828286612780565b979650505050505050565b6000610b9d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cc4565b6000600019815b600b54811015612671576000600b82815481106125b757fe5b60009182526020822001546001600160a01b031691506125de6125d983611f38565b6127b9565b90506000811180156125ef57508381105b156125f8578093505b606061260383612080565b905060005b815181101561266157600082828151811061261f57fe5b60200260200101519050600061263d6126388784611b5d565b6127df565b905060008111801561264e57508781105b15612657578097505b5050600101612608565b50506001909201915061259e9050565b5061267b81612803565b91505090565b6000826126905750600061095b565b826000191480156126a45750600160ff1b82145b156126c15760405162461bcd60e51b8152600401610984906131a5565b828202828482816126ce57fe5b0514610b9d5760405162461bcd60e51b8152600401610984906131a5565b60008161270b5760405162461bcd60e51b81526004016109849061351e565b600160ff1b8314158061272057508160001914155b61273c5760405162461bcd60e51b815260040161098490613214565b600061274e848463ffffffff61282816565b9050600083851812801561276a575082848161276657fe5b0715155b15610b9d57600019019392505050565b3b151590565b6060831561278f575081610b9d565b82511561279f5782518084602001fd5b8160405162461bcd60e51b81526004016109849190612db5565b6000808212156127db5760405162461bcd60e51b815260040161098490613092565b5090565b6000808212156127fa576127f5826000036127b9565b61095b565b61095b826127b9565b6000600160ff1b82106127db5760405162461bcd60e51b81526004016109849061339b565b6000816128475760405162461bcd60e51b815260040161098490613482565b8160001914801561285b5750600160ff1b83145b156128785760405162461bcd60e51b8152600401610984906130fe565b600082848161288357fe5b05949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106128cd5782800160ff198235161785556128fa565b828001600101855582156128fa579182015b828111156128fa5782358255916020019190600101906128df565b506127db929150612991565b6040518060a0016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600060ff168152602001606081525090565b50805460018160011615610100020316600290046000825580601f10612970575061298e565b601f01602090049060005260206000209081019061298e9190612991565b50565b61094091905b808211156127db5760008155600101612997565b80356001600160a01b038116811461095b57600080fd5b60008083601f8401126129d3578182fd5b50813567ffffffffffffffff8111156129ea578182fd5b60208301915083602082850101111561248d57600080fd5b600060208284031215612a13578081fd5b610b9d83836129ab565b60008060408385031215612a2f578081fd5b612a3984846129ab565b9150612a4884602085016129ab565b90509250929050565b60008060008060608587031215612a66578182fd5b8435612a7181613582565b93506020850135612a8181613582565b9250604085013567ffffffffffffffff811115612a9c578283fd5b612aa8878288016129c2565b95989497509550505050565b600080600060608486031215612ac8578283fd5b612ad285856129ab565b9250612ae185602086016129ab565b9150604084013590509250925092565b600080600060608486031215612b05578283fd5b8335612b1081613582565b92506020840135612b2081613582565b929592945050506040919091013590565b60008060408385031215612b43578182fd5b612b4d84846129ab565b946020939093013593505050565b60008060008060608587031215612b70578384fd5b8435612b7b81613582565b935060208501359250604085013567ffffffffffffffff811115612a9c578283fd5b600060208284031215612bae578081fd5b81518015158114610b9d578182fd5b600060208284031215612bce578081fd5b5035919050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612c17816020860160208601613556565b601f01601f19169290920160200192915050565b60008251612c3d818460208701613556565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015612cb65783516001600160a01b031683529284019291840191600101612c91565b50909695505050505050565b60208082528251828201819052600091906040908185019080840286018301878501865b83811015612d5857888303603f19018552815180516001600160a01b039081168552888201511688850152868101518785015260608082015160ff169085015260808082015160a08287018190529190612d4283880182612bff565b988b019896505050928801925050600101612ce6565b509098975050505050505050565b901515815260200190565b600060208252612278602083018486612bd5565b600060408252612d99604083018587612bd5565b8281036020840152612dab8185612bff565b9695505050505050565b600060208252610b9d6020830184612bff565b6020810160038310612dd657fe5b91905290565b90815260200190565b602080825260129082015271135d5cdd081b9bdd081899481b1bd8dad95960721b604082015260600190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b602080825260149082015273135bd91d5b1948185b1c9958591e48185919195960621b604082015260600190565b60208082526015908201527420b2323932b9b9903737ba1034b71030b93930bc9760591b604082015260600190565b60208082526018908201527f4d6f64756c65206d757374206e6f742062652061646465640000000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6040820152651c8818d85b1b60d21b606082015260800190565b6020808252601f908201527f5669727475616c20756e697420636f6e76657273696f6e20696e76616c696400604082015260600190565b602080825260149082015273135bd91d5b19481b5d5cdd08189948185919195960621b604082015260600190565b60208082526025908201527f5768656e206c6f636b65642c206f6e6c7920746865206c6f636b65722063616e6040820152640818d85b1b60da1b606082015260800190565b6020808252818101527f53616665436173743a2076616c7565206d75737420626520706f736974697665604082015260600190565b60208082526018908201527f4f6e6c7920746865206d6f64756c652063616e2063616c6c0000000000000000604082015260600190565b60208082526021908201527f5369676e6564536166654d6174683a206469766973696f6e206f766572666c6f6040820152607760f81b606082015260800190565b602080825260159082015274135d5cdd081b9bdd0818994818dbdb5c1bdb995b9d605a1b604082015260600190565b6020808252601d908201527f4d75737420626520656e61626c6564206f6e20436f6e74726f6c6c6572000000604082015260600190565b60208082526027908201527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f604082015266766572666c6f7760c81b606082015260800190565b6020808252600e908201526d135d5cdd081899481b1bd8dad95960921b604082015260600190565b6020808252600d908201526c125b9d985b1a59081a5b9c1d5d609a1b604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b6020808252600e908201526d26bab9ba103132903637b1b5b2b960911b604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526018908201527f4e6577206d756c7469706c69657220746f6f20736d616c6c0000000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526028908201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604082015267371034b73a191a9b60c11b606082015260800190565b60208082526024908201527f4d6f64756c65206d75737420626520656e61626c6564206f6e20636f6e74726f604082015263363632b960e11b606082015260800190565b60208082526012908201527113db9b1e481dda195b881d5b9b1bd8dad95960721b604082015260600190565b60208082526015908201527413db9b1e481b585b9859d95c8818d85b8818d85b1b605a1b604082015260600190565b6020808252818101527f5369676e6564536166654d6174683a206469766973696f6e206279207a65726f604082015260600190565b6020808252601690820152754d6f64756c65206d7573742062652070656e64696e6760501b604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b60208082526010908201526f043616e742064697669646520627920360841b604082015260600190565b60ff91909116815260200190565b60005b83811015613571578181015183820152602001613559565b8381111561207a5750506000910152565b6001600160a01b038116811461298e57600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cf4af89f7cfa78e2d4384cff55d4548a6062d655f5be8606d039069af7c903b464736f6c634300060a00330360ea7920ce62b933839c983cff4359cea9f4d40ba7645cca39cc1e5402a537a203aece605703a42cc3191903ca44e8d93c7f0cfe9c38a11b43d20d98fe19d079eb03817af525e983bab0f89ac3adc040c7ea5ba5406dc11cd9f0e6807ee0092f096e03b248b0aa218ce9437d5527aeea2acbcf30e1ce54e9d04934d6f5fc98b9b1589e03597fb92a13c5f9cee69de79819459616163aa87f6a7bab7063bbdc69318c7c04038ef6e594201de8a497fa51cbcd415ff8e6a9da00c7f141d3a86fef301ba8e3fd0345ebdbdf1e995f0b24c19d2306d067636e61ff25afbb6a66172546a401c94a9803d06d15fc48545f2e9495d2e67b15efa8e82e1da82d89f7197f137430810f71a403c7fa824c400e5c511ca9e354f208c685994b6bca2b71c683b03f16fd9aca489f0367f3a50dd1540fd0566e4b9971db42f2d7feef95f7258fec97021c25d213338a03dd6eab68699901082a8ea8d0b1b0019eb89f5808cb23b2ffdce917b5f178dbd00327b174f3d457b9574eaf956fb6894cf6c171c28f9fbaa1d89974abf48faac22703c002a2a7fa946bc4c8d85e660d58eeeffba1a0a2d037b69610368dcfd25febc70319b0306bfe9f803e5a76984fbd3b1dcd65c82acc4eb92f256ee22bd1b5f5de0a00581f02349d274bc7188a5b46e6473ac73cdd8e84278fa55a42020e3650f9fe227f5820fffffffffffffffffffffffffffffffffffffffffffffffe57ffdfa9f6bbfd5000581f02cd4e641d5dc097d27f28b9a0e23a3fe5458682d748afe201584dc073c0a04a014dc15ac70ec6dcdf7f021980100330ca4f85d273fa056f2cbf7cc6f6813650cb8dcba9f80af2a7a93426c61821ec03ef14b2051cb18ad4412cd8975c3e937db64da530a77bf912dbf8e64b07fdc90303e6e1a02945964757a0d562478a0e60a225887f43ae2528255bd178815091a61c00582003ba55c60a0fa4a9fd899dfd4a673d0f9719dac10148afcd5f228ba8ec2d00f04904b8e090c224f16bf703e78b24aca702ba454c9c71a1e6e489a5de4f094887155d3d420125d989a511fd0058200320a8568100753c638523b4721eecd2bc1d49f730adc499e0d7e229c39d5e8049068dc0f6ab76b78e5f038a6a96e2dabaeea96c1d6e50ed429ee22ce2ccc25dbc378f2d3985ee41d9340403532addfb77fb955fb1ca1654ce5f5accefcbaea4a1d5091a9a03a59ee6087d7703ebb91cbd0b3bee7763bf408c2a5e1d1a2d841aafb91e9f90e1312faf2e8d8c88032ed05a017af5c7a17d46022baaf89126037c7a79b212cf638f2c9f6c9e4727c403bf3c18f8c4a1b70103e40fdc3db3fafa127ae0fec7ea38c6d6fda73c92c3e25503503644cc1f69c199037d536d499e33130227e32e9a41282b198228752c9ffe200219ffff0348d264aa096932ffa17497680ec9a0c9fddf5716342ac396bf3ec401dee0adab035f9d2c753b1ece54eaa908171fd993c47277de099863a9f8bb3c729d9ea4681a03fef9e54243ca5f8290d4b6dbe2693bb3cbea9b9df6c24949093e9af33465e4fd03434620618ba07b50f13d8ac61f7718fc4fbf8818ec6881fa8df7ce5b37da6c0d0384e05cc761bf45572ef246a8247ae2d25b27d6e6d27c7e9be97ec9c10e58a89b03fec86154980cc510ad9cb54d257e626983170480f87e7c25c8a824810a55518b034419463465364aa8325f43091944a5715e3bc28a106b44344d4e55119bd62e50032692185f5f8daf24ad9c448a9099bacbd2f3165bf603930ad58c7c4f7b0de58f0219ffff03d34e72b777f28187e287baccd83f73ae9d59bbd26c48f55bec11610c8bc18e3d034097c3505614db42ae89105c5334fb1b065486d8fffcda15955883bd75ff309403e8c29bab046dcf256bb8cb9b6284d387af9dbe6852c78200ece60bd24d4e0b1803ef66232d0f25c47317093eea84c87a75199053f00c6b187fb21365c8f3aa56eb037c6fe2336d56eb64b66ea00824910b85afc78d2cfcaa584da6b28eedf2201f7603b1d51ff745f99c3756b975dc58c27f8d50909be76a9f7e2ac3e32fffff00d39e03b35364f5359252179be91915679b254b9eda1c2d77a1eae414cac7b9c2688345038525f23898b028d8d93ef19d0d78c2eaf32b9525ab25b8049b2722720322152e03f3d86a1e65fff6f637afd02b70b895fd785e0a5bdd3870e1c8b5acf2f7488c700396f90e2844902be3c8b104db58b12dbc6d79b43289c1c75405b33202fbad0d9103f22e70d0927b05d0794334cba00174b6f9030e9ded5d97d1af99255ad21668560336ff865d837cfa5031191bf3633a8b804528311d95af99b967a729729f19fd29038bfb3a29daadd8149f00bcc25c151feb990005f5ae9c41ba76d527255cd8762900582003fa2e1ef7ed4891f7eaf3d99f5ba2d0d270aabd29fcfb9f427469b271f0000041010350ad7a1e103c77c97c3786c8842d58642577cd3105ad215f2fd65ae59e58404a03da884bffa16ef65efc0a542b7346b972b7233f038fbab1e60c9f4d31be985c9e03cc6e71d42b4406ffed6dd22263f27d7721e3ab0a56a91a4926936d90f63962b8032390cae870eda904e39d7c47e01863e25526b66a200ecb6965a154d18194a97203000df4cc52516e3fe0da6292e3945c34a44dbd6a7aef46f11f2719e80fe4f52403e98a78aacfbdc9c25ca5a34b6a50557e4d21fa11f5d14a0e176cc3106830d1b5035f77b7bc095b0487d263589244245a90d5e2a7ed9ecb6852a3ae5acc3ea4c43900582003c7e3794394556e25f5ecf13c05e2fd775bda6b1ac4dd572cbf4311e9d1a4905820fffffffffffffffffffffffffffffffffffffffffffffec6c1075c727b5a516b005820032078711ce01294252b003085eaa0c49afbe6047cca8f1b43f722dab2816c405820fffffffffffffffffffffffffffffffffffffffffffffffe865e8a159b6b9de300581f02eb2c36525a13106cf4035bb6535fea7075d37229dc58c70eb0fbfb83691a5820ffffffffffffffffffffffffffffffffffffffffffffffff26540946cfdb900300581f02e3a84ee4fdc3406cd7a4a31a029ed9ebb7e007228c1a7c10837417923945410100581f028e8ba439adda901ef6c44a001d3dd47301d440e3c8617d025132c678aa9b5820ffffffffffffffffffffffffffffffffffffffffffffffff93a7cc40c3283e3700581f024a8d5c341123cd4ee949dddcb8326974b5d6608244275a63d245c6c267c44618cf323777f40219142803fdc756f7ff0d6e35848fd8e7743150d34e54c8ba511691c9bfda3192237a3fcc03ac2b17e0b2cf0117223684152f239f13b4dd6b3655b2be49db3c2ee9cda03591014200c000582003286855214df8487cfbde892a2d08ce7d0079c7f30c33edc06e2ef7ac3584004954867eca8054b4c8490375829d49c1e3abb17ce1db004b280341685a1602d952d087aea0113d74249a82033b06f0ea641d79d71ebf35c2c325c980044bd5df9aa4b16678aa3289565db0290219ffff034519ab64346f260f31d9de1f04248005442a8bf487763c6af7b3bb941ee57a9603f307c5fd7664ceb397c9ce3943f8e3766ed250b9cfa4dca7c58011e2810cd95c03562414525af04a71e21ad734b9ff47c81a515fbfb2c513917a23494949be50830314a922fbbbc24948c5f28901ed5610a3aa9c8d1b285c564fa4429c1e7bb4b06c036e0f2112a5d75e0963f403b1b561e586740505049e6bca6832028efe11a3a7d30324ee5216e994d7278246247d2140a3a38cb83c27d7908e62a7ca37df0433f2c103c9e2c77bf1158d77fbd2f25d994af57934ecec6850c715f9f41853f46002f2e30219ffff0374b1edb35e17096fc083ddd2a98ff7e996118203b52495c00d7d156c22ed95e8030c9e45be9d8d8f100c01d2ea7e833d4047e90701e08c9f684a1a0e25cecbc9fa03b478375a808daf3ee32b07bf58819bdf924f4df7fcc23ac9653b66edab65b84403566e369f5089642a229892c21f813d3d493a22e7cb37093be36608ae679063fa03612465375a6cdd9a587b08ab4c0c1f7e59d139cbdbd21183cf7434b2bf98e4110380e74b90e67785fe9650cd60c807c53dfe29d02c2aed8e98f8acbd8653ecad0603b8a97ee5c773b0f588bcf0a47e83aad620e34952220680bd6d9e7eff29b5e5fc03c2dc088d21c4069684fc081c0a41b4bd695c2def482ebe5975462f745e8a36e903e97446caf037d2c9e137c062ec8f8945fe04693b206e7325d091185494072d330058200356ea8e9f7a6717567746691d538d897879b771bc4647c73a5a69da6d7349205820fffffffffffffffffffffffffffffffffffffffffffffffee7a8b2fcbfe4ed61036c5628dbb4553305f4bd47efd16c2d85ec0a1e09a63426fbdd1f2ba438759b84033646458c1352d8f5c9890c44102f7bf14eab3457581c50bea8b6c7d354d5232303e67163cfc4f7e53889c4dfa56fae5011a9b668db7d8454084db63420120bb49403b35bf65a50a0c6433a39c4545bd447a175f048cccdf42dfa820071fdf6fef776030d1ce395e015320b7b65a221a135bd96911a5d9a620949ba6590734db74fc3a3033db1cdd3603dd119534c5ca54cc0b563fd84c718c1b4e39a611d4bc58814e9bf03f8dcbd8742d4d43a64ab217499f57b41af1207eea88e56145094a38be1717c8f03ea6e75d3a2c9b48ecc340655734f52a2ed2d0118eb509f166e9c9567f6f97baf03c28d9290573080823105496400298c97e4f1fabb8890779454a913a6cacdedd50304f75971cefaef4023706e4e3c5753c7b34dddc9668a54573808cf0b332af271033d0113019c09bb2f7ad4631dfb8bff0608aac950662b264362d5dbe343dc66bc00582003dd1436ec7d1cd778844d164a21673feae58d0d2ae85340c9b7f68d1bdcc6405820fffffffffffffffffffffffffffffffffffffffffffffffcbe22ed38dfec95440389e216c0828cea6cfda62f518f071ae5f64cdf88f6f9af6571f40db499b94ccb00581f0203cb857c1f88da526238466fcd27659c0601137a2dcb35570ff9288a640f4916bbaf49d9387d1c5400581f02f6d14e8ca06f41679c222b0c291899103ed465ccb47b0fd7d57fe255c3d75820fffffffffffffffffffffffffffffffffffffffffffffffeec3768c48e7bdfaf00581f020e7aa3f550a98e7441986decbba54de0aa16494c47aa0f7786441fbc6f9f5820fe0000000000000000000000000000000000000000000000000000000000000000581f028dbab647369f9731d1ca69aae8a3bdf7ecfe0c247c511dc126569abc6b54484563918244f4000000581f026f50c206ade3be1f6529893678df62d52a20139bc3a789c915374b9c5d2d4a13d746145432c04ad2ef00581f02a54a7ac95148ed8c3c25dbc293c8c1746dfff10acff06f73457717cfb6894814d1120d7b1600000219248d0219ffff03329fd1f4096da071fa63dcb910af71f117af4926fcbe504f4269c8e93b919415031ee90fed9afb36d522978b12dedb0d248da22e721b3f6eb3776ef4234179618f0340b074212ce7e4f6fae4709120f07d0f374bfdce880b43a4f3d7021a549c392e03099b0062d64f901d1b18b502decfb5c9d164fb2621b672fcc6097454a5d780ed03c218b51ccdcf91dc4f95d93a4f79888b3405137c10ea2b685c5cf5dcd334bc70034d707da5efac27c85ed701329d3995ae8d0562327991f75242955e4418fb8ad903779459992fb9bbc066a61ef0a184ad74418a686bb3bf9bf6aff6ba40b595ceba03266ee2f5e65a039fb4a63e3c86257bc112325fd07ebc44f6a9aca25fbd7c07a40312868640842f9d6dadb4f2e49286f56ad6ed6875fb34ff115110344e33d9d1fd0219ffff03c05fa755f2f77c8c5ddcda898ca4784ad7a2dd153acfa494c34c5ccbed7ea4f703e0efb3d5e7913914866b51f5b01656b0ce2b98d5dbe867965247bc9f90cc4ec90219ffff05581d022c8dab52f8f90c271f05bb67675f083fccc293e7a326c3c7afe62bcb0f014805802fe7d705400019368b0219104003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e03aba08c489b5ad474c07ebfbe33410ca24439571cfeb3b95724d068960007011bffffffffffffffff05581e03aa752171b2ca99214fbe9c912258dd07e87b2f30c6257a4da69f8770300403031f8b67be329f6419c9282095843235301b6b3475e42bc9e3262b646aba8072060605581e036b0d8253248b15b7a1b12d54f229ee511bcc40b69efc84bf2a16f98ef007011bffffffffffffffff05581e03b60175c43cee12b1004866aa086665d2bec547880437a2759549373f1004010219721a03898e78dad11e17be644381cea0ae7c1d3ad38bfdcc74cd49b46b1fc3b7bb07d10395b59808672fb1353e7f403586324cbca6be75dc3cd93abfe452d0a035f3d538032603d571b139ebd7f01e0066d7dac164a7b8a09c28c1f402f5518b0cc89c8e2d0364805af60650dda41b0b200bfbef51742bbc77da888430fa31b2c8eac68cb918034ceb69ddd1d6fde23d3ac5f6220b87db6d963401eb92df331cc7623fb826c49f03ef053ddb10e6df20e063f1532925f59c38420f435751cff49a6bc16dd32d272003ef5d5dae4ffabe5c846caa0ea177bc513bf30e99bc699dfbffa85ca594edb6790319abfe24aaad4d0fd73cb4f2a5612929c99bd833d65011de189b58c246a9435e03d863a0bcc9387464de132fbbfe12dfde51fee7b3dfc882b0787a6c43ab03276403e81d046085fc47a090b8673c5f77c9ac62232c516f32b895c7bcb203b9faf7b403041dbab8b88d792a0779752b2c1c39a4cbae55bb10fa7f3665781046f1d571fc03ad2468e65640bc4b71a67a8ac043c87860db7e8f200743a19d068d17924ecb430219ffff032f0ee4de7848e944f0b98ccb217fc157f94c5c98ec150f94fb486b6cce04acb503613125e1c61b163fee0d4103f0c8fdd759477be7b8388a30dae3051c79e9ba22032dd258d203531b3bf255270e63356a6c0342895fcbf15a3ff2626e766d96c4550219ffff0386206746b858df0669069442a67ec91f51920cbb483fd8b15bdec382b1a6be860344e6baf813a08fbec1e3dcaaae945379191d13ddeebbccab80560fde94f414650219ffff03d871fc79b151f46dfdbf8c5ab616a8a12274a83dece9f0b88a0563704a387c9703a017311497679948fc2437cde943a41222b0fe06513389f23c8ac362f38baf1a0219ffff030ac22c7b7cce2b8f9fb02f07630853936ed508daed05fe8737d7bbc6aa9e794c03795bf94ba2792add431fa06bfc3c8b7c99f80b32d4bcf808eef9262cb346cb600304a2ecf1a99c3b598c080d4be1bb342a8c9412c8dbe4aa2df63183bcf79d51800219ffff031650191497a8b409c8c7fe01e4591cf485a4b313fd33d3401bcf56a39f97696b03a468d17fd6092b4efdf1790bad8fd877b2bed09d91f570cab5220f1fcd39a2f50306a86098c43e0e3fbdb92cd47459b5dd34c59a089388811190a92a56c6ad97b30305e427e36bc77e9a276c4f8457751fc33b9e022252c1013cda99cd21bc274da7036786e1993791baf9226c4052a8fb37ad27c37ff2bb4f2307f951c328d19904c2039073ee1e985d60302901229de3bcf3bcf578e7e18b7edb00b33d2480191efc890314a13eddeab38bd7df7e4599950ca4255216e9a03d2c09d8c2f3770525af95280362faa5a52289db1f4cfba0b9cc3bdc98edf1203d8507083f4d2b3a58f1d134770339f1c67b059e353d696ac82e7a02bd0a094a3294b41d266d97af01a803f8c1910384082ca5af310f354f23a486be5cbc122c519b8fe4334028720f62154b985ffb033780ea8ec72c0e6c467b4b4262a2a932a05518757d071926fff5d87b29d53a1d0362d0d30c6723438533d8567be7513fe9aa667eb8abaeafc61232486aaa0925a003cbdb3dc65513c802e090a4fbb39e5b323209f6c25d2a27bce5fd481660d1dd0503e8ec37f620834a0c637fa712aa273637f57d53f99dfb6e8f6938f1da3dd381ef030feb1f1078ac4c1f3baa14913b4216ea6fef46388602ffac84cc780c41a35e4c03033cb3e76606fbf8ff953f7594690d3a0331eda7aaadf9e642042df2ecf278ef03f127650e78abd68d95788ae8d7b6d6805e30c5d89d2f3bef3f7b074e18000e9403a95c321fe995d210668461fd4a18e4f471d3d500b370c898bc8587c10e2f6388035131269b9c77b2071c4853d77ce8603ad337693a24a17bc7f0a33932883dd107032b4ddec0b73159580dd4d4706594ed481e9abfee57c4c237f9936f8a40d199f703a1bbe3db57d1bc1b7e873c35ee267c63054f860226377813215564e8ab1cc09103f3ce2fdcd9f13fa517de9dd704a66a02ded5f91f155ea099c40821f4abbf54760351b83ce2933440635dcfdb4808b0b5884e1b6de629b5e4150fb624b771d3ebf40359cd7a40e337cdde43d6b25a43706a33019db9730f6858234b2317727ff067100365d5135d92bff813c2e85bea832701c859f711557a021548a4197ad8cff1398f036d2eec0d268a3dae8cc81b4461ce5d867271d0909ec73fa6d6a8e83a36b53aea036f0581fd2e16dc5b66f066d70690c895eb9871b512a3adc84b24e74db9f7863e0371968765226d34981a4fde2fbfbf3e10669aaf8cf15ca49b9df93e54129739080366b29765d4793c92d469b520ae3809acef4f14b76eec1d9cdf2140a42dab428b05581e03b1ca458d01246eea6fbe769c335cb7ab3f938c5a8726fc54777b261330040205581e033d616945a7d42cfd2e5310f685d39212557c18ee821c96579e5020555004188d05581e0352507f09d93289f2000854ca21ec6d108c413ec69d69e55501c7272540040105581d0265a919c155a4eee6caa20efae6287f002fb003186271ffb1ad95f7c60c02470b7c2e85dcd80005581d02ca4549cdbff3ad31d60800a5e862e8ef6deb21f722a281579428568f0c1a000a961d489d98cc653885ce0905581d0252594122e76166b01cc01f13d41fb1c926568c2f2a14b8ef66fdc0de0c0c47026c8613727150021903800352fc2d0cdc5601d1f944529012aa66566856c5b49b1600c7b40dc84ebe04a38d03b94106c7f2b6483fd61c1a29dcf684bb89827596178cbe8bacf65fa13b7e02140219879803e1c15b457c4e685ba81d745e72451ecf4e083b3f37fada38b5a143336763da6003302374dcc17553bbdd76e46e72cf5d943c9a36aed332a94c20cfd060d15f8bce031d8282a04508b70abd8003c0ee0d0ccd0f740a9dbc743000bdb4c25f20afe76003c5f7ba145fb83f3ba2cc939c780506dbb1086883fe5c4079306b2109bb0c3d60034ffb0f0ec57ef20be8e62668abb6228c41e87695ef06dcb62bb82776f9c9b8e3039228bb9a0e66b2462d2f3df607e607ea6310ad4765c1a8ac4631af32391efed103e28bb3118baa2978d1ed9b188b54dd80406a8cd46ca427e1d6dc34dedf0c80080219ffff03771d8db16d382d38ef617e8bb782406b1fb13a50bc9febe21e166c5dd29a81c703b77c3400efac675ecdcb59e8178b6854dbb5e9c31b46bbe0e467a0aca54a4a2e030e384599b2ac0292cc22fae825a3d5abcc0f6faff8410d3754ead4993c17973903d2f1288a415c951a8d746bb159a68ad49a4066f4279be61983e2f0539f6d24f303a6f5c5fdfab3ff8722d226912d7c35eca8bae179c3cb6dbd2aa9c1ecd2ddcfdc03865149feefc897cf04771e800c7fb4665bd1cd4fe203686889b2604711f8eb2f0389c452df893aefd649e9d4196439ea08129b9905659943c0c60fc18dad94c2bc035a466b549122fc384c6e7191ae783ca4c9f0b4913cc73d3c9ffb3f689f1f0af303dae896e4927a7ad953cb2c4dbf9b573da71f7c4038ef71302fe280ca1b7354430363693490b2d2d231fda356997cbc728e794e4b8c8767d6e23d54cf17f8b861fa0219ffff03d1b42740a4ca6170c9ba5b6c80267ea519c2f398e0b3071e256212270c76e9d40309ae2f8f1724a042ae130555b06ac7873309397ef80fa07d50404fb86b4e49ac0219ffff03e19200f860799073d841dc262d18b6867a70147a377dc6f4c858882fe915d070035637bc54419e6beb7fe3e91086822c4ee1a1984ec724ba003c2fcd92b132a4920350946476b382df6bebd3ee8bb188b2a161a651f06a7a25b5f5c58128b688ecc103308fe2baa64a823ee555712f6d2f4a2e95f1502f1473659209749ae54f637f0e03b6320bcae493696b76e43172f30f3da2da647a53564bbd66871221cad0d0822b03e65ba1802ffff3227e6ed356c9ae478e1de66d20a8d4ce2d8b030a43e5e49b6d031589a93abaa8a24afc80890cf1698e85850fb2acb4b9b2edd8ae5cb189e584aa034f1d8f35b6750a99e6551b4b2afac052924b9f7302fd7d1f4cbb94369c54087303738002a4e001da2183af4778cfd5d80ed5b0dd4116a276824108e0c9d2566f8d03ce331695f7b71fdb63c75f437111eb811d416425044ef936bbb67c2e1513351703d6987fa412d7b5a2c42b1fb0ac04ce5f318b4e9b94af84a20983f97be7c100be034dc6318143d95df384490475d5f685dcdcacb611c977608633384f1cfa7ab1380329232b7985102061ed0a668cdd2cd36d3853f27c17ddd1fd933b7c23c3f87fce0219ffff0354fd639d867589582ddfab7c86c3ff531dfded260dd3d415f7d9f00485a7f7380307c230ba4e2cab7a05b25cc51eb3d33e5760d0da4dc0e8997cc385f1ab5cd0aa03e14cfbcd7b5f1934c5ac07ea5fb182981b1123461ce7819a16fe73e43d90785c03559cf2ca572db8e189a045baf7e8ac291acbb4791a25ea44c8ba728dbe14e042036ae5fedd41c7339d532280816468c4719b4b84cf5f17d2afc642919e96f0d6b103e955618dc0bb756d8c6652599972db422e4eafccb6327ec3ee959ad6c42d4a0b03a0e17dcda347c4ca3ca50b67306df84f097207ca3ac80636e37e8b06bae6afa3037b3c6eab1337187dc2bf4a37ed2371f787003bb33f630221ace92ad7bf6039b20323ca34b42d86bdb89683152acc69a4c9021c428359cf0a933e91d279d7c6819c03f21a3690f370c848513e4423f67d9551d86562dd18cb75d76eb6cc19d44bc67f032697161076dccdb5bb807daad1c4c2e65781002cf718fd32572e0d0ba353915b0326fe00b928c372b6f8c6d826149f09a4aaa97884c1b426e351f9542475de85b40337d5be143d3b11bc857c8b21f3a8241f04b2ff4d19b629899e2b08163c94892303a2bc49e02fdf2ea64de424a5825421cd93ca0f3c63814745ff6ceab7014caff90312e8764a1cea4bddcdde6f6eac6512cbedb9286c41339e28c1650be164de273f0325f9e620b76a6eb7eedcdc0a061ca60bcde101148ba0cf04241c27bd29f66708033ee075a411eae29a56eff8c7c77a6e6a34e41cc3760a30a44bf8ff34251bdbce038b6924e116b176ee9fe8978e10614a63458ba9f81a60582bb2b3c49c7f1cd20a03e5822aa6ba6ca5b14e505a2b58cdc8943197838faa1fdb526755f45870244182038ee495a8519790aed8b58d90f7b0cd0033ce5a6fbf862076afcb1edc23828731033254dea2db34e2cd37ddfb19b7e66ab81a329c1fe94f3ec2ce18354cebcf885703a99ed0ec8142969be41841e6d0409009562a492a52c8d134e791ad623b06456c037bc7bc83dfbf967f09157306507f44775e29d7a711a4d79b64d87d87b1c4f31e03c44e74d57101475667afe2997499e71b521e22cae34b4595bb7180a90fd8eeb4031adf17b5e0d1ed1f4f09408ac7ee25ac7b89ff3e85c4b9293f943207d2d87059034996fb772acc5279ff91ced11bf308fa12a9777c84fa6c09292b04b1d1a5872e03e853ff9f5dda0e9a9c42117c61530a1bdeffef2ef32eaeb071588072eec83402035dce5e3ef39dbc83cb2079f098100a7018c8d1b1b6067d983edce4d331326b530359fe458f8dbc67f5c68b43badb67d0174ac2b9f286d11906c61506617fc6652903d82b805143693d8d0bd0c068d123152e20ef3147789afb74c8a740f385a6eeaf03f130c410a608922d0b516569c279aa5e4f1675ff4ee9e9701068be76a7144df403bbac346e06b07d560b86b40af45fd01aaea3081e8b5f1ab3d3427f321eaf976e03cb98d9270f284630e965774620e0cd58169f8fbd1334bf09f516c1b1b15efdc003685c3bebf67758c1368aa1d3e5698814ee842eddfb1326c8a8862af4e695ff9f030d07b583b4f1a28444d0d5645eedd17e3c62e9a0993f5b5ce1d8edf3c5563b3d033dcf31cc2f00f81cdbe8086e7a74badff58ebc1f190b3467ef9db96697ac9977036cdf1af1bc927549c2def3e877c510d38687b1f672219d47137d64425c6b037503f68cf71d3952d3b1b82360797e16dbf479d39843d8c8fdabf8b5f65f891505c605581e03b2758878c2c36786d8487c37df8e9a27b11118c4e2fd76181cd4e648f00c03464315072a35c805581e03e7618f47a37803fd7f7e2b610c14ee757ee031b936d1f786bf523885e00c01470643706cbd300005581e03b2849ef417d0962c9e837433d17e174ab6f3a5ddbdd107a60f9af4e2a0040203bcf2e69616dfb6dd55d8fcc3a1195f986c99ab606a7f455c1a96fc05ac992d9903d6fe2da97a0df942a65306743ed8e8e53a6360e23194e2510dee03a983d0a1c603f251e2396575a420bbc3c92454aaaa80408ace11a4e1f25a907d3d954a2e97c301410305581e03345302bcaedd0839e22b5d09d3e7577662b0c24e06a11d1837acd01230040103cb14cd5329e35ccbaedb8234f208b713968485497b3f95490e1c59d86c0203ab05581e03d4d377e6932bb19975bd84c39303eb5efdeeb681f70cbc6cb4916ec480040a05581e034f5e278d32b0c694fce17c7080ab33451d85db74cad7ea4e0a29eaed600c18d54902413032c3c53958f805581e03f98f04a75a099653f017e5f0007aef28962073bdcd9dbb2fc1c3d8fb800403021979e703f0a2d2929cb2b23688087875667533715a4d68329289e44136a5badcca5a613b03909f3d1032da5d9e28a25d8c41fa301b0ba133271cccf57be936f24d6b513a6803949cdd1c87ced27b3a3683a2b241b88acd0faec0f3bfee27146615cc9b18d25303660fdc33311b31df8311594411d70dd79d9579c8ed3be050722ad828809f76d9030147dd41c1751910dd8a44d2100dada36ef20080a496d6243efebeb7dbea675d03a8e1dcaa48019d979abb4a1abe5e41b07eb2a83d24248d0f1f2d4799d54adee003ddf013d8db0002df9ac4e0cb79428bf41829678d9e1e9e43a3c32efa250301650387dc1d609547d808578144a5004409543c7067c89f08a9a4d3c06ab05ea1a664037bca481166d6c2f11f582e64074da688c8f8b48551529035a94002bb65de3c7903579deb1009854973ff53977a90f39390b0394de60cba6346816ac572123e58f1034b8ad5983e8cbea18cccf263fc495aec17d42472337d98b674cc85b28fb0de74036ab5538930d803a1751b375e8d2bb3e91a762683181332fdaca1bab792769d08036febc88624a4a3fda3ea4cd8fc3ea6e544c72aafc2a43ccde4ad89828edb0cac0364b7abd45a833820d491fba95703f1c91f4c310d83373c63cc159e8b99a6672f031d1ea4d795373868a1228ad7fbd197aa9097b46ad5bc73a0fb2221416f54d33d0219ffff03dafac1a4364c19bee0f82282f7d8684be93f26b47b6dd421c48807103860a25603767382e59c8963c11bfa50a7cae10224a62fe242f3d75eb0e24bfa885c79ccfa0303d8445482fde0975642775921eeaab332b8db852f1a66ddd53f52537d8e467f0349cd4d5d42a3b842584f901aa98200482e915f02dd391df23c7185c088912a61037c89f6b25c1abf657c1f7037d97c802dc39f07f519369a0057a3bba306c1df230219ffff03598953842790b7a0c5222c5c0a57b830de41daac0ca960583b35ce2b1aaeab2703d532eeab714a9df7607cf66e5ed785e0e40a4f70ec7fd26d7a786a10959bbf2f03d6b1e8fc636643482cc6569d25c2e08ab08fd50802e076a3dcf394db2551b7ca03caca77e6e00d25ddb1ffd1442c946d4809e6d8f75c3997e723ec456e69e882810219ffff032129bb96b2f23eed5d77fd2a9e68d36dc320d9ac5505179ad5eb80684dfbb5260219ffff038365acc675f29cff433b9f43fb82a33ac7434c040ec57488d5b2379768790fbe036a21363dfce2d504d1343d8b2c92108da021f217347ca1febc66beaa60d24af9038cba605eb9df782b050a3adf9853285100007a5ab2e5aa13e2e26abd0aac74e803f7f24fc9cae29ca46d54d50602a703ce5fab714412f8edc14ee61bd1b3ac25bf030df7d5b4f664e00eb5a17a023bd09e7301b915c05f6296c0383011304a859d2103db9f0e02aed5fbb6e1bd855992df00e0da8b84f3419ec3908c78d9429d3a7b470320ac67890b1f95a634e3410ab5383197e44c61b476859d491ada6a3372ec836703f45468c69b1e5fc5ddc7ff6b2887592c262eee4b6cc6fc72365dcf8f6936011d0333e4f0629bb26e3a3c006a6639d09932935586a1492e2794f419497eab819076036893cb4d59104ec9d84505d1785d519b47edb28e8b4669aa6681bcd6d55cb4fc035857d3a8442906347983db9d6f2d898240d605a4f754198066cf22c0d6c425c60219ffff038cec94690e812e7fb50dff8c81d6211cb04743e5f8b76ec3a0ae059cac47e35903c5d01e47803849da226a02611ef29cb491a21cdc63096268eb51c1a0843c4ed003afe9d0d8fa6e4747ad158ced6b55f01473e75f41d1e7d47adcce27132d7b025c03bc85eae3105a35f82706f6319857a7ac5eebf8610cb2b353a6ed897ab70dcb28033f8fdc957e9a6be57bdafcdce8e717438e528911250703139eced50227b94732038e2700a442df5351298173355c3b6948692a0aa43d0044ec7c86a515bdf00a0b03aa0ec262c412f391b647ab1c28c33bd5793e892053147db4f7ebf0760c25429f034a678e08eef171a227e2c5b85449d0f4edc4a1bf5af18ba3d50b259466fb5edb03dc10b47057d2b48f4e4f2b1158dd54217c501ff16f9317c8d3e0b84a4f30ba010317c739f6fe76b7c7abf9bb10be50efdf902cafe342a502ab30874a0b2af7f14a03fb1afe85865a484dc8bf452c789e5011a1e59903d20972f05924a3e2b6deb85a03669dcc7f9b458db580f119eb416696503d3d31b28b02006cd2a8aee8793ccc740371164d32d2071d367ac6f34d4f75dce044da25150290ee13d769e5582e44371903ff32cdf921656f5171bb158da3402c8cfd140a82cb082e97a038e365fafcc8ee031110365a261d78d3acdd84899925a17832414b7d5ee2dcb16a7e08794143900603f9ee72e47c08060252c92cff490f96258af3c94f91c4b4d84542834fa05871b7033cbeda459afbb6320e196a79432f699b31617792176aaacf13c6d8a1986e954003886c9f36f5ada18e9f6ab067414197c8a3782aef8f8779823e9f2b4ca354ada303a3cef5ad072fd3df16c8693ad4370eaf9fd2e94ce4f912b93dea097d034c78b103cfaac0025f48082bac7d449ce07b8e16aebdfb8d4393e1c2bf0fe18afd53b7990382308d803b12041ee39f1c4bcc77d1fa42ad4cbe9904adf28c80d44a285afde40393ad0a1fdacab9ff29e597772250f84c8eb04a5cbfcf0f37025c412b4e9bfa9f03d1e0219bf0dba4a943bdb2c350e355e231e5e841b553823cc0ed7230c048c0ef03820a6aff14571bb86f6d84a375b7d521c08a08496287215a10cbdae279d2b9ca0334afbb53384b515db917dcca63f9d03d58c5ce2547ad24d4576a8d9d02f5a177036aef2b3501214e8dc59b5bd2805acfcb72df6d0da71f9e639d60f101b347c7710381de9086c125bd22dbb92dcd1fbc97f4d4312d2c26c0706956671676f440f41703aef984fd1b9ad3eda0cb4a142bee3736b43c9527a075a44bfbefc5d232f1f85803a61ca9068d61226a8dfffc2477247b37de32d21b128a2ab35fe460987b07c505034c3a2507f2e7db35027f405b2cd849c5eccd2a1e6bb50a6c84da7249e2db82c4032318b89b50b7f709fa75c443ddb31fc492cb3cf3477b7984c8473059e29c4d74039ba4abd791f8ae056a86ef9042a7899ee877d32b493d5f4749aa10fff32a7f1003ddf112e1fc6b153bcc5ca042ac2ba3155aa74860672801cdb276f86ee57ddeaa033a599055e818613288c41f1bd8fe2a4b4e2b05fd23a3a15bf93f16aebf8016ad038ef61839303015b85e3b16fb1fafa1e328fbbfe1fa320753725f982d957654d8038cfa512313f881fdb9e35572587bf69f18ced08776ce49252737295a305966e003f5b536057aa56871b74c38946aa8e54bc4e7dfa53378a2cd9cbeb74cd62720ff03512e7fd967289262104cdbce4b8bc0529bc3a681e9bd1522398b320f89818bb103f9751ff6409ef2fdea49767eed7d654cc98e85f42df3dc401a32d04271577a7303ee7d6a2b0d6d1bc06fdc15320f90300f0ba7642580502c913ba5cbdcb181b1820331010542bfa65854dcce29889cc98de3c639df67379a3b3b3cf98affe2e74f3103dcb79a64cea3597b43fda68eb4d9b9180c3c5ac3512735a1cedf8454bbae58b8034ae3d75f8427121cdf2477d59c6209b77097f8c87292c1ab449e76639360891003914a40818907e5a93f60b05f39e062761b32d515d00583d3aa46034b1c908fbd030b6aaabb5b08f7f67a0b51d394270b37d22bce2df53899d94a428f4f026e0cac03d500a65e021bcace8afe1b96681b393a03d1403a0091bf471807405f950dafcc034eb68f2c06a6b6c91785f0b6d138c33d758e5ad655c179c88caea797147eccef033c3bb23d53ff8242dac04fc1731d0039eeeced92739e248c5b61a60244c03e7603070ce07d739dde5b920b62d01f256ce5466d56eb21f474757116dddcab87f21b03487bc66bb3e9ceaa6ea1782bd007b206d00b76b2b87c65a4ae83a82575fabe0503d4110432f0e1b72c655394ea770fa57c098cd925bde49fee3fa55c3274c04f3603eb8ddc9bd99dc0ae4003a5f637703be6c885cb30dccd4afee9636ca47a90addc038ac54f5d263ffe0769d2abf5f4b61c121180148b19c72a91011f0d3f8d3d54390330d48c7f9098573d652f0b71ed5f14a03f057dca4576bdf5c516b12aa17947c60605581e0309af0f46d24615c7d9edef73d22cc4390ff5f7167da82a3908fcb2e10007011bffffffffffffffff05581e03aac863645a002d6cd78e5f8a9af3dd879a4df84f17e74984f627c294f00c024686bad161a36003bb6c280d77e6d9ca1259c06dc4f38c59a8b3aab4b5fe6c5d20dc76f3818f438405581e037490de37e2dbfaa1e5da021e21b5a47d6fc60d929a3c39c2058fdd3d500c190654485cac3a41e77d836305581e0393884a96280807b1f28aef6947f8ed40af4aae57dd1a924be89aa731e00c014728e59229efe600030f8135fcb5c0719bb19a119537daee05e6ff0236a3a29a05e54e9ec4fc3bc25f05581e03f62e6e00c763e422f7ea24bd5c0e12f0184127ec8b603839a97dd4a4200c024676638b4d70a005581e03e76af22859b199cc092ad3b4ec3eafd7272e6998b1ad598ee26827b5e00c0146082b01dc616003d5a867d268961668f5797a04462bf5b4471525438ca312d5017d72f177b06e5a05581e0303175de6e25ee85989d4d1322bc974085c6e21b54ca16ec6aadc23d6b0040105581e039fad25174958c685cb6a9dc4f9945a11e2f9f4909a3d0d72b52c51f06004010219e7f103cfb7f60c65280c250ed8b66b63b64da972fe24c6603e6861cef1cb14cd23981a0219ffff034409d069f19218810c8e4b88c61128ae0efb3a56059cf946fe38dba77df0c05b0219ffff03459dbb1d11ed80ccdce6cffb2f541fc3e080c9bafff551b98cbd47224ae2d1de03c642b98ce0ccb2a233b951d05583436549a8497802a9b7e450fd9dd030dd270a037379bb1baa8c19f85dcc404819b82be8fa1d10173e59d5dc35bd67deb32e468d0219ffff03ddfd921ece199fdf9ce07d967cf21f29d6811e08436712c9d0676ed741c05282036f50cb292366eef9d858b3826744b2a41ecd06decace609438f63e0605c7d69e0311f0a7bdb78427132f11be5ad99ed58d019449d18daecea686d6b44a7027815403e44b739b1b2908ec7bc7f9ffd26d8da62b806b8bdeb771bfac7691480e9574e30219ffff03b2fc20b5aeb90cbb2f3c51dae028fb77ab15c165180e7295d58795a30544ef3e03979d76527eb461e0dd8e60369ac29beaf5494f9e27b34b1b682735999732809403d0a37bf5814eff746b6a32ce73e12f8885e688acbff824f2494318adac90de8203def5824947d97bdd038734f86e55bd395009261a1deabae90de5f434c03258820311a4afc85f12ab94373f29e51038721da8d12d4452c776ac89e4942c69d0dcae032410e0b73c01dfbc6d692850566e18ed74c647ef55e2a3d65686319f34d9c77703b1c0023f718a63cb2e1c7c3f02106d0faba37a4c38bddb5c6ba5e5f261b3219c03e10f202981587d0adbb061d8554ac0ce7b8767e69867b33d27f09e3178a87cc303fefb3ec6f8eb7e49ec0dc26bd164508cf7ad526fac485c018a06d78b3c5c61da03f1b021d8786270ffbcb4b12a7b796b1e9a079eeb1ab92ca7572377d05353d6270384ffe12720f1aad8e8505ebb585c100a8efe2ca78cc69a61d2b920eb6e6de25003ab0d481d603da4d7d3d30c2e03ca6ecfa986fd91b1edb1a1e42c2890b0d3ed550385e4a91ef8687739a0496322e9ff9ecdcc5e68167380e963a55ec5997182e8a60219ffff03ae293660abe3cddbc2c4e6817310249595745b8fb1c6c1b4da79e90fd51b235d035ad9172f95726ad772496c05b0bcfbc282260fe9d00ad2c40febc637d8b308a3035c5b7583250a54d367052f3844cfe3221b38ef3d1504503bbd779a881f41919d03bef722a29810d8be278b94808ffd425612a0fd56f0aaf969aa3a27bfd533a7ed03936826abe95e5dfeaf6478e54741a9a01f584e3b1f8b05d176291622f4378d3f0363b39b562a171826db83775ae1f478895fc31f510da32df98092fe62463257e903464a191921272ba4a42fa6db53e551c5bbfe3168de5181509ed51d2eac9810f9035fc2d93a5f27bcf189a50fbeabc574d45d40121b19dd3efeff86696528112f4a0377aa2e8df60c94eae555ea56a1328ff71cacb178ae8824de4ab8534c19f9c26603d9c04efb4ad6661520df6289bf6a4cd744b069c1140e9726f1a00baf8b6150c803786dd9ed4539405d4be63a773f8729f79df8a7a7fb3f70b83e2007bafd4a99ef030834cb96749641492857e5f4d71d47b8136a484058e25b8eeaf8b6dba0e3dcd303a1527dd47896f6d7f847576ef9b4330e2c1cca5653381b4b8b9b0608d7a3a45a03cfd3fa4caa95159f045dd28f2a6bf7cb576e533bfcab8918a56ef1e7d337658c03b01f89d3d73e072e79efdf19f4faf5dccd712bc4cb84119cfc0caea00a0a600e03452ad127705a5b6337f8e610a5c267dc9e6a9f81f0974a689da9795ffe787b7c032085fb3cdac5c4ee5fff92861d0cf965d0e6d0c6a2ec83a8b25aab42a4aac4dc03a551029b1762732d70d18f63fb3316b54252d09161432bf22301e734f813889f032f9904487b58121f4ec788fcda7a55acd495a0868af2760a47ab77875706a504038b199df28300fd77865fc68f88e022e7edde0ba0493f9d60041b5ff9c65c4af403296d3fa78b37ae73c02266ad6f7f21003f3c03abd3c979fa676837348f49dc42038781f363df6dd0ef638edc888e8f3529bc8e63326a4ca25f635214f483bb84020305639796c89edea337f3fc0d18bc6ed0bd006eea7fca668cfba48814b5ef153f03f76c5106240ca3da8dcf0aefa301d62524ac023371f4466e6f28c982d2cee71e03d96bedc83d6489e77fe4fee276088c5d390469868fbeb47c399e3fe115d4c74d034a0285e050b910bbd82ab2f451ca9e712ae0a139402cae99797d772572d4e06e03cf03cd33e89e67a721cdccfda36681ec2b5e6c31cf9f5139c625ce197fd1aa5c031f1ea19f5abc5eff32f2eda8e2c5e55d9b49ff02589779e629a324de60f3bb3e03deebc1ad243622d47ea74c10e94994572aa36ea066fe52ad1402bc2309ee51220331eba3738c7900df164323e31d56fcf16dab78c326d5a72b747368ffe008cc3203abf53e9d639ef7b9d62cc052cd2fca230c5696de26abf4bb3167e20533596ffc05581e03b8971967e2f5e83fd50155e29b0d1e3222134b6de74f48246afa33cda00c014614938f7bc00005581e036488ceb871fe4c94751d347eb0480cbe68f771256414587d625860cee0040105581e030ac604447b7178b395be93b3784feeb389f9dc79c831a14db8ae8412f0040205581e0392ce3266e0617c4a23a635682047f6189cd79f9f2d28bcc949c0b1314004020322685ffd66f4d243d83fac445f4713466e6dce4c46c7744ba4a0afbde5ae7d2203cb2944c6ea13de67d0cad588f3fd4493c2412350076a5c13f39b00f682eb2de70459270460806040526004361061009a5760003560e01c80638da5cb5b11610069578063b1ebddda1161004e578063b1ebddda14611616578063c44de60c14611636578063f2fde38b14611656576100a1565b80638da5cb5b14611592578063ad5c4648146115e9576100a1565b806301e33667146115355780631de3df2c146115555780634782f7791461155d578063715018a61461157d576100a1565b366100a157005b60003560e01c6001811461013057600281146101cb578015610278576006811461031b576003811461043b57600481146104c7576005811461059f576007811461069257600881146108505763fa461e33811461096f576310d1e85c81146109e45761012e60067f55444645727200000000000000000000000000000000000000000000000000006114df565b005b60043560e01c61013e610a24565b8015610182578115824314176101795761017960107f426c6f636b4e756d6265724572726f72000000000000000000000000000000006114df565b61018233610a61565b505060083560901c60163560901c60243560f81c60253560601c6101bb848273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2611448565b61012e8284600030856000610e5b565b60043560e01c6101d9610a24565b801561021d578115824314176102145761021460107f426c6f636b4e756d6265724572726f72000000000000000000000000000000006114df565b61021d33610a61565b60083560901c915060163560901c60243560601c60383560601c610242858284611448565b6102656000823073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28688610e27565b505050801561012e5761012e6000611327565b60043560e01c610286610a24565b60243560f01c81156102d4578215834314176102c7576102c760107f426c6f636b4e756d6265724572726f72000000000000000000000000000000006114df565b6102d46000821133610a41565b60263560f81c925060278360140281016001850160140281016102fa8183888688610c6d565b505050811561012e5761030d6001611327565b801561012e5761012e610b50565b60043560e01c610329610a24565b801561036d578115824314176103645761036460107f426c6f636b4e756d6265724572726f72000000000000000000000000000000006114df565b61036d33610ada565b60463560f81c604735606090811c90602435811c90605b35901c603835609090811c90606f35901c9650346103aa576103aa81888585888a6110e6565b605b36036103b981605b61151b565b90503086156001811461040d576103d483888489898f610ef3565b848110156104075761040760097f5633414f4572726f7200000000000000000000000000000000000000000000006114df565b5061041b565b61041b838884898989610e27565b5050505050505050801561012e576104336001611327565b61012e610b50565b60043560e01c610449610a24565b801561048d578115824314176104845761048460107f426c6f636b4e756d6265724572726f72000000000000000000000000000000006114df565b61048d33610ada565b60163560601c9150602a3560f81c602b3560901c60393560901c6104b683828430896001610e5b565b505050801561012e5761012e610b50565b60043560e01c6104d5610a24565b8015610519578115824314176105105761051060107f426c6f636b4e756d6265724572726f72000000000000000000000000000000006114df565b61051933610ada565b60163560601c9150602a3560601c603e3560901c604c3560901c61055781833073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2878a6001610dd8565b94508085101561058c5761058c60097f5633414f4572726f7200000000000000000000000000000000000000000000006114df565b505050801561012e576104336000611327565b60043560e01c6105ad610a24565b60243560f01c81156105fb578215834314176105ee576105ee60107f426c6f636b4e756d6265724572726f72000000000000000000000000000000006114df565b6105fb6000821133610a41565b60263560601c9250603a3560601c604e3560f81c604f3560901c605d3560901c606b3560901c6003861634610637576106378385878c85611116565b8061065b5761065b848a73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2611448565b610669858486898d86610e5b565b5061067d8460010382600030896000610e5b565b5050505050811561012e5761030d6001611327565b60043560e01c6106a0610a24565b60243560f01c81156106ea578215834314176106e1576106e160107f426c6f636b4e756d6265724572726f72000000000000000000000000000000006114df565b6106ea33610ada565b60263560601c9250608a3560901c60038216603a3560601c60623560601c60983560901c346107355761073581868473c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28c896110e6565b6003600287901c168381156107475750305b8561076b5761076b878b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2611448565b61078e8388838773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28f8c610dd8565b50604e3560601c995060763560601c965060a63560901c95506003600489901c16975089905087156107bd5750305b6107cc8684838a888a88610dd8565b5050505050506107de60b43560901c90565b61080181833073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2878b8a610dd8565b9550831561083c578086101561083c5761083c60097f5633414f4572726f7200000000000000000000000000000000000000000000006114df565b50505050801561012e576104336001611327565b60043560e01c61085e610a24565b60243560f01c81156108ac5782158343141761089f5761089f60107f426c6f636b4e756d6265724572726f72000000000000000000000000000000006114df565b6108ac6000821133610a41565b60263560601c925060653560901c60038216603a3560601c60623560f81c60733560901c346108e2576108e28186848b88611116565b8361090657610906858973c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2611448565b610914828287868c89610e5b565b5050604e3560601c955060633560f81c925060813560901c915061093e8383600089856000610e5b565b50505060643560f81c608f3560901c61095d8282600030896000610e5b565b5050811561012e5761030d6001611327565b61097832610ada565b60643580601481146109c35761098d82610bab565b600181146109b75760043560008112156109a657506024355b60843560601c61012e823383611448565b61012e83336084610bbf565b60043560008112156109a6575060243560843560601c61012e823383611448565b6109ed32610ada565b6084356109f981610bab565b60018114610a185760a43560601c60b83560901c61012e813384611448565b61012e823360a4610bbf565b600030331460018114610a3957600191505090565b600091505090565b8160018114610a5857610a5382610a61565b505050565b610a5382610ada565b73de09838eedb3030153524b5a14972e7c9ef6576581147383b4f74296738d8c2e15bd7c1f4a19df122354f582141773744bc1d963e8f54395dfe504e343fc3f2fe8fc8b821417610ad757610ad760087f4e6f7441646d696e0000000000000000000000000000000000000000000000006114df565b50565b7319719e2aa3a47cb0080d7ba10ac3f9651ccd2a7c81147349f18c6370d3235fcc7cf4fd8167b8ca9bed0af882141773e4b35743c2c15760d7551afc9c304ec0dc30ba50821417610ad757610ad760097f4e6f7441646d696e4300000000000000000000000000000000000000000000006114df565b60083560901c610b743073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26112e0565b81811015610ba757610ba760077f42414572726f72000000000000000000000000000000000000000000000000006114df565b5050565b60006058821115610bba575060015b919050565b602281013560f81c6023820135606090811c908335811c906037850135901c6014850135609090811c90604b870135901c60378903610c018160378a0161151b565b87610c51576059821015610c3857610c1a838887611448565b506000610c2b81888c898989610e27565b5050505050505050505050565b610c46818830898989610e27565b610c2b848b88611448565b610c5f81888c898988610ef3565b505050505050505050505050565b60005b83811015610dd05760036002820283901c1660018201606f86821015610c9c57506002810284901c6003165b601484028801803560601c601482013560601c9150601486028801803560601c3085610ccc5750601482013560601c5b878015610d7757600e8a028f013560901c965089610d0357600e88028f013560901c935034610d0357610d0384888888878e6110e6565b6040519350601484528460601b602085015260348401604052610d2a84848489898c610ef3565b96508c8803610d7257600e88028f013560901c935083871015610d7257610d7260097f5633414f4572726f7200000000000000000000000000000000000000000000006114df565b610dbc565b600e88028f013560901c965089610dad578e3560901c935034610da257610da287858888878e6110e6565b610dad848487611448565b610dbc6000848489898c610e27565b505050505050505050600181019050610c70565b505050505050565b60008115610e0d57604051601481528460601b602082015260348101604052610e0581858989898d610ef3565b915050610e1c565b610e1c6000848888888d610e27565b979650505050505050565b610e3183836114b7565b50600082828514610e43575082905060005b610e50898883858c61102f565b505050505050505050565b808015610ecd5760016401000276a488610e8a57506000905073fffd8963efd1fc6a506488495d951d5263988d255b6040516014815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260601b602082015260348101604052610ec38188848b878b610f63565b5050505050610eea565b60008688610edc575086905060005b610e5060008783858961102f565b50505050505050565b6000610eff84846114b7565b5060016401000276a4828614610f2a57506000905073fffd8963efd1fc6a506488495d951d5263988d255b610f388a898388868e610f63565b93509050818015610f4e57836000039450610f55565b8160000394505b505050509695505050505050565b6000806040517f128acb08000000000000000000000000000000000000000000000000000000008152876004820152846024820152856044820152866064820152885160a060848301528060a483015260a482016001820160205b81811015610fd6578c81015183820152602001610fbe565b601f84169150811580610fec57818e0151828501525b505050506000828260c401846000895af190503d806000843e81801561101c578351955060208401519450611020565b8184fd5b50505050965096945050505050565b6040517f022c0d9f00000000000000000000000000000000000000000000000000000000815282600482015283602482015284604482015285516080606483015280608483015260008111156110bd57608482016001820160205b818110156110a257898101518382015260200161108a565b601f841691508115806110b857818b0151828501525b505050505b6000828260a401846000875af1905080806110dc573d806000853e8084fd5b5050505050505050565b6110f084846114b7565b50600084821460018114611107576000915061110c565b600191505b506110dc88888387875b8015600181146111cc57367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec013560601c611150846112a0565b8560018114611191578282111561118c5761118c60037f43453300000000000000000000000000000000000000000000000000000000006114df565b6111c4565b828210156111c4576111c460037f43453200000000000000000000000000000000000000000000000000000000006114df565b505050610dd0565b6111d784868561120a565b86811015610eea57610eea60037f43453100000000000000000000000000000000000000000000000000000000006114df565b60006112168483611238565b6103e585028181029150806103e8840201925050818104925050509392505050565b6000806040517f0902f1ac000000000000000000000000000000000000000000000000000000008152600081600483875afa503d806000833e50805160208201519150856001811461128f57829450819350611296565b8194508293505b5050509250929050565b60006040517f3850c7bd000000000000000000000000000000000000000000000000000000008152600081600483865afa503d806000833e505192915050565b60006040517f70a08231000000000000000000000000000000000000000000000000000000008152836004820152600081602483865afa503d806000833e50519392505050565b346000811160018114611391578215610a535760163560901c91508115610a5357611351826113cb565b60008060008085415af18061138b5761138b60197f7472616e7366657220636f696e62617365206572726f723a32000000000000006114df565b50505050565b60008060008085415af18061138b5761138b60197f7472616e7366657220636f696e62617365206572726f723a31000000000000006114df565b6040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152816004820152600081602483600073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af1905080610ba757610ba760137f776974686472617757657468206661696c6564000000000000000000000000006114df565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081528260048201528360248201526000816044836000865af190508061138b5761138b601c7f736166655472616e736665723a7472616e73666572206661696c6564000000006114df565b600080838310600181146114d0578391508492506114d7565b8392508491505b509250929050565b62461bcd60e51b6000527c20000000000000000000000000000000000000000000000000000000006020528160e01b6040528060445260646000fd5b604051828152828260208301379182016020016040525090565b34801561154157600080fd5b5061012e611550366004612278565b611676565b61012e6116ed565b34801561156957600080fd5b5061012e6115783660046122b4565b611762565b34801561158957600080fd5b5061012e6117d3565b34801561159e57600080fd5b506000546115bf9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156115f557600080fd5b506001546115bf9073ffffffffffffffffffffffffffffffffffffffff1681565b6116296116243660046122de565b6118a9565b6040516115e091906123df565b34801561164257600080fd5b5061012e61165136600461246d565b611cc6565b34801561166257600080fd5b5061012e6116713660046124ad565b611e5d565b60005473ffffffffffffffffffffffffffffffffffffffff1633146116e25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b610a53838383611fda565b6000341161173d5760405162461bcd60e51b815260206004820152600a60248201527f76616c756520697320300000000000000000000000000000000000000000000060448201526064016116d9565b6001546117609073ffffffffffffffffffffffffffffffffffffffff16346120c5565b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146117c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016116d9565b610ba782826120c5565b60005473ffffffffffffffffffffffffffffffffffffffff16331461183a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016116d9565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60608315806118b757504384145b6119035760405162461bcd60e51b815260206004820152601160248201527f426c6f636b4e756d6265724572726f724d00000000000000000000000000000060448201526064016116d9565b337383b4f74296738d8c2e15bd7c1f4a19df122354f581148061194f575073ffffffffffffffffffffffffffffffffffffffff81167349f18c6370d3235fcc7cf4fd8167b8ca9bed0af8145b80611983575073ffffffffffffffffffffffffffffffffffffffff811673744bc1d963e8f54395dfe504e343fc3f2fe8fc8b145b806119b7575073ffffffffffffffffffffffffffffffffffffffff811673e4b35743c2c15760d7551afc9c304ec0dc30ba50145b806119eb575073ffffffffffffffffffffffffffffffffffffffff811673de09838eedb3030153524b5a14972e7c9ef65765145b80611a1f575073ffffffffffffffffffffffffffffffffffffffff81167319719e2aa3a47cb0080d7ba10ac3f9651ccd2a7c145b611a6b5760405162461bcd60e51b815260206004820152600960248201527f4e6f7441646d696e4d000000000000000000000000000000000000000000000060448201526064016116d9565b8567ffffffffffffffff811115611a8457611a846124cf565b604051908082528060200260200182016040528015611ab757816020015b6060815260200190600190039081611aa25790505b5091503060005b87811015611bc8576000808373ffffffffffffffffffffffffffffffffffffffff168b8b85818110611af257611af26124fe565b9050602002810190611b04919061252d565b604051611b12929190612599565b6000604051808303816000865af19150503d8060008114611b4f576040519150601f19603f3d011682016040523d82523d6000602084013e611b54565b606091505b509150915081611ba057604481511015611b6d57600080fd5b60048101905080806020019051810190611b8791906125a9565b60405162461bcd60e51b81526004016116d99190612669565b80868481518110611bb357611bb36124fe565b60209081029190910101525050600101611abe565b50611bd2856121b5565b8315611cbb576040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906370a0823190602401602060405180830381865afa158015611c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c67919061267c565b905084811015611cb95760405162461bcd60e51b815260206004820152600860248201527f42414572726f724d00000000000000000000000000000000000000000000000060448201526064016116d9565b505b505095945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611d2d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016116d9565b80611dcf576001546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529091169063a9059cbb906044016020604051808303816000875af1158015611dab573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138b9190612695565b6001546040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d90602401600060405180830381600087803b158015611e3b57600080fd5b505af1158015611e4f573d6000803e3d6000fd5b50505050610a5383836120c5565b60005473ffffffffffffffffffffffffffffffffffffffff163314611ec45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016116d9565b73ffffffffffffffffffffffffffffffffffffffff8116611f4d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016116d9565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600060606040517fa9059cbb00000000000000000000000000000000000000000000000000000000815284600482015283602482015260008060448360008a5af192503d806000833e5051905081801561204c57508051158061204c57508080602001905181019061204c9190612695565b6120be5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201527f616e73666572206661696c65640000000000000000000000000000000000000060648201526084016116d9565b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040516120fc91906126b2565b60006040518083038185875af1925050503d8060008114612139576040519150601f19603f3d011682016040523d82523d6000602084013e61213e565b606091505b5050905080610a535760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527f20455448207472616e73666572206661696c656400000000000000000000000060648201526084016116d9565b3480156121c657610ba741826120c5565b8115610ba7576040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810183905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d90602401600060405180830381600087803b15801561223257600080fd5b505af1158015612246573d6000803e3d6000fd5b50505050610ba741836120c5565b803573ffffffffffffffffffffffffffffffffffffffff81168114610bba57600080fd5b60008060006060848603121561228d57600080fd5b61229684612254565b92506122a460208501612254565b9150604084013590509250925092565b600080604083850312156122c757600080fd5b6122d083612254565b946020939093013593505050565b6000806000806000608086880312156122f657600080fd5b853567ffffffffffffffff8082111561230e57600080fd5b818801915088601f83011261232257600080fd5b81358181111561233157600080fd5b8960208260051b850101111561234657600080fd5b60209283019a909950918801359760408101359750606001359550909350505050565b60005b8381101561238457818101518382015260200161236c565b8381111561138b5750506000910152565b600081518084526123ad816020860160208601612369565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612452577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452612440858351612395565b94509285019290850190600101612406565b5092979650505050505050565b8015158114610ad757600080fd5b60008060006060848603121561248257600080fd5b61248b84612254565b92506020840135915060408401356124a28161245f565b809150509250925092565b6000602082840312156124bf57600080fd5b6124c882612254565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261256257600080fd5b83018035915067ffffffffffffffff82111561257d57600080fd5b60200191503681900382131561259257600080fd5b9250929050565b8183823760009101908152919050565b6000602082840312156125bb57600080fd5b815167ffffffffffffffff808211156125d357600080fd5b818401915084601f8301126125e757600080fd5b8151818111156125f9576125f96124cf565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561263f5761263f6124cf565b8160405282815287602084870101111561265857600080fd5b610e1c836020830160208801612369565b6020815260006124c86020830184612395565b60006020828403121561268e57600080fd5b5051919050565b6000602082840312156126a757600080fd5b81516124c88161245f565b600082516126c4818460208701612369565b919091019291505056fea2646970667358221220932e621a318d90d57728b23b6b8ebe354e5199bd783a1acaf86074346a7ae8ba64736f6c634300080e00330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56305410d943f5633601c7b8c3b372344e6efc81eef8590058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20219080405581e03d1e36fd391765bbd4a519f884d78455ee5bfdf384736a00e181b3acb100f0147061bd47e8b4f4419270403166cba5acb1a5132ed604d27477f76feb649a56bfeddd965f1cff1f60eb003f905581e038de083c28af92607f637131c37dba4c7b72df805cb584abc910c6ae2400c18a14739b7bb9f2afac705581e036ee6a1d847851f4666bed5c0d3d27784495e23255b85c86710c68cbe500c024702e5972354226c02190dfe037fbcdd3bbd34d9b1721a72138883c1d2d4c619eba0d4899bcc9300ba2c08d90203ec81b54e953804ed8c7b82108f2990ee41f569a9a5cbac888ed9c34418d87677032e75389d74795252e76a0a0910440e1a62c88dab5b799acabf4d78c81ba197d2037fa45a9fe8977e379d4529cd907bec97ede6598301278add040b3c2ea0a407d603a11b78759f6317337167e25e628be5d7bfc9c37ad7dcf9c0ccc77158450380520219ffff03cc0040f8b4fbff51c0ad1b7710242eeff01654763ec33aeb52e2f8a1a3a4f9e503af26dddb3bd264d7db42076334a9d44d72e8130d1147f949eb1a5f4cfb44e52f030bf5636a845cb1e79b67d37e199d98495dd97114aac9533a1c247d2178c0b40d0336d7421ec59a1fc107f3a40c857ef57060af1b683dbbe7e1ae3c277187ba80ea0353d23c8d8191f6bfeb79319f3cbf068a04505486c3ed54e949d9d44ef679d45103331c67b9d15b402274e86815be78462c5be10d3621ab38a0d6ae2ddd7b8baf8e0219ffff031033cf636ce42c22de07cc39d3478b3368bbf3638526fad4927e074a01560239036a22116ed3ac780090ba206b862e044ff0cf2ee389cef93dbc9e4fcc415b90f7035b258a1e6267f6e1fa7e8b6fdf3b69f705527a0817b96205474e3baa43149f3003f09a95e75308449bb78aa85a27c7a4cd7c137fa63a7f79d15bcc09dce3d822e40376e68cb02ba670190c510c3b4392cf7d37e7bf15ae6a8909da54e757ccbe6c5a03907475f8f41ba06e55670725d6a42430f78f584e782f29feb47b5871bb89903703b300a0d103c0557e248b6c3326c75162e578f66d37d48db092184806baeb27dc032057ebd34af07d82d56b0f5ceb2c8e242848f2f14befab412c1b30aafbbefe710219ffff03babe6b515cf2a449471a5015e761c78fbfc4b467e36aeac9e95687b130ee5f51036b9db22a9a878c2087fc8f038e0b56a66a78f83929717819640adb2a1e113fc103f7f2c2f10a8eecf5786704ea87dc6d22ae4f36afb8155b60c1fad8dee4b4712403bad25ff330db4a52a5def2afeb01dcd7575e24c356b1373c1b3e9372a7a8cc4e033853e06919d519c5f38d17d4314470bffef11b68196778e48cae52863f25dea503dc63ac4e2437e738f391eef51d42a951c95e976b05b6d7074cd96474eccb09b203e34dc65c5890e69bbb32a9ef90c57d2ef46a142712ab577f53e3fc06b328f7ed03968c7804351e62726e4ff4693a1e99c81645be8ed49c74e31a96437c416e9bb80360b11412e8a9f294f6e01cf4556b0af7e6b67788af4215dc6e74f0b19bdf1e42034488b2271b1634cdda9c8b32bea9114f04cede3f99afa15436439d583186970e0219ffff0350066cb67c52b9d23d6f6e85c58c2e02d85e7dc9928e0b6a2fa468f2b2ffd4ab03b39e4e5884dac60a8278529349312286331f51e37d0b0747a829b80ad290139e036f862d27e55f213ad069e611d4652601c9e554a0d161140f65276ac2dbdfeaa803fb39494bb9d03c568859c4a168143118335a3c818c5c219a900ef328fd67c301035d5e64342445f410edcc877e67f5241963338cdddcdaedb7d55e5db546517989033b4793ca1456af2e262c56b84ba1f742c23e0b97a585e4752128ed1d27d7c7a903b67230383f3183bf9bcc0f462c724572ad43a9ecec6383ed9a9bdf6d002f61ce0384ae369c8ddc9bad7ccda88e7c9c4798bf62161f3f039b572bce167fb27ecc0f03a8135b3f62177e7a9ae95a7eb2ea4cfd5ba5878b453a4c731d93ff3b6e9daf6903314ff144a7e487cfb5bc452dfbb742fb9c1c7055019723524936aabd00a7b8b1038e4401767f85303e41a6e7f2e51ba885f429056454ec0d36b0da624f41ca8528031264525fa2a269995835d3e83791e40aa57d5fc97c2d08f44de3acf55164ae1003de8be2322451cfc03cae9f799eed95dd44cdb530d178306fa7199616add4253a03ddec68283ccd6e20527e07bf9d2ef5cafd17e805649707987bf5cb6c82c89bb90350968574dc68676695037a86c185ba272c93aa7ff84788c87f0661a2aec449230219ffff0329f5ea03f138654821a56c803f1c8781e95cd37ad57e295fc9a614574390d39403a83733e7a9e8e45397a4f248abf791ddca5a8596579467eba057e2b12d2a6d090363e407ce706f3c4b6dcbcc412ac9faeb063a0f0280d46acaec189b747361cf240316e5616221e0f41071280d2f81ef5c685d140eb7d94a4f172fff4808fa0586dd036adf750f60b31cc5992b96556a44bb210008c0d193aaf86a10b646c345c16b52036a6265623e513be11407ddde45601c989111a620b438420f978e51aa2299a45c031fc06c1559d481fd7751cab8a1a28aa043b09dd6b8a9003c07e99fa232b9d53803e39c343a022e5adb5ddb9de1fb5429380e84fbf2edc958a9fb9235d6a20f6edf035943e330cdc50f5c240ce93e408c8352e1c1860448f590f7ab110c96333a5fc3033cfd59903e9469371629266f4dfe8497fd9d64c0a0d69435ab5ef096717f500803a7bd073efeade7339903c1c84b380c596f6bb03a468435acbb58ad2d55503588033db92409d33e9c5ed24b70b60ccd28cb150cfd080be3dda3dd2ed6864f220d0f036bfa5ec82ad90f847ac7b1204d3722741e9b6fe1e5d627bb9f07245ce98ff12d0364889c57678439f414dad7f20b34e390507d7dfd771178f2b861afd07358973003f311510188e2ada3c74a8af101b9ead4bd3a0504f29daae9edefcfeb6d51a77f031cf4da75e563752699a28a070e83902720798921ef0243233a44cc952b631be803a2b288c3f489f99e9fbc68793de3dd5a602474bed5d41439d90ff45a6d00452c03ac9627b7f877637fcae78668a792401b53347c2c8502ef1a5b850226321e806e03cbe73dd06a125feaab189d1c3fac24a9c20e51f27a43ea82d297a159b179aacc03abb4c0d6016205cbcfcefae5fb5ea50cd2d4b283a3a03c7919bc26329552287a037c2264be4993bf805a7e035a9220f894640846b5409f1a7b6ddac86d093dd12f03ba9b0a4fd0a60166b71ca888cdb209e144a10ea491396661b6d3e01db952d45f03c800fde1d87a58058d05e9a69d513f3ec61751988718de94daec4468d471c5f703334bf048147bc3c8d5eda628fa4e2b7da233137a09e9bd2d0968ae13b021891a03dc8479561c4b58e13eefd0fefae7a2b5943468036a14ecb43f433704645383260303071dbb5906fdd60e3f3793cd0f1c4612019151db0a430c21ba9d5a8ea4282d035aa3d5150785de378a065383c6e99fcaa54d34a18dbf48785bcb3e474161fca1031a6fc96f268cdf8409a5afd3d76950e04b629bd1c14ecdf9e514ce9c4fed6ec1033ed2d7fe66a7bb3d912ecd8e8ef51b79e550d1759f93152a1a8b28f1c647286703a33d3c3ed50965a874d739d252afe0069b6d8353ddf1d4e525967322b8f5a79903fbe4a701c0efe983660ad7caa7cee90a3c1b45ee16a2d5f75e667796f93b6f81038b89d95fcde74215b4cee473bf62ba977832e2ea3c99505e31d637c30694695e05581e0387aafd947848989648f2c48c38ab94d95be2615644b89c5b14cb7f6ae00c044727329e584eb3570314c1811cbbd2b3af2e2399efbbc145d5566e88644f8ad6b48f29b0de6335d3c4031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03a70a818564a13adb6652153ada0fdd5bf1f4f94da63b492dcaf9e428b007011bffffffffffffffff03e25d4f154acb2394ee6c18d64fb5635959ba063d57f83091ec9cf34be16224d703608a02f403f30892b8967da9ac469a8c36335336a69bfcb93089ae791d2c976f05581e035331503212364343f6be717d883932db5da5e03c0c6ce7823efe84e8100f01447807c1dc1bffffffffffffffff031bb9923cd5c240f934d10aa469719216b5085bad3872169ccced536edc22277b03da9a8dc62f6fe7e06cf36272a7824915f0fa67a577b587182bb8eb00ead29d6103ec549f9c6738e97fd8fe16864a50696530be736dbe5b3f828cc38c4201b2fae804592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c634300051000320300ee6158611a510f7de2df7a2c4767d987778493b8e3b80910c7fead461bbe3f0058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56304b0314681367c295c3ff27fc0058200238e9689977d526f580531775c606e5a07c1ff4f40a9ee98e4cca4fe145a2f44106005820021540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af4d1eef57b0bce86debc4dd280c38021942000058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5820215b786e4eba85d363599f0603a96206d9fe3a001a117bd4680bc44156f3ec7f005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a85501f3f662916305da19deefd84fdc79e3923b00f41802184400582103f6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70410100582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf607b000000000007d33cd603004aedbf0001838810f254c24ce8a92f56600058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f546d7497751656618fc38cfb5478994a20f7e235df0218480219b44505581e038de1d31fd0732b069ae68190eee17c0c586049e31a87a9de9222e718a00701192c1d0219d3e603704520d9a7f1d0f5ab13beb574fa85de11eb7dcc7aa98226a9ccb5801f75c362034e9df35d5bc61b600725ff1e3b9edc93735eed90a4aab1d0ad00f3616160ad20031176eebd55a02d80dd05460759ea58b48d39d6536b0ac765748a7a44410fc12f039da3c4c4508ecd179fc818cfd6c02b6e5d3d1e3047f69ecd21c37da15cb7d95c03dd42b7dc543187733702e6833e939411b2197a65cb76db423d59b475efae383a0315eb189197451955857f5707b837d7f14410752a1f0df757c7cb5863a9c6693b031aad9b030037232530ffb8b896db838425e0920dc8cdab47a182e2fe28b962c10365767c107ae03dfe02656af65be9ea4c30a65e8f9dfdb46295a452d5d381cdc903849f47f6dc1cc96fbdf17126d21d912c231b751f006d336884ce515a2681f93a032727c37bcf8b59e47634a27e11ee38eff8a05f80189c6c3d26722bc37bba30ce038177696feb2dbf2967cb4103efa2d507430711a197c2a738717c5b5543008abe032508f1a148f02172830fd482ea79cac02271a388af04019d6e49921a8a889c5d03e3b6225311b88e9bb4e2e9fa7a8ca0d03d20ac765b5f7ecdb3b183f7d7cae19303ee1760c7bd18c667ed1ed1d2d7c9bf2fb21df6ec20e0ee2dc9728cce12e9fb1b03d670e0d87c493b8041d362698dafdccc6291b498bfa6d94e5dc5d570c404140f0219ffff039a5d2aa9f89477b40b38a663ee233af208c20c47eaa78bbbabc145f2904fe69103b90caeab462eef9191d70fedb72ccf5a33cfeb057ee0fd17bbc43924a95fd89b03c3311ed3314a1499699434304684b7d306fc6f1358e8cad611a2895ac6e4291803b606ff6b93ae409276455be3f976d773b4336fa3f48cebeec8e7d522e9ffc77d032b6813577f217f060dd7ddfa16d8fd1394f5ac92b0c1b82d1ce3ed2f6e7b54050345aac4665b1fe48e2030bf0b64fa6a30ae1ccafe3dc13205189dfb7f0bf87bc40219ffff03bd2694cb32c5b310f2d4aefb513da5ba5f275c0b27abf93d3bf882a711be69e0030d23013cf35ab6c493b4afe0a730271f0f060b47cd5fbf77c501601a0ee33c0e034fb730c95cb500750ebaaa3c8d558a90071672bcca746ed2947d120c748b257f03a040fa78512205ba6ff18eaa5abdf5ca13d3f9b4e4c429bcc2e21e2c53349e8b0314412893c2f0f840fc03069f58fa267f5e29847a2715a440d21fadc59457ce9203cc8caead566ef34cbb50ddfa940a73e65fb2fa76e866521de5f66c24db31c7fb0219ffff031f58a293556a6886c08f3d6c768f622a47e151b3634f8f27f27d5ac65e5718fb03a101dde72c7df67bc737f261dab0779c02c0b83dc7cc111e94c471bda75630ab03ea33f18eaba3e67e57b55c8dee691f600f5e2a467e8133a6beb172c334b509dd03e50222ce226a8a103d385375f1341bfa321a721b0bdbcc6605fed526cd0821530323170395cb90f96cf5a6bd123f15830fb3e6bf21867d89a4bacc4643cf45d45803b316b8749165960c3c89c6e10d4998e4b40cc00e5a082bb7a07fbf9e679e8d2e0219ffff035542724e0ac64f0a9d2fb2104ed94363a57255f5680ee238de1474bc8486e44f03a6d185bd0e74535b72331e6dc9d2d19f53a4b4997b5c52f926ce79f26862099303f1f1571e19500730c0f62375fa7f8a7a90f6c4742bf538167be72a1432aadfb90310b9f42c477bf95e082653b147bee8737c9739cac14151019627bae2597ec4080370c11e4972fcab13d1050b9e54844ea1ff920d4470cbd2bf4e943b4d7bcde9e603d08c521f7580826bb146e476039ce572c0de596b9575ad6323d5947a0664f066030e7bf139f4acf4e2c3c37b1baced8754bc1ad4d28f6eec46b2afeaa843fb049b03e409a71cf61129f80b21eb96d4065506242fa36959967f5b797f0662a52f6d2603dcd03520ef6cdb737f6db64a695efa661cbcb74ced82a26e42f26cf6c85638ef03c4e66faec72346ccb69262b48aa4bbdd469944760209e8b91affed19198001f503edf450d44e9efc837fae58d704d8e6993a288e8ab19f430b496a6654f4fe4c4a03cd85c534ca4a6372058d36cbc405f13617bb5613c55942a3bbdec1a288797ae80353a0bacd823ddf1d179cb8bfa8e42020d2d6d89dd990ecf999ea42e9ca5b961d036036bdc180b8a1831a3e4376ee2b14fb762ee3b8013677f728cc40c17596c625032e5c4827174c4bf23d8d7782af6d6e69556233276422e18447afe6bc443cea3e03fc3f664a374c6cb7ebbc31143797767eb7f19a549fb18f5a79aee942f7f8a26a038c5ca361caa2475fef718e0a397f8d009e51ac3c6cc4621497fc31630d0ca24c03402e34ef9e39f1497e13e2190876faa9e01bd5a84075750a4d8d23a31527e3620388de86a97156e789845fca62671d0c79ebfadd3bc152e1f2947f9a30550bb58403901ed45ad80716634d8624f033d2070b0846facef7492686119fc2c631a58e9f0343b5ca4ec3c5ce5f4ca7fd15c9e94b832d2760e1519c6449212797fe9f63233a0339b21d7ec373b990bb1c57ce14123ac52ef5c7b88d20f76c1e35f7efcbf7c36003a2704b18c6dc0a318607ac2360f3991a67a92b944f41de6ef5a6e0e05afea94d036f216e7c7b3ea96690e6d0a685db725022227c311f46560481f4f49c094b0d1703abfe3d58af8f75d5d96bc1825a828bf810ab4dcc0c84a26df58228cd2331a20803c324ba644c40d8d6c2d47ae57b229a26e894ae7ea6ff3f9faf8e476f9692f37003433c8f733badd86057cb9a944bbb222eb992c5396a58e0a47f0d275b6e57fe2d038069108ff8e4b9e14c0c6bbbd884df679c273d1118a06e2b0e21eb9c93ecac0103d34a0eed061b8b168ba9abf29add6056d4e619688539cee6fe212dbcb47da6b70459202a608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063c87b56dd11610097578063e0df5b6f11610071578063e0df5b6f14610400578063e985e9c514610413578063f28ca1dd14610441578063f2fde38b1461044957600080fd5b8063c87b56dd146103ba578063d547cfb7146103cd578063dd62ed3e146103d557600080fd5b80639b19251a116100d35780639b19251a1461035e578063a22cb46514610381578063a9059cbb14610394578063b88d4fde146103a757600080fd5b806370a08231146103235780638da5cb5b1461034357806395d89b411461035657600080fd5b80632b968958116101665780634f02c420116101405780634f02c420146102e1578063504334c2146102ea57806353d6fd59146102fd5780636352211e1461031057600080fd5b80632b9689581461028d578063313ce5671461029557806342842e0e146102ce57600080fd5b806306fdde03146101ae578063081812fc146101cc578063095ea7b31461020d57806318160ddd1461023057806318d217c31461026557806323b872dd1461027a575b600080fd5b6101b661045c565b6040516101c3919061172c565b60405180910390f35b6101f56101da36600461175f565b6006602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016101c3565b61022061021b36600461178f565b6104ea565b60405190151581526020016101c3565b6102577f00000000000000000000000000000000000000000000021e19e0c9bab240000081565b6040519081526020016101c3565b61027861027336600461185c565b61063b565b005b610278610288366004611899565b610675565b6102786109fe565b6102bc7f000000000000000000000000000000000000000000000000000000000000001281565b60405160ff90911681526020016101c3565b6102786102dc366004611899565b610a64565b61025760035481565b6102786102f83660046118d5565b610b39565b61027861030b366004611939565b610b6d565b6101f561031e36600461175f565b610bc2565b610257610331366004611975565b60046020526000908152604090205481565b6000546101f5906001600160a01b031681565b6101b6610bfd565b61022061036c366004611975565b600b6020526000908152604090205460ff1681565b61027861038f366004611939565b610c0a565b6102206103a236600461178f565b610c76565b6102786103b5366004611990565b610c8a565b6101b66103c836600461175f565b610d4d565b6101b6611085565b6102576103e3366004611a2b565b600560209081526000928352604080842090915290825290205481565b61027861040e36600461185c565b611092565b610220610421366004611a2b565b600760209081526000928352604080842090915290825290205460ff1681565b6101b66110c8565b610278610457366004611975565b6110d5565b6001805461046990611a5e565b80601f016020809104026020016040519081016040528092919081815260200182805461049590611a5e565b80156104e25780601f106104b7576101008083540402835291602001916104e2565b820191906000526020600020905b8154815290600101906020018083116104c557829003601f168201915b505050505081565b600060035482111580156104fe5750600082115b156105d5576000828152600860205260409020546001600160a01b031633811480159061054f57506001600160a01b038116600090815260076020908152604080832033845290915290205460ff16155b1561056c576040516282b42960e81b815260040160405180910390fd5b60008381526006602090815260409182902080546001600160a01b0319166001600160a01b038881169182179092559251868152908416917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350610631565b3360008181526005602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b5060015b92915050565b6000546001600160a01b03163314610665576040516282b42960e81b815260040160405180910390fd5b600c6106718282611ae8565b5050565b600354811161098f576000818152600860205260409020546001600160a01b038481169116146106b857604051636edaef2f60e11b815260040160405180910390fd5b6001600160a01b0382166106df57604051634e46966960e11b815260040160405180910390fd5b336001600160a01b0384161480159061071c57506001600160a01b038316600090815260076020908152604080832033845290915290205460ff16155b801561073f57506000818152600660205260409020546001600160a01b03163314155b1561075c576040516282b42960e81b815260040160405180910390fd5b610764611171565b6001600160a01b0384166000908152600460205260408120805490919061078c908490611bbe565b9091555061079a9050611171565b6001600160a01b03808416600081815260046020908152604080832080549096019095558582526008815284822080546001600160a01b03199081169094179055600681528482208054909316909255918616825260099052908120805461080490600190611bbe565b8154811061081457610814611bd1565b60009182526020808320909101546001600160a01b0387168352600982526040808420868552600a9093529092205481549293508392811061085857610858611bd1565b60009182526020808320909101929092556001600160a01b038616815260099091526040902080548061088d5761088d611be7565b600082815260208082208301600019908101839055909201909255838252600a8152604080832054848452818420556001600160a01b0386168084526009835290832080546001818101835582865293852001869055925290546108f19190611bbe565b6000838152600a602052604080822092909255905183916001600160a01b0380871692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4826001600160a01b0316846001600160a01b03167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e031487610978611171565b60405190815260200160405180910390a350505050565b6001600160a01b038316600090815260056020908152604080832033845290915290205460001981146109eb576109c68282611bbe565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b6109f68484846111a3565b50505b505050565b6000546001600160a01b03163314610a28576040516282b42960e81b815260040160405180910390fd5b600080546001600160a01b031916815560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3565b610a6f838383610675565b6001600160a01b0382163b15801590610b1b5750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0e9190611bfd565b6001600160e01b03191614155b156109f957604051633da6393160e01b815260040160405180910390fd5b6000546001600160a01b03163314610b63576040516282b42960e81b815260040160405180910390fd5b6106718282611351565b6000546001600160a01b03163314610b97576040516282b42960e81b815260040160405180910390fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000818152600860205260409020546001600160a01b031680610bf85760405163c5723b5160e01b815260040160405180910390fd5b919050565b6002805461046990611a5e565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6000610c833384846111a3565b9392505050565b610c95858585610675565b6001600160a01b0384163b15801590610d2f5750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a0290610cdf9033908a90899089908990600401611c27565b6020604051808303816000875af1158015610cfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d229190611bfd565b6001600160e01b03191614155b156109f657604051633da6393160e01b815260040160405180910390fd5b60606000600d8054610d5e90611a5e565b90501115610d9857600d610d718361136a565b604051602001610d82929190611c7b565b6040516020818303038152906040529050919050565b600082604051602001610dad91815260200190565b6040516020818303038152906040528051906020012060f81c905060608060648360ff1611610e1b5760405180604001604052806005815260200164189733b4b360d91b81525091506040518060400160405280600581526020016423b932b2b760d91b8152509050610f56565b60a08360ff1611610e6a5760405180604001604052806005815260200164191733b4b360d91b815250915060405180604001604052806004815260200163426c756560e01b8152509050610f56565b60d28360ff1611610ebb5760405180604001604052806005815260200164199733b4b360d91b815250915060405180604001604052806006815260200165507572706c6560d01b8152509050610f56565b60f08360ff1611610f0c57604051806040016040528060058152602001641a1733b4b360d91b8152509150604051806040016040528060068152602001654f72616e676560d01b8152509050610f56565b60ff8360ff1611610f5657604051806040016040528060058152602001641a9733b4b360d91b81525091506040518060400160405280600381526020016214995960ea1b81525090505b6000610f618661136a565b604051602001610f719190611d02565b60408051601f1981840301815290829052610f8e91602001611d3e565b604051602081830303815290604052600c84604051602001610fb1929190611c7b565b60408051601f1981840301815290829052610fcf9291602001611e17565b6040516020818303038152906040529050600082604051602001610ff39190611e3d565b60408051601f1981840301815282820182526004835263227d5d7d60e01b602084810191909152915190935061102d918591859101611e17565b60408051601f198184030181529082905261104c918390602001611e17565b60408051601f198184030181529082905261106991602001611e9a565b6040516020818303038152906040529650505050505050919050565b600d805461046990611a5e565b6000546001600160a01b031633146110bc576040516282b42960e81b815260040160405180910390fd5b600d6106718282611ae8565b600c805461046990611a5e565b6000546001600160a01b031633146110ff576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038116611126576040516349e27cff60e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b600061119e7f0000000000000000000000000000000000000000000000000000000000000012600a611fc3565b905090565b6000806111ae611171565b6001600160a01b038087166000818152600460205260408082208054948a16835290822054928252939450919290918691906111ea8386611bbe565b90915550506001600160a01b03808716600090815260046020908152604080832080548a019055928a168252600b9052205460ff1661127c576001600160a01b038716600090815260046020526040812054611247908590611fd2565b6112518585611fd2565b61125b9190611bbe565b905060005b8181101561127957611271896113fd565b600101611260565b50505b6001600160a01b0386166000908152600b602052604090205460ff166112f75760006112a88483611fd2565b6001600160a01b0388166000908152600460205260409020546112cc908690611fd2565b6112d69190611bbe565b905060005b818110156112f4576112ec88611525565b6001016112db565b50505b856001600160a01b0316876001600160a01b03167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e0314878760405161133c91815260200190565b60405180910390a35060019695505050505050565b600161135d8382611ae8565b5060026109f98282611ae8565b6060600061137783611630565b600101905060008167ffffffffffffffff811115611397576113976117b9565b6040519080825280601f01601f1916602001820160405280156113c1576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846113cb57509392505050565b6001600160a01b03811661142457604051636edaef2f60e11b815260040160405180910390fd5b6001600160a01b0381166000908152600960205260408120805461144a90600190611bbe565b8154811061145a5761145a611bd1565b9060005260206000200154905060096000836001600160a01b03166001600160a01b0316815260200190815260200160002080548061149b5761149b611be7565b600082815260208082208301600019908101839055909201909255828252600a815260408083208390556008825280832080546001600160a01b031990811690915560069092528083208054909216909155518291906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b03811661154c57604051634e46966960e11b815260040160405180910390fd5b60038054600101908190556000818152600860205260409020546001600160a01b03161561158d5760405163119b4fd360e11b815260040160405180910390fd5b600081815260086020908152604080832080546001600160a01b0319166001600160a01b0387169081179091558084526009835290832080546001818101835582865293852001859055925290546115e59190611bbe565b6000828152600a602052604080822092909255905182916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061166f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061169b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106116b957662386f26fc10000830492506010015b6305f5e10083106116d1576305f5e100830492506008015b61271083106116e557612710830492506004015b606483106116f7576064830492506002015b600a83106106355760010192915050565b60005b8381101561172357818101518382015260200161170b565b50506000910152565b602081526000825180602084015261174b816040850160208701611708565b601f01601f19169190910160400192915050565b60006020828403121561177157600080fd5b5035919050565b80356001600160a01b0381168114610bf857600080fd5b600080604083850312156117a257600080fd5b6117ab83611778565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126117e057600080fd5b813567ffffffffffffffff808211156117fb576117fb6117b9565b604051601f8301601f19908116603f01168101908282118183101715611823576118236117b9565b8160405283815286602085880101111561183c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006020828403121561186e57600080fd5b813567ffffffffffffffff81111561188557600080fd5b611891848285016117cf565b949350505050565b6000806000606084860312156118ae57600080fd5b6118b784611778565b92506118c560208501611778565b9150604084013590509250925092565b600080604083850312156118e857600080fd5b823567ffffffffffffffff8082111561190057600080fd5b61190c868387016117cf565b9350602085013591508082111561192257600080fd5b5061192f858286016117cf565b9150509250929050565b6000806040838503121561194c57600080fd5b61195583611778565b91506020830135801515811461196a57600080fd5b809150509250929050565b60006020828403121561198757600080fd5b610c8382611778565b6000806000806000608086880312156119a857600080fd5b6119b186611778565b94506119bf60208701611778565b935060408601359250606086013567ffffffffffffffff808211156119e357600080fd5b818801915088601f8301126119f757600080fd5b813581811115611a0657600080fd5b896020828501011115611a1857600080fd5b9699959850939650602001949392505050565b60008060408385031215611a3e57600080fd5b611a4783611778565b9150611a5560208401611778565b90509250929050565b600181811c90821680611a7257607f821691505b602082108103611a9257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156109f9576000816000526020600020601f850160051c81016020861015611ac15750805b601f850160051c820191505b81811015611ae057828155600101611acd565b505050505050565b815167ffffffffffffffff811115611b0257611b026117b9565b611b1681611b108454611a5e565b84611a98565b602080601f831160018114611b4b5760008415611b335750858301515b600019600386901b1c1916600185901b178555611ae0565b600085815260208120601f198616915b82811015611b7a57888601518255948401946001909101908401611b5b565b5085821015611b985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8181038181111561063557610635611ba8565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060208284031215611c0f57600080fd5b81516001600160e01b031981168114610c8357600080fd5b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290526000828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b6000808454611c8981611a5e565b60018281168015611ca15760018114611cb657611ce5565b60ff1984168752821515830287019450611ce5565b8860005260208060002060005b85811015611cdc5781548a820152908401908201611cc3565b50505082870194505b505050508351611cf9818360208801611708565b01949350505050565b727b226e616d65223a202250616e646f7261202360681b81528151600090611d31816013850160208701611708565b9190910160130192915050565b60008251611d50818460208701611708565b7f222c226465736372697074696f6e223a224120636f6c6c656374696f6e206f669201918252507f2031302c303030205265706c6963616e747320656e61626c656420627920455260208201527f433430342c20616e206578706572696d656e74616c20746f6b656e207374616e60408201527f646172642e222c2265787465726e616c5f75726c223a2268747470733a2f2f7060608201527f616e646f72612e6275696c64222c22696d616765223a220000000000000000006080820152609701919050565b60008351611e29818460208801611708565b835190830190611cf9818360208801611708565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a224381526e37b637b91116113b30b63ab2911d1160891b602082015260008251611e8d81602f850160208701611708565b91909101602f0192915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c0000000000815260008251611ed281601b850160208701611708565b91909101601b0192915050565b600181815b80851115611f1a578160001904821115611f0057611f00611ba8565b80851615611f0d57918102915b93841c9390800290611ee4565b509250929050565b600082611f3157506001610635565b81611f3e57506000610635565b8160018114611f545760028114611f5e57611f7a565b6001915050610635565b60ff841115611f6f57611f6f611ba8565b50506001821b610635565b5060208310610133831016604e8410600b8410161715611f9d575081810a610635565b611fa78383611edf565b8060001904821115611fbb57611fbb611ba8565b029392505050565b6000610c8360ff841683611f22565b600082611fef57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220d5cf2af665a707cf5fa8553c93e5404fb287bcd41313f3344f32d0bb6a72666664736f6c6343000817003303afb8816c4cbb69d1df7f5059c8646f739bdc1817a86586f82cd4543b55a07783038e056198349b75c9b9a2851928c6671134b3a28d9040008ec86b3da5d838499103aace8e5f96254bf5453630ba6fa4cdc8cde7f86bc2bddb01e42a1b888475ed5d0347c71c1f338cc73e8a463c9f0f2dc851fb8a3d29c9bd6d1529d4c2377c42de2f031f0fb94baff76e5ee7f7d75f27c6e2b6b5c8340d5547ae398d2ed700062d760b03eac10e4e75850fb781f4514a8aaad8f96b1b71d095d550697fcfc9586d75251803c619492583c6a3c872c33839d6f72ac0cc3e2865677e0ea0cb60e65ec9506771039affd3ea0720f53c544f1334f05faf65376d554554281bcca35f5c2871eedc8503cf9022b6c201b40807867336a288444e32df93bc2fddbb202e473e1f2351d44803e2dea544c7acf3c3d68e84ea42b2033de4dce351782729d2b1209df4f5f4ca7b03e002d88c0ff6a423bde25825060a68c1d33224da5da9127b494d663924574e6703d9630c91655bddf13e22545a7e58f1567777df8f64b4de6dbf6fd49b3f6be859038fc5ab4fbec404548cf127d320bbcfaa800874dcab588464dcce52fc8747ff890330d12872a989a652a34dd908b114ef593c53c19ffe34e22a6ffd7504df33d1a2033924eb6d6559eff37eccbcfd94782fe708b7e9b7ea1d4acd6219983c7420683b03fa494b54c69888d3f047882e041269bc44bec96b7c76f2b966858e0e16a13e760339edca7c8391b51d5aff3c834244cad508bddf6e60ce0b3b39c61c544abfd56c03cff8c0c53988ef18c8b769c73491561c34c77d596f18efc3ea65058a65278cce030c41d2f047a84162cd85fd26831453eced5545b17de49416bb5470e8fcc10e5e00581f02e3701882b4f087cfdc78abee4623bb59f835d466dcdb4ff432a8f5d5abc2410c03be77150d048b20b98659ed12f85c28a16f3efcf4a2a45216d3fd1d36f5a5a97700581f02775f66ffeb1f2e550ff9b71f8aa7ca573c9cae553005a0500111bc36fa5c54c43b6ffbb4781c354d7ea7198641ec4cdc4d8f5c00581f027a335fefd9be47e8bc2cb6453050aebe23d537b1768dfdf2010a85abd0af5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f024b576da2277d0f3ef4f31a5e552b21b15014dd98f1dc1af9978fcc4523a648040cbd672250e32d00581f0269bdb3883436bde2846536fbc18fee58d5e21f361a5bfbb28be23834d0d042d10700581f028c6c4d6a2392b5fc8a9938ff0ae2d0f50bd92eca6fa0973e1bdb71eb52f4448a285ef2021930ee03edc7886ccbaadd1de4656b5e27f47268d7ea0b763b1f29ab2643af30499cfdb803f313ee58c42be5fbbeea7beff6bcf262bfb57f190a5507a7513971a343df8f6d0219ffff03df405c9d0d4d3e4fb368796734f23d0496cf38d5ab43bd167de49f437e7078cb035dd55be8715f265612ff3b9aac3207ac0d678528b9e9208eb2df59c8754bc846038b721f87a03cf95a23556c9a2f34025889bb152febebff81273c4a03e418e2fd032b5cc81ec353118fd2abed61ebe006bd0984835c5fd5e4716c8f598c0bd9b4a0033774d2d5872667a66c0e7231d14c7663efdb043f0463244b722003a483b7079603504f211b98470aa50f212213cd973251f0062e64b81b72ce07938279234ba0df03c25d438036663fc363ff53168ad90c44e119ec3ac35fa82a8c396a02fe52bc1303b5f499f58394fe98dcb7fba234c586be11e00084e82664d5ad5675df80c137fa00581f02b0656bc779b3f8000ade5ed2448f370c7a38beda3a9b7876f46cf2d4821754d371519e9789a5bbd84faf18928c80ab243f48c800581f020f83fba0715c7d6d1a6a69df54c8208d059a1c6c5c9fa73ceaff43ac83ed470c26dcc0adf96900581f0207d10a5ff625be797ed60a1524539ef9a27a10f079fe99fdcd3a8f16cdd0411500581f02177e67927941018ff62e60d1fe7d904bc57f4ea49d8304ac3dd63d698d4f54c189aed75a492fc5008e5b007d44b95803382c080219408a03ab2b0580bed43ab8c5465595fda58fb6051853b6f35915afc35307779010c0e1032ebfb925a833fbe9c7546b571c12048455da69c97c57109873443544ee71ab2603f8732bde2803092bcf70124f1fb7d589d3fb94f684f3b20dc9a64b5d21dfb44303087a83d2071bcb4f34d8cd038d6fc539d6b19578bc67289d0b55f0b90201ec35031a2e84f6251ccedae62fb19c2213a1cbfd71b44ff48752d5ee4a7b9761a1ac14030ecbea35a112be72647c6a983894167135d5e64f6a2434549c7d51c41aab8c1703a5a98598ee7877f4a8c462a6e7fcc3cbdd6901b93d9245f25c7e241978409a4a03dd7c568538321815198054b1ebfedbc635588efffb46c6b524a6d412f6c4630f032a3eca7218b391e2d38a67b3091855de846dec0de77086e0b93b4fd0f69668a403921e9848736d339a50ab2ed7d1f2cf1c5dd04f88b002e6ad4b42f3e31daa591f0219ffff0337273a33d5c14715eb8a36b57d93e6b435370d781d8ceae99a0fa41a85944e9a03ca0fd50d59aae1608d8867e01aa7c439f9bf99e7c4b0e7b9c269d4049da6ef9403ba5dd91f613c4882767a640da0752fe850b73b1db8ff62df46f4f8f172d8712b0337133aeaefea3eab255123fb16d3b60f84bb4b9d63eda43be2e1baa430e4ef96036358cea0b0b4693acd10a63674724e5c6257acb7fbe2e8143b5f595e72f70038032bba71886fc0281b091a81e8fa5ff55fc2cbb30c1fbda322bd956bf57f6bb03803f61425b6f4c6413945c685005cc015933b587b38b15feba29c052a88cc7ba1c80219ffff03a2bbb58e792a148022b2c2a0f18e455f1c5ce5b493c75cdb64943643ab97e63403c28957c904d5661cb39916050852b167a2497ba063b485afadbe4e41834760f40333b15d5664ee15356b4d2e32e4cdcf084f99a0a01eb48c3df97efab1220679d103d86fccda022cbf5ae9f722f6c3b9205b8474edd5adcf47a9428b518e325b98d600581f02f37f5113ad1b3ab93b023a19619372c3490a37dddb2b89865ff3b455c314410a00581f039c2658206e3d8ca06c209a6564533a873126c1cc9bc7f3b662a5ca455b60410d00581f03d0f839c327f30fdf0399abd58ea86e01198bcfc3df68c5312c519be877504901a17653070c4e80bb02186000581f0251dc258019cc2c05182012d6231b2b75c0208f04a33aaf6a63c27f2898a9410100581f02921ab63b159e1a70553147d65418610bd3560b6574598f3a967db4fdd62d470e8bc6eda9266d03166ccf211f5efc2b2be57fe8711de296c34285e44b543c280e948b8fe32efe1403e2cab55e7b151d5b94881f5e41dc3f1a2bc11c19db4922c78870a3f7869ac020021988d403b54b05f1d647d21596443934d716a110ebabc1e80f34379f7087e303f6a738dc035b298fb99310ffc24c47f85596f098bd71f75345dd2046010f080bffe26ccd9a0358c5ee1386dc31f6e94476cc0495cf523bff55771a3864388ad21440bb6f390203b0b5c2b2cf157ff56e9e48ed55566a8084c0aa7d2eeb9cfd7f62273af69a1f800300d5008aa75cb1ded85ed0aaf81a90c7237e181bad4db2e6b1d55a1eb8c35d9503693853d5d822664bb142706a4189ec827e044dacd028fae381f62de11d65f32203a65ef28b70438d460341b4ac5a512ece33baebe38c12abba58a52e0b77cb1c92038199399b5ff356d5c5c592c6cd3719420feeea79b59b46cd98eea7e00bfcd3be038c4815b10a894b8f75d913b83d37634a4f8b35f2539ba74e7eb6fb7f4a5a8d9d03ba1bc4d39d018c0bd10c0781dd961583159dc7ef84276ee6fd9cdc521cf90ce403859efdbf4caabc71b69890ee7052b674f646948bbaa91f2791a65cb32ab4c10203625b6ece50986abfa44457400d0c3d7961ed4df500cbe6e55c696170877eb1160219ffff03f7cf60b6233c218f2a71e3128b46f193ab0c1248466620cdae1975e91bb3357c03749cb58f13d374bde7ebc968bf1833bbd8c8fe92adaae6e3ce483f98ebe88439034da425150dcd2daedff75e90efcaec611efdb1bd2e99f809b9a58d368a692b4203920dc456c3e2df9a69b6e7ad1747f1990209ea95dc33d6acf7b6495df02a110003cc2cc9d00280f4d5c622293ce345e9ce0618caa75f61090a0ecd1b229d544c5d03cfada93750f51480f42eeff247eb14d6edd636d7b0869feffab3204c0ec492d1030652ac12a14f7290cfec908d2e9a2b0152585de4344ba1834ab7afb5aaf8f1e403b64e9d6005ad5285568b2c0aaaac2905c6a6617b78c1264727229aae887db265030d4719ebdd6d7aa612c40dcea6128956cb6c99209f2d45b5f530bc63d1c9400a0344378319e138ff3c41e437ca7ce8e0c2f40de06520a5ed7a54e080d7fa1f3ea903f55bed5d6c1f9d57569d0df22cb690f06d535bea2b3c237939f9eae28a1b512403cd42291a3f33a31cb8e34610b20d5065ea09942aebce0ea1d88f54c003824a23035ac76fd77cf8c8f23685059bc043f17a45561970a19cc33daa11293466e7ff1a031d11d4407c2683175b43fca13ac06dcd9fa1fea0d2f969a03955283664df81f80219ffff035e16e3e7296c880fffc1f2622c990b861385a625e68b14817ff04579668956c1030c191f2643e5d978a18cc15222a5d4aee7f57a7a498fa3d5e44effaaa1fb6996037612dcb363277bd094c269fbe84b559439349df8eee1619e5abcfcc11419497703b63a46a9c4e7fc047c0cc06477e6942c8d3049631783eda370a7a804501c4d97033590addf33a8e8a48c62c9e9e85a21e5feca7c83a3be22fa634bb8447e262adb0398ca9159f0806d0179542e8f9878bf66429890ba5571847177d3f2a38463c6b003ec36cf3a6aeae24928e379330dd2314d4bac14b4b7b89076212f2bc960de49f803e720272800c54b61c5a4db96d50e7f2e4393e897e3fa15347607ecb24999ffb200581f0298b4fe25ae4167140e938c162723f8346c7409f06e01f6db9881c16e3210483782ff7e6a51c9d00327b99076e51f6bd3fb3a50400abb068bff0a5f5e8b781d366a16f7f6fcc59e6703c606286ed78f5710d9e437f5d02c550d40e8ae44505b5757ba28e639efc75c2800581f02107c1425e4281608d778ea80f76fd042ffd239fb98d740b4c434a53a9f0d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f020d1b05d48a98f7719f2a1addbd341f6ccd7433effec725e3c83f2b77326154fafc9af3c0353d95244a53a3fc80e22295bec8a000581f02baabd0d17a2a95c49acf45f875e8b514b37b430c4f2f34c77a6251169f9942bc940219e88e03763d3ee21edcd999ec0622b176aa22b7d37514c5de6fcc7fc3d9ca46ddaa8a08036a965344563bd267ce1f505145690fd6164ff3450cccfc540caeedbd96f1c8d503381f27420f35bfcbabe18d784dbff6148988d9b837286efb368ec64e9c73bcd10387e23fca56d828956dcf7a2b61ad5e5b999fad3b4aab629e816407a3406663250384628f5152345968d622e1c45ad57a379663a47ab4edc533cbc30d1953d1152c03a8f72e7b6b0b85e34490f60dc9d3273c05e12ad774c55cee3694b69d09657bec0335cc4f51155d151f1e46599c1a2dcefe20a0451a268ff2ee5feb18415a473f580343ea4beb5dfd0c53a6a9739dca846aa95887f5ef2bfab660393a07e6ff14641903171dbee9ac0326cc27672fcaec5b976a2c94ec75cb5c6525d44d975115686b59031bb7fa96e90340e546f2701dbc8afbfd3197e2c430f0898ba00d0505cd0cfcd203854367aff76feb0cdd67177fa7a0ad21abe8e76a1df3676ff0d3fdd3d93c131e0317d22336b9f7c3431c7756b7987d497fd5defc3f49964d46c31c96fd9d40281f0219ffff032201a8a1b837cd47617e7dc14b6cd7731f8e2950c6a4bc020eed72252d12b66003bc30c7c319f705fad71e6a466c2ae6ac1ac71e2d0b7808fbdd72f50bd90f534a0385fdcf19a9ca5b30f93392a2c395227e51b1a80359c2c37e2589f1a364db78880318da6a0d3fda19c042cbc76ce033f240bc958db2e6643a18196bd67b77400e2803ca3dd179c84e108d867aecd7f28c61dedb4ab89b86f86dc6a680ddc26ab3bfdc037da3e3d74225ee44bcf9524c3879dcbfd1df63bbc7d6e7c8fb4ad18bf351ae77033a59a1d9b97c354803f3d52346033e570ae2853d0105c6bbad1829974267dff303c8304fd76d42d11501f9b8162149b22912ab4fbb7dbb65bfa3f4d39d18abfbf5034d3a39ef08e7b08d5b1529a2b5a60859b5eb0f1ba233ab0a8a168e44851e1e30005820039d6fe0e65970436430e9e1711f3c282c0a432c08b96520a64dfad2541c4b2042a1f203e093d73123d7f060681dd31ae522d32e5e42a0dd4165e59f9a9714e8cd905a820348a75626080bada971a2760e7e8871d6294ea86dee8578fb4e4f37d2b784d03903e85df9a0fac7374bd4f831f334f656d295544a60574cb9100ae4a070ecdbd3ab03f4c974465e1633fcec498a147d5d04f9dd40120faa3e5f298f2e705ba69629aa00581f024739f602fcf4fa97012237dfbf37a659119753af3fd9492a9b68bca5d75c480de0b6b3a764000000581f0274b3df945fb114e8da79163ab65c1a451d9f255e73dc52aec1fdb351ce135820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0202980399af25b0455eeba2ce1930f06f1ac19899b9a20e113d18f89e78fe410100581f02d879f1b973c2290ffa2c3f4389f275b409945b0d185e1286b3ce88fd4b6e46450a3af1eaf103bfce1249212996a2567b5d336b332e2ce576e4d03487d451ecf6e243a6b2a40200581f02b81d9d4676d5133fbf925b1d4fcc3fffac9bc1512f6d0c29e52cf20146135820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02192545033e31cffec09dea24100b0f6ea9153289950c71e60d84894d06f6ee7fdc0649a403d5aa0af1d854925923a8181b0d75b504062aedc798c5ffac862fc11e61da0fbd0219ffff0308a95a7ef9c5259a793d23b36e335fe12b53d2b9cd3ec6463953b219726f814f033f80ac88ff26ddef6f0bebce5bd99a549f5bfc6c3dd696f41fd583da523b87430330259520d452087f2ee83166861dc63dc8116c6e15d0e3854cf04bc5dd700dac03ddb4cdbe0b687f874bfb646ec59dec7b26826859355bbced9e35785c9ed97eb700581f034a5de51f88d18f1af48faeda345cbdcb867b58a1ea361f548e70c7c043e04804a3a5ddbfd930dd00581f03e8d68f06979840048e1ea795f7fbe6c3bcbbb7147903dd9a3cb14f2aaf9041010219140000581f026b8f5bfa53fc53eb9188b91438b559361aa21a00d701d692285bab50369442711500581f02b0be825183b1319221a112f63c1029b1dda6ea65cda5de5d6956156eef434103034f2ae74c4e0689fd62d3a920e6e16d3644180616def7cf1757b65b78a00954d10304cc6cb8bdc14233a5987233bc8bb5dd4f2697fd7771072852cb3c0cfb08931400581f0214e59ad87c8048f7684ee76956306564d31b1f4dbb74f98cea8ab3a62dfc54384d0eeeab0b84641e450a4307f6f2de1c027fd00219aa490329ce0b10f31a2ba08d19483215342efe6d338b1ffe8373cf83de1f7931ef06c10369c08547f5884b17d445aedceba0fd85aef66d53f9dcaa34a1c489daf41d8c25037decc8bc8a507371e99df65e28037bc4eef88fa5d461337f43b224b3f8448787034026c6b08d082cc8c1895e74e66a7434773f238ff728131aae7a92d6ceb7b233034e692c473c53f5cf97ade5b1185b1961e7cb28df4a5284be8313e998f8b79baa036e8e4e559ceec00174a1e7dbe072e07d5a3c2ae48e80264b9182f94cc70a19ff03d5f13dfb1d36b00a82cfa7ee0ee2ba1e59e8ea02df31570f5e65891a966ea32c032e05dce72f3948598794e6f447965fcaac61b8c970fc0e8c2af0d170e119adde03ad31f51ce8a764dadd06933bf4e430ab46390621910b60d73b7538ad5acb16e003ede077a6abd29a3724dbd89c2141fd569e5aa17e9b450e3fd1f118798341502d035fdb8cdc1ddf9a277f74f1599f1d5a371f5dc9a3f97626fd161bfc6205f3006a032156617c7afe66029407fb60dcf6d0ec17d2129f6d4851b530f078d390f3357d03c9f166e694f5fd5a6b43392c3eb0060679e9675d16dad25ae254cb1c247033830219ffff03702e8bdc57fa309e34113307c35f18bdf1289dddc4bad770c3ccdbf2194e6fa503e6511465f0e736f839540177875a9cf9515fc419fbc56e4ed92de7518ea2c123037c810178f0cd382f0a76ac216cb3984f06744a9e2d74e1cf23b237ae15f9b887037aa8798f68e4c79e00daa625354cc7f3b5bd9132026f4b2b9ac86eeac4072a9d03965974ebec198d64e6bcad0304fb4f3be663213a6da1ac4469e3461b028645de03b670690b88c714461eab59209c43534525ffe6937ce7684d6ef2a74b4853d90403b8cf59fc88b34cf567751270cd7fa8478aa11a47e8923f03ceae293c87e4081e0368b12b03d54e60878db7959349875dfe93abd5784c31f0ef6da3db8e1c97caf003c12ae862cd4a7a6de7fe0786ebdd6825bd6f22765ae784b8e21063d51650e041031174f47970d79a136996fd196b858a3dbc6e9239fc62c3c600e1aac503eeb3930349df3c530498377c6bea965e07a07b146a3c2915ae788bc8b5d4eca3923b849c03836ac5af568d84f963ff409098f66788b5762b3de9ace549c76fb41ae97a196400581f03712bc8ff09eeaa3fc7e8f720b51e7eb50ca34e7079a470e22169ec338d705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0382571082fe6d4fccb3aed4aad7f1c33fda122f1a3db84e1a08c4de6b8e30410400581f032cb7392b06aa80dc060f242a1f6af24d5a5a85dc9c33b99fd974b8017f00411e0219088200581f023a9e9e2d8eb3802fa33c2310af99ac4bc8e5ff708b2e34eef9e0fa4827fb46583afecd5c7700581f022907afac08b8c4ef5c9ecf42041a175c666f601f6db263c3f934b7c5dd93540b5eafba28226aa16b356ce3722a3dd3eadb1f8b00581f02a8ceff34fdcfdbcfbe09fc424cc927db17f73a36b56ad5d0a9b940556d664806f05b59d3b2000000581f0214f9b9cbc4695d32142af07f29f8c626aa2bc00045642174e4dfbe53ca5348023d9f7c59829a0d0219a82403ed6993ba5dd3afb82cac51e135f17332670d2c7884fb89d3938d8ab5aed0869403f85fedca8aeb93ada57f53295cbc0d816f88b06efaab78c761a5c0a3b7354a5803af469372f98350ad34c58ec0aacc8520addca49b0e9089ead503cffc978afe7b035c27fcc3ad9e9a476458397181ebf64619e60e0954ba02e93695e0c2a4bef44a0373cb54787e9349dc9ec388dc69222ad29a0b16890d917dd8ac8f116d38c4b30e0219ffff030f2755207cae01bc1ccb7de999d2da83e6686d92330d39986589d1c033d5f630034a379bdbb3a5adda4c4301e33a23cdfbdc3fb1f2724da3ba6220ab7b89cad4e1036bd0fbaa362c8438beb8c26147815da7d3e3b3b4b7500160a81ff1f99a9abc7d03f5e41438beacb0ce4ec1254eeba247af6b039b923b35dd71e0361882a54e0f7f033ac63c5eb42c6cc8ac40db3272219a4268c7a15eecce43c555bba6cd270ea42f0219ffff03b2f7371f3a0c844b51cb9508fc4ca188e2f0aea6af3112ff7d4a75f6b3365a7503a0b384a67e1181db331e4365ddee6bfcdf0e3a17bbb833e3c7840c709e97ceca03708349fad6e13d97fe2fec4c4f856cc3e107217b79f0a0c97d56d3f2d9178870032384a39db6f9a4b4e2ab79a1e1091fd4fd5c6402604b728c5d947cf5a226c631037f86cae18c5e155d4527fab70de1c1c1c098ad167cbc7ee6d21aab65ff216f2e0328e5a1188ea21207f65b32fa56f36c29f4e3ee5805cf49b948bbd9d06a42f9d8039d252f7bd41a23ee9ef2cf37ad78a20a8288bfeefc2922910c7be67a8dfa53080347fa16a85bc97f9b0d43e502e6f3e3ec13cda5d8843d16f442c482b99ff20d0903021e9fa592e3fdee2bd9845e46d27233ed1c38a16f302fbd4d29928d2ce7f38603ee2279880f7bd5b0a2e82931483fd7694cc454d4ed4818af7ab84356a96b27f3032f4f64680413c87f0c55ca50f9d872571434e32315b394fdece15afb034efdc50312e45334e0fbef194e8c6243b9a64c2c45ec6e26cc21e891cecf574d365bbd03030cb0c92f6ab9cb1334561892bf2dc00a3f769b76102357d28846ca03de8ec5140379695d004af012a3cd39b684fb5b05d3319ec94987fcf283705ec39a0fa02ed703f3b7bcfbd6171a62714e0b7d2751f54de61ee934394279266ba6e2bf5663bc0803183b7a187248818b5f51752ee3baec6b2861baaf52cb458ba47cea5b118c207200581f02f0f49c7293ad3beb83ec054deff24d135b9f305e87d891a0994920ab476a475cb4fa8418a10800581f0283b1befd6746797ebfd927a4eb9162e3af8226113c4dd3eee0caef172b5048014ba3c1f77640d8033ccf9bacd6221f571922150616b3da21fc8ba2070a4de5dc2ef3b9c66390a6d700581f03df1121e732477768a8935edf810bd85f583e05e5e17c6f709523b6e83b50471656943982828800581f03231fe4ea1910c0588f24b6d5273f6fc3c355852c198542bb9322a859304054dc900845732a53ee8df737efa282a6bc56976e6202189000581f02b7ebde36bd70504bec3ce1b84a96558c575fbb1aa096eabdb7bfa2de8434410e00581f028983462ec0e2f1476bb6ef3fe34bac93792310b2970ed70841a610ed283254bdfa4f4492dd7b7cf211209c4791af8d52bf5c500219c426038462a8a555a73182b7eb069d5f241dbc83fd5e2f4f5680ff41c5f45c8aa83708038c6613f8401ea0906d72d6ac9577810d26606d1a20a0d833980eee8f01c3172e03be663469e275d01c1bf217558116ef6134ed2c77b6211e48a05ba49092c12411034e7aaf6ae38920d1bc45df210fe28fc2bf5a7062ae1c74bf131484d86da75f9c036c11eeb819a0d3afccefa5b129b0b2f2bea688eec4316db85ac3da15c8910dc30318ff4560ea62955872a20d9adadd0802ec50cb408e04c8a71f35321d07a9faf503212bdf17083d431325990fbef3139c20a5bb658d10c9da1b63144ae64843a4d60363748a6b18cab29a7ca14c8c866066be0465cfe69272c5ab9f78d469b5155b4403d72b9c6009661b893e632f390daab3bd6535e4e453c469db0dda2d25f9c5c36003607a8bcd48bb2c3ad1da0be18778b447929790c4d7a661a57ff41143e751b74c0219ffff0371ed0eb820a8eaed34df18678e926543b795641a0b0289cd2a63973869d19fb503925d3aeee1ad01fa51bdd9de71d7651e2d133e3c11d815ad5562ae2ec0e0743903cf219322b17b869fab7333ae4dd02106f34101f191945be032e2447049d96b7f032aee989a67858c8aee497440018d63f81f3d2250d88e97465f039c81941f3c8e0219ffff03118fbf223e930225d098284d0639b03f64532a4105ead55ee5b9eb018fa723400377f0e30e2db7c44d70222026b2ec2f0aab18b5b4214c115baa6566029fb2d69e03a580ed20255da47be0bd309a2c93f9e706525bd881d7db50bd21f84aac1b12f103bd87c4e955b9192ba4ba22b82f918eb5815dd14b40711721650121ba51b4838303c4940d7860a939154dc2158cc33a37638445121c8201409f19aa24c7d323028c03b9fb1bcedcab1c6aedbc59a1300c272d271c1a631a39a4c97a68f7bebcda7e7a03966a0bb8adf026a8e8a8fb916fb2ec6e6f35ba43bfa3618aca42ac6f51bb0d5a00581f02f155d219fd4cb07bc1e937732ec8c6c6387f92daaf2ae62c6454838be2d44270260331d6e3bd78022fe8cd35c963ed1b7ea352b700de7d4032e7c591a99b75a84d51036e974adeb05a074e0e160dbac9ab64a155467e787c18c09520000c92831def5e00581f02250d8bde6e707cec3ca8e26fd2ef279ff6d29189ce951898fe724e4bc096546cfdc3643b69b3d8f5c2356be18bdf0d06f8d9540324d7cf05e62f4829531e7a0640fa43599150d3f8985ae3094367fba6f783084d00581f02833afe7fac8f77d2f4d64b177469b60a4c6dc40b5383ffaa1ca5590d2d4054d5c93950d64250c13642833d15627297124f7ec500581f02fa57ae41656b137ec7b116f1bf98790dcbb4dc114f89393931d69a12ffd5410b00581f0266c776a299387fb2fbaf85f852cc1561d90c6ce9f51b8d71517e9dac41755820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02f2752e407ca34f0f47b93026dbf6d90e4e5fe696ef996b921263f280a7e242bf4b00581f028c794db429a75801e58c70650ae08564008d5781be9d48c1d5f24f751f2c420db0021987fc03b88034eb3a4981202e3f0eceef1e6e506b6d48e83117cb8a49ac2cbe6d98125a03cc2a64477822f749da4393ca00ffd6b153b9d68fff411f57bd55354b8624d16303b9d42fa495edb34f56bfc3d348bb9d5b92f13bf1246e70c37c6c6b910b2b47a403fd8aa42599a120709424f668af5e40f6c5e51bd3e705df7962de3b1602c8020503b1c3e59e0ac0e24c2a25fe380502d751dff61500b393d9c056832bfbd63d93db039b95190d075f29355d2fcdc4f6daca871147dd231044e384f564fb2773911eaa033940272b88aa71cc8d76097464f067731a49cbede952bae3e93b04adf868baf003a2af8c9498e016803f4aeda8f748349f9cba8d68912e72763e8052c1021a662903aa635db77c7890c8ac22df7f39ed8599b51b0875e42816da1bee718a1e6af15f03a57d2fc08c3b61c18209462952437bc9474e3091fe18ca84dcb09f08f23c378c034f3edcc6e9b51a2cdfb09a678adf57205505ecf31b6972ba431c66f9ff59b8b70219ffff03bed2cccab6fde693c7c52ec39583be2b59273651df0d81910d512e633c6709260378fe79d7bb1e6fae2ea5c88c9c9bee617de54e2094abda4fc97904ac24d4c32503f53a1323c1703f901f5dfc9bf295206380dfb0140795863220169202ed27923e03e0d4853689f83b358626a612cf1632f9c8445777f1b52118862d132b25acaf6b03ee3c77cba39c299ae4e3bd3b84a4112bc554d035fc7cd0b1edab9667b8779500033b8c2145abda546a1c1ec6def3123ec1d4cccbb0fdaea5de380d3c7af6da263103e45e4e7067e4f6e2926ecd61a3c1460434f719c4051f6f4d7da30d21063d801903892e9555e27457d13310e1e7dc555a1104bda77aeb69da787483ad350e1672a203fc7f37fd3a6a52c6f4a87a3a4057a25f497fa6b7a36bc7c43ece469444ef35d20323188c32f892c0ab4fa5d453a120673387c3bcb8e18307937f96d85e09f4d34303b135344e97a0d4990d24a1d797fc5bd00747c54a5be9aebd321c572a34e7352303ea8aefd73ea2a5a58064fd7d900211e7739849fc20c8227ddb55eb85750cd11b03fb5a9bccbab77beb60ed8e8f0c980e0c5de869f51a14653b4f522e355b3cb8300219ffff034674dadc26eea308d87e34a054a96a8b5c937ed0a0231868452944be38e31231035ee2992cdc0270d1624feedd991c56603564953cc9ebbe09cee1305965b8c26803759e6b50b6949f059baa8c1ec201e861afa7df745edfb45515a70174cef3ad9703776a099bb8a998d883f44c801e422a8eb7fea0d25db49e5f4b55cc67d7896edd00581f02a16f8f5c4ce8a032c38ea410c5076bbc2b242616286df18fb3ab7fd65983413c00581f02f40586af5db5b2825b9814aa3fe912998ee950b34866cd45e3110289aebb54a23f54e0bb57a6114d831c080823f5fe2616cf9800581f027ec23f1723b114ffa5bfbb9a749f0153ce0e174a71205ffd05b96931b9d95820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0333d6caa8deea9b2f0ee819cf89711d6ebf65d3c1fd203f57b795f77a48813deb00581f021b58347d47308a81942270d339c37f0330664428efa82f3f4a26a1765e155820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f029185c71de7e29b62d459e535e9bad37f1bac28ccf2c56e42f975833ed1d6540cc90076d388e260d550b720735d4efc41f98ffe00581f0259239bccf3ee8d122f783fa093c2bad708bea4206321ba11b8a0803f5c4742bd260219e2b203ceb6636ec5c1f8cd99e3df0127f4c8e35fbb060014e3371381ae55bf66ff84d303b3bc396d22cc8a4d156baa52f8822071747cf835db6a95cba92ee5e99ba281690357ad3f6b85aa41062de06393704f8d92b171433c8dda8ec458b23ec46757cada035891fb9799abf86b3cb68b5c38b3254f64d6c9447576f0e933ec4f2b43c9763403cbeb7de3b4df13feb43a216d3d2fc4d870ae96cc626837fe069dbd609d1ad09c03a24824b63af9fdaa3f1c09a664517efa1869855a2953ee5f78c97773917d640203741c6b42856b2bec55b98178ebbf8dfc89977011c442bfc133bb38261ea40beb034cc2c9a7c21448db287fa3ad1afab6885aa3b94bb1b1ab2ce8846e4052a32c3503d07142784f9bee8140a0dc68c99279f9ff791897d1c9132790ae8bd77faeae1203b80aed7c2eae8c75066749a1967b7dd9dac4b802d40d418ccac17bfc35e459ef0306fc68f6979849b8b4b203c2a3af9f6adf1bfa59d71c827a0de1b586cd3d7f81036d519e444b58ed383869fe4dfd26bf6401cd1c2b1cbe029f252fe69d4091067303655254b797175a53e2d47b2bba9773632a050782f43e8cac078ecfcd7fc8894c03811be60fe1a1e86861daa04d48d2f54f107378b0131a20aeb56ddb9c121b2fe8036719741df4f4c1a6db0cde726f01f3273762f65a48ba76d9a0d73d0efe0f87770219ffff03258a99d5b3a4969511367a6c6462e70731e200ccb568a08556bec0e4f361918e037bf5baf7a8b43470cc135827d24d5d73a595dd25fc49af90e91ad1ef60a11f0a03d1a9bc8a4ae584f539c048ef0d3a0bf216ac4dcb0270f3d73b415fcaa085e55303f398125f443d785b00d7d7c57b5ca010c0cc575739e873da70984ec3ddf3da9f00581f026b46ca68208dea7df94f6ff42b6a7917a25ee5b82f5a26a453ca5673bdb842887f03ca083267174b62154d47ae5e97eca25d9b1e77f2613557f81c35566d4f58816300581f020b157d7e836d7a96c737dd8071330dda6e168890bed092b2d7a0252d3a235820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0227c2ef0e589c72ee1e12cd8ccdb7c91c00d9f81ef9b0cd4606ebf1759e4c494014373fb51a80656100581f0291d5c6733fd326f10f7f0b5b89faddfe45942da8ca98f377d15f7c64d867411c00581f02993e9d715ee1ecc20fd8c6431f4c99ea7231375c30e604af4f0a8bbe0caf42c259035732d56266758cd0e03c22b40a5ebc1ed515f2494bb7f820df2cbd519ee69a9900581f02423e7048f85d775158323249c547213f109039906cd0221a12af83c0a156472c397a286eccbf0219a1d6031c19337622be53fa38765119d33ff225b1b733f17cc20434d88c190dab7ae0ab03db8d67efe33c1bcc95c82bbff11436ec70eeff1e994ffb3f864e8204d2002f750341eac02e036c4e9821420213f2c7c3662eaf13d82552910f6d311a2a31e6dfa103afed3e087ffc5300574b306340dfe64306430703c0d826cc02f992815fb6c9b9032e2c474dffb52ed27c9a74a9100190e84e27c6b10ff33943cc2ef068f1c85c86039030f9108ff8f453540f08e772ac13c91cf76e8d5a9764de8edf28e221e31c8e034deac2c1045ae741076904dda60bb28a99544570b0088a4908769dc7cfff40fc0396b73322795e557990ca8aeec20fad09563d32c7b67bf7bd36ffc4ec5cd8545003ea32b94557992f421d1c6300034b3654c1dbf82cff6a55d55d031e30042b2bba0384da90aed64d3bc5e1708e19e96f13a5d56a4a911f4713ed774478a25db2f0810329270802594a7ac5ec2786f9a2bcd92e3e51dbaddcad1366492cab4b5895e805033b73968f61a1311446a837e4ae5b748329f1ac4c8675f033eb477a3dca088ccf0219ffff03293d3e2ae4a6aaaa5b9c92f9752d1b61626b88c9a8317b70b9461d66e2343fbf03845e1dfec502ee559e9adf8ff5406afc0dc209a7e10b73bc30ac58b84db3af7a039bdcb89b905c1c65d95d544b3d7c72bbf858139ee34752188c7d34357d2f599b031192712c840994c787a1b5a9d75462ee474bc17e9dfce9c49b27b6897fc174ac03a16b8641219b805296aa54e36afed4ca500da6a50442e30d06e18323bb78fa1e036a837aaa66683bb558aba7503b8da10eb4e9de050617f0b940a2ba5821deeb2603f5a5d3c38cb9f184cf7c6a66b6485b4c9d15ea880357b546ff0a43727a30c1d70316f8c10596844901e3033880944d6d1190bc4cde580b04b525da4923b8fb7e9703b41b42f0d50ffa64b710690fe5b58ef200c27a964d2023d84391758120f8e7d603f967e4a50a60035b903cf3e622f3e118988f51ef6d13bd3703c0983583196c2c0219ffff0302933a59585e23139054f3fa361d1b11d9cbd5358ee5d7cbe4ae18533b96bc6303192216ef2ed65e830eb12bcd69618c1339d2d6be4e84cc2af666707a30e3a816033d344c19e758c634365c3a855cb7dbfe13ed9606272cbe05c1a9ac14c0842fe603fe7e4e26d10495c256e41e692afaecec308740ce734ebcbc1c50209827d0ee990305c997ac51e4c8aa54ab622690ce3260f2dde54d2c4f7c0659f14a4ccdcc61a90373c4c5d65460c9f51f7aa0781d1bee033b57b8a3e6f80fb4d7acd37c3044f65a038dcc7222b5ea0a5985462c2960dfbb7bdf4bd11735919348998f4a0397370cc9037c7f78116b96de11ab0c364167da129a45f326577657ceeff782b80b299ba12303b8aef0d4ce6625c3e246a0d6e8b07c9b96e8ee937eded0432039e480a71360870325513fcaa3b81c7e277e01d6076e62bda71015d1792955d25c071e6b5e1260240336f2f0ce2206191fc9bc8adfa0e2f7de71f19ce78407e27437294e4bbd53b82603aa5929dff076e6be0a6f69828ef680ca1b6710e584fb257dfd28cc6ad071edf803b88c409de7c3f8adec5ed90133707f2d939c50e67afb19790bd4ba92e52c85f403bb0929200904f4e637392570ac4d0b4c67defd85b09872d26bb92c462afc5d7100581f025de823c1dc39c190aa6e32946f4490ba05b0d0b35acf48e1ce7ba07e7417480df2fce32d73f59e00581f02a12bf686085fce9fd1e11630b3c0bf8f18a1c4cbaddfe9530b4332b7aab4410800581f0226661afe80cc2626c872a6a88c84ea363fbed12bcb63472ddcc85c3424fb410100581f02726a48a6efd020c3f88195182b90108871b76b7dce663e476db18dfae0a75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02dbc3b79c8155a4a643fbae2da01400497eeb50354935eb64886b69ce6d4c4723ec720f2ccc1503e90453e222dbd33a1d2c4939faaa0a5062c9099b258528e3bc11a3e4e8cd790e00581f02ef0db8cca8c32d1eb6e6dc7ad3fb87d853bc4cf9588522ad9a4ae36541465820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02810645c871bef6c35f9063f3056846de45de144e8679d768a1cc958b559841030219493d03f20d40c3708deb8ec124f39a207097b97dc5ae8783aeb55e7408d37e85812b5403c4380410b26b2a972dfdcd7b1c5f362675f21052ed3e449e7d7dc079936b804003924169c0f9886d4c4e431c33de6e10ea2ff56ad58071460844d1191acea35d5903bbc1d0e7e902301b1a15f099aa5f4a8991d87d7c5d3724e5f1674747cc4c54b2039710b5fabbba71480375589c52e54e86f2321816761da9fb5e437b0bef107bb003d7a144b52ac453830f777cdcf9748d0b229d5b74b0c0ddd79cd93a83364c0b9b03db82373a20226adf484b6d3049b026f1ed09d83eee2ce7434fb264b011a5ea080336c81b7fa6ed54643656acf3f92c304fe829d77fe006eec9e6a1186374973eb70371d002d04f5d997e9454e8babd6261cb5f09e78c5afb213382eb133171d9e01103ea3625118091588cd6c335a1e3664eb95690f28ff806775bd40b48b5ed2534960309b9a4e69aace230a21b1559218500b79101c78a93f26e6c6032d27337060ec1038f81152e7198e13632ec746377c894f78b3fe3a3c1d75fca03c3c6c66b2d34bc03946ddf5e1eb2acc63c4dfa4cb7a5384449cf6edfcd182a3e9f33e9cf53992d0903d0fee8c7670195cab6fc1060704e9d67bc738775c70960f02d0d5abb6b8410b80219ffff03203d91faa71dde46441405bd1c75365cb6cb112124ff92ae7228f7348c12ad8903fb69c170b99fc9b86342ed9a41a9086cc7bf80d71d9fbcb6dbf67c3ad87179e80219ffff0378ef866aaec9e66e01462f7e7b9dbe97b5248e92e68e39f7d73ac95f3f2a40c10398df71dd6375cf87d05ff5aca21a2b6597c572e0a0c37d3998bf4a0266188613031b3bad7876659e37624cb24383e45a367a42c4893cfbc4ce216b7fcfd3a338a9030d56a78a6c3349ffacfd5f7d8aa74f5ffa89df3f2fa3e19a5723ba7e66adadb5031c3427f11b411ab87f0da47d4ab206d329594bfb6217cffe4f4baba36884c28203e4238e078e3543ae76eaca74224564bbff9af7d3137310a99731618253fc4dac0336dd77ea10955c26d955d385d77e659ba9e896b527090c05fe5ef6f5c5f0379f00581f02471114fcda013a1af0a227617f3ba051df0ff7cde2ebd627de47b676124f428bb100581f02920120bd3ce48da15c85f9fab211b438c13103328e1b64e37ccad45c01484611bca2bd186600581f0266c4d34b1773096e8b60c28a5a7dbe615891e65d40e75f00c83219c0f257410500581f029eb9cabd8f4fc844ee624d041c99d99ae5f36004c2b2560510875919a29a410e03164d17701af5e97dae976a7748bb092df32032a6f33d69f7ef2e7fdf1727868100581f02fb268d27179d99688439bd12006c2354599180462c5fde072e23fef652b4544ce96aacbf4a605084d757141be016de8431b28500581f029a5ad24c7c6ee443bdfa50b5411227414c9acb0e313e317bb256935d3114410d00581f027a4b78e1c32fcf7fdb76163e9eef041cd41e2ddc93982e5efefd47a6970c54e8cffe004c8f5bbed8d4c76ea1519c5105ba51780219df80034bf4559fa42bfd8ba9febe4ef75d0fdec851142c3362a63a639b43e47dfb5d7b03c85d9ecfad1b9f58a91963c946dfc09f1099c1b6ff7c6aced726ef2cbb4ecdd0030634fdd6b7a2339914809f1a1a754d98f2bd1f59ea4b09998ec833bd2f59ccb000582003cf08d88696f6f31f1b5e03a7d47c4cf729ba8bc02c1e9712d96d51f80e4300410103ac99d757812b828f00b90c3065ff53573efd3fc34b9e073b82814a39e6292e1503e75092987b118459d308fb6fa3f7f1a27c7589b521cdf36e7b301147987b1c4a03d59944f30ca2f83f6e68b1e854d8d627ed23c124f11735923c3b7822d50c5f00033c6e9390dd098955847afd5ded49b1c1cee08dbe39c19def81457b3bf198204e039826e46c358736a06cd2bc94fdeee393164953aaa24672f26512e6ae18f82328039b2086dc4ca1e1067b4ea374d80628255b054861f69fbef3142c1bdde875e4e603df2cd6b79510175a7ab97098a53f72c6b9e8e57706db343cb7706e556ece8d000219ffff03678a7664f1ca23c2a35dd1f2e4137e4360ad2ec680ae68da9242699d4336c86703317c64c5c79e227bf439d51af21aebe5b7a0335af76e507c8423db40e24e801703ce39254e8055b184d0e006709fefd0b9ee2e716ff25555f260dc808bf19b256003de13a8cc504dccb5fc7adbe8e2ae5a8aa03832723067e2564482e19b806195a503b4aa6ed6f789d494c6819b094381b1c14ce1f0640d8f6c2edd2dd52d07329450037eb0fe3e2551be914cfcd2b454a9d4cf9ff01a15e57dac03e532954d99307eaf0397b7104f468fe21a20e9238a9c9e050646964a605526fd043b250bd60b18c7de00581f028e2cce6bfffef641ec0f4ac40596c3d9cb95e62e545beb92282a908eceb1423f4503c09279fc2cde9c51f4dcaf1a8f02268073b2bd6a147545626ee18c515ef08fb500581f021b95d1b49bd9faae4c947aedfc52c070c6bc2e49ec3ae3a2ac252928ab6b5468808e7822a54c098fed2265b946013d1020ea6800581f033fb7423fab411702338ec9fedf41f262def894c097f81950fca96b7144f0411d00581f03852beaa7c37a973020369f24e35f45c4eeac0ca0624c94ca8a9eb7895ad0549f41a7e24fcd572079a08af2530ebe7d9bd5c7bb02186000581f021b41a4ae1325a8bac4184e73185bbd78e14c86ef7c3ad4524de1f549defb4501f6eed4eb00581f02f27939b9f512aa77d11bfeca6c9bd3ed457e81c238de9f704030fff23bcf5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02933aff1301c6ae9cf956f585271b0fc1617f32328c069ce83d439a2e5268410200581f02f5f121e21548f67e3e1209b18d2f8ab7fb535c578d3be7c022706a4e23b25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02194ea60398a309497d5946a149f5f533598132de8a2b7058a9c4f13fdf6e2f488d7bc6d400582003452bf5cf56d19600aebe0985b832f99211bb4c3ba606028ee84632f4126ef0410903f6c6f7afbe8c6056b4809bb5b11546bf039a2b5d7433bc75d0c37ab60520b2d0034d1db10df257dcb9eb1a4a47ed0d75c096bb07fe3a33c189c382dc76733c8f9603aa178b653ef12d90a22a91ad0d15d4826febe1a13d61e182d0251945131ca774035c3da35aebc70d15c460fba5c258b1c8abb97233baee07df984784ebc2ba5b9a03cc2eead7690fcc166a9fb7952924be642ef60309e24502ad4e0a692747a0ed3903688590ba272d3dbf78caafc270c59827a0869d85e31d3f6592d119511b0162140219ffff0371fde0406cb697c922ad82366c249f765c76ad124a817cd48597303c5345f28003fa0b15ba54540f2411156bd151bb9c7ef1cd03d5da76b7cc27158ac9d1bedf2d039e61bb4eb1c55261a5711a31d22b0041a902e0a255cda57c6d5d37c0724619ed03a8e52477b7188726d1808cab1c048d1fd913b7825a52eea04e53056a5b4224f0032e2f48dea5edde817d48684b1ec3d1158c5c2096c2941bbc690c4a96faa746f103bea1f317e45183ffa248a7536deeec904894ef3f8d7f71ba3644b59b53e63fec03656b29a7fc8270d4069eb49ccb1efb264a354d26b1be9af4aae6e0a24594d17303d3dfa42e9b77c4a21a5ccf606604b8f84a4ada1f0172369b7b4dcbfe2b6c85de03fb41ebd264546d5642e8164e2606590a08f7dcc6d84f29088159fea294b7f2ed038e64cc55b0615dc5ad2cc16881a27b2b5050cb08024d816a9d6a42d04c5baa0903e1e6a52cb9a0ac2de6126a5dd4f8b054708b040e30b26d596e1c28b6d0a261700219ffff030f88769df794d68aae3c9e65f8faf90c1a659dbdbeb0dee284061b81d7e10a42030f8a96252108c8c54250ee8b82d5fc2dd63979f65e0c58d1f913f0c87399061f03dd31d35a5d1a5f0ef46d741f73dd5c245d4a4b68ee5fb58dec029b001ff7451e033b445f4377a6f0cda78fc511575c3ee8d0e63607091c20dbbc9521d5ec5d214f03e2fcc5d568ee9e9e5ad2dc31fe4a6df850b0dd086e3b3f05bfa20644d160899b03892f1b22d56f1c8e47280d54bb339213c466bdafbc92076e5ad220140cc3319f03825924f86555e6d63249faf2b9eafed58ea0ab5c04c6fdc940315c596586b2b803c9e8eac7168764c8b70f3915d89a4bfc273b3d4906a1c97ab0b10a0bc61b2dfb03f3f976d291a82350fddd836bac387f77419e307cf9a6f070d7a02f9d425e5a3000581f023f414ceacf32fff17f5fcc778e6279a21c0649f58284d3da5a861f500613482b68ebc3f3ee8d4900581f0212f3b542812514136b611e5a1d7a376eef93210888e340a6d59e5361e153410203929dc327eb39d109b815a5d72455d750fca7e1e25218e12dc5ae3ea5b7076a4e00581f03a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b042d10700581f031ab664960f19d5b04d8bfb265f5d5198f0e55be951138b7c4aa848f378a0472386f26fc1000000581f0320533c2b96b1b0e92f3e0752c706f9db76c59f5964e80e5958483f019e40544554c4e5a971a25af0c29a162761d2a0cb855833021904a000581f023fc8e743015f63fe6838687e26900eef02eb75fe921b9ee91cdf3d54e6465820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02cb8c5ebf5244a0cd88e063d1a883ad7f80025be6be8b490cb2440c6a8d58415800581f0247abfabc9a2e441db9abc070516250e781d8ba5b23749f816ad010d5898b410100581f02298c44899077b2da6d440a94e801f6ec17c7eea5751286bbab864275f7fa42b4a302195ac30374b7ab0b8277e41e96e4e73e572c225d9530d4b2fd8744202f60e7d12d7e82b103e31ccab4d7b8b9cfb7d3bef282b1086c98c4aa9ad9f9aa10707a34935355cf20031215bae646c28eae3a87b45f08927b899b5908ebb8fdee3149be923f4d358e2903d6e681b38125841ddcc9ca52acf2834216ec6fcbb468f5d22743643ff94d3c550300f416e85bb57e13ddd571481dde5ff31bd6181ea0317320b6125d181e17516303c74df4fc939a9ac694bf450914222727fa79469bc6a29b4e76d76ad9a50df9d403052078053b751569426da5355284cec9047dd4c8f51c36f42ec441ec5fc84b1303546d146964a8fbf5598301981a5abf45fb45ff87156f32132f3ac3c90d4bb3f00347182d795dc93aa55bfb9ef642326a1a5a214158e61840fae79d3609cfbf50b003d978e6801113ff17b22363c9a11348724f0685fdf6aa59ff367e98149f6ebc0f0219ffff0335ba58953f823fbda866ab796fcd2e29213eea82f948b3955cec53e7bbe2ef0a03b7a1959c16b07dda158a173cfac837752f5a18a4c481602238760ac5d1680db703c297a0f953a0123a256f34ce8b2897d1abc9acf943ac9a141029ad2632b4fe2303bfc2983512d108dd897f3e10d3f0bb45c6c71005e3946af94372b0d27982406b03931fc5f5cd35d198e232fea9c050bb5f8175342a1a51ce5611d8672a67d3a8a0032b5334fd7c02a9a3e601de7ffd48f90ecaa7edb67423a5feb2a661c59bb33e9203eb2100091f55a28ad8a36fcecb8cb0ff2fba9a55d39c350522591923e92e56cf030ce552ba4994b1aa897b473634dac84a3b20717bfac31998b07ba1a8b1a6362800581f02aa6b03c9fdb1a9a0af933476dc80e79ddd92baf57dab20876398044a95a75820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f026a380b953855c0a06274a60d270e6fd4ab664ccc146ee895f0aee8bcb7f9410100581f029596e8e46152251cddfa894b4b9a969cbfbed09d406a126d0808313090dc42cc53039251acd22588428edcef4679cb4530b08edcf6bf7efe34d6b9c1416f91149aef00581f021d2e572b06395b693c8c36a5a1f7e77a16cd77440d4971a44727436596f44289a700581f026b49f5dac4b6e6e3c9b373c9150ee50578361d0b9f39934c41bfd19597f34111021918ca03e207438db574939f4d2052d1e62e2065a39a281f7c1cabc96bd3bf283fbf79d50381c81df0355763f75a37a8259ffdc2991402216c4568ad5cf2fae32c5f14eb150326504c4300aa1d323a3730c7ddf6d329f2c24e72f83f8e1c4ebbe304e3bd0b270350f58606e3f0f3309d9eeefd22dfbc565809aecaa9d44beb70da2a7df9c0a959034f0b00a25ac2eeab2067919e03870f1b4e677efee5718f3c9ede896bf5e602c303117e28c4dc897753e5af0474835e781a4c9630091b6c34062027f58c1e3a94ce03c15de6cbff9531e383e8b556b4d0b41eedbc2ccfff45d53e865da03188582d0203b1cf1d77144a5f8a4631521ecbc063e2f2fcedc2529547205829e0bd32ab694f00582003a9f5f7871e0eac180e7dfaae3be3a79b447d9809aea2fb2edef79f1eff9d0054b34a45fb62ed69e0066d1b60406463255e1638ca036fe21c01f1b75a380014eb1acc8f453dc737feb18e15286cd6605716b3e922390320b2640ab6d3a746c539c345ab3cf8e48934d498f71be2c2b926294a0fb30731031a2c5e9326602f083b520a5d572e764477faae25f7eed58a44af37e78c5f99f60219ffff035b276b4b1dae3b641c40e00d282530094f89cc291c0ac642b27ab0e190db842b03a2b89fb05df43e24fd25cd6189b5746a20b3c4c25200f499b2c9eae1cfe39fd9031a5a31b4ba343683cc123cb32d09685bb359809f7c59fa267f48bbbdfa2a4923034fff688375db2633a68275992427586fac2c2b8aa0323289ef4d0fdb89476a2403c99c77bc0ef92cc0593e8f7306d086a1b5d0651e5579aadb02e25774918d67d9031e7f1012f881b2c98cfe351fe10cd58943757509490a0e9aa133683917404f6e035e0f7fdf77bfe733a3795766bc08ff71436c7d1bac7d30cc2d39105cd5aa6a7d03b8701fb9ee4c31a0c8d9bf92399701ad2823b901fdf12732672fa526847f2171032a19be148b7373bca4a8d7235b063de5d8ee9c1c8a62c5674a50db2f856f19e50058200328c9fd55ef3f12a282c0cfdcce633a22466ad809913c3c778f600d18968bf047113cd18bfbde4103a6f6d543766a6e9c71d037ce1c91092e85d5fbee4dbd73b38e69aa1f4fe91d020336e782939236d8eae5148113cf84d1275d21db445a03906390d5bceaf8aa45ba031cc0786aa26223ac1c94edc7725bcb495fb881a5040591922b0d3e3e2a09afee035f9d37f32e6f5f1867dd4e9cdcc427262300e26b57fa88489586d8d17e823751039834e2bce97e609e0c3c6abcd82c8abd23aca21bb749a92aec70a45a329f669303664971632b65816cb5123a9d3fb70e8674eacd5a000d2f7033e177b66c6af57403a541c4b03c1eb2072a4630a08c012615622a1f18b9522f26849ee8989e0dad5f03d15ffcf054f1ab4cb4645e6622c5a235541a17160441f939133a861a3930dd1b0345c99075a5163920f1fa2a5a673f56adf8ee78d308acb27b4f73f9e80b0e67750219ffff03ca430210688ea6b3cbc9815ed8894cc526812385feed13bc92b80190f6d0015d03318821af0523ce1620833e15549995ca801607f8e56a0f3867e220d37923ec3303b42c2f794fd6c38f0c285a2ea1ad1a545ec311fe23163829cac7b0f0b93b10880219ffff03cdd05920f2ea207af6c3d6b4b464cf8d1d7181d072c9f7c92712d8ac82e539fc0343b343b1bc2cea4a6c0c394752dce599c6366d20d83909fb6e0df8ae3795746803ca2b002e52273acc4d95ee45753139c65859002dfa31accb0d085586b4ce8fda03c1eb924d3ae51eb84ba16c0695aa352d3b73612e9f285254b6fa5e3fc64e3fcf038a2abcb7aae5cff965958f5715692f55fc41029c1909787b1769207af3af04a3030402245fe71bcc44001ca5ce0003cf345db2ce4ba45fc259b1f82a0da2f7cd2f03551f0395b54db7ef2c626e898e7ac956281b224f5e709b2372db8623073b340d03e56be1509cd275079244afa0c362821535d63ea6fb598abe8dcee3074536d6a6033a67dbfcaf4951fd71bcb4de6b45e755df365e94279e90c21189c4434627481200581f02737ca34fb6114161ec8245c8f7963d6f3bf2325aff8907f1c39a7e4b09ed5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f023035c5f637e60e48eec97565d9f7b4800e071bb4a8625142462bd5f3c2cd5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03a86752199a16be89dd8c24ee324159ff991e26cf3d9d1b1a6cb45ad529e203d400581f02432f9455c9413d8cafd5d037c0158c68c8cc2a32461a8da7ae0b01933f784725803e30d08e8200581f0225328f4395e2bd6130b29f1a30afe77ee6fa43896b75c8be6c9aff9e610a42bf6600581f02c8790e98a22ac767ea0dfcba08f601f9f4e79f806fe9685595249dfbe95d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03c5a37057cb7ece487c83b4231dda21eca33090b84797e534e584644d06d5ff0200581f025c67a0da73b02161ec58182b7069ab5df22262ffa172657e73ee0d5b6107410102197e8803d0f5c90e13ec4185a4ed416a4d9585e1466f3ac870c5d9b332071ac20d1049ae03329fec4a59c85559b80a67ec4062f70423bbbf54137c39798fa3065469f28c3f03009cd91ec1b7170b14f266e4907ec4e50c2c5c8fb3a47a5a9751f6c111907b4a00582003a97670be2590088a9a35f053bd00b423e5d8bb75be2ee795bbd6b53ef2daa041040314c0d5f541c6e26286712bc292b6a15d9cb8d83cce055a565643e1d27e95e4b203cbc74a078eb9b61921568d33d4c64260c77868141c44f54f6eb97781001bbe18039f244b362efd0eba010950b395f5b1ddb883ac204d7198168b754ebaeb3730430331aa5c8886d84e65e0048f1a8734858f4145e03bd24729f1ba3400fbdb118b0b0307dc5ba55317aebcff776ff29dd7250321b2d1d7fa0af0e43518e44cae952b6f0219ffff03faf6a32d6b702bf715d32a89ae476a9ade02d2dcd1a0a5cd578e1759156ec52b035e8e4345b591afa48a05ab6ae99a96f077fa82d02b7a9be835b3bc79f65c7c9f03c098301c481d6500d17135048e8b5939f4a62121e7b7500b9a61b1538b1d760e038762d7890eebe388425f7caacf61e4b941ab0191339b2c97348a98e7da80aa9103a6cb342487f148240cc96fa001a6dde12ea7e50b0ffa46502824cf53d17b98e803a3a7400685dbacdef3b8a3bc1a4925c068921a81b418031c496d911070cf3ff6038c0efe0212024b039cfb5ca04c7b2efbcc826dbee329a228d289b06eac264bc6032705110ae1a29799af9e5f8a39f1e033b569accc6bb64f762d9a0dec20fabf4d030de8e1687b4d892d2cf423dce37d2147ea8d71f41c1018f0843e54289e1ef331035bbcaa0619f99f84454b4531355c303ce96123c0f28e368889ac786d9c8fa48403c993283391df345dad85d14069bf90a36cbbd3f6965fe2fa1bd42218e5d4be7a03f0a138f3a825a3a10cba22f99ee7969212e22c9814c9e8e1a3f54bec2f13cc9d0219ffff032769143f77282ca6bf636ca33edd955766f55dd262cdcdf43871c412598ddaa603bc8b842beb575bdec8638d912b8671933f18ba7c365d55c2434d5b8163abce260219ffff05581e0369fb3acb688ec0833b76571adb8bec9d01192ee2c5bd41b51438b48280070119202a03a546b9a1f1b5222d221898a193f0546bd684da8b33f4cd85513383e58541461d05581e0375f6be4c94ec8db2ff43d669882ab0eec29bb8c0120b9f49a4dd503b600404030631bbde9b1f984125a7325a2a6a15403bc0250599094a57c034422ba83a62b705581e036bc29aae9ab1d575e9303ec7b8a7bccb66f352e16ffd847c2bbbc899c0040805581e03b241082d2135ac3ccec1e87a7f017ad6bf87934f77beb37a86d534ae700c014702f0b8f7a29b7803e0eda5d3a5480dc8ea5da0c85b538590b93e4d2f1f82da1f0961b8e2a8c7090c05581e03d442289d5db854fe2f45bf72f76ab99e937420745e213d4987526315b00c014677b0c5f2eb1705581e0362dcb6c71d7a63326527116995a809c8321c3d3d9ed190a5793aec0f100c04470be60cf3d5d5da0312595aba11f1bc6a8180d5051a4172b981b77cd82388b4475fea91ae328cdb21021999f6035798401a74e041e5bd23a00f2aca4913759e2bea42b7bb0502a086fc8f8eefe603db6f567a1cd62cbf00e6e4cba0c17eecd53765602f2a696c936c105a526f03fd03106918e83d1fe407b94f655299529fd05d72e273ecfbcc55d7058bace20a5e050376805a0317490cb460b2a955be780450f6836dd1bb05d8a0311534b86e4cbd8b0317e0520ee6cdbdf3000f978386f5e97130e317b013b2e637e52d52e70bba92d10219ffff03d1d4486e2c6bff5bdba36c57111df8161b46035ebe4a7feea12280efb7abadc203622246760650fc1eebadf40c41de6af008af31b75932edf66dd28a42cf6392b9039c80afa31006c3efef2127a7e68bbdce8aec15d88926e61d59c5868790abda2c0370d5462d7404481b04b145698b68aeb2231f6403e2368b89b416a31079713ee303836128bd50abaf5a48059e41f33c1cab36c01b7333b03270b06ce5e261ab630403aba33a9328146b5b64163d5ce01e95744d8b6ac6dcc3f2082bf9453e07fc359903e40e85229f7a4c2ff5f732f0007bb1244e1e4188260ab1abcf9687fdad76d10b03913a4690991815f6940d8befdc7176aa6ad9c18a08ac68e4419dee9b7c97835903a0a5d2719007da830314daa7aea494b3bf501dcf60ba746e3df67aad39d1db0a036cad949b8b70273203501eef9ecb81276415d4d21be66e2bfae218417c1342ad03554eae355e33b0f1ff9f4c04cfd8b0df1964d522cf1ab1a95a90ebb519ca123a034e8da133fbc1c4db5f5ec972e7f6b11a7ba43b57d5f3cbcc25efde12cf4974660327a87037846a9ad140b95de480c902ab097faf89bc4c8b701612cec33f38b6c70219ffff0382a4e2c4dfb758c117096d85533632ff5029373e9d8d952b129a41b1dedead650358d9656141e4dcbdd2f5f54390ea1afc7c5cb98f7766400013be155a5aa13a580356c4b7056fd10e48feb32c2dc3d2feefaee74d0524ad97b7dfec56dbdf0e23d403dbd626ed7b96456a5f896224b117de8b7ddc7b749c6b2d402d21d7438a8a0e3203845f6b71c30077546d85eed620eff91a7f45a2e3e2cf1f60c88e758cbc96315603e6f29ecbd7991b80570a28bb242c63bdd9cb653eb7596a113b99fdf14f97bd4003368c55f1fbf07342d8c323c738fb2ea9f2fabebc8352a279fd997722cb8fe14a03bdebdaa86a254e37a582155fb052c0f855a545e8ee61e91fd663b92dd5c53e1103c5f0447b2994fa864ec0df232eb80dcc384488291643071f774b9747f0ac26710219ffff038b015389fc84cda7709348e85846f4cffd6da02c1adabda10047c9b9da95a9ca03a3f9e82499e7674bb8c2e9f1a781e783a1dab71b19048e230bb58e5df5973a2d03333fb5bf5b23b1f86775a0f27aadcf9e79134ebec02fefff6051f9878c07f7c703692e61deb86e5b65787f5211be79b949ab6add0d6cdc4c81ebabe51f653dcf9703342d16fd6d25eec5f89690848c39f90db48e7630c455ba1822e24fdcefd8dede0357350819032baf0bfcb2089f1476b54cc4c185c32e30d20725b9dd45e6b5c21703dcf2cebccfb2c9b99f315428762e8487713edd7371ef4943d8faf8f81096755403bcd212c35ca52390cb70af312c0a2e8661c82402d9245a68961e28c9b60cfa41033335c588fe2460af946e5e4cf03edd7cd5888ea17c7e9e3955691cd7f6dafdef0219ffff03a163ea031c9ff8e641a73f154c1c71c9ffc513b6493c3f619a6200a0f4b25102035b4df2810be1536437ba2fcf506a03b9ac1ee5626c19f39a61e3f32ecb8b3641035e0f6b0543c94577d36ce472158db75597afe14df9f8725185b3ba9d4a9fa44203d369a2794f66e4bd041bf97e7dab817da7e83c3bd3581cb880bb6347636e5a930308f3158a611f591d497dbcac4462612e0d0f4dd07b14b124f72c0cda941b361a0370b32cdf3563202ae998180d3c1e78d0ac431450f193d88bdf7b4a005ef5a04d0219ffff0368d228a2bb6f501e5114668a22408ffe5bb23ca4abd6287073626b82b0cc7ab803c509156302f3d96b880a8b732eaacbf000f68350ed14f30eb207bcbd91dc33cf03b559b49383b2f2a8513a459b0ffa5039041233820ddb3beda9757fac8075904903827e2fb9c666b4acb2a77a11004e3a3f28e41e256328f1fd2aea356fbf95e284033bd5d1d8bd1bc47e3b0e5364e68b9a339b53d659a5c54f31b84d481441d9b765037c938a52efaf84f440f34c5e7083bc9ff3e10c463172fba369f45a660a44a0e303e8f34aa1a8d07cdf43a1bd3d33825a6db784ab7541a15153416748b70a8d45ff03af5e35086163e702a7babf11037a4edab68ed5818aa1ced9b8ef2e560c7dfb9603deaafd8cf800d4a3d27d08dd80e8b54b4e9cacd05678687cff6cee69798bbfd0030ad896cae91949a85c3e45fe83e99d91007ad9f03a11729d65cac061f583b19a03df17c3e88df7eb66e3bc42a6eff9226ad790b1acaceef30860193a69c371f135035f39e8f8e797cf94ff50c4d3e8612cc29ca20cd4d555bafd647fd750ce907e780328a438af36388cbb7355c4550a338d85fc90c9968ec8942c90047add703c8ba0038496b23088b87f4c247935c2dc0c117b79309cc8b7b429f6eb1d849e892522b10393990e42a7da40102323c7d777de80586e89dceb21cbcb4ebcb6074dc1780e3303f662ad4ac6060f9fa84ddc459c47e98009160b7a9c2a63fdbfd38d66f31072e103a6933d9379f9715caae168708081b65a233a6c2014eb525ee3917539d0f16ecb0355b5838de9624d29b324001d06d9d854210e1bc9b815d3cebb3730fb18da697203e17a5fd5f0258a79a7295fc349c35bcedc07d42f5cb371d822336abb513926190320954c325095c2fefc2201f0293f5f6f5240f85fcc052a5d8a82869a6172aa9a034570173bcc88ea2710d14ba572afa4f318427fea12278a73922298159cc5bcee032e0a36c7ef00d3650e2a628c2db0a90cf6348e8c442b4db3ac29f220276fbacc036e99d8d3ceb6afded473f5bc05e1c7b1c98c3f45222a1ecf01a99b9b4641e64103562d44997323f6b304ed9740a3025214a7afd24c44e13a26dd10ec7401440546030a3dbcac1201260432eaf194827eb27c6192a4884e34b7d8ec500c90a7db10ac0308c28be29d0cfe27ce4dcc22bb798c97692f50db909b2f809d8bbd97d6b95ea203b5f93339cb957efb1a03f248602d638122ff3ec5ab8cc5c9bdbea0ba48e30ae105581e038c0101236e268b917b5c0108f9f8370987816d98284c76b588798f19000c0147021bb96329ba0005581e03a9d5a946af9e33d51d87cee40544ebbfc39c5d3ad52b77e1b30786b1a00c02462155aa030b580459567e608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f0000000000000000000000009e9fbde7c7a83c43913bddc8779158f1368f041381565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000c88f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000271061309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f0000000000000000000000009e9fbde7c7a83c43913bddc8779158f1368f04138d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000271062ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000271062ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f0000000000000000000000009e9fbde7c7a83c43913bddc8779158f1368f04138b8b613b86565b8715611aab57611aab7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f0000000000000000000000009e9fbde7c7a83c43913bddc8779158f1368f0413908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f00000000000000000000000000000000000762d10ef955d55b7d038c7a7231cc81565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f0000000000000000000000009e9fbde7c7a83c43913bddc8779158f1368f04139087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98481565b7f00000000000000000000000000000000000000000000000000000000000000c881565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b7f000000000000000000000000000000000000000000000000000000000000271081565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f0000000000000000000000001df4c6e36d61416813b42fe32724ef11e363eddc1614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f0000000000000000000000009e9fbde7c7a83c43913bddc8779158f1368f04131693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f00000000000000000000000000000000000762d10ef955d55b7d038c7a7231cc61513b565b9450614bba60058c8b8d8b8b87898b60017f00000000000000000000000000000000000762d10ef955d55b7d038c7a7231cc61513b565b93508415614bee57614bee60068d7f00000000000000000000000000000000000000000000000000000000000000c8615325565b8315614c2057614c2060068c7f00000000000000000000000000000000000000000000000000000000000000c8615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a03d17782c4cd36d05cdd223274e6f11f0bae006ace5dc893fe20d6aa29a4a3803903d1bb547bd6b5cbbea0f2fc3cc2aacbc58aabb8ba8656a4edcade9b7cff7bac7d03338a98e9989d7321d955cb2712ef2b05aef2828ed20e037a1ff05acd11b25d440337c09af6df0572cab700d07a6d4e17094409a90a622762065c74960eef6776ff0386de23cebd3b70eac96010c074dc8c528f7cb6c1925e0ef1d06a376f7bd3659a03c14777cc17916270deb514fee8cc463ff65551890a7c9816b5fe4338b703e6c00361066613e1f94d0d4345de64943b0be36fa2c8eeeef30209a965b84963ca8ff8031b54c9f810cd83202cee9ec361facb891cb4cfe6c08b6c1a77417e0852b03bd4033fb46b08ba86d1852f036d8c589578b66658493ecfc0a0784733a2ac2c610b1f037faa4d4eb9f99114a31dad6303c681191f6c2f22156e3d6d62ed421777380e97037d9f1fe27819233f385f571cb1b7f0df12930c9e9116143d509fb1911768c68b00581f02cb626d87046d8f6ee8ce20a08a646569bc433816e3507aa4385bbed101ae4e37e392663b4284210f7cbc6e8fab00581f02ecd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563581f010000010001000000441d0000000000000002642f000ae0305c97f5ccc3480219202000582003045a568ef3306cfd478deedd5ad151bbd143fdaf9abd51ca5c9bc2910cbcd05820ffffffffffffffffffffffffffffffffffabc8aaaa7faa5075e689c651ee00a9005820035fdd5b26e05594ab7f4573059734bc150752e47a50ac3c87b293ff60884b605004622dfafcdc2afb0d7aba966d2fca53005820039b80675edea1c97981c9ebe0973eb1fad5c785805af8052c3296461b55c4d0502cab60911e85c3d6b0eb5e9d0a1f2cd600582003e0745acaf73ddb5cc0b50544b65d05b21296b9f949a5c57f6839ee35cc7c105016a1f203601b8f04f1af74efd612172200582003f394fd8f898c934a91ee099b20c4220642002a802449a005ec6ecd04e1bae04f100157e1f8f82dd92e4f9c64dbe93803273cbc88dd8f6fef719fdcecb81a354c550cdd80fa750b74a202e9dc195346ad005820038ba7a39de05855ed18b20804f6c109c88c4654881536f73b8780815e9680f04fb3b56ab5d750c9877845ce6de3e93c0219766103a2588a2798a643741f7229005c93d8d7e0378887d7e019180f0671fb7b0daa3603efc27a949a5d727ccc7b4c152371d523f333c3e3c6ec41315b359729b8e77c30037b8984fe467633cc7930279b4952931018aeeb2c03335ef388287ad63b67c1ab039651e9a084d45fe30e8cfe4828a82b675176a58c84ae923e4907b00dc6302528039a2f98d9985f887de8fcafe355f0cb4e8c4737c6ab82be4d61e4fbebed3bc74d032917e09a215b532e77e7f11460834bb236c003d85da1d389208718ce58e81e750219ffff03112c019ac03a479740d3190de2e5786bab7fe86d3a87ec7f0cbb7bfdb37386f303e5d3f5040a637aa060111977bbbb22b1cf0c6c051dc4c99d0f56fae02ea3d98400582003fb44e3814ad2f97c355d30510921889d3b51c59bb2c833fe3f1b8834c989a05001e56d003d951e9f4eec6cefcd2c567800582003787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace050687e96f3eda637b1b9355b3d8a3de8e00058200350e533c0869bb8b21a47620a45b5269e041d538307ced18c6907c4112797605005cba62c28a4c1f716c9e25c1654b42a0058200324de1ff205b1e2e88f2a8b50d7d4b26235466bd23a5e71ea522f6579d988905820fffffffffffffffffffffffffffffffffdd0da2dad5a4673eb52547fb9791f12005820033714666fd6ff655a0ecd1548849423e04708014489371bf1d236d94bf6d3004805cd2318edbd14eb00582003434c8f71a411e0406d20ca91402a2f8017a7d300541032b08acf5de524e4e050021fd8d596112d85211cdc49a52addc20058200302d66bd6c59e40f948d57f037f489a5c9593dc8d50d50335be0622b98720805003005e435cce05767f425575c6c2fa8500582003f6a3a292d84b9b790282e53631d17b65405330585aaaf9ec67ad69f3d90f304f681354b920daf8d920149a09a86d0602199ce303a3e2828797e362aecae7f10515a1b12872e9f9e6f3ad68efb08fa9cdbe49461e030e1ac2a40e1773010a5b1dff658b6d0944134c347159a4f0feacd1dc1d46aba603ba036f38146114b9a61e7ab4f3c9a5118109e5045675f3e8fa1c1d68cb015462037fe35171803c405a480f91c7d2d986657c43f5c08467b049b78e378172b7b193030cccba7b57f509c3cb416c1afcae972b474f0da620aa5110725ad4d1ac4ececf03023508b931c7981574fefc7a77e14f29efb8c2fcb0c3816e53eb8f76c5e6291103a1e5e82f80fcaed0cb0ab828114df618fc6f0d62442f9b845935841646c1dc1d035196e7799facc0c78e231475f707c75dfc9b0e1141d7394d438ad30a31ffd98e036b8b867f824c816767e95b09f2a54763af3b807f387530e950806bf7552145b00303db908b36e289ae7b6f0873c7b0191a56a87668a9242ab2f6d12b2d137bcb3f034b47319eda20016069524f90ec904f3f97a4af2102a329d1769bbc8fdc19007b030822662fd4036dc70dfe7695626dbbd73dcbfe2007579afc6884849d3f6a4c7b0359d60a4ebbcf1f1b9aec2693e4208f9c2b9658f7ce07127d8043bc3ab6a547b603f619032baeb8f496342bd6b9eebb4e5a915de1a8e348f629a36c91bf8db0333c036b4d14477a4f27b352754db65610e600f9c0b4c0b71e3d9d793c238795731c370219ffff031bd47238d8bddcf384ad8566ec0d6b0d74b3450592c2a0982a974456a1e8a0f603f55a996c733d89c68ab21720e0e8180edc292b3d0c65c86357e81f64d2d7ddd803d2d47f1512a8f2d838b3d259e12b64d1ba99450d512642991440182c05aabc64037dcc6ca7e612eae155d5501a9f8d2f07c50f226d93b5ccb49eb0ab1cb3a35e160397fc2f4af53cb44f081df2f58de1ac7bdbf4c68b100dc1c9c2e4715b88cd2990030719f2233b134ea32f14094f33d137a8cdfb281384586ed7b28c128c4d6c4b9f03bca80a83dc94e4b907bc490772c462c6d62ff7c8bb3e6b1d42bc754495d2b16403496d83088e932f9f91cda9726e6a5f2e299bf8dc773a35b1603d948c9c5189850326a9ce54fc6c699cb12bec15ea9211e3206fd0a819cf5dc59f505f4353791896033fc4ad7d6497abfbf2ea5fbeae7c34f202ef965582c361ab8716eb9cd7eb6ad80320adaef509459786c17d48fcbaba1f2dce59d3dc9a229225b131db24a9b55d6303d8073b72e0142845326fec7ff529d7caa30389a009e093c4d9d5a5a81fd38b78033f2d7f373352561557d592b1ff25be725a740e079b79d8d8f723a8fb9f83687a031ab5d62d0d4b544adc462aa3d1e8f954d307cb7fc01147f0a2c5e56a6ce0b1b500582003fd805f52096804894e5a07e68210bceeab84539df9acc559aa8373666a25e04f726038fcdd9f9e0ef4408cd3310bdc005820035acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b049aab081aa14a00c686a005820039f5f0aa038d5e8d2a5704c0956593eb3f091c784484a4231b0fe5dd11cc9d05009c27cb3c2f65b10014179fae2db407c00582003e0fcf3cb208b9648f2f8742498b435f3f4cebca69579418d6ae60deaa7f8f05820fffffffffffffffffffffffffffffffffd2c8cb564e4737c9f1dbef942bed4ed0058200324cf913afe092ac0156af50cf4910626db47dc326445733a6776ff81dbe4305820ffffffffffffffffffffffffffffffffffb9659f3c63cc526d27961af312db0c00582003ddad8ca21662bbaf4b9eea3b3c567b39d6a9843ffe60ca8f5c4d27976042a05820fffffffffffffffffffffffffffffffff87f57bc2a0d4ae30fcfc078ecfbff5800582003a35ec2c8f1db4c0403b1102bd8d17267c562b1524f4ccc233a24959eb92a7050046d115139f7a497c793dcac8c6e8c72021924ee03fd84f52b565e0a75c6a32cff6479409a53b94c534a5c7d4570aa66b813566e9603cc4e859bb275929c9b83792e421a885df29b844f9b4c15d73055485d24a6d68d03c3daa779b945c1d000f5a925e3f09a1f115970cc2b6207b7c5758351382c1f60034f6fc5a0b4648cb2f725e4173c9508c41461f5e57d7e4f7cf8642dbd1474ccb10331c2111911e565873a4caaf841a5d9d3018a598b42e21736ef834a42c25f5abc0219ffff03cf06a6af59aac9ba0400b7c54caef60b3190ed01f63f190576e7f6788ad9976403f935fcdc07af3f5d0e74dc89f7dbfee7bb0b30155395dc3da8c7e992d3b8b079037f7010cfc513aeaaa019f6ac35f1e4390536ed6555caf3edbe7b7083e7870e5703f78e594a9e6c6a5c9cc4c450151e7081a898fc9324027b691ea5c5e06f6dcc0103e72db0dc7229be30cbc045f1fa7a2e1ddf45df55df4a7cbbbd9edcda63657af3038495915d832495e8b0423b8d2d88145f5d715105aee06e60aab1b9ef34ac7bf403fae3b6b0d6e1afb318939237aa7d38555b9bb126bbe89ad2878fbbbe91d92db0005820039b48f25d6245f73a6d02c822f16a3b341b9ee27473e32010a6ab0b428d4de048ab214e0f14da828b00582003198ec01d37a5c120bd4fe5160209d9a3fde2c9346fc768866de6f8715cbe105820fffffffffffffffffffffffffffffffff7bbe8d081ace812456729549b18106c030d10d363b46ce6ee11991d012aac6fa446e899f0f752ba93f7d76d084140570a00582003a0f4808f7f0c52440675894727c9e66265266cd1e1f5015f8b745ca2de5f30581c4000801081042502a1f7f99f57fefffbffefdfd73c80441912002a00005820030410f131d8cddc28b24725376dab161b7915d4683b8e007ea2b615f9850ab050020bad51054d791edbfb0f299cf327740219906403cdf49b5d76105b920232c5f6818018d2560318b3bd72b2e3a38ffddd231d31db005820036668a7514ff38d59f59871e4b6fc175cba51a1f1828673e9e8eb9aaf3e98b04f1a417dbc3160ad6995ebccc0eafbb700582003271299ab0ee12c543b81dbd4b4a3a97053fed5361578e4b11f8a19493bc9505820ffffffffffffffffffffffffffffffffddc99551dcbea3e4fcb0e86e5f1b68b803187d867583a70f83f6688bda2c62c139372760fc02d814dc8e84cceea9a8575e00582003778d56331fe985ae74ac425470f1ff1e13fa167a12a9fc4b0fa065ff2ae6605011757dba76046a475379d62c3def4d11005820035351d8672387b37d86550fdfc0070a44a82d0b6515e3e6fbe4e310bdbe37b04f047406d9e371eba09c51786d4a22cd00582003bc9dcfc21b7bdd18f4eaa4700547a41911ad8607abc59ac8a2935e9ee3ef40500b2e68606443fff717db43d196e13d1c005820030fab288735963648f7a27a02d18ffe056a8396518819d2520bf75923272cb04e48458fe5302ca815e9b7dead40f500581f028e06f13e7919f19acf2a388bbba12c34c25c3edb38325e8c24be4ba318a05006f80e36ca6a5280038bf2e001ebac1e00581f02a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582001000001b000000000000020406a780e664d939858000003b2fd004065cf60270218c00219ccc5032ad796c18ef05ebb09657ff58fd63a4c451a7c3738f81ccb74cb89777a010dc103948d17c4cbfb5da1876891aa354068d2b2c08803719112bfb8163af00314a7f803413c6b4ce2b493b2250be11e00e7e71807d9b9be73cdd5207ec50634f4eb5991036dafe2c70d779072cc0727d2559c2d7e8b4ea11d52c6e938811e3530d2f7dd9a032e887a24ceca763b439e0ad3e3d6fd2e4b3660acb9e767582369450dfb2ae7f903b0dc4fc9641c999040d29cab56f176b2bcbff1ffe4e486c1518d2722f5198a2e033e6ca7e7cd045ed42b561775aebdcf4267e70991ade486514379a7b7840df7350372c145bebab08c9d89fa49b563aaf715acf9dc0d9e341c1cadf281ad0e22eb62038a6424a48cd52e972e39c994a54d493a69b93a8f7b9d276168d9e521d2f85a58035fe7fd0775b8f8b2f17239e86670fdb0f55714a3f0d7a5b69c123c6df38ca001035d9b3e20327c516ec9381d93ead23870134a1f421f694c991d1f2ce955a7c7df03923193e139a98d3ca0b7997e2777cfe77d67b1d7c6c224e7e912d94dac5155520219ffff0219ffff05581e03c63a2b39d3291db69424bed53d4edb18e94c1ba6115e52cfe72b31f2d0070119567e031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e039eb67ea0b38e576078f35745444edb6b6e3e019574e1d2e56b0390fa5007011bffffffffffffffff031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e03ccc849355732a0e83ed860e8e920243a9d3ae3e7cdca85673da010c20007011bffffffffffffffff03f2bf302610e990e0039b8b855a5f692932a2a20c6651cc866a1daee56ccbd57d031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e037bc189fdf2ef1af5046626b500dce9595590ead4c1076f50d33880adc007011bffffffffffffffff05581e03bf7c22281b5791656fa5dbdc49952c0913dfb009497ad9512ebf4ca2c00c1841471e8e6c4337658d05581e03073bc5ec910e0655b4f432c018ac43cab6cdad628de03eff36f961cde0040102198ec703fe71f6f923c7be6dae9f9d758b69d418ffa1b1377dad2c97ed67c30cd585560c03794ae0c876dacd580e09bb89fdfff9d6d2c2568a3ba3c3d3af6a7e6368c2a3b503a46f94d8422db47f7ba34ade932ea9183ac91f09da501eb965f977b49247146b031c2eeb76b3262bbb0da3cf65cbe9ad22629bb1e32d3f43c6a825300a9155d0e403fcf6008b49a07304e20f4c40d5b0053b8f55a5a113755484fdb8ca5503de8c4a03d6328c614b778654039fa290b4a639307affee8cee4febaccf402920238e2ddd03a481c6eed67d93cc9ba1f3d5047150ea1fd5607fa5473e5eea507d297d3d014a0219ffff03977dc21575479ec24f0498941309561b4211e2548ca4fd6f9ef4864c4f2b99d9033536226bcdb1ef0b4af07084d7b56dfd5e9446fdafbaec7f9869b0674bc0f12a030f18d7c6021382a8d5680fec483b86ee0a1a52444b0c1c00d38f3a8e3fa8b5ee03da1b86ac746e92a6630199116a1482362feb638dbecde99d0ed9b347a3056455031e48c3afbbc5fd1bbfed53563580122c757d9575008fe5efcc4180dfd23c2d2d03b306993e2937c87061b1657d0450ebb66563558e52364b60ffc57593bc48f1f803b8235ff301f6d2dd225fd7019d99d8c71cba1ca725fcfb2b0dc1c5b87c13deec03a28e060988ec47791d2867be167b6f1b69cd5e9d36e073a97a137aa70f0be52503cab803cb75245ba30dce44660d29e707dbdd2009fd313a205358acec342339790396e8ab3c4a77e852f1a070e88de49b736105f02654fb4cc929b76bf11a5d5e670394b182ac301057c49d7dbd072513443ce8ad770ffc4da0a2e67bf1178056d81b0219ffff031dc4ad382a0820474944ecfa57c09d28959aff2c9fe5c6a5b49ebee6f0f1efc7037a67147e1c00ed66c4d1559bae7f02b52f17c7bf41c3c60dbdb1bcb2d39ee5c003d76cad2198d33449990f7477a7492b420bba303bbd871d8e0d4dd5bbea364b7c031c3f9bf2b1cdf9be6124abc2bb1269c25142149dab3ec6b0e9a5897fd67ecac503a0c63d0b3dac49820d4c32d10871dff681d650916d63b5e635c8cec332fb0bd703d25d4ecbe9bc37338b68d39b42418132b99fd3b75c152aa1028861c556c616f90360507ccea9f4d3d41db19c6735cf671dcb95e9bd06babf4937a73f06f9b5b82f038630b0eb1ebb36bbea2cc4342975e087412f7a1b0ecc2abdd8667b93d7d5e33703c734819e0b99baa3e1a0cc561c3a712fd5998956e669869eb84747da9af1cfa70371af6fbb0dc265ebb2c426a93ce71083623d58f72bb01677dc5f3c090f58a1d90219ffff0311685a7370180524cb1df19157a555234792aa4cd7f8640a96bae6ca1ab6070d032bf840fa28d97c3d2c11f351334dd3b1d1e006e27098513cc82df0e95e8162e503f795215251d3961912625390ef0931881a93b79ef83dd76ac120dfb570c7e3b803c7c5553ffb7def0babee9bd6e908ef8a5b0bdec17323c5170cd151ffc208476303b6a88dd2e04093960b267fc15ec2bc7c7098949ebfc5e89aa3379f9e653674c803cfa7e4e5628410de9ded9a94a3bfc0efa92364a66c45364346572ad17e76c14c031224eabf1041a6876d5b159d7bb859849b147e7ce2df27c3cb2b556007f54cfa0219ffff03364b6559c7690ea7a691588295f4f746a03791a95d929abf056a905e62cba94b031767f87c1747bc72bf20749d1630b4d8a6a3f3ec2c5efb0397c8d2b1882f2b9f033640ec5bfd1d31b099f28bf24ee00207681696bb5b5f1686c38d6f51d9c60f2103833873354ef23e5031de39206fd93c894f41e492be5abdc5b50d875b146f94be0368eeeb37450f0ab1647ea98248e195454722ad72924ae1702b76c2e665488e7c034b2504d65afe59cf239935f20ff0cc4d21238e98d56ed8e62ecb23bd9a98d82703b099bb79c2d8139ba62553f8d15b9b91d82dcf44cb9eb0463b1834154ac7cd91039333459f6ef0e57274cb85160033e40afe10fe12e0debeb996e2f2152c755a3e03a54acdca2baf6d193f4d2cdf0e3b1dec7481b7cae3827400d569fab81b236902032dfa9d212b30d11c5f0fe283ea6bb1f96a6ff17c8285094579b3dafc73c19d9303a6e20dad8ee3ac1e603fd82adf0ddf1cb46543a3abcd4e15d9d1b3bb60fd694503579461dc80c5bdd7be4240d7bec05a9118bb71ebdb48b65f41ce800aac27c95503d380579902d6b06bd5a41c9b54bf02048fa108f947d33ac139920c967ec1f0a003a788fdd42968f19b864304838a0be2392a57e18797fbf53a45e51cd417cbe50403b1c82d8c79fd1fae374f7a0253bbce1e08781d1e052f6e1b5258a6999b78e48703ae6e8ae8f84895ecf8923ba1e17a11ede67a0d32c197559b84ce80da1287696903e12082db6e1d9cf3b96e752ea4d505d02338da98d4f410d0cf582fc1f5804d41032002b0b0c2875cbde643ca757693fbaab3824fbd77be1d06e30422b55d031fd103043d0abceb8917e06bac76c366bd55330b2ea4702a9b7f11a73a14d93f2002bb03f797e1b101c4362da9a1b995a34bb4025a1c01bbe55811ed72f9bff2b4c7b4e203f8a3867cf1a6407d98075813b8b6504529dedc2bb0de505153c63f8b302199480316dcc2557c0182f5e5404e880e6c992fa4507896661fa7c541b5ba5b39dd795603de80770a5f69882a420b750e8b8f1ee042d1a71592173a1652bea7327f5d4f2a03d0a0fa4fea3a3b3c5c75aa7850bd3ed496680c327cb1db823d80bd0e42759df50328a148496cccaa374b36e98e88fb5c43e7c0b9ee5b0c7ab5bf6513352ea369e003ebc919b2b16e61d5022bc8502cc057fdf904d86d1312e6ac7dea952855d2c28103c612830f92e60b444d863bf182dba243d9061a2e374ddeba6b967b2cde1ae64d05581e0354746d6a091df4f940a2b869ce99873412140bf1ab5f16dae3b9a5f8900c0247016d70140db4f005581e03d7b4a7cba46d7b5224a93107596bb581653437eef3ef3d56a3c63231100c18394705216b6d7811ee05581e03ef25d3ec4c58ee05f86e4a201af1c17b5872aa69753b5d8fd07e499cd00c01471fd0bb9557655005581e039c5fe0cea5a718c6ac75f30d923843dbbdc140b5f06b6b36de9eaf2410040105581e032569341a494cb9aed9e2db5ce56a022162d0bf4206eef5336c9868ef200c19212a4826d09457b5a35a1305581e03cabe03eed53acf52ce1dc5ba8dfb1cd4fd167db22130bb4e40260f8b300402037cd4f0e9b8cf24b193c82a5b57e2d4b6dc215ba7e1a9a99c02dc35322045360c05581e035d63d992a0085927b0496407f5229bddb79b8dbd20d5fa6df29284b620040405581e03fe3a78cc7ae3c777f68a7c7dd74df344c5fc4952438796029602f33460040105581e0302c3738e36db439ba782af9948ed23f65d580ea8a7f27b424be874c4a0040103476ce0e26df74c8ebad1ab70192f5370e100e91d4e7f6416d50fadd12210723f05581e03f4cf097ad987ae738f3fd87a06b8b7de34b60cca553357313fc8a340700c03466cfe6d0f398d02197b7d039df44fa133f95e83bf4a90bc231aa2384cc41e6b1ff26ff6176e1097d9fd263b0345a5164166d7ca748add83d08a1a4a275e2056c3bef82d07a477ec061d1e040903bad73c92171efac5a520e4b51d7f012bfca64170d6437a3b7472dc63c5ecdee903ecb7f681173349607dfc4f08cce57a4d78cd9f2132ad791a6632ffd4d0efbda60357c7b3e63e9311d7d564e98ba06f83c8d9e9a3764fcc66d30ac569f53bb125bb0336549a7d84b0cca3ea5fe0b786ec3f3cfdc31fe165c9b0640d506caceff3ddda039205c02f90636159c69417e236e213d720a9b993773601fc942a8c8b475a01a8034572550d3f6d1de6860cfd6f02b053c38265704f31bf0566a2467026dcfd8d8c03fb1feec02a7335d3d61800d5532c0fe16ac80d50313a572e32162c78b05acbe00318738d58dff4671d2513a6302d83e20e10cdaf9809261294471b6152b3af023703a3bb603b0685f06e5cd93241339ea86446a92f12019e9949849f1e1928e268f90314f965c748ddfe77998987b77d51593ad96f1cdb6efad907f6a87f1d6f6a1eac03b9ddf8d13b6701c3a0867cae25e04379e96abc55b46e8ad785d5183fe20c20ae0219ffff037be1a9fb687073d612cbe33712871c72def307b689961c7c9bedf18304513a8003ee2b78cb8249a0d4d3055d50fd4eda167eacf9b722628851275e4a61a9efab1b0379db70d0e387d4338503a930c2f3efab6abfe7b1361c3b3504cc4eaf51cbf7610343d34c8c4c4be5723ccd42f61aa9e21339e1d27d0d6c2f76f99394e6a0de72320219ffff038e4f84f6195cc1938876df332e852970ea245127c2e363336da5f9b6a7221f5f0338a6da18e54a7c8cbd7f28dc1e96e6f0e705d0f009eafee982702834c9a3672803e18e5a68ff8c052e14b65ff4cdfc70febafc37246d52c47ea0775b211bc1ac4303a7e8d3c1a03b8b4878b6561de6719acaf9059e0359a7790dce2205d2caa3c83403e37545af314b26ebc1749eefbaa44d553dc183a83c712a06f914e6a0e0a0338e03d2296853913d9824987ebd935db84ce8f41f9ef8b1a78ce7daebafb0a79e296c033a225fa4377ad3d9fb72a61ba1f8c2efd4a2b7d82d469eccdd921047d9dff4030219ffff039777e7d98e1a15a70eb2a1b3c9ee58157c2fdf6e7f009bed4560ca8b11999d8603ab405f879c7e8c28154307d99dc11211264511d6d8c499452fbf477531e4c6de0352325782268b2e879f0ebfb29978df9d64e9f2fee1c3858beed953dee806b666031376ed85e106a7585758f2a7b8f1fc57a6250d8cc05c2b9df7ead9edd2f5b9fb03153dd4a6cb1d67f24e7dae95baa2cd1bf832304b43f7e003647ff365231ee0cc031281da51c1347c69f936229528efb15b1e3f386af7dca5a622d6034917d2543103226bf9a5ff46025a636a99ec1c07c68b3c4ea6e982c2d64fad53197588662486038c420da56d0edf7a84d928d828379e77a9a61d5c9aa22a5fcf9685a82c2bc717037bc4349b8fe5674c2f77ab8cf787da1b544af7dad7c7100a75e2fcacb4d8b0ab03e1a91d6327a510c419bb9eb480a7603f051ff356dcc7370e0700150056d2226f03d402e585d9d671310e9b66c5327f9fcb63c342ae4a5d104c175c933c2f4aa02003fc3922b7dfa2b5a649b771c922df839df68a712bee8806cfefbd14f5952bc358033d2ac8255991c176e9b0aab3c83507a3ecaf083c2e46f26ed04ed98b19787423033e3284ce8ce1108f7cf14b8cee7e235c514b1981dbe6171546585ec7a67d3873034d967638893a1a112568f517f41f15df732a81e1a27815b3c96345c1339240c803b91a1e9482cdca8caff7708ea722ac02cc69675d7cd91e7bd9759f6865a511df05581e035e10ff5e818b9387c9db668b17580ebad2ce2ae40b04a6fa2b318e8e60040105581e0362738fb5147d892c08b0d65b02ff8c3bf028b09c157d98fc6d1a31dff004010328635b9b2ad0413203f351ce87de544b80858f67181e10f894b7eee66f296b71031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e03acbb55262039bdb50143383dc5c2c9018815bccf85e42c859557fdd46007011bffffffffffffffff05581e034ed7e7b9290e2366a749c2a65fef417dca73889ce344f53f504a74e5900c01421400036215a63275c53615160db0395ca2e5919c1739a4f0d57e7e64ab3a3dd741b58b05581e03895c3319e9c6c03ae3146c40240ffd65ba105d40f09d1da211efc46e50040205581e036b55ecd060a1b87fff27d57ab897e969059e096cc1a69ffe500d58d260040305581d02fff4f457f33dec751c06c3bad17bd28bbeb00499198355f345d4203c0849152de40539242f9e7e0338ac76c6b894b21842674517d8e9f72ab3926490a188f091e2a96084cd5dac4103bfa6f85242f2d9dd359c732732b53a9b0a9dd82bae0397b59b4120453134ada905581d022ec333acf02cbcdf3d719776a20a66883537123429184eb29f685fbc07011bffffffffffffffff02183005581e031c8ac17bd18c0ac59cd803c7bf2e9819307235169f2503ade3dda4e1c00c01471dde3a765ec20002197f92036ffc24be38d4a7cddefe7b00c6adbc83d818f5125ffc2fb697dda7b7564ff04e03cb50aa8845608636596143b3f6bd78dc603064fa95bcd36aca250673a0ab3373036a4d3d4739cfccd1f95405a2928a565bade9f964f642f4ae051949d6dcf89f6403ad15af9ef2228169ed5e56c37b50ad96b49e845177f5b4d010ff9173807f401103b1815d03175990d53d3bb54a390645a08545ce2ac83213327ff2e7843b49748e0365f047ded3ce3c5e811a51d708037aa9d7ff214ee714898d79664f23e8e67a6b036288f1e2b8c4edc28a00562e8596d9fd8a501d0001cad5303b370470db47f832036ae5ca5112cae34e8eb7dadd64bdd02a6dfd5b3e570618d78ab898552e98413b039c67d015188a13ab81cbc92ef694739f697a78d45e2942186e8726682b876a050316023d1bde4ef10f10d04cb3ab15510446dfc94ffea24f8261fd26513aa7727c035e829f145141b06124f4f46462ccabc8a9fdb1f7855e3a1e346bdfb08f87679503ccfac1f8355676751ff85cbe6ae1703fc2ca4cfcc33a80e466182dd55c3bc01d035327d9a3b8eb6cfdbe26a4c2c78597488139a5386b440be951bb636dfa93d74303c25cfdad9b35441134741eb8aba198ede579324c14da9b8432c30ea9f75caf1903ebdca6964c9d382504be3f2d4aa27104c26dee5f09dbd6fe9e857d62a11b670e0219ffff03b538060ce209273b322661ec5ca2e0b3ceca19678486272438189716899c4ffa03f2ba31e6d6fc83904c4039060bfad864e5034e2729c9c032e37b10e116ef21d9039b756b32a4ff2de285080994c8ce20ef4f8b422fe53686999b9638e42b071fd903c2517c71395213d9757444b81f62f9d648fee471315625a7b71087030fb606940386e87a2ca1342c617712768367f896e17a7dc1f46a66a3028467d6cb0367307803c027d634174a616d51f531d7120d77307ff15d8dfb3858ba6f1c124d06cecc350219ffff0304974c24f184cc3ac6b5c213ae5f2b4e920cb1afbbeb8d56a46505b9ff044ef70330ae87fcd4abd16cbc379495e479111a156c46abb3e53fb973d08fd82088f37203e494c982b7ccae6500cca80e6f09d4f96a5c714baf8e838ff251c099f09fb4fb037cba6bd53998591ad52a21d1bb7219878ad777e6eb2376c357548acb62d0b412039df6eb33d7b1ddd3ecd6a64b6007b5c906f4c6fcef21f6285365b47ace73fe95035a1963c24fcb5a6bc49c50c7743aec2cf59bbf129963040b6f5d3203d00929b3034cfa5eedfac55af9ac406824e5cc6846b0dcb9b62d93336a54c2f6e2bbcf74c003931de92f69c5ed20cba72e577cab4485ae3279432221110236182e4881662d7b03de9256ae3deda6eca5a956c62ec0cde32baf832b3d3622c68568dfe9f361e54803809399dc7754323ad003dab6d6e9c64683de650ace53e5e1c25479e386db6bd703788ad1f6248924a8a45ce462d7507254bcccd3776c96f9ab4d76b34c0294e372030295e531f41304acba79464ae6360ffe5f9af4ac502728c9f0f4fb8e535bb5cf03b8ff8dc28758b91e4df6c0f4b698a090d085ba8f692f4a901a52be54a5ee8d9b03cd062f1e61d91a810f358d89f6f5451e22252f9d9725c8876a33e5ee6dd635c80219ffff03396ac8dfd43ca5d01413bc6f8df65025133f0c01dbd7a0d8a704e089d3a0d2c303e23134108131d7cb0f65f56ab836262fab3c87b6e7cb2d438985093fb9b1aed80219ffff03179d8b1563fa8a5680d0b6c97e173fccb267e66dbc63188f30b42f60d81d02bb035ecb9a9cd095d029e5005fc4c0eea8864c2877668942633a372947380d493255033fa36fc5639c13f1dc4a7a16fb09fd92db8fc4db3f457a2a473a4dbc4735e0de037a5d9023ac6e87ebdad673236f3566589d793577e789b042da2ed5cf83b6581203d20c2d9b5b87923d7fdcf6e244a679a7379272bdab59f43cd173538102253d3a033db8efc8c221fe1f24bca291900adef5d9b32346261bfa1769eea16da75d28b0032640b075d2b6c362828fbf9559d61151e84d2e05dde525cba9cdc7f9aede24ba030011f9dd04d04658217da6f1caf48df20559f5e0b64978a309bd66c62fd258f303ab3ad083e63a3a4af637e0b2f300120071339a46a093fb2af292338e0fccedc003a87f12207f8030b45d1c78b17d2d9a449ee2cc54d1189794ac8797ebdce8a2b50337d5f260ca675994a7f39492b6a62c9ee685e2c7c2dee1f326657bed34d039e2032ad03a5db7b1aa15164a1044c75059f51d79f8b83b7a591e9a8e604e9257d6ff037b952ad125c30efeb0990ec3e9bc65ae6f0eb422490d45d5fc4092d36a967ded03ee5641774d1aa19c0945643c8e828c1063c658cb214e71bdb0d5336d65774d13032fc920942582fe8200b5228d4968f835799c5824659abb316bbb9ea91a066cc003609bfd3984a82f25c2f4faac561f101a4a46ba4b8500e1b5f280c5c2281abc55035fbb8896e284b6215e15e66d7e8ad6d54f4210a7deb2a8a8ac62be969cb017570321b42fc3e00d3c6a7829e0bf6b7016347ee78ec9d7369f7049d4f1d8251c06810303b303ec83ef8a1cbb53c3f9f74c73fbf62405b70a9149b01cb15ecf6a9045f1038509ff8dac14e41b233e39fc3c0736657e20183c42f7744891c06abd8f0652190372276fe284394b92af71a521c89d95949582153046e0be2717fe63d1b27bb8f903be0091b83cce2b6d8d0bc358025ca6a0e07f426205e662490786da5a95ec32cc03d93234ed3a82b09d3cbafa02562b56faa216e786701ebcc09cbdf959bd8a467403b54f1b4131fc4f441424069d2e0cca3321755b5ad1faea1eec21f277541f3ab2034a5d87d6c9ffe713516b77770d4073b02ad7f206f5c426ff93fc9690c54968e603c70a8010104e670988536f7e591355ee3bbb074cd33e5edef03c2c59fd353bdc039580312c4e71785e78736943d44242b373ecacb33ee03677dfeb1bc4fd63006903dee5e17a9d94b4adec65d4c445f8603acfbd99ad4aa9ae8eddfc86144abe979203c484df6afe59c7ea1d3377964d84f771355b1d3301472a1b97044d479f620fb005581e03bd37fd152ca264eb62ca42c9762fe745c21220c74b28a045255cf6d5b00c014709faa779c79000045955b760806040526004361061018f5760003560e01c80638803dbee116100d6578063c45a01551161007f578063e8e3370011610059578063e8e3370014610c71578063f305d71914610cfe578063fb3bdb4114610d51576101d5565b8063c45a015514610b25578063d06ca61f14610b3a578063ded9382a14610bf1576101d5565b8063af2979eb116100b0578063af2979eb146109c8578063b6f9de9514610a28578063baa2abde14610abb576101d5565b80638803dbee146108af578063ad5c464814610954578063ad615dec14610992576101d5565b80634a25d94a11610138578063791ac94711610112578063791ac947146107415780637ff36ab5146107e657806385f8c25914610879576101d5565b80634a25d94a146105775780635b0d59841461061c5780635c11d7951461069c576101d5565b80631f00ca74116101695780631f00ca74146103905780632195995c1461044757806338ed1739146104d2576101d5565b806302751cec146101da578063054d50d41461025357806318cbafe51461029b576101d5565b366101d5573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216146101d357fe5b005b600080fd5b3480156101e657600080fd5b5061023a600480360360c08110156101fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610de4565b6040805192835260208301919091528051918290030190f35b34801561025f57600080fd5b506102896004803603606081101561027657600080fd5b5080359060208101359060400135610f37565b60408051918252519081900360200190f35b3480156102a757600080fd5b50610340600480360360a08110156102be57600080fd5b8135916020810135918101906060810160408201356401000000008111156102e557600080fd5b8201836020820111156102f757600080fd5b8035906020019184602083028401116401000000008311171561031957600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f4c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561037c578181015183820152602001610364565b505050509050019250505060405180910390f35b34801561039c57600080fd5b50610340600480360360408110156103b357600080fd5b813591908101906040810160208201356401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184602083028401116401000000008311171561040957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611364945050505050565b34801561045357600080fd5b5061023a600480360361016081101561046b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff610100820135169061012081013590610140013561139a565b3480156104de57600080fd5b50610340600480360360a08110156104f557600080fd5b81359160208101359181019060608101604082013564010000000081111561051c57600080fd5b82018360208201111561052e57600080fd5b8035906020019184602083028401116401000000008311171561055057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356114d8565b34801561058357600080fd5b50610340600480360360a081101561059a57600080fd5b8135916020810135918101906060810160408201356401000000008111156105c157600080fd5b8201836020820111156105d357600080fd5b803590602001918460208302840111640100000000831117156105f557600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611669565b34801561062857600080fd5b50610289600480360361014081101561064057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356118ac565b3480156106a857600080fd5b506101d3600480360360a08110156106bf57600080fd5b8135916020810135918101906060810160408201356401000000008111156106e657600080fd5b8201836020820111156106f857600080fd5b8035906020019184602083028401116401000000008311171561071a57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356119fe565b34801561074d57600080fd5b506101d3600480360360a081101561076457600080fd5b81359160208101359181019060608101604082013564010000000081111561078b57600080fd5b82018360208201111561079d57600080fd5b803590602001918460208302840111640100000000831117156107bf57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611d97565b610340600480360360808110156107fc57600080fd5b8135919081019060408101602082013564010000000081111561081e57600080fd5b82018360208201111561083057600080fd5b8035906020019184602083028401116401000000008311171561085257600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612105565b34801561088557600080fd5b506102896004803603606081101561089c57600080fd5b5080359060208101359060400135612525565b3480156108bb57600080fd5b50610340600480360360a08110156108d257600080fd5b8135916020810135918101906060810160408201356401000000008111156108f957600080fd5b82018360208201111561090b57600080fd5b8035906020019184602083028401116401000000008311171561092d57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612532565b34801561096057600080fd5b50610969612671565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561099e57600080fd5b50610289600480360360608110156109b557600080fd5b5080359060208101359060400135612695565b3480156109d457600080fd5b50610289600480360360c08110156109eb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356126a2565b6101d360048036036080811015610a3e57600080fd5b81359190810190604081016020820135640100000000811115610a6057600080fd5b820183602082011115610a7257600080fd5b80359060200191846020830284011164010000000083111715610a9457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612882565b348015610ac757600080fd5b5061023a600480360360e0811015610ade57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612d65565b348015610b3157600080fd5b5061096961306f565b348015610b4657600080fd5b5061034060048036036040811015610b5d57600080fd5b81359190810190604081016020820135640100000000811115610b7f57600080fd5b820183602082011115610b9157600080fd5b80359060200191846020830284011164010000000083111715610bb357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613093945050505050565b348015610bfd57600080fd5b5061023a6004803603610140811015610c1557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356130c0565b348015610c7d57600080fd5b50610ce06004803603610100811015610c9557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135613218565b60408051938452602084019290925282820152519081900360600190f35b610ce0600480360360c0811015610d1457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356133a7565b61034060048036036080811015610d6757600080fd5b81359190810190604081016020820135640100000000811115610d8957600080fd5b820183602082011115610d9b57600080fd5b80359060200191846020830284011164010000000083111715610dbd57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356136d3565b6000808242811015610e5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b610e86897f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28a8a8a308a612d65565b9093509150610e96898685613b22565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610f0957600080fd5b505af1158015610f1d573d6000803e3d6000fd5b50505050610f2b8583613cff565b50965096945050505050565b6000610f44848484613e3c565b949350505050565b60608142811015610fbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061102357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6111207f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f6092505050565b9150868260018451038151811061113357fe5b60200260200101511015611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b611257868660008181106111a257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff163361123d7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8a8a60008181106111f157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061121b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166140c6565b8560008151811061124a57fe5b60200260200101516141b1565b61129682878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614381915050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836001855103815181106112e257fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561132057600080fd5b505af1158015611334573d6000803e3d6000fd5b50505050611359848360018551038151811061134c57fe5b6020026020010151613cff565b509695505050505050565b60606113917f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8484614608565b90505b92915050565b60008060006113ca7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8f8f6140c6565b90506000876113d9578c6113fb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050506114be8f8f8f8f8f8f8f612d65565b809450819550505050509b509b9950505050505050505050565b6060814281101561154a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6115a87f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f6092505050565b915086826001845103815181106115bb57fe5b6020026020010151101561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b61162a868660008181106111a257fe5b61135982878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250614381915050565b606081428110156116db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b61183d7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061460892505050565b9150868260008151811061184d57fe5b60200260200101511115611192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154986027913960400191505060405180910390fd5b6000806118fa7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8d7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26140c6565b9050600086611909578b61192b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c48101879052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156119c757600080fd5b505af11580156119db573d6000803e3d6000fd5b505050506119ed8d8d8d8d8d8d6126a2565b9d9c50505050505050505050505050565b8042811015611a6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b611afd85856000818110611a7e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633611af77f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89896000818110611acd57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061121b57fe5b8a6141b1565b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611b2d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bc657600080fd5b505afa158015611bda573d6000803e3d6000fd5b505050506040513d6020811015611bf057600080fd5b50516040805160208881028281018201909352888252929350611c32929091899189918291850190849080828437600092019190915250889250614796915050565b86611d368288887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611c6557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b505afa158015611d12573d6000803e3d6000fd5b505050506040513d6020811015611d2857600080fd5b50519063ffffffff614b2916565b1015611d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b5050505050505050565b8042811015611e0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21685857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611e6c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b611f1b85856000818110611a7e57fe5b611f59858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614796915050565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216916370a0823191602480820192602092909190829003018186803b158015611fe957600080fd5b505afa158015611ffd573d6000803e3d6000fd5b505050506040513d602081101561201357600080fd5b5051905086811015612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156120e357600080fd5b505af11580156120f7573d6000803e3d6000fd5b50505050611d8d8482613cff565b6060814281101561217757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16868660008181106121bb57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461225a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6122b87f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f34888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f6092505050565b915086826001845103815181106122cb57fe5b6020026020010151101561232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061237357fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123a657600080fd5b505af11580156123ba573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61242c7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89896000818110611acd57fe5b8460008151811061243957fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124aa57600080fd5b505af11580156124be573d6000803e3d6000fd5b505050506040513d60208110156124d457600080fd5b50516124dc57fe5b61251b82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250614381915050565b5095945050505050565b6000610f44848484614b9b565b606081428110156125a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6126027f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061460892505050565b9150868260008151811061261257fe5b6020026020010151111561161a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154986027913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6000610f44848484614cbf565b6000814281101561271457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b612743887f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28989893089612d65565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519194506127ed92508a91879173ffffffffffffffffffffffffffffffffffffffff8416916370a0823191602480820192602092909190829003018186803b1580156127bc57600080fd5b505afa1580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b5051613b22565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b505050506113598483613cff565b80428110156128f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168585600081811061293657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b60003490507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a4257600080fd5b505af1158015612a56573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612ac87f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89896000818110611acd57fe5b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b3257600080fd5b505af1158015612b46573d6000803e3d6000fd5b505050506040513d6020811015612b5c57600080fd5b5051612b6457fe5b600086867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612b9457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c2d57600080fd5b505afa158015612c41573d6000803e3d6000fd5b505050506040513d6020811015612c5757600080fd5b50516040805160208981028281018201909352898252929350612c999290918a918a918291850190849080828437600092019190915250899250614796915050565b87611d368289897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612ccc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b6000808242811015612dd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6000612e057f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8c8c6140c6565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015612e8657600080fd5b505af1158015612e9a573d6000803e3d6000fd5b505050506040513d6020811015612eb057600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015612f2357600080fd5b505af1158015612f37573d6000803e3d6000fd5b505050506040513d6040811015612f4d57600080fd5b50805160209091015190925090506000612f678e8e614d9f565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612fa4578183612fa7565b82825b90975095508a871015613005576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154bf6026913960400191505060405180910390fd5b8986101561305e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154256026913960400191505060405180910390fd5b505050505097509795505050505050565b7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b60606113917f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8484613f60565b60008060006131107f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8e7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26140c6565b905060008761311f578c613141565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156131dd57600080fd5b505af11580156131f1573d6000803e3d6000fd5b505050506132038e8e8e8e8e8e610de4565b909f909e509c50505050505050505050505050565b6000806000834281101561328d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61329b8c8c8c8c8c8c614ef2565b909450925060006132cd7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8e8e6140c6565b90506132db8d3383886141b1565b6132e78c3383876141b1565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561336657600080fd5b505af115801561337a573d6000803e3d6000fd5b505050506040513d602081101561339057600080fd5b5051949d939c50939a509198505050505050505050565b6000806000834281101561341c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61344a8a7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28b348c8c614ef2565b9094509250600061349c7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8c7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26140c6565b90506134aa8b3383886141b1565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561351257600080fd5b505af1158015613526573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156135d257600080fd5b505af11580156135e6573d6000803e3d6000fd5b505050506040513d60208110156135fc57600080fd5b505161360457fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561368357600080fd5b505af1158015613697573d6000803e3d6000fd5b505050506040513d60208110156136ad57600080fd5b50519250348410156136c5576136c533853403613cff565b505096509650969350505050565b6060814281101561374557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168686600081811061378957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461382857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6138867f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061460892505050565b9150348260008151811061389657fe5b602002602001015111156138f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154986027913960400191505060405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061393e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561397157600080fd5b505af1158015613985573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6139f77f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f89896000818110611acd57fe5b84600081518110613a0457fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613a7557600080fd5b505af1158015613a89573d6000803e3d6000fd5b505050506040513d6020811015613a9f57600080fd5b5051613aa757fe5b613ae682878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250614381915050565b81600081518110613af357fe5b602002602001015134111561251b5761251b3383600081518110613b1357fe5b60200260200101513403613cff565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310613bf857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613bbb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c5a576040519150601f19603f3d011682016040523d82523d6000602084013e613c5f565b606091505b5091509150818015613c8d575080511580613c8d5750808060200190516020811015613c8a57600080fd5b50515b613cf857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310613d7657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613d39565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613dd8576040519150601f19603f3d011682016040523d82523d6000602084013e613ddd565b606091505b5050905080613e37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806154e56023913960400191505060405180910390fd5b505050565b6000808411613e96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615557602b913960400191505060405180910390fd5b600083118015613ea65750600082115b613efb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061544b6028913960400191505060405180910390fd5b6000613f0f856103e563ffffffff6151f316565b90506000613f23828563ffffffff6151f316565b90506000613f4983613f3d886103e863ffffffff6151f316565b9063ffffffff61527916565b9050808281613f5457fe5b04979650505050505050565b6060600282511015613fd357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015613feb57600080fd5b50604051908082528060200260200182016040528015614015578160200160208202803683370190505b509050828160008151811061402657fe5b60200260200101818152505060005b60018351038110156140be576000806140788786858151811061405457fe5b602002602001015187866001018151811061406b57fe5b60200260200101516152eb565b9150915061409a84848151811061408b57fe5b60200260200101518383613e3c565b8484600101815181106140a957fe5b60209081029190910101525050600101614035565b509392505050565b60008060006140d58585614d9f565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061428f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101614252565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146142f1576040519150601f19603f3d011682016040523d82523d6000602084013e6142f6565b606091505b5091509150818015614324575080511580614324575080806020019051602081101561432157600080fd5b50515b614379576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806155336024913960400191505060405180910390fd5b505050505050565b60005b60018351038110156146025760008084838151811061439f57fe5b60200260200101518584600101815181106143b657fe5b60200260200101519150915060006143ce8383614d9f565b50905060008785600101815181106143e257fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461442a5782600061442e565b6000835b91509150600060028a510388106144455788614486565b6144867f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f878c8b6002018151811061447957fe5b60200260200101516140c6565b90506144b37f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f88886140c6565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156144fd576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614588578181015183820152602001614570565b50505050905090810190601f1680156145b55780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156145d757600080fd5b505af11580156145eb573d6000803e3d6000fd5b505060019099019850614384975050505050505050565b50505050565b606060028251101561467b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561469357600080fd5b506040519080825280602002602001820160405280156146bd578160200160208202803683370190505b50905082816001835103815181106146d157fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b80156140be576000806147318786600186038151811061471d57fe5b602002602001015187868151811061406b57fe5b9150915061475384848151811061474457fe5b60200260200101518383614b9b565b84600185038151811061476257fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01614701565b60005b6001835103811015613e37576000808483815181106147b457fe5b60200260200101518584600101815181106147cb57fe5b60200260200101519150915060006147e38383614d9f565b50905060006148137f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f85856140c6565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561486157600080fd5b505afa158015614875573d6000803e3d6000fd5b505050506040513d606081101561488b57600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905060008073ffffffffffffffffffffffffffffffffffffffff8a8116908916146148d55782846148d8565b83835b9150915061495d828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b955061496a868383613e3c565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146149ae578260006149b2565b6000835b91509150600060028c51038a106149c9578a6149fd565b6149fd7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f898e8d6002018151811061447957fe5b60408051600080825260208201928390527f022c0d9f000000000000000000000000000000000000000000000000000000008352602482018781526044830187905273ffffffffffffffffffffffffffffffffffffffff8086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015614aad578181015183820152602001614a95565b50505050905090810190601f168015614ada5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015614afc57600080fd5b505af1158015614b10573d6000803e3d6000fd5b50506001909b019a506147999950505050505050505050565b8082038281111561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000808411614bf5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806153d4602c913960400191505060405180910390fd5b600083118015614c055750600082115b614c5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061544b6028913960400191505060405180910390fd5b6000614c7e6103e8614c72868863ffffffff6151f316565b9063ffffffff6151f316565b90506000614c986103e5614c72868963ffffffff614b2916565b9050614cb56001828481614ca857fe5b049063ffffffff61527916565b9695505050505050565b6000808411614d19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154736025913960400191505060405180910390fd5b600083118015614d295750600082115b614d7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061544b6028913960400191505060405180910390fd5b82614d8f858463ffffffff6151f316565b81614d9657fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614e27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154006025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610614e61578284614e64565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216614eeb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f9092169163e6a4390591604480820192602092909190829003018186803b158015614f9257600080fd5b505afa158015614fa6573d6000803e3d6000fd5b505050506040513d6020811015614fbc57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614156150a257604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f9092169163c9c65396916044808201926020929091908290030181600087803b15801561507557600080fd5b505af1158015615089573d6000803e3d6000fd5b505050506040513d602081101561509f57600080fd5b50505b6000806150d07f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f8b8b6152eb565b915091508160001480156150e2575080155b156150f2578793508692506151e6565b60006150ff898484614cbf565b905087811161516c5785811015615161576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154256026913960400191505060405180910390fd5b8894509250826151e4565b6000615179898486614cbf565b90508981111561518557fe5b878110156151de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154bf6026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b600081158061520e5750508082028282828161520b57fe5b04145b61139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b60008060006152fa8585614d9f565b50905060008061530b8888886140c6565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561535057600080fd5b505afa158015615364573d6000803e3d6000fd5b505050506040513d606081101561537a57600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146153c15780826153c4565b81815b9099909850965050505050505056fe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a26469706673582212206dd6e03c4b2c0a8e55214926227ae9e2d6f9fec2ce74a6446d615afa355c84f364736f6c634300060600330605581d02a7e8b8234a7992da2173c0d9eb404853fe85a65a0881149522e12b2a0f014758d15e176280001955b705581d024ace4a9cf9849185c4b4cd9d2d43e5360f36d915f743ac51fcc9c7f80c02450135f1b4000219042005581e03dc8fc5260164a847b23d38a881b05ec9e601d397d1188021168d7c0da00c024701923a550aa0c803fe15c6a27562a27ae904cb1b828dd828705d1507183fdaa98bcdd0bb1025ee5305581e03f23857a9fa3d0da9ae7310c160afcf49158a232640406bae60c29650500c01472296500eeb160005581e037f46e0bb2789267d0a30b8d43a6d3e2a2e289f0fcb20ea1bc8ee7216a00c024744d7c56d940be603da1a91bd88ab16e57730db064e35880953edf7a3e2f40ec22e887166b95f4b18032be8a5093959bbacdaa2d02b061939a3a07681b5a5351eef8de8b286f8df80ba0399cc8746fb4acef4aa25ad53d2d12e8af29520040e86729cf0fe867839a233a005581e031d2088553eaa5823aa330be942a76137ea4d7416fda40c5c72917239f00c0147028114c7f49fc0034277b3bbc296a60f66b308aceaf2f9ad4e766e1984e39f2bb1256df0c51448a70219cbde03821c17b99606f4ef0404c1e66f9b5847282857f6d43c1d1e2282e3e20358c1a203db467c50e815cada5a92eff2a2eacd9ea814c7a9ef7e9360b114df767836e0da03454a7715e43a8f5665f3175574c0f374cd68bdd08d8d39beda757efe065a1d01031b6cddd0884a393f6d5bcfee003d6dc52eca04e3674b628c1218c9df32da11c00319e2bf440d2b4f680aaafa688da47d7a6bb06838e97a74e1417448325e4dc2160353551a267211a18f437178d0c23472dbe9821cf53390b4846f5824c4479362ee03bd0a711bff7996b670c2882e6431d8feede57819c03c580eaa092d1a8f5351940380cbe31fb0e2a43ba18c77d189091732df11cdeae4b9271100d3c69cdaf18eb40219ffff03b903cc550db702ad3a61ba3345dc7be08f65f036ca37eb75de4257af49f2a5b50310081833d47de439dc5ca64722ddbe5b89d19154c69209fc433bc3f9be784edf0219ffff03574964b9c2c92f0c167e483ad13048a696603f618fe6161ff49526562d063c0b0398d864f93383e440938855e216914a7657f791096683dc5e1a95247526b21b7c030aa0afd682a694188ba1e959debc39df4164c06fb62c972b1efc58a37e5e34f30355696aeaa907d644a62566418115cff57fdbe7ea48ac28e27f4869a444b1dbe7036175a74384427131cd1f76af4f6acbaf7394eaf522902cc13990da252fce6c8c0309968c0b60d1a2dbc7fb50a199f6b0429722075e6b0899f82013e64c4990cf780367ea5b99fc8b8a0bc5441573d9f1e554e9ca7c73adbd4a0da858b344f296e887039bb8ef7a73bff7718ddfeec785fb40a054c0f139e1b4c27f9e005be644e7ae2503bb48e7ccccf38660763a13aee09fb1204a1d92f7eb889acd039aa2c639980e49031d0bc64efa9a6be7279538de3feb0257ccc453be6dc0bec1c82b6d02a71be63f03d1411b2200827453b7ecda10c407e4c2c75923be1eff4b5e2228c1a86027edbd0219ffff030c1697859a1f4f97a4a721f5db02c8071bb9db7ad42cfde08cf094475c85612b03497e80dbb9deb11a709e2012232d0d7be9790369fc329796a5a59b1884918c68039f3db4a2d6621cda2c5d7e47febac283f043f4c0050ce4de6e89c13e4f5a5b54036f6ad3356f4cabefd72b78e447397678dcac34b0372490dc9221ff9e4a99b8540302984fb9591a0315eab425106659d397b387d8b60cd55acb8c12d79c56aa095e03f4b9f2b1fd6f197d24401fc0cc88c43c80852e52262958dc28dd6baf71c5d5b60344316f26f6f472f93d4e822166523fa45b86896bdd678adebbce04734a9d458703c786754dfe02834ef85e4e92c4e1d8d8544c46577c2f635542f68713d591757e03f7fe46ee0cc93b9bbc66dafc8b1f953c5ce3b9ad93da258f962aa09cdc2c500b03dae4f6257c9870f274c2266fc3378b1335876eaf8c33d10a25a77918ba5e454b0219ffff03d56fdb0840a81c81618896f260607fd182de84071cf2c9c8a2e735b96020bff6031da5779b3491195e5b9bb6e453b2ae41e6335528aecbd9b2fe471334208aec260399b64342fb9a5620bfe08d6489b86a459469230ea6080730e64eb3fcad2381f60367f82a624ee855d72b7b5872c86d5d5bae35536e35f822fa3c77e72077d54e8903fd50202e175f774fb9d80e165c751df97702a69fbbcf8492007960e8e7cd83d003a3c387ed6e3b746e8a9a9f2cebc1de1745be32be6672fc7c633968a4cc848afc03c11c527aa48f8261cadb4cb77bd7decc6ec5b645073f5311f8a71489be3ded8703506b75f394ee75ea319cb6ce7833f057a59f044f02f3fe041ca6bac480f1bae903e694a6aa98d9326a2f6b852e10d16d017ebe1b4cd86eac0e32f5ededfa0ba6410314c24cee32e96a03e014c92582b9b06b1fdf7965d25d6991ba95c3cafb5d28cd0322628c54fe449f70317d8c59a87ccc316d72fbda30d91450e1965c0d53a4d39f031ea382ccac791c7ed22c500eabe92324592932054ebf167c7a68a9fa7e4c241303883f75505a8bf0feaba512d0273c135fae4c2296a998431c18806a701ca74c7003034536bafb25eb4772c1a534a41e122dac9db06e10c5b344064a858331dad01c037da1892aa2eddb9456e97acec022a46a4b9b25345e8ec3ea9adf4b57e0795d99036d6213a34cf76219b071fb27b4b8a223f354f9bf61afe9a59eb581d35fbf56b9035c35211ce01a56f4a4df3acc2d8352f400caaa2b8add891e0ab14b1dbffcb33a0367601633f60d748bc186c6a51094178512173ae94bdf88c57f1a2068c8ef41c403c23385e32ba4b204bb7a44de616b087c2fa9b145556a05a1cac7a53905a1458f03718c8a3151f1d369163217db26a6bf96c8554bfc20a42de18244dd4aa78d700e03348e158e9e1d18d0c341b7a84f07b9c569d32e557d28cadb8d493eff1a35daf303bcee5953df5b754319c5e5b9e7420a5ddfa0bdc966a818d96a76c72adac85ff2036b9c76d773a53fe0f704f73faa589e4c9e0f594082439a6aa92e87c3d7f5bf5f032c3fafda76b41c6cd2cd8698d986b6eb1e9cbbd1d60ae2132ccdfbf78f948364032d2517993d3478f3fd26bcaaedf64ac715a758ab75cccc3d743af3224a33e1b503a87c4e7c0a3a06211fca303ebd71048a6a0583ff27458f26783e8eb408d3070d03c79a87da9666b2ac91a5aff7f5c2a1ef6e2d5581942929201acc44e50fbfd13403a2cc83b1c270a01e2ba337c6986d590af10e1b8e5fb7a83ef89b78234ec4b2ae0333eec8a9f11f30c552fe67c43769813a16b6ce89171bba2273886fcbb6b1e43003a535da2c835bc890aa629151771ee140e34ba540272882365130815f6215f04205581e03419307bbc38dafaec9d5a761fc2f6c63052591bc312213f6e73ba3d4a00c181c4701341065474000031d93f60f105899172f7255c030301c3af4564edd4a48577dbdc448aec7ddb0ac0605581e033e3d3d31cd7e38553f13806a7892506a5e8227c3ca736cde5fe6f04a4007011bffffffffffffffff05581e035ac5be7033a1b22852896cedd2815b74dc857fc3347364818d356fee700c024734a9467026ad8003feeba8c0dc8c17c9e5b8ef65192d9895aa6f9cea2784f0c91da8ffef94e861b701410a038438e76d30c9789d7bd66d5b07f0025d57003dd9561e5d04b18888148450017405581e033d9438c9a7425c7bf95be9c6d056c4849318b3fb13a4020516c244a60004010323481efecfc7ea5580455535ac2aba13cebe77f80ced15bc908b7e870a13378105581d0200861828887e89d9886d049a802c915a7dd4bde40f01e1b2677ab5140c1901d04819d059fa26efcc5205581d028a1edf8919783af87cb5df1282e89f7b084fca90eb8bf743647eabce0c01470433d6a6128cf70219022005581e03591c0c07edb44b3526d4d5e83a87429b7e768410120ed4a5456fbfa6f00401021973cf03157473ac6d46081b1e902a660187f2837c417be9bba14455562c146ac5c0512403528cfd81a298da6f87441c44503f8854d9f1229add613b0e003d3ee679c032250219ffff031e7dad53c0835eb2f5fe2025f4854cd284851c812681835191bf08be0597a867034d526cb6e4ab3f77102fbcb0a268edd8563573d417ba6257a31b22c413e5e8260348f9f87edd58a4bc7c4bccbb1ace39acf93e487a6e1b9f09c120cf5ec9c7b82d030fc42acb6988c001cbc747fb060ffa2315e2a7e9f3858aacccc6045196670c6d038ede8ca57d89a0a97313c0815cb3241b7efe2bef8d7192f8976d0a0249518c0d032997bca7fa388de1fc5093059489071c5b1a28f1d45386a533b4fef71c7e4d4d0331c0b59f27ad21f521bf37738b4f6cb7e505aa79294696871680d98ad7a7cd8d03e999f11a6f5a89a542bec94951106e13561d791c54f714417c57ed04cf15c220030d725e38a69fe8015dde8be5f41bd45bad1da682ed126c6c2fca3d1654c076500330929c4223b2bf5852f3c69108b61e594dd2155e5993f260ff092724986ef40403ddad99eb8da0d6e498a11312d7539a3a36ddef8ea4da8f1dd83902d2f98a4d8703c393af2ceb55007ff36919cfd1adc9c792521940399b3cdff94c80a3a49d032303f061a7fee8cda1bada88835ea5a2b5f63b57c862fc31524d578da0d9f72466020219ffff03e950be9bf95656c93c6ae66ab70ee0c598a851d713b58ddaf9a37e34c60d14b503539afecaae32ec02c7df84f22d916f1d3a8f956a5bb374d41825c30214032425031ab3e13120968b7c89ec3f8dbd92117a2b9c7391645a3a1e25e9288ff7f464f20393da1487b94e19943ff6796aa3e9a1ae02e824297080bca3944fa2e6d7c7ca36039f1b09aa41c736693ef8a9f90d85cd15c9b651ca086781b534d4e04e9d2950e803229153fc868c8249c724b09f003e12043cb6c2d72b509cdbfe3c4b571ab8d57003a5336fc45d92838893ac2873a0b8432b69c360e04e50851ff7686ce353c7c84103259a41555d11c7e98e5eb5c59482f6c8e703a999adebd1b78f01d143b074f7ab031b88251269605bca25915c2f0cfe0ff60ac06609b9ad04a261ebb132f44a6f2b03b1ca108b6a1b156938c59e8d7f7e08037ac060a54045bca05b9b1786c60e477903e03318c169afd3b31fcaf79907b35760a71114e70388d5b451b267dbdec5cfd6038c41dcd5ee1c89bbe4ad2c4bf73361bf0f620f8f3a2c0244a5fba44c50eee65b0397e258045b6a8c10cea2b5e1e77463ed432c801aaa3e2b8b59f9ce60c37a4a33032a244bd691c84ca1237008e7039c6a388d80cb0dd59c6b8b172a4be206b6a0940219ffff036cf790a1cc2af37b416c6ced67e1b54bcfeb1a8358a10ed1ddb917a966c448c7036737d67f986616f7045e96a75fe283f5783109b962920c3fdd7698e65e661f020379906848b81a9b245590a1d6d4930cee0acfdc6a8f5825d6c39c32029f765ded03530cd52fab10018d5873fe6d6b24eb327e3c5f2c583ec52f9ae179aa69d8e7ad0328fde01e3d9c0a81bbb45c67013d9deae840204b0c90de4fa7052d94b62ffca30219ffff0392828d0673719a493348d3f7ac791e8653b99e6e031901d07ae0c57c1ac8d77603960708659d4b82694dfe60de7152b336e6572190548bd386c0b928fff1fe4bcc03d3bd095b5713f6e6c15bd53d3c4494cca0a204b3c413cd00e7b679e82e580ee2036113bcd717855633f80d58c72a8bc2ffe9cd03701279d3271bde31c3194e98c903f26e130f1e43f4cad27ed07ca29f6858979f910da41d87e7992bb0020a3d5a49032593d5f99161e1d3bb3aea12b8194d6f317fad4576418bd30df04c5cd3bc7d91036356c8d669a925ad3a0cc47d990a6f7c1f305d4ffa0b1e51a8ad7f6fa52b272803fff56f4887fbdc44e04e0048f3208e3f59835171e6881f513c1f76367ce5149103fa753ef40632f08297aa7b2531eb58b131919ce804459515b410296dd9dccb0f03071795b6907aecb9192c1cd1cbdc5a38513a4e99e195491598658ace0c96c54a0394aab02b7c592620eb85d1c78770192dba63070b8edfc7cb9231e597f66f6e62035f131f2046a50e16124ee7a82e8bd400b780da480924e680d88589a47ba5995303746c60068bceb5e847b8d807399debf9e20ca096dd7616d83b6c9c76f7df624203196cdd63eb142a5e4a30941888ac1bfd4aa55f338e4e7fcae71c3b157dae6af303a03240d602e94981102988a51ac0ad251d33e4eb64a118f2f4d2c694de7aa00f035c0598d574729d2d5ff70fb4df61f6cfc873139bf72155cbd90178302a00547f033c70d85319fac84a8ec0d1c665a785afd4bd13a1f1ecde4b8081f58171bb8d2c03c34ef342310f5630cdbe147fa1b48b48961fe134927a80f7c7e71e53156658e30364491870a4b733deceade048efca43e5267a3c4c296f4bc31d4d68a7c8b1659803f4af757870e6d965532386fe3bed87fef39c3ab113271733efac9a2729bbb40e035daadbbc20f1348650139be122db61e3e51785934a77b201a94ac930d68ad16603ec75c771a0e9f56ac875d8dd2f4838dd7251644e7431f9725e563992ca201a0e034c09ac2a11815e3fb42072b4508b313d3a9c5eab342833bbc9ba1848893a0fa1038388c5291c1969ccf1d6ff774ab9fec7286ec83b989a2e5d63d57e123c585d8403590cc9f8da2fead06f74d6d1bcd43b7a07ecfedbcf0d2a30124f575da1a586ed036018ecfb7ab41f5680184a29cf60f4107b11ffd7b5a7b99b7656c2dcb43c265903422610b6b652ab5dad44612a758aa7cd7b1109f8245293a66cb647f1143793380327817f61bd8fbae8cc0c6b912e9ccdefc11d1826a6180ee24271f3b712f44df003e3bfcdcd9f142fb6b051af72650b128b0b097d5a9bb6e61da36126933191296905581e036d484e86de5e03dcba47f4dc308188c37142acb756dab33ba0b59af050040a05581e03cb1c3c5d37502d0aa13d62b6424910ab952978d0b11fec6ccc3004c7e0040103d10c50a8f35a113076846ce372a64d64408d9bbc8a21f8c5de5b93a1ec720cb003eab6d090ba3fbe9d3b561c6f50e146a8465834dcc21748f143244185f48fc56003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e031979e8fff074daaad04439623f1b536865bdfaac7f39c16055f50143c007011bffffffffffffffff03d8be73740597e0432b0d60ad70443a41237ea3e32666f8b7a16b7e242f10dee205581e0317bbf8ba657e39871ab5852bb5d8ace9de7fe3ac599410ee2d50d0a040040104590795608060405234801561001057600080fd5b50600436106100a95760003560e01c80638129fc1c116100715780638129fc1c1461014a5780638da5cb5b14610152578063be116c3b14610163578063cc5183a114610176578063ef921f8f14610189578063f2fde38b146101ac57600080fd5b80630a5ea466146100ae5780631c6eced5146100c357806323b11d8d146100f357806348a4f99314610106578063715018a614610142575b600080fd5b6100c16100bc366004610694565b6101bf565b005b6066546100d6906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100c1610101366004610672565b61029f565b610132610114366004610672565b6001600160a01b031660009081526065602052604090205460ff1690565b60405190151581526020016100ea565b6100c1610324565b6100c161035a565b6033546001600160a01b03166100d6565b6100c1610171366004610672565b61041b565b6100c1610184366004610672565b610496565b610132610197366004610672565b60656020526000908152604090205460ff1681565b6100c16101ba366004610672565b6104e2565b3360009081526065602052604090205460ff166102235760405162461bcd60e51b815260206004820152601f60248201527f417070726f766550726f78793a2041636365737320726573747269637465640060448201526064015b60405180910390fd5b60665460405163052f523360e11b81526001600160a01b038681166004830152858116602483015284811660448301526064820184905290911690630a5ea46690608401600060405180830381600087803b15801561028157600080fd5b505af1158015610295573d6000803e3d6000fd5b5050505050505050565b6033546001600160a01b031633146102c95760405162461bcd60e51b815260040161021a906106df565b6001600160a01b038116600081815260656020908152604091829020805460ff1916600117905590519182527f102d162d8690811b17006e6e7529e0e7ec6c7f357d1d74d3d7ceff35fd75ce0f91015b60405180910390a150565b6033546001600160a01b0316331461034e5760405162461bcd60e51b815260040161021a906106df565b6103586000610576565b565b600054610100900460ff166103755760005460ff1615610379565b303b155b6103dc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161021a565b600054610100900460ff161580156103fe576000805461ffff19166101011790555b6104066105c8565b8015610418576000805461ff00191690555b50565b6033546001600160a01b031633146104455760405162461bcd60e51b815260040161021a906106df565b6001600160a01b038116600081815260656020908152604091829020805460ff1916905590519182527fb24cbb8005827c88afc2851884e834493cae4ef0d1302bf939281696bd6ae7599101610319565b6033546001600160a01b031633146104c05760405162461bcd60e51b815260040161021a906106df565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461050c5760405162461bcd60e51b815260040161021a906106df565b6001600160a01b0381166105715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161021a565b610418815b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166105ef5760405162461bcd60e51b815260040161021a90610714565b6105f76105ff565b610358610626565b600054610100900460ff166103585760405162461bcd60e51b815260040161021a90610714565b600054610100900460ff1661064d5760405162461bcd60e51b815260040161021a90610714565b61035833610576565b80356001600160a01b038116811461066d57600080fd5b919050565b60006020828403121561068457600080fd5b61068d82610656565b9392505050565b600080600080608085870312156106aa57600080fd5b6106b385610656565b93506106c160208601610656565b92506106cf60408601610656565b9396929550929360600135925050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220cef0361026d143789d3a650723c24c713525ee432d868f9508fc5fe410faf15464736f6c6343000806003300582103164135aff1c548a9982cce22ebb8a532443ff7b3b6e3a417c5234f7974c9c46041010058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630410100582002501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943545440aa958dd87fc8305b97f2ba922cddca374bcd7f00582003e5af7989af34160053c740614b9ddb3802b3053daf83245a1bb265a8bcafe0410100582003b2639b17bef0515027b53aeaf7e6afe7d7e132e00c9abd9bbdd0f1be746cc0410102190420021901400058210345c78e6cce5cffdec145e73ecd97300c6fd3c324449c80fc66d92f4c6bfbad704101031dacac7dec919df3e6de7ac4aacd07fad0b2afb26a93a66596e35672d9e4ec20005821032a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a82054f2f0829018452a00435edb9cf6fd5158d2e92bf500582103fd6c600593df7046d05407c1e5011ba9e7b831a4becdfc4e22a3f9c313d38a00410100582103a012d18e3ab1ec8e0601d9139d23395f6626362a923c5a7c2e6839fe7f5f18c04101021945b605581e03f4984e1d911878a0ddd7f3a4c56797a98c41c9e65626fb4ae0becc9cf0070119079505581e0321f22ad905c506331d7f77323648114d3988003fbbf8da25af93037a700c0245236fd3b2000360f9c8120dca62dd1c723fbfad26b16f48c0799c1bea1205b363df3d8802aefd03e341c22cc41099ee3c0f967a9d5e94af7bc906464204782df8baa1259de0a4b80219b56f03fc39247169d68387fe8f2d369c8e98607eb364efc82e1033596d18048b7527d203e2a45e68759e1dd926792be7bf83dcd856d4dd670f974ae206ee6a4d5627dcfa032abc13497d9fc711f804b073617b9d21a594d4d5a4deb876e540b80929ea18a7031f94b1d7576f2582eb0191ef837530d6d1feebda22f870d136988de0a07412a403694aa123047e9ad525f9cdbcbb674b941e25772c1134d00eff1caaf9b1392fa503ca626fc94f8c99d78e79d3ea497f11cded8aa614a1ecbda86f398e8b4848e94103edd82fef0870913fd1d73b5e14b6950a8e0bcbf06097f4b3f5c435f45537135903e81381385db7a7dc530dea9fbc6c59e9d3f51ec69a9c654302d8379db9738a2d03c562a9d42afccb384670f065e0287167d809b1e537db57badc0ca1fd6e12a872031dcaf274ffbd3cc4c5096eb427a1bac8e71053d33979ee4983374ac5674c99c8031b25881fe51e16803e7fbfcbac12d3b25fdba9d8c3b5c7cd658da84c4276bbc303486a41219b6cbf03e815837fc2ce7bc2bb3f0c65e8cad72ef944cb95715b6fc60219ffff030122934164aa33fe3986851a13a079c54fdb7da9a63e1a4e4bf3e8ec74a8214a03bd0a2e4e1439ab57fd37c24cd33ce6837d5e254d54c7e88062da31c446417a3c0372c7689d8cedf4a68726f7c43c731eae4eba6a89495ea932a7ff09d94949f1f30383bb030500655869f5f7af9b038c9470630b34936e655e29360fae48fc12cc9f034f2c8ba7ae6bf8f4d46a780ca64de3c373922d2de3d4e32435dfd4bb84d930d3038fd0f00991c5137af676688421187712405e0fe4b657dfbd5d36c41658ec5f2b035c880e7a33da2550cfab9b40c9084cf944cf023e58221c8b0dd07fa12bec108b038d0f10a1ff8bad2c3289702a41d7c15ef442880ecc11ec84636181148cde56d303ecc19cc255272f7651cce2a83b6d9f7c3188b41145c0113c32c2a42d6dfd113a031090949f42ac5df0b0288574e3cb2ebc34d436e05466670a8c673161764590840219ffff033b5ea417612b816eb2e27559a01f474d4dcea6c4c0137512737e10ca86e576dd03fe78149b5346621279469911874510ecb529124dc198a00e8f6dab4ab98827b8030a642e46989b438621e525efd2b5c91a131099482c267894b34ac282678d2de70219ffff03cc7aa690272741c06dd2c0bacb46b20d8593c038e93027fd87aacf1dc60bd9a803e1eacde9ab111632be6d099fdd45c32e2e8d7e9b6bbbc5cfcae3d7800f1ed8a1032b1bdd7e77fa5eaf49c31e69d6297a85a27e0ba7f5f1653f2f4d77fa6feaf9b3030c1f30f385e6e7fadd3c080452bb1830f3fccb6d51943c7e3c39cbdaa3d900ad039b0a33545680a03e132c49b5199567c54ee3fe3d23664579b0a668e41f9f3701033cf2a552666499ad3ebb1ead95a3386987f48069de5c6114faa72b11a09b997b03eb0a5196b9046119dcace0cc0a671452b3710a48affbddbd9cc980df9e245913033a36ff92ceccefd9b136cf851f7dce6a8981528939559b0e6ada61f5a3806c040300f671dbc968f94cb7624a7b3f688337e4fdb64744c353dcd7f51955b9a8afde0344a6993e44ef397a4ac783cdd411cb5c00c55a3a5cd69490f455fe707b2d9b1f03933a1ae386027c9473af7e55dd034f21a22feeb8664f9aacda8cd5ab1b60d44c0354fcbb11430f75ee96323e498f115c41fc8c58f7ce10cc459252118b8362d8630219ffff0317f1d75f02289bedbd7e2ffa92e0039284fcaa96ddf79ecb0ebc6a28fe03eb5603b79d2e7990e83d1114544c8be30a90e55551b5c35105c36f8099ce20c78948660344143267c6955ea84b69da894b6ca6d4b17ddd34f4ba7ed9227f650cd971a5c103bc3a2d2a12d22ebbfc8a69081264ce6e61dcca60a707902192c588b70773df970392201e7e8bd2b81302184730c351bbe303f33a9bf27cf88555775ce043dd1a8803063cdd4d4c96dde3fc359f1c3b7e3f0761c696a8bad14aea7421313f02c0aee803031fa4d408dd95a87b9662357866e4efc80dfefb86d5aa95a3cca16c1ce405e0031279a24f16b3850bd07dad54754dd7d0953b4aec2cacb4825213514eb1c0f91303660a2dee8752fec8f33d533082034fd1749b9a15f76abb3f0220518dc751396903ae71c41f58f26059e0d50b96e4c9e4ec83e1d3ab71d862c1456edca4da109f0503bfbd33f5057c0832a2d28e2220088c52c8908954bf87e5f81391ec80faec1e8803ec86ff64b1bfe6f7775c4a8a00fb1b4e0a05f6c6db7d1804881c3b746e2861970385eac1ef69d9e4da96773c544852a23e718bae08410e6593475ecb17a490f89e03bb7e2f288fcdad39ea8e7c608daed81b75e920e60b5f74ccd4d7b4d6027a42d303df2beaaad1babcbaf35e8f59ab771434c9610487d2a36805b8b02e4e3523d2f803c5bf6a07fbcd88232a42444c59816b8672fa6a5916fd0493e7bfb2fd2ee28b1503b4274c7e527ede63c995a7d176506bf6b1fe929358d9d6aeea3b2fe5d72826cf03a1e2b7b4f627ce1ab92d777f4670f56bad48bd52ac39ff9eb9b309aeaefd2a7103f327f4c25afc8b4f7bd4ea1aef52ff8917ae1276c9e907b9f603e06d49a7afa003d5b607c3c91a574a6438fba7aa8e7a1a2a953e271ed0124f3c2f03c80fcf89540362f1ac5b1d016fbc7835544300b6244bde1d81326c511630202f877e2689a0f00381e4af3edeef59f2cf3f571a01f6129d634cc60f7f1a2a547ae426146bd401aa03168037d5caafe3a9373312d47bdc227c1a63aee2e150ad4d595c7c884ea042f403a57e9c016b928802d57b3e57db76ead5d41df4c3ab36321a3eb9d0ae76629ad20351f15bae1b2ee7dc7bb14e2b3908d42de86fe3a26089ec7bbaf502843d582ef7031068bb0daf30ab05600da7d3f48becf8aa5fb09531fda6121f578119f489decc0362ea0a8e481ea3c55adcf86f4ae5e7c4367eac629c3cd25f075d3eb62704c2d503981e91f1495425f666003a83d85b5afb13de3220618ea60decd6391e1166c8a103ac51e311939faccbdf933980b6bcbd99705caba9b4fe8059f726cf4888d49e17036635764f91aa7cf1eeb192af4b9457e95ffbd8eab658e87b880ac73e6a9e5c9a039087e809d48b949d64615b72346d874b97471298c26e2de2803017d9207d9f5c03da8cd7368a3e7fb6969cce2da56b0b68a87b970b68675b2c7c9371f762625baa03fa9e62c69d7b5ff3e8a02df2ef9f0f5f38e107edef839219d17179cf252287f203c585ed2e2c0bb6ca73cc8c2248b67bf0f1664b860180c5ec3cdddca9bb77db830382338bb913050382a0bc7737cd5046bffc95024c5add048b62594ab94facb47803d29ede6626dceb566c13b2b1e40f9acf41bd6e6cedeed721aa1e0e94b962723c03351997ef5bc48f6be427b910116d139c78c546919f03fe2eb7f2cb3b3cf05804039b9a8efdb4595f983b753d75024c79f3e31d9d112f0e9e95966cd548d19e4bc803a9702d2cde95a500901b6b6da8c3a9f50771690838daa6535beebb735451bacd03d5840232c74158a9a14d7b58b06c1550bd36b5151bca68561e6e0013f3b5a60a03135dc465a2a361eff7c35ca34dea3aaf1584077fe45cafbae059bc43c1d529490398149f677be4362234d2ea63618757368bd5ea43fd6b07de04d79b7a70318c7e03f345f29b2db301ee1067f97494dfd2efcdd41d67b0e4271eee9ff9afcab78875031a0821df0b458874072c96dc30a461eb5d92ea8225485cec4636953606da0d9003d81304c77a7d80401c94548ef364333dc271b14b103a6884651033eb0c2da97105581e038871115f4aa4f77693f19eb9849d4a71a2f6a0f7158b75a5da530f44c0040105581e03dd440cefb41d4fe7be24b1055857af4e4d7ce5284b20fe1eca0cfa0d000c014664459416240005581e03884211d834de3d11a80cd0aa7dcb1723d6569780353b2b8706c0a6c3900847025014bfbfb00005581e03fbef4edc995dfcdfe1c4be1ae4ed0a33fd4dd67096a5b898369ec92d00040105581d02cf56e7b9ab0f0368bcd6c9c91aed6b3d9d4ec1971397fe5c378ae83f0402045902e0608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063199f72601461003857806341c0e1b51461004d575b5f80fd5b61004b610046366004610262565b610055565b005b61004b6100e9565b33733328f7f4a1d1c57c35df56bbf0c9dcafca309c49146100d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f41646472657373206973206e6f742077686974656c697374656400000000000060448201526064015b60405180910390fd5b6100e3848484846101a3565b50505050565b337337aab97476ba8dc785476611006fd5dda4eed66b1461018c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60448201527f20746869732066756e6374696f6e00000000000000000000000000000000000060648201526084016100ce565b7337aab97476ba8dc785476611006fd5dda4eed66bff5b5f6323b872dd60e01b90505f60405182815285600482015284602482015283604482015260205f6064835f8b5af191505080156101fb573d80156101f25760015f5114601f3d111691506101f9565b5f873b1191505b505b80610232576040517ff405907100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461025d575f80fd5b919050565b5f805f8060808587031215610275575f80fd5b61027e8561023a565b935061028c6020860161023a565b925061029a6040860161023a565b939692955092936060013592505056fea2646970667358221220e1e0e24429d1e60a36a247a324ced67999a9e96a064cd7f127808cf22be29fcb64736f6c634300081700330605581d0255ac7c678e81a913bf853f5551a6bb0741a5c148c177e38869e6a92607011902e00219200805581e03ee7d86dc28e98a1a94067f177aee63e0e3603c812938bd0ca60a188df00c034504e3b2920002193a8b031f4ea396c544385575f7317f648795e8b46c58c88e63286b6d7cdb49c9c3c1a803db3f1a5be8536c50a796471cd3a45ceacd91a027c35246b92ef2ca358cd2deae0219ffff0367abee778da185894018330a9b993a0ced9075e19716f2a2c8fdd0faba4b4cea035d2f73bd1a95d8e49533b2724d3e36a4eb9fdb3d5175f4cec1c786199b939fab03387bd806613062fa40a63b9353022d151739c49a2b55e1686779f7fb302ec2c303891f81da2b6c93837993aad9b3232dfe4f93d64c9552c8bf3f1af806d93abcca0326f15b650c43cd2e0456972566f002d04b55f640f7e4867ed95aa9daffac4e2e0219ffff0380cdfb4f3c718d06c88d0f2895a92c79e5a88067189476166dffa0b73a4bd0a603f858f5432ee3ba1a47f0cacd00dc9bab165ededc3035f375b276b6a5ccfe71cb039d3c061db293c93958f66cf82a08b00cdaa7865a29c0a68a028e049519c5274d034d867d9c19d067babc065f20726ff1e9c6e05805149e519c6016f07894a09fc003115e2a8560bf1cdf5d5481770e927a28ba860dc1888e432a9e5ba3b5582c428f0379cc7a92c9810d6c8289fcd81323357b5c4304d58aca6c4b8c68fbdbfd06d68703e098c63d5f20b1b33cf5d02c6f88b5fab96fca2f5ae310c144b7e882b0177a7f03e581ff362d772c5b4405136673b1d49b973726b6605335c9171006ebb0b233e30219ffff036d100c89da2e31cc4d3042e3ca24cab018e80207ae34641ccdf590aa3e8e9e4f03e1dbfe9780d374748ffc030cd2d9d1492008d95e182a20b71955a2f308ef21660219ffff0219ffff0397dfa101fde59d7a873fd990067871a26228726da88ed82217e3082ae0de9d8a034c6330889e479e0437ec18ad4221495ce093fe8604ff53615a54fbea804c051203c5b2f63f9a5a5cd66618806c193ca68fda574c5a2acce1ed016e8e80111b1fe5032d204460a4f390bb930344eca9cb78f197f1d73a30cff59173fc4c9118776c1b03ce3b8e21738ec00090bab67c0e56aba701f1ffc91ddd75971e8d05dd66804dad03ec7b3addeff25a874d06a1823987b7e739f53b8f18dc7cd09854084f7c4a480c034e5b05d9793394f441511084b00cd7ccff4f9207d8f7be27350b6b51c4b9834503ff61f62f38c0852b0c058ae5a37e5d6b4528add10bceddc6ed38bc2ff6b1f17403b05058f7de824628c4ecc041b3b1c502f92ec252850c58da6be29dfbe4bc405703be0b479b2cbf58363b88356f31d1067cfc06ed036a05a4f25aa29a2e73128e37032fe6479680414852100ea1896a2a1a31b538828412971c0944e9ed52ee9110150397b83d111a61768b3a7487748d8fcd3cb37bafa09bd88bc052e03b49e02e7dec0317605621ec49fe11b49d03a0fcb10f835fe7d288078be6b914d4565f9a114bea0356f99e41ed032708486527a36e3c998b9f42fc60f1c6a0f9c17b0a302a16537f03f4eebbeab1524ef7bcb20a30ce700431bfd8fbfa7aa09d472c10d704bd3e4967038d0e099a44f7f94546d79cf2bc08f9624998397189445f243f46332f84f0603f03d05250ea90479b253866120e5392b2b2d868e340657627c07bf99a10a5f65cca03050921a1e651703ca31b8579a026e9156270ae517c8249a1c185d861e75d5794039778ab010a0c170994e2568b7a74323405413c121da2146dfcd06854b976d95003af2edf1c12a65a6a5653a836da344214334fc18125b1e63bb65d7471d8c90ed903e17e89808bbbe14f5d187c548b09996169580f5a86b3e8e76ca051a12be8d2f603172a2b898855b435c0138b47ff7b835c7ea32d144f279af470e0d48eff8fb46c03e000d2ad2e91a07ad7fb1c40401ee7ac59c21d4bbde16c36cc05b0a1b0fd39ff032e0291f83f615fc2ac9ab68d158a2293bdc9338d4809ee467f8df0f1c112859a03bcd5bf62f604e285404479e944ade8ea7d3b9c2d21eb70a4c1571e15b0e86b8b0398a30a8778f0ded40305ff797aca464ce00a3f9f9f1bd2297e14ac40d335171403a41ff41dd7940030fda9502f8b9a53a3defafb850ab91965a9e3f49e1fb7e5e403774102fbd2afc19911bbdb4ba13dafcefc8e32f587a39acda10619fa3bf38c8303b82abff063c918fd489a5f382932ac32fbc683ecdbe87a5194521b697c0bc35903d6d462a3c91aca34f28e8b63fdcbc28b529b2ce8372da43b6af554565e08540703a79cd05a1f27dc92c6e4320d86987c4cd923f0f6b7170081eadee52096da34fd0330118fa5d8f20113dcf45f6e6e4ee9bc57511caac6ad6e5bb21f2f6331cfbb8e0330a5490d0d74cdafc07896ad493593c24c3a83af3764ab2ac45c7dc3f2780c300321018bba01709f429872107909c38efef0e53e71816b05edeb20af661d0191e30332ac4c48ca2b7ea7bef1df4cdd25d3369565fa6c33677e5aa4254c7289da87a60317f64686f9e80b29c5e086d6650879d2e10b03e76f1909dab35c065f74b1e18103ff4188c921d9b6f1bee6dfed6f7a49bfccabccc6bcdb8b58d1499eefd6c2a028033046c8c8a219c4c65d33095a44510122196a261ddca5f310d7c30c660070c4f603307ed868f1a796746f0a45d2c164bf06618ff25eca391c4bb92ea3d11d11b33003509d73eae7e6b8a705afad9c8c08b58e8013349667835aa89602cbec28c468080376131808cf1f70f19ffb7034be1db0ee00656912fa99de431ff955106f6e298f038d5c83f672a553c76c6d3b8fb64113dcf651c5b0172fb0fb6de6385306e2999b03265f87ebf0f1e77f65743101e01179f2b651258e7e671a023fbb3a154a40a8d703337c29fd9976d67b66b28034c1414c04861ce13b19a267c6e01d66f2cdb6bfba03387d1af7fb6734d678da59d1d8eb7aa81f851120b36bed51bdd5ea46b2a2d62e05581e0374a9d461b6a9d2c0b4b8eec628b533d580ac7a40dcb6d6d1d9e2c0e8f007011bffffffffffffffff031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03aea6a37014af491452adb5d70fa3a144f2893d475b7d03d22a07b08dc007011bffffffffffffffff05581e039009f9fb7f3600a0fd6cce71411b0b2fc393098cf0f18c99ed4c3fdcf00418280372a061fe6d5ad391d8e81fccdd10fa823507f7b7728bfb7810690b10aae2e44f05581e03468b1bad7d17d14b3da7bf86b7ac6239887e52714e679390842b97d0b00401034c45c04bbc4da5675b38332226f2ebc2b47b1e0c09e31f5e33c98c37eae7b14404592c1d608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032032e2bc0c0ff22609eac8f10e1c8736f3e780dcb85055451e7ac674e2667ce4b570058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56304501db03ecf300582103e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0552bc82346b125e21af9685fa629b9bd9d56348d32440058210366cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688054c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200582002575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5820b73002977f7a921d00ea2ceae62e84aa6c739ed1af5d2e827341affa6f651e99005820025a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a85502ef738cbf907356636685fa416c08696ac5c309b402184400581f02e257e98749920f079c806953e0129df22aca1b5060fd814f8b684a2728b3410100581f0266c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7410102190204014200f600582103432903a0d939005005c35d6b3c91f991de7aaab2b261dabdd70424fcc29326004501db03e90b00582002f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3582065cf5fa30000000000093dafbfc84712a218000000000001a17653070c4e80bb0058200252222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f549e9fbde7c7a83c43913bddc8779158f1368f04130218480219f44505581e0376d2eac2897b11b32dac81b81fcb6fa245e571f0c1c23e6d28e7ed00500701192c1d05581e03e3596cca07971bee28d4f7363be4d8e6c720a382a8292af73ded53fdb0040105581e03366941e9597fc49d153609a888bdc75e5450deea087c5f0611f91827300c1821471485b42652f89e05581e0349b55ace9b37869628798c01d3a6cf4accfa2ced1c83e8ae740820c89004110373efca8acfbe544c8ecb7016b28cc776fd50a99ff19b848bc15cf31b5dc8ed0d02195f9e03e8c46238406f0d1b98ef136d648c28e2e8b8263391c554e9880c161fff165cbc0219ffff0219ffff03c47d5275fe855b7d46701da078bec769e285a35a64d77d91b25bb4bf251ef7bb03297c29d0f390b5b65f6ae34cd85557acd49def0190974947409845cb46a105b003d600f6b67ffb988d6770719115ac25d166a5618f731c2941b05c46257f0f765503ae450d3a7931a3c1a2d797fecb8b532b2a416b011c5b66eac4c7a83c5ae15daf03733ac70afb68cedd7251f39375e8dc794165c34d8992a28c1a6e5a01cb42f41803ffbb9d63f88897c6ffbe2aa9fda8b87dffec04851e6d8d3e0775d7b396c584130311d88e5c395d975fbe216255c16ca42c588a712276c49586d4ff3cf9fae1688a0219ffff033ef8ae4cd7a240131254d9907625ad2d3616109d08815fbbfd5aee912acab2b2036aa54ca1e4f12f7f0207d3e512b4ce190bc18ccae85dd73565d9242eb5e7c6c103319913649e465932fc2243ed0047dfea864723fcf47b7de527bc4e974e9f1d6e03cfbd4d08fd9e1de875ff093bb45e8a218788f5970a14a1e90c80b02c4e854aa803100eb15c41005be0b31fdd22d44d97c2377cd4f1c8d95741532724c06be01905036417964ffa371c57e6f395e400bed05db58f626794555697abaf5e16745ff885030831b0dbf4d1c827c664a972dd16c58cc551f8874c30ab70fefdc66525cea43e031ad2f3f9d09fe09f04845ed7ad6b8e1a4fc5647dd25b8b8304fcb7668938d37203bcae8b659ce47717542c4c1749f0a2c34be0d5fe9c46d103cdd66852fff07ba703cbc536abb71f20e84af17bea2cc3ab6eac3c2fe56962d098c942b1b1578616960362649e2b63c97826ba896d600683c001438d9b10adb8436c8e91073570fb444f03c5577f2182fa52a3b43ce239d0d5af1dd880d26d8175d0a8525c0732d8b96610033f7c3082081fbe4203fd093095d9ff976f09a8346eb87e2afb5c33ed617007c20219ffff03263e78c2c2ecb01c326d913ec44010a5949ec8d8e2b0483cd67d11d7b93e991d03cf8f99b839001afd8fca3d13b0bed66b9c96375bea0cc5ec0a1344c88ed421e703c03d2180f03d00062beee405ebab84c5be230cd8100f0de54866251f12157a9603d7ebd4ca0460d8102685c92e5d03bc95a785a25c63e2bc34a8886ff642ff10a5035a366cb6a84f62aef78724cb22841a25098531cef93c0dfbc987eab478aa8e040314f43643e29c03c21c20958f4db255d2b3a2f1888708ce8be6fc00256de8862003808f5b817c9ef3c39a4f17c1871432671bead67a2f433934348aa261ac0be77603f8a6aae111f30d1f0ed6666bcdb9f835266685113bc61459b35127d6887ba4c40316c1b019f7cd665ce6b3252c67a0858b88a147a7a8291870d780585b7a92847d03094265900c976454fe42db08b4d728fc462700183a2b3d446d195c55f4c7251103209b8c33ca4f1acfb8fa7091164c40b38a03a24510c24832ea0d7f8ba37467f603ff1422c5fce899621581ef95eab73efb46e5fd530f4c0cf0447d81a30956df6c03e2f6538d24ae024739b843d26699c7df0947549b27b8f2380d8cf0e55dca58ee031dd09da6c3f2c1e38b6f91f10f829c61a759e62bb9aa3b6d8f1de7ea08db46060398589bf5bd087a3fa0c0b2dec3a1089336cb7846696a0a392fee264ddba1cea003a735abd8fc0586fbceac1ac1a7472a2f4898b4c601a9a9b3f1590a3f69f4a1e903396ef29935567ea809496029d14d2027e8ec312ecf7499f280a203f4aac7014d03ea7f236df86cb2aabb31337600179807caef5bdea8c405ed8676f1d4bfedee0403623cbf159197c45f809d7167e876912c42640aa6629fdcad4cda3a0de803905d033d60fca5c0df5a9d9a70427488679edceeff74b88fb4a71e5256ca89b36011af03c1159efe6b581dd8726a3f5a892cf99a681662bafdb5432442537be893bef21c033e3f138dfd37ea5fda09897df32334d848ab83d9f95a5f305cf15b4ce1f90e25033f20574ac973dc6157547709cbac0cb7c31baa2da17dfab35e9c8da6b92134cc031c6bf571f4a6d789d4be859c7bf5d2a0ebb03f319b10b04496d622391d9d2632031fc1badfee7a6b662a27e0b182a3362d8dc0dffccb42eb4c827911c156482ebf03b8defcbc8f20b79fdce12b4f0c3a2e13ed8aeb9c4ee0621a411c8717cb50505803ed4ae5fa47b5e981e3c4d006dfe2170de7fca39862936d8910a2142ef0500fc203f339b60b343ff744c8f79351ab7b107230b38a99680343d862ec0d9f7429b9350373945e16f1ea6b13c393411c087e6d69571ff68e9578c5f2ebb0a3d8cee01b9403eb1dc98b4de131e954727735765515f50b9438fc94b08ef5a7c815e70a903a5103b3da505310032b1cef8b5f2292a85cc526e7f85e1ed1d195ad081dd85468e2d203f88cc9e4a2338b6b02e694b1e4056b464444eaf1d445175e6b4625ca0798cb21034c7a79fd5fa2bd35628d79c6a2f03c8535b634f4d74081f4ab6af320c412f59603a7a293a1699408e03be2f671049d440b8437a643fa20be6066fb5dbc0cc7b3ff05581e03db6fa8971ad16c5dff0df61c983a6c5735b13dc7d2ef55a5dff37dc6100c0147012ef35e16650005581e03829b8b434022a63cba8fe236649a2f2cc1c1569878795dc6ccc39487b0040103562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e031cc3c1014051f7421eb11f39d4bdfafd216f161720ceaf06e74cda37f007011bffffffffffffffff03d9341e9a79236fcf78e02523d3655b8297ec4328c6f1577d949e7d07765db30205581e03d87c983935083aaf8af636694de96453713cee0fc83260aed3eb33b4a00c01470124efdd56e98b0459258f3460ff164360ff161473ae2fc483527b8ef99eb5d9b44875f005ba1fae13331416602857612418565b5f355f1a60061b5600000000000000000000000000000000000000000000000000000000000000000000000000000000022c0d9f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000005b00005b5f5f60a45f5f60246101825f393460415260023560601c806024525f5f60645f5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af150608460595f396004601646355f1a375af160fd575f5ffd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b0023b872dd0000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60246101825f393460415260023560601c806024525f5f60645f5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af150608460595f396004601646355f1a375af1601a9081355f1a60061b575f5ffd0000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60646101825f39600486601b0187601a01355f1a37856002013560601c806024525f5f60645f5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af15060a460595f39600487601601884601355f1a375af190601f019081355f1a60061b575f5ffd0000000000000000000000000000000000000000005b5f5f60a45f5f60046101e65f393460255260023560601c806004525f5f60445f5f73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485af150608460595f396004601646355f1a375af160fd575f5ffd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60046101e65f393460255260023560601c806004525f5f60445f5f73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485af150608460595f396004601646355f1a375af1601a9081355f1a60061b575f5ffd0000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60446101e65f39600486601b0187601a01355f1a37856002013560601c806004525f5f60445f5f73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485af15060a460595f39600487601601884601355f1a375af190601f019081355f1a60061b575f5ffd0000000000000000000000000000000000000000005b5f5f60a45f5f60046101e65f393460255260023560601c806004525f5f60445f5f73dac17f958d2ee523a2206206994597c13d831ec75af150608460595f396004601646355f1a375af160fd575f5ffd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60046101e65f393460255260023560601c806004525f5f60445f5f73dac17f958d2ee523a2206206994597c13d831ec75af150608460595f396004601646355f1a375af1601a9081355f1a60061b575f5ffd0000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60446101e65f39600486601b0187601a01355f1a37856002013560601c806004525f5f60445f5f73dac17f958d2ee523a2206206994597c13d831ec75af15060a460595f39600487601601884601355f1a375af190601f019081355f1a60061b575f5ffd0000000000000000000000000000000000000000005b5f5f60a45f5f60046101e65f396004602a46355f1a3760023560601c806004525f5f60445f5f60163560601c5af150608460595f39346021525af160fd575f5ffd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60046101e65f396004602a46355f1a3760023560601c806004525f5f60445f5f60163560601c5af1506080605d600439344652600460595f395af160fd575f5ffd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60046101e65f396004602a46355f1a3760023560601c806004525f5f60445f5f60163560601c5af150608460595f39346021525af1602e9081355f1a60061b575f5ffd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60046101e65f396004602a46355f1a3760023560601c806004525f5f60445f5f60163560601c5af1506080605d600439344652600460595f395af1602e9081355f1a60061b575f5ffd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60446101e65f39600486602a01874601355f1a37856002013560601c806004525f5f60445f5f8b6016013560601c5af15060a460595f39600487602f0188602e01355f1a375af1906033019081355f1a60061b575f5ffd000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60046101e65f396004602a46355f1a3760023560601c806004525f5f60445f5f60163560601c5af150608460595f39346025525af160fd575f5ffd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60046101e65f396004602a46355f1a3760023560601c806004525f5f60445f5f60163560601c5af150608460595f39346025525af1602e9081355f1a60061b575f5ffd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60046101e65f396004602a46355f1a3760023560601c806004525f5f60445f5f60163560601c5af150608460595f393460081c6004525af160fd575f5ffd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60046101e65f396004602a46355f1a3760023560601c806004525f5f60445f5f60163560601c5af150608460595f393460081c6004525af1602e9081355f1a60061b575f5ffd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b4646355f1a60061b562e1a7d4d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b60446101e65f39600481601601824601355f1a37601481601c016010375f5f60445f5f856002013560601c5af190601a019081355f1a60061b575f5ffd00005b3446526004610aca5f395f5f60245f5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af15f5f5f5f47335af11660fd575f5ffd0000000000000000005b33ff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b60646101825f39601481600801603037600481600201824601355f1a375f5f60645f5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af1906006019081355f1a60061b575f5ffd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b60446101e65f39601481600801601037600481600201824601355f1a375f5f60445f5f73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485af1906006019081355f1a60061b575f5ffd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b60446101e65f39601481600801601037600481600201824601355f1a375f5f60445f5f73dac17f958d2ee523a2206206994597c13d831ec75af1906006019081355f1a60061b575f5ffd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b60a460595f39600481601601824601355f1a375f5f60a45f5f856002013560601c5af190601a019081355f1a60061b575f5ffd0000000000000000000000005b60a460595f39600481601601824601355f1a37601481601c016050375f5f60a45f5f856002013560601c5af190601a019081355f1a60061b575f5ffd095ea7b3000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52bbbe2900000000000000000000000000000000000000000000000000000000000000e00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b6044610dbd5f395f5f60445f5f856022013560601c5af19046019081355f1a60061b575f5ffd000000000000000000000000000000000000000000000000005b6004610dbd5f39806015013560601c6004525f6024525f5f60445f5f8546013560601c5af1906029019081355f1a60061b575f5ffd000000000000000000005b6101c4610e015f398046013560e4526014816021016101303760148160350161015037600481604a0182604901355f1a60a40137600481604f0182604e01355f1a61016401375f5f6101c45f5f73ba12222222228d8ba445958a75a0704d566bf2c85af1906053019081355f1a60061b575f5ffd00000000000000000000005b6101c4610e015f398046013560e4526014816021016101303760148160350161015037600481604a0182604901355f1a60a40137600481604f0182604e01355f1a61016401376014816055016070375f5f6101c45f5f73ba12222222228d8ba445958a75a0704d566bf2c85af1906053019081355f1a60061b575f5ffd00005b6044610dbd5f396014816002016010375f5f60445f5f856016013560601c5af19046019081355f1a60061b575f5ffd7c5e9ea40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b60a46111b05f39601481601501601037601481602e01605037600481602a0182602901355f1a3760048160430182604201355f1a375f5f60a45f5f8546013560601c5af1906047019081355f1a60061b575f5ffd128acb080000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffd8963efd1fc6a506488495d951d5263988d2500000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000062000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000128acb080000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a800000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000001000276a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000062000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000005b60246101825f39336024526004356044525f5f60645f5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af100005b60246101825f39336024526024356044525f5f60645f5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b60e46113fb5f39600460166015355f1a376014601a60f037602e357d152100000000000000000000000000000000000000000000000000000000016101225260405f6101265f5f463560601c5af15f513460181b1160205160445114161660fd575f5ffd0000000000000000000000000000000000000000000000000000005b6101046112d55f393460181b6044526014601a60d037602e357d155200000000000000000000000000000000000000000000000000000000016101225260405f6101265f5f463560601c5af15f515f036016356015355f1a1c101660fd575f5ffd5b60046101e65f39336004526004356024525f5f60445f5f6084355af100005b60046101e65f39336004526024356024525f5f60445f5f60a4355af1000000000000000000000000000000000000000000000000000000000000000000005b6100e46112d55f39600460166015355f1a376014601a60f037602e357d16c100000000000000000000000000000000000000000000000000000000016101225260405f6101265f5f463560601c5af15f515f033460181b101660fd575f5ffd00000000000000000000000000000000000000000000000000000000000000005b6101046113fb5f393460181b5f036044526014601a60d037602e357d16a200000000000000000000000000000000000000000000000000000000016101225260405f6101265f5f463560601c5af160205160445114165f516016356015355f1a1c111660fd575f5ffd000000000000000000000000000000000000000000005b6101246113fb5f39600481601b01468103355f1a37601481601f0160d03760148160330160f03780604701357fffff000000000000000000000000000000000000000000000000000000000000167d16a200000000000000000000000000000000000000000000000000000000016101225260405f6101265f5f8546013560601c5af15f51826016013583601501355f1a1c11166020516044511416906049019081355f1a60061b575f5ffd000000000000000000000000000000000000005b6101246113fb5f39601481604b01601037600481601b01468103355f1a37601481601f0160d03760148160330160f03780604701357fffff000000000000000000000000000000000000000000000000000000000000167d16a200000000000000000000000000000000000000000000000000000000016101225260405f6101265f5f8546013560601c5af15f51826016013583601501355f1a1c11166020516044511416906049019081355f1a60061b575f5ffd000000000000000000005b6101246112d55f39600481601601468103355f1a37601481601f0160d03760148160330160f03780604701357fffff000000000000000000000000000000000000000000000000000000000000167d16c100000000000000000000000000000000000000000000000000000000016101225260405f6101265f5f8546013560601c5af15f515f0382601b013583601a01355f1a1c1016906049019081355f1a60061b575f5ffd000000000000000000000000000000000000000000000000005b6101246112d55f39601481604b01601037600481601601468103355f1a37601481601f0160d03760148160330160f03780604701357fffff000000000000000000000000000000000000000000000000000000000000167d16c100000000000000000000000000000000000000000000000000000000016101225260405f6101265f5f8546013560601c5af15f515f0382601b013583601a01355f1a1c1016906049019081355f1a60061b575f5ffd5b60046101e65f39336004526004358015611b13576024525f5f60445f5f6084355af15b602435801560fd576024525f5f60445f5f60a4355af1003c8a7d8d0000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001af000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b6084611b2b5f398046013560e81c60020b602452806004013560e81c60020b604452600481600801468103355f1a377f1af00000000000000000000000000000000000000000000000000000000000006101245260405f6101265f5f604886033560601c5af15f5182600d013583600c01355f1a1c11602051836012013584601101355f1a1c111616906016019081355f1a60061b575f5ffda34123a700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000004f1eb3d80000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a800000000000000000000000000000000000000000000000000000000000005b6084611d1a602039806015013560e81c60020b602452806018013560e81c60020b604452600481601c01468103355f1a378046013560601c60405f60a45f5f5f5f606460205f8a5af1956024611dbe5f396fffffffffffffffffffffffffffffffff6064525af1165f51826021013583602001355f1a1c801591111716602051826026013583602501355f1a1c80159111171690602a019081355f1a60061b575f5ffdff5c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f000000000000000000000000000000000000000000000000000000000000000096e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f000000000000005b5f5f60a45f5f60605f5f60445f5f600235805f527fc02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000060145260285f206055611ea45f3960155260555f2073ffffffffffffffffffffffffffffffffffffffff1660446101e65f3980600452961c6004601646355f1a375af150608460595f39346021525af160fd575f5ffd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60605f5f60445f5f600235805f527fc02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000060145260285f206055611ea45f3960155260555f2073ffffffffffffffffffffffffffffffffffffffff1660446101e65f3980600452961c6004601646355f1a375af150608460595f39346021525af1601a9081355f1a60061b575f5ffd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60605f5f60445f5f600235807fc02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005f5260145260285f206055611ea45f3960155260555f2073ffffffffffffffffffffffffffffffffffffffff1660446101e65f3980600452961c6004601646355f1a375af1506080605d600439344652600460595f395af160fd575f5ffd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60605f5f60445f5f600235807fc02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005f5260145260285f206055611ea45f3960155260555f2073ffffffffffffffffffffffffffffffffffffffff1660446101e65f3980600452961c6004601646355f1a375af1506080605d600439344652600460595f395af1601a9081355f1a60061b575f5ffd00000000000000000000000000000000000000000000000000000000000000000000000000005b5f5f60a45f5f60605f5f60445f5f8b60020135807fc02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005f5260145260285f206055611ea45f3960155260555f2073ffffffffffffffffffffffffffffffffffffffff1660446101e65f3980600452961c60048d6016018e4601355f1a375af15060a460595f39600487601b0188601a01355f1a375af190601f019081355f1a60061b575f5ffd00000000000000000000000000000000000000000000000000005b5f5f60a45f5f60605f5f60445f5f8b60020135805f527fc02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000060145260285f206055611ea45f3960155260555f2073ffffffffffffffffffffffffffffffffffffffff1660446101e65f3980600452961c60048d6016018e4601355f1a375af15060a460595f39600487601b0188601a01355f1a375af190601f019081355f1a60061b575f5ffd00000000000000000000000000000000000000000000000000005b610126611b2b5f39806015013560601c60c452806029013560601c60e45280603d013560f01c6101045280603f013560e81c60020b602452806042013560e81c60020b604452600481604601468103355f1a3760405f6101265f5f8546013560601c5af15f5182604b013583604a01355f1a1c1116602051826050013583604f01355f1a1c1116906054019081355f1a60061b575f5ffd5b3273ae2fc483527b8ef99eb5d9b44875f005ba1fae1314606060845f3760605f2074ff1f98431c8ad98523631ae4a59f267346ea31f9845f526020527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546040526055600b2073ffffffffffffffffffffffffffffffffffffffff1633141660e43560f01c5774ff41ff9aa7e16b8b1a8a8dc4f0efacd93d02d071c95f527f6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e26040526055600b2073ffffffffffffffffffffffffffffffffffffffff1633143273ae2fc483527b8ef99eb5d9b44875f005ba1fae13141660e43560f01c5774ffbaceb8ec6b9355dfc0269c18bac9d6e2bdc29c4f5f527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546040526055600b2073ffffffffffffffffffffffffffffffffffffffff16331473ae2fc483527b8ef99eb5d9b44875f005ba1fae1332141660e43560f01c57000605581e0301f6c3949c69f9617d8cada9fa07b6fda3ca62cbb047761f4b81f57f500f014701539d60bab84819258f05581e039d23217cc1d0e25898a08368730ce1c3b413b7c4726dac94a5bb635c300c01461319718a50000219b7960344f69efc96b5d710a1abbd3de340aa0c5b19f185f5f5af0aafc63564c49470ae037f71f69d7ffe6eae84c543710b1e63632992124d6efa05b9c9eea1cecde51c3803d30be93feae6122c5c83fcee4ade19d8593dc0e77a70a1352fbb785c9bf740e303408ff80ceb10dfee2c5172ac2b00b97725e08b421f8afbfa60eb18f29dfb64380300254560b9f93c0ae534fc8ef874e98b7bd17b8fbb1ff4749952add33408696503d16f183da84481cfbd79c3b6c17a2a7640a29d64af2305d38bded0603756548903afbbd44d1035934b2a5e002b0a9d4da379ca6bf12a26733a4a21b72bf308688d03d9904ae3e52c3563d7f895ec9d4c69693cbd56916be499561bea193442a13db30393eb3d942ea02eb0b8981a284886f44b6a1f2ca9529f288a0afe64f20925809b0346ca8f23a3aa58be5e6f8b317d0e816294011f3e17463ed636aaea1ea255f3fe035290850ee2daa65453f3c475815e68b6d6d7fc8cfe02ab05ce6a365b55f7e5580219ffff0308bcbe1e77152c55aeb289421609c72d4840c442f4814f04e70dc7562d1bf9db039d81891c5d2f490c3476628bd0dee50f0b2c59b04936e14b6504d3bc38de6ea5037e36898afbf03a5b22da3a7a344dab864c5197cc41f6fa21d21bd9b0bf1396150396767989914d58a550d23b6f74deaea46038390f3dbc86b11d27d8aaadeb38370219ffff0219ffff03e02e7a625c1d2b58c584c3faaa9d8d9a805a86cba7348de8f107045a566dfbe0038a21425582d206c56c0299fb1ec2ce460d7efc93c74782c4f0ddb8d4759b92d003ce0381cef54e33fd2879682803e2b3b61820073ad8267542b8f95dbfead60a0c0339c2ff07b8adb3428f1b927a455d7f08f8d18ea6bed4425fefb7b2ac5857393403a93670b3765ce75c4b84af1b1ee8dbf50a097a54cd03d7f2a0bc1170a21b458e03b15e47487a3e6b993f6eab695f5cec6d04e49eded15e09cdfa03eba94ab16dcc03b65efcb505f6da7cfca1ccc4547383e15462e2a415db205862d41658143a475e035fba676c58b437a5a5a64249fdb3fa7dbec751f54f167e240ded0a2324ce38880395973bb87b5d88ab4778580f0cd48d7698cb5bad10d3a72504e1fec61dd24da403405649a7a763314cd97968b58df25cdafd75a746478baa157bc483bbe3c7a1df03bb9920ebae59b43b3bccd50d7d160e8fb7f06ea9eff1c3c979f7c5a49153b43c03e5129ef9780100869a9faaf43d334c19b45707ef34c914834667d1ac03eece33031f359bfad93710c88f17c4170fdbcc623277b952dbd4d62748c6fc268f9047980381afdfa7774209fcb4bc07f91ec04ebfe1b89c69a9ae1ebe2bc43536e45d46030314ec32550afaeab1ed605a3a72100325cb76c0e8fa24e3c69438aa77a1a4f74d03c76fc44ec84125b9611cfe7b65ae97a94e4c3be48cc6d956ab81073e3ed5d0fa030bbf75bf642c80da34b73dc943a30c7f1b3be348bcb6d1e2529fdd51449e08a103cf160104d02da84a41724719c27da09ceb1a51b00928fefcda317edcf309825903430344155e34189a33e11dc4c8ad6a9404df9870a2e18ad0865721f7c1f1147a03bce449afc50e44019e3aeb75e9f2d6c72042d0a20464b69d61eb2d3f2ad96843030531eb4a0afef3cb404d7675870c3c49efd29b9a4b859ddaae94c36310b7ae0603e752d314fe049bd7c6ed39c67d2f1f639c45eabfeb257b9147fdd57481857e3c03cb64018e30deabc41ab7512bd25329679bec782bc7628f4f0a116407316e648303894b6c455abd1c361917145aa5eec85d66b43da4327f92f9abe6b738ba9323c1037231449890315a74a2d29846f6c25d573b12d5c1222989c4588d400044406d2e0368ebaf5ceb22e2bc333432b76718d6c36166d1444ea4dbb2dd5d53b77494290c030207bd1b438590dc2ea4773092ff6840b379c1206859eb63b419a18280273513034c42088bd69508dc161cf6548f23a976f09ba9bec3c446d4a2cb7bdbc95a323203c286dab82a74c887eb5d2eb399eb414c81f1083efb4af7d185086646598e62fc035b9e9801cb4418702c6b8d3be24d9ee539bee1721f92fe233a0d95ba588e81db033661a6bd0c24511a05b40f8ae74c737f47d0df70bbf3c7a0816810ed90a8442603d6b82b5896be46433e7349f5005e0d5958dbc3747435483d956149bf9a41740b036af61ac19cd4496fb6d376dc38a8165a2561022866ce6fef41f8ade0fd2a407b031d942c5f793bd295e61894015b65c2a0b772da5420e868784603db7d45fc38ab034f96708c335dd6364f8c5b4fc62edf32f5fd9a7107a99be1e9f6914b4093b88c03e3981f17dbc1a00258432c0e34232f267d05e271590ee7a9783a51870f9873c8033a7c4e1b76aa60dc9d631272c2ce6a72e82914e0cd8ffc759889d5f24cdedeeb03ca06c2b4c97d9941e56c3c752abe4c2b0b2cd162e22a5d25f61774dc453deedf05581e03da7d3b581a6515e83a053ac10dee614e37c74397b0001f77359de74100040305581e03e08b15e58c41c3c9db35bc5268e123e5e61f633bd60f8dd66ce320d4d0040105581e03961ea71a2092ede541a5313d58a72b669c614b45d7c9e73ab7f40b85d0040105581e036be6c90bff6b129f08f2d3732f40a37dbc9a95e1c60843ed138e4969d00c1836470135ec955aed3303235db60b9fecfc721d53cb6624da22433e765569a8312e86a6f0b47faf4a2a2305581d024eee85039fc9d8260336899b904d35911f52859f57c1e664281186f20c0147a7a5422d062ab804590c346060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b9578063095ea7b31461014757806318160ddd146101a157806323b872dd146101ca5780632e1a7d4d14610243578063313ce5671461026657806370a082311461029557806395d89b41146102e2578063a9059cbb14610370578063d0e30db0146103ca578063dd62ed3e146103d4575b6100b7610440565b005b34156100c457600080fd5b6100cc6104dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561010c5780820151818401526020810190506100f1565b50505050905090810190601f1680156101395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015257600080fd5b610187600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061057b565b604051808215151515815260200191505060405180910390f35b34156101ac57600080fd5b6101b461066d565b6040518082815260200191505060405180910390f35b34156101d557600080fd5b610229600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061068c565b604051808215151515815260200191505060405180910390f35b341561024e57600080fd5b61026460048080359060200190919050506109d9565b005b341561027157600080fd5b610279610b05565b604051808260ff1660ff16815260200191505060405180910390f35b34156102a057600080fd5b6102cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b18565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b6102f5610b30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033557808201518184015260208101905061031a565b50505050905090810190601f1680156103625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037b57600080fd5b6103b0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bce565b604051808215151515815260200191505060405180910390f35b6103d2610440565b005b34156103df57600080fd5b61042a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610be3565b6040518082815260200191505060405180910390f35b34600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a2565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105735780601f1061054857610100808354040283529160200191610573565b820191906000526020600020905b81548152906001019060200180831161055657829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156106dc57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156107b457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156108cf5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561084457600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610a2757600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610ab457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a250565b600260009054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bc65780601f10610b9b57610100808354040283529160200191610bc6565b820191906000526020600020905b815481529060010190602001808311610ba957829003601f168201915b505050505081565b6000610bdb33848461068c565b905092915050565b60046020528160005260406000206020528060005260406000206000915091505054815600a165627a7a72305820deb4c2ccab3c2fdca32ab3f46728389c2fe2c165d5fafa07661e4e004f6c344a0029036aaeb1e0dd249b087cd1c940635994a67018a3efc2936343a1d5683dfb2222a003148c0f2304aec3353cf5ed7568766ce494a21fe011985cddb407f939e9e3784603b1a4e93c311e947a63c609299e2ba2d7c4366b66b7ff9f76a47a9f664e12ae8803977ff6ee86449fd9ebac8463ff545fdb4a38e11385e958bf6277974047b1d236036c4c151180a39edb4fc33f328395429f008873fbfb4e59af8b3efd262acb84e103089710c7a16e171320a10b6bfa611bcca0d1c600363d8b0e93026e86ccf00eb303f43a6e3544d2c39c8401dabf9a56c3833b0a6f076bb84531f56a458fc067e2af039c1e0323f514f23b03257afde58fa72cbe2b64f4b1fbc02ba92903634d4af557033c9ce9384b1306ecaf25eafd1ac442076e44ee9e517bb0309557f1dbbaebcdcd030a66e92eeaf801092919fe5c726811e2e2afc96552fc69f880d0375d795c2c070364e28106c325c81a6deef5895ded24763fa571f68be656b87c26f0ef0e73bd89035e65546b978b0a40324014c9c99e4c5cc66ede9d8c6f06a52b76da37e2dff7a403e6d2a3cf8466027d8ce6c3fd8b8137fcb5d3dc34221837a3c0052493d6d6aea003bc60844ba0c0f950e431ba1ae8f48914bd3615b148b2be4f0b205c62218dd5e603a0ad1e2e5f67d5d490f8de1a408c30dca01085e318971df5c131e63df2a836e403cb985a6e5f969d91cd70fd13601a14e12389fd9838cc92d23bc36973e136359003b24bba13c7f0dd576eebbd075439e3c822e4f06a125e1d43b71197e098555374032daa3bb00175af3b8e2990396fff10297352bd5469719dc25d3919f285399978030b91957a4270f52c4bef2a9148d90d5d7ac07d2edf289a0bb1187768c942a92e0384c1c153254938bcf5833e3266c69d11863f01beebc2172ef140895ab5e8137f036c73c87058593f7a4c5f34ed7a844533bf2ae21f0dcc75be2305cb26502e27d803a7116b013767ee61d04cfc7ee0ef0fa6eb0c6e0b7d9b21b78302c7452509581003a0555fa89a6ac0d1f753c5bc430ca1bd74595c40928b8eb150567bdc1a85892403a2f2c2f85b117e77fbfee593bc7f1a87d965760ab4ceb77e2bdc085c22b2c46403e87a120a0a27451b6271d538a807bb0085c31bfcf491f46298bf79e07f1561b1039504a9cb5fc23525872531ecc2f65ab0bb5b29115c62bc024a8912f1fba1cc4c03202d28845054f6fe6a50978ee6537cc8f29ea9d08a2b9d1c560a3a044f9e8be603ab12089e9f6f349abbebe4f7498455ee8410c5cf24aa2586edea6446e9593ab3036d7c1259ed661bf224d1f6954d7a13a9112f7eac5ea9541142fc8327142c1185034302512bd497d6c6691c4c6d78fdf99b51252c4cf34b284987001796c063680d00581f031843a5260f50654be60454888c12e1df9a8f5beca305d3643235bb2410105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0314ac2a4037bb9c454b5ff1d341e61930d98f8bbf8d3879fb16bd9c75c9b180540391d0c3f554b53449edcce8701fb7941e35a59dc2ec26b8d30a92a204b5e6f6df03d3da91b634b1a7274b216a230bbcba5e24d92dcb0acdd9600e61d9d3e6a0e6ce034453e289c78c92dd80619ded94bf85359c38c30b8ccfbad693f38d7b6762751003a648a3a6eb8bd75eb1e2494b42f22a94eca6d6f608b5b7aa2ee9b5c0e9ca547d030feb2f389db71094872ccb0acb1ccff2f1aec23fe78ff388eccfd0000edba3ac0306c41f230bca0bff2ef0f2eee1e9f31dc74fdb942d2744b67227fac91ceee0ba03d05faf394c9234ac4e98e507310fdbd59c2580cd987c354cc84105e56caeaea5038101d8390f58e6e7da14d23c8005b95989c7ebde1a3c6982158464c2aaae60a5032e72b7f4dce792eaeeab1c5033624a348c0511b1cc58e47802ebc95995d428db038c233253a52c8d290c1cc6d7784cbcb618436a5b351f4d65c5ec53e05c7b2abb00581e02e45fa4a838b134c920a70c634c9ca44bca01a924b0040860770d1aed8947726d75c93f880000581e02920e6cbb93e03175c156b6576e7c589a7b95ec4418551adbe64a3944845820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0218280393d772a69697218f224549a9e49fe5d9bc8b9c7fd49e7ea79f9713960c9076380219fdff03125272869e4a25821c1cfbea8c449006295201c8a3b3dc92aa3406d39104c8a90349d115a4a345f8a268d6aee0628a37f606c4cd02adc99bee0d669911de16ff68031cac3ecf09fdfd75a2d143901f6954071b1174b117f8f904143cf0421911a13b0398a46da7dd993981a9a8dcaf22ade3299be2a26ef780714b027d49f654e022850219ffff03df92241811a831787efcac462fd390fe5b43ba9dff23ff8a7c31535e602b6ddf03132b10049085bc9411c024dcf21327de2162f0af350e374686035cd48fd66e540315d16c487ef535d0f173a49c98dee30280d70f178dcab63c169934921b6a88fb0340fb1c046cffa79a46c8dfd65d13fe4b7734d4f0de8e5db9b56e0a3c74e0f3ce03ccab9c6c1f535a5c35a33a1cf64e366963750b0fca755702b3b5c1417dbb2dfa03cbb86d45dd9af8dbb00aceafcc979fc30e5aa0cd791c9d803edf2c899c3ffbae031285699058db64b8b3582b409e3336dbbfdc4d9c652586f8071df03934d17e7903982f0f8eaf23a1e6644fd286aa80994e30b4776d9673217bfe49330d9430d6c40219ffff03148ce59153c3b6d3a51adff6fed05e04856b41a1b213cf618eb02a0464013c6003907445856d4e7bd1e631857782665c201d5eaf44a89e6dcc56cb91f6710699a9039b08d40fbd4f420c2c9ce0bc56f0bb68851bed1077a3ef9a09227b4d52e7f34303b079f07a552409694a69868e97b41a31d05b058048fc2b22c31afda30a32e4d2032def77a99f3cea53463e061361a4a5c2a6ebd51b4bce0183b47a2487bed4b9dc03c2b80bb8433cb5be1729135b7cd381feca3c71ee3f8d3081dd78e395521f43b103ec922eb0dd7dddd163f9662050404d3f517b59359c4e488a1ade52b41beb8b290219ffff03f9b1a3de1ddf51fcd02852b050cd82a44af42a31e4ca0431201232bab87fb2b903d662475b9dd7bc4fb29a113d47688b1610d5ca1d97cbe41a09e3c45d776e13c103e43ce858d3bb97be3f11d30381e4b0b5b5d495d4b60a720c4c76977075740a230342b92a6a02d43f2969169120f474850868a376a6f3baeee2b8ef27d72d00d5a70314f0018f0ea7622f10c9c16904d69aa082d2e697bf910dd5bd22c11e4343da810390fb0cdb6d73176293d1bd512a8eea879edc3f7761cfe65860cd54d5eb05da360323bc64835d47eba09af91d3d699dcdfc662f646e18e27614efa1cda0d15a885003d44a7b9d01e902fb5cea241748244a1ca359cd7b01b2c93c3561c6b8d715812a031d5dcc5bec9cee90eb95da8c3e5ae9554113c5620a4042832dc2f2a0d38bf7ff0393b1047e44528ddf116e8ed492a6c212860705c19664cdc6a239ac6bd165999a034b78d73443410fe7e26a2651584ebfd40f664016e64de6eb1ee5512ce60b8ab9035f58b8d1c6795c7d004b3a0d7d66693db1d42470826e7904aa11ac26ba5be1d903ada595f73bd0c03b8674369a0b872da7a416403a407fcaba17b7cccf8c441f0a035147c2b7234b7f98df9b329bffdef77beaed68d805393270b0bca31c0974e20b0341f585d1afa7058de9c4ff75e578cfee0547740d52761109429e1a500048b8cc036e000c659ba7400fa969a30b46bc8456a87ea85d4e8dde9a6d0a9f2b362220de033a4e8dae42372574bb9b956bed5599265ca7f77ef6ebc02fa4422734dd492e22036eee0803e5c6cdcdfcfe2d5d87413d3da3a75b981e35cee98f1b116321f6696c03432cbd7efbaa89401c5517539e8d5fba8caa121bc6bdcbd305cc8caefa1d05580345f92df33a0fd133c2dfc6d1d13eb684f07677d672c5f645508a620d143bd26e0323d9ebad29e4e7895ad2185bac3cbc7ce6fed69f4c9145fe7f2c7b25009789b903519e65d019ed3c6cef529cadefbebb066c1290e7d2ce262e11daf1fddcb1beca03c5bfea76dd60de9c0c9c74275e1780cf1803d2c1432e214659eceaa9ccd8fe3103f6ed084f430bffa399efad0fec00183805450aa056dbfdadc0101fac40bfcf33037b812d3d2422b715d9011dd10dc45cfb80de8d0e2d036c8a985d695bf236f88003730022e3f37dabd44ebae9f0b8ba59d9e9bf5d9557641ee8813b57f57b312d2b03b9cc9bb14776136d03fcb066764e3d75df42bed1fc4c2618fc0db7e3f472c0bb03268e78e75296e051471665ff51a2c6ee66688091ce14d4e4962d238cf183556403c161d822f7e345d1a803ecec4dee41f647129dd2e4b3e121b41eacbc90334e93039fdcf29c144697781256d8c58c8d5a4647f379da8b38c80046ab5e613452d68503563c67c676cbb02b118096b4986ba589cc4a0c80776bb11d0946f42769e815ad03adfef6aa619a9c61fafc73488a137b2b9067ef7f3084b589a2c36d7d85088a9b03192fb8d2fd62532e258d48a708c613ab0d6f749dec3a705ebb70f0980bffd6d5036ce7b69c284e4d5ff7aa7591172bad92c5ab6539ca0a7cf8bd5bab695707badd03cf71e2f66aaa87e44b06737375fdf40912da232d600f267924e7adeaef734d4e037fe6aa9028fcb17c4218228fa2205bad1d1265207801557f6b71143937908f0a031fce0e35b7afb0734361df0242ee908a9e77ac2e6eb64313dd6123339c4726d6035f95eec9ac279db4f8cbd8c6d73591e534db823119bf835b09e6dc0f91df7eed039a0640a47039e93a2cfda190fd8a488905fcf7bed4c9409e6ffb3ab864ae05ec03de3c56e17f75a7134788e2b302612a64e9cbdfcf2f6b80f576da8eb48e6c92fb034dbebd109c98fafc3ceccfd8d2f5a1620f174b97c667b83a89937ca04f9e0e6603a0a5fe05a71f0bf6cf1ea4b15415e886df2db11aba30e57a1d7a9cffb1d360f000581f03c0989249a6e0cc82ed453bf7ef7c1dc3d5a2f80aaf8ae6c92eb1e4b275304b4a817c417bd859b65ba95600581e020e15399fd39d541ab913f704b29f2ac5a0a1d7c8de1df5fc284ad5bc8e491df6e71091139771710375c66964d75b3c09922d520522ccc74fed954a49cce59678beffd1d6219548ae0219804003897b04fee6fa11c85ccc358e065296b5167fc4f1f98dd3f441739a1bf4f31a9a03df6e21134b4f253174b754122369e4a968a58a80ab8cd11a3ef309b19c4f13d103de9555841e4d38f19a907cef279ed0305a3b40f31b94bc562044c603f21c86bd03d282d00380b4627f3343a7bd6b304f79e9d11e4f2ffa6d682ac37eea2157144803f581a7918745d765bdd33da58b8352443b12956c816c6615b6bf5d46f973968d031c2ac99060a723d5528838eb2bd045c0f26dc8d79db971353ccc45e0c1cdfede00581f03a54502883d504147946f04c0bb6f530de60ef10da9c004d4d863c9e7f5805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f03d43c201d1d6d4b455cc27e248ac5edf9245e40430e0454431678796079e05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03689ed8ccdb1d6c4d4f631a5783a46562d2ea4b506e0457329cb7e9e29ac7f24203748330133ace753c29d8bd2f4ac82b0a5dab4921cc373a94f99abe6554caddba0219f7ff03b9d58c6d54102f5afbd5ea3a11c75bfb789610fb1e0abd8759f55da391b2588c0219ffff033d0a0631da22140d9980b77198f93966c465732de1316f8e2079845add63833c03308f161e020fdd7549f9640621f1e75125002a27384c8cdd8e272d369acef5b60336f600d07000daed56ae4c73defe117b1a1c408e3ffda727d5120f2d1bac1b98035e7e8b146d15f0d9d5fe1866172ec6ab12738733364add3b5fec64932efbe69a034d3ad34130edbbd33810686af87380324b01411066c8b5bce9caf44aafe16a080219ffff0391753630219fa061da2f5bbe0ef5c8349f57b3babd94191807e262f1f828502a0359bd38fd590136438472abd7c29a908fa9661f015ce766de74144aa903fcb2790219ffff031b4f97035b883df174e26857227b2e9129fdb24b36deaa5a40eca236f51a94d603a732c44b4dc3a649b48836843a6198adaed7c237ffc671eafc13d7e64fe505fa03ba8d847864e282a991307f028f9b7281a7d7c586f4d165dcb09f56f77cfe78f6035c9e8f32e0b80f324d127c1758218bea79b6eeb81118e4188ffdcd3a81af3f7c032a0a0f882de87cddba79fabc4d0ba428d42f81d84b0b8a1a55fbd0ae63c5ecd303c2229cc1619df92fbc32dbdff9f0bf6dd4f0dd22208f9b05f5a7ef3c26467015037aae15e597f24850cd76419f4d056cd60790f99bc9e4f85c0a1082c850e065ca034a14ba77c23dffaf345269dfacaa6ef720cd9639d0850089be0cfb8a5c4ea70503b93a185db5df4e8a695fa9a15cc14bdf440116e6ec9e102adcc9bee22b93dec8032b6079aea46d6c438bb050bf5963f870e0dd4c28e9a43d877e623ac77e68a11a0310c1d6d60eaf244100f27a39d49930133dc409eb9258daa3ee72fb956ecfb57b037a8c38e90a9d3084f29661f023194abd5e179f7ac382372d4181fd11d6248b52033a7472560c188f46db9f91529eabccb22c24b91a87c8bdb67cbb2020f044ed5f031c92c2de4f649c5eb7fef1f2dd4a07b967ab986d7812f88eb85aef63ba7e60cd031ddaf463cc5cd0afd40d8405313b3841df1b66bcd27f84ad3d83a9765c44ca24036b30f6fb68ee486958d2908882abbaeec2e8215b507a05dadb0203df41b2e65703628c77db566123d1c06e8c8e61064897b53b6cea5c92bfc6b0590a83e78d17dd03e6a08caae2e5a19a6534699eaa45126089718006fadd56f2d9a00d729cf59e6b0367a2335b37fe2c18ab910b5192609091f4cf83bea3a3eff7aa1c8f65ae7710d303f39a7571154bce8d4066e6a8ade370697e1647a658257511b21a6133b6e6d3b00315d2e9a20cfbe215473da0212f0c12369a1f33a4108da61c7fea3ff06db3c7a70394afd1fa51d4b995f81c07c01c85fdcac96aa2a9ddec53ebe795e833c35e992903ac1cc00f3fe79ffe8d00762c41c60e76267e271fcc53f0238cf3559aadc86dbb038e184234b198d6818c586664b1e53c1e6d0fda0e337d14955a1fa07eb268a50d03fbd188de5e001d9973e5e272e8dcc3ed3186e90800b0776d3130ace932690fb003bc6dba6372569631c952556be8ca7cde85f5b5e9de0108b890be17ae8cc2c2e800581f03294f295afb1fb36ed7571fe230a68b51c5c3c4c821457dcc320532d1a5005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03e0613854285ed12abaaf7127ff70f49a63802daac845d4557be198856d9ea9b90378cc22eee8530d3b50daa2823cfad4b4e5acfed898b9c28f95947beb99872ca800581f034b9a6da6cd1bcd3a9de67e96d96524297c2e634e18f3d3c1e138eabd25c05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03c3eb294e14a1bd5ad7baf12d63c1ad76056b46288afd261e3d8eae3a491d5e2a03d70c61dd6483b5bc2e54aeee9617f7cf1ca628305bfc238521ee56875f1713560384646eb05e060a331358a63f775212368d63e5a3985ab960a1f97443eaa99f0f036ad2d024007efbe9dcedf1b8458628baae16bb17b309b264cca6bad64217adb703bd15489bcef2e9989ef1298d9bcf70d3fcbc829f5718932d6d541d70cf373d8400581f0341e2803d7e5d925debf58dea57c47b45d238828f50f5a4d818f8ea3eb6104723bc46c94c540e00581f037b894c13efe501d77927ffae71a82cac6051a36300e9aaf3cf22b1b2ea005820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03b3eefa67d5ec7a16ae007f84831c4808e90ecec458a93473b25d75fc06da8ded00581f037a0bf43238cbbbcb4003c84bd021dc80e136a57d38690daa4456ddb1e2105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03f4d344b699fc1351d2d5f811ab43e2955f8083919dc072cabd0f73a546b4036b03c38d53019c4c8a58fd13f428b88ebcc41669a692369557a1885c3bd4969e16c800581e02c1ffff3533ff4434a3aa1ff6351a7237cb7d56a977c7f3c5fc6096621e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e022d362f510f31d6a1c57f07a71fec7b413c9eee230b8a1631f1d21b9ffb5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02b9a1bf707ee90667e23724f818453bc614d7e73dbd09ae8188c15214f44718de76816d800000581e0260c7e41aefd4f58ccebd698a2a4697a60d7dd9f37aa82afc17df08d6124a010eb8ff5c6ec42160fa0219c4480219ffff0381395b5b5fbc64d007974cbb411f14107821e0e4557d1fa9d1f15f6f11838f0703041892c1a86f45af727708f25863a0f5eb4cbecb7e4e4d5481db08c1e91573b0038d1f618fd079e76b67453db30ca563a9dc8ce7d42a6e4696cc5b906b83ce867703535c5bf3fe78626f07f85b8cc4f8236f1e4605de32a4b4b0f1459aa1f2395d90039f16b03bf2313e5fdc28dc859bae6824a6a1ebb609333d02b57c947de0c2762303d735b32cd1ab8993546a9f1c2da70b5d2f4758e9d580edfdab69545d12642bd2035f0c20453cab9d341d43604d67cb307569de9d9a45db2da03f696b8c3a8779df032689569be474a9a0f3d3313569234152f66c72a070261385e34865ee7eb16d7b032c07a96120fe4b00dc4f9a37b591a4fbc868352fa8880ec26d7fb7e8e725318c0219ffff0328d5997a2f8a381f43c2416233c7ad8e701fe7585a4ee9db2eafbc7619377bdb035308063446ca37dfee4ca6ecdd2b8a34b32bdf9d3c619468c7616ccb2446719b0312808edbcf03cdf71ba104c290b2222267b6437808b56e622e7f04fcf7f2781d035fbb6b7da7674abd79ec91a54337ce3cc8dd56a9920aac8f2d5862e36c46bda3032df05b3184fdfccfe950c5ca598b7870485656088fffc039590ec179bbe65abc03fa8568eb7a92fb2ec1396a3db34e28cab406031a411255321561a951f79574aa0312b0ba806aaf97816ba1107c8145a89294b4231cb48c88ea01562550a20e5c380318a7ac9e45ea8b80cafcc027831be415e6a219d0d055dac81f909378ddbc17f20219ffff03868664f06f2a5d68459163e168ad49abcd02ff97c45aaf00f6f93f6d61fc10c703a64769496f3f7f7a8d57a4626fdeaa73ba07c90aa25a878625e9f1ce63cd85b103d5a703cac1cf5dd5a81ad74e710bc8f48f66505b61bb20f361ce141fa53bbd0b0219ffff03f30f1db5d3a12552bba64d6e65873c89bf66da484742888fb4962ff4b97db4720341ac2d2df50f3196b691e14c3419de2c89e7f6b9da7be46e5d231de653b87ba403143e864aefa356946424dfffbcaa3c8a34d7552df001d2f93acb23ffcdb736a4032df267b1c58f1f13f86e0a84c4c1ed96731f853f4d58b835a55e930ee8d6e552038a696f36cc00865896affc2d7319a996c92d0b1ff29492868b8b5165f8d497d403a4c9a4448576278e481da8a55ce80cc8623adafff302276e0dc2fae9f02206fe0349609864e05a84269fe86659ebed5d97f831a8dc1b59567b64fbccb0206e18e8030cd72b209304f0e48b7460a1f3085bcaad25729efdfafb492e6efcfcb28de82103e218ec85a367b38d2e76111a1fab3d5ec3e8331ed48f6569af25528b9007675003fc6d8918df4e4caf8adff445099aff73c359e079f7f404db3804b5f6f1d1a64603b8b94dfa9bbd3c7ef07f6c604a1732afec013f501239155eba01de2a1bac14060397d0dca58d635f5296cfdf2547f135a3eb2484fee07345a431d7cd55e7255eba00581e02857cce08c663c4b566cb624ed8465aaa43a6829c5d385696eac1ba1ec25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02001ba58aca587e5115aaf3ad7cc007018ff8061fbd30a715b71ef8959c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e024ea07105559d27a7c0a085be03577d0b3be26521e7977b65a6a1e730765820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02c93de13262b30376bdeff424384505a1328e1f2f1ef28ebe40b171ee13491e35893f50e01f680702193804032eb60713a2a32f49d6f54454eafaeb9f270bed84de8501cbe10c76bf412508420312ae8a6ec23cfe12fb64c0445d566e763cf7e5a5ed89fcd52d51dc61d3b76e3f0345e0abb791a9203ea0ad1f00a6448bd2ff06de439bf15095873b93a7a4b48fc003c87edc3b1e07399a45c4e89c9ecaecb87bf107a408dfe5ec144c2d83a640fe1c03d74dd26e53e94e3b49548464fe1798b6704a9e5ad10b00069d67932385bd48c60358727b9aaed8c8de68b1483c2beefe7d50a67e12cb7dc93ca895afeb0cbcd1b20388ee36f1f7d375bfd12bc53efa34b34ae3f2012277ffd71b2e708795f8c2fd93038c0c39bafcf14b6468a868ebb540a2a32b05280295cc64c2998c0d1c9283848203a304a13714ed4c6c39ca2b649e1491da3ea0f09b9f069b06425707ef114e128003bbbe9f5fb48a04275c333683e1e2c859d52f17e0a4c8fa11f07060b47febab7902197fff038eb5d79437ae4753f3a6f7bd8f8dd625067bc48d0a30bce56863841d36e7e2c003ac5ecbb13e65cdaa794f562f372c4f03f2a1fc3a96ab47b2ac4a67757599d82e03e593b2132975c139cb7a3f15b1424dbc1dd432236a98e92a3541aae7e9e7924403fd39061f3e76fee5ac39908af4631359e0ada38938f2a91b01e5eeb04e7fa866030c279ed1d48a4dcc65f1117aef611aaa1371b26441abc123dace170716f263bd03759161ae64aef9ea7243d45a3d1c92c895172be221cc472760dd89c20a0d5a99036c6d8d4068c06c7be7676f2251004a09ef858d748dadd6a600105cc4d989a025030bee7369420d4df0b42b12cb91ea4390067c646b1fae232b4f5cbf62b7c31d0c03358259513b499facbbd32ac6a5a57a5191722d02cdc0c4aa38dcc07a1901272103d3d5dfd8b648bde2fc5c7708510de7acf7f81d687ba25930f752ff3c2889c90b031b45f6115b837e012a5b447d135ebdd153e893d0d3fb414262f6dfe598d14202037e6b8c0389015943d7a640799ef029e67dd93bef918d028b5e2708d1b36297550345ca8a38666165313ee4c99bddbcebc8315f2b23d44863e5b3c55eda4e00471d03e2dae0de86bef66aaf65c03259a46ef89afbe2ee582a6e69cf7819db0fb43bee0219ffff038225ea9e703d8bbb4f6b14051225fd3c46f2cda48d988e792d7cd6544ddc5bd20388c1e701504e631c9504100c66ee5f907fbd37691eadd5e0cce51a670e0835f10331e7fa9afe57fddb017453c3462c3b33f2876d7f488560d6df71913cbbcf2b2203ccfdc1bea81f23ff6f66f6ce7d1877991888b624cb9693e0f8a553f3987d17b60316193561c88dff80996927c305b461f0abb824513f57aa7d44b5efe2236dbf9903d89dc04c7a6fdec1db6068838377ef94533b1ea6d92e96eb15f874253020ebe80382a265fde8df439f535d8580d21215af31265f916867b8a9ea940af81d2fd094037871ef639c7c31c92357bc2e9b234cb80df700511f8765348c4f1808a052334a030c55f471f23d2a26e81a6d49f0ed32558417990024fde3b2609355e0dccc0146030afb0a3715f3b2372999d28054589bbb3c776f65c3498a8d5ba26b018a8b08e903b6a16df56eb6c2f25c244b1805554ecd417bb79f67c4723ad68a1d584e0a6bad0219ffff03abdc40a40d74c909d6c5969ca704a2c47de796e6eb989dbce5fb87abc8d48249036fd93fd4698121574a30b52e86d91cbe42f240cbc117e259f8f0311839e7032b03515ac5697ce3707644b69cf4206246c5517669520f654377275ea49bc4b2a8d103d0adb200f169d166e9e5e9d81af4e093b9041f3d0d1a958a01b0ee569b9dbf6703f94f2d084434d37ddeef352707684367afb4d47958181cfe051740bccbabe8bb03f0fbb7dd9b53dd7723dd25af7ab3de673e600ec3fe173d89367e5815ef07460f036c249ff03bedbe861f0739826cf58c51b2aa49d585abc685db16830172d2bcd9031af8f3406d416763f5a454c3badd4f2a46c6718ff1dbbf88c6236dc087f6a8e7033121a3e0234e42053ab25224b4542b6b0acd3747df58d5847fbb17449c67e845034326716a338902c7a9ab2fc3ea2f3246d127c3f93c431d9f131c813db570fc4b03ec0ae9cd3838fe503bc1b95f4ef6bceb787b61af6c35acaf17985ba22f10f23a035602f7ac1b3624f8a4ad0e267bde5d93cffa770f7692b569fce9041fb0aa5c8a0342346751f6e3da33637657399f21e36b01589b73c0892c5fa47d0cb8021bd7ea0219ffff03d1b98a2af1109990035484b831c6ac45c0fd5984d9d2f521ae969ff0a6a185fa032cac2a24829b353773ed48630305f361398623dda70988310944477c00b8cc5a036a8174032b088afd567906821b0d552929a62cd6abf5867a05c71f543cb25bfa032985f35ac048b808bafb691c38e0be54a43dddd59bca0e7b90cb3fb9d59c6c7b0329870c783a7db76ba69910b51b8824b8d3883cf91c777660dad478359bf9f3ae03b96f9cf6ef94a0ccc8559b5b1d07563d2b1e7b5c997eb4a2c1ddcaad242ee7c5038e5dc4cee2719f0ff12479753f2cb032bfe96eeed75edb399fa8aba6b32eef33036b085a429ae07a3324cb8a84c786b761d95206dd466ce3c8a9b24c03db04596703bc85b450a89aedd07d872bd64a380f41ac8c7d3b4b078b859e2ea6aeaa82338803539c4a0eb0d06a1e7265dd47029b1040de0df55af1c0d03203844500a09853dc03c34dbdbf1534b851000ed8704a263c51393a28f9d7236e2e29d5318b91726eec03631710005e4c266415ae96480ed91265996ca3f9db83de0537a72740a12f6b0c0317f5d82c586888f62692345f5c0a19daa9d6282a2f7e5b70d5e6405d61cf6c9b03965d7be8ecec83fb96be522c9977c8bdba99bd3122184808e3a69d2327f668190360320d27bb5fa06d28e1a1444c3fc79127232fcf89751968d304b01afe50605d037eeba4a194af59c1a397969be20fca14151ccbe8671110426680268276f4475b030ffa72f516be0d7c246c938e08b62f3029b22eb5bc2470e509364b0aa98167f9034af6aa1143bd52da01a5f674d6fd056eb3d64c4404c799da32aecc45d6a1daa0034db9dfc6c07be23ec3bacbbb30bd65da8b4c3375ebf67143a3f78efa8b6838ca0355b89c799b7367a12e3f36916c580a7c05c692c2d7454081332e73c1fa57fba203f426007ed69b6c7184c35c5a09961ea52c877882752c20e696713c89d3863b22038a046a9a03e046600ef64d62c4347fb174190cc68eb5c81d8680aaf6caa4e96b03e14da8e677d7bf1367cf4f82affb1d08dde4beae34d0d521989560196042014103b651ec2c50ab012c0ae178bcf78d72bd621eb995a4223a82cce3a2b37efe3d6d038c40aa81e345d742ac16f1847b9e923d01ba1071da92df0aa577accd62f2ce8e03cbbd81ab6eaafe10f46f41d716a332e8735dc6e282d130cbae6b2696c1f827fa0365e3c2140950f1882fa2861c42442ec159616b1c650b4201b9c5116ed271263d0384457af785b22b9927ed644b78e149e88d3e2f07c2665584210f69625824c1830323854148a2abec26ab9ea4ae470f21ceb558744f45ea8ec4c2190a97a08c13ff00581f034775b60761b266b809fe7d7ad099f545463806f29558e5339d6f60fd39b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03dba806f7854e36e2d5a172bdad964f8c2ebe8494897a7f9201dc9d9617861f4900581f03369df2687b35cba76c7755753e5601d4bba7cffa868a0b7d5192914dd6405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02379ca9937fcd73b8cbb154d52f12bb04c1c24981a6281db4d50dbf4d684755c19bc993344800581e02cdc6f4fbaf1017b1c49cf6308a872edbd711870c25826a213a8280fb015820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0263462a3822bf8e70995fa3e5afb487c6ab731941329426ec54703d35395820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e022d20f4b110ec13d9092915f0bed4a9dfb442bdaf885300b5a183287b85485c318124cef2ce8b0219121803f17e745ef63ebd72f822d01488cc0904536de816367dc56f0876d6922a783633038b5469cc0b44d2e9db0b955f797446486be8fdcd9394e3774a948e833e7d24bb03072cdc30ac11e9c80b5de8e4abdf9bd36f24346bc6b2d15be33af85d85559065032ba8750770e5a4c551c4c1837bacc16df16f760c54f83e6d434955ef84379b3203860222e57f686c9ab066d727165c4dc48c74360fb76329bab343bfc0fd0f65eb036c3dae84239b7b12d856e7639b4f5919c4366fae4112938ef721bf8fb063b0f60380fa2331e74be8763f9943e30785578e8d6fb354db499af617ac315e2b08830a0219ffff030a6ce6fe02bff1b75de7cf089b9f07ec04fea3806600549d7a97b932ba71988803af8bde051d20c605930c1a02adaa96e2e050a242c72bd6052b313473dbca192f0390328e18d1816b34757e05be47f31b577730daeab53124da1113016c3d68a487036fa977c74341cce882febd2520aa642944b59395cb70de209cfcb125beb7984703477c7c06b93d5abe9f95777186600364782a600215f11c343dcc1816c609b3df033f0ff1dc59fc71313d4b6d3b01a04dbdd2d54ed5da0da9f348c0c06fcf3fe941036d9bc80807c8076b4414bc4a5af1d61ebbc018e182f5f515dcd2ebd0a14a78540339999a2010055e3a757800b6093475ecc0f408e01b671f3cbd0ba2dfe27e6a2a0219ffff036fd3ef41defb086eec251560fe6d9be4c6a2c5d85c4acc43818bcae23678b3e103f0464b03cccf064b6ba7c78abb1a444cae24d5b091069e8f82fc8e68387c6d20037746cda5e593d69d211fad2607a3701eb1b500a88b6e157f9ae8a43686e2bc000309e12e8ee728c66e0adf1545fa238afe1778136d7451b9719534e2f9abe1a90f0219ffff0334798a85a8a4acacd23dc115fc06d5bfccbf9f4c4fee0c2fa2daec26d2feeb910306b56e43eec239a9e51c0383d0862f74e379f437edbe1711e021dece3b101c76032e48ab5d19f621487d5aa22c8c3267c68284a97b8e631475d322d8e7b017789f03b2df841d181768846614ade1ced23ee1da3a820cb4950862d5d1883281a32c37030f610584c8d33201e59983875f6efc4b83531cd9df633c0b2e6a8ac20f9790e203c5ae38c7e72bb0d5d0b37e61e6608969ba0323a70bbf3ee8d78f5ad3c3531a6103161f940fa3be226289aa4c980589ed25620077f6f43de6c7ff780ef18edbd1bf039adee46b226a029846ead94999b4b8099f5e94fa01fbb5355ccdefb5efb14e090319ca36df4724f0c8caf8f31cdd13612e952dedd6418803ea9b4e011be5026d2a032c55c2dc1036b12f076fa6b992ec236feca41f26b30b05bd0f5d3b2c010e7a8003caefafc905c6482552d526f390e7fd7614e59c2ee750f25c381909a60c58547203fe247c1a6b28cff79a5b68288d61f141fdac830f8a108b512276310d37bf720d0319cb78c3c056be4a2ee7714342e0c2802779aee2f99757f0de6eac341918695403c18f7a552ea135f4f2554039ada3c883666a490247390699969e59f2bfbf592603e64d8444d9e807adac51cce58f39114762f56b7ed5d30cb7421198055576e90a00581f038b4aa533fabde72e405fe4adbf787c0d19b3136008a570a3edd8fdce05c0412a031429e6c8bfc0bf939d05c76e4948bb5f5576e5e53d58f301b747d8474d62a2ea01410a03cfa54c9c989a9d371dd8c0bdbae19816d7962a56cf291e9f75bd2abbeb88d8a203087cd2d74d19cd5b71bbdad6da34ba1a9d6bf232d331debfeb8ee8d8048fa90800581e022a00d6dd8fbf187cdac84c31a747540b69c14d0dd18e2cbc14a7ddb8b95820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02b530d6bb8fda542e57acc1c11c8ba1ed193508f93eb9e9da973e35c3245820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02edb846397b821658f7d758560f1cae33066b31cf7fde36d3692a5d26434907d33cd603004aedbf0219800603f1a4b63ad4ce62990d7e586e28918b0ae63876053e4a51a6e90c6519ad76dc160322fb464ca8582b6992a768ee706e9c97bbcd8ff9dc49e3811d34ea9925ce64fc032f0bcb70e1abe5ca44d6334625fed63282e90c091387b54cf011a0baecce7f7a03b699d748b04b3f8cd87ea98f4682176bc632756e1ce6df20d1c35ce77881ed97039fdfe7653b043f4a2b30896d98115586432b94c93c4d9058efd8797325dc91ce03e46ae2235f88f4559b28ebd9111d0544ed99e50570536a364d9be10063c2e4770374350f3cb77409d14b21070871db39e8bca8ce30fab0180e4edd2fe71e5771b9030c989f5f7329323ba31e737984c3ad1842b90acfcb292683abf228277a2d2e720219ffff03440341ebd49a41b3750e6fadad6b0111fd88987b5edf1c2a43701ece64995107038689b35440dbdf37d4c24931e4ee7f70729753d6d06fd72e286fd81e92b420ea034aa624ae3efe87cea4a0d70b5c994036de97c7a69c420085397af86c94c99a0503b103e0260c3aa0cb520906bbe7578e2a12201c715fa148b44d8499d3a47dd8fe03e466152c67b4fa77498bc599f85adacba8b17da66c9cb05e2bf7afc9b890588f0398c42f9ab9199b3acdf4d71d9315d5910366673e521a4b126c912f1fcabec6160219ffff034e6da7d288848fc9f0692e238c79442524c8629cc91db5e381dd2a3cc825dc6a03e75ee3343719d4eb14454785e4932fbc2ce32b6f56ccf5037ccc4cc9787863bc038b49c4fb5938072372edc3f07597e7625d0431c54927da065e66b6ece6d9bdf803f7f23f0b0dd52cb4ac90f64a78e7028d6f129c27f47a20f45315e57e2edb976b033ac46e89ed5ed4700af778961404aaa4f5fe9154a5969a42843ef43115a1be220311bc23d116d66567a018fe812f7ec1244541ace448316b670fcbf90d719f46e703058ec124a8ba88e15a4642e3d04f5c966eea80304cdc0064a04f87e5fde9de0c03a5f01eccc6c7d153e5815a603e3bfe5876dd2ed0cbaca481ba9d603cc05d202f035b9c5728daa8e3034b4987036eea0b66b4cbc5155fe6beda6e7b61bc6347fb7e037eaef7433e560ded6e234b96831cb8a299f6bfe0aa1672eb3f98510e523e0bb40307b626f0dde902ca6f074828cdd814064deddf6b0d575edf91a288f6c9488aa30395736d062244ae5f7341a95a209c2407e5fe9fdf5d867573288c38018277355203be7e31be9fdda6357c98c7f4853921cfaffbee74c23cfaafb375a05b1e15a9650219ffff0376ad06843397ef66cf3051ffbd895348e4f119285be382c7b0d57346056d5b100300f08fa889f8efd51a5a1861eaa865c32843ec0dbb99a2c467d59a2608466d1f034aeb2b91e2bed2cc16e45e894e4106c38d6ff4ad1e59a1866cf141df2a6cc25803a58eae89c1246c442ff5ed99d911fa33774c6456c77ad9a975a34cb266350bd50399360b1090000d036fc06eb0241d65ede1e22ed53e30b5f64d5911839b3f4f19039ed380b1fb30fdebe37e745e30ae555fa301efd04511798a2d64e5f9d806a5f4039e47b993b882c5284a354aa688abc1ac03780dcc06a00da2f93d16caeb5782d10219ffff03ac87e36e5319e1c55ea222d8bbc3cfd6d61b3fca4204db19becb37bcc451fd530315cf47f0538aca517ea532be21790318a2497f25330fe1fc2a4c0510eb2763a103d005574b8cecaa1e4d9020ed2be3bf92e3963ca43bf7f9085fa1c26f27d34b9d03c95110d5ede1b68fd2d86286ac891c691432ad13e85f22aab18faa1eb107d4bb03e3cc69ac2c2c22fbe8e9d77b32c9d75ac06bc9e83ed5c550af8111565d42c2ff03bbd0f4bba80ad8bcea192f20928ae6552fc48ec518ab9ede4b641e3f100ff8d10300f698b4cae7fc2b75b02c76adad4746ddec09d9afbda9aa690daf90112a130403986eb4f22080b9280bb83c62024c12c97cfb3a2e6a5526c9b6e498ba7c071a78039a8f171c4e5c11deebfe5ad3508f46a68424ca0d2616ac3df12355765bc7b631034989925510847f56bd09c145707380adce35187415f5e105e560b4b2aaca51a803cf3fd5ede6d1db43437bc4ac094848b2e2a34b90af4ba42da5c08117d351a59a03128bb3bccaffdbaa5ffda65658b5b08d7f774bc8ff81ff8e8e28e4d3aac7b03b03307fda99e8f58c120c563c670fe7c2f0ad101bf7f5d6a89aaf22053442b8778503aac1c3818b00e9abaff21a0112744c16198572117a018e20bd10859cfa9e5ddd03ca4a7d4366cc6abe4f706fd6455bde9278d37b59fc261eda35551b61520897d60330603e90563fc3e07272ce5c3871380a177c3082e0aa127caed87991b83af45a0333e96424605cafb689b3f0254626ee94a3e32d41c100effdf034643a4ed0809c03d73bc4af1f2c30dec11c4f2127f93d82b2a3f115be149655964f1be54c4b7add032c2d59312df5b0c914656274a3b45dd0fa4a1b36189db319dab2eb78d11bd790033934a79507275815e8afec659a1e59385809f95687728da50d63ef2ba60d1f7603ef44482550df95fc65f1337ec178e490dce4d0abee7856b472263a89006069fa034665419d82307b0978a6b7eabcd95a085e7cf9340312d414658ad93ab115ae010325d48c247517f7ff07647921f64636164cfd36fd0628cac68452edd1f6c92867030baa45aea7db304b53ac53851ee1dd6ef1106b8faf5519e468c5823e8ec7afda03d4e7a777adaca7a7033905e4cc9919712165bdc232d0779b1a0069ded4a53ffa039c4f9c6946a2018e67d459586519108179557da575955c41a9116acd4babd92c03a74d51eada7cc555f32e6d06f2b6b65462f63eceda9446d6b489a5e84f15bd3003ded394ca4fb7425ab85f2b64f4a9a1ad50e769ad160b6c4abb242fe2302125b3030b2feb92c8f89d1fd4025b93577577106b6b1cbe33a4ac2378d36ed96e7cd3d400581e02bd9d4728554bcbd11ee64fef531a3622b099953d0d71ee541aa1d878a64706c00a3912c00000581e0262b8218fc769b3ee83f01d809e12a5d65ebfd8369ea90806c48057a93c49093dafbfc84712a218021982020335db81c736691f8496a34dd621e525a010ec7ad11ac9fcaef2dbd3725c05328b035743b9e11402254c87ec03f9ef1db818f8b03b57bb76e536c8d6aee2b37f8aa403154c167ea3200785ec18df7f3761c5f0196bc4e179dcf7e95868a21785ae831f03b25db63b38b7932b8b081cd68e356792a24ce23cb4f8fbc179155b3931cac1610219ffff03da750471e3ba4d760089ba23cf7c57f3a37d74fd20a0c8617f6faa45674c0b450374045cb59a5cce2c414144522708a6b01d53bfdd7c9a143604129552e0af2cc0039732be93edb7e1468d085a5086e922dd56790acec23c5633b628f4c91122484e03d6cde307dd180285b82bd662e39a9057f864540394342e0c7a3de2c57a60f73e03df00b2d3cc9aaf7cf3878464cc9d7a14f61c7a8666481f18f7b355860f06f83503ebbba500edd5e0d799f678b7a28e42873e7c4ce400273b68d26c4680f24dff8c03f06cf93cece3769a3f458ce042494d2d7563c69a10575fba35a0355531463c520219ffff03605369d2326789307d9e9cbe34a0447ac06d1bd8cd7e290d08cdb06ab043f4550330057cd576f23de643915f853f1a956809ba703fd7e1ddd8ac2b8522b0aee3ab03a408f882d2b589b5ebed914d522c7f2644a96b0ad3f1492c5747d615ff3aed9e03581a9f6c9a9ffebf499a5a737e8c6e3751cded1a3fa4923a92aace00405b375c034596194b49e83ffa76a715aa8cf195918294c338ba5984f5c572001e9c2c5ee2031f7cfa7f83d6841a7e1fc616342945564fa285b9798d2cd433ee8d3ba53a9f6e03c9ad4200354ef9cbbaf9d937bfafc89d1c70bd64b57feac214797ef494a45d1e03ea93fcb2ab53463f68ea1aaae813d9694a878c8831f38e708986aef73c5717520345c2a4341ca212fa64da70bd29bb1bade3359622257d90cbee46f95d2bd65c6b0219ffff032a0b3467f188c5dc257b3f5027762867ea0c8e22f456b834bd0e8d41c32ee09b038cfc902c1f9952b277fbb430bc80c0a4b35df7b073f854b49355b17fbfe36edc03ddd7e926707a0b7ee5115a82668cc7e2ad8e1aec8752d80b6e840e0ecc57c1f703b9284afa5f001baf4c6829083ce0527f19c3875ed1b0b2cda94e4c62ec04bdb0035f4f3b66f94d1daec51651e5b9a33eb8dbc0ea90f0a88f23dfe36005236a47510305de4330bf407d7e333d22cb367cc9e40da789b71d74ebbb906ac5272e110c3403ca26f3f2134469b7c3e0b4c71a4befdda217bdc6da8a2331e9c72bd85959fb4503b35005e34eccc3d639b90785263ea33d9e02e8634c70b5d76f3f8f9c37b91cfa03f09490d56b9721f7e5cf1b817de0388ae73814bb8ad975cda7525f207c7ae0ff03d2f0691e78eaac4302c7dcb1aa81e997941d8d7a121a37d7c0be91bf03d46ac3039b2b8e335cdde04f21804cb124b7a3269680fca8294e6fca53fa74b729b6efc50383fc3cab9e24b99e91b3e98105e29975ad7deb3712756c02a08cbcedb519f562030019d418897f88c1b72bbcfb3b156a2c5d9e9601a3fdd927241f2a20dd9a73fc03b4fb4ac48971e0c21a1e4e77602697b4c8add96964e4984cde5d0ed8cb2caf440301a7af6d4770b9591cdb9115fce837f1c32a6d1a1ac2df8ccb5fb634299fb7ac038122973066dbc6f3b8d5266f5b1e0d71c669f766e43d67dd021c53b2e81ab7d803512346813a9fab291dc9c87125b0b84c905ad7779f9e6b1fcc00ffa91a5e5bcd03c3964da07c5d9a5f441c5c4ea3fa85458a9de17a4377a733c0bf350ca313a1ca0302f48797c0b0df1a974a9aa027d4f5715c1d3f14d9a1f584d3d3b025a5ee5bae0333f8a1b6bb14d23cc94fc8dddb95e10002f1db6066132372a666406ab5e20f8103490e8879fc4f8a90265b865d5dd58f7fd5a5b8650793beeeee1d822fc9d7985803f2fe190efffb9379d26227926c6b843388580ada0b1ac97707073b8590ab9d1503197557c84c324d352229b51fc3490f858bc0118ed0333fbcd5dd23d1e4072f9103ca80b505aa62463c9182cfa3e9f0c28292112664d8fd3ea753896c79f6626d4203ef540ba75184e69b0cc004d495f23b89ee474939fee3f25b105c5b04f7a2127a03c75bf5c5e7fe7ca77a153124fbb30a4f0747251a934f89942b0b6007e7429e0703c83fe45ca5c6bbfae8e8f08f2dd2764fbc69afa3add4f1982b3e1b746963a21603cc7b26e623070ec97b3e645d4a4e32258bff6b0597b13923dba3450501a1e1ba03a72571c1a7548f7e4d279cb5673acc2ce560f0e49b4474e6fc250813a33df499034a589c1ff7c954c05f7551736df580c4e5c1813679fef8b09e13bc2028e6826b037c522072578d99241a8cc402e952bd4bf4e70dcf7f7a30d8eace2f084eac40e403a68d56d07484a77a04ffde6195121db303e2733c6296aad526784d1fb73d01db00581e023c8e0285cf1900e405e4bd465e219a261ce68dfc8bb46bae3a7ec61bb25820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02a8075e9efe61170e277642bc016106cb05fbbf530bb940c05351b2d9e95820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02030340c3eaa78234b5a8d7b6984550b7aef4dcddf380f80fd41bdd8f57c7a34bccb903f066e73a5ab76f356582aeb52015e96dda876e378db9b82a07ee3c11c925852203d528008d14b0ea68d1459f570ef0f1e2e6cf1ae4fd51ef8249636dd9dc2b8cd6038f2e37593761dcd15cda6c816d6491084b2d00ad3c1fdf1deb2abab4522ce3ed0361d9e735c3026a7766ebf912d3aebee68b957be15a2ca91ef96781cd527d0a320219ffbf038435cac3808c37786c5115fa740d8f4559645332fb324bfcfa5a0a2eea6e64090327cf05b796df0db9d7d45f3b0170992c4fbd32069fe722cc894340ecae0280080346c6ca1fc27c397199c13cd957220a4d2617afebb773ff19d6f36486b76c0d5c0369c03bdc9c9541c21db422d9fe988e3bc61936555787ddfaef8dff6648b2bf220219ffff03e75c34280a1e1a0130e7aca3e8672d1a3bbcee1d77d44b1fd22a72974ca9e40703f0a73deab7990a4ef86a318cc01a26746704d936b0b0dc140ffb3e195bef06a703c4f3db34293882bbd4c735c48ac39a4e2585a61e323d8e6f71e4394ff863917103f6f723d8186b7ca6cd8f7b552bd18ca43b70dbffa812da9692845a9d484d833203f406e06e559bba217b95d19a281dad191745d1f36baed4c23c7ff8d4e82aade003871cad120c9f525378edf9a628a263c745a78bd4157a599beb30808a69bed50d0219ffff0371a332e4e5fcba54eb9513711d6e5685c0bc49580912c50d8a0a329621f2fb4d0385c456d6052bafb3bf7819655386ba3d910f492c2910a5111f90a0d19d25c6540339308781ad8bba05feb2fa8448d8ce898fb892e3a48cd020fca1a5b914b8c0890373385fdf1d4cf0db13bd7b90b8de76d16225ddac8c8b5a2c7f587c271125df9d03d057cf424f960ff9ff7100981f9e78d44c4eed75c72691814fe7655ceab1e5cf03ed7fc30365b94dc3117660dc1ff1b6789d6d5f69c783e607e2d4cd5847c812f00377fdeb53cb20bbb58cbeabd6ae9dd945425e031379426655fdbec582d2552e8403e9d17e85f6f306f1a2cb53589f236a9010da57697a22055661a069ac9c23bdd60219ffff03de55e752f85277160ca0c958b626d215dda2b2212d932a332ae210d513f420220393420ee59f9e46e777f22f2358d112c200fbb0f857c38cd49ca1743f67c8e11703098d5cb8af66482cbd329f87a5d36a565123ea86e1b84c053b7da2f8a3df91560387a34ccc7a808911c771e3c6e0f5ce337c532a15f33acb467e187759b488a9ab03b2bf7e8e41c5ebc14f6bb25502940f7602f6401d83008ea5c632284b1b2ab51703a5e5608821359e2dd7899f2ccebc5996a15104708b6d0c176432961944d5d98a033a2a07a4149f7abcc62ccc216d108236eaa6ca25d8995492d3df2c9393e2464a0366cbf45c2030fc6292e3e3ff8d284ddf14dd52877d8b70e993377084239cb60d037d8d41815206c5f0cad4c7efa74b25b017fe4e5dbb78602a2ac33ec1f6506f830310bff45f08d6a3e5fd85c78e86f91ceed9e687c6b1caefba6c9822d98d37581b030e9e87024dfe942f3b54c682455583cde6a346774e0f5cf51d6d4b3a847374fe0319841636fd348885958e3098a09a95a190606045a882596044c74916b03cd757034b5ce9ea738066a055dfdb67fe913c40460dcbbad771a4c817de558bdb93693503ac86b5dd4c37b7cbb4174d27ae198c911eb843f2efaf8471d9c751bda4ca4e6a03fafb58f2da9159118ca12d3fa5e548ed08a3b97dddb0d0a23ca28abd9c825235039d01197a47fb946a137122d34dba1f2088bd3a645c0f25bea9d91f9979f451fa03af32d65d8776aa64f530b288a53827ad0a68b6b8157f1a823c6d23976baf863a031f6c3c8629190b2e0c674bc3526e5bc6ec2953df6d69b81276b88a5c6914949403c0d57044b0fcd1b905d766f8c4a370225a9c0cf1dbea99831bdaa530f0ef998c03fe67c8924abbba53dc3fd138e374dae4bd48c787de1e3c458f8180b4d99bbdb103fb9584fcee4828d57051389fd7b0f858d3a384e1d1ea2708d3dfdaf5f2b80ea203b1f0e0252caf7e384e90ec52e8c1088183cac7417ad0b3e28c0e044a5bc14f6303fb41e91bbdcc5e1aaae8df9700c1c4e7819a4746b2c96370b9ad4c2eb73b1f1f03a9170a06029ee85bbfa1a4425671ba86df9ffac37e893f852610d2f1e9d0b82b033aee03ea2757fd5fb1c6b2be9a825a13e9964d77d39faea9e74fadf47da10bd30302a018df65c3e244c004f44dfb8f6a437edad43b9d07ae320d798459dedf70b900581e03113852dee74ad8febfa99ddea6af9ad2796f28f1631cbf4791ee4b4ef05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e03f1a75bcbe79e3098dc1337e44ab01ae65d8210ebf501375c1c9014b3304878f317b5af08a25d02188400581e022ed51b8a614df515870318e87c7f683fa5cca9037b05d7b8f57e449c835820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02caf77d292916f019559fa894479f878f9f7fae27bcfc38a5954a7ed69c47366144e47e735e0219020900581f03d1c48fb50e219353cfb47172db25c0c309d78b14d3ba912ff01fffb798d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03d29663957ee0dae4aa956da6ed2655e5edbed1c8a415ea18992553ffbe0c0eec03cb5c06ca8a269e346691a9a5b5903b3521bf2b08cb0e6661b7406a2953e1c13f039f66cb897dd12ce94dc946ee9277c9609d94911a5dda51adbe78d4ed46694b1e03532dea9a2d486a38e9238aa125fa46ee5cc58beb6d7a140f930f915112d6c0db031f1ece742481bae0698023fd5886cf5be8b7efc86b6f3fa1c8b78c04f9abf6ac038622397967cf62d43a0bc5a799a1c0a160d875cb0c63c2246d45fe0e9dead2840328dad53e94e600e16331fba00fa2e30a45d764f3fe65ce9a537955d5c327dab1033ecea7ac7af0166e5acab7f99de2092ae2ed28d4015a6bc72b73dcae4572e6d30351dbed0078607a2932fb8fac6b051c9c4150a861b920f6e3e2bdaa7a41905f1903e99f98c6f3057b4118a9fa16b370da882c431a6b5d86a02c96cd040604240c550219bf6f0379670dcb9e05d5abb8f0ff91dd92591197c03b8f3050666e87a62e6b06f763ed03b2af213d7f943824d7745f371bfd477c502954958fcdb432e90768b73e6eda980342776febfff8238bea4a5d07080bd59e7dc2920558b4f034c2d3b5e1b190cc9e03b2ee05bf74b2778eb42aa92c2684dfd96ceef1c13945e2ee25f7892ddf580e97034887b53329e1649f98c8ee08051065ea3b6c3208996b9cd777f604e6f28d51fe03a2fcdc451317b41a57f41c642f5707440bd1f6cd382a34679d78575c5213ccac03c4ec75b0dc750b522c5c275a92615aae28a91c304bcea4166118519bde6e0dd203aed03054438d58d9df8ec7379daa953507733b8588edc30ba8218a53a2941b110346a749e9c085bdae32057a23737e9ed4a2920181c86b095a77b8fece6bfc3a180219ffff035ec2a3bdefc77a6e28a5a9c9e0cd2f44e4dad8541a45dd7b19eaabfd059da102039781c273b709f60c5e002faf2f2e575086140368fff0d5a78e55e875551e406b0219ffff03f6505eec45a3333e967dd07a2fca6c4c46022ce3ef7f1f8284c48c2b2f652af6036fec3b9b8e8424b1f5b734a10d70b5c57bf279903ae7d6fa809c9945f7384ad0030dab9bfa75821e67f2d346e5fef4f99c9ff4fb9ebd9f3a2fa96e54116c72ce03039d99969e57379077a76ac460eaf793d3ae5dca1a363d0fc6ae9943faed37aada03af2c278a9c2a5f9faad7fabb5118899aeba061c7496d5004b5f992d8ed99c4b70373f9e7ce8f604e3cfd98b6450327c48fc4e21e0723fe24cb36f307bfe1d6f7c403e9ce92ccebae7e91013a85b5f9e5d9c214b8b10458e506b444763e41888079d3034abc70ae670a98f36b74e3270a7d835d2062a8c808475c9556f6d587af86519d03ea39af5155a5e6756def4154244450d0b92db15ce575eb8a374e0c64d03d9e6203e0fb998c3862acdc676f1b2894ead0ac1c3806268a0223751c26aa528fbf7eff03f162f10c99b896604049cb0ccb2ea774a6c2f3076348a00166c18541fb8e851d03798160a5346fef9a5a70373c7f67f81224e0471e9b86ed337d38ede03bc6dd0f03a8a267999fcb620a60c89fc18cb70c8703e0ce206065f37dcc94e99d44d71f810337a13ff13fd898079357e9bfbfc3da1969b18da365c250fbccd565cb97ca34e700581f03ce7b1f7a132ac95b7202aabb486604ad8af10d8d747dcc1dce47302965105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03c60801b4048bc95de2b37eff6b641d56a07b4ab863938759f922b53be9677be200581e02988ed9ca2b0ba1f0c0d9f294b947e56f4ee65613fa7c968917f01d51c448019e2e804b251b3a00581e026cc869e4f53917c40b9bc6711be7923f6b86e5538f1a6ac40f8b0e28a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e028ea50b7964fc041a4159fa03658732c3b4a06d3b2aeeda165050c706655820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02cfda133e13b02bd74fbdd9dfde0c7f9494d88c6ab54613416b0ecaa9925820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021908700219ffff0353e1e00ae1dd51e6ab3a5fde1ea00a8ff2b0994c2a745397ab9fcae937a1fd5903a30c74e204c070ca575e639e41212a182219513cd6dce7ad60874b5e6fad2b07033f0437d0ebb7a6a456fdd7db2df487a65c79e0c91ea0e7fb519b2ac25e204b49031cbd5a1a4732ef718f81684227017c2b4a7ce3ad3b2bd20fdd5091a7906d303503c93000deb024f09068d8a9463ed48ff7a096f648f1e62e2455cf16be94d3f75603f53525a2b0f99fc11945e3c1d81053b2d33c70f0e631877a8a52be10b348718a0348b75a5f195d3c23748bc35234850ba86d51e1def297fac3fae5605d05b891b9038aa1b95eb47dd925991ed5fd636394c36fcb697700a51b45ff314bb721d7de110310fddb29756d0105eafa0e69e6d351f111a5cfad8c16ec9f796e654cc01a32db03f0060441275f6fdd158cad5d7e817b4d02de140251b437260052a94854d41e3103dba02deea77fef3f1b7a6835c27cf1e3a81b573de948b52246f68577a16c889903fb6b7e10d8c011e0393959dff2c1abcfa3ffe6dc464f3b7a924176163010f01e03866aee14e2ad5db877be4c4351a929d4d9a5dfa6cb9c808c5f00c28268f5938e035c111587844d5280e8c28f1e91380e48707b766df0e2c7e4bcb5724d9e2020280219ffff03b562d57b698138248caad5fe7d788f137086bbb7e702f65f8cc0b6da6cf9f7f8033b83220e9a4fe0fe402aa51973f429f72c4e3b953e953effc69d8d1a9c1cc0dd03e0033db505862409002f07627372b672d3b457dd4d86009318e2285f7f43280a036f6a677a6c0e41718528e36f72fd7b664921d5e5d22668156a67d31646da7c80036c3d735c842d0135fad8c3e1219ee373442eb6914893883715fa0522a9b3c759036b5838c406ae0ef2ff13983ef1deefa05bd67408bc8cc80ac33f2d82008cc1660368a400940a558d6d57b4b7f290d0b4669f3653c7c470d86e5d7ffdc351a58901034efba55309c9c3002d965639e077fd37b9398b4e07637b6b490479279043167703f91e8b11ea7761c23ca9b96640f9981bf2b2dd055a1e8948d591b1d1b4b72b4f034cedb855c749a35ae794e2adc0defc755b377f9562ed9826fe753b8b96dcf76603102d61ef180da5d8db7935707a75cadad9201ad415eb3a6815d204736e6acab5035fc353e2cc24154b48ae2993ca7726fad24c813a0005b02d69bd49b622a95a2b03f755c3b5f5a853db34fe9a5c31d752203d9a644a76221de7f4e433edb1a77aab031fdcb4556e393069eb4f7aae10f491ee67a3c89958a49b5308ee1be3894174b8031096cbeb607394ec2434509c8b42e35ca9644f553924415077e307811c61850c0219ffff039c2395aa57704810c6bd7ea9100be41361e694277785d873815628627e2d5c000304dd5145b61bf1f675c1fc74aedfb1aae39d1830195aac4770d141a5fabe1b1b036034608003c389afd9e1b7e398ed580417eaf7e873e6df88d3061fe2441cfe6903edc737da248f5341e69dfab21930ce0a771192006622408e7da9b0762d078a53032ae50479991369f968359a1df049a4cd1b03283f2c90a2be9addda0f36f37f0003da02bac192c1ed52df9220552db01501bf269f350f724e728bab0d6dc8f0b3ab035191ae25e23d4de6345142ce1e195a474bbe11f9e31cf4a74c284a0f3c2ee233038ad125d0706137c066c450f6d4404f86f009b4d6f753a0e6d9e4e894e69c89d303d09c7a0985eeebf3f9027155156efa71aa0cdfed7ff11a35165cae6f75b14acb03f69dc43cd31b14202764670122d65e612917f6c5900cb46bd91d6725bcee27c703148bbb8d4258920138ed95efb7a12a2bbc03efb059d37bda0adbdcadd14bf7b603188b308f812d3f0672ebc7bc63c3f53bbec09a1dc319bee573194d3a543cbe150350db007108a5880682fd05bcbcd3af967afc8192c59cd2d4a96d7baa5149c3a10322ac04c0ff22460f8a6ef7d1b6604a53a2f688724023ba23ad882978f16cd6c9032e5faef295dfd37a99fd1b71078697e66a0b10d8c7cf7d4faf4dd81235315f6a0390043452ebec4718702e627de30bade7e35a106b5834c9de26de64ebcd41270a03ef86792dcac18b4e4c020bce4c0ea5987ed54d16bf66dc38196be5e8d95d6853034535f06eb1130ac507e8810ef9a9a092f4b9acfc52a67cd20d4579f19cc1bc6a038d2834e8e8a9cec36e516e62b90071707408df491f37e9244a28e2108c44db7c037c7ca4181c617674a7c655ecd186078c969798ca2fe9039b92460d0930680f77038713b7a825a71321dcf7c292f2c40be7414c7ec024e286ea3d0d116ffc509e90030736740e39e719e21361c3c2e3f81dccbc4ecff17565a1bd66dd3ae483c3f8d2032c231475bbb652d4f007b0bee4293963a50a478924fee75be1d20f98697826a603acfd551c78ae25cc2fd9c455124950709a62368fe8f90081b4477ac83080cd6f03988162eeb7c20d15a4c8757ab1a942c89f19e600aaff9140e87f22bca2b0882d00581f03bd2e8969365b59e138a43bd6028aebb6e1ae6c1bf688b47f5690eca068405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03cd2cdbdd277317f0879de0e587972741b1d5ea30cbdb41922dbebb8dcd8ca9ba0394fc8ddd4575c57ef2f26e86ddb0da30663f2e3f9439fd25edf36ebf1116522f03abd03e0c212f185e288982fede0707be506c43ed17f8025345c507b2456f9058037db57be4d023741d7ec4c9f988abcdfd47e9f7f71ee39f0658cfc508aef7c57e03a5b3a9fdeb39ca6dccf0273e45af7eb7b1702712feb305c26f1c8a6d3b387362033d4894abd5c32c34694f0bd84f6c73a35b96b8436241bacafb1c03a9fd998fc900581e0217e0c219b58f64a42415630cf12d88372e03bc059c78d09e53929164ce5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0276792580cc0a0d0d92d8bfddd4b046a897d146dd1c3ed2adf47ee91219410103b4ca22451d6cebb0403e28af7e0d10f8e1a4c586cbf72b3aec3fb58e22ea5eb601410500581e0209c41b130d387db64e89c263f03fc31592b58296965f22926c6e65e7205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e02477dfb476be7a7b7076f810f756bc4a4ca1428cb07b43fb00fc96b66225820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02196c01038a7f2ea0249ef9d9932004ca6ae817d60dcef0de7a5b779b5e18fa3b261fa64d031c5b9a77c3a56ea1a7c67fc85a6c459acc694e21f656a6ccfb4ae23aa93fabb9038cd47fc87a17d1053b17e8d16337624a8b4f7a365baca77e7c7e1a53ae000f2b03b2b714554ab9a03fe0ab43171830c8e70062ee9ea5afb293b930255ca075074003ee242a4525c914fd13a36f9f74cac20134639aee171169323ab143f8b50642ca0219ffff0366358a9127e5e31cbdcdb9728077c4745a895fd9ea393a1b61e977f963a8222b03f727cb9c56f63545e244a546199ccde51b1048210d2ee77ede7fb497f641d12e035795e1fa4a049bd2d272fae96e6ff6f62961bbe0a7f7001673602dafb20d454003e479f1b45a2243143459afcb42fad806c42ee7207bb69c6229cfc12d38b874a003dc27c605cf69616e2768afab44a8b68e8ce8e6b1e3664de3076be1a161c6e44703db17c079d690656965851ba06985243b71d9abb8f579b0c7dd489eb1694dc4fc0320c3042795c65620661ed9cb43b2e002222bd6f48d90002b24c6c093e5b8c8940303d55cbb7723636f728f64a3baccb17ed429b0f2f4fbb610a159f808e099a59803c0ac67952593fb4325ea46fe54e3b06624fe55f3aae0b301ee25fc22907fff1c031137dc6a2c2e4be039123610f21f16baf855c5d96b16da4cb61100bc5413593e03df213d5d4d8b5190cbc8b1f4b174c00d94687e58f1faaa75a75a29f71d293eb903746467d98eeee27c6b363904c85ed02406963503b32e2265976dac34ad03539703e69113cd7a565a6e46ace0d88d15d6d6893538bd734b909160ac6a6cc29223ea03df988bdb52b7ca0f8f22bac490b8e717a40eb6979cba13397401956ace3c85910219ffff0219ffff039c91d5ba33ffbb5d6718d31eff358060eb8b6a8c8f4ad666117293e0e01fc6f8030c4c048d99e777514ec10b6ecba5558a5152e67b92da4e8189eac88059c4456a0219ffff039e731799f3d5234faecbacbc47b76fd3541b8cd20f05e9b08188b85248cc284803d4467e5aed6b9be8da472b53710151e59f8ee6d0fb89dbe2cf0369a7c7b6e9b40348de182ea2c070654bc20284b1f8444c8c521890e389e3d3cbd18f7849e1721c0389e7a6bca3cba67abcf573d394d98e7b7a854ae30a28cb3ab57f7aa611a0356303d8389a7c55e94c40782429c1eb1f233dcd9974c17b809cf8ea4b850fc78e28ff035bc900f5ae94420e9cfa583aa6baa555aa0e5f04905905f625936adba2497a3e03b8cc707f5d3552363afd64c3756e3f6c6a23cc827bfc524e9d546c68d7ce5c2c030e78ca90708bcd69efb3c822d7dffa9a02d0b66aee417a5c05e441874a2307520378e0baceaebdf2b11d212f273d1f31b4ea9a0db34276bc291915166e3a76f66f03b096515a642d0422bb3e675280674692800833ba308f6175a3c3a5f511a7c9660393a8b74d9af3c2eb2ba928c3f09ff0199f44274fe1b8bbf80e6b00bd2e0bb28303cef340e78e55fe909ab1cfc7a0392b09dd51f54c3d79e6194ad8880fef0541b603b72ff83fa705f04ec1b81dd4554f64a3e33f1d4004007d23b978466f9a36b4830364f72fa1c2622a567c0d3831526e42ded6c4a6f2344d604a5dba80d6a181fd4003cffed49459425b0d2da7f272441098c41282ee65b532143924353989cde8d1ea037e0be922c58d532e35b8cb330c97cd2c028be4cc65a66628df8f663dc5dbd81b03e0d4dc333d4ffea0224bc146974cebefd76edbe6ac28c2cff2e6367b936780d103240529d170cff5d9d4c54fe762757d24d0cb8aee37f756e31b7865f8ffd59588035b6f1e49eac2a2e0f25a23ceed3427eedd124ad8117e2a0508aef9b7138515f103b52155e3c1ea78517da7f0d3844e824db72df6e5a01e1d2518ff6a02845d55660379f983383f08c8dd59cd430952e40476e95ea6a23e19dc2fa9e81a397973718003172d0eda34b35f60a6d5395fea8760c024d2ae393f58cb782f67aa2d05bd4cb00371812d80ed0ea3f04f8f2843a0b140a15a8934864fd740bc0f8881ab77875e97034f7116037000ea9230be83925d5edb323c31b48868f9679d80c98bf6092a81d30385aa49c12cdad808fbd9a2d1692cced2e17984f731edee63ce7d6649c3cdf016033330cc1dff7e05f7b6ee23c730968fd49674c20d3982e99ad6be3f62c4fe1b0b034e77ce884ffc656c434d2299effd3e211499df5c963d9121c4dcab6a153285b900581e020b1755f3810eea0ab86fb07ec9cdb847e45e49803dc72c82a7d66f3afc5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0342d061d07c0396c02cab4f74cd41f448c48c43434582c32fa002b229b105692400581e02ee713f4e03e4a0d7f2a90ae4834f72106e1e65e42f3b2ec4f517d6b367470e35fa931a006400581e0238d98e4c3b9cbcc40eef1ee76986b6877984a0e7b6956830dd2f3455af410100581e027ebfd882c0b8a8b5c05eef33dfd0345ca219820a3cd0af31450dc691f15820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581e0238a5bda3c70246f0914c50983e21f20a805be98e6276310dee8b8495c14b4a817c7f2a2bf142ec876b0219160b03c8e521e04254386e003f7bbd99556ba574c609b0e200d359604b0cff7866af3103237f5a097edad31f1d89d2cbaafbf83169f6eeb404e7905b712930d926270bf803ecffbdae71e859f97752b3d56e3c39565782f8bc17b669aa3ed61efbfb5161d003b5022cdda3df9bc44253c9bad5ebb86c3e3160898cf0416a98136e59dc7f7c380219ffff03d5e1b77ddebb082898e4e23a96213d93e1eb466fc26a6fde217b80525b2dc1c1032112e772020f83d545a62ceec7a1168c695f36325b9c3039812afd53d43b5bba03f0368e6ab233f0e7ce6aa4cf462e55df6998b01f54015d2079dd8ede97bb816a03c0a8c690ec681fc2e26239bf1a1047f52326a3b8315dfa726039ef901a3cd074036d35208b96ff5be93018275342e980f6bbd89ccad3d048f824f5cdd625df1ffd033d865cc0f302bd91d0e0ce07d0af72c0e2e107bb2de7538216fa025e9d83e8b103c82c48fcabdc7541207d54fffbf2cc608a0fd984551c05c188651757081fbe0c0309e04c9e6909ad7dd039762f4e30c83f7f20e0dd5d98d9b9c91dc0cc984572c2032a62254e826db842766950715f6c93927e4b49d055802d6396f613c00091623c033778ef8d23a6da68967ac5470a395c4e26d3de8eb442f511693d302f4a3cacbf0219ffff03ce89a44639931f8f1fb8962782ad52d56c979306c090d5043e04192320888e5503f17e89d8d1202c099d84a67fa39c4fb07af2de100ba4e4ec1949532582b54c2b03724e93400753ee59606ec1f83c8b3838f76180391db0df52d98161e2ac91272603b8872eee1c1c88f0b890e9d1804673547b13bc750b60acb2a10349d38ae22a750219ffff03539ea2fd00723098869d28018a3b05fd4a7fa5693296792c4294a7524e39a4bb0398cbb06ff100e9ea192dcb248c1e4e9cd44dda37370e9d94aa039cad5158a0ba038fc6c323e79dc6ffa32384532ca8df63d366d203852aef524efc5b0b1f2fdc2b034216bd61b4676f39a50e9abe414960ed3b79daee20398525467e6489cd0f29b003b6c58b078bdb68dd95486753aebbd418e8ee8bbc65fec3756d1c25e23b49e457036b6ad326b5def7225704c129d9af40f4642951813d1507e319fa727ace71a05803e6c42ebc271bcae4d7c8cfa012cc434d0ac312b27c4a0df426270393e89136b0035e4082705a1fd46fae9698c01fa449b296acaf29118af7cb109b2ff5e135322b03bd26937e13ce92f3911d1d5e1fac601b933e0a2a6a57e95434010807b867f340034cb41f2bff31b91eac04c1a4c2a3f84f8978b1e803eb859993bdd96187653a510356ae8434c3df25974936e160002949712d0b8dbab2d5850ec750bf490c779417036ad1a806b81b3d7b46f13bde63547d8f5a828ab8ea7a616066982f14761aee6c03ff0ab0fbb69bbfbe938fd7de76f40774049d1c379882a13193f944456cf6cdef0372b29bf841025a0ff6e03499ba81204a17fa79a70a325227d6b7937d45ab8f6903e4821aa975f63f622a5beea12e61130e06144114d296c6de21b81a1f426db4fa0219ffff03d7c6b3fa4aae186f4d4be482827cf8d5334f21f7113b6fe392414c7b8fa1b9ea0219ffff05581d02a65bd257638cf8cf09b8238888947cc3c0bea2aa2cc3f1c4ac7a30020f014b02987192535af43b35a8e0190c34021920020219702b03c07c4048481c07b118748b2a30e851cf5c6c87af6212257f8845eb9ce07a02e403012fab999f402d6b302a07d3f7973ee8c357d5db8c7991903bd54d54d507cc23035923155adc8cd3aceaf27c07858d290a3b85fc378fdd98e9f4f7f70d157f28ba03c55b2981a6fe08260cb6a076c76858d56aafdf255d0a12a2c50abe35d468c7e7037975ea5712162b9b7339943572a7180adc20238024a429eb2e0928128e39556d033909e6c87be78bf54588e521ebdded1d467e8104d18958f7dd079010ee22155703867f6119f66c88787520dc8899d07d0e49598fa8dde1f33e611871eff6cd04960219ffff033307aa27831bf49ba78f1d47a092c180664e709902579fa9b13f147523cb8d0b0219ffff0329d6f7d3c1260b8be12e0e506b6f090a20038b4006ff80babc6c798e50891df503e9c47c8bccfa7364ec6c3d5dd71ec05a15da0ac8111ec3a218a963843ca4f44e03c26d4fc6efabc1fa16b6b91e18f6ad576e156cc6506af88d5858488a5d4546eb0346df579e8e01b9f5eabcf5a8fb9ab122c02677630ebb8b718ce561efff51cf770375030fc96c9b2aaac9c3270ba8b807966d58e1033d6bc3636bdb330f148cd22e0395ca7850aa3c51492680ccc0d0847a4ef39d48df817e4e66b6fd64c35ca4485a0219ffff036c9c5ea6492f79beb757ba4a5a86cc21ecb10dfec704dbc42196f01fc3bd8a18037e2386574bdde6a6241ac226e77aed7fa0d3af0e85efaf721dd0f7e1703307a703fa3f5df803d4b34d35d641a4dc7c594006e285e44e7016fb963ffe7a5af1e7bb03649cb983132917b142baa50fb45b8bbcc6a3bf860fb669d86262ecafdfb6151a03dcf8be433f6f3140ba294e13c78baa869b70ebf53b5665dc0af407d111b87fde038f61eddde7c18e54c27deea077463181fc47c571d2fcd0a3a3c880a576f5dcaa034791d02f3d4ed75e8c1322183b29a62125ba1ae9b7b95a81632c0368b454158503076e3c62327fc9058e9af74bc1503790e7f5b23487c9b243bbc76cf2185dc21e0219ffff0386070c501d2dedfd5854e6b427ebd511b9ec12864f64ad25f5724bac6070a7a103005aef95f8f141a39d5a05154e82c0fddcae72797c4f2b3d538a444e6d86edaa030bcd7829abca6ca5289405b6be80fb7528e08fa8a499119869499f3fc466ea04035650135745bcd57372655370d488d77a0656a86c0527a839dca211dce4c7157e032705742db4d13cb35652dd66f6824dd9e5571040af9f1f93df3d0a4a6642b51b03a8dad6fd934641950fcd0ba0a94794ee6018e4e7be54a39694c761e765589348030214f4c71b42e0fd99a2c5a0530ef0283ac350b6601e9ad3a1eb33757971c34803a8d69241ee74452bba003dcd989c8d8d4a17c7ff876cfcc980636b1f8b8e30fd038979a102cc529bf29218092a80e58205585d7c61f3e4c76095516589e5cfd81d038ed46910ce68c811cfd436c73d73e42bb83751a732f9ec608119772b78e311a803ab19ce157de5de4ea44218001dcc7edd121a4b61a2f01154bbe5ef646fcd9ec403ae323f944161990d516b671c169b34454c56c0dc2895baf6b8843d6d6e5b5abe03cecc35068fde6bca3cb34be29161ac3dfcac8cf6c528d92017792da172e94a7e030d6bd1e0b89ffc54168f8cea45193aa51279799a2ac9ff58917fdda65e71ff3803b2091aba4f213da33a192510c2d17984526962bb7ad1560b8dab9e3cd5eb1a87030c35f6d742e4ac57da4e8698f5672e14809faf4c4fb9afae45b146cbc41dce80030afd0d577712361808587052750e5ab6e1bcb666c02b5d9c2d6fcf566b6ce02c0308a98f938a979d6532460fca9bedabd238df73a3abde35f5d6fc67055d8efd1e039c67fe8d25b4b72281cef0dfb313edb0627b653cd7d1700059e09d118f5877bc0341b53daa2cdec4abbe38794b75882c81df0e2bdb4c5aae9d2aa86db9e1822523032cd8f70d4281067697a228979f4055c5aae3bc5d42b61192cd88352ead70bf6903bb13dd1706c920f0d825dbb556b595d3c6bf1bf06c1b455b8522cd1c81ec36b803a3f11fa7542504a039690a679d4051556f3996ac796a0953180c2b110c7205d4030b28257e7aad2fe8ac5a0dd60bfaff0466b4a33d635d7d312aafab1205e90c5a03c11239c2c578f6366d46479fd0aaf7e0933bb97898d6f278bd378df9f58b6f74033fa79b6f6e5d3296eccddd86063f7dc84503f1761aa618448e5c4303c244568c03c256e8ad5ec9824e212ebbaaaf50e3793df293f71b97881eb947294e1b85becf03ec4d1da50900fcbdd12bb5dc83fa1dd4c8c623a12695587ac68540a72b3e9c0803b3c6cfd25f6d37c228028a9ec88dc3f9ecb98f7a776202355fcfcaf46e0f8679039ff2ab8d80bd7110f4f88109deec8d5fb382c8dc4aeb48a3659173bd670249cd0327e3795bc5d6c5c106bd17fb530630f081282c18727149ffbeeb67037b6499f903b0dd521afa67087841f751fd06a91792fc2e7fa10a8b25c0434a11fd6c95c77f031aa2715fc3749ff71e27d28322d4e9ebe587dfb722332a2d2fc48d654a34ae3a05581e035c606158f0440c668481a4c457cff85703e1e117cb3d6c3f07c19855400c11479f2c230a85174905581e03aa9705b369190b5183f2b073797e29cc07766928dff9c307e9ec9994300401035713eea1764d8f2464447ba59fba61e15f1a5c4fc8cd610f8fdb3af4505a1a5a0141080300ead19e58881221cf02e877c91f01944607fa694ec5d1b2b5d1ef280c9acde103c07be3267e504d3a12fee2d6d54cee3a2fd10362112fd1e965df3b27e1e320ce05581e036bcc20594481b8d81021bef54a7c6be4b7ddd6913563d0127fe99d6ab00c0f4701af438415655f05581e03248da3b8720a2784a17616c093aba16d03ef0ee6535979bab7e32c4cd00848047e4d4c9d366cef05581e034a1b12a03d5a86cb2528dcc8f7fe3dbef88565541101273545612d5a400c1901d448511d91f23b36f55e0308a77a72a67a37a2f70a706ddb1fafbe055a13a156d9967ad677da6dd1aeaf3a05581e03122e75bb2c083f1d2d69d81675788d63efeaa7e70484159369c5f76ed004010219dd5a03a2396a9ed6f1c26f33f287eff0b756e1c4b994aafd76e682c3b2a3591c382ad003ee08a098b615eb35befb53490f2e05a48eea3d0b79878be9e07fe72f119c7a03035fa10b9debfc6b215c5d850b2637b12bf01758c6f468f6de3efb6b5235518198036354dd74770a90b0d36cbbb832b80408fb6a1a3a95aed95705a71c4004ee0c5d0391f07bde9b9b713dec0892f777b4171ab5d79550fcaa3f727ce371a579fbfa0803d9be28a4b11068c97e32cb61b4689e9b53027c142b734b29e86c44f1a717f798039014a6aa6ef1f464bfcfcd7e5e69d23d6fdb70a7c59b82b427994389859a137d034b7136d8b9196da29a931889357bca83dc5024a19980b3a823609e027a7d28cd032bf1c60f958a3208e625e38b99c425ef423d2d7e6fd0ad28ae077290d064590503af42f0784bc62c055ba67eeb07d6e2803bdabdacdbdb587fc41d024053b299c203081ec485bf3270f85c3f65fb49ec4a39420946da7614eb7c2109341b49b2df0303850504463e8d8be67556790cf187db8dc166db818c2f622b532f4402eeafc13f039995ac4e35f0c738509c2e3a662cf588bf3532cb3b4c3b57b2252f2bcbb8133c0219ffff03a0dd053e237402631c1143d2b091ffe2cf8976c51ecfd5f3a4ee9ffb1fd492090307b915372335d8d439892834230eab0a74e5c2827bb6eb9a79cbd84b3e126369039a105c4238c5da6415135af7116574a5b00d0e2867b3275ceef2805350da77a303aa054982670793e2e90bd8e74dc603327b9c0f10b8f203385cb270105cf983ae03238821def48781961b4813b105941038ecee6859a6ff51e71adb08e529d4124b0321a15b14aa1d0922ca24e3e859d45b187674666180ccf4bf3f23278f6ffabea803815cf9d7ee19e93844c2d8bc2ab65392e26328a99c052bf932e423006bbb78fb03366d5a9588612a223872ec3a857dfdcd6eef3931c5a1df39671940984a8c402403ca3ab1de8fcc41d12a6f1164d49e77969d0862d7f81924fe6aaf920c0b3a384d0219ffff03c0c27676d2bdf8a48899317c9bf382ab7e493c966646ddac1ab7713c3ac146950353c5e32a2498ca30da94de8c49896e0f01156ee9b1058165a41f2caf07faf450035b3dfa50f1cb4ff47add88abbda3f85342cb0eed97d094ff357a562a0c479a69039a8417bb2e45e35071b139b3545afed10937c9a7078a6708fa30b9c8e2238426032543d287d0df869ff2ebd4a0b7e3d1a777bc9b2c297d072f6b428325c1757dfc03223030562cbbf3dcd031da9a069ee99aacac77615f929eb6921174149680b27503bed7f41065fb7c01a4e94ad082f3d1258f36540b42e577950c6d1f9992cbb7d60219ffff038783f41b3afdf0834e6a42d4c4ee38346b12998e6b243ac58d1fca79eaa149b903eda5fb657335a57ed988a60795f3216d92542d298d68de9d5f66a011532e7d0e03e903bd445461327baa0859bd0adabdd1f2dda510fd398dec055ae0b41757fdf903a5f5a931db46cc393e56f3469dd46c6543554eaad090d400478dc19a3d3dbb1703dc3a394c7d9680788c8d952bc714676fdd073f1bbfd42957decb5147a35dfea80219ffff03e74b1af12d32d6625b6e9af4f108418707cef62d83099fccbbb77a12fbd553d10219ffff03117181bdd1994c779539c2ccf1d27bb08dd7508d23b4915ee591310e0070a25d03abee9fa26290e923ce0bc1dafa074085b5eae1d5bb8effca8ff89de5ae704945039c84c4f87921f21e03bacbcfeb05c06b99de3e380a9c5ec7d8c8496048419215030cb0e65e7d1e87bd15a2a912fbd6771cea78c87c087fe73a89912fad93803727036df5a4f057289010386d89611b6ca8c655a8c8f78edf787727f867059ee2c39f03af4d4fc041a2b67e93e67f442db79ec8bee16442cb66ea516f8f82466fa49e79037fa0f837c9938e7ff15a5306e65560961f1ac260ac91680af1e4f0ee1911c2a4037740d45f62bfaf1c66da3d3a07222f3f622c0d2e7a925307ed728ecdd91aedc203727b28ea80c0ada3ab2c35d8a40ea053fbac57ef7a6a8a6709ebc2def29b78f6036891cf8a17095faaeee8445712dbd95e1759044a1a30748ca820bc33478807090307c2247f223e3931da22f0611b887e3ac718c1043564e6af6839069253ccd4dc03dc7cc1c5ce71194bd006b743b09df24f69ca172a082e7a45e51973f6b72ef68703db4fa5455b0496bdea4b760e7fcfbec45a997dcdd6130e93f9fa80000573713103b6a0772933ec89fc42f219ca5a43c929a582ddf2afde8555ce60169533959097039c86eed3ec1498d68b170b938357713d93da8b9b472d49f746603980b657824403ff8d64d37a029eeb37a76a4306b670a63819ee6917678b83569baf2be3faa09d03dc194815f6d22cf0ba77425bddf4259fffb92c5801e90249fb833ffdf00bae5103bd92dbe09bd257b339440f07a0ff827546e6402ca152a9fc38b2f871a8652e7d033bd217dea5a41592a72c511bac28c0ec5846214e05dd0d18330af19aba067b4d038aa6239758091c9df09d3afa7af3adfdb3c39d85e99fe19bc680f10b474c33720318f9563305fb9ed27279b34d068f8a9bcf557895cccd3c8a61a8b3077fec99740325117ad1f37de8a2f85959655b16eed70d9b58735e22beeb113f192030258c90039c2a3950f0065d88a122be2a64186b3598fdf5927995c1185be74765a3c434b10315ce924bd41bec9366e0e121f751cc6986f3954d3146b667c6e9375d54c95e0d03d00ef616504882a2e0afa8d87b056cc18f658a799d3a62481b22a66a6f5d246903579be1a5816ff5940887ac3cc29986ccb9f46712b6b7d3894c137b8a4d80405e03e06f96fc5f9617497abe22fc13fc3f561521fb8c70be3100cf6a44b47e54f6d8031110c4a2cc01357891418fd9548aa4a1ec5ec1a46b26569cc7a2f8f6949e6039031e3f4c3898c6c6a72f51ba78478928b33799f08a33f4632e03b5ec16ebaf017a03c3ad48b1fd0bda8c5d6680bb2921da7fde7fa49b8ca2dbb556bfd50173ddaa410335f0ef42cd0a70dcdffe95b132101256a5c5f23c8d2118fcf8c6d07cb191327603040ea67430a4d66e71add4552c4582eca4ea957ec08e628cde7869041ab9b6ce0359b871c2c8f973525863f18c2f6f18a44eb2f8840fd6a1bb919905b4f01e421d03be833adcfeeb21b1c9649a72411a8f3433f3a15c6c4d9d1a0117cae337ba000603c56db9c25ca86dd976de4d2ac3ca14db6b8281bc197cbb57d8e487330fc885060354bbade28616422c37385e189a28fba5409bee41180fa08089d58145e9f4d7c20302b5f2df1cd36888b2cfa5ff5c19a2c210f0d1472073efc437fefe9493c2c9cc0313581fa11ad687397d4912c381a6dc0ea10ea7cdc13c29e29a0a1a0dce53bc9103dcffdc07401d5fadd7506f43499428f144476c02796d82fa09344dce86d660fe0332dafcd2dc2d255c7ca2c926ac6fbd0e91a7e9ed1e0822e8b285058d97a013e003264c9e0ff37d87df9a6155c0e1551697e3d3674db6cfb3ef341df887bc6d75a903696bdd89d8801a173361a0c73a96198e7c43ff939323719910dd788f2693597303f1d900423b5b8f5c83c62d8b7c5c8ac90337d4ca82a44e36151a42a391dd0a31033b89c27479ecffb8887c2b739e31b8723a3001b740bb2ffe7d26379e90be9a0404595a8860806040526004361061021e5760003560e01c80639871efa411610123578063d1b260d4116100ab578063f3dced3c1161006f578063f3dced3c1461061f578063f3e144b61461063f578063f6932b0d1461065f578063f851a4401461067f578063fa461e331461069f57600080fd5b8063d1b260d4146105a4578063d8837daf146105b7578063e0af3616146105ca578063e99bfa95146105ec578063f2fde38b146105ff57600080fd5b8063b07482d2116100f2578063b07482d214610528578063b3ab15fb1461053b578063b80c2f091461055b578063ca68d8f61461056e578063d13a35e61461058457600080fd5b80639871efa4146104ac5780639989d481146104bf5780639a09b285146104d25780639a307391146104f257600080fd5b80633ba7cadf116101a657806373679b6b1161017557806373679b6b146103f3578063779e45fc1461041b5780638575654f1461043b578063869c6b4b1461044e5780638da5cb5b1461048e57600080fd5b80633ba7cadf1461035257806341f4a9591461037e5780636aa476451461039e578063715018a6146103de57600080fd5b80630d5f0e3b116101ed5780630d5f0e3b146102e157806312a0ddc7146102f45780631afca626146103075780631bb943fd1461031d578063355b97181461033257600080fd5b806301617fab1461027557806303b87e5f1461028857806308298b5a146102ae5780630c00e013146102c157600080fd5b366102705732330361026e5760405162461bcd60e51b81526020600482015260146024820152731155120819195c1bdcda5d081c995a9958dd195960621b60448201526064015b60405180910390fd5b005b600080fd5b61026e610283366004614c00565b6106bf565b61029b610296366004614caa565b610a5c565b6040519081526020015b60405180910390f35b61029b6102bc366004614d76565b610b6d565b3480156102cd57600080fd5b5061026e6102dc366004614de8565b610c30565b61029b6102ef366004614e29565b610e5a565b61029b610302366004614e9c565b610eb4565b34801561031357600080fd5b5061029b60215481565b34801561032957600080fd5b5061026e610f01565b34801561033e57600080fd5b5061026e61034d366004614ef3565b610f35565b34801561035e57600080fd5b5061029b61036d366004614ef3565b602080526000908152604090205481565b34801561038a57600080fd5b5061026e610399366004614f0c565b610f49565b3480156103aa57600080fd5b506103c67370cbb871e8f30fc8ce23609e9e0ea87b6b222f5881565b6040516001600160a01b0390911681526020016102a5565b3480156103ea57600080fd5b5061026e611006565b3480156103ff57600080fd5b506103c6735703b683c7f928b721ca95da988d73a3299d475781565b34801561042757600080fd5b5061026e610436366004614f5d565b61101a565b61029b610449366004614e29565b6110d1565b34801561045a57600080fd5b5061047e610469366004614f92565b60046020526000908152604090205460ff1681565b60405190151581526020016102a5565b34801561049a57600080fd5b506000546001600160a01b03166103c6565b61029b6104ba366004614e29565b6111dd565b61029b6104cd366004614e9c565b611241565b3480156104de57600080fd5b5061026e6104ed366004614f92565b61132e565b3480156104fe57600080fd5b506103c661050d366004614f92565b601f602052600090815260409020546001600160a01b031681565b61029b610536366004615050565b6113d6565b34801561054757600080fd5b5061026e610556366004614f92565b6114e5565b61029b61056936600461507f565b611547565b34801561057a57600080fd5b5061029b61012c81565b34801561059057600080fd5b506003546103c6906001600160a01b031681565b61029b6105b236600461507f565b611611565b61029b6105c5366004614e29565b611784565b3480156105d657600080fd5b506103c66000805160206159f383398151915281565b61029b6105fa366004615135565b61187a565b34801561060b57600080fd5b5061026e61061a366004614f92565b611a9a565b34801561062b57600080fd5b506002546103c6906001600160a01b031681565b34801561064b57600080fd5b5061029b61065a366004615236565b611b10565b34801561066b57600080fd5b5061026e61067a366004614ef3565b611b5a565b34801561068b57600080fd5b506018546103c6906001600160a01b031681565b3480156106ab57600080fd5b5061026e6106ba3660046152c0565b611b6b565b600160ff1b81166001600160801b038216806107125760405162461bcd60e51b81526020600482015260126024820152710616d6f756e74206d757374206265203e20360741b6044820152606401610265565b81156108aa5760405163052f523360e11b81526000805160206159f383398151915260048201523360248201523060448201526001600160801b03821660648201527370cbb871e8f30fc8ce23609e9e0ea87b6b222f5890630a5ea46690608401600060405180830381600087803b15801561078d57600080fd5b505af11580156107a1573d6000803e3d6000fd5b5050604051632e1a7d4d60e01b81526001600160801b03841660048201526000805160206159f38339815191529250632e1a7d4d9150602401600060405180830381600087803b1580156107f457600080fd5b505af1158015610808573d6000803e3d6000fd5b50506040516000925033915047908381818185875af1925050503d806000811461084e576040519150601f19603f3d011682016040523d82523d6000602084013e610853565b606091505b50509050806108a45760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572206e617469766520746f6b656e206661696c6564000000006044820152606401610265565b50610988565b806001600160801b031634146108fb5760405162461bcd60e51b81526020600482015260166024820152751d985b1d59481b9bdd08195c5d585b08185b5bdd5b9d60521b6044820152606401610265565b6000805160206159f38339815191526001600160a01b031663d0e30db0826001600160801b03166040518263ffffffff1660e01b81526004016000604051808303818588803b15801561094d57600080fd5b505af1158015610961573d6000803e3d6000fd5b50505050506109886000805160206159f383398151915233836001600160801b0316611d53565b604051848152600080516020615a338339815191529060200160405180910390a1600080516020615a13833981519152826109d75773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6109e7565b6000805160206159f38339815191525b83610a00576000805160206159f3833981519152610a16565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b604080516001600160a01b03938416815292909116602083015233908201526001600160801b03831660608201819052608082015260a00160405180910390a150505050565b6000876080013542811015610a835760405162461bcd60e51b815260040161026590615312565b610a8b611d83565b6040518b8152600080516020615a338339815191529060200160405180910390a16001600160a01b038a16610af05760405162461bcd60e51b815260206004820152600b60248201526a6e6f74206164647228302960a81b6044820152606401610265565b89610b44610b03368c90038c018c61533a565b8a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508c92508b91508a9050893388611ddc565b9250610b5560408b01358b3561216a565b50610b5f60018055565b509998505050505050505050565b60405160a087901c8152600090600080516020615a338339815191529060200160405180910390a16001600160a01b038416610bd95760405162461bcd60e51b815260206004820152600b60248201526a6e6f74206164647228302960a81b6044820152606401610265565b610bf16001600160a01b03881687878686338a612390565b9050610c26866001600160a01b03891615610c0c578861216a565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61216a565b9695505050505050565b806000816001600160401b03811115610c4b57610c4b614faf565b604051908082528060200260200182016040528015610c74578160200160208202803683370190505b50905060005b82811015610e0e57601f6000868684818110610c9857610c986153c0565b9050602002810190610caa91906153d6565b610cbb906040810190602001614f92565b6001600160a01b039081168252602082019290925260400160002054163314801590610d2d5750848482818110610cf457610cf46153c0565b9050602002810190610d0691906153d6565b610d17906040810190602001614f92565b6001600160a01b0316336001600160a01b031614155b15610d4b5760405163203b1cdd60e21b815260040160405180910390fd5b6000610d81610d7c878785818110610d6557610d656153c0565b9050602002810190610d7791906153d6565b612b73565b612baf565b90506020600082815260200190815260200160002054838381518110610da957610da96153c0565b602002602001018181525050600160ff1b838381518110610dcc57610dcc6153c0565b602002602001015103610df2576040516311b18c4b60e11b815260040160405180910390fd5b60009081526020805260409020600160ff1b9055600101610c7a565b50336001600160a01b03167f2d978b051248279fa3127485450ca814a26b9b0938be9f714eda15eaec5ca881858584604051610e4c939291906154a0565b60405180910390a250505050565b60405160a086901c8152600090600080516020615a338339815191529060200160405180910390a16000610e9b336001600160a01b03891688888888612be2565b9092509050610eaa868261216a565b5095945050505050565b6000600080516020615a3383398151915284604051610ed591815260200190565b60405180910390a1610ef73380610ef1368790038701876155c4565b8561307b565b90505b9392505050565b610f096133f2565b6040517f0b3b40bc6027444e59029877c53be6734ca3724242753ffe5aa1a6066635211f90600090a132ff5b610f3d6133f2565b610f468161344c565b50565b610f516133f2565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03841601610ff657600080836001600160a01b03168360405160006040518083038185875af1925050503d8060008114610fc4576040519150601f19603f3d011682016040523d82523d6000602084013e610fc9565b606091505b5091509150818190610fee5760405162461bcd60e51b81526004016102659190615604565b505050505050565b611001838383611d53565b505050565b61100e6133f2565b61101860006134e4565b565b6018546001600160a01b031633148061103d57506000546001600160a01b031633145b61106e5760405162461bcd60e51b81526020600482015260026024820152616e6160f01b6044820152606401610265565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fede97de789011d2becb9fba8441864c3b17f4a20f7ebf0a77e93f30adc30e207910160405180910390a15050565b3360009081526004602052604081205460ff1615156001146111055760405162461bcd60e51b815260040161026590615637565b60405160a087901c8152600080516020615a338339815191529060200160405180910390a1600080336001600160a01b031663534015b36040518163ffffffff1660e01b81526004016040805180830381865afa15801561116a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118e919061565e565b90925090506001600160a01b0381166111b95760405162461bcd60e51b815260040161026590615698565b6111d16001600160a01b038916888888888787612390565b98975050505050505050565b60405160a086901c8152600090600080516020615a338339815191529060200160405180910390a161121d6001600160a01b038716868686863333612390565b9050611238856001600160a01b03881615610c0c578761216a565b95945050505050565b3360009081526004602052604081205460ff1615156001146112755760405162461bcd60e51b815260040161026590615637565b61127d611d83565b604051848152600080516020615a338339815191529060200160405180910390a1600080336001600160a01b031663534015b36040518163ffffffff1660e01b81526004016040805180830381865afa1580156112de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611302919061565e565b9092509050611321828261131b368990038901896155c4565b8761307b565b92505050610efa60018055565b6018546001600160a01b031633148061135157506000546001600160a01b031633145b6113825760405162461bcd60e51b81526020600482015260026024820152616e6160f01b6044820152606401610265565b601880546001600160a01b0319166001600160a01b0383169081179091556040519081527f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c9060200160405180910390a150565b60006113e0611d83565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6114056060840160408501614f92565b6001600160a01b0316036114525760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b21039b7bab931b2903a37b5b2b760611b6044820152606401610265565b6114626060830160408401614f92565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156114a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cc91906156c0565b83526114da3085858561307b565b9050610efa60018055565b336000818152601f602090815260409182902080546001600160a01b0319166001600160a01b03861690811790915591519182527fd58299b712891143e76310d5e664c4203c940a67db37cf856bdaa3c5c76a802c910160405180910390a250565b600087608001354281101561156e5760405162461bcd60e51b815260040161026590615312565b611576611d83565b6040518a8152600080516020615a338339815191529060200160405180910390a16115ea6115a9368b90038b018b61533a565b8989808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508b92508a9150899050883380611ddc565b91506115fb60408a01358a3561216a565b61160460018055565b5098975050505050505050565b60008760800135428110156116385760405162461bcd60e51b815260040161026590615312565b611640611d83565b3360009081526004602052604090205460ff1615156001146116745760405162461bcd60e51b815260040161026590615637565b6040518a8152600080516020615a338339815191529060200160405180910390a1600080336001600160a01b031663534015b36040518163ffffffff1660e01b81526004016040805180830381865afa1580156116d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f9919061565e565b90925090506001600160a01b0381166117245760405162461bcd60e51b815260040161026590615698565b611777611736368d90038d018d61533a565b8b8b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508d92508c91508b90508a8888611ddc565b9350505061160460018055565b3360009081526004602052604081205460ff1615156001146117b85760405162461bcd60e51b815260040161026590615637565b60405160a087901c8152600080516020615a338339815191529060200160405180910390a1600080336001600160a01b031663534015b36040518163ffffffff1660e01b81526004016040805180830381865afa15801561181d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611841919061565e565b90925090506001600160a01b03811661186c5760405162461bcd60e51b815260040161026590615698565b611604828289898989612be2565b60008860800135428110156118a15760405162461bcd60e51b815260040161026590615312565b6118a9611d83565b89356001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed19810161190f5760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b21039b7bab931b2903a37b5b2b760611b6044820152606401610265565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197a91906156c0565b905060006040518060a001604052808e6000013581526020018e60200160208101906119a69190614f92565b6001600160a01b031681526020018381526020018e6060013581526020018e60800135815250905060008c8c90506001600160401b038111156119eb576119eb614faf565b604051908082528060200260200182016040528015611a14578160200160208202803683370190505b50905060005b8c811015611a7a578e60400135848f8f84818110611a3a57611a3a6153c0565b90506020020135611a4b91906156ef565b611a559190615706565b828281518110611a6757611a676153c0565b6020908102919091010152600101611a1a565b50611a8b82828d8d8d8d308e611ddc565b95505050505061160460018055565b611aa26133f2565b6001600160a01b038116611b075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610265565b610f46816134e4565b60405160a089901c8152600090600080516020615a338339815191529060200160405180910390a1611b43888484613534565b610b5f336001600160a01b038b1689898989612be2565b611b626133f2565b610f4681610f3d565b611baf565b3d6000803e3d6000fd5b80611b8757611b87611b70565b600160005114601f3d11163d151780611bab57633c9fd93960e21b60005260046000fd5b5050565b604051601581017306ff0b40e9091053eee51fa1d482ce5d852f523360611b825260206000600484335afa611be657611be6611b70565b6020806004808501335afa611bfd57611bfd611b70565b60206040600460088501335afa611c1657611c16611b70565b6000806000881360018114611c32576020519250879150611c3b565b60005192508891505b507fff1f98431c8ad98523631ae4a59f267346ea31f98400000000000000000000008452606060002083527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460208401526001600160a01b0360558520169250338314611cb357635960139160e11b60005260046000fd5b60843592507306ff0b40e9091053eee51fa1d482ce5d852f523360611b845230831460018114611d2557826014860152836034860152336054860152816074860152611d206020600060846010890160007370cbb871e8f30fc8ce23609e9e0ea87b6b222f585af1611b7a565b611d48565b336010860152816030860152611d48602060006044600c89016000885af1611b7a565b505050505050505050565b611d668363a9059cbb60e01b848461369a565b6110015760405163fb7f507960e01b815260040160405180910390fd5b600260015403611dd55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610265565b6002600155565b60408801516000908990611e3d5760405162461bcd60e51b815260206004820152602260248201527f526f7574653a2066726f6d546f6b656e416d6f756e74206d757374206265203e604482015261020360f41b6064820152608401610265565b805160208201516001600160a01b0391821691611e5b9116856136ed565b9250611e6681613778565b15611ed5576000805160206159f38339815191526001600160a01b031663d0e30db083604001516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611eb857600080fd5b505af1158015611ecc573d6000803e3d6000fd5b50505050503094505b6000805b8b51811015611f11578b8181518110611ef457611ef46153c0565b602002602001015182611f079190615728565b9150600101611ed9565b508260400151811115611f845760405162461bcd60e51b815260206004820152603560248201527f526f7574653a206e756d626572206f6620626174636865732073686f756c64206044820152741899480f0f48199c9bdb551bdad95b905b5bdd5b9d605a1b6064820152608401610265565b508515611fd35760405162461bcd60e51b815260206004820152601b60248201527f74686520706172616d65746572206973206465707265636174656400000000006044820152606401610265565b895188146120155760405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b6044820152606401610265565b60005b888110156120865761207e868661203b86602001516001600160a01b0316613778565b8e858151811061204d5761204d6153c0565b60200260200101518e8e87818110612067576120676153c0565b9050602002810190612079919061573b565b61379a565b600101612018565b50612095826020015185613954565b602082015183906120af906001600160a01b0316866136ed565b6120b99190615784565b925081606001518310156121085760405162461bcd60e51b8152602060048201526016602482015275135a5b881c995d1d5c9b881b9bdd081c995858da195960521b6044820152606401610265565b60208083015160408085015181516001600160a01b038087168252909316938301939093523290820152606081019190915260808101849052600080516020615a138339815191529060a00160405180910390a1505098975050505050505050565b601f193601356561aefa81eaab60d11b6001600160d01b0319821601611001576001600160a01b03811665ffffffffffff60a083901c1661012c8111156121f35760405162461bcd60e51b815260206004820152601b60248201527f6572726f7220636f6d6d697373696f6e2072617465206c696d697400000000006044820152606401610265565b600061220182612710615784565b61220b83886156ef565b6122159190615706565b9050612229856001600160a01b0316613778565b156122d7576000836001600160a01b03168260405160006040518083038185875af1925050503d806000811461227b576040519150601f19603f3d011682016040523d82523d6000602084013e612280565b606091505b50509050806122d15760405162461bcd60e51b815260206004820152601b60248201527f636f6d6d697373696f6e2077697468206574686572206572726f7200000000006044820152606401610265565b50612347565b60405163052f523360e11b81527370cbb871e8f30fc8ce23609e9e0ea87b6b222f5890630a5ea46690612314908890339088908790600401615797565b600060405180830381600087803b15801561232e57600080fd5b505af1158015612342573d6000803e3d6000fd5b505050505b604080518281526001600160a01b03851660208201527fffc60ee157a42f4d8edbd1897e6581a96d9ed04e44fb2ab53a47ce1eb8f2775b910160405180910390a1505050505050565b60006125dc565b62461bcd60e51b600052600160e51b6020528060405250806000fd5b828152600060206000600484600401865afa6123e8576123e86054700419d95d081d1bdad95b8819985a5b195960621b612397565b505060005192915050565b6770a082310dfe168160c01b815260008060206000600485600401875afa61243657612436605672049d1bdad95b8c0818d85b1b0819985a5b195960521b612397565b600051915083836004015260206000602485855afa6124775761247760597c1562616c616e63654f662063616c6c206661696c656400000000000000612397565b60005190509250929050565b6770a08231d21220a760c01b815260008060206000600485600401875afa61243657612436605672049d1bdad95b8c4818d85b1b0819985a5b195960521b612397565b668b0367c240bc6b60c21b8152600060406000600484600401875afa61250e5761250e60587c1472657365727665732063616c6c206661696c65640000000000000000612397565b60005160205186801561253a5789156125325761252b8786612483565b8390039650505b909190612551565b88156125515761254a87866123f3565b8490039650505b50668b0367c240bc6b60c21b8452898502633b9aca00929092028201910204905084801561258b5781600484015260006024840152612599565b600060048401528160248401525b50886044830152608060648301526000608483015260008060a4846000885af16111d1576111d1605470041cddd85c0818d85b1b0819985a5b195960621b612397565b84602085028101858061260357612603604e6b0b656d70747920706f6f6c7360901b612397565b5060405182358b15600181146126ad5734156126395761263960557111696e76616c6964206d73672e76616c756560581b612397565b63052f523360e11b83528c60048401528760248401526001600160a01b03821660448401528b606484015260008060848560007370cbb871e8f30fc8ce23609e9e0ea87b6b222f585af16126a8576126a86056720498db185a5b481d1bdad95b8819985a5b195960521b612397565b61277f565b60018c3410036126d7576126d760557111696e76616c6964206d73672e76616c756560581b612397565b670a9059cbbd0e30db60c41b835260008060048086018f6000805160206159f38339815191525af1612724576127246056720499195c1bdcda5d081155120819985a5b195960521b612397565b6001600160a01b03821683600401528b83602401526020600060448560006000805160206159f38339815191525af161277f5761277f60587c147472616e736665722057455448206661696c65640000000000000000612397565b508a9450602084015b838110156127de5780356127d26001600160a01b03821663ffffffff60a01b851660a01c600160fd1b8616600160fc1b8716600160ff1b88166001600160a01b0389168d8b6124c6565b96509150602001612788565b5060009350600160fe1b811680156128c2576000945061282b3063ffffffff60a01b841660a01c600160fd1b8516600160fc1b8616600160ff1b87166001600160a01b0388168c8a6124c6565b9550672e1a7d4da9059cbb60c01b83528560048401526020600060248560006000805160206159f38339815191525af16128875761288760577c13776974686472617720455448206661696c6564000000000000000000612397565b600080600080898b5af16128bd576128bd60577c137472616e7366657220455448206661696c6564000000000000000000612397565b612b05565b60009350600160ff1b8216801561297457600160fc1b83161561296f576770a082310dfe168160c01b8452602060006004866004016001600160a01b0387165afa61292857612928605672049d1bdad95b8c0818d85b1b0819985a5b195960521b612397565b600051955087846004015260206000602486895afa6129695761296960567c15746f6b656e302062616c616e6365206661696c656400000000000000612397565b60005194505b612a10565b600160fd1b831615612a10576770a08231d21220a760c01b8452602060006004866004016001600160a01b0387165afa6129c9576129c9605672049d1bdad95b8c4818d85b1b0819985a5b195960521b612397565b600051955087846004015260206000602486895afa612a0a57612a0a60597c15746f6b656e312062616c616e6365206661696c656400000000000000612397565b60005194505b50612a488763ffffffff60a01b841660a01c600160fd1b8516600160fc1b8616600160ff1b87166001600160a01b0388168c8a6124c6565b95508460001060018114612ab157600160ff1b83168015612a8957612a826770a082310dfe168160c01b6001600160a01b038616876123b3565b9650612aab565b612aa86770a08231d21220a760c01b6001600160a01b038616876123b3565b96505b50612b03565b6770a082310dfe168160c01b845287846004015260206000602486895afa612afb57612afb60587c146765742062616c616e63654f66206661696c65640000000000000000612397565b846000510396505b505b505088841015612b3757612b37605a7c164d696e2072657475726e206e6f742072656163686564000000000000612397565b8a8152826020820152326040820152896060820152836080820152600080516020615a1383398151915260a082a1505050979650505050505050565b60006040517f5d068ce469dcf41137bcb6c3e1894e076ad915392f28fda19ba41601d33c32a68152610120836020830137610140902092915050565b6000612bdc612bbc613b71565b8360405161190160f01b8152600281019290925260228201526042902090565b92915050565b600080612f7c565b6000846001600160ff1b031015612c0c57630b3f79fd60e41b60005260046000fd5b604051600160ff1b8516156001600160a01b0386168160018114612c9957630251596160e31b8452600484018681526000602082015289604082015273fffd8963efd1fc6a506488495d951d5263988d25606082015260a06080820152602060a08201528760c08201525060008060e4866000865af180612c8d5760206000fd5b5060206000803e612cf5565b630251596160e31b845260048401868152600160208201528960408201526401000276a4606082015260a06080820152602060a08201528760c08201525060008060e4866000865af180612ced5760206000fd5b5060208060003e5b505050506000519050600160ff1b811015612d1b576322323ba760e21b60005260046000fd5b19600101949350505050565b600181341003612d4257631841b4e160e01b60005260046000fd5b600080600080846000805160206159f38339815191525af180611bab57611bab60577c1357455448206465706f736974206661696c6564000000000000000000612397565b604051672e1a7d4da9059cbb60c01b815282600482015260008060248360006000805160206159f38339815191525af1905080612de657612de660587c1477697468647261772077657468206661696c65640000000000000000612397565b60008060008086865af190508061100157611001605571045cd95b9908195d1a195c8819985a5b1959605a1b612397565b60006040517306ff0b40e9091053eee51fa1d482ce5d852f523360611b8152600080600483865afa905080612e6657612e666055710459d95d081d1bdad95b8c0819985a5b1959605a1b612397565b5060206000803e505060005190565b60006040517306ff0b40e9091053eee51fa1d482ce5d852f523360611b81526000806004808401865afa905080612e6657612e666054710459d95d081d1bdad95b8c4819985a5b1959605a1b612397565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8085612f12578235600160ff1b81161560018114612f0357612efc82612e75565b9350612f0f565b612f0c82612e17565b93505b50505b86612f48578335600160ff1b81161560018114612f3957612f3282612e17565b9250612f45565b612f4282612e75565b92505b50505b60405182600052816020523260405285608052600080516020615a1383398151915260a06000a16040525095945050505050565b83601f19602085028201018480612f9e576333f3e07b60e11b60005260046000fd5b50600034118015612fb657612fb289612d27565b309a505b88606052825b82811015612fde57612fd18a82358e30612bea565b309c509950602001612fbc565b506000600160fd1b833516118060018114612ffe57801561301c5761302c565b61300b8b85358f30612bea565b9650613017878d612d87565b61302c565b6130298b85358f8f612bea565b96505b508886101561305d5761305d605a7c164d696e2072657475726e206e6f742072656163686564000000000000612397565b61306a8183888688612ec6565b945050505050965096945050505050565b8151600090810361309f576040516387741f3360e01b815260040160405180910390fd5b826060015180156130b1575082513414155b80156130e357506000805160206159f38339815191526130d76060840160408501614f92565b6001600160a01b031614155b15613101576040516387741f3360e01b815260040160405180910390fd5b8260800151801561313857506000805160206159f383398151915261312c6080840160608501614f92565b6001600160a01b031614155b156131565760405163591c75ef60e01b815260040160405180910390fd5b428360400151101561317b57604051632b32713d60e01b815260040160405180910390fd5b8260800151613205576131946080830160608401614f92565b6040516370a0823160e01b81526001600160a01b03868116600483015291909116906370a0823190602401602060405180830381865afa1580156131dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061320091906156c0565b613211565b836001600160a01b0316315b9050600061322f846000015187878688606001518960800151613c64565b905080156132535760405163f70b432d60e01b815260048101829052602401610265565b83608001516132e8578161326d6080850160608601614f92565b6040516370a0823160e01b81526001600160a01b03888116600483015291909116906370a0823190602401602060405180830381865afa1580156132b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d991906156c0565b6132e39190615784565b6132fc565b6132fc826001600160a01b03871631615784565b915083602001518210156133235760405163a7c6745960e01b815260040160405180910390fd5b6040805184358152610180850135602082018190529181018390527f5018f79d04d45a1d0ef7df4f8a02c44c1b0b59cd11983e44f1e9dfaf071db2199060600160405180910390a1600080516020615a1383398151915261338a6060860160408701614f92565b61339a6080870160608801614f92565b6133aa6040880160208901614f92565b8851604080516001600160a01b0395861681529385166020850152919093169082015260608101919091526080810185905260a00160405180910390a150505b949350505050565b6000546001600160a01b031633146110185760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610265565b60f081901c6001600160a01b03821661271082111561347e57604051634bd934b560e01b815260040160405180910390fd5b6001600160a01b0381166134a557604051633480121760e21b815260040160405180910390fd5b602183905560405183815233907f04e0c6a722afc105ccf81d8792757f388d3dad9bc137b2e269cfd6ee99faba999060200160405180910390a2505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8015611001576000606060e08390036135d5576040516001600160a01b0386169061356e9063d505accf60e01b90879087906020016157c1565b60408051601f1981840301815290829052613588916157e5565b6000604051808303816000865af19150503d80600081146135c5576040519150601f19603f3d011682016040523d82523d6000602084013e6135ca565b606091505b509092509050613644565b610100839003613606576040516001600160a01b0386169061356e906323f2ebc360e21b90879087906020016157c1565b60405162461bcd60e51b81526020600482015260136024820152720aee4dedcce40e0cae4dad2e840d8cadccee8d606b1b6044820152606401610265565b816136935761367a816040518060400160405280600f81526020016e02832b936b4ba103330b4b632b21d1608d1b815250614102565b60405162461bcd60e51b81526004016102659190615604565b5050505050565b60006040518481528360048201528260248201526020600060448360008a5af191505080156133ea573d80156136dc57600160005114601f3d111691506136e4565b6000863b1191505b50949350505050565b60006136f883613778565b1561370e57506001600160a01b03811631612bdc565b6040516370a0823160e01b81526001600160a01b0383811660048301528416906370a0823190602401602060405180830381865afa158015613754573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efa91906156c0565b6001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b60006137d4838360008181106137b2576137b26153c0565b90506020028101906137c491906157f7565b608001356001600160a01b031690565b905060008083815b8181101561394757801561381a576137ff8787838181106137b2576137b26153c0565b94506138146001600160a01b038616306136ed565b9750309a505b30613826600184615784565b82148015613832575089155b1561383e57508961390b565b613849600184615784565b821080156138945750878761385f846001615728565b81811061386e5761386e6153c0565b905060200281019061388091906157f7565b61388e90602081019061573b565b90506001145b156139065787876138a6846001615728565b8181106138b5576138b56153c0565b90506020028101906138c791906157f7565b6138d590602081019061573b565b60008181106138e6576138e66153c0565b90506020020160208101906138fb9190614f92565b90506001945061390b565b600094505b61393b8c828b8b8b87818110613923576139236153c0565b905060200281019061393591906157f7565b88614265565b508392506001016137dc565b5050505050505050505050565b613966826001600160a01b0316613778565b15613af3576040516370a0823160e01b81523060048201526000906000805160206159f3833981519152906370a0823190602401602060405180830381865afa1580156139b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139db91906156c0565b90508015613a4357604051632e1a7d4d60e01b8152600481018290526000805160206159f383398151915290632e1a7d4d90602401600060405180830381600087803b158015613a2a57600080fd5b505af1158015613a3e573d6000803e3d6000fd5b505050505b478015613aed576000836001600160a01b03168260405160006040518083038185875af1925050503d8060008114613a97576040519150601f19603f3d011682016040523d82523d6000602084013e613a9c565b606091505b50509050806136935760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572206e617469766520746f6b656e206661696c6564000000006044820152606401610265565b50505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015613b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b5e91906156c0565b9050801561100157611001838383611d53565b600030733b3ae790df4f312e745d270119c6052904fb6790148015613b965750600146145b15613bc057507f568575351b1514757989de9c786c66097e2ae26e38a5fd1b885ac2dd02b8b0bc90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f9569cad29571f225e7f2c73ecd677d78be383da74efd13f4af2bade05dc1a8de828401527fe6bbd6277e1bf288eed5e8d1780f9a50b239e86b153736bceebccf4ea79d90b360608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000428460e001351015613c7a57506002610c26565b60006080850135613c8f60a08701358a6156ef565b613c999190615706565b90506102208501356000613ccd8a83613cb860608b0160408c01614f92565b613cc860808c0160608d01614f92565b6145a1565b905080831115613d1657604080518281526020810183905291935083917facd4baa7803154e33bc54ca36afe61420bf31d5f1bf3587746c146d2f3a76e50910160405180910390a15b6000613d24610d7c89612b73565b9050613d8281613d3a60408b0160208c01614f92565b613d486101208c018c61580d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147cf92505050565b94508415613d935750505050610c26565b613da284828a60a0013561480c565b94508415613db35750505050610c26565b8515613efb577370cbb871e8f30fc8ce23609e9e0ea87b6b222f58630a5ea466613de360808b0160608c01614f92565b613df360408c0160208d01614f92565b735703b683c7f928b721ca95da988d73a3299d4757886040518563ffffffff1660e01b8152600401613e289493929190615797565b600060405180830381600087803b158015613e4257600080fd5b505af1158015613e56573d6000803e3d6000fd5b5050604051632e1a7d4d60e01b815260048101879052735703b683c7f928b721ca95da988d73a3299d47579250632e1a7d4d9150602401600060405180830381600087803b158015613ea757600080fd5b505af1158015613ebb573d6000803e3d6000fd5b50506040516001600160a01b038c16925086156108fc02915086906000818181858888f19350505050158015613ef5573d6000803e3d6000fd5b50613f89565b7370cbb871e8f30fc8ce23609e9e0ea87b6b222f58630a5ea466613f2560808b0160608c01614f92565b613f3560408c0160208d01614f92565b8c886040518563ffffffff1660e01b8152600401613f569493929190615797565b600060405180830381600087803b158015613f7057600080fd5b505af1158015613f84573d6000803e3d6000fd5b505050505b8615614022576000805160206159f38339815191526001600160a01b031663d0e30db08c6040518263ffffffff1660e01b81526004016000604051808303818588803b158015613fd857600080fd5b505af1158015613fec573d6000803e3d6000fd5b505050505061401d8860200160208101906140079190614f92565b6000805160206159f3833981519152908d611d53565b6140f4565b306001600160a01b038b16036140665761401d61404560408a0160208b01614f92565b8c61405660608c0160408d01614f92565b6001600160a01b03169190611d53565b7370cbb871e8f30fc8ce23609e9e0ea87b6b222f58630a5ea46661409060608b0160408c01614f92565b8c6140a160408d0160208e01614f92565b8f6040518563ffffffff1660e01b81526004016140c19493929190615797565b600060405180830381600087803b1580156140db57600080fd5b505af11580156140ef573d6000803e3d6000fd5b505050505b505050509695505050505050565b606060048351106142335760208301516001600160e01b0319811662461bcd60e51b14801561413357506044845110155b156141d357602484810151808601820180519192909190614155908490615728565b61415f9190615728565b865110156141a75760405162461bcd60e51b815260206004820152601560248201527424b73b30b634b2103932bb32b93a103932b0b9b7b760591b6044820152606401610265565b84816040516020016141ba929190615853565b6040516020818303038152906040529350505050612bdc565b6001600160e01b03198116634e487b7160e01b1480156141f4575083516024145b156142315760248401518361420882614899565b6040516020016142199291906158a2565b60405160208183030381529060405292505050612bdc565b505b8161423d846148c1565b60405160200161424e9291906158d7565b604051602081830303815290604052905092915050565b60808201356001600160a01b0316600080614280858061573b565b9050905060005b81811015611d4857600061429e604088018861573b565b838181106142ae576142ae6153c0565b60200291909101359150506001600160a01b038116600160ff1b821661ffff60a084901c1661271081111561431b5760405162461bcd60e51b8152602060048201526013602482015272776569676874206f7574206f662072616e676560681b6044820152606401610265565b6143258188615728565b9650614332600187615784565b8503614399576127108711156143995760405162461bcd60e51b815260206004820152602660248201527f746f74616c5765696768742063616e206e6f7420657863656564203130303030604482015265081b1a5b5a5d60d21b6064820152608401610265565b8861440857600081612710146143c5576127106143b6838e6156ef565b6143c09190615706565b6143c7565b8b5b90506144068e6143da60208e018e61573b565b898181106143ea576143ea6153c0565b90506020020160208101906143ff9190614f92565b8b84614aa8565b505b81156144d2576144188a8061573b565b86818110614428576144286153c0565b905060200201602081019061443d9190614f92565b6001600160a01b0316636f7929f28d8561445a60608f018f61573b565b8a81811061446a5761446a6153c0565b905060200281019061447c919061580d565b6040518563ffffffff1660e01b815260040161449b9493929190615928565b600060405180830381600087803b1580156144b557600080fd5b505af11580156144c9573d6000803e3d6000fd5b50505050614592565b6144dc8a8061573b565b868181106144ec576144ec6153c0565b90506020020160208101906145019190614f92565b6001600160a01b03166330e6ae318d8561451e60608f018f61573b565b8a81811061452e5761452e6153c0565b9050602002810190614540919061580d565b6040518563ffffffff1660e01b815260040161455f9493929190615928565b600060405180830381600087803b15801561457957600080fd5b505af115801561458d573d6000803e3d6000fd5b505050505b84600101945050505050614287565b600060f084901c6001600160a01b038516806146c35760405163e6a4390560e01b81526001600160a01b03808716600483015285166024820152735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f9063e6a4390590604401602060405180830381865afa158015614617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061463b9190615955565b90506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561467d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146a19190615955565b9050846001600160a01b0316816001600160a01b0316036146c157600192505b505b600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015614704573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147289190615989565b5091509150816001600160701b03166000148061474c57506001600160701b038116155b1561475f576000199450505050506133ea565b8360010361479757806001600160701b0316826001600160701b03168a61478691906156ef565b6147909190615706565b94506147c3565b816001600160701b0316816001600160701b03168a6147b691906156ef565b6147c09190615706565b94505b50505050949350505050565b60608101516080820151600091906147f1856147ec888585614b3d565b614bac565b61480057600192505050610efa565b60009695505050505050565b6000828152602080526040812054600160ff1b81016148305760035b915050610efa565b8015801561483e5750600083115b156148465750815b80851115614855576004614828565b8085036148755760008481526020805260409020600160ff1b905561488e565b61487f8582615784565b60008581526020805260409020555b600095945050505050565b6060612bdc826040516020016148b191815260200190565b6040516020818303038152906040525b80516060906f181899199a1a9b1b9c1cb0b131b232b360811b906000906148e99060026156ef565b6148f4906002615728565b6001600160401b0381111561490b5761490b614faf565b6040519080825280601f01601f191660200182016040528015614935576020820181803683370190505b509050600360fc1b81600081518110614950576149506153c0565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061497f5761497f6153c0565b60200101906001600160f81b031916908160001a90535060005b8451811015614aa0578260048683815181106149b7576149b76153c0565b01602001516001600160f81b031916901c60f81c601081106149db576149db6153c0565b1a60f81b826149eb8360026156ef565b6149f6906002615728565b81518110614a0657614a066153c0565b60200101906001600160f81b031916908160001a90535082858281518110614a3057614a306153c0565b60209101015160f81c600f1660108110614a4c57614a4c6153c0565b1a60f81b82614a5c8360026156ef565b614a67906003615728565b81518110614a7757614a776153c0565b60200101906001600160f81b031916908160001a90535080614a98816159d9565b915050614999565b509392505050565b306001600160a01b03851603614ac857614ac3828483611d53565b613aed565b60405163052f523360e11b81527370cbb871e8f30fc8ce23609e9e0ea87b6b222f5890630a5ea46690614b05908590889088908790600401615797565b600060405180830381600087803b158015614b1f57600080fd5b505af1158015614b33573d6000803e3d6000fd5b5050505050505050565b60006001600160ff1b0382167f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a1811015614aa0576040518581528360ff1c601b016020820152846040820152816060820152600080526020600060808360015afa505060005195945050505050565b6000826001600160a01b0316826001600160a01b03161480614bea57506001600160a01b038084166000908152601f60205260409020548382169116145b15614bf757506001612bdc565b50600092915050565b60008060408385031215614c1357600080fd5b50508035926020909101359150565b6001600160a01b0381168114610f4657600080fd5b8035614c4281614c22565b919050565b600060a08284031215614c5957600080fd5b50919050565b60008083601f840112614c7157600080fd5b5081356001600160401b03811115614c8857600080fd5b6020830191508360208260051b8501011115614ca357600080fd5b9250929050565b60008060008060008060008060006101408a8c031215614cc957600080fd5b8935985060208a0135614cdb81614c22565b9750614cea8b60408c01614c47565b965060e08a01356001600160401b0380821115614d0657600080fd5b614d128d838e01614c5f565b90985096506101008c0135915080821115614d2c57600080fd5b614d388d838e01614c5f565b90965094506101208c0135915080821115614d5257600080fd5b50614d5f8c828d01614c5f565b915080935050809150509295985092959850929598565b60008060008060008060a08789031215614d8f57600080fd5b8635955060208701359450604087013593506060870135614daf81614c22565b925060808701356001600160401b03811115614dca57600080fd5b614dd689828a01614c5f565b979a9699509497509295939492505050565b60008060208385031215614dfb57600080fd5b82356001600160401b03811115614e1157600080fd5b614e1d85828601614c5f565b90969095509350505050565b600080600080600060808688031215614e4157600080fd5b85359450602086013593506040860135925060608601356001600160401b03811115614e6c57600080fd5b614e7888828901614c5f565b969995985093965092949392505050565b60006101408284031215614c5957600080fd5b600080600060e08486031215614eb157600080fd5b83359250614ec28560208601614c47565b915060c08401356001600160401b03811115614edd57600080fd5b614ee986828701614e89565b9150509250925092565b600060208284031215614f0557600080fd5b5035919050565b600080600060608486031215614f2157600080fd5b8335614f2c81614c22565b92506020840135614f3c81614c22565b929592945050506040919091013590565b80358015158114614c4257600080fd5b60008060408385031215614f7057600080fd5b8235614f7b81614c22565b9150614f8960208401614f4d565b90509250929050565b600060208284031215614fa457600080fd5b8135610efa81614c22565b634e487b7160e01b600052604160045260246000fd5b600060a08284031215614fd757600080fd5b60405160a081018181106001600160401b038211171561500757634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015261503360608401614f4d565b606082015261504460808401614f4d565b60808201525092915050565b600080600060e0848603121561506557600080fd5b833561507081614c22565b9250614ec28560208601614fc5565b600080600080600080600080610120898b03121561509c57600080fd5b883597506150ad8a60208b01614c47565b965060c08901356001600160401b03808211156150c957600080fd5b6150d58c838d01614c5f565b909850965060e08b01359150808211156150ee57600080fd5b6150fa8c838d01614c5f565b90965094506101008b013591508082111561511457600080fd5b506151218b828c01614c5f565b999c989b5096995094979396929594505050565b600080600080600080600080610120898b03121561515257600080fd5b61515c8a8a614c47565b975060a08901356001600160401b038082111561517857600080fd5b6151848c838d01614c5f565b909950975060c08b013591508082111561519d57600080fd5b6151a98c838d01614c5f565b909750955060e08b01359150808211156151c257600080fd5b506151cf8b828c01614c5f565b9094509250506101008901356151e481614c22565b809150509295985092959890939650565b60008083601f84011261520757600080fd5b5081356001600160401b0381111561521e57600080fd5b602083019150836020828501011115614ca357600080fd5b60008060008060008060008060c0898b03121561525257600080fd5b88359750602089013561526481614c22565b9650604089013595506060890135945060808901356001600160401b038082111561528e57600080fd5b61529a8c838d01614c5f565b909650945060a08b01359150808211156152b357600080fd5b506151218b828c016151f5565b600080600080606085870312156152d657600080fd5b843593506020850135925060408501356001600160401b038111156152fa57600080fd5b615306878288016151f5565b95989497509550505050565b6020808252600e908201526d149bdd5d194e88195e1c1a5c995960921b604082015260600190565b600060a0828403121561534c57600080fd5b60405160a081018181106001600160401b038211171561537c57634e487b7160e01b600052604160045260246000fd5b60405282358152602083013561539181614c22565b806020830152506040830135604082015260608301356060820152608083013560808201528091505092915050565b634e487b7160e01b600052603260045260246000fd5b6000823561013e198336030181126153ed57600080fd5b9190910192915050565b6000808335601e1984360301811261540e57600080fd5b83016020810192503590506001600160401b0381111561542d57600080fd5b803603821315614ca357600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600081518084526020808501945080840160005b8381101561549557815187529582019590820190600101615479565b509495945050505050565b60408082528181018490526000906060808401600587901b850182018885805b8a8110156155af57888403605f190185528235368d900361013e190181126154e6578283fd5b8c018035855261014060206154fc818401614c37565b6001600160a01b031681880152615514838b01614c37565b6001600160a01b03168a88015261552c838a01614c37565b6001600160a01b0316898801526080838101359088015260a0808401359088015260c0808401359088015260e0808401359088015261010061556f818501614f4d565b151590880152610120615584848201856153f7565b945083828a0152615598848a01868361543c565b9983019998505050949094019350506001016154c0565b50505085810360208701526147c08188615465565b600060a082840312156155d657600080fd5b610efa8383614fc5565b60005b838110156155fb5781810151838201526020016155e3565b50506000910152565b60208152600082518060208401526156238160408501602087016155e0565b601f01601f19169190910160400192915050565b6020808252600d908201526c6f6e6c79207072696f7269747960981b604082015260600190565b6000806040838503121561567157600080fd5b825161567c81614c22565b602084015190925061568d81614c22565b809150509250929050565b6020808252600e908201526d6e6f74206164647265737328302960901b604082015260600190565b6000602082840312156156d257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417612bdc57612bdc6156d9565b60008261572357634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115612bdc57612bdc6156d9565b6000808335601e1984360301811261575257600080fd5b8301803591506001600160401b0382111561576c57600080fd5b6020019150600581901b3603821315614ca357600080fd5b81810381811115612bdc57612bdc6156d9565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b6001600160e01b031984168152818360048301376000910160040190815292915050565b600082516153ed8184602087016155e0565b60008235609e198336030181126153ed57600080fd5b6000808335601e1984360301811261582457600080fd5b8301803591506001600160401b0382111561583e57600080fd5b602001915036819003821315614ca357600080fd5b600083516158658184602088016155e0565b6508ae4e4dee4560d31b90830190815283516158888160068401602088016155e0565b602960f81b60069290910191820152600701949350505050565b600083516158b48184602088016155e0565b650a0c2dcd2c6560d31b90830190815283516158888160068401602088016155e0565b600083516158e98184602088016155e0565b670aadcd6dcdeeedc560c31b908301908152835161590e8160088401602088016155e0565b602960f81b60089290910191820152600901949350505050565b6001600160a01b03858116825284166020820152606060408201819052600090610c26908301848661543c565b60006020828403121561596757600080fd5b8151610efa81614c22565b80516001600160701b0381168114614c4257600080fd5b60008060006060848603121561599e57600080fd5b6159a784615972565b92506159b560208501615972565b9150604084015163ffffffff811681146159ce57600080fd5b809150509250925092565b6000600182016159eb576159eb6156d9565b506001019056fe000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21bb43f2da90e35f7b0cf38521ca95a49e68eb42fac49924930a5bd73cdf7576c7724394874fdd8ad13292ec739b441f85c6559f10dc4141b8d4c0fa4cbf55bdba264697066735822122086de79ead0fb270f5ba155e53602dfc8ed82c71fdd9d09db0688152e77f6d3ff64736f6c634300081100330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563054d01b673cfc6441b0ab383327afaf3ad1019455170058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6041010219080405581d0222a6136796a4543993032dac350fd03a38b21b9171733dc96a647ab90701195a8805581d02213db77e19bf46a10eac2cc934eb93da061b24922305d34507e19ee704010219040105581e03bba256d6d66ad6a711d3b9d82772be67a8ae407e1ef7a71ac166da7fe00c0147024d62d7fa523b03c29ba103680f2a5969c810900a54d65ba114eed252f3ae79dfc831b53274327b039e570bb9c762292ffd1b2f83ea25d6e68fe1bbb49af4b1150d02da3b75be4a5c03ccbc414f180ccbae836c4938ca3a85fbd0d4e397e809418d8f7cc83090b1293e0219e70e03602be9dd1fac2a83b31fba97e30e5b2a5a50938e05d7481aca2b31bc07b7892203709c2e28c97713ea6148c8e927c4722871ffd908dac25a47d178dafa57d663a3039b5ba9e59aa720b27edbc05b9fa3e64efbdb55af554492526bcda64782150e65030d51868fa67dee90cf565fa6c40af4d7158076f082e1bedf7e945875a6ee141903266159f6836de0ad1682089250b2bbc8e74dc1cf6cd35b400b4b1c9c62e76e5703cbc34d9bf51c51134a309f40826de0df7032c45eb8b284b0834c98b5f1d5bd450219ffff0392d8e422ecb7684fc0a26c8435b32b7ac8ddbbaf7fe98e791574fc0a903de0a203d6f67c08eb0c6a50267b76d5462de5a980dd1f3e2f57d19626b502a2ce0c2ef10219ffff03232c4dbea54b335fb249e78d8e339ee85b5b27e73593ebb863e5651b0e7bb755032ca38a9db335d0c2c4ed2548cd13f6c82ab82a3091244015576d92565b9f7cf203aa476c3c11097a9f3b1f966d4de9099ba3f12116d1c3ccd06de020aa1c2bae110329c2bdb46590464736286542b8ebc13d6f0bfa783e014cc0e5ea0f4d87790a4c03a3f3ec44330da199cc9aee219147025a467019432243870c18c5ee3a0a9da9a50391c7829d9771305fbfb77ece2bf188feaeffe9f6f198c7a4517f4636034e19190350e1a621487b30bb20f5e7bd90109c9157056e364528f3d1b16a315ed83ad6b20383dc8af67a6a9fb6f4c8c203391c79253cad71f068f42fde63ac37c162e5014c038081a43121e0d7b60a3152555f57f301c2c5f57656bace9338c310a2e86c78ae03574da74d6a833d7768a0699f1f2da04ef8d8719b3625097d1b78feab812d2f6a03f547d3c32ba3662ae6e98ba4c148ef9796f6086256b59d4536d2e3f3182249cd0352fccf30626acff42e3942ff6c08910f20d6e0c332bf16a59455a3c6f2bba4f40219ffff03257f83834752baa02f3f0cb8a3c127ce5990bb64efe47f5876edfaec654fd5ce036ec5c147d9e3ea880d313758aeaefd7c14bc5cf3a0735744eb03c0b79829338f03b0878c3343b0ea28fabda80e52b8a60185ae44167f2413d43d60def3d092da7f0356b562989d209ee78cef362c80528dd149be50b28f83915d23ce8df6d49a5ebe0219ffff0349ce97e9c2b02020f71de457b4fd73bf80676d90249dde7c38fa347917973cd203154fbe70ddf0efa59c72a9c305741f33914e799eb71984f2590c8d0c9b40625a03cd3c0bbd7b429a7fd430c125504797013a14d24156388a797958bb66eddfa55a039e6aed648d2d6c2ac8bd1eae86119a674e5186f7e5046042d5eecf015f42addc03518c12343b8ce2f24450df0350faee263c805d516ed72cbf2b02d0ac48619312036e729dd98f05ed4b1fa191fb7b6c402fc70538e1868b08d47a5b042d8ec9ddb303cfe7605319cb8c5f88ef238690a169e2edf5b10a4c6727b1324b6b2d3c411eca038838c5e639b37254066a4ce06c6459fba5c21b4020330439b95aef88948cd6250379628250c9072cd159158f8e51d42319612854bdea7608694adb730e09d52fa203ae4a8761d78258107512f30a2038c37858c50c59f07f74a749c8f5a48f100a8303c6b21bad4fb2594c31f5db1d16b8f056089fd1a43bafb6c32018580c2c5f691e039a42a31278925aaab12da31f2fe2e0bfe38fd576e3c3cd12bc48b8d756baadcf031fdfba3891b08eee159846009c73163245e8e6f732ff819e16f612beb3ac7166035ce9ed1903b425c597ba87be016cc317017822098755e8cb8ab07d79b039270803727cae139dce2cdcf0e2d49f929e06ccbfad5ece5241525246e471f015c60a8503f7d2c336ddebd273185925765dab08951b9fd55635b55a8a5c2f75315e0fcdcc032ce120e4ce4c254f358fe3ad34db1b6c566870d8a1dd0cca3a72faa2813c230803b88cd32743aeb99106a87a77fc3b9a821015233292573cde2a4659c02368610803fc92c7bfc1671932a11b81e7c44c059986429415e7f9fcc249dcebb8bc59fa2203d6698ad8ba52a3106b99fb545526633e05ffc5c406f25c040c8b37b3386281f303629c5990bf3764aeb1768b8a1f8b71d1e4720c81f00ae4dcfecfb7b4bff1fd81033b453516a9ba5391419658b076b9b1092f4819ececbff53cec68060254c08b68036adc78301061192388d0ba67258acb37867d27e1c9a664ee93117ebd90e8e09603d5d9983329836384c7deaf218ac2f73894ee0a81a4eb63952cd14425827d7120033da8de781a274bd61312c7586c666e2d1c889276b29deb1dc7969ef35de2365103f0863f63f355d774c34cbb4a245511f79fac3f32ee99a2aa71b2ce440d7016f6038d8a5628e350b5118482dc6b2d351ec67b0a76266094520b7d750ca2eeff938003f0bd82a1cd66dbe912fc4a096ab0c83777201a4d6b9ace21dbce76afccb7ad2505581e03742b224a6edcb0a9f129ed15434b0b7b5408f082172deed7dc98e207b0040405581e03e4ca577fa2ceec4a0e2749e1067e15e86f5663f9e98c8145b75299eb200c05470162271a39f47805581e03b19f14fc0fc0ea8e5f25219a175153b2f664f557172f1784203f51e0f00412030a4c1f9f9eef03f672308acf0a75b362600c8ab4c7fc4658adec29bc3e161a1103d25ede967d060a280ad631b35ff60a7fc955602ac67a8349dfe7bb97e2ad09be03303931f8ef9df9270c30e0ac139957f2641beba9374ab0f098cd92ffad96d5cc039b742f21ee655c278b19615fdd86646d780cb6ee8868d9f74ec47eefdfdfc99205581e039069a7bd827b1274fe127505b670752269dad387fa9dd70f294014367007011bffffffffffffffff05581e0387fa54e0b582e59e4f9e1b6732c83d747ddb4c8034997c058c92da15c00c01470bbbaa940efbbd05581e03634ec721d2f5bbc50cff2667067a75ea2c52ce0b48947f42ce740e19b00847b1a2bc2ec5000005581e0350aa6615051b1f0e68f9dff8f78b938b489f07ffcc35acf0883fd4ad600c0146f87a35f5cdc0031659de68e6a279da28599e113109376d848bf72a54b56d945750294b8c97e773030657e508cc6d404d8cc89513d451fab06b3288013a5753906560d9cbed22571f05581e037ea481148d8073f5fd85415b3199575687070ac2add9de08b0550ba57007011bffffffffffffffff05581d0234b476ab74923dfbb6d9f870185bc95b906637066cbe90ef926995fd0c014711dd178485ea4405581d028e66375e8296cf37782b3f6253b0d09f95d8e941dddb38d66cf4a54a0c1825480abaf0a0561af54c0219480002195fab036214cc2422b5238d998607365f6ba91c81041b1b1594798bbe2c40b88e6065d3038161b27953d99ac839e6dec507d3a54643fc5fdd7d55bb14f66b53ce2be7279503a683dd096527ead19dd5097f3f5f171b3f3e5ae41c38900d2d641ccf0ca5ef3d03d73f1917f1afdc3d6b8c7be40146d3c6b9202e953eb1a7b965c03c8a49a2477403217e20e54f67c98f1b3685e7135ad86cadde7182b87f23c3db1a26445f5fcfeb0300b5e71df20a3fad30060a835062aa03cb56d6a8f37d05020345a548ca34e42103be2841aab895ca6de6f1a8027195a3470d8ca776ab1ea3b2049ac3451a7f4a0d0219ffff03f619dfca387897d0cc58cf42ebff0919a83dbb7792e77f004f0f69a549b3f228034edef06c66a69b4d26433a008c58f6815086323fed87e6d970271d7cbbbc1ce903c36b426ed13b2175a2718139841b8f93d50e4a59f04bc4cc5b83d745bd9aa50403a29d8a0054b4ba9c9dcaf39040bb5e0b75ba65679cbde316722c1719b404db5c03b0822101606180f9b736f72a8b509eb72e6d03de220dd4d8a9ee04c91dff9ea703f110526b7cbff2ab1b18e41d13d77d8340444851bc0e3881dc82cb3542b0ee91036ad4e077c3790da5135c678eac503a4ba998fbdfb3c868bccf5d8d38af5e4a9f03ee9d74c2977e644a27d084e82379a24210e5f25bbd899676a9516b5c805663d603f431f9e9c1b51abfa3ae4297e108efb5a2659a471276403c92bf39ac3f0c877f0219ffff0376345ae39eead2478f982585513e5e1d3ec046667a3ecb7125f021af070634280380ade4c28985b1a4d643f0ad055e38875d78857f0c37d7286010fd9c71b94b1803f93fbb74647c68b924d3646a382287da851a215f2b23384859fbe69ae00d8e53038b629f5765d9bde88284fe11a5d2093a999c3e50121d2a6a14d0c7c639874db20359565e3c218af56fa85b5386ba9d2d82d0bb4612a9be37c4d4dff6ec2eafbfd103f9154e2b7fe7ca97a80ced229c533c2a5557c99a25ff5eaf93603b9558444164031180b35c7bd750a709897a1652b8b3245be6ab2cc56fabc5d8219c24b391f8320361d9250b4872c1050da3945662e41a90a4af1d332b434b89164e005945470c57039882f0851f2f693e63987b84049a8b0feb09fb13cfe9d0548270d8ccb0dc839003986e9c704eac18a88b1a61dd5b2d69a6c1bef7bfedf9a4afb0470471a648329d038e116b8bf6289bce1d0fdc2e153f4257bda89f163e52b39cf11e499b5a2fa9e30346fcf93affeb9a54246f56918c7ec7830f668e1c02d8895be615399f4f1de5c903cf1f9544a9fd15022b6e6fa9c19ce328b05d04c094fcf478ee7c69ad12a8507403c2068113db16d9add34b850a02da9f2f1825b5c0ffe522fdaa4aae533aa761490219ffff03d6e440812ff7521a1cdc4db57d5daa75f7474f7a30d6d523d06bf2716d914013031ffc65b58502f0f29d80e56074e90e194dc3f3466269fa4e85dcd92e4926bb9903da7ed97ce37b93329ecf410f40bc4c42f125be5b51a3bd4e74649854ff1be5310371b29916e622ab02a09862e73312899b7436a21d1b187ef305262cd36951285103db26966e425cceecede9e760a41fe08e2aa19924fe20dbdd8b2c0649a1f2dd75036951be3a029c12811c8cf4a5c435d0ca0cb751fbe98c1ad35d31fff00c41a68303361af053e1aac4677ae269ce65b9762b28a84eb85eeb089ac3bd93c2a089df3803f2b2c8fe553497f6caf0ee03cd1b8e20063c87119bee941f51c724ad59eec2f803921f49412261702f3e24801557774fc1c0de3226e51a2da3b90b56db171a7c140314339afa49561622f3a222ca2060b173d46ca618e0f1ef1f7638b56445c453d703832d72c0852c2b424c737865182109ef00e4e4adc8f4e80789ebef7bf2a9eda403d55279bce2eef5a1ff56c08b8cf79b34d129c2f2b654a48b46de529c46ee3c950219ffff0219ffff0323e9399d30b73eefed7059d98eb2a883d525ab0f400a0b7fedc801117b00cbdb03a8423c0aa3924b34931b35f5153e0f26c2f63549484b78075badc5133173c103039068d569aa9f5b035b9d960999fee29f6174dedddfd9ea528b7f02f545921ee9035dd93f54e96e3319a9b679afedcfb96171cc269301334688fd068f6eb44766970321786df8391fbc0105cae1b1bea6e8d57d7631e87ab87ceacf6cf8ad8818c24c0313465819dea42d0d17ffcf44850c6196412ce9aa17226e149baecf43d0dc86c103b10ac732b3621366730ee74840659b5ec6c067b4543e51fd5d02e9fd4239804503f1d891b68ce222bf8ece9d28aedf2b86412bd5afede74d74d61c62d0f79603c4030b0fed4ecf9edd189f63fb3c58bcf9eaa818b14853e4b41e4a14306eafae9c7b033ee47e9f4db8e86a475bf0e50febfbd9686f58cdcb677f7ec2bfc55f8f80205503eaa17d33a872a4a0262c6227e9b96f1c219c8fb834531b5a9e0f43a7f26aea14032c28915b8bc9af66c7ac778b85ec27d69bd4ee1e52d98f7dec2bac3bb79a6bf503da64b91fd87b3d7a3747ea0bfc4022236d20fba7da1c5f0837a6158d75927c22037c6578681cf86c872ca1eb809b50139d91f642c59eb4b2628297b3cf3c724fa003b18f54015abcefb3ce1f273d5adefcc1482bf9722841544f2f600c7b0b23e1bc03af00583ecf31d24a169f26061d68808fbfb4cd16f170b3444933f0ba58a7cf2a0353806ce8bb7f52271afbe0b1b7a8020655b4239bbe37f7f92e189ef1fdd19ddc03044f14c3e292b6afbab7343c4f4b0c6df56e0a17e5fac6132e7f068e0df93bf303cd822db56b3ccc0172e6eb0b4a8746026937afaff23afb59585fbe61f3df04da0381b633ab987db860eb2400ada1d7ee5ac92d39e37819ed4f50a426df4791d8510303a057b36a5455eeffa44c26dcfaaa4e999db79c12b0db9d20831bcad7c9cd38039852b8665d2a1e54578448c498eacccd15209b3ad8502c5160ae6655a4e4dd3a03f979a240acd281a7d1b3fa8c270ca3e196b307d6ef5d7340e73d6594e9ca79c30365e5952232f1399cd5f18a2a5863994ad529a0781b96eb41910c554ad021b666030fe28cc9031498cfe367d9e4a5337390ddc9815242bcfcad7494e5101443de010391d46d87a15aa9288ca0299d65048b2a752523a5146cc1f10195dced776620b803625b2c5a8f0e05e2123897ece5a951f8a5fe4e8afa822e935d265982cb09958a03855a93f294bd1325d5bf38f68a9bfb9a651f2749cc54b3fdd9bb58e0095d9936032b13b5d4b69480325b9d0358b71d027767816ca0b64354a271b1778bf43f806303fcc90e4ae3d374e2b9311e2ea551c2f610d26d1f3897694d16e81aeff5301edb037f8c9057fc832a2298bd992b22b7f5ef238b46d521751b81de5fb3105dbd58250355f1996e75df98cfb8ab9c4505a49944be23d45c3e4f9e2621285f3debbe96cf032f9a959730ce118a9ca97f8f98ce9d1b5f125dd13a332d3166911a48906f0f7803248cf22050293cd74a31cd77bcbc615fc48780e5127e4db90f561c2fe5ade88c036f5c0728eda9f97cbbc16a6115586eaed85dbcbed48390c4f2c607b1946133e803f930756eab0a581728fcaf851943828e16798fc52107aa6407e16ee43509d2d0034e31bbf7855bacb924329ec5e58c715559ba6aa408702a73ac850a2e9410c7d205581e0312036d9faa424ceab1ca58eb6d82293145300d480bd295e609f9d40000040105581e030d144d1690a0587d192755c76f7226e0c103d0d777191cdb9d68233c200c02477cdd42821dc0d105581e03537c5035b8dc527f66b8c82f050460805b210bf9637652831df5f70f700c01468a4f3539580005581e03565b4df2c5957476d2006aac2d1c5c41e343b98ef339abc02c4098fcd0040a0399c99f1a6d65a9097e0f8ca61683878ed26099e347359f5cdc600bd194dbe908039188efad72c6747c1e7f1e19036c430f6c4291fece213788dcd97857028c1b5e05581e039c512f91e21f13ebca1e24419617e8054943a56245eb3ee3ba050d533007011bffffffffffffffff05581e03058602b1552e19ad96578f935466a24f25fc14b8709982b7e8cc1e09700402031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03f69d4cd590481a229ffea933ae23c87ffd52e58dab86e024a8beb852d007011bffffffffffffffff03ce33220d5c7f0d09d75ceff76c05863c5e7d6e801c70dfe7d5d45d4c44e806540306b487d15c028b6df56c3ebb9b7086965eba3a240857a647faece2ff13269f2b05581e03fa7069cd405b5b8c7800fff1718aa9a388c02157288dfba2776a26ab1007011bffffffffffffffff03224ac66d1d1839d1b253d6323595fe5dedb6dc1cee7e965d8d5a6e0ecc207fcf045904cd6080604052600436106100225760003560e01c8063972fdd261461013e57610029565b3661002957005b6000610075600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff610174169050565b90506000610082826101c0565b905073ffffffffffffffffffffffffffffffffffffffff81166100b0576100b06100ab83610219565b6102c4565b600060608273ffffffffffffffffffffffffffffffffffffffff166000366040516100dc9291906103ee565b600060405180830381855af49150503d8060008114610117576040519150601f19603f3d011682016040523d82523d6000602084013e61011c565b606091505b50915091508161012f5761012f816102c4565b610138816102cc565b50505050005b34801561014a57600080fd5b5061015e6101593660046103a7565b6101c0565b60405161016b9190610427565b60405180910390f35b60008160040183511015610195576101956100ab6003855185600401610302565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b60006101ca6102d4565b7fffffffff0000000000000000000000000000000000000000000000000000000092909216600090815260209290925250604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6060604051610227906103fe565b6040518091039020826040516024016102409190610448565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b805160208201fd5b805160208201f35b6000806102e160006102e7565b92915050565b600060808260048111156102f757fe5b600101901b92915050565b6060632800659560e01b84848460405160240161032193929190610475565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b6000602082840312156103b8578081fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146103e7578182fd5b9392505050565b6000828483379101908152919050565b7f4e6f74496d706c656d656e7465644572726f72286279746573342900000000008152601b0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b606081016008851061048357fe5b93815260208101929092526040909101529056fea2646970667358221220266f45dcc0f640b86b617d19d2affc31f4b5547fd56bc2761d8eddc74675491564736f6c6343000608003303b0ce7aa66408c3e7c3cb5ad2b76775e06bec75a1b6d5386510071db70eb0437a036a3f3d9ba908faf011efee911b9495d4403d775e868f6e4b4b5348c7d5c0d06e03fea5236bcdfdfc14af4f01ca11cc002f5651d11990cde1c39f2587c0dfa06f4703e7d7d230b79241501de03646b5a613ea9c978ad5840e616ccb707a3950c4de0d03764aad7aca29b0b2b32170434f282b68bb95f1f16d44c395bf689604cef9360f033fade95b5922dcfca63297218058b9c75281c0b11e471fb585b9cf5364810914034e581e3ae3e2a0586ae6aef7ea845857b7dd6847d7275063b1a9c7aac271cd2003fb9a67888c547e81c8337bac148c4a1271d5648f5e168e281a3ee0e8ccca2a21033e4751e3a41b77ddfa5a1d15fd330853739815e3ebd264af468b8c628121236203fe1a116115b375e9c9f8b2afe20a07290d8946cf6366b22a7c159304c2fdbead0340a140437e792074fc9e1cb7e999def3022b9573c545c106d7198c74dacc6998034d3593c3d462a09128e25203f283583e0325860b6cbdf6a51ad8dc956ad833dc0377ce61b0981afdc148ecd4e2d070bee088cfbae1dd2af355e003e92b7cb9ef4e037710344a6afba5117bca6533ce620550625bc0796ea7190fb6860f59746aa41503d34eb08b660b2bd524ce8d3ab784790d90ab0a918335098becb59fb3ff9f025e00581f03ef48a3fb52a11df1c03ea5c7051fb734ebebb68fcdd31deca84afb9a658044651d86930370dba42a7fe66539f010324b2f313a19edf4cd799d08ef9b6ebf4a41bdbd948700581f037bf2db81923b8f5b02dd0daf5927e9d9080e51874aa01594f6f09c31181044650f01270323ca7cf3546296a9ab2571400d830b382f7c1b60b409b70817f04d0f9896786500581f0311ae6b56fd6e9b2f627611bb223f25a2b60883eab900f7d0086ef7b9a410478000000000000000581f034db5135beadada975c08ba9087c860849f9385f41ef363afceccdafb77804904d9cc0dcc16ae42d00394fa14a6e5c3e25d76597089442f9a56955b9a4a0099041eb5e9a82821147fc600581f03e9e3f2883729911d62e713a21e677a2e3735a59e24490a5eb3f7a73229804464d8b8bf00581f033a817c3e25e3a65a760c8a4281bc1be71818c9b025564ef05408cc3d7ca0450129bbcfa503469612a97156b3c3a9e00fb050f1f2a9598f8abfb1bb1098c5863f5c9f6c5dac00581f032e3768645bad16ed4f9c612df5f874db229ec7803c44b347d6791306cd904915af1d78b58c40000000581f0370f9d7c131062107c4f9a83b02773a52294fd54e2b7eac591579cb9adbe04803da0e412568e000037e8f9280a145199c0b08889b13de9ff893850de6667ed0fe4401c3c5f7ee8ab900581f0306208e5be2d375302728d7c1b7b0b07da01ef1c8c7bae4ded935b76fe770540e992c001e375785846eeb9cd69411b53f30f24b0219febf0309501aa967736a5c0b37887b0ca835b7d9be92538669ae6caf195dace5a893a9033d6086c99427fe19e85de8782c3723f97b7d5f6f5712a3055f5dc2d2bcd7c1e8039be4ec0b15f32f121f6b347e0730ab0ab1aadba74e246f9450ca9daf24499d3803ebdc2a749844963f78344065362320f763efa87cbfcff0c5a5ffa647bd7647f30315092680895a68050316717f2fa31af0feb15b385321a6df73ffc25e166edf7203ef587a81463cc6ad7befa70bae1a566ac5833f5282cb71b8e5a0d5fcd4189c5603a53956cafec2d4c319c7a30c5a55b30f7e0013c7d39cbf3a85808575d2720f3503da52aed619e5934bc3ea0c6ca4fcbfef2f2af2830355c348da5059fad4024eda035326791fb2c6a73c6423dc5960dfb8e168c8f6fef2b8c805c44ae912ac98f5cc03fa236c4645da7d2747ce04befa6986d171dde3afa9e3e9d470da986218907b240219ffff03935b913becd96efcdb38b965666c2f507106373f5b2fbb4d8f7d477957f6b8da0337d0f8bd289ac087fa9f78ba720886b8217879fcbc60223f151ead6203f4585d036940e73578730a5078b3c98db6c9a6b316f5596ad7f9d398b3ef458b234f2acf03a2fedab75a7d89211c801a559c98044113e493eb11bc60dd286e5ddf5a6eab2203bff6bf01af5b424ca85f58424fa607212a10c82455f79079f3f0dfd1074fa3de03e2a67fc965767aee64d5496d389c3bc5f6398e609cec95bca7078ef9b8958c3903b9aaaf64b71b370a82b79174d57bb0aa4c8076a9c5619e23c25933f06fbdeee803fb04c5b408521c5c5e2ca0376b7d6974058bde92eb13f60c0676a263f553b87c0338fb7e5e12ded506211f8c670e4c1b52476051ba1a9a33a03bc9de8ab921c53f03b08ce4a6d966ab2f78fa16791aaad71cfbac083ac853fa572fcb227a001f8aab0219ffff036691c7380cd6b4c48eb70c9a20f73dc82e8a116f5368173145f6984b870b9f3403639ccab01467513cf5ac3bd0e7568b6869d4be6516fa97b47c244f802e914332037bb429e3b830c49c9ec71284eb611ca557d16cfdf2f0b8a1f435842163c268790308c62167dac8e1d6a35d4fce8b31a2860f32f40ef94ced1a48d6b9d171ee415e03250301ae6a8055b15b5513e3222a78a64c3adf5b45273c96f7adf0a3ed6eb24103968c38445fe34521242de5c0beaa6226780a4a06c4ec681af4f541580a969310031ac86c0f0d51abe16d33b74bdf374247c70dbb30eaf329f7e1652a6eaa5adbcb03ef4f5bbdd303df6a8ae454912eca5b8bf0cd48a8164861c0a46934cb2c21976d03a686bd137bcf4fdd06b47b9855d2dd7563dab07c154e35fa5648d1b621bcc4cb03f90b13a07201d96a03850a1d9b0d0e261cdba9a8689d6c0b6cc7c54cdab68fc103ed976c5386acbe7ff4ce6b7fbf98f35718c698aebab41bf2ecae23e7d05c45dd0219ffff0382ffe01ff71d2f482d053c3b4a04328e398f13ac820250a050529c079de34cf40325e587640dcbe55ee70a48e35d923b19890b7f770f5869474032981159fefa600375cd4b16bf931ef16a9eeb86b1cf0c187ec70d4d6df990d234d62dde7497aba603746e02d9144955ff6031c708770c4ca0ac5a227345154a47c083aac1fe4df26a0314d111b847141a125fe83ee3c2c4683a6ce355fad8a6b736b9a0139910b6b20203ca4b784c21ec8ea78d95c07e063165aab1827c385003575330458c930835ffc8032fee87bb5bef0335bd9673be6a30c090c7809ddff527b63bf52b13bd7df762bf034bf125a75ce551e89859c492021d8bb0fc21acf3a0e71658cb63707e92cc48aa03e0b4af1c012469191b6e4527ed435ff166dcf0a18188a797a0a573cc6adf55a3036d4b9d07fe6e1faeba3f963553cc5f3edfce90b8f1d44671a3077c88c3fe47be030078ab74644281326df8fbfb042134616ba46b2bd415eea8050dffbed288eda203302cd5879977d39371dbaf9b63c1134d4ed847e98bd3253b509cd4254d0500ae03838de2ae1baf946091f7178d4dd5c229c299e3fb4a518716394a5e00b7e225b9033e91f0a7357fa3b16ce59e13851da289f6f957a1aac19092cc2dea3e9ce282bc0343ef56c10b89611752452c9d0e6eb47e22259faed6dfe85f0f80d0fa80be7ae6034174cca3fb7056b58a09531db1e2eaf8078cef843dc1d906e2e119386114f08f0383e6c2c18f3788b74b7ce38a011127b0205015db2d8f4932b55a91c0245e082e0307038aad54071664dcf1905d50ec04e0f39c249e6063ae950c8332afdcd35616037d75f916da953425db4f36a311c9fe999cd29474de591edcd692876287d59bb20392666def05af80478a07277c32eb9b0528c0ee847e189fd65b3f068a4921faee0359a6b7facee3e4fb70ddbccc1ce142d6171fe55ae4cbf204419869eb964c7d84031a62c74fd653731a52f9e927033b5379d36877033d98fcc9d52d927ab3c717db0355b3559bd8a26f1d5c51e17894b3883c2590dbff4b4530a6511309b9a11486fe03633b4fe4206fd81e661cf112844e48856de446033e8144b23368abe9a7946aa2032529c989a41cbbeceba4847c601bc84d6ca0cab9910fcfd684c88ec21bd125ed039463ce90a8f70cbdabc4e3ec1a4d38a3f209aec2d3b6525e79fcccf40b93f31a035d3dab3bbdb4a5884db37c747cdf27d15110a542d50db8933e73883600eca22203c995099d916a943b6e190ca082d50ddf6aac3494af7a1e454d5732a6f9f79b0203eb88687f58295ac3ca65828c179424443dc8737398a283e3bf251af101f699f00388fc8f3ed60085dd651eebac041347788bd91e8d694184d1dc3797dd7145be4d03c04cf7fe8a0382d34a5ed517e8567177c7597dc3dc129c33e7a32a6afb78977f03ccbef0ff94b8039c1ef95f5a779c52c65545b98cd5aea65e082d702a368647a903ceeee71c9636aed7ea0eae407563d4ac6a0aae332442fb2353edf0d4f9519fbf03d1dbb275ba6cb7847f0b2623b1435a35eac5b75d28f00a58a7c42dff523a7acc03121bdf8dfcc2d5ba70cf575785f5f72cb8324fd06919510c2ae257b377f1d0ed03e151c21d3d092120380d3353dee89e9e2c93e29b781b554c74363de9e7c656e6038f67d49ee74e465e309e3bfd6da15543b1f2aee598077604d9ec8af38cc8fc0b03e94d98f37b2095a469af358578365f0a56b997bb7303dd0e42cba247f59ffa6703d396137cd4d892ce8dac00d33e02c6cca3e65eb5f573b710cb4b54b0d1558db303ec9cf0df3dfe42a5de0a4357709ffed25311ed0e010281ce1bbfb8403c5e3f3f00581f0354be5236b9fac774814b48ede6d10fdeeba4bf92e0505d2af4541d57f7f0482447c78effe6720000581f0371681d4b4dc0b85ad0d65eb3f72ca54ee9cd025fb17670ea469877cf9540488ac7230489e8000003081cd9eaad2e17f42b9093bfbee07362be69a76a0e9074ffb6664f51a5935f8300581f03585f6099e8d1fd8b63b2f60c29aee197ab900e201f27ca4cf063bd99bd904464310c2f0371a230fcaa184372107e8c14b23b8b0c2afa378c33c1b072a00a90d88eed7cb0033bf5e5f8f27c256c19e6697ee09f9907b709816eb2112cc087570e5936f1802c00581f032ed27c54b87de968e370534783582e249679e93fa7ad68b3f79be12ed3e045694fb3456d00581e028618dae0befd3457f6aaba9e53df1861ec7833ae7ef9409e2468a303d3540e992c001e375785846eeb9cd69411b53f30f24b00581e02fcccb0219c51184bae6d7605cbced62226204abce5fd1e67807f7efcc848c39a3a66a988664c021908400347840a15429732620a2f50feed7b6a75c929594cd0a9a4336fd7526867cd311f02197cee034b15000bfb3753651013aad17ecf138ce71112c9ad8dacd3d69155edde5d225803f9a574498ed90510981724e50853a5fc8a27a81847abfdfad66db1e1899d4e0b03e7d6daf5644fab0c80b70d1b168699e391884ac64cd03c918b9bc95bbd15eb8d03abd9c5830e69719bfdf089af61be70241a4cac54a4587bd2955896185c59fc7703253aeb97303f761c6d5e6baa695bc7766d65f457604ee6a69ea0f6595a1e05070352a7bfc93ce4ddff689b6cf7a84f06a6612bfcadaa04dcb80d22807c28d2b46503934f7bc4fc38980c98259b6afd7263bc8ff3de945fe148069ffbcf83ccfc0762039b3f9cf6bab7ff6af7c282f7fb39e8f81473a8a8dc5ad86ff9bf794ce085bf870219ffff03b2e89a7983e51892267dc0706b4d8bc50a7427b3405f202b01058fd4d6a71a3e032d8b1450309f2dd2ead1d92d5ad3dff017023cd948ba9e1013b943d4994bd908035a1976fe882aa4438566a528be1e4c5f11a0e2a73efcc9623d1bea6a317e2dfe0219ffff03acee623287562deb59489922493adbb5917b5fbc6027bc84bb55f43df7f0eabb03e6ace9270deb37b6338a2a011dc674b37b27c4736a3906b5c943cc9f5be15e870302b795b684a11dfe1eb4a375e4241e1d990580a0f8397113f177543a60251f1f03feda25294423f4db79e8ce8e274770649eb2cf89186aae275c29d0f93da76f870219ffff0355ff479beb067a17a188b8e1e95c680cba012f02e60a063fdb994e62345f63a203cca27c0a3508a98f0b3174b6de7faf401a8e76b7cb5cee9e9d9769dd3fe7104803b123fbefd07f62885e9b6355251e12a3480f77591c29db11e8c846babbf1a10a03a219dc14973ac784cbd20251fa31e2ecf432d905ce4c6b0860b9f5ff9290e3be037063292cbc30c2367c78c56f27ff163569fcbb0acb3c803f573cd988f61dea510219ffff05581e0376206f0ba778b536f8b5c5571b9cf6ee4279b8082d1545b9c5dc0b90700f044804d2f05f318bb64c1904cd0219f23e030356fb2ec062e1cac458b921fbccbb3f4d3e48c2378b52e2e7ad0bb69b841d93039db634b3587d75d5bcedd67164e02fb80e249876ee8ccb7d819da510daa8800d03dbbd8a3f5b6df75b02b6cfa04c5f3244530dfc6108c90878f96cf44d6b3d133303fb497226c81384cb04f0cec78c93195a3cda400a7fefb13d310fbcfee70e2989036ed959e1743ae41cc34259baae5586176885e7eedf1452848f99b8f3b2fb52e903f33c1db47d18c2ab2e22b62c88f06c74359cf0a56ca85f0ed7103ba68be169da035900fb625ae3519ac78bd5a805103fe7b33e5537e0fb38d1683425cd4343a1a603584688d03e2cfa0fb39b152f4f085d1db6c95a8ecf981c3750e1127330aa0996035e46e1a0c95d09e927c89cbf8f2489a2c6dcb777b20101704498ff1b0f70fe6f03aedb26cca64ee7b46ec7072a40ecd4947cc1d0bd92e66d90132c00a3dc5f6280036a0e3bbbf243120a51a4e87edc44dce0840fb7b6c272229677afe82b6f407b8b03409d731e3a813ab450dbb4cd3850c51edd88b2e4eb46028f46b597b4aec15a0b0388cbd79e3594bbdef0a0b565d3b67c7f3e6bddf6f55c325d1f409e3ae535b1020219ffff0353ac907a52ca6c934573ee1a5179fb1cb6220924f8949d3717dda710b231eddd032050a42120acda39c75a857eae5651522f6ede8b78ddebc63fadd2c32ac06ca9036eb058f6f920d9f4874b30ad114b3be2de4dfc24913f2fc5c04cf8942fc8335c03e997ed41248d3d0de834819f6ebf42fc5bfa3dbeb9ed9675ea3fa6d0366e4cf40219ffff036ad4a1b0a179bfde73a46b859902c41f8c3506f2a6ec6c9155649b0cde9afb0603a564bd6f99d5026abd352578955062d995caa6e17d2e47b5e901bb685b9c03f303d66d49257915128eea087bda816dad21b6a61e4cc02ccb41c94f4833319fb38b03c5920674fcd25a5f40660771ed3af1e3ae4a28e72cee0349c066b746abd0495d0333e02285b0a8892e1293f692f145153fd14403540a655428cdc960f9c45913f1038567acaef04ab488fc6b5b3c50758b3b4670b11541b31cc1899807d3ac203fe203476e59c93870ce4c4d81602fb7439cedcedd1ab457ca62a20a86b18ca0bb12740219ffff0219ffff039e11e0b2e60bfa240fbc4ce5ea38a02668cd86f2d95d59f355a9225f52b99fd403fc563fb961a4fa575a897d9f4782cea4aa3bbaa736c014846a0bb11a4c5fe7e303132b0f35cc84603c40392e2fc0cc386c9dd21e9b717edfa1e7233d07c3dd4789037e0555ef45379f0651b5487f7c8ec7339ddd94265bc4674e2165045383d2e84d03e4bb075ab8fdc0ded8002d558addeddfe14edaece1f6d9c0ca715724af1dbd0c030a8950f99b532a8e26ad2601e12d70cbbf37f09579a05e361ab7417432537bb603d41651365e44d8fa6051a9179bb9c72785d20b7cfe477d492f941119906c5a0e036aa2f522e1d31c6db622aa08cccc87d69268ed80f745cfb15e8ffee818f17a9c03167168664087740699af7559845849ac5d2c37e46993b1cfb89030abd5c5678e03ead67f4b130256083a1b83fdd04133ad9587aefc5bfeabba82279eeac7e267c40337f2b0d48efffa5ee07805b36ae00f303d7d733b689d94b57ebf5a549731289f03fe25d52c1c69a9921a8fb733268eed66ee4c117e6456906d450b8bf45e6a1e420366dcbaaaf02e05ddce1c2bfff2013b6a93766c8f21102573d938981dd158d8ee03360d70a8c2f3d19eb886827a94e14d2e0fb61f923c2ad48070c06658b615565403e2b6989696eca188b2c8d6864ad190ba03e031aa0533cfacd4b18cc78901f98803993741b583d063de0b616b9c920d773762cd0687a6522cd375665e06a29aa2a9037e72d0b2925079fee15d1123a14d11d701e0fd67b8c50cbef908b48c2959f2db039eb03468ad91edee4e9045d619225f0e1c5c0f4728c08c7f27baa3b545fc292703c86848378e6702f77fbff2c72f86ce7afd0d7fe1b36aa537374815fdc91bf9d103a54f7e603147f631c9fda221af8c6dccb7e779426106355aae344f823241f99e0387e56545f25e0108be617fc86753a719d67c22c067dbd73005aae352ca8807c0030bcc49a91a110ba428956d1d628fa767f5a2b651d8e7249ec5fe339e3181ab0c036d790bf3be4f64e13ff88dda3134975b7980278851590d32457f7b89fcb23668035b27d8065caf2542fafaacd95073cbdf2e6214d322efd71033c6342ba61f4bfa0380508373e59f16e54d9ecd555e14bb44bb73609243e83971aabe5991c494416303c76bca48687403bca79381d53238adcac50af92fe15112cf6844ecf70e95d575037ffeb11d9cbda1b66d2af1aab1afa8bc5e5ddc0044148ee0b44421bc4ba4bd4e03e26989cf74bd4873d24eced20cce94e0308e045694eeceb26de3d4043016d49503b9b2b2c21021fb7e0b634ab25e2e3b83275c74d2384c642920d3110d21ff094c03782e6d908f1b076c71019bdd818bf8b1bc122e2a110e3943e9b03bb3aaadc480039b546ac1aee65f52f3d153127b17e99960b5a23394478abaf78fa154d0fe4aba03ddfe845d47c377e9cfa9e2187c698f76a802161bb3f42cfbf8ed0febb4a6f956035774f1fc435893c448d5fe018c80ae6996377929bacbc50b1d23fc33e12c235e03d8b3e513eaa136ab7feadb9a153995b0f421a0a364a0f416feb6402f5856217203a812aa0a90d8dbe124172185f9c305a0f9fe5b067001cbbac74d62a194e93dbd030466bb6434638e3601c4840f4b7373ced2a22b6bade1a68706ace14a4afd1f2d0380b155e133453b70b4ab6d42a9c094f56ff4ab9040b2204b7bbeb8e69a78adb5039afc1e6b6080903add242c438e61ab2c7894c20ca514c6c482e17e8042c4a05003844fea85154023e42effbb9fa5305924efd745b47a5447bbbe88785b92f847840386645c304aff70b12c503395ea59f87ccab97a025073028e6ba658790ae87aa603d08b1ef6a8a1592d093bd336d381f626a2adc8e88c49e72a87a05fc4191185bc03f02fda2c46476f7c34bad85b77afcb7309c0c33445ce9acf1ed3f2bfde892bb403e300efdf76b150c1ed4fb63faff11276dd99de69de5c346909a4449d8f4326f703ec52bcb262b565d0dcf6fe93f3e4a8301056fa69690c9f40a4c89f2cde2bcf710375e776360f21abbee70d76d3428d96feeaf626f99fce98b5a55f3dd32120e43c032dff75f85c7eabfd7160762a43e6dfa465e31f1b2f9edef25e775e472a5c2a5f033025352304dd923ba987ee6116c11a63e6a0f183bf0fe058f4f9b241f425cc1103cd15b9a0da894f89fe6724f75d2c9bd8dadcfe907c06182982af2ba68e1d809003f99366ec7c32fa666d98664d415069ba3e7885eb942619859ba4609c72e774a10388097f0f375a04b44f762080f0e88e346e6b031772500247286cdbd63e1b4fc603d81597f66d4bfa4898bce568ff07b7b8fbfb766e2d8e4b0d33464d79c779e6410357b167d35071fa4302eb90e112aeaedf2831affcaf58bf9e70f1847da8e1e9ab045908b360806040523661001357610011610017565b005b6100115b61001f6101b7565b6001600160a01b0316336001600160a01b0316141561016f5760606001600160e01b031960003516631b2ce7f360e11b8114156100655761005e6101ea565b9150610167565b6001600160e01b0319811663278f794360e11b14156100865761005e610241565b6001600160e01b031981166308f2839760e41b14156100a75761005e610287565b6001600160e01b031981166303e1469160e61b14156100c85761005e6102b8565b6001600160e01b03198116635c60da1b60e01b14156100e95761005e6102f8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b61017761030c565b565b606061019e83836040518060600160405280602781526020016108576027913961031c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101f4610394565b600061020336600481846106a2565b81019061021091906106e8565b905061022d8160405180602001604052806000815250600061039f565b505060408051602081019091526000815290565b606060008061025336600481846106a2565b8101906102609190610719565b915091506102708282600161039f565b604051806020016040528060008152509250505090565b6060610291610394565b60006102a036600481846106a2565b8101906102ad91906106e8565b905061022d816103cb565b60606102c2610394565b60006102cc6101b7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b6060610302610394565b60006102cc610422565b610177610317610422565b610431565b6060600080856001600160a01b0316856040516103399190610807565b600060405180830381855af49150503d8060008114610374576040519150601f19603f3d011682016040523d82523d6000602084013e610379565b606091505b509150915061038a86838387610455565b9695505050505050565b341561017757600080fd5b6103a8836104d3565b6000825111806103b55750805b156103c6576103c48383610179565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103f46101b7565b604080516001600160a01b03928316815291841660208301520160405180910390a161041f81610513565b50565b600061042c6105bc565b905090565b3660008037600080366000845af43d6000803e808015610450573d6000f35b3d6000fd5b606083156104c15782516104ba576001600160a01b0385163b6104ba5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015e565b50816104cb565b6104cb83836105e4565b949350505050565b6104dc8161060e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105785760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161015e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101db565b8151156105f45781518083602001fd5b8060405162461bcd60e51b815260040161015e9190610823565b6001600160a01b0381163b61067b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161015e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61059b565b600080858511156106b257600080fd5b838611156106bf57600080fd5b5050820193919092039150565b80356001600160a01b03811681146106e357600080fd5b919050565b6000602082840312156106fa57600080fd5b61019e826106cc565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561072c57600080fd5b610735836106cc565b9150602083013567ffffffffffffffff8082111561075257600080fd5b818501915085601f83011261076657600080fd5b81358181111561077857610778610703565b604051601f8201601f19908116603f011681019083821181831017156107a0576107a0610703565b816040528281528860208487010111156107b957600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107f65781810151838201526020016107de565b838111156103c45750506000910152565b600082516108198184602087016107db565b9190910192915050565b60208152600082518060208401526108428160408501602087016107db565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122012bb4f564f73959a03513dc74fc3c6e40e8386e6f02c16b78d6db00ce0aa16af64736f6c634300080900330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56305437aab97476ba8dc785476611006fd5dda4eed66b005821032df0bdf5a5f92d8037cf11e50f13d8017aefc99d20a73c826416df79570d4810546e38d4999fdb6fac24973e508cde9397e369c5af005821035b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d054bcd3a47e4d0000cf170e25d1bd3d53f7c08be0a60058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6049011d6c8fba323ca0250058210328a5566b8a884201ab44e2d991177ce8b88325e02e52cbc3da6e67b3ecf29c604101021948a405581d02beea506e63d9311b0eb23c6ed86e7ddc2248d7bbe9d3d02bc17219010f0149011d6c8fba323ca0261908b305581d022f5dce6d993107338134f4048a0ef5d2430bef1a1a61f0a9ab5c5fa60c01450572bfaa000219a0000334160b2b3414a1b448458100361c64bdccf5936cc939e8b2d592200ed19105df03da3cc90ef62d3ad9e255dff552fa7525c31d06eb64d5df5045e56a7bcd3538fe05581e037013a88a4a324f330a934552003c0ea9bf3bbae161c26003b4f849c0800c024701383b84a9a17005581e038a68ca0de222757ad180dfe2910996104dbdf45e510d8b7f8ce0c729700c01470cc8aa441de58003562d59a51820d47f520c975e0b2bcffac644a509749a3161f481f57b6e826d210605581e0334748c9b864c1a7503fc03dd1016d10f8275d447ebcd45d257d242560007011bffffffffffffffff05581e0349a7d5dc763a3e1a8fff885943cd752edfd2814de2560f113870c7f4400c03480c2d8c1449f7162e02191ce403f1f0fc1c77adf0e1cb5abf0749989e5eb140c12723125ae612d53b5e650713530219ffff03ee5a53f74f94eed211b1550315db61e61ec4bbcbf88d691d9ba75d007b0415540219ffff0326d411259dd7a816b3e4416eccc5f9f3f8797f60e9181cb62c60f59668bb20890323172268bd2a09f78c3552b2e5469c6b05c29a7d95b51d92028cc3bbaab691340219ffff03872087c58f60307b4963d61f7279828d9659dd62ba57be08be4367c53f688e5f0342bd50705846793c09d7e345dbc01747561e7615b92d9b5568466d332d9cb72d036746d7523176057df9ab50e4124f7f615d7d18f3773c220e5a3269d2b3a9528003e9c64ed05da18c3ebb4debb8492489dcf5a681431a2901138f51a6bf6346994b034ebd4a376a2edb82cc2ddad312403e5665f5d2af52367cb74512252b2605f2dd0219ffff03a6839ce079f60fe5a0bd5ee110ebdc668f09e876aed102b15594c44975775c5503e086e477c41fadfe88bf76baf2d04aad8f1ee57ac9e0b5ded35062eeed59fa150307a6af432a815dfc18260a96302efda221a50d09284c6bc818d5b164da9919bb0382257a760af0178efb22ff1983af08c955bf92062ef7dec5d694d64b657a4824034f06e32cbc687a439d9a12eff4a36118fd188bfc7901f79c7f7b98f0287e603b0317f36a9ac825f2fc8a2645631bb1beb8516c0f0e7cfbaa06010b5c7a151eb1ed03d48abe54fa6f199c420e4917ab4c765d23eb852e22d547fd55c37f01a03546410398aa75631e6b1fc7e191c7aa3619ad11b8267b977d2cf4e894f3a69d109c9cb403a185050c2dc07f8446343fd835edba8ff120b78c513555065d08a8c396089efa03c4a450ff4fe0b60bc2f915baac2d659226e8a53c97994a59fcbb80a0084d4651032d17c5617f0ad9fc4ec576c97fa75b32b239ccc37b2d8b4cd22a90704b2590280312e5da494b0bddf2f9118e2b35474df3c516dcbbf861c95f8500c817afa1b4b9039530abcde320a8d9b39fb7d51e409f4304d8060a4899be848378f735aa90b58303fb5d50a431f418aaa71dd484241df04246e654f0e67748321b19ae6c78ec327303f543828ef2845f2c8cf51ae72a1dd5fc2faf6263bcf28ddae421b63805feac21034ead60a6ac6264a2d238cddee2e5f1e90cb3e2ba7689d3a75b50ce80830e079203678a94c99d74e1ae18662084e14b8893f74db93efd64fc26ff0e966ebcde173403e192c69a516ba6c70068c90d97ed4c2033e55a3a2586c8adb19df29afa2277d503a51b07521882854afa78ee6e331b5d517644356fe8b7234873c1bd8a3b87d64603b69d810acfa81e692d1be7318ecce80bd30cf020b36925fbc2e7de498d64cd2e03eb75b2d973cf7d6f68e3e94ea6a1da16136ee04fd939beeb25970523fee36129036c8b0f5ae48859f90edff010e930899f9b9c69e2831edb176f9606f1a5ee7b7f03153c9b0963e63277b37ad32e7292dd70fe80d17355d5072f7c3743583570c86403108c18059693942247bd69adb0df426f8d4da285a2a65ae8aafe230335f49a1503c18819da1e1030a0a57e3e6a8e1c7ab1ea6d1dd9e5a84ab1800695f8041485c4037071502c6556c483a799c2a51ce6ec3844e25bf7eea6546cba9529806b4b19ab0373cdcc78853cf441d75a71aac0cd2c192cdb7b60969e74f21dc3b6c93ab32da0038cf2110a8ad3c555e4f0a8f10d16cbf380090ace829f5b86783f7210c7f13b2303c6788ad3233c4c8f782a2b38f8853c6f6162cef4f67e5e7f2dbbad9add5cb74805581e03399bd41150c10abeaf754ac321869d467391ef5decd21b75fff4219e700c0147012e2dd507d14003ff0957529f4b0b7086551af1d2f543907f305a6618b6d43e042f333e0ce4648e05581e035cd68627a90d1ca3dc18b99862721b2278fa98386e6d523036ea949ac00848046ad03e9b97ae0003ea8e8bd08804ae9b32373abc45eb59d48a256f042146a09f2538a2d3034eecb601410a039d09a5a782766c68adf3c29606454c5274e07e05c4f40bf0c376258caac4537f039fc58d92eb043d53f3c41dc5169b576520a8aca309d69101b339122a14be7c0d0368d9ef9c32c6355d5ce1cb3803f4f20debc1aacb6619685de20bfe9763730eda03907c071fd61daba3703da934f69afbbd97123740e1068cd951252cf29a291651035b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce503e2a8b47e80f9bfd9d571a0cabe7497fbfba8e0ca15a24d21f33b9ab0c56b993105581e03916c2ed2b6d5339fb36af92813895bba1355bbeab9ee10542daea391c007011bffffffffffffffff05581e03206138f42a11cde77dd412a77b978ad37f6b4f570aec86e0a1c790a2b0040103117189cf78bcaf818810f233e4ae673fcd70f45794330df8e3bb714cc316772c0219dd7903f54c9cbb3080ff1e2bcaef7ab712448d665da3956026df1d171dfe8bfffe0b0503ac2cd5329fbd1e6fd22680a56158b22fc584751834b48f69bdc0836599c0aded0366979e47a7fe99007395a35155f9603a06296f7e6aa6951a2220751dee62515203dc8883551a971349f5fd8cb22867c6743eee07a1f77d57b0f9d907bf1b879ede039fd8eeacf6465b4d38ca65a9379dbe44b2d293f00cc09a33d8e1283f7637af5303210b5c315bd98a298830bae4b2e60431d30619b36227a1183655980059acc58f038cf582082fb608aabf9d2bca983532883fd7e3eee95529fbee0d1a758eb2c4ec0219ffff0342bf1e11d8795edf35957bbd2d61a7277b438beb12af11648267c35ba3ff374703f5bb67db6cda6a25812358b5f708e4dca91f7f8462eb0be9601ffcae8948177203e93fd382cc1bf408ed0706845b918c5720cb36c7c7941123e2b7bdb3d758f89b03f9400af720ef1840945af5b36d0e4f3af5766ee8d0f4aaf8fecbd418fa7eec39033fd6a57415a27e5b7c4bf731daf7286537ba5639a9567d88c478c0b137cd7262030456ab8efb69183cbdb8c63c71cd129614e9daadf2e7b9b8a0c4101e8e9c453003e018d814d055c7330e3ab9b3359d7db7734449adf4c178d26028e75a0c1ac45603fd167e2b0bdf5f0c30d3529fb3e926c1d267e84fc9685901f51a90ab331466bb03b1242b71b64b3bcddd4d3c1786d54af1b260ac4f7c2066f6fcdef568365ac7ef0357e5b239bcc5ad5717ffd615c344856b3d6c9dd74f704e1e7856c0e0585bfdf303cde81b38ca1a223ec508f1f226792e3f12ac056747bf684a5d603e01cfb2d2380219ffff0364defbb9a6fbc924bd567cf3387a6e25d055042845772fa3ab529b3a9a5828000301f3e8092a01718f3cd47c56de74d8b98559038dea01eedda183185be80d86d003aab320ecf5d16d33bca1122f35f9e17316adb65c2baf57353709bd78c03a25d103270c40a28a22bec1ad8f14c07a11f95a91a16458c14557c276413c96afe8497603bdeb8754d7f1164e87019989ed477d7bb1395164675e64500e47837dd1b31747031f49eb284cc882e095eb09dbf642eb60badbf48a2f372ef44fb15153cdf521210387fa81eb2dda109118258ac34d94ace4af4b2dabfb2d41ae4b6a35ed8071da09030d2f75caaaf51b3959469327ffe70edceab2d58e08207a099eece96e1f869c2c03842ab4cfaa843db0bca6aad8d175f3f2eef317e140898c42b1a1c9fd550991b80384623c79273883912ad178f5da4bf9f91dd07b4290b9352de96e0bc13a2bae4c03a57b5dc0dfb8e51d48353a5d2087a71218013b0ffc8c6e3e3edef4601154ee7e032ed3744231ce450bc20761a6a8130d754e72fc14184506042f02b4f78bcf00bd03077a347e4b1dccc359665872fcc3ad60cf7e3f23084cdea50e603cf38fc257c803503811ba352666fcecc55fdd0d3ccc2b75d7e4bb8e1d4b9bd7d772627800fc930219ffff0219ffff03108ffd2a8772789b9ad3335cdc989a073af4088847ecd9f1514520655118ea17032ec3966d3cdefccd3e2ee6e41d833259f813b7ef7475232c6597eae911de2f6e03aae95c40c66c1d5a14f791e81cd7a17534fd3b14c0b570a7bda842fb0e93b30d0363ee859bbd97767a30a408024f7d5a0686599706654a20b0d17a182c943bcecf0343af6e03f204c12ff28e52fa8f46d4a35a3fac06a19a9cfd6beec73080b62c8c03990fa8491a1839f504db72a498614761da84a9b28298a81be1a040445f117644037ceba9a733de1c94bdb8c0d50df46a228e927b52bc96d136c6a88c103a345d210337f9558f1cfe7f448830c8480ec60c9930002ed48b30ccd9e1ef4c5d8caa2aff03083af68cff161b4a6e1ffbe01e0b05d8eb71bb08413e8c06df21ae387642755f0307e13e7578300b73dcaadb5416304ab2219a78b4cfa3d45ac71fa0050a88ce410398769ee425eb19b8f0f9e72f8803cf909f9f3f6af05803274fb51f0691a89477034d116c0489c6a7830a6e71739878323d8fe0faa2bdc6d5f7b26e830cea8d7fe403cc9eb9d3881d2a179b91f6fc872a850802f828800678bf13fcac07a4db7589820314e53be3d411ae0f3f9ab05bee4ffe840f1642ea1a0b1b565bda279fde68351903b1754f87f0a900d340be549a6b15a0f30d55ee636a33e46943a708770a99d68303be0a1d3868303e0e13c4e3659a46c1b5c9390f34478ada9522f12a5aca74ae5e03a790fe17be277293a34810538b9673d4fbe3d03a0b035dc498fb87edf5837221035d8423169fb402a507758ba4d194af340fece08129070bccdaf0567e012712d103ac5779f00db1f3779385ed52fddcdb0742f5596922e73917a14b39851f20ddfd03311db8afba9fd90bd253ff2e853ee56485612c83bb4e6e86fe29a8116427a94103682bf118d6c7588275e2bf659f49f9386a9cfdfdb62c8f1974c6b83ddcbda7cc032a005fd0432915d283dc5acf30d7d4ca36354c94c959aa5d87869f4758dfc3d8035b0cf0b4fc18610cc5234a6742cd07a94fea25d89e41220758f6b59d2257483e0329343f36760cbb0951e444492e04d89771c8905af0c8705f5949fe5157a4e38a03a7282ad3171cd6a8b00a6fe5cfacd2fad9db9d351ba4f0b846d26482e1b8f9fa03da4be3855117f77715adc181a7f4a881cf1ed8293ae0dddefe40f8a5d12f886f03f47b99538fc4e2d7d6fbb8b555e79f69dea2562a70608ec8a76ad665845e4feb03a825017dc238633febb30917c45993c6063432aac186794af783bbb39f398d0303f8280644186a3b896527ba7062dde863bcbf66dee141c4d8c7d3ade009d461860315f2adb176e17ebfd73c507d85e6c1bff295f733e4a4618fbf47a15b73148a650360dd50876647af16ff77e424f71c5b94a330919fcaf2932e738a9e2c4efa4a5805581e032af143968bf17c4f670b868c298a55e7c5c16991bdb658e3eed3cd4c9007011bffffffffffffffff031804e5cd0675cdeb28d9517d51606517bdd557b39a1b48aeec456ecdbec352fa03645c169e00b675096fd330b389d954736e724467b40f8111b68cbe1d8ca8ff7a03edeacad95a6c7b2ebd8060e27a659b4b3f4b863f34db539070207ca072783b4205581e03a011bcf3da4861819cd38306db473ce00a0f7ab83b5f017d398e28afc00401035fa8c6f35c8fa363a6451cf6d5134e313c0454d707dcb36c9e01e8a10578c468045933cb608060405260043610610138575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b41146103eb578063a9059cbb14610415578063bf474bed14610451578063dd62ed3e1461047b578063ec1f3f63146104b7578063fb201b1d146104df5761013f565b8063715018a61461031b5780637d1db4a5146103315780638da5cb5b1461035b5780638f9a55c014610385578063909bd599146103af5761013f565b8063313ce567116100fc578063313ce5671461023957806332712140146102635780633395f22b1461028b57806335949eab146102a157806351bc3c85146102c957806370a08231146102df5761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104f5565b6040516101649190612377565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612435565b610532565b6040516101a0919061248d565b60405180910390f35b3480156101b4575f80fd5b506101bd61054f565b6040516101ca91906124b5565b60405180910390f35b3480156101de575f80fd5b506101e7610555565b6040516101f491906124b5565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e91906124ce565b610579565b604051610230919061248d565b60405180910390f35b348015610244575f80fd5b5061024d61064d565b60405161025a9190612539565b60405180910390f35b34801561026e575f80fd5b5061028960048036038101906102849190612692565b610655565b005b348015610296575f80fd5b5061029f610774565b005b3480156102ac575f80fd5b506102c760048036038101906102c29190612692565b6108a6565b005b3480156102d4575f80fd5b506102dd6109c4565b005b3480156102ea575f80fd5b50610305600480360381019061030091906126d9565b610a5b565b60405161031291906124b5565b60405180910390f35b348015610326575f80fd5b5061032f610aa1565b005b34801561033c575f80fd5b50610345610bef565b60405161035291906124b5565b60405180910390f35b348015610366575f80fd5b5061036f610bf5565b60405161037c9190612713565b60405180910390f35b348015610390575f80fd5b50610399610c1c565b6040516103a691906124b5565b60405180910390f35b3480156103ba575f80fd5b506103d560048036038101906103d091906126d9565b610c22565b6040516103e2919061248d565b60405180910390f35b3480156103f6575f80fd5b506103ff610c74565b60405161040c9190612377565b60405180910390f35b348015610420575f80fd5b5061043b60048036038101906104369190612435565b610cb1565b604051610448919061248d565b60405180910390f35b34801561045c575f80fd5b50610465610cce565b60405161047291906124b5565b60405180910390f35b348015610486575f80fd5b506104a1600480360381019061049c919061272c565b610cd4565b6040516104ae91906124b5565b60405180910390f35b3480156104c2575f80fd5b506104dd60048036038101906104d8919061276a565b610d56565b005b3480156104ea575f80fd5b506104f3610de2565b005b60606040518060400160405280600881526020017f536f726120496e75000000000000000000000000000000000000000000000000815250905090565b5f61054561053e611305565b848461130c565b6001905092915050565b60115481565b5f6009600a61056491906128f1565b6461f313f880610574919061293b565b905090565b5f6105858484846114cf565b61064284610591611305565b61063d8560405180606001604052806028815260200161336e6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105f4611305565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dd99092919063ffffffff16565b61130c565b600190509392505050565b5f6009905090565b61065d611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e0906129c6565b60405180910390fd5b5f5b815181101561077057600160045f84848151811061070c5761070b6129e4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106eb565b5050565b61077c611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ff906129c6565b60405180910390fd5b6009600a61081691906128f1565b6461f313f880610826919061293b565b600e819055506009600a61083a91906128f1565b6461f313f88061084a919061293b565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61087f91906128f1565b6461f313f88061088f919061293b565b60405161089c91906124b5565b60405180910390a1565b6108ae611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610931906129c6565b60405180910390fd5b5f5b81518110156109c0575f60045f84848151811061095c5761095b6129e4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061093c565b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a04611305565b73ffffffffffffffffffffffffffffffffffffffff1614610a23575f80fd5b5f610a2d30610a5b565b90505f811115610a4157610a4081611e3b565b5b5f4790505f811115610a5757610a56816120a6565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610aa9611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c906129c6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60606040518060400160405280600481526020017f53494e5500000000000000000000000000000000000000000000000000000000815250905090565b5f610cc4610cbd611305565b84846114cf565b6001905092915050565b60105481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d96611305565b73ffffffffffffffffffffffffffffffffffffffff1614610db5575f80fd5b6008548111158015610dc957506009548111155b610dd1575f80fd5b806008819055508060098190555050565b610dea611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6d906129c6565b60405180910390fd5b601360149054906101000a900460ff1615610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd90612a5b565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f633060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f4e91906128f1565b6461f313f880610f5e919061293b565b61130c565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fcd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff19190612a8d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611077573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109b9190612a8d565b6040518363ffffffff1660e01b81526004016110b8929190612ab8565b6020604051808303815f875af11580156110d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f89190612a8d565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061117f30610a5b565b5f80611189610bf5565b426040518863ffffffff1660e01b81526004016111ab96959493929190612b21565b60606040518083038185885af11580156111c7573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906111ec9190612b94565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161128c929190612be4565b6020604051808303815f875af11580156112a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112cc9190612c35565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137190612cd0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90612d5e565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114c291906124b5565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361153d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153490612dec565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a290612e7a565b60405180910390fd5b5f81116115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490612f08565b60405180910390fd5b5f6115f6610bf5565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116645750611634610bf5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b295760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611707575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61170f575f80fd5b61174b606461173d600a54600d541161172a5760065461172e565b6008545b8561210e90919063ffffffff16565b61218590919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117f6575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611849575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561190357600e54821115611893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188a90612f70565b60405180910390fd5b600f54826118a085610a5b565b6118aa9190612f8e565b11156118eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e29061300b565b60405180910390fd5b600d5f8154809291906118fd90613029565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561198b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119cf576119cc60646119be600b54600d54116119ab576007546119af565b6009545b8561210e90919063ffffffff16565b61218590919063ffffffff16565b90505b5f6119d930610a5b565b9050601360159054906101000a900460ff16158015611a44575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a5c5750601360169054906101000a900460ff165b8015611a69575060105481115b8015611a785750600c54600d54115b15611b2757601554431115611a8f575f6014819055505b600360145410611ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acb906130ba565b60405180910390fd5b611af1611aec84611ae7846011546121ce565b6121ce565b611e3b565b5f4790505f811115611b0757611b06476120a6565b5b60145f815480929190611b1990613029565b919050555043601581905550505b505b5f811115611c2857611b818160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121e690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c1f91906124b5565b60405180910390a35b611c788260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461224390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d1b611ccf828461224390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121e690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dbe848661224390919063ffffffff16565b604051611dcb91906124b5565b60405180910390a350505050565b5f838311158290611e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e179190612377565b60405180910390fd5b505f8385611e2e91906130d8565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e7257611e71612556565b5b604051908082528060200260200182016040528015611ea05781602001602082028036833780820191505090505b50905030815f81518110611eb757611eb66129e4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f7f9190612a8d565b81600181518110611f9357611f926129e4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ff93060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461130c565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161205b9594939291906131c2565b5f604051808303815f87803b158015612072575f80fd5b505af1158015612084573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561210a573d5f803e3d5ffd5b5050565b5f80830361211e575f905061217f565b5f828461212b919061293b565b905082848261213a9190613247565b1461217a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612171906132e7565b60405180910390fd5b809150505b92915050565b5f6121c683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061228c565b905092915050565b5f8183116121dc57826121de565b815b905092915050565b5f8082846121f49190612f8e565b905083811015612239576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122309061334f565b60405180910390fd5b8091505092915050565b5f61228483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dd9565b905092915050565b5f80831182906122d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c99190612377565b60405180910390fd5b505f83856122e09190613247565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612324578082015181840152602081019050612309565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612349826122ed565b61235381856122f7565b9350612363818560208601612307565b61236c8161232f565b840191505092915050565b5f6020820190508181035f83015261238f818461233f565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123d1826123a8565b9050919050565b6123e1816123c7565b81146123eb575f80fd5b50565b5f813590506123fc816123d8565b92915050565b5f819050919050565b61241481612402565b811461241e575f80fd5b50565b5f8135905061242f8161240b565b92915050565b5f806040838503121561244b5761244a6123a0565b5b5f612458858286016123ee565b925050602061246985828601612421565b9150509250929050565b5f8115159050919050565b61248781612473565b82525050565b5f6020820190506124a05f83018461247e565b92915050565b6124af81612402565b82525050565b5f6020820190506124c85f8301846124a6565b92915050565b5f805f606084860312156124e5576124e46123a0565b5b5f6124f2868287016123ee565b9350506020612503868287016123ee565b925050604061251486828701612421565b9150509250925092565b5f60ff82169050919050565b6125338161251e565b82525050565b5f60208201905061254c5f83018461252a565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61258c8261232f565b810181811067ffffffffffffffff821117156125ab576125aa612556565b5b80604052505050565b5f6125bd612397565b90506125c98282612583565b919050565b5f67ffffffffffffffff8211156125e8576125e7612556565b5b602082029050602081019050919050565b5f80fd5b5f61260f61260a846125ce565b6125b4565b90508083825260208201905060208402830185811115612632576126316125f9565b5b835b8181101561265b578061264788826123ee565b845260208401935050602081019050612634565b5050509392505050565b5f82601f83011261267957612678612552565b5b81356126898482602086016125fd565b91505092915050565b5f602082840312156126a7576126a66123a0565b5b5f82013567ffffffffffffffff8111156126c4576126c36123a4565b5b6126d084828501612665565b91505092915050565b5f602082840312156126ee576126ed6123a0565b5b5f6126fb848285016123ee565b91505092915050565b61270d816123c7565b82525050565b5f6020820190506127265f830184612704565b92915050565b5f8060408385031215612742576127416123a0565b5b5f61274f858286016123ee565b9250506020612760858286016123ee565b9150509250929050565b5f6020828403121561277f5761277e6123a0565b5b5f61278c84828501612421565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612817578086048111156127f3576127f2612795565b5b60018516156128025780820291505b8081029050612810856127c2565b94506127d7565b94509492505050565b5f8261282f57600190506128ea565b8161283c575f90506128ea565b8160018114612852576002811461285c5761288b565b60019150506128ea565b60ff84111561286e5761286d612795565b5b8360020a91508482111561288557612884612795565b5b506128ea565b5060208310610133831016604e8410600b84101617156128c05782820a9050838111156128bb576128ba612795565b5b6128ea565b6128cd84848460016127ce565b925090508184048111156128e4576128e3612795565b5b81810290505b9392505050565b5f6128fb82612402565b91506129068361251e565b92506129337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612820565b905092915050565b5f61294582612402565b915061295083612402565b925082820261295e81612402565b9150828204841483151761297557612974612795565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129b06020836122f7565b91506129bb8261297c565b602082019050919050565b5f6020820190508181035f8301526129dd816129a4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a456017836122f7565b9150612a5082612a11565b602082019050919050565b5f6020820190508181035f830152612a7281612a39565b9050919050565b5f81519050612a87816123d8565b92915050565b5f60208284031215612aa257612aa16123a0565b5b5f612aaf84828501612a79565b91505092915050565b5f604082019050612acb5f830185612704565b612ad86020830184612704565b9392505050565b5f819050919050565b5f819050919050565b5f612b0b612b06612b0184612adf565b612ae8565b612402565b9050919050565b612b1b81612af1565b82525050565b5f60c082019050612b345f830189612704565b612b4160208301886124a6565b612b4e6040830187612b12565b612b5b6060830186612b12565b612b686080830185612704565b612b7560a08301846124a6565b979650505050505050565b5f81519050612b8e8161240b565b92915050565b5f805f60608486031215612bab57612baa6123a0565b5b5f612bb886828701612b80565b9350506020612bc986828701612b80565b9250506040612bda86828701612b80565b9150509250925092565b5f604082019050612bf75f830185612704565b612c0460208301846124a6565b9392505050565b612c1481612473565b8114612c1e575f80fd5b50565b5f81519050612c2f81612c0b565b92915050565b5f60208284031215612c4a57612c496123a0565b5b5f612c5784828501612c21565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cba6024836122f7565b9150612cc582612c60565b604082019050919050565b5f6020820190508181035f830152612ce781612cae565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d486022836122f7565b9150612d5382612cee565b604082019050919050565b5f6020820190508181035f830152612d7581612d3c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612dd66025836122f7565b9150612de182612d7c565b604082019050919050565b5f6020820190508181035f830152612e0381612dca565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e646023836122f7565b9150612e6f82612e0a565b604082019050919050565b5f6020820190508181035f830152612e9181612e58565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ef26029836122f7565b9150612efd82612e98565b604082019050919050565b5f6020820190508181035f830152612f1f81612ee6565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f5a6019836122f7565b9150612f6582612f26565b602082019050919050565b5f6020820190508181035f830152612f8781612f4e565b9050919050565b5f612f9882612402565b9150612fa383612402565b9250828201905080821115612fbb57612fba612795565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ff5601a836122f7565b915061300082612fc1565b602082019050919050565b5f6020820190508181035f83015261302281612fe9565b9050919050565b5f61303382612402565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361306557613064612795565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6130a46017836122f7565b91506130af82613070565b602082019050919050565b5f6020820190508181035f8301526130d181613098565b9050919050565b5f6130e282612402565b91506130ed83612402565b925082820390508181111561310557613104612795565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61313d816123c7565b82525050565b5f61314e8383613134565b60208301905092915050565b5f602082019050919050565b5f6131708261310b565b61317a8185613115565b935061318583613125565b805f5b838110156131b557815161319c8882613143565b97506131a78361315a565b925050600181019050613188565b5085935050505092915050565b5f60a0820190506131d55f8301886124a6565b6131e26020830187612b12565b81810360408301526131f48186613166565b90506132036060830185612704565b61321060808301846124a6565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61325182612402565b915061325c83612402565b92508261326c5761326b61321a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132d16021836122f7565b91506132dc82613277565b604082019050919050565b5f6020820190508181035f8301526132fe816132c5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613339601b836122f7565b915061334482613305565b602082019050919050565b5f6020820190508181035f8301526133668161332d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220faf31d25f5bba3321231e05d0088926b459202ad60fd4c4f7681424d8b8b286064736f6c63430008170033005820035b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db904114005820039d0e332f80d1cff51a8a4d8865620006c19ed620818900cbffcee63890d910480cd157e3580065c40219108000582002ffb05fa7fb6a86937d01a672ff01821f7da270655c75053d497d06c32e5346480c7d713b49da000003255f32ed2a6bde98002da6e3cc0e58b70a5c3aff988ad5ddec23964bead0189600582002bcbd2ca84c64596a5f4a56e37d84862dbe3f7b4f8e487005029c09dbeb1e9a48519b8da754b697c80398d66d4877a1fb465b7a78297794c425caf898b8e7350b4ba0127bea651f55a5005820023c38f9d0b8def738a80423f5265f1ada8d30b34be15c19bc3a3fd1df57d55a42029703314b929e13059b976b44aa45bd1151392160875b85ace22641d630d3164429bc005820025f4b1b6e2ee5136983d50c8431bae54e98f73b1caf7d3e17cd5798afda01635820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002ec4e4fbbcb6da7b80a630e152dca58edc7dc693b288741bb9c8ae9765a20ae5820ffffffffffffffffffffffffffffffffffffffffffffffffaa9621c7818547ff03323eb01f87ce6292295fb80c6386ed7dba5a24992ddb40d9f650a8c5b91f786e00582002738f9317652af9a2f8d98a36d9b74af5d5efb3005bd748616a3951790c1be1481c0e9fabf28e665200582002a83e01ee189236ea420c06c1e5ad90ee0241afac784f6f77e49865ae28d7ef4807588688d615179a0219afbe00582002444e3cbf73033e1b3611d22ec5d580e428dace4b6282de44d4e8f3155962cd4802e368fc01683cf9005820026311e91d717d058f799f715c63bbb3bc375e51d8f7465b4b47ed7e710a1af148183f863632009b8c005820026847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672483a4965bf58a400000393fea7c248e1632707119833e743d7b4c08d7e8e83edc0d635aef8ed23ec0dbc0325c25567ee1cf657c32e1672aa17e8da341a31e8eb483e8ffafaad1683bd875202193a400323c8c4e0df9d31c4cfcd74b19e920aef8a6be3f58d833ba46ae1fce01c10da790058200233f2dabe70191bf91fee4f9192ccb4504339a8d7408b1f65a4903f2b916a115820ffffffffffffffffffffffffffffffffffffffffffffffffeb9013c7aaf39062037ffe4e689610cb88f86a56212b1816ca45df612faef8d7976586254db00649ff03cda10e5391e9264228eb2f0bf034f1ca9f26c78abf2cee8fbda3a8926dbe0b78038a2670b1260d74eceb27bc089fab9138528a3cd6f144f557d44ce7b6a9d02a9303a874ccc003f5fda475569abf6e38cec1a397e3481c89767abd60752450da87670058200200adfa2d10f44031f716086e8a88b410cbcddc45a2423c0b1dad37c1f3b1a85820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff033fa7a7af3e3e272ca70a6c5bd1899dcf9ae5d1629e59b68a7e7ca4b5ab14ac0201410d00582002a8cd92dfedbb1d839e6d78cf6ecb71f14d547134c79c2ee1efce9a4eb1fa624802be735d5101ab6c005820025afb5375241c8723c9b801292630c2ba18cfae58963b95963507b1c2642db9481d044d641b3ff24602190fdd032f98a28fea9c256f312526db825f1e1def4919d6c7838f156cbb1f2d0b250ffb035ed1b9a0abaca55b8185639f555671606960c317025b1d03df6efde927741b8003732861e026d5c368f4f63aec23b05e6b935c100c04105bda9f7cab75346a245000582002ea540327ac56e8c788686a6063618ec78e3c1635660cfe53397209b174133c4817e50e2ae28be1f5005820021877b57dda2f007e1abc736d6f26bebe6633bd8d41d03cc915856d2336eaf45820fffffffffffffffffffffffffffffffffffffffffffffffff48ed2e258780baf00582002e2f9063983567252a650cc97a252926147af57153df0b458bbc49d82b949285820ffffffffffffffffffffffffffffffffffffffffffffffffba2662f0eeb654ff00582002d2e02aa0f5af8c37b4ddaeb0e96f6e7e2e7317db11479ebaf39e8a7ceb5b294864a151da1f0decde0345a5a859c0ce381a99a5c83df826c5e1b0480f7fa3b081275c6b15d9a7152baa035236fe8186bcdfa1066327db9addd460af663f697163d0f382fe12d1e9e1f21900582002de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09057010001df675ac7eb6a7053e6988565f57dc3da177661ef03818b287d07bfe7ad6b072e3416af9f7e5717f5d00548b66293da464f6d9c1a0d037352aa8975319123fba4fe7c7f8b6249d3595fef4d7962b0aef9887769ad7de50058200296098a2446992373a77be9e143670314335ac28d9a1f87c775d7af694a61f9485ee43b728c07df89033e320bde6d10d065f028067fec9b1f739fe03bf81b6b09158cf371d331e8d3b9014106030530e71f99b92abc4c27d827fff142800b5b0a63696a0b1c78438449f07027260219d67f00582002dc61613003c2437d393fda5248af1d077f6825b1a38e61033509f051002e605820ffffffffffffffffffffffffffffffffffffffffffffffff8ba0eb582bc2595803bb48d01868b678d50046f4e696f719a436968e1d491c85f4fe62c359e13edebd03eecd73caf6493e4be7c603e4e1080383ac00d3dca01db6cfea259509573099d8005820028452c6f95a7f9525d32f33fb2253d40897cb9cdebd16a9b4545e99261edb3d5820ffffffffffffffffffffffffffffffffffffffffffffffff8b984f00ed0e6c98005820024b38c10e058d274c6f94ea67affa92614db48fcddb8170c5c4031cd8090813480e95a1f178897cf500582002eb66a969808d62b1afb823795ef60ba0bc917f35815ccff6bc8b36715bcfa05820ffffffffffffffffffffffffffffffffffffffffffffffffe92c7ab1dba5df5b038ef189089c02ce0fecf07f5c7a057d6b0cc76cac47d5e03874a5da5033063d5700582002a34a87882315cf2fda3dda6cbc2c1add4016ca5c8683d0f6f71d79fc3e66195820ffffffffffffffffffffffffffffffffffffffffffffffff9112c4cde760a01700582002150f4ac141e5ec5504f6b4a2d8401fa1aba4d7e8f68a4f65a83dde9a58161b4806bdf88e5f71b78a005820028d876d584f4a8242779a0975855998e30ee37efb2ae467e24cd62427ecb0e3485b3339c8692f3ab9037b387dce82f7e3b3e7b4b6278f4068f3df3554e5ba3580af6ae2641aeeae7f6d03a5047a3fd6acc6d8505bb01d8738e839b8e6631ea2448ec35ab1043824b83e860219ddf6005820022d974797b3b46e4d943da9dc92b06cb2934a6e91fbbf97a119cb77b4a24fc94847d15e72bcc28a8f00582002585ff0d8ce7cadeb77acfb034dcd8dd3d7689b2aa97599ba171c777da37ec15820ffffffffffffffffffffffffffffffffffffffffffffffffd4e053a6dadbcef903969c3fceb182b762ea8ba65a0f993844fff06bc6fe4bf7ccaacb0c925be2bddd00582002565112902a4a5a91fde59db5a2e801b4c4e8cf0168b26eb61ff2e36ddc7308480b3b9bbd30ddab9f0363f80b925ed26d77c6bb2d5519b19ecc3ed20c468c3bd58b978e944048b7981a03cb1ed5e25447d7e02fb23549f51223ddd7160b5762875ed2f10d4ba4d501e33600582002d69c03cf5551cc8b0f393cf43bc578c22eacc469dc716b10f867636dfa3ebc485569de387e7ab80003a7416d4f5229ce571c29639c4f74b49b7048cea0edf9073cc2cc9793779c7e31031b2806e68a9e13dbe98d6823e61ac80e368b9c5e9eabeea806ff1a0d5537fcbf01410e00582003108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80204916ce3f1e16bf15000000582003232da615b5c033fb8d0072d39388965f67cfd9d0dffb0a0d3ba04e20168eb0481b5723013f013d3a0058200328a345034a2aa0ec6b4a56d2b1342ee46f38caf2955f4a47fa965abcf9e2604807588688d615179a021902220385a752ad25004391b2e3475e9818c51e06c1a358e3956514a4066fb56709450500582002ae75c1fa39d39eeb533514396d24cc991109978850263abf852c80bd46c60d481761df2327e5224c0219fbd60058200258223ec9b1cd060e6e88ab61ffda14222c82576a2ca0fa217f4daa57c732345820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002ce2b00e67e51b88f13a6faf65dd6bc62d933dd14c707e6edfe4e50b89b59715820ffffffffffffffffffffffffffffffffffffffffffffffffeae8d50aa59cd3e0005820029fe2a24cce1cd41ed05437c7cbb96a7b0f02c9ce00289d521ddf59df9f60ac5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03ec97e91d18ced98c4f01522a83906b723bd4bb6d7ecefdc2cadf056f1ef9863800582002496e4d7297e0f840d838f0719c8eb46740450f6270da99726357c7a43a983c5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200274a36c3cc810528bb60d34384c32d51c09471d004373bfd0026e8e123497925820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0314ed59207e71e8cbd5b0d38dd79fd663b25607297280ccf7d34b7fb7929a5c3800582002ab67acdc83a12e0782c15bc4edda80c36929b792dfc9f0fb145cdfd10857685820ffffffffffffffffffffffffffffffffffffffffffffffffaa9621c7818547ff005820025f4baa35c70a3bf96cb82c8401f63c407096104600027e70f86be6ab32aad5483c527bd8a08019a70058200263acd56fcb2f339fb3f7dedb16a10f2aff189c738a182fbc77cee7ab5608a8481e581d85cc30c3fc03e31416e8abf81feb5b727d7831fa6e9b25289a671a142053739b7835283551440219f66e038fb6b20c4f0d9e12c5d002661372e3b5056893bb5d49ccc36d760b85865c63e001410400581f02d5bf52c97786f6d49f6f5af64808f5c05d84076b253a3de803687a314a0d481def1d7d83b212ba00581f02a5c4a82f2f74ffabf6e51c5edc80dce67d50982c0c165e3df2feab8b12e35820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219100200582003ba592b733732b5db407258ebb5f6a11046235e770a179ba85aea1fc8ce4e905820ffffffffffffffffffffffffffffffffffffffffffffffffaa9621c7818547ff0058200393956e6942405ee084e8f6c832ab5f163ceebc85c317e8948788711f0542b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219880400582002327f18f1218f10e5564604e6d6600edb492beb431010fa198bd26022b6dc145820fffffffffffffffffffffffffffffffffffffffffffffffffb7b8c0e13e5518e032eedc573beedb59e9330c854fa29681a521acbba2288950aa204f0839c4412b9005820028a8b5e3d47b1975e30e71e509c5f9fd93fe502bc38ae124317652ae0d182885820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820026cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6884118005820021d605fb637aa8c7717aacaacfc49ecdf5769d052093fd56e4aceb4ee7d0c0e5820ffffffffffffffffffffffffffffffffffffffffffffffffaa9621c7818547ff005820029e766b2c698518b98289a405279a4de84dd6049c5fd4f813357bc1c8d1685e5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03d1c19c44f8e052c279743d3fd7a358f7d39ba32d90a75c475eadd159c9e5cdfb005820027bc50f9564b90b48c4a65061f356ccb7748969d2f2c7aadc9d031f3623b51d5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021954df0311b8fe0315e564bb30976c75a52bf2f67198847f07de5384a1c6d877862a6f6b03bcbf5bb710b84a303bfaf20a232a23452e0ece6c6b9a0d5952ace144304d302d037df575970351f0066f502bb0d6caf8b56ed74385c5fe0a3615f8928d79f38a0103b646890cbbc31e7d49846d22d5688238637dbd95707d83bf4ad7c6ec6a39944a005820022f7a27493622f61e3365374a4b634aff849db10c60fd5427d6aac4a047cbc8480d8f7d2d8c069aa0005820020f4b0cddebca23d2ed385dc7e32cfe59a1c0e4e1c97fb80d935e0fe34712d65820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02172cdd55898a22955a9a0bf9d6a3758d8cd8106521105c3f611f0f4839dd4817b084268bda1da600581f024a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd4916ce3f1e16bf1500000219082000582003a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34440547a250d5630b4cf539739df2c5dacb4c659f2488d02190180034abb82ee5c29edffd45e070956f328bf02b4216fc5c37694dd75e4f711ff53820377995c8950a268b647f0ca6953df0e080c9f78d6fb51ace8028d8dc8dfd234f10058200218b5cbc40af393a10dbe47c36bae4843a3ef36c8129535c1c7096168e6be895820ffffffffffffffffffffffffffffffffffffffffffffffffa92a820890902aa70219be1e0339e20ef5060e7fd3dd24308efc8e6e35150efdbcea62054f41a213c021f45faf03f842b6ac46dcfa019f4a3e561ad924d1b2d26087f6026da5251b82ce67ef529d034ce8525f58614a21f7ae593d6fba34483581cd0f66aa21f66c783fbba535715a005820026eb630cb900483fb16f5cab455ea908fda88ac470ae123e060320544e2101a486d558200aeb3acdf0058200273550101a06d06d5938f124853d15593bdf0736ad246da599d0e98e6c6188e4803cf5b53b3533b24005820031ed3604650b2aeb65f74a72d2bab8f72eeedaac2dde3d554b57f413b8aab404801fb17a92d5c32c9005820033a7de1166cb53a7600f7f9f52a3a49a00c5d436df6773c6d20bb1679d33f605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80411402183803b91326e6a2c9fa047c8bd798ec24236687ee90f1cc5d50ba9c7f9e69798324ab00582002005d929aa278bdcdcd39219e13c566064d0561a8b8a8d582267f88589cca36480f6d31dd3d2352980379bafa2283069cd505dd6ea8267925bdec7f80721e379528c51b2bd5d65f840c034ec13858d2fff1f311b6d74083da8a223c8b0e917a7171d3cd0c29743d10297e030a9397b9c4e5e7d21529d108fa5271073f7d62a476f0cc1b2507438167d4de42005820026d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec410102196eef00582002d3e948e6a5b56dcc9b4a7e103ac01e6b059cf285482de8fcf963c25efa2f7e48013cb4ef34e4e36603beefc61f2bacba252b4d25fc4c4edc3e6014175d31d78bc8d528e4519b2a974d00582002d16192d0a6798e6197663e1f89ada19483a35605ee10b968f08fb595d373925820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820036990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5041cc00582003710088d32e4994e46679566ebfa9500c14ae78be6b520a091f2e6cfe143850480b172ab904f4cd5502192800005820029786cc93ad8f4f91813264000043a054e66d1caf2b2a86e8fd975c8cabfea249013234647c72fce12a031db3ef4b0c75d2229bf08141ace300d5c7ff3908ff9d36cd6a0d59e352c913f100582002a547f0890839bdcd4fc4b7c095db256dd585339efed8e975a8d8e139c44eb4481018d652aafb29a100582002834e2cd19284199db710501916e3b1b362ab824580275d16eba52b782f536a5820ffffffffffffffffffffffffffffffffffffffffffffffffc52a055048a39e9300582002768a983e211af9d796a60f857a3644c23d0ce4d297bc698ac8ffb79c12492e45010000000000582002005169355126d939da883c623da688a0969e2222ea9815f3710ed05dec2289482154bf545a4a471803524e3202caab6f56fa6441c66caae9c37955b753c46d43907c5ed605af8a15f00219fed103a519b11272c1bff29c32df6014f39228cfefc8a073b9b1cf5fa4a4a78006715c005820027f48010d796c29b5aad4fc5c152f344d68cff517aaf3a0996cf7904d4751b3482608543101313c2200582002aa4d51f69eb291c140b6f9648f4b61562e4e404d95962cfc5765453118372a5820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200241aee9229b07ed4a400d1a4eed9976238604d36658acb418ba0d9cb2b27e8e48778f0792e84ce2ee00582002af5c5ddaee0bf4a15c3d1893e01ca63c840269303f9e66f7094e75c6a352b45820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820024142445b2301e4ea5611d5eff4ef981c2a07acb2f2187a32467d78967ad327480852de72071daaf600582003880657d58a62b40e3c027ce8416fbc66be9c9bd6bd42147e86f83511295a405820fffffffffffffffffffffffffffffffffffffffffffffffef9c83cc5b48dd83e00582003560cffe9526d74d63aad97dfe4aef6b7ce300b64c7455023396b3491c352c0490215a2f25a7370a09802192200005820033ea59b58fdba855a6d190cf5caec5f93aaf864767b0eb6a809c2c132afa4c0480f581fa2423bb638005820036e570e2f67c3027e9a44bb16d8755d39e52de9fa7f65d34e01103a2d169e405820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219400402194537005820025a586a4be78b8487e653b2ce51fbf634a768207dbb99eae5de4249f1b9d0365820ffffffffffffffffffffffffffffffffffffffffffffffffda71d1de03e7b7da035d1555ae00077dd648143826ad3a913a9df60796dabffaee1bd8ed3beb46b3c70399e7a91a6ea447ac45fff256751ea1dfc09fb45007ed19ebcc282abb48cb935800582003d5e7dfe2872d00c84c6ded1428c95a5f1705f3fbb70c1b69b3bf25b9ca66e05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003be6f2cd22d3f34de208228f5d6491b41f0804c063d65af6d91b80283c98a30410102190801005820027cee98442ecc82d8b2fc9984bbe567211a7c044a168e7e956ee5d8eca2ba3f481ae98547ada32e3a0058200215e13cd9a0736f20dff93fc118b1c5b5b8c250776e1e58e0132b32350e09505820ffffffffffffffffffffffffffffffffffffffffffffffffaa9621c7818547ff0304e7710c47796243b8124fdfc4a9d5789acdaa9f5e0acdb1520683c00d9e249600582002d5365ea1cf3c3d39d64a115840ccd8cf9b55a3900746c637789b2bda5b2b155820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582002b85d58da4ed176bec88101a805a50d36dcf3039a157fd91fb47c9b269e36e55820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff032e9f907bc5708238e7e8f8042e7b4281eb5b1f7126fcaae1ea5e46b7416d176e005820022319175196c6c661f7dc69acd2dae315270660e5b82d974d3927861a0f935a4802c68af0bb140000037a7b8f7d64d739352c13ebfb7ac406872c213eb7b4114c8835ccc9d607f13521031c3354ad087b5ec1b99fc19cbe4bdaf3d8fec168e6347368763f3dc963b9d1cb0219b9ff0219ffff05581d036a101de4a9179825a19e13659e6a8011fc585d9a332b0a91c55d8bd007011933cb035b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce503d269c60893f40cff1e32d7b1ee8d3c5c1e5964a71924b5ea49b1c5fd7f23a52905581d031789bf6cb26eed1e8b3ea56221825a9a063fee0853cede07567c520007011bffffffffffffffff0218a005581d02e7824bdaf0cd934e9b787c487e492997289412ddf18c36543bc19a370c04467e679e70b9d802190180030ffba86baaf43f22a3c9e6955d19b5d1941aadd2526da81285b43a5b06039bae05581e039b386b408462161eca34e768554d18247a6de3f9dfa2357f127ef09ae0040102199d5d03579eb1a0c5fda29de507f6ccadb25a1d9e40feeed1155e6ee160345f4bb36dce034c0f88f6a61f35409e3bfd6386c0f231ff1326ebf7ad956106c1d4b3a57eb704032cba1eae703deaa8a59d070015c15615f90a5035bc46bb83c149733de25359cc0377c271c132870a0c67aa96e8c294f2452b80ac9422c50f1ad883c6c88b478fdb032f7cca978d052db1905e4412a490f6df4a1415bae9f7ac62f8ed67abb51620970392daefbadd96e0f7bf14ae8dd638700dc283e6d07b90d8ab72271a8ecc87587f0318370b4bcce959f2b92e13554182edbd205fc43a085090b8bc76520f10f157e70392f9ce86473b8dd6ce65badbbba5ef9dd1b3bbbbec130fcc0cf116e34076e50603b91eceeebc4bcb6c63ce5c33299db60b7e4ec1746d0f1fb2319485a779788e68030588bbb02468329de2c189793cadb6bff1c1473d61180d3421171361a0b179d0033eb9fb02ce8cb36b9730882518128fe21f35822d6d27ff4cb1432d01d30d83c603016829d72741b5c4e696abf5e97b3eb0ef26f4d43e5a0abedf42f03aba85a7d103787876d959fc11caed534a7ff6ffaad32bd9cf10482ade3ec346e9ecc0f688b10327cb206460a3f405532a4f9a10364271fa30c6fe828e323821d39b521be6b67d0219ffff0391a12cd7409df898675c4418e51a7c6ee68824b9ffb530902009a1ae9fb2584a03075dce743e152e052f1d455abd9b05c24a4ae1eb09bc014a601e074a7e4ad8e90360abda94d0df1ec0acaac7a9634066c7d0e0f1a1e5e665013ffcf9c73aa16dcf032a026ae2ae6a04edb8f9eda104ed855bf7b9f147cec70c74b85ef40d1ce084d603f5c2a0e4033a23e388662d5443ab193dd15a49bdd2c6270094124e26ee2ba245031108860c6578591c8ab169774409a78daf2a3d3255c457c048e40234f337d6a603d7fd24453059eca52a9ee481b65b572f9eb62bca2cb14d11c67e49e8cff27185037371e732b040f195f6f43304dbbe5cce11365f46e7e305a1c5fb61d75247f12003f4c979446bd2c4df50c9a6648c0266ddacb5ea09424c794358d8d5dd6206a75e03f512eb08a40b6707e3c92265da1e517ff76245bdac0064752384b59f8b8c10f20219ffff038d84ffac5ced83925b7d25d4435341583fd92996e11c96c4b670459acae91c2903cbb03de33fb9c93b91bcc3e06ceab607a217e3d812a4967be3702c00efac481403bf512ee7a715bebf95014bddd6df800747dab07221266e72a06608cdaf8b604803276d5fff5722b14e381d8f7a7e1d69666c6fbea6d9b1606df0d73970be43f6cd03927062299b451ac2cde2a21636fceb63fce372945d608049da9366ad6a1a0b27034493bae9040f371425960a86181ee9459fb3ac44e438f745c709bb32b4365fc80219ffff0306b9d9597bb88c2a7e54a170820830e89fd66b952b83e8945de6619ee77d4f1d03436622163e4bd309b7eccd939228a3adf0e67d288873277b9e78e4b541e569bf03d9c575e36329371287799908185b427cdef2dc4012d6230ef61c9807e388e249037e8ce31eb7f2b3d015aff9f4db69e1417d3fd190d182e57431d61a035a87371103c5ff1b14dcf4f3ac7f604d78316bf1bb7adb0fbd55fdcde06c3dfdbf6d1ea7b10350d9e07c72f3f1f779ab0bea062811101f0ef247f8ec5b3e501cc5d497597d0f0302ae5747f5d2cf20f71b19466b11f9935c3abfb87915c5b8aa17b838cd036b270219ffff03ce22e0e8bd02fe2f895584073998da27559fcdb454695c1a7261f18c2bb7ee5d0393dcf20e65a10053f4be33b6ac52cb83fe7663137f14161417e900fd84be10fe0307ff7b9935fb7ec7d573d602ad01c7333bbaec414be46cd4c57f7b148ca043c40344f8e6e40359686ba47e772410682d3866fd074b66df440980351ca2881ef3830219ffff03d985500aeb04d748b77fdf3529ed53f5b96e5d62d8695e1cabd35e713b030ab20374ed45e771a90b9c346408e68a46b520365e5d5fa3e31b8e2397c8bb0e1a2bb903f1812756ceb667f0768e9bfd77e1dcdd1b70b51a7ac877fb9e3bf585b6320e8e0359df74959093d8bcbdae18a658ec4768b976093eced86a45eaa2938ec145664a031fcbf0e0b2c9801c6b95fbae34c93a4fba8916bc98d3b40c20ad9bc3f988f1ef03a791d6eb706b7a03ee89d4aec801ba1abe78ba0184bdf26a7393e963af02e3d903f1e04725d8666dec005379be2a598668daa4631deb2b61c66f60b31c0d666ec203832044ae9da4a60789aff925e579ea62c18d19add19fe9a75de943207ef836d103d87e272d291952c6a3aba1001b3e3bc351787b7f5c1f40075d5fba2a5e89a30903d9c1b14bf49390a6d9438255d7d40afb609662bdbc6b97dfa25dbb75ac8af860033efc65323efccdb204dcf0f1d4e071d9724cef9e754a3adb4dd94b333199ad8f031a9ca299e6ff942567b671f96b002aacbcb721831fb3ed19eb240ff286670d9c03fa968972e05d55fa5e86742095610f838c988e1aa33bee115912cd48cc05370a03e4c834dda4865d4352847e41eacabe7bc026c4da4cef1b80d5a6a2ceff60c11903f43bfd4e34de0e209000f6f2a1590bf0426f0bbd0e8ce227159a3aa616f1253603f68366266b81e531ae24279788bea5e3d55934dd98109295909015ccb3816bd403e6f7389981151a19524ea613e6a519a8d34052aaef594d09a25c69b7fc1ad676031ede4af18d0341de71353ffd896eaf9ce710f7656d434231e9ba88616a85050e0393d2e4bc8e2b87bc799706ba945c393a0ee6c842a20a34467d322f42334e10ac03eaecc2733ee91b9b4892774eb8819c27a3649de6eaf8ac96ef4145dbb2e95c89036c6af24ea6bc200566430d73604a32f32d7625e80758598a570069b765a7d15103778f23d77ab44cc721554dc9e941c59b4ff786a5cbb7cb6825e25e5ef06d65e303c43c0d36232b69c73fa67104219ca36496a38deaf51eaae544a7e112c847a36c03b99e6909083df3ec81d9a19d28e50069659b6b6f7a53a017df25f7fd5edab2a303c31216239384871581825c62351a89a895010848fd7b69838737408e533f74d4039fd1fb03269d90e32c78a6f32f292110656c63c62cfe97fec04ed386e2c4c4a6038ed1638ccd76ab0d2b7a278eef4dafc660bafa14915c9e0e8d82be4126616e9903ad5961095c525ad009365123e53882e75e7b6076cb6a4291cf3112fb010f82620305c14c02a73b21663459df1965e083c0e2b5c82cc6bbace9c5dc828dd0f438a30325560e7762f28c0b68b0ab23e7b4e0d04a3ffcc19ea363dfe49060afdae3573003e5d0902d134148bf46e0822eaaa001b26652ebad372cdb396c30ac560a4eafc603aa06cd35e038f80a907e86a29daeeb605aa805fdfeb2892ed2ecc30c5699d76c03d4bbaee488e57a11254fa86776740ba3f70e8b548861da474a1eceee71710227034005d5a0259649602499f395e7c8d68776d223f6dcbae17abf5b1b8e037cfcb4032123bb34a10b37ed16159b0756bc1dbc07e9e8da2863d31b78c355dde2d3123103f0bc15ae09b08ddb6e2cf6ade1f7c1944bd252b7f97ee96bfe23e907d1d7a71b03fa32fac57fcee6bccd2cb9876caa66647e085fa7d0afa02160c0f72c63a67a0103cdba035265b99fbc55bb8d9dd98d21bc0bd5ca643abdccc24b94001962fa312503c6932c4a78ce64337acc9de5887ba1a18d1203c7a5ad40f650b662b3b52e3a4f03fee5b9354f7afa3b7926c49e77d204b4c687d1de0a6ed5cbc60d01c24b2a773403a1c1f0e0e3b9fc91e4ccaab0529836713baa4e2262c24de893185f24d1b3b4ab031ba5342dc7ef049089d5472d2709cad094a2aa69077cfe6ec32eb8d5be0552620357a94bebab69c48d97717ef7f9c091c8c4fff761812fb43dd9dcc72574634e7303d20f80191e58a26e4b72dbde7d20b494c7c955967cef2fa17d412983023c127003fb635ddcc5bd902288b57c6d190ff1e0befec811d0f452dfa0ef329edefeb0030362f10d279ce64a2967891eac21fdb25bc32459e999e5c3a8234c0dfbc437d2600305bba7e2adb1af2607a51fcbeae91204d8713c2e3b7913fe5e3a32d33149185a033d4b58695c4ef858e16b907987c43ab32d3d4b01611fc12b2cbc8c69aae34406036b09308b2f5ff7329af362444d57e70a44b9998e69d1e0c2de12f15690a941a603a2eafbb8df8f6a5789e9a39f131cfdc75d65d0426d1fdaef88aaab5e1ad513eb034d7d7549f2c4654e772c170f01fc80f34a60463d7f5993c57069f690f09d859703cc92cc79decc6471f4b751bc0ca0ecdd3c2b12c28aafc100405ddb1a589fc66c03e4d66c6365e4d8425e5f4b90985ebec8bd4e9ece873e9b9d5ac10ce479a49d7f03034ee1eb117d05caf0d3874025311bf768f13f9b2ef7ef91b2c216b94d9464e003b991cfe7777d20c44e924b20c3b95d48944e27014ade9ea4ecdbf11213d08dfc039f7f98c70db192293bda936097b12697b00a30955e4669264da63e728a4fd4b80325ce7fcb4d0f24bad6c80d3bdcd1aa759bb064f6b90d74dbc4c9fee7d68ab43103cb942b3ba64b0debd84c6d35917bf94fc685703fd82639ac3fa7f5a3bae2d5e70308a93def30c398f4e67bfc028293514a33225618616a0776ea0bd11a7d77678c03567309f3694e20d08eb905bf2cc396cfede8cc06aa11c765add2013e62eaa55603f88c60914869cad3501f881b02bf278caa7188d19c94a43e3df52eb026e1323503b34002a9c8962b973709ce8518d1195888bd047d9d1f10f61217be7a7834db670318f218c6f0601ab4a3b5f123233d3c9828646813554c9f31ed2c21fb04a4bfc805581d026da1572e969498d2aeea7890749e291e3428439d62b97a9112bcd2f70c18404783ef33385aeac5031af4fe3189f1941a1e227b6d38354818cf82e57978a7bf9981911f0ef35fd5d505581d02979b35fb846ebe67a2ee86ffa3b044acc5629bc837f590c6801592470c0645012a05f2000219082403278fdcfb64cff6b6a8edb8dbe115ce42d7f1ad26d01bf944d929bd00fd5cdadb05581e03471313e3dd8816e34201436699edc90918142f363b4f358abd93a7e2400c05472c84cf74b75230038302ac6d84b493efc5789f7626f30a186f1970b65ace5f5bb5dc82d0045bd21c05581e0376327eed36c4af62b611494701a64ecb75b54417609bca443d25583c700402031a573896010463741f44a9e53c7dc1d07b66dbdcfb756b68d716e54e968263230335d419e98b5308eea4be2e9af37c934f7db1c679b57498ec0372f3a5e9782bfc0302591673bd9f1a2df27d4e5c0fa507178045d7a767661eac189e0fcd332068a70398a00fe4a9347a33bbada3aa60eee6ce58f11dac052cbde4008ade269ac7cdba05581e03830c219d3451d96b97bdf300a3b88072ffba2545956ef8cc07f6a1a56007011bffffffffffffffff02198bb20219ffff036cae310dc347d0f1b2c9f71d9d3455e85783411a10d73ea0a1657943983bc4130219ffff03e62918726fe53651863b398b7d280a948e18f797df2df91d81c52f5bd9c2bb650219ffff030a328b4bcebc9e6af48f4c8dd7d6c82a255b432c0457eb625b2341d99eb428da03e61e596012413bbc10e2364c6383a9a373be32f5344ffe4c49c9d8e7f0133ccd03ee90bd82b2f384a933f1841c528e6ce163ebfa1cd1dc2e68a0362ead3703836003ec9db5e28ec1b4cbdeab06db0c7f1e3318c35661f5aebcbcb72955bded7c5244033e82e48cace172f9ede7867ee2a3e335c0501d72ff644bc3132f79e08b72db4903416a5c6720b6a27fa1ee6153b1c4693bf9a7011a1f672f6a50bc119e5d5d28e303c74aaaed70f29903d95047f75565ebdc86284bc1006158d469f8f00cddabca9303783b0a8d0cc00c837f2646f608d77a0126f6e40886e34fdb09a8ba43cee7f4d00219ffff0350d9488c8b2eef2bc676c7203c6ee1cdf00eb12d4b8b3ca97f372f52397b452803513b3cbcf8e5dcfde4f0b1a986f1952de9b0732a5197fac4f7befd5ec9a47d360219ffff03d3427ebdbc516db4f8ce553f34cbc557e7cd57611179e29ddc53b1dcf8ad69c703345cf3eccb164b180e73bb2246cd67b4360856618c81557cc40f9653c0b582bb0381ea7f05444ea211c97bd82797dbe729f0e304e4022965acdf887f695752e66303eccd85d47406a08d88690764ddb96460a922ae92e877c2e744fb634707a9967c035386a932fbd7fa2a93f3135daf702fdca185f266a6942aae08d7fe1de2d99f9603e345f5a4c4c6a631628c369e20d8398ce73392638cf8082360b460ebd532b8d703a2f1f51124caacea9a6c470d360ef751e0f4e85fbe4ad714e6520967cb1c7cc2039707f03c56818da080eb3faaa395f9b4137f6923db4a996cce2bab36b56117e9034f73cee25a48791596a34b406fce65158bf9b6b6f174b15fb9845fcb1122a29e03c835dfb8b6526e52bbd52570d0b4b7c9d4d762d49f764e709d29ce2aeb0122d303a4c849171da0cac4b5ddd2fee18ad25f5f827db7713896c90c2f237c497431410399f82e838bb52daf79aa310078e31adb5ee59b51ce2bba2c37967d4c90af88c103b0c912339bb39f60578e70f72700682c9aa101d5263e914eaef126e8c96f610203a0425eeac624b2862168e6b0eeef819bf535191e9a9ec19e88978d0d8c28fcbf034e0d8b09a41be87bb0eb3d0d0710929ab7d2fd19bc1dadaa4a1c4177b6e09ae6035f8779eba8ecb7358928d25b9cd855ccd8df417a0a5075654e189a6db129c0f8031d4628e211da367227a23ed36650e830d55d8f2745bca6ad9d34debc6f3ef1d503720640896ab527d6b6ba2b2cf776044eb2f66baf107c968aa9a9457dd6ed05ba03569812b1252887a1c6c10dc083a79a5199d3d8e90069e18c8da94b05c2f9ac13036e2d0bf8dc6e674c0591c720eb9f2f38f77fa3a356bc0df6c8616dbe91eafb87032f954665c63fa1f176e9761e51070de59bf20347f5f5cf30665d3921ea50e45503a2732e7ea3395ce910157e40e3c7cfc53b745458ce4c84ff0920d614fc3ff00a03ec781d7a2f1f305c5b21e32fdd5016e42aa4b361855cf803416f5aae057e975f03909646b313b078a40086a6414a4c3cd9b4594d3544d160df9572f8c580c8f70c03755ceac27a6c81ee7b10f41cfe33ffd31b6bc34cba389f6df23e5569fbb90c1403ec5e98e14dfbc90eb46fd51562e6b148ac5ded713c0a94f730e5787d54f252950326a8b434661dd7f751a0106d730678ce3805fa572295336eb8ae3c0f952eeb050317b4c10d2ba669947a31a3deb5c328775561fa60515495d3b12f04788fb483a703faf9d803ab56773756298c25904854f89a5ba23851798b8536f50ecedd04587303ec3e90542f1b2073ac50ad0a0416650c44ed8a597291670fbcb9242ed21c6d99033411ffbdb84e6d4e59f2a7df103f50408914066c73f3f6f53632c27635eca204035e1482193dcc977cf58e7108ce2b32587dc42ea8ec379fe7172ec7f74da5442403622483e9dfe82dfc1d4a81adb651ec6deaa031dba8ad452643fd6ddc4b369fdf03776d40cebe5359b85f62f9170889a8aa9a516ef5342b8d6323f0420b40483d0003900ee424e0ffba5f1f83ef94b59592b63fc7393635d57de49b81a3c64d5896440384545919f1d8aa7dd6f919584d3c8cb85ff96b43ce464d71ce1d998340a226fa05581e039e91f3985aa9356f17b1269ffbea7276bc875c1f87632a88b1df07ee300c0147277af8187b7cfc05581e03df83fcf7887910a3fa90b9b14c8650855296c438aca012151c87b173f0040105581e03f1b426288cac2eb41e81d7068c9b47936f232505ab58f39977656f365008480320db8cffada80005581e0315bae696893ace6979b9463b8af411e9e7ee73c6e6a773ccaa74ba26d00c18224758e3312d5514d803702d223c6e51ac63ff8ad1620c65e768a79f24c12c9e82a52b20776e7ca189f205581e03c7bd9bef4670c155a21164dbbf8528317624038383c62aaadf8687efe00c014609184e72a000031271f1a3c827e8250ce21f4c5501d4b57e4c30e3a914445a92447b9aed8a04a705581d025a3c668361a652c79f070961fac3e9dd7eed911a6d6eca2b37de71a704020459462660a0604081815260049081361015610022575b505050361561002057600080fd5b005b600092833560e01c90816301ffc9a71461093d57508063150b7a02146108af57806324856bc3146107e85780633593564c146106b1578063709a1cc21461044f578063bc197c811461038a578063f23a6e61146102f95763fa461e330361001257346102f55760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102f557813590602435926044359067ffffffffffffffff918281116102f1576100db9036908301610a97565b919092878613908115806102e7575b6102bf5783850186868203126102bb5785359182116102bb5761010e9186016136d0565b5060208401359373ffffffffffffffffffffffffffffffffffffffff938486168096036102bb5761013e9161415a565b959097602b89106102935786359260178460601c98019561016d62ffffff883560601c9660481c16868b614365565b3391160361026b571561026157508186105b15610197575050505061019493503391613ac2565b80f35b9395945091929091906042871061021b5750505083601711610217577f8000000000000000000000000000000000000000000000000000000000000000821015610217577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe961021194019161020c33916141b5565b6141e2565b50505080f35b8480fd5b91969550929391508454841161023957506101949394503391613ac2565b8590517f739dbe52000000000000000000000000000000000000000000000000000000008152fd5b965085821061017f565b8483517f32b13d91000000000000000000000000000000000000000000000000000000008152fd5b8382517f3b99b53d000000000000000000000000000000000000000000000000000000008152fd5b8980fd5b8286517f316cf0eb000000000000000000000000000000000000000000000000000000008152fd5b50888813156100ea565b8680fd5b8280fd5b5082346103875760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261038757610332610a2b565b5061033b610a53565b506084359067ffffffffffffffff8211610387575060209261035f91369101610a97565b5050517ff23a6e61000000000000000000000000000000000000000000000000000000008152f35b80fd5b5082346103875760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610387576103c3610a2b565b506103cc610a53565b5067ffffffffffffffff9060443582811161044b576103ee9036908601610ac5565b505060643582811161044b576104079036908601610ac5565b5050608435918211610387575060209261042391369101610a97565b5050517fbc197c81000000000000000000000000000000000000000000000000000000008152f35b5080fd5b50346102f557602090817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106ad5783833567ffffffffffffffff811161044b576104a1829136908701610a97565b90818551928392833781018381520390827f0000000000000000000000000554f068365ed43dcc98dcd7fd7a8208a5638c725af16104dd613675565b50156106855780517f70a082310000000000000000000000000000000000000000000000000000000081523084820152907f000000000000000000000000f4d2888d29d722226fafa5d9b24f9164c092421e73ffffffffffffffffffffffffffffffffffffffff168383602481845afa92831561067b578693610646575b5081517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ea37093ce161f090e443f304e1bf3a8f14d7bb40169581019586526020860184905294849186918290899082906040015b03925af193841561063c577f1e8f03f716bc104bf7d728131967a0c771e85ab54d09c1e2d6ed9e0bc4e2a16c9461060f575b5051908152a180f35b61062e90843d8611610635575b61062681836135fa565b81019061388d565b5038610606565b503d61061c565b81513d87823e3d90fd5b9092508381813d8311610674575b61065e81836135fa565b810103126106705751916105d461055b565b8580fd5b503d610654565b82513d88823e3d90fd5b9050517f7d529919000000000000000000000000000000000000000000000000000000008152fd5b8380fd5b5060607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102f55767ffffffffffffffff8235818111610217576106fb9036908501610a97565b91602435908111610670576107139036908601610ac5565b92909160443542116107c0573330146107b1576001958654958773ffffffffffffffffffffffffffffffffffffffff88160361078b5750509185949391610782937fffffffffffffffffffffffff00000000000000000000000000000000000000009586339116178755610b54565b81541617905580f35b517f6f5ffb7e000000000000000000000000000000000000000000000000000000008152fd5b90919293506101949450610b54565b8585517f5bf6f916000000000000000000000000000000000000000000000000000000008152fd5b50807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102f55767ffffffffffffffff8235818111610217576108319036908501610a97565b91602435908111610670576108499036908601610ac5565b9290913330146107b1576001958654958773ffffffffffffffffffffffffffffffffffffffff88160361078b5750509185949391610782937fffffffffffffffffffffffff00000000000000000000000000000000000000009586339116178755610b54565b5082346103875760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610387576108e8610a2b565b506108f1610a53565b506064359067ffffffffffffffff8211610387575060209261091591369101610a97565b5050517f150b7a02000000000000000000000000000000000000000000000000000000008152f35b849084346102f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102f557357fffffffff0000000000000000000000000000000000000000000000000000000081168091036102f557602092507f4e2312e0000000000000000000000000000000000000000000000000000000008114908115610a01575b81156109d7575b5015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014836109d0565b7f150b7a0200000000000000000000000000000000000000000000000000000000811491506109c9565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610a4e57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610a4e57565b359073ffffffffffffffffffffffffffffffffffffffff82168203610a4e57565b9181601f84011215610a4e5782359167ffffffffffffffff8311610a4e5760208381860195010111610a4e57565b9181601f84011215610a4e5782359167ffffffffffffffff8311610a4e576020808501948460051b010111610a4e57565b919082519283825260005b848110610b405750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b602081830181015184830182015201610b01565b9192909260805282810361350d5791906000905b828210610b755750505050565b8382959394951015611b4c5760059282841b60805101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe19182608051360301821215610a4e578160805101359767ffffffffffffffff8911610a4e576020836080510101988036038a13610a4e57606097603f90818989013560f81c166001976020821060001461317157506010808210156127b4575060088082101561187e57508061109157505050610c2a908a614198565b92909860a08560805101013560001461108757610c6173ffffffffffffffffffffffffffffffffffffffff600154169b5b35613854565b9960408660805101013585829d927f80000000000000000000000000000000000000000000000000000000000000008314610fcf575b50959c95505b7f8000000000000000000000000000000000000000000000000000000000000000811015610a4e5760428610610fc85730915b86602b11610a4e578d91601783013560601c9083359462ffffff8660601c96610d1573ffffffffffffffffffffffffffffffffffffffff92839260481c16868a614365565b169084881015610fac57806401000276a4965b602b60405199604060208c01528160608c015260808b0137600060ab8a015216604088015260a0875260c087019587871067ffffffffffffffff881117610f7d576040948288958688527f128acb080000000000000000000000000000000000000000000000000000000087521660c48a0152868a1060e48a01526101048901521661012487015260a06101448701528160007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4088610deb610164820182610af6565b0301925af1928315610f71576000928394610f2f575b5050610e159310600014610f2857506141b5565b9a60428510610e5657309085601711610a4e5760177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe991019501949b610c9d565b50985098606091969597949392509160805101013511610efe575b1580610ed1575b610e8a57506001019291929092610b68565b90610ecd60409283519384937f2c4029e9000000000000000000000000000000000000000000000000000000008552600485015260248401526044830190610af6565b0390fd5b507f8000000000000000000000000000000000000000000000000000000000000000828501351615610e78565b60046040517f39d35496000000000000000000000000000000000000000000000000000000008152fd5b90506141b5565b91929093506040843d604011610f69575b81610f4d604093866135fa565b8101031261038757505160e092909201519190610e1538610e01565b3d9150610f40565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8073fffd8963efd1fc6a506488495d951d5263988d2596610d28565b8b91610cd0565b60149192501061105d576020602491604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301523560601c5afa908115610f715760009161102b575b503880610c97565b906020823d602011611055575b81611045602093836135fa565b8101031261038757505138611023565b3d9150611038565b60046040517f3b99b53d000000000000000000000000000000000000000000000000000000008152fd5b610c61309b610c5b565b6001819d969d9b989794959a999b146000146111b7575050506040926110bf84836080510101359382614198565b608051840160a00135156111ab5760606110f273ffffffffffffffffffffffffffffffffffffffff600154169435613854565b946080510101356000557f8000000000000000000000000000000000000000000000000000000000000000851015610a4e576111319361020c866141b5565b9091901561119c5750611143906141b5565b0361117357507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000555b610e71565b600490517fd4e0248e000000000000000000000000000000000000000000000000000000008152fd5b6111a691506141b5565b611143565b60606110f23094610c5b565b9194929391600281036112065750505061116e925073ffffffffffffffffffffffffffffffffffffffff600154166111ff604060608560805101013594608051010135613854565b91356139d0565b9193916003810361157857505060805181018084019390604090850312610a4e57823567ffffffffffffffff8111610a4e5782608051010192606084860312610a4e57604051946060860186811067ffffffffffffffff821117610f7d57604052602085013567ffffffffffffffff8111610a4e57850160208201809882011215610a4e5760208101359061129a826136a5565b926112a860405194856135fa565b8284526040602085019360071b830101918a8311610a4e57604001925b828410611513575050505085526112de60408501610a76565b956020860196875260606040870195013585526040846080510101359067ffffffffffffffff8211610a4e57602061131f92611325966080510101016136d0565b5061417b565b909173ffffffffffffffffffffffffffffffffffffffff600154169473ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3163b15610a4e5794929391906040519586947f2a2d80d100000000000000000000000000000000000000000000000000000000865260048601526060602486015260c48501935193606060648701528451809152602060e487019501906000905b80821061149a575050509461143e9285949273ffffffffffffffffffffffffffffffffffffffff600098511660848701525160a48601527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc858403016044860152613537565b03818373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3165af18015610f715761148b575b50610e71565b61149490613576565b38611485565b9197965091929394602060806001928a5173ffffffffffffffffffffffffffffffffffffffff815116825273ffffffffffffffffffffffffffffffffffffffff848201511684830152606065ffffffffffff918260408201511660408501520151166060820152019801920188969795949392916113d8565b608060208584030112610a4e5760206080916040516115318161358a565b61153a87610a76565b8152611547838801610a76565b83820152611557604088016136bd565b6040820152611568606088016136bd565b60608201528152019301926112c5565b600495509193508482036116e757505090916040606061159e8286608051010135613854565b608051909501013573ffffffffffffffffffffffffffffffffffffffff908116933516806116145750479283106115ee575050806115de575b5050610e71565b6115e7916144d1565b38806115d7565b517f6a12f104000000000000000000000000000000000000000000000000000000008152fd5b9391908051937f70a082310000000000000000000000000000000000000000000000000000000085523083860152602085602481895afa9485156116dc576000956116a8575b50841061168257505081611671575b505050610e71565b61167a9261453f565b388080611669565b517f675cae38000000000000000000000000000000000000000000000000000000008152fd5b90946020823d6020116116d4575b816116c3602093836135fa565b81010312610387575051933861165a565b3d91506116b6565b82513d6000823e3d90fd5b8103611714575061116e925061170d604060608460805101013593608051010135613854565b90356138a5565b9091906006810361184e57506080510160608101359060409061173990820135613854565b9282158015611843575b61181b573573ffffffffffffffffffffffffffffffffffffffff16938461177f57505061116e92506117786127109147613984565b04906144d1565b8151907f70a082310000000000000000000000000000000000000000000000000000000082523090820152602081602481885afa91821561181157506000916117dd575b506117d661116e94939261271092613984565b049161453f565b906020823d602011611809575b816117f7602093836135fa565b810103126103875750516117d66117c3565b3d91506117ea565b513d6000823e3d90fd5b8482517fdeaa01e6000000000000000000000000000000000000000000000000000000008152fd5b506127108311611743565b83602491604051917fd76a1e9e000000000000000000000000000000000000000000000000000000008352820152fd5b819d969d9b989794959a999b93929314600014611b85575050506040916118ad83836080510101359185614198565b92909460a082608051010135600014611b7b576118e373ffffffffffffffffffffffffffffffffffffffff600154169135613854565b908615611b4c576118f385613a94565b8760011015611b4c5761191561195d9161190f60208901613a94565b90613c34565b907f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f613b2c565b938481611b32575b5050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860193868511611b03576119b9946119be73ffffffffffffffffffffffffffffffffffffffff9687928a85613a84565b613a94565b16948651947f70a082310000000000000000000000000000000000000000000000000000000091828752841693600499858b89015260249460208987818d5afa988915611af857600099611ac3575b509160209695949391611a1f93613cad565b8751968793849283528a8301525afa928315611ab857600093611a83575b50906060611a519260805101013592613ab5565b10611a5d575050610e71565b517f849eaf98000000000000000000000000000000000000000000000000000000008152fd5b90926020823d602011611ab0575b81611a9e602093836135fa565b81010312610387575051916060611a3d565b3d9150611a91565b84513d6000823e3d90fd5b90986020823d602011611af0575b81611ade602093836135fa565b81010312610387575051976020611a0d565b3d9150611ad1565b8b513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b611b4492611b3f88613a94565b613ac2565b388084611965565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6118e33091610c5b565b919492939160098103611f66575050611b9e9082614198565b608051840160a0013515611f5c57611bcf73ffffffffffffffffffffffffffffffffffffffff600154169335613854565b92611bd9836136a5565b95611be760405197886135fa565b83875283901b820160208701368211610a4e5783905b828210611f44575050506000946002875110611f1a576040816080510101359680517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908111611b035790815b611ca757505060805101606001358611611c7d578215611b4c5761116e9585611c7892611b3f85613a94565b613cad565b60046040517f8ab0bc16000000000000000000000000000000000000000000000000000000008152fd5b90977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff89019750888811611b035773ffffffffffffffffffffffffffffffffffffffff611cf7611d6d9984613a70565b5116611d2373ffffffffffffffffffffffffffffffffffffffff611d1b8c86613a70565b511682613c34565b819a917f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f613b2c565b90604051907f0902f1ac00000000000000000000000000000000000000000000000000000000825260608260048173ffffffffffffffffffffffffffffffffffffffff87165afa9a8b15610f7157600092839c611ed1575b5073ffffffffffffffffffffffffffffffffffffffff1603611eb7576dffffffffffffffffffffffffffff8091169916905b9880158015611eaf575b611e855782611e0f91613984565b916103e892838102938185041490151715611b0357611e2d91613ab5565b6103e590818102918183041490151715611b0357611e4a91613997565b60018101809111611b0357978015611b03577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019081611c4c565b60046040517f7b9c8916000000000000000000000000000000000000000000000000000000008152fd5b508115611e01565b6dffffffffffffffffffffffffffff998a16991690611df7565b611f0a919c5073ffffffffffffffffffffffffffffffffffffffff935060603d8111611f13575b611f0281836135fa565b810190613c77565b509b9092611dc5565b503d611ef8565b60046040517f20db8267000000000000000000000000000000000000000000000000000000008152fd5b60208091611f5184610a76565b815201910190611bfd565b611bcf3093610c5b565b92945091600a81036120cc5750608051830160e08101358101946020808701359450909291611f9991908703018461414d565b1161105d5773ffffffffffffffffffffffffffffffffffffffff93847f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba31692856001541691843b15610a4e5760409587875198899687967f2b67b570000000000000000000000000000000000000000000000000000000008852600488015261202190610a76565b166024860152808883608051010161203890610a76565b16604486015265ffffffffffff808360805101606001612057906136bd565b166064870152826080510160800161206e906136bd565b166084860152816080510160a00161208590610a76565b1660a48501526080510160c0013560c484015261010060e48401526120b1916101048401918701613537565b03815a6000948591f1908115611811575061148b5750610e71565b600b8103612296575050506120eb604080926080510101359235613854565b91807f80000000000000000000000000000000000000000000000000000000000000008103612266575050475b8061212557505050610e71565b73ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216803b15610a4e578351927fd0e30db0000000000000000000000000000000000000000000000000000000008452600493600081868187875af1801561225b5761224c575b5030908616036121b4575b5050611669565b6122139460006020948651978895869485937fa9059cbb00000000000000000000000000000000000000000000000000000000855284016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03925af1908115611811575061222d575b808080806121ad565b6122459060203d6020116106355761062681836135fa565b5038612224565b61225590613576565b386121a2565b86513d6000823e3d90fd5b47101561211857600482517f6a12f104000000000000000000000000000000000000000000000000000000008152fd5b600c810361242657505050906122ac9035613854565b9073ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21660408051937f70a08231000000000000000000000000000000000000000000000000000000008552600430818701526024916020878481885afa968715611ab8576000976123f2575b506080510183013586106123cb578561234e575b50505050505050610e71565b833b15610a4e57600091869183855196879485937f2e1a7d4d0000000000000000000000000000000000000000000000000000000085528401525af190811561181157506123bc575b5030908316036123ac575b8080808080612342565b6123b5916144d1565b38806123a2565b6123c590613576565b38612397565b82517f6a12f104000000000000000000000000000000000000000000000000000000008152fd5b90966020823d60201161241e575b8161240d602093836135fa565b81010312610387575051958361232e565b3d9150612400565b600d8103612681575082608051010191602083019360208260805101850312610a4e573567ffffffffffffffff8111610a4e57849160805101019182011215610a4e57602081013590612478826136a5565b93604093612488855196876135fa565b838652602086019285849560071b820101928311610a4e578501925b82841061261f575050505073ffffffffffffffffffffffffffffffffffffffff90816001541684519060005b8281106125b357505050817f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba31691823b15610a4e5783517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201529451602486018190528592604484019290916000915b81831061256f57505050509181600081819503925af1908115611811575061148b5750610e71565b91938395506080602091846060600195975182815116845282868201511686850152828d820151168d85015201511660608201520195019301909187949392612547565b81856125bf838a613a70565b515116036125f6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611b03576001016124d0565b600486517fe7002877000000000000000000000000000000000000000000000000000000008152fd5b608060208584030112610a4e576020608091875161263c8161358a565b61264587610a76565b8152612652838801610a76565b83820152612661898801610a76565b8982015261267160608801610a76565b60608201528152019301926124a4565b9294505050600e810361278357506040918251907f70a0823100000000000000000000000000000000000000000000000000000000825260208260248173ffffffffffffffffffffffffffffffffffffffff806004983516888301528886608051010135165afa918215611ab85760009261274e575b5060805101606001351180159290612710575050610e71565b517fa3281672000000000000000000000000000000000000000000000000000000006020820152908152909150612746816135c2565b9038806115d7565b90916020823d60201161277b575b81612769602093836135fa565b810103126103875750519060606126f7565b3d915061275c565b602490604051907fd76a1e9e0000000000000000000000000000000000000000000000000000000082526004820152fd5b9150915060189b95939897999692949b808310600014612d435750810361282a5750505060009250906127e883928261417b565b81604051928392833781018481520391357f00000000000000000000000000000000000000adc04c56bf30ac9d3c0aaf14dc5af1612824613675565b90610e71565b6011810361288157505050600092509061284583928261417b565b81604051928392833781018481520391357f0000000000000000000000000000000000e655fae4d56241588680f86e3b23775af1612824613675565b601281036128d857505050600092509061289c83928261417b565b81604051928392833781018481520391357f000000000000000000000000941a6d105802cccaa06de58a13a6f49ebdcd481c5af1612824613675565b919392509060138103612a3e575050909150357f000000000000000000000000b47e3cd837ddf8e4c57f05d70ab865de6e193bbb916040600080825160208101907f8264fe9800000000000000000000000000000000000000000000000000000000825260248781830152815261294e816135de565b5190606086608051010135885af192612965613675565b948415612a04578273ffffffffffffffffffffffffffffffffffffffff612993921694608051010135613854565b90833b15610a4e5782517f8b72a2ec00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9290921660048301526024820152916000908390604490829084905af1908115611811575061148b5750610e71565b505091925050517fae9bdf0000000000000000000000000000000000000000000000000000000000602082015260048152612824816135c2565b60158103612b4f57505090604091828051917f6352211e0000000000000000000000000000000000000000000000000000000083526020836024816004976060816080510101358983015273ffffffffffffffffffffffffffffffffffffffff968791608051010135165afa928315612b4457600093612b05575b5081903516911614918215612acf575050610e71565b517f7dbe7e89000000000000000000000000000000000000000000000000000000006020820152908152909150612746816135c2565b6020939193813d602011612b3c575b81612b21602093836135fa565b8101031261044b575190828216820361038757509181612ab9565b3d9150612b14565b85513d6000823e3d90fd5b60168103612c765750506040918251907efdd58e00000000000000000000000000000000000000000000000000000000825260208280612bc160049660608660805101013590358884016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b038173ffffffffffffffffffffffffffffffffffffffff8886608051010135165afa918215611ab857600092612c41575b5060809081510101351191821592612c0b575050610e71565b517f483a6929000000000000000000000000000000000000000000000000000000006020820152908152909150612746816135c2565b90916020823d602011612c6e575b81612c5c602093836135fa565b81010312610387575051906080612bf2565b3d9150612c4f565b909290601714612c87575050610e71565b60409073ffffffffffffffffffffffffffffffffffffffff612caf8383608051010135613854565b93351692833b15610a4e5782517f42842e0e00000000000000000000000000000000000000000000000000000000815260805130600483015273ffffffffffffffffffffffffffffffffffffffff909216602482015291016060013560448201529160009083908183816064810103925af19081156118115750612d34575b806115d7565b612d3d90613576565b38612d2e565b9396938214159050612d7e5750505061282492507f00000000000000000000000074312363e45dcaba76c59ec49a7aa8a65a67eed391613717565b60198103612dd5575050506000925090612d9983928261417b565b81604051928392833781018481520391357f0000000000000000000000002b2e8cda09bba9660dca5cb6233787738ad683295af1612824613675565b601a8103612e2c575050506000925090612df083928261417b565b81604051928392833781018481520391357f000000000000000000000000a42f6cada809bcf417deefbdd69c5c5a909249c05af1612824613675565b601b8103612f53575050506000612e4481928461417b565b9390604094818651928392833781018481520391357f00000000000000000000000074312363e45dcaba76c59ec49a7aa8a65a67eed35af1918291612e87613675565b92612e95575b505090610e71565b73ffffffffffffffffffffffffffffffffffffffff608083815101013516612ec4606084608051010135613854565b90825190612ed1826135a6565b60008252803b15610a4e57612f2d94600080948651978895869485937ff242432a00000000000000000000000000000000000000000000000000000000855260a060c0836080510101359260805101013590306004870161380f565b03925af19081156118115750612f44575b80612e8d565b612f4d90613576565b38612f3e565b91949091601c8103612f8e5750505061282492507f000000000000000000000000cda72070e455bb31c7690a170224ce43623d0b6f91613717565b9193929091601d81036131175750506060816080510101359060409173ffffffffffffffffffffffffffffffffffffffff612fcf8484608051010135613854565b9435168351947efdd58e0000000000000000000000000000000000000000000000000000000086526004936020878061302e87308a84016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b0381865afa96871561225b576000976130e2575b50608090815101013586106130ba57845161305c816135a6565b60008152823b15610a4e576000946130a486928851998a97889687957ff242432a0000000000000000000000000000000000000000000000000000000087523090870161380f565b03925af1908115611811575061148b5750610e71565b8385517f675cae38000000000000000000000000000000000000000000000000000000008152fd5b90966020823d60201161310f575b816130fd602093836135fa565b81010312610387575051956080613042565b3d91506130f0565b929450925050601e810361278357508161313560009392849361417b565b81604051928392833781018481520391357f00000000000000000000000020f780a973856b93f63670377900c1d2a50a77c45af1612824613675565b9499989a92506020819d9792969d989498146000146131da575050505050508061319e600093849361417b565b81604051928392833781018481520391357f00000000000000000000000000000000000001ad428e4906ae43d8f9852d0dd65af1612824613675565b602190808203613351575050505090916131ff6131f7868661415a565b96909561417b565b929061324160409788519760208901997f24856bc3000000000000000000000000000000000000000000000000000000008b5260248a01526064890191613537565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc878203016044880152818152602082818301951b82010195856000915b8483106132d357505050505050505091816132c5600094938594037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826135fa565b519082305af1612824613675565b90919293949596977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe085820301885288358284360301811215610a4e578301906020823592019167ffffffffffffffff8111610a4e578036038313610a4e5761334160209283928b95613537565b9a0198019695949301919061327f565b929750929593509350602281146000146127835750604080936080510101359060009060028310156134e1575050808491156000146134895750506000907f0000000000000000000000001e0049783f008a0085193e00003d00cd54003c71925b6020838251937f095ea7b3000000000000000000000000000000000000000000000000000000008552600496878601526024947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff868201526044968792355af13d15601f3d1187600051141617161561342e5750505050610e71565b91600e7f415050524f56455f4641494c45440000000000000000000000000000000000009260206064969551957f08c379a0000000000000000000000000000000000000000000000000000000008752860152840152820152fd5b036134b8576000907f0000000000000000000000002b2e8cda09bba9660dca5cb6233787738ad68329926133b2565b600482517f5461585f000000000000000000000000000000000000000000000000000000008152fd5b602492507f4e487b71000000000000000000000000000000000000000000000000000000008252600452fd5b60046040517fff633a38000000000000000000000000000000000000000000000000000000008152fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b67ffffffffffffffff8111610f7d57604052565b6080810190811067ffffffffffffffff821117610f7d57604052565b6020810190811067ffffffffffffffff821117610f7d57604052565b6040810190811067ffffffffffffffff821117610f7d57604052565b6060810190811067ffffffffffffffff821117610f7d57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f7d57604052565b67ffffffffffffffff8111610f7d57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d156136a0573d906136868261363b565b9161369460405193846135fa565b82523d6000602084013e565b606090565b67ffffffffffffffff8111610f7d5760051b60200190565b359065ffffffffffff82168203610a4e57565b81601f82011215610a4e578035906136e78261363b565b926136f560405194856135fa565b82845260208383010111610a4e57816000926020809301838601378301015290565b919290613724908361417b565b90938460405195869384378201906000958693838580955203918635905af19261374c613675565b9284613756575050565b73ffffffffffffffffffffffffffffffffffffffff60608201351661377e6040830135613854565b91813b156106ad576040517f42842e0e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff93909316602484015260800135604483015290919081908390606490829084905af190811561380357506137f85750565b61380190613576565b565b604051903d90823e3d90fd5b919261385195949160a09473ffffffffffffffffffffffffffffffffffffffff8092168552166020840152604083015260608201528160808201520190610af6565b90565b73ffffffffffffffffffffffffffffffffffffffff908082166001810361387e5750506001541690565b90915060020361385157503090565b90816020910312610a4e57518015158103610a4e5790565b9092919073ffffffffffffffffffffffffffffffffffffffff16806138cf575061380191926144d1565b7f80000000000000000000000000000000000000000000000000000000000000008214613902575b92613801929361453f565b9050604051927f70a08231000000000000000000000000000000000000000000000000000000008452306004850152602084602481855afa938415610f7157600094613951575b5092906138f7565b6020813d821161397c575b81613969602093836135fa565b8101031261021757519350613801613949565b3d915061395c565b81810292918115918404141715611b0357565b81156139a1570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b919273ffffffffffffffffffffffffffffffffffffffff91827f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba31693843b15610a4e5760009484869281608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af18015610f71576137f85750565b8051821015611b4c5760209160051b010190565b9190811015611b4c5760051b0190565b3573ffffffffffffffffffffffffffffffffffffffff81168103610a4e5790565b91908203918211611b0357565b92919073ffffffffffffffffffffffffffffffffffffffff8082163003613aee575050613801926138a5565b8084959411613b02576138019416926139d0565b60046040517fc4bd89a9000000000000000000000000000000000000000000000000000000008152fd5b9173ffffffffffffffffffffffffffffffffffffffff93613c2d916040519060208201927fffffffffffffffffffffffffffffffffffffffff000000000000000000000000809260601b16845260601b16603482015260288152613b8f816135de565b519020613c01604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826135fa565b5190201690565b73ffffffffffffffffffffffffffffffffffffffff8281169082161015613c585791565b9091565b51906dffffffffffffffffffffffffffff82168203610a4e57565b90816060910312610a4e57613c8b81613c5c565b916040613c9a60208401613c5c565b92015163ffffffff81168103610a4e5790565b9260028210614123578115611b4c57613cc584613a94565b9160019481861015611b4c5791613ce360209461190f868601613a94565b50926000935b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84018510613d1c575050505050505050565b613d2a6119b9868685613a84565b92613d3b6119b98a88018786613a84565b936040908151957f0902f1ac00000000000000000000000000000000000000000000000000000000875273ffffffffffffffffffffffffffffffffffffffff80941694606092600493808a86818b5afa998a1561225b57908d9594939291600091829c6140fd575b50508780916dffffffffffffffffffffffffffff8091169c16921692168214998a6000146140f7575b8651958680947f70a082310000000000000000000000000000000000000000000000000000000082528b8883015260249889915afa9283156140ec578e6000946140bb575b5050808303918115938480156140b3575b61408b57826103e5808602958604149114171561405e57613e439083613984565b926103e880830292830414171561403157613e689291613e629161414d565b90613997565b971561402957600097905b898b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe820181101561401d579161190f6119b9613eb9936002613f039c9601908d613a84565b8198917f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f613b2c565b965b988551918d83019367ffffffffffffffff9484811086821117613ff057885260008452813b15610a4e5760008a93613f8382968b519c8d97889687957f022c0d9f0000000000000000000000000000000000000000000000000000000087528d8701528d860152166044840152608060648401526084830190610af6565b03925af18015611ab857908d969594939291613fa8575b505050505094019391613ce9565b909192938095965011613fc45750505287903880808080613f9a565b6041907f4e487b7100000000000000000000000000000000000000000000000000000000600052526000fd5b876041887f4e487b7100000000000000000000000000000000000000000000000000000000600052526000fd5b5050508b956000613f05565b600090613e73565b856011867f4e487b7100000000000000000000000000000000000000000000000000000000600052526000fd5b866011877f4e487b7100000000000000000000000000000000000000000000000000000000600052526000fd5b8689517f7b9c8916000000000000000000000000000000000000000000000000000000008152fd5b508115613e22565b8181959293953d83116140e5575b6140d381836135fa565b8101031261038757505191388e613e11565b503d6140c9565b87513d6000823e3d90fd5b90613dcc565b899c50899250908161411a92903d10611f1357611f0281836135fa565b509b9091613da3565b60046040517fae52ad0c000000000000000000000000000000000000000000000000000000008152fd5b91908201809211611b0357565b91823583019161417460208435958186019503018561414d565b1161105d57565b91602083013583019161417460208435958186019503018561414d565b91606083013583019161417460208435958186019503018561414d565b7f80000000000000000000000000000000000000000000000000000000000000008114611b035760000390565b939193602b841061105d578462ffffff6000614267946142ee6142999935988960601c9a8b9a61423b601789013560601c9d8e109c73ffffffffffffffffffffffffffffffffffffffff9e8f998a9460481c1691614365565b16968b861461434a576401000276a49a5b60409d8e9b8c93845196879560208701526060860191613537565b91168b830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826135fa565b848851998a98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528c6024870152604486015216606484015260a0608484015260a4830190610af6565b03925af190811561433f576000938492614309575b50509192565b9080949250813d8311614338575b61432181836135fa565b810103126103875750602082519201513880614303565b503d614317565b83513d6000823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259a61424c565b73ffffffffffffffffffffffffffffffffffffffff92838316848316116144c9575b62ffffff90846040519481602087019516855216604085015216606083015260608252608082019082821067ffffffffffffffff831117610f7d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80613c2d9183604052845190209361449c60a08201957fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54907f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98488917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608101845201826135fa565b909190614387565b600080809381935af1156144e157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b60009182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d116001600051141617161561459257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fdfea2646970667358221220b2d6a39827110492aaa15cba3556e23894a51f2f635dc99ae66d21764ad4d90b64736f6c634300081100330058210390decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058210310e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6041010219080405581d02367b74293bb052cf32dbf499b5c69c98fda9beb40172c7513283aa71070119462603eab71320eeef085932d28d44e0baf57b58344eb1e00ad28043fed2773af1d7eb0605581d02fa23563862f322c7e205623469c0b78f515b247fc070b0a8a7a361b207011bffffffffffffffff02192210030c975042158b302d08b687b5ad55407adea0f6c0c8e2ae9027af5f2b66a90e2503db731c607521cbd787386a1fe342cdf1bac891251c300135c9c48e15f96572ae021979ab036f2ee834e1f27ab29334718c1891c1fbf7b4905b5c3c8413a6455bc362071e0703a6e69c4e7f6c01cdbd2a57007b66d03fcc4d915e823bc0128e46df6d003bf27103886f7645e367e56ba68b766987c56dfef14001d37ea052544e5bc80fa127574203d5e6f2c9fedc019daec57e9f9de99606ad6622acd7e5752e59cce941342141550368fd523bc7a98534cd05165476e5f4aff3d49d9353645c45a3718810935c63b703a2b47f7b9bb8970017b462680a3019b86a20a3053c28d35b35d8055c6e9ec09f0219ffff038d82a113feec5be1befcd1a92c6b71e128f238629f74c895b40f1b0d31970eb703e32cc14941b0c0e26fd4cd6a1ff7904594c84aee9ebc8ea8971e9e4ebb4e11630365a9fd54eea42809ad5d130b0257ffc59ecea4d36525c5f059f0ba74e12d97da03281a34dfcf4c9272ce28f683e1214c28e3bc7320ec32034b66c88950440b6d29037acfa0a74627f84ecc785940d286ea2f47d8719391be009f1ace0ba56de41b970311cdc47e8172f6af544d8b529571110c099bc95182cb9fbefdbfa94a345b453703f2b6daba9341b5868251a1ca9c40c9331d0458fd2860406a2d3b2c2429368f0103607f0de0931910ba9ecf0e19204ef4454c8f293039132d816a94fd013c53224503de0dd51065e16214b69968bc663ea47bd1b58f4a23def0cdb9ce7826e6b5798b03208d267634ee7ef8b6dd028468268e4642393faeea95298b745a6d3793a910240219ffff0338c61070304c5a56b382ff5fe8279b579ba528f8450ef0972671f54aaf8a1807033df2a9b7c7835a37cae5bcacb6bd5614801c723c65b8c038b6895bb8721005d30345f5378f333db1e4dbc4ff7bb03fb174652735acc417491426ec1d5b4b7c962103f624a84b5da7da6f6d297359ff86b3f5b7aa514c3c544d10b7cdda48c3b6538c03d2ea0d5257ab5b2e9d684cf536fa24090bdbf8144370ff8296130dd05fef871f03649f0628bacb781a5e38fe229e48f6333d3fcccb12e8232e0ef40894f79bd01403265f0d31dffe3ddaceb1a6264373b2071694a42cdc8deac6f08e7167e3b53b5c0348755492522f9d4186ee1d2ef54e05eb48ff50167faaa3cd8bdbbdcd0f1dfb270388fcd11bfa6af7102fc26c75109a9bfb91b18b098abdf9941b4fd719c4b38b51032b8c63effd1c55715b1030ff3b0e540120c7468ab949e045e2b56b75a851f8ad03f1f869a4f7853a567e16451e77c8fcd41eb35442dca17ffa169117e376b12f52035315b68e12efbfd7e425d1303ac50276124043bdec90967756d20c135a4439030219ffff034fe4674fca460c6b0d3775f93ae770fd2f8f6adbf3df8a38cbd20f6858dae16603d5f6e825b679423f3bc83a3858566924aca2c9fe0fea7a738e50c7473705430f03d8f3699affd4c37f3873e6cb56c520da8768f9b299beb3d24a6870e3ef840cf90219ffff03a856879ba50e428f706e8ea8ab23bdfcf6e533526774c801832f406c496c8bf5035060819b722c0510205215121ae18a0c91ff232cb1bcfb88cf5b126021f47f0103f192f4200aad1a68680a0ee8a45f52d5d9499b04c4ca9a9468ee3e6d05fb06a4031dd5eed083075ab6aab72f5bc31a42da9e452af16b44126c68c121599b5d7d5d034b4c77225b00a5628f40c7b1d2edde5a0e1e73ee390eaf46102e93ef8b5c6ec803f4cdd6911f721cf8a8349705e06795e1537271c6e71ce482458062864481d36a03224c9b283bca44bd906cbb6f8aa336e7a8832c19b90234aca912ac95e3b23b2403738163b6eff66aaa37335f5c07a84f61fad13f1dbe24a9e3305b4f9847612e16035366ef61de8dd9508e66112b8a8b9107be9b4713d881a04d20e9b24b4f8555a30367bf6f3570230084e9c845f3e358a0a970cba8ad34aae28c1b39d795c49abb9d034879cf3d253b210eaf97a54bfb2882218cd549e779dd0d460106eaff45f0e2ae03f344efafc63dfff5359260d7f7bbcab1fc6c9323363f11b02462ad8b02487a7e03698d776c9cdd56361bade4cd6f0367c0b52268918652074bb0f1671277be82ad037b49101ecf8284f85a08144c80e24b6387eee2b2b282d59822cf8371b48a26280316035ab46792ea0c73b6c679cb03babde3ef39281aa0432db7112e9a803b947503eafd1132f34423710d00cdb047c30f5dc4c63684c6b4aa48a8c0094e6b2ad4a503397aecf779627d1b5ba31cddaeb3a41d45ba3a8851546c42fc8b848da29e968f03a31a78dca744bb051e20db4fcd34e9bba63d3706702f20d33ad199cd4ab4158403a908dc082006334a16b811a096a809f25c9d7b210a0fe3f8d7bd6cdcc36e7f77032915c27a44a0c56ab5b5afdb8d8abe8f346ef4025707debb97ab0ebb7848384103fc2222896f3316227969e6b783146dae8b67e920fb4ecca348f07fb708be8d3603177bccb80a7c5a54167ce15e7e4dac105176699cb48417cdb1f44b8c3a11164f05581d020562f180317169b17c114dceb8f530662cbf5cb45104976be1c5799c040105581d02cf6f47949b59006dcee0bad9757d925c1b03370423e7b3d302a33b0e0c0247051bbc32954c0005581d0207d087d0e06a061d8cf2eff483c4c045de877251fd50ec7b4ce9adf1084801ab91dfed466c000219182203a690a9b22e0e9d4081a8239747d3e85652d6142224268c40bb04bf4e613b0e4f05581e03f795d314522a92fe3cddad5ccb6effe61e7c8f0e1712b46dac64cc1dc00c014705217d32a74c4805581e03cb5f1adcd30ce464ef14796b2dd04127771e378a1fd231dd39e1298dc0040205581e03d81578c817561388355e2ad7b32ca851dfc59f8c6c00ed57a27d33b2500c0647019f6c1af7231805581e03c67474d53313f21b8ca161dd5b4e8363a97fe4c39547284fe47c396aa00c03470389b413e1aec003d3183fbfdab637c08db5ae2b8a3a28bc294ad04da22eb904ad8adb7d93b7aede035401c2db8b68c2e025117584dae009174f816ed4097edfa39027af3985a6b86e03f47c023b26d46373454f84175ac598ed5487c76eed04930adc60c25f0d7f258205581e0311a2f42e657e9333f22ad102102245aa3da2808880764b8b220367a8300c01466346fa684d000219d6e30361ac68c7460b43f1179d400ece1a1c2347efd5bd0d9f82a89858826b616c121a03440ccd7dd0fbc59b9b31d45edaa2ca42e226a8534328acc77ddbf0685902f6b10345883bdaa16f74f7608c7e7d23b01bd2eb3175864cc1216f1c1b17e223cce3cb03b5a1452b917a08cc1fb519a022df0763cc3cada88fb73de62685c43a5776171203b0856d38cc1efff710a845dfd301eb555c3a5d363b25be0c7296b3c7436f212c0395581839c4f631602aa9815d6c6f5bde978402810d2a81379c062219c446dcc80353ac20cc0541b52d042bcac44795ec73e83b99454312bc9dabb1805ffcc69d0b03aace27d352a94b435805f2e867d3ad5a313873bbbb7daa09f3e8448bd65c3e7c038fdc73be650f209da66653d3dd754ff0a5992dc0bca44af1900cc2e4270bc3bb031a596835d22e9dfe81946f42c32c99e4847c7ea1240e9f618495fc553373634d034208930241b5a8096c2095002ae9f3376ffe7bf5622681fa02ae4d2ee243468103a09b17a06953faf770cdf4004f487d6ca38dd959bdb95de1d4efb989c074442703546736042c4a11904245877b4ead062251fce46bab096d5e70a455ffa788cd9d0219ffff03ac9a2d51a10f528167c4801018f26235bebf1dd784e39eddf8edea5bf30d55f503465555c4dc84934066ddb671d203404f6a6518ad795f2e1f00cd97cbaba5aa4d03ecf80f1437417b984cde4b6191bf8705fe9743c9694bf7e8a0e39f118a2a639b03732291a91c072c786847787dc5a1b6ed7d782a4d402ab15d4f3dcfe85c47459503b04eb23bbb084ab2d08e808940529bda17651367e69915eba2e7f78a71d6a12b03d6e5fd7b0571ff163315cc7f3eed475a9ef4cd06d7e51964cbf00868c212e91703a491332be56b92bf50fdee51b32061690b6ffd4540fb9edb6c8d751c1a93c959037f6a1004b4c0e87449ae7e676984de52682d4dd5e4a82f6560d54b458fe97e4203fde2bb17312eef02c226e9e307b1e75a568953146b1e50175c962d52762b9e7003519c02bb0ccd6e4e7a983a322aea9c5ac97410629bd1140a8bc0f34c640a4a1103150963371f7a441d90eb104c6819e3052f886f4e41363f36880ea99983ff7d2003fe94cd9319fb1dde5cafbc421fa08111caee08185b518bc8f41efd021dd65930033fd2f7d42851ebdd5eeb3f785b883cb8c6a716d1d14acfa1da3e4dad33cba3960219ffff037a3b2292b97d951935219e48e0af413fc0b2a080ec12ecb11500fa30693f371c034d898ec8e9221364417fa29aacfdbfacf664733803a271be359d515f1c75e39e03da84dc259556887bf48381f635e12a92b100ce69da5eeeba6dd685cc45e7a9f7036b0f68c757e23d6ef24b887411b95b3a6061862203d12f6650c081cd6b7a96e7032815d7f992d035862ec2b2b1711b9100d5a4bada4e683644b52cf0eb808fe803032ee816bdf1bf4916da95b818192a58ae97ab144037fc0773ab2f7844d8034e6a03b5814acffb81775b79b223c8a41d7927e351e5836a2162f5d7ae6db7e5646b93034fd3d1ff915c4f3ec0903f7233c4e0eea80f7f3dbc57627438f11ac2580994390219ffff036ae455a8f98f602ad3df3bb4b8f35140ed320d28981d268d11e4bdecf761f691030f365cab02f9fbbab84a2d2abc964a5d04815fbf27caa1f574c20ff88dfe3d34033f5ffd77dfa969a03878e24bcdd6aae9804df7dd805355087f754cf34ca27351039e1674c0fe03b797fb0d0ad7c1a0e47e9813b457884b61087b07394399bc21b80379e4ddae0109844cc53761f22bc5b53c3910bd6105cf368eae6d358cdf3311210219ffff03cd98bf9f6f35337d1dc7521ba37683c5a9c7db2f97c15ebd327bd1ecc94f73480399358e17a1bce7878169d6caa3743f1d3ab4becf862ddbef324ad5fcec1ffee20387f568ac40805eee9bafb18fd2b86755ddc504ff7d7a8e623da11e7db03bdf53033ab9ea79b00ca0d33fcc0e64dd87b8722ea5be97610aea3007b451e751c3087c0349d44405343b3471e6bf6c72a37de5605908e5de5aefeeaa449a759d4e0227d503f1f346e98202b9b6197ae71711be78b64951b18c4629c1f91c10e7f18f4f8a87034ec68f38a295d5464c83f1d4a64558e7abd9cb6f649c27888fc513859fb17cc90341b4a1403e3a2cdca6627e540ba32ee84397f3764dc4a8f67441fdb35032f249032a70224aebc05d5bff03c5a4163781d136fa81cbc9fab25c18c2609578e2039303e1c63c898087885a3d179684fd728e1daea6112639de2b454e3c953d4db4c6e20307a213c9ef6e55d90bdad7c1a9604a16879cf7e5fd3cc67cd7f2a75bac8971fc03241f8c19007140a630e5edd4da2b6b2b9c89da8a7d9fae6f2ba8a28f4d2d632d034af651f1e0cc55a176ced1698a8fce42331445baf3095b5f247b21f48dd7c22e0302153fede80508f9ad33413847336a160617d67cbacd452f2807bcb5e2c54a59033133288ed6d559d82a7f2f68cdfa086c5138894e4d58fe0070242d73d208969e031f71467888afa462854d1c40e49f6f81ad28a85256a6d3ec58a97d60d70262290327a9c52f24d0bd1d5b735faf7c322e32eac9d9906aa4657bdb8e80e6f4637ec00303117d5f66c9040f7dff9e742bc1ab5a86b8f46d88e0fc43a794a2a0897e0a7b03dd77d7a3707ba04957fbfeb34b23d447212261a7c4bb8f250c3ba3bcf297730e0327f86466975873c5c29cadc05699588b004c248585542aa28a2d2cdb85ca48b103166d0292a047a2b742102af5a626b605e56b1a8a92ad222086e373f8d45576ca05581e03a43e3903f66aaefd901fb67613eaa643955317e0bb01c1a792b4c00630040105581e03a341e158089440752a302ccd30e9dfcb39f0b62a9b6a500de87183dc40040203106a972eed001c08010e86dc4053257b14ffcfd34afc7474f5c204c56f33fc7903510b686d4bb215b8da138b060ef7aca04959308b7200eae2e7d7183bdd91775305581e0309822469b484d0d834e850f6213228ba12127fe695d2fcc5c7e0969f70040305581e03a5fb559e6713f246852c3b9b24d8521e4e21007486f220197f2e181fc00c0246e1069bcda90005581e038ece7292ca4c5fbc902a74d5ff3cf4c515e0b2a8d3a824073a46c39fa0040205581e0377a4c85cd5ba94f9ddb4c65ba76da98bbd1a329f35fc18b1599dea2a100c0b47106502b615b5e605581e030baed5bca79d091f4ad010f631622b1cd06ccd3e691a2c3565e70ffb40040205581e03b17f6401573465e8dfc06e5acaaab0ac800896b72e8ed1330ce6667db00c0446940d56198a0003a7e48f0d73eaf7c47528d6ab59ffae7b4aec13c5eb888b7359f014521767c84803f4894f5d93a9fad81ddc3c915bba04e8b24b153184b4a38622d4e353288b537905581d02be5be7319110e052ef96ea1f34e3470214805f16c64ec3d744461a1b07011bffffffffffffffff05581d0359795cbe09a5b3d4cf6416da453015c5a2cd9d77646c7ed8bfe0c56004010459567e608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000aa6e8127831c9de45ae56bb1b0d4d4da6e5665bd81565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f000000000000000000000000000000000000000000000000000000000000003c8f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f0000000000000000000000000000000000000000000000000000000000000bb861309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f000000000000000000000000aa6e8127831c9de45ae56bb1b0d4d4da6e5665bd8d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f0000000000000000000000000000000000000000000000000000000000000bb862ffffff16620f42406141a9565b90506000611a2f867f0000000000000000000000000000000000000000000000000000000000000bb862ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f000000000000000000000000aa6e8127831c9de45ae56bb1b0d4d4da6e5665bd8b8b613b86565b8715611aab57611aab7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f000000000000000000000000aa6e8127831c9de45ae56bb1b0d4d4da6e5665bd908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f0000000000000000000000000000000000023746e6a58dcb13d4af821b93f06281565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f000000000000000000000000aa6e8127831c9de45ae56bb1b0d4d4da6e5665bd9087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98481565b7f000000000000000000000000000000000000000000000000000000000000003c81565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b7f0000000000000000000000000000000000000000000000000000000000000bb881565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f000000000000000000000000151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7f1614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000aa6e8127831c9de45ae56bb1b0d4d4da6e5665bd1693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f0000000000000000000000000000000000023746e6a58dcb13d4af821b93f06261513b565b9450614bba60058c8b8d8b8b87898b60017f0000000000000000000000000000000000023746e6a58dcb13d4af821b93f06261513b565b93508415614bee57614bee60068d7f000000000000000000000000000000000000000000000000000000000000003c615325565b8315614c2057614c2060068c7f000000000000000000000000000000000000000000000000000000000000003c615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a03b77131c1b9aee7534978db824b772cc3256a400cf8d6166a19d8a58b360c0ba003a1f78d9693bcd5a58c2feefa8b6865ebcfd841e62fb82e526e188ab7882ce4190366a309a96c0dcda4eecc20e8cdafebc753c57a5133104c8cb0638f0c19063a880355d40929974909af7204e0854244aa122333f0d83462287a6328c4df3dd513c103c5ecc63d6b5b23a69e5a2d1cc54f7858681e7659e77be3b12e5d682468aec2e803f34c132a8d62712860aaa9dd7726231931ead6b0ec8feca80502a9bc71bb518e035e7c06830da5d61486d75fb45aef711f2314109257409684641035f66b4b67d7035f364edd41fd03d6d5559fe2734b2a0605628c80aa43078f2d64b4040ef6d56803d8d159b23abefbaa99d9b6c0ee3df9f8cfc34d0e5ad8f452bc4df6411ec2d04203eddd52d56b49348455db9b1d2bc13c3b9b6270bcbf20f5b76de854b94a6459bd0396b1960dd27e222527e4cb064eb8449a70a219dbaad098c06c4914f579f4831900582003decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630581f010000960096001cff4604000000000000000017aec52119ccd7cc88860f2603eb8bea9692a47fb99a8010b171af4618327466493ea64bdad070c36389e2a352014101005820034e426c4bedf21aa91acbc91530bfe652db9ebcab8cf58a5e826a05f75b61305820ffffffffffffffffffffffffffffffffffc2d6ed506d354d2a49a2f317cee393037f0acc77793cb6606c3aa841e62b2d7d400f12ae729395d21fa313a70b16dd710058200310d70cb8916de18e97192e4bc74ed0fd05842fb98dbd70d1b4a091684594c050385c4b772fc5848f05ab69adfa9172e8005820033dcad244d5755f1d2b08d84747e15a5e72a22f6c5405fba4cb4fe9e226ec004fa36f1822be7bf3e78d1871b94d4b140058200328644b4979a1fd54d6000361880e49ebfa78c8a19050b8a4fecca4b21068604fae1387dff059c22e476e6e406d166400582003ea50641ec7821f7a4e0615a834a425087d66b3b27e8304826904d6cc8e8fa05066ca06fd1b9e60d9d76686b334bbab0700582003ff92a342df489dd95855c374221e2582967b984deaafe340c4c23fd0d2bb504f1576e0ba37d5e368068c08f619293f02195b3503ad1aa595d32fba83caf31a4907aa9e79bb5f1b66df1108b19cad16f7aeed1708038b5f70a3a91f73a3d819bf5f0e0b7304d43c349ddd443e09951d3b22bb425ab10355252b34159a667de1da04e7a39f3caf68e03306710f4193113bb73b36f4b70d035124f83a6f3133ccb9ade52132236aa5f50ffcd179277b65176100c08046098e034a90d45640de6511ed3a39d1f6d60b8d2a500f9c9bee5ac0fb439a93cf30421c03e8b92938b9979f7657b399adb3d3340e6239af360b346cb67dd2b69d110f68a20219ffff03c25585b5075f18f1e87f9d934f7df1b6acee449e8daff4c8f1ed50378b65d369039c0edf77a4f67500d94efe580b3c0bd8ff2a8060b1a000563675366414b20feb00582003968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0582001000000000000000000016fd193522bd9fd77edbffffc8811714c3765c3b7b703eb9bef866e0b242f641e8235df09d54029a7dccd085be029ebe412f466557f0500582003c121d27737c7e04e89b1c35a201228afbc590edb2b7cc7c37b1cccd911e4a05820fffffffffffffffffffffffffffffffff5e53f39e2a0a8c19db565df1f277e7a00581f0214e07e238b869c8de897078a136a012c4cfc1865f9bb2fb068d563e723b75004bae6218a382c25d79ee59665b5433b00581f0287fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5007b776b6f7f89a9b01153e6edf9f705b00581f021ba098010bf28167e34294f0d4f5362a5ad91a479b25b0e4a29c29d913724f0b01b6bdfb95c34ae42942f98c6362021902a00058200372231f0df6d604b39b3c9e0b21f04f81d032a267d8ab634f1f11407211f8c0500e15ac082551fd581c8d4ba52739699900582003018d72b691f50a1d0388afe78d55c356d4eda980fedb81e990019a266969204f207d27080ad32f53c39787886ee954005820033f34d991ba4cc16296e0e23edc9f782e961faf5c50b7abbf97dadcc9e8bde050055a477131398231df1a40476e43ff680058200386fbcd7aa48bb25b13db7fc2c791a8bce6c3c61d08b05158c6f6af3cec9270582001000e89fe00000000000000000000010e7ef369415fe992eefffffaa9da42120058200326da45bb052096e7110481c3729a44362fcde2c35f8bf9197e13b79615771051010000000000000000000000000000000000582003a7b91630585f599ae9f4c43b7dceaa11a82e83e07ca04a9993f9061f2329c0500c72de35d21081f9d8f783ab4010c951038d26cdf0783d7dd5ae5510f6718c8e2d1e969d776a612e420f1f52911e5931cc021997f703fcacafd197a9813e8d1eda7f19c05bcf2124c474f23943c597b6e9655fbc91b803c77b5a7e14566ae2886fba2f0748ee2e9e6564d584b15264b8ec5038e2cbd8fb0301fc456aa244080b2967e61fae40ce7a93d78ccc6dc6f594c91287ffc9b8698a03912ede85665af05f8d00f694b97d0ce4128b2328710ccf276e8781be836857150343ec712582b76168cee9a4fb0222b5ddc89fd311d08a3d2c7d64e4651a166f1c035470a6bc2e3ea047739dd2f52333b6369f1957354b9c0415c980a78957c24bd4039a97b39d25426509a820615931d6947b8b5165fcd7d37a01114074d52fcdfdc403ec332af67c7442a29bf444450221b07a0274550580a6b65c4523b74fcfc4a7590351087bb1af26310c3a04979b58bd128d4b63f71d92200eb9b9381a3e72dfd48103494b5e06e26dd91d8401df94d2afbdd9e6cd6e2b7f7af6ba088b7ce0f7b577ef03778149debd725a1a38d065c900070d24635a695d3d297e2e4c84a76308630fd6035184035a15e4e3d73282f850618df84ecb05f5e46b490691a314ea8f3436f427030017e6fc16f5e96004b5ca6b6110258b81090991f3d9705f7dc28c484e9fc7ee03a5a4a351624154bd6caa487570cfd25c8e8778a12e944290748fb28fbf280666036ad37e6bd9f69adf26986c532c9058c76d23c6de34e52f13f395512bdd503ce30219ffff0319bebc0d5b9b3e2c426e12f2a9f713208ba322f9864aa2b1b5a944368dce26df03395723bc577c79b2b53b32b19ff3776faec8f0df59ae3b23ae540646f2d32d5d035228cf4114183b998c8c33bffe16de282b577d944e1d309a056e481ac650394503c7b18898724891b2ba2541b13ea2eab5ecf5a4bfa0f7c020fccac95a9f2eefdc03dae8404b93fe261341cf3c3fef6f00d0c1b99cd42d9fc181c9519ef17f09abab03928c2c7eaed2d45972bbb9183db6a6326c92657bc7ce0d31f953968dbba6713503cddff768c20048446a862f463188ef7d25cab55a4648664edaf847a1bb3ab006030d8685d32ff5fafce8532465bb27d075ebb1b5edfd4a1a50c5b533f8287509cd03dc443848fa04fbf4b9e64bdbe30ec15d818bdf4edc25ff8b7f266e8af17d5bab0307fdd008a4cf94c97b558504b2c7851945ab2fc18fe842140bb3255bc1722e7d03c0a1ab5b5f4e29a6c7159dce173684492672f1c42b62c48e154b54c281a0e866005820034d838ae5a65c8684413e5b1fcdad8ad7c086453dfdc5b5a0d562914945d9704f3cb0cfea6a5225f3d651767aac185b0368706b4b36e124522853198276c703644a5b6d3ff373848992bcd821e8cc5ef80058200305c4dff12a2714b8b53f012978be28b6502cb9cf75debc3c5d698f88d1ab905006b611cf3200b3b76acefbc1dac1b9c200582003bd3c01070c86ec2f69d5dfa20e0eb72498e15246f6406724d60f2bc474ea40503df4362df57ebaf686420ab7a547d5f400581f0280cb52633fcf143703e205ff58e289adc650372f4feb3c2394fb63a8d0145820010000000400000000002884010015000001882020000000204000000000000000581f024e74037d718043e4ee5e4948658f38671f033648d671e4c2451864da8a2d4f0bfbb1ec225804fa6ab43cec0d261b00581f02d7d41f680d5328f2591f00795632a7a766e55ff0e428199037bf0b3cd2e44f4e73c958dde80f1550924838bd128c0219042100582003c22f5d19620fce14649126c5a51907c5f8e9a6b57af75a9c331c808f0b140050039754149606326c4f79a30a795d9c7000582003d649816771542bf1f465abe97c8a9e73195a7d97dbe5df4da6eaa593600e105820ffffffffffffffffffffffffffffffffd8664657acdc1dbba5cfc5f2ade037af00582003d8ef97b7aa7e801aed1c178428c53eacb13aa0b41f6f2c8fde03fd966ee7f05820fffffffffffffffffffffffffffffffffab46c98418671b9176361d098bfa7d8005820032b9c192a4ea260a57815d3b69ba50415ab39f2a8704e6d4f689e680f559a405002969a47ffb335a5988c5f5fd7a5043903fd1e7351b9464944ccc17b65807e4009cc5e8789b731486300f903a97fb4ec6100582003b3171b18daf9ce9a31212ed4faf6f734a32d2828ac1c1afec2367f320c7be04fb630fbdfa69d21b66265954f6c0ddb0373673a9f3790f26b8091ef58c4595c7c38d4eb47eb95bf2f4aeeaf8e76ebd82602199fbd0383deb6d3a9f6f3e4d31373a9d6eb5c93872baf5e792e06bd20776d4a870037a60390121b97179f77ff96846a265459df220ecd717aa39a0a72c12b703ba8460f600340fd9d1d88d3b863d2825a7da190b82c1836c507f28b2e21d7deef9cdd060c1d036fb25ca541ff6c5a282c887fac9565b0125587257e53e3515795ba45e98ce59b0219ffff03ee1e1aa658fb8c60920df74ddce91dd1d0f8a6f3ab18c60980eefeb806433f1403b90db81803bb6373cc3b3d68e54a7949f17f02262d8e4e3faea8f45cddc404e8034d1271ea4abdc2e3dc878a5fb289ea2dae6f987cb311c2f49fa5256e588f596b038bb11596e850820838d84661005b7827ed47407593996c855e59ac4c21e6631503e49796c1f22ce92cd663cd8ccee356b7520e733a4623d099594b5f2e123dd8cd0380b692f11f202873250cfe5a415c52491ef77ee89a038120b1579409baa6dc0303fefef13c3796cff6dd46c26e9d1df070508f77a45ab261f508c3e983f9e2b045032e5c79ae34200497f4f0d8d8c458ed7f8a6d2f13d8c9d3b2160604134ac64586032191502e0303bfdf725603f434780e13f50a8981811a6cf86bda7babccd83624033a9f78d7ae4ce0b01493b7be5502918e69780c33cee283758daa371cbbad51190390cac81febaa40d8eec9c1cf00c6ebcbc0d0f4ef7710fea16b48f2877ea62058033f5c39ebe2fe74689645198d3a14c67c85a3aa53059b8191ce69e5adac1163c903276619a42502df20063e1ed86b402dc3e7e7c4e2d5f7e19a7ad1c6ece812306903aeb5125574ee3697243cd18132ac4cdb41d8016326709b33b5e693b614c9264500582003d9919653a601927c0af950d3a9cc227ab7ce19b0c5eac3ab77a84e20bd6f404fc570331596ad6cd707c29f4f8cdb0a00582003525a322cbe10b91c29bb870cd3c38e9f33d4a35d237d8695052d912f383140500251e25eb209c2294b206712f95c182a0338cf2caa64e9da7d2050ab4565346afadc69cf1a7519cf4991d83c3c733ff0a403bd69f78e580eab7da9e0d19abf6f25c25dd615f79e2bf55424256a2afe1f0853036efd46199bdaa43f827731d07165fb78c71a18e66d987e29e501bf978a353c08005820039480327b2cfe2326890bdd1d5854b4ac8eac5f88839e3a1ecfd61b8aeddd505002874069c9522c7fc0b26949db10a7a003e6f6ed277165db0683a3a625a3ca4a13dd2e45aaefb42bfe58422a9c730750df0058200318f60fb8648676c7adce56102ade3b25254bafa7641b6d45d6589fce8775304f010de13fff819b46596b99d9870df100581f0232d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec458200100000000000000000001739cf8c3361479d55f6efffc7f6fb6bce365cf606300581f02c42644cfe9df7db4f9f66ddc2a14e7afc71e2d49fb7d80dbdc1a480c61044f34f95ae32c061bb8177277bfd2b9d102190808036b519555bba3fc0346356b40268693403f6f53944d579bc8f42575000096f72602197e3b03aec9b08e2aa7c86ce83f4777a5f7702f79275fcb66dfd7dc119408136ef6308e0354fb36f6aec3c0e8edbbae05d09c1025ce5599bf7bb01982279afd041894b46f038e655744c5dba5193b4586b0df1ea37e397c130e16dc65fc1a94a87d32248ac20219ffff037c753178831286f4d1f2593639a7fe69531e9a80e938ca79f82238fbb20d56a803182a3b78787fa55b9628f7b5176117b2c0b4b92e7d0a63433f03eb7e7e69b9c103e521db573cd3ca1599e6cface24543bd7b7584a64f8316a7928223b7d6e7c094038afe0b7700a605689217bb16fa87a3ff388dd51ea160a09820e6d2debac7e92d0313be0609f8fc79cbafb51b06a816b9c3b300fe618b596173b75fc615072c497d039cb07a2241f4bb6d07a6931f5bf40098244745c64398895646a70368867a099503499338faa9e931ab9765d8016f8b405f3477bae41384a3209ce50125762bae5b03fc52c593288a96831372f05e4114546473e32e31027bf249a5ecae7699b75e02039f2811e1bcb29e7511b7e8d4d24d406929bdb03523a3fa6b8f7314f9796efc6c0346732f61e74707118439bc7be73dc1ced99c53a58eb75cf8b63182db902e442100582003671d854f4c0db92567dfdd3882cfe9e64096da1233a9bb2153f97d6ab4dd2058200100ddab56000000000000000000000a8ee562be632ec9dc7cffff97b6b53e31031923b8e47eab25d58b34001d5fe3c89eeb1b909a1203f269ed600b55e798eadc00581f02acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b4a030c7ac73fb9897ea01c00581f024c7e7c7be117d923e8ed2b7cbdb713c5c901f8ee5fafddf53235ad0437984f1d44327f21439be68f32aa9a5469c602190220039eabc2ced54e36fcb1f8e2af2b39f99cf637fd15f22a9033a5d9aaa3ee3a3d5e034f47c70305bbbb734b299ec4f3cbc1dc86606fb031fd67cbff3bc686a56db0c303e3cfe8372f479600e1fd1087198873e95527013fc200d0c32e10a6991deb5a69005820032aac4e4f7bc7734b3fe13f32f940c277e8e780d309d9804e886bba4177ae804f05c4b1b82b1468c6d6558da7f557ff03392791e65ec0483f92d8603a74fe43e5d52569f836c69936669fcc6d0123d8c703e2458d45580d37fb7413cd56300a81cb2fdbe2fe04c2fee99e62dcd13a81975d00582003d8026adb3f0b39943de67e2c6bb15e0cc26ab29f561fed47880f49cd598fd05001d75f01db845d9db3c33436f33e900f02194dee034dfbc9509900386e63d6c6f176359f3ed5ec69d9fad0d62fecea5649231f97980305ceebb04b366fe035cc8cfd435e83e2e1d50b3d83002aed3370e7dfb92a24ce03758f89d5afe001d5d4ef7925b24eb5c313e8c0e8f669659d154de3d80b662fd80377896d90e9f9ef4038447d103a052ac9f32bfb11f3879903cbe6830f850d4041033bb0e0a874eb2d2884d5eb8e368891662c4780a74039782b132b60bbc2eaec020219ffff037e31ff49fab1ada0a32b272f5bc2551a11c695cfdc847ff91c7a4640c3d39b4a03449d5341ee0eaa9ee13c297201bf0f0cd299b365815d34f64627e5947475f43103b1f9459cbda042214df27cb10a8d3bce17e36003c241193d238255187f3b830700581f024851edd98ba87f6101f2a143ba0c574549a6ecca34c76f11ead81e9397934f0c27ac9081a151b5a07341de80640800581f022d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf651021684e65c4d65b79c4d9b4fe20729441502194002036d05515213ede2ba7619a8e8e6e130e51d6d553cc3b37c620bfca77282d5d3c90367ac5ca191b7bdd4ba327abba362a68ba3269ef2af82170ceb387439149804cc00582003c536c28952452ba13d1c82058ae0d67c57fd1ae363daad093f22bc9dbe79e04f0a5470f8ce8ef6a739f6f6082523360058200327377986441823f2b71d2638e5ca5e21acfc94660b4ed39268f6d8f040cac04f6e7b1fe8167c11ee1974227850b5f500582003d6a7a196273dda54d4c0e7efd6bc2e563ea621b33e1bf588a815ae0c1beb505052b4dfba30d13116f0433118b6a5a85200582003ff6432fd55ab276aff0be3da5f0ffcd7e143c7e617f6b64eb480d1bc3409505820ffffffffffffffffffffffffffffffffffa06752c0efcd039e7413a4af12f1d0005820036152da20f01019b3d3532e27e24c30a821e69673631e7fcb0d5dd5237b78605013b46fa3b1670d901945f70bc0d60b8a03d22391a202369c77d66a9444b3fea4bdb3c21e8c4292cba5c20696f768e0681f0219637903eef4041b52956da595a856926c92e3d1d4fdf0bb45e170d40a7ba69eb0eb278b03a6b189c01e0ce4c084ed2b6623361caefbd1b67a52b1f6c0e0c49b8c6c06a23903b28183b6b8c9ac5601f416adc15f9dd94e686a41cd999f025578ed0f3014a38d032f7182ee4164d21259a0ed940f9f35b679acb6a6f55282b4b8c0cb2d4c31c3e00348838e39094baa5ae8c27a429b85c04db85982d324e2c3d644fce5d36bb1aae903a63b6c605e2952ea57f6412c6260e5112ee35e1dd5947dcd1fe9c43665124a6903867e39aaabf277ec8b4ea431a869062b228957c44f6c567733df42eabed40e91035de3aa47b08b8f3534df752000887d3347b8be24b0b36ad5c2ec330a7c2c4ed003d97692ae1e96ca372e054bf68bdaa6966b132408e90392371359962f5618954f03d4db7944569f34c4cbf452fa878d4d01d8d720ff3c4fd4fedd9594a3fd37bb29038390662f3e84ee774002a1eef784e01ad642dd453bc3eec188db6ed62ca70c790398da0cdd619255b18adc865b07a06510259f984ac869564cfa44da8028d546d603604db99953f01e36304aba22a39a6b57fdb9726bb238299fb6b0405c2e1eb9ef03566d643ec3a7d350b939afea90472e58adb93df7ca069d32c14e76d32477170f0219ffff0361109cd54f42521b78efe2d81d8971e2dd8861bc4ce70dd048106d8e6cf983f103cb44824f74f8e510fdf95e9758bd80e1b8126b9fa42ce8703efb8afbf1502cef03808f73c01285ef69807c568736f36458d0f50a4799c78f206f9624c25039719103bb5a02fa828f3cef05dbfb57f584e61028825e561f422e2192ec7df8867a20650219ffff05581d0383bc100b4e63e815deeba81810d9d6921d7ad3f4b987440c84ea6660070119567e021918000219401005581e033ac23442117a03e1a39f9fa7d9d5c798bd9634e3778a89443707e7ef000c0147018ba3a825fe580219ff4d03f7441febbb24a092f21df38d55f898f166ef669af077a8a30d29e41e890e4ec8033a7c16e9870a8b58f653300df6ba113c6d9819bc8c3c749513ff4eff8e5f24ab03f4fda840d40699253dd6595de7edd1244996a322226a076b88d4e7963d1473da035e07f4f5c5bc05db698e4f74e56281bac26b92f3fd6708505b8158616f71beb2036c9c2bb1e6ff641f627d39b37f22f340f7888dbcdea68b328f56e8ba588cdf1603a8fb00dc8b59d862a48e3271d4533c255135f2b85acbf2abc6708a2011238dea03b7cc0c36b8ee2ef58a01be43d30a241bbed070d98775bf6fe2f41ba40e5584b5030bada4de2f8b01f6dd5c0f86d3e2e4965b7b29ab5deaeaa9af4bec389ff94de40219ffff036e9eb91d179e60045aa68914edceb269f2104453ef74a1b619d73a87c2074e2703d5fa2080925b5e5e8d768ce332f293daf6409a8be483814241c111dd3c6527ba03cc9623a767deb166b946677b8d0e3656362fdedb3c48cbbe4b85a4fa0eec1e3d03ea62e05a68f5e9241fd14c92963a8ae6575ca2e8578c9b13ef6126de189e7130031265699ec46ea7aaaf69519a69791b33b6907c6c056260380950f3f8d2dcead80332796f9b5d19898ca5b0d186b2be7f23b2134d39016fcc811dc792f59980837803a5e47a0573a20acdd6bbb5d9f7f8d457a23f97e314c05f83bd75e6bda9082dbd0219ffff03d5603430dcb98671ee6a5c952978d436185d507267fad3129a195b2880ac6eab032185ec2cf26df33583528167aa03262a4bf9276f9154f2b4bcc86c713676281b03fd9884e5307ce88805443a1a19216cfe7c1ba35cd8ed1ea858493835b6ea03b503298ff43a362ac7c3e6259a06fcc6e1d0edfe5777403700e81ea26650b6c39a4d033b77fff2e9760b24dd7942ad28ffdadbe0222fa2884145e2bf3068bbac9832be03d2ee942623090127a96b2b4418a3b09632ed7fdf6ec3a6e2883521b9cd9fdb8403d13735207cdbae96489c46d0597996ca47f9000aeb5d8bad466f58bca31cffb503c4228e4a97cf576f70f37830672a52a96dc91087fed7623a16d94d185eff766b039628dc0ae1456f27a1d48a62032c954c8892af74aa0982f11b610282f7fb602103a0686cb98613212aac4955e90e79c7b7be8536787805fc9553accd0854cf3d5d03fe432b8d32820e7fae2a30ee7a1b75d54ae56a8f4da9017f322523fa3cd32d390385cdd8f515f3cd335999666ce749f8d808101186ceb8c50e52be482a3267d88f03b153752f28768a3d5388b48f11d3178b770064972e92516a7c2784a7747cfae40307049d11f19341a255b49a97c187d975f86aedf58d7ead6092dccf99ce178c1b0219ffff03e0bff19788647acd2a6040cbb54dbaf819744a70d75fa5adc18b15c49ab0b11c03d0ce3ead798d76bf6d40f1dc622b08619ff804155429504a67ca6a3aa9179905037551db937751d6d3ed912b32fb9e08c225dca562ae657cbb88ad0791523b86860341d634029bdfa0a035280bd866b0c8b27f687f489535b78f6709efa537efbbee037bd49328385d47b1fa72bde391303e620c6fd218dc52af67ed485c7d1616d068032db019fcda6b36f61c15e04eecdae1772d0c3fbf284d7610ed35d24978ffb3c8037c1724ce6e17f013153110be1e1d2efb0cb2a8ef703925be0c6b520c51fe49d203bfa6fe8cf877a3d77ac36b032e6a3ec9df2e7028dbc1c3b7799b56be19080a90035e8a9aaae3046642a6d11d70402febfe2e6ad5e02578e9e7ac4d1492eb207bfd0372f17c85ab7d240df22eaf3216f48dcdbc6d09df4da1fbfc7453262f9713918503bc4f545f62f0cd92e155451432c85b5beb2edeb8962123de730d3e5f4925782a038841d625cefa6f9e837dddcd4759d1b7d75272c602cbf8509e8317752f4c47bc0394090c854b9d78b43badadb176d8a422280b3d97ee568f406e05579bf38672da038d662e7b7cbc9bc33437a4df76a7fbdb2c002d75f9d1bde109e26af355fe5a100219ffff03eee380c496116d822a6b592f7cb2b42fb5992b81dea2237f9bc703138e88c58203e1657b4f4bca026a7deec369b9915faeee2da5466013065ffa91f59ae01fe0710219ffff034cad8bc5dc9eb3ab9b105ac920b95f8f2c8911266757ffd8afb0af462cadb0ca03298d89b92dd7b5f61845b57f18f4424a76b5d62ef1952d3a4a231e64ea805859035a6106904ec070c0c3146c3b53004fb7c374b713af3a54decb9c51fe5706351503f107d6702d60b0e0f8998e1651691644b7d8bfdfb56176bee4dde9421b0c5ec0032093dc06a4999529914271294568a22740f49c3303d43e98340b709fbc0f62420384da85690dc85bc54c7aed4d8ffc5e0e7bc340d75f5fd7b15782fc8b3cf4894a03987bae9096d0b5393f74e102998fbd4b28b90212c1c7ee48103c2e4272805be0037b3c4a36c2d89dd3c90cf7c607ea4f547fa5e8a8e9dc3f7d8dada8bd72147dd8032095e6d7383a22b226561d68123ab2c1214791dbdac52229a6869d589a3b7cf8038c7c08d0acd233e2ec64fa5b7541fc4ee0c63396f7394a74c2b20e0e882f6a52036f9315416a70fc5b967f2034b62dc4ff5013f38fdc18537591448273ea7eb38703d92e544d06ecca329b2abeec9abbd14a1e201d45053131d118f0583226e8e744033eb60b9e506cf1826759d3ca4ab574ec7af1381bd3a43896f52d75c0a440162c03a297382dc39e93a33f376a22f4e72ccf7d9b9b5039956f115f683db1f56d093f031dbfec66b5dd45ebf0a7d217a13b09af51b726be65dbfd8a073dff37edb06367031e3a89995526b5fa7c7546be2f87f24ad31d5a90d43684a938e11e8bea190e9a03bb5f90b166fe08410e6a81f70e84aa61bba1c5cffb192f6944f48f18bac7842f037f257b8f881ca3b9a068f124c5e7c779977d47758727645ac3c347c8a7e2cc0403e762ec64639707cd8c88e32620676c4afab77af0506fddb9e9338a44878cbf2b0375d94e4ffd563943ad1b30ceb70ffafe652cc3ef43751275b73fce2a8f4580e903e941e8c1cd2d1c2af9e6a830eaccb9dc852eb51a595f49f8020b1374b3d9671d0320a5d0928ffed1dfe17ce654600de0a8adde1e19c6ea8d3b3ec8eb1ad4722075038e724e924921b5e1b408d19789f7a807d957061d4a2e31deabab4dba410a54c4039145304cf541f509086d369c2591052eb6c35114466bfd95d143afa2440fcf9103f37fc8726c7ac600cea8d3c0a548f9d0fbfe5c343ccf492d38ceeb0fa64e389e032e658ed64ff2b1fd07d179daa64d89e6066ba0fdb17391508b516aa8538965c4035936c2a9466d4a2dfa96c16ee3a7412be746548dd4dea4b51e72b3abeb488f8703e674d75971128d7bc12b2e4537c4d5ec14851993eccf5636d201a8810232afc705581e0340c74e91d29617db518cc91bcc79d97dfb4f10b9eed6b9a7f2b669dee00c08468428fa8d5a7003d606c59bff9ba4c408acd4bd1a03645bf9be58cc3abc35ba732a83bff897749a05581e03b202d82e408460bdd424d4427bae5c8adfccc85babec48a68d2804c7c0040103e4b302f8d306e57a338be5edba5efe74c6741ed8cc82199c5a8daaf7d370f80305581e0356675496e893230127ecdfcdd6f47502c12da422154cff2de7a11c3cc0040105581e03cfe3126e3240c5f84d3c1a1165c83583d59454bd73336d91a50d66a0900c0847014e2b4384130005581e03d4114ff9ef2f468f2564b97c647a64cf1cfdfa60ab4017ca3688b5ce90040103be8edcfb1ed054bea7dca5450a83dbc853507260efa562f2e779e101b4c13b370307be01e7e7206fe31ecee91ad75dada65ad6ba433ae647a1b9330469f7c6677c03709eb5dda2147c4fb819a20da7a29219edf23b78b89a76895cb5bb987352df3005581e0373f77543f7825a60e6a5701c432e908745ed9b08e73b0a25150b6d34c007011bffffffffffffffff05581e0305c28b46bd8e81bdfb8a5f4d6e980885d2a4af2fe0d7824beab974b9c00c191aa348024a7947673773cc0219fe5a03d10712aa13d0f3995a9804e252a7f13f0330db2f77f1262c4de517d26bb235110390d5e6127610e23202df851e12dd51e1f173df2f449ef1502f8cb8ec1946c72c0340d95d05dbc8cadc39de4143d80043af6f2823634a897954a2a06e996d6545f103b6276e002ba6533d0da0005425db938210b67c9b41bc6f2ac584aae9de0f6cab0219ffff03f3dace1347dcda686fc36606f8325207c8f43d5c89616289ec5a8c2e1392fe5e03c4b2827e222f9393dfd2c17e277bcb5015b227af2818be5ac93677e4466086af032d21e91b97d746d069e6350da7edd46e62afe84a030761354e2f946e943863a103775749f3c799933da5cccb597248d0f06452efa42a04c7b6aa22a28a59e1284a036ed81b100db3d0c10581c4b9fa794d11403c4604996c23fcb7b70d728658ae9e037dc2ce07de091a9d43d01732ad91e070fd2de1bdaa466d7f3a8afdbcb814b7eb0300ad182b787cd5f74e1e445f1c1427bbda851e4af520d186adbeb44b77638395035d0eb5886b59f11c5a89ff217828da238ad229d49befdbf4ede49356e6311ced03c34e34c58951bffa6fc614956d1fa57566ca7ee88b6ef02f1003fc2b84a27c8c035998413c1da595d78cc993f61733a859917c89d1fc8600ad414872e4c0eda24903e3b09886001963c040552d15b1b3230536f27a2913c5485a6bbe923a0cc1342a03c06d4726e1718cc11c9641586d6a88b7215be0ee05b94feedd05615ab0ed98990219ffff03e63c9ab2ed95722b19c109f03639757b6112738689d74ebdc8ecbb2c5ce46ced03a90a8502021d0c8403d106a77550fdedf8d8970d36a483174219f2ad518024e203db86accd2441d4ab15ce47241fde2b166a2c1c769042858bdab62077e3775e450395ad46356db32a3262592a3120f35f8d87e559f0d80a59a00f5f1496d79e1f3703ea0f478c5dd0d6860fe592f1064e12254146a87d7a5b32b5f69218e40543eece03f9685a4a1c22957f996b3a47d7b0d909a5337a980ad98a27ef8b01be121ebb820219ffff03a50f36b2a3aec225746cba77b256aa39baea8688ff9710f77ad371a1850b530c03d6b914782c056946db444e70e0762eadea31e3df5599237b3e66da71dc7ccd4103d52f79911ee66b756458bab97d6c63b5f089375ace9770d7cb7573287ac1bdfa038a6cb307f82845f574b2ffb6d548b3a50d4758e935abaf163a285da011b78f2c036bb9a5488e9d3123825e8ac90119b9e208035a3867cb3d6da9b6bc00678fc98403648bc1949264e264e724f3dfbb50a216cdfe05f3e95f234a81f22f47ea6772d203546b3a0d697ec1062b81522b4d084e9ec57c711cd4ea7d34bec7de09e0f1ba3e0383cd8f34312fd8ba6f85d0b5925f3a8a4ef4c2fb1dafe401bb87c9a1bea5213b03f6e8e346c25231891bae41caca569ce3119244c2a7fde5d5c71cf8fd7f3987ef03c51ef578408ed2bda43c71d7635cd6de9b456caa8f94e58ddc710393026ff931038db24e908809e8bb921ca8369d94130bc726ddb1feb383e1bb0428f10388556d03fdfe947e0412f21e731185beb4d688c76b1b25487213a889b392fe968f674f610219ffff03a60d2927f6b9b12188134cc239c40d23f9ccc70d3a7de9e09bf38b52eef3bce303433ce07a0d1bab3d582a296f83247078f7e724d1ac4092ea5111b0fb071ca02a03fb9e2161ade905fd2a2ef6bfab89ec7840ddccec045dc40070d4ced7f53b6e67031feb13beb775981d91a3062cf8e8a4fcb82d18f051a36ad7458c8e290220efca03a0e5ec6797ecd01497f609217ec925b01d05dee564308bda87e5cf92128c9a3803f674c47dd5a6c8ac69cd7ac69ddb49ced9dc58c05fa143c2cb97edccbd0b9bd303390bdbaf591b8ef8605852a1cf699e17f0ed8d513e033aebedfde8a73ebab74003179fd7a59752c138b342dfcf72466af530561333dac80ee105c76e7cde150306036a44ffb000ae3ee4b350b8845cb039cf7f9fa7b2241348b924f88218b66ab70c0348439d5859d54cd376c1c5523610849eb269b43a5433970801c31413a30b7742033fc0ea144e814572124c28db95e360a8ac2e82cecef6be56f99ded79e04ccbb803721018a806deb51a2dd6c4e4108ec19b9bfa13018030cc4787000df532f83b2d03be9cafc91ce5c493bff4195a711c3d027c59f96fb9de36ea791652d9e0ebefbb03d92b63a22b09c70eec21638713c888e08fc3094601fa959df16f5421bb0997400360cbe274a256abecadd967d1c9157250a8a6c9d9a7b732034dc42eb59f4337160356fbcad33cbc58a3f6c1d2a8bfea491d8dce5396e7d2c28b37c03966da6564ff03b82d4ee8a3bd099298354fd419779e9d9b23437e8eb0726503d635243071300a03489189e2fc1544cafbc038b00d4756dcb85fd97e490f66fb118509c17f3709cc037727b83a3c075641e096e7d358b4d508c02d94bf69dcf0e80c850aea57e3be5c03504b9e18153c54818674884cb6605cf7c1d2f51018ab2b8ea4cce38a64056af1038562b0206dcfdb03a3c955ab6787a612a6662b336db326533840332caa4b31280316fff45014600e04c5544653c60728d9f86e6b6629c64d09eb5faa6e95447e9d03421172bde32acf8d6525a1eb119c7b9af525df582ad3f66cf970ee5b40d4c1a303877aeaeed643b247b01b8f2f8fcc7ea584c37668f85dc230b45a10530ecc1fd703f7cccf2a3bd25254e8cd67559b9b8b3a510eb8a6298f45925e981230bc82f96c03c82854e63d06042387aebf6e0525c6e827ea0567f95ba0e84fbbac7b6e3babdd03ec5bb81669a23bfeac73bc9ae261a303e4233afe3f91999b6edbf44699afeffb0393f6766a00d101d1e2ccb18b17ee5d3c9169e414d348f3e38ea4b6ad51d249c3032e019ec2455ebd81fd8accdc332db5a3dbf498d5e8ab2424547c72e4bc0f754d03f3167c7ec060c7e8e4d4209142673800a2beff378cd85d5c5ab9fa44ef23f9950377ca9d123a6f1a926b0441413ead4ecfe64670147a3793e90fc40a83a98eefbf035c6b68124718d0f0ad938e089409526f2a61a3c62bdca0f15ba23d696cb9c3eb0363b7cf7f9aaf628c5ea5b0b014eb143ab8a339d6d5a9ca66cab5c07d4e9930b003bb38a3268a4529afd2b1246dc9bc1b81db56195ea458c9de3751bdef4f06794d03c2b8aee74e06f9b7719cfb835463672be34dd8c9f51a4ab228f8dcdd704773dc03fb9ffa6e4cb446cdf0fa328bb4b998ce480c24fd9fe2507df65fe11cc7601113031ff9f90f0646746ede0dd3000ee9eb92e952a2f5a19149e0f9950a9d8268bcff03111fa6456d535e473ab5cbe31075d36156b25f00be25d5fa54ef80a46b75e6a50360794bc9db223f3c2148276e90d32e3e4a23d302022f15b0b11bd49cc049b0f803e67366d9f8df4a548372165a810704bffc86a422e8b568a398556d63147c53fa03dd1d971baa9697b8962175d0d3d5897fad93c9129dde88bf91896fce83bc39b303a4d23ce45ab615a9bfff79118650a7e82cc850858c1bd43b8c6d08766d3ed44f03194bae0a4b7d6fa060b99e6f5c97b8211109d70a87e960efdf87ead447fe09bd05581e03b66d91f8635919e84725f61e09f44d36e8cd16c45dd605d495dda732600c034747e2c05e2f053b045916166080604052600436106100965760003560e01c80636ae4b4f711610069578063803ba26d1161004e578063803ba26d1461015b5780638fd3ab801461017b578063fa461e331461019d57610096565b80636ae4b4f7146101195780636af479b21461013b57610096565b8063031b905c1461009b578063168a6432146100c65780633598d8ab146100e65780634a931ba1146100f9575b600080fd5b3480156100a757600080fd5b506100b06101bf565b6040516100bd91906115b2565b60405180910390f35b3480156100d257600080fd5b506100b06100e1366004611075565b6101e3565b6100b06100f4366004610f90565b61021d565b34801561010557600080fd5b506100b0610114366004610fe9565b6102b8565b34801561012557600080fd5b5061012e6102e6565b6040516100bd91906112dd565b34801561014757600080fd5b506100b0610156366004610fe9565b61031f565b34801561016757600080fd5b506100b061017636600461104a565b610331565b34801561018757600080fd5b50610190610476565b6040516100bd9190611268565b3480156101a957600080fd5b506101bd6101b836600461110e565b610593565b005b7f000000000000000000000000000000000000000000000001000000010000000081565b60003330146101fd576101fd6101f833610700565b6107b8565b6102138686868561020e88886107c0565b6107ed565b9695505050505050565b60007f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561028757600080fd5b505af115801561029b573d6000803e3d6000fd5b50505050506102b08434853061020e87610a65565b949350505050565b60003330146102cd576102cd6101f833610700565b6102dd8585853061020e87610a65565b95945050505050565b6040518060400160405280601081526020017f556e69737761705633466561747572650000000000000000000000000000000081525081565b60006102dd8585853361020e87610a65565b600061034085858533306107ed565b6040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21690632e1a7d4d906103b59084906004016115b2565b600060405180830381600087803b1580156103cf57600080fd5b505af11580156103e3573d6000803e3d6000fd5b50505050600060606103f484610a65565b73ffffffffffffffffffffffffffffffffffffffff1683604051610417906111f2565b60006040518083038185875af1925050503d8060008114610454576040519150601f19603f3d011682016040523d82523d6000602084013e610459565b606091505b50915091508161046c5761046c816107b8565b5050949350505050565b60006104a17f3598d8ab00000000000000000000000000000000000000000000000000000000610a77565b6104ca7f803ba26d00000000000000000000000000000000000000000000000000000000610a77565b6104f37f6af479b200000000000000000000000000000000000000000000000000000000610a77565b61051c7f168a643200000000000000000000000000000000000000000000000000000000610a77565b6105457f4a931ba100000000000000000000000000000000000000000000000000000000610a77565b61056e7ffa461e3300000000000000000000000000000000000000000000000000000000610a77565b507f2c64c5ef0000000000000000000000000000000000000000000000000000000090565b6000808080608085146105db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d2906112f0565b60405180910390fd5b5050505060448035602481013591810135906084810135906064013573ffffffffffffffffffffffffffffffffffffffff8084169085161061061e578284610621565b83835b9094509250610631848285610b0a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610695576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d29061149b565b5060008713156106b0576106ab8382338a610bca565b6106f7565b60008613156106c5576106ab82823389610bca565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d29061134d565b50505050505050565b60607ff0ec779b0bcda6d84abf99ee2c67647d1100ebbb553a9c2d1c2ba1579592832c8260405160240161073491906111f5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b805160208201fd5b600073ffffffffffffffffffffffffffffffffffffffff8316156107e457826107e6565b815b9392505050565b60008415610a2b577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85111561084f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d290611407565b60408051608080825260a082019092526060916020820181803683370190505090505b600061087d88610c09565b905060008060008060006108908d610c10565b9250925092506108a1838383610b0a565b93508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161094506108e1878483858e610c76565b5050506000808273ffffffffffffffffffffffffffffffffffffffff1663128acb088661090e5789610910565b305b868e886109315773fffd8963efd1fc6a506488495d951d5263988d25610938565b6401000276a45b8b6040518663ffffffff1660e01b8152600401610959959493929190611216565b6040805180830381600087803b15801561097257600080fd5b505af1158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa91906110eb565b915091506000846109bb57826109bd565b815b600003905060008112156109fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d2906114f8565b965084610a0e575050505050610a29565b309850869a50610a1d8c610cae565b9b505050505050610872565b505b808411156102dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d290611464565b6000610a7182336107c0565b92915050565b6040517f6eb224cb0000000000000000000000000000000000000000000000000000000081523090636eb224cb90610ad59084907f0000000000000000000000000e992c001e375785846eeb9cd69411b53f30f24b90600401611295565b600060405180830381600087803b158015610aef57600080fd5b505af1158015610b03573d6000803e3d6000fd5b5050505050565b60007fff1f98431c8ad98523631ae4a59f267346ea31f98400000000000000000000007fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54828073ffffffffffffffffffffffffffffffffffffffff80871690891610610b77578588610b7a565b87865b604051958652601586019182526035860190815262ffffff909816605580870191909152606082209091529290965250902073ffffffffffffffffffffffffffffffffffffffff16949350505050565b73ffffffffffffffffffffffffffffffffffffffff83163014610bf857610bf384848484610d1c565b610c03565b610c03848383610e12565b50505050565b51602b1090565b6000806000602b84511015610c51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d2906113aa565b50505060208101516034820151603790920151606091821c9360e89390931c92911c90565b6020850193909352604084019190915262ffffff16606083015273ffffffffffffffffffffffffffffffffffffffff16608090910152565b6060601782511015610cec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d2906113aa565b5080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe901601790910190815290565b73ffffffffffffffffffffffffffffffffffffffff8416301415610d6c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d290611555565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015273ffffffffffffffffffffffffffffffffffffffff83166024820152816044820152602081606483600073ffffffffffffffffffffffffffffffffffffffff8a165af13d600183511460208210151681151782169150816106f757806000843e8083fd5b73ffffffffffffffffffffffffffffffffffffffff8316301415610e62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d290611555565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152816024820152602081604483600073ffffffffffffffffffffffffffffffffffffffff89165af13d60018351146020821015168115178216915081610eec57806000843e8083fd5b505050505050565b600082601f830112610f04578081fd5b813567ffffffffffffffff80821115610f1b578283fd5b60405160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168201018181108382111715610f59578485fd5b604052828152925082848301602001861015610f7457600080fd5b8260208601602083013760006020848301015250505092915050565b600080600060608486031215610fa4578283fd5b833567ffffffffffffffff811115610fba578384fd5b610fc686828701610ef4565b935050602084013591506040840135610fde816115bb565b809150509250925092565b60008060008060808587031215610ffe578081fd5b843567ffffffffffffffff811115611014578182fd5b61102087828801610ef4565b9450506020850135925060408501359150606085013561103f816115bb565b939692955090935050565b6000806000806080858703121561105f578384fd5b843567ffffffffffffffff811115611014578485fd5b600080600080600060a0868803121561108c578081fd5b853567ffffffffffffffff8111156110a2578182fd5b6110ae88828901610ef4565b955050602086013593506040860135925060608601356110cd816115bb565b915060808601356110dd816115bb565b809150509295509295909350565b600080604083850312156110fd578182fd5b505080516020909101519092909150565b60008060008060608587031215611123578384fd5b8435935060208501359250604085013567ffffffffffffffff80821115611148578384fd5b818701915087601f83011261115b578384fd5b813581811115611169578485fd5b88602082850101111561117a578485fd5b95989497505060200194505050565b60008151808452815b818110156111ae57602081850181015186830182015201611192565b818111156111bf5782602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b90565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a0608083015261125d60a0830184611189565b979650505050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000092909216825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b6000602082526107e66020830184611189565b60208082526029908201527f556e6973776170466561747572652f494e56414c49445f535741505f43414c4c60408201527f4241434b5f444154410000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f556e69737761705633466561747572652f494e56414c49445f535741505f414d60408201527f4f554e5453000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526022908201527f556e69737761705633466561747572652f4241445f504154485f454e434f444960408201527f4e47000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f556e69737761705633466561747572652f53454c4c5f414d4f554e545f4f564560408201527f52464c4f57000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601c908201527f556e69737761705633466561747572652f554e444552424f5547485400000000604082015260600190565b6020808252602d908201527f556e69737761705633466561747572652f494e56414c49445f535741505f434160408201527f4c4c4241434b5f43414c4c455200000000000000000000000000000000000000606082015260800190565b60208082526023908201527f556e69737761705633466561747572652f494e56414c49445f4255595f414d4f60408201527f554e540000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f466978696e546f6b656e5370656e6465722f43414e4e4f545f494e564f4b455f60408201527f53454c4600000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b73ffffffffffffffffffffffffffffffffffffffff811681146115dd57600080fd5b5056fea26469706673582212204cc6b7a366a0a6e22a04d2d8d2b0410ef6d76b5c47d78862c5dda3d6644d33db64736f6c634300060c00330605581d024a44b4d2b5f6d242dda9b7b806263cef66b2f139670929bb28fc7fea0701191616031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581d0248da54ef2abcff5a6301b47cc3692cc096a0adad40101738c69779e707011bffffffffffffffff0219010805581e03a0ac152d3ac0c9c9c5005c9d692bd5ec77014cd36d9486547a8ae0e5800c044718c6b04dbcde8303201700f92a763e27560f6ea05eced4cbe1d48deaa7943c683c4b4f49cb13106f0342fbb8ca46729b921d60dd79bc5e955d37ed77c2f6b882cff6874fd18527bf8e05581e036c5bc4dd61532c76ed680ce6a453319986bfa089b6f9be89f1f79574c00c02470305d37cf544b805581e035f496c54a63e3e6452326d58130075258bda3b6f8cc4c367cb565d26e0040105581e03ad44e4916d57aa025a1cca3fef327c942a8ff7d793403bcdf72a5912000c024717a681984510000316c07421137d6fca67dbf763e0cc23c12a58498d88d94791d2a6c260c562bfa005581e039e4aea363c26f33a85ab6a01b8b36e057abd6eef33bbe3118a012cc4c00c064682e7c0c427e805581e038b4747193ef8e3a8860fc395cafe5c98a3f0131092943d5219e3431a300847038d7ea4c6800005581e03ed21ee4b22c2d91a89ee20876c15c9f2625971db8ef0d1a8976c4b2be00c01470128546a26c40005581e03d16dced3be69b2b03f5944d1abef9bda9e457c9d4deb7453efb8eafea00c03467076e2d3b0c005581e03fe59d2729a8994ae4ca677efca10032142fe70091fb49ab30acfc281e00c024672560413755003eaa13b8d3ed72aef2a071a3d3b532ea9ad4997230aeee9d8150ef68f5dd83c8f0219fffb030bceeab60ca03c8c5b7cde19730f866a9ef38c0a37643c6d39546f7af96d51d10219ffff03a6006aa40a58141a519795380e434e94825fa08b5248839b2ed7b3693a4f3dfc034bba7ae1a355704b85c51cee8cf4f4dba999cd55f3604ddee93057f36bb1dee703b7832ce24ebb6fa5fdc4ef76a4c4ca5d8142648eacfdd15746d067e1ea257f6903e0f549cc631a96803e664ca36a2f7dbcd1d0ee4e066a15510eccbd894ae6557a034b75e0fa02f80cf3eadb5d800c649fe6ad3e0a6aee768f1b25a7ca8cc7f8d0040219ffff03fceec48695c750f27287986c72e35e27bebf4e1639c4fc9f65bc2eef741a5b33036f75beba82fce098703546993bed9689151fc797b4e88611ec24e971d03e8b9f035839d648b24acf37c951e7e5910e891014ece1f24171af0f522e6a6c13bd677b0350fdcf647a78979d158556530db8f37fd7ec3225aab5f1a5d4c4e31f3d2f744c0219ffff03a5358cc2454ba4c7f154311b9ff6bb01071bf9fdf23d4108c919e33423d89f2903d40009515ae21d8a43b91420a2fa991fe93effab28a8760a9698ea98773f19180360a498da729e25da3657699c97a9ace336618417c2e912914d938db3e84f2f5003873e97878802dda957d633ea49395ae2bf9103f5fd8f8000f9182ab43a04364503a9d86a2b79a6103b84dd6ef12bf5bf3787d3b0c098a6fc761cb38beb1e1ecd0b03d238cfcd2b28a4482edba8e80bf9aa0b003a3b33497d2fcdd746123e7d59dda403c2f88297f853d6310db54fe70e152c70c3ec111a81eb851e9d0a76fa9c7ad440030ed761b51c0263802d083b432009de2ec65751012f43d5f330c22f0b96e1e55d03e2e2cd5b203a4d72486e39d17cbab7d02b5201679aa17b6021c92936552f92b603b8251ed3f6a3af683c9f0ccb5236487067c747929db09befc9b68ac86281b073039690ed0c011eac200370fa571c5c639e28d03eb89806688d11412f92d174d6d5039bf266bd1cddd39435a5a3399488d55af6d11a99c3e90e0d27608ed8e38c8774038e590efdca91dcf151999342d356c277f277f16f9f211a4acf7b6f7f6213355b0219ffff03c365ee5441e8c48180b1ef35944b8733c4b3d37ebd154346b1e6001607119b2a036dae95f064b6da0ee893baac0078e75d3e19a70ce28646dab697c976062de0ef03c3ecd3ff3a9607e48e0c822d02cf6c5cbce7cd0ea15421f6d5750c073e9ebb3e03b3ff8f58edf5ddf6d4adf5c32338eacfb112cbfc8c971cd6079adbb7a2dbaa4303451a836a4df657623c87c2104e20bbbe4abf0d83b8ea7c70debc89ca4160061b03a647f616918dd2435d88cc788973431fd204e7f1de9b1de1b17e0b67df230dc50373ca8e89bec3ec9c59c9843a49b1bc3ca2b11a9cb238b5b83e05e4cfa01edb1a0219ffff039fb9394ff3933cabb7b457c93b0e5a424a1033c8a90c88449fb73d1cf507dfe003485709238c8f1f7e476de6f96806a99b795dcf4d76d53f438fe51f66763b752603b3037c5785bac94975d795ee6423b90a25a8899216d75f82284335948d09033503752a3f07b73a10e30e742fb436c8dc00758f76cbbc2efad6b9b7d7511c0322ef034e99c4cfd4cba2fd4697bbed754f92fb035e0e838101cb394e5a0935a1336abe03e1834aaec0d499aaa5a5a64ccd8d197b61c59e78793516bc903a390425112a5503ec737642c0a734faf20b72589473b4f48d62ebd2f4c0ffb0b33babc8ba09654f0347b6f41b14a49bd35053e28d7a065640a4359b4a60fcccd4a978b1a7ebffcaba037be2065d424856b81a06ce14bb23c6420688036f474fd621bfa3824bd90e7b7b03058c4f262b30de3eb651c4337f3aef21cba06a78bc87fc21d05fa4698a7e174b03f849fd05668787bda96337f42c349b4f7a7434e767b3de7567a65628771ff2d603c9082a60da784f47342cb192621aeca062a37bfe535bc629e37fcb6b622c8ee4036f57630ac7b7a0e77d7abfcba4c33b05436e5a64084296b45a5fa9b268ee63e8033256528c21d48395c1077c77f2b117dfd2a153aac00ee1ccf05d9cc7014f66a7035b4ab4e64e2ec5d0c42b68ba35948e2156783e365d7fb5dfaf665058c2e1eda3034b2740f5a6ef8a9f22bdd8fbcd19065833e209822193d5659636808a0f3c18fd03ca4bd94dfc4959317e8ed501958b680ba2b9923515d18f17f937dba6ea8eb15a03bdcf276694f341508da369e08f3d3824a32bb02547129e22ce135128460239c4037203ee0eccf89e5860bbe12c1deba265d28ae628dc0560abdff65db321301b2e03cd172e47b3df6ea808baa836772b3559747eadf1e1380319374f03276f7b800603b0fc2f77f4db7a13edfa8f2af21623fc33c665993b0cf23f41db0511e274de9903878d771dd50c40301b9c3f0ad7a73bc5f36c33e3a34be784056ec5b0c22fae6803b82f18b8043845e73cae063e9ffeadde3ba43031e54ab38da9902795d13284b003b97d9d71abef205f5132943fbdcf635c2dd7ee80350e2d8872b0f81115bc4a2903b5403b0da7bf9724a80e0bd78d446fea2c707547725531d62703713ba91bb9c80317f71902f2f1e0ca9871b58316303ea28cda7a3ddbe96ec34f12e76247dac08d032ab28ea259958c87dc987f622506bfe202450a4770f0430d71dcc734fafa40950322591b495bef360943f9e060e8b4f4d992341f06e53bce5e2323f5b88f39a2470357f5b601c39d224acbc960e5714e6fe30c6ea7ee80d1222e861e44545a09d1c803ff4c9f5c0e59aff022295b380d934e2857a2dec6c6a4e51dfb08efc449c763710306e7c49c06259ffefe69c91139058ddfc9c7979f793f60b6c8a5f626c01452fa05581e03d9ab0290a9dd356f9096641df5ce47c9f6eec327a11a153c78dc7b87700c01465d939a103a2c03a522a77020d700e5c514ccbe69e3a790f5c6394b87eb7736ac140960181d183c031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03c4b63b3c2dc8d1ca50adad69438e450c26647541382697608794da38b007011bffffffffffffffff05581e0379b29cfb68efd058e64ea5e9e1a4ffce49e676bd44758c9de3cbb696a00402039fa4285c7e5dbcd8918901616b84710fd6622b769ef71e53ddc6b1ebcba75d1a031f8b67be329f6419c9282095843235301b6b3475e42bc9e3262b646aba8072060605581e0360b12e35e192fabb92b653f436a8d93a3fe4a31c6f0e0bb9b6aa660e9007011bffffffffffffffff05581e03512e5fd6aa467ba0275da97cb7898c314203ff01162ef999c2e6e85ab00c014744e45d81dea8480307e2c6b61c9af478c838e0cd185c69d3833252bafc6b482672d34ad9dc615c9205581e038b5dded3dcfdf54afa0824f0a97c21abf0f2645644c8c079a7e7d279900c174711e8334ea5ff0505581d027c3cf7663beb2da7bb9dc1c18bacdf107d0d93633f4e9071ca0f312c08470accb0eb3c140005581d026526f3239521117e32e590deb149db493bb5c665ac3aae6b493c9b20040104591045608060405234801561000f575f80fd5b5060043610610115575f3560e01c80635c975abb116100ad57806395d89b411161007d578063a9059cbb11610063578063a9059cbb14610243578063dd62ed3e14610256578063f2fde38b1461028e575f80fd5b806395d89b4114610228578063a457c2d714610230575f80fd5b80635c975abb146101c957806370a08231146101dd578063715018a6146102055780638da5cb5b1461020d575f80fd5b806323b872dd116100e857806323b872dd14610181578063313ce5671461019457806339509351146101a357806342966c68146101b6575f80fd5b806302329a291461011957806306fdde031461012e578063095ea7b31461014c57806318160ddd1461016f575b5f80fd5b61012c610127366004610e4e565b6102a1565b005b610136610347565b6040516101439190610e74565b60405180910390f35b61015f61015a366004610edb565b6103d7565b6040519015158152602001610143565b6002545b604051908152602001610143565b61015f61018f366004610f03565b6103ed565b60405160128152602001610143565b61015f6101b1366004610edb565b6104b1565b61012c6101c4366004610f3c565b6104ec565b60055461015f90600160a01b900460ff1681565b6101736101eb366004610f53565b6001600160a01b03165f9081526020819052604090205490565b61012c610622565b6005546040516001600160a01b039091168152602001610143565b6101366106e0565b61015f61023e366004610edb565b6106ef565b61015f610251366004610edb565b61079f565b610173610264366004610f6c565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61012c61029c366004610f53565b6107ab565b6005546001600160a01b0316331461030e5760405162461bcd60e51b815260206004820152602560248201527f4f776e61626c655374616b653a2063616c6c6572206973206e6f74207468652060448201526437bbb732b960d91b60648201526084015b60405180910390fd5b60058054911515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60606003805461035690610f9d565b80601f016020809104026020016040519081016040528092919081815260200182805461038290610f9d565b80156103cd5780601f106103a4576101008083540402835291602001916103cd565b820191905f5260205f20905b8154815290600101906020018083116103b057829003601f168201915b5050505050905090565b5f6103e33384846108f7565b5060015b92915050565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f19811461049b578281101561048e5760405162461bcd60e51b815260206004820152602d60248201527f45524332305374616b653a207472616e7366657220616d6f756e74206578636560448201527f65647320616c6c6f77616e6365000000000000000000000000000000000000006064820152608401610305565b61049b85338584036108f7565b6104a6858585610a50565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916103e39185906104e7908690610fe9565b6108f7565b336105485760405162461bcd60e51b815260206004820152602660248201527f45524332305374616b653a206275726e2066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610305565b5f81116105a75760405162461bcd60e51b815260206004820152602760248201527f45524332305374616b653a206275726e20616d6f756e7420657863656564732060448201526662616c616e636560c81b6064820152608401610305565b335f908152602081905260409020548111156106155760405162461bcd60e51b815260206004820152602760248201527f45524332305374616b653a206275726e20616d6f756e7420657863656564732060448201526662616c616e636560c81b6064820152608401610305565b61061f3382610c71565b50565b6005546001600160a01b0316331461068a5760405162461bcd60e51b815260206004820152602560248201527f4f776e61626c655374616b653a2063616c6c6572206973206e6f74207468652060448201526437bbb732b960d91b6064820152608401610305565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36005805473ffffffffffffffffffffffffffffffffffffffff19169055565b60606004805461035690610f9d565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156107885760405162461bcd60e51b815260206004820152602a60248201527f45524332305374616b653a2064656372656173656420616c6c6f77616e63652060448201527f62656c6f77207a65726f000000000000000000000000000000000000000000006064820152608401610305565b61079533858584036108f7565b5060019392505050565b5f6103e3338484610a50565b6005546001600160a01b031633146108135760405162461bcd60e51b815260206004820152602560248201527f4f776e61626c655374616b653a2063616c6c6572206973206e6f74207468652060448201526437bbb732b960d91b6064820152608401610305565b6001600160a01b03811661088f5760405162461bcd60e51b815260206004820152602b60248201527f4f776e61626c655374616b653a206e6577206f776e657220697320746865207a60448201527f65726f20616464726573730000000000000000000000000000000000000000006064820152608401610305565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a36005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b0383166109735760405162461bcd60e51b815260206004820152602960248201527f45524332305374616b653a20617070726f76652066726f6d20746865207a657260448201527f6f206164647265737300000000000000000000000000000000000000000000006064820152608401610305565b6001600160a01b0382166109ef5760405162461bcd60e51b815260206004820152602760248201527f45524332305374616b653a20617070726f766520746f20746865207a65726f2060448201527f61646472657373000000000000000000000000000000000000000000000000006064820152608401610305565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610acc5760405162461bcd60e51b815260206004820152602a60248201527f45524332305374616b653a207472616e736665722066726f6d20746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610305565b6001600160a01b038216610b485760405162461bcd60e51b815260206004820152602860248201527f45524332305374616b653a207472616e7366657220746f20746865207a65726f60448201527f20616464726573730000000000000000000000000000000000000000000000006064820152608401610305565b610b53838383610dc9565b6001600160a01b0383165f9081526020819052604090205481811015610be15760405162461bcd60e51b815260206004820152602b60248201527f45524332305374616b653a207472616e7366657220616d6f756e74206578636560448201527f6564732062616c616e63650000000000000000000000000000000000000000006064820152608401610305565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610c17908490610fe9565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c6391815260200190565b60405180910390a350505050565b6001600160a01b038216610cd65760405162461bcd60e51b815260206004820152602660248201527f45524332305374616b653a206275726e2066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610305565b610ce1825f83610dc9565b6001600160a01b0382165f9081526020819052604090205481811015610d595760405162461bcd60e51b815260206004820152602760248201527f45524332305374616b653a206275726e20616d6f756e7420657863656564732060448201526662616c616e636560c81b6064820152608401610305565b6001600160a01b0383165f908152602081905260408120838303905560028054849290610d87908490610ffc565b90915550506040518281525f906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610a43565b600554600160a01b900460ff1615610e495760405162461bcd60e51b815260206004820152602760248201527f45524332305374616b653a20746f6b656e207472616e73666572207768696c6560448201527f20706175736564000000000000000000000000000000000000000000000000006064820152608401610305565b505050565b5f60208284031215610e5e575f80fd5b81358015158114610e6d575f80fd5b9392505050565b5f602080835283518060208501525f5b81811015610ea057858101830151858201604001528201610e84565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610ed6575f80fd5b919050565b5f8060408385031215610eec575f80fd5b610ef583610ec0565b946020939093013593505050565b5f805f60608486031215610f15575f80fd5b610f1e84610ec0565b9250610f2c60208501610ec0565b9150604084013590509250925092565b5f60208284031215610f4c575f80fd5b5035919050565b5f60208284031215610f63575f80fd5b610e6d82610ec0565b5f8060408385031215610f7d575f80fd5b610f8683610ec0565b9150610f9460208401610ec0565b90509250929050565b600181811c90821680610fb157607f821691505b602082108103610fcf57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156103e7576103e7610fd5565b818103818111156103e7576103e7610fd556fea264697066735822122036575823465540cb1277c31fc2caf8a9189293837511e06209ac0d70400a979364736f6c63430008170033030ef6d3e7960a317c69218d5d92fdce0fff31359989e6286e3df138ebd3e077ab038f7a887c84db31a58a7a0d0e2b9cae5f46976bd7c5746d61462c159ef9beb7fd037b222a6da811fdfb74c6e9b5d66dd45b4f780d1bd22acc4bafeedbf5b13c34d3005820033c3826e1f77dbef94454169dc41345d1e7c3c7a14cf121e9ffe4af30076ae04b3385228ab1b849575293e1005820038235766f40646125d712d36a80881b10f838ec254690bdda6456f286ec27f05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03790493f4e7ab113d43110a0e0560ccf96c4f7bf14b7d08bdb63cf05dd967e13e0058200392d39d2135ebb0c7f898ae40ccdfb16ecb9e2f8210381cd78d89fc4981c6904b0b5f229fdff9d6cda435d200582003bc84877ad7abfca7957dd2e39622e71aa59d4ca3d7ce0c96d84b6f6a5bdf705820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003f4ffdfcf6e7f69781af66d6d1182fe785ba203637a5afa4fe186f29d801eb05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f0289439f5413a769307d83a5ab107a9288f697e5500386e7632b78552c05e35820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02f89e54f5451c1214fe6b1acaaf91666058154883794b6cb9e3d66aa70b314c13e5b251ffc3522bbf655de002183003dddfeb32b7f496582f6f3b991e19486e644a391ee45eb32c4bfe0fae221a51240219f39200582003c267cea428e8ac6981847912a61e91dd8a81408df2120fdbdc18ee5738db505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0058200386ca55ac77e42f21d8d4b4f9d9f8b470857abdb53413f4f0b1ff977210e2105820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff032425b7cc50df3122b79c56bb6ed94aae8706786a3fc241b67a4121284b7a93bd005820032b1e2be0efa02a0adad205ad4bb7958ce3ba49e2b4a0b886580182c7cee3605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003c8fff7b3b19212c06ba5cd02a40e8e35caad1e4f66030a939b436c26c904c04bfb822c05ed3c6632725a3800582003b5f6ad52279217dd61a2354ac2e6f185a14e8022baa685bfcedd76a8d7e0305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003f2f989a56404bc1f6b91dd7f8cbedd6f8055dfc7c74e7bc988945620f3fbc05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0368c5d0368755d261f1f9a1669660ce112928907bca9c1ecd473061d723429ea9021929d303f57ed86c6a30a714f95f13227aceac26c29523901d53fc490fba21b4a7eaf3310348a3fa607473f9c44193783186048a09fec318ae1e0085695dbf6dbfa0956607039f1c7528b052bc79e1b670c3dc4bbf8b95dec056f2e2b64f12a65336f2cb0f0603622b7a43821b96e38851ca23b32eb7d6cccdda87034474edb1beadc877d0bf5f03a8a4a943b7378169804a11f35ef9a480a77ccdb3ad09463511f15347f6220ba6032d63edd8657cbad64271f9dc865c8b19a638f3b674c49ee6a42cadd59ce6c9870058200367dc8a9205ffc5917d62479cc780f8a26f9c7c4888c021204281e00af14ee04b0f8eeb71aac39ef7a9394903d6ebe4e8cb46105d5cfb523ed0411f04ae53398629e81c0cc5b40b1f3567cb9b00582003464f451c68b0bb0b14ab97bff7d5d7a06f1d5f220a6481ef7cc737ca23b8b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003f02809787849eafe5457bab1af5c01c25b4e1a7c19fca2e214aac9e5c550c04d01838810f254c24ce8a92f5660005820030b6e70c090a7b20f9eb912c5084325285c918ceddc49c3c8003bf3a140d0205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003c43f77d64a206b64736c351a36e75d815d084672625b8edc5c3455db40f1304b068d08401270e02ec65d470058200341effc6778304fe0c4f2037d7ba9ff35e62c3211a69a05e4035684f0ff65804b984f9e6c1e85048c6ccb7f00582003933b78e9e0c7c0824f5f4836a06a3babc51260820e89e2c2d5ac463c86b8b04c1c0ae8955648488a18f40000005820032091dee59f5a2ae4d2b59babef3f726aa87d7bc579d964cf7fdd83e562b9305820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820032ebbf4f7ea76d48e198e701cc06ad683e577e4645d7700031024252d31ec4045829e12ccd000582003dba0d6754d0a91113bc40f5a7f987e0a8f351e2a73cb21b1ffc1fcf0e30cd05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219ee57032fb66ec702797efe4a32d372876b70baac6b3c9f2ea2efa52153695d55dcf4f0031ae4d928f9deb5753204775c1bb5ce9f1f54130b3fd7053b8f988c762c48d69b0326046a9dd92cb8859d048845d1c5cc69d019c0502c2967b21ea1c70aa777ef6703ecb601fc06dbdeda1cbe6ba391625d3e3017871e8baf2574d33e073e4924528a032b413a401bd7298f128397fb7cfdc4a1ccc0259a5a00722a68f507e0b0ba40e20219ffff03f3ac01ed40a5ef1b236c5713eabcf0deed107c1b04be4316d8c6c317f7c220060399b78e44ce40b92bcfc97cad33bd3aa9bb345b946aaf2aa7f964fe13899c380c03714f112db8a13b4c006d26c0083aeb598d92d73a77aa69c170e7f2413a3fcae603f833089298efe7618d053343c2d0fbf59f922198ead8fff9b6257e4449d9ad0203e8f44bb7c36439a3248e69fcb9905aeade3ff10933be99726d457d278353d8e60308321fd309646536899cec0e93279b2d8270fc98e83f70a5c10570a0cea617d603070c9307fd4c9ba97b87a0781a3255b7d4d9c721f63d071102fe74bb3b57891b03f40ddec684a5ce4a98cacc9be705aaa285b2088a3d10eba6e7439ea7e2a40cd603e2311cc9eb791dedd7161aa43de19292580af5b84fae5e79c1a7df5b21b9e0cd0380cc8fb0d1ed4564eac95ac88702c6f8bb9ea79eff28104c61710f2804aeb5af035c9dcf7da7688808fef00a5d26739a140747017521cf2a54bb1620955eec3479033050d0b3c30f956d4c1716cfed5a9fb29c874ecae4d0c0ebd6db9f279095e42f00582003e16d14d7ba32f45fef8fb6b1b42f9220f988d707a8cb3d365641fc9f60a81045178592cf3900581f024b7416de84eb8c25afa4e09e512d1145462041f20fdf7b140c3317f31bbc4c0813f3978f8940984400000003513755985c6d5277f635bee6c5a0998619438ef86f3c0dc28e1e6de25a9f493201410b02191100031fe698c16eb9a8731b081b4d08e077123cd1aeda6dda380a2c33b5f5171a01e00058200365c8d2bb3d47ef7fb3bbc3864f233ab17e402cfb343fc33d3e5af0475db4d04b30b8186f032e4fe86200e800582003ba02d732d98be6245a4ca1a35faee206e3511f6ffbea5e4c15d76a635cf3004b01b0fac1fbaf00a4ff7f3400582003d582414561f5928afb9bbf3d4582c289fec27dd570c91f47b16ece7d5011d05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003d74e135548d668f078c208969f16b4c9eb883866d3f976457fb9cc0f769b605820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03ac257f634d58696802796cd2bfb622a0acb1f2a2cfbd24be16dfc4327d54a3a40058200342712e383da2e0e688cfa4f4b37062cd6e381403ec2c1f5c24ccb6bdfd3c404c020491f68f10b98a9255c49d0058200391fc84e89078e4bdbb2407809170816a4832bcf5452d9ddd911cbd0b1bd7704b3e09de2596099e48e9ef8d0219db5c03150061d38aa4f5a20749c2bfde4f019c69bce61b0b928634e9528b21163a74a203a15d229a04a5a0e1860a4f51a264f19747b4da7016fbfd123601d8586caf5926034aa8352e42fc7eb7212bc174ca1082c6297514dd0668a4fadc613913eb696b69036f8115901a4bf6f602c25c0d5f57784af3b7f398006168510d96f6bea2e2032703a42730bbda54654ea1a11f7fb9148a553a8f95e70dec55ca28fe76c7cbea750b0219ffff03fb252103c41d62b83191fab69bcb82bae87becd234de1d861a2614076e2acd01036b8293c901ba28f84bb56d947f97205d04c61695b28909d5b3a7a553c7c1030e03f8a825b8cf742175a61589e57087a4edcce1f63e4a2fe223fd1cfe055d2a0eb403bb9f9de9c0336da083d37bcca3d1a30a05d20095e67460deff66bea4d591c47c03b4400703486765373a53a24739da37ba2727ae831dcf4b534e37258da5a810c3030814e48f23521b267853242793f04ccad96d4249f3fafd7e6a1fe2564b94e48003855cc7e7dd7d9cc3abcfb2b35a271601d4b51b8f6af77e99325f0ca80ce1489903c8f404af366bbd3ab5a4bdd574b27e965c0cba1699a97ffcfa5611e10b16033200582003b3a6cd8a8f7ecf87fb63b468db4023b921e29231349e114bef35ad1a9e7de04b821087388b0f2a4f45ccb40332e5f77b51152f01d639274e8ad337725c05d8d9172bc68443824d301ba15933005820036ed6d6dad7b5bfc08a44a6eabc45732298129831ec3f9504e9b4a7224f28204b12557ff1cad9dea3ef77f2038e61f3a3eeeb1e2c92fcd03578e9f418c54fbca9f99fd1c996041c51c03d087700582003aa19a2901d32c1a33d3506351a441a123acda08f9e030199a7bcf3b65186304b086ebae3bfe60737aed31b005820034897436c6afd7f4ec1947e0af2fbf4196dc41cb8ecebac147c8447df785ef05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003b6d0aa33d163bf3fa95fba81d087acda7a6aa196e1b9618574f24fb6bfc0004bb661a9d20642ae30bca812005820032381760b7b98cdea68587542e718e86528477264468a8692c4d9a4f19a13205820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820032daa2003f63e47af9af572cc789c1ef730fd87891a6e79fcb1505398f373505820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219855f03dc775266b2204b63525f8890775406f26db498eac07d993651bcfccd812a96b100582003d4985449b33c75631b266ffa9ceef7c1d6839341f07760f9ac56e87c455a805820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003d751968282d320d36bc680872ca4cbf2c886a0d1649a34ed41efe3a457fbe05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820032d112b751e25aa20bf916ea4754884d105003eddbde69d9cce7e829803b8f04b06b410ac2c25f8e98a3403035c2b7b4748613d9c45d8c7894b070bbe892ab516dca9d7c30275b5fc51e0e87c0058200372ce0a0a5753d2e4f0f5dd164bb0fd30c9e28b773208e9ab41624ac39c70905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00582003db93392c1f52b40fa5f6b2e44c0c27e62cb6e8e690fa143c0aacaec70324104b433b2ff41b8a6ed012c938036140c26d6a4807eaacf96f1c8d2aa0d58ae92deec477cd4f04cf7ec507f66864021932170352c79299bcc7993440ecfd3fb9d2bb18f83c86025400e1d71bb7341a3d1229da03c3f5714f88e39734dde80babf05f489cdfb6e6c1be403015f5c336bbed9c977d03d452bacf308c49f6a589931097a4f943f46ed705b99175b13bc6290bbe9605c9036d2b226caaadc3f57c10ab36ce7494617ba8afe38e80a01fa7e4b8349eff0b0803ed08153c20c083a798976865a58fdc6da7b14aa99e4ea51f43f73decfd3c78ed03cb6ee3f7f60d97735a503afe652466c10b57f9bc6ad80130de280dcebf0584b50219ffff03ccae7dbb8bb0d5478f7b9ddcb343c821125606d0af7d02310b54e8a73db6b4140349bf1fbd1fad5ae9183edfd7985e58f8d2f0d0f791f6276e8aad65b6334466400392804b2083880ee0089c4ed1f10970bcf61a4072d0ea64f8a3fae24d0262127103d90a8f54035a230d50c0514ab74483105a9d066521e0bf68650fb494c512875303bfb16f7c29221fa5aa2ce0bf37dfa3410ecd73c6fc29ca87c28970a073a44ef8034f76801ab5a8125ad25973ef0633983604ffd9673014f7c24a4c0e31f594cc3c03449ce7c0298f291b3f58bc8bdffa1077a51ed7e0161d9fe46a6380ca1059ba430332ec03b483149a35c140f252a52ecd40b9a64682b3bc01913af998194865c32e030311aa00dc4b6bf6ba1dbc3c13e6de211373018c867ad140679e5307750b9552033f74d63eb166a2e94de1d65c5ec8192886899d25b69a3779ed0bfc4e56c6fbdf0361643984c747ad2c0c31034e97bfb00e22a383f486fb0a5471c9e1eec393543203bd9364d86feb5bb4a8548d39750ada47e7915cc8fb452609fff4936d9f07ca3703e8d4569cf7ae3ca8af3b91a841f34e741e628de8588ae1d1e685c3b69a584b31038e2f0e8c548ffb13cfb86fd86dac0b5103638f6ef2cae41c0318c7d35459d6ad037cd9d41b2d5e57a819c85fb0bcb41ef5548b85607aad3d490ed95e7c66f4c1c303c25782a20e4ab36d10e5ae56f0eef6a7ffafe752d27e9e778b8f473aa453f28601410900582003532c8bbfd8aad6024506147751490a47e89ce021541def2b754b77bd5048b05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff005820033323da7e67ca5f8f7b5938f0702c852c6519772365b544d11272f24f7a0fd05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03f5eb8dce2100faeb2322346f79a805d22ef8a685ae54602a1fec3cc0a177a3ce00582003201bc5347beb9e4ba04f595f9280d633d8b8bbae002a73674606d1d71147404b0f3c2be80ddaeadbbc2b8c00582003b8c91c2aec8e1a8905e6d051ac7d8b4994cf59fd0d3450e1c7025aa16a27904b149e9eb22301646e35f7a1031e95682d575d3420a1fa40d69181b21cd61e2f850330d839f39e0b321d6cbbd000582003c088ab51b2351e6d5accdac80d1e543d823d873fb1c9331c902a425507a6a05820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02f2c15356c8065ec2c450ebead8eec19713e26dc04a0e17df722b38458dc95820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00581f02f5fbfec1a1c718eadfd87609c26520e84dcc20cc72c0ef2878b5ef4946905820ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0219402003913303f30f3f6fffb2dcc9010999b7e47065f38555cd5771427fc47ebe64da6203d4e559ab9bb1bf697598b5bc144f10aa51b41c51be32a74979c4ba6411f3c43602197fc303435c64d7a04b9429d7164a11925316eea1e3ae351a539ca7c4f1d4afc947b0dd034919041ff38ba0a45b92001cc32db47779ed620d704fcddfd669abfdcbba2e87030f561563c740a9ad02ccefdad701b87ba9f835bc1b265bfd6ac0d9207855a00203aab5a5711caaf54e3de04960810af10ec9ee4e48aa275b9c0744570d512560d2032f5c527a5698757a2852065dd7477051280ad77bbcde0d1dffdca568b9bd2ae103e30e3579a6370144e77a1326173ab79f84e3b0853b4053564d0a9f767e393f9c032817352df284fa8f2f30b181026a8cbb78a8557735a4db4880b7a09ee19a994b0219ffff035d236c1229c0b554f40ddb5f3159ff3dc2400eada4f0be7048df00b6acb3c3b703331a24fded924a51894413ee458da835dfa9b5a67d5b62ba6247dc9b2cf468420219ffff05581d028805254c4e619dcc39f3e70ddddf469798cdf56599b19efa9ff63a7107011910450219206003d75f6883ac458a4528483a72c1bc3cc2bde6b9c9c343917721ff6cc80e0374a905581e038aec84ef803b663eaabfb7c899e624b5288de18cce73b9bf9354e7dc000c02470893296d0cc5e005581e03c4f64461f41c5ad0fed41932f8986a374a5e21623be81e6e721a88ef600405031b460c826a854d61dca82f718e088b8b4c4082ffeb93752d7691bc62c51dc0280605581e03b2b4a87722f12d39e5a4e881fa9b4dad9b6c2b6345ff7b30142cde8f0007011bffffffffffffffff0219ef7f03fda786475ac131cf78b7fe9101f7295a18c61081b6c926f4af8d675f08a6179903eba3fd41271ab809f03852dea6852157868ceb4bb22079e364996673f3b27a9003faee0977bc1accc22b28a3509f77fb0220e77cbd0d443ff9f3f36be8b3a3c77803611bdb168769990e6a2e4e1889adcb70c4d28a2c73b5169f3e7958dda9987dac0219ffff03409e78ba7e81f4127c6dd67e3330900b3f028563e07b8d8ee18ab2a5bc8bf40c0335cf8d9a56821e4619b141150ad85621c3f5f880353196756a98f3298b07ac0803dde9d7af24f45585910b0ac6b5aa3b4b0b37384913e3b547311505a7fb386f0d03df9d96fd79c79b085c4f97dd46b6de5c69befe9b658a84dcebedf3726378807f03de2f4d3e1e146818a74496a6b9540b048ae8c6c4261a346c115d33af370bd1c30386a44c380c3ad28d588b42910edcc81f4d40b868067ffa8dadfa7f4fe1586943038fca6019285f75bc7fc9165bb6d7ad36d1a0a7a205e1dc5156c7078a0f41e834036946a8126a40129fb78e469934cca59ee5d37b7c64a85302c3ab3a4aedbc44ae0329d6fab1012d15bb24a5555f069e02085382deb14536125554b1dd9f4086f57603a447845db4adb215bbf2656b0ad38d85e1601a969d439b1fa58aa2180b910c480389625af592c052f22279c381e86c848d7c01d140630b8b75993d8f721df9afeb0348eb29cb93146910ce540d6ff928903d15d7b8869ba11cec2b74c0f7b355593f0219ffff0342bad1fcae613a291e955552ed9539aea09d81f3e9901861288e9ce75527bb2603857c2a6021e55c3ecb4c845c5903ba32419054f06c4694fefe4664a205292771036777bd6029a018bda01027a141bde1baba29dba20238b1fde1a04e8880071d85036ef67a4f66372aac3a476de2069bbb7850829aa3a2d812fb5e13302d2946278a039d7fdb0124bb89d6beebaf31176b64a2df9c96f567ff631faa23cae07d043a0503d5ba0a7164284ce0a5963833afc5a656bbdf3124c9ba978934234158abfa3c89034134401d55ab8657b70147709d58bc4dec5d6d30f844f20cd9d502bf4a2f2c1403e96d3fb4853cae6a58228a5708bcd15bae76133d44ec8e7e6fb6fb2961582bc503d6d69db198c4a5fafd38400212389e83ebd10f5a36a35441f9aaa4dd59f89529030e57be49466b87cf3023d3c404701ec35e982c749a7cb7bf55074de1455ab33e0219ffff03da0ef15e4512471c1f0fdcb74e7d9b9a698bb99e144b71b185567dc2a7f957d603bceed531e6b5a33bc7c53c38285b9b8c317afae8271d37e1107860a0d72c515e033c598b4cecf12003c4ea9afdbb6705eed722dce2504c008621d4c050586db13903a793f09d5fb1a5e1c386498b7bda5635730b3ca0094b535f2e9f02266906cecc0219ffff03aa4068534a9975b0001257e0c2fe2ca2e53eba1be3da12d88cf10615edb9f6ae03c5ceed00603107d284521b33aa38eb3c489394980d0fc384ba548f703649a737030f8e2be71d55cf8c589850d8f25d231c197013ae2f621946e4a20bc337f87eb403a20d393a73aeb67dfc4e2ca25ce8c8be62bdec853e386d2f7525eb32d694205b03306f1c97c95420b42329ece73ccab2fd2c3479d928501940e8409f80395c6a4c03284b5c9fd1d72bf4174b773178ed79db4ed449d70eb71d2de4f563839dd821f603405aed325812fe2bc24c3e47ca14a7d319c1769b390793229bb38a93a4fb139303e08bf03238889b49310f93c4d13e22e8b73682aaaf04c526026757cddb8b8854034601556a5447c924a262f81737e9c15117285f501b1b9273779436a3703badae039a4179bbe29e2f369c6098389eea51feb2d67e690f08a640c88a6772ff72156303be22092043e37a78b4a51c357f52e884d88cc52a62370264d36ebcde8edc721c03ec26516a63332450b02094c3c4e279061f4201adc00ace0e78c00fdd90c6c0b003796fd38681a7b447bc00119afdd13000da578ded0705a89a93825990f81b7f1803385bc2865ca7f44dfc75c486ed5bf5b41d2eda511dd6aa2e7ced7d23a57afcfc0332b4d3fdae9b84344a2c77aa3b6dc861360b23a696801bc97401e8af2bb37314037fd55291ebb774154090e26401959b68c0433d8f7bdf1378a3de43c4a9ab316c032405b73a1c62569e27ab4e41d010a80ce2b61f272451626ceeec4e141d0c7f2703295516e829ebf52caba115eb6e53e40f6df8a02ef686eb79d82b5b78de8e30d40314adec11d197956d85471be82e2c095eae30857ee8c3dcef2408d94d784e7ddb03c471f07038dd301c473d5ee5d1324df6d0027830de975814b5093c1a3716e4fb037b8e0c012a5453d2b32e2d869693797d89cade5217877342621e5169c64771d903c038c55386a10991979c16e018fb732aab01a537423f7cde0d8c4b9e7005061d0351a3239183ebf3e4ab46ab024b0a4fc033566fd94b60ffbaa3a040eaffbc6ca60317605e3fdf771dc421c06a6f8eceb592313cee228a7571a32aea51db359394a603cd93b56754ae570608a7a06f588543446e1ed1d03a2bc20b09be1234ed40bae00346016c2072b8683afe9451fe3bcb303b452bbe01546de17834cd21d8fc5fc73903f97358a689353db2a7620b5591eafe8a8aad6daf644ae66789ba121237f82d99036760d5ce784641815d6fff4b295fa185ca5702b9d1c756d56201a856499d456c0389e96641270bb073130ad9481cf46984e4c0b1ce7b9f329eae0d326e4fadcd5d030a9adc3a069b99bbd83943047ecb82c024f0cc456c5b375a4949b9455b277e2a03b3ee4a8441e3a19d3cbfd49da7564ff1f65ac9b25aa709f08e412f319916b10c03a1b51e5234a04959ece7e633e22cdea46cc65f7ecec39e2b32f34110b52f672503f1d42b6d50d37380fdc5a2feb712cb3662e6753f1d44e5eb5c7b4885e129235d035d4be196170b6d6e93e586b1322483fd6aa199051f3caefe6286ad839b765d8d03dc1698344d43a078f8c7cf608bc43bece4b14bdefdab26720d9be2c8695c34e703cf6f5ead294971b21efba5ec0a3ba83dd75c95ecdc723b01f288731957b0597e0381b6000b8a2925365cc6abdfaba917d069535ce88e640c6c763e4fdcf9adf92103fc426ee6e4d549dfa3e2779ef8b6808b857685c9dc2362a48427d3d83a8d0ebd0326f0501a42f29dc54bab2a28b97e5849c4678af413783073e0210e7adc328d97035c05f7aa594ed08009309fd37bf845c887421d7190f2c70095db1e7f950ca0f603b8a67e002b1009543282a6873957e04511f15e7a04d58856993fcc3ea7df36ba0373783021d46782d27873bce506133d3c65a0fdf484c29bd5401a57171aaf5e0403fab700bb77e50fb8a1a1b5b4a7cb626d0100850a547890b7d35ec0d3c5c1ee8403bd0872177a6ad38278fe084a7981e082df764d5fb42795dc4c77a5ac91fd888d03716cba084dcc86b1a13f46592666eab24278f4ce27d0841ee2b212b07609d6c703acf7430a0b8bf62413eaab75b9b6b51913756c937a97d5cbf5c5781be31a6698035d8e999755587ba57bc208af260c630b102e1f632a4525e3421f706a7e8a446305581e03b1b7140dbb197082853651d92061cf63c303b1acd46728e8793630cd400c02470231d0daf531e50358804d9c514e43993d72e4214f818817f3bbef070f90be05cf79234cee1908be03f13c458ec229d465ac25b6d138e98144fd1c48060ad94befdafa44cee618ffe105581e03ba8b0a0e5a87d3192df4af87840e26295455ee485895a4376f8370b2d00c02470147de98c1148805581e03760ff0c45616fcb05dc840044f6d9fac63fde0df8adb8d09a898bd50d00c024618261e87300005581e0336a36573829a8662acf38b0361590bb96da31c45b3edd25668dd3bfc70040205581d02af4083cb6c89b82c319d44aeb986481cde9f97dbd7db77e4becac7100c1a00201e8e490673486ce5463a882605581d022b75f0ab8856e4488839d159d1cb5c39391c25f3592cbd2ce04473470c01480163039f4f747b0002190802021945a90219ffff0219ffff03f13562e7e0bbe59fddbc0e4da33f80fde264f8431c92a034cbfec922276f03640339f615147699613099613104e19513af8d22a82fcafea2cfe5ad679c654e50300395d544e841d9c1853813b2911a7686ed227fabb298249f35b7d059f3de53d91203eec2235a910378bce52df73ed9599c4172db21dc5976fa691e2527789871879e0333a53c8dfcfc4e3781d921ce5743823be7a8324a2686b9d940404abd18d0f5c7031259a400f9e5d1bfe3bde08805d72f6a04804516c99f12a47e5d38cab2761bb403faefc54b75086802231233d641b595f841c2d7f622834ec0167a65569e4c2cb003b74f9660ccdd006e8623b80ebf513ade363e0d53176152c4d30f54427597c1fd035a954bda16f1b702e33b8eae4c5edc0754a399abb2c1a664b14113b92621b22e03e21c401fdf3abdfc0aa9a0fac867be5b7cd5dc8b2e801992168a7216af9333b603318fc23b123eb9a14d854158f7637e2899d5ec327f4f273d5d1e404ade0ff02803aab37afa00f2af7dfddf684496253686a5c514c9d02b18a63d1ce3eef2ba2e9303effd551c2b92e8afa2e0f29a9c817954acaefa42e66798d690a4d30913e8f49a031f6381b63464f7ee5605006d0f705722e571caa52a99453a9c42c0c989e09ad50319b2cb9787b2f50184045579c313a0949b909b760631b8ce5dcc23837f3ac2640219ffff03a9a7b7ce6826fc3cde003408d4ab7045219ed26673169eb430944f8759407ea10219ffff038e79b2c9b51b32c2d9441eb8b3071559f9db9540df984f3b4ee9993ecf037fa00302d172152466b7221303140d42525d9fc7dcd8d1ac03046db376839691554a7803d7db83803b68d24466a6447a1e3664cb0116936065a6a43c63471e214fdccf8f0374d242e51bdf0b94949d65c5dbc4282ff9f03380b7c04b0e8c12367abc31f3f503ed849d5813fb6757e352cef092648d5cc178fb74aa991c605eb4dd51c6dce304039b9218ec6bf3fbf023f03fc7521f8219182a472f7c7c0a277ca83e1765bed1ae032b3d83866d66c3aad6a47fe65413c160f9838e838e213b130504a0ce6c09ef2a037ece2ce283163e9950f6f3067ca724030a1e339f746c099e46bdc4a18ce4f69003267f5b02ecb0db4fd706f691266ed53cd83d8e53bd6ef9778535b35303e6475f0361314385ae0af152451f696cc1a77308034635a3bf453eb9972f0f3b5b3843d7034f04ac2d464c3e59f9b8a586d0dc7a5eda6072147c91a13339ccd93af837cdae0219ffff0219ffff" + } + }, + "code_db": null, + "txn_info": [ + { + "traces": { + "0x49f18c6370d3235fcc7cf4fd8167b8ca9bed0af8": { + "balance": "0x26c583e6f4de1f1b", + "nonce": "0x212b" + }, + "0x151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7f": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0xd8a47cc0a98b326a7d41ebdba69f2440a3db7a31c7edca3bc5f01523d2fabe24", + "0x0000000000000000000000000000000000000000000000000000000000000024", + "0x0000000000000000000000000000000000000000000000000000000000000025", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x7b78a71646e33e6e76cabfface36f52", + "0x0000000000000000000000000000000000000000000000000000000000000025": "0x100000000000000000001739d0492174ce5ffd126fffc7f6f9c957365cf6087", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x10000960096001dff4659000000000000000017c861793bcc2ea99728962e" + }, + "code_usage": { + "read": "0x516e38ed2cd77bcb4dfb71f1afe70b0516eeb781a30e5c770fbee39aa6eb809c" + } + }, + "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5": {}, + "0xcc2687c14915fd68226ccf388842515739a739bd": { + "code_usage": { + "read": "0x1b91d26a2eb23313e6e92fcd974f099f3428fd6d6e627d87d108ead574b68cb2" + } + }, + "0xaa6e8127831c9de45ae56bb1b0d4d4da6e5665bd": { + "storage_read": [ + "0xba33e9b8db02508f048aa1db6e9c0afddb03933b0bff1a3c90d6bafefde1d9e3", + "0x584faa44e8bbe81b643316e312b8153135ecec313a641b0e31d013822f728796" + ], + "storage_written": { + "0xba33e9b8db02508f048aa1db6e9c0afddb03933b0bff1a3c90d6bafefde1d9e3": "0x13b3c8f7603c2c2842ae", + "0x584faa44e8bbe81b643316e312b8153135ecec313a641b0e31d013822f728796": "0x237d1cf3f694229042" + }, + "code_usage": { + "read": "0x2105590e28e110e2e156f35dd5f376d12258ae82da2b4edab9b511d0d8bc0619" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "storage_read": [ + "0xc52f396c407e484c805c250341c5b6182c11dea9069b8555d0a5c7093be785b9", + "0xd392e8d1b6835f6ffe48e3fa40f91a25dfa9ff2d64600e2b40173fa9c1d511bf" + ], + "storage_written": { + "0xd392e8d1b6835f6ffe48e3fa40f91a25dfa9ff2d64600e2b40173fa9c1d511bf": "0xde0b6b3a7640000", + "0xc52f396c407e484c805c250341c5b6182c11dea9069b8555d0a5c7093be785b9": "0x1e4537db023b263ffc" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + } + }, + "meta": { + "byte_code": "0x02f902490182212a80850755ff20688301d58394cc2687c14915fd68226ccf388842515739a739bd80b84700000003012597010000000000000de0b6b3a7640000151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7f000000000000004e50ca71278ece8b0000000000237d1cf3f694229041f90195f8dd94151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7ff8c6a00000000000000000000000000000000000000000000000000000000000000002a0d8a47cc0a98b326a7d41ebdba69f2440a3db7a31c7edca3bc5f01523d2fabe24a00000000000000000000000000000000000000000000000000000000000000024a00000000000000000000000000000000000000000000000000000000000000025a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004f85994aa6e8127831c9de45ae56bb1b0d4d4da6e5665bdf842a0ba33e9b8db02508f048aa1db6e9c0afddb03933b0bff1a3c90d6bafefde1d9e3a0584faa44e8bbe81b643316e312b8153135ecec313a641b0e31d013822f728796f85994c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0c52f396c407e484c805c250341c5b6182c11dea9069b8555d0a5c7093be785b9a0d392e8d1b6835f6ffe48e3fa40f91a25dfa9ff2d64600e2b40173fa9c1d511bf80a07c51ef3e703c82bc13da77fdbb8041933823f58c7c87a773ab38a31783148210a053e67561db17a23f5c140fb794c33993ed753d770ccc87b369e8871095166073", + "new_txn_trie_node_byte": "0x02f902490182212a80850755ff20688301d58394cc2687c14915fd68226ccf388842515739a739bd80b84700000003012597010000000000000de0b6b3a7640000151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7f000000000000004e50ca71278ece8b0000000000237d1cf3f694229041f90195f8dd94151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7ff8c6a00000000000000000000000000000000000000000000000000000000000000002a0d8a47cc0a98b326a7d41ebdba69f2440a3db7a31c7edca3bc5f01523d2fabe24a00000000000000000000000000000000000000000000000000000000000000024a00000000000000000000000000000000000000000000000000000000000000025a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004f85994aa6e8127831c9de45ae56bb1b0d4d4da6e5665bdf842a0ba33e9b8db02508f048aa1db6e9c0afddb03933b0bff1a3c90d6bafefde1d9e3a0584faa44e8bbe81b643316e312b8153135ecec313a641b0e31d013822f728796f85994c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0c52f396c407e484c805c250341c5b6182c11dea9069b8555d0a5c7093be785b9a0d392e8d1b6835f6ffe48e3fa40f91a25dfa9ff2d64600e2b40173fa9c1d511bf80a07c51ef3e703c82bc13da77fdbb8041933823f58c7c87a773ab38a31783148210a053e67561db17a23f5c140fb794c33993ed753d770ccc87b369e8871095166073", + "new_receipt_trie_node_byte": "0xb9036802f90364018301821bb9010000004000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000002000000080020000000000000000000000000000000000800000008000000000000000000000000000000000002000000000000200000000000000000002000000000000000000000000030000800000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000080000000000000000000000000000000200000000000008000000001000000000000010000000800000000000000f90259f89b94aa6e8127831c9de45ae56bb1b0d4d4da6e5665bdf863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7fa0000000000000000000000000cc2687c14915fd68226ccf388842515739a739bda00000000000000000000000000000000000000000000000237d1cf3f694229041f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000cc2687c14915fd68226ccf388842515739a739bda0000000000000000000000000151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7fa00000000000000000000000000000000000000000000000004e50ca71278ece8bf9011c94151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7ff863a0c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67a0000000000000000000000000cc2687c14915fd68226ccf388842515739a739bda0000000000000000000000000cc2687c14915fd68226ccf388842515739a739bdb8a0ffffffffffffffffffffffffffffffffffffffffffffffdc82e30c096bdd6fbf0000000000000000000000000000000000000000000000004e50ca71278ece8b000000000000000000000000000000000000000017c861793bcc2ea99728962e00000000000000000000000000000000000000000000030c7ac73fb9897ea01cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4659", + "gas_used": 98843 + } + }, + { + "traces": { + "0xaa6e8127831c9de45ae56bb1b0d4d4da6e5665bd": { + "storage_read": [ + "0xba33e9b8db02508f048aa1db6e9c0afddb03933b0bff1a3c90d6bafefde1d9e3", + "0x6ef6c7e8f399cb2db0fa4c873fe572abbdc53d164ebe80278a1312f736e51a4a" + ], + "storage_written": { + "0x6ef6c7e8f399cb2db0fa4c873fe572abbdc53d164ebe80278a1312f736e51a4a": "0x1847fd3a07c9358c1ba", + "0xba33e9b8db02508f048aa1db6e9c0afddb03933b0bff1a3c90d6bafefde1d9e3": "0x137d0a7e86ce5fac6073" + }, + "code_usage": { + "read": "0x2105590e28e110e2e156f35dd5f376d12258ae82da2b4edab9b511d0d8bc0619" + } + }, + "0x1ab65eca96d51ad4d85a40c99cc6455f1af824e8": { + "balance": "0x1c70678d5ffc4c910", + "nonce": "0xd6" + }, + "0x151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7f": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0xd8a47cc0a98b326a7d41ebdba69f2440a3db7a31c7edca3bc5f01523d2fabe24", + "0x0000000000000000000000000000000000000000000000000000000000000025" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x7b7a93446ad53016a972250fbc581c1", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x10000960096001dff46dc000000000000000017f050779bbd8f69ddf2d9bb" + }, + "code_usage": { + "read": "0x516e38ed2cd77bcb4dfb71f1afe70b0516eeb781a30e5c770fbee39aa6eb809c" + } + }, + "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5": { + "balance": "0x9d98cc7f7141e349" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298720c707984aa2acb40", + "storage_read": [ + "0x73d637d229721ca538a0a2e9712eeef46a1889496c0a60f402b430eba28d4a2e", + "0xc52f396c407e484c805c250341c5b6182c11dea9069b8555d0a5c7093be785b9" + ], + "storage_written": { + "0xc52f396c407e484c805c250341c5b6182c11dea9069b8555d0a5c7093be785b9": "0x1ebf54f992aa1b625c", + "0x73d637d229721ca538a0a2e9712eeef46a1889496c0a60f402b430eba28d4a2e": "0x1" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xdef1c0ded9bec7f1a1670819833240f027b25eff": { + "storage_read": [ + "0xfafa9e60b7fc3a82d6372f25242b5c1bd30e3927bfa454fa7233ccc186ec39fb", + "0x4a432555e3fde060855a28d4d0b3bf599bbd04b75121e1e4d841e85fbc68da12" + ], + "code_usage": { + "read": "0xade271f13b55729be286859c01c54fcb04c2dde098fc3bc9901c35927ece786e" + } + }, + "0x0e992c001e375785846eeb9cd69411b53f30f24b": { + "code_usage": { + "read": "0x5908b6ce9a77484c886ffc5f0635b2eca3327bdc7cc0be118d346f86250745f6" + } + } + }, + "meta": { + "byte_code": "0x02f9017e0181d5830f424085083c3424c88302391094def1c0ded9bec7f1a1670819833240f027b25eff887a1d1e906ef52260b901083598d8ab0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000036a76847622771e5300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000bb8aa6e8127831c9de45ae56bb1b0d4d4da6e5665bd000000000000000000000000000000000000000000869584cd000000000000000000000000382ffce2287252f930e1c8dc9328dac5bf282ba1000000000000000000000000000000008357255014e1179f2b6959f49011226dc001a0d841a022ae900922b65814179dfec5760f57a4db627e00dbf851afac2bb6a4bba02862ab8cafec6edcaf55a04eb96b89f2ad43de423fc3b8481888fbcb2b00df6c", + "new_txn_trie_node_byte": "0x02f9017e0181d5830f424085083c3424c88302391094def1c0ded9bec7f1a1670819833240f027b25eff887a1d1e906ef52260b901083598d8ab0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000036a76847622771e5300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000bb8aa6e8127831c9de45ae56bb1b0d4d4da6e5665bd000000000000000000000000000000000000000000869584cd000000000000000000000000382ffce2287252f930e1c8dc9328dac5bf282ba1000000000000000000000000000000008357255014e1179f2b6959f49011226dc001a0d841a022ae900922b65814179dfec5760f57a4db627e00dbf851afac2bb6a4bba02862ab8cafec6edcaf55a04eb96b89f2ad43de423fc3b8481888fbcb2b00df6c", + "new_receipt_trie_node_byte": "0xb903e402f903e00183033a08b9010000004000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000002000800080020000000000000000000000000000000002800000008000000000000000000000000000000008002000000000000200000000000000000002040000000000000000000000010000800000000000000000000000000000000000000000001000010000000000000000000000000000000000000004000000000000000000000000000000000000000000000000002000000000000000000000000000080000000000000040000000000000000200000000000008000000000000000000000010000400800000000000000f902d5f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa00000000000000000000000000000000000000000000000007a1d1e906ef52260f89b94aa6e8127831c9de45ae56bb1b0d4d4da6e5665bdf863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7fa00000000000000000000000001ab65eca96d51ad4d85a40c99cc6455f1af824e8a0000000000000000000000000000000000000000000000036be78d96dcc7be23bf89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa0000000000000000000000000151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7fa00000000000000000000000000000000000000000000000007a1d1e906ef52260f9011c94151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7ff863a0c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67a0000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effa00000000000000000000000001ab65eca96d51ad4d85a40c99cc6455f1af824e8b8a0ffffffffffffffffffffffffffffffffffffffffffffffc94187269233841dc50000000000000000000000000000000000000000000000007a1d1e906ef52260000000000000000000000000000000000000000017f050779bbd8f69ddf2d9bb00000000000000000000000000000000000000000000030c7ac73fb9897ea01cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff46dc", + "gas_used": 112621 + } + }, + { + "traces": { + "0xcc2687c14915fd68226ccf388842515739a739bd": { + "code_usage": { + "read": "0x1b91d26a2eb23313e6e92fcd974f099f3428fd6d6e627d87d108ead574b68cb2" + } + }, + "0x151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7f": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000025", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xd8a47cc0a98b326a7d41ebdba69f2440a3db7a31c7edca3bc5f01523d2fabe24" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x10000960096001dff4687000000000000000017d671dc8cef8aa73e4b270d", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x2168dd6f5ffee15918b6413c2f7d03e84" + }, + "code_usage": { + "read": "0x516e38ed2cd77bcb4dfb71f1afe70b0516eeb781a30e5c770fbee39aa6eb809c" + } + }, + "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5": { + "balance": "0x9e0ebbcf9956335c" + }, + "0xaa6e8127831c9de45ae56bb1b0d4d4da6e5665bd": { + "storage_read": [ + "0xba33e9b8db02508f048aa1db6e9c0afddb03933b0bff1a3c90d6bafefde1d9e3", + "0x584faa44e8bbe81b643316e312b8153135ecec313a641b0e31d013822f728796" + ], + "storage_written": { + "0x584faa44e8bbe81b643316e312b8153135ecec313a641b0e31d013822f728796": "0x1", + "0xba33e9b8db02508f048aa1db6e9c0afddb03933b0bff1a3c90d6bafefde1d9e3": "0x13a0879b7ac4f3cef0b4" + }, + "code_usage": { + "read": "0x2105590e28e110e2e156f35dd5f376d12258ae82da2b4edab9b511d0d8bc0619" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "storage_read": [ + "0xc52f396c407e484c805c250341c5b6182c11dea9069b8555d0a5c7093be785b9", + "0xd392e8d1b6835f6ffe48e3fa40f91a25dfa9ff2d64600e2b40173fa9c1d511bf" + ], + "storage_written": { + "0xd392e8d1b6835f6ffe48e3fa40f91a25dfa9ff2d64600e2b40173fa9c1d511bf": "0x5cbf5f5d23391d08", + "0xc52f396c407e484c805c250341c5b6182c11dea9069b8555d0a5c7093be785b9": "0x1e707650e92e464554" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x49f18c6370d3235fcc7cf4fd8167b8ca9bed0af8": { + "balance": "0x264431b497d56348", + "nonce": "0x212c" + } + }, + "meta": { + "byte_code": "0x02f902420182212b80850755ff20688301e05c94cc2687c14915fd68226ccf388842515739a739bd8775ef5028145013b85a00000004012597010000000000005cbf5f5d23391d08151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7faa6e8127831c9de45ae56bb1b0d4d4da6e5665bd0000000000237d1cf3f6942290410000000000004edea8a97bd51d08f90174f85994aa6e8127831c9de45ae56bb1b0d4d4da6e5665bdf842a0ba33e9b8db02508f048aa1db6e9c0afddb03933b0bff1a3c90d6bafefde1d9e3a0584faa44e8bbe81b643316e312b8153135ecec313a641b0e31d013822f728796f8bc94151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7ff8a5a00000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000001a0d8a47cc0a98b326a7d41ebdba69f2440a3db7a31c7edca3bc5f01523d2fabe24a00000000000000000000000000000000000000000000000000000000000000025a00000000000000000000000000000000000000000000000000000000000000000f85994c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0c52f396c407e484c805c250341c5b6182c11dea9069b8555d0a5c7093be785b9a0d392e8d1b6835f6ffe48e3fa40f91a25dfa9ff2d64600e2b40173fa9c1d511bf01a0b105c5752acf92923d7016e2edea7053d1ce73c43191ff51fe2da8bf6b27e37ea063a3408a605e3437ac6ce296063f7a7caa8e85298b80f942ee44b2dc64c8b6dc", + "new_txn_trie_node_byte": "0x02f902420182212b80850755ff20688301e05c94cc2687c14915fd68226ccf388842515739a739bd8775ef5028145013b85a00000004012597010000000000005cbf5f5d23391d08151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7faa6e8127831c9de45ae56bb1b0d4d4da6e5665bd0000000000237d1cf3f6942290410000000000004edea8a97bd51d08f90174f85994aa6e8127831c9de45ae56bb1b0d4d4da6e5665bdf842a0ba33e9b8db02508f048aa1db6e9c0afddb03933b0bff1a3c90d6bafefde1d9e3a0584faa44e8bbe81b643316e312b8153135ecec313a641b0e31d013822f728796f8bc94151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7ff8a5a00000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000001a0d8a47cc0a98b326a7d41ebdba69f2440a3db7a31c7edca3bc5f01523d2fabe24a00000000000000000000000000000000000000000000000000000000000000025a00000000000000000000000000000000000000000000000000000000000000000f85994c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0c52f396c407e484c805c250341c5b6182c11dea9069b8555d0a5c7093be785b9a0d392e8d1b6835f6ffe48e3fa40f91a25dfa9ff2d64600e2b40173fa9c1d511bf01a0b105c5752acf92923d7016e2edea7053d1ce73c43191ff51fe2da8bf6b27e37ea063a3408a605e3437ac6ce296063f7a7caa8e85298b80f942ee44b2dc64c8b6dc", + "new_receipt_trie_node_byte": "0xb9036802f90364018304c760b9010000004000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000002000000080020000000000000000000000000000000000800000008000000000000000000000000000000000002000000000000200000000000000000002000000000000000000000000030000800000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000080000000000000000000000000000000200000000000008000000001000000000000010000000800000000000000f90259f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7fa0000000000000000000000000cc2687c14915fd68226ccf388842515739a739bda00000000000000000000000000000000000000000000000004edea8a97bd51d08f89b94aa6e8127831c9de45ae56bb1b0d4d4da6e5665bdf863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000cc2687c14915fd68226ccf388842515739a739bda0000000000000000000000000151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7fa00000000000000000000000000000000000000000000000237d1cf3f694229041f9011c94151ccb92bc1ed5c6d0f9adb5cec4763ceb66ac7ff863a0c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67a0000000000000000000000000cc2687c14915fd68226ccf388842515739a739bda0000000000000000000000000cc2687c14915fd68226ccf388842515739a739bdb8a00000000000000000000000000000000000000000000000237d1cf3f694229041ffffffffffffffffffffffffffffffffffffffffffffffffb1215756842ae2f8000000000000000000000000000000000000000017d671dc8cef8aa73e4b270d00000000000000000000000000000000000000000000030c7ac73fb9897ea01cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4687", + "gas_used": 101720 + } + }, + { + "traces": { + "0xdbcc1787b02c39aa56f0f5365125933c08feeab0": { + "balance": "0x3137bee91a03b6b", + "nonce": "0x41" + }, + "0xf3de3c0d654fda23dad170f0f320a92172509127": { + "code_usage": { + "read": "0xe5b4a5c24225a0ec7687716ddb6728a7321fa50d7362c3a5acfe55e57b4b9564" + } + }, + "0x40aa958dd87fc8305b97f2ba922cddca374bcd7f": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000065" + ], + "code_usage": { + "read": "0xe8711c5f0fe7f3c28078140bb97b65aa015a58c06c14bad5abffa44f00f1ddf5" + } + }, + "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5": { + "balance": "0x9e0ef35ce50a235c" + }, + "0x6d7497751656618fc38cfb5478994a20f7e235df": { + "storage_read": [ + "0x2eb9e60c490d317d2a6384dacbf41a70692f1a2d46266ce32c5d6c8f769d10a6", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x72c80b5bc80df91afd56c3a951a32283559e7f7eb045d83c91efeee0d02c38fc", + "0xdb111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897" + ], + "storage_written": { + "0x72c80b5bc80df91afd56c3a951a32283559e7f7eb045d83c91efeee0d02c38fc": "0x0", + "0xdb111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897": "0x1840a21798d4d5c12f8752314" + }, + "code_usage": { + "read": "0x4123f56d86f276e684177a9b98a18f2f9d66d40208c423fe55b0e5c8f9d53abd" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x2987209d3089f85f9af1a", + "storage_read": [ + "0xed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285c", + "0xa78c3571170f7dcd4a9be5fc007f2e41d0568b2d304d741c66b27ec22dd33cfe" + ], + "storage_written": { + "0xed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285c": "0x7d09f651ddc19d199", + "0xa78c3571170f7dcd4a9be5fc007f2e41d0568b2d304d741c66b27ec22dd33cfe": "0x1" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xd420d5f24225702a68ddf21242d5eef816dc2e6d": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000006" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf6087000000000007d09f651ddc19d1990001840a21798d4d5c12f8752314", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x1f3f8b4dab18b3280d3d842c2ce83b6bf72cd4cac", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x1eef95b899058844625cad5354", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x70cbb871e8f30fc8ce23609e9e0ea87b6b222f58": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000066", + "0xfca24f26881178fbb721486fd81006a8a2f47f9f9479f3a10e978c0ededf333a" + ], + "code_usage": { + "read": "0xb6a0916f3f4f33110bd1c57652c6e21f4beb32ffcfb50124f8b51cb5cee61f04" + } + } + }, + "meta": { + "byte_code": "0x02f901310140841dcd650085084cf716c08303910094f3de3c0d654fda23dad170f0f320a9217250912780b8c49871efa40000000000000000000000006d7497751656618fc38cfb5478994a20f7e235df000000000000000000000000000000000000000000821087388b0f2a4f45ccb40000000000000000000000000000000000000000000000000273aa821f0256880000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000170000000000000003b6d0340d420d5f24225702a68ddf21242d5eef816dc2e6dc001a06863a39687e4a7ece96ca402bdd324ac2c2a7ee422887fcbd1923642eac5457ea07008839de0dd17b4e1296982b88325ed658f439a519998e67671f3b5db141d63", + "new_txn_trie_node_byte": "0x02f901310140841dcd650085084cf716c08303910094f3de3c0d654fda23dad170f0f320a9217250912780b8c49871efa40000000000000000000000006d7497751656618fc38cfb5478994a20f7e235df000000000000000000000000000000000000000000821087388b0f2a4f45ccb40000000000000000000000000000000000000000000000000273aa821f0256880000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000170000000000000003b6d0340d420d5f24225702a68ddf21242d5eef816dc2e6dc001a06863a39687e4a7ece96ca402bdd324ac2c2a7ee422887fcbd1923642eac5457ea07008839de0dd17b4e1296982b88325ed658f439a519998e67671f3b5db141d63", + "new_receipt_trie_node_byte": "0xb9057302f9056f018306a490b9010000200000000000000000000080000000100000000000000000000000000000000000000000000000020000000000000002008000080000000000000020000000000000000000000100000008800000200080000000400000000000000000000000000000000000000008000000000000000000000000040000000010000000000000000000000000000020000200000080000000000000080000004000000000000000001000000000000040080000000001000000000000000000000000000000000002000000000000000000010000000000020000009040000002000000000100200000000000022000000000000000000000000000000000000000000020f90464f85894f3de3c0d654fda23dad170f0f320a92172509127e1a07724394874fdd8ad13292ec739b441f85c6559f10dc4141b8d4c0fa4cbf55bdba00000000000000000000000000000000000000000000000000000000000000000f89b946d7497751656618fc38cfb5478994a20f7e235dff863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000dbcc1787b02c39aa56f0f5365125933c08feeab0a0000000000000000000000000d420d5f24225702a68ddf21242d5eef816dc2e6da0000000000000000000000000000000000000000000821087388b0f2a4f45ccb4f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000d420d5f24225702a68ddf21242d5eef816dc2e6da0000000000000000000000000f3de3c0d654fda23dad170f0f320a92172509127a0000000000000000000000000000000000000000000000000029d70e524311c26f87994d420d5f24225702a68ddf21242d5eef816dc2e6de1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000001840a21798d4d5c12f8752314000000000000000000000000000000000000000000000007d09f651ddc19d199f8fc94d420d5f24225702a68ddf21242d5eef816dc2e6df863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a0000000000000000000000000f3de3c0d654fda23dad170f0f320a92172509127a0000000000000000000000000f3de3c0d654fda23dad170f0f320a92172509127b880000000000000000000000000000000000000000000821087388b0f2a4f45ccb400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029d70e524311c26f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65a0000000000000000000000000f3de3c0d654fda23dad170f0f320a92172509127a0000000000000000000000000000000000000000000000000029d70e524311c26f8d994f3de3c0d654fda23dad170f0f320a92172509127e1a01bb43f2da90e35f7b0cf38521ca95a49e68eb42fac49924930a5bd73cdf7576cb8a00000000000000000000000006d7497751656618fc38cfb5478994a20f7e235df0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dbcc1787b02c39aa56f0f5365125933c08feeab0000000000000000000000000000000000000000000821087388b0f2a4f45ccb4000000000000000000000000000000000000000000000000029d70e524311c26", + "gas_used": 122160 + } + }, + { + "traces": { + "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5": {}, + "0x6d7497751656618fc38cfb5478994a20f7e235df": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0xdb111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897", + "0xb39e9ba92c3c47c76d4f70e3bc9c3270ab78d2592718d377c8f5433a34d3470a" + ], + "storage_written": { + "0xdb111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897": "0x1829b4c8b8d4d5c12f8752314", + "0xb39e9ba92c3c47c76d4f70e3bc9c3270ab78d2592718d377c8f5433a34d3470a": "0x1554873fffc3522bbf655de0" + }, + "code_usage": { + "read": "0x4123f56d86f276e684177a9b98a18f2f9d66d40208c423fe55b0e5c8f9d53abd" + } + }, + "0x6b75d8af000000e20b7a7ddf000ba900b4009a80": { + "balance": "0x153a4d0bb8a49", + "code_usage": { + "read": "0x213c3f38a90242ff53461e679cef9a1bbbae20e63de087cdbc972d813c857711" + } + }, + "0xdc900845732a53ee8df737efa282a6bc56976e62": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x2bc82346b12aee24647cdf327df00ffc9eea257ff0", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf608700000000000943a14c374712a218000000000001a06b4c3d0c4e80bb", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x2ef738cbf909b92548d6879e3bb43dd8dab50249c", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0xd420d5f24225702a68ddf21242d5eef816dc2e6d": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000006" + ], + "storage_written": { + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf6087000000000007d80f65efdd19d1990001829b4c8b8d4d5c12f8752314" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "storage_read": [ + "0x12231cd4c753cb5530a43a74c45106c24765e6f81dc8927d4f4be7e53315d5a8", + "0xed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285c", + "0xc4b5945b3d588809025580057cbcadbb58fc33740a13703202de569e28ad94f8" + ], + "storage_written": { + "0xc4b5945b3d588809025580057cbcadbb58fc33740a13703202de569e28ad94f8": "0x943a14c374712a218", + "0xed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285c": "0x7d80f65efdd19d199", + "0x12231cd4c753cb5530a43a74c45106c24765e6f81dc8927d4f4be7e53315d5a8": "0x1e2827b20fdf1f6807" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x9e9fbde7c7a83c43913bddc8779158f1368f0413": { + "storage_read": [ + "0x6e6081c5b55abcaa3c6e2e8a592b973640109071879cd803b85d3d706ee3969c", + "0xab2e97a75db32eb3b19136ac5fcb6d7a64d182e81eb81decf514e3d877434a50", + "0x5026556a9e91dc9bba9215081252f333fe1d44bf12f6b47633a8259ffde03acb", + "0xa34640eb1c607d836ceb4af07c59befcec4cdb4943351c3a245f8712063aa3b6" + ], + "storage_written": { + "0x6e6081c5b55abcaa3c6e2e8a592b973640109071879cd803b85d3d706ee3969c": "0x1a06b4c3d0c4e80bb", + "0xab2e97a75db32eb3b19136ac5fcb6d7a64d182e81eb81decf514e3d877434a50": "0x5aeaca7bfd930dd" + }, + "code_usage": { + "read": "0xde2d3cb78918547c06e2d4f09804da99d8ee9dbfecc4c8023b7ccecfe92a829b" + } + }, + "0xae2fc483527b8ef99eb5d9b44875f005ba1fae13": { + "balance": "0x67338c630eb425445", + "nonce": "0x201e8f" + } + }, + "meta": { + "byte_code": "0x02f903be0183201e8e80850755ff206883030c3e946b75d8af000000e20b7a7ddf000ba900b4009a8085077000d201b83a0918d420d5f24225702a68ddf21242d5eef816dc2e6d016ed4ee0b1cdc900845732a53ee8df737efa282a6bc56976e62010b06ca5c05f18c6f06f90311f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a012231cd4c753cb5530a43a74c45106c24765e6f81dc8927d4f4be7e53315d5a8a0ed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285ca0c4b5945b3d588809025580057cbcadbb58fc33740a13703202de569e28ad94f8f89b94d420d5f24225702a68ddf21242d5eef816dc2e6df884a00000000000000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000008a00000000000000000000000000000000000000000000000000000000000000006f87a946d7497751656618fc38cfb5478994a20f7e235dff863a00000000000000000000000000000000000000000000000000000000000000005a0db111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897a0b39e9ba92c3c47c76d4f70e3bc9c3270ab78d2592718d377c8f5433a34d3470af8dd94dc900845732a53ee8df737efa282a6bc56976e62f8c6a00000000000000000000000000000000000000000000000000000000000000008a00000000000000000000000000000000000000000000000000000000000000006a00000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000009a0000000000000000000000000000000000000000000000000000000000000000aa0000000000000000000000000000000000000000000000000000000000000000cf89b949e9fbde7c7a83c43913bddc8779158f1368f0413f884a06e6081c5b55abcaa3c6e2e8a592b973640109071879cd803b85d3d706ee3969ca0ab2e97a75db32eb3b19136ac5fcb6d7a64d182e81eb81decf514e3d877434a50a05026556a9e91dc9bba9215081252f333fe1d44bf12f6b47633a8259ffde03acba0a34640eb1c607d836ceb4af07c59befcec4cdb4943351c3a245f8712063aa3b601a0b48222e32e8cc2cc6a762704fbeebd29ad70e1d3fae2f6d03f3cbbd8fb7e36e3a07fcc102dc9a7cb2fa7d608696e7b2bf8760abe7efc62bfdd59a355140f512741", + "new_txn_trie_node_byte": "0x02f903be0183201e8e80850755ff206883030c3e946b75d8af000000e20b7a7ddf000ba900b4009a8085077000d201b83a0918d420d5f24225702a68ddf21242d5eef816dc2e6d016ed4ee0b1cdc900845732a53ee8df737efa282a6bc56976e62010b06ca5c05f18c6f06f90311f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a012231cd4c753cb5530a43a74c45106c24765e6f81dc8927d4f4be7e53315d5a8a0ed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285ca0c4b5945b3d588809025580057cbcadbb58fc33740a13703202de569e28ad94f8f89b94d420d5f24225702a68ddf21242d5eef816dc2e6df884a00000000000000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000008a00000000000000000000000000000000000000000000000000000000000000006f87a946d7497751656618fc38cfb5478994a20f7e235dff863a00000000000000000000000000000000000000000000000000000000000000005a0db111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897a0b39e9ba92c3c47c76d4f70e3bc9c3270ab78d2592718d377c8f5433a34d3470af8dd94dc900845732a53ee8df737efa282a6bc56976e62f8c6a00000000000000000000000000000000000000000000000000000000000000008a00000000000000000000000000000000000000000000000000000000000000006a00000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000009a0000000000000000000000000000000000000000000000000000000000000000aa0000000000000000000000000000000000000000000000000000000000000000cf89b949e9fbde7c7a83c43913bddc8779158f1368f0413f884a06e6081c5b55abcaa3c6e2e8a592b973640109071879cd803b85d3d706ee3969ca0ab2e97a75db32eb3b19136ac5fcb6d7a64d182e81eb81decf514e3d877434a50a05026556a9e91dc9bba9215081252f333fe1d44bf12f6b47633a8259ffde03acba0a34640eb1c607d836ceb4af07c59befcec4cdb4943351c3a245f8712063aa3b601a0b48222e32e8cc2cc6a762704fbeebd29ad70e1d3fae2f6d03f3cbbd8fb7e36e3a07fcc102dc9a7cb2fa7d608696e7b2bf8760abe7efc62bfdd59a355140f512741", + "new_receipt_trie_node_byte": "0xb9067502f90671018308c6bcb9010000200000000000000008000080000000000000000000002000000000000000000000008000000020000000000080000002000000080000000000000020000000000000000000000000000008000000200080000000000000000040100000000000000020000000000000000000000000000000000000000080000110000000000000000000000000000020000200000000000000000000080000004000000000000000001000000000000000000000000000000000000000000000010040000000000002000000000000000000000000000000400000201000000000000000000100200000000000022000020000000000000000000000000000000000000020f90566f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80a0000000000000000000000000d420d5f24225702a68ddf21242d5eef816dc2e6da0000000000000000000000000000000000000000000000000077000d201000000f89b946d7497751656618fc38cfb5478994a20f7e235dff863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000d420d5f24225702a68ddf21242d5eef816dc2e6da00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80a00000000000000000000000000000000000000000016ed4ee0000000000000000f87994d420d5f24225702a68ddf21242d5eef816dc2e6de1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000001829b4c8b8d4d5c12f8752314000000000000000000000000000000000000000000000007d80f65efdd19d199f8fc94d420d5f24225702a68ddf21242d5eef816dc2e6df863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80a00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80b8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077000d2010000000000000000000000000000000000000000000000016ed4ee00000000000000000000000000000000000000000000000000000000000000000000000000000000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80a0000000000000000000000000dc900845732a53ee8df737efa282a6bc56976e62a000000000000000000000000000000000000000000000000005f18c6f00000000f89b949e9fbde7c7a83c43913bddc8779158f1368f0413f863a0e59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e031487a0000000000000000000000000dc900845732a53ee8df737efa282a6bc56976e62a00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80a0000000000000000000000000000000000000000000000000010b06ca00000000f87994dc900845732a53ee8df737efa282a6bc56976e62e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b840000000000000000000000000000000000000000000000001a06b4c3d0c4e80bb00000000000000000000000000000000000000000000000943a14c374712a218f8fc94dc900845732a53ee8df737efa282a6bc56976e62f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80a00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80b880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005f18c6f00000000000000000000000000000000000000000000000000000000010b06ca000000000000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 139820 + } + }, + { + "traces": { + "0xd420d5f24225702a68ddf21242d5eef816dc2e6d": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf6087000000000007e214465736aa6691000180b16886732f5b2b7244d35e", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0xebe6ef3a90f3219764c80ad4ed14c5d55fc0f7ed": { + "balance": "0xaacdccf86fb814", + "nonce": "0x26" + }, + "0x6d7497751656618fc38cfb5478994a20f7e235df": { + "storage_read": [ + "0x1bd9b9754ce474ec09aee3e6d6cc57e37d6bee4279bea3ecb0c393a9fbd783e8", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0xdb111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897" + ], + "storage_written": { + "0x1bd9b9754ce474ec09aee3e6d6cc57e37d6bee4279bea3ecb0c393a9fbd783e8": "0x9fdd79ca9a7417fca304fb6", + "0xdb111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897": "0x180b16886732f5b2b7244d35e" + }, + "code_usage": { + "read": "0x4123f56d86f276e684177a9b98a18f2f9d66d40208c423fe55b0e5c8f9d53abd" + } + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5": { + "balance": "0x9e0ef37450502d5c" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x2987213d7e906df8a4412", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0xed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285c" + ], + "storage_written": { + "0xed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285c": "0x7e214465736aa6691", + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + } + }, + "meta": { + "byte_code": "0x02f902f90125830f42408507a19bfef983025906943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad880a04e067599094f8b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf62bb00000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000a04e067599094f8000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000a04e067599094f8000000000000000000000000000000000000000001e9e3fee017a9c00d7d992000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000006d7497751656618fc38cfb5478994a20f7e235dfc001a0a7d3c4fa4d22844eef8509336c17265312ca81f3d2e04fe6ac1a36de9a9553c6a01dbe233b219a43644e29c3f467487ac529fb475fcf08c4865b6f98207347999e", + "new_txn_trie_node_byte": "0x02f902f90125830f42408507a19bfef983025906943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad880a04e067599094f8b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf62bb00000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000a04e067599094f8000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000a04e067599094f8000000000000000000000000000000000000000001e9e3fee017a9c00d7d992000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000006d7497751656618fc38cfb5478994a20f7e235dfc001a0a7d3c4fa4d22844eef8509336c17265312ca81f3d2e04fe6ac1a36de9a9553c6a01dbe233b219a43644e29c3f467487ac529fb475fcf08c4865b6f98207347999e", + "new_receipt_trie_node_byte": "0xb9043e02f9043a01830a4fa4b9010000200000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000002000000080000000000000020000000000000080000000000000008000000200080800000000000000000008020000000000000000000000000000000000000000000000000000000000010000000000000000000000000000020000200000000000001000000080000004000080000000000001000000000000000000000000000000000040000000000000000000000000002000000000000000000000000000000000000001000000000000000000100200000000000022000000000000000001000000000400000000000000020f9032ff87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000000000000000000000000000000a04e067599094f8f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000d420d5f24225702a68ddf21242d5eef816dc2e6da00000000000000000000000000000000000000000000000000a04e067599094f8f89b946d7497751656618fc38cfb5478994a20f7e235dff863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000d420d5f24225702a68ddf21242d5eef816dc2e6da0000000000000000000000000ebe6ef3a90f3219764c80ad4ed14c5d55fc0f7eda0000000000000000000000000000000000000000001e9e4051a1e00e786304fb6f87994d420d5f24225702a68ddf21242d5eef816dc2e6de1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b840000000000000000000000000000000000000000180b16886732f5b2b7244d35e000000000000000000000000000000000000000000000007e214465736aa6691f8fc94d420d5f24225702a68ddf21242d5eef816dc2e6df863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000ebe6ef3a90f3219764c80ad4ed14c5d55fc0f7edb88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a04e067599094f8000000000000000000000000000000000000000001e9e4051a1e00e786304fb60000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 100584 + } + }, + { + "traces": { + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0x6d7497751656618fc38cfb5478994a20f7e235df": { + "storage_read": [ + "0x7c44a045784228dd49bfe46362ff42dc299b3ecd9d8e17fe35caec0494fff806", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0xdb111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897" + ], + "storage_written": { + "0x7c44a045784228dd49bfe46362ff42dc299b3ecd9d8e17fe35caec0494fff806": "0x150722519ffe5a962caf11c", + "0xdb111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897": "0x17f60f661592f75820f79e242" + }, + "code_usage": { + "read": "0x4123f56d86f276e684177a9b98a18f2f9d66d40208c423fe55b0e5c8f9d53abd" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298721ac84460b33c4412", + "storage_read": [ + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0xed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285c" + ], + "storage_written": { + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0", + "0xed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285c": "0x7e904a1b10a5c6691" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xd420d5f24225702a68ddf21242d5eef816dc2e6d": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf6087000000000007e904a1b10a5c669100017f60f661592f75820f79e242", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0xe36c5bd8f0b71155a26bec6bb103797e67b28df0": { + "balance": "0x389313b0ead419f6", + "nonce": "0x1a" + }, + "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5": { + "balance": "0x9e0ef4912e569c84" + } + }, + "meta": { + "byte_code": "0x02f902f90119839f2e54850a83ee7e738302aa0a943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad8806f05b59d3b20000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf62d300000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000006f05b59d3b200000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000006f05b59d3b200000000000000000000000000000000000000000000014ebc6f42105214e1f88fbc00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000006d7497751656618fc38cfb5478994a20f7e235dfc080a0220d39417b91ac5956b93280fa407e6f1ac3065e02b7abb24c3ede578724c097a07f5afa6d389eb30a95511c3eb34720c858741653c7bc8f71d48efdefdc004946", + "new_txn_trie_node_byte": "0x02f902f90119839f2e54850a83ee7e738302aa0a943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad8806f05b59d3b20000b902843593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf62d300000000000000000000000000000000000000000000000000000000000000020b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000006f05b59d3b200000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000006f05b59d3b200000000000000000000000000000000000000000000014ebc6f42105214e1f88fbc00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000006d7497751656618fc38cfb5478994a20f7e235dfc080a0220d39417b91ac5956b93280fa407e6f1ac3065e02b7abb24c3ede578724c097a07f5afa6d389eb30a95511c3eb34720c858741653c7bc8f71d48efdefdc004946", + "new_receipt_trie_node_byte": "0xb9043e02f9043a01830c19c6b90100002000000000000000000000800000000000000000000000000000020000000000000000000000000000000000000000020000000800000000000000200000000000000800000000000000080000002000800000000000000000000080200000000000000000000000000000000000000000000000000000000000100000000000000000000000000000200002000000000002010000000800000040000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000010000000000000000001002000000000000220000000000000000010000000004000000000000000a0f9032ff87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada000000000000000000000000000000000000000000000000006f05b59d3b20000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000d420d5f24225702a68ddf21242d5eef816dc2e6da000000000000000000000000000000000000000000000000006f05b59d3b20000f89b946d7497751656618fc38cfb5478994a20f7e235dff863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000d420d5f24225702a68ddf21242d5eef816dc2e6da0000000000000000000000000e36c5bd8f0b71155a26bec6bb103797e67b28df0a000000000000000000000000000000000000000000150722519ffe5a962caf11cf87994d420d5f24225702a68ddf21242d5eef816dc2e6de1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b84000000000000000000000000000000000000000017f60f661592f75820f79e242000000000000000000000000000000000000000000000007e904a1b10a5c6691f8fc94d420d5f24225702a68ddf21242d5eef816dc2e6df863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000e36c5bd8f0b71155a26bec6bb103797e67b28df0b880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f05b59d3b2000000000000000000000000000000000000000000000150722519ffe5a962caf11c0000000000000000000000000000000000000000000000000000000000000000", + "gas_used": 117282 + } + }, + { + "traces": { + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x2987274fce7f073464412", + "storage_read": [ + "0xfa6504e3ecae9cba67ae6b5b6e806a51a8edcbb5a1e390b371e2de4942e15e5c", + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a", + "0xc4b5945b3d588809025580057cbcadbb58fc33740a13703202de569e28ad94f8" + ], + "storage_written": { + "0xfa6504e3ecae9cba67ae6b5b6e806a51a8edcbb5a1e390b371e2de4942e15e5c": "0x10efca6d71a9428e0fa", + "0xc4b5945b3d588809025580057cbcadbb58fc33740a13703202de569e28ad94f8": "0x95a2e751b37152218", + "0xe03178286da22a27dd0b1f68fb538cd07bc9080172ee9a5a2238416fe86db02a": "0x0" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x1df4c6e36d61416813b42fe32724ef11e363eddc": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x1000001b00000000000002040fa732129f4495d38000003b3168b2065cf6087", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x687f9ab5d70e304a0d73676075b00bd1", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x10000010001000000442a00000000000000026493740823657f8089cb74c9" + }, + "code_usage": { + "read": "0xd9dcbdd3357d2c78ff4cc419e310f02017343dd23dafea9c650d2f0a146e76e4" + } + }, + "0xdc900845732a53ee8df737efa282a6bc56976e62": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007" + ], + "storage_written": { + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf60870000000000095a2e751b371522180000000000019c8228845f595370" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x1" + }, + "code_usage": { + "read": "0xc4f0904cd0f741bb3ab2a16013d23b4d72eec59e3cb24879f0f0ba0c3fea24d9" + } + }, + "0x9b76d386a5fd08908b9ebcd5997abbfd3a2d5225": { + "balance": "0x2589416a6d4e993", + "nonce": "0x655" + }, + "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5": { + "balance": "0x9e0ef731d7d03b74" + }, + "0x9e9fbde7c7a83c43913bddc8779158f1368f0413": { + "storage_read": [ + "0x7cbb9844f0e5b9ec22c652052569aae01ddeea1751c55120863e0f68310d1817", + "0x6e6081c5b55abcaa3c6e2e8a592b973640109071879cd803b85d3d706ee3969c", + "0x6110bdf7f338e605fe2de714e58354b9585061b394826a31bde40b788d384885", + "0x3aa2b2cb7392b06aa80dc060f242a1f6af24d5a5a85dc9c33b99fd974b80180d", + "0x3065b18c8be765242d5fce3e8976149d3d206de20dd939d9c797588978857717", + "0xbc13ce45e8a7427d0b04b31b6ecc1da81d3ef01808d0276ffa53991d07181065", + "0x1455294b9a8b6ae86c252fe9623af6c72d50bca1f4c6e530b6a1bcdf11e9e534", + "0x3b9931a3dd2045a353fff56daf77ae19462c7ce97a1e636ea8ee91f3409f006a", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x137d347834f4c0d606fb68dc1135a7458a32b2cfc9ef669be6b41be8aa350530", + "0x5026556a9e91dc9bba9215081252f333fe1d44bf12f6b47633a8259ffde03acb", + "0x0c82ab7793b0bf162f6f8a92cd0d311fa5421543395fbbf697960792e8f73704", + "0x9c4430f5adfa288e18fd6c6beedc13d3151020bdc380fdf63bf06a45d605dbae" + ], + "storage_written": { + "0xec824f15865e4f487f296b7097b0e9faf596562c8dc2ab2672b19ce830da8646": "0x0", + "0x0c82ab7793b0bf162f6f8a92cd0d311fa5421543395fbbf697960792e8f73704": "0x9b76d386a5fd08908b9ebcd5997abbfd3a2d5225", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0xd108", + "0x137d347834f4c0d606fb68dc1135a7458a32b2cfc9ef669be6b41be8aa350530": "0xf9d99261a8e0e87", + "0x638ec225f8b272946de63a54e6ab2745ac543226609f3b32cf416ac38acb5826": "0x0", + "0x6e6081c5b55abcaa3c6e2e8a592b973640109071879cd803b85d3d706ee3969c": "0x19c8228845f595370", + "0x934583f3a9ac11ca412bcb979f8a9c2bc4551a31930984b6fbbf6c3e2ae52ca0": "0xd108", + "0x1455294b9a8b6ae86c252fe9623af6c72d50bca1f4c6e530b6a1bcdf11e9e534": "0x400882ca47ace78425", + "0x3065b18c8be765242d5fce3e8976149d3d206de20dd939d9c797588978857717": "0x0", + "0x3aa2b2cb7392b06aa80dc060f242a1f6af24d5a5a85dc9c33b99fd974b80180d": "0x0", + "0x7cbb9844f0e5b9ec22c652052569aae01ddeea1751c55120863e0f68310d1817": "0x0", + "0x6110bdf7f338e605fe2de714e58354b9585061b394826a31bde40b788d384885": "0x1d", + "0x9c4430f5adfa288e18fd6c6beedc13d3151020bdc380fdf63bf06a45d605dbae": "0x1" + }, + "code_usage": { + "read": "0xde2d3cb78918547c06e2d4f09804da99d8ee9dbfecc4c8023b7ccecfe92a829b" + } + } + }, + "meta": { + "byte_code": "0x02f9043b01820654839f2e54850a83ee7e738306136a943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad885a34a38fc00a0000b903c43593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf62c700000000000000000000000000000000000000000000000000000000000000030b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000005a34a38fc00a000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000168d28e3f002800000000000000000000000000000000000000000000000000003e923ae5641b48100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000009e9fbde7c7a83c43913bddc8779158f1368f04130000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000043a77aabd00780000000000000000000000000000000000000000000000000000ba58d0ad0652c8800000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc20027109e9fbde7c7a83c43913bddc8779158f1368f0413000000000000000000000000000000000000000000c080a0c6c29ae62a8518f90964b3b89b854e3063bcd5de18e976fd15799dd6bf7141cfa0778acfdb416cc2f46feab71098bba323f340d60892488b72cf562fcb3effecbf", + "new_txn_trie_node_byte": "0x02f9043b01820654839f2e54850a83ee7e738306136a943fc91a3afd70395cd496c647d5a6cc9d4b2b7fad885a34a38fc00a0000b903c43593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065cf62c700000000000000000000000000000000000000000000000000000000000000030b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000005a34a38fc00a000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000168d28e3f002800000000000000000000000000000000000000000000000000003e923ae5641b48100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000009e9fbde7c7a83c43913bddc8779158f1368f04130000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000043a77aabd00780000000000000000000000000000000000000000000000000000ba58d0ad0652c8800000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc20027109e9fbde7c7a83c43913bddc8779158f1368f0413000000000000000000000000000000000000000000c080a0c6c29ae62a8518f90964b3b89b854e3063bcd5de18e976fd15799dd6bf7141cfa0778acfdb416cc2f46feab71098bba323f340d60892488b72cf562fcb3effecbf", + "new_receipt_trie_node_byte": "0xb907d302f907cf0183105392b9010000200000000000000008000080000000000000000000802000000000000000000000000000000200000000000080000002000000080020000000000000000040000000080000000800000008000000200000000000000000000040108020000000000020020000004000000000000800000000000000000200000110000800000000000000000000000000040000040000000001000000080000024000000000000000000000000000840000000000200000000000000000000000010040000000000002000000000000000000000000000000400000201000000000000020000080200020000000000000020000000000001000000000400000100000000000f906c4f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000000000000000000000000000005a34a38fc00a0000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada0000000000000000000000000dc900845732a53ee8df737efa282a6bc56976e62a0000000000000000000000000000000000000000000000000168d28e3f0028000f89c949e9fbde7c7a83c43913bddc8779158f1368f0413f884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000dc900845732a53ee8df737efa282a6bc56976e62a00000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000d10780f89b949e9fbde7c7a83c43913bddc8779158f1368f0413f863a0e59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e031487a0000000000000000000000000dc900845732a53ee8df737efa282a6bc56976e62a00000000000000000000000009b76d386a5fd08908b9ebcd5997abbfd3a2d5225a000000000000000000000000000000000000000000000000003e923b8acf52d4bf87994dc900845732a53ee8df737efa282a6bc56976e62e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000000000000019c8228845f5953700000000000000000000000000000000000000000000000095a2e751b37152218f8fc94dc900845732a53ee8df737efa282a6bc56976e62f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000009b76d386a5fd08908b9ebcd5997abbfd3a2d5225b8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000168d28e3f002800000000000000000000000000000000000000000000000000003e923b8acf52d4b0000000000000000000000000000000000000000000000000000000000000000f89c949e9fbde7c7a83c43913bddc8779158f1368f0413f884a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000009b76d386a5fd08908b9ebcd5997abbfd3a2d5225a0000000000000000000000000000000000000000000000000000000000000d10880f89b949e9fbde7c7a83c43913bddc8779158f1368f0413f863a0e59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e031487a00000000000000000000000001df4c6e36d61416813b42fe32724ef11e363eddca00000000000000000000000009b76d386a5fd08908b9ebcd5997abbfd3a2d5225a00000000000000000000000000000000000000000000000000bb4756d6d98e13cf89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000001df4c6e36d61416813b42fe32724ef11e363eddca000000000000000000000000000000000000000000000000043a77aabd0078000f9011c941df4c6e36d61416813b42fe32724ef11e363eddcf863a0c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67a00000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fada00000000000000000000000009b76d386a5fd08908b9ebcd5997abbfd3a2d5225b8a0fffffffffffffffffffffffffffffffffffffffffffffffff44b8a9292671ec400000000000000000000000000000000000000000000000043a77aabd007800000000000000000000000000000000000000000026493740823657f8089cb74c90000000000000000000000000000000000000000000000aab081aa14a00c686a000000000000000000000000000000000000000000000000000000000000442a", + "gas_used": 276940 + } + }, + { + "traces": { + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "storage_read": [ + "0xc4b5945b3d588809025580057cbcadbb58fc33740a13703202de569e28ad94f8", + "0xed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285c", + "0x12231cd4c753cb5530a43a74c45106c24765e6f81dc8927d4f4be7e53315d5a8" + ], + "storage_written": { + "0x12231cd4c753cb5530a43a74c45106c24765e6f81dc8927d4f4be7e53315d5a8": "0x1e35b19a1ee01f6807", + "0xed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285c": "0x7e180001c095c6691", + "0xc4b5945b3d588809025580057cbcadbb58fc33740a13703202de569e28ad94f8": "0x954292ea137152218" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0xd420d5f24225702a68ddf21242d5eef816dc2e6d": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf6087000000000007e180001c095c6691000180cfcb4e592f75820f79e242", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x6b75d8af000000e20b7a7ddf000ba900b4009a80": { + "balance": "0x153ac555d1f4a", + "code_usage": { + "read": "0x213c3f38a90242ff53461e679cef9a1bbbae20e63de087cdbc972d813c857711" + } + }, + "0xdc900845732a53ee8df737efa282a6bc56976e62": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000006" + ], + "storage_written": { + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf608700000000000954292ea1371522180000000000019d8d2f4d5f595370" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5": { + "balance": "0x9e19185fe4f74274" + }, + "0x6d7497751656618fc38cfb5478994a20f7e235df": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0xb39e9ba92c3c47c76d4f70e3bc9c3270ab78d2592718d377c8f5433a34d3470a", + "0xdb111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897" + ], + "storage_written": { + "0xdb111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897": "0x180cfcb4e592f75820f79e242", + "0xb39e9ba92c3c47c76d4f70e3bc9c3270ab78d2592718d377c8f5433a34d3470a": "0x13e5b252ffc3522bbf655de0" + }, + "code_usage": { + "read": "0x4123f56d86f276e684177a9b98a18f2f9d66d40208c423fe55b0e5c8f9d53abd" + } + }, + "0x9e9fbde7c7a83c43913bddc8779158f1368f0413": { + "storage_read": [ + "0xa34640eb1c607d836ceb4af07c59befcec4cdb4943351c3a245f8712063aa3b6", + "0x5026556a9e91dc9bba9215081252f333fe1d44bf12f6b47633a8259ffde03acb", + "0xab2e97a75db32eb3b19136ac5fcb6d7a64d182e81eb81decf514e3d877434a50", + "0x6e6081c5b55abcaa3c6e2e8a592b973640109071879cd803b85d3d706ee3969c" + ], + "storage_written": { + "0x6e6081c5b55abcaa3c6e2e8a592b973640109071879cd803b85d3d706ee3969c": "0x19d8d2f4d5f595370", + "0xab2e97a75db32eb3b19136ac5fcb6d7a64d182e81eb81decf514e3d877434a50": "0x4a3a5debfd930dd" + }, + "code_usage": { + "read": "0xde2d3cb78918547c06e2d4f09804da99d8ee9dbfecc4c8023b7ccecfe92a829b" + } + }, + "0xae2fc483527b8ef99eb5d9b44875f005ba1fae13": { + "balance": "0x673201310c98ee9f4", + "nonce": "0x201e90" + } + }, + "meta": { + "byte_code": "0x02f903810183201e8f850c6fa6bfe8850c6fa6bfe88302d659946b75d8af000000e20b7a7ddf000ba900b4009a80850784a19501b83a7f386d7497751656618fc38cfb5478994a20f7e235df016ed4ed8b3c9e9fbde7c7a83c43913bddc8779158f1368f0413010b06c93c0605467a06f902cff87a946d7497751656618fc38cfb5478994a20f7e235dff863a00000000000000000000000000000000000000000000000000000000000000005a0b39e9ba92c3c47c76d4f70e3bc9c3270ab78d2592718d377c8f5433a34d3470aa0db111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897f89b94d420d5f24225702a68ddf21242d5eef816dc2e6df884a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000008a00000000000000000000000000000000000000000000000000000000000000006a00000000000000000000000000000000000000000000000000000000000000007f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0c4b5945b3d588809025580057cbcadbb58fc33740a13703202de569e28ad94f8a0ed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285ca012231cd4c753cb5530a43a74c45106c24765e6f81dc8927d4f4be7e53315d5a8f89b949e9fbde7c7a83c43913bddc8779158f1368f0413f884a06e6081c5b55abcaa3c6e2e8a592b973640109071879cd803b85d3d706ee3969ca0a34640eb1c607d836ceb4af07c59befcec4cdb4943351c3a245f8712063aa3b6a05026556a9e91dc9bba9215081252f333fe1d44bf12f6b47633a8259ffde03acba0ab2e97a75db32eb3b19136ac5fcb6d7a64d182e81eb81decf514e3d877434a50f89b94dc900845732a53ee8df737efa282a6bc56976e62f884a00000000000000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000008a0000000000000000000000000000000000000000000000000000000000000000680a036a7f2a293f3ce240ee26aa2454a653a442aa817ce2c34f780fc46de5254a98aa01472bb980737e6a7b83cf1d8460e0144dadcf5e9aea3c58106059f680edbd7b2", + "new_txn_trie_node_byte": "0x02f903810183201e8f850c6fa6bfe8850c6fa6bfe88302d659946b75d8af000000e20b7a7ddf000ba900b4009a80850784a19501b83a7f386d7497751656618fc38cfb5478994a20f7e235df016ed4ed8b3c9e9fbde7c7a83c43913bddc8779158f1368f0413010b06c93c0605467a06f902cff87a946d7497751656618fc38cfb5478994a20f7e235dff863a00000000000000000000000000000000000000000000000000000000000000005a0b39e9ba92c3c47c76d4f70e3bc9c3270ab78d2592718d377c8f5433a34d3470aa0db111b6bab9f3303f59a63f0eb7b11cf5482c92ef8f241614c4c2bca1d38f897f89b94d420d5f24225702a68ddf21242d5eef816dc2e6df884a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000008a00000000000000000000000000000000000000000000000000000000000000006a00000000000000000000000000000000000000000000000000000000000000007f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0c4b5945b3d588809025580057cbcadbb58fc33740a13703202de569e28ad94f8a0ed86a1228e69cf38993e7d0567ff50154ce028b0b2307ce2b12f66fa0c6a285ca012231cd4c753cb5530a43a74c45106c24765e6f81dc8927d4f4be7e53315d5a8f89b949e9fbde7c7a83c43913bddc8779158f1368f0413f884a06e6081c5b55abcaa3c6e2e8a592b973640109071879cd803b85d3d706ee3969ca0a34640eb1c607d836ceb4af07c59befcec4cdb4943351c3a245f8712063aa3b6a05026556a9e91dc9bba9215081252f333fe1d44bf12f6b47633a8259ffde03acba0ab2e97a75db32eb3b19136ac5fcb6d7a64d182e81eb81decf514e3d877434a50f89b94dc900845732a53ee8df737efa282a6bc56976e62f884a00000000000000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000008a0000000000000000000000000000000000000000000000000000000000000000680a036a7f2a293f3ce240ee26aa2454a653a442aa817ce2c34f780fc46de5254a98aa01472bb980737e6a7b83cf1d8460e0144dadcf5e9aea3c58106059f680edbd7b2", + "new_receipt_trie_node_byte": "0xb9067502f906710183125004b9010000200000000000000008000080000000000000000000002000000000000000000000008000000020000000000080000002000000080000000000000020000000000000000000000000000008000000200080000000000000000040100000000000000020000000000000000000000000000000000000000080000110000000000000000000000000000020000200000000000000000000080000004000000000000000001000000000000000000000000000000000000000000000010040000000000002000000000000000000000000000000400000201000000000000000000100200000000000022000020000000000000000000000000000000000000020f90566f89b946d7497751656618fc38cfb5478994a20f7e235dff863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80a0000000000000000000000000d420d5f24225702a68ddf21242d5eef816dc2e6da00000000000000000000000000000000000000000016ed4ed0000000000000000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000d420d5f24225702a68ddf21242d5eef816dc2e6da00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80a00000000000000000000000000000000000000000000000000784a19501000000f87994d420d5f24225702a68ddf21242d5eef816dc2e6de1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b840000000000000000000000000000000000000000180cfcb4e592f75820f79e242000000000000000000000000000000000000000000000007e180001c095c6691f8fc94d420d5f24225702a68ddf21242d5eef816dc2e6df863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80a00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80b8800000000000000000000000000000000000000000016ed4ed0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000784a19501000000f89b949e9fbde7c7a83c43913bddc8779158f1368f0413f863a0e59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e031487a00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80a0000000000000000000000000dc900845732a53ee8df737efa282a6bc56976e62a0000000000000000000000000000000000000000000000000010b06c900000000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000dc900845732a53ee8df737efa282a6bc56976e62a00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80a00000000000000000000000000000000000000000000000000605467a00000000f87994dc900845732a53ee8df737efa282a6bc56976e62e1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000000000000019d8d2f4d5f59537000000000000000000000000000000000000000000000000954292ea137152218f8fc94dc900845732a53ee8df737efa282a6bc56976e62f863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80a00000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80b880000000000000000000000000000000000000000000000000010b06c900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000605467a00000000", + "gas_used": 130162 + } + }, + { + "traces": { + "0xee1c139ea09924a95b98b56a68efc1104f049f21": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x336a15c2de424b150f2fe74517a91cf099618a9cc06476ee6969c87d83e552f7", + "0x000000000000000000000000000000000000000000000000000000000000000f", + "0x3f21a237864d150ec73673aa9343e861c8699ada868b369630fe86259d2cc7b1", + "0xea698147b9768f539806750d0817afddf757d04fa6faa24ab18cb700ddf86c0d", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000013", + "0x000000000000000000000000000000000000000000000000000000000000000e", + "0x27c000cb4a36e527548c82ca9c4152888ae4f091d192793223fa9fa8cdfdf108", + "0x382bec4ba2f2bddade773da93a20c3dc1f1a4da957985a987e0c01c70cb2c10f", + "0x0000000000000000000000000000000000000000000000000000000000000012", + "0xc3c109542df5f0b35d6c0977e1181ed3e16d8b7c34539182429309bafc1d36d9", + "0x000000000000000000000000000000000000000000000000000000000000000d" + ], + "storage_written": { + "0x000000000000000000000000000000000000000000000000000000000000000d": "0xcd", + "0x27c000cb4a36e527548c82ca9c4152888ae4f091d192793223fa9fa8cdfdf108": "0x20fa172815c441c0c", + "0x382bec4ba2f2bddade773da93a20c3dc1f1a4da957985a987e0c01c70cb2c10f": "0x6017fd9172c848c" + }, + "code_usage": { + "read": "0xff219df1cfcda45d9a2b4e3531676c6610f25962c839f543a04177f5904ef6ef" + } + }, + "0xbcd3a47e4d0000cf170e25d1bd3d53f7c08be0a6": { + "code_usage": { + "read": "0x6ed615a0ca19cd89538543cdcb17a7e8d26147013208623b1efd12f8361aa814" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x29872765e68ecacafbd10", + "storage_read": [ + "0xb2940356fd89a84cf9a86227596a2f59f085c679d5f9450737d0ae4daf0efcea", + "0xa1418cf079260397be8c8824a66003accc52fdb01dd81e3e13c62f524976fed6" + ], + "storage_written": { + "0xa1418cf079260397be8c8824a66003accc52fdb01dd81e3e13c62f524976fed6": "0x7a5498b1e8721b5b", + "0xb2940356fd89a84cf9a86227596a2f59f085c679d5f9450737d0ae4daf0efcea": "0x0" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x3328f7f4a1d1c57c35df56bbf0c9dcafca309c49": { + "balance": "0x11d6e5436565d2728", + "storage_read": [ + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x11d6e5436565d2726" + }, + "code_usage": { + "read": "0x4d9be648c5bf39973670d9f8b481d5d0b971e6a2db2deccc6b98cde21c5dd83e" + } + }, + "0xdf675ac7eb6a7053e6988565f57dc3da177661ef": { + "storage_read": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x1774754155affcf0e8b24d330868aa174", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0xf52066d55f7abecb88d1a8dffc1e30", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf60870000000000020fa172815c441c0c0000000000007a5498b1e8721b5b", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0x3d427f91ebcd2943e7fff89975a9a49b27bbbb57": { + "balance": "0x1851e56df56915f2", + "nonce": "0x1d1" + }, + "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5": { + "balance": "0x9e2097c968f96274" + } + }, + "meta": { + "byte_code": "0x02f9023d018201d08502cb417800850a214098688307c524943328f7f4a1d1c57c35df56bbf0c9dcafca309c4988016345785d8a0000b901c40162e2d000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001600000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000065cf6087000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039a7fe8a7811c5400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000ee1c139ea09924a95b98b56a68efc1104f049f21c001a0d4991c42fd0a6bbe99e02ad76f0bec40e8eceae6dc020634fd1753f0f27672b2a056102edb5986f3753438277d85e83a5359d6e768a79281a73799135ceeb7a45b", + "new_txn_trie_node_byte": "0x02f9023d018201d08502cb417800850a214098688307c524943328f7f4a1d1c57c35df56bbf0c9dcafca309c4988016345785d8a0000b901c40162e2d000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001600000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000065cf6087000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039a7fe8a7811c5400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000ee1c139ea09924a95b98b56a68efc1104f049f21c001a0d4991c42fd0a6bbe99e02ad76f0bec40e8eceae6dc020634fd1753f0f27672b2a056102edb5986f3753438277d85e83a5359d6e768a79281a73799135ceeb7a45b", + "new_receipt_trie_node_byte": "0xb9057402f90570018314ff00b9010000200000000000000000000080000000080000000000000000000000000000000000040000000000000000020000000002000000080000200020200000000000000000000000000000000008000000200000000000000000000000008004000000000000000120000000000000000400200000400000000000000010000000000000000000000000000020000000020000000001000000080000004000000000000000000000000002001000000000082000000000080000040000000000000000000002000000000080000000000000040001000000001000000000000000000000200000000000000000000000000000080000000000400000000000000000f90465f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000003328f7f4a1d1c57c35df56bbf0c9dcafca309c49a0000000000000000000000000000000000000000000000000016180fc396978fef89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000003328f7f4a1d1c57c35df56bbf0c9dcafca309c49a0000000000000000000000000df675ac7eb6a7053e6988565f57dc3da177661efa0000000000000000000000000000000000000000000000000016180fc396978fef89b94ee1c139ea09924a95b98b56a68efc1104f049f21f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000df675ac7eb6a7053e6988565f57dc3da177661efa00000000000000000000000003d427f91ebcd2943e7fff89975a9a49b27bbbb57a000000000000000000000000000000000000000000000000006017fd9172c848cf87994df675ac7eb6a7053e6988565f57dc3da177661efe1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000000000000007a5498b1e8721b5b0000000000000000000000000000000000000000000000020fa172815c441c0cf8fc94df675ac7eb6a7053e6988565f57dc3da177661eff863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003328f7f4a1d1c57c35df56bbf0c9dcafca309c49a00000000000000000000000003d427f91ebcd2943e7fff89975a9a49b27bbbb57b880000000000000000000000000000000000000000000000000016180fc396978fe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006017fd9172c848cf899943328f7f4a1d1c57c35df56bbf0c9dcafca309c49e1a072015ace03712f361249380657b3d40777dd8f8a686664cab48afd9dbbe4499fb8600000000000000000000000000000000000000000000000000001c47c242087010000000000000000000000003d427f91ebcd2943e7fff89975a9a49b27bbbb570000000000000000000000000000000000000000000000000000000000000012f899943328f7f4a1d1c57c35df56bbf0c9dcafca309c49e1a09f849d23f4955d98202378ea318f2b0c7533695d3c9fb2a3931f0f919fa8c420b860000000000000000000000000000000000000000000000000016180fc396978fe00000000000000000000000000000000000000000000000006017fd9172c848c00000000000000000000000000000000000000000000000006017fd9172c848c", + "gas_used": 175868 + } + }, + { + "traces": { + "0x7a250d5630b4cf539739df2c5dacb4c659f2488d": { + "code_usage": { + "read": "0xa324bc7db3d091b6f1a2d526e48a9c7039e03b3cc35f7d44b15ac7a1544c11d2" + } + }, + "0xdf675ac7eb6a7053e6988565f57dc3da177661ef": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf608700000000000203f58c05f29fc1be0000000000007d1b23a2a3861b5b", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0xee1c139ea09924a95b98b56a68efc1104f049f21": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000013", + "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x20bbe88de1a142167932f8ddec2bb05de590675e9f971acea869b6f70144240b", + "0x336a15c2de424b150f2fe74517a91cf099618a9cc06476ee6969c87d83e552f7", + "0xae6ca7f389261fe7398f95da232e6501150488dc1b71131270c7e152bf7baea3", + "0x000000000000000000000000000000000000000000000000000000000000000e", + "0x3f21a237864d150ec73673aa9343e861c8699ada868b369630fe86259d2cc7b1", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x5ec555b6279df85a9179991aed8c52c620ea49f11355a1d8aaf78a9d909be0ff", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x000000000000000000000000000000000000000000000000000000000000000f", + "0x27c000cb4a36e527548c82ca9c4152888ae4f091d192793223fa9fa8cdfdf108", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "storage_written": { + "0x5ec555b6279df85a9179991aed8c52c620ea49f11355a1d8aaf78a9d909be0ff": "0x1b04061dabe01086", + "0x27c000cb4a36e527548c82ca9c4152888ae4f091d192793223fa9fa8cdfdf108": "0x203f58c05f29fc1be", + "0x000000000000000000000000000000000000000000000000000000000000000d": "0xce" + }, + "code_usage": { + "read": "0xff219df1cfcda45d9a2b4e3531676c6610f25962c839f543a04177f5904ef6ef" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x298727924f3dd67c3bd10", + "storage_read": [ + "0xfb19a963956c9cb662dd3ae48988c4b90766df71ea130109840abe0a1b23dba8", + "0xa1418cf079260397be8c8824a66003accc52fdb01dd81e3e13c62f524976fed6" + ], + "storage_written": { + "0xa1418cf079260397be8c8824a66003accc52fdb01dd81e3e13c62f524976fed6": "0x7d1b23a2a3861b5b", + "0xfb19a963956c9cb662dd3ae48988c4b90766df71ea130109840abe0a1b23dba8": "0x0" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + }, + "0x85fe958bf2c9289855977c0ae99752094a159000": { + "balance": "0x4e44434923c7ed2e", + "nonce": "0x1d5" + }, + "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5": { + "balance": "0x9e2525dce26d3874" + } + }, + "meta": { + "byte_code": "0x02f9015c018201d485025a01c50085126f7eeb008304f014947a250d5630b4cf539739df2c5dacb4c659f2488d8802c68af0bb140000b8e4b6f9de9500000000000000000000000000000000000000000000000005f7d1e9e0a5719c000000000000000000000000000000000000000000000000000000000000008000000000000000000000000085fe958bf2c9289855977c0ae99752094a1590000000000000000000000000000000000000000000000000000000000065cf608c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000ee1c139ea09924a95b98b56a68efc1104f049f21c080a0e0d2662f068013f865bfba429de67813e80848b7129709d223a19981ce918083a010cd7f31ca9471f59bf07468989f0a5782691d316222940ae078547eba4d3cb2", + "new_txn_trie_node_byte": "0x02f9015c018201d485025a01c50085126f7eeb008304f014947a250d5630b4cf539739df2c5dacb4c659f2488d8802c68af0bb140000b8e4b6f9de9500000000000000000000000000000000000000000000000005f7d1e9e0a5719c000000000000000000000000000000000000000000000000000000000000008000000000000000000000000085fe958bf2c9289855977c0ae99752094a1590000000000000000000000000000000000000000000000000000000000065cf608c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000ee1c139ea09924a95b98b56a68efc1104f049f21c080a0e0d2662f068013f865bfba429de67813e80848b7129709d223a19981ce918083a010cd7f31ca9471f59bf07468989f0a5782691d316222940ae078547eba4d3cb2", + "new_receipt_trie_node_byte": "0xb9043e02f9043a018316eedeb9010000200000000000000000000080000000080000000000000000010000000000000000000000000000000000020000000002000000080000000020000000000000000000000000000000000008000000200000000000000000000000008000000000000000000120000000000000000000000000000000000000000010000000000000000000000000004000000000020000000001000000080000004000000000000000000000000000000000000000002000000008080000000000000000000000000002000000000080000000000000000000000000001000000000000020000000210000000000000000000000000000000008000000400000000000000000f9032ff87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109ca00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488da000000000000000000000000000000000000000000000000002c68af0bb140000f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488da0000000000000000000000000df675ac7eb6a7053e6988565f57dc3da177661efa000000000000000000000000000000000000000000000000002c68af0bb140000f89b94ee1c139ea09924a95b98b56a68efc1104f049f21f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000df675ac7eb6a7053e6988565f57dc3da177661efa000000000000000000000000085fe958bf2c9289855977c0ae99752094a159000a00000000000000000000000000000000000000000000000000babe67b69a45a4ef87994df675ac7eb6a7053e6988565f57dc3da177661efe1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000000000000007d1b23a2a3861b5b00000000000000000000000000000000000000000000000203f58c05f29fc1bef8fc94df675ac7eb6a7053e6988565f57dc3da177661eff863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488da000000000000000000000000085fe958bf2c9289855977c0ae99752094a159000b88000000000000000000000000000000000000000000000000002c68af0bb140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000babe67b69a45a4e", + "gas_used": 126942 + } + }, + { + "traces": { + "0x3328f7f4a1d1c57c35df56bbf0c9dcafca309c49": { + "balance": "0x11d723ba73b28ad52", + "storage_read": [ + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x11d723ba73b28ad52" + }, + "code_usage": { + "read": "0x4d9be648c5bf39973670d9f8b481d5d0b971e6a2db2deccc6b98cde21c5dd83e" + } + }, + "0xd5dbf66480844b7aab2b09030aebc6cecf33e5b2": { + "balance": "0x53b82a7f4755def", + "nonce": "0x1aa4" + }, + "0xee1c139ea09924a95b98b56a68efc1104f049f21": { + "storage_read": [ + "0x336a15c2de424b150f2fe74517a91cf099618a9cc06476ee6969c87d83e552f7", + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x748ace196a619e172e23c1ba712f30ad8277be72debd9e25dd0fd081fc5ea4b2", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0xd39e7a1713b7480b7572a56a5a140d5100f41a6add76a5f985b34896bf0b07e4", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x27c000cb4a36e527548c82ca9c4152888ae4f091d192793223fa9fa8cdfdf108", + "0x52904ea9675b2af48d62072df8d8967ad3b6e4fbbfd783a8ab5f507d2030d15b", + "0x3f21a237864d150ec73673aa9343e861c8699ada868b369630fe86259d2cc7b1", + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x0000000000000000000000000000000000000000000000000000000000000013", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "storage_written": { + "0x27c000cb4a36e527548c82ca9c4152888ae4f091d192793223fa9fa8cdfdf108": "0x210e428dc8c697a18", + "0x52904ea9675b2af48d62072df8d8967ad3b6e4fbbfd783a8ab5f507d2030d15b": "0xfffffffffffffffffffffffffffffffffffffffffffffffff3116329663647a5", + "0xd39e7a1713b7480b7572a56a5a140d5100f41a6add76a5f985b34896bf0b07e4": "0x110080a6e9e85a60" + }, + "code_usage": { + "read": "0xff219df1cfcda45d9a2b4e3531676c6610f25962c839f543a04177f5904ef6ef" + } + }, + "0xc465cc50b7d5a29b9308968f870a4b242a8e1873": { + "code_usage": { + "read": "0x7b287ee78288945f2c3ccb923d99243bbf70d6040de54ddeec372457739a4612" + } + }, + "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5": { + "balance": "0x9e2ae6376db6d474" + }, + "0xdf675ac7eb6a7053e6988565f57dc3da177661ef": { + "storage_read": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007" + ], + "storage_written": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x65cf608700000000000210e428dc8c697a180000000000007a0e536fe4854876", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x1" + }, + "code_usage": { + "read": "0x5b83bdbcc56b2e630f2807bbadd2b0c21619108066b92a58de081261089e9ce5" + } + }, + "0xbcd3a47e4d0000cf170e25d1bd3d53f7c08be0a6": { + "code_usage": { + "read": "0x6ed615a0ca19cd89538543cdcb17a7e8d26147013208623b1efd12f8361aa814" + } + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x29872761823aaa8c2ea2b", + "storage_read": [ + "0xa1418cf079260397be8c8824a66003accc52fdb01dd81e3e13c62f524976fed6", + "0xb2940356fd89a84cf9a86227596a2f59f085c679d5f9450737d0ae4daf0efcea" + ], + "storage_written": { + "0xb2940356fd89a84cf9a86227596a2f59f085c679d5f9450737d0ae4daf0efcea": "0x0", + "0xa1418cf079260397be8c8824a66003accc52fdb01dd81e3e13c62f524976fed6": "0x7a0e536fe4854876" + }, + "code_usage": { + "read": "0xd0a06b12ac47863b5c7be4185c2deaad1c61557033f56c7d4ea74429cbb25e23" + } + } + }, + "meta": { + "byte_code": "0x02f9027501821aa38502540be4008509aa0b046883078b85943328f7f4a1d1c57c35df56bbf0c9dcafca309c4980b9020475713a08000000000000000000000000ee1c139ea09924a95b98b56a68efc1104f049f21000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000df675ac7eb6a7053e6988565f57dc3da177661ef0000000000000000000000000000000000000000000000000cee9cd699c9b85a0000000000000000000000000000000000000000000000000223d78c91ada825000000000000000000000000c465cc50b7d5a29b9308968f870a4b242a8e187300000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf60870000000000000000000000000000000000000000000000000000000000000000c080a0642a7d57b8101cf657c1d084c70135cb64084383982ecb695bb044f39c01f904a02f935286fc624907ec3ae9b3aff154439d72fd29db15a6530adc265370053539", + "new_txn_trie_node_byte": "0x02f9027501821aa38502540be4008509aa0b046883078b85943328f7f4a1d1c57c35df56bbf0c9dcafca309c4980b9020475713a08000000000000000000000000ee1c139ea09924a95b98b56a68efc1104f049f21000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000df675ac7eb6a7053e6988565f57dc3da177661ef0000000000000000000000000000000000000000000000000cee9cd699c9b85a0000000000000000000000000000000000000000000000000223d78c91ada825000000000000000000000000c465cc50b7d5a29b9308968f870a4b242a8e187300000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065cf60870000000000000000000000000000000000000000000000000000000000000000c080a0642a7d57b8101cf657c1d084c70135cb64084383982ecb695bb044f39c01f904a02f935286fc624907ec3ae9b3aff154439d72fd29db15a6530adc265370053539", + "new_receipt_trie_node_byte": "0xb905d002f905cc018319673db9010000200000000000000000000080000000080000000001000002000000002200000000040000000000000000020000000002000000080000200020200000600000000000000000000000000008000080200000000000400000000000000004000000000000000120000000000000000000000000000000040080000010000000000002000000000000000020000000020000000000000000080000004000000000020000000000000000001000000000082000000000080000040000000000000000000022000000000080000000000000000000000000001000000002000000000010200000000000000000000000000000080000000000000000000000000000f904c1f89b94ee1c139ea09924a95b98b56a68efc1104f049f21f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000d5dbf66480844b7aab2b09030aebc6cecf33e5b2a0000000000000000000000000df675ac7eb6a7053e6988565f57dc3da177661efa00000000000000000000000000000000000000000000000000cee9cd699c9b85af89b94ee1c139ea09924a95b98b56a68efc1104f049f21f863a08c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a0000000000000000000000000d5dbf66480844b7aab2b09030aebc6cecf33e5b2a0000000000000000000000000c465cc50b7d5a29b9308968f870a4b242a8e1873a0fffffffffffffffffffffffffffffffffffffffffffffffff3116329663647a5f89b94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa0000000000000000000000000df675ac7eb6a7053e6988565f57dc3da177661efa00000000000000000000000003328f7f4a1d1c57c35df56bbf0c9dcafca309c49a0000000000000000000000000000000000000000000000000030cd032bf00d2e5f87994df675ac7eb6a7053e6988565f57dc3da177661efe1a01c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1b8400000000000000000000000000000000000000000000000007a0e536fe485487600000000000000000000000000000000000000000000000210e428dc8c697a18f8fc94df675ac7eb6a7053e6988565f57dc3da177661eff863a0d78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822a00000000000000000000000003328f7f4a1d1c57c35df56bbf0c9dcafca309c49a00000000000000000000000003328f7f4a1d1c57c35df56bbf0c9dcafca309c49b88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cee9cd699c9b85a000000000000000000000000000000000000000000000000030cd032bf00d2e50000000000000000000000000000000000000000000000000000000000000000f87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65a00000000000000000000000003328f7f4a1d1c57c35df56bbf0c9dcafca309c49a0000000000000000000000000000000000000000000000000030cd032bf00d2e5f899943328f7f4a1d1c57c35df56bbf0c9dcafca309c49e1a072015ace03712f361249380657b3d40777dd8f8a686664cab48afd9dbbe4499fb8600000000000000000000000000000000000000000000000000003e770e4cb862c000000000000000000000000d5dbf66480844b7aab2b09030aebc6cecf33e5b20000000000000000000000000000000000000000000000000000000000000033f858943328f7f4a1d1c57c35df56bbf0c9dcafca309c49e1a0522881958b3c4a6fc0840ad3b7fb947b881edc28c004245a62541647422ade97a0000000000000000000000000000000000000000000000000030cd032bf00d2e5", + "gas_used": 161887 + } + }, + { + "traces": { + "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5": { + "balance": "0x9da8f5317178807d", + "nonce": "0xa961e" + }, + "0x876528533158c07c1b87291c35f84104cd64ec01": { + "balance": "0x152e639c78b8139f35" + } + }, + "meta": { + "byte_code": "0x02f87101830a961d80850755ff2068827d0094876528533158c07c1b87291c35f84104cd64ec01877f973f93e400b780c001a0a1e7913e05eb6bb6f4bcb70abd29b6c5fd217ed8c501c7e11fa8ef4cdc0db303a0380e9b3c08be1ea016553f0aecd2702f3ebfbfe59ab702eba90d6bfba8238202", + "new_txn_trie_node_byte": "0x02f87101830a961d80850755ff2068827d0094876528533158c07c1b87291c35f84104cd64ec01877f973f93e400b780c001a0a1e7913e05eb6bb6f4bcb70abd29b6c5fd217ed8c501c7e11fa8ef4cdc0db303a0380e9b3c08be1ea016553f0aecd2702f3ebfbfe59ab702eba90d6bfba8238202", + "new_receipt_trie_node_byte": "0xb9010d02f90109018319b945b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + } + ] + }, + "other_data": { + "b_data": { + "b_meta": { + "block_beneficiary": "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5", + "block_timestamp": "0x65cf6087", + "block_number": "0x1259701", + "block_difficulty": "0x0", + "block_random": "0x45d29466a7116dd48c9826216292a8796242621f55677181b0395d70a2bcf23e", + "block_gaslimit": "0x1c9c380", + "block_chain_id": "0x1", + "block_base_fee": "0x755ff2068", + "block_gas_used": "0x19b945", + "block_bloom": [ + "0x20400000000000000800008000000018000000000180200201000200220000", + "0x48000100230020000020080000002008800080020200020200020600040", + "0x800000029000000088000802000808000004000000000401080260000", + "0x20220120004008000000002c4020000040000004028000013000080000", + "0x2000000000000004020040200060080000201000010080000024000080000", + "0x200000010000000028450400800002820010000080c00000400000100400000", + "0x2200000000008000000001000004008142000020904004000200002000", + "0x19021002000000002a0000200010000000810080100004008001000000000a0" + ] + }, + "b_hashes": { + "prev_hashes": [ + "0xcfab9f57a4374e241013c389a91566b7d0c37da2ea36c9b63baa646480d0ee77", + "0x38b80ec5e15c935edb4f4956f8224a1eaa88c93938f67a1018cd7c85eb606aab", + "0xc138d04a4d815c9d83e3cebb989239461ad3ec0f9fd298e3449f3659b323400c", + "0x58bf7320b17722b62478b50020e1fb0aa18ebbaea961d868cc2575a30f63852c", + "0xb87e56f81f0456db5c7a7a17af022bde49f20cd8193463d96b05162ccffa3157", + "0xe4d6f2bfe01b73af732882d3460e13e0ab1138396fa9007a82f042e4e7402663", + "0x621fb15b9d79724387592bc72583a72c2305a5bc862ec88ac4d88ad3c745bfbc", + "0x8b7ef7a4950c70602cc1244df146ed3c719c42659cc68891f81a26880dc916b4", + "0x394f527d6a108bcfa5cd58e5d41a749a99baa9edc4b64cdf9290e01e14803916", + "0x46832687b7e3c68faaf1e001ac3699aa050c9f17085d6a9fbab3b001e1e91486", + "0xd81a2a90046cbe42fd032342889fe343a4b5c4fd80d8f69add0c0f4b4e55bc8d", + "0x4c78e389d03ec147deee89d6762cb6ac9c125920027efe921922cf806c186d4c", + "0x3f444e94733f1f4183474b90ff76248c86d805a25c4d565167b7d7a3692d3565", + "0x4998bc4c9a48073a095afa2fc93eed3dbbaa12620460bbf0e73e7e23e560c69c", + "0x1945c4296041ab7b3024f7b263293a33777925fa09459adb80e8ba8bc3f6e2a2", + "0x9aafcd5475c1fdaad41c810a1e99ba53379146a00dbb17d679c15a38df47ae19", + "0x31667b67aff44c0d86c0b924e5e26869784c1ed7ad75e0a75b434a1caaaccb9a", + "0x2beb2ba1c187a5fe2a9d4a1412396e796dcdfb858c7b4c6ff410c35350788783", + "0xaa6d56335b227575c5bc40468216257e83b47ce73e41549de224191663a09652", + "0x25337050f0ed7224687c20b0e37ce8f29e8d63709812d9403558e655935fd4c9", + "0xa9c3447f820a08321e48ee868bc912e1081db04d1de6ac9c18d1cab00245445f", + "0x8db2a1e477e1a9e07b4e5d26443a20e0b5647fe48a575334a18a8c23ff237aac", + "0x836c2b6ec407582529d154ae54ad740616a25c9e95439b36954b0886220e234b", + "0x03a3dcba6d48a16dd9fdd1aaa07aecf2a712da17cb455ba1ca6979fef2411072", + "0x76802a7e201ef4b1522542e46a97360983dc387285b1685ee8cba6ba99e14a09", + "0x4bfd1b64c7e9e706a84f7bb077eaf4fc98dc1f38162f8407daac251b4c782ea8", + "0x4063789111da1e060b25c438ae04c7f7e68d8f10afe126b68b275314251a4ecc", + "0x5f86cc18e261aab47cb8d6dc78505e7b156e022b24d4e7e399e885dd4124d4ce", + "0xe80b83684ab3ffde0d9659caa516711ba37a58c4ac9bbdb6cf6c67d04affcf5c", + "0x8f6a91bc52615b275705fdcc7ec704832f8f5f0466589fde33f6f1e836113bed", + "0x9f681e1226c7894028550212383b4a5d3ea885dd6d1c28ba12ac773b5e3ecf51", + "0x1898b052344c3d0cb7dbacf461dad55cb6f56843e2319c25a490db0eef858908", + "0xcd3dce5835974ff8209c26f5eea2e0bd35bfe46b3f22ffad6582bfa74fe3e6a6", + "0x80300830d137dc63995cd47c4b9d593ee26c36424be1aea1f205a456fa01823f", + "0x4866b34cb7823b8888ae98f84d99a1a30e5216d824dbe850b53f800f745d18c2", + "0xa40cea299f742449a2a2abd1d8d240d2e42a16c63389b773291469b600b27a4c", + "0x44209e70324b497336058736dced16d65814d90b3fd0fbcfb68a3b81cbbc52c5", + "0x109e598cb2d8b68f154a6400ca56997ed066dd8aa7a15934a8bbcfb344452214", + "0x82cc91ec296a8aa275adc93cb60e76d8809d28eb1d0f6a979a286157cd102e1c", + "0xe24079903b98fd70b9bc36e4dd372876fc02b8ed28de4a2506c40b1351e36d82", + "0x06679c947b94629035585ada54a7705fb6d66cb05e080c4d9a666f0558a5e064", + "0xb7381aae1422385528b08aa99cf2e7cc6c9943fc7e06d7d26266ebac77f2038f", + "0x6695b8d48f45d478840310cb3c9824caf874e3bee8efa56dabd9256e547465a1", + "0xf64259c9be7c6e1510c291e782ce6713fe9e6a8c0670f51484c4b52fcdf143ef", + "0x6d9c6a66065d238588d2303c570ecfee237a12f3119e1e10d6da036ee3c6acb2", + "0xbb5b372993d468b1302baf20b0abf9d8385c4882367d1c7cfb0ffcdeb9ff50a1", + "0x5b6f4ffdcd85cfc4b81655d94be7c19c2436417387b2cb2ce45113790336db35", + "0x1f0f361a4c6f7f2601e677688df6b86d069b617faed4499869631e5adee39178", + "0x42bf25b614164ffd0da182efdad686cac48576fdbdd3f38e7dd1d3bbcc9e5224", + "0xe410e090a0d43d00db127c5639f1af1614ea1680a3e5f491842bc421a8d17521", + "0xad323e505477386f3bd81056800d740a3b10a23ac519f4ae7fa1cd1a2812ab41", + "0x9ffe1e89c81176cc1753d2080339aae9331de823e319f48b997a5a9a59d14a6c", + "0xeb354c27c6adff01efba0bb57a4695009bdde67dad829fca8646eed6c627c04f", + "0x025d06bcbaf4a54651c5b432dbdc1ab61e7e25cb3b33cbd1ad597f6361c64004", + "0xfbb795e49aa2ccc545ac5427d01b8b7f4c6f0f9c6f1636fa2d3f8175ea850e7a", + "0xcfbe0b821f3d9d860aef7f90099cf3eb3d1caf66892142988fdca7990cd2685d", + "0xd38e12f24648a60b38d401b79c034aaa4272e775e44790000de39bd45848b266", + "0x18cf65ee63fea104a2ff5fc02977f31bb686a64007b8cd16d67c431d3fc9985c", + "0xfbef834f90e5cc58a7c0c4ce0eda75881d413fb327954806f43c9831e863bcaa", + "0x20fb4ff5acf0f241bd613dadc8d3146d0b6a667bd66fa8ffc3630c89810a69a3", + "0xd4a1baae192ddc2229cf6425e0fd549bb20cf99bd1857ac14f5eb36ce4ce4882", + "0x0d49346d32b8df702a53de84eff651330b1c9a8f0b00cf3cdd9a37aea37a29b4", + "0xfff87d966513ad61904e37f3e0a822d1216a24f64a2cb0ba019b2ab55b391576", + "0x069e7e81d4ddada64c915bf27e7a7f005f0cae04f85c7c9d9e1c994b35044ab0", + "0xc574c2a0764d2b3424c82a903c6091fd3fc59043c89843001ceafc2f230e250a", + "0xcb57e5e65051817c806b651160ad4fab709fd35801f649854462a391e85113c9", + "0x49df8c35cdc69b9f79b64de400f9a9bd298237e591f561b976e8133f6f4e6e83", + "0x71ff9b73be32122ffd6a70a588cbd249ccac73ac7a72f83ec0b78d401c418c81", + "0x78c53c51467b4d0b0ef26550cf7a68b2c7943942de61f7a9912b7c0b0f54db6d", + "0x89789136684064fb05f130c8bfd122a01cb6013d25f86f25d934037f2cd669d8", + "0x3ce94acc60c5eae9566cad245b5087992d23991f9feaec46c0225f346cfa03cd", + "0x50c61cd40ed98ddde2ec48ef25ffda3c24562efb45466944292042b7646d6ca3", + "0x3be36e840168b97cf843f1282dda75ce7f9a8417e679372fa24747a834b552f6", + "0xb89f248c0659d4fd96fdd11b700772171722e21409694fe7858035b39c3fc84b", + "0xe8e71d5c1ee9094b09643fdeafa63c93a835d4783382c0888c1a93b77cfb27b9", + "0x76e794d55c8879a16255a0454b40d194af4f70b5ac8550f782054dd12fc56d4b", + "0x3c5378f5ed3da82166086ae9df32bd01ab6319bdf69bd64a78dfa2137b869b71", + "0xda149ed42d40c0ad4ba073990c0de763f8c258cfbe087c9db9a5c68ef363739b", + "0x1abdceaecc72ddc6f8058499c951913c9c683d0e68199e0d1646c9df9979bb1d", + "0x46115955203391608cc6633d875c27f2bba1bcb32a5b9a79a617d78e2f15ec6b", + "0x3b1af0c7c51cb1f08fff39c89e064d002d4573760f233d833b6d9f907cff243e", + "0xb4867bc77f1e7d54dd48be67197a8611017f53bc480573c0bd557eb2b8d1865d", + "0x79d41e27c5c3cab17658716e82fdff2bd18c39a37ff7f402b2f071e76efef237", + "0x1c47d6d1ada15f750a3fe992beada41d7698a0ae73fb3ff51d3a83c780b1bee8", + "0x6414f39c9a9aef62156b57044cacef12fb99ccde6944a53c28c9c7f59130c639", + "0xdca75dcbdc8531dfd2640c9f7979abd79a3e58c5e71f319d6aa63f1297e12637", + "0xbc82fd24e1be8bc9f7032a6bfafc482eed796460b3c76cfb482b67408db0a446", + "0x2a45e46666de9e8bc3d396917cbde99a6a0d859e64cc5e9ad8d67dfccbb06a1b", + "0xe4b24c21a7f23f5455f183b5d6b37137ae08c5bbad57851b2072601db62cb50d", + "0xd2cbfc68cb6060ceb677e4da6e21f56a6b086770b6f0d3717affdfada42ed799", + "0xa2942b6aa19abeb697ddedca8be248539c48ef596e08bcda26db0ba2bd5c95e3", + "0xa00ee5291426662b965577851d2f63639d30ba9b089431315cd51b0ea78171aa", + "0x057555a06a0f1faaeb2bc0c6e92d0a95336fd557271b720841cb99e2e0ce01cb", + "0x354d717988880d99017c7af5bcd9a98d2e24db9a9b66b802f374f074ea50651d", + "0x4a076d92f54d83551475bd3a00b6fbd0428a84da527a8d1529463c3697a148cf", + "0x7a0277376b4ff3e14916db4638440940a16cdfc37319c1696e4c6df1bd59c4b8", + "0x1e7b550fcf6a76237398d884f8b020c0f776a8e65b9b1ad1170dfaf69aebded1", + "0x44f458cfd9cbe3a376e75cf5bc43445ceec5c170e2155295350bb4c57ca73ada", + "0x3a130c2e4e95ff6f630797c2f2b2e6433e06979f965ecd4a170ec5c6d22d7748", + "0xa347b7de97da63b80adcb295a1c95f3cf836a0df9bc283c9710b799c00dd0b6b", + "0xa356c10c4e099212258c6f2fdae513032556c2a380814403900c6c0711d4b917", + "0xdd428412cbb7a32c3e7dc5c056db0827cb49fa8c83d984a998f32e15c3d73b48", + "0x40f61ff284733593a7b54896381e5364a054b9e7b1eb0d9b22e479f2468344d4", + "0x2fb5c179fdf142c2af4b2863cfc9b5a42dea7ed637a0f2c39d3af3b32c46c5e5", + "0x7d430b09e2ce51282117040927af580293f7704e9095bf4265797be7af55ee8c", + "0x7c62b0144ef255f729364ffa1b0e7f20ca4c87283618030c226fc0847855de1f", + "0x82deccd92a405b56f62d988c41d2418dd64324882eca967d8260e12cfcecb5db", + "0xbb8854151124237467e120b904244231ffb7f0342d742b0242a430c2ca587072", + "0xce988c73306b3671f018ad630800a6d70c6884ecfc84d172598581f31f5b0f48", + "0x4e5617a802f9a6ea3ec57138152a30a9791f6bc30cbb372a61e02258d5c1f5f1", + "0x8a4460e937b89c2b5ffa6e478a6f9ccc665870f313a7a06abdc82185adc1e296", + "0x429b9600e6a12bc746d21d3ee2ac76c559b5f06ab3e0f5f3b4c8f4504af965f9", + "0x6e8bd561662bf27835053957e56d9b510989efee68ac5cdb8571e9e649f10b63", + "0x4512b87f62323c6c8ade9fa56741823da2ef1f49e3fc76a6ab7a2b47026ad7f4", + "0x7315fc8e86ae2843394ebacbb40440eb66b5f3bf82d5d2a96741df5dce358038", + "0x860445348840ec438748ac4c579a33bf8f16a9922ca53bdac6aa09913d162564", + "0x0ba965c543ba155ebbbbd8bff4c5c63acf221790dd30c7be4bde078bab46dc06", + "0xe814f4ca631d612d0412b7c2c6723d351b2eb19b8563713925b033c676d87cc2", + "0xa3932c3653a210ab39a21127bb8ee97dae95c5bad9910a69bfbaed7b4ab9105b", + "0xbdff1e151c0d0ccd5c6a3be48030f5f905d06169cfe43f8dc1fc715270474344", + "0xe56765c9bc310b26996b60d030e45f7984bd641747e9520b2624f2b58a577f9e", + "0x58d51a1fda0740b191b91880f30035af7db135b54eceb7d1d064653368c39da3", + "0xe6c34027035fb35aefa0796d5714154526affa7bff1e926ccf23aaadc5a251ec", + "0x601023137408602a0d3f62c932de6f62b32372be2ff3e9508b77397e9c7b203e", + "0xbb51e1752b3a324f874ecacda5e4854778d08c976757aabe0d33f9eebce5b69f", + "0x648036ab2ef5c981d11bb45fc110d8c4effe00c6d06646e2df9f04c33b415829", + "0xf0400163aeda772b0139a4e69102589f143e9f23bda49bdc12e2609cc29c74c6", + "0x8d6227386788f4dbad5d8c43d575a627818648d258c03f0025aae5783659ae71", + "0xefa8513731cee73816c0b6168cb25153d29fe6940c1b30db971e1e53b0f59213", + "0x229da5c4b9c46829a93df8ae4bb34b6bf20c37644655277af3ec4b3ccb070351", + "0xca855b6710defa8e20942d981abb9a3a124f76b420ba48e5af32639ed14f8e1c", + "0xdb6e06723e801af3bb9432d02ca8136965dda7f37c592720c8dc7ac4a0c0d45a", + "0xea83e25432f45a0231993ef7b784d200cbb0f4d068d1ffd7c8652b9f1b3da061", + "0x9c6d1a2ac894a2e8f7cbe140d2f251fb454ca77d5b7c64c700bf02b08566032e", + "0x3a59d6738a9f712ed31740f4f211f926febc652ac65d39c768cc15ce6548ac29", + "0xe71d46072083ffc7b5ac292ae827019cb5cfaa335ad9b0717f6b4cd4c002e26b", + "0x0ab071ba6eb8197f56f5d7de6070c05774aec92fe3e38775dbe31b956c20de81", + "0x86e0d7fa597d2bc87b6e09714e2d9adcbf4ace67355414ba5b6cea23c747c0ca", + "0x70a095353bd4ecc77ae6253c93181c0c8880ed57ce5bf2ade7f75c3995ab53b7", + "0x273b6e8f768ce9478e9ca94a5c158ca1152698e89259ebcdefd9bcbb6ca1b28b", + "0xaf59d7b76771c5e8b3ad2f3965b81ed284d47ee892b69b991575f51f9024d82d", + "0x977a7259893512c087f602414f2c5498b52ac4a2283e5d9baba0e7e9d6074477", + "0x69f698ec8280e85baa7ee877652d6eb93281bc68fea8c778624c048113404e85", + "0x3a8e1bb449663fcc1afbf67899e136e3460f3a97fd87e2f2c9cf368ac605527c", + "0xa2656346c9cc287bc1f8697a4906310551f47a24da135467862eacf79f196f76", + "0xf6c099ca0d8d507610a3f549c53515ee11a9c4e55f8474131d3f247e6441d11e", + "0xdb6eb9df15e4da3163d93941524f16766a76be38d4967118c20b2a242e80e22e", + "0x6dc9cd38fb172a6a89672cb36be5fc994d16a126613b94433fe79e10945b3020", + "0xf3b8cd2494813f37bffae61f62a24c1be79e3a9473a556c53bc22ad305640d37", + "0xf1ec74d51276ceb47d5300db099b2729041244c16b1c7d5a9270815e4b2ad87b", + "0xbdb2440940a26dbe21a1e678e6ef5c133ed25f05a70055e52b961aa205dad7a6", + "0xc8e608b563a7af270682b2a5607c03a3e773792b1d59b42c9307d2de0b2287a2", + "0x204766659f1238b1084cf4be97ec53b579be09106ae5252ea6120561e7fa7e80", + "0x7b83846cb399dd5ce6ca56fc96188c5ec78b1c8175f1ca46f8f8ef562630783e", + "0xfc894212ea9bbc5972bc530b6ab7ed40aa7398e8cea35518701e21aaf5225812", + "0xb246a8d3f998bc40fc2862d6d065ac490fe0b8cbe6dc76b11ee9a7d14408864b", + "0xe9391a5600ebda987d96226f776f66d2d9a9ae6dcd61fbe40e2776cea2362165", + "0xf50492c1e56ff3fe1b499732d8e04be8dfe5c16326d31ff77ed9fbfab28ba3ea", + "0x160d294e2166b84c7b39e065b5420f75b845a3e2ca91601a47e86c492253c1a7", + "0x6fa516586c76584db45fa37f1c5c0ab7b7695d4f274ec1a794f88c408c6a9e86", + "0x38b23e425dcca799a06c70d8d4cdb15aeafb16df6b906e1459c9d2c09b00ff3b", + "0x6ccf588a93524bed61c1515129f9cbf228ead29ae4b019783af7ab043c216e72", + "0x3eb9bd1119bcea770e589c55646975e0ea7a825b7b18e27c4a397f98cb3fc072", + "0x18a6d2f8a33c0671304ed13e6b5d49098c95ad9084249d1e495bd3f5c5f8283f", + "0x4401e98be2f7bc8fb46f912d75d4918a03ddeb49c9c9f117bd92565e58a8469e", + "0x55ac69ff9f1a9bd7f88d9758ea891501844b3a932a15d8a4fdcb7ba2c1084495", + "0x3c7fa8eea9e6b19f49803ce3d3926dca64eae46a46d9a658919bae2c0d94b71d", + "0x1130c450d59983001032f00f934f838b20bb1520ff667de9bd8784b892bb6336", + "0xabdfb3d27da751c199289d132e29025923dd47efed222047b43e1584b3937da4", + "0xcfc39333669c6bb5506b2400bd0b682202a8397b9a369f597628c8c2ff62771d", + "0xa24e1607bf874ce72a9a237fc0604836287a2254b6bedc8befc20ca112f3f0b2", + "0x837ce20fe8b6184ec57972d5e9214a0f7e87822fa8e87c293645bbf095ef7a3b", + "0x25e11a9811c15fa64eb38bae5bf9c28d0135fda07185f68e668fbf1a9845970a", + "0x9bc56ef616eb63be18c96e479a4ff1b9b19c3e5874a7faf31d8a890964a507e9", + "0xdd1a5ac21a1acc161f4c73aa56ceac6dd90720cb4e293f15b6a2869d9a5d7501", + "0xd2474ed9bcc5145772ac21309b3bf461201ec85a13cc4b2503efebfe42f8aa9f", + "0xb90dde4373058caa2f5e402268b7c68486939369c062fe189b77d6ab73c96614", + "0x380ace11ada254f8c85083fde6e750ed01d2fab1409450ecf90311c16fc7154b", + "0x82ed384914a2d06ed9a3f9627b75c5329cea39b47667bc27b0c9815154b3c07c", + "0x71871257062f2de58dfe19330339c332eb336b509a3950c9f55210d702459f03", + "0x40a19295674bc11d2c5e28ee7ba584bf13cec92b709dc6d903f799871d4d5b16", + "0x76aa47f9816d3f2769edd4c605203fdbf732006664239e70ee8f46fc0bea693a", + "0xbdc813957728ae825aa3f11f0a518423cb563bd03535d8a8c017af39edd93305", + "0xea13b4df207c200a948fee3403af558b37c8ed660921268d3cd670bab7861404", + "0x98782d2a94d2eaff161ff7175580e794db2dd18ed9ed60431a3c663568ad6ce7", + "0x2f4e2925fd598937c5f268487ab6bcf07130403fdbad2a5422c9efd42bcb4413", + "0x7acf29b8b50a40e5879790dab398203f7a6d459947629624a09927d72a1c8876", + "0x2d08ef96ce1a6b2478b8ae9f442b14156b0a998f9c7e3778e0ab6f556bbcb5d6", + "0x7418de8e710dd6bb61c7559f581525b654b1950efebc62a18b71938ed2e70370", + "0x849c7c76b4a8f8d9090703f09a770fcd90458b99f099fb3f6802724f09782ae6", + "0x5fc720cfff22ef360b7ee9c1630137198a31166716a127c5cee0ebfa14e76719", + "0xd9b4dca033dbc28e1ef2a13d50fc550f18836eaef9d05bc6685fe9d531763a2f", + "0xe70dc6fe376311d6670e956d259af7d8a9c71ca90254849b0b91e2e9b5d5255c", + "0x2c5761e9caf98725a4170fd68b4784dbc9390bb720cf036e7284f6e82a5ec795", + "0x6b358b969aa8c56a722ec87e786e8dfaed7af9cdc1e289ca114c3f7211c36ef0", + "0x2d3a4b11eaf0dc658c0c19956edb0d60163f48198202784c33e992c706453ac4", + "0xda5a12aef28cbd95fb7f0f8041d26bc3cf11bb07a482426052d978f7715dacda", + "0x7d22ed949ac8b7388defd431d086dc651ef5eeb5fb7bf008b41ffeef577fc027", + "0x9b47b1800be3d0e9b008cf10e8afa67debc21dbf6f887b7c29c53713df8ecda2", + "0x7ed432ec67586b2f518e540b5f2b67d714fec68cfe3f1a569c093d9a780119b1", + "0x5440e156e97c8493bb9f4807230a808647de9ef8e14524cb7dbc0901a40184fc", + "0x986385123bdb3ed5c7226b882240ee619f30fd584a32957fc27a83aa1e06673d", + "0xa59fe31fbfa950d479a86eeff096fc455a7a699b3ff86ed1130bd8c8c1124853", + "0xea3bc775c21f3c1272e8204036fb517cc2f82441346e6ca3987a71993d907ca8", + "0x8001476e7252fabbc4fa046ae1f62634567ea538881c6a8a11b288f37ed64fcd", + "0xfd2a71ecf1b26505212d71467d2390cc80cecb0dad7888a6d0d0a6055eb9ca84", + "0xa7ea114a10801202d6a101371e5f9422136f1e173f98dea6810a9a09638872d4", + "0x5c3a8cecb7291388548f6150a16a6307b6edc4eeb69b8f01be34e8098bc7af28", + "0x1f6c0678871618e92bc65493552e70199aa342082d059fa6b0dd110a4b33c8d7", + "0x68fc40e6659f80a785e24cb875372e22f730b6c03d55448863db1eee57eb80a1", + "0x236adad26fbb619a9bb1ccc3e5c21fe705972498ff07898ba0df2d8ef3516869", + "0x03aa1165ebd146992ee1aee1ea82af214f9c923b99feb07e7c990f65adbe37f5", + "0xa89c64d5ab1aecc7e9f9df766fe96d3b0361d81e8048ed4527ed102d036244d0", + "0x90f26821990029ca0d738302c93a4b60c7ad9643b28f140373b91fa1dad39598", + "0x0f8cce246a5e4fa0140ff632ce99f96748987801f4a27e659f1ccdb3f97a8cd4", + "0x5deb4c4068270fe4e3871f3f70170e04276cec9f47fa4425225da1113de62a64", + "0x8c81ee90cfad026a6f23e6f8f33b47411b3602adf490dd6971f4c3c7c9671f57", + "0x05605b9ef167d70a2eedee808c560f61b2bdef0fbc3f61b02bbc52026126156f", + "0xf209a2efe21982cedf5c399040b52be63fe75bf1fe88030a00647c66dab02f96", + "0x6095b14b43cbe789aaea67d7f69d9c6722c17f15dd76ced663dbd747c1131bdb", + "0x94f74e0e64f18665575e26277b3664499dc1d01e4d6dab54a7adf2001e81dcde", + "0x1a901003a7c13e1fcdd13d8c12942c7282e72c94808dc9bd32d77e76cd63ccd0", + "0xea3609e61bcca46eae1695a0bd4188369932fedd20ffe5f93cf22ae871b4f1ef", + "0x027d38050cd0dd5a429d8c3e70b01ff44c8694547383971e2fd85cf312aff759", + "0x232a3620d0ef161d9c72810dcc19b6b76cf024cd551250f14254de046c2dcf4d", + "0x7b168f089c9708a92753916472b83b818994da06a0c64873976ecfe67b4e98c3", + "0x19440d9074c298034d77782b69844e72260d5f0badbc540d240eabfc5bb77a75", + "0x23905d3a64259e5c5496d71fa37e196ac7902b05d095e51bc94e1be6b7757d36", + "0x4aef396e9d58860fbd300b3b797bd51db5e57543fe0ea70291f20576b741103a", + "0x3a9f028ef7c907be3d7ee99cca564df1a6c7cdf461ce09f4765425980a027a1b", + "0xc333a37ec383f09e571492a27056325f7fd0cfbf061fcb5d20e53023acf073a5", + "0xfdf4499c98c4f4b4e31947595682baba0adab78dc11079f50de2aec0fd018a6d", + "0x58a7778a69ef7bd43ed826c54b79c5f070f4b99e2dd08888d817b5f8d375c52b", + "0x1cfb736673e8fcc6889240f1ff69b0d0fcfce34d28e9ddf27f6bee1d8fd90a50", + "0x6eb44090b9092b101d37b897ef88e7c7fc432a5daf7ea514a3cbdad3e5ebe273", + "0x72a902396914af491548de693380bd904776361624264f00a6baf615ea75d74d", + "0xee06fdf85bf3aae87a5b824259ae7dc4eb007f79f33e1d054e8ca7d1a0348b7c", + "0xf49996ee34248d37bfa89924f5d5900f5a4a37156fa172c8eb15ceab849a499e", + "0x2828c1bf01a0bdd6574e71f15b70e0b865162f3f9d85d7f0456bf17052d13db4", + "0x717c4e7d9822ff7e9f684428e7c1dfe41434113cc41b63177bd77bc01f222e85", + "0xfe43a2f383a77c3242a060322795002e5e85da68e338e0b04ef5bfb544a6f741", + "0x06d82bca611ecb5abac06b1bf1c5862f30e2e17c1ee4c56d83b6360666df2cfd", + "0xb51ceb3e5de3c80cde925de8cf8716e1f71cb6b36c3c93f796e0df03851eff41", + "0x93b59443a6a29a396d9770a8cc3a5514ed3b0790317f984b5e50af37d66c9c0a", + "0x8466aa0a7c0d9b667743784848786bade20f65fa6d8450070848f6c2f2f7afd8", + "0x5bddb05a4edfbbdf444a11f8b5a56cbb7274ad316f50084dd9031caf7c2a4395", + "0xa7a3cdc5b9487a826ba813acbc56467b892d07c693fb6ec63f026d6a20812109", + "0xcd0004cf696bf13fd6ca119b7a9bd8b8e82b7bf4b23d4ec82b7f3d813c8ea75d", + "0xa36e92341fdf9f6781420a0247929464c9c9609f068696853d80f0bfea672884", + "0x967ed9f10b5c76f44e18cf2ce8f6bf13904ad6f1b5ac57eb1a9c640eb8fc7461", + "0x5304fafac069aa22d2bac19c0ab61e9d2d8980cfdbe60c5cc24db80adb8d3195", + "0x6ff81f47be444691a521912a31fe83e497b87cd7f13e61d6b92ee7f0b8a44e1c", + "0x2db2c3f22099c4c59f5ed0507e87287b085c6756ecfc86ed6af6c5136bd0f54b", + "0x76314abadf3ba7c7d6ef2e4cd53c2e6541c9771167e8e5e4a240c6a243379b0b", + "0x4cf46c44d6dbb42a0d38f492ea90202c07f4f91abcfa3bb999a9e781c41a42a4", + "0xee8b17aed9e8e0e2dfa2be0734aad690cdf04375289957005af85bc0dcc1ddc9" + ], + "cur_hash": "0x5377110dfb73129b02e62329cfa303ffaf4b931cf4bf527a6aec97dbb98dc6eb" + }, + "withdrawals": [ + [ + "0x64048d00981975d1f6828a807e783d6ab550ee65", + "0x10d8516" + ], + [ + "0x252919b124156491d184da4444cd2d283e31b80b", + "0x10d9ece" + ], + [ + "0x252919b124156491d184da4444cd2d283e31b80b", + "0x10ceec3" + ], + [ + "0x252919b124156491d184da4444cd2d283e31b80b", + "0x10d7f0c" + ], + [ + "0x252919b124156491d184da4444cd2d283e31b80b", + "0x10d4753" + ], + [ + "0x252919b124156491d184da4444cd2d283e31b80b", + "0x10be061" + ], + [ + "0x252919b124156491d184da4444cd2d283e31b80b", + "0x10c99d1" + ], + [ + "0x252919b124156491d184da4444cd2d283e31b80b", + "0x10d4fc8" + ], + [ + "0x252919b124156491d184da4444cd2d283e31b80b", + "0x10baf52" + ], + [ + "0x252919b124156491d184da4444cd2d283e31b80b", + "0x10c78f5" + ], + [ + "0x3cd0c38d5c34ee95fef849256069a3b5c09ad349", + "0x10d1fbd" + ], + [ + "0x3cd0c38d5c34ee95fef849256069a3b5c09ad349", + "0x10cf7fc" + ], + [ + "0x3cd0c38d5c34ee95fef849256069a3b5c09ad349", + "0x10c5024" + ], + [ + "0x3cd0c38d5c34ee95fef849256069a3b5c09ad349", + "0x10d1464" + ], + [ + "0x7142ca8a9618ded97f8838fbe5ecc4515e840a47", + "0x10cdd11" + ], + [ + "0x7142ca8a9618ded97f8838fbe5ecc4515e840a47", + "0x10d60ca" + ] + ] + }, + "checkpoint_state_trie_root": "0x5c2fb1152746455e14b133a1bf1763f72172e681f6d693f4de7ad3f7430bece8" + } + } +] diff --git a/zero_bin/tools/artifacts/witness_b2_b7.json b/zero_bin/tools/artifacts/witness_b2_b7.json new file mode 100644 index 000000000..edb9d173a --- /dev/null +++ b/zero_bin/tools/artifacts/witness_b2_b7.json @@ -0,0 +1,2414 @@ +[ + { + "block_trace": { + "trie_pre_images": { + "combined": { + "compact": "0x0005582002601462093b5945d1676df093446790fd31b20e7b12a2e8e5e09d068109616b084a021e19e0c9bab240000005582002b64061d1b10621ed3cea3432c7e961244197663de5d2b7b25c29e63bec606d0847038d7ea4c680000218480558200268288056310c82aa4c01a7e12a10f8111a0560e72b700555479031b86c357d0841010558200239fa8ab811ddec4c30c62c575a346979cb7339d3e6b1b446aa9cec770bb1ca0847038d7ea4c68000055820022c9421b06b5fb4ed4f3f4b868f487d536ba02ebe1a6347c6a1312167dc000a0847038d7ea4c6800002194210055820021df1fa259221d02aa4956eb0d35ace318ca24c0a33a64c1af96cf67cf245b6084101055820021703c5eda8644a64cec152c58f5aacec93d72fb0bfa705f0473f9043a8357c0841010558200228a39461658094f425f190222a515c7902808b31fd90ea063e831b49d744390847038d7ea4c680000219808405582103b70e80538acdabd6137353b0f9d8d149f4dba91e8be2e7946e409bfdbe685b900841010558210389802d6ed1a28b049e9d4fe5334c5902fd9bc00c42821c82f82ee2da10be90800841010558200256274a27dd7524955417c11ecd917251cc7c4c8310f4c7e4bd3c304d3d9a790c064a021e19cb147d4182dc00055820023ab0970b73895b8c9959bae685c3a19f45eb5ad89d42b52a340ec4ac204d190841010219102005582103876da518a393dbd067dc72abfa08d475ed6447fca96d92ec3f9e7eba503ca6100841010558210352688a8f926c816ca1e079067caba944f158e764817b83fc43594370ca9cf6200841010558200296cdcb823ae5bcb55a33b2a1a22c03bb69870a0270cfef4e7ea22125e9aa090847038d7ea4c680000558200290b239ba3aaf993e443ae14aeffc44cf8d9931a79baed9fa141d0e4506e13108410102184205582103bd0026f7e234624f2bd4ca2c50d2f731cd19f206a89b29fa0c50b5b4e6bf13300847038d7ea4c680000219e573" + } + }, + "code_db": null, + "txn_info": [ + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e19c778536cbd49b0", + "nonce": "0x7" + }, + "0x14dc11386c1eee1dff28b4823f68e8de3b5a2747": { + "balance": "0x71afd498d0000" + } + }, + "meta": { + "byte_code": "0x02f86f820539068084684ee1808252089414dc11386c1eee1dff28b4823f68e8de3b5a274787038d7ea4c6800080c001a092dbe3ecfa549833bd3d19749cfe5cf8f52d97453161a1b7e54183844940748fa07a2b355a1badc2ac05a2114373c908041cd3a41d6e5fbffaeaa28564739f9c37", + "new_txn_trie_node_byte": "0x02f86f820539068084684ee1808252089414dc11386c1eee1dff28b4823f68e8de3b5a274787038d7ea4c6800080c001a092dbe3ecfa549833bd3d19749cfe5cf8f52d97453161a1b7e54183844940748fa07a2b355a1badc2ac05a2114373c908041cd3a41d6e5fbffaeaa28564739f9c37", + "new_receipt_trie_node_byte": "0xb9010c02f9010801825208b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e19c3dc2997f7b760", + "nonce": "0x8" + }, + "0x92d3267215ec56542b985473e73c8417403b15ac": { + "balance": "0x71afd498d0000" + } + }, + "meta": { + "byte_code": "0x02f86f820539078084684ee1808252089492d3267215ec56542b985473e73c8417403b15ac87038d7ea4c6800080c080a0bc63624565de404628556d7eb9417d09b42a2d7ebe157b4f793228c1853eb264a07d864356f782d8550850cefd9443685949ca9a798b3525f18372b95631a1b3af", + "new_txn_trie_node_byte": "0x02f86f820539078084684ee1808252089492d3267215ec56542b985473e73c8417403b15ac87038d7ea4c6800080c080a0bc63624565de404628556d7eb9417d09b42a2d7ebe157b4f793228c1853eb264a07d864356f782d8550850cefd9443685949ca9a798b3525f18372b95631a1b3af", + "new_receipt_trie_node_byte": "0xb9010c02f901080182a410b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e19c03fffc3322510", + "nonce": "0x9" + }, + "0x882145b1f9764372125861727d7be616c84010ef": { + "balance": "0x71afd498d0000" + } + }, + "meta": { + "byte_code": "0x02f86f820539088084684ee18082520894882145b1f9764372125861727d7be616c84010ef87038d7ea4c6800080c080a02713ccd51a6f9a0dffe183d16f74298378766ec9ad7144271c71d2585e33759aa0536b5efaacae718f1b88022075479e2a4a15538062feb46eed9195b24c9a02d7", + "new_txn_trie_node_byte": "0x02f86f820539088084684ee18082520894882145b1f9764372125861727d7be616c84010ef87038d7ea4c6800080c080a02713ccd51a6f9a0dffe183d16f74298378766ec9ad7144271c71d2585e33759aa0536b5efaacae718f1b88022075479e2a4a15538062feb46eed9195b24c9a02d7", + "new_receipt_trie_node_byte": "0xb9010c02f901080182f618b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e19bca3d5ee6c92c0", + "nonce": "0xa" + }, + "0x2c80179883217370f777e76c067eea91d8283c5c": { + "balance": "0x71afd498d0000" + } + }, + "meta": { + "byte_code": "0x02f86f820539098084684ee180825208942c80179883217370f777e76c067eea91d8283c5c87038d7ea4c6800080c080a06fa2057d82f93db7270054b4d14a87ae9b637a55d1807554558df6d594426a3da01a305e8690961c69049c91241736e8f42a69331fc858be99f0c685d51459efcf", + "new_txn_trie_node_byte": "0x02f86f820539098084684ee180825208942c80179883217370f777e76c067eea91d8283c5c87038d7ea4c6800080c080a06fa2057d82f93db7270054b4d14a87ae9b637a55d1807554558df6d594426a3da01a305e8690961c69049c91241736e8f42a69331fc858be99f0c685d51459efcf", + "new_receipt_trie_node_byte": "0xb9010d02f901090183014820b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e19b907ac19a70070", + "nonce": "0xb" + }, + "0x9e0823da9f7f3a0b22dd2798e6af7b39be37f0da": { + "balance": "0x71afd498d0000" + } + }, + "meta": { + "byte_code": "0x02f86f8205390a8084684ee180825208949e0823da9f7f3a0b22dd2798e6af7b39be37f0da87038d7ea4c6800080c080a030aa6c020193e75936be747c0e8da2f9beebc266de42f6a3ebb3afe6247733bfa05220d355e4ec287f06ae0e40b23bb4a86dfb54c645b5a345d80fd9c097d5bccc", + "new_txn_trie_node_byte": "0x02f86f8205390a8084684ee180825208949e0823da9f7f3a0b22dd2798e6af7b39be37f0da87038d7ea4c6800080c080a030aa6c020193e75936be747c0e8da2f9beebc266de42f6a3ebb3afe6247733bfa05220d355e4ec287f06ae0e40b23bb4a86dfb54c645b5a345d80fd9c097d5bccc", + "new_receipt_trie_node_byte": "0xb9010d02f901090183019a28b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e19b56b8244e16e20", + "nonce": "0xc" + }, + "0x7972eef40a371cbfd84c7d709507cc300c6d06a5": { + "balance": "0x71afd498d0000" + } + }, + "meta": { + "byte_code": "0x02f86f8205390b8084684ee180825208947972eef40a371cbfd84c7d709507cc300c6d06a587038d7ea4c6800080c001a0350f184d3a2dfd842fe7e95131933ab980f9ce1bf2d81fc37582df17d3c97883a03d91d78fb680003308495c1c1f40055c0e5530cd235cba33371ef0815bbabc2e", + "new_txn_trie_node_byte": "0x02f86f8205390b8084684ee180825208947972eef40a371cbfd84c7d709507cc300c6d06a587038d7ea4c6800080c001a0350f184d3a2dfd842fe7e95131933ab980f9ce1bf2d81fc37582df17d3c97883a03d91d78fb680003308495c1c1f40055c0e5530cd235cba33371ef0815bbabc2e", + "new_receipt_trie_node_byte": "0xb9010d02f90109018301ec30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + } + ] + }, + "other_data": { + "b_data": { + "b_meta": { + "block_beneficiary": "0x67b1d87101671b127f5f8714789c7192f7ad340e", + "block_timestamp": "0x666a9696", + "block_number": "0x2", + "block_difficulty": "0x2", + "block_random": "0x0000000000000000000000000000000000000000000000000000000000000000", + "block_gaslimit": "0xafd1a5", + "block_chain_id": "0x539", + "block_base_fee": "0x2dc70bca", + "block_gas_used": "0x1ec30", + "block_bloom": [ + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ] + }, + "b_hashes": { + "prev_hashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc493151b4991dd1bf459952509bba9bc3fb2b706299e18e36e6b78781835065d", + "0xecc163d4e19061c77f9bc84afaaa6b98961e33435f80f9ebd6f751716f172b9c" + ], + "cur_hash": "0x52ed2bdc1acae1b2ad7890c4084e6d0db5a85b79d6ffa3f7a7efc04e3428b5f4" + }, + "withdrawals": [] + }, + "checkpoint_state_trie_root": "0x0fd5324836befac89fcd430abb81f2a274130af0dfa1a89babac76c574b58c40" + } + }, + { + "block_trace": { + "trie_pre_images": { + "combined": { + "compact": "0x0005582002601462093b5945d1676df093446790fd31b20e7b12a2e8e5e09d068109616b084a021e19e0c9bab240000005582002b64061d1b10621ed3cea3432c7e961244197663de5d2b7b25c29e63bec606d0847071afd498d00000218480558200268288056310c82aa4c01a7e12a10f8111a0560e72b700555479031b86c357d0841010558200239fa8ab811ddec4c30c62c575a346979cb7339d3e6b1b446aa9cec770bb1ca0847071afd498d0000055820022c9421b06b5fb4ed4f3f4b868f487d536ba02ebe1a6347c6a1312167dc000a0847071afd498d000002194210055820021df1fa259221d02aa4956eb0d35ace318ca24c0a33a64c1af96cf67cf245b6084101055820021703c5eda8644a64cec152c58f5aacec93d72fb0bfa705f0473f9043a8357c0841010558200228a39461658094f425f190222a515c7902808b31fd90ea063e831b49d744390847071afd498d00000219808405582103b70e80538acdabd6137353b0f9d8d149f4dba91e8be2e7946e409bfdbe685b900841010558210389802d6ed1a28b049e9d4fe5334c5902fd9bc00c42821c82f82ee2da10be90800841010558200256274a27dd7524955417c11ecd917251cc7c4c8310f4c7e4bd3c304d3d9a790c0c4a021e19b56b8244e16e20055820023ab0970b73895b8c9959bae685c3a19f45eb5ad89d42b52a340ec4ac204d190841010219102005582103876da518a393dbd067dc72abfa08d475ed6447fca96d92ec3f9e7eba503ca6100841010558210352688a8f926c816ca1e079067caba944f158e764817b83fc43594370ca9cf6200841010558200296cdcb823ae5bcb55a33b2a1a22c03bb69870a0270cfef4e7ea22125e9aa090847071afd498d00000558200290b239ba3aaf993e443ae14aeffc44cf8d9931a79baed9fa141d0e4506e13108410102184205582103bd0026f7e234624f2bd4ca2c50d2f731cd19f206a89b29fa0c50b5b4e6bf13300847071afd498d00000219e573" + } + }, + "code_db": null, + "txn_info": [ + { + "traces": { + "0x14dc11386c1eee1dff28b4823f68e8de3b5a2747": { + "balance": "0xaa87bee538000" + }, + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e19b1d123920a4700", + "nonce": "0xd" + } + }, + "meta": { + "byte_code": "0x02f86f8205390c80845b8e17948252089414dc11386c1eee1dff28b4823f68e8de3b5a274787038d7ea4c6800080c080a00a58699f9b733fbcedc646a376f2ce3147de686a82577f52345dcb07eb452636a036ccf13d2c1d7f3b3d73a35e1de002d5b8b9b3a16b1a76befb3dc652e3848a96", + "new_txn_trie_node_byte": "0x02f86f8205390c80845b8e17948252089414dc11386c1eee1dff28b4823f68e8de3b5a274787038d7ea4c6800080c080a00a58699f9b733fbcedc646a376f2ce3147de686a82577f52345dcb07eb452636a036ccf13d2c1d7f3b3d73a35e1de002d5b8b9b3a16b1a76befb3dc652e3848a96", + "new_receipt_trie_node_byte": "0xb9010c02f9010801825208b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x92d3267215ec56542b985473e73c8417403b15ac": { + "balance": "0xaa87bee538000" + }, + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e19ae36c4df331fe0", + "nonce": "0xe" + } + }, + "meta": { + "byte_code": "0x02f86f8205390d80845b8e17948252089492d3267215ec56542b985473e73c8417403b15ac87038d7ea4c6800080c080a004d21abe2e5c2b58d08dca7efdd4f1f5f9b612cbaac0559cb994dbab4af065e1a038c90f192cb6cd6b7932e55e816307ffefd43eac31daa12eb220f343f0c87ae2", + "new_txn_trie_node_byte": "0x02f86f8205390d80845b8e17948252089492d3267215ec56542b985473e73c8417403b15ac87038d7ea4c6800080c080a004d21abe2e5c2b58d08dca7efdd4f1f5f9b612cbaac0559cb994dbab4af065e1a038c90f192cb6cd6b7932e55e816307ffefd43eac31daa12eb220f343f0c87ae2", + "new_receipt_trie_node_byte": "0xb9010c02f901080182a410b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e19aa9c662c5bf8c0", + "nonce": "0xf" + }, + "0x882145b1f9764372125861727d7be616c84010ef": { + "balance": "0xaa87bee538000" + } + }, + "meta": { + "byte_code": "0x02f86f8205390e80845b8e179482520894882145b1f9764372125861727d7be616c84010ef87038d7ea4c6800080c001a0c82df3fcaf2dc8704585465d951353092c85497dae88c0af95349b000ebec19da026311c7ed4f3580bdbb6ff90d66143ed9268f3fa849c22b0bf2697a87c27a042", + "new_txn_trie_node_byte": "0x02f86f8205390e80845b8e179482520894882145b1f9764372125861727d7be616c84010ef87038d7ea4c6800080c001a0c82df3fcaf2dc8704585465d951353092c85497dae88c0af95349b000ebec19da026311c7ed4f3580bdbb6ff90d66143ed9268f3fa849c22b0bf2697a87c27a042", + "new_receipt_trie_node_byte": "0xb9010c02f901080182f618b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x2c80179883217370f777e76c067eea91d8283c5c": { + "balance": "0xaa87bee538000" + }, + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e19a702077984d1a0", + "nonce": "0x10" + } + }, + "meta": { + "byte_code": "0x02f86f8205390f80845b8e1794825208942c80179883217370f777e76c067eea91d8283c5c87038d7ea4c6800080c001a024b550b0378ff482258f0cbded8acca28dd596cfa345b72eb820aef81547fbb5a0370acb5c8df0856109b044786515f7912fb126cae4749dd21ed842f2de9e15fe", + "new_txn_trie_node_byte": "0x02f86f8205390f80845b8e1794825208942c80179883217370f777e76c067eea91d8283c5c87038d7ea4c6800080c001a024b550b0378ff482258f0cbded8acca28dd596cfa345b72eb820aef81547fbb5a0370acb5c8df0856109b044786515f7912fb126cae4749dd21ed842f2de9e15fe", + "new_receipt_trie_node_byte": "0xb9010d02f901090183014820b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x9e0823da9f7f3a0b22dd2798e6af7b39be37f0da": { + "balance": "0xaa87bee538000" + }, + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e19a367a8c6adaa80", + "nonce": "0x11" + } + }, + "meta": { + "byte_code": "0x02f86f8205391080845b8e1794825208949e0823da9f7f3a0b22dd2798e6af7b39be37f0da87038d7ea4c6800080c080a090a32c6b8c9465c41196acf9e693b08e354ab4b42a3f04d80031882dfa5201f5a066d70a3e893fccefdb8c64a099543a08c19d38b2456c5e39a25cc66ada38f319", + "new_txn_trie_node_byte": "0x02f86f8205391080845b8e1794825208949e0823da9f7f3a0b22dd2798e6af7b39be37f0da87038d7ea4c6800080c080a090a32c6b8c9465c41196acf9e693b08e354ab4b42a3f04d80031882dfa5201f5a066d70a3e893fccefdb8c64a099543a08c19d38b2456c5e39a25cc66ada38f319", + "new_receipt_trie_node_byte": "0xb9010d02f901090183019a28b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x7972eef40a371cbfd84c7d709507cc300c6d06a5": { + "balance": "0xaa87bee538000" + }, + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e199fcd4a13d68360", + "nonce": "0x12" + } + }, + "meta": { + "byte_code": "0x02f86f8205391180845b8e1794825208947972eef40a371cbfd84c7d709507cc300c6d06a587038d7ea4c6800080c001a0cbd26a2d7e25345c0dc186ec91039a0d5cf958b0cffa9334b85c18949870c4cea02016b7f4800b0cc7f6c383e14a3bf7a1c1079c2a7a9158c7149f7bbc7147f079", + "new_txn_trie_node_byte": "0x02f86f8205391180845b8e1794825208947972eef40a371cbfd84c7d709507cc300c6d06a587038d7ea4c6800080c001a0cbd26a2d7e25345c0dc186ec91039a0d5cf958b0cffa9334b85c18949870c4cea02016b7f4800b0cc7f6c383e14a3bf7a1c1079c2a7a9158c7149f7bbc7147f079", + "new_receipt_trie_node_byte": "0xb9010d02f90109018301ec30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + } + ] + }, + "other_data": { + "b_data": { + "b_meta": { + "block_beneficiary": "0x67b1d87101671b127f5f8714789c7192f7ad340e", + "block_timestamp": "0x666a96b7", + "block_number": "0x3", + "block_difficulty": "0x2", + "block_random": "0x0000000000000000000000000000000000000000000000000000000000000000", + "block_gaslimit": "0xaffd98", + "block_chain_id": "0x539", + "block_base_fee": "0x282e33e4", + "block_gas_used": "0x1ec30", + "block_bloom": [ + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ] + }, + "b_hashes": { + "prev_hashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc493151b4991dd1bf459952509bba9bc3fb2b706299e18e36e6b78781835065d", + "0xecc163d4e19061c77f9bc84afaaa6b98961e33435f80f9ebd6f751716f172b9c", + "0x52ed2bdc1acae1b2ad7890c4084e6d0db5a85b79d6ffa3f7a7efc04e3428b5f4" + ], + "cur_hash": "0x43e9e6398559ccdd4238d08a0b79ef57f50dddb2b75dd7c00e132718b54414c6" + }, + "withdrawals": [] + }, + "checkpoint_state_trie_root": "0x0fd5324836befac89fcd430abb81f2a274130af0dfa1a89babac76c574b58c40" + } + }, + { + "block_trace": { + "trie_pre_images": { + "combined": { + "compact": "0x0005582002601462093b5945d1676df093446790fd31b20e7b12a2e8e5e09d068109616b084a021e19e0c9bab240000005582002b64061d1b10621ed3cea3432c7e961244197663de5d2b7b25c29e63bec606d08470aa87bee5380000218480558200268288056310c82aa4c01a7e12a10f8111a0560e72b700555479031b86c357d0841010558200239fa8ab811ddec4c30c62c575a346979cb7339d3e6b1b446aa9cec770bb1ca08470aa87bee538000055820022c9421b06b5fb4ed4f3f4b868f487d536ba02ebe1a6347c6a1312167dc000a08470aa87bee53800002194210055820021df1fa259221d02aa4956eb0d35ace318ca24c0a33a64c1af96cf67cf245b6084101055820021703c5eda8644a64cec152c58f5aacec93d72fb0bfa705f0473f9043a8357c0841010558200228a39461658094f425f190222a515c7902808b31fd90ea063e831b49d7443908470aa87bee5380000219808405582103b70e80538acdabd6137353b0f9d8d149f4dba91e8be2e7946e409bfdbe685b900841010558210389802d6ed1a28b049e9d4fe5334c5902fd9bc00c42821c82f82ee2da10be90800841010558200256274a27dd7524955417c11ecd917251cc7c4c8310f4c7e4bd3c304d3d9a790c124a021e199fcd4a13d68360055820023ab0970b73895b8c9959bae685c3a19f45eb5ad89d42b52a340ec4ac204d190841010219102005582103876da518a393dbd067dc72abfa08d475ed6447fca96d92ec3f9e7eba503ca6100841010558210352688a8f926c816ca1e079067caba944f158e764817b83fc43594370ca9cf6200841010558200296cdcb823ae5bcb55a33b2a1a22c03bb69870a0270cfef4e7ea22125e9aa0908470aa87bee5380000558200290b239ba3aaf993e443ae14aeffc44cf8d9931a79baed9fa141d0e4506e13108410102184205582103bd0026f7e234624f2bd4ca2c50d2f731cd19f206a89b29fa0c50b5b4e6bf133008470aa87bee5380000219e573" + } + }, + "code_db": null, + "txn_info": [ + { + "traces": { + "0x14dc11386c1eee1dff28b4823f68e8de3b5a2747": { + "balance": "0xe35fa931a0000" + }, + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e199c347e6242cbe8", + "nonce": "0x13" + } + }, + "meta": { + "byte_code": "0x02f86f820539128084505c67c88252089414dc11386c1eee1dff28b4823f68e8de3b5a274787038d7ea4c6800080c001a07623906391b43777272fd81f61128a53d5a774e2d8869706d55db74949f63c8aa06d5354f430ac0d64bea7ca1846bfc99818b70e56a2bbf11e43b563fbf92e6130", + "new_txn_trie_node_byte": "0x02f86f820539128084505c67c88252089414dc11386c1eee1dff28b4823f68e8de3b5a274787038d7ea4c6800080c001a07623906391b43777272fd81f61128a53d5a774e2d8869706d55db74949f63c8aa06d5354f430ac0d64bea7ca1846bfc99818b70e56a2bbf11e43b563fbf92e6130", + "new_receipt_trie_node_byte": "0xb9010c02f9010801825208b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x92d3267215ec56542b985473e73c8417403b15ac": { + "balance": "0xe35fa931a0000" + }, + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e19989bb2b0af1470", + "nonce": "0x14" + } + }, + "meta": { + "byte_code": "0x02f86f820539138084505c67c88252089492d3267215ec56542b985473e73c8417403b15ac87038d7ea4c6800080c001a093768ed5baa342a66908d6acf28633218c96d295fd1cd9c8fe22080f56202ed4a03464d2a6c818e77e004e66624d7d722aa98579b0fc821f1d9101b76f1f6f3e86", + "new_txn_trie_node_byte": "0x02f86f820539138084505c67c88252089492d3267215ec56542b985473e73c8417403b15ac87038d7ea4c6800080c001a093768ed5baa342a66908d6acf28633218c96d295fd1cd9c8fe22080f56202ed4a03464d2a6c818e77e004e66624d7d722aa98579b0fc821f1d9101b76f1f6f3e86", + "new_receipt_trie_node_byte": "0xb9010c02f901080182a410b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e199502e6ff1b5cf8", + "nonce": "0x15" + }, + "0x882145b1f9764372125861727d7be616c84010ef": { + "balance": "0xe35fa931a0000" + } + }, + "meta": { + "byte_code": "0x02f86f820539148084505c67c882520894882145b1f9764372125861727d7be616c84010ef87038d7ea4c6800080c080a05770c4bafb679d29918cd6320af2384452c3ba35ae27dd5614a226ba002db4c5a02bbbc7405851bc0a7e84ecb188262dcb2cc7e2128418b13f60c485f7e656e372", + "new_txn_trie_node_byte": "0x02f86f820539148084505c67c882520894882145b1f9764372125861727d7be616c84010ef87038d7ea4c6800080c080a05770c4bafb679d29918cd6320af2384452c3ba35ae27dd5614a226ba002db4c5a02bbbc7405851bc0a7e84ecb188262dcb2cc7e2128418b13f60c485f7e656e372", + "new_receipt_trie_node_byte": "0xb9010c02f901080182f618b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e19916a1b4d87a580", + "nonce": "0x16" + }, + "0x2c80179883217370f777e76c067eea91d8283c5c": { + "balance": "0xe35fa931a0000" + } + }, + "meta": { + "byte_code": "0x02f86f820539158084505c67c8825208942c80179883217370f777e76c067eea91d8283c5c87038d7ea4c6800080c001a0ba3727de78f7a49d17825ff5983dfeab11572736d4b22f1806e29d605e24c686a025c36e4810754fb42b2837e9fb7621f254c5a241709dae666e4adf00cf1e3e64", + "new_txn_trie_node_byte": "0x02f86f820539158084505c67c8825208942c80179883217370f777e76c067eea91d8283c5c87038d7ea4c6800080c001a0ba3727de78f7a49d17825ff5983dfeab11572736d4b22f1806e29d605e24c686a025c36e4810754fb42b2837e9fb7621f254c5a241709dae666e4adf00cf1e3e64", + "new_receipt_trie_node_byte": "0xb9010d02f901090183014820b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e198dd14f9bf3ee08", + "nonce": "0x17" + }, + "0x9e0823da9f7f3a0b22dd2798e6af7b39be37f0da": { + "balance": "0xe35fa931a0000" + } + }, + "meta": { + "byte_code": "0x02f86f820539168084505c67c8825208949e0823da9f7f3a0b22dd2798e6af7b39be37f0da87038d7ea4c6800080c080a05481ba0ae3a286406d94d84fd70248a3d3a5daff8ec2375f40a9fb25c06b19b5a074c8d65317262b7b6ce89b9eb37438a82ea4ca9b9fcb76082ccd8252bc2b9351", + "new_txn_trie_node_byte": "0x02f86f820539168084505c67c8825208949e0823da9f7f3a0b22dd2798e6af7b39be37f0da87038d7ea4c6800080c080a05481ba0ae3a286406d94d84fd70248a3d3a5daff8ec2375f40a9fb25c06b19b5a074c8d65317262b7b6ce89b9eb37438a82ea4ca9b9fcb76082ccd8252bc2b9351", + "new_receipt_trie_node_byte": "0xb9010d02f901090183019a28b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x7972eef40a371cbfd84c7d709507cc300c6d06a5": { + "balance": "0xe35fa931a0000" + }, + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e198a3883ea603690", + "nonce": "0x18" + } + }, + "meta": { + "byte_code": "0x02f86f820539178084505c67c8825208947972eef40a371cbfd84c7d709507cc300c6d06a587038d7ea4c6800080c001a03ab3b30088fffac6c69a35924b4f9750a3208f64a1db817490c1564bce6ea159a04bdf3f5a24c1b46a9a7a067557706f3edb8f7aabb9c728ae85ebc3c93ec3ae3d", + "new_txn_trie_node_byte": "0x02f86f820539178084505c67c8825208947972eef40a371cbfd84c7d709507cc300c6d06a587038d7ea4c6800080c001a03ab3b30088fffac6c69a35924b4f9750a3208f64a1db817490c1564bce6ea159a04bdf3f5a24c1b46a9a7a067557706f3edb8f7aabb9c728ae85ebc3c93ec3ae3d", + "new_receipt_trie_node_byte": "0xb9010d02f90109018301ec30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + } + ] + }, + "other_data": { + "b_data": { + "b_meta": { + "block_beneficiary": "0x67b1d87101671b127f5f8714789c7192f7ad340e", + "block_timestamp": "0x666a96bd", + "block_number": "0x4", + "block_difficulty": "0x2", + "block_random": "0x0000000000000000000000000000000000000000000000000000000000000000", + "block_gaslimit": "0xb02996", + "block_chain_id": "0x539", + "block_base_fee": "0x2344852f", + "block_gas_used": "0x1ec30", + "block_bloom": [ + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ] + }, + "b_hashes": { + "prev_hashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc493151b4991dd1bf459952509bba9bc3fb2b706299e18e36e6b78781835065d", + "0xecc163d4e19061c77f9bc84afaaa6b98961e33435f80f9ebd6f751716f172b9c", + "0x52ed2bdc1acae1b2ad7890c4084e6d0db5a85b79d6ffa3f7a7efc04e3428b5f4", + "0x43e9e6398559ccdd4238d08a0b79ef57f50dddb2b75dd7c00e132718b54414c6" + ], + "cur_hash": "0x7b32edfa990c8aa0dc2afc2c0a23e1c6e1ede6b03de689a444163011231d90ce" + }, + "withdrawals": [] + }, + "checkpoint_state_trie_root": "0x0fd5324836befac89fcd430abb81f2a274130af0dfa1a89babac76c574b58c40" + } + }, + { + "block_trace": { + "trie_pre_images": { + "combined": { + "compact": "0x0005582002601462093b5945d1676df093446790fd31b20e7b12a2e8e5e09d068109616b084a021e19e0c9bab240000005582002b64061d1b10621ed3cea3432c7e961244197663de5d2b7b25c29e63bec606d08470e35fa931a00000218480558200268288056310c82aa4c01a7e12a10f8111a0560e72b700555479031b86c357d0841010558200239fa8ab811ddec4c30c62c575a346979cb7339d3e6b1b446aa9cec770bb1ca08470e35fa931a0000055820022c9421b06b5fb4ed4f3f4b868f487d536ba02ebe1a6347c6a1312167dc000a08470e35fa931a000002194210055820021df1fa259221d02aa4956eb0d35ace318ca24c0a33a64c1af96cf67cf245b6084101055820021703c5eda8644a64cec152c58f5aacec93d72fb0bfa705f0473f9043a8357c0841010558200228a39461658094f425f190222a515c7902808b31fd90ea063e831b49d7443908470e35fa931a00000219808405582103b70e80538acdabd6137353b0f9d8d149f4dba91e8be2e7946e409bfdbe685b900841010558210389802d6ed1a28b049e9d4fe5334c5902fd9bc00c42821c82f82ee2da10be90800841010558200256274a27dd7524955417c11ecd917251cc7c4c8310f4c7e4bd3c304d3d9a790c18184a021e198a3883ea603690055820023ab0970b73895b8c9959bae685c3a19f45eb5ad89d42b52a340ec4ac204d190841010219102005582103876da518a393dbd067dc72abfa08d475ed6447fca96d92ec3f9e7eba503ca6100841010558210352688a8f926c816ca1e079067caba944f158e764817b83fc43594370ca9cf6200841010558200296cdcb823ae5bcb55a33b2a1a22c03bb69870a0270cfef4e7ea22125e9aa0908470e35fa931a00000558200290b239ba3aaf993e443ae14aeffc44cf8d9931a79baed9fa141d0e4506e13108410102184205582103bd0026f7e234624f2bd4ca2c50d2f731cd19f206a89b29fa0c50b5b4e6bf133008470e35fa931a00000219e573" + } + }, + "code_db": null, + "txn_info": [ + { + "traces": { + "0x14dc11386c1eee1dff28b4823f68e8de3b5a2747": { + "balance": "0x11c37937e08000" + }, + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e1986a119f5a569f8", + "nonce": "0x19" + } + }, + "meta": { + "byte_code": "0x02f86f82053918808446890a5e8252089414dc11386c1eee1dff28b4823f68e8de3b5a274787038d7ea4c6800080c080a01ee4e0b9e3a36b9365dd66ef1739747aaa9ea180b99ef919745bb0c26eca9a0aa0529429ae74c290510e991704260aae40bbac5a8baa974bf7e8c2efedcc676c54", + "new_txn_trie_node_byte": "0x02f86f82053918808446890a5e8252089414dc11386c1eee1dff28b4823f68e8de3b5a274787038d7ea4c6800080c080a01ee4e0b9e3a36b9365dd66ef1739747aaa9ea180b99ef919745bb0c26eca9a0aa0529429ae74c290510e991704260aae40bbac5a8baa974bf7e8c2efedcc676c54", + "new_receipt_trie_node_byte": "0xb9010c02f9010801825208b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e198309b000ea9d60", + "nonce": "0x1a" + }, + "0x92d3267215ec56542b985473e73c8417403b15ac": { + "balance": "0x11c37937e08000" + } + }, + "meta": { + "byte_code": "0x02f86f82053919808446890a5e8252089492d3267215ec56542b985473e73c8417403b15ac87038d7ea4c6800080c080a09b213fe9a7ab176112945662b93d7a93a5f84f3ef6909e32d14608b12a1d5a71a0787b1244a63828be22c2d446d5861784bf0e2f2ff896142a3d8812da89f0cc24", + "new_txn_trie_node_byte": "0x02f86f82053919808446890a5e8252089492d3267215ec56542b985473e73c8417403b15ac87038d7ea4c6800080c080a09b213fe9a7ab176112945662b93d7a93a5f84f3ef6909e32d14608b12a1d5a71a0787b1244a63828be22c2d446d5861784bf0e2f2ff896142a3d8812da89f0cc24", + "new_receipt_trie_node_byte": "0xb9010c02f901080182a410b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e197f72460c2fd0c8", + "nonce": "0x1b" + }, + "0x882145b1f9764372125861727d7be616c84010ef": { + "balance": "0x11c37937e08000" + } + }, + "meta": { + "byte_code": "0x02f86f8205391a808446890a5e82520894882145b1f9764372125861727d7be616c84010ef87038d7ea4c6800080c080a0339da690b2886d5946051623746e59d1d39fe2bcd68779ad10dd1a6b79a5bf82a05240a5c320af3a5ef10125dd21a21fd661a3a9e9c5325c653aa3aea71ba61a47", + "new_txn_trie_node_byte": "0x02f86f8205391a808446890a5e82520894882145b1f9764372125861727d7be616c84010ef87038d7ea4c6800080c080a0339da690b2886d5946051623746e59d1d39fe2bcd68779ad10dd1a6b79a5bf82a05240a5c320af3a5ef10125dd21a21fd661a3a9e9c5325c653aa3aea71ba61a47", + "new_receipt_trie_node_byte": "0xb9010c02f901080182f618b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x2c80179883217370f777e76c067eea91d8283c5c": { + "balance": "0x11c37937e08000" + }, + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e197bdadc17750430", + "nonce": "0x1c" + } + }, + "meta": { + "byte_code": "0x02f86f8205391b808446890a5e825208942c80179883217370f777e76c067eea91d8283c5c87038d7ea4c6800080c080a00583425445c2d0f1deb7a25ce7419319fec040a2a2f42964f50212b14a8786e2a027750f5f7bd58f4d5bda04fac460d8fd1655dcc3aed93c4c24e194d1bb52af1a", + "new_txn_trie_node_byte": "0x02f86f8205391b808446890a5e825208942c80179883217370f777e76c067eea91d8283c5c87038d7ea4c6800080c080a00583425445c2d0f1deb7a25ce7419319fec040a2a2f42964f50212b14a8786e2a027750f5f7bd58f4d5bda04fac460d8fd1655dcc3aed93c4c24e194d1bb52af1a", + "new_receipt_trie_node_byte": "0xb9010d02f901090183014820b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e1978437222ba3798", + "nonce": "0x1d" + }, + "0x9e0823da9f7f3a0b22dd2798e6af7b39be37f0da": { + "balance": "0x11c37937e08000" + } + }, + "meta": { + "byte_code": "0x02f86f8205391c808446890a5e825208949e0823da9f7f3a0b22dd2798e6af7b39be37f0da87038d7ea4c6800080c080a0adff5b10cb25534d49ee5ad0f20ef089c520faec0f16cfbac65066b422c42ff4a04421d46de38a004848f62c524e2f3ceb4d02a989b6b3331c149190b9631a60bb", + "new_txn_trie_node_byte": "0x02f86f8205391c808446890a5e825208949e0823da9f7f3a0b22dd2798e6af7b39be37f0da87038d7ea4c6800080c080a0adff5b10cb25534d49ee5ad0f20ef089c520faec0f16cfbac65066b422c42ff4a04421d46de38a004848f62c524e2f3ceb4d02a989b6b3331c149190b9631a60bb", + "new_receipt_trie_node_byte": "0xb9010d02f901090183019a28b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e1974ac082dff6b00", + "nonce": "0x1e" + }, + "0x7972eef40a371cbfd84c7d709507cc300c6d06a5": { + "balance": "0x11c37937e08000" + } + }, + "meta": { + "byte_code": "0x02f86f8205391d808446890a5e825208947972eef40a371cbfd84c7d709507cc300c6d06a587038d7ea4c6800080c080a0607e1c02503e06143020ef6d58073e0346750c2d1a290b979570bd9e3be19829a002a062d70894169ba2e49894eb602dc5324ecab8e6a0453288dd1b9462a3bb45", + "new_txn_trie_node_byte": "0x02f86f8205391d808446890a5e825208947972eef40a371cbfd84c7d709507cc300c6d06a587038d7ea4c6800080c080a0607e1c02503e06143020ef6d58073e0346750c2d1a290b979570bd9e3be19829a002a062d70894169ba2e49894eb602dc5324ecab8e6a0453288dd1b9462a3bb45", + "new_receipt_trie_node_byte": "0xb9010d02f90109018301ec30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + } + ] + }, + "other_data": { + "b_data": { + "b_meta": { + "block_beneficiary": "0x67b1d87101671b127f5f8714789c7192f7ad340e", + "block_timestamp": "0x666a96c2", + "block_number": "0x5", + "block_difficulty": "0x2", + "block_random": "0x0000000000000000000000000000000000000000000000000000000000000000", + "block_gaslimit": "0xb0559f", + "block_chain_id": "0x539", + "block_base_fee": "0x1ef496d3", + "block_gas_used": "0x1ec30", + "block_bloom": [ + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ] + }, + "b_hashes": { + "prev_hashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc493151b4991dd1bf459952509bba9bc3fb2b706299e18e36e6b78781835065d", + "0xecc163d4e19061c77f9bc84afaaa6b98961e33435f80f9ebd6f751716f172b9c", + "0x52ed2bdc1acae1b2ad7890c4084e6d0db5a85b79d6ffa3f7a7efc04e3428b5f4", + "0x43e9e6398559ccdd4238d08a0b79ef57f50dddb2b75dd7c00e132718b54414c6", + "0x7b32edfa990c8aa0dc2afc2c0a23e1c6e1ede6b03de689a444163011231d90ce" + ], + "cur_hash": "0x540299ad479ada4fd07dc1f9506ab7cf71719c3d372d288d2ce43906a2437f59" + }, + "withdrawals": [] + }, + "checkpoint_state_trie_root": "0x0fd5324836befac89fcd430abb81f2a274130af0dfa1a89babac76c574b58c40" + } + }, + { + "block_trace": { + "trie_pre_images": { + "combined": { + "compact": "0x0005582002601462093b5945d1676df093446790fd31b20e7b12a2e8e5e09d068109616b084a021e19e0c9bab240000005582002b64061d1b10621ed3cea3432c7e961244197663de5d2b7b25c29e63bec606d084711c37937e080000218480558200268288056310c82aa4c01a7e12a10f8111a0560e72b700555479031b86c357d0841010558200239fa8ab811ddec4c30c62c575a346979cb7339d3e6b1b446aa9cec770bb1ca084711c37937e08000055820022c9421b06b5fb4ed4f3f4b868f487d536ba02ebe1a6347c6a1312167dc000a084711c37937e0800002194210055820021df1fa259221d02aa4956eb0d35ace318ca24c0a33a64c1af96cf67cf245b6084101055820021703c5eda8644a64cec152c58f5aacec93d72fb0bfa705f0473f9043a8357c0841010558200228a39461658094f425f190222a515c7902808b31fd90ea063e831b49d74439084711c37937e080000219808405582103b70e80538acdabd6137353b0f9d8d149f4dba91e8be2e7946e409bfdbe685b900841010558210389802d6ed1a28b049e9d4fe5334c5902fd9bc00c42821c82f82ee2da10be90800841010558200256274a27dd7524955417c11ecd917251cc7c4c8310f4c7e4bd3c304d3d9a790c181e4a021e1974ac082dff6b00055820023ab0970b73895b8c9959bae685c3a19f45eb5ad89d42b52a340ec4ac204d190841010219102005582103876da518a393dbd067dc72abfa08d475ed6447fca96d92ec3f9e7eba503ca6100841010558210352688a8f926c816ca1e079067caba944f158e764817b83fc43594370ca9cf6200841010558200296cdcb823ae5bcb55a33b2a1a22c03bb69870a0270cfef4e7ea22125e9aa09084711c37937e080000558200290b239ba3aaf993e443ae14aeffc44cf8d9931a79baed9fa141d0e4506e13108410102184205582103bd0026f7e234624f2bd4ca2c50d2f731cd19f206a89b29fa0c50b5b4e6bf1330084711c37937e080000219e573" + } + }, + "code_db": null, + "txn_info": [ + { + "traces": { + "0x14dc11386c1eee1dff28b4823f68e8de3b5a2747": { + "balance": "0x1550f7dca70000" + }, + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e197115d4b751ecc0", + "nonce": "0x1f" + } + }, + "meta": { + "byte_code": "0x02f86f8205391e80843de92da68252089414dc11386c1eee1dff28b4823f68e8de3b5a274787038d7ea4c6800080c001a0f097340ff786fe4936c8dcc2358abfb35b9888fd97da23f7de5966e9564e2766a0625ba834320c99f672daa3b53b965f7af9407485ce49ac450d169198a8972735", + "new_txn_trie_node_byte": "0x02f86f8205391e80843de92da68252089414dc11386c1eee1dff28b4823f68e8de3b5a274787038d7ea4c6800080c001a0f097340ff786fe4936c8dcc2358abfb35b9888fd97da23f7de5966e9564e2766a0625ba834320c99f672daa3b53b965f7af9407485ce49ac450d169198a8972735", + "new_receipt_trie_node_byte": "0xb9010c02f9010801825208b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x92d3267215ec56542b985473e73c8417403b15ac": { + "balance": "0x1550f7dca70000" + }, + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e196d7fa140a46e80", + "nonce": "0x20" + } + }, + "meta": { + "byte_code": "0x02f86f8205391f80843de92da68252089492d3267215ec56542b985473e73c8417403b15ac87038d7ea4c6800080c080a02fce8a1c632efd8fea240326f04a7f9b01c84573282adf8595343ccb848286fba05a550cbb3851f59d214878d202ed9ee8eb12c54e38e20d0ee4826b0f25c601ac", + "new_txn_trie_node_byte": "0x02f86f8205391f80843de92da68252089492d3267215ec56542b985473e73c8417403b15ac87038d7ea4c6800080c080a02fce8a1c632efd8fea240326f04a7f9b01c84573282adf8595343ccb848286fba05a550cbb3851f59d214878d202ed9ee8eb12c54e38e20d0ee4826b0f25c601ac", + "new_receipt_trie_node_byte": "0xb9010c02f901080182a410b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e1969e96dc9f6f040", + "nonce": "0x21" + }, + "0x882145b1f9764372125861727d7be616c84010ef": { + "balance": "0x1550f7dca70000" + } + }, + "meta": { + "byte_code": "0x02f86f8205392080843de92da682520894882145b1f9764372125861727d7be616c84010ef87038d7ea4c6800080c001a0a78cb955a97f7a93de2244bb33b7dcd34fd042883ce0875b4fee5bf8b106d7afa032b00b2c6907982ccca6ed1fb4f5e4c3a27bd1529b85e125f086999317070665", + "new_txn_trie_node_byte": "0x02f86f8205392080843de92da682520894882145b1f9764372125861727d7be616c84010ef87038d7ea4c6800080c001a0a78cb955a97f7a93de2244bb33b7dcd34fd042883ce0875b4fee5bf8b106d7afa032b00b2c6907982ccca6ed1fb4f5e4c3a27bd1529b85e125f086999317070665", + "new_receipt_trie_node_byte": "0xb9010c02f901080182f618b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e1966533a53497200", + "nonce": "0x22" + }, + "0x2c80179883217370f777e76c067eea91d8283c5c": { + "balance": "0x1550f7dca70000" + } + }, + "meta": { + "byte_code": "0x02f86f8205392180843de92da6825208942c80179883217370f777e76c067eea91d8283c5c87038d7ea4c6800080c080a00d844acefc2d7e85b87efeb6b2dafe7e19cd48d3f22e6e4c7761bd2567b41b20a07056ce0b20e483e22384c69350893ebd00379f2a148486e17ac274d7bdba33a4", + "new_txn_trie_node_byte": "0x02f86f8205392180843de92da6825208942c80179883217370f777e76c067eea91d8283c5c87038d7ea4c6800080c080a00d844acefc2d7e85b87efeb6b2dafe7e19cd48d3f22e6e4c7761bd2567b41b20a07056ce0b20e483e22384c69350893ebd00379f2a148486e17ac274d7bdba33a4", + "new_receipt_trie_node_byte": "0xb9010d02f901090183014820b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x9e0823da9f7f3a0b22dd2798e6af7b39be37f0da": { + "balance": "0x1550f7dca70000" + }, + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e1962bd06dc9bf3c0", + "nonce": "0x23" + } + }, + "meta": { + "byte_code": "0x02f86f8205392280843de92da6825208949e0823da9f7f3a0b22dd2798e6af7b39be37f0da87038d7ea4c6800080c080a00dd87a2c722138e8fe9e9242d6fea71c9456343457a58133867b3eb7b480506aa03f36067e682f89ef2723779b856f416d8fff548f99af0705bdb6ba32943dd4cd", + "new_txn_trie_node_byte": "0x02f86f8205392280843de92da6825208949e0823da9f7f3a0b22dd2798e6af7b39be37f0da87038d7ea4c6800080c080a00dd87a2c722138e8fe9e9242d6fea71c9456343457a58133867b3eb7b480506aa03f36067e682f89ef2723779b856f416d8fff548f99af0705bdb6ba32943dd4cd", + "new_receipt_trie_node_byte": "0xb9010d02f901090183019a28b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x7972eef40a371cbfd84c7d709507cc300c6d06a5": { + "balance": "0x1550f7dca70000" + }, + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e195f26d365ee7580", + "nonce": "0x24" + } + }, + "meta": { + "byte_code": "0x02f86f8205392380843de92da6825208947972eef40a371cbfd84c7d709507cc300c6d06a587038d7ea4c6800080c001a0aaac3878bcb884b0cf46d1535fccb8421113d41045daed772338937500dcc57aa0593599f728a330be6d7bec338f95670bfc7021794ab83c0da9fe981b6e7248ed", + "new_txn_trie_node_byte": "0x02f86f8205392380843de92da6825208947972eef40a371cbfd84c7d709507cc300c6d06a587038d7ea4c6800080c001a0aaac3878bcb884b0cf46d1535fccb8421113d41045daed772338937500dcc57aa0593599f728a330be6d7bec338f95670bfc7021794ab83c0da9fe981b6e7248ed", + "new_receipt_trie_node_byte": "0xb9010d02f90109018301ec30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + } + ] + }, + "other_data": { + "b_data": { + "b_meta": { + "block_beneficiary": "0x67b1d87101671b127f5f8714789c7192f7ad340e", + "block_timestamp": "0x666a96c8", + "block_number": "0x6", + "block_difficulty": "0x2", + "block_random": "0x0000000000000000000000000000000000000000000000000000000000000000", + "block_gaslimit": "0xb081b3", + "block_chain_id": "0x539", + "block_base_fee": "0x1b2b9dc8", + "block_gas_used": "0x1ec30", + "block_bloom": [ + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ] + }, + "b_hashes": { + "prev_hashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc493151b4991dd1bf459952509bba9bc3fb2b706299e18e36e6b78781835065d", + "0xecc163d4e19061c77f9bc84afaaa6b98961e33435f80f9ebd6f751716f172b9c", + "0x52ed2bdc1acae1b2ad7890c4084e6d0db5a85b79d6ffa3f7a7efc04e3428b5f4", + "0x43e9e6398559ccdd4238d08a0b79ef57f50dddb2b75dd7c00e132718b54414c6", + "0x7b32edfa990c8aa0dc2afc2c0a23e1c6e1ede6b03de689a444163011231d90ce", + "0x540299ad479ada4fd07dc1f9506ab7cf71719c3d372d288d2ce43906a2437f59" + ], + "cur_hash": "0x8f4e8872fece2779107919faea4dd350dbdef0b579084080c12de204614b01e4" + }, + "withdrawals": [] + }, + "checkpoint_state_trie_root": "0x0fd5324836befac89fcd430abb81f2a274130af0dfa1a89babac76c574b58c40" + } + }, + { + "block_trace": { + "trie_pre_images": { + "combined": { + "compact": "0x0005582002601462093b5945d1676df093446790fd31b20e7b12a2e8e5e09d068109616b084a021e19e0c9bab240000005582002b64061d1b10621ed3cea3432c7e961244197663de5d2b7b25c29e63bec606d08471550f7dca700000218480558200268288056310c82aa4c01a7e12a10f8111a0560e72b700555479031b86c357d0841010558200239fa8ab811ddec4c30c62c575a346979cb7339d3e6b1b446aa9cec770bb1ca08471550f7dca70000055820022c9421b06b5fb4ed4f3f4b868f487d536ba02ebe1a6347c6a1312167dc000a08471550f7dca7000002194210055820021df1fa259221d02aa4956eb0d35ace318ca24c0a33a64c1af96cf67cf245b6084101055820021703c5eda8644a64cec152c58f5aacec93d72fb0bfa705f0473f9043a8357c0841010558200228a39461658094f425f190222a515c7902808b31fd90ea063e831b49d7443908471550f7dca700000219808405582103b70e80538acdabd6137353b0f9d8d149f4dba91e8be2e7946e409bfdbe685b900841010558210389802d6ed1a28b049e9d4fe5334c5902fd9bc00c42821c82f82ee2da10be90800841010558200256274a27dd7524955417c11ecd917251cc7c4c8310f4c7e4bd3c304d3d9a790c18244a021e195f26d365ee7580055820023ab0970b73895b8c9959bae685c3a19f45eb5ad89d42b52a340ec4ac204d190841010219102005582103876da518a393dbd067dc72abfa08d475ed6447fca96d92ec3f9e7eba503ca6100841010558210352688a8f926c816ca1e079067caba944f158e764817b83fc43594370ca9cf6200841010558200296cdcb823ae5bcb55a33b2a1a22c03bb69870a0270cfef4e7ea22125e9aa0908471550f7dca700000558200290b239ba3aaf993e443ae14aeffc44cf8d9931a79baed9fa141d0e4506e13108410102184205582103bd0026f7e234624f2bd4ca2c50d2f731cd19f206a89b29fa0c50b5b4e6bf133008471550f7dca700000219e573" + } + }, + "code_db": null, + "txn_info": [ + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e195b91b077ba65a0", + "nonce": "0x25" + }, + "0x14dc11386c1eee1dff28b4823f68e8de3b5a2747": { + "balance": "0x18de76816d8000" + } + }, + "meta": { + "byte_code": "0x02f86f82053924808436573b908252089414dc11386c1eee1dff28b4823f68e8de3b5a274787038d7ea4c6800080c080a01f5434680e70fe67c289666daa62f021d77e75e014d772b76f7b66e96c2e35aca06ded5910833c78b37dcac16427030b2768c6d5457c79febb841c6a4f483c6138", + "new_txn_trie_node_byte": "0x02f86f82053924808436573b908252089414dc11386c1eee1dff28b4823f68e8de3b5a274787038d7ea4c6800080c080a01f5434680e70fe67c289666daa62f021d77e75e014d772b76f7b66e96c2e35aca06ded5910833c78b37dcac16427030b2768c6d5457c79febb841c6a4f483c6138", + "new_receipt_trie_node_byte": "0xb9010c02f9010801825208b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e1957fc8d898655c0", + "nonce": "0x26" + }, + "0x92d3267215ec56542b985473e73c8417403b15ac": { + "balance": "0x18de76816d8000" + } + }, + "meta": { + "byte_code": "0x02f86f82053925808436573b908252089492d3267215ec56542b985473e73c8417403b15ac87038d7ea4c6800080c001a0b58e8699319e3529c578ac9bb0b571f8f257df0943de4a17ce4cdab7cced1f40a078b718333c2cb89fbd67a2888fe72befb64685533c83f44980bc9e3a42feeb84", + "new_txn_trie_node_byte": "0x02f86f82053925808436573b908252089492d3267215ec56542b985473e73c8417403b15ac87038d7ea4c6800080c001a0b58e8699319e3529c578ac9bb0b571f8f257df0943de4a17ce4cdab7cced1f40a078b718333c2cb89fbd67a2888fe72befb64685533c83f44980bc9e3a42feeb84", + "new_receipt_trie_node_byte": "0xb9010c02f901080182a410b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e1954676a9b5245e0", + "nonce": "0x27" + }, + "0x882145b1f9764372125861727d7be616c84010ef": { + "balance": "0x18de76816d8000" + } + }, + "meta": { + "byte_code": "0x02f86f82053926808436573b9082520894882145b1f9764372125861727d7be616c84010ef87038d7ea4c6800080c080a011779b6c3d9c596d24125c4800472caaf666d22056a30156a3b52170c8f23b79a00e0129e08c7917f08356dc870976275a2de21d6dc89b36f53ffd74f9a8518d90", + "new_txn_trie_node_byte": "0x02f86f82053926808436573b9082520894882145b1f9764372125861727d7be616c84010ef87038d7ea4c6800080c080a011779b6c3d9c596d24125c4800472caaf666d22056a30156a3b52170c8f23b79a00e0129e08c7917f08356dc870976275a2de21d6dc89b36f53ffd74f9a8518d90", + "new_receipt_trie_node_byte": "0xb9010c02f901080182f618b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e1950d247ad1e3600", + "nonce": "0x28" + }, + "0x2c80179883217370f777e76c067eea91d8283c5c": { + "balance": "0x18de76816d8000" + } + }, + "meta": { + "byte_code": "0x02f86f82053927808436573b90825208942c80179883217370f777e76c067eea91d8283c5c87038d7ea4c6800080c001a077839a39ca68239775657fa67c028891424835ed0fcf9b84149382e9c65e018fa03c4aeea69f7a0c1b04ff13288702290155396075ea13ae982fab97441efbf594", + "new_txn_trie_node_byte": "0x02f86f82053927808436573b90825208942c80179883217370f777e76c067eea91d8283c5c87038d7ea4c6800080c001a077839a39ca68239775657fa67c028891424835ed0fcf9b84149382e9c65e018fa03c4aeea69f7a0c1b04ff13288702290155396075ea13ae982fab97441efbf594", + "new_receipt_trie_node_byte": "0xb9010d02f901090183014820b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x9e0823da9f7f3a0b22dd2798e6af7b39be37f0da": { + "balance": "0x18de76816d8000" + }, + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e194d3d24beea2620", + "nonce": "0x29" + } + }, + "meta": { + "byte_code": "0x02f86f82053928808436573b90825208949e0823da9f7f3a0b22dd2798e6af7b39be37f0da87038d7ea4c6800080c001a01d26b7cc6ff90bf7e28d5228add30e6231f68165ffe980d34b70a6ad313ab99fa00a03a2a9e24513a9e763948758937c31f223ed8f41fe345fb3bc439797b0ce89", + "new_txn_trie_node_byte": "0x02f86f82053928808436573b90825208949e0823da9f7f3a0b22dd2798e6af7b39be37f0da87038d7ea4c6800080c001a01d26b7cc6ff90bf7e28d5228add30e6231f68165ffe980d34b70a6ad313ab99fa00a03a2a9e24513a9e763948758937c31f223ed8f41fe345fb3bc439797b0ce89", + "new_receipt_trie_node_byte": "0xb9010d02f901090183019a28b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + }, + { + "traces": { + "0x67b1d87101671b127f5f8714789c7192f7ad340e": { + "balance": "0x21e1949a801d0b61640", + "nonce": "0x2a" + }, + "0x7972eef40a371cbfd84c7d709507cc300c6d06a5": { + "balance": "0x18de76816d8000" + } + }, + "meta": { + "byte_code": "0x02f86f82053929808436573b90825208947972eef40a371cbfd84c7d709507cc300c6d06a587038d7ea4c6800080c001a0c88544f777b3d7f6a069479f5a792b080efb42f90b1875e28a04b59105fc0931a017e6cf1abe23b0cfa3cf83947ae3ce26f69753aeb0a51695e3dc75c748fdf164", + "new_txn_trie_node_byte": "0x02f86f82053929808436573b90825208947972eef40a371cbfd84c7d709507cc300c6d06a587038d7ea4c6800080c001a0c88544f777b3d7f6a069479f5a792b080efb42f90b1875e28a04b59105fc0931a017e6cf1abe23b0cfa3cf83947ae3ce26f69753aeb0a51695e3dc75c748fdf164", + "new_receipt_trie_node_byte": "0xb9010d02f90109018301ec30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "gas_used": 21000 + } + } + ] + }, + "other_data": { + "b_data": { + "b_meta": { + "block_beneficiary": "0x67b1d87101671b127f5f8714789c7192f7ad340e", + "block_timestamp": "0x666a96cd", + "block_number": "0x7", + "block_difficulty": "0x2", + "block_random": "0x0000000000000000000000000000000000000000000000000000000000000000", + "block_gaslimit": "0xb0add2", + "block_chain_id": "0x539", + "block_base_fee": "0x17d91afc", + "block_gas_used": "0x1ec30", + "block_bloom": [ + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ] + }, + "b_hashes": { + "prev_hashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc493151b4991dd1bf459952509bba9bc3fb2b706299e18e36e6b78781835065d", + "0xecc163d4e19061c77f9bc84afaaa6b98961e33435f80f9ebd6f751716f172b9c", + "0x52ed2bdc1acae1b2ad7890c4084e6d0db5a85b79d6ffa3f7a7efc04e3428b5f4", + "0x43e9e6398559ccdd4238d08a0b79ef57f50dddb2b75dd7c00e132718b54414c6", + "0x7b32edfa990c8aa0dc2afc2c0a23e1c6e1ede6b03de689a444163011231d90ce", + "0x540299ad479ada4fd07dc1f9506ab7cf71719c3d372d288d2ce43906a2437f59", + "0x8f4e8872fece2779107919faea4dd350dbdef0b579084080c12de204614b01e4" + ], + "cur_hash": "0x9fe97326da9f39550fd361614c13bc56b648fa5bd30ed7d296920b9928c44138" + }, + "withdrawals": [] + }, + "checkpoint_state_trie_root": "0x0fd5324836befac89fcd430abb81f2a274130af0dfa1a89babac76c574b58c40" + } + } +] diff --git a/zero_bin/tools/prove_rpc.sh b/zero_bin/tools/prove_rpc.sh new file mode 100755 index 000000000..363e3dfd4 --- /dev/null +++ b/zero_bin/tools/prove_rpc.sh @@ -0,0 +1,160 @@ +#!/bin/bash + +# Args: +# 1 --> Start block idx +# 2 --> End block index (inclusive) +# 3 --> Rpc endpoint:port (eg. http://35.246.1.96:8545) +# 4 --> Rpc type (eg. jerigon / native) +# 5 --> Ignore previous proofs (boolean) +# 6 --> Backoff in milliseconds (optional [default: 0]) +# 7 --> Number of retries (optional [default: 0]) +# 8 --> Test run only flag `test_only` (optional) + +export RUST_MIN_STACK=33554432 +export RUST_BACKTRACE=1 +export RUST_LOG=info +# Script users are running locally, and might benefit from extra perf. +# See also .cargo/config.toml. +export RUSTFLAGS='-C target-cpu=native -Zlinker-features=-lld' + +if [[ $8 == "test_only" ]]; then + # Circuit sizes don't matter in test_only mode, so we keep them minimal. + export ARITHMETIC_CIRCUIT_SIZE="16..17" + export BYTE_PACKING_CIRCUIT_SIZE="9..10" + export CPU_CIRCUIT_SIZE="12..13" + export KECCAK_CIRCUIT_SIZE="14..15" + export KECCAK_SPONGE_CIRCUIT_SIZE="9..10" + export LOGIC_CIRCUIT_SIZE="12..13" + export MEMORY_CIRCUIT_SIZE="17..18" +else + export ARITHMETIC_CIRCUIT_SIZE="16..23" + export BYTE_PACKING_CIRCUIT_SIZE="9..21" + export CPU_CIRCUIT_SIZE="12..25" + export KECCAK_CIRCUIT_SIZE="14..20" + export KECCAK_SPONGE_CIRCUIT_SIZE="9..15" + export LOGIC_CIRCUIT_SIZE="12..18" + export MEMORY_CIRCUIT_SIZE="17..28" +fi + +# Force the working directory to always be the `tools/` directory. +TOOLS_DIR=$(dirname $(realpath "$0")) + +# Set the environment variable to let the binary know that we're running in the project workspace. +export CARGO_WORKSPACE_DIR="${TOOLS_DIR}/../" + +PROOF_OUTPUT_DIR="${TOOLS_DIR}/proofs" +OUT_LOG_PATH="${PROOF_OUTPUT_DIR}/b$1_$2.log" +ALWAYS_WRITE_LOGS=0 # Change this to `1` if you always want logs to be written. +TOT_BLOCKS=$(($2-$1+1)) + +START_BLOCK=$1 +END_BLOCK=$2 +NODE_RPC_URL=$3 +NODE_RPC_TYPE=$4 +IGNORE_PREVIOUS_PROOFS=$5 +BACKOFF=${6:-0} +RETRIES=${7:-0} + +# Sometimes we need to override file logging, e.g. in the CI run +OUTPUT_TO_TERMINAL="${OUTPUT_TO_TERMINAL:-false}" +# Only generate proof by default +RUN_VERIFICATION="${RUN_VERIFICATION:-false}" + +mkdir -p $PROOF_OUTPUT_DIR + +if [ $IGNORE_PREVIOUS_PROOFS ]; then + # Set checkpoint height to previous block number for the first block in range + prev_proof_num=$(($1-1)) + PREV_PROOF_EXTRA_ARG="--checkpoint-block-number ${prev_proof_num}" +else + if [ $1 -gt 1 ]; then + prev_proof_num=$(($1-1)) + PREV_PROOF_EXTRA_ARG="-f ${PROOF_OUTPUT_DIR}/b${prev_proof_num}.zkproof" + fi +fi + +# Convert hex to decimal parameters +if [[ $START_BLOCK == 0x* ]]; then + START_BLOCK=$((16#${START_BLOCK#"0x"})) +fi +if [[ $END_BLOCK == 0x* ]]; then + END_BLOCK=$((16#${END_BLOCK#"0x"})) +fi + +# Define block interval +if [ $START_BLOCK == $END_BLOCK ]; then + BLOCK_INTERVAL=$START_BLOCK +else + BLOCK_INTERVAL=$START_BLOCK..=$END_BLOCK +fi + + +# If we set test_only flag, we'll generate a dummy +# proof. This is useful for quickly testing decoding and all of the +# other non-proving code. +if [[ $8 == "test_only" ]]; then + # test only run + echo "Proving blocks ${BLOCK_INTERVAL} in a test_only mode now... (Total: ${TOT_BLOCKS})" + command='cargo r --release --features test_only --bin leader -- --runtime in-memory --load-strategy on-demand rpc --rpc-type "$NODE_RPC_TYPE" --rpc-url "$NODE_RPC_URL" --block-interval $BLOCK_INTERVAL --proof-output-dir $PROOF_OUTPUT_DIR $PREV_PROOF_EXTRA_ARG --backoff "$BACKOFF" --max-retries "$RETRIES" ' + if [ "$OUTPUT_TO_TERMINAL" = true ]; then + eval $command + retVal=$? + echo -e "Proof witness generation finished with result: $retVal" + exit $retVal + else + eval $command > $OUT_LOG_PATH 2>&1 + if grep -q 'All proof witnesses have been generated successfully.' $OUT_LOG_PATH; then + echo -e "Success - Note this was just a test, not a proof" + # Remove the log on success if we don't want to keep it. + if [ $ALWAYS_WRITE_LOGS -ne 1 ]; then + rm $OUT_LOG_PATH + fi + exit + else + echo "Failed to create proof witnesses. See ${OUT_LOG_PATH} for more details." + exit 1 + fi + fi +else + # normal run + echo "Proving blocks ${BLOCK_INTERVAL} now... (Total: ${TOT_BLOCKS})" + command='cargo r --release --bin leader -- --runtime in-memory --load-strategy on-demand rpc --rpc-type "$NODE_RPC_TYPE" --rpc-url "$3" --block-interval $BLOCK_INTERVAL --proof-output-dir $PROOF_OUTPUT_DIR $PREV_PROOF_EXTRA_ARG --backoff "$BACKOFF" --max-retries "$RETRIES" ' + if [ "$OUTPUT_TO_TERMINAL" = true ]; then + eval $command + echo -e "Proof generation finished with result: $?" + else + eval $command > $OUT_LOG_PATH 2>&1 + retVal=$? + if [ $retVal -ne 0 ]; then + # Some error occurred. + echo "Block ${i} errored. See ${OUT_LOG_PATH} for more details." + exit $retVal + else + # Remove the log on success if we don't want to keep it. + if [ $ALWAYS_WRITE_LOGS -ne 1 ]; then + rm $OUT_LOG_PATH + fi + fi + echo "Successfully generated ${TOT_BLOCKS} proofs!" + fi +fi + + +# If we're running the verification, we'll do it here. +if [ "$RUN_VERIFICATION" = true ]; then + echo "Running the verification" + + proof_file_name=$PROOF_OUTPUT_DIR/b$END_BLOCK.zkproof + echo "Verifying the proof of the latest block in the interval:" $proof_file_name + echo [ > $PROOF_OUTPUT_DIR/proofs.json && cat $proof_file_name >> $PROOF_OUTPUT_DIR/proofs.json && echo ] >> $PROOF_OUTPUT_DIR/proofs.json + cargo r --release --bin verifier -- -f $PROOF_OUTPUT_DIR/proofs.json > $PROOF_OUTPUT_DIR/verify.out 2>&1 + + if grep -q 'All proofs verified successfully!' $PROOF_OUTPUT_DIR/verify.out; then + echo "All proofs verified successfully!"; + else + echo "there was an issue with proof verification"; + exit 1 + fi +else + echo "Skipping verification..." +fi diff --git a/zero_bin/tools/prove_stdio.sh b/zero_bin/tools/prove_stdio.sh new file mode 100755 index 000000000..c19b9c224 --- /dev/null +++ b/zero_bin/tools/prove_stdio.sh @@ -0,0 +1,127 @@ +#!/bin/bash +# ------------------------------------------------------------------------------ +# Run prover with the parsed input from the standard terminal. +# To generate the json input file, use the `rpc` tool, for example: +# `cargo run --bin rpc -- fetch --rpc-url http://127.0.0.1:8546 --start-block 2 --end-block 5 > witness.json` + +# Args: +# 1 --> Input witness json file +# 2 --> Test run only flag `test_only` (optional) + +# We're going to set the parallelism in line with the total cpu count +num_procs=$(nproc) + +# Force the working directory to always be the `tools/` directory. +TOOLS_DIR=$(dirname $(realpath "$0")) + +LEADER_OUT_PATH="${TOOLS_DIR}/leader.out" +PROOFS_JSON_PATH="${TOOLS_DIR}/proofs.json" +VERIFY_OUT_PATH="${TOOLS_DIR}/verify.out" +TEST_OUT_PATH="${TOOLS_DIR}/test.out" + +# Set the environment variable to let the binary know that we're running in the project workspace. +export CARGO_WORKSPACE_DIR="${TOOLS_DIR}/../" + +# Configured Rayon and Tokio with rough defaults +export RAYON_NUM_THREADS=$num_procs +export TOKIO_WORKER_THREADS=$num_procs + +export RUST_MIN_STACK=33554432 +export RUST_BACKTRACE=full +export RUST_LOG=info +# Script users are running locally, and might benefit from extra perf. +# See also .cargo/config.toml. +export RUSTFLAGS='-C target-cpu=native -Zlinker-features=-lld' + +INPUT_FILE=$1 +TEST_ONLY=$2 + +if [[ $INPUT_FILE == "" ]]; then + echo "Please provide witness json input file, e.g. artifacts/witness_b19240705.json" + exit 1 +fi + +if [[ $TEST_ONLY == "test_only" ]]; then + # Circuit sizes don't matter in test_only mode, so we keep them minimal. + export ARITHMETIC_CIRCUIT_SIZE="16..17" + export BYTE_PACKING_CIRCUIT_SIZE="9..10" + export CPU_CIRCUIT_SIZE="12..13" + export KECCAK_CIRCUIT_SIZE="14..15" + export KECCAK_SPONGE_CIRCUIT_SIZE="9..10" + export LOGIC_CIRCUIT_SIZE="12..13" + export MEMORY_CIRCUIT_SIZE="17..18" + export MEMORY_BEFORE_CIRCUIT_SIZE="17..18" + export MEMORY_AFTER_CIRCUIT_SIZE="17..18" +else + if [[ $INPUT_FILE == *"witness_b19240705"* ]]; then + # These sizes are configured specifically for block 19240705. Don't use this in other scenarios + echo "Using specific circuit sizes for witness_b19240705.json" + export ARITHMETIC_CIRCUIT_SIZE="16..19" + export BYTE_PACKING_CIRCUIT_SIZE="15..19" + export CPU_CIRCUIT_SIZE="18..21" + export KECCAK_CIRCUIT_SIZE="13..17" + export KECCAK_SPONGE_CIRCUIT_SIZE="8..13" + export LOGIC_CIRCUIT_SIZE="11..16" + export MEMORY_CIRCUIT_SIZE="19..23" + export MEMORY_BEFORE_CIRCUIT_SIZE="7..18" + export MEMORY_AFTER_CIRCUIT_SIZE="7..18" + elif [[ $INPUT_FILE == *"witness_b2_b7.json"* ]]; then + export ARITHMETIC_CIRCUIT_SIZE="13..17" + export BYTE_PACKING_CIRCUIT_SIZE="13..15" + export CPU_CIRCUIT_SIZE="16..17" + export KECCAK_CIRCUIT_SIZE="9..12" + export KECCAK_SPONGE_CIRCUIT_SIZE="7..9" + export LOGIC_CIRCUIT_SIZE="10..12" + export MEMORY_CIRCUIT_SIZE="18..20" + export MEMORY_BEFORE_CIRCUIT_SIZE="15..17" + export MEMORY_AFTER_CIRCUIT_SIZE="7..8" + else + export ARITHMETIC_CIRCUIT_SIZE="16..23" + export BYTE_PACKING_CIRCUIT_SIZE="9..21" + export CPU_CIRCUIT_SIZE="12..25" + export KECCAK_CIRCUIT_SIZE="14..20" + export KECCAK_SPONGE_CIRCUIT_SIZE="9..15" + export LOGIC_CIRCUIT_SIZE="12..18" + export MEMORY_CIRCUIT_SIZE="17..28" + export MEMORY_BEFORE_CIRCUIT_SIZE="7..27" + export MEMORY_AFTER_CIRCUIT_SIZE="7..28" + fi +fi + + +# If we run ./prove_stdio.sh test_only, we'll generate a dummy +# proof. This is useful for quickly testing decoding and all of the +# other non-proving code. +if [[ $TEST_ONLY == "test_only" ]]; then + cargo run --release --features test_only --bin leader -- --runtime in-memory --load-strategy on-demand stdio < $INPUT_FILE | tee $TEST_OUT_PATH + if grep -q 'All proof witnesses have been generated successfully.' $TEST_OUT_PATH; then + echo -e "\n\nSuccess - Note this was just a test, not a proof" + exit + else + echo "Failed to create proof witnesses. See \"zk_evm/tools/test.out\" for more details." + exit 1 + fi +fi + +cargo build --release --jobs "$num_procs" + +start_time=$(date +%s%N) +"${TOOLS_DIR}/../../target/release/leader" --runtime in-memory --load-strategy on-demand stdio < $INPUT_FILE | tee $LEADER_OUT_PATH +end_time=$(date +%s%N) + +tail -n 1 $LEADER_OUT_PATH > $PROOFS_JSON_PATH + +"${TOOLS_DIR}/../../target/release/verifier" -f $PROOFS_JSON_PATH | tee $VERIFY_OUT_PATH + +if grep -q 'All proofs verified successfully!' $VERIFY_OUT_PATH; then + duration_ns=$((end_time - start_time)) + duration_sec=$(echo "$duration_ns / 1000000000" | bc -l) + echo "Success!" + echo "Duration:" $duration_sec " seconds" + echo "Note, this duration is inclusive of circuit handling and overall process initialization"; +else + echo "there was an issue with proof verification"; + exit 1 +fi + + diff --git a/zero_bin/verifier/Cargo.toml b/zero_bin/verifier/Cargo.toml new file mode 100644 index 000000000..40dd297b7 --- /dev/null +++ b/zero_bin/verifier/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "verifier" +authors = ["Polygon Zero "] +version = "0.1.0" +edition = "2021" + +[dependencies] +clap = { workspace = true } +tracing = { workspace = true } +tracing-subscriber = { workspace = true } +dotenvy = { workspace = true } +anyhow = { workspace = true } +serde_json = { workspace = true } +serde_path_to_error = { workspace = true } +proof_gen = { workspace = true } + +# Local dependencies +zero_bin_common ={ path = "../common" } diff --git a/zero_bin/verifier/src/cli.rs b/zero_bin/verifier/src/cli.rs new file mode 100644 index 000000000..76306ec41 --- /dev/null +++ b/zero_bin/verifier/src/cli.rs @@ -0,0 +1,15 @@ +use std::path::PathBuf; + +use clap::{Parser, ValueHint}; +use zero_bin_common::prover_state::cli::CliProverStateConfig; + +#[derive(Parser)] +pub(crate) struct Cli { + /// The file containing the proof to verify + #[arg(short, long, value_hint = ValueHint::FilePath)] + pub(crate) file_path: PathBuf, + /// The prover configuration used to generate the preprocessed circuits + /// and the verifier state. + #[clap(flatten)] + pub(crate) prover_state_config: CliProverStateConfig, +} diff --git a/zero_bin/verifier/src/init.rs b/zero_bin/verifier/src/init.rs new file mode 100644 index 000000000..f93914895 --- /dev/null +++ b/zero_bin/verifier/src/init.rs @@ -0,0 +1,11 @@ +use tracing_subscriber::{prelude::*, util::SubscriberInitExt, EnvFilter}; +pub(crate) fn tracing() { + tracing_subscriber::Registry::default() + .with( + tracing_subscriber::fmt::layer() + .with_ansi(false) + .compact() + .with_filter(EnvFilter::from_default_env()), + ) + .init(); +} diff --git a/zero_bin/verifier/src/main.rs b/zero_bin/verifier/src/main.rs new file mode 100644 index 000000000..0c072fed9 --- /dev/null +++ b/zero_bin/verifier/src/main.rs @@ -0,0 +1,39 @@ +use std::fs::File; + +use anyhow::Result; +use clap::Parser; +use dotenvy::dotenv; +use proof_gen::proof_types::GeneratedBlockProof; +use serde_json::Deserializer; +use tracing::info; + +mod cli; +mod init; + +fn main() -> Result<()> { + dotenv().ok(); + init::tracing(); + + let args = cli::Cli::parse(); + let file = File::open(args.file_path)?; + let des = &mut Deserializer::from_reader(&file); + let input_proofs: Vec = serde_path_to_error::deserialize(des)?; + + let verifier = args + .prover_state_config + .into_prover_state_manager() + .verifier()?; + + if input_proofs.into_iter().all(|block_proof| { + verifier + .verify(&block_proof.intern) + .map_err(|e| { + info!("Proof verification failed with error: {:?}", e); + }) + .is_ok() + }) { + info!("All proofs verified successfully!"); + }; + + Ok(()) +} diff --git a/zero_bin/worker/Cargo.toml b/zero_bin/worker/Cargo.toml new file mode 100644 index 000000000..16d55ef29 --- /dev/null +++ b/zero_bin/worker/Cargo.toml @@ -0,0 +1,24 @@ +[package] +name = "worker" +authors = ["Polygon Zero "] +version = "0.1.0" +edition.workspace = true +license.workspace = true +repository.workspace = true +keywords.workspace = true +categories.workspace = true + +[dependencies] +paladin-core = { workspace = true } +anyhow = { workspace = true } +dotenvy = { workspace = true } +tracing-subscriber = { workspace = true } +clap = { workspace = true } +tokio = { workspace = true } + +# Local dependencies +ops = { workspace = true } +zero_bin_common = { workspace = true } + +[target.'cfg(not(target_env = "msvc"))'.dependencies] +jemallocator = "0.5.4" diff --git a/zero_bin/worker/src/init.rs b/zero_bin/worker/src/init.rs new file mode 100644 index 000000000..f93914895 --- /dev/null +++ b/zero_bin/worker/src/init.rs @@ -0,0 +1,11 @@ +use tracing_subscriber::{prelude::*, util::SubscriberInitExt, EnvFilter}; +pub(crate) fn tracing() { + tracing_subscriber::Registry::default() + .with( + tracing_subscriber::fmt::layer() + .with_ansi(false) + .compact() + .with_filter(EnvFilter::from_default_env()), + ) + .init(); +} diff --git a/zero_bin/worker/src/main.rs b/zero_bin/worker/src/main.rs new file mode 100644 index 000000000..4fb8675ff --- /dev/null +++ b/zero_bin/worker/src/main.rs @@ -0,0 +1,38 @@ +use anyhow::Result; +use clap::Parser; +use dotenvy::dotenv; +use ops::register; +use paladin::runtime::WorkerRuntime; +use zero_bin_common::prover_state::cli::CliProverStateConfig; + +mod init; + +// TODO: https://github.com/0xPolygonZero/zk_evm/issues/302 +// this should probably be removed. +#[cfg(not(target_env = "msvc"))] +#[global_allocator] +static GLOBAL: jemallocator::Jemalloc = jemallocator::Jemalloc; + +#[derive(Parser, Debug)] +struct Cli { + #[clap(flatten)] + paladin: paladin::config::Config, + #[clap(flatten)] + prover_state_config: CliProverStateConfig, +} + +#[tokio::main] +async fn main() -> Result<()> { + dotenv().ok(); + init::tracing(); + let args = Cli::parse(); + + args.prover_state_config + .into_prover_state_manager() + .initialize()?; + + let runtime = WorkerRuntime::from_config(&args.paladin, register()).await?; + runtime.main_loop().await?; + + Ok(()) +}